semola 0.5.3 → 0.6.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 (367) hide show
  1. package/README.md +18 -45
  2. package/dist/chunk-CKQMccvm.cjs +28 -0
  3. package/dist/lib/api/index.cjs +536 -4
  4. package/dist/lib/api/index.d.cts +270 -4
  5. package/dist/lib/api/index.d.mts +270 -4
  6. package/dist/lib/api/index.mjs +534 -2
  7. package/dist/lib/cache/index.cjs +47 -22
  8. package/dist/lib/cache/index.d.cts +14 -23
  9. package/dist/lib/cache/index.d.mts +14 -23
  10. package/dist/lib/cache/index.mjs +48 -25
  11. package/dist/lib/cron/index.cjs +734 -12
  12. package/dist/lib/cron/index.d.cts +145 -3
  13. package/dist/lib/cron/index.d.mts +145 -3
  14. package/dist/lib/cron/index.mjs +725 -3
  15. package/dist/lib/errors/index.d.cts +4 -4
  16. package/dist/lib/errors/index.d.mts +4 -4
  17. package/dist/lib/errors/index.mjs +0 -2
  18. package/dist/lib/i18n/index.d.cts +12 -4
  19. package/dist/lib/i18n/index.d.mts +12 -4
  20. package/dist/lib/i18n/index.mjs +0 -2
  21. package/dist/lib/logging/index.cjs +387 -17
  22. package/dist/lib/logging/index.d.cts +107 -6
  23. package/dist/lib/logging/index.d.mts +107 -6
  24. package/dist/lib/logging/index.mjs +373 -4
  25. package/dist/lib/orm/index.cjs +1641 -19
  26. package/dist/lib/orm/index.d.cts +402 -7
  27. package/dist/lib/orm/index.d.mts +402 -7
  28. package/dist/lib/orm/index.mjs +1630 -6
  29. package/dist/lib/policy/index.cjs +206 -20
  30. package/dist/lib/policy/index.d.cts +61 -5
  31. package/dist/lib/policy/index.d.mts +61 -5
  32. package/dist/lib/policy/index.mjs +187 -3
  33. package/dist/lib/prompts/index.cjs +374 -14
  34. package/dist/lib/prompts/index.d.cts +73 -29
  35. package/dist/lib/prompts/index.d.mts +73 -29
  36. package/dist/lib/prompts/index.mjs +361 -4
  37. package/dist/lib/pubsub/index.cjs +43 -19
  38. package/dist/lib/pubsub/index.d.cts +12 -22
  39. package/dist/lib/pubsub/index.d.mts +12 -22
  40. package/dist/lib/pubsub/index.mjs +44 -22
  41. package/dist/lib/queue/index.cjs +40 -10
  42. package/dist/lib/queue/index.d.cts +57 -8
  43. package/dist/lib/queue/index.d.mts +57 -8
  44. package/dist/lib/queue/index.mjs +39 -13
  45. package/dist/lib/workflow/index.cjs +285 -282
  46. package/dist/lib/workflow/index.d.cts +147 -4
  47. package/dist/lib/workflow/index.d.mts +147 -4
  48. package/dist/lib/workflow/index.mjs +278 -286
  49. package/package.json +11 -1
  50. package/dist/api/core/index.cjs +0 -206
  51. package/dist/api/core/index.d.cts +0 -21
  52. package/dist/api/core/index.d.cts.map +0 -1
  53. package/dist/api/core/index.d.mts +0 -21
  54. package/dist/api/core/index.d.mts.map +0 -1
  55. package/dist/api/core/index.mjs +0 -208
  56. package/dist/api/core/index.mjs.map +0 -1
  57. package/dist/api/core/types.d.cts +0 -107
  58. package/dist/api/core/types.d.cts.map +0 -1
  59. package/dist/api/core/types.d.mts +0 -107
  60. package/dist/api/core/types.d.mts.map +0 -1
  61. package/dist/api/middleware/index.cjs +0 -8
  62. package/dist/api/middleware/index.d.cts +0 -11
  63. package/dist/api/middleware/index.d.cts.map +0 -1
  64. package/dist/api/middleware/index.d.mts +0 -11
  65. package/dist/api/middleware/index.d.mts.map +0 -1
  66. package/dist/api/middleware/index.mjs +0 -10
  67. package/dist/api/middleware/index.mjs.map +0 -1
  68. package/dist/api/middleware/types.d.cts +0 -16
  69. package/dist/api/middleware/types.d.cts.map +0 -1
  70. package/dist/api/middleware/types.d.mts +0 -16
  71. package/dist/api/middleware/types.d.mts.map +0 -1
  72. package/dist/api/openapi/index.cjs +0 -254
  73. package/dist/api/openapi/index.mjs +0 -256
  74. package/dist/api/openapi/index.mjs.map +0 -1
  75. package/dist/api/openapi/types.d.cts +0 -60
  76. package/dist/api/openapi/types.d.cts.map +0 -1
  77. package/dist/api/openapi/types.d.mts +0 -60
  78. package/dist/api/openapi/types.d.mts.map +0 -1
  79. package/dist/api/validation/index.cjs +0 -64
  80. package/dist/api/validation/index.mjs +0 -61
  81. package/dist/api/validation/index.mjs.map +0 -1
  82. package/dist/cache/types.d.cts +0 -17
  83. package/dist/cache/types.d.cts.map +0 -1
  84. package/dist/cache/types.d.mts +0 -17
  85. package/dist/cache/types.d.mts.map +0 -1
  86. package/dist/cron/builder/index.cjs +0 -166
  87. package/dist/cron/builder/index.d.cts +0 -28
  88. package/dist/cron/builder/index.d.cts.map +0 -1
  89. package/dist/cron/builder/index.d.mts +0 -28
  90. package/dist/cron/builder/index.d.mts.map +0 -1
  91. package/dist/cron/builder/index.mjs +0 -163
  92. package/dist/cron/builder/index.mjs.map +0 -1
  93. package/dist/cron/builder/types.cjs +0 -27
  94. package/dist/cron/builder/types.d.cts +0 -79
  95. package/dist/cron/builder/types.d.cts.map +0 -1
  96. package/dist/cron/builder/types.d.mts +0 -79
  97. package/dist/cron/builder/types.d.mts.map +0 -1
  98. package/dist/cron/builder/types.mjs +0 -28
  99. package/dist/cron/builder/types.mjs.map +0 -1
  100. package/dist/cron/core/index.cjs +0 -308
  101. package/dist/cron/core/index.d.cts +0 -39
  102. package/dist/cron/core/index.d.cts.map +0 -1
  103. package/dist/cron/core/index.d.mts +0 -39
  104. package/dist/cron/core/index.d.mts.map +0 -1
  105. package/dist/cron/core/index.mjs +0 -310
  106. package/dist/cron/core/index.mjs.map +0 -1
  107. package/dist/cron/core/scanner.cjs +0 -237
  108. package/dist/cron/core/scanner.mjs +0 -238
  109. package/dist/cron/core/scanner.mjs.map +0 -1
  110. package/dist/cron/core/types.d.cts +0 -11
  111. package/dist/cron/core/types.d.cts.map +0 -1
  112. package/dist/cron/core/types.d.mts +0 -11
  113. package/dist/cron/core/types.d.mts.map +0 -1
  114. package/dist/errors/types.d.cts +0 -5
  115. package/dist/errors/types.d.cts.map +0 -1
  116. package/dist/errors/types.d.mts +0 -5
  117. package/dist/errors/types.d.mts.map +0 -1
  118. package/dist/i18n/types.d.cts +0 -13
  119. package/dist/i18n/types.d.cts.map +0 -1
  120. package/dist/i18n/types.d.mts +0 -13
  121. package/dist/i18n/types.d.mts.map +0 -1
  122. package/dist/lib/cache/index.d.cts.map +0 -1
  123. package/dist/lib/cache/index.d.mts.map +0 -1
  124. package/dist/lib/cache/index.mjs.map +0 -1
  125. package/dist/lib/errors/index.d.cts.map +0 -1
  126. package/dist/lib/errors/index.d.mts.map +0 -1
  127. package/dist/lib/errors/index.mjs.map +0 -1
  128. package/dist/lib/i18n/index.d.cts.map +0 -1
  129. package/dist/lib/i18n/index.d.mts.map +0 -1
  130. package/dist/lib/i18n/index.mjs.map +0 -1
  131. package/dist/lib/policy/index.d.cts.map +0 -1
  132. package/dist/lib/policy/index.d.mts.map +0 -1
  133. package/dist/lib/policy/index.mjs.map +0 -1
  134. package/dist/lib/prompts/index.d.cts.map +0 -1
  135. package/dist/lib/prompts/index.d.mts.map +0 -1
  136. package/dist/lib/prompts/index.mjs.map +0 -1
  137. package/dist/lib/pubsub/index.d.cts.map +0 -1
  138. package/dist/lib/pubsub/index.d.mts.map +0 -1
  139. package/dist/lib/pubsub/index.mjs.map +0 -1
  140. package/dist/lib/queue/index.d.cts.map +0 -1
  141. package/dist/lib/queue/index.d.mts.map +0 -1
  142. package/dist/lib/queue/index.mjs.map +0 -1
  143. package/dist/lib/workflow/index.d.cts.map +0 -1
  144. package/dist/lib/workflow/index.d.mts.map +0 -1
  145. package/dist/lib/workflow/index.mjs.map +0 -1
  146. package/dist/logging/core/index.cjs +0 -99
  147. package/dist/logging/core/index.d.cts +0 -26
  148. package/dist/logging/core/index.d.cts.map +0 -1
  149. package/dist/logging/core/index.d.mts +0 -26
  150. package/dist/logging/core/index.d.mts.map +0 -1
  151. package/dist/logging/core/index.mjs +0 -99
  152. package/dist/logging/core/index.mjs.map +0 -1
  153. package/dist/logging/core/types.cjs +0 -10
  154. package/dist/logging/core/types.d.cts +0 -22
  155. package/dist/logging/core/types.d.cts.map +0 -1
  156. package/dist/logging/core/types.d.mts +0 -22
  157. package/dist/logging/core/types.d.mts.map +0 -1
  158. package/dist/logging/core/types.mjs +0 -12
  159. package/dist/logging/core/types.mjs.map +0 -1
  160. package/dist/logging/formatter/index.cjs +0 -119
  161. package/dist/logging/formatter/index.d.cts +0 -27
  162. package/dist/logging/formatter/index.d.cts.map +0 -1
  163. package/dist/logging/formatter/index.d.mts +0 -27
  164. package/dist/logging/formatter/index.d.mts.map +0 -1
  165. package/dist/logging/formatter/index.mjs +0 -115
  166. package/dist/logging/formatter/index.mjs.map +0 -1
  167. package/dist/logging/formatter/types.d.cts +0 -5
  168. package/dist/logging/formatter/types.d.cts.map +0 -1
  169. package/dist/logging/formatter/types.d.mts +0 -5
  170. package/dist/logging/formatter/types.d.mts.map +0 -1
  171. package/dist/logging/provider/index.cjs +0 -165
  172. package/dist/logging/provider/index.d.cts +0 -28
  173. package/dist/logging/provider/index.d.cts.map +0 -1
  174. package/dist/logging/provider/index.d.mts +0 -28
  175. package/dist/logging/provider/index.d.mts.map +0 -1
  176. package/dist/logging/provider/index.mjs +0 -165
  177. package/dist/logging/provider/index.mjs.map +0 -1
  178. package/dist/logging/provider/types.d.cts +0 -23
  179. package/dist/logging/provider/types.d.cts.map +0 -1
  180. package/dist/logging/provider/types.d.mts +0 -23
  181. package/dist/logging/provider/types.d.mts.map +0 -1
  182. package/dist/node_modules/@standard-schema/spec/dist/index.d.cts +0 -80
  183. package/dist/node_modules/@standard-schema/spec/dist/index.d.cts.map +0 -1
  184. package/dist/node_modules/@standard-schema/spec/dist/index.d.mts +0 -80
  185. package/dist/node_modules/@standard-schema/spec/dist/index.d.mts.map +0 -1
  186. package/dist/orm/column.cjs +0 -137
  187. package/dist/orm/column.d.cts +0 -121
  188. package/dist/orm/column.d.cts.map +0 -1
  189. package/dist/orm/column.d.mts +0 -121
  190. package/dist/orm/column.d.mts.map +0 -1
  191. package/dist/orm/column.mjs +0 -132
  192. package/dist/orm/column.mjs.map +0 -1
  193. package/dist/orm/dialect/index.cjs +0 -14
  194. package/dist/orm/dialect/index.mjs +0 -16
  195. package/dist/orm/dialect/index.mjs.map +0 -1
  196. package/dist/orm/dialect/mysql.cjs +0 -31
  197. package/dist/orm/dialect/mysql.mjs +0 -33
  198. package/dist/orm/dialect/mysql.mjs.map +0 -1
  199. package/dist/orm/dialect/postgres.cjs +0 -23
  200. package/dist/orm/dialect/postgres.mjs +0 -25
  201. package/dist/orm/dialect/postgres.mjs.map +0 -1
  202. package/dist/orm/dialect/sqlite.cjs +0 -31
  203. package/dist/orm/dialect/sqlite.mjs +0 -33
  204. package/dist/orm/dialect/sqlite.mjs.map +0 -1
  205. package/dist/orm/dialect/utils.cjs +0 -8
  206. package/dist/orm/dialect/utils.mjs +0 -10
  207. package/dist/orm/dialect/utils.mjs.map +0 -1
  208. package/dist/orm/internal/table-columns.cjs +0 -31
  209. package/dist/orm/internal/table-columns.mjs +0 -32
  210. package/dist/orm/internal/table-columns.mjs.map +0 -1
  211. package/dist/orm/internal/table-lookup.cjs +0 -35
  212. package/dist/orm/internal/table-lookup.mjs +0 -35
  213. package/dist/orm/internal/table-lookup.mjs.map +0 -1
  214. package/dist/orm/internal/table-relations.cjs +0 -28
  215. package/dist/orm/internal/table-relations.mjs +0 -29
  216. package/dist/orm/internal/table-relations.mjs.map +0 -1
  217. package/dist/orm/migration/config.cjs +0 -7
  218. package/dist/orm/migration/config.d.cts +0 -7
  219. package/dist/orm/migration/config.d.cts.map +0 -1
  220. package/dist/orm/migration/config.d.mts +0 -7
  221. package/dist/orm/migration/config.d.mts.map +0 -1
  222. package/dist/orm/migration/config.mjs +0 -8
  223. package/dist/orm/migration/config.mjs.map +0 -1
  224. package/dist/orm/migration/types.d.cts +0 -20
  225. package/dist/orm/migration/types.d.cts.map +0 -1
  226. package/dist/orm/migration/types.d.mts +0 -20
  227. package/dist/orm/migration/types.d.mts.map +0 -1
  228. package/dist/orm/orm.cjs +0 -41
  229. package/dist/orm/orm.d.cts +0 -18
  230. package/dist/orm/orm.d.cts.map +0 -1
  231. package/dist/orm/orm.d.mts +0 -18
  232. package/dist/orm/orm.d.mts.map +0 -1
  233. package/dist/orm/orm.mjs +0 -43
  234. package/dist/orm/orm.mjs.map +0 -1
  235. package/dist/orm/relation.cjs +0 -18
  236. package/dist/orm/relation.d.cts +0 -8
  237. package/dist/orm/relation.d.cts.map +0 -1
  238. package/dist/orm/relation.d.mts +0 -8
  239. package/dist/orm/relation.d.mts.map +0 -1
  240. package/dist/orm/relation.mjs +0 -19
  241. package/dist/orm/relation.mjs.map +0 -1
  242. package/dist/orm/runtime/builders/mutations.cjs +0 -29
  243. package/dist/orm/runtime/builders/mutations.mjs +0 -28
  244. package/dist/orm/runtime/builders/mutations.mjs.map +0 -1
  245. package/dist/orm/runtime/builders/select.cjs +0 -18
  246. package/dist/orm/runtime/builders/select.mjs +0 -19
  247. package/dist/orm/runtime/builders/select.mjs.map +0 -1
  248. package/dist/orm/runtime/client.cjs +0 -90
  249. package/dist/orm/runtime/client.mjs +0 -92
  250. package/dist/orm/runtime/client.mjs.map +0 -1
  251. package/dist/orm/runtime/context.cjs +0 -49
  252. package/dist/orm/runtime/context.mjs +0 -51
  253. package/dist/orm/runtime/context.mjs.map +0 -1
  254. package/dist/orm/runtime/dialect/index.cjs +0 -11
  255. package/dist/orm/runtime/dialect/index.mjs +0 -13
  256. package/dist/orm/runtime/dialect/index.mjs.map +0 -1
  257. package/dist/orm/runtime/dialect/mysql.cjs +0 -95
  258. package/dist/orm/runtime/dialect/mysql.mjs +0 -97
  259. package/dist/orm/runtime/dialect/mysql.mjs.map +0 -1
  260. package/dist/orm/runtime/dialect/postgres.cjs +0 -51
  261. package/dist/orm/runtime/dialect/postgres.mjs +0 -53
  262. package/dist/orm/runtime/dialect/postgres.mjs.map +0 -1
  263. package/dist/orm/runtime/dialect/sqlite.cjs +0 -4
  264. package/dist/orm/runtime/dialect/sqlite.mjs +0 -7
  265. package/dist/orm/runtime/dialect/sqlite.mjs.map +0 -1
  266. package/dist/orm/runtime/errors.cjs +0 -19
  267. package/dist/orm/runtime/errors.mjs +0 -21
  268. package/dist/orm/runtime/errors.mjs.map +0 -1
  269. package/dist/orm/runtime/hydrate/many.cjs +0 -46
  270. package/dist/orm/runtime/hydrate/many.mjs +0 -48
  271. package/dist/orm/runtime/hydrate/many.mjs.map +0 -1
  272. package/dist/orm/runtime/hydrate/one.cjs +0 -38
  273. package/dist/orm/runtime/hydrate/one.mjs +0 -40
  274. package/dist/orm/runtime/hydrate/one.mjs.map +0 -1
  275. package/dist/orm/runtime/hydrate.cjs +0 -49
  276. package/dist/orm/runtime/hydrate.mjs +0 -51
  277. package/dist/orm/runtime/hydrate.mjs.map +0 -1
  278. package/dist/orm/runtime/rows.cjs +0 -30
  279. package/dist/orm/runtime/rows.mjs +0 -31
  280. package/dist/orm/runtime/rows.mjs.map +0 -1
  281. package/dist/orm/runtime/utils.cjs +0 -27
  282. package/dist/orm/runtime/utils.mjs +0 -27
  283. package/dist/orm/runtime/utils.mjs.map +0 -1
  284. package/dist/orm/sql/parse-array.cjs +0 -64
  285. package/dist/orm/sql/parse-array.mjs +0 -66
  286. package/dist/orm/sql/parse-array.mjs.map +0 -1
  287. package/dist/orm/sql/plan/select.cjs +0 -36
  288. package/dist/orm/sql/plan/select.mjs +0 -38
  289. package/dist/orm/sql/plan/select.mjs.map +0 -1
  290. package/dist/orm/sql/plan/where/operators.cjs +0 -95
  291. package/dist/orm/sql/plan/where/operators.mjs +0 -97
  292. package/dist/orm/sql/plan/where/operators.mjs.map +0 -1
  293. package/dist/orm/sql/plan/where.cjs +0 -59
  294. package/dist/orm/sql/plan/where.mjs +0 -61
  295. package/dist/orm/sql/plan/where.mjs.map +0 -1
  296. package/dist/orm/sql/serialize/clauses.cjs +0 -36
  297. package/dist/orm/sql/serialize/clauses.mjs +0 -37
  298. package/dist/orm/sql/serialize/clauses.mjs.map +0 -1
  299. package/dist/orm/sql/serialize/joins.cjs +0 -31
  300. package/dist/orm/sql/serialize/joins.mjs +0 -33
  301. package/dist/orm/sql/serialize/joins.mjs.map +0 -1
  302. package/dist/orm/sql/serialize/values.cjs +0 -30
  303. package/dist/orm/sql/serialize/values.mjs +0 -32
  304. package/dist/orm/sql/serialize/values.mjs.map +0 -1
  305. package/dist/orm/sql/serialize/where/predicate.cjs +0 -73
  306. package/dist/orm/sql/serialize/where/predicate.mjs +0 -75
  307. package/dist/orm/sql/serialize/where/predicate.mjs.map +0 -1
  308. package/dist/orm/sql/serialize/where/tree.cjs +0 -26
  309. package/dist/orm/sql/serialize/where/tree.mjs +0 -28
  310. package/dist/orm/sql/serialize/where/tree.mjs.map +0 -1
  311. package/dist/orm/sql/serialize/where.cjs +0 -10
  312. package/dist/orm/sql/serialize/where.mjs +0 -12
  313. package/dist/orm/sql/serialize/where.mjs.map +0 -1
  314. package/dist/orm/sql/serialize.cjs +0 -24
  315. package/dist/orm/sql/serialize.mjs +0 -25
  316. package/dist/orm/sql/serialize.mjs.map +0 -1
  317. package/dist/orm/table.cjs +0 -12
  318. package/dist/orm/table.d.cts +0 -12
  319. package/dist/orm/table.d.cts.map +0 -1
  320. package/dist/orm/table.d.mts +0 -12
  321. package/dist/orm/table.d.mts.map +0 -1
  322. package/dist/orm/table.mjs +0 -14
  323. package/dist/orm/table.mjs.map +0 -1
  324. package/dist/orm/types.d.cts +0 -183
  325. package/dist/orm/types.d.cts.map +0 -1
  326. package/dist/orm/types.d.mts +0 -183
  327. package/dist/orm/types.d.mts.map +0 -1
  328. package/dist/policy/helpers.cjs +0 -206
  329. package/dist/policy/helpers.d.cts +0 -50
  330. package/dist/policy/helpers.d.cts.map +0 -1
  331. package/dist/policy/helpers.d.mts +0 -50
  332. package/dist/policy/helpers.d.mts.map +0 -1
  333. package/dist/policy/helpers.mjs +0 -190
  334. package/dist/policy/helpers.mjs.map +0 -1
  335. package/dist/policy/types.d.cts +0 -16
  336. package/dist/policy/types.d.cts.map +0 -1
  337. package/dist/policy/types.d.mts +0 -16
  338. package/dist/policy/types.d.mts.map +0 -1
  339. package/dist/prompts/core/keys.cjs +0 -165
  340. package/dist/prompts/core/keys.mjs +0 -167
  341. package/dist/prompts/core/keys.mjs.map +0 -1
  342. package/dist/prompts/core/runtime.cjs +0 -104
  343. package/dist/prompts/core/runtime.mjs +0 -106
  344. package/dist/prompts/core/runtime.mjs.map +0 -1
  345. package/dist/prompts/core/session.cjs +0 -98
  346. package/dist/prompts/core/session.mjs +0 -100
  347. package/dist/prompts/core/session.mjs.map +0 -1
  348. package/dist/prompts/core/types.d.cts +0 -21
  349. package/dist/prompts/core/types.d.cts.map +0 -1
  350. package/dist/prompts/core/types.d.mts +0 -21
  351. package/dist/prompts/core/types.d.mts.map +0 -1
  352. package/dist/prompts/types.d.cts +0 -52
  353. package/dist/prompts/types.d.cts.map +0 -1
  354. package/dist/prompts/types.d.mts +0 -52
  355. package/dist/prompts/types.d.mts.map +0 -1
  356. package/dist/pubsub/types.d.cts +0 -10
  357. package/dist/pubsub/types.d.cts.map +0 -1
  358. package/dist/pubsub/types.d.mts +0 -10
  359. package/dist/pubsub/types.d.mts.map +0 -1
  360. package/dist/queue/types.d.cts +0 -47
  361. package/dist/queue/types.d.cts.map +0 -1
  362. package/dist/queue/types.d.mts +0 -47
  363. package/dist/queue/types.d.mts.map +0 -1
  364. package/dist/workflow/types.d.cts +0 -83
  365. package/dist/workflow/types.d.cts.map +0 -1
  366. package/dist/workflow/types.d.mts +0 -83
  367. package/dist/workflow/types.d.mts.map +0 -1
@@ -1,206 +0,0 @@
1
- //#region src/lib/policy/helpers.ts
2
- const _brand = Symbol("conditionHelper");
3
- const eq = (value) => {
4
- const fn = (actual) => actual === value;
5
- return {
6
- [_brand]: fn,
7
- operator: "eq",
8
- value,
9
- fn
10
- };
11
- };
12
- const neq = (value) => {
13
- const fn = (actual) => actual !== value;
14
- return {
15
- [_brand]: fn,
16
- operator: "neq",
17
- value,
18
- fn
19
- };
20
- };
21
- const gt = (value) => {
22
- const fn = (actual) => actual > value;
23
- return {
24
- [_brand]: fn,
25
- operator: "gt",
26
- value,
27
- fn
28
- };
29
- };
30
- const gte = (value) => {
31
- const fn = (actual) => actual >= value;
32
- return {
33
- [_brand]: fn,
34
- operator: "gte",
35
- value,
36
- fn
37
- };
38
- };
39
- const lt = (value) => {
40
- const fn = (actual) => actual < value;
41
- return {
42
- [_brand]: fn,
43
- operator: "lt",
44
- value,
45
- fn
46
- };
47
- };
48
- const lte = (value) => {
49
- const fn = (actual) => actual <= value;
50
- return {
51
- [_brand]: fn,
52
- operator: "lte",
53
- value,
54
- fn
55
- };
56
- };
57
- const not = (inner) => {
58
- const fn = (actual) => !inner.fn(actual);
59
- return {
60
- [_brand]: fn,
61
- operator: "not",
62
- value: inner,
63
- fn
64
- };
65
- };
66
- const and = (...helpers) => {
67
- const fn = (actual) => helpers.every((h) => h.fn(actual));
68
- return {
69
- [_brand]: fn,
70
- operator: "and",
71
- value: helpers,
72
- fn
73
- };
74
- };
75
- const or = (...helpers) => {
76
- const fn = (actual) => helpers.some((h) => h.fn(actual));
77
- return {
78
- [_brand]: fn,
79
- operator: "or",
80
- value: helpers,
81
- fn
82
- };
83
- };
84
- const startsWith = (prefix) => {
85
- const fn = (actual) => actual.startsWith(prefix);
86
- return {
87
- [_brand]: fn,
88
- operator: "startsWith",
89
- value: prefix,
90
- fn
91
- };
92
- };
93
- const endsWith = (suffix) => {
94
- const fn = (actual) => actual.endsWith(suffix);
95
- return {
96
- [_brand]: fn,
97
- operator: "endsWith",
98
- value: suffix,
99
- fn
100
- };
101
- };
102
- const includes = (substring) => {
103
- const fn = (actual) => actual.includes(substring);
104
- return {
105
- [_brand]: fn,
106
- operator: "includes",
107
- value: substring,
108
- fn
109
- };
110
- };
111
- const matches = (pattern) => {
112
- const fn = (actual) => {
113
- pattern.lastIndex = 0;
114
- return pattern.test(actual);
115
- };
116
- return {
117
- [_brand]: fn,
118
- operator: "matches",
119
- value: pattern,
120
- fn
121
- };
122
- };
123
- const has = (items) => {
124
- const fn = (actual) => {
125
- if (Array.isArray(items)) return items.every((item) => actual.includes(item));
126
- return actual.includes(items);
127
- };
128
- return {
129
- [_brand]: fn,
130
- operator: "has",
131
- value: items,
132
- fn
133
- };
134
- };
135
- const hasAny = (items) => {
136
- const normalized = Array.isArray(items) ? items : [items];
137
- const fn = (actual) => normalized.some((item) => actual.includes(item));
138
- return {
139
- [_brand]: fn,
140
- operator: "hasAny",
141
- value: items,
142
- fn
143
- };
144
- };
145
- const hasLength = (length) => {
146
- const fn = (actual) => {
147
- const len = actual.length;
148
- if (typeof length === "number") return len === length;
149
- if (length.min !== void 0 && len < length.min) return false;
150
- if (length.max !== void 0 && len > length.max) return false;
151
- return true;
152
- };
153
- return {
154
- [_brand]: fn,
155
- operator: "hasLength",
156
- value: length,
157
- fn
158
- };
159
- };
160
- const isEmpty = () => {
161
- const fn = (actual) => actual.length === 0;
162
- return {
163
- [_brand]: fn,
164
- operator: "isEmpty",
165
- value: void 0,
166
- fn
167
- };
168
- };
169
- const isDefined = () => {
170
- const fn = (actual) => actual !== null && actual !== void 0;
171
- return {
172
- [_brand]: fn,
173
- operator: "isDefined",
174
- value: void 0,
175
- fn
176
- };
177
- };
178
- const isNullish = () => {
179
- const fn = (actual) => actual === null || actual === void 0;
180
- return {
181
- [_brand]: fn,
182
- operator: "isNullish",
183
- value: void 0,
184
- fn
185
- };
186
- };
187
- //#endregion
188
- exports.and = and;
189
- exports.endsWith = endsWith;
190
- exports.eq = eq;
191
- exports.gt = gt;
192
- exports.gte = gte;
193
- exports.has = has;
194
- exports.hasAny = hasAny;
195
- exports.hasLength = hasLength;
196
- exports.includes = includes;
197
- exports.isDefined = isDefined;
198
- exports.isEmpty = isEmpty;
199
- exports.isNullish = isNullish;
200
- exports.lt = lt;
201
- exports.lte = lte;
202
- exports.matches = matches;
203
- exports.neq = neq;
204
- exports.not = not;
205
- exports.or = or;
206
- exports.startsWith = startsWith;
@@ -1,50 +0,0 @@
1
- //#region src/lib/policy/helpers.d.ts
2
- declare const _brand: unique symbol;
3
- type ConditionHelper<V> = {
4
- readonly [_brand]: (actual: V) => boolean;
5
- operator: string;
6
- value: unknown;
7
- fn: (actual: V) => boolean;
8
- };
9
- declare const eq: <V>(value: V) => ConditionHelper<V>;
10
- declare const neq: <V>(value: V) => ConditionHelper<V>;
11
- declare const gt: {
12
- (value: Date): ConditionHelper<Date>;
13
- (value: number): ConditionHelper<number>;
14
- (value: string): ConditionHelper<string>;
15
- };
16
- declare const gte: {
17
- (value: Date): ConditionHelper<Date>;
18
- (value: number): ConditionHelper<number>;
19
- (value: string): ConditionHelper<string>;
20
- };
21
- declare const lt: {
22
- (value: Date): ConditionHelper<Date>;
23
- (value: number): ConditionHelper<number>;
24
- (value: string): ConditionHelper<string>;
25
- };
26
- declare const lte: {
27
- (value: Date): ConditionHelper<Date>;
28
- (value: number): ConditionHelper<number>;
29
- (value: string): ConditionHelper<string>;
30
- };
31
- declare const not: <V>(inner: ConditionHelper<V>) => ConditionHelper<V>;
32
- declare const and: <V>(...helpers: ConditionHelper<V>[]) => ConditionHelper<V>;
33
- declare const or: <V>(...helpers: ConditionHelper<V>[]) => ConditionHelper<V>;
34
- declare const startsWith: (prefix: string) => ConditionHelper<string>;
35
- declare const endsWith: (suffix: string) => ConditionHelper<string>;
36
- declare const includes: (substring: string) => ConditionHelper<string>;
37
- declare const matches: (pattern: RegExp) => ConditionHelper<string>;
38
- declare const has: <V>(items: V | V[]) => ConditionHelper<V[]>;
39
- declare const hasAny: <V>(items: V | V[]) => ConditionHelper<V[]>;
40
- type HasLengthArg = number | {
41
- min?: number;
42
- max?: number;
43
- };
44
- declare const hasLength: (length: HasLengthArg) => ConditionHelper<string | unknown[]>;
45
- declare const isEmpty: () => ConditionHelper<string | unknown[]>;
46
- declare const isDefined: () => ConditionHelper<unknown>;
47
- declare const isNullish: () => ConditionHelper<unknown>;
48
- //#endregion
49
- export { ConditionHelper, and, endsWith, eq, gt, gte, has, hasAny, hasLength, includes, isDefined, isEmpty, isNullish, lt, lte, matches, neq, not, or, startsWith };
50
- //# sourceMappingURL=helpers.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.d.cts","names":[],"sources":["../../src/lib/policy/helpers.ts"],"mappings":";cAAM,MAAA;AAAA,KAEM,eAAA;EAAA,UACA,MAAA,IAAU,MAAA,EAAQ,CAAA;EAC5B,QAAA;EACA,KAAA;EACA,EAAA,GAAK,MAAA,EAAQ,CAAA;AAAA;AAAA,cAGF,EAAA,MAAS,KAAA,EAAO,CAAA,KAAI,eAAA,CAAgB,CAAA;AAAA,cAWpC,GAAA,MAAU,KAAA,EAAO,CAAA,KAAI,eAAA,CAAgB,CAAA;AAAA,cAWrC,EAAA;EAAA,CACV,KAAA,EAAO,IAAA,GAAO,eAAA,CAAgB,IAAA;EAAA,CAC9B,KAAA,WAAgB,eAAA;EAAA,CAChB,KAAA,WAAgB,eAAA;AAAA;AAAA,cAcN,GAAA;EAAA,CACV,KAAA,EAAO,IAAA,GAAO,eAAA,CAAgB,IAAA;EAAA,CAC9B,KAAA,WAAgB,eAAA;EAAA,CAChB,KAAA,WAAgB,eAAA;AAAA;AAAA,cAcN,EAAA;EAAA,CACV,KAAA,EAAO,IAAA,GAAO,eAAA,CAAgB,IAAA;EAAA,CAC9B,KAAA,WAAgB,eAAA;EAAA,CAChB,KAAA,WAAgB,eAAA;AAAA;AAAA,cAcN,GAAA;EAAA,CACV,KAAA,EAAO,IAAA,GAAO,eAAA,CAAgB,IAAA;EAAA,CAC9B,KAAA,WAAgB,eAAA;EAAA,CAChB,KAAA,WAAgB,eAAA;AAAA;AAAA,cAcN,GAAA,MAAU,KAAA,EAAO,eAAA,CAAgB,CAAA,MAAK,eAAA,CAAgB,CAAA;AAAA,cAWtD,GAAA,SACR,OAAA,EAAS,eAAA,CAAgB,CAAA,QAC3B,eAAA,CAAgB,CAAA;AAAA,cAWN,EAAA,SAAY,OAAA,EAAS,eAAA,CAAgB,CAAA,QAAO,eAAA,CAAgB,CAAA;AAAA,cAW5D,UAAA,GAAc,MAAA,aAAiB,eAAA;AAAA,cAW/B,QAAA,GAAY,MAAA,aAAiB,eAAA;AAAA,cAW7B,QAAA,GAAY,SAAA,aAAoB,eAAA;AAAA,cAWhC,OAAA,GAAW,OAAA,EAAS,MAAA,KAAS,eAAA;AAAA,cAe7B,GAAA,MAAU,KAAA,EAAO,CAAA,GAAI,CAAA,OAAM,eAAA,CAAgB,CAAA;AAAA,cAiB3C,MAAA,MAAa,KAAA,EAAO,CAAA,GAAI,CAAA,OAAM,eAAA,CAAgB,CAAA;AAAA,KAYtD,YAAA;EAA0B,GAAA;EAAc,GAAA;AAAA;AAAA,cAEhC,SAAA,GACX,MAAA,EAAQ,YAAA,KACP,eAAA;AAAA,cA2BU,OAAA,QAAc,eAAA;AAAA,cAWd,SAAA,QAAgB,eAAA;AAAA,cAWhB,SAAA,QAAgB,eAAA"}
@@ -1,50 +0,0 @@
1
- //#region src/lib/policy/helpers.d.ts
2
- declare const _brand: unique symbol;
3
- type ConditionHelper<V> = {
4
- readonly [_brand]: (actual: V) => boolean;
5
- operator: string;
6
- value: unknown;
7
- fn: (actual: V) => boolean;
8
- };
9
- declare const eq: <V>(value: V) => ConditionHelper<V>;
10
- declare const neq: <V>(value: V) => ConditionHelper<V>;
11
- declare const gt: {
12
- (value: Date): ConditionHelper<Date>;
13
- (value: number): ConditionHelper<number>;
14
- (value: string): ConditionHelper<string>;
15
- };
16
- declare const gte: {
17
- (value: Date): ConditionHelper<Date>;
18
- (value: number): ConditionHelper<number>;
19
- (value: string): ConditionHelper<string>;
20
- };
21
- declare const lt: {
22
- (value: Date): ConditionHelper<Date>;
23
- (value: number): ConditionHelper<number>;
24
- (value: string): ConditionHelper<string>;
25
- };
26
- declare const lte: {
27
- (value: Date): ConditionHelper<Date>;
28
- (value: number): ConditionHelper<number>;
29
- (value: string): ConditionHelper<string>;
30
- };
31
- declare const not: <V>(inner: ConditionHelper<V>) => ConditionHelper<V>;
32
- declare const and: <V>(...helpers: ConditionHelper<V>[]) => ConditionHelper<V>;
33
- declare const or: <V>(...helpers: ConditionHelper<V>[]) => ConditionHelper<V>;
34
- declare const startsWith: (prefix: string) => ConditionHelper<string>;
35
- declare const endsWith: (suffix: string) => ConditionHelper<string>;
36
- declare const includes: (substring: string) => ConditionHelper<string>;
37
- declare const matches: (pattern: RegExp) => ConditionHelper<string>;
38
- declare const has: <V>(items: V | V[]) => ConditionHelper<V[]>;
39
- declare const hasAny: <V>(items: V | V[]) => ConditionHelper<V[]>;
40
- type HasLengthArg = number | {
41
- min?: number;
42
- max?: number;
43
- };
44
- declare const hasLength: (length: HasLengthArg) => ConditionHelper<string | unknown[]>;
45
- declare const isEmpty: () => ConditionHelper<string | unknown[]>;
46
- declare const isDefined: () => ConditionHelper<unknown>;
47
- declare const isNullish: () => ConditionHelper<unknown>;
48
- //#endregion
49
- export { ConditionHelper, and, endsWith, eq, gt, gte, has, hasAny, hasLength, includes, isDefined, isEmpty, isNullish, lt, lte, matches, neq, not, or, startsWith };
50
- //# sourceMappingURL=helpers.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.d.mts","names":[],"sources":["../../src/lib/policy/helpers.ts"],"mappings":";cAAM,MAAA;AAAA,KAEM,eAAA;EAAA,UACA,MAAA,IAAU,MAAA,EAAQ,CAAA;EAC5B,QAAA;EACA,KAAA;EACA,EAAA,GAAK,MAAA,EAAQ,CAAA;AAAA;AAAA,cAGF,EAAA,MAAS,KAAA,EAAO,CAAA,KAAI,eAAA,CAAgB,CAAA;AAAA,cAWpC,GAAA,MAAU,KAAA,EAAO,CAAA,KAAI,eAAA,CAAgB,CAAA;AAAA,cAWrC,EAAA;EAAA,CACV,KAAA,EAAO,IAAA,GAAO,eAAA,CAAgB,IAAA;EAAA,CAC9B,KAAA,WAAgB,eAAA;EAAA,CAChB,KAAA,WAAgB,eAAA;AAAA;AAAA,cAcN,GAAA;EAAA,CACV,KAAA,EAAO,IAAA,GAAO,eAAA,CAAgB,IAAA;EAAA,CAC9B,KAAA,WAAgB,eAAA;EAAA,CAChB,KAAA,WAAgB,eAAA;AAAA;AAAA,cAcN,EAAA;EAAA,CACV,KAAA,EAAO,IAAA,GAAO,eAAA,CAAgB,IAAA;EAAA,CAC9B,KAAA,WAAgB,eAAA;EAAA,CAChB,KAAA,WAAgB,eAAA;AAAA;AAAA,cAcN,GAAA;EAAA,CACV,KAAA,EAAO,IAAA,GAAO,eAAA,CAAgB,IAAA;EAAA,CAC9B,KAAA,WAAgB,eAAA;EAAA,CAChB,KAAA,WAAgB,eAAA;AAAA;AAAA,cAcN,GAAA,MAAU,KAAA,EAAO,eAAA,CAAgB,CAAA,MAAK,eAAA,CAAgB,CAAA;AAAA,cAWtD,GAAA,SACR,OAAA,EAAS,eAAA,CAAgB,CAAA,QAC3B,eAAA,CAAgB,CAAA;AAAA,cAWN,EAAA,SAAY,OAAA,EAAS,eAAA,CAAgB,CAAA,QAAO,eAAA,CAAgB,CAAA;AAAA,cAW5D,UAAA,GAAc,MAAA,aAAiB,eAAA;AAAA,cAW/B,QAAA,GAAY,MAAA,aAAiB,eAAA;AAAA,cAW7B,QAAA,GAAY,SAAA,aAAoB,eAAA;AAAA,cAWhC,OAAA,GAAW,OAAA,EAAS,MAAA,KAAS,eAAA;AAAA,cAe7B,GAAA,MAAU,KAAA,EAAO,CAAA,GAAI,CAAA,OAAM,eAAA,CAAgB,CAAA;AAAA,cAiB3C,MAAA,MAAa,KAAA,EAAO,CAAA,GAAI,CAAA,OAAM,eAAA,CAAgB,CAAA;AAAA,KAYtD,YAAA;EAA0B,GAAA;EAAc,GAAA;AAAA;AAAA,cAEhC,SAAA,GACX,MAAA,EAAQ,YAAA,KACP,eAAA;AAAA,cA2BU,OAAA,QAAc,eAAA;AAAA,cAWd,SAAA,QAAgB,eAAA;AAAA,cAWhB,SAAA,QAAgB,eAAA"}
@@ -1,190 +0,0 @@
1
- //#region src/lib/policy/helpers.ts
2
- const _brand = Symbol("conditionHelper");
3
- const eq = (value) => {
4
- const fn = (actual) => actual === value;
5
- return {
6
- [_brand]: fn,
7
- operator: "eq",
8
- value,
9
- fn
10
- };
11
- };
12
- const neq = (value) => {
13
- const fn = (actual) => actual !== value;
14
- return {
15
- [_brand]: fn,
16
- operator: "neq",
17
- value,
18
- fn
19
- };
20
- };
21
- const gt = (value) => {
22
- const fn = (actual) => actual > value;
23
- return {
24
- [_brand]: fn,
25
- operator: "gt",
26
- value,
27
- fn
28
- };
29
- };
30
- const gte = (value) => {
31
- const fn = (actual) => actual >= value;
32
- return {
33
- [_brand]: fn,
34
- operator: "gte",
35
- value,
36
- fn
37
- };
38
- };
39
- const lt = (value) => {
40
- const fn = (actual) => actual < value;
41
- return {
42
- [_brand]: fn,
43
- operator: "lt",
44
- value,
45
- fn
46
- };
47
- };
48
- const lte = (value) => {
49
- const fn = (actual) => actual <= value;
50
- return {
51
- [_brand]: fn,
52
- operator: "lte",
53
- value,
54
- fn
55
- };
56
- };
57
- const not = (inner) => {
58
- const fn = (actual) => !inner.fn(actual);
59
- return {
60
- [_brand]: fn,
61
- operator: "not",
62
- value: inner,
63
- fn
64
- };
65
- };
66
- const and = (...helpers) => {
67
- const fn = (actual) => helpers.every((h) => h.fn(actual));
68
- return {
69
- [_brand]: fn,
70
- operator: "and",
71
- value: helpers,
72
- fn
73
- };
74
- };
75
- const or = (...helpers) => {
76
- const fn = (actual) => helpers.some((h) => h.fn(actual));
77
- return {
78
- [_brand]: fn,
79
- operator: "or",
80
- value: helpers,
81
- fn
82
- };
83
- };
84
- const startsWith = (prefix) => {
85
- const fn = (actual) => actual.startsWith(prefix);
86
- return {
87
- [_brand]: fn,
88
- operator: "startsWith",
89
- value: prefix,
90
- fn
91
- };
92
- };
93
- const endsWith = (suffix) => {
94
- const fn = (actual) => actual.endsWith(suffix);
95
- return {
96
- [_brand]: fn,
97
- operator: "endsWith",
98
- value: suffix,
99
- fn
100
- };
101
- };
102
- const includes = (substring) => {
103
- const fn = (actual) => actual.includes(substring);
104
- return {
105
- [_brand]: fn,
106
- operator: "includes",
107
- value: substring,
108
- fn
109
- };
110
- };
111
- const matches = (pattern) => {
112
- const fn = (actual) => {
113
- pattern.lastIndex = 0;
114
- return pattern.test(actual);
115
- };
116
- return {
117
- [_brand]: fn,
118
- operator: "matches",
119
- value: pattern,
120
- fn
121
- };
122
- };
123
- const has = (items) => {
124
- const fn = (actual) => {
125
- if (Array.isArray(items)) return items.every((item) => actual.includes(item));
126
- return actual.includes(items);
127
- };
128
- return {
129
- [_brand]: fn,
130
- operator: "has",
131
- value: items,
132
- fn
133
- };
134
- };
135
- const hasAny = (items) => {
136
- const normalized = Array.isArray(items) ? items : [items];
137
- const fn = (actual) => normalized.some((item) => actual.includes(item));
138
- return {
139
- [_brand]: fn,
140
- operator: "hasAny",
141
- value: items,
142
- fn
143
- };
144
- };
145
- const hasLength = (length) => {
146
- const fn = (actual) => {
147
- const len = actual.length;
148
- if (typeof length === "number") return len === length;
149
- if (length.min !== void 0 && len < length.min) return false;
150
- if (length.max !== void 0 && len > length.max) return false;
151
- return true;
152
- };
153
- return {
154
- [_brand]: fn,
155
- operator: "hasLength",
156
- value: length,
157
- fn
158
- };
159
- };
160
- const isEmpty = () => {
161
- const fn = (actual) => actual.length === 0;
162
- return {
163
- [_brand]: fn,
164
- operator: "isEmpty",
165
- value: void 0,
166
- fn
167
- };
168
- };
169
- const isDefined = () => {
170
- const fn = (actual) => actual !== null && actual !== void 0;
171
- return {
172
- [_brand]: fn,
173
- operator: "isDefined",
174
- value: void 0,
175
- fn
176
- };
177
- };
178
- const isNullish = () => {
179
- const fn = (actual) => actual === null || actual === void 0;
180
- return {
181
- [_brand]: fn,
182
- operator: "isNullish",
183
- value: void 0,
184
- fn
185
- };
186
- };
187
- //#endregion
188
- export { and, endsWith, eq, gt, gte, has, hasAny, hasLength, includes, isDefined, isEmpty, isNullish, lt, lte, matches, neq, not, or, startsWith };
189
-
190
- //# sourceMappingURL=helpers.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.mjs","names":[],"sources":["../../src/lib/policy/helpers.ts"],"sourcesContent":["const _brand = Symbol(\"conditionHelper\");\n\nexport type ConditionHelper<V> = {\n readonly [_brand]: (actual: V) => boolean;\n operator: string;\n value: unknown;\n fn: (actual: V) => boolean;\n};\n\nexport const eq = <V>(value: V): ConditionHelper<V> => {\n const fn = (actual: V) => actual === value;\n\n return {\n [_brand]: fn,\n operator: \"eq\",\n value,\n fn,\n };\n};\n\nexport const neq = <V>(value: V): ConditionHelper<V> => {\n const fn = (actual: V) => actual !== value;\n\n return {\n [_brand]: fn,\n operator: \"neq\",\n value,\n fn,\n };\n};\n\nexport const gt: {\n (value: Date): ConditionHelper<Date>;\n (value: number): ConditionHelper<number>;\n (value: string): ConditionHelper<string>;\n} = (\n value: string | number | Date,\n): ConditionHelper<string | number | Date> => {\n const fn = (actual: string | number | Date) => actual > value;\n\n return {\n [_brand]: fn,\n operator: \"gt\",\n value,\n fn,\n };\n};\n\nexport const gte: {\n (value: Date): ConditionHelper<Date>;\n (value: number): ConditionHelper<number>;\n (value: string): ConditionHelper<string>;\n} = (\n value: string | number | Date,\n): ConditionHelper<string | number | Date> => {\n const fn = (actual: string | number | Date) => actual >= value;\n\n return {\n [_brand]: fn,\n operator: \"gte\",\n value,\n fn,\n };\n};\n\nexport const lt: {\n (value: Date): ConditionHelper<Date>;\n (value: number): ConditionHelper<number>;\n (value: string): ConditionHelper<string>;\n} = (\n value: string | number | Date,\n): ConditionHelper<string | number | Date> => {\n const fn = (actual: string | number | Date) => actual < value;\n\n return {\n [_brand]: fn,\n operator: \"lt\",\n value,\n fn,\n };\n};\n\nexport const lte: {\n (value: Date): ConditionHelper<Date>;\n (value: number): ConditionHelper<number>;\n (value: string): ConditionHelper<string>;\n} = (\n value: string | number | Date,\n): ConditionHelper<string | number | Date> => {\n const fn = (actual: string | number | Date) => actual <= value;\n\n return {\n [_brand]: fn,\n operator: \"lte\",\n value,\n fn,\n };\n};\n\nexport const not = <V>(inner: ConditionHelper<V>): ConditionHelper<V> => {\n const fn = (actual: V) => !inner.fn(actual);\n\n return {\n [_brand]: fn,\n operator: \"not\",\n value: inner,\n fn,\n };\n};\n\nexport const and = <V>(\n ...helpers: ConditionHelper<V>[]\n): ConditionHelper<V> => {\n const fn = (actual: V) => helpers.every((h) => h.fn(actual));\n\n return {\n [_brand]: fn,\n operator: \"and\",\n value: helpers,\n fn,\n };\n};\n\nexport const or = <V>(...helpers: ConditionHelper<V>[]): ConditionHelper<V> => {\n const fn = (actual: V) => helpers.some((h) => h.fn(actual));\n\n return {\n [_brand]: fn,\n operator: \"or\",\n value: helpers,\n fn,\n };\n};\n\nexport const startsWith = (prefix: string): ConditionHelper<string> => {\n const fn = (actual: string) => actual.startsWith(prefix);\n\n return {\n [_brand]: fn,\n operator: \"startsWith\",\n value: prefix,\n fn,\n };\n};\n\nexport const endsWith = (suffix: string): ConditionHelper<string> => {\n const fn = (actual: string) => actual.endsWith(suffix);\n\n return {\n [_brand]: fn,\n operator: \"endsWith\",\n value: suffix,\n fn,\n };\n};\n\nexport const includes = (substring: string): ConditionHelper<string> => {\n const fn = (actual: string) => actual.includes(substring);\n\n return {\n [_brand]: fn,\n operator: \"includes\",\n value: substring,\n fn,\n };\n};\n\nexport const matches = (pattern: RegExp): ConditionHelper<string> => {\n const fn = (actual: string) => {\n pattern.lastIndex = 0;\n\n return pattern.test(actual);\n };\n\n return {\n [_brand]: fn,\n operator: \"matches\",\n value: pattern,\n fn,\n };\n};\n\nexport const has = <V>(items: V | V[]): ConditionHelper<V[]> => {\n const fn = (actual: V[]) => {\n if (Array.isArray(items)) {\n return items.every((item) => actual.includes(item));\n }\n\n return actual.includes(items);\n };\n\n return {\n [_brand]: fn,\n operator: \"has\",\n value: items,\n fn,\n };\n};\n\nexport const hasAny = <V>(items: V | V[]): ConditionHelper<V[]> => {\n const normalized = Array.isArray(items) ? items : [items];\n const fn = (actual: V[]) => normalized.some((item) => actual.includes(item));\n\n return {\n [_brand]: fn,\n operator: \"hasAny\",\n value: items,\n fn,\n };\n};\n\ntype HasLengthArg = number | { min?: number; max?: number };\n\nexport const hasLength = (\n length: HasLengthArg,\n): ConditionHelper<string | unknown[]> => {\n const fn = (actual: string | unknown[]) => {\n const len = actual.length;\n\n if (typeof length === \"number\") {\n return len === length;\n }\n\n if (length.min !== undefined && len < length.min) {\n return false;\n }\n\n if (length.max !== undefined && len > length.max) {\n return false;\n }\n\n return true;\n };\n\n return {\n [_brand]: fn,\n operator: \"hasLength\",\n value: length,\n fn,\n };\n};\n\nexport const isEmpty = (): ConditionHelper<string | unknown[]> => {\n const fn = (actual: string | unknown[]) => actual.length === 0;\n\n return {\n [_brand]: fn,\n operator: \"isEmpty\",\n value: undefined,\n fn,\n };\n};\n\nexport const isDefined = (): ConditionHelper<unknown> => {\n const fn = (actual: unknown) => actual !== null && actual !== undefined;\n\n return {\n [_brand]: fn,\n operator: \"isDefined\",\n value: undefined,\n fn,\n };\n};\n\nexport const isNullish = (): ConditionHelper<unknown> => {\n const fn = (actual: unknown) => actual === null || actual === undefined;\n\n return {\n [_brand]: fn,\n operator: \"isNullish\",\n value: undefined,\n fn,\n };\n};\n"],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- import { ConditionHelper } from "./helpers.cjs";
2
-
3
- //#region src/lib/policy/types.d.ts
4
- type Action = "read" | "create" | "update" | "delete" | (string & {});
5
- type ConditionValue<V> = V extends Record<string, unknown> ? ConditionHelper<V> | Conditions<V> : ConditionHelper<V>;
6
- type Conditions<T = Record<string, unknown>> = { [K in keyof T]?: ConditionValue<T[K]> };
7
- type PolicyRuleParams<T = Record<string, unknown>> = {
8
- action: Action | Action[];
9
- conditions?: Conditions<T>;
10
- reason?: string;
11
- };
12
- type AllowParams<T = Record<string, unknown>> = PolicyRuleParams<T>;
13
- type ForbidParams<T = Record<string, unknown>> = PolicyRuleParams<T>;
14
- //#endregion
15
- export { Action, AllowParams, ForbidParams };
16
- //# sourceMappingURL=types.d.cts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.cts","names":[],"sources":["../../src/lib/policy/types.ts"],"mappings":";;;KAEY,MAAA;AAAA,KAEA,cAAA,MACV,CAAA,SAAU,MAAA,oBACN,eAAA,CAAgB,CAAA,IAAK,UAAA,CAAW,CAAA,IAChC,eAAA,CAAgB,CAAA;AAAA,KAEV,UAAA,KAAe,MAAA,mCACb,CAAA,IAAK,cAAA,CAAe,CAAA,CAAE,CAAA;AAAA,KAU/B,gBAAA,KAAqB,MAAA;EACxB,MAAA,EAAQ,MAAA,GAAS,MAAA;EACjB,UAAA,GAAa,UAAA,CAAW,CAAA;EACxB,MAAA;AAAA;AAAA,KAGU,WAAA,KAAgB,MAAA,qBAA2B,gBAAA,CAAiB,CAAA;AAAA,KAE5D,YAAA,KAAiB,MAAA,qBAA2B,gBAAA,CAAiB,CAAA"}
@@ -1,16 +0,0 @@
1
- import { ConditionHelper } from "./helpers.mjs";
2
-
3
- //#region src/lib/policy/types.d.ts
4
- type Action = "read" | "create" | "update" | "delete" | (string & {});
5
- type ConditionValue<V> = V extends Record<string, unknown> ? ConditionHelper<V> | Conditions<V> : ConditionHelper<V>;
6
- type Conditions<T = Record<string, unknown>> = { [K in keyof T]?: ConditionValue<T[K]> };
7
- type PolicyRuleParams<T = Record<string, unknown>> = {
8
- action: Action | Action[];
9
- conditions?: Conditions<T>;
10
- reason?: string;
11
- };
12
- type AllowParams<T = Record<string, unknown>> = PolicyRuleParams<T>;
13
- type ForbidParams<T = Record<string, unknown>> = PolicyRuleParams<T>;
14
- //#endregion
15
- export { Action, AllowParams, ForbidParams };
16
- //# sourceMappingURL=types.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.mts","names":[],"sources":["../../src/lib/policy/types.ts"],"mappings":";;;KAEY,MAAA;AAAA,KAEA,cAAA,MACV,CAAA,SAAU,MAAA,oBACN,eAAA,CAAgB,CAAA,IAAK,UAAA,CAAW,CAAA,IAChC,eAAA,CAAgB,CAAA;AAAA,KAEV,UAAA,KAAe,MAAA,mCACb,CAAA,IAAK,cAAA,CAAe,CAAA,CAAE,CAAA;AAAA,KAU/B,gBAAA,KAAqB,MAAA;EACxB,MAAA,EAAQ,MAAA,GAAS,MAAA;EACjB,UAAA,GAAa,UAAA,CAAW,CAAA;EACxB,MAAA;AAAA;AAAA,KAGU,WAAA,KAAgB,MAAA,qBAA2B,gBAAA,CAAiB,CAAA;AAAA,KAE5D,YAAA,KAAiB,MAAA,qBAA2B,gBAAA,CAAiB,CAAA"}