@strapi/core 0.0.0-experimental.6dbac0c205b0f8495781db5706c18cac1a62e62b → 0.0.0-experimental.745741d19e90275ca6f7c928ca19f9bb0fd9d933

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 (1267) hide show
  1. package/dist/Strapi.d.ts +53 -57
  2. package/dist/Strapi.d.ts.map +1 -1
  3. package/dist/Strapi.js +210 -215
  4. package/dist/Strapi.js.map +1 -1
  5. package/dist/Strapi.mjs +185 -209
  6. package/dist/Strapi.mjs.map +1 -1
  7. package/dist/configuration/config-loader.d.ts.map +1 -0
  8. package/dist/configuration/config-loader.js +106 -0
  9. package/dist/configuration/config-loader.js.map +1 -0
  10. package/dist/configuration/config-loader.mjs +104 -0
  11. package/dist/configuration/config-loader.mjs.map +1 -0
  12. package/dist/configuration/get-dirs.d.ts +10 -0
  13. package/dist/configuration/get-dirs.d.ts.map +1 -0
  14. package/dist/configuration/get-dirs.js +31 -0
  15. package/dist/configuration/get-dirs.js.map +1 -0
  16. package/dist/configuration/get-dirs.mjs +31 -0
  17. package/dist/configuration/get-dirs.mjs.map +1 -0
  18. package/dist/configuration/index.d.ts +48 -0
  19. package/dist/configuration/index.d.ts.map +1 -0
  20. package/dist/configuration/index.js +80 -0
  21. package/dist/configuration/index.js.map +1 -0
  22. package/dist/configuration/index.mjs +75 -0
  23. package/dist/configuration/index.mjs.map +1 -0
  24. package/dist/configuration/urls.d.ts +8 -0
  25. package/dist/configuration/urls.d.ts.map +1 -0
  26. package/dist/configuration/urls.js +68 -0
  27. package/dist/configuration/urls.js.map +1 -0
  28. package/dist/configuration/urls.mjs +66 -0
  29. package/dist/configuration/urls.mjs.map +1 -0
  30. package/dist/container.d.ts +2 -2
  31. package/dist/container.d.ts.map +1 -1
  32. package/dist/container.js.map +1 -1
  33. package/dist/container.mjs.map +1 -1
  34. package/dist/core-api/controller/collection-type.d.ts +4 -4
  35. package/dist/core-api/controller/collection-type.d.ts.map +1 -1
  36. package/dist/core-api/controller/collection-type.js +12 -20
  37. package/dist/core-api/controller/collection-type.js.map +1 -1
  38. package/dist/core-api/controller/collection-type.mjs +11 -20
  39. package/dist/core-api/controller/collection-type.mjs.map +1 -1
  40. package/dist/core-api/controller/index.d.ts +3 -3
  41. package/dist/core-api/controller/index.d.ts.map +1 -1
  42. package/dist/core-api/controller/index.js +13 -8
  43. package/dist/core-api/controller/index.js.map +1 -1
  44. package/dist/core-api/controller/index.mjs +14 -9
  45. package/dist/core-api/controller/index.mjs.map +1 -1
  46. package/dist/core-api/controller/single-type.d.ts +4 -4
  47. package/dist/core-api/controller/single-type.d.ts.map +1 -1
  48. package/dist/core-api/controller/single-type.js +7 -11
  49. package/dist/core-api/controller/single-type.js.map +1 -1
  50. package/dist/core-api/controller/single-type.mjs +6 -11
  51. package/dist/core-api/controller/single-type.mjs.map +1 -1
  52. package/dist/core-api/controller/transform.d.ts +10 -18
  53. package/dist/core-api/controller/transform.d.ts.map +1 -1
  54. package/dist/core-api/controller/transform.js +10 -18
  55. package/dist/core-api/controller/transform.js.map +1 -1
  56. package/dist/core-api/controller/transform.mjs +10 -18
  57. package/dist/core-api/controller/transform.mjs.map +1 -1
  58. package/dist/core-api/routes/index.d.ts.map +1 -1
  59. package/dist/core-api/service/collection-type.d.ts +22 -5
  60. package/dist/core-api/service/collection-type.d.ts.map +1 -1
  61. package/dist/core-api/service/collection-type.js +58 -49
  62. package/dist/core-api/service/collection-type.js.map +1 -1
  63. package/dist/core-api/service/collection-type.mjs +58 -50
  64. package/dist/core-api/service/collection-type.mjs.map +1 -1
  65. package/dist/core-api/service/core-service.d.ts +4 -0
  66. package/dist/core-api/service/core-service.d.ts.map +1 -0
  67. package/dist/core-api/service/core-service.js +12 -0
  68. package/dist/core-api/service/core-service.js.map +1 -0
  69. package/dist/core-api/service/core-service.mjs +12 -0
  70. package/dist/core-api/service/core-service.mjs.map +1 -0
  71. package/dist/core-api/service/index.d.ts +3 -3
  72. package/dist/core-api/service/index.d.ts.map +1 -1
  73. package/dist/core-api/service/index.js +2 -2
  74. package/dist/core-api/service/index.js.map +1 -1
  75. package/dist/core-api/service/index.mjs +4 -4
  76. package/dist/core-api/service/index.mjs.map +1 -1
  77. package/dist/core-api/service/pagination.d.ts +4 -15
  78. package/dist/core-api/service/pagination.d.ts.map +1 -1
  79. package/dist/core-api/service/pagination.js +14 -51
  80. package/dist/core-api/service/pagination.js.map +1 -1
  81. package/dist/core-api/service/pagination.mjs +16 -53
  82. package/dist/core-api/service/pagination.mjs.map +1 -1
  83. package/dist/core-api/service/single-type.d.ts +14 -8
  84. package/dist/core-api/service/single-type.d.ts.map +1 -1
  85. package/dist/core-api/service/single-type.js +42 -50
  86. package/dist/core-api/service/single-type.js.map +1 -1
  87. package/dist/core-api/service/single-type.mjs +41 -50
  88. package/dist/core-api/service/single-type.mjs.map +1 -1
  89. package/dist/domain/content-type/index.d.ts +10 -0
  90. package/dist/domain/content-type/index.d.ts.map +1 -0
  91. package/dist/domain/content-type/index.js +111 -0
  92. package/dist/domain/content-type/index.js.map +1 -0
  93. package/dist/domain/content-type/index.mjs +109 -0
  94. package/dist/domain/content-type/index.mjs.map +1 -0
  95. package/dist/domain/content-type/validator.d.ts.map +1 -0
  96. package/dist/domain/content-type/validator.js +77 -0
  97. package/dist/domain/content-type/validator.js.map +1 -0
  98. package/dist/domain/content-type/validator.mjs +75 -0
  99. package/dist/domain/content-type/validator.mjs.map +1 -0
  100. package/dist/domain/module/index.d.ts +40 -0
  101. package/dist/domain/module/index.d.ts.map +1 -0
  102. package/dist/domain/module/index.js +107 -0
  103. package/dist/domain/module/index.js.map +1 -0
  104. package/dist/domain/module/index.mjs +105 -0
  105. package/dist/domain/module/index.mjs.map +1 -0
  106. package/dist/domain/module/validation.d.ts.map +1 -0
  107. package/dist/domain/module/validation.js.map +1 -0
  108. package/dist/domain/module/validation.mjs.map +1 -0
  109. package/dist/ee/index.d.ts +4 -2
  110. package/dist/ee/index.d.ts.map +1 -1
  111. package/dist/ee/index.js +2 -2
  112. package/dist/ee/index.js.map +1 -1
  113. package/dist/ee/index.mjs +2 -2
  114. package/dist/ee/index.mjs.map +1 -1
  115. package/dist/ee/license.d.ts +2 -2
  116. package/dist/ee/license.d.ts.map +1 -1
  117. package/dist/ee/license.js +3 -1
  118. package/dist/ee/license.js.map +1 -1
  119. package/dist/ee/license.mjs +3 -1
  120. package/dist/ee/license.mjs.map +1 -1
  121. package/dist/factories.d.ts +11 -10
  122. package/dist/factories.d.ts.map +1 -1
  123. package/dist/factories.js +22 -13
  124. package/dist/factories.js.map +1 -1
  125. package/dist/factories.mjs +23 -14
  126. package/dist/factories.mjs.map +1 -1
  127. package/dist/index.d.ts +5 -2
  128. package/dist/index.d.ts.map +1 -1
  129. package/dist/index.js +27 -1
  130. package/dist/index.js.map +1 -1
  131. package/dist/index.mjs +28 -2
  132. package/dist/index.mjs.map +1 -1
  133. package/dist/loaders/admin.d.ts +3 -0
  134. package/dist/loaders/admin.d.ts.map +1 -0
  135. package/dist/loaders/admin.js +26 -0
  136. package/dist/loaders/admin.js.map +1 -0
  137. package/dist/loaders/admin.mjs +25 -0
  138. package/dist/loaders/admin.mjs.map +1 -0
  139. package/dist/loaders/apis.d.ts +3 -0
  140. package/dist/loaders/apis.d.ts.map +1 -0
  141. package/dist/loaders/apis.js +137 -0
  142. package/dist/loaders/apis.js.map +1 -0
  143. package/dist/loaders/apis.mjs +135 -0
  144. package/dist/loaders/apis.mjs.map +1 -0
  145. package/dist/loaders/components.d.ts +3 -0
  146. package/dist/loaders/components.d.ts.map +1 -0
  147. package/dist/loaders/components.js +38 -0
  148. package/dist/loaders/components.js.map +1 -0
  149. package/dist/loaders/components.mjs +37 -0
  150. package/dist/loaders/components.mjs.map +1 -0
  151. package/dist/loaders/index.d.ts +3 -0
  152. package/dist/loaders/index.d.ts.map +1 -0
  153. package/dist/loaders/index.js +24 -0
  154. package/dist/loaders/index.js.map +1 -0
  155. package/dist/loaders/index.mjs +24 -0
  156. package/dist/loaders/index.mjs.map +1 -0
  157. package/dist/loaders/middlewares.d.ts +3 -0
  158. package/dist/loaders/middlewares.d.ts.map +1 -0
  159. package/dist/loaders/middlewares.js +31 -0
  160. package/dist/loaders/middlewares.js.map +1 -0
  161. package/dist/loaders/middlewares.mjs +30 -0
  162. package/dist/loaders/middlewares.mjs.map +1 -0
  163. package/dist/loaders/plugins/get-enabled-plugins.d.ts +5 -0
  164. package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -0
  165. package/dist/loaders/plugins/get-enabled-plugins.js +113 -0
  166. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -0
  167. package/dist/loaders/plugins/get-enabled-plugins.mjs +111 -0
  168. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -0
  169. package/dist/loaders/plugins/get-user-plugins-config.d.ts.map +1 -0
  170. package/dist/loaders/plugins/get-user-plugins-config.js +27 -0
  171. package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -0
  172. package/dist/loaders/plugins/get-user-plugins-config.mjs +25 -0
  173. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -0
  174. package/dist/loaders/plugins/index.d.ts +3 -0
  175. package/dist/loaders/plugins/index.d.ts.map +1 -0
  176. package/dist/loaders/plugins/index.js +118 -0
  177. package/dist/loaders/plugins/index.js.map +1 -0
  178. package/dist/loaders/plugins/index.mjs +117 -0
  179. package/dist/loaders/plugins/index.mjs.map +1 -0
  180. package/dist/loaders/policies.d.ts +3 -0
  181. package/dist/loaders/policies.d.ts.map +1 -0
  182. package/dist/loaders/policies.js.map +1 -0
  183. package/dist/loaders/policies.mjs.map +1 -0
  184. package/dist/loaders/sanitizers.d.ts +4 -0
  185. package/dist/loaders/sanitizers.d.ts.map +1 -0
  186. package/dist/loaders/sanitizers.js.map +1 -0
  187. package/dist/loaders/sanitizers.mjs.map +1 -0
  188. package/dist/loaders/src-index.d.ts +4 -0
  189. package/dist/loaders/src-index.d.ts.map +1 -0
  190. package/dist/loaders/src-index.js.map +1 -0
  191. package/dist/loaders/src-index.mjs.map +1 -0
  192. package/dist/loaders/validators.d.ts +4 -0
  193. package/dist/loaders/validators.d.ts.map +1 -0
  194. package/dist/loaders/validators.js.map +1 -0
  195. package/dist/loaders/validators.mjs.map +1 -0
  196. package/dist/middlewares/body.d.ts +4 -4
  197. package/dist/middlewares/body.d.ts.map +1 -1
  198. package/dist/middlewares/body.js +4 -4
  199. package/dist/middlewares/body.js.map +1 -1
  200. package/dist/middlewares/body.mjs +4 -4
  201. package/dist/middlewares/body.mjs.map +1 -1
  202. package/dist/middlewares/compression.d.ts +2 -2
  203. package/dist/middlewares/compression.d.ts.map +1 -1
  204. package/dist/middlewares/compression.js.map +1 -1
  205. package/dist/middlewares/compression.mjs.map +1 -1
  206. package/dist/middlewares/cors.d.ts +2 -2
  207. package/dist/middlewares/cors.d.ts.map +1 -1
  208. package/dist/middlewares/cors.js +6 -8
  209. package/dist/middlewares/cors.js.map +1 -1
  210. package/dist/middlewares/cors.mjs +6 -8
  211. package/dist/middlewares/cors.mjs.map +1 -1
  212. package/dist/middlewares/errors.d.ts +2 -2
  213. package/dist/middlewares/errors.d.ts.map +1 -1
  214. package/dist/middlewares/errors.js.map +1 -1
  215. package/dist/middlewares/errors.mjs.map +1 -1
  216. package/dist/middlewares/favicon.d.ts +3 -2
  217. package/dist/middlewares/favicon.d.ts.map +1 -1
  218. package/dist/middlewares/favicon.js.map +1 -1
  219. package/dist/middlewares/favicon.mjs.map +1 -1
  220. package/dist/middlewares/index.d.ts +2 -2
  221. package/dist/middlewares/index.d.ts.map +1 -1
  222. package/dist/middlewares/index.js +2 -2
  223. package/dist/middlewares/index.js.map +1 -1
  224. package/dist/middlewares/index.mjs +1 -1
  225. package/dist/middlewares/index.mjs.map +1 -1
  226. package/dist/middlewares/ip.d.ts +2 -2
  227. package/dist/middlewares/ip.d.ts.map +1 -1
  228. package/dist/middlewares/ip.js.map +1 -1
  229. package/dist/middlewares/ip.mjs.map +1 -1
  230. package/dist/middlewares/logger.d.ts +2 -2
  231. package/dist/middlewares/logger.d.ts.map +1 -1
  232. package/dist/middlewares/logger.js.map +1 -1
  233. package/dist/middlewares/logger.mjs.map +1 -1
  234. package/dist/middlewares/powered-by.d.ts +2 -2
  235. package/dist/middlewares/powered-by.d.ts.map +1 -1
  236. package/dist/middlewares/powered-by.js.map +1 -1
  237. package/dist/middlewares/powered-by.mjs.map +1 -1
  238. package/dist/middlewares/public.d.ts +3 -0
  239. package/dist/middlewares/public.d.ts.map +1 -0
  240. package/dist/middlewares/public.js +34 -0
  241. package/dist/middlewares/public.js.map +1 -0
  242. package/dist/middlewares/public.mjs +32 -0
  243. package/dist/middlewares/public.mjs.map +1 -0
  244. package/dist/middlewares/query.d.ts +2 -2
  245. package/dist/middlewares/query.d.ts.map +1 -1
  246. package/dist/middlewares/query.js.map +1 -1
  247. package/dist/middlewares/query.mjs.map +1 -1
  248. package/dist/middlewares/response-time.d.ts +2 -2
  249. package/dist/middlewares/response-time.d.ts.map +1 -1
  250. package/dist/middlewares/response-time.js.map +1 -1
  251. package/dist/middlewares/response-time.mjs.map +1 -1
  252. package/dist/middlewares/responses.d.ts +3 -3
  253. package/dist/middlewares/responses.d.ts.map +1 -1
  254. package/dist/middlewares/responses.js.map +1 -1
  255. package/dist/middlewares/responses.mjs.map +1 -1
  256. package/dist/middlewares/security.d.ts +2 -2
  257. package/dist/middlewares/security.d.ts.map +1 -1
  258. package/dist/middlewares/security.js +32 -4
  259. package/dist/middlewares/security.js.map +1 -1
  260. package/dist/middlewares/security.mjs +33 -5
  261. package/dist/middlewares/security.mjs.map +1 -1
  262. package/dist/middlewares/session.d.ts +2 -2
  263. package/dist/middlewares/session.d.ts.map +1 -1
  264. package/dist/middlewares/session.js.map +1 -1
  265. package/dist/middlewares/session.mjs.map +1 -1
  266. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +30 -0
  267. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -0
  268. package/dist/migrations/database/5.0.0-discard-drafts.js +50 -0
  269. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -0
  270. package/dist/migrations/database/5.0.0-discard-drafts.mjs +50 -0
  271. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -0
  272. package/dist/migrations/draft-publish.d.ts +17 -0
  273. package/dist/migrations/draft-publish.d.ts.map +1 -0
  274. package/dist/migrations/draft-publish.js +42 -0
  275. package/dist/migrations/draft-publish.js.map +1 -0
  276. package/dist/migrations/draft-publish.mjs +42 -0
  277. package/dist/migrations/draft-publish.mjs.map +1 -0
  278. package/dist/providers/admin.d.ts +3 -0
  279. package/dist/providers/admin.d.ts.map +1 -0
  280. package/dist/providers/admin.js +20 -0
  281. package/dist/providers/admin.js.map +1 -0
  282. package/dist/providers/admin.mjs +21 -0
  283. package/dist/providers/admin.mjs.map +1 -0
  284. package/dist/providers/coreStore.d.ts +3 -0
  285. package/dist/providers/coreStore.d.ts.map +1 -0
  286. package/dist/providers/coreStore.js +11 -0
  287. package/dist/providers/coreStore.js.map +1 -0
  288. package/dist/providers/coreStore.mjs +12 -0
  289. package/dist/providers/coreStore.mjs.map +1 -0
  290. package/dist/providers/cron.d.ts +3 -0
  291. package/dist/providers/cron.d.ts.map +1 -0
  292. package/dist/providers/cron.js +20 -0
  293. package/dist/providers/cron.js.map +1 -0
  294. package/dist/providers/cron.mjs +21 -0
  295. package/dist/providers/cron.mjs.map +1 -0
  296. package/dist/providers/index.d.ts +3 -0
  297. package/dist/providers/index.d.ts.map +1 -0
  298. package/dist/providers/index.js +11 -0
  299. package/dist/providers/index.js.map +1 -0
  300. package/dist/providers/index.mjs +11 -0
  301. package/dist/providers/index.mjs.map +1 -0
  302. package/dist/providers/provider.d.ts +9 -0
  303. package/dist/providers/provider.d.ts.map +1 -0
  304. package/dist/providers/provider.js +5 -0
  305. package/dist/providers/provider.js.map +1 -0
  306. package/dist/providers/provider.mjs +5 -0
  307. package/dist/providers/provider.mjs.map +1 -0
  308. package/dist/providers/registries.d.ts +3 -0
  309. package/dist/providers/registries.d.ts.map +1 -0
  310. package/dist/providers/registries.js +35 -0
  311. package/dist/providers/registries.js.map +1 -0
  312. package/dist/providers/registries.mjs +36 -0
  313. package/dist/providers/registries.mjs.map +1 -0
  314. package/dist/providers/telemetry.d.ts +3 -0
  315. package/dist/providers/telemetry.d.ts.map +1 -0
  316. package/dist/providers/telemetry.js +19 -0
  317. package/dist/providers/telemetry.js.map +1 -0
  318. package/dist/providers/telemetry.mjs +20 -0
  319. package/dist/providers/telemetry.mjs.map +1 -0
  320. package/dist/providers/webhooks.d.ts +3 -0
  321. package/dist/providers/webhooks.d.ts.map +1 -0
  322. package/dist/providers/webhooks.js +30 -0
  323. package/dist/providers/webhooks.js.map +1 -0
  324. package/dist/providers/webhooks.mjs +31 -0
  325. package/dist/providers/webhooks.mjs.map +1 -0
  326. package/dist/registries/apis.d.ts +8 -0
  327. package/dist/registries/apis.d.ts.map +1 -0
  328. package/dist/registries/apis.js.map +1 -0
  329. package/dist/registries/apis.mjs.map +1 -0
  330. package/dist/registries/components.d.ts +25 -0
  331. package/dist/registries/components.d.ts.map +1 -0
  332. package/dist/registries/components.js.map +1 -0
  333. package/dist/registries/components.mjs.map +1 -0
  334. package/dist/registries/content-types.d.ts +33 -0
  335. package/dist/registries/content-types.d.ts.map +1 -0
  336. package/dist/registries/content-types.js +70 -0
  337. package/dist/registries/content-types.js.map +1 -0
  338. package/dist/registries/content-types.mjs +71 -0
  339. package/dist/registries/content-types.mjs.map +1 -0
  340. package/dist/registries/controllers.d.ts +35 -0
  341. package/dist/registries/controllers.d.ts.map +1 -0
  342. package/dist/registries/controllers.js +80 -0
  343. package/dist/registries/controllers.js.map +1 -0
  344. package/dist/registries/controllers.mjs +81 -0
  345. package/dist/registries/controllers.mjs.map +1 -0
  346. package/dist/registries/custom-fields.d.ts +8 -0
  347. package/dist/registries/custom-fields.d.ts.map +1 -0
  348. package/dist/registries/custom-fields.js.map +1 -0
  349. package/dist/registries/custom-fields.mjs.map +1 -0
  350. package/dist/registries/hooks.d.ts.map +1 -0
  351. package/dist/registries/hooks.js +58 -0
  352. package/dist/registries/hooks.js.map +1 -0
  353. package/dist/registries/hooks.mjs +59 -0
  354. package/dist/registries/hooks.mjs.map +1 -0
  355. package/dist/registries/index.d.ts +15 -0
  356. package/dist/registries/index.d.ts.map +1 -0
  357. package/dist/registries/middlewares.d.ts +31 -0
  358. package/dist/registries/middlewares.d.ts.map +1 -0
  359. package/dist/registries/middlewares.js +60 -0
  360. package/dist/registries/middlewares.js.map +1 -0
  361. package/dist/registries/middlewares.mjs +61 -0
  362. package/dist/registries/middlewares.mjs.map +1 -0
  363. package/dist/registries/models.d.ts +6 -0
  364. package/dist/registries/models.d.ts.map +1 -0
  365. package/dist/registries/models.js +16 -0
  366. package/dist/registries/models.js.map +1 -0
  367. package/dist/registries/models.mjs +16 -0
  368. package/dist/registries/models.mjs.map +1 -0
  369. package/dist/registries/modules.d.ts +15 -0
  370. package/dist/registries/modules.d.ts.map +1 -0
  371. package/dist/registries/modules.js.map +1 -0
  372. package/dist/registries/modules.mjs.map +1 -0
  373. package/dist/registries/namespace.d.ts +5 -0
  374. package/dist/registries/namespace.d.ts.map +1 -0
  375. package/dist/registries/namespace.js +27 -0
  376. package/dist/registries/namespace.js.map +1 -0
  377. package/dist/registries/namespace.mjs +27 -0
  378. package/dist/registries/namespace.mjs.map +1 -0
  379. package/dist/registries/plugins.d.ts +9 -0
  380. package/dist/registries/plugins.d.ts.map +1 -0
  381. package/dist/registries/plugins.js.map +1 -0
  382. package/dist/registries/plugins.mjs.map +1 -0
  383. package/dist/registries/policies.d.ts +46 -0
  384. package/dist/registries/policies.d.ts.map +1 -0
  385. package/dist/registries/policies.js +108 -0
  386. package/dist/registries/policies.js.map +1 -0
  387. package/dist/registries/policies.mjs +109 -0
  388. package/dist/registries/policies.mjs.map +1 -0
  389. package/dist/registries/sanitizers.d.ts.map +1 -0
  390. package/dist/registries/sanitizers.js.map +1 -0
  391. package/dist/registries/sanitizers.mjs.map +1 -0
  392. package/dist/registries/services.d.ts +35 -0
  393. package/dist/registries/services.d.ts.map +1 -0
  394. package/dist/registries/services.js +80 -0
  395. package/dist/registries/services.js.map +1 -0
  396. package/dist/registries/services.mjs +81 -0
  397. package/dist/registries/services.mjs.map +1 -0
  398. package/dist/registries/validators.d.ts.map +1 -0
  399. package/dist/registries/validators.js.map +1 -0
  400. package/dist/registries/validators.mjs.map +1 -0
  401. package/dist/services/auth/index.d.ts +4 -4
  402. package/dist/services/auth/index.d.ts.map +1 -1
  403. package/dist/services/auth/index.js.map +1 -1
  404. package/dist/services/auth/index.mjs.map +1 -1
  405. package/dist/services/config.d.ts +3 -0
  406. package/dist/services/config.d.ts.map +1 -0
  407. package/dist/services/config.js +47 -0
  408. package/dist/services/config.js.map +1 -0
  409. package/dist/services/config.mjs +47 -0
  410. package/dist/services/config.mjs.map +1 -0
  411. package/dist/services/content-api/index.d.ts +21 -3
  412. package/dist/services/content-api/index.d.ts.map +1 -1
  413. package/dist/services/content-api/index.js +28 -2
  414. package/dist/services/content-api/index.js.map +1 -1
  415. package/dist/services/content-api/index.mjs +28 -2
  416. package/dist/services/content-api/index.mjs.map +1 -1
  417. package/dist/services/content-api/permissions/index.d.ts +3 -3
  418. package/dist/services/content-api/permissions/index.d.ts.map +1 -1
  419. package/dist/services/content-api/permissions/index.js +1 -1
  420. package/dist/services/content-api/permissions/index.js.map +1 -1
  421. package/dist/services/content-api/permissions/index.mjs +1 -1
  422. package/dist/services/content-api/permissions/index.mjs.map +1 -1
  423. package/dist/services/core-store.d.ts +2 -22
  424. package/dist/services/core-store.d.ts.map +1 -1
  425. package/dist/services/core-store.js +5 -1
  426. package/dist/services/core-store.js.map +1 -1
  427. package/dist/services/core-store.mjs +5 -1
  428. package/dist/services/core-store.mjs.map +1 -1
  429. package/dist/services/cron.d.ts +2 -2
  430. package/dist/services/cron.d.ts.map +1 -1
  431. package/dist/services/cron.js.map +1 -1
  432. package/dist/services/cron.mjs.map +1 -1
  433. package/dist/services/custom-fields.d.ts +2 -2
  434. package/dist/services/custom-fields.d.ts.map +1 -1
  435. package/dist/services/custom-fields.js.map +1 -1
  436. package/dist/services/custom-fields.mjs.map +1 -1
  437. package/dist/services/document-service/attributes/index.d.ts +6 -0
  438. package/dist/services/document-service/attributes/index.d.ts.map +1 -0
  439. package/dist/services/document-service/attributes/index.js +22 -0
  440. package/dist/services/document-service/attributes/index.js.map +1 -0
  441. package/dist/services/document-service/attributes/index.mjs +22 -0
  442. package/dist/services/document-service/attributes/index.mjs.map +1 -0
  443. package/dist/services/document-service/attributes/transforms.d.ts +10 -0
  444. package/dist/services/document-service/attributes/transforms.d.ts.map +1 -0
  445. package/dist/services/document-service/attributes/transforms.js.map +1 -0
  446. package/dist/services/document-service/attributes/transforms.mjs.map +1 -0
  447. package/dist/services/document-service/common.d.ts +4 -0
  448. package/dist/services/document-service/common.d.ts.map +1 -0
  449. package/dist/services/document-service/common.js +7 -0
  450. package/dist/services/document-service/common.js.map +1 -0
  451. package/dist/services/document-service/common.mjs +7 -0
  452. package/dist/services/document-service/common.mjs.map +1 -0
  453. package/dist/services/document-service/components.d.ts +25 -1
  454. package/dist/services/document-service/components.d.ts.map +1 -1
  455. package/dist/services/document-service/components.js +288 -0
  456. package/dist/services/document-service/components.js.map +1 -0
  457. package/dist/services/document-service/components.mjs +286 -0
  458. package/dist/services/document-service/components.mjs.map +1 -0
  459. package/dist/services/document-service/draft-and-publish.d.ts +10 -0
  460. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -0
  461. package/dist/services/document-service/draft-and-publish.js +69 -0
  462. package/dist/services/document-service/draft-and-publish.js.map +1 -0
  463. package/dist/services/document-service/draft-and-publish.mjs +69 -0
  464. package/dist/services/document-service/draft-and-publish.mjs.map +1 -0
  465. package/dist/services/document-service/entries.d.ts +10 -0
  466. package/dist/services/document-service/entries.d.ts.map +1 -0
  467. package/dist/services/document-service/entries.js +96 -0
  468. package/dist/services/document-service/entries.js.map +1 -0
  469. package/dist/services/document-service/entries.mjs +96 -0
  470. package/dist/services/document-service/entries.mjs.map +1 -0
  471. package/dist/services/document-service/events.d.ts +25 -0
  472. package/dist/services/document-service/events.d.ts.map +1 -0
  473. package/dist/services/document-service/events.js +47 -0
  474. package/dist/services/document-service/events.js.map +1 -0
  475. package/dist/services/document-service/events.mjs +47 -0
  476. package/dist/services/document-service/events.mjs.map +1 -0
  477. package/dist/services/document-service/index.d.ts +16 -7
  478. package/dist/services/document-service/index.d.ts.map +1 -1
  479. package/dist/services/document-service/index.js +28 -187
  480. package/dist/services/document-service/index.js.map +1 -1
  481. package/dist/services/document-service/index.mjs +27 -187
  482. package/dist/services/document-service/index.mjs.map +1 -1
  483. package/dist/services/document-service/internationalization.d.ts +8 -0
  484. package/dist/services/document-service/internationalization.d.ts.map +1 -0
  485. package/dist/services/document-service/internationalization.js +63 -0
  486. package/dist/services/document-service/internationalization.js.map +1 -0
  487. package/dist/services/document-service/internationalization.mjs +63 -0
  488. package/dist/services/document-service/internationalization.mjs.map +1 -0
  489. package/dist/services/document-service/middlewares/errors.d.ts +6 -0
  490. package/dist/services/document-service/middlewares/errors.d.ts.map +1 -0
  491. package/dist/services/document-service/middlewares/errors.js +25 -0
  492. package/dist/services/document-service/middlewares/errors.js.map +1 -0
  493. package/dist/services/document-service/middlewares/errors.mjs +25 -0
  494. package/dist/services/document-service/middlewares/errors.mjs.map +1 -0
  495. package/dist/services/document-service/middlewares/index.d.ts +2 -10
  496. package/dist/services/document-service/middlewares/index.d.ts.map +1 -1
  497. package/dist/services/document-service/middlewares/middleware-manager.d.ts +10 -0
  498. package/dist/services/document-service/middlewares/middleware-manager.d.ts.map +1 -0
  499. package/dist/services/document-service/middlewares/middleware-manager.js +49 -0
  500. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -0
  501. package/dist/services/document-service/middlewares/middleware-manager.mjs +49 -0
  502. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -0
  503. package/dist/services/document-service/params.d.ts +3 -1
  504. package/dist/services/document-service/params.d.ts.map +1 -1
  505. package/dist/services/document-service/params.js +8 -0
  506. package/dist/services/document-service/params.js.map +1 -0
  507. package/dist/services/document-service/params.mjs +8 -0
  508. package/dist/services/document-service/params.mjs.map +1 -0
  509. package/dist/services/document-service/repository.d.ts +3 -0
  510. package/dist/services/document-service/repository.d.ts.map +1 -0
  511. package/dist/services/document-service/repository.js +278 -0
  512. package/dist/services/document-service/repository.js.map +1 -0
  513. package/dist/services/document-service/repository.mjs +278 -0
  514. package/dist/services/document-service/repository.mjs.map +1 -0
  515. package/dist/services/document-service/transform/data.d.ts +5 -0
  516. package/dist/services/document-service/transform/data.d.ts.map +1 -0
  517. package/dist/services/document-service/transform/data.js +15 -0
  518. package/dist/services/document-service/transform/data.js.map +1 -0
  519. package/dist/services/document-service/transform/data.mjs +15 -0
  520. package/dist/services/document-service/transform/data.mjs.map +1 -0
  521. package/dist/services/document-service/transform/fields.d.ts +5 -0
  522. package/dist/services/document-service/transform/fields.d.ts.map +1 -0
  523. package/dist/services/document-service/transform/fields.js +24 -0
  524. package/dist/services/document-service/transform/fields.js.map +1 -0
  525. package/dist/services/document-service/transform/fields.mjs +24 -0
  526. package/dist/services/document-service/transform/fields.mjs.map +1 -0
  527. package/dist/services/document-service/transform/id-map.d.ts +23 -0
  528. package/dist/services/document-service/transform/id-map.d.ts.map +1 -0
  529. package/dist/services/document-service/transform/id-map.js +78 -0
  530. package/dist/services/document-service/transform/id-map.js.map +1 -0
  531. package/dist/services/document-service/transform/id-map.mjs +78 -0
  532. package/dist/services/document-service/transform/id-map.mjs.map +1 -0
  533. package/dist/services/document-service/transform/id-transform.d.ts +5 -0
  534. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -0
  535. package/dist/services/document-service/transform/id-transform.js +33 -0
  536. package/dist/services/document-service/transform/id-transform.js.map +1 -0
  537. package/dist/services/document-service/transform/id-transform.mjs +33 -0
  538. package/dist/services/document-service/transform/id-transform.mjs.map +1 -0
  539. package/dist/services/document-service/transform/populate.d.ts +6 -0
  540. package/dist/services/document-service/transform/populate.d.ts.map +1 -0
  541. package/dist/services/document-service/transform/populate.js +21 -0
  542. package/dist/services/document-service/transform/populate.js.map +1 -0
  543. package/dist/services/document-service/transform/populate.mjs +21 -0
  544. package/dist/services/document-service/transform/populate.mjs.map +1 -0
  545. package/dist/services/document-service/transform/query.d.ts +5 -0
  546. package/dist/services/document-service/transform/query.d.ts.map +1 -0
  547. package/dist/services/document-service/transform/query.js +9 -0
  548. package/dist/services/document-service/transform/query.js.map +1 -0
  549. package/dist/services/document-service/transform/query.mjs +9 -0
  550. package/dist/services/document-service/transform/query.mjs.map +1 -0
  551. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +14 -0
  552. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -0
  553. package/dist/services/document-service/transform/relations/extract/data-ids.js +57 -0
  554. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -0
  555. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +57 -0
  556. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -0
  557. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts +14 -0
  558. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -0
  559. package/dist/services/document-service/transform/relations/transform/data-ids.js +76 -0
  560. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -0
  561. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +76 -0
  562. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -0
  563. package/dist/services/document-service/transform/relations/transform/default-locale.d.ts +9 -0
  564. package/dist/services/document-service/transform/relations/transform/default-locale.d.ts.map +1 -0
  565. package/dist/services/document-service/transform/relations/transform/default-locale.js +32 -0
  566. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -0
  567. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +32 -0
  568. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -0
  569. package/dist/services/document-service/transform/relations/utils/data.d.ts +4 -0
  570. package/dist/services/document-service/transform/relations/utils/data.d.ts.map +1 -0
  571. package/dist/services/document-service/transform/relations/utils/dp.d.ts +10 -0
  572. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -0
  573. package/dist/services/document-service/transform/relations/utils/dp.js +30 -0
  574. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -0
  575. package/dist/services/document-service/transform/relations/utils/dp.mjs +30 -0
  576. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -0
  577. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +10 -0
  578. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -0
  579. package/dist/services/document-service/transform/relations/utils/i18n.js +25 -0
  580. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -0
  581. package/dist/services/document-service/transform/relations/utils/i18n.mjs +25 -0
  582. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -0
  583. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts +6 -0
  584. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -0
  585. package/dist/services/document-service/transform/relations/utils/map-relation.js +91 -0
  586. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -0
  587. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +91 -0
  588. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -0
  589. package/dist/services/document-service/transform/relations/utils/types.d.ts +21 -0
  590. package/dist/services/document-service/transform/relations/utils/types.d.ts.map +1 -0
  591. package/dist/services/document-service/transform/types.d.ts +13 -0
  592. package/dist/services/document-service/transform/types.d.ts.map +1 -0
  593. package/dist/services/document-service/utils/populate.d.ts +10 -0
  594. package/dist/services/document-service/utils/populate.d.ts.map +1 -0
  595. package/dist/services/document-service/utils/populate.js +45 -0
  596. package/dist/services/document-service/utils/populate.js.map +1 -0
  597. package/dist/services/document-service/utils/populate.mjs +45 -0
  598. package/dist/services/document-service/utils/populate.mjs.map +1 -0
  599. package/dist/services/entity-service/index.d.ts +4 -6
  600. package/dist/services/entity-service/index.d.ts.map +1 -1
  601. package/dist/services/entity-service/index.js +44 -203
  602. package/dist/services/entity-service/index.js.map +1 -1
  603. package/dist/services/entity-service/index.mjs +38 -197
  604. package/dist/services/entity-service/index.mjs.map +1 -1
  605. package/dist/services/entity-validator/blocks-validator.d.ts.map +1 -1
  606. package/dist/services/entity-validator/blocks-validator.js +22 -2
  607. package/dist/services/entity-validator/blocks-validator.js.map +1 -1
  608. package/dist/services/entity-validator/blocks-validator.mjs +22 -2
  609. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
  610. package/dist/services/entity-validator/index.d.ts +15 -2
  611. package/dist/services/entity-validator/index.d.ts.map +1 -1
  612. package/dist/services/entity-validator/index.js +191 -120
  613. package/dist/services/entity-validator/index.js.map +1 -1
  614. package/dist/services/entity-validator/index.mjs +191 -120
  615. package/dist/services/entity-validator/index.mjs.map +1 -1
  616. package/dist/services/entity-validator/validators.d.ts +25 -22
  617. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  618. package/dist/services/entity-validator/validators.js +78 -28
  619. package/dist/services/entity-validator/validators.js.map +1 -1
  620. package/dist/services/entity-validator/validators.mjs +71 -20
  621. package/dist/services/entity-validator/validators.mjs.map +1 -1
  622. package/dist/services/event-hub.d.ts +1 -0
  623. package/dist/services/event-hub.d.ts.map +1 -1
  624. package/dist/services/event-hub.js +9 -4
  625. package/dist/services/event-hub.js.map +1 -1
  626. package/dist/services/event-hub.mjs +9 -4
  627. package/dist/services/event-hub.mjs.map +1 -1
  628. package/dist/services/features.d.ts +10 -0
  629. package/dist/services/features.d.ts.map +1 -0
  630. package/dist/services/features.js +17 -0
  631. package/dist/services/features.js.map +1 -0
  632. package/dist/services/features.mjs +17 -0
  633. package/dist/services/features.mjs.map +1 -0
  634. package/dist/services/fs.d.ts +2 -2
  635. package/dist/services/fs.d.ts.map +1 -1
  636. package/dist/services/fs.js.map +1 -1
  637. package/dist/services/fs.mjs.map +1 -1
  638. package/dist/services/metrics/admin-user-hash.d.ts +2 -2
  639. package/dist/services/metrics/admin-user-hash.d.ts.map +1 -1
  640. package/dist/services/metrics/admin-user-hash.js.map +1 -1
  641. package/dist/services/metrics/admin-user-hash.mjs.map +1 -1
  642. package/dist/services/metrics/index.d.ts +2 -2
  643. package/dist/services/metrics/index.d.ts.map +1 -1
  644. package/dist/services/metrics/index.js.map +1 -1
  645. package/dist/services/metrics/index.mjs.map +1 -1
  646. package/dist/services/metrics/middleware.d.ts +2 -2
  647. package/dist/services/metrics/middleware.d.ts.map +1 -1
  648. package/dist/services/metrics/middleware.js.map +1 -1
  649. package/dist/services/metrics/middleware.mjs.map +1 -1
  650. package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
  651. package/dist/services/metrics/rate-limiter.js.map +1 -1
  652. package/dist/services/metrics/rate-limiter.mjs.map +1 -1
  653. package/dist/services/metrics/sender.d.ts +3 -3
  654. package/dist/services/metrics/sender.d.ts.map +1 -1
  655. package/dist/services/metrics/sender.js.map +1 -1
  656. package/dist/services/metrics/sender.mjs.map +1 -1
  657. package/dist/services/query-params.d.ts +7 -0
  658. package/dist/services/query-params.d.ts.map +1 -0
  659. package/dist/services/query-params.js +12 -0
  660. package/dist/services/query-params.js.map +1 -0
  661. package/dist/services/query-params.mjs +13 -0
  662. package/dist/services/query-params.mjs.map +1 -0
  663. package/dist/services/reloader.d.ts +7 -0
  664. package/dist/services/reloader.d.ts.map +1 -0
  665. package/dist/services/reloader.js +36 -0
  666. package/dist/services/reloader.js.map +1 -0
  667. package/dist/services/reloader.mjs +36 -0
  668. package/dist/services/reloader.mjs.map +1 -0
  669. package/dist/services/server/admin-api.d.ts +3 -3
  670. package/dist/services/server/admin-api.d.ts.map +1 -1
  671. package/dist/services/server/admin-api.js.map +1 -1
  672. package/dist/services/server/admin-api.mjs.map +1 -1
  673. package/dist/services/server/api.d.ts +3 -3
  674. package/dist/services/server/api.d.ts.map +1 -1
  675. package/dist/services/server/api.js.map +1 -1
  676. package/dist/services/server/api.mjs.map +1 -1
  677. package/dist/services/server/compose-endpoint.d.ts +2 -2
  678. package/dist/services/server/compose-endpoint.d.ts.map +1 -1
  679. package/dist/services/server/compose-endpoint.js +4 -2
  680. package/dist/services/server/compose-endpoint.js.map +1 -1
  681. package/dist/services/server/compose-endpoint.mjs +5 -3
  682. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  683. package/dist/services/server/content-api.d.ts +3 -3
  684. package/dist/services/server/content-api.d.ts.map +1 -1
  685. package/dist/services/server/content-api.js.map +1 -1
  686. package/dist/services/server/content-api.mjs.map +1 -1
  687. package/dist/services/server/http-server.d.ts +2 -2
  688. package/dist/services/server/http-server.d.ts.map +1 -1
  689. package/dist/services/server/http-server.js.map +1 -1
  690. package/dist/services/server/http-server.mjs.map +1 -1
  691. package/dist/services/server/index.d.ts +2 -2
  692. package/dist/services/server/index.d.ts.map +1 -1
  693. package/dist/services/server/index.js +2 -3
  694. package/dist/services/server/index.js.map +1 -1
  695. package/dist/services/server/index.mjs +2 -3
  696. package/dist/services/server/index.mjs.map +1 -1
  697. package/dist/services/server/koa.d.ts.map +1 -1
  698. package/dist/services/server/koa.js +1 -1
  699. package/dist/services/server/koa.js.map +1 -1
  700. package/dist/services/server/koa.mjs +1 -1
  701. package/dist/services/server/koa.mjs.map +1 -1
  702. package/dist/services/server/middleware.d.ts +4 -8
  703. package/dist/services/server/middleware.d.ts.map +1 -1
  704. package/dist/services/server/middleware.js.map +1 -1
  705. package/dist/services/server/middleware.mjs.map +1 -1
  706. package/dist/services/server/policy.d.ts +3 -3
  707. package/dist/services/server/policy.d.ts.map +1 -1
  708. package/dist/services/server/policy.js +4 -4
  709. package/dist/services/server/policy.js.map +1 -1
  710. package/dist/services/server/policy.mjs +4 -4
  711. package/dist/services/server/policy.mjs.map +1 -1
  712. package/dist/services/server/register-middlewares.d.ts +2 -2
  713. package/dist/services/server/register-middlewares.d.ts.map +1 -1
  714. package/dist/services/server/register-middlewares.js +1 -1
  715. package/dist/services/server/register-middlewares.js.map +1 -1
  716. package/dist/services/server/register-middlewares.mjs +1 -1
  717. package/dist/services/server/register-middlewares.mjs.map +1 -1
  718. package/dist/services/server/register-routes.d.ts +2 -2
  719. package/dist/services/server/register-routes.d.ts.map +1 -1
  720. package/dist/services/server/register-routes.js +3 -3
  721. package/dist/services/server/register-routes.js.map +1 -1
  722. package/dist/services/server/register-routes.mjs +3 -3
  723. package/dist/services/server/register-routes.mjs.map +1 -1
  724. package/dist/services/server/routing.d.ts +5 -5
  725. package/dist/services/server/routing.d.ts.map +1 -1
  726. package/dist/services/server/routing.js.map +1 -1
  727. package/dist/services/server/routing.mjs.map +1 -1
  728. package/dist/services/utils/dynamic-zones.d.ts.map +1 -1
  729. package/dist/services/utils/dynamic-zones.js +2 -1
  730. package/dist/services/utils/dynamic-zones.js.map +1 -1
  731. package/dist/services/utils/dynamic-zones.mjs +2 -1
  732. package/dist/services/utils/dynamic-zones.mjs.map +1 -1
  733. package/dist/services/webhook-runner.d.ts +12 -2
  734. package/dist/services/webhook-runner.d.ts.map +1 -1
  735. package/dist/services/webhook-runner.js.map +1 -1
  736. package/dist/services/webhook-runner.mjs.map +1 -1
  737. package/dist/services/webhook-store.d.ts +4 -30
  738. package/dist/services/webhook-store.d.ts.map +1 -1
  739. package/dist/services/webhook-store.js +20 -10
  740. package/dist/services/webhook-store.js.map +1 -1
  741. package/dist/services/webhook-store.mjs +20 -10
  742. package/dist/services/webhook-store.mjs.map +1 -1
  743. package/dist/utils/convert-custom-field-type.d.ts +2 -3
  744. package/dist/utils/convert-custom-field-type.d.ts.map +1 -1
  745. package/dist/utils/convert-custom-field-type.js +2 -1
  746. package/dist/utils/convert-custom-field-type.js.map +1 -1
  747. package/dist/utils/convert-custom-field-type.mjs +1 -1
  748. package/dist/utils/convert-custom-field-type.mjs.map +1 -1
  749. package/dist/utils/ee.d.ts +1 -2
  750. package/dist/utils/ee.d.ts.map +1 -1
  751. package/dist/utils/fetch.d.ts +3 -2
  752. package/dist/utils/fetch.d.ts.map +1 -1
  753. package/dist/utils/fetch.js +6 -5
  754. package/dist/utils/fetch.js.map +1 -1
  755. package/dist/utils/fetch.mjs +6 -5
  756. package/dist/utils/fetch.mjs.map +1 -1
  757. package/dist/utils/filepath-to-prop-path.d.ts +5 -0
  758. package/dist/utils/filepath-to-prop-path.d.ts.map +1 -0
  759. package/dist/utils/filepath-to-prop-path.js +12 -0
  760. package/dist/utils/filepath-to-prop-path.js.map +1 -0
  761. package/dist/utils/filepath-to-prop-path.mjs +10 -0
  762. package/dist/utils/filepath-to-prop-path.mjs.map +1 -0
  763. package/dist/utils/index.d.ts +12 -4
  764. package/dist/utils/index.d.ts.map +1 -1
  765. package/dist/utils/is-initialized.d.ts +2 -2
  766. package/dist/utils/is-initialized.d.ts.map +1 -1
  767. package/dist/utils/is-initialized.js +5 -4
  768. package/dist/utils/is-initialized.js.map +1 -1
  769. package/dist/utils/is-initialized.mjs +4 -4
  770. package/dist/utils/is-initialized.mjs.map +1 -1
  771. package/dist/utils/load-config-file.d.ts +2 -0
  772. package/dist/utils/load-config-file.d.ts.map +1 -0
  773. package/dist/utils/load-config-file.js +45 -0
  774. package/dist/utils/load-config-file.js.map +1 -0
  775. package/dist/utils/load-config-file.mjs +42 -0
  776. package/dist/utils/load-config-file.mjs.map +1 -0
  777. package/dist/utils/load-files.d.ts +11 -0
  778. package/dist/utils/load-files.d.ts.map +1 -0
  779. package/dist/utils/load-files.js +39 -0
  780. package/dist/utils/load-files.js.map +1 -0
  781. package/dist/utils/load-files.mjs +35 -0
  782. package/dist/utils/load-files.mjs.map +1 -0
  783. package/dist/utils/open-browser.d.ts +2 -3
  784. package/dist/utils/open-browser.d.ts.map +1 -1
  785. package/dist/utils/open-browser.js +5 -5
  786. package/dist/utils/open-browser.js.map +1 -1
  787. package/dist/utils/open-browser.mjs +4 -5
  788. package/dist/utils/open-browser.mjs.map +1 -1
  789. package/dist/utils/resolve-working-dirs.d.ts +19 -0
  790. package/dist/utils/resolve-working-dirs.d.ts.map +1 -0
  791. package/dist/utils/resolve-working-dirs.js +13 -0
  792. package/dist/utils/resolve-working-dirs.js.map +1 -0
  793. package/dist/utils/resolve-working-dirs.mjs +11 -0
  794. package/dist/utils/resolve-working-dirs.mjs.map +1 -0
  795. package/dist/utils/signals.d.ts +2 -2
  796. package/dist/utils/signals.d.ts.map +1 -1
  797. package/dist/utils/signals.js.map +1 -1
  798. package/dist/utils/signals.mjs.map +1 -1
  799. package/dist/utils/startup-logger.d.ts +2 -3
  800. package/dist/utils/startup-logger.d.ts.map +1 -1
  801. package/dist/utils/startup-logger.js +19 -13
  802. package/dist/utils/startup-logger.js.map +1 -1
  803. package/dist/utils/startup-logger.mjs +18 -13
  804. package/dist/utils/startup-logger.mjs.map +1 -1
  805. package/dist/utils/transform-content-types-to-models.d.ts +129 -3
  806. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  807. package/dist/utils/transform-content-types-to-models.js +250 -15
  808. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  809. package/dist/utils/transform-content-types-to-models.mjs +247 -15
  810. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  811. package/dist/utils/update-notifier/index.d.ts +2 -8
  812. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  813. package/dist/utils/update-notifier/index.js +13 -10
  814. package/dist/utils/update-notifier/index.js.map +1 -1
  815. package/dist/utils/update-notifier/index.mjs +12 -10
  816. package/dist/utils/update-notifier/index.mjs.map +1 -1
  817. package/package.json +35 -39
  818. package/bin/strapi.js +0 -2
  819. package/dist/admin.d.ts +0 -5
  820. package/dist/admin.d.ts.map +0 -1
  821. package/dist/cli.d.ts +0 -2
  822. package/dist/cli.d.ts.map +0 -1
  823. package/dist/commands/actions/admin/create-user/action.d.ts +0 -12
  824. package/dist/commands/actions/admin/create-user/action.d.ts.map +0 -1
  825. package/dist/commands/actions/admin/create-user/command.d.ts +0 -7
  826. package/dist/commands/actions/admin/create-user/command.d.ts.map +0 -1
  827. package/dist/commands/actions/admin/reset-user-password/action.d.ts +0 -10
  828. package/dist/commands/actions/admin/reset-user-password/action.d.ts.map +0 -1
  829. package/dist/commands/actions/admin/reset-user-password/command.d.ts +0 -7
  830. package/dist/commands/actions/admin/reset-user-password/command.d.ts.map +0 -1
  831. package/dist/commands/actions/components/list/action.d.ts +0 -3
  832. package/dist/commands/actions/components/list/action.d.ts.map +0 -1
  833. package/dist/commands/actions/components/list/command.d.ts +0 -7
  834. package/dist/commands/actions/components/list/command.d.ts.map +0 -1
  835. package/dist/commands/actions/configuration/dump/action.d.ts +0 -11
  836. package/dist/commands/actions/configuration/dump/action.d.ts.map +0 -1
  837. package/dist/commands/actions/configuration/dump/command.d.ts +0 -7
  838. package/dist/commands/actions/configuration/dump/command.d.ts.map +0 -1
  839. package/dist/commands/actions/configuration/restore/action.d.ts +0 -11
  840. package/dist/commands/actions/configuration/restore/action.d.ts.map +0 -1
  841. package/dist/commands/actions/configuration/restore/command.d.ts +0 -7
  842. package/dist/commands/actions/configuration/restore/command.d.ts.map +0 -1
  843. package/dist/commands/actions/console/action.d.ts +0 -6
  844. package/dist/commands/actions/console/action.d.ts.map +0 -1
  845. package/dist/commands/actions/console/command.d.ts +0 -7
  846. package/dist/commands/actions/console/command.d.ts.map +0 -1
  847. package/dist/commands/actions/content-types/list/action.d.ts +0 -3
  848. package/dist/commands/actions/content-types/list/action.d.ts.map +0 -1
  849. package/dist/commands/actions/content-types/list/command.d.ts +0 -7
  850. package/dist/commands/actions/content-types/list/command.d.ts.map +0 -1
  851. package/dist/commands/actions/controllers/list/action.d.ts +0 -3
  852. package/dist/commands/actions/controllers/list/action.d.ts.map +0 -1
  853. package/dist/commands/actions/controllers/list/command.d.ts +0 -7
  854. package/dist/commands/actions/controllers/list/command.d.ts.map +0 -1
  855. package/dist/commands/actions/generate/command.d.ts +0 -7
  856. package/dist/commands/actions/generate/command.d.ts.map +0 -1
  857. package/dist/commands/actions/hooks/list/action.d.ts +0 -3
  858. package/dist/commands/actions/hooks/list/action.d.ts.map +0 -1
  859. package/dist/commands/actions/hooks/list/command.d.ts +0 -7
  860. package/dist/commands/actions/hooks/list/command.d.ts.map +0 -1
  861. package/dist/commands/actions/install/action.d.ts +0 -3
  862. package/dist/commands/actions/install/action.d.ts.map +0 -1
  863. package/dist/commands/actions/install/command.d.ts +0 -7
  864. package/dist/commands/actions/install/command.d.ts.map +0 -1
  865. package/dist/commands/actions/middlewares/list/action.d.ts +0 -3
  866. package/dist/commands/actions/middlewares/list/action.d.ts.map +0 -1
  867. package/dist/commands/actions/middlewares/list/command.d.ts +0 -7
  868. package/dist/commands/actions/middlewares/list/command.d.ts.map +0 -1
  869. package/dist/commands/actions/new/action.d.ts +0 -8
  870. package/dist/commands/actions/new/action.d.ts.map +0 -1
  871. package/dist/commands/actions/new/command.d.ts +0 -7
  872. package/dist/commands/actions/new/command.d.ts.map +0 -1
  873. package/dist/commands/actions/plugin/build-command/action.d.ts +0 -7
  874. package/dist/commands/actions/plugin/build-command/action.d.ts.map +0 -1
  875. package/dist/commands/actions/plugin/build-command/command.d.ts +0 -7
  876. package/dist/commands/actions/plugin/build-command/command.d.ts.map +0 -1
  877. package/dist/commands/actions/plugin/watch/action.d.ts +0 -7
  878. package/dist/commands/actions/plugin/watch/action.d.ts.map +0 -1
  879. package/dist/commands/actions/plugin/watch/command.d.ts +0 -7
  880. package/dist/commands/actions/plugin/watch/command.d.ts.map +0 -1
  881. package/dist/commands/actions/policies/list/action.d.ts +0 -3
  882. package/dist/commands/actions/policies/list/action.d.ts.map +0 -1
  883. package/dist/commands/actions/policies/list/command.d.ts +0 -7
  884. package/dist/commands/actions/policies/list/command.d.ts.map +0 -1
  885. package/dist/commands/actions/report/action.d.ts +0 -8
  886. package/dist/commands/actions/report/action.d.ts.map +0 -1
  887. package/dist/commands/actions/report/command.d.ts +0 -7
  888. package/dist/commands/actions/report/command.d.ts.map +0 -1
  889. package/dist/commands/actions/routes/list/action.d.ts +0 -3
  890. package/dist/commands/actions/routes/list/action.d.ts.map +0 -1
  891. package/dist/commands/actions/routes/list/command.d.ts +0 -7
  892. package/dist/commands/actions/routes/list/command.d.ts.map +0 -1
  893. package/dist/commands/actions/services/list/action.d.ts +0 -3
  894. package/dist/commands/actions/services/list/action.d.ts.map +0 -1
  895. package/dist/commands/actions/services/list/command.d.ts +0 -7
  896. package/dist/commands/actions/services/list/command.d.ts.map +0 -1
  897. package/dist/commands/actions/start/action.d.ts +0 -6
  898. package/dist/commands/actions/start/action.d.ts.map +0 -1
  899. package/dist/commands/actions/start/command.d.ts +0 -7
  900. package/dist/commands/actions/start/command.d.ts.map +0 -1
  901. package/dist/commands/actions/telemetry/disable/action.d.ts +0 -2
  902. package/dist/commands/actions/telemetry/disable/action.d.ts.map +0 -1
  903. package/dist/commands/actions/telemetry/disable/command.d.ts +0 -7
  904. package/dist/commands/actions/telemetry/disable/command.d.ts.map +0 -1
  905. package/dist/commands/actions/telemetry/enable/action.d.ts +0 -3
  906. package/dist/commands/actions/telemetry/enable/action.d.ts.map +0 -1
  907. package/dist/commands/actions/telemetry/enable/command.d.ts +0 -7
  908. package/dist/commands/actions/telemetry/enable/command.d.ts.map +0 -1
  909. package/dist/commands/actions/templates/generate/action.d.ts +0 -2
  910. package/dist/commands/actions/templates/generate/action.d.ts.map +0 -1
  911. package/dist/commands/actions/templates/generate/command.d.ts +0 -7
  912. package/dist/commands/actions/templates/generate/command.d.ts.map +0 -1
  913. package/dist/commands/actions/ts/generate-types/action.d.ts +0 -9
  914. package/dist/commands/actions/ts/generate-types/action.d.ts.map +0 -1
  915. package/dist/commands/actions/ts/generate-types/command.d.ts +0 -7
  916. package/dist/commands/actions/ts/generate-types/command.d.ts.map +0 -1
  917. package/dist/commands/actions/uninstall/action.d.ts +0 -6
  918. package/dist/commands/actions/uninstall/action.d.ts.map +0 -1
  919. package/dist/commands/actions/uninstall/command.d.ts +0 -7
  920. package/dist/commands/actions/uninstall/command.d.ts.map +0 -1
  921. package/dist/commands/actions/version/command.d.ts +0 -7
  922. package/dist/commands/actions/version/command.d.ts.map +0 -1
  923. package/dist/commands/actions/watch-admin/action.d.ts +0 -7
  924. package/dist/commands/actions/watch-admin/action.d.ts.map +0 -1
  925. package/dist/commands/actions/watch-admin/command.d.ts +0 -7
  926. package/dist/commands/actions/watch-admin/command.d.ts.map +0 -1
  927. package/dist/commands/index.d.ts +0 -37
  928. package/dist/commands/index.d.ts.map +0 -1
  929. package/dist/commands/types.d.ts +0 -14
  930. package/dist/commands/types.d.ts.map +0 -1
  931. package/dist/commands/utils/commander.d.ts +0 -36
  932. package/dist/commands/utils/commander.d.ts.map +0 -1
  933. package/dist/commands/utils/helpers.d.ts +0 -49
  934. package/dist/commands/utils/helpers.d.ts.map +0 -1
  935. package/dist/commands/utils/logger.d.ts +0 -19
  936. package/dist/commands/utils/logger.d.ts.map +0 -1
  937. package/dist/commands/utils/pkg.d.ts +0 -119
  938. package/dist/commands/utils/pkg.d.ts.map +0 -1
  939. package/dist/commands/utils/tsconfig.d.ts +0 -19
  940. package/dist/commands/utils/tsconfig.d.ts.map +0 -1
  941. package/dist/core/app-configuration/config-loader.d.ts.map +0 -1
  942. package/dist/core/app-configuration/config-loader.js +0 -19
  943. package/dist/core/app-configuration/config-loader.js.map +0 -1
  944. package/dist/core/app-configuration/config-loader.mjs +0 -17
  945. package/dist/core/app-configuration/config-loader.mjs.map +0 -1
  946. package/dist/core/app-configuration/index.d.ts +0 -36
  947. package/dist/core/app-configuration/index.d.ts.map +0 -1
  948. package/dist/core/app-configuration/index.js +0 -55
  949. package/dist/core/app-configuration/index.js.map +0 -1
  950. package/dist/core/app-configuration/index.mjs +0 -51
  951. package/dist/core/app-configuration/index.mjs.map +0 -1
  952. package/dist/core/app-configuration/load-config-file.d.ts +0 -2
  953. package/dist/core/app-configuration/load-config-file.d.ts.map +0 -1
  954. package/dist/core/app-configuration/load-config-file.js +0 -45
  955. package/dist/core/app-configuration/load-config-file.js.map +0 -1
  956. package/dist/core/app-configuration/load-config-file.mjs +0 -42
  957. package/dist/core/app-configuration/load-config-file.mjs.map +0 -1
  958. package/dist/core/bootstrap.d.ts +0 -5
  959. package/dist/core/bootstrap.d.ts.map +0 -1
  960. package/dist/core/bootstrap.js +0 -28
  961. package/dist/core/bootstrap.js.map +0 -1
  962. package/dist/core/bootstrap.mjs +0 -27
  963. package/dist/core/bootstrap.mjs.map +0 -1
  964. package/dist/core/domain/content-type/index.d.ts +0 -9
  965. package/dist/core/domain/content-type/index.d.ts.map +0 -1
  966. package/dist/core/domain/content-type/index.js +0 -122
  967. package/dist/core/domain/content-type/index.js.map +0 -1
  968. package/dist/core/domain/content-type/index.mjs +0 -120
  969. package/dist/core/domain/content-type/index.mjs.map +0 -1
  970. package/dist/core/domain/content-type/validator.d.ts.map +0 -1
  971. package/dist/core/domain/content-type/validator.js +0 -77
  972. package/dist/core/domain/content-type/validator.js.map +0 -1
  973. package/dist/core/domain/content-type/validator.mjs +0 -75
  974. package/dist/core/domain/content-type/validator.mjs.map +0 -1
  975. package/dist/core/domain/module/index.d.ts +0 -39
  976. package/dist/core/domain/module/index.d.ts.map +0 -1
  977. package/dist/core/domain/module/index.js +0 -107
  978. package/dist/core/domain/module/index.js.map +0 -1
  979. package/dist/core/domain/module/index.mjs +0 -105
  980. package/dist/core/domain/module/index.mjs.map +0 -1
  981. package/dist/core/domain/module/validation.d.ts.map +0 -1
  982. package/dist/core/domain/module/validation.js.map +0 -1
  983. package/dist/core/domain/module/validation.mjs.map +0 -1
  984. package/dist/core/loaders/admin.d.ts +0 -3
  985. package/dist/core/loaders/admin.d.ts.map +0 -1
  986. package/dist/core/loaders/admin.js +0 -16
  987. package/dist/core/loaders/admin.js.map +0 -1
  988. package/dist/core/loaders/admin.mjs +0 -15
  989. package/dist/core/loaders/admin.mjs.map +0 -1
  990. package/dist/core/loaders/apis.d.ts +0 -3
  991. package/dist/core/loaders/apis.d.ts.map +0 -1
  992. package/dist/core/loaders/apis.js +0 -130
  993. package/dist/core/loaders/apis.js.map +0 -1
  994. package/dist/core/loaders/apis.mjs +0 -128
  995. package/dist/core/loaders/apis.mjs.map +0 -1
  996. package/dist/core/loaders/components.d.ts +0 -3
  997. package/dist/core/loaders/components.d.ts.map +0 -1
  998. package/dist/core/loaders/components.js +0 -38
  999. package/dist/core/loaders/components.js.map +0 -1
  1000. package/dist/core/loaders/components.mjs +0 -37
  1001. package/dist/core/loaders/components.mjs.map +0 -1
  1002. package/dist/core/loaders/index.d.ts +0 -3
  1003. package/dist/core/loaders/index.d.ts.map +0 -1
  1004. package/dist/core/loaders/index.js +0 -26
  1005. package/dist/core/loaders/index.js.map +0 -1
  1006. package/dist/core/loaders/index.mjs +0 -26
  1007. package/dist/core/loaders/index.mjs.map +0 -1
  1008. package/dist/core/loaders/middlewares.d.ts +0 -3
  1009. package/dist/core/loaders/middlewares.d.ts.map +0 -1
  1010. package/dist/core/loaders/middlewares.js +0 -31
  1011. package/dist/core/loaders/middlewares.js.map +0 -1
  1012. package/dist/core/loaders/middlewares.mjs +0 -30
  1013. package/dist/core/loaders/middlewares.mjs.map +0 -1
  1014. package/dist/core/loaders/plugins/get-enabled-plugins.d.ts +0 -5
  1015. package/dist/core/loaders/plugins/get-enabled-plugins.d.ts.map +0 -1
  1016. package/dist/core/loaders/plugins/get-enabled-plugins.js +0 -110
  1017. package/dist/core/loaders/plugins/get-enabled-plugins.js.map +0 -1
  1018. package/dist/core/loaders/plugins/get-enabled-plugins.mjs +0 -108
  1019. package/dist/core/loaders/plugins/get-enabled-plugins.mjs.map +0 -1
  1020. package/dist/core/loaders/plugins/get-user-plugins-config.d.ts.map +0 -1
  1021. package/dist/core/loaders/plugins/get-user-plugins-config.js +0 -27
  1022. package/dist/core/loaders/plugins/get-user-plugins-config.js.map +0 -1
  1023. package/dist/core/loaders/plugins/get-user-plugins-config.mjs +0 -25
  1024. package/dist/core/loaders/plugins/get-user-plugins-config.mjs.map +0 -1
  1025. package/dist/core/loaders/plugins/index.d.ts +0 -3
  1026. package/dist/core/loaders/plugins/index.d.ts.map +0 -1
  1027. package/dist/core/loaders/plugins/index.js +0 -105
  1028. package/dist/core/loaders/plugins/index.js.map +0 -1
  1029. package/dist/core/loaders/plugins/index.mjs +0 -104
  1030. package/dist/core/loaders/plugins/index.mjs.map +0 -1
  1031. package/dist/core/loaders/policies.d.ts +0 -3
  1032. package/dist/core/loaders/policies.d.ts.map +0 -1
  1033. package/dist/core/loaders/policies.js.map +0 -1
  1034. package/dist/core/loaders/policies.mjs.map +0 -1
  1035. package/dist/core/loaders/sanitizers.d.ts +0 -4
  1036. package/dist/core/loaders/sanitizers.d.ts.map +0 -1
  1037. package/dist/core/loaders/sanitizers.js.map +0 -1
  1038. package/dist/core/loaders/sanitizers.mjs.map +0 -1
  1039. package/dist/core/loaders/src-index.d.ts +0 -4
  1040. package/dist/core/loaders/src-index.d.ts.map +0 -1
  1041. package/dist/core/loaders/src-index.js.map +0 -1
  1042. package/dist/core/loaders/src-index.mjs.map +0 -1
  1043. package/dist/core/loaders/validators.d.ts +0 -4
  1044. package/dist/core/loaders/validators.d.ts.map +0 -1
  1045. package/dist/core/loaders/validators.js.map +0 -1
  1046. package/dist/core/loaders/validators.mjs.map +0 -1
  1047. package/dist/core/registries/apis.d.ts +0 -8
  1048. package/dist/core/registries/apis.d.ts.map +0 -1
  1049. package/dist/core/registries/apis.js.map +0 -1
  1050. package/dist/core/registries/apis.mjs.map +0 -1
  1051. package/dist/core/registries/components.d.ts +0 -25
  1052. package/dist/core/registries/components.d.ts.map +0 -1
  1053. package/dist/core/registries/components.js.map +0 -1
  1054. package/dist/core/registries/components.mjs.map +0 -1
  1055. package/dist/core/registries/config.d.ts +0 -4
  1056. package/dist/core/registries/config.d.ts.map +0 -1
  1057. package/dist/core/registries/config.js +0 -23
  1058. package/dist/core/registries/config.js.map +0 -1
  1059. package/dist/core/registries/config.mjs +0 -22
  1060. package/dist/core/registries/config.mjs.map +0 -1
  1061. package/dist/core/registries/content-types.d.ts +0 -33
  1062. package/dist/core/registries/content-types.d.ts.map +0 -1
  1063. package/dist/core/registries/content-types.js +0 -71
  1064. package/dist/core/registries/content-types.js.map +0 -1
  1065. package/dist/core/registries/content-types.mjs +0 -72
  1066. package/dist/core/registries/content-types.mjs.map +0 -1
  1067. package/dist/core/registries/controllers.d.ts +0 -35
  1068. package/dist/core/registries/controllers.d.ts.map +0 -1
  1069. package/dist/core/registries/controllers.js +0 -80
  1070. package/dist/core/registries/controllers.js.map +0 -1
  1071. package/dist/core/registries/controllers.mjs +0 -81
  1072. package/dist/core/registries/controllers.mjs.map +0 -1
  1073. package/dist/core/registries/custom-fields.d.ts +0 -8
  1074. package/dist/core/registries/custom-fields.d.ts.map +0 -1
  1075. package/dist/core/registries/custom-fields.js.map +0 -1
  1076. package/dist/core/registries/custom-fields.mjs.map +0 -1
  1077. package/dist/core/registries/hooks.d.ts.map +0 -1
  1078. package/dist/core/registries/hooks.js +0 -58
  1079. package/dist/core/registries/hooks.js.map +0 -1
  1080. package/dist/core/registries/hooks.mjs +0 -59
  1081. package/dist/core/registries/hooks.mjs.map +0 -1
  1082. package/dist/core/registries/index.d.ts +0 -15
  1083. package/dist/core/registries/index.d.ts.map +0 -1
  1084. package/dist/core/registries/middlewares.d.ts +0 -31
  1085. package/dist/core/registries/middlewares.d.ts.map +0 -1
  1086. package/dist/core/registries/middlewares.js +0 -60
  1087. package/dist/core/registries/middlewares.js.map +0 -1
  1088. package/dist/core/registries/middlewares.mjs +0 -61
  1089. package/dist/core/registries/middlewares.mjs.map +0 -1
  1090. package/dist/core/registries/modules.d.ts +0 -15
  1091. package/dist/core/registries/modules.d.ts.map +0 -1
  1092. package/dist/core/registries/modules.js.map +0 -1
  1093. package/dist/core/registries/modules.mjs.map +0 -1
  1094. package/dist/core/registries/plugins.d.ts +0 -9
  1095. package/dist/core/registries/plugins.d.ts.map +0 -1
  1096. package/dist/core/registries/plugins.js.map +0 -1
  1097. package/dist/core/registries/plugins.mjs.map +0 -1
  1098. package/dist/core/registries/policies.d.ts +0 -34
  1099. package/dist/core/registries/policies.d.ts.map +0 -1
  1100. package/dist/core/registries/policies.js +0 -62
  1101. package/dist/core/registries/policies.js.map +0 -1
  1102. package/dist/core/registries/policies.mjs +0 -63
  1103. package/dist/core/registries/policies.mjs.map +0 -1
  1104. package/dist/core/registries/sanitizers.d.ts.map +0 -1
  1105. package/dist/core/registries/sanitizers.js.map +0 -1
  1106. package/dist/core/registries/sanitizers.mjs.map +0 -1
  1107. package/dist/core/registries/services.d.ts +0 -35
  1108. package/dist/core/registries/services.d.ts.map +0 -1
  1109. package/dist/core/registries/services.js +0 -80
  1110. package/dist/core/registries/services.js.map +0 -1
  1111. package/dist/core/registries/services.mjs +0 -81
  1112. package/dist/core/registries/services.mjs.map +0 -1
  1113. package/dist/core/registries/validators.d.ts.map +0 -1
  1114. package/dist/core/registries/validators.js.map +0 -1
  1115. package/dist/core/registries/validators.mjs.map +0 -1
  1116. package/dist/core/utils.d.ts +0 -5
  1117. package/dist/core/utils.d.ts.map +0 -1
  1118. package/dist/core/utils.js +0 -27
  1119. package/dist/core/utils.js.map +0 -1
  1120. package/dist/core/utils.mjs +0 -27
  1121. package/dist/core/utils.mjs.map +0 -1
  1122. package/dist/core-api/service/get-fetch-params.d.ts +0 -7
  1123. package/dist/core-api/service/get-fetch-params.d.ts.map +0 -1
  1124. package/dist/core-api/service/get-fetch-params.js +0 -14
  1125. package/dist/core-api/service/get-fetch-params.js.map +0 -1
  1126. package/dist/core-api/service/get-fetch-params.mjs +0 -14
  1127. package/dist/core-api/service/get-fetch-params.mjs.map +0 -1
  1128. package/dist/load/filepath-to-prop-path.d.ts +0 -6
  1129. package/dist/load/filepath-to-prop-path.d.ts.map +0 -1
  1130. package/dist/load/filepath-to-prop-path.js +0 -11
  1131. package/dist/load/filepath-to-prop-path.js.map +0 -1
  1132. package/dist/load/filepath-to-prop-path.mjs +0 -10
  1133. package/dist/load/filepath-to-prop-path.mjs.map +0 -1
  1134. package/dist/load/glob.d.ts +0 -7
  1135. package/dist/load/glob.d.ts.map +0 -1
  1136. package/dist/load/glob.js +0 -15
  1137. package/dist/load/glob.js.map +0 -1
  1138. package/dist/load/glob.mjs +0 -14
  1139. package/dist/load/glob.mjs.map +0 -1
  1140. package/dist/load/index.d.ts +0 -3
  1141. package/dist/load/index.d.ts.map +0 -1
  1142. package/dist/load/load-files.d.ts +0 -11
  1143. package/dist/load/load-files.d.ts.map +0 -1
  1144. package/dist/load/load-files.js +0 -38
  1145. package/dist/load/load-files.js.map +0 -1
  1146. package/dist/load/load-files.mjs +0 -35
  1147. package/dist/load/load-files.mjs.map +0 -1
  1148. package/dist/load/package-path.d.ts +0 -6
  1149. package/dist/load/package-path.d.ts.map +0 -1
  1150. package/dist/middlewares/public/assets/images/group_people_1.png +0 -0
  1151. package/dist/middlewares/public/assets/images/group_people_2.png +0 -0
  1152. package/dist/middlewares/public/assets/images/group_people_3.png +0 -0
  1153. package/dist/middlewares/public/assets/images/logo_login.png +0 -0
  1154. package/dist/middlewares/public/index.d.ts +0 -3
  1155. package/dist/middlewares/public/index.d.ts.map +0 -1
  1156. package/dist/middlewares/public/index.html +0 -66
  1157. package/dist/middlewares/public/index.js +0 -91
  1158. package/dist/middlewares/public/index.js.map +0 -1
  1159. package/dist/middlewares/public/index.mjs +0 -85
  1160. package/dist/middlewares/public/index.mjs.map +0 -1
  1161. package/dist/middlewares/public/serve-static.d.ts +0 -4
  1162. package/dist/middlewares/public/serve-static.d.ts.map +0 -1
  1163. package/dist/middlewares/public/serve-static.js +0 -24
  1164. package/dist/middlewares/public/serve-static.js.map +0 -1
  1165. package/dist/middlewares/public/serve-static.mjs +0 -21
  1166. package/dist/middlewares/public/serve-static.mjs.map +0 -1
  1167. package/dist/services/document-service/document-repository.d.ts +0 -21
  1168. package/dist/services/document-service/document-repository.d.ts.map +0 -1
  1169. package/dist/services/document-service/document-repository.js +0 -132
  1170. package/dist/services/document-service/document-repository.js.map +0 -1
  1171. package/dist/services/document-service/document-repository.mjs +0 -132
  1172. package/dist/services/document-service/document-repository.mjs.map +0 -1
  1173. package/dist/services/document-service/middlewares/defaults/draft-and-publish.d.ts +0 -26
  1174. package/dist/services/document-service/middlewares/defaults/draft-and-publish.d.ts.map +0 -1
  1175. package/dist/services/document-service/middlewares/defaults/draft-and-publish.js +0 -58
  1176. package/dist/services/document-service/middlewares/defaults/draft-and-publish.js.map +0 -1
  1177. package/dist/services/document-service/middlewares/defaults/draft-and-publish.mjs +0 -58
  1178. package/dist/services/document-service/middlewares/defaults/draft-and-publish.mjs.map +0 -1
  1179. package/dist/services/document-service/middlewares/defaults/index.d.ts +0 -3
  1180. package/dist/services/document-service/middlewares/defaults/index.d.ts.map +0 -1
  1181. package/dist/services/document-service/middlewares/defaults/index.js +0 -82
  1182. package/dist/services/document-service/middlewares/defaults/index.js.map +0 -1
  1183. package/dist/services/document-service/middlewares/defaults/index.mjs +0 -82
  1184. package/dist/services/document-service/middlewares/defaults/index.mjs.map +0 -1
  1185. package/dist/services/document-service/middlewares/defaults/locales.d.ts +0 -18
  1186. package/dist/services/document-service/middlewares/defaults/locales.d.ts.map +0 -1
  1187. package/dist/services/document-service/middlewares/defaults/locales.js +0 -40
  1188. package/dist/services/document-service/middlewares/defaults/locales.js.map +0 -1
  1189. package/dist/services/document-service/middlewares/defaults/locales.mjs +0 -40
  1190. package/dist/services/document-service/middlewares/defaults/locales.mjs.map +0 -1
  1191. package/dist/services/document-service/middlewares/index.js +0 -59
  1192. package/dist/services/document-service/middlewares/index.js.map +0 -1
  1193. package/dist/services/document-service/middlewares/index.mjs +0 -59
  1194. package/dist/services/document-service/middlewares/index.mjs.map +0 -1
  1195. package/dist/services/entity-service/attributes/index.d.ts +0 -6
  1196. package/dist/services/entity-service/attributes/index.d.ts.map +0 -1
  1197. package/dist/services/entity-service/attributes/index.js +0 -22
  1198. package/dist/services/entity-service/attributes/index.js.map +0 -1
  1199. package/dist/services/entity-service/attributes/index.mjs +0 -22
  1200. package/dist/services/entity-service/attributes/index.mjs.map +0 -1
  1201. package/dist/services/entity-service/attributes/transforms.d.ts +0 -10
  1202. package/dist/services/entity-service/attributes/transforms.d.ts.map +0 -1
  1203. package/dist/services/entity-service/attributes/transforms.js.map +0 -1
  1204. package/dist/services/entity-service/attributes/transforms.mjs.map +0 -1
  1205. package/dist/services/entity-service/components.d.ts +0 -23
  1206. package/dist/services/entity-service/components.d.ts.map +0 -1
  1207. package/dist/services/entity-service/components.js +0 -384
  1208. package/dist/services/entity-service/components.js.map +0 -1
  1209. package/dist/services/entity-service/components.mjs +0 -382
  1210. package/dist/services/entity-service/components.mjs.map +0 -1
  1211. package/dist/services/entity-service/params.d.ts +0 -8
  1212. package/dist/services/entity-service/params.d.ts.map +0 -1
  1213. package/dist/services/entity-service/params.js +0 -8
  1214. package/dist/services/entity-service/params.js.map +0 -1
  1215. package/dist/services/entity-service/params.mjs +0 -8
  1216. package/dist/services/entity-service/params.mjs.map +0 -1
  1217. package/dist/services/utils/upload-files.d.ts +0 -8
  1218. package/dist/services/utils/upload-files.d.ts.map +0 -1
  1219. package/dist/services/utils/upload-files.js +0 -64
  1220. package/dist/services/utils/upload-files.js.map +0 -1
  1221. package/dist/services/utils/upload-files.mjs +0 -63
  1222. package/dist/services/utils/upload-files.mjs.map +0 -1
  1223. package/dist/utils/addSlash.d.ts +0 -3
  1224. package/dist/utils/addSlash.d.ts.map +0 -1
  1225. package/dist/utils/ee.js +0 -4
  1226. package/dist/utils/ee.js.map +0 -1
  1227. package/dist/utils/ee.mjs +0 -5
  1228. package/dist/utils/ee.mjs.map +0 -1
  1229. package/dist/utils/get-dirs.d.ts +0 -10
  1230. package/dist/utils/get-dirs.d.ts.map +0 -1
  1231. package/dist/utils/get-dirs.js +0 -29
  1232. package/dist/utils/get-dirs.js.map +0 -1
  1233. package/dist/utils/get-dirs.mjs +0 -30
  1234. package/dist/utils/get-dirs.mjs.map +0 -1
  1235. /package/dist/{core/app-configuration → configuration}/config-loader.d.ts +0 -0
  1236. /package/dist/{core/domain → domain}/content-type/validator.d.ts +0 -0
  1237. /package/dist/{core/domain → domain}/module/validation.d.ts +0 -0
  1238. /package/dist/{core/domain → domain}/module/validation.js +0 -0
  1239. /package/dist/{core/domain → domain}/module/validation.mjs +0 -0
  1240. /package/dist/{core/loaders → loaders}/plugins/get-user-plugins-config.d.ts +0 -0
  1241. /package/dist/{core/loaders → loaders}/policies.js +0 -0
  1242. /package/dist/{core/loaders → loaders}/policies.mjs +0 -0
  1243. /package/dist/{core/loaders → loaders}/sanitizers.js +0 -0
  1244. /package/dist/{core/loaders → loaders}/sanitizers.mjs +0 -0
  1245. /package/dist/{core/loaders → loaders}/src-index.js +0 -0
  1246. /package/dist/{core/loaders → loaders}/src-index.mjs +0 -0
  1247. /package/dist/{core/loaders → loaders}/validators.js +0 -0
  1248. /package/dist/{core/loaders → loaders}/validators.mjs +0 -0
  1249. /package/dist/{core/registries → registries}/apis.js +0 -0
  1250. /package/dist/{core/registries → registries}/apis.mjs +0 -0
  1251. /package/dist/{core/registries → registries}/components.js +0 -0
  1252. /package/dist/{core/registries → registries}/components.mjs +0 -0
  1253. /package/dist/{core/registries → registries}/custom-fields.js +0 -0
  1254. /package/dist/{core/registries → registries}/custom-fields.mjs +0 -0
  1255. /package/dist/{core/registries → registries}/hooks.d.ts +0 -0
  1256. /package/dist/{core/registries → registries}/modules.js +0 -0
  1257. /package/dist/{core/registries → registries}/modules.mjs +0 -0
  1258. /package/dist/{core/registries → registries}/plugins.js +0 -0
  1259. /package/dist/{core/registries → registries}/plugins.mjs +0 -0
  1260. /package/dist/{core/registries → registries}/sanitizers.d.ts +0 -0
  1261. /package/dist/{core/registries → registries}/sanitizers.js +0 -0
  1262. /package/dist/{core/registries → registries}/sanitizers.mjs +0 -0
  1263. /package/dist/{core/registries → registries}/validators.d.ts +0 -0
  1264. /package/dist/{core/registries → registries}/validators.js +0 -0
  1265. /package/dist/{core/registries → registries}/validators.mjs +0 -0
  1266. /package/dist/services/{entity-service → document-service}/attributes/transforms.js +0 -0
  1267. /package/dist/services/{entity-service → document-service}/attributes/transforms.mjs +0 -0
package/dist/ee/index.js CHANGED
@@ -134,7 +134,7 @@ const list = () => {
134
134
  ) || [];
135
135
  };
136
136
  const get = (featureName) => list().find((feature) => feature.name === featureName);
137
- const EE = Object.freeze({
137
+ const index = Object.freeze({
138
138
  init,
139
139
  checkLicense,
140
140
  get isEE() {
@@ -149,5 +149,5 @@ const EE = Object.freeze({
149
149
  isEnabled: (featureName) => get(featureName) !== void 0
150
150
  })
151
151
  });
152
- module.exports = EE;
152
+ module.exports = index;
153
153
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/ee/index.ts"],"sourcesContent":["import { pick, isEqual } from 'lodash/fp';\nimport type { Logger } from '@strapi/logger';\nimport type { Strapi } from '@strapi/types';\n\nimport { readLicense, verifyLicense, fetchLicense, LicenseCheckError } from './license';\nimport { shiftCronExpression } from '../utils/cron';\n\nconst ONE_MINUTE = 1000 * 60;\n\ninterface EE {\n enabled: boolean;\n licenseInfo: {\n licenseKey?: string;\n features?: Array<{ name: string } | string>;\n expireAt?: string;\n seats?: number;\n type?: string;\n };\n logger?: Logger;\n}\n\nconst ee: EE = {\n enabled: false,\n licenseInfo: {},\n};\n\nconst disable = (message: string) => {\n // Prevent emitting ee.disable if it was already disabled\n const shouldEmitEvent = ee.enabled !== false;\n\n ee.logger?.warn(`${message} Switching to CE.`);\n // Only keep the license key for potential re-enabling during a later check\n ee.licenseInfo = pick('licenseKey', ee.licenseInfo);\n\n ee.enabled = false;\n\n if (shouldEmitEvent) {\n // Notify EE features that they should be disabled\n strapi.eventHub.emit('ee.disable');\n }\n};\n\nconst enable = () => {\n // Prevent emitting ee.enable if it was already enabled\n const shouldEmitEvent = ee.enabled !== true;\n\n ee.enabled = true;\n\n if (shouldEmitEvent) {\n // Notify EE features that they should be disabled\n strapi.eventHub.emit('ee.enable');\n }\n};\n\nlet initialized = false;\n\n/**\n * Optimistically enable EE if the format of the license is valid, only run once.\n */\nconst init = (licenseDir: string, logger?: Logger) => {\n if (initialized) {\n return;\n }\n\n initialized = true;\n ee.logger = logger;\n\n if (process.env.STRAPI_DISABLE_EE?.toLowerCase() === 'true') {\n return;\n }\n\n try {\n const license = process.env.STRAPI_LICENSE || readLicense(licenseDir);\n\n if (license) {\n ee.licenseInfo = verifyLicense(license);\n enable();\n }\n } catch (error) {\n if (error instanceof Error) {\n disable(error.message);\n } else {\n disable('Invalid license.');\n }\n }\n};\n\n/**\n * Contact the license registry to update the license to its latest state.\n *\n * Store the result in database to avoid unecessary requests, and will fallback to that in case of a network failure.\n */\nconst onlineUpdate = async ({ strapi }: { strapi: Strapi }) => {\n const { get, commit, rollback } = (await strapi.db?.transaction()) as any;\n const transaction = get();\n\n try {\n const storedInfo = await strapi.db\n ?.queryBuilder('strapi::core-store')\n .where({ key: 'ee_information' })\n .select('value')\n .first()\n .transacting(transaction)\n .forUpdate()\n .execute()\n .then((result: any) => (result ? JSON.parse(result.value) : result));\n\n const shouldContactRegistry = (storedInfo?.lastCheckAt ?? 0) < Date.now() - ONE_MINUTE;\n const result: {\n license?: string | null;\n error?: string;\n lastCheckAt?: number;\n } = { lastCheckAt: Date.now() };\n\n const fallback = (error: Error) => {\n if (error instanceof LicenseCheckError && error.shouldFallback && storedInfo?.license) {\n ee.logger?.warn(\n `${error.message} The last stored one will be used as a potential fallback.`\n );\n return storedInfo.license;\n }\n\n result.error = error.message;\n disable(error.message);\n };\n\n if (!ee?.licenseInfo?.licenseKey) {\n throw new Error('Missing license key.');\n }\n\n const license = shouldContactRegistry\n ? await fetchLicense({ strapi }, ee.licenseInfo.licenseKey, strapi.config.get('uuid')).catch(\n fallback\n )\n : storedInfo.license;\n\n if (license) {\n try {\n // Verify license and check if its info changed\n const newLicenseInfo = verifyLicense(license);\n const licenseInfoChanged =\n !isEqual(newLicenseInfo.features, ee.licenseInfo.features) ||\n newLicenseInfo.seats !== ee.licenseInfo.seats ||\n newLicenseInfo.type !== ee.licenseInfo.type;\n\n // Store the new license info\n ee.licenseInfo = newLicenseInfo;\n const wasEnabled = ee.enabled;\n validateInfo();\n\n // Notify EE features\n if (licenseInfoChanged && wasEnabled) {\n strapi.eventHub.emit('ee.update');\n }\n } catch (error) {\n if (error instanceof Error) {\n disable(error.message);\n } else {\n disable('Invalid license.');\n }\n }\n } else if (!shouldContactRegistry) {\n disable(storedInfo.error);\n }\n\n if (shouldContactRegistry) {\n result.license = license ?? null;\n const query = strapi.db!.queryBuilder('strapi::core-store').transacting(transaction);\n\n if (!storedInfo) {\n query.insert({ key: 'ee_information', value: JSON.stringify(result) });\n } else {\n query.update({ value: JSON.stringify(result) }).where({ key: 'ee_information' });\n }\n\n await query.execute();\n }\n\n await commit();\n } catch (error) {\n // Example of errors: SQLite does not support FOR UPDATE\n await rollback();\n }\n};\n\nconst validateInfo = () => {\n if (typeof ee.licenseInfo.expireAt === 'undefined') {\n throw new Error('Missing license key.');\n }\n\n const expirationTime = new Date(ee.licenseInfo.expireAt).getTime();\n\n if (expirationTime < new Date().getTime()) {\n return disable('License expired.');\n }\n\n enable();\n};\n\nconst checkLicense = async ({ strapi }: { strapi: Strapi }) => {\n const shouldStayOffline =\n ee.licenseInfo.type === 'gold' &&\n // This env variable support is temporarily used to ease the migration between online vs offline\n process.env.STRAPI_DISABLE_LICENSE_PING?.toLowerCase() === 'true';\n\n if (!shouldStayOffline) {\n await onlineUpdate({ strapi });\n strapi.cron.add({ [shiftCronExpression('0 0 */12 * * *')]: onlineUpdate });\n } else {\n if (!ee.licenseInfo.expireAt) {\n return disable('Your license does not have offline support.');\n }\n\n validateInfo();\n }\n};\n\nconst list = () => {\n return (\n ee.licenseInfo.features?.map((feature) =>\n typeof feature === 'object' ? feature : { name: feature }\n ) || []\n );\n};\n\nconst get = (featureName: string) => list().find((feature) => feature.name === featureName);\n\nexport default Object.freeze({\n init,\n checkLicense,\n\n get isEE() {\n return ee.enabled;\n },\n\n get seats() {\n return ee.licenseInfo.seats;\n },\n\n features: Object.freeze({\n list,\n get,\n isEnabled: (featureName: string) => get(featureName) !== undefined,\n }),\n});\n"],"names":["pick","license","readLicense","verifyLicense","strapi","get","result","LicenseCheckError","fetchLicense","isEqual","shiftCronExpression"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/ee/index.ts"],"sourcesContent":["import { pick, isEqual } from 'lodash/fp';\nimport type { Logger } from '@strapi/logger';\nimport type { Core } from '@strapi/types';\n\nimport { readLicense, verifyLicense, fetchLicense, LicenseCheckError } from './license';\nimport { shiftCronExpression } from '../utils/cron';\n\nconst ONE_MINUTE = 1000 * 60;\n\ninterface EE {\n enabled: boolean;\n licenseInfo: {\n licenseKey?: string;\n features?: Array<{ name: string; [key: string]: any } | string>;\n expireAt?: string;\n seats?: number;\n type?: string;\n };\n logger?: Logger;\n}\n\nconst ee: EE = {\n enabled: false,\n licenseInfo: {},\n};\n\nconst disable = (message: string) => {\n // Prevent emitting ee.disable if it was already disabled\n const shouldEmitEvent = ee.enabled !== false;\n\n ee.logger?.warn(`${message} Switching to CE.`);\n // Only keep the license key for potential re-enabling during a later check\n ee.licenseInfo = pick('licenseKey', ee.licenseInfo);\n\n ee.enabled = false;\n\n if (shouldEmitEvent) {\n // Notify EE features that they should be disabled\n strapi.eventHub.emit('ee.disable');\n }\n};\n\nconst enable = () => {\n // Prevent emitting ee.enable if it was already enabled\n const shouldEmitEvent = ee.enabled !== true;\n\n ee.enabled = true;\n\n if (shouldEmitEvent) {\n // Notify EE features that they should be disabled\n strapi.eventHub.emit('ee.enable');\n }\n};\n\nlet initialized = false;\n\n/**\n * Optimistically enable EE if the format of the license is valid, only run once.\n */\nconst init = (licenseDir: string, logger?: Logger) => {\n if (initialized) {\n return;\n }\n\n initialized = true;\n ee.logger = logger;\n\n if (process.env.STRAPI_DISABLE_EE?.toLowerCase() === 'true') {\n return;\n }\n\n try {\n const license = process.env.STRAPI_LICENSE || readLicense(licenseDir);\n\n if (license) {\n ee.licenseInfo = verifyLicense(license);\n enable();\n }\n } catch (error) {\n if (error instanceof Error) {\n disable(error.message);\n } else {\n disable('Invalid license.');\n }\n }\n};\n\n/**\n * Contact the license registry to update the license to its latest state.\n *\n * Store the result in database to avoid unecessary requests, and will fallback to that in case of a network failure.\n */\nconst onlineUpdate = async ({ strapi }: { strapi: Core.Strapi }) => {\n const { get, commit, rollback } = (await strapi.db?.transaction()) as any;\n const transaction = get();\n\n try {\n const storedInfo = await strapi.db\n ?.queryBuilder('strapi::core-store')\n .where({ key: 'ee_information' })\n .select('value')\n .first()\n .transacting(transaction)\n .forUpdate()\n .execute()\n .then((result: any) => (result ? JSON.parse(result.value) : result));\n\n const shouldContactRegistry = (storedInfo?.lastCheckAt ?? 0) < Date.now() - ONE_MINUTE;\n const result: {\n license?: string | null;\n error?: string;\n lastCheckAt?: number;\n } = { lastCheckAt: Date.now() };\n\n const fallback = (error: Error) => {\n if (error instanceof LicenseCheckError && error.shouldFallback && storedInfo?.license) {\n ee.logger?.warn(\n `${error.message} The last stored one will be used as a potential fallback.`\n );\n return storedInfo.license;\n }\n\n result.error = error.message;\n disable(error.message);\n };\n\n if (!ee?.licenseInfo?.licenseKey) {\n throw new Error('Missing license key.');\n }\n\n const license = shouldContactRegistry\n ? await fetchLicense({ strapi }, ee.licenseInfo.licenseKey, strapi.config.get('uuid')).catch(\n fallback\n )\n : storedInfo.license;\n\n if (license) {\n try {\n // Verify license and check if its info changed\n const newLicenseInfo = verifyLicense(license);\n const licenseInfoChanged =\n !isEqual(newLicenseInfo.features, ee.licenseInfo.features) ||\n newLicenseInfo.seats !== ee.licenseInfo.seats ||\n newLicenseInfo.type !== ee.licenseInfo.type;\n\n // Store the new license info\n ee.licenseInfo = newLicenseInfo;\n const wasEnabled = ee.enabled;\n validateInfo();\n\n // Notify EE features\n if (licenseInfoChanged && wasEnabled) {\n strapi.eventHub.emit('ee.update');\n }\n } catch (error) {\n if (error instanceof Error) {\n disable(error.message);\n } else {\n disable('Invalid license.');\n }\n }\n } else if (!shouldContactRegistry) {\n disable(storedInfo.error);\n }\n\n if (shouldContactRegistry) {\n result.license = license ?? null;\n const query = strapi.db.queryBuilder('strapi::core-store').transacting(transaction);\n\n if (!storedInfo) {\n query.insert({ key: 'ee_information', value: JSON.stringify(result) });\n } else {\n query.update({ value: JSON.stringify(result) }).where({ key: 'ee_information' });\n }\n\n await query.execute();\n }\n\n await commit();\n } catch (error) {\n // Example of errors: SQLite does not support FOR UPDATE\n await rollback();\n }\n};\n\nconst validateInfo = () => {\n if (typeof ee.licenseInfo.expireAt === 'undefined') {\n throw new Error('Missing license key.');\n }\n\n const expirationTime = new Date(ee.licenseInfo.expireAt).getTime();\n\n if (expirationTime < new Date().getTime()) {\n return disable('License expired.');\n }\n\n enable();\n};\n\nconst checkLicense = async ({ strapi }: { strapi: Core.Strapi }) => {\n const shouldStayOffline =\n ee.licenseInfo.type === 'gold' &&\n // This env variable support is temporarily used to ease the migration between online vs offline\n process.env.STRAPI_DISABLE_LICENSE_PING?.toLowerCase() === 'true';\n\n if (!shouldStayOffline) {\n await onlineUpdate({ strapi });\n strapi.cron.add({ [shiftCronExpression('0 0 */12 * * *')]: onlineUpdate });\n } else {\n if (!ee.licenseInfo.expireAt) {\n return disable('Your license does not have offline support.');\n }\n\n validateInfo();\n }\n};\n\nconst list = () => {\n return (\n ee.licenseInfo.features?.map((feature) =>\n typeof feature === 'object' ? feature : { name: feature }\n ) || []\n );\n};\n\nconst get = (featureName: string) => list().find((feature) => feature.name === featureName);\n\nexport default Object.freeze({\n init,\n checkLicense,\n\n get isEE() {\n return ee.enabled;\n },\n\n get seats() {\n return ee.licenseInfo.seats;\n },\n\n features: Object.freeze({\n list,\n get,\n isEnabled: (featureName: string) => get(featureName) !== undefined,\n }),\n});\n"],"names":["pick","license","readLicense","verifyLicense","strapi","get","result","LicenseCheckError","fetchLicense","isEqual","shiftCronExpression"],"mappings":"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"}
package/dist/ee/index.mjs CHANGED
@@ -133,7 +133,7 @@ const list = () => {
133
133
  ) || [];
134
134
  };
135
135
  const get = (featureName) => list().find((feature) => feature.name === featureName);
136
- const EE = Object.freeze({
136
+ const index = Object.freeze({
137
137
  init,
138
138
  checkLicense,
139
139
  get isEE() {
@@ -149,6 +149,6 @@ const EE = Object.freeze({
149
149
  })
150
150
  });
151
151
  export {
152
- EE as default
152
+ index as default
153
153
  };
154
154
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/ee/index.ts"],"sourcesContent":["import { pick, isEqual } from 'lodash/fp';\nimport type { Logger } from '@strapi/logger';\nimport type { Strapi } from '@strapi/types';\n\nimport { readLicense, verifyLicense, fetchLicense, LicenseCheckError } from './license';\nimport { shiftCronExpression } from '../utils/cron';\n\nconst ONE_MINUTE = 1000 * 60;\n\ninterface EE {\n enabled: boolean;\n licenseInfo: {\n licenseKey?: string;\n features?: Array<{ name: string } | string>;\n expireAt?: string;\n seats?: number;\n type?: string;\n };\n logger?: Logger;\n}\n\nconst ee: EE = {\n enabled: false,\n licenseInfo: {},\n};\n\nconst disable = (message: string) => {\n // Prevent emitting ee.disable if it was already disabled\n const shouldEmitEvent = ee.enabled !== false;\n\n ee.logger?.warn(`${message} Switching to CE.`);\n // Only keep the license key for potential re-enabling during a later check\n ee.licenseInfo = pick('licenseKey', ee.licenseInfo);\n\n ee.enabled = false;\n\n if (shouldEmitEvent) {\n // Notify EE features that they should be disabled\n strapi.eventHub.emit('ee.disable');\n }\n};\n\nconst enable = () => {\n // Prevent emitting ee.enable if it was already enabled\n const shouldEmitEvent = ee.enabled !== true;\n\n ee.enabled = true;\n\n if (shouldEmitEvent) {\n // Notify EE features that they should be disabled\n strapi.eventHub.emit('ee.enable');\n }\n};\n\nlet initialized = false;\n\n/**\n * Optimistically enable EE if the format of the license is valid, only run once.\n */\nconst init = (licenseDir: string, logger?: Logger) => {\n if (initialized) {\n return;\n }\n\n initialized = true;\n ee.logger = logger;\n\n if (process.env.STRAPI_DISABLE_EE?.toLowerCase() === 'true') {\n return;\n }\n\n try {\n const license = process.env.STRAPI_LICENSE || readLicense(licenseDir);\n\n if (license) {\n ee.licenseInfo = verifyLicense(license);\n enable();\n }\n } catch (error) {\n if (error instanceof Error) {\n disable(error.message);\n } else {\n disable('Invalid license.');\n }\n }\n};\n\n/**\n * Contact the license registry to update the license to its latest state.\n *\n * Store the result in database to avoid unecessary requests, and will fallback to that in case of a network failure.\n */\nconst onlineUpdate = async ({ strapi }: { strapi: Strapi }) => {\n const { get, commit, rollback } = (await strapi.db?.transaction()) as any;\n const transaction = get();\n\n try {\n const storedInfo = await strapi.db\n ?.queryBuilder('strapi::core-store')\n .where({ key: 'ee_information' })\n .select('value')\n .first()\n .transacting(transaction)\n .forUpdate()\n .execute()\n .then((result: any) => (result ? JSON.parse(result.value) : result));\n\n const shouldContactRegistry = (storedInfo?.lastCheckAt ?? 0) < Date.now() - ONE_MINUTE;\n const result: {\n license?: string | null;\n error?: string;\n lastCheckAt?: number;\n } = { lastCheckAt: Date.now() };\n\n const fallback = (error: Error) => {\n if (error instanceof LicenseCheckError && error.shouldFallback && storedInfo?.license) {\n ee.logger?.warn(\n `${error.message} The last stored one will be used as a potential fallback.`\n );\n return storedInfo.license;\n }\n\n result.error = error.message;\n disable(error.message);\n };\n\n if (!ee?.licenseInfo?.licenseKey) {\n throw new Error('Missing license key.');\n }\n\n const license = shouldContactRegistry\n ? await fetchLicense({ strapi }, ee.licenseInfo.licenseKey, strapi.config.get('uuid')).catch(\n fallback\n )\n : storedInfo.license;\n\n if (license) {\n try {\n // Verify license and check if its info changed\n const newLicenseInfo = verifyLicense(license);\n const licenseInfoChanged =\n !isEqual(newLicenseInfo.features, ee.licenseInfo.features) ||\n newLicenseInfo.seats !== ee.licenseInfo.seats ||\n newLicenseInfo.type !== ee.licenseInfo.type;\n\n // Store the new license info\n ee.licenseInfo = newLicenseInfo;\n const wasEnabled = ee.enabled;\n validateInfo();\n\n // Notify EE features\n if (licenseInfoChanged && wasEnabled) {\n strapi.eventHub.emit('ee.update');\n }\n } catch (error) {\n if (error instanceof Error) {\n disable(error.message);\n } else {\n disable('Invalid license.');\n }\n }\n } else if (!shouldContactRegistry) {\n disable(storedInfo.error);\n }\n\n if (shouldContactRegistry) {\n result.license = license ?? null;\n const query = strapi.db!.queryBuilder('strapi::core-store').transacting(transaction);\n\n if (!storedInfo) {\n query.insert({ key: 'ee_information', value: JSON.stringify(result) });\n } else {\n query.update({ value: JSON.stringify(result) }).where({ key: 'ee_information' });\n }\n\n await query.execute();\n }\n\n await commit();\n } catch (error) {\n // Example of errors: SQLite does not support FOR UPDATE\n await rollback();\n }\n};\n\nconst validateInfo = () => {\n if (typeof ee.licenseInfo.expireAt === 'undefined') {\n throw new Error('Missing license key.');\n }\n\n const expirationTime = new Date(ee.licenseInfo.expireAt).getTime();\n\n if (expirationTime < new Date().getTime()) {\n return disable('License expired.');\n }\n\n enable();\n};\n\nconst checkLicense = async ({ strapi }: { strapi: Strapi }) => {\n const shouldStayOffline =\n ee.licenseInfo.type === 'gold' &&\n // This env variable support is temporarily used to ease the migration between online vs offline\n process.env.STRAPI_DISABLE_LICENSE_PING?.toLowerCase() === 'true';\n\n if (!shouldStayOffline) {\n await onlineUpdate({ strapi });\n strapi.cron.add({ [shiftCronExpression('0 0 */12 * * *')]: onlineUpdate });\n } else {\n if (!ee.licenseInfo.expireAt) {\n return disable('Your license does not have offline support.');\n }\n\n validateInfo();\n }\n};\n\nconst list = () => {\n return (\n ee.licenseInfo.features?.map((feature) =>\n typeof feature === 'object' ? feature : { name: feature }\n ) || []\n );\n};\n\nconst get = (featureName: string) => list().find((feature) => feature.name === featureName);\n\nexport default Object.freeze({\n init,\n checkLicense,\n\n get isEE() {\n return ee.enabled;\n },\n\n get seats() {\n return ee.licenseInfo.seats;\n },\n\n features: Object.freeze({\n list,\n get,\n isEnabled: (featureName: string) => get(featureName) !== undefined,\n }),\n});\n"],"names":["strapi","get","result"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/ee/index.ts"],"sourcesContent":["import { pick, isEqual } from 'lodash/fp';\nimport type { Logger } from '@strapi/logger';\nimport type { Core } from '@strapi/types';\n\nimport { readLicense, verifyLicense, fetchLicense, LicenseCheckError } from './license';\nimport { shiftCronExpression } from '../utils/cron';\n\nconst ONE_MINUTE = 1000 * 60;\n\ninterface EE {\n enabled: boolean;\n licenseInfo: {\n licenseKey?: string;\n features?: Array<{ name: string; [key: string]: any } | string>;\n expireAt?: string;\n seats?: number;\n type?: string;\n };\n logger?: Logger;\n}\n\nconst ee: EE = {\n enabled: false,\n licenseInfo: {},\n};\n\nconst disable = (message: string) => {\n // Prevent emitting ee.disable if it was already disabled\n const shouldEmitEvent = ee.enabled !== false;\n\n ee.logger?.warn(`${message} Switching to CE.`);\n // Only keep the license key for potential re-enabling during a later check\n ee.licenseInfo = pick('licenseKey', ee.licenseInfo);\n\n ee.enabled = false;\n\n if (shouldEmitEvent) {\n // Notify EE features that they should be disabled\n strapi.eventHub.emit('ee.disable');\n }\n};\n\nconst enable = () => {\n // Prevent emitting ee.enable if it was already enabled\n const shouldEmitEvent = ee.enabled !== true;\n\n ee.enabled = true;\n\n if (shouldEmitEvent) {\n // Notify EE features that they should be disabled\n strapi.eventHub.emit('ee.enable');\n }\n};\n\nlet initialized = false;\n\n/**\n * Optimistically enable EE if the format of the license is valid, only run once.\n */\nconst init = (licenseDir: string, logger?: Logger) => {\n if (initialized) {\n return;\n }\n\n initialized = true;\n ee.logger = logger;\n\n if (process.env.STRAPI_DISABLE_EE?.toLowerCase() === 'true') {\n return;\n }\n\n try {\n const license = process.env.STRAPI_LICENSE || readLicense(licenseDir);\n\n if (license) {\n ee.licenseInfo = verifyLicense(license);\n enable();\n }\n } catch (error) {\n if (error instanceof Error) {\n disable(error.message);\n } else {\n disable('Invalid license.');\n }\n }\n};\n\n/**\n * Contact the license registry to update the license to its latest state.\n *\n * Store the result in database to avoid unecessary requests, and will fallback to that in case of a network failure.\n */\nconst onlineUpdate = async ({ strapi }: { strapi: Core.Strapi }) => {\n const { get, commit, rollback } = (await strapi.db?.transaction()) as any;\n const transaction = get();\n\n try {\n const storedInfo = await strapi.db\n ?.queryBuilder('strapi::core-store')\n .where({ key: 'ee_information' })\n .select('value')\n .first()\n .transacting(transaction)\n .forUpdate()\n .execute()\n .then((result: any) => (result ? JSON.parse(result.value) : result));\n\n const shouldContactRegistry = (storedInfo?.lastCheckAt ?? 0) < Date.now() - ONE_MINUTE;\n const result: {\n license?: string | null;\n error?: string;\n lastCheckAt?: number;\n } = { lastCheckAt: Date.now() };\n\n const fallback = (error: Error) => {\n if (error instanceof LicenseCheckError && error.shouldFallback && storedInfo?.license) {\n ee.logger?.warn(\n `${error.message} The last stored one will be used as a potential fallback.`\n );\n return storedInfo.license;\n }\n\n result.error = error.message;\n disable(error.message);\n };\n\n if (!ee?.licenseInfo?.licenseKey) {\n throw new Error('Missing license key.');\n }\n\n const license = shouldContactRegistry\n ? await fetchLicense({ strapi }, ee.licenseInfo.licenseKey, strapi.config.get('uuid')).catch(\n fallback\n )\n : storedInfo.license;\n\n if (license) {\n try {\n // Verify license and check if its info changed\n const newLicenseInfo = verifyLicense(license);\n const licenseInfoChanged =\n !isEqual(newLicenseInfo.features, ee.licenseInfo.features) ||\n newLicenseInfo.seats !== ee.licenseInfo.seats ||\n newLicenseInfo.type !== ee.licenseInfo.type;\n\n // Store the new license info\n ee.licenseInfo = newLicenseInfo;\n const wasEnabled = ee.enabled;\n validateInfo();\n\n // Notify EE features\n if (licenseInfoChanged && wasEnabled) {\n strapi.eventHub.emit('ee.update');\n }\n } catch (error) {\n if (error instanceof Error) {\n disable(error.message);\n } else {\n disable('Invalid license.');\n }\n }\n } else if (!shouldContactRegistry) {\n disable(storedInfo.error);\n }\n\n if (shouldContactRegistry) {\n result.license = license ?? null;\n const query = strapi.db.queryBuilder('strapi::core-store').transacting(transaction);\n\n if (!storedInfo) {\n query.insert({ key: 'ee_information', value: JSON.stringify(result) });\n } else {\n query.update({ value: JSON.stringify(result) }).where({ key: 'ee_information' });\n }\n\n await query.execute();\n }\n\n await commit();\n } catch (error) {\n // Example of errors: SQLite does not support FOR UPDATE\n await rollback();\n }\n};\n\nconst validateInfo = () => {\n if (typeof ee.licenseInfo.expireAt === 'undefined') {\n throw new Error('Missing license key.');\n }\n\n const expirationTime = new Date(ee.licenseInfo.expireAt).getTime();\n\n if (expirationTime < new Date().getTime()) {\n return disable('License expired.');\n }\n\n enable();\n};\n\nconst checkLicense = async ({ strapi }: { strapi: Core.Strapi }) => {\n const shouldStayOffline =\n ee.licenseInfo.type === 'gold' &&\n // This env variable support is temporarily used to ease the migration between online vs offline\n process.env.STRAPI_DISABLE_LICENSE_PING?.toLowerCase() === 'true';\n\n if (!shouldStayOffline) {\n await onlineUpdate({ strapi });\n strapi.cron.add({ [shiftCronExpression('0 0 */12 * * *')]: onlineUpdate });\n } else {\n if (!ee.licenseInfo.expireAt) {\n return disable('Your license does not have offline support.');\n }\n\n validateInfo();\n }\n};\n\nconst list = () => {\n return (\n ee.licenseInfo.features?.map((feature) =>\n typeof feature === 'object' ? feature : { name: feature }\n ) || []\n );\n};\n\nconst get = (featureName: string) => list().find((feature) => feature.name === featureName);\n\nexport default Object.freeze({\n init,\n checkLicense,\n\n get isEE() {\n return ee.enabled;\n },\n\n get seats() {\n return ee.licenseInfo.seats;\n },\n\n features: Object.freeze({\n list,\n get,\n isEnabled: (featureName: string) => get(featureName) !== undefined,\n }),\n});\n"],"names":["strapi","get","result"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Strapi } from '@strapi/types';
1
+ import type { Core } from '@strapi/types';
2
2
  interface LicenseInfo {
3
3
  type: 'bronze' | 'silver' | 'gold';
4
4
  expireAt?: string;
@@ -15,7 +15,7 @@ declare class LicenseCheckError extends Error {
15
15
  declare const readLicense: (directory: string) => string | undefined;
16
16
  declare const verifyLicense: (license: string) => LicenseInfo;
17
17
  declare const fetchLicense: ({ strapi }: {
18
- strapi: Strapi;
18
+ strapi: Core.Strapi;
19
19
  }, key: string, projectId: string) => Promise<any>;
20
20
  export { readLicense, verifyLicense, fetchLicense, LicenseCheckError };
21
21
  //# sourceMappingURL=license.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"license.d.ts","sourceRoot":"","sources":["../../src/ee/license.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAI5C,UAAU,WAAW;IACnB,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;CACvE;AAgBD,cAAM,iBAAkB,SAAQ,KAAK;IACnC,cAAc,UAAS;gBAEX,OAAO,EAAE,MAAM,EAAE,cAAc,UAAQ;CAKpD;AAED,QAAA,MAAM,WAAW,cAAe,MAAM,uBASrC,CAAC;AAEF,QAAA,MAAM,aAAa,YAAa,MAAM,gBA2BrC,CAAC;AAMF,QAAA,MAAM,YAAY;YAAgC,MAAM;QAAS,MAAM,aAAa,MAAM,iBA2BzF,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"license.d.ts","sourceRoot":"","sources":["../../src/ee/license.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAI1C,UAAU,WAAW;IACnB,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;CACvE;AAkBD,cAAM,iBAAkB,SAAQ,KAAK;IACnC,cAAc,UAAS;gBAEX,OAAO,EAAE,MAAM,EAAE,cAAc,UAAQ;CAKpD;AAED,QAAA,MAAM,WAAW,cAAe,MAAM,uBASrC,CAAC;AAEF,QAAA,MAAM,aAAa,YAAa,MAAM,gBA2BrC,CAAC;AAMF,QAAA,MAAM,YAAY,eACJ;IAAE,MAAM,EAAE,KAAK,MAAM,CAAA;CAAE,OAC9B,MAAM,aACA,MAAM,iBA4BlB,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,iBAAiB,EAAE,CAAC"}
@@ -15,7 +15,9 @@ const DEFAULT_FEATURES = {
15
15
  // Set a null retention duration to allow the user to override it
16
16
  // The default of 90 days is set in the audit logs service
17
17
  { name: "audit-logs", options: { retentionDays: null } },
18
- { name: "review-workflows" }
18
+ { name: "review-workflows" },
19
+ { name: "cms-content-releases" },
20
+ { name: "cms-content-history", options: { retentionDays: 99999 } }
19
21
  ]
20
22
  };
21
23
  const publicKey = fs__default.default.readFileSync(path.resolve(__dirname, "../../resources/key.pub"));
@@ -1 +1 @@
1
- {"version":3,"file":"license.js","sources":["../../src/ee/license.ts"],"sourcesContent":["import fs from 'fs';\nimport { join, resolve } from 'path';\nimport crypto from 'crypto';\nimport type { Strapi } from '@strapi/types';\n\nimport { machineID } from '@strapi/utils';\n\ninterface LicenseInfo {\n type: 'bronze' | 'silver' | 'gold';\n expireAt?: string;\n seats?: number;\n features?: Array<{ name: string; options?: Record<string, unknown> }>;\n}\n\nconst DEFAULT_FEATURES = {\n bronze: [],\n silver: [],\n gold: [\n { name: 'sso' },\n // Set a null retention duration to allow the user to override it\n // The default of 90 days is set in the audit logs service\n { name: 'audit-logs', options: { retentionDays: null } },\n { name: 'review-workflows' },\n ],\n};\n\nconst publicKey = fs.readFileSync(resolve(__dirname, '../../resources/key.pub'));\n\nclass LicenseCheckError extends Error {\n shouldFallback = false;\n\n constructor(message: string, shouldFallback = false) {\n super(message);\n\n this.shouldFallback = shouldFallback;\n }\n}\n\nconst readLicense = (directory: string) => {\n try {\n const path = join(directory, 'license.txt');\n return fs.readFileSync(path).toString();\n } catch (error) {\n if (typeof error === 'object' && error !== null && 'code' in error && error.code !== 'ENOENT') {\n throw Error('License file not readable, review its format and access rules.');\n }\n }\n};\n\nconst verifyLicense = (license: string) => {\n const [signature, base64Content] = Buffer.from(license, 'base64').toString().split('\\n');\n\n if (!signature || !base64Content) {\n throw new Error('Invalid license.');\n }\n\n const stringifiedContent = Buffer.from(base64Content, 'base64').toString();\n\n const verify = crypto.createVerify('RSA-SHA256');\n verify.update(stringifiedContent);\n verify.end();\n\n const verified = verify.verify(publicKey, signature, 'base64');\n\n if (!verified) {\n throw new Error('Invalid license.');\n }\n\n const licenseInfo: LicenseInfo = JSON.parse(stringifiedContent);\n\n if (!licenseInfo.features) {\n licenseInfo.features = DEFAULT_FEATURES[licenseInfo.type];\n }\n\n Object.freeze(licenseInfo.features);\n return licenseInfo;\n};\n\nconst throwError = () => {\n throw new LicenseCheckError('Could not proceed to the online validation of your license.', true);\n};\n\nconst fetchLicense = async ({ strapi }: { strapi: Strapi }, key: string, projectId: string) => {\n const response = await strapi\n .fetch(`https://license.strapi.io/api/licenses/validate`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ key, projectId, deviceId: machineID() }),\n })\n .catch(throwError);\n\n const contentType = response.headers.get('Content-Type');\n\n if (contentType?.includes('application/json')) {\n const { data, error } = await response.json();\n\n switch (response.status) {\n case 200:\n return data.license;\n case 400:\n throw new LicenseCheckError(error.message);\n case 404:\n throw new LicenseCheckError('The license used does not exists.');\n default:\n throwError();\n }\n } else {\n throwError();\n }\n};\n\nexport { readLicense, verifyLicense, fetchLicense, LicenseCheckError };\n"],"names":["fs","resolve","path","join","crypto","machineID"],"mappings":";;;;;;;;;AAcA,MAAM,mBAAmB;AAAA,EACvB,QAAQ,CAAC;AAAA,EACT,QAAQ,CAAC;AAAA,EACT,MAAM;AAAA,IACJ,EAAE,MAAM,MAAM;AAAA;AAAA;AAAA,IAGd,EAAE,MAAM,cAAc,SAAS,EAAE,eAAe,OAAO;AAAA,IACvD,EAAE,MAAM,mBAAmB;AAAA,EAC7B;AACF;AAEA,MAAM,YAAYA,YAAG,QAAA,aAAaC,KAAQ,QAAA,WAAW,yBAAyB,CAAC;AAE/E,MAAM,0BAA0B,MAAM;AAAA,EACpC,iBAAiB;AAAA,EAEjB,YAAY,SAAiB,iBAAiB,OAAO;AACnD,UAAM,OAAO;AAEb,SAAK,iBAAiB;AAAA,EACxB;AACF;AAEM,MAAA,cAAc,CAAC,cAAsB;AACrC,MAAA;AACI,UAAAC,SAAOC,KAAAA,KAAK,WAAW,aAAa;AAC1C,WAAOH,YAAG,QAAA,aAAaE,MAAI,EAAE,SAAS;AAAA,WAC/B,OAAO;AACV,QAAA,OAAO,UAAU,YAAY,UAAU,QAAQ,UAAU,SAAS,MAAM,SAAS,UAAU;AAC7F,YAAM,MAAM,gEAAgE;AAAA,IAC9E;AAAA,EACF;AACF;AAEM,MAAA,gBAAgB,CAAC,YAAoB;AACzC,QAAM,CAAC,WAAW,aAAa,IAAI,OAAO,KAAK,SAAS,QAAQ,EAAE,SAAA,EAAW,MAAM,IAAI;AAEnF,MAAA,CAAC,aAAa,CAAC,eAAe;AAC1B,UAAA,IAAI,MAAM,kBAAkB;AAAA,EACpC;AAEA,QAAM,qBAAqB,OAAO,KAAK,eAAe,QAAQ,EAAE;AAE1D,QAAA,SAASE,gBAAAA,QAAO,aAAa,YAAY;AAC/C,SAAO,OAAO,kBAAkB;AAChC,SAAO,IAAI;AAEX,QAAM,WAAW,OAAO,OAAO,WAAW,WAAW,QAAQ;AAE7D,MAAI,CAAC,UAAU;AACP,UAAA,IAAI,MAAM,kBAAkB;AAAA,EACpC;AAEM,QAAA,cAA2B,KAAK,MAAM,kBAAkB;AAE1D,MAAA,CAAC,YAAY,UAAU;AACb,gBAAA,WAAW,iBAAiB,YAAY,IAAI;AAAA,EAC1D;AAEO,SAAA,OAAO,YAAY,QAAQ;AAC3B,SAAA;AACT;AAEA,MAAM,aAAa,MAAM;AACjB,QAAA,IAAI,kBAAkB,+DAA+D,IAAI;AACjG;AAEA,MAAM,eAAe,OAAO,EAAE,UAA8B,KAAa,cAAsB;AAC7F,QAAM,WAAW,MAAM,OACpB,MAAM,mDAAmD;AAAA,IACxD,QAAQ;AAAA,IACR,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,IAC9C,MAAM,KAAK,UAAU,EAAE,KAAK,WAAW,UAAUC,YAAU,UAAA,GAAG;AAAA,EAAA,CAC/D,EACA,MAAM,UAAU;AAEnB,QAAM,cAAc,SAAS,QAAQ,IAAI,cAAc;AAEnD,MAAA,aAAa,SAAS,kBAAkB,GAAG;AAC7C,UAAM,EAAE,MAAM,MAAA,IAAU,MAAM,SAAS,KAAK;AAE5C,YAAQ,SAAS,QAAQ;AAAA,MACvB,KAAK;AACH,eAAO,KAAK;AAAA,MACd,KAAK;AACG,cAAA,IAAI,kBAAkB,MAAM,OAAO;AAAA,MAC3C,KAAK;AACG,cAAA,IAAI,kBAAkB,mCAAmC;AAAA,MACjE;AACa;IACf;AAAA,EAAA,OACK;AACM;EACb;AACF;;;;;"}
1
+ {"version":3,"file":"license.js","sources":["../../src/ee/license.ts"],"sourcesContent":["import fs from 'fs';\nimport { join, resolve } from 'path';\nimport crypto from 'crypto';\nimport type { Core } from '@strapi/types';\n\nimport { machineID } from '@strapi/utils';\n\ninterface LicenseInfo {\n type: 'bronze' | 'silver' | 'gold';\n expireAt?: string;\n seats?: number;\n features?: Array<{ name: string; options?: Record<string, unknown> }>;\n}\n\nconst DEFAULT_FEATURES = {\n bronze: [],\n silver: [],\n gold: [\n { name: 'sso' },\n // Set a null retention duration to allow the user to override it\n // The default of 90 days is set in the audit logs service\n { name: 'audit-logs', options: { retentionDays: null } },\n { name: 'review-workflows' },\n { name: 'cms-content-releases' },\n { name: 'cms-content-history', options: { retentionDays: 99999 } },\n ],\n};\n\nconst publicKey = fs.readFileSync(resolve(__dirname, '../../resources/key.pub'));\n\nclass LicenseCheckError extends Error {\n shouldFallback = false;\n\n constructor(message: string, shouldFallback = false) {\n super(message);\n\n this.shouldFallback = shouldFallback;\n }\n}\n\nconst readLicense = (directory: string) => {\n try {\n const path = join(directory, 'license.txt');\n return fs.readFileSync(path).toString();\n } catch (error) {\n if (typeof error === 'object' && error !== null && 'code' in error && error.code !== 'ENOENT') {\n throw Error('License file not readable, review its format and access rules.');\n }\n }\n};\n\nconst verifyLicense = (license: string) => {\n const [signature, base64Content] = Buffer.from(license, 'base64').toString().split('\\n');\n\n if (!signature || !base64Content) {\n throw new Error('Invalid license.');\n }\n\n const stringifiedContent = Buffer.from(base64Content, 'base64').toString();\n\n const verify = crypto.createVerify('RSA-SHA256');\n verify.update(stringifiedContent);\n verify.end();\n\n const verified = verify.verify(publicKey, signature, 'base64');\n\n if (!verified) {\n throw new Error('Invalid license.');\n }\n\n const licenseInfo: LicenseInfo = JSON.parse(stringifiedContent);\n\n if (!licenseInfo.features) {\n licenseInfo.features = DEFAULT_FEATURES[licenseInfo.type];\n }\n\n Object.freeze(licenseInfo.features);\n return licenseInfo;\n};\n\nconst throwError = () => {\n throw new LicenseCheckError('Could not proceed to the online validation of your license.', true);\n};\n\nconst fetchLicense = async (\n { strapi }: { strapi: Core.Strapi },\n key: string,\n projectId: string\n) => {\n const response = await strapi\n .fetch(`https://license.strapi.io/api/licenses/validate`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ key, projectId, deviceId: machineID() }),\n })\n .catch(throwError);\n\n const contentType = response.headers.get('Content-Type');\n\n if (contentType?.includes('application/json')) {\n const { data, error } = await response.json();\n\n switch (response.status) {\n case 200:\n return data.license;\n case 400:\n throw new LicenseCheckError(error.message);\n case 404:\n throw new LicenseCheckError('The license used does not exists.');\n default:\n throwError();\n }\n } else {\n throwError();\n }\n};\n\nexport { readLicense, verifyLicense, fetchLicense, LicenseCheckError };\n"],"names":["fs","resolve","path","join","crypto","machineID"],"mappings":";;;;;;;;;AAcA,MAAM,mBAAmB;AAAA,EACvB,QAAQ,CAAC;AAAA,EACT,QAAQ,CAAC;AAAA,EACT,MAAM;AAAA,IACJ,EAAE,MAAM,MAAM;AAAA;AAAA;AAAA,IAGd,EAAE,MAAM,cAAc,SAAS,EAAE,eAAe,OAAO;AAAA,IACvD,EAAE,MAAM,mBAAmB;AAAA,IAC3B,EAAE,MAAM,uBAAuB;AAAA,IAC/B,EAAE,MAAM,uBAAuB,SAAS,EAAE,eAAe,QAAQ;AAAA,EACnE;AACF;AAEA,MAAM,YAAYA,YAAG,QAAA,aAAaC,KAAQ,QAAA,WAAW,yBAAyB,CAAC;AAE/E,MAAM,0BAA0B,MAAM;AAAA,EACpC,iBAAiB;AAAA,EAEjB,YAAY,SAAiB,iBAAiB,OAAO;AACnD,UAAM,OAAO;AAEb,SAAK,iBAAiB;AAAA,EACxB;AACF;AAEM,MAAA,cAAc,CAAC,cAAsB;AACrC,MAAA;AACI,UAAAC,SAAOC,KAAAA,KAAK,WAAW,aAAa;AAC1C,WAAOH,YAAG,QAAA,aAAaE,MAAI,EAAE,SAAS;AAAA,WAC/B,OAAO;AACV,QAAA,OAAO,UAAU,YAAY,UAAU,QAAQ,UAAU,SAAS,MAAM,SAAS,UAAU;AAC7F,YAAM,MAAM,gEAAgE;AAAA,IAC9E;AAAA,EACF;AACF;AAEM,MAAA,gBAAgB,CAAC,YAAoB;AACzC,QAAM,CAAC,WAAW,aAAa,IAAI,OAAO,KAAK,SAAS,QAAQ,EAAE,SAAA,EAAW,MAAM,IAAI;AAEnF,MAAA,CAAC,aAAa,CAAC,eAAe;AAC1B,UAAA,IAAI,MAAM,kBAAkB;AAAA,EACpC;AAEA,QAAM,qBAAqB,OAAO,KAAK,eAAe,QAAQ,EAAE;AAE1D,QAAA,SAASE,gBAAAA,QAAO,aAAa,YAAY;AAC/C,SAAO,OAAO,kBAAkB;AAChC,SAAO,IAAI;AAEX,QAAM,WAAW,OAAO,OAAO,WAAW,WAAW,QAAQ;AAE7D,MAAI,CAAC,UAAU;AACP,UAAA,IAAI,MAAM,kBAAkB;AAAA,EACpC;AAEM,QAAA,cAA2B,KAAK,MAAM,kBAAkB;AAE1D,MAAA,CAAC,YAAY,UAAU;AACb,gBAAA,WAAW,iBAAiB,YAAY,IAAI;AAAA,EAC1D;AAEO,SAAA,OAAO,YAAY,QAAQ;AAC3B,SAAA;AACT;AAEA,MAAM,aAAa,MAAM;AACjB,QAAA,IAAI,kBAAkB,+DAA+D,IAAI;AACjG;AAEA,MAAM,eAAe,OACnB,EAAE,UACF,KACA,cACG;AACH,QAAM,WAAW,MAAM,OACpB,MAAM,mDAAmD;AAAA,IACxD,QAAQ;AAAA,IACR,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,IAC9C,MAAM,KAAK,UAAU,EAAE,KAAK,WAAW,UAAUC,YAAU,UAAA,GAAG;AAAA,EAAA,CAC/D,EACA,MAAM,UAAU;AAEnB,QAAM,cAAc,SAAS,QAAQ,IAAI,cAAc;AAEnD,MAAA,aAAa,SAAS,kBAAkB,GAAG;AAC7C,UAAM,EAAE,MAAM,MAAA,IAAU,MAAM,SAAS,KAAK;AAE5C,YAAQ,SAAS,QAAQ;AAAA,MACvB,KAAK;AACH,eAAO,KAAK;AAAA,MACd,KAAK;AACG,cAAA,IAAI,kBAAkB,MAAM,OAAO;AAAA,MAC3C,KAAK;AACG,cAAA,IAAI,kBAAkB,mCAAmC;AAAA,MACjE;AACa;IACf;AAAA,EAAA,OACK;AACM;EACb;AACF;;;;;"}
@@ -10,7 +10,9 @@ const DEFAULT_FEATURES = {
10
10
  // Set a null retention duration to allow the user to override it
11
11
  // The default of 90 days is set in the audit logs service
12
12
  { name: "audit-logs", options: { retentionDays: null } },
13
- { name: "review-workflows" }
13
+ { name: "review-workflows" },
14
+ { name: "cms-content-releases" },
15
+ { name: "cms-content-history", options: { retentionDays: 99999 } }
14
16
  ]
15
17
  };
16
18
  const publicKey = fs.readFileSync(resolve(__dirname, "../../resources/key.pub"));
@@ -1 +1 @@
1
- {"version":3,"file":"license.mjs","sources":["../../src/ee/license.ts"],"sourcesContent":["import fs from 'fs';\nimport { join, resolve } from 'path';\nimport crypto from 'crypto';\nimport type { Strapi } from '@strapi/types';\n\nimport { machineID } from '@strapi/utils';\n\ninterface LicenseInfo {\n type: 'bronze' | 'silver' | 'gold';\n expireAt?: string;\n seats?: number;\n features?: Array<{ name: string; options?: Record<string, unknown> }>;\n}\n\nconst DEFAULT_FEATURES = {\n bronze: [],\n silver: [],\n gold: [\n { name: 'sso' },\n // Set a null retention duration to allow the user to override it\n // The default of 90 days is set in the audit logs service\n { name: 'audit-logs', options: { retentionDays: null } },\n { name: 'review-workflows' },\n ],\n};\n\nconst publicKey = fs.readFileSync(resolve(__dirname, '../../resources/key.pub'));\n\nclass LicenseCheckError extends Error {\n shouldFallback = false;\n\n constructor(message: string, shouldFallback = false) {\n super(message);\n\n this.shouldFallback = shouldFallback;\n }\n}\n\nconst readLicense = (directory: string) => {\n try {\n const path = join(directory, 'license.txt');\n return fs.readFileSync(path).toString();\n } catch (error) {\n if (typeof error === 'object' && error !== null && 'code' in error && error.code !== 'ENOENT') {\n throw Error('License file not readable, review its format and access rules.');\n }\n }\n};\n\nconst verifyLicense = (license: string) => {\n const [signature, base64Content] = Buffer.from(license, 'base64').toString().split('\\n');\n\n if (!signature || !base64Content) {\n throw new Error('Invalid license.');\n }\n\n const stringifiedContent = Buffer.from(base64Content, 'base64').toString();\n\n const verify = crypto.createVerify('RSA-SHA256');\n verify.update(stringifiedContent);\n verify.end();\n\n const verified = verify.verify(publicKey, signature, 'base64');\n\n if (!verified) {\n throw new Error('Invalid license.');\n }\n\n const licenseInfo: LicenseInfo = JSON.parse(stringifiedContent);\n\n if (!licenseInfo.features) {\n licenseInfo.features = DEFAULT_FEATURES[licenseInfo.type];\n }\n\n Object.freeze(licenseInfo.features);\n return licenseInfo;\n};\n\nconst throwError = () => {\n throw new LicenseCheckError('Could not proceed to the online validation of your license.', true);\n};\n\nconst fetchLicense = async ({ strapi }: { strapi: Strapi }, key: string, projectId: string) => {\n const response = await strapi\n .fetch(`https://license.strapi.io/api/licenses/validate`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ key, projectId, deviceId: machineID() }),\n })\n .catch(throwError);\n\n const contentType = response.headers.get('Content-Type');\n\n if (contentType?.includes('application/json')) {\n const { data, error } = await response.json();\n\n switch (response.status) {\n case 200:\n return data.license;\n case 400:\n throw new LicenseCheckError(error.message);\n case 404:\n throw new LicenseCheckError('The license used does not exists.');\n default:\n throwError();\n }\n } else {\n throwError();\n }\n};\n\nexport { readLicense, verifyLicense, fetchLicense, LicenseCheckError };\n"],"names":[],"mappings":";;;;AAcA,MAAM,mBAAmB;AAAA,EACvB,QAAQ,CAAC;AAAA,EACT,QAAQ,CAAC;AAAA,EACT,MAAM;AAAA,IACJ,EAAE,MAAM,MAAM;AAAA;AAAA;AAAA,IAGd,EAAE,MAAM,cAAc,SAAS,EAAE,eAAe,OAAO;AAAA,IACvD,EAAE,MAAM,mBAAmB;AAAA,EAC7B;AACF;AAEA,MAAM,YAAY,GAAG,aAAa,QAAQ,WAAW,yBAAyB,CAAC;AAE/E,MAAM,0BAA0B,MAAM;AAAA,EACpC,iBAAiB;AAAA,EAEjB,YAAY,SAAiB,iBAAiB,OAAO;AACnD,UAAM,OAAO;AAEb,SAAK,iBAAiB;AAAA,EACxB;AACF;AAEM,MAAA,cAAc,CAAC,cAAsB;AACrC,MAAA;AACI,UAAA,OAAO,KAAK,WAAW,aAAa;AAC1C,WAAO,GAAG,aAAa,IAAI,EAAE,SAAS;AAAA,WAC/B,OAAO;AACV,QAAA,OAAO,UAAU,YAAY,UAAU,QAAQ,UAAU,SAAS,MAAM,SAAS,UAAU;AAC7F,YAAM,MAAM,gEAAgE;AAAA,IAC9E;AAAA,EACF;AACF;AAEM,MAAA,gBAAgB,CAAC,YAAoB;AACzC,QAAM,CAAC,WAAW,aAAa,IAAI,OAAO,KAAK,SAAS,QAAQ,EAAE,SAAA,EAAW,MAAM,IAAI;AAEnF,MAAA,CAAC,aAAa,CAAC,eAAe;AAC1B,UAAA,IAAI,MAAM,kBAAkB;AAAA,EACpC;AAEA,QAAM,qBAAqB,OAAO,KAAK,eAAe,QAAQ,EAAE;AAE1D,QAAA,SAAS,OAAO,aAAa,YAAY;AAC/C,SAAO,OAAO,kBAAkB;AAChC,SAAO,IAAI;AAEX,QAAM,WAAW,OAAO,OAAO,WAAW,WAAW,QAAQ;AAE7D,MAAI,CAAC,UAAU;AACP,UAAA,IAAI,MAAM,kBAAkB;AAAA,EACpC;AAEM,QAAA,cAA2B,KAAK,MAAM,kBAAkB;AAE1D,MAAA,CAAC,YAAY,UAAU;AACb,gBAAA,WAAW,iBAAiB,YAAY,IAAI;AAAA,EAC1D;AAEO,SAAA,OAAO,YAAY,QAAQ;AAC3B,SAAA;AACT;AAEA,MAAM,aAAa,MAAM;AACjB,QAAA,IAAI,kBAAkB,+DAA+D,IAAI;AACjG;AAEA,MAAM,eAAe,OAAO,EAAE,UAA8B,KAAa,cAAsB;AAC7F,QAAM,WAAW,MAAM,OACpB,MAAM,mDAAmD;AAAA,IACxD,QAAQ;AAAA,IACR,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,IAC9C,MAAM,KAAK,UAAU,EAAE,KAAK,WAAW,UAAU,UAAU,GAAG;AAAA,EAAA,CAC/D,EACA,MAAM,UAAU;AAEnB,QAAM,cAAc,SAAS,QAAQ,IAAI,cAAc;AAEnD,MAAA,aAAa,SAAS,kBAAkB,GAAG;AAC7C,UAAM,EAAE,MAAM,MAAA,IAAU,MAAM,SAAS,KAAK;AAE5C,YAAQ,SAAS,QAAQ;AAAA,MACvB,KAAK;AACH,eAAO,KAAK;AAAA,MACd,KAAK;AACG,cAAA,IAAI,kBAAkB,MAAM,OAAO;AAAA,MAC3C,KAAK;AACG,cAAA,IAAI,kBAAkB,mCAAmC;AAAA,MACjE;AACa;IACf;AAAA,EAAA,OACK;AACM;EACb;AACF;"}
1
+ {"version":3,"file":"license.mjs","sources":["../../src/ee/license.ts"],"sourcesContent":["import fs from 'fs';\nimport { join, resolve } from 'path';\nimport crypto from 'crypto';\nimport type { Core } from '@strapi/types';\n\nimport { machineID } from '@strapi/utils';\n\ninterface LicenseInfo {\n type: 'bronze' | 'silver' | 'gold';\n expireAt?: string;\n seats?: number;\n features?: Array<{ name: string; options?: Record<string, unknown> }>;\n}\n\nconst DEFAULT_FEATURES = {\n bronze: [],\n silver: [],\n gold: [\n { name: 'sso' },\n // Set a null retention duration to allow the user to override it\n // The default of 90 days is set in the audit logs service\n { name: 'audit-logs', options: { retentionDays: null } },\n { name: 'review-workflows' },\n { name: 'cms-content-releases' },\n { name: 'cms-content-history', options: { retentionDays: 99999 } },\n ],\n};\n\nconst publicKey = fs.readFileSync(resolve(__dirname, '../../resources/key.pub'));\n\nclass LicenseCheckError extends Error {\n shouldFallback = false;\n\n constructor(message: string, shouldFallback = false) {\n super(message);\n\n this.shouldFallback = shouldFallback;\n }\n}\n\nconst readLicense = (directory: string) => {\n try {\n const path = join(directory, 'license.txt');\n return fs.readFileSync(path).toString();\n } catch (error) {\n if (typeof error === 'object' && error !== null && 'code' in error && error.code !== 'ENOENT') {\n throw Error('License file not readable, review its format and access rules.');\n }\n }\n};\n\nconst verifyLicense = (license: string) => {\n const [signature, base64Content] = Buffer.from(license, 'base64').toString().split('\\n');\n\n if (!signature || !base64Content) {\n throw new Error('Invalid license.');\n }\n\n const stringifiedContent = Buffer.from(base64Content, 'base64').toString();\n\n const verify = crypto.createVerify('RSA-SHA256');\n verify.update(stringifiedContent);\n verify.end();\n\n const verified = verify.verify(publicKey, signature, 'base64');\n\n if (!verified) {\n throw new Error('Invalid license.');\n }\n\n const licenseInfo: LicenseInfo = JSON.parse(stringifiedContent);\n\n if (!licenseInfo.features) {\n licenseInfo.features = DEFAULT_FEATURES[licenseInfo.type];\n }\n\n Object.freeze(licenseInfo.features);\n return licenseInfo;\n};\n\nconst throwError = () => {\n throw new LicenseCheckError('Could not proceed to the online validation of your license.', true);\n};\n\nconst fetchLicense = async (\n { strapi }: { strapi: Core.Strapi },\n key: string,\n projectId: string\n) => {\n const response = await strapi\n .fetch(`https://license.strapi.io/api/licenses/validate`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({ key, projectId, deviceId: machineID() }),\n })\n .catch(throwError);\n\n const contentType = response.headers.get('Content-Type');\n\n if (contentType?.includes('application/json')) {\n const { data, error } = await response.json();\n\n switch (response.status) {\n case 200:\n return data.license;\n case 400:\n throw new LicenseCheckError(error.message);\n case 404:\n throw new LicenseCheckError('The license used does not exists.');\n default:\n throwError();\n }\n } else {\n throwError();\n }\n};\n\nexport { readLicense, verifyLicense, fetchLicense, LicenseCheckError };\n"],"names":[],"mappings":";;;;AAcA,MAAM,mBAAmB;AAAA,EACvB,QAAQ,CAAC;AAAA,EACT,QAAQ,CAAC;AAAA,EACT,MAAM;AAAA,IACJ,EAAE,MAAM,MAAM;AAAA;AAAA;AAAA,IAGd,EAAE,MAAM,cAAc,SAAS,EAAE,eAAe,OAAO;AAAA,IACvD,EAAE,MAAM,mBAAmB;AAAA,IAC3B,EAAE,MAAM,uBAAuB;AAAA,IAC/B,EAAE,MAAM,uBAAuB,SAAS,EAAE,eAAe,QAAQ;AAAA,EACnE;AACF;AAEA,MAAM,YAAY,GAAG,aAAa,QAAQ,WAAW,yBAAyB,CAAC;AAE/E,MAAM,0BAA0B,MAAM;AAAA,EACpC,iBAAiB;AAAA,EAEjB,YAAY,SAAiB,iBAAiB,OAAO;AACnD,UAAM,OAAO;AAEb,SAAK,iBAAiB;AAAA,EACxB;AACF;AAEM,MAAA,cAAc,CAAC,cAAsB;AACrC,MAAA;AACI,UAAA,OAAO,KAAK,WAAW,aAAa;AAC1C,WAAO,GAAG,aAAa,IAAI,EAAE,SAAS;AAAA,WAC/B,OAAO;AACV,QAAA,OAAO,UAAU,YAAY,UAAU,QAAQ,UAAU,SAAS,MAAM,SAAS,UAAU;AAC7F,YAAM,MAAM,gEAAgE;AAAA,IAC9E;AAAA,EACF;AACF;AAEM,MAAA,gBAAgB,CAAC,YAAoB;AACzC,QAAM,CAAC,WAAW,aAAa,IAAI,OAAO,KAAK,SAAS,QAAQ,EAAE,SAAA,EAAW,MAAM,IAAI;AAEnF,MAAA,CAAC,aAAa,CAAC,eAAe;AAC1B,UAAA,IAAI,MAAM,kBAAkB;AAAA,EACpC;AAEA,QAAM,qBAAqB,OAAO,KAAK,eAAe,QAAQ,EAAE;AAE1D,QAAA,SAAS,OAAO,aAAa,YAAY;AAC/C,SAAO,OAAO,kBAAkB;AAChC,SAAO,IAAI;AAEX,QAAM,WAAW,OAAO,OAAO,WAAW,WAAW,QAAQ;AAE7D,MAAI,CAAC,UAAU;AACP,UAAA,IAAI,MAAM,kBAAkB;AAAA,EACpC;AAEM,QAAA,cAA2B,KAAK,MAAM,kBAAkB;AAE1D,MAAA,CAAC,YAAY,UAAU;AACb,gBAAA,WAAW,iBAAiB,YAAY,IAAI;AAAA,EAC1D;AAEO,SAAA,OAAO,YAAY,QAAQ;AAC3B,SAAA;AACT;AAEA,MAAM,aAAa,MAAM;AACjB,QAAA,IAAI,kBAAkB,+DAA+D,IAAI;AACjG;AAEA,MAAM,eAAe,OACnB,EAAE,UACF,KACA,cACG;AACH,QAAM,WAAW,MAAM,OACpB,MAAM,mDAAmD;AAAA,IACxD,QAAQ;AAAA,IACR,SAAS,EAAE,gBAAgB,mBAAmB;AAAA,IAC9C,MAAM,KAAK,UAAU,EAAE,KAAK,WAAW,UAAU,UAAU,GAAG;AAAA,EAAA,CAC/D,EACA,MAAM,UAAU;AAEnB,QAAM,cAAc,SAAS,QAAQ,IAAI,cAAc;AAEnD,MAAA,aAAa,SAAS,kBAAkB,GAAG;AAC7C,UAAM,EAAE,MAAM,MAAA,IAAU,MAAM,SAAS,KAAK;AAE5C,YAAQ,SAAS,QAAQ;AAAA,MACvB,KAAK;AACH,eAAO,KAAK;AAAA,MACd,KAAK;AACG,cAAA,IAAI,kBAAkB,MAAM,OAAO;AAAA,MAC3C,KAAK;AACG,cAAA,IAAI,kBAAkB,mCAAmC;AAAA,MACjE;AACa;IACf;AAAA,EAAA,OACK;AACM;EACb;AACF;"}
@@ -1,13 +1,14 @@
1
- import type { Strapi, Common, CoreApi, Utils } from '@strapi/types';
1
+ import type { Core, UID, Utils } from '@strapi/types';
2
2
  type WithStrapiCallback<T> = T | (<S extends {
3
- strapi: Strapi;
3
+ strapi: Core.Strapi;
4
4
  }>(params: S) => T);
5
- declare const createCoreController: <TUID extends Common.UID.ContentType, TController extends CoreApi.Controller.Extendable<TUID>>(uid: TUID, cfg?: WithStrapiCallback<Utils.PartialWithThis<Partial<Utils.Expression.If<Common.UID.IsCollectionType<TUID>, CoreApi.Controller.CollectionType, Utils.Expression.If<Common.UID.IsSingleType<TUID>, CoreApi.Controller.SingleType, CoreApi.Controller.Base>>> & CoreApi.Controller.Generic & TController>> | undefined) => ({ strapi }: {
6
- strapi: Strapi;
7
- }) => TController & Utils.Expression.If<Common.UID.IsCollectionType<TUID>, CoreApi.Controller.CollectionType, Utils.Expression.If<Common.UID.IsSingleType<TUID>, CoreApi.Controller.SingleType, CoreApi.Controller.Base>>;
8
- declare function createCoreService<TUID extends Common.UID.ContentType, TService extends CoreApi.Service.Extendable<TUID>>(uid: TUID, cfg?: WithStrapiCallback<Utils.PartialWithThis<CoreApi.Service.Extendable<TUID> & TService>>): ({ strapi }: {
9
- strapi: Strapi;
10
- }) => TService & CoreApi.Service.ContentType<TUID>;
11
- declare function createCoreRouter<T extends Common.UID.ContentType>(uid: T, cfg?: CoreApi.Router.RouterConfig<T>): CoreApi.Router.Router;
12
- export { createCoreController, createCoreService, createCoreRouter };
5
+ declare const createCoreController: <TUID extends UID.ContentType, TController extends Core.CoreAPI.Controller.Extendable<TUID>>(uid: TUID, cfg?: WithStrapiCallback<Utils.PartialWithThis<Core.CoreAPI.Controller.Extendable<TUID> & TController>>) => ({ strapi, }: {
6
+ strapi: Core.Strapi;
7
+ }) => TController & Core.CoreAPI.Controller.ContentType<TUID>;
8
+ declare function createCoreService<TUID extends UID.ContentType, TService extends Core.CoreAPI.Service.Extendable<TUID>>(uid: TUID, cfg?: WithStrapiCallback<Utils.PartialWithThis<Core.CoreAPI.Service.Extendable<TUID> & TService>>): ({ strapi, }: {
9
+ strapi: Core.Strapi;
10
+ }) => TService & Core.CoreAPI.Service.ContentType<TUID>;
11
+ declare function createCoreRouter<T extends UID.ContentType>(uid: T, cfg?: Core.CoreAPI.Router.RouterConfig<T>): Core.CoreAPI.Router.Router;
12
+ declare const isCustomController: <T extends Core.Controller>(controller: T) => boolean;
13
+ export { createCoreController, createCoreService, createCoreRouter, isCustomController };
13
14
  //# sourceMappingURL=factories.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../src/factories.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAMpE,KAAK,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAclF,QAAA,MAAM,oBAAoB;YAOM,MAAM;yNAcrC,CAAC;AAEF,iBAAS,iBAAiB,CACxB,IAAI,SAAS,MAAM,CAAC,GAAG,CAAC,WAAW,EACnC,QAAQ,SAAS,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAEjD,GAAG,EAAE,IAAI,EACT,GAAG,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;YAE9D,MAAM;MAAK,QAAQ,GAAG,QAAQ,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CActF;AAED,iBAAS,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,GAAG,CAAC,WAAW,EACxD,GAAG,EAAE,CAAC,EACN,GAAG,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,GACnC,OAAO,CAAC,MAAM,CAAC,MAAM,CA+BvB;AAED,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../src/factories.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAUtD,KAAK,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAEvF,QAAA,MAAM,oBAAoB,oGAInB,IAAI,QACH,mBACJ,MAAM,eAAe,CAAC,KAAK,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAC9E,mBAIE;IACD,MAAM,EAAE,KAAK,MAAM,CAAC;CACrB,KAAG,WAAW,GAAG,KAAK,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAwB3D,CAAC;AAEF,iBAAS,iBAAiB,CACxB,IAAI,SAAS,GAAG,CAAC,WAAW,EAC5B,QAAQ,SAAS,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAEtD,GAAG,EAAE,IAAI,EACT,GAAG,CAAC,EAAE,kBAAkB,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC,iBAI9F;IACD,MAAM,EAAE,KAAK,MAAM,CAAC;CACrB,KAAG,QAAQ,GAAG,KAAK,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CActD;AAED,iBAAS,gBAAgB,CAAC,CAAC,SAAS,GAAG,CAAC,WAAW,EACjD,GAAG,EAAE,CAAC,EACN,GAAG,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,GACxC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CA+B5B;AAED,QAAA,MAAM,kBAAkB,0CAA2C,CAAC,KAAG,OAEtE,CAAC;AAEF,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,CAAC"}
package/dist/factories.js CHANGED
@@ -4,19 +4,14 @@ const _ = require("lodash/fp");
4
4
  const index = require("./core-api/controller/index.js");
5
5
  const index$1 = require("./core-api/service/index.js");
6
6
  const index$2 = require("./core-api/routes/index.js");
7
- const getContentTypeProxy = (strapi2, uid) => {
8
- return new Proxy(strapi2.contentType(uid), {
9
- get(target, prop) {
10
- const contentType = strapi2.contentType(uid);
11
- if (prop in contentType) {
12
- return contentType[prop];
13
- }
14
- }
15
- });
7
+ const symbols = {
8
+ CustomController: Symbol("StrapiCustomCoreController")
16
9
  };
17
10
  const createCoreController = (uid, cfg) => {
18
- return ({ strapi: strapi2 }) => {
19
- const baseController = index.createController({ contentType: getContentTypeProxy(strapi2, uid) });
11
+ return ({
12
+ strapi: strapi2
13
+ }) => {
14
+ const baseController = index.createController({ contentType: strapi2.contentType(uid) });
20
15
  const userCtrl = typeof cfg === "function" ? cfg({ strapi: strapi2 }) : cfg ?? {};
21
16
  for (const methodName of Object.keys(baseController)) {
22
17
  if (userCtrl[methodName] === void 0) {
@@ -24,12 +19,22 @@ const createCoreController = (uid, cfg) => {
24
19
  }
25
20
  }
26
21
  Object.setPrototypeOf(userCtrl, baseController);
22
+ const isCustom = typeof cfg !== "undefined";
23
+ if (isCustom) {
24
+ Object.defineProperty(userCtrl, symbols.CustomController, {
25
+ writable: false,
26
+ configurable: false,
27
+ enumerable: false
28
+ });
29
+ }
27
30
  return userCtrl;
28
31
  };
29
32
  };
30
33
  function createCoreService(uid, cfg) {
31
- return ({ strapi: strapi2 }) => {
32
- const baseService = index$1.createService({ contentType: getContentTypeProxy(strapi2, uid) });
34
+ return ({
35
+ strapi: strapi2
36
+ }) => {
37
+ const baseService = index$1.createService({ contentType: strapi2.contentType(uid) });
33
38
  const userService = typeof cfg === "function" ? cfg({ strapi: strapi2 }) : cfg ?? {};
34
39
  for (const methodName of Object.keys(baseService)) {
35
40
  if (userService[methodName] === void 0) {
@@ -65,7 +70,11 @@ function createCoreRouter(uid, cfg) {
65
70
  }
66
71
  };
67
72
  }
73
+ const isCustomController = (controller) => {
74
+ return symbols.CustomController in controller;
75
+ };
68
76
  exports.createCoreController = createCoreController;
69
77
  exports.createCoreRouter = createCoreRouter;
70
78
  exports.createCoreService = createCoreService;
79
+ exports.isCustomController = isCustomController;
71
80
  //# sourceMappingURL=factories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"factories.js","sources":["../src/factories.ts"],"sourcesContent":["import { pipe, omit, pick } from 'lodash/fp';\nimport type { Strapi, Common, CoreApi, Utils } from '@strapi/types';\n\nimport { createController } from './core-api/controller';\nimport { createService } from './core-api/service';\nimport { createRoutes } from './core-api/routes';\n\ntype WithStrapiCallback<T> = T | (<S extends { strapi: Strapi }>(params: S) => T);\n\n// Content type is proxied to allow for dynamic content type updates\nconst getContentTypeProxy = (strapi: Strapi, uid: Common.UID.ContentType) => {\n return new Proxy(strapi.contentType(uid), {\n get(target, prop) {\n const contentType = strapi.contentType(uid);\n if (prop in contentType) {\n return contentType[prop as keyof typeof contentType];\n }\n },\n });\n};\n\nconst createCoreController = <\n TUID extends Common.UID.ContentType,\n TController extends CoreApi.Controller.Extendable<TUID>\n>(\n uid: TUID,\n cfg?: WithStrapiCallback<Utils.PartialWithThis<CoreApi.Controller.Extendable<TUID> & TController>>\n) => {\n return ({ strapi }: { strapi: Strapi }): TController & CoreApi.Controller.ContentType<TUID> => {\n const baseController = createController({ contentType: getContentTypeProxy(strapi, uid) });\n\n const userCtrl = typeof cfg === 'function' ? cfg({ strapi }) : cfg ?? ({} as any);\n\n for (const methodName of Object.keys(baseController) as Array<keyof typeof baseController>) {\n if (userCtrl[methodName] === undefined) {\n userCtrl[methodName] = baseController[methodName];\n }\n }\n\n Object.setPrototypeOf(userCtrl, baseController);\n return userCtrl;\n };\n};\n\nfunction createCoreService<\n TUID extends Common.UID.ContentType,\n TService extends CoreApi.Service.Extendable<TUID>\n>(\n uid: TUID,\n cfg?: WithStrapiCallback<Utils.PartialWithThis<CoreApi.Service.Extendable<TUID> & TService>>\n) {\n return ({ strapi }: { strapi: Strapi }): TService & CoreApi.Service.ContentType<TUID> => {\n const baseService = createService({ contentType: getContentTypeProxy(strapi, uid) });\n\n const userService = typeof cfg === 'function' ? cfg({ strapi }) : cfg ?? ({} as any);\n\n for (const methodName of Object.keys(baseService) as Array<keyof typeof baseService>) {\n if (userService[methodName] === undefined) {\n userService[methodName] = baseService[methodName];\n }\n }\n\n Object.setPrototypeOf(userService, baseService);\n return userService;\n };\n}\n\nfunction createCoreRouter<T extends Common.UID.ContentType>(\n uid: T,\n cfg?: CoreApi.Router.RouterConfig<T>\n): CoreApi.Router.Router {\n const { prefix, config = {}, only, except, type = 'content-api' } = cfg ?? {};\n let routes: CoreApi.Router.Route[];\n\n return {\n type,\n prefix,\n get routes() {\n if (!routes) {\n const contentType = strapi.contentType(uid);\n\n const defaultRoutes = createRoutes({ contentType });\n const keys = Object.keys(defaultRoutes) as Array<keyof typeof defaultRoutes>;\n\n keys.forEach((routeName) => {\n const defaultRoute = defaultRoutes[routeName];\n\n Object.assign(defaultRoute.config, config[routeName] || {});\n });\n\n const selectedRoutes = pipe(\n (routes) => (except ? omit(except, routes) : routes),\n (routes) => (only ? pick(only, routes) : routes)\n )(defaultRoutes);\n\n routes = Object.values(selectedRoutes);\n }\n\n return routes;\n },\n };\n}\n\nexport { createCoreController, createCoreService, createCoreRouter };\n"],"names":["strapi","createController","createService","createRoutes","pipe","routes","omit","pick"],"mappings":";;;;;;AAUA,MAAM,sBAAsB,CAACA,SAAgB,QAAgC;AAC3E,SAAO,IAAI,MAAMA,QAAO,YAAY,GAAG,GAAG;AAAA,IACxC,IAAI,QAAQ,MAAM;AACV,YAAA,cAAcA,QAAO,YAAY,GAAG;AAC1C,UAAI,QAAQ,aAAa;AACvB,eAAO,YAAY,IAAgC;AAAA,MACrD;AAAA,IACF;AAAA,EAAA,CACD;AACH;AAEM,MAAA,uBAAuB,CAI3B,KACA,QACG;AACH,SAAO,CAAC,EAAE,QAAAA,cAAqF;AACvF,UAAA,iBAAiBC,uBAAiB,EAAE,aAAa,oBAAoBD,SAAQ,GAAG,GAAG;AAEnF,UAAA,WAAW,OAAO,QAAQ,aAAa,IAAI,EAAE,QAAAA,QAAQ,CAAA,IAAI,OAAQ;AAEvE,eAAW,cAAc,OAAO,KAAK,cAAc,GAAyC;AACtF,UAAA,SAAS,UAAU,MAAM,QAAW;AAC7B,iBAAA,UAAU,IAAI,eAAe,UAAU;AAAA,MAClD;AAAA,IACF;AAEO,WAAA,eAAe,UAAU,cAAc;AACvC,WAAA;AAAA,EAAA;AAEX;AAEA,SAAS,kBAIP,KACA,KACA;AACA,SAAO,CAAC,EAAE,QAAAA,cAA+E;AACjF,UAAA,cAAcE,sBAAc,EAAE,aAAa,oBAAoBF,SAAQ,GAAG,GAAG;AAE7E,UAAA,cAAc,OAAO,QAAQ,aAAa,IAAI,EAAE,QAAAA,QAAQ,CAAA,IAAI,OAAQ;AAE1E,eAAW,cAAc,OAAO,KAAK,WAAW,GAAsC;AAChF,UAAA,YAAY,UAAU,MAAM,QAAW;AAC7B,oBAAA,UAAU,IAAI,YAAY,UAAU;AAAA,MAClD;AAAA,IACF;AAEO,WAAA,eAAe,aAAa,WAAW;AACvC,WAAA;AAAA,EAAA;AAEX;AAEA,SAAS,iBACP,KACA,KACuB;AACjB,QAAA,EAAE,QAAQ,SAAS,CAAA,GAAI,MAAM,QAAQ,OAAO,cAAA,IAAkB,OAAO;AACvE,MAAA;AAEG,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA,IAAI,SAAS;AACX,UAAI,CAAC,QAAQ;AACL,cAAA,cAAc,OAAO,YAAY,GAAG;AAE1C,cAAM,gBAAgBG,QAAAA,aAAa,EAAE,YAAa,CAAA;AAC5C,cAAA,OAAO,OAAO,KAAK,aAAa;AAEjC,aAAA,QAAQ,CAAC,cAAc;AACpB,gBAAA,eAAe,cAAc,SAAS;AAE5C,iBAAO,OAAO,aAAa,QAAQ,OAAO,SAAS,KAAK,CAAA,CAAE;AAAA,QAAA,CAC3D;AAED,cAAM,iBAAiBC,EAAA;AAAA,UACrB,CAACC,YAAY,SAASC,EAAAA,KAAK,QAAQD,OAAM,IAAIA;AAAAA,UAC7C,CAACA,YAAY,OAAOE,EAAAA,KAAK,MAAMF,OAAM,IAAIA;AAAAA,UACzC,aAAa;AAEN,iBAAA,OAAO,OAAO,cAAc;AAAA,MACvC;AAEO,aAAA;AAAA,IACT;AAAA,EAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"factories.js","sources":["../src/factories.ts"],"sourcesContent":["import { pipe, omit, pick } from 'lodash/fp';\nimport type { Core, UID, Utils } from '@strapi/types';\n\nimport { createController } from './core-api/controller';\nimport { createService } from './core-api/service';\nimport { createRoutes } from './core-api/routes';\n\nconst symbols = {\n CustomController: Symbol('StrapiCustomCoreController'),\n} as const;\n\ntype WithStrapiCallback<T> = T | (<S extends { strapi: Core.Strapi }>(params: S) => T);\n\nconst createCoreController = <\n TUID extends UID.ContentType,\n TController extends Core.CoreAPI.Controller.Extendable<TUID>,\n>(\n uid: TUID,\n cfg?: WithStrapiCallback<\n Utils.PartialWithThis<Core.CoreAPI.Controller.Extendable<TUID> & TController>\n >\n) => {\n return ({\n strapi,\n }: {\n strapi: Core.Strapi;\n }): TController & Core.CoreAPI.Controller.ContentType<TUID> => {\n const baseController = createController({ contentType: strapi.contentType(uid) });\n\n const userCtrl = typeof cfg === 'function' ? cfg({ strapi }) : cfg ?? ({} as any);\n\n for (const methodName of Object.keys(baseController) as Array<keyof typeof baseController>) {\n if (userCtrl[methodName] === undefined) {\n userCtrl[methodName] = baseController[methodName];\n }\n }\n\n Object.setPrototypeOf(userCtrl, baseController);\n\n const isCustom = typeof cfg !== 'undefined';\n if (isCustom) {\n Object.defineProperty(userCtrl, symbols.CustomController, {\n writable: false,\n configurable: false,\n enumerable: false,\n });\n }\n\n return userCtrl;\n };\n};\n\nfunction createCoreService<\n TUID extends UID.ContentType,\n TService extends Core.CoreAPI.Service.Extendable<TUID>,\n>(\n uid: TUID,\n cfg?: WithStrapiCallback<Utils.PartialWithThis<Core.CoreAPI.Service.Extendable<TUID> & TService>>\n) {\n return ({\n strapi,\n }: {\n strapi: Core.Strapi;\n }): TService & Core.CoreAPI.Service.ContentType<TUID> => {\n const baseService = createService({ contentType: strapi.contentType(uid) });\n\n const userService = typeof cfg === 'function' ? cfg({ strapi }) : cfg ?? ({} as any);\n\n for (const methodName of Object.keys(baseService) as Array<keyof typeof baseService>) {\n if (userService[methodName] === undefined) {\n userService[methodName] = baseService[methodName];\n }\n }\n\n Object.setPrototypeOf(userService, baseService);\n return userService;\n };\n}\n\nfunction createCoreRouter<T extends UID.ContentType>(\n uid: T,\n cfg?: Core.CoreAPI.Router.RouterConfig<T>\n): Core.CoreAPI.Router.Router {\n const { prefix, config = {}, only, except, type = 'content-api' } = cfg ?? {};\n let routes: Core.CoreAPI.Router.Route[];\n\n return {\n type,\n prefix,\n get routes() {\n if (!routes) {\n const contentType = strapi.contentType(uid);\n\n const defaultRoutes = createRoutes({ contentType });\n const keys = Object.keys(defaultRoutes) as Array<keyof typeof defaultRoutes>;\n\n keys.forEach((routeName) => {\n const defaultRoute = defaultRoutes[routeName];\n\n Object.assign(defaultRoute.config, config[routeName] || {});\n });\n\n const selectedRoutes = pipe(\n (routes) => (except ? omit(except, routes) : routes),\n (routes) => (only ? pick(only, routes) : routes)\n )(defaultRoutes);\n\n routes = Object.values(selectedRoutes);\n }\n\n return routes;\n },\n };\n}\n\nconst isCustomController = <T extends Core.Controller>(controller: T): boolean => {\n return symbols.CustomController in controller;\n};\n\nexport { createCoreController, createCoreService, createCoreRouter, isCustomController };\n"],"names":["strapi","createController","createService","createRoutes","pipe","routes","omit","pick"],"mappings":";;;;;;AAOA,MAAM,UAAU;AAAA,EACd,kBAAkB,OAAO,4BAA4B;AACvD;AAIM,MAAA,uBAAuB,CAI3B,KACA,QAGG;AACH,SAAO,CAAC;AAAA,IACN,QAAAA;AAAAA,EAAA,MAG6D;AACvD,UAAA,iBAAiBC,uBAAiB,EAAE,aAAaD,QAAO,YAAY,GAAG,GAAG;AAE1E,UAAA,WAAW,OAAO,QAAQ,aAAa,IAAI,EAAE,QAAAA,QAAQ,CAAA,IAAI,OAAQ;AAEvE,eAAW,cAAc,OAAO,KAAK,cAAc,GAAyC;AACtF,UAAA,SAAS,UAAU,MAAM,QAAW;AAC7B,iBAAA,UAAU,IAAI,eAAe,UAAU;AAAA,MAClD;AAAA,IACF;AAEO,WAAA,eAAe,UAAU,cAAc;AAExC,UAAA,WAAW,OAAO,QAAQ;AAChC,QAAI,UAAU;AACL,aAAA,eAAe,UAAU,QAAQ,kBAAkB;AAAA,QACxD,UAAU;AAAA,QACV,cAAc;AAAA,QACd,YAAY;AAAA,MAAA,CACb;AAAA,IACH;AAEO,WAAA;AAAA,EAAA;AAEX;AAEA,SAAS,kBAIP,KACA,KACA;AACA,SAAO,CAAC;AAAA,IACN,QAAAA;AAAAA,EAAA,MAGuD;AACjD,UAAA,cAAcE,sBAAc,EAAE,aAAaF,QAAO,YAAY,GAAG,GAAG;AAEpE,UAAA,cAAc,OAAO,QAAQ,aAAa,IAAI,EAAE,QAAAA,QAAQ,CAAA,IAAI,OAAQ;AAE1E,eAAW,cAAc,OAAO,KAAK,WAAW,GAAsC;AAChF,UAAA,YAAY,UAAU,MAAM,QAAW;AAC7B,oBAAA,UAAU,IAAI,YAAY,UAAU;AAAA,MAClD;AAAA,IACF;AAEO,WAAA,eAAe,aAAa,WAAW;AACvC,WAAA;AAAA,EAAA;AAEX;AAEA,SAAS,iBACP,KACA,KAC4B;AACtB,QAAA,EAAE,QAAQ,SAAS,CAAA,GAAI,MAAM,QAAQ,OAAO,cAAA,IAAkB,OAAO;AACvE,MAAA;AAEG,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA,IAAI,SAAS;AACX,UAAI,CAAC,QAAQ;AACL,cAAA,cAAc,OAAO,YAAY,GAAG;AAE1C,cAAM,gBAAgBG,QAAAA,aAAa,EAAE,YAAa,CAAA;AAC5C,cAAA,OAAO,OAAO,KAAK,aAAa;AAEjC,aAAA,QAAQ,CAAC,cAAc;AACpB,gBAAA,eAAe,cAAc,SAAS;AAE5C,iBAAO,OAAO,aAAa,QAAQ,OAAO,SAAS,KAAK,CAAA,CAAE;AAAA,QAAA,CAC3D;AAED,cAAM,iBAAiBC,EAAA;AAAA,UACrB,CAACC,YAAY,SAASC,EAAAA,KAAK,QAAQD,OAAM,IAAIA;AAAAA,UAC7C,CAACA,YAAY,OAAOE,EAAAA,KAAK,MAAMF,OAAM,IAAIA;AAAAA,UACzC,aAAa;AAEN,iBAAA,OAAO,OAAO,cAAc;AAAA,MACvC;AAEO,aAAA;AAAA,IACT;AAAA,EAAA;AAEJ;AAEM,MAAA,qBAAqB,CAA4B,eAA2B;AAChF,SAAO,QAAQ,oBAAoB;AACrC;;;;;"}
@@ -2,19 +2,14 @@ import { pipe, omit, pick } from "lodash/fp";
2
2
  import { createController } from "./core-api/controller/index.mjs";
3
3
  import { createService } from "./core-api/service/index.mjs";
4
4
  import { createRoutes } from "./core-api/routes/index.mjs";
5
- const getContentTypeProxy = (strapi2, uid) => {
6
- return new Proxy(strapi2.contentType(uid), {
7
- get(target, prop) {
8
- const contentType = strapi2.contentType(uid);
9
- if (prop in contentType) {
10
- return contentType[prop];
11
- }
12
- }
13
- });
5
+ const symbols = {
6
+ CustomController: Symbol("StrapiCustomCoreController")
14
7
  };
15
8
  const createCoreController = (uid, cfg) => {
16
- return ({ strapi: strapi2 }) => {
17
- const baseController = createController({ contentType: getContentTypeProxy(strapi2, uid) });
9
+ return ({
10
+ strapi: strapi2
11
+ }) => {
12
+ const baseController = createController({ contentType: strapi2.contentType(uid) });
18
13
  const userCtrl = typeof cfg === "function" ? cfg({ strapi: strapi2 }) : cfg ?? {};
19
14
  for (const methodName of Object.keys(baseController)) {
20
15
  if (userCtrl[methodName] === void 0) {
@@ -22,12 +17,22 @@ const createCoreController = (uid, cfg) => {
22
17
  }
23
18
  }
24
19
  Object.setPrototypeOf(userCtrl, baseController);
20
+ const isCustom = typeof cfg !== "undefined";
21
+ if (isCustom) {
22
+ Object.defineProperty(userCtrl, symbols.CustomController, {
23
+ writable: false,
24
+ configurable: false,
25
+ enumerable: false
26
+ });
27
+ }
25
28
  return userCtrl;
26
29
  };
27
30
  };
28
31
  function createCoreService(uid, cfg) {
29
- return ({ strapi: strapi2 }) => {
30
- const baseService = createService({ contentType: getContentTypeProxy(strapi2, uid) });
32
+ return ({
33
+ strapi: strapi2
34
+ }) => {
35
+ const baseService = createService({ contentType: strapi2.contentType(uid) });
31
36
  const userService = typeof cfg === "function" ? cfg({ strapi: strapi2 }) : cfg ?? {};
32
37
  for (const methodName of Object.keys(baseService)) {
33
38
  if (userService[methodName] === void 0) {
@@ -63,9 +68,13 @@ function createCoreRouter(uid, cfg) {
63
68
  }
64
69
  };
65
70
  }
71
+ const isCustomController = (controller) => {
72
+ return symbols.CustomController in controller;
73
+ };
66
74
  export {
67
75
  createCoreController,
68
76
  createCoreRouter,
69
- createCoreService
77
+ createCoreService,
78
+ isCustomController
70
79
  };
71
80
  //# sourceMappingURL=factories.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"factories.mjs","sources":["../src/factories.ts"],"sourcesContent":["import { pipe, omit, pick } from 'lodash/fp';\nimport type { Strapi, Common, CoreApi, Utils } from '@strapi/types';\n\nimport { createController } from './core-api/controller';\nimport { createService } from './core-api/service';\nimport { createRoutes } from './core-api/routes';\n\ntype WithStrapiCallback<T> = T | (<S extends { strapi: Strapi }>(params: S) => T);\n\n// Content type is proxied to allow for dynamic content type updates\nconst getContentTypeProxy = (strapi: Strapi, uid: Common.UID.ContentType) => {\n return new Proxy(strapi.contentType(uid), {\n get(target, prop) {\n const contentType = strapi.contentType(uid);\n if (prop in contentType) {\n return contentType[prop as keyof typeof contentType];\n }\n },\n });\n};\n\nconst createCoreController = <\n TUID extends Common.UID.ContentType,\n TController extends CoreApi.Controller.Extendable<TUID>\n>(\n uid: TUID,\n cfg?: WithStrapiCallback<Utils.PartialWithThis<CoreApi.Controller.Extendable<TUID> & TController>>\n) => {\n return ({ strapi }: { strapi: Strapi }): TController & CoreApi.Controller.ContentType<TUID> => {\n const baseController = createController({ contentType: getContentTypeProxy(strapi, uid) });\n\n const userCtrl = typeof cfg === 'function' ? cfg({ strapi }) : cfg ?? ({} as any);\n\n for (const methodName of Object.keys(baseController) as Array<keyof typeof baseController>) {\n if (userCtrl[methodName] === undefined) {\n userCtrl[methodName] = baseController[methodName];\n }\n }\n\n Object.setPrototypeOf(userCtrl, baseController);\n return userCtrl;\n };\n};\n\nfunction createCoreService<\n TUID extends Common.UID.ContentType,\n TService extends CoreApi.Service.Extendable<TUID>\n>(\n uid: TUID,\n cfg?: WithStrapiCallback<Utils.PartialWithThis<CoreApi.Service.Extendable<TUID> & TService>>\n) {\n return ({ strapi }: { strapi: Strapi }): TService & CoreApi.Service.ContentType<TUID> => {\n const baseService = createService({ contentType: getContentTypeProxy(strapi, uid) });\n\n const userService = typeof cfg === 'function' ? cfg({ strapi }) : cfg ?? ({} as any);\n\n for (const methodName of Object.keys(baseService) as Array<keyof typeof baseService>) {\n if (userService[methodName] === undefined) {\n userService[methodName] = baseService[methodName];\n }\n }\n\n Object.setPrototypeOf(userService, baseService);\n return userService;\n };\n}\n\nfunction createCoreRouter<T extends Common.UID.ContentType>(\n uid: T,\n cfg?: CoreApi.Router.RouterConfig<T>\n): CoreApi.Router.Router {\n const { prefix, config = {}, only, except, type = 'content-api' } = cfg ?? {};\n let routes: CoreApi.Router.Route[];\n\n return {\n type,\n prefix,\n get routes() {\n if (!routes) {\n const contentType = strapi.contentType(uid);\n\n const defaultRoutes = createRoutes({ contentType });\n const keys = Object.keys(defaultRoutes) as Array<keyof typeof defaultRoutes>;\n\n keys.forEach((routeName) => {\n const defaultRoute = defaultRoutes[routeName];\n\n Object.assign(defaultRoute.config, config[routeName] || {});\n });\n\n const selectedRoutes = pipe(\n (routes) => (except ? omit(except, routes) : routes),\n (routes) => (only ? pick(only, routes) : routes)\n )(defaultRoutes);\n\n routes = Object.values(selectedRoutes);\n }\n\n return routes;\n },\n };\n}\n\nexport { createCoreController, createCoreService, createCoreRouter };\n"],"names":["strapi","routes"],"mappings":";;;;AAUA,MAAM,sBAAsB,CAACA,SAAgB,QAAgC;AAC3E,SAAO,IAAI,MAAMA,QAAO,YAAY,GAAG,GAAG;AAAA,IACxC,IAAI,QAAQ,MAAM;AACV,YAAA,cAAcA,QAAO,YAAY,GAAG;AAC1C,UAAI,QAAQ,aAAa;AACvB,eAAO,YAAY,IAAgC;AAAA,MACrD;AAAA,IACF;AAAA,EAAA,CACD;AACH;AAEM,MAAA,uBAAuB,CAI3B,KACA,QACG;AACH,SAAO,CAAC,EAAE,QAAAA,cAAqF;AACvF,UAAA,iBAAiB,iBAAiB,EAAE,aAAa,oBAAoBA,SAAQ,GAAG,GAAG;AAEnF,UAAA,WAAW,OAAO,QAAQ,aAAa,IAAI,EAAE,QAAAA,QAAQ,CAAA,IAAI,OAAQ;AAEvE,eAAW,cAAc,OAAO,KAAK,cAAc,GAAyC;AACtF,UAAA,SAAS,UAAU,MAAM,QAAW;AAC7B,iBAAA,UAAU,IAAI,eAAe,UAAU;AAAA,MAClD;AAAA,IACF;AAEO,WAAA,eAAe,UAAU,cAAc;AACvC,WAAA;AAAA,EAAA;AAEX;AAEA,SAAS,kBAIP,KACA,KACA;AACA,SAAO,CAAC,EAAE,QAAAA,cAA+E;AACjF,UAAA,cAAc,cAAc,EAAE,aAAa,oBAAoBA,SAAQ,GAAG,GAAG;AAE7E,UAAA,cAAc,OAAO,QAAQ,aAAa,IAAI,EAAE,QAAAA,QAAQ,CAAA,IAAI,OAAQ;AAE1E,eAAW,cAAc,OAAO,KAAK,WAAW,GAAsC;AAChF,UAAA,YAAY,UAAU,MAAM,QAAW;AAC7B,oBAAA,UAAU,IAAI,YAAY,UAAU;AAAA,MAClD;AAAA,IACF;AAEO,WAAA,eAAe,aAAa,WAAW;AACvC,WAAA;AAAA,EAAA;AAEX;AAEA,SAAS,iBACP,KACA,KACuB;AACjB,QAAA,EAAE,QAAQ,SAAS,CAAA,GAAI,MAAM,QAAQ,OAAO,cAAA,IAAkB,OAAO;AACvE,MAAA;AAEG,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA,IAAI,SAAS;AACX,UAAI,CAAC,QAAQ;AACL,cAAA,cAAc,OAAO,YAAY,GAAG;AAE1C,cAAM,gBAAgB,aAAa,EAAE,YAAa,CAAA;AAC5C,cAAA,OAAO,OAAO,KAAK,aAAa;AAEjC,aAAA,QAAQ,CAAC,cAAc;AACpB,gBAAA,eAAe,cAAc,SAAS;AAE5C,iBAAO,OAAO,aAAa,QAAQ,OAAO,SAAS,KAAK,CAAA,CAAE;AAAA,QAAA,CAC3D;AAED,cAAM,iBAAiB;AAAA,UACrB,CAACC,YAAY,SAAS,KAAK,QAAQA,OAAM,IAAIA;AAAAA,UAC7C,CAACA,YAAY,OAAO,KAAK,MAAMA,OAAM,IAAIA;AAAAA,UACzC,aAAa;AAEN,iBAAA,OAAO,OAAO,cAAc;AAAA,MACvC;AAEO,aAAA;AAAA,IACT;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"factories.mjs","sources":["../src/factories.ts"],"sourcesContent":["import { pipe, omit, pick } from 'lodash/fp';\nimport type { Core, UID, Utils } from '@strapi/types';\n\nimport { createController } from './core-api/controller';\nimport { createService } from './core-api/service';\nimport { createRoutes } from './core-api/routes';\n\nconst symbols = {\n CustomController: Symbol('StrapiCustomCoreController'),\n} as const;\n\ntype WithStrapiCallback<T> = T | (<S extends { strapi: Core.Strapi }>(params: S) => T);\n\nconst createCoreController = <\n TUID extends UID.ContentType,\n TController extends Core.CoreAPI.Controller.Extendable<TUID>,\n>(\n uid: TUID,\n cfg?: WithStrapiCallback<\n Utils.PartialWithThis<Core.CoreAPI.Controller.Extendable<TUID> & TController>\n >\n) => {\n return ({\n strapi,\n }: {\n strapi: Core.Strapi;\n }): TController & Core.CoreAPI.Controller.ContentType<TUID> => {\n const baseController = createController({ contentType: strapi.contentType(uid) });\n\n const userCtrl = typeof cfg === 'function' ? cfg({ strapi }) : cfg ?? ({} as any);\n\n for (const methodName of Object.keys(baseController) as Array<keyof typeof baseController>) {\n if (userCtrl[methodName] === undefined) {\n userCtrl[methodName] = baseController[methodName];\n }\n }\n\n Object.setPrototypeOf(userCtrl, baseController);\n\n const isCustom = typeof cfg !== 'undefined';\n if (isCustom) {\n Object.defineProperty(userCtrl, symbols.CustomController, {\n writable: false,\n configurable: false,\n enumerable: false,\n });\n }\n\n return userCtrl;\n };\n};\n\nfunction createCoreService<\n TUID extends UID.ContentType,\n TService extends Core.CoreAPI.Service.Extendable<TUID>,\n>(\n uid: TUID,\n cfg?: WithStrapiCallback<Utils.PartialWithThis<Core.CoreAPI.Service.Extendable<TUID> & TService>>\n) {\n return ({\n strapi,\n }: {\n strapi: Core.Strapi;\n }): TService & Core.CoreAPI.Service.ContentType<TUID> => {\n const baseService = createService({ contentType: strapi.contentType(uid) });\n\n const userService = typeof cfg === 'function' ? cfg({ strapi }) : cfg ?? ({} as any);\n\n for (const methodName of Object.keys(baseService) as Array<keyof typeof baseService>) {\n if (userService[methodName] === undefined) {\n userService[methodName] = baseService[methodName];\n }\n }\n\n Object.setPrototypeOf(userService, baseService);\n return userService;\n };\n}\n\nfunction createCoreRouter<T extends UID.ContentType>(\n uid: T,\n cfg?: Core.CoreAPI.Router.RouterConfig<T>\n): Core.CoreAPI.Router.Router {\n const { prefix, config = {}, only, except, type = 'content-api' } = cfg ?? {};\n let routes: Core.CoreAPI.Router.Route[];\n\n return {\n type,\n prefix,\n get routes() {\n if (!routes) {\n const contentType = strapi.contentType(uid);\n\n const defaultRoutes = createRoutes({ contentType });\n const keys = Object.keys(defaultRoutes) as Array<keyof typeof defaultRoutes>;\n\n keys.forEach((routeName) => {\n const defaultRoute = defaultRoutes[routeName];\n\n Object.assign(defaultRoute.config, config[routeName] || {});\n });\n\n const selectedRoutes = pipe(\n (routes) => (except ? omit(except, routes) : routes),\n (routes) => (only ? pick(only, routes) : routes)\n )(defaultRoutes);\n\n routes = Object.values(selectedRoutes);\n }\n\n return routes;\n },\n };\n}\n\nconst isCustomController = <T extends Core.Controller>(controller: T): boolean => {\n return symbols.CustomController in controller;\n};\n\nexport { createCoreController, createCoreService, createCoreRouter, isCustomController };\n"],"names":["strapi","routes"],"mappings":";;;;AAOA,MAAM,UAAU;AAAA,EACd,kBAAkB,OAAO,4BAA4B;AACvD;AAIM,MAAA,uBAAuB,CAI3B,KACA,QAGG;AACH,SAAO,CAAC;AAAA,IACN,QAAAA;AAAAA,EAAA,MAG6D;AACvD,UAAA,iBAAiB,iBAAiB,EAAE,aAAaA,QAAO,YAAY,GAAG,GAAG;AAE1E,UAAA,WAAW,OAAO,QAAQ,aAAa,IAAI,EAAE,QAAAA,QAAQ,CAAA,IAAI,OAAQ;AAEvE,eAAW,cAAc,OAAO,KAAK,cAAc,GAAyC;AACtF,UAAA,SAAS,UAAU,MAAM,QAAW;AAC7B,iBAAA,UAAU,IAAI,eAAe,UAAU;AAAA,MAClD;AAAA,IACF;AAEO,WAAA,eAAe,UAAU,cAAc;AAExC,UAAA,WAAW,OAAO,QAAQ;AAChC,QAAI,UAAU;AACL,aAAA,eAAe,UAAU,QAAQ,kBAAkB;AAAA,QACxD,UAAU;AAAA,QACV,cAAc;AAAA,QACd,YAAY;AAAA,MAAA,CACb;AAAA,IACH;AAEO,WAAA;AAAA,EAAA;AAEX;AAEA,SAAS,kBAIP,KACA,KACA;AACA,SAAO,CAAC;AAAA,IACN,QAAAA;AAAAA,EAAA,MAGuD;AACjD,UAAA,cAAc,cAAc,EAAE,aAAaA,QAAO,YAAY,GAAG,GAAG;AAEpE,UAAA,cAAc,OAAO,QAAQ,aAAa,IAAI,EAAE,QAAAA,QAAQ,CAAA,IAAI,OAAQ;AAE1E,eAAW,cAAc,OAAO,KAAK,WAAW,GAAsC;AAChF,UAAA,YAAY,UAAU,MAAM,QAAW;AAC7B,oBAAA,UAAU,IAAI,YAAY,UAAU;AAAA,MAClD;AAAA,IACF;AAEO,WAAA,eAAe,aAAa,WAAW;AACvC,WAAA;AAAA,EAAA;AAEX;AAEA,SAAS,iBACP,KACA,KAC4B;AACtB,QAAA,EAAE,QAAQ,SAAS,CAAA,GAAI,MAAM,QAAQ,OAAO,cAAA,IAAkB,OAAO;AACvE,MAAA;AAEG,SAAA;AAAA,IACL;AAAA,IACA;AAAA,IACA,IAAI,SAAS;AACX,UAAI,CAAC,QAAQ;AACL,cAAA,cAAc,OAAO,YAAY,GAAG;AAE1C,cAAM,gBAAgB,aAAa,EAAE,YAAa,CAAA;AAC5C,cAAA,OAAO,OAAO,KAAK,aAAa;AAEjC,aAAA,QAAQ,CAAC,cAAc;AACpB,gBAAA,eAAe,cAAc,SAAS;AAE5C,iBAAO,OAAO,aAAa,QAAQ,OAAO,SAAS,KAAK,CAAA,CAAE;AAAA,QAAA,CAC3D;AAED,cAAM,iBAAiB;AAAA,UACrB,CAACC,YAAY,SAAS,KAAK,QAAQA,OAAM,IAAIA;AAAAA,UAC7C,CAACA,YAAY,OAAO,KAAK,MAAMA,OAAM,IAAIA;AAAAA,UACzC,aAAa;AAEN,iBAAA,OAAO,OAAO,cAAc;AAAA,MACvC;AAEO,aAAA;AAAA,IACT;AAAA,EAAA;AAEJ;AAEM,MAAA,qBAAqB,CAA4B,eAA2B;AAChF,SAAO,QAAQ,oBAAoB;AACrC;"}
package/dist/index.d.ts CHANGED
@@ -1,3 +1,6 @@
1
- import StrapiFactory from './Strapi';
2
- export { StrapiFactory };
1
+ import type { Core } from '@strapi/types';
2
+ import Strapi, { type StrapiOptions } from './Strapi';
3
+ export { default as compileStrapi } from './compile';
4
+ export * as factories from './factories';
5
+ export declare const createStrapi: (options?: Partial<StrapiOptions>) => Core.Strapi;
3
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,UAAU,CAAC;AAQrC,OAAO,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,MAAM,EAAE,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAGtD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC;AAEzC,eAAO,MAAM,YAAY,aAAa,QAAQ,aAAa,CAAC,KAAQ,WAanE,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,31 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const Strapi = require("./Strapi.js");
4
- exports.StrapiFactory = Strapi;
4
+ require("open");
5
+ require("lodash/fp");
6
+ require("path");
7
+ require("./ee/license.js");
8
+ const index = require("./utils/update-notifier/index.js");
9
+ require("undici");
10
+ require("chalk");
11
+ require("cli-table3");
12
+ require("@paralleldrive/cuid2");
13
+ require("node:assert");
14
+ const signals = require("./utils/signals.js");
15
+ const resolveWorkingDirs = require("./utils/resolve-working-dirs.js");
16
+ const compile = require("./compile.js");
17
+ const factories = require("./factories.js");
18
+ const createStrapi = (options = {}) => {
19
+ const strapi = new Strapi({
20
+ ...options,
21
+ ...resolveWorkingDirs.resolveWorkingDirectories(options)
22
+ });
23
+ signals.destroyOnSignal(strapi);
24
+ index.createUpdateNotifier(strapi);
25
+ global.strapi = strapi;
26
+ return strapi;
27
+ };
28
+ exports.compileStrapi = compile;
29
+ exports.factories = factories;
30
+ exports.createStrapi = createStrapi;
5
31
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
1
+ {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import 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';\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"],"names":["resolveWorkingDirectories","destroyOnSignal","createUpdateNotifier"],"mappings":";;;;;;;;;;;;;;;;;AAQO,MAAM,eAAe,CAAC,UAAkC,OAAoB;AAC3E,QAAA,SAAS,IAAI,OAAO;AAAA,IACxB,GAAG;AAAA,IACH,GAAGA,mBAAAA,0BAA0B,OAAO;AAAA,EAAA,CACrC;AAEDC,UAAA,gBAAgB,MAAM;AACtBC,QAAA,qBAAqB,MAAM;AAG3B,SAAO,SAAS;AAET,SAAA;AACT;;;;"}
package/dist/index.mjs CHANGED
@@ -1,5 +1,31 @@
1
- import { default as default2 } from "./Strapi.mjs";
1
+ import Strapi from "./Strapi.mjs";
2
+ import "open";
3
+ import "lodash/fp";
4
+ import "path";
5
+ import "./ee/license.mjs";
6
+ import { createUpdateNotifier } from "./utils/update-notifier/index.mjs";
7
+ import "undici";
8
+ import "chalk";
9
+ import "cli-table3";
10
+ import "@paralleldrive/cuid2";
11
+ import "node:assert";
12
+ import { destroyOnSignal } from "./utils/signals.mjs";
13
+ import { resolveWorkingDirectories } from "./utils/resolve-working-dirs.mjs";
14
+ import { default as default2 } from "./compile.mjs";
15
+ import * as factories from "./factories.mjs";
16
+ const createStrapi = (options = {}) => {
17
+ const strapi = new Strapi({
18
+ ...options,
19
+ ...resolveWorkingDirectories(options)
20
+ });
21
+ destroyOnSignal(strapi);
22
+ createUpdateNotifier(strapi);
23
+ global.strapi = strapi;
24
+ return strapi;
25
+ };
2
26
  export {
3
- default2 as StrapiFactory
27
+ default2 as compileStrapi,
28
+ createStrapi,
29
+ factories
4
30
  };
5
31
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"index.mjs","sources":["../src/index.ts"],"sourcesContent":["import 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';\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"],"names":[],"mappings":";;;;;;;;;;;;;;;AAQO,MAAM,eAAe,CAAC,UAAkC,OAAoB;AAC3E,QAAA,SAAS,IAAI,OAAO;AAAA,IACxB,GAAG;AAAA,IACH,GAAG,0BAA0B,OAAO;AAAA,EAAA,CACrC;AAED,kBAAgB,MAAM;AACtB,uBAAqB,MAAM;AAG3B,SAAO,SAAS;AAET,SAAA;AACT;"}
@@ -0,0 +1,3 @@
1
+ import type { Core } from '@strapi/types';
2
+ export default function loadAdmin(strapi: Core.Strapi): Promise<void>;
3
+ //# sourceMappingURL=admin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/loaders/admin.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAU,MAAM,eAAe,CAAC;AAGlD,wBAA8B,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,iBAW1D"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ const _ = require("lodash");
3
+ const index = require("../domain/content-type/index.js");
4
+ const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
5
+ const ___default = /* @__PURE__ */ _interopDefault(_);
6
+ async function loadAdmin(strapi) {
7
+ strapi.get("services").add(`admin::`, strapi.admin?.services);
8
+ strapi.get("controllers").add(`admin::`, strapi.admin?.controllers);
9
+ strapi.get("content-types").add(`admin::`, formatContentTypes(strapi.admin?.contentTypes ?? {}));
10
+ strapi.get("policies").add(`admin::`, strapi.admin?.policies);
11
+ strapi.get("middlewares").add(`admin::`, strapi.admin?.middlewares);
12
+ const userAdminConfig = strapi.config.get("admin");
13
+ strapi.get("config").set("admin", ___default.default.merge(strapi.admin?.config, userAdminConfig));
14
+ }
15
+ const formatContentTypes = (contentTypes) => {
16
+ Object.values(contentTypes).forEach((definition) => {
17
+ const { schema } = definition;
18
+ Object.assign(schema, {
19
+ plugin: "admin",
20
+ globalId: index.getGlobalId(schema, "admin")
21
+ });
22
+ });
23
+ return contentTypes;
24
+ };
25
+ module.exports = loadAdmin;
26
+ //# sourceMappingURL=admin.js.map