Compare commits

..

24 Commits

Author SHA1 Message Date
standardci
41999f36f0 chore(release): publish new version
- @standardnotes/api-gateway@1.2.0
 - @standardnotes/auth-server@1.2.1
2022-06-27 10:07:19 +00:00
Karol Sójko
fa2a8da17b feat: add endpoint to mute marketing emails 2022-06-27 12:06:33 +02:00
Karol Sójko
214684eae7 fix: add setting uuid to email requests 2022-06-27 12:06:33 +02:00
standardci
b3a92af04d chore(release): publish new version
- @standardnotes/auth-server@1.2.0
2022-06-27 09:57:22 +00:00
Karol Sójko
210a314c81 feat: add docker commands to start sending emails 2022-06-27 11:56:42 +02:00
standardci
46cba52bcb chore(release): publish new version
- @standardnotes/auth-server@1.1.7
2022-06-27 08:44:03 +00:00
Karol Sójko
bf14ec05f9 fix: add sending out email campaigns 2022-06-27 10:43:23 +02:00
standardci
6f88a96c3e chore(release): publish new version
- @standardnotes/scheduler-server@1.2.1
2022-06-27 07:42:47 +00:00
Karol Sójko
e12c9c47a7 fix: change subscription encouragement scheduled from 14 to 30 days 2022-06-27 09:42:08 +02:00
standardci
83085052f8 chore(release): publish new version
- @standardnotes/api-gateway@1.1.6
 - @standardnotes/auth-server@1.1.6
 - @standardnotes/files-server@1.1.6
 - @standardnotes/scheduler-server@1.2.0
 - @standardnotes/syncing-server@1.1.6
2022-06-27 07:25:46 +00:00
Karol Sójko
eda618d845 Merge branch 'main' of github.com:standardnotes/server 2022-06-27 09:25:04 +02:00
Karol Sójko
8d4280f4ca feat: add context for requesting email message 2022-06-27 09:24:43 +02:00
standardci
b57816bba4 chore(release): publish new version
- @standardnotes/api-gateway@1.1.5
 - @standardnotes/auth-server@1.1.5
 - @standardnotes/files-server@1.1.5
 - @standardnotes/scheduler-server@1.1.5
 - @standardnotes/syncing-server@1.1.5
2022-06-27 04:59:52 +00:00
Karol Sójko
b6db194a22 fix: upgrade sentry node sdk 2022-06-27 06:59:15 +02:00
standardci
8f708164cd chore(release): publish new version
- @standardnotes/api-gateway@1.1.4
 - @standardnotes/auth-server@1.1.4
 - @standardnotes/files-server@1.1.4
 - @standardnotes/scheduler-server@1.1.4
 - @standardnotes/syncing-server@1.1.4
2022-06-24 13:19:23 +00:00
Karol Sójko
ff09ae0a47 fix: newrelic deps and setup db and cache for local development purposes 2022-06-24 15:18:41 +02:00
Karol Sójko
d21d752029 fix: newrelic deploy markers on syncing-server 2022-06-23 19:42:23 +02:00
standardci
2ea077a7cd chore(release): publish new version
- @standardnotes/api-gateway@1.1.3
 - @standardnotes/auth-server@1.1.3
 - @standardnotes/files-server@1.1.3
 - @standardnotes/scheduler-server@1.1.3
 - @standardnotes/syncing-server@1.1.3
2022-06-23 17:23:35 +00:00
Karol Sójko
0d67c55e12 fix: curl in the final image 2022-06-23 19:22:52 +02:00
Karol Sójko
8837dca039 fix: pushing tags one by one on release 2022-06-23 18:55:55 +02:00
standardci
c9ec846a3c chore(release): publish new version
- @standardnotes/api-gateway@1.1.2
 - @standardnotes/auth-server@1.1.2
 - @standardnotes/files-server@1.1.2
 - @standardnotes/scheduler-server@1.1.2
 - @standardnotes/syncing-server@1.1.2
2022-06-23 16:49:22 +00:00
Karol Sójko
786829f317 fix: workflow step names in scheduler 2022-06-23 18:48:37 +02:00
Karol Sójko
10891af33b Merge branch 'main' of github.com:standardnotes/server 2022-06-23 18:47:18 +02:00
Karol Sójko
3f091175e2 fix: workflow step names 2022-06-23 18:47:13 +02:00
68 changed files with 803 additions and 578 deletions

6
.env.sample Normal file
View File

@@ -0,0 +1,6 @@
DB_PORT=3306
DB_USERNAME=std_notes_user
DB_PASSWORD=changeme123
DB_DATABASE=standard_notes_db
REDIS_PORT=6379

View File

@@ -88,7 +88,7 @@ jobs:
- name: DEV - Download task definition
run: |
aws ecs describe-task-definition --task-definition scheduler-worker-dev --query taskDefinition > task-definition.json
- name: Fill in the new version in the Amazon ECS task definition
- name: DEV - Fill in the new version in the Amazon ECS task definition
run: |
jq '(.containerDefinitions[] | select(.name=="scheduler-worker-dev") | .environment[] | select(.name=="VERSION")).value = "${{ github.sha }}"' task-definition.json > tmp.json && mv tmp.json task-definition.json
- name: DEV - Fill in the new image ID in the Amazon ECS task definition
@@ -108,7 +108,7 @@ jobs:
- name: PROD - Download task definition
run: |
aws ecs describe-task-definition --task-definition scheduler-worker-prod --query taskDefinition > task-definition.json
- name: Fill in the new version in the Amazon ECS task definition
- name: PROD - Fill in the new version in the Amazon ECS task definition
run: |
jq '(.containerDefinitions[] | select(.name=="scheduler-worker-prod") | .environment[] | select(.name=="VERSION")).value = "${{ github.sha }}"' task-definition.json > tmp.json && mv tmp.json task-definition.json
- name: PROD - Fill in the new image ID in the Amazon ECS task definition

View File

@@ -89,7 +89,7 @@ jobs:
- name: DEV - Download task definition
run: |
aws ecs describe-task-definition --task-definition syncing-server-js-dev --query taskDefinition > task-definition.json
- name: Fill in the new version in the Amazon ECS task definition
- name: DEV - Fill in the new version in the Amazon ECS task definition
run: |
jq '(.containerDefinitions[] | select(.name=="syncing-server-js-dev") | .environment[] | select(.name=="VERSION")).value = "${{ github.sha }}"' task-definition.json > tmp.json && mv tmp.json task-definition.json
- name: DEV - Fill in the new image ID in the Amazon ECS task definition
@@ -109,7 +109,7 @@ jobs:
- name: PROD - Download task definition
run: |
aws ecs describe-task-definition --task-definition syncing-server-js-prod --query taskDefinition > task-definition.json
- name: Fill in the new version in the Amazon ECS task definition
- name: PROD - Fill in the new version in the Amazon ECS task definition
run: |
jq '(.containerDefinitions[] | select(.name=="syncing-server-js-prod") | .environment[] | select(.name=="VERSION")).value = "${{ github.sha }}"' task-definition.json > tmp.json && mv tmp.json task-definition.json
- name: PROD - Fill in the new image ID in the Amazon ECS task definition
@@ -142,7 +142,7 @@ jobs:
- name: DEV - Download task definition
run: |
aws ecs describe-task-definition --task-definition syncing-server-js-worker-dev --query taskDefinition > task-definition.json
- name: Fill in the new version in the Amazon ECS task definition
- name: DEV - Fill in the new version in the Amazon ECS task definition
run: |
jq '(.containerDefinitions[] | select(.name=="syncing-server-js-worker-dev") | .environment[] | select(.name=="VERSION")).value = "${{ github.sha }}"' task-definition.json > tmp.json && mv tmp.json task-definition.json
- name: DEV - Fill in the new image ID in the Amazon ECS task definition
@@ -162,7 +162,7 @@ jobs:
- name: PROD - Download task definition
run: |
aws ecs describe-task-definition --task-definition syncing-server-js-worker-prod --query taskDefinition > task-definition.json
- name: Fill in the new version in the Amazon ECS task definition
- name: PROD - Fill in the new version in the Amazon ECS task definition
run: |
jq '(.containerDefinitions[] | select(.name=="syncing-server-js-worker-prod") | .environment[] | select(.name=="VERSION")).value = "${{ github.sha }}"' task-definition.json > tmp.json && mv tmp.json task-definition.json
- name: PROD - Fill in the new image ID in the Amazon ECS task definition
@@ -185,25 +185,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: DEV - Create New Relic deployment marker for Web
uses: newrelic/deployment-marker-action@v1
with:
accountId: ${{ secrets.NEW_RELIC_ACCOUNT_ID }}
apiKey: ${{ secrets.NEW_RELIC_API_KEY }}
applicationId: ${{ secrets.NEW_RELIC_APPLICATION_ID_SYNCING_SERVER_WEB_DEV }}
revision: "${{ github.sha }}"
description: "Automated Deployment via Github Actions"
user: "${{ github.actor }}"
- name: DEV - Create New Relic deployment marker for Worker
uses: newrelic/deployment-marker-action@v1
with:
accountId: ${{ secrets.NEW_RELIC_ACCOUNT_ID }}
apiKey: ${{ secrets.NEW_RELIC_API_KEY }}
applicationId: ${{ secrets.NEW_RELIC_APPLICATION_ID_SYNCING_SERVER_WORKER_DEV }}
revision: "${{ github.sha }}"
description: "Automated Deployment via Github Actions"
user: "${{ github.actor }}"
- name: PROD - Create New Relic deployment marker for Web
- name: Create New Relic deployment marker for Web
uses: newrelic/deployment-marker-action@v1
with:
accountId: ${{ secrets.NEW_RELIC_ACCOUNT_ID }}
@@ -212,7 +194,7 @@ jobs:
revision: "${{ github.sha }}"
description: "Automated Deployment via Github Actions"
user: "${{ github.actor }}"
- name: PROD - Create New Relic deployment marker for Worker
- name: Create New Relic deployment marker for Worker
uses: newrelic/deployment-marker-action@v1
with:
accountId: ${{ secrets.NEW_RELIC_ACCOUNT_ID }}

3
.gitignore vendored
View File

@@ -18,3 +18,6 @@ newrelic_agent.log
packages/files/uploads/*
!packages/files/uploads/.gitkeep
data/*
!data/.gitkeep

361
.pnp.cjs generated
View File

@@ -63,11 +63,14 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@lerna-lite/cli", "npm:1.5.1"],\
["@lerna-lite/list", "npm:1.5.1"],\
["@lerna-lite/run", "npm:1.5.1"],\
["@sentry/node", "npm:7.3.0"],\
["@types/jest", "npm:28.1.3"],\
["@types/newrelic", "npm:7.0.3"],\
["@types/node", "npm:18.0.0"],\
["@typescript-eslint/parser", "virtual:8859b278716fedf3e7458b5628625f7e35678c418626878559a0b816445001b7e24c55546f4677ba4c20b521aa0cf52cc33ac07deff171e383ada6eeab69933f#npm:5.29.0"],\
["eslint", "npm:8.18.0"],\
["eslint-config-prettier", "virtual:8859b278716fedf3e7458b5628625f7e35678c418626878559a0b816445001b7e24c55546f4677ba4c20b521aa0cf52cc33ac07deff171e383ada6eeab69933f#npm:8.5.0"],\
["newrelic", "npm:8.14.1"],\
["prettier", "npm:2.7.1"],\
["ts-node", "virtual:9e9d2b94dac68914cfc6173c41e92914f6d1fe30b9ab6e163c2043744960a73d771c78f37827a8773b7adeb75f4b67f907cd8c18197a7807ce979a4aea3b2602#npm:10.8.1"],\
["typescript", "patch:typescript@npm%3A4.7.4#~builtin<compat/typescript>::version=4.7.4&hash=7ad353"]\
@@ -1100,15 +1103,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
}]\
]],\
["@grpc/proto-loader", [\
["npm:0.5.6", {\
"packageLocation": "./.yarn/cache/@grpc-proto-loader-npm-0.5.6-ef97ffeb0b-13fe76d84a.zip/node_modules/@grpc/proto-loader/",\
"packageDependencies": [\
["@grpc/proto-loader", "npm:0.5.6"],\
["lodash.camelcase", "npm:4.3.0"],\
["protobufjs", "npm:6.11.3"]\
],\
"linkType": "HARD"\
}],\
["npm:0.6.13", {\
"packageLocation": "./.yarn/cache/@grpc-proto-loader-npm-0.6.13-658ac26dfb-863417e961.zip/node_modules/@grpc/proto-loader/",\
"packageDependencies": [\
@@ -1730,13 +1724,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
}]\
]],\
["@newrelic/aws-sdk", [\
["npm:3.1.0", {\
"packageLocation": "./.yarn/cache/@newrelic-aws-sdk-npm-3.1.0-7c3485a153-5601d90c78.zip/node_modules/@newrelic/aws-sdk/",\
"packageDependencies": [\
["@newrelic/aws-sdk", "npm:3.1.0"]\
],\
"linkType": "SOFT"\
}],\
["npm:4.1.2", {\
"packageLocation": "./.yarn/cache/@newrelic-aws-sdk-npm-4.1.2-9930120a02-610f6353a7.zip/node_modules/@newrelic/aws-sdk/",\
"packageDependencies": [\
@@ -1744,20 +1731,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
],\
"linkType": "SOFT"\
}],\
["virtual:521e0694077d46afa356663446ae27922a1476b4970c485c08b9223a4c4e82461e801eb01fbc080776dde404fd3a47fe4eac363a37bc89948edf65c92015e615#npm:4.1.2", {\
"packageLocation": "./.yarn/__virtual__/@newrelic-aws-sdk-virtual-b2151ed930/0/cache/@newrelic-aws-sdk-npm-4.1.2-9930120a02-610f6353a7.zip/node_modules/@newrelic/aws-sdk/",\
"packageDependencies": [\
["@newrelic/aws-sdk", "virtual:521e0694077d46afa356663446ae27922a1476b4970c485c08b9223a4c4e82461e801eb01fbc080776dde404fd3a47fe4eac363a37bc89948edf65c92015e615#npm:4.1.2"],\
["@types/newrelic", null],\
["newrelic", "npm:8.6.0"],\
["semver", "npm:7.3.7"]\
],\
"packagePeers": [\
"@types/newrelic",\
"newrelic"\
],\
"linkType": "HARD"\
}],\
["virtual:b659d4d19ce37732618223b586685dc7b27d11c52dca80d8411fdda38a4e6a7967776a5d7bdcce0be779cd6a41e2d84f8bbd3d3b5c06ce5ae40ad814517dfcfb#npm:4.1.2", {\
"packageLocation": "./.yarn/__virtual__/@newrelic-aws-sdk-virtual-a259cc13ec/0/cache/@newrelic-aws-sdk-npm-4.1.2-9930120a02-610f6353a7.zip/node_modules/@newrelic/aws-sdk/",\
"packageDependencies": [\
@@ -1771,29 +1744,9 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"newrelic"\
],\
"linkType": "HARD"\
}],\
["virtual:b949bcba7c7d71e38bb586c0239fa765beb131ea5f64fec66d133f6e38e6e87926b1ba9f91c8df6bcbc8243f33e33f909381ca14cfb301b09e6526205ac71883#npm:3.1.0", {\
"packageLocation": "./.yarn/__virtual__/@newrelic-aws-sdk-virtual-9720173dde/0/cache/@newrelic-aws-sdk-npm-3.1.0-7c3485a153-5601d90c78.zip/node_modules/@newrelic/aws-sdk/",\
"packageDependencies": [\
["@newrelic/aws-sdk", "virtual:b949bcba7c7d71e38bb586c0239fa765beb131ea5f64fec66d133f6e38e6e87926b1ba9f91c8df6bcbc8243f33e33f909381ca14cfb301b09e6526205ac71883#npm:3.1.0"],\
["@types/newrelic", null],\
["newrelic", "npm:7.5.2"]\
],\
"packagePeers": [\
"@types/newrelic",\
"newrelic"\
],\
"linkType": "HARD"\
}]\
]],\
["@newrelic/koa", [\
["npm:5.0.0", {\
"packageLocation": "./.yarn/cache/@newrelic-koa-npm-5.0.0-c9c6a0e1dc-e98d921b96.zip/node_modules/@newrelic/koa/",\
"packageDependencies": [\
["@newrelic/koa", "npm:5.0.0"]\
],\
"linkType": "SOFT"\
}],\
["npm:6.1.2", {\
"packageLocation": "./.yarn/cache/@newrelic-koa-npm-6.1.2-df0f7c71b5-e269d37b13.zip/node_modules/@newrelic/koa/",\
"packageDependencies": [\
@@ -1801,19 +1754,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
],\
"linkType": "SOFT"\
}],\
["virtual:521e0694077d46afa356663446ae27922a1476b4970c485c08b9223a4c4e82461e801eb01fbc080776dde404fd3a47fe4eac363a37bc89948edf65c92015e615#npm:6.1.2", {\
"packageLocation": "./.yarn/__virtual__/@newrelic-koa-virtual-94b8735dec/0/cache/@newrelic-koa-npm-6.1.2-df0f7c71b5-e269d37b13.zip/node_modules/@newrelic/koa/",\
"packageDependencies": [\
["@newrelic/koa", "virtual:521e0694077d46afa356663446ae27922a1476b4970c485c08b9223a4c4e82461e801eb01fbc080776dde404fd3a47fe4eac363a37bc89948edf65c92015e615#npm:6.1.2"],\
["@types/newrelic", null],\
["newrelic", "npm:8.6.0"]\
],\
"packagePeers": [\
"@types/newrelic",\
"newrelic"\
],\
"linkType": "HARD"\
}],\
["virtual:b659d4d19ce37732618223b586685dc7b27d11c52dca80d8411fdda38a4e6a7967776a5d7bdcce0be779cd6a41e2d84f8bbd3d3b5c06ce5ae40ad814517dfcfb#npm:6.1.2", {\
"packageLocation": "./.yarn/__virtual__/@newrelic-koa-virtual-2df93240b5/0/cache/@newrelic-koa-npm-6.1.2-df0f7c71b5-e269d37b13.zip/node_modules/@newrelic/koa/",\
"packageDependencies": [\
@@ -1826,54 +1766,9 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"newrelic"\
],\
"linkType": "HARD"\
}],\
["virtual:b949bcba7c7d71e38bb586c0239fa765beb131ea5f64fec66d133f6e38e6e87926b1ba9f91c8df6bcbc8243f33e33f909381ca14cfb301b09e6526205ac71883#npm:5.0.0", {\
"packageLocation": "./.yarn/__virtual__/@newrelic-koa-virtual-2873d18af2/0/cache/@newrelic-koa-npm-5.0.0-c9c6a0e1dc-e98d921b96.zip/node_modules/@newrelic/koa/",\
"packageDependencies": [\
["@newrelic/koa", "virtual:b949bcba7c7d71e38bb586c0239fa765beb131ea5f64fec66d133f6e38e6e87926b1ba9f91c8df6bcbc8243f33e33f909381ca14cfb301b09e6526205ac71883#npm:5.0.0"],\
["@types/newrelic", null],\
["methods", "npm:1.1.2"],\
["newrelic", "npm:7.5.2"]\
],\
"packagePeers": [\
"@types/newrelic",\
"newrelic"\
],\
"linkType": "HARD"\
}]\
]],\
["@newrelic/native-metrics", [\
["npm:6.0.2", {\
"packageLocation": "./.yarn/unplugged/@newrelic-native-metrics-npm-6.0.2-805c5534f5/node_modules/@newrelic/native-metrics/",\
"packageDependencies": [\
["@newrelic/native-metrics", "npm:6.0.2"],\
["nan", "npm:2.16.0"],\
["node-gyp", "npm:9.0.0"],\
["semver", "npm:5.7.1"]\
],\
"linkType": "HARD"\
}],\
["npm:7.0.2", {\
"packageLocation": "./.yarn/unplugged/@newrelic-native-metrics-npm-7.0.2-b4dcec08eb/node_modules/@newrelic/native-metrics/",\
"packageDependencies": [\
["@newrelic/native-metrics", "npm:7.0.2"],\
["nan", "npm:2.16.0"],\
["node-gyp", "npm:9.0.0"],\
["semver", "npm:5.7.1"]\
],\
"linkType": "HARD"\
}],\
["npm:7.1.2", {\
"packageLocation": "./.yarn/unplugged/@newrelic-native-metrics-npm-7.1.2-0e5392c2f6/node_modules/@newrelic/native-metrics/",\
"packageDependencies": [\
["@newrelic/native-metrics", "npm:7.1.2"],\
["https-proxy-agent", "npm:5.0.1"],\
["nan", "npm:2.16.0"],\
["node-gyp", "npm:9.0.0"],\
["semver", "npm:5.7.1"]\
],\
"linkType": "HARD"\
}],\
["npm:8.0.0", {\
"packageLocation": "./.yarn/unplugged/@newrelic-native-metrics-npm-8.0.0-c254393d6e/node_modules/@newrelic/native-metrics/",\
"packageDependencies": [\
@@ -1887,13 +1782,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
}]\
]],\
["@newrelic/superagent", [\
["npm:4.0.0", {\
"packageLocation": "./.yarn/cache/@newrelic-superagent-npm-4.0.0-6cc7e8ec57-5fb257ac05.zip/node_modules/@newrelic/superagent/",\
"packageDependencies": [\
["@newrelic/superagent", "npm:4.0.0"]\
],\
"linkType": "SOFT"\
}],\
["npm:5.1.1", {\
"packageLocation": "./.yarn/cache/@newrelic-superagent-npm-5.1.1-0d3c1fccf8-b43f7b9bb6.zip/node_modules/@newrelic/superagent/",\
"packageDependencies": [\
@@ -1901,19 +1789,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
],\
"linkType": "SOFT"\
}],\
["virtual:521e0694077d46afa356663446ae27922a1476b4970c485c08b9223a4c4e82461e801eb01fbc080776dde404fd3a47fe4eac363a37bc89948edf65c92015e615#npm:5.1.1", {\
"packageLocation": "./.yarn/__virtual__/@newrelic-superagent-virtual-82e2d8818c/0/cache/@newrelic-superagent-npm-5.1.1-0d3c1fccf8-b43f7b9bb6.zip/node_modules/@newrelic/superagent/",\
"packageDependencies": [\
["@newrelic/superagent", "virtual:521e0694077d46afa356663446ae27922a1476b4970c485c08b9223a4c4e82461e801eb01fbc080776dde404fd3a47fe4eac363a37bc89948edf65c92015e615#npm:5.1.1"],\
["@types/newrelic", null],\
["newrelic", "npm:8.6.0"]\
],\
"packagePeers": [\
"@types/newrelic",\
"newrelic"\
],\
"linkType": "HARD"\
}],\
["virtual:b659d4d19ce37732618223b586685dc7b27d11c52dca80d8411fdda38a4e6a7967776a5d7bdcce0be779cd6a41e2d84f8bbd3d3b5c06ce5ae40ad814517dfcfb#npm:5.1.1", {\
"packageLocation": "./.yarn/__virtual__/@newrelic-superagent-virtual-d7de4099d8/0/cache/@newrelic-superagent-npm-5.1.1-0d3c1fccf8-b43f7b9bb6.zip/node_modules/@newrelic/superagent/",\
"packageDependencies": [\
@@ -1926,20 +1801,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"newrelic"\
],\
"linkType": "HARD"\
}],\
["virtual:b949bcba7c7d71e38bb586c0239fa765beb131ea5f64fec66d133f6e38e6e87926b1ba9f91c8df6bcbc8243f33e33f909381ca14cfb301b09e6526205ac71883#npm:4.0.0", {\
"packageLocation": "./.yarn/__virtual__/@newrelic-superagent-virtual-05297db2ec/0/cache/@newrelic-superagent-npm-4.0.0-6cc7e8ec57-5fb257ac05.zip/node_modules/@newrelic/superagent/",\
"packageDependencies": [\
["@newrelic/superagent", "virtual:b949bcba7c7d71e38bb586c0239fa765beb131ea5f64fec66d133f6e38e6e87926b1ba9f91c8df6bcbc8243f33e33f909381ca14cfb301b09e6526205ac71883#npm:4.0.0"],\
["@types/newrelic", null],\
["methods", "npm:1.1.2"],\
["newrelic", "npm:7.5.2"]\
],\
"packagePeers": [\
"@types/newrelic",\
"newrelic"\
],\
"linkType": "HARD"\
}]\
]],\
["@newrelic/winston-enricher", [\
@@ -1956,7 +1817,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@newrelic/winston-enricher", "virtual:04783e12400851b8a3d76e71495851cc94959db6e62f04cb0a31190080629440b182d8c8eb4d7f2b04e281912f2783a5fd4d2c3c6ab68d38b7097246c93f4c19#npm:2.1.2"],\
["@types/newrelic", "npm:7.0.3"],\
["@types/winston", null],\
["newrelic", "npm:8.6.0"],\
["newrelic", "npm:8.14.1"],\
["winston", "npm:3.3.3"]\
],\
"packagePeers": [\
@@ -2445,52 +2306,39 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
}]\
]],\
["@sentry/core", [\
["npm:6.19.7", {\
"packageLocation": "./.yarn/cache/@sentry-core-npm-6.19.7-4cbb62d040-d212e8ef07.zip/node_modules/@sentry/core/",\
["npm:7.3.0", {\
"packageLocation": "./.yarn/cache/@sentry-core-npm-7.3.0-8e7d2a21e6-1768568404.zip/node_modules/@sentry/core/",\
"packageDependencies": [\
["@sentry/core", "npm:6.19.7"],\
["@sentry/hub", "npm:6.19.7"],\
["@sentry/minimal", "npm:6.19.7"],\
["@sentry/types", "npm:6.19.7"],\
["@sentry/utils", "npm:6.19.7"],\
["@sentry/core", "npm:7.3.0"],\
["@sentry/hub", "npm:7.3.0"],\
["@sentry/types", "npm:7.3.0"],\
["@sentry/utils", "npm:7.3.0"],\
["tslib", "npm:1.14.1"]\
],\
"linkType": "HARD"\
}]\
]],\
["@sentry/hub", [\
["npm:6.19.7", {\
"packageLocation": "./.yarn/cache/@sentry-hub-npm-6.19.7-6469362c23-10bb1c5cba.zip/node_modules/@sentry/hub/",\
["npm:7.3.0", {\
"packageLocation": "./.yarn/cache/@sentry-hub-npm-7.3.0-b5d4219eb3-a052a7c940.zip/node_modules/@sentry/hub/",\
"packageDependencies": [\
["@sentry/hub", "npm:6.19.7"],\
["@sentry/types", "npm:6.19.7"],\
["@sentry/utils", "npm:6.19.7"],\
["tslib", "npm:1.14.1"]\
],\
"linkType": "HARD"\
}]\
]],\
["@sentry/minimal", [\
["npm:6.19.7", {\
"packageLocation": "./.yarn/cache/@sentry-minimal-npm-6.19.7-7527a9814c-9153ac426e.zip/node_modules/@sentry/minimal/",\
"packageDependencies": [\
["@sentry/minimal", "npm:6.19.7"],\
["@sentry/hub", "npm:6.19.7"],\
["@sentry/types", "npm:6.19.7"],\
["@sentry/hub", "npm:7.3.0"],\
["@sentry/types", "npm:7.3.0"],\
["@sentry/utils", "npm:7.3.0"],\
["tslib", "npm:1.14.1"]\
],\
"linkType": "HARD"\
}]\
]],\
["@sentry/node", [\
["npm:6.19.7", {\
"packageLocation": "./.yarn/cache/@sentry-node-npm-6.19.7-edcd5da482-2293b0d1d1.zip/node_modules/@sentry/node/",\
["npm:7.3.0", {\
"packageLocation": "./.yarn/cache/@sentry-node-npm-7.3.0-ae73eb5bb5-a92c2d2d1b.zip/node_modules/@sentry/node/",\
"packageDependencies": [\
["@sentry/node", "npm:6.19.7"],\
["@sentry/core", "npm:6.19.7"],\
["@sentry/hub", "npm:6.19.7"],\
["@sentry/types", "npm:6.19.7"],\
["@sentry/utils", "npm:6.19.7"],\
["@sentry/node", "npm:7.3.0"],\
["@sentry/core", "npm:7.3.0"],\
["@sentry/hub", "npm:7.3.0"],\
["@sentry/types", "npm:7.3.0"],\
["@sentry/utils", "npm:7.3.0"],\
["cookie", "npm:0.4.2"],\
["https-proxy-agent", "npm:5.0.1"],\
["lru_map", "npm:0.3.3"],\
@@ -2500,20 +2348,20 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
}]\
]],\
["@sentry/types", [\
["npm:6.19.7", {\
"packageLocation": "./.yarn/cache/@sentry-types-npm-6.19.7-f75535a9f4-f46ef74a33.zip/node_modules/@sentry/types/",\
["npm:7.3.0", {\
"packageLocation": "./.yarn/cache/@sentry-types-npm-7.3.0-4a455bc29c-3ddbc3c7eb.zip/node_modules/@sentry/types/",\
"packageDependencies": [\
["@sentry/types", "npm:6.19.7"]\
["@sentry/types", "npm:7.3.0"]\
],\
"linkType": "HARD"\
}]\
]],\
["@sentry/utils", [\
["npm:6.19.7", {\
"packageLocation": "./.yarn/cache/@sentry-utils-npm-6.19.7-d61c6c8632-a000223b9c.zip/node_modules/@sentry/utils/",\
["npm:7.3.0", {\
"packageLocation": "./.yarn/cache/@sentry-utils-npm-7.3.0-a4b6fc94f0-2696b1bfad.zip/node_modules/@sentry/utils/",\
"packageDependencies": [\
["@sentry/utils", "npm:6.19.7"],\
["@sentry/types", "npm:6.19.7"],\
["@sentry/utils", "npm:7.3.0"],\
["@sentry/types", "npm:7.3.0"],\
["tslib", "npm:1.14.1"]\
],\
"linkType": "HARD"\
@@ -2595,9 +2443,8 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"packageLocation": "./packages/api-gateway/",\
"packageDependencies": [\
["@standardnotes/api-gateway", "workspace:packages/api-gateway"],\
["@newrelic/native-metrics", "npm:7.0.2"],\
["@newrelic/winston-enricher", "virtual:04783e12400851b8a3d76e71495851cc94959db6e62f04cb0a31190080629440b182d8c8eb4d7f2b04e281912f2783a5fd4d2c3c6ab68d38b7097246c93f4c19#npm:2.1.2"],\
["@sentry/node", "npm:6.19.7"],\
["@sentry/node", "npm:7.3.0"],\
["@standardnotes/analytics", "npm:1.6.0"],\
["@standardnotes/auth", "npm:3.19.2"],\
["@standardnotes/domain-events", "npm:2.29.0"],\
@@ -2624,7 +2471,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["ioredis", "npm:5.0.6"],\
["jest", "virtual:04783e12400851b8a3d76e71495851cc94959db6e62f04cb0a31190080629440b182d8c8eb4d7f2b04e281912f2783a5fd4d2c3c6ab68d38b7097246c93f4c19#npm:28.1.1"],\
["jsonwebtoken", "npm:8.5.1"],\
["newrelic", "npm:8.6.0"],\
["newrelic", "npm:8.14.1"],\
["nodemon", "npm:2.0.16"],\
["prettyjson", "npm:1.2.1"],\
["reflect-metadata", "npm:0.1.13"],\
@@ -2652,6 +2499,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["jsonwebtoken", "npm:8.5.1"]\
],\
"linkType": "HARD"\
}],\
["npm:3.19.4", {\
"packageLocation": "./.yarn/cache/@standardnotes-auth-npm-3.19.4-29b35c1352-84ac9e669e.zip/node_modules/@standardnotes/auth/",\
"packageDependencies": [\
["@standardnotes/auth", "npm:3.19.4"],\
["@standardnotes/common", "npm:1.23.1"],\
["jsonwebtoken", "npm:8.5.1"]\
],\
"linkType": "HARD"\
}]\
]],\
["@standardnotes/auth-server", [\
@@ -2659,19 +2515,18 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"packageLocation": "./packages/auth/",\
"packageDependencies": [\
["@standardnotes/auth-server", "workspace:packages/auth"],\
["@newrelic/native-metrics", "npm:7.0.2"],\
["@newrelic/winston-enricher", "virtual:04783e12400851b8a3d76e71495851cc94959db6e62f04cb0a31190080629440b182d8c8eb4d7f2b04e281912f2783a5fd4d2c3c6ab68d38b7097246c93f4c19#npm:2.1.2"],\
["@sentry/node", "npm:6.19.7"],\
["@sentry/node", "npm:7.3.0"],\
["@standardnotes/analytics", "npm:1.6.0"],\
["@standardnotes/api", "npm:1.1.13"],\
["@standardnotes/auth", "npm:3.19.3"],\
["@standardnotes/common", "npm:1.23.0"],\
["@standardnotes/domain-events", "npm:2.32.2"],\
["@standardnotes/common", "npm:1.23.1"],\
["@standardnotes/domain-events", "npm:2.32.4"],\
["@standardnotes/domain-events-infra", "npm:1.5.2"],\
["@standardnotes/features", "npm:1.45.5"],\
["@standardnotes/responses", "npm:1.6.36"],\
["@standardnotes/scheduler", "npm:1.1.1"],\
["@standardnotes/settings", "npm:1.14.3"],\
["@standardnotes/settings", "npm:1.15.0"],\
["@standardnotes/sncrypto-common", "npm:1.9.0"],\
["@standardnotes/sncrypto-node", "npm:1.8.3"],\
["@standardnotes/time", "npm:1.7.0"],\
@@ -2701,7 +2556,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["ioredis", "npm:5.0.6"],\
["jest", "virtual:04783e12400851b8a3d76e71495851cc94959db6e62f04cb0a31190080629440b182d8c8eb4d7f2b04e281912f2783a5fd4d2c3c6ab68d38b7097246c93f4c19#npm:28.1.1"],\
["mysql2", "npm:2.3.3"],\
["newrelic", "npm:8.6.0"],\
["newrelic", "npm:8.14.1"],\
["nodemon", "npm:2.0.16"],\
["otplib", "npm:12.0.1"],\
["prettyjson", "npm:1.2.1"],\
@@ -2722,6 +2577,13 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@standardnotes/common", "npm:1.23.0"]\
],\
"linkType": "HARD"\
}],\
["npm:1.23.1", {\
"packageLocation": "./.yarn/cache/@standardnotes-common-npm-1.23.1-ed73dbb679-f498f4c469.zip/node_modules/@standardnotes/common/",\
"packageDependencies": [\
["@standardnotes/common", "npm:1.23.1"]\
],\
"linkType": "HARD"\
}]\
]],\
["@standardnotes/config", [\
@@ -2754,6 +2616,26 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@standardnotes/scheduler", "npm:1.1.1"]\
],\
"linkType": "HARD"\
}],\
["npm:2.32.3", {\
"packageLocation": "./.yarn/cache/@standardnotes-domain-events-npm-2.32.3-d2cd9a7c7f-ea6151d137.zip/node_modules/@standardnotes/domain-events/",\
"packageDependencies": [\
["@standardnotes/domain-events", "npm:2.32.3"],\
["@standardnotes/auth", "npm:3.19.3"],\
["@standardnotes/features", "npm:1.45.5"],\
["@standardnotes/scheduler", "npm:1.1.1"]\
],\
"linkType": "HARD"\
}],\
["npm:2.32.4", {\
"packageLocation": "./.yarn/cache/@standardnotes-domain-events-npm-2.32.4-0b0cc85196-9f8a1637aa.zip/node_modules/@standardnotes/domain-events/",\
"packageDependencies": [\
["@standardnotes/domain-events", "npm:2.32.4"],\
["@standardnotes/auth", "npm:3.19.4"],\
["@standardnotes/features", "npm:1.45.6"],\
["@standardnotes/scheduler", "npm:1.1.2"]\
],\
"linkType": "HARD"\
}]\
]],\
["@standardnotes/domain-events-infra", [\
@@ -2807,6 +2689,15 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@standardnotes/common", "npm:1.23.0"]\
],\
"linkType": "HARD"\
}],\
["npm:1.45.6", {\
"packageLocation": "./.yarn/cache/@standardnotes-features-npm-1.45.6-6f88b4fd2a-572780d6e2.zip/node_modules/@standardnotes/features/",\
"packageDependencies": [\
["@standardnotes/features", "npm:1.45.6"],\
["@standardnotes/auth", "npm:3.19.4"],\
["@standardnotes/common", "npm:1.23.1"]\
],\
"linkType": "HARD"\
}]\
]],\
["@standardnotes/files-server", [\
@@ -2814,8 +2705,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"packageLocation": "./packages/files/",\
"packageDependencies": [\
["@standardnotes/files-server", "workspace:packages/files"],\
["@newrelic/native-metrics", "npm:7.0.2"],\
["@sentry/node", "npm:6.19.7"],\
["@sentry/node", "npm:7.3.0"],\
["@standardnotes/auth", "npm:3.19.3"],\
["@standardnotes/common", "npm:1.23.0"],\
["@standardnotes/config", "npm:2.0.1"],\
@@ -2849,7 +2739,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["ioredis", "npm:5.0.6"],\
["jest", "virtual:04783e12400851b8a3d76e71495851cc94959db6e62f04cb0a31190080629440b182d8c8eb4d7f2b04e281912f2783a5fd4d2c3c6ab68d38b7097246c93f4c19#npm:28.1.1"],\
["jsonwebtoken", "npm:8.5.1"],\
["newrelic", "npm:7.5.2"],\
["newrelic", "npm:8.14.1"],\
["nodemon", "npm:2.0.16"],\
["prettyjson", "npm:1.2.5"],\
["reflect-metadata", "npm:0.1.13"],\
@@ -2905,6 +2795,14 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@standardnotes/common", "npm:1.23.0"]\
],\
"linkType": "HARD"\
}],\
["npm:1.1.2", {\
"packageLocation": "./.yarn/cache/@standardnotes-scheduler-npm-1.1.2-78f89314fb-68642a0874.zip/node_modules/@standardnotes/scheduler/",\
"packageDependencies": [\
["@standardnotes/scheduler", "npm:1.1.2"],\
["@standardnotes/common", "npm:1.23.1"]\
],\
"linkType": "HARD"\
}]\
]],\
["@standardnotes/scheduler-server", [\
@@ -2912,10 +2810,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"packageLocation": "./packages/scheduler/",\
"packageDependencies": [\
["@standardnotes/scheduler-server", "workspace:packages/scheduler"],\
["@newrelic/native-metrics", "npm:7.0.2"],\
["@newrelic/winston-enricher", "virtual:04783e12400851b8a3d76e71495851cc94959db6e62f04cb0a31190080629440b182d8c8eb4d7f2b04e281912f2783a5fd4d2c3c6ab68d38b7097246c93f4c19#npm:2.1.2"],\
["@sentry/node", "npm:7.3.0"],\
["@standardnotes/common", "npm:1.23.0"],\
["@standardnotes/domain-events", "npm:2.32.2"],\
["@standardnotes/domain-events", "npm:2.32.3"],\
["@standardnotes/domain-events-infra", "npm:1.5.2"],\
["@standardnotes/scheduler", "npm:1.1.1"],\
["@standardnotes/time", "npm:1.7.0"],\
@@ -2932,7 +2830,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["ioredis", "npm:5.0.6"],\
["jest", "virtual:04783e12400851b8a3d76e71495851cc94959db6e62f04cb0a31190080629440b182d8c8eb4d7f2b04e281912f2783a5fd4d2c3c6ab68d38b7097246c93f4c19#npm:28.1.1"],\
["mysql2", "npm:2.3.3"],\
["newrelic", "npm:8.6.0"],\
["newrelic", "npm:8.14.1"],\
["reflect-metadata", "npm:0.1.13"],\
["ts-jest", "virtual:16bfd8597041deb71e4581ea0755edd4dcd1b09b8ab14bfbbf5e4d5ca6b5d47ed7fbe2a25cdf57fcbb8e092c30b6beb93d2e7533f9e31c5dc62f7f0e487d1e4b#npm:28.0.5"],\
["typeorm", "virtual:31b5a94a105c89c9294c3d524a7f8929fe63ee5a2efadf21951ca4c0cfd2ecf02e8f4ef5a066bbda091f1e3a56e57c6749069a080618c96b22e51131a330fc4a#npm:0.3.6"],\
@@ -2951,11 +2849,14 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@lerna-lite/cli", "npm:1.5.1"],\
["@lerna-lite/list", "npm:1.5.1"],\
["@lerna-lite/run", "npm:1.5.1"],\
["@sentry/node", "npm:7.3.0"],\
["@types/jest", "npm:28.1.3"],\
["@types/newrelic", "npm:7.0.3"],\
["@types/node", "npm:18.0.0"],\
["@typescript-eslint/parser", "virtual:8859b278716fedf3e7458b5628625f7e35678c418626878559a0b816445001b7e24c55546f4677ba4c20b521aa0cf52cc33ac07deff171e383ada6eeab69933f#npm:5.29.0"],\
["eslint", "npm:8.18.0"],\
["eslint-config-prettier", "virtual:8859b278716fedf3e7458b5628625f7e35678c418626878559a0b816445001b7e24c55546f4677ba4c20b521aa0cf52cc33ac07deff171e383ada6eeab69933f#npm:8.5.0"],\
["newrelic", "npm:8.14.1"],\
["prettier", "npm:2.7.1"],\
["ts-node", "virtual:9e9d2b94dac68914cfc6173c41e92914f6d1fe30b9ab6e163c2043744960a73d771c78f37827a8773b7adeb75f4b67f907cd8c18197a7807ce979a4aea3b2602#npm:10.8.1"],\
["typescript", "patch:typescript@npm%3A4.7.4#~builtin<compat/typescript>::version=4.7.4&hash=7ad353"]\
@@ -2984,6 +2885,13 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["@standardnotes/settings", "npm:1.14.3"]\
],\
"linkType": "HARD"\
}],\
["npm:1.15.0", {\
"packageLocation": "./.yarn/cache/@standardnotes-settings-npm-1.15.0-bfec86ee49-4397d453a1.zip/node_modules/@standardnotes/settings/",\
"packageDependencies": [\
["@standardnotes/settings", "npm:1.15.0"]\
],\
"linkType": "HARD"\
}]\
]],\
["@standardnotes/sncrypto-common", [\
@@ -3010,9 +2918,8 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
"packageLocation": "./packages/syncing-server/",\
"packageDependencies": [\
["@standardnotes/syncing-server", "workspace:packages/syncing-server"],\
["@newrelic/native-metrics", "npm:7.0.2"],\
["@newrelic/winston-enricher", "virtual:04783e12400851b8a3d76e71495851cc94959db6e62f04cb0a31190080629440b182d8c8eb4d7f2b04e281912f2783a5fd4d2c3c6ab68d38b7097246c93f4c19#npm:2.1.2"],\
["@sentry/node", "npm:6.19.7"],\
["@sentry/node", "npm:7.3.0"],\
["@standardnotes/analytics", "npm:1.6.0"],\
["@standardnotes/auth", "npm:3.19.3"],\
["@standardnotes/common", "npm:1.23.0"],\
@@ -3048,7 +2955,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["jest", "virtual:04783e12400851b8a3d76e71495851cc94959db6e62f04cb0a31190080629440b182d8c8eb4d7f2b04e281912f2783a5fd4d2c3c6ab68d38b7097246c93f4c19#npm:28.1.1"],\
["jsonwebtoken", "npm:8.5.1"],\
["mysql2", "npm:2.3.3"],\
["newrelic", "npm:8.6.0"],\
["newrelic", "npm:8.14.1"],\
["nodemon", "npm:2.0.7"],\
["prettyjson", "npm:1.2.1"],\
["reflect-metadata", "npm:0.1.13"],\
@@ -4100,13 +4007,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
}]\
]],\
["agent-base", [\
["npm:5.1.1", {\
"packageLocation": "./.yarn/cache/agent-base-npm-5.1.1-d451a4ad62-61ae789f30.zip/node_modules/agent-base/",\
"packageDependencies": [\
["agent-base", "npm:5.1.1"]\
],\
"linkType": "HARD"\
}],\
["npm:6.0.2", {\
"packageLocation": "./.yarn/cache/agent-base-npm-6.0.2-428f325a93-f52b6872cc.zip/node_modules/agent-base/",\
"packageDependencies": [\
@@ -7477,15 +7377,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
}]\
]],\
["https-proxy-agent", [\
["npm:4.0.0", {\
"packageLocation": "./.yarn/cache/https-proxy-agent-npm-4.0.0-9021ec873f-19471d5aae.zip/node_modules/https-proxy-agent/",\
"packageDependencies": [\
["https-proxy-agent", "npm:4.0.0"],\
["agent-base", "npm:5.1.1"],\
["debug", "virtual:b86a9fb34323a98c6519528ed55faa0d9b44ca8879307c0b29aa384bde47ff59a7d0c9051b31246f14521dfb71ba3c5d6d0b35c29fffc17bf875aa6ad977d9e8#npm:4.3.4"]\
],\
"linkType": "HARD"\
}],\
["npm:5.0.1", {\
"packageLocation": "./.yarn/cache/https-proxy-agent-npm-5.0.1-42d65f358e-571fccdf38.zip/node_modules/https-proxy-agent/",\
"packageDependencies": [\
@@ -9748,26 +9639,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
}]\
]],\
["newrelic", [\
["npm:7.5.2", {\
"packageLocation": "./.yarn/cache/newrelic-npm-7.5.2-b949bcba7c-f6c67dbb7d.zip/node_modules/newrelic/",\
"packageDependencies": [\
["newrelic", "npm:7.5.2"],\
["@grpc/grpc-js", "npm:1.6.7"],\
["@grpc/proto-loader", "npm:0.5.6"],\
["@newrelic/aws-sdk", "virtual:b949bcba7c7d71e38bb586c0239fa765beb131ea5f64fec66d133f6e38e6e87926b1ba9f91c8df6bcbc8243f33e33f909381ca14cfb301b09e6526205ac71883#npm:3.1.0"],\
["@newrelic/koa", "virtual:b949bcba7c7d71e38bb586c0239fa765beb131ea5f64fec66d133f6e38e6e87926b1ba9f91c8df6bcbc8243f33e33f909381ca14cfb301b09e6526205ac71883#npm:5.0.0"],\
["@newrelic/native-metrics", "npm:6.0.2"],\
["@newrelic/superagent", "virtual:b949bcba7c7d71e38bb586c0239fa765beb131ea5f64fec66d133f6e38e6e87926b1ba9f91c8df6bcbc8243f33e33f909381ca14cfb301b09e6526205ac71883#npm:4.0.0"],\
["@tyriar/fibonacci-heap", "npm:2.0.9"],\
["async", "npm:3.2.4"],\
["concat-stream", "npm:2.0.0"],\
["https-proxy-agent", "npm:4.0.0"],\
["json-stringify-safe", "npm:5.0.1"],\
["readable-stream", "npm:3.6.0"],\
["semver", "npm:5.7.1"]\
],\
"linkType": "HARD"\
}],\
["npm:8.14.1", {\
"packageLocation": "./.yarn/cache/newrelic-npm-8.14.1-b659d4d19c-cd12bb2ac9.zip/node_modules/newrelic/",\
"packageDependencies": [\
@@ -9788,26 +9659,6 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) {
["winston-transport", "npm:4.5.0"]\
],\
"linkType": "HARD"\
}],\
["npm:8.6.0", {\
"packageLocation": "./.yarn/cache/newrelic-npm-8.6.0-521e069407-083b65ce8b.zip/node_modules/newrelic/",\
"packageDependencies": [\
["newrelic", "npm:8.6.0"],\
["@grpc/grpc-js", "npm:1.6.7"],\
["@grpc/proto-loader", "npm:0.5.6"],\
["@newrelic/aws-sdk", "virtual:521e0694077d46afa356663446ae27922a1476b4970c485c08b9223a4c4e82461e801eb01fbc080776dde404fd3a47fe4eac363a37bc89948edf65c92015e615#npm:4.1.2"],\
["@newrelic/koa", "virtual:521e0694077d46afa356663446ae27922a1476b4970c485c08b9223a4c4e82461e801eb01fbc080776dde404fd3a47fe4eac363a37bc89948edf65c92015e615#npm:6.1.2"],\
["@newrelic/native-metrics", "npm:7.1.2"],\
["@newrelic/superagent", "virtual:521e0694077d46afa356663446ae27922a1476b4970c485c08b9223a4c4e82461e801eb01fbc080776dde404fd3a47fe4eac363a37bc89948edf65c92015e615#npm:5.1.1"],\
["@tyriar/fibonacci-heap", "npm:2.0.9"],\
["async", "npm:3.2.4"],\
["concat-stream", "npm:2.0.0"],\
["https-proxy-agent", "npm:5.0.1"],\
["json-stringify-safe", "npm:5.0.1"],\
["readable-stream", "npm:3.6.0"],\
["semver", "npm:5.7.1"]\
],\
"linkType": "HARD"\
}]\
]],\
["node-addon-api", [\

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

0
data/.gitkeep Normal file
View File

24
docker-compose.yml Normal file
View File

@@ -0,0 +1,24 @@
version: '3.8'
services:
db:
image: mysql:5.6
environment:
MYSQL_DATABASE: '${DB_DATABASE}'
MYSQL_USER: '${DB_USERNAME}'
MYSQL_PASSWORD: '${DB_PASSWORD}'
MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
expose:
- ${DB_PORT}:3306
restart: unless-stopped
command: --default-authentication-plugin=mysql_native_password --character-set-server=utf8 --collation-server=utf8_general_ci
volumes:
- ./data/mysql:/var/lib/mysql
- ./data/import:/docker-entrypoint-initdb.d
cache:
image: redis:6.0-alpine
volumes:
- ./data/redis/:/data
expose:
- ${REDIS_PORT}:6379
restart: unless-stopped

View File

@@ -23,7 +23,7 @@
"test:syncing-server": "yarn workspace @standardnotes/syncing-server test",
"test:files": "yarn workspace @standardnotes/files-server test",
"clean": "yarn workspaces foreach -p --verbose run clean",
"setup:env": "yarn workspaces foreach -p --verbose run setup:env",
"setup:env": "cp .env.sample .env && yarn workspaces foreach -p --verbose run setup:env",
"build": "yarn workspaces foreach -pt -j 10 --verbose run build",
"build:auth": "yarn workspace @standardnotes/auth-server build",
"build:scheduler": "yarn workspace @standardnotes/scheduler-server build",
@@ -38,7 +38,8 @@
"start:files": "yarn workspace @standardnotes/files-server start",
"start:files-worker": "yarn workspace @standardnotes/files-server worker",
"start:api-gateway": "yarn workspace @standardnotes/api-gateway start",
"release:prod": "lerna version --conventional-graduate --conventional-commits --yes -m \"chore(release): publish new version\""
"release:prod": "lerna version --conventional-graduate --conventional-commits --yes -m \"chore(release): publish new version\"",
"postversion": "./scripts/push-tags-one-by-one.sh"
},
"devDependencies": {
"@commitlint/cli": "^17.0.2",
@@ -47,6 +48,7 @@
"@lerna-lite/list": "^1.5.1",
"@lerna-lite/run": "^1.5.1",
"@types/jest": "^28.1.3",
"@types/newrelic": "^7.0.3",
"@types/node": "^18.0.0",
"@typescript-eslint/parser": "^5.29.0",
"eslint": "^8.17.0",
@@ -55,5 +57,9 @@
"ts-node": "^10.8.1",
"typescript": "^4.7.4"
},
"packageManager": "yarn@3.2.1"
"packageManager": "yarn@3.2.1",
"dependencies": {
"@sentry/node": "^7.3.0",
"newrelic": "^8.14.1"
}
}

View File

@@ -3,6 +3,38 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
# [1.2.0](https://github.com/standardnotes/api-gateway/compare/@standardnotes/api-gateway@1.1.6...@standardnotes/api-gateway@1.2.0) (2022-06-27)
### Features
* add endpoint to mute marketing emails ([fa2a8da](https://github.com/standardnotes/api-gateway/commit/fa2a8da17bc6588021172adbbc4ecae5bd35f33a))
## [1.1.6](https://github.com/standardnotes/api-gateway/compare/@standardnotes/api-gateway@1.1.5...@standardnotes/api-gateway@1.1.6) (2022-06-27)
**Note:** Version bump only for package @standardnotes/api-gateway
## [1.1.5](https://github.com/standardnotes/api-gateway/compare/@standardnotes/api-gateway@1.1.4...@standardnotes/api-gateway@1.1.5) (2022-06-27)
### Bug Fixes
* upgrade sentry node sdk ([b6db194](https://github.com/standardnotes/api-gateway/commit/b6db194a22ff1d0afe96c291d545b408c0a5c373))
## [1.1.4](https://github.com/standardnotes/api-gateway/compare/@standardnotes/api-gateway@1.1.3...@standardnotes/api-gateway@1.1.4) (2022-06-24)
### Bug Fixes
* newrelic deps and setup db and cache for local development purposes ([ff09ae0](https://github.com/standardnotes/api-gateway/commit/ff09ae0a47747eaf7977ce5d3937ad385101eaeb))
## [1.1.3](https://github.com/standardnotes/api-gateway/compare/@standardnotes/api-gateway@1.1.2...@standardnotes/api-gateway@1.1.3) (2022-06-23)
### Bug Fixes
* curl in the final image ([0d67c55](https://github.com/standardnotes/api-gateway/commit/0d67c55e124eed08bca16824750152b895fceca7))
## [1.1.2](https://github.com/standardnotes/api-gateway/compare/@standardnotes/api-gateway@1.1.1...@standardnotes/api-gateway@1.1.2) (2022-06-23)
**Note:** Version bump only for package @standardnotes/api-gateway
## [1.1.1](https://github.com/standardnotes/api-gateway/compare/@standardnotes/api-gateway@1.1.0...@standardnotes/api-gateway@1.1.1) (2022-06-23)
**Note:** Version bump only for package @standardnotes/api-gateway

View File

@@ -1,7 +1,7 @@
FROM node:16.15.1-alpine AS builder
# Install dependencies for building native libraries
RUN apk add --update git openssh-client curl python3 alpine-sdk
RUN apk add --update git openssh-client python3 alpine-sdk
WORKDIR /workspace
@@ -12,6 +12,8 @@ RUN yarn install --immutable
FROM node:16.15.1-alpine
RUN apk add --update curl
WORKDIR /workspace
# Copy the installed dependencies from the previous stage.

View File

@@ -1,6 +1,6 @@
{
"name": "@standardnotes/api-gateway",
"version": "1.1.1",
"version": "1.2.0",
"engines": {
"node": ">=16.0.0 <17.0.0"
},
@@ -15,13 +15,13 @@
"prebuild": "yarn clean",
"build": "tsc --rootDir ./",
"lint": "eslint . --ext .ts",
"setup:env": "cp .env.sample .env",
"start": "yarn node dist/bin/server.js",
"report": "yarn node dist/bin/report.js"
},
"dependencies": {
"@newrelic/native-metrics": "7.0.2",
"@newrelic/winston-enricher": "^2.1.0",
"@sentry/node": "^6.16.1",
"@sentry/node": "^7.3.0",
"@standardnotes/analytics": "^1.4.0",
"@standardnotes/auth": "3.19.2",
"@standardnotes/domain-events": "2.29.0",
@@ -37,7 +37,7 @@
"inversify-express-utils": "^6.4.3",
"ioredis": "^5.0.6",
"jsonwebtoken": "8.5.1",
"newrelic": "8.6.0",
"newrelic": "^8.14.1",
"prettyjson": "1.2.1",
"reflect-metadata": "0.1.13",
"winston": "3.3.3"
@@ -48,7 +48,7 @@
"@types/ioredis": "^4.28.10",
"@types/jest": "^28.1.3",
"@types/jsonwebtoken": "^8.5.0",
"@types/newrelic": "^7.0.1",
"@types/newrelic": "^7.0.3",
"@types/prettyjson": "^0.0.29",
"@typescript-eslint/eslint-plugin": "^5.29.0",
"eslint": "^8.14.0",

View File

@@ -49,4 +49,14 @@ export class ActionsController extends BaseHttpController {
request.body,
)
}
@httpGet('/marketing-emails/mute/:settingUuid')
async muteMarketingEmails(request: Request, response: Response): Promise<void> {
await this.httpService.callAuthServer(
request,
response,
`internal/settings/marketing-emails/${request.params.settingUuid}/mute`,
request.body,
)
}
}

View File

@@ -3,6 +3,50 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.2.1](https://github.com/standardnotes/auth/compare/@standardnotes/auth-server@1.2.0...@standardnotes/auth-server@1.2.1) (2022-06-27)
### Bug Fixes
* add setting uuid to email requests ([214684e](https://github.com/standardnotes/auth/commit/214684eae733675b7cefa522202e53d9556e5279))
# [1.2.0](https://github.com/standardnotes/auth/compare/@standardnotes/auth-server@1.1.7...@standardnotes/auth-server@1.2.0) (2022-06-27)
### Features
* add docker commands to start sending emails ([210a314](https://github.com/standardnotes/auth/commit/210a314c8199e47e5b6a113bd60401c16bb95291))
## [1.1.7](https://github.com/standardnotes/auth/compare/@standardnotes/auth-server@1.1.6...@standardnotes/auth-server@1.1.7) (2022-06-27)
### Bug Fixes
* add sending out email campaigns ([bf14ec0](https://github.com/standardnotes/auth/commit/bf14ec05f92d893e7c74a4f29ef7e426bee9d768))
## [1.1.6](https://github.com/standardnotes/auth/compare/@standardnotes/auth-server@1.1.5...@standardnotes/auth-server@1.1.6) (2022-06-27)
**Note:** Version bump only for package @standardnotes/auth-server
## [1.1.5](https://github.com/standardnotes/auth/compare/@standardnotes/auth-server@1.1.4...@standardnotes/auth-server@1.1.5) (2022-06-27)
### Bug Fixes
* upgrade sentry node sdk ([b6db194](https://github.com/standardnotes/auth/commit/b6db194a22ff1d0afe96c291d545b408c0a5c373))
## [1.1.4](https://github.com/standardnotes/auth/compare/@standardnotes/auth-server@1.1.3...@standardnotes/auth-server@1.1.4) (2022-06-24)
### Bug Fixes
* newrelic deps and setup db and cache for local development purposes ([ff09ae0](https://github.com/standardnotes/auth/commit/ff09ae0a47747eaf7977ce5d3937ad385101eaeb))
## [1.1.3](https://github.com/standardnotes/auth/compare/@standardnotes/auth-server@1.1.2...@standardnotes/auth-server@1.1.3) (2022-06-23)
### Bug Fixes
* curl in the final image ([0d67c55](https://github.com/standardnotes/auth/commit/0d67c55e124eed08bca16824750152b895fceca7))
## [1.1.2](https://github.com/standardnotes/auth/compare/@standardnotes/auth-server@1.1.1...@standardnotes/auth-server@1.1.2) (2022-06-23)
**Note:** Version bump only for package @standardnotes/auth-server
## [1.1.1](https://github.com/standardnotes/auth/compare/@standardnotes/auth-server@1.1.0...@standardnotes/auth-server@1.1.1) (2022-06-23)
**Note:** Version bump only for package @standardnotes/auth-server

View File

@@ -1,7 +1,7 @@
FROM node:16.15.1-alpine AS builder
# Install dependencies for building native libraries
RUN apk add --update git openssh-client curl python3 alpine-sdk
RUN apk add --update git openssh-client python3 alpine-sdk
WORKDIR /workspace
@@ -12,6 +12,8 @@ RUN yarn install --immutable
FROM node:16.15.1-alpine
RUN apk add --update curl
WORKDIR /workspace
# Copy the installed dependencies from the previous stage.

147
packages/auth/bin/email.ts Normal file
View File

@@ -0,0 +1,147 @@
import 'reflect-metadata'
import 'newrelic'
import { Stream } from 'stream'
import { Logger } from 'winston'
import * as dayjs from 'dayjs'
import * as utc from 'dayjs/plugin/utc'
import { UserRepositoryInterface } from '../src/Domain/User/UserRepositoryInterface'
import { ContainerConfigLoader } from '../src/Bootstrap/Container'
import TYPES from '../src/Bootstrap/Types'
import { Env } from '../src/Bootstrap/Env'
import { SettingServiceInterface } from '../src/Domain/Setting/SettingServiceInterface'
import { DomainEventFactoryInterface } from '../src/Domain/Event/DomainEventFactoryInterface'
import { UserSubscriptionRepositoryInterface } from '../src/Domain/Subscription/UserSubscriptionRepositoryInterface'
import { DomainEventPublisherInterface } from '@standardnotes/domain-events'
import { MuteMarketingEmailsOption, SettingName } from '@standardnotes/settings'
import { EmailMessageIdentifier } from '@standardnotes/common'
import { User } from '../src/Domain/User/User'
import { EncryptionVersion } from '../src/Domain/Encryption/EncryptionVersion'
import { TimerInterface } from '@standardnotes/time'
const inputArgs = process.argv.slice(2)
const emailMessageIdentifier = inputArgs[0]
const sendEmailCampaign = async (
userRepository: UserRepositoryInterface,
settingService: SettingServiceInterface,
userSubscriptionRepository: UserSubscriptionRepositoryInterface,
timer: TimerInterface,
domainEventFactory: DomainEventFactoryInterface,
domainEventPublisher: DomainEventPublisherInterface,
): Promise<void> => {
const stream = await userRepository.streamAll()
return new Promise((resolve, reject) => {
stream
.pipe(
new Stream.Transform({
objectMode: true,
transform: async (rawUserData, _encoding, callback) => {
let emailsMutedSetting = await settingService.findSettingWithDecryptedValue({
userUuid: rawUserData.user_uuid,
settingName: SettingName.MuteMarketingEmails,
})
if (emailsMutedSetting === null) {
const user = (await userRepository.findOneByUuid(rawUserData.user_uuid)) as User
const { setting } = await settingService.createOrReplace({
user,
props: {
name: SettingName.MuteMarketingEmails,
unencryptedValue: MuteMarketingEmailsOption.NotMuted,
serverEncryptionVersion: EncryptionVersion.Default,
sensitive: false,
},
})
emailsMutedSetting = setting
}
if (emailsMutedSetting.value === MuteMarketingEmailsOption.Muted) {
callback()
return
}
let activeSubscription = false
let subscriptionPlanName = null
const userSubscription = await userSubscriptionRepository.findOneByUserUuid(rawUserData.user_uuid)
if (userSubscription !== null) {
activeSubscription =
!userSubscription.cancelled && userSubscription.endsAt > timer.getTimestampInMicroseconds()
subscriptionPlanName = userSubscription.planName
}
await domainEventPublisher.publish(
domainEventFactory.createEmailMessageRequestedEvent({
userEmail: rawUserData.user_email,
messageIdentifier: emailMessageIdentifier as EmailMessageIdentifier,
context: {
activeSubscription,
subscriptionPlanName,
muteEmailsSettingUuid: emailsMutedSetting.uuid,
},
}),
)
callback()
},
}),
)
.on('finish', resolve)
.on('error', reject)
})
}
const container = new ContainerConfigLoader()
void container.load().then((container) => {
dayjs.extend(utc)
const env: Env = new Env()
env.load()
const logger: Logger = container.get(TYPES.Logger)
logger.info(`Starting email campaign for email ${emailMessageIdentifier} ...`)
if (!emailMessageIdentifier) {
logger.error('No email message identifier passed as argument. Skipped sending.')
process.exit(1)
}
const userRepository: UserRepositoryInterface = container.get(TYPES.UserRepository)
const settingService: SettingServiceInterface = container.get(TYPES.SettingService)
const userSubscriptionRepository: UserSubscriptionRepositoryInterface = container.get(
TYPES.UserSubscriptionRepository,
)
const timer: TimerInterface = container.get(TYPES.Timer)
const domainEventFactory: DomainEventFactoryInterface = container.get(TYPES.DomainEventFactory)
const domainEventPublisher: DomainEventPublisherInterface = container.get(TYPES.DomainEventPublisher)
Promise.resolve(
sendEmailCampaign(
userRepository,
settingService,
userSubscriptionRepository,
timer,
domainEventFactory,
domainEventPublisher,
),
)
.then(() => {
logger.info(`${emailMessageIdentifier} email campaign complete.`)
process.exit(0)
})
.catch((error) => {
logger.error(`Could not finish ${emailMessageIdentifier} email campaign: ${error.message}`)
process.exit(1)
})
})

View File

@@ -44,6 +44,12 @@ case "$COMMAND" in
yarn workspace @standardnotes/auth-server daily-backup:one_drive
;;
'email-campaign' )
echo "Starting Email Campaign Sending..."
MESSAGE_IDENTIFIER=$1 && shift 1
yarn workspace @standardnotes/auth-server email-campaign $MESSAGE_IDENTIFIER
;;
* )
echo "Unknown command"
;;

View File

@@ -1,6 +1,6 @@
{
"name": "@standardnotes/auth-server",
"version": "1.1.1",
"version": "1.2.1",
"engines": {
"node": ">=16.0.0 <17.0.0"
},
@@ -12,6 +12,7 @@
"license": "AGPL-3.0-or-later",
"scripts": {
"clean": "rm -fr dist",
"setup:env": "cp .env.sample .env",
"prebuild": "yarn clean",
"build": "tsc --rootDir ./",
"lint": "eslint . --ext .ts",
@@ -24,22 +25,22 @@
"daily-backup:google_drive": "yarn node dist/bin/backup.js google_drive daily",
"daily-backup:one_drive": "yarn node dist/bin/backup.js one_drive daily",
"weekly-backup:email": "yarn node dist/bin/backup.js email weekly",
"email-campaign": "yarn node dist/bin/email.js",
"typeorm": "typeorm-ts-node-commonjs"
},
"dependencies": {
"@newrelic/native-metrics": "7.0.2",
"@newrelic/winston-enricher": "^2.1.0",
"@sentry/node": "^6.16.1",
"@sentry/node": "^7.3.0",
"@standardnotes/analytics": "^1.6.0",
"@standardnotes/api": "^1.1.13",
"@standardnotes/auth": "^3.19.2",
"@standardnotes/common": "^1.23.0",
"@standardnotes/domain-events": "^2.31.1",
"@standardnotes/common": "^1.23.1",
"@standardnotes/domain-events": "^2.32.4",
"@standardnotes/domain-events-infra": "^1.4.135",
"@standardnotes/features": "^1.45.2",
"@standardnotes/responses": "^1.6.15",
"@standardnotes/scheduler": "^1.1.1",
"@standardnotes/settings": "^1.14.2",
"@standardnotes/settings": "^1.15.0",
"@standardnotes/sncrypto-common": "^1.8.1",
"@standardnotes/sncrypto-node": "^1.8.1",
"@standardnotes/time": "^1.6.8",
@@ -55,7 +56,7 @@
"inversify-express-utils": "^6.4.3",
"ioredis": "^5.0.6",
"mysql2": "^2.3.3",
"newrelic": "8.6.0",
"newrelic": "^8.14.1",
"otplib": "12.0.1",
"prettyjson": "1.2.1",
"reflect-metadata": "0.1.13",
@@ -70,7 +71,7 @@
"@types/express": "^4.17.11",
"@types/ioredis": "^4.28.10",
"@types/jest": "^28.1.3",
"@types/newrelic": "^7.0.2",
"@types/newrelic": "^7.0.3",
"@types/otplib": "^10.0.0",
"@types/prettyjson": "^0.0.29",
"@types/ua-parser-js": "^0.7.36",

View File

@@ -1,6 +1,6 @@
import 'reflect-metadata'
import { RoleName } from '@standardnotes/common'
import { EmailMessageIdentifier, RoleName } from '@standardnotes/common'
import { PredicateName, PredicateAuthority, PredicateVerificationResult } from '@standardnotes/scheduler'
import { TimerInterface } from '@standardnotes/time'
@@ -18,6 +18,35 @@ describe('DomainEventFactory', () => {
timer.getUTCDate = jest.fn().mockReturnValue(new Date(1))
})
it('should create a EMAIL_MESSAGE_REQUESTED event', () => {
expect(
createFactory().createEmailMessageRequestedEvent({
userEmail: 'test@test.te',
messageIdentifier: EmailMessageIdentifier.ENCOURAGE_EMAIL_BACKUPS,
context: {
foo: 'bar',
},
}),
).toEqual({
createdAt: expect.any(Date),
meta: {
correlation: {
userIdentifier: 'test@test.te',
userIdentifierType: 'email',
},
origin: 'auth',
},
payload: {
messageIdentifier: 'ENCOURAGE_EMAIL_BACKUPS',
userEmail: 'test@test.te',
context: {
foo: 'bar',
},
},
type: 'EMAIL_MESSAGE_REQUESTED',
})
})
it('should create a PREDICATE_VERIFIED event', () => {
expect(
createFactory().createPredicateVerifiedEvent({

View File

@@ -1,4 +1,4 @@
import { RoleName, Uuid } from '@standardnotes/common'
import { EmailMessageIdentifier, RoleName, Uuid } from '@standardnotes/common'
import {
AccountDeletionRequestedEvent,
UserEmailChangedEvent,
@@ -14,6 +14,7 @@ import {
SharedSubscriptionInvitationCanceledEvent,
PredicateVerifiedEvent,
DomainEventService,
EmailMessageRequestedEvent,
} from '@standardnotes/domain-events'
import { Predicate, PredicateVerificationResult } from '@standardnotes/scheduler'
import { TimerInterface } from '@standardnotes/time'
@@ -26,6 +27,25 @@ import { DomainEventFactoryInterface } from './DomainEventFactoryInterface'
export class DomainEventFactory implements DomainEventFactoryInterface {
constructor(@inject(TYPES.Timer) private timer: TimerInterface) {}
createEmailMessageRequestedEvent(dto: {
userEmail: string
messageIdentifier: EmailMessageIdentifier
context: Record<string, unknown>
}): EmailMessageRequestedEvent {
return {
type: 'EMAIL_MESSAGE_REQUESTED',
createdAt: this.timer.getUTCDate(),
meta: {
correlation: {
userIdentifier: dto.userEmail,
userIdentifierType: 'email',
},
origin: DomainEventService.Auth,
},
payload: dto,
}
}
createPredicateVerifiedEvent(dto: {
userUuid: Uuid
predicate: Predicate

View File

@@ -1,4 +1,4 @@
import { Uuid, RoleName } from '@standardnotes/common'
import { Uuid, RoleName, EmailMessageIdentifier } from '@standardnotes/common'
import { Predicate, PredicateVerificationResult } from '@standardnotes/scheduler'
import {
AccountDeletionRequestedEvent,
@@ -14,10 +14,16 @@ import {
SharedSubscriptionInvitationCreatedEvent,
SharedSubscriptionInvitationCanceledEvent,
PredicateVerifiedEvent,
EmailMessageRequestedEvent,
} from '@standardnotes/domain-events'
import { InviteeIdentifierType } from '../SharedSubscription/InviteeIdentifierType'
export interface DomainEventFactoryInterface {
createEmailMessageRequestedEvent(dto: {
userEmail: string
messageIdentifier: EmailMessageIdentifier
context: Record<string, unknown>
}): EmailMessageRequestedEvent
createUserSignedInEvent(dto: {
userUuid: string
userEmail: string

View File

@@ -39,13 +39,13 @@ describe('SettingsAssociationService', () => {
it('should return the default set of settings for a newly registered user', () => {
const settings = createService().getDefaultSettingsAndValuesForNewUser()
const flatSettings = [...(settings as Map<SettingName, SettingDescription>).keys()]
expect(flatSettings).toEqual(['MUTE_SIGN_IN_EMAILS', 'LOG_SESSION_USER_AGENT'])
expect(flatSettings).toEqual(['MUTE_SIGN_IN_EMAILS', 'MUTE_MARKETING_EMAILS', 'LOG_SESSION_USER_AGENT'])
})
it('should return the default set of settings for a newly registered vault account', () => {
const settings = createService().getDefaultSettingsAndValuesForNewVaultAccount()
const flatSettings = [...(settings as Map<SettingName, SettingDescription>).keys()]
expect(flatSettings).toEqual(['MUTE_SIGN_IN_EMAILS', 'LOG_SESSION_USER_AGENT'])
expect(flatSettings).toEqual(['MUTE_SIGN_IN_EMAILS', 'MUTE_MARKETING_EMAILS', 'LOG_SESSION_USER_AGENT'])
expect(settings.get(SettingName.LogSessionUserAgent)?.value).toEqual('disabled')
})

View File

@@ -1,5 +1,10 @@
import { PermissionName } from '@standardnotes/features'
import { LogSessionUserAgentOption, MuteSignInEmailsOption, SettingName } from '@standardnotes/settings'
import {
LogSessionUserAgentOption,
MuteMarketingEmailsOption,
MuteSignInEmailsOption,
SettingName,
} from '@standardnotes/settings'
import { injectable } from 'inversify'
import { EncryptionVersion } from '../Encryption/EncryptionVersion'
@@ -14,6 +19,7 @@ export class SettingsAssociationService implements SettingsAssociationServiceInt
SettingName.MuteFailedBackupsEmails,
SettingName.MuteFailedCloudBackupsEmails,
SettingName.MuteSignInEmails,
SettingName.MuteMarketingEmails,
SettingName.DropboxBackupFrequency,
SettingName.GoogleDriveBackupFrequency,
SettingName.OneDriveBackupFrequency,
@@ -28,6 +34,7 @@ export class SettingsAssociationService implements SettingsAssociationServiceInt
SettingName.MuteFailedBackupsEmails,
SettingName.MuteFailedCloudBackupsEmails,
SettingName.MuteSignInEmails,
SettingName.MuteMarketingEmails,
SettingName.ListedAuthorSecrets,
SettingName.LogSessionUserAgent,
]
@@ -47,6 +54,14 @@ export class SettingsAssociationService implements SettingsAssociationServiceInt
value: MuteSignInEmailsOption.NotMuted,
},
],
[
SettingName.MuteMarketingEmails,
{
sensitive: false,
serverEncryptionVersion: EncryptionVersion.Unencrypted,
value: MuteMarketingEmailsOption.NotMuted,
},
],
[
SettingName.LogSessionUserAgent,
{

View File

@@ -3,6 +3,32 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.1.6](https://github.com/standardnotes/files/compare/@standardnotes/files-server@1.1.5...@standardnotes/files-server@1.1.6) (2022-06-27)
**Note:** Version bump only for package @standardnotes/files-server
## [1.1.5](https://github.com/standardnotes/files/compare/@standardnotes/files-server@1.1.4...@standardnotes/files-server@1.1.5) (2022-06-27)
### Bug Fixes
* upgrade sentry node sdk ([b6db194](https://github.com/standardnotes/files/commit/b6db194a22ff1d0afe96c291d545b408c0a5c373))
## [1.1.4](https://github.com/standardnotes/files/compare/@standardnotes/files-server@1.1.3...@standardnotes/files-server@1.1.4) (2022-06-24)
### Bug Fixes
* newrelic deps and setup db and cache for local development purposes ([ff09ae0](https://github.com/standardnotes/files/commit/ff09ae0a47747eaf7977ce5d3937ad385101eaeb))
## [1.1.3](https://github.com/standardnotes/files/compare/@standardnotes/files-server@1.1.2...@standardnotes/files-server@1.1.3) (2022-06-23)
### Bug Fixes
* curl in the final image ([0d67c55](https://github.com/standardnotes/files/commit/0d67c55e124eed08bca16824750152b895fceca7))
## [1.1.2](https://github.com/standardnotes/files/compare/@standardnotes/files-server@1.1.1...@standardnotes/files-server@1.1.2) (2022-06-23)
**Note:** Version bump only for package @standardnotes/files-server
## [1.1.1](https://github.com/standardnotes/files/compare/@standardnotes/files-server@1.1.0...@standardnotes/files-server@1.1.1) (2022-06-23)
**Note:** Version bump only for package @standardnotes/files-server

View File

@@ -1,7 +1,7 @@
FROM node:16.15.1-alpine AS builder
# Install dependencies for building native libraries
RUN apk add --update git openssh-client curl python3 alpine-sdk
RUN apk add --update git openssh-client python3 alpine-sdk
WORKDIR /workspace
@@ -12,6 +12,8 @@ RUN yarn install --immutable
FROM node:16.15.1-alpine
RUN apk add --update curl
WORKDIR /workspace
# Copy the installed dependencies from the previous stage.

View File

@@ -1,6 +1,6 @@
{
"name": "@standardnotes/files-server",
"version": "1.1.1",
"version": "1.1.6",
"engines": {
"node": ">=16.0.0 <17.0.0"
},
@@ -14,6 +14,7 @@
"license": "AGPL-3.0-or-later",
"scripts": {
"clean": "rm -fr dist",
"setup:env": "cp .env.sample .env",
"prebuild": "yarn clean",
"build": "tsc --rootDir ./",
"lint": "eslint . --ext .ts",
@@ -23,8 +24,7 @@
"worker": "yarn node dist/bin/worker.js"
},
"dependencies": {
"@newrelic/native-metrics": "7.0.2",
"@sentry/node": "^6.16.1",
"@sentry/node": "^7.3.0",
"@standardnotes/auth": "^3.18.9",
"@standardnotes/common": "^1.19.4",
"@standardnotes/domain-events": "^2.27.6",
@@ -44,7 +44,7 @@
"inversify-express-utils": "^6.4.3",
"ioredis": "^5.0.6",
"jsonwebtoken": "^8.5.1",
"newrelic": "^7.3.1",
"newrelic": "^8.14.1",
"nodemon": "^2.0.15",
"prettyjson": "^1.2.1",
"reflect-metadata": "^0.1.13",
@@ -59,7 +59,7 @@
"@types/ioredis": "^4.28.10",
"@types/jest": "^28.1.3",
"@types/jsonwebtoken": "^8.5.0",
"@types/newrelic": "^7.0.1",
"@types/newrelic": "^7.0.3",
"@types/prettyjson": "^0.0.29",
"@types/uuid": "^8.3.0",
"@typescript-eslint/eslint-plugin": "^5.29.0",

View File

@@ -3,6 +3,40 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.2.1](https://github.com/standardnotes/server/compare/@standardnotes/scheduler-server@1.2.0...@standardnotes/scheduler-server@1.2.1) (2022-06-27)
### Bug Fixes
* change subscription encouragement scheduled from 14 to 30 days ([e12c9c4](https://github.com/standardnotes/server/commit/e12c9c47a73efa5e5af15144e653195455f90591))
# [1.2.0](https://github.com/standardnotes/server/compare/@standardnotes/scheduler-server@1.1.5...@standardnotes/scheduler-server@1.2.0) (2022-06-27)
### Features
* add context for requesting email message ([8d4280f](https://github.com/standardnotes/server/commit/8d4280f4ca57151198880620cc9504aba720f2f3))
## [1.1.5](https://github.com/standardnotes/server/compare/@standardnotes/scheduler-server@1.1.4...@standardnotes/scheduler-server@1.1.5) (2022-06-27)
### Bug Fixes
* upgrade sentry node sdk ([b6db194](https://github.com/standardnotes/server/commit/b6db194a22ff1d0afe96c291d545b408c0a5c373))
## [1.1.4](https://github.com/standardnotes/server/compare/@standardnotes/scheduler-server@1.1.3...@standardnotes/scheduler-server@1.1.4) (2022-06-24)
### Bug Fixes
* newrelic deps and setup db and cache for local development purposes ([ff09ae0](https://github.com/standardnotes/server/commit/ff09ae0a47747eaf7977ce5d3937ad385101eaeb))
## [1.1.3](https://github.com/standardnotes/server/compare/@standardnotes/scheduler-server@1.1.2...@standardnotes/scheduler-server@1.1.3) (2022-06-23)
### Bug Fixes
* curl in the final image ([0d67c55](https://github.com/standardnotes/server/commit/0d67c55e124eed08bca16824750152b895fceca7))
## [1.1.2](https://github.com/standardnotes/server/compare/@standardnotes/scheduler-server@1.1.1...@standardnotes/scheduler-server@1.1.2) (2022-06-23)
**Note:** Version bump only for package @standardnotes/scheduler-server
## [1.1.1](https://github.com/standardnotes/server/compare/@standardnotes/scheduler-server@1.1.0...@standardnotes/scheduler-server@1.1.1) (2022-06-23)
**Note:** Version bump only for package @standardnotes/scheduler-server

View File

@@ -1,7 +1,7 @@
FROM node:16.15.1-alpine AS builder
# Install dependencies for building native libraries
RUN apk add --update git openssh-client curl python3 alpine-sdk
RUN apk add --update git openssh-client python3 alpine-sdk
WORKDIR /workspace
@@ -12,6 +12,8 @@ RUN yarn install --immutable
FROM node:16.15.1-alpine
RUN apk add --update curl
WORKDIR /workspace
# Copy the installed dependencies from the previous stage.

View File

@@ -1,6 +1,6 @@
{
"name": "@standardnotes/scheduler-server",
"version": "1.1.1",
"version": "1.2.1",
"engines": {
"node": ">=16.0.0 <17.0.0"
},
@@ -22,10 +22,10 @@
"typeorm": "typeorm-ts-node-commonjs"
},
"dependencies": {
"@newrelic/native-metrics": "7.0.2",
"@newrelic/winston-enricher": "^2.1.0",
"@sentry/node": "^7.3.0",
"@standardnotes/common": "^1.23.0",
"@standardnotes/domain-events": "^2.32.0",
"@standardnotes/domain-events": "^2.32.3",
"@standardnotes/domain-events-infra": "^1.5.0",
"@standardnotes/scheduler": "^1.1.0",
"@standardnotes/time": "^1.7.0",
@@ -35,7 +35,7 @@
"inversify": "5.0.5",
"ioredis": "^5.0.6",
"mysql2": "^2.3.3",
"newrelic": "8.6.0",
"newrelic": "^8.14.1",
"reflect-metadata": "^0.1.13",
"typeorm": "^0.3.6",
"winston": "3.3.3"
@@ -43,7 +43,7 @@
"devDependencies": {
"@types/ioredis": "^4.28.10",
"@types/jest": "^28.1.2",
"@types/newrelic": "^7.0.2",
"@types/newrelic": "^7.0.3",
"@types/node": "^18.0.0",
"@typescript-eslint/eslint-plugin": "^5.29.0",
"eslint-plugin-prettier": "^4.0.0",

View File

@@ -21,7 +21,13 @@ describe('DomainEventFactory', () => {
it('should create a EMAIL_MESSAGE_REQUESTED event', () => {
expect(
createFactory().createEmailMessageRequestedEvent('test@test.te', EmailMessageIdentifier.ENCOURAGE_EMAIL_BACKUPS),
createFactory().createEmailMessageRequestedEvent({
userEmail: 'test@test.te',
messageIdentifier: EmailMessageIdentifier.ENCOURAGE_EMAIL_BACKUPS,
context: {
foo: 'bar',
},
}),
).toEqual({
createdAt: expect.any(Date),
meta: {
@@ -34,6 +40,9 @@ describe('DomainEventFactory', () => {
payload: {
messageIdentifier: 'ENCOURAGE_EMAIL_BACKUPS',
userEmail: 'test@test.te',
context: {
foo: 'bar',
},
},
type: 'EMAIL_MESSAGE_REQUESTED',
})

View File

@@ -16,24 +16,22 @@ import { DomainEventFactoryInterface } from './DomainEventFactoryInterface'
export class DomainEventFactory implements DomainEventFactoryInterface {
constructor(@inject(TYPES.Timer) private timer: TimerInterface) {}
createEmailMessageRequestedEvent(
userEmail: string,
messageIdentifier: EmailMessageIdentifier,
): EmailMessageRequestedEvent {
createEmailMessageRequestedEvent(dto: {
userEmail: string
messageIdentifier: EmailMessageIdentifier
context: Record<string, unknown>
}): EmailMessageRequestedEvent {
return {
type: 'EMAIL_MESSAGE_REQUESTED',
createdAt: this.timer.getUTCDate(),
meta: {
correlation: {
userIdentifier: userEmail,
userIdentifier: dto.userEmail,
userIdentifierType: 'email',
},
origin: DomainEventService.Scheduler,
},
payload: {
messageIdentifier,
userEmail,
},
payload: dto,
}
}

View File

@@ -6,8 +6,9 @@ import { Predicate } from '../Predicate/Predicate'
export interface DomainEventFactoryInterface {
createPredicateVerificationRequestedEvent(job: Job, predicate: Predicate): PredicateVerificationRequestedEvent
createEmailMessageRequestedEvent(
userEmail: string,
messageIdentifier: EmailMessageIdentifier,
): EmailMessageRequestedEvent
createEmailMessageRequestedEvent(dto: {
userEmail: string
messageIdentifier: EmailMessageIdentifier
context: Record<string, unknown>
}): EmailMessageRequestedEvent
}

View File

@@ -49,7 +49,7 @@ export class UserRegisteredEventHandler implements DomainEventHandlerInterface {
private async scheduleEncourageSubscriptionPurchasing(event: UserRegisteredEvent): Promise<void> {
const job = new Job()
job.name = JobName.ENCOURAGE_SUBSCRIPTION_PURCHASING
job.scheduledAt = this.timer.convertDateToMicroseconds(this.timer.getUTCDateNDaysAhead(14))
job.scheduledAt = this.timer.convertDateToMicroseconds(this.timer.getUTCDateNDaysAhead(30))
job.createdAt = this.timer.getTimestampInMicroseconds()
job.status = JobStatus.Pending
job.userIdentifier = event.payload.email

View File

@@ -67,10 +67,11 @@ describe('JobDoneInterpreter', () => {
await createInterpreter().interpret('1-2-3')
expect(domainEventFactory.createEmailMessageRequestedEvent).toHaveBeenCalledWith(
'test@test.te',
'ENCOURAGE_EMAIL_BACKUPS',
)
expect(domainEventFactory.createEmailMessageRequestedEvent).toHaveBeenCalledWith({
context: {},
messageIdentifier: 'ENCOURAGE_EMAIL_BACKUPS',
userEmail: 'test@test.te',
})
expect(domainEventPublisher.publish).toHaveBeenCalled()
})
@@ -110,6 +111,7 @@ describe('JobDoneInterpreter', () => {
name: JobName.ENCOURAGE_SUBSCRIPTION_PURCHASING,
userIdentifier: 'test@test.te',
userIdentifierType: 'email',
createdAt: 123,
} as jest.Mocked<Job>)
predicateRepository.findByJobUuid = jest
.fn()
@@ -119,10 +121,11 @@ describe('JobDoneInterpreter', () => {
await createInterpreter().interpret('1-2-3')
expect(domainEventFactory.createEmailMessageRequestedEvent).toHaveBeenCalledWith(
'test@test.te',
'ENCOURAGE_SUBSCRIPTION_PURCHASING',
)
expect(domainEventFactory.createEmailMessageRequestedEvent).toHaveBeenCalledWith({
context: { userRegisteredAt: 123 },
messageIdentifier: 'ENCOURAGE_SUBSCRIPTION_PURCHASING',
userEmail: 'test@test.te',
})
expect(domainEventPublisher.publish).toHaveBeenCalled()
})
@@ -148,7 +151,11 @@ describe('JobDoneInterpreter', () => {
await createInterpreter().interpret('1-2-3')
expect(domainEventFactory.createEmailMessageRequestedEvent).toHaveBeenCalledWith('test@test.te', 'EXIT_INTERVIEW')
expect(domainEventFactory.createEmailMessageRequestedEvent).toHaveBeenCalledWith({
context: {},
messageIdentifier: 'EXIT_INTERVIEW',
userEmail: 'test@test.te',
})
expect(domainEventPublisher.publish).toHaveBeenCalled()
})

View File

@@ -41,7 +41,7 @@ export class JobDoneInterpreter implements JobDoneInterpreterInterface {
return
case JobName.ENCOURAGE_SUBSCRIPTION_PURCHASING:
if (job.userIdentifierType === 'email') {
await this.requestSubscriptionPurchaseEncouragementEmail(job.userIdentifier)
await this.requestSubscriptionPurchaseEncouragementEmail(job)
}
return
case JobName.EXIT_INTERVIEW:
@@ -56,25 +56,33 @@ export class JobDoneInterpreter implements JobDoneInterpreterInterface {
private async requestEmailBackupEncouragementEmail(userEmail: string): Promise<void> {
await this.domainEventPublisher.publish(
this.domainEventFactory.createEmailMessageRequestedEvent(
this.domainEventFactory.createEmailMessageRequestedEvent({
userEmail,
EmailMessageIdentifier.ENCOURAGE_EMAIL_BACKUPS,
),
messageIdentifier: EmailMessageIdentifier.ENCOURAGE_EMAIL_BACKUPS,
context: {},
}),
)
}
private async requestSubscriptionPurchaseEncouragementEmail(userEmail: string): Promise<void> {
private async requestSubscriptionPurchaseEncouragementEmail(job: Job): Promise<void> {
await this.domainEventPublisher.publish(
this.domainEventFactory.createEmailMessageRequestedEvent(
userEmail,
EmailMessageIdentifier.ENCOURAGE_SUBSCRIPTION_PURCHASING,
),
this.domainEventFactory.createEmailMessageRequestedEvent({
userEmail: job.userIdentifier,
messageIdentifier: EmailMessageIdentifier.ENCOURAGE_SUBSCRIPTION_PURCHASING,
context: {
userRegisteredAt: job.createdAt,
},
}),
)
}
private async requestExitInterviewEmail(userEmail: string): Promise<void> {
await this.domainEventPublisher.publish(
this.domainEventFactory.createEmailMessageRequestedEvent(userEmail, EmailMessageIdentifier.EXIT_INTERVIEW),
this.domainEventFactory.createEmailMessageRequestedEvent({
userEmail,
messageIdentifier: EmailMessageIdentifier.EXIT_INTERVIEW,
context: {},
}),
)
}

View File

@@ -3,6 +3,32 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.1.6](https://github.com/standardnotes/syncing-server-js/compare/@standardnotes/syncing-server@1.1.5...@standardnotes/syncing-server@1.1.6) (2022-06-27)
**Note:** Version bump only for package @standardnotes/syncing-server
## [1.1.5](https://github.com/standardnotes/syncing-server-js/compare/@standardnotes/syncing-server@1.1.4...@standardnotes/syncing-server@1.1.5) (2022-06-27)
### Bug Fixes
* upgrade sentry node sdk ([b6db194](https://github.com/standardnotes/syncing-server-js/commit/b6db194a22ff1d0afe96c291d545b408c0a5c373))
## [1.1.4](https://github.com/standardnotes/syncing-server-js/compare/@standardnotes/syncing-server@1.1.3...@standardnotes/syncing-server@1.1.4) (2022-06-24)
### Bug Fixes
* newrelic deps and setup db and cache for local development purposes ([ff09ae0](https://github.com/standardnotes/syncing-server-js/commit/ff09ae0a47747eaf7977ce5d3937ad385101eaeb))
## [1.1.3](https://github.com/standardnotes/syncing-server-js/compare/@standardnotes/syncing-server@1.1.2...@standardnotes/syncing-server@1.1.3) (2022-06-23)
### Bug Fixes
* curl in the final image ([0d67c55](https://github.com/standardnotes/syncing-server-js/commit/0d67c55e124eed08bca16824750152b895fceca7))
## [1.1.2](https://github.com/standardnotes/syncing-server-js/compare/@standardnotes/syncing-server@1.1.1...@standardnotes/syncing-server@1.1.2) (2022-06-23)
**Note:** Version bump only for package @standardnotes/syncing-server
## [1.1.1](https://github.com/standardnotes/syncing-server-js/compare/@standardnotes/syncing-server@1.1.0...@standardnotes/syncing-server@1.1.1) (2022-06-23)
**Note:** Version bump only for package @standardnotes/syncing-server

View File

@@ -1,7 +1,7 @@
FROM node:16.15.1-alpine AS builder
# Install dependencies for building native libraries
RUN apk add --update git openssh-client curl python3 alpine-sdk
RUN apk add --update git openssh-client python3 alpine-sdk
WORKDIR /workspace
@@ -12,6 +12,8 @@ RUN yarn install --immutable
FROM node:16.15.1-alpine
RUN apk add --update curl
WORKDIR /workspace
# Copy the installed dependencies from the previous stage.

View File

@@ -1,6 +1,6 @@
{
"name": "@standardnotes/syncing-server",
"version": "1.1.1",
"version": "1.1.6",
"engines": {
"node": ">=16.0.0 <17.0.0"
},
@@ -12,6 +12,7 @@
"license": "AGPL-3.0-or-later",
"scripts": {
"clean": "rm -fr dist",
"setup:env": "cp .env.sample .env",
"prebuild": "yarn clean",
"build": "tsc --rootDir ./",
"lint": "eslint . --ext .ts",
@@ -21,9 +22,8 @@
"worker": "yarn node dist/bin/worker.js"
},
"dependencies": {
"@newrelic/native-metrics": "7.0.2",
"@newrelic/winston-enricher": "^2.1.0",
"@sentry/node": "^6.16.1",
"@sentry/node": "^7.3.0",
"@standardnotes/analytics": "^1.6.0",
"@standardnotes/auth": "^3.19.2",
"@standardnotes/common": "^1.22.0",
@@ -44,7 +44,7 @@
"ioredis": "^5.0.6",
"jsonwebtoken": "8.5.1",
"mysql2": "^2.3.3",
"newrelic": "8.6.0",
"newrelic": "^8.14.1",
"nodemon": "2.0.7",
"prettyjson": "1.2.1",
"reflect-metadata": "0.1.13",
@@ -61,7 +61,7 @@
"@types/ioredis": "^4.28.10",
"@types/jest": "^28.1.3",
"@types/jsonwebtoken": "^8.5.0",
"@types/newrelic": "^7.0.2",
"@types/newrelic": "^7.0.3",
"@types/prettyjson": "^0.0.29",
"@types/ua-parser-js": "^0.7.36",
"@types/uuid": "^8.3.0",

16
scripts/push-tags-one-by-one.sh Executable file
View File

@@ -0,0 +1,16 @@
#!/bin/bash
# source: https://github.com/lerna/lerna/issues/2218#issuecomment-771876933
# https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows
# > "Note: An event will not be created when you create more than three tags at once."
# GitHub workflows will not run if a commit includes more than 3 tags at once. This
# fix pushes tags up one by one.
# get all tags on this commit
TAGS=$(git tag --points-at HEAD | cat)
# only push tags one by one if there are more than 3
if (($(echo "$TAGS"| wc -l) > 3))
then
echo "Pushing tags one by one to avoid GitHub webhook limit of 3"
echo "$TAGS" | while read line ; do git push origin --no-follow-tags $line; done
fi

350
yarn.lock
View File

@@ -629,7 +629,7 @@ __metadata:
languageName: node
linkType: hard
"@grpc/grpc-js@npm:^1.2.11, @grpc/grpc-js@npm:^1.5.5":
"@grpc/grpc-js@npm:^1.5.5":
version: 1.6.7
resolution: "@grpc/grpc-js@npm:1.6.7"
dependencies:
@@ -639,16 +639,6 @@ __metadata:
languageName: node
linkType: hard
"@grpc/proto-loader@npm:^0.5.6":
version: 0.5.6
resolution: "@grpc/proto-loader@npm:0.5.6"
dependencies:
lodash.camelcase: ^4.3.0
protobufjs: ^6.8.6
checksum: 13fe76d84ab1a516f3dc47d06df4dd682f6f1515a7a4aa3f8cddcc8f8256f33cbf529bd0b6729946f548f7459acfcd9b5b026c10572e21d40213a358115658b5
languageName: node
linkType: hard
"@grpc/proto-loader@npm:^0.6.13, @grpc/proto-loader@npm:^0.6.4":
version: 0.6.13
resolution: "@grpc/proto-loader@npm:0.6.13"
@@ -1218,16 +1208,7 @@ __metadata:
languageName: node
linkType: hard
"@newrelic/aws-sdk@npm:^3.1.0":
version: 3.1.0
resolution: "@newrelic/aws-sdk@npm:3.1.0"
peerDependencies:
newrelic: ">=6.11.0"
checksum: 5601d90c78f82d3216d9cacb664c7a74c1b06acfff44471e758a878a36345ac46449896f9ea4a0b44673b7a72308ee7717d999c184e6e87f3478d5b2d3a14d0c
languageName: node
linkType: hard
"@newrelic/aws-sdk@npm:^4.0.1, @newrelic/aws-sdk@npm:^4.1.1":
"@newrelic/aws-sdk@npm:^4.1.1":
version: 4.1.2
resolution: "@newrelic/aws-sdk@npm:4.1.2"
dependencies:
@@ -1238,18 +1219,7 @@ __metadata:
languageName: node
linkType: hard
"@newrelic/koa@npm:^5.0.0":
version: 5.0.0
resolution: "@newrelic/koa@npm:5.0.0"
dependencies:
methods: ^1.1.2
peerDependencies:
newrelic: ">=6.11.0"
checksum: e98d921b96d043817b623bf83752bdae4e8ca9e594e47ad23109cb516d9a8715ca4b79e4949c5fc5e76ca806d99b2e46e2b7afa2861e0af408f6d647b18f292f
languageName: node
linkType: hard
"@newrelic/koa@npm:^6.0.1, @newrelic/koa@npm:^6.1.1":
"@newrelic/koa@npm:^6.1.1":
version: 6.1.2
resolution: "@newrelic/koa@npm:6.1.2"
peerDependencies:
@@ -1258,40 +1228,6 @@ __metadata:
languageName: node
linkType: hard
"@newrelic/native-metrics@npm:7.0.2":
version: 7.0.2
resolution: "@newrelic/native-metrics@npm:7.0.2"
dependencies:
nan: ^2.14.2
node-gyp: latest
semver: ^5.5.1
checksum: 501805d29fc5be83a34b5f9b78f9e9b9ccc7ba047ad8dc77a3da90d7606e260607536795b0c75c242880bdd8bb40464f870f82fe4b2cd6b1503576a01aca5269
languageName: node
linkType: hard
"@newrelic/native-metrics@npm:^6.0.0":
version: 6.0.2
resolution: "@newrelic/native-metrics@npm:6.0.2"
dependencies:
nan: ^2.14.2
node-gyp: latest
semver: ^5.5.1
checksum: 78f92bbe7feb662699b1a148a869b3d963653a16d3c6ffc63159c4b8bea7905e26140e55631444e167dbd4291e6b7c2261bcd3ce4b8917852fe1d92ffb3936f9
languageName: node
linkType: hard
"@newrelic/native-metrics@npm:^7.0.1":
version: 7.1.2
resolution: "@newrelic/native-metrics@npm:7.1.2"
dependencies:
https-proxy-agent: ^5.0.0
nan: ^2.15.0
node-gyp: latest
semver: ^5.5.1
checksum: c8358b5e6170ed2a32cf14b557f0a2c0d1d836c82a80e1be23e2b2f427a54104fc8a99c59c8d4ebf13fb057eca20ddf5ba3f49657d53d51f1afb846b390fbf91
languageName: node
linkType: hard
"@newrelic/native-metrics@npm:^8.0.0":
version: 8.0.0
resolution: "@newrelic/native-metrics@npm:8.0.0"
@@ -1304,18 +1240,7 @@ __metadata:
languageName: node
linkType: hard
"@newrelic/superagent@npm:^4.0.0":
version: 4.0.0
resolution: "@newrelic/superagent@npm:4.0.0"
dependencies:
methods: ^1.1.2
peerDependencies:
newrelic: ">=6.11.0"
checksum: 5fb257ac0530f91bae58265678500c96c28f164bd6fcec5c0dff51958c8e72bc721dd04d1d2c48bace9e077b57b233c47efb8af61f2a005b71d4636e29ae9728
languageName: node
linkType: hard
"@newrelic/superagent@npm:^5.0.1, @newrelic/superagent@npm:^5.1.0":
"@newrelic/superagent@npm:^5.1.0":
version: 5.1.1
resolution: "@newrelic/superagent@npm:5.1.1"
peerDependencies:
@@ -1729,71 +1654,59 @@ __metadata:
languageName: node
linkType: hard
"@sentry/core@npm:6.19.7":
version: 6.19.7
resolution: "@sentry/core@npm:6.19.7"
"@sentry/core@npm:7.3.0":
version: 7.3.0
resolution: "@sentry/core@npm:7.3.0"
dependencies:
"@sentry/hub": 6.19.7
"@sentry/minimal": 6.19.7
"@sentry/types": 6.19.7
"@sentry/utils": 6.19.7
"@sentry/hub": 7.3.0
"@sentry/types": 7.3.0
"@sentry/utils": 7.3.0
tslib: ^1.9.3
checksum: d212e8ef07114549de4a93b81f8bfa217ca1550ca7a5eeaa611e5629faef78ff72663ce561ffa2cff48f3dc556745ef65177044f9965cdd3cbccf617cf3bf675
checksum: 176856840462c881c9a2ea30c5af209b64516201e5d7978e3960473fead6fc10547c556185e3636a2eade6856b293d190212825f9e8ff6fe4331fcdb0f6c213a
languageName: node
linkType: hard
"@sentry/hub@npm:6.19.7":
version: 6.19.7
resolution: "@sentry/hub@npm:6.19.7"
"@sentry/hub@npm:7.3.0":
version: 7.3.0
resolution: "@sentry/hub@npm:7.3.0"
dependencies:
"@sentry/types": 6.19.7
"@sentry/utils": 6.19.7
"@sentry/types": 7.3.0
"@sentry/utils": 7.3.0
tslib: ^1.9.3
checksum: 10bb1c5cba1b0f1e27a3dd0a186c22f94aeaf11c4662890ab07b2774f46f46af78d61e3ba71d76edc750a7b45af86edd032f35efecdb4efa2eaf551080ccdcb1
checksum: a052a7c940e1f6af16ca2c61f1e184eaf0d7874598ec4eae3a28c8b5ea6a19cf3b89106768aaeea19deb9816bdd316ec0218764c2e66cc92a87e2e404d6e0dd6
languageName: node
linkType: hard
"@sentry/minimal@npm:6.19.7":
version: 6.19.7
resolution: "@sentry/minimal@npm:6.19.7"
"@sentry/node@npm:^7.3.0":
version: 7.3.0
resolution: "@sentry/node@npm:7.3.0"
dependencies:
"@sentry/hub": 6.19.7
"@sentry/types": 6.19.7
tslib: ^1.9.3
checksum: 9153ac426ee056fc34c5be898f83d74ec08f559d69f544c5944ec05e584b62ed356b92d1a9b08993a7022ad42b5661c3d72881221adc19bee5fc1af3ad3864a8
languageName: node
linkType: hard
"@sentry/node@npm:^6.16.1":
version: 6.19.7
resolution: "@sentry/node@npm:6.19.7"
dependencies:
"@sentry/core": 6.19.7
"@sentry/hub": 6.19.7
"@sentry/types": 6.19.7
"@sentry/utils": 6.19.7
"@sentry/core": 7.3.0
"@sentry/hub": 7.3.0
"@sentry/types": 7.3.0
"@sentry/utils": 7.3.0
cookie: ^0.4.1
https-proxy-agent: ^5.0.0
lru_map: ^0.3.3
tslib: ^1.9.3
checksum: 2293b0d1d1f9fac3a451eb94f820bc27721c8edddd1f373064666ddd6272f0a4c70dbe58c6c4b3d3ccaf4578aab8f466d71ee69f6f6ff93521bbb02dfe829ce5
checksum: a92c2d2d1b05136b3c04f39cb87bf459519619c7e4f548f4e2a34145e868edd1ccdd505bcf5d3ff56872ea994530c263deb7ce4c498e9f4e39111c5fcacd342f
languageName: node
linkType: hard
"@sentry/types@npm:6.19.7":
version: 6.19.7
resolution: "@sentry/types@npm:6.19.7"
checksum: f46ef74a33376ad6ea9b128115515c58eb9369d89293c60aa67abca26b5d5d519aa4d0a736db56ae0d75ffd816643d62187018298523cbc2e6c2fb3a6b2a9035
"@sentry/types@npm:7.3.0":
version: 7.3.0
resolution: "@sentry/types@npm:7.3.0"
checksum: 3ddbc3c7ebf2caad2d97a4c7a25f14791f642f7baadfa3c02857e433c0377ca7e6df4d3fc7e197717f2d6f8fca876178d01c827b5c1b42adba92115c62e18daf
languageName: node
linkType: hard
"@sentry/utils@npm:6.19.7":
version: 6.19.7
resolution: "@sentry/utils@npm:6.19.7"
"@sentry/utils@npm:7.3.0":
version: 7.3.0
resolution: "@sentry/utils@npm:7.3.0"
dependencies:
"@sentry/types": 6.19.7
"@sentry/types": 7.3.0
tslib: ^1.9.3
checksum: a000223b9c646c64e3565e79cace1eeb75114342b768367c4dddd646476c215eb1bddfb70c63f05e2352d3bce2d7d415344e4757a001605d0e01ac74da5dd306
checksum: 2696b1bfad1ad2e8e2aa7dd822fb0546d680b06aa302c3a8e8c8da0577fb9938da094f3eda589b2a1c216e1c84a81a5119b30136fd013de9c3a4513aece55d05
languageName: node
linkType: hard
@@ -1847,9 +1760,8 @@ __metadata:
version: 0.0.0-use.local
resolution: "@standardnotes/api-gateway@workspace:packages/api-gateway"
dependencies:
"@newrelic/native-metrics": 7.0.2
"@newrelic/winston-enricher": ^2.1.0
"@sentry/node": ^6.16.1
"@sentry/node": ^7.3.0
"@standardnotes/analytics": ^1.4.0
"@standardnotes/auth": 3.19.2
"@standardnotes/domain-events": 2.29.0
@@ -1860,7 +1772,7 @@ __metadata:
"@types/ioredis": ^4.28.10
"@types/jest": ^28.1.3
"@types/jsonwebtoken": ^8.5.0
"@types/newrelic": ^7.0.1
"@types/newrelic": ^7.0.3
"@types/prettyjson": ^0.0.29
"@typescript-eslint/eslint-plugin": ^5.29.0
aws-sdk: ^2.1160.0
@@ -1876,7 +1788,7 @@ __metadata:
ioredis: ^5.0.6
jest: ^28.1.1
jsonwebtoken: 8.5.1
newrelic: 8.6.0
newrelic: ^8.14.1
nodemon: ^2.0.16
prettyjson: 1.2.1
reflect-metadata: 0.1.13
@@ -1903,19 +1815,18 @@ __metadata:
version: 0.0.0-use.local
resolution: "@standardnotes/auth-server@workspace:packages/auth"
dependencies:
"@newrelic/native-metrics": 7.0.2
"@newrelic/winston-enricher": ^2.1.0
"@sentry/node": ^6.16.1
"@sentry/node": ^7.3.0
"@standardnotes/analytics": ^1.6.0
"@standardnotes/api": ^1.1.13
"@standardnotes/auth": ^3.19.2
"@standardnotes/common": ^1.23.0
"@standardnotes/domain-events": ^2.31.1
"@standardnotes/common": ^1.23.1
"@standardnotes/domain-events": ^2.32.4
"@standardnotes/domain-events-infra": ^1.4.135
"@standardnotes/features": ^1.45.2
"@standardnotes/responses": ^1.6.15
"@standardnotes/scheduler": ^1.1.1
"@standardnotes/settings": ^1.14.2
"@standardnotes/settings": ^1.15.0
"@standardnotes/sncrypto-common": ^1.8.1
"@standardnotes/sncrypto-node": ^1.8.1
"@standardnotes/time": ^1.6.8
@@ -1924,7 +1835,7 @@ __metadata:
"@types/express": ^4.17.11
"@types/ioredis": ^4.28.10
"@types/jest": ^28.1.3
"@types/newrelic": ^7.0.2
"@types/newrelic": ^7.0.3
"@types/otplib": ^10.0.0
"@types/prettyjson": ^0.0.29
"@types/ua-parser-js": ^0.7.36
@@ -1945,7 +1856,7 @@ __metadata:
ioredis: ^5.0.6
jest: ^28.1.1
mysql2: ^2.3.3
newrelic: 8.6.0
newrelic: ^8.14.1
nodemon: ^2.0.16
otplib: 12.0.1
prettyjson: 1.2.1
@@ -1978,6 +1889,16 @@ __metadata:
languageName: node
linkType: hard
"@standardnotes/auth@npm:^3.19.4":
version: 3.19.4
resolution: "@standardnotes/auth@npm:3.19.4"
dependencies:
"@standardnotes/common": ^1.23.1
jsonwebtoken: ^8.5.1
checksum: 84ac9e669ee393a8ac04c49729cd732280ab7ad9c6ad780e1f8cc7e02bdd1d15b8446d84134e775d805e6fa04e9500d9e62d7f857e6b1f5bb36f10a0c31640ff
languageName: node
linkType: hard
"@standardnotes/common@npm:^1.19.1, @standardnotes/common@npm:^1.19.4, @standardnotes/common@npm:^1.22.0, @standardnotes/common@npm:^1.23.0":
version: 1.23.0
resolution: "@standardnotes/common@npm:1.23.0"
@@ -1985,6 +1906,13 @@ __metadata:
languageName: node
linkType: hard
"@standardnotes/common@npm:^1.23.1":
version: 1.23.1
resolution: "@standardnotes/common@npm:1.23.1"
checksum: f498f4c469f7b9cdfc08b7648077832a2a214d844f012d02d73c2c418fab221af3302570cc6b1957b5ed481b55237f95bc24fc5c231162bfcdf8730333d38405
languageName: node
linkType: hard
"@standardnotes/config@npm:2.0.1":
version: 2.0.1
resolution: "@standardnotes/config@npm:2.0.1"
@@ -2035,7 +1963,7 @@ __metadata:
languageName: node
linkType: hard
"@standardnotes/domain-events@npm:^2.27.6, @standardnotes/domain-events@npm:^2.29.0, @standardnotes/domain-events@npm:^2.31.1, @standardnotes/domain-events@npm:^2.32.0, @standardnotes/domain-events@npm:^2.32.2":
"@standardnotes/domain-events@npm:^2.27.6, @standardnotes/domain-events@npm:^2.29.0, @standardnotes/domain-events@npm:^2.32.2":
version: 2.32.2
resolution: "@standardnotes/domain-events@npm:2.32.2"
dependencies:
@@ -2046,6 +1974,28 @@ __metadata:
languageName: node
linkType: hard
"@standardnotes/domain-events@npm:^2.32.3":
version: 2.32.3
resolution: "@standardnotes/domain-events@npm:2.32.3"
dependencies:
"@standardnotes/auth": ^3.19.3
"@standardnotes/features": ^1.45.5
"@standardnotes/scheduler": ^1.1.1
checksum: ea6151d1376cbb99ffb9ff7bcc70c6e7e426c00176283ea29e8befc7719c0d67ca26f262239c8ac06147fc5d4546110cb7ee0995fd78c6ac353e6f43791554ac
languageName: node
linkType: hard
"@standardnotes/domain-events@npm:^2.32.4":
version: 2.32.4
resolution: "@standardnotes/domain-events@npm:2.32.4"
dependencies:
"@standardnotes/auth": ^3.19.4
"@standardnotes/features": ^1.45.6
"@standardnotes/scheduler": ^1.1.2
checksum: 9f8a1637aa63d04f2c60e1a4c75e5fc5f4013f4a5e39b9cd55d56a894220cee47390e8b37422b4c128db05d231ab371e8a1caa4e1af3395bf04319697dae7303
languageName: node
linkType: hard
"@standardnotes/encryption@npm:^1.8.19":
version: 1.8.19
resolution: "@standardnotes/encryption@npm:1.8.19"
@@ -2067,12 +2017,21 @@ __metadata:
languageName: node
linkType: hard
"@standardnotes/features@npm:^1.45.6":
version: 1.45.6
resolution: "@standardnotes/features@npm:1.45.6"
dependencies:
"@standardnotes/auth": ^3.19.4
"@standardnotes/common": ^1.23.1
checksum: 572780d6e24efa664f316f6cf56c01907e00263db6204fee17f7ce9e43fa376411f373863dda59f8fb039250a224b7f8637fbd0bcbd7241112e061accbc05360
languageName: node
linkType: hard
"@standardnotes/files-server@workspace:packages/files":
version: 0.0.0-use.local
resolution: "@standardnotes/files-server@workspace:packages/files"
dependencies:
"@newrelic/native-metrics": 7.0.2
"@sentry/node": ^6.16.1
"@sentry/node": ^7.3.0
"@standardnotes/auth": ^3.18.9
"@standardnotes/common": ^1.19.4
"@standardnotes/config": 2.0.1
@@ -2087,7 +2046,7 @@ __metadata:
"@types/ioredis": ^4.28.10
"@types/jest": ^28.1.3
"@types/jsonwebtoken": ^8.5.0
"@types/newrelic": ^7.0.1
"@types/newrelic": ^7.0.3
"@types/prettyjson": ^0.0.29
"@types/uuid": ^8.3.0
"@typescript-eslint/eslint-plugin": ^5.29.0
@@ -2106,7 +2065,7 @@ __metadata:
ioredis: ^5.0.6
jest: ^28.1.1
jsonwebtoken: ^8.5.1
newrelic: ^7.3.1
newrelic: ^8.14.1
nodemon: ^2.0.16
prettyjson: ^1.2.1
reflect-metadata: ^0.1.13
@@ -2154,16 +2113,16 @@ __metadata:
version: 0.0.0-use.local
resolution: "@standardnotes/scheduler-server@workspace:packages/scheduler"
dependencies:
"@newrelic/native-metrics": 7.0.2
"@newrelic/winston-enricher": ^2.1.0
"@sentry/node": ^7.3.0
"@standardnotes/common": ^1.23.0
"@standardnotes/domain-events": ^2.32.0
"@standardnotes/domain-events": ^2.32.3
"@standardnotes/domain-events-infra": ^1.5.0
"@standardnotes/scheduler": ^1.1.0
"@standardnotes/time": ^1.7.0
"@types/ioredis": ^4.28.10
"@types/jest": ^28.1.2
"@types/newrelic": ^7.0.2
"@types/newrelic": ^7.0.3
"@types/node": ^18.0.0
"@typescript-eslint/eslint-plugin": ^5.29.0
aws-sdk: ^2.1158.0
@@ -2174,7 +2133,7 @@ __metadata:
ioredis: ^5.0.6
jest: ^28.1.1
mysql2: ^2.3.3
newrelic: 8.6.0
newrelic: ^8.14.1
reflect-metadata: ^0.1.13
ts-jest: ^28.0.5
typeorm: ^0.3.6
@@ -2191,6 +2150,15 @@ __metadata:
languageName: node
linkType: hard
"@standardnotes/scheduler@npm:^1.1.2":
version: 1.1.2
resolution: "@standardnotes/scheduler@npm:1.1.2"
dependencies:
"@standardnotes/common": ^1.23.1
checksum: 68642a08741aeb4936e4a69e43e2b85e5cbfa3ce60006d292cee517d33093edaf35a6a7af61343d85ab3474d6e980a073a2779f6e0b1f11805ab06a407b15ce7
languageName: node
linkType: hard
"@standardnotes/server-monorepo@workspace:.":
version: 0.0.0-use.local
resolution: "@standardnotes/server-monorepo@workspace:."
@@ -2200,11 +2168,14 @@ __metadata:
"@lerna-lite/cli": ^1.5.1
"@lerna-lite/list": ^1.5.1
"@lerna-lite/run": ^1.5.1
"@sentry/node": ^7.3.0
"@types/jest": ^28.1.3
"@types/newrelic": ^7.0.3
"@types/node": ^18.0.0
"@typescript-eslint/parser": ^5.29.0
eslint: ^8.17.0
eslint-config-prettier: ^8.5.0
newrelic: ^8.14.1
prettier: ^2.7.1
ts-node: ^10.8.1
typescript: ^4.7.4
@@ -2224,13 +2195,20 @@ __metadata:
languageName: node
linkType: hard
"@standardnotes/settings@npm:1.14.3, @standardnotes/settings@npm:^1.14.2":
"@standardnotes/settings@npm:1.14.3":
version: 1.14.3
resolution: "@standardnotes/settings@npm:1.14.3"
checksum: 60fbb2ca856083b1afdf3a93cfb2729151c8a4a34f02564a8a814a7caad9982285303ad79ffb1da7643046061a6efe39410e57e8e4703a8963be8dc0ffabeaa6
languageName: node
linkType: hard
"@standardnotes/settings@npm:^1.15.0":
version: 1.15.0
resolution: "@standardnotes/settings@npm:1.15.0"
checksum: 4397d453a1a0cd5554012a5bf5ee2025c102ffc6d742841eecd2ab9cd46b0fbfe78da61b401451646274887d92801cafcef4c283bbfc6074b4d152103e15f861
languageName: node
linkType: hard
"@standardnotes/sncrypto-common@npm:^1.3.0, @standardnotes/sncrypto-common@npm:^1.8.1, @standardnotes/sncrypto-common@npm:^1.9.0":
version: 1.9.0
resolution: "@standardnotes/sncrypto-common@npm:1.9.0"
@@ -2251,9 +2229,8 @@ __metadata:
version: 0.0.0-use.local
resolution: "@standardnotes/syncing-server@workspace:packages/syncing-server"
dependencies:
"@newrelic/native-metrics": 7.0.2
"@newrelic/winston-enricher": ^2.1.0
"@sentry/node": ^6.16.1
"@sentry/node": ^7.3.0
"@standardnotes/analytics": ^1.6.0
"@standardnotes/auth": ^3.19.2
"@standardnotes/common": ^1.22.0
@@ -2270,7 +2247,7 @@ __metadata:
"@types/ioredis": ^4.28.10
"@types/jest": ^28.1.3
"@types/jsonwebtoken": ^8.5.0
"@types/newrelic": ^7.0.2
"@types/newrelic": ^7.0.3
"@types/prettyjson": ^0.0.29
"@types/ua-parser-js": ^0.7.36
"@types/uuid": ^8.3.0
@@ -2289,7 +2266,7 @@ __metadata:
jest: ^28.1.1
jsonwebtoken: 8.5.1
mysql2: ^2.3.3
newrelic: 8.6.0
newrelic: ^8.14.1
nodemon: 2.0.7
prettyjson: 1.2.1
reflect-metadata: 0.1.13
@@ -2636,7 +2613,7 @@ __metadata:
languageName: node
linkType: hard
"@types/newrelic@npm:^7.0.1, @types/newrelic@npm:^7.0.2":
"@types/newrelic@npm:^7.0.3":
version: 7.0.3
resolution: "@types/newrelic@npm:7.0.3"
checksum: 31156f61c5cf6c22e3cd227966499d758e4af278a2b0097194578feee9579339473f7a08b07556530046a2f64ba449656a220a553116b475c4bbd8cca177dfd3
@@ -3042,13 +3019,6 @@ __metadata:
languageName: node
linkType: hard
"agent-base@npm:5":
version: 5.1.1
resolution: "agent-base@npm:5.1.1"
checksum: 61ae789f3019f1dc10e8cba6d3ae9826949299a4e54aaa1cfa2fa37c95a108e70e95423b963bb987d7891a703fd9a5c383a506f4901819f3ee56f3147c0aa8ab
languageName: node
linkType: hard
"agent-base@npm:6, agent-base@npm:^6.0.2":
version: 6.0.2
resolution: "agent-base@npm:6.0.2"
@@ -3247,7 +3217,7 @@ __metadata:
languageName: node
linkType: hard
"async@npm:^3.1.0, async@npm:^3.2.0, async@npm:^3.2.3, async@npm:^3.2.4":
"async@npm:^3.1.0, async@npm:^3.2.3, async@npm:^3.2.4":
version: 3.2.4
resolution: "async@npm:3.2.4"
checksum: 43d07459a4e1d09b84a20772414aa684ff4de085cbcaec6eea3c7a8f8150e8c62aa6cd4e699fe8ee93c3a5b324e777d34642531875a0817a35697522c1b02e89
@@ -5930,16 +5900,6 @@ __metadata:
languageName: node
linkType: hard
"https-proxy-agent@npm:^4.0.0":
version: 4.0.0
resolution: "https-proxy-agent@npm:4.0.0"
dependencies:
agent-base: 5
debug: 4
checksum: 19471d5aae3e747b1c98b17556647e2a1362e68220c6b19585a8527498f32e62e03c41d2872d059d8720d56846bd7460a80ac06f876bccfa786468ff40dd5eef
languageName: node
linkType: hard
"https-proxy-agent@npm:^5.0.0":
version: 5.0.1
resolution: "https-proxy-agent@npm:5.0.1"
@@ -7584,7 +7544,7 @@ __metadata:
languageName: node
linkType: hard
"methods@npm:^1.1.2, methods@npm:~1.1.2":
"methods@npm:~1.1.2":
version: 1.1.2
resolution: "methods@npm:1.1.2"
checksum: 0917ff4041fa8e2f2fda5425a955fe16ca411591fbd123c0d722fcf02b73971ed6f764d85f0a6f547ce49ee0221ce2c19a5fa692157931cecb422984f1dcd13a
@@ -7889,7 +7849,7 @@ __metadata:
languageName: node
linkType: hard
"nan@npm:^2.14.2, nan@npm:^2.15.0":
"nan@npm:^2.15.0":
version: 2.16.0
resolution: "nan@npm:2.16.0"
dependencies:
@@ -7919,59 +7879,7 @@ __metadata:
languageName: node
linkType: hard
"newrelic@npm:8.6.0":
version: 8.6.0
resolution: "newrelic@npm:8.6.0"
dependencies:
"@grpc/grpc-js": ^1.2.11
"@grpc/proto-loader": ^0.5.6
"@newrelic/aws-sdk": ^4.0.1
"@newrelic/koa": ^6.0.1
"@newrelic/native-metrics": ^7.0.1
"@newrelic/superagent": ^5.0.1
"@tyriar/fibonacci-heap": ^2.0.7
async: ^3.2.0
concat-stream: ^2.0.0
https-proxy-agent: ^5.0.0
json-stringify-safe: ^5.0.0
readable-stream: ^3.6.0
semver: ^5.3.0
dependenciesMeta:
"@newrelic/native-metrics":
optional: true
bin:
newrelic-naming-rules: bin/test-naming-rules.js
checksum: 083b65ce8b01b365e901ca3fe989d55fad10157af9df62f3b8b6d2204bedc5b08abde9c1aec4cb8bc0682b60083b1cdc03febd8d95d5f6ee4199aaca4cad24be
languageName: node
linkType: hard
"newrelic@npm:^7.3.1":
version: 7.5.2
resolution: "newrelic@npm:7.5.2"
dependencies:
"@grpc/grpc-js": ^1.2.11
"@grpc/proto-loader": ^0.5.6
"@newrelic/aws-sdk": ^3.1.0
"@newrelic/koa": ^5.0.0
"@newrelic/native-metrics": ^6.0.0
"@newrelic/superagent": ^4.0.0
"@tyriar/fibonacci-heap": ^2.0.7
async: ^3.2.0
concat-stream: ^2.0.0
https-proxy-agent: ^4.0.0
json-stringify-safe: ^5.0.0
readable-stream: ^3.6.0
semver: ^5.3.0
dependenciesMeta:
"@newrelic/native-metrics":
optional: true
bin:
newrelic-naming-rules: bin/test-naming-rules.js
checksum: f6c67dbb7dfc265eaf46ece7bb5fc0fdab4cdb84010be724f52e5d903474d1c108a35f743a801c0f9ef2a3fa9d1c1c17a1b32bf091f3d4f1fcd323d8130a1e36
languageName: node
linkType: hard
"newrelic@npm:^8.8.0":
"newrelic@npm:^8.14.1, newrelic@npm:^8.8.0":
version: 8.14.1
resolution: "newrelic@npm:8.14.1"
dependencies:
@@ -8926,7 +8834,7 @@ __metadata:
languageName: node
linkType: hard
"protobufjs@npm:^6.11.3, protobufjs@npm:^6.8.6":
"protobufjs@npm:^6.11.3":
version: 6.11.3
resolution: "protobufjs@npm:6.11.3"
dependencies: