@strapi/core 5.50.0 → 5.50.2
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.
- package/dist/compile.d.ts +1 -1
- package/dist/core-api/routes/validation/common.d.ts +3 -3
- package/dist/core-api/routes/validation/common.d.ts.map +1 -1
- package/dist/core-api/routes/validation/component.js +3 -3
- package/dist/core-api/routes/validation/component.js.map +1 -1
- package/dist/core-api/routes/validation/component.mjs +3 -3
- package/dist/core-api/routes/validation/component.mjs.map +1 -1
- package/dist/core-api/service/collection-type.d.ts +2 -2
- package/dist/core-api/service/single-type.d.ts +2 -2
- package/dist/domain/content-type/index.d.ts +1 -1
- package/dist/domain/content-type/index.d.ts.map +1 -1
- package/dist/domain/content-type/index.js +9 -0
- package/dist/domain/content-type/index.js.map +1 -1
- package/dist/domain/content-type/index.mjs +9 -0
- package/dist/domain/content-type/index.mjs.map +1 -1
- package/dist/domain/content-type/validator.d.ts.map +1 -1
- package/dist/domain/content-type/validator.js.map +1 -1
- package/dist/domain/content-type/validator.mjs.map +1 -1
- package/dist/ee/index.js.map +1 -1
- package/dist/ee/index.mjs.map +1 -1
- package/dist/ee/license.d.ts +1 -1
- package/dist/ee/license.d.ts.map +1 -1
- package/dist/ee/license.js +51 -8
- package/dist/ee/license.js.map +1 -1
- package/dist/ee/license.mjs +32 -8
- package/dist/ee/license.mjs.map +1 -1
- package/dist/package.json.js +18 -16
- package/dist/package.json.js.map +1 -1
- package/dist/package.json.mjs +18 -16
- package/dist/package.json.mjs.map +1 -1
- package/dist/services/core-store.js +1 -1
- package/dist/services/core-store.js.map +1 -1
- package/dist/services/core-store.mjs +1 -1
- package/dist/services/core-store.mjs.map +1 -1
- package/dist/services/document-service/attributes/index.d.ts +1 -1
- package/dist/services/document-service/attributes/index.d.ts.map +1 -1
- package/dist/services/document-service/components.d.ts +2 -2
- package/dist/services/document-service/components.d.ts.map +1 -1
- package/dist/services/document-service/components.js +7 -7
- package/dist/services/document-service/components.js.map +1 -1
- package/dist/services/document-service/components.mjs +7 -7
- package/dist/services/document-service/components.mjs.map +1 -1
- package/dist/services/document-service/repository.d.ts.map +1 -1
- package/dist/services/document-service/repository.js +43 -19
- package/dist/services/document-service/repository.js.map +1 -1
- package/dist/services/document-service/repository.mjs +42 -18
- package/dist/services/document-service/repository.mjs.map +1 -1
- package/dist/services/document-service/utils/clone-relations.d.ts +7 -0
- package/dist/services/document-service/utils/clone-relations.d.ts.map +1 -0
- package/dist/services/document-service/utils/clone-relations.js +124 -0
- package/dist/services/document-service/utils/clone-relations.js.map +1 -0
- package/dist/services/document-service/utils/clone-relations.mjs +121 -0
- package/dist/services/document-service/utils/clone-relations.mjs.map +1 -0
- package/dist/services/document-service/utils/self-referential-relations.d.ts +6 -1
- package/dist/services/document-service/utils/self-referential-relations.d.ts.map +1 -1
- package/dist/services/document-service/utils/self-referential-relations.js +120 -7
- package/dist/services/document-service/utils/self-referential-relations.js.map +1 -1
- package/dist/services/document-service/utils/self-referential-relations.mjs +120 -7
- package/dist/services/document-service/utils/self-referential-relations.mjs.map +1 -1
- package/dist/services/entity-service/index.d.ts.map +1 -1
- package/dist/services/entity-service/index.js +1 -1
- package/dist/services/entity-service/index.js.map +1 -1
- package/dist/services/entity-service/index.mjs +1 -1
- package/dist/services/entity-service/index.mjs.map +1 -1
- package/dist/services/entity-validator/validators.d.ts.map +1 -1
- package/dist/services/entity-validator/validators.js +4 -2
- package/dist/services/entity-validator/validators.js.map +1 -1
- package/dist/services/entity-validator/validators.mjs +4 -2
- package/dist/services/entity-validator/validators.mjs.map +1 -1
- package/dist/services/mcp/tools/log.d.ts +2 -2
- package/dist/services/mcp/tools/log.d.ts.map +1 -1
- package/dist/utils/fetch.d.ts +1 -1
- package/dist/utils/fetch.d.ts.map +1 -1
- package/dist/utils/fetch.js +2 -2
- package/dist/utils/fetch.js.map +1 -1
- package/dist/utils/fetch.mjs +2 -2
- package/dist/utils/fetch.mjs.map +1 -1
- package/dist/utils/startup-logger.d.ts.map +1 -1
- package/dist/utils/startup-logger.js +8 -2
- package/dist/utils/startup-logger.js.map +1 -1
- package/dist/utils/startup-logger.mjs +8 -2
- package/dist/utils/startup-logger.mjs.map +1 -1
- package/dist/utils/transform-content-types-to-models.d.ts +9 -9
- package/package.json +18 -16
package/dist/ee/license.js
CHANGED
|
@@ -3,12 +3,32 @@
|
|
|
3
3
|
var fs = require('fs');
|
|
4
4
|
var path = require('path');
|
|
5
5
|
var crypto = require('crypto');
|
|
6
|
+
var z = require('zod/v4');
|
|
6
7
|
var strapiUtils = require('@strapi/utils');
|
|
7
8
|
|
|
8
9
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
10
|
|
|
11
|
+
function _interopNamespace(e) {
|
|
12
|
+
if (e && e.__esModule) return e;
|
|
13
|
+
var n = Object.create(null);
|
|
14
|
+
if (e) {
|
|
15
|
+
Object.keys(e).forEach(function (k) {
|
|
16
|
+
if (k !== 'default') {
|
|
17
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
18
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () { return e[k]; }
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
n.default = e;
|
|
26
|
+
return Object.freeze(n);
|
|
27
|
+
}
|
|
28
|
+
|
|
10
29
|
var fs__default = /*#__PURE__*/_interopDefault(fs);
|
|
11
30
|
var crypto__default = /*#__PURE__*/_interopDefault(crypto);
|
|
31
|
+
var z__namespace = /*#__PURE__*/_interopNamespace(z);
|
|
12
32
|
|
|
13
33
|
const DEFAULT_FEATURES = {
|
|
14
34
|
bronze: [],
|
|
@@ -43,6 +63,18 @@ const DEFAULT_FEATURES = {
|
|
|
43
63
|
]
|
|
44
64
|
};
|
|
45
65
|
const LICENSE_REGISTRY_URI = 'https://license.strapi.io';
|
|
66
|
+
// Shape of a successful (200) response from the license registry.
|
|
67
|
+
const licenseSuccessSchema = z__namespace.object({
|
|
68
|
+
data: z__namespace.object({
|
|
69
|
+
license: z__namespace.string()
|
|
70
|
+
})
|
|
71
|
+
});
|
|
72
|
+
// Shape of a bad-request (400) response from the license registry.
|
|
73
|
+
const licenseErrorSchema = z__namespace.object({
|
|
74
|
+
error: z__namespace.object({
|
|
75
|
+
message: z__namespace.string()
|
|
76
|
+
})
|
|
77
|
+
});
|
|
46
78
|
const publicKey = fs__default.default.readFileSync(path.resolve(__dirname, '../../resources/key.pub'));
|
|
47
79
|
class LicenseCheckError extends Error {
|
|
48
80
|
constructor(message, shouldFallback = false){
|
|
@@ -83,8 +115,11 @@ const verifyLicense = (license)=>{
|
|
|
83
115
|
Object.freeze(licenseInfo.features);
|
|
84
116
|
return licenseInfo;
|
|
85
117
|
};
|
|
86
|
-
const
|
|
87
|
-
|
|
118
|
+
const createShouldFallbackError = ()=>{
|
|
119
|
+
return new LicenseCheckError('Could not proceed to the online validation of your license.', true);
|
|
120
|
+
};
|
|
121
|
+
const throwShouldFallbackError = ()=>{
|
|
122
|
+
throw createShouldFallbackError();
|
|
88
123
|
};
|
|
89
124
|
const fetchLicense = async ({ strapi }, key, projectId)=>{
|
|
90
125
|
const { installId: installIdFromPackageJson } = strapi.config;
|
|
@@ -98,22 +133,30 @@ const fetchLicense = async ({ strapi }, key, projectId)=>{
|
|
|
98
133
|
projectId,
|
|
99
134
|
deviceId: strapiUtils.generateInstallId(projectId, installIdFromPackageJson)
|
|
100
135
|
})
|
|
101
|
-
}).catch(
|
|
136
|
+
}).catch(throwShouldFallbackError);
|
|
102
137
|
const contentType = response.headers.get('Content-Type');
|
|
103
138
|
if (contentType?.includes('application/json')) {
|
|
104
|
-
const
|
|
139
|
+
const body = await response.json();
|
|
105
140
|
switch(response.status){
|
|
106
141
|
case 200:
|
|
107
|
-
|
|
142
|
+
{
|
|
143
|
+
const result = licenseSuccessSchema.safeParse(body);
|
|
144
|
+
if (!result.success) throw createShouldFallbackError();
|
|
145
|
+
return result.data.data.license;
|
|
146
|
+
}
|
|
108
147
|
case 400:
|
|
109
|
-
|
|
148
|
+
{
|
|
149
|
+
const result = licenseErrorSchema.safeParse(body);
|
|
150
|
+
if (!result.success) throw createShouldFallbackError();
|
|
151
|
+
throw new LicenseCheckError(result.data.error.message);
|
|
152
|
+
}
|
|
110
153
|
case 404:
|
|
111
154
|
throw new LicenseCheckError('The license used does not exists.');
|
|
112
155
|
default:
|
|
113
|
-
|
|
156
|
+
throw createShouldFallbackError();
|
|
114
157
|
}
|
|
115
158
|
} else {
|
|
116
|
-
|
|
159
|
+
throw createShouldFallbackError();
|
|
117
160
|
}
|
|
118
161
|
};
|
|
119
162
|
|
package/dist/ee/license.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"license.js","sources":["../../src/ee/license.ts"],"sourcesContent":["import fs from 'fs';\nimport { join, resolve } from 'path';\nimport crypto from 'crypto';\nimport type { Core } from '@strapi/types';\n\nimport { generateInstallId } from '@strapi/utils';\n\ninterface LicenseInfo {\n type: 'bronze' | 'silver' | 'gold';\n isTrial: boolean;\n expireAt?: string;\n seats?: number;\n features?: Array<{ name: string; options?: Record<string, unknown> }>;\n subscriptionId?: string;\n planPriceId?: string;\n}\n\nconst DEFAULT_FEATURES = {\n bronze: [],\n silver: [],\n gold: [\n { name: 'sso' },\n // Set a null retention duration to allow the user to override it\n // The default of 90 days is set in the audit logs service\n { name: 'audit-logs', options: { retentionDays: null } },\n { name: 'review-workflows' },\n { name: 'cms-content-releases' },\n { name: 'cms-content-history', options: { retentionDays: 99999 } },\n { name: 'cms-advanced-preview' },\n ],\n};\n\nconst LICENSE_REGISTRY_URI = 'https://license.strapi.io';\n\nconst publicKey = fs.readFileSync(resolve(__dirname, '../../resources/key.pub'));\n\nclass LicenseCheckError extends Error {\n shouldFallback = false;\n\n constructor(message: string, shouldFallback = false) {\n super(message);\n\n this.shouldFallback = shouldFallback;\n }\n}\n\nconst readLicense = (directory: string) => {\n try {\n const path = join(directory, 'license.txt');\n return fs.readFileSync(path).toString();\n } catch (error) {\n if (typeof error === 'object' && error !== null && 'code' in error && error.code !== 'ENOENT') {\n throw Error('License file not readable, review its format and access rules.');\n }\n }\n};\n\nconst verifyLicense = (license: string) => {\n const [signature, base64Content] = Buffer.from(license, 'base64').toString().split('\\n');\n\n if (!signature || !base64Content) {\n throw new Error('Invalid license.');\n }\n\n const stringifiedContent = Buffer.from(base64Content, 'base64').toString();\n\n const verify = crypto.createVerify('RSA-SHA256');\n verify.update(stringifiedContent);\n verify.end();\n\n const verified = verify.verify(publicKey, signature, 'base64');\n\n if (!verified) {\n throw new Error('Invalid license.');\n }\n\n const licenseInfo: LicenseInfo = JSON.parse(stringifiedContent);\n\n if (!licenseInfo.features) {\n licenseInfo.features = DEFAULT_FEATURES[licenseInfo.type];\n }\n\n if (!licenseInfo.isTrial) {\n licenseInfo.isTrial = false;\n }\n\n Object.freeze(licenseInfo.features);\n return licenseInfo;\n};\n\nconst
|
|
1
|
+
{"version":3,"file":"license.js","sources":["../../src/ee/license.ts"],"sourcesContent":["import fs from 'fs';\nimport { join, resolve } from 'path';\nimport crypto from 'crypto';\nimport * as z from 'zod/v4';\nimport type { Core } from '@strapi/types';\n\nimport { generateInstallId } from '@strapi/utils';\n\ninterface LicenseInfo {\n type: 'bronze' | 'silver' | 'gold';\n isTrial: boolean;\n expireAt?: string;\n seats?: number;\n features?: Array<{ name: string; options?: Record<string, unknown> }>;\n subscriptionId?: string;\n planPriceId?: string;\n}\n\nconst DEFAULT_FEATURES = {\n bronze: [],\n silver: [],\n gold: [\n { name: 'sso' },\n // Set a null retention duration to allow the user to override it\n // The default of 90 days is set in the audit logs service\n { name: 'audit-logs', options: { retentionDays: null } },\n { name: 'review-workflows' },\n { name: 'cms-content-releases' },\n { name: 'cms-content-history', options: { retentionDays: 99999 } },\n { name: 'cms-advanced-preview' },\n ],\n};\n\nconst LICENSE_REGISTRY_URI = 'https://license.strapi.io';\n\n// Shape of a successful (200) response from the license registry.\nconst licenseSuccessSchema = z.object({\n data: z.object({\n license: z.string(),\n }),\n});\n\n// Shape of a bad-request (400) response from the license registry.\nconst licenseErrorSchema = z.object({\n error: z.object({\n message: z.string(),\n }),\n});\n\nconst publicKey = fs.readFileSync(resolve(__dirname, '../../resources/key.pub'));\n\nclass LicenseCheckError extends Error {\n shouldFallback = false;\n\n constructor(message: string, shouldFallback = false) {\n super(message);\n\n this.shouldFallback = shouldFallback;\n }\n}\n\nconst readLicense = (directory: string) => {\n try {\n const path = join(directory, 'license.txt');\n return fs.readFileSync(path).toString();\n } catch (error) {\n if (typeof error === 'object' && error !== null && 'code' in error && error.code !== 'ENOENT') {\n throw Error('License file not readable, review its format and access rules.');\n }\n }\n};\n\nconst verifyLicense = (license: string) => {\n const [signature, base64Content] = Buffer.from(license, 'base64').toString().split('\\n');\n\n if (!signature || !base64Content) {\n throw new Error('Invalid license.');\n }\n\n const stringifiedContent = Buffer.from(base64Content, 'base64').toString();\n\n const verify = crypto.createVerify('RSA-SHA256');\n verify.update(stringifiedContent);\n verify.end();\n\n const verified = verify.verify(publicKey, signature, 'base64');\n\n if (!verified) {\n throw new Error('Invalid license.');\n }\n\n const licenseInfo: LicenseInfo = JSON.parse(stringifiedContent);\n\n if (!licenseInfo.features) {\n licenseInfo.features = DEFAULT_FEATURES[licenseInfo.type];\n }\n\n if (!licenseInfo.isTrial) {\n licenseInfo.isTrial = false;\n }\n\n Object.freeze(licenseInfo.features);\n return licenseInfo;\n};\n\nconst createShouldFallbackError = () => {\n return new LicenseCheckError('Could not proceed to the online validation of your license.', true);\n};\n\nconst throwShouldFallbackError = () => {\n throw createShouldFallbackError();\n};\n\nconst fetchLicense = async (\n { strapi }: { strapi: Core.Strapi },\n key: string,\n projectId: string\n) => {\n const { installId: installIdFromPackageJson } = strapi.config;\n\n const response = await strapi\n .fetch(`${LICENSE_REGISTRY_URI}/api/licenses/validate`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n key,\n projectId,\n deviceId: generateInstallId(projectId, installIdFromPackageJson),\n }), // NOTE: Doing nothing on the LR with the installId\n })\n .catch(throwShouldFallbackError);\n\n const contentType = response.headers.get('Content-Type');\n\n if (contentType?.includes('application/json')) {\n const body = await response.json();\n\n switch (response.status) {\n case 200: {\n const result = licenseSuccessSchema.safeParse(body);\n if (!result.success) throw createShouldFallbackError();\n return result.data.data.license;\n }\n case 400: {\n const result = licenseErrorSchema.safeParse(body);\n if (!result.success) throw createShouldFallbackError();\n throw new LicenseCheckError(result.data.error.message);\n }\n case 404:\n throw new LicenseCheckError('The license used does not exists.');\n default:\n throw createShouldFallbackError();\n }\n } else {\n throw createShouldFallbackError();\n }\n};\n\nexport { readLicense, verifyLicense, fetchLicense, LicenseCheckError, LICENSE_REGISTRY_URI };\n"],"names":["DEFAULT_FEATURES","bronze","silver","gold","name","options","retentionDays","LICENSE_REGISTRY_URI","licenseSuccessSchema","z","object","data","license","string","licenseErrorSchema","error","message","publicKey","fs","readFileSync","resolve","__dirname","LicenseCheckError","Error","shouldFallback","readLicense","directory","path","join","toString","code","verifyLicense","signature","base64Content","Buffer","from","split","stringifiedContent","verify","crypto","createVerify","update","end","verified","licenseInfo","JSON","parse","features","type","isTrial","Object","freeze","createShouldFallbackError","throwShouldFallbackError","fetchLicense","strapi","key","projectId","installId","installIdFromPackageJson","config","response","fetch","method","headers","body","stringify","deviceId","generateInstallId","catch","contentType","get","includes","json","status","result","safeParse","success"],"mappings":"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"}
|
package/dist/ee/license.mjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import fs from 'fs';
|
|
2
2
|
import { resolve, join } from 'path';
|
|
3
3
|
import crypto from 'crypto';
|
|
4
|
+
import * as z from 'zod/v4';
|
|
4
5
|
import { generateInstallId } from '@strapi/utils';
|
|
5
6
|
|
|
6
7
|
const DEFAULT_FEATURES = {
|
|
@@ -36,6 +37,18 @@ const DEFAULT_FEATURES = {
|
|
|
36
37
|
]
|
|
37
38
|
};
|
|
38
39
|
const LICENSE_REGISTRY_URI = 'https://license.strapi.io';
|
|
40
|
+
// Shape of a successful (200) response from the license registry.
|
|
41
|
+
const licenseSuccessSchema = z.object({
|
|
42
|
+
data: z.object({
|
|
43
|
+
license: z.string()
|
|
44
|
+
})
|
|
45
|
+
});
|
|
46
|
+
// Shape of a bad-request (400) response from the license registry.
|
|
47
|
+
const licenseErrorSchema = z.object({
|
|
48
|
+
error: z.object({
|
|
49
|
+
message: z.string()
|
|
50
|
+
})
|
|
51
|
+
});
|
|
39
52
|
const publicKey = fs.readFileSync(resolve(__dirname, '../../resources/key.pub'));
|
|
40
53
|
class LicenseCheckError extends Error {
|
|
41
54
|
constructor(message, shouldFallback = false){
|
|
@@ -76,8 +89,11 @@ const verifyLicense = (license)=>{
|
|
|
76
89
|
Object.freeze(licenseInfo.features);
|
|
77
90
|
return licenseInfo;
|
|
78
91
|
};
|
|
79
|
-
const
|
|
80
|
-
|
|
92
|
+
const createShouldFallbackError = ()=>{
|
|
93
|
+
return new LicenseCheckError('Could not proceed to the online validation of your license.', true);
|
|
94
|
+
};
|
|
95
|
+
const throwShouldFallbackError = ()=>{
|
|
96
|
+
throw createShouldFallbackError();
|
|
81
97
|
};
|
|
82
98
|
const fetchLicense = async ({ strapi }, key, projectId)=>{
|
|
83
99
|
const { installId: installIdFromPackageJson } = strapi.config;
|
|
@@ -91,22 +107,30 @@ const fetchLicense = async ({ strapi }, key, projectId)=>{
|
|
|
91
107
|
projectId,
|
|
92
108
|
deviceId: generateInstallId(projectId, installIdFromPackageJson)
|
|
93
109
|
})
|
|
94
|
-
}).catch(
|
|
110
|
+
}).catch(throwShouldFallbackError);
|
|
95
111
|
const contentType = response.headers.get('Content-Type');
|
|
96
112
|
if (contentType?.includes('application/json')) {
|
|
97
|
-
const
|
|
113
|
+
const body = await response.json();
|
|
98
114
|
switch(response.status){
|
|
99
115
|
case 200:
|
|
100
|
-
|
|
116
|
+
{
|
|
117
|
+
const result = licenseSuccessSchema.safeParse(body);
|
|
118
|
+
if (!result.success) throw createShouldFallbackError();
|
|
119
|
+
return result.data.data.license;
|
|
120
|
+
}
|
|
101
121
|
case 400:
|
|
102
|
-
|
|
122
|
+
{
|
|
123
|
+
const result = licenseErrorSchema.safeParse(body);
|
|
124
|
+
if (!result.success) throw createShouldFallbackError();
|
|
125
|
+
throw new LicenseCheckError(result.data.error.message);
|
|
126
|
+
}
|
|
103
127
|
case 404:
|
|
104
128
|
throw new LicenseCheckError('The license used does not exists.');
|
|
105
129
|
default:
|
|
106
|
-
|
|
130
|
+
throw createShouldFallbackError();
|
|
107
131
|
}
|
|
108
132
|
} else {
|
|
109
|
-
|
|
133
|
+
throw createShouldFallbackError();
|
|
110
134
|
}
|
|
111
135
|
};
|
|
112
136
|
|
package/dist/ee/license.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"license.mjs","sources":["../../src/ee/license.ts"],"sourcesContent":["import fs from 'fs';\nimport { join, resolve } from 'path';\nimport crypto from 'crypto';\nimport type { Core } from '@strapi/types';\n\nimport { generateInstallId } from '@strapi/utils';\n\ninterface LicenseInfo {\n type: 'bronze' | 'silver' | 'gold';\n isTrial: boolean;\n expireAt?: string;\n seats?: number;\n features?: Array<{ name: string; options?: Record<string, unknown> }>;\n subscriptionId?: string;\n planPriceId?: string;\n}\n\nconst DEFAULT_FEATURES = {\n bronze: [],\n silver: [],\n gold: [\n { name: 'sso' },\n // Set a null retention duration to allow the user to override it\n // The default of 90 days is set in the audit logs service\n { name: 'audit-logs', options: { retentionDays: null } },\n { name: 'review-workflows' },\n { name: 'cms-content-releases' },\n { name: 'cms-content-history', options: { retentionDays: 99999 } },\n { name: 'cms-advanced-preview' },\n ],\n};\n\nconst LICENSE_REGISTRY_URI = 'https://license.strapi.io';\n\nconst publicKey = fs.readFileSync(resolve(__dirname, '../../resources/key.pub'));\n\nclass LicenseCheckError extends Error {\n shouldFallback = false;\n\n constructor(message: string, shouldFallback = false) {\n super(message);\n\n this.shouldFallback = shouldFallback;\n }\n}\n\nconst readLicense = (directory: string) => {\n try {\n const path = join(directory, 'license.txt');\n return fs.readFileSync(path).toString();\n } catch (error) {\n if (typeof error === 'object' && error !== null && 'code' in error && error.code !== 'ENOENT') {\n throw Error('License file not readable, review its format and access rules.');\n }\n }\n};\n\nconst verifyLicense = (license: string) => {\n const [signature, base64Content] = Buffer.from(license, 'base64').toString().split('\\n');\n\n if (!signature || !base64Content) {\n throw new Error('Invalid license.');\n }\n\n const stringifiedContent = Buffer.from(base64Content, 'base64').toString();\n\n const verify = crypto.createVerify('RSA-SHA256');\n verify.update(stringifiedContent);\n verify.end();\n\n const verified = verify.verify(publicKey, signature, 'base64');\n\n if (!verified) {\n throw new Error('Invalid license.');\n }\n\n const licenseInfo: LicenseInfo = JSON.parse(stringifiedContent);\n\n if (!licenseInfo.features) {\n licenseInfo.features = DEFAULT_FEATURES[licenseInfo.type];\n }\n\n if (!licenseInfo.isTrial) {\n licenseInfo.isTrial = false;\n }\n\n Object.freeze(licenseInfo.features);\n return licenseInfo;\n};\n\nconst
|
|
1
|
+
{"version":3,"file":"license.mjs","sources":["../../src/ee/license.ts"],"sourcesContent":["import fs from 'fs';\nimport { join, resolve } from 'path';\nimport crypto from 'crypto';\nimport * as z from 'zod/v4';\nimport type { Core } from '@strapi/types';\n\nimport { generateInstallId } from '@strapi/utils';\n\ninterface LicenseInfo {\n type: 'bronze' | 'silver' | 'gold';\n isTrial: boolean;\n expireAt?: string;\n seats?: number;\n features?: Array<{ name: string; options?: Record<string, unknown> }>;\n subscriptionId?: string;\n planPriceId?: string;\n}\n\nconst DEFAULT_FEATURES = {\n bronze: [],\n silver: [],\n gold: [\n { name: 'sso' },\n // Set a null retention duration to allow the user to override it\n // The default of 90 days is set in the audit logs service\n { name: 'audit-logs', options: { retentionDays: null } },\n { name: 'review-workflows' },\n { name: 'cms-content-releases' },\n { name: 'cms-content-history', options: { retentionDays: 99999 } },\n { name: 'cms-advanced-preview' },\n ],\n};\n\nconst LICENSE_REGISTRY_URI = 'https://license.strapi.io';\n\n// Shape of a successful (200) response from the license registry.\nconst licenseSuccessSchema = z.object({\n data: z.object({\n license: z.string(),\n }),\n});\n\n// Shape of a bad-request (400) response from the license registry.\nconst licenseErrorSchema = z.object({\n error: z.object({\n message: z.string(),\n }),\n});\n\nconst publicKey = fs.readFileSync(resolve(__dirname, '../../resources/key.pub'));\n\nclass LicenseCheckError extends Error {\n shouldFallback = false;\n\n constructor(message: string, shouldFallback = false) {\n super(message);\n\n this.shouldFallback = shouldFallback;\n }\n}\n\nconst readLicense = (directory: string) => {\n try {\n const path = join(directory, 'license.txt');\n return fs.readFileSync(path).toString();\n } catch (error) {\n if (typeof error === 'object' && error !== null && 'code' in error && error.code !== 'ENOENT') {\n throw Error('License file not readable, review its format and access rules.');\n }\n }\n};\n\nconst verifyLicense = (license: string) => {\n const [signature, base64Content] = Buffer.from(license, 'base64').toString().split('\\n');\n\n if (!signature || !base64Content) {\n throw new Error('Invalid license.');\n }\n\n const stringifiedContent = Buffer.from(base64Content, 'base64').toString();\n\n const verify = crypto.createVerify('RSA-SHA256');\n verify.update(stringifiedContent);\n verify.end();\n\n const verified = verify.verify(publicKey, signature, 'base64');\n\n if (!verified) {\n throw new Error('Invalid license.');\n }\n\n const licenseInfo: LicenseInfo = JSON.parse(stringifiedContent);\n\n if (!licenseInfo.features) {\n licenseInfo.features = DEFAULT_FEATURES[licenseInfo.type];\n }\n\n if (!licenseInfo.isTrial) {\n licenseInfo.isTrial = false;\n }\n\n Object.freeze(licenseInfo.features);\n return licenseInfo;\n};\n\nconst createShouldFallbackError = () => {\n return new LicenseCheckError('Could not proceed to the online validation of your license.', true);\n};\n\nconst throwShouldFallbackError = () => {\n throw createShouldFallbackError();\n};\n\nconst fetchLicense = async (\n { strapi }: { strapi: Core.Strapi },\n key: string,\n projectId: string\n) => {\n const { installId: installIdFromPackageJson } = strapi.config;\n\n const response = await strapi\n .fetch(`${LICENSE_REGISTRY_URI}/api/licenses/validate`, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n key,\n projectId,\n deviceId: generateInstallId(projectId, installIdFromPackageJson),\n }), // NOTE: Doing nothing on the LR with the installId\n })\n .catch(throwShouldFallbackError);\n\n const contentType = response.headers.get('Content-Type');\n\n if (contentType?.includes('application/json')) {\n const body = await response.json();\n\n switch (response.status) {\n case 200: {\n const result = licenseSuccessSchema.safeParse(body);\n if (!result.success) throw createShouldFallbackError();\n return result.data.data.license;\n }\n case 400: {\n const result = licenseErrorSchema.safeParse(body);\n if (!result.success) throw createShouldFallbackError();\n throw new LicenseCheckError(result.data.error.message);\n }\n case 404:\n throw new LicenseCheckError('The license used does not exists.');\n default:\n throw createShouldFallbackError();\n }\n } else {\n throw createShouldFallbackError();\n }\n};\n\nexport { readLicense, verifyLicense, fetchLicense, LicenseCheckError, LICENSE_REGISTRY_URI };\n"],"names":["DEFAULT_FEATURES","bronze","silver","gold","name","options","retentionDays","LICENSE_REGISTRY_URI","licenseSuccessSchema","z","object","data","license","string","licenseErrorSchema","error","message","publicKey","fs","readFileSync","resolve","__dirname","LicenseCheckError","Error","shouldFallback","readLicense","directory","path","join","toString","code","verifyLicense","signature","base64Content","Buffer","from","split","stringifiedContent","verify","crypto","createVerify","update","end","verified","licenseInfo","JSON","parse","features","type","isTrial","Object","freeze","createShouldFallbackError","throwShouldFallbackError","fetchLicense","strapi","key","projectId","installId","installIdFromPackageJson","config","response","fetch","method","headers","body","stringify","deviceId","generateInstallId","catch","contentType","get","includes","json","status","result","safeParse","success"],"mappings":"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"}
|
package/dist/package.json.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var name = "@strapi/core";
|
|
6
|
-
var version = "5.50.
|
|
6
|
+
var version = "5.50.2";
|
|
7
7
|
var description = "Core of Strapi";
|
|
8
8
|
var homepage = "https://strapi.io";
|
|
9
9
|
var bugs = {
|
|
@@ -51,8 +51,9 @@ var scripts = {
|
|
|
51
51
|
"build:types": "run -T tsc -p tsconfig.build.json --emitDeclarationOnly",
|
|
52
52
|
watch: "run -T rollup -c -w",
|
|
53
53
|
clean: "run -T rimraf ./dist",
|
|
54
|
-
lint: "run -T eslint .",
|
|
54
|
+
lint: "run -T eslint . --max-warnings=0",
|
|
55
55
|
prepublishOnly: "yarn clean && yarn build",
|
|
56
|
+
"test:ts": "run -T tsc -p tsconfig.json",
|
|
56
57
|
"test:unit": "run -T jest",
|
|
57
58
|
"test:unit:watch": "run -T jest --watch",
|
|
58
59
|
"test:unit:vitest": "vitest run",
|
|
@@ -64,15 +65,15 @@ var dependencies = {
|
|
|
64
65
|
"@koa/router": "12.0.2",
|
|
65
66
|
"@modelcontextprotocol/sdk": "1.29.0",
|
|
66
67
|
"@paralleldrive/cuid2": "2.2.2",
|
|
67
|
-
"@strapi/admin": "5.50.
|
|
68
|
-
"@strapi/database": "5.50.
|
|
69
|
-
"@strapi/generators": "5.50.
|
|
70
|
-
"@strapi/logger": "5.50.
|
|
71
|
-
"@strapi/openapi": "5.50.
|
|
72
|
-
"@strapi/permissions": "5.50.
|
|
73
|
-
"@strapi/types": "5.50.
|
|
74
|
-
"@strapi/typescript-utils": "5.50.
|
|
75
|
-
"@strapi/utils": "5.50.
|
|
68
|
+
"@strapi/admin": "5.50.2",
|
|
69
|
+
"@strapi/database": "5.50.2",
|
|
70
|
+
"@strapi/generators": "5.50.2",
|
|
71
|
+
"@strapi/logger": "5.50.2",
|
|
72
|
+
"@strapi/openapi": "5.50.2",
|
|
73
|
+
"@strapi/permissions": "5.50.2",
|
|
74
|
+
"@strapi/types": "5.50.2",
|
|
75
|
+
"@strapi/typescript-utils": "5.50.2",
|
|
76
|
+
"@strapi/utils": "5.50.2",
|
|
76
77
|
"@vercel/stega": "0.1.2",
|
|
77
78
|
bcryptjs: "2.4.3",
|
|
78
79
|
boxen: "5.1.2",
|
|
@@ -93,7 +94,7 @@ var dependencies = {
|
|
|
93
94
|
inquirer: "9.3.8",
|
|
94
95
|
"is-docker": "2.2.1",
|
|
95
96
|
"json-logic-js": "2.0.5",
|
|
96
|
-
jsonwebtoken: "9.0.
|
|
97
|
+
jsonwebtoken: "9.0.3",
|
|
97
98
|
koa: "2.16.4",
|
|
98
99
|
"koa-body": "6.0.1",
|
|
99
100
|
"koa-compose": "4.1.0",
|
|
@@ -110,7 +111,7 @@ var dependencies = {
|
|
|
110
111
|
ora: "5.4.1",
|
|
111
112
|
"package-json": "10.0.1",
|
|
112
113
|
"pkg-up": "3.1.0",
|
|
113
|
-
qs: "6.15.
|
|
114
|
+
qs: "6.15.3",
|
|
114
115
|
"resolve.exports": "2.0.2",
|
|
115
116
|
semver: "7.7.4",
|
|
116
117
|
typescript: "5.9.3",
|
|
@@ -136,11 +137,12 @@ var devDependencies = {
|
|
|
136
137
|
"@types/mime-types": "2.1.1",
|
|
137
138
|
"@types/node": "20.19.41",
|
|
138
139
|
"@types/node-schedule": "2.1.7",
|
|
139
|
-
"eslint-config-custom": "5.50.
|
|
140
|
+
"eslint-config-custom": "5.50.2",
|
|
141
|
+
jest: "29.6.0",
|
|
140
142
|
supertest: "7.2.2",
|
|
141
|
-
tsconfig: "5.50.
|
|
143
|
+
tsconfig: "5.50.2",
|
|
142
144
|
vitest: "catalog:",
|
|
143
|
-
"vitest-config": "5.50.
|
|
145
|
+
"vitest-config": "5.50.2"
|
|
144
146
|
};
|
|
145
147
|
var engines = {
|
|
146
148
|
node: ">=20.0.0 <=26.x.x",
|
package/dist/package.json.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"package.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/package.json.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var name = "@strapi/core";
|
|
2
|
-
var version = "5.50.
|
|
2
|
+
var version = "5.50.2";
|
|
3
3
|
var description = "Core of Strapi";
|
|
4
4
|
var homepage = "https://strapi.io";
|
|
5
5
|
var bugs = {
|
|
@@ -47,8 +47,9 @@ var scripts = {
|
|
|
47
47
|
"build:types": "run -T tsc -p tsconfig.build.json --emitDeclarationOnly",
|
|
48
48
|
watch: "run -T rollup -c -w",
|
|
49
49
|
clean: "run -T rimraf ./dist",
|
|
50
|
-
lint: "run -T eslint .",
|
|
50
|
+
lint: "run -T eslint . --max-warnings=0",
|
|
51
51
|
prepublishOnly: "yarn clean && yarn build",
|
|
52
|
+
"test:ts": "run -T tsc -p tsconfig.json",
|
|
52
53
|
"test:unit": "run -T jest",
|
|
53
54
|
"test:unit:watch": "run -T jest --watch",
|
|
54
55
|
"test:unit:vitest": "vitest run",
|
|
@@ -60,15 +61,15 @@ var dependencies = {
|
|
|
60
61
|
"@koa/router": "12.0.2",
|
|
61
62
|
"@modelcontextprotocol/sdk": "1.29.0",
|
|
62
63
|
"@paralleldrive/cuid2": "2.2.2",
|
|
63
|
-
"@strapi/admin": "5.50.
|
|
64
|
-
"@strapi/database": "5.50.
|
|
65
|
-
"@strapi/generators": "5.50.
|
|
66
|
-
"@strapi/logger": "5.50.
|
|
67
|
-
"@strapi/openapi": "5.50.
|
|
68
|
-
"@strapi/permissions": "5.50.
|
|
69
|
-
"@strapi/types": "5.50.
|
|
70
|
-
"@strapi/typescript-utils": "5.50.
|
|
71
|
-
"@strapi/utils": "5.50.
|
|
64
|
+
"@strapi/admin": "5.50.2",
|
|
65
|
+
"@strapi/database": "5.50.2",
|
|
66
|
+
"@strapi/generators": "5.50.2",
|
|
67
|
+
"@strapi/logger": "5.50.2",
|
|
68
|
+
"@strapi/openapi": "5.50.2",
|
|
69
|
+
"@strapi/permissions": "5.50.2",
|
|
70
|
+
"@strapi/types": "5.50.2",
|
|
71
|
+
"@strapi/typescript-utils": "5.50.2",
|
|
72
|
+
"@strapi/utils": "5.50.2",
|
|
72
73
|
"@vercel/stega": "0.1.2",
|
|
73
74
|
bcryptjs: "2.4.3",
|
|
74
75
|
boxen: "5.1.2",
|
|
@@ -89,7 +90,7 @@ var dependencies = {
|
|
|
89
90
|
inquirer: "9.3.8",
|
|
90
91
|
"is-docker": "2.2.1",
|
|
91
92
|
"json-logic-js": "2.0.5",
|
|
92
|
-
jsonwebtoken: "9.0.
|
|
93
|
+
jsonwebtoken: "9.0.3",
|
|
93
94
|
koa: "2.16.4",
|
|
94
95
|
"koa-body": "6.0.1",
|
|
95
96
|
"koa-compose": "4.1.0",
|
|
@@ -106,7 +107,7 @@ var dependencies = {
|
|
|
106
107
|
ora: "5.4.1",
|
|
107
108
|
"package-json": "10.0.1",
|
|
108
109
|
"pkg-up": "3.1.0",
|
|
109
|
-
qs: "6.15.
|
|
110
|
+
qs: "6.15.3",
|
|
110
111
|
"resolve.exports": "2.0.2",
|
|
111
112
|
semver: "7.7.4",
|
|
112
113
|
typescript: "5.9.3",
|
|
@@ -132,11 +133,12 @@ var devDependencies = {
|
|
|
132
133
|
"@types/mime-types": "2.1.1",
|
|
133
134
|
"@types/node": "20.19.41",
|
|
134
135
|
"@types/node-schedule": "2.1.7",
|
|
135
|
-
"eslint-config-custom": "5.50.
|
|
136
|
+
"eslint-config-custom": "5.50.2",
|
|
137
|
+
jest: "29.6.0",
|
|
136
138
|
supertest: "7.2.2",
|
|
137
|
-
tsconfig: "5.50.
|
|
139
|
+
tsconfig: "5.50.2",
|
|
138
140
|
vitest: "catalog:",
|
|
139
|
-
"vitest-config": "5.50.
|
|
141
|
+
"vitest-config": "5.50.2"
|
|
140
142
|
};
|
|
141
143
|
var engines = {
|
|
142
144
|
node: ">=20.0.0 <=26.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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -34,7 +34,7 @@ const createCoreStore = ({ db })=>{
|
|
|
34
34
|
...params
|
|
35
35
|
};
|
|
36
36
|
};
|
|
37
|
-
const store = function(defaultParams) {
|
|
37
|
+
const store = function createScopedCoreStore(defaultParams) {
|
|
38
38
|
return {
|
|
39
39
|
get: (params)=>store.get(mergeParams(defaultParams, params)),
|
|
40
40
|
set: (params)=>store.set(mergeParams(defaultParams, params)),
|
|
@@ -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<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,cAAAA,GAAwB;IAC5BC,GAAAA,EAAK,oBAAA;IACLC,YAAAA,EAAc,4BAAA;IACdC,SAAAA,EAAW,4BAAA;IACXC,UAAAA,EAAY;QACVC,EAAAA,EAAI;YACFC,IAAAA,EAAM;AACR,SAAA;QACAC,GAAAA,EAAK;YACHD,IAAAA,EAAM;AACR,SAAA;QACAE,KAAAA,EAAO;YACLF,IAAAA,EAAM;AACR,SAAA;QACAA,IAAAA,EAAM;YACJA,IAAAA,EAAM;AACR,SAAA;QACAG,WAAAA,EAAa;YACXH,IAAAA,EAAM;AACR,SAAA;QACAI,GAAAA,EAAK;YACHJ,IAAAA,EAAM;AACR;AACF;AACF;AAgCA,MAAMK,eAAAA,GAAkB,CAAC,EAAEC,EAAE,EAAoB,GAAA;IAC/C,MAAMC,WAAAA,GAAc,CAACC,aAAAA,EAAgCC,MAAAA,GAAAA;QACnD,OAAO;AACL,YAAA,GAAGD,aAAa;AAChB,YAAA,GAAGC;AACL,SAAA;AACF,IAAA,CAAA;IAEA,MAAMC,KAAAA,GAAmB,
|
|
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 createScopedCoreStore(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","createScopedCoreStore","get","set","delete","name","prefix","where","data","query","findOne","JSON","parse","err","Date","Number","update","stringify","toString","create"],"mappings":"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"}
|
|
@@ -32,7 +32,7 @@ const createCoreStore = ({ db })=>{
|
|
|
32
32
|
...params
|
|
33
33
|
};
|
|
34
34
|
};
|
|
35
|
-
const store = function(defaultParams) {
|
|
35
|
+
const store = function createScopedCoreStore(defaultParams) {
|
|
36
36
|
return {
|
|
37
37
|
get: (params)=>store.get(mergeParams(defaultParams, params)),
|
|
38
38
|
set: (params)=>store.set(mergeParams(defaultParams, params)),
|
|
@@ -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<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,cAAAA,GAAwB;IAC5BC,GAAAA,EAAK,oBAAA;IACLC,YAAAA,EAAc,4BAAA;IACdC,SAAAA,EAAW,4BAAA;IACXC,UAAAA,EAAY;QACVC,EAAAA,EAAI;YACFC,IAAAA,EAAM;AACR,SAAA;QACAC,GAAAA,EAAK;YACHD,IAAAA,EAAM;AACR,SAAA;QACAE,KAAAA,EAAO;YACLF,IAAAA,EAAM;AACR,SAAA;QACAA,IAAAA,EAAM;YACJA,IAAAA,EAAM;AACR,SAAA;QACAG,WAAAA,EAAa;YACXH,IAAAA,EAAM;AACR,SAAA;QACAI,GAAAA,EAAK;YACHJ,IAAAA,EAAM;AACR;AACF;AACF;AAgCA,MAAMK,eAAAA,GAAkB,CAAC,EAAEC,EAAE,EAAoB,GAAA;IAC/C,MAAMC,WAAAA,GAAc,CAACC,aAAAA,EAAgCC,MAAAA,GAAAA;QACnD,OAAO;AACL,YAAA,GAAGD,aAAa;AAChB,YAAA,GAAGC;AACL,SAAA;AACF,IAAA,CAAA;IAEA,MAAMC,KAAAA,GAAmB,
|
|
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 createScopedCoreStore(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","createScopedCoreStore","get","set","delete","name","prefix","where","data","query","findOne","JSON","parse","err","Date","Number","update","stringify","toString","create"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { UID, Modules } from '@strapi/types';
|
|
2
2
|
type Data = Modules.Documents.Params.Data.Input<UID.Schema>;
|
|
3
|
-
declare const applyTransforms: import("lodash").CurriedFunction2<import("@strapi/types/dist/struct").ComponentSchema | import("@strapi/types/dist/struct").ContentTypeSchema, Data, Data>;
|
|
3
|
+
declare const applyTransforms: import("lodash").CurriedFunction2<import("@strapi/types/dist/struct/schema.js").ComponentSchema | import("@strapi/types/dist/struct/schema.js").ContentTypeSchema, Data, Data>;
|
|
4
4
|
export { applyTransforms };
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/document-service/attributes/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAU,MAAM,eAAe,CAAC;AAK1D,KAAK,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAE5D,QAAA,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/document-service/attributes/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAU,MAAM,eAAe,CAAC;AAK1D,KAAK,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAE5D,QAAA,MAAM,eAAe,gLAsBnB,CAAC;AAEH,OAAO,EAAE,eAAe,EAAE,CAAC"}
|
|
@@ -9,7 +9,7 @@ type DynamicZoneValue = Schema.Attribute.DynamicZoneValue<UID.Component[]>;
|
|
|
9
9
|
type ComponentBody = {
|
|
10
10
|
[key: string]: ComponentValue | DynamicZoneValue;
|
|
11
11
|
};
|
|
12
|
-
declare const omitComponentData: _.CurriedFunction2<import("@strapi/types/dist/struct").ComponentSchema | import("@strapi/types/dist/struct").ContentTypeSchema, Input<UID.Schema>, Partial<Input<UID.Schema>>>;
|
|
12
|
+
declare const omitComponentData: _.CurriedFunction2<import("@strapi/types/dist/struct/schema.js").ComponentSchema | import("@strapi/types/dist/struct/schema.js").ContentTypeSchema, Input<UID.Schema>, Partial<Input<UID.Schema>>>;
|
|
13
13
|
declare const createComponents: <TUID extends UID.Schema, TData extends Input<TUID>>(uid: TUID, data: TData) => Promise<ComponentBody>;
|
|
14
14
|
declare const getComponents: <TUID extends UID.Schema>(uid: TUID, entity: {
|
|
15
15
|
id: Modules.EntityService.Params.Attribute.ID;
|
|
@@ -21,7 +21,7 @@ declare const deleteComponents: <TUID extends UID.Schema, TEntity extends Data.E
|
|
|
21
21
|
loadComponents?: boolean | undefined;
|
|
22
22
|
}) => Promise<void>;
|
|
23
23
|
declare const deleteComponent: <TUID extends UID.Component>(uid: TUID, componentToDelete: Data.Component<TUID>) => Promise<void>;
|
|
24
|
-
declare const assignComponentData: _.CurriedFunction3<import("@strapi/types/dist/struct").ComponentSchema | import("@strapi/types/dist/struct").ContentTypeSchema, ComponentBody, Input<UID.Schema>, ComponentBody & Partial<Input<UID.Schema>>>;
|
|
24
|
+
declare const assignComponentData: _.CurriedFunction3<import("@strapi/types/dist/struct/schema.js").ComponentSchema | import("@strapi/types/dist/struct/schema.js").ContentTypeSchema, ComponentBody, Input<UID.Schema>, ComponentBody & Partial<Input<UID.Schema>>>;
|
|
25
25
|
/** *************************
|
|
26
26
|
Component relation handling for document operations
|
|
27
27
|
************************** */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../src/services/document-service/components.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAC;AAEvB,OAAO,KAAK,EAAS,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAUvE,KAAK,KAAK,CAAC,CAAC,SAAS,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAE1E,KAAK,gBAAgB,CAAC,IAAI,SAAS,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAC1D,IAAI,EACJ,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,WAAW,GAAG,aAAa,CAAC,CAC/D,CAAC;AAEF,KAAK,oBAAoB,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAClF,KAAK,wBAAwB,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;AAErF,KAAK,cAAc,GAAG,oBAAoB,GAAG,wBAAwB,CAAC;AAEtE,KAAK,gBAAgB,GAAG,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;AAE3E,KAAK,aAAa,GAAG;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,gBAAgB,CAAC;CAClD,CAAC;AAEF,QAAA,MAAM,iBAAiB,
|
|
1
|
+
{"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../src/services/document-service/components.ts"],"names":[],"mappings":"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"}
|