♻️ bump sync-server dependencies (#5819)

* uuid 11.1.0 -> 13.0.0

* better-sqlite3 12.2.0 -> 12.4.1

* debug 4.4.1 -> 4.4.3

* express-rate-limit 8.0.1 -> 8.1.0

* pluggy-sdk 0.74.0 -> 0.77.0

* babel/core 7.28.0 -> 7.28.4

* note
This commit is contained in:
Matt Fiddaman
2025-10-05 14:36:57 +01:00
committed by GitHub
parent 805e2b1807
commit 05355788e4
8 changed files with 63 additions and 130 deletions

View File

@@ -24,10 +24,10 @@
}, },
"dependencies": { "dependencies": {
"@actual-app/crdt": "workspace:^", "@actual-app/crdt": "workspace:^",
"better-sqlite3": "^12.2.0", "better-sqlite3": "^12.4.1",
"compare-versions": "^6.1.1", "compare-versions": "^6.1.1",
"node-fetch": "^3.3.2", "node-fetch": "^3.3.2",
"uuid": "^11.1.0" "uuid": "^13.0.0"
}, },
"devDependencies": { "devDependencies": {
"tsc-alias": "^1.8.16", "tsc-alias": "^1.8.16",

View File

@@ -17,7 +17,7 @@
"dependencies": { "dependencies": {
"google-protobuf": "^3.21.4", "google-protobuf": "^3.21.4",
"murmurhash": "^2.0.1", "murmurhash": "^2.0.1",
"uuid": "^11.1.0" "uuid": "^13.0.0"
}, },
"devDependencies": { "devDependencies": {
"@types/google-protobuf": "^3.15.12", "@types/google-protobuf": "^3.15.12",

View File

@@ -73,7 +73,7 @@
"rollup-plugin-visualizer": "^5.14.0", "rollup-plugin-visualizer": "^5.14.0",
"sass": "^1.89.0", "sass": "^1.89.0",
"usehooks-ts": "^3.1.1", "usehooks-ts": "^3.1.1",
"uuid": "^11.1.0", "uuid": "^13.0.0",
"vite": "^6.3.6", "vite": "^6.3.6",
"vite-plugin-pwa": "^1.0.0", "vite-plugin-pwa": "^1.0.0",
"vite-tsconfig-paths": "^4.3.2", "vite-tsconfig-paths": "^4.3.2",

View File

@@ -90,7 +90,7 @@
}, },
"dependencies": { "dependencies": {
"@actual-app/sync-server": "workspace:*", "@actual-app/sync-server": "workspace:*",
"better-sqlite3": "^12.2.0", "better-sqlite3": "^12.4.1",
"fs-extra": "^11.3.0", "fs-extra": "^11.3.0",
"promise-retry": "^2.0.1" "promise-retry": "^2.0.1"
}, },

View File

@@ -24,7 +24,7 @@
"@rschedule/standard-date-adapter": "^1.5.0", "@rschedule/standard-date-adapter": "^1.5.0",
"absurd-sql": "0.0.54", "absurd-sql": "0.0.54",
"adm-zip": "patch:adm-zip@npm%3A0.5.16#~/.yarn/patches/adm-zip-npm-0.5.16-4556fea098.patch", "adm-zip": "patch:adm-zip@npm%3A0.5.16#~/.yarn/patches/adm-zip-npm-0.5.16-4556fea098.patch",
"better-sqlite3": "^12.2.0", "better-sqlite3": "^12.4.1",
"csv-parse": "^5.6.0", "csv-parse": "^5.6.0",
"csv-stringify": "^6.5.2", "csv-stringify": "^6.5.2",
"date-fns": "^4.1.0", "date-fns": "^4.1.0",
@@ -36,7 +36,7 @@
"mitt": "^3.0.1", "mitt": "^3.0.1",
"slash": "3.0.0", "slash": "3.0.0",
"ua-parser-js": "^2.0.3", "ua-parser-js": "^2.0.3",
"uuid": "^11.1.0" "uuid": "^13.0.0"
}, },
"devDependencies": { "devDependencies": {
"@actual-app/api": "workspace:^", "@actual-app/api": "workspace:^",

View File

@@ -30,25 +30,25 @@
"@actual-app/crdt": "2.1.0", "@actual-app/crdt": "2.1.0",
"@actual-app/web": "workspace:*", "@actual-app/web": "workspace:*",
"bcrypt": "^6.0.0", "bcrypt": "^6.0.0",
"better-sqlite3": "^12.2.0", "better-sqlite3": "^12.4.1",
"convict": "^6.2.4", "convict": "^6.2.4",
"cors": "^2.8.5", "cors": "^2.8.5",
"date-fns": "^4.1.0", "date-fns": "^4.1.0",
"debug": "^4.4.1", "debug": "^4.4.3",
"express": "5.1.0", "express": "5.1.0",
"express-rate-limit": "^8.0.1", "express-rate-limit": "^8.1.0",
"express-winston": "^4.2.0", "express-winston": "^4.2.0",
"ipaddr.js": "^2.2.0", "ipaddr.js": "^2.2.0",
"jws": "^4.0.0", "jws": "^4.0.0",
"migrate": "^2.1.0", "migrate": "^2.1.0",
"nordigen-node": "^1.4.1", "nordigen-node": "^1.4.1",
"openid-client": "^5.7.1", "openid-client": "^5.7.1",
"pluggy-sdk": "^0.74.0", "pluggy-sdk": "^0.77.0",
"uuid": "^11.1.0", "uuid": "^13.0.0",
"winston": "^3.17.0" "winston": "^3.17.0"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "^7.28.0", "@babel/core": "^7.28.4",
"@babel/preset-typescript": "^7.27.1", "@babel/preset-typescript": "^7.27.1",
"@types/babel__core": "^7", "@types/babel__core": "^7",
"@types/bcrypt": "^6.0.0", "@types/bcrypt": "^6.0.0",

View File

@@ -0,0 +1,6 @@
---
category: Maintenance
authors: [matt-fidd]
---
Bump dependencies in sync-server package

161
yarn.lock
View File

@@ -24,12 +24,12 @@ __metadata:
resolution: "@actual-app/api@workspace:packages/api" resolution: "@actual-app/api@workspace:packages/api"
dependencies: dependencies:
"@actual-app/crdt": "workspace:^" "@actual-app/crdt": "workspace:^"
better-sqlite3: "npm:^12.2.0" better-sqlite3: "npm:^12.4.1"
compare-versions: "npm:^6.1.1" compare-versions: "npm:^6.1.1"
node-fetch: "npm:^3.3.2" node-fetch: "npm:^3.3.2"
tsc-alias: "npm:^1.8.16" tsc-alias: "npm:^1.8.16"
typescript: "npm:^5.9.2" typescript: "npm:^5.9.2"
uuid: "npm:^11.1.0" uuid: "npm:^13.0.0"
vitest: "npm:^3.2.4" vitest: "npm:^3.2.4"
languageName: unknown languageName: unknown
linkType: soft linkType: soft
@@ -81,7 +81,7 @@ __metadata:
protoc-gen-js: "npm:^3.21.4-4" protoc-gen-js: "npm:^3.21.4-4"
ts-protoc-gen: "npm:^0.15.0" ts-protoc-gen: "npm:^0.15.0"
typescript: "npm:^5.9.2" typescript: "npm:^5.9.2"
uuid: "npm:^11.1.0" uuid: "npm:^13.0.0"
vitest: "npm:^3.2.4" vitest: "npm:^3.2.4"
languageName: unknown languageName: unknown
linkType: soft linkType: soft
@@ -92,7 +92,7 @@ __metadata:
dependencies: dependencies:
"@actual-app/crdt": "npm:2.1.0" "@actual-app/crdt": "npm:2.1.0"
"@actual-app/web": "workspace:*" "@actual-app/web": "workspace:*"
"@babel/core": "npm:^7.28.0" "@babel/core": "npm:^7.28.4"
"@babel/preset-typescript": "npm:^7.27.1" "@babel/preset-typescript": "npm:^7.27.1"
"@types/babel__core": "npm:^7" "@types/babel__core": "npm:^7"
"@types/bcrypt": "npm:^6.0.0" "@types/bcrypt": "npm:^6.0.0"
@@ -105,13 +105,13 @@ __metadata:
"@types/supertest": "npm:^6.0.3" "@types/supertest": "npm:^6.0.3"
"@vitest/coverage-v8": "npm:3.2.4" "@vitest/coverage-v8": "npm:3.2.4"
bcrypt: "npm:^6.0.0" bcrypt: "npm:^6.0.0"
better-sqlite3: "npm:^12.2.0" better-sqlite3: "npm:^12.4.1"
convict: "npm:^6.2.4" convict: "npm:^6.2.4"
cors: "npm:^2.8.5" cors: "npm:^2.8.5"
date-fns: "npm:^4.1.0" date-fns: "npm:^4.1.0"
debug: "npm:^4.4.1" debug: "npm:^4.4.3"
express: "npm:5.1.0" express: "npm:5.1.0"
express-rate-limit: "npm:^8.0.1" express-rate-limit: "npm:^8.1.0"
express-winston: "npm:^4.2.0" express-winston: "npm:^4.2.0"
http-proxy-middleware: "npm:^3.0.5" http-proxy-middleware: "npm:^3.0.5"
ipaddr.js: "npm:^2.2.0" ipaddr.js: "npm:^2.2.0"
@@ -120,10 +120,10 @@ __metadata:
nodemon: "npm:^3.1.10" nodemon: "npm:^3.1.10"
nordigen-node: "npm:^1.4.1" nordigen-node: "npm:^1.4.1"
openid-client: "npm:^5.7.1" openid-client: "npm:^5.7.1"
pluggy-sdk: "npm:^0.74.0" pluggy-sdk: "npm:^0.77.0"
supertest: "npm:^7.1.4" supertest: "npm:^7.1.4"
typescript: "npm:^5.9.2" typescript: "npm:^5.9.2"
uuid: "npm:^11.1.0" uuid: "npm:^13.0.0"
vitest: "npm:^3.2.4" vitest: "npm:^3.2.4"
winston: "npm:^3.17.0" winston: "npm:^3.17.0"
bin: bin:
@@ -202,7 +202,7 @@ __metadata:
rollup-plugin-visualizer: "npm:^5.14.0" rollup-plugin-visualizer: "npm:^5.14.0"
sass: "npm:^1.89.0" sass: "npm:^1.89.0"
usehooks-ts: "npm:^3.1.1" usehooks-ts: "npm:^3.1.1"
uuid: "npm:^11.1.0" uuid: "npm:^13.0.0"
vite: "npm:^6.3.6" vite: "npm:^6.3.6"
vite-plugin-pwa: "npm:^1.0.0" vite-plugin-pwa: "npm:^1.0.0"
vite-tsconfig-paths: "npm:^4.3.2" vite-tsconfig-paths: "npm:^4.3.2"
@@ -313,30 +313,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@babel/core@npm:^7.28.0": "@babel/core@npm:^7.28.3, @babel/core@npm:^7.28.4":
version: 7.28.0
resolution: "@babel/core@npm:7.28.0"
dependencies:
"@ampproject/remapping": "npm:^2.2.0"
"@babel/code-frame": "npm:^7.27.1"
"@babel/generator": "npm:^7.28.0"
"@babel/helper-compilation-targets": "npm:^7.27.2"
"@babel/helper-module-transforms": "npm:^7.27.3"
"@babel/helpers": "npm:^7.27.6"
"@babel/parser": "npm:^7.28.0"
"@babel/template": "npm:^7.27.2"
"@babel/traverse": "npm:^7.28.0"
"@babel/types": "npm:^7.28.0"
convert-source-map: "npm:^2.0.0"
debug: "npm:^4.1.0"
gensync: "npm:^1.0.0-beta.2"
json5: "npm:^2.2.3"
semver: "npm:^6.3.1"
checksum: 10/1c86eec8d76053f7b1c5f65296d51d7b8ac00f80d169ff76d3cd2e7d85ab222eb100d40cc3314f41b96c8cc06e9abab21c63d246161f0f3f70ef14c958419c33
languageName: node
linkType: hard
"@babel/core@npm:^7.28.3":
version: 7.28.4 version: 7.28.4
resolution: "@babel/core@npm:7.28.4" resolution: "@babel/core@npm:7.28.4"
dependencies: dependencies:
@@ -385,19 +362,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@babel/generator@npm:^7.28.0":
version: 7.28.0
resolution: "@babel/generator@npm:7.28.0"
dependencies:
"@babel/parser": "npm:^7.28.0"
"@babel/types": "npm:^7.28.0"
"@jridgewell/gen-mapping": "npm:^0.3.12"
"@jridgewell/trace-mapping": "npm:^0.3.28"
jsesc: "npm:^3.0.2"
checksum: 10/064c5ba4c07ecd7600377bd0022d5f6bdb3b35e9ff78d9378f6bd1e656467ca902c091647222ab2f0d2967f6d6c0ca33157d37dd9b1c51926c9b0e1527ab9b92
languageName: node
linkType: hard
"@babel/generator@npm:^7.28.3": "@babel/generator@npm:^7.28.3":
version: 7.28.3 version: 7.28.3
resolution: "@babel/generator@npm:7.28.3" resolution: "@babel/generator@npm:7.28.3"
@@ -625,19 +589,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@babel/helper-module-transforms@npm:^7.27.3":
version: 7.27.3
resolution: "@babel/helper-module-transforms@npm:7.27.3"
dependencies:
"@babel/helper-module-imports": "npm:^7.27.1"
"@babel/helper-validator-identifier": "npm:^7.27.1"
"@babel/traverse": "npm:^7.27.3"
peerDependencies:
"@babel/core": ^7.0.0
checksum: 10/47abc90ceb181b4bdea9bf1717adf536d1b5e5acb6f6d8a7a4524080318b5ca8a99e6d58677268c596bad71077d1d98834d2c3815f2443e6d3f287962300f15d
languageName: node
linkType: hard
"@babel/helper-module-transforms@npm:^7.28.3": "@babel/helper-module-transforms@npm:^7.28.3":
version: 7.28.3 version: 7.28.3
resolution: "@babel/helper-module-transforms@npm:7.28.3" resolution: "@babel/helper-module-transforms@npm:7.28.3"
@@ -814,16 +765,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@babel/helpers@npm:^7.27.6":
version: 7.28.2
resolution: "@babel/helpers@npm:7.28.2"
dependencies:
"@babel/template": "npm:^7.27.2"
"@babel/types": "npm:^7.28.2"
checksum: 10/09fd7965e83d4777a4331a082677a1a2261cec451bf3307cb0fb62b2d32c83d55fb1cac494a5dab5c6ad9da459883b8d4e49142812b10ef3e36b54022b2de3a4
languageName: node
linkType: hard
"@babel/helpers@npm:^7.28.4": "@babel/helpers@npm:^7.28.4":
version: 7.28.4 version: 7.28.4
resolution: "@babel/helpers@npm:7.28.4" resolution: "@babel/helpers@npm:7.28.4"
@@ -867,17 +808,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@babel/parser@npm:^7.28.0":
version: 7.28.0
resolution: "@babel/parser@npm:7.28.0"
dependencies:
"@babel/types": "npm:^7.28.0"
bin:
parser: ./bin/babel-parser.js
checksum: 10/2c14a0d2600bae9ab81924df0a85bbd34e427caa099c260743f7c6c12b2042e743e776043a0d1a2573229ae648f7e66a80cfb26fc27e2a9eb59b55932d44c817
languageName: node
linkType: hard
"@babel/parser@npm:^7.28.3, @babel/parser@npm:^7.28.4": "@babel/parser@npm:^7.28.3, @babel/parser@npm:^7.28.4":
version: 7.28.4 version: 7.28.4
resolution: "@babel/parser@npm:7.28.4" resolution: "@babel/parser@npm:7.28.4"
@@ -1988,21 +1918,6 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@babel/traverse@npm:^7.27.3, @babel/traverse@npm:^7.28.0":
version: 7.28.0
resolution: "@babel/traverse@npm:7.28.0"
dependencies:
"@babel/code-frame": "npm:^7.27.1"
"@babel/generator": "npm:^7.28.0"
"@babel/helper-globals": "npm:^7.28.0"
"@babel/parser": "npm:^7.28.0"
"@babel/template": "npm:^7.27.2"
"@babel/types": "npm:^7.28.0"
debug: "npm:^4.3.1"
checksum: 10/c1c24b12b6cb46241ec5d11ddbd2989d6955c282715cbd8ee91a09fe156b3bdb0b88353ac33329c2992113e3dfb5198f616c834f8805bb3fa85da1f864bec5f3
languageName: node
linkType: hard
"@babel/traverse@npm:^7.28.3, @babel/traverse@npm:^7.28.4": "@babel/traverse@npm:^7.28.3, @babel/traverse@npm:^7.28.4":
version: 7.28.4 version: 7.28.4
resolution: "@babel/traverse@npm:7.28.4" resolution: "@babel/traverse@npm:7.28.4"
@@ -2028,7 +1943,7 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@babel/types@npm:^7.26.0, @babel/types@npm:^7.28.0, @babel/types@npm:^7.28.2": "@babel/types@npm:^7.26.0, @babel/types@npm:^7.28.2":
version: 7.28.2 version: 7.28.2
resolution: "@babel/types@npm:7.28.2" resolution: "@babel/types@npm:7.28.2"
dependencies: dependencies:
@@ -8213,14 +8128,14 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"better-sqlite3@npm:^12.2.0": "better-sqlite3@npm:^12.4.1":
version: 12.2.0 version: 12.4.1
resolution: "better-sqlite3@npm:12.2.0" resolution: "better-sqlite3@npm:12.4.1"
dependencies: dependencies:
bindings: "npm:^1.5.0" bindings: "npm:^1.5.0"
node-gyp: "npm:latest" node-gyp: "npm:latest"
prebuild-install: "npm:^7.1.1" prebuild-install: "npm:^7.1.1"
checksum: 10/2662e321237624d5813a7b97528dfc11fc5110b068d57f4096de82d7136e7e4a4b722a2a4266ddfb5095070712fd3d2542f6212ccb68e2d3eb2042498269e1cf checksum: 10/e8133786677e88a2526c965658178e2e057e4b40ff554895a71ecb5e617e062fea619f31389ffbd6fc1f3396ef598812302be56c32e0f01fcb82610785d18186
languageName: node languageName: node
linkType: hard linkType: hard
@@ -9898,6 +9813,18 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"debug@npm:^4.4.3":
version: 4.4.3
resolution: "debug@npm:4.4.3"
dependencies:
ms: "npm:^2.1.3"
peerDependenciesMeta:
supports-color:
optional: true
checksum: 10/9ada3434ea2993800bd9a1e320bd4aa7af69659fb51cca685d390949434bc0a8873c21ed7c9b852af6f2455a55c6d050aa3937d52b3c69f796dab666f762acad
languageName: node
linkType: hard
"decimal.js-light@npm:^2.4.1": "decimal.js-light@npm:^2.4.1":
version: 2.5.1 version: 2.5.1
resolution: "decimal.js-light@npm:2.5.1" resolution: "decimal.js-light@npm:2.5.1"
@@ -10077,7 +10004,7 @@ __metadata:
"@playwright/test": "npm:1.52.0" "@playwright/test": "npm:1.52.0"
"@types/copyfiles": "npm:^2" "@types/copyfiles": "npm:^2"
"@types/fs-extra": "npm:^11" "@types/fs-extra": "npm:^11"
better-sqlite3: "npm:^12.2.0" better-sqlite3: "npm:^12.4.1"
copyfiles: "npm:^2.4.1" copyfiles: "npm:^2.4.1"
cross-env: "npm:^7.0.3" cross-env: "npm:^7.0.3"
electron: "npm:38.0.0" electron: "npm:38.0.0"
@@ -11499,14 +11426,14 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"express-rate-limit@npm:^8.0.1": "express-rate-limit@npm:^8.1.0":
version: 8.0.1 version: 8.1.0
resolution: "express-rate-limit@npm:8.0.1" resolution: "express-rate-limit@npm:8.1.0"
dependencies: dependencies:
ip-address: "npm:10.0.1" ip-address: "npm:10.0.1"
peerDependencies: peerDependencies:
express: ">= 4.11" express: ">= 4.11"
checksum: 10/182a4706ae000659a8164de204d61c73261a4d9da5f8a5c24cb961287cd801855085485119573376b5c00279d2e54aadc9a7ea97f2ae1d5443720d07346404e0 checksum: 10/ddd5deb3b66f2b0c39c2188041c7e8951c697b3ec964b987144eb1832f823b683c0d1c8f0a9d00176dd13eccdb492a214e8908ad03467d41ca43e0b492b9738e
languageName: node languageName: node
linkType: hard linkType: hard
@@ -14419,7 +14346,7 @@ __metadata:
absurd-sql: "npm:0.0.54" absurd-sql: "npm:0.0.54"
adm-zip: "patch:adm-zip@npm%3A0.5.16#~/.yarn/patches/adm-zip-npm-0.5.16-4556fea098.patch" adm-zip: "patch:adm-zip@npm%3A0.5.16#~/.yarn/patches/adm-zip-npm-0.5.16-4556fea098.patch"
assert: "npm:^2.1.0" assert: "npm:^2.1.0"
better-sqlite3: "npm:^12.2.0" better-sqlite3: "npm:^12.4.1"
browserify-zlib: "npm:^0.2.0" browserify-zlib: "npm:^0.2.0"
buffer: "npm:^6.0.3" buffer: "npm:^6.0.3"
cross-env: "npm:^7.0.3" cross-env: "npm:^7.0.3"
@@ -14448,7 +14375,7 @@ __metadata:
ts-node: "npm:^10.9.2" ts-node: "npm:^10.9.2"
typescript: "npm:^5.9.2" typescript: "npm:^5.9.2"
ua-parser-js: "npm:^2.0.3" ua-parser-js: "npm:^2.0.3"
uuid: "npm:^11.1.0" uuid: "npm:^13.0.0"
vite: "npm:^6.3.6" vite: "npm:^6.3.6"
vite-plugin-node-polyfills: "npm:^0.24.0" vite-plugin-node-polyfills: "npm:^0.24.0"
vite-plugin-peggy-loader: "npm:^2.0.1" vite-plugin-peggy-loader: "npm:^2.0.1"
@@ -16750,13 +16677,13 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"pluggy-sdk@npm:^0.74.0": "pluggy-sdk@npm:^0.77.0":
version: 0.74.0 version: 0.77.0
resolution: "pluggy-sdk@npm:0.74.0" resolution: "pluggy-sdk@npm:0.77.0"
dependencies: dependencies:
got: "npm:11.8.6" got: "npm:11.8.6"
jsonwebtoken: "npm:^9.0.2" jsonwebtoken: "npm:^9.0.2"
checksum: 10/84a0011877352e7647f1b5be17c1d029fdd3afcbd350e2939e92de512400fc5fb9f7eb2d03df94ac905fb7a4e2700924629d13a229e8cd757660bdcfd4f7729c checksum: 10/801851246174284e185b170086f12d604c3be3cbf4fb2b202504f1753a32d50c947a74a71b03df86b241deee64d615633d14151fb00d162ee9b219e99a30ce8b
languageName: node languageName: node
linkType: hard linkType: hard
@@ -20743,12 +20670,12 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"uuid@npm:^11.1.0": "uuid@npm:^13.0.0":
version: 11.1.0 version: 13.0.0
resolution: "uuid@npm:11.1.0" resolution: "uuid@npm:13.0.0"
bin: bin:
uuid: dist/esm/bin/uuid uuid: dist-node/bin/uuid
checksum: 10/d2da43b49b154d154574891ced66d0c83fc70caaad87e043400cf644423b067542d6f3eb641b7c819224a7cd3b4c2f21906acbedd6ec9c6a05887aa9115a9cf5 checksum: 10/2742b24d1e00257e60612572e4d28679423469998cafbaf1fe9f1482e3edf9c40754b31bfdb3d08d71b29239f227a304588f75210b3b48f2609f0673f1feccef
languageName: node languageName: node
linkType: hard linkType: hard