@strapi/core 0.0.0-experimental.a28002c793bc4de2a8b3c6c5b9c2336c5a6db7a9 → 0.0.0-experimental.a2a709217c0915a7aee8565a2ee2ec99a61a3143

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.

Potentially problematic release.


This version of @strapi/core might be problematic. Click here for more details.

Files changed (785) hide show
  1. package/dist/Strapi.d.ts.map +1 -1
  2. package/dist/Strapi.js +428 -408
  3. package/dist/Strapi.js.map +1 -1
  4. package/dist/Strapi.mjs +428 -408
  5. package/dist/Strapi.mjs.map +1 -1
  6. package/dist/compile.js +23 -14
  7. package/dist/compile.js.map +1 -1
  8. package/dist/compile.mjs +22 -14
  9. package/dist/compile.mjs.map +1 -1
  10. package/dist/configuration/config-loader.js +110 -96
  11. package/dist/configuration/config-loader.js.map +1 -1
  12. package/dist/configuration/config-loader.mjs +109 -95
  13. package/dist/configuration/config-loader.mjs.map +1 -1
  14. package/dist/configuration/get-dirs.js +31 -29
  15. package/dist/configuration/get-dirs.js.map +1 -1
  16. package/dist/configuration/get-dirs.mjs +30 -30
  17. package/dist/configuration/get-dirs.mjs.map +1 -1
  18. package/dist/configuration/index.d.ts +1 -0
  19. package/dist/configuration/index.d.ts.map +1 -1
  20. package/dist/configuration/index.js +85 -78
  21. package/dist/configuration/index.js.map +1 -1
  22. package/dist/configuration/index.mjs +84 -74
  23. package/dist/configuration/index.mjs.map +1 -1
  24. package/dist/configuration/urls.d.ts.map +1 -1
  25. package/dist/configuration/urls.js +74 -61
  26. package/dist/configuration/urls.js.map +1 -1
  27. package/dist/configuration/urls.mjs +73 -62
  28. package/dist/configuration/urls.mjs.map +1 -1
  29. package/dist/container.js +27 -23
  30. package/dist/container.js.map +1 -1
  31. package/dist/container.mjs +26 -24
  32. package/dist/container.mjs.map +1 -1
  33. package/dist/core-api/controller/collection-type.js +77 -76
  34. package/dist/core-api/controller/collection-type.js.map +1 -1
  35. package/dist/core-api/controller/collection-type.mjs +76 -77
  36. package/dist/core-api/controller/collection-type.mjs.map +1 -1
  37. package/dist/core-api/controller/index.js +63 -48
  38. package/dist/core-api/controller/index.js.map +1 -1
  39. package/dist/core-api/controller/index.mjs +62 -49
  40. package/dist/core-api/controller/index.mjs.map +1 -1
  41. package/dist/core-api/controller/single-type.js +41 -40
  42. package/dist/core-api/controller/single-type.js.map +1 -1
  43. package/dist/core-api/controller/single-type.mjs +40 -41
  44. package/dist/core-api/controller/single-type.mjs.map +1 -1
  45. package/dist/core-api/controller/transform.js +72 -63
  46. package/dist/core-api/controller/transform.js.map +1 -1
  47. package/dist/core-api/controller/transform.mjs +71 -64
  48. package/dist/core-api/controller/transform.mjs.map +1 -1
  49. package/dist/core-api/routes/index.d.ts +4 -22
  50. package/dist/core-api/routes/index.d.ts.map +1 -1
  51. package/dist/core-api/routes/index.js +205 -61
  52. package/dist/core-api/routes/index.js.map +1 -1
  53. package/dist/core-api/routes/index.mjs +185 -62
  54. package/dist/core-api/routes/index.mjs.map +1 -1
  55. package/dist/core-api/routes/validation/attributes.d.ts +244 -0
  56. package/dist/core-api/routes/validation/attributes.d.ts.map +1 -0
  57. package/dist/core-api/routes/validation/attributes.js +560 -0
  58. package/dist/core-api/routes/validation/attributes.js.map +1 -0
  59. package/dist/core-api/routes/validation/attributes.mjs +521 -0
  60. package/dist/core-api/routes/validation/attributes.mjs.map +1 -0
  61. package/dist/core-api/routes/validation/common.d.ts +105 -0
  62. package/dist/core-api/routes/validation/common.d.ts.map +1 -0
  63. package/dist/core-api/routes/validation/common.js +116 -0
  64. package/dist/core-api/routes/validation/common.js.map +1 -0
  65. package/dist/core-api/routes/validation/common.mjs +95 -0
  66. package/dist/core-api/routes/validation/common.mjs.map +1 -0
  67. package/dist/core-api/routes/validation/component.d.ts +34 -0
  68. package/dist/core-api/routes/validation/component.d.ts.map +1 -0
  69. package/dist/core-api/routes/validation/component.js +45 -0
  70. package/dist/core-api/routes/validation/component.js.map +1 -0
  71. package/dist/core-api/routes/validation/component.mjs +43 -0
  72. package/dist/core-api/routes/validation/component.mjs.map +1 -0
  73. package/dist/core-api/routes/validation/constants.d.ts +8 -0
  74. package/dist/core-api/routes/validation/constants.d.ts.map +1 -0
  75. package/dist/core-api/routes/validation/constants.js +18 -0
  76. package/dist/core-api/routes/validation/constants.js.map +1 -0
  77. package/dist/core-api/routes/validation/constants.mjs +16 -0
  78. package/dist/core-api/routes/validation/constants.mjs.map +1 -0
  79. package/dist/core-api/routes/validation/content-type.d.ts +128 -0
  80. package/dist/core-api/routes/validation/content-type.d.ts.map +1 -0
  81. package/dist/core-api/routes/validation/content-type.js +201 -0
  82. package/dist/core-api/routes/validation/content-type.js.map +1 -0
  83. package/dist/core-api/routes/validation/content-type.mjs +180 -0
  84. package/dist/core-api/routes/validation/content-type.mjs.map +1 -0
  85. package/dist/core-api/routes/validation/index.d.ts +5 -0
  86. package/dist/core-api/routes/validation/index.d.ts.map +1 -0
  87. package/dist/core-api/routes/validation/mappers.d.ts +105 -0
  88. package/dist/core-api/routes/validation/mappers.d.ts.map +1 -0
  89. package/dist/core-api/routes/validation/mappers.js +238 -0
  90. package/dist/core-api/routes/validation/mappers.js.map +1 -0
  91. package/dist/core-api/routes/validation/mappers.mjs +214 -0
  92. package/dist/core-api/routes/validation/mappers.mjs.map +1 -0
  93. package/dist/core-api/routes/validation/utils.d.ts +47 -0
  94. package/dist/core-api/routes/validation/utils.d.ts.map +1 -0
  95. package/dist/core-api/routes/validation/utils.js +112 -0
  96. package/dist/core-api/routes/validation/utils.js.map +1 -0
  97. package/dist/core-api/routes/validation/utils.mjs +90 -0
  98. package/dist/core-api/routes/validation/utils.mjs.map +1 -0
  99. package/dist/core-api/service/collection-type.js +73 -60
  100. package/dist/core-api/service/collection-type.js.map +1 -1
  101. package/dist/core-api/service/collection-type.mjs +72 -62
  102. package/dist/core-api/service/collection-type.mjs.map +1 -1
  103. package/dist/core-api/service/core-service.js +9 -8
  104. package/dist/core-api/service/core-service.js.map +1 -1
  105. package/dist/core-api/service/core-service.mjs +8 -9
  106. package/dist/core-api/service/core-service.mjs.map +1 -1
  107. package/dist/core-api/service/index.js +13 -13
  108. package/dist/core-api/service/index.js.map +1 -1
  109. package/dist/core-api/service/index.mjs +12 -14
  110. package/dist/core-api/service/index.mjs.map +1 -1
  111. package/dist/core-api/service/pagination.js +69 -43
  112. package/dist/core-api/service/pagination.js.map +1 -1
  113. package/dist/core-api/service/pagination.mjs +68 -47
  114. package/dist/core-api/service/pagination.mjs.map +1 -1
  115. package/dist/core-api/service/single-type.js +43 -38
  116. package/dist/core-api/service/single-type.js.map +1 -1
  117. package/dist/core-api/service/single-type.mjs +42 -40
  118. package/dist/core-api/service/single-type.mjs.map +1 -1
  119. package/dist/domain/content-type/index.d.ts.map +1 -1
  120. package/dist/domain/content-type/index.js +110 -99
  121. package/dist/domain/content-type/index.js.map +1 -1
  122. package/dist/domain/content-type/index.mjs +109 -99
  123. package/dist/domain/content-type/index.mjs.map +1 -1
  124. package/dist/domain/content-type/validator.js +84 -69
  125. package/dist/domain/content-type/validator.js.map +1 -1
  126. package/dist/domain/content-type/validator.mjs +83 -68
  127. package/dist/domain/content-type/validator.mjs.map +1 -1
  128. package/dist/domain/module/index.d.ts.map +1 -1
  129. package/dist/domain/module/index.js +112 -100
  130. package/dist/domain/module/index.js.map +1 -1
  131. package/dist/domain/module/index.mjs +111 -99
  132. package/dist/domain/module/index.mjs.map +1 -1
  133. package/dist/domain/module/validation.js +25 -20
  134. package/dist/domain/module/validation.js.map +1 -1
  135. package/dist/domain/module/validation.mjs +24 -21
  136. package/dist/domain/module/validation.mjs.map +1 -1
  137. package/dist/ee/index.d.ts +7 -0
  138. package/dist/ee/index.d.ts.map +1 -1
  139. package/dist/ee/index.js +197 -137
  140. package/dist/ee/index.js.map +1 -1
  141. package/dist/ee/index.mjs +196 -139
  142. package/dist/ee/index.mjs.map +1 -1
  143. package/dist/ee/license.d.ts +3 -1
  144. package/dist/ee/license.d.ts.map +1 -1
  145. package/dist/ee/license.js +105 -75
  146. package/dist/ee/license.js.map +1 -1
  147. package/dist/ee/license.mjs +103 -76
  148. package/dist/ee/license.mjs.map +1 -1
  149. package/dist/factories.d.ts +3 -1
  150. package/dist/factories.d.ts.map +1 -1
  151. package/dist/factories.js +80 -67
  152. package/dist/factories.js.map +1 -1
  153. package/dist/factories.mjs +77 -70
  154. package/dist/factories.mjs.map +1 -1
  155. package/dist/index.js +29 -26
  156. package/dist/index.js.map +1 -1
  157. package/dist/index.mjs +29 -29
  158. package/dist/index.mjs.map +1 -1
  159. package/dist/loaders/admin.d.ts.map +1 -1
  160. package/dist/loaders/admin.js +21 -20
  161. package/dist/loaders/admin.js.map +1 -1
  162. package/dist/loaders/admin.mjs +20 -20
  163. package/dist/loaders/admin.mjs.map +1 -1
  164. package/dist/loaders/apis.js +143 -120
  165. package/dist/loaders/apis.js.map +1 -1
  166. package/dist/loaders/apis.mjs +142 -119
  167. package/dist/loaders/apis.mjs.map +1 -1
  168. package/dist/loaders/components.js +33 -34
  169. package/dist/loaders/components.js.map +1 -1
  170. package/dist/loaders/components.mjs +32 -34
  171. package/dist/loaders/components.mjs.map +1 -1
  172. package/dist/loaders/index.js +22 -20
  173. package/dist/loaders/index.js.map +1 -1
  174. package/dist/loaders/index.mjs +21 -21
  175. package/dist/loaders/index.mjs.map +1 -1
  176. package/dist/loaders/middlewares.js +29 -25
  177. package/dist/loaders/middlewares.js.map +1 -1
  178. package/dist/loaders/middlewares.mjs +28 -25
  179. package/dist/loaders/middlewares.mjs.map +1 -1
  180. package/dist/loaders/plugins/get-enabled-plugins.js +126 -131
  181. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
  182. package/dist/loaders/plugins/get-enabled-plugins.mjs +125 -108
  183. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
  184. package/dist/loaders/plugins/get-user-plugins-config.js +25 -24
  185. package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -1
  186. package/dist/loaders/plugins/get-user-plugins-config.mjs +24 -23
  187. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -1
  188. package/dist/loaders/plugins/index.js +132 -121
  189. package/dist/loaders/plugins/index.js.map +1 -1
  190. package/dist/loaders/plugins/index.mjs +121 -112
  191. package/dist/loaders/plugins/index.mjs.map +1 -1
  192. package/dist/loaders/policies.js +24 -20
  193. package/dist/loaders/policies.js.map +1 -1
  194. package/dist/loaders/policies.mjs +23 -20
  195. package/dist/loaders/policies.mjs.map +1 -1
  196. package/dist/loaders/sanitizers.js +10 -4
  197. package/dist/loaders/sanitizers.js.map +1 -1
  198. package/dist/loaders/sanitizers.mjs +9 -6
  199. package/dist/loaders/sanitizers.mjs.map +1 -1
  200. package/dist/loaders/src-index.js +35 -27
  201. package/dist/loaders/src-index.js.map +1 -1
  202. package/dist/loaders/src-index.mjs +34 -29
  203. package/dist/loaders/src-index.mjs.map +1 -1
  204. package/dist/loaders/validators.js +9 -4
  205. package/dist/loaders/validators.js.map +1 -1
  206. package/dist/loaders/validators.mjs +8 -6
  207. package/dist/loaders/validators.mjs.map +1 -1
  208. package/dist/middlewares/body.d.ts.map +1 -1
  209. package/dist/middlewares/body.js +58 -54
  210. package/dist/middlewares/body.js.map +1 -1
  211. package/dist/middlewares/body.mjs +57 -51
  212. package/dist/middlewares/body.mjs.map +1 -1
  213. package/dist/middlewares/compression.js +6 -6
  214. package/dist/middlewares/compression.js.map +1 -1
  215. package/dist/middlewares/compression.mjs +5 -5
  216. package/dist/middlewares/compression.mjs.map +1 -1
  217. package/dist/middlewares/cors.d.ts +9 -1
  218. package/dist/middlewares/cors.d.ts.map +1 -1
  219. package/dist/middlewares/cors.js +81 -48
  220. package/dist/middlewares/cors.js.map +1 -1
  221. package/dist/middlewares/cors.mjs +78 -46
  222. package/dist/middlewares/cors.mjs.map +1 -1
  223. package/dist/middlewares/errors.js +32 -30
  224. package/dist/middlewares/errors.js.map +1 -1
  225. package/dist/middlewares/errors.mjs +31 -31
  226. package/dist/middlewares/errors.mjs.map +1 -1
  227. package/dist/middlewares/favicon.js +27 -17
  228. package/dist/middlewares/favicon.js.map +1 -1
  229. package/dist/middlewares/favicon.mjs +26 -16
  230. package/dist/middlewares/favicon.mjs.map +1 -1
  231. package/dist/middlewares/index.js +32 -30
  232. package/dist/middlewares/index.js.map +1 -1
  233. package/dist/middlewares/index.mjs +31 -31
  234. package/dist/middlewares/index.mjs.map +1 -1
  235. package/dist/middlewares/ip.js +6 -6
  236. package/dist/middlewares/ip.js.map +1 -1
  237. package/dist/middlewares/ip.mjs +5 -5
  238. package/dist/middlewares/ip.mjs.map +1 -1
  239. package/dist/middlewares/logger.js +10 -9
  240. package/dist/middlewares/logger.js.map +1 -1
  241. package/dist/middlewares/logger.mjs +9 -10
  242. package/dist/middlewares/logger.mjs.map +1 -1
  243. package/dist/middlewares/powered-by.js +13 -9
  244. package/dist/middlewares/powered-by.js.map +1 -1
  245. package/dist/middlewares/powered-by.mjs +12 -10
  246. package/dist/middlewares/powered-by.mjs.map +1 -1
  247. package/dist/middlewares/public.js +33 -29
  248. package/dist/middlewares/public.js.map +1 -1
  249. package/dist/middlewares/public.mjs +32 -28
  250. package/dist/middlewares/public.mjs.map +1 -1
  251. package/dist/middlewares/query.js +35 -32
  252. package/dist/middlewares/query.js.map +1 -1
  253. package/dist/middlewares/query.mjs +34 -31
  254. package/dist/middlewares/query.mjs.map +1 -1
  255. package/dist/middlewares/response-time.js +10 -9
  256. package/dist/middlewares/response-time.js.map +1 -1
  257. package/dist/middlewares/response-time.mjs +9 -10
  258. package/dist/middlewares/response-time.mjs.map +1 -1
  259. package/dist/middlewares/responses.js +14 -12
  260. package/dist/middlewares/responses.js.map +1 -1
  261. package/dist/middlewares/responses.mjs +13 -13
  262. package/dist/middlewares/responses.mjs.map +1 -1
  263. package/dist/middlewares/security.js +109 -71
  264. package/dist/middlewares/security.js.map +1 -1
  265. package/dist/middlewares/security.mjs +108 -70
  266. package/dist/middlewares/security.mjs.map +1 -1
  267. package/dist/middlewares/session.js +26 -25
  268. package/dist/middlewares/session.js.map +1 -1
  269. package/dist/middlewares/session.mjs +25 -24
  270. package/dist/middlewares/session.mjs.map +1 -1
  271. package/dist/migrations/database/5.0.0-discard-drafts.js +152 -93
  272. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -1
  273. package/dist/migrations/database/5.0.0-discard-drafts.mjs +151 -95
  274. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -1
  275. package/dist/migrations/draft-publish.d.ts +1 -1
  276. package/dist/migrations/draft-publish.d.ts.map +1 -1
  277. package/dist/migrations/draft-publish.js +61 -34
  278. package/dist/migrations/draft-publish.js.map +1 -1
  279. package/dist/migrations/draft-publish.mjs +60 -36
  280. package/dist/migrations/draft-publish.mjs.map +1 -1
  281. package/dist/migrations/first-published-at.d.ts +4 -0
  282. package/dist/migrations/first-published-at.d.ts.map +1 -0
  283. package/dist/migrations/first-published-at.js +51 -0
  284. package/dist/migrations/first-published-at.js.map +1 -0
  285. package/dist/migrations/first-published-at.mjs +49 -0
  286. package/dist/migrations/first-published-at.mjs.map +1 -0
  287. package/dist/migrations/i18n.js +62 -45
  288. package/dist/migrations/i18n.js.map +1 -1
  289. package/dist/migrations/i18n.mjs +61 -47
  290. package/dist/migrations/i18n.mjs.map +1 -1
  291. package/dist/migrations/index.d.ts.map +1 -1
  292. package/dist/migrations/index.js +29 -10
  293. package/dist/migrations/index.js.map +1 -1
  294. package/dist/migrations/index.mjs +28 -12
  295. package/dist/migrations/index.mjs.map +1 -1
  296. package/dist/package.json.js +185 -0
  297. package/dist/package.json.js.map +1 -0
  298. package/dist/package.json.mjs +162 -0
  299. package/dist/package.json.mjs.map +1 -0
  300. package/dist/providers/admin.js +27 -17
  301. package/dist/providers/admin.js.map +1 -1
  302. package/dist/providers/admin.mjs +26 -19
  303. package/dist/providers/admin.mjs.map +1 -1
  304. package/dist/providers/coreStore.js +13 -8
  305. package/dist/providers/coreStore.js.map +1 -1
  306. package/dist/providers/coreStore.mjs +12 -10
  307. package/dist/providers/coreStore.mjs.map +1 -1
  308. package/dist/providers/cron.js +19 -16
  309. package/dist/providers/cron.js.map +1 -1
  310. package/dist/providers/cron.mjs +18 -18
  311. package/dist/providers/cron.mjs.map +1 -1
  312. package/dist/providers/index.js +18 -9
  313. package/dist/providers/index.js.map +1 -1
  314. package/dist/providers/index.mjs +17 -10
  315. package/dist/providers/index.mjs.map +1 -1
  316. package/dist/providers/provider.js +4 -3
  317. package/dist/providers/provider.js.map +1 -1
  318. package/dist/providers/provider.mjs +3 -4
  319. package/dist/providers/provider.mjs.map +1 -1
  320. package/dist/providers/registries.js +37 -32
  321. package/dist/providers/registries.js.map +1 -1
  322. package/dist/providers/registries.mjs +36 -34
  323. package/dist/providers/registries.mjs.map +1 -1
  324. package/dist/providers/telemetry.js +19 -16
  325. package/dist/providers/telemetry.js.map +1 -1
  326. package/dist/providers/telemetry.mjs +18 -18
  327. package/dist/providers/telemetry.mjs.map +1 -1
  328. package/dist/providers/webhooks.js +28 -26
  329. package/dist/providers/webhooks.js.map +1 -1
  330. package/dist/providers/webhooks.mjs +27 -28
  331. package/dist/providers/webhooks.mjs.map +1 -1
  332. package/dist/registries/apis.js +23 -20
  333. package/dist/registries/apis.js.map +1 -1
  334. package/dist/registries/apis.mjs +22 -22
  335. package/dist/registries/apis.mjs.map +1 -1
  336. package/dist/registries/components.js +35 -37
  337. package/dist/registries/components.js.map +1 -1
  338. package/dist/registries/components.mjs +34 -39
  339. package/dist/registries/components.mjs.map +1 -1
  340. package/dist/registries/content-types.js +54 -59
  341. package/dist/registries/content-types.js.map +1 -1
  342. package/dist/registries/content-types.mjs +53 -61
  343. package/dist/registries/content-types.mjs.map +1 -1
  344. package/dist/registries/controllers.js +70 -71
  345. package/dist/registries/controllers.js.map +1 -1
  346. package/dist/registries/controllers.mjs +69 -73
  347. package/dist/registries/controllers.mjs.map +1 -1
  348. package/dist/registries/custom-fields.js +75 -65
  349. package/dist/registries/custom-fields.js.map +1 -1
  350. package/dist/registries/custom-fields.mjs +74 -67
  351. package/dist/registries/custom-fields.mjs.map +1 -1
  352. package/dist/registries/hooks.js +46 -49
  353. package/dist/registries/hooks.js.map +1 -1
  354. package/dist/registries/hooks.mjs +45 -51
  355. package/dist/registries/hooks.mjs.map +1 -1
  356. package/dist/registries/middlewares.js +49 -51
  357. package/dist/registries/middlewares.js.map +1 -1
  358. package/dist/registries/middlewares.mjs +48 -53
  359. package/dist/registries/middlewares.mjs.map +1 -1
  360. package/dist/registries/models.js +14 -13
  361. package/dist/registries/models.js.map +1 -1
  362. package/dist/registries/models.mjs +13 -14
  363. package/dist/registries/models.mjs.map +1 -1
  364. package/dist/registries/modules.js +39 -36
  365. package/dist/registries/modules.js.map +1 -1
  366. package/dist/registries/modules.mjs +38 -38
  367. package/dist/registries/modules.mjs.map +1 -1
  368. package/dist/registries/namespace.js +21 -20
  369. package/dist/registries/namespace.js.map +1 -1
  370. package/dist/registries/namespace.mjs +20 -23
  371. package/dist/registries/namespace.mjs.map +1 -1
  372. package/dist/registries/plugins.js +23 -20
  373. package/dist/registries/plugins.js.map +1 -1
  374. package/dist/registries/plugins.mjs +22 -22
  375. package/dist/registries/plugins.mjs.map +1 -1
  376. package/dist/registries/policies.js +103 -96
  377. package/dist/registries/policies.js.map +1 -1
  378. package/dist/registries/policies.mjs +102 -98
  379. package/dist/registries/policies.mjs.map +1 -1
  380. package/dist/registries/sanitizers.js +23 -22
  381. package/dist/registries/sanitizers.js.map +1 -1
  382. package/dist/registries/sanitizers.mjs +22 -22
  383. package/dist/registries/sanitizers.mjs.map +1 -1
  384. package/dist/registries/services.js +71 -71
  385. package/dist/registries/services.js.map +1 -1
  386. package/dist/registries/services.mjs +70 -73
  387. package/dist/registries/services.mjs.map +1 -1
  388. package/dist/registries/validators.js +23 -22
  389. package/dist/registries/validators.js.map +1 -1
  390. package/dist/registries/validators.mjs +22 -22
  391. package/dist/registries/validators.mjs.map +1 -1
  392. package/dist/services/auth/index.js +74 -74
  393. package/dist/services/auth/index.js.map +1 -1
  394. package/dist/services/auth/index.mjs +73 -74
  395. package/dist/services/auth/index.mjs.map +1 -1
  396. package/dist/services/config.js +47 -43
  397. package/dist/services/config.js.map +1 -1
  398. package/dist/services/config.mjs +46 -44
  399. package/dist/services/config.mjs.map +1 -1
  400. package/dist/services/content-api/index.js +80 -79
  401. package/dist/services/content-api/index.js.map +1 -1
  402. package/dist/services/content-api/index.mjs +79 -79
  403. package/dist/services/content-api/index.mjs.map +1 -1
  404. package/dist/services/content-api/permissions/engine.js +8 -5
  405. package/dist/services/content-api/permissions/engine.js.map +1 -1
  406. package/dist/services/content-api/permissions/engine.mjs +7 -5
  407. package/dist/services/content-api/permissions/engine.mjs.map +1 -1
  408. package/dist/services/content-api/permissions/index.js +101 -81
  409. package/dist/services/content-api/permissions/index.js.map +1 -1
  410. package/dist/services/content-api/permissions/index.mjs +100 -81
  411. package/dist/services/content-api/permissions/index.mjs.map +1 -1
  412. package/dist/services/content-api/permissions/providers/action.js +17 -14
  413. package/dist/services/content-api/permissions/providers/action.js.map +1 -1
  414. package/dist/services/content-api/permissions/providers/action.mjs +16 -16
  415. package/dist/services/content-api/permissions/providers/action.mjs.map +1 -1
  416. package/dist/services/content-api/permissions/providers/condition.js +17 -14
  417. package/dist/services/content-api/permissions/providers/condition.js.map +1 -1
  418. package/dist/services/content-api/permissions/providers/condition.mjs +16 -16
  419. package/dist/services/content-api/permissions/providers/condition.mjs.map +1 -1
  420. package/dist/services/core-store.d.ts +2 -2
  421. package/dist/services/core-store.d.ts.map +1 -1
  422. package/dist/services/core-store.js +115 -95
  423. package/dist/services/core-store.js.map +1 -1
  424. package/dist/services/core-store.mjs +114 -97
  425. package/dist/services/core-store.mjs.map +1 -1
  426. package/dist/services/cron.js +74 -64
  427. package/dist/services/cron.js.map +1 -1
  428. package/dist/services/cron.mjs +73 -66
  429. package/dist/services/cron.mjs.map +1 -1
  430. package/dist/services/custom-fields.js +9 -7
  431. package/dist/services/custom-fields.js.map +1 -1
  432. package/dist/services/custom-fields.mjs +8 -9
  433. package/dist/services/custom-fields.mjs.map +1 -1
  434. package/dist/services/document-service/attributes/index.js +23 -18
  435. package/dist/services/document-service/attributes/index.js.map +1 -1
  436. package/dist/services/document-service/attributes/index.mjs +22 -19
  437. package/dist/services/document-service/attributes/index.mjs.map +1 -1
  438. package/dist/services/document-service/attributes/transforms.js +16 -15
  439. package/dist/services/document-service/attributes/transforms.js.map +1 -1
  440. package/dist/services/document-service/attributes/transforms.mjs +15 -15
  441. package/dist/services/document-service/attributes/transforms.mjs.map +1 -1
  442. package/dist/services/document-service/common.js +5 -4
  443. package/dist/services/document-service/common.js.map +1 -1
  444. package/dist/services/document-service/common.mjs +4 -5
  445. package/dist/services/document-service/common.mjs.map +1 -1
  446. package/dist/services/document-service/components.js +255 -257
  447. package/dist/services/document-service/components.js.map +1 -1
  448. package/dist/services/document-service/components.mjs +254 -262
  449. package/dist/services/document-service/components.mjs.map +1 -1
  450. package/dist/services/document-service/draft-and-publish.d.ts +1 -1
  451. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
  452. package/dist/services/document-service/draft-and-publish.js +88 -48
  453. package/dist/services/document-service/draft-and-publish.js.map +1 -1
  454. package/dist/services/document-service/draft-and-publish.mjs +87 -54
  455. package/dist/services/document-service/draft-and-publish.mjs.map +1 -1
  456. package/dist/services/document-service/entries.d.ts.map +1 -1
  457. package/dist/services/document-service/entries.js +151 -91
  458. package/dist/services/document-service/entries.js.map +1 -1
  459. package/dist/services/document-service/entries.mjs +150 -92
  460. package/dist/services/document-service/entries.mjs.map +1 -1
  461. package/dist/services/document-service/events.d.ts +1 -1
  462. package/dist/services/document-service/events.d.ts.map +1 -1
  463. package/dist/services/document-service/events.js +52 -40
  464. package/dist/services/document-service/events.js.map +1 -1
  465. package/dist/services/document-service/events.mjs +51 -41
  466. package/dist/services/document-service/events.mjs.map +1 -1
  467. package/dist/services/document-service/first-published-at.d.ts +7 -0
  468. package/dist/services/document-service/first-published-at.d.ts.map +1 -0
  469. package/dist/services/document-service/first-published-at.js +31 -0
  470. package/dist/services/document-service/first-published-at.js.map +1 -0
  471. package/dist/services/document-service/first-published-at.mjs +28 -0
  472. package/dist/services/document-service/first-published-at.mjs.map +1 -0
  473. package/dist/services/document-service/index.js +53 -33
  474. package/dist/services/document-service/index.js.map +1 -1
  475. package/dist/services/document-service/index.mjs +52 -34
  476. package/dist/services/document-service/index.mjs.map +1 -1
  477. package/dist/services/document-service/internationalization.d.ts +6 -1
  478. package/dist/services/document-service/internationalization.d.ts.map +1 -1
  479. package/dist/services/document-service/internationalization.js +94 -46
  480. package/dist/services/document-service/internationalization.js.map +1 -1
  481. package/dist/services/document-service/internationalization.mjs +92 -50
  482. package/dist/services/document-service/internationalization.mjs.map +1 -1
  483. package/dist/services/document-service/middlewares/errors.js +23 -19
  484. package/dist/services/document-service/middlewares/errors.js.map +1 -1
  485. package/dist/services/document-service/middlewares/errors.mjs +22 -20
  486. package/dist/services/document-service/middlewares/errors.mjs.map +1 -1
  487. package/dist/services/document-service/middlewares/middleware-manager.js +46 -44
  488. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -1
  489. package/dist/services/document-service/middlewares/middleware-manager.mjs +45 -45
  490. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -1
  491. package/dist/services/document-service/params.js +11 -5
  492. package/dist/services/document-service/params.js.map +1 -1
  493. package/dist/services/document-service/params.mjs +10 -6
  494. package/dist/services/document-service/params.mjs.map +1 -1
  495. package/dist/services/document-service/repository.d.ts.map +1 -1
  496. package/dist/services/document-service/repository.js +357 -321
  497. package/dist/services/document-service/repository.js.map +1 -1
  498. package/dist/services/document-service/repository.mjs +356 -322
  499. package/dist/services/document-service/repository.mjs.map +1 -1
  500. package/dist/services/document-service/transform/data.js +22 -12
  501. package/dist/services/document-service/transform/data.js.map +1 -1
  502. package/dist/services/document-service/transform/data.mjs +21 -13
  503. package/dist/services/document-service/transform/data.mjs.map +1 -1
  504. package/dist/services/document-service/transform/fields.js +26 -17
  505. package/dist/services/document-service/transform/fields.js.map +1 -1
  506. package/dist/services/document-service/transform/fields.mjs +25 -18
  507. package/dist/services/document-service/transform/fields.mjs.map +1 -1
  508. package/dist/services/document-service/transform/id-map.d.ts +1 -1
  509. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  510. package/dist/services/document-service/transform/id-map.js +115 -75
  511. package/dist/services/document-service/transform/id-map.js.map +1 -1
  512. package/dist/services/document-service/transform/id-map.mjs +114 -76
  513. package/dist/services/document-service/transform/id-map.mjs.map +1 -1
  514. package/dist/services/document-service/transform/id-transform.d.ts +1 -1
  515. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
  516. package/dist/services/document-service/transform/id-transform.js +37 -29
  517. package/dist/services/document-service/transform/id-transform.js.map +1 -1
  518. package/dist/services/document-service/transform/id-transform.mjs +36 -30
  519. package/dist/services/document-service/transform/id-transform.mjs.map +1 -1
  520. package/dist/services/document-service/transform/populate.js +23 -18
  521. package/dist/services/document-service/transform/populate.js.map +1 -1
  522. package/dist/services/document-service/transform/populate.mjs +22 -19
  523. package/dist/services/document-service/transform/populate.mjs.map +1 -1
  524. package/dist/services/document-service/transform/query.js +11 -6
  525. package/dist/services/document-service/transform/query.js.map +1 -1
  526. package/dist/services/document-service/transform/query.mjs +10 -7
  527. package/dist/services/document-service/transform/query.mjs.map +1 -1
  528. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +1 -1
  529. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  530. package/dist/services/document-service/transform/relations/extract/data-ids.js +70 -54
  531. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
  532. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +69 -55
  533. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
  534. package/dist/services/document-service/transform/relations/transform/data-ids.js +96 -71
  535. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
  536. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +95 -72
  537. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
  538. package/dist/services/document-service/transform/relations/transform/default-locale.js +47 -29
  539. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -1
  540. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +46 -30
  541. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -1
  542. package/dist/services/document-service/transform/relations/utils/dp.d.ts +1 -1
  543. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -1
  544. package/dist/services/document-service/transform/relations/utils/dp.js +52 -26
  545. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -1
  546. package/dist/services/document-service/transform/relations/utils/dp.mjs +51 -27
  547. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -1
  548. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +1 -1
  549. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  550. package/dist/services/document-service/transform/relations/utils/i18n.js +20 -18
  551. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -1
  552. package/dist/services/document-service/transform/relations/utils/i18n.mjs +19 -21
  553. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -1
  554. package/dist/services/document-service/transform/relations/utils/map-relation.js +116 -70
  555. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -1
  556. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +115 -72
  557. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -1
  558. package/dist/services/document-service/utils/bidirectional-relations.d.ts +95 -0
  559. package/dist/services/document-service/utils/bidirectional-relations.d.ts.map +1 -0
  560. package/dist/services/document-service/utils/bidirectional-relations.js +148 -0
  561. package/dist/services/document-service/utils/bidirectional-relations.js.map +1 -0
  562. package/dist/services/document-service/utils/bidirectional-relations.mjs +145 -0
  563. package/dist/services/document-service/utils/bidirectional-relations.mjs.map +1 -0
  564. package/dist/services/document-service/utils/populate.d.ts +1 -1
  565. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  566. package/dist/services/document-service/utils/populate.js +66 -42
  567. package/dist/services/document-service/utils/populate.js.map +1 -1
  568. package/dist/services/document-service/utils/populate.mjs +65 -43
  569. package/dist/services/document-service/utils/populate.mjs.map +1 -1
  570. package/dist/services/document-service/utils/unidirectional-relations.d.ts +1 -1
  571. package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -1
  572. package/dist/services/document-service/utils/unidirectional-relations.js +110 -62
  573. package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -1
  574. package/dist/services/document-service/utils/unidirectional-relations.mjs +109 -64
  575. package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -1
  576. package/dist/services/entity-service/index.js +230 -161
  577. package/dist/services/entity-service/index.js.map +1 -1
  578. package/dist/services/entity-service/index.mjs +229 -160
  579. package/dist/services/entity-service/index.mjs.map +1 -1
  580. package/dist/services/entity-validator/blocks-validator.js +135 -103
  581. package/dist/services/entity-validator/blocks-validator.js.map +1 -1
  582. package/dist/services/entity-validator/blocks-validator.mjs +134 -104
  583. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
  584. package/dist/services/entity-validator/index.d.ts +1 -1
  585. package/dist/services/entity-validator/index.d.ts.map +1 -1
  586. package/dist/services/entity-validator/index.js +370 -366
  587. package/dist/services/entity-validator/index.js.map +1 -1
  588. package/dist/services/entity-validator/index.mjs +366 -363
  589. package/dist/services/entity-validator/index.mjs.map +1 -1
  590. package/dist/services/entity-validator/validators.d.ts +1 -0
  591. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  592. package/dist/services/entity-validator/validators.js +270 -209
  593. package/dist/services/entity-validator/validators.js.map +1 -1
  594. package/dist/services/entity-validator/validators.mjs +269 -215
  595. package/dist/services/entity-validator/validators.mjs.map +1 -1
  596. package/dist/services/errors.js +65 -65
  597. package/dist/services/errors.js.map +1 -1
  598. package/dist/services/errors.mjs +64 -66
  599. package/dist/services/errors.mjs.map +1 -1
  600. package/dist/services/event-hub.js +82 -69
  601. package/dist/services/event-hub.js.map +1 -1
  602. package/dist/services/event-hub.mjs +81 -71
  603. package/dist/services/event-hub.mjs.map +1 -1
  604. package/dist/services/features.js +19 -14
  605. package/dist/services/features.js.map +1 -1
  606. package/dist/services/features.mjs +18 -15
  607. package/dist/services/features.mjs.map +1 -1
  608. package/dist/services/fs.js +41 -40
  609. package/dist/services/fs.js.map +1 -1
  610. package/dist/services/fs.mjs +40 -39
  611. package/dist/services/fs.mjs.map +1 -1
  612. package/dist/services/metrics/admin-user-hash.d.ts.map +1 -1
  613. package/dist/services/metrics/admin-user-hash.js +13 -11
  614. package/dist/services/metrics/admin-user-hash.js.map +1 -1
  615. package/dist/services/metrics/admin-user-hash.mjs +12 -10
  616. package/dist/services/metrics/admin-user-hash.mjs.map +1 -1
  617. package/dist/services/metrics/index.d.ts +1 -1
  618. package/dist/services/metrics/index.d.ts.map +1 -1
  619. package/dist/services/metrics/index.js +47 -39
  620. package/dist/services/metrics/index.js.map +1 -1
  621. package/dist/services/metrics/index.mjs +46 -41
  622. package/dist/services/metrics/index.mjs.map +1 -1
  623. package/dist/services/metrics/is-truthy.js +13 -6
  624. package/dist/services/metrics/is-truthy.js.map +1 -1
  625. package/dist/services/metrics/is-truthy.mjs +12 -6
  626. package/dist/services/metrics/is-truthy.mjs.map +1 -1
  627. package/dist/services/metrics/middleware.js +35 -22
  628. package/dist/services/metrics/middleware.js.map +1 -1
  629. package/dist/services/metrics/middleware.mjs +34 -24
  630. package/dist/services/metrics/middleware.mjs.map +1 -1
  631. package/dist/services/metrics/rate-limiter.js +22 -20
  632. package/dist/services/metrics/rate-limiter.js.map +1 -1
  633. package/dist/services/metrics/rate-limiter.mjs +21 -22
  634. package/dist/services/metrics/rate-limiter.mjs.map +1 -1
  635. package/dist/services/metrics/sender.d.ts.map +1 -1
  636. package/dist/services/metrics/sender.js +78 -69
  637. package/dist/services/metrics/sender.js.map +1 -1
  638. package/dist/services/metrics/sender.mjs +77 -64
  639. package/dist/services/metrics/sender.mjs.map +1 -1
  640. package/dist/services/query-params.js +13 -10
  641. package/dist/services/query-params.js.map +1 -1
  642. package/dist/services/query-params.mjs +12 -12
  643. package/dist/services/query-params.mjs.map +1 -1
  644. package/dist/services/reloader.js +35 -32
  645. package/dist/services/reloader.js.map +1 -1
  646. package/dist/services/reloader.mjs +34 -33
  647. package/dist/services/reloader.mjs.map +1 -1
  648. package/dist/services/request-context.js +11 -8
  649. package/dist/services/request-context.js.map +1 -1
  650. package/dist/services/request-context.mjs +10 -10
  651. package/dist/services/request-context.mjs.map +1 -1
  652. package/dist/services/server/admin-api.js +11 -10
  653. package/dist/services/server/admin-api.js.map +1 -1
  654. package/dist/services/server/admin-api.mjs +10 -11
  655. package/dist/services/server/admin-api.mjs.map +1 -1
  656. package/dist/services/server/api.js +33 -27
  657. package/dist/services/server/api.js.map +1 -1
  658. package/dist/services/server/api.mjs +32 -26
  659. package/dist/services/server/api.mjs.map +1 -1
  660. package/dist/services/server/compose-endpoint.js +116 -105
  661. package/dist/services/server/compose-endpoint.js.map +1 -1
  662. package/dist/services/server/compose-endpoint.mjs +115 -105
  663. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  664. package/dist/services/server/content-api.js +11 -9
  665. package/dist/services/server/content-api.js.map +1 -1
  666. package/dist/services/server/content-api.mjs +10 -10
  667. package/dist/services/server/content-api.mjs.map +1 -1
  668. package/dist/services/server/http-server.js +48 -44
  669. package/dist/services/server/http-server.js.map +1 -1
  670. package/dist/services/server/http-server.mjs +47 -43
  671. package/dist/services/server/http-server.mjs.map +1 -1
  672. package/dist/services/server/index.js +85 -82
  673. package/dist/services/server/index.js.map +1 -1
  674. package/dist/services/server/index.mjs +84 -81
  675. package/dist/services/server/index.mjs.map +1 -1
  676. package/dist/services/server/koa.js +49 -47
  677. package/dist/services/server/koa.js.map +1 -1
  678. package/dist/services/server/koa.mjs +48 -44
  679. package/dist/services/server/koa.mjs.map +1 -1
  680. package/dist/services/server/middleware.js +86 -82
  681. package/dist/services/server/middleware.js.map +1 -1
  682. package/dist/services/server/middleware.mjs +85 -82
  683. package/dist/services/server/middleware.mjs.map +1 -1
  684. package/dist/services/server/policy.js +24 -17
  685. package/dist/services/server/policy.js.map +1 -1
  686. package/dist/services/server/policy.mjs +23 -18
  687. package/dist/services/server/policy.mjs.map +1 -1
  688. package/dist/services/server/register-middlewares.js +68 -61
  689. package/dist/services/server/register-middlewares.js.map +1 -1
  690. package/dist/services/server/register-middlewares.mjs +67 -63
  691. package/dist/services/server/register-middlewares.mjs.map +1 -1
  692. package/dist/services/server/register-routes.js +109 -66
  693. package/dist/services/server/register-routes.js.map +1 -1
  694. package/dist/services/server/register-routes.mjs +108 -66
  695. package/dist/services/server/register-routes.mjs.map +1 -1
  696. package/dist/services/server/routing.d.ts +10 -0
  697. package/dist/services/server/routing.d.ts.map +1 -1
  698. package/dist/services/server/routing.js +100 -81
  699. package/dist/services/server/routing.js.map +1 -1
  700. package/dist/services/server/routing.mjs +99 -81
  701. package/dist/services/server/routing.mjs.map +1 -1
  702. package/dist/services/utils/conditional-fields.d.ts +3 -0
  703. package/dist/services/utils/conditional-fields.d.ts.map +1 -0
  704. package/dist/services/utils/conditional-fields.js +22 -0
  705. package/dist/services/utils/conditional-fields.js.map +1 -0
  706. package/dist/services/utils/conditional-fields.mjs +20 -0
  707. package/dist/services/utils/conditional-fields.mjs.map +1 -0
  708. package/dist/services/utils/dynamic-zones.js +13 -14
  709. package/dist/services/utils/dynamic-zones.js.map +1 -1
  710. package/dist/services/utils/dynamic-zones.mjs +12 -16
  711. package/dist/services/utils/dynamic-zones.mjs.map +1 -1
  712. package/dist/services/webhook-runner.js +124 -122
  713. package/dist/services/webhook-runner.js.map +1 -1
  714. package/dist/services/webhook-runner.mjs +123 -121
  715. package/dist/services/webhook-runner.mjs.map +1 -1
  716. package/dist/services/webhook-store.js +132 -99
  717. package/dist/services/webhook-store.js.map +1 -1
  718. package/dist/services/webhook-store.mjs +131 -101
  719. package/dist/services/webhook-store.mjs.map +1 -1
  720. package/dist/services/worker-queue.js +44 -49
  721. package/dist/services/worker-queue.js.map +1 -1
  722. package/dist/services/worker-queue.mjs +43 -49
  723. package/dist/services/worker-queue.mjs.map +1 -1
  724. package/dist/utils/convert-custom-field-type.js +17 -20
  725. package/dist/utils/convert-custom-field-type.js.map +1 -1
  726. package/dist/utils/convert-custom-field-type.mjs +16 -21
  727. package/dist/utils/convert-custom-field-type.mjs.map +1 -1
  728. package/dist/utils/cron.js +64 -30
  729. package/dist/utils/cron.js.map +1 -1
  730. package/dist/utils/cron.mjs +63 -31
  731. package/dist/utils/cron.mjs.map +1 -1
  732. package/dist/utils/fetch.d.ts +5 -1
  733. package/dist/utils/fetch.d.ts.map +1 -1
  734. package/dist/utils/fetch.js +28 -18
  735. package/dist/utils/fetch.js.map +1 -1
  736. package/dist/utils/fetch.mjs +27 -19
  737. package/dist/utils/fetch.mjs.map +1 -1
  738. package/dist/utils/filepath-to-prop-path.js +20 -28
  739. package/dist/utils/filepath-to-prop-path.js.map +1 -1
  740. package/dist/utils/filepath-to-prop-path.mjs +19 -26
  741. package/dist/utils/filepath-to-prop-path.mjs.map +1 -1
  742. package/dist/utils/is-initialized.js +21 -12
  743. package/dist/utils/is-initialized.js.map +1 -1
  744. package/dist/utils/is-initialized.mjs +20 -13
  745. package/dist/utils/is-initialized.mjs.map +1 -1
  746. package/dist/utils/lifecycles.js +6 -5
  747. package/dist/utils/lifecycles.js.map +1 -1
  748. package/dist/utils/lifecycles.mjs +5 -6
  749. package/dist/utils/lifecycles.mjs.map +1 -1
  750. package/dist/utils/load-config-file.js +40 -38
  751. package/dist/utils/load-config-file.js.map +1 -1
  752. package/dist/utils/load-config-file.mjs +39 -36
  753. package/dist/utils/load-config-file.mjs.map +1 -1
  754. package/dist/utils/load-files.js +40 -34
  755. package/dist/utils/load-files.js.map +1 -1
  756. package/dist/utils/load-files.mjs +39 -31
  757. package/dist/utils/load-files.mjs.map +1 -1
  758. package/dist/utils/open-browser.js +8 -8
  759. package/dist/utils/open-browser.js.map +1 -1
  760. package/dist/utils/open-browser.mjs +7 -7
  761. package/dist/utils/open-browser.mjs.map +1 -1
  762. package/dist/utils/resolve-working-dirs.js +23 -10
  763. package/dist/utils/resolve-working-dirs.js.map +1 -1
  764. package/dist/utils/resolve-working-dirs.mjs +22 -9
  765. package/dist/utils/resolve-working-dirs.mjs.map +1 -1
  766. package/dist/utils/signals.js +20 -14
  767. package/dist/utils/signals.js.map +1 -1
  768. package/dist/utils/signals.mjs +19 -15
  769. package/dist/utils/signals.mjs.map +1 -1
  770. package/dist/utils/startup-logger.js +107 -83
  771. package/dist/utils/startup-logger.js.map +1 -1
  772. package/dist/utils/startup-logger.mjs +106 -80
  773. package/dist/utils/startup-logger.mjs.map +1 -1
  774. package/dist/utils/transform-content-types-to-models.d.ts +197 -0
  775. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  776. package/dist/utils/transform-content-types-to-models.js +350 -261
  777. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  778. package/dist/utils/transform-content-types-to-models.mjs +349 -269
  779. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  780. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  781. package/dist/utils/update-notifier/index.js +68 -73
  782. package/dist/utils/update-notifier/index.js.map +1 -1
  783. package/dist/utils/update-notifier/index.mjs +67 -67
  784. package/dist/utils/update-notifier/index.mjs.map +1 -1
  785. package/package.json +28 -25
@@ -1 +1 @@
1
- {"version":3,"file":"single-type.mjs","sources":["../../../src/core-api/service/single-type.ts"],"sourcesContent":["import type { Struct, Core } from '@strapi/types';\nimport { CoreService } from './core-service';\n\nexport class SingleTypeService extends CoreService implements Core.CoreAPI.Service.SingleType {\n private contentType: Struct.SingleTypeSchema;\n\n constructor(contentType: Struct.SingleTypeSchema) {\n super();\n\n this.contentType = contentType;\n }\n\n async getDocumentId() {\n const { uid } = this.contentType;\n\n return strapi.db\n .query(uid)\n .findOne()\n .then((document) => document?.documentId as string);\n }\n\n async find(params = {}) {\n const { uid } = this.contentType;\n\n return strapi.documents(uid).findFirst(this.getFetchParams(params));\n }\n\n async createOrUpdate(params = {}) {\n const { uid } = this.contentType;\n\n const documentId = await this.getDocumentId();\n\n if (documentId) {\n return strapi.documents(uid).update({\n ...this.getFetchParams(params),\n documentId,\n });\n }\n\n return strapi.documents(uid).create(this.getFetchParams(params));\n }\n\n async delete(params = {}) {\n const { uid } = this.contentType;\n\n const documentId = await this.getDocumentId();\n if (!documentId) return { deletedEntries: 0 };\n\n const { entries } = await strapi.documents(uid).delete({\n ...this.getFetchParams(params),\n documentId,\n });\n\n return { deletedEntries: entries.length };\n }\n}\n\nconst createSingleTypeService = (\n contentType: Struct.SingleTypeSchema\n): Core.CoreAPI.Service.SingleType => {\n return new SingleTypeService(contentType);\n};\n\nexport { createSingleTypeService };\n"],"names":[],"mappings":";AAGO,MAAM,0BAA0B,YAAuD;AAAA,EACpF;AAAA,EAER,YAAY,aAAsC;AAC1C,UAAA;AAEN,SAAK,cAAc;AAAA,EAAA;AAAA,EAGrB,MAAM,gBAAgB;AACd,UAAA,EAAE,QAAQ,KAAK;AAEd,WAAA,OAAO,GACX,MAAM,GAAG,EACT,QAAQ,EACR,KAAK,CAAC,aAAa,UAAU,UAAoB;AAAA,EAAA;AAAA,EAGtD,MAAM,KAAK,SAAS,IAAI;AAChB,UAAA,EAAE,QAAQ,KAAK;AAEd,WAAA,OAAO,UAAU,GAAG,EAAE,UAAU,KAAK,eAAe,MAAM,CAAC;AAAA,EAAA;AAAA,EAGpE,MAAM,eAAe,SAAS,IAAI;AAC1B,UAAA,EAAE,QAAQ,KAAK;AAEf,UAAA,aAAa,MAAM,KAAK,cAAc;AAE5C,QAAI,YAAY;AACd,aAAO,OAAO,UAAU,GAAG,EAAE,OAAO;AAAA,QAClC,GAAG,KAAK,eAAe,MAAM;AAAA,QAC7B;AAAA,MAAA,CACD;AAAA,IAAA;AAGI,WAAA,OAAO,UAAU,GAAG,EAAE,OAAO,KAAK,eAAe,MAAM,CAAC;AAAA,EAAA;AAAA,EAGjE,MAAM,OAAO,SAAS,IAAI;AAClB,UAAA,EAAE,QAAQ,KAAK;AAEf,UAAA,aAAa,MAAM,KAAK,cAAc;AAC5C,QAAI,CAAC,WAAmB,QAAA,EAAE,gBAAgB,EAAE;AAEtC,UAAA,EAAE,YAAY,MAAM,OAAO,UAAU,GAAG,EAAE,OAAO;AAAA,MACrD,GAAG,KAAK,eAAe,MAAM;AAAA,MAC7B;AAAA,IAAA,CACD;AAEM,WAAA,EAAE,gBAAgB,QAAQ,OAAO;AAAA,EAAA;AAE5C;AAEM,MAAA,0BAA0B,CAC9B,gBACoC;AAC7B,SAAA,IAAI,kBAAkB,WAAW;AAC1C;"}
1
+ {"version":3,"file":"single-type.mjs","sources":["../../../src/core-api/service/single-type.ts"],"sourcesContent":["import type { Struct, Core } from '@strapi/types';\nimport { CoreService } from './core-service';\n\nexport class SingleTypeService extends CoreService implements Core.CoreAPI.Service.SingleType {\n private contentType: Struct.SingleTypeSchema;\n\n constructor(contentType: Struct.SingleTypeSchema) {\n super();\n\n this.contentType = contentType;\n }\n\n async getDocumentId() {\n const { uid } = this.contentType;\n\n return strapi.db\n .query(uid)\n .findOne()\n .then((document) => document?.documentId as string);\n }\n\n async find(params = {}) {\n const { uid } = this.contentType;\n\n return strapi.documents(uid).findFirst(this.getFetchParams(params));\n }\n\n async createOrUpdate(params = {}) {\n const { uid } = this.contentType;\n\n const documentId = await this.getDocumentId();\n\n if (documentId) {\n return strapi.documents(uid).update({\n ...this.getFetchParams(params),\n documentId,\n });\n }\n\n return strapi.documents(uid).create(this.getFetchParams(params));\n }\n\n async delete(params = {}) {\n const { uid } = this.contentType;\n\n const documentId = await this.getDocumentId();\n if (!documentId) return { deletedEntries: 0 };\n\n const { entries } = await strapi.documents(uid).delete({\n ...this.getFetchParams(params),\n documentId,\n });\n\n return { deletedEntries: entries.length };\n }\n}\n\nconst createSingleTypeService = (\n contentType: Struct.SingleTypeSchema\n): Core.CoreAPI.Service.SingleType => {\n return new SingleTypeService(contentType);\n};\n\nexport { createSingleTypeService };\n"],"names":["SingleTypeService","CoreService","getDocumentId","uid","contentType","strapi","db","query","findOne","then","document","documentId","find","params","documents","findFirst","getFetchParams","createOrUpdate","update","create","delete","deletedEntries","entries","length","constructor","createSingleTypeService"],"mappings":";;AAGO,MAAMA,iBAA0BC,SAAAA,WAAAA,CAAAA;AASrC,IAAA,MAAMC,aAAgB,GAAA;AACpB,QAAA,MAAM,EAAEC,GAAG,EAAE,GAAG,IAAI,CAACC,WAAW;AAEhC,QAAA,OAAOC,MAAOC,CAAAA,EAAE,CACbC,KAAK,CAACJ,GAAAA,CAAAA,CACNK,OAAO,EAAA,CACPC,IAAI,CAAC,CAACC,QAAAA,GAAaA,QAAUC,EAAAA,UAAAA,CAAAA;AAClC;AAEA,IAAA,MAAMC,IAAKC,CAAAA,MAAAA,GAAS,EAAE,EAAE;AACtB,QAAA,MAAM,EAAEV,GAAG,EAAE,GAAG,IAAI,CAACC,WAAW;QAEhC,OAAOC,MAAAA,CAAOS,SAAS,CAACX,GAAAA,CAAAA,CAAKY,SAAS,CAAC,IAAI,CAACC,cAAc,CAACH,MAAAA,CAAAA,CAAAA;AAC7D;AAEA,IAAA,MAAMI,cAAeJ,CAAAA,MAAAA,GAAS,EAAE,EAAE;AAChC,QAAA,MAAM,EAAEV,GAAG,EAAE,GAAG,IAAI,CAACC,WAAW;AAEhC,QAAA,MAAMO,UAAa,GAAA,MAAM,IAAI,CAACT,aAAa,EAAA;AAE3C,QAAA,IAAIS,UAAY,EAAA;AACd,YAAA,OAAON,MAAOS,CAAAA,SAAS,CAACX,GAAAA,CAAAA,CAAKe,MAAM,CAAC;AAClC,gBAAA,GAAG,IAAI,CAACF,cAAc,CAACH,MAAO,CAAA;AAC9BF,gBAAAA;AACF,aAAA,CAAA;AACF;QAEA,OAAON,MAAAA,CAAOS,SAAS,CAACX,GAAAA,CAAAA,CAAKgB,MAAM,CAAC,IAAI,CAACH,cAAc,CAACH,MAAAA,CAAAA,CAAAA;AAC1D;AAEA,IAAA,MAAMO,MAAOP,CAAAA,MAAAA,GAAS,EAAE,EAAE;AACxB,QAAA,MAAM,EAAEV,GAAG,EAAE,GAAG,IAAI,CAACC,WAAW;AAEhC,QAAA,MAAMO,UAAa,GAAA,MAAM,IAAI,CAACT,aAAa,EAAA;QAC3C,IAAI,CAACS,YAAY,OAAO;YAAEU,cAAgB,EAAA;AAAE,SAAA;QAE5C,MAAM,EAAEC,OAAO,EAAE,GAAG,MAAMjB,OAAOS,SAAS,CAACX,GAAKiB,CAAAA,CAAAA,MAAM,CAAC;AACrD,YAAA,GAAG,IAAI,CAACJ,cAAc,CAACH,MAAO,CAAA;AAC9BF,YAAAA;AACF,SAAA,CAAA;QAEA,OAAO;AAAEU,YAAAA,cAAAA,EAAgBC,QAAQC;AAAO,SAAA;AAC1C;AAhDAC,IAAAA,WAAAA,CAAYpB,WAAoC,CAAE;QAChD,KAAK,EAAA;QAEL,IAAI,CAACA,WAAW,GAAGA,WAAAA;AACrB;AA6CF;AAEA,MAAMqB,0BAA0B,CAC9BrB,WAAAA,GAAAA;AAEA,IAAA,OAAO,IAAIJ,iBAAkBI,CAAAA,WAAAA,CAAAA;AAC/B;;;;"}
@@ -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;AAUF,QAAA,MAAM,iBAAiB,QAAS,MAAM,cAAc,qBAAqB,0DAiCxE,CAAC;AAyDF,QAAA,MAAM,WAAW,WAAY,OAAO,WAAW,WAAW,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,QAAS,MAAM,cAAc,qBAAqB,0DAmCxE,CAAC;AA0EF,QAAA,MAAM,WAAW,WAAY,OAAO,WAAW,WAAW,MAAM,WAK/D,CAAC;AAmBF,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,CAAC"}
@@ -1,111 +1,122 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const fp = require("lodash/fp");
4
- const _ = require("lodash");
5
- const strapiUtils = require("@strapi/utils");
6
- const validator = require("./validator.js");
7
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
8
- const ___default = /* @__PURE__ */ _interopDefault(_);
9
- const {
10
- CREATED_AT_ATTRIBUTE,
11
- UPDATED_AT_ATTRIBUTE,
12
- PUBLISHED_AT_ATTRIBUTE,
13
- CREATED_BY_ATTRIBUTE,
14
- UPDATED_BY_ATTRIBUTE
15
- } = strapiUtils.contentTypes.constants;
16
- const createContentType = (uid, definition) => {
17
- try {
18
- validator.validateContentTypeDefinition(definition);
19
- } catch (e) {
20
- if (e instanceof strapiUtils.yup.ValidationError) {
21
- throw new Error(`Content Type Definition is invalid for ${uid}'.
22
- ${e.errors}`);
1
+ 'use strict';
2
+
3
+ var fp = require('lodash/fp');
4
+ var _ = require('lodash');
5
+ var strapiUtils = require('@strapi/utils');
6
+ var validator = require('./validator.js');
7
+
8
+ const { CREATED_AT_ATTRIBUTE, UPDATED_AT_ATTRIBUTE, PUBLISHED_AT_ATTRIBUTE, FIRST_PUBLISHED_AT_ATTRIBUTE, CREATED_BY_ATTRIBUTE, UPDATED_BY_ATTRIBUTE } = strapiUtils.contentTypes.constants;
9
+ const createContentType = (uid, definition)=>{
10
+ try {
11
+ validator.validateContentTypeDefinition(definition);
12
+ } catch (e) {
13
+ if (e instanceof strapiUtils.yup.ValidationError) {
14
+ throw new Error(`Content Type Definition is invalid for ${uid}'.\n${e.errors}`);
15
+ }
16
+ throw e;
23
17
  }
24
- throw e;
25
- }
26
- const { schema, actions, lifecycles } = fp.cloneDeep(definition);
27
- Object.assign(schema, {
28
- uid,
29
- modelType: "contentType",
30
- kind: schema.kind || "collectionType",
31
- __schema__: pickSchema(definition.schema),
32
- modelName: definition.schema.info.singularName,
33
- actions,
34
- lifecycles
35
- });
36
- addTimestamps(schema);
37
- addDraftAndPublish(schema);
38
- addCreatorFields(schema);
39
- return schema;
18
+ const { schema, actions, lifecycles } = fp.cloneDeep(definition);
19
+ // general info
20
+ Object.assign(schema, {
21
+ uid,
22
+ modelType: 'contentType',
23
+ kind: schema.kind || 'collectionType',
24
+ __schema__: pickSchema(definition.schema),
25
+ modelName: definition.schema.info.singularName,
26
+ actions,
27
+ lifecycles
28
+ });
29
+ addTimestamps(schema);
30
+ // Published at is added regardless of draft and publish being enabled
31
+ // In case it is not enabled, value will be always published, and it will not contain a draft
32
+ addDraftAndPublish(schema);
33
+ addCreatorFields(schema);
34
+ addFirstPublishedAt(schema);
35
+ return schema;
40
36
  };
41
- const addTimestamps = (schema) => {
42
- Object.assign(schema.attributes, {
43
- [CREATED_AT_ATTRIBUTE]: {
44
- type: "datetime"
45
- },
46
- // TODO: handle on edit set to new date
47
- [UPDATED_AT_ATTRIBUTE]: {
48
- type: "datetime"
37
+ const addTimestamps = (schema)=>{
38
+ // attributes
39
+ Object.assign(schema.attributes, {
40
+ [CREATED_AT_ATTRIBUTE]: {
41
+ type: 'datetime'
42
+ },
43
+ // TODO: handle on edit set to new date
44
+ [UPDATED_AT_ATTRIBUTE]: {
45
+ type: 'datetime'
46
+ }
47
+ });
48
+ };
49
+ const addDraftAndPublish = (schema)=>{
50
+ if (!_.has(schema, 'options.draftAndPublish')) {
51
+ _.set(schema, 'options.draftAndPublish', false); // Disabled by default
49
52
  }
50
- });
53
+ schema.attributes[PUBLISHED_AT_ATTRIBUTE] = {
54
+ type: 'datetime',
55
+ configurable: false,
56
+ writable: true,
57
+ visible: false,
58
+ default () {
59
+ return new Date();
60
+ }
61
+ };
51
62
  };
52
- const addDraftAndPublish = (schema) => {
53
- if (!___default.default.has(schema, "options.draftAndPublish")) {
54
- ___default.default.set(schema, "options.draftAndPublish", false);
55
- }
56
- schema.attributes[PUBLISHED_AT_ATTRIBUTE] = {
57
- type: "datetime",
58
- configurable: false,
59
- writable: true,
60
- visible: false,
61
- default() {
62
- return /* @__PURE__ */ new Date();
63
+ const addFirstPublishedAt = (schema)=>{
64
+ const isEnabled = strapiUtils.contentTypes.hasFirstPublishedAtField(schema);
65
+ // Note: As an expertimental feature, we are okay if this data is deleted if this feature is
66
+ // switched off. Once "preserve_attributes" come into play, this will be updated.
67
+ if (isEnabled) {
68
+ strapi.log.warn(`Experimental feature enabled: firstPublishedAt on ${schema.collectionName}`);
69
+ schema.attributes[FIRST_PUBLISHED_AT_ATTRIBUTE] = {
70
+ type: 'datetime',
71
+ configurable: false,
72
+ writable: true,
73
+ visible: false,
74
+ private: !isEnabled
75
+ };
63
76
  }
64
- };
65
77
  };
66
- const addCreatorFields = (schema) => {
67
- const isPrivate = !___default.default.get(schema, "options.populateCreatorFields", false);
68
- schema.attributes[CREATED_BY_ATTRIBUTE] = {
69
- type: "relation",
70
- relation: "oneToOne",
71
- target: "admin::user",
72
- configurable: false,
73
- writable: false,
74
- visible: false,
75
- useJoinTable: false,
76
- private: isPrivate
77
- };
78
- schema.attributes[UPDATED_BY_ATTRIBUTE] = {
79
- type: "relation",
80
- relation: "oneToOne",
81
- target: "admin::user",
82
- configurable: false,
83
- writable: false,
84
- visible: false,
85
- useJoinTable: false,
86
- private: isPrivate
87
- };
78
+ const addCreatorFields = (schema)=>{
79
+ const isPrivate = !_.get(schema, 'options.populateCreatorFields', false);
80
+ schema.attributes[CREATED_BY_ATTRIBUTE] = {
81
+ type: 'relation',
82
+ relation: 'oneToOne',
83
+ target: 'admin::user',
84
+ configurable: false,
85
+ writable: false,
86
+ visible: false,
87
+ useJoinTable: false,
88
+ private: isPrivate
89
+ };
90
+ schema.attributes[UPDATED_BY_ATTRIBUTE] = {
91
+ type: 'relation',
92
+ relation: 'oneToOne',
93
+ target: 'admin::user',
94
+ configurable: false,
95
+ writable: false,
96
+ visible: false,
97
+ useJoinTable: false,
98
+ private: isPrivate
99
+ };
88
100
  };
89
- const getGlobalId = (schema, prefix) => {
90
- const modelName = schema.info.singularName;
91
- const globalId = prefix ? `${prefix}-${modelName}` : modelName;
92
- return schema.globalId || ___default.default.upperFirst(___default.default.camelCase(globalId));
101
+ const getGlobalId = (schema, prefix)=>{
102
+ const modelName = schema.info.singularName;
103
+ const globalId = prefix ? `${prefix}-${modelName}` : modelName;
104
+ return schema.globalId || _.upperFirst(_.camelCase(globalId));
93
105
  };
94
- const pickSchema = (model) => {
95
- const schema = ___default.default.cloneDeep(
96
- ___default.default.pick(model, [
97
- "connection",
98
- "collectionName",
99
- "info",
100
- "options",
101
- "pluginOptions",
102
- "attributes",
103
- "kind"
104
- ])
105
- );
106
- schema.kind = model.kind || "collectionType";
107
- return schema;
106
+ const pickSchema = (model)=>{
107
+ const schema = _.cloneDeep(_.pick(model, [
108
+ 'connection',
109
+ 'collectionName',
110
+ 'info',
111
+ 'options',
112
+ 'pluginOptions',
113
+ 'attributes',
114
+ 'kind'
115
+ ]));
116
+ schema.kind = model.kind || 'collectionType';
117
+ return schema;
108
118
  };
119
+
109
120
  exports.createContentType = createContentType;
110
121
  exports.getGlobalId = getGlobalId;
111
122
  //# sourceMappingURL=index.js.map
@@ -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 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 return schema;\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: false,\n default() {\n return new Date();\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":["contentTypesUtils","validateContentTypeDefinition","yup","cloneDeep","_"],"mappings":";;;;;;;;AAYA,MAAM;AAAA,EACJ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,IAAIA,YAAkB,aAAA;AAEhB,MAAA,oBAAoB,CAAC,KAAa,eAAsC;AACxE,MAAA;AACFC,cAAAA,8BAA8B,UAAU;AAAA,WACjC,GAAG;AACN,QAAA,aAAaC,gBAAI,iBAAiB;AAC9B,YAAA,IAAI,MAAM,0CAA0C,GAAG;AAAA,EAAO,EAAE,MAAM,EAAE;AAAA,IAAA;AAG1E,UAAA;AAAA,EAAA;AAGR,QAAM,EAAE,QAAQ,SAAS,WAAW,IAAIC,GAAAA,UAAU,UAAU;AAG5D,SAAO,OAAO,QAAQ;AAAA,IACpB;AAAA,IACA,WAAW;AAAA,IACX,MAAM,OAAO,QAAQ;AAAA,IACrB,YAAY,WAAW,WAAW,MAAM;AAAA,IACxC,WAAW,WAAW,OAAO,KAAK;AAAA,IAClC;AAAA,IACA;AAAA,EAAA,CACD;AAED,gBAAc,MAAM;AAIpB,qBAAmB,MAAM;AAEzB,mBAAiB,MAAM;AAEhB,SAAA;AACT;AAEA,MAAM,gBAAgB,CAAC,WAA+B;AAE7C,SAAA,OAAO,OAAO,YAAY;AAAA,IAC/B,CAAC,oBAAoB,GAAG;AAAA,MACtB,MAAM;AAAA,IACR;AAAA;AAAA,IAEA,CAAC,oBAAoB,GAAG;AAAA,MACtB,MAAM;AAAA,IAAA;AAAA,EACR,CACD;AACH;AAEA,MAAM,qBAAqB,CAAC,WAA+B;AACzD,MAAI,CAACC,WAAAA,QAAE,IAAI,QAAQ,yBAAyB,GAAG;AAC3CA,eAAAA,QAAA,IAAI,QAAQ,2BAA2B,KAAK;AAAA,EAAA;AAGzC,SAAA,WAAW,sBAAsB,IAAI;AAAA,IAC1C,MAAM;AAAA,IACN,cAAc;AAAA,IACd,UAAU;AAAA,IACV,SAAS;AAAA,IACT,UAAU;AACR,iCAAW,KAAK;AAAA,IAAA;AAAA,EAEpB;AACF;AAEA,MAAM,mBAAmB,CAAC,WAA+B;AACvD,QAAM,YAAY,CAACA,WAAA,QAAE,IAAI,QAAQ,iCAAiC,KAAK;AAEhE,SAAA,WAAW,oBAAoB,IAAI;AAAA,IACxC,MAAM;AAAA,IACN,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,UAAU;AAAA,IACV,SAAS;AAAA,IACT,cAAc;AAAA,IACd,SAAS;AAAA,EACX;AAEO,SAAA,WAAW,oBAAoB,IAAI;AAAA,IACxC,MAAM;AAAA,IACN,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,UAAU;AAAA,IACV,SAAS;AAAA,IACT,cAAc;AAAA,IACd,SAAS;AAAA,EACX;AACF;AAEM,MAAA,cAAc,CAAC,QAA4B,WAAoB;AAC7D,QAAA,YAAY,OAAO,KAAK;AAC9B,QAAM,WAAW,SAAS,GAAG,MAAM,IAAI,SAAS,KAAK;AAErD,SAAO,OAAO,YAAYA,WAAA,QAAE,WAAWA,mBAAE,UAAU,QAAQ,CAAC;AAC9D;AAEA,MAAM,aAAa,CAAC,UAA8B;AAChD,QAAM,SAASA,WAAAA,QAAE;AAAA,IACfA,WAAA,QAAE,KAAK,OAAO;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD,CAAA;AAAA,EACH;AAEO,SAAA,OAAO,MAAM,QAAQ;AACrB,SAAA;AACT;;;"}
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 return schema;\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: false,\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","attributes","type","_","has","set","configurable","writable","visible","default","Date","isEnabled","hasFirstPublishedAtField","strapi","log","warn","collectionName","private","isPrivate","get","relation","target","useJoinTable","getGlobalId","prefix","globalId","upperFirst","camelCase","model","pick"],"mappings":"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"}
@@ -1,109 +1,119 @@
1
- import { cloneDeep } from "lodash/fp";
2
- import _ from "lodash";
3
- import { contentTypes, yup } from "@strapi/utils";
4
- import { validateContentTypeDefinition } from "./validator.mjs";
5
- const {
6
- CREATED_AT_ATTRIBUTE,
7
- UPDATED_AT_ATTRIBUTE,
8
- PUBLISHED_AT_ATTRIBUTE,
9
- CREATED_BY_ATTRIBUTE,
10
- UPDATED_BY_ATTRIBUTE
11
- } = contentTypes.constants;
12
- const createContentType = (uid, definition) => {
13
- try {
14
- validateContentTypeDefinition(definition);
15
- } catch (e) {
16
- if (e instanceof yup.ValidationError) {
17
- throw new Error(`Content Type Definition is invalid for ${uid}'.
18
- ${e.errors}`);
1
+ import { cloneDeep } from 'lodash/fp';
2
+ import _ from 'lodash';
3
+ import { contentTypes, yup } from '@strapi/utils';
4
+ import { validateContentTypeDefinition } from './validator.mjs';
5
+
6
+ const { CREATED_AT_ATTRIBUTE, UPDATED_AT_ATTRIBUTE, PUBLISHED_AT_ATTRIBUTE, FIRST_PUBLISHED_AT_ATTRIBUTE, CREATED_BY_ATTRIBUTE, UPDATED_BY_ATTRIBUTE } = contentTypes.constants;
7
+ const createContentType = (uid, definition)=>{
8
+ try {
9
+ validateContentTypeDefinition(definition);
10
+ } catch (e) {
11
+ if (e instanceof yup.ValidationError) {
12
+ throw new Error(`Content Type Definition is invalid for ${uid}'.\n${e.errors}`);
13
+ }
14
+ throw e;
19
15
  }
20
- throw e;
21
- }
22
- const { schema, actions, lifecycles } = cloneDeep(definition);
23
- Object.assign(schema, {
24
- uid,
25
- modelType: "contentType",
26
- kind: schema.kind || "collectionType",
27
- __schema__: pickSchema(definition.schema),
28
- modelName: definition.schema.info.singularName,
29
- actions,
30
- lifecycles
31
- });
32
- addTimestamps(schema);
33
- addDraftAndPublish(schema);
34
- addCreatorFields(schema);
35
- return schema;
16
+ const { schema, actions, lifecycles } = cloneDeep(definition);
17
+ // general info
18
+ Object.assign(schema, {
19
+ uid,
20
+ modelType: 'contentType',
21
+ kind: schema.kind || 'collectionType',
22
+ __schema__: pickSchema(definition.schema),
23
+ modelName: definition.schema.info.singularName,
24
+ actions,
25
+ lifecycles
26
+ });
27
+ addTimestamps(schema);
28
+ // Published at is added regardless of draft and publish being enabled
29
+ // In case it is not enabled, value will be always published, and it will not contain a draft
30
+ addDraftAndPublish(schema);
31
+ addCreatorFields(schema);
32
+ addFirstPublishedAt(schema);
33
+ return schema;
36
34
  };
37
- const addTimestamps = (schema) => {
38
- Object.assign(schema.attributes, {
39
- [CREATED_AT_ATTRIBUTE]: {
40
- type: "datetime"
41
- },
42
- // TODO: handle on edit set to new date
43
- [UPDATED_AT_ATTRIBUTE]: {
44
- type: "datetime"
45
- }
46
- });
35
+ const addTimestamps = (schema)=>{
36
+ // attributes
37
+ Object.assign(schema.attributes, {
38
+ [CREATED_AT_ATTRIBUTE]: {
39
+ type: 'datetime'
40
+ },
41
+ // TODO: handle on edit set to new date
42
+ [UPDATED_AT_ATTRIBUTE]: {
43
+ type: 'datetime'
44
+ }
45
+ });
47
46
  };
48
- const addDraftAndPublish = (schema) => {
49
- if (!_.has(schema, "options.draftAndPublish")) {
50
- _.set(schema, "options.draftAndPublish", false);
51
- }
52
- schema.attributes[PUBLISHED_AT_ATTRIBUTE] = {
53
- type: "datetime",
54
- configurable: false,
55
- writable: true,
56
- visible: false,
57
- default() {
58
- return /* @__PURE__ */ new Date();
47
+ const addDraftAndPublish = (schema)=>{
48
+ if (!_.has(schema, 'options.draftAndPublish')) {
49
+ _.set(schema, 'options.draftAndPublish', false); // Disabled by default
59
50
  }
60
- };
51
+ schema.attributes[PUBLISHED_AT_ATTRIBUTE] = {
52
+ type: 'datetime',
53
+ configurable: false,
54
+ writable: true,
55
+ visible: false,
56
+ default () {
57
+ return new Date();
58
+ }
59
+ };
61
60
  };
62
- const addCreatorFields = (schema) => {
63
- const isPrivate = !_.get(schema, "options.populateCreatorFields", false);
64
- schema.attributes[CREATED_BY_ATTRIBUTE] = {
65
- type: "relation",
66
- relation: "oneToOne",
67
- target: "admin::user",
68
- configurable: false,
69
- writable: false,
70
- visible: false,
71
- useJoinTable: false,
72
- private: isPrivate
73
- };
74
- schema.attributes[UPDATED_BY_ATTRIBUTE] = {
75
- type: "relation",
76
- relation: "oneToOne",
77
- target: "admin::user",
78
- configurable: false,
79
- writable: false,
80
- visible: false,
81
- useJoinTable: false,
82
- private: isPrivate
83
- };
61
+ const addFirstPublishedAt = (schema)=>{
62
+ const isEnabled = contentTypes.hasFirstPublishedAtField(schema);
63
+ // Note: As an expertimental feature, we are okay if this data is deleted if this feature is
64
+ // switched off. Once "preserve_attributes" come into play, this will be updated.
65
+ if (isEnabled) {
66
+ strapi.log.warn(`Experimental feature enabled: firstPublishedAt on ${schema.collectionName}`);
67
+ schema.attributes[FIRST_PUBLISHED_AT_ATTRIBUTE] = {
68
+ type: 'datetime',
69
+ configurable: false,
70
+ writable: true,
71
+ visible: false,
72
+ private: !isEnabled
73
+ };
74
+ }
84
75
  };
85
- const getGlobalId = (schema, prefix) => {
86
- const modelName = schema.info.singularName;
87
- const globalId = prefix ? `${prefix}-${modelName}` : modelName;
88
- return schema.globalId || _.upperFirst(_.camelCase(globalId));
76
+ const addCreatorFields = (schema)=>{
77
+ const isPrivate = !_.get(schema, 'options.populateCreatorFields', false);
78
+ schema.attributes[CREATED_BY_ATTRIBUTE] = {
79
+ type: 'relation',
80
+ relation: 'oneToOne',
81
+ target: 'admin::user',
82
+ configurable: false,
83
+ writable: false,
84
+ visible: false,
85
+ useJoinTable: false,
86
+ private: isPrivate
87
+ };
88
+ schema.attributes[UPDATED_BY_ATTRIBUTE] = {
89
+ type: 'relation',
90
+ relation: 'oneToOne',
91
+ target: 'admin::user',
92
+ configurable: false,
93
+ writable: false,
94
+ visible: false,
95
+ useJoinTable: false,
96
+ private: isPrivate
97
+ };
89
98
  };
90
- const pickSchema = (model) => {
91
- const schema = _.cloneDeep(
92
- _.pick(model, [
93
- "connection",
94
- "collectionName",
95
- "info",
96
- "options",
97
- "pluginOptions",
98
- "attributes",
99
- "kind"
100
- ])
101
- );
102
- schema.kind = model.kind || "collectionType";
103
- return schema;
99
+ const getGlobalId = (schema, prefix)=>{
100
+ const modelName = schema.info.singularName;
101
+ const globalId = prefix ? `${prefix}-${modelName}` : modelName;
102
+ return schema.globalId || _.upperFirst(_.camelCase(globalId));
104
103
  };
105
- export {
106
- createContentType,
107
- getGlobalId
104
+ const pickSchema = (model)=>{
105
+ const schema = _.cloneDeep(_.pick(model, [
106
+ 'connection',
107
+ 'collectionName',
108
+ 'info',
109
+ 'options',
110
+ 'pluginOptions',
111
+ 'attributes',
112
+ 'kind'
113
+ ]));
114
+ schema.kind = model.kind || 'collectionType';
115
+ return schema;
108
116
  };
117
+
118
+ export { createContentType, getGlobalId };
109
119
  //# sourceMappingURL=index.mjs.map
@@ -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 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 return schema;\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: false,\n default() {\n return new Date();\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":["contentTypesUtils"],"mappings":";;;;AAYA,MAAM;AAAA,EACJ;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,IAAIA,aAAkB;AAEhB,MAAA,oBAAoB,CAAC,KAAa,eAAsC;AACxE,MAAA;AACF,kCAA8B,UAAU;AAAA,WACjC,GAAG;AACN,QAAA,aAAa,IAAI,iBAAiB;AAC9B,YAAA,IAAI,MAAM,0CAA0C,GAAG;AAAA,EAAO,EAAE,MAAM,EAAE;AAAA,IAAA;AAG1E,UAAA;AAAA,EAAA;AAGR,QAAM,EAAE,QAAQ,SAAS,WAAW,IAAI,UAAU,UAAU;AAG5D,SAAO,OAAO,QAAQ;AAAA,IACpB;AAAA,IACA,WAAW;AAAA,IACX,MAAM,OAAO,QAAQ;AAAA,IACrB,YAAY,WAAW,WAAW,MAAM;AAAA,IACxC,WAAW,WAAW,OAAO,KAAK;AAAA,IAClC;AAAA,IACA;AAAA,EAAA,CACD;AAED,gBAAc,MAAM;AAIpB,qBAAmB,MAAM;AAEzB,mBAAiB,MAAM;AAEhB,SAAA;AACT;AAEA,MAAM,gBAAgB,CAAC,WAA+B;AAE7C,SAAA,OAAO,OAAO,YAAY;AAAA,IAC/B,CAAC,oBAAoB,GAAG;AAAA,MACtB,MAAM;AAAA,IACR;AAAA;AAAA,IAEA,CAAC,oBAAoB,GAAG;AAAA,MACtB,MAAM;AAAA,IAAA;AAAA,EACR,CACD;AACH;AAEA,MAAM,qBAAqB,CAAC,WAA+B;AACzD,MAAI,CAAC,EAAE,IAAI,QAAQ,yBAAyB,GAAG;AAC3C,MAAA,IAAI,QAAQ,2BAA2B,KAAK;AAAA,EAAA;AAGzC,SAAA,WAAW,sBAAsB,IAAI;AAAA,IAC1C,MAAM;AAAA,IACN,cAAc;AAAA,IACd,UAAU;AAAA,IACV,SAAS;AAAA,IACT,UAAU;AACR,iCAAW,KAAK;AAAA,IAAA;AAAA,EAEpB;AACF;AAEA,MAAM,mBAAmB,CAAC,WAA+B;AACvD,QAAM,YAAY,CAAC,EAAE,IAAI,QAAQ,iCAAiC,KAAK;AAEhE,SAAA,WAAW,oBAAoB,IAAI;AAAA,IACxC,MAAM;AAAA,IACN,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,UAAU;AAAA,IACV,SAAS;AAAA,IACT,cAAc;AAAA,IACd,SAAS;AAAA,EACX;AAEO,SAAA,WAAW,oBAAoB,IAAI;AAAA,IACxC,MAAM;AAAA,IACN,UAAU;AAAA,IACV,QAAQ;AAAA,IACR,cAAc;AAAA,IACd,UAAU;AAAA,IACV,SAAS;AAAA,IACT,cAAc;AAAA,IACd,SAAS;AAAA,EACX;AACF;AAEM,MAAA,cAAc,CAAC,QAA4B,WAAoB;AAC7D,QAAA,YAAY,OAAO,KAAK;AAC9B,QAAM,WAAW,SAAS,GAAG,MAAM,IAAI,SAAS,KAAK;AAErD,SAAO,OAAO,YAAY,EAAE,WAAW,EAAE,UAAU,QAAQ,CAAC;AAC9D;AAEA,MAAM,aAAa,CAAC,UAA8B;AAChD,QAAM,SAAS,EAAE;AAAA,IACf,EAAE,KAAK,OAAO;AAAA,MACZ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD,CAAA;AAAA,EACH;AAEO,SAAA,OAAO,MAAM,QAAQ;AACrB,SAAA;AACT;"}
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 return schema;\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: false,\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","attributes","type","_","has","set","configurable","writable","visible","default","Date","isEnabled","hasFirstPublishedAtField","strapi","log","warn","collectionName","private","isPrivate","get","relation","target","useJoinTable","getGlobalId","prefix","globalId","upperFirst","camelCase","model","pick"],"mappings":"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"}