mirror of
https://github.com/standardnotes/server
synced 2026-06-02 05:38:53 -04:00
Compare commits
20 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6f07aaf87a | |||
| 634e8bd2d0 | |||
| 6853dfbf66 | |||
| 136cf252a1 | |||
| cad28ebba5 | |||
| 460fdf9eaf | |||
| bec1b502ad | |||
| 70bbf11db5 | |||
| c00c7becae | |||
| 89dc6c19bf | |||
| 972a91d59f | |||
| 045358ddbf | |||
| c7217a92ba | |||
| 3da7a21cde | |||
| 351e18f638 | |||
| 4f2129c4e0 | |||
| d7a1c667dd | |||
| 4de0bfa36d | |||
| 0443de88ce | |||
| f830bac873 |
+1
-1
@@ -27,4 +27,4 @@ AUTH_JWT_SECRET=f95259c5e441f5a4646d76422cfb3df4c4488842901aa50b6c51b8be2e0040e9
|
||||
AUTH_SERVER_ENCRYPTION_SERVER_KEY=1087415dfde3093797f9a7ca93a49e7d7aa1861735eb0d32aae9c303b8c3d060
|
||||
VALET_TOKEN_SECRET=4b886819ebe1e908077c6cae96311b48a8416bd60cc91c03060e15bdf6b30d1f
|
||||
|
||||
SYNCING_SERVER_CONTENT_SIZE_TRANSFER_LIMIT=1000000
|
||||
SYNCING_SERVER_CONTENT_SIZE_TRANSFER_LIMIT=100000
|
||||
|
||||
@@ -70,7 +70,7 @@ jobs:
|
||||
echo "ACCESS_TOKEN_AGE=4" >> packages/home-server/.env
|
||||
echo "REFRESH_TOKEN_AGE=10" >> packages/home-server/.env
|
||||
echo "REVISIONS_FREQUENCY=2" >> packages/home-server/.env
|
||||
echo "CONTENT_SIZE_TRANSFER_LIMIT=1000000" >> packages/home-server/.env
|
||||
echo "CONTENT_SIZE_TRANSFER_LIMIT=100000" >> packages/home-server/.env
|
||||
echo "DB_HOST=localhost" >> packages/home-server/.env
|
||||
echo "DB_PORT=3306" >> packages/home-server/.env
|
||||
echo "DB_DATABASE=standardnotes" >> packages/home-server/.env
|
||||
|
||||
@@ -466,6 +466,54 @@ const RAW_RUNTIME_STATE =
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}],\
|
||||
["npm:3.490.0", {\
|
||||
"packageLocation": "./.yarn/cache/@aws-sdk-client-sns-npm-3.490.0-2cd839225d-4d8875521c.zip/node_modules/@aws-sdk/client-sns/",\
|
||||
"packageDependencies": [\
|
||||
["@aws-sdk/client-sns", "npm:3.490.0"],\
|
||||
["@aws-crypto/sha256-browser", "npm:3.0.0"],\
|
||||
["@aws-crypto/sha256-js", "npm:3.0.0"],\
|
||||
["@aws-sdk/client-sts", "npm:3.490.0"],\
|
||||
["@aws-sdk/core", "npm:3.490.0"],\
|
||||
["@aws-sdk/credential-provider-node", "npm:3.490.0"],\
|
||||
["@aws-sdk/middleware-host-header", "npm:3.489.0"],\
|
||||
["@aws-sdk/middleware-logger", "npm:3.489.0"],\
|
||||
["@aws-sdk/middleware-recursion-detection", "npm:3.489.0"],\
|
||||
["@aws-sdk/middleware-signing", "npm:3.489.0"],\
|
||||
["@aws-sdk/middleware-user-agent", "npm:3.489.0"],\
|
||||
["@aws-sdk/region-config-resolver", "npm:3.489.0"],\
|
||||
["@aws-sdk/types", "npm:3.489.0"],\
|
||||
["@aws-sdk/util-endpoints", "npm:3.489.0"],\
|
||||
["@aws-sdk/util-user-agent-browser", "npm:3.489.0"],\
|
||||
["@aws-sdk/util-user-agent-node", "virtual:26ec4a89785e0643103d1dd3b2a86d8c63d7fd76dbfb0e516f1dc429fef4581a7306b382504a8b85e8fb995888356d6341786deec607cb64b29957c728540295#npm:3.489.0"],\
|
||||
["@smithy/config-resolver", "npm:2.0.23"],\
|
||||
["@smithy/core", "npm:1.2.2"],\
|
||||
["@smithy/fetch-http-handler", "npm:2.3.2"],\
|
||||
["@smithy/hash-node", "npm:2.0.18"],\
|
||||
["@smithy/invalid-dependency", "npm:2.0.16"],\
|
||||
["@smithy/middleware-content-length", "npm:2.0.18"],\
|
||||
["@smithy/middleware-endpoint", "npm:2.3.0"],\
|
||||
["@smithy/middleware-retry", "npm:2.0.26"],\
|
||||
["@smithy/middleware-serde", "npm:2.0.16"],\
|
||||
["@smithy/middleware-stack", "npm:2.0.10"],\
|
||||
["@smithy/node-config-provider", "npm:2.1.9"],\
|
||||
["@smithy/node-http-handler", "npm:2.2.2"],\
|
||||
["@smithy/protocol-http", "npm:3.0.12"],\
|
||||
["@smithy/smithy-client", "npm:2.2.1"],\
|
||||
["@smithy/types", "npm:2.8.0"],\
|
||||
["@smithy/url-parser", "npm:2.0.16"],\
|
||||
["@smithy/util-base64", "npm:2.0.1"],\
|
||||
["@smithy/util-body-length-browser", "npm:2.0.1"],\
|
||||
["@smithy/util-body-length-node", "npm:2.1.0"],\
|
||||
["@smithy/util-defaults-mode-browser", "npm:2.0.24"],\
|
||||
["@smithy/util-defaults-mode-node", "npm:2.0.32"],\
|
||||
["@smithy/util-endpoints", "npm:1.0.8"],\
|
||||
["@smithy/util-retry", "npm:2.0.9"],\
|
||||
["@smithy/util-utf8", "npm:2.0.2"],\
|
||||
["fast-xml-parser", "npm:4.2.5"],\
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["@aws-sdk/client-sqs", [\
|
||||
@@ -607,6 +655,50 @@ const RAW_RUNTIME_STATE =
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}],\
|
||||
["npm:3.490.0", {\
|
||||
"packageLocation": "./.yarn/cache/@aws-sdk-client-sso-npm-3.490.0-26ec4a8978-785147e3c2.zip/node_modules/@aws-sdk/client-sso/",\
|
||||
"packageDependencies": [\
|
||||
["@aws-sdk/client-sso", "npm:3.490.0"],\
|
||||
["@aws-crypto/sha256-browser", "npm:3.0.0"],\
|
||||
["@aws-crypto/sha256-js", "npm:3.0.0"],\
|
||||
["@aws-sdk/core", "npm:3.490.0"],\
|
||||
["@aws-sdk/middleware-host-header", "npm:3.489.0"],\
|
||||
["@aws-sdk/middleware-logger", "npm:3.489.0"],\
|
||||
["@aws-sdk/middleware-recursion-detection", "npm:3.489.0"],\
|
||||
["@aws-sdk/middleware-user-agent", "npm:3.489.0"],\
|
||||
["@aws-sdk/region-config-resolver", "npm:3.489.0"],\
|
||||
["@aws-sdk/types", "npm:3.489.0"],\
|
||||
["@aws-sdk/util-endpoints", "npm:3.489.0"],\
|
||||
["@aws-sdk/util-user-agent-browser", "npm:3.489.0"],\
|
||||
["@aws-sdk/util-user-agent-node", "virtual:26ec4a89785e0643103d1dd3b2a86d8c63d7fd76dbfb0e516f1dc429fef4581a7306b382504a8b85e8fb995888356d6341786deec607cb64b29957c728540295#npm:3.489.0"],\
|
||||
["@smithy/config-resolver", "npm:2.0.23"],\
|
||||
["@smithy/core", "npm:1.2.2"],\
|
||||
["@smithy/fetch-http-handler", "npm:2.3.2"],\
|
||||
["@smithy/hash-node", "npm:2.0.18"],\
|
||||
["@smithy/invalid-dependency", "npm:2.0.16"],\
|
||||
["@smithy/middleware-content-length", "npm:2.0.18"],\
|
||||
["@smithy/middleware-endpoint", "npm:2.3.0"],\
|
||||
["@smithy/middleware-retry", "npm:2.0.26"],\
|
||||
["@smithy/middleware-serde", "npm:2.0.16"],\
|
||||
["@smithy/middleware-stack", "npm:2.0.10"],\
|
||||
["@smithy/node-config-provider", "npm:2.1.9"],\
|
||||
["@smithy/node-http-handler", "npm:2.2.2"],\
|
||||
["@smithy/protocol-http", "npm:3.0.12"],\
|
||||
["@smithy/smithy-client", "npm:2.2.1"],\
|
||||
["@smithy/types", "npm:2.8.0"],\
|
||||
["@smithy/url-parser", "npm:2.0.16"],\
|
||||
["@smithy/util-base64", "npm:2.0.1"],\
|
||||
["@smithy/util-body-length-browser", "npm:2.0.1"],\
|
||||
["@smithy/util-body-length-node", "npm:2.1.0"],\
|
||||
["@smithy/util-defaults-mode-browser", "npm:2.0.24"],\
|
||||
["@smithy/util-defaults-mode-node", "npm:2.0.32"],\
|
||||
["@smithy/util-endpoints", "npm:1.0.8"],\
|
||||
["@smithy/util-retry", "npm:2.0.9"],\
|
||||
["@smithy/util-utf8", "npm:2.0.2"],\
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["@aws-sdk/client-sts", [\
|
||||
@@ -703,6 +795,53 @@ const RAW_RUNTIME_STATE =
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}],\
|
||||
["npm:3.490.0", {\
|
||||
"packageLocation": "./.yarn/cache/@aws-sdk-client-sts-npm-3.490.0-f3cd7f7c70-19d1b98694.zip/node_modules/@aws-sdk/client-sts/",\
|
||||
"packageDependencies": [\
|
||||
["@aws-sdk/client-sts", "npm:3.490.0"],\
|
||||
["@aws-crypto/sha256-browser", "npm:3.0.0"],\
|
||||
["@aws-crypto/sha256-js", "npm:3.0.0"],\
|
||||
["@aws-sdk/core", "npm:3.490.0"],\
|
||||
["@aws-sdk/credential-provider-node", "npm:3.490.0"],\
|
||||
["@aws-sdk/middleware-host-header", "npm:3.489.0"],\
|
||||
["@aws-sdk/middleware-logger", "npm:3.489.0"],\
|
||||
["@aws-sdk/middleware-recursion-detection", "npm:3.489.0"],\
|
||||
["@aws-sdk/middleware-user-agent", "npm:3.489.0"],\
|
||||
["@aws-sdk/region-config-resolver", "npm:3.489.0"],\
|
||||
["@aws-sdk/types", "npm:3.489.0"],\
|
||||
["@aws-sdk/util-endpoints", "npm:3.489.0"],\
|
||||
["@aws-sdk/util-user-agent-browser", "npm:3.489.0"],\
|
||||
["@aws-sdk/util-user-agent-node", "virtual:26ec4a89785e0643103d1dd3b2a86d8c63d7fd76dbfb0e516f1dc429fef4581a7306b382504a8b85e8fb995888356d6341786deec607cb64b29957c728540295#npm:3.489.0"],\
|
||||
["@smithy/config-resolver", "npm:2.0.23"],\
|
||||
["@smithy/core", "npm:1.2.2"],\
|
||||
["@smithy/fetch-http-handler", "npm:2.3.2"],\
|
||||
["@smithy/hash-node", "npm:2.0.18"],\
|
||||
["@smithy/invalid-dependency", "npm:2.0.16"],\
|
||||
["@smithy/middleware-content-length", "npm:2.0.18"],\
|
||||
["@smithy/middleware-endpoint", "npm:2.3.0"],\
|
||||
["@smithy/middleware-retry", "npm:2.0.26"],\
|
||||
["@smithy/middleware-serde", "npm:2.0.16"],\
|
||||
["@smithy/middleware-stack", "npm:2.0.10"],\
|
||||
["@smithy/node-config-provider", "npm:2.1.9"],\
|
||||
["@smithy/node-http-handler", "npm:2.2.2"],\
|
||||
["@smithy/protocol-http", "npm:3.0.12"],\
|
||||
["@smithy/smithy-client", "npm:2.2.1"],\
|
||||
["@smithy/types", "npm:2.8.0"],\
|
||||
["@smithy/url-parser", "npm:2.0.16"],\
|
||||
["@smithy/util-base64", "npm:2.0.1"],\
|
||||
["@smithy/util-body-length-browser", "npm:2.0.1"],\
|
||||
["@smithy/util-body-length-node", "npm:2.1.0"],\
|
||||
["@smithy/util-defaults-mode-browser", "npm:2.0.24"],\
|
||||
["@smithy/util-defaults-mode-node", "npm:2.0.32"],\
|
||||
["@smithy/util-endpoints", "npm:1.0.8"],\
|
||||
["@smithy/util-middleware", "npm:2.0.9"],\
|
||||
["@smithy/util-retry", "npm:2.0.9"],\
|
||||
["@smithy/util-utf8", "npm:2.0.2"],\
|
||||
["fast-xml-parser", "npm:4.2.5"],\
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["@aws-sdk/core", [\
|
||||
@@ -731,6 +870,19 @@ const RAW_RUNTIME_STATE =
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}],\
|
||||
["npm:3.490.0", {\
|
||||
"packageLocation": "./.yarn/cache/@aws-sdk-core-npm-3.490.0-3725a806be-3e81f37825.zip/node_modules/@aws-sdk/core/",\
|
||||
"packageDependencies": [\
|
||||
["@aws-sdk/core", "npm:3.490.0"],\
|
||||
["@smithy/core", "npm:1.2.2"],\
|
||||
["@smithy/protocol-http", "npm:3.0.12"],\
|
||||
["@smithy/signature-v4", "npm:2.0.5"],\
|
||||
["@smithy/smithy-client", "npm:2.2.1"],\
|
||||
["@smithy/types", "npm:2.8.0"],\
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["@aws-sdk/credential-provider-env", [\
|
||||
@@ -755,6 +907,17 @@ const RAW_RUNTIME_STATE =
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}],\
|
||||
["npm:3.489.0", {\
|
||||
"packageLocation": "./.yarn/cache/@aws-sdk-credential-provider-env-npm-3.489.0-e86b20f5e4-95ab96ee49.zip/node_modules/@aws-sdk/credential-provider-env/",\
|
||||
"packageDependencies": [\
|
||||
["@aws-sdk/credential-provider-env", "npm:3.489.0"],\
|
||||
["@aws-sdk/types", "npm:3.489.0"],\
|
||||
["@smithy/property-provider", "npm:2.0.5"],\
|
||||
["@smithy/types", "npm:2.8.0"],\
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["@aws-sdk/credential-provider-ini", [\
|
||||
@@ -791,6 +954,23 @@ const RAW_RUNTIME_STATE =
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}],\
|
||||
["npm:3.490.0", {\
|
||||
"packageLocation": "./.yarn/cache/@aws-sdk-credential-provider-ini-npm-3.490.0-51f9d0faff-4e4cd2633a.zip/node_modules/@aws-sdk/credential-provider-ini/",\
|
||||
"packageDependencies": [\
|
||||
["@aws-sdk/credential-provider-ini", "npm:3.490.0"],\
|
||||
["@aws-sdk/credential-provider-env", "npm:3.489.0"],\
|
||||
["@aws-sdk/credential-provider-process", "npm:3.489.0"],\
|
||||
["@aws-sdk/credential-provider-sso", "npm:3.490.0"],\
|
||||
["@aws-sdk/credential-provider-web-identity", "npm:3.489.0"],\
|
||||
["@aws-sdk/types", "npm:3.489.0"],\
|
||||
["@smithy/credential-provider-imds", "npm:2.0.5"],\
|
||||
["@smithy/property-provider", "npm:2.0.5"],\
|
||||
["@smithy/shared-ini-file-loader", "npm:2.0.6"],\
|
||||
["@smithy/types", "npm:2.8.0"],\
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["@aws-sdk/credential-provider-node", [\
|
||||
@@ -829,6 +1009,24 @@ const RAW_RUNTIME_STATE =
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}],\
|
||||
["npm:3.490.0", {\
|
||||
"packageLocation": "./.yarn/cache/@aws-sdk-credential-provider-node-npm-3.490.0-3cbe0ec5e6-2f8141c3e1.zip/node_modules/@aws-sdk/credential-provider-node/",\
|
||||
"packageDependencies": [\
|
||||
["@aws-sdk/credential-provider-node", "npm:3.490.0"],\
|
||||
["@aws-sdk/credential-provider-env", "npm:3.489.0"],\
|
||||
["@aws-sdk/credential-provider-ini", "npm:3.490.0"],\
|
||||
["@aws-sdk/credential-provider-process", "npm:3.489.0"],\
|
||||
["@aws-sdk/credential-provider-sso", "npm:3.490.0"],\
|
||||
["@aws-sdk/credential-provider-web-identity", "npm:3.489.0"],\
|
||||
["@aws-sdk/types", "npm:3.489.0"],\
|
||||
["@smithy/credential-provider-imds", "npm:2.0.5"],\
|
||||
["@smithy/property-provider", "npm:2.0.5"],\
|
||||
["@smithy/shared-ini-file-loader", "npm:2.0.6"],\
|
||||
["@smithy/types", "npm:2.8.0"],\
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["@aws-sdk/credential-provider-process", [\
|
||||
@@ -855,6 +1053,18 @@ const RAW_RUNTIME_STATE =
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}],\
|
||||
["npm:3.489.0", {\
|
||||
"packageLocation": "./.yarn/cache/@aws-sdk-credential-provider-process-npm-3.489.0-9370bfd061-42f4f5f21d.zip/node_modules/@aws-sdk/credential-provider-process/",\
|
||||
"packageDependencies": [\
|
||||
["@aws-sdk/credential-provider-process", "npm:3.489.0"],\
|
||||
["@aws-sdk/types", "npm:3.489.0"],\
|
||||
["@smithy/property-provider", "npm:2.0.5"],\
|
||||
["@smithy/shared-ini-file-loader", "npm:2.0.6"],\
|
||||
["@smithy/types", "npm:2.8.0"],\
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["@aws-sdk/credential-provider-sso", [\
|
||||
@@ -885,6 +1095,20 @@ const RAW_RUNTIME_STATE =
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}],\
|
||||
["npm:3.490.0", {\
|
||||
"packageLocation": "./.yarn/cache/@aws-sdk-credential-provider-sso-npm-3.490.0-9acb6828c0-ef2eff8fbc.zip/node_modules/@aws-sdk/credential-provider-sso/",\
|
||||
"packageDependencies": [\
|
||||
["@aws-sdk/credential-provider-sso", "npm:3.490.0"],\
|
||||
["@aws-sdk/client-sso", "npm:3.490.0"],\
|
||||
["@aws-sdk/token-providers", "npm:3.489.0"],\
|
||||
["@aws-sdk/types", "npm:3.489.0"],\
|
||||
["@smithy/property-provider", "npm:2.0.5"],\
|
||||
["@smithy/shared-ini-file-loader", "npm:2.0.6"],\
|
||||
["@smithy/types", "npm:2.8.0"],\
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["@aws-sdk/credential-provider-web-identity", [\
|
||||
@@ -909,6 +1133,17 @@ const RAW_RUNTIME_STATE =
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}],\
|
||||
["npm:3.489.0", {\
|
||||
"packageLocation": "./.yarn/cache/@aws-sdk-credential-provider-web-identity-npm-3.489.0-002a8c8ade-911bc3fd28.zip/node_modules/@aws-sdk/credential-provider-web-identity/",\
|
||||
"packageDependencies": [\
|
||||
["@aws-sdk/credential-provider-web-identity", "npm:3.489.0"],\
|
||||
["@aws-sdk/types", "npm:3.489.0"],\
|
||||
["@smithy/property-provider", "npm:2.0.5"],\
|
||||
["@smithy/types", "npm:2.8.0"],\
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["@aws-sdk/middleware-bucket-endpoint", [\
|
||||
@@ -979,6 +1214,17 @@ const RAW_RUNTIME_STATE =
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}],\
|
||||
["npm:3.489.0", {\
|
||||
"packageLocation": "./.yarn/cache/@aws-sdk-middleware-host-header-npm-3.489.0-10c65ea2e3-3f80f71691.zip/node_modules/@aws-sdk/middleware-host-header/",\
|
||||
"packageDependencies": [\
|
||||
["@aws-sdk/middleware-host-header", "npm:3.489.0"],\
|
||||
["@aws-sdk/types", "npm:3.489.0"],\
|
||||
["@smithy/protocol-http", "npm:3.0.12"],\
|
||||
["@smithy/types", "npm:2.8.0"],\
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["@aws-sdk/middleware-location-constraint", [\
|
||||
@@ -1013,6 +1259,16 @@ const RAW_RUNTIME_STATE =
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}],\
|
||||
["npm:3.489.0", {\
|
||||
"packageLocation": "./.yarn/cache/@aws-sdk-middleware-logger-npm-3.489.0-ba04fd0161-0bbf9d08c7.zip/node_modules/@aws-sdk/middleware-logger/",\
|
||||
"packageDependencies": [\
|
||||
["@aws-sdk/middleware-logger", "npm:3.489.0"],\
|
||||
["@aws-sdk/types", "npm:3.489.0"],\
|
||||
["@smithy/types", "npm:2.8.0"],\
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["@aws-sdk/middleware-recursion-detection", [\
|
||||
@@ -1037,6 +1293,17 @@ const RAW_RUNTIME_STATE =
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}],\
|
||||
["npm:3.489.0", {\
|
||||
"packageLocation": "./.yarn/cache/@aws-sdk-middleware-recursion-detection-npm-3.489.0-2cefe5fc6b-91eb0b3b46.zip/node_modules/@aws-sdk/middleware-recursion-detection/",\
|
||||
"packageDependencies": [\
|
||||
["@aws-sdk/middleware-recursion-detection", "npm:3.489.0"],\
|
||||
["@aws-sdk/types", "npm:3.489.0"],\
|
||||
["@smithy/protocol-http", "npm:3.0.12"],\
|
||||
["@smithy/types", "npm:2.8.0"],\
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["@aws-sdk/middleware-sdk-s3", [\
|
||||
@@ -1099,6 +1366,20 @@ const RAW_RUNTIME_STATE =
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}],\
|
||||
["npm:3.489.0", {\
|
||||
"packageLocation": "./.yarn/cache/@aws-sdk-middleware-signing-npm-3.489.0-722d97a2fd-6fedba4569.zip/node_modules/@aws-sdk/middleware-signing/",\
|
||||
"packageDependencies": [\
|
||||
["@aws-sdk/middleware-signing", "npm:3.489.0"],\
|
||||
["@aws-sdk/types", "npm:3.489.0"],\
|
||||
["@smithy/property-provider", "npm:2.0.5"],\
|
||||
["@smithy/protocol-http", "npm:3.0.12"],\
|
||||
["@smithy/signature-v4", "npm:2.0.5"],\
|
||||
["@smithy/types", "npm:2.8.0"],\
|
||||
["@smithy/util-middleware", "npm:2.0.9"],\
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["@aws-sdk/middleware-ssec", [\
|
||||
@@ -1137,6 +1418,18 @@ const RAW_RUNTIME_STATE =
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}],\
|
||||
["npm:3.489.0", {\
|
||||
"packageLocation": "./.yarn/cache/@aws-sdk-middleware-user-agent-npm-3.489.0-4a9e57c5ff-51fc7a8a03.zip/node_modules/@aws-sdk/middleware-user-agent/",\
|
||||
"packageDependencies": [\
|
||||
["@aws-sdk/middleware-user-agent", "npm:3.489.0"],\
|
||||
["@aws-sdk/types", "npm:3.489.0"],\
|
||||
["@aws-sdk/util-endpoints", "npm:3.489.0"],\
|
||||
["@smithy/protocol-http", "npm:3.0.12"],\
|
||||
["@smithy/types", "npm:2.8.0"],\
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["@aws-sdk/region-config-resolver", [\
|
||||
@@ -1163,6 +1456,19 @@ const RAW_RUNTIME_STATE =
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}],\
|
||||
["npm:3.489.0", {\
|
||||
"packageLocation": "./.yarn/cache/@aws-sdk-region-config-resolver-npm-3.489.0-0721047a4a-045a630c94.zip/node_modules/@aws-sdk/region-config-resolver/",\
|
||||
"packageDependencies": [\
|
||||
["@aws-sdk/region-config-resolver", "npm:3.489.0"],\
|
||||
["@aws-sdk/types", "npm:3.489.0"],\
|
||||
["@smithy/node-config-provider", "npm:2.1.9"],\
|
||||
["@smithy/types", "npm:2.8.0"],\
|
||||
["@smithy/util-config-provider", "npm:2.1.0"],\
|
||||
["@smithy/util-middleware", "npm:2.0.9"],\
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["@aws-sdk/signature-v4-multi-region", [\
|
||||
@@ -1268,6 +1574,50 @@ const RAW_RUNTIME_STATE =
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}],\
|
||||
["npm:3.489.0", {\
|
||||
"packageLocation": "./.yarn/cache/@aws-sdk-token-providers-npm-3.489.0-05002406d6-ee7a20eff7.zip/node_modules/@aws-sdk/token-providers/",\
|
||||
"packageDependencies": [\
|
||||
["@aws-sdk/token-providers", "npm:3.489.0"],\
|
||||
["@aws-crypto/sha256-browser", "npm:3.0.0"],\
|
||||
["@aws-crypto/sha256-js", "npm:3.0.0"],\
|
||||
["@aws-sdk/middleware-host-header", "npm:3.489.0"],\
|
||||
["@aws-sdk/middleware-logger", "npm:3.489.0"],\
|
||||
["@aws-sdk/middleware-recursion-detection", "npm:3.489.0"],\
|
||||
["@aws-sdk/middleware-user-agent", "npm:3.489.0"],\
|
||||
["@aws-sdk/region-config-resolver", "npm:3.489.0"],\
|
||||
["@aws-sdk/types", "npm:3.489.0"],\
|
||||
["@aws-sdk/util-endpoints", "npm:3.489.0"],\
|
||||
["@aws-sdk/util-user-agent-browser", "npm:3.489.0"],\
|
||||
["@aws-sdk/util-user-agent-node", "virtual:26ec4a89785e0643103d1dd3b2a86d8c63d7fd76dbfb0e516f1dc429fef4581a7306b382504a8b85e8fb995888356d6341786deec607cb64b29957c728540295#npm:3.489.0"],\
|
||||
["@smithy/config-resolver", "npm:2.0.23"],\
|
||||
["@smithy/fetch-http-handler", "npm:2.3.2"],\
|
||||
["@smithy/hash-node", "npm:2.0.18"],\
|
||||
["@smithy/invalid-dependency", "npm:2.0.16"],\
|
||||
["@smithy/middleware-content-length", "npm:2.0.18"],\
|
||||
["@smithy/middleware-endpoint", "npm:2.3.0"],\
|
||||
["@smithy/middleware-retry", "npm:2.0.26"],\
|
||||
["@smithy/middleware-serde", "npm:2.0.16"],\
|
||||
["@smithy/middleware-stack", "npm:2.0.10"],\
|
||||
["@smithy/node-config-provider", "npm:2.1.9"],\
|
||||
["@smithy/node-http-handler", "npm:2.2.2"],\
|
||||
["@smithy/property-provider", "npm:2.0.5"],\
|
||||
["@smithy/protocol-http", "npm:3.0.12"],\
|
||||
["@smithy/shared-ini-file-loader", "npm:2.0.6"],\
|
||||
["@smithy/smithy-client", "npm:2.2.1"],\
|
||||
["@smithy/types", "npm:2.8.0"],\
|
||||
["@smithy/url-parser", "npm:2.0.16"],\
|
||||
["@smithy/util-base64", "npm:2.0.1"],\
|
||||
["@smithy/util-body-length-browser", "npm:2.0.1"],\
|
||||
["@smithy/util-body-length-node", "npm:2.1.0"],\
|
||||
["@smithy/util-defaults-mode-browser", "npm:2.0.24"],\
|
||||
["@smithy/util-defaults-mode-node", "npm:2.0.32"],\
|
||||
["@smithy/util-endpoints", "npm:1.0.8"],\
|
||||
["@smithy/util-retry", "npm:2.0.9"],\
|
||||
["@smithy/util-utf8", "npm:2.0.2"],\
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["@aws-sdk/types", [\
|
||||
@@ -1296,6 +1646,15 @@ const RAW_RUNTIME_STATE =
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}],\
|
||||
["npm:3.489.0", {\
|
||||
"packageLocation": "./.yarn/cache/@aws-sdk-types-npm-3.489.0-f0f748fbaa-48778dad14.zip/node_modules/@aws-sdk/types/",\
|
||||
"packageDependencies": [\
|
||||
["@aws-sdk/types", "npm:3.489.0"],\
|
||||
["@smithy/types", "npm:2.8.0"],\
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["@aws-sdk/util-arn-parser", [\
|
||||
@@ -1328,6 +1687,17 @@ const RAW_RUNTIME_STATE =
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}],\
|
||||
["npm:3.489.0", {\
|
||||
"packageLocation": "./.yarn/cache/@aws-sdk-util-endpoints-npm-3.489.0-1f2dd7e944-68f921982f.zip/node_modules/@aws-sdk/util-endpoints/",\
|
||||
"packageDependencies": [\
|
||||
["@aws-sdk/util-endpoints", "npm:3.489.0"],\
|
||||
["@aws-sdk/types", "npm:3.489.0"],\
|
||||
["@smithy/types", "npm:2.8.0"],\
|
||||
["@smithy/util-endpoints", "npm:1.0.8"],\
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["@aws-sdk/util-locate-window", [\
|
||||
@@ -1362,6 +1732,17 @@ const RAW_RUNTIME_STATE =
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}],\
|
||||
["npm:3.489.0", {\
|
||||
"packageLocation": "./.yarn/cache/@aws-sdk-util-user-agent-browser-npm-3.489.0-ffb94f7b1d-2bb414b8d8.zip/node_modules/@aws-sdk/util-user-agent-browser/",\
|
||||
"packageDependencies": [\
|
||||
["@aws-sdk/util-user-agent-browser", "npm:3.489.0"],\
|
||||
["@aws-sdk/types", "npm:3.489.0"],\
|
||||
["@smithy/types", "npm:2.8.0"],\
|
||||
["bowser", "npm:2.11.0"],\
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}]\
|
||||
]],\
|
||||
["@aws-sdk/util-user-agent-node", [\
|
||||
@@ -1379,6 +1760,30 @@ const RAW_RUNTIME_STATE =
|
||||
],\
|
||||
"linkType": "SOFT"\
|
||||
}],\
|
||||
["npm:3.489.0", {\
|
||||
"packageLocation": "./.yarn/cache/@aws-sdk-util-user-agent-node-npm-3.489.0-082349e8a9-95dc1e07b6.zip/node_modules/@aws-sdk/util-user-agent-node/",\
|
||||
"packageDependencies": [\
|
||||
["@aws-sdk/util-user-agent-node", "npm:3.489.0"]\
|
||||
],\
|
||||
"linkType": "SOFT"\
|
||||
}],\
|
||||
["virtual:26ec4a89785e0643103d1dd3b2a86d8c63d7fd76dbfb0e516f1dc429fef4581a7306b382504a8b85e8fb995888356d6341786deec607cb64b29957c728540295#npm:3.489.0", {\
|
||||
"packageLocation": "./.yarn/__virtual__/@aws-sdk-util-user-agent-node-virtual-73c334651c/0/cache/@aws-sdk-util-user-agent-node-npm-3.489.0-082349e8a9-95dc1e07b6.zip/node_modules/@aws-sdk/util-user-agent-node/",\
|
||||
"packageDependencies": [\
|
||||
["@aws-sdk/util-user-agent-node", "virtual:26ec4a89785e0643103d1dd3b2a86d8c63d7fd76dbfb0e516f1dc429fef4581a7306b382504a8b85e8fb995888356d6341786deec607cb64b29957c728540295#npm:3.489.0"],\
|
||||
["@aws-sdk/types", "npm:3.489.0"],\
|
||||
["@smithy/node-config-provider", "npm:2.1.9"],\
|
||||
["@smithy/types", "npm:2.8.0"],\
|
||||
["@types/aws-crt", null],\
|
||||
["aws-crt", null],\
|
||||
["tslib", "npm:2.5.2"]\
|
||||
],\
|
||||
"packagePeers": [\
|
||||
"@types/aws-crt",\
|
||||
"aws-crt"\
|
||||
],\
|
||||
"linkType": "HARD"\
|
||||
}],\
|
||||
["virtual:5f6733bd23aee10dd05576af160f1b93e0bb4a20b288e9b818dc0b69bdb08ea1a09d5836816f02bdafc9c01487816ae339c6b680c2f7849dfe249436c5f2b499#npm:3.485.0", {\
|
||||
"packageLocation": "./.yarn/__virtual__/@aws-sdk-util-user-agent-node-virtual-c26ab353dd/0/cache/@aws-sdk-util-user-agent-node-npm-3.485.0-7991a74cb3-e2805ef37b.zip/node_modules/@aws-sdk/util-user-agent-node/",\
|
||||
"packageDependencies": [\
|
||||
@@ -5983,6 +6388,7 @@ const RAW_RUNTIME_STATE =
|
||||
"packageLocation": "./packages/api-gateway/",\
|
||||
"packageDependencies": [\
|
||||
["@standardnotes/api-gateway", "workspace:packages/api-gateway"],\
|
||||
["@aws-sdk/client-sns", "npm:3.490.0"],\
|
||||
["@grpc/grpc-js", "npm:1.9.13"],\
|
||||
["@standardnotes/domain-core", "workspace:packages/domain-core"],\
|
||||
["@standardnotes/domain-events", "workspace:packages/domain-events"],\
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Vendored
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
@@ -3,6 +3,10 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [2.34.15](https://github.com/standardnotes/server/compare/@standardnotes/analytics@2.34.14...@standardnotes/analytics@2.34.15) (2024-01-18)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/analytics
|
||||
|
||||
## [2.34.14](https://github.com/standardnotes/server/compare/@standardnotes/analytics@2.34.13...@standardnotes/analytics@2.34.14) (2024-01-04)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/analytics
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/analytics",
|
||||
"version": "2.34.14",
|
||||
"version": "2.34.15",
|
||||
"engines": {
|
||||
"node": ">=18.0.0 <21.0.0"
|
||||
},
|
||||
|
||||
@@ -3,6 +3,18 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [1.90.0](https://github.com/standardnotes/server/compare/@standardnotes/api-gateway@1.89.20...@standardnotes/api-gateway@1.90.0) (2024-01-18)
|
||||
|
||||
### Features
|
||||
|
||||
* add content sizes fixing upon grpc resource exhausted error ([#1029](https://github.com/standardnotes/server/issues/1029)) ([634e8bd](https://github.com/standardnotes/server/commit/634e8bd2d0f055abbda1150587ab9a444281e600))
|
||||
|
||||
## [1.89.20](https://github.com/standardnotes/server/compare/@standardnotes/api-gateway@1.89.19...@standardnotes/api-gateway@1.89.20) (2024-01-18)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **api-gateway:** add codetag metadata to error logs ([136cf25](https://github.com/standardnotes/server/commit/136cf252a134efe7d99f79d8622c43dbebbb5ac8))
|
||||
|
||||
## [1.89.19](https://github.com/standardnotes/server/compare/@standardnotes/api-gateway@1.89.18...@standardnotes/api-gateway@1.89.19) (2024-01-10)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
@@ -99,6 +99,7 @@ void container.load().then((container) => {
|
||||
const locals = response.locals as ResponseLocals
|
||||
|
||||
logger.error(`${error.stack}`, {
|
||||
codeTag: 'server.ts',
|
||||
method: request.method,
|
||||
url: request.url,
|
||||
snjs: request.headers['x-snjs-version'],
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/api-gateway",
|
||||
"version": "1.89.19",
|
||||
"version": "1.90.0",
|
||||
"engines": {
|
||||
"node": ">=18.0.0 <21.0.0"
|
||||
},
|
||||
@@ -31,6 +31,7 @@
|
||||
"start": "yarn node dist/bin/server.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-sns": "^3.490.0",
|
||||
"@grpc/grpc-js": "^1.9.13",
|
||||
"@standardnotes/domain-core": "workspace:^",
|
||||
"@standardnotes/domain-events": "workspace:*",
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import * as winston from 'winston'
|
||||
import * as AgentKeepAlive from 'agentkeepalive'
|
||||
import * as grpc from '@grpc/grpc-js'
|
||||
import { SNSClient, SNSClientConfig } from '@aws-sdk/client-sns'
|
||||
import axios, { AxiosInstance } from 'axios'
|
||||
import Redis from 'ioredis'
|
||||
import { Container } from 'inversify'
|
||||
@@ -29,6 +30,10 @@ import { SyncResponseHttpRepresentation } from '../Mapping/Sync/Http/SyncRespons
|
||||
import { SyncRequestGRPCMapper } from '../Mapping/Sync/GRPC/SyncRequestGRPCMapper'
|
||||
import { SyncResponseGRPCMapper } from '../Mapping/Sync/GRPC/SyncResponseGRPCMapper'
|
||||
import { GRPCWebSocketAuthMiddleware } from '../Controller/GRPCWebSocketAuthMiddleware'
|
||||
import { DomainEventPublisherInterface } from '@standardnotes/domain-events'
|
||||
import { SNSDomainEventPublisher } from '@standardnotes/domain-events-infra'
|
||||
import { DomainEventFactoryInterface } from '../Event/DomainEventFactoryInterface'
|
||||
import { DomainEventFactory } from '../Event/DomainEventFactory'
|
||||
|
||||
export class ContainerConfigLoader {
|
||||
async load(configuration?: {
|
||||
@@ -51,6 +56,34 @@ export class ContainerConfigLoader {
|
||||
.bind<boolean>(TYPES.ApiGateway_IS_CONFIGURED_FOR_HOME_SERVER_OR_SELF_HOSTING)
|
||||
.toConstantValue(isConfiguredForHomeServerOrSelfHosting)
|
||||
|
||||
if (!isConfiguredForHomeServerOrSelfHosting) {
|
||||
const snsConfig: SNSClientConfig = {
|
||||
region: env.get('SNS_AWS_REGION', true),
|
||||
}
|
||||
if (env.get('SNS_ENDPOINT', true)) {
|
||||
snsConfig.endpoint = env.get('SNS_ENDPOINT', true)
|
||||
}
|
||||
if (env.get('SNS_ACCESS_KEY_ID', true) && env.get('SNS_SECRET_ACCESS_KEY', true)) {
|
||||
snsConfig.credentials = {
|
||||
accessKeyId: env.get('SNS_ACCESS_KEY_ID', true),
|
||||
secretAccessKey: env.get('SNS_SECRET_ACCESS_KEY', true),
|
||||
}
|
||||
}
|
||||
const snsClient = new SNSClient(snsConfig)
|
||||
container.bind<SNSClient>(TYPES.ApiGateway_SNS).toConstantValue(snsClient)
|
||||
|
||||
container.bind(TYPES.ApiGateway_SNS_TOPIC_ARN).toConstantValue(env.get('SNS_TOPIC_ARN', true))
|
||||
|
||||
container
|
||||
.bind<DomainEventPublisherInterface>(TYPES.ApiGateway_DomainEventPublisher)
|
||||
.toConstantValue(
|
||||
new SNSDomainEventPublisher(
|
||||
container.get(TYPES.ApiGateway_SNS),
|
||||
container.get(TYPES.ApiGateway_SNS_TOPIC_ARN),
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
const winstonFormatters = [winston.format.splat(), winston.format.json()]
|
||||
|
||||
let logger: winston.Logger
|
||||
@@ -192,6 +225,10 @@ export class ContainerConfigLoader {
|
||||
.bind<MapperInterface<SyncResponse, SyncResponseHttpRepresentation>>(TYPES.Mapper_SyncResponseGRPCMapper)
|
||||
.toConstantValue(new SyncResponseGRPCMapper())
|
||||
|
||||
container
|
||||
.bind<DomainEventFactoryInterface>(TYPES.ApiGateway_DomainEventFactory)
|
||||
.toConstantValue(new DomainEventFactory(container.get<TimerInterface>(TYPES.ApiGateway_Timer)))
|
||||
|
||||
container
|
||||
.bind<GRPCSyncingServerServiceProxy>(TYPES.ApiGateway_GRPCSyncingServerServiceProxy)
|
||||
.toConstantValue(
|
||||
@@ -202,6 +239,10 @@ export class ContainerConfigLoader {
|
||||
TYPES.Mapper_SyncResponseGRPCMapper,
|
||||
),
|
||||
container.get<winston.Logger>(TYPES.ApiGateway_Logger),
|
||||
container.get<DomainEventFactoryInterface>(TYPES.ApiGateway_DomainEventFactory),
|
||||
isConfiguredForHomeServerOrSelfHosting
|
||||
? undefined
|
||||
: container.get<DomainEventPublisherInterface>(TYPES.ApiGateway_DomainEventPublisher),
|
||||
),
|
||||
)
|
||||
container
|
||||
|
||||
@@ -2,7 +2,11 @@ export const TYPES = {
|
||||
ApiGateway_Logger: Symbol.for('ApiGateway_Logger'),
|
||||
ApiGateway_Redis: Symbol.for('ApiGateway_Redis'),
|
||||
ApiGateway_HTTPClient: Symbol.for('ApiGateway_HTTPClient'),
|
||||
ApiGateway_SNS: Symbol.for('ApiGateway_SNS'),
|
||||
ApiGateway_DomainEventPublisher: Symbol.for('ApiGateway_DomainEventPublisher'),
|
||||
// env vars
|
||||
ApiGateway_SNS_TOPIC_ARN: Symbol.for('ApiGateway_SNS_TOPIC_ARN'),
|
||||
ApiGateway_SNS_AWS_REGION: Symbol.for('ApiGateway_SNS_AWS_REGION'),
|
||||
ApiGateway_SYNCING_SERVER_JS_URL: Symbol.for('ApiGateway_SYNCING_SERVER_JS_URL'),
|
||||
ApiGateway_AUTH_SERVER_URL: Symbol.for('ApiGateway_AUTH_SERVER_URL'),
|
||||
ApiGateway_AUTH_SERVER_GRPC_URL: Symbol.for('ApiGateway_AUTH_SERVER_GRPC_URL'),
|
||||
@@ -29,6 +33,7 @@ export const TYPES = {
|
||||
Mapper_SyncRequestGRPCMapper: Symbol.for('Mapper_SyncRequestGRPCMapper'),
|
||||
Mapper_SyncResponseGRPCMapper: Symbol.for('Mapper_SyncResponseGRPCMapper'),
|
||||
// Services
|
||||
ApiGateway_DomainEventFactory: Symbol.for('ApiGateway_DomainEventFactory'),
|
||||
ApiGateway_GRPCSyncingServerServiceProxy: Symbol.for('ApiGateway_GRPCSyncingServerServiceProxy'),
|
||||
ApiGateway_ServiceProxy: Symbol.for('ApiGateway_ServiceProxy'),
|
||||
ApiGateway_CrossServiceTokenCache: Symbol.for('ApiGateway_CrossServiceTokenCache'),
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
import { TimerInterface } from '@standardnotes/time'
|
||||
|
||||
import { DomainEventFactoryInterface } from './DomainEventFactoryInterface'
|
||||
import { ContentSizesFixRequestedEvent, DomainEventService } from '@standardnotes/domain-events'
|
||||
|
||||
export class DomainEventFactory implements DomainEventFactoryInterface {
|
||||
constructor(private timer: TimerInterface) {}
|
||||
|
||||
createContentSizesFixRequestedEvent(dto: { userUuid: string }): ContentSizesFixRequestedEvent {
|
||||
return {
|
||||
type: 'CONTENT_SIZES_FIX_REQUESTED',
|
||||
createdAt: this.timer.getUTCDate(),
|
||||
meta: {
|
||||
correlation: {
|
||||
userIdentifier: dto.userUuid,
|
||||
userIdentifierType: 'uuid',
|
||||
},
|
||||
origin: DomainEventService.Auth,
|
||||
},
|
||||
payload: dto,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
import { ContentSizesFixRequestedEvent } from '@standardnotes/domain-events'
|
||||
|
||||
export interface DomainEventFactoryInterface {
|
||||
createContentSizesFixRequestedEvent(dto: { userUuid: string }): ContentSizesFixRequestedEvent
|
||||
}
|
||||
@@ -1,12 +1,14 @@
|
||||
import { Request, Response } from 'express'
|
||||
import { ISyncingClient, SyncRequest, SyncResponse } from '@standardnotes/grpc'
|
||||
import { DomainEventPublisherInterface } from '@standardnotes/domain-events'
|
||||
import { MapperInterface } from '@standardnotes/domain-core'
|
||||
import { Metadata } from '@grpc/grpc-js'
|
||||
|
||||
import { SyncResponseHttpRepresentation } from '../../Mapping/Sync/Http/SyncResponseHttpRepresentation'
|
||||
import { Status } from '@grpc/grpc-js/build/src/constants'
|
||||
import { Logger } from 'winston'
|
||||
|
||||
import { SyncResponseHttpRepresentation } from '../../Mapping/Sync/Http/SyncResponseHttpRepresentation'
|
||||
import { ResponseLocals } from '../../Controller/ResponseLocals'
|
||||
import { DomainEventFactoryInterface } from '../../Event/DomainEventFactoryInterface'
|
||||
|
||||
export class GRPCSyncingServerServiceProxy {
|
||||
constructor(
|
||||
@@ -14,6 +16,8 @@ export class GRPCSyncingServerServiceProxy {
|
||||
private syncRequestGRPCMapper: MapperInterface<Record<string, unknown>, SyncRequest>,
|
||||
private syncResponseGRPCMapper: MapperInterface<SyncResponse, SyncResponseHttpRepresentation>,
|
||||
private logger: Logger,
|
||||
private domainEventFactory: DomainEventFactoryInterface,
|
||||
private domainEventPublisher?: DomainEventPublisherInterface,
|
||||
) {}
|
||||
|
||||
async sync(
|
||||
@@ -59,6 +63,12 @@ export class GRPCSyncingServerServiceProxy {
|
||||
})
|
||||
}
|
||||
|
||||
if (error.code === Status.RESOURCE_EXHAUSTED && this.domainEventPublisher !== undefined) {
|
||||
void this.domainEventPublisher.publish(
|
||||
this.domainEventFactory.createContentSizesFixRequestedEvent({ userUuid: locals.user.uuid }),
|
||||
)
|
||||
}
|
||||
|
||||
return reject(error)
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,35 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.177.20](https://github.com/standardnotes/server/compare/@standardnotes/auth-server@1.177.19...@standardnotes/auth-server@1.177.20) (2024-01-18)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/auth-server
|
||||
|
||||
## [1.177.19](https://github.com/standardnotes/server/compare/@standardnotes/auth-server@1.177.18...@standardnotes/auth-server@1.177.19) (2024-01-17)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **auth:** add server daily email backup permission for all versions of core user role ([#1028](https://github.com/standardnotes/server/issues/1028)) ([460fdf9](https://github.com/standardnotes/server/commit/460fdf9eafe2db629637ba481f2b135ed21560b9))
|
||||
|
||||
## [1.177.18](https://github.com/standardnotes/server/compare/@standardnotes/auth-server@1.177.17...@standardnotes/auth-server@1.177.18) (2024-01-15)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **auth:** add more logs to syncing subscription ([c7217a9](https://github.com/standardnotes/server/commit/c7217a92ba89d8b5f4963a832aa7561dd146ca0d))
|
||||
* **auth:** add renewal for shared offline subscriptions ([045358d](https://github.com/standardnotes/server/commit/045358ddbf300996a23bba8d6945b1d7b5f6e862))
|
||||
|
||||
## [1.177.17](https://github.com/standardnotes/server/compare/@standardnotes/auth-server@1.177.16...@standardnotes/auth-server@1.177.17) (2024-01-15)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **auth:** add debug logs for subscription sync requested event ([351e18f](https://github.com/standardnotes/server/commit/351e18f6389c2dbaa2107e6549be9928c2e8834f))
|
||||
|
||||
## [1.177.16](https://github.com/standardnotes/server/compare/@standardnotes/auth-server@1.177.15...@standardnotes/auth-server@1.177.16) (2024-01-15)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **auth:** update shared subscriptions upon subscription sync ([#1022](https://github.com/standardnotes/server/issues/1022)) ([d7a1c66](https://github.com/standardnotes/server/commit/d7a1c667dd62dacc1ef15f2a4f408dc07045fcad))
|
||||
|
||||
## [1.177.15](https://github.com/standardnotes/server/compare/@standardnotes/auth-server@1.177.14...@standardnotes/auth-server@1.177.15) (2024-01-09)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
import { MigrationInterface, QueryRunner } from 'typeorm'
|
||||
|
||||
export class EnableEmailBackupsForAll1705493201352 implements MigrationInterface {
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
// Core User v1 Permissions
|
||||
await queryRunner.query(
|
||||
'INSERT INTO `role_permissions` (role_uuid, permission_uuid) VALUES \
|
||||
("bde42e26-628c-44e6-9d76-21b08954b0bf", "eb0575a2-6e26-49e3-9501-f2e75d7dbda3") \
|
||||
',
|
||||
)
|
||||
// Core User v2 Permissions
|
||||
await queryRunner.query(
|
||||
'INSERT INTO `role_permissions` (role_uuid, permission_uuid) VALUES \
|
||||
("23bf88ca-bee1-4a4c-adf0-b7a48749eea7", "eb0575a2-6e26-49e3-9501-f2e75d7dbda3") \
|
||||
',
|
||||
)
|
||||
}
|
||||
|
||||
public async down(): Promise<void> {
|
||||
return
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
import { MigrationInterface, QueryRunner } from 'typeorm'
|
||||
|
||||
export class EnableEmailBackupsForAll1705493490376 implements MigrationInterface {
|
||||
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||
// Core User v1 Permissions
|
||||
await queryRunner.query(
|
||||
'INSERT INTO `role_permissions` (role_uuid, permission_uuid) VALUES \
|
||||
("bde42e26-628c-44e6-9d76-21b08954b0bf", "eb0575a2-6e26-49e3-9501-f2e75d7dbda3") \
|
||||
',
|
||||
)
|
||||
// Core User v2 Permissions
|
||||
await queryRunner.query(
|
||||
'INSERT INTO `role_permissions` (role_uuid, permission_uuid) VALUES \
|
||||
("23bf88ca-bee1-4a4c-adf0-b7a48749eea7", "eb0575a2-6e26-49e3-9501-f2e75d7dbda3") \
|
||||
',
|
||||
)
|
||||
}
|
||||
|
||||
public async down(): Promise<void> {
|
||||
return
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/auth-server",
|
||||
"version": "1.177.15",
|
||||
"version": "1.177.20",
|
||||
"engines": {
|
||||
"node": ">=18.0.0 <21.0.0"
|
||||
},
|
||||
|
||||
@@ -1421,6 +1421,7 @@ export class ContainerConfigLoader {
|
||||
container.get<SetSettingValue>(TYPES.Auth_SetSettingValue),
|
||||
container.get<OfflineSettingServiceInterface>(TYPES.Auth_OfflineSettingService),
|
||||
container.get<ContentDecoderInterface>(TYPES.Auth_ContenDecoder),
|
||||
container.get<RenewSharedSubscriptions>(TYPES.Auth_RenewSharedSubscriptions),
|
||||
container.get<winston.Logger>(TYPES.Auth_Logger),
|
||||
),
|
||||
)
|
||||
|
||||
@@ -34,6 +34,19 @@ export class SubscriptionPurchasedEventHandler implements DomainEventHandlerInte
|
||||
event.payload.timestamp,
|
||||
)
|
||||
|
||||
const renewalResult = await this.renewSharedSubscriptions.execute({
|
||||
inviterEmail: event.payload.userEmail,
|
||||
newSubscriptionId: event.payload.subscriptionId,
|
||||
newSubscriptionName: event.payload.subscriptionName,
|
||||
newSubscriptionExpiresAt: event.payload.subscriptionExpiresAt,
|
||||
timestamp: event.payload.timestamp,
|
||||
})
|
||||
if (renewalResult.isFailed()) {
|
||||
this.logger.error(`Could not renew shared offline subscriptions: ${renewalResult.getError()}`, {
|
||||
subscriptionId: event.payload.subscriptionId,
|
||||
})
|
||||
}
|
||||
|
||||
await this.roleService.setOfflineUserRole(offlineUserSubscription)
|
||||
|
||||
return
|
||||
|
||||
@@ -16,6 +16,7 @@ import { OfflineSettingName } from '../Setting/OfflineSettingName'
|
||||
import { UserSubscriptionType } from '../Subscription/UserSubscriptionType'
|
||||
import { ApplyDefaultSubscriptionSettings } from '../UseCase/ApplyDefaultSubscriptionSettings/ApplyDefaultSubscriptionSettings'
|
||||
import { SetSettingValue } from '../UseCase/SetSettingValue/SetSettingValue'
|
||||
import { RenewSharedSubscriptions } from '../UseCase/RenewSharedSubscriptions/RenewSharedSubscriptions'
|
||||
|
||||
export class SubscriptionSyncRequestedEventHandler implements DomainEventHandlerInterface {
|
||||
constructor(
|
||||
@@ -27,11 +28,20 @@ export class SubscriptionSyncRequestedEventHandler implements DomainEventHandler
|
||||
private setSettingValue: SetSettingValue,
|
||||
private offlineSettingService: OfflineSettingServiceInterface,
|
||||
private contentDecoder: ContentDecoderInterface,
|
||||
private renewSharedSubscriptions: RenewSharedSubscriptions,
|
||||
private logger: Logger,
|
||||
) {}
|
||||
|
||||
async handle(event: SubscriptionSyncRequestedEvent): Promise<void> {
|
||||
this.logger.info('Subscription sync requested', {
|
||||
subscriptionId: event.payload.subscriptionId,
|
||||
})
|
||||
|
||||
if (event.payload.offline) {
|
||||
this.logger.info('Syncing offline subscription', {
|
||||
subscriptionId: event.payload.subscriptionId,
|
||||
})
|
||||
|
||||
const offlineUserSubscription = await this.createOrUpdateOfflineSubscription(
|
||||
event.payload.subscriptionId,
|
||||
event.payload.subscriptionName,
|
||||
@@ -41,6 +51,19 @@ export class SubscriptionSyncRequestedEventHandler implements DomainEventHandler
|
||||
event.payload.timestamp,
|
||||
)
|
||||
|
||||
const renewalResult = await this.renewSharedSubscriptions.execute({
|
||||
inviterEmail: event.payload.userEmail,
|
||||
newSubscriptionId: event.payload.subscriptionId,
|
||||
newSubscriptionName: event.payload.subscriptionName,
|
||||
newSubscriptionExpiresAt: event.payload.subscriptionExpiresAt,
|
||||
timestamp: event.payload.timestamp,
|
||||
})
|
||||
if (renewalResult.isFailed()) {
|
||||
this.logger.error(`Could not renew shared offline subscriptions for user: ${renewalResult.getError()}`, {
|
||||
subscriptionId: event.payload.subscriptionId,
|
||||
})
|
||||
}
|
||||
|
||||
await this.roleService.setOfflineUserRole(offlineUserSubscription)
|
||||
|
||||
const offlineFeaturesTokenDecoded = this.contentDecoder.decode(
|
||||
@@ -60,11 +83,19 @@ export class SubscriptionSyncRequestedEventHandler implements DomainEventHandler
|
||||
value: offlineFeaturesTokenDecoded.extensionKey,
|
||||
})
|
||||
|
||||
this.logger.info('Offline subscription synced', {
|
||||
subscriptionId: event.payload.subscriptionId,
|
||||
})
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
const usernameOrError = Username.create(event.payload.userEmail)
|
||||
if (usernameOrError.isFailed()) {
|
||||
this.logger.warn(`Could not sync subscription: ${usernameOrError.getError()}`, {
|
||||
subscriptionId: event.payload.subscriptionId,
|
||||
})
|
||||
|
||||
return
|
||||
}
|
||||
const username = usernameOrError.getValue()
|
||||
@@ -72,10 +103,18 @@ export class SubscriptionSyncRequestedEventHandler implements DomainEventHandler
|
||||
const user = await this.userRepository.findOneByUsernameOrEmail(username)
|
||||
|
||||
if (user === null) {
|
||||
this.logger.warn(`Could not find user with email: ${username.value}`)
|
||||
this.logger.warn(`Could not find user with email: ${username.value}`, {
|
||||
subscriptionId: event.payload.subscriptionId,
|
||||
})
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
this.logger.info('Syncing subscription', {
|
||||
userId: user.uuid,
|
||||
subscriptionId: event.payload.subscriptionId,
|
||||
})
|
||||
|
||||
const userSubscription = await this.createOrUpdateSubscription(
|
||||
event.payload.subscriptionId,
|
||||
event.payload.subscriptionName,
|
||||
@@ -85,6 +124,19 @@ export class SubscriptionSyncRequestedEventHandler implements DomainEventHandler
|
||||
event.payload.timestamp,
|
||||
)
|
||||
|
||||
const renewalResult = await this.renewSharedSubscriptions.execute({
|
||||
inviterEmail: user.email,
|
||||
newSubscriptionId: event.payload.subscriptionId,
|
||||
newSubscriptionName: event.payload.subscriptionName,
|
||||
newSubscriptionExpiresAt: event.payload.subscriptionExpiresAt,
|
||||
timestamp: event.payload.timestamp,
|
||||
})
|
||||
if (renewalResult.isFailed()) {
|
||||
this.logger.error(`Could not renew shared subscriptions for user: ${renewalResult.getError()}`, {
|
||||
userId: user.uuid,
|
||||
})
|
||||
}
|
||||
|
||||
await this.roleService.addUserRoleBasedOnSubscription(user, event.payload.subscriptionName)
|
||||
|
||||
const applyingSettingsResult = await this.applyDefaultSubscriptionSettings.execute({
|
||||
@@ -107,6 +159,11 @@ export class SubscriptionSyncRequestedEventHandler implements DomainEventHandler
|
||||
if (result.isFailed()) {
|
||||
this.logger.error(`Could not set extension key for user ${user.uuid}`)
|
||||
}
|
||||
|
||||
this.logger.info('Subscription synced', {
|
||||
userId: user.uuid,
|
||||
subscriptionId: event.payload.subscriptionId,
|
||||
})
|
||||
}
|
||||
|
||||
private async createOrUpdateSubscription(
|
||||
|
||||
@@ -84,6 +84,7 @@ export class TypeORMUserSubscriptionRepository implements UserSubscriptionReposi
|
||||
userUuid,
|
||||
subscriptionId,
|
||||
})
|
||||
.orderBy('ends_at', 'DESC')
|
||||
.getOne()
|
||||
}
|
||||
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.23.2](https://github.com/standardnotes/server/compare/@standardnotes/domain-events-infra@1.23.1...@standardnotes/domain-events-infra@1.23.2) (2024-01-18)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/domain-events-infra
|
||||
|
||||
## [1.23.1](https://github.com/standardnotes/server/compare/@standardnotes/domain-events-infra@1.23.0...@standardnotes/domain-events-infra@1.23.1) (2024-01-03)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/domain-events-infra",
|
||||
"version": "1.23.1",
|
||||
"version": "1.23.2",
|
||||
"engines": {
|
||||
"node": ">=18.0.0 <21.0.0"
|
||||
},
|
||||
|
||||
@@ -3,6 +3,12 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [2.140.0](https://github.com/standardnotes/server/compare/@standardnotes/domain-events@2.139.3...@standardnotes/domain-events@2.140.0) (2024-01-18)
|
||||
|
||||
### Features
|
||||
|
||||
* add content sizes fixing upon grpc resource exhausted error ([#1029](https://github.com/standardnotes/server/issues/1029)) ([634e8bd](https://github.com/standardnotes/server/commit/634e8bd2d0f055abbda1150587ab9a444281e600))
|
||||
|
||||
## [2.139.3](https://github.com/standardnotes/server/compare/@standardnotes/domain-events@2.139.2...@standardnotes/domain-events@2.139.3) (2023-12-29)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/domain-events",
|
||||
"version": "2.139.3",
|
||||
"version": "2.140.0",
|
||||
"engines": {
|
||||
"node": ">=18.0.0 <21.0.0"
|
||||
},
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
import { DomainEventInterface } from './DomainEventInterface'
|
||||
import { ContentSizesFixRequestedEventPayload } from './ContentSizesFixRequestedEventPayload'
|
||||
|
||||
export interface ContentSizesFixRequestedEvent extends DomainEventInterface {
|
||||
type: 'CONTENT_SIZES_FIX_REQUESTED'
|
||||
payload: ContentSizesFixRequestedEventPayload
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
export interface ContentSizesFixRequestedEventPayload {
|
||||
userUuid: string
|
||||
}
|
||||
@@ -4,6 +4,8 @@ export * from './Event/AccountDeletionVerificationPassedEvent'
|
||||
export * from './Event/AccountDeletionVerificationPassedEventPayload'
|
||||
export * from './Event/AccountDeletionVerificationRequestedEvent'
|
||||
export * from './Event/AccountDeletionVerificationRequestedEventPayload'
|
||||
export * from './Event/ContentSizesFixRequestedEvent'
|
||||
export * from './Event/ContentSizesFixRequestedEventPayload'
|
||||
export * from './Event/DiscountApplyRequestedEvent'
|
||||
export * from './Event/DiscountApplyRequestedEventPayload'
|
||||
export * from './Event/DiscountWithdrawRequestedEvent'
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.37.10](https://github.com/standardnotes/server/compare/@standardnotes/files-server@1.37.9...@standardnotes/files-server@1.37.10) (2024-01-18)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/files-server
|
||||
|
||||
## [1.37.9](https://github.com/standardnotes/server/compare/@standardnotes/files-server@1.37.8...@standardnotes/files-server@1.37.9) (2024-01-10)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/files-server",
|
||||
"version": "1.37.9",
|
||||
"version": "1.37.10",
|
||||
"engines": {
|
||||
"node": ">=18.0.0 <21.0.0"
|
||||
},
|
||||
|
||||
@@ -3,6 +3,42 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.22.62](https://github.com/standardnotes/server/compare/@standardnotes/home-server@1.22.61...@standardnotes/home-server@1.22.62) (2024-01-18)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/home-server
|
||||
|
||||
## [1.22.61](https://github.com/standardnotes/server/compare/@standardnotes/home-server@1.22.60...@standardnotes/home-server@1.22.61) (2024-01-18)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/home-server
|
||||
|
||||
## [1.22.60](https://github.com/standardnotes/server/compare/@standardnotes/home-server@1.22.59...@standardnotes/home-server@1.22.60) (2024-01-17)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/home-server
|
||||
|
||||
## [1.22.59](https://github.com/standardnotes/server/compare/@standardnotes/home-server@1.22.58...@standardnotes/home-server@1.22.59) (2024-01-17)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/home-server
|
||||
|
||||
## [1.22.58](https://github.com/standardnotes/server/compare/@standardnotes/home-server@1.22.57...@standardnotes/home-server@1.22.58) (2024-01-16)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/home-server
|
||||
|
||||
## [1.22.57](https://github.com/standardnotes/server/compare/@standardnotes/home-server@1.22.56...@standardnotes/home-server@1.22.57) (2024-01-15)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/home-server
|
||||
|
||||
## [1.22.56](https://github.com/standardnotes/server/compare/@standardnotes/home-server@1.22.55...@standardnotes/home-server@1.22.56) (2024-01-15)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/home-server
|
||||
|
||||
## [1.22.55](https://github.com/standardnotes/server/compare/@standardnotes/home-server@1.22.54...@standardnotes/home-server@1.22.55) (2024-01-15)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/home-server
|
||||
|
||||
## [1.22.54](https://github.com/standardnotes/server/compare/@standardnotes/home-server@1.22.53...@standardnotes/home-server@1.22.54) (2024-01-12)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/home-server
|
||||
|
||||
## [1.22.53](https://github.com/standardnotes/server/compare/@standardnotes/home-server@1.22.52...@standardnotes/home-server@1.22.53) (2024-01-10)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/home-server",
|
||||
"version": "1.22.53",
|
||||
"version": "1.22.62",
|
||||
"engines": {
|
||||
"node": ">=18.0.0 <21.0.0"
|
||||
},
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.51.15](https://github.com/standardnotes/server/compare/@standardnotes/revisions-server@1.51.14...@standardnotes/revisions-server@1.51.15) (2024-01-18)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/revisions-server
|
||||
|
||||
## [1.51.14](https://github.com/standardnotes/server/compare/@standardnotes/revisions-server@1.51.13...@standardnotes/revisions-server@1.51.14) (2024-01-04)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/revisions-server
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/revisions-server",
|
||||
"version": "1.51.14",
|
||||
"version": "1.51.15",
|
||||
"engines": {
|
||||
"node": ">=18.0.0 <21.0.0"
|
||||
},
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.27.20](https://github.com/standardnotes/server/compare/@standardnotes/scheduler-server@1.27.19...@standardnotes/scheduler-server@1.27.20) (2024-01-18)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/scheduler-server
|
||||
|
||||
## [1.27.19](https://github.com/standardnotes/server/compare/@standardnotes/scheduler-server@1.27.18...@standardnotes/scheduler-server@1.27.19) (2024-01-04)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/scheduler-server
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/scheduler-server",
|
||||
"version": "1.27.19",
|
||||
"version": "1.27.20",
|
||||
"engines": {
|
||||
"node": ">=18.0.0 <21.0.0"
|
||||
},
|
||||
|
||||
@@ -3,6 +3,30 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
# [1.136.0](https://github.com/standardnotes/server/compare/@standardnotes/syncing-server@1.135.0...@standardnotes/syncing-server@1.136.0) (2024-01-18)
|
||||
|
||||
### Features
|
||||
|
||||
* add content sizes fixing upon grpc resource exhausted error ([#1029](https://github.com/standardnotes/server/issues/1029)) ([634e8bd](https://github.com/standardnotes/server/commit/634e8bd2d0f055abbda1150587ab9a444281e600))
|
||||
|
||||
# [1.135.0](https://github.com/standardnotes/server/compare/@standardnotes/syncing-server@1.134.1...@standardnotes/syncing-server@1.135.0) (2024-01-17)
|
||||
|
||||
### Features
|
||||
|
||||
* **syncing-server:** add procedure to recalculate content sizes ([#1027](https://github.com/standardnotes/server/issues/1027)) ([70bbf11](https://github.com/standardnotes/server/commit/70bbf11db504ed6305b9e9922bc38bd4b632b273))
|
||||
|
||||
## [1.134.1](https://github.com/standardnotes/server/compare/@standardnotes/syncing-server@1.134.0...@standardnotes/syncing-server@1.134.1) (2024-01-16)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* **syncing-server:** missing item operations metric store expiry ([89dc6c1](https://github.com/standardnotes/server/commit/89dc6c19bf0e4a8c715f085ace5a717151d8fe9f))
|
||||
|
||||
# [1.134.0](https://github.com/standardnotes/server/compare/@standardnotes/syncing-server@1.133.6...@standardnotes/syncing-server@1.134.0) (2024-01-12)
|
||||
|
||||
### Features
|
||||
|
||||
* **syncing-server:** reduced abuse thresholds for free users ([#1021](https://github.com/standardnotes/server/issues/1021)) ([0443de8](https://github.com/standardnotes/server/commit/0443de88ceae3cb7c0793a3457753806b51db6e2))
|
||||
|
||||
## [1.133.6](https://github.com/standardnotes/server/compare/@standardnotes/syncing-server@1.133.5...@standardnotes/syncing-server@1.133.6) (2024-01-10)
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
import 'reflect-metadata'
|
||||
|
||||
import { Logger } from 'winston'
|
||||
|
||||
import { ContainerConfigLoader } from '../src/Bootstrap/Container'
|
||||
import TYPES from '../src/Bootstrap/Types'
|
||||
import { Env } from '../src/Bootstrap/Env'
|
||||
import { FixContentSizes } from '../src/Domain/UseCase/Syncing/FixContentSizes/FixContentSizes'
|
||||
import { Result } from '@standardnotes/domain-core'
|
||||
|
||||
const inputArgs = process.argv.slice(2)
|
||||
const userUuid = inputArgs[0]
|
||||
|
||||
const container = new ContainerConfigLoader('worker')
|
||||
void container.load().then((container) => {
|
||||
const env: Env = new Env()
|
||||
env.load()
|
||||
|
||||
const logger: Logger = container.get(TYPES.Sync_Logger)
|
||||
|
||||
logger.info('Starting fixing of content sizes', {
|
||||
userId: userUuid,
|
||||
})
|
||||
|
||||
const fixContentSizes = container.get<FixContentSizes>(TYPES.Sync_FixContentSizes)
|
||||
|
||||
Promise.resolve(fixContentSizes.execute({ userUuid }))
|
||||
.then((result: Result<void>) => {
|
||||
if (result.isFailed()) {
|
||||
logger.error(`Error while fixing content sizes: ${result.getError()}`, {
|
||||
userId: userUuid,
|
||||
})
|
||||
|
||||
process.exit(1)
|
||||
}
|
||||
|
||||
logger.info('Finished fixing of content sizes', {
|
||||
userId: userUuid,
|
||||
})
|
||||
|
||||
process.exit(0)
|
||||
})
|
||||
.catch((error) => {
|
||||
logger.error(`Error while fixing content sizes: ${error.message}`, {
|
||||
userId: userUuid,
|
||||
})
|
||||
|
||||
process.exit(1)
|
||||
})
|
||||
})
|
||||
@@ -119,8 +119,10 @@ void container.load().then((container) => {
|
||||
container.get<boolean>(TYPES.Sync_STRICT_ABUSE_PROTECTION),
|
||||
container.get<number>(TYPES.Sync_ITEM_OPERATIONS_ABUSE_TIMEFRAME_LENGTH_IN_MINUTES),
|
||||
container.get<number>(TYPES.Sync_ITEM_OPERATIONS_ABUSE_THRESHOLD),
|
||||
container.get<number>(TYPES.Sync_PAYLOAD_SIZE_ABUSE_THRESHOLD),
|
||||
container.get<number>(TYPES.Sync_PAYLOAD_SIZE_ABUSE_TIMEFRAME_LENGTH_IN_MINUTES),
|
||||
container.get<number>(TYPES.Sync_FREE_USERS_ITEM_OPERATIONS_ABUSE_THRESHOLD),
|
||||
container.get<number>(TYPES.Sync_UPLOAD_BANDWIDTH_ABUSE_THRESHOLD),
|
||||
container.get<number>(TYPES.Sync_FREE_USERS_UPLOAD_BANDWIDTH_ABUSE_THRESHOLD),
|
||||
container.get<number>(TYPES.Sync_UPLOAD_BANDWIDTH_ABUSE_TIMEFRAME_LENGTH_IN_MINUTES),
|
||||
container.get<winston.Logger>(TYPES.Sync_Logger),
|
||||
)
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
'use strict'
|
||||
|
||||
const path = require('path')
|
||||
|
||||
const pnp = require(path.normalize(path.resolve(__dirname, '../../..', '.pnp.cjs'))).setup()
|
||||
|
||||
const index = require(path.normalize(path.resolve(__dirname, '../dist/bin/content_size.js')))
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true })
|
||||
|
||||
exports.default = index
|
||||
@@ -16,6 +16,11 @@ case "$COMMAND" in
|
||||
exec node docker/entrypoint-statistics.js
|
||||
;;
|
||||
|
||||
'content-size' )
|
||||
EMAIL=$1 && shift 1
|
||||
exec node docker/entrypoint-content-size.js $EMAIL
|
||||
;;
|
||||
|
||||
* )
|
||||
echo "[Docker] Unknown command"
|
||||
;;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/syncing-server",
|
||||
"version": "1.133.6",
|
||||
"version": "1.136.0",
|
||||
"engines": {
|
||||
"node": ">=18.0.0 <21.0.0"
|
||||
},
|
||||
|
||||
@@ -167,6 +167,8 @@ import { MetricsStoreInterface } from '../Domain/Metrics/MetricsStoreInterface'
|
||||
import { RedisMetricStore } from '../Infra/Redis/RedisMetricStore'
|
||||
import { DummyMetricStore } from '../Infra/Dummy/DummyMetricStore'
|
||||
import { CheckForTrafficAbuse } from '../Domain/UseCase/Syncing/CheckForTrafficAbuse/CheckForTrafficAbuse'
|
||||
import { FixContentSizes } from '../Domain/UseCase/Syncing/FixContentSizes/FixContentSizes'
|
||||
import { ContentSizesFixRequestedEventHandler } from '../Domain/Handler/ContentSizesFixRequestedEventHandler'
|
||||
|
||||
export class ContainerConfigLoader {
|
||||
private readonly DEFAULT_CONTENT_SIZE_TRANSFER_LIMIT = 10_000_000
|
||||
@@ -479,7 +481,14 @@ export class ContainerConfigLoader {
|
||||
container
|
||||
.bind(TYPES.Sync_ITEM_OPERATIONS_ABUSE_THRESHOLD)
|
||||
.toConstantValue(
|
||||
env.get('ITEM_OPERATIONS_ABUSE_THRESHOLD', true) ? +env.get('ITEM_OPERATIONS_ABUSE_THRESHOLD', true) : 500,
|
||||
env.get('ITEM_OPERATIONS_ABUSE_THRESHOLD', true) ? +env.get('ITEM_OPERATIONS_ABUSE_THRESHOLD', true) : 1000,
|
||||
)
|
||||
container
|
||||
.bind(TYPES.Sync_FREE_USERS_ITEM_OPERATIONS_ABUSE_THRESHOLD)
|
||||
.toConstantValue(
|
||||
env.get('FREE_USERS_ITEM_OPERATIONS_ABUSE_THRESHOLD', true)
|
||||
? +env.get('FREE_USERS_ITEM_OPERATIONS_ABUSE_THRESHOLD', true)
|
||||
: 500,
|
||||
)
|
||||
container
|
||||
.bind(TYPES.Sync_ITEM_OPERATIONS_ABUSE_TIMEFRAME_LENGTH_IN_MINUTES)
|
||||
@@ -489,15 +498,24 @@ export class ContainerConfigLoader {
|
||||
: 5,
|
||||
)
|
||||
container
|
||||
.bind(TYPES.Sync_PAYLOAD_SIZE_ABUSE_THRESHOLD)
|
||||
.bind(TYPES.Sync_UPLOAD_BANDWIDTH_ABUSE_THRESHOLD)
|
||||
.toConstantValue(
|
||||
env.get('PAYLOAD_SIZE_ABUSE_THRESHOLD', true) ? +env.get('PAYLOAD_SIZE_ABUSE_THRESHOLD', true) : 20_000_000,
|
||||
env.get('UPLOAD_BANDWIDTH_ABUSE_THRESHOLD', true)
|
||||
? +env.get('UPLOAD_BANDWIDTH_ABUSE_THRESHOLD', true)
|
||||
: 100_000_000,
|
||||
)
|
||||
container
|
||||
.bind(TYPES.Sync_PAYLOAD_SIZE_ABUSE_TIMEFRAME_LENGTH_IN_MINUTES)
|
||||
.bind(TYPES.Sync_FREE_USERS_UPLOAD_BANDWIDTH_ABUSE_THRESHOLD)
|
||||
.toConstantValue(
|
||||
env.get('PAYLOAD_SIZE_ABUSE_TIMEFRAME_LENGTH_IN_MINUTES', true)
|
||||
? +env.get('PAYLOAD_SIZE_ABUSE_TIMEFRAME_LENGTH_IN_MINUTES', true)
|
||||
env.get('FREE_USERS_UPLOAD_BANDWIDTH_ABUSE_THRESHOLD', true)
|
||||
? +env.get('FREE_USERS_UPLOAD_BANDWIDTH_ABUSE_THRESHOLD', true)
|
||||
: 50_000_000,
|
||||
)
|
||||
container
|
||||
.bind(TYPES.Sync_UPLOAD_BANDWIDTH_ABUSE_TIMEFRAME_LENGTH_IN_MINUTES)
|
||||
.toConstantValue(
|
||||
env.get('UPLOAD_BANDWIDTH_ABUSE_TIMEFRAME_LENGTH_IN_MINUTES', true)
|
||||
? +env.get('UPLOAD_BANDWIDTH_ABUSE_TIMEFRAME_LENGTH_IN_MINUTES', true)
|
||||
: 5,
|
||||
)
|
||||
container.bind(TYPES.Sync_AUTH_JWT_SECRET).toConstantValue(env.get('AUTH_JWT_SECRET'))
|
||||
@@ -939,6 +957,14 @@ export class ContainerConfigLoader {
|
||||
container.get<DomainEventPublisherInterface>(TYPES.Sync_DomainEventPublisher),
|
||||
),
|
||||
)
|
||||
container
|
||||
.bind<FixContentSizes>(TYPES.Sync_FixContentSizes)
|
||||
.toConstantValue(
|
||||
new FixContentSizes(
|
||||
container.get<ItemRepositoryInterface>(TYPES.Sync_SQLItemRepository),
|
||||
container.get<Logger>(TYPES.Sync_Logger),
|
||||
),
|
||||
)
|
||||
|
||||
// Services
|
||||
container
|
||||
@@ -1051,6 +1077,14 @@ export class ContainerConfigLoader {
|
||||
container.get<Logger>(TYPES.Sync_Logger),
|
||||
),
|
||||
)
|
||||
container
|
||||
.bind<ContentSizesFixRequestedEventHandler>(TYPES.Sync_ContentSizesFixRequestedEventHandler)
|
||||
.toConstantValue(
|
||||
new ContentSizesFixRequestedEventHandler(
|
||||
container.get<FixContentSizes>(TYPES.Sync_FixContentSizes),
|
||||
container.get<Logger>(TYPES.Sync_Logger),
|
||||
),
|
||||
)
|
||||
|
||||
// Services
|
||||
container.bind<ContentDecoderInterface>(TYPES.Sync_ContentDecoder).toDynamicValue(() => new ContentDecoder())
|
||||
@@ -1079,6 +1113,10 @@ export class ContainerConfigLoader {
|
||||
'SHARED_VAULT_REMOVED',
|
||||
container.get<SharedVaultRemovedEventHandler>(TYPES.Sync_SharedVaultRemovedEventHandler),
|
||||
],
|
||||
[
|
||||
'CONTENT_SIZES_FIX_REQUESTED',
|
||||
container.get<ContentSizesFixRequestedEventHandler>(TYPES.Sync_ContentSizesFixRequestedEventHandler),
|
||||
],
|
||||
])
|
||||
if (!isConfiguredForHomeServer) {
|
||||
container
|
||||
@@ -1145,8 +1183,10 @@ export class ContainerConfigLoader {
|
||||
container.get<boolean>(TYPES.Sync_STRICT_ABUSE_PROTECTION),
|
||||
container.get<number>(TYPES.Sync_ITEM_OPERATIONS_ABUSE_TIMEFRAME_LENGTH_IN_MINUTES),
|
||||
container.get<number>(TYPES.Sync_ITEM_OPERATIONS_ABUSE_THRESHOLD),
|
||||
container.get<number>(TYPES.Sync_PAYLOAD_SIZE_ABUSE_THRESHOLD),
|
||||
container.get<number>(TYPES.Sync_PAYLOAD_SIZE_ABUSE_TIMEFRAME_LENGTH_IN_MINUTES),
|
||||
container.get<number>(TYPES.Sync_FREE_USERS_ITEM_OPERATIONS_ABUSE_THRESHOLD),
|
||||
container.get<number>(TYPES.Sync_UPLOAD_BANDWIDTH_ABUSE_THRESHOLD),
|
||||
container.get<number>(TYPES.Sync_FREE_USERS_UPLOAD_BANDWIDTH_ABUSE_THRESHOLD),
|
||||
container.get<number>(TYPES.Sync_UPLOAD_BANDWIDTH_ABUSE_TIMEFRAME_LENGTH_IN_MINUTES),
|
||||
container.get<ControllerContainerInterface>(TYPES.Sync_ControllerContainer),
|
||||
),
|
||||
)
|
||||
|
||||
@@ -47,9 +47,11 @@ const TYPES = {
|
||||
'Sync_ITEM_OPERATIONS_ABUSE_TIMEFRAME_LENGTH_IN_MINUTES',
|
||||
),
|
||||
Sync_ITEM_OPERATIONS_ABUSE_THRESHOLD: Symbol.for('Sync_ITEM_OPERATIONS_ABUSE_THRESHOLD'),
|
||||
Sync_PAYLOAD_SIZE_ABUSE_THRESHOLD: Symbol.for('Sync_PAYLOAD_SIZE_ABUSE_THRESHOLD'),
|
||||
Sync_PAYLOAD_SIZE_ABUSE_TIMEFRAME_LENGTH_IN_MINUTES: Symbol.for(
|
||||
'Sync_PAYLOAD_SIZE_ABUSE_TIMEFRAME_LENGTH_IN_MINUTES',
|
||||
Sync_FREE_USERS_ITEM_OPERATIONS_ABUSE_THRESHOLD: Symbol.for('Sync_FREE_USERS_ITEM_OPERATIONS_ABUSE_THRESHOLD'),
|
||||
Sync_UPLOAD_BANDWIDTH_ABUSE_THRESHOLD: Symbol.for('Sync_UPLOAD_BANDWIDTH_ABUSE_THRESHOLD'),
|
||||
Sync_FREE_USERS_UPLOAD_BANDWIDTH_ABUSE_THRESHOLD: Symbol.for('Sync_FREE_USERS_UPLOAD_BANDWIDTH_ABUSE_THRESHOLD'),
|
||||
Sync_UPLOAD_BANDWIDTH_ABUSE_TIMEFRAME_LENGTH_IN_MINUTES: Symbol.for(
|
||||
'Sync_UPLOAD_BANDWIDTH_ABUSE_TIMEFRAME_LENGTH_IN_MINUTES',
|
||||
),
|
||||
// use cases
|
||||
Sync_SyncItems: Symbol.for('Sync_SyncItems'),
|
||||
@@ -95,6 +97,7 @@ const TYPES = {
|
||||
Sync_TransferSharedVaultItems: Symbol.for('Sync_TransferSharedVaultItems'),
|
||||
Sync_DumpItem: Symbol.for('Sync_DumpItem'),
|
||||
Sync_CheckForTrafficAbuse: Symbol.for('Sync_CheckForTrafficAbuse'),
|
||||
Sync_FixContentSizes: Symbol.for('Sync_FixContentSizes'),
|
||||
// Handlers
|
||||
Sync_AccountDeletionRequestedEventHandler: Symbol.for('Sync_AccountDeletionRequestedEventHandler'),
|
||||
Sync_AccountDeletionVerificationRequestedEventHandler: Symbol.for(
|
||||
@@ -107,6 +110,7 @@ const TYPES = {
|
||||
Sync_SharedVaultFileUploadedEventHandler: Symbol.for('Sync_SharedVaultFileUploadedEventHandler'),
|
||||
Sync_SharedVaultFileMovedEventHandler: Symbol.for('Sync_SharedVaultFileMovedEventHandler'),
|
||||
Sync_SharedVaultRemovedEventHandler: Symbol.for('Sync_SharedVaultRemovedEventHandler'),
|
||||
Sync_ContentSizesFixRequestedEventHandler: Symbol.for('Sync_ContentSizesFixRequestedEventHandler'),
|
||||
// Services
|
||||
Sync_MetricsStore: Symbol.for('Sync_MetricsStore'),
|
||||
Sync_ContentDecoder: Symbol.for('Sync_ContentDecoder'),
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
import { ContentSizesFixRequestedEvent, DomainEventHandlerInterface } from '@standardnotes/domain-events'
|
||||
import { Logger } from 'winston'
|
||||
|
||||
import { FixContentSizes } from '../UseCase/Syncing/FixContentSizes/FixContentSizes'
|
||||
|
||||
export class ContentSizesFixRequestedEventHandler implements DomainEventHandlerInterface {
|
||||
constructor(
|
||||
private fixContentSizes: FixContentSizes,
|
||||
private logger: Logger,
|
||||
) {}
|
||||
|
||||
async handle(event: ContentSizesFixRequestedEvent): Promise<void> {
|
||||
const result = await this.fixContentSizes.execute({ userUuid: event.payload.userUuid })
|
||||
|
||||
if (result.isFailed()) {
|
||||
this.logger.error(`Failed to fix content sizes: ${result.getError()}`, {
|
||||
userId: event.payload.userUuid,
|
||||
})
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
this.logger.info('Finished fixing content sizes', {
|
||||
userId: event.payload.userUuid,
|
||||
})
|
||||
}
|
||||
}
|
||||
@@ -249,4 +249,25 @@ describe('Item', () => {
|
||||
|
||||
expect(entity.isIdenticalTo(otherEntity)).toBeFalsy()
|
||||
})
|
||||
|
||||
it('should calculate content size of the item', () => {
|
||||
const entity = Item.create(
|
||||
{
|
||||
duplicateOf: null,
|
||||
itemsKeyId: 'items-key-id',
|
||||
content: 'content',
|
||||
contentType: ContentType.create(ContentType.TYPES.Note).getValue(),
|
||||
encItemKey: 'enc-item-key',
|
||||
authHash: 'auth-hash',
|
||||
userUuid: Uuid.create('00000000-0000-0000-0000-000000000000').getValue(),
|
||||
deleted: false,
|
||||
updatedWithSession: null,
|
||||
dates: Dates.create(new Date(123), new Date(123)).getValue(),
|
||||
timestamps: Timestamps.create(123, 123).getValue(),
|
||||
},
|
||||
new UniqueEntityId('00000000-0000-0000-0000-000000000000'),
|
||||
).getValue()
|
||||
|
||||
expect(entity.calculateContentSize()).toEqual(943)
|
||||
})
|
||||
})
|
||||
|
||||
@@ -16,6 +16,10 @@ export class Item extends Aggregate<ItemProps> {
|
||||
return Result.ok<Item>(new Item(props, id))
|
||||
}
|
||||
|
||||
calculateContentSize(): number {
|
||||
return Buffer.byteLength(JSON.stringify(this))
|
||||
}
|
||||
|
||||
get uuid(): Uuid {
|
||||
const uuidOrError = Uuid.create(this._id.toString())
|
||||
if (uuidOrError.isFailed()) {
|
||||
|
||||
+92
@@ -0,0 +1,92 @@
|
||||
import { Logger } from 'winston'
|
||||
import { ItemRepositoryInterface } from '../../../Item/ItemRepositoryInterface'
|
||||
import { FixContentSizes } from './FixContentSizes'
|
||||
import { Uuid, ContentType, Dates, Timestamps, UniqueEntityId } from '@standardnotes/domain-core'
|
||||
import { Item } from '../../../Item/Item'
|
||||
|
||||
describe('FixContentSizes', () => {
|
||||
let itemRepository: ItemRepositoryInterface
|
||||
let logger: Logger
|
||||
|
||||
const createUseCase = () => new FixContentSizes(itemRepository, logger)
|
||||
|
||||
beforeEach(() => {
|
||||
const existingItem = Item.create(
|
||||
{
|
||||
userUuid: Uuid.create('00000000-0000-0000-0000-000000000000').getValue(),
|
||||
updatedWithSession: null,
|
||||
content: 'foobar',
|
||||
contentType: ContentType.create(ContentType.TYPES.Note).getValue(),
|
||||
encItemKey: null,
|
||||
authHash: null,
|
||||
itemsKeyId: null,
|
||||
duplicateOf: null,
|
||||
deleted: false,
|
||||
dates: Dates.create(new Date(1616164633241311), new Date(1616164633241311)).getValue(),
|
||||
timestamps: Timestamps.create(1616164633241311, 1616164633241311).getValue(),
|
||||
},
|
||||
new UniqueEntityId('00000000-0000-0000-0000-000000000000'),
|
||||
).getValue()
|
||||
|
||||
itemRepository = {} as jest.Mocked<ItemRepositoryInterface>
|
||||
itemRepository.findAll = jest.fn().mockReturnValue([existingItem])
|
||||
itemRepository.countAll = jest.fn().mockReturnValue(1)
|
||||
itemRepository.updateContentSize = jest.fn()
|
||||
|
||||
logger = {} as jest.Mocked<Logger>
|
||||
logger.info = jest.fn()
|
||||
})
|
||||
|
||||
it('should fix content sizes', async () => {
|
||||
const useCase = createUseCase()
|
||||
|
||||
const result = await useCase.execute({
|
||||
userUuid: '00000000-0000-0000-0000-000000000000',
|
||||
})
|
||||
|
||||
expect(result.isFailed()).toBeFalsy()
|
||||
expect(itemRepository.updateContentSize).toHaveBeenCalledTimes(1)
|
||||
expect(itemRepository.updateContentSize).toHaveBeenCalledWith('00000000-0000-0000-0000-000000000000', 947)
|
||||
})
|
||||
|
||||
it('should return an error if user uuid is invalid', async () => {
|
||||
const useCase = createUseCase()
|
||||
|
||||
const result = await useCase.execute({
|
||||
userUuid: 'invalid',
|
||||
})
|
||||
|
||||
expect(result.isFailed()).toBeTruthy()
|
||||
expect(result.getError()).toEqual('Given value is not a valid uuid: invalid')
|
||||
})
|
||||
|
||||
it('should do nothing if the content size is correct', async () => {
|
||||
const existingItem = Item.create(
|
||||
{
|
||||
userUuid: Uuid.create('00000000-0000-0000-0000-000000000000').getValue(),
|
||||
updatedWithSession: null,
|
||||
content: 'foobar',
|
||||
contentType: ContentType.create(ContentType.TYPES.Note).getValue(),
|
||||
contentSize: 947,
|
||||
encItemKey: null,
|
||||
authHash: null,
|
||||
itemsKeyId: null,
|
||||
duplicateOf: null,
|
||||
deleted: false,
|
||||
dates: Dates.create(new Date(1616164633241311), new Date(1616164633241311)).getValue(),
|
||||
timestamps: Timestamps.create(1616164633241311, 1616164633241311).getValue(),
|
||||
},
|
||||
new UniqueEntityId('00000000-0000-0000-0000-000000000000'),
|
||||
).getValue()
|
||||
itemRepository.findAll = jest.fn().mockReturnValue([existingItem])
|
||||
|
||||
const useCase = createUseCase()
|
||||
|
||||
const result = await useCase.execute({
|
||||
userUuid: '00000000-0000-0000-0000-000000000000',
|
||||
})
|
||||
|
||||
expect(result.isFailed()).toBeFalsy()
|
||||
expect(itemRepository.updateContentSize).toHaveBeenCalledTimes(0)
|
||||
})
|
||||
})
|
||||
@@ -0,0 +1,65 @@
|
||||
import { Result, UseCaseInterface, Uuid } from '@standardnotes/domain-core'
|
||||
import { Logger } from 'winston'
|
||||
|
||||
import { ItemRepositoryInterface } from '../../../Item/ItemRepositoryInterface'
|
||||
|
||||
import { FixContentSizesDTO } from './FixContentSizesDTO'
|
||||
|
||||
export class FixContentSizes implements UseCaseInterface<void> {
|
||||
constructor(
|
||||
private itemRepository: ItemRepositoryInterface,
|
||||
private logger: Logger,
|
||||
) {}
|
||||
|
||||
async execute(dto: FixContentSizesDTO): Promise<Result<void>> {
|
||||
const userUuidOrError = Uuid.create(dto.userUuid)
|
||||
if (userUuidOrError.isFailed()) {
|
||||
return Result.fail(userUuidOrError.getError())
|
||||
}
|
||||
const userUuid = userUuidOrError.getValue()
|
||||
|
||||
const count = await this.itemRepository.countAll({
|
||||
userUuid: userUuid.value,
|
||||
})
|
||||
|
||||
this.logger.info(`Fixing content sizes for ${count} items`, {
|
||||
userId: userUuid.value,
|
||||
codeTag: 'FixContentSizes',
|
||||
})
|
||||
|
||||
const pageSize = 100
|
||||
let page = 1
|
||||
const totalPages = Math.ceil(count / pageSize)
|
||||
|
||||
for (page; page <= totalPages; page++) {
|
||||
const items = await this.itemRepository.findAll({
|
||||
userUuid: userUuid.value,
|
||||
sortOrder: 'ASC',
|
||||
sortBy: 'created_at_timestamp',
|
||||
offset: (page - 1) * pageSize,
|
||||
limit: pageSize,
|
||||
})
|
||||
|
||||
for (const item of items) {
|
||||
if (item.props.contentSize != item.calculateContentSize()) {
|
||||
this.logger.info(`Fixing content size for item ${item.id}`, {
|
||||
userId: userUuid.value,
|
||||
codeTag: 'FixContentSizes',
|
||||
itemUuid: item.uuid.value,
|
||||
oldContentSize: item.props.contentSize,
|
||||
newContentSize: item.calculateContentSize(),
|
||||
})
|
||||
|
||||
await this.itemRepository.updateContentSize(item.id.toString(), item.calculateContentSize())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.logger.info(`Finished fixing content sizes for ${count} items`, {
|
||||
userId: userUuid.value,
|
||||
codeTag: 'FixContentSizes',
|
||||
})
|
||||
|
||||
return Result.ok()
|
||||
}
|
||||
}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
export interface FixContentSizesDTO {
|
||||
userUuid: string
|
||||
}
|
||||
@@ -29,8 +29,11 @@ export class AnnotatedItemsController extends BaseItemsController {
|
||||
@inject(TYPES.Sync_ITEM_OPERATIONS_ABUSE_TIMEFRAME_LENGTH_IN_MINUTES)
|
||||
override itemOperationsAbuseTimeframeLengthInMinutes: number,
|
||||
@inject(TYPES.Sync_ITEM_OPERATIONS_ABUSE_THRESHOLD) override itemOperationsAbuseThreshold: number,
|
||||
@inject(TYPES.Sync_PAYLOAD_SIZE_ABUSE_THRESHOLD) override payloadSizeAbuseThreshold: number,
|
||||
@inject(TYPES.Sync_PAYLOAD_SIZE_ABUSE_TIMEFRAME_LENGTH_IN_MINUTES)
|
||||
@inject(TYPES.Sync_FREE_USERS_ITEM_OPERATIONS_ABUSE_THRESHOLD)
|
||||
override freeUsersItemOperationsAbuseThreshold: number,
|
||||
@inject(TYPES.Sync_UPLOAD_BANDWIDTH_ABUSE_THRESHOLD) override payloadSizeAbuseThreshold: number,
|
||||
@inject(TYPES.Sync_FREE_USERS_UPLOAD_BANDWIDTH_ABUSE_THRESHOLD) override freeUsersPayloadSizeAbuseThreshold: number,
|
||||
@inject(TYPES.Sync_UPLOAD_BANDWIDTH_ABUSE_TIMEFRAME_LENGTH_IN_MINUTES)
|
||||
override payloadSizeAbuseTimeframeLengthInMinutes: number,
|
||||
) {
|
||||
super(
|
||||
@@ -44,7 +47,9 @@ export class AnnotatedItemsController extends BaseItemsController {
|
||||
strictAbuseProtection,
|
||||
itemOperationsAbuseTimeframeLengthInMinutes,
|
||||
itemOperationsAbuseThreshold,
|
||||
freeUsersItemOperationsAbuseThreshold,
|
||||
payloadSizeAbuseThreshold,
|
||||
freeUsersPayloadSizeAbuseThreshold,
|
||||
payloadSizeAbuseTimeframeLengthInMinutes,
|
||||
)
|
||||
}
|
||||
|
||||
+22
-4
@@ -28,7 +28,9 @@ export class BaseItemsController extends BaseHttpController {
|
||||
protected strictAbuseProtection: boolean,
|
||||
protected itemOperationsAbuseTimeframeLengthInMinutes: number,
|
||||
protected itemOperationsAbuseThreshold: number,
|
||||
protected freeUsersItemOperationsAbuseThreshold: number,
|
||||
protected payloadSizeAbuseThreshold: number,
|
||||
protected freeUsersPayloadSizeAbuseThreshold: number,
|
||||
protected payloadSizeAbuseTimeframeLengthInMinutes: number,
|
||||
private controllerContainer?: ControllerContainerInterface,
|
||||
) {
|
||||
@@ -46,7 +48,7 @@ export class BaseItemsController extends BaseHttpController {
|
||||
const checkForItemOperationsAbuseResult = await this.checkForTrafficAbuse.execute({
|
||||
metricToCheck: Metric.NAMES.ItemOperation,
|
||||
userUuid: locals.user.uuid,
|
||||
threshold: this.itemOperationsAbuseThreshold,
|
||||
threshold: locals.isFreeUser ? this.freeUsersItemOperationsAbuseThreshold : this.itemOperationsAbuseThreshold,
|
||||
timeframeLengthInMinutes: this.itemOperationsAbuseTimeframeLengthInMinutes,
|
||||
})
|
||||
if (checkForItemOperationsAbuseResult.isFailed()) {
|
||||
@@ -54,14 +56,22 @@ export class BaseItemsController extends BaseHttpController {
|
||||
userId: locals.user.uuid,
|
||||
})
|
||||
if (this.strictAbuseProtection) {
|
||||
return this.json({ error: { message: checkForItemOperationsAbuseResult.getError() } }, 429)
|
||||
return this.json(
|
||||
{
|
||||
error: {
|
||||
message:
|
||||
'You have exceeded the maximum bandwidth allotted to your account in a 5-minute period. Please wait to try again, or upgrade your account for increased limits.',
|
||||
},
|
||||
},
|
||||
429,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
const checkForPayloadSizeAbuseResult = await this.checkForTrafficAbuse.execute({
|
||||
metricToCheck: Metric.NAMES.ContentSizeUtilized,
|
||||
userUuid: locals.user.uuid,
|
||||
threshold: this.payloadSizeAbuseThreshold,
|
||||
threshold: locals.isFreeUser ? this.freeUsersPayloadSizeAbuseThreshold : this.payloadSizeAbuseThreshold,
|
||||
timeframeLengthInMinutes: this.payloadSizeAbuseTimeframeLengthInMinutes,
|
||||
})
|
||||
if (checkForPayloadSizeAbuseResult.isFailed()) {
|
||||
@@ -70,7 +80,15 @@ export class BaseItemsController extends BaseHttpController {
|
||||
})
|
||||
|
||||
if (this.strictAbuseProtection) {
|
||||
return this.json({ error: { message: checkForPayloadSizeAbuseResult.getError() } }, 429)
|
||||
return this.json(
|
||||
{
|
||||
error: {
|
||||
message:
|
||||
'You have exceeded the maximum bandwidth allotted to your account in a 5-minute period. Please wait to try again, or upgrade your account for increased limits.',
|
||||
},
|
||||
},
|
||||
429,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -82,16 +82,16 @@ export class RedisMetricStore implements MetricsStoreInterface {
|
||||
const date = this.timer.convertMicrosecondsToDate(metric.props.timestamp)
|
||||
const dateToTheMinuteString = this.timer.convertDateToFormattedString(date, 'YYYY-MM-DD HH:mm')
|
||||
const key = `${this.METRIC_PER_USER_PREFIX}:${userUuid.value}:${metric.props.name}:${dateToTheMinuteString}`
|
||||
const itemOperationKey = `${this.METRIC_PER_USER_PREFIX}:${userUuid.value}:${Metric.NAMES.ItemOperation}:${dateToTheMinuteString}`
|
||||
|
||||
const pipeline = this.redisClient.pipeline()
|
||||
|
||||
pipeline.incrbyfloat(key, value)
|
||||
pipeline.incr(
|
||||
`${this.METRIC_PER_USER_PREFIX}:${userUuid.value}:${Metric.NAMES.ItemOperation}:${dateToTheMinuteString}`,
|
||||
)
|
||||
pipeline.incr(itemOperationKey)
|
||||
|
||||
const expirationTime = 60 * 60 * 24
|
||||
pipeline.expire(key, expirationTime)
|
||||
pipeline.expire(itemOperationKey, expirationTime)
|
||||
|
||||
await pipeline.exec()
|
||||
}
|
||||
|
||||
@@ -21,7 +21,9 @@ export class SyncingServer implements ISyncingServer {
|
||||
private strictAbuseProtection: boolean,
|
||||
private itemOperationsAbuseTimeframeLengthInMinutes: number,
|
||||
private itemOperationsAbuseThreshold: number,
|
||||
private freeUsersItemOperationsAbuseThreshold: number,
|
||||
private payloadSizeAbuseThreshold: number,
|
||||
private freeUsersPayloadSizeAbuseThreshold: number,
|
||||
private payloadSizeAbuseTimeframeLengthInMinutes: number,
|
||||
private logger: Logger,
|
||||
) {}
|
||||
@@ -32,11 +34,12 @@ export class SyncingServer implements ISyncingServer {
|
||||
): Promise<void> {
|
||||
try {
|
||||
const userUuid = call.metadata.get('x-user-uuid').pop() as string
|
||||
const isFreeUser = call.metadata.get('x-is-free-user').pop() === 'true'
|
||||
|
||||
const checkForItemOperationsAbuseResult = await this.checkForTrafficAbuse.execute({
|
||||
metricToCheck: Metric.NAMES.ItemOperation,
|
||||
userUuid,
|
||||
threshold: this.itemOperationsAbuseThreshold,
|
||||
threshold: isFreeUser ? this.freeUsersItemOperationsAbuseThreshold : this.itemOperationsAbuseThreshold,
|
||||
timeframeLengthInMinutes: this.itemOperationsAbuseTimeframeLengthInMinutes,
|
||||
})
|
||||
if (checkForItemOperationsAbuseResult.isFailed()) {
|
||||
@@ -45,7 +48,10 @@ export class SyncingServer implements ISyncingServer {
|
||||
})
|
||||
if (this.strictAbuseProtection) {
|
||||
const metadata = new grpc.Metadata()
|
||||
metadata.set('x-sync-error-message', checkForItemOperationsAbuseResult.getError())
|
||||
metadata.set(
|
||||
'x-sync-error-message',
|
||||
'You have exceeded the maximum bandwidth allotted to your account in a 5-minute period. Please wait to try again, or upgrade your account for increased limits.',
|
||||
)
|
||||
metadata.set('x-sync-error-response-code', '429')
|
||||
|
||||
return callback(
|
||||
@@ -63,7 +69,7 @@ export class SyncingServer implements ISyncingServer {
|
||||
const checkForPayloadSizeAbuseResult = await this.checkForTrafficAbuse.execute({
|
||||
metricToCheck: Metric.NAMES.ContentSizeUtilized,
|
||||
userUuid,
|
||||
threshold: this.payloadSizeAbuseThreshold,
|
||||
threshold: isFreeUser ? this.freeUsersPayloadSizeAbuseThreshold : this.payloadSizeAbuseThreshold,
|
||||
timeframeLengthInMinutes: this.payloadSizeAbuseTimeframeLengthInMinutes,
|
||||
})
|
||||
if (checkForPayloadSizeAbuseResult.isFailed()) {
|
||||
@@ -73,7 +79,10 @@ export class SyncingServer implements ISyncingServer {
|
||||
|
||||
if (this.strictAbuseProtection) {
|
||||
const metadata = new grpc.Metadata()
|
||||
metadata.set('x-sync-error-message', checkForPayloadSizeAbuseResult.getError())
|
||||
metadata.set(
|
||||
'x-sync-error-message',
|
||||
'You have exceeded the maximum bandwidth allotted to your account in a 5-minute period. Please wait to try again, or upgrade your account for increased limits.',
|
||||
)
|
||||
metadata.set('x-sync-error-response-code', '429')
|
||||
|
||||
return callback(
|
||||
@@ -158,7 +167,7 @@ export class SyncingServer implements ISyncingServer {
|
||||
readOnlyAccess,
|
||||
sessionUuid: call.metadata.get('x-session-uuid').pop() as string,
|
||||
sharedVaultUuids,
|
||||
isFreeUser: call.metadata.get('x-is-free-user').pop() === 'true',
|
||||
isFreeUser,
|
||||
})
|
||||
if (syncResult.isFailed()) {
|
||||
const metadata = new grpc.Metadata()
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
||||
|
||||
## [1.22.11](https://github.com/standardnotes/server/compare/@standardnotes/websockets-server@1.22.10...@standardnotes/websockets-server@1.22.11) (2024-01-18)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/websockets-server
|
||||
|
||||
## [1.22.10](https://github.com/standardnotes/server/compare/@standardnotes/websockets-server@1.22.9...@standardnotes/websockets-server@1.22.10) (2024-01-04)
|
||||
|
||||
**Note:** Version bump only for package @standardnotes/websockets-server
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@standardnotes/websockets-server",
|
||||
"version": "1.22.10",
|
||||
"version": "1.22.11",
|
||||
"engines": {
|
||||
"node": ">=18.0.0 <21.0.0"
|
||||
},
|
||||
|
||||
@@ -321,6 +321,55 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/client-sns@npm:^3.490.0":
|
||||
version: 3.490.0
|
||||
resolution: "@aws-sdk/client-sns@npm:3.490.0"
|
||||
dependencies:
|
||||
"@aws-crypto/sha256-browser": "npm:3.0.0"
|
||||
"@aws-crypto/sha256-js": "npm:3.0.0"
|
||||
"@aws-sdk/client-sts": "npm:3.490.0"
|
||||
"@aws-sdk/core": "npm:3.490.0"
|
||||
"@aws-sdk/credential-provider-node": "npm:3.490.0"
|
||||
"@aws-sdk/middleware-host-header": "npm:3.489.0"
|
||||
"@aws-sdk/middleware-logger": "npm:3.489.0"
|
||||
"@aws-sdk/middleware-recursion-detection": "npm:3.489.0"
|
||||
"@aws-sdk/middleware-signing": "npm:3.489.0"
|
||||
"@aws-sdk/middleware-user-agent": "npm:3.489.0"
|
||||
"@aws-sdk/region-config-resolver": "npm:3.489.0"
|
||||
"@aws-sdk/types": "npm:3.489.0"
|
||||
"@aws-sdk/util-endpoints": "npm:3.489.0"
|
||||
"@aws-sdk/util-user-agent-browser": "npm:3.489.0"
|
||||
"@aws-sdk/util-user-agent-node": "npm:3.489.0"
|
||||
"@smithy/config-resolver": "npm:^2.0.23"
|
||||
"@smithy/core": "npm:^1.2.2"
|
||||
"@smithy/fetch-http-handler": "npm:^2.3.2"
|
||||
"@smithy/hash-node": "npm:^2.0.18"
|
||||
"@smithy/invalid-dependency": "npm:^2.0.16"
|
||||
"@smithy/middleware-content-length": "npm:^2.0.18"
|
||||
"@smithy/middleware-endpoint": "npm:^2.3.0"
|
||||
"@smithy/middleware-retry": "npm:^2.0.26"
|
||||
"@smithy/middleware-serde": "npm:^2.0.16"
|
||||
"@smithy/middleware-stack": "npm:^2.0.10"
|
||||
"@smithy/node-config-provider": "npm:^2.1.9"
|
||||
"@smithy/node-http-handler": "npm:^2.2.2"
|
||||
"@smithy/protocol-http": "npm:^3.0.12"
|
||||
"@smithy/smithy-client": "npm:^2.2.1"
|
||||
"@smithy/types": "npm:^2.8.0"
|
||||
"@smithy/url-parser": "npm:^2.0.16"
|
||||
"@smithy/util-base64": "npm:^2.0.1"
|
||||
"@smithy/util-body-length-browser": "npm:^2.0.1"
|
||||
"@smithy/util-body-length-node": "npm:^2.1.0"
|
||||
"@smithy/util-defaults-mode-browser": "npm:^2.0.24"
|
||||
"@smithy/util-defaults-mode-node": "npm:^2.0.32"
|
||||
"@smithy/util-endpoints": "npm:^1.0.8"
|
||||
"@smithy/util-retry": "npm:^2.0.9"
|
||||
"@smithy/util-utf8": "npm:^2.0.2"
|
||||
fast-xml-parser: "npm:4.2.5"
|
||||
tslib: "npm:^2.5.0"
|
||||
checksum: 4d8875521c6c8b9577c2917283c75c418d6e8d32d1ebd5d4d049d1f0a834ae49996a34ccb7071d4e1f02d5ffa3e8b27d9f71595435c6d9b1c95b0e4b30c8cab8
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/client-sqs@npm:^3.447.0":
|
||||
version: 3.462.0
|
||||
resolution: "@aws-sdk/client-sqs@npm:3.462.0"
|
||||
@@ -554,6 +603,51 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/client-sso@npm:3.490.0":
|
||||
version: 3.490.0
|
||||
resolution: "@aws-sdk/client-sso@npm:3.490.0"
|
||||
dependencies:
|
||||
"@aws-crypto/sha256-browser": "npm:3.0.0"
|
||||
"@aws-crypto/sha256-js": "npm:3.0.0"
|
||||
"@aws-sdk/core": "npm:3.490.0"
|
||||
"@aws-sdk/middleware-host-header": "npm:3.489.0"
|
||||
"@aws-sdk/middleware-logger": "npm:3.489.0"
|
||||
"@aws-sdk/middleware-recursion-detection": "npm:3.489.0"
|
||||
"@aws-sdk/middleware-user-agent": "npm:3.489.0"
|
||||
"@aws-sdk/region-config-resolver": "npm:3.489.0"
|
||||
"@aws-sdk/types": "npm:3.489.0"
|
||||
"@aws-sdk/util-endpoints": "npm:3.489.0"
|
||||
"@aws-sdk/util-user-agent-browser": "npm:3.489.0"
|
||||
"@aws-sdk/util-user-agent-node": "npm:3.489.0"
|
||||
"@smithy/config-resolver": "npm:^2.0.23"
|
||||
"@smithy/core": "npm:^1.2.2"
|
||||
"@smithy/fetch-http-handler": "npm:^2.3.2"
|
||||
"@smithy/hash-node": "npm:^2.0.18"
|
||||
"@smithy/invalid-dependency": "npm:^2.0.16"
|
||||
"@smithy/middleware-content-length": "npm:^2.0.18"
|
||||
"@smithy/middleware-endpoint": "npm:^2.3.0"
|
||||
"@smithy/middleware-retry": "npm:^2.0.26"
|
||||
"@smithy/middleware-serde": "npm:^2.0.16"
|
||||
"@smithy/middleware-stack": "npm:^2.0.10"
|
||||
"@smithy/node-config-provider": "npm:^2.1.9"
|
||||
"@smithy/node-http-handler": "npm:^2.2.2"
|
||||
"@smithy/protocol-http": "npm:^3.0.12"
|
||||
"@smithy/smithy-client": "npm:^2.2.1"
|
||||
"@smithy/types": "npm:^2.8.0"
|
||||
"@smithy/url-parser": "npm:^2.0.16"
|
||||
"@smithy/util-base64": "npm:^2.0.1"
|
||||
"@smithy/util-body-length-browser": "npm:^2.0.1"
|
||||
"@smithy/util-body-length-node": "npm:^2.1.0"
|
||||
"@smithy/util-defaults-mode-browser": "npm:^2.0.24"
|
||||
"@smithy/util-defaults-mode-node": "npm:^2.0.32"
|
||||
"@smithy/util-endpoints": "npm:^1.0.8"
|
||||
"@smithy/util-retry": "npm:^2.0.9"
|
||||
"@smithy/util-utf8": "npm:^2.0.2"
|
||||
tslib: "npm:^2.5.0"
|
||||
checksum: 785147e3c255897345ac5b06daacdefd6f53952bef74d22b8a48906d5e320481eb2f52235db5364e194b3632360056b3a37124974398abcd7374f21ce9fea3a9
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/client-sts@npm:3.462.0":
|
||||
version: 3.462.0
|
||||
resolution: "@aws-sdk/client-sts@npm:3.462.0"
|
||||
@@ -698,6 +792,54 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/client-sts@npm:3.490.0":
|
||||
version: 3.490.0
|
||||
resolution: "@aws-sdk/client-sts@npm:3.490.0"
|
||||
dependencies:
|
||||
"@aws-crypto/sha256-browser": "npm:3.0.0"
|
||||
"@aws-crypto/sha256-js": "npm:3.0.0"
|
||||
"@aws-sdk/core": "npm:3.490.0"
|
||||
"@aws-sdk/credential-provider-node": "npm:3.490.0"
|
||||
"@aws-sdk/middleware-host-header": "npm:3.489.0"
|
||||
"@aws-sdk/middleware-logger": "npm:3.489.0"
|
||||
"@aws-sdk/middleware-recursion-detection": "npm:3.489.0"
|
||||
"@aws-sdk/middleware-user-agent": "npm:3.489.0"
|
||||
"@aws-sdk/region-config-resolver": "npm:3.489.0"
|
||||
"@aws-sdk/types": "npm:3.489.0"
|
||||
"@aws-sdk/util-endpoints": "npm:3.489.0"
|
||||
"@aws-sdk/util-user-agent-browser": "npm:3.489.0"
|
||||
"@aws-sdk/util-user-agent-node": "npm:3.489.0"
|
||||
"@smithy/config-resolver": "npm:^2.0.23"
|
||||
"@smithy/core": "npm:^1.2.2"
|
||||
"@smithy/fetch-http-handler": "npm:^2.3.2"
|
||||
"@smithy/hash-node": "npm:^2.0.18"
|
||||
"@smithy/invalid-dependency": "npm:^2.0.16"
|
||||
"@smithy/middleware-content-length": "npm:^2.0.18"
|
||||
"@smithy/middleware-endpoint": "npm:^2.3.0"
|
||||
"@smithy/middleware-retry": "npm:^2.0.26"
|
||||
"@smithy/middleware-serde": "npm:^2.0.16"
|
||||
"@smithy/middleware-stack": "npm:^2.0.10"
|
||||
"@smithy/node-config-provider": "npm:^2.1.9"
|
||||
"@smithy/node-http-handler": "npm:^2.2.2"
|
||||
"@smithy/protocol-http": "npm:^3.0.12"
|
||||
"@smithy/smithy-client": "npm:^2.2.1"
|
||||
"@smithy/types": "npm:^2.8.0"
|
||||
"@smithy/url-parser": "npm:^2.0.16"
|
||||
"@smithy/util-base64": "npm:^2.0.1"
|
||||
"@smithy/util-body-length-browser": "npm:^2.0.1"
|
||||
"@smithy/util-body-length-node": "npm:^2.1.0"
|
||||
"@smithy/util-defaults-mode-browser": "npm:^2.0.24"
|
||||
"@smithy/util-defaults-mode-node": "npm:^2.0.32"
|
||||
"@smithy/util-endpoints": "npm:^1.0.8"
|
||||
"@smithy/util-middleware": "npm:^2.0.9"
|
||||
"@smithy/util-retry": "npm:^2.0.9"
|
||||
"@smithy/util-utf8": "npm:^2.0.2"
|
||||
fast-xml-parser: "npm:4.2.5"
|
||||
tslib: "npm:^2.5.0"
|
||||
checksum: 19d1b98694d600cac8a5518a2c05ab8d008c8eaaa25253397462d3d70e1a7c2ae7ab792b6814312536e0a2d140690d38ba166c1c28e82dd02daaa1173675f75c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/core@npm:3.451.0":
|
||||
version: 3.451.0
|
||||
resolution: "@aws-sdk/core@npm:3.451.0"
|
||||
@@ -736,6 +878,20 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/core@npm:3.490.0":
|
||||
version: 3.490.0
|
||||
resolution: "@aws-sdk/core@npm:3.490.0"
|
||||
dependencies:
|
||||
"@smithy/core": "npm:^1.2.2"
|
||||
"@smithy/protocol-http": "npm:^3.0.12"
|
||||
"@smithy/signature-v4": "npm:^2.0.0"
|
||||
"@smithy/smithy-client": "npm:^2.2.1"
|
||||
"@smithy/types": "npm:^2.8.0"
|
||||
tslib: "npm:^2.5.0"
|
||||
checksum: 3e81f378253be05efda42bd4c8d6d3a4969826f42ed48b904d760a4450f8affefe4f9c389bbdd975949831b0569e522db16d0bdfd829e9a6ddf98f08bc593f38
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/credential-provider-env@npm:3.460.0":
|
||||
version: 3.460.0
|
||||
resolution: "@aws-sdk/credential-provider-env@npm:3.460.0"
|
||||
@@ -772,6 +928,18 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/credential-provider-env@npm:3.489.0":
|
||||
version: 3.489.0
|
||||
resolution: "@aws-sdk/credential-provider-env@npm:3.489.0"
|
||||
dependencies:
|
||||
"@aws-sdk/types": "npm:3.489.0"
|
||||
"@smithy/property-provider": "npm:^2.0.0"
|
||||
"@smithy/types": "npm:^2.8.0"
|
||||
tslib: "npm:^2.5.0"
|
||||
checksum: 95ab96ee49a3ebf7957feb97987c2863c280c0daa67dcb5168874b8da3d807909e6b494405d5e42c33871a474db8f252ccd0d5eb2af55430a03d023eb9525c5c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/credential-provider-ini@npm:3.460.0":
|
||||
version: 3.460.0
|
||||
resolution: "@aws-sdk/credential-provider-ini@npm:3.460.0"
|
||||
@@ -826,6 +994,24 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/credential-provider-ini@npm:3.490.0":
|
||||
version: 3.490.0
|
||||
resolution: "@aws-sdk/credential-provider-ini@npm:3.490.0"
|
||||
dependencies:
|
||||
"@aws-sdk/credential-provider-env": "npm:3.489.0"
|
||||
"@aws-sdk/credential-provider-process": "npm:3.489.0"
|
||||
"@aws-sdk/credential-provider-sso": "npm:3.490.0"
|
||||
"@aws-sdk/credential-provider-web-identity": "npm:3.489.0"
|
||||
"@aws-sdk/types": "npm:3.489.0"
|
||||
"@smithy/credential-provider-imds": "npm:^2.0.0"
|
||||
"@smithy/property-provider": "npm:^2.0.0"
|
||||
"@smithy/shared-ini-file-loader": "npm:^2.0.6"
|
||||
"@smithy/types": "npm:^2.8.0"
|
||||
tslib: "npm:^2.5.0"
|
||||
checksum: 4e4cd2633a4ea64e88b353bf85e9efc569704d6be5eb48845cb5bfe378706fe0f942d62c958acabf050d6778576b69bcce9dffd74a75ef75c5b5e76b972c3998
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/credential-provider-node@npm:3.460.0":
|
||||
version: 3.460.0
|
||||
resolution: "@aws-sdk/credential-provider-node@npm:3.460.0"
|
||||
@@ -883,6 +1069,25 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/credential-provider-node@npm:3.490.0":
|
||||
version: 3.490.0
|
||||
resolution: "@aws-sdk/credential-provider-node@npm:3.490.0"
|
||||
dependencies:
|
||||
"@aws-sdk/credential-provider-env": "npm:3.489.0"
|
||||
"@aws-sdk/credential-provider-ini": "npm:3.490.0"
|
||||
"@aws-sdk/credential-provider-process": "npm:3.489.0"
|
||||
"@aws-sdk/credential-provider-sso": "npm:3.490.0"
|
||||
"@aws-sdk/credential-provider-web-identity": "npm:3.489.0"
|
||||
"@aws-sdk/types": "npm:3.489.0"
|
||||
"@smithy/credential-provider-imds": "npm:^2.0.0"
|
||||
"@smithy/property-provider": "npm:^2.0.0"
|
||||
"@smithy/shared-ini-file-loader": "npm:^2.0.6"
|
||||
"@smithy/types": "npm:^2.8.0"
|
||||
tslib: "npm:^2.5.0"
|
||||
checksum: 2f8141c3e17935d418e10b5b2df8eba4090dee40e53855bc5ddc5357ef80ef769df2e157002ebbce014946dcc1553200c2bd962f36602fe85e788423652d7e46
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/credential-provider-process@npm:3.460.0":
|
||||
version: 3.460.0
|
||||
resolution: "@aws-sdk/credential-provider-process@npm:3.460.0"
|
||||
@@ -922,6 +1127,19 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/credential-provider-process@npm:3.489.0":
|
||||
version: 3.489.0
|
||||
resolution: "@aws-sdk/credential-provider-process@npm:3.489.0"
|
||||
dependencies:
|
||||
"@aws-sdk/types": "npm:3.489.0"
|
||||
"@smithy/property-provider": "npm:^2.0.0"
|
||||
"@smithy/shared-ini-file-loader": "npm:^2.0.6"
|
||||
"@smithy/types": "npm:^2.8.0"
|
||||
tslib: "npm:^2.5.0"
|
||||
checksum: 42f4f5f21de3d29425ac32770707d908b613e7bfc4018ccfa1321a0d1f263364d4df6500268a2c7067b36aba7b1245481a3cd1db0bad7fc5f92a39616997b847
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/credential-provider-sso@npm:3.460.0":
|
||||
version: 3.460.0
|
||||
resolution: "@aws-sdk/credential-provider-sso@npm:3.460.0"
|
||||
@@ -967,6 +1185,21 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/credential-provider-sso@npm:3.490.0":
|
||||
version: 3.490.0
|
||||
resolution: "@aws-sdk/credential-provider-sso@npm:3.490.0"
|
||||
dependencies:
|
||||
"@aws-sdk/client-sso": "npm:3.490.0"
|
||||
"@aws-sdk/token-providers": "npm:3.489.0"
|
||||
"@aws-sdk/types": "npm:3.489.0"
|
||||
"@smithy/property-provider": "npm:^2.0.0"
|
||||
"@smithy/shared-ini-file-loader": "npm:^2.0.6"
|
||||
"@smithy/types": "npm:^2.8.0"
|
||||
tslib: "npm:^2.5.0"
|
||||
checksum: ef2eff8fbc6f3e7a4cd5dfd3eeb88d4ce4a3841813bd405a7f52ce650795a5bcf24363632aaa6fb7a88e980fdf4684c899bd74f83323a2f9c9b6d550746e7ef3
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/credential-provider-web-identity@npm:3.460.0":
|
||||
version: 3.460.0
|
||||
resolution: "@aws-sdk/credential-provider-web-identity@npm:3.460.0"
|
||||
@@ -1003,6 +1236,18 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/credential-provider-web-identity@npm:3.489.0":
|
||||
version: 3.489.0
|
||||
resolution: "@aws-sdk/credential-provider-web-identity@npm:3.489.0"
|
||||
dependencies:
|
||||
"@aws-sdk/types": "npm:3.489.0"
|
||||
"@smithy/property-provider": "npm:^2.0.0"
|
||||
"@smithy/types": "npm:^2.8.0"
|
||||
tslib: "npm:^2.5.0"
|
||||
checksum: 911bc3fd2830167218083a42743360e91a04fe06bfe25a6108d7be94a851848ec9563cf7287c504011c3d88307d80f3340c657271ecf356995f1b6e369040cc6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/middleware-bucket-endpoint@npm:3.484.0":
|
||||
version: 3.484.0
|
||||
resolution: "@aws-sdk/middleware-bucket-endpoint@npm:3.484.0"
|
||||
@@ -1082,6 +1327,18 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/middleware-host-header@npm:3.489.0":
|
||||
version: 3.489.0
|
||||
resolution: "@aws-sdk/middleware-host-header@npm:3.489.0"
|
||||
dependencies:
|
||||
"@aws-sdk/types": "npm:3.489.0"
|
||||
"@smithy/protocol-http": "npm:^3.0.12"
|
||||
"@smithy/types": "npm:^2.8.0"
|
||||
tslib: "npm:^2.5.0"
|
||||
checksum: 3f80f716911369f27be55b553e6be74f006039b8ae4888440ccb503c74e9b9dfcf49c98a0582e3f9c84e89de7dad4199fb054c27e56c24c33238c2ad13e46433
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/middleware-location-constraint@npm:3.468.0":
|
||||
version: 3.468.0
|
||||
resolution: "@aws-sdk/middleware-location-constraint@npm:3.468.0"
|
||||
@@ -1126,6 +1383,17 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/middleware-logger@npm:3.489.0":
|
||||
version: 3.489.0
|
||||
resolution: "@aws-sdk/middleware-logger@npm:3.489.0"
|
||||
dependencies:
|
||||
"@aws-sdk/types": "npm:3.489.0"
|
||||
"@smithy/types": "npm:^2.8.0"
|
||||
tslib: "npm:^2.5.0"
|
||||
checksum: 0bbf9d08c70cf1d87c67b3aed49ce1e0252b3c654a4e878648a56d05c59a4b5c23485acb6d9804cdfa9add9f88dcaefba249128d405a165ecf6a141e0217974f
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/middleware-recursion-detection@npm:3.460.0":
|
||||
version: 3.460.0
|
||||
resolution: "@aws-sdk/middleware-recursion-detection@npm:3.460.0"
|
||||
@@ -1162,6 +1430,18 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/middleware-recursion-detection@npm:3.489.0":
|
||||
version: 3.489.0
|
||||
resolution: "@aws-sdk/middleware-recursion-detection@npm:3.489.0"
|
||||
dependencies:
|
||||
"@aws-sdk/types": "npm:3.489.0"
|
||||
"@smithy/protocol-http": "npm:^3.0.12"
|
||||
"@smithy/types": "npm:^2.8.0"
|
||||
tslib: "npm:^2.5.0"
|
||||
checksum: 91eb0b3b466478b27fd7f3e7f09a9596fe91fb50f1101ff2ed5b2d28e59e810797336a19917a5e9bd61ddf0aa52d210ff4273582bfc779910eece8a7ea0a8461
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/middleware-sdk-s3@npm:3.484.0":
|
||||
version: 3.484.0
|
||||
resolution: "@aws-sdk/middleware-sdk-s3@npm:3.484.0"
|
||||
@@ -1262,6 +1542,21 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/middleware-signing@npm:3.489.0":
|
||||
version: 3.489.0
|
||||
resolution: "@aws-sdk/middleware-signing@npm:3.489.0"
|
||||
dependencies:
|
||||
"@aws-sdk/types": "npm:3.489.0"
|
||||
"@smithy/property-provider": "npm:^2.0.0"
|
||||
"@smithy/protocol-http": "npm:^3.0.12"
|
||||
"@smithy/signature-v4": "npm:^2.0.0"
|
||||
"@smithy/types": "npm:^2.8.0"
|
||||
"@smithy/util-middleware": "npm:^2.0.9"
|
||||
tslib: "npm:^2.5.0"
|
||||
checksum: 6fedba456932f5a80c1604a841c08c74de9a091db389f6561f0f475630c643e309e3ede5bb4c96002a7fc17ac30eb9b6a8dd12989235e50aefd316ab282975a1
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/middleware-ssec@npm:3.468.0":
|
||||
version: 3.468.0
|
||||
resolution: "@aws-sdk/middleware-ssec@npm:3.468.0"
|
||||
@@ -1312,6 +1607,19 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/middleware-user-agent@npm:3.489.0":
|
||||
version: 3.489.0
|
||||
resolution: "@aws-sdk/middleware-user-agent@npm:3.489.0"
|
||||
dependencies:
|
||||
"@aws-sdk/types": "npm:3.489.0"
|
||||
"@aws-sdk/util-endpoints": "npm:3.489.0"
|
||||
"@smithy/protocol-http": "npm:^3.0.12"
|
||||
"@smithy/types": "npm:^2.8.0"
|
||||
tslib: "npm:^2.5.0"
|
||||
checksum: 51fc7a8a03db40ccef888725c4893951dd4114077851225e691b3144924046272c75a2263f8651723977e5aac9463ed6d470c0b6e13e1555cc59f2e6d4754329
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/region-config-resolver@npm:3.451.0":
|
||||
version: 3.451.0
|
||||
resolution: "@aws-sdk/region-config-resolver@npm:3.451.0"
|
||||
@@ -1351,6 +1659,20 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/region-config-resolver@npm:3.489.0":
|
||||
version: 3.489.0
|
||||
resolution: "@aws-sdk/region-config-resolver@npm:3.489.0"
|
||||
dependencies:
|
||||
"@aws-sdk/types": "npm:3.489.0"
|
||||
"@smithy/node-config-provider": "npm:^2.1.9"
|
||||
"@smithy/types": "npm:^2.8.0"
|
||||
"@smithy/util-config-provider": "npm:^2.1.0"
|
||||
"@smithy/util-middleware": "npm:^2.0.9"
|
||||
tslib: "npm:^2.5.0"
|
||||
checksum: 045a630c94638a05b60f8d4805ff0f0709c39201e44f4c3453c8fc1d6cf331a550bb5e74980cadc86436a67786b7fc34380a25503d720e160b74c1eff434abaa
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/signature-v4-multi-region@npm:3.484.0":
|
||||
version: 3.484.0
|
||||
resolution: "@aws-sdk/signature-v4-multi-region@npm:3.484.0"
|
||||
@@ -1500,6 +1822,51 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/token-providers@npm:3.489.0":
|
||||
version: 3.489.0
|
||||
resolution: "@aws-sdk/token-providers@npm:3.489.0"
|
||||
dependencies:
|
||||
"@aws-crypto/sha256-browser": "npm:3.0.0"
|
||||
"@aws-crypto/sha256-js": "npm:3.0.0"
|
||||
"@aws-sdk/middleware-host-header": "npm:3.489.0"
|
||||
"@aws-sdk/middleware-logger": "npm:3.489.0"
|
||||
"@aws-sdk/middleware-recursion-detection": "npm:3.489.0"
|
||||
"@aws-sdk/middleware-user-agent": "npm:3.489.0"
|
||||
"@aws-sdk/region-config-resolver": "npm:3.489.0"
|
||||
"@aws-sdk/types": "npm:3.489.0"
|
||||
"@aws-sdk/util-endpoints": "npm:3.489.0"
|
||||
"@aws-sdk/util-user-agent-browser": "npm:3.489.0"
|
||||
"@aws-sdk/util-user-agent-node": "npm:3.489.0"
|
||||
"@smithy/config-resolver": "npm:^2.0.23"
|
||||
"@smithy/fetch-http-handler": "npm:^2.3.2"
|
||||
"@smithy/hash-node": "npm:^2.0.18"
|
||||
"@smithy/invalid-dependency": "npm:^2.0.16"
|
||||
"@smithy/middleware-content-length": "npm:^2.0.18"
|
||||
"@smithy/middleware-endpoint": "npm:^2.3.0"
|
||||
"@smithy/middleware-retry": "npm:^2.0.26"
|
||||
"@smithy/middleware-serde": "npm:^2.0.16"
|
||||
"@smithy/middleware-stack": "npm:^2.0.10"
|
||||
"@smithy/node-config-provider": "npm:^2.1.9"
|
||||
"@smithy/node-http-handler": "npm:^2.2.2"
|
||||
"@smithy/property-provider": "npm:^2.0.0"
|
||||
"@smithy/protocol-http": "npm:^3.0.12"
|
||||
"@smithy/shared-ini-file-loader": "npm:^2.0.6"
|
||||
"@smithy/smithy-client": "npm:^2.2.1"
|
||||
"@smithy/types": "npm:^2.8.0"
|
||||
"@smithy/url-parser": "npm:^2.0.16"
|
||||
"@smithy/util-base64": "npm:^2.0.1"
|
||||
"@smithy/util-body-length-browser": "npm:^2.0.1"
|
||||
"@smithy/util-body-length-node": "npm:^2.1.0"
|
||||
"@smithy/util-defaults-mode-browser": "npm:^2.0.24"
|
||||
"@smithy/util-defaults-mode-node": "npm:^2.0.32"
|
||||
"@smithy/util-endpoints": "npm:^1.0.8"
|
||||
"@smithy/util-retry": "npm:^2.0.9"
|
||||
"@smithy/util-utf8": "npm:^2.0.2"
|
||||
tslib: "npm:^2.5.0"
|
||||
checksum: ee7a20eff71284f33a2f9ad9aeb0f8a3c2a40adbb8b88053a903a64115b3b802aa9a8f8de781b422d88340b8d6fe0ff6c255c1ae6792bde569fed817d7a8933c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/types@npm:3.460.0":
|
||||
version: 3.460.0
|
||||
resolution: "@aws-sdk/types@npm:3.460.0"
|
||||
@@ -1530,6 +1897,16 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/types@npm:3.489.0":
|
||||
version: 3.489.0
|
||||
resolution: "@aws-sdk/types@npm:3.489.0"
|
||||
dependencies:
|
||||
"@smithy/types": "npm:^2.8.0"
|
||||
tslib: "npm:^2.5.0"
|
||||
checksum: 48778dad14f6966e974b14b9d421372846c0242e2aa47f76a8161b22f5d9430bf530b88163d913a8acad48480199fc99a012df3689e94a317c1dc875f4a353ed
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/types@npm:^3.222.0":
|
||||
version: 3.342.0
|
||||
resolution: "@aws-sdk/types@npm:3.342.0"
|
||||
@@ -1581,6 +1958,18 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/util-endpoints@npm:3.489.0":
|
||||
version: 3.489.0
|
||||
resolution: "@aws-sdk/util-endpoints@npm:3.489.0"
|
||||
dependencies:
|
||||
"@aws-sdk/types": "npm:3.489.0"
|
||||
"@smithy/types": "npm:^2.8.0"
|
||||
"@smithy/util-endpoints": "npm:^1.0.8"
|
||||
tslib: "npm:^2.5.0"
|
||||
checksum: 68f921982f651be0254040633e602406648a6dafa9c6030a2e97b3a632a21866cb7bac098f3d2212aebf866032a26a9e9b8e53a6531c1773bc4a990d17399e39
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/util-locate-window@npm:^3.0.0":
|
||||
version: 3.310.0
|
||||
resolution: "@aws-sdk/util-locate-window@npm:3.310.0"
|
||||
@@ -1626,6 +2015,18 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/util-user-agent-browser@npm:3.489.0":
|
||||
version: 3.489.0
|
||||
resolution: "@aws-sdk/util-user-agent-browser@npm:3.489.0"
|
||||
dependencies:
|
||||
"@aws-sdk/types": "npm:3.489.0"
|
||||
"@smithy/types": "npm:^2.8.0"
|
||||
bowser: "npm:^2.11.0"
|
||||
tslib: "npm:^2.5.0"
|
||||
checksum: 2bb414b8d8a84f159bc8635796a5eafdeac7d325a8d4bec5e4c735b2f12029b54f750ec53b22f44f2a402aa2e3d7935572e3c77fc60ddaf776f5c34ac8707768
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/util-user-agent-node@npm:3.460.0":
|
||||
version: 3.460.0
|
||||
resolution: "@aws-sdk/util-user-agent-node@npm:3.460.0"
|
||||
@@ -1677,6 +2078,23 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/util-user-agent-node@npm:3.489.0":
|
||||
version: 3.489.0
|
||||
resolution: "@aws-sdk/util-user-agent-node@npm:3.489.0"
|
||||
dependencies:
|
||||
"@aws-sdk/types": "npm:3.489.0"
|
||||
"@smithy/node-config-provider": "npm:^2.1.9"
|
||||
"@smithy/types": "npm:^2.8.0"
|
||||
tslib: "npm:^2.5.0"
|
||||
peerDependencies:
|
||||
aws-crt: ">=1.0.0"
|
||||
peerDependenciesMeta:
|
||||
aws-crt:
|
||||
optional: true
|
||||
checksum: 95dc1e07b6b8b38b8d3bb922ae3619c4910dbc413a24bc5daca6ecaeab6891c2f3765ca85ed64a80532adfab09fc70e1d224c7679d763cecebe1ec48e4975bc8
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@aws-sdk/util-utf8-browser@npm:^3.0.0":
|
||||
version: 3.259.0
|
||||
resolution: "@aws-sdk/util-utf8-browser@npm:3.259.0"
|
||||
@@ -5327,6 +5745,7 @@ __metadata:
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@standardnotes/api-gateway@workspace:packages/api-gateway"
|
||||
dependencies:
|
||||
"@aws-sdk/client-sns": "npm:^3.490.0"
|
||||
"@grpc/grpc-js": "npm:^1.9.13"
|
||||
"@standardnotes/domain-core": "workspace:^"
|
||||
"@standardnotes/domain-events": "workspace:*"
|
||||
|
||||
Reference in New Issue
Block a user