@strapi/core 0.0.0-experimental.edc24aaa3bb5a90fa5fd4fee208167dd4e2e38d4 → 0.0.0-experimental.f0a0bc26f5ef0693aaea2a616bc6b816cfee54b6
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/Strapi.d.ts.map +1 -1
- package/dist/Strapi.js +10 -6
- package/dist/Strapi.js.map +1 -1
- package/dist/Strapi.mjs +9 -6
- package/dist/Strapi.mjs.map +1 -1
- package/dist/core-api/service/collection-type.d.ts +2 -2
- package/dist/ee/index.d.ts.map +1 -1
- package/dist/ee/index.js +6 -1
- package/dist/ee/index.js.map +1 -1
- package/dist/ee/index.mjs +6 -1
- package/dist/ee/index.mjs.map +1 -1
- package/dist/factories.js.map +1 -1
- package/dist/factories.mjs.map +1 -1
- package/dist/loaders/plugins/get-enabled-plugins.d.ts.map +1 -1
- package/dist/loaders/plugins/get-enabled-plugins.js +32 -4
- package/dist/loaders/plugins/get-enabled-plugins.js.map +1 -1
- package/dist/loaders/plugins/get-enabled-plugins.mjs +10 -4
- package/dist/loaders/plugins/get-enabled-plugins.mjs.map +1 -1
- package/dist/loaders/plugins/index.d.ts.map +1 -1
- package/dist/loaders/plugins/index.js +28 -1
- package/dist/loaders/plugins/index.js.map +1 -1
- package/dist/loaders/plugins/index.mjs +9 -1
- package/dist/loaders/plugins/index.mjs.map +1 -1
- package/dist/middlewares/query.js.map +1 -1
- package/dist/middlewares/query.mjs.map +1 -1
- package/dist/middlewares/security.d.ts.map +1 -1
- package/dist/middlewares/security.js +1 -1
- package/dist/middlewares/security.js.map +1 -1
- package/dist/middlewares/security.mjs +1 -1
- package/dist/middlewares/security.mjs.map +1 -1
- package/dist/migrations/database/5.0.0-discard-drafts.d.ts +12 -9
- package/dist/migrations/database/5.0.0-discard-drafts.d.ts.map +1 -1
- package/dist/migrations/database/5.0.0-discard-drafts.js +67 -11
- package/dist/migrations/database/5.0.0-discard-drafts.js.map +1 -1
- package/dist/migrations/database/5.0.0-discard-drafts.mjs +68 -12
- package/dist/migrations/database/5.0.0-discard-drafts.mjs.map +1 -1
- package/dist/migrations/draft-publish.d.ts +1 -1
- package/dist/migrations/draft-publish.d.ts.map +1 -1
- package/dist/migrations/draft-publish.js.map +1 -1
- package/dist/migrations/draft-publish.mjs.map +1 -1
- package/dist/migrations/i18n.d.ts +5 -0
- package/dist/migrations/i18n.d.ts.map +1 -0
- package/dist/migrations/i18n.js +54 -0
- package/dist/migrations/i18n.js.map +1 -0
- package/dist/migrations/i18n.mjs +54 -0
- package/dist/migrations/i18n.mjs.map +1 -0
- package/dist/migrations/index.d.ts +5 -0
- package/dist/migrations/index.d.ts.map +1 -0
- package/dist/migrations/index.js +15 -0
- package/dist/migrations/index.js.map +1 -0
- package/dist/migrations/index.mjs +15 -0
- package/dist/migrations/index.mjs.map +1 -0
- package/dist/providers/admin.d.ts.map +1 -1
- package/dist/providers/admin.js.map +1 -1
- package/dist/providers/admin.mjs.map +1 -1
- package/dist/providers/registries.js +3 -3
- package/dist/providers/registries.js.map +1 -1
- package/dist/providers/registries.mjs +3 -3
- package/dist/providers/registries.mjs.map +1 -1
- package/dist/registries/policies.d.ts +1 -1
- package/dist/registries/policies.d.ts.map +1 -1
- package/dist/registries/policies.js +1 -1
- package/dist/registries/policies.js.map +1 -1
- package/dist/registries/policies.mjs +1 -1
- package/dist/registries/policies.mjs.map +1 -1
- package/dist/services/content-api/index.d.ts +10 -12
- package/dist/services/content-api/index.d.ts.map +1 -1
- package/dist/services/content-api/permissions/index.d.ts +10 -12
- package/dist/services/content-api/permissions/index.d.ts.map +1 -1
- package/dist/services/content-api/permissions/providers/action.d.ts +5 -6
- package/dist/services/content-api/permissions/providers/action.d.ts.map +1 -1
- package/dist/services/content-api/permissions/providers/condition.d.ts +5 -6
- package/dist/services/content-api/permissions/providers/condition.d.ts.map +1 -1
- package/dist/services/cron.d.ts +3 -3
- package/dist/services/cron.d.ts.map +1 -1
- package/dist/services/cron.js +9 -4
- package/dist/services/cron.js.map +1 -1
- package/dist/services/cron.mjs +9 -4
- package/dist/services/cron.mjs.map +1 -1
- package/dist/services/document-service/common.d.ts +1 -1
- package/dist/services/document-service/common.d.ts.map +1 -1
- package/dist/services/document-service/common.js.map +1 -1
- package/dist/services/document-service/common.mjs.map +1 -1
- package/dist/services/document-service/entries.d.ts +2 -2
- package/dist/services/document-service/entries.d.ts.map +1 -1
- package/dist/services/document-service/entries.js +6 -7
- package/dist/services/document-service/entries.js.map +1 -1
- package/dist/services/document-service/entries.mjs +1 -2
- package/dist/services/document-service/entries.mjs.map +1 -1
- package/dist/services/document-service/index.d.ts +2 -1
- package/dist/services/document-service/index.d.ts.map +1 -1
- package/dist/services/document-service/index.js +3 -2
- package/dist/services/document-service/index.js.map +1 -1
- package/dist/services/document-service/index.mjs +3 -2
- package/dist/services/document-service/index.mjs.map +1 -1
- package/dist/services/document-service/repository.d.ts.map +1 -1
- package/dist/services/document-service/repository.js +60 -9
- package/dist/services/document-service/repository.js.map +1 -1
- package/dist/services/document-service/repository.mjs +61 -10
- package/dist/services/document-service/repository.mjs.map +1 -1
- package/dist/services/document-service/transform/id-map.d.ts.map +1 -1
- package/dist/services/document-service/transform/id-map.js +13 -4
- package/dist/services/document-service/transform/id-map.js.map +1 -1
- package/dist/services/document-service/transform/id-map.mjs +14 -5
- package/dist/services/document-service/transform/id-map.mjs.map +1 -1
- package/dist/services/document-service/transform/relations/extract/data-ids.d.ts.map +1 -1
- package/dist/services/document-service/transform/relations/extract/data-ids.js +13 -6
- package/dist/services/document-service/transform/relations/extract/data-ids.js.map +1 -1
- package/dist/services/document-service/transform/relations/extract/data-ids.mjs +13 -6
- package/dist/services/document-service/transform/relations/extract/data-ids.mjs.map +1 -1
- package/dist/services/document-service/transform/relations/transform/data-ids.d.ts.map +1 -1
- package/dist/services/document-service/transform/relations/transform/data-ids.js +16 -6
- package/dist/services/document-service/transform/relations/transform/data-ids.js.map +1 -1
- package/dist/services/document-service/transform/relations/transform/data-ids.mjs +17 -7
- package/dist/services/document-service/transform/relations/transform/data-ids.mjs.map +1 -1
- package/dist/services/document-service/transform/relations/utils/map-relation.d.ts.map +1 -1
- package/dist/services/document-service/transform/relations/utils/map-relation.js +0 -4
- package/dist/services/document-service/transform/relations/utils/map-relation.js.map +1 -1
- package/dist/services/document-service/transform/relations/utils/map-relation.mjs +0 -4
- package/dist/services/document-service/transform/relations/utils/map-relation.mjs.map +1 -1
- package/dist/services/document-service/utils/populate.d.ts.map +1 -1
- package/dist/services/document-service/utils/populate.js +4 -2
- package/dist/services/document-service/utils/populate.js.map +1 -1
- package/dist/services/document-service/utils/populate.mjs +4 -2
- package/dist/services/document-service/utils/populate.mjs.map +1 -1
- package/dist/services/document-service/utils/unidirectional-relations.d.ts +36 -0
- package/dist/services/document-service/utils/unidirectional-relations.d.ts.map +1 -0
- package/dist/services/document-service/utils/unidirectional-relations.js +69 -0
- package/dist/services/document-service/utils/unidirectional-relations.js.map +1 -0
- package/dist/services/document-service/utils/unidirectional-relations.mjs +69 -0
- package/dist/services/document-service/utils/unidirectional-relations.mjs.map +1 -0
- package/dist/services/entity-validator/blocks-validator.d.ts +1 -2
- package/dist/services/entity-validator/blocks-validator.d.ts.map +1 -1
- package/dist/services/entity-validator/blocks-validator.js +4 -3
- package/dist/services/entity-validator/blocks-validator.js.map +1 -1
- package/dist/services/entity-validator/blocks-validator.mjs +3 -3
- package/dist/services/entity-validator/blocks-validator.mjs.map +1 -1
- package/dist/services/entity-validator/index.d.ts +2 -1
- package/dist/services/entity-validator/index.d.ts.map +1 -1
- package/dist/services/entity-validator/index.js +16 -17
- package/dist/services/entity-validator/index.js.map +1 -1
- package/dist/services/entity-validator/index.mjs +20 -21
- package/dist/services/entity-validator/index.mjs.map +1 -1
- package/dist/services/entity-validator/validators.d.ts +32 -23
- package/dist/services/entity-validator/validators.d.ts.map +1 -1
- package/dist/services/entity-validator/validators.js +136 -63
- package/dist/services/entity-validator/validators.js.map +1 -1
- package/dist/services/entity-validator/validators.mjs +135 -63
- package/dist/services/entity-validator/validators.mjs.map +1 -1
- package/dist/utils/startup-logger.d.ts.map +1 -1
- package/dist/utils/startup-logger.js +6 -1
- package/dist/utils/startup-logger.js.map +1 -1
- package/dist/utils/startup-logger.mjs +6 -1
- package/dist/utils/startup-logger.mjs.map +1 -1
- package/dist/utils/transform-content-types-to-models.d.ts +355 -23
- package/dist/utils/transform-content-types-to-models.d.ts.map +1 -1
- package/dist/utils/transform-content-types-to-models.js +2 -1
- package/dist/utils/transform-content-types-to-models.js.map +1 -1
- package/dist/utils/transform-content-types-to-models.mjs +2 -1
- package/dist/utils/transform-content-types-to-models.mjs.map +1 -1
- package/package.json +19 -19
@@ -48,7 +48,7 @@ const policiesRegistry = () => {
|
|
48
48
|
* Returns this list of registered policies uids
|
49
49
|
*/
|
50
50
|
keys() {
|
51
|
-
return policies.keys();
|
51
|
+
return Array.from(policies.keys());
|
52
52
|
},
|
53
53
|
/**
|
54
54
|
* Returns the instance of a policy. Instantiate the policy if not already done
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"policies.mjs","sources":["../../src/registries/policies.ts"],"sourcesContent":["import { pickBy, has, castArray } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\nimport { addNamespace, hasNamespace } from './namespace';\n\nconst PLUGIN_PREFIX = 'plugin::';\nconst API_PREFIX = 'api::';\n\ninterface PolicyInfo {\n name: string;\n config: unknown;\n}\n\ntype PolicyConfig = string | PolicyInfo;\n\ninterface NamespaceInfo {\n pluginName?: string;\n apiName?: string;\n}\n\nconst parsePolicy = (policy: string | PolicyInfo) => {\n if (typeof policy === 'string') {\n return { policyName: policy, config: {} };\n }\n\n const { name, config } = policy;\n return { policyName: name, config };\n};\n\nconst policiesRegistry = () => {\n const policies = new Map<string, Core.Policy>();\n\n const find = (name: string, namespaceInfo?: NamespaceInfo) => {\n const { pluginName, apiName } = namespaceInfo ?? {};\n\n // try to resolve a full name to avoid extra prefixing\n const policy = policies.get(name);\n\n if (policy) {\n return policy;\n }\n\n if (pluginName) {\n return policies.get(`${PLUGIN_PREFIX}${pluginName}.${name}`);\n }\n\n if (apiName) {\n return policies.get(`${API_PREFIX}${apiName}.${name}`);\n }\n };\n\n function resolveHandler(policyConfig: PolicyConfig, namespaceInfo?: NamespaceInfo): Core.Policy;\n function resolveHandler(\n policyConfig: PolicyConfig[],\n namespaceInfo?: NamespaceInfo\n ): Core.Policy[];\n function resolveHandler(\n policyConfig: PolicyConfig | PolicyConfig[],\n namespaceInfo?: NamespaceInfo\n ): Core.Policy | Core.Policy[] {\n if (Array.isArray(policyConfig)) {\n return policyConfig.map((config) => {\n return resolveHandler(config, namespaceInfo);\n });\n }\n\n const { policyName, config } = parsePolicy(policyConfig);\n\n const policy = find(policyName, namespaceInfo);\n\n if (!policy) {\n throw new Error(`Policy ${policyName} not found.`);\n }\n\n if (typeof policy === 'function') {\n return policy;\n }\n\n if (policy.validator) {\n policy.validator(config);\n }\n\n return policy.handler;\n }\n\n return {\n /**\n * Returns this list of registered policies uids\n */\n keys() {\n return policies.keys();\n },\n\n /**\n * Returns the instance of a policy. Instantiate the policy if not already done\n */\n get(name: string, namespaceInfo?: NamespaceInfo) {\n return find(name, namespaceInfo);\n },\n /**\n * Checks if a policy is registered\n */\n has(name: string, namespaceInfo?: NamespaceInfo) {\n const res = find(name, namespaceInfo);\n return !!res;\n },\n\n /**\n * Returns a map with all the policies in a namespace\n */\n getAll(namespace: string) {\n return pickBy((_, uid) => hasNamespace(uid, namespace))(Object.fromEntries(policies));\n },\n\n /**\n * Registers a policy\n */\n set(uid: string, policy: Core.Policy) {\n policies.set(uid, policy);\n return this;\n },\n\n /**\n * Registers a map of policies for a specific namespace\n */\n add(namespace: string, newPolicies: Record<string, Core.Policy>) {\n for (const policyName of Object.keys(newPolicies)) {\n const policy = newPolicies[policyName];\n const uid = addNamespace(policyName, namespace);\n\n if (has(uid, policies)) {\n throw new Error(`Policy ${uid} has already been registered.`);\n }\n\n policies.set(uid, policy);\n }\n },\n\n /**\n * Resolves a list of policies\n */\n resolve(config: PolicyConfig | PolicyConfig[], namespaceInfo?: NamespaceInfo) {\n const { pluginName, apiName } = namespaceInfo ?? {};\n\n return castArray(config).map((policyConfig) => {\n return {\n handler: resolveHandler(policyConfig, { pluginName, apiName }),\n config: (typeof policyConfig === 'object' && policyConfig.config) || {},\n };\n });\n },\n };\n};\n\nexport default policiesRegistry;\n"],"names":["config"],"mappings":";;AAIA,MAAM,gBAAgB;AACtB,MAAM,aAAa;AAcnB,MAAM,cAAc,CAAC,WAAgC;AAC/C,MAAA,OAAO,WAAW,UAAU;AAC9B,WAAO,EAAE,YAAY,QAAQ,QAAQ,CAAG,EAAA;AAAA,EAC1C;AAEM,QAAA,EAAE,MAAM,OAAW,IAAA;AAClB,SAAA,EAAE,YAAY,MAAM;AAC7B;AAEA,MAAM,mBAAmB,MAAM;AACvB,QAAA,+BAAe;AAEf,QAAA,OAAO,CAAC,MAAc,kBAAkC;AAC5D,UAAM,EAAE,YAAY,YAAY,iBAAiB,CAAA;AAG3C,UAAA,SAAS,SAAS,IAAI,IAAI;AAEhC,QAAI,QAAQ;AACH,aAAA;AAAA,IACT;AAEA,QAAI,YAAY;AACP,aAAA,SAAS,IAAI,GAAG,aAAa,GAAG,UAAU,IAAI,IAAI,EAAE;AAAA,IAC7D;AAEA,QAAI,SAAS;AACJ,aAAA,SAAS,IAAI,GAAG,UAAU,GAAG,OAAO,IAAI,IAAI,EAAE;AAAA,IACvD;AAAA,EAAA;AAQO,WAAA,eACP,cACA,eAC6B;AACzB,QAAA,MAAM,QAAQ,YAAY,GAAG;AACxB,aAAA,aAAa,IAAI,CAACA,YAAW;AAC3B,eAAA,eAAeA,SAAQ,aAAa;AAAA,MAAA,CAC5C;AAAA,IACH;AAEA,UAAM,EAAE,YAAY,OAAO,IAAI,YAAY,YAAY;AAEjD,UAAA,SAAS,KAAK,YAAY,aAAa;AAE7C,QAAI,CAAC,QAAQ;AACX,YAAM,IAAI,MAAM,UAAU,UAAU,aAAa;AAAA,IACnD;AAEI,QAAA,OAAO,WAAW,YAAY;AACzB,aAAA;AAAA,IACT;AAEA,QAAI,OAAO,WAAW;AACpB,aAAO,UAAU,MAAM;AAAA,IACzB;AAEA,WAAO,OAAO;AAAA,EAChB;AAEO,SAAA;AAAA;AAAA;AAAA;AAAA,IAIL,OAAO;
|
1
|
+
{"version":3,"file":"policies.mjs","sources":["../../src/registries/policies.ts"],"sourcesContent":["import { pickBy, has, castArray } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\nimport { addNamespace, hasNamespace } from './namespace';\n\nconst PLUGIN_PREFIX = 'plugin::';\nconst API_PREFIX = 'api::';\n\ninterface PolicyInfo {\n name: string;\n config: unknown;\n}\n\ntype PolicyConfig = string | PolicyInfo;\n\ninterface NamespaceInfo {\n pluginName?: string;\n apiName?: string;\n}\n\nconst parsePolicy = (policy: string | PolicyInfo) => {\n if (typeof policy === 'string') {\n return { policyName: policy, config: {} };\n }\n\n const { name, config } = policy;\n return { policyName: name, config };\n};\n\nconst policiesRegistry = () => {\n const policies = new Map<string, Core.Policy>();\n\n const find = (name: string, namespaceInfo?: NamespaceInfo) => {\n const { pluginName, apiName } = namespaceInfo ?? {};\n\n // try to resolve a full name to avoid extra prefixing\n const policy = policies.get(name);\n\n if (policy) {\n return policy;\n }\n\n if (pluginName) {\n return policies.get(`${PLUGIN_PREFIX}${pluginName}.${name}`);\n }\n\n if (apiName) {\n return policies.get(`${API_PREFIX}${apiName}.${name}`);\n }\n };\n\n function resolveHandler(policyConfig: PolicyConfig, namespaceInfo?: NamespaceInfo): Core.Policy;\n function resolveHandler(\n policyConfig: PolicyConfig[],\n namespaceInfo?: NamespaceInfo\n ): Core.Policy[];\n function resolveHandler(\n policyConfig: PolicyConfig | PolicyConfig[],\n namespaceInfo?: NamespaceInfo\n ): Core.Policy | Core.Policy[] {\n if (Array.isArray(policyConfig)) {\n return policyConfig.map((config) => {\n return resolveHandler(config, namespaceInfo);\n });\n }\n\n const { policyName, config } = parsePolicy(policyConfig);\n\n const policy = find(policyName, namespaceInfo);\n\n if (!policy) {\n throw new Error(`Policy ${policyName} not found.`);\n }\n\n if (typeof policy === 'function') {\n return policy;\n }\n\n if (policy.validator) {\n policy.validator(config);\n }\n\n return policy.handler;\n }\n\n return {\n /**\n * Returns this list of registered policies uids\n */\n keys() {\n // Return an array so format stays the same as controllers, services, etc\n return Array.from(policies.keys());\n },\n\n /**\n * Returns the instance of a policy. Instantiate the policy if not already done\n */\n get(name: string, namespaceInfo?: NamespaceInfo) {\n return find(name, namespaceInfo);\n },\n /**\n * Checks if a policy is registered\n */\n has(name: string, namespaceInfo?: NamespaceInfo) {\n const res = find(name, namespaceInfo);\n return !!res;\n },\n\n /**\n * Returns a map with all the policies in a namespace\n */\n getAll(namespace: string) {\n return pickBy((_, uid) => hasNamespace(uid, namespace))(Object.fromEntries(policies));\n },\n\n /**\n * Registers a policy\n */\n set(uid: string, policy: Core.Policy) {\n policies.set(uid, policy);\n return this;\n },\n\n /**\n * Registers a map of policies for a specific namespace\n */\n add(namespace: string, newPolicies: Record<string, Core.Policy>) {\n for (const policyName of Object.keys(newPolicies)) {\n const policy = newPolicies[policyName];\n const uid = addNamespace(policyName, namespace);\n\n if (has(uid, policies)) {\n throw new Error(`Policy ${uid} has already been registered.`);\n }\n\n policies.set(uid, policy);\n }\n },\n\n /**\n * Resolves a list of policies\n */\n resolve(config: PolicyConfig | PolicyConfig[], namespaceInfo?: NamespaceInfo) {\n const { pluginName, apiName } = namespaceInfo ?? {};\n\n return castArray(config).map((policyConfig) => {\n return {\n handler: resolveHandler(policyConfig, { pluginName, apiName }),\n config: (typeof policyConfig === 'object' && policyConfig.config) || {},\n };\n });\n },\n };\n};\n\nexport default policiesRegistry;\n"],"names":["config"],"mappings":";;AAIA,MAAM,gBAAgB;AACtB,MAAM,aAAa;AAcnB,MAAM,cAAc,CAAC,WAAgC;AAC/C,MAAA,OAAO,WAAW,UAAU;AAC9B,WAAO,EAAE,YAAY,QAAQ,QAAQ,CAAG,EAAA;AAAA,EAC1C;AAEM,QAAA,EAAE,MAAM,OAAW,IAAA;AAClB,SAAA,EAAE,YAAY,MAAM;AAC7B;AAEA,MAAM,mBAAmB,MAAM;AACvB,QAAA,+BAAe;AAEf,QAAA,OAAO,CAAC,MAAc,kBAAkC;AAC5D,UAAM,EAAE,YAAY,YAAY,iBAAiB,CAAA;AAG3C,UAAA,SAAS,SAAS,IAAI,IAAI;AAEhC,QAAI,QAAQ;AACH,aAAA;AAAA,IACT;AAEA,QAAI,YAAY;AACP,aAAA,SAAS,IAAI,GAAG,aAAa,GAAG,UAAU,IAAI,IAAI,EAAE;AAAA,IAC7D;AAEA,QAAI,SAAS;AACJ,aAAA,SAAS,IAAI,GAAG,UAAU,GAAG,OAAO,IAAI,IAAI,EAAE;AAAA,IACvD;AAAA,EAAA;AAQO,WAAA,eACP,cACA,eAC6B;AACzB,QAAA,MAAM,QAAQ,YAAY,GAAG;AACxB,aAAA,aAAa,IAAI,CAACA,YAAW;AAC3B,eAAA,eAAeA,SAAQ,aAAa;AAAA,MAAA,CAC5C;AAAA,IACH;AAEA,UAAM,EAAE,YAAY,OAAO,IAAI,YAAY,YAAY;AAEjD,UAAA,SAAS,KAAK,YAAY,aAAa;AAE7C,QAAI,CAAC,QAAQ;AACX,YAAM,IAAI,MAAM,UAAU,UAAU,aAAa;AAAA,IACnD;AAEI,QAAA,OAAO,WAAW,YAAY;AACzB,aAAA;AAAA,IACT;AAEA,QAAI,OAAO,WAAW;AACpB,aAAO,UAAU,MAAM;AAAA,IACzB;AAEA,WAAO,OAAO;AAAA,EAChB;AAEO,SAAA;AAAA;AAAA;AAAA;AAAA,IAIL,OAAO;AAEL,aAAO,MAAM,KAAK,SAAS,KAAM,CAAA;AAAA,IACnC;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,MAAc,eAA+B;AACxC,aAAA,KAAK,MAAM,aAAa;AAAA,IACjC;AAAA;AAAA;AAAA;AAAA,IAIA,IAAI,MAAc,eAA+B;AACzC,YAAA,MAAM,KAAK,MAAM,aAAa;AACpC,aAAO,CAAC,CAAC;AAAA,IACX;AAAA;AAAA;AAAA;AAAA,IAKA,OAAO,WAAmB;AACxB,aAAO,OAAO,CAAC,GAAG,QAAQ,aAAa,KAAK,SAAS,CAAC,EAAE,OAAO,YAAY,QAAQ,CAAC;AAAA,IACtF;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,KAAa,QAAqB;AAC3B,eAAA,IAAI,KAAK,MAAM;AACjB,aAAA;AAAA,IACT;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,WAAmB,aAA0C;AAC/D,iBAAW,cAAc,OAAO,KAAK,WAAW,GAAG;AAC3C,cAAA,SAAS,YAAY,UAAU;AAC/B,cAAA,MAAM,aAAa,YAAY,SAAS;AAE1C,YAAA,IAAI,KAAK,QAAQ,GAAG;AACtB,gBAAM,IAAI,MAAM,UAAU,GAAG,+BAA+B;AAAA,QAC9D;AAES,iBAAA,IAAI,KAAK,MAAM;AAAA,MAC1B;AAAA,IACF;AAAA;AAAA;AAAA;AAAA,IAKA,QAAQ,QAAuC,eAA+B;AAC5E,YAAM,EAAE,YAAY,YAAY,iBAAiB,CAAA;AAEjD,aAAO,UAAU,MAAM,EAAE,IAAI,CAAC,iBAAiB;AACtC,eAAA;AAAA,UACL,SAAS,eAAe,cAAc,EAAE,YAAY,SAAS;AAAA,UAC7D,QAAS,OAAO,iBAAiB,YAAY,aAAa,UAAW,CAAC;AAAA,QAAA;AAAA,MACxE,CACD;AAAA,IACH;AAAA,EAAA;AAEJ;"}
|
@@ -8,40 +8,38 @@ declare const createContentAPI: (strapi: Core.Strapi) => {
|
|
8
8
|
engine: import("@strapi/permissions/dist/engine").Engine;
|
9
9
|
providers: {
|
10
10
|
action: {
|
11
|
-
register(action: string, payload: Record<string, unknown>): Promise<import("@strapi/utils/dist/provider-factory").Provider
|
11
|
+
register(action: string, payload: Record<string, unknown>): Promise<import("@strapi/utils/dist/provider-factory").Provider<unknown>>;
|
12
12
|
hooks: import("@strapi/utils/dist/provider-factory").ProviderHooksMap;
|
13
|
-
delete(key: string): Promise<import("@strapi/utils/dist/provider-factory").Provider
|
13
|
+
delete(key: string): Promise<import("@strapi/utils/dist/provider-factory").Provider<unknown>>;
|
14
14
|
get(key: string): {
|
15
15
|
[x: string]: unknown;
|
16
16
|
} | undefined;
|
17
|
-
getWhere(filters?: Record<string, unknown> | undefined): {
|
18
|
-
[x: string]: unknown;
|
19
|
-
}[];
|
20
17
|
values(): {
|
21
18
|
[x: string]: unknown;
|
22
19
|
}[];
|
23
20
|
keys(): string[];
|
24
21
|
has(key: string): boolean;
|
25
22
|
size(): number;
|
26
|
-
clear(): Promise<import("@strapi/utils/dist/provider-factory").Provider
|
23
|
+
clear(): Promise<import("@strapi/utils/dist/provider-factory").Provider<{
|
24
|
+
[x: string]: unknown;
|
25
|
+
}>>;
|
27
26
|
};
|
28
27
|
condition: {
|
29
|
-
register(condition: import("./permissions/providers/condition").Condition): Promise<import("@strapi/utils/dist/provider-factory").Provider
|
28
|
+
register(condition: import("./permissions/providers/condition").Condition): Promise<import("@strapi/utils/dist/provider-factory").Provider<unknown>>;
|
30
29
|
hooks: import("@strapi/utils/dist/provider-factory").ProviderHooksMap;
|
31
|
-
delete(key: string): Promise<import("@strapi/utils/dist/provider-factory").Provider
|
30
|
+
delete(key: string): Promise<import("@strapi/utils/dist/provider-factory").Provider<unknown>>;
|
32
31
|
get(key: string): {
|
33
32
|
[x: string]: unknown;
|
34
33
|
} | undefined;
|
35
|
-
getWhere(filters?: Record<string, unknown> | undefined): {
|
36
|
-
[x: string]: unknown;
|
37
|
-
}[];
|
38
34
|
values(): {
|
39
35
|
[x: string]: unknown;
|
40
36
|
}[];
|
41
37
|
keys(): string[];
|
42
38
|
has(key: string): boolean;
|
43
39
|
size(): number;
|
44
|
-
clear(): Promise<import("@strapi/utils/dist/provider-factory").Provider
|
40
|
+
clear(): Promise<import("@strapi/utils/dist/provider-factory").Provider<{
|
41
|
+
[x: string]: unknown;
|
42
|
+
}>>;
|
45
43
|
};
|
46
44
|
};
|
47
45
|
registerActions: () => Promise<void>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/content-api/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,KAAK,EAAE,IAAI,EAAO,MAAM,eAAe,CAAC;AAgB/C;;GAEG;AACH,QAAA,MAAM,gBAAgB,WAAY,KAAK,MAAM
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/content-api/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,KAAK,EAAE,IAAI,EAAO,MAAM,eAAe,CAAC;AAgB/C;;GAEG;AACH,QAAA,MAAM,gBAAgB,WAAY,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgF5C,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
@@ -7,40 +7,38 @@ declare const _default: (strapi: Core.Strapi) => {
|
|
7
7
|
engine: import("@strapi/permissions/dist/engine").Engine;
|
8
8
|
providers: {
|
9
9
|
action: {
|
10
|
-
register(action: string, payload: Record<string, unknown>): Promise<import("@strapi/utils/dist/provider-factory").Provider
|
10
|
+
register(action: string, payload: Record<string, unknown>): Promise<import("@strapi/utils/dist/provider-factory").Provider<unknown>>;
|
11
11
|
hooks: import("@strapi/utils/dist/provider-factory").ProviderHooksMap;
|
12
|
-
delete(key: string): Promise<import("@strapi/utils/dist/provider-factory").Provider
|
12
|
+
delete(key: string): Promise<import("@strapi/utils/dist/provider-factory").Provider<unknown>>;
|
13
13
|
get(key: string): {
|
14
14
|
[x: string]: unknown;
|
15
15
|
} | undefined;
|
16
|
-
getWhere(filters?: Record<string, unknown> | undefined): {
|
17
|
-
[x: string]: unknown;
|
18
|
-
}[];
|
19
16
|
values(): {
|
20
17
|
[x: string]: unknown;
|
21
18
|
}[];
|
22
19
|
keys(): string[];
|
23
20
|
has(key: string): boolean;
|
24
21
|
size(): number;
|
25
|
-
clear(): Promise<import("@strapi/utils/dist/provider-factory").Provider
|
22
|
+
clear(): Promise<import("@strapi/utils/dist/provider-factory").Provider<{
|
23
|
+
[x: string]: unknown;
|
24
|
+
}>>;
|
26
25
|
};
|
27
26
|
condition: {
|
28
|
-
register(condition: import("./providers/condition").Condition): Promise<import("@strapi/utils/dist/provider-factory").Provider
|
27
|
+
register(condition: import("./providers/condition").Condition): Promise<import("@strapi/utils/dist/provider-factory").Provider<unknown>>;
|
29
28
|
hooks: import("@strapi/utils/dist/provider-factory").ProviderHooksMap;
|
30
|
-
delete(key: string): Promise<import("@strapi/utils/dist/provider-factory").Provider
|
29
|
+
delete(key: string): Promise<import("@strapi/utils/dist/provider-factory").Provider<unknown>>;
|
31
30
|
get(key: string): {
|
32
31
|
[x: string]: unknown;
|
33
32
|
} | undefined;
|
34
|
-
getWhere(filters?: Record<string, unknown> | undefined): {
|
35
|
-
[x: string]: unknown;
|
36
|
-
}[];
|
37
33
|
values(): {
|
38
34
|
[x: string]: unknown;
|
39
35
|
}[];
|
40
36
|
keys(): string[];
|
41
37
|
has(key: string): boolean;
|
42
38
|
size(): number;
|
43
|
-
clear(): Promise<import("@strapi/utils/dist/provider-factory").Provider
|
39
|
+
clear(): Promise<import("@strapi/utils/dist/provider-factory").Provider<{
|
40
|
+
[x: string]: unknown;
|
41
|
+
}>>;
|
44
42
|
};
|
45
43
|
};
|
46
44
|
registerActions: () => Promise<void>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/content-api/permissions/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AA8B1C;;;GAGG;iCACqB,KAAK,MAAM
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/services/content-api/permissions/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AA8B1C;;;GAGG;iCACqB,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;qBAkBd,OAAO,MAAM,EAAE,MAAM,EAAE,CAAC;;;AAlB7C,wBAmHE"}
|
@@ -1,20 +1,19 @@
|
|
1
1
|
declare const _default: (options?: {}) => {
|
2
|
-
register(action: string, payload: Record<string, unknown>): Promise<import("@strapi/utils/dist/provider-factory").Provider
|
2
|
+
register(action: string, payload: Record<string, unknown>): Promise<import("@strapi/utils/dist/provider-factory").Provider<unknown>>;
|
3
3
|
hooks: import("@strapi/utils/dist/provider-factory").ProviderHooksMap;
|
4
|
-
delete(key: string): Promise<import("@strapi/utils/dist/provider-factory").Provider
|
4
|
+
delete(key: string): Promise<import("@strapi/utils/dist/provider-factory").Provider<unknown>>;
|
5
5
|
get(key: string): {
|
6
6
|
[x: string]: unknown;
|
7
7
|
} | undefined;
|
8
|
-
getWhere(filters?: Record<string, unknown> | undefined): {
|
9
|
-
[x: string]: unknown;
|
10
|
-
}[];
|
11
8
|
values(): {
|
12
9
|
[x: string]: unknown;
|
13
10
|
}[];
|
14
11
|
keys(): string[];
|
15
12
|
has(key: string): boolean;
|
16
13
|
size(): number;
|
17
|
-
clear(): Promise<import("@strapi/utils/dist/provider-factory").Provider
|
14
|
+
clear(): Promise<import("@strapi/utils/dist/provider-factory").Provider<{
|
15
|
+
[x: string]: unknown;
|
16
|
+
}>>;
|
18
17
|
};
|
19
18
|
export default _default;
|
20
19
|
//# sourceMappingURL=action.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../../../src/services/content-api/permissions/providers/action.ts"],"names":[],"mappings":";qBAQ2B,MAAM,WAAW,OAAO,MAAM,EAAE,OAAO,CAAC
|
1
|
+
{"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../../../../src/services/content-api/permissions/providers/action.ts"],"names":[],"mappings":";qBAQ2B,MAAM,WAAW,OAAO,MAAM,EAAE,OAAO,CAAC;;;;;;;;;;;;;;;;AANnE,wBAcE"}
|
@@ -3,22 +3,21 @@ export interface Condition {
|
|
3
3
|
[key: string]: unknown;
|
4
4
|
}
|
5
5
|
declare const _default: (options?: {}) => {
|
6
|
-
register(condition: Condition): Promise<import("@strapi/utils/dist/provider-factory").Provider
|
6
|
+
register(condition: Condition): Promise<import("@strapi/utils/dist/provider-factory").Provider<unknown>>;
|
7
7
|
hooks: import("@strapi/utils/dist/provider-factory").ProviderHooksMap;
|
8
|
-
delete(key: string): Promise<import("@strapi/utils/dist/provider-factory").Provider
|
8
|
+
delete(key: string): Promise<import("@strapi/utils/dist/provider-factory").Provider<unknown>>;
|
9
9
|
get(key: string): {
|
10
10
|
[x: string]: unknown;
|
11
11
|
} | undefined;
|
12
|
-
getWhere(filters?: Record<string, unknown> | undefined): {
|
13
|
-
[x: string]: unknown;
|
14
|
-
}[];
|
15
12
|
values(): {
|
16
13
|
[x: string]: unknown;
|
17
14
|
}[];
|
18
15
|
keys(): string[];
|
19
16
|
has(key: string): boolean;
|
20
17
|
size(): number;
|
21
|
-
clear(): Promise<import("@strapi/utils/dist/provider-factory").Provider
|
18
|
+
clear(): Promise<import("@strapi/utils/dist/provider-factory").Provider<{
|
19
|
+
[x: string]: unknown;
|
20
|
+
}>>;
|
22
21
|
};
|
23
22
|
export default _default;
|
24
23
|
//# sourceMappingURL=condition.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../../../../../src/services/content-api/permissions/providers/condition.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;;wBAQ6B,SAAS
|
1
|
+
{"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../../../../../src/services/content-api/permissions/providers/condition.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;;wBAQ6B,SAAS;;;;;;;;;;;;;;;;AANvC,wBAcE"}
|
package/dist/services/cron.d.ts
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
import { Job } from 'node-schedule';
|
1
|
+
import { Job, Spec } from 'node-schedule';
|
2
2
|
import type { Core } from '@strapi/types';
|
3
3
|
interface JobSpec {
|
4
4
|
job: Job;
|
5
|
-
options:
|
5
|
+
options: Spec;
|
6
6
|
name: string | null;
|
7
7
|
}
|
8
8
|
type TaskFn = ({ strapi }: {
|
@@ -10,7 +10,7 @@ type TaskFn = ({ strapi }: {
|
|
10
10
|
}, ...args: unknown[]) => Promise<unknown>;
|
11
11
|
type Task = TaskFn | {
|
12
12
|
task: TaskFn;
|
13
|
-
options:
|
13
|
+
options: Spec;
|
14
14
|
};
|
15
15
|
interface Tasks {
|
16
16
|
[key: string]: Task;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"cron.d.ts","sourceRoot":"","sources":["../../src/services/cron.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;
|
1
|
+
{"version":3,"file":"cron.d.ts","sourceRoot":"","sources":["../../src/services/cron.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,UAAU,OAAO;IACf,GAAG,EAAE,GAAG,CAAC;IACT,OAAO,EAAE,IAAI,CAAC;IACd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,KAAK,MAAM,GAAG,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAA;CAAE,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAE5F,KAAK,IAAI,GACL,MAAM,GACN;IACE,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,IAAI,CAAC;CACf,CAAC;AAEN,UAAU,KAAK;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,QAAA,MAAM,iBAAiB;gBAKR,KAAK;iBAoCH,MAAM;;;;;CAgCtB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
package/dist/services/cron.js
CHANGED
@@ -34,11 +34,16 @@ const createCronService = () => {
|
|
34
34
|
return this;
|
35
35
|
},
|
36
36
|
remove(name) {
|
37
|
-
if (!name)
|
37
|
+
if (!name)
|
38
38
|
throw new Error("You must provide a name to remove a cron job.");
|
39
|
-
}
|
40
|
-
|
41
|
-
|
39
|
+
const matchingJobsSpecs = jobsSpecs.filter(({ name: jobSpecName }, index) => {
|
40
|
+
if (jobSpecName === name) {
|
41
|
+
jobsSpecs.splice(index, 1);
|
42
|
+
return true;
|
43
|
+
}
|
44
|
+
return false;
|
45
|
+
});
|
46
|
+
matchingJobsSpecs.forEach(({ job }) => job.cancel());
|
42
47
|
return this;
|
43
48
|
},
|
44
49
|
start() {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"cron.js","sources":["../../src/services/cron.ts"],"sourcesContent":["import { Job } from 'node-schedule';\nimport { isFunction } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\n\ninterface JobSpec {\n job: Job;\n options:
|
1
|
+
{"version":3,"file":"cron.js","sources":["../../src/services/cron.ts"],"sourcesContent":["import { Job, Spec } from 'node-schedule';\nimport { isFunction } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\n\ninterface JobSpec {\n job: Job;\n options: Spec;\n name: string | null;\n}\n\ntype TaskFn = ({ strapi }: { strapi: Core.Strapi }, ...args: unknown[]) => Promise<unknown>;\n\ntype Task =\n | TaskFn\n | {\n task: TaskFn;\n options: Spec;\n };\n\ninterface Tasks {\n [key: string]: Task;\n}\n\nconst createCronService = () => {\n let jobsSpecs: JobSpec[] = [];\n let running = false;\n\n return {\n add(tasks: Tasks = {}) {\n for (const taskExpression of Object.keys(tasks)) {\n const taskValue = tasks[taskExpression];\n\n let fn: TaskFn;\n let options: Spec;\n let taskName: string | null;\n if (isFunction(taskValue)) {\n // don't use task name if key is the rule\n taskName = null;\n fn = taskValue.bind(tasks);\n options = taskExpression;\n } else if (isFunction(taskValue.task)) {\n // set task name if key is not the rule\n taskName = taskExpression;\n fn = taskValue.task.bind(taskValue);\n options = taskValue.options;\n } else {\n throw new Error(\n `Could not schedule a cron job for \"${taskExpression}\": no function found.`\n );\n }\n\n const fnWithStrapi = (...args: unknown[]) => fn({ strapi }, ...args);\n\n // const job = new Job(null, fnWithStrapi);\n const job = new Job(fnWithStrapi);\n jobsSpecs.push({ job, options, name: taskName });\n\n if (running) {\n job.schedule(options);\n }\n }\n return this;\n },\n\n remove(name: string) {\n if (!name) throw new Error('You must provide a name to remove a cron job.');\n const matchingJobsSpecs = jobsSpecs.filter(({ name: jobSpecName }, index) => {\n if (jobSpecName === name) {\n jobsSpecs.splice(index, 1);\n return true;\n }\n return false;\n });\n matchingJobsSpecs.forEach(({ job }) => job.cancel());\n return this;\n },\n\n start() {\n jobsSpecs.forEach(({ job, options }) => job.schedule(options));\n running = true;\n return this;\n },\n\n stop() {\n jobsSpecs.forEach(({ job }) => job.cancel());\n running = false;\n return this;\n },\n\n destroy() {\n this.stop();\n jobsSpecs = [];\n return this;\n },\n jobs: jobsSpecs,\n };\n};\n\nexport default createCronService;\n"],"names":["isFunction","Job"],"mappings":";;;AAuBA,MAAM,oBAAoB,MAAM;AAC9B,MAAI,YAAuB,CAAA;AAC3B,MAAI,UAAU;AAEP,SAAA;AAAA,IACL,IAAI,QAAe,IAAI;AACrB,iBAAW,kBAAkB,OAAO,KAAK,KAAK,GAAG;AACzC,cAAA,YAAY,MAAM,cAAc;AAElC,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAAA,GAAAA,WAAW,SAAS,GAAG;AAEd,qBAAA;AACN,eAAA,UAAU,KAAK,KAAK;AACf,oBAAA;AAAA,QACD,WAAAA,GAAA,WAAW,UAAU,IAAI,GAAG;AAE1B,qBAAA;AACN,eAAA,UAAU,KAAK,KAAK,SAAS;AAClC,oBAAU,UAAU;AAAA,QAAA,OACf;AACL,gBAAM,IAAI;AAAA,YACR,sCAAsC,cAAc;AAAA,UAAA;AAAA,QAExD;AAEM,cAAA,eAAe,IAAI,SAAoB,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI;AAG7D,cAAA,MAAM,IAAIC,iBAAI,YAAY;AAChC,kBAAU,KAAK,EAAE,KAAK,SAAS,MAAM,UAAU;AAE/C,YAAI,SAAS;AACX,cAAI,SAAS,OAAO;AAAA,QACtB;AAAA,MACF;AACO,aAAA;AAAA,IACT;AAAA,IAEA,OAAO,MAAc;AACnB,UAAI,CAAC;AAAY,cAAA,IAAI,MAAM,+CAA+C;AACpE,YAAA,oBAAoB,UAAU,OAAO,CAAC,EAAE,MAAM,eAAe,UAAU;AAC3E,YAAI,gBAAgB,MAAM;AACd,oBAAA,OAAO,OAAO,CAAC;AAClB,iBAAA;AAAA,QACT;AACO,eAAA;AAAA,MAAA,CACR;AACD,wBAAkB,QAAQ,CAAC,EAAE,IAAU,MAAA,IAAI,QAAQ;AAC5C,aAAA;AAAA,IACT;AAAA,IAEA,QAAQ;AACI,gBAAA,QAAQ,CAAC,EAAE,KAAK,QAAc,MAAA,IAAI,SAAS,OAAO,CAAC;AACnD,gBAAA;AACH,aAAA;AAAA,IACT;AAAA,IAEA,OAAO;AACL,gBAAU,QAAQ,CAAC,EAAE,IAAU,MAAA,IAAI,QAAQ;AACjC,gBAAA;AACH,aAAA;AAAA,IACT;AAAA,IAEA,UAAU;AACR,WAAK,KAAK;AACV,kBAAY,CAAA;AACL,aAAA;AAAA,IACT;AAAA,IACA,MAAM;AAAA,EAAA;AAEV;;"}
|
package/dist/services/cron.mjs
CHANGED
@@ -33,11 +33,16 @@ const createCronService = () => {
|
|
33
33
|
return this;
|
34
34
|
},
|
35
35
|
remove(name) {
|
36
|
-
if (!name)
|
36
|
+
if (!name)
|
37
37
|
throw new Error("You must provide a name to remove a cron job.");
|
38
|
-
}
|
39
|
-
|
40
|
-
|
38
|
+
const matchingJobsSpecs = jobsSpecs.filter(({ name: jobSpecName }, index) => {
|
39
|
+
if (jobSpecName === name) {
|
40
|
+
jobsSpecs.splice(index, 1);
|
41
|
+
return true;
|
42
|
+
}
|
43
|
+
return false;
|
44
|
+
});
|
45
|
+
matchingJobsSpecs.forEach(({ job }) => job.cancel());
|
41
46
|
return this;
|
42
47
|
},
|
43
48
|
start() {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"cron.mjs","sources":["../../src/services/cron.ts"],"sourcesContent":["import { Job } from 'node-schedule';\nimport { isFunction } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\n\ninterface JobSpec {\n job: Job;\n options:
|
1
|
+
{"version":3,"file":"cron.mjs","sources":["../../src/services/cron.ts"],"sourcesContent":["import { Job, Spec } from 'node-schedule';\nimport { isFunction } from 'lodash/fp';\nimport type { Core } from '@strapi/types';\n\ninterface JobSpec {\n job: Job;\n options: Spec;\n name: string | null;\n}\n\ntype TaskFn = ({ strapi }: { strapi: Core.Strapi }, ...args: unknown[]) => Promise<unknown>;\n\ntype Task =\n | TaskFn\n | {\n task: TaskFn;\n options: Spec;\n };\n\ninterface Tasks {\n [key: string]: Task;\n}\n\nconst createCronService = () => {\n let jobsSpecs: JobSpec[] = [];\n let running = false;\n\n return {\n add(tasks: Tasks = {}) {\n for (const taskExpression of Object.keys(tasks)) {\n const taskValue = tasks[taskExpression];\n\n let fn: TaskFn;\n let options: Spec;\n let taskName: string | null;\n if (isFunction(taskValue)) {\n // don't use task name if key is the rule\n taskName = null;\n fn = taskValue.bind(tasks);\n options = taskExpression;\n } else if (isFunction(taskValue.task)) {\n // set task name if key is not the rule\n taskName = taskExpression;\n fn = taskValue.task.bind(taskValue);\n options = taskValue.options;\n } else {\n throw new Error(\n `Could not schedule a cron job for \"${taskExpression}\": no function found.`\n );\n }\n\n const fnWithStrapi = (...args: unknown[]) => fn({ strapi }, ...args);\n\n // const job = new Job(null, fnWithStrapi);\n const job = new Job(fnWithStrapi);\n jobsSpecs.push({ job, options, name: taskName });\n\n if (running) {\n job.schedule(options);\n }\n }\n return this;\n },\n\n remove(name: string) {\n if (!name) throw new Error('You must provide a name to remove a cron job.');\n const matchingJobsSpecs = jobsSpecs.filter(({ name: jobSpecName }, index) => {\n if (jobSpecName === name) {\n jobsSpecs.splice(index, 1);\n return true;\n }\n return false;\n });\n matchingJobsSpecs.forEach(({ job }) => job.cancel());\n return this;\n },\n\n start() {\n jobsSpecs.forEach(({ job, options }) => job.schedule(options));\n running = true;\n return this;\n },\n\n stop() {\n jobsSpecs.forEach(({ job }) => job.cancel());\n running = false;\n return this;\n },\n\n destroy() {\n this.stop();\n jobsSpecs = [];\n return this;\n },\n jobs: jobsSpecs,\n };\n};\n\nexport default createCronService;\n"],"names":[],"mappings":";;AAuBA,MAAM,oBAAoB,MAAM;AAC9B,MAAI,YAAuB,CAAA;AAC3B,MAAI,UAAU;AAEP,SAAA;AAAA,IACL,IAAI,QAAe,IAAI;AACrB,iBAAW,kBAAkB,OAAO,KAAK,KAAK,GAAG;AACzC,cAAA,YAAY,MAAM,cAAc;AAElC,YAAA;AACA,YAAA;AACA,YAAA;AACA,YAAA,WAAW,SAAS,GAAG;AAEd,qBAAA;AACN,eAAA,UAAU,KAAK,KAAK;AACf,oBAAA;AAAA,QACD,WAAA,WAAW,UAAU,IAAI,GAAG;AAE1B,qBAAA;AACN,eAAA,UAAU,KAAK,KAAK,SAAS;AAClC,oBAAU,UAAU;AAAA,QAAA,OACf;AACL,gBAAM,IAAI;AAAA,YACR,sCAAsC,cAAc;AAAA,UAAA;AAAA,QAExD;AAEM,cAAA,eAAe,IAAI,SAAoB,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI;AAG7D,cAAA,MAAM,IAAI,IAAI,YAAY;AAChC,kBAAU,KAAK,EAAE,KAAK,SAAS,MAAM,UAAU;AAE/C,YAAI,SAAS;AACX,cAAI,SAAS,OAAO;AAAA,QACtB;AAAA,MACF;AACO,aAAA;AAAA,IACT;AAAA,IAEA,OAAO,MAAc;AACnB,UAAI,CAAC;AAAY,cAAA,IAAI,MAAM,+CAA+C;AACpE,YAAA,oBAAoB,UAAU,OAAO,CAAC,EAAE,MAAM,eAAe,UAAU;AAC3E,YAAI,gBAAgB,MAAM;AACd,oBAAA,OAAO,OAAO,CAAC;AAClB,iBAAA;AAAA,QACT;AACO,eAAA;AAAA,MAAA,CACR;AACD,wBAAkB,QAAQ,CAAC,EAAE,IAAU,MAAA,IAAI,QAAQ;AAC5C,aAAA;AAAA,IACT;AAAA,IAEA,QAAQ;AACI,gBAAA,QAAQ,CAAC,EAAE,KAAK,QAAc,MAAA,IAAI,SAAS,OAAO,CAAC;AACnD,gBAAA;AACH,aAAA;AAAA,IACT;AAAA,IAEA,OAAO;AACL,gBAAU,QAAQ,CAAC,EAAE,IAAU,MAAA,IAAI,QAAQ;AACjC,gBAAA;AACH,aAAA;AAAA,IACT;AAAA,IAEA,UAAU;AACR,WAAK,KAAK;AACV,kBAAY,CAAA;AACL,aAAA;AAAA,IACT;AAAA,IACA,MAAM;AAAA,EAAA;AAEV;"}
|
@@ -1,4 +1,4 @@
|
|
1
1
|
import type { UID, Modules } from '@strapi/types';
|
2
|
-
export type RepositoryFactoryMethod = <TContentTypeUID extends UID.ContentType>(uid: TContentTypeUID) => Modules.Documents.ServiceInstance<TContentTypeUID>;
|
2
|
+
export type RepositoryFactoryMethod = <TContentTypeUID extends UID.ContentType>(uid: TContentTypeUID, entityValidator: Modules.EntityValidator.EntityValidator) => Modules.Documents.ServiceInstance<TContentTypeUID>;
|
3
3
|
export declare const wrapInTransaction: (fn: (...args: any) => any) => (...args: any[]) => Promise<any>;
|
4
4
|
//# sourceMappingURL=common.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/services/document-service/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAElD,MAAM,MAAM,uBAAuB,GAAG,CAAC,eAAe,SAAS,GAAG,CAAC,WAAW,EAC5E,GAAG,EAAE,eAAe,
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/services/document-service/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAElD,MAAM,MAAM,uBAAuB,GAAG,CAAC,eAAe,SAAS,GAAG,CAAC,WAAW,EAC5E,GAAG,EAAE,eAAe,EACpB,eAAe,EAAE,OAAO,CAAC,eAAe,CAAC,eAAe,KACrD,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,eAAe,CAAC,CAAC;AAExD,eAAO,MAAM,iBAAiB,OAAQ,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,eACxC,GAAG,EAAE,iBACvB,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"common.js","sources":["../../../src/services/document-service/common.ts"],"sourcesContent":["import type { UID, Modules } from '@strapi/types';\n\nexport type RepositoryFactoryMethod = <TContentTypeUID extends UID.ContentType>(\n uid: TContentTypeUID\n) => Modules.Documents.ServiceInstance<TContentTypeUID>;\n\nexport const wrapInTransaction = (fn: (...args: any) => any) => {\n return (...args: any[]) => strapi.db.transaction?.(() => fn(...args));\n};\n"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"common.js","sources":["../../../src/services/document-service/common.ts"],"sourcesContent":["import type { UID, Modules } from '@strapi/types';\n\nexport type RepositoryFactoryMethod = <TContentTypeUID extends UID.ContentType>(\n uid: TContentTypeUID,\n entityValidator: Modules.EntityValidator.EntityValidator\n) => Modules.Documents.ServiceInstance<TContentTypeUID>;\n\nexport const wrapInTransaction = (fn: (...args: any) => any) => {\n return (...args: any[]) => strapi.db.transaction?.(() => fn(...args));\n};\n"],"names":[],"mappings":";;AAOa,MAAA,oBAAoB,CAAC,OAA8B;AACvD,SAAA,IAAI,SAAgB,OAAO,GAAG,cAAc,MAAM,GAAG,GAAG,IAAI,CAAC;AACtE;;"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"common.mjs","sources":["../../../src/services/document-service/common.ts"],"sourcesContent":["import type { UID, Modules } from '@strapi/types';\n\nexport type RepositoryFactoryMethod = <TContentTypeUID extends UID.ContentType>(\n uid: TContentTypeUID\n) => Modules.Documents.ServiceInstance<TContentTypeUID>;\n\nexport const wrapInTransaction = (fn: (...args: any) => any) => {\n return (...args: any[]) => strapi.db.transaction?.(() => fn(...args));\n};\n"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"common.mjs","sources":["../../../src/services/document-service/common.ts"],"sourcesContent":["import type { UID, Modules } from '@strapi/types';\n\nexport type RepositoryFactoryMethod = <TContentTypeUID extends UID.ContentType>(\n uid: TContentTypeUID,\n entityValidator: Modules.EntityValidator.EntityValidator\n) => Modules.Documents.ServiceInstance<TContentTypeUID>;\n\nexport const wrapInTransaction = (fn: (...args: any) => any) => {\n return (...args: any[]) => strapi.db.transaction?.(() => fn(...args));\n};\n"],"names":[],"mappings":"AAOa,MAAA,oBAAoB,CAAC,OAA8B;AACvD,SAAA,IAAI,SAAgB,OAAO,GAAG,cAAc,MAAM,GAAG,GAAG,IAAI,CAAC;AACtE;"}
|
@@ -1,5 +1,5 @@
|
|
1
|
-
import type { UID } from '@strapi/types';
|
2
|
-
declare const createEntriesService: (uid: UID.ContentType) => {
|
1
|
+
import type { UID, Modules } from '@strapi/types';
|
2
|
+
declare const createEntriesService: (uid: UID.ContentType, entityValidator: Modules.EntityValidator.EntityValidator) => {
|
3
3
|
create: (params?: any) => Promise<any>;
|
4
4
|
delete: (id: number) => Promise<any>;
|
5
5
|
update: (entryToUpdate: any, params?: any) => Promise<any>;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"entries.d.ts","sourceRoot":"","sources":["../../../src/services/document-service/entries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;
|
1
|
+
{"version":3,"file":"entries.d.ts","sourceRoot":"","sources":["../../../src/services/document-service/entries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAYlD,QAAA,MAAM,oBAAoB,QACnB,IAAI,WAAW,mBACH,QAAQ,eAAe,CAAC,eAAe;;iBAmCzB,MAAM;4BAUK,GAAG;qBA4BV,GAAG;0BAaE,GAAG;CAoB5C,CAAC;AAEF,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
|
@@ -6,10 +6,9 @@ const components = require("./components.js");
|
|
6
6
|
const idTransform = require("./transform/id-transform.js");
|
7
7
|
const query = require("./transform/query.js");
|
8
8
|
const params = require("./params.js");
|
9
|
-
const index
|
9
|
+
const index = require("./attributes/index.js");
|
10
10
|
const data = require("./transform/data.js");
|
11
|
-
const
|
12
|
-
const createEntriesService = (uid) => {
|
11
|
+
const createEntriesService = (uid, entityValidator) => {
|
13
12
|
const contentType = strapi.contentType(uid);
|
14
13
|
async function createEntry(params$1 = {}) {
|
15
14
|
const { data: data2, ...restParams } = await idTransform.transformParamsDocumentId(uid, params$1);
|
@@ -17,7 +16,7 @@ const createEntriesService = (uid) => {
|
|
17
16
|
if (!data2) {
|
18
17
|
throw new Error("Create requires data attribute");
|
19
18
|
}
|
20
|
-
const validData = await
|
19
|
+
const validData = await entityValidator.validateEntityCreation(contentType, data2, {
|
21
20
|
// Note: publishedAt value will always be set when DP is disabled
|
22
21
|
isDraft: !params$1?.data?.publishedAt,
|
23
22
|
locale: params$1?.locale
|
@@ -28,7 +27,7 @@ const createEntriesService = (uid) => {
|
|
28
27
|
componentData,
|
29
28
|
validData
|
30
29
|
);
|
31
|
-
const entryData = index
|
30
|
+
const entryData = index.applyTransforms(contentType, dataWithComponents);
|
32
31
|
const doc = await strapi.db.query(uid).create({ ...query$1, data: entryData });
|
33
32
|
return doc;
|
34
33
|
}
|
@@ -41,7 +40,7 @@ const createEntriesService = (uid) => {
|
|
41
40
|
async function updateEntry(entryToUpdate, params$1 = {}) {
|
42
41
|
const { data: data2, ...restParams } = await idTransform.transformParamsDocumentId(uid, params$1);
|
43
42
|
const query$1 = query.transformParamsToQuery(uid, params.pickSelectionParams(restParams));
|
44
|
-
const validData = await
|
43
|
+
const validData = await entityValidator.validateEntityUpdate(
|
45
44
|
contentType,
|
46
45
|
data2,
|
47
46
|
{
|
@@ -57,7 +56,7 @@ const createEntriesService = (uid) => {
|
|
57
56
|
componentData,
|
58
57
|
validData
|
59
58
|
);
|
60
|
-
const entryData = index
|
59
|
+
const entryData = index.applyTransforms(contentType, dataWithComponents);
|
61
60
|
return strapi.db.query(uid).update({ ...query$1, where: { id: entryToUpdate.id }, data: entryData });
|
62
61
|
}
|
63
62
|
async function publishEntry(entry, params2 = {}) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"entries.js","sources":["../../../src/services/document-service/entries.ts"],"sourcesContent":["import type { UID } from '@strapi/types';\nimport { async } from '@strapi/utils';\nimport { assoc, omit } from 'lodash/fp';\n\nimport * as components from './components';\n\nimport { transformParamsDocumentId } from './transform/id-transform';\nimport { transformParamsToQuery } from './transform/query';\nimport { pickSelectionParams } from './params';\nimport { applyTransforms } from './attributes';\nimport { transformData } from './transform/data';\
|
1
|
+
{"version":3,"file":"entries.js","sources":["../../../src/services/document-service/entries.ts"],"sourcesContent":["import type { UID, Modules } from '@strapi/types';\nimport { async } from '@strapi/utils';\nimport { assoc, omit } from 'lodash/fp';\n\nimport * as components from './components';\n\nimport { transformParamsDocumentId } from './transform/id-transform';\nimport { transformParamsToQuery } from './transform/query';\nimport { pickSelectionParams } from './params';\nimport { applyTransforms } from './attributes';\nimport { transformData } from './transform/data';\n\nconst createEntriesService = (\n uid: UID.ContentType,\n entityValidator: Modules.EntityValidator.EntityValidator\n) => {\n const contentType = strapi.contentType(uid);\n\n async function createEntry(params = {} as any) {\n const { data, ...restParams } = await transformParamsDocumentId(uid, params);\n\n const query = transformParamsToQuery(uid, pickSelectionParams(restParams) as any); // select / populate\n\n // Validation\n if (!data) {\n throw new Error('Create requires data attribute');\n }\n\n const validData = await entityValidator.validateEntityCreation(contentType, data, {\n // Note: publishedAt value will always be set when DP is disabled\n isDraft: !params?.data?.publishedAt,\n locale: params?.locale,\n });\n\n // Component handling\n const componentData = await components.createComponents(uid, validData);\n const dataWithComponents = components.assignComponentData(\n contentType,\n componentData,\n validData\n );\n\n const entryData = applyTransforms(contentType, dataWithComponents);\n\n const doc = await strapi.db.query(uid).create({ ...query, data: entryData });\n\n return doc;\n }\n\n async function deleteEntry(id: number) {\n const componentsToDelete = await components.getComponents(uid, { id });\n\n const deletedEntry = await strapi.db.query(uid).delete({ where: { id } });\n\n await components.deleteComponents(uid, componentsToDelete as any, { loadComponents: false });\n\n return deletedEntry;\n }\n\n async function updateEntry(entryToUpdate: any, params = {} as any) {\n const { data, ...restParams } = await transformParamsDocumentId(uid, params);\n const query = transformParamsToQuery(uid, pickSelectionParams(restParams) as any); // select / populate\n\n const validData = await entityValidator.validateEntityUpdate(\n contentType,\n data,\n {\n isDraft: !params?.data?.publishedAt, // Always update the draft version\n locale: params?.locale,\n },\n entryToUpdate\n );\n // Component handling\n const componentData = await components.updateComponents(uid, entryToUpdate, validData as any);\n const dataWithComponents = components.assignComponentData(\n contentType,\n componentData,\n validData\n );\n\n const entryData = applyTransforms(contentType, dataWithComponents);\n\n return strapi.db\n .query(uid)\n .update({ ...query, where: { id: entryToUpdate.id }, data: entryData });\n }\n\n async function publishEntry(entry: any, params = {} as any) {\n return async.pipe(\n omit('id'),\n assoc('publishedAt', new Date()),\n (draft) => {\n const opts = { uid, locale: draft.locale, status: 'published', allowMissingId: true };\n return transformData(draft, opts);\n },\n // Create the published entry\n (draft) => createEntry({ ...params, data: draft, locale: draft.locale, status: 'published' })\n )(entry);\n }\n\n async function discardDraftEntry(entry: any, params = {} as any) {\n return async.pipe(\n omit('id'),\n assoc('publishedAt', null),\n (entry) => {\n const opts = { uid, locale: entry.locale, status: 'draft', allowMissingId: true };\n return transformData(entry, opts);\n },\n // Create the draft entry\n (data) => createEntry({ ...params, locale: data.locale, data, status: 'draft' })\n )(entry);\n }\n\n return {\n create: createEntry,\n delete: deleteEntry,\n update: updateEntry,\n publish: publishEntry,\n discardDraft: discardDraftEntry,\n };\n};\n\nexport { createEntriesService };\n"],"names":["params","data","transformParamsDocumentId","query","transformParamsToQuery","pickSelectionParams","components.createComponents","components.assignComponentData","applyTransforms","components.getComponents","components.deleteComponents","components.updateComponents","async","omit","assoc","transformData","entry"],"mappings":"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"}
|
@@ -6,8 +6,7 @@ import { transformParamsToQuery } from "./transform/query.mjs";
|
|
6
6
|
import { pickSelectionParams } from "./params.mjs";
|
7
7
|
import { applyTransforms } from "./attributes/index.mjs";
|
8
8
|
import { transformData } from "./transform/data.mjs";
|
9
|
-
|
10
|
-
const createEntriesService = (uid) => {
|
9
|
+
const createEntriesService = (uid, entityValidator) => {
|
11
10
|
const contentType = strapi.contentType(uid);
|
12
11
|
async function createEntry(params = {}) {
|
13
12
|
const { data, ...restParams } = await curriedTransformParamsDocumentId(uid, params);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"entries.mjs","sources":["../../../src/services/document-service/entries.ts"],"sourcesContent":["import type { UID } from '@strapi/types';\nimport { async } from '@strapi/utils';\nimport { assoc, omit } from 'lodash/fp';\n\nimport * as components from './components';\n\nimport { transformParamsDocumentId } from './transform/id-transform';\nimport { transformParamsToQuery } from './transform/query';\nimport { pickSelectionParams } from './params';\nimport { applyTransforms } from './attributes';\nimport { transformData } from './transform/data';\
|
1
|
+
{"version":3,"file":"entries.mjs","sources":["../../../src/services/document-service/entries.ts"],"sourcesContent":["import type { UID, Modules } from '@strapi/types';\nimport { async } from '@strapi/utils';\nimport { assoc, omit } from 'lodash/fp';\n\nimport * as components from './components';\n\nimport { transformParamsDocumentId } from './transform/id-transform';\nimport { transformParamsToQuery } from './transform/query';\nimport { pickSelectionParams } from './params';\nimport { applyTransforms } from './attributes';\nimport { transformData } from './transform/data';\n\nconst createEntriesService = (\n uid: UID.ContentType,\n entityValidator: Modules.EntityValidator.EntityValidator\n) => {\n const contentType = strapi.contentType(uid);\n\n async function createEntry(params = {} as any) {\n const { data, ...restParams } = await transformParamsDocumentId(uid, params);\n\n const query = transformParamsToQuery(uid, pickSelectionParams(restParams) as any); // select / populate\n\n // Validation\n if (!data) {\n throw new Error('Create requires data attribute');\n }\n\n const validData = await entityValidator.validateEntityCreation(contentType, data, {\n // Note: publishedAt value will always be set when DP is disabled\n isDraft: !params?.data?.publishedAt,\n locale: params?.locale,\n });\n\n // Component handling\n const componentData = await components.createComponents(uid, validData);\n const dataWithComponents = components.assignComponentData(\n contentType,\n componentData,\n validData\n );\n\n const entryData = applyTransforms(contentType, dataWithComponents);\n\n const doc = await strapi.db.query(uid).create({ ...query, data: entryData });\n\n return doc;\n }\n\n async function deleteEntry(id: number) {\n const componentsToDelete = await components.getComponents(uid, { id });\n\n const deletedEntry = await strapi.db.query(uid).delete({ where: { id } });\n\n await components.deleteComponents(uid, componentsToDelete as any, { loadComponents: false });\n\n return deletedEntry;\n }\n\n async function updateEntry(entryToUpdate: any, params = {} as any) {\n const { data, ...restParams } = await transformParamsDocumentId(uid, params);\n const query = transformParamsToQuery(uid, pickSelectionParams(restParams) as any); // select / populate\n\n const validData = await entityValidator.validateEntityUpdate(\n contentType,\n data,\n {\n isDraft: !params?.data?.publishedAt, // Always update the draft version\n locale: params?.locale,\n },\n entryToUpdate\n );\n // Component handling\n const componentData = await components.updateComponents(uid, entryToUpdate, validData as any);\n const dataWithComponents = components.assignComponentData(\n contentType,\n componentData,\n validData\n );\n\n const entryData = applyTransforms(contentType, dataWithComponents);\n\n return strapi.db\n .query(uid)\n .update({ ...query, where: { id: entryToUpdate.id }, data: entryData });\n }\n\n async function publishEntry(entry: any, params = {} as any) {\n return async.pipe(\n omit('id'),\n assoc('publishedAt', new Date()),\n (draft) => {\n const opts = { uid, locale: draft.locale, status: 'published', allowMissingId: true };\n return transformData(draft, opts);\n },\n // Create the published entry\n (draft) => createEntry({ ...params, data: draft, locale: draft.locale, status: 'published' })\n )(entry);\n }\n\n async function discardDraftEntry(entry: any, params = {} as any) {\n return async.pipe(\n omit('id'),\n assoc('publishedAt', null),\n (entry) => {\n const opts = { uid, locale: entry.locale, status: 'draft', allowMissingId: true };\n return transformData(entry, opts);\n },\n // Create the draft entry\n (data) => createEntry({ ...params, locale: data.locale, data, status: 'draft' })\n )(entry);\n }\n\n return {\n create: createEntry,\n delete: deleteEntry,\n update: updateEntry,\n publish: publishEntry,\n discardDraft: discardDraftEntry,\n };\n};\n\nexport { createEntriesService };\n"],"names":["transformParamsDocumentId","components.createComponents","components.assignComponentData","components.getComponents","components.deleteComponents","components.updateComponents","entry"],"mappings":"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"}
|
@@ -6,6 +6,7 @@ import type { Core, Modules } from '@strapi/types';
|
|
6
6
|
* - Apply default parameters to document actions
|
7
7
|
*
|
8
8
|
* @param strapi
|
9
|
+
* @param validator - validator for database entries
|
9
10
|
* @returns DocumentService
|
10
11
|
*
|
11
12
|
* @example Access documents
|
@@ -13,5 +14,5 @@ import type { Core, Modules } from '@strapi/types';
|
|
13
14
|
* const allArticles = strapi.documents('api::article.article').findMany(params)
|
14
15
|
*
|
15
16
|
*/
|
16
|
-
export declare const createDocumentService: (strapi: Core.Strapi) => Modules.Documents.Service;
|
17
|
+
export declare const createDocumentService: (strapi: Core.Strapi, validator?: Modules.EntityValidator.EntityValidator) => Modules.Documents.Service;
|
17
18
|
//# sourceMappingURL=index.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/document-service/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAO,MAAM,eAAe,CAAC;
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/document-service/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAO,MAAM,eAAe,CAAC;AAQxD;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,qBAAqB,WACxB,KAAK,MAAM,cACR,QAAQ,eAAe,CAAC,eAAe,KACjD,QAAQ,SAAS,CAAC,OAmCpB,CAAC"}
|
@@ -4,7 +4,8 @@ const errors = require("./middlewares/errors.js");
|
|
4
4
|
const middlewareManager = require("./middlewares/middleware-manager.js");
|
5
5
|
const repository = require("./repository.js");
|
6
6
|
const data = require("./transform/data.js");
|
7
|
-
const
|
7
|
+
const index = require("../entity-validator/index.js");
|
8
|
+
const createDocumentService = (strapi, validator = index) => {
|
8
9
|
const repositories = /* @__PURE__ */ new Map();
|
9
10
|
const middlewares = middlewareManager.createMiddlewareManager();
|
10
11
|
middlewares.use(errors.databaseErrorsMiddleware);
|
@@ -13,7 +14,7 @@ const createDocumentService = (strapi) => {
|
|
13
14
|
return repositories.get(uid);
|
14
15
|
}
|
15
16
|
const contentType = strapi.contentType(uid);
|
16
|
-
const repository$1 = repository.createContentTypeRepository(uid);
|
17
|
+
const repository$1 = repository.createContentTypeRepository(uid, validator);
|
17
18
|
const instance = middlewares.wrapObject(
|
18
19
|
repository$1,
|
19
20
|
{ uid, contentType },
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../src/services/document-service/index.ts"],"sourcesContent":["import type { Core, Modules, UID } from '@strapi/types';\n\nimport { createMiddlewareManager, databaseErrorsMiddleware } from './middlewares';\nimport { createContentTypeRepository } from './repository';\nimport { transformData } from './transform/data';\n\n/**\n * Repository to :\n * - Access documents via actions (findMany, findOne, create, update, delete, ...)\n * - Execute middlewares on document actions\n * - Apply default parameters to document actions\n *\n * @param strapi\n * @returns DocumentService\n *\n * @example Access documents\n * const article = strapi.documents('api::article.article').create(params)\n * const allArticles = strapi.documents('api::article.article').findMany(params)\n *\n */\nexport const createDocumentService = (strapi: Core.Strapi): Modules.Documents.Service => {\n // Cache the repositories (one per content type)\n const repositories = new Map<string, Modules.Documents.ServiceInstance>();\n\n // Manager to handle document service middlewares\n const middlewares = createMiddlewareManager();\n middlewares.use(databaseErrorsMiddleware);\n\n const factory = function factory(uid: UID.ContentType) {\n if (repositories.has(uid)) {\n return repositories.get(uid)!;\n }\n\n const contentType = strapi.contentType(uid);\n const repository = createContentTypeRepository(uid);\n\n const instance = middlewares.wrapObject(\n repository,\n { uid, contentType },\n {\n exclude: ['updateComponents', 'omitComponentData'],\n }\n );\n\n repositories.set(uid, instance);\n\n return instance;\n } as Modules.Documents.Service;\n\n return Object.assign(factory, {\n utils: {\n transformData,\n },\n use: middlewares.use.bind(middlewares),\n });\n};\n"],"names":["createMiddlewareManager","databaseErrorsMiddleware","factory","repository","createContentTypeRepository","transformData"],"mappings":"
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../src/services/document-service/index.ts"],"sourcesContent":["import type { Core, Modules, UID } from '@strapi/types';\n\nimport { createMiddlewareManager, databaseErrorsMiddleware } from './middlewares';\nimport { createContentTypeRepository } from './repository';\nimport { transformData } from './transform/data';\n\nimport entityValidator from '../entity-validator';\n\n/**\n * Repository to :\n * - Access documents via actions (findMany, findOne, create, update, delete, ...)\n * - Execute middlewares on document actions\n * - Apply default parameters to document actions\n *\n * @param strapi\n * @param validator - validator for database entries\n * @returns DocumentService\n *\n * @example Access documents\n * const article = strapi.documents('api::article.article').create(params)\n * const allArticles = strapi.documents('api::article.article').findMany(params)\n *\n */\nexport const createDocumentService = (\n strapi: Core.Strapi,\n validator: Modules.EntityValidator.EntityValidator = entityValidator\n): Modules.Documents.Service => {\n // Cache the repositories (one per content type)\n const repositories = new Map<string, Modules.Documents.ServiceInstance>();\n\n // Manager to handle document service middlewares\n const middlewares = createMiddlewareManager();\n middlewares.use(databaseErrorsMiddleware);\n\n const factory = function factory(uid: UID.ContentType) {\n if (repositories.has(uid)) {\n return repositories.get(uid)!;\n }\n\n const contentType = strapi.contentType(uid);\n const repository = createContentTypeRepository(uid, validator);\n\n const instance = middlewares.wrapObject(\n repository,\n { uid, contentType },\n {\n exclude: ['updateComponents', 'omitComponentData'],\n }\n );\n\n repositories.set(uid, instance);\n\n return instance;\n } as Modules.Documents.Service;\n\n return Object.assign(factory, {\n utils: {\n transformData,\n },\n use: middlewares.use.bind(middlewares),\n });\n};\n"],"names":["entityValidator","createMiddlewareManager","databaseErrorsMiddleware","factory","repository","createContentTypeRepository","transformData"],"mappings":";;;;;;;AAuBO,MAAM,wBAAwB,CACnC,QACA,YAAqDA,UACvB;AAExB,QAAA,mCAAmB;AAGzB,QAAM,cAAcC,kBAAAA;AACpB,cAAY,IAAIC,OAAAA,wBAAwB;AAElC,QAAA,UAAU,SAASC,SAAQ,KAAsB;AACjD,QAAA,aAAa,IAAI,GAAG,GAAG;AAClB,aAAA,aAAa,IAAI,GAAG;AAAA,IAC7B;AAEM,UAAA,cAAc,OAAO,YAAY,GAAG;AACpC,UAAAC,eAAaC,WAAAA,4BAA4B,KAAK,SAAS;AAE7D,UAAM,WAAW,YAAY;AAAA,MAC3BD;AAAAA,MACA,EAAE,KAAK,YAAY;AAAA,MACnB;AAAA,QACE,SAAS,CAAC,oBAAoB,mBAAmB;AAAA,MACnD;AAAA,IAAA;AAGW,iBAAA,IAAI,KAAK,QAAQ;AAEvB,WAAA;AAAA,EAAA;AAGF,SAAA,OAAO,OAAO,SAAS;AAAA,IAC5B,OAAO;AAAA,MAAA,eACLE,KAAA;AAAA,IACF;AAAA,IACA,KAAK,YAAY,IAAI,KAAK,WAAW;AAAA,EAAA,CACtC;AACH;;"}
|
@@ -2,7 +2,8 @@ import { databaseErrorsMiddleware } from "./middlewares/errors.mjs";
|
|
2
2
|
import { createMiddlewareManager } from "./middlewares/middleware-manager.mjs";
|
3
3
|
import { createContentTypeRepository } from "./repository.mjs";
|
4
4
|
import { transformData } from "./transform/data.mjs";
|
5
|
-
|
5
|
+
import entityValidator from "../entity-validator/index.mjs";
|
6
|
+
const createDocumentService = (strapi, validator = entityValidator) => {
|
6
7
|
const repositories = /* @__PURE__ */ new Map();
|
7
8
|
const middlewares = createMiddlewareManager();
|
8
9
|
middlewares.use(databaseErrorsMiddleware);
|
@@ -11,7 +12,7 @@ const createDocumentService = (strapi) => {
|
|
11
12
|
return repositories.get(uid);
|
12
13
|
}
|
13
14
|
const contentType = strapi.contentType(uid);
|
14
|
-
const repository = createContentTypeRepository(uid);
|
15
|
+
const repository = createContentTypeRepository(uid, validator);
|
15
16
|
const instance = middlewares.wrapObject(
|
16
17
|
repository,
|
17
18
|
{ uid, contentType },
|