@strapi/core 5.37.1 → 5.38.1

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 (387) hide show
  1. package/dist/Strapi.js.map +1 -1
  2. package/dist/Strapi.mjs.map +1 -1
  3. package/dist/compile.js.map +1 -1
  4. package/dist/compile.mjs.map +1 -1
  5. package/dist/configuration/config-loader.js.map +1 -1
  6. package/dist/configuration/config-loader.mjs.map +1 -1
  7. package/dist/configuration/get-dirs.js.map +1 -1
  8. package/dist/configuration/get-dirs.mjs +1 -1
  9. package/dist/configuration/get-dirs.mjs.map +1 -1
  10. package/dist/configuration/index.js.map +1 -1
  11. package/dist/configuration/index.mjs.map +1 -1
  12. package/dist/configuration/urls.js.map +1 -1
  13. package/dist/configuration/urls.mjs.map +1 -1
  14. package/dist/container.js.map +1 -1
  15. package/dist/container.mjs.map +1 -1
  16. package/dist/core-api/controller/collection-type.js.map +1 -1
  17. package/dist/core-api/controller/collection-type.mjs.map +1 -1
  18. package/dist/core-api/controller/index.js.map +1 -1
  19. package/dist/core-api/controller/index.mjs.map +1 -1
  20. package/dist/core-api/controller/single-type.js.map +1 -1
  21. package/dist/core-api/controller/single-type.mjs.map +1 -1
  22. package/dist/core-api/controller/transform.js.map +1 -1
  23. package/dist/core-api/controller/transform.mjs.map +1 -1
  24. package/dist/core-api/routes/index.js.map +1 -1
  25. package/dist/core-api/routes/index.mjs.map +1 -1
  26. package/dist/core-api/routes/validation/attributes.js.map +1 -1
  27. package/dist/core-api/routes/validation/attributes.mjs +1 -1
  28. package/dist/core-api/routes/validation/attributes.mjs.map +1 -1
  29. package/dist/core-api/routes/validation/common.js.map +1 -1
  30. package/dist/core-api/routes/validation/common.mjs.map +1 -1
  31. package/dist/core-api/routes/validation/component.js.map +1 -1
  32. package/dist/core-api/routes/validation/component.mjs.map +1 -1
  33. package/dist/core-api/routes/validation/constants.js.map +1 -1
  34. package/dist/core-api/routes/validation/constants.mjs.map +1 -1
  35. package/dist/core-api/routes/validation/content-type.js.map +1 -1
  36. package/dist/core-api/routes/validation/content-type.mjs.map +1 -1
  37. package/dist/core-api/routes/validation/mappers.js.map +1 -1
  38. package/dist/core-api/routes/validation/mappers.mjs.map +1 -1
  39. package/dist/core-api/routes/validation/utils.js.map +1 -1
  40. package/dist/core-api/routes/validation/utils.mjs.map +1 -1
  41. package/dist/core-api/service/collection-type.js.map +1 -1
  42. package/dist/core-api/service/collection-type.mjs.map +1 -1
  43. package/dist/core-api/service/core-service.js.map +1 -1
  44. package/dist/core-api/service/core-service.mjs.map +1 -1
  45. package/dist/core-api/service/index.js.map +1 -1
  46. package/dist/core-api/service/index.mjs.map +1 -1
  47. package/dist/core-api/service/pagination.js.map +1 -1
  48. package/dist/core-api/service/pagination.mjs +1 -1
  49. package/dist/core-api/service/pagination.mjs.map +1 -1
  50. package/dist/core-api/service/single-type.js.map +1 -1
  51. package/dist/core-api/service/single-type.mjs.map +1 -1
  52. package/dist/domain/content-type/index.js.map +1 -1
  53. package/dist/domain/content-type/index.mjs.map +1 -1
  54. package/dist/domain/content-type/validator.js.map +1 -1
  55. package/dist/domain/content-type/validator.mjs.map +1 -1
  56. package/dist/domain/module/index.js.map +1 -1
  57. package/dist/domain/module/index.mjs.map +1 -1
  58. package/dist/domain/module/validation.js.map +1 -1
  59. package/dist/domain/module/validation.mjs.map +1 -1
  60. package/dist/ee/index.js.map +1 -1
  61. package/dist/ee/index.mjs +2 -2
  62. package/dist/ee/index.mjs.map +1 -1
  63. package/dist/ee/license.js.map +1 -1
  64. package/dist/ee/license.mjs.map +1 -1
  65. package/dist/factories.js +4 -4
  66. package/dist/factories.js.map +1 -1
  67. package/dist/factories.mjs.map +1 -1
  68. package/dist/index.js.map +1 -1
  69. package/dist/index.mjs.map +1 -1
  70. package/dist/loaders/admin.js.map +1 -1
  71. package/dist/loaders/admin.mjs.map +1 -1
  72. package/dist/loaders/apis.js.map +1 -1
  73. package/dist/loaders/apis.mjs.map +1 -1
  74. package/dist/loaders/components.js.map +1 -1
  75. package/dist/loaders/components.mjs.map +1 -1
  76. package/dist/loaders/index.js.map +1 -1
  77. package/dist/loaders/index.mjs.map +1 -1
  78. package/dist/loaders/middlewares.js.map +1 -1
  79. package/dist/loaders/middlewares.mjs.map +1 -1
  80. package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
  81. package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
  82. package/dist/loaders/plugins/get-user-plugins-config.js.map +1 -1
  83. package/dist/loaders/plugins/get-user-plugins-config.mjs.map +1 -1
  84. package/dist/loaders/plugins/index.js.map +1 -1
  85. package/dist/loaders/plugins/index.mjs +1 -1
  86. package/dist/loaders/plugins/index.mjs.map +1 -1
  87. package/dist/loaders/policies.js.map +1 -1
  88. package/dist/loaders/policies.mjs.map +1 -1
  89. package/dist/loaders/sanitizers.js.map +1 -1
  90. package/dist/loaders/sanitizers.mjs.map +1 -1
  91. package/dist/loaders/src-index.js.map +1 -1
  92. package/dist/loaders/src-index.mjs.map +1 -1
  93. package/dist/loaders/validators.js.map +1 -1
  94. package/dist/loaders/validators.mjs.map +1 -1
  95. package/dist/middlewares/body.js.map +1 -1
  96. package/dist/middlewares/body.mjs.map +1 -1
  97. package/dist/middlewares/compression.js.map +1 -1
  98. package/dist/middlewares/compression.mjs.map +1 -1
  99. package/dist/middlewares/cors.js.map +1 -1
  100. package/dist/middlewares/cors.mjs.map +1 -1
  101. package/dist/middlewares/errors.js.map +1 -1
  102. package/dist/middlewares/errors.mjs.map +1 -1
  103. package/dist/middlewares/favicon.js.map +1 -1
  104. package/dist/middlewares/favicon.mjs.map +1 -1
  105. package/dist/middlewares/index.js.map +1 -1
  106. package/dist/middlewares/index.mjs.map +1 -1
  107. package/dist/middlewares/ip.js.map +1 -1
  108. package/dist/middlewares/ip.mjs.map +1 -1
  109. package/dist/middlewares/logger.js.map +1 -1
  110. package/dist/middlewares/logger.mjs.map +1 -1
  111. package/dist/middlewares/powered-by.js.map +1 -1
  112. package/dist/middlewares/powered-by.mjs.map +1 -1
  113. package/dist/middlewares/public.js.map +1 -1
  114. package/dist/middlewares/public.mjs.map +1 -1
  115. package/dist/middlewares/query.js.map +1 -1
  116. package/dist/middlewares/query.mjs.map +1 -1
  117. package/dist/middlewares/response-time.js.map +1 -1
  118. package/dist/middlewares/response-time.mjs.map +1 -1
  119. package/dist/middlewares/responses.js.map +1 -1
  120. package/dist/middlewares/responses.mjs.map +1 -1
  121. package/dist/middlewares/security.js.map +1 -1
  122. package/dist/middlewares/security.mjs.map +1 -1
  123. package/dist/middlewares/session.js.map +1 -1
  124. package/dist/middlewares/session.mjs.map +1 -1
  125. package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -1
  126. package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -1
  127. package/dist/migrations/draft-publish.js.map +1 -1
  128. package/dist/migrations/draft-publish.mjs.map +1 -1
  129. package/dist/migrations/first-published-at.js.map +1 -1
  130. package/dist/migrations/first-published-at.mjs.map +1 -1
  131. package/dist/migrations/i18n.js.map +1 -1
  132. package/dist/migrations/i18n.mjs.map +1 -1
  133. package/dist/migrations/index.mjs +2 -2
  134. package/dist/package.json.js +18 -17
  135. package/dist/package.json.js.map +1 -1
  136. package/dist/package.json.mjs +23 -22
  137. package/dist/package.json.mjs.map +1 -1
  138. package/dist/providers/admin.js.map +1 -1
  139. package/dist/providers/admin.mjs.map +1 -1
  140. package/dist/providers/coreStore.js.map +1 -1
  141. package/dist/providers/coreStore.mjs.map +1 -1
  142. package/dist/providers/cron.js.map +1 -1
  143. package/dist/providers/cron.mjs.map +1 -1
  144. package/dist/providers/index.js.map +1 -1
  145. package/dist/providers/index.mjs.map +1 -1
  146. package/dist/providers/provider.js.map +1 -1
  147. package/dist/providers/provider.mjs.map +1 -1
  148. package/dist/providers/registries.js.map +1 -1
  149. package/dist/providers/registries.mjs.map +1 -1
  150. package/dist/providers/session-manager.js.map +1 -1
  151. package/dist/providers/session-manager.mjs.map +1 -1
  152. package/dist/providers/telemetry.js.map +1 -1
  153. package/dist/providers/telemetry.mjs.map +1 -1
  154. package/dist/providers/webhooks.js.map +1 -1
  155. package/dist/providers/webhooks.mjs.map +1 -1
  156. package/dist/registries/apis.js.map +1 -1
  157. package/dist/registries/apis.mjs.map +1 -1
  158. package/dist/registries/components.js.map +1 -1
  159. package/dist/registries/components.mjs.map +1 -1
  160. package/dist/registries/content-types.js.map +1 -1
  161. package/dist/registries/content-types.mjs +2 -2
  162. package/dist/registries/content-types.mjs.map +1 -1
  163. package/dist/registries/controllers.js.map +1 -1
  164. package/dist/registries/controllers.mjs +2 -2
  165. package/dist/registries/controllers.mjs.map +1 -1
  166. package/dist/registries/custom-fields.js.map +1 -1
  167. package/dist/registries/custom-fields.mjs.map +1 -1
  168. package/dist/registries/hooks.js.map +1 -1
  169. package/dist/registries/hooks.mjs +1 -1
  170. package/dist/registries/hooks.mjs.map +1 -1
  171. package/dist/registries/middlewares.js.map +1 -1
  172. package/dist/registries/middlewares.mjs +2 -2
  173. package/dist/registries/middlewares.mjs.map +1 -1
  174. package/dist/registries/models.js.map +1 -1
  175. package/dist/registries/models.mjs.map +1 -1
  176. package/dist/registries/modules.js.map +1 -1
  177. package/dist/registries/modules.mjs +1 -1
  178. package/dist/registries/modules.mjs.map +1 -1
  179. package/dist/registries/namespace.js.map +1 -1
  180. package/dist/registries/namespace.mjs.map +1 -1
  181. package/dist/registries/plugins.js.map +1 -1
  182. package/dist/registries/plugins.mjs.map +1 -1
  183. package/dist/registries/policies.js.map +1 -1
  184. package/dist/registries/policies.mjs +2 -2
  185. package/dist/registries/policies.mjs.map +1 -1
  186. package/dist/registries/sanitizers.js.map +1 -1
  187. package/dist/registries/sanitizers.mjs.map +1 -1
  188. package/dist/registries/services.js.map +1 -1
  189. package/dist/registries/services.mjs +2 -2
  190. package/dist/registries/services.mjs.map +1 -1
  191. package/dist/registries/validators.js.map +1 -1
  192. package/dist/registries/validators.mjs.map +1 -1
  193. package/dist/services/auth/index.js.map +1 -1
  194. package/dist/services/auth/index.mjs.map +1 -1
  195. package/dist/services/config.js.map +1 -1
  196. package/dist/services/config.mjs +1 -1
  197. package/dist/services/config.mjs.map +1 -1
  198. package/dist/services/content-api/index.js.map +1 -1
  199. package/dist/services/content-api/index.mjs +1 -1
  200. package/dist/services/content-api/index.mjs.map +1 -1
  201. package/dist/services/content-api/permissions/engine.js.map +1 -1
  202. package/dist/services/content-api/permissions/engine.mjs.map +1 -1
  203. package/dist/services/content-api/permissions/index.js.map +1 -1
  204. package/dist/services/content-api/permissions/index.mjs.map +1 -1
  205. package/dist/services/content-api/permissions/providers/action.js.map +1 -1
  206. package/dist/services/content-api/permissions/providers/action.mjs.map +1 -1
  207. package/dist/services/content-api/permissions/providers/condition.js.map +1 -1
  208. package/dist/services/content-api/permissions/providers/condition.mjs.map +1 -1
  209. package/dist/services/content-source-maps.js.map +1 -1
  210. package/dist/services/content-source-maps.mjs.map +1 -1
  211. package/dist/services/core-store.js.map +1 -1
  212. package/dist/services/core-store.mjs.map +1 -1
  213. package/dist/services/cron.js.map +1 -1
  214. package/dist/services/cron.mjs.map +1 -1
  215. package/dist/services/custom-fields.js.map +1 -1
  216. package/dist/services/custom-fields.mjs.map +1 -1
  217. package/dist/services/document-service/attributes/index.js.map +1 -1
  218. package/dist/services/document-service/attributes/index.mjs.map +1 -1
  219. package/dist/services/document-service/attributes/transforms.js.map +1 -1
  220. package/dist/services/document-service/attributes/transforms.mjs.map +1 -1
  221. package/dist/services/document-service/common.js.map +1 -1
  222. package/dist/services/document-service/common.mjs.map +1 -1
  223. package/dist/services/document-service/components.js.map +1 -1
  224. package/dist/services/document-service/components.mjs.map +1 -1
  225. package/dist/services/document-service/draft-and-publish.js.map +1 -1
  226. package/dist/services/document-service/draft-and-publish.mjs.map +1 -1
  227. package/dist/services/document-service/entries.js.map +1 -1
  228. package/dist/services/document-service/entries.mjs +2 -2
  229. package/dist/services/document-service/entries.mjs.map +1 -1
  230. package/dist/services/document-service/events.js +1 -6
  231. package/dist/services/document-service/events.js.map +1 -1
  232. package/dist/services/document-service/events.mjs +1 -6
  233. package/dist/services/document-service/events.mjs.map +1 -1
  234. package/dist/services/document-service/first-published-at.js.map +1 -1
  235. package/dist/services/document-service/first-published-at.mjs.map +1 -1
  236. package/dist/services/document-service/index.js.map +1 -1
  237. package/dist/services/document-service/index.mjs.map +1 -1
  238. package/dist/services/document-service/internationalization.js.map +1 -1
  239. package/dist/services/document-service/internationalization.mjs.map +1 -1
  240. package/dist/services/document-service/middlewares/errors.js.map +1 -1
  241. package/dist/services/document-service/middlewares/errors.mjs.map +1 -1
  242. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -1
  243. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -1
  244. package/dist/services/document-service/params.js.map +1 -1
  245. package/dist/services/document-service/params.mjs.map +1 -1
  246. package/dist/services/document-service/repository.js +0 -2
  247. package/dist/services/document-service/repository.js.map +1 -1
  248. package/dist/services/document-service/repository.mjs +4 -6
  249. package/dist/services/document-service/repository.mjs.map +1 -1
  250. package/dist/services/document-service/transform/data.js.map +1 -1
  251. package/dist/services/document-service/transform/data.mjs.map +1 -1
  252. package/dist/services/document-service/transform/fields.js.map +1 -1
  253. package/dist/services/document-service/transform/fields.mjs.map +1 -1
  254. package/dist/services/document-service/transform/id-map.js.map +1 -1
  255. package/dist/services/document-service/transform/id-map.mjs.map +1 -1
  256. package/dist/services/document-service/transform/id-transform.js.map +1 -1
  257. package/dist/services/document-service/transform/id-transform.mjs.map +1 -1
  258. package/dist/services/document-service/transform/populate.js.map +1 -1
  259. package/dist/services/document-service/transform/populate.mjs.map +1 -1
  260. package/dist/services/document-service/transform/query.js.map +1 -1
  261. package/dist/services/document-service/transform/query.mjs.map +1 -1
  262. package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
  263. package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
  264. package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
  265. package/dist/services/document-service/transform/relations/transform/data-ids.mjs +1 -1
  266. package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
  267. package/dist/services/document-service/transform/relations/transform/default-locale.js.map +1 -1
  268. package/dist/services/document-service/transform/relations/transform/default-locale.mjs.map +1 -1
  269. package/dist/services/document-service/transform/relations/utils/dp.js.map +1 -1
  270. package/dist/services/document-service/transform/relations/utils/dp.mjs.map +1 -1
  271. package/dist/services/document-service/transform/relations/utils/i18n.js.map +1 -1
  272. package/dist/services/document-service/transform/relations/utils/i18n.mjs.map +1 -1
  273. package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -1
  274. package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -1
  275. package/dist/services/document-service/utils/bidirectional-relations.js.map +1 -1
  276. package/dist/services/document-service/utils/bidirectional-relations.mjs.map +1 -1
  277. package/dist/services/document-service/utils/clean-component-join-table.js.map +1 -1
  278. package/dist/services/document-service/utils/clean-component-join-table.mjs.map +1 -1
  279. package/dist/services/document-service/utils/ordered-parallel.js.map +1 -1
  280. package/dist/services/document-service/utils/ordered-parallel.mjs.map +1 -1
  281. package/dist/services/document-service/utils/populate.js.map +1 -1
  282. package/dist/services/document-service/utils/populate.mjs.map +1 -1
  283. package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -1
  284. package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -1
  285. package/dist/services/entity-service/index.js.map +1 -1
  286. package/dist/services/entity-service/index.mjs +1 -1
  287. package/dist/services/entity-service/index.mjs.map +1 -1
  288. package/dist/services/entity-validator/blocks-validator.js.map +1 -1
  289. package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
  290. package/dist/services/entity-validator/index.js.map +1 -1
  291. package/dist/services/entity-validator/index.mjs +1 -1
  292. package/dist/services/entity-validator/index.mjs.map +1 -1
  293. package/dist/services/entity-validator/validators.js.map +1 -1
  294. package/dist/services/entity-validator/validators.mjs.map +1 -1
  295. package/dist/services/errors.js.map +1 -1
  296. package/dist/services/errors.mjs.map +1 -1
  297. package/dist/services/event-hub.js.map +1 -1
  298. package/dist/services/event-hub.mjs.map +1 -1
  299. package/dist/services/features.js.map +1 -1
  300. package/dist/services/features.mjs.map +1 -1
  301. package/dist/services/fs.js.map +1 -1
  302. package/dist/services/fs.mjs.map +1 -1
  303. package/dist/services/metrics/admin-user-hash.js.map +1 -1
  304. package/dist/services/metrics/admin-user-hash.mjs.map +1 -1
  305. package/dist/services/metrics/index.js.map +1 -1
  306. package/dist/services/metrics/index.mjs.map +1 -1
  307. package/dist/services/metrics/is-truthy.js.map +1 -1
  308. package/dist/services/metrics/is-truthy.mjs.map +1 -1
  309. package/dist/services/metrics/middleware.js.map +1 -1
  310. package/dist/services/metrics/middleware.mjs.map +1 -1
  311. package/dist/services/metrics/rate-limiter.js.map +1 -1
  312. package/dist/services/metrics/rate-limiter.mjs.map +1 -1
  313. package/dist/services/metrics/sender.js.map +1 -1
  314. package/dist/services/metrics/sender.mjs.map +1 -1
  315. package/dist/services/query-params.js.map +1 -1
  316. package/dist/services/query-params.mjs.map +1 -1
  317. package/dist/services/reloader.js.map +1 -1
  318. package/dist/services/reloader.mjs.map +1 -1
  319. package/dist/services/request-context.js.map +1 -1
  320. package/dist/services/request-context.mjs.map +1 -1
  321. package/dist/services/server/admin-api.js.map +1 -1
  322. package/dist/services/server/admin-api.mjs.map +1 -1
  323. package/dist/services/server/api.js.map +1 -1
  324. package/dist/services/server/api.mjs.map +1 -1
  325. package/dist/services/server/compose-endpoint.js +1 -3
  326. package/dist/services/server/compose-endpoint.js.map +1 -1
  327. package/dist/services/server/compose-endpoint.mjs +1 -3
  328. package/dist/services/server/compose-endpoint.mjs.map +1 -1
  329. package/dist/services/server/content-api.js.map +1 -1
  330. package/dist/services/server/content-api.mjs.map +1 -1
  331. package/dist/services/server/http-server.js.map +1 -1
  332. package/dist/services/server/http-server.mjs.map +1 -1
  333. package/dist/services/server/index.js.map +1 -1
  334. package/dist/services/server/index.mjs.map +1 -1
  335. package/dist/services/server/koa.js.map +1 -1
  336. package/dist/services/server/koa.mjs.map +1 -1
  337. package/dist/services/server/middleware.js.map +1 -1
  338. package/dist/services/server/middleware.mjs.map +1 -1
  339. package/dist/services/server/policy.js.map +1 -1
  340. package/dist/services/server/policy.mjs.map +1 -1
  341. package/dist/services/server/register-middlewares.js.map +1 -1
  342. package/dist/services/server/register-middlewares.mjs.map +1 -1
  343. package/dist/services/server/register-routes.js.map +1 -1
  344. package/dist/services/server/register-routes.mjs.map +1 -1
  345. package/dist/services/server/routing.js.map +1 -1
  346. package/dist/services/server/routing.mjs.map +1 -1
  347. package/dist/services/session-manager.js.map +1 -1
  348. package/dist/services/session-manager.mjs.map +1 -1
  349. package/dist/services/utils/conditional-fields.js.map +1 -1
  350. package/dist/services/utils/conditional-fields.mjs.map +1 -1
  351. package/dist/services/utils/dynamic-zones.js.map +1 -1
  352. package/dist/services/utils/dynamic-zones.mjs.map +1 -1
  353. package/dist/services/webhook-runner.js.map +1 -1
  354. package/dist/services/webhook-runner.mjs.map +1 -1
  355. package/dist/services/webhook-store.js.map +1 -1
  356. package/dist/services/webhook-store.mjs.map +1 -1
  357. package/dist/services/worker-queue.js.map +1 -1
  358. package/dist/services/worker-queue.mjs.map +1 -1
  359. package/dist/utils/convert-custom-field-type.js.map +1 -1
  360. package/dist/utils/convert-custom-field-type.mjs.map +1 -1
  361. package/dist/utils/cron.js.map +1 -1
  362. package/dist/utils/cron.mjs.map +1 -1
  363. package/dist/utils/fetch.js.map +1 -1
  364. package/dist/utils/fetch.mjs.map +1 -1
  365. package/dist/utils/filepath-to-prop-path.js.map +1 -1
  366. package/dist/utils/filepath-to-prop-path.mjs.map +1 -1
  367. package/dist/utils/is-initialized.js.map +1 -1
  368. package/dist/utils/is-initialized.mjs.map +1 -1
  369. package/dist/utils/lifecycles.js.map +1 -1
  370. package/dist/utils/lifecycles.mjs.map +1 -1
  371. package/dist/utils/load-config-file.js.map +1 -1
  372. package/dist/utils/load-config-file.mjs.map +1 -1
  373. package/dist/utils/load-files.js.map +1 -1
  374. package/dist/utils/load-files.mjs.map +1 -1
  375. package/dist/utils/open-browser.js.map +1 -1
  376. package/dist/utils/open-browser.mjs.map +1 -1
  377. package/dist/utils/resolve-working-dirs.js.map +1 -1
  378. package/dist/utils/resolve-working-dirs.mjs.map +1 -1
  379. package/dist/utils/signals.js.map +1 -1
  380. package/dist/utils/signals.mjs.map +1 -1
  381. package/dist/utils/startup-logger.js.map +1 -1
  382. package/dist/utils/startup-logger.mjs.map +1 -1
  383. package/dist/utils/transform-content-types-to-models.js.map +1 -1
  384. package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
  385. package/dist/utils/update-notifier/index.js.map +1 -1
  386. package/dist/utils/update-notifier/index.mjs.map +1 -1
  387. package/package.json +18 -17
@@ -1 +1 @@
1
- {"version":3,"file":"features.mjs","sources":["../../src/services/features.ts"],"sourcesContent":["/**\n * The features service is responsible for managing features within strapi,\n * including interacting with the feature configuration file to know\n * which are enabled and disabled.\n */\n\nimport type { Core, Modules } from '@strapi/types';\n\ntype FeatureName = keyof Modules.Features.FeaturesConfig['future'];\n\nconst createFeaturesService = (strapi: Core.Strapi): Modules.Features.FeaturesService => {\n const service: Modules.Features.FeaturesService = {\n get config() {\n return strapi.config.get<Modules.Features.FeaturesService['config']>('features');\n },\n future: {\n isEnabled(futureFlagName: string): boolean {\n return service.config?.future?.[futureFlagName as FeatureName] === true;\n },\n },\n };\n\n return service;\n};\n\nexport { createFeaturesService };\nexport type FeaturesService = Modules.Features.FeaturesService;\n"],"names":["createFeaturesService","strapi","service","config","get","future","isEnabled","futureFlagName"],"mappings":"AAAA;;;;IAUA,MAAMA,wBAAwB,CAACC,MAAAA,GAAAA;AAC7B,IAAA,MAAMC,OAA4C,GAAA;AAChD,QAAA,IAAIC,MAAS,CAAA,GAAA;AACX,YAAA,OAAOF,MAAOE,CAAAA,MAAM,CAACC,GAAG,CAA6C,UAAA,CAAA;AACvE,SAAA;QACAC,MAAQ,EAAA;AACNC,YAAAA,SAAAA,CAAAA,CAAUC,cAAsB,EAAA;AAC9B,gBAAA,OAAOL,QAAQC,MAAM,EAAEE,MAAQ,GAACE,eAA8B,KAAK,IAAA;AACrE;AACF;AACF,KAAA;IAEA,OAAOL,OAAAA;AACT;;;;"}
1
+ {"version":3,"file":"features.mjs","sources":["../../src/services/features.ts"],"sourcesContent":["/**\n * The features service is responsible for managing features within strapi,\n * including interacting with the feature configuration file to know\n * which are enabled and disabled.\n */\n\nimport type { Core, Modules } from '@strapi/types';\n\ntype FeatureName = keyof Modules.Features.FeaturesConfig['future'];\n\nconst createFeaturesService = (strapi: Core.Strapi): Modules.Features.FeaturesService => {\n const service: Modules.Features.FeaturesService = {\n get config() {\n return strapi.config.get<Modules.Features.FeaturesService['config']>('features');\n },\n future: {\n isEnabled(futureFlagName: string): boolean {\n return service.config?.future?.[futureFlagName as FeatureName] === true;\n },\n },\n };\n\n return service;\n};\n\nexport { createFeaturesService };\nexport type FeaturesService = Modules.Features.FeaturesService;\n"],"names":["createFeaturesService","strapi","service","config","get","future","isEnabled","futureFlagName"],"mappings":"AAAA;;;;IAUA,MAAMA,wBAAwB,CAACC,MAAAA,GAAAA;AAC7B,IAAA,MAAMC,OAAAA,GAA4C;AAChD,QAAA,IAAIC,MAAAA,CAAAA,GAAS;AACX,YAAA,OAAOF,MAAAA,CAAOE,MAAM,CAACC,GAAG,CAA6C,UAAA,CAAA;AACvE,QAAA,CAAA;QACAC,MAAAA,EAAQ;AACNC,YAAAA,SAAAA,CAAAA,CAAUC,cAAsB,EAAA;AAC9B,gBAAA,OAAOL,QAAQC,MAAM,EAAEE,MAAAA,GAASE,eAA8B,KAAK,IAAA;AACrE,YAAA;AACF;AACF,KAAA;IAEA,OAAOL,OAAAA;AACT;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"fs.js","sources":["../../src/services/fs.ts"],"sourcesContent":["import path from 'path';\nimport fse from 'fs-extra';\n\nimport type { Core } from '@strapi/types';\n\ninterface StrapiFS {\n writeAppFile(optPath: string | string[], data: string): Promise<void>;\n writePluginFile(plugin: string, optPath: string | string[], data: string): Promise<void>;\n removeAppFile(optPath: string | string[]): Promise<void>;\n appendFile(optPath: string | string[], data: string): void;\n}\n\n/**\n * create strapi fs layer\n */\nexport default (strapi: Core.Strapi) => {\n function normalizePath(optPath: string | string[]) {\n const filePath = Array.isArray(optPath) ? optPath.join('/') : optPath;\n\n const normalizedPath = path.normalize(filePath).replace(/^\\/?(\\.\\/|\\.\\.\\/)+/, '');\n\n return path.resolve(strapi.dirs.app.root, normalizedPath);\n }\n\n const strapiFS: StrapiFS = {\n /**\n * Writes a file in a strapi app\n * @param {Array|string} optPath - file path\n * @param {string} data - content\n */\n writeAppFile(optPath, data) {\n const writePath = normalizePath(optPath);\n return fse.ensureFile(writePath).then(() => fse.writeFile(writePath, data));\n },\n\n /**\n * Writes a file in a plugin extensions folder\n * @param {string} plugin - plugin name\n * @param {Array|string} optPath - path to file\n * @param {string} data - content\n */\n writePluginFile(plugin, optPath, data) {\n const newPath = ['extensions', plugin].concat(optPath).join('/');\n return strapiFS.writeAppFile(newPath, data);\n },\n\n /**\n * Removes a file in strapi app\n */\n removeAppFile(optPath) {\n const removePath = normalizePath(optPath);\n return fse.remove(removePath);\n },\n\n /**\n * Appends a file in strapi app\n */\n appendFile(optPath, data) {\n const writePath = normalizePath(optPath);\n return fse.appendFileSync(writePath, data);\n },\n };\n\n return strapiFS;\n};\n"],"names":["strapi","normalizePath","optPath","filePath","Array","isArray","join","normalizedPath","path","normalize","replace","resolve","dirs","app","root","strapiFS","writeAppFile","data","writePath","fse","ensureFile","then","writeFile","writePluginFile","plugin","newPath","concat","removeAppFile","removePath","remove","appendFile","appendFileSync"],"mappings":";;;;;AAYA;;IAGA,qBAAe,CAAA,CAACA,MAAAA,GAAAA;AACd,IAAA,SAASC,cAAcC,OAA0B,EAAA;QAC/C,MAAMC,QAAAA,GAAWC,MAAMC,OAAO,CAACH,WAAWA,OAAQI,CAAAA,IAAI,CAAC,GAAOJ,CAAAA,GAAAA,OAAAA;AAE9D,QAAA,MAAMK,iBAAiBC,IAAKC,CAAAA,SAAS,CAACN,QAAUO,CAAAA,CAAAA,OAAO,CAAC,oBAAsB,EAAA,EAAA,CAAA;QAE9E,OAAOF,IAAAA,CAAKG,OAAO,CAACX,MAAAA,CAAOY,IAAI,CAACC,GAAG,CAACC,IAAI,EAAEP,cAAAA,CAAAA;AAC5C;AAEA,IAAA,MAAMQ,QAAqB,GAAA;AACzB;;;;QAKAC,YAAAA,CAAAA,CAAad,OAAO,EAAEe,IAAI,EAAA;AACxB,YAAA,MAAMC,YAAYjB,aAAcC,CAAAA,OAAAA,CAAAA;YAChC,OAAOiB,GAAAA,CAAIC,UAAU,CAACF,SAAWG,CAAAA,CAAAA,IAAI,CAAC,IAAMF,GAAAA,CAAIG,SAAS,CAACJ,SAAWD,EAAAA,IAAAA,CAAAA,CAAAA;AACvE,SAAA;AAEA;;;;;AAKC,QACDM,eAAgBC,CAAAA,CAAAA,MAAM,EAAEtB,OAAO,EAAEe,IAAI,EAAA;AACnC,YAAA,MAAMQ,OAAU,GAAA;AAAC,gBAAA,YAAA;AAAcD,gBAAAA;AAAO,aAAA,CAACE,MAAM,CAACxB,OAASI,CAAAA,CAAAA,IAAI,CAAC,GAAA,CAAA;YAC5D,OAAOS,QAAAA,CAASC,YAAY,CAACS,OAASR,EAAAA,IAAAA,CAAAA;AACxC,SAAA;AAEA;;AAEC,QACDU,eAAczB,OAAO,EAAA;AACnB,YAAA,MAAM0B,aAAa3B,aAAcC,CAAAA,OAAAA,CAAAA;YACjC,OAAOiB,GAAAA,CAAIU,MAAM,CAACD,UAAAA,CAAAA;AACpB,SAAA;AAEA;;QAGAE,UAAAA,CAAAA,CAAW5B,OAAO,EAAEe,IAAI,EAAA;AACtB,YAAA,MAAMC,YAAYjB,aAAcC,CAAAA,OAAAA,CAAAA;YAChC,OAAOiB,GAAAA,CAAIY,cAAc,CAACb,SAAWD,EAAAA,IAAAA,CAAAA;AACvC;AACF,KAAA;IAEA,OAAOF,QAAAA;AACT,CAAA;;;;"}
1
+ {"version":3,"file":"fs.js","sources":["../../src/services/fs.ts"],"sourcesContent":["import path from 'path';\nimport fse from 'fs-extra';\n\nimport type { Core } from '@strapi/types';\n\ninterface StrapiFS {\n writeAppFile(optPath: string | string[], data: string): Promise<void>;\n writePluginFile(plugin: string, optPath: string | string[], data: string): Promise<void>;\n removeAppFile(optPath: string | string[]): Promise<void>;\n appendFile(optPath: string | string[], data: string): void;\n}\n\n/**\n * create strapi fs layer\n */\nexport default (strapi: Core.Strapi) => {\n function normalizePath(optPath: string | string[]) {\n const filePath = Array.isArray(optPath) ? optPath.join('/') : optPath;\n\n const normalizedPath = path.normalize(filePath).replace(/^\\/?(\\.\\/|\\.\\.\\/)+/, '');\n\n return path.resolve(strapi.dirs.app.root, normalizedPath);\n }\n\n const strapiFS: StrapiFS = {\n /**\n * Writes a file in a strapi app\n * @param {Array|string} optPath - file path\n * @param {string} data - content\n */\n writeAppFile(optPath, data) {\n const writePath = normalizePath(optPath);\n return fse.ensureFile(writePath).then(() => fse.writeFile(writePath, data));\n },\n\n /**\n * Writes a file in a plugin extensions folder\n * @param {string} plugin - plugin name\n * @param {Array|string} optPath - path to file\n * @param {string} data - content\n */\n writePluginFile(plugin, optPath, data) {\n const newPath = ['extensions', plugin].concat(optPath).join('/');\n return strapiFS.writeAppFile(newPath, data);\n },\n\n /**\n * Removes a file in strapi app\n */\n removeAppFile(optPath) {\n const removePath = normalizePath(optPath);\n return fse.remove(removePath);\n },\n\n /**\n * Appends a file in strapi app\n */\n appendFile(optPath, data) {\n const writePath = normalizePath(optPath);\n return fse.appendFileSync(writePath, data);\n },\n };\n\n return strapiFS;\n};\n"],"names":["strapi","normalizePath","optPath","filePath","Array","isArray","join","normalizedPath","path","normalize","replace","resolve","dirs","app","root","strapiFS","writeAppFile","data","writePath","fse","ensureFile","then","writeFile","writePluginFile","plugin","newPath","concat","removeAppFile","removePath","remove","appendFile","appendFileSync"],"mappings":";;;;;AAYA;;IAGA,qBAAe,CAAA,CAACA,MAAAA,GAAAA;AACd,IAAA,SAASC,cAAcC,OAA0B,EAAA;QAC/C,MAAMC,QAAAA,GAAWC,MAAMC,OAAO,CAACH,WAAWA,OAAAA,CAAQI,IAAI,CAAC,GAAA,CAAA,GAAOJ,OAAAA;AAE9D,QAAA,MAAMK,iBAAiBC,IAAAA,CAAKC,SAAS,CAACN,QAAAA,CAAAA,CAAUO,OAAO,CAAC,oBAAA,EAAsB,EAAA,CAAA;QAE9E,OAAOF,IAAAA,CAAKG,OAAO,CAACX,MAAAA,CAAOY,IAAI,CAACC,GAAG,CAACC,IAAI,EAAEP,cAAAA,CAAAA;AAC5C,IAAA;AAEA,IAAA,MAAMQ,QAAAA,GAAqB;AACzB;;;;QAKAC,YAAAA,CAAAA,CAAad,OAAO,EAAEe,IAAI,EAAA;AACxB,YAAA,MAAMC,YAAYjB,aAAAA,CAAcC,OAAAA,CAAAA;YAChC,OAAOiB,GAAAA,CAAIC,UAAU,CAACF,SAAAA,CAAAA,CAAWG,IAAI,CAAC,IAAMF,GAAAA,CAAIG,SAAS,CAACJ,SAAAA,EAAWD,IAAAA,CAAAA,CAAAA;AACvE,QAAA,CAAA;AAEA;;;;;AAKC,QACDM,eAAAA,CAAAA,CAAgBC,MAAM,EAAEtB,OAAO,EAAEe,IAAI,EAAA;AACnC,YAAA,MAAMQ,OAAAA,GAAU;AAAC,gBAAA,YAAA;AAAcD,gBAAAA;AAAO,aAAA,CAACE,MAAM,CAACxB,OAAAA,CAAAA,CAASI,IAAI,CAAC,GAAA,CAAA;YAC5D,OAAOS,QAAAA,CAASC,YAAY,CAACS,OAAAA,EAASR,IAAAA,CAAAA;AACxC,QAAA,CAAA;AAEA;;AAEC,QACDU,eAAczB,OAAO,EAAA;AACnB,YAAA,MAAM0B,aAAa3B,aAAAA,CAAcC,OAAAA,CAAAA;YACjC,OAAOiB,GAAAA,CAAIU,MAAM,CAACD,UAAAA,CAAAA;AACpB,QAAA,CAAA;AAEA;;QAGAE,UAAAA,CAAAA,CAAW5B,OAAO,EAAEe,IAAI,EAAA;AACtB,YAAA,MAAMC,YAAYjB,aAAAA,CAAcC,OAAAA,CAAAA;YAChC,OAAOiB,GAAAA,CAAIY,cAAc,CAACb,SAAAA,EAAWD,IAAAA,CAAAA;AACvC,QAAA;AACF,KAAA;IAEA,OAAOF,QAAAA;AACT,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"fs.mjs","sources":["../../src/services/fs.ts"],"sourcesContent":["import path from 'path';\nimport fse from 'fs-extra';\n\nimport type { Core } from '@strapi/types';\n\ninterface StrapiFS {\n writeAppFile(optPath: string | string[], data: string): Promise<void>;\n writePluginFile(plugin: string, optPath: string | string[], data: string): Promise<void>;\n removeAppFile(optPath: string | string[]): Promise<void>;\n appendFile(optPath: string | string[], data: string): void;\n}\n\n/**\n * create strapi fs layer\n */\nexport default (strapi: Core.Strapi) => {\n function normalizePath(optPath: string | string[]) {\n const filePath = Array.isArray(optPath) ? optPath.join('/') : optPath;\n\n const normalizedPath = path.normalize(filePath).replace(/^\\/?(\\.\\/|\\.\\.\\/)+/, '');\n\n return path.resolve(strapi.dirs.app.root, normalizedPath);\n }\n\n const strapiFS: StrapiFS = {\n /**\n * Writes a file in a strapi app\n * @param {Array|string} optPath - file path\n * @param {string} data - content\n */\n writeAppFile(optPath, data) {\n const writePath = normalizePath(optPath);\n return fse.ensureFile(writePath).then(() => fse.writeFile(writePath, data));\n },\n\n /**\n * Writes a file in a plugin extensions folder\n * @param {string} plugin - plugin name\n * @param {Array|string} optPath - path to file\n * @param {string} data - content\n */\n writePluginFile(plugin, optPath, data) {\n const newPath = ['extensions', plugin].concat(optPath).join('/');\n return strapiFS.writeAppFile(newPath, data);\n },\n\n /**\n * Removes a file in strapi app\n */\n removeAppFile(optPath) {\n const removePath = normalizePath(optPath);\n return fse.remove(removePath);\n },\n\n /**\n * Appends a file in strapi app\n */\n appendFile(optPath, data) {\n const writePath = normalizePath(optPath);\n return fse.appendFileSync(writePath, data);\n },\n };\n\n return strapiFS;\n};\n"],"names":["strapi","normalizePath","optPath","filePath","Array","isArray","join","normalizedPath","path","normalize","replace","resolve","dirs","app","root","strapiFS","writeAppFile","data","writePath","fse","ensureFile","then","writeFile","writePluginFile","plugin","newPath","concat","removeAppFile","removePath","remove","appendFile","appendFileSync"],"mappings":";;;AAYA;;IAGA,qBAAe,CAAA,CAACA,MAAAA,GAAAA;AACd,IAAA,SAASC,cAAcC,OAA0B,EAAA;QAC/C,MAAMC,QAAAA,GAAWC,MAAMC,OAAO,CAACH,WAAWA,OAAQI,CAAAA,IAAI,CAAC,GAAOJ,CAAAA,GAAAA,OAAAA;AAE9D,QAAA,MAAMK,iBAAiBC,IAAKC,CAAAA,SAAS,CAACN,QAAUO,CAAAA,CAAAA,OAAO,CAAC,oBAAsB,EAAA,EAAA,CAAA;QAE9E,OAAOF,IAAAA,CAAKG,OAAO,CAACX,MAAAA,CAAOY,IAAI,CAACC,GAAG,CAACC,IAAI,EAAEP,cAAAA,CAAAA;AAC5C;AAEA,IAAA,MAAMQ,QAAqB,GAAA;AACzB;;;;QAKAC,YAAAA,CAAAA,CAAad,OAAO,EAAEe,IAAI,EAAA;AACxB,YAAA,MAAMC,YAAYjB,aAAcC,CAAAA,OAAAA,CAAAA;YAChC,OAAOiB,GAAAA,CAAIC,UAAU,CAACF,SAAWG,CAAAA,CAAAA,IAAI,CAAC,IAAMF,GAAAA,CAAIG,SAAS,CAACJ,SAAWD,EAAAA,IAAAA,CAAAA,CAAAA;AACvE,SAAA;AAEA;;;;;AAKC,QACDM,eAAgBC,CAAAA,CAAAA,MAAM,EAAEtB,OAAO,EAAEe,IAAI,EAAA;AACnC,YAAA,MAAMQ,OAAU,GAAA;AAAC,gBAAA,YAAA;AAAcD,gBAAAA;AAAO,aAAA,CAACE,MAAM,CAACxB,OAASI,CAAAA,CAAAA,IAAI,CAAC,GAAA,CAAA;YAC5D,OAAOS,QAAAA,CAASC,YAAY,CAACS,OAASR,EAAAA,IAAAA,CAAAA;AACxC,SAAA;AAEA;;AAEC,QACDU,eAAczB,OAAO,EAAA;AACnB,YAAA,MAAM0B,aAAa3B,aAAcC,CAAAA,OAAAA,CAAAA;YACjC,OAAOiB,GAAAA,CAAIU,MAAM,CAACD,UAAAA,CAAAA;AACpB,SAAA;AAEA;;QAGAE,UAAAA,CAAAA,CAAW5B,OAAO,EAAEe,IAAI,EAAA;AACtB,YAAA,MAAMC,YAAYjB,aAAcC,CAAAA,OAAAA,CAAAA;YAChC,OAAOiB,GAAAA,CAAIY,cAAc,CAACb,SAAWD,EAAAA,IAAAA,CAAAA;AACvC;AACF,KAAA;IAEA,OAAOF,QAAAA;AACT,CAAA;;;;"}
1
+ {"version":3,"file":"fs.mjs","sources":["../../src/services/fs.ts"],"sourcesContent":["import path from 'path';\nimport fse from 'fs-extra';\n\nimport type { Core } from '@strapi/types';\n\ninterface StrapiFS {\n writeAppFile(optPath: string | string[], data: string): Promise<void>;\n writePluginFile(plugin: string, optPath: string | string[], data: string): Promise<void>;\n removeAppFile(optPath: string | string[]): Promise<void>;\n appendFile(optPath: string | string[], data: string): void;\n}\n\n/**\n * create strapi fs layer\n */\nexport default (strapi: Core.Strapi) => {\n function normalizePath(optPath: string | string[]) {\n const filePath = Array.isArray(optPath) ? optPath.join('/') : optPath;\n\n const normalizedPath = path.normalize(filePath).replace(/^\\/?(\\.\\/|\\.\\.\\/)+/, '');\n\n return path.resolve(strapi.dirs.app.root, normalizedPath);\n }\n\n const strapiFS: StrapiFS = {\n /**\n * Writes a file in a strapi app\n * @param {Array|string} optPath - file path\n * @param {string} data - content\n */\n writeAppFile(optPath, data) {\n const writePath = normalizePath(optPath);\n return fse.ensureFile(writePath).then(() => fse.writeFile(writePath, data));\n },\n\n /**\n * Writes a file in a plugin extensions folder\n * @param {string} plugin - plugin name\n * @param {Array|string} optPath - path to file\n * @param {string} data - content\n */\n writePluginFile(plugin, optPath, data) {\n const newPath = ['extensions', plugin].concat(optPath).join('/');\n return strapiFS.writeAppFile(newPath, data);\n },\n\n /**\n * Removes a file in strapi app\n */\n removeAppFile(optPath) {\n const removePath = normalizePath(optPath);\n return fse.remove(removePath);\n },\n\n /**\n * Appends a file in strapi app\n */\n appendFile(optPath, data) {\n const writePath = normalizePath(optPath);\n return fse.appendFileSync(writePath, data);\n },\n };\n\n return strapiFS;\n};\n"],"names":["strapi","normalizePath","optPath","filePath","Array","isArray","join","normalizedPath","path","normalize","replace","resolve","dirs","app","root","strapiFS","writeAppFile","data","writePath","fse","ensureFile","then","writeFile","writePluginFile","plugin","newPath","concat","removeAppFile","removePath","remove","appendFile","appendFileSync"],"mappings":";;;AAYA;;IAGA,qBAAe,CAAA,CAACA,MAAAA,GAAAA;AACd,IAAA,SAASC,cAAcC,OAA0B,EAAA;QAC/C,MAAMC,QAAAA,GAAWC,MAAMC,OAAO,CAACH,WAAWA,OAAAA,CAAQI,IAAI,CAAC,GAAA,CAAA,GAAOJ,OAAAA;AAE9D,QAAA,MAAMK,iBAAiBC,IAAAA,CAAKC,SAAS,CAACN,QAAAA,CAAAA,CAAUO,OAAO,CAAC,oBAAA,EAAsB,EAAA,CAAA;QAE9E,OAAOF,IAAAA,CAAKG,OAAO,CAACX,MAAAA,CAAOY,IAAI,CAACC,GAAG,CAACC,IAAI,EAAEP,cAAAA,CAAAA;AAC5C,IAAA;AAEA,IAAA,MAAMQ,QAAAA,GAAqB;AACzB;;;;QAKAC,YAAAA,CAAAA,CAAad,OAAO,EAAEe,IAAI,EAAA;AACxB,YAAA,MAAMC,YAAYjB,aAAAA,CAAcC,OAAAA,CAAAA;YAChC,OAAOiB,GAAAA,CAAIC,UAAU,CAACF,SAAAA,CAAAA,CAAWG,IAAI,CAAC,IAAMF,GAAAA,CAAIG,SAAS,CAACJ,SAAAA,EAAWD,IAAAA,CAAAA,CAAAA;AACvE,QAAA,CAAA;AAEA;;;;;AAKC,QACDM,eAAAA,CAAAA,CAAgBC,MAAM,EAAEtB,OAAO,EAAEe,IAAI,EAAA;AACnC,YAAA,MAAMQ,OAAAA,GAAU;AAAC,gBAAA,YAAA;AAAcD,gBAAAA;AAAO,aAAA,CAACE,MAAM,CAACxB,OAAAA,CAAAA,CAASI,IAAI,CAAC,GAAA,CAAA;YAC5D,OAAOS,QAAAA,CAASC,YAAY,CAACS,OAAAA,EAASR,IAAAA,CAAAA;AACxC,QAAA,CAAA;AAEA;;AAEC,QACDU,eAAczB,OAAO,EAAA;AACnB,YAAA,MAAM0B,aAAa3B,aAAAA,CAAcC,OAAAA,CAAAA;YACjC,OAAOiB,GAAAA,CAAIU,MAAM,CAACD,UAAAA,CAAAA;AACpB,QAAA,CAAA;AAEA;;QAGAE,UAAAA,CAAAA,CAAW5B,OAAO,EAAEe,IAAI,EAAA;AACtB,YAAA,MAAMC,YAAYjB,aAAAA,CAAcC,OAAAA,CAAAA;YAChC,OAAOiB,GAAAA,CAAIY,cAAc,CAACb,SAAAA,EAAWD,IAAAA,CAAAA;AACvC,QAAA;AACF,KAAA;IAEA,OAAOF,QAAAA;AACT,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"admin-user-hash.js","sources":["../../../src/services/metrics/admin-user-hash.ts"],"sourcesContent":["import crypto from 'crypto';\nimport type { Core } from '@strapi/types';\n\n/**\n * Generate an admin user hash\n */\nconst generateAdminUserHash = (strapi: Core.Strapi) => {\n const ctx = strapi?.requestContext?.get();\n\n if (!ctx?.state?.user?.email) {\n return '';\n }\n return crypto.createHash('sha256').update(ctx.state.user.email).digest('hex');\n};\n\nexport { generateAdminUserHash };\n"],"names":["generateAdminUserHash","strapi","ctx","requestContext","get","state","user","email","crypto","createHash","update","digest"],"mappings":";;;;AAGA;;IAGA,MAAMA,wBAAwB,CAACC,MAAAA,GAAAA;IAC7B,MAAMC,GAAAA,GAAMD,QAAQE,cAAgBC,EAAAA,GAAAA,EAAAA;AAEpC,IAAA,IAAI,CAACF,GAAAA,EAAKG,KAAOC,EAAAA,IAAAA,EAAMC,KAAO,EAAA;QAC5B,OAAO,EAAA;AACT;AACA,IAAA,OAAOC,MAAOC,CAAAA,UAAU,CAAC,QAAA,CAAA,CAAUC,MAAM,CAACR,GAAAA,CAAIG,KAAK,CAACC,IAAI,CAACC,KAAK,CAAA,CAAEI,MAAM,CAAC,KAAA,CAAA;AACzE;;;;"}
1
+ {"version":3,"file":"admin-user-hash.js","sources":["../../../src/services/metrics/admin-user-hash.ts"],"sourcesContent":["import crypto from 'crypto';\nimport type { Core } from '@strapi/types';\n\n/**\n * Generate an admin user hash\n */\nconst generateAdminUserHash = (strapi: Core.Strapi) => {\n const ctx = strapi?.requestContext?.get();\n\n if (!ctx?.state?.user?.email) {\n return '';\n }\n return crypto.createHash('sha256').update(ctx.state.user.email).digest('hex');\n};\n\nexport { generateAdminUserHash };\n"],"names":["generateAdminUserHash","strapi","ctx","requestContext","get","state","user","email","crypto","createHash","update","digest"],"mappings":";;;;AAGA;;IAGA,MAAMA,wBAAwB,CAACC,MAAAA,GAAAA;IAC7B,MAAMC,GAAAA,GAAMD,QAAQE,cAAAA,EAAgBC,GAAAA,EAAAA;AAEpC,IAAA,IAAI,CAACF,GAAAA,EAAKG,KAAAA,EAAOC,IAAAA,EAAMC,KAAAA,EAAO;QAC5B,OAAO,EAAA;AACT,IAAA;AACA,IAAA,OAAOC,MAAAA,CAAOC,UAAU,CAAC,QAAA,CAAA,CAAUC,MAAM,CAACR,GAAAA,CAAIG,KAAK,CAACC,IAAI,CAACC,KAAK,CAAA,CAAEI,MAAM,CAAC,KAAA,CAAA;AACzE;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"admin-user-hash.mjs","sources":["../../../src/services/metrics/admin-user-hash.ts"],"sourcesContent":["import crypto from 'crypto';\nimport type { Core } from '@strapi/types';\n\n/**\n * Generate an admin user hash\n */\nconst generateAdminUserHash = (strapi: Core.Strapi) => {\n const ctx = strapi?.requestContext?.get();\n\n if (!ctx?.state?.user?.email) {\n return '';\n }\n return crypto.createHash('sha256').update(ctx.state.user.email).digest('hex');\n};\n\nexport { generateAdminUserHash };\n"],"names":["generateAdminUserHash","strapi","ctx","requestContext","get","state","user","email","crypto","createHash","update","digest"],"mappings":";;AAGA;;IAGA,MAAMA,wBAAwB,CAACC,MAAAA,GAAAA;IAC7B,MAAMC,GAAAA,GAAMD,QAAQE,cAAgBC,EAAAA,GAAAA,EAAAA;AAEpC,IAAA,IAAI,CAACF,GAAAA,EAAKG,KAAOC,EAAAA,IAAAA,EAAMC,KAAO,EAAA;QAC5B,OAAO,EAAA;AACT;AACA,IAAA,OAAOC,MAAOC,CAAAA,UAAU,CAAC,QAAA,CAAA,CAAUC,MAAM,CAACR,GAAAA,CAAIG,KAAK,CAACC,IAAI,CAACC,KAAK,CAAA,CAAEI,MAAM,CAAC,KAAA,CAAA;AACzE;;;;"}
1
+ {"version":3,"file":"admin-user-hash.mjs","sources":["../../../src/services/metrics/admin-user-hash.ts"],"sourcesContent":["import crypto from 'crypto';\nimport type { Core } from '@strapi/types';\n\n/**\n * Generate an admin user hash\n */\nconst generateAdminUserHash = (strapi: Core.Strapi) => {\n const ctx = strapi?.requestContext?.get();\n\n if (!ctx?.state?.user?.email) {\n return '';\n }\n return crypto.createHash('sha256').update(ctx.state.user.email).digest('hex');\n};\n\nexport { generateAdminUserHash };\n"],"names":["generateAdminUserHash","strapi","ctx","requestContext","get","state","user","email","crypto","createHash","update","digest"],"mappings":";;AAGA;;IAGA,MAAMA,wBAAwB,CAACC,MAAAA,GAAAA;IAC7B,MAAMC,GAAAA,GAAMD,QAAQE,cAAAA,EAAgBC,GAAAA,EAAAA;AAEpC,IAAA,IAAI,CAACF,GAAAA,EAAKG,KAAAA,EAAOC,IAAAA,EAAMC,KAAAA,EAAO;QAC5B,OAAO,EAAA;AACT,IAAA;AACA,IAAA,OAAOC,MAAAA,CAAOC,UAAU,CAAC,QAAA,CAAA,CAAUC,MAAM,CAACR,GAAAA,CAAIG,KAAK,CAACC,IAAI,CAACC,KAAK,CAAA,CAAEI,MAAM,CAAC,KAAA,CAAA;AACzE;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/services/metrics/index.ts"],"sourcesContent":["/**\n * Strapi telemetry package.\n * You can learn more at https://docs.strapi.io/developer-docs/latest/getting-started/usage-information.html\n */\n\nimport type { Core } from '@strapi/types';\n\nimport wrapWithRateLimit from './rate-limiter';\nimport createSender from './sender';\nimport createMiddleware from './middleware';\nimport isTruthy from './is-truthy';\n\nconst LIMITED_EVENTS = [\n 'didSaveMediaWithAlternativeText',\n 'didSaveMediaWithCaption',\n 'didDisableResponsiveDimensions',\n 'didEnableResponsiveDimensions',\n 'didInitializePluginUpload',\n];\n\nconst createTelemetryInstance = (strapi: Core.Strapi) => {\n const uuid = strapi.config.get('uuid');\n const telemetryDisabled = strapi.config.get('packageJsonStrapi.telemetryDisabled');\n const isDisabled =\n !uuid || isTruthy(process.env.STRAPI_TELEMETRY_DISABLED) || isTruthy(telemetryDisabled);\n\n const sender = createSender(strapi);\n const sendEvent = wrapWithRateLimit(sender, { limitedEvents: LIMITED_EVENTS });\n\n return {\n get isDisabled() {\n return isDisabled;\n },\n\n register() {\n if (!isDisabled) {\n strapi.cron.add({\n sendPingEvent: {\n task: () => sendEvent('ping'),\n options: '0 0 12 * * *',\n },\n });\n\n strapi.server.use(createMiddleware({ sendEvent, strapi }));\n }\n },\n\n bootstrap() {},\n\n async send(event: string, payload: Record<string, unknown> = {}) {\n if (isDisabled) return true;\n return sendEvent(event, payload);\n },\n\n destroy() {\n // Clean up resources if needed\n },\n };\n};\n\nexport default createTelemetryInstance;\n"],"names":["LIMITED_EVENTS","createTelemetryInstance","strapi","uuid","config","get","telemetryDisabled","isDisabled","isTruthy","process","env","STRAPI_TELEMETRY_DISABLED","sender","createSender","sendEvent","wrapWithRateLimit","limitedEvents","register","cron","add","sendPingEvent","task","options","server","use","createMiddleware","bootstrap","send","event","payload","destroy"],"mappings":";;;;;;;AAYA,MAAMA,cAAiB,GAAA;AACrB,IAAA,iCAAA;AACA,IAAA,yBAAA;AACA,IAAA,gCAAA;AACA,IAAA,+BAAA;AACA,IAAA;AACD,CAAA;AAED,MAAMC,0BAA0B,CAACC,MAAAA,GAAAA;AAC/B,IAAA,MAAMC,IAAOD,GAAAA,MAAAA,CAAOE,MAAM,CAACC,GAAG,CAAC,MAAA,CAAA;AAC/B,IAAA,MAAMC,iBAAoBJ,GAAAA,MAAAA,CAAOE,MAAM,CAACC,GAAG,CAAC,qCAAA,CAAA;IAC5C,MAAME,UAAAA,GACJ,CAACJ,IAAQK,IAAAA,QAAAA,CAASC,QAAQC,GAAG,CAACC,yBAAyB,CAAA,IAAKH,QAASF,CAAAA,iBAAAA,CAAAA;AAEvE,IAAA,MAAMM,WAASC,MAAaX,CAAAA,MAAAA,CAAAA;IAC5B,MAAMY,SAAAA,GAAYC,YAAkBH,QAAQ,EAAA;QAAEI,aAAehB,EAAAA;AAAe,KAAA,CAAA;IAE5E,OAAO;AACL,QAAA,IAAIO,UAAa,CAAA,GAAA;YACf,OAAOA,UAAAA;AACT,SAAA;AAEAU,QAAAA,QAAAA,CAAAA,GAAAA;AACE,YAAA,IAAI,CAACV,UAAY,EAAA;gBACfL,MAAOgB,CAAAA,IAAI,CAACC,GAAG,CAAC;oBACdC,aAAe,EAAA;AACbC,wBAAAA,IAAAA,EAAM,IAAMP,SAAU,CAAA,MAAA,CAAA;wBACtBQ,OAAS,EAAA;AACX;AACF,iBAAA,CAAA;AAEApB,gBAAAA,MAAAA,CAAOqB,MAAM,CAACC,GAAG,CAACC,UAAiB,CAAA;AAAEX,oBAAAA,SAAAA;AAAWZ,oBAAAA;AAAO,iBAAA,CAAA,CAAA;AACzD;AACF,SAAA;QAEAwB,SAAa,CAAA,GAAA,EAAA;AAEb,QAAA,MAAMC,IAAKC,CAAAA,CAAAA,KAAa,EAAEC,OAAAA,GAAmC,EAAE,EAAA;AAC7D,YAAA,IAAItB,YAAY,OAAO,IAAA;AACvB,YAAA,OAAOO,UAAUc,KAAOC,EAAAA,OAAAA,CAAAA;AAC1B,SAAA;AAEAC,QAAAA,OAAAA,CAAAA,GAAAA;;AAEA;AACF,KAAA;AACF;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/services/metrics/index.ts"],"sourcesContent":["/**\n * Strapi telemetry package.\n * You can learn more at https://docs.strapi.io/developer-docs/latest/getting-started/usage-information.html\n */\n\nimport type { Core } from '@strapi/types';\n\nimport wrapWithRateLimit from './rate-limiter';\nimport createSender from './sender';\nimport createMiddleware from './middleware';\nimport isTruthy from './is-truthy';\n\nconst LIMITED_EVENTS = [\n 'didSaveMediaWithAlternativeText',\n 'didSaveMediaWithCaption',\n 'didDisableResponsiveDimensions',\n 'didEnableResponsiveDimensions',\n 'didInitializePluginUpload',\n];\n\nconst createTelemetryInstance = (strapi: Core.Strapi) => {\n const uuid = strapi.config.get('uuid');\n const telemetryDisabled = strapi.config.get('packageJsonStrapi.telemetryDisabled');\n const isDisabled =\n !uuid || isTruthy(process.env.STRAPI_TELEMETRY_DISABLED) || isTruthy(telemetryDisabled);\n\n const sender = createSender(strapi);\n const sendEvent = wrapWithRateLimit(sender, { limitedEvents: LIMITED_EVENTS });\n\n return {\n get isDisabled() {\n return isDisabled;\n },\n\n register() {\n if (!isDisabled) {\n strapi.cron.add({\n sendPingEvent: {\n task: () => sendEvent('ping'),\n options: '0 0 12 * * *',\n },\n });\n\n strapi.server.use(createMiddleware({ sendEvent, strapi }));\n }\n },\n\n bootstrap() {},\n\n async send(event: string, payload: Record<string, unknown> = {}) {\n if (isDisabled) return true;\n return sendEvent(event, payload);\n },\n\n destroy() {\n // Clean up resources if needed\n },\n };\n};\n\nexport default createTelemetryInstance;\n"],"names":["LIMITED_EVENTS","createTelemetryInstance","strapi","uuid","config","get","telemetryDisabled","isDisabled","isTruthy","process","env","STRAPI_TELEMETRY_DISABLED","sender","createSender","sendEvent","wrapWithRateLimit","limitedEvents","register","cron","add","sendPingEvent","task","options","server","use","createMiddleware","bootstrap","send","event","payload","destroy"],"mappings":";;;;;;;AAYA,MAAMA,cAAAA,GAAiB;AACrB,IAAA,iCAAA;AACA,IAAA,yBAAA;AACA,IAAA,gCAAA;AACA,IAAA,+BAAA;AACA,IAAA;AACD,CAAA;AAED,MAAMC,0BAA0B,CAACC,MAAAA,GAAAA;AAC/B,IAAA,MAAMC,IAAAA,GAAOD,MAAAA,CAAOE,MAAM,CAACC,GAAG,CAAC,MAAA,CAAA;AAC/B,IAAA,MAAMC,iBAAAA,GAAoBJ,MAAAA,CAAOE,MAAM,CAACC,GAAG,CAAC,qCAAA,CAAA;IAC5C,MAAME,UAAAA,GACJ,CAACJ,IAAAA,IAAQK,QAAAA,CAASC,QAAQC,GAAG,CAACC,yBAAyB,CAAA,IAAKH,QAAAA,CAASF,iBAAAA,CAAAA;AAEvE,IAAA,MAAMM,WAASC,MAAAA,CAAaX,MAAAA,CAAAA;IAC5B,MAAMY,SAAAA,GAAYC,YAAkBH,QAAAA,EAAQ;QAAEI,aAAAA,EAAehB;AAAe,KAAA,CAAA;IAE5E,OAAO;AACL,QAAA,IAAIO,UAAAA,CAAAA,GAAa;YACf,OAAOA,UAAAA;AACT,QAAA,CAAA;AAEAU,QAAAA,QAAAA,CAAAA,GAAAA;AACE,YAAA,IAAI,CAACV,UAAAA,EAAY;gBACfL,MAAAA,CAAOgB,IAAI,CAACC,GAAG,CAAC;oBACdC,aAAAA,EAAe;AACbC,wBAAAA,IAAAA,EAAM,IAAMP,SAAAA,CAAU,MAAA,CAAA;wBACtBQ,OAAAA,EAAS;AACX;AACF,iBAAA,CAAA;AAEApB,gBAAAA,MAAAA,CAAOqB,MAAM,CAACC,GAAG,CAACC,UAAAA,CAAiB;AAAEX,oBAAAA,SAAAA;AAAWZ,oBAAAA;AAAO,iBAAA,CAAA,CAAA;AACzD,YAAA;AACF,QAAA,CAAA;QAEAwB,SAAAA,CAAAA,GAAAA,CAAa,CAAA;AAEb,QAAA,MAAMC,IAAAA,CAAAA,CAAKC,KAAa,EAAEC,OAAAA,GAAmC,EAAE,EAAA;AAC7D,YAAA,IAAItB,YAAY,OAAO,IAAA;AACvB,YAAA,OAAOO,UAAUc,KAAAA,EAAOC,OAAAA,CAAAA;AAC1B,QAAA,CAAA;AAEAC,QAAAA,OAAAA,CAAAA,GAAAA;;AAEA,QAAA;AACF,KAAA;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../src/services/metrics/index.ts"],"sourcesContent":["/**\n * Strapi telemetry package.\n * You can learn more at https://docs.strapi.io/developer-docs/latest/getting-started/usage-information.html\n */\n\nimport type { Core } from '@strapi/types';\n\nimport wrapWithRateLimit from './rate-limiter';\nimport createSender from './sender';\nimport createMiddleware from './middleware';\nimport isTruthy from './is-truthy';\n\nconst LIMITED_EVENTS = [\n 'didSaveMediaWithAlternativeText',\n 'didSaveMediaWithCaption',\n 'didDisableResponsiveDimensions',\n 'didEnableResponsiveDimensions',\n 'didInitializePluginUpload',\n];\n\nconst createTelemetryInstance = (strapi: Core.Strapi) => {\n const uuid = strapi.config.get('uuid');\n const telemetryDisabled = strapi.config.get('packageJsonStrapi.telemetryDisabled');\n const isDisabled =\n !uuid || isTruthy(process.env.STRAPI_TELEMETRY_DISABLED) || isTruthy(telemetryDisabled);\n\n const sender = createSender(strapi);\n const sendEvent = wrapWithRateLimit(sender, { limitedEvents: LIMITED_EVENTS });\n\n return {\n get isDisabled() {\n return isDisabled;\n },\n\n register() {\n if (!isDisabled) {\n strapi.cron.add({\n sendPingEvent: {\n task: () => sendEvent('ping'),\n options: '0 0 12 * * *',\n },\n });\n\n strapi.server.use(createMiddleware({ sendEvent, strapi }));\n }\n },\n\n bootstrap() {},\n\n async send(event: string, payload: Record<string, unknown> = {}) {\n if (isDisabled) return true;\n return sendEvent(event, payload);\n },\n\n destroy() {\n // Clean up resources if needed\n },\n };\n};\n\nexport default createTelemetryInstance;\n"],"names":["LIMITED_EVENTS","createTelemetryInstance","strapi","uuid","config","get","telemetryDisabled","isDisabled","isTruthy","process","env","STRAPI_TELEMETRY_DISABLED","sender","createSender","sendEvent","wrapWithRateLimit","limitedEvents","register","cron","add","sendPingEvent","task","options","server","use","createMiddleware","bootstrap","send","event","payload","destroy"],"mappings":";;;;;AAYA,MAAMA,cAAiB,GAAA;AACrB,IAAA,iCAAA;AACA,IAAA,yBAAA;AACA,IAAA,gCAAA;AACA,IAAA,+BAAA;AACA,IAAA;AACD,CAAA;AAED,MAAMC,0BAA0B,CAACC,MAAAA,GAAAA;AAC/B,IAAA,MAAMC,IAAOD,GAAAA,MAAAA,CAAOE,MAAM,CAACC,GAAG,CAAC,MAAA,CAAA;AAC/B,IAAA,MAAMC,iBAAoBJ,GAAAA,MAAAA,CAAOE,MAAM,CAACC,GAAG,CAAC,qCAAA,CAAA;IAC5C,MAAME,UAAAA,GACJ,CAACJ,IAAQK,IAAAA,QAAAA,CAASC,QAAQC,GAAG,CAACC,yBAAyB,CAAA,IAAKH,QAASF,CAAAA,iBAAAA,CAAAA;AAEvE,IAAA,MAAMM,SAASC,YAAaX,CAAAA,MAAAA,CAAAA;IAC5B,MAAMY,SAAAA,GAAYC,kBAAkBH,MAAQ,EAAA;QAAEI,aAAehB,EAAAA;AAAe,KAAA,CAAA;IAE5E,OAAO;AACL,QAAA,IAAIO,UAAa,CAAA,GAAA;YACf,OAAOA,UAAAA;AACT,SAAA;AAEAU,QAAAA,QAAAA,CAAAA,GAAAA;AACE,YAAA,IAAI,CAACV,UAAY,EAAA;gBACfL,MAAOgB,CAAAA,IAAI,CAACC,GAAG,CAAC;oBACdC,aAAe,EAAA;AACbC,wBAAAA,IAAAA,EAAM,IAAMP,SAAU,CAAA,MAAA,CAAA;wBACtBQ,OAAS,EAAA;AACX;AACF,iBAAA,CAAA;AAEApB,gBAAAA,MAAAA,CAAOqB,MAAM,CAACC,GAAG,CAACC,gBAAiB,CAAA;AAAEX,oBAAAA,SAAAA;AAAWZ,oBAAAA;AAAO,iBAAA,CAAA,CAAA;AACzD;AACF,SAAA;QAEAwB,SAAa,CAAA,GAAA,EAAA;AAEb,QAAA,MAAMC,IAAKC,CAAAA,CAAAA,KAAa,EAAEC,OAAAA,GAAmC,EAAE,EAAA;AAC7D,YAAA,IAAItB,YAAY,OAAO,IAAA;AACvB,YAAA,OAAOO,UAAUc,KAAOC,EAAAA,OAAAA,CAAAA;AAC1B,SAAA;AAEAC,QAAAA,OAAAA,CAAAA,GAAAA;;AAEA;AACF,KAAA;AACF;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/services/metrics/index.ts"],"sourcesContent":["/**\n * Strapi telemetry package.\n * You can learn more at https://docs.strapi.io/developer-docs/latest/getting-started/usage-information.html\n */\n\nimport type { Core } from '@strapi/types';\n\nimport wrapWithRateLimit from './rate-limiter';\nimport createSender from './sender';\nimport createMiddleware from './middleware';\nimport isTruthy from './is-truthy';\n\nconst LIMITED_EVENTS = [\n 'didSaveMediaWithAlternativeText',\n 'didSaveMediaWithCaption',\n 'didDisableResponsiveDimensions',\n 'didEnableResponsiveDimensions',\n 'didInitializePluginUpload',\n];\n\nconst createTelemetryInstance = (strapi: Core.Strapi) => {\n const uuid = strapi.config.get('uuid');\n const telemetryDisabled = strapi.config.get('packageJsonStrapi.telemetryDisabled');\n const isDisabled =\n !uuid || isTruthy(process.env.STRAPI_TELEMETRY_DISABLED) || isTruthy(telemetryDisabled);\n\n const sender = createSender(strapi);\n const sendEvent = wrapWithRateLimit(sender, { limitedEvents: LIMITED_EVENTS });\n\n return {\n get isDisabled() {\n return isDisabled;\n },\n\n register() {\n if (!isDisabled) {\n strapi.cron.add({\n sendPingEvent: {\n task: () => sendEvent('ping'),\n options: '0 0 12 * * *',\n },\n });\n\n strapi.server.use(createMiddleware({ sendEvent, strapi }));\n }\n },\n\n bootstrap() {},\n\n async send(event: string, payload: Record<string, unknown> = {}) {\n if (isDisabled) return true;\n return sendEvent(event, payload);\n },\n\n destroy() {\n // Clean up resources if needed\n },\n };\n};\n\nexport default createTelemetryInstance;\n"],"names":["LIMITED_EVENTS","createTelemetryInstance","strapi","uuid","config","get","telemetryDisabled","isDisabled","isTruthy","process","env","STRAPI_TELEMETRY_DISABLED","sender","createSender","sendEvent","wrapWithRateLimit","limitedEvents","register","cron","add","sendPingEvent","task","options","server","use","createMiddleware","bootstrap","send","event","payload","destroy"],"mappings":";;;;;AAYA,MAAMA,cAAAA,GAAiB;AACrB,IAAA,iCAAA;AACA,IAAA,yBAAA;AACA,IAAA,gCAAA;AACA,IAAA,+BAAA;AACA,IAAA;AACD,CAAA;AAED,MAAMC,0BAA0B,CAACC,MAAAA,GAAAA;AAC/B,IAAA,MAAMC,IAAAA,GAAOD,MAAAA,CAAOE,MAAM,CAACC,GAAG,CAAC,MAAA,CAAA;AAC/B,IAAA,MAAMC,iBAAAA,GAAoBJ,MAAAA,CAAOE,MAAM,CAACC,GAAG,CAAC,qCAAA,CAAA;IAC5C,MAAME,UAAAA,GACJ,CAACJ,IAAAA,IAAQK,QAAAA,CAASC,QAAQC,GAAG,CAACC,yBAAyB,CAAA,IAAKH,QAAAA,CAASF,iBAAAA,CAAAA;AAEvE,IAAA,MAAMM,SAASC,YAAAA,CAAaX,MAAAA,CAAAA;IAC5B,MAAMY,SAAAA,GAAYC,kBAAkBH,MAAAA,EAAQ;QAAEI,aAAAA,EAAehB;AAAe,KAAA,CAAA;IAE5E,OAAO;AACL,QAAA,IAAIO,UAAAA,CAAAA,GAAa;YACf,OAAOA,UAAAA;AACT,QAAA,CAAA;AAEAU,QAAAA,QAAAA,CAAAA,GAAAA;AACE,YAAA,IAAI,CAACV,UAAAA,EAAY;gBACfL,MAAAA,CAAOgB,IAAI,CAACC,GAAG,CAAC;oBACdC,aAAAA,EAAe;AACbC,wBAAAA,IAAAA,EAAM,IAAMP,SAAAA,CAAU,MAAA,CAAA;wBACtBQ,OAAAA,EAAS;AACX;AACF,iBAAA,CAAA;AAEApB,gBAAAA,MAAAA,CAAOqB,MAAM,CAACC,GAAG,CAACC,gBAAAA,CAAiB;AAAEX,oBAAAA,SAAAA;AAAWZ,oBAAAA;AAAO,iBAAA,CAAA,CAAA;AACzD,YAAA;AACF,QAAA,CAAA;QAEAwB,SAAAA,CAAAA,GAAAA,CAAa,CAAA;AAEb,QAAA,MAAMC,IAAAA,CAAAA,CAAKC,KAAa,EAAEC,OAAAA,GAAmC,EAAE,EAAA;AAC7D,YAAA,IAAItB,YAAY,OAAO,IAAA;AACvB,YAAA,OAAOO,UAAUc,KAAAA,EAAOC,OAAAA,CAAAA;AAC1B,QAAA,CAAA;AAEAC,QAAAA,OAAAA,CAAAA,GAAAA;;AAEA,QAAA;AACF,KAAA;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"is-truthy.js","sources":["../../../src/services/metrics/is-truthy.ts"],"sourcesContent":["import _ from 'lodash';\n\nconst isTruthy = (val: any) => {\n return [1, true].includes(val) || ['true', '1'].includes(_.toLower(val));\n};\n\nexport default isTruthy;\n"],"names":["isTruthy","val","includes","_","toLower"],"mappings":";;;;AAEA,MAAMA,WAAW,CAACC,GAAAA,GAAAA;IAChB,OAAO;AAAC,QAAA,CAAA;AAAG,QAAA;KAAK,CAACC,QAAQ,CAACD,GAAQ,CAAA,IAAA;AAAC,QAAA,MAAA;AAAQ,QAAA;AAAI,KAAA,CAACC,QAAQ,CAACC,CAAEC,CAAAA,OAAO,CAACH,GAAAA,CAAAA,CAAAA;AACrE;;;;"}
1
+ {"version":3,"file":"is-truthy.js","sources":["../../../src/services/metrics/is-truthy.ts"],"sourcesContent":["import _ from 'lodash';\n\nconst isTruthy = (val: any) => {\n return [1, true].includes(val) || ['true', '1'].includes(_.toLower(val));\n};\n\nexport default isTruthy;\n"],"names":["isTruthy","val","includes","_","toLower"],"mappings":";;;;AAEA,MAAMA,WAAW,CAACC,GAAAA,GAAAA;IAChB,OAAO;AAAC,QAAA,CAAA;AAAG,QAAA;KAAK,CAACC,QAAQ,CAACD,GAAAA,CAAAA,IAAQ;AAAC,QAAA,MAAA;AAAQ,QAAA;AAAI,KAAA,CAACC,QAAQ,CAACC,CAAAA,CAAEC,OAAO,CAACH,GAAAA,CAAAA,CAAAA;AACrE;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"is-truthy.mjs","sources":["../../../src/services/metrics/is-truthy.ts"],"sourcesContent":["import _ from 'lodash';\n\nconst isTruthy = (val: any) => {\n return [1, true].includes(val) || ['true', '1'].includes(_.toLower(val));\n};\n\nexport default isTruthy;\n"],"names":["isTruthy","val","includes","_","toLower"],"mappings":";;AAEA,MAAMA,WAAW,CAACC,GAAAA,GAAAA;IAChB,OAAO;AAAC,QAAA,CAAA;AAAG,QAAA;KAAK,CAACC,QAAQ,CAACD,GAAQ,CAAA,IAAA;AAAC,QAAA,MAAA;AAAQ,QAAA;AAAI,KAAA,CAACC,QAAQ,CAACC,CAAEC,CAAAA,OAAO,CAACH,GAAAA,CAAAA,CAAAA;AACrE;;;;"}
1
+ {"version":3,"file":"is-truthy.mjs","sources":["../../../src/services/metrics/is-truthy.ts"],"sourcesContent":["import _ from 'lodash';\n\nconst isTruthy = (val: any) => {\n return [1, true].includes(val) || ['true', '1'].includes(_.toLower(val));\n};\n\nexport default isTruthy;\n"],"names":["isTruthy","val","includes","_","toLower"],"mappings":";;AAEA,MAAMA,WAAW,CAACC,GAAAA,GAAAA;IAChB,OAAO;AAAC,QAAA,CAAA;AAAG,QAAA;KAAK,CAACC,QAAQ,CAACD,GAAAA,CAAAA,IAAQ;AAAC,QAAA,MAAA;AAAQ,QAAA;AAAI,KAAA,CAACC,QAAQ,CAACC,CAAAA,CAAEC,OAAO,CAACH,GAAAA,CAAAA,CAAAA;AACrE;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.js","sources":["../../../src/services/metrics/middleware.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport type { Sender } from './sender';\n\ninterface State {\n expires: number;\n counter: number;\n}\n\nfunction nextResetDate(): number {\n return Date.now() + 24 * 60 * 60 * 1000; // Now + 24 hours.\n}\n\nconst createMiddleware = ({ sendEvent, strapi }: { sendEvent: Sender; strapi: Core.Strapi }) => {\n const state: State = {\n expires: nextResetDate(),\n counter: 0,\n };\n\n const middleware: Core.MiddlewareHandler = async (ctx, next) => {\n const { url, method } = ctx.request;\n\n // Only track API requests (skip static assets)\n const shouldTrack =\n !url.includes('.') &&\n url.includes(strapi.config.get('api.rest.prefix')) &&\n ['GET', 'PUT', 'POST', 'DELETE'].includes(method);\n\n if (shouldTrack) {\n // Reset counter if expired\n if (Date.now() > state.expires) {\n state.expires = nextResetDate();\n state.counter = 0;\n }\n\n // Track on response finish if under limit\n // Increment counter immediately to prevent race conditions\n if (state.counter < 1000) {\n state.counter += 1;\n\n let tracked = false;\n const trackOnFinish = () => {\n if (tracked) return;\n tracked = true;\n\n const statusCode = typeof ctx.response?.status === 'number' ? ctx.response.status : 500;\n const success = statusCode >= 200 && statusCode < 300;\n\n // Silently handle tracking errors - telemetry failures shouldn't affect the app\n Promise.resolve(\n sendEvent('didReceiveRequest', {\n eventProperties: {\n url: ctx.request.url,\n success,\n statusCode,\n },\n })\n ).catch(() => {\n // Ignore tracking errors\n });\n };\n\n // Track when response finishes (success or error)\n ctx.res.once('finish', trackOnFinish);\n ctx.res.once('close', trackOnFinish);\n }\n }\n\n await next();\n };\n\n return middleware;\n};\n\nexport default createMiddleware;\n"],"names":["nextResetDate","Date","now","createMiddleware","sendEvent","strapi","state","expires","counter","middleware","ctx","next","url","method","request","shouldTrack","includes","config","get","tracked","trackOnFinish","statusCode","response","status","success","Promise","resolve","eventProperties","catch","res","once"],"mappings":";;AAQA,SAASA,aAAAA,GAAAA;AACP,IAAA,OAAOC,KAAKC,GAAG,EAAA,GAAK,KAAK,EAAK,GAAA,EAAA,GAAK;AACrC;AAEA,MAAMC,mBAAmB,CAAC,EAAEC,SAAS,EAAEC,MAAM,EAA8C,GAAA;AACzF,IAAA,MAAMC,KAAe,GAAA;QACnBC,OAASP,EAAAA,aAAAA,EAAAA;QACTQ,OAAS,EAAA;AACX,KAAA;IAEA,MAAMC,UAAAA,GAAqC,OAAOC,GAAKC,EAAAA,IAAAA,GAAAA;AACrD,QAAA,MAAM,EAAEC,GAAG,EAAEC,MAAM,EAAE,GAAGH,IAAII,OAAO;;AAGnC,QAAA,MAAMC,WACJ,GAAA,CAACH,GAAII,CAAAA,QAAQ,CAAC,GACdJ,CAAAA,IAAAA,GAAAA,CAAII,QAAQ,CAACX,MAAOY,CAAAA,MAAM,CAACC,GAAG,CAAC,iBAC/B,CAAA,CAAA,IAAA;AAAC,YAAA,KAAA;AAAO,YAAA,KAAA;AAAO,YAAA,MAAA;AAAQ,YAAA;AAAS,SAAA,CAACF,QAAQ,CAACH,MAAAA,CAAAA;AAE5C,QAAA,IAAIE,WAAa,EAAA;;AAEf,YAAA,IAAId,IAAKC,CAAAA,GAAG,EAAKI,GAAAA,KAAAA,CAAMC,OAAO,EAAE;AAC9BD,gBAAAA,KAAAA,CAAMC,OAAO,GAAGP,aAAAA,EAAAA;AAChBM,gBAAAA,KAAAA,CAAME,OAAO,GAAG,CAAA;AAClB;;;YAIA,IAAIF,KAAAA,CAAME,OAAO,GAAG,IAAM,EAAA;AACxBF,gBAAAA,KAAAA,CAAME,OAAO,IAAI,CAAA;AAEjB,gBAAA,IAAIW,OAAU,GAAA,KAAA;AACd,gBAAA,MAAMC,aAAgB,GAAA,IAAA;AACpB,oBAAA,IAAID,OAAS,EAAA;oBACbA,OAAU,GAAA,IAAA;oBAEV,MAAME,UAAAA,GAAa,OAAOX,GAAAA,CAAIY,QAAQ,EAAEC,MAAW,KAAA,QAAA,GAAWb,GAAIY,CAAAA,QAAQ,CAACC,MAAM,GAAG,GAAA;oBACpF,MAAMC,OAAAA,GAAUH,UAAc,IAAA,GAAA,IAAOA,UAAa,GAAA,GAAA;;oBAGlDI,OAAQC,CAAAA,OAAO,CACbtB,SAAAA,CAAU,mBAAqB,EAAA;wBAC7BuB,eAAiB,EAAA;4BACff,GAAKF,EAAAA,GAAAA,CAAII,OAAO,CAACF,GAAG;AACpBY,4BAAAA,OAAAA;AACAH,4BAAAA;AACF;AACF,qBAAA,CAAA,CAAA,CACAO,KAAK,CAAC,IAAA;;AAER,qBAAA,CAAA;AACF,iBAAA;;AAGAlB,gBAAAA,GAAAA,CAAImB,GAAG,CAACC,IAAI,CAAC,QAAUV,EAAAA,aAAAA,CAAAA;AACvBV,gBAAAA,GAAAA,CAAImB,GAAG,CAACC,IAAI,CAAC,OAASV,EAAAA,aAAAA,CAAAA;AACxB;AACF;QAEA,MAAMT,IAAAA,EAAAA;AACR,KAAA;IAEA,OAAOF,UAAAA;AACT;;;;"}
1
+ {"version":3,"file":"middleware.js","sources":["../../../src/services/metrics/middleware.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport type { Sender } from './sender';\n\ninterface State {\n expires: number;\n counter: number;\n}\n\nfunction nextResetDate(): number {\n return Date.now() + 24 * 60 * 60 * 1000; // Now + 24 hours.\n}\n\nconst createMiddleware = ({ sendEvent, strapi }: { sendEvent: Sender; strapi: Core.Strapi }) => {\n const state: State = {\n expires: nextResetDate(),\n counter: 0,\n };\n\n const middleware: Core.MiddlewareHandler = async (ctx, next) => {\n const { url, method } = ctx.request;\n\n // Only track API requests (skip static assets)\n const shouldTrack =\n !url.includes('.') &&\n url.includes(strapi.config.get('api.rest.prefix')) &&\n ['GET', 'PUT', 'POST', 'DELETE'].includes(method);\n\n if (shouldTrack) {\n // Reset counter if expired\n if (Date.now() > state.expires) {\n state.expires = nextResetDate();\n state.counter = 0;\n }\n\n // Track on response finish if under limit\n // Increment counter immediately to prevent race conditions\n if (state.counter < 1000) {\n state.counter += 1;\n\n let tracked = false;\n const trackOnFinish = () => {\n if (tracked) return;\n tracked = true;\n\n const statusCode = typeof ctx.response?.status === 'number' ? ctx.response.status : 500;\n const success = statusCode >= 200 && statusCode < 300;\n\n // Silently handle tracking errors - telemetry failures shouldn't affect the app\n Promise.resolve(\n sendEvent('didReceiveRequest', {\n eventProperties: {\n url: ctx.request.url,\n success,\n statusCode,\n },\n })\n ).catch(() => {\n // Ignore tracking errors\n });\n };\n\n // Track when response finishes (success or error)\n ctx.res.once('finish', trackOnFinish);\n ctx.res.once('close', trackOnFinish);\n }\n }\n\n await next();\n };\n\n return middleware;\n};\n\nexport default createMiddleware;\n"],"names":["nextResetDate","Date","now","createMiddleware","sendEvent","strapi","state","expires","counter","middleware","ctx","next","url","method","request","shouldTrack","includes","config","get","tracked","trackOnFinish","statusCode","response","status","success","Promise","resolve","eventProperties","catch","res","once"],"mappings":";;AAQA,SAASA,aAAAA,GAAAA;AACP,IAAA,OAAOC,KAAKC,GAAG,EAAA,GAAK,KAAK,EAAA,GAAK,EAAA,GAAK;AACrC;AAEA,MAAMC,mBAAmB,CAAC,EAAEC,SAAS,EAAEC,MAAM,EAA8C,GAAA;AACzF,IAAA,MAAMC,KAAAA,GAAe;QACnBC,OAAAA,EAASP,aAAAA,EAAAA;QACTQ,OAAAA,EAAS;AACX,KAAA;IAEA,MAAMC,UAAAA,GAAqC,OAAOC,GAAAA,EAAKC,IAAAA,GAAAA;AACrD,QAAA,MAAM,EAAEC,GAAG,EAAEC,MAAM,EAAE,GAAGH,IAAII,OAAO;;AAGnC,QAAA,MAAMC,WAAAA,GACJ,CAACH,GAAAA,CAAII,QAAQ,CAAC,GAAA,CAAA,IACdJ,GAAAA,CAAII,QAAQ,CAACX,MAAAA,CAAOY,MAAM,CAACC,GAAG,CAAC,iBAAA,CAAA,CAAA,IAC/B;AAAC,YAAA,KAAA;AAAO,YAAA,KAAA;AAAO,YAAA,MAAA;AAAQ,YAAA;AAAS,SAAA,CAACF,QAAQ,CAACH,MAAAA,CAAAA;AAE5C,QAAA,IAAIE,WAAAA,EAAa;;AAEf,YAAA,IAAId,IAAAA,CAAKC,GAAG,EAAA,GAAKI,KAAAA,CAAMC,OAAO,EAAE;AAC9BD,gBAAAA,KAAAA,CAAMC,OAAO,GAAGP,aAAAA,EAAAA;AAChBM,gBAAAA,KAAAA,CAAME,OAAO,GAAG,CAAA;AAClB,YAAA;;;YAIA,IAAIF,KAAAA,CAAME,OAAO,GAAG,IAAA,EAAM;AACxBF,gBAAAA,KAAAA,CAAME,OAAO,IAAI,CAAA;AAEjB,gBAAA,IAAIW,OAAAA,GAAU,KAAA;AACd,gBAAA,MAAMC,aAAAA,GAAgB,IAAA;AACpB,oBAAA,IAAID,OAAAA,EAAS;oBACbA,OAAAA,GAAU,IAAA;oBAEV,MAAME,UAAAA,GAAa,OAAOX,GAAAA,CAAIY,QAAQ,EAAEC,MAAAA,KAAW,QAAA,GAAWb,GAAAA,CAAIY,QAAQ,CAACC,MAAM,GAAG,GAAA;oBACpF,MAAMC,OAAAA,GAAUH,UAAAA,IAAc,GAAA,IAAOA,UAAAA,GAAa,GAAA;;oBAGlDI,OAAAA,CAAQC,OAAO,CACbtB,SAAAA,CAAU,mBAAA,EAAqB;wBAC7BuB,eAAAA,EAAiB;4BACff,GAAAA,EAAKF,GAAAA,CAAII,OAAO,CAACF,GAAG;AACpBY,4BAAAA,OAAAA;AACAH,4BAAAA;AACF;AACF,qBAAA,CAAA,CAAA,CACAO,KAAK,CAAC,IAAA;;AAER,oBAAA,CAAA,CAAA;AACF,gBAAA,CAAA;;AAGAlB,gBAAAA,GAAAA,CAAImB,GAAG,CAACC,IAAI,CAAC,QAAA,EAAUV,aAAAA,CAAAA;AACvBV,gBAAAA,GAAAA,CAAImB,GAAG,CAACC,IAAI,CAAC,OAAA,EAASV,aAAAA,CAAAA;AACxB,YAAA;AACF,QAAA;QAEA,MAAMT,IAAAA,EAAAA;AACR,IAAA,CAAA;IAEA,OAAOF,UAAAA;AACT;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.mjs","sources":["../../../src/services/metrics/middleware.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport type { Sender } from './sender';\n\ninterface State {\n expires: number;\n counter: number;\n}\n\nfunction nextResetDate(): number {\n return Date.now() + 24 * 60 * 60 * 1000; // Now + 24 hours.\n}\n\nconst createMiddleware = ({ sendEvent, strapi }: { sendEvent: Sender; strapi: Core.Strapi }) => {\n const state: State = {\n expires: nextResetDate(),\n counter: 0,\n };\n\n const middleware: Core.MiddlewareHandler = async (ctx, next) => {\n const { url, method } = ctx.request;\n\n // Only track API requests (skip static assets)\n const shouldTrack =\n !url.includes('.') &&\n url.includes(strapi.config.get('api.rest.prefix')) &&\n ['GET', 'PUT', 'POST', 'DELETE'].includes(method);\n\n if (shouldTrack) {\n // Reset counter if expired\n if (Date.now() > state.expires) {\n state.expires = nextResetDate();\n state.counter = 0;\n }\n\n // Track on response finish if under limit\n // Increment counter immediately to prevent race conditions\n if (state.counter < 1000) {\n state.counter += 1;\n\n let tracked = false;\n const trackOnFinish = () => {\n if (tracked) return;\n tracked = true;\n\n const statusCode = typeof ctx.response?.status === 'number' ? ctx.response.status : 500;\n const success = statusCode >= 200 && statusCode < 300;\n\n // Silently handle tracking errors - telemetry failures shouldn't affect the app\n Promise.resolve(\n sendEvent('didReceiveRequest', {\n eventProperties: {\n url: ctx.request.url,\n success,\n statusCode,\n },\n })\n ).catch(() => {\n // Ignore tracking errors\n });\n };\n\n // Track when response finishes (success or error)\n ctx.res.once('finish', trackOnFinish);\n ctx.res.once('close', trackOnFinish);\n }\n }\n\n await next();\n };\n\n return middleware;\n};\n\nexport default createMiddleware;\n"],"names":["nextResetDate","Date","now","createMiddleware","sendEvent","strapi","state","expires","counter","middleware","ctx","next","url","method","request","shouldTrack","includes","config","get","tracked","trackOnFinish","statusCode","response","status","success","Promise","resolve","eventProperties","catch","res","once"],"mappings":"AAQA,SAASA,aAAAA,GAAAA;AACP,IAAA,OAAOC,KAAKC,GAAG,EAAA,GAAK,KAAK,EAAK,GAAA,EAAA,GAAK;AACrC;AAEA,MAAMC,mBAAmB,CAAC,EAAEC,SAAS,EAAEC,MAAM,EAA8C,GAAA;AACzF,IAAA,MAAMC,KAAe,GAAA;QACnBC,OAASP,EAAAA,aAAAA,EAAAA;QACTQ,OAAS,EAAA;AACX,KAAA;IAEA,MAAMC,UAAAA,GAAqC,OAAOC,GAAKC,EAAAA,IAAAA,GAAAA;AACrD,QAAA,MAAM,EAAEC,GAAG,EAAEC,MAAM,EAAE,GAAGH,IAAII,OAAO;;AAGnC,QAAA,MAAMC,WACJ,GAAA,CAACH,GAAII,CAAAA,QAAQ,CAAC,GACdJ,CAAAA,IAAAA,GAAAA,CAAII,QAAQ,CAACX,MAAOY,CAAAA,MAAM,CAACC,GAAG,CAAC,iBAC/B,CAAA,CAAA,IAAA;AAAC,YAAA,KAAA;AAAO,YAAA,KAAA;AAAO,YAAA,MAAA;AAAQ,YAAA;AAAS,SAAA,CAACF,QAAQ,CAACH,MAAAA,CAAAA;AAE5C,QAAA,IAAIE,WAAa,EAAA;;AAEf,YAAA,IAAId,IAAKC,CAAAA,GAAG,EAAKI,GAAAA,KAAAA,CAAMC,OAAO,EAAE;AAC9BD,gBAAAA,KAAAA,CAAMC,OAAO,GAAGP,aAAAA,EAAAA;AAChBM,gBAAAA,KAAAA,CAAME,OAAO,GAAG,CAAA;AAClB;;;YAIA,IAAIF,KAAAA,CAAME,OAAO,GAAG,IAAM,EAAA;AACxBF,gBAAAA,KAAAA,CAAME,OAAO,IAAI,CAAA;AAEjB,gBAAA,IAAIW,OAAU,GAAA,KAAA;AACd,gBAAA,MAAMC,aAAgB,GAAA,IAAA;AACpB,oBAAA,IAAID,OAAS,EAAA;oBACbA,OAAU,GAAA,IAAA;oBAEV,MAAME,UAAAA,GAAa,OAAOX,GAAAA,CAAIY,QAAQ,EAAEC,MAAW,KAAA,QAAA,GAAWb,GAAIY,CAAAA,QAAQ,CAACC,MAAM,GAAG,GAAA;oBACpF,MAAMC,OAAAA,GAAUH,UAAc,IAAA,GAAA,IAAOA,UAAa,GAAA,GAAA;;oBAGlDI,OAAQC,CAAAA,OAAO,CACbtB,SAAAA,CAAU,mBAAqB,EAAA;wBAC7BuB,eAAiB,EAAA;4BACff,GAAKF,EAAAA,GAAAA,CAAII,OAAO,CAACF,GAAG;AACpBY,4BAAAA,OAAAA;AACAH,4BAAAA;AACF;AACF,qBAAA,CAAA,CAAA,CACAO,KAAK,CAAC,IAAA;;AAER,qBAAA,CAAA;AACF,iBAAA;;AAGAlB,gBAAAA,GAAAA,CAAImB,GAAG,CAACC,IAAI,CAAC,QAAUV,EAAAA,aAAAA,CAAAA;AACvBV,gBAAAA,GAAAA,CAAImB,GAAG,CAACC,IAAI,CAAC,OAASV,EAAAA,aAAAA,CAAAA;AACxB;AACF;QAEA,MAAMT,IAAAA,EAAAA;AACR,KAAA;IAEA,OAAOF,UAAAA;AACT;;;;"}
1
+ {"version":3,"file":"middleware.mjs","sources":["../../../src/services/metrics/middleware.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport type { Sender } from './sender';\n\ninterface State {\n expires: number;\n counter: number;\n}\n\nfunction nextResetDate(): number {\n return Date.now() + 24 * 60 * 60 * 1000; // Now + 24 hours.\n}\n\nconst createMiddleware = ({ sendEvent, strapi }: { sendEvent: Sender; strapi: Core.Strapi }) => {\n const state: State = {\n expires: nextResetDate(),\n counter: 0,\n };\n\n const middleware: Core.MiddlewareHandler = async (ctx, next) => {\n const { url, method } = ctx.request;\n\n // Only track API requests (skip static assets)\n const shouldTrack =\n !url.includes('.') &&\n url.includes(strapi.config.get('api.rest.prefix')) &&\n ['GET', 'PUT', 'POST', 'DELETE'].includes(method);\n\n if (shouldTrack) {\n // Reset counter if expired\n if (Date.now() > state.expires) {\n state.expires = nextResetDate();\n state.counter = 0;\n }\n\n // Track on response finish if under limit\n // Increment counter immediately to prevent race conditions\n if (state.counter < 1000) {\n state.counter += 1;\n\n let tracked = false;\n const trackOnFinish = () => {\n if (tracked) return;\n tracked = true;\n\n const statusCode = typeof ctx.response?.status === 'number' ? ctx.response.status : 500;\n const success = statusCode >= 200 && statusCode < 300;\n\n // Silently handle tracking errors - telemetry failures shouldn't affect the app\n Promise.resolve(\n sendEvent('didReceiveRequest', {\n eventProperties: {\n url: ctx.request.url,\n success,\n statusCode,\n },\n })\n ).catch(() => {\n // Ignore tracking errors\n });\n };\n\n // Track when response finishes (success or error)\n ctx.res.once('finish', trackOnFinish);\n ctx.res.once('close', trackOnFinish);\n }\n }\n\n await next();\n };\n\n return middleware;\n};\n\nexport default createMiddleware;\n"],"names":["nextResetDate","Date","now","createMiddleware","sendEvent","strapi","state","expires","counter","middleware","ctx","next","url","method","request","shouldTrack","includes","config","get","tracked","trackOnFinish","statusCode","response","status","success","Promise","resolve","eventProperties","catch","res","once"],"mappings":"AAQA,SAASA,aAAAA,GAAAA;AACP,IAAA,OAAOC,KAAKC,GAAG,EAAA,GAAK,KAAK,EAAA,GAAK,EAAA,GAAK;AACrC;AAEA,MAAMC,mBAAmB,CAAC,EAAEC,SAAS,EAAEC,MAAM,EAA8C,GAAA;AACzF,IAAA,MAAMC,KAAAA,GAAe;QACnBC,OAAAA,EAASP,aAAAA,EAAAA;QACTQ,OAAAA,EAAS;AACX,KAAA;IAEA,MAAMC,UAAAA,GAAqC,OAAOC,GAAAA,EAAKC,IAAAA,GAAAA;AACrD,QAAA,MAAM,EAAEC,GAAG,EAAEC,MAAM,EAAE,GAAGH,IAAII,OAAO;;AAGnC,QAAA,MAAMC,WAAAA,GACJ,CAACH,GAAAA,CAAII,QAAQ,CAAC,GAAA,CAAA,IACdJ,GAAAA,CAAII,QAAQ,CAACX,MAAAA,CAAOY,MAAM,CAACC,GAAG,CAAC,iBAAA,CAAA,CAAA,IAC/B;AAAC,YAAA,KAAA;AAAO,YAAA,KAAA;AAAO,YAAA,MAAA;AAAQ,YAAA;AAAS,SAAA,CAACF,QAAQ,CAACH,MAAAA,CAAAA;AAE5C,QAAA,IAAIE,WAAAA,EAAa;;AAEf,YAAA,IAAId,IAAAA,CAAKC,GAAG,EAAA,GAAKI,KAAAA,CAAMC,OAAO,EAAE;AAC9BD,gBAAAA,KAAAA,CAAMC,OAAO,GAAGP,aAAAA,EAAAA;AAChBM,gBAAAA,KAAAA,CAAME,OAAO,GAAG,CAAA;AAClB,YAAA;;;YAIA,IAAIF,KAAAA,CAAME,OAAO,GAAG,IAAA,EAAM;AACxBF,gBAAAA,KAAAA,CAAME,OAAO,IAAI,CAAA;AAEjB,gBAAA,IAAIW,OAAAA,GAAU,KAAA;AACd,gBAAA,MAAMC,aAAAA,GAAgB,IAAA;AACpB,oBAAA,IAAID,OAAAA,EAAS;oBACbA,OAAAA,GAAU,IAAA;oBAEV,MAAME,UAAAA,GAAa,OAAOX,GAAAA,CAAIY,QAAQ,EAAEC,MAAAA,KAAW,QAAA,GAAWb,GAAAA,CAAIY,QAAQ,CAACC,MAAM,GAAG,GAAA;oBACpF,MAAMC,OAAAA,GAAUH,UAAAA,IAAc,GAAA,IAAOA,UAAAA,GAAa,GAAA;;oBAGlDI,OAAAA,CAAQC,OAAO,CACbtB,SAAAA,CAAU,mBAAA,EAAqB;wBAC7BuB,eAAAA,EAAiB;4BACff,GAAAA,EAAKF,GAAAA,CAAII,OAAO,CAACF,GAAG;AACpBY,4BAAAA,OAAAA;AACAH,4BAAAA;AACF;AACF,qBAAA,CAAA,CAAA,CACAO,KAAK,CAAC,IAAA;;AAER,oBAAA,CAAA,CAAA;AACF,gBAAA,CAAA;;AAGAlB,gBAAAA,GAAAA,CAAImB,GAAG,CAACC,IAAI,CAAC,QAAA,EAAUV,aAAAA,CAAAA;AACvBV,gBAAAA,GAAAA,CAAImB,GAAG,CAACC,IAAI,CAAC,OAAA,EAASV,aAAAA,CAAAA;AACxB,YAAA;AACF,QAAA;QAEA,MAAMT,IAAAA,EAAAA;AACR,IAAA,CAAA;IAEA,OAAOF,UAAAA;AACT;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limiter.js","sources":["../../../src/services/metrics/rate-limiter.ts"],"sourcesContent":["import type { Sender } from './sender';\n\ninterface Options {\n limitedEvents?: string[];\n}\n\ntype TailParams<T extends (...args: any[]) => any> =\n Parameters<T> extends [unknown, ...infer U] ? U : never;\n\nfunction nextResetDate(): number {\n return Date.now() + 24 * 60 * 60 * 1000; // Now + 24 hours.\n}\n\nexport default (sender: Sender, { limitedEvents = [] }: Options = {}) => {\n let cacheExpiresAt = nextResetDate();\n const eventCache = new Map();\n\n return async (event: string, ...args: TailParams<Sender>) => {\n if (!limitedEvents.includes(event)) {\n return sender(event, ...args);\n }\n\n if (Date.now() > cacheExpiresAt) {\n eventCache.clear();\n cacheExpiresAt = nextResetDate();\n }\n\n if (eventCache.has(event)) {\n return false;\n }\n\n eventCache.set(event, true);\n return sender(event, ...args);\n };\n};\n"],"names":["nextResetDate","Date","now","sender","limitedEvents","cacheExpiresAt","eventCache","Map","event","args","includes","clear","has","set"],"mappings":";;AASA,SAASA,aAAAA,GAAAA;AACP,IAAA,OAAOC,KAAKC,GAAG,EAAA,GAAK,KAAK,EAAK,GAAA,EAAA,GAAK;AACrC;AAEA,wBAAe,CAAA,CAACC,MAAgB,EAAA,EAAEC,gBAAgB,EAAE,EAAW,GAAG,EAAE,GAAA;AAClE,IAAA,IAAIC,cAAiBL,GAAAA,aAAAA,EAAAA;AACrB,IAAA,MAAMM,aAAa,IAAIC,GAAAA,EAAAA;IAEvB,OAAO,OAAOC,OAAe,GAAGC,IAAAA,GAAAA;AAC9B,QAAA,IAAI,CAACL,aAAAA,CAAcM,QAAQ,CAACF,KAAQ,CAAA,EAAA;AAClC,YAAA,OAAOL,OAAOK,KAAUC,EAAAA,GAAAA,IAAAA,CAAAA;AAC1B;QAEA,IAAIR,IAAAA,CAAKC,GAAG,EAAA,GAAKG,cAAgB,EAAA;AAC/BC,YAAAA,UAAAA,CAAWK,KAAK,EAAA;YAChBN,cAAiBL,GAAAA,aAAAA,EAAAA;AACnB;QAEA,IAAIM,UAAAA,CAAWM,GAAG,CAACJ,KAAQ,CAAA,EAAA;YACzB,OAAO,KAAA;AACT;QAEAF,UAAWO,CAAAA,GAAG,CAACL,KAAO,EAAA,IAAA,CAAA;AACtB,QAAA,OAAOL,OAAOK,KAAUC,EAAAA,GAAAA,IAAAA,CAAAA;AAC1B,KAAA;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"rate-limiter.js","sources":["../../../src/services/metrics/rate-limiter.ts"],"sourcesContent":["import type { Sender } from './sender';\n\ninterface Options {\n limitedEvents?: string[];\n}\n\ntype TailParams<T extends (...args: any[]) => any> =\n Parameters<T> extends [unknown, ...infer U] ? U : never;\n\nfunction nextResetDate(): number {\n return Date.now() + 24 * 60 * 60 * 1000; // Now + 24 hours.\n}\n\nexport default (sender: Sender, { limitedEvents = [] }: Options = {}) => {\n let cacheExpiresAt = nextResetDate();\n const eventCache = new Map();\n\n return async (event: string, ...args: TailParams<Sender>) => {\n if (!limitedEvents.includes(event)) {\n return sender(event, ...args);\n }\n\n if (Date.now() > cacheExpiresAt) {\n eventCache.clear();\n cacheExpiresAt = nextResetDate();\n }\n\n if (eventCache.has(event)) {\n return false;\n }\n\n eventCache.set(event, true);\n return sender(event, ...args);\n };\n};\n"],"names":["nextResetDate","Date","now","sender","limitedEvents","cacheExpiresAt","eventCache","Map","event","args","includes","clear","has","set"],"mappings":";;AASA,SAASA,aAAAA,GAAAA;AACP,IAAA,OAAOC,KAAKC,GAAG,EAAA,GAAK,KAAK,EAAA,GAAK,EAAA,GAAK;AACrC;AAEA,wBAAe,CAAA,CAACC,MAAAA,EAAgB,EAAEC,gBAAgB,EAAE,EAAW,GAAG,EAAE,GAAA;AAClE,IAAA,IAAIC,cAAAA,GAAiBL,aAAAA,EAAAA;AACrB,IAAA,MAAMM,aAAa,IAAIC,GAAAA,EAAAA;IAEvB,OAAO,OAAOC,OAAe,GAAGC,IAAAA,GAAAA;AAC9B,QAAA,IAAI,CAACL,aAAAA,CAAcM,QAAQ,CAACF,KAAAA,CAAAA,EAAQ;AAClC,YAAA,OAAOL,OAAOK,KAAAA,EAAAA,GAAUC,IAAAA,CAAAA;AAC1B,QAAA;QAEA,IAAIR,IAAAA,CAAKC,GAAG,EAAA,GAAKG,cAAAA,EAAgB;AAC/BC,YAAAA,UAAAA,CAAWK,KAAK,EAAA;YAChBN,cAAAA,GAAiBL,aAAAA,EAAAA;AACnB,QAAA;QAEA,IAAIM,UAAAA,CAAWM,GAAG,CAACJ,KAAAA,CAAAA,EAAQ;YACzB,OAAO,KAAA;AACT,QAAA;QAEAF,UAAAA,CAAWO,GAAG,CAACL,KAAAA,EAAO,IAAA,CAAA;AACtB,QAAA,OAAOL,OAAOK,KAAAA,EAAAA,GAAUC,IAAAA,CAAAA;AAC1B,IAAA,CAAA;AACF,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"rate-limiter.mjs","sources":["../../../src/services/metrics/rate-limiter.ts"],"sourcesContent":["import type { Sender } from './sender';\n\ninterface Options {\n limitedEvents?: string[];\n}\n\ntype TailParams<T extends (...args: any[]) => any> =\n Parameters<T> extends [unknown, ...infer U] ? U : never;\n\nfunction nextResetDate(): number {\n return Date.now() + 24 * 60 * 60 * 1000; // Now + 24 hours.\n}\n\nexport default (sender: Sender, { limitedEvents = [] }: Options = {}) => {\n let cacheExpiresAt = nextResetDate();\n const eventCache = new Map();\n\n return async (event: string, ...args: TailParams<Sender>) => {\n if (!limitedEvents.includes(event)) {\n return sender(event, ...args);\n }\n\n if (Date.now() > cacheExpiresAt) {\n eventCache.clear();\n cacheExpiresAt = nextResetDate();\n }\n\n if (eventCache.has(event)) {\n return false;\n }\n\n eventCache.set(event, true);\n return sender(event, ...args);\n };\n};\n"],"names":["nextResetDate","Date","now","sender","limitedEvents","cacheExpiresAt","eventCache","Map","event","args","includes","clear","has","set"],"mappings":"AASA,SAASA,aAAAA,GAAAA;AACP,IAAA,OAAOC,KAAKC,GAAG,EAAA,GAAK,KAAK,EAAK,GAAA,EAAA,GAAK;AACrC;AAEA,wBAAe,CAAA,CAACC,MAAgB,EAAA,EAAEC,gBAAgB,EAAE,EAAW,GAAG,EAAE,GAAA;AAClE,IAAA,IAAIC,cAAiBL,GAAAA,aAAAA,EAAAA;AACrB,IAAA,MAAMM,aAAa,IAAIC,GAAAA,EAAAA;IAEvB,OAAO,OAAOC,OAAe,GAAGC,IAAAA,GAAAA;AAC9B,QAAA,IAAI,CAACL,aAAAA,CAAcM,QAAQ,CAACF,KAAQ,CAAA,EAAA;AAClC,YAAA,OAAOL,OAAOK,KAAUC,EAAAA,GAAAA,IAAAA,CAAAA;AAC1B;QAEA,IAAIR,IAAAA,CAAKC,GAAG,EAAA,GAAKG,cAAgB,EAAA;AAC/BC,YAAAA,UAAAA,CAAWK,KAAK,EAAA;YAChBN,cAAiBL,GAAAA,aAAAA,EAAAA;AACnB;QAEA,IAAIM,UAAAA,CAAWM,GAAG,CAACJ,KAAQ,CAAA,EAAA;YACzB,OAAO,KAAA;AACT;QAEAF,UAAWO,CAAAA,GAAG,CAACL,KAAO,EAAA,IAAA,CAAA;AACtB,QAAA,OAAOL,OAAOK,KAAUC,EAAAA,GAAAA,IAAAA,CAAAA;AAC1B,KAAA;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"rate-limiter.mjs","sources":["../../../src/services/metrics/rate-limiter.ts"],"sourcesContent":["import type { Sender } from './sender';\n\ninterface Options {\n limitedEvents?: string[];\n}\n\ntype TailParams<T extends (...args: any[]) => any> =\n Parameters<T> extends [unknown, ...infer U] ? U : never;\n\nfunction nextResetDate(): number {\n return Date.now() + 24 * 60 * 60 * 1000; // Now + 24 hours.\n}\n\nexport default (sender: Sender, { limitedEvents = [] }: Options = {}) => {\n let cacheExpiresAt = nextResetDate();\n const eventCache = new Map();\n\n return async (event: string, ...args: TailParams<Sender>) => {\n if (!limitedEvents.includes(event)) {\n return sender(event, ...args);\n }\n\n if (Date.now() > cacheExpiresAt) {\n eventCache.clear();\n cacheExpiresAt = nextResetDate();\n }\n\n if (eventCache.has(event)) {\n return false;\n }\n\n eventCache.set(event, true);\n return sender(event, ...args);\n };\n};\n"],"names":["nextResetDate","Date","now","sender","limitedEvents","cacheExpiresAt","eventCache","Map","event","args","includes","clear","has","set"],"mappings":"AASA,SAASA,aAAAA,GAAAA;AACP,IAAA,OAAOC,KAAKC,GAAG,EAAA,GAAK,KAAK,EAAA,GAAK,EAAA,GAAK;AACrC;AAEA,wBAAe,CAAA,CAACC,MAAAA,EAAgB,EAAEC,gBAAgB,EAAE,EAAW,GAAG,EAAE,GAAA;AAClE,IAAA,IAAIC,cAAAA,GAAiBL,aAAAA,EAAAA;AACrB,IAAA,MAAMM,aAAa,IAAIC,GAAAA,EAAAA;IAEvB,OAAO,OAAOC,OAAe,GAAGC,IAAAA,GAAAA;AAC9B,QAAA,IAAI,CAACL,aAAAA,CAAcM,QAAQ,CAACF,KAAAA,CAAAA,EAAQ;AAClC,YAAA,OAAOL,OAAOK,KAAAA,EAAAA,GAAUC,IAAAA,CAAAA;AAC1B,QAAA;QAEA,IAAIR,IAAAA,CAAKC,GAAG,EAAA,GAAKG,cAAAA,EAAgB;AAC/BC,YAAAA,UAAAA,CAAWK,KAAK,EAAA;YAChBN,cAAAA,GAAiBL,aAAAA,EAAAA;AACnB,QAAA;QAEA,IAAIM,UAAAA,CAAWM,GAAG,CAACJ,KAAAA,CAAAA,EAAQ;YACzB,OAAO,KAAA;AACT,QAAA;QAEAF,UAAAA,CAAWO,GAAG,CAACL,KAAAA,EAAO,IAAA,CAAA;AACtB,QAAA,OAAOL,OAAOK,KAAAA,EAAAA,GAAUC,IAAAA,CAAAA;AAC1B,IAAA,CAAA;AACF,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"sender.js","sources":["../../../src/services/metrics/sender.ts"],"sourcesContent":["import os from 'os';\nimport path from 'path';\nimport _ from 'lodash';\nimport isDocker from 'is-docker';\nimport ciEnv from 'ci-info';\nimport tsUtils from '@strapi/typescript-utils';\nimport { env, generateInstallId } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\nimport { generateAdminUserHash } from './admin-user-hash';\n\nexport interface Payload {\n eventProperties?: Record<string, unknown>;\n userProperties?: Record<string, unknown>;\n groupProperties?: Record<string, unknown>;\n}\n\nexport type Sender = (\n event: string,\n payload?: Payload,\n opts?: Record<string, unknown>\n) => Promise<boolean>;\n\nconst defaultQueryOpts = {\n timeout: 1000,\n headers: { 'Content-Type': 'application/json' },\n};\n\n/**\n * Add properties from the package.json strapi key in the metadata\n */\nconst addPackageJsonStrapiMetadata = (metadata: Record<string, unknown>, strapi: Core.Strapi) => {\n const { packageJsonStrapi = {} } = strapi.config;\n\n _.defaults(metadata, packageJsonStrapi);\n};\n\n/**\n * Create a send function for event with all the necessary metadata\n */\nexport default (strapi: Core.Strapi): Sender => {\n const { uuid, installId: installIdFromPackageJson } = strapi.config;\n\n const installId = generateInstallId(uuid, installIdFromPackageJson);\n\n const serverRootPath = strapi.dirs.app.root;\n const adminRootPath = path.join(strapi.dirs.app.root, 'src', 'admin');\n\n const anonymousUserProperties = {\n environment: strapi.config.environment,\n os: os.type(),\n osPlatform: os.platform(),\n osArch: os.arch(),\n osRelease: os.release(),\n nodeVersion: process.versions.node,\n };\n\n const anonymousGroupProperties = {\n docker: process.env.DOCKER || isDocker(),\n isCI: ciEnv.isCI,\n version: strapi.config.get('info.strapi'),\n useTypescriptOnServer: tsUtils.isUsingTypeScriptSync(serverRootPath),\n useTypescriptOnAdmin: tsUtils.isUsingTypeScriptSync(adminRootPath),\n projectId: uuid,\n isHostedOnStrapiCloud: env('STRAPI_HOSTING', null) === 'strapi.cloud',\n };\n\n addPackageJsonStrapiMetadata(anonymousGroupProperties, strapi);\n\n return async (event: string, payload: Payload = {}, opts = {}) => {\n const userId = generateAdminUserHash(strapi);\n\n const eeGroupProps: Record<string, unknown> = {};\n if (strapi.ee?.subscriptionId !== undefined && strapi.ee?.subscriptionId !== null) {\n eeGroupProps.subscriptionId = strapi.ee.subscriptionId;\n }\n if (strapi.ee?.planPriceId !== undefined && strapi.ee?.planPriceId !== null) {\n eeGroupProps.planPriceId = strapi.ee.planPriceId;\n }\n\n const reqParams = {\n method: 'POST',\n body: JSON.stringify({\n event,\n userId,\n installId,\n eventProperties: payload.eventProperties,\n userProperties: userId ? { ...anonymousUserProperties, ...payload.userProperties } : {},\n groupProperties: {\n ...anonymousGroupProperties,\n projectType: strapi.EE ? 'Enterprise' : 'Community',\n ...eeGroupProps,\n ...payload.groupProperties,\n },\n }),\n ..._.merge({ headers: { 'X-Strapi-Event': event } }, defaultQueryOpts, opts),\n };\n\n try {\n const analyticsUrl = env('STRAPI_ANALYTICS_URL', 'https://analytics.strapi.io');\n const res = await strapi.fetch(`${analyticsUrl}/api/v2/track`, reqParams);\n return res.ok;\n } catch (err) {\n return false;\n }\n };\n};\n"],"names":["defaultQueryOpts","timeout","headers","addPackageJsonStrapiMetadata","metadata","strapi","packageJsonStrapi","config","_","defaults","uuid","installId","installIdFromPackageJson","generateInstallId","serverRootPath","dirs","app","root","adminRootPath","path","join","anonymousUserProperties","environment","os","type","osPlatform","platform","osArch","arch","osRelease","release","nodeVersion","process","versions","node","anonymousGroupProperties","docker","env","DOCKER","isDocker","isCI","ciEnv","version","get","useTypescriptOnServer","tsUtils","isUsingTypeScriptSync","useTypescriptOnAdmin","projectId","isHostedOnStrapiCloud","event","payload","opts","userId","generateAdminUserHash","eeGroupProps","ee","subscriptionId","undefined","planPriceId","reqParams","method","body","JSON","stringify","eventProperties","userProperties","groupProperties","projectType","EE","merge","analyticsUrl","res","fetch","ok","err"],"mappings":"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"}
1
+ {"version":3,"file":"sender.js","sources":["../../../src/services/metrics/sender.ts"],"sourcesContent":["import os from 'os';\nimport path from 'path';\nimport _ from 'lodash';\nimport isDocker from 'is-docker';\nimport ciEnv from 'ci-info';\nimport tsUtils from '@strapi/typescript-utils';\nimport { env, generateInstallId } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\nimport { generateAdminUserHash } from './admin-user-hash';\n\nexport interface Payload {\n eventProperties?: Record<string, unknown>;\n userProperties?: Record<string, unknown>;\n groupProperties?: Record<string, unknown>;\n}\n\nexport type Sender = (\n event: string,\n payload?: Payload,\n opts?: Record<string, unknown>\n) => Promise<boolean>;\n\nconst defaultQueryOpts = {\n timeout: 1000,\n headers: { 'Content-Type': 'application/json' },\n};\n\n/**\n * Add properties from the package.json strapi key in the metadata\n */\nconst addPackageJsonStrapiMetadata = (metadata: Record<string, unknown>, strapi: Core.Strapi) => {\n const { packageJsonStrapi = {} } = strapi.config;\n\n _.defaults(metadata, packageJsonStrapi);\n};\n\n/**\n * Create a send function for event with all the necessary metadata\n */\nexport default (strapi: Core.Strapi): Sender => {\n const { uuid, installId: installIdFromPackageJson } = strapi.config;\n\n const installId = generateInstallId(uuid, installIdFromPackageJson);\n\n const serverRootPath = strapi.dirs.app.root;\n const adminRootPath = path.join(strapi.dirs.app.root, 'src', 'admin');\n\n const anonymousUserProperties = {\n environment: strapi.config.environment,\n os: os.type(),\n osPlatform: os.platform(),\n osArch: os.arch(),\n osRelease: os.release(),\n nodeVersion: process.versions.node,\n };\n\n const anonymousGroupProperties = {\n docker: process.env.DOCKER || isDocker(),\n isCI: ciEnv.isCI,\n version: strapi.config.get('info.strapi'),\n useTypescriptOnServer: tsUtils.isUsingTypeScriptSync(serverRootPath),\n useTypescriptOnAdmin: tsUtils.isUsingTypeScriptSync(adminRootPath),\n projectId: uuid,\n isHostedOnStrapiCloud: env('STRAPI_HOSTING', null) === 'strapi.cloud',\n };\n\n addPackageJsonStrapiMetadata(anonymousGroupProperties, strapi);\n\n return async (event: string, payload: Payload = {}, opts = {}) => {\n const userId = generateAdminUserHash(strapi);\n\n const eeGroupProps: Record<string, unknown> = {};\n if (strapi.ee?.subscriptionId !== undefined && strapi.ee?.subscriptionId !== null) {\n eeGroupProps.subscriptionId = strapi.ee.subscriptionId;\n }\n if (strapi.ee?.planPriceId !== undefined && strapi.ee?.planPriceId !== null) {\n eeGroupProps.planPriceId = strapi.ee.planPriceId;\n }\n\n const reqParams = {\n method: 'POST',\n body: JSON.stringify({\n event,\n userId,\n installId,\n eventProperties: payload.eventProperties,\n userProperties: userId ? { ...anonymousUserProperties, ...payload.userProperties } : {},\n groupProperties: {\n ...anonymousGroupProperties,\n projectType: strapi.EE ? 'Enterprise' : 'Community',\n ...eeGroupProps,\n ...payload.groupProperties,\n },\n }),\n ..._.merge({ headers: { 'X-Strapi-Event': event } }, defaultQueryOpts, opts),\n };\n\n try {\n const analyticsUrl = env('STRAPI_ANALYTICS_URL', 'https://analytics.strapi.io');\n const res = await strapi.fetch(`${analyticsUrl}/api/v2/track`, reqParams);\n return res.ok;\n } catch (err) {\n return false;\n }\n };\n};\n"],"names":["defaultQueryOpts","timeout","headers","addPackageJsonStrapiMetadata","metadata","strapi","packageJsonStrapi","config","_","defaults","uuid","installId","installIdFromPackageJson","generateInstallId","serverRootPath","dirs","app","root","adminRootPath","path","join","anonymousUserProperties","environment","os","type","osPlatform","platform","osArch","arch","osRelease","release","nodeVersion","process","versions","node","anonymousGroupProperties","docker","env","DOCKER","isDocker","isCI","ciEnv","version","get","useTypescriptOnServer","tsUtils","isUsingTypeScriptSync","useTypescriptOnAdmin","projectId","isHostedOnStrapiCloud","event","payload","opts","userId","generateAdminUserHash","eeGroupProps","ee","subscriptionId","undefined","planPriceId","reqParams","method","body","JSON","stringify","eventProperties","userProperties","groupProperties","projectType","EE","merge","analyticsUrl","res","fetch","ok","err"],"mappings":";;;;;;;;;;;AAsBA,MAAMA,gBAAAA,GAAmB;IACvBC,OAAAA,EAAS,IAAA;IACTC,OAAAA,EAAS;QAAE,cAAA,EAAgB;AAAmB;AAChD,CAAA;AAEA;;IAGA,MAAMC,4BAAAA,GAA+B,CAACC,QAAAA,EAAmCC,MAAAA,GAAAA;AACvE,IAAA,MAAM,EAAEC,iBAAAA,GAAoB,EAAE,EAAE,GAAGD,OAAOE,MAAM;IAEhDC,CAAAA,CAAEC,QAAQ,CAACL,QAAAA,EAAUE,iBAAAA,CAAAA;AACvB,CAAA;AAEA;;IAGA,mBAAe,CAAA,CAACD,MAAAA,GAAAA;IACd,MAAM,EAAEK,IAAI,EAAEC,SAAAA,EAAWC,wBAAwB,EAAE,GAAGP,OAAOE,MAAM;IAEnE,MAAMI,SAAAA,GAAYE,8BAAkBH,IAAAA,EAAME,wBAAAA,CAAAA;AAE1C,IAAA,MAAME,iBAAiBT,MAAAA,CAAOU,IAAI,CAACC,GAAG,CAACC,IAAI;IAC3C,MAAMC,aAAAA,GAAgBC,IAAAA,CAAKC,IAAI,CAACf,MAAAA,CAAOU,IAAI,CAACC,GAAG,CAACC,IAAI,EAAE,KAAA,EAAO,OAAA,CAAA;AAE7D,IAAA,MAAMI,uBAAAA,GAA0B;QAC9BC,WAAAA,EAAajB,MAAAA,CAAOE,MAAM,CAACe,WAAW;AACtCC,QAAAA,EAAAA,EAAIA,GAAGC,IAAI,EAAA;AACXC,QAAAA,UAAAA,EAAYF,GAAGG,QAAQ,EAAA;AACvBC,QAAAA,MAAAA,EAAQJ,GAAGK,IAAI,EAAA;AACfC,QAAAA,SAAAA,EAAWN,GAAGO,OAAO,EAAA;QACrBC,WAAAA,EAAaC,OAAAA,CAAQC,QAAQ,CAACC;AAChC,KAAA;AAEA,IAAA,MAAMC,wBAAAA,GAA2B;AAC/BC,QAAAA,MAAAA,EAAQJ,OAAAA,CAAQK,GAAG,CAACC,MAAM,IAAIC,QAAAA,EAAAA;AAC9BC,QAAAA,IAAAA,EAAMC,MAAMD,IAAI;AAChBE,QAAAA,OAAAA,EAASrC,MAAAA,CAAOE,MAAM,CAACoC,GAAG,CAAC,aAAA,CAAA;QAC3BC,qBAAAA,EAAuBC,OAAAA,CAAQC,qBAAqB,CAAChC,cAAAA,CAAAA;QACrDiC,oBAAAA,EAAsBF,OAAAA,CAAQC,qBAAqB,CAAC5B,aAAAA,CAAAA;QACpD8B,SAAAA,EAAWtC,IAAAA;QACXuC,qBAAAA,EAAuBZ,eAAAA,CAAI,kBAAkB,IAAA,CAAA,KAAU;AACzD,KAAA;AAEAlC,IAAAA,4BAAAA,CAA6BgC,wBAAAA,EAA0B9B,MAAAA,CAAAA;IAEvD,OAAO,OAAO6C,OAAeC,OAAAA,GAAmB,EAAE,EAAEC,IAAAA,GAAO,EAAE,GAAA;AAC3D,QAAA,MAAMC,SAASC,mCAAAA,CAAsBjD,MAAAA,CAAAA;AAErC,QAAA,MAAMkD,eAAwC,EAAC;QAC/C,IAAIlD,MAAAA,CAAOmD,EAAE,EAAEC,cAAAA,KAAmBC,aAAarD,MAAAA,CAAOmD,EAAE,EAAEC,cAAAA,KAAmB,IAAA,EAAM;AACjFF,YAAAA,YAAAA,CAAaE,cAAc,GAAGpD,MAAAA,CAAOmD,EAAE,CAACC,cAAc;AACxD,QAAA;QACA,IAAIpD,MAAAA,CAAOmD,EAAE,EAAEG,WAAAA,KAAgBD,aAAarD,MAAAA,CAAOmD,EAAE,EAAEG,WAAAA,KAAgB,IAAA,EAAM;AAC3EJ,YAAAA,YAAAA,CAAaI,WAAW,GAAGtD,MAAAA,CAAOmD,EAAE,CAACG,WAAW;AAClD,QAAA;AAEA,QAAA,MAAMC,SAAAA,GAAY;YAChBC,MAAAA,EAAQ,MAAA;YACRC,IAAAA,EAAMC,IAAAA,CAAKC,SAAS,CAAC;AACnBd,gBAAAA,KAAAA;AACAG,gBAAAA,MAAAA;AACA1C,gBAAAA,SAAAA;AACAsD,gBAAAA,eAAAA,EAAiBd,QAAQc,eAAe;AACxCC,gBAAAA,cAAAA,EAAgBb,MAAAA,GAAS;AAAE,oBAAA,GAAGhC,uBAAuB;AAAE,oBAAA,GAAG8B,QAAQe;AAAe,iBAAA,GAAI,EAAC;gBACtFC,eAAAA,EAAiB;AACf,oBAAA,GAAGhC,wBAAwB;oBAC3BiC,WAAAA,EAAa/D,MAAAA,CAAOgE,EAAE,GAAG,YAAA,GAAe,WAAA;AACxC,oBAAA,GAAGd,YAAY;AACf,oBAAA,GAAGJ,QAAQgB;AACb;AACF,aAAA,CAAA;YACA,GAAG3D,CAAAA,CAAE8D,KAAK,CAAC;gBAAEpE,OAAAA,EAAS;oBAAE,gBAAA,EAAkBgD;AAAM;AAAE,aAAA,EAAGlD,kBAAkBoD,IAAAA;AACzE,SAAA;QAEA,IAAI;YACF,MAAMmB,YAAAA,GAAelC,gBAAI,sBAAA,EAAwB,6BAAA,CAAA;YACjD,MAAMmC,GAAAA,GAAM,MAAMnE,MAAAA,CAAOoE,KAAK,CAAC,CAAA,EAAGF,YAAAA,CAAa,aAAa,CAAC,EAAEX,SAAAA,CAAAA;AAC/D,YAAA,OAAOY,IAAIE,EAAE;AACf,QAAA,CAAA,CAAE,OAAOC,GAAAA,EAAK;YACZ,OAAO,KAAA;AACT,QAAA;AACF,IAAA,CAAA;AACF,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"sender.mjs","sources":["../../../src/services/metrics/sender.ts"],"sourcesContent":["import os from 'os';\nimport path from 'path';\nimport _ from 'lodash';\nimport isDocker from 'is-docker';\nimport ciEnv from 'ci-info';\nimport tsUtils from '@strapi/typescript-utils';\nimport { env, generateInstallId } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\nimport { generateAdminUserHash } from './admin-user-hash';\n\nexport interface Payload {\n eventProperties?: Record<string, unknown>;\n userProperties?: Record<string, unknown>;\n groupProperties?: Record<string, unknown>;\n}\n\nexport type Sender = (\n event: string,\n payload?: Payload,\n opts?: Record<string, unknown>\n) => Promise<boolean>;\n\nconst defaultQueryOpts = {\n timeout: 1000,\n headers: { 'Content-Type': 'application/json' },\n};\n\n/**\n * Add properties from the package.json strapi key in the metadata\n */\nconst addPackageJsonStrapiMetadata = (metadata: Record<string, unknown>, strapi: Core.Strapi) => {\n const { packageJsonStrapi = {} } = strapi.config;\n\n _.defaults(metadata, packageJsonStrapi);\n};\n\n/**\n * Create a send function for event with all the necessary metadata\n */\nexport default (strapi: Core.Strapi): Sender => {\n const { uuid, installId: installIdFromPackageJson } = strapi.config;\n\n const installId = generateInstallId(uuid, installIdFromPackageJson);\n\n const serverRootPath = strapi.dirs.app.root;\n const adminRootPath = path.join(strapi.dirs.app.root, 'src', 'admin');\n\n const anonymousUserProperties = {\n environment: strapi.config.environment,\n os: os.type(),\n osPlatform: os.platform(),\n osArch: os.arch(),\n osRelease: os.release(),\n nodeVersion: process.versions.node,\n };\n\n const anonymousGroupProperties = {\n docker: process.env.DOCKER || isDocker(),\n isCI: ciEnv.isCI,\n version: strapi.config.get('info.strapi'),\n useTypescriptOnServer: tsUtils.isUsingTypeScriptSync(serverRootPath),\n useTypescriptOnAdmin: tsUtils.isUsingTypeScriptSync(adminRootPath),\n projectId: uuid,\n isHostedOnStrapiCloud: env('STRAPI_HOSTING', null) === 'strapi.cloud',\n };\n\n addPackageJsonStrapiMetadata(anonymousGroupProperties, strapi);\n\n return async (event: string, payload: Payload = {}, opts = {}) => {\n const userId = generateAdminUserHash(strapi);\n\n const eeGroupProps: Record<string, unknown> = {};\n if (strapi.ee?.subscriptionId !== undefined && strapi.ee?.subscriptionId !== null) {\n eeGroupProps.subscriptionId = strapi.ee.subscriptionId;\n }\n if (strapi.ee?.planPriceId !== undefined && strapi.ee?.planPriceId !== null) {\n eeGroupProps.planPriceId = strapi.ee.planPriceId;\n }\n\n const reqParams = {\n method: 'POST',\n body: JSON.stringify({\n event,\n userId,\n installId,\n eventProperties: payload.eventProperties,\n userProperties: userId ? { ...anonymousUserProperties, ...payload.userProperties } : {},\n groupProperties: {\n ...anonymousGroupProperties,\n projectType: strapi.EE ? 'Enterprise' : 'Community',\n ...eeGroupProps,\n ...payload.groupProperties,\n },\n }),\n ..._.merge({ headers: { 'X-Strapi-Event': event } }, defaultQueryOpts, opts),\n };\n\n try {\n const analyticsUrl = env('STRAPI_ANALYTICS_URL', 'https://analytics.strapi.io');\n const res = await strapi.fetch(`${analyticsUrl}/api/v2/track`, reqParams);\n return res.ok;\n } catch (err) {\n return false;\n }\n };\n};\n"],"names":["defaultQueryOpts","timeout","headers","addPackageJsonStrapiMetadata","metadata","strapi","packageJsonStrapi","config","_","defaults","uuid","installId","installIdFromPackageJson","generateInstallId","serverRootPath","dirs","app","root","adminRootPath","path","join","anonymousUserProperties","environment","os","type","osPlatform","platform","osArch","arch","osRelease","release","nodeVersion","process","versions","node","anonymousGroupProperties","docker","env","DOCKER","isDocker","isCI","ciEnv","version","get","useTypescriptOnServer","tsUtils","isUsingTypeScriptSync","useTypescriptOnAdmin","projectId","isHostedOnStrapiCloud","event","payload","opts","userId","generateAdminUserHash","eeGroupProps","ee","subscriptionId","undefined","planPriceId","reqParams","method","body","JSON","stringify","eventProperties","userProperties","groupProperties","projectType","EE","merge","analyticsUrl","res","fetch","ok","err"],"mappings":"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"}
1
+ {"version":3,"file":"sender.mjs","sources":["../../../src/services/metrics/sender.ts"],"sourcesContent":["import os from 'os';\nimport path from 'path';\nimport _ from 'lodash';\nimport isDocker from 'is-docker';\nimport ciEnv from 'ci-info';\nimport tsUtils from '@strapi/typescript-utils';\nimport { env, generateInstallId } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\nimport { generateAdminUserHash } from './admin-user-hash';\n\nexport interface Payload {\n eventProperties?: Record<string, unknown>;\n userProperties?: Record<string, unknown>;\n groupProperties?: Record<string, unknown>;\n}\n\nexport type Sender = (\n event: string,\n payload?: Payload,\n opts?: Record<string, unknown>\n) => Promise<boolean>;\n\nconst defaultQueryOpts = {\n timeout: 1000,\n headers: { 'Content-Type': 'application/json' },\n};\n\n/**\n * Add properties from the package.json strapi key in the metadata\n */\nconst addPackageJsonStrapiMetadata = (metadata: Record<string, unknown>, strapi: Core.Strapi) => {\n const { packageJsonStrapi = {} } = strapi.config;\n\n _.defaults(metadata, packageJsonStrapi);\n};\n\n/**\n * Create a send function for event with all the necessary metadata\n */\nexport default (strapi: Core.Strapi): Sender => {\n const { uuid, installId: installIdFromPackageJson } = strapi.config;\n\n const installId = generateInstallId(uuid, installIdFromPackageJson);\n\n const serverRootPath = strapi.dirs.app.root;\n const adminRootPath = path.join(strapi.dirs.app.root, 'src', 'admin');\n\n const anonymousUserProperties = {\n environment: strapi.config.environment,\n os: os.type(),\n osPlatform: os.platform(),\n osArch: os.arch(),\n osRelease: os.release(),\n nodeVersion: process.versions.node,\n };\n\n const anonymousGroupProperties = {\n docker: process.env.DOCKER || isDocker(),\n isCI: ciEnv.isCI,\n version: strapi.config.get('info.strapi'),\n useTypescriptOnServer: tsUtils.isUsingTypeScriptSync(serverRootPath),\n useTypescriptOnAdmin: tsUtils.isUsingTypeScriptSync(adminRootPath),\n projectId: uuid,\n isHostedOnStrapiCloud: env('STRAPI_HOSTING', null) === 'strapi.cloud',\n };\n\n addPackageJsonStrapiMetadata(anonymousGroupProperties, strapi);\n\n return async (event: string, payload: Payload = {}, opts = {}) => {\n const userId = generateAdminUserHash(strapi);\n\n const eeGroupProps: Record<string, unknown> = {};\n if (strapi.ee?.subscriptionId !== undefined && strapi.ee?.subscriptionId !== null) {\n eeGroupProps.subscriptionId = strapi.ee.subscriptionId;\n }\n if (strapi.ee?.planPriceId !== undefined && strapi.ee?.planPriceId !== null) {\n eeGroupProps.planPriceId = strapi.ee.planPriceId;\n }\n\n const reqParams = {\n method: 'POST',\n body: JSON.stringify({\n event,\n userId,\n installId,\n eventProperties: payload.eventProperties,\n userProperties: userId ? { ...anonymousUserProperties, ...payload.userProperties } : {},\n groupProperties: {\n ...anonymousGroupProperties,\n projectType: strapi.EE ? 'Enterprise' : 'Community',\n ...eeGroupProps,\n ...payload.groupProperties,\n },\n }),\n ..._.merge({ headers: { 'X-Strapi-Event': event } }, defaultQueryOpts, opts),\n };\n\n try {\n const analyticsUrl = env('STRAPI_ANALYTICS_URL', 'https://analytics.strapi.io');\n const res = await strapi.fetch(`${analyticsUrl}/api/v2/track`, reqParams);\n return res.ok;\n } catch (err) {\n return false;\n }\n };\n};\n"],"names":["defaultQueryOpts","timeout","headers","addPackageJsonStrapiMetadata","metadata","strapi","packageJsonStrapi","config","_","defaults","uuid","installId","installIdFromPackageJson","generateInstallId","serverRootPath","dirs","app","root","adminRootPath","path","join","anonymousUserProperties","environment","os","type","osPlatform","platform","osArch","arch","osRelease","release","nodeVersion","process","versions","node","anonymousGroupProperties","docker","env","DOCKER","isDocker","isCI","ciEnv","version","get","useTypescriptOnServer","tsUtils","isUsingTypeScriptSync","useTypescriptOnAdmin","projectId","isHostedOnStrapiCloud","event","payload","opts","userId","generateAdminUserHash","eeGroupProps","ee","subscriptionId","undefined","planPriceId","reqParams","method","body","JSON","stringify","eventProperties","userProperties","groupProperties","projectType","EE","merge","analyticsUrl","res","fetch","ok","err"],"mappings":";;;;;;;;;AAsBA,MAAMA,gBAAAA,GAAmB;IACvBC,OAAAA,EAAS,IAAA;IACTC,OAAAA,EAAS;QAAE,cAAA,EAAgB;AAAmB;AAChD,CAAA;AAEA;;IAGA,MAAMC,4BAAAA,GAA+B,CAACC,QAAAA,EAAmCC,MAAAA,GAAAA;AACvE,IAAA,MAAM,EAAEC,iBAAAA,GAAoB,EAAE,EAAE,GAAGD,OAAOE,MAAM;IAEhDC,CAAAA,CAAEC,QAAQ,CAACL,QAAAA,EAAUE,iBAAAA,CAAAA;AACvB,CAAA;AAEA;;IAGA,mBAAe,CAAA,CAACD,MAAAA,GAAAA;IACd,MAAM,EAAEK,IAAI,EAAEC,SAAAA,EAAWC,wBAAwB,EAAE,GAAGP,OAAOE,MAAM;IAEnE,MAAMI,SAAAA,GAAYE,kBAAkBH,IAAAA,EAAME,wBAAAA,CAAAA;AAE1C,IAAA,MAAME,iBAAiBT,MAAAA,CAAOU,IAAI,CAACC,GAAG,CAACC,IAAI;IAC3C,MAAMC,aAAAA,GAAgBC,IAAAA,CAAKC,IAAI,CAACf,MAAAA,CAAOU,IAAI,CAACC,GAAG,CAACC,IAAI,EAAE,KAAA,EAAO,OAAA,CAAA;AAE7D,IAAA,MAAMI,uBAAAA,GAA0B;QAC9BC,WAAAA,EAAajB,MAAAA,CAAOE,MAAM,CAACe,WAAW;AACtCC,QAAAA,EAAAA,EAAIA,GAAGC,IAAI,EAAA;AACXC,QAAAA,UAAAA,EAAYF,GAAGG,QAAQ,EAAA;AACvBC,QAAAA,MAAAA,EAAQJ,GAAGK,IAAI,EAAA;AACfC,QAAAA,SAAAA,EAAWN,GAAGO,OAAO,EAAA;QACrBC,WAAAA,EAAaC,OAAAA,CAAQC,QAAQ,CAACC;AAChC,KAAA;AAEA,IAAA,MAAMC,wBAAAA,GAA2B;AAC/BC,QAAAA,MAAAA,EAAQJ,OAAAA,CAAQK,GAAG,CAACC,MAAM,IAAIC,QAAAA,EAAAA;AAC9BC,QAAAA,IAAAA,EAAMC,MAAMD,IAAI;AAChBE,QAAAA,OAAAA,EAASrC,MAAAA,CAAOE,MAAM,CAACoC,GAAG,CAAC,aAAA,CAAA;QAC3BC,qBAAAA,EAAuBC,OAAAA,CAAQC,qBAAqB,CAAChC,cAAAA,CAAAA;QACrDiC,oBAAAA,EAAsBF,OAAAA,CAAQC,qBAAqB,CAAC5B,aAAAA,CAAAA;QACpD8B,SAAAA,EAAWtC,IAAAA;QACXuC,qBAAAA,EAAuBZ,GAAAA,CAAI,kBAAkB,IAAA,CAAA,KAAU;AACzD,KAAA;AAEAlC,IAAAA,4BAAAA,CAA6BgC,wBAAAA,EAA0B9B,MAAAA,CAAAA;IAEvD,OAAO,OAAO6C,OAAeC,OAAAA,GAAmB,EAAE,EAAEC,IAAAA,GAAO,EAAE,GAAA;AAC3D,QAAA,MAAMC,SAASC,qBAAAA,CAAsBjD,MAAAA,CAAAA;AAErC,QAAA,MAAMkD,eAAwC,EAAC;QAC/C,IAAIlD,MAAAA,CAAOmD,EAAE,EAAEC,cAAAA,KAAmBC,aAAarD,MAAAA,CAAOmD,EAAE,EAAEC,cAAAA,KAAmB,IAAA,EAAM;AACjFF,YAAAA,YAAAA,CAAaE,cAAc,GAAGpD,MAAAA,CAAOmD,EAAE,CAACC,cAAc;AACxD,QAAA;QACA,IAAIpD,MAAAA,CAAOmD,EAAE,EAAEG,WAAAA,KAAgBD,aAAarD,MAAAA,CAAOmD,EAAE,EAAEG,WAAAA,KAAgB,IAAA,EAAM;AAC3EJ,YAAAA,YAAAA,CAAaI,WAAW,GAAGtD,MAAAA,CAAOmD,EAAE,CAACG,WAAW;AAClD,QAAA;AAEA,QAAA,MAAMC,SAAAA,GAAY;YAChBC,MAAAA,EAAQ,MAAA;YACRC,IAAAA,EAAMC,IAAAA,CAAKC,SAAS,CAAC;AACnBd,gBAAAA,KAAAA;AACAG,gBAAAA,MAAAA;AACA1C,gBAAAA,SAAAA;AACAsD,gBAAAA,eAAAA,EAAiBd,QAAQc,eAAe;AACxCC,gBAAAA,cAAAA,EAAgBb,MAAAA,GAAS;AAAE,oBAAA,GAAGhC,uBAAuB;AAAE,oBAAA,GAAG8B,QAAQe;AAAe,iBAAA,GAAI,EAAC;gBACtFC,eAAAA,EAAiB;AACf,oBAAA,GAAGhC,wBAAwB;oBAC3BiC,WAAAA,EAAa/D,MAAAA,CAAOgE,EAAE,GAAG,YAAA,GAAe,WAAA;AACxC,oBAAA,GAAGd,YAAY;AACf,oBAAA,GAAGJ,QAAQgB;AACb;AACF,aAAA,CAAA;YACA,GAAG3D,CAAAA,CAAE8D,KAAK,CAAC;gBAAEpE,OAAAA,EAAS;oBAAE,gBAAA,EAAkBgD;AAAM;AAAE,aAAA,EAAGlD,kBAAkBoD,IAAAA;AACzE,SAAA;QAEA,IAAI;YACF,MAAMmB,YAAAA,GAAelC,IAAI,sBAAA,EAAwB,6BAAA,CAAA;YACjD,MAAMmC,GAAAA,GAAM,MAAMnE,MAAAA,CAAOoE,KAAK,CAAC,CAAA,EAAGF,YAAAA,CAAa,aAAa,CAAC,EAAEX,SAAAA,CAAAA;AAC/D,YAAA,OAAOY,IAAIE,EAAE;AACf,QAAA,CAAA,CAAE,OAAOC,GAAAA,EAAK;YACZ,OAAO,KAAA;AACT,QAAA;AACF,IAAA,CAAA;AACF,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"query-params.js","sources":["../../src/services/query-params.ts"],"sourcesContent":["import { queryParams } from '@strapi/utils';\nimport type { Core, UID } from '@strapi/types';\n\nexport default (strapi: Core.Strapi) => {\n const { transformQueryParams } = queryParams.createTransformer({\n getModel: (uid: string) => strapi.getModel(uid as UID.Schema),\n });\n\n return {\n transform: transformQueryParams,\n };\n};\n"],"names":["strapi","transformQueryParams","queryParams","createTransformer","getModel","uid","transform"],"mappings":";;;;AAGA,8BAAe,CAAA,CAACA,MAAAA,GAAAA;AACd,IAAA,MAAM,EAAEC,oBAAoB,EAAE,GAAGC,uBAAAA,CAAYC,iBAAiB,CAAC;AAC7DC,QAAAA,QAAAA,EAAU,CAACC,GAAAA,GAAgBL,MAAOI,CAAAA,QAAQ,CAACC,GAAAA;AAC7C,KAAA,CAAA;IAEA,OAAO;QACLC,SAAWL,EAAAA;AACb,KAAA;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"query-params.js","sources":["../../src/services/query-params.ts"],"sourcesContent":["import { queryParams } from '@strapi/utils';\nimport type { Core, UID } from '@strapi/types';\n\nexport default (strapi: Core.Strapi) => {\n const { transformQueryParams } = queryParams.createTransformer({\n getModel: (uid: string) => strapi.getModel(uid as UID.Schema),\n });\n\n return {\n transform: transformQueryParams,\n };\n};\n"],"names":["strapi","transformQueryParams","queryParams","createTransformer","getModel","uid","transform"],"mappings":";;;;AAGA,8BAAe,CAAA,CAACA,MAAAA,GAAAA;AACd,IAAA,MAAM,EAAEC,oBAAoB,EAAE,GAAGC,uBAAAA,CAAYC,iBAAiB,CAAC;AAC7DC,QAAAA,QAAAA,EAAU,CAACC,GAAAA,GAAgBL,MAAAA,CAAOI,QAAQ,CAACC,GAAAA;AAC7C,KAAA,CAAA;IAEA,OAAO;QACLC,SAAAA,EAAWL;AACb,KAAA;AACF,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"query-params.mjs","sources":["../../src/services/query-params.ts"],"sourcesContent":["import { queryParams } from '@strapi/utils';\nimport type { Core, UID } from '@strapi/types';\n\nexport default (strapi: Core.Strapi) => {\n const { transformQueryParams } = queryParams.createTransformer({\n getModel: (uid: string) => strapi.getModel(uid as UID.Schema),\n });\n\n return {\n transform: transformQueryParams,\n };\n};\n"],"names":["strapi","transformQueryParams","queryParams","createTransformer","getModel","uid","transform"],"mappings":";;AAGA,8BAAe,CAAA,CAACA,MAAAA,GAAAA;AACd,IAAA,MAAM,EAAEC,oBAAoB,EAAE,GAAGC,WAAAA,CAAYC,iBAAiB,CAAC;AAC7DC,QAAAA,QAAAA,EAAU,CAACC,GAAAA,GAAgBL,MAAOI,CAAAA,QAAQ,CAACC,GAAAA;AAC7C,KAAA,CAAA;IAEA,OAAO;QACLC,SAAWL,EAAAA;AACb,KAAA;AACF,CAAA;;;;"}
1
+ {"version":3,"file":"query-params.mjs","sources":["../../src/services/query-params.ts"],"sourcesContent":["import { queryParams } from '@strapi/utils';\nimport type { Core, UID } from '@strapi/types';\n\nexport default (strapi: Core.Strapi) => {\n const { transformQueryParams } = queryParams.createTransformer({\n getModel: (uid: string) => strapi.getModel(uid as UID.Schema),\n });\n\n return {\n transform: transformQueryParams,\n };\n};\n"],"names":["strapi","transformQueryParams","queryParams","createTransformer","getModel","uid","transform"],"mappings":";;AAGA,8BAAe,CAAA,CAACA,MAAAA,GAAAA;AACd,IAAA,MAAM,EAAEC,oBAAoB,EAAE,GAAGC,WAAAA,CAAYC,iBAAiB,CAAC;AAC7DC,QAAAA,QAAAA,EAAU,CAACC,GAAAA,GAAgBL,MAAAA,CAAOI,QAAQ,CAACC,GAAAA;AAC7C,KAAA,CAAA;IAEA,OAAO;QACLC,SAAAA,EAAWL;AACb,KAAA;AACF,CAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"reloader.js","sources":["../../src/services/reloader.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nexport const createReloader = (strapi: Core.Strapi) => {\n const state = {\n shouldReload: 0,\n isWatching: true,\n };\n\n function reload() {\n if (state.shouldReload > 0) {\n // Reset the reloading state\n state.shouldReload -= 1;\n reload.isReloading = false;\n return;\n }\n\n if (strapi.config.get('autoReload')) {\n process.send?.('reload');\n }\n }\n\n Object.defineProperty(reload, 'isWatching', {\n configurable: true,\n enumerable: true,\n set(value) {\n // Special state when the reloader is disabled temporarly (see GraphQL plugin example).\n if (state.isWatching === false && value === true) {\n state.shouldReload += 1;\n }\n state.isWatching = value;\n },\n get() {\n return state.isWatching;\n },\n });\n\n reload.isReloading = false;\n reload.isWatching = true;\n\n return reload;\n};\n"],"names":["createReloader","strapi","state","shouldReload","isWatching","reload","isReloading","config","get","process","send","Object","defineProperty","configurable","enumerable","set","value"],"mappings":";;AAEO,MAAMA,iBAAiB,CAACC,MAAAA,GAAAA;AAC7B,IAAA,MAAMC,KAAQ,GAAA;QACZC,YAAc,EAAA,CAAA;QACdC,UAAY,EAAA;AACd,KAAA;IAEA,SAASC,MAAAA,GAAAA;QACP,IAAIH,KAAAA,CAAMC,YAAY,GAAG,CAAG,EAAA;;AAE1BD,YAAAA,KAAAA,CAAMC,YAAY,IAAI,CAAA;AACtBE,YAAAA,MAAAA,CAAOC,WAAW,GAAG,KAAA;AACrB,YAAA;AACF;AAEA,QAAA,IAAIL,MAAOM,CAAAA,MAAM,CAACC,GAAG,CAAC,YAAe,CAAA,EAAA;AACnCC,YAAAA,OAAAA,CAAQC,IAAI,GAAG,QAAA,CAAA;AACjB;AACF;IAEAC,MAAOC,CAAAA,cAAc,CAACP,MAAAA,EAAQ,YAAc,EAAA;QAC1CQ,YAAc,EAAA,IAAA;QACdC,UAAY,EAAA,IAAA;AACZC,QAAAA,GAAAA,CAAAA,CAAIC,KAAK,EAAA;;AAEP,YAAA,IAAId,KAAME,CAAAA,UAAU,KAAK,KAAA,IAASY,UAAU,IAAM,EAAA;AAChDd,gBAAAA,KAAAA,CAAMC,YAAY,IAAI,CAAA;AACxB;AACAD,YAAAA,KAAAA,CAAME,UAAU,GAAGY,KAAAA;AACrB,SAAA;AACAR,QAAAA,GAAAA,CAAAA,GAAAA;AACE,YAAA,OAAON,MAAME,UAAU;AACzB;AACF,KAAA,CAAA;AAEAC,IAAAA,MAAAA,CAAOC,WAAW,GAAG,KAAA;AACrBD,IAAAA,MAAAA,CAAOD,UAAU,GAAG,IAAA;IAEpB,OAAOC,MAAAA;AACT;;;;"}
1
+ {"version":3,"file":"reloader.js","sources":["../../src/services/reloader.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nexport const createReloader = (strapi: Core.Strapi) => {\n const state = {\n shouldReload: 0,\n isWatching: true,\n };\n\n function reload() {\n if (state.shouldReload > 0) {\n // Reset the reloading state\n state.shouldReload -= 1;\n reload.isReloading = false;\n return;\n }\n\n if (strapi.config.get('autoReload')) {\n process.send?.('reload');\n }\n }\n\n Object.defineProperty(reload, 'isWatching', {\n configurable: true,\n enumerable: true,\n set(value) {\n // Special state when the reloader is disabled temporarly (see GraphQL plugin example).\n if (state.isWatching === false && value === true) {\n state.shouldReload += 1;\n }\n state.isWatching = value;\n },\n get() {\n return state.isWatching;\n },\n });\n\n reload.isReloading = false;\n reload.isWatching = true;\n\n return reload;\n};\n"],"names":["createReloader","strapi","state","shouldReload","isWatching","reload","isReloading","config","get","process","send","Object","defineProperty","configurable","enumerable","set","value"],"mappings":";;AAEO,MAAMA,iBAAiB,CAACC,MAAAA,GAAAA;AAC7B,IAAA,MAAMC,KAAAA,GAAQ;QACZC,YAAAA,EAAc,CAAA;QACdC,UAAAA,EAAY;AACd,KAAA;IAEA,SAASC,MAAAA,GAAAA;QACP,IAAIH,KAAAA,CAAMC,YAAY,GAAG,CAAA,EAAG;;AAE1BD,YAAAA,KAAAA,CAAMC,YAAY,IAAI,CAAA;AACtBE,YAAAA,MAAAA,CAAOC,WAAW,GAAG,KAAA;AACrB,YAAA;AACF,QAAA;AAEA,QAAA,IAAIL,MAAAA,CAAOM,MAAM,CAACC,GAAG,CAAC,YAAA,CAAA,EAAe;AACnCC,YAAAA,OAAAA,CAAQC,IAAI,GAAG,QAAA,CAAA;AACjB,QAAA;AACF,IAAA;IAEAC,MAAAA,CAAOC,cAAc,CAACP,MAAAA,EAAQ,YAAA,EAAc;QAC1CQ,YAAAA,EAAc,IAAA;QACdC,UAAAA,EAAY,IAAA;AACZC,QAAAA,GAAAA,CAAAA,CAAIC,KAAK,EAAA;;AAEP,YAAA,IAAId,KAAAA,CAAME,UAAU,KAAK,KAAA,IAASY,UAAU,IAAA,EAAM;AAChDd,gBAAAA,KAAAA,CAAMC,YAAY,IAAI,CAAA;AACxB,YAAA;AACAD,YAAAA,KAAAA,CAAME,UAAU,GAAGY,KAAAA;AACrB,QAAA,CAAA;AACAR,QAAAA,GAAAA,CAAAA,GAAAA;AACE,YAAA,OAAON,MAAME,UAAU;AACzB,QAAA;AACF,KAAA,CAAA;AAEAC,IAAAA,MAAAA,CAAOC,WAAW,GAAG,KAAA;AACrBD,IAAAA,MAAAA,CAAOD,UAAU,GAAG,IAAA;IAEpB,OAAOC,MAAAA;AACT;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"reloader.mjs","sources":["../../src/services/reloader.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nexport const createReloader = (strapi: Core.Strapi) => {\n const state = {\n shouldReload: 0,\n isWatching: true,\n };\n\n function reload() {\n if (state.shouldReload > 0) {\n // Reset the reloading state\n state.shouldReload -= 1;\n reload.isReloading = false;\n return;\n }\n\n if (strapi.config.get('autoReload')) {\n process.send?.('reload');\n }\n }\n\n Object.defineProperty(reload, 'isWatching', {\n configurable: true,\n enumerable: true,\n set(value) {\n // Special state when the reloader is disabled temporarly (see GraphQL plugin example).\n if (state.isWatching === false && value === true) {\n state.shouldReload += 1;\n }\n state.isWatching = value;\n },\n get() {\n return state.isWatching;\n },\n });\n\n reload.isReloading = false;\n reload.isWatching = true;\n\n return reload;\n};\n"],"names":["createReloader","strapi","state","shouldReload","isWatching","reload","isReloading","config","get","process","send","Object","defineProperty","configurable","enumerable","set","value"],"mappings":"AAEO,MAAMA,iBAAiB,CAACC,MAAAA,GAAAA;AAC7B,IAAA,MAAMC,KAAQ,GAAA;QACZC,YAAc,EAAA,CAAA;QACdC,UAAY,EAAA;AACd,KAAA;IAEA,SAASC,MAAAA,GAAAA;QACP,IAAIH,KAAAA,CAAMC,YAAY,GAAG,CAAG,EAAA;;AAE1BD,YAAAA,KAAAA,CAAMC,YAAY,IAAI,CAAA;AACtBE,YAAAA,MAAAA,CAAOC,WAAW,GAAG,KAAA;AACrB,YAAA;AACF;AAEA,QAAA,IAAIL,MAAOM,CAAAA,MAAM,CAACC,GAAG,CAAC,YAAe,CAAA,EAAA;AACnCC,YAAAA,OAAAA,CAAQC,IAAI,GAAG,QAAA,CAAA;AACjB;AACF;IAEAC,MAAOC,CAAAA,cAAc,CAACP,MAAAA,EAAQ,YAAc,EAAA;QAC1CQ,YAAc,EAAA,IAAA;QACdC,UAAY,EAAA,IAAA;AACZC,QAAAA,GAAAA,CAAAA,CAAIC,KAAK,EAAA;;AAEP,YAAA,IAAId,KAAME,CAAAA,UAAU,KAAK,KAAA,IAASY,UAAU,IAAM,EAAA;AAChDd,gBAAAA,KAAAA,CAAMC,YAAY,IAAI,CAAA;AACxB;AACAD,YAAAA,KAAAA,CAAME,UAAU,GAAGY,KAAAA;AACrB,SAAA;AACAR,QAAAA,GAAAA,CAAAA,GAAAA;AACE,YAAA,OAAON,MAAME,UAAU;AACzB;AACF,KAAA,CAAA;AAEAC,IAAAA,MAAAA,CAAOC,WAAW,GAAG,KAAA;AACrBD,IAAAA,MAAAA,CAAOD,UAAU,GAAG,IAAA;IAEpB,OAAOC,MAAAA;AACT;;;;"}
1
+ {"version":3,"file":"reloader.mjs","sources":["../../src/services/reloader.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nexport const createReloader = (strapi: Core.Strapi) => {\n const state = {\n shouldReload: 0,\n isWatching: true,\n };\n\n function reload() {\n if (state.shouldReload > 0) {\n // Reset the reloading state\n state.shouldReload -= 1;\n reload.isReloading = false;\n return;\n }\n\n if (strapi.config.get('autoReload')) {\n process.send?.('reload');\n }\n }\n\n Object.defineProperty(reload, 'isWatching', {\n configurable: true,\n enumerable: true,\n set(value) {\n // Special state when the reloader is disabled temporarly (see GraphQL plugin example).\n if (state.isWatching === false && value === true) {\n state.shouldReload += 1;\n }\n state.isWatching = value;\n },\n get() {\n return state.isWatching;\n },\n });\n\n reload.isReloading = false;\n reload.isWatching = true;\n\n return reload;\n};\n"],"names":["createReloader","strapi","state","shouldReload","isWatching","reload","isReloading","config","get","process","send","Object","defineProperty","configurable","enumerable","set","value"],"mappings":"AAEO,MAAMA,iBAAiB,CAACC,MAAAA,GAAAA;AAC7B,IAAA,MAAMC,KAAAA,GAAQ;QACZC,YAAAA,EAAc,CAAA;QACdC,UAAAA,EAAY;AACd,KAAA;IAEA,SAASC,MAAAA,GAAAA;QACP,IAAIH,KAAAA,CAAMC,YAAY,GAAG,CAAA,EAAG;;AAE1BD,YAAAA,KAAAA,CAAMC,YAAY,IAAI,CAAA;AACtBE,YAAAA,MAAAA,CAAOC,WAAW,GAAG,KAAA;AACrB,YAAA;AACF,QAAA;AAEA,QAAA,IAAIL,MAAAA,CAAOM,MAAM,CAACC,GAAG,CAAC,YAAA,CAAA,EAAe;AACnCC,YAAAA,OAAAA,CAAQC,IAAI,GAAG,QAAA,CAAA;AACjB,QAAA;AACF,IAAA;IAEAC,MAAAA,CAAOC,cAAc,CAACP,MAAAA,EAAQ,YAAA,EAAc;QAC1CQ,YAAAA,EAAc,IAAA;QACdC,UAAAA,EAAY,IAAA;AACZC,QAAAA,GAAAA,CAAAA,CAAIC,KAAK,EAAA;;AAEP,YAAA,IAAId,KAAAA,CAAME,UAAU,KAAK,KAAA,IAASY,UAAU,IAAA,EAAM;AAChDd,gBAAAA,KAAAA,CAAMC,YAAY,IAAI,CAAA;AACxB,YAAA;AACAD,YAAAA,KAAAA,CAAME,UAAU,GAAGY,KAAAA;AACrB,QAAA,CAAA;AACAR,QAAAA,GAAAA,CAAAA,GAAAA;AACE,YAAA,OAAON,MAAME,UAAU;AACzB,QAAA;AACF,KAAA,CAAA;AAEAC,IAAAA,MAAAA,CAAOC,WAAW,GAAG,KAAA;AACrBD,IAAAA,MAAAA,CAAOD,UAAU,GAAG,IAAA;IAEpB,OAAOC,MAAAA;AACT;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"request-context.js","sources":["../../src/services/request-context.ts"],"sourcesContent":["import { AsyncLocalStorage } from 'async_hooks';\nimport type { ParameterizedContext } from 'koa';\n\nconst storage = new AsyncLocalStorage<ParameterizedContext>();\n\nconst requestCtx = {\n async run(store: ParameterizedContext, cb: () => Promise<void>) {\n return storage.run(store, cb);\n },\n\n get() {\n return storage.getStore();\n },\n};\n\nexport default requestCtx;\n"],"names":["storage","AsyncLocalStorage","requestCtx","run","store","cb","get","getStore"],"mappings":";;;;AAGA,MAAMA,UAAU,IAAIC,6BAAAA,EAAAA;AAEpB,MAAMC,UAAa,GAAA;IACjB,MAAMC,GAAAA,CAAAA,CAAIC,KAA2B,EAAEC,EAAuB,EAAA;QAC5D,OAAOL,OAAAA,CAAQG,GAAG,CAACC,KAAOC,EAAAA,EAAAA,CAAAA;AAC5B,KAAA;AAEAC,IAAAA,GAAAA,CAAAA,GAAAA;AACE,QAAA,OAAON,QAAQO,QAAQ,EAAA;AACzB;AACF;;;;"}
1
+ {"version":3,"file":"request-context.js","sources":["../../src/services/request-context.ts"],"sourcesContent":["import { AsyncLocalStorage } from 'async_hooks';\nimport type { ParameterizedContext } from 'koa';\n\nconst storage = new AsyncLocalStorage<ParameterizedContext>();\n\nconst requestCtx = {\n async run(store: ParameterizedContext, cb: () => Promise<void>) {\n return storage.run(store, cb);\n },\n\n get() {\n return storage.getStore();\n },\n};\n\nexport default requestCtx;\n"],"names":["storage","AsyncLocalStorage","requestCtx","run","store","cb","get","getStore"],"mappings":";;;;AAGA,MAAMA,UAAU,IAAIC,6BAAAA,EAAAA;AAEpB,MAAMC,UAAAA,GAAa;IACjB,MAAMC,GAAAA,CAAAA,CAAIC,KAA2B,EAAEC,EAAuB,EAAA;QAC5D,OAAOL,OAAAA,CAAQG,GAAG,CAACC,KAAAA,EAAOC,EAAAA,CAAAA;AAC5B,IAAA,CAAA;AAEAC,IAAAA,GAAAA,CAAAA,GAAAA;AACE,QAAA,OAAON,QAAQO,QAAQ,EAAA;AACzB,IAAA;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"request-context.mjs","sources":["../../src/services/request-context.ts"],"sourcesContent":["import { AsyncLocalStorage } from 'async_hooks';\nimport type { ParameterizedContext } from 'koa';\n\nconst storage = new AsyncLocalStorage<ParameterizedContext>();\n\nconst requestCtx = {\n async run(store: ParameterizedContext, cb: () => Promise<void>) {\n return storage.run(store, cb);\n },\n\n get() {\n return storage.getStore();\n },\n};\n\nexport default requestCtx;\n"],"names":["storage","AsyncLocalStorage","requestCtx","run","store","cb","get","getStore"],"mappings":";;AAGA,MAAMA,UAAU,IAAIC,iBAAAA,EAAAA;AAEpB,MAAMC,UAAa,GAAA;IACjB,MAAMC,GAAAA,CAAAA,CAAIC,KAA2B,EAAEC,EAAuB,EAAA;QAC5D,OAAOL,OAAAA,CAAQG,GAAG,CAACC,KAAOC,EAAAA,EAAAA,CAAAA;AAC5B,KAAA;AAEAC,IAAAA,GAAAA,CAAAA,GAAAA;AACE,QAAA,OAAON,QAAQO,QAAQ,EAAA;AACzB;AACF;;;;"}
1
+ {"version":3,"file":"request-context.mjs","sources":["../../src/services/request-context.ts"],"sourcesContent":["import { AsyncLocalStorage } from 'async_hooks';\nimport type { ParameterizedContext } from 'koa';\n\nconst storage = new AsyncLocalStorage<ParameterizedContext>();\n\nconst requestCtx = {\n async run(store: ParameterizedContext, cb: () => Promise<void>) {\n return storage.run(store, cb);\n },\n\n get() {\n return storage.getStore();\n },\n};\n\nexport default requestCtx;\n"],"names":["storage","AsyncLocalStorage","requestCtx","run","store","cb","get","getStore"],"mappings":";;AAGA,MAAMA,UAAU,IAAIC,iBAAAA,EAAAA;AAEpB,MAAMC,UAAAA,GAAa;IACjB,MAAMC,GAAAA,CAAAA,CAAIC,KAA2B,EAAEC,EAAuB,EAAA;QAC5D,OAAOL,OAAAA,CAAQG,GAAG,CAACC,KAAAA,EAAOC,EAAAA,CAAAA;AAC5B,IAAA,CAAA;AAEAC,IAAAA,GAAAA,CAAAA,GAAAA;AACE,QAAA,OAAON,QAAQO,QAAQ,EAAA;AACzB,IAAA;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"admin-api.js","sources":["../../../src/services/server/admin-api.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { createAPI } from './api';\n\nconst createAdminAPI = (strapi: Core.Strapi) => {\n const opts = {\n prefix: '', // '/admin';\n type: 'admin',\n };\n\n return createAPI(strapi, opts);\n};\n\nexport { createAdminAPI };\n"],"names":["createAdminAPI","strapi","opts","prefix","type","createAPI"],"mappings":";;;;AAGA,MAAMA,iBAAiB,CAACC,MAAAA,GAAAA;AACtB,IAAA,MAAMC,IAAO,GAAA;QACXC,MAAQ,EAAA,EAAA;QACRC,IAAM,EAAA;AACR,KAAA;AAEA,IAAA,OAAOC,cAAUJ,MAAQC,EAAAA,IAAAA,CAAAA;AAC3B;;;;"}
1
+ {"version":3,"file":"admin-api.js","sources":["../../../src/services/server/admin-api.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { createAPI } from './api';\n\nconst createAdminAPI = (strapi: Core.Strapi) => {\n const opts = {\n prefix: '', // '/admin';\n type: 'admin',\n };\n\n return createAPI(strapi, opts);\n};\n\nexport { createAdminAPI };\n"],"names":["createAdminAPI","strapi","opts","prefix","type","createAPI"],"mappings":";;;;AAGA,MAAMA,iBAAiB,CAACC,MAAAA,GAAAA;AACtB,IAAA,MAAMC,IAAAA,GAAO;QACXC,MAAAA,EAAQ,EAAA;QACRC,IAAAA,EAAM;AACR,KAAA;AAEA,IAAA,OAAOC,cAAUJ,MAAAA,EAAQC,IAAAA,CAAAA;AAC3B;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"admin-api.mjs","sources":["../../../src/services/server/admin-api.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { createAPI } from './api';\n\nconst createAdminAPI = (strapi: Core.Strapi) => {\n const opts = {\n prefix: '', // '/admin';\n type: 'admin',\n };\n\n return createAPI(strapi, opts);\n};\n\nexport { createAdminAPI };\n"],"names":["createAdminAPI","strapi","opts","prefix","type","createAPI"],"mappings":";;AAGA,MAAMA,iBAAiB,CAACC,MAAAA,GAAAA;AACtB,IAAA,MAAMC,IAAO,GAAA;QACXC,MAAQ,EAAA,EAAA;QACRC,IAAM,EAAA;AACR,KAAA;AAEA,IAAA,OAAOC,UAAUJ,MAAQC,EAAAA,IAAAA,CAAAA;AAC3B;;;;"}
1
+ {"version":3,"file":"admin-api.mjs","sources":["../../../src/services/server/admin-api.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { createAPI } from './api';\n\nconst createAdminAPI = (strapi: Core.Strapi) => {\n const opts = {\n prefix: '', // '/admin';\n type: 'admin',\n };\n\n return createAPI(strapi, opts);\n};\n\nexport { createAdminAPI };\n"],"names":["createAdminAPI","strapi","opts","prefix","type","createAPI"],"mappings":";;AAGA,MAAMA,iBAAiB,CAACC,MAAAA,GAAAA;AACtB,IAAA,MAAMC,IAAAA,GAAO;QACXC,MAAAA,EAAQ,EAAA;QACRC,IAAAA,EAAM;AACR,KAAA;AAEA,IAAA,OAAOC,UAAUJ,MAAAA,EAAQC,IAAAA,CAAAA;AAC3B;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sources":["../../../src/services/server/api.ts"],"sourcesContent":["import Router from '@koa/router';\nimport type { Core } from '@strapi/types';\n\nimport { createRouteManager } from './routing';\n\ninterface Options {\n prefix?: string;\n type?: string;\n}\n\nconst createAPI = (strapi: Core.Strapi, opts: Options = {}) => {\n const { prefix, type } = opts;\n\n const api = new Router({ prefix });\n\n const routeManager = createRouteManager(strapi, { type });\n\n return {\n listRoutes() {\n return [...api.stack];\n },\n\n use(fn: Router.Middleware) {\n api.use(fn);\n return this;\n },\n\n routes(routes: Core.Router | Core.Route[]) {\n routeManager.addRoutes(routes, api);\n return this;\n },\n\n mount(router: Router) {\n router.use(api.routes(), api.allowedMethods());\n return this;\n },\n };\n};\n\nexport { createAPI };\n"],"names":["createAPI","strapi","opts","prefix","type","api","Router","routeManager","createRouteManager","listRoutes","stack","use","fn","routes","addRoutes","mount","router","allowedMethods"],"mappings":";;;;;AAUA,MAAMA,SAAY,GAAA,CAACC,MAAqBC,EAAAA,IAAAA,GAAgB,EAAE,GAAA;AACxD,IAAA,MAAM,EAAEC,MAAM,EAAEC,IAAI,EAAE,GAAGF,IAAAA;IAEzB,MAAMG,GAAAA,GAAM,IAAIC,MAAO,CAAA;AAAEH,QAAAA;AAAO,KAAA,CAAA;IAEhC,MAAMI,YAAAA,GAAeC,2BAAmBP,MAAQ,EAAA;AAAEG,QAAAA;AAAK,KAAA,CAAA;IAEvD,OAAO;AACLK,QAAAA,UAAAA,CAAAA,GAAAA;YACE,OAAO;AAAIJ,gBAAAA,GAAAA,GAAAA,CAAIK;AAAM,aAAA;AACvB,SAAA;AAEAC,QAAAA,GAAAA,CAAAA,CAAIC,EAAqB,EAAA;AACvBP,YAAAA,GAAAA,CAAIM,GAAG,CAACC,EAAAA,CAAAA;AACR,YAAA,OAAO,IAAI;AACb,SAAA;AAEAC,QAAAA,MAAAA,CAAAA,CAAOA,MAAkC,EAAA;YACvCN,YAAaO,CAAAA,SAAS,CAACD,MAAQR,EAAAA,GAAAA,CAAAA;AAC/B,YAAA,OAAO,IAAI;AACb,SAAA;AAEAU,QAAAA,KAAAA,CAAAA,CAAMC,MAAc,EAAA;AAClBA,YAAAA,MAAAA,CAAOL,GAAG,CAACN,GAAAA,CAAIQ,MAAM,EAAA,EAAIR,IAAIY,cAAc,EAAA,CAAA;AAC3C,YAAA,OAAO,IAAI;AACb;AACF,KAAA;AACF;;;;"}
1
+ {"version":3,"file":"api.js","sources":["../../../src/services/server/api.ts"],"sourcesContent":["import Router from '@koa/router';\nimport type { Core } from '@strapi/types';\n\nimport { createRouteManager } from './routing';\n\ninterface Options {\n prefix?: string;\n type?: string;\n}\n\nconst createAPI = (strapi: Core.Strapi, opts: Options = {}) => {\n const { prefix, type } = opts;\n\n const api = new Router({ prefix });\n\n const routeManager = createRouteManager(strapi, { type });\n\n return {\n listRoutes() {\n return [...api.stack];\n },\n\n use(fn: Router.Middleware) {\n api.use(fn);\n return this;\n },\n\n routes(routes: Core.Router | Core.Route[]) {\n routeManager.addRoutes(routes, api);\n return this;\n },\n\n mount(router: Router) {\n router.use(api.routes(), api.allowedMethods());\n return this;\n },\n };\n};\n\nexport { createAPI };\n"],"names":["createAPI","strapi","opts","prefix","type","api","Router","routeManager","createRouteManager","listRoutes","stack","use","fn","routes","addRoutes","mount","router","allowedMethods"],"mappings":";;;;;AAUA,MAAMA,SAAAA,GAAY,CAACC,MAAAA,EAAqBC,IAAAA,GAAgB,EAAE,GAAA;AACxD,IAAA,MAAM,EAAEC,MAAM,EAAEC,IAAI,EAAE,GAAGF,IAAAA;IAEzB,MAAMG,GAAAA,GAAM,IAAIC,MAAAA,CAAO;AAAEH,QAAAA;AAAO,KAAA,CAAA;IAEhC,MAAMI,YAAAA,GAAeC,2BAAmBP,MAAAA,EAAQ;AAAEG,QAAAA;AAAK,KAAA,CAAA;IAEvD,OAAO;AACLK,QAAAA,UAAAA,CAAAA,GAAAA;YACE,OAAO;AAAIJ,gBAAAA,GAAAA,GAAAA,CAAIK;AAAM,aAAA;AACvB,QAAA,CAAA;AAEAC,QAAAA,GAAAA,CAAAA,CAAIC,EAAqB,EAAA;AACvBP,YAAAA,GAAAA,CAAIM,GAAG,CAACC,EAAAA,CAAAA;AACR,YAAA,OAAO,IAAI;AACb,QAAA,CAAA;AAEAC,QAAAA,MAAAA,CAAAA,CAAOA,MAAkC,EAAA;YACvCN,YAAAA,CAAaO,SAAS,CAACD,MAAAA,EAAQR,GAAAA,CAAAA;AAC/B,YAAA,OAAO,IAAI;AACb,QAAA,CAAA;AAEAU,QAAAA,KAAAA,CAAAA,CAAMC,MAAc,EAAA;AAClBA,YAAAA,MAAAA,CAAOL,GAAG,CAACN,GAAAA,CAAIQ,MAAM,EAAA,EAAIR,IAAIY,cAAc,EAAA,CAAA;AAC3C,YAAA,OAAO,IAAI;AACb,QAAA;AACF,KAAA;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"api.mjs","sources":["../../../src/services/server/api.ts"],"sourcesContent":["import Router from '@koa/router';\nimport type { Core } from '@strapi/types';\n\nimport { createRouteManager } from './routing';\n\ninterface Options {\n prefix?: string;\n type?: string;\n}\n\nconst createAPI = (strapi: Core.Strapi, opts: Options = {}) => {\n const { prefix, type } = opts;\n\n const api = new Router({ prefix });\n\n const routeManager = createRouteManager(strapi, { type });\n\n return {\n listRoutes() {\n return [...api.stack];\n },\n\n use(fn: Router.Middleware) {\n api.use(fn);\n return this;\n },\n\n routes(routes: Core.Router | Core.Route[]) {\n routeManager.addRoutes(routes, api);\n return this;\n },\n\n mount(router: Router) {\n router.use(api.routes(), api.allowedMethods());\n return this;\n },\n };\n};\n\nexport { createAPI };\n"],"names":["createAPI","strapi","opts","prefix","type","api","Router","routeManager","createRouteManager","listRoutes","stack","use","fn","routes","addRoutes","mount","router","allowedMethods"],"mappings":";;;AAUA,MAAMA,SAAY,GAAA,CAACC,MAAqBC,EAAAA,IAAAA,GAAgB,EAAE,GAAA;AACxD,IAAA,MAAM,EAAEC,MAAM,EAAEC,IAAI,EAAE,GAAGF,IAAAA;IAEzB,MAAMG,GAAAA,GAAM,IAAIC,MAAO,CAAA;AAAEH,QAAAA;AAAO,KAAA,CAAA;IAEhC,MAAMI,YAAAA,GAAeC,mBAAmBP,MAAQ,EAAA;AAAEG,QAAAA;AAAK,KAAA,CAAA;IAEvD,OAAO;AACLK,QAAAA,UAAAA,CAAAA,GAAAA;YACE,OAAO;AAAIJ,gBAAAA,GAAAA,GAAAA,CAAIK;AAAM,aAAA;AACvB,SAAA;AAEAC,QAAAA,GAAAA,CAAAA,CAAIC,EAAqB,EAAA;AACvBP,YAAAA,GAAAA,CAAIM,GAAG,CAACC,EAAAA,CAAAA;AACR,YAAA,OAAO,IAAI;AACb,SAAA;AAEAC,QAAAA,MAAAA,CAAAA,CAAOA,MAAkC,EAAA;YACvCN,YAAaO,CAAAA,SAAS,CAACD,MAAQR,EAAAA,GAAAA,CAAAA;AAC/B,YAAA,OAAO,IAAI;AACb,SAAA;AAEAU,QAAAA,KAAAA,CAAAA,CAAMC,MAAc,EAAA;AAClBA,YAAAA,MAAAA,CAAOL,GAAG,CAACN,GAAAA,CAAIQ,MAAM,EAAA,EAAIR,IAAIY,cAAc,EAAA,CAAA;AAC3C,YAAA,OAAO,IAAI;AACb;AACF,KAAA;AACF;;;;"}
1
+ {"version":3,"file":"api.mjs","sources":["../../../src/services/server/api.ts"],"sourcesContent":["import Router from '@koa/router';\nimport type { Core } from '@strapi/types';\n\nimport { createRouteManager } from './routing';\n\ninterface Options {\n prefix?: string;\n type?: string;\n}\n\nconst createAPI = (strapi: Core.Strapi, opts: Options = {}) => {\n const { prefix, type } = opts;\n\n const api = new Router({ prefix });\n\n const routeManager = createRouteManager(strapi, { type });\n\n return {\n listRoutes() {\n return [...api.stack];\n },\n\n use(fn: Router.Middleware) {\n api.use(fn);\n return this;\n },\n\n routes(routes: Core.Router | Core.Route[]) {\n routeManager.addRoutes(routes, api);\n return this;\n },\n\n mount(router: Router) {\n router.use(api.routes(), api.allowedMethods());\n return this;\n },\n };\n};\n\nexport { createAPI };\n"],"names":["createAPI","strapi","opts","prefix","type","api","Router","routeManager","createRouteManager","listRoutes","stack","use","fn","routes","addRoutes","mount","router","allowedMethods"],"mappings":";;;AAUA,MAAMA,SAAAA,GAAY,CAACC,MAAAA,EAAqBC,IAAAA,GAAgB,EAAE,GAAA;AACxD,IAAA,MAAM,EAAEC,MAAM,EAAEC,IAAI,EAAE,GAAGF,IAAAA;IAEzB,MAAMG,GAAAA,GAAM,IAAIC,MAAAA,CAAO;AAAEH,QAAAA;AAAO,KAAA,CAAA;IAEhC,MAAMI,YAAAA,GAAeC,mBAAmBP,MAAAA,EAAQ;AAAEG,QAAAA;AAAK,KAAA,CAAA;IAEvD,OAAO;AACLK,QAAAA,UAAAA,CAAAA,GAAAA;YACE,OAAO;AAAIJ,gBAAAA,GAAAA,GAAAA,CAAIK;AAAM,aAAA;AACvB,QAAA,CAAA;AAEAC,QAAAA,GAAAA,CAAAA,CAAIC,EAAqB,EAAA;AACvBP,YAAAA,GAAAA,CAAIM,GAAG,CAACC,EAAAA,CAAAA;AACR,YAAA,OAAO,IAAI;AACb,QAAA,CAAA;AAEAC,QAAAA,MAAAA,CAAAA,CAAOA,MAAkC,EAAA;YACvCN,YAAAA,CAAaO,SAAS,CAACD,MAAAA,EAAQR,GAAAA,CAAAA;AAC/B,YAAA,OAAO,IAAI;AACb,QAAA,CAAA;AAEAU,QAAAA,KAAAA,CAAAA,CAAMC,MAAc,EAAA;AAClBA,YAAAA,MAAAA,CAAOL,GAAG,CAACN,GAAAA,CAAIQ,MAAM,EAAA,EAAIR,IAAIY,cAAc,EAAA,CAAA;AAC3C,YAAA,OAAO,IAAI;AACb,QAAA;AACF,KAAA;AACF;;;;"}
@@ -108,9 +108,7 @@ const getAction = (route, strapi)=>{
108
108
  const { controllerName, actionName } = extractHandlerParts(fp.trim(handler));
109
109
  const controller = getController(controllerName, {
110
110
  pluginName,
111
- apiName,
112
- type
113
- }, strapi);
111
+ apiName}, strapi);
114
112
  if (typeof controller[actionName] !== 'function') {
115
113
  throw new Error(`Handler not found "${handler}"`);
116
114
  }
@@ -1 +1 @@
1
- {"version":3,"file":"compose-endpoint.js","sources":["../../../src/services/server/compose-endpoint.ts"],"sourcesContent":["import { toLower, castArray, trim, prop, isNil } from 'lodash/fp';\nimport type { Core, UID } from '@strapi/types';\nimport { errors } from '@strapi/utils';\nimport Router from '@koa/router';\n\nimport compose from 'koa-compose';\nimport { resolveRouteMiddlewares } from './middleware';\nimport { createPolicicesMiddleware } from './policy';\n\nconst getMethod = (route: Core.Route) => {\n return trim(toLower(route.method)) as Lowercase<Core.Route['method']>;\n};\n\nconst getPath = (route: Core.Route) => trim(route.path);\n\nconst createRouteInfoMiddleware =\n (routeInfo: Core.Route): Core.MiddlewareHandler =>\n (ctx, next) => {\n const route = {\n ...routeInfo,\n config: routeInfo.config || {},\n };\n\n ctx.state.route = route;\n return next();\n };\n\nconst getAuthConfig = prop('config.auth');\n\nconst createAuthorizeMiddleware =\n (strapi: Core.Strapi): Core.MiddlewareHandler =>\n async (ctx, next) => {\n const { auth, route } = ctx.state;\n\n const authService = strapi.get('auth');\n\n try {\n await authService.verify(auth, getAuthConfig(route));\n\n return await next();\n } catch (error) {\n if (error instanceof errors.UnauthorizedError) {\n return ctx.unauthorized();\n }\n\n if (error instanceof errors.ForbiddenError) {\n // allow PolicyError as an exception to throw a publicly visible message in the API\n if (error instanceof errors.PolicyError) {\n throw error;\n }\n return ctx.forbidden();\n }\n\n throw error;\n }\n };\n\nconst createAuthenticateMiddleware =\n (strapi: Core.Strapi): Core.MiddlewareHandler =>\n async (ctx, next) => {\n return strapi.get('auth').authenticate(ctx, next);\n };\n\nconst returnBodyMiddleware: Core.MiddlewareHandler = async (ctx, next) => {\n const values = await next();\n\n if (isNil(ctx.body) && !isNil(values)) {\n ctx.body = values;\n }\n};\n\nexport default (strapi: Core.Strapi) => {\n const authenticate = createAuthenticateMiddleware(strapi);\n const authorize = createAuthorizeMiddleware(strapi);\n\n return (route: Core.Route, { router }: { router: Router }) => {\n try {\n const method = getMethod(route);\n const path = getPath(route);\n\n const middlewares = resolveRouteMiddlewares(route, strapi);\n\n const action = getAction(route, strapi);\n\n const routeHandler = compose([\n createRouteInfoMiddleware(route),\n authenticate,\n authorize,\n createPolicicesMiddleware(route, strapi),\n ...middlewares,\n returnBodyMiddleware,\n ...castArray(action),\n ]);\n\n router[method](path, routeHandler);\n } catch (error) {\n if (error instanceof Error) {\n error.message = `Error creating endpoint ${route.method} ${route.path}: ${error.message}`;\n }\n\n throw error;\n }\n };\n};\n\nconst getController = (\n name: string,\n { pluginName, apiName }: Core.RouteInfo,\n strapi: Core.Strapi\n) => {\n let ctrl: Core.Controller | undefined;\n\n if (pluginName) {\n if (pluginName === 'admin') {\n ctrl = strapi.controller(`admin::${name}`);\n } else {\n ctrl = strapi.plugin(pluginName).controller(name);\n }\n } else if (apiName) {\n ctrl = strapi.controller(`api::${apiName}.${name}`);\n }\n\n if (!ctrl) {\n return strapi.controller(name as UID.Controller);\n }\n\n return ctrl;\n};\n\nconst extractHandlerParts = (name: string) => {\n const controllerName = name.slice(0, name.lastIndexOf('.'));\n const actionName = name.slice(name.lastIndexOf('.') + 1);\n\n return { controllerName, actionName };\n};\n\nconst getAction = (route: Core.Route, strapi: Core.Strapi) => {\n const { handler, info } = route;\n const { pluginName, apiName, type } = info ?? {};\n\n if (Array.isArray(handler) || typeof handler === 'function') {\n return handler;\n }\n\n const { controllerName, actionName } = extractHandlerParts(trim(handler));\n\n const controller = getController(controllerName, { pluginName, apiName, type }, strapi);\n\n if (typeof controller[actionName] !== 'function') {\n throw new Error(`Handler not found \"${handler}\"`);\n }\n\n if (Symbol.for('__type__') in controller[actionName]) {\n (controller[actionName] as any)[Symbol.for('__type__')].push(type);\n } else {\n (controller[actionName] as any)[Symbol.for('__type__')] = [type];\n }\n\n return controller[actionName].bind(controller);\n};\n"],"names":["getMethod","route","trim","toLower","method","getPath","path","createRouteInfoMiddleware","routeInfo","ctx","next","config","state","getAuthConfig","prop","createAuthorizeMiddleware","strapi","auth","authService","get","verify","error","errors","UnauthorizedError","unauthorized","ForbiddenError","PolicyError","forbidden","createAuthenticateMiddleware","authenticate","returnBodyMiddleware","values","isNil","body","authorize","router","middlewares","resolveRouteMiddlewares","action","getAction","routeHandler","compose","createPolicicesMiddleware","castArray","Error","message","getController","name","pluginName","apiName","ctrl","controller","plugin","extractHandlerParts","controllerName","slice","lastIndexOf","actionName","handler","info","type","Array","isArray","Symbol","for","push","bind"],"mappings":"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"}
1
+ {"version":3,"file":"compose-endpoint.js","sources":["../../../src/services/server/compose-endpoint.ts"],"sourcesContent":["import { toLower, castArray, trim, prop, isNil } from 'lodash/fp';\nimport type { Core, UID } from '@strapi/types';\nimport { errors } from '@strapi/utils';\nimport Router from '@koa/router';\n\nimport compose from 'koa-compose';\nimport { resolveRouteMiddlewares } from './middleware';\nimport { createPolicicesMiddleware } from './policy';\n\nconst getMethod = (route: Core.Route) => {\n return trim(toLower(route.method)) as Lowercase<Core.Route['method']>;\n};\n\nconst getPath = (route: Core.Route) => trim(route.path);\n\nconst createRouteInfoMiddleware =\n (routeInfo: Core.Route): Core.MiddlewareHandler =>\n (ctx, next) => {\n const route = {\n ...routeInfo,\n config: routeInfo.config || {},\n };\n\n ctx.state.route = route;\n return next();\n };\n\nconst getAuthConfig = prop('config.auth');\n\nconst createAuthorizeMiddleware =\n (strapi: Core.Strapi): Core.MiddlewareHandler =>\n async (ctx, next) => {\n const { auth, route } = ctx.state;\n\n const authService = strapi.get('auth');\n\n try {\n await authService.verify(auth, getAuthConfig(route));\n\n return await next();\n } catch (error) {\n if (error instanceof errors.UnauthorizedError) {\n return ctx.unauthorized();\n }\n\n if (error instanceof errors.ForbiddenError) {\n // allow PolicyError as an exception to throw a publicly visible message in the API\n if (error instanceof errors.PolicyError) {\n throw error;\n }\n return ctx.forbidden();\n }\n\n throw error;\n }\n };\n\nconst createAuthenticateMiddleware =\n (strapi: Core.Strapi): Core.MiddlewareHandler =>\n async (ctx, next) => {\n return strapi.get('auth').authenticate(ctx, next);\n };\n\nconst returnBodyMiddleware: Core.MiddlewareHandler = async (ctx, next) => {\n const values = await next();\n\n if (isNil(ctx.body) && !isNil(values)) {\n ctx.body = values;\n }\n};\n\nexport default (strapi: Core.Strapi) => {\n const authenticate = createAuthenticateMiddleware(strapi);\n const authorize = createAuthorizeMiddleware(strapi);\n\n return (route: Core.Route, { router }: { router: Router }) => {\n try {\n const method = getMethod(route);\n const path = getPath(route);\n\n const middlewares = resolveRouteMiddlewares(route, strapi);\n\n const action = getAction(route, strapi);\n\n const routeHandler = compose([\n createRouteInfoMiddleware(route),\n authenticate,\n authorize,\n createPolicicesMiddleware(route, strapi),\n ...middlewares,\n returnBodyMiddleware,\n ...castArray(action),\n ]);\n\n router[method](path, routeHandler);\n } catch (error) {\n if (error instanceof Error) {\n error.message = `Error creating endpoint ${route.method} ${route.path}: ${error.message}`;\n }\n\n throw error;\n }\n };\n};\n\nconst getController = (\n name: string,\n { pluginName, apiName }: Core.RouteInfo,\n strapi: Core.Strapi\n) => {\n let ctrl: Core.Controller | undefined;\n\n if (pluginName) {\n if (pluginName === 'admin') {\n ctrl = strapi.controller(`admin::${name}`);\n } else {\n ctrl = strapi.plugin(pluginName).controller(name);\n }\n } else if (apiName) {\n ctrl = strapi.controller(`api::${apiName}.${name}`);\n }\n\n if (!ctrl) {\n return strapi.controller(name as UID.Controller);\n }\n\n return ctrl;\n};\n\nconst extractHandlerParts = (name: string) => {\n const controllerName = name.slice(0, name.lastIndexOf('.'));\n const actionName = name.slice(name.lastIndexOf('.') + 1);\n\n return { controllerName, actionName };\n};\n\nconst getAction = (route: Core.Route, strapi: Core.Strapi) => {\n const { handler, info } = route;\n const { pluginName, apiName, type } = info ?? {};\n\n if (Array.isArray(handler) || typeof handler === 'function') {\n return handler;\n }\n\n const { controllerName, actionName } = extractHandlerParts(trim(handler));\n\n const controller = getController(controllerName, { pluginName, apiName, type }, strapi);\n\n if (typeof controller[actionName] !== 'function') {\n throw new Error(`Handler not found \"${handler}\"`);\n }\n\n if (Symbol.for('__type__') in controller[actionName]) {\n (controller[actionName] as any)[Symbol.for('__type__')].push(type);\n } else {\n (controller[actionName] as any)[Symbol.for('__type__')] = [type];\n }\n\n return controller[actionName].bind(controller);\n};\n"],"names":["getMethod","route","trim","toLower","method","getPath","path","createRouteInfoMiddleware","routeInfo","ctx","next","config","state","getAuthConfig","prop","createAuthorizeMiddleware","strapi","auth","authService","get","verify","error","errors","UnauthorizedError","unauthorized","ForbiddenError","PolicyError","forbidden","createAuthenticateMiddleware","authenticate","returnBodyMiddleware","values","isNil","body","authorize","router","middlewares","resolveRouteMiddlewares","action","getAction","routeHandler","compose","createPolicicesMiddleware","castArray","Error","message","getController","name","pluginName","apiName","ctrl","controller","plugin","extractHandlerParts","controllerName","slice","lastIndexOf","actionName","handler","info","type","Array","isArray","Symbol","for","push","bind"],"mappings":";;;;;;;;AASA,MAAMA,YAAY,CAACC,KAAAA,GAAAA;IACjB,OAAOC,OAAAA,CAAKC,UAAAA,CAAQF,KAAAA,CAAMG,MAAM,CAAA,CAAA;AAClC,CAAA;AAEA,MAAMC,OAAAA,GAAU,CAACJ,KAAAA,GAAsBC,OAAAA,CAAKD,MAAMK,IAAI,CAAA;AAEtD,MAAMC,yBAAAA,GACJ,CAACC,SAAAA,GACD,CAACC,GAAAA,EAAKC,IAAAA,GAAAA;AACJ,QAAA,MAAMT,KAAAA,GAAQ;AACZ,YAAA,GAAGO,SAAS;YACZG,MAAAA,EAAQH,SAAAA,CAAUG,MAAM,IAAI;AAC9B,SAAA;QAEAF,GAAAA,CAAIG,KAAK,CAACX,KAAK,GAAGA,KAAAA;QAClB,OAAOS,IAAAA,EAAAA;AACT,IAAA,CAAA;AAEF,MAAMG,gBAAgBC,OAAAA,CAAK,aAAA,CAAA;AAE3B,MAAMC,yBAAAA,GACJ,CAACC,MAAAA,GACD,OAAOP,GAAAA,EAAKC,IAAAA,GAAAA;AACV,QAAA,MAAM,EAAEO,IAAI,EAAEhB,KAAK,EAAE,GAAGQ,IAAIG,KAAK;QAEjC,MAAMM,WAAAA,GAAcF,MAAAA,CAAOG,GAAG,CAAC,MAAA,CAAA;QAE/B,IAAI;AACF,YAAA,MAAMD,WAAAA,CAAYE,MAAM,CAACH,IAAAA,EAAMJ,aAAAA,CAAcZ,KAAAA,CAAAA,CAAAA;AAE7C,YAAA,OAAO,MAAMS,IAAAA,EAAAA;AACf,QAAA,CAAA,CAAE,OAAOW,KAAAA,EAAO;YACd,IAAIA,KAAAA,YAAiBC,kBAAAA,CAAOC,iBAAiB,EAAE;AAC7C,gBAAA,OAAOd,IAAIe,YAAY,EAAA;AACzB,YAAA;YAEA,IAAIH,KAAAA,YAAiBC,kBAAAA,CAAOG,cAAc,EAAE;;gBAE1C,IAAIJ,KAAAA,YAAiBC,kBAAAA,CAAOI,WAAW,EAAE;oBACvC,MAAML,KAAAA;AACR,gBAAA;AACA,gBAAA,OAAOZ,IAAIkB,SAAS,EAAA;AACtB,YAAA;YAEA,MAAMN,KAAAA;AACR,QAAA;AACF,IAAA,CAAA;AAEF,MAAMO,4BAAAA,GACJ,CAACZ,MAAAA,GACD,OAAOP,GAAAA,EAAKC,IAAAA,GAAAA;AACV,QAAA,OAAOM,OAAOG,GAAG,CAAC,MAAA,CAAA,CAAQU,YAAY,CAACpB,GAAAA,EAAKC,IAAAA,CAAAA;AAC9C,IAAA,CAAA;AAEF,MAAMoB,oBAAAA,GAA+C,OAAOrB,GAAAA,EAAKC,IAAAA,GAAAA;AAC/D,IAAA,MAAMqB,SAAS,MAAMrB,IAAAA,EAAAA;AAErB,IAAA,IAAIsB,SAAMvB,GAAAA,CAAIwB,IAAI,CAAA,IAAK,CAACD,SAAMD,MAAAA,CAAAA,EAAS;AACrCtB,QAAAA,GAAAA,CAAIwB,IAAI,GAAGF,MAAAA;AACb,IAAA;AACF,CAAA;AAEA,6BAAe,CAAA,CAACf,MAAAA,GAAAA;AACd,IAAA,MAAMa,eAAeD,4BAAAA,CAA6BZ,MAAAA,CAAAA;AAClD,IAAA,MAAMkB,YAAYnB,yBAAAA,CAA0BC,MAAAA,CAAAA;AAE5C,IAAA,OAAO,CAACf,KAAAA,EAAmB,EAAEkC,MAAM,EAAsB,GAAA;QACvD,IAAI;AACF,YAAA,MAAM/B,SAASJ,SAAAA,CAAUC,KAAAA,CAAAA;AACzB,YAAA,MAAMK,OAAOD,OAAAA,CAAQJ,KAAAA,CAAAA;YAErB,MAAMmC,WAAAA,GAAcC,mCAAwBpC,KAAAA,EAAOe,MAAAA,CAAAA;YAEnD,MAAMsB,MAAAA,GAASC,UAAUtC,KAAAA,EAAOe,MAAAA,CAAAA;AAEhC,YAAA,MAAMwB,eAAeC,OAAAA,CAAQ;gBAC3BlC,yBAAAA,CAA0BN,KAAAA,CAAAA;AAC1B4B,gBAAAA,YAAAA;AACAK,gBAAAA,SAAAA;AACAQ,gBAAAA,gCAAAA,CAA0BzC,KAAAA,EAAOe,MAAAA,CAAAA;AAC9BoB,gBAAAA,GAAAA,WAAAA;AACHN,gBAAAA,oBAAAA;mBACGa,YAAAA,CAAUL,MAAAA;AACd,aAAA,CAAA;YAEDH,MAAM,CAAC/B,MAAAA,CAAO,CAACE,IAAAA,EAAMkC,YAAAA,CAAAA;AACvB,QAAA,CAAA,CAAE,OAAOnB,KAAAA,EAAO;AACd,YAAA,IAAIA,iBAAiBuB,KAAAA,EAAO;AAC1BvB,gBAAAA,KAAAA,CAAMwB,OAAO,GAAG,CAAC,wBAAwB,EAAE5C,MAAMG,MAAM,CAAC,CAAC,EAAEH,MAAMK,IAAI,CAAC,EAAE,EAAEe,KAAAA,CAAMwB,OAAO,CAAA,CAAE;AAC3F,YAAA;YAEA,MAAMxB,KAAAA;AACR,QAAA;AACF,IAAA,CAAA;AACF,CAAA;AAEA,MAAMyB,aAAAA,GAAgB,CACpBC,IAAAA,EACA,EAAEC,UAAU,EAAEC,OAAO,EAAkB,EACvCjC,MAAAA,GAAAA;IAEA,IAAIkC,IAAAA;AAEJ,IAAA,IAAIF,UAAAA,EAAY;AACd,QAAA,IAAIA,eAAe,OAAA,EAAS;AAC1BE,YAAAA,IAAAA,GAAOlC,OAAOmC,UAAU,CAAC,CAAC,OAAO,EAAEJ,IAAAA,CAAAA,CAAM,CAAA;QAC3C,CAAA,MAAO;AACLG,YAAAA,IAAAA,GAAOlC,MAAAA,CAAOoC,MAAM,CAACJ,UAAAA,CAAAA,CAAYG,UAAU,CAACJ,IAAAA,CAAAA;AAC9C,QAAA;AACF,IAAA,CAAA,MAAO,IAAIE,OAAAA,EAAS;QAClBC,IAAAA,GAAOlC,MAAAA,CAAOmC,UAAU,CAAC,CAAC,KAAK,EAAEF,OAAAA,CAAQ,CAAC,EAAEF,IAAAA,CAAAA,CAAM,CAAA;AACpD,IAAA;AAEA,IAAA,IAAI,CAACG,IAAAA,EAAM;QACT,OAAOlC,MAAAA,CAAOmC,UAAU,CAACJ,IAAAA,CAAAA;AAC3B,IAAA;IAEA,OAAOG,IAAAA;AACT,CAAA;AAEA,MAAMG,sBAAsB,CAACN,IAAAA,GAAAA;AAC3B,IAAA,MAAMO,iBAAiBP,IAAAA,CAAKQ,KAAK,CAAC,CAAA,EAAGR,IAAAA,CAAKS,WAAW,CAAC,GAAA,CAAA,CAAA;AACtD,IAAA,MAAMC,aAAaV,IAAAA,CAAKQ,KAAK,CAACR,IAAAA,CAAKS,WAAW,CAAC,GAAA,CAAA,GAAO,CAAA,CAAA;IAEtD,OAAO;AAAEF,QAAAA,cAAAA;AAAgBG,QAAAA;AAAW,KAAA;AACtC,CAAA;AAEA,MAAMlB,SAAAA,GAAY,CAACtC,KAAAA,EAAmBe,MAAAA,GAAAA;AACpC,IAAA,MAAM,EAAE0C,OAAO,EAAEC,IAAI,EAAE,GAAG1D,KAAAA;IAC1B,MAAM,EAAE+C,UAAU,EAAEC,OAAO,EAAEW,IAAI,EAAE,GAAGD,IAAAA,IAAQ,EAAC;AAE/C,IAAA,IAAIE,MAAMC,OAAO,CAACJ,OAAAA,CAAAA,IAAY,OAAOA,YAAY,UAAA,EAAY;QAC3D,OAAOA,OAAAA;AACT,IAAA;AAEA,IAAA,MAAM,EAAEJ,cAAc,EAAEG,UAAU,EAAE,GAAGJ,oBAAoBnD,OAAAA,CAAKwD,OAAAA,CAAAA,CAAAA;IAEhE,MAAMP,UAAAA,GAAaL,cAAcQ,cAAAA,EAAgB;AAAEN,QAAAA,UAAAA;AAAYC,QAAAA,OAAc,CAAA,EAAGjC,MAAAA,CAAAA;AAEhF,IAAA,IAAI,OAAOmC,UAAU,CAACM,UAAAA,CAAW,KAAK,UAAA,EAAY;AAChD,QAAA,MAAM,IAAIb,KAAAA,CAAM,CAAC,mBAAmB,EAAEc,OAAAA,CAAQ,CAAC,CAAC,CAAA;AAClD,IAAA;AAEA,IAAA,IAAIK,OAAOC,GAAG,CAAC,eAAeb,UAAU,CAACM,WAAW,EAAE;QACnDN,UAAU,CAACM,UAAAA,CAAmB,CAACM,MAAAA,CAAOC,GAAG,CAAC,UAAA,CAAA,CAAY,CAACC,IAAI,CAACL,IAAAA,CAAAA;IAC/D,CAAA,MAAO;QACJT,UAAU,CAACM,WAAW,CAASM,OAAOC,GAAG,CAAC,YAAY,GAAG;AAACJ,YAAAA;AAAK,SAAA;AAClE,IAAA;AAEA,IAAA,OAAOT,UAAU,CAACM,UAAAA,CAAW,CAACS,IAAI,CAACf,UAAAA,CAAAA;AACrC,CAAA;;;;"}
@@ -106,9 +106,7 @@ const getAction = (route, strapi)=>{
106
106
  const { controllerName, actionName } = extractHandlerParts(trim(handler));
107
107
  const controller = getController(controllerName, {
108
108
  pluginName,
109
- apiName,
110
- type
111
- }, strapi);
109
+ apiName}, strapi);
112
110
  if (typeof controller[actionName] !== 'function') {
113
111
  throw new Error(`Handler not found "${handler}"`);
114
112
  }