noodleseed-cli 0.1.15 → 0.1.17

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 (561) hide show
  1. package/dist/cli.js +3 -3
  2. package/dist/cli.js.map +1 -1
  3. package/dist/project.d.ts +1 -1
  4. package/dist/project.d.ts.map +1 -1
  5. package/dist/project.js +103 -3
  6. package/dist/project.js.map +1 -1
  7. package/node_modules/@modelcontextprotocol/sdk/package.json +0 -2
  8. package/node_modules/@noodle-borg/authoring/dist/index.d.ts +11 -3
  9. package/node_modules/@noodle-borg/authoring/dist/index.d.ts.map +1 -1
  10. package/node_modules/@noodle-borg/authoring/dist/index.js +2 -1
  11. package/node_modules/@noodle-borg/authoring/dist/index.js.map +1 -1
  12. package/node_modules/@noodle-borg/compiler/dist/artifact/types.d.ts +8 -1
  13. package/node_modules/@noodle-borg/compiler/dist/artifact/types.d.ts.map +1 -1
  14. package/node_modules/@noodle-borg/compiler/dist/compile.d.ts.map +1 -1
  15. package/node_modules/@noodle-borg/compiler/dist/compile.js +30 -2
  16. package/node_modules/@noodle-borg/compiler/dist/compile.js.map +1 -1
  17. package/node_modules/@noodle-borg/compiler/dist/index.d.ts +1 -0
  18. package/node_modules/@noodle-borg/compiler/dist/index.d.ts.map +1 -1
  19. package/node_modules/@noodle-borg/compiler/dist/index.js +1 -0
  20. package/node_modules/@noodle-borg/compiler/dist/index.js.map +1 -1
  21. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts +14869 -2
  22. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts.map +1 -1
  23. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js +16 -2
  24. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js.map +1 -1
  25. package/node_modules/@noodle-borg/compiler/dist/widget-ui.d.ts +95 -0
  26. package/node_modules/@noodle-borg/compiler/dist/widget-ui.d.ts.map +1 -0
  27. package/node_modules/@noodle-borg/compiler/dist/widget-ui.js +177 -0
  28. package/node_modules/@noodle-borg/compiler/dist/widget-ui.js.map +1 -0
  29. package/node_modules/@noodle-borg/protocol/dist/widget/bootstrap.d.ts.map +1 -1
  30. package/node_modules/@noodle-borg/protocol/dist/widget/bootstrap.js +60 -3
  31. package/node_modules/@noodle-borg/protocol/dist/widget/bootstrap.js.map +1 -1
  32. package/node_modules/@noodle-borg/service/package.json +0 -1
  33. package/node_modules/cors/package.json +0 -1
  34. package/package.json +1 -56
  35. package/node_modules/@noodle-borg/compiler/node_modules/.bin/yaml +0 -22
  36. package/node_modules/@noodle-borg/connector-defs/node_modules/.bin/yaml +0 -22
  37. package/node_modules/accepts/HISTORY.md +0 -250
  38. package/node_modules/accepts/LICENSE +0 -23
  39. package/node_modules/accepts/README.md +0 -140
  40. package/node_modules/accepts/index.js +0 -238
  41. package/node_modules/accepts/package.json +0 -47
  42. package/node_modules/body-parser/LICENSE +0 -23
  43. package/node_modules/body-parser/README.md +0 -494
  44. package/node_modules/body-parser/index.js +0 -71
  45. package/node_modules/body-parser/lib/read.js +0 -247
  46. package/node_modules/body-parser/lib/types/json.js +0 -158
  47. package/node_modules/body-parser/lib/types/raw.js +0 -42
  48. package/node_modules/body-parser/lib/types/text.js +0 -36
  49. package/node_modules/body-parser/lib/types/urlencoded.js +0 -142
  50. package/node_modules/body-parser/lib/utils.js +0 -98
  51. package/node_modules/body-parser/package.json +0 -52
  52. package/node_modules/call-bind-apply-helpers/.eslintrc +0 -17
  53. package/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +0 -12
  54. package/node_modules/call-bind-apply-helpers/.nycrc +0 -9
  55. package/node_modules/call-bind-apply-helpers/CHANGELOG.md +0 -30
  56. package/node_modules/call-bind-apply-helpers/LICENSE +0 -21
  57. package/node_modules/call-bind-apply-helpers/README.md +0 -62
  58. package/node_modules/call-bind-apply-helpers/actualApply.d.ts +0 -1
  59. package/node_modules/call-bind-apply-helpers/actualApply.js +0 -10
  60. package/node_modules/call-bind-apply-helpers/applyBind.d.ts +0 -19
  61. package/node_modules/call-bind-apply-helpers/applyBind.js +0 -10
  62. package/node_modules/call-bind-apply-helpers/functionApply.d.ts +0 -1
  63. package/node_modules/call-bind-apply-helpers/functionApply.js +0 -4
  64. package/node_modules/call-bind-apply-helpers/functionCall.d.ts +0 -1
  65. package/node_modules/call-bind-apply-helpers/functionCall.js +0 -4
  66. package/node_modules/call-bind-apply-helpers/index.d.ts +0 -64
  67. package/node_modules/call-bind-apply-helpers/index.js +0 -15
  68. package/node_modules/call-bind-apply-helpers/package.json +0 -85
  69. package/node_modules/call-bind-apply-helpers/reflectApply.d.ts +0 -3
  70. package/node_modules/call-bind-apply-helpers/reflectApply.js +0 -4
  71. package/node_modules/call-bind-apply-helpers/test/index.js +0 -63
  72. package/node_modules/call-bind-apply-helpers/tsconfig.json +0 -9
  73. package/node_modules/call-bound/.eslintrc +0 -13
  74. package/node_modules/call-bound/.github/FUNDING.yml +0 -12
  75. package/node_modules/call-bound/.nycrc +0 -9
  76. package/node_modules/call-bound/CHANGELOG.md +0 -42
  77. package/node_modules/call-bound/LICENSE +0 -21
  78. package/node_modules/call-bound/README.md +0 -53
  79. package/node_modules/call-bound/index.d.ts +0 -94
  80. package/node_modules/call-bound/index.js +0 -19
  81. package/node_modules/call-bound/package.json +0 -99
  82. package/node_modules/call-bound/test/index.js +0 -61
  83. package/node_modules/call-bound/tsconfig.json +0 -10
  84. package/node_modules/content-disposition/LICENSE +0 -22
  85. package/node_modules/content-disposition/README.md +0 -141
  86. package/node_modules/content-disposition/index.js +0 -536
  87. package/node_modules/content-disposition/package.json +0 -40
  88. package/node_modules/cookie/LICENSE +0 -24
  89. package/node_modules/cookie/README.md +0 -317
  90. package/node_modules/cookie/SECURITY.md +0 -25
  91. package/node_modules/cookie/index.js +0 -335
  92. package/node_modules/cookie/package.json +0 -44
  93. package/node_modules/cookie-signature/History.md +0 -70
  94. package/node_modules/cookie-signature/LICENSE +0 -22
  95. package/node_modules/cookie-signature/Readme.md +0 -23
  96. package/node_modules/cookie-signature/index.js +0 -47
  97. package/node_modules/cookie-signature/package.json +0 -28
  98. package/node_modules/cross-spawn/node_modules/.bin/node-which +0 -22
  99. package/node_modules/debug/LICENSE +0 -20
  100. package/node_modules/debug/README.md +0 -481
  101. package/node_modules/debug/package.json +0 -64
  102. package/node_modules/debug/src/browser.js +0 -272
  103. package/node_modules/debug/src/common.js +0 -292
  104. package/node_modules/debug/src/index.js +0 -10
  105. package/node_modules/debug/src/node.js +0 -263
  106. package/node_modules/dunder-proto/.eslintrc +0 -5
  107. package/node_modules/dunder-proto/.github/FUNDING.yml +0 -12
  108. package/node_modules/dunder-proto/.nycrc +0 -13
  109. package/node_modules/dunder-proto/CHANGELOG.md +0 -24
  110. package/node_modules/dunder-proto/LICENSE +0 -21
  111. package/node_modules/dunder-proto/README.md +0 -54
  112. package/node_modules/dunder-proto/get.d.ts +0 -5
  113. package/node_modules/dunder-proto/get.js +0 -30
  114. package/node_modules/dunder-proto/package.json +0 -76
  115. package/node_modules/dunder-proto/set.d.ts +0 -5
  116. package/node_modules/dunder-proto/set.js +0 -35
  117. package/node_modules/dunder-proto/test/get.js +0 -34
  118. package/node_modules/dunder-proto/test/index.js +0 -4
  119. package/node_modules/dunder-proto/test/set.js +0 -50
  120. package/node_modules/dunder-proto/tsconfig.json +0 -9
  121. package/node_modules/ee-first/LICENSE +0 -22
  122. package/node_modules/ee-first/README.md +0 -80
  123. package/node_modules/ee-first/index.js +0 -95
  124. package/node_modules/ee-first/package.json +0 -29
  125. package/node_modules/encodeurl/LICENSE +0 -22
  126. package/node_modules/encodeurl/README.md +0 -109
  127. package/node_modules/encodeurl/index.js +0 -60
  128. package/node_modules/encodeurl/package.json +0 -40
  129. package/node_modules/es-define-property/.eslintrc +0 -13
  130. package/node_modules/es-define-property/.github/FUNDING.yml +0 -12
  131. package/node_modules/es-define-property/.nycrc +0 -9
  132. package/node_modules/es-define-property/CHANGELOG.md +0 -29
  133. package/node_modules/es-define-property/LICENSE +0 -21
  134. package/node_modules/es-define-property/README.md +0 -49
  135. package/node_modules/es-define-property/index.d.ts +0 -3
  136. package/node_modules/es-define-property/index.js +0 -14
  137. package/node_modules/es-define-property/package.json +0 -81
  138. package/node_modules/es-define-property/test/index.js +0 -56
  139. package/node_modules/es-define-property/tsconfig.json +0 -10
  140. package/node_modules/es-errors/.eslintrc +0 -5
  141. package/node_modules/es-errors/.github/FUNDING.yml +0 -12
  142. package/node_modules/es-errors/CHANGELOG.md +0 -40
  143. package/node_modules/es-errors/LICENSE +0 -21
  144. package/node_modules/es-errors/README.md +0 -55
  145. package/node_modules/es-errors/eval.d.ts +0 -3
  146. package/node_modules/es-errors/eval.js +0 -4
  147. package/node_modules/es-errors/index.d.ts +0 -3
  148. package/node_modules/es-errors/index.js +0 -4
  149. package/node_modules/es-errors/package.json +0 -80
  150. package/node_modules/es-errors/range.d.ts +0 -3
  151. package/node_modules/es-errors/range.js +0 -4
  152. package/node_modules/es-errors/ref.d.ts +0 -3
  153. package/node_modules/es-errors/ref.js +0 -4
  154. package/node_modules/es-errors/syntax.d.ts +0 -3
  155. package/node_modules/es-errors/syntax.js +0 -4
  156. package/node_modules/es-errors/test/index.js +0 -19
  157. package/node_modules/es-errors/tsconfig.json +0 -49
  158. package/node_modules/es-errors/type.d.ts +0 -3
  159. package/node_modules/es-errors/type.js +0 -4
  160. package/node_modules/es-errors/uri.d.ts +0 -3
  161. package/node_modules/es-errors/uri.js +0 -4
  162. package/node_modules/es-object-atoms/.eslintrc +0 -16
  163. package/node_modules/es-object-atoms/.github/FUNDING.yml +0 -12
  164. package/node_modules/es-object-atoms/CHANGELOG.md +0 -44
  165. package/node_modules/es-object-atoms/LICENSE +0 -21
  166. package/node_modules/es-object-atoms/README.md +0 -63
  167. package/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +0 -3
  168. package/node_modules/es-object-atoms/RequireObjectCoercible.js +0 -11
  169. package/node_modules/es-object-atoms/ToObject.d.ts +0 -7
  170. package/node_modules/es-object-atoms/ToObject.js +0 -10
  171. package/node_modules/es-object-atoms/index.d.ts +0 -3
  172. package/node_modules/es-object-atoms/index.js +0 -4
  173. package/node_modules/es-object-atoms/isObject.d.ts +0 -3
  174. package/node_modules/es-object-atoms/isObject.js +0 -6
  175. package/node_modules/es-object-atoms/package.json +0 -79
  176. package/node_modules/es-object-atoms/test/index.js +0 -38
  177. package/node_modules/es-object-atoms/tsconfig.json +0 -7
  178. package/node_modules/escape-html/LICENSE +0 -24
  179. package/node_modules/escape-html/Readme.md +0 -43
  180. package/node_modules/escape-html/index.js +0 -78
  181. package/node_modules/escape-html/package.json +0 -24
  182. package/node_modules/etag/HISTORY.md +0 -83
  183. package/node_modules/etag/LICENSE +0 -22
  184. package/node_modules/etag/README.md +0 -159
  185. package/node_modules/etag/index.js +0 -131
  186. package/node_modules/etag/package.json +0 -47
  187. package/node_modules/express/LICENSE +0 -24
  188. package/node_modules/express/Readme.md +0 -276
  189. package/node_modules/express/index.js +0 -11
  190. package/node_modules/express/lib/application.js +0 -631
  191. package/node_modules/express/lib/express.js +0 -81
  192. package/node_modules/express/lib/request.js +0 -514
  193. package/node_modules/express/lib/response.js +0 -1053
  194. package/node_modules/express/lib/utils.js +0 -271
  195. package/node_modules/express/lib/view.js +0 -205
  196. package/node_modules/express/package.json +0 -99
  197. package/node_modules/express-rate-limit/dist/index.cjs +0 -1016
  198. package/node_modules/express-rate-limit/dist/index.d.cts +0 -672
  199. package/node_modules/express-rate-limit/dist/index.d.mts +0 -672
  200. package/node_modules/express-rate-limit/dist/index.d.ts +0 -672
  201. package/node_modules/express-rate-limit/dist/index.mjs +0 -986
  202. package/node_modules/express-rate-limit/license.md +0 -20
  203. package/node_modules/express-rate-limit/package.json +0 -113
  204. package/node_modules/express-rate-limit/readme.md +0 -139
  205. package/node_modules/express-rate-limit/tsconfig.json +0 -8
  206. package/node_modules/finalhandler/HISTORY.md +0 -239
  207. package/node_modules/finalhandler/LICENSE +0 -22
  208. package/node_modules/finalhandler/README.md +0 -150
  209. package/node_modules/finalhandler/index.js +0 -293
  210. package/node_modules/finalhandler/package.json +0 -47
  211. package/node_modules/forwarded/HISTORY.md +0 -21
  212. package/node_modules/forwarded/LICENSE +0 -22
  213. package/node_modules/forwarded/README.md +0 -57
  214. package/node_modules/forwarded/index.js +0 -90
  215. package/node_modules/forwarded/package.json +0 -45
  216. package/node_modules/fresh/HISTORY.md +0 -80
  217. package/node_modules/fresh/LICENSE +0 -23
  218. package/node_modules/fresh/README.md +0 -117
  219. package/node_modules/fresh/index.js +0 -136
  220. package/node_modules/fresh/package.json +0 -46
  221. package/node_modules/function-bind/.eslintrc +0 -21
  222. package/node_modules/function-bind/.github/FUNDING.yml +0 -12
  223. package/node_modules/function-bind/.github/SECURITY.md +0 -3
  224. package/node_modules/function-bind/.nycrc +0 -13
  225. package/node_modules/function-bind/CHANGELOG.md +0 -136
  226. package/node_modules/function-bind/LICENSE +0 -20
  227. package/node_modules/function-bind/README.md +0 -46
  228. package/node_modules/function-bind/implementation.js +0 -84
  229. package/node_modules/function-bind/index.js +0 -5
  230. package/node_modules/function-bind/package.json +0 -87
  231. package/node_modules/function-bind/test/.eslintrc +0 -9
  232. package/node_modules/function-bind/test/index.js +0 -252
  233. package/node_modules/get-intrinsic/.eslintrc +0 -42
  234. package/node_modules/get-intrinsic/.github/FUNDING.yml +0 -12
  235. package/node_modules/get-intrinsic/.nycrc +0 -9
  236. package/node_modules/get-intrinsic/CHANGELOG.md +0 -186
  237. package/node_modules/get-intrinsic/LICENSE +0 -21
  238. package/node_modules/get-intrinsic/README.md +0 -71
  239. package/node_modules/get-intrinsic/index.js +0 -378
  240. package/node_modules/get-intrinsic/package.json +0 -97
  241. package/node_modules/get-intrinsic/test/GetIntrinsic.js +0 -274
  242. package/node_modules/get-proto/.eslintrc +0 -10
  243. package/node_modules/get-proto/.github/FUNDING.yml +0 -12
  244. package/node_modules/get-proto/.nycrc +0 -9
  245. package/node_modules/get-proto/CHANGELOG.md +0 -21
  246. package/node_modules/get-proto/LICENSE +0 -21
  247. package/node_modules/get-proto/Object.getPrototypeOf.d.ts +0 -5
  248. package/node_modules/get-proto/Object.getPrototypeOf.js +0 -6
  249. package/node_modules/get-proto/README.md +0 -50
  250. package/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +0 -3
  251. package/node_modules/get-proto/Reflect.getPrototypeOf.js +0 -4
  252. package/node_modules/get-proto/index.d.ts +0 -5
  253. package/node_modules/get-proto/index.js +0 -27
  254. package/node_modules/get-proto/package.json +0 -81
  255. package/node_modules/get-proto/test/index.js +0 -68
  256. package/node_modules/get-proto/tsconfig.json +0 -9
  257. package/node_modules/gopd/.eslintrc +0 -16
  258. package/node_modules/gopd/.github/FUNDING.yml +0 -12
  259. package/node_modules/gopd/CHANGELOG.md +0 -45
  260. package/node_modules/gopd/LICENSE +0 -21
  261. package/node_modules/gopd/README.md +0 -40
  262. package/node_modules/gopd/gOPD.d.ts +0 -1
  263. package/node_modules/gopd/gOPD.js +0 -4
  264. package/node_modules/gopd/index.d.ts +0 -5
  265. package/node_modules/gopd/index.js +0 -15
  266. package/node_modules/gopd/package.json +0 -77
  267. package/node_modules/gopd/test/index.js +0 -36
  268. package/node_modules/gopd/tsconfig.json +0 -9
  269. package/node_modules/has-symbols/.eslintrc +0 -11
  270. package/node_modules/has-symbols/.github/FUNDING.yml +0 -12
  271. package/node_modules/has-symbols/.nycrc +0 -9
  272. package/node_modules/has-symbols/CHANGELOG.md +0 -91
  273. package/node_modules/has-symbols/LICENSE +0 -21
  274. package/node_modules/has-symbols/README.md +0 -46
  275. package/node_modules/has-symbols/index.d.ts +0 -3
  276. package/node_modules/has-symbols/index.js +0 -14
  277. package/node_modules/has-symbols/package.json +0 -111
  278. package/node_modules/has-symbols/shams.d.ts +0 -3
  279. package/node_modules/has-symbols/shams.js +0 -45
  280. package/node_modules/has-symbols/test/index.js +0 -22
  281. package/node_modules/has-symbols/test/shams/core-js.js +0 -29
  282. package/node_modules/has-symbols/test/shams/get-own-property-symbols.js +0 -29
  283. package/node_modules/has-symbols/test/tests.js +0 -58
  284. package/node_modules/has-symbols/tsconfig.json +0 -10
  285. package/node_modules/hasown/.github/FUNDING.yml +0 -12
  286. package/node_modules/hasown/.nycrc +0 -13
  287. package/node_modules/hasown/CHANGELOG.md +0 -58
  288. package/node_modules/hasown/LICENSE +0 -21
  289. package/node_modules/hasown/README.md +0 -40
  290. package/node_modules/hasown/eslint.config.mjs +0 -6
  291. package/node_modules/hasown/index.d.ts +0 -3
  292. package/node_modules/hasown/index.js +0 -8
  293. package/node_modules/hasown/package.json +0 -91
  294. package/node_modules/hasown/tsconfig.json +0 -6
  295. package/node_modules/ip-address/LICENSE +0 -19
  296. package/node_modules/ip-address/README.md +0 -278
  297. package/node_modules/ip-address/dist/address-error.d.ts +0 -4
  298. package/node_modules/ip-address/dist/address-error.js +0 -12
  299. package/node_modules/ip-address/dist/address-error.js.map +0 -1
  300. package/node_modules/ip-address/dist/common.d.ts +0 -20
  301. package/node_modules/ip-address/dist/common.js +0 -67
  302. package/node_modules/ip-address/dist/common.js.map +0 -1
  303. package/node_modules/ip-address/dist/ip-address.d.ts +0 -7
  304. package/node_modules/ip-address/dist/ip-address.js +0 -35
  305. package/node_modules/ip-address/dist/ip-address.js.map +0 -1
  306. package/node_modules/ip-address/dist/ipv4.d.ts +0 -267
  307. package/node_modules/ip-address/dist/ipv4.js +0 -485
  308. package/node_modules/ip-address/dist/ipv4.js.map +0 -1
  309. package/node_modules/ip-address/dist/ipv6.d.ts +0 -489
  310. package/node_modules/ip-address/dist/ipv6.js +0 -1217
  311. package/node_modules/ip-address/dist/ipv6.js.map +0 -1
  312. package/node_modules/ip-address/dist/v4/constants.d.ts +0 -4
  313. package/node_modules/ip-address/dist/v4/constants.js +0 -8
  314. package/node_modules/ip-address/dist/v4/constants.js.map +0 -1
  315. package/node_modules/ip-address/dist/v6/constants.d.ts +0 -44
  316. package/node_modules/ip-address/dist/v6/constants.js +0 -81
  317. package/node_modules/ip-address/dist/v6/constants.js.map +0 -1
  318. package/node_modules/ip-address/dist/v6/helpers.d.ts +0 -18
  319. package/node_modules/ip-address/dist/v6/helpers.js +0 -54
  320. package/node_modules/ip-address/dist/v6/helpers.js.map +0 -1
  321. package/node_modules/ip-address/dist/v6/regular-expressions.d.ts +0 -5
  322. package/node_modules/ip-address/dist/v6/regular-expressions.js +0 -95
  323. package/node_modules/ip-address/dist/v6/regular-expressions.js.map +0 -1
  324. package/node_modules/ip-address/package.json +0 -88
  325. package/node_modules/is-promise/LICENSE +0 -19
  326. package/node_modules/is-promise/index.d.ts +0 -2
  327. package/node_modules/is-promise/index.js +0 -6
  328. package/node_modules/is-promise/index.mjs +0 -3
  329. package/node_modules/is-promise/package.json +0 -30
  330. package/node_modules/is-promise/readme.md +0 -33
  331. package/node_modules/math-intrinsics/.eslintrc +0 -16
  332. package/node_modules/math-intrinsics/.github/FUNDING.yml +0 -12
  333. package/node_modules/math-intrinsics/CHANGELOG.md +0 -24
  334. package/node_modules/math-intrinsics/LICENSE +0 -21
  335. package/node_modules/math-intrinsics/README.md +0 -50
  336. package/node_modules/math-intrinsics/abs.d.ts +0 -1
  337. package/node_modules/math-intrinsics/abs.js +0 -4
  338. package/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +0 -3
  339. package/node_modules/math-intrinsics/constants/maxArrayLength.js +0 -4
  340. package/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +0 -3
  341. package/node_modules/math-intrinsics/constants/maxSafeInteger.js +0 -5
  342. package/node_modules/math-intrinsics/constants/maxValue.d.ts +0 -3
  343. package/node_modules/math-intrinsics/constants/maxValue.js +0 -5
  344. package/node_modules/math-intrinsics/floor.d.ts +0 -1
  345. package/node_modules/math-intrinsics/floor.js +0 -4
  346. package/node_modules/math-intrinsics/isFinite.d.ts +0 -3
  347. package/node_modules/math-intrinsics/isFinite.js +0 -12
  348. package/node_modules/math-intrinsics/isInteger.d.ts +0 -3
  349. package/node_modules/math-intrinsics/isInteger.js +0 -16
  350. package/node_modules/math-intrinsics/isNaN.d.ts +0 -1
  351. package/node_modules/math-intrinsics/isNaN.js +0 -6
  352. package/node_modules/math-intrinsics/isNegativeZero.d.ts +0 -3
  353. package/node_modules/math-intrinsics/isNegativeZero.js +0 -6
  354. package/node_modules/math-intrinsics/max.d.ts +0 -1
  355. package/node_modules/math-intrinsics/max.js +0 -4
  356. package/node_modules/math-intrinsics/min.d.ts +0 -1
  357. package/node_modules/math-intrinsics/min.js +0 -4
  358. package/node_modules/math-intrinsics/mod.d.ts +0 -3
  359. package/node_modules/math-intrinsics/mod.js +0 -9
  360. package/node_modules/math-intrinsics/package.json +0 -86
  361. package/node_modules/math-intrinsics/pow.d.ts +0 -1
  362. package/node_modules/math-intrinsics/pow.js +0 -4
  363. package/node_modules/math-intrinsics/round.d.ts +0 -1
  364. package/node_modules/math-intrinsics/round.js +0 -4
  365. package/node_modules/math-intrinsics/sign.d.ts +0 -3
  366. package/node_modules/math-intrinsics/sign.js +0 -11
  367. package/node_modules/math-intrinsics/test/index.js +0 -192
  368. package/node_modules/math-intrinsics/tsconfig.json +0 -3
  369. package/node_modules/media-typer/HISTORY.md +0 -50
  370. package/node_modules/media-typer/LICENSE +0 -22
  371. package/node_modules/media-typer/README.md +0 -93
  372. package/node_modules/media-typer/index.js +0 -143
  373. package/node_modules/media-typer/package.json +0 -33
  374. package/node_modules/merge-descriptors/index.d.ts +0 -11
  375. package/node_modules/merge-descriptors/index.js +0 -26
  376. package/node_modules/merge-descriptors/license +0 -11
  377. package/node_modules/merge-descriptors/package.json +0 -50
  378. package/node_modules/merge-descriptors/readme.md +0 -55
  379. package/node_modules/mime-db/HISTORY.md +0 -541
  380. package/node_modules/mime-db/LICENSE +0 -23
  381. package/node_modules/mime-db/README.md +0 -109
  382. package/node_modules/mime-db/db.json +0 -9342
  383. package/node_modules/mime-db/index.js +0 -12
  384. package/node_modules/mime-db/package.json +0 -56
  385. package/node_modules/mime-types/HISTORY.md +0 -428
  386. package/node_modules/mime-types/LICENSE +0 -23
  387. package/node_modules/mime-types/README.md +0 -126
  388. package/node_modules/mime-types/index.js +0 -211
  389. package/node_modules/mime-types/mimeScore.js +0 -57
  390. package/node_modules/mime-types/package.json +0 -49
  391. package/node_modules/ms/index.js +0 -162
  392. package/node_modules/ms/license.md +0 -21
  393. package/node_modules/ms/package.json +0 -38
  394. package/node_modules/ms/readme.md +0 -59
  395. package/node_modules/negotiator/HISTORY.md +0 -114
  396. package/node_modules/negotiator/LICENSE +0 -24
  397. package/node_modules/negotiator/README.md +0 -212
  398. package/node_modules/negotiator/index.js +0 -83
  399. package/node_modules/negotiator/lib/charset.js +0 -169
  400. package/node_modules/negotiator/lib/encoding.js +0 -205
  401. package/node_modules/negotiator/lib/language.js +0 -179
  402. package/node_modules/negotiator/lib/mediaType.js +0 -294
  403. package/node_modules/negotiator/package.json +0 -43
  404. package/node_modules/object-inspect/.eslintrc +0 -53
  405. package/node_modules/object-inspect/.github/FUNDING.yml +0 -12
  406. package/node_modules/object-inspect/.nycrc +0 -13
  407. package/node_modules/object-inspect/CHANGELOG.md +0 -424
  408. package/node_modules/object-inspect/LICENSE +0 -21
  409. package/node_modules/object-inspect/example/all.js +0 -23
  410. package/node_modules/object-inspect/example/circular.js +0 -6
  411. package/node_modules/object-inspect/example/fn.js +0 -5
  412. package/node_modules/object-inspect/example/inspect.js +0 -10
  413. package/node_modules/object-inspect/index.js +0 -544
  414. package/node_modules/object-inspect/package-support.json +0 -20
  415. package/node_modules/object-inspect/package.json +0 -105
  416. package/node_modules/object-inspect/readme.markdown +0 -84
  417. package/node_modules/object-inspect/test/bigint.js +0 -58
  418. package/node_modules/object-inspect/test/browser/dom.js +0 -15
  419. package/node_modules/object-inspect/test/circular.js +0 -16
  420. package/node_modules/object-inspect/test/deep.js +0 -12
  421. package/node_modules/object-inspect/test/element.js +0 -53
  422. package/node_modules/object-inspect/test/err.js +0 -48
  423. package/node_modules/object-inspect/test/fakes.js +0 -29
  424. package/node_modules/object-inspect/test/fn.js +0 -76
  425. package/node_modules/object-inspect/test/global.js +0 -17
  426. package/node_modules/object-inspect/test/has.js +0 -15
  427. package/node_modules/object-inspect/test/holes.js +0 -15
  428. package/node_modules/object-inspect/test/indent-option.js +0 -271
  429. package/node_modules/object-inspect/test/inspect.js +0 -139
  430. package/node_modules/object-inspect/test/lowbyte.js +0 -12
  431. package/node_modules/object-inspect/test/number.js +0 -58
  432. package/node_modules/object-inspect/test/quoteStyle.js +0 -26
  433. package/node_modules/object-inspect/test/toStringTag.js +0 -40
  434. package/node_modules/object-inspect/test/undef.js +0 -12
  435. package/node_modules/object-inspect/test/values.js +0 -261
  436. package/node_modules/object-inspect/test-core-js.js +0 -26
  437. package/node_modules/object-inspect/util.inspect.js +0 -1
  438. package/node_modules/on-finished/HISTORY.md +0 -98
  439. package/node_modules/on-finished/LICENSE +0 -23
  440. package/node_modules/on-finished/README.md +0 -162
  441. package/node_modules/on-finished/index.js +0 -234
  442. package/node_modules/on-finished/package.json +0 -39
  443. package/node_modules/once/LICENSE +0 -15
  444. package/node_modules/once/README.md +0 -79
  445. package/node_modules/once/once.js +0 -42
  446. package/node_modules/once/package.json +0 -33
  447. package/node_modules/parseurl/HISTORY.md +0 -58
  448. package/node_modules/parseurl/LICENSE +0 -24
  449. package/node_modules/parseurl/README.md +0 -133
  450. package/node_modules/parseurl/index.js +0 -158
  451. package/node_modules/parseurl/package.json +0 -40
  452. package/node_modules/path-to-regexp/LICENSE +0 -21
  453. package/node_modules/path-to-regexp/Readme.md +0 -224
  454. package/node_modules/path-to-regexp/dist/index.d.ts +0 -147
  455. package/node_modules/path-to-regexp/dist/index.js +0 -431
  456. package/node_modules/path-to-regexp/dist/index.js.map +0 -1
  457. package/node_modules/path-to-regexp/package.json +0 -64
  458. package/node_modules/proxy-addr/HISTORY.md +0 -161
  459. package/node_modules/proxy-addr/LICENSE +0 -22
  460. package/node_modules/proxy-addr/README.md +0 -139
  461. package/node_modules/proxy-addr/index.js +0 -327
  462. package/node_modules/proxy-addr/package.json +0 -47
  463. package/node_modules/qs/.editorconfig +0 -46
  464. package/node_modules/qs/.github/FUNDING.yml +0 -12
  465. package/node_modules/qs/.github/SECURITY.md +0 -11
  466. package/node_modules/qs/.github/THREAT_MODEL.md +0 -78
  467. package/node_modules/qs/.nycrc +0 -13
  468. package/node_modules/qs/CHANGELOG.md +0 -822
  469. package/node_modules/qs/LICENSE.md +0 -29
  470. package/node_modules/qs/README.md +0 -758
  471. package/node_modules/qs/dist/qs.js +0 -141
  472. package/node_modules/qs/eslint.config.mjs +0 -57
  473. package/node_modules/qs/lib/formats.js +0 -23
  474. package/node_modules/qs/lib/index.js +0 -11
  475. package/node_modules/qs/lib/parse.js +0 -403
  476. package/node_modules/qs/lib/stringify.js +0 -363
  477. package/node_modules/qs/lib/utils.js +0 -342
  478. package/node_modules/qs/package.json +0 -94
  479. package/node_modules/qs/test/empty-keys-cases.js +0 -267
  480. package/node_modules/qs/test/parse.js +0 -1703
  481. package/node_modules/qs/test/stringify.js +0 -1448
  482. package/node_modules/qs/test/utils.js +0 -432
  483. package/node_modules/range-parser/HISTORY.md +0 -56
  484. package/node_modules/range-parser/LICENSE +0 -23
  485. package/node_modules/range-parser/README.md +0 -84
  486. package/node_modules/range-parser/index.js +0 -162
  487. package/node_modules/range-parser/package.json +0 -44
  488. package/node_modules/router/HISTORY.md +0 -228
  489. package/node_modules/router/LICENSE +0 -23
  490. package/node_modules/router/README.md +0 -416
  491. package/node_modules/router/index.js +0 -748
  492. package/node_modules/router/lib/layer.js +0 -247
  493. package/node_modules/router/lib/route.js +0 -242
  494. package/node_modules/router/package.json +0 -44
  495. package/node_modules/send/LICENSE +0 -23
  496. package/node_modules/send/README.md +0 -317
  497. package/node_modules/send/index.js +0 -997
  498. package/node_modules/send/package.json +0 -63
  499. package/node_modules/serve-static/LICENSE +0 -25
  500. package/node_modules/serve-static/README.md +0 -253
  501. package/node_modules/serve-static/index.js +0 -208
  502. package/node_modules/serve-static/package.json +0 -44
  503. package/node_modules/side-channel/.editorconfig +0 -9
  504. package/node_modules/side-channel/.eslintrc +0 -12
  505. package/node_modules/side-channel/.github/FUNDING.yml +0 -12
  506. package/node_modules/side-channel/.nycrc +0 -13
  507. package/node_modules/side-channel/CHANGELOG.md +0 -110
  508. package/node_modules/side-channel/LICENSE +0 -21
  509. package/node_modules/side-channel/README.md +0 -61
  510. package/node_modules/side-channel/index.d.ts +0 -14
  511. package/node_modules/side-channel/index.js +0 -43
  512. package/node_modules/side-channel/package.json +0 -85
  513. package/node_modules/side-channel/test/index.js +0 -104
  514. package/node_modules/side-channel/tsconfig.json +0 -9
  515. package/node_modules/side-channel-list/.editorconfig +0 -9
  516. package/node_modules/side-channel-list/.eslintrc +0 -11
  517. package/node_modules/side-channel-list/.github/FUNDING.yml +0 -12
  518. package/node_modules/side-channel-list/.nycrc +0 -13
  519. package/node_modules/side-channel-list/CHANGELOG.md +0 -36
  520. package/node_modules/side-channel-list/LICENSE +0 -21
  521. package/node_modules/side-channel-list/README.md +0 -62
  522. package/node_modules/side-channel-list/index.d.ts +0 -13
  523. package/node_modules/side-channel-list/index.js +0 -111
  524. package/node_modules/side-channel-list/list.d.ts +0 -14
  525. package/node_modules/side-channel-list/package.json +0 -77
  526. package/node_modules/side-channel-list/test/index.js +0 -154
  527. package/node_modules/side-channel-list/tsconfig.json +0 -9
  528. package/node_modules/side-channel-map/.editorconfig +0 -9
  529. package/node_modules/side-channel-map/.eslintrc +0 -11
  530. package/node_modules/side-channel-map/.github/FUNDING.yml +0 -12
  531. package/node_modules/side-channel-map/.nycrc +0 -13
  532. package/node_modules/side-channel-map/CHANGELOG.md +0 -22
  533. package/node_modules/side-channel-map/LICENSE +0 -21
  534. package/node_modules/side-channel-map/README.md +0 -62
  535. package/node_modules/side-channel-map/index.d.ts +0 -15
  536. package/node_modules/side-channel-map/index.js +0 -68
  537. package/node_modules/side-channel-map/package.json +0 -80
  538. package/node_modules/side-channel-map/test/index.js +0 -114
  539. package/node_modules/side-channel-map/tsconfig.json +0 -9
  540. package/node_modules/side-channel-weakmap/.editorconfig +0 -9
  541. package/node_modules/side-channel-weakmap/.eslintrc +0 -12
  542. package/node_modules/side-channel-weakmap/.github/FUNDING.yml +0 -12
  543. package/node_modules/side-channel-weakmap/.nycrc +0 -13
  544. package/node_modules/side-channel-weakmap/CHANGELOG.md +0 -28
  545. package/node_modules/side-channel-weakmap/LICENSE +0 -21
  546. package/node_modules/side-channel-weakmap/README.md +0 -62
  547. package/node_modules/side-channel-weakmap/index.d.ts +0 -15
  548. package/node_modules/side-channel-weakmap/index.js +0 -84
  549. package/node_modules/side-channel-weakmap/package.json +0 -87
  550. package/node_modules/side-channel-weakmap/test/index.js +0 -114
  551. package/node_modules/side-channel-weakmap/tsconfig.json +0 -9
  552. package/node_modules/type-is/HISTORY.md +0 -292
  553. package/node_modules/type-is/LICENSE +0 -23
  554. package/node_modules/type-is/README.md +0 -198
  555. package/node_modules/type-is/index.js +0 -240
  556. package/node_modules/type-is/package.json +0 -51
  557. package/node_modules/which/CHANGELOG.md +0 -166
  558. package/node_modules/wrappy/LICENSE +0 -15
  559. package/node_modules/wrappy/README.md +0 -36
  560. package/node_modules/wrappy/package.json +0 -29
  561. package/node_modules/wrappy/wrappy.js +0 -33
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/manifest/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAqKxB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBASzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/manifest/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAoLxB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBASzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { z } from 'zod';
2
2
  import { NAME_PATTERN } from './naming.js';
3
+ import { widgetUiSchema } from '../widget-ui.js';
3
4
  /**
4
5
  * Zod schema for the minimal `manifestVersion: "0.2"` subset implemented so far.
5
6
  *
@@ -114,6 +115,7 @@ const widgetCspSchema = z.object({
114
115
  frameDomains: z.array(cspDomainSchema).optional(),
115
116
  baseUriDomains: z.array(cspDomainSchema).optional(),
116
117
  });
118
+ const widgetPermissionGrantSchema = z.object({}).strict();
117
119
  /**
118
120
  * Upper bound on a widget's inline `html` body. Rich markup + inline CSS/JS is a few KB (the shipped
119
121
  * examples are < 3 KB); the cap bounds artifact size so a single widget cannot bloat the stored/served
@@ -130,11 +132,23 @@ const MAX_WIDGET_HTML = 256 * 1024;
130
132
  const widgetSchema = z.object({
131
133
  name: nameSchema,
132
134
  tool: nameSchema,
133
- html: z.string().min(1).max(MAX_WIDGET_HTML),
135
+ html: z.string().min(1).max(MAX_WIDGET_HTML).optional(),
136
+ screen: widgetUiSchema.optional(),
134
137
  title: z.string().min(1).optional(),
135
138
  description: z.string().min(1).optional(),
136
139
  csp: widgetCspSchema.optional(),
137
- permissions: z.record(z.string(), z.boolean()).optional(),
140
+ permissions: z
141
+ .object({
142
+ camera: widgetPermissionGrantSchema.optional(),
143
+ microphone: widgetPermissionGrantSchema.optional(),
144
+ geolocation: widgetPermissionGrantSchema.optional(),
145
+ clipboardWrite: widgetPermissionGrantSchema.optional(),
146
+ })
147
+ .strict()
148
+ .optional(),
149
+ }).refine((widget) => (widget.html === undefined) !== (widget.screen === undefined), {
150
+ message: 'exactly one of html or screen is required',
151
+ path: ['html'],
138
152
  });
139
153
  /**
140
154
  * A named connector reference: the manifest alias (the record key) points to a catalog connector
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/manifest/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/manifest/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ import { z } from 'zod';
2
+ declare const actionSchema: z.ZodUnion<readonly [z.ZodObject<{
3
+ type: z.ZodLiteral<"submit">;
4
+ }, z.core.$strip>, z.ZodObject<{
5
+ type: z.ZodLiteral<"call">;
6
+ tool: z.ZodString;
7
+ }, z.core.$strip>, z.ZodObject<{
8
+ type: z.ZodLiteral<"callServerTool">;
9
+ tool: z.ZodString;
10
+ args: z.ZodOptional<z.ZodType<unknown, unknown, z.core.$ZodTypeInternals<unknown, unknown>>>;
11
+ }, z.core.$strip>, z.ZodObject<{
12
+ type: z.ZodLiteral<"openLink">;
13
+ url: z.ZodString;
14
+ }, z.core.$strip>, z.ZodObject<{
15
+ type: z.ZodLiteral<"sendMessage">;
16
+ text: z.ZodString;
17
+ }, z.core.$strip>, z.ZodObject<{
18
+ type: z.ZodLiteral<"updateModelContext">;
19
+ text: z.ZodString;
20
+ }, z.core.$strip>, z.ZodObject<{
21
+ type: z.ZodLiteral<"requestDisplayMode">;
22
+ mode: z.ZodOptional<z.ZodEnum<{
23
+ inline: "inline";
24
+ fullscreen: "fullscreen";
25
+ }>>;
26
+ }, z.core.$strip>, z.ZodObject<{
27
+ type: z.ZodLiteral<"downloadFile">;
28
+ file: z.ZodString;
29
+ mimeType: z.ZodOptional<z.ZodString>;
30
+ content: z.ZodString;
31
+ }, z.core.$strip>]>;
32
+ declare const textNode: z.ZodObject<{
33
+ type: z.ZodLiteral<"text">;
34
+ text: z.ZodOptional<z.ZodString>;
35
+ bind: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
36
+ from: z.ZodEnum<{
37
+ input: "input";
38
+ result: "result";
39
+ state: "state";
40
+ }>;
41
+ path: z.ZodString;
42
+ }, z.core.$strip>]>>;
43
+ bindInput: z.ZodOptional<z.ZodString>;
44
+ }, z.core.$strip>;
45
+ type WidgetUiNode = z.infer<typeof textNode> | {
46
+ type: 'card';
47
+ title?: WidgetUiNode | undefined;
48
+ body?: WidgetUiNode[] | undefined;
49
+ } | {
50
+ type: 'section';
51
+ title?: string | undefined;
52
+ children: WidgetUiNode[];
53
+ } | {
54
+ type: 'list';
55
+ items: Array<{
56
+ label: string;
57
+ value: WidgetUiNode;
58
+ }>;
59
+ } | {
60
+ type: 'form';
61
+ state?: string | undefined;
62
+ submit?: {
63
+ action: 'call';
64
+ tool: string;
65
+ } | {
66
+ action: z.infer<typeof actionSchema>;
67
+ } | undefined;
68
+ children: WidgetUiNode[];
69
+ } | {
70
+ type: 'input';
71
+ name: string;
72
+ label: string;
73
+ input?: 'text' | 'email' | 'number' | 'textarea' | undefined;
74
+ required?: boolean | undefined;
75
+ } | {
76
+ type: 'button';
77
+ label: string;
78
+ action: z.infer<typeof actionSchema>;
79
+ } | {
80
+ type: 'empty';
81
+ text: string;
82
+ } | {
83
+ type: 'error';
84
+ text: string;
85
+ };
86
+ export declare const widgetUiSchema: z.ZodObject<{
87
+ version: z.ZodLiteral<"0.1">;
88
+ root: z.ZodType<WidgetUiNode, unknown, z.core.$ZodTypeInternals<WidgetUiNode, unknown>>;
89
+ }, z.core.$strip>;
90
+ export type WidgetUiDocument = z.infer<typeof widgetUiSchema>;
91
+ export type WidgetUiValidationResult = ReturnType<typeof widgetUiSchema.safeParse>;
92
+ export declare function validateWidgetUi(value: unknown): WidgetUiValidationResult;
93
+ export declare function renderWidgetUiToHtml(value: WidgetUiDocument): string;
94
+ export {};
95
+ //# sourceMappingURL=widget-ui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget-ui.d.ts","sourceRoot":"","sources":["../src/widget-ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AA8BxB,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAchB,CAAC;AAEH,QAAA,MAAM,QAAQ;;;;;;;;;;;;iBAKZ,CAAC;AAEH,KAAK,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,GAAG;IAC7C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IACjC,IAAI,CAAC,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC;CACnC,GAAG;IACF,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B,GAAG;IACF,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,YAAY,CAAA;KAAE,CAAC,CAAC;CACtD,GAAG;IACF,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAA;KAAE,GAAG,SAAS,CAAC;IACjG,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B,GAAG;IACF,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;IAC7D,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC,GAAG;IACF,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;CACtC,GAAG;IACF,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,GAAG;IACF,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AA4DF,eAAO,MAAM,cAAc;;;iBAGzB,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,MAAM,MAAM,wBAAwB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,SAAS,CAAC,CAAC;AAEnF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,wBAAwB,CAEzE;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAGpE"}
@@ -0,0 +1,177 @@
1
+ import { z } from 'zod';
2
+ import { NAME_PATTERN } from './manifest/naming.js';
3
+ const pathSchema = z
4
+ .string()
5
+ .regex(/^[A-Za-z_][A-Za-z0-9_]*(?:\.[A-Za-z_][A-Za-z0-9_]*)*$/, 'must be a safe dotted path');
6
+ const nameSchema = z.string().regex(NAME_PATTERN, 'must use lowercase letters, numbers, and underscores');
7
+ const bindingSchema = z.union([
8
+ pathSchema,
9
+ z.object({
10
+ from: z.enum(['result', 'input', 'state']),
11
+ path: pathSchema,
12
+ }),
13
+ ]);
14
+ const argsSchema = z.lazy(() => z.union([
15
+ z.string(),
16
+ z.number(),
17
+ z.boolean(),
18
+ z.null(),
19
+ z.array(argsSchema),
20
+ z.record(z.string(), argsSchema),
21
+ ]));
22
+ const actionSchema = z.union([
23
+ z.object({ type: z.literal('submit') }),
24
+ z.object({ type: z.literal('call'), tool: nameSchema }),
25
+ z.object({ type: z.literal('callServerTool'), tool: nameSchema, args: argsSchema.optional() }),
26
+ z.object({ type: z.literal('openLink'), url: z.string().url() }),
27
+ z.object({ type: z.literal('sendMessage'), text: z.string().min(1) }),
28
+ z.object({ type: z.literal('updateModelContext'), text: z.string().min(1) }),
29
+ z.object({ type: z.literal('requestDisplayMode'), mode: z.enum(['inline', 'fullscreen']).optional() }),
30
+ z.object({
31
+ type: z.literal('downloadFile'),
32
+ file: z.string().min(1),
33
+ mimeType: z.string().min(1).optional(),
34
+ content: z.string(),
35
+ }),
36
+ ]);
37
+ const textNode = z.object({
38
+ type: z.literal('text'),
39
+ text: z.string().optional(),
40
+ bind: bindingSchema.optional(),
41
+ bindInput: pathSchema.optional(),
42
+ });
43
+ const nodeSchema = z.lazy(() => z.discriminatedUnion('type', [
44
+ textNode,
45
+ z.object({
46
+ type: z.literal('card'),
47
+ title: nodeSchema.optional(),
48
+ body: z.array(nodeSchema).optional(),
49
+ }),
50
+ z.object({
51
+ type: z.literal('section'),
52
+ title: z.string().optional(),
53
+ children: z.array(nodeSchema).min(1),
54
+ }),
55
+ z.object({
56
+ type: z.literal('list'),
57
+ items: z
58
+ .array(z.object({
59
+ label: z.string().min(1),
60
+ value: nodeSchema,
61
+ }))
62
+ .min(1),
63
+ }),
64
+ z.object({
65
+ type: z.literal('form'),
66
+ state: nameSchema.optional(),
67
+ submit: z
68
+ .union([
69
+ z.object({ action: z.literal('call'), tool: nameSchema }),
70
+ z.object({ action: actionSchema }),
71
+ ])
72
+ .optional(),
73
+ children: z.array(nodeSchema).min(1),
74
+ }),
75
+ z.object({
76
+ type: z.literal('input'),
77
+ name: nameSchema,
78
+ label: z.string().min(1),
79
+ input: z.enum(['text', 'email', 'number', 'textarea']).optional(),
80
+ required: z.boolean().optional(),
81
+ }),
82
+ z.object({
83
+ type: z.literal('button'),
84
+ label: z.string().min(1),
85
+ action: actionSchema,
86
+ }),
87
+ z.object({
88
+ type: z.literal('empty'),
89
+ text: z.string().min(1),
90
+ }),
91
+ z.object({
92
+ type: z.literal('error'),
93
+ text: z.string().min(1),
94
+ }),
95
+ ]));
96
+ export const widgetUiSchema = z.object({
97
+ version: z.literal('0.1'),
98
+ root: nodeSchema,
99
+ });
100
+ export function validateWidgetUi(value) {
101
+ return widgetUiSchema.safeParse(value);
102
+ }
103
+ export function renderWidgetUiToHtml(value) {
104
+ const parsed = widgetUiSchema.parse(value);
105
+ return `<!doctype html><html><head><meta charset="utf-8"><style>${BASE_CSS}</style></head><body>${renderNode(parsed.root)}</body></html>`;
106
+ }
107
+ const BASE_CSS = [
108
+ '@layer reset,tokens,widget;',
109
+ '@layer reset{*{box-sizing:border-box}body{margin:0}}',
110
+ '@layer tokens{:root{color-scheme:light dark;--ns-surface:var(--color-background-primary,#fff);--ns-text-primary:var(--color-text-primary,#111);--ns-border:var(--color-border-primary,#d9dde3);--ns-accent:#1D9E75;--ns-radius:8px;--ns-font:var(--font-sans,system-ui,sans-serif)}.dark{--ns-surface:#111;--ns-text-primary:#f8f8f8;--ns-border:#333}}',
111
+ '@layer widget{body{font:14px/1.45 var(--ns-font);color:var(--ns-text-primary);background:var(--ns-surface);padding:12px}.ns-card{border:1px solid var(--ns-border);border-radius:var(--ns-radius);padding:12px}.ns-title{font-weight:650;margin:0 0 8px}.ns-section{margin-top:12px}.ns-row{display:flex;gap:8px;justify-content:space-between;border-top:1px solid var(--ns-border);padding:8px 0}.ns-form{display:grid;gap:8px;margin-top:12px}.ns-field{display:grid;gap:4px}.ns-input{font:inherit;border:1px solid var(--ns-border);border-radius:6px;padding:8px;background:transparent;color:inherit}.ns-button{font:inherit;border:0;border-radius:6px;background:var(--ns-accent);color:#fff;padding:8px 10px;cursor:pointer}.ns-button[disabled]{opacity:.65;cursor:wait}.ns-muted{opacity:.72}}',
112
+ ].join('');
113
+ function renderNode(node) {
114
+ switch (node.type) {
115
+ case 'card':
116
+ return `<main class="ns-card">${node.title ? `<h1 class="ns-title">${renderNode(node.title)}</h1>` : ''}${(node.body ?? []).map(renderNode).join('')}</main>`;
117
+ case 'text':
118
+ return `<p${bindingAttrs(node)}>${escapeHtml(node.text ?? '')}</p>`;
119
+ case 'section':
120
+ return `<section class="ns-section">${node.title ? `<h2 class="ns-title">${escapeHtml(node.title)}</h2>` : ''}${node.children.map(renderNode).join('')}</section>`;
121
+ case 'list':
122
+ return `<dl>${node.items.map((item) => `<div class="ns-row"><dt>${escapeHtml(item.label)}</dt><dd>${renderNode(item.value)}</dd></div>`).join('')}</dl>`;
123
+ case 'form':
124
+ return `<form class="ns-form"${node.state ? ` data-state="${escapeAttr(node.state)}"` : ''}>${node.children.map(renderNode).join('')}${node.submit ? renderSubmit(node.submit) : ''}</form>`;
125
+ case 'input':
126
+ return `<label class="ns-field">${escapeHtml(node.label)}${node.input === 'textarea' ? `<textarea class="ns-input" data-state-name="${escapeAttr(node.name)}"${node.required ? ' required' : ''}></textarea>` : `<input class="ns-input" data-state-name="${escapeAttr(node.name)}" type="${escapeAttr(node.input ?? 'text')}"${node.required ? ' required' : ''}>`}</label>`;
127
+ case 'button':
128
+ return `<button class="ns-button" type="button"${actionAttrs(node.action)}>${escapeHtml(node.label)}</button>`;
129
+ case 'empty':
130
+ return `<p class="ns-muted">${escapeHtml(node.text)}</p>`;
131
+ case 'error':
132
+ return `<p role="alert">${escapeHtml(node.text)}</p>`;
133
+ }
134
+ }
135
+ function renderSubmit(submit) {
136
+ if ('tool' in submit) {
137
+ return `<button class="ns-button" type="submit" data-action="call" data-action-tool="${escapeAttr(submit.tool)}">Submit</button>`;
138
+ }
139
+ return `<button class="ns-button" type="submit"${actionAttrs(submit.action)}>Submit</button>`;
140
+ }
141
+ function bindingAttrs(node) {
142
+ const attrs = [];
143
+ if (typeof node.bind === 'string')
144
+ attrs.push(`data-bind="${escapeAttr(node.bind)}"`);
145
+ else if (node.bind)
146
+ attrs.push(`data-bind-${node.bind.from}="${escapeAttr(node.bind.path)}"`);
147
+ if (node.bindInput)
148
+ attrs.push(`data-bind-input="${escapeAttr(node.bindInput)}"`);
149
+ return attrs.length ? ` ${attrs.join(' ')}` : '';
150
+ }
151
+ function actionAttrs(action) {
152
+ switch (action.type) {
153
+ case 'submit':
154
+ return ' data-action="submit"';
155
+ case 'call':
156
+ return ` data-action="call" data-action-tool="${escapeAttr(action.tool)}"`;
157
+ case 'callServerTool':
158
+ return ` data-action="call" data-action-tool="${escapeAttr(action.tool)}"${action.args === undefined ? '' : ` data-action-args="${escapeAttr(JSON.stringify(action.args))}"`}`;
159
+ case 'openLink':
160
+ return ` data-action="open" data-action-href="${escapeAttr(action.url)}"`;
161
+ case 'sendMessage':
162
+ return ` data-action="send" data-action-text="${escapeAttr(action.text)}"`;
163
+ case 'updateModelContext':
164
+ return ` data-action="context" data-action-text="${escapeAttr(action.text)}"`;
165
+ case 'requestDisplayMode':
166
+ return ` data-action="display" data-action-mode="${escapeAttr(action.mode ?? 'fullscreen')}"`;
167
+ case 'downloadFile':
168
+ return ` data-action="download" data-action-file="${escapeAttr(action.file)}"${action.mimeType ? ` data-action-mime="${escapeAttr(action.mimeType)}"` : ''} data-action-content="${escapeAttr(action.content)}"`;
169
+ }
170
+ }
171
+ function escapeHtml(value) {
172
+ return value.replaceAll('&', '&amp;').replaceAll('<', '&lt;').replaceAll('>', '&gt;');
173
+ }
174
+ function escapeAttr(value) {
175
+ return escapeHtml(value).replaceAll('"', '&quot;');
176
+ }
177
+ //# sourceMappingURL=widget-ui.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"widget-ui.js","sourceRoot":"","sources":["../src/widget-ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,MAAM,UAAU,GAAG,CAAC;KACjB,MAAM,EAAE;KACR,KAAK,CACJ,uDAAuD,EACvD,4BAA4B,CAC/B,CAAC;AACF,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,sDAAsD,CAAC,CAAC;AAE1G,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC;IAC5B,UAAU;IACV,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1C,IAAI,EAAE,UAAU;KACjB,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,UAAU,GAAuB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CACjD,CAAC,CAAC,KAAK,CAAC;IACN,CAAC,CAAC,MAAM,EAAE;IACV,CAAC,CAAC,MAAM,EAAE;IACV,CAAC,CAAC,OAAO,EAAE;IACX,CAAC,CAAC,IAAI,EAAE;IACR,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;IACnB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,UAAU,CAAC;CACjC,CAAC,CACH,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC;IAC3B,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;IACvC,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IACvD,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC;IAC9F,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC;IAChE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IACrE,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;IACtG,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC;QAC/B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACvB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;QACtC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;KACpB,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,QAAQ,GAAG,CAAC,CAAC,MAAM,CAAC;IACxB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3B,IAAI,EAAE,aAAa,CAAC,QAAQ,EAAE;IAC9B,SAAS,EAAE,UAAU,CAAC,QAAQ,EAAE;CACjC,CAAC,CAAC;AAoCH,MAAM,UAAU,GAA4B,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CACtD,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE;IAC3B,QAAQ;IACR,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACvB,KAAK,EAAE,UAAU,CAAC,QAAQ,EAAE;QAC5B,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;KACrC,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;QAC1B,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC5B,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;KACrC,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACvB,KAAK,EAAE,CAAC;aACL,KAAK,CACJ,CAAC,CAAC,MAAM,CAAC;YACP,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YACxB,KAAK,EAAE,UAAU;SAClB,CAAC,CACH;aACA,GAAG,CAAC,CAAC,CAAC;KACV,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACvB,KAAK,EAAE,UAAU,CAAC,QAAQ,EAAE;QAC5B,MAAM,EAAE,CAAC;aACN,KAAK,CAAC;YACL,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;YACzD,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC;SACnC,CAAC;aACD,QAAQ,EAAE;QACb,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;KACrC,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QACxB,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACxB,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE;QACjE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;KACjC,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QACzB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACxB,MAAM,EAAE,YAAY;KACrB,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QACxB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KACxB,CAAC;IACF,CAAC,CAAC,MAAM,CAAC;QACP,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QACxB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;KACxB,CAAC;CACH,CAAC,CACH,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IACzB,IAAI,EAAE,UAAU;CACjB,CAAC,CAAC;AAKH,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC7C,OAAO,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAAuB;IAC1D,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3C,OAAO,2DAA2D,QAAQ,wBAAwB,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAC5I,CAAC;AAED,MAAM,QAAQ,GAAG;IACf,6BAA6B;IAC7B,sDAAsD;IACtD,yVAAyV;IACzV,4wBAA4wB;CAC7wB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAEX,SAAS,UAAU,CAAC,IAAkB;IACpC,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;QAClB,KAAK,MAAM;YACT,OAAO,yBAAyB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,wBAAwB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC;QAChK,KAAK,MAAM;YACT,OAAO,KAAK,YAAY,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,MAAM,CAAC;QACtE,KAAK,SAAS;YACZ,OAAO,+BAA+B,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,wBAAwB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC;QACrK,KAAK,MAAM;YACT,OAAO,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,2BAA2B,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;QAC3J,KAAK,MAAM;YACT,OAAO,wBAAwB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC;QAC/L,KAAK,OAAO;YACV,OAAO,2BAA2B,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,+CAA+C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,4CAA4C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC;QAChX,KAAK,QAAQ;YACX,OAAO,0CAA0C,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;QACjH,KAAK,OAAO;YACV,OAAO,uBAAuB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC5D,KAAK,OAAO;YACV,OAAO,mBAAmB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,MAAsE;IAC1F,IAAI,MAAM,IAAI,MAAM,EAAE,CAAC;QACrB,OAAO,gFAAgF,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC;IACpI,CAAC;IACD,OAAO,0CAA0C,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC;AAChG,CAAC;AAED,SAAS,YAAY,CAAC,IAA8B;IAClD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,cAAc,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACjF,IAAI,IAAI,CAAC,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9F,IAAI,IAAI,CAAC,SAAS;QAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAClF,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACnD,CAAC;AAED,SAAS,WAAW,CAAC,MAAoC;IACvD,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,QAAQ;YACX,OAAO,uBAAuB,CAAC;QACjC,KAAK,MAAM;YACT,OAAO,yCAAyC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QAC7E,KAAK,gBAAgB;YACnB,OAAO,yCAAyC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,sBAAsB,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC;QACjL,KAAK,UAAU;YACb,OAAO,yCAAyC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;QAC5E,KAAK,aAAa;YAChB,OAAO,yCAAyC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QAC7E,KAAK,oBAAoB;YACvB,OAAO,4CAA4C,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;QAChF,KAAK,oBAAoB;YACvB,OAAO,4CAA4C,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,YAAY,CAAC,GAAG,CAAC;QAChG,KAAK,cAAc;YACjB,OAAO,6CAA6C,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,sBAAsB,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,yBAAyB,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;IACrN,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;AACxF,CAAC;AAED,SAAS,UAAU,CAAC,KAAa;IAC/B,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AACrD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/widget/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,uBAAuB,EAAE,MA6IrC,CAAC"}
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../src/widget/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAsMrC,CAAC"}
@@ -81,6 +81,18 @@ export const WIDGET_BOOTSTRAP_SOURCE = `
81
81
  if (v !== undefined && v !== null) el.textContent = String(v);
82
82
  }
83
83
  }
84
+ function collectState(el) {
85
+ const state = {};
86
+ const root = (el && el.closest && el.closest('form')) || document;
87
+ for (const input of root.querySelectorAll('[data-state-name]')) {
88
+ const name = input.getAttribute('data-state-name');
89
+ if (!name) continue;
90
+ if (input.type === 'checkbox') state[name] = Boolean(input.checked);
91
+ else state[name] = input.value;
92
+ }
93
+ globalThis.__noodleState = state;
94
+ return state;
95
+ }
84
96
  function fromResult(r) {
85
97
  if (!r) return null;
86
98
  if (r.structuredContent != null) return r.structuredContent;
@@ -106,14 +118,55 @@ export const WIDGET_BOOTSTRAP_SOURCE = `
106
118
  el.disabled = false; el.removeAttribute('aria-busy');
107
119
  }
108
120
  }
121
+ function status(msg) {
122
+ let el = document.querySelector('[data-noodle-error]');
123
+ if (!el) {
124
+ el = document.createElement('div');
125
+ el.setAttribute('data-noodle-error', '');
126
+ el.setAttribute('role', 'status');
127
+ el.style.marginTop = '8px';
128
+ el.style.color = 'var(--color-text-danger, #b42318)';
129
+ document.body.appendChild(el);
130
+ }
131
+ el.textContent = msg;
132
+ }
133
+ function caps() {
134
+ try { return app.getHostCapabilities && app.getHostCapabilities(); } catch (e) { return {}; }
135
+ }
136
+ function supported(action) {
137
+ const c = caps() || {};
138
+ if (action === 'call') return c.tools !== false && typeof app.callServerTool === 'function';
139
+ if (action === 'open') return c.openLink !== false && typeof app.openLink === 'function';
140
+ if (action === 'display') return c.displayMode !== false && typeof app.requestDisplayMode === 'function';
141
+ if (action === 'download') return c.downloadFile !== false && typeof app.downloadFile === 'function';
142
+ if (action === 'send') return c.message !== false && typeof app.sendMessage === 'function';
143
+ if (action === 'context') return c.modelContext !== false && typeof app.updateModelContext === 'function';
144
+ return true;
145
+ }
146
+ function applyCapabilities() {
147
+ for (const el of document.querySelectorAll('[data-action]')) {
148
+ const action = el.getAttribute('data-action');
149
+ if (!supported(action)) {
150
+ el.disabled = true;
151
+ el.setAttribute('aria-disabled', 'true');
152
+ el.setAttribute('title', 'Action is not supported by this host');
153
+ } else if (el.getAttribute('aria-busy') !== 'true') {
154
+ el.disabled = false;
155
+ el.removeAttribute('aria-disabled');
156
+ if (el.getAttribute('title') === 'Action is not supported by this host') el.removeAttribute('title');
157
+ }
158
+ }
159
+ }
109
160
 
110
161
  // CSP-safe declarative actions (no inline handlers). A [data-action] element drives the host bridge:
111
162
  // send|context → conversation; call → server tools/call (re-binds the result in place);
112
163
  // open → external link; display → display mode; download → host-mediated file export.
113
164
  function actOnce(el) {
114
165
  const action = el.getAttribute('data-action');
166
+ if (!supported(action)) { status('Action is not supported by this host.'); return; }
115
167
  const text = el.getAttribute('data-action-text') || el.textContent || '';
116
168
  const data = globalThis.__noodleData;
169
+ const actionData = Object.assign({}, data || {}, { result: data || {}, input: globalThis.__noodleInput || {}, state: collectState(el) });
117
170
  try {
118
171
  if (action === 'send') {
119
172
  app.sendMessage({ role: 'user', content: [{ type: 'text', text }] });
@@ -124,11 +177,11 @@ export const WIDGET_BOOTSTRAP_SOURCE = `
124
177
  if (!name) return;
125
178
  let args = {};
126
179
  const raw = el.getAttribute('data-action-args');
127
- if (raw) { try { args = resolveArgs(JSON.parse(raw), data); } catch (e) { args = {}; } }
180
+ if (raw) { try { args = resolveArgs(JSON.parse(raw), actionData); } catch (e) { args = {}; } }
128
181
  el.disabled = true; el.setAttribute('aria-busy', 'true');
129
182
  Promise.resolve(app.callServerTool({ name, arguments: args }))
130
183
  .then((r) => bind(fromResult(r)))
131
- .catch(() => {})
184
+ .catch(() => { status('Action failed. Check the tool result or host permissions.'); })
132
185
  .then(() => { el.disabled = false; el.removeAttribute('aria-busy'); });
133
186
  } else if (action === 'open') {
134
187
  const url = el.getAttribute('data-action-href');
@@ -146,6 +199,9 @@ export const WIDGET_BOOTSTRAP_SOURCE = `
146
199
  } catch (e) {}
147
200
  }
148
201
  function wireActions() {
202
+ for (const form of document.querySelectorAll('form')) {
203
+ form.addEventListener('submit', (event) => event.preventDefault());
204
+ }
149
205
  for (const el of document.querySelectorAll('[data-action]')) {
150
206
  el.addEventListener('click', () => actOnce(el));
151
207
  }
@@ -155,11 +211,12 @@ export const WIDGET_BOOTSTRAP_SOURCE = `
155
211
  app.ontoolresult = (p) => bind(fromResult(p));
156
212
  app.ontoolinput = (p) => bindInput(p && p.arguments);
157
213
  app.ontoolcancelled = () => clearBusy();
158
- app.onhostcontextchanged = theme;
214
+ app.onhostcontextchanged = (p) => { theme(p); applyCapabilities(); };
159
215
  app.onteardown = () => { try { clearBusy(); } catch (e) {} return {}; };
160
216
  wireActions();
161
217
  try { await app.connect(); } catch (e) {}
162
218
  try { theme(app.getHostContext && app.getHostContext()); } catch (e) {}
219
+ try { applyCapabilities(); } catch (e) {}
163
220
  })();
164
221
  `;
165
222
  //# sourceMappingURL=bootstrap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/widget/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6I9C,CAAC"}
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../src/widget/bootstrap.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsM9C,CAAC"}
@@ -32,7 +32,6 @@
32
32
  "@noodle-borg/protocol": "0.0.0",
33
33
  "@noodle-borg/runtime": "0.0.0",
34
34
  "@noodle-borg/transport-http": "0.0.0",
35
- "express": "^5.2.1",
36
35
  "jose": "^6.2.3"
37
36
  },
38
37
  "devDependencies": {
@@ -23,7 +23,6 @@
23
23
  "devDependencies": {
24
24
  "after": "0.8.2",
25
25
  "eslint": "7.30.0",
26
- "express": "4.21.2",
27
26
  "mocha": "9.2.2",
28
27
  "nyc": "15.1.0",
29
28
  "supertest": "6.1.3"