tlc-claude-code 2.0.1 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/.claude/agents/builder.md +144 -0
  2. package/.claude/agents/planner.md +143 -0
  3. package/.claude/agents/reviewer.md +160 -0
  4. package/.claude/commands/tlc/build.md +4 -0
  5. package/.claude/commands/tlc/deploy.md +194 -2
  6. package/.claude/commands/tlc/e2e-verify.md +214 -0
  7. package/.claude/commands/tlc/guard.md +191 -0
  8. package/.claude/commands/tlc/help.md +32 -0
  9. package/.claude/commands/tlc/init.md +73 -37
  10. package/.claude/commands/tlc/llm.md +19 -4
  11. package/.claude/commands/tlc/preflight.md +134 -0
  12. package/.claude/commands/tlc/review-plan.md +363 -0
  13. package/.claude/commands/tlc/review.md +172 -57
  14. package/.claude/commands/tlc/watchci.md +159 -0
  15. package/.claude/hooks/tlc-block-tools.sh +41 -0
  16. package/.claude/hooks/tlc-capture-exchange.sh +50 -0
  17. package/.claude/hooks/tlc-post-build.sh +38 -0
  18. package/.claude/hooks/tlc-post-push.sh +22 -0
  19. package/.claude/hooks/tlc-prompt-guard.sh +69 -0
  20. package/.claude/hooks/tlc-session-init.sh +123 -0
  21. package/CLAUDE.md +13 -0
  22. package/bin/install.js +268 -2
  23. package/bin/postinstall.js +102 -24
  24. package/bin/setup-autoupdate.js +206 -0
  25. package/bin/setup-autoupdate.test.js +124 -0
  26. package/bin/tlc.js +0 -0
  27. package/dashboard-web/dist/assets/index-CdS5CHqu.css +1 -0
  28. package/dashboard-web/dist/assets/index-CwNPPVpg.js +483 -0
  29. package/dashboard-web/dist/assets/index-CwNPPVpg.js.map +1 -0
  30. package/dashboard-web/dist/index.html +2 -2
  31. package/docker-compose.dev.yml +18 -12
  32. package/package.json +4 -2
  33. package/scripts/project-docs.js +1 -1
  34. package/server/index.js +228 -2
  35. package/server/lib/capture-bridge.js +242 -0
  36. package/server/lib/capture-bridge.test.js +363 -0
  37. package/server/lib/capture-guard.js +140 -0
  38. package/server/lib/capture-guard.test.js +182 -0
  39. package/server/lib/command-runner.js +159 -0
  40. package/server/lib/command-runner.test.js +92 -0
  41. package/server/lib/cost-tracker.test.js +49 -12
  42. package/server/lib/deploy/runners/dependency-runner.js +106 -0
  43. package/server/lib/deploy/runners/dependency-runner.test.js +148 -0
  44. package/server/lib/deploy/runners/secrets-runner.js +174 -0
  45. package/server/lib/deploy/runners/secrets-runner.test.js +127 -0
  46. package/server/lib/deploy/security-gates.js +11 -24
  47. package/server/lib/deploy/security-gates.test.js +9 -2
  48. package/server/lib/deploy-engine.js +182 -0
  49. package/server/lib/deploy-engine.test.js +147 -0
  50. package/server/lib/docker-api.js +137 -0
  51. package/server/lib/docker-api.test.js +202 -0
  52. package/server/lib/docker-client.js +297 -0
  53. package/server/lib/docker-client.test.js +308 -0
  54. package/server/lib/input-sanitizer.js +86 -0
  55. package/server/lib/input-sanitizer.test.js +117 -0
  56. package/server/lib/launchd-agent.js +225 -0
  57. package/server/lib/launchd-agent.test.js +185 -0
  58. package/server/lib/memory-api.js +3 -1
  59. package/server/lib/memory-api.test.js +3 -5
  60. package/server/lib/memory-bridge-e2e.test.js +160 -0
  61. package/server/lib/memory-committer.js +18 -4
  62. package/server/lib/memory-committer.test.js +21 -0
  63. package/server/lib/memory-hooks-capture.test.js +69 -4
  64. package/server/lib/memory-hooks-integration.test.js +98 -0
  65. package/server/lib/memory-hooks.js +42 -4
  66. package/server/lib/memory-store-adapter.js +105 -0
  67. package/server/lib/memory-store-adapter.test.js +141 -0
  68. package/server/lib/memory-wiring-e2e.test.js +93 -0
  69. package/server/lib/nginx-config.js +114 -0
  70. package/server/lib/nginx-config.test.js +82 -0
  71. package/server/lib/ollama-health.js +91 -0
  72. package/server/lib/ollama-health.test.js +74 -0
  73. package/server/lib/orchestration/agent-dispatcher.js +114 -0
  74. package/server/lib/orchestration/agent-dispatcher.test.js +110 -0
  75. package/server/lib/orchestration/orchestrator.js +130 -0
  76. package/server/lib/orchestration/orchestrator.test.js +192 -0
  77. package/server/lib/orchestration/tmux-manager.js +101 -0
  78. package/server/lib/orchestration/tmux-manager.test.js +109 -0
  79. package/server/lib/orchestration/worktree-manager.js +132 -0
  80. package/server/lib/orchestration/worktree-manager.test.js +129 -0
  81. package/server/lib/port-guard.js +44 -0
  82. package/server/lib/port-guard.test.js +65 -0
  83. package/server/lib/project-scanner.js +37 -2
  84. package/server/lib/project-scanner.test.js +152 -0
  85. package/server/lib/remember-command.js +2 -0
  86. package/server/lib/remember-command.test.js +23 -0
  87. package/server/lib/review/plan-reviewer.js +260 -0
  88. package/server/lib/review/plan-reviewer.test.js +269 -0
  89. package/server/lib/review/review-schemas.js +173 -0
  90. package/server/lib/review/review-schemas.test.js +152 -0
  91. package/server/lib/security/crypto-utils.test.js +2 -2
  92. package/server/lib/semantic-recall.js +1 -1
  93. package/server/lib/semantic-recall.test.js +17 -0
  94. package/server/lib/ssh-client.js +184 -0
  95. package/server/lib/ssh-client.test.js +127 -0
  96. package/server/lib/vps-api.js +184 -0
  97. package/server/lib/vps-api.test.js +208 -0
  98. package/server/lib/vps-bootstrap.js +124 -0
  99. package/server/lib/vps-bootstrap.test.js +79 -0
  100. package/server/lib/vps-monitor.js +126 -0
  101. package/server/lib/vps-monitor.test.js +98 -0
  102. package/server/lib/workspace-api.js +182 -1
  103. package/server/lib/workspace-api.test.js +474 -0
  104. package/server/package-lock.json +737 -0
  105. package/server/package.json +3 -0
  106. package/server/setup.sh +271 -271
  107. package/dashboard-web/dist/assets/index-Uhc49PE-.css +0 -1
  108. package/dashboard-web/dist/assets/index-W36XHPC5.js +0 -431
  109. package/dashboard-web/dist/assets/index-W36XHPC5.js.map +0 -1
@@ -14,11 +14,13 @@
14
14
  "chokidar": "^3.5.3",
15
15
  "cookie-parser": "^1.4.7",
16
16
  "cors": "^2.8.6",
17
+ "dockerode": "^4.0.9",
17
18
  "express": "^4.18.2",
18
19
  "http-proxy-middleware": "^2.0.6",
19
20
  "js-yaml": "^4.1.1",
20
21
  "pg": "^8.17.2",
21
22
  "sqlite-vec": "^0.1.7-alpha.2",
23
+ "ssh2": "^1.17.0",
22
24
  "sudo-prompt": "^9.2.1",
23
25
  "typescript": "^5.9.3",
24
26
  "ws": "^8.14.2"
@@ -27,9 +29,16 @@
27
29
  "tlc-server": "index.js"
28
30
  },
29
31
  "devDependencies": {
32
+ "supertest": "^7.2.2",
30
33
  "vitest": "^4.0.18"
31
34
  }
32
35
  },
36
+ "node_modules/@balena/dockerignore": {
37
+ "version": "1.0.2",
38
+ "resolved": "https://registry.npmjs.org/@balena/dockerignore/-/dockerignore-1.0.2.tgz",
39
+ "integrity": "sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==",
40
+ "license": "Apache-2.0"
41
+ },
33
42
  "node_modules/@electric-sql/pglite": {
34
43
  "version": "0.3.15",
35
44
  "resolved": "https://registry.npmjs.org/@electric-sql/pglite/-/pglite-0.3.15.tgz",
@@ -490,6 +499,55 @@
490
499
  "node": ">=18"
491
500
  }
492
501
  },
502
+ "node_modules/@grpc/grpc-js": {
503
+ "version": "1.14.3",
504
+ "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.14.3.tgz",
505
+ "integrity": "sha512-Iq8QQQ/7X3Sac15oB6p0FmUg/klxQvXLeileoqrTRGJYLV+/9tubbr9ipz0GKHjmXVsgFPo/+W+2cA8eNcR+XA==",
506
+ "license": "Apache-2.0",
507
+ "dependencies": {
508
+ "@grpc/proto-loader": "^0.8.0",
509
+ "@js-sdsl/ordered-map": "^4.4.2"
510
+ },
511
+ "engines": {
512
+ "node": ">=12.10.0"
513
+ }
514
+ },
515
+ "node_modules/@grpc/grpc-js/node_modules/@grpc/proto-loader": {
516
+ "version": "0.8.0",
517
+ "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.8.0.tgz",
518
+ "integrity": "sha512-rc1hOQtjIWGxcxpb9aHAfLpIctjEnsDehj0DAiVfBlmT84uvR0uUtN2hEi/ecvWVjXUGf5qPF4qEgiLOx1YIMQ==",
519
+ "license": "Apache-2.0",
520
+ "dependencies": {
521
+ "lodash.camelcase": "^4.3.0",
522
+ "long": "^5.0.0",
523
+ "protobufjs": "^7.5.3",
524
+ "yargs": "^17.7.2"
525
+ },
526
+ "bin": {
527
+ "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js"
528
+ },
529
+ "engines": {
530
+ "node": ">=6"
531
+ }
532
+ },
533
+ "node_modules/@grpc/proto-loader": {
534
+ "version": "0.7.15",
535
+ "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.15.tgz",
536
+ "integrity": "sha512-tMXdRCfYVixjuFK+Hk0Q1s38gV9zDiDJfWL3h1rv4Qc39oILCu1TRTDt7+fGUI8K4G1Fj125Hx/ru3azECWTyQ==",
537
+ "license": "Apache-2.0",
538
+ "dependencies": {
539
+ "lodash.camelcase": "^4.3.0",
540
+ "long": "^5.0.0",
541
+ "protobufjs": "^7.2.5",
542
+ "yargs": "^17.7.2"
543
+ },
544
+ "bin": {
545
+ "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js"
546
+ },
547
+ "engines": {
548
+ "node": ">=6"
549
+ }
550
+ },
493
551
  "node_modules/@jridgewell/sourcemap-codec": {
494
552
  "version": "1.5.5",
495
553
  "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
@@ -497,6 +555,103 @@
497
555
  "dev": true,
498
556
  "license": "MIT"
499
557
  },
558
+ "node_modules/@js-sdsl/ordered-map": {
559
+ "version": "4.4.2",
560
+ "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz",
561
+ "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==",
562
+ "license": "MIT",
563
+ "funding": {
564
+ "type": "opencollective",
565
+ "url": "https://opencollective.com/js-sdsl"
566
+ }
567
+ },
568
+ "node_modules/@noble/hashes": {
569
+ "version": "1.8.0",
570
+ "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.8.0.tgz",
571
+ "integrity": "sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==",
572
+ "dev": true,
573
+ "license": "MIT",
574
+ "engines": {
575
+ "node": "^14.21.3 || >=16"
576
+ },
577
+ "funding": {
578
+ "url": "https://paulmillr.com/funding/"
579
+ }
580
+ },
581
+ "node_modules/@paralleldrive/cuid2": {
582
+ "version": "2.3.1",
583
+ "resolved": "https://registry.npmjs.org/@paralleldrive/cuid2/-/cuid2-2.3.1.tgz",
584
+ "integrity": "sha512-XO7cAxhnTZl0Yggq6jOgjiOHhbgcO4NqFqwSmQpjK3b6TEE6Uj/jfSk6wzYyemh3+I0sHirKSetjQwn5cZktFw==",
585
+ "dev": true,
586
+ "license": "MIT",
587
+ "dependencies": {
588
+ "@noble/hashes": "^1.1.5"
589
+ }
590
+ },
591
+ "node_modules/@protobufjs/aspromise": {
592
+ "version": "1.1.2",
593
+ "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz",
594
+ "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==",
595
+ "license": "BSD-3-Clause"
596
+ },
597
+ "node_modules/@protobufjs/base64": {
598
+ "version": "1.1.2",
599
+ "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz",
600
+ "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==",
601
+ "license": "BSD-3-Clause"
602
+ },
603
+ "node_modules/@protobufjs/codegen": {
604
+ "version": "2.0.4",
605
+ "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz",
606
+ "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==",
607
+ "license": "BSD-3-Clause"
608
+ },
609
+ "node_modules/@protobufjs/eventemitter": {
610
+ "version": "1.1.0",
611
+ "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz",
612
+ "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==",
613
+ "license": "BSD-3-Clause"
614
+ },
615
+ "node_modules/@protobufjs/fetch": {
616
+ "version": "1.1.0",
617
+ "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz",
618
+ "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==",
619
+ "license": "BSD-3-Clause",
620
+ "dependencies": {
621
+ "@protobufjs/aspromise": "^1.1.1",
622
+ "@protobufjs/inquire": "^1.1.0"
623
+ }
624
+ },
625
+ "node_modules/@protobufjs/float": {
626
+ "version": "1.0.2",
627
+ "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz",
628
+ "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==",
629
+ "license": "BSD-3-Clause"
630
+ },
631
+ "node_modules/@protobufjs/inquire": {
632
+ "version": "1.1.0",
633
+ "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz",
634
+ "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==",
635
+ "license": "BSD-3-Clause"
636
+ },
637
+ "node_modules/@protobufjs/path": {
638
+ "version": "1.1.2",
639
+ "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz",
640
+ "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==",
641
+ "license": "BSD-3-Clause"
642
+ },
643
+ "node_modules/@protobufjs/pool": {
644
+ "version": "1.1.0",
645
+ "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz",
646
+ "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==",
647
+ "license": "BSD-3-Clause"
648
+ },
649
+ "node_modules/@protobufjs/utf8": {
650
+ "version": "1.1.0",
651
+ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz",
652
+ "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==",
653
+ "license": "BSD-3-Clause"
654
+ },
500
655
  "node_modules/@rollup/rollup-android-arm-eabi": {
501
656
  "version": "4.57.0",
502
657
  "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.57.0.tgz",
@@ -1021,6 +1176,30 @@
1021
1176
  "node": ">= 0.6"
1022
1177
  }
1023
1178
  },
1179
+ "node_modules/ansi-regex": {
1180
+ "version": "5.0.1",
1181
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
1182
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
1183
+ "license": "MIT",
1184
+ "engines": {
1185
+ "node": ">=8"
1186
+ }
1187
+ },
1188
+ "node_modules/ansi-styles": {
1189
+ "version": "4.3.0",
1190
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
1191
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
1192
+ "license": "MIT",
1193
+ "dependencies": {
1194
+ "color-convert": "^2.0.1"
1195
+ },
1196
+ "engines": {
1197
+ "node": ">=8"
1198
+ },
1199
+ "funding": {
1200
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
1201
+ }
1202
+ },
1024
1203
  "node_modules/anymatch": {
1025
1204
  "version": "3.1.3",
1026
1205
  "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
@@ -1046,6 +1225,22 @@
1046
1225
  "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
1047
1226
  "license": "MIT"
1048
1227
  },
1228
+ "node_modules/asap": {
1229
+ "version": "2.0.6",
1230
+ "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
1231
+ "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==",
1232
+ "dev": true,
1233
+ "license": "MIT"
1234
+ },
1235
+ "node_modules/asn1": {
1236
+ "version": "0.2.6",
1237
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
1238
+ "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
1239
+ "license": "MIT",
1240
+ "dependencies": {
1241
+ "safer-buffer": "~2.1.0"
1242
+ }
1243
+ },
1049
1244
  "node_modules/assertion-error": {
1050
1245
  "version": "2.0.1",
1051
1246
  "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz",
@@ -1056,6 +1251,13 @@
1056
1251
  "node": ">=12"
1057
1252
  }
1058
1253
  },
1254
+ "node_modules/asynckit": {
1255
+ "version": "0.4.0",
1256
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
1257
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
1258
+ "dev": true,
1259
+ "license": "MIT"
1260
+ },
1059
1261
  "node_modules/base64-js": {
1060
1262
  "version": "1.5.1",
1061
1263
  "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
@@ -1076,6 +1278,15 @@
1076
1278
  ],
1077
1279
  "license": "MIT"
1078
1280
  },
1281
+ "node_modules/bcrypt-pbkdf": {
1282
+ "version": "1.0.2",
1283
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
1284
+ "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
1285
+ "license": "BSD-3-Clause",
1286
+ "dependencies": {
1287
+ "tweetnacl": "^0.14.3"
1288
+ }
1289
+ },
1079
1290
  "node_modules/better-sqlite3": {
1080
1291
  "version": "12.6.2",
1081
1292
  "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-12.6.2.tgz",
@@ -1182,6 +1393,15 @@
1182
1393
  "ieee754": "^1.1.13"
1183
1394
  }
1184
1395
  },
1396
+ "node_modules/buildcheck": {
1397
+ "version": "0.0.7",
1398
+ "resolved": "https://registry.npmjs.org/buildcheck/-/buildcheck-0.0.7.tgz",
1399
+ "integrity": "sha512-lHblz4ahamxpTmnsk+MNTRWsjYKv965MwOrSJyeD588rR3Jcu7swE+0wN5F+PbL5cjgu/9ObkhfzEPuofEMwLA==",
1400
+ "optional": true,
1401
+ "engines": {
1402
+ "node": ">=10.0.0"
1403
+ }
1404
+ },
1185
1405
  "node_modules/bytes": {
1186
1406
  "version": "3.1.2",
1187
1407
  "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
@@ -1260,6 +1480,61 @@
1260
1480
  "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==",
1261
1481
  "license": "ISC"
1262
1482
  },
1483
+ "node_modules/cliui": {
1484
+ "version": "8.0.1",
1485
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
1486
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
1487
+ "license": "ISC",
1488
+ "dependencies": {
1489
+ "string-width": "^4.2.0",
1490
+ "strip-ansi": "^6.0.1",
1491
+ "wrap-ansi": "^7.0.0"
1492
+ },
1493
+ "engines": {
1494
+ "node": ">=12"
1495
+ }
1496
+ },
1497
+ "node_modules/color-convert": {
1498
+ "version": "2.0.1",
1499
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
1500
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
1501
+ "license": "MIT",
1502
+ "dependencies": {
1503
+ "color-name": "~1.1.4"
1504
+ },
1505
+ "engines": {
1506
+ "node": ">=7.0.0"
1507
+ }
1508
+ },
1509
+ "node_modules/color-name": {
1510
+ "version": "1.1.4",
1511
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
1512
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
1513
+ "license": "MIT"
1514
+ },
1515
+ "node_modules/combined-stream": {
1516
+ "version": "1.0.8",
1517
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
1518
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
1519
+ "dev": true,
1520
+ "license": "MIT",
1521
+ "dependencies": {
1522
+ "delayed-stream": "~1.0.0"
1523
+ },
1524
+ "engines": {
1525
+ "node": ">= 0.8"
1526
+ }
1527
+ },
1528
+ "node_modules/component-emitter": {
1529
+ "version": "1.3.1",
1530
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.1.tgz",
1531
+ "integrity": "sha512-T0+barUSQRTUQASh8bx02dl+DhF54GtIDY13Y3m9oWTklKbb3Wv974meRpeZ3lp1JpLVECWWNHC4vaG2XHXouQ==",
1532
+ "dev": true,
1533
+ "license": "MIT",
1534
+ "funding": {
1535
+ "url": "https://github.com/sponsors/sindresorhus"
1536
+ }
1537
+ },
1263
1538
  "node_modules/content-disposition": {
1264
1539
  "version": "0.5.4",
1265
1540
  "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
@@ -1315,6 +1590,13 @@
1315
1590
  "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==",
1316
1591
  "license": "MIT"
1317
1592
  },
1593
+ "node_modules/cookiejar": {
1594
+ "version": "2.1.4",
1595
+ "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.4.tgz",
1596
+ "integrity": "sha512-LDx6oHrK+PhzLKJU9j5S7/Y3jM/mUHvD/DeI1WQmJn652iPC5Y4TBzC9l+5OMOXlyTTA+SmVUPm0HQUwpD5Jqw==",
1597
+ "dev": true,
1598
+ "license": "MIT"
1599
+ },
1318
1600
  "node_modules/cors": {
1319
1601
  "version": "2.8.6",
1320
1602
  "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz",
@@ -1332,6 +1614,20 @@
1332
1614
  "url": "https://opencollective.com/express"
1333
1615
  }
1334
1616
  },
1617
+ "node_modules/cpu-features": {
1618
+ "version": "0.0.10",
1619
+ "resolved": "https://registry.npmjs.org/cpu-features/-/cpu-features-0.0.10.tgz",
1620
+ "integrity": "sha512-9IkYqtX3YHPCzoVg1Py+o9057a3i0fp7S530UWokCSaFVTc7CwXPRiOjRjBQQ18ZCNafx78YfnG+HALxtVmOGA==",
1621
+ "hasInstallScript": true,
1622
+ "optional": true,
1623
+ "dependencies": {
1624
+ "buildcheck": "~0.0.6",
1625
+ "nan": "^2.19.0"
1626
+ },
1627
+ "engines": {
1628
+ "node": ">=10.0.0"
1629
+ }
1630
+ },
1335
1631
  "node_modules/debug": {
1336
1632
  "version": "2.6.9",
1337
1633
  "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
@@ -1365,6 +1661,16 @@
1365
1661
  "node": ">=4.0.0"
1366
1662
  }
1367
1663
  },
1664
+ "node_modules/delayed-stream": {
1665
+ "version": "1.0.0",
1666
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
1667
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
1668
+ "dev": true,
1669
+ "license": "MIT",
1670
+ "engines": {
1671
+ "node": ">=0.4.0"
1672
+ }
1673
+ },
1368
1674
  "node_modules/depd": {
1369
1675
  "version": "2.0.0",
1370
1676
  "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
@@ -1393,6 +1699,73 @@
1393
1699
  "node": ">=8"
1394
1700
  }
1395
1701
  },
1702
+ "node_modules/dezalgo": {
1703
+ "version": "1.0.4",
1704
+ "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz",
1705
+ "integrity": "sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==",
1706
+ "dev": true,
1707
+ "license": "ISC",
1708
+ "dependencies": {
1709
+ "asap": "^2.0.0",
1710
+ "wrappy": "1"
1711
+ }
1712
+ },
1713
+ "node_modules/docker-modem": {
1714
+ "version": "5.0.6",
1715
+ "resolved": "https://registry.npmjs.org/docker-modem/-/docker-modem-5.0.6.tgz",
1716
+ "integrity": "sha512-ens7BiayssQz/uAxGzH8zGXCtiV24rRWXdjNha5V4zSOcxmAZsfGVm/PPFbwQdqEkDnhG+SyR9E3zSHUbOKXBQ==",
1717
+ "license": "Apache-2.0",
1718
+ "dependencies": {
1719
+ "debug": "^4.1.1",
1720
+ "readable-stream": "^3.5.0",
1721
+ "split-ca": "^1.0.1",
1722
+ "ssh2": "^1.15.0"
1723
+ },
1724
+ "engines": {
1725
+ "node": ">= 8.0"
1726
+ }
1727
+ },
1728
+ "node_modules/docker-modem/node_modules/debug": {
1729
+ "version": "4.4.3",
1730
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
1731
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
1732
+ "license": "MIT",
1733
+ "dependencies": {
1734
+ "ms": "^2.1.3"
1735
+ },
1736
+ "engines": {
1737
+ "node": ">=6.0"
1738
+ },
1739
+ "peerDependenciesMeta": {
1740
+ "supports-color": {
1741
+ "optional": true
1742
+ }
1743
+ }
1744
+ },
1745
+ "node_modules/docker-modem/node_modules/ms": {
1746
+ "version": "2.1.3",
1747
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
1748
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
1749
+ "license": "MIT"
1750
+ },
1751
+ "node_modules/dockerode": {
1752
+ "version": "4.0.9",
1753
+ "resolved": "https://registry.npmjs.org/dockerode/-/dockerode-4.0.9.tgz",
1754
+ "integrity": "sha512-iND4mcOWhPaCNh54WmK/KoSb35AFqPAUWFMffTQcp52uQt36b5uNwEJTSXntJZBbeGad72Crbi/hvDIv6us/6Q==",
1755
+ "license": "Apache-2.0",
1756
+ "dependencies": {
1757
+ "@balena/dockerignore": "^1.0.2",
1758
+ "@grpc/grpc-js": "^1.11.1",
1759
+ "@grpc/proto-loader": "^0.7.13",
1760
+ "docker-modem": "^5.0.6",
1761
+ "protobufjs": "^7.3.2",
1762
+ "tar-fs": "^2.1.4",
1763
+ "uuid": "^10.0.0"
1764
+ },
1765
+ "engines": {
1766
+ "node": ">= 8.0"
1767
+ }
1768
+ },
1396
1769
  "node_modules/dunder-proto": {
1397
1770
  "version": "1.0.1",
1398
1771
  "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
@@ -1413,6 +1786,12 @@
1413
1786
  "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
1414
1787
  "license": "MIT"
1415
1788
  },
1789
+ "node_modules/emoji-regex": {
1790
+ "version": "8.0.0",
1791
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
1792
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
1793
+ "license": "MIT"
1794
+ },
1416
1795
  "node_modules/encodeurl": {
1417
1796
  "version": "2.0.0",
1418
1797
  "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
@@ -1468,6 +1847,22 @@
1468
1847
  "node": ">= 0.4"
1469
1848
  }
1470
1849
  },
1850
+ "node_modules/es-set-tostringtag": {
1851
+ "version": "2.1.0",
1852
+ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
1853
+ "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
1854
+ "dev": true,
1855
+ "license": "MIT",
1856
+ "dependencies": {
1857
+ "es-errors": "^1.3.0",
1858
+ "get-intrinsic": "^1.2.6",
1859
+ "has-tostringtag": "^1.0.2",
1860
+ "hasown": "^2.0.2"
1861
+ },
1862
+ "engines": {
1863
+ "node": ">= 0.4"
1864
+ }
1865
+ },
1471
1866
  "node_modules/esbuild": {
1472
1867
  "version": "0.27.2",
1473
1868
  "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz",
@@ -1510,6 +1905,15 @@
1510
1905
  "@esbuild/win32-x64": "0.27.2"
1511
1906
  }
1512
1907
  },
1908
+ "node_modules/escalade": {
1909
+ "version": "3.2.0",
1910
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
1911
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
1912
+ "license": "MIT",
1913
+ "engines": {
1914
+ "node": ">=6"
1915
+ }
1916
+ },
1513
1917
  "node_modules/escape-html": {
1514
1918
  "version": "1.0.3",
1515
1919
  "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
@@ -1606,6 +2010,13 @@
1606
2010
  "url": "https://opencollective.com/express"
1607
2011
  }
1608
2012
  },
2013
+ "node_modules/fast-safe-stringify": {
2014
+ "version": "2.1.1",
2015
+ "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
2016
+ "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==",
2017
+ "dev": true,
2018
+ "license": "MIT"
2019
+ },
1609
2020
  "node_modules/file-uri-to-path": {
1610
2021
  "version": "1.0.0",
1611
2022
  "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
@@ -1662,6 +2073,41 @@
1662
2073
  }
1663
2074
  }
1664
2075
  },
2076
+ "node_modules/form-data": {
2077
+ "version": "4.0.5",
2078
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz",
2079
+ "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==",
2080
+ "dev": true,
2081
+ "license": "MIT",
2082
+ "dependencies": {
2083
+ "asynckit": "^0.4.0",
2084
+ "combined-stream": "^1.0.8",
2085
+ "es-set-tostringtag": "^2.1.0",
2086
+ "hasown": "^2.0.2",
2087
+ "mime-types": "^2.1.12"
2088
+ },
2089
+ "engines": {
2090
+ "node": ">= 6"
2091
+ }
2092
+ },
2093
+ "node_modules/formidable": {
2094
+ "version": "3.5.4",
2095
+ "resolved": "https://registry.npmjs.org/formidable/-/formidable-3.5.4.tgz",
2096
+ "integrity": "sha512-YikH+7CUTOtP44ZTnUhR7Ic2UASBPOqmaRkRKxRbywPTe5VxF7RRCck4af9wutiZ/QKM5nME9Bie2fFaPz5Gug==",
2097
+ "dev": true,
2098
+ "license": "MIT",
2099
+ "dependencies": {
2100
+ "@paralleldrive/cuid2": "^2.2.2",
2101
+ "dezalgo": "^1.0.4",
2102
+ "once": "^1.4.0"
2103
+ },
2104
+ "engines": {
2105
+ "node": ">=14.0.0"
2106
+ },
2107
+ "funding": {
2108
+ "url": "https://ko-fi.com/tunnckoCore/commissions"
2109
+ }
2110
+ },
1665
2111
  "node_modules/forwarded": {
1666
2112
  "version": "0.2.0",
1667
2113
  "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
@@ -1709,6 +2155,15 @@
1709
2155
  "url": "https://github.com/sponsors/ljharb"
1710
2156
  }
1711
2157
  },
2158
+ "node_modules/get-caller-file": {
2159
+ "version": "2.0.5",
2160
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
2161
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
2162
+ "license": "ISC",
2163
+ "engines": {
2164
+ "node": "6.* || 8.* || >= 10.*"
2165
+ }
2166
+ },
1712
2167
  "node_modules/get-intrinsic": {
1713
2168
  "version": "1.3.0",
1714
2169
  "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
@@ -1788,6 +2243,22 @@
1788
2243
  "url": "https://github.com/sponsors/ljharb"
1789
2244
  }
1790
2245
  },
2246
+ "node_modules/has-tostringtag": {
2247
+ "version": "1.0.2",
2248
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
2249
+ "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
2250
+ "dev": true,
2251
+ "license": "MIT",
2252
+ "dependencies": {
2253
+ "has-symbols": "^1.0.3"
2254
+ },
2255
+ "engines": {
2256
+ "node": ">= 0.4"
2257
+ },
2258
+ "funding": {
2259
+ "url": "https://github.com/sponsors/ljharb"
2260
+ }
2261
+ },
1791
2262
  "node_modules/hasown": {
1792
2263
  "version": "2.0.2",
1793
2264
  "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
@@ -1932,6 +2403,15 @@
1932
2403
  "node": ">=0.10.0"
1933
2404
  }
1934
2405
  },
2406
+ "node_modules/is-fullwidth-code-point": {
2407
+ "version": "3.0.0",
2408
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
2409
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
2410
+ "license": "MIT",
2411
+ "engines": {
2412
+ "node": ">=8"
2413
+ }
2414
+ },
1935
2415
  "node_modules/is-glob": {
1936
2416
  "version": "4.0.3",
1937
2417
  "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
@@ -1977,6 +2457,18 @@
1977
2457
  "js-yaml": "bin/js-yaml.js"
1978
2458
  }
1979
2459
  },
2460
+ "node_modules/lodash.camelcase": {
2461
+ "version": "4.3.0",
2462
+ "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz",
2463
+ "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==",
2464
+ "license": "MIT"
2465
+ },
2466
+ "node_modules/long": {
2467
+ "version": "5.3.2",
2468
+ "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz",
2469
+ "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==",
2470
+ "license": "Apache-2.0"
2471
+ },
1980
2472
  "node_modules/magic-string": {
1981
2473
  "version": "0.30.21",
1982
2474
  "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
@@ -2102,6 +2594,13 @@
2102
2594
  "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
2103
2595
  "license": "MIT"
2104
2596
  },
2597
+ "node_modules/nan": {
2598
+ "version": "2.25.0",
2599
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.25.0.tgz",
2600
+ "integrity": "sha512-0M90Ag7Xn5KMLLZ7zliPWP3rT90P6PN+IzVFS0VqmnPktBk3700xUVv8Ikm9EUaUE5SDWdp/BIxdENzVznpm1g==",
2601
+ "license": "MIT",
2602
+ "optional": true
2603
+ },
2105
2604
  "node_modules/nanoid": {
2106
2605
  "version": "3.3.11",
2107
2606
  "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
@@ -2434,6 +2933,30 @@
2434
2933
  "node": ">=10"
2435
2934
  }
2436
2935
  },
2936
+ "node_modules/protobufjs": {
2937
+ "version": "7.5.4",
2938
+ "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.4.tgz",
2939
+ "integrity": "sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==",
2940
+ "hasInstallScript": true,
2941
+ "license": "BSD-3-Clause",
2942
+ "dependencies": {
2943
+ "@protobufjs/aspromise": "^1.1.2",
2944
+ "@protobufjs/base64": "^1.1.2",
2945
+ "@protobufjs/codegen": "^2.0.4",
2946
+ "@protobufjs/eventemitter": "^1.1.0",
2947
+ "@protobufjs/fetch": "^1.1.0",
2948
+ "@protobufjs/float": "^1.0.2",
2949
+ "@protobufjs/inquire": "^1.1.0",
2950
+ "@protobufjs/path": "^1.1.2",
2951
+ "@protobufjs/pool": "^1.1.0",
2952
+ "@protobufjs/utf8": "^1.1.0",
2953
+ "@types/node": ">=13.7.0",
2954
+ "long": "^5.0.0"
2955
+ },
2956
+ "engines": {
2957
+ "node": ">=12.0.0"
2958
+ }
2959
+ },
2437
2960
  "node_modules/proxy-addr": {
2438
2961
  "version": "2.0.7",
2439
2962
  "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
@@ -2537,6 +3060,15 @@
2537
3060
  "node": ">=8.10.0"
2538
3061
  }
2539
3062
  },
3063
+ "node_modules/require-directory": {
3064
+ "version": "2.1.1",
3065
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
3066
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
3067
+ "license": "MIT",
3068
+ "engines": {
3069
+ "node": ">=0.10.0"
3070
+ }
3071
+ },
2540
3072
  "node_modules/requires-port": {
2541
3073
  "version": "1.0.0",
2542
3074
  "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
@@ -2811,6 +3343,12 @@
2811
3343
  "node": ">=0.10.0"
2812
3344
  }
2813
3345
  },
3346
+ "node_modules/split-ca": {
3347
+ "version": "1.0.1",
3348
+ "resolved": "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz",
3349
+ "integrity": "sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==",
3350
+ "license": "ISC"
3351
+ },
2814
3352
  "node_modules/split2": {
2815
3353
  "version": "4.2.0",
2816
3354
  "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz",
@@ -2898,6 +3436,23 @@
2898
3436
  "win32"
2899
3437
  ]
2900
3438
  },
3439
+ "node_modules/ssh2": {
3440
+ "version": "1.17.0",
3441
+ "resolved": "https://registry.npmjs.org/ssh2/-/ssh2-1.17.0.tgz",
3442
+ "integrity": "sha512-wPldCk3asibAjQ/kziWQQt1Wh3PgDFpC0XpwclzKcdT1vql6KeYxf5LIt4nlFkUeR8WuphYMKqUA56X4rjbfgQ==",
3443
+ "hasInstallScript": true,
3444
+ "dependencies": {
3445
+ "asn1": "^0.2.6",
3446
+ "bcrypt-pbkdf": "^1.0.2"
3447
+ },
3448
+ "engines": {
3449
+ "node": ">=10.16.0"
3450
+ },
3451
+ "optionalDependencies": {
3452
+ "cpu-features": "~0.0.10",
3453
+ "nan": "^2.23.0"
3454
+ }
3455
+ },
2901
3456
  "node_modules/stackback": {
2902
3457
  "version": "0.0.2",
2903
3458
  "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
@@ -2930,6 +3485,32 @@
2930
3485
  "safe-buffer": "~5.2.0"
2931
3486
  }
2932
3487
  },
3488
+ "node_modules/string-width": {
3489
+ "version": "4.2.3",
3490
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
3491
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
3492
+ "license": "MIT",
3493
+ "dependencies": {
3494
+ "emoji-regex": "^8.0.0",
3495
+ "is-fullwidth-code-point": "^3.0.0",
3496
+ "strip-ansi": "^6.0.1"
3497
+ },
3498
+ "engines": {
3499
+ "node": ">=8"
3500
+ }
3501
+ },
3502
+ "node_modules/strip-ansi": {
3503
+ "version": "6.0.1",
3504
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
3505
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
3506
+ "license": "MIT",
3507
+ "dependencies": {
3508
+ "ansi-regex": "^5.0.1"
3509
+ },
3510
+ "engines": {
3511
+ "node": ">=8"
3512
+ }
3513
+ },
2933
3514
  "node_modules/strip-json-comments": {
2934
3515
  "version": "2.0.1",
2935
3516
  "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
@@ -2946,6 +3527,90 @@
2946
3527
  "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.",
2947
3528
  "license": "MIT"
2948
3529
  },
3530
+ "node_modules/superagent": {
3531
+ "version": "10.3.0",
3532
+ "resolved": "https://registry.npmjs.org/superagent/-/superagent-10.3.0.tgz",
3533
+ "integrity": "sha512-B+4Ik7ROgVKrQsXTV0Jwp2u+PXYLSlqtDAhYnkkD+zn3yg8s/zjA2MeGayPoY/KICrbitwneDHrjSotxKL+0XQ==",
3534
+ "dev": true,
3535
+ "license": "MIT",
3536
+ "dependencies": {
3537
+ "component-emitter": "^1.3.1",
3538
+ "cookiejar": "^2.1.4",
3539
+ "debug": "^4.3.7",
3540
+ "fast-safe-stringify": "^2.1.1",
3541
+ "form-data": "^4.0.5",
3542
+ "formidable": "^3.5.4",
3543
+ "methods": "^1.1.2",
3544
+ "mime": "2.6.0",
3545
+ "qs": "^6.14.1"
3546
+ },
3547
+ "engines": {
3548
+ "node": ">=14.18.0"
3549
+ }
3550
+ },
3551
+ "node_modules/superagent/node_modules/debug": {
3552
+ "version": "4.4.3",
3553
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
3554
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
3555
+ "dev": true,
3556
+ "license": "MIT",
3557
+ "dependencies": {
3558
+ "ms": "^2.1.3"
3559
+ },
3560
+ "engines": {
3561
+ "node": ">=6.0"
3562
+ },
3563
+ "peerDependenciesMeta": {
3564
+ "supports-color": {
3565
+ "optional": true
3566
+ }
3567
+ }
3568
+ },
3569
+ "node_modules/superagent/node_modules/mime": {
3570
+ "version": "2.6.0",
3571
+ "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz",
3572
+ "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
3573
+ "dev": true,
3574
+ "license": "MIT",
3575
+ "bin": {
3576
+ "mime": "cli.js"
3577
+ },
3578
+ "engines": {
3579
+ "node": ">=4.0.0"
3580
+ }
3581
+ },
3582
+ "node_modules/superagent/node_modules/ms": {
3583
+ "version": "2.1.3",
3584
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
3585
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
3586
+ "dev": true,
3587
+ "license": "MIT"
3588
+ },
3589
+ "node_modules/supertest": {
3590
+ "version": "7.2.2",
3591
+ "resolved": "https://registry.npmjs.org/supertest/-/supertest-7.2.2.tgz",
3592
+ "integrity": "sha512-oK8WG9diS3DlhdUkcFn4tkNIiIbBx9lI2ClF8K+b2/m8Eyv47LSawxUzZQSNKUrVb2KsqeTDCcjAAVPYaSLVTA==",
3593
+ "dev": true,
3594
+ "license": "MIT",
3595
+ "dependencies": {
3596
+ "cookie-signature": "^1.2.2",
3597
+ "methods": "^1.1.2",
3598
+ "superagent": "^10.3.0"
3599
+ },
3600
+ "engines": {
3601
+ "node": ">=14.18.0"
3602
+ }
3603
+ },
3604
+ "node_modules/supertest/node_modules/cookie-signature": {
3605
+ "version": "1.2.2",
3606
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz",
3607
+ "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==",
3608
+ "dev": true,
3609
+ "license": "MIT",
3610
+ "engines": {
3611
+ "node": ">=6.6.0"
3612
+ }
3613
+ },
2949
3614
  "node_modules/tar-fs": {
2950
3615
  "version": "2.1.4",
2951
3616
  "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.4.tgz",
@@ -3082,6 +3747,12 @@
3082
3747
  "node": "*"
3083
3748
  }
3084
3749
  },
3750
+ "node_modules/tweetnacl": {
3751
+ "version": "0.14.5",
3752
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
3753
+ "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==",
3754
+ "license": "Unlicense"
3755
+ },
3085
3756
  "node_modules/type-is": {
3086
3757
  "version": "1.6.18",
3087
3758
  "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
@@ -3138,6 +3809,19 @@
3138
3809
  "node": ">= 0.4.0"
3139
3810
  }
3140
3811
  },
3812
+ "node_modules/uuid": {
3813
+ "version": "10.0.0",
3814
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-10.0.0.tgz",
3815
+ "integrity": "sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==",
3816
+ "funding": [
3817
+ "https://github.com/sponsors/broofa",
3818
+ "https://github.com/sponsors/ctavan"
3819
+ ],
3820
+ "license": "MIT",
3821
+ "bin": {
3822
+ "uuid": "dist/bin/uuid"
3823
+ }
3824
+ },
3141
3825
  "node_modules/vary": {
3142
3826
  "version": "1.1.2",
3143
3827
  "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
@@ -3361,6 +4045,23 @@
3361
4045
  "node": ">=8"
3362
4046
  }
3363
4047
  },
4048
+ "node_modules/wrap-ansi": {
4049
+ "version": "7.0.0",
4050
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
4051
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
4052
+ "license": "MIT",
4053
+ "dependencies": {
4054
+ "ansi-styles": "^4.0.0",
4055
+ "string-width": "^4.1.0",
4056
+ "strip-ansi": "^6.0.0"
4057
+ },
4058
+ "engines": {
4059
+ "node": ">=10"
4060
+ },
4061
+ "funding": {
4062
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
4063
+ }
4064
+ },
3364
4065
  "node_modules/wrappy": {
3365
4066
  "version": "1.0.2",
3366
4067
  "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
@@ -3396,6 +4097,42 @@
3396
4097
  "engines": {
3397
4098
  "node": ">=0.4"
3398
4099
  }
4100
+ },
4101
+ "node_modules/y18n": {
4102
+ "version": "5.0.8",
4103
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
4104
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
4105
+ "license": "ISC",
4106
+ "engines": {
4107
+ "node": ">=10"
4108
+ }
4109
+ },
4110
+ "node_modules/yargs": {
4111
+ "version": "17.7.2",
4112
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
4113
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
4114
+ "license": "MIT",
4115
+ "dependencies": {
4116
+ "cliui": "^8.0.1",
4117
+ "escalade": "^3.1.1",
4118
+ "get-caller-file": "^2.0.5",
4119
+ "require-directory": "^2.1.1",
4120
+ "string-width": "^4.2.3",
4121
+ "y18n": "^5.0.5",
4122
+ "yargs-parser": "^21.1.1"
4123
+ },
4124
+ "engines": {
4125
+ "node": ">=12"
4126
+ }
4127
+ },
4128
+ "node_modules/yargs-parser": {
4129
+ "version": "21.1.1",
4130
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
4131
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
4132
+ "license": "ISC",
4133
+ "engines": {
4134
+ "node": ">=12"
4135
+ }
3399
4136
  }
3400
4137
  }
3401
4138
  }