@strapi/core 0.0.0-experimental.c72b48da735f44a3ccafb7a6dc9ba5213f3844db → 0.0.0-experimental.ca5f02ef2ec166e219546983049c0543bed92f8d
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.
- package/dist/Strapi.d.ts.map +1 -1
- package/dist/Strapi.js +4 -1
- package/dist/Strapi.js.map +1 -1
- package/dist/Strapi.mjs +4 -1
- package/dist/Strapi.mjs.map +1 -1
- package/dist/configuration/index.d.ts +3 -0
- package/dist/configuration/index.d.ts.map +1 -1
- package/dist/configuration/index.js +3 -0
- package/dist/configuration/index.js.map +1 -1
- package/dist/configuration/index.mjs +3 -0
- package/dist/configuration/index.mjs.map +1 -1
- package/dist/core-api/controller/collection-type.d.ts.map +1 -1
- package/dist/core-api/controller/collection-type.js +1 -1
- package/dist/core-api/controller/collection-type.js.map +1 -1
- package/dist/core-api/controller/collection-type.mjs +1 -1
- package/dist/core-api/controller/collection-type.mjs.map +1 -1
- package/dist/core-api/controller/index.d.ts.map +1 -1
- package/dist/core-api/controller/index.js +2 -1
- package/dist/core-api/controller/index.js.map +1 -1
- package/dist/core-api/controller/index.mjs +2 -1
- package/dist/core-api/controller/index.mjs.map +1 -1
- package/dist/core-api/controller/single-type.js +1 -1
- package/dist/core-api/controller/single-type.js.map +1 -1
- package/dist/core-api/controller/single-type.mjs +1 -1
- package/dist/core-api/controller/single-type.mjs.map +1 -1
- package/dist/core-api/controller/transform.d.ts +3 -2
- package/dist/core-api/controller/transform.d.ts.map +1 -1
- package/dist/core-api/controller/transform.js +9 -3
- package/dist/core-api/controller/transform.js.map +1 -1
- package/dist/core-api/controller/transform.mjs +9 -3
- package/dist/core-api/controller/transform.mjs.map +1 -1
- package/dist/core-api/routes/index.d.ts +4 -22
- package/dist/core-api/routes/index.d.ts.map +1 -1
- package/dist/core-api/routes/index.js +150 -8
- package/dist/core-api/routes/index.js.map +1 -1
- package/dist/core-api/routes/index.mjs +131 -8
- package/dist/core-api/routes/index.mjs.map +1 -1
- package/dist/core-api/routes/validation/attributes.d.ts +244 -0
- package/dist/core-api/routes/validation/attributes.d.ts.map +1 -0
- package/dist/core-api/routes/validation/attributes.js +560 -0
- package/dist/core-api/routes/validation/attributes.js.map +1 -0
- package/dist/core-api/routes/validation/attributes.mjs +521 -0
- package/dist/core-api/routes/validation/attributes.mjs.map +1 -0
- package/dist/core-api/routes/validation/common.d.ts +105 -0
- package/dist/core-api/routes/validation/common.d.ts.map +1 -0
- package/dist/core-api/routes/validation/common.js +116 -0
- package/dist/core-api/routes/validation/common.js.map +1 -0
- package/dist/core-api/routes/validation/common.mjs +95 -0
- package/dist/core-api/routes/validation/common.mjs.map +1 -0
- package/dist/core-api/routes/validation/component.d.ts +34 -0
- package/dist/core-api/routes/validation/component.d.ts.map +1 -0
- package/dist/core-api/routes/validation/component.js +45 -0
- package/dist/core-api/routes/validation/component.js.map +1 -0
- package/dist/core-api/routes/validation/component.mjs +43 -0
- package/dist/core-api/routes/validation/component.mjs.map +1 -0
- package/dist/core-api/routes/validation/constants.d.ts +8 -0
- package/dist/core-api/routes/validation/constants.d.ts.map +1 -0
- package/dist/core-api/routes/validation/constants.js +18 -0
- package/dist/core-api/routes/validation/constants.js.map +1 -0
- package/dist/core-api/routes/validation/constants.mjs +16 -0
- package/dist/core-api/routes/validation/constants.mjs.map +1 -0
- package/dist/core-api/routes/validation/content-type.d.ts +128 -0
- package/dist/core-api/routes/validation/content-type.d.ts.map +1 -0
- package/dist/core-api/routes/validation/content-type.js +201 -0
- package/dist/core-api/routes/validation/content-type.js.map +1 -0
- package/dist/core-api/routes/validation/content-type.mjs +180 -0
- package/dist/core-api/routes/validation/content-type.mjs.map +1 -0
- package/dist/core-api/routes/validation/index.d.ts +5 -0
- package/dist/core-api/routes/validation/index.d.ts.map +1 -0
- package/dist/core-api/routes/validation/mappers.d.ts +105 -0
- package/dist/core-api/routes/validation/mappers.d.ts.map +1 -0
- package/dist/core-api/routes/validation/mappers.js +238 -0
- package/dist/core-api/routes/validation/mappers.js.map +1 -0
- package/dist/core-api/routes/validation/mappers.mjs +214 -0
- package/dist/core-api/routes/validation/mappers.mjs.map +1 -0
- package/dist/core-api/routes/validation/utils.d.ts +47 -0
- package/dist/core-api/routes/validation/utils.d.ts.map +1 -0
- package/dist/core-api/routes/validation/utils.js +112 -0
- package/dist/core-api/routes/validation/utils.js.map +1 -0
- package/dist/core-api/routes/validation/utils.mjs +90 -0
- package/dist/core-api/routes/validation/utils.mjs.map +1 -0
- package/dist/domain/module/index.d.ts.map +1 -1
- package/dist/domain/module/index.js +3 -0
- package/dist/domain/module/index.js.map +1 -1
- package/dist/domain/module/index.mjs +3 -0
- package/dist/domain/module/index.mjs.map +1 -1
- package/dist/ee/index.d.ts +6 -0
- package/dist/ee/index.d.ts.map +1 -1
- package/dist/ee/index.js +29 -3
- package/dist/ee/index.js.map +1 -1
- package/dist/ee/index.mjs +30 -4
- package/dist/ee/index.mjs.map +1 -1
- package/dist/ee/license.d.ts +3 -1
- package/dist/ee/license.d.ts.map +1 -1
- package/dist/ee/license.js +6 -1
- package/dist/ee/license.js.map +1 -1
- package/dist/ee/license.mjs +6 -2
- package/dist/ee/license.mjs.map +1 -1
- package/dist/factories.d.ts +3 -1
- package/dist/factories.d.ts.map +1 -1
- package/dist/factories.js +10 -2
- package/dist/factories.js.map +1 -1
- package/dist/factories.mjs +10 -3
- package/dist/factories.mjs.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/middlewares/cors.d.ts +9 -1
- package/dist/middlewares/cors.d.ts.map +1 -1
- package/dist/middlewares/cors.js +39 -17
- package/dist/middlewares/cors.js.map +1 -1
- package/dist/middlewares/cors.mjs +39 -18
- package/dist/middlewares/cors.mjs.map +1 -1
- package/dist/package.json.js +17 -13
- package/dist/package.json.js.map +1 -1
- package/dist/package.json.mjs +17 -13
- package/dist/package.json.mjs.map +1 -1
- package/dist/services/content-source-maps.d.ts +8 -0
- package/dist/services/content-source-maps.d.ts.map +1 -0
- package/dist/services/content-source-maps.js +119 -0
- package/dist/services/content-source-maps.js.map +1 -0
- package/dist/services/content-source-maps.mjs +117 -0
- package/dist/services/content-source-maps.mjs.map +1 -0
- package/dist/services/core-store.d.ts +2 -2
- package/dist/services/core-store.d.ts.map +1 -1
- package/dist/services/core-store.js.map +1 -1
- package/dist/services/core-store.mjs.map +1 -1
- package/dist/services/document-service/entries.d.ts.map +1 -1
- package/dist/services/document-service/entries.js +42 -0
- package/dist/services/document-service/entries.js.map +1 -1
- package/dist/services/document-service/entries.mjs +43 -1
- package/dist/services/document-service/entries.mjs.map +1 -1
- package/dist/services/document-service/internationalization.d.ts +6 -1
- package/dist/services/document-service/internationalization.d.ts.map +1 -1
- package/dist/services/document-service/internationalization.js +32 -0
- package/dist/services/document-service/internationalization.js.map +1 -1
- package/dist/services/document-service/internationalization.mjs +32 -1
- package/dist/services/document-service/internationalization.mjs.map +1 -1
- package/dist/services/document-service/repository.d.ts.map +1 -1
- package/dist/services/document-service/repository.js +5 -4
- package/dist/services/document-service/repository.js.map +1 -1
- package/dist/services/document-service/repository.mjs +6 -5
- package/dist/services/document-service/repository.mjs.map +1 -1
- package/dist/services/entity-validator/index.d.ts.map +1 -1
- package/dist/services/entity-validator/index.js +9 -0
- package/dist/services/entity-validator/index.js.map +1 -1
- package/dist/services/entity-validator/index.mjs +9 -0
- package/dist/services/entity-validator/index.mjs.map +1 -1
- package/dist/services/entity-validator/validators.d.ts +1 -0
- package/dist/services/entity-validator/validators.d.ts.map +1 -1
- package/dist/services/entity-validator/validators.js +3 -0
- package/dist/services/entity-validator/validators.js.map +1 -1
- package/dist/services/entity-validator/validators.mjs +3 -0
- package/dist/services/entity-validator/validators.mjs.map +1 -1
- package/dist/services/metrics/index.d.ts +1 -1
- package/dist/services/metrics/index.d.ts.map +1 -1
- package/dist/services/metrics/index.js +9 -8
- package/dist/services/metrics/index.js.map +1 -1
- package/dist/services/metrics/index.mjs +9 -8
- package/dist/services/metrics/index.mjs.map +1 -1
- package/dist/services/metrics/sender.d.ts.map +1 -1
- package/dist/services/metrics/sender.js +2 -2
- package/dist/services/metrics/sender.js.map +1 -1
- package/dist/services/metrics/sender.mjs +2 -2
- package/dist/services/metrics/sender.mjs.map +1 -1
- package/dist/services/server/register-routes.js +22 -2
- package/dist/services/server/register-routes.js.map +1 -1
- package/dist/services/server/register-routes.mjs +22 -2
- package/dist/services/server/register-routes.mjs.map +1 -1
- package/dist/services/server/routing.d.ts +10 -0
- package/dist/services/server/routing.d.ts.map +1 -1
- package/dist/services/server/routing.js +7 -1
- package/dist/services/server/routing.js.map +1 -1
- package/dist/services/server/routing.mjs +7 -1
- package/dist/services/server/routing.mjs.map +1 -1
- package/dist/services/utils/conditional-fields.d.ts +3 -0
- package/dist/services/utils/conditional-fields.d.ts.map +1 -0
- package/dist/services/utils/conditional-fields.js +22 -0
- package/dist/services/utils/conditional-fields.js.map +1 -0
- package/dist/services/utils/conditional-fields.mjs +20 -0
- package/dist/services/utils/conditional-fields.mjs.map +1 -0
- package/dist/utils/fetch.d.ts +5 -1
- package/dist/utils/fetch.d.ts.map +1 -1
- package/dist/utils/fetch.js +8 -4
- package/dist/utils/fetch.js.map +1 -1
- package/dist/utils/fetch.mjs +8 -4
- package/dist/utils/fetch.mjs.map +1 -1
- package/dist/utils/transform-content-types-to-models.d.ts +197 -0
- package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
- package/package.json +17 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cors.js","sources":["../../src/middlewares/cors.ts"],"sourcesContent":["import koaCors from '@koa/cors';\n\nimport type { Core } from '@strapi/types';\n\nexport type Config = {\n enabled?: boolean;\n origin: string | string[] | ((ctx: any) => string | string[]);\n expose?: string | string[];\n maxAge?: number;\n credentials?: boolean;\n methods?: string | string[];\n headers?: string | string[];\n keepHeadersOnError?: boolean;\n};\n\nconst defaults: Config = {\n origin: '*',\n maxAge: 31536000,\n credentials: true,\n methods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'],\n headers: ['Content-Type', 'Authorization', 'Origin', 'Accept'],\n keepHeadersOnError: false,\n};\n\
|
|
1
|
+
{"version":3,"file":"cors.js","sources":["../../src/middlewares/cors.ts"],"sourcesContent":["import koaCors from '@koa/cors';\n\nimport type { Core } from '@strapi/types';\n\nexport type Config = {\n enabled?: boolean;\n origin: string | string[] | ((ctx: any) => string | string[] | Promise<string | string[]>);\n expose?: string | string[];\n maxAge?: number;\n credentials?: boolean;\n methods?: string | string[];\n headers?: string | string[];\n keepHeadersOnError?: boolean;\n};\n\nconst defaults: Config = {\n origin: '*',\n maxAge: 31536000,\n credentials: true,\n methods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'],\n headers: ['Content-Type', 'Authorization', 'Origin', 'Accept'],\n keepHeadersOnError: false,\n};\n\n/**\n * Determines if a request origin is allowed based on the configured origin list\n * @param requestOrigin - The origin from the request header\n * @param configuredOrigin - The origin configuration (string, array, or function)\n * @param ctx - The Koa context (for function-based origin)\n * @returns The allowed origin string or empty string if blocked\n */\nexport const matchOrigin = async (\n requestOrigin: string | undefined,\n configuredOrigin:\n | string\n | string[]\n | ((ctx: any) => string | string[] | Promise<string | string[]>),\n ctx?: any\n): Promise<string> => {\n if (!requestOrigin) {\n return '*';\n }\n\n let originList: string | string[];\n\n if (typeof configuredOrigin === 'function') {\n originList = await configuredOrigin(ctx);\n } else {\n originList = configuredOrigin;\n }\n\n // Normalize originList into an array\n let normalizedOrigins: string[];\n if (Array.isArray(originList)) {\n normalizedOrigins = originList;\n } else if (originList === undefined || originList === null) {\n // Handle undefined/null - treat as wildcard\n normalizedOrigins = ['*'];\n } else {\n // Handle comma-separated string of origins\n normalizedOrigins = originList.split(',').map((origin) => origin.trim());\n }\n\n // Check if wildcard is in the normalized origins\n if (normalizedOrigins.includes('*')) {\n return requestOrigin;\n }\n\n // Check if request origin is in the normalized origins\n return normalizedOrigins.includes(requestOrigin) ? requestOrigin : '';\n};\n\nexport const cors: Core.MiddlewareFactory<Config> = (config) => {\n const { origin, expose, maxAge, credentials, methods, headers, keepHeadersOnError } = {\n ...defaults,\n ...config,\n };\n\n if (config.enabled !== undefined) {\n strapi.log.warn(\n 'The strapi::cors middleware no longer supports the `enabled` option. Using it' +\n ' to conditionally enable CORS might cause an insecure default. To disable strapi::cors, remove it from' +\n ' the exported array in config/middleware.js'\n );\n }\n\n return koaCors({\n async origin(ctx) {\n const requestOrigin = ctx.get('Origin');\n return matchOrigin(requestOrigin, origin, ctx);\n },\n exposeHeaders: expose,\n maxAge,\n credentials,\n allowMethods: methods,\n allowHeaders: headers,\n keepHeadersOnError,\n });\n};\n"],"names":["defaults","origin","maxAge","credentials","methods","headers","keepHeadersOnError","matchOrigin","requestOrigin","configuredOrigin","ctx","originList","normalizedOrigins","Array","isArray","undefined","split","map","trim","includes","cors","config","expose","enabled","strapi","log","warn","koaCors","get","exposeHeaders","allowMethods","allowHeaders"],"mappings":";;;;AAeA,MAAMA,QAAmB,GAAA;IACvBC,MAAQ,EAAA,GAAA;IACRC,MAAQ,EAAA,QAAA;IACRC,WAAa,EAAA,IAAA;IACbC,OAAS,EAAA;AAAC,QAAA,KAAA;AAAO,QAAA,MAAA;AAAQ,QAAA,KAAA;AAAO,QAAA,OAAA;AAAS,QAAA,QAAA;AAAU,QAAA,MAAA;AAAQ,QAAA;AAAU,KAAA;IACrEC,OAAS,EAAA;AAAC,QAAA,cAAA;AAAgB,QAAA,eAAA;AAAiB,QAAA,QAAA;AAAU,QAAA;AAAS,KAAA;IAC9DC,kBAAoB,EAAA;AACtB,CAAA;AAEA;;;;;;AAMC,IACM,MAAMC,WAAc,GAAA,OACzBC,eACAC,gBAIAC,EAAAA,GAAAA,GAAAA;AAEA,IAAA,IAAI,CAACF,aAAe,EAAA;QAClB,OAAO,GAAA;AACT;IAEA,IAAIG,UAAAA;IAEJ,IAAI,OAAOF,qBAAqB,UAAY,EAAA;AAC1CE,QAAAA,UAAAA,GAAa,MAAMF,gBAAiBC,CAAAA,GAAAA,CAAAA;KAC/B,MAAA;QACLC,UAAaF,GAAAA,gBAAAA;AACf;;IAGA,IAAIG,iBAAAA;IACJ,IAAIC,KAAAA,CAAMC,OAAO,CAACH,UAAa,CAAA,EAAA;QAC7BC,iBAAoBD,GAAAA,UAAAA;AACtB,KAAA,MAAO,IAAIA,UAAAA,KAAeI,SAAaJ,IAAAA,UAAAA,KAAe,IAAM,EAAA;;QAE1DC,iBAAoB,GAAA;AAAC,YAAA;AAAI,SAAA;KACpB,MAAA;;QAELA,iBAAoBD,GAAAA,UAAAA,CAAWK,KAAK,CAAC,GAAA,CAAA,CAAKC,GAAG,CAAC,CAAChB,MAAWA,GAAAA,MAAAA,CAAOiB,IAAI,EAAA,CAAA;AACvE;;IAGA,IAAIN,iBAAAA,CAAkBO,QAAQ,CAAC,GAAM,CAAA,EAAA;QACnC,OAAOX,aAAAA;AACT;;AAGA,IAAA,OAAOI,iBAAkBO,CAAAA,QAAQ,CAACX,aAAAA,CAAAA,GAAiBA,aAAgB,GAAA,EAAA;AACrE;AAEO,MAAMY,OAAuC,CAACC,MAAAA,GAAAA;AACnD,IAAA,MAAM,EAAEpB,MAAM,EAAEqB,MAAM,EAAEpB,MAAM,EAAEC,WAAW,EAAEC,OAAO,EAAEC,OAAO,EAAEC,kBAAkB,EAAE,GAAG;AACpF,QAAA,GAAGN,QAAQ;AACX,QAAA,GAAGqB;AACL,KAAA;IAEA,IAAIA,MAAAA,CAAOE,OAAO,KAAKR,SAAW,EAAA;AAChCS,QAAAA,MAAAA,CAAOC,GAAG,CAACC,IAAI,CACb,kFACE,wGACA,GAAA,6CAAA,CAAA;AAEN;AAEA,IAAA,OAAOC,OAAQ,CAAA;AACb,QAAA,MAAM1B,QAAOS,GAAG,EAAA;YACd,MAAMF,aAAAA,GAAgBE,GAAIkB,CAAAA,GAAG,CAAC,QAAA,CAAA;YAC9B,OAAOrB,WAAAA,CAAYC,eAAeP,MAAQS,EAAAA,GAAAA,CAAAA;AAC5C,SAAA;QACAmB,aAAeP,EAAAA,MAAAA;AACfpB,QAAAA,MAAAA;AACAC,QAAAA,WAAAA;QACA2B,YAAc1B,EAAAA,OAAAA;QACd2B,YAAc1B,EAAAA,OAAAA;AACdC,QAAAA;AACF,KAAA,CAAA;AACF;;;;;"}
|
|
@@ -21,6 +21,42 @@ const defaults = {
|
|
|
21
21
|
],
|
|
22
22
|
keepHeadersOnError: false
|
|
23
23
|
};
|
|
24
|
+
/**
|
|
25
|
+
* Determines if a request origin is allowed based on the configured origin list
|
|
26
|
+
* @param requestOrigin - The origin from the request header
|
|
27
|
+
* @param configuredOrigin - The origin configuration (string, array, or function)
|
|
28
|
+
* @param ctx - The Koa context (for function-based origin)
|
|
29
|
+
* @returns The allowed origin string or empty string if blocked
|
|
30
|
+
*/ const matchOrigin = async (requestOrigin, configuredOrigin, ctx)=>{
|
|
31
|
+
if (!requestOrigin) {
|
|
32
|
+
return '*';
|
|
33
|
+
}
|
|
34
|
+
let originList;
|
|
35
|
+
if (typeof configuredOrigin === 'function') {
|
|
36
|
+
originList = await configuredOrigin(ctx);
|
|
37
|
+
} else {
|
|
38
|
+
originList = configuredOrigin;
|
|
39
|
+
}
|
|
40
|
+
// Normalize originList into an array
|
|
41
|
+
let normalizedOrigins;
|
|
42
|
+
if (Array.isArray(originList)) {
|
|
43
|
+
normalizedOrigins = originList;
|
|
44
|
+
} else if (originList === undefined || originList === null) {
|
|
45
|
+
// Handle undefined/null - treat as wildcard
|
|
46
|
+
normalizedOrigins = [
|
|
47
|
+
'*'
|
|
48
|
+
];
|
|
49
|
+
} else {
|
|
50
|
+
// Handle comma-separated string of origins
|
|
51
|
+
normalizedOrigins = originList.split(',').map((origin)=>origin.trim());
|
|
52
|
+
}
|
|
53
|
+
// Check if wildcard is in the normalized origins
|
|
54
|
+
if (normalizedOrigins.includes('*')) {
|
|
55
|
+
return requestOrigin;
|
|
56
|
+
}
|
|
57
|
+
// Check if request origin is in the normalized origins
|
|
58
|
+
return normalizedOrigins.includes(requestOrigin) ? requestOrigin : '';
|
|
59
|
+
};
|
|
24
60
|
const cors = (config)=>{
|
|
25
61
|
const { origin, expose, maxAge, credentials, methods, headers, keepHeadersOnError } = {
|
|
26
62
|
...defaults,
|
|
@@ -31,23 +67,8 @@ const cors = (config)=>{
|
|
|
31
67
|
}
|
|
32
68
|
return koaCors({
|
|
33
69
|
async origin (ctx) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
let originList;
|
|
38
|
-
if (typeof origin === 'function') {
|
|
39
|
-
originList = await origin(ctx);
|
|
40
|
-
} else {
|
|
41
|
-
originList = origin;
|
|
42
|
-
}
|
|
43
|
-
if (Array.isArray(originList)) {
|
|
44
|
-
return originList.includes(ctx.get('Origin')) ? ctx.get('Origin') : '';
|
|
45
|
-
}
|
|
46
|
-
const parsedOrigin = originList.split(',').map((origin)=>origin.trim());
|
|
47
|
-
if (parsedOrigin.length > 1) {
|
|
48
|
-
return parsedOrigin.includes(ctx.get('Origin')) ? ctx.get('Origin') : '';
|
|
49
|
-
}
|
|
50
|
-
return originList;
|
|
70
|
+
const requestOrigin = ctx.get('Origin');
|
|
71
|
+
return matchOrigin(requestOrigin, origin, ctx);
|
|
51
72
|
},
|
|
52
73
|
exposeHeaders: expose,
|
|
53
74
|
maxAge,
|
|
@@ -58,5 +79,5 @@ const cors = (config)=>{
|
|
|
58
79
|
});
|
|
59
80
|
};
|
|
60
81
|
|
|
61
|
-
export { cors };
|
|
82
|
+
export { cors, matchOrigin };
|
|
62
83
|
//# sourceMappingURL=cors.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cors.mjs","sources":["../../src/middlewares/cors.ts"],"sourcesContent":["import koaCors from '@koa/cors';\n\nimport type { Core } from '@strapi/types';\n\nexport type Config = {\n enabled?: boolean;\n origin: string | string[] | ((ctx: any) => string | string[]);\n expose?: string | string[];\n maxAge?: number;\n credentials?: boolean;\n methods?: string | string[];\n headers?: string | string[];\n keepHeadersOnError?: boolean;\n};\n\nconst defaults: Config = {\n origin: '*',\n maxAge: 31536000,\n credentials: true,\n methods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'],\n headers: ['Content-Type', 'Authorization', 'Origin', 'Accept'],\n keepHeadersOnError: false,\n};\n\
|
|
1
|
+
{"version":3,"file":"cors.mjs","sources":["../../src/middlewares/cors.ts"],"sourcesContent":["import koaCors from '@koa/cors';\n\nimport type { Core } from '@strapi/types';\n\nexport type Config = {\n enabled?: boolean;\n origin: string | string[] | ((ctx: any) => string | string[] | Promise<string | string[]>);\n expose?: string | string[];\n maxAge?: number;\n credentials?: boolean;\n methods?: string | string[];\n headers?: string | string[];\n keepHeadersOnError?: boolean;\n};\n\nconst defaults: Config = {\n origin: '*',\n maxAge: 31536000,\n credentials: true,\n methods: ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD', 'OPTIONS'],\n headers: ['Content-Type', 'Authorization', 'Origin', 'Accept'],\n keepHeadersOnError: false,\n};\n\n/**\n * Determines if a request origin is allowed based on the configured origin list\n * @param requestOrigin - The origin from the request header\n * @param configuredOrigin - The origin configuration (string, array, or function)\n * @param ctx - The Koa context (for function-based origin)\n * @returns The allowed origin string or empty string if blocked\n */\nexport const matchOrigin = async (\n requestOrigin: string | undefined,\n configuredOrigin:\n | string\n | string[]\n | ((ctx: any) => string | string[] | Promise<string | string[]>),\n ctx?: any\n): Promise<string> => {\n if (!requestOrigin) {\n return '*';\n }\n\n let originList: string | string[];\n\n if (typeof configuredOrigin === 'function') {\n originList = await configuredOrigin(ctx);\n } else {\n originList = configuredOrigin;\n }\n\n // Normalize originList into an array\n let normalizedOrigins: string[];\n if (Array.isArray(originList)) {\n normalizedOrigins = originList;\n } else if (originList === undefined || originList === null) {\n // Handle undefined/null - treat as wildcard\n normalizedOrigins = ['*'];\n } else {\n // Handle comma-separated string of origins\n normalizedOrigins = originList.split(',').map((origin) => origin.trim());\n }\n\n // Check if wildcard is in the normalized origins\n if (normalizedOrigins.includes('*')) {\n return requestOrigin;\n }\n\n // Check if request origin is in the normalized origins\n return normalizedOrigins.includes(requestOrigin) ? requestOrigin : '';\n};\n\nexport const cors: Core.MiddlewareFactory<Config> = (config) => {\n const { origin, expose, maxAge, credentials, methods, headers, keepHeadersOnError } = {\n ...defaults,\n ...config,\n };\n\n if (config.enabled !== undefined) {\n strapi.log.warn(\n 'The strapi::cors middleware no longer supports the `enabled` option. Using it' +\n ' to conditionally enable CORS might cause an insecure default. To disable strapi::cors, remove it from' +\n ' the exported array in config/middleware.js'\n );\n }\n\n return koaCors({\n async origin(ctx) {\n const requestOrigin = ctx.get('Origin');\n return matchOrigin(requestOrigin, origin, ctx);\n },\n exposeHeaders: expose,\n maxAge,\n credentials,\n allowMethods: methods,\n allowHeaders: headers,\n keepHeadersOnError,\n });\n};\n"],"names":["defaults","origin","maxAge","credentials","methods","headers","keepHeadersOnError","matchOrigin","requestOrigin","configuredOrigin","ctx","originList","normalizedOrigins","Array","isArray","undefined","split","map","trim","includes","cors","config","expose","enabled","strapi","log","warn","koaCors","get","exposeHeaders","allowMethods","allowHeaders"],"mappings":";;AAeA,MAAMA,QAAmB,GAAA;IACvBC,MAAQ,EAAA,GAAA;IACRC,MAAQ,EAAA,QAAA;IACRC,WAAa,EAAA,IAAA;IACbC,OAAS,EAAA;AAAC,QAAA,KAAA;AAAO,QAAA,MAAA;AAAQ,QAAA,KAAA;AAAO,QAAA,OAAA;AAAS,QAAA,QAAA;AAAU,QAAA,MAAA;AAAQ,QAAA;AAAU,KAAA;IACrEC,OAAS,EAAA;AAAC,QAAA,cAAA;AAAgB,QAAA,eAAA;AAAiB,QAAA,QAAA;AAAU,QAAA;AAAS,KAAA;IAC9DC,kBAAoB,EAAA;AACtB,CAAA;AAEA;;;;;;AAMC,IACM,MAAMC,WAAc,GAAA,OACzBC,eACAC,gBAIAC,EAAAA,GAAAA,GAAAA;AAEA,IAAA,IAAI,CAACF,aAAe,EAAA;QAClB,OAAO,GAAA;AACT;IAEA,IAAIG,UAAAA;IAEJ,IAAI,OAAOF,qBAAqB,UAAY,EAAA;AAC1CE,QAAAA,UAAAA,GAAa,MAAMF,gBAAiBC,CAAAA,GAAAA,CAAAA;KAC/B,MAAA;QACLC,UAAaF,GAAAA,gBAAAA;AACf;;IAGA,IAAIG,iBAAAA;IACJ,IAAIC,KAAAA,CAAMC,OAAO,CAACH,UAAa,CAAA,EAAA;QAC7BC,iBAAoBD,GAAAA,UAAAA;AACtB,KAAA,MAAO,IAAIA,UAAAA,KAAeI,SAAaJ,IAAAA,UAAAA,KAAe,IAAM,EAAA;;QAE1DC,iBAAoB,GAAA;AAAC,YAAA;AAAI,SAAA;KACpB,MAAA;;QAELA,iBAAoBD,GAAAA,UAAAA,CAAWK,KAAK,CAAC,GAAA,CAAA,CAAKC,GAAG,CAAC,CAAChB,MAAWA,GAAAA,MAAAA,CAAOiB,IAAI,EAAA,CAAA;AACvE;;IAGA,IAAIN,iBAAAA,CAAkBO,QAAQ,CAAC,GAAM,CAAA,EAAA;QACnC,OAAOX,aAAAA;AACT;;AAGA,IAAA,OAAOI,iBAAkBO,CAAAA,QAAQ,CAACX,aAAAA,CAAAA,GAAiBA,aAAgB,GAAA,EAAA;AACrE;AAEO,MAAMY,OAAuC,CAACC,MAAAA,GAAAA;AACnD,IAAA,MAAM,EAAEpB,MAAM,EAAEqB,MAAM,EAAEpB,MAAM,EAAEC,WAAW,EAAEC,OAAO,EAAEC,OAAO,EAAEC,kBAAkB,EAAE,GAAG;AACpF,QAAA,GAAGN,QAAQ;AACX,QAAA,GAAGqB;AACL,KAAA;IAEA,IAAIA,MAAAA,CAAOE,OAAO,KAAKR,SAAW,EAAA;AAChCS,QAAAA,MAAAA,CAAOC,GAAG,CAACC,IAAI,CACb,kFACE,wGACA,GAAA,6CAAA,CAAA;AAEN;AAEA,IAAA,OAAOC,OAAQ,CAAA;AACb,QAAA,MAAM1B,QAAOS,GAAG,EAAA;YACd,MAAMF,aAAAA,GAAgBE,GAAIkB,CAAAA,GAAG,CAAC,QAAA,CAAA;YAC9B,OAAOrB,WAAAA,CAAYC,eAAeP,MAAQS,EAAAA,GAAAA,CAAAA;AAC5C,SAAA;QACAmB,aAAeP,EAAAA,MAAAA;AACfpB,QAAAA,MAAAA;AACAC,QAAAA,WAAAA;QACA2B,YAAc1B,EAAAA,OAAAA;QACd2B,YAAc1B,EAAAA,OAAAA;AACdC,QAAAA;AACF,KAAA,CAAA;AACF;;;;"}
|
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 = "0.0.0-experimental.
|
|
6
|
+
var version = "0.0.0-experimental.ca5f02ef2ec166e219546983049c0543bed92f8d";
|
|
7
7
|
var description = "Core of Strapi";
|
|
8
8
|
var homepage = "https://strapi.io";
|
|
9
9
|
var bugs = {
|
|
@@ -59,14 +59,15 @@ var dependencies = {
|
|
|
59
59
|
"@koa/cors": "5.0.0",
|
|
60
60
|
"@koa/router": "12.0.2",
|
|
61
61
|
"@paralleldrive/cuid2": "2.2.2",
|
|
62
|
-
"@strapi/admin": "0.0.0-experimental.
|
|
63
|
-
"@strapi/database": "0.0.0-experimental.
|
|
64
|
-
"@strapi/generators": "0.0.0-experimental.
|
|
65
|
-
"@strapi/logger": "0.0.0-experimental.
|
|
66
|
-
"@strapi/permissions": "0.0.0-experimental.
|
|
67
|
-
"@strapi/types": "0.0.0-experimental.
|
|
68
|
-
"@strapi/typescript-utils": "0.0.0-experimental.
|
|
69
|
-
"@strapi/utils": "0.0.0-experimental.
|
|
62
|
+
"@strapi/admin": "0.0.0-experimental.ca5f02ef2ec166e219546983049c0543bed92f8d",
|
|
63
|
+
"@strapi/database": "0.0.0-experimental.ca5f02ef2ec166e219546983049c0543bed92f8d",
|
|
64
|
+
"@strapi/generators": "0.0.0-experimental.ca5f02ef2ec166e219546983049c0543bed92f8d",
|
|
65
|
+
"@strapi/logger": "0.0.0-experimental.ca5f02ef2ec166e219546983049c0543bed92f8d",
|
|
66
|
+
"@strapi/permissions": "0.0.0-experimental.ca5f02ef2ec166e219546983049c0543bed92f8d",
|
|
67
|
+
"@strapi/types": "0.0.0-experimental.ca5f02ef2ec166e219546983049c0543bed92f8d",
|
|
68
|
+
"@strapi/typescript-utils": "0.0.0-experimental.ca5f02ef2ec166e219546983049c0543bed92f8d",
|
|
69
|
+
"@strapi/utils": "0.0.0-experimental.ca5f02ef2ec166e219546983049c0543bed92f8d",
|
|
70
|
+
"@vercel/stega": "0.1.2",
|
|
70
71
|
bcryptjs: "2.4.3",
|
|
71
72
|
boxen: "5.1.2",
|
|
72
73
|
chalk: "4.1.2",
|
|
@@ -85,7 +86,8 @@ var dependencies = {
|
|
|
85
86
|
"http-errors": "2.0.0",
|
|
86
87
|
inquirer: "8.2.5",
|
|
87
88
|
"is-docker": "2.2.1",
|
|
88
|
-
|
|
89
|
+
"json-logic-js": "2.0.5",
|
|
90
|
+
koa: "2.16.1",
|
|
89
91
|
"koa-body": "6.0.1",
|
|
90
92
|
"koa-compose": "4.1.0",
|
|
91
93
|
"koa-compress": "5.1.1",
|
|
@@ -107,7 +109,8 @@ var dependencies = {
|
|
|
107
109
|
statuses: "2.0.1",
|
|
108
110
|
typescript: "5.4.4",
|
|
109
111
|
undici: "6.21.2",
|
|
110
|
-
yup: "0.32.9"
|
|
112
|
+
yup: "0.32.9",
|
|
113
|
+
zod: "3.25.67"
|
|
111
114
|
};
|
|
112
115
|
var devDependencies = {
|
|
113
116
|
"@strapi/ts-zen": "^0.2.0",
|
|
@@ -119,6 +122,7 @@ var devDependencies = {
|
|
|
119
122
|
"@types/global-agent": "2.1.3",
|
|
120
123
|
"@types/http-errors": "2.0.4",
|
|
121
124
|
"@types/jest": "29.5.2",
|
|
125
|
+
"@types/json-logic-js": "2.0.8",
|
|
122
126
|
"@types/koa": "2.13.4",
|
|
123
127
|
"@types/koa-compress": "4.0.3",
|
|
124
128
|
"@types/koa-session": "6.4.1",
|
|
@@ -129,9 +133,9 @@ var devDependencies = {
|
|
|
129
133
|
"@types/node": "18.19.24",
|
|
130
134
|
"@types/node-schedule": "2.1.7",
|
|
131
135
|
"@types/statuses": "2.0.1",
|
|
132
|
-
"eslint-config-custom": "0.0.0-experimental.
|
|
136
|
+
"eslint-config-custom": "0.0.0-experimental.ca5f02ef2ec166e219546983049c0543bed92f8d",
|
|
133
137
|
supertest: "6.3.3",
|
|
134
|
-
tsconfig: "0.0.0-experimental.
|
|
138
|
+
tsconfig: "0.0.0-experimental.ca5f02ef2ec166e219546983049c0543bed92f8d"
|
|
135
139
|
};
|
|
136
140
|
var engines = {
|
|
137
141
|
node: ">=18.0.0 <=22.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 = "0.0.0-experimental.
|
|
2
|
+
var version = "0.0.0-experimental.ca5f02ef2ec166e219546983049c0543bed92f8d";
|
|
3
3
|
var description = "Core of Strapi";
|
|
4
4
|
var homepage = "https://strapi.io";
|
|
5
5
|
var bugs = {
|
|
@@ -55,14 +55,15 @@ var dependencies = {
|
|
|
55
55
|
"@koa/cors": "5.0.0",
|
|
56
56
|
"@koa/router": "12.0.2",
|
|
57
57
|
"@paralleldrive/cuid2": "2.2.2",
|
|
58
|
-
"@strapi/admin": "0.0.0-experimental.
|
|
59
|
-
"@strapi/database": "0.0.0-experimental.
|
|
60
|
-
"@strapi/generators": "0.0.0-experimental.
|
|
61
|
-
"@strapi/logger": "0.0.0-experimental.
|
|
62
|
-
"@strapi/permissions": "0.0.0-experimental.
|
|
63
|
-
"@strapi/types": "0.0.0-experimental.
|
|
64
|
-
"@strapi/typescript-utils": "0.0.0-experimental.
|
|
65
|
-
"@strapi/utils": "0.0.0-experimental.
|
|
58
|
+
"@strapi/admin": "0.0.0-experimental.ca5f02ef2ec166e219546983049c0543bed92f8d",
|
|
59
|
+
"@strapi/database": "0.0.0-experimental.ca5f02ef2ec166e219546983049c0543bed92f8d",
|
|
60
|
+
"@strapi/generators": "0.0.0-experimental.ca5f02ef2ec166e219546983049c0543bed92f8d",
|
|
61
|
+
"@strapi/logger": "0.0.0-experimental.ca5f02ef2ec166e219546983049c0543bed92f8d",
|
|
62
|
+
"@strapi/permissions": "0.0.0-experimental.ca5f02ef2ec166e219546983049c0543bed92f8d",
|
|
63
|
+
"@strapi/types": "0.0.0-experimental.ca5f02ef2ec166e219546983049c0543bed92f8d",
|
|
64
|
+
"@strapi/typescript-utils": "0.0.0-experimental.ca5f02ef2ec166e219546983049c0543bed92f8d",
|
|
65
|
+
"@strapi/utils": "0.0.0-experimental.ca5f02ef2ec166e219546983049c0543bed92f8d",
|
|
66
|
+
"@vercel/stega": "0.1.2",
|
|
66
67
|
bcryptjs: "2.4.3",
|
|
67
68
|
boxen: "5.1.2",
|
|
68
69
|
chalk: "4.1.2",
|
|
@@ -81,7 +82,8 @@ var dependencies = {
|
|
|
81
82
|
"http-errors": "2.0.0",
|
|
82
83
|
inquirer: "8.2.5",
|
|
83
84
|
"is-docker": "2.2.1",
|
|
84
|
-
|
|
85
|
+
"json-logic-js": "2.0.5",
|
|
86
|
+
koa: "2.16.1",
|
|
85
87
|
"koa-body": "6.0.1",
|
|
86
88
|
"koa-compose": "4.1.0",
|
|
87
89
|
"koa-compress": "5.1.1",
|
|
@@ -103,7 +105,8 @@ var dependencies = {
|
|
|
103
105
|
statuses: "2.0.1",
|
|
104
106
|
typescript: "5.4.4",
|
|
105
107
|
undici: "6.21.2",
|
|
106
|
-
yup: "0.32.9"
|
|
108
|
+
yup: "0.32.9",
|
|
109
|
+
zod: "3.25.67"
|
|
107
110
|
};
|
|
108
111
|
var devDependencies = {
|
|
109
112
|
"@strapi/ts-zen": "^0.2.0",
|
|
@@ -115,6 +118,7 @@ var devDependencies = {
|
|
|
115
118
|
"@types/global-agent": "2.1.3",
|
|
116
119
|
"@types/http-errors": "2.0.4",
|
|
117
120
|
"@types/jest": "29.5.2",
|
|
121
|
+
"@types/json-logic-js": "2.0.8",
|
|
118
122
|
"@types/koa": "2.13.4",
|
|
119
123
|
"@types/koa-compress": "4.0.3",
|
|
120
124
|
"@types/koa-session": "6.4.1",
|
|
@@ -125,9 +129,9 @@ var devDependencies = {
|
|
|
125
129
|
"@types/node": "18.19.24",
|
|
126
130
|
"@types/node-schedule": "2.1.7",
|
|
127
131
|
"@types/statuses": "2.0.1",
|
|
128
|
-
"eslint-config-custom": "0.0.0-experimental.
|
|
132
|
+
"eslint-config-custom": "0.0.0-experimental.ca5f02ef2ec166e219546983049c0543bed92f8d",
|
|
129
133
|
supertest: "6.3.3",
|
|
130
|
-
tsconfig: "0.0.0-experimental.
|
|
134
|
+
tsconfig: "0.0.0-experimental.ca5f02ef2ec166e219546983049c0543bed92f8d"
|
|
131
135
|
};
|
|
132
136
|
var engines = {
|
|
133
137
|
node: ">=18.0.0 <=22.x.x",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"package.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Core, Struct } from '@strapi/types';
|
|
2
|
+
declare const createContentSourceMapsService: (strapi: Core.Strapi) => {
|
|
3
|
+
readonly config: import("@strapi/types/dist/core/config/api").ContentSourceMapsProp;
|
|
4
|
+
isEnabled(): boolean;
|
|
5
|
+
encodeSourceMaps(data: any, contentType: Struct.ContentTypeSchema, rootId?: any, rootModel?: string): Promise<void>;
|
|
6
|
+
};
|
|
7
|
+
export { createContentSourceMapsService };
|
|
8
|
+
//# sourceMappingURL=content-source-maps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-source-maps.d.ts","sourceRoot":"","sources":["../../src/services/content-source-maps.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AA2BlD,QAAA,MAAM,8BAA8B,WAAY,KAAK,MAAM;;iBAgB1C,OAAO;2BAKZ,GAAG,eACI,OAAO,iBAAiB,WAC5B,GAAG,cACA,MAAM,GACjB,QAAQ,IAAI,CAAC;CAqHnB,CAAC;AAEF,OAAO,EAAE,8BAA8B,EAAE,CAAC"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var stega = require('@vercel/stega');
|
|
4
|
+
|
|
5
|
+
const ENCODABLE_TYPES = [
|
|
6
|
+
'string',
|
|
7
|
+
'text',
|
|
8
|
+
'richtext',
|
|
9
|
+
'uid',
|
|
10
|
+
'enumeration',
|
|
11
|
+
'email',
|
|
12
|
+
'date',
|
|
13
|
+
'datetime',
|
|
14
|
+
'time',
|
|
15
|
+
'timestamp'
|
|
16
|
+
];
|
|
17
|
+
const EXCLUDED_FIELDS = [
|
|
18
|
+
'id',
|
|
19
|
+
'documentId',
|
|
20
|
+
'locale',
|
|
21
|
+
'localizations',
|
|
22
|
+
'created_by',
|
|
23
|
+
'updated_by',
|
|
24
|
+
'created_at',
|
|
25
|
+
'updated_at',
|
|
26
|
+
'publishedAt'
|
|
27
|
+
];
|
|
28
|
+
const createContentSourceMapsService = (strapi)=>{
|
|
29
|
+
return {
|
|
30
|
+
get config () {
|
|
31
|
+
const apiConfig = strapi.config.get('api');
|
|
32
|
+
const config = apiConfig?.contentSourceMaps;
|
|
33
|
+
if (!config) {
|
|
34
|
+
return {
|
|
35
|
+
// TODO: decide what defaults would make sense
|
|
36
|
+
enabled: true
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
return config;
|
|
40
|
+
},
|
|
41
|
+
isEnabled () {
|
|
42
|
+
return this.config.enabled ?? true;
|
|
43
|
+
},
|
|
44
|
+
async encodeSourceMaps (data, contentType, rootId, rootModel) {
|
|
45
|
+
if (!this.isEnabled()) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const fileModel = strapi.getModel('plugin::upload.file');
|
|
49
|
+
function encodeEditInfo(text, key) {
|
|
50
|
+
const res = stega.vercelStegaCombine(text, {
|
|
51
|
+
key
|
|
52
|
+
});
|
|
53
|
+
return res;
|
|
54
|
+
}
|
|
55
|
+
async function encodeEntry(entryRootId, entryRootModel, entryData, model) {
|
|
56
|
+
if (typeof entryData !== 'object' || entryData === null || entryData === undefined) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
Object.keys(entryData).forEach((key)=>{
|
|
60
|
+
const value = entryData[key];
|
|
61
|
+
// Skip encoding if the value is null or undefined
|
|
62
|
+
if (value === null || value === undefined) return;
|
|
63
|
+
const attribute = model.attributes[key];
|
|
64
|
+
if (attribute && !EXCLUDED_FIELDS.includes(key)) {
|
|
65
|
+
if (ENCODABLE_TYPES.includes(attribute.type)) {
|
|
66
|
+
entryData[key] = encodeEditInfo(value, key);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
if (attribute.type === 'component') {
|
|
70
|
+
const componentModel = strapi.getModel(attribute.component);
|
|
71
|
+
if (Array.isArray(value)) {
|
|
72
|
+
return value.forEach((item)=>{
|
|
73
|
+
return encodeEntry(entryRootId, entryRootModel, item, componentModel);
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
return encodeEntry(entryRootId, entryRootModel, value, componentModel);
|
|
77
|
+
}
|
|
78
|
+
if (attribute.type === 'dynamiczone' && Array.isArray(value)) {
|
|
79
|
+
return value.forEach((item)=>{
|
|
80
|
+
return encodeEntry(entryRootId, entryRootModel, item, strapi.getModel(item.__component));
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
if (attribute.type === 'relation') {
|
|
84
|
+
const relatedModel = strapi.getModel(attribute.target);
|
|
85
|
+
if (Array.isArray(value)) {
|
|
86
|
+
return value.forEach((item)=>{
|
|
87
|
+
return encodeEntry(item.id, relatedModel.uid, item, strapi.getModel(attribute.target));
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
console.log('Encoding relation. value:', value);
|
|
91
|
+
return encodeEntry(value.id, relatedModel.uid, value, strapi.getModel(attribute.target));
|
|
92
|
+
}
|
|
93
|
+
if (attribute.type === 'media') {
|
|
94
|
+
if (Array.isArray(value.data)) {
|
|
95
|
+
return value.data.forEach((item)=>{
|
|
96
|
+
return encodeEntry(entryRootId, entryRootModel, item, fileModel);
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
return encodeEntry(entryRootId, entryRootModel, value.data, fileModel);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
if (Array.isArray(data)) {
|
|
105
|
+
data.forEach((item)=>this.encodeSourceMaps(item, contentType));
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
if (typeof data !== 'object' || data === null) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
const actualRootId = rootId || data.id;
|
|
112
|
+
const actualRootModel = rootModel || contentType.uid;
|
|
113
|
+
await encodeEntry(actualRootId, actualRootModel, data, contentType);
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
exports.createContentSourceMapsService = createContentSourceMapsService;
|
|
119
|
+
//# sourceMappingURL=content-source-maps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-source-maps.js","sources":["../../src/services/content-source-maps.ts"],"sourcesContent":["import { vercelStegaCombine } from '@vercel/stega';\nimport type { Core, Struct } from '@strapi/types';\n\nconst ENCODABLE_TYPES = [\n 'string',\n 'text',\n 'richtext',\n 'uid',\n 'enumeration',\n 'email',\n 'date',\n 'datetime',\n 'time',\n 'timestamp',\n];\n\nconst EXCLUDED_FIELDS = [\n 'id',\n 'documentId',\n 'locale',\n 'localizations',\n 'created_by',\n 'updated_by',\n 'created_at',\n 'updated_at',\n 'publishedAt',\n];\n\nconst createContentSourceMapsService = (strapi: Core.Strapi) => {\n return {\n get config() {\n const apiConfig = strapi.config.get<Core.Config.Api>('api');\n const config = apiConfig?.contentSourceMaps;\n\n if (!config) {\n return {\n // TODO: decide what defaults would make sense\n enabled: true,\n };\n }\n\n return config;\n },\n\n isEnabled(): boolean {\n return this.config.enabled ?? true;\n },\n\n async encodeSourceMaps(\n data: any,\n contentType: Struct.ContentTypeSchema,\n rootId?: any,\n rootModel?: string\n ): Promise<void> {\n if (!this.isEnabled()) {\n return;\n }\n\n const fileModel = strapi.getModel('plugin::upload.file');\n\n function encodeEditInfo(text: string, key: string): string {\n const res = vercelStegaCombine(text, {\n key,\n });\n return res;\n }\n\n async function encodeEntry(\n entryRootId: any,\n entryRootModel: string,\n entryData: any,\n model: any\n ) {\n if (typeof entryData !== 'object' || entryData === null || entryData === undefined) {\n return;\n }\n\n Object.keys(entryData).forEach((key) => {\n const value = entryData[key];\n\n // Skip encoding if the value is null or undefined\n if (value === null || value === undefined) return;\n\n const attribute = model.attributes[key];\n\n if (attribute && !EXCLUDED_FIELDS.includes(key)) {\n if (ENCODABLE_TYPES.includes(attribute.type)) {\n entryData[key] = encodeEditInfo(\n value,\n key\n // `${BASE_EDIT_URL}/${entryRootModel}/${entryRootId}`\n );\n return;\n }\n\n if (attribute.type === 'component') {\n const componentModel = strapi.getModel(attribute.component);\n\n if (Array.isArray(value)) {\n return value.forEach((item) => {\n return encodeEntry(entryRootId, entryRootModel, item, componentModel);\n });\n }\n\n return encodeEntry(entryRootId, entryRootModel, value, componentModel);\n }\n\n if (attribute.type === 'dynamiczone' && Array.isArray(value)) {\n return value.forEach((item) => {\n return encodeEntry(\n entryRootId,\n entryRootModel,\n item,\n strapi.getModel(item.__component)\n );\n });\n }\n\n if (attribute.type === 'relation') {\n const relatedModel = strapi.getModel(attribute.target);\n\n if (Array.isArray(value)) {\n return value.forEach((item: any) => {\n return encodeEntry(\n item.id,\n relatedModel.uid,\n item,\n strapi.getModel(attribute.target)\n );\n });\n }\n\n console.log('Encoding relation. value:', value);\n\n return encodeEntry(\n value.id,\n relatedModel.uid,\n value,\n strapi.getModel(attribute.target)\n );\n }\n\n if (attribute.type === 'media') {\n if (Array.isArray(value.data)) {\n return value.data.forEach((item: any) => {\n return encodeEntry(entryRootId, entryRootModel, item, fileModel);\n });\n }\n\n return encodeEntry(entryRootId, entryRootModel, value.data, fileModel);\n }\n }\n });\n }\n\n if (Array.isArray(data)) {\n data.forEach((item) => this.encodeSourceMaps(item, contentType));\n return;\n }\n\n if (typeof data !== 'object' || data === null) {\n return;\n }\n\n const actualRootId = rootId || data.id;\n const actualRootModel = rootModel || contentType.uid;\n\n await encodeEntry(actualRootId, actualRootModel, data, contentType);\n },\n };\n};\n\nexport { createContentSourceMapsService };\n"],"names":["ENCODABLE_TYPES","EXCLUDED_FIELDS","createContentSourceMapsService","strapi","config","apiConfig","get","contentSourceMaps","enabled","isEnabled","encodeSourceMaps","data","contentType","rootId","rootModel","fileModel","getModel","encodeEditInfo","text","key","res","vercelStegaCombine","encodeEntry","entryRootId","entryRootModel","entryData","model","undefined","Object","keys","forEach","value","attribute","attributes","includes","type","componentModel","component","Array","isArray","item","__component","relatedModel","target","id","uid","console","log","actualRootId","actualRootModel"],"mappings":"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"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { vercelStegaCombine } from '@vercel/stega';
|
|
2
|
+
|
|
3
|
+
const ENCODABLE_TYPES = [
|
|
4
|
+
'string',
|
|
5
|
+
'text',
|
|
6
|
+
'richtext',
|
|
7
|
+
'uid',
|
|
8
|
+
'enumeration',
|
|
9
|
+
'email',
|
|
10
|
+
'date',
|
|
11
|
+
'datetime',
|
|
12
|
+
'time',
|
|
13
|
+
'timestamp'
|
|
14
|
+
];
|
|
15
|
+
const EXCLUDED_FIELDS = [
|
|
16
|
+
'id',
|
|
17
|
+
'documentId',
|
|
18
|
+
'locale',
|
|
19
|
+
'localizations',
|
|
20
|
+
'created_by',
|
|
21
|
+
'updated_by',
|
|
22
|
+
'created_at',
|
|
23
|
+
'updated_at',
|
|
24
|
+
'publishedAt'
|
|
25
|
+
];
|
|
26
|
+
const createContentSourceMapsService = (strapi)=>{
|
|
27
|
+
return {
|
|
28
|
+
get config () {
|
|
29
|
+
const apiConfig = strapi.config.get('api');
|
|
30
|
+
const config = apiConfig?.contentSourceMaps;
|
|
31
|
+
if (!config) {
|
|
32
|
+
return {
|
|
33
|
+
// TODO: decide what defaults would make sense
|
|
34
|
+
enabled: true
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
return config;
|
|
38
|
+
},
|
|
39
|
+
isEnabled () {
|
|
40
|
+
return this.config.enabled ?? true;
|
|
41
|
+
},
|
|
42
|
+
async encodeSourceMaps (data, contentType, rootId, rootModel) {
|
|
43
|
+
if (!this.isEnabled()) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const fileModel = strapi.getModel('plugin::upload.file');
|
|
47
|
+
function encodeEditInfo(text, key) {
|
|
48
|
+
const res = vercelStegaCombine(text, {
|
|
49
|
+
key
|
|
50
|
+
});
|
|
51
|
+
return res;
|
|
52
|
+
}
|
|
53
|
+
async function encodeEntry(entryRootId, entryRootModel, entryData, model) {
|
|
54
|
+
if (typeof entryData !== 'object' || entryData === null || entryData === undefined) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
Object.keys(entryData).forEach((key)=>{
|
|
58
|
+
const value = entryData[key];
|
|
59
|
+
// Skip encoding if the value is null or undefined
|
|
60
|
+
if (value === null || value === undefined) return;
|
|
61
|
+
const attribute = model.attributes[key];
|
|
62
|
+
if (attribute && !EXCLUDED_FIELDS.includes(key)) {
|
|
63
|
+
if (ENCODABLE_TYPES.includes(attribute.type)) {
|
|
64
|
+
entryData[key] = encodeEditInfo(value, key);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
if (attribute.type === 'component') {
|
|
68
|
+
const componentModel = strapi.getModel(attribute.component);
|
|
69
|
+
if (Array.isArray(value)) {
|
|
70
|
+
return value.forEach((item)=>{
|
|
71
|
+
return encodeEntry(entryRootId, entryRootModel, item, componentModel);
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
return encodeEntry(entryRootId, entryRootModel, value, componentModel);
|
|
75
|
+
}
|
|
76
|
+
if (attribute.type === 'dynamiczone' && Array.isArray(value)) {
|
|
77
|
+
return value.forEach((item)=>{
|
|
78
|
+
return encodeEntry(entryRootId, entryRootModel, item, strapi.getModel(item.__component));
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
if (attribute.type === 'relation') {
|
|
82
|
+
const relatedModel = strapi.getModel(attribute.target);
|
|
83
|
+
if (Array.isArray(value)) {
|
|
84
|
+
return value.forEach((item)=>{
|
|
85
|
+
return encodeEntry(item.id, relatedModel.uid, item, strapi.getModel(attribute.target));
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
console.log('Encoding relation. value:', value);
|
|
89
|
+
return encodeEntry(value.id, relatedModel.uid, value, strapi.getModel(attribute.target));
|
|
90
|
+
}
|
|
91
|
+
if (attribute.type === 'media') {
|
|
92
|
+
if (Array.isArray(value.data)) {
|
|
93
|
+
return value.data.forEach((item)=>{
|
|
94
|
+
return encodeEntry(entryRootId, entryRootModel, item, fileModel);
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
return encodeEntry(entryRootId, entryRootModel, value.data, fileModel);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
if (Array.isArray(data)) {
|
|
103
|
+
data.forEach((item)=>this.encodeSourceMaps(item, contentType));
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
if (typeof data !== 'object' || data === null) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
const actualRootId = rootId || data.id;
|
|
110
|
+
const actualRootModel = rootModel || contentType.uid;
|
|
111
|
+
await encodeEntry(actualRootId, actualRootModel, data, contentType);
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
export { createContentSourceMapsService };
|
|
117
|
+
//# sourceMappingURL=content-source-maps.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-source-maps.mjs","sources":["../../src/services/content-source-maps.ts"],"sourcesContent":["import { vercelStegaCombine } from '@vercel/stega';\nimport type { Core, Struct } from '@strapi/types';\n\nconst ENCODABLE_TYPES = [\n 'string',\n 'text',\n 'richtext',\n 'uid',\n 'enumeration',\n 'email',\n 'date',\n 'datetime',\n 'time',\n 'timestamp',\n];\n\nconst EXCLUDED_FIELDS = [\n 'id',\n 'documentId',\n 'locale',\n 'localizations',\n 'created_by',\n 'updated_by',\n 'created_at',\n 'updated_at',\n 'publishedAt',\n];\n\nconst createContentSourceMapsService = (strapi: Core.Strapi) => {\n return {\n get config() {\n const apiConfig = strapi.config.get<Core.Config.Api>('api');\n const config = apiConfig?.contentSourceMaps;\n\n if (!config) {\n return {\n // TODO: decide what defaults would make sense\n enabled: true,\n };\n }\n\n return config;\n },\n\n isEnabled(): boolean {\n return this.config.enabled ?? true;\n },\n\n async encodeSourceMaps(\n data: any,\n contentType: Struct.ContentTypeSchema,\n rootId?: any,\n rootModel?: string\n ): Promise<void> {\n if (!this.isEnabled()) {\n return;\n }\n\n const fileModel = strapi.getModel('plugin::upload.file');\n\n function encodeEditInfo(text: string, key: string): string {\n const res = vercelStegaCombine(text, {\n key,\n });\n return res;\n }\n\n async function encodeEntry(\n entryRootId: any,\n entryRootModel: string,\n entryData: any,\n model: any\n ) {\n if (typeof entryData !== 'object' || entryData === null || entryData === undefined) {\n return;\n }\n\n Object.keys(entryData).forEach((key) => {\n const value = entryData[key];\n\n // Skip encoding if the value is null or undefined\n if (value === null || value === undefined) return;\n\n const attribute = model.attributes[key];\n\n if (attribute && !EXCLUDED_FIELDS.includes(key)) {\n if (ENCODABLE_TYPES.includes(attribute.type)) {\n entryData[key] = encodeEditInfo(\n value,\n key\n // `${BASE_EDIT_URL}/${entryRootModel}/${entryRootId}`\n );\n return;\n }\n\n if (attribute.type === 'component') {\n const componentModel = strapi.getModel(attribute.component);\n\n if (Array.isArray(value)) {\n return value.forEach((item) => {\n return encodeEntry(entryRootId, entryRootModel, item, componentModel);\n });\n }\n\n return encodeEntry(entryRootId, entryRootModel, value, componentModel);\n }\n\n if (attribute.type === 'dynamiczone' && Array.isArray(value)) {\n return value.forEach((item) => {\n return encodeEntry(\n entryRootId,\n entryRootModel,\n item,\n strapi.getModel(item.__component)\n );\n });\n }\n\n if (attribute.type === 'relation') {\n const relatedModel = strapi.getModel(attribute.target);\n\n if (Array.isArray(value)) {\n return value.forEach((item: any) => {\n return encodeEntry(\n item.id,\n relatedModel.uid,\n item,\n strapi.getModel(attribute.target)\n );\n });\n }\n\n console.log('Encoding relation. value:', value);\n\n return encodeEntry(\n value.id,\n relatedModel.uid,\n value,\n strapi.getModel(attribute.target)\n );\n }\n\n if (attribute.type === 'media') {\n if (Array.isArray(value.data)) {\n return value.data.forEach((item: any) => {\n return encodeEntry(entryRootId, entryRootModel, item, fileModel);\n });\n }\n\n return encodeEntry(entryRootId, entryRootModel, value.data, fileModel);\n }\n }\n });\n }\n\n if (Array.isArray(data)) {\n data.forEach((item) => this.encodeSourceMaps(item, contentType));\n return;\n }\n\n if (typeof data !== 'object' || data === null) {\n return;\n }\n\n const actualRootId = rootId || data.id;\n const actualRootModel = rootModel || contentType.uid;\n\n await encodeEntry(actualRootId, actualRootModel, data, contentType);\n },\n };\n};\n\nexport { createContentSourceMapsService };\n"],"names":["ENCODABLE_TYPES","EXCLUDED_FIELDS","createContentSourceMapsService","strapi","config","apiConfig","get","contentSourceMaps","enabled","isEnabled","encodeSourceMaps","data","contentType","rootId","rootModel","fileModel","getModel","encodeEditInfo","text","key","res","vercelStegaCombine","encodeEntry","entryRootId","entryRootModel","entryData","model","undefined","Object","keys","forEach","value","attribute","attributes","includes","type","componentModel","component","Array","isArray","item","__component","relatedModel","target","id","uid","console","log","actualRootId","actualRootModel"],"mappings":"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"}
|
|
@@ -18,11 +18,11 @@ type GetParams = {
|
|
|
18
18
|
type Params = SetParams & GetParams;
|
|
19
19
|
interface CoreStore {
|
|
20
20
|
(defaultParams: Partial<Params>): {
|
|
21
|
-
get(params: Partial<GetParams>): Promise<
|
|
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<
|
|
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,
|
|
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"}
|