@strapi/core 5.0.0-beta.2 → 5.0.0-beta.4

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 (261) hide show
  1. package/dist/Strapi.d.ts +30 -34
  2. package/dist/Strapi.d.ts.map +1 -1
  3. package/dist/Strapi.js +134 -206
  4. package/dist/Strapi.js.map +1 -1
  5. package/dist/Strapi.mjs +124 -196
  6. package/dist/Strapi.mjs.map +1 -1
  7. package/dist/configuration/config-loader.d.ts.map +1 -1
  8. package/dist/configuration/config-loader.js +1 -0
  9. package/dist/configuration/config-loader.js.map +1 -1
  10. package/dist/configuration/config-loader.mjs +1 -0
  11. package/dist/configuration/config-loader.mjs.map +1 -1
  12. package/dist/configuration/get-dirs.d.ts +10 -0
  13. package/dist/configuration/get-dirs.d.ts.map +1 -0
  14. package/dist/{utils → configuration}/get-dirs.js +3 -2
  15. package/dist/configuration/get-dirs.js.map +1 -0
  16. package/dist/{utils → configuration}/get-dirs.mjs +3 -2
  17. package/dist/configuration/get-dirs.mjs.map +1 -0
  18. package/dist/configuration/index.d.ts +4 -7
  19. package/dist/configuration/index.d.ts.map +1 -1
  20. package/dist/configuration/index.js +6 -4
  21. package/dist/configuration/index.js.map +1 -1
  22. package/dist/configuration/index.mjs +5 -4
  23. package/dist/configuration/index.mjs.map +1 -1
  24. package/dist/core-api/controller/collection-type.d.ts.map +1 -1
  25. package/dist/core-api/controller/collection-type.js +1 -0
  26. package/dist/core-api/controller/collection-type.js.map +1 -1
  27. package/dist/core-api/controller/collection-type.mjs +1 -0
  28. package/dist/core-api/controller/collection-type.mjs.map +1 -1
  29. package/dist/core-api/routes/index.d.ts.map +1 -1
  30. package/dist/core-api/service/collection-type.d.ts +4 -4
  31. package/dist/core-api/service/collection-type.d.ts.map +1 -1
  32. package/dist/core-api/service/collection-type.js +14 -5
  33. package/dist/core-api/service/collection-type.js.map +1 -1
  34. package/dist/core-api/service/collection-type.mjs +14 -5
  35. package/dist/core-api/service/collection-type.mjs.map +1 -1
  36. package/dist/core-api/service/single-type.d.ts.map +1 -1
  37. package/dist/core-api/service/single-type.js +8 -2
  38. package/dist/core-api/service/single-type.js.map +1 -1
  39. package/dist/core-api/service/single-type.mjs +8 -2
  40. package/dist/core-api/service/single-type.mjs.map +1 -1
  41. package/dist/ee/index.d.ts +2 -0
  42. package/dist/ee/index.d.ts.map +1 -1
  43. package/dist/ee/index.js.map +1 -1
  44. package/dist/ee/index.mjs.map +1 -1
  45. package/dist/ee/license.d.ts.map +1 -1
  46. package/dist/ee/license.js +2 -1
  47. package/dist/ee/license.js.map +1 -1
  48. package/dist/ee/license.mjs +2 -1
  49. package/dist/ee/license.mjs.map +1 -1
  50. package/dist/factories.d.ts +2 -2
  51. package/dist/factories.d.ts.map +1 -1
  52. package/dist/index.d.ts +1 -1
  53. package/dist/index.d.ts.map +1 -1
  54. package/dist/index.js +18 -1
  55. package/dist/index.js.map +1 -1
  56. package/dist/index.mjs +18 -1
  57. package/dist/index.mjs.map +1 -1
  58. package/dist/loaders/admin.js +0 -1
  59. package/dist/loaders/admin.js.map +1 -1
  60. package/dist/loaders/admin.mjs +0 -1
  61. package/dist/loaders/admin.mjs.map +1 -1
  62. package/dist/loaders/index.d.ts.map +1 -1
  63. package/dist/loaders/index.js +0 -2
  64. package/dist/loaders/index.js.map +1 -1
  65. package/dist/loaders/index.mjs +0 -2
  66. package/dist/loaders/index.mjs.map +1 -1
  67. package/dist/middlewares/body.d.ts +2 -2
  68. package/dist/middlewares/body.d.ts.map +1 -1
  69. package/dist/middlewares/body.js +4 -4
  70. package/dist/middlewares/body.js.map +1 -1
  71. package/dist/middlewares/body.mjs +4 -4
  72. package/dist/middlewares/body.mjs.map +1 -1
  73. package/dist/middlewares/public.js +1 -1
  74. package/dist/middlewares/public.js.map +1 -1
  75. package/dist/middlewares/public.mjs +1 -1
  76. package/dist/middlewares/public.mjs.map +1 -1
  77. package/dist/providers/admin.d.ts +3 -0
  78. package/dist/providers/admin.d.ts.map +1 -0
  79. package/dist/providers/admin.js +20 -0
  80. package/dist/providers/admin.js.map +1 -0
  81. package/dist/providers/admin.mjs +21 -0
  82. package/dist/providers/admin.mjs.map +1 -0
  83. package/dist/providers/coreStore.d.ts +3 -0
  84. package/dist/providers/coreStore.d.ts.map +1 -0
  85. package/dist/providers/coreStore.js +11 -0
  86. package/dist/providers/coreStore.js.map +1 -0
  87. package/dist/providers/coreStore.mjs +12 -0
  88. package/dist/providers/coreStore.mjs.map +1 -0
  89. package/dist/providers/cron.d.ts +3 -0
  90. package/dist/providers/cron.d.ts.map +1 -0
  91. package/dist/providers/cron.js +20 -0
  92. package/dist/providers/cron.js.map +1 -0
  93. package/dist/providers/cron.mjs +21 -0
  94. package/dist/providers/cron.mjs.map +1 -0
  95. package/dist/providers/index.d.ts +3 -0
  96. package/dist/providers/index.d.ts.map +1 -0
  97. package/dist/providers/index.js +11 -0
  98. package/dist/providers/index.js.map +1 -0
  99. package/dist/providers/index.mjs +11 -0
  100. package/dist/providers/index.mjs.map +1 -0
  101. package/dist/providers/provider.d.ts +9 -0
  102. package/dist/providers/provider.d.ts.map +1 -0
  103. package/dist/providers/provider.js +5 -0
  104. package/dist/providers/provider.js.map +1 -0
  105. package/dist/providers/provider.mjs +5 -0
  106. package/dist/providers/provider.mjs.map +1 -0
  107. package/dist/providers/registries.d.ts +3 -0
  108. package/dist/providers/registries.d.ts.map +1 -0
  109. package/dist/providers/registries.js +33 -0
  110. package/dist/providers/registries.js.map +1 -0
  111. package/dist/providers/registries.mjs +34 -0
  112. package/dist/providers/registries.mjs.map +1 -0
  113. package/dist/providers/telemetry.d.ts +3 -0
  114. package/dist/providers/telemetry.d.ts.map +1 -0
  115. package/dist/providers/telemetry.js +19 -0
  116. package/dist/providers/telemetry.js.map +1 -0
  117. package/dist/providers/telemetry.mjs +20 -0
  118. package/dist/providers/telemetry.mjs.map +1 -0
  119. package/dist/providers/webhooks.d.ts +3 -0
  120. package/dist/providers/webhooks.d.ts.map +1 -0
  121. package/dist/providers/webhooks.js +30 -0
  122. package/dist/providers/webhooks.js.map +1 -0
  123. package/dist/providers/webhooks.mjs +31 -0
  124. package/dist/providers/webhooks.mjs.map +1 -0
  125. package/dist/registries/index.d.ts +0 -1
  126. package/dist/registries/index.d.ts.map +1 -1
  127. package/dist/services/config.d.ts +3 -0
  128. package/dist/services/config.d.ts.map +1 -0
  129. package/dist/{registries → services}/config.js +11 -7
  130. package/dist/services/config.js.map +1 -0
  131. package/dist/{registries → services}/config.mjs +10 -7
  132. package/dist/services/config.mjs.map +1 -0
  133. package/dist/services/core-store.d.ts.map +1 -1
  134. package/dist/services/document-service/attributes/index.d.ts +6 -0
  135. package/dist/services/document-service/attributes/index.d.ts.map +1 -0
  136. package/dist/services/{entity-service → document-service}/attributes/index.js +5 -5
  137. package/dist/services/document-service/attributes/index.js.map +1 -0
  138. package/dist/services/{entity-service → document-service}/attributes/index.mjs +5 -5
  139. package/dist/services/document-service/attributes/index.mjs.map +1 -0
  140. package/dist/services/document-service/attributes/transforms.d.ts.map +1 -0
  141. package/dist/services/document-service/attributes/transforms.js.map +1 -0
  142. package/dist/services/document-service/attributes/transforms.mjs.map +1 -0
  143. package/dist/services/document-service/common.d.ts +1 -1
  144. package/dist/services/document-service/common.d.ts.map +1 -1
  145. package/dist/services/document-service/common.js.map +1 -1
  146. package/dist/services/document-service/common.mjs.map +1 -1
  147. package/dist/services/document-service/components.d.ts +25 -1
  148. package/dist/services/document-service/components.d.ts.map +1 -1
  149. package/dist/services/{entity-service → document-service}/components.js +34 -41
  150. package/dist/services/document-service/components.js.map +1 -0
  151. package/dist/services/{entity-service → document-service}/components.mjs +35 -42
  152. package/dist/services/document-service/components.mjs.map +1 -0
  153. package/dist/services/document-service/document-engine.d.ts +0 -1
  154. package/dist/services/document-service/entries.d.ts +10 -0
  155. package/dist/services/document-service/entries.d.ts.map +1 -0
  156. package/dist/services/document-service/entries.js +95 -0
  157. package/dist/services/document-service/entries.js.map +1 -0
  158. package/dist/services/document-service/entries.mjs +95 -0
  159. package/dist/services/document-service/entries.mjs.map +1 -0
  160. package/dist/services/document-service/index.d.ts +0 -2
  161. package/dist/services/document-service/index.d.ts.map +1 -1
  162. package/dist/services/document-service/index.js +9 -2
  163. package/dist/services/document-service/index.js.map +1 -1
  164. package/dist/services/document-service/index.mjs +9 -2
  165. package/dist/services/document-service/index.mjs.map +1 -1
  166. package/dist/services/document-service/internationalization.d.ts.map +1 -1
  167. package/dist/services/document-service/internationalization.js.map +1 -1
  168. package/dist/services/document-service/internationalization.mjs.map +1 -1
  169. package/dist/services/document-service/middlewares/middleware-manager.d.ts +5 -2
  170. package/dist/services/document-service/middlewares/middleware-manager.d.ts.map +1 -1
  171. package/dist/services/document-service/middlewares/middleware-manager.js +8 -5
  172. package/dist/services/document-service/middlewares/middleware-manager.js.map +1 -1
  173. package/dist/services/document-service/middlewares/middleware-manager.mjs +8 -5
  174. package/dist/services/document-service/middlewares/middleware-manager.mjs.map +1 -1
  175. package/dist/services/document-service/params.d.ts +3 -1
  176. package/dist/services/document-service/params.d.ts.map +1 -1
  177. package/dist/services/document-service/params.js.map +1 -0
  178. package/dist/services/document-service/params.mjs.map +1 -0
  179. package/dist/services/document-service/repository.d.ts.map +1 -1
  180. package/dist/services/document-service/repository.js +75 -132
  181. package/dist/services/document-service/repository.js.map +1 -1
  182. package/dist/services/document-service/repository.mjs +57 -114
  183. package/dist/services/document-service/repository.mjs.map +1 -1
  184. package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
  185. package/dist/services/document-service/transform/query.d.ts +5 -0
  186. package/dist/services/document-service/transform/query.d.ts.map +1 -0
  187. package/dist/services/document-service/transform/query.js +9 -0
  188. package/dist/services/document-service/transform/query.js.map +1 -0
  189. package/dist/services/document-service/transform/query.mjs +9 -0
  190. package/dist/services/document-service/transform/query.mjs.map +1 -0
  191. package/dist/services/entity-service/index.d.ts.map +1 -1
  192. package/dist/services/entity-service/index.js +11 -4
  193. package/dist/services/entity-service/index.js.map +1 -1
  194. package/dist/services/entity-service/index.mjs +11 -4
  195. package/dist/services/entity-service/index.mjs.map +1 -1
  196. package/dist/services/entity-validator/index.js.map +1 -1
  197. package/dist/services/entity-validator/index.mjs.map +1 -1
  198. package/dist/services/metrics/middleware.d.ts.map +1 -1
  199. package/dist/services/reloader.d.ts +7 -0
  200. package/dist/services/reloader.d.ts.map +1 -0
  201. package/dist/services/reloader.js +36 -0
  202. package/dist/services/reloader.js.map +1 -0
  203. package/dist/services/reloader.mjs +36 -0
  204. package/dist/services/reloader.mjs.map +1 -0
  205. package/dist/services/server/compose-endpoint.d.ts.map +1 -1
  206. package/dist/services/server/koa.d.ts.map +1 -1
  207. package/dist/services/server/register-routes.js +1 -1
  208. package/dist/services/server/register-routes.js.map +1 -1
  209. package/dist/services/server/register-routes.mjs +1 -1
  210. package/dist/services/server/register-routes.mjs.map +1 -1
  211. package/dist/services/server/routing.d.ts +1 -1
  212. package/dist/services/webhook-store.d.ts.map +1 -1
  213. package/dist/services/webhook-store.js +5 -6
  214. package/dist/services/webhook-store.js.map +1 -1
  215. package/dist/services/webhook-store.mjs +5 -6
  216. package/dist/services/webhook-store.mjs.map +1 -1
  217. package/dist/utils/index.d.ts +2 -1
  218. package/dist/utils/index.d.ts.map +1 -1
  219. package/dist/utils/load-files.d.ts.map +1 -1
  220. package/dist/utils/resolve-working-dirs.d.ts +19 -0
  221. package/dist/utils/resolve-working-dirs.d.ts.map +1 -0
  222. package/dist/utils/resolve-working-dirs.js +13 -0
  223. package/dist/utils/resolve-working-dirs.js.map +1 -0
  224. package/dist/utils/resolve-working-dirs.mjs +11 -0
  225. package/dist/utils/resolve-working-dirs.mjs.map +1 -0
  226. package/dist/utils/startup-logger.d.ts.map +1 -1
  227. package/dist/utils/update-notifier/index.d.ts +1 -6
  228. package/dist/utils/update-notifier/index.d.ts.map +1 -1
  229. package/dist/utils/update-notifier/index.js +11 -14
  230. package/dist/utils/update-notifier/index.js.map +1 -1
  231. package/dist/utils/update-notifier/index.mjs +11 -14
  232. package/dist/utils/update-notifier/index.mjs.map +1 -1
  233. package/package.json +21 -21
  234. package/dist/registries/config.d.ts +0 -4
  235. package/dist/registries/config.d.ts.map +0 -1
  236. package/dist/registries/config.js.map +0 -1
  237. package/dist/registries/config.mjs.map +0 -1
  238. package/dist/services/entity-service/attributes/index.d.ts +0 -6
  239. package/dist/services/entity-service/attributes/index.d.ts.map +0 -1
  240. package/dist/services/entity-service/attributes/index.js.map +0 -1
  241. package/dist/services/entity-service/attributes/index.mjs.map +0 -1
  242. package/dist/services/entity-service/attributes/transforms.d.ts.map +0 -1
  243. package/dist/services/entity-service/attributes/transforms.js.map +0 -1
  244. package/dist/services/entity-service/attributes/transforms.mjs.map +0 -1
  245. package/dist/services/entity-service/components.d.ts +0 -95
  246. package/dist/services/entity-service/components.d.ts.map +0 -1
  247. package/dist/services/entity-service/components.js.map +0 -1
  248. package/dist/services/entity-service/components.mjs.map +0 -1
  249. package/dist/services/entity-service/params.d.ts +0 -8
  250. package/dist/services/entity-service/params.d.ts.map +0 -1
  251. package/dist/services/entity-service/params.js.map +0 -1
  252. package/dist/services/entity-service/params.mjs.map +0 -1
  253. package/dist/utils/get-dirs.d.ts +0 -9
  254. package/dist/utils/get-dirs.d.ts.map +0 -1
  255. package/dist/utils/get-dirs.js.map +0 -1
  256. package/dist/utils/get-dirs.mjs.map +0 -1
  257. /package/dist/services/{entity-service → document-service}/attributes/transforms.d.ts +0 -0
  258. /package/dist/services/{entity-service → document-service}/attributes/transforms.js +0 -0
  259. /package/dist/services/{entity-service → document-service}/attributes/transforms.mjs +0 -0
  260. /package/dist/services/{entity-service → document-service}/params.js +0 -0
  261. /package/dist/services/{entity-service → document-service}/params.mjs +0 -0
@@ -54,7 +54,6 @@ const webhookEventValidator = async (allowedEvents, events) => {
54
54
  });
55
55
  };
56
56
  const createWebhookStore = ({ db }) => {
57
- const webhookQueries = db.query("strapi::webhook");
58
57
  return {
59
58
  allowedEvents: /* @__PURE__ */ new Map([]),
60
59
  addAllowedEvent(key, value) {
@@ -70,29 +69,29 @@ const createWebhookStore = ({ db }) => {
70
69
  return this.allowedEvents.get(key);
71
70
  },
72
71
  async findWebhooks() {
73
- const results = await webhookQueries.findMany();
72
+ const results = await db.query("strapi::webhook").findMany();
74
73
  return results.map(fromDBObject);
75
74
  },
76
75
  async findWebhook(id) {
77
- const result = await webhookQueries.findOne({ where: { id } });
76
+ const result = await db.query("strapi::webhook").findOne({ where: { id } });
78
77
  return result ? fromDBObject(result) : null;
79
78
  },
80
79
  async createWebhook(data) {
81
80
  await webhookEventValidator(this.allowedEvents, data.events);
82
- return webhookQueries.create({
81
+ return db.query("strapi::webhook").create({
83
82
  data: toDBObject({ ...data, isEnabled: true })
84
83
  }).then(fromDBObject);
85
84
  },
86
85
  async updateWebhook(id, data) {
87
86
  await webhookEventValidator(this.allowedEvents, data.events);
88
- const webhook = await webhookQueries.update({
87
+ const webhook = await db.query("strapi::webhook").update({
89
88
  where: { id },
90
89
  data: toDBObject(data)
91
90
  });
92
91
  return webhook ? fromDBObject(webhook) : null;
93
92
  },
94
93
  async deleteWebhook(id) {
95
- const webhook = await webhookQueries.delete({ where: { id } });
94
+ const webhook = await db.query("strapi::webhook").delete({ where: { id } });
96
95
  return webhook ? fromDBObject(webhook) : null;
97
96
  }
98
97
  };
@@ -1 +1 @@
1
- {"version":3,"file":"webhook-store.mjs","sources":["../../src/services/webhook-store.ts"],"sourcesContent":["/**\n * Webhook store is the implementation of webhook storage over the core_store\n */\n\nimport { errors } from '@strapi/utils';\nimport type { Model, Database } from '@strapi/database';\n\nconst { ValidationError } = errors;\n\nconst webhookModel: Model = {\n uid: 'strapi::webhook',\n singularName: 'strapi_webhooks',\n tableName: 'strapi_webhooks',\n attributes: {\n id: {\n type: 'increments',\n },\n name: {\n type: 'string',\n },\n url: {\n type: 'text',\n },\n headers: {\n type: 'json',\n },\n events: {\n type: 'json',\n },\n enabled: {\n type: 'boolean',\n },\n },\n};\n\ninterface DBInput {\n name: string;\n url: string;\n headers: Record<string, string>;\n events: string[];\n enabled: boolean;\n}\n\ninterface DBOutput {\n id: string;\n name: string;\n url: string;\n headers: Record<string, string>;\n events: string[];\n enabled: boolean;\n}\n\nexport interface Webhook {\n id: string;\n name: string;\n url: string;\n headers: Record<string, string>;\n events: string[];\n isEnabled: boolean;\n}\n\nconst toDBObject = (data: Webhook): DBInput => {\n return {\n name: data.name,\n url: data.url,\n headers: data.headers,\n events: data.events,\n enabled: data.isEnabled,\n };\n};\n\nconst fromDBObject = (row: DBOutput): Webhook => {\n return {\n id: row.id,\n name: row.name,\n url: row.url,\n headers: row.headers,\n events: row.events,\n isEnabled: row.enabled,\n };\n};\n\nconst webhookEventValidator = async (allowedEvents: Map<string, string>, events: string[]) => {\n const allowedValues = Array.from(allowedEvents.values());\n\n events.forEach((event) => {\n if (allowedValues.includes(event)) {\n return;\n }\n\n throw new ValidationError(`Webhook event ${event} is not supported`);\n });\n};\n\nexport interface WebhookStore {\n allowedEvents: Map<string, string>;\n addAllowedEvent(key: string, value: string): void;\n removeAllowedEvent(key: string): void;\n listAllowedEvents(): string[];\n getAllowedEvent(key: string): string | undefined;\n findWebhooks(): Promise<Webhook[]>;\n findWebhook(id: string): Promise<Webhook | null>;\n createWebhook(data: Webhook): Promise<Webhook>;\n updateWebhook(id: string, data: Webhook): Promise<Webhook | null>;\n deleteWebhook(id: string): Promise<Webhook | null>;\n}\n\nconst createWebhookStore = ({ db }: { db: Database }): WebhookStore => {\n const webhookQueries = db.query('strapi::webhook');\n\n return {\n allowedEvents: new Map([]),\n addAllowedEvent(key, value) {\n this.allowedEvents.set(key, value);\n },\n removeAllowedEvent(key) {\n this.allowedEvents.delete(key);\n },\n listAllowedEvents() {\n return Array.from(this.allowedEvents.keys());\n },\n getAllowedEvent(key) {\n return this.allowedEvents.get(key);\n },\n async findWebhooks() {\n const results = await webhookQueries.findMany();\n\n return results.map(fromDBObject);\n },\n async findWebhook(id) {\n const result = await webhookQueries.findOne({ where: { id } });\n return result ? fromDBObject(result) : null;\n },\n async createWebhook(data) {\n await webhookEventValidator(this.allowedEvents, data.events);\n\n return webhookQueries\n .create({\n data: toDBObject({ ...data, isEnabled: true }),\n })\n .then(fromDBObject);\n },\n async updateWebhook(id, data) {\n await webhookEventValidator(this.allowedEvents, data.events);\n\n const webhook = await webhookQueries.update({\n where: { id },\n data: toDBObject(data),\n });\n\n return webhook ? fromDBObject(webhook) : null;\n },\n async deleteWebhook(id) {\n const webhook = await webhookQueries.delete({ where: { id } });\n return webhook ? fromDBObject(webhook) : null;\n },\n };\n};\n\nexport { webhookModel, createWebhookStore };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webhook-store.mjs","sources":["../../src/services/webhook-store.ts"],"sourcesContent":["/**\n * Webhook store is the implementation of webhook storage over the core_store\n */\n\nimport { errors } from '@strapi/utils';\nimport type { Model, Database } from '@strapi/database';\n\nconst { ValidationError } = errors;\n\nconst webhookModel: Model = {\n uid: 'strapi::webhook',\n singularName: 'strapi_webhooks',\n tableName: 'strapi_webhooks',\n attributes: {\n id: {\n type: 'increments',\n },\n name: {\n type: 'string',\n },\n url: {\n type: 'text',\n },\n headers: {\n type: 'json',\n },\n events: {\n type: 'json',\n },\n enabled: {\n type: 'boolean',\n },\n },\n};\n\ninterface DBInput {\n name: string;\n url: string;\n headers: Record<string, string>;\n events: string[];\n enabled: boolean;\n}\n\ninterface DBOutput {\n id: string;\n name: string;\n url: string;\n headers: Record<string, string>;\n events: string[];\n enabled: boolean;\n}\n\nexport interface Webhook {\n id: string;\n name: string;\n url: string;\n headers: Record<string, string>;\n events: string[];\n isEnabled: boolean;\n}\n\nconst toDBObject = (data: Webhook): DBInput => {\n return {\n name: data.name,\n url: data.url,\n headers: data.headers,\n events: data.events,\n enabled: data.isEnabled,\n };\n};\n\nconst fromDBObject = (row: DBOutput): Webhook => {\n return {\n id: row.id,\n name: row.name,\n url: row.url,\n headers: row.headers,\n events: row.events,\n isEnabled: row.enabled,\n };\n};\n\nconst webhookEventValidator = async (allowedEvents: Map<string, string>, events: string[]) => {\n const allowedValues = Array.from(allowedEvents.values());\n\n events.forEach((event) => {\n if (allowedValues.includes(event)) {\n return;\n }\n\n throw new ValidationError(`Webhook event ${event} is not supported`);\n });\n};\n\nexport interface WebhookStore {\n allowedEvents: Map<string, string>;\n addAllowedEvent(key: string, value: string): void;\n removeAllowedEvent(key: string): void;\n listAllowedEvents(): string[];\n getAllowedEvent(key: string): string | undefined;\n findWebhooks(): Promise<Webhook[]>;\n findWebhook(id: string): Promise<Webhook | null>;\n createWebhook(data: Webhook): Promise<Webhook>;\n updateWebhook(id: string, data: Webhook): Promise<Webhook | null>;\n deleteWebhook(id: string): Promise<Webhook | null>;\n}\n\nconst createWebhookStore = ({ db }: { db: Database }): WebhookStore => {\n return {\n allowedEvents: new Map([]),\n addAllowedEvent(key, value) {\n this.allowedEvents.set(key, value);\n },\n removeAllowedEvent(key) {\n this.allowedEvents.delete(key);\n },\n listAllowedEvents() {\n return Array.from(this.allowedEvents.keys());\n },\n getAllowedEvent(key) {\n return this.allowedEvents.get(key);\n },\n async findWebhooks() {\n const results = await db.query('strapi::webhook').findMany();\n\n return results.map(fromDBObject);\n },\n async findWebhook(id) {\n const result = await db.query('strapi::webhook').findOne({ where: { id } });\n return result ? fromDBObject(result) : null;\n },\n async createWebhook(data) {\n await webhookEventValidator(this.allowedEvents, data.events);\n\n return db\n .query('strapi::webhook')\n .create({\n data: toDBObject({ ...data, isEnabled: true }),\n })\n .then(fromDBObject);\n },\n async updateWebhook(id, data) {\n await webhookEventValidator(this.allowedEvents, data.events);\n\n const webhook = await db.query('strapi::webhook').update({\n where: { id },\n data: toDBObject(data),\n });\n\n return webhook ? fromDBObject(webhook) : null;\n },\n async deleteWebhook(id) {\n const webhook = await db.query('strapi::webhook').delete({ where: { id } });\n return webhook ? fromDBObject(webhook) : null;\n },\n };\n};\n\nexport { webhookModel, createWebhookStore };\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  export { openBrowser } from './open-browser';
2
2
  export { isInitialized } from './is-initialized';
3
- export { getDirs } from './get-dirs';
3
+ export { getDirs } from '../configuration/get-dirs';
4
4
  export { ee } from './ee';
5
5
  export { createUpdateNotifier } from './update-notifier';
6
6
  export { createStrapiFetch, Fetch } from './fetch';
@@ -9,4 +9,5 @@ export { createStartupLogger } from './startup-logger';
9
9
  export { transformContentTypesToModels } from './transform-content-types-to-models';
10
10
  export { destroyOnSignal } from './signals';
11
11
  export { LIFECYCLES } from './lifecycles';
12
+ export { resolveWorkingDirectories } from './resolve-working-dirs';
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"load-files.d.ts","sourceRoot":"","sources":["../../src/utils/load-files.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAI9C;;;GAGG;AACH,eAAO,MAAM,SAAS,0BACf,MAAM,WACF,MAAM;;kCAE2C,GAAG;;gBAgC9D,CAAC"}
1
+ {"version":3,"file":"load-files.d.ts","sourceRoot":"","sources":["../../src/utils/load-files.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAI9C;;;GAGG;AACH,eAAO,MAAM,SAAS,0BACf,MAAM,WACF,MAAM;;kCAE2C,GAAG;;MAC5D,QAAQ,CAAC,CA+BX,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Resolve the working directories based on the instance options.
3
+ *
4
+ * Behavior:
5
+ * - `appDir` is the directory where Strapi will write every file (schemas, generated APIs, controllers or services)
6
+ * - `distDir` is the directory where Strapi will read configurations, schemas and any compiled code
7
+ *
8
+ * Default values:
9
+ * - If `appDir` is `undefined`, it'll be set to `process.cwd()`
10
+ * - If `distDir` is `undefined`, it'll be set to `appDir`
11
+ */
12
+ export declare const resolveWorkingDirectories: (opts: {
13
+ appDir?: string;
14
+ distDir?: string;
15
+ }) => {
16
+ appDir: string;
17
+ distDir: string;
18
+ };
19
+ //# sourceMappingURL=resolve-working-dirs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-working-dirs.d.ts","sourceRoot":"","sources":["../../src/utils/resolve-working-dirs.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,yBAAyB,SAAU;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE;;;CAOpF,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const path = require("node:path");
4
+ const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
5
+ const path__default = /* @__PURE__ */ _interopDefault(path);
6
+ const resolveWorkingDirectories = (opts) => {
7
+ const cwd = process.cwd();
8
+ const appDir = opts.appDir ? path__default.default.resolve(cwd, opts.appDir) : cwd;
9
+ const distDir = opts.distDir ? path__default.default.resolve(cwd, opts.distDir) : appDir;
10
+ return { appDir, distDir };
11
+ };
12
+ exports.resolveWorkingDirectories = resolveWorkingDirectories;
13
+ //# sourceMappingURL=resolve-working-dirs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-working-dirs.js","sources":["../../src/utils/resolve-working-dirs.ts"],"sourcesContent":["import path from 'node:path';\n\n/**\n * Resolve the working directories based on the instance options.\n *\n * Behavior:\n * - `appDir` is the directory where Strapi will write every file (schemas, generated APIs, controllers or services)\n * - `distDir` is the directory where Strapi will read configurations, schemas and any compiled code\n *\n * Default values:\n * - If `appDir` is `undefined`, it'll be set to `process.cwd()`\n * - If `distDir` is `undefined`, it'll be set to `appDir`\n */\nexport const resolveWorkingDirectories = (opts: { appDir?: string; distDir?: string }) => {\n const cwd = process.cwd();\n\n const appDir = opts.appDir ? path.resolve(cwd, opts.appDir) : cwd;\n const distDir = opts.distDir ? path.resolve(cwd, opts.distDir) : appDir;\n\n return { appDir, distDir };\n};\n"],"names":["path"],"mappings":";;;;;AAaa,MAAA,4BAA4B,CAAC,SAAgD;AAClF,QAAA,MAAM,QAAQ;AAEd,QAAA,SAAS,KAAK,SAASA,cAAA,QAAK,QAAQ,KAAK,KAAK,MAAM,IAAI;AACxD,QAAA,UAAU,KAAK,UAAUA,cAAA,QAAK,QAAQ,KAAK,KAAK,OAAO,IAAI;AAE1D,SAAA,EAAE,QAAQ;AACnB;;"}
@@ -0,0 +1,11 @@
1
+ import path from "node:path";
2
+ const resolveWorkingDirectories = (opts) => {
3
+ const cwd = process.cwd();
4
+ const appDir = opts.appDir ? path.resolve(cwd, opts.appDir) : cwd;
5
+ const distDir = opts.distDir ? path.resolve(cwd, opts.distDir) : appDir;
6
+ return { appDir, distDir };
7
+ };
8
+ export {
9
+ resolveWorkingDirectories
10
+ };
11
+ //# sourceMappingURL=resolve-working-dirs.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolve-working-dirs.mjs","sources":["../../src/utils/resolve-working-dirs.ts"],"sourcesContent":["import path from 'node:path';\n\n/**\n * Resolve the working directories based on the instance options.\n *\n * Behavior:\n * - `appDir` is the directory where Strapi will write every file (schemas, generated APIs, controllers or services)\n * - `distDir` is the directory where Strapi will read configurations, schemas and any compiled code\n *\n * Default values:\n * - If `appDir` is `undefined`, it'll be set to `process.cwd()`\n * - If `distDir` is `undefined`, it'll be set to `appDir`\n */\nexport const resolveWorkingDirectories = (opts: { appDir?: string; distDir?: string }) => {\n const cwd = process.cwd();\n\n const appDir = opts.appDir ? path.resolve(cwd, opts.appDir) : cwd;\n const distDir = opts.distDir ? path.resolve(cwd, opts.distDir) : appDir;\n\n return { appDir, distDir };\n};\n"],"names":[],"mappings":";AAaa,MAAA,4BAA4B,CAAC,SAAgD;AAClF,QAAA,MAAM,QAAQ;AAEd,QAAA,SAAS,KAAK,SAAS,KAAK,QAAQ,KAAK,KAAK,MAAM,IAAI;AACxD,QAAA,UAAU,KAAK,UAAU,KAAK,QAAQ,KAAK,KAAK,OAAO,IAAI;AAE1D,SAAA,EAAE,QAAQ;AACnB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"startup-logger.d.ts","sourceRoot":"","sources":["../../src/utils/startup-logger.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,eAAO,MAAM,mBAAmB,QAAS,KAAK,MAAM;;;;;uBAwEM,OAAO;;CAWhE,CAAC"}
1
+ {"version":3,"file":"startup-logger.d.ts","sourceRoot":"","sources":["../../src/utils/startup-logger.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,eAAO,MAAM,mBAAmB,QAAS,KAAK,MAAM;;;;yCAwEX;QAAE,aAAa,EAAE,OAAO,CAAA;KAAE;CAWlE,CAAC"}
@@ -1,8 +1,3 @@
1
1
  import type { Core } from '@strapi/types';
2
- export declare const createUpdateNotifier: (strapi: Core.Strapi) => {
3
- notify({ checkInterval, notifInterval }?: {
4
- checkInterval?: number | undefined;
5
- notifInterval?: number | undefined;
6
- }): void;
7
- };
2
+ export declare const createUpdateNotifier: (strapi: Core.Strapi) => void;
8
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/update-notifier/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AA0B1C,eAAO,MAAM,oBAAoB,WAAY,KAAK,MAAM;;;;;CAqEvD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/update-notifier/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AA0B1C,eAAO,MAAM,oBAAoB,WAAY,KAAK,MAAM,SAkEvD,CAAC"}
@@ -42,6 +42,7 @@ const createUpdateNotifier = (strapi) => {
42
42
  { configPath: path__default.default.join(strapi.dirs.app.root, ".strapi-updater.json") }
43
43
  );
44
44
  } catch {
45
+ return;
45
46
  }
46
47
  const checkUpdate = async (checkInterval) => {
47
48
  const now = Date.now();
@@ -69,20 +70,16 @@ const createUpdateNotifier = (strapi) => {
69
70
  config.set("lastNotification", now);
70
71
  console.log(message);
71
72
  };
72
- return {
73
- notify({ checkInterval = CHECK_INTERVAL, notifInterval = NOTIF_INTERVAL } = {}) {
74
- if (strapiUtils.env.bool("STRAPI_DISABLE_UPDATE_NOTIFICATION", false)) {
75
- strapi.log.warn(
76
- "STRAPI_DISABLE_UPDATE_NOTIFICATION is no longer supported. Instead, set logger.updates.enabled to false in your server configuration."
77
- );
78
- }
79
- if (!strapi.config.get("server.logger.updates.enabled") || !config) {
80
- return;
81
- }
82
- display(notifInterval);
83
- checkUpdate(checkInterval);
84
- }
85
- };
73
+ if (strapiUtils.env.bool("STRAPI_DISABLE_UPDATE_NOTIFICATION", false)) {
74
+ strapi.log.warn(
75
+ "STRAPI_DISABLE_UPDATE_NOTIFICATION is no longer supported. Instead, set logger.updates.enabled to false in your server configuration."
76
+ );
77
+ }
78
+ if (!strapi.config.get("server.logger.updates.enabled") || !config) {
79
+ return;
80
+ }
81
+ display(NOTIF_INTERVAL);
82
+ checkUpdate(CHECK_INTERVAL);
86
83
  };
87
84
  exports.createUpdateNotifier = createUpdateNotifier;
88
85
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../src/utils/update-notifier/index.ts"],"sourcesContent":["import path from 'path';\nimport packageJson from 'package-json';\nimport Configstore from 'configstore';\nimport semver from 'semver';\nimport boxen from 'boxen';\nimport chalk from 'chalk';\nimport { env } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst pkg = require('../../../package.json');\n\nconst CHECK_INTERVAL = 1000 * 60 * 60 * 24 * 1; // 1 day\nconst NOTIF_INTERVAL = 1000 * 60 * 60 * 24 * 7; // 1 week\nconst boxenOptions: boxen.Options = {\n padding: 1,\n margin: 1,\n align: 'center',\n borderColor: 'yellow',\n borderStyle: 'round',\n};\n\nconst getUpdateMessage = (newVersion: string, currentVersion: string) => {\n const currentVersionLog = chalk.dim(currentVersion);\n const newVersionLog = chalk.green(newVersion);\n const releaseLink = chalk.bold('https://github.com/strapi/strapi/releases');\n\n return `\nA new version of Strapi is available ${currentVersionLog} → ${newVersionLog}\nCheck out the new releases at: ${releaseLink}\n`.trim();\n};\n\nexport const createUpdateNotifier = (strapi: Core.Strapi) => {\n let config: InstanceType<typeof Configstore>;\n\n try {\n config = new Configstore(\n pkg.name,\n {},\n { configPath: path.join(strapi.dirs.app.root, '.strapi-updater.json') }\n );\n } catch {\n // we don't have write access to the file system\n // we silence the error\n }\n\n const checkUpdate = async (checkInterval: number) => {\n const now = Date.now();\n const lastUpdateCheck = config.get('lastUpdateCheck') || 0;\n if (lastUpdateCheck + checkInterval > now) {\n return;\n }\n\n try {\n const res = await packageJson(pkg.name);\n if (res.version) {\n config.set('latest', res.version);\n config.set('lastUpdateCheck', now);\n }\n } catch {\n // silence error if offline\n }\n };\n\n const display = (notifInterval: number) => {\n const now = Date.now();\n const latestVersion = config.get('latest');\n const lastNotification = config.get('lastNotification') || 0;\n\n if (\n !process.stdout.isTTY ||\n lastNotification + notifInterval > now ||\n !semver.valid(latestVersion) ||\n !semver.valid(pkg.version) ||\n semver.lte(latestVersion, pkg.version)\n ) {\n return;\n }\n\n const message = boxen(getUpdateMessage(latestVersion, pkg.version), boxenOptions);\n config.set('lastNotification', now);\n console.log(message);\n };\n\n return {\n notify({ checkInterval = CHECK_INTERVAL, notifInterval = NOTIF_INTERVAL } = {}) {\n // TODO v6: Remove this warning\n if (env.bool('STRAPI_DISABLE_UPDATE_NOTIFICATION', false)) {\n strapi.log.warn(\n 'STRAPI_DISABLE_UPDATE_NOTIFICATION is no longer supported. Instead, set logger.updates.enabled to false in your server configuration.'\n );\n }\n\n if (!strapi.config.get('server.logger.updates.enabled') || !config) {\n return;\n }\n\n display(notifInterval);\n checkUpdate(checkInterval); // doesn't need to await\n },\n };\n};\n"],"names":["chalk","Configstore","path","packageJson","semver","boxen","env"],"mappings":";;;;;;;;;;;;;;;;AAUA,MAAM,MAAM,QAAQ,uBAAuB;AAE3C,MAAM,iBAAiB,MAAO,KAAK,KAAK,KAAK;AAC7C,MAAM,iBAAiB,MAAO,KAAK,KAAK,KAAK;AAC7C,MAAM,eAA8B;AAAA,EAClC,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,aAAa;AAAA,EACb,aAAa;AACf;AAEA,MAAM,mBAAmB,CAAC,YAAoB,mBAA2B;AACjE,QAAA,oBAAoBA,eAAAA,QAAM,IAAI,cAAc;AAC5C,QAAA,gBAAgBA,eAAAA,QAAM,MAAM,UAAU;AACtC,QAAA,cAAcA,eAAAA,QAAM,KAAK,2CAA2C;AAEnE,SAAA;AAAA,uCAC8B,iBAAiB,MAAM,aAAa;AAAA,iCAC1C,WAAW;AAAA,EAC1C,KAAK;AACP;AAEa,MAAA,uBAAuB,CAAC,WAAwB;AACvD,MAAA;AAEA,MAAA;AACF,aAAS,IAAIC,qBAAA;AAAA,MACX,IAAI;AAAA,MACJ,CAAC;AAAA,MACD,EAAE,YAAYC,cAAK,QAAA,KAAK,OAAO,KAAK,IAAI,MAAM,sBAAsB,EAAE;AAAA,IAAA;AAAA,EACxE,QACM;AAAA,EAGR;AAEM,QAAA,cAAc,OAAO,kBAA0B;AAC7C,UAAA,MAAM,KAAK;AACjB,UAAM,kBAAkB,OAAO,IAAI,iBAAiB,KAAK;AACrD,QAAA,kBAAkB,gBAAgB,KAAK;AACzC;AAAA,IACF;AAEI,QAAA;AACF,YAAM,MAAM,MAAMC,qBAAAA,QAAY,IAAI,IAAI;AACtC,UAAI,IAAI,SAAS;AACR,eAAA,IAAI,UAAU,IAAI,OAAO;AACzB,eAAA,IAAI,mBAAmB,GAAG;AAAA,MACnC;AAAA,IAAA,QACM;AAAA,IAER;AAAA,EAAA;AAGI,QAAA,UAAU,CAAC,kBAA0B;AACnC,UAAA,MAAM,KAAK;AACX,UAAA,gBAAgB,OAAO,IAAI,QAAQ;AACzC,UAAM,mBAAmB,OAAO,IAAI,kBAAkB,KAAK;AAGzD,QAAA,CAAC,QAAQ,OAAO,SAChB,mBAAmB,gBAAgB,OACnC,CAACC,wBAAO,MAAM,aAAa,KAC3B,CAACA,wBAAO,MAAM,IAAI,OAAO,KACzBA,wBAAO,IAAI,eAAe,IAAI,OAAO,GACrC;AACA;AAAA,IACF;AAEA,UAAM,UAAUC,eAAM,QAAA,iBAAiB,eAAe,IAAI,OAAO,GAAG,YAAY;AACzE,WAAA,IAAI,oBAAoB,GAAG;AAClC,YAAQ,IAAI,OAAO;AAAA,EAAA;AAGd,SAAA;AAAA,IACL,OAAO,EAAE,gBAAgB,gBAAgB,gBAAgB,eAAe,IAAI,IAAI;AAE9E,UAAIC,gBAAI,KAAK,sCAAsC,KAAK,GAAG;AACzD,eAAO,IAAI;AAAA,UACT;AAAA,QAAA;AAAA,MAEJ;AAEA,UAAI,CAAC,OAAO,OAAO,IAAI,+BAA+B,KAAK,CAAC,QAAQ;AAClE;AAAA,MACF;AAEA,cAAQ,aAAa;AACrB,kBAAY,aAAa;AAAA,IAC3B;AAAA,EAAA;AAEJ;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/utils/update-notifier/index.ts"],"sourcesContent":["import path from 'path';\nimport packageJson from 'package-json';\nimport Configstore from 'configstore';\nimport semver from 'semver';\nimport boxen from 'boxen';\nimport chalk from 'chalk';\nimport { env } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst pkg = require('../../../package.json');\n\nconst CHECK_INTERVAL = 1000 * 60 * 60 * 24 * 1; // 1 day\nconst NOTIF_INTERVAL = 1000 * 60 * 60 * 24 * 7; // 1 week\nconst boxenOptions: boxen.Options = {\n padding: 1,\n margin: 1,\n align: 'center',\n borderColor: 'yellow',\n borderStyle: 'round',\n};\n\nconst getUpdateMessage = (newVersion: string, currentVersion: string) => {\n const currentVersionLog = chalk.dim(currentVersion);\n const newVersionLog = chalk.green(newVersion);\n const releaseLink = chalk.bold('https://github.com/strapi/strapi/releases');\n\n return `\nA new version of Strapi is available ${currentVersionLog} → ${newVersionLog}\nCheck out the new releases at: ${releaseLink}\n`.trim();\n};\n\nexport const createUpdateNotifier = (strapi: Core.Strapi) => {\n let config: InstanceType<typeof Configstore>;\n\n try {\n config = new Configstore(\n pkg.name,\n {},\n { configPath: path.join(strapi.dirs.app.root, '.strapi-updater.json') }\n );\n } catch {\n // we don't have write access to the file system\n // we silence the error\n return;\n }\n\n const checkUpdate = async (checkInterval: number) => {\n const now = Date.now();\n const lastUpdateCheck = config.get('lastUpdateCheck') || 0;\n if (lastUpdateCheck + checkInterval > now) {\n return;\n }\n\n try {\n const res = await packageJson(pkg.name);\n if (res.version) {\n config.set('latest', res.version);\n config.set('lastUpdateCheck', now);\n }\n } catch {\n // silence error if offline\n }\n };\n\n const display = (notifInterval: number) => {\n const now = Date.now();\n const latestVersion = config.get('latest');\n const lastNotification = config.get('lastNotification') || 0;\n\n if (\n !process.stdout.isTTY ||\n lastNotification + notifInterval > now ||\n !semver.valid(latestVersion) ||\n !semver.valid(pkg.version) ||\n semver.lte(latestVersion, pkg.version)\n ) {\n return;\n }\n\n const message = boxen(getUpdateMessage(latestVersion, pkg.version), boxenOptions);\n config.set('lastNotification', now);\n console.log(message);\n };\n\n // TODO v6: Remove this warning\n if (env.bool('STRAPI_DISABLE_UPDATE_NOTIFICATION', false)) {\n strapi.log.warn(\n 'STRAPI_DISABLE_UPDATE_NOTIFICATION is no longer supported. Instead, set logger.updates.enabled to false in your server configuration.'\n );\n }\n\n if (!strapi.config.get('server.logger.updates.enabled') || !config) {\n return;\n }\n\n display(NOTIF_INTERVAL);\n checkUpdate(CHECK_INTERVAL); // doesn't need to await\n};\n"],"names":["chalk","Configstore","path","packageJson","semver","boxen","env"],"mappings":";;;;;;;;;;;;;;;;AAUA,MAAM,MAAM,QAAQ,uBAAuB;AAE3C,MAAM,iBAAiB,MAAO,KAAK,KAAK,KAAK;AAC7C,MAAM,iBAAiB,MAAO,KAAK,KAAK,KAAK;AAC7C,MAAM,eAA8B;AAAA,EAClC,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,aAAa;AAAA,EACb,aAAa;AACf;AAEA,MAAM,mBAAmB,CAAC,YAAoB,mBAA2B;AACjE,QAAA,oBAAoBA,eAAAA,QAAM,IAAI,cAAc;AAC5C,QAAA,gBAAgBA,eAAAA,QAAM,MAAM,UAAU;AACtC,QAAA,cAAcA,eAAAA,QAAM,KAAK,2CAA2C;AAEnE,SAAA;AAAA,uCAC8B,iBAAiB,MAAM,aAAa;AAAA,iCAC1C,WAAW;AAAA,EAC1C,KAAK;AACP;AAEa,MAAA,uBAAuB,CAAC,WAAwB;AACvD,MAAA;AAEA,MAAA;AACF,aAAS,IAAIC,qBAAA;AAAA,MACX,IAAI;AAAA,MACJ,CAAC;AAAA,MACD,EAAE,YAAYC,cAAK,QAAA,KAAK,OAAO,KAAK,IAAI,MAAM,sBAAsB,EAAE;AAAA,IAAA;AAAA,EACxE,QACM;AAGN;AAAA,EACF;AAEM,QAAA,cAAc,OAAO,kBAA0B;AAC7C,UAAA,MAAM,KAAK;AACjB,UAAM,kBAAkB,OAAO,IAAI,iBAAiB,KAAK;AACrD,QAAA,kBAAkB,gBAAgB,KAAK;AACzC;AAAA,IACF;AAEI,QAAA;AACF,YAAM,MAAM,MAAMC,qBAAAA,QAAY,IAAI,IAAI;AACtC,UAAI,IAAI,SAAS;AACR,eAAA,IAAI,UAAU,IAAI,OAAO;AACzB,eAAA,IAAI,mBAAmB,GAAG;AAAA,MACnC;AAAA,IAAA,QACM;AAAA,IAER;AAAA,EAAA;AAGI,QAAA,UAAU,CAAC,kBAA0B;AACnC,UAAA,MAAM,KAAK;AACX,UAAA,gBAAgB,OAAO,IAAI,QAAQ;AACzC,UAAM,mBAAmB,OAAO,IAAI,kBAAkB,KAAK;AAGzD,QAAA,CAAC,QAAQ,OAAO,SAChB,mBAAmB,gBAAgB,OACnC,CAACC,wBAAO,MAAM,aAAa,KAC3B,CAACA,wBAAO,MAAM,IAAI,OAAO,KACzBA,wBAAO,IAAI,eAAe,IAAI,OAAO,GACrC;AACA;AAAA,IACF;AAEA,UAAM,UAAUC,eAAM,QAAA,iBAAiB,eAAe,IAAI,OAAO,GAAG,YAAY;AACzE,WAAA,IAAI,oBAAoB,GAAG;AAClC,YAAQ,IAAI,OAAO;AAAA,EAAA;AAIrB,MAAIC,gBAAI,KAAK,sCAAsC,KAAK,GAAG;AACzD,WAAO,IAAI;AAAA,MACT;AAAA,IAAA;AAAA,EAEJ;AAEA,MAAI,CAAC,OAAO,OAAO,IAAI,+BAA+B,KAAK,CAAC,QAAQ;AAClE;AAAA,EACF;AAEA,UAAQ,cAAc;AACtB,cAAY,cAAc;AAC5B;;"}
@@ -33,6 +33,7 @@ const createUpdateNotifier = (strapi) => {
33
33
  { configPath: path.join(strapi.dirs.app.root, ".strapi-updater.json") }
34
34
  );
35
35
  } catch {
36
+ return;
36
37
  }
37
38
  const checkUpdate = async (checkInterval) => {
38
39
  const now = Date.now();
@@ -60,20 +61,16 @@ const createUpdateNotifier = (strapi) => {
60
61
  config.set("lastNotification", now);
61
62
  console.log(message);
62
63
  };
63
- return {
64
- notify({ checkInterval = CHECK_INTERVAL, notifInterval = NOTIF_INTERVAL } = {}) {
65
- if (env.bool("STRAPI_DISABLE_UPDATE_NOTIFICATION", false)) {
66
- strapi.log.warn(
67
- "STRAPI_DISABLE_UPDATE_NOTIFICATION is no longer supported. Instead, set logger.updates.enabled to false in your server configuration."
68
- );
69
- }
70
- if (!strapi.config.get("server.logger.updates.enabled") || !config) {
71
- return;
72
- }
73
- display(notifInterval);
74
- checkUpdate(checkInterval);
75
- }
76
- };
64
+ if (env.bool("STRAPI_DISABLE_UPDATE_NOTIFICATION", false)) {
65
+ strapi.log.warn(
66
+ "STRAPI_DISABLE_UPDATE_NOTIFICATION is no longer supported. Instead, set logger.updates.enabled to false in your server configuration."
67
+ );
68
+ }
69
+ if (!strapi.config.get("server.logger.updates.enabled") || !config) {
70
+ return;
71
+ }
72
+ display(NOTIF_INTERVAL);
73
+ checkUpdate(CHECK_INTERVAL);
77
74
  };
78
75
  export {
79
76
  createUpdateNotifier
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../src/utils/update-notifier/index.ts"],"sourcesContent":["import path from 'path';\nimport packageJson from 'package-json';\nimport Configstore from 'configstore';\nimport semver from 'semver';\nimport boxen from 'boxen';\nimport chalk from 'chalk';\nimport { env } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst pkg = require('../../../package.json');\n\nconst CHECK_INTERVAL = 1000 * 60 * 60 * 24 * 1; // 1 day\nconst NOTIF_INTERVAL = 1000 * 60 * 60 * 24 * 7; // 1 week\nconst boxenOptions: boxen.Options = {\n padding: 1,\n margin: 1,\n align: 'center',\n borderColor: 'yellow',\n borderStyle: 'round',\n};\n\nconst getUpdateMessage = (newVersion: string, currentVersion: string) => {\n const currentVersionLog = chalk.dim(currentVersion);\n const newVersionLog = chalk.green(newVersion);\n const releaseLink = chalk.bold('https://github.com/strapi/strapi/releases');\n\n return `\nA new version of Strapi is available ${currentVersionLog} → ${newVersionLog}\nCheck out the new releases at: ${releaseLink}\n`.trim();\n};\n\nexport const createUpdateNotifier = (strapi: Core.Strapi) => {\n let config: InstanceType<typeof Configstore>;\n\n try {\n config = new Configstore(\n pkg.name,\n {},\n { configPath: path.join(strapi.dirs.app.root, '.strapi-updater.json') }\n );\n } catch {\n // we don't have write access to the file system\n // we silence the error\n }\n\n const checkUpdate = async (checkInterval: number) => {\n const now = Date.now();\n const lastUpdateCheck = config.get('lastUpdateCheck') || 0;\n if (lastUpdateCheck + checkInterval > now) {\n return;\n }\n\n try {\n const res = await packageJson(pkg.name);\n if (res.version) {\n config.set('latest', res.version);\n config.set('lastUpdateCheck', now);\n }\n } catch {\n // silence error if offline\n }\n };\n\n const display = (notifInterval: number) => {\n const now = Date.now();\n const latestVersion = config.get('latest');\n const lastNotification = config.get('lastNotification') || 0;\n\n if (\n !process.stdout.isTTY ||\n lastNotification + notifInterval > now ||\n !semver.valid(latestVersion) ||\n !semver.valid(pkg.version) ||\n semver.lte(latestVersion, pkg.version)\n ) {\n return;\n }\n\n const message = boxen(getUpdateMessage(latestVersion, pkg.version), boxenOptions);\n config.set('lastNotification', now);\n console.log(message);\n };\n\n return {\n notify({ checkInterval = CHECK_INTERVAL, notifInterval = NOTIF_INTERVAL } = {}) {\n // TODO v6: Remove this warning\n if (env.bool('STRAPI_DISABLE_UPDATE_NOTIFICATION', false)) {\n strapi.log.warn(\n 'STRAPI_DISABLE_UPDATE_NOTIFICATION is no longer supported. Instead, set logger.updates.enabled to false in your server configuration.'\n );\n }\n\n if (!strapi.config.get('server.logger.updates.enabled') || !config) {\n return;\n }\n\n display(notifInterval);\n checkUpdate(checkInterval); // doesn't need to await\n },\n };\n};\n"],"names":[],"mappings":";;;;;;;AAUA,MAAM,MAAM,QAAQ,uBAAuB;AAE3C,MAAM,iBAAiB,MAAO,KAAK,KAAK,KAAK;AAC7C,MAAM,iBAAiB,MAAO,KAAK,KAAK,KAAK;AAC7C,MAAM,eAA8B;AAAA,EAClC,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,aAAa;AAAA,EACb,aAAa;AACf;AAEA,MAAM,mBAAmB,CAAC,YAAoB,mBAA2B;AACjE,QAAA,oBAAoB,MAAM,IAAI,cAAc;AAC5C,QAAA,gBAAgB,MAAM,MAAM,UAAU;AACtC,QAAA,cAAc,MAAM,KAAK,2CAA2C;AAEnE,SAAA;AAAA,uCAC8B,iBAAiB,MAAM,aAAa;AAAA,iCAC1C,WAAW;AAAA,EAC1C,KAAK;AACP;AAEa,MAAA,uBAAuB,CAAC,WAAwB;AACvD,MAAA;AAEA,MAAA;AACF,aAAS,IAAI;AAAA,MACX,IAAI;AAAA,MACJ,CAAC;AAAA,MACD,EAAE,YAAY,KAAK,KAAK,OAAO,KAAK,IAAI,MAAM,sBAAsB,EAAE;AAAA,IAAA;AAAA,EACxE,QACM;AAAA,EAGR;AAEM,QAAA,cAAc,OAAO,kBAA0B;AAC7C,UAAA,MAAM,KAAK;AACjB,UAAM,kBAAkB,OAAO,IAAI,iBAAiB,KAAK;AACrD,QAAA,kBAAkB,gBAAgB,KAAK;AACzC;AAAA,IACF;AAEI,QAAA;AACF,YAAM,MAAM,MAAM,YAAY,IAAI,IAAI;AACtC,UAAI,IAAI,SAAS;AACR,eAAA,IAAI,UAAU,IAAI,OAAO;AACzB,eAAA,IAAI,mBAAmB,GAAG;AAAA,MACnC;AAAA,IAAA,QACM;AAAA,IAER;AAAA,EAAA;AAGI,QAAA,UAAU,CAAC,kBAA0B;AACnC,UAAA,MAAM,KAAK;AACX,UAAA,gBAAgB,OAAO,IAAI,QAAQ;AACzC,UAAM,mBAAmB,OAAO,IAAI,kBAAkB,KAAK;AAGzD,QAAA,CAAC,QAAQ,OAAO,SAChB,mBAAmB,gBAAgB,OACnC,CAAC,OAAO,MAAM,aAAa,KAC3B,CAAC,OAAO,MAAM,IAAI,OAAO,KACzB,OAAO,IAAI,eAAe,IAAI,OAAO,GACrC;AACA;AAAA,IACF;AAEA,UAAM,UAAU,MAAM,iBAAiB,eAAe,IAAI,OAAO,GAAG,YAAY;AACzE,WAAA,IAAI,oBAAoB,GAAG;AAClC,YAAQ,IAAI,OAAO;AAAA,EAAA;AAGd,SAAA;AAAA,IACL,OAAO,EAAE,gBAAgB,gBAAgB,gBAAgB,eAAe,IAAI,IAAI;AAE9E,UAAI,IAAI,KAAK,sCAAsC,KAAK,GAAG;AACzD,eAAO,IAAI;AAAA,UACT;AAAA,QAAA;AAAA,MAEJ;AAEA,UAAI,CAAC,OAAO,OAAO,IAAI,+BAA+B,KAAK,CAAC,QAAQ;AAClE;AAAA,MACF;AAEA,cAAQ,aAAa;AACrB,kBAAY,aAAa;AAAA,IAC3B;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../src/utils/update-notifier/index.ts"],"sourcesContent":["import path from 'path';\nimport packageJson from 'package-json';\nimport Configstore from 'configstore';\nimport semver from 'semver';\nimport boxen from 'boxen';\nimport chalk from 'chalk';\nimport { env } from '@strapi/utils';\nimport type { Core } from '@strapi/types';\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst pkg = require('../../../package.json');\n\nconst CHECK_INTERVAL = 1000 * 60 * 60 * 24 * 1; // 1 day\nconst NOTIF_INTERVAL = 1000 * 60 * 60 * 24 * 7; // 1 week\nconst boxenOptions: boxen.Options = {\n padding: 1,\n margin: 1,\n align: 'center',\n borderColor: 'yellow',\n borderStyle: 'round',\n};\n\nconst getUpdateMessage = (newVersion: string, currentVersion: string) => {\n const currentVersionLog = chalk.dim(currentVersion);\n const newVersionLog = chalk.green(newVersion);\n const releaseLink = chalk.bold('https://github.com/strapi/strapi/releases');\n\n return `\nA new version of Strapi is available ${currentVersionLog} → ${newVersionLog}\nCheck out the new releases at: ${releaseLink}\n`.trim();\n};\n\nexport const createUpdateNotifier = (strapi: Core.Strapi) => {\n let config: InstanceType<typeof Configstore>;\n\n try {\n config = new Configstore(\n pkg.name,\n {},\n { configPath: path.join(strapi.dirs.app.root, '.strapi-updater.json') }\n );\n } catch {\n // we don't have write access to the file system\n // we silence the error\n return;\n }\n\n const checkUpdate = async (checkInterval: number) => {\n const now = Date.now();\n const lastUpdateCheck = config.get('lastUpdateCheck') || 0;\n if (lastUpdateCheck + checkInterval > now) {\n return;\n }\n\n try {\n const res = await packageJson(pkg.name);\n if (res.version) {\n config.set('latest', res.version);\n config.set('lastUpdateCheck', now);\n }\n } catch {\n // silence error if offline\n }\n };\n\n const display = (notifInterval: number) => {\n const now = Date.now();\n const latestVersion = config.get('latest');\n const lastNotification = config.get('lastNotification') || 0;\n\n if (\n !process.stdout.isTTY ||\n lastNotification + notifInterval > now ||\n !semver.valid(latestVersion) ||\n !semver.valid(pkg.version) ||\n semver.lte(latestVersion, pkg.version)\n ) {\n return;\n }\n\n const message = boxen(getUpdateMessage(latestVersion, pkg.version), boxenOptions);\n config.set('lastNotification', now);\n console.log(message);\n };\n\n // TODO v6: Remove this warning\n if (env.bool('STRAPI_DISABLE_UPDATE_NOTIFICATION', false)) {\n strapi.log.warn(\n 'STRAPI_DISABLE_UPDATE_NOTIFICATION is no longer supported. Instead, set logger.updates.enabled to false in your server configuration.'\n );\n }\n\n if (!strapi.config.get('server.logger.updates.enabled') || !config) {\n return;\n }\n\n display(NOTIF_INTERVAL);\n checkUpdate(CHECK_INTERVAL); // doesn't need to await\n};\n"],"names":[],"mappings":";;;;;;;AAUA,MAAM,MAAM,QAAQ,uBAAuB;AAE3C,MAAM,iBAAiB,MAAO,KAAK,KAAK,KAAK;AAC7C,MAAM,iBAAiB,MAAO,KAAK,KAAK,KAAK;AAC7C,MAAM,eAA8B;AAAA,EAClC,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,aAAa;AAAA,EACb,aAAa;AACf;AAEA,MAAM,mBAAmB,CAAC,YAAoB,mBAA2B;AACjE,QAAA,oBAAoB,MAAM,IAAI,cAAc;AAC5C,QAAA,gBAAgB,MAAM,MAAM,UAAU;AACtC,QAAA,cAAc,MAAM,KAAK,2CAA2C;AAEnE,SAAA;AAAA,uCAC8B,iBAAiB,MAAM,aAAa;AAAA,iCAC1C,WAAW;AAAA,EAC1C,KAAK;AACP;AAEa,MAAA,uBAAuB,CAAC,WAAwB;AACvD,MAAA;AAEA,MAAA;AACF,aAAS,IAAI;AAAA,MACX,IAAI;AAAA,MACJ,CAAC;AAAA,MACD,EAAE,YAAY,KAAK,KAAK,OAAO,KAAK,IAAI,MAAM,sBAAsB,EAAE;AAAA,IAAA;AAAA,EACxE,QACM;AAGN;AAAA,EACF;AAEM,QAAA,cAAc,OAAO,kBAA0B;AAC7C,UAAA,MAAM,KAAK;AACjB,UAAM,kBAAkB,OAAO,IAAI,iBAAiB,KAAK;AACrD,QAAA,kBAAkB,gBAAgB,KAAK;AACzC;AAAA,IACF;AAEI,QAAA;AACF,YAAM,MAAM,MAAM,YAAY,IAAI,IAAI;AACtC,UAAI,IAAI,SAAS;AACR,eAAA,IAAI,UAAU,IAAI,OAAO;AACzB,eAAA,IAAI,mBAAmB,GAAG;AAAA,MACnC;AAAA,IAAA,QACM;AAAA,IAER;AAAA,EAAA;AAGI,QAAA,UAAU,CAAC,kBAA0B;AACnC,UAAA,MAAM,KAAK;AACX,UAAA,gBAAgB,OAAO,IAAI,QAAQ;AACzC,UAAM,mBAAmB,OAAO,IAAI,kBAAkB,KAAK;AAGzD,QAAA,CAAC,QAAQ,OAAO,SAChB,mBAAmB,gBAAgB,OACnC,CAAC,OAAO,MAAM,aAAa,KAC3B,CAAC,OAAO,MAAM,IAAI,OAAO,KACzB,OAAO,IAAI,eAAe,IAAI,OAAO,GACrC;AACA;AAAA,IACF;AAEA,UAAM,UAAU,MAAM,iBAAiB,eAAe,IAAI,OAAO,GAAG,YAAY;AACzE,WAAA,IAAI,oBAAoB,GAAG;AAClC,YAAQ,IAAI,OAAO;AAAA,EAAA;AAIrB,MAAI,IAAI,KAAK,sCAAsC,KAAK,GAAG;AACzD,WAAO,IAAI;AAAA,MACT;AAAA,IAAA;AAAA,EAEJ;AAEA,MAAI,CAAC,OAAO,OAAO,IAAI,+BAA+B,KAAK,CAAC,QAAQ;AAClE;AAAA,EACF;AAEA,UAAQ,cAAc;AACtB,cAAY,cAAc;AAC5B;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@strapi/core",
3
- "version": "5.0.0-beta.2",
3
+ "version": "5.0.0-beta.4",
4
4
  "description": "Core of Strapi",
5
5
  "homepage": "https://strapi.io",
6
6
  "bugs": {
@@ -52,19 +52,19 @@
52
52
  "watch": "pack-up watch"
53
53
  },
54
54
  "dependencies": {
55
- "@koa/cors": "3.4.3",
56
- "@koa/router": "10.1.1",
55
+ "@koa/cors": "5.0.0",
56
+ "@koa/router": "12.0.1",
57
57
  "@paralleldrive/cuid2": "2.2.2",
58
- "@strapi/admin": "5.0.0-beta.2",
59
- "@strapi/database": "5.0.0-beta.2",
60
- "@strapi/generate-new": "5.0.0-beta.2",
61
- "@strapi/generators": "5.0.0-beta.2",
62
- "@strapi/logger": "5.0.0-beta.2",
63
- "@strapi/pack-up": "5.0.0-beta.2",
64
- "@strapi/permissions": "5.0.0-beta.2",
65
- "@strapi/types": "5.0.0-beta.2",
66
- "@strapi/typescript-utils": "5.0.0-beta.2",
67
- "@strapi/utils": "5.0.0-beta.2",
58
+ "@strapi/admin": "5.0.0-beta.4",
59
+ "@strapi/database": "5.0.0-beta.4",
60
+ "@strapi/generate-new": "5.0.0-beta.4",
61
+ "@strapi/generators": "5.0.0-beta.4",
62
+ "@strapi/logger": "5.0.0-beta.4",
63
+ "@strapi/pack-up": "5.0.0",
64
+ "@strapi/permissions": "5.0.0-beta.4",
65
+ "@strapi/types": "5.0.0-beta.4",
66
+ "@strapi/typescript-utils": "5.0.0-beta.4",
67
+ "@strapi/utils": "5.0.0-beta.4",
68
68
  "bcryptjs": "2.4.3",
69
69
  "boxen": "5.1.2",
70
70
  "chalk": "4.1.2",
@@ -82,13 +82,13 @@
82
82
  "http-errors": "1.8.1",
83
83
  "inquirer": "8.2.5",
84
84
  "is-docker": "2.2.1",
85
- "koa": "2.13.4",
86
- "koa-body": "4.2.0",
85
+ "koa": "2.15.2",
86
+ "koa-body": "6.0.1",
87
87
  "koa-compose": "4.1.0",
88
- "koa-compress": "5.1.0",
88
+ "koa-compress": "5.1.1",
89
89
  "koa-favicon": "2.1.0",
90
90
  "koa-helmet": "7.0.2",
91
- "koa-ip": "^2.1.2",
91
+ "koa-ip": "^2.1.3",
92
92
  "koa-session": "6.4.0",
93
93
  "koa-static": "5.0.0",
94
94
  "lodash": "4.17.21",
@@ -106,7 +106,7 @@
106
106
  "yup": "0.32.9"
107
107
  },
108
108
  "devDependencies": {
109
- "@strapi/pack-up": "workspace:*",
109
+ "@strapi/pack-up": "5.0.0",
110
110
  "@strapi/ts-zen": "^0.2.0",
111
111
  "@types/bcryptjs": "2.4.3",
112
112
  "@types/configstore": "5.0.1",
@@ -122,13 +122,13 @@
122
122
  "@types/node": "18.19.24",
123
123
  "@types/node-schedule": "2.1.0",
124
124
  "@types/statuses": "2.0.1",
125
- "eslint-config-custom": "5.0.0-beta.2",
125
+ "eslint-config-custom": "5.0.0-beta.4",
126
126
  "supertest": "6.3.3",
127
- "tsconfig": "5.0.0-beta.2"
127
+ "tsconfig": "5.0.0-beta.4"
128
128
  },
129
129
  "engines": {
130
130
  "node": ">=18.0.0 <=20.x.x",
131
131
  "npm": ">=6.0.0"
132
132
  },
133
- "gitHead": "e39426bd12ead73ca35d3d9bbf6dc71b5e8ac354"
133
+ "gitHead": "18019758d6ccd252f2f00bcc32c191402af2e60a"
134
134
  }
@@ -1,4 +0,0 @@
1
- import type { Core } from '@strapi/types';
2
- declare const _default: (initialConfig?: {}, strapi?: Core.Strapi | Core.LoadedStrapi) => Core.ConfigProvider;
3
- export default _default;
4
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/registries/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;sDAO/B,KAAK,MAAM,GAAG,KAAK,YAAY,KACvC,KAAK,cAAc;AAHtB,wBAmDE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sources":["../../src/registries/config.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { get, set, has, isString, isNumber, isArray, type PropertyPath } from 'lodash';\n\ntype Config = Record<string, unknown>;\n\nexport default (\n initialConfig = {},\n strapi?: Core.Strapi | Core.LoadedStrapi\n): Core.ConfigProvider => {\n const _config: Config = { ...initialConfig }; // not deep clone because it would break some config\n\n // Accessing model configs with dot (.) was deprecated between v4->v5, but to avoid a major breaking change\n // we will still support certain namespaces, currently only 'plugin.'\n const transformPathString = (path: string) => {\n if (path.startsWith('plugin.')) {\n const newPath = path.replace('plugin.', 'plugin::');\n\n // strapi logger may not be loaded yet, so fall back to console\n (strapi?.log?.warn ?? console.warn)(\n `Using dot notation for model config namespaces is deprecated, for example \"plugin::myplugin\" should be used instead of \"plugin.myplugin\". Modifying requested path ${path} to ${newPath}`\n );\n return newPath;\n }\n\n return path;\n };\n\n const transformDeprecatedPaths = (path: PropertyPath): PropertyPath => {\n if (isString(path)) {\n return transformPathString(path);\n }\n if (isArray(path)) {\n // if the path is not joinable, we won't apply our deprecation support\n if (path.some((part) => !(isString(part) || isNumber(part)))) {\n return path;\n }\n\n return transformPathString(path.join('.'));\n }\n\n return path;\n };\n\n return {\n ..._config, // TODO: to remove\n get(path: PropertyPath, defaultValue?: unknown) {\n return get(_config, transformDeprecatedPaths(path), defaultValue);\n },\n set(path: PropertyPath, val: unknown) {\n set(_config, transformDeprecatedPaths(path), val);\n return this;\n },\n has(path: PropertyPath) {\n return has(_config, transformDeprecatedPaths(path));\n },\n };\n};\n"],"names":["isString","isArray","isNumber","get","set","has"],"mappings":";;AAKA,MAAA,SAAe,CACb,gBAAgB,CAAC,GACjB,WACwB;AAClB,QAAA,UAAkB,EAAE,GAAG;AAIvB,QAAA,sBAAsB,CAAC,SAAiB;AACxC,QAAA,KAAK,WAAW,SAAS,GAAG;AAC9B,YAAM,UAAU,KAAK,QAAQ,WAAW,UAAU;AAGjD,OAAA,QAAQ,KAAK,QAAQ,QAAQ;AAAA,QAC5B,sKAAsK,IAAI,OAAO,OAAO;AAAA,MAAA;AAEnL,aAAA;AAAA,IACT;AAEO,WAAA;AAAA,EAAA;AAGH,QAAA,2BAA2B,CAAC,SAAqC;AACjE,QAAAA,EAAAA,SAAS,IAAI,GAAG;AAClB,aAAO,oBAAoB,IAAI;AAAA,IACjC;AACI,QAAAC,EAAAA,QAAQ,IAAI,GAAG;AAEb,UAAA,KAAK,KAAK,CAAC,SAAS,EAAED,EAAAA,SAAS,IAAI,KAAKE,EAAA,SAAS,IAAI,EAAE,GAAG;AACrD,eAAA;AAAA,MACT;AAEA,aAAO,oBAAoB,KAAK,KAAK,GAAG,CAAC;AAAA,IAC3C;AAEO,WAAA;AAAA,EAAA;AAGF,SAAA;AAAA,IACL,GAAG;AAAA;AAAA,IACH,IAAI,MAAoB,cAAwB;AAC9C,aAAOC,EAAAA,IAAI,SAAS,yBAAyB,IAAI,GAAG,YAAY;AAAA,IAClE;AAAA,IACA,IAAI,MAAoB,KAAc;AACpCC,QAAAA,IAAI,SAAS,yBAAyB,IAAI,GAAG,GAAG;AACzC,aAAA;AAAA,IACT;AAAA,IACA,IAAI,MAAoB;AACtB,aAAOC,EAAI,IAAA,SAAS,yBAAyB,IAAI,CAAC;AAAA,IACpD;AAAA,EAAA;AAEJ;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.mjs","sources":["../../src/registries/config.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\nimport { get, set, has, isString, isNumber, isArray, type PropertyPath } from 'lodash';\n\ntype Config = Record<string, unknown>;\n\nexport default (\n initialConfig = {},\n strapi?: Core.Strapi | Core.LoadedStrapi\n): Core.ConfigProvider => {\n const _config: Config = { ...initialConfig }; // not deep clone because it would break some config\n\n // Accessing model configs with dot (.) was deprecated between v4->v5, but to avoid a major breaking change\n // we will still support certain namespaces, currently only 'plugin.'\n const transformPathString = (path: string) => {\n if (path.startsWith('plugin.')) {\n const newPath = path.replace('plugin.', 'plugin::');\n\n // strapi logger may not be loaded yet, so fall back to console\n (strapi?.log?.warn ?? console.warn)(\n `Using dot notation for model config namespaces is deprecated, for example \"plugin::myplugin\" should be used instead of \"plugin.myplugin\". Modifying requested path ${path} to ${newPath}`\n );\n return newPath;\n }\n\n return path;\n };\n\n const transformDeprecatedPaths = (path: PropertyPath): PropertyPath => {\n if (isString(path)) {\n return transformPathString(path);\n }\n if (isArray(path)) {\n // if the path is not joinable, we won't apply our deprecation support\n if (path.some((part) => !(isString(part) || isNumber(part)))) {\n return path;\n }\n\n return transformPathString(path.join('.'));\n }\n\n return path;\n };\n\n return {\n ..._config, // TODO: to remove\n get(path: PropertyPath, defaultValue?: unknown) {\n return get(_config, transformDeprecatedPaths(path), defaultValue);\n },\n set(path: PropertyPath, val: unknown) {\n set(_config, transformDeprecatedPaths(path), val);\n return this;\n },\n has(path: PropertyPath) {\n return has(_config, transformDeprecatedPaths(path));\n },\n };\n};\n"],"names":[],"mappings":";AAKA,MAAA,SAAe,CACb,gBAAgB,CAAC,GACjB,WACwB;AAClB,QAAA,UAAkB,EAAE,GAAG;AAIvB,QAAA,sBAAsB,CAAC,SAAiB;AACxC,QAAA,KAAK,WAAW,SAAS,GAAG;AAC9B,YAAM,UAAU,KAAK,QAAQ,WAAW,UAAU;AAGjD,OAAA,QAAQ,KAAK,QAAQ,QAAQ;AAAA,QAC5B,sKAAsK,IAAI,OAAO,OAAO;AAAA,MAAA;AAEnL,aAAA;AAAA,IACT;AAEO,WAAA;AAAA,EAAA;AAGH,QAAA,2BAA2B,CAAC,SAAqC;AACjE,QAAA,SAAS,IAAI,GAAG;AAClB,aAAO,oBAAoB,IAAI;AAAA,IACjC;AACI,QAAA,QAAQ,IAAI,GAAG;AAEb,UAAA,KAAK,KAAK,CAAC,SAAS,EAAE,SAAS,IAAI,KAAK,SAAS,IAAI,EAAE,GAAG;AACrD,eAAA;AAAA,MACT;AAEA,aAAO,oBAAoB,KAAK,KAAK,GAAG,CAAC;AAAA,IAC3C;AAEO,WAAA;AAAA,EAAA;AAGF,SAAA;AAAA,IACL,GAAG;AAAA;AAAA,IACH,IAAI,MAAoB,cAAwB;AAC9C,aAAO,IAAI,SAAS,yBAAyB,IAAI,GAAG,YAAY;AAAA,IAClE;AAAA,IACA,IAAI,MAAoB,KAAc;AACpC,UAAI,SAAS,yBAAyB,IAAI,GAAG,GAAG;AACzC,aAAA;AAAA,IACT;AAAA,IACA,IAAI,MAAoB;AACtB,aAAO,IAAI,SAAS,yBAAyB,IAAI,CAAC;AAAA,IACpD;AAAA,EAAA;AAEJ;"}
@@ -1,6 +0,0 @@
1
- import type { UID, Modules, Schema } from '@strapi/types';
2
- declare const applyTransforms: <TUID extends UID.ContentType>(data: Modules.EntityService.Params.Data.Input<TUID>, context: {
3
- contentType: Schema.ContentType<TUID>;
4
- }) => Modules.EntityService.Params.Data.Input<TUID>;
5
- export { applyTransforms };
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/entity-service/attributes/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAG1D,QAAA,MAAM,eAAe;;mDA6BpB,CAAC;AAEF,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/services/entity-service/attributes/index.ts"],"sourcesContent":["import type { UID, Modules, Schema } from '@strapi/types';\nimport transforms from './transforms';\n\nconst applyTransforms = <TUID extends UID.ContentType>(\n data: Modules.EntityService.Params.Data.Input<TUID>,\n context: {\n contentType: Schema.ContentType<TUID>;\n }\n) => {\n const { contentType } = context;\n\n const attributeNames = Object.keys(data) as Array<keyof typeof data & string>;\n\n for (const attributeName of attributeNames) {\n const value = data[attributeName];\n\n const attribute = contentType.attributes[attributeName];\n\n if (!attribute) {\n continue;\n }\n\n const transform = transforms[attribute.type];\n\n if (transform) {\n const attributeContext = { ...context, attributeName, attribute };\n\n data[attributeName] = transform(value, attributeContext);\n }\n }\n\n return data;\n};\n\nexport { applyTransforms };\n"],"names":[],"mappings":";;;AAGM,MAAA,kBAAkB,CACtB,MACA,YAGG;AACG,QAAA,EAAE,YAAgB,IAAA;AAElB,QAAA,iBAAiB,OAAO,KAAK,IAAI;AAEvC,aAAW,iBAAiB,gBAAgB;AACpC,UAAA,QAAQ,KAAK,aAAa;AAE1B,UAAA,YAAY,YAAY,WAAW,aAAa;AAEtD,QAAI,CAAC,WAAW;AACd;AAAA,IACF;AAEM,UAAA,YAAY,WAAW,UAAU,IAAI;AAE3C,QAAI,WAAW;AACb,YAAM,mBAAmB,EAAE,GAAG,SAAS,eAAe,UAAU;AAEhE,WAAK,aAAa,IAAI,UAAU,OAAO,gBAAgB;AAAA,IACzD;AAAA,EACF;AAEO,SAAA;AACT;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../src/services/entity-service/attributes/index.ts"],"sourcesContent":["import type { UID, Modules, Schema } from '@strapi/types';\nimport transforms from './transforms';\n\nconst applyTransforms = <TUID extends UID.ContentType>(\n data: Modules.EntityService.Params.Data.Input<TUID>,\n context: {\n contentType: Schema.ContentType<TUID>;\n }\n) => {\n const { contentType } = context;\n\n const attributeNames = Object.keys(data) as Array<keyof typeof data & string>;\n\n for (const attributeName of attributeNames) {\n const value = data[attributeName];\n\n const attribute = contentType.attributes[attributeName];\n\n if (!attribute) {\n continue;\n }\n\n const transform = transforms[attribute.type];\n\n if (transform) {\n const attributeContext = { ...context, attributeName, attribute };\n\n data[attributeName] = transform(value, attributeContext);\n }\n }\n\n return data;\n};\n\nexport { applyTransforms };\n"],"names":[],"mappings":";AAGM,MAAA,kBAAkB,CACtB,MACA,YAGG;AACG,QAAA,EAAE,YAAgB,IAAA;AAElB,QAAA,iBAAiB,OAAO,KAAK,IAAI;AAEvC,aAAW,iBAAiB,gBAAgB;AACpC,UAAA,QAAQ,KAAK,aAAa;AAE1B,UAAA,YAAY,YAAY,WAAW,aAAa;AAEtD,QAAI,CAAC,WAAW;AACd;AAAA,IACF;AAEM,UAAA,YAAY,WAAW,UAAU,IAAI;AAE3C,QAAI,WAAW;AACb,YAAM,mBAAmB,EAAE,GAAG,SAAS,eAAe,UAAU;AAEhE,WAAK,aAAa,IAAI,UAAU,OAAO,gBAAgB;AAAA,IACzD;AAAA,EACF;AAEO,SAAA;AACT;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"transforms.d.ts","sourceRoot":"","sources":["../../../../src/services/entity-service/attributes/transforms.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAG5C,KAAK,UAAU,GAAG;KACf,KAAK,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CACjC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC;QACzC,aAAa,EAAE,MAAM,CAAC;KACvB,KACE,GAAG;CACT,CAAC;AAEF,QAAA,MAAM,UAAU,EAAE,UAgBjB,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"transforms.js","sources":["../../../../src/services/entity-service/attributes/transforms.ts"],"sourcesContent":["import { getOr, toNumber, isString } from 'lodash/fp';\nimport type { Schema } from '@strapi/types';\nimport bcrypt from 'bcryptjs';\n\ntype Transforms = {\n [TKind in Schema.Attribute.Kind]?: (\n value: unknown,\n context: {\n attribute: Schema.Attribute.AnyAttribute;\n attributeName: string;\n }\n ) => any;\n};\n\nconst transforms: Transforms = {\n password(value, context) {\n const { attribute } = context;\n\n if (attribute.type !== 'password') {\n throw new Error('Invalid attribute type');\n }\n\n if (!isString(value) && !(value instanceof Buffer)) {\n return value;\n }\n\n const rounds = toNumber(getOr(10, 'encryption.rounds', attribute));\n\n return bcrypt.hashSync(value.toString(), rounds);\n },\n};\n\nexport default transforms;\n"],"names":["isString","toNumber","getOr","bcrypt"],"mappings":";;;;;AAcA,MAAM,aAAyB;AAAA,EAC7B,SAAS,OAAO,SAAS;AACjB,UAAA,EAAE,UAAc,IAAA;AAElB,QAAA,UAAU,SAAS,YAAY;AAC3B,YAAA,IAAI,MAAM,wBAAwB;AAAA,IAC1C;AAEA,QAAI,CAACA,EAAS,SAAA,KAAK,KAAK,EAAE,iBAAiB,SAAS;AAC3C,aAAA;AAAA,IACT;AAEA,UAAM,SAASC,EAAAA,SAASC,EAAA,MAAM,IAAI,qBAAqB,SAAS,CAAC;AAEjE,WAAOC,gBAAAA,QAAO,SAAS,MAAM,YAAY,MAAM;AAAA,EACjD;AACF;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"transforms.mjs","sources":["../../../../src/services/entity-service/attributes/transforms.ts"],"sourcesContent":["import { getOr, toNumber, isString } from 'lodash/fp';\nimport type { Schema } from '@strapi/types';\nimport bcrypt from 'bcryptjs';\n\ntype Transforms = {\n [TKind in Schema.Attribute.Kind]?: (\n value: unknown,\n context: {\n attribute: Schema.Attribute.AnyAttribute;\n attributeName: string;\n }\n ) => any;\n};\n\nconst transforms: Transforms = {\n password(value, context) {\n const { attribute } = context;\n\n if (attribute.type !== 'password') {\n throw new Error('Invalid attribute type');\n }\n\n if (!isString(value) && !(value instanceof Buffer)) {\n return value;\n }\n\n const rounds = toNumber(getOr(10, 'encryption.rounds', attribute));\n\n return bcrypt.hashSync(value.toString(), rounds);\n },\n};\n\nexport default transforms;\n"],"names":[],"mappings":";;AAcA,MAAM,aAAyB;AAAA,EAC7B,SAAS,OAAO,SAAS;AACjB,UAAA,EAAE,UAAc,IAAA;AAElB,QAAA,UAAU,SAAS,YAAY;AAC3B,YAAA,IAAI,MAAM,wBAAwB;AAAA,IAC1C;AAEA,QAAI,CAAC,SAAS,KAAK,KAAK,EAAE,iBAAiB,SAAS;AAC3C,aAAA;AAAA,IACT;AAEA,UAAM,SAAS,SAAS,MAAM,IAAI,qBAAqB,SAAS,CAAC;AAEjE,WAAO,OAAO,SAAS,MAAM,YAAY,MAAM;AAAA,EACjD;AACF;"}
@@ -1,95 +0,0 @@
1
- import type { Struct, Utils, UID, Schema, Data, Modules } from '@strapi/types';
2
- type LoadedComponents<TUID extends UID.Schema> = Data.Entity<TUID, Schema.AttributeNamesByType<TUID, 'component' | 'dynamiczone'>>;
3
- type SingleComponentValue = Schema.Attribute.ComponentValue<UID.Component, false>;
4
- type RepeatableComponentValue = Schema.Attribute.ComponentValue<UID.Component, true>;
5
- type ComponentValue = SingleComponentValue | RepeatableComponentValue;
6
- type DynamicZoneValue = Schema.Attribute.DynamicZoneValue<UID.Component[]>;
7
- type ComponentBody = {
8
- [key: string]: ComponentValue | DynamicZoneValue;
9
- };
10
- declare function omitComponentData(contentType: Struct.ContentTypeSchema, data: Modules.EntityService.Params.Data.Input<Struct.ContentTypeSchema['uid']>): Partial<Modules.EntityService.Params.Data.Input<Struct.ContentTypeSchema['uid']>>;
11
- declare function omitComponentData(contentType: Struct.ComponentSchema, data: Modules.EntityService.Params.Data.Input<Struct.ComponentSchema['uid']>): Partial<Modules.EntityService.Params.Data.Input<Struct.ComponentSchema['uid']>>;
12
- declare const createComponents: <TUID extends UID.Schema, TData extends Modules.EntityService.Params.Data.Input<TUID>>(uid: TUID, data: TData) => Promise<ComponentBody>;
13
- declare const getComponents: <TUID extends UID.Schema>(uid: TUID, entity: {
14
- id: Modules.EntityService.Params.Attribute.ID;
15
- }) => Promise<LoadedComponents<TUID>>;
16
- declare const updateComponents: <TUID extends UID.Schema, TData extends Partial<Modules.EntityService.Params.Data.Input<TUID>>>(uid: TUID, entityToUpdate: {
17
- id: Modules.EntityService.Params.Attribute.ID;
18
- }, data: TData) => Promise<ComponentBody>;
19
- declare const deleteComponents: <TUID extends UID.Schema, TEntity extends Data.Entity<TUID, Extract<keyof Schema.Attributes<TUID>, string>>>(uid: TUID, entityToDelete: TEntity, { loadComponents }?: {
20
- loadComponents?: boolean | undefined;
21
- }) => Promise<void>;
22
- declare const deleteComponent: <TUID extends `${string}.${string}`>(uid: TUID, componentToDelete: {
23
- id: Data.ID;
24
- } & Pick<{ [TAttributeName in Extract<keyof Schema.Attributes<TUID>, string>]?: Utils.If<Utils.IsTrue<Utils.IsTrue<Utils.Extends<{
25
- biginteger: Schema.Attribute.GetBigIntegerValue<Schema.AttributeByName<TUID, TAttributeName>>;
26
- boolean: Schema.Attribute.GetBooleanValue<Schema.AttributeByName<TUID, TAttributeName>>;
27
- blocks: Schema.Attribute.GetBlocksValue<Schema.AttributeByName<TUID, TAttributeName>>;
28
- decimal: Schema.Attribute.GetDecimalValue<Schema.AttributeByName<TUID, TAttributeName>>;
29
- enumeration: Schema.Attribute.GetEnumerationValue<Schema.AttributeByName<TUID, TAttributeName>>;
30
- email: Schema.Attribute.GetEmailValue<Schema.AttributeByName<TUID, TAttributeName>>;
31
- float: Schema.Attribute.GetFloatValue<Schema.AttributeByName<TUID, TAttributeName>>;
32
- integer: Schema.Attribute.GetIntegerValue<Schema.AttributeByName<TUID, TAttributeName>>;
33
- json: Schema.Attribute.GetJsonValue<Schema.AttributeByName<TUID, TAttributeName>>;
34
- password: Schema.Attribute.GetPasswordValue<Schema.AttributeByName<TUID, TAttributeName>>;
35
- richtext: Schema.Attribute.GetRichTextValue<Schema.AttributeByName<TUID, TAttributeName>>;
36
- string: Schema.Attribute.GetStringValue<Schema.AttributeByName<TUID, TAttributeName>>;
37
- text: Schema.Attribute.GetTextValue<Schema.AttributeByName<TUID, TAttributeName>>;
38
- uid: Schema.Attribute.GetUIDValue<Schema.AttributeByName<TUID, TAttributeName>>;
39
- date: Schema.Attribute.GetDateValue<Schema.AttributeByName<TUID, TAttributeName>>;
40
- datetime: Schema.Attribute.GetDateTimeValue<Schema.AttributeByName<TUID, TAttributeName>>;
41
- time: Schema.Attribute.GetTimeValue<Schema.AttributeByName<TUID, TAttributeName>>;
42
- timestamp: Schema.Attribute.GetTimestampValue<Schema.AttributeByName<TUID, TAttributeName>>;
43
- component: Schema.Attribute.GetComponentValue<Schema.AttributeByName<TUID, TAttributeName>>;
44
- dynamiczone: Schema.Attribute.GetDynamicZoneValue<Schema.AttributeByName<TUID, TAttributeName>>;
45
- media: Schema.Attribute.GetMediaValue<Schema.AttributeByName<TUID, TAttributeName>>;
46
- relation: Schema.Attribute.GetRelationValue<Schema.AttributeByName<TUID, TAttributeName>>;
47
- }[Schema.Attribute.TypeOf<Schema.AttributeByName<TUID, TAttributeName>>], never>> | Utils.IsTrue<Utils.Extends<never, {
48
- biginteger: Schema.Attribute.GetBigIntegerValue<Schema.AttributeByName<TUID, TAttributeName>>;
49
- boolean: Schema.Attribute.GetBooleanValue<Schema.AttributeByName<TUID, TAttributeName>>;
50
- blocks: Schema.Attribute.GetBlocksValue<Schema.AttributeByName<TUID, TAttributeName>>;
51
- decimal: Schema.Attribute.GetDecimalValue<Schema.AttributeByName<TUID, TAttributeName>>;
52
- enumeration: Schema.Attribute.GetEnumerationValue<Schema.AttributeByName<TUID, TAttributeName>>;
53
- email: Schema.Attribute.GetEmailValue<Schema.AttributeByName<TUID, TAttributeName>>;
54
- float: Schema.Attribute.GetFloatValue<Schema.AttributeByName<TUID, TAttributeName>>;
55
- integer: Schema.Attribute.GetIntegerValue<Schema.AttributeByName<TUID, TAttributeName>>;
56
- json: Schema.Attribute.GetJsonValue<Schema.AttributeByName<TUID, TAttributeName>>;
57
- password: Schema.Attribute.GetPasswordValue<Schema.AttributeByName<TUID, TAttributeName>>;
58
- richtext: Schema.Attribute.GetRichTextValue<Schema.AttributeByName<TUID, TAttributeName>>;
59
- string: Schema.Attribute.GetStringValue<Schema.AttributeByName<TUID, TAttributeName>>;
60
- text: Schema.Attribute.GetTextValue<Schema.AttributeByName<TUID, TAttributeName>>;
61
- uid: Schema.Attribute.GetUIDValue<Schema.AttributeByName<TUID, TAttributeName>>;
62
- date: Schema.Attribute.GetDateValue<Schema.AttributeByName<TUID, TAttributeName>>;
63
- datetime: Schema.Attribute.GetDateTimeValue<Schema.AttributeByName<TUID, TAttributeName>>;
64
- time: Schema.Attribute.GetTimeValue<Schema.AttributeByName<TUID, TAttributeName>>;
65
- timestamp: Schema.Attribute.GetTimestampValue<Schema.AttributeByName<TUID, TAttributeName>>;
66
- component: Schema.Attribute.GetComponentValue<Schema.AttributeByName<TUID, TAttributeName>>;
67
- dynamiczone: Schema.Attribute.GetDynamicZoneValue<Schema.AttributeByName<TUID, TAttributeName>>;
68
- media: Schema.Attribute.GetMediaValue<Schema.AttributeByName<TUID, TAttributeName>>;
69
- relation: Schema.Attribute.GetRelationValue<Schema.AttributeByName<TUID, TAttributeName>>;
70
- }[Schema.Attribute.TypeOf<Schema.AttributeByName<TUID, TAttributeName>>]>>>, unknown, {
71
- biginteger: Schema.Attribute.GetBigIntegerValue<Schema.AttributeByName<TUID, TAttributeName>>;
72
- boolean: Schema.Attribute.GetBooleanValue<Schema.AttributeByName<TUID, TAttributeName>>;
73
- blocks: Schema.Attribute.GetBlocksValue<Schema.AttributeByName<TUID, TAttributeName>>;
74
- decimal: Schema.Attribute.GetDecimalValue<Schema.AttributeByName<TUID, TAttributeName>>;
75
- enumeration: Schema.Attribute.GetEnumerationValue<Schema.AttributeByName<TUID, TAttributeName>>;
76
- email: Schema.Attribute.GetEmailValue<Schema.AttributeByName<TUID, TAttributeName>>;
77
- float: Schema.Attribute.GetFloatValue<Schema.AttributeByName<TUID, TAttributeName>>;
78
- integer: Schema.Attribute.GetIntegerValue<Schema.AttributeByName<TUID, TAttributeName>>;
79
- json: Schema.Attribute.GetJsonValue<Schema.AttributeByName<TUID, TAttributeName>>;
80
- password: Schema.Attribute.GetPasswordValue<Schema.AttributeByName<TUID, TAttributeName>>;
81
- richtext: Schema.Attribute.GetRichTextValue<Schema.AttributeByName<TUID, TAttributeName>>;
82
- string: Schema.Attribute.GetStringValue<Schema.AttributeByName<TUID, TAttributeName>>;
83
- text: Schema.Attribute.GetTextValue<Schema.AttributeByName<TUID, TAttributeName>>;
84
- uid: Schema.Attribute.GetUIDValue<Schema.AttributeByName<TUID, TAttributeName>>;
85
- date: Schema.Attribute.GetDateValue<Schema.AttributeByName<TUID, TAttributeName>>;
86
- datetime: Schema.Attribute.GetDateTimeValue<Schema.AttributeByName<TUID, TAttributeName>>;
87
- time: Schema.Attribute.GetTimeValue<Schema.AttributeByName<TUID, TAttributeName>>;
88
- timestamp: Schema.Attribute.GetTimestampValue<Schema.AttributeByName<TUID, TAttributeName>>;
89
- component: Schema.Attribute.GetComponentValue<Schema.AttributeByName<TUID, TAttributeName>>;
90
- dynamiczone: Schema.Attribute.GetDynamicZoneValue<Schema.AttributeByName<TUID, TAttributeName>>;
91
- media: Schema.Attribute.GetMediaValue<Schema.AttributeByName<TUID, TAttributeName>>;
92
- relation: Schema.Attribute.GetRelationValue<Schema.AttributeByName<TUID, TAttributeName>>;
93
- }[Schema.Attribute.TypeOf<Schema.AttributeByName<TUID, TAttributeName>>]> | null | undefined; }, Extract<keyof Schema.Attributes<TUID>, string>>) => Promise<void>;
94
- export { omitComponentData, getComponents, createComponents, updateComponents, deleteComponents, deleteComponent, };
95
- //# sourceMappingURL=components.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../src/services/entity-service/components.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG/E,KAAK,gBAAgB,CAAC,IAAI,SAAS,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAC1D,IAAI,EACJ,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,WAAW,GAAG,aAAa,CAAC,CAC/D,CAAC;AAEF,KAAK,oBAAoB,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAClF,KAAK,wBAAwB,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAErF,KAAK,cAAc,GAAG,oBAAoB,GAAG,wBAAwB,CAAC;AAEtE,KAAK,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;AAE3E,KAAK,aAAa,GAAG;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,gBAAgB,CAAC;CAClD,CAAC;AAIF,iBAAS,iBAAiB,CACxB,WAAW,EAAE,MAAM,CAAC,iBAAiB,EACrC,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,GAC7E,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACrF,iBAAS,iBAAiB,CACxB,WAAW,EAAE,MAAM,CAAC,eAAe,EACnC,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,GAC3E,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAoBnF,QAAA,MAAM,gBAAgB,0IAqGrB,CAAC;AAEF,QAAA,MAAM,aAAa,+CAET;IAAE,EAAE,EAAE,QAAQ,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAA;CAAE,oCAS1D,CAAC;AAMF,QAAA,MAAM,gBAAgB,6HAKJ;IAAE,EAAE,EAAE,QAAQ,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAA;CAAE,wCAiFlE,CAAC;AAkGF,QAAA,MAAM,gBAAgB;;mBA+CrB,CAAC;AA8DF,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kKAMpB,CAAC;AAEF,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,GAChB,CAAC"}