@strapi/core 0.0.0-experimental.82fd5bc51d11a2da848fc7fd1cc573f8ea0a6535 → 0.0.0-experimental.838b114ef86c9081f990c3b46f5843a41088ec64

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of @strapi/core might be problematic. Click here for more details.

Files changed (210) hide show
  1. package/dist/Strapi.d.ts.map +1 -1
  2. package/dist/Strapi.js +4 -1
  3. package/dist/Strapi.js.map +1 -1
  4. package/dist/Strapi.mjs +4 -1
  5. package/dist/Strapi.mjs.map +1 -1
  6. package/dist/configuration/index.d.ts +1 -0
  7. package/dist/configuration/index.d.ts.map +1 -1
  8. package/dist/configuration/index.js +1 -0
  9. package/dist/configuration/index.js.map +1 -1
  10. package/dist/configuration/index.mjs +1 -0
  11. package/dist/configuration/index.mjs.map +1 -1
  12. package/dist/configuration/urls.d.ts.map +1 -1
  13. package/dist/configuration/urls.js +13 -4
  14. package/dist/configuration/urls.js.map +1 -1
  15. package/dist/configuration/urls.mjs +13 -4
  16. package/dist/configuration/urls.mjs.map +1 -1
  17. package/dist/core-api/controller/index.d.ts.map +1 -1
  18. package/dist/core-api/controller/index.js +2 -1
  19. package/dist/core-api/controller/index.js.map +1 -1
  20. package/dist/core-api/controller/index.mjs +2 -1
  21. package/dist/core-api/controller/index.mjs.map +1 -1
  22. package/dist/core-api/controller/transform.d.ts +3 -2
  23. package/dist/core-api/controller/transform.d.ts.map +1 -1
  24. package/dist/core-api/controller/transform.js +13 -3
  25. package/dist/core-api/controller/transform.js.map +1 -1
  26. package/dist/core-api/controller/transform.mjs +13 -3
  27. package/dist/core-api/controller/transform.mjs.map +1 -1
  28. package/dist/core-api/routes/index.d.ts +4 -22
  29. package/dist/core-api/routes/index.d.ts.map +1 -1
  30. package/dist/core-api/routes/index.js +150 -8
  31. package/dist/core-api/routes/index.js.map +1 -1
  32. package/dist/core-api/routes/index.mjs +131 -8
  33. package/dist/core-api/routes/index.mjs.map +1 -1
  34. package/dist/core-api/routes/validation/attributes.d.ts +244 -0
  35. package/dist/core-api/routes/validation/attributes.d.ts.map +1 -0
  36. package/dist/core-api/routes/validation/attributes.js +560 -0
  37. package/dist/core-api/routes/validation/attributes.js.map +1 -0
  38. package/dist/core-api/routes/validation/attributes.mjs +521 -0
  39. package/dist/core-api/routes/validation/attributes.mjs.map +1 -0
  40. package/dist/core-api/routes/validation/common.d.ts +105 -0
  41. package/dist/core-api/routes/validation/common.d.ts.map +1 -0
  42. package/dist/core-api/routes/validation/common.js +116 -0
  43. package/dist/core-api/routes/validation/common.js.map +1 -0
  44. package/dist/core-api/routes/validation/common.mjs +95 -0
  45. package/dist/core-api/routes/validation/common.mjs.map +1 -0
  46. package/dist/core-api/routes/validation/component.d.ts +34 -0
  47. package/dist/core-api/routes/validation/component.d.ts.map +1 -0
  48. package/dist/core-api/routes/validation/component.js +45 -0
  49. package/dist/core-api/routes/validation/component.js.map +1 -0
  50. package/dist/core-api/routes/validation/component.mjs +43 -0
  51. package/dist/core-api/routes/validation/component.mjs.map +1 -0
  52. package/dist/core-api/routes/validation/constants.d.ts +8 -0
  53. package/dist/core-api/routes/validation/constants.d.ts.map +1 -0
  54. package/dist/core-api/routes/validation/constants.js +18 -0
  55. package/dist/core-api/routes/validation/constants.js.map +1 -0
  56. package/dist/core-api/routes/validation/constants.mjs +16 -0
  57. package/dist/core-api/routes/validation/constants.mjs.map +1 -0
  58. package/dist/core-api/routes/validation/content-type.d.ts +128 -0
  59. package/dist/core-api/routes/validation/content-type.d.ts.map +1 -0
  60. package/dist/core-api/routes/validation/content-type.js +201 -0
  61. package/dist/core-api/routes/validation/content-type.js.map +1 -0
  62. package/dist/core-api/routes/validation/content-type.mjs +180 -0
  63. package/dist/core-api/routes/validation/content-type.mjs.map +1 -0
  64. package/dist/core-api/routes/validation/index.d.ts +5 -0
  65. package/dist/core-api/routes/validation/index.d.ts.map +1 -0
  66. package/dist/core-api/routes/validation/mappers.d.ts +105 -0
  67. package/dist/core-api/routes/validation/mappers.d.ts.map +1 -0
  68. package/dist/core-api/routes/validation/mappers.js +238 -0
  69. package/dist/core-api/routes/validation/mappers.js.map +1 -0
  70. package/dist/core-api/routes/validation/mappers.mjs +214 -0
  71. package/dist/core-api/routes/validation/mappers.mjs.map +1 -0
  72. package/dist/core-api/routes/validation/utils.d.ts +47 -0
  73. package/dist/core-api/routes/validation/utils.d.ts.map +1 -0
  74. package/dist/core-api/routes/validation/utils.js +128 -0
  75. package/dist/core-api/routes/validation/utils.js.map +1 -0
  76. package/dist/core-api/routes/validation/utils.mjs +106 -0
  77. package/dist/core-api/routes/validation/utils.mjs.map +1 -0
  78. package/dist/domain/content-type/index.d.ts.map +1 -1
  79. package/dist/domain/content-type/index.js +17 -1
  80. package/dist/domain/content-type/index.js.map +1 -1
  81. package/dist/domain/content-type/index.mjs +17 -1
  82. package/dist/domain/content-type/index.mjs.map +1 -1
  83. package/dist/domain/module/index.d.ts.map +1 -1
  84. package/dist/domain/module/index.js +3 -0
  85. package/dist/domain/module/index.js.map +1 -1
  86. package/dist/domain/module/index.mjs +3 -0
  87. package/dist/domain/module/index.mjs.map +1 -1
  88. package/dist/ee/index.d.ts +6 -0
  89. package/dist/ee/index.d.ts.map +1 -1
  90. package/dist/ee/index.js +29 -3
  91. package/dist/ee/index.js.map +1 -1
  92. package/dist/ee/index.mjs +30 -4
  93. package/dist/ee/index.mjs.map +1 -1
  94. package/dist/ee/license.d.ts +3 -1
  95. package/dist/ee/license.d.ts.map +1 -1
  96. package/dist/ee/license.js +8 -2
  97. package/dist/ee/license.js.map +1 -1
  98. package/dist/ee/license.mjs +9 -4
  99. package/dist/ee/license.mjs.map +1 -1
  100. package/dist/factories.d.ts +3 -1
  101. package/dist/factories.d.ts.map +1 -1
  102. package/dist/factories.js +10 -2
  103. package/dist/factories.js.map +1 -1
  104. package/dist/factories.mjs +10 -3
  105. package/dist/factories.mjs.map +1 -1
  106. package/dist/index.js +1 -1
  107. package/dist/index.mjs +1 -1
  108. package/dist/middlewares/cors.d.ts +9 -1
  109. package/dist/middlewares/cors.d.ts.map +1 -1
  110. package/dist/middlewares/cors.js +39 -17
  111. package/dist/middlewares/cors.js.map +1 -1
  112. package/dist/middlewares/cors.mjs +39 -18
  113. package/dist/middlewares/cors.mjs.map +1 -1
  114. package/dist/migrations/first-published-at.d.ts +4 -0
  115. package/dist/migrations/first-published-at.d.ts.map +1 -0
  116. package/dist/migrations/first-published-at.js +51 -0
  117. package/dist/migrations/first-published-at.js.map +1 -0
  118. package/dist/migrations/first-published-at.mjs +49 -0
  119. package/dist/migrations/first-published-at.mjs.map +1 -0
  120. package/dist/migrations/index.d.ts.map +1 -1
  121. package/dist/migrations/index.js +5 -0
  122. package/dist/migrations/index.js.map +1 -1
  123. package/dist/migrations/index.mjs +5 -0
  124. package/dist/migrations/index.mjs.map +1 -1
  125. package/dist/package.json.js +18 -14
  126. package/dist/package.json.js.map +1 -1
  127. package/dist/package.json.mjs +18 -14
  128. package/dist/package.json.mjs.map +1 -1
  129. package/dist/services/content-source-maps.d.ts +18 -0
  130. package/dist/services/content-source-maps.d.ts.map +1 -0
  131. package/dist/services/content-source-maps.js +158 -0
  132. package/dist/services/content-source-maps.js.map +1 -0
  133. package/dist/services/content-source-maps.mjs +156 -0
  134. package/dist/services/content-source-maps.mjs.map +1 -0
  135. package/dist/services/core-store.d.ts +2 -2
  136. package/dist/services/core-store.d.ts.map +1 -1
  137. package/dist/services/core-store.js.map +1 -1
  138. package/dist/services/core-store.mjs.map +1 -1
  139. package/dist/services/document-service/entries.d.ts.map +1 -1
  140. package/dist/services/document-service/entries.js +42 -0
  141. package/dist/services/document-service/entries.js.map +1 -1
  142. package/dist/services/document-service/entries.mjs +43 -1
  143. package/dist/services/document-service/entries.mjs.map +1 -1
  144. package/dist/services/document-service/first-published-at.d.ts +7 -0
  145. package/dist/services/document-service/first-published-at.d.ts.map +1 -0
  146. package/dist/services/document-service/first-published-at.js +31 -0
  147. package/dist/services/document-service/first-published-at.js.map +1 -0
  148. package/dist/services/document-service/first-published-at.mjs +28 -0
  149. package/dist/services/document-service/first-published-at.mjs.map +1 -0
  150. package/dist/services/document-service/internationalization.d.ts +6 -1
  151. package/dist/services/document-service/internationalization.d.ts.map +1 -1
  152. package/dist/services/document-service/internationalization.js +32 -0
  153. package/dist/services/document-service/internationalization.js.map +1 -1
  154. package/dist/services/document-service/internationalization.mjs +32 -1
  155. package/dist/services/document-service/internationalization.mjs.map +1 -1
  156. package/dist/services/document-service/repository.d.ts.map +1 -1
  157. package/dist/services/document-service/repository.js +12 -8
  158. package/dist/services/document-service/repository.js.map +1 -1
  159. package/dist/services/document-service/repository.mjs +13 -9
  160. package/dist/services/document-service/repository.mjs.map +1 -1
  161. package/dist/services/entity-validator/index.d.ts.map +1 -1
  162. package/dist/services/entity-validator/index.js +9 -0
  163. package/dist/services/entity-validator/index.js.map +1 -1
  164. package/dist/services/entity-validator/index.mjs +9 -0
  165. package/dist/services/entity-validator/index.mjs.map +1 -1
  166. package/dist/services/entity-validator/validators.d.ts +1 -0
  167. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  168. package/dist/services/entity-validator/validators.js +3 -0
  169. package/dist/services/entity-validator/validators.js.map +1 -1
  170. package/dist/services/entity-validator/validators.mjs +3 -0
  171. package/dist/services/entity-validator/validators.mjs.map +1 -1
  172. package/dist/services/metrics/admin-user-hash.d.ts.map +1 -1
  173. package/dist/services/metrics/admin-user-hash.js.map +1 -1
  174. package/dist/services/metrics/admin-user-hash.mjs.map +1 -1
  175. package/dist/services/metrics/index.d.ts +1 -1
  176. package/dist/services/metrics/index.d.ts.map +1 -1
  177. package/dist/services/metrics/index.js +9 -8
  178. package/dist/services/metrics/index.js.map +1 -1
  179. package/dist/services/metrics/index.mjs +9 -8
  180. package/dist/services/metrics/index.mjs.map +1 -1
  181. package/dist/services/metrics/sender.d.ts.map +1 -1
  182. package/dist/services/metrics/sender.js +5 -5
  183. package/dist/services/metrics/sender.js.map +1 -1
  184. package/dist/services/metrics/sender.mjs +6 -6
  185. package/dist/services/metrics/sender.mjs.map +1 -1
  186. package/dist/services/server/register-routes.js +22 -2
  187. package/dist/services/server/register-routes.js.map +1 -1
  188. package/dist/services/server/register-routes.mjs +22 -2
  189. package/dist/services/server/register-routes.mjs.map +1 -1
  190. package/dist/services/server/routing.d.ts +10 -0
  191. package/dist/services/server/routing.d.ts.map +1 -1
  192. package/dist/services/server/routing.js +7 -1
  193. package/dist/services/server/routing.js.map +1 -1
  194. package/dist/services/server/routing.mjs +7 -1
  195. package/dist/services/server/routing.mjs.map +1 -1
  196. package/dist/services/utils/conditional-fields.d.ts +3 -0
  197. package/dist/services/utils/conditional-fields.d.ts.map +1 -0
  198. package/dist/services/utils/conditional-fields.js +22 -0
  199. package/dist/services/utils/conditional-fields.js.map +1 -0
  200. package/dist/services/utils/conditional-fields.mjs +20 -0
  201. package/dist/services/utils/conditional-fields.mjs.map +1 -0
  202. package/dist/utils/fetch.d.ts +5 -1
  203. package/dist/utils/fetch.d.ts.map +1 -1
  204. package/dist/utils/fetch.js +8 -4
  205. package/dist/utils/fetch.js.map +1 -1
  206. package/dist/utils/fetch.mjs +8 -4
  207. package/dist/utils/fetch.mjs.map +1 -1
  208. package/dist/utils/transform-content-types-to-models.d.ts +197 -0
  209. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  210. package/package.json +18 -14
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var name = "@strapi/core";
6
- var version = "0.0.0-experimental.82fd5bc51d11a2da848fc7fd1cc573f8ea0a6535";
6
+ var version = "0.0.0-experimental.838b114ef86c9081f990c3b46f5843a41088ec64";
7
7
  var description = "Core of Strapi";
8
8
  var homepage = "https://strapi.io";
9
9
  var bugs = {
@@ -59,14 +59,15 @@ var dependencies = {
59
59
  "@koa/cors": "5.0.0",
60
60
  "@koa/router": "12.0.2",
61
61
  "@paralleldrive/cuid2": "2.2.2",
62
- "@strapi/admin": "0.0.0-experimental.82fd5bc51d11a2da848fc7fd1cc573f8ea0a6535",
63
- "@strapi/database": "0.0.0-experimental.82fd5bc51d11a2da848fc7fd1cc573f8ea0a6535",
64
- "@strapi/generators": "0.0.0-experimental.82fd5bc51d11a2da848fc7fd1cc573f8ea0a6535",
65
- "@strapi/logger": "0.0.0-experimental.82fd5bc51d11a2da848fc7fd1cc573f8ea0a6535",
66
- "@strapi/permissions": "0.0.0-experimental.82fd5bc51d11a2da848fc7fd1cc573f8ea0a6535",
67
- "@strapi/types": "0.0.0-experimental.82fd5bc51d11a2da848fc7fd1cc573f8ea0a6535",
68
- "@strapi/typescript-utils": "0.0.0-experimental.82fd5bc51d11a2da848fc7fd1cc573f8ea0a6535",
69
- "@strapi/utils": "0.0.0-experimental.82fd5bc51d11a2da848fc7fd1cc573f8ea0a6535",
62
+ "@strapi/admin": "0.0.0-experimental.838b114ef86c9081f990c3b46f5843a41088ec64",
63
+ "@strapi/database": "0.0.0-experimental.838b114ef86c9081f990c3b46f5843a41088ec64",
64
+ "@strapi/generators": "0.0.0-experimental.838b114ef86c9081f990c3b46f5843a41088ec64",
65
+ "@strapi/logger": "0.0.0-experimental.838b114ef86c9081f990c3b46f5843a41088ec64",
66
+ "@strapi/permissions": "0.0.0-experimental.838b114ef86c9081f990c3b46f5843a41088ec64",
67
+ "@strapi/types": "0.0.0-experimental.838b114ef86c9081f990c3b46f5843a41088ec64",
68
+ "@strapi/typescript-utils": "0.0.0-experimental.838b114ef86c9081f990c3b46f5843a41088ec64",
69
+ "@strapi/utils": "0.0.0-experimental.838b114ef86c9081f990c3b46f5843a41088ec64",
70
+ "@vercel/stega": "0.1.2",
70
71
  bcryptjs: "2.4.3",
71
72
  boxen: "5.1.2",
72
73
  chalk: "4.1.2",
@@ -85,7 +86,8 @@ var dependencies = {
85
86
  "http-errors": "2.0.0",
86
87
  inquirer: "8.2.5",
87
88
  "is-docker": "2.2.1",
88
- koa: "2.15.4",
89
+ "json-logic-js": "2.0.5",
90
+ koa: "2.16.1",
89
91
  "koa-body": "6.0.1",
90
92
  "koa-compose": "4.1.0",
91
93
  "koa-compress": "5.1.1",
@@ -106,8 +108,9 @@ var dependencies = {
106
108
  semver: "7.5.4",
107
109
  statuses: "2.0.1",
108
110
  typescript: "5.4.4",
109
- undici: "6.21.1",
110
- yup: "0.32.9"
111
+ undici: "6.21.2",
112
+ yup: "0.32.9",
113
+ zod: "3.25.67"
111
114
  };
112
115
  var devDependencies = {
113
116
  "@strapi/ts-zen": "^0.2.0",
@@ -119,6 +122,7 @@ var devDependencies = {
119
122
  "@types/global-agent": "2.1.3",
120
123
  "@types/http-errors": "2.0.4",
121
124
  "@types/jest": "29.5.2",
125
+ "@types/json-logic-js": "2.0.8",
122
126
  "@types/koa": "2.13.4",
123
127
  "@types/koa-compress": "4.0.3",
124
128
  "@types/koa-session": "6.4.1",
@@ -129,9 +133,9 @@ var devDependencies = {
129
133
  "@types/node": "18.19.24",
130
134
  "@types/node-schedule": "2.1.7",
131
135
  "@types/statuses": "2.0.1",
132
- "eslint-config-custom": "0.0.0-experimental.82fd5bc51d11a2da848fc7fd1cc573f8ea0a6535",
136
+ "eslint-config-custom": "0.0.0-experimental.838b114ef86c9081f990c3b46f5843a41088ec64",
133
137
  supertest: "6.3.3",
134
- tsconfig: "0.0.0-experimental.82fd5bc51d11a2da848fc7fd1cc573f8ea0a6535"
138
+ tsconfig: "0.0.0-experimental.838b114ef86c9081f990c3b46f5843a41088ec64"
135
139
  };
136
140
  var engines = {
137
141
  node: ">=18.0.0 <=22.x.x",
@@ -1 +1 @@
1
- {"version":3,"file":"package.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"package.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,5 +1,5 @@
1
1
  var name = "@strapi/core";
2
- var version = "0.0.0-experimental.82fd5bc51d11a2da848fc7fd1cc573f8ea0a6535";
2
+ var version = "0.0.0-experimental.838b114ef86c9081f990c3b46f5843a41088ec64";
3
3
  var description = "Core of Strapi";
4
4
  var homepage = "https://strapi.io";
5
5
  var bugs = {
@@ -55,14 +55,15 @@ var dependencies = {
55
55
  "@koa/cors": "5.0.0",
56
56
  "@koa/router": "12.0.2",
57
57
  "@paralleldrive/cuid2": "2.2.2",
58
- "@strapi/admin": "0.0.0-experimental.82fd5bc51d11a2da848fc7fd1cc573f8ea0a6535",
59
- "@strapi/database": "0.0.0-experimental.82fd5bc51d11a2da848fc7fd1cc573f8ea0a6535",
60
- "@strapi/generators": "0.0.0-experimental.82fd5bc51d11a2da848fc7fd1cc573f8ea0a6535",
61
- "@strapi/logger": "0.0.0-experimental.82fd5bc51d11a2da848fc7fd1cc573f8ea0a6535",
62
- "@strapi/permissions": "0.0.0-experimental.82fd5bc51d11a2da848fc7fd1cc573f8ea0a6535",
63
- "@strapi/types": "0.0.0-experimental.82fd5bc51d11a2da848fc7fd1cc573f8ea0a6535",
64
- "@strapi/typescript-utils": "0.0.0-experimental.82fd5bc51d11a2da848fc7fd1cc573f8ea0a6535",
65
- "@strapi/utils": "0.0.0-experimental.82fd5bc51d11a2da848fc7fd1cc573f8ea0a6535",
58
+ "@strapi/admin": "0.0.0-experimental.838b114ef86c9081f990c3b46f5843a41088ec64",
59
+ "@strapi/database": "0.0.0-experimental.838b114ef86c9081f990c3b46f5843a41088ec64",
60
+ "@strapi/generators": "0.0.0-experimental.838b114ef86c9081f990c3b46f5843a41088ec64",
61
+ "@strapi/logger": "0.0.0-experimental.838b114ef86c9081f990c3b46f5843a41088ec64",
62
+ "@strapi/permissions": "0.0.0-experimental.838b114ef86c9081f990c3b46f5843a41088ec64",
63
+ "@strapi/types": "0.0.0-experimental.838b114ef86c9081f990c3b46f5843a41088ec64",
64
+ "@strapi/typescript-utils": "0.0.0-experimental.838b114ef86c9081f990c3b46f5843a41088ec64",
65
+ "@strapi/utils": "0.0.0-experimental.838b114ef86c9081f990c3b46f5843a41088ec64",
66
+ "@vercel/stega": "0.1.2",
66
67
  bcryptjs: "2.4.3",
67
68
  boxen: "5.1.2",
68
69
  chalk: "4.1.2",
@@ -81,7 +82,8 @@ var dependencies = {
81
82
  "http-errors": "2.0.0",
82
83
  inquirer: "8.2.5",
83
84
  "is-docker": "2.2.1",
84
- koa: "2.15.4",
85
+ "json-logic-js": "2.0.5",
86
+ koa: "2.16.1",
85
87
  "koa-body": "6.0.1",
86
88
  "koa-compose": "4.1.0",
87
89
  "koa-compress": "5.1.1",
@@ -102,8 +104,9 @@ var dependencies = {
102
104
  semver: "7.5.4",
103
105
  statuses: "2.0.1",
104
106
  typescript: "5.4.4",
105
- undici: "6.21.1",
106
- yup: "0.32.9"
107
+ undici: "6.21.2",
108
+ yup: "0.32.9",
109
+ zod: "3.25.67"
107
110
  };
108
111
  var devDependencies = {
109
112
  "@strapi/ts-zen": "^0.2.0",
@@ -115,6 +118,7 @@ var devDependencies = {
115
118
  "@types/global-agent": "2.1.3",
116
119
  "@types/http-errors": "2.0.4",
117
120
  "@types/jest": "29.5.2",
121
+ "@types/json-logic-js": "2.0.8",
118
122
  "@types/koa": "2.13.4",
119
123
  "@types/koa-compress": "4.0.3",
120
124
  "@types/koa-session": "6.4.1",
@@ -125,9 +129,9 @@ var devDependencies = {
125
129
  "@types/node": "18.19.24",
126
130
  "@types/node-schedule": "2.1.7",
127
131
  "@types/statuses": "2.0.1",
128
- "eslint-config-custom": "0.0.0-experimental.82fd5bc51d11a2da848fc7fd1cc573f8ea0a6535",
132
+ "eslint-config-custom": "0.0.0-experimental.838b114ef86c9081f990c3b46f5843a41088ec64",
129
133
  supertest: "6.3.3",
130
- tsconfig: "0.0.0-experimental.82fd5bc51d11a2da848fc7fd1cc573f8ea0a6535"
134
+ tsconfig: "0.0.0-experimental.838b114ef86c9081f990c3b46f5843a41088ec64"
131
135
  };
132
136
  var engines = {
133
137
  node: ">=18.0.0 <=22.x.x",
@@ -1 +1 @@
1
- {"version":3,"file":"package.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"package.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,18 @@
1
+ import type { Core, Struct } from '@strapi/types';
2
+ declare const createContentSourceMapsService: (strapi: Core.Strapi) => {
3
+ encodeField(text: string, key: string): string;
4
+ encodeEntry(options: {
5
+ entryRootId: any;
6
+ entryRootModel: string;
7
+ entryData: any;
8
+ model: any;
9
+ }): Promise<any>;
10
+ encodeSourceMaps(options: {
11
+ data: any;
12
+ contentType: Struct.ContentTypeSchema;
13
+ rootId?: any;
14
+ rootModel?: string;
15
+ }): Promise<any>;
16
+ };
17
+ export { createContentSourceMapsService };
18
+ //# sourceMappingURL=content-source-maps.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-source-maps.d.ts","sourceRoot":"","sources":["../../src/services/content-source-maps.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AA2BlD,QAAA,MAAM,8BAA8B,WAAY,KAAK,MAAM;sBAErC,MAAM,OAAO,MAAM,GAAG,MAAM;yBAQnB;QACzB,WAAW,EAAE,GAAG,CAAC;QACjB,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,GAAG,CAAC;QACf,KAAK,EAAE,GAAG,CAAC;KACZ,GAAG,QAAQ,GAAG,CAAC;8BA2HgB;QAC9B,IAAI,EAAE,GAAG,CAAC;QACV,WAAW,EAAE,OAAO,iBAAiB,CAAC;QACtC,MAAM,CAAC,EAAE,GAAG,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,QAAQ,GAAG,CAAC;CA6BnB,CAAC;AAEF,OAAO,EAAE,8BAA8B,EAAE,CAAC"}
@@ -0,0 +1,158 @@
1
+ 'use strict';
2
+
3
+ var stega = require('@vercel/stega');
4
+
5
+ const ENCODABLE_TYPES = [
6
+ 'string',
7
+ 'text',
8
+ 'richtext',
9
+ 'uid',
10
+ 'enumeration',
11
+ 'email',
12
+ 'date',
13
+ 'datetime',
14
+ 'time',
15
+ 'timestamp'
16
+ ];
17
+ const EXCLUDED_FIELDS = [
18
+ 'id',
19
+ 'documentId',
20
+ 'locale',
21
+ 'localizations',
22
+ 'created_by',
23
+ 'updated_by',
24
+ 'created_at',
25
+ 'updated_at',
26
+ 'publishedAt'
27
+ ];
28
+ const createContentSourceMapsService = (strapi)=>{
29
+ return {
30
+ encodeField (text, key) {
31
+ const res = stega.vercelStegaCombine(text, {
32
+ // TODO: smarter metadata than just the key
33
+ key
34
+ });
35
+ return res;
36
+ },
37
+ async encodeEntry (options) {
38
+ const { entryRootId, entryRootModel, entryData, model } = options;
39
+ if (typeof entryData !== 'object' || entryData === null || entryData === undefined) {
40
+ return entryData;
41
+ }
42
+ const encodedData = {
43
+ ...entryData
44
+ };
45
+ await Promise.all(Object.keys(entryData).map(async (key)=>{
46
+ const value = entryData[key];
47
+ if (value === null || value === undefined) {
48
+ return;
49
+ }
50
+ const attribute = model.attributes[key];
51
+ if (!attribute || EXCLUDED_FIELDS.includes(key)) {
52
+ return;
53
+ }
54
+ if (ENCODABLE_TYPES.includes(attribute.type)) {
55
+ encodedData[key] = this.encodeField(value, // TODO: smarter metadata than just the key
56
+ key);
57
+ }
58
+ if (attribute.type === 'component') {
59
+ const componentModel = strapi.getModel(attribute.component);
60
+ if (Array.isArray(value)) {
61
+ encodedData[key] = await Promise.all(value.map((item)=>this.encodeEntry({
62
+ entryRootId,
63
+ entryRootModel,
64
+ entryData: item,
65
+ model: componentModel
66
+ })));
67
+ }
68
+ encodedData[key] = await this.encodeEntry({
69
+ entryRootId,
70
+ entryRootModel,
71
+ entryData: value,
72
+ model: componentModel
73
+ });
74
+ }
75
+ if (attribute.type === 'dynamiczone' && Array.isArray(value)) {
76
+ encodedData[key] = await Promise.all(value.map((item)=>this.encodeEntry({
77
+ entryRootId,
78
+ entryRootModel,
79
+ entryData: item,
80
+ model: strapi.getModel(item.__component)
81
+ })));
82
+ }
83
+ if (attribute.type === 'relation' && 'target' in attribute) {
84
+ const relatedModel = strapi.getModel(attribute.target);
85
+ if (Array.isArray(value)) {
86
+ encodedData[key] = await Promise.all(value.map((item)=>this.encodeEntry({
87
+ entryRootId: item.id,
88
+ entryRootModel: relatedModel.uid,
89
+ entryData: item,
90
+ model: strapi.getModel(attribute.target)
91
+ })));
92
+ }
93
+ encodedData[key] = await this.encodeEntry({
94
+ entryRootId: value.id,
95
+ entryRootModel: relatedModel.uid,
96
+ entryData: value,
97
+ model: strapi.getModel(attribute.target)
98
+ });
99
+ }
100
+ if (attribute.type === 'media') {
101
+ const fileModel = strapi.getModel('plugin::upload.file');
102
+ if (Array.isArray(value.data)) {
103
+ const encodedMediaData = await Promise.all(value.data.map((item)=>this.encodeEntry({
104
+ entryRootId,
105
+ entryRootModel,
106
+ entryData: item,
107
+ model: fileModel
108
+ })));
109
+ encodedData[key] = {
110
+ ...value,
111
+ data: encodedMediaData
112
+ };
113
+ } else {
114
+ const encodedMediaItem = await this.encodeEntry({
115
+ entryRootId,
116
+ entryRootModel,
117
+ entryData: value.data,
118
+ model: fileModel
119
+ });
120
+ encodedData[key] = {
121
+ ...value,
122
+ data: encodedMediaItem
123
+ };
124
+ }
125
+ }
126
+ }));
127
+ return encodedData;
128
+ },
129
+ async encodeSourceMaps (options) {
130
+ const { data, contentType, rootId, rootModel } = options;
131
+ try {
132
+ if (Array.isArray(data)) {
133
+ return await Promise.all(data.map((item)=>this.encodeSourceMaps({
134
+ data: item,
135
+ contentType
136
+ })));
137
+ }
138
+ if (typeof data !== 'object' || data === null) {
139
+ return data;
140
+ }
141
+ const actualRootId = rootId || data.id;
142
+ const actualRootModel = rootModel || contentType.uid;
143
+ return await this.encodeEntry({
144
+ entryRootId: actualRootId,
145
+ entryRootModel: actualRootModel,
146
+ entryData: data,
147
+ model: contentType
148
+ });
149
+ } catch (error) {
150
+ strapi.log.error('Error encoding source maps:', error);
151
+ return data;
152
+ }
153
+ }
154
+ };
155
+ };
156
+
157
+ exports.createContentSourceMapsService = createContentSourceMapsService;
158
+ //# sourceMappingURL=content-source-maps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-source-maps.js","sources":["../../src/services/content-source-maps.ts"],"sourcesContent":["import { vercelStegaCombine } from '@vercel/stega';\nimport type { Core, Struct } from '@strapi/types';\n\nconst ENCODABLE_TYPES = [\n 'string',\n 'text',\n 'richtext',\n 'uid',\n 'enumeration',\n 'email',\n 'date',\n 'datetime',\n 'time',\n 'timestamp',\n];\n\nconst EXCLUDED_FIELDS = [\n 'id',\n 'documentId',\n 'locale',\n 'localizations',\n 'created_by',\n 'updated_by',\n 'created_at',\n 'updated_at',\n 'publishedAt',\n];\n\nconst createContentSourceMapsService = (strapi: Core.Strapi) => {\n return {\n encodeField(text: string, key: string): string {\n const res = vercelStegaCombine(text, {\n // TODO: smarter metadata than just the key\n key,\n });\n return res;\n },\n\n async encodeEntry(options: {\n entryRootId: any;\n entryRootModel: string;\n entryData: any;\n model: any;\n }): Promise<any> {\n const { entryRootId, entryRootModel, entryData, model } = options;\n\n if (typeof entryData !== 'object' || entryData === null || entryData === undefined) {\n return entryData;\n }\n\n const encodedData = { ...entryData };\n\n await Promise.all(\n Object.keys(entryData).map(async (key) => {\n const value = entryData[key];\n\n if (value === null || value === undefined) {\n return;\n }\n\n const attribute = model.attributes[key];\n\n if (!attribute || EXCLUDED_FIELDS.includes(key)) {\n return;\n }\n\n if (ENCODABLE_TYPES.includes(attribute.type)) {\n encodedData[key] = this.encodeField(\n value,\n // TODO: smarter metadata than just the key\n key\n );\n }\n\n if (attribute.type === 'component') {\n const componentModel = strapi.getModel(attribute.component);\n\n if (Array.isArray(value)) {\n encodedData[key] = await Promise.all(\n value.map((item) =>\n this.encodeEntry({\n entryRootId,\n entryRootModel,\n entryData: item,\n model: componentModel,\n })\n )\n );\n }\n\n encodedData[key] = await this.encodeEntry({\n entryRootId,\n entryRootModel,\n entryData: value,\n model: componentModel,\n });\n }\n\n if (attribute.type === 'dynamiczone' && Array.isArray(value)) {\n encodedData[key] = await Promise.all(\n value.map((item) =>\n this.encodeEntry({\n entryRootId,\n entryRootModel,\n entryData: item,\n model: strapi.getModel(item.__component),\n })\n )\n );\n }\n\n if (attribute.type === 'relation' && 'target' in attribute) {\n const relatedModel = strapi.getModel(attribute.target);\n\n if (Array.isArray(value)) {\n encodedData[key] = await Promise.all(\n value.map((item: any) =>\n this.encodeEntry({\n entryRootId: item.id,\n entryRootModel: relatedModel.uid,\n entryData: item,\n model: strapi.getModel(attribute.target),\n })\n )\n );\n }\n\n encodedData[key] = await this.encodeEntry({\n entryRootId: value.id,\n entryRootModel: relatedModel.uid,\n entryData: value,\n model: strapi.getModel(attribute.target),\n });\n }\n\n if (attribute.type === 'media') {\n const fileModel = strapi.getModel('plugin::upload.file');\n\n if (Array.isArray(value.data)) {\n const encodedMediaData = await Promise.all(\n value.data.map((item: any) =>\n this.encodeEntry({\n entryRootId,\n entryRootModel,\n entryData: item,\n model: fileModel,\n })\n )\n );\n encodedData[key] = { ...value, data: encodedMediaData };\n } else {\n const encodedMediaItem = await this.encodeEntry({\n entryRootId,\n entryRootModel,\n entryData: value.data,\n model: fileModel,\n });\n encodedData[key] = { ...value, data: encodedMediaItem };\n }\n }\n })\n );\n\n return encodedData;\n },\n\n async encodeSourceMaps(options: {\n data: any;\n contentType: Struct.ContentTypeSchema;\n rootId?: any;\n rootModel?: string;\n }): Promise<any> {\n const { data, contentType, rootId, rootModel } = options;\n\n try {\n if (Array.isArray(data)) {\n return await Promise.all(\n data.map((item) => this.encodeSourceMaps({ data: item, contentType }))\n );\n }\n\n if (typeof data !== 'object' || data === null) {\n return data;\n }\n\n const actualRootId = rootId || data.id;\n const actualRootModel = rootModel || contentType.uid;\n\n return await this.encodeEntry({\n entryRootId: actualRootId,\n entryRootModel: actualRootModel,\n entryData: data,\n model: contentType,\n });\n } catch (error) {\n strapi.log.error('Error encoding source maps:', error);\n return data;\n }\n },\n };\n};\n\nexport { createContentSourceMapsService };\n"],"names":["ENCODABLE_TYPES","EXCLUDED_FIELDS","createContentSourceMapsService","strapi","encodeField","text","key","res","vercelStegaCombine","encodeEntry","options","entryRootId","entryRootModel","entryData","model","undefined","encodedData","Promise","all","Object","keys","map","value","attribute","attributes","includes","type","componentModel","getModel","component","Array","isArray","item","__component","relatedModel","target","id","uid","fileModel","data","encodedMediaData","encodedMediaItem","encodeSourceMaps","contentType","rootId","rootModel","actualRootId","actualRootModel","error","log"],"mappings":"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"}
@@ -0,0 +1,156 @@
1
+ import { vercelStegaCombine } from '@vercel/stega';
2
+
3
+ const ENCODABLE_TYPES = [
4
+ 'string',
5
+ 'text',
6
+ 'richtext',
7
+ 'uid',
8
+ 'enumeration',
9
+ 'email',
10
+ 'date',
11
+ 'datetime',
12
+ 'time',
13
+ 'timestamp'
14
+ ];
15
+ const EXCLUDED_FIELDS = [
16
+ 'id',
17
+ 'documentId',
18
+ 'locale',
19
+ 'localizations',
20
+ 'created_by',
21
+ 'updated_by',
22
+ 'created_at',
23
+ 'updated_at',
24
+ 'publishedAt'
25
+ ];
26
+ const createContentSourceMapsService = (strapi)=>{
27
+ return {
28
+ encodeField (text, key) {
29
+ const res = vercelStegaCombine(text, {
30
+ // TODO: smarter metadata than just the key
31
+ key
32
+ });
33
+ return res;
34
+ },
35
+ async encodeEntry (options) {
36
+ const { entryRootId, entryRootModel, entryData, model } = options;
37
+ if (typeof entryData !== 'object' || entryData === null || entryData === undefined) {
38
+ return entryData;
39
+ }
40
+ const encodedData = {
41
+ ...entryData
42
+ };
43
+ await Promise.all(Object.keys(entryData).map(async (key)=>{
44
+ const value = entryData[key];
45
+ if (value === null || value === undefined) {
46
+ return;
47
+ }
48
+ const attribute = model.attributes[key];
49
+ if (!attribute || EXCLUDED_FIELDS.includes(key)) {
50
+ return;
51
+ }
52
+ if (ENCODABLE_TYPES.includes(attribute.type)) {
53
+ encodedData[key] = this.encodeField(value, // TODO: smarter metadata than just the key
54
+ key);
55
+ }
56
+ if (attribute.type === 'component') {
57
+ const componentModel = strapi.getModel(attribute.component);
58
+ if (Array.isArray(value)) {
59
+ encodedData[key] = await Promise.all(value.map((item)=>this.encodeEntry({
60
+ entryRootId,
61
+ entryRootModel,
62
+ entryData: item,
63
+ model: componentModel
64
+ })));
65
+ }
66
+ encodedData[key] = await this.encodeEntry({
67
+ entryRootId,
68
+ entryRootModel,
69
+ entryData: value,
70
+ model: componentModel
71
+ });
72
+ }
73
+ if (attribute.type === 'dynamiczone' && Array.isArray(value)) {
74
+ encodedData[key] = await Promise.all(value.map((item)=>this.encodeEntry({
75
+ entryRootId,
76
+ entryRootModel,
77
+ entryData: item,
78
+ model: strapi.getModel(item.__component)
79
+ })));
80
+ }
81
+ if (attribute.type === 'relation' && 'target' in attribute) {
82
+ const relatedModel = strapi.getModel(attribute.target);
83
+ if (Array.isArray(value)) {
84
+ encodedData[key] = await Promise.all(value.map((item)=>this.encodeEntry({
85
+ entryRootId: item.id,
86
+ entryRootModel: relatedModel.uid,
87
+ entryData: item,
88
+ model: strapi.getModel(attribute.target)
89
+ })));
90
+ }
91
+ encodedData[key] = await this.encodeEntry({
92
+ entryRootId: value.id,
93
+ entryRootModel: relatedModel.uid,
94
+ entryData: value,
95
+ model: strapi.getModel(attribute.target)
96
+ });
97
+ }
98
+ if (attribute.type === 'media') {
99
+ const fileModel = strapi.getModel('plugin::upload.file');
100
+ if (Array.isArray(value.data)) {
101
+ const encodedMediaData = await Promise.all(value.data.map((item)=>this.encodeEntry({
102
+ entryRootId,
103
+ entryRootModel,
104
+ entryData: item,
105
+ model: fileModel
106
+ })));
107
+ encodedData[key] = {
108
+ ...value,
109
+ data: encodedMediaData
110
+ };
111
+ } else {
112
+ const encodedMediaItem = await this.encodeEntry({
113
+ entryRootId,
114
+ entryRootModel,
115
+ entryData: value.data,
116
+ model: fileModel
117
+ });
118
+ encodedData[key] = {
119
+ ...value,
120
+ data: encodedMediaItem
121
+ };
122
+ }
123
+ }
124
+ }));
125
+ return encodedData;
126
+ },
127
+ async encodeSourceMaps (options) {
128
+ const { data, contentType, rootId, rootModel } = options;
129
+ try {
130
+ if (Array.isArray(data)) {
131
+ return await Promise.all(data.map((item)=>this.encodeSourceMaps({
132
+ data: item,
133
+ contentType
134
+ })));
135
+ }
136
+ if (typeof data !== 'object' || data === null) {
137
+ return data;
138
+ }
139
+ const actualRootId = rootId || data.id;
140
+ const actualRootModel = rootModel || contentType.uid;
141
+ return await this.encodeEntry({
142
+ entryRootId: actualRootId,
143
+ entryRootModel: actualRootModel,
144
+ entryData: data,
145
+ model: contentType
146
+ });
147
+ } catch (error) {
148
+ strapi.log.error('Error encoding source maps:', error);
149
+ return data;
150
+ }
151
+ }
152
+ };
153
+ };
154
+
155
+ export { createContentSourceMapsService };
156
+ //# sourceMappingURL=content-source-maps.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-source-maps.mjs","sources":["../../src/services/content-source-maps.ts"],"sourcesContent":["import { vercelStegaCombine } from '@vercel/stega';\nimport type { Core, Struct } from '@strapi/types';\n\nconst ENCODABLE_TYPES = [\n 'string',\n 'text',\n 'richtext',\n 'uid',\n 'enumeration',\n 'email',\n 'date',\n 'datetime',\n 'time',\n 'timestamp',\n];\n\nconst EXCLUDED_FIELDS = [\n 'id',\n 'documentId',\n 'locale',\n 'localizations',\n 'created_by',\n 'updated_by',\n 'created_at',\n 'updated_at',\n 'publishedAt',\n];\n\nconst createContentSourceMapsService = (strapi: Core.Strapi) => {\n return {\n encodeField(text: string, key: string): string {\n const res = vercelStegaCombine(text, {\n // TODO: smarter metadata than just the key\n key,\n });\n return res;\n },\n\n async encodeEntry(options: {\n entryRootId: any;\n entryRootModel: string;\n entryData: any;\n model: any;\n }): Promise<any> {\n const { entryRootId, entryRootModel, entryData, model } = options;\n\n if (typeof entryData !== 'object' || entryData === null || entryData === undefined) {\n return entryData;\n }\n\n const encodedData = { ...entryData };\n\n await Promise.all(\n Object.keys(entryData).map(async (key) => {\n const value = entryData[key];\n\n if (value === null || value === undefined) {\n return;\n }\n\n const attribute = model.attributes[key];\n\n if (!attribute || EXCLUDED_FIELDS.includes(key)) {\n return;\n }\n\n if (ENCODABLE_TYPES.includes(attribute.type)) {\n encodedData[key] = this.encodeField(\n value,\n // TODO: smarter metadata than just the key\n key\n );\n }\n\n if (attribute.type === 'component') {\n const componentModel = strapi.getModel(attribute.component);\n\n if (Array.isArray(value)) {\n encodedData[key] = await Promise.all(\n value.map((item) =>\n this.encodeEntry({\n entryRootId,\n entryRootModel,\n entryData: item,\n model: componentModel,\n })\n )\n );\n }\n\n encodedData[key] = await this.encodeEntry({\n entryRootId,\n entryRootModel,\n entryData: value,\n model: componentModel,\n });\n }\n\n if (attribute.type === 'dynamiczone' && Array.isArray(value)) {\n encodedData[key] = await Promise.all(\n value.map((item) =>\n this.encodeEntry({\n entryRootId,\n entryRootModel,\n entryData: item,\n model: strapi.getModel(item.__component),\n })\n )\n );\n }\n\n if (attribute.type === 'relation' && 'target' in attribute) {\n const relatedModel = strapi.getModel(attribute.target);\n\n if (Array.isArray(value)) {\n encodedData[key] = await Promise.all(\n value.map((item: any) =>\n this.encodeEntry({\n entryRootId: item.id,\n entryRootModel: relatedModel.uid,\n entryData: item,\n model: strapi.getModel(attribute.target),\n })\n )\n );\n }\n\n encodedData[key] = await this.encodeEntry({\n entryRootId: value.id,\n entryRootModel: relatedModel.uid,\n entryData: value,\n model: strapi.getModel(attribute.target),\n });\n }\n\n if (attribute.type === 'media') {\n const fileModel = strapi.getModel('plugin::upload.file');\n\n if (Array.isArray(value.data)) {\n const encodedMediaData = await Promise.all(\n value.data.map((item: any) =>\n this.encodeEntry({\n entryRootId,\n entryRootModel,\n entryData: item,\n model: fileModel,\n })\n )\n );\n encodedData[key] = { ...value, data: encodedMediaData };\n } else {\n const encodedMediaItem = await this.encodeEntry({\n entryRootId,\n entryRootModel,\n entryData: value.data,\n model: fileModel,\n });\n encodedData[key] = { ...value, data: encodedMediaItem };\n }\n }\n })\n );\n\n return encodedData;\n },\n\n async encodeSourceMaps(options: {\n data: any;\n contentType: Struct.ContentTypeSchema;\n rootId?: any;\n rootModel?: string;\n }): Promise<any> {\n const { data, contentType, rootId, rootModel } = options;\n\n try {\n if (Array.isArray(data)) {\n return await Promise.all(\n data.map((item) => this.encodeSourceMaps({ data: item, contentType }))\n );\n }\n\n if (typeof data !== 'object' || data === null) {\n return data;\n }\n\n const actualRootId = rootId || data.id;\n const actualRootModel = rootModel || contentType.uid;\n\n return await this.encodeEntry({\n entryRootId: actualRootId,\n entryRootModel: actualRootModel,\n entryData: data,\n model: contentType,\n });\n } catch (error) {\n strapi.log.error('Error encoding source maps:', error);\n return data;\n }\n },\n };\n};\n\nexport { createContentSourceMapsService };\n"],"names":["ENCODABLE_TYPES","EXCLUDED_FIELDS","createContentSourceMapsService","strapi","encodeField","text","key","res","vercelStegaCombine","encodeEntry","options","entryRootId","entryRootModel","entryData","model","undefined","encodedData","Promise","all","Object","keys","map","value","attribute","attributes","includes","type","componentModel","getModel","component","Array","isArray","item","__component","relatedModel","target","id","uid","fileModel","data","encodedMediaData","encodedMediaItem","encodeSourceMaps","contentType","rootId","rootModel","actualRootId","actualRootModel","error","log"],"mappings":"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"}
@@ -18,11 +18,11 @@ type GetParams = {
18
18
  type Params = SetParams & GetParams;
19
19
  interface CoreStore {
20
20
  (defaultParams: Partial<Params>): {
21
- get(params: Partial<GetParams>): Promise<unknown>;
21
+ get<T = unknown>(params: Partial<GetParams>): Promise<T>;
22
22
  set(params: Partial<SetParams>): Promise<void>;
23
23
  delete(params: Partial<GetParams>): Promise<void>;
24
24
  };
25
- get(params: GetParams): Promise<unknown>;
25
+ get<T = unknown>(params: GetParams): Promise<T>;
26
26
  set(params: SetParams): Promise<void>;
27
27
  delete(params: GetParams): Promise<void>;
28
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"core-store.d.ts","sourceRoot":"","sources":["../../src/services/core-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAExD,QAAA,MAAM,cAAc,EAAE,KAwBrB,CAAC;AAEF,KAAK,SAAS,GAAG;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,SAAS,GAAG;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AAEpC,UAAU,SAAS;IACjB,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG;QAChC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;QAClD,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KACnD,CAAC;IACF,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1C;AAED,QAAA,MAAM,eAAe,WAAY;IAAE,EAAE,EAAE,QAAQ,CAAA;CAAE,cA+GhD,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"core-store.d.ts","sourceRoot":"","sources":["../../src/services/core-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAExD,QAAA,MAAM,cAAc,EAAE,KAwBrB,CAAC;AAEF,KAAK,SAAS,GAAG;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,SAAS,GAAG;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;AAEpC,UAAU,SAAS;IACjB,CAAC,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG;QAChC,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACzD,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KACnD,CAAC;IACF,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAChD,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1C;AAED,QAAA,MAAM,eAAe,WAAY;IAAE,EAAE,EAAE,QAAQ,CAAA;CAAE,cA+GhD,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"core-store.js","sources":["../../src/services/core-store.ts"],"sourcesContent":["import { toString } from 'lodash/fp';\nimport type { Database, Model } from '@strapi/database';\n\nconst coreStoreModel: Model = {\n uid: 'strapi::core-store',\n singularName: 'strapi_core_store_settings',\n tableName: 'strapi_core_store_settings',\n attributes: {\n id: {\n type: 'increments',\n },\n key: {\n type: 'string',\n },\n value: {\n type: 'text',\n },\n type: {\n type: 'string',\n },\n environment: {\n type: 'string',\n },\n tag: {\n type: 'string',\n },\n },\n};\n\ntype SetParams = {\n key: string;\n value: unknown;\n type?: string;\n environment?: string;\n name?: string;\n tag?: string;\n};\n\ntype GetParams = {\n key: string;\n type?: string;\n environment?: string;\n name?: string;\n tag?: string;\n};\n\ntype Params = SetParams & GetParams;\n\ninterface CoreStore {\n (defaultParams: Partial<Params>): {\n get(params: Partial<GetParams>): Promise<unknown>;\n set(params: Partial<SetParams>): Promise<void>;\n delete(params: Partial<GetParams>): Promise<void>;\n };\n get(params: GetParams): Promise<unknown>;\n set(params: SetParams): Promise<void>;\n delete(params: GetParams): Promise<void>;\n}\n\nconst createCoreStore = ({ db }: { db: Database }) => {\n const mergeParams = (defaultParams: Partial<Params>, params: Params): Params => {\n return {\n ...defaultParams,\n ...params,\n };\n };\n\n const store: CoreStore = function (defaultParams: Partial<Params>) {\n return {\n get: (params: Params) => store.get(mergeParams(defaultParams, params)),\n set: (params: Params) => store.set(mergeParams(defaultParams, params)),\n delete: (params: Params) => store.delete(mergeParams(defaultParams, params)),\n };\n };\n\n /**\n * Get value from the core store\n */\n store.get = async (params) => {\n const { key, type = 'core', environment, name, tag } = params;\n\n const prefix = `${type}${name ? `_${name}` : ''}`;\n\n const where = {\n key: `${prefix}_${key}`,\n environment: environment || null,\n tag: tag || null,\n };\n\n const data = await db.query('strapi::core-store').findOne({ where });\n\n if (!data) {\n return null;\n }\n\n if (\n data.type === 'object' ||\n data.type === 'array' ||\n data.type === 'boolean' ||\n data.type === 'string'\n ) {\n try {\n return JSON.parse(data.value);\n } catch (err) {\n return new Date(data.value);\n }\n } else if (data.type === 'number') {\n return Number(data.value);\n } else {\n return null;\n }\n };\n\n /**\n * Set value in the core store\n * @param {Object} params\n * @returns {*}\n */\n store.set = async (params) => {\n const { key, value, type, environment, name, tag } = params;\n\n const prefix = `${type}${name ? `_${name}` : ''}`;\n\n const where = {\n key: `${prefix}_${key}`,\n environment: environment || null,\n tag: tag || null,\n };\n\n const data = await db.query('strapi::core-store').findOne({ where });\n\n if (data) {\n return db.query('strapi::core-store').update({\n where: { id: data.id },\n data: {\n value: JSON.stringify(value) || toString(value),\n type: typeof value,\n },\n });\n }\n\n return db.query('strapi::core-store').create({\n data: {\n ...where,\n value: JSON.stringify(value) || toString(value),\n type: typeof value,\n },\n });\n };\n\n /**\n * Deletes a value from the core store\n * @param {Object} params\n * @returns {*}\n */\n store.delete = async (params) => {\n const { key, environment, type, name, tag } = params;\n\n const prefix = `${type}${name ? `_${name}` : ''}`;\n\n const where = {\n key: `${prefix}_${key}`,\n environment: environment || null,\n tag: tag || null,\n };\n\n return db.query('strapi::core-store').delete({ where });\n };\n\n return store;\n};\n\nexport { coreStoreModel, createCoreStore };\n"],"names":["coreStoreModel","uid","singularName","tableName","attributes","id","type","key","value","environment","tag","createCoreStore","db","mergeParams","defaultParams","params","store","get","set","delete","name","prefix","where","data","query","findOne","JSON","parse","err","Date","Number","update","stringify","toString","create"],"mappings":"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"}
1
+ {"version":3,"file":"core-store.js","sources":["../../src/services/core-store.ts"],"sourcesContent":["import { toString } from 'lodash/fp';\nimport type { Database, Model } from '@strapi/database';\n\nconst coreStoreModel: Model = {\n uid: 'strapi::core-store',\n singularName: 'strapi_core_store_settings',\n tableName: 'strapi_core_store_settings',\n attributes: {\n id: {\n type: 'increments',\n },\n key: {\n type: 'string',\n },\n value: {\n type: 'text',\n },\n type: {\n type: 'string',\n },\n environment: {\n type: 'string',\n },\n tag: {\n type: 'string',\n },\n },\n};\n\ntype SetParams = {\n key: string;\n value: unknown;\n type?: string;\n environment?: string;\n name?: string;\n tag?: string;\n};\n\ntype GetParams = {\n key: string;\n type?: string;\n environment?: string;\n name?: string;\n tag?: string;\n};\n\ntype Params = SetParams & GetParams;\n\ninterface CoreStore {\n (defaultParams: Partial<Params>): {\n get<T = unknown>(params: Partial<GetParams>): Promise<T>;\n set(params: Partial<SetParams>): Promise<void>;\n delete(params: Partial<GetParams>): Promise<void>;\n };\n get<T = unknown>(params: GetParams): Promise<T>;\n set(params: SetParams): Promise<void>;\n delete(params: GetParams): Promise<void>;\n}\n\nconst createCoreStore = ({ db }: { db: Database }) => {\n const mergeParams = (defaultParams: Partial<Params>, params: Params): Params => {\n return {\n ...defaultParams,\n ...params,\n };\n };\n\n const store: CoreStore = function (defaultParams: Partial<Params>) {\n return {\n get: (params: Params) => store.get(mergeParams(defaultParams, params)),\n set: (params: Params) => store.set(mergeParams(defaultParams, params)),\n delete: (params: Params) => store.delete(mergeParams(defaultParams, params)),\n };\n };\n\n /**\n * Get value from the core store\n */\n store.get = async (params) => {\n const { key, type = 'core', environment, name, tag } = params;\n\n const prefix = `${type}${name ? `_${name}` : ''}`;\n\n const where = {\n key: `${prefix}_${key}`,\n environment: environment || null,\n tag: tag || null,\n };\n\n const data = await db.query('strapi::core-store').findOne({ where });\n\n if (!data) {\n return null;\n }\n\n if (\n data.type === 'object' ||\n data.type === 'array' ||\n data.type === 'boolean' ||\n data.type === 'string'\n ) {\n try {\n return JSON.parse(data.value);\n } catch (err) {\n return new Date(data.value);\n }\n } else if (data.type === 'number') {\n return Number(data.value);\n } else {\n return null;\n }\n };\n\n /**\n * Set value in the core store\n * @param {Object} params\n * @returns {*}\n */\n store.set = async (params) => {\n const { key, value, type, environment, name, tag } = params;\n\n const prefix = `${type}${name ? `_${name}` : ''}`;\n\n const where = {\n key: `${prefix}_${key}`,\n environment: environment || null,\n tag: tag || null,\n };\n\n const data = await db.query('strapi::core-store').findOne({ where });\n\n if (data) {\n return db.query('strapi::core-store').update({\n where: { id: data.id },\n data: {\n value: JSON.stringify(value) || toString(value),\n type: typeof value,\n },\n });\n }\n\n return db.query('strapi::core-store').create({\n data: {\n ...where,\n value: JSON.stringify(value) || toString(value),\n type: typeof value,\n },\n });\n };\n\n /**\n * Deletes a value from the core store\n * @param {Object} params\n * @returns {*}\n */\n store.delete = async (params) => {\n const { key, environment, type, name, tag } = params;\n\n const prefix = `${type}${name ? `_${name}` : ''}`;\n\n const where = {\n key: `${prefix}_${key}`,\n environment: environment || null,\n tag: tag || null,\n };\n\n return db.query('strapi::core-store').delete({ where });\n };\n\n return store;\n};\n\nexport { coreStoreModel, createCoreStore };\n"],"names":["coreStoreModel","uid","singularName","tableName","attributes","id","type","key","value","environment","tag","createCoreStore","db","mergeParams","defaultParams","params","store","get","set","delete","name","prefix","where","data","query","findOne","JSON","parse","err","Date","Number","update","stringify","toString","create"],"mappings":"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"}