@strapi/core 0.0.0-experimental.44c735643fa8b4286750c2dca43f185bb30b7760 → 0.0.0-experimental.457ea3914b4550fd60261e9e99d4501c5d1702cb

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 (693) hide show
  1. package/dist/Strapi.d.ts.map +1 -1
  2. package/dist/configuration/index.d.ts.map +1 -1
  3. package/dist/domain/content-type/index.d.ts.map +1 -1
  4. package/dist/ee/index.d.ts.map +1 -1
  5. package/dist/index.js +9954 -27
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.mjs +9932 -29
  8. package/dist/index.mjs.map +1 -1
  9. package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -1
  10. package/dist/loaders/plugins/index.d.ts.map +1 -1
  11. package/dist/middlewares/body.d.ts.map +1 -1
  12. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +14 -11
  13. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -1
  14. package/dist/migrations/draft-publish.d.ts +2 -2
  15. package/dist/migrations/draft-publish.d.ts.map +1 -1
  16. package/dist/migrations/i18n.d.ts +5 -0
  17. package/dist/migrations/i18n.d.ts.map +1 -0
  18. package/dist/migrations/index.d.ts +5 -0
  19. package/dist/migrations/index.d.ts.map +1 -0
  20. package/dist/providers/admin.d.ts.map +1 -1
  21. package/dist/services/document-service/common.d.ts +1 -1
  22. package/dist/services/document-service/common.d.ts.map +1 -1
  23. package/dist/services/document-service/components.d.ts.map +1 -1
  24. package/dist/services/document-service/draft-and-publish.d.ts +1 -1
  25. package/dist/services/document-service/draft-and-publish.d.ts.map +1 -1
  26. package/dist/services/document-service/entries.d.ts +2 -2
  27. package/dist/services/document-service/entries.d.ts.map +1 -1
  28. package/dist/services/document-service/events.d.ts +1 -1
  29. package/dist/services/document-service/events.d.ts.map +1 -1
  30. package/dist/services/document-service/index.d.ts +2 -1
  31. package/dist/services/document-service/index.d.ts.map +1 -1
  32. package/dist/services/document-service/repository.d.ts.map +1 -1
  33. package/dist/services/document-service/transform/id-map.d.ts +1 -1
  34. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  35. package/dist/services/document-service/transform/id-transform.d.ts +1 -1
  36. package/dist/services/document-service/transform/id-transform.d.ts.map +1 -1
  37. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts +1 -1
  38. package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
  39. package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
  40. package/dist/services/document-service/transform/relations/utils/dp.d.ts +1 -1
  41. package/dist/services/document-service/transform/relations/utils/dp.d.ts.map +1 -1
  42. package/dist/services/document-service/transform/relations/utils/i18n.d.ts +1 -1
  43. package/dist/services/document-service/transform/relations/utils/i18n.d.ts.map +1 -1
  44. package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -1
  45. package/dist/services/document-service/utils/populate.d.ts +1 -1
  46. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  47. package/dist/services/document-service/utils/unidirectional-relations.d.ts +36 -0
  48. package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -0
  49. package/dist/services/entity-validator/index.d.ts +1 -1
  50. package/dist/services/entity-validator/index.d.ts.map +1 -1
  51. package/dist/services/metrics/middleware.d.ts.map +1 -1
  52. package/dist/services/metrics/rate-limiter.d.ts.map +1 -1
  53. package/dist/utils/startup-logger.d.ts.map +1 -1
  54. package/dist/utils/transform-content-types-to-models.d.ts +353 -21
  55. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  56. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  57. package/package.json +27 -27
  58. package/dist/Strapi.js +0 -431
  59. package/dist/Strapi.js.map +0 -1
  60. package/dist/Strapi.mjs +0 -410
  61. package/dist/Strapi.mjs.map +0 -1
  62. package/dist/compile.js +0 -18
  63. package/dist/compile.js.map +0 -1
  64. package/dist/compile.mjs +0 -17
  65. package/dist/compile.mjs.map +0 -1
  66. package/dist/configuration/config-loader.js +0 -106
  67. package/dist/configuration/config-loader.js.map +0 -1
  68. package/dist/configuration/config-loader.mjs +0 -104
  69. package/dist/configuration/config-loader.mjs.map +0 -1
  70. package/dist/configuration/get-dirs.js +0 -31
  71. package/dist/configuration/get-dirs.js.map +0 -1
  72. package/dist/configuration/get-dirs.mjs +0 -31
  73. package/dist/configuration/get-dirs.mjs.map +0 -1
  74. package/dist/configuration/index.js +0 -80
  75. package/dist/configuration/index.js.map +0 -1
  76. package/dist/configuration/index.mjs +0 -75
  77. package/dist/configuration/index.mjs.map +0 -1
  78. package/dist/configuration/urls.js +0 -68
  79. package/dist/configuration/urls.js.map +0 -1
  80. package/dist/configuration/urls.mjs +0 -66
  81. package/dist/configuration/urls.mjs.map +0 -1
  82. package/dist/container.js +0 -30
  83. package/dist/container.js.map +0 -1
  84. package/dist/container.mjs +0 -30
  85. package/dist/container.mjs.map +0 -1
  86. package/dist/core-api/controller/collection-type.js +0 -84
  87. package/dist/core-api/controller/collection-type.js.map +0 -1
  88. package/dist/core-api/controller/collection-type.mjs +0 -84
  89. package/dist/core-api/controller/collection-type.mjs.map +0 -1
  90. package/dist/core-api/controller/index.js +0 -52
  91. package/dist/core-api/controller/index.js.map +0 -1
  92. package/dist/core-api/controller/index.mjs +0 -52
  93. package/dist/core-api/controller/index.mjs.map +0 -1
  94. package/dist/core-api/controller/single-type.js +0 -46
  95. package/dist/core-api/controller/single-type.js.map +0 -1
  96. package/dist/core-api/controller/single-type.mjs +0 -46
  97. package/dist/core-api/controller/single-type.mjs.map +0 -1
  98. package/dist/core-api/controller/transform.js +0 -76
  99. package/dist/core-api/controller/transform.js.map +0 -1
  100. package/dist/core-api/controller/transform.mjs +0 -76
  101. package/dist/core-api/controller/transform.mjs.map +0 -1
  102. package/dist/core-api/routes/index.js +0 -67
  103. package/dist/core-api/routes/index.js.map +0 -1
  104. package/dist/core-api/routes/index.mjs +0 -67
  105. package/dist/core-api/routes/index.mjs.map +0 -1
  106. package/dist/core-api/service/collection-type.js +0 -67
  107. package/dist/core-api/service/collection-type.js.map +0 -1
  108. package/dist/core-api/service/collection-type.mjs +0 -67
  109. package/dist/core-api/service/collection-type.mjs.map +0 -1
  110. package/dist/core-api/service/core-service.js +0 -12
  111. package/dist/core-api/service/core-service.js.map +0 -1
  112. package/dist/core-api/service/core-service.mjs +0 -12
  113. package/dist/core-api/service/core-service.mjs.map +0 -1
  114. package/dist/core-api/service/index.js +0 -16
  115. package/dist/core-api/service/index.js.map +0 -1
  116. package/dist/core-api/service/index.mjs +0 -16
  117. package/dist/core-api/service/index.mjs.map +0 -1
  118. package/dist/core-api/service/pagination.js +0 -52
  119. package/dist/core-api/service/pagination.js.map +0 -1
  120. package/dist/core-api/service/pagination.mjs +0 -52
  121. package/dist/core-api/service/pagination.mjs.map +0 -1
  122. package/dist/core-api/service/single-type.js +0 -46
  123. package/dist/core-api/service/single-type.js.map +0 -1
  124. package/dist/core-api/service/single-type.mjs +0 -46
  125. package/dist/core-api/service/single-type.mjs.map +0 -1
  126. package/dist/domain/content-type/index.js +0 -126
  127. package/dist/domain/content-type/index.js.map +0 -1
  128. package/dist/domain/content-type/index.mjs +0 -124
  129. package/dist/domain/content-type/index.mjs.map +0 -1
  130. package/dist/domain/content-type/validator.js +0 -77
  131. package/dist/domain/content-type/validator.js.map +0 -1
  132. package/dist/domain/content-type/validator.mjs +0 -75
  133. package/dist/domain/content-type/validator.mjs.map +0 -1
  134. package/dist/domain/module/index.js +0 -107
  135. package/dist/domain/module/index.js.map +0 -1
  136. package/dist/domain/module/index.mjs +0 -105
  137. package/dist/domain/module/index.mjs.map +0 -1
  138. package/dist/domain/module/validation.js +0 -25
  139. package/dist/domain/module/validation.js.map +0 -1
  140. package/dist/domain/module/validation.mjs +0 -25
  141. package/dist/domain/module/validation.mjs.map +0 -1
  142. package/dist/ee/index.js +0 -153
  143. package/dist/ee/index.js.map +0 -1
  144. package/dist/ee/index.mjs +0 -154
  145. package/dist/ee/index.mjs.map +0 -1
  146. package/dist/ee/license.js +0 -91
  147. package/dist/ee/license.js.map +0 -1
  148. package/dist/ee/license.mjs +0 -88
  149. package/dist/ee/license.mjs.map +0 -1
  150. package/dist/factories.js +0 -80
  151. package/dist/factories.js.map +0 -1
  152. package/dist/factories.mjs +0 -80
  153. package/dist/factories.mjs.map +0 -1
  154. package/dist/loaders/admin.js +0 -26
  155. package/dist/loaders/admin.js.map +0 -1
  156. package/dist/loaders/admin.mjs +0 -25
  157. package/dist/loaders/admin.mjs.map +0 -1
  158. package/dist/loaders/apis.js +0 -137
  159. package/dist/loaders/apis.js.map +0 -1
  160. package/dist/loaders/apis.mjs +0 -135
  161. package/dist/loaders/apis.mjs.map +0 -1
  162. package/dist/loaders/components.js +0 -38
  163. package/dist/loaders/components.js.map +0 -1
  164. package/dist/loaders/components.mjs +0 -37
  165. package/dist/loaders/components.mjs.map +0 -1
  166. package/dist/loaders/index.js +0 -24
  167. package/dist/loaders/index.js.map +0 -1
  168. package/dist/loaders/index.mjs +0 -24
  169. package/dist/loaders/index.mjs.map +0 -1
  170. package/dist/loaders/middlewares.js +0 -31
  171. package/dist/loaders/middlewares.js.map +0 -1
  172. package/dist/loaders/middlewares.mjs +0 -30
  173. package/dist/loaders/middlewares.mjs.map +0 -1
  174. package/dist/loaders/plugins/get-enabled-plugins.js +0 -138
  175. package/dist/loaders/plugins/get-enabled-plugins.js.map +0 -1
  176. package/dist/loaders/plugins/get-enabled-plugins.mjs +0 -114
  177. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +0 -1
  178. package/dist/loaders/plugins/get-user-plugins-config.js +0 -27
  179. package/dist/loaders/plugins/get-user-plugins-config.js.map +0 -1
  180. package/dist/loaders/plugins/get-user-plugins-config.mjs +0 -25
  181. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +0 -1
  182. package/dist/loaders/plugins/index.js +0 -118
  183. package/dist/loaders/plugins/index.js.map +0 -1
  184. package/dist/loaders/plugins/index.mjs +0 -117
  185. package/dist/loaders/plugins/index.mjs.map +0 -1
  186. package/dist/loaders/policies.js +0 -25
  187. package/dist/loaders/policies.js.map +0 -1
  188. package/dist/loaders/policies.mjs +0 -24
  189. package/dist/loaders/policies.mjs.map +0 -1
  190. package/dist/loaders/sanitizers.js +0 -6
  191. package/dist/loaders/sanitizers.js.map +0 -1
  192. package/dist/loaders/sanitizers.mjs +0 -7
  193. package/dist/loaders/sanitizers.mjs.map +0 -1
  194. package/dist/loaders/src-index.js +0 -33
  195. package/dist/loaders/src-index.js.map +0 -1
  196. package/dist/loaders/src-index.mjs +0 -34
  197. package/dist/loaders/src-index.mjs.map +0 -1
  198. package/dist/loaders/validators.js +0 -6
  199. package/dist/loaders/validators.js.map +0 -1
  200. package/dist/loaders/validators.mjs +0 -7
  201. package/dist/loaders/validators.mjs.map +0 -1
  202. package/dist/middlewares/body.js +0 -65
  203. package/dist/middlewares/body.js.map +0 -1
  204. package/dist/middlewares/body.mjs +0 -61
  205. package/dist/middlewares/body.mjs.map +0 -1
  206. package/dist/middlewares/compression.js +0 -8
  207. package/dist/middlewares/compression.js.map +0 -1
  208. package/dist/middlewares/compression.mjs +0 -6
  209. package/dist/middlewares/compression.mjs.map +0 -1
  210. package/dist/middlewares/cors.js +0 -53
  211. package/dist/middlewares/cors.js.map +0 -1
  212. package/dist/middlewares/cors.mjs +0 -51
  213. package/dist/middlewares/cors.mjs.map +0 -1
  214. package/dist/middlewares/errors.js +0 -33
  215. package/dist/middlewares/errors.js.map +0 -1
  216. package/dist/middlewares/errors.mjs +0 -33
  217. package/dist/middlewares/errors.mjs.map +0 -1
  218. package/dist/middlewares/favicon.js +0 -22
  219. package/dist/middlewares/favicon.js.map +0 -1
  220. package/dist/middlewares/favicon.mjs +0 -20
  221. package/dist/middlewares/favicon.mjs.map +0 -1
  222. package/dist/middlewares/index.js +0 -34
  223. package/dist/middlewares/index.js.map +0 -1
  224. package/dist/middlewares/index.mjs +0 -34
  225. package/dist/middlewares/index.mjs.map +0 -1
  226. package/dist/middlewares/ip.js +0 -8
  227. package/dist/middlewares/ip.js.map +0 -1
  228. package/dist/middlewares/ip.mjs +0 -6
  229. package/dist/middlewares/ip.mjs.map +0 -1
  230. package/dist/middlewares/logger.js +0 -12
  231. package/dist/middlewares/logger.js.map +0 -1
  232. package/dist/middlewares/logger.mjs +0 -12
  233. package/dist/middlewares/logger.mjs.map +0 -1
  234. package/dist/middlewares/powered-by.js +0 -14
  235. package/dist/middlewares/powered-by.js.map +0 -1
  236. package/dist/middlewares/powered-by.mjs +0 -14
  237. package/dist/middlewares/powered-by.mjs.map +0 -1
  238. package/dist/middlewares/public.js +0 -34
  239. package/dist/middlewares/public.js.map +0 -1
  240. package/dist/middlewares/public.mjs +0 -32
  241. package/dist/middlewares/public.mjs.map +0 -1
  242. package/dist/middlewares/query.js +0 -40
  243. package/dist/middlewares/query.js.map +0 -1
  244. package/dist/middlewares/query.mjs +0 -38
  245. package/dist/middlewares/query.mjs.map +0 -1
  246. package/dist/middlewares/response-time.js +0 -12
  247. package/dist/middlewares/response-time.js.map +0 -1
  248. package/dist/middlewares/response-time.mjs +0 -12
  249. package/dist/middlewares/response-time.mjs.map +0 -1
  250. package/dist/middlewares/responses.js +0 -15
  251. package/dist/middlewares/responses.js.map +0 -1
  252. package/dist/middlewares/responses.mjs +0 -15
  253. package/dist/middlewares/responses.mjs.map +0 -1
  254. package/dist/middlewares/security.js +0 -78
  255. package/dist/middlewares/security.js.map +0 -1
  256. package/dist/middlewares/security.mjs +0 -76
  257. package/dist/middlewares/security.mjs.map +0 -1
  258. package/dist/middlewares/session.js +0 -30
  259. package/dist/middlewares/session.js.map +0 -1
  260. package/dist/middlewares/session.mjs +0 -28
  261. package/dist/middlewares/session.mjs.map +0 -1
  262. package/dist/migrations/database/5.0.0-discard-drafts.js +0 -50
  263. package/dist/migrations/database/5.0.0-discard-drafts.js.map +0 -1
  264. package/dist/migrations/database/5.0.0-discard-drafts.mjs +0 -50
  265. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +0 -1
  266. package/dist/migrations/draft-publish.js +0 -42
  267. package/dist/migrations/draft-publish.js.map +0 -1
  268. package/dist/migrations/draft-publish.mjs +0 -42
  269. package/dist/migrations/draft-publish.mjs.map +0 -1
  270. package/dist/providers/admin.js +0 -20
  271. package/dist/providers/admin.js.map +0 -1
  272. package/dist/providers/admin.mjs +0 -21
  273. package/dist/providers/admin.mjs.map +0 -1
  274. package/dist/providers/coreStore.js +0 -11
  275. package/dist/providers/coreStore.js.map +0 -1
  276. package/dist/providers/coreStore.mjs +0 -12
  277. package/dist/providers/coreStore.mjs.map +0 -1
  278. package/dist/providers/cron.js +0 -20
  279. package/dist/providers/cron.js.map +0 -1
  280. package/dist/providers/cron.mjs +0 -21
  281. package/dist/providers/cron.mjs.map +0 -1
  282. package/dist/providers/index.js +0 -11
  283. package/dist/providers/index.js.map +0 -1
  284. package/dist/providers/index.mjs +0 -11
  285. package/dist/providers/index.mjs.map +0 -1
  286. package/dist/providers/provider.js +0 -5
  287. package/dist/providers/provider.js.map +0 -1
  288. package/dist/providers/provider.mjs +0 -5
  289. package/dist/providers/provider.mjs.map +0 -1
  290. package/dist/providers/registries.js +0 -35
  291. package/dist/providers/registries.js.map +0 -1
  292. package/dist/providers/registries.mjs +0 -36
  293. package/dist/providers/registries.mjs.map +0 -1
  294. package/dist/providers/telemetry.js +0 -19
  295. package/dist/providers/telemetry.js.map +0 -1
  296. package/dist/providers/telemetry.mjs +0 -20
  297. package/dist/providers/telemetry.mjs.map +0 -1
  298. package/dist/providers/webhooks.js +0 -30
  299. package/dist/providers/webhooks.js.map +0 -1
  300. package/dist/providers/webhooks.mjs +0 -31
  301. package/dist/providers/webhooks.mjs.map +0 -1
  302. package/dist/registries/apis.js +0 -23
  303. package/dist/registries/apis.js.map +0 -1
  304. package/dist/registries/apis.mjs +0 -24
  305. package/dist/registries/apis.mjs.map +0 -1
  306. package/dist/registries/components.js +0 -45
  307. package/dist/registries/components.js.map +0 -1
  308. package/dist/registries/components.mjs +0 -46
  309. package/dist/registries/components.mjs.map +0 -1
  310. package/dist/registries/content-types.js +0 -70
  311. package/dist/registries/content-types.js.map +0 -1
  312. package/dist/registries/content-types.mjs +0 -71
  313. package/dist/registries/content-types.mjs.map +0 -1
  314. package/dist/registries/controllers.js +0 -80
  315. package/dist/registries/controllers.js.map +0 -1
  316. package/dist/registries/controllers.mjs +0 -81
  317. package/dist/registries/controllers.mjs.map +0 -1
  318. package/dist/registries/custom-fields.js +0 -71
  319. package/dist/registries/custom-fields.js.map +0 -1
  320. package/dist/registries/custom-fields.mjs +0 -72
  321. package/dist/registries/custom-fields.mjs.map +0 -1
  322. package/dist/registries/hooks.js +0 -58
  323. package/dist/registries/hooks.js.map +0 -1
  324. package/dist/registries/hooks.mjs +0 -59
  325. package/dist/registries/hooks.mjs.map +0 -1
  326. package/dist/registries/middlewares.js +0 -60
  327. package/dist/registries/middlewares.js.map +0 -1
  328. package/dist/registries/middlewares.mjs +0 -61
  329. package/dist/registries/middlewares.mjs.map +0 -1
  330. package/dist/registries/models.js +0 -16
  331. package/dist/registries/models.js.map +0 -1
  332. package/dist/registries/models.mjs +0 -16
  333. package/dist/registries/models.mjs.map +0 -1
  334. package/dist/registries/modules.js +0 -39
  335. package/dist/registries/modules.js.map +0 -1
  336. package/dist/registries/modules.mjs +0 -40
  337. package/dist/registries/modules.mjs.map +0 -1
  338. package/dist/registries/namespace.js +0 -27
  339. package/dist/registries/namespace.js.map +0 -1
  340. package/dist/registries/namespace.mjs +0 -27
  341. package/dist/registries/namespace.mjs.map +0 -1
  342. package/dist/registries/plugins.js +0 -23
  343. package/dist/registries/plugins.js.map +0 -1
  344. package/dist/registries/plugins.mjs +0 -24
  345. package/dist/registries/plugins.mjs.map +0 -1
  346. package/dist/registries/policies.js +0 -108
  347. package/dist/registries/policies.js.map +0 -1
  348. package/dist/registries/policies.mjs +0 -109
  349. package/dist/registries/policies.mjs.map +0 -1
  350. package/dist/registries/sanitizers.js +0 -25
  351. package/dist/registries/sanitizers.js.map +0 -1
  352. package/dist/registries/sanitizers.mjs +0 -24
  353. package/dist/registries/sanitizers.mjs.map +0 -1
  354. package/dist/registries/services.js +0 -80
  355. package/dist/registries/services.js.map +0 -1
  356. package/dist/registries/services.mjs +0 -81
  357. package/dist/registries/services.mjs.map +0 -1
  358. package/dist/registries/validators.js +0 -25
  359. package/dist/registries/validators.js.map +0 -1
  360. package/dist/registries/validators.mjs +0 -24
  361. package/dist/registries/validators.mjs.map +0 -1
  362. package/dist/services/auth/index.js +0 -81
  363. package/dist/services/auth/index.js.map +0 -1
  364. package/dist/services/auth/index.mjs +0 -80
  365. package/dist/services/auth/index.mjs.map +0 -1
  366. package/dist/services/config.js +0 -47
  367. package/dist/services/config.js.map +0 -1
  368. package/dist/services/config.mjs +0 -47
  369. package/dist/services/config.mjs.map +0 -1
  370. package/dist/services/content-api/index.js +0 -85
  371. package/dist/services/content-api/index.js.map +0 -1
  372. package/dist/services/content-api/index.mjs +0 -84
  373. package/dist/services/content-api/index.mjs.map +0 -1
  374. package/dist/services/content-api/permissions/engine.js +0 -7
  375. package/dist/services/content-api/permissions/engine.js.map +0 -1
  376. package/dist/services/content-api/permissions/engine.mjs +0 -6
  377. package/dist/services/content-api/permissions/engine.mjs.map +0 -1
  378. package/dist/services/content-api/permissions/index.js +0 -87
  379. package/dist/services/content-api/permissions/index.js.map +0 -1
  380. package/dist/services/content-api/permissions/index.mjs +0 -86
  381. package/dist/services/content-api/permissions/index.mjs.map +0 -1
  382. package/dist/services/content-api/permissions/providers/action.js +0 -16
  383. package/dist/services/content-api/permissions/providers/action.js.map +0 -1
  384. package/dist/services/content-api/permissions/providers/action.mjs +0 -17
  385. package/dist/services/content-api/permissions/providers/action.mjs.map +0 -1
  386. package/dist/services/content-api/permissions/providers/condition.js +0 -16
  387. package/dist/services/content-api/permissions/providers/condition.js.map +0 -1
  388. package/dist/services/content-api/permissions/providers/condition.mjs +0 -17
  389. package/dist/services/content-api/permissions/providers/condition.mjs.map +0 -1
  390. package/dist/services/core-store.js +0 -107
  391. package/dist/services/core-store.js.map +0 -1
  392. package/dist/services/core-store.mjs +0 -107
  393. package/dist/services/core-store.mjs.map +0 -1
  394. package/dist/services/cron.js +0 -63
  395. package/dist/services/cron.js.map +0 -1
  396. package/dist/services/cron.mjs +0 -64
  397. package/dist/services/cron.mjs.map +0 -1
  398. package/dist/services/custom-fields.js +0 -10
  399. package/dist/services/custom-fields.js.map +0 -1
  400. package/dist/services/custom-fields.mjs +0 -11
  401. package/dist/services/custom-fields.mjs.map +0 -1
  402. package/dist/services/document-service/attributes/index.js +0 -22
  403. package/dist/services/document-service/attributes/index.js.map +0 -1
  404. package/dist/services/document-service/attributes/index.mjs +0 -22
  405. package/dist/services/document-service/attributes/index.mjs.map +0 -1
  406. package/dist/services/document-service/attributes/transforms.js +0 -20
  407. package/dist/services/document-service/attributes/transforms.js.map +0 -1
  408. package/dist/services/document-service/attributes/transforms.mjs +0 -19
  409. package/dist/services/document-service/attributes/transforms.mjs.map +0 -1
  410. package/dist/services/document-service/common.js +0 -7
  411. package/dist/services/document-service/common.js.map +0 -1
  412. package/dist/services/document-service/common.mjs +0 -7
  413. package/dist/services/document-service/common.mjs.map +0 -1
  414. package/dist/services/document-service/components.js +0 -288
  415. package/dist/services/document-service/components.js.map +0 -1
  416. package/dist/services/document-service/components.mjs +0 -286
  417. package/dist/services/document-service/components.mjs.map +0 -1
  418. package/dist/services/document-service/draft-and-publish.js +0 -69
  419. package/dist/services/document-service/draft-and-publish.js.map +0 -1
  420. package/dist/services/document-service/draft-and-publish.mjs +0 -69
  421. package/dist/services/document-service/draft-and-publish.mjs.map +0 -1
  422. package/dist/services/document-service/entries.js +0 -96
  423. package/dist/services/document-service/entries.js.map +0 -1
  424. package/dist/services/document-service/entries.mjs +0 -96
  425. package/dist/services/document-service/entries.mjs.map +0 -1
  426. package/dist/services/document-service/events.js +0 -47
  427. package/dist/services/document-service/events.js.map +0 -1
  428. package/dist/services/document-service/events.mjs +0 -47
  429. package/dist/services/document-service/events.mjs.map +0 -1
  430. package/dist/services/document-service/index.js +0 -35
  431. package/dist/services/document-service/index.js.map +0 -1
  432. package/dist/services/document-service/index.mjs +0 -35
  433. package/dist/services/document-service/index.mjs.map +0 -1
  434. package/dist/services/document-service/internationalization.js +0 -63
  435. package/dist/services/document-service/internationalization.js.map +0 -1
  436. package/dist/services/document-service/internationalization.mjs +0 -63
  437. package/dist/services/document-service/internationalization.mjs.map +0 -1
  438. package/dist/services/document-service/middlewares/errors.js +0 -25
  439. package/dist/services/document-service/middlewares/errors.js.map +0 -1
  440. package/dist/services/document-service/middlewares/errors.mjs +0 -25
  441. package/dist/services/document-service/middlewares/errors.mjs.map +0 -1
  442. package/dist/services/document-service/middlewares/middleware-manager.js +0 -49
  443. package/dist/services/document-service/middlewares/middleware-manager.js.map +0 -1
  444. package/dist/services/document-service/middlewares/middleware-manager.mjs +0 -49
  445. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +0 -1
  446. package/dist/services/document-service/params.js +0 -8
  447. package/dist/services/document-service/params.js.map +0 -1
  448. package/dist/services/document-service/params.mjs +0 -8
  449. package/dist/services/document-service/params.mjs.map +0 -1
  450. package/dist/services/document-service/repository.js +0 -309
  451. package/dist/services/document-service/repository.js.map +0 -1
  452. package/dist/services/document-service/repository.mjs +0 -309
  453. package/dist/services/document-service/repository.mjs.map +0 -1
  454. package/dist/services/document-service/transform/data.js +0 -15
  455. package/dist/services/document-service/transform/data.js.map +0 -1
  456. package/dist/services/document-service/transform/data.mjs +0 -15
  457. package/dist/services/document-service/transform/data.mjs.map +0 -1
  458. package/dist/services/document-service/transform/fields.js +0 -24
  459. package/dist/services/document-service/transform/fields.js.map +0 -1
  460. package/dist/services/document-service/transform/fields.mjs +0 -24
  461. package/dist/services/document-service/transform/fields.mjs.map +0 -1
  462. package/dist/services/document-service/transform/id-map.js +0 -78
  463. package/dist/services/document-service/transform/id-map.js.map +0 -1
  464. package/dist/services/document-service/transform/id-map.mjs +0 -78
  465. package/dist/services/document-service/transform/id-map.mjs.map +0 -1
  466. package/dist/services/document-service/transform/id-transform.js +0 -33
  467. package/dist/services/document-service/transform/id-transform.js.map +0 -1
  468. package/dist/services/document-service/transform/id-transform.mjs +0 -33
  469. package/dist/services/document-service/transform/id-transform.mjs.map +0 -1
  470. package/dist/services/document-service/transform/populate.js +0 -21
  471. package/dist/services/document-service/transform/populate.js.map +0 -1
  472. package/dist/services/document-service/transform/populate.mjs +0 -21
  473. package/dist/services/document-service/transform/populate.mjs.map +0 -1
  474. package/dist/services/document-service/transform/query.js +0 -9
  475. package/dist/services/document-service/transform/query.js.map +0 -1
  476. package/dist/services/document-service/transform/query.mjs +0 -9
  477. package/dist/services/document-service/transform/query.mjs.map +0 -1
  478. package/dist/services/document-service/transform/relations/extract/data-ids.js +0 -57
  479. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +0 -1
  480. package/dist/services/document-service/transform/relations/extract/data-ids.mjs +0 -57
  481. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +0 -1
  482. package/dist/services/document-service/transform/relations/transform/data-ids.js +0 -76
  483. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +0 -1
  484. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +0 -76
  485. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +0 -1
  486. package/dist/services/document-service/transform/relations/transform/default-locale.js +0 -32
  487. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +0 -1
  488. package/dist/services/document-service/transform/relations/transform/default-locale.mjs +0 -32
  489. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +0 -1
  490. package/dist/services/document-service/transform/relations/utils/dp.js +0 -30
  491. package/dist/services/document-service/transform/relations/utils/dp.js.map +0 -1
  492. package/dist/services/document-service/transform/relations/utils/dp.mjs +0 -30
  493. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +0 -1
  494. package/dist/services/document-service/transform/relations/utils/i18n.js +0 -25
  495. package/dist/services/document-service/transform/relations/utils/i18n.js.map +0 -1
  496. package/dist/services/document-service/transform/relations/utils/i18n.mjs +0 -25
  497. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +0 -1
  498. package/dist/services/document-service/transform/relations/utils/map-relation.js +0 -91
  499. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +0 -1
  500. package/dist/services/document-service/transform/relations/utils/map-relation.mjs +0 -91
  501. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +0 -1
  502. package/dist/services/document-service/utils/populate.js +0 -45
  503. package/dist/services/document-service/utils/populate.js.map +0 -1
  504. package/dist/services/document-service/utils/populate.mjs +0 -45
  505. package/dist/services/document-service/utils/populate.mjs.map +0 -1
  506. package/dist/services/entity-service/index.js +0 -169
  507. package/dist/services/entity-service/index.js.map +0 -1
  508. package/dist/services/entity-service/index.mjs +0 -167
  509. package/dist/services/entity-service/index.mjs.map +0 -1
  510. package/dist/services/entity-validator/blocks-validator.js +0 -128
  511. package/dist/services/entity-validator/blocks-validator.js.map +0 -1
  512. package/dist/services/entity-validator/blocks-validator.mjs +0 -128
  513. package/dist/services/entity-validator/blocks-validator.mjs.map +0 -1
  514. package/dist/services/entity-validator/index.js +0 -385
  515. package/dist/services/entity-validator/index.js.map +0 -1
  516. package/dist/services/entity-validator/index.mjs +0 -384
  517. package/dist/services/entity-validator/index.mjs.map +0 -1
  518. package/dist/services/entity-validator/validators.js +0 -241
  519. package/dist/services/entity-validator/validators.js.map +0 -1
  520. package/dist/services/entity-validator/validators.mjs +0 -239
  521. package/dist/services/entity-validator/validators.mjs.map +0 -1
  522. package/dist/services/errors.js +0 -76
  523. package/dist/services/errors.js.map +0 -1
  524. package/dist/services/errors.mjs +0 -74
  525. package/dist/services/errors.mjs.map +0 -1
  526. package/dist/services/event-hub.js +0 -72
  527. package/dist/services/event-hub.js.map +0 -1
  528. package/dist/services/event-hub.mjs +0 -73
  529. package/dist/services/event-hub.mjs.map +0 -1
  530. package/dist/services/features.js +0 -17
  531. package/dist/services/features.js.map +0 -1
  532. package/dist/services/features.mjs +0 -17
  533. package/dist/services/features.mjs.map +0 -1
  534. package/dist/services/fs.js +0 -51
  535. package/dist/services/fs.js.map +0 -1
  536. package/dist/services/fs.mjs +0 -49
  537. package/dist/services/fs.mjs.map +0 -1
  538. package/dist/services/metrics/admin-user-hash.js +0 -14
  539. package/dist/services/metrics/admin-user-hash.js.map +0 -1
  540. package/dist/services/metrics/admin-user-hash.mjs +0 -12
  541. package/dist/services/metrics/admin-user-hash.mjs.map +0 -1
  542. package/dist/services/metrics/index.js +0 -45
  543. package/dist/services/metrics/index.js.map +0 -1
  544. package/dist/services/metrics/index.mjs +0 -46
  545. package/dist/services/metrics/index.mjs.map +0 -1
  546. package/dist/services/metrics/is-truthy.js +0 -9
  547. package/dist/services/metrics/is-truthy.js.map +0 -1
  548. package/dist/services/metrics/is-truthy.mjs +0 -8
  549. package/dist/services/metrics/is-truthy.mjs.map +0 -1
  550. package/dist/services/metrics/middleware.js +0 -25
  551. package/dist/services/metrics/middleware.js.map +0 -1
  552. package/dist/services/metrics/middleware.mjs +0 -26
  553. package/dist/services/metrics/middleware.mjs.map +0 -1
  554. package/dist/services/metrics/rate-limiter.js +0 -21
  555. package/dist/services/metrics/rate-limiter.js.map +0 -1
  556. package/dist/services/metrics/rate-limiter.mjs +0 -22
  557. package/dist/services/metrics/rate-limiter.mjs.map +0 -1
  558. package/dist/services/metrics/sender.js +0 -76
  559. package/dist/services/metrics/sender.js.map +0 -1
  560. package/dist/services/metrics/sender.mjs +0 -70
  561. package/dist/services/metrics/sender.mjs.map +0 -1
  562. package/dist/services/query-params.js +0 -12
  563. package/dist/services/query-params.js.map +0 -1
  564. package/dist/services/query-params.mjs +0 -13
  565. package/dist/services/query-params.mjs.map +0 -1
  566. package/dist/services/reloader.js +0 -36
  567. package/dist/services/reloader.js.map +0 -1
  568. package/dist/services/reloader.mjs +0 -36
  569. package/dist/services/reloader.mjs.map +0 -1
  570. package/dist/services/request-context.js +0 -13
  571. package/dist/services/request-context.js.map +0 -1
  572. package/dist/services/request-context.mjs +0 -14
  573. package/dist/services/request-context.mjs.map +0 -1
  574. package/dist/services/server/admin-api.js +0 -13
  575. package/dist/services/server/admin-api.js.map +0 -1
  576. package/dist/services/server/admin-api.mjs +0 -13
  577. package/dist/services/server/admin-api.mjs.map +0 -1
  578. package/dist/services/server/api.js +0 -30
  579. package/dist/services/server/api.js.map +0 -1
  580. package/dist/services/server/api.mjs +0 -28
  581. package/dist/services/server/api.mjs.map +0 -1
  582. package/dist/services/server/compose-endpoint.js +0 -117
  583. package/dist/services/server/compose-endpoint.js.map +0 -1
  584. package/dist/services/server/compose-endpoint.mjs +0 -116
  585. package/dist/services/server/compose-endpoint.mjs.map +0 -1
  586. package/dist/services/server/content-api.js +0 -12
  587. package/dist/services/server/content-api.js.map +0 -1
  588. package/dist/services/server/content-api.mjs +0 -12
  589. package/dist/services/server/content-api.mjs.map +0 -1
  590. package/dist/services/server/http-server.js +0 -50
  591. package/dist/services/server/http-server.js.map +0 -1
  592. package/dist/services/server/http-server.mjs +0 -48
  593. package/dist/services/server/http-server.mjs.map +0 -1
  594. package/dist/services/server/index.js +0 -87
  595. package/dist/services/server/index.js.map +0 -1
  596. package/dist/services/server/index.mjs +0 -85
  597. package/dist/services/server/index.mjs.map +0 -1
  598. package/dist/services/server/koa.js +0 -52
  599. package/dist/services/server/koa.js.map +0 -1
  600. package/dist/services/server/koa.mjs +0 -48
  601. package/dist/services/server/koa.mjs.map +0 -1
  602. package/dist/services/server/middleware.js +0 -92
  603. package/dist/services/server/middleware.js.map +0 -1
  604. package/dist/services/server/middleware.mjs +0 -90
  605. package/dist/services/server/middleware.mjs.map +0 -1
  606. package/dist/services/server/policy.js +0 -20
  607. package/dist/services/server/policy.js.map +0 -1
  608. package/dist/services/server/policy.mjs +0 -20
  609. package/dist/services/server/policy.mjs.map +0 -1
  610. package/dist/services/server/register-middlewares.js +0 -72
  611. package/dist/services/server/register-middlewares.js.map +0 -1
  612. package/dist/services/server/register-middlewares.mjs +0 -73
  613. package/dist/services/server/register-middlewares.mjs.map +0 -1
  614. package/dist/services/server/register-routes.js +0 -76
  615. package/dist/services/server/register-routes.js.map +0 -1
  616. package/dist/services/server/register-routes.mjs +0 -75
  617. package/dist/services/server/register-routes.mjs.map +0 -1
  618. package/dist/services/server/routing.js +0 -91
  619. package/dist/services/server/routing.js.map +0 -1
  620. package/dist/services/server/routing.mjs +0 -89
  621. package/dist/services/server/routing.mjs.map +0 -1
  622. package/dist/services/utils/dynamic-zones.js +0 -17
  623. package/dist/services/utils/dynamic-zones.js.map +0 -1
  624. package/dist/services/utils/dynamic-zones.mjs +0 -18
  625. package/dist/services/utils/dynamic-zones.mjs.map +0 -1
  626. package/dist/services/webhook-runner.js +0 -133
  627. package/dist/services/webhook-runner.js.map +0 -1
  628. package/dist/services/webhook-runner.mjs +0 -131
  629. package/dist/services/webhook-runner.mjs.map +0 -1
  630. package/dist/services/webhook-store.js +0 -110
  631. package/dist/services/webhook-store.js.map +0 -1
  632. package/dist/services/webhook-store.mjs +0 -110
  633. package/dist/services/webhook-store.mjs.map +0 -1
  634. package/dist/services/worker-queue.js +0 -56
  635. package/dist/services/worker-queue.js.map +0 -1
  636. package/dist/services/worker-queue.mjs +0 -55
  637. package/dist/services/worker-queue.mjs.map +0 -1
  638. package/dist/utils/convert-custom-field-type.js +0 -24
  639. package/dist/utils/convert-custom-field-type.js.map +0 -1
  640. package/dist/utils/convert-custom-field-type.mjs +0 -24
  641. package/dist/utils/convert-custom-field-type.mjs.map +0 -1
  642. package/dist/utils/cron.js +0 -38
  643. package/dist/utils/cron.js.map +0 -1
  644. package/dist/utils/cron.mjs +0 -38
  645. package/dist/utils/cron.mjs.map +0 -1
  646. package/dist/utils/fetch.js +0 -21
  647. package/dist/utils/fetch.js.map +0 -1
  648. package/dist/utils/fetch.mjs +0 -21
  649. package/dist/utils/fetch.mjs.map +0 -1
  650. package/dist/utils/filepath-to-prop-path.js +0 -33
  651. package/dist/utils/filepath-to-prop-path.js.map +0 -1
  652. package/dist/utils/filepath-to-prop-path.mjs +0 -30
  653. package/dist/utils/filepath-to-prop-path.mjs.map +0 -1
  654. package/dist/utils/is-initialized.js +0 -16
  655. package/dist/utils/is-initialized.js.map +0 -1
  656. package/dist/utils/is-initialized.mjs +0 -16
  657. package/dist/utils/is-initialized.mjs.map +0 -1
  658. package/dist/utils/lifecycles.js +0 -9
  659. package/dist/utils/lifecycles.js.map +0 -1
  660. package/dist/utils/lifecycles.mjs +0 -9
  661. package/dist/utils/lifecycles.mjs.map +0 -1
  662. package/dist/utils/load-config-file.js +0 -45
  663. package/dist/utils/load-config-file.js.map +0 -1
  664. package/dist/utils/load-config-file.mjs +0 -42
  665. package/dist/utils/load-config-file.mjs.map +0 -1
  666. package/dist/utils/load-files.js +0 -39
  667. package/dist/utils/load-files.js.map +0 -1
  668. package/dist/utils/load-files.mjs +0 -35
  669. package/dist/utils/load-files.mjs.map +0 -1
  670. package/dist/utils/open-browser.js +0 -11
  671. package/dist/utils/open-browser.js.map +0 -1
  672. package/dist/utils/open-browser.mjs +0 -9
  673. package/dist/utils/open-browser.mjs.map +0 -1
  674. package/dist/utils/resolve-working-dirs.js +0 -13
  675. package/dist/utils/resolve-working-dirs.js.map +0 -1
  676. package/dist/utils/resolve-working-dirs.mjs +0 -11
  677. package/dist/utils/resolve-working-dirs.mjs.map +0 -1
  678. package/dist/utils/signals.js +0 -17
  679. package/dist/utils/signals.js.map +0 -1
  680. package/dist/utils/signals.mjs +0 -17
  681. package/dist/utils/signals.mjs.map +0 -1
  682. package/dist/utils/startup-logger.js +0 -81
  683. package/dist/utils/startup-logger.js.map +0 -1
  684. package/dist/utils/startup-logger.mjs +0 -77
  685. package/dist/utils/startup-logger.mjs.map +0 -1
  686. package/dist/utils/transform-content-types-to-models.js +0 -288
  687. package/dist/utils/transform-content-types-to-models.js.map +0 -1
  688. package/dist/utils/transform-content-types-to-models.mjs +0 -285
  689. package/dist/utils/transform-content-types-to-models.mjs.map +0 -1
  690. package/dist/utils/update-notifier/index.js +0 -85
  691. package/dist/utils/update-notifier/index.js.map +0 -1
  692. package/dist/utils/update-notifier/index.mjs +0 -78
  693. package/dist/utils/update-notifier/index.mjs.map +0 -1
@@ -1,88 +0,0 @@
1
- import fs from "fs";
2
- import { resolve, join } from "path";
3
- import crypto from "crypto";
4
- import { machineID } from "@strapi/utils";
5
- const DEFAULT_FEATURES = {
6
- bronze: [],
7
- silver: [],
8
- gold: [
9
- { name: "sso" },
10
- // Set a null retention duration to allow the user to override it
11
- // The default of 90 days is set in the audit logs service
12
- { name: "audit-logs", options: { retentionDays: null } },
13
- { name: "review-workflows" },
14
- { name: "cms-content-releases" },
15
- { name: "cms-content-history", options: { retentionDays: 99999 } }
16
- ]
17
- };
18
- const publicKey = fs.readFileSync(resolve(__dirname, "../../resources/key.pub"));
19
- class LicenseCheckError extends Error {
20
- shouldFallback = false;
21
- constructor(message, shouldFallback = false) {
22
- super(message);
23
- this.shouldFallback = shouldFallback;
24
- }
25
- }
26
- const readLicense = (directory) => {
27
- try {
28
- const path = join(directory, "license.txt");
29
- return fs.readFileSync(path).toString();
30
- } catch (error) {
31
- if (typeof error === "object" && error !== null && "code" in error && error.code !== "ENOENT") {
32
- throw Error("License file not readable, review its format and access rules.");
33
- }
34
- }
35
- };
36
- const verifyLicense = (license) => {
37
- const [signature, base64Content] = Buffer.from(license, "base64").toString().split("\n");
38
- if (!signature || !base64Content) {
39
- throw new Error("Invalid license.");
40
- }
41
- const stringifiedContent = Buffer.from(base64Content, "base64").toString();
42
- const verify = crypto.createVerify("RSA-SHA256");
43
- verify.update(stringifiedContent);
44
- verify.end();
45
- const verified = verify.verify(publicKey, signature, "base64");
46
- if (!verified) {
47
- throw new Error("Invalid license.");
48
- }
49
- const licenseInfo = JSON.parse(stringifiedContent);
50
- if (!licenseInfo.features) {
51
- licenseInfo.features = DEFAULT_FEATURES[licenseInfo.type];
52
- }
53
- Object.freeze(licenseInfo.features);
54
- return licenseInfo;
55
- };
56
- const throwError = () => {
57
- throw new LicenseCheckError("Could not proceed to the online validation of your license.", true);
58
- };
59
- const fetchLicense = async ({ strapi }, key, projectId) => {
60
- const response = await strapi.fetch(`https://license.strapi.io/api/licenses/validate`, {
61
- method: "POST",
62
- headers: { "Content-Type": "application/json" },
63
- body: JSON.stringify({ key, projectId, deviceId: machineID() })
64
- }).catch(throwError);
65
- const contentType = response.headers.get("Content-Type");
66
- if (contentType?.includes("application/json")) {
67
- const { data, error } = await response.json();
68
- switch (response.status) {
69
- case 200:
70
- return data.license;
71
- case 400:
72
- throw new LicenseCheckError(error.message);
73
- case 404:
74
- throw new LicenseCheckError("The license used does not exists.");
75
- default:
76
- throwError();
77
- }
78
- } else {
79
- throwError();
80
- }
81
- };
82
- export {
83
- LicenseCheckError,
84
- fetchLicense,
85
- readLicense,
86
- verifyLicense
87
- };
88
- //# sourceMappingURL=license.mjs.map
@@ -1 +0,0 @@
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;"}
package/dist/factories.js DELETED
@@ -1,80 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const fp = require("lodash/fp");
4
- const index = require("./core-api/controller/index.js");
5
- const index$1 = require("./core-api/service/index.js");
6
- const index$2 = require("./core-api/routes/index.js");
7
- const symbols = {
8
- CustomController: Symbol("StrapiCustomCoreController")
9
- };
10
- const createCoreController = (uid, cfg) => {
11
- return ({
12
- strapi: strapi2
13
- }) => {
14
- const baseController = index.createController({ contentType: strapi2.contentType(uid) });
15
- const userCtrl = typeof cfg === "function" ? cfg({ strapi: strapi2 }) : cfg ?? {};
16
- for (const methodName of Object.keys(baseController)) {
17
- if (userCtrl[methodName] === void 0) {
18
- userCtrl[methodName] = baseController[methodName];
19
- }
20
- }
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
- }
30
- return userCtrl;
31
- };
32
- };
33
- function createCoreService(uid, cfg) {
34
- return ({
35
- strapi: strapi2
36
- }) => {
37
- const baseService = index$1.createService({ contentType: strapi2.contentType(uid) });
38
- const userService = typeof cfg === "function" ? cfg({ strapi: strapi2 }) : cfg ?? {};
39
- for (const methodName of Object.keys(baseService)) {
40
- if (userService[methodName] === void 0) {
41
- userService[methodName] = baseService[methodName];
42
- }
43
- }
44
- Object.setPrototypeOf(userService, baseService);
45
- return userService;
46
- };
47
- }
48
- function createCoreRouter(uid, cfg) {
49
- const { prefix, config = {}, only, except, type = "content-api" } = cfg ?? {};
50
- let routes;
51
- return {
52
- type,
53
- prefix,
54
- get routes() {
55
- if (!routes) {
56
- const contentType = strapi.contentType(uid);
57
- const defaultRoutes = index$2.createRoutes({ contentType });
58
- const keys = Object.keys(defaultRoutes);
59
- keys.forEach((routeName) => {
60
- const defaultRoute = defaultRoutes[routeName];
61
- Object.assign(defaultRoute.config, config[routeName] || {});
62
- });
63
- const selectedRoutes = fp.pipe(
64
- (routes2) => except ? fp.omit(except, routes2) : routes2,
65
- (routes2) => only ? fp.pick(only, routes2) : routes2
66
- )(defaultRoutes);
67
- routes = Object.values(selectedRoutes);
68
- }
69
- return routes;
70
- }
71
- };
72
- }
73
- const isCustomController = (controller) => {
74
- return symbols.CustomController in controller;
75
- };
76
- exports.createCoreController = createCoreController;
77
- exports.createCoreRouter = createCoreRouter;
78
- exports.createCoreService = createCoreService;
79
- exports.isCustomController = isCustomController;
80
- //# sourceMappingURL=factories.js.map
@@ -1 +0,0 @@
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,IAAK,OAAQ;AAExE,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,IAAK,OAAQ;AAE3E,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,GAAA;AAAA,UACrB,CAACC,YAAY,SAASC,GAAAA,KAAK,QAAQD,OAAM,IAAIA;AAAAA,UAC7C,CAACA,YAAY,OAAOE,GAAAA,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;;;;;"}
@@ -1,80 +0,0 @@
1
- import { pipe, omit, pick } from "lodash/fp";
2
- import { createController } from "./core-api/controller/index.mjs";
3
- import { createService } from "./core-api/service/index.mjs";
4
- import { createRoutes } from "./core-api/routes/index.mjs";
5
- const symbols = {
6
- CustomController: Symbol("StrapiCustomCoreController")
7
- };
8
- const createCoreController = (uid, cfg) => {
9
- return ({
10
- strapi: strapi2
11
- }) => {
12
- const baseController = createController({ contentType: strapi2.contentType(uid) });
13
- const userCtrl = typeof cfg === "function" ? cfg({ strapi: strapi2 }) : cfg ?? {};
14
- for (const methodName of Object.keys(baseController)) {
15
- if (userCtrl[methodName] === void 0) {
16
- userCtrl[methodName] = baseController[methodName];
17
- }
18
- }
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
- }
28
- return userCtrl;
29
- };
30
- };
31
- function createCoreService(uid, cfg) {
32
- return ({
33
- strapi: strapi2
34
- }) => {
35
- const baseService = createService({ contentType: strapi2.contentType(uid) });
36
- const userService = typeof cfg === "function" ? cfg({ strapi: strapi2 }) : cfg ?? {};
37
- for (const methodName of Object.keys(baseService)) {
38
- if (userService[methodName] === void 0) {
39
- userService[methodName] = baseService[methodName];
40
- }
41
- }
42
- Object.setPrototypeOf(userService, baseService);
43
- return userService;
44
- };
45
- }
46
- function createCoreRouter(uid, cfg) {
47
- const { prefix, config = {}, only, except, type = "content-api" } = cfg ?? {};
48
- let routes;
49
- return {
50
- type,
51
- prefix,
52
- get routes() {
53
- if (!routes) {
54
- const contentType = strapi.contentType(uid);
55
- const defaultRoutes = createRoutes({ contentType });
56
- const keys = Object.keys(defaultRoutes);
57
- keys.forEach((routeName) => {
58
- const defaultRoute = defaultRoutes[routeName];
59
- Object.assign(defaultRoute.config, config[routeName] || {});
60
- });
61
- const selectedRoutes = pipe(
62
- (routes2) => except ? omit(except, routes2) : routes2,
63
- (routes2) => only ? pick(only, routes2) : routes2
64
- )(defaultRoutes);
65
- routes = Object.values(selectedRoutes);
66
- }
67
- return routes;
68
- }
69
- };
70
- }
71
- const isCustomController = (controller) => {
72
- return symbols.CustomController in controller;
73
- };
74
- export {
75
- createCoreController,
76
- createCoreRouter,
77
- createCoreService,
78
- isCustomController
79
- };
80
- //# sourceMappingURL=factories.mjs.map
@@ -1 +0,0 @@
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,IAAK,OAAQ;AAExE,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,IAAK,OAAQ;AAE3E,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;"}
@@ -1,26 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"admin.js","sources":["../../src/loaders/admin.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { Core, Struct } from '@strapi/types';\nimport { getGlobalId } from '../domain/content-type';\n\nexport default async function loadAdmin(strapi: Core.Strapi) {\n // strapi.admin = require('@strapi/admin/strapi-server');\n\n strapi.get('services').add(`admin::`, strapi.admin?.services);\n strapi.get('controllers').add(`admin::`, strapi.admin?.controllers);\n strapi.get('content-types').add(`admin::`, formatContentTypes(strapi.admin?.contentTypes ?? {}));\n strapi.get('policies').add(`admin::`, strapi.admin?.policies);\n strapi.get('middlewares').add(`admin::`, strapi.admin?.middlewares);\n\n const userAdminConfig = strapi.config.get('admin');\n strapi.get('config').set('admin', _.merge(strapi.admin?.config, userAdminConfig));\n}\n\nconst formatContentTypes = (contentTypes: Record<string, { schema: Struct.ContentTypeSchema }>) => {\n Object.values(contentTypes).forEach((definition) => {\n const { schema } = definition;\n\n Object.assign(schema, {\n plugin: 'admin',\n globalId: getGlobalId(schema, 'admin'),\n });\n });\n\n return contentTypes;\n};\n"],"names":["_","getGlobalId"],"mappings":";;;;;AAIA,eAA8B,UAAU,QAAqB;AAG3D,SAAO,IAAI,UAAU,EAAE,IAAI,WAAW,OAAO,OAAO,QAAQ;AAC5D,SAAO,IAAI,aAAa,EAAE,IAAI,WAAW,OAAO,OAAO,WAAW;AAC3D,SAAA,IAAI,eAAe,EAAE,IAAI,WAAW,mBAAmB,OAAO,OAAO,gBAAgB,CAAA,CAAE,CAAC;AAC/F,SAAO,IAAI,UAAU,EAAE,IAAI,WAAW,OAAO,OAAO,QAAQ;AAC5D,SAAO,IAAI,aAAa,EAAE,IAAI,WAAW,OAAO,OAAO,WAAW;AAElE,QAAM,kBAAkB,OAAO,OAAO,IAAI,OAAO;AAC1C,SAAA,IAAI,QAAQ,EAAE,IAAI,SAASA,WAAAA,QAAE,MAAM,OAAO,OAAO,QAAQ,eAAe,CAAC;AAClF;AAEA,MAAM,qBAAqB,CAAC,iBAAuE;AACjG,SAAO,OAAO,YAAY,EAAE,QAAQ,CAAC,eAAe;AAC5C,UAAA,EAAE,OAAW,IAAA;AAEnB,WAAO,OAAO,QAAQ;AAAA,MACpB,QAAQ;AAAA,MACR,UAAUC,MAAAA,YAAY,QAAQ,OAAO;AAAA,IAAA,CACtC;AAAA,EAAA,CACF;AAEM,SAAA;AACT;;"}
@@ -1,25 +0,0 @@
1
- import _ from "lodash";
2
- import { getGlobalId } from "../domain/content-type/index.mjs";
3
- async function loadAdmin(strapi) {
4
- strapi.get("services").add(`admin::`, strapi.admin?.services);
5
- strapi.get("controllers").add(`admin::`, strapi.admin?.controllers);
6
- strapi.get("content-types").add(`admin::`, formatContentTypes(strapi.admin?.contentTypes ?? {}));
7
- strapi.get("policies").add(`admin::`, strapi.admin?.policies);
8
- strapi.get("middlewares").add(`admin::`, strapi.admin?.middlewares);
9
- const userAdminConfig = strapi.config.get("admin");
10
- strapi.get("config").set("admin", _.merge(strapi.admin?.config, userAdminConfig));
11
- }
12
- const formatContentTypes = (contentTypes) => {
13
- Object.values(contentTypes).forEach((definition) => {
14
- const { schema } = definition;
15
- Object.assign(schema, {
16
- plugin: "admin",
17
- globalId: getGlobalId(schema, "admin")
18
- });
19
- });
20
- return contentTypes;
21
- };
22
- export {
23
- loadAdmin as default
24
- };
25
- //# sourceMappingURL=admin.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"admin.mjs","sources":["../../src/loaders/admin.ts"],"sourcesContent":["import _ from 'lodash';\nimport type { Core, Struct } from '@strapi/types';\nimport { getGlobalId } from '../domain/content-type';\n\nexport default async function loadAdmin(strapi: Core.Strapi) {\n // strapi.admin = require('@strapi/admin/strapi-server');\n\n strapi.get('services').add(`admin::`, strapi.admin?.services);\n strapi.get('controllers').add(`admin::`, strapi.admin?.controllers);\n strapi.get('content-types').add(`admin::`, formatContentTypes(strapi.admin?.contentTypes ?? {}));\n strapi.get('policies').add(`admin::`, strapi.admin?.policies);\n strapi.get('middlewares').add(`admin::`, strapi.admin?.middlewares);\n\n const userAdminConfig = strapi.config.get('admin');\n strapi.get('config').set('admin', _.merge(strapi.admin?.config, userAdminConfig));\n}\n\nconst formatContentTypes = (contentTypes: Record<string, { schema: Struct.ContentTypeSchema }>) => {\n Object.values(contentTypes).forEach((definition) => {\n const { schema } = definition;\n\n Object.assign(schema, {\n plugin: 'admin',\n globalId: getGlobalId(schema, 'admin'),\n });\n });\n\n return contentTypes;\n};\n"],"names":[],"mappings":";;AAIA,eAA8B,UAAU,QAAqB;AAG3D,SAAO,IAAI,UAAU,EAAE,IAAI,WAAW,OAAO,OAAO,QAAQ;AAC5D,SAAO,IAAI,aAAa,EAAE,IAAI,WAAW,OAAO,OAAO,WAAW;AAC3D,SAAA,IAAI,eAAe,EAAE,IAAI,WAAW,mBAAmB,OAAO,OAAO,gBAAgB,CAAA,CAAE,CAAC;AAC/F,SAAO,IAAI,UAAU,EAAE,IAAI,WAAW,OAAO,OAAO,QAAQ;AAC5D,SAAO,IAAI,aAAa,EAAE,IAAI,WAAW,OAAO,OAAO,WAAW;AAElE,QAAM,kBAAkB,OAAO,OAAO,IAAI,OAAO;AAC1C,SAAA,IAAI,QAAQ,EAAE,IAAI,SAAS,EAAE,MAAM,OAAO,OAAO,QAAQ,eAAe,CAAC;AAClF;AAEA,MAAM,qBAAqB,CAAC,iBAAuE;AACjG,SAAO,OAAO,YAAY,EAAE,QAAQ,CAAC,eAAe;AAC5C,UAAA,EAAE,OAAW,IAAA;AAEnB,WAAO,OAAO,QAAQ;AAAA,MACpB,QAAQ;AAAA,MACR,UAAU,YAAY,QAAQ,OAAO;AAAA,IAAA,CACtC;AAAA,EAAA,CACF;AAEM,SAAA;AACT;"}
@@ -1,137 +0,0 @@
1
- "use strict";
2
- const path = require("path");
3
- const fse = require("fs-extra");
4
- const _ = require("lodash");
5
- const strapiUtils = require("@strapi/utils");
6
- const fp = require("lodash/fp");
7
- const index = require("../domain/content-type/index.js");
8
- const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
9
- const fse__default = /* @__PURE__ */ _interopDefault(fse);
10
- const ___default = /* @__PURE__ */ _interopDefault(_);
11
- const DEFAULT_CONTENT_TYPE = {
12
- schema: {},
13
- actions: {},
14
- lifecycles: {}
15
- };
16
- const normalizeName = (name) => strapiUtils.strings.isKebabCase(name) ? name : ___default.default.kebabCase(name);
17
- const isDirectory = (fd) => fd.isDirectory();
18
- const isDotFile = (fd) => fd.name.startsWith(".");
19
- async function loadAPIs(strapi) {
20
- if (!fse.existsSync(strapi.dirs.dist.api)) {
21
- return;
22
- }
23
- const apisFDs = await (await fse__default.default.readdir(strapi.dirs.dist.api, { withFileTypes: true })).filter(isDirectory).filter(___default.default.negate(isDotFile));
24
- const apis = {};
25
- for (const apiFD of apisFDs) {
26
- const apiName = normalizeName(apiFD.name);
27
- const api = await loadAPI(apiName, path.join(strapi.dirs.dist.api, apiFD.name));
28
- apis[apiName] = api;
29
- }
30
- validateContentTypesUnicity(apis);
31
- for (const apiName of Object.keys(apis)) {
32
- strapi.get("apis").add(apiName, apis[apiName]);
33
- }
34
- }
35
- const validateContentTypesUnicity = (apis) => {
36
- const allApisSchemas = Object.values(apis).flatMap((api) => Object.values(api.contentTypes));
37
- const names = [];
38
- allApisSchemas.forEach(({ schema }) => {
39
- if (schema.info.singularName) {
40
- const singularName = ___default.default.kebabCase(schema.info.singularName);
41
- if (names.includes(singularName)) {
42
- throw new Error(`The singular name "${schema.info.singularName}" should be unique`);
43
- }
44
- names.push(singularName);
45
- }
46
- if (schema.info.pluralName) {
47
- const pluralName = ___default.default.kebabCase(schema.info.pluralName);
48
- if (names.includes(pluralName)) {
49
- throw new Error(`The plural name "${schema.info.pluralName}" should be unique`);
50
- }
51
- names.push(pluralName);
52
- }
53
- });
54
- };
55
- const loadAPI = async (apiName, dir) => {
56
- const [index2, config, routes, controllers, services, policies, middlewares, contentTypes] = (await Promise.all([
57
- loadIndex(dir),
58
- loadDir(path.join(dir, "config")),
59
- loadDir(path.join(dir, "routes")),
60
- loadDir(path.join(dir, "controllers")),
61
- loadDir(path.join(dir, "services")),
62
- loadDir(path.join(dir, "policies")),
63
- loadDir(path.join(dir, "middlewares")),
64
- loadContentTypes(apiName, path.join(dir, "content-types"))
65
- ])).map((result) => result?.result);
66
- return {
67
- ...index2 || {},
68
- config: config || {},
69
- routes: routes || [],
70
- controllers: controllers || {},
71
- services: services || {},
72
- policies: policies || {},
73
- middlewares: middlewares || {},
74
- contentTypes: contentTypes || {}
75
- };
76
- };
77
- const loadIndex = async (dir) => {
78
- if (await fse__default.default.pathExists(path.join(dir, "index.js"))) {
79
- return loadFile(path.join(dir, "index.js"));
80
- }
81
- };
82
- const loadContentTypes = async (apiName, dir) => {
83
- if (!await fse__default.default.pathExists(dir)) {
84
- return;
85
- }
86
- const fds = await fse__default.default.readdir(dir, { withFileTypes: true });
87
- const contentTypes = {};
88
- for (const fd of fds) {
89
- if (fd.isFile()) {
90
- continue;
91
- }
92
- const contentTypeName = normalizeName(fd.name);
93
- const loadedContentType = (await loadDir(path.join(dir, fd.name)))?.result;
94
- if (fp.isEmpty(loadedContentType) || fp.isEmpty(loadedContentType.schema)) {
95
- throw new Error(`Could not load content type found at ${dir}`);
96
- }
97
- const contentType = {
98
- ...DEFAULT_CONTENT_TYPE,
99
- ...loadedContentType
100
- };
101
- Object.assign(contentType.schema, {
102
- apiName,
103
- collectionName: contentType.schema.collectionName || contentType.schema.info.singularName,
104
- globalId: index.getGlobalId(contentType.schema)
105
- });
106
- contentTypes[normalizeName(contentTypeName)] = contentType;
107
- }
108
- return { result: contentTypes };
109
- };
110
- const loadDir = async (dir) => {
111
- if (!await fse__default.default.pathExists(dir)) {
112
- return;
113
- }
114
- const fds = await fse__default.default.readdir(dir, { withFileTypes: true });
115
- const root = {};
116
- for (const fd of fds) {
117
- if (!fd.isFile() || path.extname(fd.name) === ".map") {
118
- continue;
119
- }
120
- const key = path.basename(fd.name, path.extname(fd.name));
121
- root[normalizeName(key)] = (await loadFile(path.join(dir, fd.name))).result;
122
- }
123
- return { result: root };
124
- };
125
- const loadFile = async (file) => {
126
- const ext = path.extname(file);
127
- switch (ext) {
128
- case ".js":
129
- return { result: strapiUtils.importDefault(file) };
130
- case ".json":
131
- return { result: await fse__default.default.readJSON(file) };
132
- default:
133
- return { result: {} };
134
- }
135
- };
136
- module.exports = loadAPIs;
137
- //# sourceMappingURL=apis.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"apis.js","sources":["../../src/loaders/apis.ts"],"sourcesContent":["import { join, extname, basename } from 'path';\nimport fse, { existsSync } from 'fs-extra';\nimport _ from 'lodash';\nimport { strings, importDefault } from '@strapi/utils';\nimport { isEmpty } from 'lodash/fp';\nimport type { Core, Struct } from '@strapi/types';\nimport { getGlobalId, type ContentTypeDefinition } from '../domain/content-type';\n\ninterface API {\n bootstrap: () => void | Promise<void>;\n destroy: () => void | Promise<void>;\n register: () => void | Promise<void>;\n config: Record<string, unknown>;\n routes: Record<string, Core.Router>;\n controllers: Record<string, Core.Controller>;\n services: Record<string, Core.Service>;\n policies: Record<string, Core.Policy>;\n middlewares: Record<string, Core.Middleware>;\n contentTypes: Record<string, { schema: Struct.ContentTypeSchema }>;\n}\n\ninterface APIs {\n [key: string]: API;\n}\n\nconst DEFAULT_CONTENT_TYPE = {\n schema: {},\n actions: {},\n lifecycles: {},\n};\n\n// to handle names with numbers in it we first check if it is already in kebabCase\nconst normalizeName = (name: string) => (strings.isKebabCase(name) ? name : _.kebabCase(name));\n\nconst isDirectory = (fd: fse.Dirent) => fd.isDirectory();\nconst isDotFile = (fd: fse.Dirent) => fd.name.startsWith('.');\n\nexport default async function loadAPIs(strapi: Core.Strapi) {\n if (!existsSync(strapi.dirs.dist.api)) {\n return;\n }\n\n const apisFDs = await (await fse.readdir(strapi.dirs.dist.api, { withFileTypes: true }))\n .filter(isDirectory)\n .filter(_.negate(isDotFile));\n\n const apis: APIs = {};\n\n // only load folders\n for (const apiFD of apisFDs) {\n const apiName = normalizeName(apiFD.name);\n const api = await loadAPI(apiName, join(strapi.dirs.dist.api, apiFD.name));\n\n // @ts-expect-error TODO verify that it's a valid api, not missing bootstrap, register, and destroy\n apis[apiName] = api;\n }\n\n validateContentTypesUnicity(apis);\n\n for (const apiName of Object.keys(apis)) {\n strapi.get('apis').add(apiName, apis[apiName]);\n }\n}\n\nconst validateContentTypesUnicity = (apis: APIs) => {\n const allApisSchemas = Object.values(apis).flatMap((api) => Object.values(api.contentTypes));\n\n const names: string[] = [];\n allApisSchemas.forEach(({ schema }) => {\n if (schema.info.singularName) {\n const singularName = _.kebabCase(schema.info.singularName);\n if (names.includes(singularName)) {\n throw new Error(`The singular name \"${schema.info.singularName}\" should be unique`);\n }\n names.push(singularName);\n }\n\n if (schema.info.pluralName) {\n const pluralName = _.kebabCase(schema.info.pluralName);\n if (names.includes(pluralName)) {\n throw new Error(`The plural name \"${schema.info.pluralName}\" should be unique`);\n }\n names.push(pluralName);\n }\n });\n};\n\nconst loadAPI = async (apiName: string, dir: string) => {\n const [index, config, routes, controllers, services, policies, middlewares, contentTypes] = (\n await Promise.all([\n loadIndex(dir),\n loadDir(join(dir, 'config')),\n loadDir(join(dir, 'routes')),\n loadDir(join(dir, 'controllers')),\n loadDir(join(dir, 'services')),\n loadDir(join(dir, 'policies')),\n loadDir(join(dir, 'middlewares')),\n loadContentTypes(apiName, join(dir, 'content-types')),\n ])\n ).map((result) => result?.result);\n\n return {\n ...(index || {}),\n config: config || {},\n routes: routes || [],\n controllers: controllers || {},\n services: services || {},\n policies: policies || {},\n middlewares: middlewares || {},\n contentTypes: contentTypes || {},\n };\n};\n\nconst loadIndex = async (dir: string) => {\n if (await fse.pathExists(join(dir, 'index.js'))) {\n return loadFile(join(dir, 'index.js'));\n }\n};\n\n// because this is async and its contents are dynamic, we must return it within an object to avoid a property called `then` being interpreted as a Promise\nconst loadContentTypes = async (apiName: string, dir: string) => {\n if (!(await fse.pathExists(dir))) {\n return;\n }\n\n const fds = await fse.readdir(dir, { withFileTypes: true });\n const contentTypes: API['contentTypes'] = {};\n\n // only load folders\n for (const fd of fds) {\n if (fd.isFile()) {\n continue;\n }\n\n const contentTypeName = normalizeName(fd.name);\n const loadedContentType = (await loadDir(join(dir, fd.name)))?.result;\n\n if (isEmpty(loadedContentType) || isEmpty(loadedContentType.schema)) {\n throw new Error(`Could not load content type found at ${dir}`);\n }\n\n const contentType = {\n ...DEFAULT_CONTENT_TYPE,\n ...loadedContentType,\n } as ContentTypeDefinition;\n\n Object.assign(contentType.schema, {\n apiName,\n collectionName: contentType.schema.collectionName || contentType.schema.info.singularName,\n globalId: getGlobalId(contentType.schema),\n });\n\n contentTypes[normalizeName(contentTypeName)] = contentType;\n }\n\n return { result: contentTypes };\n};\n\n// because this is async and its contents are dynamic, we must return it within an object to avoid a property called `then` being interpreted as a Promise\nconst loadDir = async (dir: string) => {\n if (!(await fse.pathExists(dir))) {\n return;\n }\n\n const fds = await fse.readdir(dir, { withFileTypes: true });\n\n const root: Record<string, unknown> = {};\n for (const fd of fds) {\n if (!fd.isFile() || extname(fd.name) === '.map') {\n continue;\n }\n\n const key = basename(fd.name, extname(fd.name));\n\n root[normalizeName(key)] = (await loadFile(join(dir, fd.name))).result;\n }\n\n return { result: root };\n};\n\n// because this is async and its contents are dynamic, we must return it as an array to avoid a property called `then` being interpreted as a Promise\nconst loadFile = async (file: string): Promise<{ result: unknown }> => {\n const ext = extname(file);\n\n switch (ext) {\n case '.js':\n return { result: importDefault(file) };\n case '.json':\n return { result: await fse.readJSON(file) };\n default:\n return { result: {} };\n }\n};\n"],"names":["strings","_","existsSync","fse","join","index","isEmpty","getGlobalId","extname","basename","importDefault"],"mappings":";;;;;;;;;;AAyBA,MAAM,uBAAuB;AAAA,EAC3B,QAAQ,CAAC;AAAA,EACT,SAAS,CAAC;AAAA,EACV,YAAY,CAAC;AACf;AAGA,MAAM,gBAAgB,CAAC,SAAkBA,YAAQ,QAAA,YAAY,IAAI,IAAI,OAAOC,WAAE,QAAA,UAAU,IAAI;AAE5F,MAAM,cAAc,CAAC,OAAmB,GAAG,YAAY;AACvD,MAAM,YAAY,CAAC,OAAmB,GAAG,KAAK,WAAW,GAAG;AAE5D,eAA8B,SAAS,QAAqB;AAC1D,MAAI,CAACC,IAAW,WAAA,OAAO,KAAK,KAAK,GAAG,GAAG;AACrC;AAAA,EACF;AAEM,QAAA,UAAU,OAAO,MAAMC,aAAA,QAAI,QAAQ,OAAO,KAAK,KAAK,KAAK,EAAE,eAAe,KAAM,CAAA,GACnF,OAAO,WAAW,EAClB,OAAOF,mBAAE,OAAO,SAAS,CAAC;AAE7B,QAAM,OAAa,CAAA;AAGnB,aAAW,SAAS,SAAS;AACrB,UAAA,UAAU,cAAc,MAAM,IAAI;AAClC,UAAA,MAAM,MAAM,QAAQ,SAASG,KAAAA,KAAK,OAAO,KAAK,KAAK,KAAK,MAAM,IAAI,CAAC;AAGzE,SAAK,OAAO,IAAI;AAAA,EAClB;AAEA,8BAA4B,IAAI;AAEhC,aAAW,WAAW,OAAO,KAAK,IAAI,GAAG;AACvC,WAAO,IAAI,MAAM,EAAE,IAAI,SAAS,KAAK,OAAO,CAAC;AAAA,EAC/C;AACF;AAEA,MAAM,8BAA8B,CAAC,SAAe;AAClD,QAAM,iBAAiB,OAAO,OAAO,IAAI,EAAE,QAAQ,CAAC,QAAQ,OAAO,OAAO,IAAI,YAAY,CAAC;AAE3F,QAAM,QAAkB,CAAA;AACxB,iBAAe,QAAQ,CAAC,EAAE,aAAa;AACjC,QAAA,OAAO,KAAK,cAAc;AAC5B,YAAM,eAAeH,WAAAA,QAAE,UAAU,OAAO,KAAK,YAAY;AACrD,UAAA,MAAM,SAAS,YAAY,GAAG;AAChC,cAAM,IAAI,MAAM,sBAAsB,OAAO,KAAK,YAAY,oBAAoB;AAAA,MACpF;AACA,YAAM,KAAK,YAAY;AAAA,IACzB;AAEI,QAAA,OAAO,KAAK,YAAY;AAC1B,YAAM,aAAaA,WAAAA,QAAE,UAAU,OAAO,KAAK,UAAU;AACjD,UAAA,MAAM,SAAS,UAAU,GAAG;AAC9B,cAAM,IAAI,MAAM,oBAAoB,OAAO,KAAK,UAAU,oBAAoB;AAAA,MAChF;AACA,YAAM,KAAK,UAAU;AAAA,IACvB;AAAA,EAAA,CACD;AACH;AAEA,MAAM,UAAU,OAAO,SAAiB,QAAgB;AACtD,QAAM,CAACI,QAAO,QAAQ,QAAQ,aAAa,UAAU,UAAU,aAAa,YAAY,KACtF,MAAM,QAAQ,IAAI;AAAA,IAChB,UAAU,GAAG;AAAA,IACb,QAAQD,KAAA,KAAK,KAAK,QAAQ,CAAC;AAAA,IAC3B,QAAQA,KAAA,KAAK,KAAK,QAAQ,CAAC;AAAA,IAC3B,QAAQA,KAAA,KAAK,KAAK,aAAa,CAAC;AAAA,IAChC,QAAQA,KAAA,KAAK,KAAK,UAAU,CAAC;AAAA,IAC7B,QAAQA,KAAA,KAAK,KAAK,UAAU,CAAC;AAAA,IAC7B,QAAQA,KAAA,KAAK,KAAK,aAAa,CAAC;AAAA,IAChC,iBAAiB,SAASA,KAAAA,KAAK,KAAK,eAAe,CAAC;AAAA,EACrD,CAAA,GACD,IAAI,CAAC,WAAW,QAAQ,MAAM;AAEzB,SAAA;AAAA,IACL,GAAIC,UAAS,CAAC;AAAA,IACd,QAAQ,UAAU,CAAC;AAAA,IACnB,QAAQ,UAAU,CAAC;AAAA,IACnB,aAAa,eAAe,CAAC;AAAA,IAC7B,UAAU,YAAY,CAAC;AAAA,IACvB,UAAU,YAAY,CAAC;AAAA,IACvB,aAAa,eAAe,CAAC;AAAA,IAC7B,cAAc,gBAAgB,CAAC;AAAA,EAAA;AAEnC;AAEA,MAAM,YAAY,OAAO,QAAgB;AACvC,MAAI,MAAMF,aAAI,QAAA,WAAWC,UAAK,KAAK,UAAU,CAAC,GAAG;AAC/C,WAAO,SAASA,KAAA,KAAK,KAAK,UAAU,CAAC;AAAA,EACvC;AACF;AAGA,MAAM,mBAAmB,OAAO,SAAiB,QAAgB;AAC/D,MAAI,CAAE,MAAMD,aAAAA,QAAI,WAAW,GAAG,GAAI;AAChC;AAAA,EACF;AAEM,QAAA,MAAM,MAAMA,aAAAA,QAAI,QAAQ,KAAK,EAAE,eAAe,MAAM;AAC1D,QAAM,eAAoC,CAAA;AAG1C,aAAW,MAAM,KAAK;AAChB,QAAA,GAAG,UAAU;AACf;AAAA,IACF;AAEM,UAAA,kBAAkB,cAAc,GAAG,IAAI;AACvC,UAAA,qBAAqB,MAAM,QAAQC,KAAA,KAAK,KAAK,GAAG,IAAI,CAAC,IAAI;AAE/D,QAAIE,GAAAA,QAAQ,iBAAiB,KAAKA,GAAQ,QAAA,kBAAkB,MAAM,GAAG;AACnE,YAAM,IAAI,MAAM,wCAAwC,GAAG,EAAE;AAAA,IAC/D;AAEA,UAAM,cAAc;AAAA,MAClB,GAAG;AAAA,MACH,GAAG;AAAA,IAAA;AAGE,WAAA,OAAO,YAAY,QAAQ;AAAA,MAChC;AAAA,MACA,gBAAgB,YAAY,OAAO,kBAAkB,YAAY,OAAO,KAAK;AAAA,MAC7E,UAAUC,MAAAA,YAAY,YAAY,MAAM;AAAA,IAAA,CACzC;AAEY,iBAAA,cAAc,eAAe,CAAC,IAAI;AAAA,EACjD;AAEO,SAAA,EAAE,QAAQ;AACnB;AAGA,MAAM,UAAU,OAAO,QAAgB;AACrC,MAAI,CAAE,MAAMJ,aAAAA,QAAI,WAAW,GAAG,GAAI;AAChC;AAAA,EACF;AAEM,QAAA,MAAM,MAAMA,aAAAA,QAAI,QAAQ,KAAK,EAAE,eAAe,MAAM;AAE1D,QAAM,OAAgC,CAAA;AACtC,aAAW,MAAM,KAAK;AAChB,QAAA,CAAC,GAAG,OAAO,KAAKK,aAAQ,GAAG,IAAI,MAAM,QAAQ;AAC/C;AAAA,IACF;AAEA,UAAM,MAAMC,KAAS,SAAA,GAAG,MAAMD,KAAAA,QAAQ,GAAG,IAAI,CAAC;AAEzC,SAAA,cAAc,GAAG,CAAC,KAAK,MAAM,SAASJ,KAAA,KAAK,KAAK,GAAG,IAAI,CAAC,GAAG;AAAA,EAClE;AAEO,SAAA,EAAE,QAAQ;AACnB;AAGA,MAAM,WAAW,OAAO,SAA+C;AAC/D,QAAA,MAAMI,aAAQ,IAAI;AAExB,UAAQ,KAAK;AAAA,IACX,KAAK;AACH,aAAO,EAAE,QAAQE,0BAAc,IAAI,EAAE;AAAA,IACvC,KAAK;AACH,aAAO,EAAE,QAAQ,MAAMP,aAAAA,QAAI,SAAS,IAAI,EAAE;AAAA,IAC5C;AACS,aAAA,EAAE,QAAQ,CAAA;EACrB;AACF;;"}
@@ -1,135 +0,0 @@
1
- import { join, extname, basename } from "path";
2
- import fse, { existsSync } from "fs-extra";
3
- import _ from "lodash";
4
- import { strings, importDefault } from "@strapi/utils";
5
- import { isEmpty } from "lodash/fp";
6
- import { getGlobalId } from "../domain/content-type/index.mjs";
7
- const DEFAULT_CONTENT_TYPE = {
8
- schema: {},
9
- actions: {},
10
- lifecycles: {}
11
- };
12
- const normalizeName = (name) => strings.isKebabCase(name) ? name : _.kebabCase(name);
13
- const isDirectory = (fd) => fd.isDirectory();
14
- const isDotFile = (fd) => fd.name.startsWith(".");
15
- async function loadAPIs(strapi) {
16
- if (!existsSync(strapi.dirs.dist.api)) {
17
- return;
18
- }
19
- const apisFDs = await (await fse.readdir(strapi.dirs.dist.api, { withFileTypes: true })).filter(isDirectory).filter(_.negate(isDotFile));
20
- const apis = {};
21
- for (const apiFD of apisFDs) {
22
- const apiName = normalizeName(apiFD.name);
23
- const api = await loadAPI(apiName, join(strapi.dirs.dist.api, apiFD.name));
24
- apis[apiName] = api;
25
- }
26
- validateContentTypesUnicity(apis);
27
- for (const apiName of Object.keys(apis)) {
28
- strapi.get("apis").add(apiName, apis[apiName]);
29
- }
30
- }
31
- const validateContentTypesUnicity = (apis) => {
32
- const allApisSchemas = Object.values(apis).flatMap((api) => Object.values(api.contentTypes));
33
- const names = [];
34
- allApisSchemas.forEach(({ schema }) => {
35
- if (schema.info.singularName) {
36
- const singularName = _.kebabCase(schema.info.singularName);
37
- if (names.includes(singularName)) {
38
- throw new Error(`The singular name "${schema.info.singularName}" should be unique`);
39
- }
40
- names.push(singularName);
41
- }
42
- if (schema.info.pluralName) {
43
- const pluralName = _.kebabCase(schema.info.pluralName);
44
- if (names.includes(pluralName)) {
45
- throw new Error(`The plural name "${schema.info.pluralName}" should be unique`);
46
- }
47
- names.push(pluralName);
48
- }
49
- });
50
- };
51
- const loadAPI = async (apiName, dir) => {
52
- const [index, config, routes, controllers, services, policies, middlewares, contentTypes] = (await Promise.all([
53
- loadIndex(dir),
54
- loadDir(join(dir, "config")),
55
- loadDir(join(dir, "routes")),
56
- loadDir(join(dir, "controllers")),
57
- loadDir(join(dir, "services")),
58
- loadDir(join(dir, "policies")),
59
- loadDir(join(dir, "middlewares")),
60
- loadContentTypes(apiName, join(dir, "content-types"))
61
- ])).map((result) => result?.result);
62
- return {
63
- ...index || {},
64
- config: config || {},
65
- routes: routes || [],
66
- controllers: controllers || {},
67
- services: services || {},
68
- policies: policies || {},
69
- middlewares: middlewares || {},
70
- contentTypes: contentTypes || {}
71
- };
72
- };
73
- const loadIndex = async (dir) => {
74
- if (await fse.pathExists(join(dir, "index.js"))) {
75
- return loadFile(join(dir, "index.js"));
76
- }
77
- };
78
- const loadContentTypes = async (apiName, dir) => {
79
- if (!await fse.pathExists(dir)) {
80
- return;
81
- }
82
- const fds = await fse.readdir(dir, { withFileTypes: true });
83
- const contentTypes = {};
84
- for (const fd of fds) {
85
- if (fd.isFile()) {
86
- continue;
87
- }
88
- const contentTypeName = normalizeName(fd.name);
89
- const loadedContentType = (await loadDir(join(dir, fd.name)))?.result;
90
- if (isEmpty(loadedContentType) || isEmpty(loadedContentType.schema)) {
91
- throw new Error(`Could not load content type found at ${dir}`);
92
- }
93
- const contentType = {
94
- ...DEFAULT_CONTENT_TYPE,
95
- ...loadedContentType
96
- };
97
- Object.assign(contentType.schema, {
98
- apiName,
99
- collectionName: contentType.schema.collectionName || contentType.schema.info.singularName,
100
- globalId: getGlobalId(contentType.schema)
101
- });
102
- contentTypes[normalizeName(contentTypeName)] = contentType;
103
- }
104
- return { result: contentTypes };
105
- };
106
- const loadDir = async (dir) => {
107
- if (!await fse.pathExists(dir)) {
108
- return;
109
- }
110
- const fds = await fse.readdir(dir, { withFileTypes: true });
111
- const root = {};
112
- for (const fd of fds) {
113
- if (!fd.isFile() || extname(fd.name) === ".map") {
114
- continue;
115
- }
116
- const key = basename(fd.name, extname(fd.name));
117
- root[normalizeName(key)] = (await loadFile(join(dir, fd.name))).result;
118
- }
119
- return { result: root };
120
- };
121
- const loadFile = async (file) => {
122
- const ext = extname(file);
123
- switch (ext) {
124
- case ".js":
125
- return { result: importDefault(file) };
126
- case ".json":
127
- return { result: await fse.readJSON(file) };
128
- default:
129
- return { result: {} };
130
- }
131
- };
132
- export {
133
- loadAPIs as default
134
- };
135
- //# sourceMappingURL=apis.mjs.map