@wcstack/state 1.3.11

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 (574) hide show
  1. package/README.ja.md +1078 -0
  2. package/README.md +1078 -0
  3. package/dist/address/AbsolutePathInfo.d.ts +4 -0
  4. package/dist/address/AbsolutePathInfo.d.ts.map +1 -0
  5. package/dist/address/AbsolutePathInfo.js +33 -0
  6. package/dist/address/AbsolutePathInfo.js.map +1 -0
  7. package/dist/address/AbsoluteStateAddress.d.ts +4 -0
  8. package/dist/address/AbsoluteStateAddress.d.ts.map +1 -0
  9. package/dist/address/AbsoluteStateAddress.js +56 -0
  10. package/dist/address/AbsoluteStateAddress.js.map +1 -0
  11. package/dist/address/PathInfo.d.ts +3 -0
  12. package/dist/address/PathInfo.d.ts.map +1 -0
  13. package/dist/address/PathInfo.js +104 -0
  14. package/dist/address/PathInfo.js.map +1 -0
  15. package/dist/address/ResolvedAddress.d.ts +31 -0
  16. package/dist/address/ResolvedAddress.d.ts.map +1 -0
  17. package/dist/address/ResolvedAddress.js +110 -0
  18. package/dist/address/ResolvedAddress.js.map +1 -0
  19. package/dist/address/StateAddress.d.ts +4 -0
  20. package/dist/address/StateAddress.d.ts.map +1 -0
  21. package/dist/address/StateAddress.js +56 -0
  22. package/dist/address/StateAddress.js.map +1 -0
  23. package/dist/address/calcWildcardLen.d.ts +3 -0
  24. package/dist/address/calcWildcardLen.d.ts.map +1 -0
  25. package/dist/address/calcWildcardLen.js +31 -0
  26. package/dist/address/calcWildcardLen.js.map +1 -0
  27. package/dist/address/types.d.ts +54 -0
  28. package/dist/address/types.d.ts.map +1 -0
  29. package/dist/address/types.js +2 -0
  30. package/dist/address/types.js.map +1 -0
  31. package/dist/apply/applyChange.d.ts +4 -0
  32. package/dist/apply/applyChange.d.ts.map +1 -0
  33. package/dist/apply/applyChange.js +105 -0
  34. package/dist/apply/applyChange.js.map +1 -0
  35. package/dist/apply/applyChangeFromBindings.d.ts +9 -0
  36. package/dist/apply/applyChangeFromBindings.d.ts.map +1 -0
  37. package/dist/apply/applyChangeFromBindings.js +74 -0
  38. package/dist/apply/applyChangeFromBindings.js.map +1 -0
  39. package/dist/apply/applyChangeToAttribute.d.ts +4 -0
  40. package/dist/apply/applyChangeToAttribute.d.ts.map +1 -0
  41. package/dist/apply/applyChangeToAttribute.js +8 -0
  42. package/dist/apply/applyChangeToAttribute.js.map +1 -0
  43. package/dist/apply/applyChangeToCheckbox.d.ts +4 -0
  44. package/dist/apply/applyChangeToCheckbox.d.ts.map +1 -0
  45. package/dist/apply/applyChangeToCheckbox.js +11 -0
  46. package/dist/apply/applyChangeToCheckbox.js.map +1 -0
  47. package/dist/apply/applyChangeToClass.d.ts +4 -0
  48. package/dist/apply/applyChangeToClass.d.ts.map +1 -0
  49. package/dist/apply/applyChangeToClass.js +10 -0
  50. package/dist/apply/applyChangeToClass.js.map +1 -0
  51. package/dist/apply/applyChangeToFor.d.ts +9 -0
  52. package/dist/apply/applyChangeToFor.d.ts.map +1 -0
  53. package/dist/apply/applyChangeToFor.js +186 -0
  54. package/dist/apply/applyChangeToFor.js.map +1 -0
  55. package/dist/apply/applyChangeToIf.d.ts +4 -0
  56. package/dist/apply/applyChangeToIf.d.ts.map +1 -0
  57. package/dist/apply/applyChangeToIf.js +42 -0
  58. package/dist/apply/applyChangeToIf.js.map +1 -0
  59. package/dist/apply/applyChangeToProperty.d.ts +4 -0
  60. package/dist/apply/applyChangeToProperty.d.ts.map +1 -0
  61. package/dist/apply/applyChangeToProperty.js +37 -0
  62. package/dist/apply/applyChangeToProperty.js.map +1 -0
  63. package/dist/apply/applyChangeToRadio.d.ts +4 -0
  64. package/dist/apply/applyChangeToRadio.d.ts.map +1 -0
  65. package/dist/apply/applyChangeToRadio.js +8 -0
  66. package/dist/apply/applyChangeToRadio.js.map +1 -0
  67. package/dist/apply/applyChangeToStyle.d.ts +4 -0
  68. package/dist/apply/applyChangeToStyle.d.ts.map +1 -0
  69. package/dist/apply/applyChangeToStyle.js +9 -0
  70. package/dist/apply/applyChangeToStyle.js.map +1 -0
  71. package/dist/apply/applyChangeToText.d.ts +4 -0
  72. package/dist/apply/applyChangeToText.d.ts.map +1 -0
  73. package/dist/apply/applyChangeToText.js +6 -0
  74. package/dist/apply/applyChangeToText.js.map +1 -0
  75. package/dist/apply/applyChangeToWebComponent.d.ts +4 -0
  76. package/dist/apply/applyChangeToWebComponent.d.ts.map +1 -0
  77. package/dist/apply/applyChangeToWebComponent.js +15 -0
  78. package/dist/apply/applyChangeToWebComponent.js.map +1 -0
  79. package/dist/apply/getFilteredValue.d.ts +3 -0
  80. package/dist/apply/getFilteredValue.d.ts.map +1 -0
  81. package/dist/apply/getFilteredValue.js +8 -0
  82. package/dist/apply/getFilteredValue.js.map +1 -0
  83. package/dist/apply/getValue.d.ts +4 -0
  84. package/dist/apply/getValue.d.ts.map +1 -0
  85. package/dist/apply/getValue.js +20 -0
  86. package/dist/apply/getValue.js.map +1 -0
  87. package/dist/apply/rootNodeByFragment.d.ts +3 -0
  88. package/dist/apply/rootNodeByFragment.d.ts.map +1 -0
  89. package/dist/apply/rootNodeByFragment.js +13 -0
  90. package/dist/apply/rootNodeByFragment.js.map +1 -0
  91. package/dist/apply/types.d.ts +15 -0
  92. package/dist/apply/types.d.ts.map +1 -0
  93. package/dist/apply/types.js +2 -0
  94. package/dist/apply/types.js.map +1 -0
  95. package/dist/applyChangeToNode.d.ts +2 -0
  96. package/dist/applyChangeToNode.d.ts.map +1 -0
  97. package/dist/applyChangeToNode.js +38 -0
  98. package/dist/applyChangeToNode.js.map +1 -0
  99. package/dist/auto.js +3 -0
  100. package/dist/auto.min.js +3 -0
  101. package/dist/bindTextParser/parseBindTextForEmbeddedNode.d.ts +3 -0
  102. package/dist/bindTextParser/parseBindTextForEmbeddedNode.d.ts.map +1 -0
  103. package/dist/bindTextParser/parseBindTextForEmbeddedNode.js +13 -0
  104. package/dist/bindTextParser/parseBindTextForEmbeddedNode.js.map +1 -0
  105. package/dist/bindTextParser/parseBindTextsForElement.d.ts +3 -0
  106. package/dist/bindTextParser/parseBindTextsForElement.d.ts.map +1 -0
  107. package/dist/bindTextParser/parseBindTextsForElement.js +80 -0
  108. package/dist/bindTextParser/parseBindTextsForElement.js.map +1 -0
  109. package/dist/bindTextParser/parseFilterArgs.d.ts +2 -0
  110. package/dist/bindTextParser/parseFilterArgs.d.ts.map +1 -0
  111. package/dist/bindTextParser/parseFilterArgs.js +31 -0
  112. package/dist/bindTextParser/parseFilterArgs.js.map +1 -0
  113. package/dist/bindTextParser/parseFilters.d.ts +4 -0
  114. package/dist/bindTextParser/parseFilters.d.ts.map +1 -0
  115. package/dist/bindTextParser/parseFilters.js +52 -0
  116. package/dist/bindTextParser/parseFilters.js.map +1 -0
  117. package/dist/bindTextParser/parsePropPart.d.ts +5 -0
  118. package/dist/bindTextParser/parsePropPart.d.ts.map +1 -0
  119. package/dist/bindTextParser/parsePropPart.js +44 -0
  120. package/dist/bindTextParser/parsePropPart.js.map +1 -0
  121. package/dist/bindTextParser/parseStatePart.d.ts +5 -0
  122. package/dist/bindTextParser/parseStatePart.d.ts.map +1 -0
  123. package/dist/bindTextParser/parseStatePart.js +39 -0
  124. package/dist/bindTextParser/parseStatePart.js.map +1 -0
  125. package/dist/bindTextParser/types.d.ts +3 -0
  126. package/dist/bindTextParser/types.d.ts.map +1 -0
  127. package/dist/bindTextParser/types.js +2 -0
  128. package/dist/bindTextParser/types.js.map +1 -0
  129. package/dist/bindTextParser/utils.d.ts +2 -0
  130. package/dist/bindTextParser/utils.d.ts.map +1 -0
  131. package/dist/bindTextParser/utils.js +2 -0
  132. package/dist/bindTextParser/utils.js.map +1 -0
  133. package/dist/binding/getAbsoluteStateAddressByBinding.d.ts +5 -0
  134. package/dist/binding/getAbsoluteStateAddressByBinding.d.ts.map +1 -0
  135. package/dist/binding/getAbsoluteStateAddressByBinding.js +41 -0
  136. package/dist/binding/getAbsoluteStateAddressByBinding.js.map +1 -0
  137. package/dist/binding/getBindingSetByAbsoluteStateAddress.d.ts +7 -0
  138. package/dist/binding/getBindingSetByAbsoluteStateAddress.d.ts.map +1 -0
  139. package/dist/binding/getBindingSetByAbsoluteStateAddress.js +22 -0
  140. package/dist/binding/getBindingSetByAbsoluteStateAddress.js.map +1 -0
  141. package/dist/binding/getStateAddressByBindingInfo.d.ts +5 -0
  142. package/dist/binding/getStateAddressByBindingInfo.d.ts.map +1 -0
  143. package/dist/binding/getStateAddressByBindingInfo.js +28 -0
  144. package/dist/binding/getStateAddressByBindingInfo.js.map +1 -0
  145. package/dist/binding/types.d.ts +23 -0
  146. package/dist/binding/types.d.ts.map +1 -0
  147. package/dist/binding/types.js +2 -0
  148. package/dist/binding/types.js.map +1 -0
  149. package/dist/bindings/bindLoopContextToContent.d.ts +5 -0
  150. package/dist/bindings/bindLoopContextToContent.d.ts.map +1 -0
  151. package/dist/bindings/bindLoopContextToContent.js +15 -0
  152. package/dist/bindings/bindLoopContextToContent.js.map +1 -0
  153. package/dist/bindings/bindingsByContent.d.ts +5 -0
  154. package/dist/bindings/bindingsByContent.d.ts.map +1 -0
  155. package/dist/bindings/bindingsByContent.js +8 -0
  156. package/dist/bindings/bindingsByContent.js.map +1 -0
  157. package/dist/bindings/collectNodesAndBindingInfos.d.ts +6 -0
  158. package/dist/bindings/collectNodesAndBindingInfos.d.ts.map +1 -0
  159. package/dist/bindings/collectNodesAndBindingInfos.js +46 -0
  160. package/dist/bindings/collectNodesAndBindingInfos.js.map +1 -0
  161. package/dist/bindings/getBindingInfos.d.ts +4 -0
  162. package/dist/bindings/getBindingInfos.d.ts.map +1 -0
  163. package/dist/bindings/getBindingInfos.js +22 -0
  164. package/dist/bindings/getBindingInfos.js.map +1 -0
  165. package/dist/bindings/getBindingsByNode.d.ts +5 -0
  166. package/dist/bindings/getBindingsByNode.d.ts.map +1 -0
  167. package/dist/bindings/getBindingsByNode.js +17 -0
  168. package/dist/bindings/getBindingsByNode.js.map +1 -0
  169. package/dist/bindings/getParseBindTextResults.d.ts +3 -0
  170. package/dist/bindings/getParseBindTextResults.d.ts.map +1 -0
  171. package/dist/bindings/getParseBindTextResults.js +36 -0
  172. package/dist/bindings/getParseBindTextResults.js.map +1 -0
  173. package/dist/bindings/getSubscriberNodes.d.ts +7 -0
  174. package/dist/bindings/getSubscriberNodes.d.ts.map +1 -0
  175. package/dist/bindings/getSubscriberNodes.js +32 -0
  176. package/dist/bindings/getSubscriberNodes.js.map +1 -0
  177. package/dist/bindings/indexBindingsByContent.d.ts +5 -0
  178. package/dist/bindings/indexBindingsByContent.d.ts.map +1 -0
  179. package/dist/bindings/indexBindingsByContent.js +8 -0
  180. package/dist/bindings/indexBindingsByContent.js.map +1 -0
  181. package/dist/bindings/initializeBindingPromiseByNode.d.ts +5 -0
  182. package/dist/bindings/initializeBindingPromiseByNode.d.ts.map +1 -0
  183. package/dist/bindings/initializeBindingPromiseByNode.js +28 -0
  184. package/dist/bindings/initializeBindingPromiseByNode.js.map +1 -0
  185. package/dist/bindings/initializeBindings.d.ts +6 -0
  186. package/dist/bindings/initializeBindings.d.ts.map +1 -0
  187. package/dist/bindings/initializeBindings.js +59 -0
  188. package/dist/bindings/initializeBindings.js.map +1 -0
  189. package/dist/bindings/nodesByContent.d.ts +4 -0
  190. package/dist/bindings/nodesByContent.d.ts.map +1 -0
  191. package/dist/bindings/nodesByContent.js +8 -0
  192. package/dist/bindings/nodesByContent.js.map +1 -0
  193. package/dist/bindings/parseCommentNode.d.ts +3 -0
  194. package/dist/bindings/parseCommentNode.d.ts.map +1 -0
  195. package/dist/bindings/parseCommentNode.js +47 -0
  196. package/dist/bindings/parseCommentNode.js.map +1 -0
  197. package/dist/bindings/replaceToReplaceNode.d.ts +3 -0
  198. package/dist/bindings/replaceToReplaceNode.d.ts.map +1 -0
  199. package/dist/bindings/replaceToReplaceNode.js +13 -0
  200. package/dist/bindings/replaceToReplaceNode.js.map +1 -0
  201. package/dist/bindings/types.d.ts +11 -0
  202. package/dist/bindings/types.d.ts.map +1 -0
  203. package/dist/bindings/types.js +2 -0
  204. package/dist/bindings/types.js.map +1 -0
  205. package/dist/bootstrapState.d.ts +3 -0
  206. package/dist/bootstrapState.d.ts.map +1 -0
  207. package/dist/bootstrapState.js +9 -0
  208. package/dist/bootstrapState.js.map +1 -0
  209. package/dist/buildBindings.d.ts +2 -0
  210. package/dist/buildBindings.d.ts.map +1 -0
  211. package/dist/buildBindings.js +30 -0
  212. package/dist/buildBindings.js.map +1 -0
  213. package/dist/cache/cacheEntryByAbsoluteStateAddress.d.ts +6 -0
  214. package/dist/cache/cacheEntryByAbsoluteStateAddress.d.ts.map +1 -0
  215. package/dist/cache/cacheEntryByAbsoluteStateAddress.js +19 -0
  216. package/dist/cache/cacheEntryByAbsoluteStateAddress.js.map +1 -0
  217. package/dist/cache/types.d.ts +5 -0
  218. package/dist/cache/types.d.ts.map +1 -0
  219. package/dist/cache/types.js +2 -0
  220. package/dist/cache/types.js.map +1 -0
  221. package/dist/components/State.d.ts +83 -0
  222. package/dist/components/State.d.ts.map +1 -0
  223. package/dist/components/State.js +340 -0
  224. package/dist/components/State.js.map +1 -0
  225. package/dist/components/types.d.ts +26 -0
  226. package/dist/components/types.d.ts.map +1 -0
  227. package/dist/components/types.js +2 -0
  228. package/dist/components/types.js.map +1 -0
  229. package/dist/config.d.ts +4 -0
  230. package/dist/config.d.ts.map +1 -0
  231. package/dist/config.js +49 -0
  232. package/dist/config.js.map +1 -0
  233. package/dist/createEmptyArray.d.ts +2 -0
  234. package/dist/createEmptyArray.d.ts.map +1 -0
  235. package/dist/createEmptyArray.js +4 -0
  236. package/dist/createEmptyArray.js.map +1 -0
  237. package/dist/createEmptySet.d.ts +2 -0
  238. package/dist/createEmptySet.d.ts.map +1 -0
  239. package/dist/createEmptySet.js +4 -0
  240. package/dist/createEmptySet.js.map +1 -0
  241. package/dist/define.d.ts +14 -0
  242. package/dist/define.d.ts.map +1 -0
  243. package/dist/define.js +25 -0
  244. package/dist/define.js.map +1 -0
  245. package/dist/dependency/types.d.ts +2 -0
  246. package/dist/dependency/types.d.ts.map +1 -0
  247. package/dist/dependency/types.js +2 -0
  248. package/dist/dependency/types.js.map +1 -0
  249. package/dist/dependency/walkDependency.d.ts +6 -0
  250. package/dist/dependency/walkDependency.d.ts.map +1 -0
  251. package/dist/dependency/walkDependency.js +194 -0
  252. package/dist/dependency/walkDependency.js.map +1 -0
  253. package/dist/event/checkboxHandler.d.ts +14 -0
  254. package/dist/event/checkboxHandler.d.ts.map +1 -0
  255. package/dist/event/checkboxHandler.js +120 -0
  256. package/dist/event/checkboxHandler.js.map +1 -0
  257. package/dist/event/handler.d.ts +8 -0
  258. package/dist/event/handler.d.ts.map +1 -0
  259. package/dist/event/handler.js +81 -0
  260. package/dist/event/handler.js.map +1 -0
  261. package/dist/event/isPossibleTwoWay.d.ts +2 -0
  262. package/dist/event/isPossibleTwoWay.d.ts.map +1 -0
  263. package/dist/event/isPossibleTwoWay.js +29 -0
  264. package/dist/event/isPossibleTwoWay.js.map +1 -0
  265. package/dist/event/radioHandler.d.ts +14 -0
  266. package/dist/event/radioHandler.d.ts.map +1 -0
  267. package/dist/event/radioHandler.js +101 -0
  268. package/dist/event/radioHandler.js.map +1 -0
  269. package/dist/event/twowayHandler.d.ts +14 -0
  270. package/dist/event/twowayHandler.d.ts.map +1 -0
  271. package/dist/event/twowayHandler.js +100 -0
  272. package/dist/event/twowayHandler.js.map +1 -0
  273. package/dist/exports.d.ts +3 -0
  274. package/dist/exports.d.ts.map +1 -0
  275. package/dist/exports.js +2 -0
  276. package/dist/exports.js.map +1 -0
  277. package/dist/filters/builtinFilters.d.ts +16 -0
  278. package/dist/filters/builtinFilters.d.ts.map +1 -0
  279. package/dist/filters/builtinFilters.js +716 -0
  280. package/dist/filters/builtinFilters.js.map +1 -0
  281. package/dist/filters/errorMessages.d.ts +43 -0
  282. package/dist/filters/errorMessages.d.ts.map +1 -0
  283. package/dist/filters/errorMessages.js +72 -0
  284. package/dist/filters/errorMessages.js.map +1 -0
  285. package/dist/filters/types.d.ts +23 -0
  286. package/dist/filters/types.d.ts.map +1 -0
  287. package/dist/filters/types.js +2 -0
  288. package/dist/filters/types.js.map +1 -0
  289. package/dist/getUUID.d.ts +2 -0
  290. package/dist/getUUID.d.ts.map +1 -0
  291. package/dist/getUUID.js +5 -0
  292. package/dist/getUUID.js.map +1 -0
  293. package/dist/hydrater/hydrate.d.ts +1 -0
  294. package/dist/hydrater/hydrate.d.ts.map +1 -0
  295. package/dist/hydrater/hydrate.js +2 -0
  296. package/dist/hydrater/hydrate.js.map +1 -0
  297. package/dist/index.d.ts +20 -0
  298. package/dist/index.esm.js +5677 -0
  299. package/dist/index.esm.js.map +1 -0
  300. package/dist/index.esm.min.js +2 -0
  301. package/dist/index.esm.min.js.map +1 -0
  302. package/dist/isCustomElement.d.ts +2 -0
  303. package/dist/isCustomElement.d.ts.map +1 -0
  304. package/dist/isCustomElement.js +26 -0
  305. package/dist/isCustomElement.js.map +1 -0
  306. package/dist/list/createListDiff.d.ts +13 -0
  307. package/dist/list/createListDiff.d.ts.map +1 -0
  308. package/dist/list/createListDiff.js +181 -0
  309. package/dist/list/createListDiff.js.map +1 -0
  310. package/dist/list/createListIndex.d.ts +10 -0
  311. package/dist/list/createListIndex.d.ts.map +1 -0
  312. package/dist/list/createListIndex.js +136 -0
  313. package/dist/list/createListIndex.js.map +1 -0
  314. package/dist/list/getIndexValueByLoopContext.d.ts +3 -0
  315. package/dist/list/getIndexValueByLoopContext.d.ts.map +1 -0
  316. package/dist/list/getIndexValueByLoopContext.js +18 -0
  317. package/dist/list/getIndexValueByLoopContext.js.map +1 -0
  318. package/dist/list/getListIndexByBindingInfo.d.ts +4 -0
  319. package/dist/list/getListIndexByBindingInfo.d.ts.map +1 -0
  320. package/dist/list/getListIndexByBindingInfo.js +32 -0
  321. package/dist/list/getListIndexByBindingInfo.js.map +1 -0
  322. package/dist/list/lastListValueByAbsoluteStateAddress.d.ts +6 -0
  323. package/dist/list/lastListValueByAbsoluteStateAddress.d.ts.map +1 -0
  324. package/dist/list/lastListValueByAbsoluteStateAddress.js +14 -0
  325. package/dist/list/lastListValueByAbsoluteStateAddress.js.map +1 -0
  326. package/dist/list/listIndexesByList.d.ts +4 -0
  327. package/dist/list/listIndexesByList.d.ts.map +1 -0
  328. package/dist/list/listIndexesByList.js +12 -0
  329. package/dist/list/listIndexesByList.js.map +1 -0
  330. package/dist/list/loopContext.d.ts +3 -0
  331. package/dist/list/loopContext.d.ts.map +1 -0
  332. package/dist/list/loopContext.js +54 -0
  333. package/dist/list/loopContext.js.map +1 -0
  334. package/dist/list/loopContextByNode.d.ts +4 -0
  335. package/dist/list/loopContextByNode.d.ts.map +1 -0
  336. package/dist/list/loopContextByNode.js +20 -0
  337. package/dist/list/loopContextByNode.js.map +1 -0
  338. package/dist/list/types.d.ts +38 -0
  339. package/dist/list/types.d.ts.map +1 -0
  340. package/dist/list/types.js +2 -0
  341. package/dist/list/types.js.map +1 -0
  342. package/dist/mustache/convertMustacheToComments.d.ts +2 -0
  343. package/dist/mustache/convertMustacheToComments.d.ts.map +1 -0
  344. package/dist/mustache/convertMustacheToComments.js +66 -0
  345. package/dist/mustache/convertMustacheToComments.js.map +1 -0
  346. package/dist/polyfills.d.ts +8 -0
  347. package/dist/polyfills.d.ts.map +1 -0
  348. package/dist/polyfills.js +22 -0
  349. package/dist/polyfills.js.map +1 -0
  350. package/dist/proxy/StateHandler.d.ts +32 -0
  351. package/dist/proxy/StateHandler.d.ts.map +1 -0
  352. package/dist/proxy/StateHandler.js +91 -0
  353. package/dist/proxy/StateHandler.js.map +1 -0
  354. package/dist/proxy/apis/connectedCallback.d.ts +18 -0
  355. package/dist/proxy/apis/connectedCallback.d.ts.map +1 -0
  356. package/dist/proxy/apis/connectedCallback.js +23 -0
  357. package/dist/proxy/apis/connectedCallback.js.map +1 -0
  358. package/dist/proxy/apis/disconnectedCallback.d.ts +17 -0
  359. package/dist/proxy/apis/disconnectedCallback.d.ts.map +1 -0
  360. package/dist/proxy/apis/disconnectedCallback.js +22 -0
  361. package/dist/proxy/apis/disconnectedCallback.js.map +1 -0
  362. package/dist/proxy/apis/getAll.d.ts +11 -0
  363. package/dist/proxy/apis/getAll.d.ts.map +1 -0
  364. package/dist/proxy/apis/getAll.js +87 -0
  365. package/dist/proxy/apis/getAll.js.map +1 -0
  366. package/dist/proxy/apis/postUpdate.d.ts +5 -0
  367. package/dist/proxy/apis/postUpdate.d.ts.map +1 -0
  368. package/dist/proxy/apis/postUpdate.js +30 -0
  369. package/dist/proxy/apis/postUpdate.js.map +1 -0
  370. package/dist/proxy/apis/resolve.d.ts +22 -0
  371. package/dist/proxy/apis/resolve.d.ts.map +1 -0
  372. package/dist/proxy/apis/resolve.js +65 -0
  373. package/dist/proxy/apis/resolve.js.map +1 -0
  374. package/dist/proxy/apis/trackDependency.d.ts +34 -0
  375. package/dist/proxy/apis/trackDependency.d.ts.map +1 -0
  376. package/dist/proxy/apis/trackDependency.js +32 -0
  377. package/dist/proxy/apis/trackDependency.js.map +1 -0
  378. package/dist/proxy/apis/updatedCallback.d.ts +28 -0
  379. package/dist/proxy/apis/updatedCallback.d.ts.map +1 -0
  380. package/dist/proxy/apis/updatedCallback.js +56 -0
  381. package/dist/proxy/apis/updatedCallback.js.map +1 -0
  382. package/dist/proxy/methods/checkDependency.d.ts +4 -0
  383. package/dist/proxy/methods/checkDependency.d.ts.map +1 -0
  384. package/dist/proxy/methods/checkDependency.js +16 -0
  385. package/dist/proxy/methods/checkDependency.js.map +1 -0
  386. package/dist/proxy/methods/getByAddress.d.ts +23 -0
  387. package/dist/proxy/methods/getByAddress.d.ts.map +1 -0
  388. package/dist/proxy/methods/getByAddress.js +81 -0
  389. package/dist/proxy/methods/getByAddress.js.map +1 -0
  390. package/dist/proxy/methods/getContextListIndex.d.ts +21 -0
  391. package/dist/proxy/methods/getContextListIndex.d.ts.map +1 -0
  392. package/dist/proxy/methods/getContextListIndex.js +32 -0
  393. package/dist/proxy/methods/getContextListIndex.js.map +1 -0
  394. package/dist/proxy/methods/getListIndex.d.ts +22 -0
  395. package/dist/proxy/methods/getListIndex.d.ts.map +1 -0
  396. package/dist/proxy/methods/getListIndex.js +55 -0
  397. package/dist/proxy/methods/getListIndex.js.map +1 -0
  398. package/dist/proxy/methods/setByAddress.d.ts +21 -0
  399. package/dist/proxy/methods/setByAddress.d.ts.map +1 -0
  400. package/dist/proxy/methods/setByAddress.js +135 -0
  401. package/dist/proxy/methods/setByAddress.js.map +1 -0
  402. package/dist/proxy/methods/setLoopContext.d.ts +22 -0
  403. package/dist/proxy/methods/setLoopContext.d.ts.map +1 -0
  404. package/dist/proxy/methods/setLoopContext.js +43 -0
  405. package/dist/proxy/methods/setLoopContext.js.map +1 -0
  406. package/dist/proxy/methods/swapInfo.d.ts +5 -0
  407. package/dist/proxy/methods/swapInfo.d.ts.map +1 -0
  408. package/dist/proxy/methods/swapInfo.js +13 -0
  409. package/dist/proxy/methods/swapInfo.js.map +1 -0
  410. package/dist/proxy/methods/types.d.ts +6 -0
  411. package/dist/proxy/methods/types.d.ts.map +1 -0
  412. package/dist/proxy/methods/types.js +2 -0
  413. package/dist/proxy/methods/types.js.map +1 -0
  414. package/dist/proxy/symbols.d.ts +8 -0
  415. package/dist/proxy/symbols.d.ts.map +1 -0
  416. package/dist/proxy/symbols.js +8 -0
  417. package/dist/proxy/symbols.js.map +1 -0
  418. package/dist/proxy/traps/get.d.ts +21 -0
  419. package/dist/proxy/traps/get.d.ts.map +1 -0
  420. package/dist/proxy/traps/get.js +120 -0
  421. package/dist/proxy/traps/get.js.map +1 -0
  422. package/dist/proxy/traps/set.d.ts +18 -0
  423. package/dist/proxy/traps/set.d.ts.map +1 -0
  424. package/dist/proxy/traps/set.js +31 -0
  425. package/dist/proxy/traps/set.js.map +1 -0
  426. package/dist/proxy/types.d.ts +27 -0
  427. package/dist/proxy/types.d.ts.map +1 -0
  428. package/dist/proxy/types.js +2 -0
  429. package/dist/proxy/types.js.map +1 -0
  430. package/dist/raiseError.d.ts +2 -0
  431. package/dist/raiseError.d.ts.map +1 -0
  432. package/dist/raiseError.js +4 -0
  433. package/dist/raiseError.js.map +1 -0
  434. package/dist/registerComponents.d.ts +2 -0
  435. package/dist/registerComponents.d.ts.map +1 -0
  436. package/dist/registerComponents.js +9 -0
  437. package/dist/registerComponents.js.map +1 -0
  438. package/dist/stateElementByName.d.ts +4 -0
  439. package/dist/stateElementByName.d.ts.map +1 -0
  440. package/dist/stateElementByName.js +53 -0
  441. package/dist/stateElementByName.js.map +1 -0
  442. package/dist/stateLoader/loadFromInnerScript.d.ts +3 -0
  443. package/dist/stateLoader/loadFromInnerScript.d.ts.map +1 -0
  444. package/dist/stateLoader/loadFromInnerScript.js +24 -0
  445. package/dist/stateLoader/loadFromInnerScript.js.map +1 -0
  446. package/dist/stateLoader/loadFromJsonFile.d.ts +3 -0
  447. package/dist/stateLoader/loadFromJsonFile.d.ts.map +1 -0
  448. package/dist/stateLoader/loadFromJsonFile.js +16 -0
  449. package/dist/stateLoader/loadFromJsonFile.js.map +1 -0
  450. package/dist/stateLoader/loadFromScriptFile.d.ts +3 -0
  451. package/dist/stateLoader/loadFromScriptFile.d.ts.map +1 -0
  452. package/dist/stateLoader/loadFromScriptFile.js +11 -0
  453. package/dist/stateLoader/loadFromScriptFile.js.map +1 -0
  454. package/dist/stateLoader/loadFromScriptJson.d.ts +3 -0
  455. package/dist/stateLoader/loadFromScriptJson.d.ts.map +1 -0
  456. package/dist/stateLoader/loadFromScriptJson.js +15 -0
  457. package/dist/stateLoader/loadFromScriptJson.js.map +1 -0
  458. package/dist/structural/activateContent.d.ts +6 -0
  459. package/dist/structural/activateContent.d.ts.map +1 -0
  460. package/dist/structural/activateContent.js +29 -0
  461. package/dist/structural/activateContent.js.map +1 -0
  462. package/dist/structural/collectStructuralFragments.d.ts +2 -0
  463. package/dist/structural/collectStructuralFragments.d.ts.map +1 -0
  464. package/dist/structural/collectStructuralFragments.js +160 -0
  465. package/dist/structural/collectStructuralFragments.js.map +1 -0
  466. package/dist/structural/contentsByNode.d.ts +5 -0
  467. package/dist/structural/contentsByNode.d.ts.map +1 -0
  468. package/dist/structural/contentsByNode.js +29 -0
  469. package/dist/structural/contentsByNode.js.map +1 -0
  470. package/dist/structural/createContent.d.ts +4 -0
  471. package/dist/structural/createContent.d.ts.map +1 -0
  472. package/dist/structural/createContent.js +92 -0
  473. package/dist/structural/createContent.js.map +1 -0
  474. package/dist/structural/createNotFilter.d.ts +3 -0
  475. package/dist/structural/createNotFilter.d.ts.map +1 -0
  476. package/dist/structural/createNotFilter.js +17 -0
  477. package/dist/structural/createNotFilter.js.map +1 -0
  478. package/dist/structural/define.d.ts +3 -0
  479. package/dist/structural/define.d.ts.map +1 -0
  480. package/dist/structural/define.js +7 -0
  481. package/dist/structural/define.js.map +1 -0
  482. package/dist/structural/expandShorthandPaths.d.ts +3 -0
  483. package/dist/structural/expandShorthandPaths.d.ts.map +1 -0
  484. package/dist/structural/expandShorthandPaths.js +96 -0
  485. package/dist/structural/expandShorthandPaths.js.map +1 -0
  486. package/dist/structural/fragmentInfoByUUID.d.ts +4 -0
  487. package/dist/structural/fragmentInfoByUUID.d.ts.map +1 -0
  488. package/dist/structural/fragmentInfoByUUID.js +30 -0
  489. package/dist/structural/fragmentInfoByUUID.js.map +1 -0
  490. package/dist/structural/getFragmentNodeInfos.d.ts +3 -0
  491. package/dist/structural/getFragmentNodeInfos.d.ts.map +1 -0
  492. package/dist/structural/getFragmentNodeInfos.js +16 -0
  493. package/dist/structural/getFragmentNodeInfos.js.map +1 -0
  494. package/dist/structural/getNodePath.d.ts +2 -0
  495. package/dist/structural/getNodePath.d.ts.map +1 -0
  496. package/dist/structural/getNodePath.js +12 -0
  497. package/dist/structural/getNodePath.js.map +1 -0
  498. package/dist/structural/optimizeFragment.d.ts +2 -0
  499. package/dist/structural/optimizeFragment.d.ts.map +1 -0
  500. package/dist/structural/optimizeFragment.js +13 -0
  501. package/dist/structural/optimizeFragment.js.map +1 -0
  502. package/dist/structural/resolveNodePath.d.ts +2 -0
  503. package/dist/structural/resolveNodePath.d.ts.map +1 -0
  504. package/dist/structural/resolveNodePath.js +13 -0
  505. package/dist/structural/resolveNodePath.js.map +1 -0
  506. package/dist/structural/types.d.ts +19 -0
  507. package/dist/structural/types.d.ts.map +1 -0
  508. package/dist/structural/types.js +2 -0
  509. package/dist/structural/types.js.map +1 -0
  510. package/dist/types.d.ts +35 -0
  511. package/dist/types.d.ts.map +1 -0
  512. package/dist/types.js +2 -0
  513. package/dist/types.js.map +1 -0
  514. package/dist/updater/types.d.ts +7 -0
  515. package/dist/updater/types.d.ts.map +1 -0
  516. package/dist/updater/types.js +2 -0
  517. package/dist/updater/types.js.map +1 -0
  518. package/dist/updater/updater.d.ts +14 -0
  519. package/dist/updater/updater.d.ts.map +1 -0
  520. package/dist/updater/updater.js +49 -0
  521. package/dist/updater/updater.js.map +1 -0
  522. package/dist/version/types.d.ts +5 -0
  523. package/dist/version/types.d.ts.map +1 -0
  524. package/dist/version/types.js +2 -0
  525. package/dist/version/types.js.map +1 -0
  526. package/dist/version/version.d.ts +3 -0
  527. package/dist/version/version.d.ts.map +1 -0
  528. package/dist/version/version.js +9 -0
  529. package/dist/version/version.js.map +1 -0
  530. package/dist/waitForStateInitialize.d.ts +2 -0
  531. package/dist/waitForStateInitialize.d.ts.map +1 -0
  532. package/dist/waitForStateInitialize.js +12 -0
  533. package/dist/waitForStateInitialize.js.map +1 -0
  534. package/dist/webComponent/MappingRule.d.ts +10 -0
  535. package/dist/webComponent/MappingRule.d.ts.map +1 -0
  536. package/dist/webComponent/MappingRule.js +120 -0
  537. package/dist/webComponent/MappingRule.js.map +1 -0
  538. package/dist/webComponent/bindWebComponent.d.ts +3 -0
  539. package/dist/webComponent/bindWebComponent.d.ts.map +1 -0
  540. package/dist/webComponent/bindWebComponent.js +49 -0
  541. package/dist/webComponent/bindWebComponent.js.map +1 -0
  542. package/dist/webComponent/completeWebComponent.d.ts +4 -0
  543. package/dist/webComponent/completeWebComponent.d.ts.map +1 -0
  544. package/dist/webComponent/completeWebComponent.js +17 -0
  545. package/dist/webComponent/completeWebComponent.js.map +1 -0
  546. package/dist/webComponent/innerState.d.ts +3 -0
  547. package/dist/webComponent/innerState.d.ts.map +1 -0
  548. package/dist/webComponent/innerState.js +120 -0
  549. package/dist/webComponent/innerState.js.map +1 -0
  550. package/dist/webComponent/lastValueByAbsoluteStateAddress.d.ts +4 -0
  551. package/dist/webComponent/lastValueByAbsoluteStateAddress.d.ts.map +1 -0
  552. package/dist/webComponent/lastValueByAbsoluteStateAddress.js +10 -0
  553. package/dist/webComponent/lastValueByAbsoluteStateAddress.js.map +1 -0
  554. package/dist/webComponent/meltFrozenObject.d.ts +2 -0
  555. package/dist/webComponent/meltFrozenObject.d.ts.map +1 -0
  556. package/dist/webComponent/meltFrozenObject.js +17 -0
  557. package/dist/webComponent/meltFrozenObject.js.map +1 -0
  558. package/dist/webComponent/outerState.d.ts +3 -0
  559. package/dist/webComponent/outerState.d.ts.map +1 -0
  560. package/dist/webComponent/outerState.js +41 -0
  561. package/dist/webComponent/outerState.js.map +1 -0
  562. package/dist/webComponent/plainOuterState.d.ts +3 -0
  563. package/dist/webComponent/plainOuterState.d.ts.map +1 -0
  564. package/dist/webComponent/plainOuterState.js +36 -0
  565. package/dist/webComponent/plainOuterState.js.map +1 -0
  566. package/dist/webComponent/stateElementByWebComponent.d.ts +4 -0
  567. package/dist/webComponent/stateElementByWebComponent.d.ts.map +1 -0
  568. package/dist/webComponent/stateElementByWebComponent.js +17 -0
  569. package/dist/webComponent/stateElementByWebComponent.js.map +1 -0
  570. package/dist/webComponent/types.d.ts +3 -0
  571. package/dist/webComponent/types.d.ts.map +1 -0
  572. package/dist/webComponent/types.js +2 -0
  573. package/dist/webComponent/types.js.map +1 -0
  574. package/package.json +70 -0
@@ -0,0 +1,716 @@
1
+ /**
2
+ * builtinFilters.ts
3
+ *
4
+ * Implementation file for built-in filter functions available in Structive.
5
+ *
6
+ * Main responsibilities:
7
+ * - Provides filters for conversion, comparison, formatting, and validation of numbers, strings, dates, booleans, etc.
8
+ * - Defines functions with options for each filter name, enabling flexible use during binding
9
+ * - Designed for common use as both input and output filters
10
+ *
11
+ * Design points:
12
+ * - Comprehensive coverage of diverse filters: eq, ne, lt, gt, inc, fix, locale, uc, lc, cap, trim, slice, pad, int, float, round, date, time, ymd, falsy, truthy, defaults, boolean, number, string, null, etc.
13
+ * - Rich type checking and error handling for option values
14
+ * - Centralized management of filter functions with FilterWithOptions type, easy to extend
15
+ * - Dynamic retrieval of filter functions from filter names and options via builtinFilterFn
16
+ */
17
+ import { config } from "../config.js";
18
+ import { raiseError } from "../raiseError.js";
19
+ import { optionMustBeNumber, optionsRequired, valueMustBeBoolean, valueMustBeDate, valueMustBeNumber } from "./errorMessages.js";
20
+ function validateNumberString(value) {
21
+ if (!value || isNaN(Number(value))) {
22
+ return false;
23
+ }
24
+ return true;
25
+ }
26
+ /**
27
+ * Equality filter - compares value with option.
28
+ *
29
+ * @param options - Array with comparison value as first element
30
+ * @returns Filter function that returns boolean
31
+ */
32
+ const eq = (options) => {
33
+ const opt = options?.[0] ?? optionsRequired('eq');
34
+ return (value) => {
35
+ // Align types for comparison
36
+ if (typeof value === 'number') {
37
+ if (!validateNumberString(opt)) {
38
+ optionMustBeNumber('eq');
39
+ }
40
+ return value === Number(opt);
41
+ }
42
+ if (typeof value === 'string') {
43
+ return value === opt;
44
+ }
45
+ // Strict equality for others
46
+ return value === opt;
47
+ };
48
+ };
49
+ /**
50
+ * Inequality filter - compares value with option.
51
+ *
52
+ * @param options - Array with comparison value as first element
53
+ * @returns Filter function that returns boolean
54
+ */
55
+ const ne = (options) => {
56
+ const opt = options?.[0] ?? optionsRequired('ne');
57
+ return (value) => {
58
+ // Align types for comparison
59
+ if (typeof value === 'number') {
60
+ if (!validateNumberString(opt)) {
61
+ optionMustBeNumber('ne');
62
+ }
63
+ return value !== Number(opt);
64
+ }
65
+ if (typeof value === 'string') {
66
+ return value !== opt;
67
+ }
68
+ // Strict equality for others
69
+ return value !== opt;
70
+ };
71
+ };
72
+ /**
73
+ * Boolean NOT filter - inverts boolean value.
74
+ *
75
+ * @param options - Unused
76
+ * @returns Filter function that returns inverted boolean
77
+ */
78
+ const not = (_options) => {
79
+ return (value) => {
80
+ if (typeof value !== 'boolean') {
81
+ valueMustBeBoolean('not');
82
+ }
83
+ return !value;
84
+ };
85
+ };
86
+ /**
87
+ * Less than filter - checks if value is less than option.
88
+ *
89
+ * @param options - Array with comparison number as first element
90
+ * @returns Filter function that returns boolean
91
+ */
92
+ const lt = (options) => {
93
+ const opt = options?.[0] ?? optionsRequired('lt');
94
+ if (!validateNumberString(opt)) {
95
+ optionMustBeNumber('lt');
96
+ }
97
+ return (value) => {
98
+ if (typeof value !== 'number') {
99
+ valueMustBeNumber('lt');
100
+ }
101
+ return value < Number(opt);
102
+ };
103
+ };
104
+ /**
105
+ * Less than or equal filter - checks if value is less than or equal to option.
106
+ *
107
+ * @param options - Array with comparison number as first element
108
+ * @returns Filter function that returns boolean
109
+ */
110
+ const le = (options) => {
111
+ const opt = options?.[0] ?? optionsRequired('le');
112
+ if (!validateNumberString(opt)) {
113
+ optionMustBeNumber('le');
114
+ }
115
+ return (value) => {
116
+ if (typeof value !== 'number') {
117
+ valueMustBeNumber('le');
118
+ }
119
+ return value <= Number(opt);
120
+ };
121
+ };
122
+ /**
123
+ * Greater than filter - checks if value is greater than option.
124
+ *
125
+ * @param options - Array with comparison number as first element
126
+ * @returns Filter function that returns boolean
127
+ */
128
+ const gt = (options) => {
129
+ const opt = options?.[0] ?? optionsRequired('gt');
130
+ if (!validateNumberString(opt)) {
131
+ optionMustBeNumber('gt');
132
+ }
133
+ return (value) => {
134
+ if (typeof value !== 'number') {
135
+ valueMustBeNumber('gt');
136
+ }
137
+ return value > Number(opt);
138
+ };
139
+ };
140
+ /**
141
+ * Greater than or equal filter - checks if value is greater than or equal to option.
142
+ *
143
+ * @param options - Array with comparison number as first element
144
+ * @returns Filter function that returns boolean
145
+ */
146
+ const ge = (options) => {
147
+ const opt = options?.[0] ?? optionsRequired('ge');
148
+ if (!validateNumberString(opt)) {
149
+ optionMustBeNumber('ge');
150
+ }
151
+ return (value) => {
152
+ if (typeof value !== 'number') {
153
+ valueMustBeNumber('ge');
154
+ }
155
+ return value >= Number(opt);
156
+ };
157
+ };
158
+ /**
159
+ * Increment filter - adds option value to input value.
160
+ *
161
+ * @param options - Array with increment number as first element
162
+ * @returns Filter function that returns incremented number
163
+ */
164
+ const inc = (options) => {
165
+ const opt = options?.[0] ?? optionsRequired('inc');
166
+ if (!validateNumberString(opt)) {
167
+ optionMustBeNumber('inc');
168
+ }
169
+ return (value) => {
170
+ if (typeof value !== 'number') {
171
+ valueMustBeNumber('inc');
172
+ }
173
+ return value + Number(opt);
174
+ };
175
+ };
176
+ /**
177
+ * Decrement filter - subtracts option value from input value.
178
+ *
179
+ * @param options - Array with decrement number as first element
180
+ * @returns Filter function that returns decremented number
181
+ */
182
+ const dec = (options) => {
183
+ const opt = options?.[0] ?? optionsRequired('dec');
184
+ if (!validateNumberString(opt)) {
185
+ optionMustBeNumber('dec');
186
+ }
187
+ return (value) => {
188
+ if (typeof value !== 'number') {
189
+ valueMustBeNumber('dec');
190
+ }
191
+ return value - Number(opt);
192
+ };
193
+ };
194
+ /**
195
+ * Multiply filter - multiplies value by option.
196
+ *
197
+ * @param options - Array with multiplier number as first element
198
+ * @returns Filter function that returns multiplied number
199
+ */
200
+ const mul = (options) => {
201
+ const opt = options?.[0] ?? optionsRequired('mul');
202
+ if (!validateNumberString(opt)) {
203
+ optionMustBeNumber('mul');
204
+ }
205
+ return (value) => {
206
+ if (typeof value !== 'number') {
207
+ valueMustBeNumber('mul');
208
+ }
209
+ return value * Number(opt);
210
+ };
211
+ };
212
+ /**
213
+ * Divide filter - divides value by option.
214
+ *
215
+ * @param options - Array with divisor number as first element
216
+ * @returns Filter function that returns divided number
217
+ */
218
+ const div = (options) => {
219
+ const opt = options?.[0] ?? optionsRequired('div');
220
+ if (!validateNumberString(opt)) {
221
+ optionMustBeNumber('div');
222
+ }
223
+ return (value) => {
224
+ if (typeof value !== 'number') {
225
+ valueMustBeNumber('div');
226
+ }
227
+ return value / Number(opt);
228
+ };
229
+ };
230
+ /**
231
+ * Modulo filter - returns remainder of division.
232
+ *
233
+ * @param options - Array with divisor number as first element
234
+ * @returns Filter function that returns remainder
235
+ */
236
+ const mod = (options) => {
237
+ const opt = options?.[0] ?? optionsRequired('mod');
238
+ if (!validateNumberString(opt)) {
239
+ optionMustBeNumber('mod');
240
+ }
241
+ return (value) => {
242
+ if (typeof value !== 'number') {
243
+ valueMustBeNumber('mod');
244
+ }
245
+ return value % Number(opt);
246
+ };
247
+ };
248
+ /**
249
+ * Fixed decimal filter - formats number to fixed decimal places.
250
+ *
251
+ * @param options - Array with decimal places as first element (default: 0)
252
+ * @returns Filter function that returns formatted string
253
+ */
254
+ const fix = (options) => {
255
+ const opt = options?.[0] ?? "0";
256
+ if (!validateNumberString(opt)) {
257
+ optionMustBeNumber('fix');
258
+ }
259
+ return (value) => {
260
+ if (typeof value !== 'number') {
261
+ valueMustBeNumber('fix');
262
+ }
263
+ return value.toFixed(Number(opt));
264
+ };
265
+ };
266
+ /**
267
+ * Locale number filter - formats number according to locale.
268
+ *
269
+ * @param options - Array with locale string as first element (default: config.locale)
270
+ * @returns Filter function that returns localized number string
271
+ */
272
+ const locale = (options) => {
273
+ const opt = options?.[0] ?? config.locale;
274
+ return (value) => {
275
+ if (typeof value !== 'number') {
276
+ valueMustBeNumber('locale');
277
+ }
278
+ return value.toLocaleString(opt);
279
+ };
280
+ };
281
+ /**
282
+ * Uppercase filter - converts string to uppercase.
283
+ *
284
+ * @param options - Unused
285
+ * @returns Filter function that returns uppercase string
286
+ */
287
+ const uc = (_options) => {
288
+ return (value) => {
289
+ return String(value).toUpperCase();
290
+ };
291
+ };
292
+ /**
293
+ * Lowercase filter - converts string to lowercase.
294
+ *
295
+ * @param options - Unused
296
+ * @returns Filter function that returns lowercase string
297
+ */
298
+ const lc = (_options) => {
299
+ return (value) => {
300
+ return String(value).toLowerCase();
301
+ };
302
+ };
303
+ /**
304
+ * Capitalize filter - capitalizes first character of string.
305
+ *
306
+ * @param options - Unused
307
+ * @returns Filter function that returns capitalized string
308
+ */
309
+ const cap = (_options) => {
310
+ return (value) => {
311
+ const v = String(value);
312
+ if (v.length === 0) {
313
+ return v;
314
+ }
315
+ if (v.length === 1) {
316
+ return v.toUpperCase();
317
+ }
318
+ return v.charAt(0).toUpperCase() + v.slice(1);
319
+ };
320
+ };
321
+ /**
322
+ * Trim filter - removes whitespace from both ends of string.
323
+ *
324
+ * @param options - Unused
325
+ * @returns Filter function that returns trimmed string
326
+ */
327
+ const trim = (_options) => {
328
+ return (value) => {
329
+ return String(value).trim();
330
+ };
331
+ };
332
+ /**
333
+ * Slice filter - extracts portion of string from specified index.
334
+ *
335
+ * @param options - Array with start index and optional end index
336
+ * @returns Filter function that returns sliced string
337
+ */
338
+ const slice = (options) => {
339
+ const numberedOpts = [];
340
+ const opt1 = options?.[0] ?? optionsRequired('slice');
341
+ if (!validateNumberString(opt1)) {
342
+ optionMustBeNumber('slice');
343
+ }
344
+ numberedOpts.push(Number(opt1));
345
+ const opt2 = options?.[1];
346
+ if (typeof opt2 !== 'undefined') {
347
+ if (!validateNumberString(opt2)) {
348
+ optionMustBeNumber('slice');
349
+ }
350
+ numberedOpts.push(Number(opt2));
351
+ }
352
+ return (value) => {
353
+ return String(value).slice(...numberedOpts);
354
+ };
355
+ };
356
+ /**
357
+ * Substring filter - extracts substring from specified position and length.
358
+ *
359
+ * @param options - Array with start index and length
360
+ * @returns Filter function that returns substring
361
+ */
362
+ const substr = (options) => {
363
+ const opt1 = options?.[0] ?? optionsRequired('substr');
364
+ if (!validateNumberString(opt1)) {
365
+ optionMustBeNumber('substr');
366
+ }
367
+ const opt2 = options?.[1] ?? optionsRequired('substr');
368
+ if (!validateNumberString(opt2)) {
369
+ optionMustBeNumber('substr');
370
+ }
371
+ return (value) => {
372
+ return String(value).substr(Number(opt1), Number(opt2));
373
+ };
374
+ };
375
+ /**
376
+ * Pad filter - pads string to specified length from start.
377
+ *
378
+ * @param options - Array with target length and pad string (default: '0')
379
+ * @returns Filter function that returns padded string
380
+ */
381
+ const pad = (options) => {
382
+ const opt1 = options?.[0] ?? optionsRequired('pad');
383
+ if (!validateNumberString(opt1)) {
384
+ optionMustBeNumber('pad');
385
+ }
386
+ const opt2 = options?.[1] ?? '0';
387
+ return (value) => {
388
+ return String(value).padStart(Number(opt1), opt2);
389
+ };
390
+ };
391
+ /**
392
+ * Repeat filter - repeats string specified number of times.
393
+ *
394
+ * @param options - Array with repeat count as first element
395
+ * @returns Filter function that returns repeated string
396
+ */
397
+ const rep = (options) => {
398
+ const opt = options?.[0] ?? optionsRequired('rep');
399
+ if (!validateNumberString(opt)) {
400
+ optionMustBeNumber('rep');
401
+ }
402
+ return (value) => {
403
+ return String(value).repeat(Number(opt));
404
+ };
405
+ };
406
+ /**
407
+ * Reverse filter - reverses character order in string.
408
+ *
409
+ * @param options - Unused
410
+ * @returns Filter function that returns reversed string
411
+ */
412
+ const rev = (_options) => {
413
+ return (value) => {
414
+ return String(value).split('').reverse().join('');
415
+ };
416
+ };
417
+ /**
418
+ * Integer filter - parses value to integer.
419
+ *
420
+ * @param options - Unused
421
+ * @returns Filter function that returns integer
422
+ */
423
+ const int = (_options) => {
424
+ return (value) => {
425
+ return parseInt(String(value), 10);
426
+ };
427
+ };
428
+ /**
429
+ * Float filter - parses value to floating point number.
430
+ *
431
+ * @param options - Unused
432
+ * @returns Filter function that returns float
433
+ */
434
+ const float = (_options) => {
435
+ return (value) => {
436
+ return parseFloat(String(value));
437
+ };
438
+ };
439
+ /**
440
+ * Round filter - rounds number to specified decimal places.
441
+ *
442
+ * @param options - Array with decimal places as first element (default: 0)
443
+ * @returns Filter function that returns rounded number
444
+ */
445
+ const round = (options) => {
446
+ const opt = options?.[0] ?? '0';
447
+ if (!validateNumberString(opt)) {
448
+ optionMustBeNumber('round');
449
+ }
450
+ return (value) => {
451
+ if (typeof value !== 'number') {
452
+ valueMustBeNumber('round');
453
+ }
454
+ const optValue = Math.pow(10, Number(opt));
455
+ return Math.round(value * optValue) / optValue;
456
+ };
457
+ };
458
+ /**
459
+ * Floor filter - rounds number down to specified decimal places.
460
+ *
461
+ * @param options - Array with decimal places as first element (default: 0)
462
+ * @returns Filter function that returns floored number
463
+ */
464
+ const floor = (options) => {
465
+ const opt = options?.[0] ?? '0';
466
+ if (!validateNumberString(opt)) {
467
+ optionMustBeNumber('floor');
468
+ }
469
+ return (value) => {
470
+ if (typeof value !== 'number') {
471
+ valueMustBeNumber('floor');
472
+ }
473
+ const optValue = Math.pow(10, Number(opt));
474
+ return Math.floor(value * optValue) / optValue;
475
+ };
476
+ };
477
+ /**
478
+ * Ceiling filter - rounds number up to specified decimal places.
479
+ *
480
+ * @param options - Array with decimal places as first element (default: 0)
481
+ * @returns Filter function that returns ceiled number
482
+ */
483
+ const ceil = (options) => {
484
+ const opt = options?.[0] ?? '0';
485
+ if (!validateNumberString(opt)) {
486
+ optionMustBeNumber('ceil');
487
+ }
488
+ return (value) => {
489
+ if (typeof value !== 'number') {
490
+ valueMustBeNumber('ceil');
491
+ }
492
+ const optValue = Math.pow(10, Number(opt));
493
+ return Math.ceil(value * optValue) / optValue;
494
+ };
495
+ };
496
+ /**
497
+ * Percent filter - formats number as percentage string.
498
+ *
499
+ * @param options - Array with decimal places as first element (default: 0)
500
+ * @returns Filter function that returns percentage string with '%'
501
+ */
502
+ const percent = (options) => {
503
+ const opt = options?.[0] ?? '0';
504
+ if (!validateNumberString(opt)) {
505
+ optionMustBeNumber('percent');
506
+ }
507
+ return (value) => {
508
+ if (typeof value !== 'number') {
509
+ valueMustBeNumber('percent');
510
+ }
511
+ return `${(value * 100).toFixed(Number(opt))}%`;
512
+ };
513
+ };
514
+ /**
515
+ * Date filter - formats Date object as localized date string.
516
+ *
517
+ * @param options - Array with locale string as first element (default: config.locale)
518
+ * @returns Filter function that returns date string
519
+ */
520
+ const date = (options) => {
521
+ const opt = options?.[0] ?? config.locale;
522
+ return (value) => {
523
+ if (!(value instanceof Date)) {
524
+ valueMustBeDate('date');
525
+ }
526
+ return value.toLocaleDateString(opt);
527
+ };
528
+ };
529
+ /**
530
+ * Time filter - formats Date object as localized time string.
531
+ *
532
+ * @param options - Array with locale string as first element (default: config.locale)
533
+ * @returns Filter function that returns time string
534
+ */
535
+ const time = (options) => {
536
+ const opt = options?.[0] ?? config.locale;
537
+ return (value) => {
538
+ if (!(value instanceof Date)) {
539
+ valueMustBeDate('time');
540
+ }
541
+ return value.toLocaleTimeString(opt);
542
+ };
543
+ };
544
+ /**
545
+ * DateTime filter - formats Date object as localized date and time string.
546
+ *
547
+ * @param options - Array with locale string as first element (default: config.locale)
548
+ * @returns Filter function that returns datetime string
549
+ */
550
+ const datetime = (options) => {
551
+ const opt = options?.[0] ?? config.locale;
552
+ return (value) => {
553
+ if (!(value instanceof Date)) {
554
+ valueMustBeDate('datetime');
555
+ }
556
+ return value.toLocaleString(opt);
557
+ };
558
+ };
559
+ /**
560
+ * Year-Month-Day filter - formats Date object as YYYY-MM-DD string.
561
+ *
562
+ * @param options - Array with separator string as first element (default: '-')
563
+ * @returns Filter function that returns formatted date string
564
+ */
565
+ const ymd = (options) => {
566
+ const opt = options?.[0] ?? '-';
567
+ return (value) => {
568
+ if (!(value instanceof Date)) {
569
+ valueMustBeDate('ymd');
570
+ }
571
+ const year = value.getFullYear().toString();
572
+ const month = (value.getMonth() + 1).toString().padStart(2, '0');
573
+ const day = value.getDate().toString().padStart(2, '0');
574
+ return `${year}${opt}${month}${opt}${day}`;
575
+ };
576
+ };
577
+ /**
578
+ * Falsy filter - checks if value is falsy.
579
+ *
580
+ * @param options - Unused
581
+ * @returns Filter function that returns true for false/null/undefined/0/''/NaN
582
+ */
583
+ const falsy = (_options) => {
584
+ return (value) => value === false || value === null || value === undefined || value === 0 || value === '' || Number.isNaN(value);
585
+ };
586
+ /**
587
+ * Truthy filter - checks if value is truthy.
588
+ *
589
+ * @param options - Unused
590
+ * @returns Filter function that returns true for non-falsy values
591
+ */
592
+ const truthy = (_options) => {
593
+ return (value) => value !== false && value !== null && value !== undefined && value !== 0 && value !== '' && !Number.isNaN(value);
594
+ };
595
+ /**
596
+ * Default filter - returns default value if input is falsy.
597
+ *
598
+ * @param options - Array with default value as first element
599
+ * @returns Filter function that returns value or default
600
+ */
601
+ const defaults = (options) => {
602
+ const opt = options?.[0] ?? optionsRequired('defaults');
603
+ return (value) => {
604
+ if (value === false || value === null || value === undefined || value === 0 || value === '' || Number.isNaN(value)) {
605
+ return opt;
606
+ }
607
+ return value;
608
+ };
609
+ };
610
+ /**
611
+ * Boolean filter - converts value to boolean.
612
+ *
613
+ * @param options - Unused
614
+ * @returns Filter function that returns boolean
615
+ */
616
+ const boolean = (_options) => {
617
+ return (value) => {
618
+ return Boolean(value);
619
+ };
620
+ };
621
+ /**
622
+ * Number filter - converts value to number.
623
+ *
624
+ * @param options - Unused
625
+ * @returns Filter function that returns number
626
+ */
627
+ const number = (_options) => {
628
+ return (value) => {
629
+ return Number(value);
630
+ };
631
+ };
632
+ /**
633
+ * String filter - converts value to string.
634
+ *
635
+ * @param options - Unused
636
+ * @returns Filter function that returns string
637
+ */
638
+ const string = (_options) => {
639
+ return (value) => {
640
+ return String(value);
641
+ };
642
+ };
643
+ /**
644
+ * Null filter - converts empty string to null.
645
+ *
646
+ * @param options - Unused
647
+ * @returns Filter function that returns null for empty string, otherwise original value
648
+ */
649
+ const _null = (_options) => {
650
+ return (value) => {
651
+ return (value === "") ? null : value;
652
+ };
653
+ };
654
+ const builtinFilters = {
655
+ "eq": eq,
656
+ "ne": ne,
657
+ "not": not,
658
+ "lt": lt,
659
+ "le": le,
660
+ "gt": gt,
661
+ "ge": ge,
662
+ "inc": inc,
663
+ "dec": dec,
664
+ "mul": mul,
665
+ "div": div,
666
+ "mod": mod,
667
+ "fix": fix,
668
+ "locale": locale,
669
+ "uc": uc,
670
+ "lc": lc,
671
+ "cap": cap,
672
+ "trim": trim,
673
+ "slice": slice,
674
+ "substr": substr,
675
+ "pad": pad,
676
+ "rep": rep,
677
+ "rev": rev,
678
+ "int": int,
679
+ "float": float,
680
+ "round": round,
681
+ "floor": floor,
682
+ "ceil": ceil,
683
+ "percent": percent,
684
+ "date": date,
685
+ "time": time,
686
+ "datetime": datetime,
687
+ "ymd": ymd,
688
+ "falsy": falsy,
689
+ "truthy": truthy,
690
+ "defaults": defaults,
691
+ "boolean": boolean,
692
+ "number": number,
693
+ "string": string,
694
+ "null": _null,
695
+ };
696
+ export const outputBuiltinFilters = builtinFilters;
697
+ export const inputBuiltinFilters = builtinFilters;
698
+ export const builtinFiltersByFilterIOType = {
699
+ "input": inputBuiltinFilters,
700
+ "output": outputBuiltinFilters,
701
+ };
702
+ /**
703
+ * Retrieves built-in filter function by name and options.
704
+ *
705
+ * @param name - Filter name
706
+ * @param options - Array of option strings
707
+ * @returns Function that takes FilterWithOptions and returns filter function
708
+ */
709
+ export const builtinFilterFn = (name, options) => (filters) => {
710
+ const filter = filters[name];
711
+ if (!filter) {
712
+ raiseError(`filter not found: ${name}`);
713
+ }
714
+ return filter(options);
715
+ };
716
+ //# sourceMappingURL=builtinFilters.js.map