@antelopejs/interface-dms 0.10.4 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (374) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +21 -10
  3. package/dist/attachments.d.ts +15 -2
  4. package/dist/attachments.js +14 -1
  5. package/dist/attachments.js.map +1 -1
  6. package/dist/auth/db/models/sessions.model.d.ts +7 -5
  7. package/dist/auth/db/models/sessions.model.js +2 -9
  8. package/dist/auth/db/models/sessions.model.js.map +1 -1
  9. package/dist/auth/db/models/userExternalIdentities.model.d.ts +7 -5
  10. package/dist/auth/db/models/users.model.d.ts +7 -5
  11. package/dist/auth/db/tables/users.table.d.ts +2 -2
  12. package/dist/auth/db/tables/users.table.js.map +1 -1
  13. package/dist/auth/index.d.ts +4 -4
  14. package/dist/auth/internal/jwt-auth-decorator.d.ts +1 -1
  15. package/dist/auth/internal/jwt-auth-decorator.js +6 -3
  16. package/dist/auth/internal/jwt-auth-decorator.js.map +1 -1
  17. package/dist/auth/internal/request-authenticators.d.ts +12 -0
  18. package/dist/auth/internal/request-authenticators.js +53 -10
  19. package/dist/auth/internal/request-authenticators.js.map +1 -1
  20. package/dist/base/activity-feed.d.ts +34 -32
  21. package/dist/base/activity-feed.js +2 -0
  22. package/dist/base/activity-feed.js.map +1 -1
  23. package/dist/base/banner.d.ts +12 -10
  24. package/dist/base/banner.js +2 -0
  25. package/dist/base/banner.js.map +1 -1
  26. package/dist/base/block-registry/internal/describe.js +3 -9
  27. package/dist/base/block-registry/internal/describe.js.map +1 -1
  28. package/dist/base/block-registry/internal/ui.js +1 -1
  29. package/dist/base/block-registry/internal/ui.js.map +1 -1
  30. package/dist/base/card.d.ts +11 -9
  31. package/dist/base/card.js +2 -0
  32. package/dist/base/card.js.map +1 -1
  33. package/dist/base/chart-card.d.ts +4 -2
  34. package/dist/base/chart-card.js +2 -0
  35. package/dist/base/chart-card.js.map +1 -1
  36. package/dist/base/chart-schemas.d.ts +148 -148
  37. package/dist/base/chart.d.ts +65 -0
  38. package/dist/base/chart.js +65 -0
  39. package/dist/base/chart.js.map +1 -1
  40. package/dist/base/code-block.d.ts +5 -3
  41. package/dist/base/code-block.js +2 -0
  42. package/dist/base/code-block.js.map +1 -1
  43. package/dist/base/custom.d.ts +5 -0
  44. package/dist/base/custom.js +5 -0
  45. package/dist/base/custom.js.map +1 -1
  46. package/dist/base/data-types/default/address.d.ts +5 -0
  47. package/dist/base/data-types/default/address.js +5 -0
  48. package/dist/base/data-types/default/address.js.map +1 -1
  49. package/dist/base/data-types/default/choices.d.ts +20 -0
  50. package/dist/base/data-types/default/choices.js +20 -0
  51. package/dist/base/data-types/default/choices.js.map +1 -1
  52. package/dist/base/data-types/default/files.d.ts +22 -5
  53. package/dist/base/data-types/default/files.js +20 -0
  54. package/dist/base/data-types/default/files.js.map +1 -1
  55. package/dist/base/data-types/default/numbers.d.ts +15 -0
  56. package/dist/base/data-types/default/numbers.js +25 -9
  57. package/dist/base/data-types/default/numbers.js.map +1 -1
  58. package/dist/base/data-types/default/relations.d.ts +10 -2
  59. package/dist/base/data-types/default/relations.js +9 -6
  60. package/dist/base/data-types/default/relations.js.map +1 -1
  61. package/dist/base/data-types/default/strings.d.ts +25 -0
  62. package/dist/base/data-types/default/strings.js +25 -0
  63. package/dist/base/data-types/default/strings.js.map +1 -1
  64. package/dist/base/data-types/default-types.d.ts +1 -1
  65. package/dist/base/data-types/field-types.d.ts +10 -0
  66. package/dist/base/data-types/field-types.js +10 -0
  67. package/dist/base/data-types/field-types.js.map +1 -1
  68. package/dist/base/data-types/internal/relation-endpoints.js +1 -0
  69. package/dist/base/data-types/internal/relation-endpoints.js.map +1 -1
  70. package/dist/base/data-types/status-type.d.ts +5 -0
  71. package/dist/base/data-types/status-type.js +5 -0
  72. package/dist/base/data-types/status-type.js.map +1 -1
  73. package/dist/base/display.d.ts +6 -6
  74. package/dist/base/empty-state.d.ts +15 -13
  75. package/dist/base/empty-state.js +2 -0
  76. package/dist/base/empty-state.js.map +1 -1
  77. package/dist/base/form-block-schema.d.ts +50 -50
  78. package/dist/base/form-schema.d.ts +2 -0
  79. package/dist/base/form-schema.js +2 -0
  80. package/dist/base/form-schema.js.map +1 -1
  81. package/dist/base/grid.d.ts +4 -0
  82. package/dist/base/grid.js +4 -0
  83. package/dist/base/grid.js.map +1 -1
  84. package/dist/base/guard.d.ts +30 -28
  85. package/dist/base/guard.js +2 -0
  86. package/dist/base/guard.js.map +1 -1
  87. package/dist/base/helpers/archive-mode-helpers.d.ts +1 -1
  88. package/dist/base/helpers/file-refs.js +15 -15
  89. package/dist/base/helpers/file-refs.js.map +1 -1
  90. package/dist/base/internal/form-schema-validation.js +7 -1
  91. package/dist/base/internal/form-schema-validation.js.map +1 -1
  92. package/dist/base/internal/realtime-topics.js.map +1 -1
  93. package/dist/base/internal/searchable.d.ts +2 -1
  94. package/dist/base/internal/searchable.js +1 -3
  95. package/dist/base/internal/searchable.js.map +1 -1
  96. package/dist/base/key-value-list.d.ts +21 -19
  97. package/dist/base/key-value-list.js +2 -0
  98. package/dist/base/key-value-list.js.map +1 -1
  99. package/dist/base/kpi-card.d.ts +4 -2
  100. package/dist/base/kpi-card.js +2 -0
  101. package/dist/base/kpi-card.js.map +1 -1
  102. package/dist/base/live-toggle.d.ts +2 -0
  103. package/dist/base/live-toggle.js +2 -0
  104. package/dist/base/live-toggle.js.map +1 -1
  105. package/dist/base/meter.d.ts +23 -21
  106. package/dist/base/meter.js +2 -0
  107. package/dist/base/meter.js.map +1 -1
  108. package/dist/base/nav-card-grid.d.ts +24 -19
  109. package/dist/base/nav-card-grid.js +5 -0
  110. package/dist/base/nav-card-grid.js.map +1 -1
  111. package/dist/base/page-toolbar.d.ts +2 -0
  112. package/dist/base/page-toolbar.js +2 -0
  113. package/dist/base/page-toolbar.js.map +1 -1
  114. package/dist/base/period-selector.d.ts +3 -1
  115. package/dist/base/period-selector.js +2 -0
  116. package/dist/base/period-selector.js.map +1 -1
  117. package/dist/base/placeholder.d.ts +2 -0
  118. package/dist/base/placeholder.js +2 -0
  119. package/dist/base/placeholder.js.map +1 -1
  120. package/dist/base/resource-form-schema.d.ts +2 -2
  121. package/dist/base/searchable.d.ts +3 -2
  122. package/dist/base/searchable.js +2 -2
  123. package/dist/base/searchable.js.map +1 -1
  124. package/dist/base/section.d.ts +6 -2
  125. package/dist/base/section.js +4 -0
  126. package/dist/base/section.js.map +1 -1
  127. package/dist/base/stack.d.ts +6 -0
  128. package/dist/base/stack.js +6 -0
  129. package/dist/base/stack.js.map +1 -1
  130. package/dist/base/stat-group.d.ts +16 -14
  131. package/dist/base/stat-group.js +2 -0
  132. package/dist/base/stat-group.js.map +1 -1
  133. package/dist/base/tab.d.ts +10 -8
  134. package/dist/base/tab.js +2 -0
  135. package/dist/base/tab.js.map +1 -1
  136. package/dist/base/table-view/column-display.d.ts +1 -1
  137. package/dist/base/table-view/column-display.js.map +1 -1
  138. package/dist/base/table-view/data-functions.d.ts +10 -4
  139. package/dist/base/table-view/data-functions.js.map +1 -1
  140. package/dist/base/table-view/factory.d.ts +5 -0
  141. package/dist/base/table-view/factory.js +8 -4
  142. package/dist/base/table-view/factory.js.map +1 -1
  143. package/dist/base/table-view/internal/auth.d.ts +17 -3
  144. package/dist/base/table-view/internal/auth.js +26 -5
  145. package/dist/base/table-view/internal/auth.js.map +1 -1
  146. package/dist/base/table-view/internal/column-conditions.d.ts +8 -1
  147. package/dist/base/table-view/internal/column-conditions.js +25 -13
  148. package/dist/base/table-view/internal/column-conditions.js.map +1 -1
  149. package/dist/base/table-view/internal/column-display.d.ts +1 -2
  150. package/dist/base/table-view/internal/column-display.js +3 -9
  151. package/dist/base/table-view/internal/column-display.js.map +1 -1
  152. package/dist/base/table-view/internal/factory-helpers.d.ts +1 -1
  153. package/dist/base/table-view/internal/factory-helpers.js +17 -14
  154. package/dist/base/table-view/internal/factory-helpers.js.map +1 -1
  155. package/dist/base/table-view/internal/factory-lifecycle-created.d.ts +2 -3
  156. package/dist/base/table-view/internal/factory-lifecycle-created.js +5 -5
  157. package/dist/base/table-view/internal/factory-lifecycle-created.js.map +1 -1
  158. package/dist/base/table-view/internal/factory-lifecycle-filter.d.ts +2 -2
  159. package/dist/base/table-view/internal/factory-private-actions.d.ts +2 -2
  160. package/dist/base/table-view/internal/files.d.ts +2 -1
  161. package/dist/base/table-view/internal/files.js +14 -5
  162. package/dist/base/table-view/internal/files.js.map +1 -1
  163. package/dist/base/table-view/internal/footer.d.ts +3 -3
  164. package/dist/base/table-view/internal/footer.js +16 -15
  165. package/dist/base/table-view/internal/footer.js.map +1 -1
  166. package/dist/base/table-view/internal/guards.d.ts +27 -5
  167. package/dist/base/table-view/internal/guards.js +127 -49
  168. package/dist/base/table-view/internal/guards.js.map +1 -1
  169. package/dist/base/table-view/internal/meta-helpers.d.ts +1 -1
  170. package/dist/base/table-view/internal/meta-helpers.js +3 -4
  171. package/dist/base/table-view/internal/meta-helpers.js.map +1 -1
  172. package/dist/base/table-view/internal/meta.js +2 -3
  173. package/dist/base/table-view/internal/meta.js.map +1 -1
  174. package/dist/base/table-view/internal/option-contract.d.ts +1 -1
  175. package/dist/base/table-view/internal/option-footer.d.ts +2 -2
  176. package/dist/base/table-view/internal/option-row-actions.d.ts +1 -1
  177. package/dist/base/table-view/internal/realtime.d.ts +52 -11
  178. package/dist/base/table-view/internal/realtime.js +23 -16
  179. package/dist/base/table-view/internal/realtime.js.map +1 -1
  180. package/dist/base/table-view/internal/resource-form.d.ts +1 -1
  181. package/dist/base/table-view/internal/resource-form.js +1 -1
  182. package/dist/base/table-view/internal/resource-form.js.map +1 -1
  183. package/dist/base/table-view/internal/row-actions-schema.d.ts +12 -12
  184. package/dist/base/table-view/internal/row-rule-shape.d.ts +11 -5
  185. package/dist/base/table-view/internal/row-rule-shape.js +60 -30
  186. package/dist/base/table-view/internal/row-rule-shape.js.map +1 -1
  187. package/dist/base/table-view/internal/row-rules.d.ts +28 -1
  188. package/dist/base/table-view/internal/row-rules.js +8 -19
  189. package/dist/base/table-view/internal/row-rules.js.map +1 -1
  190. package/dist/base/table-view/internal/tabs.d.ts +1 -1
  191. package/dist/base/table-view/internal/tabs.js +1 -4
  192. package/dist/base/table-view/internal/tabs.js.map +1 -1
  193. package/dist/base/table-view/internal/validation.d.ts +2 -2
  194. package/dist/base/table-view/internal/validation.js +7 -7
  195. package/dist/base/table-view/internal/validation.js.map +1 -1
  196. package/dist/base/table-view/meta.d.ts +7 -6
  197. package/dist/base/table-view/meta.js +12 -7
  198. package/dist/base/table-view/meta.js.map +1 -1
  199. package/dist/base/table-view/resource-form.d.ts +3 -1
  200. package/dist/base/table-view/resource-form.js +2 -0
  201. package/dist/base/table-view/resource-form.js.map +1 -1
  202. package/dist/base/table-view/routes.d.ts +73 -21
  203. package/dist/base/table-view/routes.js +13 -10
  204. package/dist/base/table-view/routes.js.map +1 -1
  205. package/dist/base/table-view/schema.d.ts +152 -152
  206. package/dist/base/table-view/source.js +4 -1
  207. package/dist/base/table-view/source.js.map +1 -1
  208. package/dist/base/table-view.d.ts +1 -1
  209. package/dist/base/table-view.js.map +1 -1
  210. package/dist/base/top-list-card.d.ts +35 -33
  211. package/dist/base/top-list-card.js +2 -0
  212. package/dist/base/top-list-card.js.map +1 -1
  213. package/dist/base/types/error.js +5 -2
  214. package/dist/base/types/error.js.map +1 -1
  215. package/dist/base/types/guards.d.ts +4 -4
  216. package/dist/base/types/json.d.ts +1 -10
  217. package/dist/base/types/row-action.d.ts +7 -7
  218. package/dist/component-options/confirm-dialog.d.ts +2 -0
  219. package/dist/component-options/confirm-dialog.js.map +1 -1
  220. package/dist/component-options/data-type.d.ts +2 -2
  221. package/dist/component-options/data-type.js +7 -7
  222. package/dist/component-options/data-type.js.map +1 -1
  223. package/dist/component-options/row-action.d.ts +14 -9
  224. package/dist/component-slots.d.ts +11 -2
  225. package/dist/component-slots.js +1 -0
  226. package/dist/component-slots.js.map +1 -1
  227. package/dist/component.d.ts +7 -8
  228. package/dist/component.js +17 -25
  229. package/dist/component.js.map +1 -1
  230. package/dist/data-controllers/members.d.ts +11 -7
  231. package/dist/data-controllers/members.js +1 -1
  232. package/dist/data-controllers/members.js.map +1 -1
  233. package/dist/data-controllers/roles.d.ts +32 -10
  234. package/dist/db/internal/exportJobs.model.d.ts +7 -5
  235. package/dist/db/internal/inviteResolutions.model.d.ts +7 -5
  236. package/dist/db/internal/tenantLifecycle.model.d.ts +7 -5
  237. package/dist/db/models/roles.model.d.ts +7 -5
  238. package/dist/db/models/tenantMembers.model.d.ts +7 -5
  239. package/dist/db/models/tenants.model.d.ts +7 -5
  240. package/dist/db/models/user_invites.model.d.ts +7 -5
  241. package/dist/guards.d.ts +1 -1
  242. package/dist/hooks.d.ts +1 -2
  243. package/dist/hooks.js +33 -26
  244. package/dist/hooks.js.map +1 -1
  245. package/dist/internal/attachments.d.ts +2 -2
  246. package/dist/internal/component-builder.js +2 -1
  247. package/dist/internal/component-builder.js.map +1 -1
  248. package/dist/internal/component-serialization.d.ts +2 -4
  249. package/dist/internal/component-serialization.js +4 -3
  250. package/dist/internal/component-serialization.js.map +1 -1
  251. package/dist/internal/component-slots.d.ts +19 -2
  252. package/dist/internal/component-slots.js +35 -12
  253. package/dist/internal/component-slots.js.map +1 -1
  254. package/dist/internal/component-watch-filter.d.ts +11 -0
  255. package/dist/internal/component-watch-filter.js +22 -0
  256. package/dist/internal/component-watch-filter.js.map +1 -0
  257. package/dist/internal/component-watches.js +0 -1
  258. package/dist/internal/component-watches.js.map +1 -1
  259. package/dist/internal/own-entry.d.ts +7 -0
  260. package/dist/internal/own-entry.js +13 -0
  261. package/dist/internal/own-entry.js.map +1 -0
  262. package/dist/invite-extension-payloads.d.ts +14 -2
  263. package/dist/invite-extensions/internal/delivery.js +1 -2
  264. package/dist/invite-extensions/internal/delivery.js.map +1 -1
  265. package/dist/invite-extensions/internal/edit.d.ts +2 -1
  266. package/dist/invite-extensions/internal/edit.js +8 -9
  267. package/dist/invite-extensions/internal/edit.js.map +1 -1
  268. package/dist/invite-extensions/internal/form-slot.js +8 -15
  269. package/dist/invite-extensions/internal/form-slot.js.map +1 -1
  270. package/dist/invite-extensions/internal/payload-slices.d.ts +33 -3
  271. package/dist/invite-extensions/internal/payload-slices.js +84 -19
  272. package/dist/invite-extensions/internal/payload-slices.js.map +1 -1
  273. package/dist/invite-extensions/internal/types.d.ts +10 -1
  274. package/dist/invite-resolution.js +6 -4
  275. package/dist/invite-resolution.js.map +1 -1
  276. package/dist/json.d.ts +10 -0
  277. package/dist/json.js +3 -0
  278. package/dist/json.js.map +1 -0
  279. package/dist/layout-banners.d.ts +5 -2
  280. package/dist/layout-banners.js.map +1 -1
  281. package/dist/page/controllers.d.ts +2 -2
  282. package/dist/page/internal/extension-validation.js +3 -2
  283. package/dist/page/internal/extension-validation.js.map +1 -1
  284. package/dist/page/internal/metadata-layout.js +1 -1
  285. package/dist/page/internal/metadata-layout.js.map +1 -1
  286. package/dist/page/internal/metadata-publish.js +3 -2
  287. package/dist/page/internal/metadata-publish.js.map +1 -1
  288. package/dist/page/internal/metadata-registration.js +5 -4
  289. package/dist/page/internal/metadata-registration.js.map +1 -1
  290. package/dist/page/internal/metadata-upload-registration.d.ts +3 -1
  291. package/dist/page/internal/metadata-upload-registration.js +9 -0
  292. package/dist/page/internal/metadata-upload-registration.js.map +1 -1
  293. package/dist/page/internal/metadata-uploads.d.ts +18 -5
  294. package/dist/page/internal/metadata-uploads.js +7 -8
  295. package/dist/page/internal/metadata-uploads.js.map +1 -1
  296. package/dist/page/internal/page-record.d.ts +2 -3
  297. package/dist/page/internal/page-record.js +19 -14
  298. package/dist/page/internal/page-record.js.map +1 -1
  299. package/dist/page/layout-filter.js +17 -6
  300. package/dist/page/layout-filter.js.map +1 -1
  301. package/dist/page/metadata.js +5 -7
  302. package/dist/page/metadata.js.map +1 -1
  303. package/dist/request-tenant.d.ts +10 -4
  304. package/dist/request-tenant.js +16 -34
  305. package/dist/request-tenant.js.map +1 -1
  306. package/dist/tenant-export.d.ts +2 -1
  307. package/dist/tenant-lifecycle.d.ts +13 -4
  308. package/dist/tenant-lifecycle.js +51 -18
  309. package/dist/tenant-lifecycle.js.map +1 -1
  310. package/dist/types.d.ts +20 -0
  311. package/dist/uploads.js +42 -59
  312. package/dist/uploads.js.map +1 -1
  313. package/dist/utils/fire-and-forget.js.map +1 -1
  314. package/dist/utils/internal/decorated-class.d.ts +14 -0
  315. package/dist/utils/internal/decorated-class.js +37 -0
  316. package/dist/utils/internal/decorated-class.js.map +1 -0
  317. package/dist/utils/internal/type-check.d.ts +9 -0
  318. package/dist/utils/internal/type-check.js +13 -5
  319. package/dist/utils/internal/type-check.js.map +1 -1
  320. package/dist/utils/internal/value-parser.d.ts +1 -1
  321. package/dist/utils/internal/value-parser.js +22 -9
  322. package/dist/utils/internal/value-parser.js.map +1 -1
  323. package/dist/watch-actions.d.ts +1 -1
  324. package/docs/1.core/1.introduction.md +82 -77
  325. package/docs/1.core/10.layout-banners.md +57 -45
  326. package/docs/1.core/11.modules-and-dynamic-menus.md +178 -0
  327. package/docs/1.core/12.frontend-modules-and-request-helpers.md +155 -0
  328. package/docs/1.core/13.tenant-data-export.md +120 -0
  329. package/docs/1.core/2.pages-and-modules.md +140 -367
  330. package/docs/1.core/3.components.md +21 -22
  331. package/docs/1.core/4.permissions.md +92 -71
  332. package/docs/1.core/5.tenancy.md +112 -86
  333. package/docs/1.core/6.invites.md +90 -65
  334. package/docs/1.core/7.hooks.md +96 -166
  335. package/docs/1.core/8.realtime.md +44 -45
  336. package/docs/1.core/9.quick-actions.md +37 -30
  337. package/docs/2.auth/1.introduction.md +33 -35
  338. package/docs/2.auth/2.authentication.md +60 -38
  339. package/docs/2.auth/3.tokens-and-sessions.md +56 -55
  340. package/docs/2.auth/4.users.md +79 -51
  341. package/docs/2.auth/5.external-identities.md +25 -26
  342. package/docs/3.base/1.introduction.md +64 -60
  343. package/docs/3.base/10.display-blocks.md +15 -16
  344. package/docs/3.base/11.page-layouts.md +273 -0
  345. package/docs/3.base/12.table-row-actions.md +122 -0
  346. package/docs/3.base/13.table-filters-and-forms.md +104 -0
  347. package/docs/3.base/14.table-events-and-helpers.md +114 -0
  348. package/docs/3.base/15.table-sources-and-gates.md +24 -0
  349. package/docs/3.base/2.types.md +44 -41
  350. package/docs/3.base/3.forms.md +27 -28
  351. package/docs/3.base/4.tables.md +34 -367
  352. package/docs/3.base/5.charts-and-widgets.md +28 -29
  353. package/docs/3.base/6.layout.md +21 -270
  354. package/docs/3.base/8.data-types.md +39 -40
  355. package/docs/3.base/9.helpers.md +36 -38
  356. package/docs/4.notifications/1.introduction.md +22 -26
  357. package/docs/4.notifications/2.categories-and-subjects.md +58 -55
  358. package/docs/4.notifications/3.sending.md +72 -68
  359. package/docs/5.html-render/1.introduction.md +119 -81
  360. package/docs/5.html-render/2.built-in-emails.md +71 -51
  361. package/docs/index.md +18 -29
  362. package/docs/tsconfig.json +4 -0
  363. package/package.json +11 -11
  364. package/docs/images/emails-admin-invite.png +0 -0
  365. package/docs/images/emails-change-notice.png +0 -0
  366. package/docs/images/emails-change-verification.png +0 -0
  367. package/docs/images/emails-digest-logo-dark.png +0 -0
  368. package/docs/images/emails-digest-logo-light.png +0 -0
  369. package/docs/images/emails-digest.png +0 -0
  370. package/docs/images/emails-export-partial.png +0 -0
  371. package/docs/images/emails-export-ready.png +0 -0
  372. package/docs/images/emails-reset-password.png +0 -0
  373. package/docs/images/emails-two-factor.png +0 -0
  374. package/docs/images/emails-user-validation.png +0 -0
package/dist/uploads.js CHANGED
@@ -17,68 +17,49 @@ var internal;
17
17
  * @internal
18
18
  */
19
19
  exports.SignUploadToken = (0, interface_core_1.InterfaceFunction)();
20
- const UPLOAD_FIELD_TYPES = new Set(["file", "image"]);
20
+ function isTraversable(value) {
21
+ return !!value && typeof value === "object";
22
+ }
21
23
  function isUploadFieldNode(node) {
22
- // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Traversal accepts arbitrary serialized option values and only inspects object nodes.
23
- if (!node || typeof node !== "object")
24
- return false;
25
- const candidate = node;
26
- return (
27
- // oxlint-disable-next-line anti-slop/no-runtime-typeof -- A native upload node must name a file or image field rather than an arbitrary option type.
28
- typeof candidate.type === "string" &&
29
- UPLOAD_FIELD_TYPES.has(candidate.type) &&
30
- !!candidate.component &&
31
- // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Preserve the serialized-node shape check before accessing the component's options.
32
- typeof candidate.component === "object");
24
+ return (isTraversable(node) &&
25
+ !Array.isArray(node) &&
26
+ "type" in node &&
27
+ (node.type === "file" || node.type === "image") &&
28
+ "component" in node &&
29
+ isTraversable(node.component));
33
30
  }
34
- function hasUploadField(node) {
35
- if (Array.isArray(node)) {
36
- return node.some(hasUploadField);
37
- }
38
- // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Recursive traversal stops at primitive leaves of consumer options.
39
- if (!node || typeof node !== "object") {
40
- return false;
41
- }
42
- if (isUploadFieldNode(node)) {
43
- return true;
44
- }
45
- return Object.values(node).some(hasUploadField);
31
+ /** Every upload field of a serialized value, an enclosing one before the ones it holds. */
32
+ // oxlint-disable-next-line anti-slop/no-unknown-parameters -- Walks every value of the serialized options a component declares, its own T, at any depth that declaration has, to find the upload fields among them.
33
+ function uploadFieldNodes(node) {
34
+ if (!isTraversable(node))
35
+ return [];
36
+ return [
37
+ ...(isUploadFieldNode(node) ? [node] : []),
38
+ ...Object.values(node).flatMap(uploadFieldNodes),
39
+ ];
46
40
  }
47
41
  async function stampNode(node) {
48
- if (Array.isArray(node)) {
49
- for (const item of node)
50
- await stampNode(item);
51
- return;
52
- }
53
- // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Primitive option leaves have no upload fields or child objects to stamp.
54
- if (!node || typeof node !== "object") {
55
- return;
56
- }
57
- if (isUploadFieldNode(node)) {
58
- const component = node.component;
59
- // oxlint-disable-next-line anti-slop/no-runtime-typeof -- The existing serialized-node check does not validate options; non-object options are replaced before stamping.
60
- if (!component.options || typeof component.options !== "object") {
61
- component.options = {};
62
- }
63
- const options = component.options;
64
- options.uploadToken = await (0, exports.SignUploadToken)({
65
- pageId: "",
66
- componentId: "",
67
- storage:
68
- // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Serialized consumer storage values contribute to claims only when strings.
69
- typeof options.storage === "string" ? options.storage : undefined,
70
- // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Only a string serialized path is copied into upload claims.
71
- path: typeof options.path === "string" ? options.path : undefined,
72
- field:
73
- // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Only a string attachmentField identifies the server-declared upload field.
74
- typeof options.attachmentField === "string"
75
- ? options.attachmentField
76
- : undefined,
77
- visibility: options.visibility === "public" ? "public" : "private",
78
- });
42
+ const component = node.component;
43
+ // oxlint-disable-next-line anti-slop/no-runtime-typeof -- The existing serialized-node check does not validate options; non-object options are replaced before stamping.
44
+ if (!component.options || typeof component.options !== "object") {
45
+ component.options = {};
79
46
  }
80
- for (const value of Object.values(node))
81
- await stampNode(value);
47
+ const options = component.options;
48
+ options.uploadToken = await (0, exports.SignUploadToken)({
49
+ pageId: "",
50
+ componentId: "",
51
+ storage:
52
+ // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Serialized consumer storage values contribute to claims only when strings.
53
+ typeof options.storage === "string" ? options.storage : undefined,
54
+ // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Only a string serialized path is copied into upload claims.
55
+ path: typeof options.path === "string" ? options.path : undefined,
56
+ field:
57
+ // oxlint-disable-next-line anti-slop/no-runtime-typeof -- Only a string attachmentField identifies the server-declared upload field.
58
+ typeof options.attachmentField === "string"
59
+ ? options.attachmentField
60
+ : undefined,
61
+ visibility: options.visibility === "public" ? "public" : "private",
62
+ });
82
63
  }
83
64
  /**
84
65
  * Stamp a signed upload token into every File/Image field found in a
@@ -95,11 +76,13 @@ async function stampNode(node) {
95
76
  * start from the untransformed declaration.
96
77
  */
97
78
  async function StampUploadFieldTokens(options) {
98
- if (!hasUploadField(options)) {
79
+ if (uploadFieldNodes(options).length === 0) {
99
80
  return options;
100
81
  }
82
+ // oxlint-disable-next-line typescript/no-unsafe-assignment -- The JSON round trip clones the caller's options as any and types the clone as its T, kept by the 2026-11-02 16:00 ruling because any other clone changes the upload answer.
101
83
  const cloned = JSON.parse(JSON.stringify(options));
102
- await stampNode(cloned);
84
+ for (const node of uploadFieldNodes(cloned))
85
+ await stampNode(node);
103
86
  return cloned;
104
87
  }
105
88
  //# sourceMappingURL=uploads.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"uploads.js","sourceRoot":"","sources":["../src/uploads.ts"],"names":[],"mappings":";;;AAwHA,wDAOC;AA/HD,+DAGoC;AAMpC,gBAAgB;AAChB,IAAiB,QAAQ,CAIxB;AAJD,WAAiB,QAAQ;IACV,kCAAyB,GAAG,IAAI,iCAAgB,EAE1D,CAAC;AACN,CAAC,EAJgB,QAAQ,wBAAR,QAAQ,QAIxB;AAED;;;;;;;GAOG;AACU,QAAA,eAAe,GAC1B,IAAA,kCAAiB,GAAkD,CAAC;AAEtE,MAAM,kBAAkB,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAQtD,SAAS,iBAAiB,CACxB,IAAkD;IAElD,+IAA+I;IAC/I,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACpD,MAAM,SAAS,GAEX,IAAI,CAAC;IACT,OAAO;IACL,qJAAqJ;IACrJ,OAAO,SAAS,CAAC,IAAI,KAAK,QAAQ;QAClC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;QACtC,CAAC,CAAC,SAAS,CAAC,SAAS;QACrB,6IAA6I;QAC7I,OAAO,SAAS,CAAC,SAAS,KAAK,QAAQ,CACxC,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CACrB,IAAkD;IAElD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACnC,CAAC;IACD,6HAA6H;IAC7H,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AAClD,CAAC;AAED,KAAK,UAAU,SAAS,CACtB,IAAkD;IAElD,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,KAAK,MAAM,IAAI,IAAI,IAAI;YAAE,MAAM,SAAS,CAAC,IAAI,CAAC,CAAC;QAC/C,OAAO;IACT,CAAC;IACD,mIAAmI;IACnI,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtC,OAAO;IACT,CAAC;IACD,IAAI,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,yKAAyK;QACzK,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,OAAO,SAAS,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChE,SAAS,CAAC,OAAO,GAAG,EAAE,CAAC;QACzB,CAAC;QACD,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,CAAC;QAClC,OAAO,CAAC,WAAW,GAAG,MAAM,IAAA,uBAAe,EAAC;YAC1C,MAAM,EAAE,EAAE;YACV,WAAW,EAAE,EAAE;YACf,OAAO;YACL,qIAAqI;YACrI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;YACnE,sHAAsH;YACtH,IAAI,EAAE,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YACjE,KAAK;YACH,qIAAqI;YACrI,OAAO,OAAO,CAAC,eAAe,KAAK,QAAQ;gBACzC,CAAC,CAAC,OAAO,CAAC,eAAe;gBACzB,CAAC,CAAC,SAAS;YACf,UAAU,EAAE,OAAO,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;SACnE,CAAC,CAAC;IACL,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;QAAE,MAAM,SAAS,CAAC,KAAK,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;;;;;;;;GAaG;AACI,KAAK,UAAU,sBAAsB,CAAI,OAAU;IACxD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,MAAM,GAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IACtD,MAAM,SAAS,CAAC,MAAM,CAAC,CAAC;IACxB,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"uploads.js","sourceRoot":"","sources":["../src/uploads.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"fire-and-forget.js","sourceRoot":"","sources":["../../src/utils/fire-and-forget.ts"],"names":[],"mappings":";;AAMA,sCAOC;AAbD,gEAA6D;AAE7D;;;GAGG;AACH,SAAgB,aAAa,CAC3B,IAAsB,EACtB,WAAmB;IAEnB,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACnB,iBAAO,CAAC,KAAK,CAAC,oBAAoB,WAAW,YAAY,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"fire-and-forget.js","sourceRoot":"","sources":["../../src/utils/fire-and-forget.ts"],"names":[],"mappings":";;AAMA,sCAOC;AAbD,gEAA6D;AAE7D;;;GAGG;AACH,SAAgB,aAAa,CAC3B,IAAsB,EACtB,WAAmB;IAEnB,IAAI,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;QAC5B,iBAAO,CAAC,KAAK,CAAC,oBAAoB,WAAW,YAAY,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { Class, DecoratorTarget } from "@antelopejs/interface-core/decorators";
2
+ /**
3
+ * The class a member decorator decorates: its target's `constructor`.
4
+ *
5
+ * @internal
6
+ */
7
+ export declare function decoratedClass(target: DecoratorTarget): Class;
8
+ /**
9
+ * The prototype a class's instance members are decorated on.
10
+ *
11
+ * @internal
12
+ * @throws {TypeError} When the class has no prototype object.
13
+ */
14
+ export declare function prototypeOf(owner: Class): DecoratorTarget;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.decoratedClass = decoratedClass;
4
+ exports.prototypeOf = prototypeOf;
5
+ const type_check_1 = require("./type-check");
6
+ /**
7
+ * The class a member decorator decorates: its target's `constructor`.
8
+ *
9
+ * @internal
10
+ */
11
+ function decoratedClass(target) {
12
+ const owner = target.constructor;
13
+ if (!(0, type_check_1.isClass)(owner)) {
14
+ throw new TypeError("A member decorator applies to a class.");
15
+ }
16
+ return owner;
17
+ }
18
+ function isDecoratorTarget(value) {
19
+ return (typeof value === "object" &&
20
+ value !== null &&
21
+ "constructor" in value &&
22
+ typeof value.constructor === "function");
23
+ }
24
+ /**
25
+ * The prototype a class's instance members are decorated on.
26
+ *
27
+ * @internal
28
+ * @throws {TypeError} When the class has no prototype object.
29
+ */
30
+ function prototypeOf(owner) {
31
+ const prototype = owner.prototype;
32
+ if (!isDecoratorTarget(prototype)) {
33
+ throw new TypeError(`${owner.name} has no prototype to decorate`);
34
+ }
35
+ return prototype;
36
+ }
37
+ //# sourceMappingURL=decorated-class.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorated-class.js","sourceRoot":"","sources":["../../../src/utils/internal/decorated-class.ts"],"names":[],"mappings":";;AAYA,wCAMC;AAiBD,kCAMC;AApCD,6CAAuC;AAEvC;;;;GAIG;AACH,SAAgB,cAAc,CAAC,MAAuB;IACpD,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC;IACjC,IAAI,CAAC,IAAA,oBAAO,EAAC,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,IAAI,SAAS,CAAC,wCAAwC,CAAC,CAAC;IAChE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,aAAa,IAAI,KAAK;QACtB,OAAO,KAAK,CAAC,WAAW,KAAK,UAAU,CACxC,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAgB,WAAW,CAAC,KAAY;IACtC,MAAM,SAAS,GAAY,KAAK,CAAC,SAAS,CAAC;IAC3C,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,SAAS,CAAC,GAAG,KAAK,CAAC,IAAI,+BAA+B,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1,3 +1,4 @@
1
+ import type { Class } from "@antelopejs/interface-core/decorators";
1
2
  declare const primitiveTypes: readonly ["string", "number", "boolean", "undefined", "bigint", "symbol"];
2
3
  type Primitive = (typeof primitiveTypes)[number];
3
4
  interface PrimitiveValueByTag {
@@ -21,6 +22,14 @@ export declare const isUndefined: (v: unknown) => v is undefined;
21
22
  export declare const isObject: (v: unknown) => v is object;
22
23
  /** @internal */
23
24
  export declare const isFunction: (v: unknown) => v is (...args: unknown[]) => unknown;
25
+ /**
26
+ * Whether a value is a class: a function with an object `prototype`, which
27
+ * arrow functions, methods and bound functions lack. A generator function has
28
+ * one too, a language limit this check shares with every `prototype` test.
29
+ *
30
+ * @internal
31
+ */
32
+ export declare const isClass: (value: unknown) => value is Class;
24
33
  /** @internal */
25
34
  export declare const isBigint: (v: unknown) => v is bigint;
26
35
  /** @internal */
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isJSON = exports.isDate = exports.isNull = exports.isPrimitive = exports.isSymbol = exports.isBigint = exports.isFunction = exports.isObject = exports.isUndefined = exports.isBoolean = exports.isNumber = exports.isString = void 0;
3
+ exports.isJSON = exports.isDate = exports.isNull = exports.isPrimitive = exports.isSymbol = exports.isBigint = exports.isClass = exports.isFunction = exports.isObject = exports.isUndefined = exports.isBoolean = exports.isNumber = exports.isString = void 0;
4
4
  const primitiveTypes = [
5
5
  "string",
6
6
  "number",
@@ -9,9 +9,7 @@ const primitiveTypes = [
9
9
  "bigint",
10
10
  "symbol",
11
11
  ];
12
- const createTypeGuard = (type) => (v) =>
13
- // oxlint-disable-next-line anti-slop/no-runtime-typeof -- These published primitive predicates implement JavaScript tag checks, including the legacy object/null behavior, rather than schema validation.
14
- typeof v === type;
12
+ const createTypeGuard = (type) => (v) => typeof v === type;
15
13
  /** @internal */
16
14
  exports.isString = createTypeGuard("string");
17
15
  /** @internal */
@@ -26,6 +24,17 @@ exports.isObject = createTypeGuard("object");
26
24
  exports.isFunction =
27
25
  // oxlint-disable-next-line anti-slop/no-unknown-returns -- The published function predicate promises no result shape for arbitrary callable values.
28
26
  createTypeGuard("function");
27
+ /**
28
+ * Whether a value is a class: a function with an object `prototype`, which
29
+ * arrow functions, methods and bound functions lack. A generator function has
30
+ * one too, a language limit this check shares with every `prototype` test.
31
+ *
32
+ * @internal
33
+ */
34
+ const isClass = (value) => typeof value === "function" &&
35
+ typeof value.prototype === "object" &&
36
+ value.prototype !== null;
37
+ exports.isClass = isClass;
29
38
  /** @internal */
30
39
  exports.isBigint = createTypeGuard("bigint");
31
40
  /** @internal */
@@ -33,7 +42,6 @@ exports.isSymbol = createTypeGuard("symbol");
33
42
  /** @internal */
34
43
  const isPrimitive = (value) => {
35
44
  const types = primitiveTypes;
36
- // oxlint-disable-next-line anti-slop/no-runtime-typeof -- This published predicate classifies JavaScript tags and narrows to the primitive values whose tags it accepts.
37
45
  return types.includes(typeof value);
38
46
  };
39
47
  exports.isPrimitive = isPrimitive;
@@ -1 +1 @@
1
- {"version":3,"file":"type-check.js","sourceRoot":"","sources":["../../../src/utils/internal/type-check.ts"],"names":[],"mappings":";;;AAAA,MAAM,cAAc,GAAG;IACrB,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,WAAW;IACX,QAAQ;IACR,QAAQ;CACA,CAAC;AAaX,MAAM,eAAe,GACnB,CAAI,IAAY,EAAE,EAAE,CACpB,CAAC,CAAU,EAAU,EAAE;AACrB,0MAA0M;AAC1M,OAAO,CAAC,KAAK,IAAI,CAAC;AAEtB,gBAAgB;AACH,QAAA,QAAQ,GAAG,eAAe,CAAS,QAAQ,CAAC,CAAC;AAC1D,gBAAgB;AACH,QAAA,QAAQ,GAAG,eAAe,CAAS,QAAQ,CAAC,CAAC;AAC1D,gBAAgB;AACH,QAAA,SAAS,GAAG,eAAe,CAAU,SAAS,CAAC,CAAC;AAC7D,gBAAgB;AACH,QAAA,WAAW,GAAG,eAAe,CAAY,WAAW,CAAC,CAAC;AACnE,gBAAgB;AACH,QAAA,QAAQ,GAAG,eAAe,CAAS,QAAQ,CAAC,CAAC;AAC1D,gBAAgB;AACH,QAAA,UAAU;AACrB,oJAAoJ;AACpJ,eAAe,CAAkC,UAAU,CAAC,CAAC;AAC/D,gBAAgB;AACH,QAAA,QAAQ,GAAG,eAAe,CAAS,QAAQ,CAAC,CAAC;AAC1D,gBAAgB;AACH,QAAA,QAAQ,GAAG,eAAe,CAAS,QAAQ,CAAC,CAAC;AAE1D,gBAAgB;AACT,MAAM,WAAW,GAAG,CAAC,KAAc,EAA2B,EAAE;IACrE,MAAM,KAAK,GAAsB,cAAc,CAAC;IAChD,yKAAyK;IACzK,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,KAAK,CAAC,CAAC;AACtC,CAAC,CAAC;AAJW,QAAA,WAAW,eAItB;AAEF,gBAAgB;AACT,MAAM,MAAM,GAAG,CAAC,KAAc,EAAiB,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC;AAA3D,QAAA,MAAM,UAAqD;AAExE,gBAAgB;AACT,MAAM,MAAM,GAAG,CAAC,KAAc,EAAiB,EAAE,CACtD,KAAK,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AAD7C,QAAA,MAAM,UACuC;AAE1D,gBAAgB;AAChB,4JAA4J;AACrJ,MAAM,MAAM,GAAG,CAAC,KAAc,EAAW,EAAE;IAChD,IAAI,CAAC,IAAA,gBAAQ,EAAC,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjC,OAAO,IAAA,gBAAQ,EAAC,MAAM,CAAC,IAAI,CAAC,IAAA,cAAM,EAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAVW,QAAA,MAAM,UAUjB"}
1
+ {"version":3,"file":"type-check.js","sourceRoot":"","sources":["../../../src/utils/internal/type-check.ts"],"names":[],"mappings":";;;AAEA,MAAM,cAAc,GAAG;IACrB,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,WAAW;IACX,QAAQ;IACR,QAAQ;CACA,CAAC;AA6BX,MAAM,eAAe,GACnB,CAAI,IAAkB,EAAE,EAAE,CAC1B,CAAC,CAAU,EAAU,EAAE,CACrB,OAAO,CAAC,KAAK,IAAI,CAAC;AAEtB,gBAAgB;AACH,QAAA,QAAQ,GAAG,eAAe,CAAS,QAAQ,CAAC,CAAC;AAC1D,gBAAgB;AACH,QAAA,QAAQ,GAAG,eAAe,CAAS,QAAQ,CAAC,CAAC;AAC1D,gBAAgB;AACH,QAAA,SAAS,GAAG,eAAe,CAAU,SAAS,CAAC,CAAC;AAC7D,gBAAgB;AACH,QAAA,WAAW,GAAG,eAAe,CAAY,WAAW,CAAC,CAAC;AACnE,gBAAgB;AACH,QAAA,QAAQ,GAAG,eAAe,CAAS,QAAQ,CAAC,CAAC;AAC1D,gBAAgB;AACH,QAAA,UAAU;AACrB,oJAAoJ;AACpJ,eAAe,CAAkC,UAAU,CAAC,CAAC;AAC/D;;;;;;GAMG;AACI,MAAM,OAAO,GAAG,CAAC,KAAc,EAAkB,EAAE,CACxD,OAAO,KAAK,KAAK,UAAU;IAC3B,OAAO,KAAK,CAAC,SAAS,KAAK,QAAQ;IACnC,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC;AAHd,QAAA,OAAO,WAGO;AAC3B,gBAAgB;AACH,QAAA,QAAQ,GAAG,eAAe,CAAS,QAAQ,CAAC,CAAC;AAC1D,gBAAgB;AACH,QAAA,QAAQ,GAAG,eAAe,CAAS,QAAQ,CAAC,CAAC;AAE1D,gBAAgB;AACT,MAAM,WAAW,GAAG,CAAC,KAAc,EAA2B,EAAE;IACrE,MAAM,KAAK,GAAsB,cAAc,CAAC;IAChD,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,KAAK,CAAC,CAAC;AACtC,CAAC,CAAC;AAHW,QAAA,WAAW,eAGtB;AAEF,gBAAgB;AACT,MAAM,MAAM,GAAG,CAAC,KAAc,EAAiB,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC;AAA3D,QAAA,MAAM,UAAqD;AAExE,gBAAgB;AACT,MAAM,MAAM,GAAG,CAAC,KAAc,EAAiB,EAAE,CACtD,KAAK,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;AAD7C,QAAA,MAAM,UACuC;AAE1D,gBAAgB;AAChB,4JAA4J;AACrJ,MAAM,MAAM,GAAG,CAAC,KAAc,EAAW,EAAE;IAChD,IAAI,CAAC,IAAA,gBAAQ,EAAC,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,IAAA,gBAAQ,EAAC,MAAM,CAAC,IAAI,CAAC,IAAA,cAAM,EAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAVW,QAAA,MAAM,UAUjB"}
@@ -83,4 +83,4 @@ export declare function isStringDate(value: string): boolean;
83
83
  */
84
84
  export declare function isStringJSON(value: string): boolean;
85
85
  /** @internal */
86
- export declare const assertPrimitiveValue: (value: unknown) => void;
86
+ export declare function assertPrimitiveValue(value: unknown): asserts value is string | number | boolean | Date | null;
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.assertPrimitiveValue = void 0;
4
3
  exports.parseValue = parseValue;
5
4
  exports.parseObject = parseObject;
6
5
  exports.isStringKeyword = isStringKeyword;
7
6
  exports.isStringNumber = isStringNumber;
8
7
  exports.isStringDate = isStringDate;
9
8
  exports.isStringJSON = isStringJSON;
9
+ exports.assertPrimitiveValue = assertPrimitiveValue;
10
10
  const type_check_1 = require("./type-check");
11
11
  const KEYWORD_VALUES = {
12
12
  true: true,
@@ -15,6 +15,23 @@ const KEYWORD_VALUES = {
15
15
  undefined: undefined,
16
16
  };
17
17
  const KEYWORD_LOOKUP = new Map(Object.entries(KEYWORD_VALUES));
18
+ /** What `JSON.parse` answers, read as the value it holds. */
19
+ function parseJsonText(text) {
20
+ const parsed = JSON.parse(text);
21
+ if ((0, type_check_1.isString)(parsed) ||
22
+ (0, type_check_1.isNumber)(parsed) ||
23
+ (0, type_check_1.isBoolean)(parsed) ||
24
+ (0, type_check_1.isNull)(parsed)) {
25
+ return parsed;
26
+ }
27
+ if (Array.isArray(parsed)) {
28
+ const items = parsed;
29
+ return items;
30
+ }
31
+ if ((0, type_check_1.isObject)(parsed))
32
+ return Object.fromEntries(Object.entries(parsed));
33
+ throw new TypeError("JSON text parsed to a value JSON cannot hold");
34
+ }
18
35
  const STRING_TYPE_PARSERS = [
19
36
  {
20
37
  test: isStringKeyword,
@@ -30,7 +47,7 @@ const STRING_TYPE_PARSERS = [
30
47
  },
31
48
  {
32
49
  test: isStringJSON,
33
- parse: (value) => JSON.parse(value),
50
+ parse: parseJsonText,
34
51
  },
35
52
  ];
36
53
  /**
@@ -152,14 +169,10 @@ const PRIMITIVE_TYPE_VALIDATORS = [
152
169
  type_check_1.isNull,
153
170
  ];
154
171
  /** @internal */
155
- // oxlint-disable-next-line anti-slop/no-unknown-parameters -- This published assertion validates arbitrary comparison operands and throws for unsupported values.
156
- const assertPrimitiveValue = (value) => {
172
+ function assertPrimitiveValue(value) {
157
173
  if (PRIMITIVE_TYPE_VALIDATORS.some((test) => test(value))) {
158
174
  return;
159
175
  }
160
- throw new Error(
161
- // oxlint-disable-next-line anti-slop/no-runtime-typeof -- The error reports the rejected operand's JavaScript tag without changing its validation contract.
162
- `Value must be a string, number, boolean, or Date for is comparison. Got: ${typeof value}`);
163
- };
164
- exports.assertPrimitiveValue = assertPrimitiveValue;
176
+ throw new Error(`Value must be a string, number, boolean, or Date for is comparison. Got: ${typeof value}`);
177
+ }
165
178
  //# sourceMappingURL=value-parser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"value-parser.js","sourceRoot":"","sources":["../../../src/utils/internal/value-parser.ts"],"names":[],"mappings":";;;AA2DA,gCAOC;AAcD,kCASC;AAYD,0CAEC;AAaD,wCAEC;AAaD,oCAMC;AAcD,oCAOC;AA9JD,6CAA6E;AAc7E,MAAM,cAAc,GAAG;IACrB,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,KAAK;IACZ,IAAI,EAAE,IAAI;IACV,SAAS,EAAE,SAAS;CACrB,CAAC;AAEF,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC;AAE/D,MAAM,mBAAmB,GAAG;IAC1B;QACE,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC;KACpD;IACD;QACE,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC;KACxC;IACD;QACE,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC;KAC1C;IACD;QACE,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;KAC5C;CACF,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,UAAU,CAAC,KAAa;IACtC,KAAK,MAAM,MAAM,IAAI,mBAAmB,EAAE,CAAC;QACzC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,WAAW,CACzB,KAA4C;IAE5C,MAAM,MAAM,GAA8B,EAAE,CAAC;IAC7C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IACD,8JAA8J;IAC9J,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,eAAe,CAAC,KAAa;IAC3C,OAAO,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACrD,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,cAAc,CAAC,KAAa;IAC1C,OAAO,KAAK,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,YAAY,CAAC,KAAa;IACxC,IAAI,CAAC,0DAA0D,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5E,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;AACvC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,YAAY,CAAC,KAAa;IACxC,IAAI,CAAC;QACH,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,yBAAyB,GAAG;IAChC,qBAAQ;IACR,qBAAQ;IACR,sBAAS;IACT,mBAAM;IACN,mBAAM;CACP,CAAC;AACF,gBAAgB;AAChB,kKAAkK;AAC3J,MAAM,oBAAoB,GAAG,CAAC,KAAc,EAAQ,EAAE;IAC3D,IAAI,yBAAyB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC1D,OAAO;IACT,CAAC;IACD,MAAM,IAAI,KAAK;IACb,4JAA4J;IAC5J,4EAA4E,OAAO,KAAK,EAAE,CAC3F,CAAC;AACJ,CAAC,CAAC;AARW,QAAA,oBAAoB,wBAQ/B"}
1
+ {"version":3,"file":"value-parser.js","sourceRoot":"","sources":["../../../src/utils/internal/value-parser.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,7 @@ export interface WatchAction {
13
13
  component: string;
14
14
  event: string;
15
15
  functionId: string;
16
- params?: Record<string, unknown>;
16
+ params?: object;
17
17
  onParam?: WatchActionCondition | WatchActionCondition[];
18
18
  requirePermission?: string;
19
19
  }