@strapi/core 0.0.0-experimental.dd3311938ac827f1fa8560c8840a9a394f5896c0 → 0.0.0-experimental.de2b94258659463e5ddc5992e9a9490d66d950dd

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (240) hide show
  1. package/LICENSE +18 -3
  2. package/dist/Strapi.d.ts +3 -1
  3. package/dist/Strapi.d.ts.map +1 -1
  4. package/dist/Strapi.js +59 -15
  5. package/dist/Strapi.js.map +1 -1
  6. package/dist/Strapi.mjs +38 -13
  7. package/dist/Strapi.mjs.map +1 -1
  8. package/dist/configuration/get-dirs.js +2 -2
  9. package/dist/configuration/get-dirs.js.map +1 -1
  10. package/dist/configuration/index.js +2 -2
  11. package/dist/configuration/index.js.map +1 -1
  12. package/dist/core-api/controller/collection-type.js +3 -3
  13. package/dist/core-api/controller/collection-type.js.map +1 -1
  14. package/dist/core-api/controller/index.js +2 -2
  15. package/dist/core-api/controller/index.js.map +1 -1
  16. package/dist/core-api/controller/single-type.js +2 -2
  17. package/dist/core-api/controller/single-type.js.map +1 -1
  18. package/dist/core-api/controller/transform.js +8 -8
  19. package/dist/core-api/controller/transform.js.map +1 -1
  20. package/dist/core-api/service/collection-type.d.ts +2 -2
  21. package/dist/core-api/service/pagination.js +8 -8
  22. package/dist/core-api/service/pagination.js.map +1 -1
  23. package/dist/domain/content-type/index.js +4 -4
  24. package/dist/domain/content-type/index.js.map +1 -1
  25. package/dist/ee/index.js +3 -3
  26. package/dist/ee/index.js.map +1 -1
  27. package/dist/factories.js +4 -4
  28. package/dist/factories.js.map +1 -1
  29. package/dist/factories.mjs.map +1 -1
  30. package/dist/index.d.ts +14 -0
  31. package/dist/index.d.ts.map +1 -1
  32. package/dist/index.js.map +1 -1
  33. package/dist/index.mjs.map +1 -1
  34. package/dist/loaders/apis.js +2 -2
  35. package/dist/loaders/apis.js.map +1 -1
  36. package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -1
  37. package/dist/loaders/plugins/get-enabled-plugins.js +39 -11
  38. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
  39. package/dist/loaders/plugins/get-enabled-plugins.mjs +9 -3
  40. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
  41. package/dist/loaders/plugins/get-user-plugins-config.js +2 -2
  42. package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -1
  43. package/dist/loaders/plugins/index.d.ts.map +1 -1
  44. package/dist/loaders/plugins/index.js +34 -7
  45. package/dist/loaders/plugins/index.js.map +1 -1
  46. package/dist/loaders/plugins/index.mjs +9 -1
  47. package/dist/loaders/plugins/index.mjs.map +1 -1
  48. package/dist/middlewares/body.js +2 -2
  49. package/dist/middlewares/body.js.map +1 -1
  50. package/dist/middlewares/cors.d.ts.map +1 -1
  51. package/dist/middlewares/cors.js +4 -0
  52. package/dist/middlewares/cors.js.map +1 -1
  53. package/dist/middlewares/cors.mjs +4 -0
  54. package/dist/middlewares/cors.mjs.map +1 -1
  55. package/dist/middlewares/public.js +2 -2
  56. package/dist/middlewares/public.js.map +1 -1
  57. package/dist/middlewares/query.d.ts.map +1 -1
  58. package/dist/middlewares/query.js.map +1 -1
  59. package/dist/middlewares/query.mjs.map +1 -1
  60. package/dist/middlewares/responses.js +2 -2
  61. package/dist/middlewares/responses.js.map +1 -1
  62. package/dist/middlewares/security.d.ts.map +1 -1
  63. package/dist/middlewares/security.js +12 -5
  64. package/dist/middlewares/security.js.map +1 -1
  65. package/dist/middlewares/security.mjs +11 -4
  66. package/dist/middlewares/security.mjs.map +1 -1
  67. package/dist/middlewares/session.js +2 -2
  68. package/dist/middlewares/session.js.map +1 -1
  69. package/dist/migrations/database/5.0.0-discard-drafts.d.ts +12 -9
  70. package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -1
  71. package/dist/migrations/database/5.0.0-discard-drafts.js +55 -11
  72. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -1
  73. package/dist/migrations/database/5.0.0-discard-drafts.mjs +56 -12
  74. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -1
  75. package/dist/migrations/draft-publish.d.ts +1 -1
  76. package/dist/migrations/draft-publish.d.ts.map +1 -1
  77. package/dist/migrations/draft-publish.js.map +1 -1
  78. package/dist/migrations/draft-publish.mjs.map +1 -1
  79. package/dist/migrations/i18n.d.ts +5 -0
  80. package/dist/migrations/i18n.d.ts.map +1 -0
  81. package/dist/migrations/i18n.js +54 -0
  82. package/dist/migrations/i18n.js.map +1 -0
  83. package/dist/migrations/i18n.mjs +54 -0
  84. package/dist/migrations/i18n.mjs.map +1 -0
  85. package/dist/migrations/index.d.ts +5 -0
  86. package/dist/migrations/index.d.ts.map +1 -0
  87. package/dist/migrations/index.js +15 -0
  88. package/dist/migrations/index.js.map +1 -0
  89. package/dist/migrations/index.mjs +15 -0
  90. package/dist/migrations/index.mjs.map +1 -0
  91. package/dist/providers/admin.d.ts.map +1 -1
  92. package/dist/providers/admin.js.map +1 -1
  93. package/dist/providers/admin.mjs.map +1 -1
  94. package/dist/providers/registries.js +3 -3
  95. package/dist/providers/registries.js.map +1 -1
  96. package/dist/providers/registries.mjs +3 -3
  97. package/dist/providers/registries.mjs.map +1 -1
  98. package/dist/registries/apis.js +2 -2
  99. package/dist/registries/apis.js.map +1 -1
  100. package/dist/registries/components.js +2 -2
  101. package/dist/registries/components.js.map +1 -1
  102. package/dist/registries/content-types.js +3 -3
  103. package/dist/registries/content-types.js.map +1 -1
  104. package/dist/registries/controllers.js +3 -3
  105. package/dist/registries/controllers.js.map +1 -1
  106. package/dist/registries/custom-fields.js +4 -4
  107. package/dist/registries/custom-fields.js.map +1 -1
  108. package/dist/registries/hooks.js +2 -2
  109. package/dist/registries/hooks.js.map +1 -1
  110. package/dist/registries/middlewares.js +3 -3
  111. package/dist/registries/middlewares.js.map +1 -1
  112. package/dist/registries/modules.js +3 -3
  113. package/dist/registries/modules.js.map +1 -1
  114. package/dist/registries/plugins.js +2 -2
  115. package/dist/registries/plugins.js.map +1 -1
  116. package/dist/registries/policies.d.ts +1 -1
  117. package/dist/registries/policies.d.ts.map +1 -1
  118. package/dist/registries/policies.js +5 -5
  119. package/dist/registries/policies.js.map +1 -1
  120. package/dist/registries/policies.mjs +1 -1
  121. package/dist/registries/policies.mjs.map +1 -1
  122. package/dist/registries/services.js +3 -3
  123. package/dist/registries/services.js.map +1 -1
  124. package/dist/services/auth/index.js +3 -3
  125. package/dist/services/auth/index.js.map +1 -1
  126. package/dist/services/content-api/index.d.ts +10 -12
  127. package/dist/services/content-api/index.d.ts.map +1 -1
  128. package/dist/services/content-api/permissions/index.d.ts +10 -12
  129. package/dist/services/content-api/permissions/index.d.ts.map +1 -1
  130. package/dist/services/content-api/permissions/providers/action.d.ts +5 -6
  131. package/dist/services/content-api/permissions/providers/action.d.ts.map +1 -1
  132. package/dist/services/content-api/permissions/providers/condition.d.ts +5 -6
  133. package/dist/services/content-api/permissions/providers/condition.d.ts.map +1 -1
  134. package/dist/services/core-store.js +3 -3
  135. package/dist/services/core-store.js.map +1 -1
  136. package/dist/services/cron.d.ts +3 -3
  137. package/dist/services/cron.d.ts.map +1 -1
  138. package/dist/services/cron.js +3 -3
  139. package/dist/services/cron.js.map +1 -1
  140. package/dist/services/cron.mjs.map +1 -1
  141. package/dist/services/document-service/attributes/index.js +2 -2
  142. package/dist/services/document-service/attributes/index.js.map +1 -1
  143. package/dist/services/document-service/attributes/transforms.js +3 -3
  144. package/dist/services/document-service/attributes/transforms.js.map +1 -1
  145. package/dist/services/document-service/components.js +15 -15
  146. package/dist/services/document-service/components.js.map +1 -1
  147. package/dist/services/document-service/draft-and-publish.js +16 -16
  148. package/dist/services/document-service/draft-and-publish.js.map +1 -1
  149. package/dist/services/document-service/entries.js +5 -5
  150. package/dist/services/document-service/entries.js.map +1 -1
  151. package/dist/services/document-service/internationalization.js +9 -9
  152. package/dist/services/document-service/internationalization.js.map +1 -1
  153. package/dist/services/document-service/params.js +2 -2
  154. package/dist/services/document-service/params.js.map +1 -1
  155. package/dist/services/document-service/repository.d.ts.map +1 -1
  156. package/dist/services/document-service/repository.js +65 -15
  157. package/dist/services/document-service/repository.js.map +1 -1
  158. package/dist/services/document-service/repository.mjs +57 -7
  159. package/dist/services/document-service/repository.mjs.map +1 -1
  160. package/dist/services/document-service/transform/id-transform.js +2 -2
  161. package/dist/services/document-service/transform/id-transform.js.map +1 -1
  162. package/dist/services/document-service/transform/query.js +3 -3
  163. package/dist/services/document-service/transform/query.js.map +1 -1
  164. package/dist/services/document-service/transform/relations/extract/data-ids.js +2 -2
  165. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
  166. package/dist/services/document-service/transform/relations/transform/data-ids.js +2 -2
  167. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
  168. package/dist/services/document-service/transform/relations/utils/dp.js +2 -2
  169. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -1
  170. package/dist/services/document-service/transform/relations/utils/map-relation.js +6 -6
  171. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -1
  172. package/dist/services/document-service/utils/populate.d.ts.map +1 -1
  173. package/dist/services/document-service/utils/populate.js +7 -1
  174. package/dist/services/document-service/utils/populate.js.map +1 -1
  175. package/dist/services/document-service/utils/populate.mjs +7 -1
  176. package/dist/services/document-service/utils/populate.mjs.map +1 -1
  177. package/dist/services/document-service/utils/unidirectional-relations.d.ts +36 -0
  178. package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -0
  179. package/dist/services/document-service/utils/unidirectional-relations.js +67 -0
  180. package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -0
  181. package/dist/services/document-service/utils/unidirectional-relations.mjs +67 -0
  182. package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -0
  183. package/dist/services/entity-validator/blocks-validator.d.ts +1 -2
  184. package/dist/services/entity-validator/blocks-validator.d.ts.map +1 -1
  185. package/dist/services/entity-validator/blocks-validator.js +4 -3
  186. package/dist/services/entity-validator/blocks-validator.js.map +1 -1
  187. package/dist/services/entity-validator/blocks-validator.mjs +3 -3
  188. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
  189. package/dist/services/entity-validator/index.d.ts +15 -1
  190. package/dist/services/entity-validator/index.d.ts.map +1 -1
  191. package/dist/services/entity-validator/index.js +109 -53
  192. package/dist/services/entity-validator/index.js.map +1 -1
  193. package/dist/services/entity-validator/index.mjs +95 -39
  194. package/dist/services/entity-validator/index.mjs.map +1 -1
  195. package/dist/services/entity-validator/validators.d.ts +36 -25
  196. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  197. package/dist/services/entity-validator/validators.js +148 -33
  198. package/dist/services/entity-validator/validators.js.map +1 -1
  199. package/dist/services/entity-validator/validators.mjs +140 -25
  200. package/dist/services/entity-validator/validators.mjs.map +1 -1
  201. package/dist/services/server/compose-endpoint.js +7 -7
  202. package/dist/services/server/compose-endpoint.js.map +1 -1
  203. package/dist/services/server/index.js +1 -1
  204. package/dist/services/server/index.js.map +1 -1
  205. package/dist/services/server/index.mjs +1 -1
  206. package/dist/services/server/index.mjs.map +1 -1
  207. package/dist/services/server/koa.js +3 -3
  208. package/dist/services/server/koa.js.map +1 -1
  209. package/dist/services/server/middleware.js +3 -3
  210. package/dist/services/server/middleware.js.map +1 -1
  211. package/dist/services/server/routing.js +2 -2
  212. package/dist/services/server/routing.js.map +1 -1
  213. package/dist/services/utils/dynamic-zones.js +5 -5
  214. package/dist/services/utils/dynamic-zones.js.map +1 -1
  215. package/dist/utils/cron.js +3 -3
  216. package/dist/utils/cron.js.map +1 -1
  217. package/dist/utils/fetch.d.ts.map +1 -1
  218. package/dist/utils/fetch.js +4 -3
  219. package/dist/utils/fetch.js.map +1 -1
  220. package/dist/utils/fetch.mjs +4 -3
  221. package/dist/utils/fetch.mjs.map +1 -1
  222. package/dist/utils/filepath-to-prop-path.d.ts +1 -1
  223. package/dist/utils/filepath-to-prop-path.d.ts.map +1 -1
  224. package/dist/utils/filepath-to-prop-path.js +27 -6
  225. package/dist/utils/filepath-to-prop-path.js.map +1 -1
  226. package/dist/utils/filepath-to-prop-path.mjs +25 -5
  227. package/dist/utils/filepath-to-prop-path.mjs.map +1 -1
  228. package/dist/utils/is-initialized.js +3 -3
  229. package/dist/utils/is-initialized.js.map +1 -1
  230. package/dist/utils/startup-logger.js +4 -4
  231. package/dist/utils/startup-logger.js.map +1 -1
  232. package/dist/utils/startup-logger.mjs +3 -3
  233. package/dist/utils/startup-logger.mjs.map +1 -1
  234. package/dist/utils/transform-content-types-to-models.d.ts +2 -2
  235. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  236. package/dist/utils/transform-content-types-to-models.js +17 -4
  237. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  238. package/dist/utils/transform-content-types-to-models.mjs +16 -3
  239. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  240. package/package.json +18 -16
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const enableI18n = async ({ oldContentTypes, contentTypes }) => {
4
+ const { isLocalizedContentType } = strapi.plugin("i18n")?.service("content-types") ?? {};
5
+ const { getDefaultLocale } = strapi.plugin("i18n")?.service("locales") ?? {};
6
+ if (!oldContentTypes) {
7
+ return;
8
+ }
9
+ for (const uid in contentTypes) {
10
+ if (!oldContentTypes[uid]) {
11
+ continue;
12
+ }
13
+ const oldContentType = oldContentTypes[uid];
14
+ const contentType = contentTypes[uid];
15
+ if (!isLocalizedContentType(oldContentType) && isLocalizedContentType(contentType)) {
16
+ const defaultLocale = await getDefaultLocale();
17
+ await strapi.db.query(uid).updateMany({
18
+ where: { locale: null },
19
+ data: { locale: defaultLocale }
20
+ });
21
+ }
22
+ }
23
+ };
24
+ const disableI18n = async ({ oldContentTypes, contentTypes }) => {
25
+ const { isLocalizedContentType } = strapi.plugin("i18n")?.service("content-types") ?? {};
26
+ const { getDefaultLocale } = strapi.plugin("i18n")?.service("locales") ?? {};
27
+ if (!oldContentTypes) {
28
+ return;
29
+ }
30
+ for (const uid in contentTypes) {
31
+ if (!oldContentTypes[uid]) {
32
+ continue;
33
+ }
34
+ const oldContentType = oldContentTypes[uid];
35
+ const contentType = contentTypes[uid];
36
+ if (isLocalizedContentType(oldContentType) && !isLocalizedContentType(contentType)) {
37
+ const defaultLocale = await getDefaultLocale();
38
+ await Promise.all([
39
+ // Delete all entities that are not in the default locale
40
+ strapi.db.query(uid).deleteMany({
41
+ where: { locale: { $ne: defaultLocale } }
42
+ }),
43
+ // Set locale to null for the rest
44
+ strapi.db.query(uid).updateMany({
45
+ where: { locale: { $eq: defaultLocale } },
46
+ data: { locale: null }
47
+ })
48
+ ]);
49
+ }
50
+ }
51
+ };
52
+ exports.disable = disableI18n;
53
+ exports.enable = enableI18n;
54
+ //# sourceMappingURL=i18n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.js","sources":["../../src/migrations/i18n.ts"],"sourcesContent":["import { Input } from './draft-publish';\n\n// if i18N enabled set default locale\nconst enableI18n = async ({ oldContentTypes, contentTypes }: Input) => {\n const { isLocalizedContentType } = strapi.plugin('i18n')?.service('content-types') ?? {};\n const { getDefaultLocale } = strapi.plugin('i18n')?.service('locales') ?? {};\n\n if (!oldContentTypes) {\n return;\n }\n\n for (const uid in contentTypes) {\n if (!oldContentTypes[uid]) {\n continue;\n }\n\n const oldContentType = oldContentTypes[uid];\n const contentType = contentTypes[uid];\n\n if (!isLocalizedContentType(oldContentType) && isLocalizedContentType(contentType)) {\n const defaultLocale = await getDefaultLocale();\n\n await strapi.db.query(uid).updateMany({\n where: { locale: null },\n data: { locale: defaultLocale },\n });\n }\n }\n};\n\nconst disableI18n = async ({ oldContentTypes, contentTypes }: Input) => {\n const { isLocalizedContentType } = strapi.plugin('i18n')?.service('content-types') ?? {};\n const { getDefaultLocale } = strapi.plugin('i18n')?.service('locales') ?? {};\n\n if (!oldContentTypes) {\n return;\n }\n\n for (const uid in contentTypes) {\n if (!oldContentTypes[uid]) {\n continue;\n }\n\n const oldContentType = oldContentTypes[uid];\n const contentType = contentTypes[uid];\n\n // if i18N is disabled remove non default locales before sync\n if (isLocalizedContentType(oldContentType) && !isLocalizedContentType(contentType)) {\n const defaultLocale = await getDefaultLocale();\n\n await Promise.all([\n // Delete all entities that are not in the default locale\n strapi.db.query(uid).deleteMany({\n where: { locale: { $ne: defaultLocale } },\n }),\n // Set locale to null for the rest\n strapi.db.query(uid).updateMany({\n where: { locale: { $eq: defaultLocale } },\n data: { locale: null },\n }),\n ]);\n }\n }\n};\n\nexport { enableI18n as enable, disableI18n as disable };\n"],"names":[],"mappings":";;AAGA,MAAM,aAAa,OAAO,EAAE,iBAAiB,mBAA0B;AAC/D,QAAA,EAAE,2BAA2B,OAAO,OAAO,MAAM,GAAG,QAAQ,eAAe,KAAK;AAChF,QAAA,EAAE,qBAAqB,OAAO,OAAO,MAAM,GAAG,QAAQ,SAAS,KAAK;AAE1E,MAAI,CAAC,iBAAiB;AACpB;AAAA,EACF;AAEA,aAAW,OAAO,cAAc;AAC1B,QAAA,CAAC,gBAAgB,GAAG,GAAG;AACzB;AAAA,IACF;AAEM,UAAA,iBAAiB,gBAAgB,GAAG;AACpC,UAAA,cAAc,aAAa,GAAG;AAEpC,QAAI,CAAC,uBAAuB,cAAc,KAAK,uBAAuB,WAAW,GAAG;AAC5E,YAAA,gBAAgB,MAAM;AAE5B,YAAM,OAAO,GAAG,MAAM,GAAG,EAAE,WAAW;AAAA,QACpC,OAAO,EAAE,QAAQ,KAAK;AAAA,QACtB,MAAM,EAAE,QAAQ,cAAc;AAAA,MAAA,CAC/B;AAAA,IACH;AAAA,EACF;AACF;AAEA,MAAM,cAAc,OAAO,EAAE,iBAAiB,mBAA0B;AAChE,QAAA,EAAE,2BAA2B,OAAO,OAAO,MAAM,GAAG,QAAQ,eAAe,KAAK;AAChF,QAAA,EAAE,qBAAqB,OAAO,OAAO,MAAM,GAAG,QAAQ,SAAS,KAAK;AAE1E,MAAI,CAAC,iBAAiB;AACpB;AAAA,EACF;AAEA,aAAW,OAAO,cAAc;AAC1B,QAAA,CAAC,gBAAgB,GAAG,GAAG;AACzB;AAAA,IACF;AAEM,UAAA,iBAAiB,gBAAgB,GAAG;AACpC,UAAA,cAAc,aAAa,GAAG;AAGpC,QAAI,uBAAuB,cAAc,KAAK,CAAC,uBAAuB,WAAW,GAAG;AAC5E,YAAA,gBAAgB,MAAM;AAE5B,YAAM,QAAQ,IAAI;AAAA;AAAA,QAEhB,OAAO,GAAG,MAAM,GAAG,EAAE,WAAW;AAAA,UAC9B,OAAO,EAAE,QAAQ,EAAE,KAAK,gBAAgB;AAAA,QAAA,CACzC;AAAA;AAAA,QAED,OAAO,GAAG,MAAM,GAAG,EAAE,WAAW;AAAA,UAC9B,OAAO,EAAE,QAAQ,EAAE,KAAK,gBAAgB;AAAA,UACxC,MAAM,EAAE,QAAQ,KAAK;AAAA,QAAA,CACtB;AAAA,MAAA,CACF;AAAA,IACH;AAAA,EACF;AACF;;;"}
@@ -0,0 +1,54 @@
1
+ const enableI18n = async ({ oldContentTypes, contentTypes }) => {
2
+ const { isLocalizedContentType } = strapi.plugin("i18n")?.service("content-types") ?? {};
3
+ const { getDefaultLocale } = strapi.plugin("i18n")?.service("locales") ?? {};
4
+ if (!oldContentTypes) {
5
+ return;
6
+ }
7
+ for (const uid in contentTypes) {
8
+ if (!oldContentTypes[uid]) {
9
+ continue;
10
+ }
11
+ const oldContentType = oldContentTypes[uid];
12
+ const contentType = contentTypes[uid];
13
+ if (!isLocalizedContentType(oldContentType) && isLocalizedContentType(contentType)) {
14
+ const defaultLocale = await getDefaultLocale();
15
+ await strapi.db.query(uid).updateMany({
16
+ where: { locale: null },
17
+ data: { locale: defaultLocale }
18
+ });
19
+ }
20
+ }
21
+ };
22
+ const disableI18n = async ({ oldContentTypes, contentTypes }) => {
23
+ const { isLocalizedContentType } = strapi.plugin("i18n")?.service("content-types") ?? {};
24
+ const { getDefaultLocale } = strapi.plugin("i18n")?.service("locales") ?? {};
25
+ if (!oldContentTypes) {
26
+ return;
27
+ }
28
+ for (const uid in contentTypes) {
29
+ if (!oldContentTypes[uid]) {
30
+ continue;
31
+ }
32
+ const oldContentType = oldContentTypes[uid];
33
+ const contentType = contentTypes[uid];
34
+ if (isLocalizedContentType(oldContentType) && !isLocalizedContentType(contentType)) {
35
+ const defaultLocale = await getDefaultLocale();
36
+ await Promise.all([
37
+ // Delete all entities that are not in the default locale
38
+ strapi.db.query(uid).deleteMany({
39
+ where: { locale: { $ne: defaultLocale } }
40
+ }),
41
+ // Set locale to null for the rest
42
+ strapi.db.query(uid).updateMany({
43
+ where: { locale: { $eq: defaultLocale } },
44
+ data: { locale: null }
45
+ })
46
+ ]);
47
+ }
48
+ }
49
+ };
50
+ export {
51
+ disableI18n as disable,
52
+ enableI18n as enable
53
+ };
54
+ //# sourceMappingURL=i18n.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.mjs","sources":["../../src/migrations/i18n.ts"],"sourcesContent":["import { Input } from './draft-publish';\n\n// if i18N enabled set default locale\nconst enableI18n = async ({ oldContentTypes, contentTypes }: Input) => {\n const { isLocalizedContentType } = strapi.plugin('i18n')?.service('content-types') ?? {};\n const { getDefaultLocale } = strapi.plugin('i18n')?.service('locales') ?? {};\n\n if (!oldContentTypes) {\n return;\n }\n\n for (const uid in contentTypes) {\n if (!oldContentTypes[uid]) {\n continue;\n }\n\n const oldContentType = oldContentTypes[uid];\n const contentType = contentTypes[uid];\n\n if (!isLocalizedContentType(oldContentType) && isLocalizedContentType(contentType)) {\n const defaultLocale = await getDefaultLocale();\n\n await strapi.db.query(uid).updateMany({\n where: { locale: null },\n data: { locale: defaultLocale },\n });\n }\n }\n};\n\nconst disableI18n = async ({ oldContentTypes, contentTypes }: Input) => {\n const { isLocalizedContentType } = strapi.plugin('i18n')?.service('content-types') ?? {};\n const { getDefaultLocale } = strapi.plugin('i18n')?.service('locales') ?? {};\n\n if (!oldContentTypes) {\n return;\n }\n\n for (const uid in contentTypes) {\n if (!oldContentTypes[uid]) {\n continue;\n }\n\n const oldContentType = oldContentTypes[uid];\n const contentType = contentTypes[uid];\n\n // if i18N is disabled remove non default locales before sync\n if (isLocalizedContentType(oldContentType) && !isLocalizedContentType(contentType)) {\n const defaultLocale = await getDefaultLocale();\n\n await Promise.all([\n // Delete all entities that are not in the default locale\n strapi.db.query(uid).deleteMany({\n where: { locale: { $ne: defaultLocale } },\n }),\n // Set locale to null for the rest\n strapi.db.query(uid).updateMany({\n where: { locale: { $eq: defaultLocale } },\n data: { locale: null },\n }),\n ]);\n }\n }\n};\n\nexport { enableI18n as enable, disableI18n as disable };\n"],"names":[],"mappings":"AAGA,MAAM,aAAa,OAAO,EAAE,iBAAiB,mBAA0B;AAC/D,QAAA,EAAE,2BAA2B,OAAO,OAAO,MAAM,GAAG,QAAQ,eAAe,KAAK;AAChF,QAAA,EAAE,qBAAqB,OAAO,OAAO,MAAM,GAAG,QAAQ,SAAS,KAAK;AAE1E,MAAI,CAAC,iBAAiB;AACpB;AAAA,EACF;AAEA,aAAW,OAAO,cAAc;AAC1B,QAAA,CAAC,gBAAgB,GAAG,GAAG;AACzB;AAAA,IACF;AAEM,UAAA,iBAAiB,gBAAgB,GAAG;AACpC,UAAA,cAAc,aAAa,GAAG;AAEpC,QAAI,CAAC,uBAAuB,cAAc,KAAK,uBAAuB,WAAW,GAAG;AAC5E,YAAA,gBAAgB,MAAM;AAE5B,YAAM,OAAO,GAAG,MAAM,GAAG,EAAE,WAAW;AAAA,QACpC,OAAO,EAAE,QAAQ,KAAK;AAAA,QACtB,MAAM,EAAE,QAAQ,cAAc;AAAA,MAAA,CAC/B;AAAA,IACH;AAAA,EACF;AACF;AAEA,MAAM,cAAc,OAAO,EAAE,iBAAiB,mBAA0B;AAChE,QAAA,EAAE,2BAA2B,OAAO,OAAO,MAAM,GAAG,QAAQ,eAAe,KAAK;AAChF,QAAA,EAAE,qBAAqB,OAAO,OAAO,MAAM,GAAG,QAAQ,SAAS,KAAK;AAE1E,MAAI,CAAC,iBAAiB;AACpB;AAAA,EACF;AAEA,aAAW,OAAO,cAAc;AAC1B,QAAA,CAAC,gBAAgB,GAAG,GAAG;AACzB;AAAA,IACF;AAEM,UAAA,iBAAiB,gBAAgB,GAAG;AACpC,UAAA,cAAc,aAAa,GAAG;AAGpC,QAAI,uBAAuB,cAAc,KAAK,CAAC,uBAAuB,WAAW,GAAG;AAC5E,YAAA,gBAAgB,MAAM;AAE5B,YAAM,QAAQ,IAAI;AAAA;AAAA,QAEhB,OAAO,GAAG,MAAM,GAAG,EAAE,WAAW;AAAA,UAC9B,OAAO,EAAE,QAAQ,EAAE,KAAK,gBAAgB;AAAA,QAAA,CACzC;AAAA;AAAA,QAED,OAAO,GAAG,MAAM,GAAG,EAAE,WAAW;AAAA,UAC9B,OAAO,EAAE,QAAQ,EAAE,KAAK,gBAAgB;AAAA,UACxC,MAAM,EAAE,QAAQ,KAAK;AAAA,QAAA,CACtB;AAAA,MAAA,CACF;AAAA,IACH;AAAA,EACF;AACF;"}
@@ -0,0 +1,5 @@
1
+ import type { Input } from './draft-publish';
2
+ declare const enable: ({ oldContentTypes, contentTypes }: Input) => Promise<void>;
3
+ declare const disable: ({ oldContentTypes, contentTypes }: Input) => Promise<void>;
4
+ export { enable, disable };
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/migrations/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAE7C,QAAA,MAAM,MAAM,sCAA6C,KAAK,kBAG7D,CAAC;AAEF,QAAA,MAAM,OAAO,sCAA6C,KAAK,kBAG9D,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const draftPublish = require("./draft-publish.js");
4
+ const i18n = require("./i18n.js");
5
+ const enable = async ({ oldContentTypes, contentTypes }) => {
6
+ await i18n.enable({ oldContentTypes, contentTypes });
7
+ await draftPublish.enable({ oldContentTypes, contentTypes });
8
+ };
9
+ const disable = async ({ oldContentTypes, contentTypes }) => {
10
+ await i18n.disable({ oldContentTypes, contentTypes });
11
+ await draftPublish.disable({ oldContentTypes, contentTypes });
12
+ };
13
+ exports.disable = disable;
14
+ exports.enable = enable;
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../src/migrations/index.ts"],"sourcesContent":["import * as draftPublishMigrations from './draft-publish';\nimport * as i18nMigrations from './i18n';\nimport type { Input } from './draft-publish';\n\nconst enable = async ({ oldContentTypes, contentTypes }: Input) => {\n await i18nMigrations.enable({ oldContentTypes, contentTypes });\n await draftPublishMigrations.enable({ oldContentTypes, contentTypes });\n};\n\nconst disable = async ({ oldContentTypes, contentTypes }: Input) => {\n await i18nMigrations.disable({ oldContentTypes, contentTypes });\n await draftPublishMigrations.disable({ oldContentTypes, contentTypes });\n};\n\nexport { enable, disable };\n"],"names":["i18nMigrations.enable","draftPublishMigrations.enable","i18nMigrations.disable","draftPublishMigrations.disable"],"mappings":";;;;AAIA,MAAM,SAAS,OAAO,EAAE,iBAAiB,mBAA0B;AACjE,QAAMA,YAAsB,EAAE,iBAAiB,aAAc,CAAA;AAC7D,QAAMC,oBAA8B,EAAE,iBAAiB,aAAc,CAAA;AACvE;AAEA,MAAM,UAAU,OAAO,EAAE,iBAAiB,mBAA0B;AAClE,QAAMC,aAAuB,EAAE,iBAAiB,aAAc,CAAA;AAC9D,QAAMC,qBAA+B,EAAE,iBAAiB,aAAc,CAAA;AACxE;;;"}
@@ -0,0 +1,15 @@
1
+ import { enable as enableDraftAndPublish, disable as disableDraftAndPublish } from "./draft-publish.mjs";
2
+ import { enable as enableI18n, disable as disableI18n } from "./i18n.mjs";
3
+ const enable = async ({ oldContentTypes, contentTypes }) => {
4
+ await enableI18n({ oldContentTypes, contentTypes });
5
+ await enableDraftAndPublish({ oldContentTypes, contentTypes });
6
+ };
7
+ const disable = async ({ oldContentTypes, contentTypes }) => {
8
+ await disableI18n({ oldContentTypes, contentTypes });
9
+ await disableDraftAndPublish({ oldContentTypes, contentTypes });
10
+ };
11
+ export {
12
+ disable,
13
+ enable
14
+ };
15
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../src/migrations/index.ts"],"sourcesContent":["import * as draftPublishMigrations from './draft-publish';\nimport * as i18nMigrations from './i18n';\nimport type { Input } from './draft-publish';\n\nconst enable = async ({ oldContentTypes, contentTypes }: Input) => {\n await i18nMigrations.enable({ oldContentTypes, contentTypes });\n await draftPublishMigrations.enable({ oldContentTypes, contentTypes });\n};\n\nconst disable = async ({ oldContentTypes, contentTypes }: Input) => {\n await i18nMigrations.disable({ oldContentTypes, contentTypes });\n await draftPublishMigrations.disable({ oldContentTypes, contentTypes });\n};\n\nexport { enable, disable };\n"],"names":["i18nMigrations.enable","draftPublishMigrations.enable","i18nMigrations.disable","draftPublishMigrations.disable"],"mappings":";;AAIA,MAAM,SAAS,OAAO,EAAE,iBAAiB,mBAA0B;AACjE,QAAMA,WAAsB,EAAE,iBAAiB,aAAc,CAAA;AAC7D,QAAMC,sBAA8B,EAAE,iBAAiB,aAAc,CAAA;AACvE;AAEA,MAAM,UAAU,OAAO,EAAE,iBAAiB,mBAA0B;AAClE,QAAMC,YAAuB,EAAE,iBAAiB,aAAc,CAAA;AAC9D,QAAMC,uBAA+B,EAAE,iBAAiB,aAAc,CAAA;AACxE;"}
@@ -1 +1 @@
1
- {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/providers/admin.ts"],"names":[],"mappings":";AAGA,wBAkBG"}
1
+ {"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../src/providers/admin.ts"],"names":[],"mappings":";AAGA,wBAmBG"}
@@ -1 +1 @@
1
- {"version":3,"file":"admin.js","sources":["../../src/providers/admin.ts"],"sourcesContent":["import { defineProvider } from './provider';\nimport loadAdmin from '../loaders/admin';\n\nexport default defineProvider({\n init(strapi) {\n strapi.add('admin', () => require('@strapi/admin/strapi-server'));\n },\n\n async register(strapi) {\n await loadAdmin(strapi);\n\n await strapi.get('admin')?.register({ strapi });\n },\n\n async bootstrap(strapi) {\n await strapi.get('admin')?.bootstrap({ strapi });\n },\n\n async destroy(strapi) {\n await strapi.get('admin')?.destroy({ strapi });\n },\n});\n"],"names":["defineProvider","loadAdmin"],"mappings":";;;AAGA,MAAA,QAAeA,wBAAe;AAAA,EAC5B,KAAK,QAAQ;AACX,WAAO,IAAI,SAAS,MAAM,QAAQ,6BAA6B,CAAC;AAAA,EAClE;AAAA,EAEA,MAAM,SAAS,QAAQ;AACrB,UAAMC,QAAU,MAAM;AAEtB,UAAM,OAAO,IAAI,OAAO,GAAG,SAAS,EAAE,QAAQ;AAAA,EAChD;AAAA,EAEA,MAAM,UAAU,QAAQ;AACtB,UAAM,OAAO,IAAI,OAAO,GAAG,UAAU,EAAE,QAAQ;AAAA,EACjD;AAAA,EAEA,MAAM,QAAQ,QAAQ;AACpB,UAAM,OAAO,IAAI,OAAO,GAAG,QAAQ,EAAE,QAAQ;AAAA,EAC/C;AACF,CAAC;;"}
1
+ {"version":3,"file":"admin.js","sources":["../../src/providers/admin.ts"],"sourcesContent":["import { defineProvider } from './provider';\nimport loadAdmin from '../loaders/admin';\n\nexport default defineProvider({\n init(strapi) {\n // eslint-disable-next-line node/no-missing-require\n strapi.add('admin', () => require('@strapi/admin/strapi-server'));\n },\n\n async register(strapi) {\n await loadAdmin(strapi);\n\n await strapi.get('admin')?.register({ strapi });\n },\n\n async bootstrap(strapi) {\n await strapi.get('admin')?.bootstrap({ strapi });\n },\n\n async destroy(strapi) {\n await strapi.get('admin')?.destroy({ strapi });\n },\n});\n"],"names":["defineProvider","loadAdmin"],"mappings":";;;AAGA,MAAA,QAAeA,wBAAe;AAAA,EAC5B,KAAK,QAAQ;AAEX,WAAO,IAAI,SAAS,MAAM,QAAQ,6BAA6B,CAAC;AAAA,EAClE;AAAA,EAEA,MAAM,SAAS,QAAQ;AACrB,UAAMC,QAAU,MAAM;AAEtB,UAAM,OAAO,IAAI,OAAO,GAAG,SAAS,EAAE,QAAQ;AAAA,EAChD;AAAA,EAEA,MAAM,UAAU,QAAQ;AACtB,UAAM,OAAO,IAAI,OAAO,GAAG,UAAU,EAAE,QAAQ;AAAA,EACjD;AAAA,EAEA,MAAM,QAAQ,QAAQ;AACpB,UAAM,OAAO,IAAI,OAAO,GAAG,QAAQ,EAAE,QAAQ;AAAA,EAC/C;AACF,CAAC;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"admin.mjs","sources":["../../src/providers/admin.ts"],"sourcesContent":["import { defineProvider } from './provider';\nimport loadAdmin from '../loaders/admin';\n\nexport default defineProvider({\n init(strapi) {\n strapi.add('admin', () => require('@strapi/admin/strapi-server'));\n },\n\n async register(strapi) {\n await loadAdmin(strapi);\n\n await strapi.get('admin')?.register({ strapi });\n },\n\n async bootstrap(strapi) {\n await strapi.get('admin')?.bootstrap({ strapi });\n },\n\n async destroy(strapi) {\n await strapi.get('admin')?.destroy({ strapi });\n },\n});\n"],"names":[],"mappings":";;AAGA,MAAA,QAAe,eAAe;AAAA,EAC5B,KAAK,QAAQ;AACX,WAAO,IAAI,SAAS,MAAM,QAAQ,6BAA6B,CAAC;AAAA,EAClE;AAAA,EAEA,MAAM,SAAS,QAAQ;AACrB,UAAM,UAAU,MAAM;AAEtB,UAAM,OAAO,IAAI,OAAO,GAAG,SAAS,EAAE,QAAQ;AAAA,EAChD;AAAA,EAEA,MAAM,UAAU,QAAQ;AACtB,UAAM,OAAO,IAAI,OAAO,GAAG,UAAU,EAAE,QAAQ;AAAA,EACjD;AAAA,EAEA,MAAM,QAAQ,QAAQ;AACpB,UAAM,OAAO,IAAI,OAAO,GAAG,QAAQ,EAAE,QAAQ;AAAA,EAC/C;AACF,CAAC;"}
1
+ {"version":3,"file":"admin.mjs","sources":["../../src/providers/admin.ts"],"sourcesContent":["import { defineProvider } from './provider';\nimport loadAdmin from '../loaders/admin';\n\nexport default defineProvider({\n init(strapi) {\n // eslint-disable-next-line node/no-missing-require\n strapi.add('admin', () => require('@strapi/admin/strapi-server'));\n },\n\n async register(strapi) {\n await loadAdmin(strapi);\n\n await strapi.get('admin')?.register({ strapi });\n },\n\n async bootstrap(strapi) {\n await strapi.get('admin')?.bootstrap({ strapi });\n },\n\n async destroy(strapi) {\n await strapi.get('admin')?.destroy({ strapi });\n },\n});\n"],"names":[],"mappings":";;AAGA,MAAA,QAAe,eAAe;AAAA,EAC5B,KAAK,QAAQ;AAEX,WAAO,IAAI,SAAS,MAAM,QAAQ,6BAA6B,CAAC;AAAA,EAClE;AAAA,EAEA,MAAM,SAAS,QAAQ;AACrB,UAAM,UAAU,MAAM;AAEtB,UAAM,OAAO,IAAI,OAAO,GAAG,SAAS,EAAE,QAAQ;AAAA,EAChD;AAAA,EAEA,MAAM,UAAU,QAAQ;AACtB,UAAM,OAAO,IAAI,OAAO,GAAG,UAAU,EAAE,QAAQ;AAAA,EACjD;AAAA,EAEA,MAAM,QAAQ,QAAQ;AACpB,UAAM,OAAO,IAAI,OAAO,GAAG,QAAQ,EAAE,QAAQ;AAAA,EAC/C;AACF,CAAC;"}
@@ -16,7 +16,7 @@ const sanitizers = require("../registries/sanitizers.js");
16
16
  const validators = require("../registries/validators.js");
17
17
  const models = require("../registries/models.js");
18
18
  const index = require("../loaders/index.js");
19
- const draftPublish = require("../migrations/draft-publish.js");
19
+ const index$1 = require("../migrations/index.js");
20
20
  const _5_0_0DiscardDrafts = require("../migrations/database/5.0.0-discard-drafts.js");
21
21
  const registries = provider.defineProvider({
22
22
  init(strapi) {
@@ -26,8 +26,8 @@ const registries = provider.defineProvider({
26
26
  await index.loadApplicationContext(strapi);
27
27
  strapi.get("hooks").set("strapi::content-types.beforeSync", strapiUtils.hooks.createAsyncParallelHook());
28
28
  strapi.get("hooks").set("strapi::content-types.afterSync", strapiUtils.hooks.createAsyncParallelHook());
29
- strapi.hook("strapi::content-types.beforeSync").register(draftPublish.disable);
30
- strapi.hook("strapi::content-types.afterSync").register(draftPublish.enable);
29
+ strapi.hook("strapi::content-types.beforeSync").register(index$1.disable);
30
+ strapi.hook("strapi::content-types.afterSync").register(index$1.enable);
31
31
  strapi.db.migrations.providers.internal.register(_5_0_0DiscardDrafts.discardDocumentDrafts);
32
32
  }
33
33
  });
@@ -1 +1 @@
1
- {"version":3,"file":"registries.js","sources":["../../src/providers/registries.ts"],"sourcesContent":["import { hooks } from '@strapi/utils';\n\nimport { defineProvider } from './provider';\nimport * as registries from '../registries';\nimport { loadApplicationContext } from '../loaders';\nimport * as draftAndPublishSync from '../migrations/draft-publish';\nimport { discardDocumentDrafts } from '../migrations/database/5.0.0-discard-drafts';\n\nexport default defineProvider({\n init(strapi) {\n strapi\n .add('content-types', () => registries.contentTypes())\n .add('components', () => registries.components())\n .add('services', () => registries.services(strapi))\n .add('policies', () => registries.policies())\n .add('middlewares', () => registries.middlewares())\n .add('hooks', () => registries.hooks())\n .add('controllers', () => registries.controllers(strapi))\n .add('modules', () => registries.modules(strapi))\n .add('plugins', () => registries.plugins(strapi))\n .add('custom-fields', () => registries.customFields(strapi))\n .add('apis', () => registries.apis(strapi))\n .add('models', () => registries.models())\n .add('sanitizers', registries.sanitizers())\n .add('validators', registries.validators());\n },\n async register(strapi) {\n await loadApplicationContext(strapi);\n\n strapi.get('hooks').set('strapi::content-types.beforeSync', hooks.createAsyncParallelHook());\n strapi.get('hooks').set('strapi::content-types.afterSync', hooks.createAsyncParallelHook());\n\n // Content migration to enable draft and publish\n strapi.hook('strapi::content-types.beforeSync').register(draftAndPublishSync.disable);\n strapi.hook('strapi::content-types.afterSync').register(draftAndPublishSync.enable);\n\n // Database migrations\n strapi.db.migrations.providers.internal.register(discardDocumentDrafts);\n },\n});\n"],"names":["defineProvider","registries.contentTypes","registries.components","registries.services","registries.policies","registries.middlewares","registries.hooks","registries.controllers","registries.modules","registries.plugins","registries.customFields","registries.apis","registries.models","registries.sanitizers","registries.validators","loadApplicationContext","hooks","draftAndPublishSync.disable","draftAndPublishSync.enable","discardDocumentDrafts"],"mappings":";;;;;;;;;;;;;;;;;;;;AAQA,MAAA,aAAeA,wBAAe;AAAA,EAC5B,KAAK,QAAQ;AAER,WAAA,IAAI,iBAAiB,MAAMC,aAAyB,CAAA,EACpD,IAAI,cAAc,MAAMC,WAAuB,CAAA,EAC/C,IAAI,YAAY,MAAMC,SAAoB,MAAM,CAAC,EACjD,IAAI,YAAY,MAAMC,SAAqB,CAAA,EAC3C,IAAI,eAAe,MAAMC,YAAuB,CAAC,EACjD,IAAI,SAAS,MAAMC,OAAkB,EACrC,IAAI,eAAe,MAAMC,YAAuB,MAAM,CAAC,EACvD,IAAI,WAAW,MAAMC,QAAmB,MAAM,CAAC,EAC/C,IAAI,WAAW,MAAMC,QAAmB,MAAM,CAAC,EAC/C,IAAI,iBAAiB,MAAMC,aAAwB,MAAM,CAAC,EAC1D,IAAI,QAAQ,MAAMC,KAAgB,MAAM,CAAC,EACzC,IAAI,UAAU,MAAMC,gBAAmB,CAAA,EACvC,IAAI,cAAcC,YAAuB,EACzC,IAAI,cAAcC,WAAW,CAAY;AAAA,EAC9C;AAAA,EACA,MAAM,SAAS,QAAQ;AACrB,UAAMC,MAAAA,uBAAuB,MAAM;AAEnC,WAAO,IAAI,OAAO,EAAE,IAAI,oCAAoCC,YAAA,MAAM,yBAAyB;AAC3F,WAAO,IAAI,OAAO,EAAE,IAAI,mCAAmCA,YAAA,MAAM,yBAAyB;AAG1F,WAAO,KAAK,kCAAkC,EAAE,SAASC,aAA2B,OAAA;AACpF,WAAO,KAAK,iCAAiC,EAAE,SAASC,aAA0B,MAAA;AAGlF,WAAO,GAAG,WAAW,UAAU,SAAS,SAASC,oBAAAA,qBAAqB;AAAA,EACxE;AACF,CAAC;;"}
1
+ {"version":3,"file":"registries.js","sources":["../../src/providers/registries.ts"],"sourcesContent":["import { hooks } from '@strapi/utils';\n\nimport { defineProvider } from './provider';\nimport * as registries from '../registries';\nimport { loadApplicationContext } from '../loaders';\nimport * as syncMigrations from '../migrations';\nimport { discardDocumentDrafts } from '../migrations/database/5.0.0-discard-drafts';\n\nexport default defineProvider({\n init(strapi) {\n strapi\n .add('content-types', () => registries.contentTypes())\n .add('components', () => registries.components())\n .add('services', () => registries.services(strapi))\n .add('policies', () => registries.policies())\n .add('middlewares', () => registries.middlewares())\n .add('hooks', () => registries.hooks())\n .add('controllers', () => registries.controllers(strapi))\n .add('modules', () => registries.modules(strapi))\n .add('plugins', () => registries.plugins(strapi))\n .add('custom-fields', () => registries.customFields(strapi))\n .add('apis', () => registries.apis(strapi))\n .add('models', () => registries.models())\n .add('sanitizers', registries.sanitizers())\n .add('validators', registries.validators());\n },\n async register(strapi) {\n await loadApplicationContext(strapi);\n\n strapi.get('hooks').set('strapi::content-types.beforeSync', hooks.createAsyncParallelHook());\n strapi.get('hooks').set('strapi::content-types.afterSync', hooks.createAsyncParallelHook());\n\n // Content migration to enable draft and publish\n strapi.hook('strapi::content-types.beforeSync').register(syncMigrations.disable);\n strapi.hook('strapi::content-types.afterSync').register(syncMigrations.enable);\n\n // Database migrations\n strapi.db.migrations.providers.internal.register(discardDocumentDrafts);\n },\n});\n"],"names":["defineProvider","registries.contentTypes","registries.components","registries.services","registries.policies","registries.middlewares","registries.hooks","registries.controllers","registries.modules","registries.plugins","registries.customFields","registries.apis","registries.models","registries.sanitizers","registries.validators","loadApplicationContext","hooks","syncMigrations.disable","syncMigrations.enable","discardDocumentDrafts"],"mappings":";;;;;;;;;;;;;;;;;;;;AAQA,MAAA,aAAeA,wBAAe;AAAA,EAC5B,KAAK,QAAQ;AAER,WAAA,IAAI,iBAAiB,MAAMC,aAAyB,CAAA,EACpD,IAAI,cAAc,MAAMC,WAAuB,CAAA,EAC/C,IAAI,YAAY,MAAMC,SAAoB,MAAM,CAAC,EACjD,IAAI,YAAY,MAAMC,SAAqB,CAAA,EAC3C,IAAI,eAAe,MAAMC,YAAuB,CAAC,EACjD,IAAI,SAAS,MAAMC,OAAkB,EACrC,IAAI,eAAe,MAAMC,YAAuB,MAAM,CAAC,EACvD,IAAI,WAAW,MAAMC,QAAmB,MAAM,CAAC,EAC/C,IAAI,WAAW,MAAMC,QAAmB,MAAM,CAAC,EAC/C,IAAI,iBAAiB,MAAMC,aAAwB,MAAM,CAAC,EAC1D,IAAI,QAAQ,MAAMC,KAAgB,MAAM,CAAC,EACzC,IAAI,UAAU,MAAMC,gBAAmB,CAAA,EACvC,IAAI,cAAcC,YAAuB,EACzC,IAAI,cAAcC,WAAW,CAAY;AAAA,EAC9C;AAAA,EACA,MAAM,SAAS,QAAQ;AACrB,UAAMC,MAAAA,uBAAuB,MAAM;AAEnC,WAAO,IAAI,OAAO,EAAE,IAAI,oCAAoCC,YAAA,MAAM,yBAAyB;AAC3F,WAAO,IAAI,OAAO,EAAE,IAAI,mCAAmCA,YAAA,MAAM,yBAAyB;AAG1F,WAAO,KAAK,kCAAkC,EAAE,SAASC,QAAsB,OAAA;AAC/E,WAAO,KAAK,iCAAiC,EAAE,SAASC,QAAqB,MAAA;AAG7E,WAAO,GAAG,WAAW,UAAU,SAAS,SAASC,oBAAAA,qBAAqB;AAAA,EACxE;AACF,CAAC;;"}
@@ -15,7 +15,7 @@ import sanitizersRegistry from "../registries/sanitizers.mjs";
15
15
  import validatorsRegistry from "../registries/validators.mjs";
16
16
  import { registry } from "../registries/models.mjs";
17
17
  import { loadApplicationContext } from "../loaders/index.mjs";
18
- import { disable as disableDraftAndPublish, enable as enableDraftAndPublish } from "../migrations/draft-publish.mjs";
18
+ import { disable, enable } from "../migrations/index.mjs";
19
19
  import { discardDocumentDrafts } from "../migrations/database/5.0.0-discard-drafts.mjs";
20
20
  const registries = defineProvider({
21
21
  init(strapi) {
@@ -25,8 +25,8 @@ const registries = defineProvider({
25
25
  await loadApplicationContext(strapi);
26
26
  strapi.get("hooks").set("strapi::content-types.beforeSync", hooks.createAsyncParallelHook());
27
27
  strapi.get("hooks").set("strapi::content-types.afterSync", hooks.createAsyncParallelHook());
28
- strapi.hook("strapi::content-types.beforeSync").register(disableDraftAndPublish);
29
- strapi.hook("strapi::content-types.afterSync").register(enableDraftAndPublish);
28
+ strapi.hook("strapi::content-types.beforeSync").register(disable);
29
+ strapi.hook("strapi::content-types.afterSync").register(enable);
30
30
  strapi.db.migrations.providers.internal.register(discardDocumentDrafts);
31
31
  }
32
32
  });
@@ -1 +1 @@
1
- {"version":3,"file":"registries.mjs","sources":["../../src/providers/registries.ts"],"sourcesContent":["import { hooks } from '@strapi/utils';\n\nimport { defineProvider } from './provider';\nimport * as registries from '../registries';\nimport { loadApplicationContext } from '../loaders';\nimport * as draftAndPublishSync from '../migrations/draft-publish';\nimport { discardDocumentDrafts } from '../migrations/database/5.0.0-discard-drafts';\n\nexport default defineProvider({\n init(strapi) {\n strapi\n .add('content-types', () => registries.contentTypes())\n .add('components', () => registries.components())\n .add('services', () => registries.services(strapi))\n .add('policies', () => registries.policies())\n .add('middlewares', () => registries.middlewares())\n .add('hooks', () => registries.hooks())\n .add('controllers', () => registries.controllers(strapi))\n .add('modules', () => registries.modules(strapi))\n .add('plugins', () => registries.plugins(strapi))\n .add('custom-fields', () => registries.customFields(strapi))\n .add('apis', () => registries.apis(strapi))\n .add('models', () => registries.models())\n .add('sanitizers', registries.sanitizers())\n .add('validators', registries.validators());\n },\n async register(strapi) {\n await loadApplicationContext(strapi);\n\n strapi.get('hooks').set('strapi::content-types.beforeSync', hooks.createAsyncParallelHook());\n strapi.get('hooks').set('strapi::content-types.afterSync', hooks.createAsyncParallelHook());\n\n // Content migration to enable draft and publish\n strapi.hook('strapi::content-types.beforeSync').register(draftAndPublishSync.disable);\n strapi.hook('strapi::content-types.afterSync').register(draftAndPublishSync.enable);\n\n // Database migrations\n strapi.db.migrations.providers.internal.register(discardDocumentDrafts);\n },\n});\n"],"names":["registries.contentTypes","registries.components","registries.services","registries.policies","registries.middlewares","registries.hooks","registries.controllers","registries.modules","registries.plugins","registries.customFields","registries.apis","registries.models","registries.sanitizers","registries.validators","draftAndPublishSync.disable","draftAndPublishSync.enable"],"mappings":";;;;;;;;;;;;;;;;;;;AAQA,MAAA,aAAe,eAAe;AAAA,EAC5B,KAAK,QAAQ;AAER,WAAA,IAAI,iBAAiB,MAAMA,qBAAyB,CAAA,EACpD,IAAI,cAAc,MAAMC,mBAAuB,CAAA,EAC/C,IAAI,YAAY,MAAMC,iBAAoB,MAAM,CAAC,EACjD,IAAI,YAAY,MAAMC,iBAAqB,CAAA,EAC3C,IAAI,eAAe,MAAMC,oBAAuB,CAAC,EACjD,IAAI,SAAS,MAAMC,eAAkB,EACrC,IAAI,eAAe,MAAMC,oBAAuB,MAAM,CAAC,EACvD,IAAI,WAAW,MAAMC,gBAAmB,MAAM,CAAC,EAC/C,IAAI,WAAW,MAAMC,gBAAmB,MAAM,CAAC,EAC/C,IAAI,iBAAiB,MAAMC,qBAAwB,MAAM,CAAC,EAC1D,IAAI,QAAQ,MAAMC,aAAgB,MAAM,CAAC,EACzC,IAAI,UAAU,MAAMC,SAAmB,CAAA,EACvC,IAAI,cAAcC,oBAAuB,EACzC,IAAI,cAAcC,mBAAW,CAAY;AAAA,EAC9C;AAAA,EACA,MAAM,SAAS,QAAQ;AACrB,UAAM,uBAAuB,MAAM;AAEnC,WAAO,IAAI,OAAO,EAAE,IAAI,oCAAoC,MAAM,yBAAyB;AAC3F,WAAO,IAAI,OAAO,EAAE,IAAI,mCAAmC,MAAM,yBAAyB;AAG1F,WAAO,KAAK,kCAAkC,EAAE,SAASC,sBAA2B;AACpF,WAAO,KAAK,iCAAiC,EAAE,SAASC,qBAA0B;AAGlF,WAAO,GAAG,WAAW,UAAU,SAAS,SAAS,qBAAqB;AAAA,EACxE;AACF,CAAC;"}
1
+ {"version":3,"file":"registries.mjs","sources":["../../src/providers/registries.ts"],"sourcesContent":["import { hooks } from '@strapi/utils';\n\nimport { defineProvider } from './provider';\nimport * as registries from '../registries';\nimport { loadApplicationContext } from '../loaders';\nimport * as syncMigrations from '../migrations';\nimport { discardDocumentDrafts } from '../migrations/database/5.0.0-discard-drafts';\n\nexport default defineProvider({\n init(strapi) {\n strapi\n .add('content-types', () => registries.contentTypes())\n .add('components', () => registries.components())\n .add('services', () => registries.services(strapi))\n .add('policies', () => registries.policies())\n .add('middlewares', () => registries.middlewares())\n .add('hooks', () => registries.hooks())\n .add('controllers', () => registries.controllers(strapi))\n .add('modules', () => registries.modules(strapi))\n .add('plugins', () => registries.plugins(strapi))\n .add('custom-fields', () => registries.customFields(strapi))\n .add('apis', () => registries.apis(strapi))\n .add('models', () => registries.models())\n .add('sanitizers', registries.sanitizers())\n .add('validators', registries.validators());\n },\n async register(strapi) {\n await loadApplicationContext(strapi);\n\n strapi.get('hooks').set('strapi::content-types.beforeSync', hooks.createAsyncParallelHook());\n strapi.get('hooks').set('strapi::content-types.afterSync', hooks.createAsyncParallelHook());\n\n // Content migration to enable draft and publish\n strapi.hook('strapi::content-types.beforeSync').register(syncMigrations.disable);\n strapi.hook('strapi::content-types.afterSync').register(syncMigrations.enable);\n\n // Database migrations\n strapi.db.migrations.providers.internal.register(discardDocumentDrafts);\n },\n});\n"],"names":["registries.contentTypes","registries.components","registries.services","registries.policies","registries.middlewares","registries.hooks","registries.controllers","registries.modules","registries.plugins","registries.customFields","registries.apis","registries.models","registries.sanitizers","registries.validators","syncMigrations.disable","syncMigrations.enable"],"mappings":";;;;;;;;;;;;;;;;;;;AAQA,MAAA,aAAe,eAAe;AAAA,EAC5B,KAAK,QAAQ;AAER,WAAA,IAAI,iBAAiB,MAAMA,qBAAyB,CAAA,EACpD,IAAI,cAAc,MAAMC,mBAAuB,CAAA,EAC/C,IAAI,YAAY,MAAMC,iBAAoB,MAAM,CAAC,EACjD,IAAI,YAAY,MAAMC,iBAAqB,CAAA,EAC3C,IAAI,eAAe,MAAMC,oBAAuB,CAAC,EACjD,IAAI,SAAS,MAAMC,eAAkB,EACrC,IAAI,eAAe,MAAMC,oBAAuB,MAAM,CAAC,EACvD,IAAI,WAAW,MAAMC,gBAAmB,MAAM,CAAC,EAC/C,IAAI,WAAW,MAAMC,gBAAmB,MAAM,CAAC,EAC/C,IAAI,iBAAiB,MAAMC,qBAAwB,MAAM,CAAC,EAC1D,IAAI,QAAQ,MAAMC,aAAgB,MAAM,CAAC,EACzC,IAAI,UAAU,MAAMC,SAAmB,CAAA,EACvC,IAAI,cAAcC,oBAAuB,EACzC,IAAI,cAAcC,mBAAW,CAAY;AAAA,EAC9C;AAAA,EACA,MAAM,SAAS,QAAQ;AACrB,UAAM,uBAAuB,MAAM;AAEnC,WAAO,IAAI,OAAO,EAAE,IAAI,oCAAoC,MAAM,yBAAyB;AAC3F,WAAO,IAAI,OAAO,EAAE,IAAI,mCAAmC,MAAM,yBAAyB;AAG1F,WAAO,KAAK,kCAAkC,EAAE,SAASC,OAAsB;AAC/E,WAAO,KAAK,iCAAiC,EAAE,SAASC,MAAqB;AAG7E,WAAO,GAAG,WAAW,UAAU,SAAS,SAAS,qBAAqB;AAAA,EACxE;AACF,CAAC;"}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const _ = require("lodash/fp");
2
+ const fp = require("lodash/fp");
3
3
  const apisRegistry = (strapi) => {
4
4
  const apis = {};
5
5
  return {
@@ -10,7 +10,7 @@ const apisRegistry = (strapi) => {
10
10
  return apis;
11
11
  },
12
12
  add(apiName, apiConfig) {
13
- if (_.has(apiName, apis)) {
13
+ if (fp.has(apiName, apis)) {
14
14
  throw new Error(`API ${apiName} has already been registered.`);
15
15
  }
16
16
  const api = strapi.get("modules").add(`api::${apiName}`, apiConfig);
@@ -1 +1 @@
1
- {"version":3,"file":"apis.js","sources":["../../src/registries/apis.ts"],"sourcesContent":["import { has } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\n\nconst apisRegistry = (strapi: Core.Strapi) => {\n const apis: Record<string, unknown> = {};\n\n return {\n get(name: string) {\n return apis[name];\n },\n getAll() {\n return apis;\n },\n add(apiName: string, apiConfig: unknown) {\n if (has(apiName, apis)) {\n throw new Error(`API ${apiName} has already been registered.`);\n }\n\n const api = strapi.get('modules').add(`api::${apiName}`, apiConfig);\n\n apis[apiName] = api;\n\n return apis[apiName];\n },\n };\n};\n\nexport default apisRegistry;\n"],"names":["has"],"mappings":";;AAGM,MAAA,eAAe,CAAC,WAAwB;AAC5C,QAAM,OAAgC,CAAA;AAE/B,SAAA;AAAA,IACL,IAAI,MAAc;AAChB,aAAO,KAAK,IAAI;AAAA,IAClB;AAAA,IACA,SAAS;AACA,aAAA;AAAA,IACT;AAAA,IACA,IAAI,SAAiB,WAAoB;AACnC,UAAAA,EAAA,IAAI,SAAS,IAAI,GAAG;AACtB,cAAM,IAAI,MAAM,OAAO,OAAO,+BAA+B;AAAA,MAC/D;AAEM,YAAA,MAAM,OAAO,IAAI,SAAS,EAAE,IAAI,QAAQ,OAAO,IAAI,SAAS;AAElE,WAAK,OAAO,IAAI;AAEhB,aAAO,KAAK,OAAO;AAAA,IACrB;AAAA,EAAA;AAEJ;;"}
1
+ {"version":3,"file":"apis.js","sources":["../../src/registries/apis.ts"],"sourcesContent":["import { has } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\n\nconst apisRegistry = (strapi: Core.Strapi) => {\n const apis: Record<string, unknown> = {};\n\n return {\n get(name: string) {\n return apis[name];\n },\n getAll() {\n return apis;\n },\n add(apiName: string, apiConfig: unknown) {\n if (has(apiName, apis)) {\n throw new Error(`API ${apiName} has already been registered.`);\n }\n\n const api = strapi.get('modules').add(`api::${apiName}`, apiConfig);\n\n apis[apiName] = api;\n\n return apis[apiName];\n },\n };\n};\n\nexport default apisRegistry;\n"],"names":["has"],"mappings":";;AAGM,MAAA,eAAe,CAAC,WAAwB;AAC5C,QAAM,OAAgC,CAAA;AAE/B,SAAA;AAAA,IACL,IAAI,MAAc;AAChB,aAAO,KAAK,IAAI;AAAA,IAClB;AAAA,IACA,SAAS;AACA,aAAA;AAAA,IACT;AAAA,IACA,IAAI,SAAiB,WAAoB;AACnC,UAAAA,GAAA,IAAI,SAAS,IAAI,GAAG;AACtB,cAAM,IAAI,MAAM,OAAO,OAAO,+BAA+B;AAAA,MAC/D;AAEM,YAAA,MAAM,OAAO,IAAI,SAAS,EAAE,IAAI,QAAQ,OAAO,IAAI,SAAS;AAElE,WAAK,OAAO,IAAI;AAEhB,aAAO,KAAK,OAAO;AAAA,IACrB;AAAA,EAAA;AAEJ;;"}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const _ = require("lodash/fp");
2
+ const fp = require("lodash/fp");
3
3
  const componentsRegistry = () => {
4
4
  const components = {};
5
5
  return {
@@ -25,7 +25,7 @@ const componentsRegistry = () => {
25
25
  * Registers a component
26
26
  */
27
27
  set(uid, component) {
28
- if (_.has(uid, components)) {
28
+ if (fp.has(uid, components)) {
29
29
  throw new Error(`Component ${uid} has already been registered.`);
30
30
  }
31
31
  components[uid] = component;
@@ -1 +1 @@
1
- {"version":3,"file":"components.js","sources":["../../src/registries/components.ts"],"sourcesContent":["import { has } from 'lodash/fp';\nimport type { Struct, UID } from '@strapi/types';\n\nconst componentsRegistry = () => {\n const components: Record<UID.Component, Struct.ComponentSchema> = {};\n\n return {\n /**\n * Returns this list of registered components uids\n */\n keys(): UID.Component[] {\n return Object.keys(components) as UID.Component[];\n },\n\n /**\n * Returns the instance of a component. Instantiate the component if not already done\n */\n get(uid: UID.Component) {\n return components[uid];\n },\n\n /**\n * Returns a map with all the components in a namespace\n */\n getAll() {\n return components;\n },\n\n /**\n * Registers a component\n */\n set(uid: UID.Component, component: Struct.ComponentSchema) {\n if (has(uid, components)) {\n throw new Error(`Component ${uid} has already been registered.`);\n }\n\n components[uid] = component;\n\n return this;\n },\n\n /**\n * Registers a map of components for a specific namespace\n */\n add(newComponents: Record<UID.Component, Struct.ComponentSchema>) {\n for (const uid of Object.keys(newComponents) as UID.Component[]) {\n this.set(uid, newComponents[uid]);\n }\n },\n };\n};\n\nexport default componentsRegistry;\n"],"names":["has"],"mappings":";;AAGA,MAAM,qBAAqB,MAAM;AAC/B,QAAM,aAA4D,CAAA;AAE3D,SAAA;AAAA;AAAA;AAAA;AAAA,IAIL,OAAwB;AACf,aAAA,OAAO,KAAK,UAAU;AAAA,IAC/B;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAAoB;AACtB,aAAO,WAAW,GAAG;AAAA,IACvB;AAAA;AAAA;AAAA;AAAA,IAKA,SAAS;AACA,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAAoB,WAAmC;AACrD,UAAAA,EAAA,IAAI,KAAK,UAAU,GAAG;AACxB,cAAM,IAAI,MAAM,aAAa,GAAG,+BAA+B;AAAA,MACjE;AAEA,iBAAW,GAAG,IAAI;AAEX,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,eAA8D;AAChE,iBAAW,OAAO,OAAO,KAAK,aAAa,GAAsB;AAC/D,aAAK,IAAI,KAAK,cAAc,GAAG,CAAC;AAAA,MAClC;AAAA,IACF;AAAA,EAAA;AAEJ;;"}
1
+ {"version":3,"file":"components.js","sources":["../../src/registries/components.ts"],"sourcesContent":["import { has } from 'lodash/fp';\nimport type { Struct, UID } from '@strapi/types';\n\nconst componentsRegistry = () => {\n const components: Record<UID.Component, Struct.ComponentSchema> = {};\n\n return {\n /**\n * Returns this list of registered components uids\n */\n keys(): UID.Component[] {\n return Object.keys(components) as UID.Component[];\n },\n\n /**\n * Returns the instance of a component. Instantiate the component if not already done\n */\n get(uid: UID.Component) {\n return components[uid];\n },\n\n /**\n * Returns a map with all the components in a namespace\n */\n getAll() {\n return components;\n },\n\n /**\n * Registers a component\n */\n set(uid: UID.Component, component: Struct.ComponentSchema) {\n if (has(uid, components)) {\n throw new Error(`Component ${uid} has already been registered.`);\n }\n\n components[uid] = component;\n\n return this;\n },\n\n /**\n * Registers a map of components for a specific namespace\n */\n add(newComponents: Record<UID.Component, Struct.ComponentSchema>) {\n for (const uid of Object.keys(newComponents) as UID.Component[]) {\n this.set(uid, newComponents[uid]);\n }\n },\n };\n};\n\nexport default componentsRegistry;\n"],"names":["has"],"mappings":";;AAGA,MAAM,qBAAqB,MAAM;AAC/B,QAAM,aAA4D,CAAA;AAE3D,SAAA;AAAA;AAAA;AAAA;AAAA,IAIL,OAAwB;AACf,aAAA,OAAO,KAAK,UAAU;AAAA,IAC/B;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAAoB;AACtB,aAAO,WAAW,GAAG;AAAA,IACvB;AAAA;AAAA;AAAA;AAAA,IAKA,SAAS;AACA,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAAoB,WAAmC;AACrD,UAAAA,GAAA,IAAI,KAAK,UAAU,GAAG;AACxB,cAAM,IAAI,MAAM,aAAa,GAAG,+BAA+B;AAAA,MACjE;AAEA,iBAAW,GAAG,IAAI;AAEX,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,eAA8D;AAChE,iBAAW,OAAO,OAAO,KAAK,aAAa,GAAsB;AAC/D,aAAK,IAAI,KAAK,cAAc,GAAG,CAAC;AAAA,MAClC;AAAA,IACF;AAAA,EAAA;AAEJ;;"}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const _ = require("lodash/fp");
2
+ const fp = require("lodash/fp");
3
3
  const index = require("../domain/content-type/index.js");
4
4
  const namespace = require("./namespace.js");
5
5
  const validateKeySameToSingularName = (contentTypes) => {
@@ -31,7 +31,7 @@ const contentTypesRegistry = () => {
31
31
  * Returns a map with all the contentTypes in a namespace
32
32
  */
33
33
  getAll(namespace$1) {
34
- return _.pickBy((_2, uid) => namespace.hasNamespace(uid, namespace$1))(contentTypes);
34
+ return fp.pickBy((_, uid) => namespace.hasNamespace(uid, namespace$1))(contentTypes);
35
35
  },
36
36
  /**
37
37
  * Registers a contentType
@@ -47,7 +47,7 @@ const contentTypesRegistry = () => {
47
47
  validateKeySameToSingularName(newContentTypes);
48
48
  for (const rawCtName of Object.keys(newContentTypes)) {
49
49
  const uid = namespace.addNamespace(rawCtName, namespace$1);
50
- if (_.has(uid, contentTypes)) {
50
+ if (fp.has(uid, contentTypes)) {
51
51
  throw new Error(`Content-type ${uid} has already been registered.`);
52
52
  }
53
53
  contentTypes[uid] = index.createContentType(uid, newContentTypes[rawCtName]);
@@ -1 +1 @@
1
- {"version":3,"file":"content-types.js","sources":["../../src/registries/content-types.ts"],"sourcesContent":["import { pickBy, has } from 'lodash/fp';\nimport type { UID, Struct } from '@strapi/types';\nimport { createContentType, ContentTypeDefinition } from '../domain/content-type';\nimport { addNamespace, hasNamespace } from './namespace';\n\ntype ContentTypesInput = Record<string, ContentTypeDefinition>;\ntype ContentTypeExtendFn = (contentType: Struct.ContentTypeSchema) => Struct.ContentTypeSchema;\n\nconst validateKeySameToSingularName = (contentTypes: ContentTypesInput) => {\n for (const ctName of Object.keys(contentTypes)) {\n const contentType = contentTypes[ctName];\n\n if (ctName !== contentType.schema.info.singularName) {\n throw new Error(\n `The key of the content-type should be the same as its singularName. Found ${ctName} and ${contentType.schema.info.singularName}.`\n );\n }\n }\n};\n\nconst contentTypesRegistry = () => {\n const contentTypes: Record<string, Struct.ContentTypeSchema> = {};\n\n return {\n /**\n * Returns this list of registered contentTypes uids\n */\n keys() {\n return Object.keys(contentTypes);\n },\n\n /**\n * Returns the instance of a contentType. Instantiate the contentType if not already done\n */\n get(uid: UID.ContentType) {\n return contentTypes[uid];\n },\n\n /**\n * Returns a map with all the contentTypes in a namespace\n */\n getAll(namespace: string) {\n return pickBy((_, uid) => hasNamespace(uid, namespace))(contentTypes);\n },\n\n /**\n * Registers a contentType\n */\n set(uid: UID.ContentType, contentType: Struct.ContentTypeSchema) {\n contentTypes[uid] = contentType;\n return this;\n },\n\n /**\n * Registers a map of contentTypes for a specific namespace\n */\n add(namespace: string, newContentTypes: ContentTypesInput) {\n validateKeySameToSingularName(newContentTypes);\n\n for (const rawCtName of Object.keys(newContentTypes)) {\n const uid = addNamespace(rawCtName, namespace);\n\n if (has(uid, contentTypes)) {\n throw new Error(`Content-type ${uid} has already been registered.`);\n }\n\n contentTypes[uid] = createContentType(uid, newContentTypes[rawCtName]);\n }\n },\n\n /**\n * Wraps a contentType to extend it\n */\n extend(ctUID: UID.ContentType, extendFn: ContentTypeExtendFn) {\n const currentContentType = this.get(ctUID);\n\n if (!currentContentType) {\n throw new Error(`Content-Type ${ctUID} doesn't exist`);\n }\n\n extendFn(currentContentType);\n\n return this;\n },\n };\n};\n\nexport default contentTypesRegistry;\n"],"names":["namespace","pickBy","_","hasNamespace","addNamespace","has","createContentType"],"mappings":";;;;AAQA,MAAM,gCAAgC,CAAC,iBAAoC;AACzE,aAAW,UAAU,OAAO,KAAK,YAAY,GAAG;AACxC,UAAA,cAAc,aAAa,MAAM;AAEvC,QAAI,WAAW,YAAY,OAAO,KAAK,cAAc;AACnD,YAAM,IAAI;AAAA,QACR,6EAA6E,MAAM,QAAQ,YAAY,OAAO,KAAK,YAAY;AAAA,MAAA;AAAA,IAEnI;AAAA,EACF;AACF;AAEA,MAAM,uBAAuB,MAAM;AACjC,QAAM,eAAyD,CAAA;AAExD,SAAA;AAAA;AAAA;AAAA;AAAA,IAIL,OAAO;AACE,aAAA,OAAO,KAAK,YAAY;AAAA,IACjC;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAAsB;AACxB,aAAO,aAAa,GAAG;AAAA,IACzB;AAAA;AAAA;AAAA;AAAA,IAKA,OAAOA,aAAmB;AACjB,aAAAC,EAAA,OAAO,CAACC,IAAG,QAAQC,UAAAA,aAAa,KAAKH,WAAS,CAAC,EAAE,YAAY;AAAA,IACtE;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAAsB,aAAuC;AAC/D,mBAAa,GAAG,IAAI;AACb,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,IAAIA,aAAmB,iBAAoC;AACzD,oCAA8B,eAAe;AAE7C,iBAAW,aAAa,OAAO,KAAK,eAAe,GAAG;AAC9C,cAAA,MAAMI,UAAAA,aAAa,WAAWJ,WAAS;AAEzC,YAAAK,EAAA,IAAI,KAAK,YAAY,GAAG;AAC1B,gBAAM,IAAI,MAAM,gBAAgB,GAAG,+BAA+B;AAAA,QACpE;AAEA,qBAAa,GAAG,IAAIC,MAAA,kBAAkB,KAAK,gBAAgB,SAAS,CAAC;AAAA,MACvE;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA,OAAO,OAAwB,UAA+B;AACtD,YAAA,qBAAqB,KAAK,IAAI,KAAK;AAEzC,UAAI,CAAC,oBAAoB;AACvB,cAAM,IAAI,MAAM,gBAAgB,KAAK,gBAAgB;AAAA,MACvD;AAEA,eAAS,kBAAkB;AAEpB,aAAA;AAAA,IACT;AAAA,EAAA;AAEJ;;"}
1
+ {"version":3,"file":"content-types.js","sources":["../../src/registries/content-types.ts"],"sourcesContent":["import { pickBy, has } from 'lodash/fp';\nimport type { UID, Struct } from '@strapi/types';\nimport { createContentType, ContentTypeDefinition } from '../domain/content-type';\nimport { addNamespace, hasNamespace } from './namespace';\n\ntype ContentTypesInput = Record<string, ContentTypeDefinition>;\ntype ContentTypeExtendFn = (contentType: Struct.ContentTypeSchema) => Struct.ContentTypeSchema;\n\nconst validateKeySameToSingularName = (contentTypes: ContentTypesInput) => {\n for (const ctName of Object.keys(contentTypes)) {\n const contentType = contentTypes[ctName];\n\n if (ctName !== contentType.schema.info.singularName) {\n throw new Error(\n `The key of the content-type should be the same as its singularName. Found ${ctName} and ${contentType.schema.info.singularName}.`\n );\n }\n }\n};\n\nconst contentTypesRegistry = () => {\n const contentTypes: Record<string, Struct.ContentTypeSchema> = {};\n\n return {\n /**\n * Returns this list of registered contentTypes uids\n */\n keys() {\n return Object.keys(contentTypes);\n },\n\n /**\n * Returns the instance of a contentType. Instantiate the contentType if not already done\n */\n get(uid: UID.ContentType) {\n return contentTypes[uid];\n },\n\n /**\n * Returns a map with all the contentTypes in a namespace\n */\n getAll(namespace: string) {\n return pickBy((_, uid) => hasNamespace(uid, namespace))(contentTypes);\n },\n\n /**\n * Registers a contentType\n */\n set(uid: UID.ContentType, contentType: Struct.ContentTypeSchema) {\n contentTypes[uid] = contentType;\n return this;\n },\n\n /**\n * Registers a map of contentTypes for a specific namespace\n */\n add(namespace: string, newContentTypes: ContentTypesInput) {\n validateKeySameToSingularName(newContentTypes);\n\n for (const rawCtName of Object.keys(newContentTypes)) {\n const uid = addNamespace(rawCtName, namespace);\n\n if (has(uid, contentTypes)) {\n throw new Error(`Content-type ${uid} has already been registered.`);\n }\n\n contentTypes[uid] = createContentType(uid, newContentTypes[rawCtName]);\n }\n },\n\n /**\n * Wraps a contentType to extend it\n */\n extend(ctUID: UID.ContentType, extendFn: ContentTypeExtendFn) {\n const currentContentType = this.get(ctUID);\n\n if (!currentContentType) {\n throw new Error(`Content-Type ${ctUID} doesn't exist`);\n }\n\n extendFn(currentContentType);\n\n return this;\n },\n };\n};\n\nexport default contentTypesRegistry;\n"],"names":["namespace","pickBy","hasNamespace","addNamespace","has","createContentType"],"mappings":";;;;AAQA,MAAM,gCAAgC,CAAC,iBAAoC;AACzE,aAAW,UAAU,OAAO,KAAK,YAAY,GAAG;AACxC,UAAA,cAAc,aAAa,MAAM;AAEvC,QAAI,WAAW,YAAY,OAAO,KAAK,cAAc;AACnD,YAAM,IAAI;AAAA,QACR,6EAA6E,MAAM,QAAQ,YAAY,OAAO,KAAK,YAAY;AAAA,MAAA;AAAA,IAEnI;AAAA,EACF;AACF;AAEA,MAAM,uBAAuB,MAAM;AACjC,QAAM,eAAyD,CAAA;AAExD,SAAA;AAAA;AAAA;AAAA;AAAA,IAIL,OAAO;AACE,aAAA,OAAO,KAAK,YAAY;AAAA,IACjC;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAAsB;AACxB,aAAO,aAAa,GAAG;AAAA,IACzB;AAAA;AAAA;AAAA;AAAA,IAKA,OAAOA,aAAmB;AACjB,aAAAC,GAAA,OAAO,CAAC,GAAG,QAAQC,UAAAA,aAAa,KAAKF,WAAS,CAAC,EAAE,YAAY;AAAA,IACtE;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAAsB,aAAuC;AAC/D,mBAAa,GAAG,IAAI;AACb,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,IAAIA,aAAmB,iBAAoC;AACzD,oCAA8B,eAAe;AAE7C,iBAAW,aAAa,OAAO,KAAK,eAAe,GAAG;AAC9C,cAAA,MAAMG,UAAAA,aAAa,WAAWH,WAAS;AAEzC,YAAAI,GAAA,IAAI,KAAK,YAAY,GAAG;AAC1B,gBAAM,IAAI,MAAM,gBAAgB,GAAG,+BAA+B;AAAA,QACpE;AAEA,qBAAa,GAAG,IAAIC,MAAA,kBAAkB,KAAK,gBAAgB,SAAS,CAAC;AAAA,MACvE;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA,OAAO,OAAwB,UAA+B;AACtD,YAAA,qBAAqB,KAAK,IAAI,KAAK;AAEzC,UAAI,CAAC,oBAAoB;AACvB,cAAM,IAAI,MAAM,gBAAgB,KAAK,gBAAgB;AAAA,MACvD;AAEA,eAAS,kBAAkB;AAEpB,aAAA;AAAA,IACT;AAAA,EAAA;AAEJ;;"}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const _ = require("lodash/fp");
2
+ const fp = require("lodash/fp");
3
3
  const namespace = require("./namespace.js");
4
4
  const controllersRegistry = (strapi) => {
5
5
  const controllers = {};
@@ -28,7 +28,7 @@ const controllersRegistry = (strapi) => {
28
28
  * Returns a map with all the controller in a namespace
29
29
  */
30
30
  getAll(namespace$1) {
31
- const filteredControllers = _.pickBy((_2, uid) => namespace.hasNamespace(uid, namespace$1))(controllers);
31
+ const filteredControllers = fp.pickBy((_, uid) => namespace.hasNamespace(uid, namespace$1))(controllers);
32
32
  const map = {};
33
33
  for (const uid of Object.keys(filteredControllers)) {
34
34
  Object.defineProperty(map, uid, {
@@ -55,7 +55,7 @@ const controllersRegistry = (strapi) => {
55
55
  for (const controllerName of Object.keys(newControllers)) {
56
56
  const controller = newControllers[controllerName];
57
57
  const uid = namespace.addNamespace(controllerName, namespace$1);
58
- if (_.has(uid, controllers)) {
58
+ if (fp.has(uid, controllers)) {
59
59
  throw new Error(`Controller ${uid} has already been registered.`);
60
60
  }
61
61
  controllers[uid] = controller;
@@ -1 +1 @@
1
- {"version":3,"file":"controllers.js","sources":["../../src/registries/controllers.ts"],"sourcesContent":["import { pickBy, has } from 'lodash/fp';\nimport type { Core, UID } from '@strapi/types';\nimport { addNamespace, hasNamespace } from './namespace';\n\nexport type ControllerFactory =\n | ((params: { strapi: Core.Strapi }) => Core.Controller)\n | Core.Controller;\nexport type ControllerFactoryMap = Record<UID.Controller, ControllerFactory>;\nexport type ControllerMap = Record<UID.Controller, Core.Controller>;\nexport type ControllerExtendFn = (service: Core.Controller) => Core.Controller;\n\nconst controllersRegistry = (strapi: Core.Strapi) => {\n const controllers: ControllerFactoryMap = {};\n const instances: ControllerMap = {};\n\n return {\n /**\n * Returns this list of registered controllers uids\n */\n keys() {\n return Object.keys(controllers);\n },\n\n /**\n * Returns the instance of a controller. Instantiate the controller if not already done\n */\n get(uid: UID.Controller) {\n if (instances[uid]) {\n return instances[uid];\n }\n\n const controller = controllers[uid];\n\n if (controller) {\n instances[uid] = typeof controller === 'function' ? controller({ strapi }) : controller;\n return instances[uid];\n }\n },\n\n /**\n * Returns a map with all the controller in a namespace\n */\n getAll(namespace: string) {\n const filteredControllers = pickBy((_, uid) => hasNamespace(uid, namespace))(controllers);\n\n const map = {};\n for (const uid of Object.keys(filteredControllers) as UID.Controller[]) {\n Object.defineProperty(map, uid, {\n enumerable: true,\n get: () => {\n return this.get(uid);\n },\n });\n }\n\n return map;\n },\n\n /**\n * Registers a controller\n */\n set(uid: UID.Controller, value: ControllerFactory) {\n controllers[uid] = value;\n delete instances[uid];\n return this;\n },\n\n /**\n * Registers a map of controllers for a specific namespace\n */\n add(namespace: string, newControllers: ControllerFactoryMap) {\n for (const controllerName of Object.keys(newControllers) as UID.Controller[]) {\n const controller = newControllers[controllerName];\n const uid = addNamespace(controllerName, namespace) as UID.Controller;\n\n if (has(uid, controllers)) {\n throw new Error(`Controller ${uid} has already been registered.`);\n }\n\n controllers[uid] = controller;\n }\n\n return this;\n },\n\n /**\n * Wraps a controller to extend it\n */\n extend(controllerUID: UID.Controller, extendFn: ControllerExtendFn) {\n const currentController = this.get(controllerUID);\n\n if (!currentController) {\n throw new Error(`Controller ${controllerUID} doesn't exist`);\n }\n\n const newController = extendFn(currentController);\n instances[controllerUID] = newController;\n\n return this;\n },\n };\n};\n\nexport default controllersRegistry;\n"],"names":["namespace","pickBy","_","hasNamespace","addNamespace","has"],"mappings":";;;AAWM,MAAA,sBAAsB,CAAC,WAAwB;AACnD,QAAM,cAAoC,CAAA;AAC1C,QAAM,YAA2B,CAAA;AAE1B,SAAA;AAAA;AAAA;AAAA;AAAA,IAIL,OAAO;AACE,aAAA,OAAO,KAAK,WAAW;AAAA,IAChC;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAAqB;AACnB,UAAA,UAAU,GAAG,GAAG;AAClB,eAAO,UAAU,GAAG;AAAA,MACtB;AAEM,YAAA,aAAa,YAAY,GAAG;AAElC,UAAI,YAAY;AACJ,kBAAA,GAAG,IAAI,OAAO,eAAe,aAAa,WAAW,EAAE,QAAQ,IAAI;AAC7E,eAAO,UAAU,GAAG;AAAA,MACtB;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA,OAAOA,aAAmB;AAClB,YAAA,sBAAsBC,EAAAA,OAAO,CAACC,IAAG,QAAQC,uBAAa,KAAKH,WAAS,CAAC,EAAE,WAAW;AAExF,YAAM,MAAM,CAAA;AACZ,iBAAW,OAAO,OAAO,KAAK,mBAAmB,GAAuB;AAC/D,eAAA,eAAe,KAAK,KAAK;AAAA,UAC9B,YAAY;AAAA,UACZ,KAAK,MAAM;AACF,mBAAA,KAAK,IAAI,GAAG;AAAA,UACrB;AAAA,QAAA,CACD;AAAA,MACH;AAEO,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAAqB,OAA0B;AACjD,kBAAY,GAAG,IAAI;AACnB,aAAO,UAAU,GAAG;AACb,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,IAAIA,aAAmB,gBAAsC;AAC3D,iBAAW,kBAAkB,OAAO,KAAK,cAAc,GAAuB;AACtE,cAAA,aAAa,eAAe,cAAc;AAC1C,cAAA,MAAMI,UAAAA,aAAa,gBAAgBJ,WAAS;AAE9C,YAAAK,EAAA,IAAI,KAAK,WAAW,GAAG;AACzB,gBAAM,IAAI,MAAM,cAAc,GAAG,+BAA+B;AAAA,QAClE;AAEA,oBAAY,GAAG,IAAI;AAAA,MACrB;AAEO,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,OAAO,eAA+B,UAA8B;AAC5D,YAAA,oBAAoB,KAAK,IAAI,aAAa;AAEhD,UAAI,CAAC,mBAAmB;AACtB,cAAM,IAAI,MAAM,cAAc,aAAa,gBAAgB;AAAA,MAC7D;AAEM,YAAA,gBAAgB,SAAS,iBAAiB;AAChD,gBAAU,aAAa,IAAI;AAEpB,aAAA;AAAA,IACT;AAAA,EAAA;AAEJ;;"}
1
+ {"version":3,"file":"controllers.js","sources":["../../src/registries/controllers.ts"],"sourcesContent":["import { pickBy, has } from 'lodash/fp';\nimport type { Core, UID } from '@strapi/types';\nimport { addNamespace, hasNamespace } from './namespace';\n\nexport type ControllerFactory =\n | ((params: { strapi: Core.Strapi }) => Core.Controller)\n | Core.Controller;\nexport type ControllerFactoryMap = Record<UID.Controller, ControllerFactory>;\nexport type ControllerMap = Record<UID.Controller, Core.Controller>;\nexport type ControllerExtendFn = (service: Core.Controller) => Core.Controller;\n\nconst controllersRegistry = (strapi: Core.Strapi) => {\n const controllers: ControllerFactoryMap = {};\n const instances: ControllerMap = {};\n\n return {\n /**\n * Returns this list of registered controllers uids\n */\n keys() {\n return Object.keys(controllers);\n },\n\n /**\n * Returns the instance of a controller. Instantiate the controller if not already done\n */\n get(uid: UID.Controller) {\n if (instances[uid]) {\n return instances[uid];\n }\n\n const controller = controllers[uid];\n\n if (controller) {\n instances[uid] = typeof controller === 'function' ? controller({ strapi }) : controller;\n return instances[uid];\n }\n },\n\n /**\n * Returns a map with all the controller in a namespace\n */\n getAll(namespace: string) {\n const filteredControllers = pickBy((_, uid) => hasNamespace(uid, namespace))(controllers);\n\n const map = {};\n for (const uid of Object.keys(filteredControllers) as UID.Controller[]) {\n Object.defineProperty(map, uid, {\n enumerable: true,\n get: () => {\n return this.get(uid);\n },\n });\n }\n\n return map;\n },\n\n /**\n * Registers a controller\n */\n set(uid: UID.Controller, value: ControllerFactory) {\n controllers[uid] = value;\n delete instances[uid];\n return this;\n },\n\n /**\n * Registers a map of controllers for a specific namespace\n */\n add(namespace: string, newControllers: ControllerFactoryMap) {\n for (const controllerName of Object.keys(newControllers) as UID.Controller[]) {\n const controller = newControllers[controllerName];\n const uid = addNamespace(controllerName, namespace) as UID.Controller;\n\n if (has(uid, controllers)) {\n throw new Error(`Controller ${uid} has already been registered.`);\n }\n\n controllers[uid] = controller;\n }\n\n return this;\n },\n\n /**\n * Wraps a controller to extend it\n */\n extend(controllerUID: UID.Controller, extendFn: ControllerExtendFn) {\n const currentController = this.get(controllerUID);\n\n if (!currentController) {\n throw new Error(`Controller ${controllerUID} doesn't exist`);\n }\n\n const newController = extendFn(currentController);\n instances[controllerUID] = newController;\n\n return this;\n },\n };\n};\n\nexport default controllersRegistry;\n"],"names":["namespace","pickBy","hasNamespace","addNamespace","has"],"mappings":";;;AAWM,MAAA,sBAAsB,CAAC,WAAwB;AACnD,QAAM,cAAoC,CAAA;AAC1C,QAAM,YAA2B,CAAA;AAE1B,SAAA;AAAA;AAAA;AAAA;AAAA,IAIL,OAAO;AACE,aAAA,OAAO,KAAK,WAAW;AAAA,IAChC;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAAqB;AACnB,UAAA,UAAU,GAAG,GAAG;AAClB,eAAO,UAAU,GAAG;AAAA,MACtB;AAEM,YAAA,aAAa,YAAY,GAAG;AAElC,UAAI,YAAY;AACJ,kBAAA,GAAG,IAAI,OAAO,eAAe,aAAa,WAAW,EAAE,QAAQ,IAAI;AAC7E,eAAO,UAAU,GAAG;AAAA,MACtB;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA,OAAOA,aAAmB;AAClB,YAAA,sBAAsBC,GAAAA,OAAO,CAAC,GAAG,QAAQC,uBAAa,KAAKF,WAAS,CAAC,EAAE,WAAW;AAExF,YAAM,MAAM,CAAA;AACZ,iBAAW,OAAO,OAAO,KAAK,mBAAmB,GAAuB;AAC/D,eAAA,eAAe,KAAK,KAAK;AAAA,UAC9B,YAAY;AAAA,UACZ,KAAK,MAAM;AACF,mBAAA,KAAK,IAAI,GAAG;AAAA,UACrB;AAAA,QAAA,CACD;AAAA,MACH;AAEO,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAAqB,OAA0B;AACjD,kBAAY,GAAG,IAAI;AACnB,aAAO,UAAU,GAAG;AACb,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,IAAIA,aAAmB,gBAAsC;AAC3D,iBAAW,kBAAkB,OAAO,KAAK,cAAc,GAAuB;AACtE,cAAA,aAAa,eAAe,cAAc;AAC1C,cAAA,MAAMG,UAAAA,aAAa,gBAAgBH,WAAS;AAE9C,YAAAI,GAAA,IAAI,KAAK,WAAW,GAAG;AACzB,gBAAM,IAAI,MAAM,cAAc,GAAG,+BAA+B;AAAA,QAClE;AAEA,oBAAY,GAAG,IAAI;AAAA,MACrB;AAEO,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,OAAO,eAA+B,UAA8B;AAC5D,YAAA,oBAAoB,KAAK,IAAI,aAAa;AAEhD,UAAI,CAAC,mBAAmB;AACtB,cAAM,IAAI,MAAM,cAAc,aAAa,gBAAgB;AAAA,MAC7D;AAEM,YAAA,gBAAgB,SAAS,iBAAiB;AAChD,gBAAU,aAAa,IAAI;AAEpB,aAAA;AAAA,IACT;AAAA,EAAA;AAEJ;;"}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const _ = require("lodash/fp");
2
+ const fp = require("lodash/fp");
3
3
  const ALLOWED_TYPES = [
4
4
  "biginteger",
5
5
  "boolean",
@@ -34,7 +34,7 @@ const customFieldsRegistry = (strapi) => {
34
34
  add(customField) {
35
35
  const customFieldList = Array.isArray(customField) ? customField : [customField];
36
36
  for (const cf of customFieldList) {
37
- if (!_.has("name", cf) || !_.has("type", cf)) {
37
+ if (!fp.has("name", cf) || !fp.has("type", cf)) {
38
38
  throw new Error(`Custom fields require a 'name' and 'type' key`);
39
39
  }
40
40
  const { name, plugin, type, inputSize } = cf;
@@ -48,7 +48,7 @@ const customFieldsRegistry = (strapi) => {
48
48
  throw new Error(`Custom field name: '${name}' is not a valid object key`);
49
49
  }
50
50
  if (inputSize) {
51
- if (!_.isPlainObject(inputSize) || !_.has("default", inputSize) || !_.has("isResizable", inputSize)) {
51
+ if (!fp.isPlainObject(inputSize) || !fp.has("default", inputSize) || !fp.has("isResizable", inputSize)) {
52
52
  throw new Error(`inputSize should be an object with 'default' and 'isResizable' keys`);
53
53
  }
54
54
  if (![4, 6, 8, 12].includes(inputSize.default)) {
@@ -59,7 +59,7 @@ const customFieldsRegistry = (strapi) => {
59
59
  }
60
60
  }
61
61
  const uid = plugin && strapi.plugin(plugin) ? `plugin::${plugin}.${name}` : `global::${name}`;
62
- if (_.has(uid, customFields)) {
62
+ if (fp.has(uid, customFields)) {
63
63
  throw new Error(`Custom field: '${uid}' has already been registered`);
64
64
  }
65
65
  customFields[uid] = cf;
@@ -1 +1 @@
1
- {"version":3,"file":"custom-fields.js","sources":["../../src/registries/custom-fields.ts"],"sourcesContent":["import { has, isPlainObject } from 'lodash/fp';\n\nimport type { Core, Modules } from '@strapi/types';\n\nconst ALLOWED_TYPES = [\n 'biginteger',\n 'boolean',\n 'date',\n 'datetime',\n 'decimal',\n 'email',\n 'enumeration',\n 'float',\n 'integer',\n 'json',\n 'password',\n 'richtext',\n 'string',\n 'text',\n 'time',\n 'uid',\n] as const;\n\nconst customFieldsRegistry = (strapi: Core.Strapi) => {\n const customFields: Record<string, unknown> = {};\n\n return {\n getAll() {\n return customFields;\n },\n get(customField: string) {\n const registeredCustomField = customFields[customField];\n if (!registeredCustomField) {\n throw new Error(`Could not find Custom Field: ${customField}`);\n }\n\n return registeredCustomField;\n },\n add(\n customField:\n | Modules.CustomFields.CustomFieldServerOptions\n | Modules.CustomFields.CustomFieldServerOptions[]\n ) {\n const customFieldList = Array.isArray(customField) ? customField : [customField];\n\n for (const cf of customFieldList) {\n if (!has('name', cf) || !has('type', cf)) {\n throw new Error(`Custom fields require a 'name' and 'type' key`);\n }\n\n const { name, plugin, type, inputSize } = cf;\n if (!ALLOWED_TYPES.includes(type)) {\n throw new Error(\n `Custom field type: '${type}' is not a valid Strapi type or it can't be used with a Custom Field`\n );\n }\n\n const isValidObjectKey = /^(?![0-9])[a-zA-Z0-9$_-]+$/g;\n if (!isValidObjectKey.test(name)) {\n throw new Error(`Custom field name: '${name}' is not a valid object key`);\n }\n\n // Validate inputSize when provided\n if (inputSize) {\n if (\n !isPlainObject(inputSize) ||\n !has('default', inputSize) ||\n !has('isResizable', inputSize)\n ) {\n throw new Error(`inputSize should be an object with 'default' and 'isResizable' keys`);\n }\n if (![4, 6, 8, 12].includes(inputSize.default)) {\n throw new Error('Custom fields require a valid default input size');\n }\n if (typeof inputSize.isResizable !== 'boolean') {\n throw new Error('Custom fields should specify if their input is resizable');\n }\n }\n\n // When no plugin is specified, or it isn't found in Strapi, default to global\n const uid =\n plugin && strapi.plugin(plugin) ? `plugin::${plugin}.${name}` : `global::${name}`;\n\n if (has(uid, customFields)) {\n throw new Error(`Custom field: '${uid}' has already been registered`);\n }\n\n customFields[uid] = cf;\n }\n },\n };\n};\n\nexport default customFieldsRegistry;\n"],"names":["has","isPlainObject"],"mappings":";;AAIA,MAAM,gBAAgB;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEM,MAAA,uBAAuB,CAAC,WAAwB;AACpD,QAAM,eAAwC,CAAA;AAEvC,SAAA;AAAA,IACL,SAAS;AACA,aAAA;AAAA,IACT;AAAA,IACA,IAAI,aAAqB;AACjB,YAAA,wBAAwB,aAAa,WAAW;AACtD,UAAI,CAAC,uBAAuB;AAC1B,cAAM,IAAI,MAAM,gCAAgC,WAAW,EAAE;AAAA,MAC/D;AAEO,aAAA;AAAA,IACT;AAAA,IACA,IACE,aAGA;AACA,YAAM,kBAAkB,MAAM,QAAQ,WAAW,IAAI,cAAc,CAAC,WAAW;AAE/E,iBAAW,MAAM,iBAAiB;AAC5B,YAAA,CAACA,EAAAA,IAAI,QAAQ,EAAE,KAAK,CAACA,MAAI,QAAQ,EAAE,GAAG;AAClC,gBAAA,IAAI,MAAM,+CAA+C;AAAA,QACjE;AAEA,cAAM,EAAE,MAAM,QAAQ,MAAM,cAAc;AAC1C,YAAI,CAAC,cAAc,SAAS,IAAI,GAAG;AACjC,gBAAM,IAAI;AAAA,YACR,uBAAuB,IAAI;AAAA,UAAA;AAAA,QAE/B;AAEA,cAAM,mBAAmB;AACzB,YAAI,CAAC,iBAAiB,KAAK,IAAI,GAAG;AAChC,gBAAM,IAAI,MAAM,uBAAuB,IAAI,6BAA6B;AAAA,QAC1E;AAGA,YAAI,WAAW;AACb,cACE,CAACC,EAAA,cAAc,SAAS,KACxB,CAACD,EAAAA,IAAI,WAAW,SAAS,KACzB,CAACA,EAAAA,IAAI,eAAe,SAAS,GAC7B;AACM,kBAAA,IAAI,MAAM,qEAAqE;AAAA,UACvF;AACI,cAAA,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,SAAS,UAAU,OAAO,GAAG;AACxC,kBAAA,IAAI,MAAM,kDAAkD;AAAA,UACpE;AACI,cAAA,OAAO,UAAU,gBAAgB,WAAW;AACxC,kBAAA,IAAI,MAAM,0DAA0D;AAAA,UAC5E;AAAA,QACF;AAGA,cAAM,MACJ,UAAU,OAAO,OAAO,MAAM,IAAI,WAAW,MAAM,IAAI,IAAI,KAAK,WAAW,IAAI;AAE7E,YAAAA,EAAA,IAAI,KAAK,YAAY,GAAG;AAC1B,gBAAM,IAAI,MAAM,kBAAkB,GAAG,+BAA+B;AAAA,QACtE;AAEA,qBAAa,GAAG,IAAI;AAAA,MACtB;AAAA,IACF;AAAA,EAAA;AAEJ;;"}
1
+ {"version":3,"file":"custom-fields.js","sources":["../../src/registries/custom-fields.ts"],"sourcesContent":["import { has, isPlainObject } from 'lodash/fp';\n\nimport type { Core, Modules } from '@strapi/types';\n\nconst ALLOWED_TYPES = [\n 'biginteger',\n 'boolean',\n 'date',\n 'datetime',\n 'decimal',\n 'email',\n 'enumeration',\n 'float',\n 'integer',\n 'json',\n 'password',\n 'richtext',\n 'string',\n 'text',\n 'time',\n 'uid',\n] as const;\n\nconst customFieldsRegistry = (strapi: Core.Strapi) => {\n const customFields: Record<string, unknown> = {};\n\n return {\n getAll() {\n return customFields;\n },\n get(customField: string) {\n const registeredCustomField = customFields[customField];\n if (!registeredCustomField) {\n throw new Error(`Could not find Custom Field: ${customField}`);\n }\n\n return registeredCustomField;\n },\n add(\n customField:\n | Modules.CustomFields.CustomFieldServerOptions\n | Modules.CustomFields.CustomFieldServerOptions[]\n ) {\n const customFieldList = Array.isArray(customField) ? customField : [customField];\n\n for (const cf of customFieldList) {\n if (!has('name', cf) || !has('type', cf)) {\n throw new Error(`Custom fields require a 'name' and 'type' key`);\n }\n\n const { name, plugin, type, inputSize } = cf;\n if (!ALLOWED_TYPES.includes(type)) {\n throw new Error(\n `Custom field type: '${type}' is not a valid Strapi type or it can't be used with a Custom Field`\n );\n }\n\n const isValidObjectKey = /^(?![0-9])[a-zA-Z0-9$_-]+$/g;\n if (!isValidObjectKey.test(name)) {\n throw new Error(`Custom field name: '${name}' is not a valid object key`);\n }\n\n // Validate inputSize when provided\n if (inputSize) {\n if (\n !isPlainObject(inputSize) ||\n !has('default', inputSize) ||\n !has('isResizable', inputSize)\n ) {\n throw new Error(`inputSize should be an object with 'default' and 'isResizable' keys`);\n }\n if (![4, 6, 8, 12].includes(inputSize.default)) {\n throw new Error('Custom fields require a valid default input size');\n }\n if (typeof inputSize.isResizable !== 'boolean') {\n throw new Error('Custom fields should specify if their input is resizable');\n }\n }\n\n // When no plugin is specified, or it isn't found in Strapi, default to global\n const uid =\n plugin && strapi.plugin(plugin) ? `plugin::${plugin}.${name}` : `global::${name}`;\n\n if (has(uid, customFields)) {\n throw new Error(`Custom field: '${uid}' has already been registered`);\n }\n\n customFields[uid] = cf;\n }\n },\n };\n};\n\nexport default customFieldsRegistry;\n"],"names":["has","isPlainObject"],"mappings":";;AAIA,MAAM,gBAAgB;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEM,MAAA,uBAAuB,CAAC,WAAwB;AACpD,QAAM,eAAwC,CAAA;AAEvC,SAAA;AAAA,IACL,SAAS;AACA,aAAA;AAAA,IACT;AAAA,IACA,IAAI,aAAqB;AACjB,YAAA,wBAAwB,aAAa,WAAW;AACtD,UAAI,CAAC,uBAAuB;AAC1B,cAAM,IAAI,MAAM,gCAAgC,WAAW,EAAE;AAAA,MAC/D;AAEO,aAAA;AAAA,IACT;AAAA,IACA,IACE,aAGA;AACA,YAAM,kBAAkB,MAAM,QAAQ,WAAW,IAAI,cAAc,CAAC,WAAW;AAE/E,iBAAW,MAAM,iBAAiB;AAC5B,YAAA,CAACA,GAAAA,IAAI,QAAQ,EAAE,KAAK,CAACA,OAAI,QAAQ,EAAE,GAAG;AAClC,gBAAA,IAAI,MAAM,+CAA+C;AAAA,QACjE;AAEA,cAAM,EAAE,MAAM,QAAQ,MAAM,cAAc;AAC1C,YAAI,CAAC,cAAc,SAAS,IAAI,GAAG;AACjC,gBAAM,IAAI;AAAA,YACR,uBAAuB,IAAI;AAAA,UAAA;AAAA,QAE/B;AAEA,cAAM,mBAAmB;AACzB,YAAI,CAAC,iBAAiB,KAAK,IAAI,GAAG;AAChC,gBAAM,IAAI,MAAM,uBAAuB,IAAI,6BAA6B;AAAA,QAC1E;AAGA,YAAI,WAAW;AACb,cACE,CAACC,GAAA,cAAc,SAAS,KACxB,CAACD,GAAAA,IAAI,WAAW,SAAS,KACzB,CAACA,GAAAA,IAAI,eAAe,SAAS,GAC7B;AACM,kBAAA,IAAI,MAAM,qEAAqE;AAAA,UACvF;AACI,cAAA,CAAC,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,SAAS,UAAU,OAAO,GAAG;AACxC,kBAAA,IAAI,MAAM,kDAAkD;AAAA,UACpE;AACI,cAAA,OAAO,UAAU,gBAAgB,WAAW;AACxC,kBAAA,IAAI,MAAM,0DAA0D;AAAA,UAC5E;AAAA,QACF;AAGA,cAAM,MACJ,UAAU,OAAO,OAAO,MAAM,IAAI,WAAW,MAAM,IAAI,IAAI,KAAK,WAAW,IAAI;AAE7E,YAAAA,GAAA,IAAI,KAAK,YAAY,GAAG;AAC1B,gBAAM,IAAI,MAAM,kBAAkB,GAAG,+BAA+B;AAAA,QACtE;AAEA,qBAAa,GAAG,IAAI;AAAA,MACtB;AAAA,IACF;AAAA,EAAA;AAEJ;;"}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const _ = require("lodash/fp");
2
+ const fp = require("lodash/fp");
3
3
  const namespace = require("./namespace.js");
4
4
  const hooksRegistry = () => {
5
5
  const hooks = {};
@@ -20,7 +20,7 @@ const hooksRegistry = () => {
20
20
  * Returns a map with all the hooks in a namespace
21
21
  */
22
22
  getAll(namespace$1) {
23
- return _.pickBy((_2, uid) => namespace.hasNamespace(uid, namespace$1))(hooks);
23
+ return fp.pickBy((_, uid) => namespace.hasNamespace(uid, namespace$1))(hooks);
24
24
  },
25
25
  /**
26
26
  * Registers a hook
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.js","sources":["../../src/registries/hooks.ts"],"sourcesContent":["import { pickBy } from 'lodash/fp';\nimport { addNamespace, hasNamespace } from './namespace';\n\ntype Handler = (context: any) => any;\n\ntype AsyncHook = {\n handlers: Handler[];\n register(handler: Handler): AsyncHook;\n delete(handler: Handler): AsyncHook;\n call(): Promise<void>;\n};\n\ntype SyncHook = {\n get handlers(): Handler[];\n register(handler: Handler): SyncHook;\n delete(handler: Handler): SyncHook;\n call(): void;\n};\n\nexport type Hook = AsyncHook | SyncHook;\n\ntype HookExtendFn = (hook: Hook) => Hook;\n\nconst hooksRegistry = () => {\n const hooks: Record<string, Hook> = {};\n\n return {\n /**\n * Returns this list of registered hooks uids\n */\n keys() {\n return Object.keys(hooks);\n },\n\n /**\n * Returns the instance of a hook.\n */\n get(uid: string) {\n return hooks[uid];\n },\n\n /**\n * Returns a map with all the hooks in a namespace\n */\n getAll(namespace: string) {\n return pickBy((_, uid) => hasNamespace(uid, namespace))(hooks);\n },\n\n /**\n * Registers a hook\n */\n set(uid: string, hook: Hook) {\n hooks[uid] = hook;\n return this;\n },\n\n /**\n * Registers a map of hooks for a specific namespace\n */\n add(namespace: string, hooks: Record<string, Hook>) {\n for (const hookName of Object.keys(hooks)) {\n const hook = hooks[hookName];\n const uid = addNamespace(hookName, namespace);\n\n this.set(uid, hook);\n }\n\n return this;\n },\n\n /**\n * Wraps a hook to extend it\n */\n extend(uid: string, extendFn: HookExtendFn) {\n const currentHook = this.get(uid);\n\n if (!currentHook) {\n throw new Error(`Hook ${uid} doesn't exist`);\n }\n\n const newHook = extendFn(currentHook);\n hooks[uid] = newHook;\n\n return this;\n },\n };\n};\n\nexport default hooksRegistry;\n"],"names":["namespace","pickBy","_","hasNamespace","hooks","addNamespace"],"mappings":";;;AAuBA,MAAM,gBAAgB,MAAM;AAC1B,QAAM,QAA8B,CAAA;AAE7B,SAAA;AAAA;AAAA;AAAA;AAAA,IAIL,OAAO;AACE,aAAA,OAAO,KAAK,KAAK;AAAA,IAC1B;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAAa;AACf,aAAO,MAAM,GAAG;AAAA,IAClB;AAAA;AAAA;AAAA;AAAA,IAKA,OAAOA,aAAmB;AACjB,aAAAC,EAAA,OAAO,CAACC,IAAG,QAAQC,UAAAA,aAAa,KAAKH,WAAS,CAAC,EAAE,KAAK;AAAA,IAC/D;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAAa,MAAY;AAC3B,YAAM,GAAG,IAAI;AACN,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,IAAIA,aAAmBI,QAA6B;AAClD,iBAAW,YAAY,OAAO,KAAKA,MAAK,GAAG;AACnC,cAAA,OAAOA,OAAM,QAAQ;AACrB,cAAA,MAAMC,UAAAA,aAAa,UAAUL,WAAS;AAEvC,aAAA,IAAI,KAAK,IAAI;AAAA,MACpB;AAEO,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,OAAO,KAAa,UAAwB;AACpC,YAAA,cAAc,KAAK,IAAI,GAAG;AAEhC,UAAI,CAAC,aAAa;AAChB,cAAM,IAAI,MAAM,QAAQ,GAAG,gBAAgB;AAAA,MAC7C;AAEM,YAAA,UAAU,SAAS,WAAW;AACpC,YAAM,GAAG,IAAI;AAEN,aAAA;AAAA,IACT;AAAA,EAAA;AAEJ;;"}
1
+ {"version":3,"file":"hooks.js","sources":["../../src/registries/hooks.ts"],"sourcesContent":["import { pickBy } from 'lodash/fp';\nimport { addNamespace, hasNamespace } from './namespace';\n\ntype Handler = (context: any) => any;\n\ntype AsyncHook = {\n handlers: Handler[];\n register(handler: Handler): AsyncHook;\n delete(handler: Handler): AsyncHook;\n call(): Promise<void>;\n};\n\ntype SyncHook = {\n get handlers(): Handler[];\n register(handler: Handler): SyncHook;\n delete(handler: Handler): SyncHook;\n call(): void;\n};\n\nexport type Hook = AsyncHook | SyncHook;\n\ntype HookExtendFn = (hook: Hook) => Hook;\n\nconst hooksRegistry = () => {\n const hooks: Record<string, Hook> = {};\n\n return {\n /**\n * Returns this list of registered hooks uids\n */\n keys() {\n return Object.keys(hooks);\n },\n\n /**\n * Returns the instance of a hook.\n */\n get(uid: string) {\n return hooks[uid];\n },\n\n /**\n * Returns a map with all the hooks in a namespace\n */\n getAll(namespace: string) {\n return pickBy((_, uid) => hasNamespace(uid, namespace))(hooks);\n },\n\n /**\n * Registers a hook\n */\n set(uid: string, hook: Hook) {\n hooks[uid] = hook;\n return this;\n },\n\n /**\n * Registers a map of hooks for a specific namespace\n */\n add(namespace: string, hooks: Record<string, Hook>) {\n for (const hookName of Object.keys(hooks)) {\n const hook = hooks[hookName];\n const uid = addNamespace(hookName, namespace);\n\n this.set(uid, hook);\n }\n\n return this;\n },\n\n /**\n * Wraps a hook to extend it\n */\n extend(uid: string, extendFn: HookExtendFn) {\n const currentHook = this.get(uid);\n\n if (!currentHook) {\n throw new Error(`Hook ${uid} doesn't exist`);\n }\n\n const newHook = extendFn(currentHook);\n hooks[uid] = newHook;\n\n return this;\n },\n };\n};\n\nexport default hooksRegistry;\n"],"names":["namespace","pickBy","hasNamespace","hooks","addNamespace"],"mappings":";;;AAuBA,MAAM,gBAAgB,MAAM;AAC1B,QAAM,QAA8B,CAAA;AAE7B,SAAA;AAAA;AAAA;AAAA;AAAA,IAIL,OAAO;AACE,aAAA,OAAO,KAAK,KAAK;AAAA,IAC1B;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAAa;AACf,aAAO,MAAM,GAAG;AAAA,IAClB;AAAA;AAAA;AAAA;AAAA,IAKA,OAAOA,aAAmB;AACjB,aAAAC,GAAA,OAAO,CAAC,GAAG,QAAQC,UAAAA,aAAa,KAAKF,WAAS,CAAC,EAAE,KAAK;AAAA,IAC/D;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAAa,MAAY;AAC3B,YAAM,GAAG,IAAI;AACN,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,IAAIA,aAAmBG,QAA6B;AAClD,iBAAW,YAAY,OAAO,KAAKA,MAAK,GAAG;AACnC,cAAA,OAAOA,OAAM,QAAQ;AACrB,cAAA,MAAMC,UAAAA,aAAa,UAAUJ,WAAS;AAEvC,aAAA,IAAI,KAAK,IAAI;AAAA,MACpB;AAEO,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,OAAO,KAAa,UAAwB;AACpC,YAAA,cAAc,KAAK,IAAI,GAAG;AAEhC,UAAI,CAAC,aAAa;AAChB,cAAM,IAAI,MAAM,QAAQ,GAAG,gBAAgB;AAAA,MAC7C;AAEM,YAAA,UAAU,SAAS,WAAW;AACpC,YAAM,GAAG,IAAI;AAEN,aAAA;AAAA,IACT;AAAA,EAAA;AAEJ;;"}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const _ = require("lodash/fp");
2
+ const fp = require("lodash/fp");
3
3
  const namespace = require("./namespace.js");
4
4
  const middlewaresRegistry = () => {
5
5
  const middlewares = {};
@@ -20,7 +20,7 @@ const middlewaresRegistry = () => {
20
20
  * Returns a map with all the middlewares in a namespace
21
21
  */
22
22
  getAll(namespace$1) {
23
- return _.pickBy((_2, uid) => namespace.hasNamespace(uid, namespace$1))(middlewares);
23
+ return fp.pickBy((_, uid) => namespace.hasNamespace(uid, namespace$1))(middlewares);
24
24
  },
25
25
  /**
26
26
  * Registers a middleware
@@ -36,7 +36,7 @@ const middlewaresRegistry = () => {
36
36
  for (const middlewareName of Object.keys(rawMiddlewares)) {
37
37
  const middleware = rawMiddlewares[middlewareName];
38
38
  const uid = namespace.addNamespace(middlewareName, namespace$1);
39
- if (_.has(uid, middlewares)) {
39
+ if (fp.has(uid, middlewares)) {
40
40
  throw new Error(`Middleware ${uid} has already been registered.`);
41
41
  }
42
42
  middlewares[uid] = middleware;
@@ -1 +1 @@
1
- {"version":3,"file":"middlewares.js","sources":["../../src/registries/middlewares.ts"],"sourcesContent":["import { pickBy, has } from 'lodash/fp';\nimport type { Core, UID } from '@strapi/types';\nimport { addNamespace, hasNamespace } from './namespace';\n\ntype MiddlewareExtendFn = (middleware: Core.Middleware) => Core.Middleware;\n\n// TODO: move instantiation part here instead of in the server service\nconst middlewaresRegistry = () => {\n const middlewares: Record<UID.Middleware, Core.Middleware> = {};\n\n return {\n /**\n * Returns this list of registered middlewares uids\n */\n keys() {\n return Object.keys(middlewares);\n },\n\n /**\n * Returns the instance of a middleware. Instantiate the middleware if not already done\n */\n get(uid: UID.Middleware) {\n return middlewares[uid];\n },\n\n /**\n * Returns a map with all the middlewares in a namespace\n */\n getAll(namespace: string) {\n return pickBy((_, uid) => hasNamespace(uid, namespace))(middlewares);\n },\n\n /**\n * Registers a middleware\n */\n set(uid: UID.Middleware, middleware: Core.Middleware) {\n middlewares[uid] = middleware;\n return this;\n },\n\n /**\n * Registers a map of middlewares for a specific namespace\n */\n add(namespace: string, rawMiddlewares: Record<string, Core.Middleware> = {}) {\n for (const middlewareName of Object.keys(rawMiddlewares)) {\n const middleware = rawMiddlewares[middlewareName];\n const uid = addNamespace(middlewareName, namespace) as UID.Middleware;\n\n if (has(uid, middlewares)) {\n throw new Error(`Middleware ${uid} has already been registered.`);\n }\n middlewares[uid] = middleware;\n }\n },\n\n /**\n * Wraps a middleware to extend it\n */\n extend(uid: UID.Middleware, extendFn: MiddlewareExtendFn) {\n const currentMiddleware = this.get(uid);\n\n if (!currentMiddleware) {\n throw new Error(`Middleware ${uid} doesn't exist`);\n }\n\n const newMiddleware = extendFn(currentMiddleware);\n middlewares[uid] = newMiddleware;\n\n return this;\n },\n };\n};\n\nexport default middlewaresRegistry;\n"],"names":["namespace","pickBy","_","hasNamespace","addNamespace","has"],"mappings":";;;AAOA,MAAM,sBAAsB,MAAM;AAChC,QAAM,cAAuD,CAAA;AAEtD,SAAA;AAAA;AAAA;AAAA;AAAA,IAIL,OAAO;AACE,aAAA,OAAO,KAAK,WAAW;AAAA,IAChC;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAAqB;AACvB,aAAO,YAAY,GAAG;AAAA,IACxB;AAAA;AAAA;AAAA;AAAA,IAKA,OAAOA,aAAmB;AACjB,aAAAC,EAAA,OAAO,CAACC,IAAG,QAAQC,UAAAA,aAAa,KAAKH,WAAS,CAAC,EAAE,WAAW;AAAA,IACrE;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAAqB,YAA6B;AACpD,kBAAY,GAAG,IAAI;AACZ,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,IAAIA,aAAmB,iBAAkD,IAAI;AAC3E,iBAAW,kBAAkB,OAAO,KAAK,cAAc,GAAG;AAClD,cAAA,aAAa,eAAe,cAAc;AAC1C,cAAA,MAAMI,UAAAA,aAAa,gBAAgBJ,WAAS;AAE9C,YAAAK,EAAA,IAAI,KAAK,WAAW,GAAG;AACzB,gBAAM,IAAI,MAAM,cAAc,GAAG,+BAA+B;AAAA,QAClE;AACA,oBAAY,GAAG,IAAI;AAAA,MACrB;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA,OAAO,KAAqB,UAA8B;AAClD,YAAA,oBAAoB,KAAK,IAAI,GAAG;AAEtC,UAAI,CAAC,mBAAmB;AACtB,cAAM,IAAI,MAAM,cAAc,GAAG,gBAAgB;AAAA,MACnD;AAEM,YAAA,gBAAgB,SAAS,iBAAiB;AAChD,kBAAY,GAAG,IAAI;AAEZ,aAAA;AAAA,IACT;AAAA,EAAA;AAEJ;;"}
1
+ {"version":3,"file":"middlewares.js","sources":["../../src/registries/middlewares.ts"],"sourcesContent":["import { pickBy, has } from 'lodash/fp';\nimport type { Core, UID } from '@strapi/types';\nimport { addNamespace, hasNamespace } from './namespace';\n\ntype MiddlewareExtendFn = (middleware: Core.Middleware) => Core.Middleware;\n\n// TODO: move instantiation part here instead of in the server service\nconst middlewaresRegistry = () => {\n const middlewares: Record<UID.Middleware, Core.Middleware> = {};\n\n return {\n /**\n * Returns this list of registered middlewares uids\n */\n keys() {\n return Object.keys(middlewares);\n },\n\n /**\n * Returns the instance of a middleware. Instantiate the middleware if not already done\n */\n get(uid: UID.Middleware) {\n return middlewares[uid];\n },\n\n /**\n * Returns a map with all the middlewares in a namespace\n */\n getAll(namespace: string) {\n return pickBy((_, uid) => hasNamespace(uid, namespace))(middlewares);\n },\n\n /**\n * Registers a middleware\n */\n set(uid: UID.Middleware, middleware: Core.Middleware) {\n middlewares[uid] = middleware;\n return this;\n },\n\n /**\n * Registers a map of middlewares for a specific namespace\n */\n add(namespace: string, rawMiddlewares: Record<string, Core.Middleware> = {}) {\n for (const middlewareName of Object.keys(rawMiddlewares)) {\n const middleware = rawMiddlewares[middlewareName];\n const uid = addNamespace(middlewareName, namespace) as UID.Middleware;\n\n if (has(uid, middlewares)) {\n throw new Error(`Middleware ${uid} has already been registered.`);\n }\n middlewares[uid] = middleware;\n }\n },\n\n /**\n * Wraps a middleware to extend it\n */\n extend(uid: UID.Middleware, extendFn: MiddlewareExtendFn) {\n const currentMiddleware = this.get(uid);\n\n if (!currentMiddleware) {\n throw new Error(`Middleware ${uid} doesn't exist`);\n }\n\n const newMiddleware = extendFn(currentMiddleware);\n middlewares[uid] = newMiddleware;\n\n return this;\n },\n };\n};\n\nexport default middlewaresRegistry;\n"],"names":["namespace","pickBy","hasNamespace","addNamespace","has"],"mappings":";;;AAOA,MAAM,sBAAsB,MAAM;AAChC,QAAM,cAAuD,CAAA;AAEtD,SAAA;AAAA;AAAA;AAAA;AAAA,IAIL,OAAO;AACE,aAAA,OAAO,KAAK,WAAW;AAAA,IAChC;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAAqB;AACvB,aAAO,YAAY,GAAG;AAAA,IACxB;AAAA;AAAA;AAAA;AAAA,IAKA,OAAOA,aAAmB;AACjB,aAAAC,GAAA,OAAO,CAAC,GAAG,QAAQC,UAAAA,aAAa,KAAKF,WAAS,CAAC,EAAE,WAAW;AAAA,IACrE;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAAqB,YAA6B;AACpD,kBAAY,GAAG,IAAI;AACZ,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,IAAIA,aAAmB,iBAAkD,IAAI;AAC3E,iBAAW,kBAAkB,OAAO,KAAK,cAAc,GAAG;AAClD,cAAA,aAAa,eAAe,cAAc;AAC1C,cAAA,MAAMG,UAAAA,aAAa,gBAAgBH,WAAS;AAE9C,YAAAI,GAAA,IAAI,KAAK,WAAW,GAAG;AACzB,gBAAM,IAAI,MAAM,cAAc,GAAG,+BAA+B;AAAA,QAClE;AACA,oBAAY,GAAG,IAAI;AAAA,MACrB;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA,OAAO,KAAqB,UAA8B;AAClD,YAAA,oBAAoB,KAAK,IAAI,GAAG;AAEtC,UAAI,CAAC,mBAAmB;AACtB,cAAM,IAAI,MAAM,cAAc,GAAG,gBAAgB;AAAA,MACnD;AAEM,YAAA,gBAAgB,SAAS,iBAAiB;AAChD,kBAAY,GAAG,IAAI;AAEZ,aAAA;AAAA,IACT;AAAA,EAAA;AAEJ;;"}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const _ = require("lodash/fp");
2
+ const fp = require("lodash/fp");
3
3
  const index = require("../domain/module/index.js");
4
4
  const modulesRegistry = (strapi) => {
5
5
  const modules = {};
@@ -8,10 +8,10 @@ const modulesRegistry = (strapi) => {
8
8
  return modules[namespace];
9
9
  },
10
10
  getAll(prefix = "") {
11
- return _.pickBy((mod, namespace) => namespace.startsWith(prefix))(modules);
11
+ return fp.pickBy((mod, namespace) => namespace.startsWith(prefix))(modules);
12
12
  },
13
13
  add(namespace, rawModule) {
14
- if (_.has(namespace, modules)) {
14
+ if (fp.has(namespace, modules)) {
15
15
  throw new Error(`Module ${namespace} has already been registered.`);
16
16
  }
17
17
  modules[namespace] = index.createModule(namespace, rawModule, strapi);