@dyrected/core 2.5.51 → 2.5.53

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 (167) hide show
  1. package/dist/__tests__/admin-auth.test.d.ts +2 -0
  2. package/dist/__tests__/admin-auth.test.d.ts.map +1 -0
  3. package/dist/__tests__/admin-auth.test.js +440 -0
  4. package/dist/__tests__/admin-auth.test.js.map +1 -0
  5. package/dist/__tests__/config.test.js +57 -0
  6. package/dist/__tests__/config.test.js.map +1 -1
  7. package/dist/__tests__/email.service.test.d.ts +2 -0
  8. package/dist/__tests__/email.service.test.d.ts.map +1 -0
  9. package/dist/__tests__/email.service.test.js +46 -0
  10. package/dist/__tests__/email.service.test.js.map +1 -0
  11. package/dist/__tests__/fixtures/editorial-workflow.d.ts +9 -0
  12. package/dist/__tests__/fixtures/editorial-workflow.d.ts.map +1 -0
  13. package/dist/__tests__/fixtures/editorial-workflow.js +12 -0
  14. package/dist/__tests__/fixtures/editorial-workflow.js.map +1 -0
  15. package/dist/__tests__/mocks.d.ts +6 -0
  16. package/dist/__tests__/mocks.d.ts.map +1 -1
  17. package/dist/__tests__/mocks.js +8 -0
  18. package/dist/__tests__/mocks.js.map +1 -1
  19. package/dist/__tests__/openapi.test.d.ts +2 -0
  20. package/dist/__tests__/openapi.test.d.ts.map +1 -0
  21. package/dist/__tests__/openapi.test.js +95 -0
  22. package/dist/__tests__/openapi.test.js.map +1 -0
  23. package/dist/__tests__/parse-sort.test.d.ts +2 -0
  24. package/dist/__tests__/parse-sort.test.d.ts.map +1 -0
  25. package/dist/__tests__/parse-sort.test.js +24 -0
  26. package/dist/__tests__/parse-sort.test.js.map +1 -0
  27. package/dist/__tests__/preferences.test.d.ts +2 -0
  28. package/dist/__tests__/preferences.test.d.ts.map +1 -0
  29. package/dist/__tests__/preferences.test.js +168 -0
  30. package/dist/__tests__/preferences.test.js.map +1 -0
  31. package/dist/__tests__/router.test.js +4 -0
  32. package/dist/__tests__/router.test.js.map +1 -1
  33. package/dist/__tests__/where.test.js +9 -1
  34. package/dist/__tests__/where.test.js.map +1 -1
  35. package/dist/__tests__/workflow.test.d.ts +2 -0
  36. package/dist/__tests__/workflow.test.d.ts.map +1 -0
  37. package/dist/__tests__/workflow.test.js +497 -0
  38. package/dist/__tests__/workflow.test.js.map +1 -0
  39. package/dist/app-config-DLK6bCaP.d.cts +1390 -0
  40. package/dist/app-config-DLK6bCaP.d.ts +1390 -0
  41. package/dist/app-config-DqCipvSI.d.cts +1411 -0
  42. package/dist/app-config-DqCipvSI.d.ts +1411 -0
  43. package/dist/app-config-oOarB6Fw.d.cts +1411 -0
  44. package/dist/app-config-oOarB6Fw.d.ts +1411 -0
  45. package/dist/auth/token.d.ts +2 -0
  46. package/dist/auth/token.d.ts.map +1 -1
  47. package/dist/auth/token.js.map +1 -1
  48. package/dist/controllers/admin-auth.controller.d.ts +68 -0
  49. package/dist/controllers/admin-auth.controller.d.ts.map +1 -0
  50. package/dist/controllers/admin-auth.controller.js +414 -0
  51. package/dist/controllers/admin-auth.controller.js.map +1 -0
  52. package/dist/controllers/collection.controller.d.ts +69 -0
  53. package/dist/controllers/collection.controller.d.ts.map +1 -1
  54. package/dist/controllers/collection.controller.js +232 -7
  55. package/dist/controllers/collection.controller.js.map +1 -1
  56. package/dist/controllers/global.controller.js +19 -3
  57. package/dist/controllers/global.controller.js.map +1 -1
  58. package/dist/controllers/media.controller.d.ts +2 -0
  59. package/dist/controllers/media.controller.d.ts.map +1 -1
  60. package/dist/controllers/media.controller.js +13 -6
  61. package/dist/controllers/media.controller.js.map +1 -1
  62. package/dist/index.d.cts +2 -2
  63. package/dist/index.d.ts +2 -2
  64. package/dist/index.d.ts.map +1 -1
  65. package/dist/index.js.map +1 -1
  66. package/dist/router.d.ts.map +1 -1
  67. package/dist/router.js +168 -6
  68. package/dist/router.js.map +1 -1
  69. package/dist/server.cjs +54 -8
  70. package/dist/server.d.cts +7 -1
  71. package/dist/server.d.ts +7 -1
  72. package/dist/server.js +54 -8
  73. package/dist/services/email-template.d.ts +46 -0
  74. package/dist/services/email-template.d.ts.map +1 -0
  75. package/dist/services/email-template.js +88 -0
  76. package/dist/services/email-template.js.map +1 -0
  77. package/dist/services/email.service.d.ts.map +1 -1
  78. package/dist/services/email.service.js +25 -148
  79. package/dist/services/email.service.js.map +1 -1
  80. package/dist/services/population.service.d.ts.map +1 -1
  81. package/dist/services/population.service.js +27 -1
  82. package/dist/services/population.service.js.map +1 -1
  83. package/dist/types/access.d.ts +38 -0
  84. package/dist/types/access.d.ts.map +1 -0
  85. package/dist/types/access.js +2 -0
  86. package/dist/types/access.js.map +1 -0
  87. package/dist/types/adapters.d.ts +146 -0
  88. package/dist/types/adapters.d.ts.map +1 -0
  89. package/dist/types/adapters.js +2 -0
  90. package/dist/types/adapters.js.map +1 -0
  91. package/dist/types/admin-auth.d.ts +132 -0
  92. package/dist/types/admin-auth.d.ts.map +1 -0
  93. package/dist/types/admin-auth.js +2 -0
  94. package/dist/types/admin-auth.js.map +1 -0
  95. package/dist/types/admin.d.ts +65 -0
  96. package/dist/types/admin.d.ts.map +1 -0
  97. package/dist/types/admin.js +2 -0
  98. package/dist/types/admin.js.map +1 -0
  99. package/dist/types/app-config.d.ts +143 -0
  100. package/dist/types/app-config.d.ts.map +1 -0
  101. package/dist/types/app-config.js +2 -0
  102. package/dist/types/app-config.js.map +1 -0
  103. package/dist/types/documents.d.ts +65 -0
  104. package/dist/types/documents.d.ts.map +1 -0
  105. package/dist/types/documents.js +2 -0
  106. package/dist/types/documents.js.map +1 -0
  107. package/dist/types/hooks.d.ts +122 -0
  108. package/dist/types/hooks.d.ts.map +1 -0
  109. package/dist/types/hooks.js +2 -0
  110. package/dist/types/hooks.js.map +1 -0
  111. package/dist/types/index.d.ts +12 -1748
  112. package/dist/types/index.d.ts.map +1 -1
  113. package/dist/types/index.js +12 -2
  114. package/dist/types/index.js.map +1 -1
  115. package/dist/types/request.d.ts +42 -0
  116. package/dist/types/request.d.ts.map +1 -0
  117. package/dist/types/request.js +2 -0
  118. package/dist/types/request.js.map +1 -0
  119. package/dist/types/schema-config.d.ts +303 -0
  120. package/dist/types/schema-config.d.ts.map +1 -0
  121. package/dist/types/schema-config.js +2 -0
  122. package/dist/types/schema-config.js.map +1 -0
  123. package/dist/types/schema-core.d.ts +294 -0
  124. package/dist/types/schema-core.d.ts.map +1 -0
  125. package/dist/types/schema-core.js +2 -0
  126. package/dist/types/schema-core.js.map +1 -0
  127. package/dist/types/schema-inference.d.ts +73 -0
  128. package/dist/types/schema-inference.d.ts.map +1 -0
  129. package/dist/types/schema-inference.js +2 -0
  130. package/dist/types/schema-inference.js.map +1 -0
  131. package/dist/types/workflows.d.ts +84 -0
  132. package/dist/types/workflows.d.ts.map +1 -0
  133. package/dist/types/workflows.js +7 -0
  134. package/dist/types/workflows.js.map +1 -0
  135. package/dist/utils/admin-auth.d.ts +5 -0
  136. package/dist/utils/admin-auth.d.ts.map +1 -0
  137. package/dist/utils/admin-auth.js +39 -0
  138. package/dist/utils/admin-auth.js.map +1 -0
  139. package/dist/utils/config.d.ts.map +1 -1
  140. package/dist/utils/config.js +86 -1
  141. package/dist/utils/config.js.map +1 -1
  142. package/dist/utils/hooks.d.ts.map +1 -1
  143. package/dist/utils/hooks.js +12 -8
  144. package/dist/utils/hooks.js.map +1 -1
  145. package/dist/utils/openapi.d.ts.map +1 -1
  146. package/dist/utils/openapi.js +559 -48
  147. package/dist/utils/openapi.js.map +1 -1
  148. package/dist/utils/parse-sort.d.ts +7 -0
  149. package/dist/utils/parse-sort.d.ts.map +1 -0
  150. package/dist/utils/parse-sort.js +23 -0
  151. package/dist/utils/parse-sort.js.map +1 -0
  152. package/dist/utils/swagger.d.ts +6 -0
  153. package/dist/utils/swagger.d.ts.map +1 -1
  154. package/dist/utils/swagger.js +13 -2
  155. package/dist/utils/swagger.js.map +1 -1
  156. package/dist/utils/upload-validation.d.ts +23 -0
  157. package/dist/utils/upload-validation.d.ts.map +1 -0
  158. package/dist/utils/upload-validation.js +44 -0
  159. package/dist/utils/upload-validation.js.map +1 -0
  160. package/dist/utils/where-sanitizer.d.ts.map +1 -1
  161. package/dist/utils/where-sanitizer.js +4 -0
  162. package/dist/utils/where-sanitizer.js.map +1 -1
  163. package/dist/workflows.d.ts +54 -0
  164. package/dist/workflows.d.ts.map +1 -0
  165. package/dist/workflows.js +282 -0
  166. package/dist/workflows.js.map +1 -0
  167. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../src/utils/openapi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../src/utils/openapi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ export type SortDirection = 'ASC' | 'DESC';
2
+ export interface SortClause {
3
+ field: string;
4
+ direction: SortDirection;
5
+ }
6
+ export declare function parseSort(sort: string | undefined, fallback?: SortClause): SortClause[];
7
+ //# 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,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"}
@@ -0,0 +1,23 @@
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
+ //# sourceMappingURL=parse-sort.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parse-sort.js","sourceRoot":"","sources":["../../src/utils/parse-sort.ts"],"names":[],"mappings":"AAOA,MAAM,kBAAkB,GAAG,+CAA+C,CAAC;AAE3E,MAAM,UAAU,SAAS,CAAC,IAAwB,EAAE,WAAuB,EAAE,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE;IAClH,IAAI,CAAC,IAAI;QAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE7B,MAAM,OAAO,GAAG,IAAI;SACjB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,IAAI,EAAqB,EAAE;QAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAC1C,MAAM,aAAa,GAAG,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QACjE,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QACtD,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QAExB,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YACf,SAAS,EAAE,YAAY,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;SAC/E,CAAC;IACJ,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,MAAM,EAAwB,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAE7D,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AACnD,CAAC"}
@@ -1,5 +1,11 @@
1
1
  /**
2
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.
3
9
  */
4
10
  export declare function getSwaggerHtml(specUrl?: string): string;
5
11
  //# sourceMappingURL=swagger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"swagger.d.ts","sourceRoot":"","sources":["../../src/utils/swagger.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,MAA4B,UA8CnE"}
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"}
@@ -1,7 +1,13 @@
1
1
  /**
2
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.
3
9
  */
4
- export function getSwaggerHtml(specUrl = '/api/openapi.json') {
10
+ export function getSwaggerHtml(specUrl) {
5
11
  return `
6
12
  <!DOCTYPE html>
7
13
  <html lang="en">
@@ -21,7 +27,12 @@ export function getSwaggerHtml(specUrl = '/api/openapi.json') {
21
27
  // Forward the apikey query param when loading the spec and making API calls
22
28
  const params = new URLSearchParams(window.location.search);
23
29
  const apiKey = params.get('apikey');
24
- const specUrlWithKey = apiKey ? '${specUrl}?apikey=' + encodeURIComponent(apiKey) : '${specUrl}';
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;
25
36
 
26
37
  window.ui = SwaggerUIBundle({
27
38
  url: specUrlWithKey,
@@ -1 +1 @@
1
- {"version":3,"file":"swagger.js","sourceRoot":"","sources":["../../src/utils/swagger.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,UAAkB,mBAAmB;IAClE,OAAO;;;;;;;;;;;;;;;;;;;uCAmB8B,OAAO,6CAA6C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;GAyB/F,CAAC;AACJ,CAAC"}
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 `*` / `*​/*` (any), 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,CAsB9B"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Returns true if `mimeType` matches any of the allowed patterns.
3
+ * Patterns support `*` / `*​/*` (any), a `type/*` wildcard (e.g. `image/*`),
4
+ * or an exact `type/subtype` match. Matching is case-insensitive.
5
+ */
6
+ export function isMimeAllowed(mimeType, allowed) {
7
+ const type = (mimeType || '').toLowerCase().trim();
8
+ return allowed.some((raw) => {
9
+ const pattern = (raw || '').toLowerCase().trim();
10
+ if (!pattern)
11
+ return false;
12
+ if (pattern === '*' || pattern === '*/*')
13
+ return true;
14
+ if (pattern.endsWith('/*'))
15
+ return type.startsWith(pattern.slice(0, -1)); // "image/*" -> "image/"
16
+ return type === pattern;
17
+ });
18
+ }
19
+ /**
20
+ * Validates an uploaded file against a collection's {@link UploadConfig}.
21
+ * Enforces `allowedMimeTypes` and `maxFileSize` when they are configured.
22
+ * Returns `null` when the upload is allowed (or when no config restricts it).
23
+ */
24
+ export function validateUpload(file, config) {
25
+ if (!config)
26
+ return null;
27
+ const { allowedMimeTypes, maxFileSize } = config;
28
+ if (allowedMimeTypes && allowedMimeTypes.length > 0) {
29
+ if (!isMimeAllowed(file.type || '', allowedMimeTypes)) {
30
+ return {
31
+ status: 415,
32
+ message: `File type "${file.type || 'unknown'}" is not allowed. Allowed types: ${allowedMimeTypes.join(', ')}.`,
33
+ };
34
+ }
35
+ }
36
+ if (typeof maxFileSize === 'number' && typeof file.size === 'number' && file.size > maxFileSize) {
37
+ return {
38
+ status: 413,
39
+ message: `File is too large (${file.size} bytes). Maximum allowed size is ${maxFileSize} bytes.`,
40
+ };
41
+ }
42
+ return null;
43
+ }
44
+ //# sourceMappingURL=upload-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload-validation.js","sourceRoot":"","sources":["../../src/utils/upload-validation.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,OAAiB;IAC/D,MAAM,IAAI,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IACnD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QAC1B,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QACjD,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAC3B,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,KAAK;YAAE,OAAO,IAAI,CAAC;QACtD,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB;QAClG,OAAO,IAAI,KAAK,OAAO,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAQD;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAC5B,IAAqD,EACrD,MAAgC;IAEhC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEzB,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;IAEjD,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,gBAAgB,CAAC,EAAE,CAAC;YACtD,OAAO;gBACL,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,cAAc,IAAI,CAAC,IAAI,IAAI,SAAS,oCAAoC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;aAChH,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,OAAO,WAAW,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,GAAG,WAAW,EAAE,CAAC;QAChG,OAAO;YACL,MAAM,EAAE,GAAG;YACX,OAAO,EAAE,sBAAsB,IAAI,CAAC,IAAI,oCAAoC,WAAW,SAAS;SACjG,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"where-sanitizer.d.ts","sourceRoot":"","sources":["../../src/utils/where-sanitizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAY/C;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,CAoDpF"}
1
+ {"version":3,"file":"where-sanitizer.d.ts","sourceRoot":"","sources":["../../src/utils/where-sanitizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAY/C;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,WAAW,CAwDpF"}
@@ -46,6 +46,10 @@ export function sanitizeWhereClause(where, fields) {
46
46
  continue;
47
47
  }
48
48
  // It's a field condition
49
+ if (key === 'id') {
50
+ result[key] = value;
51
+ continue;
52
+ }
49
53
  const fieldDef = fieldMap.get(key);
50
54
  if (!fieldDef)
51
55
  continue; // Field doesn't exist
@@ -1 +1 @@
1
- {"version":3,"file":"where-sanitizer.js","sourceRoot":"","sources":["../../src/utils/where-sanitizer.ts"],"names":[],"mappings":"AAGA,MAAM,sBAAsB,GAAG;IAC7B,UAAU;IACV,UAAU;IACV,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,aAAa;CACd,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAkB,EAAE,MAAe;IACrE,yEAAyE;IACzE,gFAAgF;IAChF,uFAAuF;IACvF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAiB,CAAC;IAE1C,SAAS,cAAc,CAAC,KAAc,EAAE,MAAM,GAAG,EAAE;QACjD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC1B,QAAQ,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAU,CAAC,CAAC;YAC5C,CAAC;YACD,qEAAqE;YACrE,wCAAwC;YACxC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAClE,IAAI,QAAQ,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC7C,cAAc,CAAC,CAAC,CAAC,MAAiB,EAAE,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,GAAI,CAAS,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC3H,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,cAAc,CAAC,MAAM,CAAC,CAAC;IAEvB,SAAS,IAAI,CAAC,IAAiB;QAC7B,MAAM,MAAM,GAAgB,EAAE,CAAC;QAE/B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAChD,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBAClC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzB,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACjF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACzB,MAAM,CAAC,GAAmB,CAAC,GAAG,SAAS,CAAC;oBAC1C,CAAC;gBACH,CAAC;gBACD,SAAS;YACX,CAAC;YAED,yBAAyB;YACzB,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAEnC,IAAI,CAAC,QAAQ;gBAAE,SAAS,CAAC,sBAAsB;YAC/C,IAAI,QAAQ,CAAC,KAAK,EAAE,UAAU,KAAK,KAAK;gBAAE,SAAS,CAAC,uBAAuB;YAC3E,IAAI,sBAAsB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,SAAS,CAAC,wBAAwB;YAEtF,iBAAiB;YACjB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"where-sanitizer.js","sourceRoot":"","sources":["../../src/utils/where-sanitizer.ts"],"names":[],"mappings":"AAGA,MAAM,sBAAsB,GAAG;IAC7B,UAAU;IACV,UAAU;IACV,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,aAAa;CACd,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAkB,EAAE,MAAe;IACrE,yEAAyE;IACzE,gFAAgF;IAChF,uFAAuF;IACvF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAiB,CAAC;IAE1C,SAAS,cAAc,CAAC,KAAc,EAAE,MAAM,GAAG,EAAE;QACjD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;YACtB,IAAI,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC1B,QAAQ,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAU,CAAC,CAAC;YAC5C,CAAC;YACD,qEAAqE;YACrE,wCAAwC;YACxC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAClE,IAAI,QAAQ,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC7C,cAAc,CAAC,CAAC,CAAC,MAAiB,EAAE,CAAC,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,GAAI,CAAS,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBAC3H,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,cAAc,CAAC,MAAM,CAAC,CAAC;IAEvB,SAAS,IAAI,CAAC,IAAiB;QAC7B,MAAM,MAAM,GAAgB,EAAE,CAAC;QAE/B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAChD,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBAClC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACzB,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACjF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACzB,MAAM,CAAC,GAAmB,CAAC,GAAG,SAAS,CAAC;oBAC1C,CAAC;gBACH,CAAC;gBACD,SAAS;YACX,CAAC;YAED,yBAAyB;YACzB,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;gBACjB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBACpB,SAAS;YACX,CAAC;YACD,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAEnC,IAAI,CAAC,QAAQ;gBAAE,SAAS,CAAC,sBAAsB;YAC/C,IAAI,QAAQ,CAAC,KAAK,EAAE,UAAU,KAAK,KAAK;gBAAE,SAAS,CAAC,uBAAuB;YAC3E,IAAI,sBAAsB,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,SAAS,CAAC,wBAAwB;YAEtF,iBAAiB;YACjB,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACtB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;AACrB,CAAC"}
@@ -0,0 +1,54 @@
1
+ import type { AuthenticatedUser, BaseDocument, CollectionConfig, DyrectedConfig, HookRequestContext, LifecycleEvent, LifecycleEventName, WorkflowConfig, WorkflowTransition } from "./types/index.js";
2
+ export declare const WORKFLOW_HISTORY_COLLECTION = "__workflow_history";
3
+ export declare const LIFECYCLE_EVENTS_COLLECTION = "__lifecycle_events";
4
+ export declare function publishingWorkflow(): WorkflowConfig;
5
+ export declare function workflowCapabilities(workflow: WorkflowConfig, user?: AuthenticatedUser): Set<string>;
6
+ export declare function canViewWorkflowDraft(workflow: WorkflowConfig, user?: AuthenticatedUser): boolean;
7
+ export declare function availableWorkflowTransitions(workflow: WorkflowConfig, state: string, user?: AuthenticatedUser): WorkflowTransition[];
8
+ export declare function initializeWorkflowDocument(data: Record<string, unknown>, workflow: WorkflowConfig): {
9
+ __workflow: {
10
+ state: string;
11
+ revision: number;
12
+ };
13
+ };
14
+ export declare function materializeWorkflowDocument(doc: BaseDocument, workflow: WorkflowConfig, user?: AuthenticatedUser): BaseDocument | null;
15
+ export declare function createLifecycleEvent(args: {
16
+ name: LifecycleEventName;
17
+ collection: string;
18
+ documentId: string;
19
+ actorId?: string;
20
+ payload: Record<string, unknown>;
21
+ }): LifecycleEvent;
22
+ export declare function dispatchLifecycleEvent(config: DyrectedConfig, event: LifecycleEvent): Promise<void>;
23
+ export declare function dispatchPendingLifecycleEvents(config: DyrectedConfig, limit?: number): Promise<number>;
24
+ export declare function saveWorkflowDraft(args: {
25
+ config: DyrectedConfig;
26
+ collection: CollectionConfig;
27
+ id: string;
28
+ originalDoc: BaseDocument;
29
+ data: Record<string, unknown>;
30
+ user?: AuthenticatedUser;
31
+ }): Promise<{
32
+ doc: BaseDocument;
33
+ event: LifecycleEvent;
34
+ }>;
35
+ export declare function createWorkflowDocument(args: {
36
+ config: DyrectedConfig;
37
+ collection: CollectionConfig;
38
+ data: Record<string, unknown>;
39
+ user?: AuthenticatedUser;
40
+ }): Promise<{
41
+ doc: BaseDocument;
42
+ event: LifecycleEvent;
43
+ }>;
44
+ export declare function transitionWorkflow(args: {
45
+ config: DyrectedConfig;
46
+ collection: CollectionConfig;
47
+ id: string;
48
+ transitionName: string;
49
+ expectedRevision?: number;
50
+ comment?: string;
51
+ user?: AuthenticatedUser;
52
+ req: HookRequestContext;
53
+ }): Promise<BaseDocument>;
54
+ //# sourceMappingURL=workflows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflows.d.ts","sourceRoot":"","sources":["../src/workflows.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,282 @@
1
+ export const WORKFLOW_HISTORY_COLLECTION = "__workflow_history";
2
+ export const LIFECYCLE_EVENTS_COLLECTION = "__lifecycle_events";
3
+ export function publishingWorkflow() {
4
+ return {
5
+ initialState: "draft",
6
+ draftState: "draft",
7
+ states: [
8
+ { name: "draft", label: "Draft", color: "neutral" },
9
+ { name: "in_review", label: "In review", color: "warning" },
10
+ { name: "published", label: "Published", color: "success", published: true },
11
+ ],
12
+ transitions: [
13
+ { name: "submit", label: "Submit for review", from: "draft", to: "in_review", requiredCapabilities: ["entry.submit"] },
14
+ { name: "publish", label: "Publish", from: "in_review", to: "published", requiredCapabilities: ["entry.publish"] },
15
+ { name: "reject", label: "Request changes", from: "in_review", to: "draft", requiredCapabilities: ["entry.publish"], requireComment: true },
16
+ { name: "unpublish", label: "Unpublish", from: "published", to: "draft", requiredCapabilities: ["entry.unpublish"], unpublish: true },
17
+ ],
18
+ roles: [
19
+ { role: "editor", capabilities: ["entry.edit", "entry.submit"] },
20
+ { role: "publisher", capabilities: ["entry.edit", "entry.submit", "entry.publish", "entry.unpublish"] },
21
+ { role: "admin", capabilities: ["entry.edit", "entry.submit", "entry.publish", "entry.unpublish"] },
22
+ ],
23
+ };
24
+ }
25
+ function publicMetadata(meta) {
26
+ const { availableTransitions: _availableTransitions, ...safe } = meta;
27
+ return safe;
28
+ }
29
+ export function workflowCapabilities(workflow, user) {
30
+ const capabilities = new Set(Array.isArray(user?.capabilities) ? user.capabilities : []);
31
+ const roles = Array.isArray(user?.roles) ? user.roles : [];
32
+ for (const mapping of workflow.roles ?? []) {
33
+ if (roles.includes(mapping.role))
34
+ mapping.capabilities.forEach((capability) => capabilities.add(capability));
35
+ }
36
+ return capabilities;
37
+ }
38
+ export function canViewWorkflowDraft(workflow, user) {
39
+ if (!user)
40
+ return false;
41
+ const capabilities = workflowCapabilities(workflow, user);
42
+ if (capabilities.has("entry.edit"))
43
+ return true;
44
+ return workflow.transitions.some((transition) => (transition.requiredCapabilities ?? []).some((capability) => capabilities.has(capability)));
45
+ }
46
+ export function availableWorkflowTransitions(workflow, state, user) {
47
+ const capabilities = workflowCapabilities(workflow, user);
48
+ return workflow.transitions.filter((transition) => {
49
+ const from = Array.isArray(transition.from) ? transition.from : [transition.from];
50
+ return from.includes(state) && (transition.requiredCapabilities ?? []).every((item) => capabilities.has(item));
51
+ });
52
+ }
53
+ export function initializeWorkflowDocument(data, workflow) {
54
+ return {
55
+ ...data,
56
+ __workflow: { state: workflow.initialState, revision: 1 },
57
+ };
58
+ }
59
+ export function materializeWorkflowDocument(doc, workflow, user) {
60
+ const meta = doc.__workflow;
61
+ if (!meta)
62
+ return doc;
63
+ const { __published, __workflow, ...working } = doc;
64
+ if (!canViewWorkflowDraft(workflow, user)) {
65
+ if (!__published || typeof __published !== "object")
66
+ return null;
67
+ return { id: doc.id, ...__published, _workflow: publicMetadata(meta) };
68
+ }
69
+ return {
70
+ ...working,
71
+ _workflow: {
72
+ ...meta,
73
+ availableTransitions: availableWorkflowTransitions(workflow, meta.state, user).map((item) => item.name),
74
+ },
75
+ };
76
+ }
77
+ function eventId() {
78
+ return globalThis.crypto?.randomUUID?.() ?? `evt_${Date.now()}_${Math.random().toString(36).slice(2)}`;
79
+ }
80
+ export function createLifecycleEvent(args) {
81
+ return {
82
+ id: eventId(),
83
+ name: args.name,
84
+ collection: args.collection,
85
+ documentId: args.documentId,
86
+ occurredAt: new Date().toISOString(),
87
+ actorId: args.actorId,
88
+ payload: args.payload,
89
+ attempts: 0,
90
+ status: "pending",
91
+ };
92
+ }
93
+ async function persistEvent(db, event) {
94
+ await db.create({ collection: LIFECYCLE_EVENTS_COLLECTION, data: event });
95
+ }
96
+ export async function dispatchLifecycleEvent(config, event) {
97
+ const db = config.db;
98
+ if (!db || !config.events?.handlers.length)
99
+ return;
100
+ const maxAttempts = config.events.maxAttempts ?? 8;
101
+ const retryDelayMs = config.events.retryDelayMs ?? 1_000;
102
+ const attempts = event.attempts + 1;
103
+ try {
104
+ await db.update({ collection: LIFECYCLE_EVENTS_COLLECTION, id: event.id, data: { status: "processing", attempts } });
105
+ for (const handler of config.events.handlers)
106
+ await handler({ ...event, status: "processing", attempts });
107
+ await db.update({
108
+ collection: LIFECYCLE_EVENTS_COLLECTION,
109
+ id: event.id,
110
+ data: { status: "delivered", attempts, deliveredAt: new Date().toISOString(), lastError: null },
111
+ });
112
+ }
113
+ catch (error) {
114
+ const exhausted = attempts >= maxAttempts;
115
+ await db.update({
116
+ collection: LIFECYCLE_EVENTS_COLLECTION,
117
+ id: event.id,
118
+ data: {
119
+ status: "failed",
120
+ attempts,
121
+ lastError: error instanceof Error ? error.message : String(error),
122
+ nextAttemptAt: exhausted ? null : new Date(Date.now() + retryDelayMs * 2 ** (attempts - 1)).toISOString(),
123
+ },
124
+ });
125
+ }
126
+ }
127
+ export async function dispatchPendingLifecycleEvents(config, limit = 50) {
128
+ if (!config.db || !config.events?.handlers.length)
129
+ return 0;
130
+ const maxAttempts = config.events.maxAttempts ?? 8;
131
+ const result = await config.db.find({
132
+ collection: LIFECYCLE_EVENTS_COLLECTION,
133
+ where: { status: { in: ["pending", "failed"] } },
134
+ sort: "occurredAt",
135
+ limit,
136
+ });
137
+ const now = Date.now();
138
+ const due = result.docs.filter((doc) => Number(doc.attempts ?? 0) < maxAttempts &&
139
+ (!doc.nextAttemptAt || new Date(doc.nextAttemptAt).getTime() <= now));
140
+ for (const event of due)
141
+ await dispatchLifecycleEvent(config, event);
142
+ return due.length;
143
+ }
144
+ export async function saveWorkflowDraft(args) {
145
+ const { config, collection, id, originalDoc, data, user } = args;
146
+ const db = config.db;
147
+ const workflow = collection.workflow;
148
+ if (!db.transaction)
149
+ throw new Error(`The configured database adapter does not support workflow transactions.`);
150
+ const previous = originalDoc.__workflow;
151
+ const event = createLifecycleEvent({
152
+ name: "revision.created",
153
+ collection: collection.slug,
154
+ documentId: id,
155
+ actorId: user?.sub,
156
+ payload: { revision: previous.revision + 1, previousRevision: previous.revision },
157
+ });
158
+ const doc = await db.transaction(async (tx) => {
159
+ const nextMeta = {
160
+ ...previous,
161
+ state: originalDoc.__published ? workflow.draftState ?? workflow.initialState : previous.state,
162
+ revision: previous.revision + 1,
163
+ };
164
+ const updated = await tx.update({ collection: collection.slug, id, data: { ...data, __workflow: nextMeta } });
165
+ await persistEvent(tx, event);
166
+ return updated;
167
+ });
168
+ void dispatchLifecycleEvent(config, event);
169
+ return { doc, event };
170
+ }
171
+ export async function createWorkflowDocument(args) {
172
+ const { config, collection, data, user } = args;
173
+ const db = config.db;
174
+ if (!db.transaction)
175
+ throw new Error(`The configured database adapter does not support workflow transactions.`);
176
+ let event;
177
+ const doc = await db.transaction(async (tx) => {
178
+ const created = await tx.create({ collection: collection.slug, data });
179
+ event = createLifecycleEvent({
180
+ name: "revision.created",
181
+ collection: collection.slug,
182
+ documentId: created.id,
183
+ actorId: user?.sub,
184
+ payload: { revision: 1, previousRevision: null },
185
+ });
186
+ await persistEvent(tx, event);
187
+ return created;
188
+ });
189
+ void dispatchLifecycleEvent(config, event);
190
+ return { doc, event };
191
+ }
192
+ export async function transitionWorkflow(args) {
193
+ const { config, collection, id, transitionName, expectedRevision, comment, user, req } = args;
194
+ const db = config.db;
195
+ const workflow = collection.workflow;
196
+ if (!db.transaction)
197
+ throw new Error(`The configured database adapter does not support workflow transactions.`);
198
+ const original = await db.findOne({ collection: collection.slug, id });
199
+ if (!original)
200
+ throw Object.assign(new Error("Not Found"), { statusCode: 404 });
201
+ const meta = original.__workflow;
202
+ if (!meta)
203
+ throw Object.assign(new Error("Entry has no workflow metadata"), { statusCode: 409 });
204
+ if (expectedRevision !== undefined && expectedRevision !== meta.revision) {
205
+ throw Object.assign(new Error("This entry changed since it was loaded. Refresh before transitioning it."), { statusCode: 409 });
206
+ }
207
+ const transition = workflow.transitions.find((item) => item.name === transitionName);
208
+ const fromStates = transition ? (Array.isArray(transition.from) ? transition.from : [transition.from]) : [];
209
+ if (!transition || !fromStates.includes(meta.state)) {
210
+ throw Object.assign(new Error(`Transition "${transitionName}" is not valid from "${meta.state}".`), { statusCode: 409 });
211
+ }
212
+ if (!availableWorkflowTransitions(workflow, meta.state, user).some((item) => item.name === transition.name)) {
213
+ throw Object.assign(new Error(`You do not have permission to perform "${transition.label}".`), { statusCode: 403 });
214
+ }
215
+ if (transition.requireComment && !comment?.trim()) {
216
+ throw Object.assign(new Error(`A comment is required for "${transition.label}".`), { statusCode: 400 });
217
+ }
218
+ const hookContext = { transition, from: meta.state, to: transition.to, doc: original, user, comment, req, db };
219
+ for (const hook of workflow.hooks?.beforeTransition ?? [])
220
+ await hook(hookContext);
221
+ const events = [createLifecycleEvent({
222
+ name: "workflow.transitioned",
223
+ collection: collection.slug,
224
+ documentId: id,
225
+ actorId: user?.sub,
226
+ payload: { transition: transition.name, from: meta.state, to: transition.to, revision: meta.revision, comment },
227
+ })];
228
+ const targetState = workflow.states.find((state) => state.name === transition.to);
229
+ if (targetState.published) {
230
+ events.push(createLifecycleEvent({ name: "entry.published", collection: collection.slug, documentId: id, actorId: user?.sub, payload: { revision: meta.revision } }));
231
+ }
232
+ else if (transition.unpublish) {
233
+ events.push(createLifecycleEvent({ name: "entry.unpublished", collection: collection.slug, documentId: id, actorId: user?.sub, payload: { revision: meta.publishedRevision } }));
234
+ }
235
+ const updated = await db.transaction(async (tx) => {
236
+ const locked = await tx.findOne({ collection: collection.slug, id });
237
+ if (!locked)
238
+ throw Object.assign(new Error("Not Found"), { statusCode: 404 });
239
+ const lockedMeta = locked.__workflow;
240
+ if (lockedMeta.revision !== meta.revision ||
241
+ lockedMeta.state !== meta.state ||
242
+ (expectedRevision !== undefined && lockedMeta.revision !== expectedRevision)) {
243
+ throw Object.assign(new Error("This entry changed since it was loaded. Refresh before transitioning it."), { statusCode: 409 });
244
+ }
245
+ const now = new Date().toISOString();
246
+ const { __published: _published, __workflow: _workflow, id: _id, ...working } = locked;
247
+ const nextMeta = {
248
+ ...lockedMeta,
249
+ state: transition.to,
250
+ ...(targetState.published ? { publishedRevision: lockedMeta.revision, publishedAt: now, publishedBy: user?.sub } : {}),
251
+ ...(transition.unpublish ? { publishedRevision: undefined, publishedAt: undefined, publishedBy: undefined } : {}),
252
+ };
253
+ const data = { __workflow: nextMeta };
254
+ if (targetState.published)
255
+ data.__published = working;
256
+ if (transition.unpublish)
257
+ data.__published = null;
258
+ const next = await tx.update({ collection: collection.slug, id, data });
259
+ await tx.create({
260
+ collection: WORKFLOW_HISTORY_COLLECTION,
261
+ data: { collection: collection.slug, documentId: id, transition: transition.name, from: lockedMeta.state, to: transition.to, revision: lockedMeta.revision, comment: comment ?? null, actorId: user?.sub ?? null, createdAt: now },
262
+ });
263
+ for (const event of events)
264
+ await persistEvent(tx, event);
265
+ if (collection.audit) {
266
+ await tx.create({ collection: "__audit", data: { collection: collection.slug, documentId: id, operation: "workflow.transition", user: user?.sub ?? null, timestamp: now, changes: JSON.stringify({ transition: transition.name, from: lockedMeta.state, to: transition.to, revision: lockedMeta.revision }) } });
267
+ }
268
+ return next;
269
+ });
270
+ for (const event of events)
271
+ void dispatchLifecycleEvent(config, event);
272
+ for (const hook of workflow.hooks?.afterTransition ?? []) {
273
+ try {
274
+ await hook({ ...hookContext, doc: updated, event: events[0] });
275
+ }
276
+ catch (error) {
277
+ console.error("[dyrected/workflow] afterTransition hook failed:", error);
278
+ }
279
+ }
280
+ return updated;
281
+ }
282
+ //# sourceMappingURL=workflows.js.map