@strapi/core 0.0.0-next.69e2ba3406b9409abc96eb4e19c3184ba6e49d98 → 0.0.0-next.6a38f974ec7350286f5c323503fb1e90c54da7ca

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 (193) hide show
  1. package/dist/Strapi.d.ts.map +1 -1
  2. package/dist/Strapi.js +2 -0
  3. package/dist/Strapi.js.map +1 -1
  4. package/dist/Strapi.mjs +2 -0
  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/routes/index.d.ts +4 -22
  18. package/dist/core-api/routes/index.d.ts.map +1 -1
  19. package/dist/core-api/routes/index.js +150 -8
  20. package/dist/core-api/routes/index.js.map +1 -1
  21. package/dist/core-api/routes/index.mjs +131 -8
  22. package/dist/core-api/routes/index.mjs.map +1 -1
  23. package/dist/core-api/routes/validation/attributes.d.ts +244 -0
  24. package/dist/core-api/routes/validation/attributes.d.ts.map +1 -0
  25. package/dist/core-api/routes/validation/attributes.js +560 -0
  26. package/dist/core-api/routes/validation/attributes.js.map +1 -0
  27. package/dist/core-api/routes/validation/attributes.mjs +521 -0
  28. package/dist/core-api/routes/validation/attributes.mjs.map +1 -0
  29. package/dist/core-api/routes/validation/common.d.ts +105 -0
  30. package/dist/core-api/routes/validation/common.d.ts.map +1 -0
  31. package/dist/core-api/routes/validation/common.js +116 -0
  32. package/dist/core-api/routes/validation/common.js.map +1 -0
  33. package/dist/core-api/routes/validation/common.mjs +95 -0
  34. package/dist/core-api/routes/validation/common.mjs.map +1 -0
  35. package/dist/core-api/routes/validation/component.d.ts +34 -0
  36. package/dist/core-api/routes/validation/component.d.ts.map +1 -0
  37. package/dist/core-api/routes/validation/component.js +45 -0
  38. package/dist/core-api/routes/validation/component.js.map +1 -0
  39. package/dist/core-api/routes/validation/component.mjs +43 -0
  40. package/dist/core-api/routes/validation/component.mjs.map +1 -0
  41. package/dist/core-api/routes/validation/constants.d.ts +8 -0
  42. package/dist/core-api/routes/validation/constants.d.ts.map +1 -0
  43. package/dist/core-api/routes/validation/constants.js +18 -0
  44. package/dist/core-api/routes/validation/constants.js.map +1 -0
  45. package/dist/core-api/routes/validation/constants.mjs +16 -0
  46. package/dist/core-api/routes/validation/constants.mjs.map +1 -0
  47. package/dist/core-api/routes/validation/content-type.d.ts +128 -0
  48. package/dist/core-api/routes/validation/content-type.d.ts.map +1 -0
  49. package/dist/core-api/routes/validation/content-type.js +201 -0
  50. package/dist/core-api/routes/validation/content-type.js.map +1 -0
  51. package/dist/core-api/routes/validation/content-type.mjs +180 -0
  52. package/dist/core-api/routes/validation/content-type.mjs.map +1 -0
  53. package/dist/core-api/routes/validation/index.d.ts +5 -0
  54. package/dist/core-api/routes/validation/index.d.ts.map +1 -0
  55. package/dist/core-api/routes/validation/mappers.d.ts +105 -0
  56. package/dist/core-api/routes/validation/mappers.d.ts.map +1 -0
  57. package/dist/core-api/routes/validation/mappers.js +238 -0
  58. package/dist/core-api/routes/validation/mappers.js.map +1 -0
  59. package/dist/core-api/routes/validation/mappers.mjs +214 -0
  60. package/dist/core-api/routes/validation/mappers.mjs.map +1 -0
  61. package/dist/core-api/routes/validation/utils.d.ts +47 -0
  62. package/dist/core-api/routes/validation/utils.d.ts.map +1 -0
  63. package/dist/core-api/routes/validation/utils.js +128 -0
  64. package/dist/core-api/routes/validation/utils.js.map +1 -0
  65. package/dist/core-api/routes/validation/utils.mjs +106 -0
  66. package/dist/core-api/routes/validation/utils.mjs.map +1 -0
  67. package/dist/domain/content-type/index.d.ts.map +1 -1
  68. package/dist/domain/content-type/index.js +17 -1
  69. package/dist/domain/content-type/index.js.map +1 -1
  70. package/dist/domain/content-type/index.mjs +17 -1
  71. package/dist/domain/content-type/index.mjs.map +1 -1
  72. package/dist/domain/module/index.d.ts.map +1 -1
  73. package/dist/domain/module/index.js +3 -0
  74. package/dist/domain/module/index.js.map +1 -1
  75. package/dist/domain/module/index.mjs +3 -0
  76. package/dist/domain/module/index.mjs.map +1 -1
  77. package/dist/ee/index.d.ts +6 -0
  78. package/dist/ee/index.d.ts.map +1 -1
  79. package/dist/ee/index.js +29 -3
  80. package/dist/ee/index.js.map +1 -1
  81. package/dist/ee/index.mjs +30 -4
  82. package/dist/ee/index.mjs.map +1 -1
  83. package/dist/ee/license.d.ts +3 -1
  84. package/dist/ee/license.d.ts.map +1 -1
  85. package/dist/ee/license.js +8 -2
  86. package/dist/ee/license.js.map +1 -1
  87. package/dist/ee/license.mjs +9 -4
  88. package/dist/ee/license.mjs.map +1 -1
  89. package/dist/factories.d.ts +3 -1
  90. package/dist/factories.d.ts.map +1 -1
  91. package/dist/factories.js +10 -2
  92. package/dist/factories.js.map +1 -1
  93. package/dist/factories.mjs +10 -3
  94. package/dist/factories.mjs.map +1 -1
  95. package/dist/index.js +1 -1
  96. package/dist/index.mjs +1 -1
  97. package/dist/middlewares/cors.d.ts +9 -1
  98. package/dist/middlewares/cors.d.ts.map +1 -1
  99. package/dist/middlewares/cors.js +39 -17
  100. package/dist/middlewares/cors.js.map +1 -1
  101. package/dist/middlewares/cors.mjs +39 -18
  102. package/dist/middlewares/cors.mjs.map +1 -1
  103. package/dist/migrations/first-published-at.d.ts +4 -0
  104. package/dist/migrations/first-published-at.d.ts.map +1 -0
  105. package/dist/migrations/first-published-at.js +51 -0
  106. package/dist/migrations/first-published-at.js.map +1 -0
  107. package/dist/migrations/first-published-at.mjs +49 -0
  108. package/dist/migrations/first-published-at.mjs.map +1 -0
  109. package/dist/migrations/index.d.ts.map +1 -1
  110. package/dist/migrations/index.js +5 -0
  111. package/dist/migrations/index.js.map +1 -1
  112. package/dist/migrations/index.mjs +5 -0
  113. package/dist/migrations/index.mjs.map +1 -1
  114. package/dist/package.json.js +17 -14
  115. package/dist/package.json.js.map +1 -1
  116. package/dist/package.json.mjs +17 -14
  117. package/dist/package.json.mjs.map +1 -1
  118. package/dist/services/core-store.d.ts +2 -2
  119. package/dist/services/core-store.d.ts.map +1 -1
  120. package/dist/services/core-store.js.map +1 -1
  121. package/dist/services/core-store.mjs.map +1 -1
  122. package/dist/services/document-service/entries.d.ts.map +1 -1
  123. package/dist/services/document-service/entries.js +42 -0
  124. package/dist/services/document-service/entries.js.map +1 -1
  125. package/dist/services/document-service/entries.mjs +43 -1
  126. package/dist/services/document-service/entries.mjs.map +1 -1
  127. package/dist/services/document-service/first-published-at.d.ts +7 -0
  128. package/dist/services/document-service/first-published-at.d.ts.map +1 -0
  129. package/dist/services/document-service/first-published-at.js +31 -0
  130. package/dist/services/document-service/first-published-at.js.map +1 -0
  131. package/dist/services/document-service/first-published-at.mjs +28 -0
  132. package/dist/services/document-service/first-published-at.mjs.map +1 -0
  133. package/dist/services/document-service/internationalization.d.ts +6 -1
  134. package/dist/services/document-service/internationalization.d.ts.map +1 -1
  135. package/dist/services/document-service/internationalization.js +32 -0
  136. package/dist/services/document-service/internationalization.js.map +1 -1
  137. package/dist/services/document-service/internationalization.mjs +32 -1
  138. package/dist/services/document-service/internationalization.mjs.map +1 -1
  139. package/dist/services/document-service/repository.d.ts.map +1 -1
  140. package/dist/services/document-service/repository.js +12 -8
  141. package/dist/services/document-service/repository.js.map +1 -1
  142. package/dist/services/document-service/repository.mjs +13 -9
  143. package/dist/services/document-service/repository.mjs.map +1 -1
  144. package/dist/services/entity-validator/index.d.ts.map +1 -1
  145. package/dist/services/entity-validator/index.js +9 -0
  146. package/dist/services/entity-validator/index.js.map +1 -1
  147. package/dist/services/entity-validator/index.mjs +9 -0
  148. package/dist/services/entity-validator/index.mjs.map +1 -1
  149. package/dist/services/entity-validator/validators.d.ts +1 -0
  150. package/dist/services/entity-validator/validators.d.ts.map +1 -1
  151. package/dist/services/entity-validator/validators.js +3 -0
  152. package/dist/services/entity-validator/validators.js.map +1 -1
  153. package/dist/services/entity-validator/validators.mjs +3 -0
  154. package/dist/services/entity-validator/validators.mjs.map +1 -1
  155. package/dist/services/metrics/admin-user-hash.d.ts.map +1 -1
  156. package/dist/services/metrics/admin-user-hash.js.map +1 -1
  157. package/dist/services/metrics/admin-user-hash.mjs.map +1 -1
  158. package/dist/services/metrics/index.d.ts +1 -1
  159. package/dist/services/metrics/index.d.ts.map +1 -1
  160. package/dist/services/metrics/index.js +9 -8
  161. package/dist/services/metrics/index.js.map +1 -1
  162. package/dist/services/metrics/index.mjs +9 -8
  163. package/dist/services/metrics/index.mjs.map +1 -1
  164. package/dist/services/metrics/sender.d.ts.map +1 -1
  165. package/dist/services/metrics/sender.js +5 -5
  166. package/dist/services/metrics/sender.js.map +1 -1
  167. package/dist/services/metrics/sender.mjs +6 -6
  168. package/dist/services/metrics/sender.mjs.map +1 -1
  169. package/dist/services/server/register-routes.js +22 -2
  170. package/dist/services/server/register-routes.js.map +1 -1
  171. package/dist/services/server/register-routes.mjs +22 -2
  172. package/dist/services/server/register-routes.mjs.map +1 -1
  173. package/dist/services/server/routing.d.ts +10 -0
  174. package/dist/services/server/routing.d.ts.map +1 -1
  175. package/dist/services/server/routing.js +7 -1
  176. package/dist/services/server/routing.js.map +1 -1
  177. package/dist/services/server/routing.mjs +7 -1
  178. package/dist/services/server/routing.mjs.map +1 -1
  179. package/dist/services/utils/conditional-fields.d.ts +3 -0
  180. package/dist/services/utils/conditional-fields.d.ts.map +1 -0
  181. package/dist/services/utils/conditional-fields.js +22 -0
  182. package/dist/services/utils/conditional-fields.js.map +1 -0
  183. package/dist/services/utils/conditional-fields.mjs +20 -0
  184. package/dist/services/utils/conditional-fields.mjs.map +1 -0
  185. package/dist/utils/fetch.d.ts +5 -1
  186. package/dist/utils/fetch.d.ts.map +1 -1
  187. package/dist/utils/fetch.js +8 -4
  188. package/dist/utils/fetch.js.map +1 -1
  189. package/dist/utils/fetch.mjs +8 -4
  190. package/dist/utils/fetch.mjs.map +1 -1
  191. package/dist/utils/transform-content-types-to-models.d.ts +197 -0
  192. package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
  193. package/package.json +17 -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-next.69e2ba3406b9409abc96eb4e19c3184ba6e49d98";
6
+ var version = "0.0.0-next.6a38f974ec7350286f5c323503fb1e90c54da7ca";
7
7
  var description = "Core of Strapi";
8
8
  var homepage = "https://strapi.io";
9
9
  var bugs = {
@@ -59,14 +59,14 @@ 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-next.69e2ba3406b9409abc96eb4e19c3184ba6e49d98",
63
- "@strapi/database": "0.0.0-next.69e2ba3406b9409abc96eb4e19c3184ba6e49d98",
64
- "@strapi/generators": "0.0.0-next.69e2ba3406b9409abc96eb4e19c3184ba6e49d98",
65
- "@strapi/logger": "0.0.0-next.69e2ba3406b9409abc96eb4e19c3184ba6e49d98",
66
- "@strapi/permissions": "0.0.0-next.69e2ba3406b9409abc96eb4e19c3184ba6e49d98",
67
- "@strapi/types": "0.0.0-next.69e2ba3406b9409abc96eb4e19c3184ba6e49d98",
68
- "@strapi/typescript-utils": "0.0.0-next.69e2ba3406b9409abc96eb4e19c3184ba6e49d98",
69
- "@strapi/utils": "0.0.0-next.69e2ba3406b9409abc96eb4e19c3184ba6e49d98",
62
+ "@strapi/admin": "0.0.0-next.6a38f974ec7350286f5c323503fb1e90c54da7ca",
63
+ "@strapi/database": "0.0.0-next.6a38f974ec7350286f5c323503fb1e90c54da7ca",
64
+ "@strapi/generators": "0.0.0-next.6a38f974ec7350286f5c323503fb1e90c54da7ca",
65
+ "@strapi/logger": "0.0.0-next.6a38f974ec7350286f5c323503fb1e90c54da7ca",
66
+ "@strapi/permissions": "0.0.0-next.6a38f974ec7350286f5c323503fb1e90c54da7ca",
67
+ "@strapi/types": "0.0.0-next.6a38f974ec7350286f5c323503fb1e90c54da7ca",
68
+ "@strapi/typescript-utils": "0.0.0-next.6a38f974ec7350286f5c323503fb1e90c54da7ca",
69
+ "@strapi/utils": "0.0.0-next.6a38f974ec7350286f5c323503fb1e90c54da7ca",
70
70
  bcryptjs: "2.4.3",
71
71
  boxen: "5.1.2",
72
72
  chalk: "4.1.2",
@@ -85,7 +85,8 @@ var dependencies = {
85
85
  "http-errors": "2.0.0",
86
86
  inquirer: "8.2.5",
87
87
  "is-docker": "2.2.1",
88
- koa: "2.15.4",
88
+ "json-logic-js": "2.0.5",
89
+ koa: "2.16.1",
89
90
  "koa-body": "6.0.1",
90
91
  "koa-compose": "4.1.0",
91
92
  "koa-compress": "5.1.1",
@@ -106,8 +107,9 @@ var dependencies = {
106
107
  semver: "7.5.4",
107
108
  statuses: "2.0.1",
108
109
  typescript: "5.4.4",
109
- undici: "6.21.1",
110
- yup: "0.32.9"
110
+ undici: "6.21.2",
111
+ yup: "0.32.9",
112
+ zod: "3.25.67"
111
113
  };
112
114
  var devDependencies = {
113
115
  "@strapi/ts-zen": "^0.2.0",
@@ -119,6 +121,7 @@ var devDependencies = {
119
121
  "@types/global-agent": "2.1.3",
120
122
  "@types/http-errors": "2.0.4",
121
123
  "@types/jest": "29.5.2",
124
+ "@types/json-logic-js": "2.0.8",
122
125
  "@types/koa": "2.13.4",
123
126
  "@types/koa-compress": "4.0.3",
124
127
  "@types/koa-session": "6.4.1",
@@ -129,9 +132,9 @@ var devDependencies = {
129
132
  "@types/node": "18.19.24",
130
133
  "@types/node-schedule": "2.1.7",
131
134
  "@types/statuses": "2.0.1",
132
- "eslint-config-custom": "0.0.0-next.69e2ba3406b9409abc96eb4e19c3184ba6e49d98",
135
+ "eslint-config-custom": "0.0.0-next.6a38f974ec7350286f5c323503fb1e90c54da7ca",
133
136
  supertest: "6.3.3",
134
- tsconfig: "0.0.0-next.69e2ba3406b9409abc96eb4e19c3184ba6e49d98"
137
+ tsconfig: "0.0.0-next.6a38f974ec7350286f5c323503fb1e90c54da7ca"
135
138
  };
136
139
  var engines = {
137
140
  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-next.69e2ba3406b9409abc96eb4e19c3184ba6e49d98";
2
+ var version = "0.0.0-next.6a38f974ec7350286f5c323503fb1e90c54da7ca";
3
3
  var description = "Core of Strapi";
4
4
  var homepage = "https://strapi.io";
5
5
  var bugs = {
@@ -55,14 +55,14 @@ 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-next.69e2ba3406b9409abc96eb4e19c3184ba6e49d98",
59
- "@strapi/database": "0.0.0-next.69e2ba3406b9409abc96eb4e19c3184ba6e49d98",
60
- "@strapi/generators": "0.0.0-next.69e2ba3406b9409abc96eb4e19c3184ba6e49d98",
61
- "@strapi/logger": "0.0.0-next.69e2ba3406b9409abc96eb4e19c3184ba6e49d98",
62
- "@strapi/permissions": "0.0.0-next.69e2ba3406b9409abc96eb4e19c3184ba6e49d98",
63
- "@strapi/types": "0.0.0-next.69e2ba3406b9409abc96eb4e19c3184ba6e49d98",
64
- "@strapi/typescript-utils": "0.0.0-next.69e2ba3406b9409abc96eb4e19c3184ba6e49d98",
65
- "@strapi/utils": "0.0.0-next.69e2ba3406b9409abc96eb4e19c3184ba6e49d98",
58
+ "@strapi/admin": "0.0.0-next.6a38f974ec7350286f5c323503fb1e90c54da7ca",
59
+ "@strapi/database": "0.0.0-next.6a38f974ec7350286f5c323503fb1e90c54da7ca",
60
+ "@strapi/generators": "0.0.0-next.6a38f974ec7350286f5c323503fb1e90c54da7ca",
61
+ "@strapi/logger": "0.0.0-next.6a38f974ec7350286f5c323503fb1e90c54da7ca",
62
+ "@strapi/permissions": "0.0.0-next.6a38f974ec7350286f5c323503fb1e90c54da7ca",
63
+ "@strapi/types": "0.0.0-next.6a38f974ec7350286f5c323503fb1e90c54da7ca",
64
+ "@strapi/typescript-utils": "0.0.0-next.6a38f974ec7350286f5c323503fb1e90c54da7ca",
65
+ "@strapi/utils": "0.0.0-next.6a38f974ec7350286f5c323503fb1e90c54da7ca",
66
66
  bcryptjs: "2.4.3",
67
67
  boxen: "5.1.2",
68
68
  chalk: "4.1.2",
@@ -81,7 +81,8 @@ var dependencies = {
81
81
  "http-errors": "2.0.0",
82
82
  inquirer: "8.2.5",
83
83
  "is-docker": "2.2.1",
84
- koa: "2.15.4",
84
+ "json-logic-js": "2.0.5",
85
+ koa: "2.16.1",
85
86
  "koa-body": "6.0.1",
86
87
  "koa-compose": "4.1.0",
87
88
  "koa-compress": "5.1.1",
@@ -102,8 +103,9 @@ var dependencies = {
102
103
  semver: "7.5.4",
103
104
  statuses: "2.0.1",
104
105
  typescript: "5.4.4",
105
- undici: "6.21.1",
106
- yup: "0.32.9"
106
+ undici: "6.21.2",
107
+ yup: "0.32.9",
108
+ zod: "3.25.67"
107
109
  };
108
110
  var devDependencies = {
109
111
  "@strapi/ts-zen": "^0.2.0",
@@ -115,6 +117,7 @@ var devDependencies = {
115
117
  "@types/global-agent": "2.1.3",
116
118
  "@types/http-errors": "2.0.4",
117
119
  "@types/jest": "29.5.2",
120
+ "@types/json-logic-js": "2.0.8",
118
121
  "@types/koa": "2.13.4",
119
122
  "@types/koa-compress": "4.0.3",
120
123
  "@types/koa-session": "6.4.1",
@@ -125,9 +128,9 @@ var devDependencies = {
125
128
  "@types/node": "18.19.24",
126
129
  "@types/node-schedule": "2.1.7",
127
130
  "@types/statuses": "2.0.1",
128
- "eslint-config-custom": "0.0.0-next.69e2ba3406b9409abc96eb4e19c3184ba6e49d98",
131
+ "eslint-config-custom": "0.0.0-next.6a38f974ec7350286f5c323503fb1e90c54da7ca",
129
132
  supertest: "6.3.3",
130
- tsconfig: "0.0.0-next.69e2ba3406b9409abc96eb4e19c3184ba6e49d98"
133
+ tsconfig: "0.0.0-next.6a38f974ec7350286f5c323503fb1e90c54da7ca"
131
134
  };
132
135
  var engines = {
133
136
  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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -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":";;;;AAGA,MAAMA,cAAwB,GAAA;IAC5BC,GAAK,EAAA,oBAAA;IACLC,YAAc,EAAA,4BAAA;IACdC,SAAW,EAAA,4BAAA;IACXC,UAAY,EAAA;QACVC,EAAI,EAAA;YACFC,IAAM,EAAA;AACR,SAAA;QACAC,GAAK,EAAA;YACHD,IAAM,EAAA;AACR,SAAA;QACAE,KAAO,EAAA;YACLF,IAAM,EAAA;AACR,SAAA;QACAA,IAAM,EAAA;YACJA,IAAM,EAAA;AACR,SAAA;QACAG,WAAa,EAAA;YACXH,IAAM,EAAA;AACR,SAAA;QACAI,GAAK,EAAA;YACHJ,IAAM,EAAA;AACR;AACF;AACF;AAgCA,MAAMK,eAAkB,GAAA,CAAC,EAAEC,EAAE,EAAoB,GAAA;IAC/C,MAAMC,WAAAA,GAAc,CAACC,aAAgCC,EAAAA,MAAAA,GAAAA;QACnD,OAAO;AACL,YAAA,GAAGD,aAAa;AAChB,YAAA,GAAGC;AACL,SAAA;AACF,KAAA;IAEA,MAAMC,KAAAA,GAAmB,SAAUF,aAA8B,EAAA;QAC/D,OAAO;AACLG,YAAAA,GAAAA,EAAK,CAACF,MAAmBC,GAAAA,KAAAA,CAAMC,GAAG,CAACJ,YAAYC,aAAeC,EAAAA,MAAAA,CAAAA,CAAAA;AAC9DG,YAAAA,GAAAA,EAAK,CAACH,MAAmBC,GAAAA,KAAAA,CAAME,GAAG,CAACL,YAAYC,aAAeC,EAAAA,MAAAA,CAAAA,CAAAA;AAC9DI,YAAAA,MAAAA,EAAQ,CAACJ,MAAmBC,GAAAA,KAAAA,CAAMG,MAAM,CAACN,YAAYC,aAAeC,EAAAA,MAAAA,CAAAA;AACtE,SAAA;AACF,KAAA;AAEA;;MAGAC,KAAAA,CAAMC,GAAG,GAAG,OAAOF,MAAAA,GAAAA;AACjB,QAAA,MAAM,EAAER,GAAG,EAAED,IAAAA,GAAO,MAAM,EAAEG,WAAW,EAAEW,IAAI,EAAEV,GAAG,EAAE,GAAGK,MAAAA;AAEvD,QAAA,MAAMM,MAAS,GAAA,CAAC,EAAEf,IAAAA,CAAK,EAAEc,IAAAA,GAAO,CAAC,CAAC,EAAEA,IAAAA,CAAK,CAAC,GAAG,GAAG,CAAC;AAEjD,QAAA,MAAME,KAAQ,GAAA;AACZf,YAAAA,GAAAA,EAAK,CAAC,EAAEc,MAAAA,CAAO,CAAC,EAAEd,IAAI,CAAC;AACvBE,YAAAA,WAAAA,EAAaA,WAAe,IAAA,IAAA;AAC5BC,YAAAA,GAAAA,EAAKA,GAAO,IAAA;AACd,SAAA;AAEA,QAAA,MAAMa,OAAO,MAAMX,EAAAA,CAAGY,KAAK,CAAC,oBAAA,CAAA,CAAsBC,OAAO,CAAC;AAAEH,YAAAA;AAAM,SAAA,CAAA;AAElE,QAAA,IAAI,CAACC,IAAM,EAAA;YACT,OAAO,IAAA;AACT;AAEA,QAAA,IACEA,IAAKjB,CAAAA,IAAI,KAAK,QAAA,IACdiB,KAAKjB,IAAI,KAAK,OACdiB,IAAAA,IAAAA,CAAKjB,IAAI,KAAK,SAAA,IACdiB,IAAKjB,CAAAA,IAAI,KAAK,QACd,EAAA;YACA,IAAI;AACF,gBAAA,OAAOoB,IAAKC,CAAAA,KAAK,CAACJ,IAAAA,CAAKf,KAAK,CAAA;AAC9B,aAAA,CAAE,OAAOoB,GAAK,EAAA;gBACZ,OAAO,IAAIC,IAAKN,CAAAA,IAAAA,CAAKf,KAAK,CAAA;AAC5B;AACF,SAAA,MAAO,IAAIe,IAAAA,CAAKjB,IAAI,KAAK,QAAU,EAAA;YACjC,OAAOwB,MAAAA,CAAOP,KAAKf,KAAK,CAAA;SACnB,MAAA;YACL,OAAO,IAAA;AACT;AACF,KAAA;AAEA;;;;MAKAQ,KAAAA,CAAME,GAAG,GAAG,OAAOH,MAAAA,GAAAA;AACjB,QAAA,MAAM,EAAER,GAAG,EAAEC,KAAK,EAAEF,IAAI,EAAEG,WAAW,EAAEW,IAAI,EAAEV,GAAG,EAAE,GAAGK,MAAAA;AAErD,QAAA,MAAMM,MAAS,GAAA,CAAC,EAAEf,IAAAA,CAAK,EAAEc,IAAAA,GAAO,CAAC,CAAC,EAAEA,IAAAA,CAAK,CAAC,GAAG,GAAG,CAAC;AAEjD,QAAA,MAAME,KAAQ,GAAA;AACZf,YAAAA,GAAAA,EAAK,CAAC,EAAEc,MAAAA,CAAO,CAAC,EAAEd,IAAI,CAAC;AACvBE,YAAAA,WAAAA,EAAaA,WAAe,IAAA,IAAA;AAC5BC,YAAAA,GAAAA,EAAKA,GAAO,IAAA;AACd,SAAA;AAEA,QAAA,MAAMa,OAAO,MAAMX,EAAAA,CAAGY,KAAK,CAAC,oBAAA,CAAA,CAAsBC,OAAO,CAAC;AAAEH,YAAAA;AAAM,SAAA,CAAA;AAElE,QAAA,IAAIC,IAAM,EAAA;AACR,YAAA,OAAOX,EAAGY,CAAAA,KAAK,CAAC,oBAAA,CAAA,CAAsBO,MAAM,CAAC;gBAC3CT,KAAO,EAAA;AAAEjB,oBAAAA,EAAAA,EAAIkB,KAAKlB;AAAG,iBAAA;gBACrBkB,IAAM,EAAA;AACJf,oBAAAA,KAAAA,EAAOkB,IAAKM,CAAAA,SAAS,CAACxB,KAAAA,CAAAA,IAAUyB,WAASzB,CAAAA,KAAAA,CAAAA;AACzCF,oBAAAA,IAAAA,EAAM,OAAOE;AACf;AACF,aAAA,CAAA;AACF;AAEA,QAAA,OAAOI,EAAGY,CAAAA,KAAK,CAAC,oBAAA,CAAA,CAAsBU,MAAM,CAAC;YAC3CX,IAAM,EAAA;AACJ,gBAAA,GAAGD,KAAK;AACRd,gBAAAA,KAAAA,EAAOkB,IAAKM,CAAAA,SAAS,CAACxB,KAAAA,CAAAA,IAAUyB,WAASzB,CAAAA,KAAAA,CAAAA;AACzCF,gBAAAA,IAAAA,EAAM,OAAOE;AACf;AACF,SAAA,CAAA;AACF,KAAA;AAEA;;;;MAKAQ,KAAAA,CAAMG,MAAM,GAAG,OAAOJ,MAAAA,GAAAA;QACpB,MAAM,EAAER,GAAG,EAAEE,WAAW,EAAEH,IAAI,EAAEc,IAAI,EAAEV,GAAG,EAAE,GAAGK,MAAAA;AAE9C,QAAA,MAAMM,MAAS,GAAA,CAAC,EAAEf,IAAAA,CAAK,EAAEc,IAAAA,GAAO,CAAC,CAAC,EAAEA,IAAAA,CAAK,CAAC,GAAG,GAAG,CAAC;AAEjD,QAAA,MAAME,KAAQ,GAAA;AACZf,YAAAA,GAAAA,EAAK,CAAC,EAAEc,MAAAA,CAAO,CAAC,EAAEd,IAAI,CAAC;AACvBE,YAAAA,WAAAA,EAAaA,WAAe,IAAA,IAAA;AAC5BC,YAAAA,GAAAA,EAAKA,GAAO,IAAA;AACd,SAAA;AAEA,QAAA,OAAOE,EAAGY,CAAAA,KAAK,CAAC,oBAAA,CAAA,CAAsBL,MAAM,CAAC;AAAEG,YAAAA;AAAM,SAAA,CAAA;AACvD,KAAA;IAEA,OAAON,KAAAA;AACT;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"core-store.mjs","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.mjs","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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"}
@@ -1 +1 @@
1
- {"version":3,"file":"entries.d.ts","sourceRoot":"","sources":["../../../src/services/document-service/entries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAYlD,QAAA,MAAM,oBAAoB,QACnB,IAAI,WAAW,mBACH,QAAQ,eAAe,CAAC,eAAe;;iBAmCzB,MAAM;4BAUK,GAAG;qBA4BV,GAAG;0BAaE,GAAG;CAoB5C,CAAC;AAEF,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"entries.d.ts","sourceRoot":"","sources":["../../../src/services/document-service/entries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAYlD,QAAA,MAAM,oBAAoB,QACnB,IAAI,WAAW,mBACH,QAAQ,eAAe,CAAC,eAAe;;iBA2EzB,MAAM;4BAUK,GAAG;qBA4BV,GAAG;0BAaE,GAAG;CAoB5C,CAAC;AAEF,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
@@ -18,6 +18,48 @@ const createEntriesService = (uid, entityValidator)=>{
18
18
  if (!data) {
19
19
  throw new Error('Create requires data attribute');
20
20
  }
21
+ // Check for uniqueness based on documentId and locale (if localized)
22
+ if (data.documentId) {
23
+ const i18nService = strapi.plugin('i18n')?.service('content-types');
24
+ const isLocalized = i18nService?.isLocalizedContentType(contentType) ?? false;
25
+ const hasDraftAndPublish = contentType.options?.draftAndPublish === true;
26
+ const whereClause = {
27
+ documentId: data.documentId
28
+ };
29
+ if (isLocalized) {
30
+ whereClause.locale = data.locale;
31
+ }
32
+ let publishedStateDescription = '';
33
+ if (hasDraftAndPublish) {
34
+ if (data.publishedAt) {
35
+ // Current entry is published, check for existing published entry
36
+ whereClause.publishedAt = {
37
+ $notNull: true
38
+ };
39
+ publishedStateDescription = 'published';
40
+ } else {
41
+ // Current entry is a draft, check for existing draft entry
42
+ whereClause.publishedAt = {
43
+ $null: true
44
+ };
45
+ publishedStateDescription = 'draft';
46
+ }
47
+ }
48
+ const existingEntry = await strapi.db.query(uid).findOne({
49
+ select: [
50
+ 'id'
51
+ ],
52
+ where: whereClause
53
+ });
54
+ if (existingEntry) {
55
+ let errorMsg = `A ${publishedStateDescription} entry with documentId "${data.documentId}"`;
56
+ if (isLocalized && data.locale) {
57
+ errorMsg += ` and locale "${data.locale}"`;
58
+ }
59
+ errorMsg += ` already exists for UID "${uid}". This combination must be unique.`;
60
+ throw new strapiUtils.errors.ApplicationError(errorMsg);
61
+ }
62
+ }
21
63
  const validData = await entityValidator.validateEntityCreation(contentType, data, {
22
64
  // Note: publishedAt value will always be set when DP is disabled
23
65
  isDraft: !params$1?.data?.publishedAt,
@@ -1 +1 @@
1
- {"version":3,"file":"entries.js","sources":["../../../src/services/document-service/entries.ts"],"sourcesContent":["import type { UID, Modules } from '@strapi/types';\nimport { async } from '@strapi/utils';\nimport { assoc, omit } from 'lodash/fp';\n\nimport * as components from './components';\n\nimport { transformParamsDocumentId } from './transform/id-transform';\nimport { transformParamsToQuery } from './transform/query';\nimport { pickSelectionParams } from './params';\nimport { applyTransforms } from './attributes';\nimport { transformData } from './transform/data';\n\nconst createEntriesService = (\n uid: UID.ContentType,\n entityValidator: Modules.EntityValidator.EntityValidator\n) => {\n const contentType = strapi.contentType(uid);\n\n async function createEntry(params = {} as any) {\n const { data, ...restParams } = await transformParamsDocumentId(uid, params);\n\n const query = transformParamsToQuery(uid, pickSelectionParams(restParams) as any); // select / populate\n\n // Validation\n if (!data) {\n throw new Error('Create requires data attribute');\n }\n\n const validData = await entityValidator.validateEntityCreation(contentType, data, {\n // Note: publishedAt value will always be set when DP is disabled\n isDraft: !params?.data?.publishedAt,\n locale: params?.locale,\n });\n\n // Component handling\n const componentData = await components.createComponents(uid, validData);\n const dataWithComponents = components.assignComponentData(\n contentType,\n componentData,\n validData\n );\n\n const entryData = applyTransforms(contentType, dataWithComponents);\n\n const doc = await strapi.db.query(uid).create({ ...query, data: entryData });\n\n return doc;\n }\n\n async function deleteEntry(id: number) {\n const componentsToDelete = await components.getComponents(uid, { id });\n\n const deletedEntry = await strapi.db.query(uid).delete({ where: { id } });\n\n await components.deleteComponents(uid, componentsToDelete as any, { loadComponents: false });\n\n return deletedEntry;\n }\n\n async function updateEntry(entryToUpdate: any, params = {} as any) {\n const { data, ...restParams } = await transformParamsDocumentId(uid, params);\n const query = transformParamsToQuery(uid, pickSelectionParams(restParams) as any); // select / populate\n\n const validData = await entityValidator.validateEntityUpdate(\n contentType,\n data,\n {\n isDraft: !params?.data?.publishedAt, // Always update the draft version\n locale: params?.locale,\n },\n entryToUpdate\n );\n // Component handling\n const componentData = await components.updateComponents(uid, entryToUpdate, validData as any);\n const dataWithComponents = components.assignComponentData(\n contentType,\n componentData,\n validData\n );\n\n const entryData = applyTransforms(contentType, dataWithComponents);\n\n return strapi.db\n .query(uid)\n .update({ ...query, where: { id: entryToUpdate.id }, data: entryData });\n }\n\n async function publishEntry(entry: any, params = {} as any) {\n return async.pipe(\n omit('id'),\n assoc('publishedAt', new Date()),\n (draft) => {\n const opts = { uid, locale: draft.locale, status: 'published', allowMissingId: true };\n return transformData(draft, opts);\n },\n // Create the published entry\n (draft) => createEntry({ ...params, data: draft, locale: draft.locale, status: 'published' })\n )(entry);\n }\n\n async function discardDraftEntry(entry: any, params = {} as any) {\n return async.pipe(\n omit('id'),\n assoc('publishedAt', null),\n (entry) => {\n const opts = { uid, locale: entry.locale, status: 'draft', allowMissingId: true };\n return transformData(entry, opts);\n },\n // Create the draft entry\n (data) => createEntry({ ...params, locale: data.locale, data, status: 'draft' })\n )(entry);\n }\n\n return {\n create: createEntry,\n delete: deleteEntry,\n update: updateEntry,\n publish: publishEntry,\n discardDraft: discardDraftEntry,\n };\n};\n\nexport { createEntriesService };\n"],"names":["createEntriesService","uid","entityValidator","contentType","strapi","createEntry","params","data","restParams","transformParamsDocumentId","query","transformParamsToQuery","pickSelectionParams","Error","validData","validateEntityCreation","isDraft","publishedAt","locale","componentData","components","dataWithComponents","entryData","applyTransforms","doc","db","create","deleteEntry","id","componentsToDelete","deletedEntry","delete","where","loadComponents","updateEntry","entryToUpdate","validateEntityUpdate","update","publishEntry","entry","async","pipe","omit","assoc","Date","draft","opts","status","allowMissingId","transformData","discardDraftEntry","publish","discardDraft"],"mappings":"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"}
1
+ {"version":3,"file":"entries.js","sources":["../../../src/services/document-service/entries.ts"],"sourcesContent":["import type { UID, Modules } from '@strapi/types';\nimport { async, errors } from '@strapi/utils';\nimport { assoc, omit } from 'lodash/fp';\n\nimport * as components from './components';\n\nimport { transformParamsDocumentId } from './transform/id-transform';\nimport { transformParamsToQuery } from './transform/query';\nimport { pickSelectionParams } from './params';\nimport { applyTransforms } from './attributes';\nimport { transformData } from './transform/data';\n\nconst createEntriesService = (\n uid: UID.ContentType,\n entityValidator: Modules.EntityValidator.EntityValidator\n) => {\n const contentType = strapi.contentType(uid);\n\n async function createEntry(params = {} as any) {\n const { data, ...restParams } = await transformParamsDocumentId(uid, params);\n const query = transformParamsToQuery(uid, pickSelectionParams(restParams) as any); // select / populate\n\n // Validation\n if (!data) {\n throw new Error('Create requires data attribute');\n }\n\n // Check for uniqueness based on documentId and locale (if localized)\n if (data.documentId) {\n const i18nService = strapi.plugin('i18n')?.service('content-types');\n const isLocalized = i18nService?.isLocalizedContentType(contentType) ?? false;\n const hasDraftAndPublish = contentType.options?.draftAndPublish === true;\n\n const whereClause: Record<string, unknown> = { documentId: data.documentId };\n\n if (isLocalized) {\n whereClause.locale = data.locale;\n }\n\n let publishedStateDescription = '';\n\n if (hasDraftAndPublish) {\n if (data.publishedAt) {\n // Current entry is published, check for existing published entry\n whereClause.publishedAt = { $notNull: true };\n publishedStateDescription = 'published';\n } else {\n // Current entry is a draft, check for existing draft entry\n whereClause.publishedAt = { $null: true };\n publishedStateDescription = 'draft';\n }\n }\n\n const existingEntry = await strapi.db.query(uid).findOne({\n select: ['id'],\n where: whereClause,\n });\n\n if (existingEntry) {\n let errorMsg = `A ${publishedStateDescription} entry with documentId \"${data.documentId}\"`;\n if (isLocalized && data.locale) {\n errorMsg += ` and locale \"${data.locale}\"`;\n }\n errorMsg += ` already exists for UID \"${uid}\". This combination must be unique.`;\n throw new errors.ApplicationError(errorMsg);\n }\n }\n\n const validData = await entityValidator.validateEntityCreation(contentType, data, {\n // Note: publishedAt value will always be set when DP is disabled\n isDraft: !params?.data?.publishedAt,\n locale: params?.locale,\n });\n\n // Component handling\n const componentData = await components.createComponents(uid, validData);\n const dataWithComponents = components.assignComponentData(\n contentType,\n componentData,\n validData\n );\n\n const entryData = applyTransforms(contentType, dataWithComponents);\n\n const doc = await strapi.db.query(uid).create({ ...query, data: entryData });\n\n return doc;\n }\n\n async function deleteEntry(id: number) {\n const componentsToDelete = await components.getComponents(uid, { id });\n\n const deletedEntry = await strapi.db.query(uid).delete({ where: { id } });\n\n await components.deleteComponents(uid, componentsToDelete as any, { loadComponents: false });\n\n return deletedEntry;\n }\n\n async function updateEntry(entryToUpdate: any, params = {} as any) {\n const { data, ...restParams } = await transformParamsDocumentId(uid, params);\n const query = transformParamsToQuery(uid, pickSelectionParams(restParams) as any); // select / populate\n\n const validData = await entityValidator.validateEntityUpdate(\n contentType,\n data,\n {\n isDraft: !params?.data?.publishedAt, // Always update the draft version\n locale: params?.locale,\n },\n entryToUpdate\n );\n // Component handling\n const componentData = await components.updateComponents(uid, entryToUpdate, validData as any);\n const dataWithComponents = components.assignComponentData(\n contentType,\n componentData,\n validData\n );\n\n const entryData = applyTransforms(contentType, dataWithComponents);\n\n return strapi.db\n .query(uid)\n .update({ ...query, where: { id: entryToUpdate.id }, data: entryData });\n }\n\n async function publishEntry(entry: any, params = {} as any) {\n return async.pipe(\n omit('id'),\n assoc('publishedAt', new Date()),\n (draft) => {\n const opts = { uid, locale: draft.locale, status: 'published', allowMissingId: true };\n return transformData(draft, opts);\n },\n // Create the published entry\n (draft) => createEntry({ ...params, data: draft, locale: draft.locale, status: 'published' })\n )(entry);\n }\n\n async function discardDraftEntry(entry: any, params = {} as any) {\n return async.pipe(\n omit('id'),\n assoc('publishedAt', null),\n (entry) => {\n const opts = { uid, locale: entry.locale, status: 'draft', allowMissingId: true };\n return transformData(entry, opts);\n },\n // Create the draft entry\n (data) => createEntry({ ...params, locale: data.locale, data, status: 'draft' })\n )(entry);\n }\n\n return {\n create: createEntry,\n delete: deleteEntry,\n update: updateEntry,\n publish: publishEntry,\n discardDraft: discardDraftEntry,\n };\n};\n\nexport { createEntriesService };\n"],"names":["createEntriesService","uid","entityValidator","contentType","strapi","createEntry","params","data","restParams","transformParamsDocumentId","query","transformParamsToQuery","pickSelectionParams","Error","documentId","i18nService","plugin","service","isLocalized","isLocalizedContentType","hasDraftAndPublish","options","draftAndPublish","whereClause","locale","publishedStateDescription","publishedAt","$notNull","$null","existingEntry","db","findOne","select","where","errorMsg","errors","ApplicationError","validData","validateEntityCreation","isDraft","componentData","components","dataWithComponents","entryData","applyTransforms","doc","create","deleteEntry","id","componentsToDelete","deletedEntry","delete","loadComponents","updateEntry","entryToUpdate","validateEntityUpdate","update","publishEntry","entry","async","pipe","omit","assoc","Date","draft","opts","status","allowMissingId","transformData","discardDraftEntry","publish","discardDraft"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { async } from '@strapi/utils';
1
+ import { errors, async } from '@strapi/utils';
2
2
  import { omit, assoc } from 'lodash/fp';
3
3
  import { createComponents, assignComponentData, getComponents, deleteComponents, updateComponents } from './components.mjs';
4
4
  import { transformParamsDocumentId as curriedTransformParamsDocumentId } from './transform/id-transform.mjs';
@@ -16,6 +16,48 @@ const createEntriesService = (uid, entityValidator)=>{
16
16
  if (!data) {
17
17
  throw new Error('Create requires data attribute');
18
18
  }
19
+ // Check for uniqueness based on documentId and locale (if localized)
20
+ if (data.documentId) {
21
+ const i18nService = strapi.plugin('i18n')?.service('content-types');
22
+ const isLocalized = i18nService?.isLocalizedContentType(contentType) ?? false;
23
+ const hasDraftAndPublish = contentType.options?.draftAndPublish === true;
24
+ const whereClause = {
25
+ documentId: data.documentId
26
+ };
27
+ if (isLocalized) {
28
+ whereClause.locale = data.locale;
29
+ }
30
+ let publishedStateDescription = '';
31
+ if (hasDraftAndPublish) {
32
+ if (data.publishedAt) {
33
+ // Current entry is published, check for existing published entry
34
+ whereClause.publishedAt = {
35
+ $notNull: true
36
+ };
37
+ publishedStateDescription = 'published';
38
+ } else {
39
+ // Current entry is a draft, check for existing draft entry
40
+ whereClause.publishedAt = {
41
+ $null: true
42
+ };
43
+ publishedStateDescription = 'draft';
44
+ }
45
+ }
46
+ const existingEntry = await strapi.db.query(uid).findOne({
47
+ select: [
48
+ 'id'
49
+ ],
50
+ where: whereClause
51
+ });
52
+ if (existingEntry) {
53
+ let errorMsg = `A ${publishedStateDescription} entry with documentId "${data.documentId}"`;
54
+ if (isLocalized && data.locale) {
55
+ errorMsg += ` and locale "${data.locale}"`;
56
+ }
57
+ errorMsg += ` already exists for UID "${uid}". This combination must be unique.`;
58
+ throw new errors.ApplicationError(errorMsg);
59
+ }
60
+ }
19
61
  const validData = await entityValidator.validateEntityCreation(contentType, data, {
20
62
  // Note: publishedAt value will always be set when DP is disabled
21
63
  isDraft: !params?.data?.publishedAt,
@@ -1 +1 @@
1
- {"version":3,"file":"entries.mjs","sources":["../../../src/services/document-service/entries.ts"],"sourcesContent":["import type { UID, Modules } from '@strapi/types';\nimport { async } from '@strapi/utils';\nimport { assoc, omit } from 'lodash/fp';\n\nimport * as components from './components';\n\nimport { transformParamsDocumentId } from './transform/id-transform';\nimport { transformParamsToQuery } from './transform/query';\nimport { pickSelectionParams } from './params';\nimport { applyTransforms } from './attributes';\nimport { transformData } from './transform/data';\n\nconst createEntriesService = (\n uid: UID.ContentType,\n entityValidator: Modules.EntityValidator.EntityValidator\n) => {\n const contentType = strapi.contentType(uid);\n\n async function createEntry(params = {} as any) {\n const { data, ...restParams } = await transformParamsDocumentId(uid, params);\n\n const query = transformParamsToQuery(uid, pickSelectionParams(restParams) as any); // select / populate\n\n // Validation\n if (!data) {\n throw new Error('Create requires data attribute');\n }\n\n const validData = await entityValidator.validateEntityCreation(contentType, data, {\n // Note: publishedAt value will always be set when DP is disabled\n isDraft: !params?.data?.publishedAt,\n locale: params?.locale,\n });\n\n // Component handling\n const componentData = await components.createComponents(uid, validData);\n const dataWithComponents = components.assignComponentData(\n contentType,\n componentData,\n validData\n );\n\n const entryData = applyTransforms(contentType, dataWithComponents);\n\n const doc = await strapi.db.query(uid).create({ ...query, data: entryData });\n\n return doc;\n }\n\n async function deleteEntry(id: number) {\n const componentsToDelete = await components.getComponents(uid, { id });\n\n const deletedEntry = await strapi.db.query(uid).delete({ where: { id } });\n\n await components.deleteComponents(uid, componentsToDelete as any, { loadComponents: false });\n\n return deletedEntry;\n }\n\n async function updateEntry(entryToUpdate: any, params = {} as any) {\n const { data, ...restParams } = await transformParamsDocumentId(uid, params);\n const query = transformParamsToQuery(uid, pickSelectionParams(restParams) as any); // select / populate\n\n const validData = await entityValidator.validateEntityUpdate(\n contentType,\n data,\n {\n isDraft: !params?.data?.publishedAt, // Always update the draft version\n locale: params?.locale,\n },\n entryToUpdate\n );\n // Component handling\n const componentData = await components.updateComponents(uid, entryToUpdate, validData as any);\n const dataWithComponents = components.assignComponentData(\n contentType,\n componentData,\n validData\n );\n\n const entryData = applyTransforms(contentType, dataWithComponents);\n\n return strapi.db\n .query(uid)\n .update({ ...query, where: { id: entryToUpdate.id }, data: entryData });\n }\n\n async function publishEntry(entry: any, params = {} as any) {\n return async.pipe(\n omit('id'),\n assoc('publishedAt', new Date()),\n (draft) => {\n const opts = { uid, locale: draft.locale, status: 'published', allowMissingId: true };\n return transformData(draft, opts);\n },\n // Create the published entry\n (draft) => createEntry({ ...params, data: draft, locale: draft.locale, status: 'published' })\n )(entry);\n }\n\n async function discardDraftEntry(entry: any, params = {} as any) {\n return async.pipe(\n omit('id'),\n assoc('publishedAt', null),\n (entry) => {\n const opts = { uid, locale: entry.locale, status: 'draft', allowMissingId: true };\n return transformData(entry, opts);\n },\n // Create the draft entry\n (data) => createEntry({ ...params, locale: data.locale, data, status: 'draft' })\n )(entry);\n }\n\n return {\n create: createEntry,\n delete: deleteEntry,\n update: updateEntry,\n publish: publishEntry,\n discardDraft: discardDraftEntry,\n };\n};\n\nexport { createEntriesService };\n"],"names":["createEntriesService","uid","entityValidator","contentType","strapi","createEntry","params","data","restParams","transformParamsDocumentId","query","transformParamsToQuery","pickSelectionParams","Error","validData","validateEntityCreation","isDraft","publishedAt","locale","componentData","components","dataWithComponents","entryData","applyTransforms","doc","db","create","deleteEntry","id","componentsToDelete","deletedEntry","delete","where","loadComponents","updateEntry","entryToUpdate","validateEntityUpdate","update","publishEntry","entry","async","pipe","omit","assoc","Date","draft","opts","status","allowMissingId","transformData","discardDraftEntry","publish","discardDraft"],"mappings":"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"}
1
+ {"version":3,"file":"entries.mjs","sources":["../../../src/services/document-service/entries.ts"],"sourcesContent":["import type { UID, Modules } from '@strapi/types';\nimport { async, errors } from '@strapi/utils';\nimport { assoc, omit } from 'lodash/fp';\n\nimport * as components from './components';\n\nimport { transformParamsDocumentId } from './transform/id-transform';\nimport { transformParamsToQuery } from './transform/query';\nimport { pickSelectionParams } from './params';\nimport { applyTransforms } from './attributes';\nimport { transformData } from './transform/data';\n\nconst createEntriesService = (\n uid: UID.ContentType,\n entityValidator: Modules.EntityValidator.EntityValidator\n) => {\n const contentType = strapi.contentType(uid);\n\n async function createEntry(params = {} as any) {\n const { data, ...restParams } = await transformParamsDocumentId(uid, params);\n const query = transformParamsToQuery(uid, pickSelectionParams(restParams) as any); // select / populate\n\n // Validation\n if (!data) {\n throw new Error('Create requires data attribute');\n }\n\n // Check for uniqueness based on documentId and locale (if localized)\n if (data.documentId) {\n const i18nService = strapi.plugin('i18n')?.service('content-types');\n const isLocalized = i18nService?.isLocalizedContentType(contentType) ?? false;\n const hasDraftAndPublish = contentType.options?.draftAndPublish === true;\n\n const whereClause: Record<string, unknown> = { documentId: data.documentId };\n\n if (isLocalized) {\n whereClause.locale = data.locale;\n }\n\n let publishedStateDescription = '';\n\n if (hasDraftAndPublish) {\n if (data.publishedAt) {\n // Current entry is published, check for existing published entry\n whereClause.publishedAt = { $notNull: true };\n publishedStateDescription = 'published';\n } else {\n // Current entry is a draft, check for existing draft entry\n whereClause.publishedAt = { $null: true };\n publishedStateDescription = 'draft';\n }\n }\n\n const existingEntry = await strapi.db.query(uid).findOne({\n select: ['id'],\n where: whereClause,\n });\n\n if (existingEntry) {\n let errorMsg = `A ${publishedStateDescription} entry with documentId \"${data.documentId}\"`;\n if (isLocalized && data.locale) {\n errorMsg += ` and locale \"${data.locale}\"`;\n }\n errorMsg += ` already exists for UID \"${uid}\". This combination must be unique.`;\n throw new errors.ApplicationError(errorMsg);\n }\n }\n\n const validData = await entityValidator.validateEntityCreation(contentType, data, {\n // Note: publishedAt value will always be set when DP is disabled\n isDraft: !params?.data?.publishedAt,\n locale: params?.locale,\n });\n\n // Component handling\n const componentData = await components.createComponents(uid, validData);\n const dataWithComponents = components.assignComponentData(\n contentType,\n componentData,\n validData\n );\n\n const entryData = applyTransforms(contentType, dataWithComponents);\n\n const doc = await strapi.db.query(uid).create({ ...query, data: entryData });\n\n return doc;\n }\n\n async function deleteEntry(id: number) {\n const componentsToDelete = await components.getComponents(uid, { id });\n\n const deletedEntry = await strapi.db.query(uid).delete({ where: { id } });\n\n await components.deleteComponents(uid, componentsToDelete as any, { loadComponents: false });\n\n return deletedEntry;\n }\n\n async function updateEntry(entryToUpdate: any, params = {} as any) {\n const { data, ...restParams } = await transformParamsDocumentId(uid, params);\n const query = transformParamsToQuery(uid, pickSelectionParams(restParams) as any); // select / populate\n\n const validData = await entityValidator.validateEntityUpdate(\n contentType,\n data,\n {\n isDraft: !params?.data?.publishedAt, // Always update the draft version\n locale: params?.locale,\n },\n entryToUpdate\n );\n // Component handling\n const componentData = await components.updateComponents(uid, entryToUpdate, validData as any);\n const dataWithComponents = components.assignComponentData(\n contentType,\n componentData,\n validData\n );\n\n const entryData = applyTransforms(contentType, dataWithComponents);\n\n return strapi.db\n .query(uid)\n .update({ ...query, where: { id: entryToUpdate.id }, data: entryData });\n }\n\n async function publishEntry(entry: any, params = {} as any) {\n return async.pipe(\n omit('id'),\n assoc('publishedAt', new Date()),\n (draft) => {\n const opts = { uid, locale: draft.locale, status: 'published', allowMissingId: true };\n return transformData(draft, opts);\n },\n // Create the published entry\n (draft) => createEntry({ ...params, data: draft, locale: draft.locale, status: 'published' })\n )(entry);\n }\n\n async function discardDraftEntry(entry: any, params = {} as any) {\n return async.pipe(\n omit('id'),\n assoc('publishedAt', null),\n (entry) => {\n const opts = { uid, locale: entry.locale, status: 'draft', allowMissingId: true };\n return transformData(entry, opts);\n },\n // Create the draft entry\n (data) => createEntry({ ...params, locale: data.locale, data, status: 'draft' })\n )(entry);\n }\n\n return {\n create: createEntry,\n delete: deleteEntry,\n update: updateEntry,\n publish: publishEntry,\n discardDraft: discardDraftEntry,\n };\n};\n\nexport { createEntriesService };\n"],"names":["createEntriesService","uid","entityValidator","contentType","strapi","createEntry","params","data","restParams","transformParamsDocumentId","query","transformParamsToQuery","pickSelectionParams","Error","documentId","i18nService","plugin","service","isLocalized","isLocalizedContentType","hasDraftAndPublish","options","draftAndPublish","whereClause","locale","publishedStateDescription","publishedAt","$notNull","$null","existingEntry","db","findOne","select","where","errorMsg","errors","ApplicationError","validData","validateEntityCreation","isDraft","componentData","components","dataWithComponents","entryData","applyTransforms","doc","create","deleteEntry","id","componentsToDelete","deletedEntry","delete","loadComponents","updateEntry","entryToUpdate","validateEntityUpdate","update","publishEntry","entry","async","pipe","omit","assoc","Date","draft","opts","status","allowMissingId","transformData","discardDraftEntry","publish","discardDraft"],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { Modules, Schema } from '@strapi/types';
2
+ type EntriesUpdate = (entryToUpdate: any, param?: any) => Promise<any>;
3
+ type ParamsTransform = (params: Modules.Documents.Params.All) => Modules.Documents.Params.All;
4
+ declare const addFirstPublishedAtToDraft: (draft: any, update: EntriesUpdate, contentType: Schema.ContentType) => Promise<any>;
5
+ declare const filterDataFirstPublishedAt: ParamsTransform;
6
+ export { addFirstPublishedAtToDraft, filterDataFirstPublishedAt };
7
+ //# sourceMappingURL=first-published-at.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"first-published-at.d.ts","sourceRoot":"","sources":["../../../src/services/document-service/first-published-at.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAErD,KAAK,aAAa,GAAG,CAAC,aAAa,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;AACvE,KAAK,eAAe,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,KAAK,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;AAE9F,QAAA,MAAM,0BAA0B,UACvB,GAAG,UACF,aAAa,eACR,OAAO,WAAW,iBAehC,CAAC;AAEF,QAAA,MAAM,0BAA0B,EAAE,eAMjC,CAAC;AAEF,OAAO,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,CAAC"}
@@ -0,0 +1,31 @@
1
+ 'use strict';
2
+
3
+ var strapiUtils = require('@strapi/utils');
4
+ var fp = require('lodash/fp');
5
+
6
+ const addFirstPublishedAtToDraft = async (draft, update, contentType)=>{
7
+ if (!strapiUtils.contentTypes.hasFirstPublishedAtField(contentType)) {
8
+ return draft;
9
+ }
10
+ if (draft.firstPublishedAt) {
11
+ return draft;
12
+ }
13
+ return update(draft, {
14
+ data: {
15
+ firstPublishedAt: Date.now()
16
+ }
17
+ });
18
+ };
19
+ const filterDataFirstPublishedAt = (params)=>{
20
+ if (params?.data?.firstPublishedAt) {
21
+ return fp.assoc([
22
+ 'data',
23
+ 'firstPublishedAt'
24
+ ], null, params);
25
+ }
26
+ return params;
27
+ };
28
+
29
+ exports.addFirstPublishedAtToDraft = addFirstPublishedAtToDraft;
30
+ exports.filterDataFirstPublishedAt = filterDataFirstPublishedAt;
31
+ //# sourceMappingURL=first-published-at.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"first-published-at.js","sources":["../../../src/services/document-service/first-published-at.ts"],"sourcesContent":["import { contentTypes } from '@strapi/utils';\nimport { assoc } from 'lodash/fp';\nimport type { Modules, Schema } from '@strapi/types';\n\ntype EntriesUpdate = (entryToUpdate: any, param?: any) => Promise<any>;\ntype ParamsTransform = (params: Modules.Documents.Params.All) => Modules.Documents.Params.All;\n\nconst addFirstPublishedAtToDraft = async (\n draft: any,\n update: EntriesUpdate,\n contentType: Schema.ContentType\n) => {\n if (!contentTypes.hasFirstPublishedAtField(contentType)) {\n return draft;\n }\n\n if (draft.firstPublishedAt) {\n return draft;\n }\n\n return update(draft, {\n data: {\n firstPublishedAt: Date.now(),\n },\n });\n};\n\nconst filterDataFirstPublishedAt: ParamsTransform = (params) => {\n if (params?.data?.firstPublishedAt) {\n return assoc(['data', 'firstPublishedAt'], null, params);\n }\n\n return params;\n};\n\nexport { addFirstPublishedAtToDraft, filterDataFirstPublishedAt };\n"],"names":["addFirstPublishedAtToDraft","draft","update","contentType","contentTypes","hasFirstPublishedAtField","firstPublishedAt","data","Date","now","filterDataFirstPublishedAt","params","assoc"],"mappings":";;;;;AAOMA,MAAAA,0BAAAA,GAA6B,OACjCC,KAAAA,EACAC,MACAC,EAAAA,WAAAA,GAAAA;AAEA,IAAA,IAAI,CAACC,wBAAAA,CAAaC,wBAAwB,CAACF,WAAc,CAAA,EAAA;QACvD,OAAOF,KAAAA;AACT;IAEA,IAAIA,KAAAA,CAAMK,gBAAgB,EAAE;QAC1B,OAAOL,KAAAA;AACT;AAEA,IAAA,OAAOC,OAAOD,KAAO,EAAA;QACnBM,IAAM,EAAA;AACJD,YAAAA,gBAAAA,EAAkBE,KAAKC,GAAG;AAC5B;AACF,KAAA,CAAA;AACF;AAEA,MAAMC,6BAA8C,CAACC,MAAAA,GAAAA;IACnD,IAAIA,MAAAA,EAAQJ,MAAMD,gBAAkB,EAAA;AAClC,QAAA,OAAOM,QAAM,CAAA;AAAC,YAAA,MAAA;AAAQ,YAAA;AAAmB,SAAA,EAAE,IAAMD,EAAAA,MAAAA,CAAAA;AACnD;IAEA,OAAOA,MAAAA;AACT;;;;;"}
@@ -0,0 +1,28 @@
1
+ import { contentTypes } from '@strapi/utils';
2
+ import { assoc } from 'lodash/fp';
3
+
4
+ const addFirstPublishedAtToDraft = async (draft, update, contentType)=>{
5
+ if (!contentTypes.hasFirstPublishedAtField(contentType)) {
6
+ return draft;
7
+ }
8
+ if (draft.firstPublishedAt) {
9
+ return draft;
10
+ }
11
+ return update(draft, {
12
+ data: {
13
+ firstPublishedAt: Date.now()
14
+ }
15
+ });
16
+ };
17
+ const filterDataFirstPublishedAt = (params)=>{
18
+ if (params?.data?.firstPublishedAt) {
19
+ return assoc([
20
+ 'data',
21
+ 'firstPublishedAt'
22
+ ], null, params);
23
+ }
24
+ return params;
25
+ };
26
+
27
+ export { addFirstPublishedAtToDraft, filterDataFirstPublishedAt };
28
+ //# sourceMappingURL=first-published-at.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"first-published-at.mjs","sources":["../../../src/services/document-service/first-published-at.ts"],"sourcesContent":["import { contentTypes } from '@strapi/utils';\nimport { assoc } from 'lodash/fp';\nimport type { Modules, Schema } from '@strapi/types';\n\ntype EntriesUpdate = (entryToUpdate: any, param?: any) => Promise<any>;\ntype ParamsTransform = (params: Modules.Documents.Params.All) => Modules.Documents.Params.All;\n\nconst addFirstPublishedAtToDraft = async (\n draft: any,\n update: EntriesUpdate,\n contentType: Schema.ContentType\n) => {\n if (!contentTypes.hasFirstPublishedAtField(contentType)) {\n return draft;\n }\n\n if (draft.firstPublishedAt) {\n return draft;\n }\n\n return update(draft, {\n data: {\n firstPublishedAt: Date.now(),\n },\n });\n};\n\nconst filterDataFirstPublishedAt: ParamsTransform = (params) => {\n if (params?.data?.firstPublishedAt) {\n return assoc(['data', 'firstPublishedAt'], null, params);\n }\n\n return params;\n};\n\nexport { addFirstPublishedAtToDraft, filterDataFirstPublishedAt };\n"],"names":["addFirstPublishedAtToDraft","draft","update","contentType","contentTypes","hasFirstPublishedAtField","firstPublishedAt","data","Date","now","filterDataFirstPublishedAt","params","assoc"],"mappings":";;;AAOMA,MAAAA,0BAAAA,GAA6B,OACjCC,KAAAA,EACAC,MACAC,EAAAA,WAAAA,GAAAA;AAEA,IAAA,IAAI,CAACC,YAAAA,CAAaC,wBAAwB,CAACF,WAAc,CAAA,EAAA;QACvD,OAAOF,KAAAA;AACT;IAEA,IAAIA,KAAAA,CAAMK,gBAAgB,EAAE;QAC1B,OAAOL,KAAAA;AACT;AAEA,IAAA,OAAOC,OAAOD,KAAO,EAAA;QACnBM,IAAM,EAAA;AACJD,YAAAA,gBAAAA,EAAkBE,KAAKC,GAAG;AAC5B;AACF,KAAA,CAAA;AACF;AAEA,MAAMC,6BAA8C,CAACC,MAAAA,GAAAA;IACnD,IAAIA,MAAAA,EAAQJ,MAAMD,gBAAkB,EAAA;AAClC,QAAA,OAAOM,KAAM,CAAA;AAAC,YAAA,MAAA;AAAQ,YAAA;AAAmB,SAAA,EAAE,IAAMD,EAAAA,MAAAA,CAAAA;AACnD;IAEA,OAAOA,MAAAA;AACT;;;;"}
@@ -1,8 +1,13 @@
1
1
  /// <reference types="lodash" />
2
2
  import type { Struct, Modules } from '@strapi/types';
3
+ /**
4
+ * Copy non-localized fields from an existing entry to a new entry being created
5
+ * for a different locale of the same document. Returns a new object with the merged data.
6
+ */
7
+ declare const copyNonLocalizedFields: (contentType: Struct.SingleTypeSchema | Struct.CollectionTypeSchema, documentId: string, dataToCreate: Record<string, any>) => Promise<Record<string, any>>;
3
8
  declare const defaultLocaleCurry: import("lodash").CurriedFunction2<Struct.SingleTypeSchema | Struct.CollectionTypeSchema, Modules.Documents.Params.All, Promise<Modules.Documents.Params.All>>;
4
9
  declare const localeToLookupCurry: import("lodash").CurriedFunction2<Struct.SingleTypeSchema | Struct.CollectionTypeSchema, Modules.Documents.Params.All, Modules.Documents.Params.All>;
5
10
  declare const multiLocaleToLookupCurry: import("lodash").CurriedFunction2<Struct.SingleTypeSchema | Struct.CollectionTypeSchema, Modules.Documents.Params.All, Modules.Documents.Params.All>;
6
11
  declare const localeToDataCurry: import("lodash").CurriedFunction2<Struct.SingleTypeSchema | Struct.CollectionTypeSchema, Modules.Documents.Params.All, Modules.Documents.Params.All>;
7
- export { defaultLocaleCurry as defaultLocale, localeToLookupCurry as localeToLookup, localeToDataCurry as localeToData, multiLocaleToLookupCurry as multiLocaleToLookup, };
12
+ export { defaultLocaleCurry as defaultLocale, localeToLookupCurry as localeToLookup, localeToDataCurry as localeToData, multiLocaleToLookupCurry as multiLocaleToLookup, copyNonLocalizedFields, };
8
13
  //# sourceMappingURL=internationalization.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"internationalization.d.ts","sourceRoot":"","sources":["../../../src/services/document-service/internationalization.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AA8FrD,QAAA,MAAM,kBAAkB,+JAAuB,CAAC;AAChD,QAAA,MAAM,mBAAmB,sJAAwB,CAAC;AAClD,QAAA,MAAM,wBAAwB,sJAA6B,CAAC;AAC5D,QAAA,MAAM,iBAAiB,sJAAsB,CAAC;AAE9C,OAAO,EACL,kBAAkB,IAAI,aAAa,EACnC,mBAAmB,IAAI,cAAc,EACrC,iBAAiB,IAAI,YAAY,EACjC,wBAAwB,IAAI,mBAAmB,GAChD,CAAC"}
1
+ {"version":3,"file":"internationalization.d.ts","sourceRoot":"","sources":["../../../src/services/document-service/internationalization.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AA8FrD;;;GAGG;AACH,QAAA,MAAM,sBAAsB,gBACb,OAAO,gBAAgB,GAAG,OAAO,oBAAoB,cACtD,MAAM,gBACJ,OAAO,MAAM,EAAE,GAAG,CAAC,KAChC,QAAQ,OAAO,MAAM,EAAE,GAAG,CAAC,CAwB7B,CAAC;AAEF,QAAA,MAAM,kBAAkB,+JAAuB,CAAC;AAChD,QAAA,MAAM,mBAAmB,sJAAwB,CAAC;AAClD,QAAA,MAAM,wBAAwB,sJAA6B,CAAC;AAC5D,QAAA,MAAM,iBAAiB,sJAAsB,CAAC;AAE9C,OAAO,EACL,kBAAkB,IAAI,aAAa,EACnC,mBAAmB,IAAI,cAAc,EACrC,iBAAiB,IAAI,YAAY,EACjC,wBAAwB,IAAI,mBAAmB,EAC/C,sBAAsB,GACvB,CAAC"}