@strapi/core 5.53.0 → 5.55.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 (89) hide show
  1. package/dist/configuration/get-dirs.d.ts.map +1 -1
  2. package/dist/configuration/get-dirs.js +4 -2
  3. package/dist/configuration/get-dirs.js.map +1 -1
  4. package/dist/configuration/get-dirs.mjs +4 -2
  5. package/dist/configuration/get-dirs.mjs.map +1 -1
  6. package/dist/core-api/routes/validation/component.d.ts +1 -1
  7. package/dist/core-api/routes/validation/component.d.ts.map +1 -1
  8. package/dist/domain/content-type/index.d.ts.map +1 -1
  9. package/dist/domain/content-type/index.js +3 -1
  10. package/dist/domain/content-type/index.js.map +1 -1
  11. package/dist/domain/content-type/index.mjs +3 -1
  12. package/dist/domain/content-type/index.mjs.map +1 -1
  13. package/dist/index.d.ts +3 -0
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js.map +1 -1
  16. package/dist/index.mjs.map +1 -1
  17. package/dist/package.json.js +14 -15
  18. package/dist/package.json.js.map +1 -1
  19. package/dist/package.json.mjs +14 -15
  20. package/dist/package.json.mjs.map +1 -1
  21. package/dist/providers/content-structure.d.ts +3 -0
  22. package/dist/providers/content-structure.d.ts.map +1 -0
  23. package/dist/providers/content-structure.js +22 -0
  24. package/dist/providers/content-structure.js.map +1 -0
  25. package/dist/providers/content-structure.mjs +20 -0
  26. package/dist/providers/content-structure.mjs.map +1 -0
  27. package/dist/providers/index.d.ts.map +1 -1
  28. package/dist/providers/index.js +2 -0
  29. package/dist/providers/index.js.map +1 -1
  30. package/dist/providers/index.mjs +2 -0
  31. package/dist/providers/index.mjs.map +1 -1
  32. package/dist/services/content-source-maps.d.ts +14 -2
  33. package/dist/services/content-source-maps.d.ts.map +1 -1
  34. package/dist/services/content-source-maps.js +134 -1
  35. package/dist/services/content-source-maps.js.map +1 -1
  36. package/dist/services/content-source-maps.mjs +134 -2
  37. package/dist/services/content-source-maps.mjs.map +1 -1
  38. package/dist/services/content-structure/index.d.ts +37 -0
  39. package/dist/services/content-structure/index.d.ts.map +1 -0
  40. package/dist/services/content-structure/index.js +304 -0
  41. package/dist/services/content-structure/index.js.map +1 -0
  42. package/dist/services/content-structure/index.mjs +296 -0
  43. package/dist/services/content-structure/index.mjs.map +1 -0
  44. package/dist/services/content-structure/utils/isGroupExpressionValid.d.ts +7 -0
  45. package/dist/services/content-structure/utils/isGroupExpressionValid.d.ts.map +1 -0
  46. package/dist/services/content-structure/utils/isGroupExpressionValid.js +19 -0
  47. package/dist/services/content-structure/utils/isGroupExpressionValid.js.map +1 -0
  48. package/dist/services/content-structure/utils/isGroupExpressionValid.mjs +17 -0
  49. package/dist/services/content-structure/utils/isGroupExpressionValid.mjs.map +1 -0
  50. package/dist/services/content-structure/validation.d.ts +35 -0
  51. package/dist/services/content-structure/validation.d.ts.map +1 -0
  52. package/dist/services/content-structure/validation.js +163 -0
  53. package/dist/services/content-structure/validation.js.map +1 -0
  54. package/dist/services/content-structure/validation.mjs +161 -0
  55. package/dist/services/content-structure/validation.mjs.map +1 -0
  56. package/dist/services/cron.d.ts +3 -18
  57. package/dist/services/cron.d.ts.map +1 -1
  58. package/dist/services/cron.js +241 -33
  59. package/dist/services/cron.js.map +1 -1
  60. package/dist/services/cron.mjs +241 -33
  61. package/dist/services/cron.mjs.map +1 -1
  62. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +1 -1
  63. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  64. package/dist/services/document-service/transform/relations/extract/data-ids.js +12 -3
  65. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
  66. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +12 -3
  67. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
  68. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts +1 -1
  69. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
  70. package/dist/services/document-service/transform/relations/transform/data-ids.js +12 -3
  71. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
  72. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +12 -3
  73. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
  74. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts +6 -1
  75. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -1
  76. package/dist/services/document-service/transform/relations/utils/map-relation.js +13 -10
  77. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -1
  78. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +13 -10
  79. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -1
  80. package/dist/services/features.d.ts.map +1 -1
  81. package/dist/services/features.js +3 -0
  82. package/dist/services/features.js.map +1 -1
  83. package/dist/services/features.mjs +3 -0
  84. package/dist/services/features.mjs.map +1 -1
  85. package/dist/services/server/koa-methods.d.ts +0 -6
  86. package/dist/services/server/koa-methods.d.ts.map +1 -1
  87. package/dist/services/server/koa-methods.js.map +1 -1
  88. package/dist/services/server/koa-methods.mjs.map +1 -1
  89. package/package.json +14 -15
@@ -1 +1 @@
1
- {"version":3,"file":"get-dirs.d.ts","sourceRoot":"","sources":["../../src/configuration/get-dirs.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,MAAM,MAAM,OAAO,GAAG;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,OAAO,GAClB,qBAAqB,aAAa,EAClC,QAAQ;IAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;CAAE,KAC9C,IAAI,CAAC,iBAwBN,CAAC"}
1
+ {"version":3,"file":"get-dirs.d.ts","sourceRoot":"","sources":["../../src/configuration/get-dirs.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE/C,MAAM,MAAM,OAAO,GAAG;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,eAAO,MAAM,OAAO,GAClB,qBAAqB,aAAa,EAClC,QAAQ;IAAE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;CAAE,KAC9C,IAAI,CAAC,iBA0BN,CAAC"}
@@ -12,7 +12,8 @@ const getDirs = ({ appDir, distDir }, config)=>({
12
12
  extensions: path.join(distDir, 'src', 'extensions'),
13
13
  policies: path.join(distDir, 'src', 'policies'),
14
14
  middlewares: path.join(distDir, 'src', 'middlewares'),
15
- config: path.join(distDir, 'config')
15
+ config: path.join(distDir, 'config'),
16
+ contentStructure: path.join(distDir, 'src', 'content-structure')
16
17
  },
17
18
  app: {
18
19
  root: appDir,
@@ -22,7 +23,8 @@ const getDirs = ({ appDir, distDir }, config)=>({
22
23
  extensions: path.join(appDir, 'src', 'extensions'),
23
24
  policies: path.join(appDir, 'src', 'policies'),
24
25
  middlewares: path.join(appDir, 'src', 'middlewares'),
25
- config: path.join(appDir, 'config')
26
+ config: path.join(appDir, 'config'),
27
+ contentStructure: path.join(appDir, 'src', 'content-structure')
26
28
  },
27
29
  static: {
28
30
  public: path.resolve(appDir, fp.get('server.dirs.public', config))
@@ -1 +1 @@
1
- {"version":3,"file":"get-dirs.js","sources":["../../src/configuration/get-dirs.ts"],"sourcesContent":["import { join, resolve } from 'path';\nimport { get } from 'lodash/fp';\n\nimport type { Core } from '@strapi/types';\nimport type { StrapiOptions } from '../Strapi';\n\nexport type Options = {\n app: string;\n dist: string;\n};\n\nexport const getDirs = (\n { appDir, distDir }: StrapiOptions,\n config: { server: Partial<Core.Config.Server> }\n): Core.StrapiDirectories => ({\n dist: {\n root: distDir,\n src: join(distDir, 'src'),\n api: join(distDir, 'src', 'api'),\n components: join(distDir, 'src', 'components'),\n extensions: join(distDir, 'src', 'extensions'),\n policies: join(distDir, 'src', 'policies'),\n middlewares: join(distDir, 'src', 'middlewares'),\n config: join(distDir, 'config'),\n },\n app: {\n root: appDir,\n src: join(appDir, 'src'),\n api: join(appDir, 'src', 'api'),\n components: join(appDir, 'src', 'components'),\n extensions: join(appDir, 'src', 'extensions'),\n policies: join(appDir, 'src', 'policies'),\n middlewares: join(appDir, 'src', 'middlewares'),\n config: join(appDir, 'config'),\n },\n static: {\n public: resolve(appDir, get('server.dirs.public', config)),\n },\n});\n"],"names":["getDirs","appDir","distDir","config","dist","root","src","join","api","components","extensions","policies","middlewares","app","static","public","resolve","get"],"mappings":";;;;;AAWO,MAAMA,OAAAA,GAAU,CACrB,EAAEC,MAAM,EAAEC,OAAO,EAAiB,EAClCC,MAAAA,IAC4B;QAC5BC,IAAAA,EAAM;YACJC,IAAAA,EAAMH,OAAAA;AACNI,YAAAA,GAAAA,EAAKC,UAAKL,OAAAA,EAAS,KAAA,CAAA;YACnBM,GAAAA,EAAKD,SAAAA,CAAKL,SAAS,KAAA,EAAO,KAAA,CAAA;YAC1BO,UAAAA,EAAYF,SAAAA,CAAKL,SAAS,KAAA,EAAO,YAAA,CAAA;YACjCQ,UAAAA,EAAYH,SAAAA,CAAKL,SAAS,KAAA,EAAO,YAAA,CAAA;YACjCS,QAAAA,EAAUJ,SAAAA,CAAKL,SAAS,KAAA,EAAO,UAAA,CAAA;YAC/BU,WAAAA,EAAaL,SAAAA,CAAKL,SAAS,KAAA,EAAO,aAAA,CAAA;AAClCC,YAAAA,MAAAA,EAAQI,UAAKL,OAAAA,EAAS,QAAA;AACxB,SAAA;QACAW,GAAAA,EAAK;YACHR,IAAAA,EAAMJ,MAAAA;AACNK,YAAAA,GAAAA,EAAKC,UAAKN,MAAAA,EAAQ,KAAA,CAAA;YAClBO,GAAAA,EAAKD,SAAAA,CAAKN,QAAQ,KAAA,EAAO,KAAA,CAAA;YACzBQ,UAAAA,EAAYF,SAAAA,CAAKN,QAAQ,KAAA,EAAO,YAAA,CAAA;YAChCS,UAAAA,EAAYH,SAAAA,CAAKN,QAAQ,KAAA,EAAO,YAAA,CAAA;YAChCU,QAAAA,EAAUJ,SAAAA,CAAKN,QAAQ,KAAA,EAAO,UAAA,CAAA;YAC9BW,WAAAA,EAAaL,SAAAA,CAAKN,QAAQ,KAAA,EAAO,aAAA,CAAA;AACjCE,YAAAA,MAAAA,EAAQI,UAAKN,MAAAA,EAAQ,QAAA;AACvB,SAAA;QACAa,MAAAA,EAAQ;YACNC,MAAAA,EAAQC,YAAAA,CAAQf,MAAAA,EAAQgB,MAAAA,CAAI,oBAAA,EAAsBd,MAAAA,CAAAA;AACpD;AACF,KAAA;;;;"}
1
+ {"version":3,"file":"get-dirs.js","sources":["../../src/configuration/get-dirs.ts"],"sourcesContent":["import { join, resolve } from 'path';\nimport { get } from 'lodash/fp';\n\nimport type { Core } from '@strapi/types';\nimport type { StrapiOptions } from '../Strapi';\n\nexport type Options = {\n app: string;\n dist: string;\n};\n\nexport const getDirs = (\n { appDir, distDir }: StrapiOptions,\n config: { server: Partial<Core.Config.Server> }\n): Core.StrapiDirectories => ({\n dist: {\n root: distDir,\n src: join(distDir, 'src'),\n api: join(distDir, 'src', 'api'),\n components: join(distDir, 'src', 'components'),\n extensions: join(distDir, 'src', 'extensions'),\n policies: join(distDir, 'src', 'policies'),\n middlewares: join(distDir, 'src', 'middlewares'),\n config: join(distDir, 'config'),\n contentStructure: join(distDir, 'src', 'content-structure'),\n },\n app: {\n root: appDir,\n src: join(appDir, 'src'),\n api: join(appDir, 'src', 'api'),\n components: join(appDir, 'src', 'components'),\n extensions: join(appDir, 'src', 'extensions'),\n policies: join(appDir, 'src', 'policies'),\n middlewares: join(appDir, 'src', 'middlewares'),\n config: join(appDir, 'config'),\n contentStructure: join(appDir, 'src', 'content-structure'),\n },\n static: {\n public: resolve(appDir, get('server.dirs.public', config)),\n },\n});\n"],"names":["getDirs","appDir","distDir","config","dist","root","src","join","api","components","extensions","policies","middlewares","contentStructure","app","static","public","resolve","get"],"mappings":";;;;;AAWO,MAAMA,OAAAA,GAAU,CACrB,EAAEC,MAAM,EAAEC,OAAO,EAAiB,EAClCC,MAAAA,IAC4B;QAC5BC,IAAAA,EAAM;YACJC,IAAAA,EAAMH,OAAAA;AACNI,YAAAA,GAAAA,EAAKC,UAAKL,OAAAA,EAAS,KAAA,CAAA;YACnBM,GAAAA,EAAKD,SAAAA,CAAKL,SAAS,KAAA,EAAO,KAAA,CAAA;YAC1BO,UAAAA,EAAYF,SAAAA,CAAKL,SAAS,KAAA,EAAO,YAAA,CAAA;YACjCQ,UAAAA,EAAYH,SAAAA,CAAKL,SAAS,KAAA,EAAO,YAAA,CAAA;YACjCS,QAAAA,EAAUJ,SAAAA,CAAKL,SAAS,KAAA,EAAO,UAAA,CAAA;YAC/BU,WAAAA,EAAaL,SAAAA,CAAKL,SAAS,KAAA,EAAO,aAAA,CAAA;AAClCC,YAAAA,MAAAA,EAAQI,UAAKL,OAAAA,EAAS,QAAA,CAAA;YACtBW,gBAAAA,EAAkBN,SAAAA,CAAKL,SAAS,KAAA,EAAO,mBAAA;AACzC,SAAA;QACAY,GAAAA,EAAK;YACHT,IAAAA,EAAMJ,MAAAA;AACNK,YAAAA,GAAAA,EAAKC,UAAKN,MAAAA,EAAQ,KAAA,CAAA;YAClBO,GAAAA,EAAKD,SAAAA,CAAKN,QAAQ,KAAA,EAAO,KAAA,CAAA;YACzBQ,UAAAA,EAAYF,SAAAA,CAAKN,QAAQ,KAAA,EAAO,YAAA,CAAA;YAChCS,UAAAA,EAAYH,SAAAA,CAAKN,QAAQ,KAAA,EAAO,YAAA,CAAA;YAChCU,QAAAA,EAAUJ,SAAAA,CAAKN,QAAQ,KAAA,EAAO,UAAA,CAAA;YAC9BW,WAAAA,EAAaL,SAAAA,CAAKN,QAAQ,KAAA,EAAO,aAAA,CAAA;AACjCE,YAAAA,MAAAA,EAAQI,UAAKN,MAAAA,EAAQ,QAAA,CAAA;YACrBY,gBAAAA,EAAkBN,SAAAA,CAAKN,QAAQ,KAAA,EAAO,mBAAA;AACxC,SAAA;QACAc,MAAAA,EAAQ;YACNC,MAAAA,EAAQC,YAAAA,CAAQhB,MAAAA,EAAQiB,MAAAA,CAAI,oBAAA,EAAsBf,MAAAA,CAAAA;AACpD;AACF,KAAA;;;;"}
@@ -10,7 +10,8 @@ const getDirs = ({ appDir, distDir }, config)=>({
10
10
  extensions: join(distDir, 'src', 'extensions'),
11
11
  policies: join(distDir, 'src', 'policies'),
12
12
  middlewares: join(distDir, 'src', 'middlewares'),
13
- config: join(distDir, 'config')
13
+ config: join(distDir, 'config'),
14
+ contentStructure: join(distDir, 'src', 'content-structure')
14
15
  },
15
16
  app: {
16
17
  root: appDir,
@@ -20,7 +21,8 @@ const getDirs = ({ appDir, distDir }, config)=>({
20
21
  extensions: join(appDir, 'src', 'extensions'),
21
22
  policies: join(appDir, 'src', 'policies'),
22
23
  middlewares: join(appDir, 'src', 'middlewares'),
23
- config: join(appDir, 'config')
24
+ config: join(appDir, 'config'),
25
+ contentStructure: join(appDir, 'src', 'content-structure')
24
26
  },
25
27
  static: {
26
28
  public: resolve(appDir, get('server.dirs.public', config))
@@ -1 +1 @@
1
- {"version":3,"file":"get-dirs.mjs","sources":["../../src/configuration/get-dirs.ts"],"sourcesContent":["import { join, resolve } from 'path';\nimport { get } from 'lodash/fp';\n\nimport type { Core } from '@strapi/types';\nimport type { StrapiOptions } from '../Strapi';\n\nexport type Options = {\n app: string;\n dist: string;\n};\n\nexport const getDirs = (\n { appDir, distDir }: StrapiOptions,\n config: { server: Partial<Core.Config.Server> }\n): Core.StrapiDirectories => ({\n dist: {\n root: distDir,\n src: join(distDir, 'src'),\n api: join(distDir, 'src', 'api'),\n components: join(distDir, 'src', 'components'),\n extensions: join(distDir, 'src', 'extensions'),\n policies: join(distDir, 'src', 'policies'),\n middlewares: join(distDir, 'src', 'middlewares'),\n config: join(distDir, 'config'),\n },\n app: {\n root: appDir,\n src: join(appDir, 'src'),\n api: join(appDir, 'src', 'api'),\n components: join(appDir, 'src', 'components'),\n extensions: join(appDir, 'src', 'extensions'),\n policies: join(appDir, 'src', 'policies'),\n middlewares: join(appDir, 'src', 'middlewares'),\n config: join(appDir, 'config'),\n },\n static: {\n public: resolve(appDir, get('server.dirs.public', config)),\n },\n});\n"],"names":["getDirs","appDir","distDir","config","dist","root","src","join","api","components","extensions","policies","middlewares","app","static","public","resolve","get"],"mappings":";;;AAWO,MAAMA,OAAAA,GAAU,CACrB,EAAEC,MAAM,EAAEC,OAAO,EAAiB,EAClCC,MAAAA,IAC4B;QAC5BC,IAAAA,EAAM;YACJC,IAAAA,EAAMH,OAAAA;AACNI,YAAAA,GAAAA,EAAKC,KAAKL,OAAAA,EAAS,KAAA,CAAA;YACnBM,GAAAA,EAAKD,IAAAA,CAAKL,SAAS,KAAA,EAAO,KAAA,CAAA;YAC1BO,UAAAA,EAAYF,IAAAA,CAAKL,SAAS,KAAA,EAAO,YAAA,CAAA;YACjCQ,UAAAA,EAAYH,IAAAA,CAAKL,SAAS,KAAA,EAAO,YAAA,CAAA;YACjCS,QAAAA,EAAUJ,IAAAA,CAAKL,SAAS,KAAA,EAAO,UAAA,CAAA;YAC/BU,WAAAA,EAAaL,IAAAA,CAAKL,SAAS,KAAA,EAAO,aAAA,CAAA;AAClCC,YAAAA,MAAAA,EAAQI,KAAKL,OAAAA,EAAS,QAAA;AACxB,SAAA;QACAW,GAAAA,EAAK;YACHR,IAAAA,EAAMJ,MAAAA;AACNK,YAAAA,GAAAA,EAAKC,KAAKN,MAAAA,EAAQ,KAAA,CAAA;YAClBO,GAAAA,EAAKD,IAAAA,CAAKN,QAAQ,KAAA,EAAO,KAAA,CAAA;YACzBQ,UAAAA,EAAYF,IAAAA,CAAKN,QAAQ,KAAA,EAAO,YAAA,CAAA;YAChCS,UAAAA,EAAYH,IAAAA,CAAKN,QAAQ,KAAA,EAAO,YAAA,CAAA;YAChCU,QAAAA,EAAUJ,IAAAA,CAAKN,QAAQ,KAAA,EAAO,UAAA,CAAA;YAC9BW,WAAAA,EAAaL,IAAAA,CAAKN,QAAQ,KAAA,EAAO,aAAA,CAAA;AACjCE,YAAAA,MAAAA,EAAQI,KAAKN,MAAAA,EAAQ,QAAA;AACvB,SAAA;QACAa,MAAAA,EAAQ;YACNC,MAAAA,EAAQC,OAAAA,CAAQf,MAAAA,EAAQgB,GAAAA,CAAI,oBAAA,EAAsBd,MAAAA,CAAAA;AACpD;AACF,KAAA;;;;"}
1
+ {"version":3,"file":"get-dirs.mjs","sources":["../../src/configuration/get-dirs.ts"],"sourcesContent":["import { join, resolve } from 'path';\nimport { get } from 'lodash/fp';\n\nimport type { Core } from '@strapi/types';\nimport type { StrapiOptions } from '../Strapi';\n\nexport type Options = {\n app: string;\n dist: string;\n};\n\nexport const getDirs = (\n { appDir, distDir }: StrapiOptions,\n config: { server: Partial<Core.Config.Server> }\n): Core.StrapiDirectories => ({\n dist: {\n root: distDir,\n src: join(distDir, 'src'),\n api: join(distDir, 'src', 'api'),\n components: join(distDir, 'src', 'components'),\n extensions: join(distDir, 'src', 'extensions'),\n policies: join(distDir, 'src', 'policies'),\n middlewares: join(distDir, 'src', 'middlewares'),\n config: join(distDir, 'config'),\n contentStructure: join(distDir, 'src', 'content-structure'),\n },\n app: {\n root: appDir,\n src: join(appDir, 'src'),\n api: join(appDir, 'src', 'api'),\n components: join(appDir, 'src', 'components'),\n extensions: join(appDir, 'src', 'extensions'),\n policies: join(appDir, 'src', 'policies'),\n middlewares: join(appDir, 'src', 'middlewares'),\n config: join(appDir, 'config'),\n contentStructure: join(appDir, 'src', 'content-structure'),\n },\n static: {\n public: resolve(appDir, get('server.dirs.public', config)),\n },\n});\n"],"names":["getDirs","appDir","distDir","config","dist","root","src","join","api","components","extensions","policies","middlewares","contentStructure","app","static","public","resolve","get"],"mappings":";;;AAWO,MAAMA,OAAAA,GAAU,CACrB,EAAEC,MAAM,EAAEC,OAAO,EAAiB,EAClCC,MAAAA,IAC4B;QAC5BC,IAAAA,EAAM;YACJC,IAAAA,EAAMH,OAAAA;AACNI,YAAAA,GAAAA,EAAKC,KAAKL,OAAAA,EAAS,KAAA,CAAA;YACnBM,GAAAA,EAAKD,IAAAA,CAAKL,SAAS,KAAA,EAAO,KAAA,CAAA;YAC1BO,UAAAA,EAAYF,IAAAA,CAAKL,SAAS,KAAA,EAAO,YAAA,CAAA;YACjCQ,UAAAA,EAAYH,IAAAA,CAAKL,SAAS,KAAA,EAAO,YAAA,CAAA;YACjCS,QAAAA,EAAUJ,IAAAA,CAAKL,SAAS,KAAA,EAAO,UAAA,CAAA;YAC/BU,WAAAA,EAAaL,IAAAA,CAAKL,SAAS,KAAA,EAAO,aAAA,CAAA;AAClCC,YAAAA,MAAAA,EAAQI,KAAKL,OAAAA,EAAS,QAAA,CAAA;YACtBW,gBAAAA,EAAkBN,IAAAA,CAAKL,SAAS,KAAA,EAAO,mBAAA;AACzC,SAAA;QACAY,GAAAA,EAAK;YACHT,IAAAA,EAAMJ,MAAAA;AACNK,YAAAA,GAAAA,EAAKC,KAAKN,MAAAA,EAAQ,KAAA,CAAA;YAClBO,GAAAA,EAAKD,IAAAA,CAAKN,QAAQ,KAAA,EAAO,KAAA,CAAA;YACzBQ,UAAAA,EAAYF,IAAAA,CAAKN,QAAQ,KAAA,EAAO,YAAA,CAAA;YAChCS,UAAAA,EAAYH,IAAAA,CAAKN,QAAQ,KAAA,EAAO,YAAA,CAAA;YAChCU,QAAAA,EAAUJ,IAAAA,CAAKN,QAAQ,KAAA,EAAO,UAAA,CAAA;YAC9BW,WAAAA,EAAaL,IAAAA,CAAKN,QAAQ,KAAA,EAAO,aAAA,CAAA;AACjCE,YAAAA,MAAAA,EAAQI,KAAKN,MAAAA,EAAQ,QAAA,CAAA;YACrBY,gBAAAA,EAAkBN,IAAAA,CAAKN,QAAQ,KAAA,EAAO,mBAAA;AACxC,SAAA;QACAc,MAAAA,EAAQ;YACNC,MAAAA,EAAQC,OAAAA,CAAQhB,MAAAA,EAAQiB,GAAAA,CAAI,oBAAA,EAAsBf,MAAAA,CAAAA;AACpD;AACF,KAAA;;;;"}
@@ -29,6 +29,6 @@ export declare class CoreComponentRouteValidator extends AbstractCoreRouteValida
29
29
  * const entrySchema = validator.entry;
30
30
  * ```
31
31
  */
32
- get entry(): import("zod/v4").ZodObject<{}, import("zod/v4/core").$strip>;
32
+ get entry(): import("zod").ZodObject<{}, import("zod/v4/core").$strip>;
33
33
  }
34
34
  //# sourceMappingURL=component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../../src/core-api/routes/validation/component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAIzC,OAAO,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAEtD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,2BAA4B,SAAQ,0BAA0B,CAAC,GAAG,CAAC,SAAS,CAAC;IACxF;;;;;;;;;;;;OAYG;IACH,IAAI,KAAK,iEAMR;CACF"}
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../../../src/core-api/routes/validation/component.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAIzC,OAAO,EAAE,0BAA0B,EAAE,MAAM,UAAU,CAAC;AAEtD;;;;;;;;;;;;;;GAcG;AACH,qBAAa,2BAA4B,SAAQ,0BAA0B,CAAC,GAAG,CAAC,SAAS,CAAC;IACxF;;;;;;;;;;;;OAYG;IACH,IAAI,KAAK,8DAMR;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/content-type/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAG5C,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC,CAAC;AAWF,QAAA,MAAM,iBAAiB,GAAI,KAAK,MAAM,EAAE,YAAY,qBAAqB,oEAqCxE,CAAC;AAwFF,QAAA,MAAM,WAAW,GAAI,QAAQ,MAAM,CAAC,WAAW,EAAE,SAAS,MAAM,WAK/D,CAAC;AAmBF,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/domain/content-type/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAG5C,MAAM,MAAM,qBAAqB,GAAG;IAClC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC,CAAC;AAWF,QAAA,MAAM,iBAAiB,GAAI,KAAK,MAAM,EAAE,YAAY,qBAAqB,oEAqCxE,CAAC;AAwFF,QAAA,MAAM,WAAW,GAAI,QAAQ,MAAM,CAAC,WAAW,EAAE,SAAS,MAAM,WAK/D,CAAC;AAqBF,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,CAAC"}
@@ -124,7 +124,9 @@ const pickSchema = (model)=>{
124
124
  'options',
125
125
  'pluginOptions',
126
126
  'attributes',
127
- 'kind'
127
+ 'kind',
128
+ 'indexes',
129
+ 'foreignKeys'
128
130
  ]));
129
131
  schema.kind = model.kind || 'collectionType';
130
132
  return schema;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/domain/content-type/index.ts"],"sourcesContent":["import { cloneDeep } from 'lodash/fp';\nimport _ from 'lodash';\nimport { yup, contentTypes as contentTypesUtils } from '@strapi/utils';\nimport type { Schema } from '@strapi/types';\nimport { validateContentTypeDefinition } from './validator';\n\nexport type ContentTypeDefinition = {\n schema: Schema.ContentType;\n actions: Record<string, unknown>;\n lifecycles: Record<string, unknown>;\n};\n\nconst {\n CREATED_AT_ATTRIBUTE,\n UPDATED_AT_ATTRIBUTE,\n PUBLISHED_AT_ATTRIBUTE,\n FIRST_PUBLISHED_AT_ATTRIBUTE,\n CREATED_BY_ATTRIBUTE,\n UPDATED_BY_ATTRIBUTE,\n} = contentTypesUtils.constants;\n\nconst createContentType = (uid: string, definition: ContentTypeDefinition) => {\n try {\n validateContentTypeDefinition(definition);\n } catch (e) {\n if (e instanceof yup.ValidationError) {\n throw new Error(`Content Type Definition is invalid for ${uid}'.\\n${e.errors}`);\n }\n\n throw e;\n }\n\n const { schema, actions, lifecycles } = cloneDeep(definition);\n\n // general info\n Object.assign(schema, {\n uid,\n modelType: 'contentType',\n kind: schema.kind || 'collectionType',\n __schema__: pickSchema(definition.schema),\n modelName: definition.schema.info.singularName,\n actions,\n lifecycles,\n });\n\n addTimestamps(schema);\n\n // Published at is added regardless of draft and publish being enabled\n // In case it is not enabled, value will be always published, and it will not contain a draft\n addDraftAndPublish(schema);\n\n addCreatorFields(schema);\n\n addFirstPublishedAt(schema);\n\n warnDraftAndPublishReservedAttributes(uid, schema);\n\n return schema;\n};\n\nconst warnDraftAndPublishReservedAttributes = (uid: string, schema: Schema.ContentType) => {\n if (schema.options?.draftAndPublish !== true) {\n return;\n }\n\n for (const attributeName of contentTypesUtils.findDraftAndPublishReservedAttributeNames(\n Object.keys(schema.attributes)\n )) {\n strapi.log.warn(\n contentTypesUtils.getDraftAndPublishReservedAttributeWarning(uid, attributeName)\n );\n }\n};\n\nconst addTimestamps = (schema: Schema.ContentType) => {\n // attributes\n Object.assign(schema.attributes, {\n [CREATED_AT_ATTRIBUTE]: {\n type: 'datetime',\n },\n // TODO: handle on edit set to new date\n [UPDATED_AT_ATTRIBUTE]: {\n type: 'datetime',\n },\n });\n};\n\nconst addDraftAndPublish = (schema: Schema.ContentType) => {\n if (!_.has(schema, 'options.draftAndPublish')) {\n _.set(schema, 'options.draftAndPublish', false); // Disabled by default\n }\n\n schema.attributes[PUBLISHED_AT_ATTRIBUTE] = {\n type: 'datetime',\n configurable: false,\n writable: true,\n visible: true,\n default() {\n return new Date();\n },\n };\n};\n\nconst addFirstPublishedAt = (schema: Schema.ContentType) => {\n const isEnabled = contentTypesUtils.hasFirstPublishedAtField(schema);\n\n // Note: As an expertimental feature, we are okay if this data is deleted if this feature is\n // switched off. Once \"preserve_attributes\" come into play, this will be updated.\n if (isEnabled) {\n strapi.log.warn(`Experimental feature enabled: firstPublishedAt on ${schema.collectionName}`);\n schema.attributes[FIRST_PUBLISHED_AT_ATTRIBUTE] = {\n type: 'datetime',\n configurable: false,\n writable: true,\n visible: false,\n private: !isEnabled,\n };\n }\n};\n\nconst addCreatorFields = (schema: Schema.ContentType) => {\n const isPrivate = !_.get(schema, 'options.populateCreatorFields', false);\n\n schema.attributes[CREATED_BY_ATTRIBUTE] = {\n type: 'relation',\n relation: 'oneToOne',\n target: 'admin::user',\n configurable: false,\n writable: false,\n visible: false,\n useJoinTable: false,\n private: isPrivate,\n };\n\n schema.attributes[UPDATED_BY_ATTRIBUTE] = {\n type: 'relation',\n relation: 'oneToOne',\n target: 'admin::user',\n configurable: false,\n writable: false,\n visible: false,\n useJoinTable: false,\n private: isPrivate,\n };\n};\n\nconst getGlobalId = (schema: Schema.ContentType, prefix?: string) => {\n const modelName = schema.info.singularName;\n const globalId = prefix ? `${prefix}-${modelName}` : modelName;\n\n return schema.globalId || _.upperFirst(_.camelCase(globalId));\n};\n\nconst pickSchema = (model: Schema.ContentType) => {\n const schema = _.cloneDeep(\n _.pick(model, [\n 'connection',\n 'collectionName',\n 'info',\n 'options',\n 'pluginOptions',\n 'attributes',\n 'kind',\n ])\n );\n\n schema.kind = model.kind || 'collectionType';\n return schema;\n};\n\nexport { createContentType, getGlobalId };\n"],"names":["CREATED_AT_ATTRIBUTE","UPDATED_AT_ATTRIBUTE","PUBLISHED_AT_ATTRIBUTE","FIRST_PUBLISHED_AT_ATTRIBUTE","CREATED_BY_ATTRIBUTE","UPDATED_BY_ATTRIBUTE","contentTypesUtils","constants","createContentType","uid","definition","validateContentTypeDefinition","e","yup","ValidationError","Error","errors","schema","actions","lifecycles","cloneDeep","Object","assign","modelType","kind","__schema__","pickSchema","modelName","info","singularName","addTimestamps","addDraftAndPublish","addCreatorFields","addFirstPublishedAt","warnDraftAndPublishReservedAttributes","options","draftAndPublish","attributeName","findDraftAndPublishReservedAttributeNames","keys","attributes","strapi","log","warn","getDraftAndPublishReservedAttributeWarning","type","_","has","set","configurable","writable","visible","default","Date","isEnabled","hasFirstPublishedAtField","collectionName","private","isPrivate","get","relation","target","useJoinTable","getGlobalId","prefix","globalId","upperFirst","camelCase","model","pick"],"mappings":";;;;;;;;;;;AAYA,MAAM,EACJA,oBAAoB,EACpBC,oBAAoB,EACpBC,sBAAsB,EACtBC,4BAA4B,EAC5BC,oBAAoB,EACpBC,oBAAoB,EACrB,GAAGC,yBAAkBC,SAAS;AAE/B,MAAMC,iBAAAA,GAAoB,CAACC,GAAAA,EAAaC,UAAAA,GAAAA;IACtC,IAAI;QACFC,uCAAAA,CAA8BD,UAAAA,CAAAA;AAChC,IAAA,CAAA,CAAE,OAAOE,CAAAA,EAAG;QACV,IAAIA,CAAAA,YAAaC,eAAAA,CAAIC,eAAe,EAAE;YACpC,MAAM,IAAIC,KAAAA,CAAM,CAAC,uCAAuC,EAAEN,IAAI,IAAI,EAAEG,CAAAA,CAAEI,MAAM,CAAA,CAAE,CAAA;AAChF,QAAA;QAEA,MAAMJ,CAAAA;AACR,IAAA;IAEA,MAAM,EAAEK,MAAM,EAAEC,OAAO,EAAEC,UAAU,EAAE,GAAGC,YAAAA,CAAUV,UAAAA,CAAAA;;IAGlDW,MAAAA,CAAOC,MAAM,CAACL,MAAAA,EAAQ;AACpBR,QAAAA,GAAAA;QACAc,SAAAA,EAAW,aAAA;QACXC,IAAAA,EAAMP,MAAAA,CAAOO,IAAI,IAAI,gBAAA;QACrBC,UAAAA,EAAYC,UAAAA,CAAWhB,WAAWO,MAAM,CAAA;AACxCU,QAAAA,SAAAA,EAAWjB,UAAAA,CAAWO,MAAM,CAACW,IAAI,CAACC,YAAY;AAC9CX,QAAAA,OAAAA;AACAC,QAAAA;AACF,KAAA,CAAA;IAEAW,aAAAA,CAAcb,MAAAA,CAAAA;;;IAIdc,kBAAAA,CAAmBd,MAAAA,CAAAA;IAEnBe,gBAAAA,CAAiBf,MAAAA,CAAAA;IAEjBgB,mBAAAA,CAAoBhB,MAAAA,CAAAA;AAEpBiB,IAAAA,qCAAAA,CAAsCzB,GAAAA,EAAKQ,MAAAA,CAAAA;IAE3C,OAAOA,MAAAA;AACT;AAEA,MAAMiB,qCAAAA,GAAwC,CAACzB,GAAAA,EAAaQ,MAAAA,GAAAA;AAC1D,IAAA,IAAIA,MAAAA,CAAOkB,OAAO,EAAEC,eAAAA,KAAoB,IAAA,EAAM;AAC5C,QAAA;AACF,IAAA;IAEA,KAAK,MAAMC,aAAAA,IAAiB/B,wBAAAA,CAAkBgC,yCAAyC,CACrFjB,OAAOkB,IAAI,CAACtB,MAAAA,CAAOuB,UAAU,CAAA,CAAA,CAC5B;AACDC,QAAAA,MAAAA,CAAOC,GAAG,CAACC,IAAI,CACbrC,wBAAAA,CAAkBsC,0CAA0C,CAACnC,GAAAA,EAAK4B,aAAAA,CAAAA,CAAAA;AAEtE,IAAA;AACF,CAAA;AAEA,MAAMP,gBAAgB,CAACb,MAAAA,GAAAA;;AAErBI,IAAAA,MAAAA,CAAOC,MAAM,CAACL,MAAAA,CAAOuB,UAAU,EAAE;AAC/B,QAAA,CAACxC,uBAAuB;YACtB6C,IAAAA,EAAM;AACR,SAAA;;AAEA,QAAA,CAAC5C,uBAAuB;YACtB4C,IAAAA,EAAM;AACR;AACF,KAAA,CAAA;AACF,CAAA;AAEA,MAAMd,qBAAqB,CAACd,MAAAA,GAAAA;AAC1B,IAAA,IAAI,CAAC6B,kBAAAA,CAAEC,GAAG,CAAC9B,QAAQ,yBAAA,CAAA,EAA4B;AAC7C6B,QAAAA,kBAAAA,CAAEE,GAAG,CAAC/B,MAAAA,EAAQ,yBAAA,EAA2B;AAC3C,IAAA;IAEAA,MAAAA,CAAOuB,UAAU,CAACtC,sBAAAA,CAAuB,GAAG;QAC1C2C,IAAAA,EAAM,UAAA;QACNI,YAAAA,EAAc,KAAA;QACdC,QAAAA,EAAU,IAAA;QACVC,OAAAA,EAAS,IAAA;AACTC,QAAAA,OAAAA,CAAAA,GAAAA;AACE,YAAA,OAAO,IAAIC,IAAAA,EAAAA;AACb,QAAA;AACF,KAAA;AACF,CAAA;AAEA,MAAMpB,sBAAsB,CAAChB,MAAAA,GAAAA;IAC3B,MAAMqC,SAAAA,GAAYhD,wBAAAA,CAAkBiD,wBAAwB,CAACtC,MAAAA,CAAAA;;;AAI7D,IAAA,IAAIqC,SAAAA,EAAW;QACbb,MAAAA,CAAOC,GAAG,CAACC,IAAI,CAAC,CAAC,kDAAkD,EAAE1B,MAAAA,CAAOuC,cAAc,CAAA,CAAE,CAAA;QAC5FvC,MAAAA,CAAOuB,UAAU,CAACrC,4BAAAA,CAA6B,GAAG;YAChD0C,IAAAA,EAAM,UAAA;YACNI,YAAAA,EAAc,KAAA;YACdC,QAAAA,EAAU,IAAA;YACVC,OAAAA,EAAS,KAAA;AACTM,YAAAA,OAAAA,EAAS,CAACH;AACZ,SAAA;AACF,IAAA;AACF,CAAA;AAEA,MAAMtB,mBAAmB,CAACf,MAAAA,GAAAA;AACxB,IAAA,MAAMyC,YAAY,CAACZ,kBAAAA,CAAEa,GAAG,CAAC1C,QAAQ,+BAAA,EAAiC,KAAA,CAAA;IAElEA,MAAAA,CAAOuB,UAAU,CAACpC,oBAAAA,CAAqB,GAAG;QACxCyC,IAAAA,EAAM,UAAA;QACNe,QAAAA,EAAU,UAAA;QACVC,MAAAA,EAAQ,aAAA;QACRZ,YAAAA,EAAc,KAAA;QACdC,QAAAA,EAAU,KAAA;QACVC,OAAAA,EAAS,KAAA;QACTW,YAAAA,EAAc,KAAA;QACdL,OAAAA,EAASC;AACX,KAAA;IAEAzC,MAAAA,CAAOuB,UAAU,CAACnC,oBAAAA,CAAqB,GAAG;QACxCwC,IAAAA,EAAM,UAAA;QACNe,QAAAA,EAAU,UAAA;QACVC,MAAAA,EAAQ,aAAA;QACRZ,YAAAA,EAAc,KAAA;QACdC,QAAAA,EAAU,KAAA;QACVC,OAAAA,EAAS,KAAA;QACTW,YAAAA,EAAc,KAAA;QACdL,OAAAA,EAASC;AACX,KAAA;AACF,CAAA;AAEA,MAAMK,WAAAA,GAAc,CAAC9C,MAAAA,EAA4B+C,MAAAA,GAAAA;AAC/C,IAAA,MAAMrC,SAAAA,GAAYV,MAAAA,CAAOW,IAAI,CAACC,YAAY;AAC1C,IAAA,MAAMoC,WAAWD,MAAAA,GAAS,CAAA,EAAGA,OAAO,CAAC,EAAErC,WAAW,GAAGA,SAAAA;IAErD,OAAOV,MAAAA,CAAOgD,QAAQ,IAAInB,kBAAAA,CAAEoB,UAAU,CAACpB,kBAAAA,CAAEqB,SAAS,CAACF,QAAAA,CAAAA,CAAAA;AACrD;AAEA,MAAMvC,aAAa,CAAC0C,KAAAA,GAAAA;AAClB,IAAA,MAAMnD,SAAS6B,kBAAAA,CAAE1B,SAAS,CACxB0B,kBAAAA,CAAEuB,IAAI,CAACD,KAAAA,EAAO;AACZ,QAAA,YAAA;AACA,QAAA,gBAAA;AACA,QAAA,MAAA;AACA,QAAA,SAAA;AACA,QAAA,eAAA;AACA,QAAA,YAAA;AACA,QAAA;AACD,KAAA,CAAA,CAAA;AAGHnD,IAAAA,MAAAA,CAAOO,IAAI,GAAG4C,KAAAA,CAAM5C,IAAI,IAAI,gBAAA;IAC5B,OAAOP,MAAAA;AACT,CAAA;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/domain/content-type/index.ts"],"sourcesContent":["import { cloneDeep } from 'lodash/fp';\nimport _ from 'lodash';\nimport { yup, contentTypes as contentTypesUtils } from '@strapi/utils';\nimport type { Schema } from '@strapi/types';\nimport { validateContentTypeDefinition } from './validator';\n\nexport type ContentTypeDefinition = {\n schema: Schema.ContentType;\n actions: Record<string, unknown>;\n lifecycles: Record<string, unknown>;\n};\n\nconst {\n CREATED_AT_ATTRIBUTE,\n UPDATED_AT_ATTRIBUTE,\n PUBLISHED_AT_ATTRIBUTE,\n FIRST_PUBLISHED_AT_ATTRIBUTE,\n CREATED_BY_ATTRIBUTE,\n UPDATED_BY_ATTRIBUTE,\n} = contentTypesUtils.constants;\n\nconst createContentType = (uid: string, definition: ContentTypeDefinition) => {\n try {\n validateContentTypeDefinition(definition);\n } catch (e) {\n if (e instanceof yup.ValidationError) {\n throw new Error(`Content Type Definition is invalid for ${uid}'.\\n${e.errors}`);\n }\n\n throw e;\n }\n\n const { schema, actions, lifecycles } = cloneDeep(definition);\n\n // general info\n Object.assign(schema, {\n uid,\n modelType: 'contentType',\n kind: schema.kind || 'collectionType',\n __schema__: pickSchema(definition.schema),\n modelName: definition.schema.info.singularName,\n actions,\n lifecycles,\n });\n\n addTimestamps(schema);\n\n // Published at is added regardless of draft and publish being enabled\n // In case it is not enabled, value will be always published, and it will not contain a draft\n addDraftAndPublish(schema);\n\n addCreatorFields(schema);\n\n addFirstPublishedAt(schema);\n\n warnDraftAndPublishReservedAttributes(uid, schema);\n\n return schema;\n};\n\nconst warnDraftAndPublishReservedAttributes = (uid: string, schema: Schema.ContentType) => {\n if (schema.options?.draftAndPublish !== true) {\n return;\n }\n\n for (const attributeName of contentTypesUtils.findDraftAndPublishReservedAttributeNames(\n Object.keys(schema.attributes)\n )) {\n strapi.log.warn(\n contentTypesUtils.getDraftAndPublishReservedAttributeWarning(uid, attributeName)\n );\n }\n};\n\nconst addTimestamps = (schema: Schema.ContentType) => {\n // attributes\n Object.assign(schema.attributes, {\n [CREATED_AT_ATTRIBUTE]: {\n type: 'datetime',\n },\n // TODO: handle on edit set to new date\n [UPDATED_AT_ATTRIBUTE]: {\n type: 'datetime',\n },\n });\n};\n\nconst addDraftAndPublish = (schema: Schema.ContentType) => {\n if (!_.has(schema, 'options.draftAndPublish')) {\n _.set(schema, 'options.draftAndPublish', false); // Disabled by default\n }\n\n schema.attributes[PUBLISHED_AT_ATTRIBUTE] = {\n type: 'datetime',\n configurable: false,\n writable: true,\n visible: true,\n default() {\n return new Date();\n },\n };\n};\n\nconst addFirstPublishedAt = (schema: Schema.ContentType) => {\n const isEnabled = contentTypesUtils.hasFirstPublishedAtField(schema);\n\n // Note: As an expertimental feature, we are okay if this data is deleted if this feature is\n // switched off. Once \"preserve_attributes\" come into play, this will be updated.\n if (isEnabled) {\n strapi.log.warn(`Experimental feature enabled: firstPublishedAt on ${schema.collectionName}`);\n schema.attributes[FIRST_PUBLISHED_AT_ATTRIBUTE] = {\n type: 'datetime',\n configurable: false,\n writable: true,\n visible: false,\n private: !isEnabled,\n };\n }\n};\n\nconst addCreatorFields = (schema: Schema.ContentType) => {\n const isPrivate = !_.get(schema, 'options.populateCreatorFields', false);\n\n schema.attributes[CREATED_BY_ATTRIBUTE] = {\n type: 'relation',\n relation: 'oneToOne',\n target: 'admin::user',\n configurable: false,\n writable: false,\n visible: false,\n useJoinTable: false,\n private: isPrivate,\n };\n\n schema.attributes[UPDATED_BY_ATTRIBUTE] = {\n type: 'relation',\n relation: 'oneToOne',\n target: 'admin::user',\n configurable: false,\n writable: false,\n visible: false,\n useJoinTable: false,\n private: isPrivate,\n };\n};\n\nconst getGlobalId = (schema: Schema.ContentType, prefix?: string) => {\n const modelName = schema.info.singularName;\n const globalId = prefix ? `${prefix}-${modelName}` : modelName;\n\n return schema.globalId || _.upperFirst(_.camelCase(globalId));\n};\n\nconst pickSchema = (model: Schema.ContentType) => {\n const schema = _.cloneDeep(\n _.pick(model, [\n 'connection',\n 'collectionName',\n 'info',\n 'options',\n 'pluginOptions',\n 'attributes',\n 'kind',\n 'indexes',\n 'foreignKeys',\n ])\n );\n\n schema.kind = model.kind || 'collectionType';\n return schema;\n};\n\nexport { createContentType, getGlobalId };\n"],"names":["CREATED_AT_ATTRIBUTE","UPDATED_AT_ATTRIBUTE","PUBLISHED_AT_ATTRIBUTE","FIRST_PUBLISHED_AT_ATTRIBUTE","CREATED_BY_ATTRIBUTE","UPDATED_BY_ATTRIBUTE","contentTypesUtils","constants","createContentType","uid","definition","validateContentTypeDefinition","e","yup","ValidationError","Error","errors","schema","actions","lifecycles","cloneDeep","Object","assign","modelType","kind","__schema__","pickSchema","modelName","info","singularName","addTimestamps","addDraftAndPublish","addCreatorFields","addFirstPublishedAt","warnDraftAndPublishReservedAttributes","options","draftAndPublish","attributeName","findDraftAndPublishReservedAttributeNames","keys","attributes","strapi","log","warn","getDraftAndPublishReservedAttributeWarning","type","_","has","set","configurable","writable","visible","default","Date","isEnabled","hasFirstPublishedAtField","collectionName","private","isPrivate","get","relation","target","useJoinTable","getGlobalId","prefix","globalId","upperFirst","camelCase","model","pick"],"mappings":"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"}
@@ -118,7 +118,9 @@ const pickSchema = (model)=>{
118
118
  'options',
119
119
  'pluginOptions',
120
120
  'attributes',
121
- 'kind'
121
+ 'kind',
122
+ 'indexes',
123
+ 'foreignKeys'
122
124
  ]));
123
125
  schema.kind = model.kind || 'collectionType';
124
126
  return schema;
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../src/domain/content-type/index.ts"],"sourcesContent":["import { cloneDeep } from 'lodash/fp';\nimport _ from 'lodash';\nimport { yup, contentTypes as contentTypesUtils } from '@strapi/utils';\nimport type { Schema } from '@strapi/types';\nimport { validateContentTypeDefinition } from './validator';\n\nexport type ContentTypeDefinition = {\n schema: Schema.ContentType;\n actions: Record<string, unknown>;\n lifecycles: Record<string, unknown>;\n};\n\nconst {\n CREATED_AT_ATTRIBUTE,\n UPDATED_AT_ATTRIBUTE,\n PUBLISHED_AT_ATTRIBUTE,\n FIRST_PUBLISHED_AT_ATTRIBUTE,\n CREATED_BY_ATTRIBUTE,\n UPDATED_BY_ATTRIBUTE,\n} = contentTypesUtils.constants;\n\nconst createContentType = (uid: string, definition: ContentTypeDefinition) => {\n try {\n validateContentTypeDefinition(definition);\n } catch (e) {\n if (e instanceof yup.ValidationError) {\n throw new Error(`Content Type Definition is invalid for ${uid}'.\\n${e.errors}`);\n }\n\n throw e;\n }\n\n const { schema, actions, lifecycles } = cloneDeep(definition);\n\n // general info\n Object.assign(schema, {\n uid,\n modelType: 'contentType',\n kind: schema.kind || 'collectionType',\n __schema__: pickSchema(definition.schema),\n modelName: definition.schema.info.singularName,\n actions,\n lifecycles,\n });\n\n addTimestamps(schema);\n\n // Published at is added regardless of draft and publish being enabled\n // In case it is not enabled, value will be always published, and it will not contain a draft\n addDraftAndPublish(schema);\n\n addCreatorFields(schema);\n\n addFirstPublishedAt(schema);\n\n warnDraftAndPublishReservedAttributes(uid, schema);\n\n return schema;\n};\n\nconst warnDraftAndPublishReservedAttributes = (uid: string, schema: Schema.ContentType) => {\n if (schema.options?.draftAndPublish !== true) {\n return;\n }\n\n for (const attributeName of contentTypesUtils.findDraftAndPublishReservedAttributeNames(\n Object.keys(schema.attributes)\n )) {\n strapi.log.warn(\n contentTypesUtils.getDraftAndPublishReservedAttributeWarning(uid, attributeName)\n );\n }\n};\n\nconst addTimestamps = (schema: Schema.ContentType) => {\n // attributes\n Object.assign(schema.attributes, {\n [CREATED_AT_ATTRIBUTE]: {\n type: 'datetime',\n },\n // TODO: handle on edit set to new date\n [UPDATED_AT_ATTRIBUTE]: {\n type: 'datetime',\n },\n });\n};\n\nconst addDraftAndPublish = (schema: Schema.ContentType) => {\n if (!_.has(schema, 'options.draftAndPublish')) {\n _.set(schema, 'options.draftAndPublish', false); // Disabled by default\n }\n\n schema.attributes[PUBLISHED_AT_ATTRIBUTE] = {\n type: 'datetime',\n configurable: false,\n writable: true,\n visible: true,\n default() {\n return new Date();\n },\n };\n};\n\nconst addFirstPublishedAt = (schema: Schema.ContentType) => {\n const isEnabled = contentTypesUtils.hasFirstPublishedAtField(schema);\n\n // Note: As an expertimental feature, we are okay if this data is deleted if this feature is\n // switched off. Once \"preserve_attributes\" come into play, this will be updated.\n if (isEnabled) {\n strapi.log.warn(`Experimental feature enabled: firstPublishedAt on ${schema.collectionName}`);\n schema.attributes[FIRST_PUBLISHED_AT_ATTRIBUTE] = {\n type: 'datetime',\n configurable: false,\n writable: true,\n visible: false,\n private: !isEnabled,\n };\n }\n};\n\nconst addCreatorFields = (schema: Schema.ContentType) => {\n const isPrivate = !_.get(schema, 'options.populateCreatorFields', false);\n\n schema.attributes[CREATED_BY_ATTRIBUTE] = {\n type: 'relation',\n relation: 'oneToOne',\n target: 'admin::user',\n configurable: false,\n writable: false,\n visible: false,\n useJoinTable: false,\n private: isPrivate,\n };\n\n schema.attributes[UPDATED_BY_ATTRIBUTE] = {\n type: 'relation',\n relation: 'oneToOne',\n target: 'admin::user',\n configurable: false,\n writable: false,\n visible: false,\n useJoinTable: false,\n private: isPrivate,\n };\n};\n\nconst getGlobalId = (schema: Schema.ContentType, prefix?: string) => {\n const modelName = schema.info.singularName;\n const globalId = prefix ? `${prefix}-${modelName}` : modelName;\n\n return schema.globalId || _.upperFirst(_.camelCase(globalId));\n};\n\nconst pickSchema = (model: Schema.ContentType) => {\n const schema = _.cloneDeep(\n _.pick(model, [\n 'connection',\n 'collectionName',\n 'info',\n 'options',\n 'pluginOptions',\n 'attributes',\n 'kind',\n ])\n );\n\n schema.kind = model.kind || 'collectionType';\n return schema;\n};\n\nexport { createContentType, getGlobalId };\n"],"names":["CREATED_AT_ATTRIBUTE","UPDATED_AT_ATTRIBUTE","PUBLISHED_AT_ATTRIBUTE","FIRST_PUBLISHED_AT_ATTRIBUTE","CREATED_BY_ATTRIBUTE","UPDATED_BY_ATTRIBUTE","contentTypesUtils","constants","createContentType","uid","definition","validateContentTypeDefinition","e","yup","ValidationError","Error","errors","schema","actions","lifecycles","cloneDeep","Object","assign","modelType","kind","__schema__","pickSchema","modelName","info","singularName","addTimestamps","addDraftAndPublish","addCreatorFields","addFirstPublishedAt","warnDraftAndPublishReservedAttributes","options","draftAndPublish","attributeName","findDraftAndPublishReservedAttributeNames","keys","attributes","strapi","log","warn","getDraftAndPublishReservedAttributeWarning","type","_","has","set","configurable","writable","visible","default","Date","isEnabled","hasFirstPublishedAtField","collectionName","private","isPrivate","get","relation","target","useJoinTable","getGlobalId","prefix","globalId","upperFirst","camelCase","model","pick"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/domain/content-type/index.ts"],"sourcesContent":["import { cloneDeep } from 'lodash/fp';\nimport _ from 'lodash';\nimport { yup, contentTypes as contentTypesUtils } from '@strapi/utils';\nimport type { Schema } from '@strapi/types';\nimport { validateContentTypeDefinition } from './validator';\n\nexport type ContentTypeDefinition = {\n schema: Schema.ContentType;\n actions: Record<string, unknown>;\n lifecycles: Record<string, unknown>;\n};\n\nconst {\n CREATED_AT_ATTRIBUTE,\n UPDATED_AT_ATTRIBUTE,\n PUBLISHED_AT_ATTRIBUTE,\n FIRST_PUBLISHED_AT_ATTRIBUTE,\n CREATED_BY_ATTRIBUTE,\n UPDATED_BY_ATTRIBUTE,\n} = contentTypesUtils.constants;\n\nconst createContentType = (uid: string, definition: ContentTypeDefinition) => {\n try {\n validateContentTypeDefinition(definition);\n } catch (e) {\n if (e instanceof yup.ValidationError) {\n throw new Error(`Content Type Definition is invalid for ${uid}'.\\n${e.errors}`);\n }\n\n throw e;\n }\n\n const { schema, actions, lifecycles } = cloneDeep(definition);\n\n // general info\n Object.assign(schema, {\n uid,\n modelType: 'contentType',\n kind: schema.kind || 'collectionType',\n __schema__: pickSchema(definition.schema),\n modelName: definition.schema.info.singularName,\n actions,\n lifecycles,\n });\n\n addTimestamps(schema);\n\n // Published at is added regardless of draft and publish being enabled\n // In case it is not enabled, value will be always published, and it will not contain a draft\n addDraftAndPublish(schema);\n\n addCreatorFields(schema);\n\n addFirstPublishedAt(schema);\n\n warnDraftAndPublishReservedAttributes(uid, schema);\n\n return schema;\n};\n\nconst warnDraftAndPublishReservedAttributes = (uid: string, schema: Schema.ContentType) => {\n if (schema.options?.draftAndPublish !== true) {\n return;\n }\n\n for (const attributeName of contentTypesUtils.findDraftAndPublishReservedAttributeNames(\n Object.keys(schema.attributes)\n )) {\n strapi.log.warn(\n contentTypesUtils.getDraftAndPublishReservedAttributeWarning(uid, attributeName)\n );\n }\n};\n\nconst addTimestamps = (schema: Schema.ContentType) => {\n // attributes\n Object.assign(schema.attributes, {\n [CREATED_AT_ATTRIBUTE]: {\n type: 'datetime',\n },\n // TODO: handle on edit set to new date\n [UPDATED_AT_ATTRIBUTE]: {\n type: 'datetime',\n },\n });\n};\n\nconst addDraftAndPublish = (schema: Schema.ContentType) => {\n if (!_.has(schema, 'options.draftAndPublish')) {\n _.set(schema, 'options.draftAndPublish', false); // Disabled by default\n }\n\n schema.attributes[PUBLISHED_AT_ATTRIBUTE] = {\n type: 'datetime',\n configurable: false,\n writable: true,\n visible: true,\n default() {\n return new Date();\n },\n };\n};\n\nconst addFirstPublishedAt = (schema: Schema.ContentType) => {\n const isEnabled = contentTypesUtils.hasFirstPublishedAtField(schema);\n\n // Note: As an expertimental feature, we are okay if this data is deleted if this feature is\n // switched off. Once \"preserve_attributes\" come into play, this will be updated.\n if (isEnabled) {\n strapi.log.warn(`Experimental feature enabled: firstPublishedAt on ${schema.collectionName}`);\n schema.attributes[FIRST_PUBLISHED_AT_ATTRIBUTE] = {\n type: 'datetime',\n configurable: false,\n writable: true,\n visible: false,\n private: !isEnabled,\n };\n }\n};\n\nconst addCreatorFields = (schema: Schema.ContentType) => {\n const isPrivate = !_.get(schema, 'options.populateCreatorFields', false);\n\n schema.attributes[CREATED_BY_ATTRIBUTE] = {\n type: 'relation',\n relation: 'oneToOne',\n target: 'admin::user',\n configurable: false,\n writable: false,\n visible: false,\n useJoinTable: false,\n private: isPrivate,\n };\n\n schema.attributes[UPDATED_BY_ATTRIBUTE] = {\n type: 'relation',\n relation: 'oneToOne',\n target: 'admin::user',\n configurable: false,\n writable: false,\n visible: false,\n useJoinTable: false,\n private: isPrivate,\n };\n};\n\nconst getGlobalId = (schema: Schema.ContentType, prefix?: string) => {\n const modelName = schema.info.singularName;\n const globalId = prefix ? `${prefix}-${modelName}` : modelName;\n\n return schema.globalId || _.upperFirst(_.camelCase(globalId));\n};\n\nconst pickSchema = (model: Schema.ContentType) => {\n const schema = _.cloneDeep(\n _.pick(model, [\n 'connection',\n 'collectionName',\n 'info',\n 'options',\n 'pluginOptions',\n 'attributes',\n 'kind',\n 'indexes',\n 'foreignKeys',\n ])\n );\n\n schema.kind = model.kind || 'collectionType';\n return schema;\n};\n\nexport { createContentType, getGlobalId };\n"],"names":["CREATED_AT_ATTRIBUTE","UPDATED_AT_ATTRIBUTE","PUBLISHED_AT_ATTRIBUTE","FIRST_PUBLISHED_AT_ATTRIBUTE","CREATED_BY_ATTRIBUTE","UPDATED_BY_ATTRIBUTE","contentTypesUtils","constants","createContentType","uid","definition","validateContentTypeDefinition","e","yup","ValidationError","Error","errors","schema","actions","lifecycles","cloneDeep","Object","assign","modelType","kind","__schema__","pickSchema","modelName","info","singularName","addTimestamps","addDraftAndPublish","addCreatorFields","addFirstPublishedAt","warnDraftAndPublishReservedAttributes","options","draftAndPublish","attributeName","findDraftAndPublishReservedAttributeNames","keys","attributes","strapi","log","warn","getDraftAndPublishReservedAttributeWarning","type","_","has","set","configurable","writable","visible","default","Date","isEnabled","hasFirstPublishedAtField","collectionName","private","isPrivate","get","relation","target","useJoinTable","getGlobalId","prefix","globalId","upperFirst","camelCase","model","pick"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import * as qs from 'qs';
2
2
  import type { Core } from '@strapi/types';
3
3
  import { type StrapiOptions } from './Strapi';
4
+ import type { ContextDelegatedResponseErrorMethods, ContextDelegatedResponseSuccessMethods } from './services/server/koa-methods';
4
5
  export { default as compileStrapi } from './compile';
5
6
  export * as factories from './factories';
6
7
  export * as ai from './ai';
@@ -17,5 +18,7 @@ declare module 'koa' {
17
18
  get query(): ParsedQuery;
18
19
  set query(obj: any);
19
20
  }
21
+ interface DefaultContextDelegatedResponse extends ContextDelegatedResponseErrorMethods, ContextDelegatedResponseSuccessMethods {
22
+ }
20
23
  }
21
24
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAe,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAGtD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,MAAM,CAAC;AAE3B,eAAO,MAAM,YAAY,GAAI,UAAS,OAAO,CAAC,aAAa,CAAM,KAAG,IAAI,CAAC,MAaxE,CAAC;AAIF,OAAO,QAAQ,KAAK,CAAC;IACnB,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;IAE/C,UAAiB,WAAW;QAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;QAE1B,IAAI,KAAK,IAAI,WAAW,CAAC;QACzB,IAAI,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;KACrB;IAED,UAAiB,WAAW;QAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;QAE1B,IAAI,KAAK,IAAI,WAAW,CAAC;QACzB,IAAI,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;KACrB;CACF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAe,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAEtD,OAAO,KAAK,EACV,oCAAoC,EACpC,sCAAsC,EACvC,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,MAAM,CAAC;AAE3B,eAAO,MAAM,YAAY,GAAI,UAAS,OAAO,CAAC,aAAa,CAAM,KAAG,IAAI,CAAC,MAaxE,CAAC;AAIF,OAAO,QAAQ,KAAK,CAAC;IACnB,KAAK,WAAW,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;IAE/C,UAAiB,WAAW;QAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;QAE1B,IAAI,KAAK,IAAI,WAAW,CAAC;QACzB,IAAI,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;KACrB;IAED,UAAiB,WAAW;QAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;QAE1B,IAAI,KAAK,IAAI,WAAW,CAAC;QACzB,IAAI,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE;KACrB;IAKD,UAAiB,+BACf,SAAQ,oCAAoC,EAC1C,sCAAsC;KAAG;CAC9C"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import * as qs from 'qs';\nimport type { Core } from '@strapi/types';\n\nimport Strapi, { type StrapiOptions } from './Strapi';\nimport { destroyOnSignal, resolveWorkingDirectories, createUpdateNotifier } from './utils';\n\nexport { default as compileStrapi } from './compile';\nexport * as factories from './factories';\nexport * as ai from './ai';\n\nexport const createStrapi = (options: Partial<StrapiOptions> = {}): Core.Strapi => {\n const strapi = new Strapi({\n ...options,\n ...resolveWorkingDirectories(options),\n });\n\n destroyOnSignal(strapi);\n createUpdateNotifier(strapi);\n\n // TODO: deprecate and remove in next major\n global.strapi = strapi;\n\n return strapi;\n};\n\n// Augment Koa query type based on Strapi query middleware\n\ndeclare module 'koa' {\n type ParsedQuery = ReturnType<typeof qs.parse>;\n\n export interface BaseRequest {\n _querycache?: ParsedQuery;\n\n get query(): ParsedQuery;\n set query(obj: any);\n }\n\n export interface BaseContext {\n _querycache?: ParsedQuery;\n\n get query(): ParsedQuery;\n set query(obj: any);\n }\n}\n"],"names":["createStrapi","options","strapi","Strapi","resolveWorkingDirectories","destroyOnSignal","createUpdateNotifier","global"],"mappings":";;;;;;;;;;;;;;;;;;;AAUO,MAAMA,YAAAA,GAAe,CAACC,OAAAA,GAAkC,EAAE,GAAA;IAC/D,MAAMC,MAAAA,GAAS,IAAIC,MAAAA,CAAO;AACxB,QAAA,GAAGF,OAAO;AACV,QAAA,GAAGG,6CAA0BH,OAAAA;AAC/B,KAAA,CAAA;IAEAI,uBAAAA,CAAgBH,MAAAA,CAAAA;IAChBI,0BAAAA,CAAqBJ,MAAAA,CAAAA;;AAGrBK,IAAAA,MAAAA,CAAOL,MAAM,GAAGA,MAAAA;IAEhB,OAAOA,MAAAA;AACT;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import * as qs from 'qs';\nimport type { Core } from '@strapi/types';\n\nimport Strapi, { type StrapiOptions } from './Strapi';\nimport { destroyOnSignal, resolveWorkingDirectories, createUpdateNotifier } from './utils';\nimport type {\n ContextDelegatedResponseErrorMethods,\n ContextDelegatedResponseSuccessMethods,\n} from './services/server/koa-methods';\n\nexport { default as compileStrapi } from './compile';\nexport * as factories from './factories';\nexport * as ai from './ai';\n\nexport const createStrapi = (options: Partial<StrapiOptions> = {}): Core.Strapi => {\n const strapi = new Strapi({\n ...options,\n ...resolveWorkingDirectories(options),\n });\n\n destroyOnSignal(strapi);\n createUpdateNotifier(strapi);\n\n // TODO: deprecate and remove in next major\n global.strapi = strapi;\n\n return strapi;\n};\n\n// Augment Koa query type based on Strapi query middleware\n\ndeclare module 'koa' {\n type ParsedQuery = ReturnType<typeof qs.parse>;\n\n export interface BaseRequest {\n _querycache?: ParsedQuery;\n\n get query(): ParsedQuery;\n set query(obj: any);\n }\n\n export interface BaseContext {\n _querycache?: ParsedQuery;\n\n get query(): ParsedQuery;\n set query(obj: any);\n }\n\n // Keep Koa's context and response types in sync with the helpers registered at runtime in `koa.ts`.\n // `BaseResponse` and `BaseContext` both extend `DefaultContextDelegatedResponse`, so augmenting it\n // once covers `ctx.*` and `ctx.response.*`.\n export interface DefaultContextDelegatedResponse\n extends ContextDelegatedResponseErrorMethods,\n ContextDelegatedResponseSuccessMethods {}\n}\n"],"names":["createStrapi","options","strapi","Strapi","resolveWorkingDirectories","destroyOnSignal","createUpdateNotifier","global"],"mappings":";;;;;;;;;;;;;;;;;;;AAcO,MAAMA,YAAAA,GAAe,CAACC,OAAAA,GAAkC,EAAE,GAAA;IAC/D,MAAMC,MAAAA,GAAS,IAAIC,MAAAA,CAAO;AACxB,QAAA,GAAGF,OAAO;AACV,QAAA,GAAGG,6CAA0BH,OAAAA;AAC/B,KAAA,CAAA;IAEAI,uBAAAA,CAAgBH,MAAAA,CAAAA;IAChBI,0BAAAA,CAAqBJ,MAAAA,CAAAA;;AAGrBK,IAAAA,MAAAA,CAAOL,MAAM,GAAGA,MAAAA;IAEhB,OAAOA,MAAAA;AACT;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import * as qs from 'qs';\nimport type { Core } from '@strapi/types';\n\nimport Strapi, { type StrapiOptions } from './Strapi';\nimport { destroyOnSignal, resolveWorkingDirectories, createUpdateNotifier } from './utils';\n\nexport { default as compileStrapi } from './compile';\nexport * as factories from './factories';\nexport * as ai from './ai';\n\nexport const createStrapi = (options: Partial<StrapiOptions> = {}): Core.Strapi => {\n const strapi = new Strapi({\n ...options,\n ...resolveWorkingDirectories(options),\n });\n\n destroyOnSignal(strapi);\n createUpdateNotifier(strapi);\n\n // TODO: deprecate and remove in next major\n global.strapi = strapi;\n\n return strapi;\n};\n\n// Augment Koa query type based on Strapi query middleware\n\ndeclare module 'koa' {\n type ParsedQuery = ReturnType<typeof qs.parse>;\n\n export interface BaseRequest {\n _querycache?: ParsedQuery;\n\n get query(): ParsedQuery;\n set query(obj: any);\n }\n\n export interface BaseContext {\n _querycache?: ParsedQuery;\n\n get query(): ParsedQuery;\n set query(obj: any);\n }\n}\n"],"names":["createStrapi","options","strapi","Strapi","resolveWorkingDirectories","destroyOnSignal","createUpdateNotifier","global"],"mappings":";;;;;;;;;;;;;;;;;;;AAUO,MAAMA,YAAAA,GAAe,CAACC,OAAAA,GAAkC,EAAE,GAAA;IAC/D,MAAMC,MAAAA,GAAS,IAAIC,MAAAA,CAAO;AACxB,QAAA,GAAGF,OAAO;AACV,QAAA,GAAGG,0BAA0BH,OAAAA;AAC/B,KAAA,CAAA;IAEAI,eAAAA,CAAgBH,MAAAA,CAAAA;IAChBI,oBAAAA,CAAqBJ,MAAAA,CAAAA;;AAGrBK,IAAAA,MAAAA,CAAOL,MAAM,GAAGA,MAAAA;IAEhB,OAAOA,MAAAA;AACT;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import * as qs from 'qs';\nimport type { Core } from '@strapi/types';\n\nimport Strapi, { type StrapiOptions } from './Strapi';\nimport { destroyOnSignal, resolveWorkingDirectories, createUpdateNotifier } from './utils';\nimport type {\n ContextDelegatedResponseErrorMethods,\n ContextDelegatedResponseSuccessMethods,\n} from './services/server/koa-methods';\n\nexport { default as compileStrapi } from './compile';\nexport * as factories from './factories';\nexport * as ai from './ai';\n\nexport const createStrapi = (options: Partial<StrapiOptions> = {}): Core.Strapi => {\n const strapi = new Strapi({\n ...options,\n ...resolveWorkingDirectories(options),\n });\n\n destroyOnSignal(strapi);\n createUpdateNotifier(strapi);\n\n // TODO: deprecate and remove in next major\n global.strapi = strapi;\n\n return strapi;\n};\n\n// Augment Koa query type based on Strapi query middleware\n\ndeclare module 'koa' {\n type ParsedQuery = ReturnType<typeof qs.parse>;\n\n export interface BaseRequest {\n _querycache?: ParsedQuery;\n\n get query(): ParsedQuery;\n set query(obj: any);\n }\n\n export interface BaseContext {\n _querycache?: ParsedQuery;\n\n get query(): ParsedQuery;\n set query(obj: any);\n }\n\n // Keep Koa's context and response types in sync with the helpers registered at runtime in `koa.ts`.\n // `BaseResponse` and `BaseContext` both extend `DefaultContextDelegatedResponse`, so augmenting it\n // once covers `ctx.*` and `ctx.response.*`.\n export interface DefaultContextDelegatedResponse\n extends ContextDelegatedResponseErrorMethods,\n ContextDelegatedResponseSuccessMethods {}\n}\n"],"names":["createStrapi","options","strapi","Strapi","resolveWorkingDirectories","destroyOnSignal","createUpdateNotifier","global"],"mappings":";;;;;;;;;;;;;;;;;;;AAcO,MAAMA,YAAAA,GAAe,CAACC,OAAAA,GAAkC,EAAE,GAAA;IAC/D,MAAMC,MAAAA,GAAS,IAAIC,MAAAA,CAAO;AACxB,QAAA,GAAGF,OAAO;AACV,QAAA,GAAGG,0BAA0BH,OAAAA;AAC/B,KAAA,CAAA;IAEAI,eAAAA,CAAgBH,MAAAA,CAAAA;IAChBI,oBAAAA,CAAqBJ,MAAAA,CAAAA;;AAGrBK,IAAAA,MAAAA,CAAOL,MAAM,GAAGA,MAAAA;IAEhB,OAAOA,MAAAA;AACT;;;;"}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var name = "@strapi/core";
6
- var version = "5.53.0";
6
+ var version = "5.55.0";
7
7
  var description = "Core of Strapi";
8
8
  var homepage = "https://strapi.io";
9
9
  var bugs = {
@@ -66,15 +66,15 @@ var dependencies = {
66
66
  "@modelcontextprotocol/node": "2.0.0",
67
67
  "@modelcontextprotocol/server": "2.0.0",
68
68
  "@paralleldrive/cuid2": "2.2.2",
69
- "@strapi/admin": "5.53.0",
70
- "@strapi/database": "5.53.0",
71
- "@strapi/generators": "5.53.0",
72
- "@strapi/logger": "5.53.0",
73
- "@strapi/openapi": "5.53.0",
74
- "@strapi/permissions": "5.53.0",
75
- "@strapi/types": "5.53.0",
76
- "@strapi/typescript-utils": "5.53.0",
77
- "@strapi/utils": "5.53.0",
69
+ "@strapi/admin": "5.55.0",
70
+ "@strapi/database": "5.55.0",
71
+ "@strapi/generators": "5.55.0",
72
+ "@strapi/logger": "5.55.0",
73
+ "@strapi/openapi": "5.55.0",
74
+ "@strapi/permissions": "5.55.0",
75
+ "@strapi/types": "5.55.0",
76
+ "@strapi/typescript-utils": "5.55.0",
77
+ "@strapi/utils": "5.55.0",
78
78
  "@vercel/stega": "0.1.2",
79
79
  bcryptjs: "2.4.3",
80
80
  boxen: "5.1.2",
@@ -83,6 +83,7 @@ var dependencies = {
83
83
  "cli-table3": "0.6.5",
84
84
  commander: "8.3.0",
85
85
  configstore: "5.0.1",
86
+ croner: "10.0.1",
86
87
  debug: "4.3.4",
87
88
  delegates: "1.0.0",
88
89
  dotenv: "16.6.1",
@@ -107,7 +108,6 @@ var dependencies = {
107
108
  "koa-static": "5.0.0",
108
109
  lodash: "4.18.1",
109
110
  "mime-types": "2.1.35",
110
- "node-schedule": "2.1.1",
111
111
  open: "8.4.2",
112
112
  ora: "5.4.1",
113
113
  "package-json": "10.0.1",
@@ -138,15 +138,14 @@ var devDependencies = {
138
138
  "@types/lodash": "^4.14.191",
139
139
  "@types/mime-types": "2.1.1",
140
140
  "@types/node": "20.19.41",
141
- "@types/node-schedule": "2.1.7",
142
141
  ajv: "8.20.0",
143
142
  "ajv-formats": "3.0.1",
144
- "eslint-config-custom": "5.53.0",
143
+ "eslint-config-custom": "5.55.0",
145
144
  jest: "29.6.0",
146
145
  supertest: "7.2.2",
147
- tsconfig: "5.53.0",
146
+ tsconfig: "5.55.0",
148
147
  vitest: "catalog:",
149
- "vitest-config": "5.53.0"
148
+ "vitest-config": "5.55.0"
150
149
  };
151
150
  var engines = {
152
151
  node: ">=20.0.0 <=26.x.x",
@@ -1 +1 @@
1
- {"version":3,"file":"package.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"package.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  var name = "@strapi/core";
2
- var version = "5.53.0";
2
+ var version = "5.55.0";
3
3
  var description = "Core of Strapi";
4
4
  var homepage = "https://strapi.io";
5
5
  var bugs = {
@@ -62,15 +62,15 @@ var dependencies = {
62
62
  "@modelcontextprotocol/node": "2.0.0",
63
63
  "@modelcontextprotocol/server": "2.0.0",
64
64
  "@paralleldrive/cuid2": "2.2.2",
65
- "@strapi/admin": "5.53.0",
66
- "@strapi/database": "5.53.0",
67
- "@strapi/generators": "5.53.0",
68
- "@strapi/logger": "5.53.0",
69
- "@strapi/openapi": "5.53.0",
70
- "@strapi/permissions": "5.53.0",
71
- "@strapi/types": "5.53.0",
72
- "@strapi/typescript-utils": "5.53.0",
73
- "@strapi/utils": "5.53.0",
65
+ "@strapi/admin": "5.55.0",
66
+ "@strapi/database": "5.55.0",
67
+ "@strapi/generators": "5.55.0",
68
+ "@strapi/logger": "5.55.0",
69
+ "@strapi/openapi": "5.55.0",
70
+ "@strapi/permissions": "5.55.0",
71
+ "@strapi/types": "5.55.0",
72
+ "@strapi/typescript-utils": "5.55.0",
73
+ "@strapi/utils": "5.55.0",
74
74
  "@vercel/stega": "0.1.2",
75
75
  bcryptjs: "2.4.3",
76
76
  boxen: "5.1.2",
@@ -79,6 +79,7 @@ var dependencies = {
79
79
  "cli-table3": "0.6.5",
80
80
  commander: "8.3.0",
81
81
  configstore: "5.0.1",
82
+ croner: "10.0.1",
82
83
  debug: "4.3.4",
83
84
  delegates: "1.0.0",
84
85
  dotenv: "16.6.1",
@@ -103,7 +104,6 @@ var dependencies = {
103
104
  "koa-static": "5.0.0",
104
105
  lodash: "4.18.1",
105
106
  "mime-types": "2.1.35",
106
- "node-schedule": "2.1.1",
107
107
  open: "8.4.2",
108
108
  ora: "5.4.1",
109
109
  "package-json": "10.0.1",
@@ -134,15 +134,14 @@ var devDependencies = {
134
134
  "@types/lodash": "^4.14.191",
135
135
  "@types/mime-types": "2.1.1",
136
136
  "@types/node": "20.19.41",
137
- "@types/node-schedule": "2.1.7",
138
137
  ajv: "8.20.0",
139
138
  "ajv-formats": "3.0.1",
140
- "eslint-config-custom": "5.53.0",
139
+ "eslint-config-custom": "5.55.0",
141
140
  jest: "29.6.0",
142
141
  supertest: "7.2.2",
143
- tsconfig: "5.53.0",
142
+ tsconfig: "5.55.0",
144
143
  vitest: "catalog:",
145
- "vitest-config": "5.53.0"
144
+ "vitest-config": "5.55.0"
146
145
  };
147
146
  var engines = {
148
147
  node: ">=20.0.0 <=26.x.x",
@@ -1 +1 @@
1
- {"version":3,"file":"package.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"package.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,3 @@
1
+ declare const _default: import("./provider").Provider;
2
+ export default _default;
3
+ //# sourceMappingURL=content-structure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-structure.d.ts","sourceRoot":"","sources":["../../src/providers/content-structure.ts"],"names":[],"mappings":";AAMA,wBAeG"}
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ var provider = require('./provider.js');
4
+ var index = require('../services/content-structure/index.js');
5
+
6
+ var contentStructure = provider.defineProvider({
7
+ init (strapi) {
8
+ strapi.add('content-structure', ()=>index.createContentStructureService(strapi));
9
+ },
10
+ async bootstrap (strapi) {
11
+ const contentStructure = strapi.get('content-structure');
12
+ // Executes tolerant validation during bootstrap, logs validation warnings
13
+ const cleaned = await contentStructure.getCleanedFile();
14
+ if (cleaned) {
15
+ const count = await contentStructure.countGroups();
16
+ strapi.log.info(`[content-structure] Loaded groups.json with ${count} folder group(s)`);
17
+ }
18
+ }
19
+ });
20
+
21
+ module.exports = contentStructure;
22
+ //# sourceMappingURL=content-structure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-structure.js","sources":["../../src/providers/content-structure.ts"],"sourcesContent":["import { defineProvider } from './provider';\nimport {\n createContentStructureService,\n type ContentStructureService,\n} from '../services/content-structure';\n\nexport default defineProvider({\n init(strapi) {\n strapi.add('content-structure', () => createContentStructureService(strapi));\n },\n async bootstrap(strapi) {\n const contentStructure = strapi.get('content-structure') as ContentStructureService;\n\n // Executes tolerant validation during bootstrap, logs validation warnings\n const cleaned = await contentStructure.getCleanedFile();\n\n if (cleaned) {\n const count = await contentStructure.countGroups();\n strapi.log.info(`[content-structure] Loaded groups.json with ${count} folder group(s)`);\n }\n },\n});\n"],"names":["defineProvider","init","strapi","add","createContentStructureService","bootstrap","contentStructure","get","cleaned","getCleanedFile","count","countGroups","log","info"],"mappings":";;;;;AAMA,uBAAeA,uBAAAA,CAAe;AAC5BC,IAAAA,IAAAA,CAAAA,CAAKC,MAAM,EAAA;AACTA,QAAAA,MAAAA,CAAOC,GAAG,CAAC,mBAAA,EAAqB,IAAMC,mCAAAA,CAA8BF,MAAAA,CAAAA,CAAAA;AACtE,IAAA,CAAA;AACA,IAAA,MAAMG,WAAUH,MAAM,EAAA;QACpB,MAAMI,gBAAAA,GAAmBJ,MAAAA,CAAOK,GAAG,CAAC,mBAAA,CAAA;;QAGpC,MAAMC,OAAAA,GAAU,MAAMF,gBAAAA,CAAiBG,cAAc,EAAA;AAErD,QAAA,IAAID,OAAAA,EAAS;YACX,MAAME,KAAAA,GAAQ,MAAMJ,gBAAAA,CAAiBK,WAAW,EAAA;YAChDT,MAAAA,CAAOU,GAAG,CAACC,IAAI,CAAC,CAAC,4CAA4C,EAAEH,KAAAA,CAAM,gBAAgB,CAAC,CAAA;AACxF,QAAA;AACF,IAAA;AACF,CAAA,CAAA;;;;"}
@@ -0,0 +1,20 @@
1
+ import { defineProvider } from './provider.mjs';
2
+ import { createContentStructureService } from '../services/content-structure/index.mjs';
3
+
4
+ var contentStructure = defineProvider({
5
+ init (strapi) {
6
+ strapi.add('content-structure', ()=>createContentStructureService(strapi));
7
+ },
8
+ async bootstrap (strapi) {
9
+ const contentStructure = strapi.get('content-structure');
10
+ // Executes tolerant validation during bootstrap, logs validation warnings
11
+ const cleaned = await contentStructure.getCleanedFile();
12
+ if (cleaned) {
13
+ const count = await contentStructure.countGroups();
14
+ strapi.log.info(`[content-structure] Loaded groups.json with ${count} folder group(s)`);
15
+ }
16
+ }
17
+ });
18
+
19
+ export { contentStructure as default };
20
+ //# sourceMappingURL=content-structure.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-structure.mjs","sources":["../../src/providers/content-structure.ts"],"sourcesContent":["import { defineProvider } from './provider';\nimport {\n createContentStructureService,\n type ContentStructureService,\n} from '../services/content-structure';\n\nexport default defineProvider({\n init(strapi) {\n strapi.add('content-structure', () => createContentStructureService(strapi));\n },\n async bootstrap(strapi) {\n const contentStructure = strapi.get('content-structure') as ContentStructureService;\n\n // Executes tolerant validation during bootstrap, logs validation warnings\n const cleaned = await contentStructure.getCleanedFile();\n\n if (cleaned) {\n const count = await contentStructure.countGroups();\n strapi.log.info(`[content-structure] Loaded groups.json with ${count} folder group(s)`);\n }\n },\n});\n"],"names":["defineProvider","init","strapi","add","createContentStructureService","bootstrap","contentStructure","get","cleaned","getCleanedFile","count","countGroups","log","info"],"mappings":";;;AAMA,uBAAeA,cAAAA,CAAe;AAC5BC,IAAAA,IAAAA,CAAAA,CAAKC,MAAM,EAAA;AACTA,QAAAA,MAAAA,CAAOC,GAAG,CAAC,mBAAA,EAAqB,IAAMC,6BAAAA,CAA8BF,MAAAA,CAAAA,CAAAA;AACtE,IAAA,CAAA;AACA,IAAA,MAAMG,WAAUH,MAAM,EAAA;QACpB,MAAMI,gBAAAA,GAAmBJ,MAAAA,CAAOK,GAAG,CAAC,mBAAA,CAAA;;QAGpC,MAAMC,OAAAA,GAAU,MAAMF,gBAAAA,CAAiBG,cAAc,EAAA;AAErD,QAAA,IAAID,OAAAA,EAAS;YACX,MAAME,KAAAA,GAAQ,MAAMJ,gBAAAA,CAAiBK,WAAW,EAAA;YAChDT,MAAAA,CAAOU,GAAG,CAACC,IAAI,CAAC,CAAC,4CAA4C,EAAEH,KAAAA,CAAM,gBAAgB,CAAC,CAAA;AACxF,QAAA;AACF,IAAA;AACF,CAAA,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,eAAO,MAAM,SAAS,EAAE,QAAQ,EAU/B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,eAAO,MAAM,SAAS,EAAE,QAAQ,EAW/B,CAAC"}
@@ -2,6 +2,7 @@
2
2
 
3
3
  var admin = require('./admin.js');
4
4
  var ai = require('./ai.js');
5
+ var contentStructure = require('./content-structure.js');
5
6
  var coreStore = require('./coreStore.js');
6
7
  var cron = require('./cron.js');
7
8
  var mcp = require('./mcp.js');
@@ -14,6 +15,7 @@ const providers = [
14
15
  registries,
15
16
  admin,
16
17
  ai,
18
+ contentStructure,
17
19
  coreStore,
18
20
  sessionManager,
19
21
  webhooks,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/providers/index.ts"],"sourcesContent":["import admin from './admin';\nimport ai from './ai';\nimport coreStore from './coreStore';\nimport cron from './cron';\nimport mcp from './mcp';\nimport registries from './registries';\nimport sessionManager from './session-manager';\nimport telemetry from './telemetry';\nimport webhooks from './webhooks';\n\nimport type { Provider } from './provider';\n\nexport const providers: Provider[] = [\n registries,\n admin,\n ai,\n coreStore,\n sessionManager,\n webhooks,\n telemetry,\n cron,\n mcp,\n];\n"],"names":["providers","registries","admin","ai","coreStore","sessionManager","webhooks","telemetry","cron","mcp"],"mappings":";;;;;;;;;;;;MAYaA,SAAAA,GAAwB;AACnCC,IAAAA,UAAAA;AACAC,IAAAA,KAAAA;AACAC,IAAAA,EAAAA;AACAC,IAAAA,SAAAA;AACAC,IAAAA,cAAAA;AACAC,IAAAA,QAAAA;AACAC,IAAAA,SAAAA;AACAC,IAAAA,IAAAA;AACAC,IAAAA;;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/providers/index.ts"],"sourcesContent":["import admin from './admin';\nimport ai from './ai';\nimport contentStructure from './content-structure';\nimport coreStore from './coreStore';\nimport cron from './cron';\nimport mcp from './mcp';\nimport registries from './registries';\nimport sessionManager from './session-manager';\nimport telemetry from './telemetry';\nimport webhooks from './webhooks';\n\nimport type { Provider } from './provider';\n\nexport const providers: Provider[] = [\n registries,\n admin,\n ai,\n contentStructure,\n coreStore,\n sessionManager,\n webhooks,\n telemetry,\n cron,\n mcp,\n];\n"],"names":["providers","registries","admin","ai","contentStructure","coreStore","sessionManager","webhooks","telemetry","cron","mcp"],"mappings":";;;;;;;;;;;;;MAaaA,SAAAA,GAAwB;AACnCC,IAAAA,UAAAA;AACAC,IAAAA,KAAAA;AACAC,IAAAA,EAAAA;AACAC,IAAAA,gBAAAA;AACAC,IAAAA,SAAAA;AACAC,IAAAA,cAAAA;AACAC,IAAAA,QAAAA;AACAC,IAAAA,SAAAA;AACAC,IAAAA,IAAAA;AACAC,IAAAA;;;;;"}
@@ -1,5 +1,6 @@
1
1
  import admin from './admin.mjs';
2
2
  import ai from './ai.mjs';
3
+ import contentStructure from './content-structure.mjs';
3
4
  import coreStore from './coreStore.mjs';
4
5
  import cron from './cron.mjs';
5
6
  import mcp from './mcp.mjs';
@@ -12,6 +13,7 @@ const providers = [
12
13
  registries,
13
14
  admin,
14
15
  ai,
16
+ contentStructure,
15
17
  coreStore,
16
18
  sessionManager,
17
19
  webhooks,
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/providers/index.ts"],"sourcesContent":["import admin from './admin';\nimport ai from './ai';\nimport coreStore from './coreStore';\nimport cron from './cron';\nimport mcp from './mcp';\nimport registries from './registries';\nimport sessionManager from './session-manager';\nimport telemetry from './telemetry';\nimport webhooks from './webhooks';\n\nimport type { Provider } from './provider';\n\nexport const providers: Provider[] = [\n registries,\n admin,\n ai,\n coreStore,\n sessionManager,\n webhooks,\n telemetry,\n cron,\n mcp,\n];\n"],"names":["providers","registries","admin","ai","coreStore","sessionManager","webhooks","telemetry","cron","mcp"],"mappings":";;;;;;;;;;MAYaA,SAAAA,GAAwB;AACnCC,IAAAA,UAAAA;AACAC,IAAAA,KAAAA;AACAC,IAAAA,EAAAA;AACAC,IAAAA,SAAAA;AACAC,IAAAA,cAAAA;AACAC,IAAAA,QAAAA;AACAC,IAAAA,SAAAA;AACAC,IAAAA,IAAAA;AACAC,IAAAA;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/providers/index.ts"],"sourcesContent":["import admin from './admin';\nimport ai from './ai';\nimport contentStructure from './content-structure';\nimport coreStore from './coreStore';\nimport cron from './cron';\nimport mcp from './mcp';\nimport registries from './registries';\nimport sessionManager from './session-manager';\nimport telemetry from './telemetry';\nimport webhooks from './webhooks';\n\nimport type { Provider } from './provider';\n\nexport const providers: Provider[] = [\n registries,\n admin,\n ai,\n contentStructure,\n coreStore,\n sessionManager,\n webhooks,\n telemetry,\n cron,\n mcp,\n];\n"],"names":["providers","registries","admin","ai","contentStructure","coreStore","sessionManager","webhooks","telemetry","cron","mcp"],"mappings":";;;;;;;;;;;MAaaA,SAAAA,GAAwB;AACnCC,IAAAA,UAAAA;AACAC,IAAAA,KAAAA;AACAC,IAAAA,EAAAA;AACAC,IAAAA,gBAAAA;AACAC,IAAAA,SAAAA;AACAC,IAAAA,cAAAA;AACAC,IAAAA,QAAAA;AACAC,IAAAA,SAAAA;AACAC,IAAAA,IAAAA;AACAC,IAAAA;;;;;"}
@@ -4,10 +4,22 @@ interface EncodingInfo {
4
4
  data: any;
5
5
  schema: Struct.Schema;
6
6
  }
7
+ type BlocksEncodeMetadata = Omit<FieldContentSourceMap, 'path' | 'type'> & {
8
+ fieldPath: string;
9
+ };
10
+ type EncodeFieldFn = (text: string, metadata: FieldContentSourceMap) => string;
11
+ /**
12
+ * Pure transformation over a blocks AST. Injects one stega marker per visual block
13
+ * (first text leaf, or image alt text) using the blocks field path for all markers.
14
+ * Code blocks are skipped entirely.
15
+ */
16
+ declare const encodeBlocks: (blocks: unknown, metadata: BlocksEncodeMetadata, encodeField: EncodeFieldFn) => unknown;
7
17
  declare const createContentSourceMapsService: (strapi: Core.Strapi) => {
8
- encodeField(text: string, { kind, model, documentId, type, path, locale }: FieldContentSourceMap): string;
18
+ encodeField(text: string, { kind, model, documentId, type, path, locale, fieldPath }: FieldContentSourceMap): string;
19
+ encodeBlocks(blocks: unknown, metadata: BlocksEncodeMetadata): unknown;
9
20
  encodeEntry({ data, schema }: EncodingInfo): Promise<any>;
10
21
  encodeSourceMaps({ data, schema }: EncodingInfo): Promise<any>;
11
22
  };
12
- export { createContentSourceMapsService };
23
+ export { createContentSourceMapsService, encodeBlocks };
24
+ export type { BlocksEncodeMetadata, EncodeFieldFn };
13
25
  //# sourceMappingURL=content-source-maps.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"content-source-maps.d.ts","sourceRoot":"","sources":["../../src/services/content-source-maps.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAO,MAAM,eAAe,CAAC;AAEvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAwCxE,UAAU,YAAY;IACpB,IAAI,EAAE,GAAG,CAAC;IACV,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;CACvB;AAMD,QAAA,MAAM,8BAA8B,GAAI,QAAQ,IAAI,CAAC,MAAM;sBAG/C,MAAM,mDACqC,qBAAqB;kCAiCpC,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;uCA6CtB,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;CAmBvE,CAAC;AAEF,OAAO,EAAE,8BAA8B,EAAE,CAAC"}
1
+ {"version":3,"file":"content-source-maps.d.ts","sourceRoot":"","sources":["../../src/services/content-source-maps.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAO,MAAM,eAAe,CAAC;AAEvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AA0CxE,UAAU,YAAY;IACpB,IAAI,EAAE,GAAG,CAAC;IACV,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;CACvB;AAED,KAAK,oBAAoB,GAAG,IAAI,CAAC,qBAAqB,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjG,KAAK,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,qBAAqB,KAAK,MAAM,CAAC;AA4G/E;;;;GAIG;AACH,QAAA,MAAM,YAAY,GAChB,QAAQ,OAAO,EACf,UAAU,oBAAoB,EAC9B,aAAa,aAAa,KACzB,OA0BF,CAAC;AAEF,QAAA,MAAM,8BAA8B,GAAI,QAAQ,IAAI,CAAC,MAAM;sBAG/C,MAAM,8DACgD,qBAAqB;yBAoC9D,OAAO,YAAY,oBAAoB,GAAG,OAAO;kCAIlC,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;uCA4DtB,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC;CAmBvE,CAAC;AAEF,OAAO,EAAE,8BAA8B,EAAE,YAAY,EAAE,CAAC;AACxD,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,CAAC"}