fix(classes): Add Deno compatibility, prototype-safe decorators and safe collection accessor; bump a few deps
This commit is contained in:
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@@ -22,5 +22,6 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
],
|
||||
"deno.enable": false
|
||||
}
|
||||
|
||||
11
changelog.md
11
changelog.md
@@ -1,5 +1,16 @@
|
||||
# Changelog
|
||||
|
||||
## 2025-11-17 - 5.16.6 - fix(classes)
|
||||
Add Deno compatibility, prototype-safe decorators and safe collection accessor; bump a few deps
|
||||
|
||||
- Add deno.json to enable experimentalDecorators and target ES2022/DOM for Deno builds.
|
||||
- Introduce getCollectionSafe() on SmartDataDbDoc and use it for save/update/delete/findOne to avoid runtime errors when instance 'collection' is not present.
|
||||
- Change several instance properties (globalSaveableProperties, uniqueIndexes, regularIndexes, saveableProperties) to 'declare' so decorator-set prototype properties are not shadowed (Deno compatibility).
|
||||
- Enhance @Collection decorator: capture original constructor/prototype for Deno, define prototype getter for collection on decorated class, attach docCtor for searchableFields, and forward _svDbOptions to the original constructor to preserve serializer metadata.
|
||||
- Improve text/search index handling by relying on docCtor.searchableFields and guarding text index creation.
|
||||
- Bump dependencies/devDependencies: @push.rocks/smartmongo -> ^2.0.14, @git.zone/tsbuild -> ^2.7.1, @git.zone/tstest -> ^2.8.1.
|
||||
- These are non-breaking runtime compatibility and developer-experience fixes; intended as a patch release.
|
||||
|
||||
## 2025-11-16 - 5.16.5 - fix(watcher)
|
||||
Update dependencies, tooling and watcher import; add .serena cache ignore
|
||||
|
||||
|
||||
7
deno.json
Normal file
7
deno.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"experimentalDecorators": true,
|
||||
"lib": ["ES2022", "DOM"]
|
||||
},
|
||||
"nodeModulesDir": "auto"
|
||||
}
|
||||
386
deno.lock
generated
386
deno.lock
generated
@@ -1,14 +1,14 @@
|
||||
{
|
||||
"version": "5",
|
||||
"specifiers": {
|
||||
"npm:@git.zone/tsbuild@^2.6.8": "2.7.1",
|
||||
"npm:@git.zone/tsbuild@^2.7.1": "2.7.1",
|
||||
"npm:@git.zone/tsrun@^1.6.2": "1.6.2",
|
||||
"npm:@git.zone/tstest@^2.6.2": "2.7.0",
|
||||
"npm:@git.zone/tstest@^2.8.1": "2.8.1",
|
||||
"npm:@push.rocks/lik@^6.2.2": "6.2.2",
|
||||
"npm:@push.rocks/qenv@^6.1.3": "6.1.3",
|
||||
"npm:@push.rocks/smartdelay@^3.0.1": "3.0.5",
|
||||
"npm:@push.rocks/smartlog@^3.1.10": "3.1.10",
|
||||
"npm:@push.rocks/smartmongo@^2.0.12": "2.0.12",
|
||||
"npm:@push.rocks/smartmongo@^2.0.14": "2.0.14",
|
||||
"npm:@push.rocks/smartpromise@^4.0.2": "4.2.3",
|
||||
"npm:@push.rocks/smartrx@^3.0.10": "3.0.10",
|
||||
"npm:@push.rocks/smartstring@^4.1.0": "4.1.0",
|
||||
@@ -55,7 +55,7 @@
|
||||
"@push.rocks/lik",
|
||||
"@push.rocks/smartchok",
|
||||
"@push.rocks/smartdelay",
|
||||
"@push.rocks/smartenv",
|
||||
"@push.rocks/smartenv@5.0.13",
|
||||
"@push.rocks/smartfeed",
|
||||
"@push.rocks/smartfile",
|
||||
"@push.rocks/smartjson",
|
||||
@@ -69,7 +69,7 @@
|
||||
"@push.rocks/smartopen",
|
||||
"@push.rocks/smartpath@6.0.0",
|
||||
"@push.rocks/smartpromise",
|
||||
"@push.rocks/smartrequest@4.3.4",
|
||||
"@push.rocks/smartrequest@4.4.2",
|
||||
"@push.rocks/smartrx",
|
||||
"@push.rocks/smartsitemap",
|
||||
"@push.rocks/smartstream",
|
||||
@@ -169,8 +169,8 @@
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-crypto/util/-/util-5.2.0.tgz"
|
||||
},
|
||||
"@aws-sdk/client-s3@3.931.0": {
|
||||
"integrity": "sha512-p+ZSRvmylk/pNImGDvLt3lOkILOexNcYvsCjvN2TR9X8RvxvPURISVp2qdGKdwUr/zkshteg1x/30GYlcTKs5g==",
|
||||
"@aws-sdk/client-s3@3.932.0": {
|
||||
"integrity": "sha512-qrlbJ3W5QR3Gzz2S+yaItH8ZhX7vaeA4j4fDAi8+0FmsVhXOfBbomWr+JO1wk/YojZMdyLfmfYRHrJvAQsLFVw==",
|
||||
"dependencies": [
|
||||
"@aws-crypto/sha1-browser",
|
||||
"@aws-crypto/sha256-browser",
|
||||
@@ -228,10 +228,10 @@
|
||||
"@smithy/util-waiter",
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/client-s3/-/client-s3-3.931.0.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/client-s3/-/client-s3-3.932.0.tgz"
|
||||
},
|
||||
"@aws-sdk/client-sso@3.931.0": {
|
||||
"integrity": "sha512-GM/CARsIUQGEspM9VhZaftFVXnNtFNUUXjpM1ePO4CHk1J/VFvXcsQr3SHWIs0F4Ll6pvy5LpcRlWW5pK7T4aQ==",
|
||||
"@aws-sdk/client-sso@3.932.0": {
|
||||
"integrity": "sha512-XHqHa5iv2OQsKoM2tUQXs7EAyryploC00Wg0XSFra/KAKqyGizUb5XxXsGlyqhebB29Wqur+zwiRwNmejmN0+Q==",
|
||||
"dependencies": [
|
||||
"@aws-crypto/sha256-browser",
|
||||
"@aws-crypto/sha256-js",
|
||||
@@ -272,10 +272,10 @@
|
||||
"@smithy/util-utf8@4.2.0",
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/client-sso/-/client-sso-3.931.0.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/client-sso/-/client-sso-3.932.0.tgz"
|
||||
},
|
||||
"@aws-sdk/core@3.931.0": {
|
||||
"integrity": "sha512-l/b6AQbto4TuXL2FIm7Z+tbVjrp0LN7ESm97Sf3nneB0vjKtB6R0TS/IySzCYMgyOC3Hxz+Ka34HJXZk9eXTFw==",
|
||||
"@aws-sdk/core@3.932.0": {
|
||||
"integrity": "sha512-AS8gypYQCbNojwgjvZGkJocC2CoEICDx9ZJ15ILsv+MlcCVLtUJSRSx3VzJOUY2EEIaGLRrPNlIqyn/9/fySvA==",
|
||||
"dependencies": [
|
||||
"@aws-sdk/types",
|
||||
"@aws-sdk/xml-builder",
|
||||
@@ -291,10 +291,10 @@
|
||||
"@smithy/util-utf8@4.2.0",
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/core/-/core-3.931.0.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/core/-/core-3.932.0.tgz"
|
||||
},
|
||||
"@aws-sdk/credential-provider-env@3.931.0": {
|
||||
"integrity": "sha512-dTNBpkKXyBdcpEjyfgkE/EFU/0NRoukLs+Pj0S8K1Dg216J9uIijpi6CaBBN+HvnaTlEItm2tzXiJpPVI+TqHQ==",
|
||||
"@aws-sdk/credential-provider-env@3.932.0": {
|
||||
"integrity": "sha512-ozge/c7NdHUDyHqro6+P5oHt8wfKSUBN+olttiVfBe9Mw3wBMpPa3gQ0pZnG+gwBkKskBuip2bMR16tqYvUSEA==",
|
||||
"dependencies": [
|
||||
"@aws-sdk/core",
|
||||
"@aws-sdk/types",
|
||||
@@ -302,10 +302,10 @@
|
||||
"@smithy/types",
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/credential-provider-env/-/credential-provider-env-3.931.0.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/credential-provider-env/-/credential-provider-env-3.932.0.tgz"
|
||||
},
|
||||
"@aws-sdk/credential-provider-http@3.931.0": {
|
||||
"integrity": "sha512-7Ge26fhMDn51BTbHgopx5+uOl4I47k15BDzYc4YT6zyjS99uycYNCA7zB500DGTTn2HK27ZDTyAyhTKZGxRxbA==",
|
||||
"@aws-sdk/credential-provider-http@3.932.0": {
|
||||
"integrity": "sha512-b6N9Nnlg8JInQwzBkUq5spNaXssM3h3zLxGzpPrnw0nHSIWPJPTbZzA5Ca285fcDUFuKP+qf3qkuqlAjGOdWhg==",
|
||||
"dependencies": [
|
||||
"@aws-sdk/core",
|
||||
"@aws-sdk/types",
|
||||
@@ -318,10 +318,10 @@
|
||||
"@smithy/util-stream",
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/credential-provider-http/-/credential-provider-http-3.931.0.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/credential-provider-http/-/credential-provider-http-3.932.0.tgz"
|
||||
},
|
||||
"@aws-sdk/credential-provider-ini@3.931.0": {
|
||||
"integrity": "sha512-uzicpP7IHBxvAMjwGdmeke2bGTxjsKCSW7N48zuv0t0d56hmGHfcZIK5p4ry2OBJxzScp182OUAdAEG8wuSuuA==",
|
||||
"@aws-sdk/credential-provider-ini@3.932.0": {
|
||||
"integrity": "sha512-ZBjSAXVGy7danZRHCRMJQ7sBkG1Dz39thYlvTiUaf9BKZ+8ymeiFhuTeV1OkWUBBnY0ki2dVZJvboTqfINhNxA==",
|
||||
"dependencies": [
|
||||
"@aws-sdk/core",
|
||||
"@aws-sdk/credential-provider-env",
|
||||
@@ -337,10 +337,10 @@
|
||||
"@smithy/types",
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.931.0.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.932.0.tgz"
|
||||
},
|
||||
"@aws-sdk/credential-provider-node@3.931.0": {
|
||||
"integrity": "sha512-eO8mfWNHz0dyYdVfPLVzmqXaSA3agZF/XvBO9/fRU90zCb8lKlXfgUmghGW7LhDkiv2v5uuizUiag7GsKoIcJw==",
|
||||
"@aws-sdk/credential-provider-node@3.932.0": {
|
||||
"integrity": "sha512-SEG9t2taBT86qe3gTunfrK8BxT710GVLGepvHr+X5Pw+qW225iNRaGN0zJH+ZE/j91tcW9wOaIoWnURkhR5wIg==",
|
||||
"dependencies": [
|
||||
"@aws-sdk/credential-provider-env",
|
||||
"@aws-sdk/credential-provider-http",
|
||||
@@ -355,10 +355,10 @@
|
||||
"@smithy/types",
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/credential-provider-node/-/credential-provider-node-3.931.0.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/credential-provider-node/-/credential-provider-node-3.932.0.tgz"
|
||||
},
|
||||
"@aws-sdk/credential-provider-process@3.931.0": {
|
||||
"integrity": "sha512-8Mu9r+5BUKqmKSI/WYHl5o4GeoonEb51RmoLEqG6431Uz4Y8C6gzAT69yjOJ+MwoWQ2Os37OZLOTv7SgxyOgrQ==",
|
||||
"@aws-sdk/credential-provider-process@3.932.0": {
|
||||
"integrity": "sha512-BodZYKvT4p/Dkm28Ql/FhDdS1+p51bcZeMMu2TRtU8PoMDHnVDhHz27zASEKSZwmhvquxHrZHB0IGuVqjZUtSQ==",
|
||||
"dependencies": [
|
||||
"@aws-sdk/core",
|
||||
"@aws-sdk/types",
|
||||
@@ -367,10 +367,10 @@
|
||||
"@smithy/types",
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/credential-provider-process/-/credential-provider-process-3.931.0.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/credential-provider-process/-/credential-provider-process-3.932.0.tgz"
|
||||
},
|
||||
"@aws-sdk/credential-provider-sso@3.931.0": {
|
||||
"integrity": "sha512-FP31lfMgNMDG4ZDX4NUZ+uoHWn76etcG8UWEgzZb4YOPV4M8a7gwU95iD+RBaK4lV3KvwH2tu68Hmne1qQpFqQ==",
|
||||
"@aws-sdk/credential-provider-sso@3.932.0": {
|
||||
"integrity": "sha512-XYmkv+ltBjjmPZ6AmR1ZQZkQfD0uzG61M18/Lif3HAGxyg3dmod0aWx9aL6lj9SvxAGqzscrx5j4PkgLqjZruw==",
|
||||
"dependencies": [
|
||||
"@aws-sdk/client-sso",
|
||||
"@aws-sdk/core",
|
||||
@@ -381,10 +381,10 @@
|
||||
"@smithy/types",
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.931.0.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.932.0.tgz"
|
||||
},
|
||||
"@aws-sdk/credential-provider-web-identity@3.931.0": {
|
||||
"integrity": "sha512-hfX0Buw2+ie0FBiSFMmnXfugQc9fO0KvEojnNnzhk4utlWjZobMcUprOQ/VKUueg0Kga1b1xu8gEP6g1aEh3zw==",
|
||||
"@aws-sdk/credential-provider-web-identity@3.932.0": {
|
||||
"integrity": "sha512-Yw/hYNnC1KHuVIQF9PkLXbuKN7ljx70OSbJYDRufllQvej3kRwNcqQSnzI1M4KaObccqKaE6srg22DqpPy9p8w==",
|
||||
"dependencies": [
|
||||
"@aws-sdk/core",
|
||||
"@aws-sdk/nested-clients",
|
||||
@@ -394,7 +394,7 @@
|
||||
"@smithy/types",
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.931.0.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.932.0.tgz"
|
||||
},
|
||||
"@aws-sdk/middleware-bucket-endpoint@3.930.0": {
|
||||
"integrity": "sha512-cnCLWeKPYgvV4yRYPFH6pWMdUByvu2cy2BAlfsPpvnm4RaVioztyvxmQj5PmVN5fvWs5w/2d6U7le8X9iye2sA==",
|
||||
@@ -419,8 +419,8 @@
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.930.0.tgz"
|
||||
},
|
||||
"@aws-sdk/middleware-flexible-checksums@3.931.0": {
|
||||
"integrity": "sha512-eYWwUKeEommCrrm0Ro6fGDwVO0x2bL3niOmSnHIlIdpu7ruzAGaphj+2MekCxaSPORzkZ3yheHUzV45D8Qj63A==",
|
||||
"@aws-sdk/middleware-flexible-checksums@3.932.0": {
|
||||
"integrity": "sha512-hyvRz/XS/0HTHp9/Ld1mKwpOi7bZu5olI42+T112rkCTbt1bewkygzEl4oflY4H7cKMamQusYoL0yBUD/QSEvA==",
|
||||
"dependencies": [
|
||||
"@aws-crypto/crc32",
|
||||
"@aws-crypto/crc32c",
|
||||
@@ -436,7 +436,7 @@
|
||||
"@smithy/util-utf8@4.2.0",
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.931.0.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.932.0.tgz"
|
||||
},
|
||||
"@aws-sdk/middleware-host-header@3.930.0": {
|
||||
"integrity": "sha512-x30jmm3TLu7b/b+67nMyoV0NlbnCVT5DI57yDrhXAPCtdgM1KtdLWt45UcHpKOm1JsaIkmYRh2WYu7Anx4MG0g==",
|
||||
@@ -477,8 +477,8 @@
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.930.0.tgz"
|
||||
},
|
||||
"@aws-sdk/middleware-sdk-s3@3.931.0": {
|
||||
"integrity": "sha512-uWF78ht8Wgxljn6y0cEcIWfbeTVnJ0cE1Gha9ScCqscmuBCpHuFMSd/p53w3whoDhpQL3ln9mOyY3tfST/NUQA==",
|
||||
"@aws-sdk/middleware-sdk-s3@3.932.0": {
|
||||
"integrity": "sha512-bYMHxqQzseaAP9Z5qLI918z5AtbAnZRRtFi3POb4FLZyreBMgCgBNaPkIhdgywnkqaydTWvbMBX4s9f4gUwlTw==",
|
||||
"dependencies": [
|
||||
"@aws-sdk/core",
|
||||
"@aws-sdk/types",
|
||||
@@ -495,7 +495,7 @@
|
||||
"@smithy/util-utf8@4.2.0",
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.931.0.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.932.0.tgz"
|
||||
},
|
||||
"@aws-sdk/middleware-ssec@3.930.0": {
|
||||
"integrity": "sha512-N2/SvodmaDS6h7CWfuapt3oJyn1T2CBz0CsDIiTDv9cSagXAVFjPdm2g4PFJqrNBeqdDIoYBnnta336HmamWHg==",
|
||||
@@ -506,8 +506,8 @@
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/middleware-ssec/-/middleware-ssec-3.930.0.tgz"
|
||||
},
|
||||
"@aws-sdk/middleware-user-agent@3.931.0": {
|
||||
"integrity": "sha512-Ftd+f3+y5KNYKzLXaGknwJ9hCkFWshi5C9TLLsz+fEohWc1FvIKU7MlXTeFms2eN76TTVHuG8N2otaujl6CuHg==",
|
||||
"@aws-sdk/middleware-user-agent@3.932.0": {
|
||||
"integrity": "sha512-9BGTbJyA/4PTdwQWE9hAFIJGpsYkyEW20WON3i15aDqo5oRZwZmqaVageOD57YYqG8JDJjvcwKyDdR4cc38dvg==",
|
||||
"dependencies": [
|
||||
"@aws-sdk/core",
|
||||
"@aws-sdk/types",
|
||||
@@ -517,10 +517,10 @@
|
||||
"@smithy/types",
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.931.0.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.932.0.tgz"
|
||||
},
|
||||
"@aws-sdk/nested-clients@3.931.0": {
|
||||
"integrity": "sha512-6/dXrX2nWgiWdHxooEtmKpOErms4+79AQawEvhhxpLPpa+tixl4i/MSFgHk9sjkGv5a1/P3DbnedpZWl+2wMOg==",
|
||||
"@aws-sdk/nested-clients@3.932.0": {
|
||||
"integrity": "sha512-E2ucBfiXSpxZflHTf3UFbVwao4+7v7ctAeg8SWuglc1UMqMlpwMFFgWiSONtsf0SR3+ZDoWGATyCXOfDWerJuw==",
|
||||
"dependencies": [
|
||||
"@aws-crypto/sha256-browser",
|
||||
"@aws-crypto/sha256-js",
|
||||
@@ -561,7 +561,7 @@
|
||||
"@smithy/util-utf8@4.2.0",
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/nested-clients/-/nested-clients-3.931.0.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/nested-clients/-/nested-clients-3.932.0.tgz"
|
||||
},
|
||||
"@aws-sdk/region-config-resolver@3.930.0": {
|
||||
"integrity": "sha512-KL2JZqH6aYeQssu1g1KuWsReupdfOoxD6f1as2VC+rdwYFUu4LfzMsFfXnBvvQWWqQ7rZHWOw1T+o5gJmg7Dzw==",
|
||||
@@ -574,8 +574,8 @@
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/region-config-resolver/-/region-config-resolver-3.930.0.tgz"
|
||||
},
|
||||
"@aws-sdk/signature-v4-multi-region@3.931.0": {
|
||||
"integrity": "sha512-EGYYDSSk7k1xbSHtb8MfEMILf5achdNnnsYKgFk0+Oul3tPQ4xUmOt5qRP6sOO3/LQHF37gBYHUF9OSA/+uVCw==",
|
||||
"@aws-sdk/signature-v4-multi-region@3.932.0": {
|
||||
"integrity": "sha512-NCIRJvoRc9246RZHIusY1+n/neeG2yGhBGdKhghmrNdM+mLLN6Ii7CKFZjx3DhxtpHMpl1HWLTMhdVrGwP2upw==",
|
||||
"dependencies": [
|
||||
"@aws-sdk/middleware-sdk-s3",
|
||||
"@aws-sdk/types",
|
||||
@@ -584,10 +584,10 @@
|
||||
"@smithy/types",
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.931.0.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.932.0.tgz"
|
||||
},
|
||||
"@aws-sdk/token-providers@3.931.0": {
|
||||
"integrity": "sha512-dr+02X9oxqmXG0856odFJ7wAXy12pr/tq2Zg+IS0TDThFvgtvx4yChkpqmc89wGoW+Aly47JPfPUXh0IMpGzIg==",
|
||||
"@aws-sdk/token-providers@3.932.0": {
|
||||
"integrity": "sha512-43u82ulVuHK4zWhcSPyuPS18l0LNHi3QJQ1YtP2MfP8bPf5a6hMYp5e3lUr9oTDEWcpwBYtOW0m1DVmoU/3veA==",
|
||||
"dependencies": [
|
||||
"@aws-sdk/core",
|
||||
"@aws-sdk/nested-clients",
|
||||
@@ -597,7 +597,7 @@
|
||||
"@smithy/types",
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/token-providers/-/token-providers-3.931.0.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/token-providers/-/token-providers-3.932.0.tgz"
|
||||
},
|
||||
"@aws-sdk/types@3.930.0": {
|
||||
"integrity": "sha512-we/vaAgwlEFW7IeftmCLlLMw+6hFs3DzZPJw7lVHbj/5HJ0bz9gndxEsS2lQoeJ1zhiiLqAqvXxmM43s0MBg0A==",
|
||||
@@ -642,8 +642,8 @@
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.930.0.tgz"
|
||||
},
|
||||
"@aws-sdk/util-user-agent-node@3.931.0": {
|
||||
"integrity": "sha512-j5if01rt7JCGYDVXck39V7IUyKAN73vKUPzmu+jp1apU3Q0lLSTZA/HCfL2HkMUKVLE67ibjKb+NCoEg0QhujA==",
|
||||
"@aws-sdk/util-user-agent-node@3.932.0": {
|
||||
"integrity": "sha512-/kC6cscHrZL74TrZtgiIL5jJNbVsw9duGGPurmaVgoCbP7NnxyaSWEurbNV3VPNPhNE3bV3g4Ci+odq+AlsYQg==",
|
||||
"dependencies": [
|
||||
"@aws-sdk/middleware-user-agent",
|
||||
"@aws-sdk/types",
|
||||
@@ -651,7 +651,7 @@
|
||||
"@smithy/types",
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.931.0.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.932.0.tgz"
|
||||
},
|
||||
"@aws-sdk/xml-builder@3.930.0": {
|
||||
"integrity": "sha512-YIfkD17GocxdmlUVc3ia52QhcWuRIUJonbF8A2CYfcWNV3HzvAqpcPeC0bYUhkK+8e8YO1ARnLKZQE0TlwzorA==",
|
||||
@@ -687,9 +687,9 @@
|
||||
"integrity": "sha512-5L/uBxmjaCIX5h8Z+uu+kA9BQLkc/Wl06UGR5ajNRxu+/XjonB5i8JpgFMrPj3LXTCPA0pv8yxUvbUi+QthGGA==",
|
||||
"tarball": "https://verdaccio.lossless.digital/@borewit/text-codec/-/text-codec-0.1.1.tgz"
|
||||
},
|
||||
"@cloudflare/workers-types@4.20251113.0": {
|
||||
"integrity": "sha512-AMntYysoQzuc1aXLjkNLmFcuyxzCrZ/dfatnt2Lw4rf3aFtnM6RZKZ+zLhb+xjgjlrI7tzC86ay3gqYqKa2Qxg==",
|
||||
"tarball": "https://verdaccio.lossless.digital/@cloudflare/workers-types/-/workers-types-4.20251113.0.tgz"
|
||||
"@cloudflare/workers-types@4.20251117.0": {
|
||||
"integrity": "sha512-4U6phQE/qbmWuJX/0cTk3iOx9KyhWmo34okKb2BSS09UMRWLCwML+P3dnHxCHnSQij8c0orvdzMr9hyqgJGNgw==",
|
||||
"tarball": "https://verdaccio.lossless.digital/@cloudflare/workers-types/-/workers-types-4.20251117.0.tgz"
|
||||
},
|
||||
"@colors/colors@1.6.0": {
|
||||
"integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==",
|
||||
@@ -721,8 +721,8 @@
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@design.estate/dees-comms/-/dees-comms-1.0.27.tgz"
|
||||
},
|
||||
"@design.estate/dees-domtools@2.3.3": {
|
||||
"integrity": "sha512-diIRuEWNRko508+eXDGVD9yxte+50VSuSsxBvWXUnE7ZPOLo9Y0oNyVi+R1Rb1AVJiXcGCORLdCtmCIcId40VA==",
|
||||
"@design.estate/dees-domtools@2.3.6": {
|
||||
"integrity": "sha512-cKaPNtSpp/ZuuXVx2dXO3K2FU3/HjC4ZkqtXb8Kl6yy9rNDbgtjcI4PuOk9Ux1SJzw7FgcxqVh7OSEV60htbmg==",
|
||||
"dependencies": [
|
||||
"@api.global/typedrequest",
|
||||
"@design.estate/dees-comms",
|
||||
@@ -743,17 +743,17 @@
|
||||
"lit",
|
||||
"sweet-scroll"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@design.estate/dees-domtools/-/dees-domtools-2.3.3.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@design.estate/dees-domtools/-/dees-domtools-2.3.6.tgz"
|
||||
},
|
||||
"@design.estate/dees-element@2.1.2": {
|
||||
"integrity": "sha512-ZiwvE411RJPHaYio26asQLnSmtJ6G1HRLYWbxW/HvCMbFtrcrXysP1y4PQ9KjdNfiQ4yoWPjTtwYMJjLE0NcbA==",
|
||||
"@design.estate/dees-element@2.1.3": {
|
||||
"integrity": "sha512-TjXWxVcdSPaT1IOk31ckfxvAZnJLuTxhFGsNCKoh63/UE2FVf6slp8//UFvN+ADigiA9ZsY0azkY99XbJCwDDA==",
|
||||
"dependencies": [
|
||||
"@design.estate/dees-domtools",
|
||||
"@push.rocks/isounique",
|
||||
"@push.rocks/smartrx",
|
||||
"lit"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@design.estate/dees-element/-/dees-element-2.1.2.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@design.estate/dees-element/-/dees-element-2.1.3.tgz"
|
||||
},
|
||||
"@emnapi/core@1.7.1": {
|
||||
"integrity": "sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==",
|
||||
@@ -988,7 +988,7 @@
|
||||
"@push.rocks/smartlog",
|
||||
"@push.rocks/smartnpm",
|
||||
"@push.rocks/smartpath@6.0.0",
|
||||
"@push.rocks/smartrequest@4.3.4",
|
||||
"@push.rocks/smartrequest@4.4.2",
|
||||
"@push.rocks/smartshell"
|
||||
],
|
||||
"bin": true,
|
||||
@@ -1004,8 +1004,8 @@
|
||||
"bin": true,
|
||||
"tarball": "https://verdaccio.lossless.digital/@git.zone/tsrun/-/tsrun-1.6.2.tgz"
|
||||
},
|
||||
"@git.zone/tstest@2.7.0": {
|
||||
"integrity": "sha512-ET532UpIAE86Ifw4P1Y2U7AJalKxM/Q88+kKN854dXSX+s5GgnRy0ysrPcSCUkJfENEvou1b0er1xcotUKx6hw==",
|
||||
"@git.zone/tstest@2.8.1": {
|
||||
"integrity": "sha512-0Sct9XsbrmAQgKNoW/jBNPMLllKVI+W6/aVkj9DEguiEnysmxLb3xRyoay06lxTGSBe5dA5uNULrdycdQ9slgQ==",
|
||||
"dependencies": [
|
||||
"@api.global/typedserver",
|
||||
"@git.zone/tsbundle",
|
||||
@@ -1016,7 +1016,7 @@
|
||||
"@push.rocks/smartchok",
|
||||
"@push.rocks/smartcrypto",
|
||||
"@push.rocks/smartdelay",
|
||||
"@push.rocks/smartenv",
|
||||
"@push.rocks/smartenv@5.0.13",
|
||||
"@push.rocks/smartexpect",
|
||||
"@push.rocks/smartfile",
|
||||
"@push.rocks/smartjson",
|
||||
@@ -1025,7 +1025,7 @@
|
||||
"@push.rocks/smartnetwork",
|
||||
"@push.rocks/smartpath@6.0.0",
|
||||
"@push.rocks/smartpromise",
|
||||
"@push.rocks/smartrequest@4.3.4",
|
||||
"@push.rocks/smartrequest@4.4.2",
|
||||
"@push.rocks/smarts3",
|
||||
"@push.rocks/smartshell",
|
||||
"@push.rocks/smarttime",
|
||||
@@ -1034,7 +1034,7 @@
|
||||
"ws@8.18.3"
|
||||
],
|
||||
"bin": true,
|
||||
"tarball": "https://verdaccio.lossless.digital/@git.zone/tstest/-/tstest-2.7.0.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@git.zone/tstest/-/tstest-2.8.1.tgz"
|
||||
},
|
||||
"@hapi/bourne@3.0.0": {
|
||||
"integrity": "sha512-Waj1cwPXJDucOib4a3bAISsKJVb15MKi9IvmTI/7ssVEm6sywXGjVJDhl6/umt1pK1ZS7PacXU3A1PmFKHEZ2w==",
|
||||
@@ -1290,8 +1290,8 @@
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@pdf-lib/upng/-/upng-1.0.1.tgz"
|
||||
},
|
||||
"@peculiar/asn1-cms@2.5.0": {
|
||||
"integrity": "sha512-p0SjJ3TuuleIvjPM4aYfvYw8Fk1Hn/zAVyPJZTtZ2eE9/MIer6/18ROxX6N/e6edVSfvuZBqhxAj3YgsmSjQ/A==",
|
||||
"@peculiar/asn1-cms@2.6.0": {
|
||||
"integrity": "sha512-2uZqP+ggSncESeUF/9Su8rWqGclEfEiz1SyU02WX5fUONFfkjzS2Z/F1Li0ofSmf4JqYXIOdCAZqIXAIBAT1OA==",
|
||||
"dependencies": [
|
||||
"@peculiar/asn1-schema",
|
||||
"@peculiar/asn1-x509",
|
||||
@@ -1299,30 +1299,30 @@
|
||||
"asn1js",
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@peculiar/asn1-cms/-/asn1-cms-2.5.0.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@peculiar/asn1-cms/-/asn1-cms-2.6.0.tgz"
|
||||
},
|
||||
"@peculiar/asn1-csr@2.5.0": {
|
||||
"integrity": "sha512-ioigvA6WSYN9h/YssMmmoIwgl3RvZlAYx4A/9jD2qaqXZwGcNlAxaw54eSx2QG1Yu7YyBC5Rku3nNoHrQ16YsQ==",
|
||||
"@peculiar/asn1-csr@2.6.0": {
|
||||
"integrity": "sha512-BeWIu5VpTIhfRysfEp73SGbwjjoLL/JWXhJ/9mo4vXnz3tRGm+NGm3KNcRzQ9VMVqwYS2RHlolz21svzRXIHPQ==",
|
||||
"dependencies": [
|
||||
"@peculiar/asn1-schema",
|
||||
"@peculiar/asn1-x509",
|
||||
"asn1js",
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@peculiar/asn1-csr/-/asn1-csr-2.5.0.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@peculiar/asn1-csr/-/asn1-csr-2.6.0.tgz"
|
||||
},
|
||||
"@peculiar/asn1-ecc@2.5.0": {
|
||||
"integrity": "sha512-t4eYGNhXtLRxaP50h3sfO6aJebUCDGQACoeexcelL4roMFRRVgB20yBIu2LxsPh/tdW9I282gNgMOyg3ywg/mg==",
|
||||
"@peculiar/asn1-ecc@2.6.0": {
|
||||
"integrity": "sha512-FF3LMGq6SfAOwUG2sKpPXblibn6XnEIKa+SryvUl5Pik+WR9rmRA3OCiwz8R3lVXnYnyRkSZsSLdml8H3UiOcw==",
|
||||
"dependencies": [
|
||||
"@peculiar/asn1-schema",
|
||||
"@peculiar/asn1-x509",
|
||||
"asn1js",
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@peculiar/asn1-ecc/-/asn1-ecc-2.5.0.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@peculiar/asn1-ecc/-/asn1-ecc-2.6.0.tgz"
|
||||
},
|
||||
"@peculiar/asn1-pfx@2.5.0": {
|
||||
"integrity": "sha512-Vj0d0wxJZA+Ztqfb7W+/iu8Uasw6hhKtCdLKXLG/P3kEPIQpqGI4P4YXlROfl7gOCqFIbgsj1HzFIFwQ5s20ug==",
|
||||
"@peculiar/asn1-pfx@2.6.0": {
|
||||
"integrity": "sha512-rtUvtf+tyKGgokHHmZzeUojRZJYPxoD/jaN1+VAB4kKR7tXrnDCA/RAWXAIhMJJC+7W27IIRGe9djvxKgsldCQ==",
|
||||
"dependencies": [
|
||||
"@peculiar/asn1-cms",
|
||||
"@peculiar/asn1-pkcs8",
|
||||
@@ -1331,20 +1331,20 @@
|
||||
"asn1js",
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@peculiar/asn1-pfx/-/asn1-pfx-2.5.0.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@peculiar/asn1-pfx/-/asn1-pfx-2.6.0.tgz"
|
||||
},
|
||||
"@peculiar/asn1-pkcs8@2.5.0": {
|
||||
"integrity": "sha512-L7599HTI2SLlitlpEP8oAPaJgYssByI4eCwQq2C9eC90otFpm8MRn66PpbKviweAlhinWQ3ZjDD2KIVtx7PaVw==",
|
||||
"@peculiar/asn1-pkcs8@2.6.0": {
|
||||
"integrity": "sha512-KyQ4D8G/NrS7Fw3XCJrngxmjwO/3htnA0lL9gDICvEQ+GJ+EPFqldcJQTwPIdvx98Tua+WjkdKHSC0/Km7T+lA==",
|
||||
"dependencies": [
|
||||
"@peculiar/asn1-schema",
|
||||
"@peculiar/asn1-x509",
|
||||
"asn1js",
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.5.0.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.6.0.tgz"
|
||||
},
|
||||
"@peculiar/asn1-pkcs9@2.5.0": {
|
||||
"integrity": "sha512-UgqSMBLNLR5TzEZ5ZzxR45Nk6VJrammxd60WMSkofyNzd3DQLSNycGWSK5Xg3UTYbXcDFyG8pA/7/y/ztVCa6A==",
|
||||
"@peculiar/asn1-pkcs9@2.6.0": {
|
||||
"integrity": "sha512-b78OQ6OciW0aqZxdzliXGYHASeCvvw5caqidbpQRYW2mBtXIX2WhofNXTEe7NyxTb0P6J62kAAWLwn0HuMF1Fw==",
|
||||
"dependencies": [
|
||||
"@peculiar/asn1-cms",
|
||||
"@peculiar/asn1-pfx",
|
||||
@@ -1355,49 +1355,49 @@
|
||||
"asn1js",
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.5.0.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.6.0.tgz"
|
||||
},
|
||||
"@peculiar/asn1-rsa@2.5.0": {
|
||||
"integrity": "sha512-qMZ/vweiTHy9syrkkqWFvbT3eLoedvamcUdnnvwyyUNv5FgFXA3KP8td+ATibnlZ0EANW5PYRm8E6MJzEB/72Q==",
|
||||
"@peculiar/asn1-rsa@2.6.0": {
|
||||
"integrity": "sha512-Nu4C19tsrTsCp9fDrH+sdcOKoVfdfoQQ7S3VqjJU6vedR7tY3RLkQ5oguOIB3zFW33USDUuYZnPEQYySlgha4w==",
|
||||
"dependencies": [
|
||||
"@peculiar/asn1-schema",
|
||||
"@peculiar/asn1-x509",
|
||||
"asn1js",
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@peculiar/asn1-rsa/-/asn1-rsa-2.5.0.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@peculiar/asn1-rsa/-/asn1-rsa-2.6.0.tgz"
|
||||
},
|
||||
"@peculiar/asn1-schema@2.5.0": {
|
||||
"integrity": "sha512-YM/nFfskFJSlHqv59ed6dZlLZqtZQwjRVJ4bBAiWV08Oc+1rSd5lDZcBEx0lGDHfSoH3UziI2pXt2UM33KerPQ==",
|
||||
"@peculiar/asn1-schema@2.6.0": {
|
||||
"integrity": "sha512-xNLYLBFTBKkCzEZIw842BxytQQATQv+lDTCEMZ8C196iJcJJMBUZxrhSTxLaohMyKK8QlzRNTRkUmanucnDSqg==",
|
||||
"dependencies": [
|
||||
"asn1js",
|
||||
"pvtsutils",
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@peculiar/asn1-schema/-/asn1-schema-2.5.0.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@peculiar/asn1-schema/-/asn1-schema-2.6.0.tgz"
|
||||
},
|
||||
"@peculiar/asn1-x509-attr@2.5.0": {
|
||||
"integrity": "sha512-9f0hPOxiJDoG/bfNLAFven+Bd4gwz/VzrCIIWc1025LEI4BXO0U5fOCTNDPbbp2ll+UzqKsZ3g61mpBp74gk9A==",
|
||||
"@peculiar/asn1-x509-attr@2.6.0": {
|
||||
"integrity": "sha512-MuIAXFX3/dc8gmoZBkwJWxUWOSvG4MMDntXhrOZpJVMkYX+MYc/rUAU2uJOved9iJEoiUx7//3D8oG83a78UJA==",
|
||||
"dependencies": [
|
||||
"@peculiar/asn1-schema",
|
||||
"@peculiar/asn1-x509",
|
||||
"asn1js",
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.5.0.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.6.0.tgz"
|
||||
},
|
||||
"@peculiar/asn1-x509@2.5.0": {
|
||||
"integrity": "sha512-CpwtMCTJvfvYTFMuiME5IH+8qmDe3yEWzKHe7OOADbGfq7ohxeLaXwQo0q4du3qs0AII3UbLCvb9NF/6q0oTKQ==",
|
||||
"@peculiar/asn1-x509@2.6.0": {
|
||||
"integrity": "sha512-uzYbPEpoQiBoTq0/+jZtpM6Gq6zADBx+JNFP3yqRgziWBxQ/Dt/HcuvRfm9zJTPdRcBqPNdaRHTVwpyiq6iNMA==",
|
||||
"dependencies": [
|
||||
"@peculiar/asn1-schema",
|
||||
"asn1js",
|
||||
"pvtsutils",
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@peculiar/asn1-x509/-/asn1-x509-2.5.0.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@peculiar/asn1-x509/-/asn1-x509-2.6.0.tgz"
|
||||
},
|
||||
"@peculiar/x509@1.14.0": {
|
||||
"integrity": "sha512-Yc4PDxN3OrxUPiXgU63c+ZRXKGE8YKF2McTciYhUHFtHVB0KMnjeFSU0qpztGhsp4P0uKix4+J2xEpIEDu8oXg==",
|
||||
"@peculiar/x509@1.14.2": {
|
||||
"integrity": "sha512-r2w1Hg6pODDs0zfAKHkSS5HLkOLSeburtcgwvlLLWWCixw+MmW3U6kD5ddyvc2Y2YdbGuVwCF2S2ASoU1cFAag==",
|
||||
"dependencies": [
|
||||
"@peculiar/asn1-cms",
|
||||
"@peculiar/asn1-csr",
|
||||
@@ -1411,7 +1411,7 @@
|
||||
"tslib@2.8.1",
|
||||
"tsyringe"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@peculiar/x509/-/x509-1.14.0.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@peculiar/x509/-/x509-1.14.2.tgz"
|
||||
},
|
||||
"@pnpm/config.env-replace@1.1.0": {
|
||||
"integrity": "sha512-htyl8TWnKL7K/ESFa1oW2UB5lVDxuF5DpM7tBi6Hu2LNL3mWkIzNLG6N4zoCUP1lCKNxWy/3iu8mS8MvToGd6w==",
|
||||
@@ -1480,7 +1480,7 @@
|
||||
"@push.rocks/lik",
|
||||
"@push.rocks/smartbucket",
|
||||
"@push.rocks/smartcache",
|
||||
"@push.rocks/smartenv",
|
||||
"@push.rocks/smartenv@5.0.13",
|
||||
"@push.rocks/smartexit",
|
||||
"@push.rocks/smartfile",
|
||||
"@push.rocks/smartjson",
|
||||
@@ -1538,7 +1538,7 @@
|
||||
"@push.rocks/smartfile",
|
||||
"@push.rocks/smartpath@6.0.0",
|
||||
"@push.rocks/smartpromise",
|
||||
"@push.rocks/smartrequest@4.3.4",
|
||||
"@push.rocks/smartrequest@4.4.2",
|
||||
"@push.rocks/smartrx",
|
||||
"@push.rocks/smartstream",
|
||||
"@push.rocks/smartunique",
|
||||
@@ -1667,7 +1667,7 @@
|
||||
"integrity": "sha512-nnP5+A2GOt0WsHrYhtKERmjdEHUchc+QbCCBEqlyeQTn+mNfx2WZvKVI1DFRJt8lamvzxP6Hr/BSe3WHdh4Snw==",
|
||||
"dependencies": [
|
||||
"@push.rocks/smartdelay",
|
||||
"@push.rocks/smartenv",
|
||||
"@push.rocks/smartenv@5.0.13",
|
||||
"@push.rocks/smartpromise",
|
||||
"@push.rocks/smartrequest@2.1.0",
|
||||
"@tsclass/tsclass@9.3.0",
|
||||
@@ -1687,6 +1687,13 @@
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@push.rocks/smartenv/-/smartenv-5.0.13.tgz"
|
||||
},
|
||||
"@push.rocks/smartenv@6.0.0": {
|
||||
"integrity": "sha512-ktW5MqOFs0492sB4vrvl4lgRFQ/sQ4AyREgB+sCIzGqszHWGVvGXR95Y2a3z66jkLPYML2CUWHzmMlfv8fkG+A==",
|
||||
"dependencies": [
|
||||
"@push.rocks/smartpromise"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@push.rocks/smartenv/-/smartenv-6.0.0.tgz"
|
||||
},
|
||||
"@push.rocks/smarterror@2.0.1": {
|
||||
"integrity": "sha512-iCcH1D8tlDJgMFsaJ6lhdOTKhbU0KoprNv9MRP9o7691QOx4JEDXiHtr/lNtxVo8BUtdb9CF6kazaknO9KuORA==",
|
||||
"dependencies": [
|
||||
@@ -1737,7 +1744,7 @@
|
||||
"@push.rocks/smartmime",
|
||||
"@push.rocks/smartpath@6.0.0",
|
||||
"@push.rocks/smartpromise",
|
||||
"@push.rocks/smartrequest@4.3.4",
|
||||
"@push.rocks/smartrequest@4.4.2",
|
||||
"@push.rocks/smartstream",
|
||||
"@types/fs-extra",
|
||||
"@types/js-yaml@4.0.9",
|
||||
@@ -1758,7 +1765,7 @@
|
||||
"@push.rocks/smarthash@3.2.6": {
|
||||
"integrity": "sha512-Mq/WNX0Tjjes3X1gHd/ZBwOOKSrAG/Z3Xoc0OcCm3P20WKpniihkMpsnlE7wGjvpHLi/ZRe/XkB3KC3d5r9X4g==",
|
||||
"dependencies": [
|
||||
"@push.rocks/smartenv",
|
||||
"@push.rocks/smartenv@5.0.13",
|
||||
"@push.rocks/smartjson",
|
||||
"@push.rocks/smartpromise",
|
||||
"@types/through2",
|
||||
@@ -1769,7 +1776,7 @@
|
||||
"@push.rocks/smartjson@5.2.0": {
|
||||
"integrity": "sha512-710e8UwovRfPgUtaBHcd6unaODUjV5fjxtGcGCqtaTcmvOV6VpasdVfT66xMDzQmWH2E9ZfHDJeso9HdDQzNQA==",
|
||||
"dependencies": [
|
||||
"@push.rocks/smartenv",
|
||||
"@push.rocks/smartenv@5.0.13",
|
||||
"@push.rocks/smartstring",
|
||||
"fast-json-stable-stringify",
|
||||
"lodash.clonedeep"
|
||||
@@ -1852,8 +1859,8 @@
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@push.rocks/smartmime/-/smartmime-2.0.4.tgz"
|
||||
},
|
||||
"@push.rocks/smartmongo@2.0.12": {
|
||||
"integrity": "sha512-NglYiO14BikxnlvW6JF18FtopBtaWQEGAtPxHmmSCbyhU8Mi0aEFO7VgCasE9Kguba/wcR597qhcDEdcpBg1eQ==",
|
||||
"@push.rocks/smartmongo@2.0.14": {
|
||||
"integrity": "sha512-fvfPeCDDy5JaDBpVnsMKednsOoRzuYC0OszO8OoLOX/RaR755zIbRppCCK8Cez0hqd6eNkJGQeWdX/vXlJOPBA==",
|
||||
"dependencies": [
|
||||
"@push.rocks/mongodump",
|
||||
"@push.rocks/smartdata",
|
||||
@@ -1861,7 +1868,7 @@
|
||||
"@push.rocks/smartpromise",
|
||||
"mongodb-memory-server"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@push.rocks/smartmongo/-/smartmongo-2.0.12.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@push.rocks/smartmongo/-/smartmongo-2.0.14.tgz"
|
||||
},
|
||||
"@push.rocks/smartnetwork@4.4.0": {
|
||||
"integrity": "sha512-OvFtz41cvQ7lcXwaIOhghNUUlNoMxvwKDctbDvMyuZyEH08SpLjhyv2FuKbKL/mgwA/WxakTbohoC8SW7t+kiw==",
|
||||
@@ -1884,7 +1891,7 @@
|
||||
"@push.rocks/smartfile",
|
||||
"@push.rocks/smartpath@6.0.0",
|
||||
"@push.rocks/smartpromise",
|
||||
"@push.rocks/smartrequest@4.3.4",
|
||||
"@push.rocks/smartrequest@4.4.2",
|
||||
"@push.rocks/smarttime",
|
||||
"@push.rocks/smartversion",
|
||||
"package-json"
|
||||
@@ -1975,17 +1982,17 @@
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@push.rocks/smartrequest/-/smartrequest-2.1.0.tgz"
|
||||
},
|
||||
"@push.rocks/smartrequest@4.3.4": {
|
||||
"integrity": "sha512-b8UH4CS2QTccOjvmIJetOqK26eVz0CuCTkJdJDVU8j34KqPGpaWzn/4D3j3DCsTYRkAqr5nSjkzAFgCJj8eIiA==",
|
||||
"@push.rocks/smartrequest@4.4.2": {
|
||||
"integrity": "sha512-Om4y1Ce4YdSu8VoXREz2SgFz9pDxcFEm0+SC1YYa3RXd0AH2Mknaj/1XfvfMqojnK9L7N2z1fY4xX8tO1IwqFQ==",
|
||||
"dependencies": [
|
||||
"@push.rocks/smartenv",
|
||||
"@push.rocks/smartenv@6.0.0",
|
||||
"@push.rocks/smartpath@6.0.0",
|
||||
"@push.rocks/smartpromise",
|
||||
"@push.rocks/smarturl",
|
||||
"agentkeepalive",
|
||||
"form-data"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@push.rocks/smartrequest/-/smartrequest-4.3.4.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@push.rocks/smartrequest/-/smartrequest-4.4.2.tgz"
|
||||
},
|
||||
"@push.rocks/smartrouter@1.3.3": {
|
||||
"integrity": "sha512-1+xZEnWlhzqLWAaJ1zFNhQ0zgbfCWQl1DBT72LygLxTs+P0K8AwJKgqo/IX6CT55kGCFnPAZIYSbVJlGsgrB0w==",
|
||||
@@ -2049,7 +2056,7 @@
|
||||
"@push.rocks/isounique",
|
||||
"@push.rocks/lik",
|
||||
"@push.rocks/smartdelay",
|
||||
"@push.rocks/smartenv",
|
||||
"@push.rocks/smartenv@5.0.13",
|
||||
"@push.rocks/smartjson",
|
||||
"@push.rocks/smartlog",
|
||||
"@push.rocks/smartpromise",
|
||||
@@ -2087,7 +2094,7 @@
|
||||
"integrity": "sha512-PLGGIFDy8JLNVUnnntMSIYN4W081YSbNC7Y/sWpvUT8PAXtbEXXUiDFgK5o3gcI0ptpKQxHAwxhzNlPj0sbFVg==",
|
||||
"dependencies": [
|
||||
"@push.rocks/lik",
|
||||
"@push.rocks/smartenv",
|
||||
"@push.rocks/smartenv@5.0.13",
|
||||
"@push.rocks/smartpromise",
|
||||
"@push.rocks/smartrx"
|
||||
],
|
||||
@@ -2147,7 +2154,7 @@
|
||||
"integrity": "sha512-tBcf+HaOIfeEsTMwgUZDtZERCxXQyRsWO8Ar5DjBdiSRchbhVGZQEBzXswMS0W5ZoRenjgPK+4tPW3JQGRTfbg==",
|
||||
"dependencies": [
|
||||
"@types/js-yaml@3.12.10",
|
||||
"js-yaml@3.14.1"
|
||||
"js-yaml@3.14.2"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@push.rocks/smartyaml/-/smartyaml-2.0.5.tgz"
|
||||
},
|
||||
@@ -2159,7 +2166,7 @@
|
||||
"@push.rocks/qenv",
|
||||
"@push.rocks/smartcrypto",
|
||||
"@push.rocks/smartdelay",
|
||||
"@push.rocks/smartenv",
|
||||
"@push.rocks/smartenv@5.0.13",
|
||||
"@push.rocks/smartexpect",
|
||||
"@push.rocks/smartfile",
|
||||
"@push.rocks/smartjson",
|
||||
@@ -2192,7 +2199,7 @@
|
||||
"integrity": "sha512-fLN7kP6GeHFxE4UH4r9C9pjcQb0QkJxHeAMwXvbOqB9hh0MFNKhtGU7GoaTn8SVRGRMPc9UqZVNwo6u5l8Wn0A==",
|
||||
"dependencies": [
|
||||
"@push.rocks/smartdelay",
|
||||
"@push.rocks/smartenv",
|
||||
"@push.rocks/smartenv@5.0.13",
|
||||
"@push.rocks/smartjson",
|
||||
"@push.rocks/smartpromise",
|
||||
"@push.rocks/webstore"
|
||||
@@ -2213,7 +2220,7 @@
|
||||
"dependencies": [
|
||||
"@api.global/typedrequest-interfaces@3.0.19",
|
||||
"@push.rocks/lik",
|
||||
"@push.rocks/smartenv",
|
||||
"@push.rocks/smartenv@5.0.13",
|
||||
"@push.rocks/smartjson",
|
||||
"@push.rocks/smartpromise",
|
||||
"@push.rocks/smartrx",
|
||||
@@ -2225,7 +2232,7 @@
|
||||
"@push.rocks/webstream@1.0.10": {
|
||||
"integrity": "sha512-45CcR0I4/9v0qSjLvz2dYTGMkR0YP3x66ItpStdad5hidJm86t1lfHF06d0oiEvJTpvQkeyIX/8YKAumf21d/Q==",
|
||||
"dependencies": [
|
||||
"@push.rocks/smartenv"
|
||||
"@push.rocks/smartenv@5.0.13"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@push.rocks/webstream/-/webstream-1.0.10.tgz"
|
||||
},
|
||||
@@ -2528,8 +2535,8 @@
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@smithy/config-resolver/-/config-resolver-4.4.3.tgz"
|
||||
},
|
||||
"@smithy/core@3.18.3": {
|
||||
"integrity": "sha512-qqpNskkbHOSfrbFbjhYj5o8VMXO26fvN1K/+HbCzUNlTuxgNcPRouUDNm+7D6CkN244WG7aK533Ne18UtJEgAA==",
|
||||
"@smithy/core@3.18.4": {
|
||||
"integrity": "sha512-o5tMqPZILBvvROfC8vC+dSVnWJl9a0u9ax1i1+Bq8515eYjUJqqk5XjjEsDLoeL5dSqGSh6WGdVx1eJ1E/Nwhw==",
|
||||
"dependencies": [
|
||||
"@smithy/middleware-serde",
|
||||
"@smithy/protocol-http",
|
||||
@@ -2542,7 +2549,7 @@
|
||||
"@smithy/uuid",
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@smithy/core/-/core-3.18.3.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@smithy/core/-/core-3.18.4.tgz"
|
||||
},
|
||||
"@smithy/credential-provider-imds@4.2.5": {
|
||||
"integrity": "sha512-BZwotjoZWn9+36nimwm/OLIcVe+KYRwzMjfhd4QT7QxPm9WY0HiOV8t/Wlh+HVUif0SBVV7ksq8//hPaBC/okQ==",
|
||||
@@ -2680,8 +2687,8 @@
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@smithy/middleware-content-length/-/middleware-content-length-4.2.5.tgz"
|
||||
},
|
||||
"@smithy/middleware-endpoint@4.3.10": {
|
||||
"integrity": "sha512-SoAag3QnWBFoXjwa1jenEThkzJYClidZUyqsLKwWZ8kOlZBwehrLBp4ygVDjNEM2a2AamCQ2FBA/HuzKJ/LiTA==",
|
||||
"@smithy/middleware-endpoint@4.3.11": {
|
||||
"integrity": "sha512-eJXq9VJzEer1W7EQh3HY2PDJdEcEUnv6sKuNt4eVjyeNWcQFS4KmnY+CKkYOIR6tSqarn6bjjCqg1UB+8UJiPQ==",
|
||||
"dependencies": [
|
||||
"@smithy/core",
|
||||
"@smithy/middleware-serde",
|
||||
@@ -2692,10 +2699,10 @@
|
||||
"@smithy/util-middleware",
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@smithy/middleware-endpoint/-/middleware-endpoint-4.3.10.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@smithy/middleware-endpoint/-/middleware-endpoint-4.3.11.tgz"
|
||||
},
|
||||
"@smithy/middleware-retry@4.4.10": {
|
||||
"integrity": "sha512-6fOwX34gXxcqKa3bsG0mR0arc2Cw4ddOS6tp3RgUD2yoTrDTbQ2aVADnDjhUuxaiDZN2iilxndgGDhnpL/XvJA==",
|
||||
"@smithy/middleware-retry@4.4.11": {
|
||||
"integrity": "sha512-EL5OQHvFOKneJVRgzRW4lU7yidSwp/vRJOe542bHgExN3KNThr1rlg0iE4k4SnA+ohC+qlUxoK+smKeAYPzfAQ==",
|
||||
"dependencies": [
|
||||
"@smithy/node-config-provider",
|
||||
"@smithy/protocol-http",
|
||||
@@ -2707,16 +2714,16 @@
|
||||
"@smithy/uuid",
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@smithy/middleware-retry/-/middleware-retry-4.4.10.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@smithy/middleware-retry/-/middleware-retry-4.4.11.tgz"
|
||||
},
|
||||
"@smithy/middleware-serde@4.2.5": {
|
||||
"integrity": "sha512-La1ldWTJTZ5NqQyPqnCNeH9B+zjFhrNoQIL1jTh4zuqXRlmXhxYHhMtI1/92OlnoAtp6JoN7kzuwhWoXrBwPqg==",
|
||||
"@smithy/middleware-serde@4.2.6": {
|
||||
"integrity": "sha512-VkLoE/z7e2g8pirwisLz8XJWedUSY8my/qrp81VmAdyrhi94T+riBfwP+AOEEFR9rFTSonC/5D2eWNmFabHyGQ==",
|
||||
"dependencies": [
|
||||
"@smithy/protocol-http",
|
||||
"@smithy/types",
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@smithy/middleware-serde/-/middleware-serde-4.2.5.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@smithy/middleware-serde/-/middleware-serde-4.2.6.tgz"
|
||||
},
|
||||
"@smithy/middleware-stack@4.2.5": {
|
||||
"integrity": "sha512-bYrutc+neOyWxtZdbB2USbQttZN0mXaOyYLIsaTbJhFsfpXyGWUxJpEuO1rJ8IIJm2qH4+xJT0mxUSsEDTYwdQ==",
|
||||
@@ -2809,8 +2816,8 @@
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@smithy/signature-v4/-/signature-v4-5.3.5.tgz"
|
||||
},
|
||||
"@smithy/smithy-client@4.9.6": {
|
||||
"integrity": "sha512-hGz42hggqReicRRZUvrKDQiAmoJnx1Q+XfAJnYAGu544gOfxQCAC3hGGD7+Px2gEUUxB/kKtQV7LOtBRNyxteQ==",
|
||||
"@smithy/smithy-client@4.9.7": {
|
||||
"integrity": "sha512-pskaE4kg0P9xNQWihfqlTMyxyFR3CH6Sr6keHYghgyqqDXzjl2QJg5lAzuVe/LzZiOzcbcVtxKYi1/fZPt/3DA==",
|
||||
"dependencies": [
|
||||
"@smithy/core",
|
||||
"@smithy/middleware-endpoint",
|
||||
@@ -2820,7 +2827,7 @@
|
||||
"@smithy/util-stream",
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@smithy/smithy-client/-/smithy-client-4.9.6.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@smithy/smithy-client/-/smithy-client-4.9.7.tgz"
|
||||
},
|
||||
"@smithy/types@4.9.0": {
|
||||
"integrity": "sha512-MvUbdnXDTwykR8cB1WZvNNwqoWVaTRA0RLlLmf/cIFNMM2cKWz01X4Ly6SMC4Kks30r8tT3Cty0jmeWfiuyHTA==",
|
||||
@@ -2884,18 +2891,18 @@
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@smithy/util-config-provider/-/util-config-provider-4.2.0.tgz"
|
||||
},
|
||||
"@smithy/util-defaults-mode-browser@4.3.9": {
|
||||
"integrity": "sha512-Bh5bU40BgdkXE2BcaNazhNtEXi1TC0S+1d84vUwv5srWfvbeRNUKFzwKQgC6p6MXPvEgw+9+HdX3pOwT6ut5aw==",
|
||||
"@smithy/util-defaults-mode-browser@4.3.10": {
|
||||
"integrity": "sha512-3iA3JVO1VLrP21FsZZpMCeF93aqP3uIOMvymAT3qHIJz2YlgDeRvNUspFwCNqd/j3qqILQJGtsVQnJZICh/9YA==",
|
||||
"dependencies": [
|
||||
"@smithy/property-provider",
|
||||
"@smithy/smithy-client",
|
||||
"@smithy/types",
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.9.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.3.10.tgz"
|
||||
},
|
||||
"@smithy/util-defaults-mode-node@4.2.12": {
|
||||
"integrity": "sha512-EHZwe1E9Q7umImIyCKQg/Cm+S+7rjXxCRvfGmKifqwYvn7M8M4ZcowwUOQzvuuxUUmdzCkqL0Eq0z1m74Pq6pw==",
|
||||
"@smithy/util-defaults-mode-node@4.2.13": {
|
||||
"integrity": "sha512-PTc6IpnpSGASuzZAgyUtaVfOFpU0jBD2mcGwrgDuHf7PlFgt5TIPxCYBDbFQs06jxgeV3kd/d/sok1pzV0nJRg==",
|
||||
"dependencies": [
|
||||
"@smithy/config-resolver",
|
||||
"@smithy/credential-provider-imds",
|
||||
@@ -2905,7 +2912,7 @@
|
||||
"@smithy/types",
|
||||
"tslib@2.8.1"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.12.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.13.tgz"
|
||||
},
|
||||
"@smithy/util-endpoints@3.2.5": {
|
||||
"integrity": "sha512-3O63AAWu2cSNQZp+ayl9I3NapW1p1rR5mlVHcF6hAB1dPZUQFfRPYtplWX/3xrzWthPGj5FqB12taJJCfH6s8A==",
|
||||
@@ -3126,15 +3133,15 @@
|
||||
"integrity": "sha512-ag0BfJLZf6CQz8VIuRIEYQ5Ggwk/82uvTQf27RcpyDNbY0Vw49LIPqAxk5tqYfrCs9xDaIMvl4aj7ZopnYL8bA==",
|
||||
"tarball": "https://verdaccio.lossless.digital/@types/convert-source-map/-/convert-source-map-2.0.3.tgz"
|
||||
},
|
||||
"@types/cookies@0.9.1": {
|
||||
"integrity": "sha512-E/DPgzifH4sM1UMadJMWd6mO2jOd4g1Ejwzx8/uRCDpJis1IrlyQEcGAYEomtAqRYmD5ORbNXMeI9U0RiVGZbg==",
|
||||
"@types/cookies@0.9.2": {
|
||||
"integrity": "sha512-1AvkDdZM2dbyFybL4fxpuNCaWyv//0AwsuUk2DWeXyM1/5ZKm6W3z6mQi24RZ4l2ucY+bkSHzbDVpySqPGuV8A==",
|
||||
"dependencies": [
|
||||
"@types/connect",
|
||||
"@types/express",
|
||||
"@types/keygrip",
|
||||
"@types/node@24.2.0"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@types/cookies/-/cookies-0.9.1.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@types/cookies/-/cookies-0.9.2.tgz"
|
||||
},
|
||||
"@types/cors@2.8.19": {
|
||||
"integrity": "sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==",
|
||||
@@ -3260,12 +3267,12 @@
|
||||
"integrity": "sha512-lZuNAY9xeJt7Bx4t4dx0rYCDqGPW8RXhQZK1td7d4H6E9zYbLoOtjBvfwdTKpsyxQI/2jv+armjX/RW+ZNpXOQ==",
|
||||
"tarball": "https://verdaccio.lossless.digital/@types/keygrip/-/keygrip-1.0.6.tgz"
|
||||
},
|
||||
"@types/koa-compose@3.2.8": {
|
||||
"integrity": "sha512-4Olc63RY+MKvxMwVknCUDhRQX1pFQoBZ/lXcRLP69PQkEpze/0cr8LNqJQe5NFb/b19DWi2a5bTi2VAlQzhJuA==",
|
||||
"@types/koa-compose@3.2.9": {
|
||||
"integrity": "sha512-BroAZ9FTvPiCy0Pi8tjD1OfJ7bgU1gQf0eR6e1Vm+JJATy9eKOG3hQMFtMciMawiSOVnLMdmUOC46s7HBhSTsA==",
|
||||
"dependencies": [
|
||||
"@types/koa"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@types/koa-compose/-/koa-compose-3.2.8.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@types/koa-compose/-/koa-compose-3.2.9.tgz"
|
||||
},
|
||||
"@types/koa@2.15.0": {
|
||||
"integrity": "sha512-7QFsywoE5URbuVnG3loe03QXuGajrnotr3gQkXcEBShORai23MePfFYdhz90FEtBBpkyIYQbVD+evKtloCgX3g==",
|
||||
@@ -3392,16 +3399,16 @@
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@types/sinon-chai/-/sinon-chai-3.2.12.tgz"
|
||||
},
|
||||
"@types/sinon@17.0.4": {
|
||||
"integrity": "sha512-RHnIrhfPO3+tJT0s7cFaXGZvsL4bbR3/k7z3P312qMS4JaS2Tk+KiwiLx1S0rQ56ERj00u1/BtdyVd0FY+Pdew==",
|
||||
"@types/sinon@20.0.0": {
|
||||
"integrity": "sha512-etYGUC6IEevDGSWvR9WrECRA01ucR2/Oi9XMBUAdV0g4bLkNf4HlZWGiGlDOq5lgwXRwcV+PSeKgFcW4QzzYOg==",
|
||||
"dependencies": [
|
||||
"@types/sinonjs__fake-timers"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@types/sinon/-/sinon-17.0.4.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@types/sinon/-/sinon-20.0.0.tgz"
|
||||
},
|
||||
"@types/sinonjs__fake-timers@8.1.5": {
|
||||
"integrity": "sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ==",
|
||||
"tarball": "https://verdaccio.lossless.digital/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.5.tgz"
|
||||
"@types/sinonjs__fake-timers@15.0.1": {
|
||||
"integrity": "sha512-Ko2tjWJq8oozHzHV+reuvS5KYIRAokHnGbDwGh/J64LntgpbuylF74ipEL24HCyRjf9FOlBiBHWBR1RlVKsI1w==",
|
||||
"tarball": "https://verdaccio.lossless.digital/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-15.0.1.tgz"
|
||||
},
|
||||
"@types/stack-utils@2.0.3": {
|
||||
"integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==",
|
||||
@@ -3485,12 +3492,12 @@
|
||||
"integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==",
|
||||
"tarball": "https://verdaccio.lossless.digital/@types/yargs-parser/-/yargs-parser-21.0.3.tgz"
|
||||
},
|
||||
"@types/yargs@17.0.33": {
|
||||
"integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==",
|
||||
"@types/yargs@17.0.35": {
|
||||
"integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==",
|
||||
"dependencies": [
|
||||
"@types/yargs-parser"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/@types/yargs/-/yargs-17.0.33.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/@types/yargs/-/yargs-17.0.35.tgz"
|
||||
},
|
||||
"@types/yauzl@2.10.3": {
|
||||
"integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==",
|
||||
@@ -4069,12 +4076,12 @@
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/color-convert/-/color-convert-2.0.1.tgz"
|
||||
},
|
||||
"color-convert@3.1.2": {
|
||||
"integrity": "sha512-UNqkvCDXstVck3kdowtOTWROIJQwafjOfXSmddoDrXo4cewMKmusCeF22Q24zvjR8nwWib/3S/dfyzPItPEiJg==",
|
||||
"color-convert@3.1.3": {
|
||||
"integrity": "sha512-fasDH2ont2GqF5HpyO4w0+BcewlhHEZOFn9c1ckZdHpJ56Qb7MHhH/IcJZbBGgvdtwdwNbLvxiBEdg336iA9Sg==",
|
||||
"dependencies": [
|
||||
"color-name@2.0.2"
|
||||
"color-name@2.1.0"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/color-convert/-/color-convert-3.1.2.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/color-convert/-/color-convert-3.1.3.tgz"
|
||||
},
|
||||
"color-name@1.1.3": {
|
||||
"integrity": "a7d0558bd89c42f795dd42328f740831ca53bc25",
|
||||
@@ -4084,24 +4091,24 @@
|
||||
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
|
||||
"tarball": "https://verdaccio.lossless.digital/color-name/-/color-name-1.1.4.tgz"
|
||||
},
|
||||
"color-name@2.0.2": {
|
||||
"integrity": "sha512-9vEt7gE16EW7Eu7pvZnR0abW9z6ufzhXxGXZEVU9IqPdlsUiMwJeJfRtq0zePUmnbHGT9zajca7mX8zgoayo4A==",
|
||||
"tarball": "https://verdaccio.lossless.digital/color-name/-/color-name-2.0.2.tgz"
|
||||
"color-name@2.1.0": {
|
||||
"integrity": "sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg==",
|
||||
"tarball": "https://verdaccio.lossless.digital/color-name/-/color-name-2.1.0.tgz"
|
||||
},
|
||||
"color-string@2.1.2": {
|
||||
"integrity": "sha512-RxmjYxbWemV9gKu4zPgiZagUxbH3RQpEIO77XoSSX0ivgABDZ+h8Zuash/EMFLTI4N9QgFPOJ6JQpPZKFxa+dA==",
|
||||
"color-string@2.1.4": {
|
||||
"integrity": "sha512-Bb6Cq8oq0IjDOe8wJmi4JeNn763Xs9cfrBcaylK1tPypWzyoy2G3l90v9k64kjphl/ZJjPIShFztenRomi8WTg==",
|
||||
"dependencies": [
|
||||
"color-name@2.0.2"
|
||||
"color-name@2.1.0"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/color-string/-/color-string-2.1.2.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/color-string/-/color-string-2.1.4.tgz"
|
||||
},
|
||||
"color@5.0.2": {
|
||||
"integrity": "sha512-e2hz5BzbUPcYlIRHo8ieAhYgoajrJr+hWoceg6E345TPsATMUKqDgzt8fSXZJJbxfpiPzkWyphz8yn8At7q3fA==",
|
||||
"color@5.0.3": {
|
||||
"integrity": "sha512-ezmVcLR3xAVp8kYOm4GS45ZLLgIE6SPAFoduLr6hTDajwb3KZ2F46gulK3XpcwRFb5KKGCSezCBAY4Dw4HsyXA==",
|
||||
"dependencies": [
|
||||
"color-convert@3.1.2",
|
||||
"color-convert@3.1.3",
|
||||
"color-string"
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/color/-/color-5.0.2.tgz"
|
||||
"tarball": "https://verdaccio.lossless.digital/color/-/color-5.0.3.tgz"
|
||||
},
|
||||
"combined-stream@1.0.8": {
|
||||
"integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
|
||||
@@ -5343,9 +5350,9 @@
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/internal-ip/-/internal-ip-6.2.0.tgz"
|
||||
},
|
||||
"ip-address@10.0.1": {
|
||||
"integrity": "sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==",
|
||||
"tarball": "https://verdaccio.lossless.digital/ip-address/-/ip-address-10.0.1.tgz"
|
||||
"ip-address@10.1.0": {
|
||||
"integrity": "sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==",
|
||||
"tarball": "https://verdaccio.lossless.digital/ip-address/-/ip-address-10.1.0.tgz"
|
||||
},
|
||||
"ip-regex@4.3.0": {
|
||||
"integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==",
|
||||
@@ -5458,9 +5465,9 @@
|
||||
],
|
||||
"tarball": "https://verdaccio.lossless.digital/is-wsl/-/is-wsl-2.2.0.tgz"
|
||||
},
|
||||
"isbinaryfile@5.0.6": {
|
||||
"integrity": "sha512-I+NmIfBHUl+r2wcDd6JwE9yWje/PIVY/R5/CmV8dXLZd5K+L9X2klAOwfAHNnondLXkbHyTAleQAWonpTJBTtw==",
|
||||
"tarball": "https://verdaccio.lossless.digital/isbinaryfile/-/isbinaryfile-5.0.6.tgz"
|
||||
"isbinaryfile@5.0.7": {
|
||||
"integrity": "sha512-gnWD14Jh3FzS3CPhF0AxNOJ8CxqeblPTADzI38r0wt8ZyQl5edpy75myt08EG2oKvpyiqSqsx+Wkz9vtkbTqYQ==",
|
||||
"tarball": "https://verdaccio.lossless.digital/isbinaryfile/-/isbinaryfile-5.0.7.tgz"
|
||||
},
|
||||
"isexe@2.0.0": {
|
||||
"integrity": "e8fbf374dc556ff8947a10dcb0572d633f2cfa10",
|
||||
@@ -5570,6 +5577,15 @@
|
||||
"bin": true,
|
||||
"tarball": "https://verdaccio.lossless.digital/js-yaml/-/js-yaml-3.14.1.tgz"
|
||||
},
|
||||
"js-yaml@3.14.2": {
|
||||
"integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==",
|
||||
"dependencies": [
|
||||
"argparse@1.0.10",
|
||||
"esprima"
|
||||
],
|
||||
"bin": true,
|
||||
"tarball": "https://verdaccio.lossless.digital/js-yaml/-/js-yaml-3.14.2.tgz"
|
||||
},
|
||||
"js-yaml@4.1.1": {
|
||||
"integrity": "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==",
|
||||
"dependencies": [
|
||||
@@ -8093,14 +8109,14 @@
|
||||
"workspace": {
|
||||
"packageJson": {
|
||||
"dependencies": [
|
||||
"npm:@git.zone/tsbuild@^2.6.8",
|
||||
"npm:@git.zone/tsbuild@^2.7.1",
|
||||
"npm:@git.zone/tsrun@^1.6.2",
|
||||
"npm:@git.zone/tstest@^2.6.2",
|
||||
"npm:@git.zone/tstest@^2.8.1",
|
||||
"npm:@push.rocks/lik@^6.2.2",
|
||||
"npm:@push.rocks/qenv@^6.1.3",
|
||||
"npm:@push.rocks/smartdelay@^3.0.1",
|
||||
"npm:@push.rocks/smartlog@^3.1.10",
|
||||
"npm:@push.rocks/smartmongo@^2.0.12",
|
||||
"npm:@push.rocks/smartmongo@^2.0.14",
|
||||
"npm:@push.rocks/smartpromise@^4.0.2",
|
||||
"npm:@push.rocks/smartrx@^3.0.10",
|
||||
"npm:@push.rocks/smartstring@^4.1.0",
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
"@push.rocks/lik": "^6.2.2",
|
||||
"@push.rocks/smartdelay": "^3.0.1",
|
||||
"@push.rocks/smartlog": "^3.1.10",
|
||||
"@push.rocks/smartmongo": "^2.0.12",
|
||||
"@push.rocks/smartmongo": "^2.0.14",
|
||||
"@push.rocks/smartpromise": "^4.0.2",
|
||||
"@push.rocks/smartrx": "^3.0.10",
|
||||
"@push.rocks/smartstring": "^4.1.0",
|
||||
@@ -37,9 +37,9 @@
|
||||
"mongodb": "^6.20.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@git.zone/tsbuild": "^2.6.8",
|
||||
"@git.zone/tsbuild": "^2.7.1",
|
||||
"@git.zone/tsrun": "^1.6.2",
|
||||
"@git.zone/tstest": "^2.6.2",
|
||||
"@git.zone/tstest": "^2.8.1",
|
||||
"@push.rocks/qenv": "^6.1.3",
|
||||
"@push.rocks/tapbundle": "^6.0.3",
|
||||
"@types/node": "^22.15.2"
|
||||
|
||||
2960
pnpm-lock.yaml
generated
2960
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
255
test/test.deno.ts
Normal file
255
test/test.deno.ts
Normal file
@@ -0,0 +1,255 @@
|
||||
// TODO: Decorator support during testing for bun and deno in @git.zone/tstest
|
||||
|
||||
import { tap, expect } from '@push.rocks/tapbundle';
|
||||
import { Qenv } from '@push.rocks/qenv';
|
||||
import * as smartmongo from '@push.rocks/smartmongo';
|
||||
import { smartunique } from '../ts/plugins.js';
|
||||
|
||||
import * as mongodb from 'mongodb';
|
||||
|
||||
const testQenv = new Qenv(process.cwd(), process.cwd() + '/.nogit/');
|
||||
|
||||
console.log(process.memoryUsage());
|
||||
|
||||
// the tested module
|
||||
import * as smartdata from '../ts/index.js';
|
||||
|
||||
// =======================================
|
||||
// Connecting to the database server
|
||||
// =======================================
|
||||
|
||||
let smartmongoInstance: smartmongo.SmartMongo;
|
||||
let testDb: smartdata.SmartdataDb;
|
||||
|
||||
const totalCars = 2000;
|
||||
|
||||
tap.test('should create a testinstance as database', async () => {
|
||||
const databaseName = `test-smartdata-deno-${smartunique.shortId()}`;
|
||||
testDb = new smartdata.SmartdataDb({
|
||||
mongoDbUrl: await testQenv.getEnvVarOnDemand('MONGODB_URL'),
|
||||
mongoDbName: databaseName,
|
||||
});
|
||||
await testDb.init();
|
||||
});
|
||||
|
||||
// =======================================
|
||||
// The actual tests
|
||||
// =======================================
|
||||
|
||||
// ------
|
||||
// Collections
|
||||
// ------
|
||||
|
||||
@smartdata.Collection(() => {
|
||||
return testDb;
|
||||
})
|
||||
class Car extends smartdata.SmartDataDbDoc<Car, Car> {
|
||||
@smartdata.unI()
|
||||
public index: string = smartunique.shortId();
|
||||
|
||||
@smartdata.svDb()
|
||||
public color: string;
|
||||
|
||||
@smartdata.svDb()
|
||||
public brand: string;
|
||||
|
||||
@smartdata.svDb()
|
||||
public testBuffer = Buffer.from('hello');
|
||||
|
||||
@smartdata.svDb()
|
||||
deepData = {
|
||||
sodeep: 'yes',
|
||||
};
|
||||
|
||||
constructor(colorArg: string, brandArg: string) {
|
||||
super();
|
||||
this.color = colorArg;
|
||||
this.brand = brandArg;
|
||||
}
|
||||
}
|
||||
|
||||
tap.test('should create a new id', async () => {
|
||||
const newid = await Car.getNewId();
|
||||
console.log(newid);
|
||||
});
|
||||
|
||||
tap.test('should save the car to the db', async (toolsArg) => {
|
||||
const myCar = new Car('red', 'Volvo');
|
||||
console.log('Car.collection.smartdataDb:', (Car.collection as any).smartdataDb?.mongoDb?.databaseName);
|
||||
console.log('Car.collection.collectionName:', (Car.collection as any).collectionName);
|
||||
console.log('testDb.mongoDb.databaseName:', testDb.mongoDb.databaseName);
|
||||
await myCar.save();
|
||||
|
||||
const myCar2 = new Car('red', 'Volvo');
|
||||
await myCar2.save();
|
||||
|
||||
let counter = 0;
|
||||
|
||||
const gottenCarInstance = await Car.getInstance({});
|
||||
console.log(gottenCarInstance.testBuffer instanceof mongodb.Binary);
|
||||
process.memoryUsage();
|
||||
do {
|
||||
const myCar3 = new Car('red', 'Renault');
|
||||
await myCar3.save();
|
||||
counter++;
|
||||
if (counter % 100 === 0) {
|
||||
console.log(
|
||||
`Filled database with ${counter} of ${totalCars} Cars and memory usage ${
|
||||
process.memoryUsage().rss / 1e6
|
||||
} MB`,
|
||||
);
|
||||
}
|
||||
} while (counter < totalCars);
|
||||
console.log(process.memoryUsage());
|
||||
|
||||
// DEBUG: Check what's actually in the database
|
||||
const savedCount = await Car.getCount({});
|
||||
console.log('Total cars saved in DB:', savedCount);
|
||||
const renaultCount = await Car.getCount({ brand: 'Renault' });
|
||||
console.log('Renault cars in DB:', renaultCount);
|
||||
|
||||
// Check what's actually in the first saved car
|
||||
const firstCar = await Car.getInstance({});
|
||||
console.log('First car data:', JSON.stringify({
|
||||
color: firstCar?.color,
|
||||
brand: firstCar?.brand,
|
||||
index: firstCar?.index
|
||||
}));
|
||||
});
|
||||
|
||||
tap.test('expect to get instance of Car with shallow match', async () => {
|
||||
console.log('Before query - testDb.mongoDb.databaseName:', testDb.mongoDb.databaseName);
|
||||
console.log('Before query - Car.collection.smartdataDb:', (Car.collection as any).smartdataDb?.mongoDb?.databaseName);
|
||||
console.log('Before query - Car.collection.collectionName:', (Car.collection as any).collectionName);
|
||||
|
||||
const totalQueryCycles = totalCars / 2;
|
||||
let counter = 0;
|
||||
do {
|
||||
const timeStart = Date.now();
|
||||
const myCars = await Car.getInstances({
|
||||
brand: 'Renault',
|
||||
});
|
||||
if (counter % 10 === 0) {
|
||||
console.log(
|
||||
`performed ${counter} of ${totalQueryCycles} total query cycles: took ${
|
||||
Date.now() - timeStart
|
||||
}ms to query a set of 2000 with memory footprint ${process.memoryUsage().rss / 1e6} MB`,
|
||||
);
|
||||
console.log('myCars.length:', myCars.length);
|
||||
console.log('myCars[0]:', myCars[0]);
|
||||
}
|
||||
expect(myCars[0].deepData.sodeep).toEqual('yes');
|
||||
expect(myCars[0].brand).toEqual('Renault');
|
||||
counter++;
|
||||
} while (counter < totalQueryCycles);
|
||||
});
|
||||
|
||||
tap.test('expect to get instance of Car with deep match', async () => {
|
||||
const totalQueryCycles = totalCars / 6;
|
||||
let counter = 0;
|
||||
do {
|
||||
const timeStart = Date.now();
|
||||
const myCars2 = await Car.getInstances({
|
||||
deepData: {
|
||||
sodeep: 'yes',
|
||||
},
|
||||
});
|
||||
if (counter % 10 === 0) {
|
||||
console.log(
|
||||
`performed ${counter} of ${totalQueryCycles} total query cycles: took ${
|
||||
Date.now() - timeStart
|
||||
}ms to deep query a set of 2000 with memory footprint ${process.memoryUsage().rss / 1e6} MB`,
|
||||
);
|
||||
}
|
||||
expect(myCars2[0].deepData.sodeep).toEqual('yes');
|
||||
expect(myCars2[0].brand).toEqual('Volvo');
|
||||
counter++;
|
||||
} while (counter < totalQueryCycles);
|
||||
});
|
||||
|
||||
tap.test('expect to get instance of Car and update it', async () => {
|
||||
const myCar = await Car.getInstance<Car>({
|
||||
brand: 'Volvo',
|
||||
});
|
||||
expect(myCar.color).toEqual('red');
|
||||
myCar.color = 'blue';
|
||||
await myCar.save();
|
||||
});
|
||||
|
||||
tap.test('should be able to delete an instance of car', async () => {
|
||||
const myCars = await Car.getInstances({
|
||||
brand: 'Volvo',
|
||||
color: 'blue',
|
||||
});
|
||||
console.log(myCars);
|
||||
expect(myCars[0].color).toEqual('blue');
|
||||
for (const myCar of myCars) {
|
||||
await myCar.delete();
|
||||
}
|
||||
|
||||
const myCar2 = await Car.getInstance<Car>({
|
||||
brand: 'Volvo',
|
||||
});
|
||||
expect(myCar2.color).toEqual('red');
|
||||
});
|
||||
|
||||
// tslint:disable-next-line: max-classes-per-file
|
||||
@smartdata.Collection(() => {
|
||||
return testDb;
|
||||
})
|
||||
class Truck extends smartdata.SmartDataDbDoc<Car, Car> {
|
||||
@smartdata.unI()
|
||||
public id: string = smartunique.shortId();
|
||||
|
||||
@smartdata.svDb()
|
||||
public color: string;
|
||||
|
||||
@smartdata.svDb()
|
||||
public brand: string;
|
||||
|
||||
constructor(colorArg: string, brandArg: string) {
|
||||
super();
|
||||
this.color = colorArg;
|
||||
this.brand = brandArg;
|
||||
}
|
||||
}
|
||||
|
||||
tap.test('should store a new Truck', async () => {
|
||||
const truck = new Truck('blue', 'MAN');
|
||||
await truck.save();
|
||||
const myTruck2 = await Truck.getInstance({ color: 'blue' });
|
||||
expect(myTruck2.color).toEqual('blue');
|
||||
myTruck2.color = 'red';
|
||||
await myTruck2.save();
|
||||
const myTruck3 = await Truck.getInstance({ color: 'blue' });
|
||||
expect(myTruck3).toBeNull();
|
||||
});
|
||||
|
||||
tap.test('should return a count', async () => {
|
||||
const truckCount = await Truck.getCount();
|
||||
expect(truckCount).toEqual(1);
|
||||
});
|
||||
|
||||
tap.test('should use a cursor', async () => {
|
||||
const cursor = await Car.getCursor({});
|
||||
let counter = 0;
|
||||
await cursor.forEach(async (carArg) => {
|
||||
counter++;
|
||||
counter % 50 === 0 ? console.log(`50 more of ${carArg.color}`) : null;
|
||||
});
|
||||
});
|
||||
|
||||
// =======================================
|
||||
// close the database connection
|
||||
// =======================================
|
||||
tap.test('close', async () => {
|
||||
if (smartmongoInstance) {
|
||||
await smartmongoInstance.stopAndDumpToDir('./.nogit/dbdump/test.ts');
|
||||
} else {
|
||||
await testDb.mongoDb.dropDatabase();
|
||||
await testDb.close();
|
||||
}
|
||||
setTimeout(() => process.exit(), 2000);
|
||||
});
|
||||
|
||||
tap.start({ throwOnError: true });
|
||||
@@ -3,6 +3,6 @@
|
||||
*/
|
||||
export const commitinfo = {
|
||||
name: '@push.rocks/smartdata',
|
||||
version: '5.16.5',
|
||||
version: '5.16.6',
|
||||
description: 'An advanced library for NoSQL data organization and manipulation using TypeScript with support for MongoDB, data validation, collections, and custom data types.'
|
||||
}
|
||||
|
||||
@@ -27,9 +27,11 @@ const collectionFactory = new CollectionFactory();
|
||||
*/
|
||||
export function Collection(dbArg: SmartdataDb | TDelayed<SmartdataDb>) {
|
||||
return function classDecorator<T extends { new (...args: any[]): {} }>(constructor: T) {
|
||||
const decoratedClass = class extends constructor {
|
||||
public static className = constructor.name;
|
||||
public static get collection() {
|
||||
// Capture original constructor's prototype in closure for Deno compatibility
|
||||
const originalPrototype = constructor.prototype;
|
||||
const originalConstructor = constructor as any;
|
||||
|
||||
const getCollection = () => {
|
||||
if (!(dbArg instanceof SmartdataDb)) {
|
||||
dbArg = dbArg();
|
||||
}
|
||||
@@ -39,18 +41,37 @@ export function Collection(dbArg: SmartdataDb | TDelayed<SmartdataDb>) {
|
||||
(coll as any).docCtor = decoratedClass;
|
||||
}
|
||||
return coll;
|
||||
};
|
||||
|
||||
const decoratedClass = class extends constructor {
|
||||
public static className = constructor.name;
|
||||
public static get collection() {
|
||||
return getCollection();
|
||||
}
|
||||
public get collection() {
|
||||
if (!(dbArg instanceof SmartdataDb)) {
|
||||
dbArg = dbArg();
|
||||
}
|
||||
const coll = collectionFactory.getCollection(constructor.name, dbArg);
|
||||
if (!(coll as any).docCtor) {
|
||||
(coll as any).docCtor = decoratedClass;
|
||||
}
|
||||
return coll;
|
||||
return getCollection();
|
||||
}
|
||||
};
|
||||
|
||||
// Ensure instance getter works in Deno by defining it on the prototype
|
||||
Object.defineProperty(decoratedClass.prototype, 'collection', {
|
||||
get: getCollection,
|
||||
enumerable: false,
|
||||
configurable: true
|
||||
});
|
||||
|
||||
// Deno compatibility note: Property decorators set properties on the prototype.
|
||||
// Since we removed instance property declarations from SmartDataDbDoc,
|
||||
// the decorator-set prototype properties are now accessible without shadowing.
|
||||
// No manual forwarding needed - natural prototype inheritance works!
|
||||
|
||||
// Point to original constructor's _svDbOptions
|
||||
Object.defineProperty(decoratedClass, '_svDbOptions', {
|
||||
get() { return originalConstructor._svDbOptions; },
|
||||
set(value) { originalConstructor._svDbOptions = value; },
|
||||
configurable: true
|
||||
});
|
||||
|
||||
return decoratedClass;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -339,6 +339,13 @@ export class SmartDataDbDoc<T extends TImplements, TImplements, TManager extends
|
||||
public static manager;
|
||||
public manager: TManager;
|
||||
|
||||
/**
|
||||
* Helper to get collection with fallback to static for Deno compatibility
|
||||
*/
|
||||
private getCollectionSafe(): SmartdataCollection<any> {
|
||||
return this.collection || (this.constructor as any).collection;
|
||||
}
|
||||
|
||||
// STATIC
|
||||
public static createInstanceFromMongoDbNativeDoc<T>(
|
||||
this: plugins.tsclass.typeFest.Class<T>,
|
||||
@@ -698,23 +705,28 @@ export class SmartDataDbDoc<T extends TImplements, TImplements, TManager extends
|
||||
|
||||
/**
|
||||
* an array of saveable properties of ALL doc
|
||||
* Note: Set by decorators on prototype - NOT declared as instance property to avoid shadowing in Deno
|
||||
* Declared with definite assignment assertion to satisfy TypeScript without creating instance property
|
||||
*/
|
||||
public globalSaveableProperties: string[];
|
||||
declare globalSaveableProperties: string[];
|
||||
|
||||
/**
|
||||
* unique indexes
|
||||
* Note: Set by decorators on prototype - NOT declared as instance property to avoid shadowing in Deno
|
||||
*/
|
||||
public uniqueIndexes: string[];
|
||||
declare uniqueIndexes: string[];
|
||||
|
||||
/**
|
||||
* regular indexes with their options
|
||||
* Note: Set by decorators on prototype - NOT declared as instance property to avoid shadowing in Deno
|
||||
*/
|
||||
public regularIndexes: Array<{field: string, options: IIndexOptions}> = [];
|
||||
declare regularIndexes: Array<{field: string, options: IIndexOptions}>;
|
||||
|
||||
/**
|
||||
* an array of saveable properties of a specific doc
|
||||
* Note: Set by decorators on prototype - NOT declared as instance property to avoid shadowing in Deno
|
||||
*/
|
||||
public saveableProperties: string[];
|
||||
declare saveableProperties: string[];
|
||||
|
||||
/**
|
||||
* name
|
||||
@@ -747,10 +759,10 @@ export class SmartDataDbDoc<T extends TImplements, TImplements, TManager extends
|
||||
// perform insert or update
|
||||
switch (this.creationStatus) {
|
||||
case 'db':
|
||||
dbResult = await this.collection.update(self, { session: opts?.session });
|
||||
dbResult = await this.getCollectionSafe().update(self, { session: opts?.session });
|
||||
break;
|
||||
case 'new':
|
||||
dbResult = await this.collection.insert(self, { session: opts?.session });
|
||||
dbResult = await this.getCollectionSafe().insert(self, { session: opts?.session });
|
||||
this.creationStatus = 'db';
|
||||
break;
|
||||
default:
|
||||
@@ -772,7 +784,7 @@ export class SmartDataDbDoc<T extends TImplements, TImplements, TManager extends
|
||||
await (this as any).beforeDelete();
|
||||
}
|
||||
// perform deletion
|
||||
const result = await this.collection.delete(this, { session: opts?.session });
|
||||
const result = await this.getCollectionSafe().delete(this, { session: opts?.session });
|
||||
// allow hook after delete
|
||||
if (typeof (this as any).afterDelete === 'function') {
|
||||
await (this as any).afterDelete();
|
||||
@@ -802,7 +814,7 @@ export class SmartDataDbDoc<T extends TImplements, TImplements, TManager extends
|
||||
* updates an object from db
|
||||
*/
|
||||
public async updateFromDb(): Promise<boolean> {
|
||||
const mongoDbNativeDoc = await this.collection.findOne(await this.createIdentifiableObject());
|
||||
const mongoDbNativeDoc = await this.getCollectionSafe().findOne(await this.createIdentifiableObject());
|
||||
if (!mongoDbNativeDoc) {
|
||||
return false; // Document not found in database
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user