@strapi/data-transfer 5.49.0 → 5.50.1
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/directory/providers/destination/index.d.ts +0 -2
- package/dist/directory/providers/destination/index.d.ts.map +1 -1
- package/dist/directory/providers/destination/utils.d.ts +0 -1
- package/dist/directory/providers/destination/utils.d.ts.map +1 -1
- package/dist/directory/providers/source/index.d.ts +0 -1
- package/dist/directory/providers/source/index.d.ts.map +1 -1
- package/dist/engine/index.d.ts +0 -1
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/validation/provider.d.ts +1 -1
- package/dist/engine/validation/provider.d.ts.map +1 -1
- package/dist/engine/validation/schemas/index.d.ts.map +1 -1
- package/dist/file/providers/destination/index.d.ts +0 -3
- package/dist/file/providers/destination/index.d.ts.map +1 -1
- package/dist/file/providers/destination/utils.d.ts +0 -1
- package/dist/file/providers/destination/utils.d.ts.map +1 -1
- package/dist/file/providers/source/index.d.ts +0 -1
- package/dist/file/providers/source/index.d.ts.map +1 -1
- package/dist/file/providers/source/utils.d.ts.map +1 -1
- package/dist/strapi/providers/local-destination/assets-destination-writable.d.ts +0 -1
- package/dist/strapi/providers/local-destination/assets-destination-writable.d.ts.map +1 -1
- package/dist/strapi/providers/local-destination/index.d.ts +0 -1
- package/dist/strapi/providers/local-destination/index.d.ts.map +1 -1
- package/dist/strapi/providers/local-destination/strategies/restore/configuration.d.ts +0 -1
- package/dist/strapi/providers/local-destination/strategies/restore/configuration.d.ts.map +1 -1
- package/dist/strapi/providers/local-destination/strategies/restore/entities.d.ts +0 -1
- package/dist/strapi/providers/local-destination/strategies/restore/entities.d.ts.map +1 -1
- package/dist/strapi/providers/local-destination/strategies/restore/index.d.ts.map +1 -1
- package/dist/strapi/providers/local-destination/strategies/restore/links.d.ts +0 -1
- package/dist/strapi/providers/local-destination/strategies/restore/links.d.ts.map +1 -1
- package/dist/strapi/providers/local-destination/strategies/restore/links.js +3 -2
- package/dist/strapi/providers/local-destination/strategies/restore/links.js.map +1 -1
- package/dist/strapi/providers/local-destination/strategies/restore/links.mjs +3 -2
- package/dist/strapi/providers/local-destination/strategies/restore/links.mjs.map +1 -1
- package/dist/strapi/providers/local-destination/strategies/restore/resolve-link-ref.d.ts +10 -0
- package/dist/strapi/providers/local-destination/strategies/restore/resolve-link-ref.d.ts.map +1 -0
- package/dist/strapi/providers/local-destination/strategies/restore/resolve-link-ref.js +35 -0
- package/dist/strapi/providers/local-destination/strategies/restore/resolve-link-ref.js.map +1 -0
- package/dist/strapi/providers/local-destination/strategies/restore/resolve-link-ref.mjs +32 -0
- package/dist/strapi/providers/local-destination/strategies/restore/resolve-link-ref.mjs.map +1 -0
- package/dist/strapi/providers/local-source/assets.d.ts +0 -1
- package/dist/strapi/providers/local-source/assets.d.ts.map +1 -1
- package/dist/strapi/providers/local-source/assets.js +1 -1
- package/dist/strapi/providers/local-source/assets.js.map +1 -1
- package/dist/strapi/providers/local-source/assets.mjs +1 -1
- package/dist/strapi/providers/local-source/assets.mjs.map +1 -1
- package/dist/strapi/providers/local-source/configuration.d.ts +0 -1
- package/dist/strapi/providers/local-source/configuration.d.ts.map +1 -1
- package/dist/strapi/providers/local-source/entities.d.ts +0 -1
- package/dist/strapi/providers/local-source/entities.d.ts.map +1 -1
- package/dist/strapi/providers/local-source/index.d.ts +0 -1
- package/dist/strapi/providers/local-source/index.d.ts.map +1 -1
- package/dist/strapi/providers/local-source/links.d.ts +0 -1
- package/dist/strapi/providers/local-source/links.d.ts.map +1 -1
- package/dist/strapi/providers/remote-destination/index.d.ts +0 -1
- package/dist/strapi/providers/remote-destination/index.d.ts.map +1 -1
- package/dist/strapi/providers/remote-source/index.d.ts +0 -1
- package/dist/strapi/providers/remote-source/index.d.ts.map +1 -1
- package/dist/strapi/providers/utils.d.ts +9 -9
- package/dist/strapi/providers/utils.d.ts.map +1 -1
- package/dist/strapi/queries/entity.d.ts.map +1 -1
- package/dist/strapi/queries/link.d.ts.map +1 -1
- package/dist/strapi/remote/constants.d.ts.map +1 -1
- package/dist/strapi/remote/flows/default.d.ts.map +1 -1
- package/dist/strapi/remote/flows/index.d.ts.map +1 -1
- package/dist/strapi/remote/handlers/abstract.d.ts +0 -2
- package/dist/strapi/remote/handlers/abstract.d.ts.map +1 -1
- package/dist/strapi/remote/handlers/pull.d.ts +0 -2
- package/dist/strapi/remote/handlers/pull.d.ts.map +1 -1
- package/dist/strapi/remote/handlers/push.d.ts +0 -3
- package/dist/strapi/remote/handlers/push.d.ts.map +1 -1
- package/dist/strapi/remote/handlers/utils.d.ts +0 -1
- package/dist/strapi/remote/handlers/utils.d.ts.map +1 -1
- package/dist/strapi/utils/project-settings-logos.d.ts.map +1 -1
- package/dist/strapi/utils/project-settings-logos.js +2 -2
- package/dist/strapi/utils/project-settings-logos.js.map +1 -1
- package/dist/strapi/utils/project-settings-logos.mjs +2 -2
- package/dist/strapi/utils/project-settings-logos.mjs.map +1 -1
- package/dist/types/common-entities.d.ts +4 -7
- package/dist/types/common-entities.d.ts.map +1 -1
- package/dist/types/encryption.d.ts +4 -2
- package/dist/types/encryption.d.ts.map +1 -1
- package/dist/types/providers.d.ts +0 -1
- package/dist/types/providers.d.ts.map +1 -1
- package/dist/types/remote/protocol/client/transfer/utils.d.ts +0 -2
- package/dist/types/remote/protocol/client/transfer/utils.d.ts.map +1 -1
- package/dist/types/remote/protocol/server/error.d.ts +8 -8
- package/dist/types/remote/protocol/server/error.d.ts.map +1 -1
- package/dist/types/transfer-engine.d.ts +0 -1
- package/dist/types/transfer-engine.d.ts.map +1 -1
- package/dist/types/utils.d.ts +0 -1
- package/dist/types/utils.d.ts.map +1 -1
- package/dist/utils/components.d.ts +2 -2
- package/dist/utils/components.d.ts.map +1 -1
- package/dist/utils/components.js.map +1 -1
- package/dist/utils/components.mjs.map +1 -1
- package/dist/utils/diagnostic.d.ts.map +1 -1
- package/dist/utils/encryption/decrypt.d.ts +3 -2
- package/dist/utils/encryption/decrypt.d.ts.map +1 -1
- package/dist/utils/encryption/decrypt.js.map +1 -1
- package/dist/utils/encryption/decrypt.mjs.map +1 -1
- package/dist/utils/encryption/encrypt.d.ts +3 -2
- package/dist/utils/encryption/encrypt.d.ts.map +1 -1
- package/dist/utils/encryption/encrypt.js.map +1 -1
- package/dist/utils/encryption/encrypt.mjs.map +1 -1
- package/dist/utils/json.d.ts.map +1 -1
- package/dist/utils/middleware.d.ts.map +1 -1
- package/dist/utils/schema.d.ts.map +1 -1
- package/dist/utils/stream.d.ts +0 -1
- package/dist/utils/stream.d.ts.map +1 -1
- package/dist/utils/transaction.d.ts.map +1 -1
- package/dist/utils/transfer-asset-chunk.d.ts +0 -2
- package/dist/utils/transfer-asset-chunk.d.ts.map +1 -1
- package/dist/utils/transfer-websocket-json.d.ts.map +1 -1
- package/dist/utils/writable-async-write.d.ts +0 -1
- package/dist/utils/writable-async-write.d.ts.map +1 -1
- package/package.json +13 -9
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
/// <reference types="stream-chain" />
|
|
2
|
-
/// <reference types="node" />
|
|
3
1
|
import { Writable } from 'stream';
|
|
4
2
|
import type { IDestinationProvider, IDestinationProviderTransferResults, IMetadata, ProviderType } from '../../../types';
|
|
5
3
|
import type { IDiagnosticReporter } from '../../../utils/diagnostic';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/directory/providers/destination/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/directory/providers/destination/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAY,MAAM,QAAQ,CAAC;AAK5C,OAAO,KAAK,EAEV,oBAAoB,EACpB,mCAAmC,EACnC,SAAS,EACT,YAAY,EACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAIrE,MAAM,WAAW,yCAAyC;IACxD,SAAS,EAAE;QACT,+EAA+E;QAC/E,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,IAAI,EAAE;QACJ,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,iDACf,SAAQ,mCAAmC;IAC3C,IAAI,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,eAAO,MAAM,uCAAuC,GAClD,SAAS,yCAAyC,sCAGnD,CAAC;AAEF,cAAM,iCAAkC,YAAW,oBAAoB;;IACrE,IAAI,SAAkC;IAEtC,IAAI,EAAE,YAAY,CAAiB;IAEnC,OAAO,EAAE,yCAAyC,CAAC;IAEnD,OAAO,EAAE,iDAAiD,CAAM;gBAQpD,OAAO,EAAE,yCAAyC;IAgB9D,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,GAAG,oBAAoB;IAKtE,SAAS,CAAC,WAAW,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAO1D,KAAK;IAIL,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAK/B,WAAW;IAcX,wBAAwB;IAWxB,yBAAyB,IAAI,QAAQ;IAWrC,sBAAsB,IAAI,QAAQ;IAWlC,8BAA8B,IAAI,QAAQ;IAW1C,uBAAuB,IAAI,QAAQ;CAwCpC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/directory/providers/destination/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/directory/providers/destination/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2CAA2C,CAAC;AAElF,OAAO,EAAE,qBAAqB,EAAE,CAAC;AAEjC;;GAEG;AACH,eAAO,MAAM,0BAA0B,GACrC,SAAS,MAAM,EACf,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,EACvC,gBAAgB,aAwDjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/directory/providers/source/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/directory/providers/source/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AASvC,OAAO,KAAK,EAAU,SAAS,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACvF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AASrE,MAAM,WAAW,oCAAoC;IACnD,SAAS,EAAE;QACT,uFAAuF;QACvF,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED,eAAO,MAAM,kCAAkC,GAC7C,SAAS,oCAAoC,iCAG9C,CAAC;AAOF,cAAM,4BAA6B,YAAW,eAAe;;IAC3D,IAAI,EAAE,YAAY,CAAY;IAE9B,IAAI,SAA6B;IAEjC,OAAO,EAAE,oCAAoC,CAAC;gBAQlC,OAAO,EAAE,oCAAoC;IA2BnD,SAAS,CAAC,WAAW,EAAE,mBAAmB;IAkC1C,WAAW;IAQX,UAAU;IAchB,wBAAwB,IAAI,QAAQ;IAKpC,uBAAuB,IAAI,QAAQ;IAKnC,qBAAqB,IAAI,QAAQ;IAKjC,6BAA6B,IAAI,QAAQ;IAKzC,sBAAsB,IAAI,QAAQ;CA8GnC"}
|
package/dist/engine/index.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
1
|
import { PassThrough } from 'stream';
|
|
3
2
|
import type { IDestinationProvider, ISourceProvider, ITransferEngine, ITransferEngineOptions, TransferProgress, ITransferResults, TransferStage, TransferFilters, TransferFilterPreset, SchemaDiffHandler, SchemaDiffHandlerContext, ErrorHandler, ErrorHandlerContext, ErrorCode } from '../types';
|
|
4
3
|
import { IDiagnosticReporter, ErrorDiagnosticSeverity } from '../utils/diagnostic';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/engine/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { IDestinationProvider, ISourceProvider, ProviderType } from '../../types';
|
|
2
|
-
declare const validateProvider: <T extends ProviderType>(type: ProviderType, provider?: ([T] extends [
|
|
2
|
+
declare const validateProvider: <T extends ProviderType>(type: ProviderType, provider?: ([T] extends ["source"] ? ISourceProvider : IDestinationProvider) | null) => undefined;
|
|
3
3
|
export { validateProvider };
|
|
4
4
|
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/engine/validation/provider.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAOvF,QAAA,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/engine/validation/provider.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAOvF,QAAA,MAAM,gBAAgB,GAAI,CAAC,SAAS,YAAY,EAC9C,MAAM,YAAY,EAClB,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,eAAe,GAAG,oBAAoB,CAAC,GAAG,IAAI,cAapF,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/engine/validation/schemas/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAqChD,QAAA,MAAM,UAAU;iBAED,IAAI,EAAE;kBAOL,IAAI,EAAE;CAGrB,CAAC;AAEF,QAAA,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/engine/validation/schemas/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAqChD,QAAA,MAAM,UAAU;iBAED,IAAI,EAAE;kBAOL,IAAI,EAAE;CAGrB,CAAC;AAEF,QAAA,MAAM,cAAc,GAAI,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,UAAU,MAAM,OAAO,UAAU,WAG1E,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
/// <reference types="stream-chain" />
|
|
3
|
-
/// <reference types="node" />
|
|
4
1
|
import zlib from 'zlib';
|
|
5
2
|
import { Writable } from 'stream';
|
|
6
3
|
import type { IDestinationProvider, IDestinationProviderTransferResults, IMetadata, ProviderType } from '../../../types';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/file/providers/destination/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/file/providers/destination/index.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAY,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAO5C,OAAO,KAAK,EAEV,oBAAoB,EACpB,mCAAmC,EACnC,SAAS,EACT,YAAY,EAEb,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAIrE,MAAM,WAAW,oCAAoC;IACnD,UAAU,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;IAEF,WAAW,EAAE;QACX,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IAEF,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,4CACf,SAAQ,mCAAmC;IAC3C,IAAI,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,eAAO,MAAM,kCAAkC,GAC7C,SAAS,oCAAoC,iCAG9C,CAAC;AAEF,cAAM,4BAA6B,YAAW,oBAAoB;;IAChE,IAAI,SAA6B;IAEjC,IAAI,EAAE,YAAY,CAAiB;IAEnC,OAAO,EAAE,oCAAoC,CAAC;IAE9C,OAAO,EAAE,4CAA4C,CAAM;gBAQ/C,OAAO,EAAE,oCAAoC;IA+BzD,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,GAAG,oBAAoB;IAM5E,UAAU,IAAI,IAAI,CAAC,IAAI;IAKvB,SAAS,CAAC,WAAW,EAAE,mBAAmB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAoC3D,KAAK;IAiBL,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAM/B,WAAW;IA4BX,wBAAwB;IAgBxB,yBAAyB,IAAI,QAAQ;IAgBrC,sBAAsB,IAAI,QAAQ;IAgBlC,8BAA8B,IAAI,QAAQ;IAgB1C,uBAAuB,IAAI,QAAQ;CA8CpC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/file/providers/destination/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/file/providers/destination/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,GAAG,MAAM,YAAY,CAAC;AAE7B;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAC/B,MAAM,MAAM,MACZ,kBAAa,KAAG,MAQhB,CAAC;AAEJ,eAAO,MAAM,oBAAoB,GAC/B,SAAS,GAAG,CAAC,IAAI,EACjB,aAAa,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,EACvC,gBAAgB,aAsDjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/file/providers/source/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/file/providers/source/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAYvC,OAAO,KAAK,EAAU,SAAS,EAAE,eAAe,EAAE,YAAY,EAAS,MAAM,gBAAgB,CAAC;AAC9F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAcrE;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IAEF,UAAU,EAAE;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;IAEF,WAAW,EAAE;QACX,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;CACH;AAED,eAAO,MAAM,6BAA6B,GAAI,SAAS,+BAA+B,4BAErF,CAAC;AAEF,cAAM,uBAAwB,YAAW,eAAe;;IACtD,IAAI,EAAE,YAAY,CAAY;IAE9B,IAAI,SAAwB;IAE5B,OAAO,EAAE,+BAA+B,CAAC;gBAM7B,OAAO,EAAE,+BAA+B;IA4CpD;;OAEG;IACG,SAAS,CAAC,WAAW,EAAE,mBAAmB;IAgC1C,WAAW;IASX,UAAU;IAiBhB,wBAAwB,IAAI,QAAQ;IAKpC,uBAAuB,IAAI,QAAQ;IAKnC,qBAAqB,IAAI,QAAQ;IAKjC,6BAA6B,IAAI,QAAQ;IAMzC,sBAAsB,IAAI,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;CAoMvD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/file/providers/source/utils.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;KAUK;AAEL;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/file/providers/source/utils.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;KAUK;AAEL;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,GAAI,cAAc,MAAM,EAAE,UAAU,MAAM,YAGzE,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,GAAI,OAAO,MAAM,EAAE,OAAO,MAAM,YAM5D,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,GAAI,UAAU,MAAM,WAOlD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assets-destination-writable.d.ts","sourceRoot":"","sources":["../../../../src/strapi/providers/local-destination/assets-destination-writable.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"assets-destination-writable.d.ts","sourceRoot":"","sources":["../../../../src/strapi/providers/local-destination/assets-destination-writable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAY,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAG1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,WAAW,sCAAsC;IACrD,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,mBAAmB,EAAE,CAAC,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,GAAG,SAAS,CAAC;IACtE,2BAA2B,EAAE,OAAO,CAAC;IACrC,kBAAkB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,sCAAsC,GAC9C,QAAQ,CAsHV"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/strapi/providers/local-destination/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/strapi/providers/local-destination/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAY,MAAM,QAAQ,CAAC;AAI5C,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACjG,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAGrE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AASvC,eAAO,MAAM,yBAAyB,UAAc,CAAC;AACrD,eAAO,MAAM,yBAAyB,YAAY,CAAC;AAEnD,MAAM,WAAW,sCAAsC;IACrD,SAAS,IAAI,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAEhD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;IAClC,QAAQ,EAAE,SAAS,CAAC;IACpB,sFAAsF;IACtF,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAED,cAAM,8BAA+B,YAAW,oBAAoB;;IAClE,IAAI,SAA+B;IAEnC,IAAI,EAAE,YAAY,CAAiB;IAEnC,OAAO,EAAE,sCAAsC,CAAC;IAEhD,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;IAErB,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1B,0BAA0B,EAAE,MAAM,CAAC;IAEnC,SAAS,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;gBASxC,OAAO,EAAE,sCAAsC;IAMrD,SAAS,CAAC,WAAW,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAsC3D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAmEtB,QAAQ;IAMR,cAAc;IA2BpB,WAAW,IAAI,SAAS;IAcxB,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;IAY3C,yBAAyB,IAAI,QAAQ;IA2F/B,uBAAuB,IAAI,OAAO,CAAC,QAAQ,CAAC;IAoB5C,8BAA8B,IAAI,OAAO,CAAC,QAAQ,CAAC;IAgBnD,sBAAsB,IAAI,OAAO,CAAC,QAAQ,CAAC;CAmBlD;AAED,eAAO,MAAM,oCAAoC,GAC/C,SAAS,sCAAsC,mCAGhD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../../../../../src/strapi/providers/local-destination/strategies/restore/configuration.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../../../../../src/strapi/providers/local-destination/strategies/restore/configuration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAGlC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAyBnE,eAAO,MAAM,cAAc,GAAU,QAAQ,IAAI,CAAC,MAAM,EAAE,QAAQ,cAAc,iBAQ/E,CAAC;AAEF,eAAO,MAAM,8BAA8B,GACzC,QAAQ,IAAI,CAAC,MAAM,EACnB,cAAc,WAAW,sBAyB1B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../../../../../src/strapi/providers/local-destination/strategies/restore/entities.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../../../../../src/strapi/providers/local-destination/strategies/restore/entities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAG/C,OAAO,KAAK,EAAW,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIjE,UAAU,6BAA6B;IACrC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IACpB,kBAAkB,CAAC,UAAU,SAAS,GAAG,CAAC,MAAM,EAC9C,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,GACZ,IAAI,CAAC;IACR,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,eAAO,MAAM,yBAAyB,GAAI,SAAS,6BAA6B,aAgD/E,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/strapi/providers/local-destination/strategies/restore/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAO,MAAM,EAAE,MAAM,eAAe,CAAC;AAKvD,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE;QACd,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,iBAAiB,KAAK,OAAO,CAAC,EAAE,CAAC;QACjE,MAAM,CAAC,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;SAAE,CAAC;KACrC,CAAC;CACH;AAED,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CACjD;AAED,eAAO,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/strapi/providers/local-destination/strategies/restore/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAO,MAAM,EAAE,MAAM,eAAe,CAAC;AAKvD,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE;QACd,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;QACnB,OAAO,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,MAAM,CAAC,iBAAiB,KAAK,OAAO,CAAC,EAAE,CAAC;QACjE,MAAM,CAAC,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;SAAE,CAAC;KACrC,CAAC;CACH;AAED,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;CACjD;AAED,eAAO,MAAM,aAAa,GAAU,QAAQ,IAAI,CAAC,MAAM,EAAE,SAAS,eAAe;;;;EAShF,CAAC;AAsIF,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"links.d.ts","sourceRoot":"","sources":["../../../../../../src/strapi/providers/local-destination/strategies/restore/links.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"links.d.ts","sourceRoot":"","sources":["../../../../../../src/strapi/providers/local-destination/strategies/restore/links.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAS,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAwB1D,eAAO,MAAM,sBAAsB,GACjC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,EACtD,QAAQ,IAAI,CAAC,MAAM,EACnB,cAAc,WAAW,EACzB,YAAY,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,aA6DtC,CAAC"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
var stream = require('stream');
|
|
4
4
|
var providers = require('../../../../../errors/providers.js');
|
|
5
5
|
var link = require('../../../../queries/link.js');
|
|
6
|
+
var resolveLinkRef = require('./resolve-link-ref.js');
|
|
6
7
|
|
|
7
8
|
const isErrorWithCode = (error)=>{
|
|
8
9
|
return error && typeof error.code === 'string';
|
|
@@ -35,8 +36,8 @@ const createLinksWriteStream = (mapID, strapi, transaction, onWarning)=>{
|
|
|
35
36
|
const query = link.createLinkQuery(strapi, trx);
|
|
36
37
|
const originalLeftRef = left.ref;
|
|
37
38
|
const originalRightRef = right.ref;
|
|
38
|
-
const mappedLeftRef =
|
|
39
|
-
const mappedRightRef =
|
|
39
|
+
const mappedLeftRef = resolveLinkRef.resolveLinkRef(strapi, link$1, 'left', mapID);
|
|
40
|
+
const mappedRightRef = resolveLinkRef.resolveLinkRef(strapi, link$1, 'right', mapID);
|
|
40
41
|
// A missing mapping means the referenced row was never transferred
|
|
41
42
|
// during the entities stage (e.g. an orphaned component or a dangling
|
|
42
43
|
// reference in the source database). Falling back to the original ID
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"links.js","sources":["../../../../../../src/strapi/providers/local-destination/strategies/restore/links.ts"],"sourcesContent":["import { Writable } from 'stream';\nimport type { Core } from '@strapi/types';\nimport { ProviderTransferError } from '../../../../../errors/providers';\nimport { ILink, Transaction } from '../../../../../types';\nimport { createLinkQuery } from '../../../../queries/link';\n\ninterface ErrorWithCode extends Error {\n code: string;\n}\n\nconst isErrorWithCode = (error: any): error is ErrorWithCode => {\n return error && typeof error.code === 'string';\n};\n\nconst isForeignKeyConstraintError = (e: Error) => {\n const MYSQL_FK_ERROR_CODES = ['1452', '1557', '1216', '1217', '1451'];\n const POSTGRES_FK_ERROR_CODE = '23503';\n const SQLITE_FK_ERROR_CODE = 'SQLITE_CONSTRAINT_FOREIGNKEY';\n\n if (isErrorWithCode(e) && e.code) {\n return [SQLITE_FK_ERROR_CODE, POSTGRES_FK_ERROR_CODE, ...MYSQL_FK_ERROR_CODES].includes(e.code);\n }\n\n return e.message.toLowerCase().includes('foreign key constraint');\n};\n\nexport const createLinksWriteStream = (\n mapID: (uid: string, id: number) => number | undefined,\n strapi: Core.Strapi,\n transaction?: Transaction,\n onWarning?: (message: string) => void\n) => {\n return new Writable({\n objectMode: true,\n async write(link: ILink, _encoding, callback) {\n await transaction?.attach(async (trx) => {\n const { left, right } = link;\n const query = createLinkQuery(strapi, trx);\n\n const originalLeftRef = left.ref;\n const originalRightRef = right.ref;\n\n const mappedLeftRef =
|
|
1
|
+
{"version":3,"file":"links.js","sources":["../../../../../../src/strapi/providers/local-destination/strategies/restore/links.ts"],"sourcesContent":["import { Writable } from 'stream';\nimport type { Core } from '@strapi/types';\nimport { ProviderTransferError } from '../../../../../errors/providers';\nimport { ILink, Transaction } from '../../../../../types';\nimport { createLinkQuery } from '../../../../queries/link';\nimport { resolveLinkRef } from './resolve-link-ref';\n\ninterface ErrorWithCode extends Error {\n code: string;\n}\n\nconst isErrorWithCode = (error: any): error is ErrorWithCode => {\n return error && typeof error.code === 'string';\n};\n\nconst isForeignKeyConstraintError = (e: Error) => {\n const MYSQL_FK_ERROR_CODES = ['1452', '1557', '1216', '1217', '1451'];\n const POSTGRES_FK_ERROR_CODE = '23503';\n const SQLITE_FK_ERROR_CODE = 'SQLITE_CONSTRAINT_FOREIGNKEY';\n\n if (isErrorWithCode(e) && e.code) {\n return [SQLITE_FK_ERROR_CODE, POSTGRES_FK_ERROR_CODE, ...MYSQL_FK_ERROR_CODES].includes(e.code);\n }\n\n return e.message.toLowerCase().includes('foreign key constraint');\n};\n\nexport const createLinksWriteStream = (\n mapID: (uid: string, id: number) => number | undefined,\n strapi: Core.Strapi,\n transaction?: Transaction,\n onWarning?: (message: string) => void\n) => {\n return new Writable({\n objectMode: true,\n async write(link: ILink, _encoding, callback) {\n await transaction?.attach(async (trx) => {\n const { left, right } = link;\n const query = createLinkQuery(strapi, trx);\n\n const originalLeftRef = left.ref;\n const originalRightRef = right.ref;\n\n const mappedLeftRef = resolveLinkRef(strapi, link, 'left', mapID);\n const mappedRightRef = resolveLinkRef(strapi, link, 'right', mapID);\n\n // A missing mapping means the referenced row was never transferred\n // during the entities stage (e.g. an orphaned component or a dangling\n // reference in the source database). Falling back to the original ID\n // would either violate a foreign key constraint — which aborts the\n // whole transaction on PostgreSQL — or silently attach the link to an\n // unrelated row, so the link is skipped instead.\n if (mappedLeftRef === undefined || mappedRightRef === undefined) {\n const missingRefs = [\n ...(mappedLeftRef === undefined ? [`${left.type}:${originalLeftRef}`] : []),\n ...(mappedRightRef === undefined ? [`${right.type}:${originalRightRef}`] : []),\n ].join(' and ');\n\n onWarning?.(\n `Skipping link ${left.type}:${originalLeftRef} -> ${right.type}:${originalRightRef} because ${missingRefs} was not transferred during the entities stage.`\n );\n\n return callback(null);\n }\n\n left.ref = mappedLeftRef;\n right.ref = mappedRightRef;\n\n try {\n await query().insert(link);\n } catch (e) {\n if (e instanceof Error) {\n if (isForeignKeyConstraintError(e)) {\n onWarning?.(\n `Skipping link ${left.type}:${originalLeftRef} -> ${right.type}:${originalRightRef} due to a foreign key constraint.`\n );\n return callback(null);\n }\n return callback(e);\n }\n\n return callback(\n new ProviderTransferError(\n `An error happened while trying to import a ${left.type} link.`\n )\n );\n }\n\n callback(null);\n });\n },\n });\n};\n"],"names":["isErrorWithCode","error","code","isForeignKeyConstraintError","e","MYSQL_FK_ERROR_CODES","POSTGRES_FK_ERROR_CODE","SQLITE_FK_ERROR_CODE","includes","message","toLowerCase","createLinksWriteStream","mapID","strapi","transaction","onWarning","Writable","objectMode","write","link","_encoding","callback","attach","trx","left","right","query","createLinkQuery","originalLeftRef","ref","originalRightRef","mappedLeftRef","resolveLinkRef","mappedRightRef","undefined","missingRefs","type","join","insert","Error","ProviderTransferError"],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Writable } from 'stream';
|
|
2
2
|
import { ProviderTransferError } from '../../../../../errors/providers.mjs';
|
|
3
3
|
import { createLinkQuery } from '../../../../queries/link.mjs';
|
|
4
|
+
import { resolveLinkRef } from './resolve-link-ref.mjs';
|
|
4
5
|
|
|
5
6
|
const isErrorWithCode = (error)=>{
|
|
6
7
|
return error && typeof error.code === 'string';
|
|
@@ -33,8 +34,8 @@ const createLinksWriteStream = (mapID, strapi, transaction, onWarning)=>{
|
|
|
33
34
|
const query = createLinkQuery(strapi, trx);
|
|
34
35
|
const originalLeftRef = left.ref;
|
|
35
36
|
const originalRightRef = right.ref;
|
|
36
|
-
const mappedLeftRef =
|
|
37
|
-
const mappedRightRef =
|
|
37
|
+
const mappedLeftRef = resolveLinkRef(strapi, link, 'left', mapID);
|
|
38
|
+
const mappedRightRef = resolveLinkRef(strapi, link, 'right', mapID);
|
|
38
39
|
// A missing mapping means the referenced row was never transferred
|
|
39
40
|
// during the entities stage (e.g. an orphaned component or a dangling
|
|
40
41
|
// reference in the source database). Falling back to the original ID
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"links.mjs","sources":["../../../../../../src/strapi/providers/local-destination/strategies/restore/links.ts"],"sourcesContent":["import { Writable } from 'stream';\nimport type { Core } from '@strapi/types';\nimport { ProviderTransferError } from '../../../../../errors/providers';\nimport { ILink, Transaction } from '../../../../../types';\nimport { createLinkQuery } from '../../../../queries/link';\n\ninterface ErrorWithCode extends Error {\n code: string;\n}\n\nconst isErrorWithCode = (error: any): error is ErrorWithCode => {\n return error && typeof error.code === 'string';\n};\n\nconst isForeignKeyConstraintError = (e: Error) => {\n const MYSQL_FK_ERROR_CODES = ['1452', '1557', '1216', '1217', '1451'];\n const POSTGRES_FK_ERROR_CODE = '23503';\n const SQLITE_FK_ERROR_CODE = 'SQLITE_CONSTRAINT_FOREIGNKEY';\n\n if (isErrorWithCode(e) && e.code) {\n return [SQLITE_FK_ERROR_CODE, POSTGRES_FK_ERROR_CODE, ...MYSQL_FK_ERROR_CODES].includes(e.code);\n }\n\n return e.message.toLowerCase().includes('foreign key constraint');\n};\n\nexport const createLinksWriteStream = (\n mapID: (uid: string, id: number) => number | undefined,\n strapi: Core.Strapi,\n transaction?: Transaction,\n onWarning?: (message: string) => void\n) => {\n return new Writable({\n objectMode: true,\n async write(link: ILink, _encoding, callback) {\n await transaction?.attach(async (trx) => {\n const { left, right } = link;\n const query = createLinkQuery(strapi, trx);\n\n const originalLeftRef = left.ref;\n const originalRightRef = right.ref;\n\n const mappedLeftRef =
|
|
1
|
+
{"version":3,"file":"links.mjs","sources":["../../../../../../src/strapi/providers/local-destination/strategies/restore/links.ts"],"sourcesContent":["import { Writable } from 'stream';\nimport type { Core } from '@strapi/types';\nimport { ProviderTransferError } from '../../../../../errors/providers';\nimport { ILink, Transaction } from '../../../../../types';\nimport { createLinkQuery } from '../../../../queries/link';\nimport { resolveLinkRef } from './resolve-link-ref';\n\ninterface ErrorWithCode extends Error {\n code: string;\n}\n\nconst isErrorWithCode = (error: any): error is ErrorWithCode => {\n return error && typeof error.code === 'string';\n};\n\nconst isForeignKeyConstraintError = (e: Error) => {\n const MYSQL_FK_ERROR_CODES = ['1452', '1557', '1216', '1217', '1451'];\n const POSTGRES_FK_ERROR_CODE = '23503';\n const SQLITE_FK_ERROR_CODE = 'SQLITE_CONSTRAINT_FOREIGNKEY';\n\n if (isErrorWithCode(e) && e.code) {\n return [SQLITE_FK_ERROR_CODE, POSTGRES_FK_ERROR_CODE, ...MYSQL_FK_ERROR_CODES].includes(e.code);\n }\n\n return e.message.toLowerCase().includes('foreign key constraint');\n};\n\nexport const createLinksWriteStream = (\n mapID: (uid: string, id: number) => number | undefined,\n strapi: Core.Strapi,\n transaction?: Transaction,\n onWarning?: (message: string) => void\n) => {\n return new Writable({\n objectMode: true,\n async write(link: ILink, _encoding, callback) {\n await transaction?.attach(async (trx) => {\n const { left, right } = link;\n const query = createLinkQuery(strapi, trx);\n\n const originalLeftRef = left.ref;\n const originalRightRef = right.ref;\n\n const mappedLeftRef = resolveLinkRef(strapi, link, 'left', mapID);\n const mappedRightRef = resolveLinkRef(strapi, link, 'right', mapID);\n\n // A missing mapping means the referenced row was never transferred\n // during the entities stage (e.g. an orphaned component or a dangling\n // reference in the source database). Falling back to the original ID\n // would either violate a foreign key constraint — which aborts the\n // whole transaction on PostgreSQL — or silently attach the link to an\n // unrelated row, so the link is skipped instead.\n if (mappedLeftRef === undefined || mappedRightRef === undefined) {\n const missingRefs = [\n ...(mappedLeftRef === undefined ? [`${left.type}:${originalLeftRef}`] : []),\n ...(mappedRightRef === undefined ? [`${right.type}:${originalRightRef}`] : []),\n ].join(' and ');\n\n onWarning?.(\n `Skipping link ${left.type}:${originalLeftRef} -> ${right.type}:${originalRightRef} because ${missingRefs} was not transferred during the entities stage.`\n );\n\n return callback(null);\n }\n\n left.ref = mappedLeftRef;\n right.ref = mappedRightRef;\n\n try {\n await query().insert(link);\n } catch (e) {\n if (e instanceof Error) {\n if (isForeignKeyConstraintError(e)) {\n onWarning?.(\n `Skipping link ${left.type}:${originalLeftRef} -> ${right.type}:${originalRightRef} due to a foreign key constraint.`\n );\n return callback(null);\n }\n return callback(e);\n }\n\n return callback(\n new ProviderTransferError(\n `An error happened while trying to import a ${left.type} link.`\n )\n );\n }\n\n callback(null);\n });\n },\n });\n};\n"],"names":["isErrorWithCode","error","code","isForeignKeyConstraintError","e","MYSQL_FK_ERROR_CODES","POSTGRES_FK_ERROR_CODE","SQLITE_FK_ERROR_CODE","includes","message","toLowerCase","createLinksWriteStream","mapID","strapi","transaction","onWarning","Writable","objectMode","write","link","_encoding","callback","attach","trx","left","right","query","createLinkQuery","originalLeftRef","ref","originalRightRef","mappedLeftRef","resolveLinkRef","mappedRightRef","undefined","missingRefs","type","join","insert","Error","ProviderTransferError"],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Core } from '@strapi/types';
|
|
2
|
+
import type { ILink } from '../../../../../types';
|
|
3
|
+
/**
|
|
4
|
+
* joinColumn relations (e.g. i18n `localizations`) store `document_id` on the
|
|
5
|
+
* inverse side. Export emits that value as a string ref; restore must not run it
|
|
6
|
+
* through the numeric id mapper.
|
|
7
|
+
*/
|
|
8
|
+
export declare const isDocumentIdJoinColumnTarget: (strapi: Core.Strapi, link: ILink, side: "left" | "right") => boolean;
|
|
9
|
+
export declare const resolveLinkRef: (strapi: Core.Strapi, link: ILink, side: "left" | "right", mapID: (uid: string, id: number) => number | undefined) => number | string | undefined;
|
|
10
|
+
//# sourceMappingURL=resolve-link-ref.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-link-ref.d.ts","sourceRoot":"","sources":["../../../../../../src/strapi/providers/local-destination/strategies/restore/resolve-link-ref.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAElD;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,GACvC,QAAQ,IAAI,CAAC,MAAM,EACnB,MAAM,KAAK,EACX,MAAM,MAAM,GAAG,OAAO,KACrB,OAiBF,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,QAAQ,IAAI,CAAC,MAAM,EACnB,MAAM,KAAK,EACX,MAAM,MAAM,GAAG,OAAO,EACtB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,KACrD,MAAM,GAAG,MAAM,GAAG,SAcpB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* joinColumn relations (e.g. i18n `localizations`) store `document_id` on the
|
|
5
|
+
* inverse side. Export emits that value as a string ref; restore must not run it
|
|
6
|
+
* through the numeric id mapper.
|
|
7
|
+
*/ const isDocumentIdJoinColumnTarget = (strapi, link, side)=>{
|
|
8
|
+
if (side !== 'right') {
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
const metadata = strapi.db?.metadata?.get(link.left.type);
|
|
12
|
+
const attribute = metadata?.attributes?.[link.left.field];
|
|
13
|
+
if (!attribute || attribute.type !== 'relation') {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
if (!('joinColumn' in attribute) || !attribute.joinColumn) {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
return attribute.joinColumn.referencedColumn === 'document_id';
|
|
20
|
+
};
|
|
21
|
+
const resolveLinkRef = (strapi, link, side, mapID)=>{
|
|
22
|
+
const { type, ref } = side === 'left' ? link.left : link.right;
|
|
23
|
+
if (isDocumentIdJoinColumnTarget(strapi, link, side)) {
|
|
24
|
+
return ref;
|
|
25
|
+
}
|
|
26
|
+
const numericRef = typeof ref === 'number' ? ref : Number(ref);
|
|
27
|
+
if (!Number.isFinite(numericRef)) {
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
return mapID(type, numericRef);
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
exports.isDocumentIdJoinColumnTarget = isDocumentIdJoinColumnTarget;
|
|
34
|
+
exports.resolveLinkRef = resolveLinkRef;
|
|
35
|
+
//# sourceMappingURL=resolve-link-ref.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-link-ref.js","sources":["../../../../../../src/strapi/providers/local-destination/strategies/restore/resolve-link-ref.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport type { ILink } from '../../../../../types';\n\n/**\n * joinColumn relations (e.g. i18n `localizations`) store `document_id` on the\n * inverse side. Export emits that value as a string ref; restore must not run it\n * through the numeric id mapper.\n */\nexport const isDocumentIdJoinColumnTarget = (\n strapi: Core.Strapi,\n link: ILink,\n side: 'left' | 'right'\n): boolean => {\n if (side !== 'right') {\n return false;\n }\n\n const metadata = strapi.db?.metadata?.get(link.left.type);\n const attribute = metadata?.attributes?.[link.left.field];\n\n if (!attribute || attribute.type !== 'relation') {\n return false;\n }\n\n if (!('joinColumn' in attribute) || !attribute.joinColumn) {\n return false;\n }\n\n return attribute.joinColumn.referencedColumn === 'document_id';\n};\n\nexport const resolveLinkRef = (\n strapi: Core.Strapi,\n link: ILink,\n side: 'left' | 'right',\n mapID: (uid: string, id: number) => number | undefined\n): number | string | undefined => {\n const { type, ref } = side === 'left' ? link.left : link.right;\n\n if (isDocumentIdJoinColumnTarget(strapi, link, side)) {\n return ref;\n }\n\n const numericRef = typeof ref === 'number' ? ref : Number(ref);\n\n if (!Number.isFinite(numericRef)) {\n return undefined;\n }\n\n return mapID(type, numericRef);\n};\n"],"names":["isDocumentIdJoinColumnTarget","strapi","link","side","metadata","db","get","left","type","attribute","attributes","field","joinColumn","referencedColumn","resolveLinkRef","mapID","ref","right","numericRef","Number","isFinite","undefined"],"mappings":";;AAIA;;;;AAIC,IACM,MAAMA,4BAAAA,GAA+B,CAC1CC,QACAC,IAAAA,EACAC,IAAAA,GAAAA;AAEA,IAAA,IAAIA,SAAS,OAAA,EAAS;QACpB,OAAO,KAAA;AACT,IAAA;IAEA,MAAMC,QAAAA,GAAWH,OAAOI,EAAE,EAAED,UAAUE,GAAAA,CAAIJ,IAAAA,CAAKK,IAAI,CAACC,IAAI,CAAA;IACxD,MAAMC,SAAAA,GAAYL,UAAUM,UAAAA,GAAaR,KAAKK,IAAI,CAACI,KAAK,CAAC;AAEzD,IAAA,IAAI,CAACF,SAAAA,IAAaA,SAAAA,CAAUD,IAAI,KAAK,UAAA,EAAY;QAC/C,OAAO,KAAA;AACT,IAAA;IAEA,IAAI,EAAE,YAAA,IAAgBC,SAAQ,KAAM,CAACA,SAAAA,CAAUG,UAAU,EAAE;QACzD,OAAO,KAAA;AACT,IAAA;AAEA,IAAA,OAAOH,SAAAA,CAAUG,UAAU,CAACC,gBAAgB,KAAK,aAAA;AACnD;AAEO,MAAMC,cAAAA,GAAiB,CAC5Bb,MAAAA,EACAC,MACAC,IAAAA,EACAY,KAAAA,GAAAA;AAEA,IAAA,MAAM,EAAEP,IAAI,EAAEQ,GAAG,EAAE,GAAGb,IAAAA,KAAS,MAAA,GAASD,IAAAA,CAAKK,IAAI,GAAGL,IAAAA,CAAKe,KAAK;IAE9D,IAAIjB,4BAAAA,CAA6BC,MAAAA,EAAQC,IAAAA,EAAMC,IAAAA,CAAAA,EAAO;QACpD,OAAOa,GAAAA;AACT,IAAA;AAEA,IAAA,MAAME,UAAAA,GAAa,OAAOF,GAAAA,KAAQ,QAAA,GAAWA,MAAMG,MAAAA,CAAOH,GAAAA,CAAAA;AAE1D,IAAA,IAAI,CAACG,MAAAA,CAAOC,QAAQ,CAACF,UAAAA,CAAAA,EAAa;QAChC,OAAOG,SAAAA;AACT,IAAA;AAEA,IAAA,OAAON,MAAMP,IAAAA,EAAMU,UAAAA,CAAAA;AACrB;;;;;"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* joinColumn relations (e.g. i18n `localizations`) store `document_id` on the
|
|
3
|
+
* inverse side. Export emits that value as a string ref; restore must not run it
|
|
4
|
+
* through the numeric id mapper.
|
|
5
|
+
*/ const isDocumentIdJoinColumnTarget = (strapi, link, side)=>{
|
|
6
|
+
if (side !== 'right') {
|
|
7
|
+
return false;
|
|
8
|
+
}
|
|
9
|
+
const metadata = strapi.db?.metadata?.get(link.left.type);
|
|
10
|
+
const attribute = metadata?.attributes?.[link.left.field];
|
|
11
|
+
if (!attribute || attribute.type !== 'relation') {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
if (!('joinColumn' in attribute) || !attribute.joinColumn) {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
return attribute.joinColumn.referencedColumn === 'document_id';
|
|
18
|
+
};
|
|
19
|
+
const resolveLinkRef = (strapi, link, side, mapID)=>{
|
|
20
|
+
const { type, ref } = side === 'left' ? link.left : link.right;
|
|
21
|
+
if (isDocumentIdJoinColumnTarget(strapi, link, side)) {
|
|
22
|
+
return ref;
|
|
23
|
+
}
|
|
24
|
+
const numericRef = typeof ref === 'number' ? ref : Number(ref);
|
|
25
|
+
if (!Number.isFinite(numericRef)) {
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
return mapID(type, numericRef);
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export { isDocumentIdJoinColumnTarget, resolveLinkRef };
|
|
32
|
+
//# sourceMappingURL=resolve-link-ref.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-link-ref.mjs","sources":["../../../../../../src/strapi/providers/local-destination/strategies/restore/resolve-link-ref.ts"],"sourcesContent":["import type { Core } from '@strapi/types';\n\nimport type { ILink } from '../../../../../types';\n\n/**\n * joinColumn relations (e.g. i18n `localizations`) store `document_id` on the\n * inverse side. Export emits that value as a string ref; restore must not run it\n * through the numeric id mapper.\n */\nexport const isDocumentIdJoinColumnTarget = (\n strapi: Core.Strapi,\n link: ILink,\n side: 'left' | 'right'\n): boolean => {\n if (side !== 'right') {\n return false;\n }\n\n const metadata = strapi.db?.metadata?.get(link.left.type);\n const attribute = metadata?.attributes?.[link.left.field];\n\n if (!attribute || attribute.type !== 'relation') {\n return false;\n }\n\n if (!('joinColumn' in attribute) || !attribute.joinColumn) {\n return false;\n }\n\n return attribute.joinColumn.referencedColumn === 'document_id';\n};\n\nexport const resolveLinkRef = (\n strapi: Core.Strapi,\n link: ILink,\n side: 'left' | 'right',\n mapID: (uid: string, id: number) => number | undefined\n): number | string | undefined => {\n const { type, ref } = side === 'left' ? link.left : link.right;\n\n if (isDocumentIdJoinColumnTarget(strapi, link, side)) {\n return ref;\n }\n\n const numericRef = typeof ref === 'number' ? ref : Number(ref);\n\n if (!Number.isFinite(numericRef)) {\n return undefined;\n }\n\n return mapID(type, numericRef);\n};\n"],"names":["isDocumentIdJoinColumnTarget","strapi","link","side","metadata","db","get","left","type","attribute","attributes","field","joinColumn","referencedColumn","resolveLinkRef","mapID","ref","right","numericRef","Number","isFinite","undefined"],"mappings":"AAIA;;;;AAIC,IACM,MAAMA,4BAAAA,GAA+B,CAC1CC,QACAC,IAAAA,EACAC,IAAAA,GAAAA;AAEA,IAAA,IAAIA,SAAS,OAAA,EAAS;QACpB,OAAO,KAAA;AACT,IAAA;IAEA,MAAMC,QAAAA,GAAWH,OAAOI,EAAE,EAAED,UAAUE,GAAAA,CAAIJ,IAAAA,CAAKK,IAAI,CAACC,IAAI,CAAA;IACxD,MAAMC,SAAAA,GAAYL,UAAUM,UAAAA,GAAaR,KAAKK,IAAI,CAACI,KAAK,CAAC;AAEzD,IAAA,IAAI,CAACF,SAAAA,IAAaA,SAAAA,CAAUD,IAAI,KAAK,UAAA,EAAY;QAC/C,OAAO,KAAA;AACT,IAAA;IAEA,IAAI,EAAE,YAAA,IAAgBC,SAAQ,KAAM,CAACA,SAAAA,CAAUG,UAAU,EAAE;QACzD,OAAO,KAAA;AACT,IAAA;AAEA,IAAA,OAAOH,SAAAA,CAAUG,UAAU,CAACC,gBAAgB,KAAK,aAAA;AACnD;AAEO,MAAMC,cAAAA,GAAiB,CAC5Bb,MAAAA,EACAC,MACAC,IAAAA,EACAY,KAAAA,GAAAA;AAEA,IAAA,MAAM,EAAEP,IAAI,EAAEQ,GAAG,EAAE,GAAGb,IAAAA,KAAS,MAAA,GAASD,IAAAA,CAAKK,IAAI,GAAGL,IAAAA,CAAKe,KAAK;IAE9D,IAAIjB,4BAAAA,CAA6BC,MAAAA,EAAQC,IAAAA,EAAMC,IAAAA,CAAAA,EAAO;QACpD,OAAOa,GAAAA;AACT,IAAA;AAEA,IAAA,MAAME,UAAAA,GAAa,OAAOF,GAAAA,KAAQ,QAAA,GAAWA,MAAMG,MAAAA,CAAOH,GAAAA,CAAAA;AAE1D,IAAA,IAAI,CAACG,MAAAA,CAAOC,QAAQ,CAACF,UAAAA,CAAAA,EAAa;QAChC,OAAOG,SAAAA;AACT,IAAA;AAEA,IAAA,OAAON,MAAMP,IAAAA,EAAMU,UAAAA,CAAAA;AACrB;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../../../src/strapi/providers/local-source/assets.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../../../src/strapi/providers/local-source/assets.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAyB,MAAM,QAAQ,CAAC;AAGvD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,KAAK,EAAU,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAqCpD,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,OAAO,UAAQ,GACd,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAwB3B;AAED,wBAAsB,yBAAyB,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,iBAiB/E;AAOD;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,IAAI,CAAC,MAAM,EACnB,UAAS;IAAE,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAAO,KACtD,MAoFF,CAAC"}
|
|
@@ -75,7 +75,7 @@ const missingAssetWarningMessage = (file, filepath, format)=>{
|
|
|
75
75
|
strapi.log.warn(message);
|
|
76
76
|
options.onWarning?.(message);
|
|
77
77
|
};
|
|
78
|
-
const generator = async function*() {
|
|
78
|
+
const generator = async function* generateAssets() {
|
|
79
79
|
const stream = strapi.db.queryBuilder('plugin::upload.file')// Create a query builder instance (default type is 'select')
|
|
80
80
|
// Fetch all columns
|
|
81
81
|
.select('*')// Get a readable stream
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assets.js","sources":["../../../../src/strapi/providers/local-source/assets.ts"],"sourcesContent":["import { join } from 'path';\nimport { Duplex, PassThrough, Readable } from 'stream';\nimport { stat, createReadStream, ReadStream } from 'fs-extra';\nimport * as webStream from 'stream/web';\nimport type { Core } from '@strapi/types';\n\nimport type { IAsset, IFile } from '../../../types';\n\nfunction getFileStream(\n filepath: string,\n strapi: Core.Strapi,\n isLocal = false\n): PassThrough | ReadStream {\n if (isLocal) {\n // Todo: handle errors\n return createReadStream(filepath);\n }\n\n const readableStream = new PassThrough();\n\n // fetch the image from remote url and stream it\n strapi\n .fetch(filepath)\n .then((res: Response) => {\n if (res.status !== 200) {\n readableStream.emit('error', new Error(`Request failed with status code ${res.status}`));\n return;\n }\n\n if (res.body) {\n // pipe the image data\n Readable.fromWeb(res.body as webStream.ReadableStream<Uint8Array>).pipe(readableStream);\n } else {\n readableStream.emit('error', new Error('Empty data found for file'));\n }\n })\n .catch((error: unknown) => {\n readableStream.emit('error', error);\n });\n\n return readableStream;\n}\n\nexport function getFileStatsForTransfer(\n filepath: string,\n strapi: Core.Strapi,\n isLocal = false\n): Promise<{ size: number }> {\n if (isLocal) {\n return stat(filepath);\n }\n return new Promise((resolve, reject) => {\n strapi\n .fetch(filepath)\n .then((res: Response) => {\n if (res.status !== 200) {\n reject(new Error(`Request failed with status code ${res.status}`));\n return;\n }\n\n const contentLength = res.headers.get('content-length');\n const stats = {\n size: contentLength ? parseInt(contentLength, 10) : 0,\n };\n\n resolve(stats);\n })\n .catch((error: unknown) => {\n reject(error);\n });\n });\n}\n\nexport async function signUploadFileForTransfer(strapi: Core.Strapi, file: IFile) {\n const { provider } = strapi.plugins.upload;\n const { provider: providerName } = strapi.config.get('plugin.upload') as { provider: string };\n const isPrivate = await provider.isPrivate();\n if (file?.provider === providerName && isPrivate) {\n const signUrl = async (f: IFile) => {\n const signedUrl = await provider.getSignedUrl(f);\n f.url = signedUrl.url;\n };\n\n await signUrl(file);\n if (file.formats) {\n for (const format of Object.keys(file.formats)) {\n await signUrl(file.formats[format]);\n }\n }\n }\n}\n\nconst missingAssetWarningMessage = (file: IFile, filepath: string, format?: string): string => {\n const formatPart = format ? ` (format: ${format})` : '';\n return `[Data transfer] Media item ${file.id} (hash: ${file.hash}) exists in database but no corresponding file was found to transfer${formatPart}. Path: ${filepath}`;\n};\n\n/**\n * Generate and consume assets streams in order to stream each file individually\n */\nexport const createAssetsStream = (\n strapi: Core.Strapi,\n options: { onWarning?: (message: string) => void } = {}\n): Duplex => {\n const warnMissingAsset = (message: string) => {\n strapi.log.warn(message);\n options.onWarning?.(message);\n };\n\n const generator: () => AsyncGenerator<IAsset, void> = async function* () {\n const stream: Readable = strapi.db\n .queryBuilder('plugin::upload.file')\n // Create a query builder instance (default type is 'select')\n // Fetch all columns\n .select('*')\n // Get a readable stream\n .stream();\n\n for await (const file of stream) {\n const isLocalProvider = file.provider === 'local';\n if (!isLocalProvider) {\n await signUploadFileForTransfer(strapi, file);\n }\n const filepath = isLocalProvider ? join(strapi.dirs.static.public, file.url) : file.url;\n let stats: { size: number };\n try {\n stats = await getFileStatsForTransfer(filepath, strapi, isLocalProvider);\n } catch (err: unknown) {\n const code =\n err && typeof err === 'object' && 'code' in err\n ? (err as NodeJS.ErrnoException).code\n : undefined;\n if (code === 'ENOENT') {\n warnMissingAsset(missingAssetWarningMessage(file, filepath));\n continue;\n }\n throw err;\n }\n const stream = getFileStream(filepath, strapi, isLocalProvider);\n\n yield {\n metadata: file,\n filepath,\n filename: file.hash + file.ext,\n stream,\n stats: { size: stats.size },\n };\n\n if (file.formats) {\n for (const format of Object.keys(file.formats)) {\n const fileFormat = file.formats[format];\n const fileFormatFilepath = isLocalProvider\n ? join(strapi.dirs.static.public, fileFormat.url)\n : fileFormat.url;\n let fileFormatStats: { size: number };\n try {\n fileFormatStats = await getFileStatsForTransfer(\n fileFormatFilepath,\n strapi,\n isLocalProvider\n );\n } catch (err: unknown) {\n const code =\n err && typeof err === 'object' && 'code' in err\n ? (err as NodeJS.ErrnoException).code\n : undefined;\n if (code === 'ENOENT') {\n warnMissingAsset(missingAssetWarningMessage(file, fileFormatFilepath, format));\n continue;\n }\n throw err;\n }\n const fileFormatStream = getFileStream(fileFormatFilepath, strapi, isLocalProvider);\n const metadata = { ...fileFormat, type: format, id: file.id, mainHash: file.hash };\n yield {\n metadata,\n filepath: fileFormatFilepath,\n filename: fileFormat.hash + fileFormat.ext,\n stream: fileFormatStream,\n stats: { size: fileFormatStats.size },\n };\n }\n }\n }\n };\n\n return Duplex.from(generator());\n};\n"],"names":["getFileStream","filepath","strapi","isLocal","createReadStream","readableStream","PassThrough","fetch","then","res","status","emit","Error","body","Readable","fromWeb","pipe","catch","error","getFileStatsForTransfer","stat","Promise","resolve","reject","contentLength","headers","get","stats","size","parseInt","signUploadFileForTransfer","file","provider","plugins","upload","providerName","config","isPrivate","signUrl","f","signedUrl","getSignedUrl","url","formats","format","Object","keys","missingAssetWarningMessage","formatPart","id","hash","createAssetsStream","options","warnMissingAsset","message","log","warn","onWarning","generator","stream","db","queryBuilder","select","isLocalProvider","join","dirs","static","public","err","code","undefined","metadata","filename","ext","fileFormat","fileFormatFilepath","fileFormatStats","fileFormatStream","type","mainHash","Duplex","from"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"assets.js","sources":["../../../../src/strapi/providers/local-source/assets.ts"],"sourcesContent":["import { join } from 'path';\nimport { Duplex, PassThrough, Readable } from 'stream';\nimport { stat, createReadStream, ReadStream } from 'fs-extra';\nimport * as webStream from 'stream/web';\nimport type { Core } from '@strapi/types';\n\nimport type { IAsset, IFile } from '../../../types';\n\nfunction getFileStream(\n filepath: string,\n strapi: Core.Strapi,\n isLocal = false\n): PassThrough | ReadStream {\n if (isLocal) {\n // Todo: handle errors\n return createReadStream(filepath);\n }\n\n const readableStream = new PassThrough();\n\n // fetch the image from remote url and stream it\n strapi\n .fetch(filepath)\n .then((res: Response) => {\n if (res.status !== 200) {\n readableStream.emit('error', new Error(`Request failed with status code ${res.status}`));\n return;\n }\n\n if (res.body) {\n // pipe the image data\n Readable.fromWeb(res.body as webStream.ReadableStream<Uint8Array>).pipe(readableStream);\n } else {\n readableStream.emit('error', new Error('Empty data found for file'));\n }\n })\n .catch((error: unknown) => {\n readableStream.emit('error', error);\n });\n\n return readableStream;\n}\n\nexport function getFileStatsForTransfer(\n filepath: string,\n strapi: Core.Strapi,\n isLocal = false\n): Promise<{ size: number }> {\n if (isLocal) {\n return stat(filepath);\n }\n return new Promise((resolve, reject) => {\n strapi\n .fetch(filepath)\n .then((res: Response) => {\n if (res.status !== 200) {\n reject(new Error(`Request failed with status code ${res.status}`));\n return;\n }\n\n const contentLength = res.headers.get('content-length');\n const stats = {\n size: contentLength ? parseInt(contentLength, 10) : 0,\n };\n\n resolve(stats);\n })\n .catch((error: unknown) => {\n reject(error);\n });\n });\n}\n\nexport async function signUploadFileForTransfer(strapi: Core.Strapi, file: IFile) {\n const { provider } = strapi.plugins.upload;\n const { provider: providerName } = strapi.config.get('plugin.upload') as { provider: string };\n const isPrivate = await provider.isPrivate();\n if (file?.provider === providerName && isPrivate) {\n const signUrl = async (f: IFile) => {\n const signedUrl = await provider.getSignedUrl(f);\n f.url = signedUrl.url;\n };\n\n await signUrl(file);\n if (file.formats) {\n for (const format of Object.keys(file.formats)) {\n await signUrl(file.formats[format]);\n }\n }\n }\n}\n\nconst missingAssetWarningMessage = (file: IFile, filepath: string, format?: string): string => {\n const formatPart = format ? ` (format: ${format})` : '';\n return `[Data transfer] Media item ${file.id} (hash: ${file.hash}) exists in database but no corresponding file was found to transfer${formatPart}. Path: ${filepath}`;\n};\n\n/**\n * Generate and consume assets streams in order to stream each file individually\n */\nexport const createAssetsStream = (\n strapi: Core.Strapi,\n options: { onWarning?: (message: string) => void } = {}\n): Duplex => {\n const warnMissingAsset = (message: string) => {\n strapi.log.warn(message);\n options.onWarning?.(message);\n };\n\n const generator: () => AsyncGenerator<IAsset, void> = async function* generateAssets() {\n const stream: Readable = strapi.db\n .queryBuilder('plugin::upload.file')\n // Create a query builder instance (default type is 'select')\n // Fetch all columns\n .select('*')\n // Get a readable stream\n .stream();\n\n for await (const file of stream) {\n const isLocalProvider = file.provider === 'local';\n if (!isLocalProvider) {\n await signUploadFileForTransfer(strapi, file);\n }\n const filepath = isLocalProvider ? join(strapi.dirs.static.public, file.url) : file.url;\n let stats: { size: number };\n try {\n stats = await getFileStatsForTransfer(filepath, strapi, isLocalProvider);\n } catch (err: unknown) {\n const code =\n err && typeof err === 'object' && 'code' in err\n ? (err as NodeJS.ErrnoException).code\n : undefined;\n if (code === 'ENOENT') {\n warnMissingAsset(missingAssetWarningMessage(file, filepath));\n continue;\n }\n throw err;\n }\n const stream = getFileStream(filepath, strapi, isLocalProvider);\n\n yield {\n metadata: file,\n filepath,\n filename: file.hash + file.ext,\n stream,\n stats: { size: stats.size },\n };\n\n if (file.formats) {\n for (const format of Object.keys(file.formats)) {\n const fileFormat = file.formats[format];\n const fileFormatFilepath = isLocalProvider\n ? join(strapi.dirs.static.public, fileFormat.url)\n : fileFormat.url;\n let fileFormatStats: { size: number };\n try {\n fileFormatStats = await getFileStatsForTransfer(\n fileFormatFilepath,\n strapi,\n isLocalProvider\n );\n } catch (err: unknown) {\n const code =\n err && typeof err === 'object' && 'code' in err\n ? (err as NodeJS.ErrnoException).code\n : undefined;\n if (code === 'ENOENT') {\n warnMissingAsset(missingAssetWarningMessage(file, fileFormatFilepath, format));\n continue;\n }\n throw err;\n }\n const fileFormatStream = getFileStream(fileFormatFilepath, strapi, isLocalProvider);\n const metadata = { ...fileFormat, type: format, id: file.id, mainHash: file.hash };\n yield {\n metadata,\n filepath: fileFormatFilepath,\n filename: fileFormat.hash + fileFormat.ext,\n stream: fileFormatStream,\n stats: { size: fileFormatStats.size },\n };\n }\n }\n }\n };\n\n return Duplex.from(generator());\n};\n"],"names":["getFileStream","filepath","strapi","isLocal","createReadStream","readableStream","PassThrough","fetch","then","res","status","emit","Error","body","Readable","fromWeb","pipe","catch","error","getFileStatsForTransfer","stat","Promise","resolve","reject","contentLength","headers","get","stats","size","parseInt","signUploadFileForTransfer","file","provider","plugins","upload","providerName","config","isPrivate","signUrl","f","signedUrl","getSignedUrl","url","formats","format","Object","keys","missingAssetWarningMessage","formatPart","id","hash","createAssetsStream","options","warnMissingAsset","message","log","warn","onWarning","generator","generateAssets","stream","db","queryBuilder","select","isLocalProvider","join","dirs","static","public","err","code","undefined","metadata","filename","ext","fileFormat","fileFormatFilepath","fileFormatStats","fileFormatStream","type","mainHash","Duplex","from"],"mappings":"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"}
|
|
@@ -73,7 +73,7 @@ const missingAssetWarningMessage = (file, filepath, format)=>{
|
|
|
73
73
|
strapi.log.warn(message);
|
|
74
74
|
options.onWarning?.(message);
|
|
75
75
|
};
|
|
76
|
-
const generator = async function*() {
|
|
76
|
+
const generator = async function* generateAssets() {
|
|
77
77
|
const stream = strapi.db.queryBuilder('plugin::upload.file')// Create a query builder instance (default type is 'select')
|
|
78
78
|
// Fetch all columns
|
|
79
79
|
.select('*')// Get a readable stream
|