mirror of
https://github.com/hcengineering/platform.git
synced 2025-05-28 19:08:01 +00:00
UBERF-9114: Optimize memory usage (#7643)
Some checks are pending
CI / build (push) Waiting to run
CI / svelte-check (push) Blocked by required conditions
CI / formatting (push) Blocked by required conditions
CI / test (push) Blocked by required conditions
CI / uitest (push) Waiting to run
CI / uitest-pg (push) Waiting to run
CI / uitest-qms (push) Waiting to run
CI / docker-build (push) Blocked by required conditions
CI / dist-build (push) Blocked by required conditions
Some checks are pending
CI / build (push) Waiting to run
CI / svelte-check (push) Blocked by required conditions
CI / formatting (push) Blocked by required conditions
CI / test (push) Blocked by required conditions
CI / uitest (push) Waiting to run
CI / uitest-pg (push) Waiting to run
CI / uitest-qms (push) Waiting to run
CI / docker-build (push) Blocked by required conditions
CI / dist-build (push) Blocked by required conditions
Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
This commit is contained in:
parent
5263a41cb9
commit
7702c5ef83
10
.vscode/launch.json
vendored
10
.vscode/launch.json
vendored
@ -54,7 +54,7 @@
|
||||
"MODEL_JSON": "${workspaceRoot}/models/all/bundle/model.json",
|
||||
// "SERVER_PROVIDER":"uweb"
|
||||
"SERVER_PROVIDER":"ws",
|
||||
"MODEL_VERSION": "0.6.287",
|
||||
"MODEL_VERSION": "0.6.382",
|
||||
// "VERSION": "0.6.289",
|
||||
"ELASTIC_INDEX_NAME": "local_storage_index",
|
||||
"UPLOAD_URL": "/files",
|
||||
@ -165,7 +165,7 @@
|
||||
"MINIO_ACCESS_KEY": "minioadmin",
|
||||
"MINIO_SECRET_KEY": "minioadmin",
|
||||
"MINIO_ENDPOINT": "localhost",
|
||||
"MODEL_VERSION": "v0.6.287",
|
||||
"MODEL_VERSION": "v0.6.382",
|
||||
"WS_OPERATION": "all+backup",
|
||||
"BACKUP_STORAGE": "minio|minio?accessKey=minioadmin&secretKey=minioadmin",
|
||||
"BACKUP_BUCKET": "dev-backups",
|
||||
@ -197,7 +197,7 @@
|
||||
"MINIO_ACCESS_KEY": "minioadmin",
|
||||
"MINIO_SECRET_KEY": "minioadmin",
|
||||
"MINIO_ENDPOINT": "localhost",
|
||||
"MODEL_VERSION": "v0.6.287",
|
||||
"MODEL_VERSION": "v0.6.382",
|
||||
"WS_OPERATION": "all+backup",
|
||||
"BACKUP_STORAGE": "minio|minio?accessKey=minioadmin&secretKey=minioadmin",
|
||||
"BACKUP_BUCKET": "dev-backups",
|
||||
@ -325,7 +325,7 @@
|
||||
"ACCOUNTS_URL": "http://localhost:3000",
|
||||
"TELEGRAM_DATABASE": "telegram-service",
|
||||
"REKONI_URL": "http://localhost:4004",
|
||||
"MODEL_VERSION": "0.6.287"
|
||||
"MODEL_VERSION": "0.6.382"
|
||||
},
|
||||
"runtimeVersion": "20",
|
||||
"runtimeArgs": ["--nolazy", "-r", "ts-node/register"],
|
||||
@ -352,7 +352,7 @@
|
||||
"MONGO_URL": "mongodb://localhost:27017",
|
||||
"TELEGRAM_DATABASE": "telegram-service",
|
||||
"REKONI_URL": "http://localhost:4004",
|
||||
"MODEL_VERSION": "0.6.287"
|
||||
"MODEL_VERSION": "0.6.382"
|
||||
},
|
||||
"runtimeArgs": ["--nolazy", "-r", "ts-node/register"],
|
||||
"sourceMaps": true,
|
||||
|
@ -1143,8 +1143,8 @@ dependencies:
|
||||
specifier: file:./projects/workspace-service.tgz
|
||||
version: file:projects/workspace-service.tgz
|
||||
'@sentry/node':
|
||||
specifier: ^7.103.0
|
||||
version: 7.118.0
|
||||
specifier: ^8.48.0
|
||||
version: 8.48.0
|
||||
'@sentry/svelte':
|
||||
specifier: ~7.101.0
|
||||
version: 7.101.1(svelte@4.2.19)
|
||||
@ -5348,6 +5348,464 @@ packages:
|
||||
aggregate-error: 3.1.0
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/api-logs@0.53.0:
|
||||
resolution: {integrity: sha512-8HArjKx+RaAI8uEIgcORbZIPklyh1YLjPSBus8hjRmvLi6DeFzgOcdZ7KwPabKj8mXF8dX0hyfAyGfycz0DbFw==}
|
||||
engines: {node: '>=14'}
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/api-logs@0.56.0:
|
||||
resolution: {integrity: sha512-Wr39+94UNNG3Ei9nv3pHd4AJ63gq5nSemMRpCd8fPwDL9rN3vK26lzxfH27mw16XzOSO+TpyQwBAMaLxaPWG0g==}
|
||||
engines: {node: '>=14'}
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/api@1.9.0:
|
||||
resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==}
|
||||
engines: {node: '>=8.0.0'}
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/context-async-hooks@1.30.0(@opentelemetry/api@1.9.0):
|
||||
resolution: {integrity: sha512-roCetrG/cz0r/gugQm/jFo75UxblVvHaNSRoR0kSSRSzXFAiIBqFCZuH458BHBNRtRe+0yJdIJ21L9t94bw7+g==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': '>=1.0.0 <1.10.0'
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/core@1.29.0(@opentelemetry/api@1.9.0):
|
||||
resolution: {integrity: sha512-gmT7vAreXl0DTHD2rVZcw3+l2g84+5XiHIqdBUxXbExymPCvSsGOpiwMmn8nkiJur28STV31wnhIDrzWDPzjfA==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': '>=1.0.0 <1.10.0'
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/semantic-conventions': 1.28.0
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/core@1.30.0(@opentelemetry/api@1.9.0):
|
||||
resolution: {integrity: sha512-Q/3u/K73KUjTCnFUP97ZY+pBjQ1kPEgjOfXj/bJl8zW7GbXdkw6cwuyZk6ZTXkVgCBsYRYUzx4fvYK1jxdb9MA==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': '>=1.0.0 <1.10.0'
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/semantic-conventions': 1.28.0
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/instrumentation-amqplib@0.45.0(@opentelemetry/api@1.9.0):
|
||||
resolution: {integrity: sha512-SlKLsOS65NGMIBG1Lh/hLrMDU9WzTUF25apnV6ZmWZB1bBmUwan7qrwwrTu1cL5LzJWCXOdZPuTaxP7pC9qxnQ==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': ^1.3.0
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/semantic-conventions': 1.28.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/instrumentation-connect@0.42.0(@opentelemetry/api@1.9.0):
|
||||
resolution: {integrity: sha512-bOoYHBmbnq/jFaLHmXJ55VQ6jrH5fHDMAPjFM0d3JvR0dvIqW7anEoNC33QqYGFYUfVJ50S0d/eoyF61ALqQuA==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': ^1.3.0
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/semantic-conventions': 1.28.0
|
||||
'@types/connect': 3.4.36
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/instrumentation-dataloader@0.15.0(@opentelemetry/api@1.9.0):
|
||||
resolution: {integrity: sha512-5fP35A2jUPk4SerVcduEkpbRAIoqa2PaP5rWumn01T1uSbavXNccAr3Xvx1N6xFtZxXpLJq4FYqGFnMgDWgVng==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': ^1.3.0
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/instrumentation-express@0.46.0(@opentelemetry/api@1.9.0):
|
||||
resolution: {integrity: sha512-BCEClDj/HPq/1xYRAlOr6z+OUnbp2eFp18DSrgyQz4IT9pkdYk8eWHnMi9oZSqlC6J5mQzkFmaW5RrKb1GLQhg==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': ^1.3.0
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/semantic-conventions': 1.28.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/instrumentation-fastify@0.43.0(@opentelemetry/api@1.9.0):
|
||||
resolution: {integrity: sha512-Lmdsg7tYiV+K3/NKVAQfnnLNGmakUOFdB0PhoTh2aXuSyCmyNnnDvhn2MsArAPTZ68wnD5Llh5HtmiuTkf+DyQ==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': ^1.3.0
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/semantic-conventions': 1.28.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/instrumentation-fs@0.18.0(@opentelemetry/api@1.9.0):
|
||||
resolution: {integrity: sha512-kC40y6CEMONm8/MWwoF5GHWIC7gOdF+g3sgsjfwJaUkgD6bdWV+FgG0XApqSbTQndICKzw3RonVk8i7s6mHqhA==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': ^1.3.0
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/instrumentation-generic-pool@0.42.0(@opentelemetry/api@1.9.0):
|
||||
resolution: {integrity: sha512-J4QxqiQ1imtB9ogzsOnHra0g3dmmLAx4JCeoK3o0rFes1OirljNHnO8Hsj4s1jAir8WmWvnEEQO1y8yk6j2tog==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': ^1.3.0
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/instrumentation-graphql@0.46.0(@opentelemetry/api@1.9.0):
|
||||
resolution: {integrity: sha512-tplk0YWINSECcK89PGM7IVtOYenXyoOuhOQlN0X0YrcDUfMS4tZMKkVc0vyhNWYYrexnUHwNry2YNBNugSpjlQ==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': ^1.3.0
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/instrumentation-hapi@0.44.0(@opentelemetry/api@1.9.0):
|
||||
resolution: {integrity: sha512-4HdNIMNXWK1O6nsaQOrACo83QWEVoyNODTdVDbUqtqXiv2peDfD0RAPhSQlSGWLPw3S4d9UoOmrV7s2HYj6T2A==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': ^1.3.0
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/semantic-conventions': 1.28.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/instrumentation-http@0.56.0(@opentelemetry/api@1.9.0):
|
||||
resolution: {integrity: sha512-/bWHBUAq8VoATnH9iLk5w8CE9+gj+RgYSUphe7hry472n6fYl7+4PvuScoQMdmSUTprKq/gyr2kOWL6zrC7FkQ==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': ^1.3.0
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/core': 1.29.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/semantic-conventions': 1.28.0
|
||||
forwarded-parse: 2.1.2
|
||||
semver: 7.6.3
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/instrumentation-ioredis@0.46.0(@opentelemetry/api@1.9.0):
|
||||
resolution: {integrity: sha512-sOdsq8oGi29V58p1AkefHvuB3l2ymP1IbxRIX3y4lZesQWKL8fLhBmy8xYjINSQ5gHzWul2yoz7pe7boxhZcqQ==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': ^1.3.0
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/redis-common': 0.36.2
|
||||
'@opentelemetry/semantic-conventions': 1.28.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/instrumentation-kafkajs@0.6.0(@opentelemetry/api@1.9.0):
|
||||
resolution: {integrity: sha512-MGQrzqEUAl0tacKJUFpuNHJesyTi51oUzSVizn7FdvJplkRIdS11FukyZBZJEscofSEdk7Ycmg+kNMLi5QHUFg==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': ^1.3.0
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/semantic-conventions': 1.28.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/instrumentation-knex@0.43.0(@opentelemetry/api@1.9.0):
|
||||
resolution: {integrity: sha512-mOp0TRQNFFSBj5am0WF67fRO7UZMUmsF3/7HSDja9g3H4pnj+4YNvWWyZn4+q0rGrPtywminAXe0rxtgaGYIqg==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': ^1.3.0
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/semantic-conventions': 1.28.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/instrumentation-koa@0.46.0(@opentelemetry/api@1.9.0):
|
||||
resolution: {integrity: sha512-RcWXMQdJQANnPUaXbHY5G0Fg6gmleZ/ZtZeSsekWPaZmQq12FGk0L1UwodIgs31OlYfviAZ4yTeytoSUkgo5vQ==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': ^1.3.0
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/semantic-conventions': 1.28.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/instrumentation-lru-memoizer@0.43.0(@opentelemetry/api@1.9.0):
|
||||
resolution: {integrity: sha512-fZc+1eJUV+tFxaB3zkbupiA8SL3vhDUq89HbDNg1asweYrEb9OlHIB+Ot14ZiHUc1qCmmWmZHbPTwa56mVVwzg==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': ^1.3.0
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/instrumentation-mongodb@0.50.0(@opentelemetry/api@1.9.0):
|
||||
resolution: {integrity: sha512-DtwJMjYFXFT5auAvv8aGrBj1h3ciA/dXQom11rxL7B1+Oy3FopSpanvwYxJ+z0qmBrQ1/iMuWELitYqU4LnlkQ==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': ^1.3.0
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/semantic-conventions': 1.28.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/instrumentation-mongoose@0.45.0(@opentelemetry/api@1.9.0):
|
||||
resolution: {integrity: sha512-zHgNh+A01C5baI2mb5dAGyMC7DWmUpOfwpV8axtC0Hd5Uzqv+oqKgKbVDIVhOaDkPxjgVJwYF9YQZl2pw2qxIA==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': ^1.3.0
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/semantic-conventions': 1.28.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/instrumentation-mysql2@0.44.0(@opentelemetry/api@1.9.0):
|
||||
resolution: {integrity: sha512-e9QY4AGsjGFwmfHd6kBa4yPaQZjAq2FuxMb0BbKlXCAjG+jwqw+sr9xWdJGR60jMsTq52hx3mAlE3dUJ9BipxQ==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': ^1.3.0
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/semantic-conventions': 1.28.0
|
||||
'@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/instrumentation-mysql@0.44.0(@opentelemetry/api@1.9.0):
|
||||
resolution: {integrity: sha512-al7jbXvT/uT1KV8gdNDzaWd5/WXf+mrjrsF0/NtbnqLa0UUFGgQnoK3cyborgny7I+KxWhL8h7YPTf6Zq4nKsg==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': ^1.3.0
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/semantic-conventions': 1.28.0
|
||||
'@types/mysql': 2.15.26
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/instrumentation-nestjs-core@0.43.0(@opentelemetry/api@1.9.0):
|
||||
resolution: {integrity: sha512-NEo4RU7HTjiaXk3curqXUvCb9alRiFWxQY//+hvDXwWLlADX2vB6QEmVCeEZrKO+6I/tBrI4vNdAnbCY9ldZVg==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': ^1.3.0
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/semantic-conventions': 1.28.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/instrumentation-pg@0.49.0(@opentelemetry/api@1.9.0):
|
||||
resolution: {integrity: sha512-3alvNNjPXVdAPdY1G7nGRVINbDxRK02+KAugDiEpzw0jFQfU8IzFkSWA4jyU4/GbMxKvHD+XIOEfSjpieSodKw==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': ^1.3.0
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/semantic-conventions': 1.27.0
|
||||
'@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.0)
|
||||
'@types/pg': 8.6.1
|
||||
'@types/pg-pool': 2.0.6
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/instrumentation-redis-4@0.45.0(@opentelemetry/api@1.9.0):
|
||||
resolution: {integrity: sha512-Sjgym1xn3mdxPRH5CNZtoz+bFd3E3NlGIu7FoYr4YrQouCc9PbnmoBcmSkEdDy5LYgzNildPgsjx9l0EKNjKTQ==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': ^1.3.0
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/redis-common': 0.36.2
|
||||
'@opentelemetry/semantic-conventions': 1.28.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/instrumentation-tedious@0.17.0(@opentelemetry/api@1.9.0):
|
||||
resolution: {integrity: sha512-yRBz2409an03uVd1Q2jWMt3SqwZqRFyKoWYYX3hBAtPDazJ4w5L+1VOij71TKwgZxZZNdDBXImTQjii+VeuzLg==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': ^1.3.0
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/semantic-conventions': 1.28.0
|
||||
'@types/tedious': 4.0.14
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/instrumentation-undici@0.9.0(@opentelemetry/api@1.9.0):
|
||||
resolution: {integrity: sha512-lxc3cpUZ28CqbrWcUHxGW/ObDpMOYbuxF/ZOzeFZq54P9uJ2Cpa8gcrC9F716mtuiMaekwk8D6n34vg/JtkkxQ==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': ^1.7.0
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/instrumentation@0.53.0(@opentelemetry/api@1.9.0):
|
||||
resolution: {integrity: sha512-DMwg0hy4wzf7K73JJtl95m/e0boSoWhH07rfvHvYzQtBD3Bmv0Wc1x733vyZBqmFm8OjJD0/pfiUg1W3JjFX0A==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': ^1.3.0
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/api-logs': 0.53.0
|
||||
'@types/shimmer': 1.2.0
|
||||
import-in-the-middle: 1.12.0
|
||||
require-in-the-middle: 7.4.0
|
||||
semver: 7.6.3
|
||||
shimmer: 1.2.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/instrumentation@0.56.0(@opentelemetry/api@1.9.0):
|
||||
resolution: {integrity: sha512-2KkGBKE+FPXU1F0zKww+stnlUxUTlBvLCiWdP63Z9sqXYeNI/ziNzsxAp4LAdUcTQmXjw1IWgvm5CAb/BHy99w==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': ^1.3.0
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/api-logs': 0.56.0
|
||||
'@types/shimmer': 1.2.0
|
||||
import-in-the-middle: 1.12.0
|
||||
require-in-the-middle: 7.4.0
|
||||
semver: 7.6.3
|
||||
shimmer: 1.2.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/redis-common@0.36.2:
|
||||
resolution: {integrity: sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g==}
|
||||
engines: {node: '>=14'}
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/resources@1.30.0(@opentelemetry/api@1.9.0):
|
||||
resolution: {integrity: sha512-5mGMjL0Uld/99t7/pcd7CuVtJbkARckLVuiOX84nO8RtLtIz0/J6EOHM2TGvPZ6F4K+XjUq13gMx14w80SVCQg==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': '>=1.0.0 <1.10.0'
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/semantic-conventions': 1.28.0
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/sdk-trace-base@1.30.0(@opentelemetry/api@1.9.0):
|
||||
resolution: {integrity: sha512-RKQDaDIkV7PwizmHw+rE/FgfB2a6MBx+AEVVlAHXRG1YYxLiBpPX2KhmoB99R5vA4b72iJrjle68NDWnbrE9Dg==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': '>=1.0.0 <1.10.0'
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/resources': 1.30.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/semantic-conventions': 1.28.0
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/semantic-conventions@1.27.0:
|
||||
resolution: {integrity: sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==}
|
||||
engines: {node: '>=14'}
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/semantic-conventions@1.28.0:
|
||||
resolution: {integrity: sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==}
|
||||
engines: {node: '>=14'}
|
||||
dev: false
|
||||
|
||||
/@opentelemetry/sql-common@0.40.1(@opentelemetry/api@1.9.0):
|
||||
resolution: {integrity: sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg==}
|
||||
engines: {node: '>=14'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': ^1.1.0
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
|
||||
dev: false
|
||||
|
||||
/@pdf-lib/standard-fonts@1.0.0:
|
||||
resolution: {integrity: sha512-hU30BK9IUN/su0Mn9VdlVKsWBS6GyhVfqjwl1FjZN4TxP6cCw0jP2w7V3Hf5uX7M0AZJ16vey9yE0ny7Sa59ZA==}
|
||||
dependencies:
|
||||
@ -5383,6 +5841,16 @@ packages:
|
||||
resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==}
|
||||
dev: false
|
||||
|
||||
/@prisma/instrumentation@5.22.0:
|
||||
resolution: {integrity: sha512-LxccF392NN37ISGxIurUljZSh1YWnphO34V5a0+T7FVQG2u9bhAXRTJpgmQ3483woVhkraQZFF7cbRrpbw/F4Q==}
|
||||
dependencies:
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/instrumentation': 0.53.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/sdk-trace-base': 1.30.0(@opentelemetry/api@1.9.0)
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@puppeteer/browsers@2.3.0:
|
||||
resolution: {integrity: sha512-ioXoq9gPxkss4MYhD+SFaU9p1IHFUX0ILAWFPyjGaBdjLsYAlZw6j1iLA0N/m12uVHLFDfSYNF7EQccjinIMDA==}
|
||||
engines: {node: '>=18'}
|
||||
@ -5439,15 +5907,6 @@ packages:
|
||||
'@sentry/utils': 7.101.1
|
||||
dev: false
|
||||
|
||||
/@sentry-internal/tracing@7.118.0:
|
||||
resolution: {integrity: sha512-dERAshKlQLrBscHSarhHyUeGsu652bDTUN1FK0m4e3X48M3I5/s+0N880Qjpe5MprNLcINlaIgdQ9jkisvxjfw==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
'@sentry/core': 7.118.0
|
||||
'@sentry/types': 7.118.0
|
||||
'@sentry/utils': 7.118.0
|
||||
dev: false
|
||||
|
||||
/@sentry/browser@7.101.1:
|
||||
resolution: {integrity: sha512-+rIFoWPdO29AHVYsAwq8QEl2Ihv17Xh9Bt2aPFvLTGDA0caHjnx98g2jSOvLIOah6HI7Nwp3Njg2zBEzDtHkNw==}
|
||||
engines: {node: '>=8'}
|
||||
@ -5469,33 +5928,70 @@ packages:
|
||||
'@sentry/utils': 7.101.1
|
||||
dev: false
|
||||
|
||||
/@sentry/core@7.118.0:
|
||||
resolution: {integrity: sha512-ol0xBdp3/K11IMAYSQE0FMxBOOH9hMsb/rjxXWe0hfM5c72CqYWL3ol7voPci0GELJ5CZG+9ImEU1V9r6gK64g==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
'@sentry/types': 7.118.0
|
||||
'@sentry/utils': 7.118.0
|
||||
/@sentry/core@8.48.0:
|
||||
resolution: {integrity: sha512-VGwYgTfLpvJ5LRO5A+qWo1gpo6SfqaGXL9TOzVgBucAdpzbrYHpZ87sEarDVq/4275uk1b0S293/mfsskFczyw==}
|
||||
engines: {node: '>=14.18'}
|
||||
dev: false
|
||||
|
||||
/@sentry/integrations@7.118.0:
|
||||
resolution: {integrity: sha512-C2rR4NvIMjokF8jP5qzSf1o2zxDx7IeYnr8u15Kb2+HdZtX559owALR0hfgwnfeElqMhGlJBaKUWZ48lXJMzCQ==}
|
||||
engines: {node: '>=8'}
|
||||
/@sentry/node@8.48.0:
|
||||
resolution: {integrity: sha512-pnprAuUOc8cxnJdZA09hutHXNsbQZoDgzf3zPyXMNx0ewB/RviFMOgfe7ViX1mIB/oVrcFenXBgO5uvTd7JwPg==}
|
||||
engines: {node: '>=14.18'}
|
||||
dependencies:
|
||||
'@sentry/core': 7.118.0
|
||||
'@sentry/types': 7.118.0
|
||||
'@sentry/utils': 7.118.0
|
||||
localforage: 1.10.0
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/context-async-hooks': 1.30.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation-amqplib': 0.45.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation-connect': 0.42.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation-dataloader': 0.15.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation-express': 0.46.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation-fastify': 0.43.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation-fs': 0.18.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation-generic-pool': 0.42.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation-graphql': 0.46.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation-hapi': 0.44.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation-http': 0.56.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation-ioredis': 0.46.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation-kafkajs': 0.6.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation-knex': 0.43.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation-koa': 0.46.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation-lru-memoizer': 0.43.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation-mongodb': 0.50.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation-mongoose': 0.45.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation-mysql': 0.44.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation-mysql2': 0.44.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation-nestjs-core': 0.43.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation-pg': 0.49.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation-redis-4': 0.45.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation-tedious': 0.17.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation-undici': 0.9.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/resources': 1.30.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/sdk-trace-base': 1.30.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/semantic-conventions': 1.28.0
|
||||
'@prisma/instrumentation': 5.22.0
|
||||
'@sentry/core': 8.48.0
|
||||
'@sentry/opentelemetry': 8.48.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.30.0)(@opentelemetry/instrumentation@0.56.0)(@opentelemetry/sdk-trace-base@1.30.0)(@opentelemetry/semantic-conventions@1.28.0)
|
||||
import-in-the-middle: 1.12.0
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@sentry/node@7.118.0:
|
||||
resolution: {integrity: sha512-79N63DvYKkNPqzmc0cjO+vMZ/nU7+CbE3K3COQNiV7gk58+666G9mRZQJuZVOVebatq5wM5UR0G4LPkwD+J84g==}
|
||||
engines: {node: '>=8'}
|
||||
/@sentry/opentelemetry@8.48.0(@opentelemetry/api@1.9.0)(@opentelemetry/core@1.30.0)(@opentelemetry/instrumentation@0.56.0)(@opentelemetry/sdk-trace-base@1.30.0)(@opentelemetry/semantic-conventions@1.28.0):
|
||||
resolution: {integrity: sha512-1JLXgmIvD3T7xn9ypwWW0V3GirNy4BN2fOUbZau/nUX/Jj5DttSoPn7x7xTaPSpfaA24PiP93zXmJEfZvCk00Q==}
|
||||
engines: {node: '>=14.18'}
|
||||
peerDependencies:
|
||||
'@opentelemetry/api': ^1.9.0
|
||||
'@opentelemetry/core': ^1.29.0
|
||||
'@opentelemetry/instrumentation': ^0.56.0
|
||||
'@opentelemetry/sdk-trace-base': ^1.29.0
|
||||
'@opentelemetry/semantic-conventions': ^1.28.0
|
||||
dependencies:
|
||||
'@sentry-internal/tracing': 7.118.0
|
||||
'@sentry/core': 7.118.0
|
||||
'@sentry/integrations': 7.118.0
|
||||
'@sentry/types': 7.118.0
|
||||
'@sentry/utils': 7.118.0
|
||||
'@opentelemetry/api': 1.9.0
|
||||
'@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/instrumentation': 0.56.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/sdk-trace-base': 1.30.0(@opentelemetry/api@1.9.0)
|
||||
'@opentelemetry/semantic-conventions': 1.28.0
|
||||
'@sentry/core': 8.48.0
|
||||
dev: false
|
||||
|
||||
/@sentry/replay@7.101.1:
|
||||
@ -5527,11 +6023,6 @@ packages:
|
||||
engines: {node: '>=8'}
|
||||
dev: false
|
||||
|
||||
/@sentry/types@7.118.0:
|
||||
resolution: {integrity: sha512-2drqrD2+6kgeg+W/ycmiti3G4lJrV3hGjY9PpJ3bJeXrh6T2+LxKPzlgSEnKFaeQWkXdZ4eaUbtTXVebMjb5JA==}
|
||||
engines: {node: '>=8'}
|
||||
dev: false
|
||||
|
||||
/@sentry/utils@7.101.1:
|
||||
resolution: {integrity: sha512-Nrg0nrEI3nrOCd9SLJ/WGzxS5KMQE4cryLOvrDcHJRWpsSyGBF1hLLerk84Nsw/0myMsn7zTYU+xoq7idNsX5A==}
|
||||
engines: {node: '>=8'}
|
||||
@ -5539,13 +6030,6 @@ packages:
|
||||
'@sentry/types': 7.101.1
|
||||
dev: false
|
||||
|
||||
/@sentry/utils@7.118.0:
|
||||
resolution: {integrity: sha512-43qItc/ydxZV1Zb3Kn2M54RwL9XXFa3IAYBO8S82Qvq5YUYmU2AmJ1jgg7DabXlVSWgMA1HntwqnOV3JLaEnTQ==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
'@sentry/types': 7.118.0
|
||||
dev: false
|
||||
|
||||
/@signpdf/placeholder-pdf-lib@3.2.4(pdf-lib@1.17.1):
|
||||
resolution: {integrity: sha512-pNYzvLPWiHPir86pDWOK015S0whjNVvItvlTo9kwk1+99l2luIrwmubEvPjxSmDAWQ67UpKxA5lEYQsbZ7Q/og==}
|
||||
engines: {node: '>=12', yarn: '>=1.22.18'}
|
||||
@ -6610,6 +7094,12 @@ packages:
|
||||
'@types/node': 20.11.19
|
||||
dev: false
|
||||
|
||||
/@types/connect@3.4.36:
|
||||
resolution: {integrity: sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==}
|
||||
dependencies:
|
||||
'@types/node': 20.11.19
|
||||
dev: false
|
||||
|
||||
/@types/connect@3.4.38:
|
||||
resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==}
|
||||
dependencies:
|
||||
@ -7137,6 +7627,12 @@ packages:
|
||||
'@types/node': 20.11.19
|
||||
dev: false
|
||||
|
||||
/@types/mysql@2.15.26:
|
||||
resolution: {integrity: sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ==}
|
||||
dependencies:
|
||||
'@types/node': 20.11.19
|
||||
dev: false
|
||||
|
||||
/@types/node-fetch@2.6.11:
|
||||
resolution: {integrity: sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==}
|
||||
dependencies:
|
||||
@ -7219,6 +7715,20 @@ packages:
|
||||
- worker-loader
|
||||
dev: false
|
||||
|
||||
/@types/pg-pool@2.0.6:
|
||||
resolution: {integrity: sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==}
|
||||
dependencies:
|
||||
'@types/pg': 8.6.1
|
||||
dev: false
|
||||
|
||||
/@types/pg@8.6.1:
|
||||
resolution: {integrity: sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==}
|
||||
dependencies:
|
||||
'@types/node': 20.11.19
|
||||
pg-protocol: 1.7.0
|
||||
pg-types: 2.2.0
|
||||
dev: false
|
||||
|
||||
/@types/plist@3.0.5:
|
||||
resolution: {integrity: sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA==}
|
||||
requiresBuild: true
|
||||
@ -7303,6 +7813,10 @@ packages:
|
||||
sharp: 0.32.6
|
||||
dev: false
|
||||
|
||||
/@types/shimmer@1.2.0:
|
||||
resolution: {integrity: sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==}
|
||||
dev: false
|
||||
|
||||
/@types/snappyjs@0.7.1:
|
||||
resolution: {integrity: sha512-OxjzJ6cQZstysMh6PEwZWmK9qlKZyezHJKOkcUkZDooSFuog2votUEKkxMaTq51UQF3cJkXKQ+XGlj4FSl8JQQ==}
|
||||
dev: false
|
||||
@ -7331,6 +7845,12 @@ packages:
|
||||
'@types/node': 20.11.19
|
||||
dev: false
|
||||
|
||||
/@types/tedious@4.0.14:
|
||||
resolution: {integrity: sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw==}
|
||||
dependencies:
|
||||
'@types/node': 20.11.19
|
||||
dev: false
|
||||
|
||||
/@types/toposort@2.0.7:
|
||||
resolution: {integrity: sha512-sQNk65vbC36+UixCkcky+dCr7MlflHcVILg1FVGqlUntsLFv9xd9ToWIVko/gTuin+cVe16t+2YubEFkhnSuPQ==}
|
||||
dev: false
|
||||
@ -8184,6 +8704,14 @@ packages:
|
||||
acorn-walk: 8.3.2
|
||||
dev: false
|
||||
|
||||
/acorn-import-attributes@1.9.5(acorn@8.14.0):
|
||||
resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==}
|
||||
peerDependencies:
|
||||
acorn: ^8
|
||||
dependencies:
|
||||
acorn: 8.14.0
|
||||
dev: false
|
||||
|
||||
/acorn-jsx@5.3.2(acorn@8.11.3):
|
||||
resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
|
||||
peerDependencies:
|
||||
@ -13848,6 +14376,15 @@ packages:
|
||||
resolve-from: 4.0.0
|
||||
dev: false
|
||||
|
||||
/import-in-the-middle@1.12.0:
|
||||
resolution: {integrity: sha512-yAgSE7GmtRcu4ZUSFX/4v69UGXwugFFSdIQJ14LHPOPPQrWv8Y7O9PHsw8Ovk7bKCLe4sjXMbZFqGFcLHpZ89w==}
|
||||
dependencies:
|
||||
acorn: 8.14.0
|
||||
acorn-import-attributes: 1.9.5(acorn@8.14.0)
|
||||
cjs-module-lexer: 1.2.3
|
||||
module-details-from-path: 1.0.3
|
||||
dev: false
|
||||
|
||||
/import-local@3.1.0:
|
||||
resolution: {integrity: sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==}
|
||||
engines: {node: '>=8'}
|
||||
@ -15450,12 +15987,6 @@ packages:
|
||||
resolution: {integrity: sha512-d0GdKshNnyfl5gM7kZ9rXjGiAbxT/zCXp0k+EAzh8H4zrb2R7GXtMCrULrX7UQxtfx6CLy/vz/lomvW79FAFdA==}
|
||||
dev: false
|
||||
|
||||
/lie@3.1.1:
|
||||
resolution: {integrity: sha512-RiNhHysUjhrDQntfYSfY4MU24coXXdEOgw9WGcKHNeEwffDYbF//u87M1EWaMGzuFoSbqW0C9C6lEEhDOAswfw==}
|
||||
dependencies:
|
||||
immediate: 3.0.6
|
||||
dev: false
|
||||
|
||||
/lie@3.3.0:
|
||||
resolution: {integrity: sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==}
|
||||
dependencies:
|
||||
@ -15569,12 +16100,6 @@ packages:
|
||||
pkg-types: 1.2.1
|
||||
dev: false
|
||||
|
||||
/localforage@1.10.0:
|
||||
resolution: {integrity: sha512-14/H1aX7hzBBmmh7sGPd+AOMkkIrHM3Z1PAyGgZigA1H1p5O5ANnMyWzvpAETtG68/dC4pC0ncy3+PPGzXZHPg==}
|
||||
dependencies:
|
||||
lie: 3.1.1
|
||||
dev: false
|
||||
|
||||
/locate-character@3.0.0:
|
||||
resolution: {integrity: sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==}
|
||||
dev: false
|
||||
@ -17423,6 +17948,26 @@ packages:
|
||||
is-reference: 3.0.2
|
||||
dev: false
|
||||
|
||||
/pg-int8@1.0.1:
|
||||
resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==}
|
||||
engines: {node: '>=4.0.0'}
|
||||
dev: false
|
||||
|
||||
/pg-protocol@1.7.0:
|
||||
resolution: {integrity: sha512-hTK/mE36i8fDDhgDFjy6xNOG+LCorxLG3WO17tku+ij6sVHXh1jQUJ8hYAnRhNla4QVD2H8er/FOjc/+EgC6yQ==}
|
||||
dev: false
|
||||
|
||||
/pg-types@2.2.0:
|
||||
resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==}
|
||||
engines: {node: '>=4'}
|
||||
dependencies:
|
||||
pg-int8: 1.0.1
|
||||
postgres-array: 2.0.0
|
||||
postgres-bytea: 1.0.0
|
||||
postgres-date: 1.0.7
|
||||
postgres-interval: 1.2.0
|
||||
dev: false
|
||||
|
||||
/phin@2.9.3:
|
||||
resolution: {integrity: sha512-CzFr90qM24ju5f88quFC/6qohjC144rehe5n6DH900lgXmUe86+xCKc10ev56gRKC4/BkHUoG4uSiQgBiIXwDA==}
|
||||
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
|
||||
@ -17710,6 +18255,28 @@ packages:
|
||||
source-map-js: 1.0.2
|
||||
dev: false
|
||||
|
||||
/postgres-array@2.0.0:
|
||||
resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==}
|
||||
engines: {node: '>=4'}
|
||||
dev: false
|
||||
|
||||
/postgres-bytea@1.0.0:
|
||||
resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/postgres-date@1.0.7:
|
||||
resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/postgres-interval@1.2.0:
|
||||
resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dependencies:
|
||||
xtend: 4.0.2
|
||||
dev: false
|
||||
|
||||
/postgres@3.4.5:
|
||||
resolution: {integrity: sha512-cDWgoah1Gez9rN3H4165peY9qfpEo+SA61oQv65O3cRUE1pOEoJWwddwcqKE8XZYjbblOJlYDlLV4h67HrEVDg==}
|
||||
engines: {node: '>=12'}
|
||||
@ -18388,6 +18955,17 @@ packages:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/require-in-the-middle@7.4.0:
|
||||
resolution: {integrity: sha512-X34iHADNbNDfr6OTStIAHWSAvvKQRYgLO6duASaVf7J2VA3lvmNYboAHOuLC2huav1IwgZJtyEcJCKVzFxOSMQ==}
|
||||
engines: {node: '>=8.6.0'}
|
||||
dependencies:
|
||||
debug: 4.4.0
|
||||
module-details-from-path: 1.0.3
|
||||
resolve: 1.22.8
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/require-main-filename@1.0.1:
|
||||
resolution: {integrity: sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==}
|
||||
dev: false
|
||||
@ -18974,6 +19552,10 @@ packages:
|
||||
resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==}
|
||||
dev: false
|
||||
|
||||
/shimmer@1.2.1:
|
||||
resolution: {integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==}
|
||||
dev: false
|
||||
|
||||
/side-channel@1.0.5:
|
||||
resolution: {integrity: sha512-QcgiIWV4WV7qWExbN5llt6frQB/lBven9pqliLXfGPB+K9ZYXxDozp0wLkHS24kWCm+6YXH/f0HhnObZnZOBnQ==}
|
||||
engines: {node: '>= 0.4'}
|
||||
@ -22305,12 +22887,12 @@ packages:
|
||||
dev: false
|
||||
|
||||
file:projects/analytics-service.tgz(@types/node@20.11.19)(esbuild@0.24.2)(ts-node@10.9.2):
|
||||
resolution: {integrity: sha512-CNOxEi0TSwyscgxa3iTdWPASgNS0YwNXfS5L52nmlmi+Y2OH7N4wwOXS0BKyEuqYYkSMsEMArPfB5xYaYoNkJw==, tarball: file:projects/analytics-service.tgz}
|
||||
resolution: {integrity: sha512-kn7RI7Ond+5WgSpbx0UYahB2U8lrtTMZuZPvmvVOfvvXCtbNrNxT1vK1bkUip01jBM+lrdRAi8/z2CmCU65UJw==, tarball: file:projects/analytics-service.tgz}
|
||||
id: file:projects/analytics-service.tgz
|
||||
name: '@rush-temp/analytics-service'
|
||||
version: 0.0.0
|
||||
dependencies:
|
||||
'@sentry/node': 7.118.0
|
||||
'@sentry/node': 8.48.0
|
||||
'@types/jest': 29.5.12
|
||||
'@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0)(eslint@8.56.0)(typescript@5.3.3)
|
||||
'@typescript-eslint/parser': 6.21.0(eslint@8.56.0)(typescript@5.3.3)
|
||||
|
@ -43,7 +43,7 @@
|
||||
"@hcengineering/analytics": "^0.6.0",
|
||||
"winston": "^3.11.0",
|
||||
"winston-daily-rotate-file": "^5.0.0",
|
||||
"@sentry/node": "^7.103.0"
|
||||
"@sentry/node": "^8.48.0"
|
||||
},
|
||||
"repository": "https://github.com/hcengineering/platform",
|
||||
"publishConfig": {
|
||||
|
@ -34,20 +34,22 @@ import type {
|
||||
import { BaseMiddleware } from '@hcengineering/server-core'
|
||||
import crypto from 'node:crypto'
|
||||
|
||||
const isUserTx = (it: Tx): boolean =>
|
||||
it.modifiedBy !== core.account.System ||
|
||||
(it as TxCUD<Doc>).objectClass === 'contact:class:Person' ||
|
||||
(it as TxCUD<Doc>).objectClass === 'contact:class:PersonAccount'
|
||||
|
||||
/**
|
||||
* @public
|
||||
*/
|
||||
export class ModelMiddleware extends BaseMiddleware implements Middleware {
|
||||
hashes!: Map<string, number> // Hash to position
|
||||
lastHash: string = ''
|
||||
lastHashResponse!: Promise<LoadModelResponse>
|
||||
model!: Tx[]
|
||||
|
||||
constructor (
|
||||
context: PipelineContext,
|
||||
next: Middleware | undefined,
|
||||
readonly systemTx: Tx[],
|
||||
readonly holdModel: boolean = true
|
||||
readonly systemTx: Tx[]
|
||||
) {
|
||||
super(context, next)
|
||||
}
|
||||
@ -57,107 +59,88 @@ export class ModelMiddleware extends BaseMiddleware implements Middleware {
|
||||
ctx: MeasureContext,
|
||||
context: PipelineContext,
|
||||
next: Middleware | undefined,
|
||||
systemTx: Tx[],
|
||||
holdModel: boolean = true
|
||||
systemTx: Tx[]
|
||||
): Promise<Middleware> {
|
||||
const middleware = new ModelMiddleware(context, next, systemTx, holdModel)
|
||||
const middleware = new ModelMiddleware(context, next, systemTx)
|
||||
await middleware.init(ctx)
|
||||
return middleware
|
||||
}
|
||||
|
||||
static create (tx: Tx[], holdModel: boolean = true): MiddlewareCreator {
|
||||
static create (tx: Tx[]): MiddlewareCreator {
|
||||
return (ctx, context, next) => {
|
||||
return this.doCreate(ctx, context, next, tx, holdModel)
|
||||
return this.doCreate(ctx, context, next, tx)
|
||||
}
|
||||
}
|
||||
|
||||
@withContext('get-model')
|
||||
async getUserTx (ctx: MeasureContext, txAdapter: TxAdapter): Promise<Tx[]> {
|
||||
const allUserTxes = await ctx.with('fetch-model', {}, (ctx) => txAdapter.getModel(ctx))
|
||||
return allUserTxes.filter((it) => isUserTx(it))
|
||||
}
|
||||
|
||||
async init (ctx: MeasureContext): Promise<void> {
|
||||
if (this.context.adapterManager == null) {
|
||||
throw new PlatformError(unknownError('Adapter manager should be configured'))
|
||||
}
|
||||
const txAdapter = this.context.adapterManager.getAdapter(DOMAIN_TX, true) as TxAdapter
|
||||
|
||||
const isUserTx = (it: Tx): boolean =>
|
||||
it.modifiedBy !== core.account.System ||
|
||||
(it as TxCUD<Doc>).objectClass === 'contact:class:Person' ||
|
||||
(it as TxCUD<Doc>).objectClass === 'contact:class:PersonAccount'
|
||||
|
||||
this.model = await ctx.with('get-model', {}, async (ctx) => {
|
||||
const allUserTxes = await ctx.with('fetch-model', {}, (ctx) => txAdapter.getModel(ctx))
|
||||
const userTxes = allUserTxes.filter((it) => isUserTx(it))
|
||||
const model = this.systemTx.concat(userTxes)
|
||||
for (const tx of model) {
|
||||
try {
|
||||
this.context.hierarchy.tx(tx)
|
||||
} catch (err: any) {
|
||||
ctx.warn('failed to apply model transaction, skipping', { tx: JSON.stringify(tx), err })
|
||||
}
|
||||
const userTx = await this.getUserTx(ctx, txAdapter)
|
||||
const model = this.systemTx.concat(userTx)
|
||||
for (const tx of model) {
|
||||
try {
|
||||
this.context.hierarchy.tx(tx)
|
||||
} catch (err: any) {
|
||||
ctx.warn('failed to apply model transaction, skipping', { tx: JSON.stringify(tx), err })
|
||||
}
|
||||
this.context.modelDb.addTxes(ctx, model, true)
|
||||
if (this.holdModel) {
|
||||
return model
|
||||
}
|
||||
return []
|
||||
})
|
||||
}
|
||||
this.context.modelDb.addTxes(ctx, model, true)
|
||||
|
||||
this.setModel(this.model)
|
||||
this.setModel(model)
|
||||
}
|
||||
|
||||
private addModelTx (tx: Tx): void {
|
||||
if (this.holdModel) {
|
||||
this.model.push(tx)
|
||||
const h = crypto.createHash('sha1')
|
||||
h.update(this.lastHash)
|
||||
h.update(JSON.stringify(tx))
|
||||
const hash = h.digest('hex')
|
||||
this.hashes.set(hash, this.model.length - 1)
|
||||
this.setLastHash(hash)
|
||||
}
|
||||
const h = crypto.createHash('sha1')
|
||||
h.update(this.lastHash)
|
||||
h.update(JSON.stringify(tx))
|
||||
const hash = h.digest('hex')
|
||||
this.setLastHash(hash)
|
||||
}
|
||||
|
||||
private setLastHash (hash: string): void {
|
||||
this.lastHash = hash
|
||||
this.context.lastHash = this.lastHash
|
||||
this.lastHashResponse = Promise.resolve({
|
||||
full: false,
|
||||
hash,
|
||||
transactions: []
|
||||
})
|
||||
}
|
||||
|
||||
private setModel (model: Tx[]): void {
|
||||
let last = ''
|
||||
const values: [string, number][] = model.map((it, index) => {
|
||||
model.map((it, index) => {
|
||||
const h = crypto.createHash('sha1')
|
||||
h.update(last)
|
||||
h.update(JSON.stringify(it))
|
||||
last = h.digest('hex')
|
||||
return [last, index]
|
||||
})
|
||||
this.hashes = new Map(values)
|
||||
this.setLastHash(last)
|
||||
}
|
||||
|
||||
loadModel (ctx: MeasureContext, lastModelTx: Timestamp, hash?: string): Promise<Tx[] | LoadModelResponse> {
|
||||
async loadModel (ctx: MeasureContext, lastModelTx: Timestamp, hash?: string): Promise<Tx[] | LoadModelResponse> {
|
||||
if (hash !== undefined) {
|
||||
if (hash === this.lastHash) {
|
||||
return this.lastHashResponse
|
||||
}
|
||||
const pos = this.hashes.get(hash)
|
||||
if (pos != null && pos >= 0) {
|
||||
return Promise.resolve({
|
||||
return {
|
||||
full: false,
|
||||
hash: this.lastHash,
|
||||
transactions: this.model.slice(pos + 1)
|
||||
})
|
||||
hash,
|
||||
transactions: []
|
||||
}
|
||||
}
|
||||
return Promise.resolve({
|
||||
const txAdapter = this.context.adapterManager?.getAdapter(DOMAIN_TX, true) as TxAdapter
|
||||
return {
|
||||
full: true,
|
||||
hash: this.lastHash,
|
||||
transactions: [...this.model]
|
||||
})
|
||||
transactions: this.systemTx.concat(await this.getUserTx(ctx, txAdapter))
|
||||
}
|
||||
}
|
||||
return Promise.resolve(this.model.filter((it) => it.modifiedOn > lastModelTx))
|
||||
const txAdapter = this.context.adapterManager?.getAdapter(DOMAIN_TX, true) as TxAdapter
|
||||
return this.systemTx.concat(await this.getUserTx(ctx, txAdapter)).filter((it) => it.modifiedOn > lastModelTx)
|
||||
}
|
||||
|
||||
tx (ctx: MeasureContext, tx: Tx[]): Promise<TxMiddlewareResult> {
|
||||
|
@ -743,6 +743,8 @@ abstract class PostgresAdapterBase implements DbAdapter {
|
||||
if (column === 'createdOn' || column === 'modifiedOn') {
|
||||
const val = Number.parseInt(row[column])
|
||||
;(doc as any)[column] = Number.isNaN(val) ? null : val
|
||||
} else if (column === '%hash%') {
|
||||
// Ignore
|
||||
} else {
|
||||
;(doc as any)[column] = row[column] === 'NULL' ? null : row[column]
|
||||
}
|
||||
@ -1285,6 +1287,22 @@ abstract class PostgresAdapterBase implements DbAdapter {
|
||||
return []
|
||||
}
|
||||
|
||||
stripHash<T extends Doc>(docs: T | T[]): T | T[] {
|
||||
if (Array.isArray(docs)) {
|
||||
docs.forEach((it) => {
|
||||
if ('%hash%' in it) {
|
||||
delete it['%hash%']
|
||||
}
|
||||
return it
|
||||
})
|
||||
} else if (typeof docs === 'object' && docs != null) {
|
||||
if ('%hash%' in docs) {
|
||||
delete docs['%hash%']
|
||||
}
|
||||
}
|
||||
return docs
|
||||
}
|
||||
|
||||
strimSize (str?: string): string {
|
||||
if (str == null) {
|
||||
return ''
|
||||
@ -1841,7 +1859,7 @@ class PostgresTxAdapter extends PostgresAdapterBase implements TxAdapter {
|
||||
const userTx: Tx[] = []
|
||||
|
||||
model.forEach((tx) => (tx.modifiedBy === core.account.System && !isPersonAccount(tx) ? systemTx : userTx).push(tx))
|
||||
return systemTx.concat(userTx)
|
||||
return this.stripHash(systemTx.concat(userTx)) as Tx[]
|
||||
}
|
||||
}
|
||||
/**
|
||||
|
@ -475,7 +475,7 @@ export function parseDocWithProjection<T extends Doc> (
|
||||
domain: string,
|
||||
projection?: Projection<T> | undefined
|
||||
): T {
|
||||
const { workspaceId, data, ...rest } = doc
|
||||
const { workspaceId, data, '%hash%': hash, ...rest } = doc
|
||||
const schema = getSchema(domain)
|
||||
for (const key in rest) {
|
||||
if ((rest as any)[key] === 'NULL' || (rest as any)[key] === null) {
|
||||
|
@ -248,6 +248,7 @@ class TSessionManager implements SessionManager {
|
||||
this.ctx.warn('request hang found', {
|
||||
sec,
|
||||
wsId,
|
||||
total: s[1].session.requests.size,
|
||||
user: s[1].session.getUser(),
|
||||
...cutObjectArray(r.params)
|
||||
})
|
||||
@ -506,7 +507,9 @@ class TSessionManager implements SessionManager {
|
||||
|
||||
private updateConnectErrorInfo (token: Token): void {
|
||||
this.clientErrors++
|
||||
this.lastClients = [token.email, ...this.lastClients.slice(0, 9)]
|
||||
if (!this.lastClients.includes(token.email)) {
|
||||
this.lastClients = [token.email, ...this.lastClients.slice(0, 9)]
|
||||
}
|
||||
}
|
||||
|
||||
private wsFromToken (token: Token): WorkspaceLoginInfo {
|
||||
|
Loading…
Reference in New Issue
Block a user