blendsdk 5.33.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 (538) hide show
  1. package/README.md +125 -0
  2. package/dist/cmdline/cmdline.d.ts +144 -0
  3. package/dist/cmdline/cmdline.d.ts.map +1 -0
  4. package/dist/cmdline/cmdline.js +683 -0
  5. package/dist/cmdline/cmdline.js.map +1 -0
  6. package/dist/cmdline/errors.d.ts +105 -0
  7. package/dist/cmdline/errors.d.ts.map +1 -0
  8. package/dist/cmdline/errors.js +153 -0
  9. package/dist/cmdline/errors.js.map +1 -0
  10. package/dist/cmdline/index.d.ts +5 -0
  11. package/dist/cmdline/index.d.ts.map +1 -0
  12. package/dist/cmdline/index.js +5 -0
  13. package/dist/cmdline/index.js.map +1 -0
  14. package/dist/cmdline/types.d.ts +260 -0
  15. package/dist/cmdline/types.d.ts.map +1 -0
  16. package/dist/cmdline/types.js +9 -0
  17. package/dist/cmdline/types.js.map +1 -0
  18. package/dist/cmdline/validators.d.ts +28 -0
  19. package/dist/cmdline/validators.d.ts.map +1 -0
  20. package/dist/cmdline/validators.js +211 -0
  21. package/dist/cmdline/validators.js.map +1 -0
  22. package/dist/codegen/database/index.d.ts +3 -0
  23. package/dist/codegen/database/index.d.ts.map +1 -0
  24. package/dist/codegen/database/index.js +3 -0
  25. package/dist/codegen/database/index.js.map +1 -0
  26. package/dist/codegen/database/introspect/index.d.ts +3 -0
  27. package/dist/codegen/database/introspect/index.d.ts.map +1 -0
  28. package/dist/codegen/database/introspect/index.js +3 -0
  29. package/dist/codegen/database/introspect/index.js.map +1 -0
  30. package/dist/codegen/database/introspect/introspect-query.d.ts +2 -0
  31. package/dist/codegen/database/introspect/introspect-query.d.ts.map +1 -0
  32. package/dist/codegen/database/introspect/introspect-query.js +416 -0
  33. package/dist/codegen/database/introspect/introspect-query.js.map +1 -0
  34. package/dist/codegen/database/introspect/introspect-types.d.ts +45 -0
  35. package/dist/codegen/database/introspect/introspect-types.d.ts.map +1 -0
  36. package/dist/codegen/database/introspect/introspect-types.js +2 -0
  37. package/dist/codegen/database/introspect/introspect-types.js.map +1 -0
  38. package/dist/codegen/database/introspect/introspect.d.ts +21 -0
  39. package/dist/codegen/database/introspect/introspect.d.ts.map +1 -0
  40. package/dist/codegen/database/introspect/introspect.js +223 -0
  41. package/dist/codegen/database/introspect/introspect.js.map +1 -0
  42. package/dist/codegen/database/schema/check-constraint.d.ts +8 -0
  43. package/dist/codegen/database/schema/check-constraint.d.ts.map +1 -0
  44. package/dist/codegen/database/schema/check-constraint.js +12 -0
  45. package/dist/codegen/database/schema/check-constraint.js.map +1 -0
  46. package/dist/codegen/database/schema/column-schema.d.ts +7 -0
  47. package/dist/codegen/database/schema/column-schema.d.ts.map +1 -0
  48. package/dist/codegen/database/schema/column-schema.js +9 -0
  49. package/dist/codegen/database/schema/column-schema.js.map +1 -0
  50. package/dist/codegen/database/schema/constraint-base.d.ts +13 -0
  51. package/dist/codegen/database/schema/constraint-base.d.ts.map +1 -0
  52. package/dist/codegen/database/schema/constraint-base.js +32 -0
  53. package/dist/codegen/database/schema/constraint-base.js.map +1 -0
  54. package/dist/codegen/database/schema/database-schema.d.ts +19 -0
  55. package/dist/codegen/database/schema/database-schema.d.ts.map +1 -0
  56. package/dist/codegen/database/schema/database-schema.js +48 -0
  57. package/dist/codegen/database/schema/database-schema.js.map +1 -0
  58. package/dist/codegen/database/schema/dataobject-schema.d.ts +9 -0
  59. package/dist/codegen/database/schema/dataobject-schema.d.ts.map +1 -0
  60. package/dist/codegen/database/schema/dataobject-schema.js +18 -0
  61. package/dist/codegen/database/schema/dataobject-schema.js.map +1 -0
  62. package/dist/codegen/database/schema/fkey-constraints.d.ts +21 -0
  63. package/dist/codegen/database/schema/fkey-constraints.d.ts.map +1 -0
  64. package/dist/codegen/database/schema/fkey-constraints.js +58 -0
  65. package/dist/codegen/database/schema/fkey-constraints.js.map +1 -0
  66. package/dist/codegen/database/schema/index-constraint.d.ts +34 -0
  67. package/dist/codegen/database/schema/index-constraint.d.ts.map +1 -0
  68. package/dist/codegen/database/schema/index-constraint.js +79 -0
  69. package/dist/codegen/database/schema/index-constraint.js.map +1 -0
  70. package/dist/codegen/database/schema/index.d.ts +5 -0
  71. package/dist/codegen/database/schema/index.d.ts.map +1 -0
  72. package/dist/codegen/database/schema/index.js +5 -0
  73. package/dist/codegen/database/schema/index.js.map +1 -0
  74. package/dist/codegen/database/schema/primarykey-constraint.d.ts +4 -0
  75. package/dist/codegen/database/schema/primarykey-constraint.d.ts.map +1 -0
  76. package/dist/codegen/database/schema/primarykey-constraint.js +4 -0
  77. package/dist/codegen/database/schema/primarykey-constraint.js.map +1 -0
  78. package/dist/codegen/database/schema/relation-schema.d.ts +16 -0
  79. package/dist/codegen/database/schema/relation-schema.d.ts.map +1 -0
  80. package/dist/codegen/database/schema/relation-schema.js +32 -0
  81. package/dist/codegen/database/schema/relation-schema.js.map +1 -0
  82. package/dist/codegen/database/schema/table-column-schema.d.ts +59 -0
  83. package/dist/codegen/database/schema/table-column-schema.d.ts.map +1 -0
  84. package/dist/codegen/database/schema/table-column-schema.js +137 -0
  85. package/dist/codegen/database/schema/table-column-schema.js.map +1 -0
  86. package/dist/codegen/database/schema/table-schema.d.ts +48 -0
  87. package/dist/codegen/database/schema/table-schema.d.ts.map +1 -0
  88. package/dist/codegen/database/schema/table-schema.js +219 -0
  89. package/dist/codegen/database/schema/table-schema.js.map +1 -0
  90. package/dist/codegen/database/schema/types.d.ts +13 -0
  91. package/dist/codegen/database/schema/types.d.ts.map +1 -0
  92. package/dist/codegen/database/schema/types.js +175 -0
  93. package/dist/codegen/database/schema/types.js.map +1 -0
  94. package/dist/codegen/database/schema/unique-constraint.d.ts +4 -0
  95. package/dist/codegen/database/schema/unique-constraint.d.ts.map +1 -0
  96. package/dist/codegen/database/schema/unique-constraint.js +4 -0
  97. package/dist/codegen/database/schema/unique-constraint.js.map +1 -0
  98. package/dist/codegen/database/schema/view-schema.d.ts +14 -0
  99. package/dist/codegen/database/schema/view-schema.d.ts.map +1 -0
  100. package/dist/codegen/database/schema/view-schema.js +32 -0
  101. package/dist/codegen/database/schema/view-schema.js.map +1 -0
  102. package/dist/codegen/generator/ctype-generator.d.ts +5 -0
  103. package/dist/codegen/generator/ctype-generator.d.ts.map +1 -0
  104. package/dist/codegen/generator/ctype-generator.js +26 -0
  105. package/dist/codegen/generator/ctype-generator.js.map +1 -0
  106. package/dist/codegen/generator/generator.d.ts +17 -0
  107. package/dist/codegen/generator/generator.d.ts.map +1 -0
  108. package/dist/codegen/generator/generator.js +57 -0
  109. package/dist/codegen/generator/generator.js.map +1 -0
  110. package/dist/codegen/generator/index.d.ts +8 -0
  111. package/dist/codegen/generator/index.d.ts.map +1 -0
  112. package/dist/codegen/generator/index.js +8 -0
  113. package/dist/codegen/generator/index.js.map +1 -0
  114. package/dist/codegen/generator/openapi-generator.d.ts +239 -0
  115. package/dist/codegen/generator/openapi-generator.d.ts.map +1 -0
  116. package/dist/codegen/generator/openapi-generator.js +434 -0
  117. package/dist/codegen/generator/openapi-generator.js.map +1 -0
  118. package/dist/codegen/generator/openapi-types.d.ts +263 -0
  119. package/dist/codegen/generator/openapi-types.d.ts.map +1 -0
  120. package/dist/codegen/generator/openapi-types.js +11 -0
  121. package/dist/codegen/generator/openapi-types.js.map +1 -0
  122. package/dist/codegen/generator/postgres-schema-generator.d.ts +48 -0
  123. package/dist/codegen/generator/postgres-schema-generator.d.ts.map +1 -0
  124. package/dist/codegen/generator/postgres-schema-generator.js +339 -0
  125. package/dist/codegen/generator/postgres-schema-generator.js.map +1 -0
  126. package/dist/codegen/generator/type-generator.d.ts +113 -0
  127. package/dist/codegen/generator/type-generator.d.ts.map +1 -0
  128. package/dist/codegen/generator/type-generator.js +249 -0
  129. package/dist/codegen/generator/type-generator.js.map +1 -0
  130. package/dist/codegen/generator/zod-generator.d.ts +15 -0
  131. package/dist/codegen/generator/zod-generator.d.ts.map +1 -0
  132. package/dist/codegen/generator/zod-generator.js +86 -0
  133. package/dist/codegen/generator/zod-generator.js.map +1 -0
  134. package/dist/codegen/generator/zod-to-openapi.d.ts +69 -0
  135. package/dist/codegen/generator/zod-to-openapi.d.ts.map +1 -0
  136. package/dist/codegen/generator/zod-to-openapi.js +480 -0
  137. package/dist/codegen/generator/zod-to-openapi.js.map +1 -0
  138. package/dist/codegen/index.d.ts +4 -0
  139. package/dist/codegen/index.d.ts.map +1 -0
  140. package/dist/codegen/index.js +4 -0
  141. package/dist/codegen/index.js.map +1 -0
  142. package/dist/codegen/schema/any-schema.d.ts +6 -0
  143. package/dist/codegen/schema/any-schema.d.ts.map +1 -0
  144. package/dist/codegen/schema/any-schema.js +12 -0
  145. package/dist/codegen/schema/any-schema.js.map +1 -0
  146. package/dist/codegen/schema/boolean-schema.d.ts +6 -0
  147. package/dist/codegen/schema/boolean-schema.d.ts.map +1 -0
  148. package/dist/codegen/schema/boolean-schema.js +12 -0
  149. package/dist/codegen/schema/boolean-schema.js.map +1 -0
  150. package/dist/codegen/schema/date-schema.d.ts +6 -0
  151. package/dist/codegen/schema/date-schema.d.ts.map +1 -0
  152. package/dist/codegen/schema/date-schema.js +12 -0
  153. package/dist/codegen/schema/date-schema.js.map +1 -0
  154. package/dist/codegen/schema/index.d.ts +10 -0
  155. package/dist/codegen/schema/index.d.ts.map +1 -0
  156. package/dist/codegen/schema/index.js +10 -0
  157. package/dist/codegen/schema/index.js.map +1 -0
  158. package/dist/codegen/schema/object-schema.d.ts +10 -0
  159. package/dist/codegen/schema/object-schema.d.ts.map +1 -0
  160. package/dist/codegen/schema/object-schema.js +21 -0
  161. package/dist/codegen/schema/object-schema.js.map +1 -0
  162. package/dist/codegen/schema/primitive-schema.d.ts +20 -0
  163. package/dist/codegen/schema/primitive-schema.d.ts.map +1 -0
  164. package/dist/codegen/schema/primitive-schema.js +48 -0
  165. package/dist/codegen/schema/primitive-schema.js.map +1 -0
  166. package/dist/codegen/schema/ref-schema.d.ts +6 -0
  167. package/dist/codegen/schema/ref-schema.d.ts.map +1 -0
  168. package/dist/codegen/schema/ref-schema.js +11 -0
  169. package/dist/codegen/schema/ref-schema.js.map +1 -0
  170. package/dist/codegen/schema/schema-container.d.ts +14 -0
  171. package/dist/codegen/schema/schema-container.d.ts.map +1 -0
  172. package/dist/codegen/schema/schema-container.js +38 -0
  173. package/dist/codegen/schema/schema-container.js.map +1 -0
  174. package/dist/codegen/schema/schema-object.d.ts +42 -0
  175. package/dist/codegen/schema/schema-object.d.ts.map +1 -0
  176. package/dist/codegen/schema/schema-object.js +90 -0
  177. package/dist/codegen/schema/schema-object.js.map +1 -0
  178. package/dist/codegen/schema/schema-scope.d.ts +23 -0
  179. package/dist/codegen/schema/schema-scope.d.ts.map +1 -0
  180. package/dist/codegen/schema/schema-scope.js +67 -0
  181. package/dist/codegen/schema/schema-scope.js.map +1 -0
  182. package/dist/codegen/schema/utils.d.ts +17 -0
  183. package/dist/codegen/schema/utils.d.ts.map +1 -0
  184. package/dist/codegen/schema/utils.js +47 -0
  185. package/dist/codegen/schema/utils.js.map +1 -0
  186. package/dist/dbcore/crud-statement.d.ts +67 -0
  187. package/dist/dbcore/crud-statement.d.ts.map +1 -0
  188. package/dist/dbcore/crud-statement.js +75 -0
  189. package/dist/dbcore/crud-statement.js.map +1 -0
  190. package/dist/dbcore/database.d.ts +272 -0
  191. package/dist/dbcore/database.d.ts.map +1 -0
  192. package/dist/dbcore/database.js +53 -0
  193. package/dist/dbcore/database.js.map +1 -0
  194. package/dist/dbcore/dataservice-base.d.ts +18 -0
  195. package/dist/dbcore/dataservice-base.d.ts.map +1 -0
  196. package/dist/dbcore/dataservice-base.js +19 -0
  197. package/dist/dbcore/dataservice-base.js.map +1 -0
  198. package/dist/dbcore/delete-statement.d.ts +29 -0
  199. package/dist/dbcore/delete-statement.d.ts.map +1 -0
  200. package/dist/dbcore/delete-statement.js +30 -0
  201. package/dist/dbcore/delete-statement.js.map +1 -0
  202. package/dist/dbcore/filterable-statement.d.ts +126 -0
  203. package/dist/dbcore/filterable-statement.d.ts.map +1 -0
  204. package/dist/dbcore/filterable-statement.js +178 -0
  205. package/dist/dbcore/filterable-statement.js.map +1 -0
  206. package/dist/dbcore/from-statement.d.ts +120 -0
  207. package/dist/dbcore/from-statement.d.ts.map +1 -0
  208. package/dist/dbcore/from-statement.js +150 -0
  209. package/dist/dbcore/from-statement.js.map +1 -0
  210. package/dist/dbcore/index.d.ts +21 -0
  211. package/dist/dbcore/index.d.ts.map +1 -0
  212. package/dist/dbcore/index.js +21 -0
  213. package/dist/dbcore/index.js.map +1 -0
  214. package/dist/dbcore/insert-statement.d.ts +48 -0
  215. package/dist/dbcore/insert-statement.d.ts.map +1 -0
  216. package/dist/dbcore/insert-statement.js +52 -0
  217. package/dist/dbcore/insert-statement.js.map +1 -0
  218. package/dist/dbcore/query-dataservice.d.ts +144 -0
  219. package/dist/dbcore/query-dataservice.d.ts.map +1 -0
  220. package/dist/dbcore/query-dataservice.js +144 -0
  221. package/dist/dbcore/query-dataservice.js.map +1 -0
  222. package/dist/dbcore/statement.d.ts +133 -0
  223. package/dist/dbcore/statement.d.ts.map +1 -0
  224. package/dist/dbcore/statement.js +138 -0
  225. package/dist/dbcore/statement.js.map +1 -0
  226. package/dist/dbcore/update-statement.d.ts +48 -0
  227. package/dist/dbcore/update-statement.d.ts.map +1 -0
  228. package/dist/dbcore/update-statement.js +52 -0
  229. package/dist/dbcore/update-statement.js.map +1 -0
  230. package/dist/expression/builders/comparison-builder.d.ts +47 -0
  231. package/dist/expression/builders/comparison-builder.d.ts.map +1 -0
  232. package/dist/expression/builders/comparison-builder.js +197 -0
  233. package/dist/expression/builders/comparison-builder.js.map +1 -0
  234. package/dist/expression/builders/query-builder.d.ts +80 -0
  235. package/dist/expression/builders/query-builder.d.ts.map +1 -0
  236. package/dist/expression/builders/query-builder.js +229 -0
  237. package/dist/expression/builders/query-builder.js.map +1 -0
  238. package/dist/expression/compiler/postgresql-compiler.d.ts +56 -0
  239. package/dist/expression/compiler/postgresql-compiler.d.ts.map +1 -0
  240. package/dist/expression/compiler/postgresql-compiler.js +217 -0
  241. package/dist/expression/compiler/postgresql-compiler.js.map +1 -0
  242. package/dist/expression/core/ast-node.d.ts +47 -0
  243. package/dist/expression/core/ast-node.d.ts.map +1 -0
  244. package/dist/expression/core/ast-node.js +154 -0
  245. package/dist/expression/core/ast-node.js.map +1 -0
  246. package/dist/expression/core/parameter-manager.d.ts +84 -0
  247. package/dist/expression/core/parameter-manager.d.ts.map +1 -0
  248. package/dist/expression/core/parameter-manager.js +164 -0
  249. package/dist/expression/core/parameter-manager.js.map +1 -0
  250. package/dist/expression/core/query-builder-interfaces.d.ts +188 -0
  251. package/dist/expression/core/query-builder-interfaces.d.ts.map +1 -0
  252. package/dist/expression/core/query-builder-interfaces.js +6 -0
  253. package/dist/expression/core/query-builder-interfaces.js.map +1 -0
  254. package/dist/expression/core/types.d.ts +239 -0
  255. package/dist/expression/core/types.d.ts.map +1 -0
  256. package/dist/expression/core/types.js +121 -0
  257. package/dist/expression/core/types.js.map +1 -0
  258. package/dist/expression/index.d.ts +11 -0
  259. package/dist/expression/index.d.ts.map +1 -0
  260. package/dist/expression/index.js +11 -0
  261. package/dist/expression/index.js.map +1 -0
  262. package/dist/i18n/content-file-source.d.ts +109 -0
  263. package/dist/i18n/content-file-source.d.ts.map +1 -0
  264. package/dist/i18n/content-file-source.js +218 -0
  265. package/dist/i18n/content-file-source.js.map +1 -0
  266. package/dist/i18n/index.d.ts +19 -0
  267. package/dist/i18n/index.d.ts.map +1 -0
  268. package/dist/i18n/index.js +21 -0
  269. package/dist/i18n/index.js.map +1 -0
  270. package/dist/i18n/json-file-source.d.ts +96 -0
  271. package/dist/i18n/json-file-source.d.ts.map +1 -0
  272. package/dist/i18n/json-file-source.js +258 -0
  273. package/dist/i18n/json-file-source.js.map +1 -0
  274. package/dist/i18n/merge-catalogs.d.ts +20 -0
  275. package/dist/i18n/merge-catalogs.d.ts.map +1 -0
  276. package/dist/i18n/merge-catalogs.js +34 -0
  277. package/dist/i18n/merge-catalogs.js.map +1 -0
  278. package/dist/i18n/node.d.ts +20 -0
  279. package/dist/i18n/node.d.ts.map +1 -0
  280. package/dist/i18n/node.js +19 -0
  281. package/dist/i18n/node.js.map +1 -0
  282. package/dist/i18n/translation-source.d.ts +35 -0
  283. package/dist/i18n/translation-source.d.ts.map +1 -0
  284. package/dist/i18n/translation-source.js +2 -0
  285. package/dist/i18n/translation-source.js.map +1 -0
  286. package/dist/i18n/translator.d.ts +162 -0
  287. package/dist/i18n/translator.d.ts.map +1 -0
  288. package/dist/i18n/translator.js +259 -0
  289. package/dist/i18n/translator.js.map +1 -0
  290. package/dist/i18n/types.d.ts +80 -0
  291. package/dist/i18n/types.d.ts.map +1 -0
  292. package/dist/i18n/types.js +2 -0
  293. package/dist/i18n/types.js.map +1 -0
  294. package/dist/postgresql/database.d.ts +204 -0
  295. package/dist/postgresql/database.d.ts.map +1 -0
  296. package/dist/postgresql/database.js +321 -0
  297. package/dist/postgresql/database.js.map +1 -0
  298. package/dist/postgresql/delete-statement.d.ts +36 -0
  299. package/dist/postgresql/delete-statement.d.ts.map +1 -0
  300. package/dist/postgresql/delete-statement.js +54 -0
  301. package/dist/postgresql/delete-statement.js.map +1 -0
  302. package/dist/postgresql/index.d.ts +12 -0
  303. package/dist/postgresql/index.d.ts.map +1 -0
  304. package/dist/postgresql/index.js +12 -0
  305. package/dist/postgresql/index.js.map +1 -0
  306. package/dist/postgresql/insert-statement.d.ts +34 -0
  307. package/dist/postgresql/insert-statement.d.ts.map +1 -0
  308. package/dist/postgresql/insert-statement.js +48 -0
  309. package/dist/postgresql/insert-statement.js.map +1 -0
  310. package/dist/postgresql/update-statement.d.ts +38 -0
  311. package/dist/postgresql/update-statement.d.ts.map +1 -0
  312. package/dist/postgresql/update-statement.js +75 -0
  313. package/dist/postgresql/update-statement.js.map +1 -0
  314. package/dist/stdlib/formatString.d.ts +52 -0
  315. package/dist/stdlib/formatString.d.ts.map +1 -0
  316. package/dist/stdlib/formatString.js +118 -0
  317. package/dist/stdlib/formatString.js.map +1 -0
  318. package/dist/stdlib/index.d.ts +8 -0
  319. package/dist/stdlib/index.d.ts.map +1 -0
  320. package/dist/stdlib/index.js +8 -0
  321. package/dist/stdlib/index.js.map +1 -0
  322. package/dist/stdlib/isBoolean.d.ts +15 -0
  323. package/dist/stdlib/isBoolean.d.ts.map +1 -0
  324. package/dist/stdlib/isBoolean.js +17 -0
  325. package/dist/stdlib/isBoolean.js.map +1 -0
  326. package/dist/stdlib/isNullOrUndef.d.ts +24 -0
  327. package/dist/stdlib/isNullOrUndef.d.ts.map +1 -0
  328. package/dist/stdlib/isNullOrUndef.js +28 -0
  329. package/dist/stdlib/isNullOrUndef.js.map +1 -0
  330. package/dist/stdlib/isNumeric.d.ts +20 -0
  331. package/dist/stdlib/isNumeric.d.ts.map +1 -0
  332. package/dist/stdlib/isNumeric.js +39 -0
  333. package/dist/stdlib/isNumeric.js.map +1 -0
  334. package/dist/stdlib/isString.d.ts +15 -0
  335. package/dist/stdlib/isString.d.ts.map +1 -0
  336. package/dist/stdlib/isString.js +17 -0
  337. package/dist/stdlib/isString.js.map +1 -0
  338. package/dist/stdlib/isTemplateString.d.ts +18 -0
  339. package/dist/stdlib/isTemplateString.d.ts.map +1 -0
  340. package/dist/stdlib/isTemplateString.js +38 -0
  341. package/dist/stdlib/isTemplateString.js.map +1 -0
  342. package/dist/stdlib/wrapInArray.d.ts +14 -0
  343. package/dist/stdlib/wrapInArray.d.ts.map +1 -0
  344. package/dist/stdlib/wrapInArray.js +17 -0
  345. package/dist/stdlib/wrapInArray.js.map +1 -0
  346. package/dist/webafx/application/application-settings.d.ts +129 -0
  347. package/dist/webafx/application/application-settings.d.ts.map +1 -0
  348. package/dist/webafx/application/application-settings.js +162 -0
  349. package/dist/webafx/application/application-settings.js.map +1 -0
  350. package/dist/webafx/application/base-controller.d.ts +128 -0
  351. package/dist/webafx/application/base-controller.d.ts.map +1 -0
  352. package/dist/webafx/application/base-controller.js +122 -0
  353. package/dist/webafx/application/base-controller.js.map +1 -0
  354. package/dist/webafx/application/console-logger.d.ts +81 -0
  355. package/dist/webafx/application/console-logger.d.ts.map +1 -0
  356. package/dist/webafx/application/console-logger.js +111 -0
  357. package/dist/webafx/application/console-logger.js.map +1 -0
  358. package/dist/webafx/application/controller-registry.d.ts +34 -0
  359. package/dist/webafx/application/controller-registry.d.ts.map +1 -0
  360. package/dist/webafx/application/controller-registry.js +32 -0
  361. package/dist/webafx/application/controller-registry.js.map +1 -0
  362. package/dist/webafx/application/error-handler-middleware.d.ts +22 -0
  363. package/dist/webafx/application/error-handler-middleware.d.ts.map +1 -0
  364. package/dist/webafx/application/error-handler-middleware.js +70 -0
  365. package/dist/webafx/application/error-handler-middleware.js.map +1 -0
  366. package/dist/webafx/application/index.d.ts +13 -0
  367. package/dist/webafx/application/index.d.ts.map +1 -0
  368. package/dist/webafx/application/index.js +13 -0
  369. package/dist/webafx/application/index.js.map +1 -0
  370. package/dist/webafx/application/logger.d.ts +2 -0
  371. package/dist/webafx/application/logger.d.ts.map +1 -0
  372. package/dist/webafx/application/logger.js +2 -0
  373. package/dist/webafx/application/logger.js.map +1 -0
  374. package/dist/webafx/application/plugin.d.ts +73 -0
  375. package/dist/webafx/application/plugin.d.ts.map +1 -0
  376. package/dist/webafx/application/plugin.js +90 -0
  377. package/dist/webafx/application/plugin.js.map +1 -0
  378. package/dist/webafx/application/rate-limiter.d.ts +35 -0
  379. package/dist/webafx/application/rate-limiter.d.ts.map +1 -0
  380. package/dist/webafx/application/rate-limiter.js +74 -0
  381. package/dist/webafx/application/rate-limiter.js.map +1 -0
  382. package/dist/webafx/application/request-context.d.ts +62 -0
  383. package/dist/webafx/application/request-context.d.ts.map +1 -0
  384. package/dist/webafx/application/request-context.js +54 -0
  385. package/dist/webafx/application/request-context.js.map +1 -0
  386. package/dist/webafx/application/request-id-middleware.d.ts +30 -0
  387. package/dist/webafx/application/request-id-middleware.d.ts.map +1 -0
  388. package/dist/webafx/application/request-id-middleware.js +57 -0
  389. package/dist/webafx/application/request-id-middleware.js.map +1 -0
  390. package/dist/webafx/application/route-builder.d.ts +231 -0
  391. package/dist/webafx/application/route-builder.d.ts.map +1 -0
  392. package/dist/webafx/application/route-builder.js +182 -0
  393. package/dist/webafx/application/route-builder.js.map +1 -0
  394. package/dist/webafx/application/service-container.d.ts +144 -0
  395. package/dist/webafx/application/service-container.d.ts.map +1 -0
  396. package/dist/webafx/application/service-container.js +192 -0
  397. package/dist/webafx/application/service-container.js.map +1 -0
  398. package/dist/webafx/application/services.d.ts +27 -0
  399. package/dist/webafx/application/services.d.ts.map +1 -0
  400. package/dist/webafx/application/services.js +33 -0
  401. package/dist/webafx/application/services.js.map +1 -0
  402. package/dist/webafx/application/structured-logger.d.ts +99 -0
  403. package/dist/webafx/application/structured-logger.d.ts.map +1 -0
  404. package/dist/webafx/application/structured-logger.js +132 -0
  405. package/dist/webafx/application/structured-logger.js.map +1 -0
  406. package/dist/webafx/application/type.d.ts +29 -0
  407. package/dist/webafx/application/type.d.ts.map +1 -0
  408. package/dist/webafx/application/type.js +2 -0
  409. package/dist/webafx/application/type.js.map +1 -0
  410. package/dist/webafx/application/web-application.d.ts +257 -0
  411. package/dist/webafx/application/web-application.d.ts.map +1 -0
  412. package/dist/webafx/application/web-application.js +611 -0
  413. package/dist/webafx/application/web-application.js.map +1 -0
  414. package/dist/webafx/errors/api-error.d.ts +21 -0
  415. package/dist/webafx/errors/api-error.d.ts.map +1 -0
  416. package/dist/webafx/errors/api-error.js +38 -0
  417. package/dist/webafx/errors/api-error.js.map +1 -0
  418. package/dist/webafx/errors/http-errors.d.ts +56 -0
  419. package/dist/webafx/errors/http-errors.d.ts.map +1 -0
  420. package/dist/webafx/errors/http-errors.js +74 -0
  421. package/dist/webafx/errors/http-errors.js.map +1 -0
  422. package/dist/webafx/errors/index.d.ts +4 -0
  423. package/dist/webafx/errors/index.d.ts.map +1 -0
  424. package/dist/webafx/errors/index.js +4 -0
  425. package/dist/webafx/errors/index.js.map +1 -0
  426. package/dist/webafx/errors/types.d.ts +42 -0
  427. package/dist/webafx/errors/types.d.ts.map +1 -0
  428. package/dist/webafx/errors/types.js +2 -0
  429. package/dist/webafx/errors/types.js.map +1 -0
  430. package/dist/webafx/index.d.ts +3 -0
  431. package/dist/webafx/index.d.ts.map +1 -0
  432. package/dist/webafx/index.js +3 -0
  433. package/dist/webafx/index.js.map +1 -0
  434. package/dist/webafx-auth/abstract-auth-provider.d.ts +178 -0
  435. package/dist/webafx-auth/abstract-auth-provider.d.ts.map +1 -0
  436. package/dist/webafx-auth/abstract-auth-provider.js +240 -0
  437. package/dist/webafx-auth/abstract-auth-provider.js.map +1 -0
  438. package/dist/webafx-auth/index.d.ts +27 -0
  439. package/dist/webafx-auth/index.d.ts.map +1 -0
  440. package/dist/webafx-auth/index.js +32 -0
  441. package/dist/webafx-auth/index.js.map +1 -0
  442. package/dist/webafx-auth/jwt-auth-provider.d.ts +100 -0
  443. package/dist/webafx-auth/jwt-auth-provider.d.ts.map +1 -0
  444. package/dist/webafx-auth/jwt-auth-provider.js +154 -0
  445. package/dist/webafx-auth/jwt-auth-provider.js.map +1 -0
  446. package/dist/webafx-auth/memory-auth-provider.d.ts +100 -0
  447. package/dist/webafx-auth/memory-auth-provider.d.ts.map +1 -0
  448. package/dist/webafx-auth/memory-auth-provider.js +122 -0
  449. package/dist/webafx-auth/memory-auth-provider.js.map +1 -0
  450. package/dist/webafx-auth/types.d.ts +333 -0
  451. package/dist/webafx-auth/types.d.ts.map +1 -0
  452. package/dist/webafx-auth/types.js +24 -0
  453. package/dist/webafx-auth/types.js.map +1 -0
  454. package/dist/webafx-cache/abstract-cache-provider.d.ts +185 -0
  455. package/dist/webafx-cache/abstract-cache-provider.d.ts.map +1 -0
  456. package/dist/webafx-cache/abstract-cache-provider.js +133 -0
  457. package/dist/webafx-cache/abstract-cache-provider.js.map +1 -0
  458. package/dist/webafx-cache/abstract-pubsub-provider.d.ts +170 -0
  459. package/dist/webafx-cache/abstract-pubsub-provider.d.ts.map +1 -0
  460. package/dist/webafx-cache/abstract-pubsub-provider.js +132 -0
  461. package/dist/webafx-cache/abstract-pubsub-provider.js.map +1 -0
  462. package/dist/webafx-cache/cache-plugin.d.ts +114 -0
  463. package/dist/webafx-cache/cache-plugin.d.ts.map +1 -0
  464. package/dist/webafx-cache/cache-plugin.js +176 -0
  465. package/dist/webafx-cache/cache-plugin.js.map +1 -0
  466. package/dist/webafx-cache/index.d.ts +33 -0
  467. package/dist/webafx-cache/index.d.ts.map +1 -0
  468. package/dist/webafx-cache/index.js +44 -0
  469. package/dist/webafx-cache/index.js.map +1 -0
  470. package/dist/webafx-cache/memory-cache-provider.d.ts +99 -0
  471. package/dist/webafx-cache/memory-cache-provider.d.ts.map +1 -0
  472. package/dist/webafx-cache/memory-cache-provider.js +251 -0
  473. package/dist/webafx-cache/memory-cache-provider.js.map +1 -0
  474. package/dist/webafx-cache/memory-pubsub-provider.d.ts +124 -0
  475. package/dist/webafx-cache/memory-pubsub-provider.d.ts.map +1 -0
  476. package/dist/webafx-cache/memory-pubsub-provider.js +195 -0
  477. package/dist/webafx-cache/memory-pubsub-provider.js.map +1 -0
  478. package/dist/webafx-cache/pubsub-plugin.d.ts +128 -0
  479. package/dist/webafx-cache/pubsub-plugin.d.ts.map +1 -0
  480. package/dist/webafx-cache/pubsub-plugin.js +182 -0
  481. package/dist/webafx-cache/pubsub-plugin.js.map +1 -0
  482. package/dist/webafx-cache/redis-cache-provider.d.ts +81 -0
  483. package/dist/webafx-cache/redis-cache-provider.d.ts.map +1 -0
  484. package/dist/webafx-cache/redis-cache-provider.js +209 -0
  485. package/dist/webafx-cache/redis-cache-provider.js.map +1 -0
  486. package/dist/webafx-cache/redis-pubsub-provider.d.ts +164 -0
  487. package/dist/webafx-cache/redis-pubsub-provider.d.ts.map +1 -0
  488. package/dist/webafx-cache/redis-pubsub-provider.js +329 -0
  489. package/dist/webafx-cache/redis-pubsub-provider.js.map +1 -0
  490. package/dist/webafx-cache/types.d.ts +206 -0
  491. package/dist/webafx-cache/types.d.ts.map +1 -0
  492. package/dist/webafx-cache/types.js +27 -0
  493. package/dist/webafx-cache/types.js.map +1 -0
  494. package/dist/webafx-i18n/i18n-plugin.d.ts +29 -0
  495. package/dist/webafx-i18n/i18n-plugin.d.ts.map +1 -0
  496. package/dist/webafx-i18n/i18n-plugin.js +145 -0
  497. package/dist/webafx-i18n/i18n-plugin.js.map +1 -0
  498. package/dist/webafx-i18n/index.d.ts +12 -0
  499. package/dist/webafx-i18n/index.d.ts.map +1 -0
  500. package/dist/webafx-i18n/index.js +12 -0
  501. package/dist/webafx-i18n/index.js.map +1 -0
  502. package/dist/webafx-i18n/locale-resolver.d.ts +33 -0
  503. package/dist/webafx-i18n/locale-resolver.d.ts.map +1 -0
  504. package/dist/webafx-i18n/locale-resolver.js +67 -0
  505. package/dist/webafx-i18n/locale-resolver.js.map +1 -0
  506. package/dist/webafx-i18n/postgresql-source.d.ts +101 -0
  507. package/dist/webafx-i18n/postgresql-source.d.ts.map +1 -0
  508. package/dist/webafx-i18n/postgresql-source.js +101 -0
  509. package/dist/webafx-i18n/postgresql-source.js.map +1 -0
  510. package/dist/webafx-i18n/types.d.ts +70 -0
  511. package/dist/webafx-i18n/types.d.ts.map +1 -0
  512. package/dist/webafx-i18n/types.js +2 -0
  513. package/dist/webafx-i18n/types.js.map +1 -0
  514. package/dist/webafx-mailer/abstract-mail-provider.d.ts +55 -0
  515. package/dist/webafx-mailer/abstract-mail-provider.d.ts.map +1 -0
  516. package/dist/webafx-mailer/abstract-mail-provider.js +37 -0
  517. package/dist/webafx-mailer/abstract-mail-provider.js.map +1 -0
  518. package/dist/webafx-mailer/index.d.ts +24 -0
  519. package/dist/webafx-mailer/index.d.ts.map +1 -0
  520. package/dist/webafx-mailer/index.js +34 -0
  521. package/dist/webafx-mailer/index.js.map +1 -0
  522. package/dist/webafx-mailer/mail-plugin.d.ts +98 -0
  523. package/dist/webafx-mailer/mail-plugin.d.ts.map +1 -0
  524. package/dist/webafx-mailer/mail-plugin.js +155 -0
  525. package/dist/webafx-mailer/mail-plugin.js.map +1 -0
  526. package/dist/webafx-mailer/memory-mail-provider.d.ts +85 -0
  527. package/dist/webafx-mailer/memory-mail-provider.d.ts.map +1 -0
  528. package/dist/webafx-mailer/memory-mail-provider.js +111 -0
  529. package/dist/webafx-mailer/memory-mail-provider.js.map +1 -0
  530. package/dist/webafx-mailer/smtp-mail-provider.d.ts +65 -0
  531. package/dist/webafx-mailer/smtp-mail-provider.d.ts.map +1 -0
  532. package/dist/webafx-mailer/smtp-mail-provider.js +113 -0
  533. package/dist/webafx-mailer/smtp-mail-provider.js.map +1 -0
  534. package/dist/webafx-mailer/types.d.ts +136 -0
  535. package/dist/webafx-mailer/types.d.ts.map +1 -0
  536. package/dist/webafx-mailer/types.js +13 -0
  537. package/dist/webafx-mailer/types.js.map +1 -0
  538. package/package.json +159 -0
@@ -0,0 +1,121 @@
1
+ /**
2
+ * Core type definitions for expression2
3
+ */
4
+ /**
5
+ * SQL dialect enumeration
6
+ */
7
+ export var SqlDialect;
8
+ (function (SqlDialect) {
9
+ SqlDialect["PostgreSQL"] = "postgresql";
10
+ SqlDialect["MySQL"] = "mysql";
11
+ SqlDialect["MSSQL"] = "mssql";
12
+ SqlDialect["SQLite"] = "sqlite";
13
+ })(SqlDialect || (SqlDialect = {}));
14
+ /**
15
+ * Base AST node type
16
+ */
17
+ export var ASTNodeType;
18
+ (function (ASTNodeType) {
19
+ ASTNodeType["Comparison"] = "comparison";
20
+ ASTNodeType["Logical"] = "logical";
21
+ ASTNodeType["Group"] = "group";
22
+ ASTNodeType["Json"] = "json";
23
+ ASTNodeType["FullText"] = "fulltext";
24
+ ASTNodeType["Subquery"] = "subquery";
25
+ })(ASTNodeType || (ASTNodeType = {}));
26
+ /**
27
+ * Comparison operators
28
+ */
29
+ export var ComparisonOperator;
30
+ (function (ComparisonOperator) {
31
+ ComparisonOperator["Equal"] = "=";
32
+ ComparisonOperator["NotEqual"] = "<>";
33
+ ComparisonOperator["GreaterThan"] = ">";
34
+ ComparisonOperator["GreaterThanOrEqual"] = ">=";
35
+ ComparisonOperator["LessThan"] = "<";
36
+ ComparisonOperator["LessThanOrEqual"] = "<=";
37
+ ComparisonOperator["Like"] = "LIKE";
38
+ ComparisonOperator["ILike"] = "ILIKE";
39
+ ComparisonOperator["In"] = "IN";
40
+ ComparisonOperator["NotIn"] = "NOT IN";
41
+ ComparisonOperator["Between"] = "BETWEEN";
42
+ ComparisonOperator["NotBetween"] = "NOT BETWEEN";
43
+ ComparisonOperator["IsNull"] = "IS NULL";
44
+ ComparisonOperator["IsNotNull"] = "IS NOT NULL";
45
+ })(ComparisonOperator || (ComparisonOperator = {}));
46
+ /**
47
+ * Logical operators
48
+ */
49
+ export var LogicalOperator;
50
+ (function (LogicalOperator) {
51
+ LogicalOperator["And"] = "AND";
52
+ LogicalOperator["Or"] = "OR";
53
+ })(LogicalOperator || (LogicalOperator = {}));
54
+ /**
55
+ * JSON operators (PostgreSQL)
56
+ */
57
+ export var JsonOperator;
58
+ (function (JsonOperator) {
59
+ JsonOperator["Contains"] = "@>";
60
+ JsonOperator["ContainedBy"] = "<@";
61
+ JsonOperator["HasKey"] = "?";
62
+ JsonOperator["HasAnyKey"] = "?|";
63
+ JsonOperator["HasAllKeys"] = "?&";
64
+ JsonOperator["PathExists"] = "@?";
65
+ })(JsonOperator || (JsonOperator = {}));
66
+ /**
67
+ * Full-text search modes
68
+ */
69
+ export var FullTextMode;
70
+ (function (FullTextMode) {
71
+ FullTextMode["Plain"] = "plain";
72
+ FullTextMode["Phrase"] = "phrase";
73
+ FullTextMode["WebSearch"] = "websearch";
74
+ })(FullTextMode || (FullTextMode = {}));
75
+ /**
76
+ * Type guard to check if a value is an ASTNode
77
+ */
78
+ export function isASTNode(value) {
79
+ return (value !== null &&
80
+ typeof value === 'object' &&
81
+ 'type' in value &&
82
+ 'id' in value &&
83
+ Object.values(ASTNodeType).includes(value.type));
84
+ }
85
+ /**
86
+ * Type guard for ComparisonNode
87
+ */
88
+ export function isComparisonNode(node) {
89
+ return node.type === ASTNodeType.Comparison;
90
+ }
91
+ /**
92
+ * Type guard for LogicalNode
93
+ */
94
+ export function isLogicalNode(node) {
95
+ return node.type === ASTNodeType.Logical;
96
+ }
97
+ /**
98
+ * Type guard for GroupNode
99
+ */
100
+ export function isGroupNode(node) {
101
+ return node.type === ASTNodeType.Group;
102
+ }
103
+ /**
104
+ * Type guard for JsonNode
105
+ */
106
+ export function isJsonNode(node) {
107
+ return node.type === ASTNodeType.Json;
108
+ }
109
+ /**
110
+ * Type guard for FullTextNode
111
+ */
112
+ export function isFullTextNode(node) {
113
+ return node.type === ASTNodeType.FullText;
114
+ }
115
+ /**
116
+ * Type guard for SubqueryNode
117
+ */
118
+ export function isSubqueryNode(node) {
119
+ return node.type === ASTNodeType.Subquery;
120
+ }
121
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,uCAAyB,CAAA;IACzB,6BAAe,CAAA;IACf,6BAAe,CAAA;IACf,+BAAiB,CAAA;AACnB,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB;AAmED;;GAEG;AACH,MAAM,CAAN,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,wCAAyB,CAAA;IACzB,kCAAmB,CAAA;IACnB,8BAAe,CAAA;IACf,4BAAa,CAAA;IACb,oCAAqB,CAAA;IACrB,oCAAqB,CAAA;AACvB,CAAC,EAPW,WAAW,KAAX,WAAW,QAOtB;AAUD;;GAEG;AACH,MAAM,CAAN,IAAY,kBAeX;AAfD,WAAY,kBAAkB;IAC5B,iCAAW,CAAA;IACX,qCAAe,CAAA;IACf,uCAAiB,CAAA;IACjB,+CAAyB,CAAA;IACzB,oCAAc,CAAA;IACd,4CAAsB,CAAA;IACtB,mCAAa,CAAA;IACb,qCAAe,CAAA;IACf,+BAAS,CAAA;IACT,sCAAgB,CAAA;IAChB,yCAAmB,CAAA;IACnB,gDAA0B,CAAA;IAC1B,wCAAkB,CAAA;IAClB,+CAAyB,CAAA;AAC3B,CAAC,EAfW,kBAAkB,KAAlB,kBAAkB,QAe7B;AAcD;;GAEG;AACH,MAAM,CAAN,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,8BAAW,CAAA;IACX,4BAAS,CAAA;AACX,CAAC,EAHW,eAAe,KAAf,eAAe,QAG1B;AAoBD;;GAEG;AACH,MAAM,CAAN,IAAY,YAOX;AAPD,WAAY,YAAY;IACtB,+BAAe,CAAA;IACf,kCAAkB,CAAA;IAClB,4BAAY,CAAA;IACZ,gCAAgB,CAAA;IAChB,iCAAiB,CAAA;IACjB,iCAAiB,CAAA;AACnB,CAAC,EAPW,YAAY,KAAZ,YAAY,QAOvB;AAeD;;GAEG;AACH,MAAM,CAAN,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,+BAAe,CAAA;IACf,iCAAiB,CAAA;IACjB,uCAAuB,CAAA;AACzB,CAAC,EAJW,YAAY,KAAZ,YAAY,QAIvB;AAiDD;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAU;IAClC,OAAO,CACL,KAAK,KAAK,IAAI;QACd,OAAO,KAAK,KAAK,QAAQ;QACzB,MAAM,IAAI,KAAK;QACf,IAAI,IAAI,KAAK;QACb,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAChD,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAa;IAC5C,OAAO,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,UAAU,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAa;IACzC,OAAO,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,OAAO,CAAC;AAC3C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAa;IACvC,OAAO,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,KAAK,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,IAAa;IACtC,OAAO,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,IAAI,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAa;IAC1C,OAAO,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,QAAQ,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAa;IAC1C,OAAO,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC,QAAQ,CAAC;AAC5C,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @blendsdk/expression
3
+ * Modern, type-safe SQL WHERE clause builder with fluent API
4
+ */
5
+ export { query, QueryBuilderImpl } from './builders/query-builder.js';
6
+ export type { ComparisonBuilder, QueryBuilder, SubqueryBuilder, } from './core/query-builder-interfaces.js';
7
+ export type { ASTNode, ComparisonNode, CompileResult, DebugInfo, FullTextNode, GroupNode, JsonNode, LogicalNode, QueryOptions, SearchOptions, SubqueryNode, } from './core/types.js';
8
+ export { ASTNodeType, ComparisonOperator, FullTextMode, JsonOperator, LogicalOperator, SqlDialect, } from './core/types.js';
9
+ export { PostgreSQLCompiler } from './compiler/postgresql-compiler.js';
10
+ export { ParameterManager } from './core/parameter-manager.js';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAGtE,YAAY,EACV,iBAAiB,EACjB,YAAY,EACZ,eAAe,GAChB,MAAM,oCAAoC,CAAC;AAE5C,YAAY,EACV,OAAO,EACP,cAAc,EACd,aAAa,EACb,SAAS,EACT,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,aAAa,EACb,YAAY,GACb,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,UAAU,GACX,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @blendsdk/expression
3
+ * Modern, type-safe SQL WHERE clause builder with fluent API
4
+ */
5
+ // Export main query builder
6
+ export { query, QueryBuilderImpl } from './builders/query-builder.js';
7
+ export { ASTNodeType, ComparisonOperator, FullTextMode, JsonOperator, LogicalOperator, SqlDialect, } from './core/types.js';
8
+ // Export utilities
9
+ export { PostgreSQLCompiler } from './compiler/postgresql-compiler.js';
10
+ export { ParameterManager } from './core/parameter-manager.js';
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,4BAA4B;AAC5B,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAuBtE,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,UAAU,GACX,MAAM,iBAAiB,CAAC;AAEzB,mBAAmB;AACnB,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,109 @@
1
+ import type { TranslationCatalog } from "./types.js";
2
+ import type { TranslationSource } from "./translation-source.js";
3
+ /**
4
+ * Configuration for the content file translation source.
5
+ */
6
+ export interface ContentFileSourceConfig {
7
+ /**
8
+ * Array of directory paths or glob patterns to scan for content files.
9
+ *
10
+ * Each path can be:
11
+ * - A directory path: all matching files in the directory are loaded
12
+ * - A glob pattern: files matching the pattern are loaded
13
+ *
14
+ * Files must follow the naming convention: `<locale>.<key>.<ext>`
15
+ * where:
16
+ * - First segment = locale (e.g., "en", "nl", "de")
17
+ * - Last segment = file extension (e.g., "html", "md", "txt")
18
+ * - Middle segments = translation key (e.g., "signup-email", "auth.welcome")
19
+ *
20
+ * @example
21
+ * paths: ["./content/emails", "./content/pages"]
22
+ * paths: ["./content/emails/*.html"]
23
+ */
24
+ paths: string[];
25
+ /**
26
+ * File extensions to include (with leading dot).
27
+ * Files with other extensions are silently ignored.
28
+ *
29
+ * @default [".html", ".md", ".txt"]
30
+ */
31
+ extensions?: string[];
32
+ }
33
+ /**
34
+ * Translation source that loads from individual content files.
35
+ *
36
+ * Each file represents one translation key for one locale.
37
+ * The filename convention is `<locale>.<key>.<ext>`:
38
+ * - `nl.signup-email.html` → locale: "nl", key: "signup-email"
39
+ * - `en.auth.welcome.md` → locale: "en", key: "auth.welcome"
40
+ *
41
+ * File content is read as UTF-8 and stored as-is (no transformation).
42
+ *
43
+ * @example
44
+ * ```typescript
45
+ * const source = new ContentFileSource({
46
+ * paths: ["./content/emails"],
47
+ * });
48
+ * const catalog = await source.load();
49
+ * ```
50
+ */
51
+ export declare class ContentFileSource implements TranslationSource {
52
+ /** @inheritdoc */
53
+ readonly name = "ContentFileSource";
54
+ /** Source configuration */
55
+ protected config: ContentFileSourceConfig;
56
+ /** Resolved extensions (with leading dot, lowercased) */
57
+ protected extensions: string[];
58
+ /**
59
+ * Create a new ContentFileSource.
60
+ *
61
+ * @param config - Directory paths, glob patterns, and optional extension filter
62
+ */
63
+ constructor(config: ContentFileSourceConfig);
64
+ /**
65
+ * Load all translations from configured content file paths.
66
+ *
67
+ * 1. Resolves all paths (directories and globs) to individual file paths
68
+ * 2. Parses each filename for locale and key using `<locale>.<key>.<ext>` convention
69
+ * 3. Filters by supported extensions
70
+ * 4. Reads file content as UTF-8
71
+ * 5. Builds translation catalog with content as-is
72
+ *
73
+ * Files that don't match the naming convention or have unsupported
74
+ * extensions are silently skipped.
75
+ *
76
+ * @returns The complete translation catalog from all matched content files
77
+ * @throws Error if a matched file cannot be read (e.g., permission denied)
78
+ */
79
+ load(): Promise<TranslationCatalog>;
80
+ /**
81
+ * Resolve all configured paths to individual file paths.
82
+ *
83
+ * - Plain directory paths (no glob chars): list all files in the directory
84
+ * - Glob patterns (contains * or ?): expand using simple wildcard matching
85
+ *
86
+ * Results are sorted for deterministic ordering so the same input
87
+ * always produces the same catalog.
88
+ *
89
+ * @returns Array of resolved absolute file paths, sorted alphabetically
90
+ */
91
+ protected resolveAllPaths(): Promise<string[]>;
92
+ }
93
+ /**
94
+ * Create a ContentFileSource instance. Convenience factory for plugin configuration.
95
+ *
96
+ * @param config - Content file source configuration
97
+ * @returns A new ContentFileSource instance
98
+ *
99
+ * @example
100
+ * ```typescript
101
+ * app.use(createI18nPlugin({
102
+ * sources: [
103
+ * contentFileSource({ paths: ["./content/emails"] }),
104
+ * ],
105
+ * }));
106
+ * ```
107
+ */
108
+ export declare function contentFileSource(config: ContentFileSourceConfig): ContentFileSource;
109
+ //# sourceMappingURL=content-file-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-file-source.d.ts","sourceRoot":"","sources":["../src/content-file-source.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,EAAE,MAAM,EAAE,CAAC;IAEhB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AA+GD;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,iBAAkB,YAAW,iBAAiB;IACvD,kBAAkB;IAClB,QAAQ,CAAC,IAAI,uBAAuB;IAEpC,2BAA2B;IAC3B,SAAS,CAAC,MAAM,EAAE,uBAAuB,CAAC;IAE1C,yDAAyD;IACzD,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAE/B;;;;OAIG;gBACS,MAAM,EAAE,uBAAuB;IAQ3C;;;;;;;;;;;;;;OAcG;IACG,IAAI,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAmCzC;;;;;;;;;;OAUG;cACa,eAAe,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAkBvD;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,GAAG,iBAAiB,CAEpF"}
@@ -0,0 +1,218 @@
1
+ import { readFile, readdir } from "node:fs/promises";
2
+ import { basename, resolve, dirname, extname } from "node:path";
3
+ /** Default file extensions to load when none are configured */
4
+ const DEFAULT_EXTENSIONS = [".html", ".md", ".txt"];
5
+ /**
6
+ * Parse a content filename into locale and key.
7
+ *
8
+ * Convention: `<locale>.<key>.<ext>`
9
+ * - First dot-segment = locale
10
+ * - Last dot-segment = extension (ignored, used for filtering)
11
+ * - Everything in between = translation key
12
+ *
13
+ * Requires at least 3 segments (locale + key + extension).
14
+ *
15
+ * @param filename - The filename (without directory path)
16
+ * @returns Parsed locale and key, or null if filename doesn't match convention
17
+ *
18
+ * @example
19
+ * parseContentFilename("nl.signup-email.html")
20
+ * // → { locale: "nl", key: "signup-email" }
21
+ *
22
+ * parseContentFilename("en.auth.welcome.md")
23
+ * // → { locale: "en", key: "auth.welcome" }
24
+ *
25
+ * parseContentFilename("readme.txt")
26
+ * // → null (only 2 segments — no key)
27
+ */
28
+ function parseContentFilename(filename) {
29
+ const segments = filename.split(".");
30
+ // Need at least 3 segments: locale, key (1+), extension
31
+ if (segments.length < 3) {
32
+ return null;
33
+ }
34
+ const locale = segments[0];
35
+ // Skip the last segment (extension) and join middle segments as key
36
+ const key = segments.slice(1, -1).join(".");
37
+ // Validate: locale and key must be non-empty
38
+ if (!locale || !key) {
39
+ return null;
40
+ }
41
+ return { locale, key };
42
+ }
43
+ /**
44
+ * List all files in a directory (non-recursive).
45
+ *
46
+ * Returns an empty array if the directory doesn't exist,
47
+ * allowing graceful handling of optional content directories.
48
+ *
49
+ * @param dirPath - Directory path to list
50
+ * @returns Array of absolute file paths
51
+ */
52
+ async function listDirectoryFiles(dirPath) {
53
+ try {
54
+ const entries = await readdir(resolve(dirPath));
55
+ return entries.map((entry) => resolve(dirPath, entry));
56
+ }
57
+ catch {
58
+ // Directory doesn't exist or can't be read — return empty
59
+ return [];
60
+ }
61
+ }
62
+ /**
63
+ * Expand a simple glob pattern into matching file paths.
64
+ *
65
+ * Supports only `*` and `?` wildcards in the filename part (not recursive `**`).
66
+ * This covers the primary use case for content files without needing
67
+ * an external glob library.
68
+ *
69
+ * Same implementation as used by JsonFileSource for consistency.
70
+ *
71
+ * @param pattern - A glob pattern (e.g., "./content/*.html")
72
+ * @returns Array of matching absolute file paths
73
+ */
74
+ async function expandSimpleGlob(pattern) {
75
+ const dir = dirname(pattern);
76
+ const filePattern = basename(pattern);
77
+ // Convert glob pattern to regex: * → [^/]*, ? → [^/]
78
+ const regexStr = filePattern
79
+ .replace(/[.+^${}()|[\]\\]/g, "\\$&") // Escape regex special chars (except * and ?)
80
+ .replace(/\*/g, "[^/]*")
81
+ .replace(/\?/g, "[^/]");
82
+ const regex = new RegExp(`^${regexStr}$`);
83
+ try {
84
+ const entries = await readdir(resolve(dir));
85
+ return entries
86
+ .filter((entry) => regex.test(entry))
87
+ .map((entry) => resolve(dir, entry));
88
+ }
89
+ catch {
90
+ // Directory doesn't exist — return empty (no matches)
91
+ return [];
92
+ }
93
+ }
94
+ /**
95
+ * Translation source that loads from individual content files.
96
+ *
97
+ * Each file represents one translation key for one locale.
98
+ * The filename convention is `<locale>.<key>.<ext>`:
99
+ * - `nl.signup-email.html` → locale: "nl", key: "signup-email"
100
+ * - `en.auth.welcome.md` → locale: "en", key: "auth.welcome"
101
+ *
102
+ * File content is read as UTF-8 and stored as-is (no transformation).
103
+ *
104
+ * @example
105
+ * ```typescript
106
+ * const source = new ContentFileSource({
107
+ * paths: ["./content/emails"],
108
+ * });
109
+ * const catalog = await source.load();
110
+ * ```
111
+ */
112
+ export class ContentFileSource {
113
+ /** @inheritdoc */
114
+ name = "ContentFileSource";
115
+ /** Source configuration */
116
+ config;
117
+ /** Resolved extensions (with leading dot, lowercased) */
118
+ extensions;
119
+ /**
120
+ * Create a new ContentFileSource.
121
+ *
122
+ * @param config - Directory paths, glob patterns, and optional extension filter
123
+ */
124
+ constructor(config) {
125
+ this.config = config;
126
+ // Normalize extensions: ensure leading dot and lowercase
127
+ this.extensions = (config.extensions ?? DEFAULT_EXTENSIONS).map((ext) => ext.startsWith(".") ? ext.toLowerCase() : `.${ext.toLowerCase()}`);
128
+ }
129
+ /**
130
+ * Load all translations from configured content file paths.
131
+ *
132
+ * 1. Resolves all paths (directories and globs) to individual file paths
133
+ * 2. Parses each filename for locale and key using `<locale>.<key>.<ext>` convention
134
+ * 3. Filters by supported extensions
135
+ * 4. Reads file content as UTF-8
136
+ * 5. Builds translation catalog with content as-is
137
+ *
138
+ * Files that don't match the naming convention or have unsupported
139
+ * extensions are silently skipped.
140
+ *
141
+ * @returns The complete translation catalog from all matched content files
142
+ * @throws Error if a matched file cannot be read (e.g., permission denied)
143
+ */
144
+ async load() {
145
+ const catalog = {};
146
+ // Resolve all paths to individual file paths
147
+ const filePaths = await this.resolveAllPaths();
148
+ for (const filePath of filePaths) {
149
+ const filename = basename(filePath);
150
+ // Parse locale and key from filename
151
+ const parsed = parseContentFilename(filename);
152
+ if (!parsed) {
153
+ // Invalid filename format — skip silently
154
+ continue;
155
+ }
156
+ // Check extension is in the supported list
157
+ const ext = extname(filename).toLowerCase();
158
+ if (!this.extensions.includes(ext)) {
159
+ continue;
160
+ }
161
+ // Read file content as-is (no transformation)
162
+ const content = await readFile(filePath, "utf-8");
163
+ // Add to catalog: key → { locale: content }
164
+ if (!catalog[parsed.key]) {
165
+ catalog[parsed.key] = {};
166
+ }
167
+ catalog[parsed.key][parsed.locale] = content;
168
+ }
169
+ return catalog;
170
+ }
171
+ /**
172
+ * Resolve all configured paths to individual file paths.
173
+ *
174
+ * - Plain directory paths (no glob chars): list all files in the directory
175
+ * - Glob patterns (contains * or ?): expand using simple wildcard matching
176
+ *
177
+ * Results are sorted for deterministic ordering so the same input
178
+ * always produces the same catalog.
179
+ *
180
+ * @returns Array of resolved absolute file paths, sorted alphabetically
181
+ */
182
+ async resolveAllPaths() {
183
+ const allPaths = [];
184
+ for (const configPath of this.config.paths) {
185
+ if (configPath.includes("*") || configPath.includes("?")) {
186
+ // Glob pattern — expand it
187
+ const matches = await expandSimpleGlob(configPath);
188
+ allPaths.push(...matches);
189
+ }
190
+ else {
191
+ // Plain directory path — list files
192
+ const files = await listDirectoryFiles(configPath);
193
+ allPaths.push(...files);
194
+ }
195
+ }
196
+ // Sort for deterministic ordering
197
+ return allPaths.sort();
198
+ }
199
+ }
200
+ /**
201
+ * Create a ContentFileSource instance. Convenience factory for plugin configuration.
202
+ *
203
+ * @param config - Content file source configuration
204
+ * @returns A new ContentFileSource instance
205
+ *
206
+ * @example
207
+ * ```typescript
208
+ * app.use(createI18nPlugin({
209
+ * sources: [
210
+ * contentFileSource({ paths: ["./content/emails"] }),
211
+ * ],
212
+ * }));
213
+ * ```
214
+ */
215
+ export function contentFileSource(config) {
216
+ return new ContentFileSource(config);
217
+ }
218
+ //# sourceMappingURL=content-file-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-file-source.js","sourceRoot":"","sources":["../src/content-file-source.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Browser-safe core entry point for @blendsdk/i18n.
3
+ *
4
+ * This module exports only the runtime-agnostic parts of the i18n library:
5
+ * Translator, mergeCatalogs, types, and the TranslationSource interface.
6
+ * It contains NO Node.js-specific imports (no `node:fs`, `node:path`),
7
+ * making it safe for browser bundlers (Webpack, Vite, esbuild, etc.).
8
+ *
9
+ * **Import paths:**
10
+ * - `@blendsdk/i18n` — This module (browser-safe core)
11
+ * - `@blendsdk/i18n/node` — Full package including JsonFileSource & ContentFileSource (Node.js only)
12
+ *
13
+ * @module @blendsdk/i18n
14
+ */
15
+ export type { TranslationValue, TranslationEntry, TranslationCatalog, TranslatorConfig, LocaleParts, } from "./types.js";
16
+ export { Translator } from "./translator.js";
17
+ export type { TranslationSource } from "./translation-source.js";
18
+ export { mergeCatalogs } from "./merge-catalogs.js";
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,YAAY,EACR,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,gBAAgB,EAChB,WAAW,GACd,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAGjE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Browser-safe core entry point for @blendsdk/i18n.
3
+ *
4
+ * This module exports only the runtime-agnostic parts of the i18n library:
5
+ * Translator, mergeCatalogs, types, and the TranslationSource interface.
6
+ * It contains NO Node.js-specific imports (no `node:fs`, `node:path`),
7
+ * making it safe for browser bundlers (Webpack, Vite, esbuild, etc.).
8
+ *
9
+ * **Import paths:**
10
+ * - `@blendsdk/i18n` — This module (browser-safe core)
11
+ * - `@blendsdk/i18n/node` — Full package including JsonFileSource & ContentFileSource (Node.js only)
12
+ *
13
+ * @module @blendsdk/i18n
14
+ */
15
+ // Core
16
+ export { Translator } from "./translator.js";
17
+ // Catalog utilities
18
+ export { mergeCatalogs } from "./merge-catalogs.js";
19
+ // NOTE: JsonFileSource, ContentFileSource, and their factories are Node.js-only
20
+ // and are exported from "./node.js" — see ./node.ts
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAWH,OAAO;AACP,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAK7C,oBAAoB;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,gFAAgF;AAChF,8DAA8D"}
@@ -0,0 +1,96 @@
1
+ import type { TranslationCatalog } from "./types.js";
2
+ import type { TranslationSource } from "./translation-source.js";
3
+ /**
4
+ * Configuration for the JSON file translation source.
5
+ */
6
+ export interface JsonFileSourceConfig {
7
+ /**
8
+ * Array of file paths or glob patterns to load.
9
+ *
10
+ * Supports two JSON file formats:
11
+ *
12
+ * **Format 1: Multi-locale file** — Each key maps to a locale→value object:
13
+ * ```json
14
+ * {
15
+ * "greeting": { "en": "Hello", "nl": "Hallo" },
16
+ * "book": { "en": ["1 book", "N books"] }
17
+ * }
18
+ * ```
19
+ *
20
+ * **Format 2: Single-locale file** — Flat key→value, locale derived from filename:
21
+ * File: `translations/en.json`
22
+ * ```json
23
+ * {
24
+ * "greeting": "Hello",
25
+ * "farewell": "Goodbye"
26
+ * }
27
+ * ```
28
+ * The locale is extracted from the filename: `en.json` → locale "en".
29
+ *
30
+ * Both formats are auto-detected per file and normalized into TranslationCatalog.
31
+ *
32
+ * @example
33
+ * paths: ["./translations/*.json"]
34
+ * paths: ["./translations/en.json", "./translations/nl.json"]
35
+ */
36
+ paths: string[];
37
+ }
38
+ /**
39
+ * Translation source that loads from JSON files.
40
+ *
41
+ * Supports two file formats:
42
+ * 1. Multi-locale: `{ key: { locale: value } }` — all locales in one file
43
+ * 2. Single-locale: `{ key: value }` — one file per locale, locale from filename
44
+ *
45
+ * Format is auto-detected per file based on the structure of the first value.
46
+ *
47
+ * @example
48
+ * ```typescript
49
+ * const source = new JsonFileSource({
50
+ * paths: ["./translations/*.json"],
51
+ * });
52
+ * const catalog = await source.load();
53
+ * ```
54
+ */
55
+ export declare class JsonFileSource implements TranslationSource {
56
+ /** @inheritdoc */
57
+ readonly name = "JsonFileSource";
58
+ /** Source configuration */
59
+ protected config: JsonFileSourceConfig;
60
+ /**
61
+ * Create a new JsonFileSource.
62
+ *
63
+ * @param config - File paths or glob patterns configuration
64
+ */
65
+ constructor(config: JsonFileSourceConfig);
66
+ /**
67
+ * Load all translations from configured JSON file paths.
68
+ *
69
+ * 1. Resolves all glob patterns to file paths
70
+ * 2. Reads and parses each JSON file
71
+ * 3. Auto-detects format (multi-locale vs single-locale)
72
+ * 4. Normalizes into TranslationCatalog entries
73
+ * 5. Merges all entries (later files override earlier for same key+locale)
74
+ *
75
+ * @returns The complete translation catalog from all matched files
76
+ * @throws Error if a file cannot be read or parsed
77
+ */
78
+ load(): Promise<TranslationCatalog>;
79
+ }
80
+ /**
81
+ * Create a JsonFileSource instance. Convenience factory for plugin configuration.
82
+ *
83
+ * @param config - JSON file source configuration
84
+ * @returns A new JsonFileSource instance
85
+ *
86
+ * @example
87
+ * ```typescript
88
+ * app.use(createI18nPlugin({
89
+ * sources: [
90
+ * jsonFileSource({ paths: ["./translations/*.json"] }),
91
+ * ],
92
+ * }));
93
+ * ```
94
+ */
95
+ export declare function jsonFileSource(config: JsonFileSourceConfig): JsonFileSource;
96
+ //# sourceMappingURL=json-file-source.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-file-source.d.ts","sourceRoot":"","sources":["../src/json-file-source.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAsC,MAAM,YAAY,CAAC;AACzF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,KAAK,EAAE,MAAM,EAAE,CAAC;CACnB;AAGD;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,cAAe,YAAW,iBAAiB;IACpD,kBAAkB;IAClB,QAAQ,CAAC,IAAI,oBAAoB;IAEjC,2BAA2B;IAC3B,SAAS,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAEvC;;;;OAIG;gBACS,MAAM,EAAE,oBAAoB;IAIxC;;;;;;;;;;;OAWG;IACG,IAAI,IAAI,OAAO,CAAC,kBAAkB,CAAC;CAgC5C;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,oBAAoB,GAAG,cAAc,CAE3E"}