mirror of
https://github.com/standardnotes/server
synced 2026-05-12 15:57:16 -04:00
Compare commits
29 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 784728cd54 | |||
| 4b883b68de | |||
| dec2cc2aaf | |||
| b4e8971ad2 | |||
| 84e436265e | |||
| ac8a69f8d4 | |||
| b912e050ea | |||
| 284561d093 | |||
| efc355982c | |||
| 8907879a19 | |||
| 86f6057207 | |||
| 4c92698c73 | |||
| 8407c3b649 | |||
| ed8f82617d | |||
| 31d040d1b6 | |||
| 25a6796e63 | |||
| ff091918aa | |||
| 91b76edce1 | |||
| 5ae5c83bf5 | |||
| 9d90f276de | |||
| 245f091e22 | |||
| ae2f8f086b | |||
| 5e5eb7f937 | |||
| 748630e1f1 | |||
| 43064c8c55 | |||
| 4559a3047c | |||
| de8064ee5c | |||
| 48c8dba342 | |||
| 31a515b2f1 |
@@ -130,77 +130,77 @@ jobs:
|
|||||||
- name: Test
|
- name: Test
|
||||||
run: yarn test ${{ inputs.package_path }}
|
run: yarn test ${{ inputs.package_path }}
|
||||||
|
|
||||||
# e2e:
|
e2e:
|
||||||
# runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
# needs: build
|
needs: build
|
||||||
|
|
||||||
# steps:
|
steps:
|
||||||
# - uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
|
|
||||||
# - name: Cache build
|
- name: Cache build
|
||||||
# id: cache-build
|
id: cache-build
|
||||||
# uses: actions/cache@v3
|
uses: actions/cache@v3
|
||||||
# with:
|
with:
|
||||||
# path: |
|
path: |
|
||||||
# packages/**/dist
|
packages/**/dist
|
||||||
# ${{ needs.build.outputs.temp_dir }}
|
${{ needs.build.outputs.temp_dir }}
|
||||||
# key: ${{ runner.os }}-${{ inputs.service_name }}-build-${{ github.sha }}
|
key: ${{ runner.os }}-${{ inputs.service_name }}-build-${{ github.sha }}
|
||||||
|
|
||||||
# - name: Set up Node
|
- name: Set up Node
|
||||||
# uses: actions/setup-node@v3
|
uses: actions/setup-node@v3
|
||||||
# with:
|
with:
|
||||||
# registry-url: 'https://registry.npmjs.org'
|
registry-url: 'https://registry.npmjs.org'
|
||||||
# node-version-file: '.nvmrc'
|
node-version-file: '.nvmrc'
|
||||||
|
|
||||||
# - name: Build
|
- name: Build
|
||||||
# if: steps.cache-build.outputs.cache-hit != 'true'
|
if: steps.cache-build.outputs.cache-hit != 'true'
|
||||||
# run: yarn build ${{ inputs.package_path }}
|
run: yarn build ${{ inputs.package_path }}
|
||||||
|
|
||||||
# - name: Bundle
|
- name: Bundle
|
||||||
# if: steps.cache-build.outputs.cache-hit != 'true'
|
if: steps.cache-build.outputs.cache-hit != 'true'
|
||||||
# run: yarn workspace ${{ inputs.workspace_name }} bundle --no-compress --output-directory ${{ needs.build.outputs.temp_dir }}
|
run: yarn workspace ${{ inputs.workspace_name }} bundle --no-compress --output-directory ${{ needs.build.outputs.temp_dir }}
|
||||||
|
|
||||||
# - name: Login to Docker Hub
|
- name: Login to Docker Hub
|
||||||
# uses: docker/login-action@v2
|
uses: docker/login-action@v2
|
||||||
# with:
|
with:
|
||||||
# username: ${{ secrets.DOCKER_USERNAME }}
|
username: ${{ secrets.DOCKER_USERNAME }}
|
||||||
# password: ${{ secrets.DOCKER_PASSWORD }}
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||||
|
|
||||||
# - name: Set up QEMU
|
- name: Set up QEMU
|
||||||
# uses: docker/setup-qemu-action@master
|
uses: docker/setup-qemu-action@master
|
||||||
# with:
|
with:
|
||||||
# platforms: all
|
platforms: all
|
||||||
|
|
||||||
# - name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
# id: buildx
|
id: buildx
|
||||||
# uses: docker/setup-buildx-action@master
|
uses: docker/setup-buildx-action@master
|
||||||
|
|
||||||
# - name: Publish Docker image for E2E testing
|
- name: Publish Docker image for E2E testing
|
||||||
# uses: docker/build-push-action@v3
|
uses: docker/build-push-action@v3
|
||||||
# with:
|
with:
|
||||||
# builder: ${{ steps.buildx.outputs.name }}
|
builder: ${{ steps.buildx.outputs.name }}
|
||||||
# context: ${{ needs.build.outputs.temp_dir }}
|
context: ${{ needs.build.outputs.temp_dir }}
|
||||||
# file: ${{ needs.build.outputs.temp_dir }}/${{ inputs.package_path }}/Dockerfile
|
file: ${{ needs.build.outputs.temp_dir }}/${{ inputs.package_path }}/Dockerfile
|
||||||
# platforms: linux/amd64,linux/arm64
|
platforms: linux/amd64,linux/arm64
|
||||||
# push: true
|
push: true
|
||||||
# tags: standardnotes/${{ inputs.service_name }}:${{ github.sha }}
|
tags: standardnotes/${{ inputs.service_name }}:${{ github.sha }}
|
||||||
|
|
||||||
# - name: Run E2E test suite
|
- name: Run E2E test suite
|
||||||
# uses: convictional/trigger-workflow-and-wait@v1.6.3
|
uses: convictional/trigger-workflow-and-wait@v1.6.3
|
||||||
# with:
|
with:
|
||||||
# owner: standardnotes
|
owner: standardnotes
|
||||||
# repo: e2e
|
repo: e2e
|
||||||
# github_token: ${{ secrets.CI_PAT_TOKEN }}
|
github_token: ${{ secrets.CI_PAT_TOKEN }}
|
||||||
# workflow_file_name: testing-with-stable-client.yml
|
workflow_file_name: testing-with-stable-client.yml
|
||||||
# wait_interval: 30
|
wait_interval: 30
|
||||||
# client_payload: '{"${{ inputs.e2e_tag_parameter_name }}": "${{ github.sha }}"}'
|
client_payload: '{"${{ inputs.e2e_tag_parameter_name }}": "${{ github.sha }}"}'
|
||||||
# propagate_failure: true
|
propagate_failure: true
|
||||||
# trigger_workflow: true
|
trigger_workflow: true
|
||||||
# wait_workflow: true
|
wait_workflow: true
|
||||||
|
|
||||||
publish:
|
publish:
|
||||||
needs: [ build, test, lint ] #, e2e ]
|
needs: [ build, test, lint, e2e ]
|
||||||
|
|
||||||
name: Publish Docker Image
|
name: Publish Docker Image
|
||||||
uses: standardnotes/server/.github/workflows/common-docker-image.yml@main
|
uses: standardnotes/server/.github/workflows/common-docker-image.yml@main
|
||||||
|
|||||||
@@ -126,7 +126,6 @@ const RAW_RUNTIME_STATE =
|
|||||||
["@lerna-lite/cli", "npm:1.6.0"],\
|
["@lerna-lite/cli", "npm:1.6.0"],\
|
||||||
["@lerna-lite/list", "npm:1.6.0"],\
|
["@lerna-lite/list", "npm:1.6.0"],\
|
||||||
["@lerna-lite/run", "npm:1.6.0"],\
|
["@lerna-lite/run", "npm:1.6.0"],\
|
||||||
["@newrelic/native-metrics", "npm:9.0.0"],\
|
|
||||||
["@sentry/node", "npm:7.19.0"],\
|
["@sentry/node", "npm:7.19.0"],\
|
||||||
["@types/jest", "npm:29.1.1"],\
|
["@types/jest", "npm:29.1.1"],\
|
||||||
["@types/newrelic", "npm:7.0.4"],\
|
["@types/newrelic", "npm:7.0.4"],\
|
||||||
@@ -2538,7 +2537,6 @@ const RAW_RUNTIME_STATE =
|
|||||||
"packageLocation": "./packages/analytics/",\
|
"packageLocation": "./packages/analytics/",\
|
||||||
"packageDependencies": [\
|
"packageDependencies": [\
|
||||||
["@standardnotes/analytics", "workspace:packages/analytics"],\
|
["@standardnotes/analytics", "workspace:packages/analytics"],\
|
||||||
["@newrelic/native-metrics", "npm:9.0.0"],\
|
|
||||||
["@newrelic/winston-enricher", "virtual:c66bf20e88479ada0172094776519a9f51acc4731d22079b60a295bcec7ea42d5545cbce58a77a50d932bf953298799135e99707486e343da6d99ba1d167bdbd#npm:4.0.0"],\
|
["@newrelic/winston-enricher", "virtual:c66bf20e88479ada0172094776519a9f51acc4731d22079b60a295bcec7ea42d5545cbce58a77a50d932bf953298799135e99707486e343da6d99ba1d167bdbd#npm:4.0.0"],\
|
||||||
["@sentry/node", "npm:7.19.0"],\
|
["@sentry/node", "npm:7.19.0"],\
|
||||||
["@standardnotes/common", "workspace:packages/common"],\
|
["@standardnotes/common", "workspace:packages/common"],\
|
||||||
@@ -2551,7 +2549,7 @@ const RAW_RUNTIME_STATE =
|
|||||||
["@types/newrelic", "npm:7.0.4"],\
|
["@types/newrelic", "npm:7.0.4"],\
|
||||||
["@types/node", "npm:18.11.9"],\
|
["@types/node", "npm:18.11.9"],\
|
||||||
["@typescript-eslint/eslint-plugin", "virtual:c66bf20e88479ada0172094776519a9f51acc4731d22079b60a295bcec7ea42d5545cbce58a77a50d932bf953298799135e99707486e343da6d99ba1d167bdbd#npm:5.30.5"],\
|
["@typescript-eslint/eslint-plugin", "virtual:c66bf20e88479ada0172094776519a9f51acc4731d22079b60a295bcec7ea42d5545cbce58a77a50d932bf953298799135e99707486e343da6d99ba1d167bdbd#npm:5.30.5"],\
|
||||||
["aws-sdk", "npm:2.1253.0"],\
|
["aws-sdk", "npm:2.1260.0"],\
|
||||||
["dayjs", "npm:1.11.6"],\
|
["dayjs", "npm:1.11.6"],\
|
||||||
["dotenv", "npm:16.0.1"],\
|
["dotenv", "npm:16.0.1"],\
|
||||||
["eslint", "npm:8.25.0"],\
|
["eslint", "npm:8.25.0"],\
|
||||||
@@ -2591,7 +2589,6 @@ const RAW_RUNTIME_STATE =
|
|||||||
"packageLocation": "./packages/api-gateway/",\
|
"packageLocation": "./packages/api-gateway/",\
|
||||||
"packageDependencies": [\
|
"packageDependencies": [\
|
||||||
["@standardnotes/api-gateway", "workspace:packages/api-gateway"],\
|
["@standardnotes/api-gateway", "workspace:packages/api-gateway"],\
|
||||||
["@newrelic/native-metrics", "npm:9.0.0"],\
|
|
||||||
["@newrelic/winston-enricher", "virtual:c66bf20e88479ada0172094776519a9f51acc4731d22079b60a295bcec7ea42d5545cbce58a77a50d932bf953298799135e99707486e343da6d99ba1d167bdbd#npm:4.0.0"],\
|
["@newrelic/winston-enricher", "virtual:c66bf20e88479ada0172094776519a9f51acc4731d22079b60a295bcec7ea42d5545cbce58a77a50d932bf953298799135e99707486e343da6d99ba1d167bdbd#npm:4.0.0"],\
|
||||||
["@sentry/node", "npm:7.19.0"],\
|
["@sentry/node", "npm:7.19.0"],\
|
||||||
["@standardnotes/common", "workspace:packages/common"],\
|
["@standardnotes/common", "workspace:packages/common"],\
|
||||||
@@ -2607,7 +2604,7 @@ const RAW_RUNTIME_STATE =
|
|||||||
["@types/newrelic", "npm:7.0.4"],\
|
["@types/newrelic", "npm:7.0.4"],\
|
||||||
["@types/prettyjson", "npm:0.0.30"],\
|
["@types/prettyjson", "npm:0.0.30"],\
|
||||||
["@typescript-eslint/eslint-plugin", "virtual:04783e12400851b8a3d76e71495851cc94959db6e62f04cb0a31190080629440b182d8c8eb4d7f2b04e281912f2783a5fd4d2c3c6ab68d38b7097246c93f4c19#npm:5.40.1"],\
|
["@typescript-eslint/eslint-plugin", "virtual:04783e12400851b8a3d76e71495851cc94959db6e62f04cb0a31190080629440b182d8c8eb4d7f2b04e281912f2783a5fd4d2c3c6ab68d38b7097246c93f4c19#npm:5.40.1"],\
|
||||||
["aws-sdk", "npm:2.1253.0"],\
|
["aws-sdk", "npm:2.1260.0"],\
|
||||||
["axios", "npm:1.1.3"],\
|
["axios", "npm:1.1.3"],\
|
||||||
["cors", "npm:2.8.5"],\
|
["cors", "npm:2.8.5"],\
|
||||||
["dotenv", "npm:16.0.1"],\
|
["dotenv", "npm:16.0.1"],\
|
||||||
@@ -2648,7 +2645,6 @@ const RAW_RUNTIME_STATE =
|
|||||||
"packageLocation": "./packages/auth/",\
|
"packageLocation": "./packages/auth/",\
|
||||||
"packageDependencies": [\
|
"packageDependencies": [\
|
||||||
["@standardnotes/auth-server", "workspace:packages/auth"],\
|
["@standardnotes/auth-server", "workspace:packages/auth"],\
|
||||||
["@newrelic/native-metrics", "npm:9.0.0"],\
|
|
||||||
["@newrelic/winston-enricher", "virtual:c66bf20e88479ada0172094776519a9f51acc4731d22079b60a295bcec7ea42d5545cbce58a77a50d932bf953298799135e99707486e343da6d99ba1d167bdbd#npm:4.0.0"],\
|
["@newrelic/winston-enricher", "virtual:c66bf20e88479ada0172094776519a9f51acc4731d22079b60a295bcec7ea42d5545cbce58a77a50d932bf953298799135e99707486e343da6d99ba1d167bdbd#npm:4.0.0"],\
|
||||||
["@sentry/node", "npm:7.19.0"],\
|
["@sentry/node", "npm:7.19.0"],\
|
||||||
["@standardnotes/api", "npm:1.19.0"],\
|
["@standardnotes/api", "npm:1.19.0"],\
|
||||||
@@ -2674,7 +2670,7 @@ const RAW_RUNTIME_STATE =
|
|||||||
["@types/ua-parser-js", "npm:0.7.36"],\
|
["@types/ua-parser-js", "npm:0.7.36"],\
|
||||||
["@types/uuid", "npm:8.3.4"],\
|
["@types/uuid", "npm:8.3.4"],\
|
||||||
["@typescript-eslint/eslint-plugin", "virtual:04783e12400851b8a3d76e71495851cc94959db6e62f04cb0a31190080629440b182d8c8eb4d7f2b04e281912f2783a5fd4d2c3c6ab68d38b7097246c93f4c19#npm:5.40.1"],\
|
["@typescript-eslint/eslint-plugin", "virtual:04783e12400851b8a3d76e71495851cc94959db6e62f04cb0a31190080629440b182d8c8eb4d7f2b04e281912f2783a5fd4d2c3c6ab68d38b7097246c93f4c19#npm:5.40.1"],\
|
||||||
["aws-sdk", "npm:2.1253.0"],\
|
["aws-sdk", "npm:2.1260.0"],\
|
||||||
["axios", "npm:1.1.3"],\
|
["axios", "npm:1.1.3"],\
|
||||||
["bcryptjs", "npm:2.4.3"],\
|
["bcryptjs", "npm:2.4.3"],\
|
||||||
["cors", "npm:2.8.5"],\
|
["cors", "npm:2.8.5"],\
|
||||||
@@ -2783,13 +2779,12 @@ const RAW_RUNTIME_STATE =
|
|||||||
"packageLocation": "./packages/domain-events-infra/",\
|
"packageLocation": "./packages/domain-events-infra/",\
|
||||||
"packageDependencies": [\
|
"packageDependencies": [\
|
||||||
["@standardnotes/domain-events-infra", "workspace:packages/domain-events-infra"],\
|
["@standardnotes/domain-events-infra", "workspace:packages/domain-events-infra"],\
|
||||||
["@newrelic/native-metrics", "npm:9.0.0"],\
|
|
||||||
["@standardnotes/domain-events", "workspace:packages/domain-events"],\
|
["@standardnotes/domain-events", "workspace:packages/domain-events"],\
|
||||||
["@types/ioredis", "npm:5.0.0"],\
|
["@types/ioredis", "npm:5.0.0"],\
|
||||||
["@types/jest", "npm:29.1.1"],\
|
["@types/jest", "npm:29.1.1"],\
|
||||||
["@types/newrelic", "npm:7.0.4"],\
|
["@types/newrelic", "npm:7.0.4"],\
|
||||||
["@typescript-eslint/eslint-plugin", "virtual:fd909b174d079e30b336c4ce72c38a88c1e447767b1a8dd7655e07719a1e31b97807f0931368724fc78897ff15e6a6d00b83316c0f76d11f85111f342e08bb79#npm:5.30.5"],\
|
["@typescript-eslint/eslint-plugin", "virtual:fd909b174d079e30b336c4ce72c38a88c1e447767b1a8dd7655e07719a1e31b97807f0931368724fc78897ff15e6a6d00b83316c0f76d11f85111f342e08bb79#npm:5.30.5"],\
|
||||||
["aws-sdk", "npm:2.1253.0"],\
|
["aws-sdk", "npm:2.1260.0"],\
|
||||||
["eslint-plugin-prettier", "virtual:fd909b174d079e30b336c4ce72c38a88c1e447767b1a8dd7655e07719a1e31b97807f0931368724fc78897ff15e6a6d00b83316c0f76d11f85111f342e08bb79#npm:4.2.1"],\
|
["eslint-plugin-prettier", "virtual:fd909b174d079e30b336c4ce72c38a88c1e447767b1a8dd7655e07719a1e31b97807f0931368724fc78897ff15e6a6d00b83316c0f76d11f85111f342e08bb79#npm:4.2.1"],\
|
||||||
["ioredis", "npm:5.2.4"],\
|
["ioredis", "npm:5.2.4"],\
|
||||||
["jest", "virtual:fd909b174d079e30b336c4ce72c38a88c1e447767b1a8dd7655e07719a1e31b97807f0931368724fc78897ff15e6a6d00b83316c0f76d11f85111f342e08bb79#npm:29.1.2"],\
|
["jest", "virtual:fd909b174d079e30b336c4ce72c38a88c1e447767b1a8dd7655e07719a1e31b97807f0931368724fc78897ff15e6a6d00b83316c0f76d11f85111f342e08bb79#npm:29.1.2"],\
|
||||||
@@ -2823,7 +2818,6 @@ const RAW_RUNTIME_STATE =
|
|||||||
"packageLocation": "./packages/event-store/",\
|
"packageLocation": "./packages/event-store/",\
|
||||||
"packageDependencies": [\
|
"packageDependencies": [\
|
||||||
["@standardnotes/event-store", "workspace:packages/event-store"],\
|
["@standardnotes/event-store", "workspace:packages/event-store"],\
|
||||||
["@newrelic/native-metrics", "npm:9.0.0"],\
|
|
||||||
["@standardnotes/domain-events", "workspace:packages/domain-events"],\
|
["@standardnotes/domain-events", "workspace:packages/domain-events"],\
|
||||||
["@standardnotes/domain-events-infra", "workspace:packages/domain-events-infra"],\
|
["@standardnotes/domain-events-infra", "workspace:packages/domain-events-infra"],\
|
||||||
["@standardnotes/time", "workspace:packages/time"],\
|
["@standardnotes/time", "workspace:packages/time"],\
|
||||||
@@ -2832,7 +2826,7 @@ const RAW_RUNTIME_STATE =
|
|||||||
["@types/newrelic", "npm:7.0.4"],\
|
["@types/newrelic", "npm:7.0.4"],\
|
||||||
["@types/nodemailer", "npm:6.4.6"],\
|
["@types/nodemailer", "npm:6.4.6"],\
|
||||||
["@typescript-eslint/eslint-plugin", "virtual:04783e12400851b8a3d76e71495851cc94959db6e62f04cb0a31190080629440b182d8c8eb4d7f2b04e281912f2783a5fd4d2c3c6ab68d38b7097246c93f4c19#npm:5.40.1"],\
|
["@typescript-eslint/eslint-plugin", "virtual:04783e12400851b8a3d76e71495851cc94959db6e62f04cb0a31190080629440b182d8c8eb4d7f2b04e281912f2783a5fd4d2c3c6ab68d38b7097246c93f4c19#npm:5.40.1"],\
|
||||||
["aws-sdk", "npm:2.1253.0"],\
|
["aws-sdk", "npm:2.1260.0"],\
|
||||||
["dotenv", "npm:16.0.1"],\
|
["dotenv", "npm:16.0.1"],\
|
||||||
["eslint", "npm:8.25.0"],\
|
["eslint", "npm:8.25.0"],\
|
||||||
["eslint-plugin-prettier", "virtual:c66bf20e88479ada0172094776519a9f51acc4731d22079b60a295bcec7ea42d5545cbce58a77a50d932bf953298799135e99707486e343da6d99ba1d167bdbd#npm:4.2.1"],\
|
["eslint-plugin-prettier", "virtual:c66bf20e88479ada0172094776519a9f51acc4731d22079b60a295bcec7ea42d5545cbce58a77a50d932bf953298799135e99707486e343da6d99ba1d167bdbd#npm:4.2.1"],\
|
||||||
@@ -2879,7 +2873,6 @@ const RAW_RUNTIME_STATE =
|
|||||||
"packageLocation": "./packages/files/",\
|
"packageLocation": "./packages/files/",\
|
||||||
"packageDependencies": [\
|
"packageDependencies": [\
|
||||||
["@standardnotes/files-server", "workspace:packages/files"],\
|
["@standardnotes/files-server", "workspace:packages/files"],\
|
||||||
["@newrelic/native-metrics", "npm:9.0.0"],\
|
|
||||||
["@sentry/node", "npm:7.19.0"],\
|
["@sentry/node", "npm:7.19.0"],\
|
||||||
["@standardnotes/common", "workspace:packages/common"],\
|
["@standardnotes/common", "workspace:packages/common"],\
|
||||||
["@standardnotes/config", "npm:2.4.3"],\
|
["@standardnotes/config", "npm:2.4.3"],\
|
||||||
@@ -2899,7 +2892,7 @@ const RAW_RUNTIME_STATE =
|
|||||||
["@types/prettyjson", "npm:0.0.30"],\
|
["@types/prettyjson", "npm:0.0.30"],\
|
||||||
["@types/uuid", "npm:8.3.4"],\
|
["@types/uuid", "npm:8.3.4"],\
|
||||||
["@typescript-eslint/eslint-plugin", "virtual:04783e12400851b8a3d76e71495851cc94959db6e62f04cb0a31190080629440b182d8c8eb4d7f2b04e281912f2783a5fd4d2c3c6ab68d38b7097246c93f4c19#npm:5.40.1"],\
|
["@typescript-eslint/eslint-plugin", "virtual:04783e12400851b8a3d76e71495851cc94959db6e62f04cb0a31190080629440b182d8c8eb4d7f2b04e281912f2783a5fd4d2c3c6ab68d38b7097246c93f4c19#npm:5.40.1"],\
|
||||||
["aws-sdk", "npm:2.1253.0"],\
|
["aws-sdk", "npm:2.1260.0"],\
|
||||||
["connect-busboy", "npm:1.0.0"],\
|
["connect-busboy", "npm:1.0.0"],\
|
||||||
["cors", "npm:2.8.5"],\
|
["cors", "npm:2.8.5"],\
|
||||||
["dayjs", "npm:1.11.6"],\
|
["dayjs", "npm:1.11.6"],\
|
||||||
@@ -3014,7 +3007,6 @@ const RAW_RUNTIME_STATE =
|
|||||||
"packageLocation": "./packages/revisions/",\
|
"packageLocation": "./packages/revisions/",\
|
||||||
"packageDependencies": [\
|
"packageDependencies": [\
|
||||||
["@standardnotes/revisions-server", "workspace:packages/revisions"],\
|
["@standardnotes/revisions-server", "workspace:packages/revisions"],\
|
||||||
["@newrelic/native-metrics", "npm:9.0.0"],\
|
|
||||||
["@newrelic/winston-enricher", "virtual:c66bf20e88479ada0172094776519a9f51acc4731d22079b60a295bcec7ea42d5545cbce58a77a50d932bf953298799135e99707486e343da6d99ba1d167bdbd#npm:4.0.0"],\
|
["@newrelic/winston-enricher", "virtual:c66bf20e88479ada0172094776519a9f51acc4731d22079b60a295bcec7ea42d5545cbce58a77a50d932bf953298799135e99707486e343da6d99ba1d167bdbd#npm:4.0.0"],\
|
||||||
["@sentry/node", "npm:7.19.0"],\
|
["@sentry/node", "npm:7.19.0"],\
|
||||||
["@standardnotes/api", "npm:1.19.0"],\
|
["@standardnotes/api", "npm:1.19.0"],\
|
||||||
@@ -3032,7 +3024,7 @@ const RAW_RUNTIME_STATE =
|
|||||||
["@types/jest", "npm:29.1.1"],\
|
["@types/jest", "npm:29.1.1"],\
|
||||||
["@types/newrelic", "npm:7.0.4"],\
|
["@types/newrelic", "npm:7.0.4"],\
|
||||||
["@typescript-eslint/eslint-plugin", "virtual:04783e12400851b8a3d76e71495851cc94959db6e62f04cb0a31190080629440b182d8c8eb4d7f2b04e281912f2783a5fd4d2c3c6ab68d38b7097246c93f4c19#npm:5.40.1"],\
|
["@typescript-eslint/eslint-plugin", "virtual:04783e12400851b8a3d76e71495851cc94959db6e62f04cb0a31190080629440b182d8c8eb4d7f2b04e281912f2783a5fd4d2c3c6ab68d38b7097246c93f4c19#npm:5.40.1"],\
|
||||||
["aws-sdk", "npm:2.1253.0"],\
|
["aws-sdk", "npm:2.1260.0"],\
|
||||||
["cors", "npm:2.8.5"],\
|
["cors", "npm:2.8.5"],\
|
||||||
["dotenv", "npm:16.0.1"],\
|
["dotenv", "npm:16.0.1"],\
|
||||||
["eslint", "npm:8.25.0"],\
|
["eslint", "npm:8.25.0"],\
|
||||||
@@ -3060,7 +3052,6 @@ const RAW_RUNTIME_STATE =
|
|||||||
"packageLocation": "./packages/scheduler/",\
|
"packageLocation": "./packages/scheduler/",\
|
||||||
"packageDependencies": [\
|
"packageDependencies": [\
|
||||||
["@standardnotes/scheduler-server", "workspace:packages/scheduler"],\
|
["@standardnotes/scheduler-server", "workspace:packages/scheduler"],\
|
||||||
["@newrelic/native-metrics", "npm:9.0.0"],\
|
|
||||||
["@newrelic/winston-enricher", "virtual:c66bf20e88479ada0172094776519a9f51acc4731d22079b60a295bcec7ea42d5545cbce58a77a50d932bf953298799135e99707486e343da6d99ba1d167bdbd#npm:4.0.0"],\
|
["@newrelic/winston-enricher", "virtual:c66bf20e88479ada0172094776519a9f51acc4731d22079b60a295bcec7ea42d5545cbce58a77a50d932bf953298799135e99707486e343da6d99ba1d167bdbd#npm:4.0.0"],\
|
||||||
["@sentry/node", "npm:7.19.0"],\
|
["@sentry/node", "npm:7.19.0"],\
|
||||||
["@standardnotes/common", "workspace:packages/common"],\
|
["@standardnotes/common", "workspace:packages/common"],\
|
||||||
@@ -3073,7 +3064,7 @@ const RAW_RUNTIME_STATE =
|
|||||||
["@types/newrelic", "npm:7.0.4"],\
|
["@types/newrelic", "npm:7.0.4"],\
|
||||||
["@types/node", "npm:18.11.9"],\
|
["@types/node", "npm:18.11.9"],\
|
||||||
["@typescript-eslint/eslint-plugin", "virtual:04783e12400851b8a3d76e71495851cc94959db6e62f04cb0a31190080629440b182d8c8eb4d7f2b04e281912f2783a5fd4d2c3c6ab68d38b7097246c93f4c19#npm:5.40.1"],\
|
["@typescript-eslint/eslint-plugin", "virtual:04783e12400851b8a3d76e71495851cc94959db6e62f04cb0a31190080629440b182d8c8eb4d7f2b04e281912f2783a5fd4d2c3c6ab68d38b7097246c93f4c19#npm:5.40.1"],\
|
||||||
["aws-sdk", "npm:2.1253.0"],\
|
["aws-sdk", "npm:2.1260.0"],\
|
||||||
["dayjs", "npm:1.11.6"],\
|
["dayjs", "npm:1.11.6"],\
|
||||||
["dotenv", "npm:16.0.1"],\
|
["dotenv", "npm:16.0.1"],\
|
||||||
["eslint", "npm:8.25.0"],\
|
["eslint", "npm:8.25.0"],\
|
||||||
@@ -3122,7 +3113,6 @@ const RAW_RUNTIME_STATE =
|
|||||||
["@lerna-lite/cli", "npm:1.6.0"],\
|
["@lerna-lite/cli", "npm:1.6.0"],\
|
||||||
["@lerna-lite/list", "npm:1.6.0"],\
|
["@lerna-lite/list", "npm:1.6.0"],\
|
||||||
["@lerna-lite/run", "npm:1.6.0"],\
|
["@lerna-lite/run", "npm:1.6.0"],\
|
||||||
["@newrelic/native-metrics", "npm:9.0.0"],\
|
|
||||||
["@sentry/node", "npm:7.19.0"],\
|
["@sentry/node", "npm:7.19.0"],\
|
||||||
["@types/jest", "npm:29.1.1"],\
|
["@types/jest", "npm:29.1.1"],\
|
||||||
["@types/newrelic", "npm:7.0.4"],\
|
["@types/newrelic", "npm:7.0.4"],\
|
||||||
@@ -3145,7 +3135,6 @@ const RAW_RUNTIME_STATE =
|
|||||||
"packageLocation": "./packages/settings/",\
|
"packageLocation": "./packages/settings/",\
|
||||||
"packageDependencies": [\
|
"packageDependencies": [\
|
||||||
["@standardnotes/settings", "workspace:packages/settings"],\
|
["@standardnotes/settings", "workspace:packages/settings"],\
|
||||||
["@newrelic/native-metrics", "npm:9.0.0"],\
|
|
||||||
["@typescript-eslint/eslint-plugin", "virtual:fd909b174d079e30b336c4ce72c38a88c1e447767b1a8dd7655e07719a1e31b97807f0931368724fc78897ff15e6a6d00b83316c0f76d11f85111f342e08bb79#npm:5.30.5"],\
|
["@typescript-eslint/eslint-plugin", "virtual:fd909b174d079e30b336c4ce72c38a88c1e447767b1a8dd7655e07719a1e31b97807f0931368724fc78897ff15e6a6d00b83316c0f76d11f85111f342e08bb79#npm:5.30.5"],\
|
||||||
["eslint-plugin-prettier", "virtual:fd909b174d079e30b336c4ce72c38a88c1e447767b1a8dd7655e07719a1e31b97807f0931368724fc78897ff15e6a6d00b83316c0f76d11f85111f342e08bb79#npm:4.2.1"],\
|
["eslint-plugin-prettier", "virtual:fd909b174d079e30b336c4ce72c38a88c1e447767b1a8dd7655e07719a1e31b97807f0931368724fc78897ff15e6a6d00b83316c0f76d11f85111f342e08bb79#npm:4.2.1"],\
|
||||||
["reflect-metadata", "npm:0.1.13"],\
|
["reflect-metadata", "npm:0.1.13"],\
|
||||||
@@ -3189,7 +3178,6 @@ const RAW_RUNTIME_STATE =
|
|||||||
"packageLocation": "./packages/syncing-server/",\
|
"packageLocation": "./packages/syncing-server/",\
|
||||||
"packageDependencies": [\
|
"packageDependencies": [\
|
||||||
["@standardnotes/syncing-server", "workspace:packages/syncing-server"],\
|
["@standardnotes/syncing-server", "workspace:packages/syncing-server"],\
|
||||||
["@newrelic/native-metrics", "npm:9.0.0"],\
|
|
||||||
["@newrelic/winston-enricher", "virtual:c66bf20e88479ada0172094776519a9f51acc4731d22079b60a295bcec7ea42d5545cbce58a77a50d932bf953298799135e99707486e343da6d99ba1d167bdbd#npm:4.0.0"],\
|
["@newrelic/winston-enricher", "virtual:c66bf20e88479ada0172094776519a9f51acc4731d22079b60a295bcec7ea42d5545cbce58a77a50d932bf953298799135e99707486e343da6d99ba1d167bdbd#npm:4.0.0"],\
|
||||||
["@sentry/node", "npm:7.19.0"],\
|
["@sentry/node", "npm:7.19.0"],\
|
||||||
["@standardnotes/common", "workspace:packages/common"],\
|
["@standardnotes/common", "workspace:packages/common"],\
|
||||||
@@ -3213,7 +3201,7 @@ const RAW_RUNTIME_STATE =
|
|||||||
["@types/ua-parser-js", "npm:0.7.36"],\
|
["@types/ua-parser-js", "npm:0.7.36"],\
|
||||||
["@types/uuid", "npm:8.3.4"],\
|
["@types/uuid", "npm:8.3.4"],\
|
||||||
["@typescript-eslint/eslint-plugin", "virtual:04783e12400851b8a3d76e71495851cc94959db6e62f04cb0a31190080629440b182d8c8eb4d7f2b04e281912f2783a5fd4d2c3c6ab68d38b7097246c93f4c19#npm:5.40.1"],\
|
["@typescript-eslint/eslint-plugin", "virtual:04783e12400851b8a3d76e71495851cc94959db6e62f04cb0a31190080629440b182d8c8eb4d7f2b04e281912f2783a5fd4d2c3c6ab68d38b7097246c93f4c19#npm:5.40.1"],\
|
||||||
["aws-sdk", "npm:2.1253.0"],\
|
["aws-sdk", "npm:2.1260.0"],\
|
||||||
["axios", "npm:1.1.3"],\
|
["axios", "npm:1.1.3"],\
|
||||||
["cors", "npm:2.8.5"],\
|
["cors", "npm:2.8.5"],\
|
||||||
["dotenv", "npm:16.0.1"],\
|
["dotenv", "npm:16.0.1"],\
|
||||||
@@ -3290,7 +3278,6 @@ const RAW_RUNTIME_STATE =
|
|||||||
"packageLocation": "./packages/websockets/",\
|
"packageLocation": "./packages/websockets/",\
|
||||||
"packageDependencies": [\
|
"packageDependencies": [\
|
||||||
["@standardnotes/websockets-server", "workspace:packages/websockets"],\
|
["@standardnotes/websockets-server", "workspace:packages/websockets"],\
|
||||||
["@newrelic/native-metrics", "npm:9.0.0"],\
|
|
||||||
["@newrelic/winston-enricher", "virtual:c66bf20e88479ada0172094776519a9f51acc4731d22079b60a295bcec7ea42d5545cbce58a77a50d932bf953298799135e99707486e343da6d99ba1d167bdbd#npm:4.0.0"],\
|
["@newrelic/winston-enricher", "virtual:c66bf20e88479ada0172094776519a9f51acc4731d22079b60a295bcec7ea42d5545cbce58a77a50d932bf953298799135e99707486e343da6d99ba1d167bdbd#npm:4.0.0"],\
|
||||||
["@sentry/node", "npm:7.19.0"],\
|
["@sentry/node", "npm:7.19.0"],\
|
||||||
["@standardnotes/api", "npm:1.19.0"],\
|
["@standardnotes/api", "npm:1.19.0"],\
|
||||||
@@ -3304,7 +3291,7 @@ const RAW_RUNTIME_STATE =
|
|||||||
["@types/jest", "npm:29.1.1"],\
|
["@types/jest", "npm:29.1.1"],\
|
||||||
["@types/newrelic", "npm:7.0.4"],\
|
["@types/newrelic", "npm:7.0.4"],\
|
||||||
["@typescript-eslint/eslint-plugin", "virtual:04783e12400851b8a3d76e71495851cc94959db6e62f04cb0a31190080629440b182d8c8eb4d7f2b04e281912f2783a5fd4d2c3c6ab68d38b7097246c93f4c19#npm:5.40.1"],\
|
["@typescript-eslint/eslint-plugin", "virtual:04783e12400851b8a3d76e71495851cc94959db6e62f04cb0a31190080629440b182d8c8eb4d7f2b04e281912f2783a5fd4d2c3c6ab68d38b7097246c93f4c19#npm:5.40.1"],\
|
||||||
["aws-sdk", "npm:2.1253.0"],\
|
["aws-sdk", "npm:2.1260.0"],\
|
||||||
["axios", "npm:1.1.3"],\
|
["axios", "npm:1.1.3"],\
|
||||||
["cors", "npm:2.8.5"],\
|
["cors", "npm:2.8.5"],\
|
||||||
["dotenv", "npm:16.0.1"],\
|
["dotenv", "npm:16.0.1"],\
|
||||||
@@ -3331,7 +3318,6 @@ const RAW_RUNTIME_STATE =
|
|||||||
"packageLocation": "./packages/workspace/",\
|
"packageLocation": "./packages/workspace/",\
|
||||||
"packageDependencies": [\
|
"packageDependencies": [\
|
||||||
["@standardnotes/workspace-server", "workspace:packages/workspace"],\
|
["@standardnotes/workspace-server", "workspace:packages/workspace"],\
|
||||||
["@newrelic/native-metrics", "npm:9.0.0"],\
|
|
||||||
["@newrelic/winston-enricher", "virtual:c66bf20e88479ada0172094776519a9f51acc4731d22079b60a295bcec7ea42d5545cbce58a77a50d932bf953298799135e99707486e343da6d99ba1d167bdbd#npm:4.0.0"],\
|
["@newrelic/winston-enricher", "virtual:c66bf20e88479ada0172094776519a9f51acc4731d22079b60a295bcec7ea42d5545cbce58a77a50d932bf953298799135e99707486e343da6d99ba1d167bdbd#npm:4.0.0"],\
|
||||||
["@sentry/node", "npm:7.19.0"],\
|
["@sentry/node", "npm:7.19.0"],\
|
||||||
["@standardnotes/api", "npm:1.19.0"],\
|
["@standardnotes/api", "npm:1.19.0"],\
|
||||||
@@ -3347,7 +3333,7 @@ const RAW_RUNTIME_STATE =
|
|||||||
["@types/jest", "npm:29.1.1"],\
|
["@types/jest", "npm:29.1.1"],\
|
||||||
["@types/newrelic", "npm:7.0.4"],\
|
["@types/newrelic", "npm:7.0.4"],\
|
||||||
["@typescript-eslint/eslint-plugin", "virtual:04783e12400851b8a3d76e71495851cc94959db6e62f04cb0a31190080629440b182d8c8eb4d7f2b04e281912f2783a5fd4d2c3c6ab68d38b7097246c93f4c19#npm:5.40.1"],\
|
["@typescript-eslint/eslint-plugin", "virtual:04783e12400851b8a3d76e71495851cc94959db6e62f04cb0a31190080629440b182d8c8eb4d7f2b04e281912f2783a5fd4d2c3c6ab68d38b7097246c93f4c19#npm:5.40.1"],\
|
||||||
["aws-sdk", "npm:2.1253.0"],\
|
["aws-sdk", "npm:2.1260.0"],\
|
||||||
["cors", "npm:2.8.5"],\
|
["cors", "npm:2.8.5"],\
|
||||||
["dotenv", "npm:16.0.1"],\
|
["dotenv", "npm:16.0.1"],\
|
||||||
["eslint", "npm:8.25.0"],\
|
["eslint", "npm:8.25.0"],\
|
||||||
@@ -4814,10 +4800,10 @@ const RAW_RUNTIME_STATE =
|
|||||||
}]\
|
}]\
|
||||||
]],\
|
]],\
|
||||||
["aws-sdk", [\
|
["aws-sdk", [\
|
||||||
["npm:2.1253.0", {\
|
["npm:2.1260.0", {\
|
||||||
"packageLocation": "./.yarn/cache/aws-sdk-npm-2.1253.0-2cf60975ab-faa4af2949.zip/node_modules/aws-sdk/",\
|
"packageLocation": "./.yarn/cache/aws-sdk-npm-2.1260.0-0145998ab1-9a1b2e4cb5.zip/node_modules/aws-sdk/",\
|
||||||
"packageDependencies": [\
|
"packageDependencies": [\
|
||||||
["aws-sdk", "npm:2.1253.0"],\
|
["aws-sdk", "npm:2.1260.0"],\
|
||||||
["buffer", "npm:4.9.2"],\
|
["buffer", "npm:4.9.2"],\
|
||||||
["events", "npm:1.1.1"],\
|
["events", "npm:1.1.1"],\
|
||||||
["ieee754", "npm:1.1.13"],\
|
["ieee754", "npm:1.1.13"],\
|
||||||
@@ -12584,7 +12570,7 @@ const RAW_RUNTIME_STATE =
|
|||||||
"packageDependencies": [\
|
"packageDependencies": [\
|
||||||
["sqs-consumer", "virtual:685a6222c3349423674bb7f0684ba34e2ab20912010f352e04dcf707a156e13183fc382e2417cb37a60f3e7b52fd0178c53181674890e1773eb83e190dc13378#npm:5.7.0"],\
|
["sqs-consumer", "virtual:685a6222c3349423674bb7f0684ba34e2ab20912010f352e04dcf707a156e13183fc382e2417cb37a60f3e7b52fd0178c53181674890e1773eb83e190dc13378#npm:5.7.0"],\
|
||||||
["@types/aws-sdk", null],\
|
["@types/aws-sdk", null],\
|
||||||
["aws-sdk", "npm:2.1253.0"],\
|
["aws-sdk", "npm:2.1260.0"],\
|
||||||
["debug", "virtual:b86a9fb34323a98c6519528ed55faa0d9b44ca8879307c0b29aa384bde47ff59a7d0c9051b31246f14521dfb71ba3c5d6d0b35c29fffc17bf875aa6ad977d9e8#npm:4.3.4"]\
|
["debug", "virtual:b86a9fb34323a98c6519528ed55faa0d9b44ca8879307c0b29aa384bde47ff59a7d0c9051b31246f14521dfb71ba3c5d6d0b35c29fffc17bf875aa6ad977d9e8#npm:4.3.4"]\
|
||||||
],\
|
],\
|
||||||
"packagePeers": [\
|
"packagePeers": [\
|
||||||
|
|||||||
BIN
Binary file not shown.
@@ -61,7 +61,6 @@
|
|||||||
},
|
},
|
||||||
"packageManager": "yarn@4.0.0-rc.25",
|
"packageManager": "yarn@4.0.0-rc.25",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@newrelic/native-metrics": "^9.0.0",
|
|
||||||
"@sentry/node": "^7.19.0",
|
"@sentry/node": "^7.19.0",
|
||||||
"newrelic": "^9.6.0"
|
"newrelic": "^9.6.0"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,30 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [2.11.13](https://github.com/standardnotes/server/compare/@standardnotes/analytics@2.11.12...@standardnotes/analytics@2.11.13) (2022-11-25)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/analytics
|
||||||
|
|
||||||
|
## [2.11.12](https://github.com/standardnotes/server/compare/@standardnotes/analytics@2.11.11...@standardnotes/analytics@2.11.12) (2022-11-24)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/analytics
|
||||||
|
|
||||||
|
## [2.11.11](https://github.com/standardnotes/server/compare/@standardnotes/analytics@2.11.10...@standardnotes/analytics@2.11.11) (2022-11-24)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/analytics
|
||||||
|
|
||||||
|
## [2.11.10](https://github.com/standardnotes/server/compare/@standardnotes/analytics@2.11.9...@standardnotes/analytics@2.11.10) (2022-11-24)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/analytics
|
||||||
|
|
||||||
|
## [2.11.9](https://github.com/standardnotes/server/compare/@standardnotes/analytics@2.11.8...@standardnotes/analytics@2.11.9) (2022-11-24)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/analytics
|
||||||
|
|
||||||
|
## [2.11.8](https://github.com/standardnotes/server/compare/@standardnotes/analytics@2.11.7...@standardnotes/analytics@2.11.8) (2022-11-23)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/analytics
|
||||||
|
|
||||||
## [2.11.7](https://github.com/standardnotes/server/compare/@standardnotes/analytics@2.11.6...@standardnotes/analytics@2.11.7) (2022-11-23)
|
## [2.11.7](https://github.com/standardnotes/server/compare/@standardnotes/analytics@2.11.6...@standardnotes/analytics@2.11.7) (2022-11-23)
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@standardnotes/analytics",
|
"name": "@standardnotes/analytics",
|
||||||
"version": "2.11.7",
|
"version": "2.11.13",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=18.0.0 <19.0.0"
|
"node": ">=18.0.0 <19.0.0"
|
||||||
},
|
},
|
||||||
@@ -37,7 +37,6 @@
|
|||||||
"typescript": "^4.8.4"
|
"typescript": "^4.8.4"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@newrelic/native-metrics": "^9.0.0",
|
|
||||||
"@newrelic/winston-enricher": "^4.0.0",
|
"@newrelic/winston-enricher": "^4.0.0",
|
||||||
"@sentry/node": "^7.19.0",
|
"@sentry/node": "^7.19.0",
|
||||||
"@standardnotes/common": "workspace:*",
|
"@standardnotes/common": "workspace:*",
|
||||||
@@ -45,7 +44,7 @@
|
|||||||
"@standardnotes/domain-events": "workspace:*",
|
"@standardnotes/domain-events": "workspace:*",
|
||||||
"@standardnotes/domain-events-infra": "workspace:*",
|
"@standardnotes/domain-events-infra": "workspace:*",
|
||||||
"@standardnotes/time": "workspace:*",
|
"@standardnotes/time": "workspace:*",
|
||||||
"aws-sdk": "^2.1253.0",
|
"aws-sdk": "^2.1260.0",
|
||||||
"dayjs": "^1.11.6",
|
"dayjs": "^1.11.6",
|
||||||
"dotenv": "^16.0.1",
|
"dotenv": "^16.0.1",
|
||||||
"inversify": "^6.0.1",
|
"inversify": "^6.0.1",
|
||||||
|
|||||||
@@ -3,6 +3,24 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [1.39.4](https://github.com/standardnotes/api-gateway/compare/@standardnotes/api-gateway@1.39.3...@standardnotes/api-gateway@1.39.4) (2022-11-25)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **api-gateway:** make revisions and workspace server urls optional ([8907879](https://github.com/standardnotes/api-gateway/commit/8907879a194d2d8328fbd3ca8ec9d0b608c2da50))
|
||||||
|
|
||||||
|
## [1.39.3](https://github.com/standardnotes/api-gateway/compare/@standardnotes/api-gateway@1.39.2...@standardnotes/api-gateway@1.39.3) (2022-11-25)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/api-gateway
|
||||||
|
|
||||||
|
## [1.39.2](https://github.com/standardnotes/api-gateway/compare/@standardnotes/api-gateway@1.39.1...@standardnotes/api-gateway@1.39.2) (2022-11-24)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/api-gateway
|
||||||
|
|
||||||
|
## [1.39.1](https://github.com/standardnotes/api-gateway/compare/@standardnotes/api-gateway@1.39.0...@standardnotes/api-gateway@1.39.1) (2022-11-23)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/api-gateway
|
||||||
|
|
||||||
# [1.39.0](https://github.com/standardnotes/api-gateway/compare/@standardnotes/api-gateway@1.38.9...@standardnotes/api-gateway@1.39.0) (2022-11-22)
|
# [1.39.0](https://github.com/standardnotes/api-gateway/compare/@standardnotes/api-gateway@1.38.9...@standardnotes/api-gateway@1.39.0) (2022-11-22)
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@standardnotes/api-gateway",
|
"name": "@standardnotes/api-gateway",
|
||||||
"version": "1.39.0",
|
"version": "1.39.4",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=18.0.0 <19.0.0"
|
"node": ">=18.0.0 <19.0.0"
|
||||||
},
|
},
|
||||||
@@ -20,7 +20,6 @@
|
|||||||
"upgrade:snjs": "yarn ncu -u '@standardnotes/*'"
|
"upgrade:snjs": "yarn ncu -u '@standardnotes/*'"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@newrelic/native-metrics": "^9.0.0",
|
|
||||||
"@newrelic/winston-enricher": "^4.0.0",
|
"@newrelic/winston-enricher": "^4.0.0",
|
||||||
"@sentry/node": "^7.19.0",
|
"@sentry/node": "^7.19.0",
|
||||||
"@standardnotes/common": "workspace:^",
|
"@standardnotes/common": "workspace:^",
|
||||||
@@ -28,7 +27,7 @@
|
|||||||
"@standardnotes/domain-events-infra": "workspace:*",
|
"@standardnotes/domain-events-infra": "workspace:*",
|
||||||
"@standardnotes/security": "workspace:*",
|
"@standardnotes/security": "workspace:*",
|
||||||
"@standardnotes/time": "workspace:*",
|
"@standardnotes/time": "workspace:*",
|
||||||
"aws-sdk": "^2.1253.0",
|
"aws-sdk": "^2.1260.0",
|
||||||
"axios": "^1.1.3",
|
"axios": "^1.1.3",
|
||||||
"cors": "2.8.5",
|
"cors": "2.8.5",
|
||||||
"dotenv": "^16.0.1",
|
"dotenv": "^16.0.1",
|
||||||
|
|||||||
@@ -54,11 +54,11 @@ export class ContainerConfigLoader {
|
|||||||
// env vars
|
// env vars
|
||||||
container.bind(TYPES.SYNCING_SERVER_JS_URL).toConstantValue(env.get('SYNCING_SERVER_JS_URL'))
|
container.bind(TYPES.SYNCING_SERVER_JS_URL).toConstantValue(env.get('SYNCING_SERVER_JS_URL'))
|
||||||
container.bind(TYPES.AUTH_SERVER_URL).toConstantValue(env.get('AUTH_SERVER_URL'))
|
container.bind(TYPES.AUTH_SERVER_URL).toConstantValue(env.get('AUTH_SERVER_URL'))
|
||||||
container.bind(TYPES.REVISIONS_SERVER_URL).toConstantValue(env.get('REVISIONS_SERVER_URL'))
|
container.bind(TYPES.REVISIONS_SERVER_URL).toConstantValue(env.get('REVISIONS_SERVER_URL', true))
|
||||||
container.bind(TYPES.PAYMENTS_SERVER_URL).toConstantValue(env.get('PAYMENTS_SERVER_URL', true))
|
container.bind(TYPES.PAYMENTS_SERVER_URL).toConstantValue(env.get('PAYMENTS_SERVER_URL', true))
|
||||||
container.bind(TYPES.FILES_SERVER_URL).toConstantValue(env.get('FILES_SERVER_URL', true))
|
container.bind(TYPES.FILES_SERVER_URL).toConstantValue(env.get('FILES_SERVER_URL', true))
|
||||||
container.bind(TYPES.AUTH_JWT_SECRET).toConstantValue(env.get('AUTH_JWT_SECRET'))
|
container.bind(TYPES.AUTH_JWT_SECRET).toConstantValue(env.get('AUTH_JWT_SECRET'))
|
||||||
container.bind(TYPES.WORKSPACE_SERVER_URL).toConstantValue(env.get('WORKSPACE_SERVER_URL'))
|
container.bind(TYPES.WORKSPACE_SERVER_URL).toConstantValue(env.get('WORKSPACE_SERVER_URL', true))
|
||||||
container.bind(TYPES.WEB_SOCKET_SERVER_URL).toConstantValue(env.get('WEB_SOCKET_SERVER_URL', true))
|
container.bind(TYPES.WEB_SOCKET_SERVER_URL).toConstantValue(env.get('WEB_SOCKET_SERVER_URL', true))
|
||||||
container
|
container
|
||||||
.bind(TYPES.HTTP_CALL_TIMEOUT)
|
.bind(TYPES.HTTP_CALL_TIMEOUT)
|
||||||
|
|||||||
@@ -39,6 +39,11 @@ export class HttpService implements HttpServiceInterface {
|
|||||||
endpoint: string,
|
endpoint: string,
|
||||||
payload?: Record<string, unknown> | string,
|
payload?: Record<string, unknown> | string,
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
|
if (!this.revisionsServerUrl) {
|
||||||
|
response.status(400).send({ message: 'Revisions Server not configured' })
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
await this.callServer(this.revisionsServerUrl, request, response, endpoint, payload)
|
await this.callServer(this.revisionsServerUrl, request, response, endpoint, payload)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -66,6 +71,12 @@ export class HttpService implements HttpServiceInterface {
|
|||||||
endpoint: string,
|
endpoint: string,
|
||||||
payload?: Record<string, unknown> | string,
|
payload?: Record<string, unknown> | string,
|
||||||
): Promise<void> {
|
): Promise<void> {
|
||||||
|
if (!this.workspaceServerUrl) {
|
||||||
|
response.status(400).send({ message: 'Workspace Server not configured' })
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
await this.callServer(this.workspaceServerUrl, request, response, endpoint, payload)
|
await this.callServer(this.workspaceServerUrl, request, response, endpoint, payload)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,30 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [1.60.13](https://github.com/standardnotes/server/compare/@standardnotes/auth-server@1.60.12...@standardnotes/auth-server@1.60.13) (2022-11-25)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **auth:** bring back streaming all users in an email campaign send out ([8407c3b](https://github.com/standardnotes/server/commit/8407c3b64910c87591a97b856f5b0c0aebc98e51))
|
||||||
|
|
||||||
|
## [1.60.12](https://github.com/standardnotes/server/compare/@standardnotes/auth-server@1.60.11...@standardnotes/auth-server@1.60.12) (2022-11-25)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **auth:** tmp test email campaign black friday 2022 reminder on team only ([25a6796](https://github.com/standardnotes/server/commit/25a6796e636bc30de99001bd16a2a1084b608b6a))
|
||||||
|
|
||||||
|
## [1.60.11](https://github.com/standardnotes/server/compare/@standardnotes/auth-server@1.60.10...@standardnotes/auth-server@1.60.11) (2022-11-25)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/auth-server
|
||||||
|
|
||||||
|
## [1.60.10](https://github.com/standardnotes/server/compare/@standardnotes/auth-server@1.60.9...@standardnotes/auth-server@1.60.10) (2022-11-24)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/auth-server
|
||||||
|
|
||||||
|
## [1.60.9](https://github.com/standardnotes/server/compare/@standardnotes/auth-server@1.60.8...@standardnotes/auth-server@1.60.9) (2022-11-23)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/auth-server
|
||||||
|
|
||||||
## [1.60.8](https://github.com/standardnotes/server/compare/@standardnotes/auth-server@1.60.7...@standardnotes/auth-server@1.60.8) (2022-11-23)
|
## [1.60.8](https://github.com/standardnotes/server/compare/@standardnotes/auth-server@1.60.7...@standardnotes/auth-server@1.60.8) (2022-11-23)
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|||||||
@@ -7,6 +7,6 @@ module.exports = {
|
|||||||
transform: {
|
transform: {
|
||||||
...tsjPreset.transform,
|
...tsjPreset.transform,
|
||||||
},
|
},
|
||||||
coveragePathIgnorePatterns: ['/Bootstrap/', '/InversifyExpressUtils/', 'HealthCheckController'],
|
coveragePathIgnorePatterns: ['/Bootstrap/', '/InversifyExpressUtils/', 'HealthCheckController', '/Infra/'],
|
||||||
setupFilesAfterEnv: ['./test-setup.ts'],
|
setupFilesAfterEnv: ['./test-setup.ts'],
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@standardnotes/auth-server",
|
"name": "@standardnotes/auth-server",
|
||||||
"version": "1.60.8",
|
"version": "1.60.13",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=18.0.0 <19.0.0"
|
"node": ">=18.0.0 <19.0.0"
|
||||||
},
|
},
|
||||||
@@ -31,7 +31,6 @@
|
|||||||
"upgrade:snjs": "yarn ncu -u '@standardnotes/*'"
|
"upgrade:snjs": "yarn ncu -u '@standardnotes/*'"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@newrelic/native-metrics": "^9.0.0",
|
|
||||||
"@newrelic/winston-enricher": "^4.0.0",
|
"@newrelic/winston-enricher": "^4.0.0",
|
||||||
"@sentry/node": "^7.19.0",
|
"@sentry/node": "^7.19.0",
|
||||||
"@standardnotes/api": "^1.19.0",
|
"@standardnotes/api": "^1.19.0",
|
||||||
@@ -46,7 +45,7 @@
|
|||||||
"@standardnotes/sncrypto-common": "^1.9.0",
|
"@standardnotes/sncrypto-common": "^1.9.0",
|
||||||
"@standardnotes/sncrypto-node": "workspace:*",
|
"@standardnotes/sncrypto-node": "workspace:*",
|
||||||
"@standardnotes/time": "workspace:*",
|
"@standardnotes/time": "workspace:*",
|
||||||
"aws-sdk": "^2.1253.0",
|
"aws-sdk": "^2.1260.0",
|
||||||
"axios": "^1.1.3",
|
"axios": "^1.1.3",
|
||||||
"bcryptjs": "2.4.3",
|
"bcryptjs": "2.4.3",
|
||||||
"cors": "2.8.5",
|
"cors": "2.8.5",
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ import { User } from './User'
|
|||||||
|
|
||||||
export interface UserRepositoryInterface {
|
export interface UserRepositoryInterface {
|
||||||
streamAll(): Promise<ReadStream>
|
streamAll(): Promise<ReadStream>
|
||||||
|
streamTeam(memberEmail?: string): Promise<ReadStream>
|
||||||
findOneByUuid(uuid: string): Promise<User | null>
|
findOneByUuid(uuid: string): Promise<User | null>
|
||||||
findOneByEmail(email: string): Promise<User | null>
|
findOneByEmail(email: string): Promise<User | null>
|
||||||
save(user: User): Promise<User>
|
save(user: User): Promise<User>
|
||||||
|
|||||||
@@ -25,6 +25,17 @@ export class MySQLUserRepository implements UserRepositoryInterface {
|
|||||||
return this.ormRepository.createQueryBuilder('user').stream()
|
return this.ormRepository.createQueryBuilder('user').stream()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async streamTeam(memberEmail?: string): Promise<ReadStream> {
|
||||||
|
const queryBuilder = this.ormRepository.createQueryBuilder()
|
||||||
|
if (memberEmail !== undefined) {
|
||||||
|
queryBuilder.where('email = :email', { email: memberEmail })
|
||||||
|
} else {
|
||||||
|
queryBuilder.where('email LIKE :email', { email: '%@standardnotes.com' })
|
||||||
|
}
|
||||||
|
|
||||||
|
return queryBuilder.stream()
|
||||||
|
}
|
||||||
|
|
||||||
async findOneByUuid(uuid: string): Promise<User | null> {
|
async findOneByUuid(uuid: string): Promise<User | null> {
|
||||||
return this.ormRepository
|
return this.ormRepository
|
||||||
.createQueryBuilder('user')
|
.createQueryBuilder('user')
|
||||||
|
|||||||
@@ -3,6 +3,12 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [1.46.1](https://github.com/standardnotes/server/compare/@standardnotes/common@1.46.0...@standardnotes/common@1.46.1) (2022-11-25)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **common:** add black friday 2022 reminder message identifier ([91b76ed](https://github.com/standardnotes/server/commit/91b76edce1c1abfa4e860932d98ce8cd369017c0))
|
||||||
|
|
||||||
# [1.46.0](https://github.com/standardnotes/server/compare/@standardnotes/common@1.45.0...@standardnotes/common@1.46.0) (2022-11-22)
|
# [1.46.0](https://github.com/standardnotes/server/compare/@standardnotes/common@1.45.0...@standardnotes/common@1.46.0) (2022-11-22)
|
||||||
|
|
||||||
### Features
|
### Features
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@standardnotes/common",
|
"name": "@standardnotes/common",
|
||||||
"version": "1.46.0",
|
"version": "1.46.1",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=18.0.0 <19.0.0"
|
"node": ">=18.0.0 <19.0.0"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ export enum EmailMessageIdentifier {
|
|||||||
STUDENT_DISCOUNT_APPROVED = 'STUDENT_DISCOUNT_APPROVED',
|
STUDENT_DISCOUNT_APPROVED = 'STUDENT_DISCOUNT_APPROVED',
|
||||||
MARKETING_CAMPAIGN_FILES = 'MARKETING_CAMPAIGN_FILES',
|
MARKETING_CAMPAIGN_FILES = 'MARKETING_CAMPAIGN_FILES',
|
||||||
MARKETING_BLACK_FRIDAY_2022 = 'MARKETING_BLACK_FRIDAY_2022',
|
MARKETING_BLACK_FRIDAY_2022 = 'MARKETING_BLACK_FRIDAY_2022',
|
||||||
|
MARKETING_BLACK_FRIDAY_2022_REMINDER = 'MARKETING_BLACK_FRIDAY_2022_REMINDER',
|
||||||
PAYMENT_FAILED = 'PAYMENT_FAILED',
|
PAYMENT_FAILED = 'PAYMENT_FAILED',
|
||||||
SEND_INVOICE = 'SEND_INVOICE',
|
SEND_INVOICE = 'SEND_INVOICE',
|
||||||
DISCOUNT_NOTICE = 'DISCOUNT_NOTICE',
|
DISCOUNT_NOTICE = 'DISCOUNT_NOTICE',
|
||||||
|
|||||||
@@ -3,6 +3,28 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [1.5.1](https://github.com/standardnotes/server/compare/@standardnotes/domain-core@1.5.0...@standardnotes/domain-core@1.5.1) (2022-11-25)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/domain-core
|
||||||
|
|
||||||
|
# [1.5.0](https://github.com/standardnotes/server/compare/@standardnotes/domain-core@1.4.0...@standardnotes/domain-core@1.5.0) (2022-11-24)
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* **domain-core:** add methods to check role power ([9d90f27](https://github.com/standardnotes/server/commit/9d90f276de8915d91d009909154036ba128687e0))
|
||||||
|
|
||||||
|
# [1.4.0](https://github.com/standardnotes/server/compare/@standardnotes/domain-core@1.3.0...@standardnotes/domain-core@1.4.0) (2022-11-24)
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* **domain-core:** add role name collection value object ([ae2f8f0](https://github.com/standardnotes/server/commit/ae2f8f086b9f647bb98c59f32375b45243cb0af9))
|
||||||
|
|
||||||
|
# [1.3.0](https://github.com/standardnotes/server/compare/@standardnotes/domain-core@1.2.2...@standardnotes/domain-core@1.3.0) (2022-11-24)
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* **domain-core:** add role name value object ([748630e](https://github.com/standardnotes/server/commit/748630e1f1ed1dfae2e743cd2b3d3fd91967088c))
|
||||||
|
|
||||||
## [1.2.2](https://github.com/standardnotes/server/compare/@standardnotes/domain-core@1.2.1...@standardnotes/domain-core@1.2.2) (2022-11-22)
|
## [1.2.2](https://github.com/standardnotes/server/compare/@standardnotes/domain-core@1.2.1...@standardnotes/domain-core@1.2.2) (2022-11-22)
|
||||||
|
|
||||||
**Note:** Version bump only for package @standardnotes/domain-core
|
**Note:** Version bump only for package @standardnotes/domain-core
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@standardnotes/domain-core",
|
"name": "@standardnotes/domain-core",
|
||||||
"version": "1.2.2",
|
"version": "1.5.1",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=18.0.0 <19.0.0"
|
"node": ">=18.0.0 <19.0.0"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -0,0 +1,36 @@
|
|||||||
|
import { RoleName } from './RoleName'
|
||||||
|
|
||||||
|
describe('RoleName', () => {
|
||||||
|
it('should create a value object', () => {
|
||||||
|
const valueOrError = RoleName.create('PRO_USER')
|
||||||
|
|
||||||
|
expect(valueOrError.isFailed()).toBeFalsy()
|
||||||
|
expect(valueOrError.getValue().value).toEqual('PRO_USER')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should not create an invalid value object', () => {
|
||||||
|
for (const value of ['', undefined, null, 0, 'SOME_USER']) {
|
||||||
|
const valueOrError = RoleName.create(value as string)
|
||||||
|
|
||||||
|
expect(valueOrError.isFailed()).toBeTruthy()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should say if a role has more power or equal power to another role', () => {
|
||||||
|
const proUserRole = RoleName.create('PRO_USER').getValue()
|
||||||
|
const plusUserRole = RoleName.create('PLUS_USER').getValue()
|
||||||
|
const coreUser = RoleName.create('CORE_USER').getValue()
|
||||||
|
|
||||||
|
expect(proUserRole.hasMoreOrEqualPowerTo(proUserRole)).toBeTruthy()
|
||||||
|
expect(proUserRole.hasMoreOrEqualPowerTo(plusUserRole)).toBeTruthy()
|
||||||
|
expect(proUserRole.hasMoreOrEqualPowerTo(coreUser)).toBeTruthy()
|
||||||
|
|
||||||
|
expect(plusUserRole.hasMoreOrEqualPowerTo(proUserRole)).toBeFalsy()
|
||||||
|
expect(plusUserRole.hasMoreOrEqualPowerTo(plusUserRole)).toBeTruthy()
|
||||||
|
expect(plusUserRole.hasMoreOrEqualPowerTo(coreUser)).toBeTruthy()
|
||||||
|
|
||||||
|
expect(coreUser.hasMoreOrEqualPowerTo(proUserRole)).toBeFalsy()
|
||||||
|
expect(coreUser.hasMoreOrEqualPowerTo(plusUserRole)).toBeFalsy()
|
||||||
|
expect(coreUser.hasMoreOrEqualPowerTo(coreUser)).toBeTruthy()
|
||||||
|
})
|
||||||
|
})
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
import { ValueObject } from '../Core/ValueObject'
|
||||||
|
import { Result } from '../Core/Result'
|
||||||
|
import { RoleNameProps } from './RoleNameProps'
|
||||||
|
|
||||||
|
export class RoleName extends ValueObject<RoleNameProps> {
|
||||||
|
private static readonly NAMES = {
|
||||||
|
CoreUser: 'CORE_USER',
|
||||||
|
PlusUser: 'PLUS_USER',
|
||||||
|
ProUser: 'PRO_USER',
|
||||||
|
FilesBetaUser: 'FILES_BETA_USER',
|
||||||
|
}
|
||||||
|
|
||||||
|
get value(): string {
|
||||||
|
return this.props.value
|
||||||
|
}
|
||||||
|
|
||||||
|
hasMoreOrEqualPowerTo(roleName: RoleName): boolean {
|
||||||
|
switch (this.value) {
|
||||||
|
case RoleName.NAMES.ProUser:
|
||||||
|
return true
|
||||||
|
case RoleName.NAMES.PlusUser:
|
||||||
|
return [RoleName.NAMES.CoreUser, RoleName.NAMES.PlusUser].includes(roleName.value)
|
||||||
|
case RoleName.NAMES.CoreUser:
|
||||||
|
return [RoleName.NAMES.CoreUser].includes(roleName.value)
|
||||||
|
default:
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private constructor(props: RoleNameProps) {
|
||||||
|
super(props)
|
||||||
|
}
|
||||||
|
|
||||||
|
static create(name: string): Result<RoleName> {
|
||||||
|
const isValidName = Object.values(this.NAMES).includes(name)
|
||||||
|
if (!isValidName) {
|
||||||
|
return Result.fail<RoleName>(`Invalid role name: ${name}`)
|
||||||
|
} else {
|
||||||
|
return Result.ok<RoleName>(new RoleName({ value: name }))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,77 @@
|
|||||||
|
import { RoleName } from './RoleName'
|
||||||
|
import { RoleNameCollection } from './RoleNameCollection'
|
||||||
|
|
||||||
|
describe('RoleNameCollection', () => {
|
||||||
|
it('should create a value object', () => {
|
||||||
|
const role1 = RoleName.create('PRO_USER').getValue()
|
||||||
|
|
||||||
|
const valueOrError = RoleNameCollection.create([role1])
|
||||||
|
|
||||||
|
expect(valueOrError.isFailed()).toBeFalsy()
|
||||||
|
expect(valueOrError.getValue().value).toEqual([role1])
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should tell if collections are not equal', () => {
|
||||||
|
const roles1 = [RoleName.create('PRO_USER').getValue(), RoleName.create('PLUS_USER').getValue()]
|
||||||
|
|
||||||
|
const roles2 = RoleNameCollection.create([
|
||||||
|
RoleName.create('PRO_USER').getValue(),
|
||||||
|
RoleName.create('CORE_USER').getValue(),
|
||||||
|
]).getValue()
|
||||||
|
|
||||||
|
const valueOrError = RoleNameCollection.create(roles1)
|
||||||
|
expect(valueOrError.getValue().equals(roles2)).toBeFalsy()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should tell if collections are equal', () => {
|
||||||
|
const roles1 = [RoleName.create('PRO_USER').getValue(), RoleName.create('PLUS_USER').getValue()]
|
||||||
|
|
||||||
|
const roles2 = RoleNameCollection.create([
|
||||||
|
RoleName.create('PRO_USER').getValue(),
|
||||||
|
RoleName.create('PLUS_USER').getValue(),
|
||||||
|
]).getValue()
|
||||||
|
|
||||||
|
const valueOrError = RoleNameCollection.create(roles1)
|
||||||
|
expect(valueOrError.getValue().equals(roles2)).toBeTruthy()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should tell if collection includes element', () => {
|
||||||
|
const roles1 = [RoleName.create('PRO_USER').getValue(), RoleName.create('PLUS_USER').getValue()]
|
||||||
|
|
||||||
|
const valueOrError = RoleNameCollection.create(roles1)
|
||||||
|
expect(valueOrError.getValue().includes(RoleName.create('PRO_USER').getValue())).toBeTruthy()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should tell if collection does not includes element', () => {
|
||||||
|
const roles1 = [RoleName.create('PRO_USER').getValue(), RoleName.create('PLUS_USER').getValue()]
|
||||||
|
|
||||||
|
const valueOrError = RoleNameCollection.create(roles1)
|
||||||
|
expect(valueOrError.getValue().includes(RoleName.create('CORE_USER').getValue())).toBeFalsy()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should tell if collection has a role with more or equal power to', () => {
|
||||||
|
let roles = [RoleName.create('CORE_USER').getValue()]
|
||||||
|
let valueOrError = RoleNameCollection.create(roles)
|
||||||
|
let roleNames = valueOrError.getValue()
|
||||||
|
|
||||||
|
expect(roleNames.hasARoleNameWithMoreOrEqualPowerTo(RoleName.create('PLUS_USER').getValue())).toBeFalsy()
|
||||||
|
expect(roleNames.hasARoleNameWithMoreOrEqualPowerTo(RoleName.create('PRO_USER').getValue())).toBeFalsy()
|
||||||
|
expect(roleNames.hasARoleNameWithMoreOrEqualPowerTo(RoleName.create('CORE_USER').getValue())).toBeTruthy()
|
||||||
|
|
||||||
|
roles = [RoleName.create('CORE_USER').getValue(), RoleName.create('PLUS_USER').getValue()]
|
||||||
|
valueOrError = RoleNameCollection.create(roles)
|
||||||
|
roleNames = valueOrError.getValue()
|
||||||
|
|
||||||
|
expect(roleNames.hasARoleNameWithMoreOrEqualPowerTo(RoleName.create('PLUS_USER').getValue())).toBeTruthy()
|
||||||
|
expect(roleNames.hasARoleNameWithMoreOrEqualPowerTo(RoleName.create('PRO_USER').getValue())).toBeFalsy()
|
||||||
|
expect(roleNames.hasARoleNameWithMoreOrEqualPowerTo(RoleName.create('CORE_USER').getValue())).toBeTruthy()
|
||||||
|
|
||||||
|
roles = [RoleName.create('PRO_USER').getValue(), RoleName.create('PLUS_USER').getValue()]
|
||||||
|
valueOrError = RoleNameCollection.create(roles)
|
||||||
|
roleNames = valueOrError.getValue()
|
||||||
|
|
||||||
|
expect(roleNames.hasARoleNameWithMoreOrEqualPowerTo(RoleName.create('PLUS_USER').getValue())).toBeTruthy()
|
||||||
|
expect(roleNames.hasARoleNameWithMoreOrEqualPowerTo(RoleName.create('PRO_USER').getValue())).toBeTruthy()
|
||||||
|
expect(roleNames.hasARoleNameWithMoreOrEqualPowerTo(RoleName.create('CORE_USER').getValue())).toBeTruthy()
|
||||||
|
})
|
||||||
|
})
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
import { ValueObject } from '../Core/ValueObject'
|
||||||
|
import { Result } from '../Core/Result'
|
||||||
|
import { RoleNameCollectionProps } from './RoleNameCollectionProps'
|
||||||
|
import { RoleName } from './RoleName'
|
||||||
|
|
||||||
|
export class RoleNameCollection extends ValueObject<RoleNameCollectionProps> {
|
||||||
|
get value(): RoleName[] {
|
||||||
|
return this.props.value
|
||||||
|
}
|
||||||
|
|
||||||
|
includes(roleName: RoleName): boolean {
|
||||||
|
for (const existingRoleName of this.props.value) {
|
||||||
|
if (existingRoleName.equals(roleName)) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
hasARoleNameWithMoreOrEqualPowerTo(roleName: RoleName): boolean {
|
||||||
|
for (const existingRoleName of this.props.value) {
|
||||||
|
if (existingRoleName.hasMoreOrEqualPowerTo(roleName)) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
override equals(roleNameCollection: RoleNameCollection): boolean {
|
||||||
|
if (this.props.value.length !== roleNameCollection.value.length) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const roleName of roleNameCollection.value) {
|
||||||
|
if (!this.includes(roleName)) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
private constructor(props: RoleNameCollectionProps) {
|
||||||
|
super(props)
|
||||||
|
}
|
||||||
|
|
||||||
|
static create(roleName: RoleName[]): Result<RoleNameCollection> {
|
||||||
|
return Result.ok<RoleNameCollection>(new RoleNameCollection({ value: roleName }))
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
import { RoleName } from './RoleName'
|
||||||
|
|
||||||
|
export interface RoleNameCollectionProps {
|
||||||
|
value: RoleName[]
|
||||||
|
}
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
export interface RoleNameProps {
|
||||||
|
value: string
|
||||||
|
}
|
||||||
@@ -1,5 +1,9 @@
|
|||||||
export * from './Common/Email'
|
export * from './Common/Email'
|
||||||
export * from './Common/EmailProps'
|
export * from './Common/EmailProps'
|
||||||
|
export * from './Common/RoleName'
|
||||||
|
export * from './Common/RoleNameProps'
|
||||||
|
export * from './Common/RoleNameCollection'
|
||||||
|
export * from './Common/RoleNameCollectionProps'
|
||||||
export * from './Common/Timestamps'
|
export * from './Common/Timestamps'
|
||||||
export * from './Common/TimestampsProps'
|
export * from './Common/TimestampsProps'
|
||||||
export * from './Common/Uuid'
|
export * from './Common/Uuid'
|
||||||
|
|||||||
@@ -3,6 +3,18 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [1.9.34](https://github.com/standardnotes/server/compare/@standardnotes/domain-events-infra@1.9.33...@standardnotes/domain-events-infra@1.9.34) (2022-11-25)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/domain-events-infra
|
||||||
|
|
||||||
|
## [1.9.33](https://github.com/standardnotes/server/compare/@standardnotes/domain-events-infra@1.9.32...@standardnotes/domain-events-infra@1.9.33) (2022-11-24)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/domain-events-infra
|
||||||
|
|
||||||
|
## [1.9.32](https://github.com/standardnotes/server/compare/@standardnotes/domain-events-infra@1.9.31...@standardnotes/domain-events-infra@1.9.32) (2022-11-23)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/domain-events-infra
|
||||||
|
|
||||||
## [1.9.31](https://github.com/standardnotes/server/compare/@standardnotes/domain-events-infra@1.9.30...@standardnotes/domain-events-infra@1.9.31) (2022-11-22)
|
## [1.9.31](https://github.com/standardnotes/server/compare/@standardnotes/domain-events-infra@1.9.30...@standardnotes/domain-events-infra@1.9.31) (2022-11-22)
|
||||||
|
|
||||||
**Note:** Version bump only for package @standardnotes/domain-events-infra
|
**Note:** Version bump only for package @standardnotes/domain-events-infra
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@standardnotes/domain-events-infra",
|
"name": "@standardnotes/domain-events-infra",
|
||||||
"version": "1.9.31",
|
"version": "1.9.34",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=18.0.0 <19.0.0"
|
"node": ">=18.0.0 <19.0.0"
|
||||||
},
|
},
|
||||||
@@ -23,9 +23,8 @@
|
|||||||
"test": "jest spec --coverage"
|
"test": "jest spec --coverage"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@newrelic/native-metrics": "^9.0.0",
|
|
||||||
"@standardnotes/domain-events": "workspace:*",
|
"@standardnotes/domain-events": "workspace:*",
|
||||||
"aws-sdk": "^2.1253.0",
|
"aws-sdk": "^2.1260.0",
|
||||||
"ioredis": "^5.2.4",
|
"ioredis": "^5.2.4",
|
||||||
"newrelic": "^9.6.0",
|
"newrelic": "^9.6.0",
|
||||||
"reflect-metadata": "^0.1.13",
|
"reflect-metadata": "^0.1.13",
|
||||||
|
|||||||
@@ -3,6 +3,10 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [2.90.2](https://github.com/standardnotes/server/compare/@standardnotes/domain-events@2.90.1...@standardnotes/domain-events@2.90.2) (2022-11-25)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/domain-events
|
||||||
|
|
||||||
## [2.90.1](https://github.com/standardnotes/server/compare/@standardnotes/domain-events@2.90.0...@standardnotes/domain-events@2.90.1) (2022-11-22)
|
## [2.90.1](https://github.com/standardnotes/server/compare/@standardnotes/domain-events@2.90.0...@standardnotes/domain-events@2.90.1) (2022-11-22)
|
||||||
|
|
||||||
**Note:** Version bump only for package @standardnotes/domain-events
|
**Note:** Version bump only for package @standardnotes/domain-events
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@standardnotes/domain-events",
|
"name": "@standardnotes/domain-events",
|
||||||
"version": "2.90.1",
|
"version": "2.90.2",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=18.0.0 <19.0.0"
|
"node": ">=18.0.0 <19.0.0"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -3,6 +3,18 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [1.6.30](https://github.com/standardnotes/server/compare/@standardnotes/event-store@1.6.29...@standardnotes/event-store@1.6.30) (2022-11-25)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/event-store
|
||||||
|
|
||||||
|
## [1.6.29](https://github.com/standardnotes/server/compare/@standardnotes/event-store@1.6.28...@standardnotes/event-store@1.6.29) (2022-11-24)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/event-store
|
||||||
|
|
||||||
|
## [1.6.28](https://github.com/standardnotes/server/compare/@standardnotes/event-store@1.6.27...@standardnotes/event-store@1.6.28) (2022-11-23)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/event-store
|
||||||
|
|
||||||
## [1.6.27](https://github.com/standardnotes/server/compare/@standardnotes/event-store@1.6.26...@standardnotes/event-store@1.6.27) (2022-11-23)
|
## [1.6.27](https://github.com/standardnotes/server/compare/@standardnotes/event-store@1.6.26...@standardnotes/event-store@1.6.27) (2022-11-23)
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@standardnotes/event-store",
|
"name": "@standardnotes/event-store",
|
||||||
"version": "1.6.27",
|
"version": "1.6.30",
|
||||||
"description": "Event Store Service",
|
"description": "Event Store Service",
|
||||||
"private": true,
|
"private": true,
|
||||||
"main": "dist/src/index.js",
|
"main": "dist/src/index.js",
|
||||||
@@ -31,11 +31,10 @@
|
|||||||
"typescript": "^4.8.4"
|
"typescript": "^4.8.4"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@newrelic/native-metrics": "^9.0.0",
|
|
||||||
"@standardnotes/domain-events": "workspace:*",
|
"@standardnotes/domain-events": "workspace:*",
|
||||||
"@standardnotes/domain-events-infra": "workspace:*",
|
"@standardnotes/domain-events-infra": "workspace:*",
|
||||||
"@standardnotes/time": "workspace:*",
|
"@standardnotes/time": "workspace:*",
|
||||||
"aws-sdk": "^2.1253.0",
|
"aws-sdk": "^2.1260.0",
|
||||||
"dotenv": "^16.0.1",
|
"dotenv": "^16.0.1",
|
||||||
"inversify": "^6.0.1",
|
"inversify": "^6.0.1",
|
||||||
"ioredis": "^5.2.4",
|
"ioredis": "^5.2.4",
|
||||||
|
|||||||
@@ -3,6 +3,18 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [1.8.30](https://github.com/standardnotes/files/compare/@standardnotes/files-server@1.8.29...@standardnotes/files-server@1.8.30) (2022-11-25)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/files-server
|
||||||
|
|
||||||
|
## [1.8.29](https://github.com/standardnotes/files/compare/@standardnotes/files-server@1.8.28...@standardnotes/files-server@1.8.29) (2022-11-24)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/files-server
|
||||||
|
|
||||||
|
## [1.8.28](https://github.com/standardnotes/files/compare/@standardnotes/files-server@1.8.27...@standardnotes/files-server@1.8.28) (2022-11-23)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/files-server
|
||||||
|
|
||||||
## [1.8.27](https://github.com/standardnotes/files/compare/@standardnotes/files-server@1.8.26...@standardnotes/files-server@1.8.27) (2022-11-23)
|
## [1.8.27](https://github.com/standardnotes/files/compare/@standardnotes/files-server@1.8.26...@standardnotes/files-server@1.8.27) (2022-11-23)
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@standardnotes/files-server",
|
"name": "@standardnotes/files-server",
|
||||||
"version": "1.8.27",
|
"version": "1.8.30",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=18.0.0 <19.0.0"
|
"node": ">=18.0.0 <19.0.0"
|
||||||
},
|
},
|
||||||
@@ -25,7 +25,6 @@
|
|||||||
"upgrade:snjs": "yarn ncu -u '@standardnotes/*'"
|
"upgrade:snjs": "yarn ncu -u '@standardnotes/*'"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@newrelic/native-metrics": "^9.0.0",
|
|
||||||
"@sentry/node": "^7.19.0",
|
"@sentry/node": "^7.19.0",
|
||||||
"@standardnotes/common": "workspace:*",
|
"@standardnotes/common": "workspace:*",
|
||||||
"@standardnotes/domain-events": "workspace:*",
|
"@standardnotes/domain-events": "workspace:*",
|
||||||
@@ -34,7 +33,7 @@
|
|||||||
"@standardnotes/sncrypto-common": "^1.9.0",
|
"@standardnotes/sncrypto-common": "^1.9.0",
|
||||||
"@standardnotes/sncrypto-node": "workspace:*",
|
"@standardnotes/sncrypto-node": "workspace:*",
|
||||||
"@standardnotes/time": "workspace:*",
|
"@standardnotes/time": "workspace:*",
|
||||||
"aws-sdk": "^2.1253.0",
|
"aws-sdk": "^2.1260.0",
|
||||||
"connect-busboy": "^1.0.0",
|
"connect-busboy": "^1.0.0",
|
||||||
"cors": "^2.8.5",
|
"cors": "^2.8.5",
|
||||||
"dayjs": "^1.11.6",
|
"dayjs": "^1.11.6",
|
||||||
|
|||||||
@@ -3,6 +3,10 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [1.6.2](https://github.com/standardnotes/server/compare/@standardnotes/predicates@1.6.1...@standardnotes/predicates@1.6.2) (2022-11-25)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/predicates
|
||||||
|
|
||||||
## [1.6.1](https://github.com/standardnotes/server/compare/@standardnotes/predicates@1.6.0...@standardnotes/predicates@1.6.1) (2022-11-22)
|
## [1.6.1](https://github.com/standardnotes/server/compare/@standardnotes/predicates@1.6.0...@standardnotes/predicates@1.6.1) (2022-11-22)
|
||||||
|
|
||||||
**Note:** Version bump only for package @standardnotes/predicates
|
**Note:** Version bump only for package @standardnotes/predicates
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@standardnotes/predicates",
|
"name": "@standardnotes/predicates",
|
||||||
"version": "1.6.1",
|
"version": "1.6.2",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=18.0.0 <19.0.0"
|
"node": ">=18.0.0 <19.0.0"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -3,6 +3,54 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [1.7.1](https://github.com/standardnotes/server/compare/@standardnotes/revisions-server@1.7.0...@standardnotes/revisions-server@1.7.1) (2022-11-28)
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **revisions:** remove unnecessary indexes ([4b883b6](https://github.com/standardnotes/server/commit/4b883b68def777b0c0682cc6a8af6fd968b18d9f))
|
||||||
|
|
||||||
|
# [1.7.0](https://github.com/standardnotes/server/compare/@standardnotes/revisions-server@1.6.0...@standardnotes/revisions-server@1.7.0) (2022-11-28)
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* **revisions:** add handling account deletion requests ([b4e8971](https://github.com/standardnotes/server/commit/b4e8971ad27fd198239f6eb976b8286575373ed6))
|
||||||
|
|
||||||
|
# [1.6.0](https://github.com/standardnotes/server/compare/@standardnotes/revisions-server@1.5.0...@standardnotes/revisions-server@1.6.0) (2022-11-28)
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* **revisions:** add deleting revisions ([ac8a69f](https://github.com/standardnotes/server/commit/ac8a69f8d428e3cf8e4df5269db3cb31d9b118d5))
|
||||||
|
|
||||||
|
# [1.5.0](https://github.com/standardnotes/server/compare/@standardnotes/revisions-server@1.4.8...@standardnotes/revisions-server@1.5.0) (2022-11-28)
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* **revisions:** add fetching single revision ([284561d](https://github.com/standardnotes/server/commit/284561d093eaa6d73af888142583ec705ba18f79))
|
||||||
|
|
||||||
|
## [1.4.8](https://github.com/standardnotes/server/compare/@standardnotes/revisions-server@1.4.7...@standardnotes/revisions-server@1.4.8) (2022-11-25)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/revisions-server
|
||||||
|
|
||||||
|
## [1.4.7](https://github.com/standardnotes/server/compare/@standardnotes/revisions-server@1.4.6...@standardnotes/revisions-server@1.4.7) (2022-11-24)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/revisions-server
|
||||||
|
|
||||||
|
## [1.4.6](https://github.com/standardnotes/server/compare/@standardnotes/revisions-server@1.4.5...@standardnotes/revisions-server@1.4.6) (2022-11-24)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/revisions-server
|
||||||
|
|
||||||
|
## [1.4.5](https://github.com/standardnotes/server/compare/@standardnotes/revisions-server@1.4.4...@standardnotes/revisions-server@1.4.5) (2022-11-24)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/revisions-server
|
||||||
|
|
||||||
|
## [1.4.4](https://github.com/standardnotes/server/compare/@standardnotes/revisions-server@1.4.3...@standardnotes/revisions-server@1.4.4) (2022-11-24)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/revisions-server
|
||||||
|
|
||||||
|
## [1.4.3](https://github.com/standardnotes/server/compare/@standardnotes/revisions-server@1.4.2...@standardnotes/revisions-server@1.4.3) (2022-11-23)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/revisions-server
|
||||||
|
|
||||||
## [1.4.2](https://github.com/standardnotes/server/compare/@standardnotes/revisions-server@1.4.1...@standardnotes/revisions-server@1.4.2) (2022-11-22)
|
## [1.4.2](https://github.com/standardnotes/server/compare/@standardnotes/revisions-server@1.4.1...@standardnotes/revisions-server@1.4.2) (2022-11-22)
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
import { MigrationInterface, QueryRunner } from 'typeorm'
|
||||||
|
|
||||||
|
export class removeDateIndexes1669636497932 implements MigrationInterface {
|
||||||
|
name = 'removeDateIndexes1669636497932'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query('DROP INDEX `created_at` ON `revisions`')
|
||||||
|
await queryRunner.query('DROP INDEX `creation_date` ON `revisions`')
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query('CREATE INDEX `creation_date` ON `revisions` (`creation_date`)')
|
||||||
|
await queryRunner.query('CREATE INDEX `created_at` ON `revisions` (`created_at`)')
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@standardnotes/revisions-server",
|
"name": "@standardnotes/revisions-server",
|
||||||
"version": "1.4.2",
|
"version": "1.7.1",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=18.0.0 <19.0.0"
|
"node": ">=18.0.0 <19.0.0"
|
||||||
},
|
},
|
||||||
@@ -23,7 +23,6 @@
|
|||||||
"worker": "yarn node dist/bin/worker.js"
|
"worker": "yarn node dist/bin/worker.js"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@newrelic/native-metrics": "^9.0.0",
|
|
||||||
"@newrelic/winston-enricher": "^4.0.0",
|
"@newrelic/winston-enricher": "^4.0.0",
|
||||||
"@sentry/node": "^7.19.0",
|
"@sentry/node": "^7.19.0",
|
||||||
"@standardnotes/api": "^1.19.0",
|
"@standardnotes/api": "^1.19.0",
|
||||||
@@ -33,7 +32,7 @@
|
|||||||
"@standardnotes/domain-events-infra": "workspace:*",
|
"@standardnotes/domain-events-infra": "workspace:*",
|
||||||
"@standardnotes/security": "workspace:^",
|
"@standardnotes/security": "workspace:^",
|
||||||
"@standardnotes/time": "workspace:^",
|
"@standardnotes/time": "workspace:^",
|
||||||
"aws-sdk": "^2.1253.0",
|
"aws-sdk": "^2.1260.0",
|
||||||
"cors": "2.8.5",
|
"cors": "2.8.5",
|
||||||
"dotenv": "^16.0.1",
|
"dotenv": "^16.0.1",
|
||||||
"express": "^4.18.2",
|
"express": "^4.18.2",
|
||||||
|
|||||||
@@ -36,6 +36,9 @@ import { ItemDumpedEventHandler } from '../Domain/Handler/ItemDumpedEventHandler
|
|||||||
import { DumpRepositoryInterface } from '../Domain/Dump/DumpRepositoryInterface'
|
import { DumpRepositoryInterface } from '../Domain/Dump/DumpRepositoryInterface'
|
||||||
import { S3DumpRepository } from '../Infra/S3/S3ItemDumpRepository'
|
import { S3DumpRepository } from '../Infra/S3/S3ItemDumpRepository'
|
||||||
import { FSDumpRepository } from '../Infra/FS/FSDumpRepository'
|
import { FSDumpRepository } from '../Infra/FS/FSDumpRepository'
|
||||||
|
import { GetRevision } from '../Domain/UseCase/GetRevision/GetRevision'
|
||||||
|
import { DeleteRevision } from '../Domain/UseCase/DeleteRevision/DeleteRevision'
|
||||||
|
import { AccountDeletionRequestedEventHandler } from '../Domain/Handler/AccountDeletionRequestedEventHandler'
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
||||||
const newrelicFormatter = require('@newrelic/winston-enricher')
|
const newrelicFormatter = require('@newrelic/winston-enricher')
|
||||||
@@ -152,11 +155,24 @@ export class ContainerConfigLoader {
|
|||||||
container
|
container
|
||||||
.bind<GetRevisionsMetada>(TYPES.GetRevisionsMetada)
|
.bind<GetRevisionsMetada>(TYPES.GetRevisionsMetada)
|
||||||
.toConstantValue(new GetRevisionsMetada(container.get(TYPES.RevisionRepository)))
|
.toConstantValue(new GetRevisionsMetada(container.get(TYPES.RevisionRepository)))
|
||||||
|
container
|
||||||
|
.bind<GetRevision>(TYPES.GetRevision)
|
||||||
|
.toConstantValue(new GetRevision(container.get(TYPES.RevisionRepository)))
|
||||||
|
container
|
||||||
|
.bind<DeleteRevision>(TYPES.DeleteRevision)
|
||||||
|
.toConstantValue(new DeleteRevision(container.get(TYPES.RevisionRepository)))
|
||||||
|
|
||||||
// Controller
|
// Controller
|
||||||
container
|
container
|
||||||
.bind<RevisionsController>(TYPES.RevisionsController)
|
.bind<RevisionsController>(TYPES.RevisionsController)
|
||||||
.toConstantValue(new RevisionsController(container.get(TYPES.GetRevisionsMetada), container.get(TYPES.Logger)))
|
.toConstantValue(
|
||||||
|
new RevisionsController(
|
||||||
|
container.get(TYPES.GetRevisionsMetada),
|
||||||
|
container.get(TYPES.GetRevision),
|
||||||
|
container.get(TYPES.DeleteRevision),
|
||||||
|
container.get(TYPES.Logger),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
// Handlers
|
// Handlers
|
||||||
container
|
container
|
||||||
@@ -164,6 +180,11 @@ export class ContainerConfigLoader {
|
|||||||
.toConstantValue(
|
.toConstantValue(
|
||||||
new ItemDumpedEventHandler(container.get(TYPES.DumpRepository), container.get(TYPES.RevisionRepository)),
|
new ItemDumpedEventHandler(container.get(TYPES.DumpRepository), container.get(TYPES.RevisionRepository)),
|
||||||
)
|
)
|
||||||
|
container
|
||||||
|
.bind<AccountDeletionRequestedEventHandler>(TYPES.AccountDeletionRequestedEventHandler)
|
||||||
|
.toConstantValue(
|
||||||
|
new AccountDeletionRequestedEventHandler(container.get(TYPES.RevisionRepository), container.get(TYPES.Logger)),
|
||||||
|
)
|
||||||
|
|
||||||
// Services
|
// Services
|
||||||
container
|
container
|
||||||
@@ -177,6 +198,7 @@ export class ContainerConfigLoader {
|
|||||||
|
|
||||||
const eventHandlers: Map<string, DomainEventHandlerInterface> = new Map([
|
const eventHandlers: Map<string, DomainEventHandlerInterface> = new Map([
|
||||||
['ITEM_DUMPED', container.get(TYPES.ItemDumpedEventHandler)],
|
['ITEM_DUMPED', container.get(TYPES.ItemDumpedEventHandler)],
|
||||||
|
['ACCOUNT_DELETION_REQUESTED', container.get(TYPES.AccountDeletionRequestedEventHandler)],
|
||||||
])
|
])
|
||||||
|
|
||||||
if (env.get('SQS_QUEUE_URL', true)) {
|
if (env.get('SQS_QUEUE_URL', true)) {
|
||||||
|
|||||||
@@ -25,10 +25,13 @@ const TYPES = {
|
|||||||
VERSION: Symbol.for('VERSION'),
|
VERSION: Symbol.for('VERSION'),
|
||||||
// use cases
|
// use cases
|
||||||
GetRevisionsMetada: Symbol.for('GetRevisionsMetada'),
|
GetRevisionsMetada: Symbol.for('GetRevisionsMetada'),
|
||||||
|
GetRevision: Symbol.for('GetRevision'),
|
||||||
|
DeleteRevision: Symbol.for('DeleteRevision'),
|
||||||
// Controller
|
// Controller
|
||||||
RevisionsController: Symbol.for('RevisionsController'),
|
RevisionsController: Symbol.for('RevisionsController'),
|
||||||
// Handlers
|
// Handlers
|
||||||
ItemDumpedEventHandler: Symbol.for('ItemDumpedEventHandler'),
|
ItemDumpedEventHandler: Symbol.for('ItemDumpedEventHandler'),
|
||||||
|
AccountDeletionRequestedEventHandler: Symbol.for('AccountDeletionRequestedEventHandler'),
|
||||||
// Services
|
// Services
|
||||||
CrossServiceTokenDecoder: Symbol.for('CrossServiceTokenDecoder'),
|
CrossServiceTokenDecoder: Symbol.for('CrossServiceTokenDecoder'),
|
||||||
DomainEventSubscriberFactory: Symbol.for('DomainEventSubscriberFactory'),
|
DomainEventSubscriberFactory: Symbol.for('DomainEventSubscriberFactory'),
|
||||||
|
|||||||
@@ -1,20 +1,30 @@
|
|||||||
import { Result } from '@standardnotes/domain-core'
|
import { Result } from '@standardnotes/domain-core'
|
||||||
import { Logger } from 'winston'
|
import { Logger } from 'winston'
|
||||||
|
|
||||||
|
import { DeleteRevision } from '../Domain/UseCase/DeleteRevision/DeleteRevision'
|
||||||
|
import { GetRevision } from '../Domain/UseCase/GetRevision/GetRevision'
|
||||||
import { GetRevisionsMetada } from '../Domain/UseCase/GetRevisionsMetada/GetRevisionsMetada'
|
import { GetRevisionsMetada } from '../Domain/UseCase/GetRevisionsMetada/GetRevisionsMetada'
|
||||||
|
|
||||||
import { RevisionsController } from './RevisionsController'
|
import { RevisionsController } from './RevisionsController'
|
||||||
|
|
||||||
describe('RevisionsController', () => {
|
describe('RevisionsController', () => {
|
||||||
let getRevisionsMetadata: GetRevisionsMetada
|
let getRevisionsMetadata: GetRevisionsMetada
|
||||||
|
let getRevision: GetRevision
|
||||||
|
let deleteRevision: DeleteRevision
|
||||||
let logger: Logger
|
let logger: Logger
|
||||||
|
|
||||||
const createController = () => new RevisionsController(getRevisionsMetadata, logger)
|
const createController = () => new RevisionsController(getRevisionsMetadata, getRevision, deleteRevision, logger)
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
getRevisionsMetadata = {} as jest.Mocked<GetRevisionsMetada>
|
getRevisionsMetadata = {} as jest.Mocked<GetRevisionsMetada>
|
||||||
getRevisionsMetadata.execute = jest.fn().mockReturnValue(Result.ok())
|
getRevisionsMetadata.execute = jest.fn().mockReturnValue(Result.ok())
|
||||||
|
|
||||||
|
getRevision = {} as jest.Mocked<GetRevision>
|
||||||
|
getRevision.execute = jest.fn().mockReturnValue(Result.ok())
|
||||||
|
|
||||||
|
deleteRevision = {} as jest.Mocked<DeleteRevision>
|
||||||
|
deleteRevision.execute = jest.fn().mockReturnValue(Result.ok())
|
||||||
|
|
||||||
logger = {} as jest.Mocked<Logger>
|
logger = {} as jest.Mocked<Logger>
|
||||||
logger.warn = jest.fn()
|
logger.warn = jest.fn()
|
||||||
})
|
})
|
||||||
@@ -31,4 +41,30 @@ describe('RevisionsController', () => {
|
|||||||
|
|
||||||
expect(response.status).toEqual(400)
|
expect(response.status).toEqual(400)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('should get revision', async () => {
|
||||||
|
const response = await createController().getRevision({ revisionUuid: '1-2-3', userUuid: '1-2-3' })
|
||||||
|
|
||||||
|
expect(response.status).toEqual(200)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should indicate failure to get revision', async () => {
|
||||||
|
getRevision.execute = jest.fn().mockReturnValue(Result.fail('Oops'))
|
||||||
|
const response = await createController().getRevision({ revisionUuid: '1-2-3', userUuid: '1-2-3' })
|
||||||
|
|
||||||
|
expect(response.status).toEqual(400)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should delete revision', async () => {
|
||||||
|
const response = await createController().deleteRevision({ revisionUuid: '1-2-3', userUuid: '1-2-3' })
|
||||||
|
|
||||||
|
expect(response.status).toEqual(200)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should indicate failure to delete revision', async () => {
|
||||||
|
deleteRevision.execute = jest.fn().mockReturnValue(Result.fail('Oops'))
|
||||||
|
const response = await createController().deleteRevision({ revisionUuid: '1-2-3', userUuid: '1-2-3' })
|
||||||
|
|
||||||
|
expect(response.status).toEqual(400)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -3,9 +3,18 @@ import { HttpResponse, HttpStatusCode } from '@standardnotes/api'
|
|||||||
|
|
||||||
import { GetRevisionsMetada } from '../Domain/UseCase/GetRevisionsMetada/GetRevisionsMetada'
|
import { GetRevisionsMetada } from '../Domain/UseCase/GetRevisionsMetada/GetRevisionsMetada'
|
||||||
import { GetRevisionsMetadataRequestParams } from '../Infra/Http/GetRevisionsMetadataRequestParams'
|
import { GetRevisionsMetadataRequestParams } from '../Infra/Http/GetRevisionsMetadataRequestParams'
|
||||||
|
import { GetRevisionRequestParams } from '../Infra/Http/GetRevisionRequestParams'
|
||||||
|
import { GetRevision } from '../Domain/UseCase/GetRevision/GetRevision'
|
||||||
|
import { DeleteRevision } from '../Domain/UseCase/DeleteRevision/DeleteRevision'
|
||||||
|
import { DeleteRevisionRequestParams } from '../Infra/Http/DeleteRevisionRequestParams'
|
||||||
|
|
||||||
export class RevisionsController {
|
export class RevisionsController {
|
||||||
constructor(private getRevisionsMetadata: GetRevisionsMetada, private logger: Logger) {}
|
constructor(
|
||||||
|
private getRevisionsMetadata: GetRevisionsMetada,
|
||||||
|
private doGetRevision: GetRevision,
|
||||||
|
private doDeleteRevision: DeleteRevision,
|
||||||
|
private logger: Logger,
|
||||||
|
) {}
|
||||||
|
|
||||||
async getRevisions(params: GetRevisionsMetadataRequestParams): Promise<HttpResponse> {
|
async getRevisions(params: GetRevisionsMetadataRequestParams): Promise<HttpResponse> {
|
||||||
const revisionMetadataOrError = await this.getRevisionsMetadata.execute({
|
const revisionMetadataOrError = await this.getRevisionsMetadata.execute({
|
||||||
@@ -31,4 +40,54 @@ export class RevisionsController {
|
|||||||
data: { revisions: revisionMetadataOrError.getValue() },
|
data: { revisions: revisionMetadataOrError.getValue() },
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async getRevision(params: GetRevisionRequestParams): Promise<HttpResponse> {
|
||||||
|
const revisionOrError = await this.doGetRevision.execute({
|
||||||
|
revisionUuid: params.revisionUuid,
|
||||||
|
userUuid: params.userUuid,
|
||||||
|
})
|
||||||
|
|
||||||
|
if (revisionOrError.isFailed()) {
|
||||||
|
this.logger.warn(revisionOrError.getError())
|
||||||
|
|
||||||
|
return {
|
||||||
|
status: HttpStatusCode.BadRequest,
|
||||||
|
data: {
|
||||||
|
error: {
|
||||||
|
message: 'Could not retrieve revision.',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
status: HttpStatusCode.Success,
|
||||||
|
data: { revision: revisionOrError.getValue() },
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async deleteRevision(params: DeleteRevisionRequestParams): Promise<HttpResponse> {
|
||||||
|
const revisionOrError = await this.doDeleteRevision.execute({
|
||||||
|
revisionUuid: params.revisionUuid,
|
||||||
|
userUuid: params.userUuid,
|
||||||
|
})
|
||||||
|
|
||||||
|
if (revisionOrError.isFailed()) {
|
||||||
|
this.logger.warn(revisionOrError.getError())
|
||||||
|
|
||||||
|
return {
|
||||||
|
status: HttpStatusCode.BadRequest,
|
||||||
|
data: {
|
||||||
|
error: {
|
||||||
|
message: 'Could not delete revision.',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return {
|
||||||
|
status: HttpStatusCode.Success,
|
||||||
|
data: { message: revisionOrError.getValue() },
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,45 @@
|
|||||||
|
import 'reflect-metadata'
|
||||||
|
|
||||||
|
import { AccountDeletionRequestedEvent } from '@standardnotes/domain-events'
|
||||||
|
import { Logger } from 'winston'
|
||||||
|
import { AccountDeletionRequestedEventHandler } from './AccountDeletionRequestedEventHandler'
|
||||||
|
import { RevisionRepositoryInterface } from '../Revision/RevisionRepositoryInterface'
|
||||||
|
|
||||||
|
describe('AccountDeletionRequestedEventHandler', () => {
|
||||||
|
let revisionRepository: RevisionRepositoryInterface
|
||||||
|
let logger: Logger
|
||||||
|
let event: AccountDeletionRequestedEvent
|
||||||
|
|
||||||
|
const createHandler = () => new AccountDeletionRequestedEventHandler(revisionRepository, logger)
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
revisionRepository = {} as jest.Mocked<RevisionRepositoryInterface>
|
||||||
|
revisionRepository.removeByUserUuid = jest.fn()
|
||||||
|
|
||||||
|
logger = {} as jest.Mocked<Logger>
|
||||||
|
logger.info = jest.fn()
|
||||||
|
logger.warn = jest.fn()
|
||||||
|
|
||||||
|
event = {} as jest.Mocked<AccountDeletionRequestedEvent>
|
||||||
|
event.createdAt = new Date(1)
|
||||||
|
event.payload = {
|
||||||
|
userUuid: '2-3-4',
|
||||||
|
userCreatedAtTimestamp: 1,
|
||||||
|
regularSubscriptionUuid: '1-2-3',
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should remove all revisions for a user', async () => {
|
||||||
|
event.payload.userUuid = '84c0f8e8-544a-4c7e-9adf-26209303bc1d'
|
||||||
|
|
||||||
|
await createHandler().handle(event)
|
||||||
|
|
||||||
|
expect(revisionRepository.removeByUserUuid).toHaveBeenCalled()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should not remove all revisions for an invalid user uuid', async () => {
|
||||||
|
await createHandler().handle(event)
|
||||||
|
|
||||||
|
expect(revisionRepository.removeByUserUuid).not.toHaveBeenCalled()
|
||||||
|
})
|
||||||
|
})
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
import { Uuid } from '@standardnotes/domain-core'
|
||||||
|
import { AccountDeletionRequestedEvent, DomainEventHandlerInterface } from '@standardnotes/domain-events'
|
||||||
|
import { Logger } from 'winston'
|
||||||
|
|
||||||
|
import { RevisionRepositoryInterface } from '../Revision/RevisionRepositoryInterface'
|
||||||
|
|
||||||
|
export class AccountDeletionRequestedEventHandler implements DomainEventHandlerInterface {
|
||||||
|
constructor(private revisionRepository: RevisionRepositoryInterface, private logger: Logger) {}
|
||||||
|
|
||||||
|
async handle(event: AccountDeletionRequestedEvent): Promise<void> {
|
||||||
|
const userUuidOrError = Uuid.create(event.payload.userUuid)
|
||||||
|
if (userUuidOrError.isFailed()) {
|
||||||
|
this.logger.warn(`Failed account cleanup: ${userUuidOrError.getError()}`)
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
const userUuid = userUuidOrError.getValue()
|
||||||
|
|
||||||
|
await this.revisionRepository.removeByUserUuid(userUuid)
|
||||||
|
|
||||||
|
this.logger.info(`Finished account cleanup for user: ${event.payload.userUuid}`)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -4,6 +4,9 @@ import { Revision } from './Revision'
|
|||||||
import { RevisionMetadata } from './RevisionMetadata'
|
import { RevisionMetadata } from './RevisionMetadata'
|
||||||
|
|
||||||
export interface RevisionRepositoryInterface {
|
export interface RevisionRepositoryInterface {
|
||||||
|
removeByUserUuid(userUuid: Uuid): Promise<void>
|
||||||
|
removeOneByUuid(revisionUuid: Uuid, userUuid: Uuid): Promise<void>
|
||||||
|
findOneByUuid(revisionUuid: Uuid, userUuid: Uuid): Promise<Revision | null>
|
||||||
findMetadataByItemId(itemUuid: Uuid, userUuid: Uuid): Promise<Array<RevisionMetadata>>
|
findMetadataByItemId(itemUuid: Uuid, userUuid: Uuid): Promise<Array<RevisionMetadata>>
|
||||||
save(revision: Revision): Promise<Revision>
|
save(revision: Revision): Promise<Revision>
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,41 @@
|
|||||||
|
import { RevisionRepositoryInterface } from '../../Revision/RevisionRepositoryInterface'
|
||||||
|
import { DeleteRevision } from './DeleteRevision'
|
||||||
|
|
||||||
|
describe('DeleteRevision', () => {
|
||||||
|
let revisionRepository: RevisionRepositoryInterface
|
||||||
|
|
||||||
|
const createUseCase = () => new DeleteRevision(revisionRepository)
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
revisionRepository = {} as jest.Mocked<RevisionRepositoryInterface>
|
||||||
|
revisionRepository.removeOneByUuid = jest.fn()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should delete revision', async () => {
|
||||||
|
const result = await createUseCase().execute({
|
||||||
|
revisionUuid: '84c0f8e8-544a-4c7e-9adf-26209303bc1d',
|
||||||
|
userUuid: '84c0f8e8-544a-4c7e-9adf-26209303bc1d',
|
||||||
|
})
|
||||||
|
|
||||||
|
expect(result.isFailed()).toBeFalsy()
|
||||||
|
expect(result.getValue()).toEqual('Revision removed')
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should not delete revision for an invalid item uuid', async () => {
|
||||||
|
const result = await createUseCase().execute({
|
||||||
|
revisionUuid: '1-2-3',
|
||||||
|
userUuid: '84c0f8e8-544a-4c7e-9adf-26209303bc1d',
|
||||||
|
})
|
||||||
|
|
||||||
|
expect(result.isFailed()).toBeTruthy()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should not delete revision for a an invalid user uuid', async () => {
|
||||||
|
const result = await createUseCase().execute({
|
||||||
|
userUuid: '1-2-3',
|
||||||
|
revisionUuid: '84c0f8e8-544a-4c7e-9adf-26209303bc1d',
|
||||||
|
})
|
||||||
|
|
||||||
|
expect(result.isFailed()).toBeTruthy()
|
||||||
|
})
|
||||||
|
})
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
import { Result, UseCaseInterface, Uuid } from '@standardnotes/domain-core'
|
||||||
|
|
||||||
|
import { RevisionRepositoryInterface } from '../../Revision/RevisionRepositoryInterface'
|
||||||
|
import { DeleteRevisionDTO } from './DeleteRevisionDTO'
|
||||||
|
|
||||||
|
export class DeleteRevision implements UseCaseInterface<string> {
|
||||||
|
constructor(private revisionRepository: RevisionRepositoryInterface) {}
|
||||||
|
|
||||||
|
async execute(dto: DeleteRevisionDTO): Promise<Result<string>> {
|
||||||
|
const revisionUuidOrError = Uuid.create(dto.revisionUuid)
|
||||||
|
if (revisionUuidOrError.isFailed()) {
|
||||||
|
return Result.fail<string>(`Could not delete revision: ${revisionUuidOrError.getError()}`)
|
||||||
|
}
|
||||||
|
const revisionUuid = revisionUuidOrError.getValue()
|
||||||
|
|
||||||
|
const userUuidOrError = Uuid.create(dto.userUuid)
|
||||||
|
if (userUuidOrError.isFailed()) {
|
||||||
|
return Result.fail<string>(`Could not delete revision: ${userUuidOrError.getError()}`)
|
||||||
|
}
|
||||||
|
const userUuid = userUuidOrError.getValue()
|
||||||
|
|
||||||
|
await this.revisionRepository.removeOneByUuid(revisionUuid, userUuid)
|
||||||
|
|
||||||
|
return Result.ok<string>('Revision removed')
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
export interface DeleteRevisionDTO {
|
||||||
|
userUuid: string
|
||||||
|
revisionUuid: string
|
||||||
|
}
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
import { Revision } from '../../Revision/Revision'
|
||||||
|
import { RevisionRepositoryInterface } from '../../Revision/RevisionRepositoryInterface'
|
||||||
|
import { GetRevision } from './GetRevision'
|
||||||
|
|
||||||
|
describe('GetRevision', () => {
|
||||||
|
let revisionRepository: RevisionRepositoryInterface
|
||||||
|
|
||||||
|
const createUseCase = () => new GetRevision(revisionRepository)
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
revisionRepository = {} as jest.Mocked<RevisionRepositoryInterface>
|
||||||
|
revisionRepository.findOneByUuid = jest.fn().mockReturnValue({} as jest.Mocked<Revision>)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should return revision for a given item', async () => {
|
||||||
|
const result = await createUseCase().execute({
|
||||||
|
revisionUuid: '84c0f8e8-544a-4c7e-9adf-26209303bc1d',
|
||||||
|
userUuid: '84c0f8e8-544a-4c7e-9adf-26209303bc1d',
|
||||||
|
})
|
||||||
|
|
||||||
|
expect(result.isFailed()).toBeFalsy()
|
||||||
|
expect(result.getValue()).not.toBeNull()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should not return revision for a given item if not found', async () => {
|
||||||
|
revisionRepository.findOneByUuid = jest.fn().mockReturnValue(null)
|
||||||
|
|
||||||
|
const result = await createUseCase().execute({
|
||||||
|
revisionUuid: '84c0f8e8-544a-4c7e-9adf-26209303bc1d',
|
||||||
|
userUuid: '84c0f8e8-544a-4c7e-9adf-26209303bc1d',
|
||||||
|
})
|
||||||
|
|
||||||
|
expect(result.isFailed()).toBeTruthy()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should not return revision for a an invalid item uuid', async () => {
|
||||||
|
const result = await createUseCase().execute({
|
||||||
|
revisionUuid: '1-2-3',
|
||||||
|
userUuid: '84c0f8e8-544a-4c7e-9adf-26209303bc1d',
|
||||||
|
})
|
||||||
|
|
||||||
|
expect(result.isFailed()).toBeTruthy()
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should not return revision for a an invalid user uuid', async () => {
|
||||||
|
const result = await createUseCase().execute({
|
||||||
|
userUuid: '1-2-3',
|
||||||
|
revisionUuid: '84c0f8e8-544a-4c7e-9adf-26209303bc1d',
|
||||||
|
})
|
||||||
|
|
||||||
|
expect(result.isFailed()).toBeTruthy()
|
||||||
|
})
|
||||||
|
})
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
import { Result, UseCaseInterface, Uuid } from '@standardnotes/domain-core'
|
||||||
|
|
||||||
|
import { Revision } from '../../Revision/Revision'
|
||||||
|
import { RevisionRepositoryInterface } from '../../Revision/RevisionRepositoryInterface'
|
||||||
|
import { GetRevisionDTO } from './GetRevisionDTO'
|
||||||
|
|
||||||
|
export class GetRevision implements UseCaseInterface<Revision> {
|
||||||
|
constructor(private revisionRepository: RevisionRepositoryInterface) {}
|
||||||
|
|
||||||
|
async execute(dto: GetRevisionDTO): Promise<Result<Revision>> {
|
||||||
|
const revisionUuidOrError = Uuid.create(dto.revisionUuid)
|
||||||
|
if (revisionUuidOrError.isFailed()) {
|
||||||
|
return Result.fail<Revision>(`Could not get revision: ${revisionUuidOrError.getError()}`)
|
||||||
|
}
|
||||||
|
const revisionUuid = revisionUuidOrError.getValue()
|
||||||
|
|
||||||
|
const userUuidOrError = Uuid.create(dto.userUuid)
|
||||||
|
if (userUuidOrError.isFailed()) {
|
||||||
|
return Result.fail<Revision>(`Could not get revision: ${userUuidOrError.getError()}`)
|
||||||
|
}
|
||||||
|
const userUuid = userUuidOrError.getValue()
|
||||||
|
|
||||||
|
const revision = await this.revisionRepository.findOneByUuid(revisionUuid, userUuid)
|
||||||
|
|
||||||
|
if (revision === null) {
|
||||||
|
return Result.fail<Revision>(`Could not find revision with uuid: ${revisionUuid.value}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
return Result.ok<Revision>(revision)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
export interface GetRevisionDTO {
|
||||||
|
userUuid: string
|
||||||
|
revisionUuid: string
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
export interface DeleteRevisionRequestParams {
|
||||||
|
revisionUuid: string
|
||||||
|
userUuid: string
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
export interface GetRevisionRequestParams {
|
||||||
|
revisionUuid: string
|
||||||
|
userUuid: string
|
||||||
|
}
|
||||||
+21
-1
@@ -1,5 +1,5 @@
|
|||||||
import { Request, Response } from 'express'
|
import { Request, Response } from 'express'
|
||||||
import { BaseHttpController, controller, httpGet, results } from 'inversify-express-utils'
|
import { BaseHttpController, controller, httpDelete, httpGet, results } from 'inversify-express-utils'
|
||||||
import { inject } from 'inversify'
|
import { inject } from 'inversify'
|
||||||
|
|
||||||
import TYPES from '../../Bootstrap/Types'
|
import TYPES from '../../Bootstrap/Types'
|
||||||
@@ -20,4 +20,24 @@ export class InversifyExpressRevisionsController extends BaseHttpController {
|
|||||||
|
|
||||||
return this.json(result.data, result.status)
|
return this.json(result.data, result.status)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@httpGet('/:uuid')
|
||||||
|
public async getRevision(req: Request, response: Response): Promise<results.JsonResult> {
|
||||||
|
const result = await this.revisionsController.getRevision({
|
||||||
|
revisionUuid: req.params.uuid,
|
||||||
|
userUuid: response.locals.user.uuid,
|
||||||
|
})
|
||||||
|
|
||||||
|
return this.json(result.data, result.status)
|
||||||
|
}
|
||||||
|
|
||||||
|
@httpDelete('/:uuid')
|
||||||
|
public async deleteRevision(req: Request, response: Response): Promise<results.JsonResult> {
|
||||||
|
const result = await this.revisionsController.deleteRevision({
|
||||||
|
revisionUuid: req.params.uuid,
|
||||||
|
userUuid: response.locals.user.uuid,
|
||||||
|
})
|
||||||
|
|
||||||
|
return this.json(result.data, result.status)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,38 @@ export class MySQLRevisionRepository implements RevisionRepositoryInterface {
|
|||||||
private revisionMapper: MapperInterface<Revision, TypeORMRevision>,
|
private revisionMapper: MapperInterface<Revision, TypeORMRevision>,
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
|
async removeByUserUuid(userUuid: Uuid): Promise<void> {
|
||||||
|
await this.ormRepository
|
||||||
|
.createQueryBuilder()
|
||||||
|
.delete()
|
||||||
|
.from('revisions')
|
||||||
|
.where('user_uuid = :userUuid', { userUuid })
|
||||||
|
.execute()
|
||||||
|
}
|
||||||
|
|
||||||
|
async removeOneByUuid(revisionUuid: Uuid, userUuid: Uuid): Promise<void> {
|
||||||
|
await this.ormRepository
|
||||||
|
.createQueryBuilder()
|
||||||
|
.delete()
|
||||||
|
.from('revisions')
|
||||||
|
.where('uuid = :revisionUuid AND user_uuid = :userUuid', { userUuid, revisionUuid })
|
||||||
|
.execute()
|
||||||
|
}
|
||||||
|
|
||||||
|
async findOneByUuid(revisionUuid: Uuid, userUuid: Uuid): Promise<Revision | null> {
|
||||||
|
const typeormRevision = await this.ormRepository
|
||||||
|
.createQueryBuilder()
|
||||||
|
.where('uuid = :revisionUuid', { revisionUuid })
|
||||||
|
.andWhere('user_uuid = :userUuid', { userUuid })
|
||||||
|
.getOne()
|
||||||
|
|
||||||
|
if (typeormRevision === null) {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
return this.revisionMapper.toDomain(typeormRevision)
|
||||||
|
}
|
||||||
|
|
||||||
async save(revision: Revision): Promise<Revision> {
|
async save(revision: Revision): Promise<Revision> {
|
||||||
const typeormRevision = this.revisionMapper.toProjection(revision)
|
const typeormRevision = this.revisionMapper.toProjection(revision)
|
||||||
|
|
||||||
|
|||||||
@@ -61,7 +61,6 @@ export class TypeORMRevision {
|
|||||||
type: 'date',
|
type: 'date',
|
||||||
nullable: true,
|
nullable: true,
|
||||||
})
|
})
|
||||||
@Index('creation_date')
|
|
||||||
declare creationDate: Date
|
declare creationDate: Date
|
||||||
|
|
||||||
@Column({
|
@Column({
|
||||||
@@ -70,7 +69,6 @@ export class TypeORMRevision {
|
|||||||
precision: 6,
|
precision: 6,
|
||||||
nullable: true,
|
nullable: true,
|
||||||
})
|
})
|
||||||
@Index('created_at')
|
|
||||||
declare createdAt: Date
|
declare createdAt: Date
|
||||||
|
|
||||||
@Column({
|
@Column({
|
||||||
|
|||||||
@@ -3,6 +3,18 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [1.13.31](https://github.com/standardnotes/server/compare/@standardnotes/scheduler-server@1.13.30...@standardnotes/scheduler-server@1.13.31) (2022-11-25)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/scheduler-server
|
||||||
|
|
||||||
|
## [1.13.30](https://github.com/standardnotes/server/compare/@standardnotes/scheduler-server@1.13.29...@standardnotes/scheduler-server@1.13.30) (2022-11-24)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/scheduler-server
|
||||||
|
|
||||||
|
## [1.13.29](https://github.com/standardnotes/server/compare/@standardnotes/scheduler-server@1.13.28...@standardnotes/scheduler-server@1.13.29) (2022-11-23)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/scheduler-server
|
||||||
|
|
||||||
## [1.13.28](https://github.com/standardnotes/server/compare/@standardnotes/scheduler-server@1.13.27...@standardnotes/scheduler-server@1.13.28) (2022-11-23)
|
## [1.13.28](https://github.com/standardnotes/server/compare/@standardnotes/scheduler-server@1.13.27...@standardnotes/scheduler-server@1.13.28) (2022-11-23)
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@standardnotes/scheduler-server",
|
"name": "@standardnotes/scheduler-server",
|
||||||
"version": "1.13.28",
|
"version": "1.13.31",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=18.0.0 <19.0.0"
|
"node": ">=18.0.0 <19.0.0"
|
||||||
},
|
},
|
||||||
@@ -24,7 +24,6 @@
|
|||||||
"upgrade:snjs": "yarn ncu -u '@standardnotes/*'"
|
"upgrade:snjs": "yarn ncu -u '@standardnotes/*'"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@newrelic/native-metrics": "^9.0.0",
|
|
||||||
"@newrelic/winston-enricher": "^4.0.0",
|
"@newrelic/winston-enricher": "^4.0.0",
|
||||||
"@sentry/node": "^7.19.0",
|
"@sentry/node": "^7.19.0",
|
||||||
"@standardnotes/common": "workspace:*",
|
"@standardnotes/common": "workspace:*",
|
||||||
@@ -32,7 +31,7 @@
|
|||||||
"@standardnotes/domain-events-infra": "workspace:*",
|
"@standardnotes/domain-events-infra": "workspace:*",
|
||||||
"@standardnotes/predicates": "workspace:*",
|
"@standardnotes/predicates": "workspace:*",
|
||||||
"@standardnotes/time": "workspace:*",
|
"@standardnotes/time": "workspace:*",
|
||||||
"aws-sdk": "^2.1253.0",
|
"aws-sdk": "^2.1260.0",
|
||||||
"dayjs": "^1.11.6",
|
"dayjs": "^1.11.6",
|
||||||
"dotenv": "^16.0.1",
|
"dotenv": "^16.0.1",
|
||||||
"inversify": "^6.0.1",
|
"inversify": "^6.0.1",
|
||||||
|
|||||||
@@ -3,6 +3,10 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [1.7.2](https://github.com/standardnotes/server/compare/@standardnotes/security@1.7.1...@standardnotes/security@1.7.2) (2022-11-25)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/security
|
||||||
|
|
||||||
## [1.7.1](https://github.com/standardnotes/server/compare/@standardnotes/security@1.7.0...@standardnotes/security@1.7.1) (2022-11-22)
|
## [1.7.1](https://github.com/standardnotes/server/compare/@standardnotes/security@1.7.0...@standardnotes/security@1.7.1) (2022-11-22)
|
||||||
|
|
||||||
**Note:** Version bump only for package @standardnotes/security
|
**Note:** Version bump only for package @standardnotes/security
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@standardnotes/security",
|
"name": "@standardnotes/security",
|
||||||
"version": "1.7.1",
|
"version": "1.7.2",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=18.0.0 <19.0.0"
|
"node": ">=18.0.0 <19.0.0"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -3,6 +3,10 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [1.18.4](https://github.com/standardnotes/server/compare/@standardnotes/settings@1.18.3...@standardnotes/settings@1.18.4) (2022-11-24)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/settings
|
||||||
|
|
||||||
## [1.18.3](https://github.com/standardnotes/server/compare/@standardnotes/settings@1.18.0...@standardnotes/settings@1.18.3) (2022-11-14)
|
## [1.18.3](https://github.com/standardnotes/server/compare/@standardnotes/settings@1.18.0...@standardnotes/settings@1.18.3) (2022-11-14)
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@standardnotes/settings",
|
"name": "@standardnotes/settings",
|
||||||
"version": "1.18.3",
|
"version": "1.18.4",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=18.0.0 <19.0.0"
|
"node": ">=18.0.0 <19.0.0"
|
||||||
},
|
},
|
||||||
@@ -29,7 +29,6 @@
|
|||||||
"typescript": "^4.8.4"
|
"typescript": "^4.8.4"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@newrelic/native-metrics": "^9.0.0",
|
|
||||||
"reflect-metadata": "^0.1.13"
|
"reflect-metadata": "^0.1.13"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,30 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [1.18.12](https://github.com/standardnotes/syncing-server-js/compare/@standardnotes/syncing-server@1.18.11...@standardnotes/syncing-server@1.18.12) (2022-11-25)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/syncing-server
|
||||||
|
|
||||||
|
## [1.18.11](https://github.com/standardnotes/syncing-server-js/compare/@standardnotes/syncing-server@1.18.10...@standardnotes/syncing-server@1.18.11) (2022-11-24)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/syncing-server
|
||||||
|
|
||||||
|
## [1.18.10](https://github.com/standardnotes/syncing-server-js/compare/@standardnotes/syncing-server@1.18.9...@standardnotes/syncing-server@1.18.10) (2022-11-24)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/syncing-server
|
||||||
|
|
||||||
|
## [1.18.9](https://github.com/standardnotes/syncing-server-js/compare/@standardnotes/syncing-server@1.18.8...@standardnotes/syncing-server@1.18.9) (2022-11-24)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/syncing-server
|
||||||
|
|
||||||
|
## [1.18.8](https://github.com/standardnotes/syncing-server-js/compare/@standardnotes/syncing-server@1.18.7...@standardnotes/syncing-server@1.18.8) (2022-11-24)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/syncing-server
|
||||||
|
|
||||||
|
## [1.18.7](https://github.com/standardnotes/syncing-server-js/compare/@standardnotes/syncing-server@1.18.6...@standardnotes/syncing-server@1.18.7) (2022-11-23)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/syncing-server
|
||||||
|
|
||||||
## [1.18.6](https://github.com/standardnotes/syncing-server-js/compare/@standardnotes/syncing-server@1.18.5...@standardnotes/syncing-server@1.18.6) (2022-11-23)
|
## [1.18.6](https://github.com/standardnotes/syncing-server-js/compare/@standardnotes/syncing-server@1.18.5...@standardnotes/syncing-server@1.18.6) (2022-11-23)
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@standardnotes/syncing-server",
|
"name": "@standardnotes/syncing-server",
|
||||||
"version": "1.18.6",
|
"version": "1.18.12",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=18.0.0 <19.0.0"
|
"node": ">=18.0.0 <19.0.0"
|
||||||
},
|
},
|
||||||
@@ -25,7 +25,6 @@
|
|||||||
"upgrade:snjs": "yarn ncu -u '@standardnotes/*'"
|
"upgrade:snjs": "yarn ncu -u '@standardnotes/*'"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@newrelic/native-metrics": "^9.0.0",
|
|
||||||
"@newrelic/winston-enricher": "^4.0.0",
|
"@newrelic/winston-enricher": "^4.0.0",
|
||||||
"@sentry/node": "^7.19.0",
|
"@sentry/node": "^7.19.0",
|
||||||
"@standardnotes/common": "workspace:*",
|
"@standardnotes/common": "workspace:*",
|
||||||
@@ -37,7 +36,7 @@
|
|||||||
"@standardnotes/security": "workspace:*",
|
"@standardnotes/security": "workspace:*",
|
||||||
"@standardnotes/settings": "workspace:*",
|
"@standardnotes/settings": "workspace:*",
|
||||||
"@standardnotes/time": "workspace:*",
|
"@standardnotes/time": "workspace:*",
|
||||||
"aws-sdk": "^2.1253.0",
|
"aws-sdk": "^2.1260.0",
|
||||||
"axios": "^1.1.3",
|
"axios": "^1.1.3",
|
||||||
"cors": "2.8.5",
|
"cors": "2.8.5",
|
||||||
"dotenv": "^16.0.1",
|
"dotenv": "^16.0.1",
|
||||||
|
|||||||
@@ -3,6 +3,18 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [1.4.31](https://github.com/standardnotes/server/compare/@standardnotes/websockets-server@1.4.30...@standardnotes/websockets-server@1.4.31) (2022-11-25)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/websockets-server
|
||||||
|
|
||||||
|
## [1.4.30](https://github.com/standardnotes/server/compare/@standardnotes/websockets-server@1.4.29...@standardnotes/websockets-server@1.4.30) (2022-11-24)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/websockets-server
|
||||||
|
|
||||||
|
## [1.4.29](https://github.com/standardnotes/server/compare/@standardnotes/websockets-server@1.4.28...@standardnotes/websockets-server@1.4.29) (2022-11-23)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/websockets-server
|
||||||
|
|
||||||
## [1.4.28](https://github.com/standardnotes/server/compare/@standardnotes/websockets-server@1.4.27...@standardnotes/websockets-server@1.4.28) (2022-11-22)
|
## [1.4.28](https://github.com/standardnotes/server/compare/@standardnotes/websockets-server@1.4.27...@standardnotes/websockets-server@1.4.28) (2022-11-22)
|
||||||
|
|
||||||
**Note:** Version bump only for package @standardnotes/websockets-server
|
**Note:** Version bump only for package @standardnotes/websockets-server
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@standardnotes/websockets-server",
|
"name": "@standardnotes/websockets-server",
|
||||||
"version": "1.4.28",
|
"version": "1.4.31",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=18.0.0 <19.0.0"
|
"node": ">=18.0.0 <19.0.0"
|
||||||
},
|
},
|
||||||
@@ -22,7 +22,6 @@
|
|||||||
"typeorm": "typeorm-ts-node-commonjs"
|
"typeorm": "typeorm-ts-node-commonjs"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@newrelic/native-metrics": "^9.0.0",
|
|
||||||
"@newrelic/winston-enricher": "^4.0.0",
|
"@newrelic/winston-enricher": "^4.0.0",
|
||||||
"@sentry/node": "^7.19.0",
|
"@sentry/node": "^7.19.0",
|
||||||
"@standardnotes/api": "^1.19.0",
|
"@standardnotes/api": "^1.19.0",
|
||||||
@@ -30,7 +29,7 @@
|
|||||||
"@standardnotes/domain-events": "workspace:^",
|
"@standardnotes/domain-events": "workspace:^",
|
||||||
"@standardnotes/domain-events-infra": "workspace:^",
|
"@standardnotes/domain-events-infra": "workspace:^",
|
||||||
"@standardnotes/security": "workspace:^",
|
"@standardnotes/security": "workspace:^",
|
||||||
"aws-sdk": "^2.1253.0",
|
"aws-sdk": "^2.1260.0",
|
||||||
"axios": "^1.1.3",
|
"axios": "^1.1.3",
|
||||||
"cors": "2.8.5",
|
"cors": "2.8.5",
|
||||||
"dotenv": "^16.0.1",
|
"dotenv": "^16.0.1",
|
||||||
|
|||||||
@@ -3,6 +3,18 @@
|
|||||||
All notable changes to this project will be documented in this file.
|
All notable changes to this project will be documented in this file.
|
||||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||||
|
|
||||||
|
## [1.17.30](https://github.com/standardnotes/server/compare/@standardnotes/workspace-server@1.17.29...@standardnotes/workspace-server@1.17.30) (2022-11-25)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/workspace-server
|
||||||
|
|
||||||
|
## [1.17.29](https://github.com/standardnotes/server/compare/@standardnotes/workspace-server@1.17.28...@standardnotes/workspace-server@1.17.29) (2022-11-24)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/workspace-server
|
||||||
|
|
||||||
|
## [1.17.28](https://github.com/standardnotes/server/compare/@standardnotes/workspace-server@1.17.27...@standardnotes/workspace-server@1.17.28) (2022-11-23)
|
||||||
|
|
||||||
|
**Note:** Version bump only for package @standardnotes/workspace-server
|
||||||
|
|
||||||
## [1.17.27](https://github.com/standardnotes/server/compare/@standardnotes/workspace-server@1.17.26...@standardnotes/workspace-server@1.17.27) (2022-11-23)
|
## [1.17.27](https://github.com/standardnotes/server/compare/@standardnotes/workspace-server@1.17.26...@standardnotes/workspace-server@1.17.27) (2022-11-23)
|
||||||
|
|
||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@standardnotes/workspace-server",
|
"name": "@standardnotes/workspace-server",
|
||||||
"version": "1.17.27",
|
"version": "1.17.30",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=18.0.0 <19.0.0"
|
"node": ">=18.0.0 <19.0.0"
|
||||||
},
|
},
|
||||||
@@ -22,7 +22,6 @@
|
|||||||
"typeorm": "typeorm-ts-node-commonjs"
|
"typeorm": "typeorm-ts-node-commonjs"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@newrelic/native-metrics": "^9.0.0",
|
|
||||||
"@newrelic/winston-enricher": "^4.0.0",
|
"@newrelic/winston-enricher": "^4.0.0",
|
||||||
"@sentry/node": "^7.19.0",
|
"@sentry/node": "^7.19.0",
|
||||||
"@standardnotes/api": "^1.19.0",
|
"@standardnotes/api": "^1.19.0",
|
||||||
@@ -32,7 +31,7 @@
|
|||||||
"@standardnotes/models": "^1.26.0",
|
"@standardnotes/models": "^1.26.0",
|
||||||
"@standardnotes/security": "workspace:*",
|
"@standardnotes/security": "workspace:*",
|
||||||
"@standardnotes/time": "workspace:^",
|
"@standardnotes/time": "workspace:^",
|
||||||
"aws-sdk": "^2.1253.0",
|
"aws-sdk": "^2.1260.0",
|
||||||
"cors": "2.8.5",
|
"cors": "2.8.5",
|
||||||
"dotenv": "^16.0.1",
|
"dotenv": "^16.0.1",
|
||||||
"express": "^4.18.2",
|
"express": "^4.18.2",
|
||||||
|
|||||||
@@ -1792,7 +1792,6 @@ __metadata:
|
|||||||
version: 0.0.0-use.local
|
version: 0.0.0-use.local
|
||||||
resolution: "@standardnotes/analytics@workspace:packages/analytics"
|
resolution: "@standardnotes/analytics@workspace:packages/analytics"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@newrelic/native-metrics": "npm:^9.0.0"
|
|
||||||
"@newrelic/winston-enricher": "npm:^4.0.0"
|
"@newrelic/winston-enricher": "npm:^4.0.0"
|
||||||
"@sentry/node": "npm:^7.19.0"
|
"@sentry/node": "npm:^7.19.0"
|
||||||
"@standardnotes/common": "workspace:*"
|
"@standardnotes/common": "workspace:*"
|
||||||
@@ -1805,7 +1804,7 @@ __metadata:
|
|||||||
"@types/newrelic": "npm:^7.0.4"
|
"@types/newrelic": "npm:^7.0.4"
|
||||||
"@types/node": "npm:^18.11.9"
|
"@types/node": "npm:^18.11.9"
|
||||||
"@typescript-eslint/eslint-plugin": "npm:^5.30.0"
|
"@typescript-eslint/eslint-plugin": "npm:^5.30.0"
|
||||||
aws-sdk: "npm:^2.1253.0"
|
aws-sdk: "npm:^2.1260.0"
|
||||||
dayjs: "npm:^1.11.6"
|
dayjs: "npm:^1.11.6"
|
||||||
dotenv: "npm:^16.0.1"
|
dotenv: "npm:^16.0.1"
|
||||||
eslint: "npm:^8.14.0"
|
eslint: "npm:^8.14.0"
|
||||||
@@ -1827,7 +1826,6 @@ __metadata:
|
|||||||
version: 0.0.0-use.local
|
version: 0.0.0-use.local
|
||||||
resolution: "@standardnotes/api-gateway@workspace:packages/api-gateway"
|
resolution: "@standardnotes/api-gateway@workspace:packages/api-gateway"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@newrelic/native-metrics": "npm:^9.0.0"
|
|
||||||
"@newrelic/winston-enricher": "npm:^4.0.0"
|
"@newrelic/winston-enricher": "npm:^4.0.0"
|
||||||
"@sentry/node": "npm:^7.19.0"
|
"@sentry/node": "npm:^7.19.0"
|
||||||
"@standardnotes/common": "workspace:^"
|
"@standardnotes/common": "workspace:^"
|
||||||
@@ -1843,7 +1841,7 @@ __metadata:
|
|||||||
"@types/newrelic": "npm:^7.0.4"
|
"@types/newrelic": "npm:^7.0.4"
|
||||||
"@types/prettyjson": "npm:^0.0.30"
|
"@types/prettyjson": "npm:^0.0.30"
|
||||||
"@typescript-eslint/eslint-plugin": "npm:^5.29.0"
|
"@typescript-eslint/eslint-plugin": "npm:^5.29.0"
|
||||||
aws-sdk: "npm:^2.1253.0"
|
aws-sdk: "npm:^2.1260.0"
|
||||||
axios: "npm:^1.1.3"
|
axios: "npm:^1.1.3"
|
||||||
cors: "npm:2.8.5"
|
cors: "npm:2.8.5"
|
||||||
dotenv: "npm:^16.0.1"
|
dotenv: "npm:^16.0.1"
|
||||||
@@ -1886,7 +1884,6 @@ __metadata:
|
|||||||
version: 0.0.0-use.local
|
version: 0.0.0-use.local
|
||||||
resolution: "@standardnotes/auth-server@workspace:packages/auth"
|
resolution: "@standardnotes/auth-server@workspace:packages/auth"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@newrelic/native-metrics": "npm:^9.0.0"
|
|
||||||
"@newrelic/winston-enricher": "npm:^4.0.0"
|
"@newrelic/winston-enricher": "npm:^4.0.0"
|
||||||
"@sentry/node": "npm:^7.19.0"
|
"@sentry/node": "npm:^7.19.0"
|
||||||
"@standardnotes/api": "npm:^1.19.0"
|
"@standardnotes/api": "npm:^1.19.0"
|
||||||
@@ -1912,7 +1909,7 @@ __metadata:
|
|||||||
"@types/ua-parser-js": "npm:^0.7.36"
|
"@types/ua-parser-js": "npm:^0.7.36"
|
||||||
"@types/uuid": "npm:^8.3.0"
|
"@types/uuid": "npm:^8.3.0"
|
||||||
"@typescript-eslint/eslint-plugin": "npm:^5.29.0"
|
"@typescript-eslint/eslint-plugin": "npm:^5.29.0"
|
||||||
aws-sdk: "npm:^2.1253.0"
|
aws-sdk: "npm:^2.1260.0"
|
||||||
axios: "npm:^1.1.3"
|
axios: "npm:^1.1.3"
|
||||||
bcryptjs: "npm:2.4.3"
|
bcryptjs: "npm:2.4.3"
|
||||||
cors: "npm:2.8.5"
|
cors: "npm:2.8.5"
|
||||||
@@ -2004,13 +2001,12 @@ __metadata:
|
|||||||
version: 0.0.0-use.local
|
version: 0.0.0-use.local
|
||||||
resolution: "@standardnotes/domain-events-infra@workspace:packages/domain-events-infra"
|
resolution: "@standardnotes/domain-events-infra@workspace:packages/domain-events-infra"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@newrelic/native-metrics": "npm:^9.0.0"
|
|
||||||
"@standardnotes/domain-events": "workspace:*"
|
"@standardnotes/domain-events": "workspace:*"
|
||||||
"@types/ioredis": "npm:^5.0.0"
|
"@types/ioredis": "npm:^5.0.0"
|
||||||
"@types/jest": "npm:^29.1.1"
|
"@types/jest": "npm:^29.1.1"
|
||||||
"@types/newrelic": "npm:^7.0.4"
|
"@types/newrelic": "npm:^7.0.4"
|
||||||
"@typescript-eslint/eslint-plugin": "npm:^5.30.0"
|
"@typescript-eslint/eslint-plugin": "npm:^5.30.0"
|
||||||
aws-sdk: "npm:^2.1253.0"
|
aws-sdk: "npm:^2.1260.0"
|
||||||
eslint-plugin-prettier: "npm:^4.2.1"
|
eslint-plugin-prettier: "npm:^4.2.1"
|
||||||
ioredis: "npm:^5.2.4"
|
ioredis: "npm:^5.2.4"
|
||||||
jest: "npm:^29.1.2"
|
jest: "npm:^29.1.2"
|
||||||
@@ -2059,7 +2055,6 @@ __metadata:
|
|||||||
version: 0.0.0-use.local
|
version: 0.0.0-use.local
|
||||||
resolution: "@standardnotes/event-store@workspace:packages/event-store"
|
resolution: "@standardnotes/event-store@workspace:packages/event-store"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@newrelic/native-metrics": "npm:^9.0.0"
|
|
||||||
"@standardnotes/domain-events": "workspace:*"
|
"@standardnotes/domain-events": "workspace:*"
|
||||||
"@standardnotes/domain-events-infra": "workspace:*"
|
"@standardnotes/domain-events-infra": "workspace:*"
|
||||||
"@standardnotes/time": "workspace:*"
|
"@standardnotes/time": "workspace:*"
|
||||||
@@ -2068,7 +2063,7 @@ __metadata:
|
|||||||
"@types/newrelic": "npm:^7.0.4"
|
"@types/newrelic": "npm:^7.0.4"
|
||||||
"@types/nodemailer": "npm:^6.4.1"
|
"@types/nodemailer": "npm:^6.4.1"
|
||||||
"@typescript-eslint/eslint-plugin": "npm:^5.40.1"
|
"@typescript-eslint/eslint-plugin": "npm:^5.40.1"
|
||||||
aws-sdk: "npm:^2.1253.0"
|
aws-sdk: "npm:^2.1260.0"
|
||||||
dotenv: "npm:^16.0.1"
|
dotenv: "npm:^16.0.1"
|
||||||
eslint: "npm:^8.14.0"
|
eslint: "npm:^8.14.0"
|
||||||
eslint-plugin-prettier: "npm:^4.2.1"
|
eslint-plugin-prettier: "npm:^4.2.1"
|
||||||
@@ -2113,7 +2108,6 @@ __metadata:
|
|||||||
version: 0.0.0-use.local
|
version: 0.0.0-use.local
|
||||||
resolution: "@standardnotes/files-server@workspace:packages/files"
|
resolution: "@standardnotes/files-server@workspace:packages/files"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@newrelic/native-metrics": "npm:^9.0.0"
|
|
||||||
"@sentry/node": "npm:^7.19.0"
|
"@sentry/node": "npm:^7.19.0"
|
||||||
"@standardnotes/common": "workspace:*"
|
"@standardnotes/common": "workspace:*"
|
||||||
"@standardnotes/config": "npm:2.4.3"
|
"@standardnotes/config": "npm:2.4.3"
|
||||||
@@ -2133,7 +2127,7 @@ __metadata:
|
|||||||
"@types/prettyjson": "npm:^0.0.30"
|
"@types/prettyjson": "npm:^0.0.30"
|
||||||
"@types/uuid": "npm:^8.3.0"
|
"@types/uuid": "npm:^8.3.0"
|
||||||
"@typescript-eslint/eslint-plugin": "npm:^5.29.0"
|
"@typescript-eslint/eslint-plugin": "npm:^5.29.0"
|
||||||
aws-sdk: "npm:^2.1253.0"
|
aws-sdk: "npm:^2.1260.0"
|
||||||
connect-busboy: "npm:^1.0.0"
|
connect-busboy: "npm:^1.0.0"
|
||||||
cors: "npm:^2.8.5"
|
cors: "npm:^2.8.5"
|
||||||
dayjs: "npm:^1.11.6"
|
dayjs: "npm:^1.11.6"
|
||||||
@@ -2243,7 +2237,6 @@ __metadata:
|
|||||||
version: 0.0.0-use.local
|
version: 0.0.0-use.local
|
||||||
resolution: "@standardnotes/revisions-server@workspace:packages/revisions"
|
resolution: "@standardnotes/revisions-server@workspace:packages/revisions"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@newrelic/native-metrics": "npm:^9.0.0"
|
|
||||||
"@newrelic/winston-enricher": "npm:^4.0.0"
|
"@newrelic/winston-enricher": "npm:^4.0.0"
|
||||||
"@sentry/node": "npm:^7.19.0"
|
"@sentry/node": "npm:^7.19.0"
|
||||||
"@standardnotes/api": "npm:^1.19.0"
|
"@standardnotes/api": "npm:^1.19.0"
|
||||||
@@ -2261,7 +2254,7 @@ __metadata:
|
|||||||
"@types/jest": "npm:^29.1.1"
|
"@types/jest": "npm:^29.1.1"
|
||||||
"@types/newrelic": "npm:^7.0.4"
|
"@types/newrelic": "npm:^7.0.4"
|
||||||
"@typescript-eslint/eslint-plugin": "npm:^5.29.0"
|
"@typescript-eslint/eslint-plugin": "npm:^5.29.0"
|
||||||
aws-sdk: "npm:^2.1253.0"
|
aws-sdk: "npm:^2.1260.0"
|
||||||
cors: "npm:2.8.5"
|
cors: "npm:2.8.5"
|
||||||
dotenv: "npm:^16.0.1"
|
dotenv: "npm:^16.0.1"
|
||||||
eslint: "npm:^8.14.0"
|
eslint: "npm:^8.14.0"
|
||||||
@@ -2287,7 +2280,6 @@ __metadata:
|
|||||||
version: 0.0.0-use.local
|
version: 0.0.0-use.local
|
||||||
resolution: "@standardnotes/scheduler-server@workspace:packages/scheduler"
|
resolution: "@standardnotes/scheduler-server@workspace:packages/scheduler"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@newrelic/native-metrics": "npm:^9.0.0"
|
|
||||||
"@newrelic/winston-enricher": "npm:^4.0.0"
|
"@newrelic/winston-enricher": "npm:^4.0.0"
|
||||||
"@sentry/node": "npm:^7.19.0"
|
"@sentry/node": "npm:^7.19.0"
|
||||||
"@standardnotes/common": "workspace:*"
|
"@standardnotes/common": "workspace:*"
|
||||||
@@ -2300,7 +2292,7 @@ __metadata:
|
|||||||
"@types/newrelic": "npm:^7.0.4"
|
"@types/newrelic": "npm:^7.0.4"
|
||||||
"@types/node": "npm:^18.11.9"
|
"@types/node": "npm:^18.11.9"
|
||||||
"@typescript-eslint/eslint-plugin": "npm:^5.29.0"
|
"@typescript-eslint/eslint-plugin": "npm:^5.29.0"
|
||||||
aws-sdk: "npm:^2.1253.0"
|
aws-sdk: "npm:^2.1260.0"
|
||||||
dayjs: "npm:^1.11.6"
|
dayjs: "npm:^1.11.6"
|
||||||
dotenv: "npm:^16.0.1"
|
dotenv: "npm:^16.0.1"
|
||||||
eslint: "npm:^8.14.0"
|
eslint: "npm:^8.14.0"
|
||||||
@@ -2345,7 +2337,6 @@ __metadata:
|
|||||||
"@lerna-lite/cli": "npm:^1.5.1"
|
"@lerna-lite/cli": "npm:^1.5.1"
|
||||||
"@lerna-lite/list": "npm:^1.5.1"
|
"@lerna-lite/list": "npm:^1.5.1"
|
||||||
"@lerna-lite/run": "npm:^1.5.1"
|
"@lerna-lite/run": "npm:^1.5.1"
|
||||||
"@newrelic/native-metrics": "npm:^9.0.0"
|
|
||||||
"@sentry/node": "npm:^7.19.0"
|
"@sentry/node": "npm:^7.19.0"
|
||||||
"@types/jest": "npm:^29.1.1"
|
"@types/jest": "npm:^29.1.1"
|
||||||
"@types/newrelic": "npm:^7.0.4"
|
"@types/newrelic": "npm:^7.0.4"
|
||||||
@@ -2366,7 +2357,6 @@ __metadata:
|
|||||||
version: 0.0.0-use.local
|
version: 0.0.0-use.local
|
||||||
resolution: "@standardnotes/settings@workspace:packages/settings"
|
resolution: "@standardnotes/settings@workspace:packages/settings"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@newrelic/native-metrics": "npm:^9.0.0"
|
|
||||||
"@typescript-eslint/eslint-plugin": "npm:^5.30.0"
|
"@typescript-eslint/eslint-plugin": "npm:^5.30.0"
|
||||||
eslint-plugin-prettier: "npm:^4.2.1"
|
eslint-plugin-prettier: "npm:^4.2.1"
|
||||||
reflect-metadata: "npm:^0.1.13"
|
reflect-metadata: "npm:^0.1.13"
|
||||||
@@ -2405,7 +2395,6 @@ __metadata:
|
|||||||
version: 0.0.0-use.local
|
version: 0.0.0-use.local
|
||||||
resolution: "@standardnotes/syncing-server@workspace:packages/syncing-server"
|
resolution: "@standardnotes/syncing-server@workspace:packages/syncing-server"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@newrelic/native-metrics": "npm:^9.0.0"
|
|
||||||
"@newrelic/winston-enricher": "npm:^4.0.0"
|
"@newrelic/winston-enricher": "npm:^4.0.0"
|
||||||
"@sentry/node": "npm:^7.19.0"
|
"@sentry/node": "npm:^7.19.0"
|
||||||
"@standardnotes/common": "workspace:*"
|
"@standardnotes/common": "workspace:*"
|
||||||
@@ -2429,7 +2418,7 @@ __metadata:
|
|||||||
"@types/ua-parser-js": "npm:^0.7.36"
|
"@types/ua-parser-js": "npm:^0.7.36"
|
||||||
"@types/uuid": "npm:^8.3.0"
|
"@types/uuid": "npm:^8.3.0"
|
||||||
"@typescript-eslint/eslint-plugin": "npm:^5.29.0"
|
"@typescript-eslint/eslint-plugin": "npm:^5.29.0"
|
||||||
aws-sdk: "npm:^2.1253.0"
|
aws-sdk: "npm:^2.1260.0"
|
||||||
axios: "npm:^1.1.3"
|
axios: "npm:^1.1.3"
|
||||||
cors: "npm:2.8.5"
|
cors: "npm:2.8.5"
|
||||||
dotenv: "npm:^16.0.1"
|
dotenv: "npm:^16.0.1"
|
||||||
@@ -2502,7 +2491,6 @@ __metadata:
|
|||||||
version: 0.0.0-use.local
|
version: 0.0.0-use.local
|
||||||
resolution: "@standardnotes/websockets-server@workspace:packages/websockets"
|
resolution: "@standardnotes/websockets-server@workspace:packages/websockets"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@newrelic/native-metrics": "npm:^9.0.0"
|
|
||||||
"@newrelic/winston-enricher": "npm:^4.0.0"
|
"@newrelic/winston-enricher": "npm:^4.0.0"
|
||||||
"@sentry/node": "npm:^7.19.0"
|
"@sentry/node": "npm:^7.19.0"
|
||||||
"@standardnotes/api": "npm:^1.19.0"
|
"@standardnotes/api": "npm:^1.19.0"
|
||||||
@@ -2516,7 +2504,7 @@ __metadata:
|
|||||||
"@types/jest": "npm:^29.1.1"
|
"@types/jest": "npm:^29.1.1"
|
||||||
"@types/newrelic": "npm:^7.0.4"
|
"@types/newrelic": "npm:^7.0.4"
|
||||||
"@typescript-eslint/eslint-plugin": "npm:^5.29.0"
|
"@typescript-eslint/eslint-plugin": "npm:^5.29.0"
|
||||||
aws-sdk: "npm:^2.1253.0"
|
aws-sdk: "npm:^2.1260.0"
|
||||||
axios: "npm:^1.1.3"
|
axios: "npm:^1.1.3"
|
||||||
cors: "npm:2.8.5"
|
cors: "npm:2.8.5"
|
||||||
dotenv: "npm:^16.0.1"
|
dotenv: "npm:^16.0.1"
|
||||||
@@ -2541,7 +2529,6 @@ __metadata:
|
|||||||
version: 0.0.0-use.local
|
version: 0.0.0-use.local
|
||||||
resolution: "@standardnotes/workspace-server@workspace:packages/workspace"
|
resolution: "@standardnotes/workspace-server@workspace:packages/workspace"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@newrelic/native-metrics": "npm:^9.0.0"
|
|
||||||
"@newrelic/winston-enricher": "npm:^4.0.0"
|
"@newrelic/winston-enricher": "npm:^4.0.0"
|
||||||
"@sentry/node": "npm:^7.19.0"
|
"@sentry/node": "npm:^7.19.0"
|
||||||
"@standardnotes/api": "npm:^1.19.0"
|
"@standardnotes/api": "npm:^1.19.0"
|
||||||
@@ -2557,7 +2544,7 @@ __metadata:
|
|||||||
"@types/jest": "npm:^29.1.1"
|
"@types/jest": "npm:^29.1.1"
|
||||||
"@types/newrelic": "npm:^7.0.4"
|
"@types/newrelic": "npm:^7.0.4"
|
||||||
"@typescript-eslint/eslint-plugin": "npm:^5.29.0"
|
"@typescript-eslint/eslint-plugin": "npm:^5.29.0"
|
||||||
aws-sdk: "npm:^2.1253.0"
|
aws-sdk: "npm:^2.1260.0"
|
||||||
cors: "npm:2.8.5"
|
cors: "npm:2.8.5"
|
||||||
dotenv: "npm:^16.0.1"
|
dotenv: "npm:^16.0.1"
|
||||||
eslint: "npm:^8.14.0"
|
eslint: "npm:^8.14.0"
|
||||||
@@ -3580,9 +3567,9 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"aws-sdk@npm:^2.1253.0":
|
"aws-sdk@npm:^2.1260.0":
|
||||||
version: 2.1253.0
|
version: 2.1260.0
|
||||||
resolution: "aws-sdk@npm:2.1253.0"
|
resolution: "aws-sdk@npm:2.1260.0"
|
||||||
dependencies:
|
dependencies:
|
||||||
buffer: "npm:4.9.2"
|
buffer: "npm:4.9.2"
|
||||||
events: "npm:1.1.1"
|
events: "npm:1.1.1"
|
||||||
@@ -3594,7 +3581,7 @@ __metadata:
|
|||||||
util: "npm:^0.12.4"
|
util: "npm:^0.12.4"
|
||||||
uuid: "npm:8.0.0"
|
uuid: "npm:8.0.0"
|
||||||
xml2js: "npm:0.4.19"
|
xml2js: "npm:0.4.19"
|
||||||
checksum: faa4af29491f175158b14b58ead3bcc0f84c440300033f49846119f59dc26117b4dad0040a7eef3b12a94a31876913ce2b998c4cfdb103b908e38c52fee52c83
|
checksum: 9a1b2e4cb5fea2dad4b02c4ae25e68f85c4f952c19d13bd816ad76f6fdde808ca0a6e56e372002e876fbdc34d55d3c6b9b68d788fd7c915b94d40fbf216c6ba0
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user