@dani-builder/strapi-plugin-builder 0.10.0 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/dist/server/src/components/blocks/inquiry-form.json +7 -0
  2. package/dist/server/src/config/builder.d.ts +4 -2
  3. package/dist/server/src/config/builder.d.ts.map +1 -1
  4. package/dist/server/src/config/builder.js.map +1 -1
  5. package/dist/server/src/config/index.d.ts +25 -0
  6. package/dist/server/src/config/index.d.ts.map +1 -1
  7. package/dist/server/src/config/index.js +95 -1
  8. package/dist/server/src/config/index.js.map +1 -1
  9. package/dist/server/src/content-type-availability.d.ts +19 -0
  10. package/dist/server/src/content-type-availability.d.ts.map +1 -0
  11. package/dist/server/src/content-type-availability.js +61 -0
  12. package/dist/server/src/content-type-availability.js.map +1 -0
  13. package/dist/server/src/content-type-config.d.ts +6 -0
  14. package/dist/server/src/content-type-config.d.ts.map +1 -0
  15. package/dist/server/src/content-type-config.js +13 -0
  16. package/dist/server/src/content-type-config.js.map +1 -0
  17. package/dist/server/src/content-types/category/index.d.ts +6 -0
  18. package/dist/server/src/content-types/category/index.d.ts.map +1 -1
  19. package/dist/server/src/content-types/category/schema.json +6 -0
  20. package/dist/server/src/content-types/faq/index.d.ts +1 -0
  21. package/dist/server/src/content-types/faq/index.d.ts.map +1 -1
  22. package/dist/server/src/content-types/faq/schema.json +3 -2
  23. package/dist/server/src/content-types/index.d.ts +32 -0
  24. package/dist/server/src/content-types/index.d.ts.map +1 -1
  25. package/dist/server/src/content-types/inquiry/index.d.ts +25 -0
  26. package/dist/server/src/content-types/inquiry/index.d.ts.map +1 -1
  27. package/dist/server/src/content-types/inquiry/schema.json +34 -3
  28. package/dist/server/src/controllers/index.d.ts.map +1 -1
  29. package/dist/server/src/controllers/index.js +2 -1
  30. package/dist/server/src/controllers/index.js.map +1 -1
  31. package/dist/server/src/controllers/inquiry.d.ts +8 -0
  32. package/dist/server/src/controllers/inquiry.d.ts.map +1 -0
  33. package/dist/server/src/controllers/inquiry.js +27 -0
  34. package/dist/server/src/controllers/inquiry.js.map +1 -0
  35. package/dist/server/src/preview/handler.d.ts +1 -1
  36. package/dist/server/src/preview/handler.d.ts.map +1 -1
  37. package/dist/server/src/preview/handler.js +8 -4
  38. package/dist/server/src/preview/handler.js.map +1 -1
  39. package/dist/server/src/register.d.ts.map +1 -1
  40. package/dist/server/src/register.js +23 -0
  41. package/dist/server/src/register.js.map +1 -1
  42. package/dist/server/src/routes/content-api.d.ts.map +1 -1
  43. package/dist/server/src/routes/content-api.js +15 -6
  44. package/dist/server/src/routes/content-api.js.map +1 -1
  45. package/dist/server/src/services/index.d.ts.map +1 -1
  46. package/dist/server/src/services/index.js +2 -1
  47. package/dist/server/src/services/index.js.map +1 -1
  48. package/dist/server/src/services/inquiry.d.ts +15 -0
  49. package/dist/server/src/services/inquiry.d.ts.map +1 -0
  50. package/dist/server/src/services/inquiry.js +137 -0
  51. package/dist/server/src/services/inquiry.js.map +1 -0
  52. package/package.json +1 -1
@@ -17,6 +17,13 @@
17
17
  },
18
18
  "errorMessage": {
19
19
  "type": "text"
20
+ },
21
+ "consentLabel": {
22
+ "type": "text"
23
+ },
24
+ "consentVersion": {
25
+ "type": "string",
26
+ "maxLength": 120
20
27
  }
21
28
  }
22
29
  }
@@ -1,8 +1,10 @@
1
- import type { BuilderPreviewConfig } from './index';
2
- export type { BuilderPreviewConfig, BuilderPreviewDocument } from './index';
1
+ import type { BuilderContentTypesConfig, BuilderInquiryConfig, BuilderPreviewConfig } from './index';
2
+ export type { BuilderContentTypesConfig, BuilderOptionalContentType, BuilderInquiryConfig, InquiryAttribute, InquirySubmission, BuilderPreviewConfig, BuilderPreviewDocument, } from './index';
3
3
  type ConfigValue = Record<string, unknown>;
4
4
  export interface BuilderPluginOptions extends ConfigValue {
5
5
  preview?: BuilderPreviewConfig | false;
6
+ contentTypes?: BuilderContentTypesConfig;
7
+ inquiry?: BuilderInquiryConfig;
6
8
  }
7
9
  export interface BuilderPluginConfig {
8
10
  enabled: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../../server/src/config/builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAE5E,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE3C,MAAM,WAAW,oBAAqB,SAAQ,WAAW;IACvD,OAAO,CAAC,EAAE,oBAAoB,GAAG,KAAK,CAAC;CACxC;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE;QACN,qBAAqB,EAAE;YACrB,WAAW,EAAE,OAAO,CAAC;YACrB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SACrC,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAClC,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;IACpE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CACpD;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,UAAU,CAAC;CACjB;AAED,wBAAgB,aAAa,CAAC,EAAE,GAAG,EAAE,EAAE,mBAAmB,GAAG,WAAW,CAsCvE;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,mBAAmB,EAC5B,aAAa,CAAC,EAAE,oBAAoB,GACnC,mBAAmB,CAKrB;AAED,wBAAgB,kBAAkB,CAAC,EACjC,GAAG,GACJ,EAAE,mBAAmB,GAAG,uBAAuB,CAoC/C"}
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../../server/src/config/builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,yBAAyB,EACzB,0BAA0B,EAC1B,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,SAAS,CAAC;AAEjB,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE3C,MAAM,WAAW,oBAAqB,SAAQ,WAAW;IACvD,OAAO,CAAC,EAAE,oBAAoB,GAAG,KAAK,CAAC;IACvC,YAAY,CAAC,EAAE,yBAAyB,CAAC;IACzC,OAAO,CAAC,EAAE,oBAAoB,CAAC;CAChC;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE;QACN,qBAAqB,EAAE;YACrB,WAAW,EAAE,OAAO,CAAC;YACrB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;SACrC,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAClC,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;IACpE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CACpD;AAED,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,UAAU,CAAC;CACjB;AAED,wBAAgB,aAAa,CAAC,EAAE,GAAG,EAAE,EAAE,mBAAmB,GAAG,WAAW,CAsCvE;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,mBAAmB,EAC5B,aAAa,CAAC,EAAE,oBAAoB,GACnC,mBAAmB,CAKrB;AAED,wBAAgB,kBAAkB,CAAC,EACjC,GAAG,GACJ,EAAE,mBAAmB,GAAG,uBAAuB,CAoC/C"}
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../../server/src/config/builder.ts"],"names":[],"mappings":";;AAkCA,sCAsCC;AAED,wCAQC;AAED,gDAsCC;AAxFD,SAAgB,aAAa,CAAC,EAAE,GAAG,EAAuB;IACxD,MAAM,QAAQ,GAAG,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC;IAEjC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEvB,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAE1C,OAAO;QACL,QAAQ,EAAE,QAAQ;QAClB,eAAe,EAAE;YACf,OAAO,EAAE,GAAG,CAAC,aAAa,EAAE,SAAS,CAAC;YACtC,SAAS,EAAE;gBACT,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,GAAG,CAAC,mBAAmB,CAAC;oBACtD,CAAC,CAAC;wBACE,WAAW,EAAE;4BACX,WAAW,EAAE,GAAG,CAAC,mBAAmB,CAAC;4BACrC,eAAe,EAAE,GAAG,CAAC,mBAAmB,CAAC;yBAC1C;qBACF;oBACH,CAAC,CAAC,EAAE,CAAC;gBACP,MAAM,EAAE,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC;gBACpC,QAAQ;gBACR,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACnE,MAAM,EAAE;oBACN,MAAM,EAAE,MAAM;oBACd,yEAAyE;oBACzE,kEAAkE;oBAClE,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;iBACtC;aACF;SACF;QACD,aAAa,EAAE;YACb,MAAM,EAAE,EAAE;YACV,YAAY,EAAE,EAAE;YAChB,MAAM,EAAE,EAAE;SACX;KACF,CAAC;AACJ,CAAC;AAED,SAAgB,cAAc,CAC5B,OAA4B,EAC5B,aAAoC;IAEpC,OAAO;QACL,OAAO,EAAE,IAAI;QACb,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpD,CAAC;AACJ,CAAC;AAED,SAAgB,kBAAkB,CAAC,EACjC,GAAG,GACiB;IACpB,MAAM,UAAU,GAAG;QACjB,GAAG,CAAC,aAAa,CAAC;QAClB,GAAG,CAAC,cAAc,CAAC;QACnB,GAAG,CAAC,iBAAiB,CAAC;KACvB;SACE,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SAClD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,IAAI,CAAC;YACH,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,KAAK,EAAE,CAAC;iBAClE,IAAI,CAAC;QACV,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,MAAM,EAAE;YACN,qBAAqB,EAAE;gBACrB,WAAW,EAAE,IAAI;gBACjB,UAAU,EAAE;oBACV,aAAa,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;oBACnC,SAAS,EAAE;wBACT,QAAQ;wBACR,OAAO;wBACP,OAAO;wBACP,yBAAyB;wBACzB,GAAG,UAAU;qBACd;oBACD,WAAW,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;oBACxD,uBAAuB,EAAE,IAAI;iBAC9B;aACF;SACF;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../../server/src/config/builder.ts"],"names":[],"mappings":";;AAgDA,sCAsCC;AAED,wCAQC;AAED,gDAsCC;AAxFD,SAAgB,aAAa,CAAC,EAAE,GAAG,EAAuB;IACxD,MAAM,QAAQ,GAAG,GAAG,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,CAAC;IAEjC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEvB,MAAM,GAAG,GAAG,GAAG,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAE1C,OAAO;QACL,QAAQ,EAAE,QAAQ;QAClB,eAAe,EAAE;YACf,OAAO,EAAE,GAAG,CAAC,aAAa,EAAE,SAAS,CAAC;YACtC,SAAS,EAAE;gBACT,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,GAAG,CAAC,mBAAmB,CAAC;oBACtD,CAAC,CAAC;wBACE,WAAW,EAAE;4BACX,WAAW,EAAE,GAAG,CAAC,mBAAmB,CAAC;4BACrC,eAAe,EAAE,GAAG,CAAC,mBAAmB,CAAC;yBAC1C;qBACF;oBACH,CAAC,CAAC,EAAE,CAAC;gBACP,MAAM,EAAE,GAAG,CAAC,YAAY,EAAE,SAAS,CAAC;gBACpC,QAAQ;gBACR,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACnE,MAAM,EAAE;oBACN,MAAM,EAAE,MAAM;oBACd,yEAAyE;oBACzE,kEAAkE;oBAClE,GAAG,EAAE,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG;iBACtC;aACF;SACF;QACD,aAAa,EAAE;YACb,MAAM,EAAE,EAAE;YACV,YAAY,EAAE,EAAE;YAChB,MAAM,EAAE,EAAE;SACX;KACF,CAAC;AACJ,CAAC;AAED,SAAgB,cAAc,CAC5B,OAA4B,EAC5B,aAAoC;IAEpC,OAAO;QACL,OAAO,EAAE,IAAI;QACb,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpD,CAAC;AACJ,CAAC;AAED,SAAgB,kBAAkB,CAAC,EACjC,GAAG,GACiB;IACpB,MAAM,UAAU,GAAG;QACjB,GAAG,CAAC,aAAa,CAAC;QAClB,GAAG,CAAC,cAAc,CAAC;QACnB,GAAG,CAAC,iBAAiB,CAAC;KACvB;SACE,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SAClD,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACb,IAAI,CAAC;YACH,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,KAAK,EAAE,CAAC;iBAClE,IAAI,CAAC;QACV,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC,CAAC,CAAC;IAEL,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,MAAM,EAAE;YACN,qBAAqB,EAAE;gBACrB,WAAW,EAAE,IAAI;gBACjB,UAAU,EAAE;oBACV,aAAa,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;oBACnC,SAAS,EAAE;wBACT,QAAQ;wBACR,OAAO;wBACP,OAAO;wBACP,yBAAyB;wBACzB,GAAG,UAAU;qBACd;oBACD,WAAW,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC;oBACxD,uBAAuB,EAAE,IAAI;iBAC9B;aACF;SACF;KACF,CAAC;AACJ,CAAC"}
@@ -1,7 +1,32 @@
1
+ import type { BuilderContentTypesConfig } from '../content-type-config';
1
2
  import type { BlockPopulate } from '../types';
2
3
  import type { BuilderPreviewConfig } from '../preview/handler';
3
4
  export type { BuilderPreviewConfig, BuilderPreviewDocument, } from '../preview/handler';
5
+ export type { BuilderContentTypesConfig, BuilderOptionalContentType, } from '../content-type-config';
6
+ /** Public scalar fields allowed in an inquiry submission. */
7
+ export interface InquiryAttribute {
8
+ type: 'string' | 'text' | 'email' | 'boolean' | 'integer' | 'enumeration';
9
+ maxLength?: number;
10
+ enum?: string[];
11
+ }
12
+ export interface InquirySubmission extends Readonly<Record<string, unknown>> {
13
+ readonly name: string;
14
+ readonly email?: string;
15
+ readonly phone?: string;
16
+ readonly subject?: string;
17
+ readonly message?: string;
18
+ readonly consent: true;
19
+ readonly consentVersion: string;
20
+ readonly idempotencyKey?: string;
21
+ }
22
+ export interface BuilderInquiryConfig {
23
+ attributes?: Record<string, InquiryAttribute>;
24
+ /** Return false to reject; thrown failures fail closed with a generic 500. */
25
+ validate?: (submission: InquirySubmission) => boolean | void | Promise<boolean | void>;
26
+ }
4
27
  export interface BuilderConfig {
28
+ inquiry?: BuilderInquiryConfig;
29
+ contentTypes?: BuilderContentTypesConfig;
5
30
  preview?: BuilderPreviewConfig | false;
6
31
  blocks: {
7
32
  extra: Record<string, BlockPopulate>;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/config/index.ts"],"names":[],"mappings":"AAkCA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,YAAY,EACV,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AA2B5B,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,oBAAoB,GAAG,KAAK,CAAC;IACvC,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACrC,eAAe,EAAE,OAAO,CAAC;KAC1B,CAAC;IACF,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,CAAC;CACpE;AAgED,QAAA,MAAM,MAAM;eACC,aAAa;qBAUP,OAAO,GAAG,IAAI;CAyIhC,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/config/index.ts"],"names":[],"mappings":"AAoCA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,YAAY,EACV,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AA2B5B,YAAY,EACV,yBAAyB,EACzB,0BAA0B,GAC3B,MAAM,wBAAwB,CAAC;AAEhC,6DAA6D;AAC7D,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,CAAC;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,iBAAkB,SAAQ,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1E,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC9C,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,CACT,UAAU,EAAE,iBAAiB,KAC1B,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,YAAY,CAAC,EAAE,yBAAyB,CAAC;IACzC,OAAO,CAAC,EAAE,oBAAoB,GAAG,KAAK,CAAC;IACvC,MAAM,EAAE;QACN,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACrC,eAAe,EAAE,OAAO,CAAC;KAC1B,CAAC;IACF,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC,CAAC;CACpE;AA6ED,QAAA,MAAM,MAAM;eACC,aAAa;qBAUP,OAAO,GAAG,IAAI;CAyQhC,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -3,6 +3,7 @@ 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 schema_json_1 = __importDefault(require("../content-types/inquiry/schema.json"));
6
7
  const bento_grid_json_1 = __importDefault(require("../components/blocks/bento-grid.json"));
7
8
  const content_json_1 = __importDefault(require("../components/blocks/content.json"));
8
9
  const cta_json_1 = __importDefault(require("../components/blocks/cta.json"));
@@ -36,6 +37,7 @@ const slider_item_json_1 = __importDefault(require("../components/shared/slider-
36
37
  const stat_item_json_1 = __importDefault(require("../components/shared/stat-item.json"));
37
38
  const team_member_json_1 = __importDefault(require("../components/shared/team-member.json"));
38
39
  const testimonial_item_json_1 = __importDefault(require("../components/shared/testimonial-item.json"));
40
+ const content_type_config_1 = require("../content-type-config");
39
41
  const attributeTypes = new Set([
40
42
  'biginteger',
41
43
  'boolean',
@@ -93,6 +95,14 @@ const componentSchemas = {
93
95
  'shared.team-member': team_member_json_1.default,
94
96
  'shared.testimonial-item': testimonial_item_json_1.default,
95
97
  };
98
+ // Attribute names are restricted to ASCII alphanumerics below. Match lodash's
99
+ // snakeCase word boundaries (including acronym/digit/ordinal boundaries), which
100
+ // Strapi uses to derive scalar database columns, without adding a dependency.
101
+ function inquiryColumnName(name) {
102
+ return (name.match(/[A-Z]?[a-z]+|[A-Z]+(?![a-z])|\d*(?:1ST|2ND|3RD|(?![123])\dTH)(?=\b|[a-z_])|\d*(?:1st|2nd|3rd|(?![123])\dth)(?=\b|[A-Z_])|\d+/g) ?? [])
103
+ .map((word) => word.toLowerCase())
104
+ .join('_');
105
+ }
96
106
  function isObject(value) {
97
107
  return typeof value === 'object' && value !== null && !Array.isArray(value);
98
108
  }
@@ -119,7 +129,19 @@ const config = {
119
129
  },
120
130
  validator(value) {
121
131
  requireObject(value, 'config');
122
- rejectUnknownKeys(value, ['blocks', 'components', 'preview'], 'config');
132
+ rejectUnknownKeys(value, ['blocks', 'components', 'preview', 'contentTypes', 'inquiry'], 'config');
133
+ if (value.contentTypes !== undefined) {
134
+ requireObject(value.contentTypes, 'config.contentTypes');
135
+ rejectUnknownKeys(value.contentTypes, [...content_type_config_1.OPTIONAL_CONTENT_TYPES], 'config.contentTypes');
136
+ for (const [name, entry] of Object.entries(value.contentTypes)) {
137
+ const path = `config.contentTypes.${name}`;
138
+ requireObject(entry, path);
139
+ rejectUnknownKeys(entry, ['enabled'], path);
140
+ if (typeof entry.enabled !== 'boolean') {
141
+ throw new Error(`[builder] ${path}.enabled must be a boolean`);
142
+ }
143
+ }
144
+ }
123
145
  if (value.preview !== undefined && value.preview !== false) {
124
146
  requireObject(value.preview, 'config.preview');
125
147
  rejectUnknownKeys(value.preview, ['siteUrl', 'secretEnv', 'resolvePath', 'uids'], 'config.preview');
@@ -149,6 +171,78 @@ const config = {
149
171
  typeof value.preview.resolvePath !== 'function')
150
172
  throw new Error('[builder] preview.resolvePath is required when preview.uids is non-empty');
151
173
  }
174
+ if (value.inquiry !== undefined) {
175
+ requireObject(value.inquiry, 'config.inquiry');
176
+ rejectUnknownKeys(value.inquiry, ['attributes', 'validate'], 'config.inquiry');
177
+ if (value.inquiry.validate !== undefined &&
178
+ typeof value.inquiry.validate !== 'function') {
179
+ throw new Error('[builder] config.inquiry.validate must be a function');
180
+ }
181
+ if (value.inquiry.attributes !== undefined) {
182
+ requireObject(value.inquiry.attributes, 'config.inquiry.attributes');
183
+ const reserved = new Set([
184
+ ...Object.keys(schema_json_1.default.attributes),
185
+ 'id',
186
+ 'documentId',
187
+ 'createdAt',
188
+ 'updatedAt',
189
+ 'publishedAt',
190
+ 'createdBy',
191
+ 'updatedBy',
192
+ 'locale',
193
+ 'localizations',
194
+ '__proto__',
195
+ 'constructor',
196
+ 'prototype',
197
+ ]);
198
+ const columns = new Set([...reserved, 'createdById', 'updatedById'].map(inquiryColumnName));
199
+ for (const [name, attribute] of Object.entries(value.inquiry.attributes)) {
200
+ if (!/^[a-z][a-zA-Z0-9]*$/.test(name) || reserved.has(name)) {
201
+ throw new Error('[builder] inquiry attributes must be additive and cannot use reserved names');
202
+ }
203
+ const column = inquiryColumnName(name);
204
+ if (columns.has(column)) {
205
+ throw new Error('[builder] inquiry attributes cannot share a database column with built-in, system, or other added fields');
206
+ }
207
+ columns.add(column);
208
+ requireObject(attribute, `config.inquiry.attributes.${name}`);
209
+ rejectUnknownKeys(attribute, ['type', 'maxLength', 'enum'], `config.inquiry.attributes.${name}`);
210
+ if (![
211
+ 'string',
212
+ 'text',
213
+ 'email',
214
+ 'boolean',
215
+ 'integer',
216
+ 'enumeration',
217
+ ].includes(String(attribute.type))) {
218
+ throw new Error('[builder] inquiry attributes must be optional scalar fields');
219
+ }
220
+ if (attribute.maxLength !== undefined &&
221
+ (typeof attribute.maxLength !== 'number' ||
222
+ !Number.isInteger(attribute.maxLength) ||
223
+ attribute.maxLength < 1 ||
224
+ attribute.maxLength > 5000)) {
225
+ throw new Error('[builder] inquiry maxLength must be an integer between 1 and 5000');
226
+ }
227
+ if (attribute.type === 'enumeration' &&
228
+ (!Array.isArray(attribute.enum) ||
229
+ attribute.enum.length === 0 ||
230
+ !attribute.enum.every((item) => typeof item === 'string' && item.length > 0))) {
231
+ throw new Error('[builder] inquiry enumeration requires nonempty string values');
232
+ }
233
+ }
234
+ }
235
+ }
236
+ if (isObject(value.contentTypes) &&
237
+ isObject(value.contentTypes.inquiry) &&
238
+ value.contentTypes.inquiry.enabled === false &&
239
+ isObject(value.inquiry) &&
240
+ ((isObject(value.inquiry.attributes) &&
241
+ Object.keys(value.inquiry.attributes).length > 0) ||
242
+ value.inquiry.validate !== undefined)) {
243
+ throw new Error('[builder] config.inquiry extensions require Inquiry to be enabled. ' +
244
+ 'Enable config.contentTypes.inquiry.enabled or remove config.inquiry.attributes and config.inquiry.validate.');
245
+ }
152
246
  requireObject(value.blocks, 'config.blocks');
153
247
  rejectUnknownKeys(value.blocks, ['extra', 'includeInGlobal'], 'config.blocks');
154
248
  requireObject(value.blocks.extra, 'config.blocks.extra');
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/src/config/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/src/config/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { BuilderContentTypesConfig } from './content-type-config';
2
+ interface AvailabilityConfig {
3
+ contentTypes?: BuilderContentTypesConfig;
4
+ }
5
+ interface Schema {
6
+ attributes?: Record<string, {
7
+ type?: string;
8
+ target?: string;
9
+ component?: string;
10
+ components?: string[];
11
+ }>;
12
+ pluginOptions?: Record<string, unknown>;
13
+ __schema__?: Schema;
14
+ }
15
+ export declare function isBuilderContentTypeEnabled(config: AvailabilityConfig, uid: string): boolean;
16
+ /** Keep models registered so toggling availability never removes stored data. */
17
+ export declare function applyContentTypeAvailability(config: AvailabilityConfig, contentTypes: Record<string, Schema>, getComponent: (uid: string) => Schema | undefined): void;
18
+ export {};
19
+ //# sourceMappingURL=content-type-availability.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-type-availability.d.ts","sourceRoot":"","sources":["../../../server/src/content-type-availability.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EAE1B,MAAM,uBAAuB,CAAC;AAE/B,UAAU,kBAAkB;IAC1B,YAAY,CAAC,EAAE,yBAAyB,CAAC;CAC1C;AAED,UAAU,MAAM;IACd,UAAU,CAAC,EAAE,MAAM,CACjB,MAAM,EACN;QACE,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;KACvB,CACF,CAAC;IACF,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,kBAAkB,EAC1B,GAAG,EAAE,MAAM,GACV,OAAO,CAOT;AAED,iFAAiF;AACjF,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,kBAAkB,EAC1B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,GAChD,IAAI,CA0DN"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isBuilderContentTypeEnabled = isBuilderContentTypeEnabled;
4
+ exports.applyContentTypeAvailability = applyContentTypeAvailability;
5
+ function isBuilderContentTypeEnabled(config, uid) {
6
+ const name = uid.startsWith('plugin::builder.')
7
+ ? uid.slice('plugin::builder.'.length)
8
+ : '';
9
+ return (config.contentTypes?.[name]?.enabled !== false);
10
+ }
11
+ /** Keep models registered so toggling availability never removes stored data. */
12
+ function applyContentTypeAvailability(config, contentTypes, getComponent) {
13
+ const disabled = new Set(Object.keys(contentTypes).filter((uid) => !isBuilderContentTypeEnabled(config, uid)));
14
+ if (disabled.size === 0)
15
+ return;
16
+ function visit(schema, path, ancestors) {
17
+ for (const [name, attribute] of Object.entries(schema.attributes ?? {})) {
18
+ const attributePath = `${path}.${name}`;
19
+ if (attribute.type === 'relation' &&
20
+ attribute.target &&
21
+ disabled.has(attribute.target)) {
22
+ throw new Error(`[builder] Enabled content type references disabled "${attribute.target}" through ${attributePath}. Enable the target or remove this relation/component from the consumer schema before Builder registration.`);
23
+ }
24
+ const components = attribute.type === 'component'
25
+ ? attribute.component
26
+ ? [attribute.component]
27
+ : []
28
+ : attribute.type === 'dynamiczone'
29
+ ? (attribute.components ?? [])
30
+ : [];
31
+ for (const uid of components) {
32
+ if (ancestors.has(uid))
33
+ continue;
34
+ const component = getComponent(uid);
35
+ if (component)
36
+ visit(component, `${attributePath} -> ${uid}`, new Set([...ancestors, uid]));
37
+ }
38
+ }
39
+ }
40
+ for (const [uid, schema] of Object.entries(contentTypes)) {
41
+ if (!disabled.has(uid))
42
+ visit(schema, uid, new Set());
43
+ }
44
+ for (const uid of disabled) {
45
+ const model = contentTypes[uid];
46
+ if (!model)
47
+ continue;
48
+ for (const schema of [model, model.__schema__]) {
49
+ if (!schema)
50
+ continue;
51
+ schema.pluginOptions ?? (schema.pluginOptions = {});
52
+ for (const plugin of ['content-manager', 'content-type-builder']) {
53
+ schema.pluginOptions[plugin] = {
54
+ ...schema.pluginOptions[plugin],
55
+ visible: false,
56
+ };
57
+ }
58
+ }
59
+ }
60
+ }
61
+ //# sourceMappingURL=content-type-availability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-type-availability.js","sourceRoot":"","sources":["../../../server/src/content-type-availability.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare const OPTIONAL_CONTENT_TYPES: readonly ["article", "category", "tag", "series", "author", "faq", "inquiry"];
2
+ export type BuilderOptionalContentType = (typeof OPTIONAL_CONTENT_TYPES)[number];
3
+ export type BuilderContentTypesConfig = Partial<Record<BuilderOptionalContentType, {
4
+ enabled: boolean;
5
+ }>>;
6
+ //# sourceMappingURL=content-type-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-type-config.d.ts","sourceRoot":"","sources":["../../../server/src/content-type-config.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,sBAAsB,+EAQzB,CAAC;AAEX,MAAM,MAAM,0BAA0B,GACpC,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAC1C,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAC7C,MAAM,CAAC,0BAA0B,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CACzD,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OPTIONAL_CONTENT_TYPES = void 0;
4
+ exports.OPTIONAL_CONTENT_TYPES = [
5
+ 'article',
6
+ 'category',
7
+ 'tag',
8
+ 'series',
9
+ 'author',
10
+ 'faq',
11
+ 'inquiry',
12
+ ];
13
+ //# sourceMappingURL=content-type-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-type-config.js","sourceRoot":"","sources":["../../../server/src/content-type-config.ts"],"names":[],"mappings":";;;AAAa,QAAA,sBAAsB,GAAG;IACpC,SAAS;IACT,UAAU;IACV,KAAK;IACL,QAAQ;IACR,QAAQ;IACR,KAAK;IACL,SAAS;CACD,CAAC"}
@@ -64,6 +64,12 @@ declare const _default: {
64
64
  target: string;
65
65
  mappedBy: string;
66
66
  };
67
+ faqs: {
68
+ type: string;
69
+ relation: string;
70
+ target: string;
71
+ mappedBy: string;
72
+ };
67
73
  };
68
74
  };
69
75
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../server/src/content-types/category/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wBAA0B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../server/src/content-types/category/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wBAA0B"}
@@ -40,6 +40,12 @@
40
40
  "relation": "manyToMany",
41
41
  "target": "plugin::builder.article",
42
42
  "mappedBy": "categories"
43
+ },
44
+ "faqs": {
45
+ "type": "relation",
46
+ "relation": "oneToMany",
47
+ "target": "plugin::builder.faq",
48
+ "mappedBy": "category"
43
49
  }
44
50
  }
45
51
  }
@@ -52,6 +52,7 @@ declare const _default: {
52
52
  type: string;
53
53
  relation: string;
54
54
  target: string;
55
+ inversedBy: string;
55
56
  };
56
57
  };
57
58
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../server/src/content-types/faq/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wBAA0B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../server/src/content-types/faq/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wBAA0B"}
@@ -31,8 +31,9 @@
31
31
  },
32
32
  "category": {
33
33
  "type": "relation",
34
- "relation": "oneToOne",
35
- "target": "plugin::builder.category"
34
+ "relation": "manyToOne",
35
+ "target": "plugin::builder.category",
36
+ "inversedBy": "faqs"
36
37
  }
37
38
  }
38
39
  }
@@ -263,6 +263,12 @@ declare const _default: {
263
263
  target: string;
264
264
  mappedBy: string;
265
265
  };
266
+ faqs: {
267
+ type: string;
268
+ relation: string;
269
+ target: string;
270
+ mappedBy: string;
271
+ };
266
272
  };
267
273
  };
268
274
  };
@@ -392,6 +398,7 @@ declare const _default: {
392
398
  type: string;
393
399
  relation: string;
394
400
  target: string;
401
+ inversedBy: string;
395
402
  };
396
403
  };
397
404
  };
@@ -528,7 +535,32 @@ declare const _default: {
528
535
  type: string;
529
536
  maxLength: number;
530
537
  };
538
+ consent: {
539
+ type: string;
540
+ };
541
+ consentAt: {
542
+ type: string;
543
+ };
544
+ consentVersion: {
545
+ type: string;
546
+ maxLength: number;
547
+ };
548
+ processingStatus: {
549
+ type: string;
550
+ enum: string[];
551
+ };
552
+ idempotencyKey: {
553
+ type: string;
554
+ maxLength: number;
555
+ unique: boolean;
556
+ private: boolean;
557
+ };
531
558
  };
559
+ indexes: {
560
+ name: string;
561
+ columns: string[];
562
+ type: string;
563
+ }[];
532
564
  };
533
565
  };
534
566
  navigation: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/content-types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,wBAaE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/content-types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,wBAaE"}
@@ -41,7 +41,32 @@ declare const _default: {
41
41
  type: string;
42
42
  maxLength: number;
43
43
  };
44
+ consent: {
45
+ type: string;
46
+ };
47
+ consentAt: {
48
+ type: string;
49
+ };
50
+ consentVersion: {
51
+ type: string;
52
+ maxLength: number;
53
+ };
54
+ processingStatus: {
55
+ type: string;
56
+ enum: string[];
57
+ };
58
+ idempotencyKey: {
59
+ type: string;
60
+ maxLength: number;
61
+ unique: boolean;
62
+ private: boolean;
63
+ };
44
64
  };
65
+ indexes: {
66
+ name: string;
67
+ columns: string[];
68
+ type: string;
69
+ }[];
45
70
  };
46
71
  };
47
72
  export default _default;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../server/src/content-types/inquiry/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wBAA0B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../server/src/content-types/inquiry/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,wBAA0B"}
@@ -11,8 +11,12 @@
11
11
  "draftAndPublish": false
12
12
  },
13
13
  "pluginOptions": {
14
- "content-manager": { "visible": true },
15
- "content-type-builder": { "visible": true }
14
+ "content-manager": {
15
+ "visible": true
16
+ },
17
+ "content-type-builder": {
18
+ "visible": true
19
+ }
16
20
  },
17
21
  "attributes": {
18
22
  "name": {
@@ -35,6 +39,33 @@
35
39
  "message": {
36
40
  "type": "text",
37
41
  "maxLength": 5000
42
+ },
43
+ "consent": {
44
+ "type": "boolean"
45
+ },
46
+ "consentAt": {
47
+ "type": "datetime"
48
+ },
49
+ "consentVersion": {
50
+ "type": "string",
51
+ "maxLength": 120
52
+ },
53
+ "processingStatus": {
54
+ "type": "enumeration",
55
+ "enum": ["received", "reviewing", "responded", "closed"]
56
+ },
57
+ "idempotencyKey": {
58
+ "type": "string",
59
+ "maxLength": 128,
60
+ "unique": true,
61
+ "private": true
62
+ }
63
+ },
64
+ "indexes": [
65
+ {
66
+ "name": "inquiries_idempotency_key_unique",
67
+ "columns": ["idempotency_key"],
68
+ "type": "unique"
38
69
  }
39
- }
70
+ ]
40
71
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/controllers/index.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAkBxC,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/controllers/index.ts"],"names":[],"mappings":"AAMA,QAAA,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAkBxC,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const strapi_1 = require("@strapi/strapi");
7
+ const inquiry_1 = __importDefault(require("./inquiry"));
7
8
  const page_1 = __importDefault(require("./page"));
8
9
  const global_1 = __importDefault(require("./global"));
9
10
  const preview_1 = __importDefault(require("./preview"));
@@ -16,7 +17,7 @@ const controllers = {
16
17
  page: page_1.default,
17
18
  global: global_1.default,
18
19
  preview: preview_1.default,
19
- inquiry: strapi_1.factories.createCoreController('plugin::builder.inquiry'),
20
+ inquiry: inquiry_1.default,
20
21
  navigation: strapi_1.factories.createCoreController('plugin::builder.navigation'),
21
22
  series: strapi_1.factories.createCoreController('plugin::builder.series'),
22
23
  '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,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,OAAO,EAAE,kBAAS,CAAC,oBAAoB,CAAC,yBAAyB,CAAC;IAClE,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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/src/controllers/index.ts"],"names":[],"mappings":";;;;;AAAA,2CAA2C;AAC3C,wDAAgC;AAChC,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,OAAO,EAAP,iBAAO;IACP,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,8 @@
1
+ import type { Core } from '@strapi/strapi';
2
+ declare const inquiry: ({ strapi }: {
3
+ strapi: Core.Strapi;
4
+ }) => {
5
+ create(ctx: Parameters<Core.ControllerHandler>[0]): Promise<any>;
6
+ };
7
+ export default inquiry;
8
+ //# sourceMappingURL=inquiry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inquiry.d.ts","sourceRoot":"","sources":["../../../../server/src/controllers/inquiry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAG3C,QAAA,MAAM,OAAO,GAAI,YAAY;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE;gBAChC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;CAoBvD,CAAC;AACH,eAAe,OAAO,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const inquiry_1 = require("../services/inquiry");
4
+ const inquiry = ({ strapi }) => ({
5
+ async create(ctx) {
6
+ try {
7
+ const body = ctx.request.body;
8
+ const data = typeof body === 'object' && body !== null && !Array.isArray(body)
9
+ ? body.data
10
+ : undefined;
11
+ const receipt = await strapi
12
+ .plugin('builder')
13
+ .service('inquiry')
14
+ .submit(data);
15
+ ctx.status = 201;
16
+ ctx.body = { data: receipt };
17
+ }
18
+ catch (error) {
19
+ if (error instanceof inquiry_1.InquiryValidationError)
20
+ return ctx.badRequest('Invalid inquiry submission');
21
+ // Never echo hook, validator, or database messages containing submission PII.
22
+ return ctx.internalServerError('Unable to accept inquiry');
23
+ }
24
+ },
25
+ });
26
+ exports.default = inquiry;
27
+ //# sourceMappingURL=inquiry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inquiry.js","sourceRoot":"","sources":["../../../../server/src/controllers/inquiry.ts"],"names":[],"mappings":";;AACA,iDAA6D;AAE7D,MAAM,OAAO,GAAG,CAAC,EAAE,MAAM,EAA2B,EAAE,EAAE,CAAC,CAAC;IACxD,KAAK,CAAC,MAAM,CAAC,GAA0C;QACrD,IAAI,CAAC;YACH,MAAM,IAAI,GAAY,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC;YACvC,MAAM,IAAI,GACR,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBAC/D,CAAC,CAAE,IAAgC,CAAC,IAAI;gBACxC,CAAC,CAAC,SAAS,CAAC;YAChB,MAAM,OAAO,GAAG,MAAM,MAAM;iBACzB,MAAM,CAAC,SAAS,CAAC;iBACjB,OAAO,CAAC,SAAS,CAAC;iBAClB,MAAM,CAAC,IAAI,CAAC,CAAC;YAChB,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;YACjB,GAAG,CAAC,IAAI,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAc,EAAE,CAAC;YACxB,IAAI,KAAK,YAAY,gCAAsB;gBACzC,OAAO,GAAG,CAAC,UAAU,CAAC,4BAA4B,CAAC,CAAC;YACtD,8EAA8E;YAC9E,OAAO,GAAG,CAAC,mBAAmB,CAAC,0BAA0B,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;CACF,CAAC,CAAC;AACH,kBAAe,OAAO,CAAC"}
@@ -19,7 +19,7 @@ export interface BuilderPreviewDocument {
19
19
  export interface BuilderPreviewConfig {
20
20
  siteUrl: string;
21
21
  secretEnv: string;
22
- /** Additional content-type UIDs; Page and Article remain enabled. */
22
+ /** Additional content-type UIDs; disabled Builder types are excluded. */
23
23
  uids?: string[];
24
24
  resolvePath?: (uid: string, document: BuilderPreviewDocument) => string | null;
25
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../server/src/preview/handler.ts"],"names":[],"mappings":"AAGA,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,qEAAqE;IACrE,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,8DAGf,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,CAS9D;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,CAkCf;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,aAAa,EACrB,QAAQ,CAAC,EAAE,qBAAqB,GAC/B,qBAAqB,CAKvB"}
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,8DAGf,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,CAkCf;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,aAAa,EACrB,QAAQ,CAAC,EAAE,qBAAqB,GAC/B,qBAAqB,CAYvB"}
@@ -5,6 +5,7 @@ exports.getPreviewUids = getPreviewUids;
5
5
  exports.getPreviewUrl = getPreviewUrl;
6
6
  exports.signPreviewDocument = signPreviewDocument;
7
7
  exports.createBuilderPreviewHandler = createBuilderPreviewHandler;
8
+ const content_type_availability_1 = require("../content-type-availability");
8
9
  const node_crypto_1 = require("node:crypto");
9
10
  const preview_token_1 = require("../preview-token");
10
11
  exports.PREVIEW_UIDS = [
@@ -12,10 +13,11 @@ exports.PREVIEW_UIDS = [
12
13
  'plugin::builder.article',
13
14
  ];
14
15
  function getPreviewUids(strapi) {
16
+ const pluginConfig = strapi.config.get('plugin::builder');
15
17
  const config = strapi.config.get('plugin::builder').preview;
16
18
  return [
17
19
  ...new Set([...exports.PREVIEW_UIDS, ...(config ? (config.uids ?? []) : [])]),
18
- ];
20
+ ].filter((uid) => (0, content_type_availability_1.isBuilderContentTypeEnabled)(pluginConfig, uid));
19
21
  }
20
22
  async function getPreviewUrl(strapi, uid, { documentId, locale, status = 'draft' }) {
21
23
  const config = strapi.config.get('plugin::builder').preview;
@@ -69,8 +71,10 @@ function signPreviewDocument(strapi, uid, document, status = 'draft') {
69
71
  return url.toString();
70
72
  }
71
73
  function createBuilderPreviewHandler(strapi, fallback) {
72
- return (uid, options) => getPreviewUids(strapi).includes(uid)
73
- ? getPreviewUrl(strapi, uid, options)
74
- : (fallback?.(uid, options) ?? null);
74
+ return (uid, options) => !(0, content_type_availability_1.isBuilderContentTypeEnabled)(strapi.config.get('plugin::builder'), uid)
75
+ ? null
76
+ : getPreviewUids(strapi).includes(uid)
77
+ ? getPreviewUrl(strapi, uid, options)
78
+ : (fallback?.(uid, options) ?? null);
75
79
  }
76
80
  //# sourceMappingURL=handler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../../server/src/preview/handler.ts"],"names":[],"mappings":"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"}
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;AAgD3C;;;;GAIG;AACH,QAAA,MAAM,QAAQ,GAAI,YAAY;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE,SA6GpD,CAAC;AAEF,eAAe,QAAQ,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;AAoD3C;;;;GAIG;AACH,QAAA,MAAM,QAAQ,GAAI,YAAY;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE,SA+IpD,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -5,6 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const path_1 = __importDefault(require("path"));
7
7
  const fs_1 = __importDefault(require("fs"));
8
+ const content_type_availability_1 = require("./content-type-availability");
8
9
  const mcp_1 = require("./mcp");
9
10
  const preview_1 = require("./preview");
10
11
  const PROXY_RATE_LIMIT_WARNING = 'Rate limiting uses request.ip, but server.proxy.koa is not enabled. ' +
@@ -72,6 +73,12 @@ const register = ({ strapi }) => {
72
73
  }
73
74
  componentRegistry.add(componentsMap);
74
75
  const pluginConfig = strapi.config.get('plugin::builder');
76
+ const inquiryAttributes = pluginConfig.inquiry?.attributes;
77
+ if (inquiryAttributes && Object.keys(inquiryAttributes).length > 0) {
78
+ const inquiry = strapi.contentTypes['plugin::builder.inquiry'];
79
+ Object.assign(inquiry.attributes, inquiryAttributes);
80
+ Object.assign(inquiry.__schema__.attributes, inquiryAttributes);
81
+ }
75
82
  const extraBlocks = Object.entries(pluginConfig.blocks.extra);
76
83
  const page = strapi.contentTypes['plugin::builder.page'];
77
84
  const global = strapi.contentTypes['plugin::builder.global'];
@@ -109,6 +116,22 @@ const register = ({ strapi }) => {
109
116
  Object.assign(component.attributes, extension.attributes);
110
117
  Object.assign(component.__schema__.attributes, extension.attributes);
111
118
  }
119
+ (0, content_type_availability_1.applyContentTypeAvailability)(pluginConfig, { ...strapi.contentTypes }, (uid) => componentRegistry.get(uid));
120
+ const restPrefix = strapi.config.get('api.rest.prefix', '/api');
121
+ const disabledPaths = Object.entries(strapi.contentTypes)
122
+ .filter(([uid]) => !(0, content_type_availability_1.isBuilderContentTypeEnabled)(pluginConfig, uid))
123
+ .map(([, model]) => `${restPrefix}/builder/${model.info.pluralName}`);
124
+ if (disabledPaths.length > 0) {
125
+ // Strapi's allowedMethods fallback returns 405 for some unmatched writes.
126
+ // Disabled endpoints have the same not-found response for every method.
127
+ strapi.server.use(async (ctx, next) => {
128
+ if (disabledPaths.some((path) => ctx.path === path || ctx.path.startsWith(`${path}/`))) {
129
+ ctx.notFound();
130
+ return;
131
+ }
132
+ await next();
133
+ });
134
+ }
112
135
  (0, preview_1.registerBuilderPreview)(strapi);
113
136
  (0, mcp_1.registerBuilderMcp)(strapi);
114
137
  };
@@ -1 +1 @@
1
- {"version":3,"file":"register.js","sourceRoot":"","sources":["../../../server/src/register.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../../server/src/register.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"content-api.d.ts","sourceRoot":"","sources":["../../../../server/src/routes/content-api.ts"],"names":[],"mappings":"AAEA,UAAU,eAAe;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,UAAU,gBAAgB;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AA8BD,QAAA,MAAM,UAAU,EAAE,gBAkBjB,CAAC;AAEF,eAAe,UAAU,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;CACd;AAED,UAAU,gBAAgB;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAmCD,QAAA,MAAM,UAAU,EAAE,gBA6BjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const strapi_1 = require("@strapi/strapi");
4
+ const content_type_availability_1 = require("../content-type-availability");
4
5
  const contentTypes = [
5
6
  'plugin::builder.article',
6
7
  'plugin::builder.author',
@@ -14,7 +15,7 @@ const contentTypes = [
14
15
  'plugin::builder.site-setting',
15
16
  'plugin::builder.tag',
16
17
  ];
17
- let cachedRoutes;
18
+ const routesByApp = new WeakMap();
18
19
  function getCoreRoutes(uid, ...[config]) {
19
20
  const router = strapi_1.factories.createCoreRouter(uid, config);
20
21
  return typeof router.routes === 'function' ? router.routes() : router.routes;
@@ -25,13 +26,21 @@ const contentApi = {
25
26
  // Strapi reads `.routes` several times while registering a plugin and
26
27
  // annotates the first result with auth scopes. Keep the same route objects
27
28
  // for every read so those annotations reach the registered router.
29
+ const app = global.strapi;
30
+ const config = app.config.get('plugin::builder');
31
+ let cachedRoutes = routesByApp.get(app);
28
32
  if (!cachedRoutes) {
29
- const coreRoutes = contentTypes.flatMap((uid) => getCoreRoutes(uid));
30
- const inquiryRoutes = getCoreRoutes('plugin::builder.inquiry', {
31
- only: ['create'],
32
- config: { create: { policies: ['plugin::builder.rate-limit'] } },
33
- });
33
+ const coreRoutes = contentTypes
34
+ .filter((uid) => (0, content_type_availability_1.isBuilderContentTypeEnabled)(config, uid))
35
+ .flatMap((uid) => getCoreRoutes(uid));
36
+ const inquiryRoutes = (0, content_type_availability_1.isBuilderContentTypeEnabled)(config, 'plugin::builder.inquiry')
37
+ ? getCoreRoutes('plugin::builder.inquiry', {
38
+ only: ['create'],
39
+ config: { create: { policies: ['plugin::builder.rate-limit'] } },
40
+ })
41
+ : [];
34
42
  cachedRoutes = [...coreRoutes, ...inquiryRoutes];
43
+ routesByApp.set(app, cachedRoutes);
35
44
  }
36
45
  return cachedRoutes;
37
46
  },
@@ -1 +1 @@
1
- {"version":3,"file":"content-api.js","sourceRoot":"","sources":["../../../../server/src/routes/content-api.ts"],"names":[],"mappings":";;AAAA,2CAA2C;AAY3C,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,IAAI,YAA2C,CAAC;AAEhD,SAAS,aAAa,CAGpB,GAAQ,EACR,GAAG,CAAC,MAAM,CAEqE;IAE/E,MAAM,MAAM,GAAG,kBAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACvD,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,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;YACrE,MAAM,aAAa,GAAG,aAAa,CAAC,yBAAyB,EAAE;gBAC7D,IAAI,EAAE,CAAC,QAAQ,CAAC;gBAChB,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,4BAA4B,CAAC,EAAE,EAAE;aACjE,CAAC,CAAC;YAEH,YAAY,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,aAAa,CAAC,CAAC;QACnD,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;CACF,CAAC;AAEF,kBAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"content-api.js","sourceRoot":"","sources":["../../../../server/src/routes/content-api.ts"],"names":[],"mappings":";;AAAA,2CAA2C;AAC3C,4EAA2E;AAa3E,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,CAGpB,GAAQ,EACR,GAAG,CAAC,MAAM,CAOL;IAEL,MAAM,MAAM,GAAG,kBAAS,CAAC,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACvD,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,MAAM,aAAa,GAAG,IAAA,uDAA2B,EAC/C,MAAM,EACN,yBAAyB,CAC1B;gBACC,CAAC,CAAC,aAAa,CAAC,yBAAyB,EAAE;oBACvC,IAAI,EAAE,CAAC,QAAQ,CAAC;oBAChB,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,4BAA4B,CAAC,EAAE,EAAE;iBACjE,CAAC;gBACJ,CAAC,CAAC,EAAE,CAAC;YAEP,YAAY,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,aAAa,CAAC,CAAC;YACjD,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;QACrC,CAAC;QAED,OAAO,YAAY,CAAC;IACtB,CAAC;CACF,CAAC;AAEF,kBAAe,UAAU,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/services/index.ts"],"names":[],"mappings":"AAGA,QAAA,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAgBrC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../server/src/services/index.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAgBrC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const strapi_1 = require("@strapi/strapi");
7
+ const inquiry_1 = __importDefault(require("./inquiry"));
7
8
  const populate_1 = __importDefault(require("./populate"));
8
9
  const services = {
9
10
  article: strapi_1.factories.createCoreService('plugin::builder.article'),
@@ -12,7 +13,7 @@ const services = {
12
13
  'legal-document': strapi_1.factories.createCoreService('plugin::builder.legal-document'),
13
14
  faq: strapi_1.factories.createCoreService('plugin::builder.faq'),
14
15
  global: strapi_1.factories.createCoreService('plugin::builder.global'),
15
- inquiry: strapi_1.factories.createCoreService('plugin::builder.inquiry'),
16
+ inquiry: inquiry_1.default,
16
17
  navigation: strapi_1.factories.createCoreService('plugin::builder.navigation'),
17
18
  page: strapi_1.factories.createCoreService('plugin::builder.page'),
18
19
  populate: populate_1.default,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/src/services/index.ts"],"names":[],"mappings":";;;;;AAAA,2CAA2C;AAC3C,0DAAkC;AAElC,MAAM,QAAQ,GAA4B;IACxC,OAAO,EAAE,kBAAS,CAAC,iBAAiB,CAAC,yBAAyB,CAAC;IAC/D,MAAM,EAAE,kBAAS,CAAC,iBAAiB,CAAC,wBAAwB,CAAC;IAC7D,QAAQ,EAAE,kBAAS,CAAC,iBAAiB,CAAC,0BAA0B,CAAC;IACjE,gBAAgB,EAAE,kBAAS,CAAC,iBAAiB,CAC3C,gCAAgC,CACjC;IACD,GAAG,EAAE,kBAAS,CAAC,iBAAiB,CAAC,qBAAqB,CAAC;IACvD,MAAM,EAAE,kBAAS,CAAC,iBAAiB,CAAC,wBAAwB,CAAC;IAC7D,OAAO,EAAE,kBAAS,CAAC,iBAAiB,CAAC,yBAAyB,CAAC;IAC/D,UAAU,EAAE,kBAAS,CAAC,iBAAiB,CAAC,4BAA4B,CAAC;IACrE,IAAI,EAAE,kBAAS,CAAC,iBAAiB,CAAC,sBAAsB,CAAC;IACzD,QAAQ,EAAR,kBAAQ;IACR,MAAM,EAAE,kBAAS,CAAC,iBAAiB,CAAC,wBAAwB,CAAC;IAC7D,cAAc,EAAE,kBAAS,CAAC,iBAAiB,CAAC,8BAA8B,CAAC;IAC3E,GAAG,EAAE,kBAAS,CAAC,iBAAiB,CAAC,qBAAqB,CAAC;CACxD,CAAC;AAEF,kBAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/src/services/index.ts"],"names":[],"mappings":";;;;;AAAA,2CAA2C;AAC3C,wDAAgC;AAChC,0DAAkC;AAElC,MAAM,QAAQ,GAA4B;IACxC,OAAO,EAAE,kBAAS,CAAC,iBAAiB,CAAC,yBAAyB,CAAC;IAC/D,MAAM,EAAE,kBAAS,CAAC,iBAAiB,CAAC,wBAAwB,CAAC;IAC7D,QAAQ,EAAE,kBAAS,CAAC,iBAAiB,CAAC,0BAA0B,CAAC;IACjE,gBAAgB,EAAE,kBAAS,CAAC,iBAAiB,CAC3C,gCAAgC,CACjC;IACD,GAAG,EAAE,kBAAS,CAAC,iBAAiB,CAAC,qBAAqB,CAAC;IACvD,MAAM,EAAE,kBAAS,CAAC,iBAAiB,CAAC,wBAAwB,CAAC;IAC7D,OAAO,EAAP,iBAAO;IACP,UAAU,EAAE,kBAAS,CAAC,iBAAiB,CAAC,4BAA4B,CAAC;IACrE,IAAI,EAAE,kBAAS,CAAC,iBAAiB,CAAC,sBAAsB,CAAC;IACzD,QAAQ,EAAR,kBAAQ;IACR,MAAM,EAAE,kBAAS,CAAC,iBAAiB,CAAC,wBAAwB,CAAC;IAC7D,cAAc,EAAE,kBAAS,CAAC,iBAAiB,CAAC,8BAA8B,CAAC;IAC3E,GAAG,EAAE,kBAAS,CAAC,iBAAiB,CAAC,qBAAqB,CAAC;CACxD,CAAC;AAEF,kBAAe,QAAQ,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { Core } from '@strapi/strapi';
2
+ export declare class InquiryValidationError extends Error {
3
+ constructor();
4
+ }
5
+ /** Only recover a collision on our unique key, never unrelated DB failures. */
6
+ export declare function isIdempotencyCollision(error: unknown): boolean;
7
+ declare const inquiry: ({ strapi }: {
8
+ strapi: Core.Strapi;
9
+ }) => {
10
+ submit(input: unknown): Promise<{
11
+ accepted: true;
12
+ }>;
13
+ };
14
+ export default inquiry;
15
+ //# sourceMappingURL=inquiry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inquiry.d.ts","sourceRoot":"","sources":["../../../../server/src/services/inquiry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAY3C,qBAAa,sBAAuB,SAAQ,KAAK;;CAIhD;AAsBD,+EAA+E;AAC/E,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAyB9D;AAED,QAAA,MAAM,OAAO,GAAI,YAAY;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE;kBAC9B,OAAO,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,IAAI,CAAA;KAAE,CAAC;CAsFzD,CAAC;AACH,eAAe,OAAO,CAAC"}
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InquiryValidationError = void 0;
4
+ exports.isIdempotencyCollision = isIdempotencyCollision;
5
+ const UID = 'plugin::builder.inquiry';
6
+ const LIMITS = {
7
+ name: 120,
8
+ email: 254,
9
+ phone: 40,
10
+ subject: 200,
11
+ message: 5000,
12
+ };
13
+ class InquiryValidationError extends Error {
14
+ constructor() {
15
+ super('Invalid inquiry submission');
16
+ }
17
+ }
18
+ exports.InquiryValidationError = InquiryValidationError;
19
+ function isRecord(value) {
20
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
21
+ }
22
+ function text(value, limit, required = false) {
23
+ if (value === undefined || value === null) {
24
+ if (required)
25
+ throw new InquiryValidationError();
26
+ return undefined;
27
+ }
28
+ if (typeof value !== 'string')
29
+ throw new InquiryValidationError();
30
+ const result = value.trim();
31
+ if (result.length > limit || (required && !result))
32
+ throw new InquiryValidationError();
33
+ return result || undefined;
34
+ }
35
+ /** Only recover a collision on our unique key, never unrelated DB failures. */
36
+ function isIdempotencyCollision(error) {
37
+ if (!isRecord(error))
38
+ return false;
39
+ if ((error.code === 'SQLITE_CONSTRAINT_UNIQUE' || error.code === '23505') &&
40
+ /idempotency_key/.test(String(error.message ?? error.constraint)))
41
+ return true;
42
+ if (error.name === 'ValidationError' &&
43
+ isRecord(error.details) &&
44
+ Array.isArray(error.details.errors)) {
45
+ return (error.details.errors.length > 0 &&
46
+ error.details.errors.every((item) => isRecord(item) &&
47
+ Array.isArray(item.path) &&
48
+ item.path.length === 1 &&
49
+ item.path[0] === 'idempotencyKey' &&
50
+ item.message === 'This attribute must be unique'));
51
+ }
52
+ return error.cause !== undefined && isIdempotencyCollision(error.cause);
53
+ }
54
+ const inquiry = ({ strapi }) => ({
55
+ async submit(input) {
56
+ if (!isRecord(input) || input.consent !== true)
57
+ throw new InquiryValidationError();
58
+ const config = strapi.config.get('plugin::builder')
59
+ .inquiry;
60
+ const name = text(input.name, LIMITS.name, true);
61
+ const consentVersion = text(input.consentVersion, 120, true);
62
+ // Printable version identifiers are recorded verbatim after normalization.
63
+ if (!/^[\x21-\x7e]+$/.test(consentVersion))
64
+ throw new InquiryValidationError();
65
+ const idempotencyKey = text(input.idempotencyKey, 128);
66
+ if (input.idempotencyKey !== undefined &&
67
+ (!idempotencyKey || !/^[a-zA-Z0-9][a-zA-Z0-9._:-]*$/.test(idempotencyKey)))
68
+ throw new InquiryValidationError();
69
+ const data = {
70
+ name,
71
+ consent: true,
72
+ consentVersion,
73
+ };
74
+ for (const [field, limit] of Object.entries(LIMITS)) {
75
+ if (field !== 'name')
76
+ data[field] = text(input[field], limit);
77
+ }
78
+ if (data.email && !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(String(data.email)))
79
+ throw new InquiryValidationError();
80
+ for (const [field, attribute] of Object.entries(config?.attributes ?? {})) {
81
+ const value = input[field];
82
+ if (value === undefined || value === null)
83
+ continue;
84
+ if (attribute.type === 'boolean') {
85
+ if (typeof value !== 'boolean')
86
+ throw new InquiryValidationError();
87
+ data[field] = value;
88
+ }
89
+ else if (attribute.type === 'integer') {
90
+ if (typeof value !== 'number' || !Number.isSafeInteger(value))
91
+ throw new InquiryValidationError();
92
+ data[field] = value;
93
+ }
94
+ else {
95
+ data[field] = text(value, attribute.maxLength ?? (attribute.type === 'text' ? 5000 : 255));
96
+ if (attribute.type === 'enumeration' &&
97
+ data[field] !== undefined &&
98
+ !attribute.enum?.includes(String(data[field])))
99
+ throw new InquiryValidationError();
100
+ if (attribute.type === 'email' &&
101
+ data[field] &&
102
+ !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(String(data[field])))
103
+ throw new InquiryValidationError();
104
+ }
105
+ }
106
+ if (idempotencyKey)
107
+ data.idempotencyKey = idempotencyKey;
108
+ // A hook can inspect only the normalized public fields, and cannot mutate
109
+ // consent or supply server audit/status fields through its return value.
110
+ const submission = Object.freeze({ ...data });
111
+ if (config?.validate && (await config.validate(submission)) === false)
112
+ throw new InquiryValidationError();
113
+ const documents = strapi.documents(UID);
114
+ if (idempotencyKey &&
115
+ (await documents.findFirst({ filters: { idempotencyKey } })))
116
+ return { accepted: true };
117
+ try {
118
+ await documents.create({
119
+ data: {
120
+ ...data,
121
+ idempotencyKey: idempotencyKey ?? null,
122
+ consentAt: new Date().toISOString(),
123
+ processingStatus: 'received',
124
+ },
125
+ });
126
+ }
127
+ catch (error) {
128
+ if (!idempotencyKey ||
129
+ !isIdempotencyCollision(error) ||
130
+ !(await documents.findFirst({ filters: { idempotencyKey } })))
131
+ throw error;
132
+ }
133
+ return { accepted: true };
134
+ },
135
+ });
136
+ exports.default = inquiry;
137
+ //# sourceMappingURL=inquiry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inquiry.js","sourceRoot":"","sources":["../../../../server/src/services/inquiry.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dani-builder/strapi-plugin-builder",
3
- "version": "0.10.0",
3
+ "version": "0.11.0",
4
4
  "description": "Daniworks Builder — reusable CMS components, content types, and smart API for Strapi v5",
5
5
  "license": "MIT",
6
6
  "strapi": {