@jenga-ai/agent 1.0.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 (177) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +340 -0
  3. package/agents/ai_engineer.md +113 -0
  4. package/agents/developer.md +236 -0
  5. package/agents/scrum-master.md +349 -0
  6. package/agents/scrutiny-agent.md +137 -0
  7. package/agents/solution-assessor.md +185 -0
  8. package/agents/tester.md +339 -0
  9. package/bin/jenga.js +70 -0
  10. package/hooks/copilot_session_end.sh +29 -0
  11. package/hooks/on_session_end.sh +238 -0
  12. package/hooks/prompt_router.sh +11 -0
  13. package/hooks/prompt_router_helper.js +52 -0
  14. package/hooks/session_end_helper.js +29 -0
  15. package/hooks/session_end_watcher.sh +24 -0
  16. package/lib/commands/attach.js +47 -0
  17. package/lib/commands/init.js +207 -0
  18. package/lib/commands/start.js +16 -0
  19. package/lib/commands/status.js +53 -0
  20. package/lib/config-schema.js +72 -0
  21. package/lib/inject-settings.js +61 -0
  22. package/lib/mirror.js +244 -0
  23. package/lib/resolve-project-dir.sh +47 -0
  24. package/mcp/execute-ticket/index.js +10 -0
  25. package/mcp/execute-ticket/package.json +5 -0
  26. package/mcp/help/index.js +79 -0
  27. package/mcp/help/package.json +14 -0
  28. package/mcp/router/README.md +19 -0
  29. package/mcp/router/embedder.js +23 -0
  30. package/mcp/router/index.js +204 -0
  31. package/mcp/router/matcher.js +87 -0
  32. package/mcp/router/package-lock.json +1048 -0
  33. package/mcp/router/package.json +11 -0
  34. package/mcp/router/skill-index.js +104 -0
  35. package/package.json +47 -0
  36. package/scripts/board_resolver.sh +46 -0
  37. package/scripts/e25_s01_extract_board_graph.py +292 -0
  38. package/scripts/e25_s01_generate_synthetic_board.py +90 -0
  39. package/scripts/measurement-10x.json +50 -0
  40. package/scripts/measurement-10x.txt +4 -0
  41. package/scripts/measurement-real.json +50 -0
  42. package/scripts/measurement-real.txt +4 -0
  43. package/scripts/postinstall.js +165 -0
  44. package/scripts/todo_cleanup.sh +22 -0
  45. package/scripts/todo_manager.sh +86 -0
  46. package/scripts/validate-board.sh +190 -0
  47. package/scripts/validate-story-format.sh +53 -0
  48. package/skills/brainstorm/SKILL.md +47 -0
  49. package/skills/btw/SKILL.md +42 -0
  50. package/skills/commit/SKILL.md +29 -0
  51. package/skills/commit/assets/user_instructions_template.md +22 -0
  52. package/skills/continue/SKILL.md +29 -0
  53. package/skills/convert/SKILL.md +124 -0
  54. package/skills/convert/convert_cli.py +235 -0
  55. package/skills/convert/tests/sample.csv +4 -0
  56. package/skills/convert/tests/sample.json +5 -0
  57. package/skills/convert/tests/sample.jsonl +3 -0
  58. package/skills/convert/tests/sample.yaml +18 -0
  59. package/skills/convert/tests/sample_obj.csv +2 -0
  60. package/skills/convert/tests/sample_obj.json +9 -0
  61. package/skills/deep-dive/SKILL.md +167 -0
  62. package/skills/do/SKILL.md +88 -0
  63. package/skills/do/assets/sender_template.json +12 -0
  64. package/skills/doc/SKILL.md +314 -0
  65. package/skills/doc/assets/path-objectives.yaml +38 -0
  66. package/skills/doc-sync/SKILL.md +167 -0
  67. package/skills/doc-sync/assets/default_excludes.txt +21 -0
  68. package/skills/doc-sync/assets/doc_targets.md +14 -0
  69. package/skills/dooo/SKILL.md +60 -0
  70. package/skills/error/SKILL.md +29 -0
  71. package/skills/evaluate/SKILL.md +45 -0
  72. package/skills/evaluate/assets/evaluation_invokation_template.yml +3 -0
  73. package/skills/evaluate/assets/evaluation_rapport_template.md +24 -0
  74. package/skills/examplify/SKILL.md +42 -0
  75. package/skills/help/SKILL.md +36 -0
  76. package/skills/improve/SKILL.md +55 -0
  77. package/skills/index/scripts/board-index +4 -0
  78. package/skills/index/scripts/board_index.py +615 -0
  79. package/skills/index/scripts/smoke_test.sh +86 -0
  80. package/skills/init/SKILL.md +44 -0
  81. package/skills/init/assets/.gitignore_template +15 -0
  82. package/skills/init/assets/PROJECT_SUMMARY_template.md +13 -0
  83. package/skills/init/assets/directory_structure.txt +13 -0
  84. package/skills/init/assets/test-config_template.json +4 -0
  85. package/skills/init/assets/workflow_template.json +30 -0
  86. package/skills/init/scripts/init.sh +48 -0
  87. package/skills/jbp/SKILL.md +25 -0
  88. package/skills/jenga/SKILL.md +68 -0
  89. package/skills/lgtm/SKILL.md +21 -0
  90. package/skills/mirror-public/SKILL.md +237 -0
  91. package/skills/mirror-public/assets/config.json +5 -0
  92. package/skills/mirror-public/scripts/mirror.sh +374 -0
  93. package/skills/pi-plan/SKILL.md +62 -0
  94. package/skills/pi-plan/assets/epic.json +7 -0
  95. package/skills/pi-plan/assets/story_template.md +18 -0
  96. package/skills/proceed/SKILL.md +29 -0
  97. package/skills/publish/SKILL.md +351 -0
  98. package/skills/publish/adapters/droplet.md +200 -0
  99. package/skills/publish/adapters/mobile-ios.md +114 -0
  100. package/skills/publish/adapters/npm-ci.md +223 -0
  101. package/skills/publish/adapters/npm.md +121 -0
  102. package/skills/publish/assets/ExportOptions.plist.template +19 -0
  103. package/skills/publish/assets/ci-contract.md +111 -0
  104. package/skills/publish/assets/ownership-matrix.md +17 -0
  105. package/skills/publish/assets/publish.example.json +85 -0
  106. package/skills/publish/assets/publish.example.npm-ci.json +40 -0
  107. package/skills/publish/assets/publish.example.npm.json +41 -0
  108. package/skills/publish/assets/secrets-guide.md +104 -0
  109. package/skills/publish/schemas/fixtures/npm-ci-minimal.json +17 -0
  110. package/skills/publish/schemas/fixtures/npm-ci-with-empty-secrets.json +18 -0
  111. package/skills/publish/schemas/fixtures/npm-ci-with-workflow-path.json +18 -0
  112. package/skills/publish/schemas/publish.schema.json +428 -0
  113. package/skills/publish/scripts/check_target_config.sh +96 -0
  114. package/skills/publish/scripts/droplet_pipeline.sh +208 -0
  115. package/skills/publish/scripts/generate_release_notes.sh +200 -0
  116. package/skills/publish/scripts/ios_pipeline.sh +486 -0
  117. package/skills/publish/scripts/npm_ci_pipeline.sh +225 -0
  118. package/skills/publish/scripts/npm_pipeline.sh +249 -0
  119. package/skills/publish/scripts/publish_common.sh +253 -0
  120. package/skills/publish/scripts/publish_deploy.sh +538 -0
  121. package/skills/publish/scripts/reconcile_tags.sh +135 -0
  122. package/skills/publish/scripts/run_gates.sh +616 -0
  123. package/skills/publish/scripts/setup_wizard.sh +394 -0
  124. package/skills/publish/scripts/show_history.sh +95 -0
  125. package/skills/publish/scripts/suggest_semver_bump.sh +105 -0
  126. package/skills/publish/scripts/validate_config.sh +163 -0
  127. package/skills/publish/scripts/validate_droplet_env.sh +45 -0
  128. package/skills/publish/scripts/validate_ios_env.sh +68 -0
  129. package/skills/publish/scripts/validate_npm_ci_env.sh +71 -0
  130. package/skills/publish/scripts/validate_npm_env.sh +22 -0
  131. package/skills/publish/scripts/write_ledger_entry.sh +126 -0
  132. package/skills/publish/wizards/droplet.md +275 -0
  133. package/skills/publish/wizards/mobile-ios.md +157 -0
  134. package/skills/publish/wizards/npm-ci.md +240 -0
  135. package/skills/publish/wizards/npm.md +224 -0
  136. package/skills/reconcile/SKILL.md +93 -0
  137. package/skills/reconcile/assets/report_format.md +44 -0
  138. package/skills/reconcile-origin/SKILL.md +75 -0
  139. package/skills/reconcile-origin/scripts/reconcile-origin.sh +372 -0
  140. package/skills/redo/SKILL.md +70 -0
  141. package/skills/route/SKILL.md +180 -0
  142. package/skills/self-sync/SKILL.md +73 -0
  143. package/skills/self-sync/scripts/run.js +136 -0
  144. package/skills/skillify/SKILL.md +68 -0
  145. package/skills/skillify/assets/init-new/SKILL.md +35 -0
  146. package/skills/skillify/assets/init-new/assets/.gitignore_template +15 -0
  147. package/skills/skillify/assets/init-new/assets/PROJECT_SUMMARY_template.md +13 -0
  148. package/skills/skillify/assets/init-new/assets/directory_structure.txt +10 -0
  149. package/skills/skillify/assets/init-new/assets/test-config_template.json +4 -0
  150. package/skills/skillify/assets/init-new/assets/workflow_template.json +17 -0
  151. package/skills/skillify/assets/init-new/scripts/init.sh +48 -0
  152. package/skills/skillify/assets/init-old/SKILL.md +124 -0
  153. package/skills/spinoff/SKILL.md +48 -0
  154. package/skills/status/SKILL.md +33 -0
  155. package/skills/status/assets/output_format.md +41 -0
  156. package/skills/todo/SKILL.md +46 -0
  157. package/skills/todo/assets/todo_handoff_template.md +22 -0
  158. package/skills/todo/assets/todo_template.md +3 -0
  159. package/skills/train/SKILL.md +116 -0
  160. package/skills/train/assets/dashboard-templates/classifiers.html +106 -0
  161. package/skills/train/assets/dashboard-templates/nlp.html +102 -0
  162. package/skills/train/assets/dashboard-templates/transformers.html +98 -0
  163. package/skills/train/assets/results-parsers/__init__.py +9 -0
  164. package/skills/train/assets/results-parsers/classifiers.py +84 -0
  165. package/skills/train/assets/results-parsers/nlp.py +88 -0
  166. package/skills/train/assets/results-parsers/reporter.py +154 -0
  167. package/skills/train/assets/results-parsers/transformers.py +120 -0
  168. package/skills/train/train_cli.py +786 -0
  169. package/templates/EXECUTION_PLAN_TEMPLATE.md +43 -0
  170. package/templates/EXECUTION_SUMMARY_TEMPLATE.md +50 -0
  171. package/templates/JENGA_CONFIG_TEMPLATE.json +23 -0
  172. package/templates/PROBLEM_RAPPORT_TEMPLATE.md +88 -0
  173. package/templates/SCRUM_BOARD_SCHEMA.md +311 -0
  174. package/templates/SKILL.md +16 -0
  175. package/templates/SKILL_TEMPLATE.md +28 -0
  176. package/templates/USER_INSTRUCTIONS_TEMPLATE.md +22 -0
  177. package/templates/copilot-instructions.md.tpl +55 -0
@@ -0,0 +1,1048 @@
1
+ {
2
+ "name": "jenga-router",
3
+ "version": "1.0.0",
4
+ "lockfileVersion": 3,
5
+ "requires": true,
6
+ "packages": {
7
+ "": {
8
+ "name": "jenga-router",
9
+ "version": "1.0.0",
10
+ "dependencies": {
11
+ "@modelcontextprotocol/sdk": "^1.11.1",
12
+ "zod": "^3.24.4"
13
+ }
14
+ },
15
+ "node_modules/@hono/node-server": {
16
+ "version": "1.19.14",
17
+ "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-1.19.14.tgz",
18
+ "integrity": "sha512-GwtvgtXxnWsucXvbQXkRgqksiH2Qed37H9xHZocE5sA3N8O8O8/8FA3uclQXxXVzc9XBZuEOMK7+r02FmSpHtw==",
19
+ "engines": {
20
+ "node": ">=18.14.1"
21
+ },
22
+ "peerDependencies": {
23
+ "hono": "^4"
24
+ }
25
+ },
26
+ "node_modules/@modelcontextprotocol/sdk": {
27
+ "version": "1.29.0",
28
+ "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.29.0.tgz",
29
+ "integrity": "sha512-zo37mZA9hJWpULgkRpowewez1y6ML5GsXJPY8FI0tBBCd77HEvza4jDqRKOXgHNn867PVGCyTdzqpz0izu5ZjQ==",
30
+ "dependencies": {
31
+ "@hono/node-server": "^1.19.9",
32
+ "ajv": "^8.17.1",
33
+ "ajv-formats": "^3.0.1",
34
+ "content-type": "^1.0.5",
35
+ "cors": "^2.8.5",
36
+ "cross-spawn": "^7.0.5",
37
+ "eventsource": "^3.0.2",
38
+ "eventsource-parser": "^3.0.0",
39
+ "express": "^5.2.1",
40
+ "express-rate-limit": "^8.2.1",
41
+ "hono": "^4.11.4",
42
+ "jose": "^6.1.3",
43
+ "json-schema-typed": "^8.0.2",
44
+ "pkce-challenge": "^5.0.0",
45
+ "raw-body": "^3.0.0",
46
+ "zod": "^3.25 || ^4.0",
47
+ "zod-to-json-schema": "^3.25.1"
48
+ },
49
+ "engines": {
50
+ "node": ">=18"
51
+ },
52
+ "peerDependencies": {
53
+ "@cfworker/json-schema": "^4.1.1",
54
+ "zod": "^3.25 || ^4.0"
55
+ },
56
+ "peerDependenciesMeta": {
57
+ "@cfworker/json-schema": {
58
+ "optional": true
59
+ },
60
+ "zod": {
61
+ "optional": false
62
+ }
63
+ }
64
+ },
65
+ "node_modules/accepts": {
66
+ "version": "2.0.0",
67
+ "resolved": "https://registry.npmjs.org/accepts/-/accepts-2.0.0.tgz",
68
+ "integrity": "sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==",
69
+ "dependencies": {
70
+ "mime-types": "^3.0.0",
71
+ "negotiator": "^1.0.0"
72
+ },
73
+ "engines": {
74
+ "node": ">= 0.6"
75
+ }
76
+ },
77
+ "node_modules/ajv": {
78
+ "version": "8.20.0",
79
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.20.0.tgz",
80
+ "integrity": "sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==",
81
+ "dependencies": {
82
+ "fast-deep-equal": "^3.1.3",
83
+ "fast-uri": "^3.0.1",
84
+ "json-schema-traverse": "^1.0.0",
85
+ "require-from-string": "^2.0.2"
86
+ },
87
+ "funding": {
88
+ "type": "github",
89
+ "url": "https://github.com/sponsors/epoberezkin"
90
+ }
91
+ },
92
+ "node_modules/ajv-formats": {
93
+ "version": "3.0.1",
94
+ "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz",
95
+ "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==",
96
+ "dependencies": {
97
+ "ajv": "^8.0.0"
98
+ },
99
+ "peerDependencies": {
100
+ "ajv": "^8.0.0"
101
+ },
102
+ "peerDependenciesMeta": {
103
+ "ajv": {
104
+ "optional": true
105
+ }
106
+ }
107
+ },
108
+ "node_modules/body-parser": {
109
+ "version": "2.2.2",
110
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz",
111
+ "integrity": "sha512-oP5VkATKlNwcgvxi0vM0p/D3n2C3EReYVX+DNYs5TjZFn/oQt2j+4sVJtSMr18pdRr8wjTcBl6LoV+FUwzPmNA==",
112
+ "dependencies": {
113
+ "bytes": "^3.1.2",
114
+ "content-type": "^1.0.5",
115
+ "debug": "^4.4.3",
116
+ "http-errors": "^2.0.0",
117
+ "iconv-lite": "^0.7.0",
118
+ "on-finished": "^2.4.1",
119
+ "qs": "^6.14.1",
120
+ "raw-body": "^3.0.1",
121
+ "type-is": "^2.0.1"
122
+ },
123
+ "engines": {
124
+ "node": ">=18"
125
+ },
126
+ "funding": {
127
+ "type": "opencollective",
128
+ "url": "https://opencollective.com/express"
129
+ }
130
+ },
131
+ "node_modules/bytes": {
132
+ "version": "3.1.2",
133
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
134
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
135
+ "engines": {
136
+ "node": ">= 0.8"
137
+ }
138
+ },
139
+ "node_modules/call-bind-apply-helpers": {
140
+ "version": "1.0.2",
141
+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
142
+ "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
143
+ "dependencies": {
144
+ "es-errors": "^1.3.0",
145
+ "function-bind": "^1.1.2"
146
+ },
147
+ "engines": {
148
+ "node": ">= 0.4"
149
+ }
150
+ },
151
+ "node_modules/call-bound": {
152
+ "version": "1.0.4",
153
+ "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
154
+ "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
155
+ "dependencies": {
156
+ "call-bind-apply-helpers": "^1.0.2",
157
+ "get-intrinsic": "^1.3.0"
158
+ },
159
+ "engines": {
160
+ "node": ">= 0.4"
161
+ },
162
+ "funding": {
163
+ "url": "https://github.com/sponsors/ljharb"
164
+ }
165
+ },
166
+ "node_modules/content-disposition": {
167
+ "version": "1.1.0",
168
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-1.1.0.tgz",
169
+ "integrity": "sha512-5jRCH9Z/+DRP7rkvY83B+yGIGX96OYdJmzngqnw2SBSxqCFPd0w2km3s5iawpGX8krnwSGmF0FW5Nhr0Hfai3g==",
170
+ "engines": {
171
+ "node": ">=18"
172
+ },
173
+ "funding": {
174
+ "type": "opencollective",
175
+ "url": "https://opencollective.com/express"
176
+ }
177
+ },
178
+ "node_modules/content-type": {
179
+ "version": "1.0.5",
180
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
181
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
182
+ "engines": {
183
+ "node": ">= 0.6"
184
+ }
185
+ },
186
+ "node_modules/cookie": {
187
+ "version": "0.7.2",
188
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz",
189
+ "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==",
190
+ "engines": {
191
+ "node": ">= 0.6"
192
+ }
193
+ },
194
+ "node_modules/cookie-signature": {
195
+ "version": "1.2.2",
196
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.2.2.tgz",
197
+ "integrity": "sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==",
198
+ "engines": {
199
+ "node": ">=6.6.0"
200
+ }
201
+ },
202
+ "node_modules/cors": {
203
+ "version": "2.8.6",
204
+ "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.6.tgz",
205
+ "integrity": "sha512-tJtZBBHA6vjIAaF6EnIaq6laBBP9aq/Y3ouVJjEfoHbRBcHBAHYcMh/w8LDrk2PvIMMq8gmopa5D4V8RmbrxGw==",
206
+ "dependencies": {
207
+ "object-assign": "^4",
208
+ "vary": "^1"
209
+ },
210
+ "engines": {
211
+ "node": ">= 0.10"
212
+ },
213
+ "funding": {
214
+ "type": "opencollective",
215
+ "url": "https://opencollective.com/express"
216
+ }
217
+ },
218
+ "node_modules/cross-spawn": {
219
+ "version": "7.0.6",
220
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
221
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
222
+ "dependencies": {
223
+ "path-key": "^3.1.0",
224
+ "shebang-command": "^2.0.0",
225
+ "which": "^2.0.1"
226
+ },
227
+ "engines": {
228
+ "node": ">= 8"
229
+ }
230
+ },
231
+ "node_modules/debug": {
232
+ "version": "4.4.3",
233
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
234
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
235
+ "dependencies": {
236
+ "ms": "^2.1.3"
237
+ },
238
+ "engines": {
239
+ "node": ">=6.0"
240
+ },
241
+ "peerDependenciesMeta": {
242
+ "supports-color": {
243
+ "optional": true
244
+ }
245
+ }
246
+ },
247
+ "node_modules/depd": {
248
+ "version": "2.0.0",
249
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
250
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
251
+ "engines": {
252
+ "node": ">= 0.8"
253
+ }
254
+ },
255
+ "node_modules/dunder-proto": {
256
+ "version": "1.0.1",
257
+ "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
258
+ "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
259
+ "dependencies": {
260
+ "call-bind-apply-helpers": "^1.0.1",
261
+ "es-errors": "^1.3.0",
262
+ "gopd": "^1.2.0"
263
+ },
264
+ "engines": {
265
+ "node": ">= 0.4"
266
+ }
267
+ },
268
+ "node_modules/ee-first": {
269
+ "version": "1.1.1",
270
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
271
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
272
+ },
273
+ "node_modules/encodeurl": {
274
+ "version": "2.0.0",
275
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
276
+ "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
277
+ "engines": {
278
+ "node": ">= 0.8"
279
+ }
280
+ },
281
+ "node_modules/es-define-property": {
282
+ "version": "1.0.1",
283
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
284
+ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
285
+ "engines": {
286
+ "node": ">= 0.4"
287
+ }
288
+ },
289
+ "node_modules/es-errors": {
290
+ "version": "1.3.0",
291
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
292
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
293
+ "engines": {
294
+ "node": ">= 0.4"
295
+ }
296
+ },
297
+ "node_modules/es-object-atoms": {
298
+ "version": "1.1.1",
299
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
300
+ "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
301
+ "dependencies": {
302
+ "es-errors": "^1.3.0"
303
+ },
304
+ "engines": {
305
+ "node": ">= 0.4"
306
+ }
307
+ },
308
+ "node_modules/escape-html": {
309
+ "version": "1.0.3",
310
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
311
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
312
+ },
313
+ "node_modules/etag": {
314
+ "version": "1.8.1",
315
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
316
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
317
+ "engines": {
318
+ "node": ">= 0.6"
319
+ }
320
+ },
321
+ "node_modules/eventsource": {
322
+ "version": "3.0.7",
323
+ "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.7.tgz",
324
+ "integrity": "sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==",
325
+ "dependencies": {
326
+ "eventsource-parser": "^3.0.1"
327
+ },
328
+ "engines": {
329
+ "node": ">=18.0.0"
330
+ }
331
+ },
332
+ "node_modules/eventsource-parser": {
333
+ "version": "3.0.8",
334
+ "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.8.tgz",
335
+ "integrity": "sha512-70QWGkr4snxr0OXLRWsFLeRBIRPuQOvt4s8QYjmUlmlkyTZkRqS7EDVRZtzU3TiyDbXSzaOeF0XUKy8PchzukQ==",
336
+ "engines": {
337
+ "node": ">=18.0.0"
338
+ }
339
+ },
340
+ "node_modules/express": {
341
+ "version": "5.2.1",
342
+ "resolved": "https://registry.npmjs.org/express/-/express-5.2.1.tgz",
343
+ "integrity": "sha512-hIS4idWWai69NezIdRt2xFVofaF4j+6INOpJlVOLDO8zXGpUVEVzIYk12UUi2JzjEzWL3IOAxcTubgz9Po0yXw==",
344
+ "dependencies": {
345
+ "accepts": "^2.0.0",
346
+ "body-parser": "^2.2.1",
347
+ "content-disposition": "^1.0.0",
348
+ "content-type": "^1.0.5",
349
+ "cookie": "^0.7.1",
350
+ "cookie-signature": "^1.2.1",
351
+ "debug": "^4.4.0",
352
+ "depd": "^2.0.0",
353
+ "encodeurl": "^2.0.0",
354
+ "escape-html": "^1.0.3",
355
+ "etag": "^1.8.1",
356
+ "finalhandler": "^2.1.0",
357
+ "fresh": "^2.0.0",
358
+ "http-errors": "^2.0.0",
359
+ "merge-descriptors": "^2.0.0",
360
+ "mime-types": "^3.0.0",
361
+ "on-finished": "^2.4.1",
362
+ "once": "^1.4.0",
363
+ "parseurl": "^1.3.3",
364
+ "proxy-addr": "^2.0.7",
365
+ "qs": "^6.14.0",
366
+ "range-parser": "^1.2.1",
367
+ "router": "^2.2.0",
368
+ "send": "^1.1.0",
369
+ "serve-static": "^2.2.0",
370
+ "statuses": "^2.0.1",
371
+ "type-is": "^2.0.1",
372
+ "vary": "^1.1.2"
373
+ },
374
+ "engines": {
375
+ "node": ">= 18"
376
+ },
377
+ "funding": {
378
+ "type": "opencollective",
379
+ "url": "https://opencollective.com/express"
380
+ }
381
+ },
382
+ "node_modules/express-rate-limit": {
383
+ "version": "8.5.1",
384
+ "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-8.5.1.tgz",
385
+ "integrity": "sha512-5O6KYmyJEpuPJV5hNTXKbAHWRqrzyu+OI3vUnSd2kXFubIVpG7ezpgxQy76Zo5GQZtrQBg86hF+CM/NX+cioiQ==",
386
+ "dependencies": {
387
+ "ip-address": "^10.2.0"
388
+ },
389
+ "engines": {
390
+ "node": ">= 16"
391
+ },
392
+ "funding": {
393
+ "url": "https://github.com/sponsors/express-rate-limit"
394
+ },
395
+ "peerDependencies": {
396
+ "express": ">= 4.11"
397
+ }
398
+ },
399
+ "node_modules/fast-deep-equal": {
400
+ "version": "3.1.3",
401
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
402
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
403
+ },
404
+ "node_modules/fast-uri": {
405
+ "version": "3.1.2",
406
+ "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.2.tgz",
407
+ "integrity": "sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==",
408
+ "funding": [
409
+ {
410
+ "type": "github",
411
+ "url": "https://github.com/sponsors/fastify"
412
+ },
413
+ {
414
+ "type": "opencollective",
415
+ "url": "https://opencollective.com/fastify"
416
+ }
417
+ ]
418
+ },
419
+ "node_modules/finalhandler": {
420
+ "version": "2.1.1",
421
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz",
422
+ "integrity": "sha512-S8KoZgRZN+a5rNwqTxlZZePjT/4cnm0ROV70LedRHZ0p8u9fRID0hJUZQpkKLzro8LfmC8sx23bY6tVNxv8pQA==",
423
+ "dependencies": {
424
+ "debug": "^4.4.0",
425
+ "encodeurl": "^2.0.0",
426
+ "escape-html": "^1.0.3",
427
+ "on-finished": "^2.4.1",
428
+ "parseurl": "^1.3.3",
429
+ "statuses": "^2.0.1"
430
+ },
431
+ "engines": {
432
+ "node": ">= 18.0.0"
433
+ },
434
+ "funding": {
435
+ "type": "opencollective",
436
+ "url": "https://opencollective.com/express"
437
+ }
438
+ },
439
+ "node_modules/forwarded": {
440
+ "version": "0.2.0",
441
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
442
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
443
+ "engines": {
444
+ "node": ">= 0.6"
445
+ }
446
+ },
447
+ "node_modules/fresh": {
448
+ "version": "2.0.0",
449
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-2.0.0.tgz",
450
+ "integrity": "sha512-Rx/WycZ60HOaqLKAi6cHRKKI7zxWbJ31MhntmtwMoaTeF7XFH9hhBp8vITaMidfljRQ6eYWCKkaTK+ykVJHP2A==",
451
+ "engines": {
452
+ "node": ">= 0.8"
453
+ }
454
+ },
455
+ "node_modules/function-bind": {
456
+ "version": "1.1.2",
457
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
458
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
459
+ "funding": {
460
+ "url": "https://github.com/sponsors/ljharb"
461
+ }
462
+ },
463
+ "node_modules/get-intrinsic": {
464
+ "version": "1.3.0",
465
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
466
+ "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
467
+ "dependencies": {
468
+ "call-bind-apply-helpers": "^1.0.2",
469
+ "es-define-property": "^1.0.1",
470
+ "es-errors": "^1.3.0",
471
+ "es-object-atoms": "^1.1.1",
472
+ "function-bind": "^1.1.2",
473
+ "get-proto": "^1.0.1",
474
+ "gopd": "^1.2.0",
475
+ "has-symbols": "^1.1.0",
476
+ "hasown": "^2.0.2",
477
+ "math-intrinsics": "^1.1.0"
478
+ },
479
+ "engines": {
480
+ "node": ">= 0.4"
481
+ },
482
+ "funding": {
483
+ "url": "https://github.com/sponsors/ljharb"
484
+ }
485
+ },
486
+ "node_modules/get-proto": {
487
+ "version": "1.0.1",
488
+ "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
489
+ "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
490
+ "dependencies": {
491
+ "dunder-proto": "^1.0.1",
492
+ "es-object-atoms": "^1.0.0"
493
+ },
494
+ "engines": {
495
+ "node": ">= 0.4"
496
+ }
497
+ },
498
+ "node_modules/gopd": {
499
+ "version": "1.2.0",
500
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
501
+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
502
+ "engines": {
503
+ "node": ">= 0.4"
504
+ },
505
+ "funding": {
506
+ "url": "https://github.com/sponsors/ljharb"
507
+ }
508
+ },
509
+ "node_modules/has-symbols": {
510
+ "version": "1.1.0",
511
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
512
+ "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
513
+ "engines": {
514
+ "node": ">= 0.4"
515
+ },
516
+ "funding": {
517
+ "url": "https://github.com/sponsors/ljharb"
518
+ }
519
+ },
520
+ "node_modules/hasown": {
521
+ "version": "2.0.3",
522
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.3.tgz",
523
+ "integrity": "sha512-ej4AhfhfL2Q2zpMmLo7U1Uv9+PyhIZpgQLGT1F9miIGmiCJIoCgSmczFdrc97mWT4kVY72KA+WnnhJ5pghSvSg==",
524
+ "dependencies": {
525
+ "function-bind": "^1.1.2"
526
+ },
527
+ "engines": {
528
+ "node": ">= 0.4"
529
+ }
530
+ },
531
+ "node_modules/hono": {
532
+ "version": "4.12.18",
533
+ "resolved": "https://registry.npmjs.org/hono/-/hono-4.12.18.tgz",
534
+ "integrity": "sha512-RWzP96k/yv0PQfyXnWjs6zot20TqfpfsNXhOnev8d1InAxubW93L11/oNUc3tQqn2G0bSdAOBpX+2uDFHV7kdQ==",
535
+ "engines": {
536
+ "node": ">=16.9.0"
537
+ }
538
+ },
539
+ "node_modules/http-errors": {
540
+ "version": "2.0.1",
541
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz",
542
+ "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==",
543
+ "dependencies": {
544
+ "depd": "~2.0.0",
545
+ "inherits": "~2.0.4",
546
+ "setprototypeof": "~1.2.0",
547
+ "statuses": "~2.0.2",
548
+ "toidentifier": "~1.0.1"
549
+ },
550
+ "engines": {
551
+ "node": ">= 0.8"
552
+ },
553
+ "funding": {
554
+ "type": "opencollective",
555
+ "url": "https://opencollective.com/express"
556
+ }
557
+ },
558
+ "node_modules/iconv-lite": {
559
+ "version": "0.7.2",
560
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.2.tgz",
561
+ "integrity": "sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==",
562
+ "dependencies": {
563
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
564
+ },
565
+ "engines": {
566
+ "node": ">=0.10.0"
567
+ },
568
+ "funding": {
569
+ "type": "opencollective",
570
+ "url": "https://opencollective.com/express"
571
+ }
572
+ },
573
+ "node_modules/inherits": {
574
+ "version": "2.0.4",
575
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
576
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
577
+ },
578
+ "node_modules/ip-address": {
579
+ "version": "10.2.0",
580
+ "resolved": "https://registry.npmjs.org/ip-address/-/ip-address-10.2.0.tgz",
581
+ "integrity": "sha512-/+S6j4E9AHvW9SWMSEY9Xfy66O5PWvVEJ08O0y5JGyEKQpojb0K0GKpz/v5HJ/G0vi3D2sjGK78119oXZeE0qA==",
582
+ "engines": {
583
+ "node": ">= 12"
584
+ }
585
+ },
586
+ "node_modules/ipaddr.js": {
587
+ "version": "1.9.1",
588
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
589
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
590
+ "engines": {
591
+ "node": ">= 0.10"
592
+ }
593
+ },
594
+ "node_modules/is-promise": {
595
+ "version": "4.0.0",
596
+ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz",
597
+ "integrity": "sha512-hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ=="
598
+ },
599
+ "node_modules/isexe": {
600
+ "version": "2.0.0",
601
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
602
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
603
+ },
604
+ "node_modules/jose": {
605
+ "version": "6.2.3",
606
+ "resolved": "https://registry.npmjs.org/jose/-/jose-6.2.3.tgz",
607
+ "integrity": "sha512-YYVDInQKFJfR/xa3ojUTl8c2KoTwiL1R5Wg9YCydwH0x0B9grbzlg5HC7mMjCtUJjbQ/YnGEZIhI5tCgfTb4Hw==",
608
+ "funding": {
609
+ "url": "https://github.com/sponsors/panva"
610
+ }
611
+ },
612
+ "node_modules/json-schema-traverse": {
613
+ "version": "1.0.0",
614
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
615
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
616
+ },
617
+ "node_modules/json-schema-typed": {
618
+ "version": "8.0.2",
619
+ "resolved": "https://registry.npmjs.org/json-schema-typed/-/json-schema-typed-8.0.2.tgz",
620
+ "integrity": "sha512-fQhoXdcvc3V28x7C7BMs4P5+kNlgUURe2jmUT1T//oBRMDrqy1QPelJimwZGo7Hg9VPV3EQV5Bnq4hbFy2vetA=="
621
+ },
622
+ "node_modules/math-intrinsics": {
623
+ "version": "1.1.0",
624
+ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
625
+ "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
626
+ "engines": {
627
+ "node": ">= 0.4"
628
+ }
629
+ },
630
+ "node_modules/media-typer": {
631
+ "version": "1.1.0",
632
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-1.1.0.tgz",
633
+ "integrity": "sha512-aisnrDP4GNe06UcKFnV5bfMNPBUw4jsLGaWwWfnH3v02GnBuXX2MCVn5RbrWo0j3pczUilYblq7fQ7Nw2t5XKw==",
634
+ "engines": {
635
+ "node": ">= 0.8"
636
+ }
637
+ },
638
+ "node_modules/merge-descriptors": {
639
+ "version": "2.0.0",
640
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-2.0.0.tgz",
641
+ "integrity": "sha512-Snk314V5ayFLhp3fkUREub6WtjBfPdCPY1Ln8/8munuLuiYhsABgBVWsozAG+MWMbVEvcdcpbi9R7ww22l9Q3g==",
642
+ "engines": {
643
+ "node": ">=18"
644
+ },
645
+ "funding": {
646
+ "url": "https://github.com/sponsors/sindresorhus"
647
+ }
648
+ },
649
+ "node_modules/mime-db": {
650
+ "version": "1.54.0",
651
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.54.0.tgz",
652
+ "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==",
653
+ "engines": {
654
+ "node": ">= 0.6"
655
+ }
656
+ },
657
+ "node_modules/mime-types": {
658
+ "version": "3.0.2",
659
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-3.0.2.tgz",
660
+ "integrity": "sha512-Lbgzdk0h4juoQ9fCKXW4by0UJqj+nOOrI9MJ1sSj4nI8aI2eo1qmvQEie4VD1glsS250n15LsWsYtCugiStS5A==",
661
+ "dependencies": {
662
+ "mime-db": "^1.54.0"
663
+ },
664
+ "engines": {
665
+ "node": ">=18"
666
+ },
667
+ "funding": {
668
+ "type": "opencollective",
669
+ "url": "https://opencollective.com/express"
670
+ }
671
+ },
672
+ "node_modules/ms": {
673
+ "version": "2.1.3",
674
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
675
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
676
+ },
677
+ "node_modules/negotiator": {
678
+ "version": "1.0.0",
679
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-1.0.0.tgz",
680
+ "integrity": "sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==",
681
+ "engines": {
682
+ "node": ">= 0.6"
683
+ }
684
+ },
685
+ "node_modules/object-assign": {
686
+ "version": "4.1.1",
687
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
688
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
689
+ "engines": {
690
+ "node": ">=0.10.0"
691
+ }
692
+ },
693
+ "node_modules/object-inspect": {
694
+ "version": "1.13.4",
695
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
696
+ "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
697
+ "engines": {
698
+ "node": ">= 0.4"
699
+ },
700
+ "funding": {
701
+ "url": "https://github.com/sponsors/ljharb"
702
+ }
703
+ },
704
+ "node_modules/on-finished": {
705
+ "version": "2.4.1",
706
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
707
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
708
+ "dependencies": {
709
+ "ee-first": "1.1.1"
710
+ },
711
+ "engines": {
712
+ "node": ">= 0.8"
713
+ }
714
+ },
715
+ "node_modules/once": {
716
+ "version": "1.4.0",
717
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
718
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
719
+ "dependencies": {
720
+ "wrappy": "1"
721
+ }
722
+ },
723
+ "node_modules/parseurl": {
724
+ "version": "1.3.3",
725
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
726
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
727
+ "engines": {
728
+ "node": ">= 0.8"
729
+ }
730
+ },
731
+ "node_modules/path-key": {
732
+ "version": "3.1.1",
733
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
734
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
735
+ "engines": {
736
+ "node": ">=8"
737
+ }
738
+ },
739
+ "node_modules/path-to-regexp": {
740
+ "version": "8.4.2",
741
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-8.4.2.tgz",
742
+ "integrity": "sha512-qRcuIdP69NPm4qbACK+aDogI5CBDMi1jKe0ry5rSQJz8JVLsC7jV8XpiJjGRLLol3N+R5ihGYcrPLTno6pAdBA==",
743
+ "funding": {
744
+ "type": "opencollective",
745
+ "url": "https://opencollective.com/express"
746
+ }
747
+ },
748
+ "node_modules/pkce-challenge": {
749
+ "version": "5.0.1",
750
+ "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.1.tgz",
751
+ "integrity": "sha512-wQ0b/W4Fr01qtpHlqSqspcj3EhBvimsdh0KlHhH8HRZnMsEa0ea2fTULOXOS9ccQr3om+GcGRk4e+isrZWV8qQ==",
752
+ "engines": {
753
+ "node": ">=16.20.0"
754
+ }
755
+ },
756
+ "node_modules/proxy-addr": {
757
+ "version": "2.0.7",
758
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
759
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
760
+ "dependencies": {
761
+ "forwarded": "0.2.0",
762
+ "ipaddr.js": "1.9.1"
763
+ },
764
+ "engines": {
765
+ "node": ">= 0.10"
766
+ }
767
+ },
768
+ "node_modules/qs": {
769
+ "version": "6.15.1",
770
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.1.tgz",
771
+ "integrity": "sha512-6YHEFRL9mfgcAvql/XhwTvf5jKcOiiupt2FiJxHkiX1z4j7WL8J/jRHYLluORvc1XxB5rV20KoeK00gVJamspg==",
772
+ "dependencies": {
773
+ "side-channel": "^1.1.0"
774
+ },
775
+ "engines": {
776
+ "node": ">=0.6"
777
+ },
778
+ "funding": {
779
+ "url": "https://github.com/sponsors/ljharb"
780
+ }
781
+ },
782
+ "node_modules/range-parser": {
783
+ "version": "1.2.1",
784
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
785
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
786
+ "engines": {
787
+ "node": ">= 0.6"
788
+ }
789
+ },
790
+ "node_modules/raw-body": {
791
+ "version": "3.0.2",
792
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-3.0.2.tgz",
793
+ "integrity": "sha512-K5zQjDllxWkf7Z5xJdV0/B0WTNqx6vxG70zJE4N0kBs4LovmEYWJzQGxC9bS9RAKu3bgM40lrd5zoLJ12MQ5BA==",
794
+ "dependencies": {
795
+ "bytes": "~3.1.2",
796
+ "http-errors": "~2.0.1",
797
+ "iconv-lite": "~0.7.0",
798
+ "unpipe": "~1.0.0"
799
+ },
800
+ "engines": {
801
+ "node": ">= 0.10"
802
+ }
803
+ },
804
+ "node_modules/require-from-string": {
805
+ "version": "2.0.2",
806
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
807
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
808
+ "engines": {
809
+ "node": ">=0.10.0"
810
+ }
811
+ },
812
+ "node_modules/router": {
813
+ "version": "2.2.0",
814
+ "resolved": "https://registry.npmjs.org/router/-/router-2.2.0.tgz",
815
+ "integrity": "sha512-nLTrUKm2UyiL7rlhapu/Zl45FwNgkZGaCpZbIHajDYgwlJCOzLSk+cIPAnsEqV955GjILJnKbdQC1nVPz+gAYQ==",
816
+ "dependencies": {
817
+ "debug": "^4.4.0",
818
+ "depd": "^2.0.0",
819
+ "is-promise": "^4.0.0",
820
+ "parseurl": "^1.3.3",
821
+ "path-to-regexp": "^8.0.0"
822
+ },
823
+ "engines": {
824
+ "node": ">= 18"
825
+ }
826
+ },
827
+ "node_modules/safer-buffer": {
828
+ "version": "2.1.2",
829
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
830
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
831
+ },
832
+ "node_modules/send": {
833
+ "version": "1.2.1",
834
+ "resolved": "https://registry.npmjs.org/send/-/send-1.2.1.tgz",
835
+ "integrity": "sha512-1gnZf7DFcoIcajTjTwjwuDjzuz4PPcY2StKPlsGAQ1+YH20IRVrBaXSWmdjowTJ6u8Rc01PoYOGHXfP1mYcZNQ==",
836
+ "dependencies": {
837
+ "debug": "^4.4.3",
838
+ "encodeurl": "^2.0.0",
839
+ "escape-html": "^1.0.3",
840
+ "etag": "^1.8.1",
841
+ "fresh": "^2.0.0",
842
+ "http-errors": "^2.0.1",
843
+ "mime-types": "^3.0.2",
844
+ "ms": "^2.1.3",
845
+ "on-finished": "^2.4.1",
846
+ "range-parser": "^1.2.1",
847
+ "statuses": "^2.0.2"
848
+ },
849
+ "engines": {
850
+ "node": ">= 18"
851
+ },
852
+ "funding": {
853
+ "type": "opencollective",
854
+ "url": "https://opencollective.com/express"
855
+ }
856
+ },
857
+ "node_modules/serve-static": {
858
+ "version": "2.2.1",
859
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-2.2.1.tgz",
860
+ "integrity": "sha512-xRXBn0pPqQTVQiC8wyQrKs2MOlX24zQ0POGaj0kultvoOCstBQM5yvOhAVSUwOMjQtTvsPWoNCHfPGwaaQJhTw==",
861
+ "dependencies": {
862
+ "encodeurl": "^2.0.0",
863
+ "escape-html": "^1.0.3",
864
+ "parseurl": "^1.3.3",
865
+ "send": "^1.2.0"
866
+ },
867
+ "engines": {
868
+ "node": ">= 18"
869
+ },
870
+ "funding": {
871
+ "type": "opencollective",
872
+ "url": "https://opencollective.com/express"
873
+ }
874
+ },
875
+ "node_modules/setprototypeof": {
876
+ "version": "1.2.0",
877
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
878
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
879
+ },
880
+ "node_modules/shebang-command": {
881
+ "version": "2.0.0",
882
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
883
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
884
+ "dependencies": {
885
+ "shebang-regex": "^3.0.0"
886
+ },
887
+ "engines": {
888
+ "node": ">=8"
889
+ }
890
+ },
891
+ "node_modules/shebang-regex": {
892
+ "version": "3.0.0",
893
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
894
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
895
+ "engines": {
896
+ "node": ">=8"
897
+ }
898
+ },
899
+ "node_modules/side-channel": {
900
+ "version": "1.1.0",
901
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
902
+ "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
903
+ "dependencies": {
904
+ "es-errors": "^1.3.0",
905
+ "object-inspect": "^1.13.3",
906
+ "side-channel-list": "^1.0.0",
907
+ "side-channel-map": "^1.0.1",
908
+ "side-channel-weakmap": "^1.0.2"
909
+ },
910
+ "engines": {
911
+ "node": ">= 0.4"
912
+ },
913
+ "funding": {
914
+ "url": "https://github.com/sponsors/ljharb"
915
+ }
916
+ },
917
+ "node_modules/side-channel-list": {
918
+ "version": "1.0.1",
919
+ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.1.tgz",
920
+ "integrity": "sha512-mjn/0bi/oUURjc5Xl7IaWi/OJJJumuoJFQJfDDyO46+hBWsfaVM65TBHq2eoZBhzl9EchxOijpkbRC8SVBQU0w==",
921
+ "dependencies": {
922
+ "es-errors": "^1.3.0",
923
+ "object-inspect": "^1.13.4"
924
+ },
925
+ "engines": {
926
+ "node": ">= 0.4"
927
+ },
928
+ "funding": {
929
+ "url": "https://github.com/sponsors/ljharb"
930
+ }
931
+ },
932
+ "node_modules/side-channel-map": {
933
+ "version": "1.0.1",
934
+ "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
935
+ "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
936
+ "dependencies": {
937
+ "call-bound": "^1.0.2",
938
+ "es-errors": "^1.3.0",
939
+ "get-intrinsic": "^1.2.5",
940
+ "object-inspect": "^1.13.3"
941
+ },
942
+ "engines": {
943
+ "node": ">= 0.4"
944
+ },
945
+ "funding": {
946
+ "url": "https://github.com/sponsors/ljharb"
947
+ }
948
+ },
949
+ "node_modules/side-channel-weakmap": {
950
+ "version": "1.0.2",
951
+ "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
952
+ "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
953
+ "dependencies": {
954
+ "call-bound": "^1.0.2",
955
+ "es-errors": "^1.3.0",
956
+ "get-intrinsic": "^1.2.5",
957
+ "object-inspect": "^1.13.3",
958
+ "side-channel-map": "^1.0.1"
959
+ },
960
+ "engines": {
961
+ "node": ">= 0.4"
962
+ },
963
+ "funding": {
964
+ "url": "https://github.com/sponsors/ljharb"
965
+ }
966
+ },
967
+ "node_modules/statuses": {
968
+ "version": "2.0.2",
969
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz",
970
+ "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==",
971
+ "engines": {
972
+ "node": ">= 0.8"
973
+ }
974
+ },
975
+ "node_modules/toidentifier": {
976
+ "version": "1.0.1",
977
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
978
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
979
+ "engines": {
980
+ "node": ">=0.6"
981
+ }
982
+ },
983
+ "node_modules/type-is": {
984
+ "version": "2.0.1",
985
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-2.0.1.tgz",
986
+ "integrity": "sha512-OZs6gsjF4vMp32qrCbiVSkrFmXtG/AZhY3t0iAMrMBiAZyV9oALtXO8hsrHbMXF9x6L3grlFuwW2oAz7cav+Gw==",
987
+ "dependencies": {
988
+ "content-type": "^1.0.5",
989
+ "media-typer": "^1.1.0",
990
+ "mime-types": "^3.0.0"
991
+ },
992
+ "engines": {
993
+ "node": ">= 0.6"
994
+ }
995
+ },
996
+ "node_modules/unpipe": {
997
+ "version": "1.0.0",
998
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
999
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
1000
+ "engines": {
1001
+ "node": ">= 0.8"
1002
+ }
1003
+ },
1004
+ "node_modules/vary": {
1005
+ "version": "1.1.2",
1006
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
1007
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
1008
+ "engines": {
1009
+ "node": ">= 0.8"
1010
+ }
1011
+ },
1012
+ "node_modules/which": {
1013
+ "version": "2.0.2",
1014
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
1015
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
1016
+ "dependencies": {
1017
+ "isexe": "^2.0.0"
1018
+ },
1019
+ "bin": {
1020
+ "node-which": "bin/node-which"
1021
+ },
1022
+ "engines": {
1023
+ "node": ">= 8"
1024
+ }
1025
+ },
1026
+ "node_modules/wrappy": {
1027
+ "version": "1.0.2",
1028
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1029
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
1030
+ },
1031
+ "node_modules/zod": {
1032
+ "version": "3.25.76",
1033
+ "resolved": "https://registry.npmjs.org/zod/-/zod-3.25.76.tgz",
1034
+ "integrity": "sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==",
1035
+ "funding": {
1036
+ "url": "https://github.com/sponsors/colinhacks"
1037
+ }
1038
+ },
1039
+ "node_modules/zod-to-json-schema": {
1040
+ "version": "3.25.2",
1041
+ "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.25.2.tgz",
1042
+ "integrity": "sha512-O/PgfnpT1xKSDeQYSCfRI5Gy3hPf91mKVDuYLUHZJMiDFptvP41MSnWofm8dnCm0256ZNfZIM7DSzuSMAFnjHA==",
1043
+ "peerDependencies": {
1044
+ "zod": "^3.25.28 || ^4"
1045
+ }
1046
+ }
1047
+ }
1048
+ }