@dani-builder/strapi-plugin-builder 0.16.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +24 -16
- package/README.md +24 -4
- package/dist/admin/api.d.ts +16 -0
- package/dist/admin/api.d.ts.map +1 -0
- package/dist/admin/app.d.ts +2 -0
- package/dist/admin/app.d.ts.map +1 -0
- package/dist/admin/field-editor.d.ts +8 -0
- package/dist/admin/field-editor.d.ts.map +1 -0
- package/dist/admin/form-editor-page.d.ts +4 -0
- package/dist/admin/form-editor-page.d.ts.map +1 -0
- package/dist/admin/form-list-page.d.ts +4 -0
- package/dist/admin/form-list-page.d.ts.map +1 -0
- package/dist/admin/form.d.ts +42 -0
- package/dist/admin/form.d.ts.map +1 -0
- package/dist/admin/import-form.d.ts +6 -0
- package/dist/admin/import-form.d.ts.map +1 -0
- package/dist/admin/index.d.ts +6 -0
- package/dist/admin/index.d.ts.map +1 -0
- package/dist/admin/index.mjs +1006 -0
- package/dist/admin/plugin-icon.d.ts +2 -0
- package/dist/admin/plugin-icon.d.ts.map +1 -0
- package/dist/admin/ui.d.ts +17 -0
- package/dist/admin/ui.d.ts.map +1 -0
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/dist/server/src/bootstrap.js +37 -0
- package/dist/server/src/bootstrap.js.map +1 -1
- package/dist/server/src/components/blocks/inquiry-form.json +5 -1
- package/dist/server/src/components/shared/chatbot-setting.json +4 -2
- package/dist/server/src/config/builder.d.ts +6 -3
- package/dist/server/src/config/builder.d.ts.map +1 -1
- package/dist/server/src/config/builder.js +3 -0
- package/dist/server/src/config/builder.js.map +1 -1
- package/dist/server/src/config/forms.d.ts +58 -0
- package/dist/server/src/config/forms.d.ts.map +1 -0
- package/dist/server/src/config/forms.js +14 -0
- package/dist/server/src/config/forms.js.map +1 -0
- package/dist/server/src/config/index.d.ts +2 -22
- package/dist/server/src/config/index.d.ts.map +1 -1
- package/dist/server/src/config/index.js +17 -82
- package/dist/server/src/config/index.js.map +1 -1
- package/dist/server/src/content-types/form/index.d.ts +75 -0
- package/dist/server/src/content-types/form/index.d.ts.map +1 -0
- package/dist/server/src/content-types/form/index.js +8 -0
- package/dist/server/src/content-types/form/index.js.map +1 -0
- package/dist/server/src/content-types/form/schema.json +75 -0
- package/dist/server/src/content-types/index.d.ts +154 -0
- package/dist/server/src/content-types/index.d.ts.map +1 -1
- package/dist/server/src/content-types/index.js +4 -0
- package/dist/server/src/content-types/index.js.map +1 -1
- package/dist/server/src/content-types/submission/index.d.ts +83 -0
- package/dist/server/src/content-types/submission/index.d.ts.map +1 -0
- package/dist/server/src/content-types/submission/index.js +8 -0
- package/dist/server/src/content-types/submission/index.js.map +1 -0
- package/dist/server/src/content-types/submission/schema.json +88 -0
- package/dist/server/src/controllers/form-admin.d.ts +18 -0
- package/dist/server/src/controllers/form-admin.d.ts.map +1 -0
- package/dist/server/src/controllers/form-admin.js +107 -0
- package/dist/server/src/controllers/form-admin.js.map +1 -0
- package/dist/server/src/controllers/form.d.ts +8 -0
- package/dist/server/src/controllers/form.d.ts.map +1 -0
- package/dist/server/src/controllers/form.js +36 -0
- package/dist/server/src/controllers/form.js.map +1 -0
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/controllers/index.js +6 -2
- package/dist/server/src/controllers/index.js.map +1 -1
- package/dist/server/src/controllers/submission.d.ts +9 -0
- package/dist/server/src/controllers/submission.d.ts.map +1 -0
- package/dist/server/src/controllers/submission.js +58 -0
- package/dist/server/src/controllers/submission.js.map +1 -0
- package/dist/server/src/policies/rate-limit.d.ts.map +1 -1
- package/dist/server/src/policies/rate-limit.js +4 -4
- package/dist/server/src/policies/rate-limit.js.map +1 -1
- package/dist/server/src/preview/handler.d.ts +1 -1
- package/dist/server/src/preview/handler.d.ts.map +1 -1
- package/dist/server/src/preview/handler.js +7 -1
- package/dist/server/src/preview/handler.js.map +1 -1
- package/dist/server/src/register.d.ts.map +1 -1
- package/dist/server/src/register.js +2 -6
- package/dist/server/src/register.js.map +1 -1
- package/dist/server/src/routes/admin.d.ts +14 -2
- package/dist/server/src/routes/admin.d.ts.map +1 -1
- package/dist/server/src/routes/admin.js +44 -0
- package/dist/server/src/routes/admin.js.map +1 -1
- package/dist/server/src/routes/content-api.d.ts +4 -0
- package/dist/server/src/routes/content-api.d.ts.map +1 -1
- package/dist/server/src/routes/content-api.js +12 -9
- package/dist/server/src/routes/content-api.js.map +1 -1
- package/dist/server/src/services/form.d.ts +21 -0
- package/dist/server/src/services/form.d.ts.map +1 -0
- package/dist/server/src/services/form.js +45 -0
- package/dist/server/src/services/form.js.map +1 -0
- package/dist/server/src/services/idempotency-collision.d.ts +3 -0
- package/dist/server/src/services/idempotency-collision.d.ts.map +1 -0
- package/dist/server/src/services/idempotency-collision.js +24 -0
- package/dist/server/src/services/idempotency-collision.js.map +1 -0
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/index.js +41 -2
- package/dist/server/src/services/index.js.map +1 -1
- package/dist/server/src/services/notification.d.ts +26 -0
- package/dist/server/src/services/notification.d.ts.map +1 -0
- package/dist/server/src/services/notification.js +106 -0
- package/dist/server/src/services/notification.js.map +1 -0
- package/dist/server/src/services/populate.d.ts +6 -0
- package/dist/server/src/services/populate.d.ts.map +1 -1
- package/dist/server/src/services/populate.js +2 -0
- package/dist/server/src/services/populate.js.map +1 -1
- package/dist/server/src/services/submission.d.ts +16 -0
- package/dist/server/src/services/submission.d.ts.map +1 -0
- package/dist/server/src/services/submission.js +284 -0
- package/dist/server/src/services/submission.js.map +1 -0
- package/dist/server/src/services/template.d.ts +18 -0
- package/dist/server/src/services/template.d.ts.map +1 -0
- package/dist/server/src/services/template.js +50 -0
- package/dist/server/src/services/template.js.map +1 -0
- package/dist/server/src/validation/form.d.ts +48 -0
- package/dist/server/src/validation/form.d.ts.map +1 -0
- package/dist/server/src/validation/form.js +354 -0
- package/dist/server/src/validation/form.js.map +1 -0
- package/dist/server/src/validation/notification.d.ts +28 -0
- package/dist/server/src/validation/notification.d.ts.map +1 -0
- package/dist/server/src/validation/notification.js +142 -0
- package/dist/server/src/validation/notification.js.map +1 -0
- package/dist/server/src/validation/submission-access.d.ts +3 -0
- package/dist/server/src/validation/submission-access.d.ts.map +1 -0
- package/dist/server/src/validation/submission-access.js +23 -0
- package/dist/server/src/validation/submission-access.js.map +1 -0
- package/dist/server/src/validation/submission.d.ts +8 -0
- package/dist/server/src/validation/submission.d.ts.map +1 -0
- package/dist/server/src/validation/submission.js +113 -0
- package/dist/server/src/validation/submission.js.map +1 -0
- package/package.json +26 -7
- package/strapi-admin.js +1 -0
- package/dist/server/src/controllers/inquiry.d.ts +0 -8
- package/dist/server/src/controllers/inquiry.d.ts.map +0 -1
- package/dist/server/src/controllers/inquiry.js +0 -27
- package/dist/server/src/controllers/inquiry.js.map +0 -1
- package/dist/server/src/services/inquiry.d.ts +0 -15
- package/dist/server/src/services/inquiry.d.ts.map +0 -1
- package/dist/server/src/services/inquiry.js +0 -137
- package/dist/server/src/services/inquiry.js.map +0 -1
|
@@ -3,8 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const form_1 = __importDefault(require("./form"));
|
|
7
|
+
const form_admin_1 = __importDefault(require("./form-admin"));
|
|
8
|
+
const submission_1 = __importDefault(require("./submission"));
|
|
6
9
|
const strapi_1 = require("@strapi/strapi");
|
|
7
|
-
const inquiry_1 = __importDefault(require("./inquiry"));
|
|
8
10
|
const page_1 = __importDefault(require("./page"));
|
|
9
11
|
const global_1 = __importDefault(require("./global"));
|
|
10
12
|
const preview_1 = __importDefault(require("./preview"));
|
|
@@ -17,7 +19,9 @@ const controllers = {
|
|
|
17
19
|
page: page_1.default,
|
|
18
20
|
global: global_1.default,
|
|
19
21
|
preview: preview_1.default,
|
|
20
|
-
|
|
22
|
+
form: form_1.default,
|
|
23
|
+
'form-admin': form_admin_1.default,
|
|
24
|
+
submission: submission_1.default,
|
|
21
25
|
navigation: strapi_1.factories.createCoreController('plugin::builder.navigation'),
|
|
22
26
|
series: strapi_1.factories.createCoreController('plugin::builder.series'),
|
|
23
27
|
'site-setting': strapi_1.factories.createCoreController('plugin::builder.site-setting'),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/src/controllers/index.ts"],"names":[],"mappings":";;;;;AAAA,2CAA2C;AAC3C,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/src/controllers/index.ts"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAC1B,8DAAqC;AACrC,8DAAsC;AACtC,2CAA2C;AAC3C,kDAA0B;AAC1B,sDAA8B;AAC9B,wDAAgC;AAEhC,MAAM,WAAW,GAA4B;IAC3C,OAAO,EAAE,kBAAS,CAAC,oBAAoB,CAAC,yBAAyB,CAAC;IAClE,MAAM,EAAE,kBAAS,CAAC,oBAAoB,CAAC,wBAAwB,CAAC;IAChE,QAAQ,EAAE,kBAAS,CAAC,oBAAoB,CAAC,0BAA0B,CAAC;IACpE,gBAAgB,EAAE,kBAAS,CAAC,oBAAoB,CAC9C,gCAAgC,CACjC;IACD,GAAG,EAAE,kBAAS,CAAC,oBAAoB,CAAC,qBAAqB,CAAC;IAC1D,IAAI,EAAJ,cAAI;IACJ,MAAM,EAAN,gBAAM;IACN,OAAO,EAAP,iBAAO;IACP,IAAI,EAAJ,cAAI;IACJ,YAAY,EAAE,oBAAS;IACvB,UAAU,EAAV,oBAAU;IACV,UAAU,EAAE,kBAAS,CAAC,oBAAoB,CAAC,4BAA4B,CAAC;IACxE,MAAM,EAAE,kBAAS,CAAC,oBAAoB,CAAC,wBAAwB,CAAC;IAChE,cAAc,EAAE,kBAAS,CAAC,oBAAoB,CAC5C,8BAA8B,CAC/B;IACD,GAAG,EAAE,kBAAS,CAAC,oBAAoB,CAAC,qBAAqB,CAAC;CAC3D,CAAC;AAEF,kBAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Core } from '@strapi/strapi';
|
|
2
|
+
declare const submission: ({ strapi }: {
|
|
3
|
+
strapi: Core.Strapi;
|
|
4
|
+
}) => {
|
|
5
|
+
redeliver(ctx: Parameters<Core.ControllerHandler>[0]): Promise<any>;
|
|
6
|
+
create(ctx: Parameters<Core.ControllerHandler>[0]): Promise<void>;
|
|
7
|
+
};
|
|
8
|
+
export default submission;
|
|
9
|
+
//# sourceMappingURL=submission.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"submission.d.ts","sourceRoot":"","sources":["../../../../server/src/controllers/submission.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAK3C,QAAA,MAAM,UAAU,GAAI,YAAY;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE;mBAChC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;gBAYxC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;CA4CvD,CAAC;AACH,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const forms_1 = require("../config/forms");
|
|
4
|
+
const form_1 = require("../validation/form");
|
|
5
|
+
const submission = ({ strapi }) => ({
|
|
6
|
+
async redeliver(ctx) {
|
|
7
|
+
const service = strapi
|
|
8
|
+
.plugin('builder')
|
|
9
|
+
.service('submission');
|
|
10
|
+
try {
|
|
11
|
+
ctx.body = { data: await service.redeliver(ctx.params.id) };
|
|
12
|
+
}
|
|
13
|
+
catch (error) {
|
|
14
|
+
if (error instanceof forms_1.SubmissionServiceError && error.status === 404)
|
|
15
|
+
return ctx.notFound('Submission or target record not found');
|
|
16
|
+
throw error;
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
async create(ctx) {
|
|
20
|
+
try {
|
|
21
|
+
const body = ctx.request.body;
|
|
22
|
+
if (!(0, form_1.isObject)(body) ||
|
|
23
|
+
Object.keys(body).some((key) => key !== 'data') ||
|
|
24
|
+
!(0, form_1.isObject)(body.data) ||
|
|
25
|
+
Object.keys(body.data).some((key) => !['fields', 'consent', 'idempotencyKey', 'formVersion'].includes(key)) ||
|
|
26
|
+
!Number.isInteger(body.data.formVersion) ||
|
|
27
|
+
Number(body.data.formVersion) < 1) {
|
|
28
|
+
throw new forms_1.SubmissionServiceError(400, 'invalid_submission');
|
|
29
|
+
}
|
|
30
|
+
const service = strapi
|
|
31
|
+
.plugin('builder')
|
|
32
|
+
.service('submission');
|
|
33
|
+
const result = await service.submit(ctx.params.slug, body.data, {
|
|
34
|
+
request: ctx.request,
|
|
35
|
+
});
|
|
36
|
+
ctx.status = 201;
|
|
37
|
+
ctx.body = { data: { id: result.id, receivedAt: result.receivedAt } };
|
|
38
|
+
}
|
|
39
|
+
catch (cause) {
|
|
40
|
+
const error = cause instanceof forms_1.SubmissionServiceError
|
|
41
|
+
? cause
|
|
42
|
+
: new forms_1.SubmissionServiceError(503, 'submission_unavailable');
|
|
43
|
+
ctx.status = error.status;
|
|
44
|
+
ctx.body = {
|
|
45
|
+
data: null,
|
|
46
|
+
error: {
|
|
47
|
+
status: error.status,
|
|
48
|
+
name: error.name,
|
|
49
|
+
message: error.message,
|
|
50
|
+
details: error.details,
|
|
51
|
+
code: error.code,
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
});
|
|
57
|
+
exports.default = submission;
|
|
58
|
+
//# sourceMappingURL=submission.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"submission.js","sourceRoot":"","sources":["../../../../server/src/controllers/submission.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limit.d.ts","sourceRoot":"","sources":["../../../../server/src/policies/rate-limit.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rate-limit.d.ts","sourceRoot":"","sources":["../../../../server/src/policies/rate-limit.ts"],"names":[],"mappings":"AAsBA,UAAU,aAAa;IACrB,OAAO,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3B;AACD,UAAU,UAAU;IAClB,GAAG,EAAE;QAAE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;CAC1C;AAED,QAAA,MAAM,SAAS,GACb,eAAe,aAAa,EAC5B,SAAS,OAAO,EAChB,YAAY;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,KACjC,OAiBF,CAAC;AAEF,eAAe,SAAS,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const utils_1 = require("@strapi/utils");
|
|
3
4
|
/**
|
|
4
|
-
* Fixed-window in-memory IP rate limit for write-heavy public routes
|
|
5
|
-
* create). Defense-in-depth: the demo-web Next route rate-limits first, but a
|
|
5
|
+
* Fixed-window in-memory IP rate limit for write-heavy public submission routes. Defense-in-depth: the demo-web Next route rate-limits first, but a
|
|
6
6
|
* caller hitting Strapi's public create route directly is throttled here too.
|
|
7
7
|
*
|
|
8
8
|
* Single-instance only — a shared store (Redis) is needed for multi-instance
|
|
@@ -30,8 +30,8 @@ const rateLimit = (policyContext, _config, { strapi }) => {
|
|
|
30
30
|
}
|
|
31
31
|
entry.count += 1;
|
|
32
32
|
if (entry.count > MAX_REQUESTS) {
|
|
33
|
-
strapi.log.warn(`[builder]
|
|
34
|
-
|
|
33
|
+
strapi.log.warn(`[builder] submission rate limit hit for ip=${ip}`);
|
|
34
|
+
throw new utils_1.errors.RateLimitError('Too many submissions.');
|
|
35
35
|
}
|
|
36
36
|
return true;
|
|
37
37
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rate-limit.js","sourceRoot":"","sources":["../../../../server/src/policies/rate-limit.ts"],"names":[],"mappings":";;AAAA
|
|
1
|
+
{"version":3,"file":"rate-limit.js","sourceRoot":"","sources":["../../../../server/src/policies/rate-limit.ts"],"names":[],"mappings":";;AAAA,yCAAuC;AAEvC;;;;;;GAMG;AACH,MAAM,SAAS,GAAG,KAAM,CAAC;AACzB,MAAM,YAAY,GAAG,CAAC,CAAC;AACvB,MAAM,IAAI,GAAG,IAAI,GAAG,EAA8C,CAAC;AAEnE,yDAAyD;AACzD,SAAS,KAAK,CAAC,GAAW;IACxB,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;QAC/B,IAAI,GAAG,GAAG,KAAK,CAAC,OAAO;YAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAWD,MAAM,SAAS,GAAG,CAChB,aAA4B,EAC5B,OAAgB,EAChB,EAAE,MAAM,EAA0B,EACzB,EAAE;IACX,MAAM,EAAE,GAAW,aAAa,CAAC,OAAO,EAAE,EAAE,IAAI,SAAS,CAAC;IAC1D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,IAAI,CAAC,IAAI,GAAG,GAAG;QAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAE3B,IAAI,CAAC,KAAK,IAAI,GAAG,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,GAAG,SAAS,EAAE,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;IACjB,IAAI,KAAK,CAAC,KAAK,GAAG,YAAY,EAAE,CAAC;QAC/B,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,8CAA8C,EAAE,EAAE,CAAC,CAAC;QACpE,MAAM,IAAI,cAAM,CAAC,cAAc,CAAC,uBAAuB,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC"}
|
|
@@ -23,7 +23,7 @@ export interface BuilderPreviewConfig {
|
|
|
23
23
|
uids?: string[];
|
|
24
24
|
resolvePath?: (uid: string, document: BuilderPreviewDocument) => string | null;
|
|
25
25
|
}
|
|
26
|
-
export declare const PREVIEW_UIDS: readonly ["plugin::builder.page", "plugin::builder.article"];
|
|
26
|
+
export declare const PREVIEW_UIDS: readonly ["plugin::builder.page", "plugin::builder.article", "plugin::builder.legal-document"];
|
|
27
27
|
export interface BuilderPreviewOptions {
|
|
28
28
|
documentId: string;
|
|
29
29
|
locale?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../server/src/preview/handler.ts"],"names":[],"mappings":"AAKA,UAAU,aAAa;IACrB,MAAM,EAAE;QAAE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACtC,SAAS,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,QAAQ,KAAK,MAAM,IAAI,MAAM,EAAE,GAAG;QAC1D,OAAO,CAAC,OAAO,EAAE;YACf,UAAU,EAAE,MAAM,CAAC;YACnB,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,MAAM,EAAE,OAAO,GAAG,WAAW,CAAC;SAC/B,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,CACZ,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,sBAAsB,KAC7B,MAAM,GAAG,IAAI,CAAC;CACpB;AAED,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../server/src/preview/handler.ts"],"names":[],"mappings":"AAKA,UAAU,aAAa;IACrB,MAAM,EAAE;QAAE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAC;IACtC,SAAS,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,QAAQ,KAAK,MAAM,IAAI,MAAM,EAAE,GAAG;QAC1D,OAAO,CAAC,OAAO,EAAE;YACf,UAAU,EAAE,MAAM,CAAC;YACnB,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,MAAM,EAAE,OAAO,GAAG,WAAW,CAAC;SAC/B,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,CACZ,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,sBAAsB,KAC7B,MAAM,GAAG,IAAI,CAAC;CACpB;AAED,eAAO,MAAM,YAAY,gGAIf,CAAC;AAEX,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,qBAAqB,GAAG,CAClC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,qBAAqB,KAC3B,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;AAE5C,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,CAY9D;AAED,wBAAsB,aAAa,CACjC,MAAM,EAAE,aAAa,EACrB,GAAG,EAAE,MAAM,EACX,EAAE,UAAU,EAAE,MAAM,EAAE,MAAgB,EAAE,EAAE,qBAAqB,GAC9D,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAiBxB;AAED,gEAAgE;AAChE,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,sBAAsB,EAChC,MAAM,GAAE,MAAgB,GACvB,MAAM,GAAG,IAAI,CAwCf;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,aAAa,EACrB,QAAQ,CAAC,EAAE,qBAAqB,GAC/B,qBAAqB,CAYvB"}
|
|
@@ -11,6 +11,7 @@ const preview_token_1 = require("../preview-token");
|
|
|
11
11
|
exports.PREVIEW_UIDS = [
|
|
12
12
|
'plugin::builder.page',
|
|
13
13
|
'plugin::builder.article',
|
|
14
|
+
'plugin::builder.legal-document',
|
|
14
15
|
];
|
|
15
16
|
function getPreviewUids(strapi) {
|
|
16
17
|
const pluginConfig = strapi.config.get('plugin::builder');
|
|
@@ -47,10 +48,15 @@ function signPreviewDocument(strapi, uid, document, status = 'draft') {
|
|
|
47
48
|
if (!secret)
|
|
48
49
|
return null;
|
|
49
50
|
const isDefault = exports.PREVIEW_UIDS.some((defaultUid) => defaultUid === uid);
|
|
51
|
+
const prefix = uid === 'plugin::builder.article'
|
|
52
|
+
? '/articles'
|
|
53
|
+
: uid === 'plugin::builder.legal-document'
|
|
54
|
+
? '/legal'
|
|
55
|
+
: '';
|
|
50
56
|
const path = config.resolvePath
|
|
51
57
|
? config.resolvePath(uid, document)
|
|
52
58
|
: isDefault && document.slug
|
|
53
|
-
? `${
|
|
59
|
+
? `${prefix}/${encodeURIComponent(document.slug)}`
|
|
54
60
|
: null;
|
|
55
61
|
if (typeof path !== 'string' || !(0, preview_token_1.isSafePreviewPath)(path))
|
|
56
62
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../server/src/preview/handler.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../server/src/preview/handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../server/src/register.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../server/src/register.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAuD3C;;;;GAIG;AACH,QAAA,MAAM,QAAQ,GAAI,YAAY;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE,SA2IpD,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
|
@@ -10,6 +10,7 @@ const mcp_1 = require("./mcp");
|
|
|
10
10
|
const preview_1 = require("./preview");
|
|
11
11
|
const structured_data_1 = require("./validation/structured-data");
|
|
12
12
|
const robots_txt_1 = require("./validation/robots-txt");
|
|
13
|
+
const form_1 = require("./validation/form");
|
|
13
14
|
const PROXY_RATE_LIMIT_WARNING = 'Rate limiting uses request.ip, but server.proxy.koa is not enabled. ' +
|
|
14
15
|
'When running behind a proxy or CDN, set server: { proxy: { koa: true } } ' +
|
|
15
16
|
'to prevent all clients from sharing one rate-limit bucket.';
|
|
@@ -75,12 +76,6 @@ const register = ({ strapi }) => {
|
|
|
75
76
|
}
|
|
76
77
|
componentRegistry.add(componentsMap);
|
|
77
78
|
const pluginConfig = strapi.config.get('plugin::builder');
|
|
78
|
-
const inquiryAttributes = pluginConfig.inquiry?.attributes;
|
|
79
|
-
if (inquiryAttributes && Object.keys(inquiryAttributes).length > 0) {
|
|
80
|
-
const inquiry = strapi.contentTypes['plugin::builder.inquiry'];
|
|
81
|
-
Object.assign(inquiry.attributes, inquiryAttributes);
|
|
82
|
-
Object.assign(inquiry.__schema__.attributes, inquiryAttributes);
|
|
83
|
-
}
|
|
84
79
|
const extraBlocks = Object.entries(pluginConfig.blocks.extra);
|
|
85
80
|
const page = strapi.contentTypes['plugin::builder.page'];
|
|
86
81
|
const global = strapi.contentTypes['plugin::builder.global'];
|
|
@@ -136,6 +131,7 @@ const register = ({ strapi }) => {
|
|
|
136
131
|
}
|
|
137
132
|
strapi.documents.use((0, structured_data_1.createStructuredDataMiddleware)(strapi));
|
|
138
133
|
strapi.documents.use((0, robots_txt_1.createRobotsTxtMiddleware)());
|
|
134
|
+
strapi.documents.use((0, form_1.createFormMiddleware)(strapi));
|
|
139
135
|
(0, preview_1.registerBuilderPreview)(strapi);
|
|
140
136
|
(0, mcp_1.registerBuilderMcp)(strapi);
|
|
141
137
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../server/src/register.ts"],"names":[],"mappings":";;;;;AACA,gDAAwB;AACxB,4CAAoB;AAGpB,2EAGqC;AACrC,+BAA2C;AAC3C,uCAAmD;AAEnD,kEAA8E;AAC9E,wDAAoE;
|
|
1
|
+
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../server/src/register.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,26 @@
|
|
|
1
1
|
declare const admin: {
|
|
2
2
|
type: "admin";
|
|
3
3
|
prefix: string;
|
|
4
|
-
routes: {
|
|
4
|
+
routes: ({
|
|
5
|
+
method: string;
|
|
6
|
+
path: string;
|
|
7
|
+
handler: string;
|
|
8
|
+
config: {
|
|
9
|
+
policies: (string | {
|
|
10
|
+
name: string;
|
|
11
|
+
config: {
|
|
12
|
+
actions: string[];
|
|
13
|
+
};
|
|
14
|
+
})[];
|
|
15
|
+
};
|
|
16
|
+
} | {
|
|
5
17
|
method: string;
|
|
6
18
|
path: string;
|
|
7
19
|
handler: string;
|
|
8
20
|
config: {
|
|
9
21
|
auth: boolean;
|
|
10
22
|
};
|
|
11
|
-
}[];
|
|
23
|
+
})[];
|
|
12
24
|
};
|
|
13
25
|
export default admin;
|
|
14
26
|
//# sourceMappingURL=admin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../../server/src/routes/admin.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,KAAK
|
|
1
|
+
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../../server/src/routes/admin.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;CAuDV,CAAC;AAEF,eAAe,KAAK,CAAC"}
|
|
@@ -4,6 +4,50 @@ const admin = {
|
|
|
4
4
|
type: 'admin',
|
|
5
5
|
prefix: '/plugins/builder',
|
|
6
6
|
routes: [
|
|
7
|
+
...[
|
|
8
|
+
['GET', '/forms/targets', 'targets'],
|
|
9
|
+
['GET', '/forms/fields', 'fields'],
|
|
10
|
+
['POST', '/forms/import', 'import'],
|
|
11
|
+
['GET', '/forms', 'find'],
|
|
12
|
+
['POST', '/forms', 'create'],
|
|
13
|
+
['GET', '/forms/:documentId/export', 'export'],
|
|
14
|
+
['POST', '/forms/:documentId/test-send', 'testSend'],
|
|
15
|
+
['PUT', '/forms/:documentId/import', 'import'],
|
|
16
|
+
['GET', '/forms/:documentId', 'findOne'],
|
|
17
|
+
['PUT', '/forms/:documentId', 'update'],
|
|
18
|
+
['DELETE', '/forms/:documentId', 'delete'],
|
|
19
|
+
].map(([method, path, action]) => ({
|
|
20
|
+
method: method,
|
|
21
|
+
path: path,
|
|
22
|
+
handler: `form-admin.${action}`,
|
|
23
|
+
config: {
|
|
24
|
+
policies: [
|
|
25
|
+
'admin::isAuthenticatedAdmin',
|
|
26
|
+
{
|
|
27
|
+
name: 'admin::hasPermissions',
|
|
28
|
+
config: {
|
|
29
|
+
actions: [
|
|
30
|
+
`plugin::builder.forms.${method === 'GET' ? 'read' : 'update'}`,
|
|
31
|
+
],
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
],
|
|
35
|
+
},
|
|
36
|
+
})),
|
|
37
|
+
{
|
|
38
|
+
method: 'POST',
|
|
39
|
+
path: '/submissions/:id/redeliver',
|
|
40
|
+
handler: 'submission.redeliver',
|
|
41
|
+
config: {
|
|
42
|
+
policies: [
|
|
43
|
+
'admin::isAuthenticatedAdmin',
|
|
44
|
+
{
|
|
45
|
+
name: 'admin::hasPermissions',
|
|
46
|
+
config: { actions: ['plugin::builder.forms.update'] },
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
},
|
|
50
|
+
},
|
|
7
51
|
{
|
|
8
52
|
method: 'GET',
|
|
9
53
|
path: '/previews/:file',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../../../../server/src/routes/admin.ts"],"names":[],"mappings":";;AAAA,MAAM,KAAK,GAAG;IACZ,IAAI,EAAE,OAAgB;IACtB,MAAM,EAAE,kBAAkB;IAC1B,MAAM,EAAE;QACN;YACE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,cAAc;YACvB,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;SACxB;KACF;CACF,CAAC;AAEF,kBAAe,KAAK,CAAC"}
|
|
1
|
+
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../../../../server/src/routes/admin.ts"],"names":[],"mappings":";;AAAA,MAAM,KAAK,GAAG;IACZ,IAAI,EAAE,OAAgB;IACtB,MAAM,EAAE,kBAAkB;IAC1B,MAAM,EAAE;QACN,GAAG;YACD,CAAC,KAAK,EAAE,gBAAgB,EAAE,SAAS,CAAC;YACpC,CAAC,KAAK,EAAE,eAAe,EAAE,QAAQ,CAAC;YAClC,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,CAAC;YACnC,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC;YACzB,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;YAC5B,CAAC,KAAK,EAAE,2BAA2B,EAAE,QAAQ,CAAC;YAC9C,CAAC,MAAM,EAAE,8BAA8B,EAAE,UAAU,CAAC;YACpD,CAAC,KAAK,EAAE,2BAA2B,EAAE,QAAQ,CAAC;YAC9C,CAAC,KAAK,EAAE,oBAAoB,EAAE,SAAS,CAAC;YACxC,CAAC,KAAK,EAAE,oBAAoB,EAAE,QAAQ,CAAC;YACvC,CAAC,QAAQ,EAAE,oBAAoB,EAAE,QAAQ,CAAC;SAC3C,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YACjC,MAAM,EAAE,MAAO;YACf,IAAI,EAAE,IAAK;YACX,OAAO,EAAE,cAAc,MAAM,EAAE;YAC/B,MAAM,EAAE;gBACN,QAAQ,EAAE;oBACR,6BAA6B;oBAC7B;wBACE,IAAI,EAAE,uBAAuB;wBAC7B,MAAM,EAAE;4BACN,OAAO,EAAE;gCACP,yBAAyB,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;6BAChE;yBACF;qBACF;iBACF;aACF;SACF,CAAC,CAAC;QACH;YACE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,4BAA4B;YAClC,OAAO,EAAE,sBAAsB;YAC/B,MAAM,EAAE;gBACN,QAAQ,EAAE;oBACR,6BAA6B;oBAC7B;wBACE,IAAI,EAAE,uBAAuB;wBAC7B,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,8BAA8B,CAAC,EAAE;qBACtD;iBACF;aACF;SACF;QACD;YACE,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,cAAc;YACvB,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;SACxB;KACF;CACF,CAAC;AAEF,kBAAe,KAAK,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-api.d.ts","sourceRoot":"","sources":["../../../../server/src/routes/content-api.ts"],"names":[],"mappings":"AAIA,UAAU,eAAe;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"content-api.d.ts","sourceRoot":"","sources":["../../../../server/src/routes/content-api.ts"],"names":[],"mappings":"AAIA,UAAU,eAAe;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;CACjC;AAED,UAAU,gBAAgB;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAuBD,QAAA,MAAM,UAAU,EAAE,gBA4BjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -16,8 +16,8 @@ const contentTypes = [
|
|
|
16
16
|
'plugin::builder.tag',
|
|
17
17
|
];
|
|
18
18
|
const routesByApp = new WeakMap();
|
|
19
|
-
function getCoreRoutes(uid
|
|
20
|
-
const router = strapi_1.factories.createCoreRouter(uid
|
|
19
|
+
function getCoreRoutes(uid) {
|
|
20
|
+
const router = strapi_1.factories.createCoreRouter(uid);
|
|
21
21
|
return typeof router.routes === 'function' ? router.routes() : router.routes;
|
|
22
22
|
}
|
|
23
23
|
const contentApi = {
|
|
@@ -33,13 +33,16 @@ const contentApi = {
|
|
|
33
33
|
const coreRoutes = contentTypes
|
|
34
34
|
.filter((uid) => (0, content_type_availability_1.isBuilderContentTypeEnabled)(config, uid))
|
|
35
35
|
.flatMap((uid) => getCoreRoutes(uid));
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
36
|
+
cachedRoutes = [
|
|
37
|
+
...coreRoutes,
|
|
38
|
+
{ method: 'GET', path: '/forms/:slug', handler: 'form.find' },
|
|
39
|
+
{
|
|
40
|
+
method: 'POST',
|
|
41
|
+
path: '/forms/:slug/submissions',
|
|
42
|
+
handler: 'submission.create',
|
|
43
|
+
config: { policies: ['plugin::builder.rate-limit'] },
|
|
44
|
+
},
|
|
45
|
+
];
|
|
43
46
|
routesByApp.set(app, cachedRoutes);
|
|
44
47
|
}
|
|
45
48
|
return cachedRoutes;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-api.js","sourceRoot":"","sources":["../../../../server/src/routes/content-api.ts"],"names":[],"mappings":";;AAAA,2CAA2C;AAC3C,4EAA2E;
|
|
1
|
+
{"version":3,"file":"content-api.js","sourceRoot":"","sources":["../../../../server/src/routes/content-api.ts"],"names":[],"mappings":";;AAAA,2CAA2C;AAC3C,4EAA2E;AAe3E,MAAM,YAAY,GAAG;IACnB,yBAAyB;IACzB,wBAAwB;IACxB,0BAA0B;IAC1B,gCAAgC;IAChC,qBAAqB;IACrB,wBAAwB;IACxB,4BAA4B;IAC5B,sBAAsB;IACtB,wBAAwB;IACxB,8BAA8B;IAC9B,qBAAqB;CACb,CAAC;AAEX,MAAM,WAAW,GAAG,IAAI,OAAO,EAA6B,CAAC;AAE7D,SAAS,aAAa,CAAC,GAAqD;IAC1E,MAAM,MAAM,GAAG,kBAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAC/C,OAAO,OAAO,MAAM,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,GAAqB;IACnC,IAAI,EAAE,aAAa;IACnB,IAAI,MAAM;QACR,sEAAsE;QACtE,2EAA2E;QAC3E,mEAAmE;QACnE,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC;QAC1B,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAiB,CAAkB,CAAC;QAClE,IAAI,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,UAAU,GAAG,YAAY;iBAC5B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAA,uDAA2B,EAAC,MAAM,EAAE,GAAG,CAAC,CAAC;iBACzD,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;YACxC,YAAY,GAAG;gBACb,GAAG,UAAU;gBACb,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW,EAAE;gBAC7D;oBACE,MAAM,EAAE,MAAM;oBACd,IAAI,EAAE,0BAA0B;oBAChC,OAAO,EAAE,mBAAmB;oBAC5B,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,4BAA4B,CAAC,EAAE;iBACrD;aACF,CAAC;YACF,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;CACF,CAAC;AAEF,kBAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Core } from '@strapi/strapi';
|
|
2
|
+
import type { FormField } from '../validation/form';
|
|
3
|
+
interface FormService {
|
|
4
|
+
targets(): {
|
|
5
|
+
uid: string;
|
|
6
|
+
name: string;
|
|
7
|
+
}[];
|
|
8
|
+
fields(uid: unknown): FormField[];
|
|
9
|
+
find(): Promise<Record<string, unknown>[]>;
|
|
10
|
+
findOne(documentId: string): Promise<Record<string, unknown> | null>;
|
|
11
|
+
create(data: unknown): Promise<Record<string, unknown>>;
|
|
12
|
+
update(documentId: string, data: unknown): Promise<Record<string, unknown> | null>;
|
|
13
|
+
delete(documentId: string): Promise<unknown>;
|
|
14
|
+
export(documentId: string): Promise<Record<string, unknown> | null>;
|
|
15
|
+
import(data: unknown, documentId?: string): Promise<Record<string, unknown> | null>;
|
|
16
|
+
}
|
|
17
|
+
declare const form: ({ strapi }: {
|
|
18
|
+
strapi: Core.Strapi;
|
|
19
|
+
}) => FormService;
|
|
20
|
+
export default form;
|
|
21
|
+
//# sourceMappingURL=form.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form.d.ts","sourceRoot":"","sources":["../../../../server/src/services/form.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAU3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAEpD,UAAU,WAAW;IACnB,OAAO,IAAI;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC3C,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,SAAS,EAAE,CAAC;IAClC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IACrE,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxD,MAAM,CACJ,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,OAAO,GACZ,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IAC3C,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;IACpE,MAAM,CACJ,IAAI,EAAE,OAAO,EACb,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;CAC5C;AAED,QAAA,MAAM,IAAI,GAAI,YAAY;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE,KAAG,WAsClD,CAAC;AAEH,eAAe,IAAI,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const utils_1 = require("@strapi/utils");
|
|
4
|
+
const form_1 = require("../validation/form");
|
|
5
|
+
const form = ({ strapi }) => ({
|
|
6
|
+
targets() {
|
|
7
|
+
return (0, form_1.listFormTargets)(strapi);
|
|
8
|
+
},
|
|
9
|
+
fields(uid) {
|
|
10
|
+
return (0, form_1.listFormFields)(strapi, uid);
|
|
11
|
+
},
|
|
12
|
+
async find() {
|
|
13
|
+
return strapi.documents(form_1.FORM_UID).findMany({ sort: 'slug:asc' });
|
|
14
|
+
},
|
|
15
|
+
async findOne(documentId) {
|
|
16
|
+
return strapi.documents(form_1.FORM_UID).findOne({ documentId });
|
|
17
|
+
},
|
|
18
|
+
async create(data) {
|
|
19
|
+
const definition = (0, form_1.validateFormDefinition)(strapi, data);
|
|
20
|
+
return strapi.documents(form_1.FORM_UID).create({ data: definition });
|
|
21
|
+
},
|
|
22
|
+
async update(documentId, data) {
|
|
23
|
+
// Middleware merges partial updates with the stored definition, validates
|
|
24
|
+
// against the current target schema, and assigns the next version.
|
|
25
|
+
if (!(0, form_1.isObject)(data))
|
|
26
|
+
throw new utils_1.errors.ValidationError('form: expected data.');
|
|
27
|
+
return strapi.documents(form_1.FORM_UID).update({ documentId, data });
|
|
28
|
+
},
|
|
29
|
+
async delete(documentId) {
|
|
30
|
+
return strapi.documents(form_1.FORM_UID).delete({ documentId });
|
|
31
|
+
},
|
|
32
|
+
async export(documentId) {
|
|
33
|
+
const saved = await strapi.documents(form_1.FORM_UID).findOne({ documentId });
|
|
34
|
+
return saved ? (0, form_1.exportFormDefinition)(saved) : null;
|
|
35
|
+
},
|
|
36
|
+
async import(data, documentId) {
|
|
37
|
+
// Import is a full portable definition, with the same validation as create.
|
|
38
|
+
const definition = (0, form_1.validateFormDefinition)(strapi, data);
|
|
39
|
+
return documentId
|
|
40
|
+
? this.update(documentId, definition)
|
|
41
|
+
: this.create(definition);
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
exports.default = form;
|
|
45
|
+
//# sourceMappingURL=form.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form.js","sourceRoot":"","sources":["../../../../server/src/services/form.ts"],"names":[],"mappings":";;AACA,yCAAuC;AACvC,6CAO4B;AAqB5B,MAAM,IAAI,GAAG,CAAC,EAAE,MAAM,EAA2B,EAAe,EAAE,CAAC,CAAC;IAClE,OAAO;QACL,OAAO,IAAA,sBAAe,EAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IACD,MAAM,CAAC,GAAY;QACjB,OAAO,IAAA,qBAAc,EAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IACD,KAAK,CAAC,IAAI;QACR,OAAO,MAAM,CAAC,SAAS,CAAC,eAAQ,CAAC,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IACnE,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,UAAkB;QAC9B,OAAO,MAAM,CAAC,SAAS,CAAC,eAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,IAAa;QACxB,MAAM,UAAU,GAAG,IAAA,6BAAsB,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACxD,OAAO,MAAM,CAAC,SAAS,CAAC,eAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,UAAkB,EAAE,IAAa;QAC5C,0EAA0E;QAC1E,mEAAmE;QACnE,IAAI,CAAC,IAAA,eAAQ,EAAC,IAAI,CAAC;YACjB,MAAM,IAAI,cAAM,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAC;QAC3D,OAAO,MAAM,CAAC,SAAS,CAAC,eAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,UAAkB;QAC7B,OAAO,MAAM,CAAC,SAAS,CAAC,eAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;IAC3D,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,UAAkB;QAC7B,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,eAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;QACvE,OAAO,KAAK,CAAC,CAAC,CAAC,IAAA,2BAAoB,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACpD,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,IAAa,EAAE,UAAmB;QAC7C,4EAA4E;QAC5E,MAAM,UAAU,GAAG,IAAA,6BAAsB,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACxD,OAAO,UAAU;YACf,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,UAAU,CAAC;YACrC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;CACF,CAAC,CAAC;AAEH,kBAAe,IAAI,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"idempotency-collision.d.ts","sourceRoot":"","sources":["../../../../server/src/services/idempotency-collision.ts"],"names":[],"mappings":"AAEA,+EAA+E;AAC/E,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAyB9D"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isIdempotencyCollision = isIdempotencyCollision;
|
|
4
|
+
const form_1 = require("../validation/form");
|
|
5
|
+
/** Only recover a collision on our unique key, never unrelated DB failures. */
|
|
6
|
+
function isIdempotencyCollision(error) {
|
|
7
|
+
if (!(0, form_1.isObject)(error))
|
|
8
|
+
return false;
|
|
9
|
+
if ((error.code === 'SQLITE_CONSTRAINT_UNIQUE' || error.code === '23505') &&
|
|
10
|
+
/idempotency_key/.test(String(error.message ?? error.constraint)))
|
|
11
|
+
return true;
|
|
12
|
+
if (error.name === 'ValidationError' &&
|
|
13
|
+
(0, form_1.isObject)(error.details) &&
|
|
14
|
+
Array.isArray(error.details.errors)) {
|
|
15
|
+
return (error.details.errors.length > 0 &&
|
|
16
|
+
error.details.errors.every((item) => (0, form_1.isObject)(item) &&
|
|
17
|
+
Array.isArray(item.path) &&
|
|
18
|
+
item.path.length === 1 &&
|
|
19
|
+
item.path[0] === 'idempotencyKey' &&
|
|
20
|
+
item.message === 'This attribute must be unique'));
|
|
21
|
+
}
|
|
22
|
+
return error.cause !== undefined && isIdempotencyCollision(error.cause);
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=idempotency-collision.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"idempotency-collision.js","sourceRoot":"","sources":["../../../../server/src/services/idempotency-collision.ts"],"names":[],"mappings":";;AAGA,wDAyBC;AA5BD,6CAA8C;AAE9C,+EAA+E;AAC/E,SAAgB,sBAAsB,CAAC,KAAc;IACnD,IAAI,CAAC,IAAA,eAAQ,EAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACnC,IACE,CAAC,KAAK,CAAC,IAAI,KAAK,0BAA0B,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,CAAC;QACrE,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;QAEjE,OAAO,IAAI,CAAC;IACd,IACE,KAAK,CAAC,IAAI,KAAK,iBAAiB;QAChC,IAAA,eAAQ,EAAC,KAAK,CAAC,OAAO,CAAC;QACvB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EACnC,CAAC;QACD,OAAO,CACL,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YAC/B,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CACxB,CAAC,IAAa,EAAE,EAAE,CAChB,IAAA,eAAQ,EAAC,IAAI,CAAC;gBACd,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,gBAAgB;gBACjC,IAAI,CAAC,OAAO,KAAK,+BAA+B,CACnD,CACF,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,KAAK,SAAS,IAAI,sBAAsB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AAC1E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/services/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/services/index.ts"],"names":[],"mappings":"AAOA,QAAA,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAmBrC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|