@dyrected/core 2.6.3 → 2.6.4

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 (352) hide show
  1. package/dist/__tests__/access-features.test.d.ts +2 -0
  2. package/dist/__tests__/access-features.test.d.ts.map +1 -0
  3. package/dist/__tests__/access-features.test.js +159 -0
  4. package/dist/__tests__/access-features.test.js.map +1 -0
  5. package/dist/__tests__/access-parity.test.d.ts +2 -0
  6. package/dist/__tests__/access-parity.test.d.ts.map +1 -0
  7. package/dist/__tests__/access-parity.test.js +338 -0
  8. package/dist/__tests__/access-parity.test.js.map +1 -0
  9. package/dist/__tests__/access.test.d.ts +2 -0
  10. package/dist/__tests__/access.test.d.ts.map +1 -0
  11. package/dist/__tests__/access.test.js +137 -0
  12. package/dist/__tests__/access.test.js.map +1 -0
  13. package/dist/__tests__/admin-auth.test.d.ts +2 -0
  14. package/dist/__tests__/admin-auth.test.d.ts.map +1 -0
  15. package/dist/__tests__/admin-auth.test.js +440 -0
  16. package/dist/__tests__/admin-auth.test.js.map +1 -0
  17. package/dist/__tests__/app.test.d.ts +2 -0
  18. package/dist/__tests__/app.test.d.ts.map +1 -0
  19. package/dist/__tests__/app.test.js +112 -0
  20. package/dist/__tests__/app.test.js.map +1 -0
  21. package/dist/__tests__/audit.test.d.ts +2 -0
  22. package/dist/__tests__/audit.test.d.ts.map +1 -0
  23. package/dist/__tests__/audit.test.js +125 -0
  24. package/dist/__tests__/audit.test.js.map +1 -0
  25. package/dist/__tests__/auth-hydration.test.d.ts +2 -0
  26. package/dist/__tests__/auth-hydration.test.d.ts.map +1 -0
  27. package/dist/__tests__/auth-hydration.test.js +90 -0
  28. package/dist/__tests__/auth-hydration.test.js.map +1 -0
  29. package/dist/__tests__/auth-invite.test.d.ts +2 -0
  30. package/dist/__tests__/auth-invite.test.d.ts.map +1 -0
  31. package/dist/__tests__/auth-invite.test.js +152 -0
  32. package/dist/__tests__/auth-invite.test.js.map +1 -0
  33. package/dist/__tests__/auth-lockout.test.d.ts +2 -0
  34. package/dist/__tests__/auth-lockout.test.d.ts.map +1 -0
  35. package/dist/__tests__/auth-lockout.test.js +154 -0
  36. package/dist/__tests__/auth-lockout.test.js.map +1 -0
  37. package/dist/__tests__/auth-sessions.test.d.ts +2 -0
  38. package/dist/__tests__/auth-sessions.test.d.ts.map +1 -0
  39. package/dist/__tests__/auth-sessions.test.js +118 -0
  40. package/dist/__tests__/auth-sessions.test.js.map +1 -0
  41. package/dist/__tests__/config.test.d.ts +2 -0
  42. package/dist/__tests__/config.test.d.ts.map +1 -0
  43. package/dist/__tests__/config.test.js +402 -0
  44. package/dist/__tests__/config.test.js.map +1 -0
  45. package/dist/__tests__/define-field.test.d.ts +2 -0
  46. package/dist/__tests__/define-field.test.d.ts.map +1 -0
  47. package/dist/__tests__/define-field.test.js +121 -0
  48. package/dist/__tests__/define-field.test.js.map +1 -0
  49. package/dist/__tests__/deleteMany.test.d.ts +2 -0
  50. package/dist/__tests__/deleteMany.test.d.ts.map +1 -0
  51. package/dist/__tests__/deleteMany.test.js +75 -0
  52. package/dist/__tests__/deleteMany.test.js.map +1 -0
  53. package/dist/__tests__/depth.test.d.ts +2 -0
  54. package/dist/__tests__/depth.test.d.ts.map +1 -0
  55. package/dist/__tests__/depth.test.js +115 -0
  56. package/dist/__tests__/depth.test.js.map +1 -0
  57. package/dist/__tests__/dynamic-options.test.d.ts +2 -0
  58. package/dist/__tests__/dynamic-options.test.d.ts.map +1 -0
  59. package/dist/__tests__/dynamic-options.test.js +168 -0
  60. package/dist/__tests__/dynamic-options.test.js.map +1 -0
  61. package/dist/__tests__/email.service.test.d.ts +2 -0
  62. package/dist/__tests__/email.service.test.d.ts.map +1 -0
  63. package/dist/__tests__/email.service.test.js +52 -0
  64. package/dist/__tests__/email.service.test.js.map +1 -0
  65. package/dist/__tests__/field-inference.test-types.d.ts +161 -0
  66. package/dist/__tests__/field-inference.test-types.d.ts.map +1 -0
  67. package/dist/__tests__/field-inference.test-types.js +87 -0
  68. package/dist/__tests__/field-inference.test-types.js.map +1 -0
  69. package/dist/__tests__/fixtures/editorial-workflow.d.ts +14 -0
  70. package/dist/__tests__/fixtures/editorial-workflow.d.ts.map +1 -0
  71. package/dist/__tests__/fixtures/editorial-workflow.js +12 -0
  72. package/dist/__tests__/fixtures/editorial-workflow.js.map +1 -0
  73. package/dist/__tests__/hooks.test.d.ts +2 -0
  74. package/dist/__tests__/hooks.test.d.ts.map +1 -0
  75. package/dist/__tests__/hooks.test.js +320 -0
  76. package/dist/__tests__/hooks.test.js.map +1 -0
  77. package/dist/__tests__/mocks.d.ts +75 -0
  78. package/dist/__tests__/mocks.d.ts.map +1 -0
  79. package/dist/__tests__/mocks.js +170 -0
  80. package/dist/__tests__/mocks.js.map +1 -0
  81. package/dist/__tests__/observability.test.d.ts +2 -0
  82. package/dist/__tests__/observability.test.d.ts.map +1 -0
  83. package/dist/__tests__/observability.test.js +233 -0
  84. package/dist/__tests__/observability.test.js.map +1 -0
  85. package/dist/__tests__/openapi.test.d.ts +2 -0
  86. package/dist/__tests__/openapi.test.d.ts.map +1 -0
  87. package/dist/__tests__/openapi.test.js +105 -0
  88. package/dist/__tests__/openapi.test.js.map +1 -0
  89. package/dist/__tests__/parse-sort.test.d.ts +2 -0
  90. package/dist/__tests__/parse-sort.test.d.ts.map +1 -0
  91. package/dist/__tests__/parse-sort.test.js +24 -0
  92. package/dist/__tests__/parse-sort.test.js.map +1 -0
  93. package/dist/__tests__/preferences.test.d.ts +2 -0
  94. package/dist/__tests__/preferences.test.d.ts.map +1 -0
  95. package/dist/__tests__/preferences.test.js +168 -0
  96. package/dist/__tests__/preferences.test.js.map +1 -0
  97. package/dist/__tests__/router.test.d.ts +2 -0
  98. package/dist/__tests__/router.test.d.ts.map +1 -0
  99. package/dist/__tests__/router.test.js +70 -0
  100. package/dist/__tests__/router.test.js.map +1 -0
  101. package/dist/__tests__/search.test.d.ts +2 -0
  102. package/dist/__tests__/search.test.d.ts.map +1 -0
  103. package/dist/__tests__/search.test.js +174 -0
  104. package/dist/__tests__/search.test.js.map +1 -0
  105. package/dist/__tests__/upload-validation.test.d.ts +2 -0
  106. package/dist/__tests__/upload-validation.test.d.ts.map +1 -0
  107. package/dist/__tests__/upload-validation.test.js +41 -0
  108. package/dist/__tests__/upload-validation.test.js.map +1 -0
  109. package/dist/__tests__/where.test.d.ts +2 -0
  110. package/dist/__tests__/where.test.d.ts.map +1 -0
  111. package/dist/__tests__/where.test.js +105 -0
  112. package/dist/__tests__/where.test.js.map +1 -0
  113. package/dist/__tests__/workflow.test.d.ts +2 -0
  114. package/dist/__tests__/workflow.test.d.ts.map +1 -0
  115. package/dist/__tests__/workflow.test.js +684 -0
  116. package/dist/__tests__/workflow.test.js.map +1 -0
  117. package/dist/app-config-C9VJ6rTv.d.cts +2092 -0
  118. package/dist/app-config-C9VJ6rTv.d.ts +2092 -0
  119. package/dist/app-config-CYV70eoF.d.cts +2100 -0
  120. package/dist/app-config-CYV70eoF.d.ts +2100 -0
  121. package/dist/app.d.ts +35 -0
  122. package/dist/app.d.ts.map +1 -0
  123. package/dist/app.js +164 -0
  124. package/dist/app.js.map +1 -0
  125. package/dist/auth/access.d.ts +5 -0
  126. package/dist/auth/access.d.ts.map +1 -0
  127. package/dist/auth/access.js +59 -0
  128. package/dist/auth/access.js.map +1 -0
  129. package/dist/auth/jexl.d.ts +13 -0
  130. package/dist/auth/jexl.d.ts.map +1 -0
  131. package/dist/auth/jexl.js +30 -0
  132. package/dist/auth/jexl.js.map +1 -0
  133. package/dist/auth/lockout.d.ts +11 -0
  134. package/dist/auth/lockout.d.ts.map +1 -0
  135. package/dist/auth/lockout.js +37 -0
  136. package/dist/auth/lockout.js.map +1 -0
  137. package/dist/auth/password.d.ts +10 -0
  138. package/dist/auth/password.d.ts.map +1 -0
  139. package/dist/auth/password.js +28 -0
  140. package/dist/auth/password.js.map +1 -0
  141. package/dist/auth/sessions.d.ts +39 -0
  142. package/dist/auth/sessions.d.ts.map +1 -0
  143. package/dist/auth/sessions.js +126 -0
  144. package/dist/auth/sessions.js.map +1 -0
  145. package/dist/auth/token.d.ts +23 -0
  146. package/dist/auth/token.d.ts.map +1 -0
  147. package/dist/auth/token.js +40 -0
  148. package/dist/auth/token.js.map +1 -0
  149. package/dist/chunk-23NM4LDU.js +2883 -0
  150. package/dist/chunk-2TKDCCIR.js +2622 -0
  151. package/dist/chunk-3SFITPX4.js +2628 -0
  152. package/dist/chunk-CQVTQ67D.js +2632 -0
  153. package/dist/chunk-ELHRRPKX.js +2863 -0
  154. package/dist/chunk-HRLSFTLR.js +3061 -0
  155. package/dist/chunk-QTIAQBNH.js +3097 -0
  156. package/dist/chunk-T2DGC4MD.js +3008 -0
  157. package/dist/chunk-TLU77TLE.js +3203 -0
  158. package/dist/chunk-YEBCT77K.js +3269 -0
  159. package/dist/chunk-YXEKNN5X.js +3085 -0
  160. package/dist/controllers/admin-auth.controller.d.ts +71 -0
  161. package/dist/controllers/admin-auth.controller.d.ts.map +1 -0
  162. package/dist/controllers/admin-auth.controller.js +450 -0
  163. package/dist/controllers/admin-auth.controller.js.map +1 -0
  164. package/dist/controllers/audit.controller.d.ts +42 -0
  165. package/dist/controllers/audit.controller.d.ts.map +1 -0
  166. package/dist/controllers/audit.controller.js +149 -0
  167. package/dist/controllers/audit.controller.js.map +1 -0
  168. package/dist/controllers/auth.controller.d.ts +143 -0
  169. package/dist/controllers/auth.controller.d.ts.map +1 -0
  170. package/dist/controllers/auth.controller.js +572 -0
  171. package/dist/controllers/auth.controller.js.map +1 -0
  172. package/dist/controllers/collection.controller.d.ts +170 -0
  173. package/dist/controllers/collection.controller.d.ts.map +1 -0
  174. package/dist/controllers/collection.controller.js +1033 -0
  175. package/dist/controllers/collection.controller.js.map +1 -0
  176. package/dist/controllers/global.controller.d.ts +20 -0
  177. package/dist/controllers/global.controller.d.ts.map +1 -0
  178. package/dist/controllers/global.controller.js +182 -0
  179. package/dist/controllers/global.controller.js.map +1 -0
  180. package/dist/controllers/media.controller.d.ts +39 -0
  181. package/dist/controllers/media.controller.d.ts.map +1 -0
  182. package/dist/controllers/media.controller.js +178 -0
  183. package/dist/controllers/media.controller.js.map +1 -0
  184. package/dist/controllers/preview.controller.d.ts +37 -0
  185. package/dist/controllers/preview.controller.d.ts.map +1 -0
  186. package/dist/controllers/preview.controller.js +48 -0
  187. package/dist/controllers/preview.controller.js.map +1 -0
  188. package/dist/index.cjs +707 -27
  189. package/dist/index.d.cts +77 -5
  190. package/dist/index.d.ts +77 -5
  191. package/dist/index.d.ts.map +1 -0
  192. package/dist/index.js +37 -1
  193. package/dist/index.js.map +1 -0
  194. package/dist/middleware/auth.d.ts +19 -0
  195. package/dist/middleware/auth.d.ts.map +1 -0
  196. package/dist/middleware/auth.js +157 -0
  197. package/dist/middleware/auth.js.map +1 -0
  198. package/dist/middleware/rate-limit.d.ts +9 -0
  199. package/dist/middleware/rate-limit.d.ts.map +1 -0
  200. package/dist/middleware/rate-limit.js +75 -0
  201. package/dist/middleware/rate-limit.js.map +1 -0
  202. package/dist/network.d.ts +6 -0
  203. package/dist/network.d.ts.map +1 -0
  204. package/dist/network.js +70 -0
  205. package/dist/network.js.map +1 -0
  206. package/dist/observability.d.ts +113 -0
  207. package/dist/observability.d.ts.map +1 -0
  208. package/dist/observability.js +497 -0
  209. package/dist/observability.js.map +1 -0
  210. package/dist/router.d.ts +8 -0
  211. package/dist/router.d.ts.map +1 -0
  212. package/dist/router.js +704 -0
  213. package/dist/router.js.map +1 -0
  214. package/dist/server.cjs +861 -54
  215. package/dist/server.d.cts +9 -1
  216. package/dist/server.d.ts +9 -1
  217. package/dist/server.d.ts.map +1 -0
  218. package/dist/server.js +189 -26
  219. package/dist/server.js.map +1 -0
  220. package/dist/services/audit.service.d.ts +23 -0
  221. package/dist/services/audit.service.d.ts.map +1 -0
  222. package/dist/services/audit.service.js +39 -0
  223. package/dist/services/audit.service.js.map +1 -0
  224. package/dist/services/defaults.service.d.ts +8 -0
  225. package/dist/services/defaults.service.d.ts.map +1 -0
  226. package/dist/services/defaults.service.js +55 -0
  227. package/dist/services/defaults.service.js.map +1 -0
  228. package/dist/services/email-template.d.ts +46 -0
  229. package/dist/services/email-template.d.ts.map +1 -0
  230. package/dist/services/email-template.js +88 -0
  231. package/dist/services/email-template.js.map +1 -0
  232. package/dist/services/email.service.d.ts +34 -0
  233. package/dist/services/email.service.d.ts.map +1 -0
  234. package/dist/services/email.service.js +129 -0
  235. package/dist/services/email.service.js.map +1 -0
  236. package/dist/services/media.service.d.ts +20 -0
  237. package/dist/services/media.service.d.ts.map +1 -0
  238. package/dist/services/media.service.js +49 -0
  239. package/dist/services/media.service.js.map +1 -0
  240. package/dist/services/population.service.d.ts +20 -0
  241. package/dist/services/population.service.d.ts.map +1 -0
  242. package/dist/services/population.service.js +224 -0
  243. package/dist/services/population.service.js.map +1 -0
  244. package/dist/types/access.d.ts +48 -0
  245. package/dist/types/access.d.ts.map +1 -0
  246. package/dist/types/access.js +2 -0
  247. package/dist/types/access.js.map +1 -0
  248. package/dist/types/adapters.d.ts +152 -0
  249. package/dist/types/adapters.d.ts.map +1 -0
  250. package/dist/types/adapters.js +2 -0
  251. package/dist/types/adapters.js.map +1 -0
  252. package/dist/types/admin-auth.d.ts +132 -0
  253. package/dist/types/admin-auth.d.ts.map +1 -0
  254. package/dist/types/admin-auth.js +2 -0
  255. package/dist/types/admin-auth.js.map +1 -0
  256. package/dist/types/admin.d.ts +86 -0
  257. package/dist/types/admin.d.ts.map +1 -0
  258. package/dist/types/admin.js +2 -0
  259. package/dist/types/admin.js.map +1 -0
  260. package/dist/types/app-config.d.ts +279 -0
  261. package/dist/types/app-config.d.ts.map +1 -0
  262. package/dist/types/app-config.js +2 -0
  263. package/dist/types/app-config.js.map +1 -0
  264. package/dist/types/documents.d.ts +65 -0
  265. package/dist/types/documents.d.ts.map +1 -0
  266. package/dist/types/documents.js +2 -0
  267. package/dist/types/documents.js.map +1 -0
  268. package/dist/types/hooks.d.ts +122 -0
  269. package/dist/types/hooks.d.ts.map +1 -0
  270. package/dist/types/hooks.js +2 -0
  271. package/dist/types/hooks.js.map +1 -0
  272. package/dist/types/index.d.ts +13 -0
  273. package/dist/types/index.d.ts.map +1 -0
  274. package/dist/types/index.js +13 -0
  275. package/dist/types/index.js.map +1 -0
  276. package/dist/types/request.d.ts +42 -0
  277. package/dist/types/request.d.ts.map +1 -0
  278. package/dist/types/request.js +2 -0
  279. package/dist/types/request.js.map +1 -0
  280. package/dist/types/schema-config.d.ts +443 -0
  281. package/dist/types/schema-config.d.ts.map +1 -0
  282. package/dist/types/schema-config.js +2 -0
  283. package/dist/types/schema-config.js.map +1 -0
  284. package/dist/types/schema-core.d.ts +628 -0
  285. package/dist/types/schema-core.d.ts.map +1 -0
  286. package/dist/types/schema-core.js +2 -0
  287. package/dist/types/schema-core.js.map +1 -0
  288. package/dist/types/schema-inference.d.ts +73 -0
  289. package/dist/types/schema-inference.d.ts.map +1 -0
  290. package/dist/types/schema-inference.js +2 -0
  291. package/dist/types/schema-inference.js.map +1 -0
  292. package/dist/types/workflows.d.ts +121 -0
  293. package/dist/types/workflows.d.ts.map +1 -0
  294. package/dist/types/workflows.js +7 -0
  295. package/dist/types/workflows.js.map +1 -0
  296. package/dist/utils/access-control.d.ts +35 -0
  297. package/dist/utils/access-control.d.ts.map +1 -0
  298. package/dist/utils/access-control.js +161 -0
  299. package/dist/utils/access-control.js.map +1 -0
  300. package/dist/utils/admin-auth.d.ts +5 -0
  301. package/dist/utils/admin-auth.d.ts.map +1 -0
  302. package/dist/utils/admin-auth.js +39 -0
  303. package/dist/utils/admin-auth.js.map +1 -0
  304. package/dist/utils/block-references.d.ts +10 -0
  305. package/dist/utils/block-references.d.ts.map +1 -0
  306. package/dist/utils/block-references.js +100 -0
  307. package/dist/utils/block-references.js.map +1 -0
  308. package/dist/utils/collection-search.d.ts +11 -0
  309. package/dist/utils/collection-search.d.ts.map +1 -0
  310. package/dist/utils/collection-search.js +204 -0
  311. package/dist/utils/collection-search.js.map +1 -0
  312. package/dist/utils/config.d.ts +8 -0
  313. package/dist/utils/config.d.ts.map +1 -0
  314. package/dist/utils/config.js +336 -0
  315. package/dist/utils/config.js.map +1 -0
  316. package/dist/utils/hooks.d.ts +41 -0
  317. package/dist/utils/hooks.d.ts.map +1 -0
  318. package/dist/utils/hooks.js +177 -0
  319. package/dist/utils/hooks.js.map +1 -0
  320. package/dist/utils/openapi.d.ts +6 -0
  321. package/dist/utils/openapi.d.ts.map +1 -0
  322. package/dist/utils/openapi.js +981 -0
  323. package/dist/utils/openapi.js.map +1 -0
  324. package/dist/utils/parse-sort.d.ts +43 -0
  325. package/dist/utils/parse-sort.d.ts.map +1 -0
  326. package/dist/utils/parse-sort.js +70 -0
  327. package/dist/utils/parse-sort.js.map +1 -0
  328. package/dist/utils/parse-where.d.ts +69 -0
  329. package/dist/utils/parse-where.d.ts.map +1 -0
  330. package/dist/utils/parse-where.js +202 -0
  331. package/dist/utils/parse-where.js.map +1 -0
  332. package/dist/utils/readonly-db.d.ts +9 -0
  333. package/dist/utils/readonly-db.d.ts.map +1 -0
  334. package/dist/utils/readonly-db.js +21 -0
  335. package/dist/utils/readonly-db.js.map +1 -0
  336. package/dist/utils/swagger.d.ts +11 -0
  337. package/dist/utils/swagger.d.ts.map +1 -0
  338. package/dist/utils/swagger.js +62 -0
  339. package/dist/utils/swagger.js.map +1 -0
  340. package/dist/utils/upload-validation.d.ts +23 -0
  341. package/dist/utils/upload-validation.d.ts.map +1 -0
  342. package/dist/utils/upload-validation.js +46 -0
  343. package/dist/utils/upload-validation.js.map +1 -0
  344. package/dist/utils/where-sanitizer.d.ts +10 -0
  345. package/dist/utils/where-sanitizer.d.ts.map +1 -0
  346. package/dist/utils/where-sanitizer.js +67 -0
  347. package/dist/utils/where-sanitizer.js.map +1 -0
  348. package/dist/workflows.d.ts +86 -0
  349. package/dist/workflows.d.ts.map +1 -0
  350. package/dist/workflows.js +405 -0
  351. package/dist/workflows.js.map +1 -0
  352. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../src/utils/openapi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import type { Field } from '../types/schema-core.js';
2
+ export type SortDirection = 'ASC' | 'DESC';
3
+ export interface SortClause {
4
+ field: string;
5
+ direction: SortDirection;
6
+ }
7
+ export declare function parseSort(sort: string | undefined, fallback?: SortClause): SortClause[];
8
+ /**
9
+ * Collects the names of top-level fields declared as numbers. SQL adapters use
10
+ * this to decide which JSON-extracted sort fields need a numeric cast.
11
+ */
12
+ export declare function numericFieldNames(fields?: Field[]): Set<string>;
13
+ /**
14
+ * Dialect hooks for turning a parsed sort into a SQL `ORDER BY` body.
15
+ * Each SQL adapter supplies its own quoting, JSON extraction, and numeric cast.
16
+ */
17
+ export interface SqlSortDialect {
18
+ /** Quote a real column identifier (e.g. `"created_at"` or \`created_at\`). */
19
+ quoteIdent: (identifier: string) => string;
20
+ /** SQL expression that reads a top-level field out of the JSON `data` column. */
21
+ jsonExtract: (field: string) => string;
22
+ /**
23
+ * Wrap a JSON-extracted expression so it sorts numerically instead of
24
+ * lexicographically. Adapters whose JSON extraction already preserves number
25
+ * types (SQLite) can return the expression unchanged.
26
+ */
27
+ castNumeric: (expr: string) => string;
28
+ }
29
+ /**
30
+ * Builds the `ORDER BY` body shared by the SQL adapters.
31
+ *
32
+ * Real (promoted) columns and the `created_at`/`updated_at` timestamps are
33
+ * ordered by their typed column directly. Everything else is read out of the
34
+ * JSON `data` column — and when a field is declared as a `number`, its extracted
35
+ * value is cast so it orders by magnitude rather than as text ("9" < "10").
36
+ *
37
+ * @param sort The raw sort string (e.g. `"-createdAt"`, `"priority,-views"`).
38
+ * @param existingColumns Real column names present on the table.
39
+ * @param numericFields Names of top-level fields declared with `type: 'number'`.
40
+ * @param dialect Adapter-specific quoting, extraction, and numeric cast.
41
+ */
42
+ export declare function buildSqlOrderBy(sort: string | undefined, existingColumns: string[], numericFields: Set<string>, dialect: SqlSortDialect): string;
43
+ //# sourceMappingURL=parse-sort.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-sort.d.ts","sourceRoot":"","sources":["../../src/utils/parse-sort.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAErD,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,CAAC;AAE3C,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,aAAa,CAAC;CAC1B;AAID,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,GAAE,UAAsD,GAAG,UAAU,EAAE,CAqBlI;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAQ/D;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,8EAA8E;IAC9E,UAAU,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,iFAAiF;IACjF,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC;IACvC;;;;OAIG;IACH,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CACvC;AASD;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,eAAe,EAAE,MAAM,EAAE,EACzB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,EAC1B,OAAO,EAAE,cAAc,GACtB,MAAM,CAeR"}
@@ -0,0 +1,70 @@
1
+ const SORT_FIELD_PATTERN = /^([A-Za-z_][A-Za-z0-9_]*)(?:\s+(ASC|DESC))?$/i;
2
+ export function parseSort(sort, fallback = { field: 'createdAt', direction: 'DESC' }) {
3
+ if (!sort)
4
+ return [fallback];
5
+ const clauses = sort
6
+ .split(',')
7
+ .map((part) => part.trim())
8
+ .filter(Boolean)
9
+ .map((part) => {
10
+ const descByPrefix = part.startsWith('-');
11
+ const withoutPrefix = descByPrefix ? part.slice(1).trim() : part;
12
+ const match = withoutPrefix.match(SORT_FIELD_PATTERN);
13
+ if (!match)
14
+ return null;
15
+ return {
16
+ field: match[1],
17
+ direction: descByPrefix || match[2]?.toUpperCase() === 'DESC' ? 'DESC' : 'ASC',
18
+ };
19
+ })
20
+ .filter((clause) => Boolean(clause));
21
+ return clauses.length > 0 ? clauses : [fallback];
22
+ }
23
+ /**
24
+ * Collects the names of top-level fields declared as numbers. SQL adapters use
25
+ * this to decide which JSON-extracted sort fields need a numeric cast.
26
+ */
27
+ export function numericFieldNames(fields) {
28
+ const names = new Set();
29
+ for (const field of fields ?? []) {
30
+ if (field.type === 'number' && 'name' in field && field.name) {
31
+ names.add(field.name);
32
+ }
33
+ }
34
+ return names;
35
+ }
36
+ const TIMESTAMP_COLUMNS = {
37
+ createdat: 'created_at',
38
+ created_at: 'created_at',
39
+ updatedat: 'updated_at',
40
+ updated_at: 'updated_at',
41
+ };
42
+ /**
43
+ * Builds the `ORDER BY` body shared by the SQL adapters.
44
+ *
45
+ * Real (promoted) columns and the `created_at`/`updated_at` timestamps are
46
+ * ordered by their typed column directly. Everything else is read out of the
47
+ * JSON `data` column — and when a field is declared as a `number`, its extracted
48
+ * value is cast so it orders by magnitude rather than as text ("9" < "10").
49
+ *
50
+ * @param sort The raw sort string (e.g. `"-createdAt"`, `"priority,-views"`).
51
+ * @param existingColumns Real column names present on the table.
52
+ * @param numericFields Names of top-level fields declared with `type: 'number'`.
53
+ * @param dialect Adapter-specific quoting, extraction, and numeric cast.
54
+ */
55
+ export function buildSqlOrderBy(sort, existingColumns, numericFields, dialect) {
56
+ return parseSort(sort)
57
+ .map(({ field, direction }) => {
58
+ const timestamp = TIMESTAMP_COLUMNS[field.toLowerCase()];
59
+ if (timestamp)
60
+ return `${dialect.quoteIdent(timestamp)} ${direction}`;
61
+ if (existingColumns.includes(field) && field !== 'id' && field !== 'data') {
62
+ return `${dialect.quoteIdent(field)} ${direction}`;
63
+ }
64
+ const extracted = dialect.jsonExtract(field);
65
+ const expr = numericFields.has(field) ? dialect.castNumeric(extracted) : extracted;
66
+ return `${expr} ${direction}`;
67
+ })
68
+ .join(', ');
69
+ }
70
+ //# sourceMappingURL=parse-sort.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-sort.js","sourceRoot":"","sources":["../../src/utils/parse-sort.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Dyrected Where Clause DSL — shared query language across all database adapters.
3
+ *
4
+ * Adapters translate this DSL into their native format:
5
+ * - SQL adapters (SQLite, Postgres, MySQL): use parseSqlWhere()
6
+ * - MongoDB adapter: use parseMongoWhere()
7
+ * - Future adapters: implement their own translator against WhereClause
8
+ *
9
+ * Exhaustive operator handling is enforced at compile time via `assertNever`,
10
+ * so adding a new operator without handling it will produce a TypeScript error
11
+ * in every adapter translator.
12
+ */
13
+ export type WhereOperatorName = 'equals' | 'not_equals' | 'in' | 'not_in' | 'gt' | 'gte' | 'lt' | 'lte' | 'contains' | 'starts_with' | 'exists';
14
+ export type WhereOperator = {
15
+ equals: any;
16
+ } | {
17
+ not_equals: any;
18
+ } | {
19
+ in: any[];
20
+ } | {
21
+ not_in: any[];
22
+ } | {
23
+ gt: any;
24
+ } | {
25
+ gte: any;
26
+ } | {
27
+ lt: any;
28
+ } | {
29
+ lte: any;
30
+ } | {
31
+ contains: string;
32
+ } | {
33
+ starts_with: string;
34
+ } | {
35
+ exists: boolean;
36
+ };
37
+ /** Top-level where clause. Fields map to operator objects or shorthand scalar values. */
38
+ export type WhereClause = {
39
+ [field: string]: WhereOperator | any;
40
+ OR?: WhereClause[];
41
+ AND?: WhereClause[];
42
+ };
43
+ export interface SqlWhereResult {
44
+ sql: string;
45
+ params: any[];
46
+ }
47
+ /**
48
+ * Translates a WhereClause into a parameterized SQL WHERE fragment.
49
+ *
50
+ * @param where The Dyrected where DSL object
51
+ * @param getJsonField Returns the SQL expression for a JSON-stored field (dialect-specific):
52
+ * SQLite: (f) => `json_extract(data, '$.${f}')`
53
+ * Postgres: (f) => `data->>'${f}'`
54
+ * MySQL: (f) => `JSON_UNQUOTE(JSON_EXTRACT(data, '$.${f}'))`
55
+ * @param placeholder '?' for SQLite/MySQL, 'pg' for auto-incrementing Postgres $1/$2/…
56
+ */
57
+ export declare function parseSqlWhere(where: WhereClause, getJsonField: (field: string) => string, placeholder?: '?' | 'pg',
58
+ /**
59
+ * SQL keyword used for `contains`/`starts_with`. Postgres `LIKE` is
60
+ * case-sensitive, so the Postgres adapter passes `'ILIKE'` to keep substring
61
+ * matching case-insensitive like SQLite and MySQL.
62
+ */
63
+ likeOperator?: 'LIKE' | 'ILIKE'): SqlWhereResult;
64
+ /**
65
+ * Translates a WhereClause into a MongoDB filter object.
66
+ * Handles nested OR/AND via $or/$and, and all operators via $eq/$in/$gt etc.
67
+ */
68
+ export declare function parseMongoWhere(where: WhereClause): Record<string, any>;
69
+ //# sourceMappingURL=parse-where.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-where.d.ts","sourceRoot":"","sources":["../../src/utils/parse-where.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,MAAM,MAAM,iBAAiB,GACzB,QAAQ,GACR,YAAY,GACZ,IAAI,GACJ,QAAQ,GACR,IAAI,GACJ,KAAK,GACL,IAAI,GACJ,KAAK,GACL,UAAU,GACV,aAAa,GACb,QAAQ,CAAC;AAEb,MAAM,MAAM,aAAa,GACrB;IAAE,MAAM,EAAE,GAAG,CAAA;CAAE,GACf;IAAE,UAAU,EAAE,GAAG,CAAA;CAAE,GACnB;IAAE,EAAE,EAAE,GAAG,EAAE,CAAA;CAAE,GACb;IAAE,MAAM,EAAE,GAAG,EAAE,CAAA;CAAE,GACjB;IAAE,EAAE,EAAE,GAAG,CAAA;CAAE,GACX;IAAE,GAAG,EAAE,GAAG,CAAA;CAAE,GACZ;IAAE,EAAE,EAAE,GAAG,CAAA;CAAE,GACX;IAAE,GAAG,EAAE,GAAG,CAAA;CAAE,GACZ;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GACpB;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,GACvB;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;AAExB,yFAAyF;AACzF,MAAM,MAAM,WAAW,GAAG;IACxB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,GAAG,CAAC;IACrC,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC;IACnB,GAAG,CAAC,EAAE,WAAW,EAAE,CAAC;CACrB,CAAC;AAUF,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,GAAG,EAAE,CAAC;CACf;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,WAAW,EAClB,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,EACvC,WAAW,GAAE,GAAG,GAAG,IAAU;AAC7B;;;;GAIG;AACH,YAAY,GAAE,MAAM,GAAG,OAAgB,GACtC,cAAc,CA6GhB;AAKD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAkFvE"}
@@ -0,0 +1,202 @@
1
+ /**
2
+ * Dyrected Where Clause DSL — shared query language across all database adapters.
3
+ *
4
+ * Adapters translate this DSL into their native format:
5
+ * - SQL adapters (SQLite, Postgres, MySQL): use parseSqlWhere()
6
+ * - MongoDB adapter: use parseMongoWhere()
7
+ * - Future adapters: implement their own translator against WhereClause
8
+ *
9
+ * Exhaustive operator handling is enforced at compile time via `assertNever`,
10
+ * so adding a new operator without handling it will produce a TypeScript error
11
+ * in every adapter translator.
12
+ */
13
+ /** Compile-time exhaustiveness guard. Any unhandled operator becomes a type error. */
14
+ function assertNever(op, context) {
15
+ throw new Error(`[dyrected/core] Unhandled where operator "${op}" in ${context}`);
16
+ }
17
+ /**
18
+ * Translates a WhereClause into a parameterized SQL WHERE fragment.
19
+ *
20
+ * @param where The Dyrected where DSL object
21
+ * @param getJsonField Returns the SQL expression for a JSON-stored field (dialect-specific):
22
+ * SQLite: (f) => `json_extract(data, '$.${f}')`
23
+ * Postgres: (f) => `data->>'${f}'`
24
+ * MySQL: (f) => `JSON_UNQUOTE(JSON_EXTRACT(data, '$.${f}'))`
25
+ * @param placeholder '?' for SQLite/MySQL, 'pg' for auto-incrementing Postgres $1/$2/…
26
+ */
27
+ export function parseSqlWhere(where, getJsonField, placeholder = '?',
28
+ /**
29
+ * SQL keyword used for `contains`/`starts_with`. Postgres `LIKE` is
30
+ * case-sensitive, so the Postgres adapter passes `'ILIKE'` to keep substring
31
+ * matching case-insensitive like SQLite and MySQL.
32
+ */
33
+ likeOperator = 'LIKE') {
34
+ const params = [];
35
+ let pgIndex = 1;
36
+ function next() {
37
+ return placeholder === 'pg' ? `$${pgIndex++}` : '?';
38
+ }
39
+ function col(field) {
40
+ return field === 'id' ? 'id' : getJsonField(field);
41
+ }
42
+ function buildOperator(field, value) {
43
+ const c = col(field);
44
+ // Shorthand scalar: { slug: 'hello' } → treat as equals
45
+ if (typeof value !== 'object' || value === null || Array.isArray(value)) {
46
+ params.push(value);
47
+ return `${c} = ${next()}`;
48
+ }
49
+ const entries = Object.entries(value);
50
+ if (entries.length !== 1) {
51
+ // Multiple keys inside an operator object — treat as AND of conditions on same field
52
+ return entries
53
+ .map(([op, operand]) => buildSingleOp(c, op, operand))
54
+ .join(' AND ');
55
+ }
56
+ const [op, operand] = entries[0];
57
+ return buildSingleOp(c, op, operand);
58
+ }
59
+ function buildSingleOp(c, op, operand) {
60
+ switch (op) {
61
+ case 'equals':
62
+ params.push(typeof operand === 'boolean' ? String(operand) : operand);
63
+ return `${c} = ${next()}`;
64
+ case 'not_equals':
65
+ params.push(typeof operand === 'boolean' ? String(operand) : operand);
66
+ return `${c} != ${next()}`;
67
+ case 'in': {
68
+ const vals = Array.isArray(operand) ? operand : [operand];
69
+ if (vals.length === 0)
70
+ return '1=0'; // IN () is invalid SQL
71
+ const placeholders = vals.map((v) => { params.push(v); return next(); });
72
+ return `${c} IN (${placeholders.join(', ')})`;
73
+ }
74
+ case 'not_in': {
75
+ const vals = Array.isArray(operand) ? operand : [operand];
76
+ if (vals.length === 0)
77
+ return '1=1';
78
+ const placeholders = vals.map((v) => { params.push(v); return next(); });
79
+ return `${c} NOT IN (${placeholders.join(', ')})`;
80
+ }
81
+ case 'gt':
82
+ params.push(operand);
83
+ return `${c} > ${next()}`;
84
+ case 'gte':
85
+ params.push(operand);
86
+ return `${c} >= ${next()}`;
87
+ case 'lt':
88
+ params.push(operand);
89
+ return `${c} < ${next()}`;
90
+ case 'lte':
91
+ params.push(operand);
92
+ return `${c} <= ${next()}`;
93
+ case 'contains':
94
+ params.push(`%${operand}%`);
95
+ return `${c} ${likeOperator} ${next()}`;
96
+ case 'starts_with':
97
+ params.push(`${operand}%`);
98
+ return `${c} ${likeOperator} ${next()}`;
99
+ case 'exists':
100
+ return operand ? `${c} IS NOT NULL` : `${c} IS NULL`;
101
+ default:
102
+ // If you hit this, you added an operator to WhereOperatorName but forgot to handle it here.
103
+ return assertNever(op, 'parseSqlWhere');
104
+ }
105
+ }
106
+ function buildClause(w) {
107
+ const parts = [];
108
+ for (const [field, value] of Object.entries(w)) {
109
+ const upperField = field.toUpperCase();
110
+ if (upperField === 'OR' && Array.isArray(value)) {
111
+ const sub = value.map((v) => `(${buildClause(v)})`).join(' OR ');
112
+ parts.push(`(${sub})`);
113
+ }
114
+ else if (upperField === 'AND' && Array.isArray(value)) {
115
+ const sub = value.map((v) => `(${buildClause(v)})`).join(' AND ');
116
+ parts.push(`(${sub})`);
117
+ }
118
+ else {
119
+ parts.push(buildOperator(field, value));
120
+ }
121
+ }
122
+ return parts.length ? parts.join(' AND ') : '1=1';
123
+ }
124
+ const sql = buildClause(where);
125
+ return { sql, params };
126
+ }
127
+ // ─── MongoDB Translator ──────────────────────────────────────────────────────
128
+ // Used by: @dyrected/db-mongodb
129
+ /**
130
+ * Translates a WhereClause into a MongoDB filter object.
131
+ * Handles nested OR/AND via $or/$and, and all operators via $eq/$in/$gt etc.
132
+ */
133
+ export function parseMongoWhere(where) {
134
+ function buildOperator(field, value) {
135
+ // Shorthand scalar
136
+ if (typeof value !== 'object' || value === null || Array.isArray(value)) {
137
+ return { [field]: { $eq: value } };
138
+ }
139
+ const entries = Object.entries(value);
140
+ if (entries.length !== 1) {
141
+ // Multiple operators on same field — merge into one field condition
142
+ const merged = {};
143
+ for (const [op, operand] of entries) {
144
+ Object.assign(merged, buildSingleOp(field, op, operand)[field]);
145
+ }
146
+ return { [field]: merged };
147
+ }
148
+ const [op, operand] = entries[0];
149
+ return buildSingleOp(field, op, operand);
150
+ }
151
+ function buildSingleOp(field, op, operand) {
152
+ switch (op) {
153
+ case 'equals':
154
+ return { [field]: { $eq: operand } };
155
+ case 'not_equals':
156
+ return { [field]: { $ne: operand } };
157
+ case 'in':
158
+ return { [field]: { $in: Array.isArray(operand) ? operand : [operand] } };
159
+ case 'not_in':
160
+ return { [field]: { $nin: Array.isArray(operand) ? operand : [operand] } };
161
+ case 'gt':
162
+ return { [field]: { $gt: operand } };
163
+ case 'gte':
164
+ return { [field]: { $gte: operand } };
165
+ case 'lt':
166
+ return { [field]: { $lt: operand } };
167
+ case 'lte':
168
+ return { [field]: { $lte: operand } };
169
+ case 'contains':
170
+ return { [field]: { $regex: operand, $options: 'i' } };
171
+ case 'starts_with':
172
+ return { [field]: { $regex: `^${operand}`, $options: 'i' } };
173
+ case 'exists':
174
+ return { [field]: { $exists: operand } };
175
+ default:
176
+ // Compile-time exhaustiveness: adding an operator without handling it here = build error.
177
+ return assertNever(op, 'parseMongoWhere');
178
+ }
179
+ }
180
+ function buildClause(w) {
181
+ const conditions = [];
182
+ for (const [field, value] of Object.entries(w)) {
183
+ const upperField = field.toUpperCase();
184
+ if (upperField === 'OR' && Array.isArray(value)) {
185
+ conditions.push({ $or: value.map(buildClause) });
186
+ }
187
+ else if (upperField === 'AND' && Array.isArray(value)) {
188
+ conditions.push({ $and: value.map(buildClause) });
189
+ }
190
+ else {
191
+ conditions.push(buildOperator(field, value));
192
+ }
193
+ }
194
+ if (conditions.length === 0)
195
+ return {};
196
+ if (conditions.length === 1)
197
+ return conditions[0];
198
+ return { $and: conditions };
199
+ }
200
+ return buildClause(where);
201
+ }
202
+ //# sourceMappingURL=parse-where.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-where.js","sourceRoot":"","sources":["../../src/utils/parse-where.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { DatabaseAdapter, ReadonlyDatabaseAdapter } from "../types/index.js";
2
+ /**
3
+ * Wrap a DatabaseAdapter so that write operations throw at runtime.
4
+ *
5
+ * Passed to `beforeChange`, `beforeDelete`, `beforeRead`, `afterRead`,
6
+ * and field-level hooks — phases where only reads are permitted.
7
+ */
8
+ export declare function createReadonlyDb(db: DatabaseAdapter): ReadonlyDatabaseAdapter;
9
+ //# sourceMappingURL=readonly-db.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readonly-db.d.ts","sourceRoot":"","sources":["../../src/utils/readonly-db.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAIlF;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,eAAe,GAAG,uBAAuB,CAc7E"}
@@ -0,0 +1,21 @@
1
+ const WRITE_METHODS = ["create", "update", "delete", "updateGlobal", "execute"];
2
+ /**
3
+ * Wrap a DatabaseAdapter so that write operations throw at runtime.
4
+ *
5
+ * Passed to `beforeChange`, `beforeDelete`, `beforeRead`, `afterRead`,
6
+ * and field-level hooks — phases where only reads are permitted.
7
+ */
8
+ export function createReadonlyDb(db) {
9
+ return new Proxy(db, {
10
+ get(target, prop) {
11
+ if (WRITE_METHODS.includes(prop)) {
12
+ return () => {
13
+ throw new Error(`[dyrected] Write operation "${String(prop)}" is not allowed in this hook phase. ` +
14
+ `Use afterChange/afterDelete hooks for write operations.`);
15
+ };
16
+ }
17
+ return Reflect.get(target, prop);
18
+ },
19
+ });
20
+ }
21
+ //# sourceMappingURL=readonly-db.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readonly-db.js","sourceRoot":"","sources":["../../src/utils/readonly-db.ts"],"names":[],"mappings":"AAEA,MAAM,aAAa,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,SAAS,CAAC,CAAC;AAEhF;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAAmB;IAClD,OAAO,IAAI,KAAK,CAAC,EAAE,EAAE;QACnB,GAAG,CAAC,MAAM,EAAE,IAAI;YACd,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAc,CAAC,EAAE,CAAC;gBAC3C,OAAO,GAAG,EAAE;oBACV,MAAM,IAAI,KAAK,CACb,+BAA+B,MAAM,CAAC,IAAI,CAAC,uCAAuC;wBAClF,yDAAyD,CAC1D,CAAC;gBACJ,CAAC,CAAC;YACJ,CAAC;YACD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Returns a standalone HTML string for Swagger UI loading from a CDN.
3
+ *
4
+ * @param specUrl - Explicit URL to the OpenAPI JSON. When omitted, the spec is
5
+ * resolved **at runtime, relative to the docs page** (`/api/docs` →
6
+ * `/api/openapi.json`). This preserves any mount prefix the app is served
7
+ * under (e.g. a Nuxt `apiBase: "/dyrected"` serving `/dyrected/api/docs`),
8
+ * which an absolute `/api/openapi.json` would drop.
9
+ */
10
+ export declare function getSwaggerHtml(specUrl?: string): string;
11
+ //# sourceMappingURL=swagger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swagger.d.ts","sourceRoot":"","sources":["../../src/utils/swagger.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,UAmD9C"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Returns a standalone HTML string for Swagger UI loading from a CDN.
3
+ *
4
+ * @param specUrl - Explicit URL to the OpenAPI JSON. When omitted, the spec is
5
+ * resolved **at runtime, relative to the docs page** (`/api/docs` →
6
+ * `/api/openapi.json`). This preserves any mount prefix the app is served
7
+ * under (e.g. a Nuxt `apiBase: "/dyrected"` serving `/dyrected/api/docs`),
8
+ * which an absolute `/api/openapi.json` would drop.
9
+ */
10
+ export function getSwaggerHtml(specUrl) {
11
+ return `
12
+ <!DOCTYPE html>
13
+ <html lang="en">
14
+ <head>
15
+ <meta charset="utf-8" />
16
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
17
+ <meta name="description" content="SwaggerUI" />
18
+ <title>Dyrected API Documentation</title>
19
+ <link rel="stylesheet" href="https://unpkg.com/swagger-ui-dist@5.11.0/swagger-ui.css" />
20
+ </head>
21
+ <body>
22
+ <div id="swagger-ui"></div>
23
+ <script src="https://unpkg.com/swagger-ui-dist@5.11.0/swagger-ui-bundle.js" charset="UTF-8"></script>
24
+ <script src="https://unpkg.com/swagger-ui-dist@5.11.0/swagger-ui-standalone-preset.js" charset="UTF-8"></script>
25
+ <script>
26
+ window.onload = () => {
27
+ // Forward the apikey query param when loading the spec and making API calls
28
+ const params = new URLSearchParams(window.location.search);
29
+ const apiKey = params.get('apikey');
30
+ // Resolve the spec relative to this docs page so any mount prefix
31
+ // (e.g. "/dyrected/api/docs") is preserved. Falls back to an explicit URL
32
+ // when one is supplied by the caller.
33
+ const explicitSpecUrl = ${JSON.stringify(specUrl ?? '')};
34
+ const specUrl = explicitSpecUrl || (window.location.pathname.replace(/\\/docs\\/?$/, '') + '/openapi.json');
35
+ const specUrlWithKey = apiKey ? specUrl + '?apikey=' + encodeURIComponent(apiKey) : specUrl;
36
+
37
+ window.ui = SwaggerUIBundle({
38
+ url: specUrlWithKey,
39
+ dom_id: '#swagger-ui',
40
+ presets: [
41
+ SwaggerUIBundle.presets.apis,
42
+ SwaggerUIStandalonePreset
43
+ ],
44
+ layout: "BaseLayout",
45
+ deepLinking: true,
46
+ showExtensions: true,
47
+ showCommonExtensions: true,
48
+ // Inject x-api-key header on every request made from the Swagger UI
49
+ requestInterceptor: (request) => {
50
+ if (apiKey) {
51
+ request.headers['x-api-key'] = apiKey;
52
+ }
53
+ return request;
54
+ }
55
+ });
56
+ };
57
+ </script>
58
+ </body>
59
+ </html>
60
+ `;
61
+ }
62
+ //# sourceMappingURL=swagger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swagger.js","sourceRoot":"","sources":["../../src/utils/swagger.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,OAAO;;;;;;;;;;;;;;;;;;;;;;8BAsBqB,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BxD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { UploadConfig } from "../types/schema-core.js";
2
+ /**
3
+ * Returns true if `mimeType` matches any of the allowed patterns.
4
+ * Patterns support an any-type wildcard, a `type/*` wildcard (e.g. `image/*`),
5
+ * or an exact `type/subtype` match. Matching is case-insensitive.
6
+ */
7
+ export declare function isMimeAllowed(mimeType: string, allowed: string[]): boolean;
8
+ export interface UploadValidationError {
9
+ /** HTTP status to return: 415 Unsupported Media Type or 413 Payload Too Large. */
10
+ status: 413 | 415;
11
+ message: string;
12
+ }
13
+ /**
14
+ * Validates an uploaded file against a collection's {@link UploadConfig}.
15
+ * Enforces `allowedMimeTypes` and `maxFileSize` when they are configured.
16
+ * Returns `null` when the upload is allowed (or when no config restricts it).
17
+ */
18
+ export declare function validateUpload(file: {
19
+ type?: string;
20
+ size?: number;
21
+ name?: string;
22
+ }, config: UploadConfig | undefined): UploadValidationError | null;
23
+ //# sourceMappingURL=upload-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload-validation.d.ts","sourceRoot":"","sources":["../../src/utils/upload-validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAE5D;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAS1E;AAED,MAAM,WAAW,qBAAqB;IACpC,kFAAkF;IAClF,MAAM,EAAE,GAAG,GAAG,GAAG,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,EACrD,MAAM,EAAE,YAAY,GAAG,SAAS,GAC/B,qBAAqB,GAAG,IAAI,CA0B9B"}