@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.
- package/dist/__tests__/admin-auth.test.d.ts +2 -0
- package/dist/__tests__/admin-auth.test.d.ts.map +1 -0
- package/dist/__tests__/admin-auth.test.js +440 -0
- package/dist/__tests__/admin-auth.test.js.map +1 -0
- package/dist/__tests__/config.test.js +57 -0
- package/dist/__tests__/config.test.js.map +1 -1
- package/dist/__tests__/email.service.test.d.ts +2 -0
- package/dist/__tests__/email.service.test.d.ts.map +1 -0
- package/dist/__tests__/email.service.test.js +46 -0
- package/dist/__tests__/email.service.test.js.map +1 -0
- package/dist/__tests__/fixtures/editorial-workflow.d.ts +9 -0
- package/dist/__tests__/fixtures/editorial-workflow.d.ts.map +1 -0
- package/dist/__tests__/fixtures/editorial-workflow.js +12 -0
- package/dist/__tests__/fixtures/editorial-workflow.js.map +1 -0
- package/dist/__tests__/mocks.d.ts +6 -0
- package/dist/__tests__/mocks.d.ts.map +1 -1
- package/dist/__tests__/mocks.js +8 -0
- package/dist/__tests__/mocks.js.map +1 -1
- package/dist/__tests__/openapi.test.d.ts +2 -0
- package/dist/__tests__/openapi.test.d.ts.map +1 -0
- package/dist/__tests__/openapi.test.js +95 -0
- package/dist/__tests__/openapi.test.js.map +1 -0
- package/dist/__tests__/parse-sort.test.d.ts +2 -0
- package/dist/__tests__/parse-sort.test.d.ts.map +1 -0
- package/dist/__tests__/parse-sort.test.js +24 -0
- package/dist/__tests__/parse-sort.test.js.map +1 -0
- package/dist/__tests__/preferences.test.d.ts +2 -0
- package/dist/__tests__/preferences.test.d.ts.map +1 -0
- package/dist/__tests__/preferences.test.js +168 -0
- package/dist/__tests__/preferences.test.js.map +1 -0
- package/dist/__tests__/router.test.js +4 -0
- package/dist/__tests__/router.test.js.map +1 -1
- package/dist/__tests__/where.test.js +9 -1
- package/dist/__tests__/where.test.js.map +1 -1
- package/dist/__tests__/workflow.test.d.ts +2 -0
- package/dist/__tests__/workflow.test.d.ts.map +1 -0
- package/dist/__tests__/workflow.test.js +497 -0
- package/dist/__tests__/workflow.test.js.map +1 -0
- package/dist/app-config-DLK6bCaP.d.cts +1390 -0
- package/dist/app-config-DLK6bCaP.d.ts +1390 -0
- package/dist/app-config-DqCipvSI.d.cts +1411 -0
- package/dist/app-config-DqCipvSI.d.ts +1411 -0
- package/dist/app-config-oOarB6Fw.d.cts +1411 -0
- package/dist/app-config-oOarB6Fw.d.ts +1411 -0
- package/dist/auth/token.d.ts +2 -0
- package/dist/auth/token.d.ts.map +1 -1
- package/dist/auth/token.js.map +1 -1
- package/dist/controllers/admin-auth.controller.d.ts +68 -0
- package/dist/controllers/admin-auth.controller.d.ts.map +1 -0
- package/dist/controllers/admin-auth.controller.js +414 -0
- package/dist/controllers/admin-auth.controller.js.map +1 -0
- package/dist/controllers/collection.controller.d.ts +69 -0
- package/dist/controllers/collection.controller.d.ts.map +1 -1
- package/dist/controllers/collection.controller.js +232 -7
- package/dist/controllers/collection.controller.js.map +1 -1
- package/dist/controllers/global.controller.js +19 -3
- package/dist/controllers/global.controller.js.map +1 -1
- package/dist/controllers/media.controller.d.ts +2 -0
- package/dist/controllers/media.controller.d.ts.map +1 -1
- package/dist/controllers/media.controller.js +13 -6
- package/dist/controllers/media.controller.js.map +1 -1
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +168 -6
- package/dist/router.js.map +1 -1
- package/dist/server.cjs +54 -8
- package/dist/server.d.cts +7 -1
- package/dist/server.d.ts +7 -1
- package/dist/server.js +54 -8
- package/dist/services/email-template.d.ts +46 -0
- package/dist/services/email-template.d.ts.map +1 -0
- package/dist/services/email-template.js +88 -0
- package/dist/services/email-template.js.map +1 -0
- package/dist/services/email.service.d.ts.map +1 -1
- package/dist/services/email.service.js +25 -148
- package/dist/services/email.service.js.map +1 -1
- package/dist/services/population.service.d.ts.map +1 -1
- package/dist/services/population.service.js +27 -1
- package/dist/services/population.service.js.map +1 -1
- package/dist/types/access.d.ts +38 -0
- package/dist/types/access.d.ts.map +1 -0
- package/dist/types/access.js +2 -0
- package/dist/types/access.js.map +1 -0
- package/dist/types/adapters.d.ts +146 -0
- package/dist/types/adapters.d.ts.map +1 -0
- package/dist/types/adapters.js +2 -0
- package/dist/types/adapters.js.map +1 -0
- package/dist/types/admin-auth.d.ts +132 -0
- package/dist/types/admin-auth.d.ts.map +1 -0
- package/dist/types/admin-auth.js +2 -0
- package/dist/types/admin-auth.js.map +1 -0
- package/dist/types/admin.d.ts +65 -0
- package/dist/types/admin.d.ts.map +1 -0
- package/dist/types/admin.js +2 -0
- package/dist/types/admin.js.map +1 -0
- package/dist/types/app-config.d.ts +143 -0
- package/dist/types/app-config.d.ts.map +1 -0
- package/dist/types/app-config.js +2 -0
- package/dist/types/app-config.js.map +1 -0
- package/dist/types/documents.d.ts +65 -0
- package/dist/types/documents.d.ts.map +1 -0
- package/dist/types/documents.js +2 -0
- package/dist/types/documents.js.map +1 -0
- package/dist/types/hooks.d.ts +122 -0
- package/dist/types/hooks.d.ts.map +1 -0
- package/dist/types/hooks.js +2 -0
- package/dist/types/hooks.js.map +1 -0
- package/dist/types/index.d.ts +12 -1748
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +12 -2
- package/dist/types/index.js.map +1 -1
- package/dist/types/request.d.ts +42 -0
- package/dist/types/request.d.ts.map +1 -0
- package/dist/types/request.js +2 -0
- package/dist/types/request.js.map +1 -0
- package/dist/types/schema-config.d.ts +303 -0
- package/dist/types/schema-config.d.ts.map +1 -0
- package/dist/types/schema-config.js +2 -0
- package/dist/types/schema-config.js.map +1 -0
- package/dist/types/schema-core.d.ts +294 -0
- package/dist/types/schema-core.d.ts.map +1 -0
- package/dist/types/schema-core.js +2 -0
- package/dist/types/schema-core.js.map +1 -0
- package/dist/types/schema-inference.d.ts +73 -0
- package/dist/types/schema-inference.d.ts.map +1 -0
- package/dist/types/schema-inference.js +2 -0
- package/dist/types/schema-inference.js.map +1 -0
- package/dist/types/workflows.d.ts +84 -0
- package/dist/types/workflows.d.ts.map +1 -0
- package/dist/types/workflows.js +7 -0
- package/dist/types/workflows.js.map +1 -0
- package/dist/utils/admin-auth.d.ts +5 -0
- package/dist/utils/admin-auth.d.ts.map +1 -0
- package/dist/utils/admin-auth.js +39 -0
- package/dist/utils/admin-auth.js.map +1 -0
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +86 -1
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/hooks.d.ts.map +1 -1
- package/dist/utils/hooks.js +12 -8
- package/dist/utils/hooks.js.map +1 -1
- package/dist/utils/openapi.d.ts.map +1 -1
- package/dist/utils/openapi.js +559 -48
- package/dist/utils/openapi.js.map +1 -1
- package/dist/utils/parse-sort.d.ts +7 -0
- package/dist/utils/parse-sort.d.ts.map +1 -0
- package/dist/utils/parse-sort.js +23 -0
- package/dist/utils/parse-sort.js.map +1 -0
- package/dist/utils/swagger.d.ts +6 -0
- package/dist/utils/swagger.d.ts.map +1 -1
- package/dist/utils/swagger.js +13 -2
- package/dist/utils/swagger.js.map +1 -1
- package/dist/utils/upload-validation.d.ts +23 -0
- package/dist/utils/upload-validation.d.ts.map +1 -0
- package/dist/utils/upload-validation.js +44 -0
- package/dist/utils/upload-validation.js.map +1 -0
- package/dist/utils/where-sanitizer.d.ts.map +1 -1
- package/dist/utils/where-sanitizer.js +4 -0
- package/dist/utils/where-sanitizer.js.map +1 -1
- package/dist/workflows.d.ts +54 -0
- package/dist/workflows.d.ts.map +1 -0
- package/dist/workflows.js +282 -0
- package/dist/workflows.js.map +1 -0
- 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 @@
|
|
|
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"}
|
package/dist/utils/swagger.d.ts
CHANGED
|
@@ -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
|
|
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"}
|
package/dist/utils/swagger.js
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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
|
|
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,
|
|
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
|