@actuate-media/cms-core 0.30.0 → 0.31.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/dist/__tests__/api/admin-contracts.test.js +10 -2
- package/dist/__tests__/api/admin-contracts.test.js.map +1 -1
- package/dist/__tests__/api/public-seo.test.js +2 -0
- package/dist/__tests__/api/public-seo.test.js.map +1 -1
- package/dist/__tests__/forms/forms-service.test.d.ts +2 -0
- package/dist/__tests__/forms/forms-service.test.d.ts.map +1 -0
- package/dist/__tests__/forms/forms-service.test.js +193 -0
- package/dist/__tests__/forms/forms-service.test.js.map +1 -0
- package/dist/__tests__/seo/audit-runner.test.js +54 -1
- package/dist/__tests__/seo/audit-runner.test.js.map +1 -1
- package/dist/api/handlers.d.ts.map +1 -1
- package/dist/api/handlers.js +451 -101
- package/dist/api/handlers.js.map +1 -1
- package/dist/config/types.d.ts +42 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/cron/index.d.ts +1 -0
- package/dist/cron/index.d.ts.map +1 -1
- package/dist/cron/index.js +10 -1
- package/dist/cron/index.js.map +1 -1
- package/dist/forms/entries.d.ts +45 -0
- package/dist/forms/entries.d.ts.map +1 -0
- package/dist/forms/entries.js +348 -0
- package/dist/forms/entries.js.map +1 -0
- package/dist/forms/index.d.ts +4 -0
- package/dist/forms/index.d.ts.map +1 -1
- package/dist/forms/index.js +3 -0
- package/dist/forms/index.js.map +1 -1
- package/dist/forms/service.d.ts +92 -0
- package/dist/forms/service.d.ts.map +1 -0
- package/dist/forms/service.js +579 -0
- package/dist/forms/service.js.map +1 -0
- package/dist/forms/types.d.ts +244 -0
- package/dist/forms/types.d.ts.map +1 -0
- package/dist/forms/types.js +36 -0
- package/dist/forms/types.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/seo/audit-runner.d.ts +37 -2
- package/dist/seo/audit-runner.d.ts.map +1 -1
- package/dist/seo/audit-runner.js +56 -6
- package/dist/seo/audit-runner.js.map +1 -1
- package/dist/seo/index.d.ts +2 -1
- package/dist/seo/index.d.ts.map +1 -1
- package/dist/seo/index.js +1 -1
- package/dist/seo/index.js.map +1 -1
- package/package.json +1 -1
- package/prisma/cms-schema.prisma +81 -7
- package/prisma/migrations/0010_forms/migration.sql +130 -0
- package/prisma/schema.prisma +130 -35
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"audit-runner.js","sourceRoot":"","sources":["../../src/seo/audit-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,mBAAmB,GAGpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAEpG,iEAAiE;AACjE,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,qBAAqB;IACrB,WAAW;IACX,WAAW;IACX,gBAAgB;CACjB,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAkB;IACrD,OAAO,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;AACpF,CAAC;AAED;;;;;GAKG;AACH,MAAM,kBAAkB,GAAG,IAAI,CAAA;AAE/B,SAAS,QAAQ,CAAC,CAAU;IAC1B,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAA6B,CAAC,CAAC,CAAC,EAAE,CAAA;AAC9F,CAAC;AAED,SAAS,GAAG,CAAC,CAAU;IACrB,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AACzD,CAAC;AAED,SAAS,IAAI,CAAC,CAAU;IACtB,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,MAAM,CAAA;AACnC,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,qBAAqB,
|
|
1
|
+
{"version":3,"file":"audit-runner.js","sourceRoot":"","sources":["../../src/seo/audit-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,mBAAmB,GAGpB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,wBAAwB,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAA;AAEpG,iEAAiE;AACjE,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC;IACnC,qBAAqB;IACrB,WAAW;IACX,WAAW;IACX,gBAAgB;CACjB,CAAC,CAAA;AAEF;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAkB;IACrD,OAAO,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;AACpF,CAAC;AAKD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,8BAA8B,CAAC,GAAY;IACzD,MAAM,GAAG,GAA2B,EAAE,CAAA;IACtC,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,CAGxB,CAAA;IACD,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,CAAA;IAC5C,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAS,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,kBAAkB,IAAI,EAAE,CAAC,CAAA;IAC/E,KAAK,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACtD,IAAI,GAAG,EAAE,IAAI,KAAK,MAAM,IAAI,GAAG,EAAE,IAAI,KAAK,MAAM;YAAE,SAAQ;QAC1D,IAAI,GAAG,EAAE,KAAK,EAAE,MAAM;YAAE,SAAQ;QAChC,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,SAAQ;QAChC,IAAI,GAAG,EAAE,GAAG,EAAE,kBAAkB;YAAE,SAAQ;QAC1C,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAA;IACtB,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED;;;;;GAKG;AACH,MAAM,kBAAkB,GAAG,IAAI,CAAA;AAE/B,SAAS,QAAQ,CAAC,CAAU;IAC1B,OAAO,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAA6B,CAAC,CAAC,CAAC,EAAE,CAAA;AAC9F,CAAC;AAED,SAAS,GAAG,CAAC,CAAU;IACrB,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AACzD,CAAC;AAED,SAAS,IAAI,CAAC,CAAU;IACtB,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,MAAM,CAAA;AACnC,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,qBAAqB,CACnC,GAAQ,EACR,eAAwC;IAExC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC/B,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAA;IAC/C,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,EAAE,CAAA;IACjD,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAA;IACnF,MAAM,OAAO,GACX,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QACd,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QACjB,CAAC,OAAO,GAAG,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QACxD,EAAE,CAAA;IAEJ,2EAA2E;IAC3E,2DAA2D;IAC3D,MAAM,UAAU,GACd,eAAe,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IAErF,OAAO;QACL,UAAU;QACV,QAAQ,EAAE,GAAG,CAAC,EAAE;QAChB,KAAK,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,IAAI,UAAU;QACjD,GAAG;QACH,OAAO;QACP,SAAS,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;QACpD,eAAe,EAAE,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;QACtE,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;QAChE,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;QAC3D,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QAC1B,aAAa,EAAE,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;QACtC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QAC1B,kBAAkB,EAChB,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC;QACpF,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;QACvD,iBAAiB,EAAE,IAAI;QACvB,SAAS,EAAE,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;KACtE,CAAA;AACH,CAAC;AAaD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,EAAO,EACP,UAA8B,EAAE;IAEhC,MAAM,EAAE,eAAe,EAAE,GAAG,OAAO,CAAA;IAEnC,8EAA8E;IAC9E,6EAA6E;IAC7E,kBAAkB;IAClB,MAAM,KAAK,GAA4B,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,CAAA;IAC/E,IAAI,eAAe,EAAE,CAAC;QACpB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;QAC1C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAA;QACjC,KAAK,CAAC,UAAU,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,CAAA;IAClC,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACtC,KAAK;QACL,MAAM,EAAE;YACN,EAAE,EAAE,IAAI;YACR,UAAU,EAAE,IAAI;YAChB,KAAK,EAAE,IAAI;YACX,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,IAAI;YACV,cAAc,EAAE,IAAI;YACpB,SAAS,EAAE,IAAI;SAChB;QACD,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;QAC9B,IAAI,EAAE,kBAAkB;KACzB,CAAC,CAAA;IAEF,OAAO,IAAI;SACR,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;SAClF,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,qBAAqB,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,CAAA;AAC/D,CAAC;AA0BD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,EAAO,EACP,UAA2B,EAAE;IAE7B,IAAI,CAAC,EAAE,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QACxD,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAA;IAC7C,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAAA;IAErC,sDAAsD;IACtD,MAAM,SAAS,GAAG,MAAM,eAAe,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;IAC7D,MAAM,cAAc,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAA;IAC1D,MAAM,OAAO,GAAsB;QACjC,cAAc,EAAE,cAAc,CAAC,cAAc;QAC7C,aAAa,EAAE,cAAc,CAAC,aAAa;QAC3C,GAAG,OAAO,CAAC,OAAO;KACnB,CAAA;IAED,wEAAwE;IACxE,yEAAyE;IACzE,6EAA6E;IAC7E,uEAAuE;IACvE,MAAM,YAAY,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;IACnC,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,WAAW;SAClC,SAAS,CAAC;QACT,KAAK,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;QAC5B,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;QAC9B,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE;KAC5B,CAAC;SACD,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAA;IACpB,IAAI,QAAQ,EAAE,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,YAAY,EAAE,CAAC;QAC9F,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;IAChD,CAAC;IAED,8DAA8D;IAC9D,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC;QAC1C,KAAK,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE;QAC9B,OAAO,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;QAC9B,MAAM,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;KACjC,CAAC,CAAA;IAEF,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC;QACtC,IAAI,EAAE;YACJ,MAAM,EAAE,SAAS;YACjB,KAAK;YACL,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI;YACxC,eAAe,EAAE,IAAI,EAAE,cAAc,IAAI,IAAI;SAC9C;KACF,CAAC,CAAA;IAEF,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,EAAE,EAAE,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAA;QAC5F,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;QAErD,MAAM,aAAa,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,CAAA;QAE9C,MAAM,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC;YAC1B,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE;YACrB,IAAI,EAAE;gBACJ,MAAM,EAAE,WAAW;gBACnB,UAAU,EAAE,IAAI,IAAI,EAAE;gBACtB,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK;gBACtC,YAAY,EAAE,QAAQ,CAAC,MAAM;gBAC7B,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK;gBAChC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ;gBACrC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;gBACnC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;gBAC7B,QAAQ,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE;aACpD;SACF,CAAC,CAAA;QAEF,OAAO;YACL,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,MAAM,EAAE,WAAW;YACnB,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC,KAAK;YACtC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK;YAChC,aAAa,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ;YACrC,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO;YACnC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;YAC7B,YAAY,EAAE,QAAQ,CAAC,MAAM;SAC9B,CAAA;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,EAAE,CAAC,WAAW;aACjB,MAAM,CAAC;YACN,KAAK,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE;YACrB,IAAI,EAAE;gBACJ,MAAM,EAAE,QAAQ;gBAChB,UAAU,EAAE,IAAI,IAAI,EAAE;gBACtB,YAAY,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc;aAClE;SACF,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAClB,MAAM,GAAG,CAAA;IACX,CAAC;AACH,CAAC;AAED,uEAAuE;AACvE,KAAK,UAAU,aAAa,CAC1B,EAAO,EACP,UAAkB,EAClB,QAAqD;IAErD,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC/C,MAAM,KAAK,GAAG,IAAI,GAAG,CAAc,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7E,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;IAC7D,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAA;IAEtB,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QACvC,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;YACzB,IAAI,KAAK,CAAC,MAAM,KAAK,UAAU;gBAAE,MAAM,GAAG,WAAW,CAAA;YACrD,yDAAyD;YACzD,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACvB,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE;gBACvB,IAAI,EAAE;oBACJ,UAAU;oBACV,MAAM;oBACN,cAAc,EAAE,GAAG;oBACnB,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,GAAG,EAAE,KAAK,CAAC,GAAG;oBACd,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,cAAc,EAAE,KAAK,CAAC,cAAc;oBACpC,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,aAAa,EAAE,KAAK,CAAC,aAAa;oBAClC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;oBACxC,UAAU,EAAE,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI;iBAC5D;aACF,CAAC,CAAA;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACvB,IAAI,EAAE;oBACJ,UAAU;oBACV,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,GAAG,EAAE,KAAK,CAAC,GAAG;oBACd,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,WAAW,EAAE,KAAK,CAAC,WAAW;oBAC9B,MAAM,EAAE,KAAK,CAAC,MAAM;oBACpB,cAAc,EAAE,KAAK,CAAC,cAAc;oBACpC,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,aAAa,EAAE,KAAK,CAAC,aAAa;oBAClC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;oBACxC,MAAM,EAAE,OAAO;iBAChB;aACF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,sEAAsE;IACtE,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAC/B,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAC/F,CAAA;IACD,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;YACvB,KAAK,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE;YACnB,IAAI,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE;SAC9C,CAAC,CAAA;IACJ,CAAC;AACH,CAAC"}
|
package/dist/seo/index.d.ts
CHANGED
|
@@ -16,5 +16,6 @@ export { calculatePageSeoScore, calculateSiteSeoScore, gradeForSeoScore, countH1
|
|
|
16
16
|
export type { SeoGrade, SeoCheckStatus, SeoScoreCheck, PageSeoScoreResult, PageSeoScoreInput, SiteSeoScoreInput, SiteSeoScoreResult, SiteSeoScoreBreakdownItem, } from './score.js';
|
|
17
17
|
export { runSeoAuditAnalysis, buildQuickWins, issueKeyFor } from './audit-engine.js';
|
|
18
18
|
export type { AuditEntityInput, AuditExtraSignals, DetectedIssue, AuditPageRecord, QuickWin, SeoAuditResult, } from './audit-engine.js';
|
|
19
|
-
export { runAndPersistAudit, gatherAuditEntities, documentToAuditEntity } from './audit-runner.js';
|
|
19
|
+
export { runAndPersistAudit, gatherAuditEntities, documentToAuditEntity, frontEndContentCollectionTypes, isInternalCollection, } from './audit-runner.js';
|
|
20
|
+
export type { ContentCollectionTypes } from './audit-runner.js';
|
|
20
21
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/seo/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/seo/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,eAAe,GAChB,MAAM,eAAe,CAAA;AAEtB,YAAY,EAAE,iBAAiB,EAAE,QAAQ,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAElG,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAE3F,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAElD,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAE5E,YAAY,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE1F,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAErE,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAE9E,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE/C,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE/D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAElE,YAAY,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAElG,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,mBAAmB,CAAA;AAE1B,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAE9E,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,OAAO,EACP,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,YAAY,CAAA;AAEnB,YAAY,EACV,QAAQ,EACR,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpF,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,QAAQ,EACR,cAAc,GACf,MAAM,mBAAmB,CAAA;AAE1B,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/seo/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,eAAe,GAChB,MAAM,eAAe,CAAA;AAEtB,YAAY,EAAE,iBAAiB,EAAE,QAAQ,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAElG,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAE3F,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAElD,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAE5E,YAAY,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE1F,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAErE,YAAY,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAE9E,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAE/C,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE/D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAElE,YAAY,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAElG,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,mBAAmB,CAAA;AAE1B,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAE9E,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,OAAO,EACP,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,YAAY,CAAA;AAEnB,YAAY,EACV,QAAQ,EACR,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,GAC1B,MAAM,YAAY,CAAA;AAEnB,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpF,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,eAAe,EACf,QAAQ,EACR,cAAc,GACf,MAAM,mBAAmB,CAAA;AAE1B,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,8BAA8B,EAC9B,oBAAoB,GACrB,MAAM,mBAAmB,CAAA;AAC1B,YAAY,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA"}
|
package/dist/seo/index.js
CHANGED
|
@@ -7,5 +7,5 @@ export { composePageMeta, detectSchemaType } from './page-meta.js';
|
|
|
7
7
|
export { SEO_CONFIG_COLLECTION, getSeoOverrides, putSeoOverrides, applySeoOverrides, mergeSiteSeoConfig, mergeCollectionSeoConfig, DEFAULT_SEO_MODULE_SETTINGS, resolveSeoModuleSettings, } from './config-store.js';
|
|
8
8
|
export { calculatePageSeoScore, calculateSiteSeoScore, gradeForSeoScore, countH1, PAGE_SEO_WEIGHTS, SITE_SEO_WEIGHTS, } from './score.js';
|
|
9
9
|
export { runSeoAuditAnalysis, buildQuickWins, issueKeyFor } from './audit-engine.js';
|
|
10
|
-
export { runAndPersistAudit, gatherAuditEntities, documentToAuditEntity } from './audit-runner.js';
|
|
10
|
+
export { runAndPersistAudit, gatherAuditEntities, documentToAuditEntity, frontEndContentCollectionTypes, isInternalCollection, } from './audit-runner.js';
|
|
11
11
|
//# sourceMappingURL=index.js.map
|
package/dist/seo/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/seo/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,eAAe,GAChB,MAAM,eAAe,CAAA;AAItB,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAI3F,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAI5E,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAIrE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAI/C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAIlE,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,mBAAmB,CAAA;AAI1B,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,OAAO,EACP,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,YAAY,CAAA;AAanB,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAWpF,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/seo/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,eAAe,GAChB,MAAM,eAAe,CAAA;AAItB,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AAI3F,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAI5E,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAIrE,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAI/C,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAIlE,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,mBAAmB,CAAA;AAI1B,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,OAAO,EACP,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,YAAY,CAAA;AAanB,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAWpF,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,8BAA8B,EAC9B,oBAAoB,GACrB,MAAM,mBAAmB,CAAA"}
|
package/package.json
CHANGED
package/prisma/cms-schema.prisma
CHANGED
|
@@ -209,18 +209,92 @@ model Redirect {
|
|
|
209
209
|
@@index([createdAt])
|
|
210
210
|
}
|
|
211
211
|
|
|
212
|
+
model FormSchemaVersion {
|
|
213
|
+
id String @id @default(cuid())
|
|
214
|
+
formId String
|
|
215
|
+
version Int
|
|
216
|
+
fields Json
|
|
217
|
+
notes String?
|
|
218
|
+
createdById String?
|
|
219
|
+
createdAt DateTime @default(now())
|
|
220
|
+
|
|
221
|
+
@@unique([formId, version])
|
|
222
|
+
@@index([formId])
|
|
223
|
+
}
|
|
224
|
+
|
|
212
225
|
model FormSubmission {
|
|
213
|
-
id
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
226
|
+
id String @id @default(cuid())
|
|
227
|
+
entryNumber Int?
|
|
228
|
+
formId String
|
|
229
|
+
form Document @relation(fields: [formId], references: [id], onDelete: Cascade)
|
|
230
|
+
schemaVersionId String?
|
|
231
|
+
data Json
|
|
232
|
+
normalizedData Json?
|
|
233
|
+
attribution Json?
|
|
234
|
+
senderName String?
|
|
235
|
+
senderEmail String?
|
|
236
|
+
senderPhone String?
|
|
237
|
+
preview String?
|
|
238
|
+
status String @default("new")
|
|
239
|
+
unread Boolean @default(true)
|
|
240
|
+
starred Boolean @default(false)
|
|
241
|
+
archived Boolean @default(false)
|
|
242
|
+
spamStatus String @default("clean")
|
|
243
|
+
ipAddressHash String?
|
|
244
|
+
userAgent String?
|
|
245
|
+
referrer String?
|
|
246
|
+
pageUrl String?
|
|
247
|
+
utmSource String?
|
|
248
|
+
utmMedium String?
|
|
249
|
+
utmCampaign String?
|
|
250
|
+
submittedAt DateTime @default(now())
|
|
251
|
+
readAt DateTime?
|
|
252
|
+
archivedAt DateTime?
|
|
253
|
+
createdAt DateTime @default(now())
|
|
254
|
+
updatedAt DateTime @updatedAt
|
|
255
|
+
|
|
256
|
+
files FormSubmissionFile[]
|
|
220
257
|
|
|
221
258
|
@@index([formId])
|
|
222
259
|
@@index([submittedAt])
|
|
223
260
|
@@index([createdAt])
|
|
261
|
+
@@index([unread])
|
|
262
|
+
@@index([starred])
|
|
263
|
+
@@index([archived])
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
model FormSubmissionFile {
|
|
267
|
+
id String @id @default(cuid())
|
|
268
|
+
submissionId String
|
|
269
|
+
fieldKey String
|
|
270
|
+
mediaAssetId String?
|
|
271
|
+
fileName String
|
|
272
|
+
mimeType String
|
|
273
|
+
sizeBytes Int
|
|
274
|
+
storageKey String
|
|
275
|
+
publicUrl String?
|
|
276
|
+
secureDownloadUrl String?
|
|
277
|
+
createdAt DateTime @default(now())
|
|
278
|
+
|
|
279
|
+
submission FormSubmission @relation(fields: [submissionId], references: [id], onDelete: Cascade)
|
|
280
|
+
|
|
281
|
+
@@index([submissionId])
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
model FormWebhook {
|
|
285
|
+
id String @id @default(cuid())
|
|
286
|
+
formId String
|
|
287
|
+
url String
|
|
288
|
+
secret String
|
|
289
|
+
enabled Boolean @default(true)
|
|
290
|
+
events Json
|
|
291
|
+
retryCount Int @default(0)
|
|
292
|
+
lastDeliveryAt DateTime?
|
|
293
|
+
lastDeliveryStatus String?
|
|
294
|
+
createdAt DateTime @default(now())
|
|
295
|
+
updatedAt DateTime @updatedAt
|
|
296
|
+
|
|
297
|
+
@@index([formId])
|
|
224
298
|
}
|
|
225
299
|
|
|
226
300
|
model AuditLog {
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
-- Forms system
|
|
2
|
+
--
|
|
3
|
+
-- Expands the Forms feature from a single flat submissions table into a real
|
|
4
|
+
-- submission workflow with schema versioning, per-submission file attachments,
|
|
5
|
+
-- and per-form webhooks.
|
|
6
|
+
--
|
|
7
|
+
-- * actuate_form_submissions: new workflow columns (entryNumber, sender*,
|
|
8
|
+
-- unread/starred/archived, spamStatus, attribution metadata, schema version
|
|
9
|
+
-- link, normalizedData, read/archived timestamps, updatedAt).
|
|
10
|
+
-- * actuate_form_schema_versions: versioned field-schema snapshots so old
|
|
11
|
+
-- submissions always render against the schema they were captured with.
|
|
12
|
+
-- * actuate_form_submission_files: file-upload metadata (storage keys, not
|
|
13
|
+
-- blobs) with cascade delete from its submission.
|
|
14
|
+
-- * actuate_form_webhooks: per-form signed outbound webhooks.
|
|
15
|
+
--
|
|
16
|
+
-- Safe to apply to a populated database:
|
|
17
|
+
-- * Every new column on actuate_form_submissions is nullable or has a default.
|
|
18
|
+
-- * updatedAt is backfilled from createdAt for existing rows before the NOT
|
|
19
|
+
-- NULL default takes over for new rows.
|
|
20
|
+
-- * No existing column is dropped or retyped. formId stays a loose string
|
|
21
|
+
-- (no new FK) so historical rows with orphaned formIds are not rejected.
|
|
22
|
+
|
|
23
|
+
-- ---------------------------------------------------------------------------
|
|
24
|
+
-- actuate_form_submissions new columns
|
|
25
|
+
-- ---------------------------------------------------------------------------
|
|
26
|
+
ALTER TABLE "actuate_form_submissions"
|
|
27
|
+
ADD COLUMN "entryNumber" INTEGER,
|
|
28
|
+
ADD COLUMN "schemaVersionId" TEXT,
|
|
29
|
+
ADD COLUMN "normalizedData" JSONB,
|
|
30
|
+
ADD COLUMN "senderName" TEXT,
|
|
31
|
+
ADD COLUMN "senderEmail" TEXT,
|
|
32
|
+
ADD COLUMN "senderPhone" TEXT,
|
|
33
|
+
ADD COLUMN "preview" TEXT,
|
|
34
|
+
ADD COLUMN "unread" BOOLEAN NOT NULL DEFAULT true,
|
|
35
|
+
ADD COLUMN "starred" BOOLEAN NOT NULL DEFAULT false,
|
|
36
|
+
ADD COLUMN "archived" BOOLEAN NOT NULL DEFAULT false,
|
|
37
|
+
ADD COLUMN "spamStatus" TEXT NOT NULL DEFAULT 'clean',
|
|
38
|
+
ADD COLUMN "ipAddressHash" TEXT,
|
|
39
|
+
ADD COLUMN "userAgent" TEXT,
|
|
40
|
+
ADD COLUMN "referrer" TEXT,
|
|
41
|
+
ADD COLUMN "pageUrl" TEXT,
|
|
42
|
+
ADD COLUMN "utmSource" TEXT,
|
|
43
|
+
ADD COLUMN "utmMedium" TEXT,
|
|
44
|
+
ADD COLUMN "utmCampaign" TEXT,
|
|
45
|
+
ADD COLUMN "readAt" TIMESTAMP(3),
|
|
46
|
+
ADD COLUMN "archivedAt" TIMESTAMP(3),
|
|
47
|
+
ADD COLUMN "updatedAt" TIMESTAMP(3);
|
|
48
|
+
|
|
49
|
+
-- Backfill updatedAt for existing rows, then enforce NOT NULL with a default
|
|
50
|
+
-- so new inserts (and Prisma's @updatedAt) always have a value.
|
|
51
|
+
UPDATE "actuate_form_submissions" SET "updatedAt" = "createdAt" WHERE "updatedAt" IS NULL;
|
|
52
|
+
ALTER TABLE "actuate_form_submissions"
|
|
53
|
+
ALTER COLUMN "updatedAt" SET NOT NULL,
|
|
54
|
+
ALTER COLUMN "updatedAt" SET DEFAULT CURRENT_TIMESTAMP;
|
|
55
|
+
|
|
56
|
+
-- Existing rows predate the read/unread workflow; treat them as already read so
|
|
57
|
+
-- they don't all light up as unread in the new inbox.
|
|
58
|
+
UPDATE "actuate_form_submissions" SET "unread" = false WHERE "status" <> 'new';
|
|
59
|
+
|
|
60
|
+
CREATE INDEX "actuate_form_submissions_unread_idx" ON "actuate_form_submissions" ("unread");
|
|
61
|
+
CREATE INDEX "actuate_form_submissions_starred_idx" ON "actuate_form_submissions" ("starred");
|
|
62
|
+
CREATE INDEX "actuate_form_submissions_archived_idx" ON "actuate_form_submissions" ("archived");
|
|
63
|
+
CREATE INDEX "actuate_form_submissions_spamStatus_idx" ON "actuate_form_submissions" ("spamStatus");
|
|
64
|
+
CREATE INDEX "actuate_form_submissions_submittedAt_idx" ON "actuate_form_submissions" ("submittedAt");
|
|
65
|
+
CREATE INDEX "actuate_form_submissions_senderEmail_idx" ON "actuate_form_submissions" ("senderEmail");
|
|
66
|
+
|
|
67
|
+
-- ---------------------------------------------------------------------------
|
|
68
|
+
-- actuate_form_schema_versions
|
|
69
|
+
-- ---------------------------------------------------------------------------
|
|
70
|
+
CREATE TABLE "actuate_form_schema_versions" (
|
|
71
|
+
"id" TEXT NOT NULL,
|
|
72
|
+
"formId" TEXT NOT NULL,
|
|
73
|
+
"version" INTEGER NOT NULL,
|
|
74
|
+
"fields" JSONB NOT NULL,
|
|
75
|
+
"notes" TEXT,
|
|
76
|
+
"createdById" TEXT,
|
|
77
|
+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
78
|
+
CONSTRAINT "actuate_form_schema_versions_pkey" PRIMARY KEY ("id")
|
|
79
|
+
);
|
|
80
|
+
|
|
81
|
+
CREATE UNIQUE INDEX "actuate_form_schema_versions_formId_version_key"
|
|
82
|
+
ON "actuate_form_schema_versions" ("formId", "version");
|
|
83
|
+
CREATE INDEX "actuate_form_schema_versions_formId_idx"
|
|
84
|
+
ON "actuate_form_schema_versions" ("formId");
|
|
85
|
+
|
|
86
|
+
-- ---------------------------------------------------------------------------
|
|
87
|
+
-- actuate_form_submission_files
|
|
88
|
+
-- ---------------------------------------------------------------------------
|
|
89
|
+
CREATE TABLE "actuate_form_submission_files" (
|
|
90
|
+
"id" TEXT NOT NULL,
|
|
91
|
+
"submissionId" TEXT NOT NULL,
|
|
92
|
+
"fieldKey" TEXT NOT NULL,
|
|
93
|
+
"mediaAssetId" TEXT,
|
|
94
|
+
"fileName" TEXT NOT NULL,
|
|
95
|
+
"mimeType" TEXT NOT NULL,
|
|
96
|
+
"sizeBytes" INTEGER NOT NULL,
|
|
97
|
+
"storageKey" TEXT NOT NULL,
|
|
98
|
+
"publicUrl" TEXT,
|
|
99
|
+
"secureDownloadUrl" TEXT,
|
|
100
|
+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
101
|
+
CONSTRAINT "actuate_form_submission_files_pkey" PRIMARY KEY ("id")
|
|
102
|
+
);
|
|
103
|
+
|
|
104
|
+
CREATE INDEX "actuate_form_submission_files_submissionId_idx"
|
|
105
|
+
ON "actuate_form_submission_files" ("submissionId");
|
|
106
|
+
|
|
107
|
+
ALTER TABLE "actuate_form_submission_files"
|
|
108
|
+
ADD CONSTRAINT "actuate_form_submission_files_submissionId_fkey"
|
|
109
|
+
FOREIGN KEY ("submissionId") REFERENCES "actuate_form_submissions"("id")
|
|
110
|
+
ON DELETE CASCADE ON UPDATE CASCADE;
|
|
111
|
+
|
|
112
|
+
-- ---------------------------------------------------------------------------
|
|
113
|
+
-- actuate_form_webhooks
|
|
114
|
+
-- ---------------------------------------------------------------------------
|
|
115
|
+
CREATE TABLE "actuate_form_webhooks" (
|
|
116
|
+
"id" TEXT NOT NULL,
|
|
117
|
+
"formId" TEXT NOT NULL,
|
|
118
|
+
"url" TEXT NOT NULL,
|
|
119
|
+
"secret" TEXT NOT NULL,
|
|
120
|
+
"enabled" BOOLEAN NOT NULL DEFAULT true,
|
|
121
|
+
"events" JSONB NOT NULL,
|
|
122
|
+
"retryCount" INTEGER NOT NULL DEFAULT 0,
|
|
123
|
+
"lastDeliveryAt" TIMESTAMP(3),
|
|
124
|
+
"lastDeliveryStatus" TEXT,
|
|
125
|
+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
126
|
+
"updatedAt" TIMESTAMP(3) NOT NULL,
|
|
127
|
+
CONSTRAINT "actuate_form_webhooks_pkey" PRIMARY KEY ("id")
|
|
128
|
+
);
|
|
129
|
+
|
|
130
|
+
CREATE INDEX "actuate_form_webhooks_formId_idx" ON "actuate_form_webhooks" ("formId");
|
package/prisma/schema.prisma
CHANGED
|
@@ -561,30 +561,30 @@ model SeoAuditRun {
|
|
|
561
561
|
/// hash of (type + entityId/url) used to carry status across runs so a
|
|
562
562
|
/// resolved/ignored issue stays resolved/ignored when re-detected.
|
|
563
563
|
model SeoIssue {
|
|
564
|
-
id
|
|
565
|
-
auditRunId
|
|
566
|
-
issueKey
|
|
567
|
-
entityType
|
|
568
|
-
entityId
|
|
569
|
-
entityTitle
|
|
570
|
-
url
|
|
571
|
-
severity
|
|
572
|
-
category
|
|
573
|
-
type
|
|
574
|
-
title
|
|
575
|
-
description
|
|
576
|
-
impact
|
|
577
|
-
recommendation
|
|
578
|
-
status
|
|
579
|
-
fixable
|
|
580
|
-
fixActionType
|
|
564
|
+
id String @id @default(cuid())
|
|
565
|
+
auditRunId String?
|
|
566
|
+
issueKey String
|
|
567
|
+
entityType String?
|
|
568
|
+
entityId String?
|
|
569
|
+
entityTitle String?
|
|
570
|
+
url String?
|
|
571
|
+
severity SeoIssueSeverity
|
|
572
|
+
category SeoIssueCategory
|
|
573
|
+
type String
|
|
574
|
+
title String
|
|
575
|
+
description String?
|
|
576
|
+
impact String?
|
|
577
|
+
recommendation String?
|
|
578
|
+
status SeoIssueStatus @default(open)
|
|
579
|
+
fixable Boolean @default(false)
|
|
580
|
+
fixActionType String?
|
|
581
581
|
relatedEntityIds Json?
|
|
582
|
-
source
|
|
583
|
-
firstDetectedAt
|
|
584
|
-
lastDetectedAt
|
|
585
|
-
resolvedAt
|
|
586
|
-
resolvedById
|
|
587
|
-
metadata
|
|
582
|
+
source String @default("audit")
|
|
583
|
+
firstDetectedAt DateTime @default(now())
|
|
584
|
+
lastDetectedAt DateTime @default(now())
|
|
585
|
+
resolvedAt DateTime?
|
|
586
|
+
resolvedById String?
|
|
587
|
+
metadata Json?
|
|
588
588
|
|
|
589
589
|
auditRun SeoAuditRun? @relation(fields: [auditRunId], references: [id], onDelete: SetNull)
|
|
590
590
|
|
|
@@ -599,13 +599,13 @@ model SeoIssue {
|
|
|
599
599
|
/// A 404 hit observed by the redirect middleware. Aggregated per path so
|
|
600
600
|
/// the Redirects tab can surface "broken URLs still getting traffic".
|
|
601
601
|
model Redirect404Hit {
|
|
602
|
-
id
|
|
603
|
-
path
|
|
604
|
-
hits
|
|
605
|
-
referrer
|
|
606
|
-
resolvedAt
|
|
607
|
-
firstSeenAt DateTime
|
|
608
|
-
lastSeenAt
|
|
602
|
+
id String @id @default(cuid())
|
|
603
|
+
path String
|
|
604
|
+
hits Int @default(1)
|
|
605
|
+
referrer String?
|
|
606
|
+
resolvedAt DateTime?
|
|
607
|
+
firstSeenAt DateTime @default(now())
|
|
608
|
+
lastSeenAt DateTime @default(now())
|
|
609
609
|
|
|
610
610
|
@@unique([path])
|
|
611
611
|
@@index([lastSeenAt])
|
|
@@ -632,20 +632,115 @@ model RedirectSuggestion {
|
|
|
632
632
|
@@map("actuate_redirect_suggestions")
|
|
633
633
|
}
|
|
634
634
|
|
|
635
|
-
|
|
635
|
+
// A versioned snapshot of a form's field schema. Saving a form's schema in
|
|
636
|
+
// the admin creates a new row here; submissions reference the version they
|
|
637
|
+
// were captured against so historical entries always render with the fields
|
|
638
|
+
// that existed at submit time, even after the live form schema changes.
|
|
639
|
+
model FormSchemaVersion {
|
|
636
640
|
id String @id @default(cuid())
|
|
637
641
|
formId String
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
+
version Int
|
|
643
|
+
fields Json
|
|
644
|
+
notes String?
|
|
645
|
+
createdById String?
|
|
642
646
|
createdAt DateTime @default(now())
|
|
643
647
|
|
|
648
|
+
@@unique([formId, version])
|
|
649
|
+
@@index([formId])
|
|
650
|
+
@@map("actuate_form_schema_versions")
|
|
651
|
+
}
|
|
652
|
+
|
|
653
|
+
model FormSubmission {
|
|
654
|
+
id String @id @default(cuid())
|
|
655
|
+
// Per-instance sequential number shown in the UI (e.g. #00001). Assigned by
|
|
656
|
+
// the submission service inside a transaction; nullable for legacy rows.
|
|
657
|
+
entryNumber Int?
|
|
658
|
+
formId String
|
|
659
|
+
schemaVersionId String?
|
|
660
|
+
data Json
|
|
661
|
+
// Server-derived, type-coerced view of `data` (e.g. checkbox -> bool,
|
|
662
|
+
// number -> number) used for export/search. `data` keeps the raw payload.
|
|
663
|
+
normalizedData Json?
|
|
664
|
+
attribution Json?
|
|
665
|
+
senderName String?
|
|
666
|
+
senderEmail String?
|
|
667
|
+
senderPhone String?
|
|
668
|
+
preview String?
|
|
669
|
+
// Legacy free-form status ('new'); superseded by the booleans below but
|
|
670
|
+
// retained so existing rows/integrations keep working.
|
|
671
|
+
status String @default("new")
|
|
672
|
+
unread Boolean @default(true)
|
|
673
|
+
starred Boolean @default(false)
|
|
674
|
+
archived Boolean @default(false)
|
|
675
|
+
spamStatus String @default("clean")
|
|
676
|
+
ipAddressHash String?
|
|
677
|
+
userAgent String?
|
|
678
|
+
referrer String?
|
|
679
|
+
pageUrl String?
|
|
680
|
+
utmSource String?
|
|
681
|
+
utmMedium String?
|
|
682
|
+
utmCampaign String?
|
|
683
|
+
submittedAt DateTime @default(now())
|
|
684
|
+
readAt DateTime?
|
|
685
|
+
archivedAt DateTime?
|
|
686
|
+
createdAt DateTime @default(now())
|
|
687
|
+
updatedAt DateTime @updatedAt
|
|
688
|
+
|
|
689
|
+
files FormSubmissionFile[]
|
|
690
|
+
|
|
644
691
|
@@index([formId])
|
|
645
692
|
@@index([status])
|
|
693
|
+
@@index([unread])
|
|
694
|
+
@@index([starred])
|
|
695
|
+
@@index([archived])
|
|
696
|
+
@@index([spamStatus])
|
|
697
|
+
@@index([submittedAt])
|
|
698
|
+
@@index([senderEmail])
|
|
646
699
|
@@map("actuate_form_submissions")
|
|
647
700
|
}
|
|
648
701
|
|
|
702
|
+
// File attachments for a submission. Files are stored via the configured
|
|
703
|
+
// storage adapter (never inline in the DB); this row tracks metadata and the
|
|
704
|
+
// storage key needed to mint a secure download link.
|
|
705
|
+
model FormSubmissionFile {
|
|
706
|
+
id String @id @default(cuid())
|
|
707
|
+
submissionId String
|
|
708
|
+
fieldKey String
|
|
709
|
+
mediaAssetId String?
|
|
710
|
+
fileName String
|
|
711
|
+
mimeType String
|
|
712
|
+
sizeBytes Int
|
|
713
|
+
storageKey String
|
|
714
|
+
publicUrl String?
|
|
715
|
+
secureDownloadUrl String?
|
|
716
|
+
createdAt DateTime @default(now())
|
|
717
|
+
|
|
718
|
+
submission FormSubmission @relation(fields: [submissionId], references: [id], onDelete: Cascade)
|
|
719
|
+
|
|
720
|
+
@@index([submissionId])
|
|
721
|
+
@@map("actuate_form_submission_files")
|
|
722
|
+
}
|
|
723
|
+
|
|
724
|
+
// Per-form outbound webhook configuration. Distinct from the global
|
|
725
|
+
// WebhookEndpoint registry so form owners can wire delivery without admin
|
|
726
|
+
// access to site-wide webhooks.
|
|
727
|
+
model FormWebhook {
|
|
728
|
+
id String @id @default(cuid())
|
|
729
|
+
formId String
|
|
730
|
+
url String
|
|
731
|
+
secret String
|
|
732
|
+
enabled Boolean @default(true)
|
|
733
|
+
events Json
|
|
734
|
+
retryCount Int @default(0)
|
|
735
|
+
lastDeliveryAt DateTime?
|
|
736
|
+
lastDeliveryStatus String?
|
|
737
|
+
createdAt DateTime @default(now())
|
|
738
|
+
updatedAt DateTime @updatedAt
|
|
739
|
+
|
|
740
|
+
@@index([formId])
|
|
741
|
+
@@map("actuate_form_webhooks")
|
|
742
|
+
}
|
|
743
|
+
|
|
649
744
|
model BackupRecord {
|
|
650
745
|
id String @id @default(cuid())
|
|
651
746
|
filename String
|