@supersoniks/concorde 4.9.93 → 4.9.95

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 (657) hide show
  1. package/README.md +16 -30
  2. package/build-infos.json +1 -1
  3. package/concorde-3d.bundle.js +3911 -0
  4. package/concorde-3d.es.js +32635 -0
  5. package/concorde-core.bundle.js +299 -292
  6. package/concorde-core.es.js +10104 -6071
  7. package/concorde-hugging-face-infer.bundle.js +32 -0
  8. package/concorde-hugging-face-infer.es.js +2952 -0
  9. package/concorde-shader.bundle.js +105 -0
  10. package/concorde-shader.es.js +7982 -0
  11. package/concorde-webgpu.bundle.js +296 -0
  12. package/concorde-webgpu.es.js +8268 -0
  13. package/dist/concorde-core.bundle.js +299 -292
  14. package/dist/concorde-core.es.js +10104 -6071
  15. package/dist/docs-mock-api-sw.js +110 -0
  16. package/dist/docs-mock-api-sw.js.map +3 -3
  17. package/docs/assets/{index-D2Q3JyQ6.css → index-BZiZXMU-.css} +1 -1
  18. package/docs/assets/index-FmK4JaIM.js +11992 -0
  19. package/docs/crawl/core/components/functional/jsonata/jsonata.html +79 -0
  20. package/docs/crawl/core/components/ui/form/checkbox/checkbox.html +1 -1
  21. package/docs/crawl/docs/_core-concept/dataFlow.html +12 -1
  22. package/docs/crawl/docs/_decorators/get.html +27 -6
  23. package/docs/crawl/docs/_decorators/patch.html +6 -0
  24. package/docs/crawl/docs/_decorators/post.html +8 -0
  25. package/docs/crawl/docs/_decorators/put.html +6 -0
  26. package/docs/crawl/docs/_misc/docs-mock-api.html +12 -0
  27. package/docs/crawl/docs/_misc/formelement-subscriber-removal.html +138 -0
  28. package/docs/crawl/docs/_misc/html-integration.html +3 -2
  29. package/docs/crawl/hubs/decorators.html +36 -31
  30. package/docs/crawl/hubs/remote-data.html +39 -36
  31. package/docs/crawl/index.html +2 -0
  32. package/docs/docs-mock-api-sw.js +110 -0
  33. package/docs/docs-mock-api-sw.js.map +3 -3
  34. package/docs/index.html +2 -2
  35. package/docs/llms-full.txt +240 -5
  36. package/docs/llms.txt +2 -0
  37. package/docs/sitemap.xml +6 -0
  38. package/docs/src/core/components/functional/jsonata/jsonata.md +56 -0
  39. package/docs/src/core/components/ui/form/checkbox/checkbox.md +1 -1
  40. package/docs/src/docs/_core-concept/dataFlow.md +10 -1
  41. package/docs/src/docs/_decorators/get.md +31 -0
  42. package/docs/src/docs/_decorators/patch.md +9 -0
  43. package/docs/src/docs/_decorators/post.md +11 -0
  44. package/docs/src/docs/_decorators/put.md +9 -0
  45. package/docs/src/docs/_misc/docs-mock-api.md +3 -0
  46. package/docs/src/docs/_misc/formelement-subscriber-removal.md +115 -0
  47. package/docs/src/docs/_misc/html-integration.md +2 -0
  48. package/docs/src/docs/search/docs-search.json +300 -5
  49. package/docs/src/tsconfig.json +286 -268
  50. package/package.json +382 -1080
  51. package/public/docs-mock-api-sw.js +110 -0
  52. package/public/docs-mock-api-sw.js.map +3 -3
  53. package/scripts/post-build.mjs +0 -43
  54. package/scripts/pre-build.mjs +4 -33
  55. package/scripts/pre-publish.mjs +0 -2
  56. package/src/core/components/functional/functional.ts +1 -0
  57. package/src/core/components/functional/jsonata/jsonata.md +56 -0
  58. package/src/core/components/functional/jsonata/jsonata.spec.ts +202 -0
  59. package/src/core/components/functional/jsonata/jsonata.ts +116 -0
  60. package/src/core/components/functional/sdui/sdui.md +0 -0
  61. package/src/core/components/ui/button/button.ts +2 -2
  62. package/src/core/components/ui/form/checkbox/checkbox.md +0 -0
  63. package/src/core/components/ui/form/input/input.ts +0 -0
  64. package/src/core/components/ui/form/input-autocomplete/input-autocomplete.md +0 -0
  65. package/src/core/components/ui/form/select/select.ts +0 -0
  66. package/src/core/components/ui/form/textarea/textarea.ts +0 -0
  67. package/src/core/decorators/Subscriber.ts +2 -0
  68. package/src/core/decorators/subscriber/derive.ts +95 -0
  69. package/src/core/utils/derive.spec.ts +190 -0
  70. package/src/core/utils/derive.ts +357 -0
  71. package/src/core/utils/jsonataHelpers.ts +100 -0
  72. package/src/core/utils/jsonataRuntime.ts +88 -0
  73. package/src/docs/_core-concept/dataFlow.md +9 -0
  74. package/src/docs/_getting-started/create-a-component.md +0 -0
  75. package/src/docs/_misc/docs-mock-api.md +3 -0
  76. package/src/docs/components/docs-demo-sources.ts +26 -0
  77. package/src/docs/docs.ts +1 -0
  78. package/src/docs/example/docs-jsonata-demos.ts +128 -0
  79. package/src/docs/mock-api/fixtures-jsonata.ts +131 -0
  80. package/src/docs/mock-api/router.ts +26 -0
  81. package/src/docs/navigation/navigation.ts +4 -0
  82. package/src/docs/search/docs-search.json +2210 -615
  83. package/src/tsconfig.json +327 -0
  84. package/src/tsconfig.tsbuildinfo +1 -1
  85. package/src/utils.ts +13 -0
  86. package/vite/config.js +23 -35
  87. package/dist/js/components.js +0 -12
  88. package/dist/js/components.js.map +0 -1
  89. package/dist/js/concorde-loaded.js +0 -5
  90. package/dist/js/concorde-loaded.js.map +0 -1
  91. package/dist/js/core/_types/endpoint.js +0 -5
  92. package/dist/js/core/_types/endpoint.js.map +0 -1
  93. package/dist/js/core/_types/key.js +0 -2
  94. package/dist/js/core/_types/key.js.map +0 -1
  95. package/dist/js/core/_types/types.js +0 -3
  96. package/dist/js/core/_types/types.js.map +0 -1
  97. package/dist/js/core/components/functional/date/date.js +0 -272
  98. package/dist/js/core/components/functional/date/date.js.map +0 -1
  99. package/dist/js/core/components/functional/example/example.js +0 -44
  100. package/dist/js/core/components/functional/example/example.js.map +0 -1
  101. package/dist/js/core/components/functional/fetch/fetch.js +0 -79
  102. package/dist/js/core/components/functional/fetch/fetch.js.map +0 -1
  103. package/dist/js/core/components/functional/functional.js +0 -17
  104. package/dist/js/core/components/functional/functional.js.map +0 -1
  105. package/dist/js/core/components/functional/if/if.js +0 -39
  106. package/dist/js/core/components/functional/if/if.js.map +0 -1
  107. package/dist/js/core/components/functional/list/list.js +0 -341
  108. package/dist/js/core/components/functional/list/list.js.map +0 -1
  109. package/dist/js/core/components/functional/mix/mix.js +0 -103
  110. package/dist/js/core/components/functional/mix/mix.js.map +0 -1
  111. package/dist/js/core/components/functional/queue/queue.js +0 -450
  112. package/dist/js/core/components/functional/queue/queue.js.map +0 -1
  113. package/dist/js/core/components/functional/router/redirect.js +0 -54
  114. package/dist/js/core/components/functional/router/redirect.js.map +0 -1
  115. package/dist/js/core/components/functional/router/router.js +0 -179
  116. package/dist/js/core/components/functional/router/router.js.map +0 -1
  117. package/dist/js/core/components/functional/sdui/SDUIDescriptorTransformer.js +0 -216
  118. package/dist/js/core/components/functional/sdui/SDUIDescriptorTransformer.js.map +0 -1
  119. package/dist/js/core/components/functional/sdui/default-library.json +0 -108
  120. package/dist/js/core/components/functional/sdui/sdui-utils.js +0 -64
  121. package/dist/js/core/components/functional/sdui/sdui-utils.js.map +0 -1
  122. package/dist/js/core/components/functional/sdui/sdui.js +0 -266
  123. package/dist/js/core/components/functional/sdui/sdui.js.map +0 -1
  124. package/dist/js/core/components/functional/sdui/types.js +0 -2
  125. package/dist/js/core/components/functional/sdui/types.js.map +0 -1
  126. package/dist/js/core/components/functional/sonic-scope/sonic-scope.js +0 -22
  127. package/dist/js/core/components/functional/sonic-scope/sonic-scope.js.map +0 -1
  128. package/dist/js/core/components/functional/states/states.js +0 -172
  129. package/dist/js/core/components/functional/states/states.js.map +0 -1
  130. package/dist/js/core/components/functional/submit/submit.js +0 -284
  131. package/dist/js/core/components/functional/submit/submit.js.map +0 -1
  132. package/dist/js/core/components/functional/subscriber/subscriber.js +0 -39
  133. package/dist/js/core/components/functional/subscriber/subscriber.js.map +0 -1
  134. package/dist/js/core/components/functional/translation/translation.js +0 -28
  135. package/dist/js/core/components/functional/translation/translation.js.map +0 -1
  136. package/dist/js/core/components/functional/value/value.js +0 -28
  137. package/dist/js/core/components/functional/value/value.js.map +0 -1
  138. package/dist/js/core/components/ui/_css/scroll.js +0 -27
  139. package/dist/js/core/components/ui/_css/scroll.js.map +0 -1
  140. package/dist/js/core/components/ui/_css/shadow.js +0 -22
  141. package/dist/js/core/components/ui/_css/shadow.js.map +0 -1
  142. package/dist/js/core/components/ui/_css/size.js +0 -36
  143. package/dist/js/core/components/ui/_css/size.js.map +0 -1
  144. package/dist/js/core/components/ui/_css/type.js +0 -92
  145. package/dist/js/core/components/ui/_css/type.js.map +0 -1
  146. package/dist/js/core/components/ui/alert/alert.js +0 -213
  147. package/dist/js/core/components/ui/alert/alert.js.map +0 -1
  148. package/dist/js/core/components/ui/alert-messages/alert-messages.js +0 -68
  149. package/dist/js/core/components/ui/alert-messages/alert-messages.js.map +0 -1
  150. package/dist/js/core/components/ui/badge/badge.js +0 -199
  151. package/dist/js/core/components/ui/badge/badge.js.map +0 -1
  152. package/dist/js/core/components/ui/button/button.js +0 -697
  153. package/dist/js/core/components/ui/button/button.js.map +0 -1
  154. package/dist/js/core/components/ui/captcha/altchaStyles.js +0 -226
  155. package/dist/js/core/components/ui/captcha/altchaStyles.js.map +0 -1
  156. package/dist/js/core/components/ui/captcha/captcha.js +0 -167
  157. package/dist/js/core/components/ui/captcha/captcha.js.map +0 -1
  158. package/dist/js/core/components/ui/card/card-footer.js +0 -26
  159. package/dist/js/core/components/ui/card/card-footer.js.map +0 -1
  160. package/dist/js/core/components/ui/card/card-header-descripton.js +0 -30
  161. package/dist/js/core/components/ui/card/card-header-descripton.js.map +0 -1
  162. package/dist/js/core/components/ui/card/card-header.js +0 -79
  163. package/dist/js/core/components/ui/card/card-header.js.map +0 -1
  164. package/dist/js/core/components/ui/card/card-main.js +0 -26
  165. package/dist/js/core/components/ui/card/card-main.js.map +0 -1
  166. package/dist/js/core/components/ui/card/card.js +0 -67
  167. package/dist/js/core/components/ui/card/card.js.map +0 -1
  168. package/dist/js/core/components/ui/divider/divider.js +0 -200
  169. package/dist/js/core/components/ui/divider/divider.js.map +0 -1
  170. package/dist/js/core/components/ui/form/checkbox/checkbox.js +0 -257
  171. package/dist/js/core/components/ui/form/checkbox/checkbox.js.map +0 -1
  172. package/dist/js/core/components/ui/form/css/form-control.js +0 -393
  173. package/dist/js/core/components/ui/form/css/form-control.js.map +0 -1
  174. package/dist/js/core/components/ui/form/fieldset/fieldset.js +0 -124
  175. package/dist/js/core/components/ui/form/fieldset/fieldset.js.map +0 -1
  176. package/dist/js/core/components/ui/form/fieldset/legend-description.js +0 -38
  177. package/dist/js/core/components/ui/form/fieldset/legend-description.js.map +0 -1
  178. package/dist/js/core/components/ui/form/fieldset/legend.js +0 -130
  179. package/dist/js/core/components/ui/form/fieldset/legend.js.map +0 -1
  180. package/dist/js/core/components/ui/form/form-actions/form-actions.js +0 -47
  181. package/dist/js/core/components/ui/form/form-actions/form-actions.js.map +0 -1
  182. package/dist/js/core/components/ui/form/form-layout/form-layout.js +0 -84
  183. package/dist/js/core/components/ui/form/form-layout/form-layout.js.map +0 -1
  184. package/dist/js/core/components/ui/form/input/input.js +0 -316
  185. package/dist/js/core/components/ui/form/input/input.js.map +0 -1
  186. package/dist/js/core/components/ui/form/input/password-helper.js +0 -134
  187. package/dist/js/core/components/ui/form/input/password-helper.js.map +0 -1
  188. package/dist/js/core/components/ui/form/input/same-value-helper.js +0 -85
  189. package/dist/js/core/components/ui/form/input/same-value-helper.js.map +0 -1
  190. package/dist/js/core/components/ui/form/input-autocomplete/input-autocomplete.js +0 -405
  191. package/dist/js/core/components/ui/form/input-autocomplete/input-autocomplete.js.map +0 -1
  192. package/dist/js/core/components/ui/form/radio/radio.js +0 -63
  193. package/dist/js/core/components/ui/form/radio/radio.js.map +0 -1
  194. package/dist/js/core/components/ui/form/select/select.js +0 -323
  195. package/dist/js/core/components/ui/form/select/select.js.map +0 -1
  196. package/dist/js/core/components/ui/form/switch/switch.js +0 -90
  197. package/dist/js/core/components/ui/form/switch/switch.js.map +0 -1
  198. package/dist/js/core/components/ui/form/textarea/textarea.js +0 -162
  199. package/dist/js/core/components/ui/form/textarea/textarea.js.map +0 -1
  200. package/dist/js/core/components/ui/group/group.js +0 -128
  201. package/dist/js/core/components/ui/group/group.js.map +0 -1
  202. package/dist/js/core/components/ui/icon/icon.js +0 -145
  203. package/dist/js/core/components/ui/icon/icon.js.map +0 -1
  204. package/dist/js/core/components/ui/icon/icons.js +0 -184
  205. package/dist/js/core/components/ui/icon/icons.js.map +0 -1
  206. package/dist/js/core/components/ui/icon/icons.json +0 -1
  207. package/dist/js/core/components/ui/image/image.js +0 -160
  208. package/dist/js/core/components/ui/image/image.js.map +0 -1
  209. package/dist/js/core/components/ui/link/link.js +0 -125
  210. package/dist/js/core/components/ui/link/link.js.map +0 -1
  211. package/dist/js/core/components/ui/loader/loader.js +0 -106
  212. package/dist/js/core/components/ui/loader/loader.js.map +0 -1
  213. package/dist/js/core/components/ui/loader/styles/fixed.js +0 -56
  214. package/dist/js/core/components/ui/loader/styles/fixed.js.map +0 -1
  215. package/dist/js/core/components/ui/loader/styles/inline.js +0 -70
  216. package/dist/js/core/components/ui/loader/styles/inline.js.map +0 -1
  217. package/dist/js/core/components/ui/menu/menu-item.js +0 -35
  218. package/dist/js/core/components/ui/menu/menu-item.js.map +0 -1
  219. package/dist/js/core/components/ui/menu/menu.js +0 -436
  220. package/dist/js/core/components/ui/menu/menu.js.map +0 -1
  221. package/dist/js/core/components/ui/modal/modal-actions.js +0 -44
  222. package/dist/js/core/components/ui/modal/modal-actions.js.map +0 -1
  223. package/dist/js/core/components/ui/modal/modal-close.js +0 -56
  224. package/dist/js/core/components/ui/modal/modal-close.js.map +0 -1
  225. package/dist/js/core/components/ui/modal/modal-content.js +0 -27
  226. package/dist/js/core/components/ui/modal/modal-content.js.map +0 -1
  227. package/dist/js/core/components/ui/modal/modal-subtitle.js +0 -34
  228. package/dist/js/core/components/ui/modal/modal-subtitle.js.map +0 -1
  229. package/dist/js/core/components/ui/modal/modal-title.js +0 -35
  230. package/dist/js/core/components/ui/modal/modal-title.js.map +0 -1
  231. package/dist/js/core/components/ui/modal/modal-utils.js +0 -32
  232. package/dist/js/core/components/ui/modal/modal-utils.js.map +0 -1
  233. package/dist/js/core/components/ui/modal/modal.js +0 -568
  234. package/dist/js/core/components/ui/modal/modal.js.map +0 -1
  235. package/dist/js/core/components/ui/pop/pop.js +0 -337
  236. package/dist/js/core/components/ui/pop/pop.js.map +0 -1
  237. package/dist/js/core/components/ui/progress/progress.js +0 -164
  238. package/dist/js/core/components/ui/progress/progress.js.map +0 -1
  239. package/dist/js/core/components/ui/table/table-caption.js +0 -29
  240. package/dist/js/core/components/ui/table/table-caption.js.map +0 -1
  241. package/dist/js/core/components/ui/table/table-tbody.js +0 -41
  242. package/dist/js/core/components/ui/table/table-tbody.js.map +0 -1
  243. package/dist/js/core/components/ui/table/table-td.js +0 -69
  244. package/dist/js/core/components/ui/table/table-td.js.map +0 -1
  245. package/dist/js/core/components/ui/table/table-tfoot.js +0 -28
  246. package/dist/js/core/components/ui/table/table-tfoot.js.map +0 -1
  247. package/dist/js/core/components/ui/table/table-th.js +0 -80
  248. package/dist/js/core/components/ui/table/table-th.js.map +0 -1
  249. package/dist/js/core/components/ui/table/table-thead.js +0 -26
  250. package/dist/js/core/components/ui/table/table-thead.js.map +0 -1
  251. package/dist/js/core/components/ui/table/table-tr.js +0 -67
  252. package/dist/js/core/components/ui/table/table-tr.js.map +0 -1
  253. package/dist/js/core/components/ui/table/table.js +0 -106
  254. package/dist/js/core/components/ui/table/table.js.map +0 -1
  255. package/dist/js/core/components/ui/theme/theme-collection/core-variables.js +0 -74
  256. package/dist/js/core/components/ui/theme/theme-collection/core-variables.js.map +0 -1
  257. package/dist/js/core/components/ui/theme/theme-collection/dark.js +0 -39
  258. package/dist/js/core/components/ui/theme/theme-collection/dark.js.map +0 -1
  259. package/dist/js/core/components/ui/theme/theme-collection/light.js +0 -32
  260. package/dist/js/core/components/ui/theme/theme-collection/light.js.map +0 -1
  261. package/dist/js/core/components/ui/theme/theme.js +0 -150
  262. package/dist/js/core/components/ui/theme/theme.js.map +0 -1
  263. package/dist/js/core/components/ui/toast/message-subscriber.js +0 -41
  264. package/dist/js/core/components/ui/toast/message-subscriber.js.map +0 -1
  265. package/dist/js/core/components/ui/toast/toast-item.js +0 -379
  266. package/dist/js/core/components/ui/toast/toast-item.js.map +0 -1
  267. package/dist/js/core/components/ui/toast/toast.js +0 -269
  268. package/dist/js/core/components/ui/toast/toast.js.map +0 -1
  269. package/dist/js/core/components/ui/toast/types.js +0 -2
  270. package/dist/js/core/components/ui/toast/types.js.map +0 -1
  271. package/dist/js/core/components/ui/tooltip/tooltip.js +0 -219
  272. package/dist/js/core/components/ui/tooltip/tooltip.js.map +0 -1
  273. package/dist/js/core/components/ui/ui.js +0 -41
  274. package/dist/js/core/components/ui/ui.js.map +0 -1
  275. package/dist/js/core/core.js +0 -14
  276. package/dist/js/core/core.js.map +0 -1
  277. package/dist/js/core/decorators/Subscriber.js +0 -9
  278. package/dist/js/core/decorators/Subscriber.js.map +0 -1
  279. package/dist/js/core/decorators/api.js +0 -806
  280. package/dist/js/core/decorators/api.js.map +0 -1
  281. package/dist/js/core/decorators/lifecycle.js +0 -67
  282. package/dist/js/core/decorators/lifecycle.js.map +0 -1
  283. package/dist/js/core/decorators/subscriber/ancestorAttribute.js +0 -27
  284. package/dist/js/core/decorators/subscriber/ancestorAttribute.js.map +0 -1
  285. package/dist/js/core/decorators/subscriber/autoFill.js +0 -26
  286. package/dist/js/core/decorators/subscriber/autoFill.js.map +0 -1
  287. package/dist/js/core/decorators/subscriber/autoSubscribe.js +0 -46
  288. package/dist/js/core/decorators/subscriber/autoSubscribe.js.map +0 -1
  289. package/dist/js/core/decorators/subscriber/bind.js +0 -150
  290. package/dist/js/core/decorators/subscriber/bind.js.map +0 -1
  291. package/dist/js/core/decorators/subscriber/common.js +0 -44
  292. package/dist/js/core/decorators/subscriber/common.js.map +0 -1
  293. package/dist/js/core/decorators/subscriber/dynamicPath.js +0 -75
  294. package/dist/js/core/decorators/subscriber/dynamicPath.js.map +0 -1
  295. package/dist/js/core/decorators/subscriber/dynamicPropertyWatch.js +0 -138
  296. package/dist/js/core/decorators/subscriber/dynamicPropertyWatch.js.map +0 -1
  297. package/dist/js/core/decorators/subscriber/handle.js +0 -22
  298. package/dist/js/core/decorators/subscriber/handle.js.map +0 -1
  299. package/dist/js/core/decorators/subscriber/onAssign.js +0 -199
  300. package/dist/js/core/decorators/subscriber/onAssign.js.map +0 -1
  301. package/dist/js/core/decorators/subscriber/publish.js +0 -108
  302. package/dist/js/core/decorators/subscriber/publish.js.map +0 -1
  303. package/dist/js/core/decorators/subscriber/publisherPath.js +0 -16
  304. package/dist/js/core/decorators/subscriber/publisherPath.js.map +0 -1
  305. package/dist/js/core/decorators/subscriber/subscribe.js +0 -20
  306. package/dist/js/core/decorators/subscriber/subscribe.js.map +0 -1
  307. package/dist/js/core/directives/DataProvider.js +0 -127
  308. package/dist/js/core/directives/DataProvider.js.map +0 -1
  309. package/dist/js/core/directives/Wording.js +0 -221
  310. package/dist/js/core/directives/Wording.js.map +0 -1
  311. package/dist/js/core/mixins/Fetcher.js +0 -325
  312. package/dist/js/core/mixins/Fetcher.js.map +0 -1
  313. package/dist/js/core/mixins/FormCheckable.js +0 -313
  314. package/dist/js/core/mixins/FormCheckable.js.map +0 -1
  315. package/dist/js/core/mixins/FormElement.js +0 -304
  316. package/dist/js/core/mixins/FormElement.js.map +0 -1
  317. package/dist/js/core/mixins/FormInput.js +0 -82
  318. package/dist/js/core/mixins/FormInput.js.map +0 -1
  319. package/dist/js/core/mixins/Subscriber.js +0 -354
  320. package/dist/js/core/mixins/Subscriber.js.map +0 -1
  321. package/dist/js/core/mixins/TemplatesContainer.js +0 -70
  322. package/dist/js/core/mixins/TemplatesContainer.js.map +0 -1
  323. package/dist/js/core/mixins/mixins.js +0 -7
  324. package/dist/js/core/mixins/mixins.js.map +0 -1
  325. package/dist/js/core/utils/AncestorAttributeObserver.js +0 -140
  326. package/dist/js/core/utils/AncestorAttributeObserver.js.map +0 -1
  327. package/dist/js/core/utils/Arrays.js +0 -141
  328. package/dist/js/core/utils/Arrays.js.map +0 -1
  329. package/dist/js/core/utils/DataBindObserver.js +0 -265
  330. package/dist/js/core/utils/DataBindObserver.js.map +0 -1
  331. package/dist/js/core/utils/Electron.js +0 -14
  332. package/dist/js/core/utils/Electron.js.map +0 -1
  333. package/dist/js/core/utils/Format.js +0 -43
  334. package/dist/js/core/utils/Format.js.map +0 -1
  335. package/dist/js/core/utils/HTML.js +0 -272
  336. package/dist/js/core/utils/HTML.js.map +0 -1
  337. package/dist/js/core/utils/LocationHandler.js +0 -143
  338. package/dist/js/core/utils/LocationHandler.js.map +0 -1
  339. package/dist/js/core/utils/Objects.js +0 -111
  340. package/dist/js/core/utils/Objects.js.map +0 -1
  341. package/dist/js/core/utils/PublisherProxy.js +0 -946
  342. package/dist/js/core/utils/PublisherProxy.js.map +0 -1
  343. package/dist/js/core/utils/SafariScrollGuard.js +0 -384
  344. package/dist/js/core/utils/SafariScrollGuard.js.map +0 -1
  345. package/dist/js/core/utils/Utils.js +0 -19
  346. package/dist/js/core/utils/Utils.js.map +0 -1
  347. package/dist/js/core/utils/aesCrypto.js +0 -98
  348. package/dist/js/core/utils/aesCrypto.js.map +0 -1
  349. package/dist/js/core/utils/api.js +0 -595
  350. package/dist/js/core/utils/api.js.map +0 -1
  351. package/dist/js/core/utils/dataProviderKey.js +0 -64
  352. package/dist/js/core/utils/dataProviderKey.js.map +0 -1
  353. package/dist/js/core/utils/endpoint.js +0 -74
  354. package/dist/js/core/utils/endpoint.js.map +0 -1
  355. package/dist/js/core/utils/route.js +0 -149
  356. package/dist/js/core/utils/route.js.map +0 -1
  357. package/dist/js/core/utils/url-pattern.js +0 -3
  358. package/dist/js/core/utils/url-pattern.js.map +0 -1
  359. package/dist/js/dataprovider.js +0 -2
  360. package/dist/js/dataprovider.js.map +0 -1
  361. package/dist/js/decorators.js +0 -43
  362. package/dist/js/decorators.js.map +0 -1
  363. package/dist/js/directives.js +0 -30
  364. package/dist/js/directives.js.map +0 -1
  365. package/dist/js/index.js +0 -8
  366. package/dist/js/index.js.map +0 -1
  367. package/dist/js/mixins.js +0 -23
  368. package/dist/js/mixins.js.map +0 -1
  369. package/dist/js/test-utils/TestUtils.js +0 -10
  370. package/dist/js/test-utils/TestUtils.js.map +0 -1
  371. package/dist/js/utils.js +0 -44
  372. package/dist/js/utils.js.map +0 -1
  373. package/dist/types/components.d.ts +0 -5
  374. package/dist/types/components.d.ts.map +0 -1
  375. package/dist/types/concorde-loaded.d.ts +0 -2
  376. package/dist/types/concorde-loaded.d.ts.map +0 -1
  377. package/dist/types/core/_types/endpoint.d.ts +0 -5
  378. package/dist/types/core/_types/endpoint.d.ts.map +0 -1
  379. package/dist/types/core/_types/key.d.ts +0 -2
  380. package/dist/types/core/_types/key.d.ts.map +0 -1
  381. package/dist/types/core/_types/types.d.ts +0 -28
  382. package/dist/types/core/_types/types.d.ts.map +0 -1
  383. package/dist/types/core/components/functional/date/date.d.ts +0 -52
  384. package/dist/types/core/components/functional/date/date.d.ts.map +0 -1
  385. package/dist/types/core/components/functional/example/example.d.ts +0 -15
  386. package/dist/types/core/components/functional/example/example.d.ts.map +0 -1
  387. package/dist/types/core/components/functional/fetch/fetch.d.ts +0 -102
  388. package/dist/types/core/components/functional/fetch/fetch.d.ts.map +0 -1
  389. package/dist/types/core/components/functional/functional.d.ts +0 -17
  390. package/dist/types/core/components/functional/functional.d.ts.map +0 -1
  391. package/dist/types/core/components/functional/if/if.d.ts +0 -13
  392. package/dist/types/core/components/functional/if/if.d.ts.map +0 -1
  393. package/dist/types/core/components/functional/list/list.d.ts +0 -149
  394. package/dist/types/core/components/functional/list/list.d.ts.map +0 -1
  395. package/dist/types/core/components/functional/mix/mix.d.ts +0 -23
  396. package/dist/types/core/components/functional/mix/mix.d.ts.map +0 -1
  397. package/dist/types/core/components/functional/queue/queue.d.ts +0 -93
  398. package/dist/types/core/components/functional/queue/queue.d.ts.map +0 -1
  399. package/dist/types/core/components/functional/router/redirect.d.ts +0 -19
  400. package/dist/types/core/components/functional/router/redirect.d.ts.map +0 -1
  401. package/dist/types/core/components/functional/router/router.d.ts +0 -46
  402. package/dist/types/core/components/functional/router/router.d.ts.map +0 -1
  403. package/dist/types/core/components/functional/sdui/SDUIDescriptorTransformer.d.ts +0 -59
  404. package/dist/types/core/components/functional/sdui/SDUIDescriptorTransformer.d.ts.map +0 -1
  405. package/dist/types/core/components/functional/sdui/sdui-utils.d.ts +0 -6
  406. package/dist/types/core/components/functional/sdui/sdui-utils.d.ts.map +0 -1
  407. package/dist/types/core/components/functional/sdui/sdui.d.ts +0 -145
  408. package/dist/types/core/components/functional/sdui/sdui.d.ts.map +0 -1
  409. package/dist/types/core/components/functional/sdui/types.d.ts +0 -38
  410. package/dist/types/core/components/functional/sdui/types.d.ts.map +0 -1
  411. package/dist/types/core/components/functional/sonic-scope/sonic-scope.d.ts +0 -6
  412. package/dist/types/core/components/functional/sonic-scope/sonic-scope.d.ts.map +0 -1
  413. package/dist/types/core/components/functional/states/states.d.ts +0 -42
  414. package/dist/types/core/components/functional/states/states.d.ts.map +0 -1
  415. package/dist/types/core/components/functional/submit/submit.d.ts +0 -37
  416. package/dist/types/core/components/functional/submit/submit.d.ts.map +0 -1
  417. package/dist/types/core/components/functional/subscriber/subscriber.d.ts +0 -13
  418. package/dist/types/core/components/functional/subscriber/subscriber.d.ts.map +0 -1
  419. package/dist/types/core/components/functional/translation/translation.d.ts +0 -7
  420. package/dist/types/core/components/functional/translation/translation.d.ts.map +0 -1
  421. package/dist/types/core/components/functional/value/value.d.ts +0 -8
  422. package/dist/types/core/components/functional/value/value.d.ts.map +0 -1
  423. package/dist/types/core/components/ui/_css/scroll.d.ts +0 -2
  424. package/dist/types/core/components/ui/_css/scroll.d.ts.map +0 -1
  425. package/dist/types/core/components/ui/_css/shadow.d.ts +0 -3
  426. package/dist/types/core/components/ui/_css/shadow.d.ts.map +0 -1
  427. package/dist/types/core/components/ui/_css/size.d.ts +0 -3
  428. package/dist/types/core/components/ui/_css/size.d.ts.map +0 -1
  429. package/dist/types/core/components/ui/_css/type.d.ts +0 -3
  430. package/dist/types/core/components/ui/_css/type.d.ts.map +0 -1
  431. package/dist/types/core/components/ui/alert/alert.d.ts +0 -37
  432. package/dist/types/core/components/ui/alert/alert.d.ts.map +0 -1
  433. package/dist/types/core/components/ui/alert-messages/alert-messages.d.ts +0 -15
  434. package/dist/types/core/components/ui/alert-messages/alert-messages.d.ts.map +0 -1
  435. package/dist/types/core/components/ui/badge/badge.d.ts +0 -27
  436. package/dist/types/core/components/ui/badge/badge.d.ts.map +0 -1
  437. package/dist/types/core/components/ui/button/button.d.ts +0 -180
  438. package/dist/types/core/components/ui/button/button.d.ts.map +0 -1
  439. package/dist/types/core/components/ui/captcha/altchaStyles.d.ts +0 -2
  440. package/dist/types/core/components/ui/captcha/altchaStyles.d.ts.map +0 -1
  441. package/dist/types/core/components/ui/captcha/captcha.d.ts +0 -30
  442. package/dist/types/core/components/ui/captcha/captcha.d.ts.map +0 -1
  443. package/dist/types/core/components/ui/card/card-footer.d.ts +0 -6
  444. package/dist/types/core/components/ui/card/card-footer.d.ts.map +0 -1
  445. package/dist/types/core/components/ui/card/card-header-descripton.d.ts +0 -6
  446. package/dist/types/core/components/ui/card/card-header-descripton.d.ts.map +0 -1
  447. package/dist/types/core/components/ui/card/card-header.d.ts +0 -9
  448. package/dist/types/core/components/ui/card/card-header.d.ts.map +0 -1
  449. package/dist/types/core/components/ui/card/card-main.d.ts +0 -6
  450. package/dist/types/core/components/ui/card/card-main.d.ts.map +0 -1
  451. package/dist/types/core/components/ui/card/card.d.ts +0 -13
  452. package/dist/types/core/components/ui/card/card.d.ts.map +0 -1
  453. package/dist/types/core/components/ui/divider/divider.d.ts +0 -16
  454. package/dist/types/core/components/ui/divider/divider.d.ts.map +0 -1
  455. package/dist/types/core/components/ui/form/checkbox/checkbox.d.ts +0 -176
  456. package/dist/types/core/components/ui/form/checkbox/checkbox.d.ts.map +0 -1
  457. package/dist/types/core/components/ui/form/css/form-control.d.ts +0 -5
  458. package/dist/types/core/components/ui/form/css/form-control.d.ts.map +0 -1
  459. package/dist/types/core/components/ui/form/fieldset/fieldset.d.ts +0 -24
  460. package/dist/types/core/components/ui/form/fieldset/fieldset.d.ts.map +0 -1
  461. package/dist/types/core/components/ui/form/fieldset/legend-description.d.ts +0 -6
  462. package/dist/types/core/components/ui/form/fieldset/legend-description.d.ts.map +0 -1
  463. package/dist/types/core/components/ui/form/fieldset/legend.d.ts +0 -17
  464. package/dist/types/core/components/ui/form/fieldset/legend.d.ts.map +0 -1
  465. package/dist/types/core/components/ui/form/form-actions/form-actions.d.ts +0 -8
  466. package/dist/types/core/components/ui/form/form-actions/form-actions.d.ts.map +0 -1
  467. package/dist/types/core/components/ui/form/form-layout/form-layout.d.ts +0 -13
  468. package/dist/types/core/components/ui/form/form-layout/form-layout.d.ts.map +0 -1
  469. package/dist/types/core/components/ui/form/input/input.d.ts +0 -123
  470. package/dist/types/core/components/ui/form/input/input.d.ts.map +0 -1
  471. package/dist/types/core/components/ui/form/input/password-helper.d.ts +0 -26
  472. package/dist/types/core/components/ui/form/input/password-helper.d.ts.map +0 -1
  473. package/dist/types/core/components/ui/form/input/same-value-helper.d.ts +0 -17
  474. package/dist/types/core/components/ui/form/input/same-value-helper.d.ts.map +0 -1
  475. package/dist/types/core/components/ui/form/input-autocomplete/input-autocomplete.d.ts +0 -155
  476. package/dist/types/core/components/ui/form/input-autocomplete/input-autocomplete.d.ts.map +0 -1
  477. package/dist/types/core/components/ui/form/radio/radio.d.ts +0 -15
  478. package/dist/types/core/components/ui/form/radio/radio.d.ts.map +0 -1
  479. package/dist/types/core/components/ui/form/select/select.d.ts +0 -59
  480. package/dist/types/core/components/ui/form/select/select.d.ts.map +0 -1
  481. package/dist/types/core/components/ui/form/switch/switch.d.ts +0 -6
  482. package/dist/types/core/components/ui/form/switch/switch.d.ts.map +0 -1
  483. package/dist/types/core/components/ui/form/textarea/textarea.d.ts +0 -94
  484. package/dist/types/core/components/ui/form/textarea/textarea.d.ts.map +0 -1
  485. package/dist/types/core/components/ui/group/group.d.ts +0 -17
  486. package/dist/types/core/components/ui/group/group.d.ts.map +0 -1
  487. package/dist/types/core/components/ui/icon/icon.d.ts +0 -30
  488. package/dist/types/core/components/ui/icon/icon.d.ts.map +0 -1
  489. package/dist/types/core/components/ui/icon/icons.d.ts +0 -13
  490. package/dist/types/core/components/ui/icon/icons.d.ts.map +0 -1
  491. package/dist/types/core/components/ui/image/image.d.ts +0 -16
  492. package/dist/types/core/components/ui/image/image.d.ts.map +0 -1
  493. package/dist/types/core/components/ui/link/link.d.ts +0 -30
  494. package/dist/types/core/components/ui/link/link.d.ts.map +0 -1
  495. package/dist/types/core/components/ui/loader/loader.d.ts +0 -24
  496. package/dist/types/core/components/ui/loader/loader.d.ts.map +0 -1
  497. package/dist/types/core/components/ui/loader/styles/fixed.d.ts +0 -2
  498. package/dist/types/core/components/ui/loader/styles/fixed.d.ts.map +0 -1
  499. package/dist/types/core/components/ui/loader/styles/inline.d.ts +0 -2
  500. package/dist/types/core/components/ui/loader/styles/inline.d.ts.map +0 -1
  501. package/dist/types/core/components/ui/menu/menu-item.d.ts +0 -6
  502. package/dist/types/core/components/ui/menu/menu-item.d.ts.map +0 -1
  503. package/dist/types/core/components/ui/menu/menu.d.ts +0 -52
  504. package/dist/types/core/components/ui/menu/menu.d.ts.map +0 -1
  505. package/dist/types/core/components/ui/modal/modal-actions.d.ts +0 -9
  506. package/dist/types/core/components/ui/modal/modal-actions.d.ts.map +0 -1
  507. package/dist/types/core/components/ui/modal/modal-close.d.ts +0 -11
  508. package/dist/types/core/components/ui/modal/modal-close.d.ts.map +0 -1
  509. package/dist/types/core/components/ui/modal/modal-content.d.ts +0 -6
  510. package/dist/types/core/components/ui/modal/modal-content.d.ts.map +0 -1
  511. package/dist/types/core/components/ui/modal/modal-subtitle.d.ts +0 -6
  512. package/dist/types/core/components/ui/modal/modal-subtitle.d.ts.map +0 -1
  513. package/dist/types/core/components/ui/modal/modal-title.d.ts +0 -6
  514. package/dist/types/core/components/ui/modal/modal-title.d.ts.map +0 -1
  515. package/dist/types/core/components/ui/modal/modal-utils.d.ts +0 -4
  516. package/dist/types/core/components/ui/modal/modal-utils.d.ts.map +0 -1
  517. package/dist/types/core/components/ui/modal/modal.d.ts +0 -79
  518. package/dist/types/core/components/ui/modal/modal.d.ts.map +0 -1
  519. package/dist/types/core/components/ui/pop/pop.d.ts +0 -42
  520. package/dist/types/core/components/ui/pop/pop.d.ts.map +0 -1
  521. package/dist/types/core/components/ui/progress/progress.d.ts +0 -12
  522. package/dist/types/core/components/ui/progress/progress.d.ts.map +0 -1
  523. package/dist/types/core/components/ui/table/table-caption.d.ts +0 -6
  524. package/dist/types/core/components/ui/table/table-caption.d.ts.map +0 -1
  525. package/dist/types/core/components/ui/table/table-tbody.d.ts +0 -6
  526. package/dist/types/core/components/ui/table/table-tbody.d.ts.map +0 -1
  527. package/dist/types/core/components/ui/table/table-td.d.ts +0 -13
  528. package/dist/types/core/components/ui/table/table-td.d.ts.map +0 -1
  529. package/dist/types/core/components/ui/table/table-tfoot.d.ts +0 -6
  530. package/dist/types/core/components/ui/table/table-tfoot.d.ts.map +0 -1
  531. package/dist/types/core/components/ui/table/table-th.d.ts +0 -12
  532. package/dist/types/core/components/ui/table/table-th.d.ts.map +0 -1
  533. package/dist/types/core/components/ui/table/table-thead.d.ts +0 -6
  534. package/dist/types/core/components/ui/table/table-thead.d.ts.map +0 -1
  535. package/dist/types/core/components/ui/table/table-tr.d.ts +0 -14
  536. package/dist/types/core/components/ui/table/table-tr.d.ts.map +0 -1
  537. package/dist/types/core/components/ui/table/table.d.ts +0 -18
  538. package/dist/types/core/components/ui/table/table.d.ts.map +0 -1
  539. package/dist/types/core/components/ui/theme/theme-collection/core-variables.d.ts +0 -2
  540. package/dist/types/core/components/ui/theme/theme-collection/core-variables.d.ts.map +0 -1
  541. package/dist/types/core/components/ui/theme/theme-collection/dark.d.ts +0 -2
  542. package/dist/types/core/components/ui/theme/theme-collection/dark.d.ts.map +0 -1
  543. package/dist/types/core/components/ui/theme/theme-collection/light.d.ts +0 -2
  544. package/dist/types/core/components/ui/theme/theme-collection/light.d.ts.map +0 -1
  545. package/dist/types/core/components/ui/theme/theme.d.ts +0 -20
  546. package/dist/types/core/components/ui/theme/theme.d.ts.map +0 -1
  547. package/dist/types/core/components/ui/toast/message-subscriber.d.ts +0 -19
  548. package/dist/types/core/components/ui/toast/message-subscriber.d.ts.map +0 -1
  549. package/dist/types/core/components/ui/toast/toast-item.d.ts +0 -41
  550. package/dist/types/core/components/ui/toast/toast-item.d.ts.map +0 -1
  551. package/dist/types/core/components/ui/toast/toast.d.ts +0 -28
  552. package/dist/types/core/components/ui/toast/toast.d.ts.map +0 -1
  553. package/dist/types/core/components/ui/toast/types.d.ts +0 -12
  554. package/dist/types/core/components/ui/toast/types.d.ts.map +0 -1
  555. package/dist/types/core/components/ui/tooltip/tooltip.d.ts +0 -21
  556. package/dist/types/core/components/ui/tooltip/tooltip.d.ts.map +0 -1
  557. package/dist/types/core/components/ui/ui.d.ts +0 -35
  558. package/dist/types/core/components/ui/ui.d.ts.map +0 -1
  559. package/dist/types/core/core.d.ts +0 -5
  560. package/dist/types/core/core.d.ts.map +0 -1
  561. package/dist/types/core/decorators/Subscriber.d.ts +0 -11
  562. package/dist/types/core/decorators/Subscriber.d.ts.map +0 -1
  563. package/dist/types/core/decorators/api.d.ts +0 -155
  564. package/dist/types/core/decorators/api.d.ts.map +0 -1
  565. package/dist/types/core/decorators/lifecycle.d.ts +0 -19
  566. package/dist/types/core/decorators/lifecycle.d.ts.map +0 -1
  567. package/dist/types/core/decorators/subscriber/ancestorAttribute.d.ts +0 -11
  568. package/dist/types/core/decorators/subscriber/ancestorAttribute.d.ts.map +0 -1
  569. package/dist/types/core/decorators/subscriber/autoFill.d.ts +0 -2
  570. package/dist/types/core/decorators/subscriber/autoFill.d.ts.map +0 -1
  571. package/dist/types/core/decorators/subscriber/autoSubscribe.d.ts +0 -2
  572. package/dist/types/core/decorators/subscriber/autoSubscribe.d.ts.map +0 -1
  573. package/dist/types/core/decorators/subscriber/bind.d.ts +0 -28
  574. package/dist/types/core/decorators/subscriber/bind.d.ts.map +0 -1
  575. package/dist/types/core/decorators/subscriber/common.d.ts +0 -14
  576. package/dist/types/core/decorators/subscriber/common.d.ts.map +0 -1
  577. package/dist/types/core/decorators/subscriber/dynamicPath.d.ts +0 -23
  578. package/dist/types/core/decorators/subscriber/dynamicPath.d.ts.map +0 -1
  579. package/dist/types/core/decorators/subscriber/dynamicPropertyWatch.d.ts +0 -42
  580. package/dist/types/core/decorators/subscriber/dynamicPropertyWatch.d.ts.map +0 -1
  581. package/dist/types/core/decorators/subscriber/handle.d.ts +0 -74
  582. package/dist/types/core/decorators/subscriber/handle.d.ts.map +0 -1
  583. package/dist/types/core/decorators/subscriber/onAssign.d.ts +0 -53
  584. package/dist/types/core/decorators/subscriber/onAssign.d.ts.map +0 -1
  585. package/dist/types/core/decorators/subscriber/publish.d.ts +0 -23
  586. package/dist/types/core/decorators/subscriber/publish.d.ts.map +0 -1
  587. package/dist/types/core/decorators/subscriber/publisherPath.d.ts +0 -3
  588. package/dist/types/core/decorators/subscriber/publisherPath.d.ts.map +0 -1
  589. package/dist/types/core/decorators/subscriber/subscribe.d.ts +0 -20
  590. package/dist/types/core/decorators/subscriber/subscribe.d.ts.map +0 -1
  591. package/dist/types/core/directives/DataProvider.d.ts +0 -45
  592. package/dist/types/core/directives/DataProvider.d.ts.map +0 -1
  593. package/dist/types/core/directives/Wording.d.ts +0 -44
  594. package/dist/types/core/directives/Wording.d.ts.map +0 -1
  595. package/dist/types/core/mixins/Fetcher.d.ts +0 -108
  596. package/dist/types/core/mixins/Fetcher.d.ts.map +0 -1
  597. package/dist/types/core/mixins/FormCheckable.d.ts +0 -95
  598. package/dist/types/core/mixins/FormCheckable.d.ts.map +0 -1
  599. package/dist/types/core/mixins/FormElement.d.ts +0 -37
  600. package/dist/types/core/mixins/FormElement.d.ts.map +0 -1
  601. package/dist/types/core/mixins/FormInput.d.ts +0 -79
  602. package/dist/types/core/mixins/FormInput.d.ts.map +0 -1
  603. package/dist/types/core/mixins/Subscriber.d.ts +0 -38
  604. package/dist/types/core/mixins/Subscriber.d.ts.map +0 -1
  605. package/dist/types/core/mixins/TemplatesContainer.d.ts +0 -14
  606. package/dist/types/core/mixins/TemplatesContainer.d.ts.map +0 -1
  607. package/dist/types/core/mixins/mixins.d.ts +0 -7
  608. package/dist/types/core/mixins/mixins.d.ts.map +0 -1
  609. package/dist/types/core/utils/AncestorAttributeObserver.d.ts +0 -38
  610. package/dist/types/core/utils/AncestorAttributeObserver.d.ts.map +0 -1
  611. package/dist/types/core/utils/Arrays.d.ts +0 -98
  612. package/dist/types/core/utils/Arrays.d.ts.map +0 -1
  613. package/dist/types/core/utils/DataBindObserver.d.ts +0 -84
  614. package/dist/types/core/utils/DataBindObserver.d.ts.map +0 -1
  615. package/dist/types/core/utils/Electron.d.ts +0 -8
  616. package/dist/types/core/utils/Electron.d.ts.map +0 -1
  617. package/dist/types/core/utils/Format.d.ts +0 -13
  618. package/dist/types/core/utils/Format.d.ts.map +0 -1
  619. package/dist/types/core/utils/HTML.d.ts +0 -79
  620. package/dist/types/core/utils/HTML.d.ts.map +0 -1
  621. package/dist/types/core/utils/LocationHandler.d.ts +0 -48
  622. package/dist/types/core/utils/LocationHandler.d.ts.map +0 -1
  623. package/dist/types/core/utils/Objects.d.ts +0 -31
  624. package/dist/types/core/utils/Objects.d.ts.map +0 -1
  625. package/dist/types/core/utils/PublisherProxy.d.ts +0 -230
  626. package/dist/types/core/utils/PublisherProxy.d.ts.map +0 -1
  627. package/dist/types/core/utils/SafariScrollGuard.d.ts +0 -36
  628. package/dist/types/core/utils/SafariScrollGuard.d.ts.map +0 -1
  629. package/dist/types/core/utils/Utils.d.ts +0 -6
  630. package/dist/types/core/utils/Utils.d.ts.map +0 -1
  631. package/dist/types/core/utils/aesCrypto.d.ts +0 -53
  632. package/dist/types/core/utils/aesCrypto.d.ts.map +0 -1
  633. package/dist/types/core/utils/api.d.ts +0 -173
  634. package/dist/types/core/utils/api.d.ts.map +0 -1
  635. package/dist/types/core/utils/dataProviderKey.d.ts +0 -56
  636. package/dist/types/core/utils/dataProviderKey.d.ts.map +0 -1
  637. package/dist/types/core/utils/endpoint.d.ts +0 -37
  638. package/dist/types/core/utils/endpoint.d.ts.map +0 -1
  639. package/dist/types/core/utils/route.d.ts +0 -41
  640. package/dist/types/core/utils/route.d.ts.map +0 -1
  641. package/dist/types/core/utils/url-pattern.d.ts +0 -3
  642. package/dist/types/core/utils/url-pattern.d.ts.map +0 -1
  643. package/dist/types/dataprovider.d.ts +0 -2
  644. package/dist/types/dataprovider.d.ts.map +0 -1
  645. package/dist/types/decorators.d.ts +0 -30
  646. package/dist/types/decorators.d.ts.map +0 -1
  647. package/dist/types/directives.d.ts +0 -21
  648. package/dist/types/directives.d.ts.map +0 -1
  649. package/dist/types/index.d.ts +0 -8
  650. package/dist/types/index.d.ts.map +0 -1
  651. package/dist/types/mixins.d.ts +0 -204
  652. package/dist/types/mixins.d.ts.map +0 -1
  653. package/dist/types/test-utils/TestUtils.d.ts +0 -4
  654. package/dist/types/test-utils/TestUtils.d.ts.map +0 -1
  655. package/dist/types/utils.d.ts +0 -18
  656. package/dist/types/utils.d.ts.map +0 -1
  657. package/docs/assets/index-DURr6O71.js +0 -11453
@@ -135,7 +135,8 @@ Quick map
135
135
  | HTTP GET | @get + Endpoint, or sonic-list / sonic-queue with fetch |
136
136
  | HTTP POST (body from store) | @post + Endpoint + body DataProviderKey |
137
137
  | HTTP PUT / PATCH (body from store) | @put / @patch — same model as @post |
138
- | Forms | formDataProvider + name on fields |
138
+ | Forms | formDataProvider + name on fields (no Subscriber on form elements) |
139
+ | Derived / aggregate (JSONata) | derive() or sonic-jsonata — Jsonata |
139
140
  | Offline doc demos | serviceURL="/docs-mock-api" — Local API demos |
140
141
 
141
142
  Skill: concorde-get-set-dp in the package ai/ folder.
@@ -145,10 +146,7 @@ DataProviderKey
145
146
  import { DataProviderKey } from "@supersoniks/concorde/dataProviderKey";
146
147
  import { dp, get, set } from "@supersoniks/concorde/utils";
147
148
 
148
- const cartKey = new DataProviderKey<{ items: string[] }>("cart");
149
-
150
- set(cartKey, { items: [] });
151
- dp(c</pre>
149
+ c</pre>
152
150
  </section>
153
151
  <section id="docs-_decorators-get" data-doc-id="docs/_decorators/get">
154
152
  <h2><a href="../docs/_decorators/get.html">@get</a></h2>
@@ -171,6 +169,17 @@ const usersEndpoint = new Endpoint (&quot;users&quot;);
171
169
  @state()
172
170
  payload?: ApiResult ;
173
171
 
172
+ The same decorator adapts to a method. The method receives the complete
173
+ ApiResult payload after each GET:
174
+
175
+ @get(usersEndpoint)
176
+ handleUsers(payload?: ApiResult ) {
177
+ if (!payload) return;
178
+
179
+ console.log(payload.response?.status);
180
+ console.log(payload.result);
181
+ }
182
+
174
183
  The first argument is always an
175
184
  Endpoint . API configuration is read
176
185
  from the HTML scope (serviceURL, token, etc.), so the component is usually
@@ -192,16 +201,7 @@ payload?: ApiResult ;
192
201
 
193
202
  async refresh() {
194
203
  const payload = await usersGet.refetch(this);
195
- console.log(payload?.result);
196
- }
197
-
198
- refetch(component) returns a Promise | undefined&gt; that resolves
199
- after the GET has completed.
200
-
201
- From a method decorator
202
-
203
- The refetch can decorate a local method. The default is after; if the
204
- method returns a Promise, the GET waits for its resol</pre>
204
+ console.log(</pre>
205
205
  </section>
206
206
  <section id="docs-_decorators-patch" data-doc-id="docs/_decorators/patch">
207
207
  <h2><a href="../docs/_decorators/patch.html">@patch</a></h2>
@@ -223,6 +223,13 @@ const patchUser = patch(new Endpoint (&quot;users/42&quot;), bodyKey);
223
223
  @state()
224
224
  payload?: ApiResult ;
225
225
 
226
+ The same decorator adapts to a method:
227
+
228
+ @patch(new Endpoint (&quot;users/42&quot;), bodyKey)
229
+ handlePatch(payload?: ApiResult ) {
230
+ if (payload?.response?.ok) console.log(payload.result);
231
+ }
232
+
226
233
  To run the operation again from the component:
227
234
 
228
235
  async savePatch() {
@@ -249,13 +256,7 @@ Pass explicit API configuration as the third argument:
249
256
 
250
257
  Import
251
258
 
252
- import { patch, type ApiResult } from &quot;@supersoniks/concorde/decorators&quot;;
253
- import { DataProviderKey } from &quot;@supersoniks/concorde/dataProviderKey&quot;;
254
- import { Endpoint } from &quot;@supersoniks/concorde/utils/endpoint&quot;;
255
-
256
- See also
257
-
258
- - @post —</pre>
259
+ import { patch, type ApiResult } from &quot;@supersoniks/</pre>
259
260
  </section>
260
261
  <section id="docs-_decorators-post" data-doc-id="docs/_decorators/post">
261
262
  <h2><a href="../docs/_decorators/post.html">@post</a></h2>
@@ -278,6 +279,13 @@ const createUser = post(new Endpoint (&quot;users&quot;), userBodyKey);
278
279
  @state()
279
280
  payload?: ApiResult ;
280
281
 
282
+ The same decorator adapts to a method and receives the complete payload:
283
+
284
+ @post(new Endpoint (&quot;users&quot;), userBodyKey)
285
+ handleCreate(payload?: ApiResult ) {
286
+ if (payload?.response?.ok) console.log(payload.result);
287
+ }
288
+
281
289
  The current body is read from userBodyKey. By default, the POST is sent when
282
290
  the component connects and after each body mutation. Mutations in the same
283
291
  frame are coalesced into one request.
@@ -298,13 +306,7 @@ async saveAgain() {
298
306
  }
299
307
 
300
308
  send() returns a Promise | undefined&gt; that resolves after the
301
- operation completes. It is useful for “Save” or “Retry” buttons and can repeat
302
- an operation with side effects.
303
-
304
- From a method decorator
305
-
306
- The send action can decorate a local method. It runs after the method by
307
- default, waits for an eventu</pre>
309
+ operation completes. It</pre>
308
310
  </section>
309
311
  <section id="docs-_decorators-put" data-doc-id="docs/_decorators/put">
310
312
  <h2><a href="../docs/_decorators/put.html">@put</a></h2>
@@ -326,6 +328,13 @@ const updateUser = put(new Endpoint (&quot;users/42&quot;), bodyKey);
326
328
  @state()
327
329
  payload?: ApiResult ;
328
330
 
331
+ The same decorator adapts to a method:
332
+
333
+ @put(new Endpoint (&quot;users/42&quot;), bodyKey)
334
+ handleUpdate(payload?: ApiResult ) {
335
+ if (payload?.response?.ok) console.log(payload.result);
336
+ }
337
+
329
338
  To run the operation again from the component:
330
339
 
331
340
  async update() {
@@ -353,13 +362,7 @@ Pass explicit API configuration as the third argument:
353
362
  Import
354
363
 
355
364
  import { put, type ApiResult } from &quot;@supersoniks/concorde/decorators&quot;;
356
- import { DataProviderKey } from &quot;@supersoniks/concorde/dataProviderKey&quot;;
357
- import { Endpoint } from &quot;@supersoniks/concorde/utils/endpoint&quot;;
358
-
359
- See also
360
-
361
- - @post — options and triggers
362
- - @</pre>
365
+ impo</pre>
363
366
  </section>
364
367
  <section id="docs-_misc-api-configuration" data-doc-id="docs/_misc/api-configuration">
365
368
  <h2><a href="../docs/_misc/api-configuration.html">API configuration</a></h2>
@@ -24,6 +24,7 @@
24
24
  <li><a href="core/components/functional/date/date.html">Date</a> <small>(core/components/functional/date/date)</small></li>
25
25
  <li><a href="core/components/functional/fetch/fetch.html">Fetch</a> <small>(core/components/functional/fetch/fetch)</small></li>
26
26
  <li><a href="core/components/functional/if/if.html">if</a> <small>(core/components/functional/if/if)</small></li>
27
+ <li><a href="core/components/functional/jsonata/jsonata.html">Jsonata</a> <small>(core/components/functional/jsonata/jsonata)</small></li>
27
28
  <li><a href="core/components/functional/list/list.html">List</a> <small>(core/components/functional/list/list)</small></li>
28
29
  <li><a href="core/components/functional/mix/mix.html">Mix</a> <small>(core/components/functional/mix/mix)</small></li>
29
30
  <li><a href="core/components/functional/queue/queue.html">Queue</a> <small>(core/components/functional/queue/queue)</small></li>
@@ -92,6 +93,7 @@
92
93
  <li><a href="docs/_misc/docs-mock-api.html">Local API demos (offline)</a> <small>(docs/_misc/docs-mock-api)</small></li>
93
94
  <li><a href="docs/_misc/dynamic-path.html">Dynamic path placeholders</a> <small>(docs/_misc/dynamic-path)</small></li>
94
95
  <li><a href="docs/_misc/endpoint.html">Endpoint</a> <small>(docs/_misc/endpoint)</small></li>
96
+ <li><a href="docs/_misc/formelement-subscriber-removal.html">FormElement without Subscriber (REDMINE-79569)</a> <small>(docs/_misc/formelement-subscriber-removal)</small></li>
95
97
  <li><a href="docs/_misc/html-integration.html">HTML integration (no Lit)</a> <small>(docs/_misc/html-integration)</small></li>
96
98
  </ul>
97
99
  </main>
@@ -396,6 +396,99 @@
396
396
  return { error: false, amount: jokes.length, jokes };
397
397
  }
398
398
 
399
+ // src/docs/mock-api/fixtures-jsonata.ts
400
+ var avatar = (seed) => `https://i.pravatar.cc/150?u=${encodeURIComponent(seed)}`;
401
+ var DOCS_SPACE_CAT_MISSIONS = [
402
+ {
403
+ id: 1,
404
+ name: "Captain Whiskers",
405
+ planet: "Mars",
406
+ mission: "Laser hunt",
407
+ points: 40,
408
+ avatar: avatar("captain-whiskers")
409
+ },
410
+ {
411
+ id: 2,
412
+ name: "Captain Whiskers",
413
+ planet: "Mars",
414
+ mission: "Dust nap",
415
+ points: 25,
416
+ avatar: avatar("captain-whiskers")
417
+ },
418
+ {
419
+ id: 3,
420
+ name: "Nebula Paws",
421
+ planet: "Europa",
422
+ mission: "Ice fishing",
423
+ points: 55,
424
+ avatar: avatar("nebula-paws")
425
+ },
426
+ {
427
+ id: 4,
428
+ name: "Astro Mittens",
429
+ planet: "Titan",
430
+ mission: "Methane surf",
431
+ points: 33,
432
+ avatar: avatar("astro-mittens")
433
+ },
434
+ {
435
+ id: 5,
436
+ name: "Nebula Paws",
437
+ planet: "Europa",
438
+ mission: "Comet chase",
439
+ points: 20,
440
+ avatar: avatar("nebula-paws")
441
+ },
442
+ {
443
+ id: 6,
444
+ name: "Professor Meowington",
445
+ planet: "Venus",
446
+ mission: "Cloud tasting",
447
+ points: 48,
448
+ avatar: avatar("prof-meowington")
449
+ },
450
+ {
451
+ id: 7,
452
+ name: "Astro Mittens",
453
+ planet: "Titan",
454
+ mission: "Antenna polish",
455
+ points: 12,
456
+ avatar: avatar("astro-mittens")
457
+ },
458
+ {
459
+ id: 8,
460
+ name: "Zero-G Socks",
461
+ planet: "Moon",
462
+ mission: "Flag knitting",
463
+ points: 61,
464
+ avatar: avatar("zero-g-socks")
465
+ }
466
+ ];
467
+ var DOCS_COFFEE_BAGS = [
468
+ { id: 1, origin: "Ethiopia", roast: "light", kg: 12, farm: "Yirgacheffe Hills" },
469
+ { id: 2, origin: "Ethiopia", roast: "medium", kg: 8, farm: "Sidamo Ridge" },
470
+ { id: 3, origin: "Colombia", roast: "medium", kg: 15, farm: "Huila Valley" },
471
+ { id: 4, origin: "Colombia", roast: "dark", kg: 6, farm: "Cauca Peak" },
472
+ { id: 5, origin: "Brazil", roast: "dark", kg: 22, farm: "Minas Gerais" },
473
+ { id: 6, origin: "Brazil", roast: "medium", kg: 10, farm: "Cerrado" },
474
+ { id: 7, origin: "Guatemala", roast: "light", kg: 9, farm: "Antigua" },
475
+ { id: 8, origin: "Guatemala", roast: "dark", kg: 5, farm: "Huehuetenango" },
476
+ { id: 9, origin: "Ethiopia", roast: "light", kg: 4, farm: "Guji Forest" }
477
+ ];
478
+ function filterCoffeeBags(bags, roast) {
479
+ const r = roast?.trim().toLowerCase();
480
+ if (!r || r === "all") return bags;
481
+ return bags.filter((b) => b.roast === r);
482
+ }
483
+ var DOCS_MARKET_ORDER_LINES = [
484
+ { id: 1, name: "Heirloom tomatoes", qty: 4, unitPrice: 3.5, category: "veg" },
485
+ { id: 2, name: "Sourdough loaf", qty: 2, unitPrice: 6, category: "bakery" },
486
+ { id: 3, name: "Goat cheese", qty: 1, unitPrice: 8.5, category: "dairy" },
487
+ { id: 4, name: "Honey jar", qty: 3, unitPrice: 5.2, category: "pantry" },
488
+ { id: 5, name: "Sunflowers", qty: 5, unitPrice: 2, category: "flowers" },
489
+ { id: 6, name: "Free-range eggs", qty: 2, unitPrice: 4.8, category: "dairy" }
490
+ ];
491
+
399
492
  // src/docs/mock-api/router.ts
400
493
  var DOCS_MOCK_API_PREFIX = "/docs-mock-api";
401
494
  function json2(body, init = {}) {
@@ -577,6 +670,23 @@
577
670
  if (subPath === "/api/users") {
578
671
  return json2(paginateUsers(url));
579
672
  }
673
+ if (subPath === "/api/space-cats") {
674
+ return json2({
675
+ data: DOCS_SPACE_CAT_MISSIONS,
676
+ total: DOCS_SPACE_CAT_MISSIONS.length
677
+ });
678
+ }
679
+ if (subPath === "/api/coffee-bags") {
680
+ const roast = url.searchParams.get("roast");
681
+ const data = filterCoffeeBags(DOCS_COFFEE_BAGS, roast);
682
+ return json2({ data, total: data.length });
683
+ }
684
+ if (subPath === "/api/market-order") {
685
+ return json2({
686
+ data: DOCS_MARKET_ORDER_LINES,
687
+ total: DOCS_MARKET_ORDER_LINES.length
688
+ });
689
+ }
580
690
  if (subPath === "/geo/communes" || subPath.startsWith("/geo/communes")) {
581
691
  return json2(geoCommunes(url), {
582
692
  headers: { "X-Fetched-At": (/* @__PURE__ */ new Date()).toISOString() }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/docs/mock-api/urls.ts", "../src/docs/mock-api/api-config-mock.ts", "../src/docs/mock-api/fixtures.ts", "../src/docs/mock-api/router.ts", "../src/docs/mock-api/service-worker.ts"],
4
- "sourcesContent": ["/** Base same-origin pour les d\u00E9mos doc (Service Worker + middleware Vite). */\nexport const DOCS_MOCK_API_BASE = \"/docs-mock-api\";\n\n/** Remplace https://reqres.in \u2014 chemins `api/users`, `api/users/2`, etc. */\nexport const DOCS_MOCK_REQRES_SERVICE = DOCS_MOCK_API_BASE;\n\n/** Remplace https://geo.api.gouv.fr/ \u2014 chemins `communes?\u2026`. */\nexport const DOCS_MOCK_GEO_SERVICE = `${DOCS_MOCK_API_BASE}/geo/`;\n\n/** Remplace https://v2.jokeapi.dev \u2014 chemins `joke/Any?\u2026`. */\nexport const DOCS_MOCK_JOKES_SERVICE = `${DOCS_MOCK_API_BASE}/jokes`;\n", "import { DOCS_MOCK_API_BASE } from \"./urls\";\n\n/** Bearer accept\u00E9 par GET /api/config/protected */\nexport const DOCS_MOCK_TOKEN_VALID = \"docs-mock-valid-token\";\n/** D\u00E9clenche HTTP 498 \u2192 renouvellement via tokenProvider */\nexport const DOCS_MOCK_TOKEN_STALE = \"docs-mock-stale-token\";\n/** \u00C9mis par GET /auth/token apr\u00E8s Basic auth ou eventsApiToken */\nexport const DOCS_MOCK_TOKEN_FRESH = \"docs-mock-fresh-token\";\n\nconst DOCS_MOCK_BASIC_USER = \"demo\";\nconst DOCS_MOCK_BASIC_PASSWORD = \"secret\";\n/** Valeur de l\u2019attribut anc\u00EAtre `eventsApiToken` (Bearer pour /auth/token) */\nexport const DOCS_MOCK_EVENTS_API_TOKEN = \"docs-mock-events-token\";\n\nconst WORDING_CATALOG: Record<string, Record<string, string>> = {\n \"api-config.greeting\": { fr: \"Bonjour\", en: \"Hello\" },\n \"api-config.farewell\": { fr: \"Au revoir\", en: \"Goodbye\" },\n \"api-config.hint\": {\n fr: \"Libell\u00E9s servis par le mock /wording/labels\",\n en: \"Labels served by mock /wording/labels\",\n },\n};\n\nfunction json(body: unknown, init: ResponseInit = {}): Response {\n const headers = new Headers(init.headers);\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n headers.set(\"Access-Control-Allow-Origin\", \"*\");\n headers.set(\"X-Docs-Mock-Api\", \"concorde-api-config\");\n return new Response(JSON.stringify(body), { ...init, headers });\n}\n\ntype ParsedAuth =\n | { kind: \"none\" }\n | { kind: \"basic\"; user: string; password: string }\n | { kind: \"bearer\"; token: string };\n\nfunction parseAuthorization(request: Request): ParsedAuth {\n const header = request.headers.get(\"authorization\");\n if (!header) return { kind: \"none\" };\n const basic = header.match(/^Basic\\s+(.+)$/i);\n if (basic) {\n try {\n const decoded = atob(basic[1]);\n const sep = decoded.indexOf(\":\");\n if (sep < 0) return { kind: \"none\" };\n return {\n kind: \"basic\",\n user: decoded.slice(0, sep),\n password: decoded.slice(sep + 1),\n };\n } catch {\n return { kind: \"none\" };\n }\n }\n const bearer = header.match(/^Bearer\\s+(.+)$/i);\n if (bearer) return { kind: \"bearer\", token: bearer[1].trim() };\n return { kind: \"none\" };\n}\n\nfunction isValidBasic(auth: ParsedAuth): boolean {\n return (\n auth.kind === \"basic\" &&\n auth.user === DOCS_MOCK_BASIC_USER &&\n auth.password === DOCS_MOCK_BASIC_PASSWORD\n );\n}\n\nfunction wordingLabels(url: URL): Response {\n const lang = url.searchParams.get(\"lang\") || \"fr\";\n const labels = url.searchParams.getAll(\"labels[]\").length\n ? url.searchParams.getAll(\"labels[]\")\n : url.searchParams.getAll(\"labels\");\n const result: Record<string, string> = {};\n for (const key of labels) {\n const entry = WORDING_CATALOG[key];\n result[key] =\n entry?.[lang] ?? entry?.en ?? `[missing:${key}]`;\n }\n return json({ lang, labels: result, ...result });\n}\n\n/**\n * Routes mock pour la page doc APIConfiguration (token, 498, wording).\n */\nexport function handleApiConfigMockRequest(\n request: Request,\n subPath: string,\n method: string,\n): Response | null {\n if (subPath === \"/auth/token\" && method === \"GET\") {\n const auth = parseAuthorization(request);\n if (isValidBasic(auth)) {\n return json({\n token: DOCS_MOCK_TOKEN_FRESH,\n source: \"basic\",\n serviceHost: new URL(request.url).searchParams.get(\"serviceHost\"),\n });\n }\n if (\n auth.kind === \"bearer\" &&\n auth.token === DOCS_MOCK_EVENTS_API_TOKEN\n ) {\n return json({\n token: DOCS_MOCK_TOKEN_FRESH,\n source: \"eventsApiToken\",\n });\n }\n return json({ error: \"Unauthorized\" }, { status: 401 });\n }\n\n if (subPath === \"/api/config/protected\" && method === \"GET\") {\n const auth = parseAuthorization(request);\n if (auth.kind === \"bearer\") {\n if (auth.token === DOCS_MOCK_TOKEN_STALE) {\n return json({ error: \"Token expired\", code: \"token_stale\" }, { status: 498 });\n }\n if (\n auth.token === DOCS_MOCK_TOKEN_VALID ||\n auth.token === DOCS_MOCK_TOKEN_FRESH\n ) {\n return json({\n ok: true,\n message: \"Protected resource\",\n tokenUsed: auth.token,\n });\n }\n }\n if (isValidBasic(auth)) {\n return json({\n ok: true,\n message: \"Protected resource (basic)\",\n tokenUsed: null,\n });\n }\n return json({ error: \"Unauthorized\" }, { status: 401 });\n }\n\n if (\n (subPath === \"/wording/labels\" || subPath.startsWith(\"/wording/labels\")) &&\n method === \"GET\"\n ) {\n return wordingLabels(new URL(request.url));\n }\n\n return null;\n}\n\nexport const API_CONFIG_MOCK_PATHS = [\n `${DOCS_MOCK_API_BASE}/auth/token`,\n `${DOCS_MOCK_API_BASE}/api/config/protected`,\n `${DOCS_MOCK_API_BASE}/wording/labels`,\n] as const;\n", "/** Donn\u00E9es type ReqRes pour les d\u00E9mos doc (sans appel externe). */\n\nexport type ReqresUser = {\n id: number;\n email: string;\n first_name: string;\n last_name: string;\n avatar: string;\n};\n\nconst reqresAvatar = (seed: string) =>\n `https://i.pravatar.cc/150?u=${encodeURIComponent(seed)}`;\n\nconst REQRES_EXTRA_NAMES: [string, string][] = [\n [\"Michael\", \"Lawson\"],\n [\"Tobias\", \"Funke\"],\n [\"Lindsay\", \"Funke\"],\n [\"Maeby\", \"Funke\"],\n [\"George\", \"Michael\"],\n [\"Annye\", \"Vang\"],\n [\"Rachel\", \"Howe\"],\n [\"Terry\", \"Medhurst\"],\n [\"Bette\", \"Haag\"],\n [\"Lester\", \"Solomon\"],\n [\"April\", \"Douglas\"],\n [\"Marian\", \"Roberts\"],\n [\"Kathryn\", \"Murphy\"],\n [\"Gloria\", \"Armstrong\"],\n [\"Adam\", \"Bradley\"],\n [\"Angela\", \"Hicks\"],\n [\"Rose\", \"Wheeler\"],\n [\"Sara\", \"Berry\"],\n [\"Glen\", \"Kuhn\"],\n [\"Roger\", \"Cox\"],\n];\n\nfunction buildReqresUser(\n id: number,\n first_name: string,\n last_name: string,\n): ReqresUser {\n const slug = `${first_name}-${last_name}`.toLowerCase();\n return {\n id,\n email: `${first_name.toLowerCase()}.${last_name.toLowerCase()}@example.com`,\n first_name,\n last_name,\n avatar: reqresAvatar(slug),\n };\n}\n\n/** Jeu \u00E9tendu pour d\u00E9mos queue / lazyload (pagination par offset). */\nexport const DOCS_REQRES_USERS: ReqresUser[] = [\n buildReqresUser(1, \"George\", \"Bluth\"),\n buildReqresUser(2, \"Janet\", \"Weaver\"),\n buildReqresUser(3, \"Emma\", \"Wong\"),\n buildReqresUser(4, \"Eve\", \"Holt\"),\n ...REQRES_EXTRA_NAMES.map(([first_name, last_name], index) =>\n buildReqresUser(5 + index, first_name, last_name),\n ),\n];\n\nexport type ReqresUserResponse = { data: ReqresUser };\nexport type ReqresUsersListResponse = {\n page: number;\n per_page: number;\n total: number;\n total_pages: number;\n data: ReqresUser[];\n};\n\n/** Filter users for mock search (`q` \u2014 first name, last name, email). Same logic as the TS starter. */\nexport function filterDocsUsers(\n users: ReqresUser[],\n query: string | null | undefined,\n): ReqresUser[] {\n const q = query?.trim().toLowerCase();\n if (!q) return users;\n return users.filter((user) => {\n const haystack =\n `${user.first_name} ${user.last_name} ${user.email}`.toLowerCase();\n return haystack.includes(q);\n });\n}\n\nexport type GeoCommuneRow = { nom: string; code: string };\n\nexport const DOCS_GEO_COMMUNES: GeoCommuneRow[] = [\n { nom: \"Paris\", code: \"75056\" },\n { nom: \"Lyon\", code: \"69123\" },\n { nom: \"Marseille\", code: \"13055\" },\n { nom: \"Toulouse\", code: \"31555\" },\n { nom: \"Lille\", code: \"59350\" },\n { nom: \"Bordeaux\", code: \"33063\" },\n { nom: \"Nantes\", code: \"44109\" },\n { nom: \"Strasbourg\", code: \"67482\" },\n { nom: \"Montpellier\", code: \"34172\" },\n { nom: \"Rennes\", code: \"35238\" },\n];\n\n/** JokeAPI-style content flags (checkbox / radio / switch blacklist demos). */\nexport type DocsJokeFlagKey =\n | \"nsfw\"\n | \"religious\"\n | \"political\"\n | \"racist\"\n | \"sexist\"\n | \"explicit\";\n\n/** Forme proche de JokeAPI v2 (`key=\"jokes\"` sur sonic-queue / list). */\nexport type DocsJokeItem = {\n categories: string[];\n createdAt: string;\n id: number;\n joke: string;\n lang: \"fr\" | \"en\";\n flags: Record<DocsJokeFlagKey, boolean>;\n safe: boolean;\n type: string;\n setup?: string;\n delivery?: string;\n};\n\nconst jokeFlags = (\n partial: Partial<Record<DocsJokeFlagKey, boolean>> = {},\n): Record<DocsJokeFlagKey, boolean> => ({\n nsfw: false,\n religious: false,\n political: false,\n racist: false,\n sexist: false,\n explicit: false,\n ...partial,\n});\n\nexport type DocsJokeApiResponse = {\n error: boolean;\n amount: number;\n jokes: DocsJokeItem[];\n};\n\nconst SAMPLE_JOKES: DocsJokeItem[] = [\n {\n categories: [\"Programming\"],\n createdAt: \"2020-01-01 00:00:00\",\n id: 1,\n lang: \"en\",\n joke: \"Why do programmers prefer dark mode? Because light attracts bugs.\",\n flags: jokeFlags(),\n safe: true,\n type: \"single\",\n },\n {\n categories: [\"Misc\"],\n createdAt: \"2020-01-02 00:00:00\",\n id: 2,\n lang: \"en\",\n joke: \"I told my computer I needed a break \u2014 it said: no problem, I'll go to sleep.\",\n flags: jokeFlags({ nsfw: true }),\n safe: false,\n type: \"single\",\n },\n {\n categories: [\"Pun\"],\n createdAt: \"2020-01-03 00:00:00\",\n id: 3,\n lang: \"en\",\n joke: \"Concorde docs run offline: even the API is a local joke.\",\n flags: jokeFlags(),\n safe: true,\n type: \"single\",\n },\n {\n categories: [\"Animals\"],\n createdAt: \"2020-01-04 00:00:00\",\n id: 4,\n lang: \"en\",\n joke: \"The dog ate my homework and my pull request.\",\n flags: jokeFlags({ political: true }),\n safe: true,\n type: \"single\",\n },\n {\n categories: [\"Animals\", \"Pun\"],\n createdAt: \"2020-01-05 00:00:00\",\n id: 5,\n lang: \"fr\",\n joke: \"Quel est le chien pr\u00E9f\u00E9r\u00E9 des d\u00E9veloppeurs ? Le labrador Retriever.\",\n flags: jokeFlags(),\n safe: true,\n type: \"single\",\n },\n {\n categories: [\"Animals\"],\n createdAt: \"2020-01-06 00:00:00\",\n id: 6,\n lang: \"fr\",\n joke: \"Un chat et un chien discutent de TypeScript : le chien dit \u00AB woof \u00BB, le chat compile.\",\n flags: jokeFlags({ racist: true }),\n safe: false,\n type: \"single\",\n },\n {\n categories: [\"Misc\"],\n createdAt: \"2020-01-07 00:00:00\",\n id: 7,\n lang: \"fr\",\n joke: \"Pourquoi les blagues offline sont-elles fiables ? Parce qu'elles passent par le Service Worker.\",\n flags: jokeFlags({ religious: true }),\n safe: true,\n type: \"single\",\n },\n {\n categories: [\"Programming\"],\n createdAt: \"2020-01-08 00:00:00\",\n id: 8,\n lang: \"fr\",\n joke: \"Mon compilateur et mon chien : tous deux ignorent mes commandes jusqu'au build.\",\n flags: jokeFlags({ sexist: true }),\n safe: false,\n type: \"single\",\n },\n {\n categories: [\"Misc\"],\n createdAt: \"2020-01-09 00:00:00\",\n id: 9,\n lang: \"en\",\n joke: \"A SQL query walks into a bar, walks up to two tables and asks: Can I join you?\",\n flags: jokeFlags({ explicit: true }),\n safe: false,\n type: \"single\",\n },\n {\n categories: [\"Pun\"],\n createdAt: \"2020-01-10 00:00:00\",\n id: 10,\n lang: \"fr\",\n joke: \"J'ai cherch\u00E9 \u00AB chien \u00BB dans la doc : le mock API a r\u00E9pondu.\",\n flags: jokeFlags(),\n safe: true,\n type: \"single\",\n },\n {\n categories: [\"Misc\"],\n createdAt: \"2020-01-11 00:00:00\",\n id: 11,\n lang: \"en\",\n joke: \"There are only two hard things in Computer Science: cache invalidation and naming things.\",\n flags: jokeFlags({ political: true, explicit: true }),\n safe: false,\n type: \"single\",\n },\n {\n categories: [\"Animals\"],\n createdAt: \"2020-01-12 00:00:00\",\n id: 12,\n lang: \"fr\",\n joke: \"Le golden retriever a r\u00E9cup\u00E9r\u00E9 la donn\u00E9e du publisher.\",\n flags: jokeFlags({ racist: true, sexist: true }),\n safe: false,\n type: \"two-liner\",\n setup: \"Pourquoi le chien aime Concorde ?\",\n delivery: \"Parce qu'il sait fetch.\",\n },\n {\n categories: [\"Misc\"],\n createdAt: \"2020-01-13 00:00:00\",\n id: 13,\n lang: \"en\",\n joke: \"My code and my conscience: both have too many warnings.\",\n flags: jokeFlags(),\n safe: true,\n type: \"single\",\n },\n {\n categories: [\"Programming\"],\n createdAt: \"2020-01-14 00:00:00\",\n id: 14,\n lang: \"en\",\n joke: \"Git blame is just a mirror.\",\n flags: jokeFlags({ religious: true, political: true }),\n safe: false,\n type: \"single\",\n },\n];\n\n/** `blacklistFlags` from queue filter form (comma-separated or repeated param). */\nexport function parseBlacklistFlags(url: URL): DocsJokeFlagKey[] {\n const keys = new Set<DocsJokeFlagKey>();\n const valid: DocsJokeFlagKey[] = [\n \"nsfw\",\n \"religious\",\n \"political\",\n \"racist\",\n \"sexist\",\n \"explicit\",\n ];\n const add = (raw: string) => {\n raw\n .split(\",\")\n .map((s) => s.trim().toLowerCase())\n .forEach((part) => {\n if (valid.includes(part as DocsJokeFlagKey)) keys.add(part as DocsJokeFlagKey);\n });\n };\n url.searchParams.getAll(\"blacklistFlags\").forEach(add);\n const single = url.searchParams.get(\"blacklistFlags\");\n if (single) add(single);\n return [...keys];\n}\n\n/** Exclude jokes that match any blacklisted flag (JokeAPI-style). */\nexport function applyJokeBlacklist(\n jokes: DocsJokeItem[],\n blacklist: DocsJokeFlagKey[],\n): DocsJokeItem[] {\n if (!blacklist.length) return jokes;\n return jokes.filter(\n (j) => !blacklist.some((flag) => j.flags[flag] === true),\n );\n}\n\n/** Filtre doc joke queue (`contains`, `lang`, `blacklistFlags` via `dataFilterProvider`). */\nexport function filterDocsJokes(\n jokes: DocsJokeItem[],\n url: URL,\n): DocsJokeItem[] {\n let pool = jokes;\n const contains = url.searchParams.get(\"contains\")?.trim().toLowerCase();\n if (contains) {\n pool = pool.filter((j) => {\n const haystack = [j.joke, j.setup, j.delivery, ...j.categories]\n .filter(Boolean)\n .join(\" \")\n .toLowerCase();\n return haystack.includes(contains);\n });\n }\n const lang = url.searchParams.get(\"lang\")?.trim().toLowerCase();\n if (lang === \"fr\" || lang === \"en\") {\n pool = pool.filter((j) => j.lang === lang);\n }\n pool = applyJokeBlacklist(pool, parseBlacklistFlags(url));\n return pool;\n}\n\n/**\n * R\u00E9ponse type JokeAPI v2.\n * - `amount` : taille du lot si pas de `offset`\n * - `offset` + `limit` / `per_page` : pagination (sonic-queue lazy)\n * - `contains`, `lang`, `blacklistFlags` : filtres formulaire (queue \u00AB Remove following jokes \u00BB)\n */\nexport function buildJokeApiResponse(url: URL): DocsJokeApiResponse {\n const pool = filterDocsJokes(SAMPLE_JOKES, url);\n const amount = Math.max(\n 1,\n parseInt(url.searchParams.get(\"amount\") || \"10\", 10),\n );\n const hasOffset = url.searchParams.has(\"offset\");\n const limit = Math.max(\n 1,\n parseInt(\n url.searchParams.get(\"limit\") ||\n url.searchParams.get(\"per_page\") ||\n String(amount),\n 10,\n ),\n );\n const offset = Math.max(0, parseInt(url.searchParams.get(\"offset\") || \"0\", 10));\n const start = hasOffset ? offset : 0;\n const count = hasOffset ? limit : amount;\n const jokes = pool.slice(start, start + count).map((j, i) => ({\n ...j,\n id: start + i + 1,\n }));\n return { error: false, amount: jokes.length, jokes };\n}\n", "import { handleApiConfigMockRequest } from \"./api-config-mock\";\nimport {\n DOCS_GEO_COMMUNES,\n DOCS_REQRES_USERS,\n buildJokeApiResponse,\n filterDocsUsers,\n type GeoCommuneRow,\n type ReqresUserResponse,\n type ReqresUsersListResponse,\n} from \"./fixtures\";\n\nexport const DOCS_MOCK_API_PREFIX = \"/docs-mock-api\";\n\nfunction json(\n body: unknown,\n init: ResponseInit & { delayMs?: number } = {},\n): Promise<Response> {\n const { delayMs = 0, ...responseInit } = init;\n const headers = new Headers(responseInit.headers);\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n headers.set(\"Access-Control-Allow-Origin\", \"*\");\n headers.set(\"X-Docs-Mock-Api\", \"concorde\");\n\n const build = () =>\n new Response(JSON.stringify(body), { ...responseInit, headers });\n\n if (delayMs <= 0) return Promise.resolve(build());\n return new Promise((resolve) =>\n setTimeout(() => resolve(build()), delayMs),\n );\n}\n\n/**\n * Liste utilisateurs type ReqRes.\n * - `offset` + `per_page` / `limit` : pagination index\u00E9e (sonic-queue avec `$offset` / `$limit`)\n * - `page` + `per_page` : num\u00E9ro de page 1-based (sonic-fetch, ex. `?page=2`)\n * - `q` : recherche sur pr\u00E9nom, nom, email (sonic-queue + `dataFilterProvider`, champ `name=\"q\"`)\n */\nexport function paginateUsers(url: URL): ReqresUsersListResponse {\n const perPage = Math.max(\n 1,\n parseInt(\n url.searchParams.get(\"per_page\") ||\n url.searchParams.get(\"limit\") ||\n \"6\",\n 10,\n ),\n );\n const pool = filterDocsUsers(DOCS_REQRES_USERS, url.searchParams.get(\"q\"));\n const total = pool.length;\n\n let start: number;\n let page: number;\n\n if (url.searchParams.has(\"offset\")) {\n start = Math.max(0, parseInt(url.searchParams.get(\"offset\") || \"0\", 10));\n page = Math.floor(start / perPage) + 1;\n } else {\n page = Math.max(1, parseInt(url.searchParams.get(\"page\") || \"1\", 10));\n start = (page - 1) * perPage;\n }\n\n const data = pool.slice(start, start + perPage);\n\n return {\n page,\n per_page: perPage,\n total,\n total_pages: Math.max(1, Math.ceil(total / perPage)),\n data,\n };\n}\n\nasync function parseRegisterFields(\n request: Request,\n): Promise<{ email?: string; password?: string }> {\n const contentType = (request.headers.get(\"content-type\") || \"\").toLowerCase();\n\n if (contentType.includes(\"multipart/form-data\")) {\n const fd = await request.formData();\n return {\n email: String(fd.get(\"email\") ?? \"\"),\n password: String(fd.get(\"password\") ?? \"\"),\n };\n }\n\n if (contentType.includes(\"application/x-www-form-urlencoded\")) {\n const text = await request.text();\n const params = new URLSearchParams(text);\n return {\n email: params.get(\"email\") ?? \"\",\n password: params.get(\"password\") ?? \"\",\n };\n }\n\n const text = await request.text();\n if (!text.trim()) return {};\n\n try {\n const parsed = JSON.parse(text) as { email?: unknown; password?: unknown };\n return {\n email: parsed.email != null ? String(parsed.email) : \"\",\n password: parsed.password != null ? String(parsed.password) : \"\",\n };\n } catch {\n const params = new URLSearchParams(text);\n if (params.has(\"email\") || params.has(\"password\")) {\n return {\n email: params.get(\"email\") ?? \"\",\n password: params.get(\"password\") ?? \"\",\n };\n }\n return {};\n }\n}\n\nfunction registerOkBody(\n fields: { email: string; password: string },\n nested = false,\n) {\n const payload = {\n id: 4,\n token: \"docs-mock-register-token\",\n email: fields.email,\n };\n return nested ? { data: payload } : payload;\n}\n\nfunction geoCommunes(url: URL): GeoCommuneRow[] {\n const limit = Math.max(\n 1,\n parseInt(url.searchParams.get(\"limit\") || \"5\", 10),\n );\n const offset = Math.max(0, parseInt(url.searchParams.get(\"offset\") || \"0\", 10));\n return DOCS_GEO_COMMUNES.slice(offset, offset + limit);\n}\n\n/**\n * Intercepte les requ\u00EAtes vers /docs-mock-api/* (Service Worker ou middleware Vite).\n */\nexport async function handleDocsMockApiRequest(\n request: Request,\n): Promise<Response | null> {\n const url = new URL(request.url);\n if (!url.pathname.startsWith(DOCS_MOCK_API_PREFIX)) return null;\n\n const subPath = url.pathname.slice(DOCS_MOCK_API_PREFIX.length) || \"/\";\n const method = request.method.toUpperCase();\n\n if (subPath === \"/health\") {\n return json({ ok: true, service: \"concorde-docs-mock-api\" });\n }\n\n const apiConfigResponse = handleApiConfigMockRequest(request, subPath, method);\n if (apiConfigResponse) return apiConfigResponse;\n\n if (\n (subPath === \"/api/register\" || subPath === \"/api/register/nested\") &&\n method === \"POST\"\n ) {\n const body = await parseRegisterFields(request);\n if (!body.email?.trim() || !body.password?.trim()) {\n return json(\n {\n messages: [\n {\n content: \"email and password are required\",\n status: \"error\",\n },\n ],\n },\n { status: 400 },\n );\n }\n return json(\n registerOkBody(\n { email: body.email!.trim(), password: body.password!.trim() },\n subPath === \"/api/register/nested\",\n ),\n );\n }\n\n const sessionSyncMatch = subPath.match(/^\\/api\\/sessions\\/([^/]+)\\/sync$/);\n if (sessionSyncMatch && method === \"POST\") {\n const sessionId = decodeURIComponent(sessionSyncMatch[1]);\n let body: Record<string, unknown> = {};\n try {\n const text = await request.text();\n if (text.trim()) {\n body = JSON.parse(text) as Record<string, unknown>;\n }\n } catch {\n body = {};\n }\n return json({\n ok: true,\n sessionId,\n serverTime: Date.now(),\n echo: body,\n });\n }\n\n if (subPath === \"/api/register/echo\" && method === \"GET\") {\n const email = url.searchParams.get(\"email\") ?? \"\";\n const password = url.searchParams.get(\"password\") ?? \"\";\n if (!email.trim() || !password.trim()) {\n return json(\n {\n messages: [\n {\n content: \"email and password query params are required\",\n status: \"error\",\n },\n ],\n },\n { status: 400 },\n );\n }\n return json({\n method: \"GET\",\n query: { email, password },\n email,\n note: \"sonic-submit method=\\\"get\\\" appends form fields to the endpoint URL\",\n });\n }\n\n if (method !== \"GET\") {\n return json({ error: \"Method not allowed\" }, { status: 405 });\n }\n\n const userMatch = subPath.match(/^\\/api\\/users\\/(\\d+)$/);\n if (userMatch) {\n const id = parseInt(userMatch[1], 10);\n const user =\n DOCS_REQRES_USERS.find((u) => u.id === id) ?? DOCS_REQRES_USERS[0];\n const body: ReqresUserResponse = { data: { ...user, id } };\n return json(body);\n }\n\n if (subPath === \"/api/users\") {\n return json(paginateUsers(url));\n }\n\n if (subPath === \"/geo/communes\" || subPath.startsWith(\"/geo/communes\")) {\n return json(geoCommunes(url), {\n headers: { \"X-Fetched-At\": new Date().toISOString() },\n });\n }\n\n const jokeMatch = subPath.match(/^\\/jokes\\/joke\\/([^/]+)$/);\n if (jokeMatch) {\n return json(buildJokeApiResponse(url));\n }\n\n return json({ error: \"Not found\", path: subPath }, { status: 404 });\n}\n", "/// <reference lib=\"webworker\" />\nimport { handleDocsMockApiRequest} from \"./router\";\n\ndeclare const self: ServiceWorkerGlobalScope;\n\nself.addEventListener(\"install\", (event) => {\n event.waitUntil(self.skipWaiting());\n});\n\nself.addEventListener(\"activate\", (event) => {\n event.waitUntil(self.clients.claim());\n});\n\nself.addEventListener(\"fetch\", (event) => {\n const {request} = event;\n event.respondWith(\n (async () => {\n const mocked = await handleDocsMockApiRequest(request);\n if (mocked) return mocked;\n return fetch(request);\n })(),\n );\n});\n"],
5
- "mappings": "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",
3
+ "sources": ["../src/docs/mock-api/urls.ts", "../src/docs/mock-api/api-config-mock.ts", "../src/docs/mock-api/fixtures.ts", "../src/docs/mock-api/fixtures-jsonata.ts", "../src/docs/mock-api/router.ts", "../src/docs/mock-api/service-worker.ts"],
4
+ "sourcesContent": ["/** Base same-origin pour les d\u00E9mos doc (Service Worker + middleware Vite). */\nexport const DOCS_MOCK_API_BASE = \"/docs-mock-api\";\n\n/** Remplace https://reqres.in \u2014 chemins `api/users`, `api/users/2`, etc. */\nexport const DOCS_MOCK_REQRES_SERVICE = DOCS_MOCK_API_BASE;\n\n/** Remplace https://geo.api.gouv.fr/ \u2014 chemins `communes?\u2026`. */\nexport const DOCS_MOCK_GEO_SERVICE = `${DOCS_MOCK_API_BASE}/geo/`;\n\n/** Remplace https://v2.jokeapi.dev \u2014 chemins `joke/Any?\u2026`. */\nexport const DOCS_MOCK_JOKES_SERVICE = `${DOCS_MOCK_API_BASE}/jokes`;\n", "import { DOCS_MOCK_API_BASE } from \"./urls\";\n\n/** Bearer accept\u00E9 par GET /api/config/protected */\nexport const DOCS_MOCK_TOKEN_VALID = \"docs-mock-valid-token\";\n/** D\u00E9clenche HTTP 498 \u2192 renouvellement via tokenProvider */\nexport const DOCS_MOCK_TOKEN_STALE = \"docs-mock-stale-token\";\n/** \u00C9mis par GET /auth/token apr\u00E8s Basic auth ou eventsApiToken */\nexport const DOCS_MOCK_TOKEN_FRESH = \"docs-mock-fresh-token\";\n\nconst DOCS_MOCK_BASIC_USER = \"demo\";\nconst DOCS_MOCK_BASIC_PASSWORD = \"secret\";\n/** Valeur de l\u2019attribut anc\u00EAtre `eventsApiToken` (Bearer pour /auth/token) */\nexport const DOCS_MOCK_EVENTS_API_TOKEN = \"docs-mock-events-token\";\n\nconst WORDING_CATALOG: Record<string, Record<string, string>> = {\n \"api-config.greeting\": { fr: \"Bonjour\", en: \"Hello\" },\n \"api-config.farewell\": { fr: \"Au revoir\", en: \"Goodbye\" },\n \"api-config.hint\": {\n fr: \"Libell\u00E9s servis par le mock /wording/labels\",\n en: \"Labels served by mock /wording/labels\",\n },\n};\n\nfunction json(body: unknown, init: ResponseInit = {}): Response {\n const headers = new Headers(init.headers);\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n headers.set(\"Access-Control-Allow-Origin\", \"*\");\n headers.set(\"X-Docs-Mock-Api\", \"concorde-api-config\");\n return new Response(JSON.stringify(body), { ...init, headers });\n}\n\ntype ParsedAuth =\n | { kind: \"none\" }\n | { kind: \"basic\"; user: string; password: string }\n | { kind: \"bearer\"; token: string };\n\nfunction parseAuthorization(request: Request): ParsedAuth {\n const header = request.headers.get(\"authorization\");\n if (!header) return { kind: \"none\" };\n const basic = header.match(/^Basic\\s+(.+)$/i);\n if (basic) {\n try {\n const decoded = atob(basic[1]);\n const sep = decoded.indexOf(\":\");\n if (sep < 0) return { kind: \"none\" };\n return {\n kind: \"basic\",\n user: decoded.slice(0, sep),\n password: decoded.slice(sep + 1),\n };\n } catch {\n return { kind: \"none\" };\n }\n }\n const bearer = header.match(/^Bearer\\s+(.+)$/i);\n if (bearer) return { kind: \"bearer\", token: bearer[1].trim() };\n return { kind: \"none\" };\n}\n\nfunction isValidBasic(auth: ParsedAuth): boolean {\n return (\n auth.kind === \"basic\" &&\n auth.user === DOCS_MOCK_BASIC_USER &&\n auth.password === DOCS_MOCK_BASIC_PASSWORD\n );\n}\n\nfunction wordingLabels(url: URL): Response {\n const lang = url.searchParams.get(\"lang\") || \"fr\";\n const labels = url.searchParams.getAll(\"labels[]\").length\n ? url.searchParams.getAll(\"labels[]\")\n : url.searchParams.getAll(\"labels\");\n const result: Record<string, string> = {};\n for (const key of labels) {\n const entry = WORDING_CATALOG[key];\n result[key] =\n entry?.[lang] ?? entry?.en ?? `[missing:${key}]`;\n }\n return json({ lang, labels: result, ...result });\n}\n\n/**\n * Routes mock pour la page doc APIConfiguration (token, 498, wording).\n */\nexport function handleApiConfigMockRequest(\n request: Request,\n subPath: string,\n method: string,\n): Response | null {\n if (subPath === \"/auth/token\" && method === \"GET\") {\n const auth = parseAuthorization(request);\n if (isValidBasic(auth)) {\n return json({\n token: DOCS_MOCK_TOKEN_FRESH,\n source: \"basic\",\n serviceHost: new URL(request.url).searchParams.get(\"serviceHost\"),\n });\n }\n if (\n auth.kind === \"bearer\" &&\n auth.token === DOCS_MOCK_EVENTS_API_TOKEN\n ) {\n return json({\n token: DOCS_MOCK_TOKEN_FRESH,\n source: \"eventsApiToken\",\n });\n }\n return json({ error: \"Unauthorized\" }, { status: 401 });\n }\n\n if (subPath === \"/api/config/protected\" && method === \"GET\") {\n const auth = parseAuthorization(request);\n if (auth.kind === \"bearer\") {\n if (auth.token === DOCS_MOCK_TOKEN_STALE) {\n return json({ error: \"Token expired\", code: \"token_stale\" }, { status: 498 });\n }\n if (\n auth.token === DOCS_MOCK_TOKEN_VALID ||\n auth.token === DOCS_MOCK_TOKEN_FRESH\n ) {\n return json({\n ok: true,\n message: \"Protected resource\",\n tokenUsed: auth.token,\n });\n }\n }\n if (isValidBasic(auth)) {\n return json({\n ok: true,\n message: \"Protected resource (basic)\",\n tokenUsed: null,\n });\n }\n return json({ error: \"Unauthorized\" }, { status: 401 });\n }\n\n if (\n (subPath === \"/wording/labels\" || subPath.startsWith(\"/wording/labels\")) &&\n method === \"GET\"\n ) {\n return wordingLabels(new URL(request.url));\n }\n\n return null;\n}\n\nexport const API_CONFIG_MOCK_PATHS = [\n `${DOCS_MOCK_API_BASE}/auth/token`,\n `${DOCS_MOCK_API_BASE}/api/config/protected`,\n `${DOCS_MOCK_API_BASE}/wording/labels`,\n] as const;\n", "/** Donn\u00E9es type ReqRes pour les d\u00E9mos doc (sans appel externe). */\n\nexport type ReqresUser = {\n id: number;\n email: string;\n first_name: string;\n last_name: string;\n avatar: string;\n};\n\nconst reqresAvatar = (seed: string) =>\n `https://i.pravatar.cc/150?u=${encodeURIComponent(seed)}`;\n\nconst REQRES_EXTRA_NAMES: [string, string][] = [\n [\"Michael\", \"Lawson\"],\n [\"Tobias\", \"Funke\"],\n [\"Lindsay\", \"Funke\"],\n [\"Maeby\", \"Funke\"],\n [\"George\", \"Michael\"],\n [\"Annye\", \"Vang\"],\n [\"Rachel\", \"Howe\"],\n [\"Terry\", \"Medhurst\"],\n [\"Bette\", \"Haag\"],\n [\"Lester\", \"Solomon\"],\n [\"April\", \"Douglas\"],\n [\"Marian\", \"Roberts\"],\n [\"Kathryn\", \"Murphy\"],\n [\"Gloria\", \"Armstrong\"],\n [\"Adam\", \"Bradley\"],\n [\"Angela\", \"Hicks\"],\n [\"Rose\", \"Wheeler\"],\n [\"Sara\", \"Berry\"],\n [\"Glen\", \"Kuhn\"],\n [\"Roger\", \"Cox\"],\n];\n\nfunction buildReqresUser(\n id: number,\n first_name: string,\n last_name: string,\n): ReqresUser {\n const slug = `${first_name}-${last_name}`.toLowerCase();\n return {\n id,\n email: `${first_name.toLowerCase()}.${last_name.toLowerCase()}@example.com`,\n first_name,\n last_name,\n avatar: reqresAvatar(slug),\n };\n}\n\n/** Jeu \u00E9tendu pour d\u00E9mos queue / lazyload (pagination par offset). */\nexport const DOCS_REQRES_USERS: ReqresUser[] = [\n buildReqresUser(1, \"George\", \"Bluth\"),\n buildReqresUser(2, \"Janet\", \"Weaver\"),\n buildReqresUser(3, \"Emma\", \"Wong\"),\n buildReqresUser(4, \"Eve\", \"Holt\"),\n ...REQRES_EXTRA_NAMES.map(([first_name, last_name], index) =>\n buildReqresUser(5 + index, first_name, last_name),\n ),\n];\n\nexport type ReqresUserResponse = { data: ReqresUser };\nexport type ReqresUsersListResponse = {\n page: number;\n per_page: number;\n total: number;\n total_pages: number;\n data: ReqresUser[];\n};\n\n/** Filter users for mock search (`q` \u2014 first name, last name, email). Same logic as the TS starter. */\nexport function filterDocsUsers(\n users: ReqresUser[],\n query: string | null | undefined,\n): ReqresUser[] {\n const q = query?.trim().toLowerCase();\n if (!q) return users;\n return users.filter((user) => {\n const haystack =\n `${user.first_name} ${user.last_name} ${user.email}`.toLowerCase();\n return haystack.includes(q);\n });\n}\n\nexport type GeoCommuneRow = { nom: string; code: string };\n\nexport const DOCS_GEO_COMMUNES: GeoCommuneRow[] = [\n { nom: \"Paris\", code: \"75056\" },\n { nom: \"Lyon\", code: \"69123\" },\n { nom: \"Marseille\", code: \"13055\" },\n { nom: \"Toulouse\", code: \"31555\" },\n { nom: \"Lille\", code: \"59350\" },\n { nom: \"Bordeaux\", code: \"33063\" },\n { nom: \"Nantes\", code: \"44109\" },\n { nom: \"Strasbourg\", code: \"67482\" },\n { nom: \"Montpellier\", code: \"34172\" },\n { nom: \"Rennes\", code: \"35238\" },\n];\n\n/** JokeAPI-style content flags (checkbox / radio / switch blacklist demos). */\nexport type DocsJokeFlagKey =\n | \"nsfw\"\n | \"religious\"\n | \"political\"\n | \"racist\"\n | \"sexist\"\n | \"explicit\";\n\n/** Forme proche de JokeAPI v2 (`key=\"jokes\"` sur sonic-queue / list). */\nexport type DocsJokeItem = {\n categories: string[];\n createdAt: string;\n id: number;\n joke: string;\n lang: \"fr\" | \"en\";\n flags: Record<DocsJokeFlagKey, boolean>;\n safe: boolean;\n type: string;\n setup?: string;\n delivery?: string;\n};\n\nconst jokeFlags = (\n partial: Partial<Record<DocsJokeFlagKey, boolean>> = {},\n): Record<DocsJokeFlagKey, boolean> => ({\n nsfw: false,\n religious: false,\n political: false,\n racist: false,\n sexist: false,\n explicit: false,\n ...partial,\n});\n\nexport type DocsJokeApiResponse = {\n error: boolean;\n amount: number;\n jokes: DocsJokeItem[];\n};\n\nconst SAMPLE_JOKES: DocsJokeItem[] = [\n {\n categories: [\"Programming\"],\n createdAt: \"2020-01-01 00:00:00\",\n id: 1,\n lang: \"en\",\n joke: \"Why do programmers prefer dark mode? Because light attracts bugs.\",\n flags: jokeFlags(),\n safe: true,\n type: \"single\",\n },\n {\n categories: [\"Misc\"],\n createdAt: \"2020-01-02 00:00:00\",\n id: 2,\n lang: \"en\",\n joke: \"I told my computer I needed a break \u2014 it said: no problem, I'll go to sleep.\",\n flags: jokeFlags({ nsfw: true }),\n safe: false,\n type: \"single\",\n },\n {\n categories: [\"Pun\"],\n createdAt: \"2020-01-03 00:00:00\",\n id: 3,\n lang: \"en\",\n joke: \"Concorde docs run offline: even the API is a local joke.\",\n flags: jokeFlags(),\n safe: true,\n type: \"single\",\n },\n {\n categories: [\"Animals\"],\n createdAt: \"2020-01-04 00:00:00\",\n id: 4,\n lang: \"en\",\n joke: \"The dog ate my homework and my pull request.\",\n flags: jokeFlags({ political: true }),\n safe: true,\n type: \"single\",\n },\n {\n categories: [\"Animals\", \"Pun\"],\n createdAt: \"2020-01-05 00:00:00\",\n id: 5,\n lang: \"fr\",\n joke: \"Quel est le chien pr\u00E9f\u00E9r\u00E9 des d\u00E9veloppeurs ? Le labrador Retriever.\",\n flags: jokeFlags(),\n safe: true,\n type: \"single\",\n },\n {\n categories: [\"Animals\"],\n createdAt: \"2020-01-06 00:00:00\",\n id: 6,\n lang: \"fr\",\n joke: \"Un chat et un chien discutent de TypeScript : le chien dit \u00AB woof \u00BB, le chat compile.\",\n flags: jokeFlags({ racist: true }),\n safe: false,\n type: \"single\",\n },\n {\n categories: [\"Misc\"],\n createdAt: \"2020-01-07 00:00:00\",\n id: 7,\n lang: \"fr\",\n joke: \"Pourquoi les blagues offline sont-elles fiables ? Parce qu'elles passent par le Service Worker.\",\n flags: jokeFlags({ religious: true }),\n safe: true,\n type: \"single\",\n },\n {\n categories: [\"Programming\"],\n createdAt: \"2020-01-08 00:00:00\",\n id: 8,\n lang: \"fr\",\n joke: \"Mon compilateur et mon chien : tous deux ignorent mes commandes jusqu'au build.\",\n flags: jokeFlags({ sexist: true }),\n safe: false,\n type: \"single\",\n },\n {\n categories: [\"Misc\"],\n createdAt: \"2020-01-09 00:00:00\",\n id: 9,\n lang: \"en\",\n joke: \"A SQL query walks into a bar, walks up to two tables and asks: Can I join you?\",\n flags: jokeFlags({ explicit: true }),\n safe: false,\n type: \"single\",\n },\n {\n categories: [\"Pun\"],\n createdAt: \"2020-01-10 00:00:00\",\n id: 10,\n lang: \"fr\",\n joke: \"J'ai cherch\u00E9 \u00AB chien \u00BB dans la doc : le mock API a r\u00E9pondu.\",\n flags: jokeFlags(),\n safe: true,\n type: \"single\",\n },\n {\n categories: [\"Misc\"],\n createdAt: \"2020-01-11 00:00:00\",\n id: 11,\n lang: \"en\",\n joke: \"There are only two hard things in Computer Science: cache invalidation and naming things.\",\n flags: jokeFlags({ political: true, explicit: true }),\n safe: false,\n type: \"single\",\n },\n {\n categories: [\"Animals\"],\n createdAt: \"2020-01-12 00:00:00\",\n id: 12,\n lang: \"fr\",\n joke: \"Le golden retriever a r\u00E9cup\u00E9r\u00E9 la donn\u00E9e du publisher.\",\n flags: jokeFlags({ racist: true, sexist: true }),\n safe: false,\n type: \"two-liner\",\n setup: \"Pourquoi le chien aime Concorde ?\",\n delivery: \"Parce qu'il sait fetch.\",\n },\n {\n categories: [\"Misc\"],\n createdAt: \"2020-01-13 00:00:00\",\n id: 13,\n lang: \"en\",\n joke: \"My code and my conscience: both have too many warnings.\",\n flags: jokeFlags(),\n safe: true,\n type: \"single\",\n },\n {\n categories: [\"Programming\"],\n createdAt: \"2020-01-14 00:00:00\",\n id: 14,\n lang: \"en\",\n joke: \"Git blame is just a mirror.\",\n flags: jokeFlags({ religious: true, political: true }),\n safe: false,\n type: \"single\",\n },\n];\n\n/** `blacklistFlags` from queue filter form (comma-separated or repeated param). */\nexport function parseBlacklistFlags(url: URL): DocsJokeFlagKey[] {\n const keys = new Set<DocsJokeFlagKey>();\n const valid: DocsJokeFlagKey[] = [\n \"nsfw\",\n \"religious\",\n \"political\",\n \"racist\",\n \"sexist\",\n \"explicit\",\n ];\n const add = (raw: string) => {\n raw\n .split(\",\")\n .map((s) => s.trim().toLowerCase())\n .forEach((part) => {\n if (valid.includes(part as DocsJokeFlagKey)) keys.add(part as DocsJokeFlagKey);\n });\n };\n url.searchParams.getAll(\"blacklistFlags\").forEach(add);\n const single = url.searchParams.get(\"blacklistFlags\");\n if (single) add(single);\n return [...keys];\n}\n\n/** Exclude jokes that match any blacklisted flag (JokeAPI-style). */\nexport function applyJokeBlacklist(\n jokes: DocsJokeItem[],\n blacklist: DocsJokeFlagKey[],\n): DocsJokeItem[] {\n if (!blacklist.length) return jokes;\n return jokes.filter(\n (j) => !blacklist.some((flag) => j.flags[flag] === true),\n );\n}\n\n/** Filtre doc joke queue (`contains`, `lang`, `blacklistFlags` via `dataFilterProvider`). */\nexport function filterDocsJokes(\n jokes: DocsJokeItem[],\n url: URL,\n): DocsJokeItem[] {\n let pool = jokes;\n const contains = url.searchParams.get(\"contains\")?.trim().toLowerCase();\n if (contains) {\n pool = pool.filter((j) => {\n const haystack = [j.joke, j.setup, j.delivery, ...j.categories]\n .filter(Boolean)\n .join(\" \")\n .toLowerCase();\n return haystack.includes(contains);\n });\n }\n const lang = url.searchParams.get(\"lang\")?.trim().toLowerCase();\n if (lang === \"fr\" || lang === \"en\") {\n pool = pool.filter((j) => j.lang === lang);\n }\n pool = applyJokeBlacklist(pool, parseBlacklistFlags(url));\n return pool;\n}\n\n/**\n * R\u00E9ponse type JokeAPI v2.\n * - `amount` : taille du lot si pas de `offset`\n * - `offset` + `limit` / `per_page` : pagination (sonic-queue lazy)\n * - `contains`, `lang`, `blacklistFlags` : filtres formulaire (queue \u00AB Remove following jokes \u00BB)\n */\nexport function buildJokeApiResponse(url: URL): DocsJokeApiResponse {\n const pool = filterDocsJokes(SAMPLE_JOKES, url);\n const amount = Math.max(\n 1,\n parseInt(url.searchParams.get(\"amount\") || \"10\", 10),\n );\n const hasOffset = url.searchParams.has(\"offset\");\n const limit = Math.max(\n 1,\n parseInt(\n url.searchParams.get(\"limit\") ||\n url.searchParams.get(\"per_page\") ||\n String(amount),\n 10,\n ),\n );\n const offset = Math.max(0, parseInt(url.searchParams.get(\"offset\") || \"0\", 10));\n const start = hasOffset ? offset : 0;\n const count = hasOffset ? limit : amount;\n const jokes = pool.slice(start, start + count).map((j, i) => ({\n ...j,\n id: start + i + 1,\n }));\n return { error: false, amount: jokes.length, jokes };\n}\n", "/**\n * Fixtures fun pour d\u00E9mos / tests sonic-jsonata (hors billetterie).\n */\n\nconst avatar = (seed: string) =>\n `https://i.pravatar.cc/150?u=${encodeURIComponent(seed)}`;\n\n/** Missions de chats spatiaux \u2014 groupby name + top N points. */\nexport type SpaceCatMission = {\n id: number;\n name: string;\n planet: string;\n mission: string;\n points: number;\n avatar: string;\n};\n\nexport const DOCS_SPACE_CAT_MISSIONS: SpaceCatMission[] = [\n {\n id: 1,\n name: \"Captain Whiskers\",\n planet: \"Mars\",\n mission: \"Laser hunt\",\n points: 40,\n avatar: avatar(\"captain-whiskers\"),\n },\n {\n id: 2,\n name: \"Captain Whiskers\",\n planet: \"Mars\",\n mission: \"Dust nap\",\n points: 25,\n avatar: avatar(\"captain-whiskers\"),\n },\n {\n id: 3,\n name: \"Nebula Paws\",\n planet: \"Europa\",\n mission: \"Ice fishing\",\n points: 55,\n avatar: avatar(\"nebula-paws\"),\n },\n {\n id: 4,\n name: \"Astro Mittens\",\n planet: \"Titan\",\n mission: \"Methane surf\",\n points: 33,\n avatar: avatar(\"astro-mittens\"),\n },\n {\n id: 5,\n name: \"Nebula Paws\",\n planet: \"Europa\",\n mission: \"Comet chase\",\n points: 20,\n avatar: avatar(\"nebula-paws\"),\n },\n {\n id: 6,\n name: \"Professor Meowington\",\n planet: \"Venus\",\n mission: \"Cloud tasting\",\n points: 48,\n avatar: avatar(\"prof-meowington\"),\n },\n {\n id: 7,\n name: \"Astro Mittens\",\n planet: \"Titan\",\n mission: \"Antenna polish\",\n points: 12,\n avatar: avatar(\"astro-mittens\"),\n },\n {\n id: 8,\n name: \"Zero-G Socks\",\n planet: \"Moon\",\n mission: \"Flag knitting\",\n points: 61,\n avatar: avatar(\"zero-g-socks\"),\n },\n];\n\n/** Sacs de caf\u00E9 \u2014 groupby origin + filtre roast. */\nexport type CoffeeBag = {\n id: number;\n origin: string;\n roast: \"light\" | \"medium\" | \"dark\";\n kg: number;\n farm: string;\n};\n\nexport const DOCS_COFFEE_BAGS: CoffeeBag[] = [\n { id: 1, origin: \"Ethiopia\", roast: \"light\", kg: 12, farm: \"Yirgacheffe Hills\" },\n { id: 2, origin: \"Ethiopia\", roast: \"medium\", kg: 8, farm: \"Sidamo Ridge\" },\n { id: 3, origin: \"Colombia\", roast: \"medium\", kg: 15, farm: \"Huila Valley\" },\n { id: 4, origin: \"Colombia\", roast: \"dark\", kg: 6, farm: \"Cauca Peak\" },\n { id: 5, origin: \"Brazil\", roast: \"dark\", kg: 22, farm: \"Minas Gerais\" },\n { id: 6, origin: \"Brazil\", roast: \"medium\", kg: 10, farm: \"Cerrado\" },\n { id: 7, origin: \"Guatemala\", roast: \"light\", kg: 9, farm: \"Antigua\" },\n { id: 8, origin: \"Guatemala\", roast: \"dark\", kg: 5, farm: \"Huehuetenango\" },\n { id: 9, origin: \"Ethiopia\", roast: \"light\", kg: 4, farm: \"Guji Forest\" },\n];\n\nexport function filterCoffeeBags(\n bags: CoffeeBag[],\n roast: string | null | undefined,\n): CoffeeBag[] {\n const r = roast?.trim().toLowerCase();\n if (!r || r === \"all\") return bags;\n return bags.filter((b) => b.roast === r);\n}\n\n/** Lignes de commande (table) \u2014 total / moyenne par ligne. */\nexport type MarketOrderLine = {\n id: number;\n name: string;\n qty: number;\n unitPrice: number;\n category: string;\n};\n\nexport const DOCS_MARKET_ORDER_LINES: MarketOrderLine[] = [\n { id: 1, name: \"Heirloom tomatoes\", qty: 4, unitPrice: 3.5, category: \"veg\" },\n { id: 2, name: \"Sourdough loaf\", qty: 2, unitPrice: 6.0, category: \"bakery\" },\n { id: 3, name: \"Goat cheese\", qty: 1, unitPrice: 8.5, category: \"dairy\" },\n { id: 4, name: \"Honey jar\", qty: 3, unitPrice: 5.2, category: \"pantry\" },\n { id: 5, name: \"Sunflowers\", qty: 5, unitPrice: 2.0, category: \"flowers\" },\n { id: 6, name: \"Free-range eggs\", qty: 2, unitPrice: 4.8, category: \"dairy\" },\n];\n", "import { handleApiConfigMockRequest } from \"./api-config-mock\";\nimport {\n DOCS_GEO_COMMUNES,\n DOCS_REQRES_USERS,\n buildJokeApiResponse,\n filterDocsUsers,\n type GeoCommuneRow,\n type ReqresUserResponse,\n type ReqresUsersListResponse,\n} from \"./fixtures\";\nimport {\n DOCS_COFFEE_BAGS,\n DOCS_MARKET_ORDER_LINES,\n DOCS_SPACE_CAT_MISSIONS,\n filterCoffeeBags,\n} from \"./fixtures-jsonata\";\n\nexport const DOCS_MOCK_API_PREFIX = \"/docs-mock-api\";\n\nfunction json(\n body: unknown,\n init: ResponseInit & { delayMs?: number } = {},\n): Promise<Response> {\n const { delayMs = 0, ...responseInit } = init;\n const headers = new Headers(responseInit.headers);\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n headers.set(\"Access-Control-Allow-Origin\", \"*\");\n headers.set(\"X-Docs-Mock-Api\", \"concorde\");\n\n const build = () =>\n new Response(JSON.stringify(body), { ...responseInit, headers });\n\n if (delayMs <= 0) return Promise.resolve(build());\n return new Promise((resolve) =>\n setTimeout(() => resolve(build()), delayMs),\n );\n}\n\n/**\n * Liste utilisateurs type ReqRes.\n * - `offset` + `per_page` / `limit` : pagination index\u00E9e (sonic-queue avec `$offset` / `$limit`)\n * - `page` + `per_page` : num\u00E9ro de page 1-based (sonic-fetch, ex. `?page=2`)\n * - `q` : recherche sur pr\u00E9nom, nom, email (sonic-queue + `dataFilterProvider`, champ `name=\"q\"`)\n */\nexport function paginateUsers(url: URL): ReqresUsersListResponse {\n const perPage = Math.max(\n 1,\n parseInt(\n url.searchParams.get(\"per_page\") ||\n url.searchParams.get(\"limit\") ||\n \"6\",\n 10,\n ),\n );\n const pool = filterDocsUsers(DOCS_REQRES_USERS, url.searchParams.get(\"q\"));\n const total = pool.length;\n\n let start: number;\n let page: number;\n\n if (url.searchParams.has(\"offset\")) {\n start = Math.max(0, parseInt(url.searchParams.get(\"offset\") || \"0\", 10));\n page = Math.floor(start / perPage) + 1;\n } else {\n page = Math.max(1, parseInt(url.searchParams.get(\"page\") || \"1\", 10));\n start = (page - 1) * perPage;\n }\n\n const data = pool.slice(start, start + perPage);\n\n return {\n page,\n per_page: perPage,\n total,\n total_pages: Math.max(1, Math.ceil(total / perPage)),\n data,\n };\n}\n\nasync function parseRegisterFields(\n request: Request,\n): Promise<{ email?: string; password?: string }> {\n const contentType = (request.headers.get(\"content-type\") || \"\").toLowerCase();\n\n if (contentType.includes(\"multipart/form-data\")) {\n const fd = await request.formData();\n return {\n email: String(fd.get(\"email\") ?? \"\"),\n password: String(fd.get(\"password\") ?? \"\"),\n };\n }\n\n if (contentType.includes(\"application/x-www-form-urlencoded\")) {\n const text = await request.text();\n const params = new URLSearchParams(text);\n return {\n email: params.get(\"email\") ?? \"\",\n password: params.get(\"password\") ?? \"\",\n };\n }\n\n const text = await request.text();\n if (!text.trim()) return {};\n\n try {\n const parsed = JSON.parse(text) as { email?: unknown; password?: unknown };\n return {\n email: parsed.email != null ? String(parsed.email) : \"\",\n password: parsed.password != null ? String(parsed.password) : \"\",\n };\n } catch {\n const params = new URLSearchParams(text);\n if (params.has(\"email\") || params.has(\"password\")) {\n return {\n email: params.get(\"email\") ?? \"\",\n password: params.get(\"password\") ?? \"\",\n };\n }\n return {};\n }\n}\n\nfunction registerOkBody(\n fields: { email: string; password: string },\n nested = false,\n) {\n const payload = {\n id: 4,\n token: \"docs-mock-register-token\",\n email: fields.email,\n };\n return nested ? { data: payload } : payload;\n}\n\nfunction geoCommunes(url: URL): GeoCommuneRow[] {\n const limit = Math.max(\n 1,\n parseInt(url.searchParams.get(\"limit\") || \"5\", 10),\n );\n const offset = Math.max(0, parseInt(url.searchParams.get(\"offset\") || \"0\", 10));\n return DOCS_GEO_COMMUNES.slice(offset, offset + limit);\n}\n\n/**\n * Intercepte les requ\u00EAtes vers /docs-mock-api/* (Service Worker ou middleware Vite).\n */\nexport async function handleDocsMockApiRequest(\n request: Request,\n): Promise<Response | null> {\n const url = new URL(request.url);\n if (!url.pathname.startsWith(DOCS_MOCK_API_PREFIX)) return null;\n\n const subPath = url.pathname.slice(DOCS_MOCK_API_PREFIX.length) || \"/\";\n const method = request.method.toUpperCase();\n\n if (subPath === \"/health\") {\n return json({ ok: true, service: \"concorde-docs-mock-api\" });\n }\n\n const apiConfigResponse = handleApiConfigMockRequest(request, subPath, method);\n if (apiConfigResponse) return apiConfigResponse;\n\n if (\n (subPath === \"/api/register\" || subPath === \"/api/register/nested\") &&\n method === \"POST\"\n ) {\n const body = await parseRegisterFields(request);\n if (!body.email?.trim() || !body.password?.trim()) {\n return json(\n {\n messages: [\n {\n content: \"email and password are required\",\n status: \"error\",\n },\n ],\n },\n { status: 400 },\n );\n }\n return json(\n registerOkBody(\n { email: body.email!.trim(), password: body.password!.trim() },\n subPath === \"/api/register/nested\",\n ),\n );\n }\n\n const sessionSyncMatch = subPath.match(/^\\/api\\/sessions\\/([^/]+)\\/sync$/);\n if (sessionSyncMatch && method === \"POST\") {\n const sessionId = decodeURIComponent(sessionSyncMatch[1]);\n let body: Record<string, unknown> = {};\n try {\n const text = await request.text();\n if (text.trim()) {\n body = JSON.parse(text) as Record<string, unknown>;\n }\n } catch {\n body = {};\n }\n return json({\n ok: true,\n sessionId,\n serverTime: Date.now(),\n echo: body,\n });\n }\n\n if (subPath === \"/api/register/echo\" && method === \"GET\") {\n const email = url.searchParams.get(\"email\") ?? \"\";\n const password = url.searchParams.get(\"password\") ?? \"\";\n if (!email.trim() || !password.trim()) {\n return json(\n {\n messages: [\n {\n content: \"email and password query params are required\",\n status: \"error\",\n },\n ],\n },\n { status: 400 },\n );\n }\n return json({\n method: \"GET\",\n query: { email, password },\n email,\n note: \"sonic-submit method=\\\"get\\\" appends form fields to the endpoint URL\",\n });\n }\n\n if (method !== \"GET\") {\n return json({ error: \"Method not allowed\" }, { status: 405 });\n }\n\n const userMatch = subPath.match(/^\\/api\\/users\\/(\\d+)$/);\n if (userMatch) {\n const id = parseInt(userMatch[1], 10);\n const user =\n DOCS_REQRES_USERS.find((u) => u.id === id) ?? DOCS_REQRES_USERS[0];\n const body: ReqresUserResponse = { data: { ...user, id } };\n return json(body);\n }\n\n if (subPath === \"/api/users\") {\n return json(paginateUsers(url));\n }\n\n if (subPath === \"/api/space-cats\") {\n return json({\n data: DOCS_SPACE_CAT_MISSIONS,\n total: DOCS_SPACE_CAT_MISSIONS.length,\n });\n }\n\n if (subPath === \"/api/coffee-bags\") {\n const roast = url.searchParams.get(\"roast\");\n const data = filterCoffeeBags(DOCS_COFFEE_BAGS, roast);\n return json({ data, total: data.length });\n }\n\n if (subPath === \"/api/market-order\") {\n return json({\n data: DOCS_MARKET_ORDER_LINES,\n total: DOCS_MARKET_ORDER_LINES.length,\n });\n }\n\n if (subPath === \"/geo/communes\" || subPath.startsWith(\"/geo/communes\")) {\n return json(geoCommunes(url), {\n headers: { \"X-Fetched-At\": new Date().toISOString() },\n });\n }\n\n const jokeMatch = subPath.match(/^\\/jokes\\/joke\\/([^/]+)$/);\n if (jokeMatch) {\n return json(buildJokeApiResponse(url));\n }\n\n return json({ error: \"Not found\", path: subPath }, { status: 404 });\n}\n", "/// <reference lib=\"webworker\" />\nimport { handleDocsMockApiRequest} from \"./router\";\n\ndeclare const self: ServiceWorkerGlobalScope;\n\nself.addEventListener(\"install\", (event) => {\n event.waitUntil(self.skipWaiting());\n});\n\nself.addEventListener(\"activate\", (event) => {\n event.waitUntil(self.clients.claim());\n});\n\nself.addEventListener(\"fetch\", (event) => {\n const {request} = event;\n event.respondWith(\n (async () => {\n const mocked = await handleDocsMockApiRequest(request);\n if (mocked) return mocked;\n return fetch(request);\n })(),\n );\n});\n"],
5
+ "mappings": "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",
6
6
  "names": ["json", "text"]
7
7
  }
package/docs/index.html CHANGED
@@ -10,8 +10,8 @@
10
10
  <!-- <script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
11
11
  -->
12
12
  <script src="https://cdn.jsdelivr.net/npm/marked@13.0.3"></script>
13
- <script type="module" crossorigin src="./assets/index-DURr6O71.js"></script>
14
- <link rel="stylesheet" crossorigin href="./assets/index-D2Q3JyQ6.css">
13
+ <script type="module" crossorigin src="./assets/index-FmK4JaIM.js"></script>
14
+ <link rel="stylesheet" crossorigin href="./assets/index-BZiZXMU-.css">
15
15
  </head>
16
16
  <body class="px-6 lg:px-20">
17
17
  <sonic-theme