@strapi/data-transfer 0.0.0-experimental.62ebf57bb35846666febb5ee2078fe02fe990f57 → 0.0.0-experimental.6340da17068c3bed7fb006e7bcc554c71129e282
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/index.d.ts +2 -0
- package/dist/directory/index.d.ts.map +1 -0
- package/dist/directory/index.js +8 -0
- package/dist/directory/index.js.map +1 -0
- package/dist/directory/index.mjs +3 -0
- package/dist/directory/index.mjs.map +1 -0
- package/dist/directory/providers/destination/index.d.ts +38 -0
- package/dist/directory/providers/destination/index.d.ts.map +1 -0
- package/dist/directory/providers/destination/index.js +184 -0
- package/dist/directory/providers/destination/index.js.map +1 -0
- package/dist/directory/providers/destination/index.mjs +177 -0
- package/dist/directory/providers/destination/index.mjs.map +1 -0
- package/dist/directory/providers/destination/utils.d.ts +8 -0
- package/dist/directory/providers/destination/utils.d.ts.map +1 -0
- package/dist/directory/providers/destination/utils.js +62 -0
- package/dist/directory/providers/destination/utils.js.map +1 -0
- package/dist/directory/providers/destination/utils.mjs +56 -0
- package/dist/directory/providers/destination/utils.mjs.map +1 -0
- package/dist/directory/providers/index.d.ts +3 -0
- package/dist/directory/providers/index.d.ts.map +1 -0
- package/dist/directory/providers/index.js +10 -0
- package/dist/directory/providers/index.js.map +1 -0
- package/dist/directory/providers/index.mjs +3 -0
- package/dist/directory/providers/index.mjs.map +1 -0
- package/dist/directory/providers/source/index.d.ts +27 -0
- package/dist/directory/providers/source/index.d.ts.map +1 -0
- package/dist/directory/providers/source/index.js +266 -0
- package/dist/directory/providers/source/index.js.map +1 -0
- package/dist/directory/providers/source/index.mjs +259 -0
- package/dist/directory/providers/source/index.mjs.map +1 -0
- package/dist/engine/errors.js +39 -0
- package/dist/engine/errors.js.map +1 -0
- package/dist/engine/errors.mjs +34 -0
- package/dist/engine/errors.mjs.map +1 -0
- package/dist/engine/index.d.ts +2 -3
- package/dist/engine/index.d.ts.map +1 -1
- package/dist/engine/index.js +922 -0
- package/dist/engine/index.js.map +1 -0
- package/dist/engine/index.mjs +917 -0
- package/dist/engine/index.mjs.map +1 -0
- package/dist/engine/validation/provider.d.ts +2 -2
- package/dist/engine/validation/provider.d.ts.map +1 -1
- package/dist/engine/validation/provider.js +19 -0
- package/dist/engine/validation/provider.js.map +1 -0
- package/dist/engine/validation/provider.mjs +17 -0
- package/dist/engine/validation/provider.mjs.map +1 -0
- package/dist/engine/validation/schemas/index.d.ts.map +1 -1
- package/dist/engine/validation/schemas/index.js +59 -0
- package/dist/engine/validation/schemas/index.js.map +1 -0
- package/dist/engine/validation/schemas/index.mjs +57 -0
- package/dist/engine/validation/schemas/index.mjs.map +1 -0
- package/dist/errors/base.js +13 -0
- package/dist/errors/base.js.map +1 -0
- package/dist/errors/base.mjs +11 -0
- package/dist/errors/base.mjs.map +1 -0
- package/dist/errors/constants.d.ts +1 -1
- package/dist/errors/constants.d.ts.map +1 -1
- package/dist/errors/constants.js +9 -0
- package/dist/errors/constants.js.map +1 -0
- package/dist/errors/constants.mjs +7 -0
- package/dist/errors/constants.mjs.map +1 -0
- package/dist/errors/providers.d.ts +1 -1
- package/dist/errors/providers.d.ts.map +1 -1
- package/dist/errors/providers.js +41 -0
- package/dist/errors/providers.js.map +1 -0
- package/dist/errors/providers.mjs +36 -0
- package/dist/errors/providers.mjs.map +1 -0
- package/dist/file/index.js +8 -0
- package/dist/file/index.js.map +1 -0
- package/dist/file/index.mjs +3 -0
- package/dist/file/index.mjs.map +1 -0
- package/dist/file/providers/destination/index.d.ts +3 -5
- package/dist/file/providers/destination/index.d.ts.map +1 -1
- package/dist/file/providers/destination/index.js +254 -0
- package/dist/file/providers/destination/index.js.map +1 -0
- package/dist/file/providers/destination/index.mjs +246 -0
- package/dist/file/providers/destination/index.mjs.map +1 -0
- 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/destination/utils.js +63 -0
- package/dist/file/providers/destination/utils.js.map +1 -0
- package/dist/file/providers/destination/utils.mjs +60 -0
- package/dist/file/providers/destination/utils.mjs.map +1 -0
- package/dist/file/providers/index.js +10 -0
- package/dist/file/providers/index.js.map +1 -0
- package/dist/file/providers/index.mjs +3 -0
- package/dist/file/providers/index.mjs.map +1 -0
- package/dist/file/providers/source/index.d.ts +4 -6
- package/dist/file/providers/source/index.d.ts.map +1 -1
- package/dist/file/providers/source/index.js +336 -0
- package/dist/file/providers/source/index.js.map +1 -0
- package/dist/file/providers/source/index.mjs +328 -0
- package/dist/file/providers/source/index.mjs.map +1 -0
- package/dist/file/providers/source/utils.d.ts.map +1 -1
- package/dist/file/providers/source/utils.js +60 -0
- package/dist/file/providers/source/utils.js.map +1 -0
- package/dist/file/providers/source/utils.mjs +52 -0
- package/dist/file/providers/source/utils.mjs.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -5423
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +10 -5392
- package/dist/index.mjs.map +1 -1
- package/dist/strapi/index.js +12 -0
- package/dist/strapi/index.js.map +1 -0
- package/dist/strapi/index.mjs +7 -0
- package/dist/strapi/index.mjs.map +1 -0
- package/dist/strapi/providers/index.js +18 -0
- package/dist/strapi/providers/index.js.map +1 -0
- package/dist/strapi/providers/index.mjs +8 -0
- package/dist/strapi/providers/index.mjs.map +1 -0
- package/dist/strapi/providers/local-destination/assets-destination-writable.d.ts +26 -0
- package/dist/strapi/providers/local-destination/assets-destination-writable.d.ts.map +1 -0
- package/dist/strapi/providers/local-destination/assets-destination-writable.js +125 -0
- package/dist/strapi/providers/local-destination/assets-destination-writable.js.map +1 -0
- package/dist/strapi/providers/local-destination/assets-destination-writable.mjs +123 -0
- package/dist/strapi/providers/local-destination/assets-destination-writable.mjs.map +1 -0
- package/dist/strapi/providers/local-destination/index.d.ts +9 -7
- package/dist/strapi/providers/local-destination/index.d.ts.map +1 -1
- package/dist/strapi/providers/local-destination/index.js +362 -0
- package/dist/strapi/providers/local-destination/index.js.map +1 -0
- package/dist/strapi/providers/local-destination/index.mjs +335 -0
- package/dist/strapi/providers/local-destination/index.mjs.map +1 -0
- package/dist/strapi/providers/local-destination/strategies/restore/configuration.d.ts +4 -5
- package/dist/strapi/providers/local-destination/strategies/restore/configuration.d.ts.map +1 -1
- package/dist/strapi/providers/local-destination/strategies/restore/configuration.js +58 -0
- package/dist/strapi/providers/local-destination/strategies/restore/configuration.js.map +1 -0
- package/dist/strapi/providers/local-destination/strategies/restore/configuration.mjs +51 -0
- package/dist/strapi/providers/local-destination/strategies/restore/configuration.mjs.map +1 -0
- package/dist/strapi/providers/local-destination/strategies/restore/entities.d.ts +4 -5
- package/dist/strapi/providers/local-destination/strategies/restore/entities.d.ts.map +1 -1
- package/dist/strapi/providers/local-destination/strategies/restore/entities.js +54 -0
- package/dist/strapi/providers/local-destination/strategies/restore/entities.js.map +1 -0
- package/dist/strapi/providers/local-destination/strategies/restore/entities.mjs +52 -0
- package/dist/strapi/providers/local-destination/strategies/restore/entities.mjs.map +1 -0
- package/dist/strapi/providers/local-destination/strategies/restore/index.d.ts +3 -3
- package/dist/strapi/providers/local-destination/strategies/restore/index.d.ts.map +1 -1
- package/dist/strapi/providers/local-destination/strategies/restore/index.js +124 -0
- package/dist/strapi/providers/local-destination/strategies/restore/index.js.map +1 -0
- package/dist/strapi/providers/local-destination/strategies/restore/index.mjs +120 -0
- package/dist/strapi/providers/local-destination/strategies/restore/index.mjs.map +1 -0
- package/dist/strapi/providers/local-destination/strategies/restore/links.d.ts +3 -4
- package/dist/strapi/providers/local-destination/strategies/restore/links.d.ts.map +1 -1
- package/dist/strapi/providers/local-destination/strategies/restore/links.js +79 -0
- package/dist/strapi/providers/local-destination/strategies/restore/links.js.map +1 -0
- package/dist/strapi/providers/local-destination/strategies/restore/links.mjs +77 -0
- package/dist/strapi/providers/local-destination/strategies/restore/links.mjs.map +1 -0
- package/dist/strapi/providers/local-source/assets.d.ts +9 -2
- package/dist/strapi/providers/local-source/assets.d.ts.map +1 -1
- package/dist/strapi/providers/local-source/assets.js +151 -0
- package/dist/strapi/providers/local-source/assets.js.map +1 -0
- package/dist/strapi/providers/local-source/assets.mjs +147 -0
- package/dist/strapi/providers/local-source/assets.mjs.map +1 -0
- package/dist/strapi/providers/local-source/configuration.d.ts +2 -2
- package/dist/strapi/providers/local-source/configuration.d.ts.map +1 -1
- package/dist/strapi/providers/local-source/configuration.js +47 -0
- package/dist/strapi/providers/local-source/configuration.js.map +1 -0
- package/dist/strapi/providers/local-source/configuration.mjs +45 -0
- package/dist/strapi/providers/local-source/configuration.mjs.map +1 -0
- package/dist/strapi/providers/local-source/entities.d.ts +4 -2
- package/dist/strapi/providers/local-source/entities.d.ts.map +1 -1
- package/dist/strapi/providers/local-source/entities.js +66 -0
- package/dist/strapi/providers/local-source/entities.js.map +1 -0
- package/dist/strapi/providers/local-source/entities.mjs +63 -0
- package/dist/strapi/providers/local-source/entities.mjs.map +1 -0
- package/dist/strapi/providers/local-source/estimate-asset-totals.d.ts +11 -0
- package/dist/strapi/providers/local-source/estimate-asset-totals.d.ts.map +1 -0
- package/dist/strapi/providers/local-source/estimate-asset-totals.js +130 -0
- package/dist/strapi/providers/local-source/estimate-asset-totals.js.map +1 -0
- package/dist/strapi/providers/local-source/estimate-asset-totals.mjs +128 -0
- package/dist/strapi/providers/local-source/estimate-asset-totals.mjs.map +1 -0
- package/dist/strapi/providers/local-source/index.d.ts +10 -8
- package/dist/strapi/providers/local-source/index.d.ts.map +1 -1
- package/dist/strapi/providers/local-source/index.js +186 -0
- package/dist/strapi/providers/local-source/index.js.map +1 -0
- package/dist/strapi/providers/local-source/index.mjs +183 -0
- package/dist/strapi/providers/local-source/index.mjs.map +1 -0
- package/dist/strapi/providers/local-source/links.d.ts +2 -2
- package/dist/strapi/providers/local-source/links.d.ts.map +1 -1
- package/dist/strapi/providers/local-source/links.js +26 -0
- package/dist/strapi/providers/local-source/links.js.map +1 -0
- package/dist/strapi/providers/local-source/links.mjs +24 -0
- package/dist/strapi/providers/local-source/links.mjs.map +1 -0
- package/dist/strapi/providers/remote-destination/index.d.ts +15 -7
- package/dist/strapi/providers/remote-destination/index.d.ts.map +1 -1
- package/dist/strapi/providers/remote-destination/index.js +482 -0
- package/dist/strapi/providers/remote-destination/index.js.map +1 -0
- package/dist/strapi/providers/remote-destination/index.mjs +480 -0
- package/dist/strapi/providers/remote-destination/index.mjs.map +1 -0
- package/dist/strapi/providers/remote-source/index.d.ts +13 -8
- package/dist/strapi/providers/remote-source/index.d.ts.map +1 -1
- package/dist/strapi/providers/remote-source/index.js +538 -0
- package/dist/strapi/providers/remote-source/index.js.map +1 -0
- package/dist/strapi/providers/remote-source/index.mjs +536 -0
- package/dist/strapi/providers/remote-source/index.mjs.map +1 -0
- package/dist/strapi/providers/utils.d.ts +19 -15
- package/dist/strapi/providers/utils.d.ts.map +1 -1
- package/dist/strapi/providers/utils.js +178 -0
- package/dist/strapi/providers/utils.js.map +1 -0
- package/dist/strapi/providers/utils.mjs +174 -0
- package/dist/strapi/providers/utils.mjs.map +1 -0
- package/dist/strapi/queries/entity.d.ts +2 -2
- package/dist/strapi/queries/entity.d.ts.map +1 -1
- package/dist/strapi/queries/entity.js +125 -0
- package/dist/strapi/queries/entity.js.map +1 -0
- package/dist/strapi/queries/entity.mjs +123 -0
- package/dist/strapi/queries/entity.mjs.map +1 -0
- package/dist/strapi/queries/index.js +10 -0
- package/dist/strapi/queries/index.js.map +1 -0
- package/dist/strapi/queries/index.mjs +5 -0
- package/dist/strapi/queries/index.mjs.map +1 -0
- package/dist/strapi/queries/link.d.ts +4 -3
- package/dist/strapi/queries/link.d.ts.map +1 -1
- package/dist/strapi/queries/link.js +298 -0
- package/dist/strapi/queries/link.js.map +1 -0
- package/dist/strapi/queries/link.mjs +295 -0
- package/dist/strapi/queries/link.mjs.map +1 -0
- package/dist/strapi/remote/constants.d.ts.map +1 -1
- package/dist/strapi/remote/constants.js +11 -0
- package/dist/strapi/remote/constants.js.map +1 -0
- package/dist/strapi/remote/constants.mjs +8 -0
- package/dist/strapi/remote/constants.mjs.map +1 -0
- package/dist/strapi/remote/flows/default.d.ts.map +1 -1
- package/dist/strapi/remote/flows/default.js +43 -0
- package/dist/strapi/remote/flows/default.js.map +1 -0
- package/dist/strapi/remote/flows/default.mjs +41 -0
- package/dist/strapi/remote/flows/default.mjs.map +1 -0
- package/dist/strapi/remote/flows/index.d.ts +1 -1
- package/dist/strapi/remote/flows/index.d.ts.map +1 -1
- package/dist/strapi/remote/flows/index.js +54 -0
- package/dist/strapi/remote/flows/index.js.map +1 -0
- package/dist/strapi/remote/flows/index.mjs +52 -0
- package/dist/strapi/remote/flows/index.mjs.map +1 -0
- package/dist/strapi/remote/handlers/abstract.d.ts +4 -1
- package/dist/strapi/remote/handlers/abstract.d.ts.map +1 -1
- package/dist/strapi/remote/handlers/constants.js +10 -0
- package/dist/strapi/remote/handlers/constants.js.map +1 -0
- package/dist/strapi/remote/handlers/constants.mjs +8 -0
- package/dist/strapi/remote/handlers/constants.mjs.map +1 -0
- package/dist/strapi/remote/handlers/index.js +12 -0
- package/dist/strapi/remote/handlers/index.js.map +1 -0
- package/dist/strapi/remote/handlers/index.mjs +4 -0
- package/dist/strapi/remote/handlers/index.mjs.map +1 -0
- package/dist/strapi/remote/handlers/pull.d.ts +2 -3
- package/dist/strapi/remote/handlers/pull.d.ts.map +1 -1
- package/dist/strapi/remote/handlers/pull.js +369 -0
- package/dist/strapi/remote/handlers/pull.js.map +1 -0
- package/dist/strapi/remote/handlers/pull.mjs +367 -0
- package/dist/strapi/remote/handlers/pull.mjs.map +1 -0
- package/dist/strapi/remote/handlers/push.d.ts +16 -5
- package/dist/strapi/remote/handlers/push.d.ts.map +1 -1
- package/dist/strapi/remote/handlers/push.js +454 -0
- package/dist/strapi/remote/handlers/push.js.map +1 -0
- package/dist/strapi/remote/handlers/push.mjs +452 -0
- package/dist/strapi/remote/handlers/push.mjs.map +1 -0
- package/dist/strapi/remote/handlers/utils.d.ts +2 -3
- package/dist/strapi/remote/handlers/utils.d.ts.map +1 -1
- package/dist/strapi/remote/handlers/utils.js +318 -0
- package/dist/strapi/remote/handlers/utils.js.map +1 -0
- package/dist/strapi/remote/handlers/utils.mjs +312 -0
- package/dist/strapi/remote/handlers/utils.mjs.map +1 -0
- package/dist/strapi/remote/index.js +10 -0
- package/dist/strapi/remote/index.js.map +1 -0
- package/dist/strapi/remote/index.mjs +5 -0
- package/dist/strapi/remote/index.mjs.map +1 -0
- package/dist/strapi/utils/project-settings-logos.d.ts +29 -0
- package/dist/strapi/utils/project-settings-logos.d.ts.map +1 -0
- package/dist/strapi/utils/project-settings-logos.js +174 -0
- package/dist/strapi/utils/project-settings-logos.js.map +1 -0
- package/dist/strapi/utils/project-settings-logos.mjs +169 -0
- package/dist/strapi/utils/project-settings-logos.mjs.map +1 -0
- package/dist/types/common-entities.d.ts +149 -0
- package/dist/types/common-entities.d.ts.map +1 -0
- package/dist/types/encryption.d.ts +13 -0
- package/dist/types/encryption.d.ts.map +1 -0
- package/dist/types/index.d.ts +7 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/providers.d.ts +49 -0
- package/dist/types/providers.d.ts.map +1 -0
- package/dist/types/remote/index.d.ts +2 -0
- package/dist/types/remote/index.d.ts.map +1 -0
- package/dist/types/remote/protocol/auth.d.ts +5 -0
- package/dist/types/remote/protocol/auth.d.ts.map +1 -0
- package/dist/types/remote/protocol/client/commands.d.ts +37 -0
- package/dist/types/remote/protocol/client/commands.d.ts.map +1 -0
- package/dist/types/remote/protocol/client/index.d.ts +9 -0
- package/dist/types/remote/protocol/client/index.d.ts.map +1 -0
- package/dist/types/remote/protocol/client/transfer/action.d.ts +5 -0
- package/dist/types/remote/protocol/client/transfer/action.d.ts.map +1 -0
- package/dist/types/remote/protocol/client/transfer/index.d.ts +12 -0
- package/dist/types/remote/protocol/client/transfer/index.d.ts.map +1 -0
- package/dist/types/remote/protocol/client/transfer/pull.d.ts +25 -0
- package/dist/types/remote/protocol/client/transfer/pull.d.ts.map +1 -0
- package/dist/types/remote/protocol/client/transfer/push.d.ts +29 -0
- package/dist/types/remote/protocol/client/transfer/push.d.ts.map +1 -0
- package/dist/types/remote/protocol/client/transfer/utils.d.ts +47 -0
- package/dist/types/remote/protocol/client/transfer/utils.d.ts.map +1 -0
- package/dist/types/remote/protocol/index.d.ts +4 -0
- package/dist/types/remote/protocol/index.d.ts.map +1 -0
- package/dist/types/remote/protocol/server/error.d.ts +18 -0
- package/dist/types/remote/protocol/server/error.d.ts.map +1 -0
- package/dist/types/remote/protocol/server/index.d.ts +3 -0
- package/dist/types/remote/protocol/server/index.d.ts.map +1 -0
- package/dist/types/remote/protocol/server/messaging.d.ts +37 -0
- package/dist/types/remote/protocol/server/messaging.d.ts.map +1 -0
- package/dist/types/transfer-engine.d.ts +148 -0
- package/dist/types/transfer-engine.d.ts.map +1 -0
- package/dist/types/utils.d.ts +82 -0
- package/dist/types/utils.d.ts.map +1 -0
- package/dist/utils/components.d.ts +35 -18
- package/dist/utils/components.d.ts.map +1 -1
- package/dist/utils/components.js +230 -0
- package/dist/utils/components.js.map +1 -0
- package/dist/utils/components.mjs +219 -0
- package/dist/utils/components.mjs.map +1 -0
- package/dist/{engine → utils}/diagnostic.d.ts +1 -0
- package/dist/utils/diagnostic.d.ts.map +1 -0
- package/dist/utils/diagnostic.js +51 -0
- package/dist/utils/diagnostic.js.map +1 -0
- package/dist/utils/diagnostic.mjs +49 -0
- package/dist/utils/diagnostic.mjs.map +1 -0
- package/dist/utils/encryption/decrypt.d.ts +6 -4
- package/dist/utils/encryption/decrypt.d.ts.map +1 -1
- package/dist/utils/encryption/decrypt.js +47 -0
- package/dist/utils/encryption/decrypt.js.map +1 -0
- package/dist/utils/encryption/decrypt.mjs +45 -0
- package/dist/utils/encryption/decrypt.mjs.map +1 -0
- package/dist/utils/encryption/encrypt.d.ts +6 -4
- package/dist/utils/encryption/encrypt.d.ts.map +1 -1
- package/dist/utils/encryption/encrypt.js +47 -0
- package/dist/utils/encryption/encrypt.js.map +1 -0
- package/dist/utils/encryption/encrypt.mjs +45 -0
- package/dist/utils/encryption/encrypt.mjs.map +1 -0
- package/dist/utils/encryption/index.js +10 -0
- package/dist/utils/encryption/index.js.map +1 -0
- package/dist/utils/encryption/index.mjs +3 -0
- package/dist/utils/encryption/index.mjs.map +1 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +28 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/index.mjs +17 -0
- package/dist/utils/index.mjs.map +1 -0
- package/dist/utils/json.d.ts.map +1 -1
- package/dist/utils/json.js +96 -0
- package/dist/utils/json.js.map +1 -0
- package/dist/utils/json.mjs +94 -0
- package/dist/utils/json.mjs.map +1 -0
- package/dist/utils/middleware.d.ts +1 -1
- package/dist/utils/middleware.d.ts.map +1 -1
- package/dist/utils/middleware.js +14 -0
- package/dist/utils/middleware.js.map +1 -0
- package/dist/utils/middleware.mjs +12 -0
- package/dist/utils/middleware.mjs.map +1 -0
- package/dist/utils/providers.d.ts +2 -2
- package/dist/utils/providers.d.ts.map +1 -1
- package/dist/utils/providers.js +12 -0
- package/dist/utils/providers.js.map +1 -0
- package/dist/utils/providers.mjs +10 -0
- package/dist/utils/providers.mjs.map +1 -0
- package/dist/utils/schema.d.ts +3 -2
- package/dist/utils/schema.d.ts.map +1 -1
- package/dist/utils/schema.js +32 -0
- package/dist/utils/schema.js.map +1 -0
- package/dist/utils/schema.mjs +29 -0
- package/dist/utils/schema.mjs.map +1 -0
- package/dist/utils/stream.d.ts +0 -1
- package/dist/utils/stream.d.ts.map +1 -1
- package/dist/utils/stream.js +96 -0
- package/dist/utils/stream.js.map +1 -0
- package/dist/utils/stream.mjs +92 -0
- package/dist/utils/stream.mjs.map +1 -0
- package/dist/utils/transaction.d.ts +3 -3
- package/dist/utils/transaction.d.ts.map +1 -1
- package/dist/utils/transaction.js +93 -0
- package/dist/utils/transaction.js.map +1 -0
- package/dist/utils/transaction.mjs +91 -0
- package/dist/utils/transaction.mjs.map +1 -0
- package/dist/utils/transfer-asset-chunk.d.ts +61 -0
- package/dist/utils/transfer-asset-chunk.d.ts.map +1 -0
- package/dist/utils/transfer-asset-chunk.js +118 -0
- package/dist/utils/transfer-asset-chunk.js.map +1 -0
- package/dist/utils/transfer-asset-chunk.mjs +112 -0
- package/dist/utils/transfer-asset-chunk.mjs.map +1 -0
- package/dist/utils/transfer-websocket-json.d.ts +24 -0
- package/dist/utils/transfer-websocket-json.d.ts.map +1 -0
- package/dist/utils/transfer-websocket-json.js +67 -0
- package/dist/utils/transfer-websocket-json.js.map +1 -0
- package/dist/utils/transfer-websocket-json.mjs +63 -0
- package/dist/utils/transfer-websocket-json.mjs.map +1 -0
- package/dist/utils/writable-async-write.d.ts +16 -0
- package/dist/utils/writable-async-write.d.ts.map +1 -0
- package/dist/utils/writable-async-write.js +61 -0
- package/dist/utils/writable-async-write.js.map +1 -0
- package/dist/utils/writable-async-write.mjs +59 -0
- package/dist/utils/writable-async-write.mjs.map +1 -0
- package/package.json +42 -31
- package/dist/commands/commander.d.ts +0 -36
- package/dist/commands/commander.d.ts.map +0 -1
- package/dist/commands/data-transfer.d.ts +0 -63
- package/dist/commands/data-transfer.d.ts.map +0 -1
- package/dist/commands/export/action.d.ts +0 -21
- package/dist/commands/export/action.d.ts.map +0 -1
- package/dist/commands/export/command.d.ts +0 -9
- package/dist/commands/export/command.d.ts.map +0 -1
- package/dist/commands/helpers.d.ts +0 -31
- package/dist/commands/helpers.d.ts.map +0 -1
- package/dist/commands/import/action.d.ts +0 -20
- package/dist/commands/import/action.d.ts.map +0 -1
- package/dist/commands/import/command.d.ts +0 -9
- package/dist/commands/import/command.d.ts.map +0 -1
- package/dist/commands/index.d.ts +0 -4
- package/dist/commands/index.d.ts.map +0 -1
- package/dist/commands/transfer/action.d.ts +0 -19
- package/dist/commands/transfer/action.d.ts.map +0 -1
- package/dist/commands/transfer/command.d.ts +0 -9
- package/dist/commands/transfer/command.d.ts.map +0 -1
- package/dist/engine/diagnostic.d.ts.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/directory/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Writable } from 'stream';
|
|
2
|
+
import type { IDestinationProvider, IDestinationProviderTransferResults, IMetadata, ProviderType } from '../../../types';
|
|
3
|
+
import type { IDiagnosticReporter } from '../../../utils/diagnostic';
|
|
4
|
+
export interface ILocalDirectoryDestinationProviderOptions {
|
|
5
|
+
directory: {
|
|
6
|
+
/** Output root: unpacked Strapi export layout (metadata.json, entities/, …) */
|
|
7
|
+
path: string;
|
|
8
|
+
};
|
|
9
|
+
file: {
|
|
10
|
+
maxSizeJsonl?: number;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export interface ILocalDirectoryDestinationProviderTransferResults extends IDestinationProviderTransferResults {
|
|
14
|
+
file?: {
|
|
15
|
+
path?: string;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export declare const createLocalDirectoryDestinationProvider: (options: ILocalDirectoryDestinationProviderOptions) => LocalDirectoryDestinationProvider;
|
|
19
|
+
declare class LocalDirectoryDestinationProvider implements IDestinationProvider {
|
|
20
|
+
#private;
|
|
21
|
+
name: string;
|
|
22
|
+
type: ProviderType;
|
|
23
|
+
options: ILocalDirectoryDestinationProviderOptions;
|
|
24
|
+
results: ILocalDirectoryDestinationProviderTransferResults;
|
|
25
|
+
constructor(options: ILocalDirectoryDestinationProviderOptions);
|
|
26
|
+
setMetadata(target: ProviderType, metadata: IMetadata): IDestinationProvider;
|
|
27
|
+
bootstrap(diagnostics: IDiagnosticReporter): Promise<void>;
|
|
28
|
+
close(): Promise<void>;
|
|
29
|
+
rollback(): Promise<void>;
|
|
30
|
+
getMetadata(): null;
|
|
31
|
+
createSchemasWriteStream(): import("stream-chain");
|
|
32
|
+
createEntitiesWriteStream(): Writable;
|
|
33
|
+
createLinksWriteStream(): Writable;
|
|
34
|
+
createConfigurationWriteStream(): Writable;
|
|
35
|
+
createAssetsWriteStream(): Writable;
|
|
36
|
+
}
|
|
37
|
+
export {};
|
|
38
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var path = require('path');
|
|
4
|
+
var fs$1 = require('fs');
|
|
5
|
+
var stream = require('stream');
|
|
6
|
+
var fs = require('fs-extra');
|
|
7
|
+
var Stringer = require('stream-json/jsonl/Stringer');
|
|
8
|
+
var streamChain = require('stream-chain');
|
|
9
|
+
var utils = require('./utils.js');
|
|
10
|
+
var providers = require('../../../errors/providers.js');
|
|
11
|
+
var utils$1 = require('../../../file/providers/destination/utils.js');
|
|
12
|
+
|
|
13
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
|
+
|
|
15
|
+
var path__default = /*#__PURE__*/_interopDefault(path);
|
|
16
|
+
var fs__default = /*#__PURE__*/_interopDefault(fs);
|
|
17
|
+
|
|
18
|
+
function _class_private_field_loose_base(receiver, privateKey) {
|
|
19
|
+
if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) {
|
|
20
|
+
throw new TypeError("attempted to use private field on non-instance");
|
|
21
|
+
}
|
|
22
|
+
return receiver;
|
|
23
|
+
}
|
|
24
|
+
var id = 0;
|
|
25
|
+
function _class_private_field_loose_key(name) {
|
|
26
|
+
return "__private_" + id++ + "_" + name;
|
|
27
|
+
}
|
|
28
|
+
const createLocalDirectoryDestinationProvider = (options)=>{
|
|
29
|
+
return new LocalDirectoryDestinationProvider(options);
|
|
30
|
+
};
|
|
31
|
+
var _providersMetadata = /*#__PURE__*/ _class_private_field_loose_key("_providersMetadata"), _rootResolved = /*#__PURE__*/ _class_private_field_loose_key("_rootResolved"), _diagnostics = /*#__PURE__*/ _class_private_field_loose_key("_diagnostics"), _reportInfo = /*#__PURE__*/ _class_private_field_loose_key("_reportInfo"), _writeMetadata = /*#__PURE__*/ _class_private_field_loose_key("_writeMetadata");
|
|
32
|
+
class LocalDirectoryDestinationProvider {
|
|
33
|
+
setMetadata(target, metadata) {
|
|
34
|
+
_class_private_field_loose_base(this, _providersMetadata)[_providersMetadata][target] = metadata;
|
|
35
|
+
return this;
|
|
36
|
+
}
|
|
37
|
+
async bootstrap(diagnostics) {
|
|
38
|
+
_class_private_field_loose_base(this, _diagnostics)[_diagnostics] = diagnostics;
|
|
39
|
+
_class_private_field_loose_base(this, _reportInfo)[_reportInfo]('preparing directory export');
|
|
40
|
+
await fs__default.default.mkdir(_class_private_field_loose_base(this, _rootResolved)[_rootResolved], {
|
|
41
|
+
recursive: true
|
|
42
|
+
});
|
|
43
|
+
this.results.file = {
|
|
44
|
+
path: _class_private_field_loose_base(this, _rootResolved)[_rootResolved]
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
async close() {
|
|
48
|
+
await _class_private_field_loose_base(this, _writeMetadata)[_writeMetadata]();
|
|
49
|
+
}
|
|
50
|
+
async rollback() {
|
|
51
|
+
_class_private_field_loose_base(this, _reportInfo)[_reportInfo]('rolling back');
|
|
52
|
+
await fs__default.default.rm(_class_private_field_loose_base(this, _rootResolved)[_rootResolved], {
|
|
53
|
+
recursive: true,
|
|
54
|
+
force: true
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
getMetadata() {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
createSchemasWriteStream() {
|
|
61
|
+
_class_private_field_loose_base(this, _reportInfo)[_reportInfo]('creating schemas write stream');
|
|
62
|
+
const filePathFactory = utils$1.createFilePathFactory('schemas');
|
|
63
|
+
const entryStream = utils.createDirectoryJsonlWriter(_class_private_field_loose_base(this, _rootResolved)[_rootResolved], filePathFactory, this.options.file.maxSizeJsonl);
|
|
64
|
+
return streamChain.chain([
|
|
65
|
+
Stringer.stringer(),
|
|
66
|
+
entryStream
|
|
67
|
+
]);
|
|
68
|
+
}
|
|
69
|
+
createEntitiesWriteStream() {
|
|
70
|
+
_class_private_field_loose_base(this, _reportInfo)[_reportInfo]('creating entities write stream');
|
|
71
|
+
const filePathFactory = utils$1.createFilePathFactory('entities');
|
|
72
|
+
const entryStream = utils.createDirectoryJsonlWriter(_class_private_field_loose_base(this, _rootResolved)[_rootResolved], filePathFactory, this.options.file.maxSizeJsonl);
|
|
73
|
+
return streamChain.chain([
|
|
74
|
+
Stringer.stringer(),
|
|
75
|
+
entryStream
|
|
76
|
+
]);
|
|
77
|
+
}
|
|
78
|
+
createLinksWriteStream() {
|
|
79
|
+
_class_private_field_loose_base(this, _reportInfo)[_reportInfo]('creating links write stream');
|
|
80
|
+
const filePathFactory = utils$1.createFilePathFactory('links');
|
|
81
|
+
const entryStream = utils.createDirectoryJsonlWriter(_class_private_field_loose_base(this, _rootResolved)[_rootResolved], filePathFactory, this.options.file.maxSizeJsonl);
|
|
82
|
+
return streamChain.chain([
|
|
83
|
+
Stringer.stringer(),
|
|
84
|
+
entryStream
|
|
85
|
+
]);
|
|
86
|
+
}
|
|
87
|
+
createConfigurationWriteStream() {
|
|
88
|
+
_class_private_field_loose_base(this, _reportInfo)[_reportInfo]('creating configuration write stream');
|
|
89
|
+
const filePathFactory = utils$1.createFilePathFactory('configuration');
|
|
90
|
+
const entryStream = utils.createDirectoryJsonlWriter(_class_private_field_loose_base(this, _rootResolved)[_rootResolved], filePathFactory, this.options.file.maxSizeJsonl);
|
|
91
|
+
return streamChain.chain([
|
|
92
|
+
Stringer.stringer(),
|
|
93
|
+
entryStream
|
|
94
|
+
]);
|
|
95
|
+
}
|
|
96
|
+
createAssetsWriteStream() {
|
|
97
|
+
_class_private_field_loose_base(this, _reportInfo)[_reportInfo]('creating assets write stream');
|
|
98
|
+
const root = _class_private_field_loose_base(this, _rootResolved)[_rootResolved];
|
|
99
|
+
return new stream.Writable({
|
|
100
|
+
objectMode: true,
|
|
101
|
+
write (data, _encoding, callback) {
|
|
102
|
+
const { filename } = data;
|
|
103
|
+
const entryPath = path__default.default.join(root, 'assets', 'uploads', filename);
|
|
104
|
+
const entryMetadataPath = path__default.default.join(root, 'assets', 'metadata', `${filename}.json`);
|
|
105
|
+
const assetWriteError = (cause)=>new providers.ProviderTransferError(`Failed to write asset ${filename}`, {
|
|
106
|
+
details: {
|
|
107
|
+
error: cause instanceof Error ? cause : new Error(String(cause))
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
let fileStream;
|
|
111
|
+
try {
|
|
112
|
+
fs__default.default.mkdirSync(path__default.default.dirname(entryPath), {
|
|
113
|
+
recursive: true
|
|
114
|
+
});
|
|
115
|
+
fs__default.default.mkdirSync(path__default.default.dirname(entryMetadataPath), {
|
|
116
|
+
recursive: true
|
|
117
|
+
});
|
|
118
|
+
fs__default.default.writeFileSync(entryMetadataPath, JSON.stringify(data.metadata), 'utf8');
|
|
119
|
+
fileStream = fs$1.createWriteStream(entryPath);
|
|
120
|
+
} catch (error) {
|
|
121
|
+
callback(assetWriteError(error));
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
stream.pipeline(data.stream, fileStream, (err)=>{
|
|
125
|
+
if (err) {
|
|
126
|
+
callback(assetWriteError(err));
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
callback(null);
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
constructor(options){
|
|
135
|
+
Object.defineProperty(this, _reportInfo, {
|
|
136
|
+
value: reportInfo
|
|
137
|
+
});
|
|
138
|
+
Object.defineProperty(this, _writeMetadata, {
|
|
139
|
+
value: writeMetadata
|
|
140
|
+
});
|
|
141
|
+
Object.defineProperty(this, _providersMetadata, {
|
|
142
|
+
writable: true,
|
|
143
|
+
value: void 0
|
|
144
|
+
});
|
|
145
|
+
Object.defineProperty(this, _rootResolved, {
|
|
146
|
+
writable: true,
|
|
147
|
+
value: void 0
|
|
148
|
+
});
|
|
149
|
+
Object.defineProperty(this, _diagnostics, {
|
|
150
|
+
writable: true,
|
|
151
|
+
value: void 0
|
|
152
|
+
});
|
|
153
|
+
this.name = 'destination::local-directory';
|
|
154
|
+
this.type = 'destination';
|
|
155
|
+
this.results = {};
|
|
156
|
+
_class_private_field_loose_base(this, _providersMetadata)[_providersMetadata] = {};
|
|
157
|
+
this.options = options;
|
|
158
|
+
_class_private_field_loose_base(this, _rootResolved)[_rootResolved] = path__default.default.resolve(options.directory.path);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
function reportInfo(message) {
|
|
162
|
+
_class_private_field_loose_base(this, _diagnostics)[_diagnostics]?.report({
|
|
163
|
+
details: {
|
|
164
|
+
createdAt: new Date(),
|
|
165
|
+
message,
|
|
166
|
+
origin: 'directory-destination-provider'
|
|
167
|
+
},
|
|
168
|
+
kind: 'info'
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
async function writeMetadata() {
|
|
172
|
+
_class_private_field_loose_base(this, _reportInfo)[_reportInfo]('writing metadata');
|
|
173
|
+
const metadata = _class_private_field_loose_base(this, _providersMetadata)[_providersMetadata].source;
|
|
174
|
+
if (metadata) {
|
|
175
|
+
const target = path__default.default.join(_class_private_field_loose_base(this, _rootResolved)[_rootResolved], 'metadata.json');
|
|
176
|
+
await fs__default.default.mkdir(path__default.default.dirname(target), {
|
|
177
|
+
recursive: true
|
|
178
|
+
});
|
|
179
|
+
await fs__default.default.writeFile(target, JSON.stringify(metadata, null, 2), 'utf8');
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
exports.createLocalDirectoryDestinationProvider = createLocalDirectoryDestinationProvider;
|
|
184
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../src/directory/providers/destination/index.ts"],"sourcesContent":["import path from 'path';\nimport { createWriteStream } from 'fs';\nimport { Writable, pipeline } from 'stream';\nimport fs from 'fs-extra';\nimport { stringer } from 'stream-json/jsonl/Stringer';\nimport { chain } from 'stream-chain';\n\nimport type {\n IAsset,\n IDestinationProvider,\n IDestinationProviderTransferResults,\n IMetadata,\n ProviderType,\n} from '../../../types';\nimport type { IDiagnosticReporter } from '../../../utils/diagnostic';\nimport { createDirectoryJsonlWriter, createFilePathFactory } from './utils';\nimport { ProviderTransferError } from '../../../errors/providers';\n\nexport interface ILocalDirectoryDestinationProviderOptions {\n directory: {\n /** Output root: unpacked Strapi export layout (metadata.json, entities/, …) */\n path: string;\n };\n file: {\n maxSizeJsonl?: number;\n };\n}\n\nexport interface ILocalDirectoryDestinationProviderTransferResults\n extends IDestinationProviderTransferResults {\n file?: {\n path?: string;\n };\n}\n\nexport const createLocalDirectoryDestinationProvider = (\n options: ILocalDirectoryDestinationProviderOptions\n) => {\n return new LocalDirectoryDestinationProvider(options);\n};\n\nclass LocalDirectoryDestinationProvider implements IDestinationProvider {\n name = 'destination::local-directory';\n\n type: ProviderType = 'destination';\n\n options: ILocalDirectoryDestinationProviderOptions;\n\n results: ILocalDirectoryDestinationProviderTransferResults = {};\n\n #providersMetadata: { source?: IMetadata; destination?: IMetadata } = {};\n\n #rootResolved: string;\n\n #diagnostics?: IDiagnosticReporter;\n\n constructor(options: ILocalDirectoryDestinationProviderOptions) {\n this.options = options;\n this.#rootResolved = path.resolve(options.directory.path);\n }\n\n #reportInfo(message: string) {\n this.#diagnostics?.report({\n details: {\n createdAt: new Date(),\n message,\n origin: 'directory-destination-provider',\n },\n kind: 'info',\n });\n }\n\n setMetadata(target: ProviderType, metadata: IMetadata): IDestinationProvider {\n this.#providersMetadata[target] = metadata;\n return this;\n }\n\n async bootstrap(diagnostics: IDiagnosticReporter): Promise<void> {\n this.#diagnostics = diagnostics;\n this.#reportInfo('preparing directory export');\n await fs.mkdir(this.#rootResolved, { recursive: true });\n this.results.file = { path: this.#rootResolved };\n }\n\n async close() {\n await this.#writeMetadata();\n }\n\n async rollback(): Promise<void> {\n this.#reportInfo('rolling back');\n await fs.rm(this.#rootResolved, { recursive: true, force: true });\n }\n\n getMetadata() {\n return null;\n }\n\n async #writeMetadata(): Promise<void> {\n this.#reportInfo('writing metadata');\n const metadata = this.#providersMetadata.source;\n if (metadata) {\n const target = path.join(this.#rootResolved, 'metadata.json');\n await fs.mkdir(path.dirname(target), { recursive: true });\n await fs.writeFile(target, JSON.stringify(metadata, null, 2), 'utf8');\n }\n }\n\n createSchemasWriteStream() {\n this.#reportInfo('creating schemas write stream');\n const filePathFactory = createFilePathFactory('schemas');\n const entryStream = createDirectoryJsonlWriter(\n this.#rootResolved,\n filePathFactory,\n this.options.file.maxSizeJsonl\n );\n return chain([stringer(), entryStream]);\n }\n\n createEntitiesWriteStream(): Writable {\n this.#reportInfo('creating entities write stream');\n const filePathFactory = createFilePathFactory('entities');\n const entryStream = createDirectoryJsonlWriter(\n this.#rootResolved,\n filePathFactory,\n this.options.file.maxSizeJsonl\n );\n return chain([stringer(), entryStream]);\n }\n\n createLinksWriteStream(): Writable {\n this.#reportInfo('creating links write stream');\n const filePathFactory = createFilePathFactory('links');\n const entryStream = createDirectoryJsonlWriter(\n this.#rootResolved,\n filePathFactory,\n this.options.file.maxSizeJsonl\n );\n return chain([stringer(), entryStream]);\n }\n\n createConfigurationWriteStream(): Writable {\n this.#reportInfo('creating configuration write stream');\n const filePathFactory = createFilePathFactory('configuration');\n const entryStream = createDirectoryJsonlWriter(\n this.#rootResolved,\n filePathFactory,\n this.options.file.maxSizeJsonl\n );\n return chain([stringer(), entryStream]);\n }\n\n createAssetsWriteStream(): Writable {\n this.#reportInfo('creating assets write stream');\n const root = this.#rootResolved;\n\n return new Writable({\n objectMode: true,\n write(data: IAsset, _encoding, callback) {\n const { filename } = data;\n const entryPath = path.join(root, 'assets', 'uploads', filename);\n const entryMetadataPath = path.join(root, 'assets', 'metadata', `${filename}.json`);\n\n const assetWriteError = (cause: unknown) =>\n new ProviderTransferError(`Failed to write asset ${filename}`, {\n details: {\n error: cause instanceof Error ? cause : new Error(String(cause)),\n },\n });\n\n let fileStream: ReturnType<typeof createWriteStream>;\n\n try {\n fs.mkdirSync(path.dirname(entryPath), { recursive: true });\n fs.mkdirSync(path.dirname(entryMetadataPath), { recursive: true });\n fs.writeFileSync(entryMetadataPath, JSON.stringify(data.metadata), 'utf8');\n fileStream = createWriteStream(entryPath);\n } catch (error: unknown) {\n callback(assetWriteError(error));\n return;\n }\n\n pipeline(data.stream, fileStream, (err) => {\n if (err) {\n callback(assetWriteError(err));\n return;\n }\n callback(null);\n });\n },\n });\n }\n}\n"],"names":["createLocalDirectoryDestinationProvider","options","LocalDirectoryDestinationProvider","setMetadata","target","metadata","bootstrap","diagnostics","fs","mkdir","recursive","results","file","path","close","rollback","rm","force","getMetadata","createSchemasWriteStream","filePathFactory","createFilePathFactory","entryStream","createDirectoryJsonlWriter","maxSizeJsonl","chain","stringer","createEntitiesWriteStream","createLinksWriteStream","createConfigurationWriteStream","createAssetsWriteStream","root","Writable","objectMode","write","data","_encoding","callback","filename","entryPath","join","entryMetadataPath","assetWriteError","cause","ProviderTransferError","details","error","Error","String","fileStream","mkdirSync","dirname","writeFileSync","JSON","stringify","createWriteStream","pipeline","stream","err","name","type","resolve","directory","message","report","createdAt","Date","origin","kind","source","writeFile"],"mappings":"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"}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import { createWriteStream } from 'fs';
|
|
3
|
+
import { Writable, pipeline } from 'stream';
|
|
4
|
+
import fs__default from 'fs-extra';
|
|
5
|
+
import { stringer } from 'stream-json/jsonl/Stringer';
|
|
6
|
+
import { chain } from 'stream-chain';
|
|
7
|
+
import { createDirectoryJsonlWriter } from './utils.mjs';
|
|
8
|
+
import { ProviderTransferError } from '../../../errors/providers.mjs';
|
|
9
|
+
import { createFilePathFactory } from '../../../file/providers/destination/utils.mjs';
|
|
10
|
+
|
|
11
|
+
function _class_private_field_loose_base(receiver, privateKey) {
|
|
12
|
+
if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) {
|
|
13
|
+
throw new TypeError("attempted to use private field on non-instance");
|
|
14
|
+
}
|
|
15
|
+
return receiver;
|
|
16
|
+
}
|
|
17
|
+
var id = 0;
|
|
18
|
+
function _class_private_field_loose_key(name) {
|
|
19
|
+
return "__private_" + id++ + "_" + name;
|
|
20
|
+
}
|
|
21
|
+
const createLocalDirectoryDestinationProvider = (options)=>{
|
|
22
|
+
return new LocalDirectoryDestinationProvider(options);
|
|
23
|
+
};
|
|
24
|
+
var _providersMetadata = /*#__PURE__*/ _class_private_field_loose_key("_providersMetadata"), _rootResolved = /*#__PURE__*/ _class_private_field_loose_key("_rootResolved"), _diagnostics = /*#__PURE__*/ _class_private_field_loose_key("_diagnostics"), _reportInfo = /*#__PURE__*/ _class_private_field_loose_key("_reportInfo"), _writeMetadata = /*#__PURE__*/ _class_private_field_loose_key("_writeMetadata");
|
|
25
|
+
class LocalDirectoryDestinationProvider {
|
|
26
|
+
setMetadata(target, metadata) {
|
|
27
|
+
_class_private_field_loose_base(this, _providersMetadata)[_providersMetadata][target] = metadata;
|
|
28
|
+
return this;
|
|
29
|
+
}
|
|
30
|
+
async bootstrap(diagnostics) {
|
|
31
|
+
_class_private_field_loose_base(this, _diagnostics)[_diagnostics] = diagnostics;
|
|
32
|
+
_class_private_field_loose_base(this, _reportInfo)[_reportInfo]('preparing directory export');
|
|
33
|
+
await fs__default.mkdir(_class_private_field_loose_base(this, _rootResolved)[_rootResolved], {
|
|
34
|
+
recursive: true
|
|
35
|
+
});
|
|
36
|
+
this.results.file = {
|
|
37
|
+
path: _class_private_field_loose_base(this, _rootResolved)[_rootResolved]
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
async close() {
|
|
41
|
+
await _class_private_field_loose_base(this, _writeMetadata)[_writeMetadata]();
|
|
42
|
+
}
|
|
43
|
+
async rollback() {
|
|
44
|
+
_class_private_field_loose_base(this, _reportInfo)[_reportInfo]('rolling back');
|
|
45
|
+
await fs__default.rm(_class_private_field_loose_base(this, _rootResolved)[_rootResolved], {
|
|
46
|
+
recursive: true,
|
|
47
|
+
force: true
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
getMetadata() {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
createSchemasWriteStream() {
|
|
54
|
+
_class_private_field_loose_base(this, _reportInfo)[_reportInfo]('creating schemas write stream');
|
|
55
|
+
const filePathFactory = createFilePathFactory('schemas');
|
|
56
|
+
const entryStream = createDirectoryJsonlWriter(_class_private_field_loose_base(this, _rootResolved)[_rootResolved], filePathFactory, this.options.file.maxSizeJsonl);
|
|
57
|
+
return chain([
|
|
58
|
+
stringer(),
|
|
59
|
+
entryStream
|
|
60
|
+
]);
|
|
61
|
+
}
|
|
62
|
+
createEntitiesWriteStream() {
|
|
63
|
+
_class_private_field_loose_base(this, _reportInfo)[_reportInfo]('creating entities write stream');
|
|
64
|
+
const filePathFactory = createFilePathFactory('entities');
|
|
65
|
+
const entryStream = createDirectoryJsonlWriter(_class_private_field_loose_base(this, _rootResolved)[_rootResolved], filePathFactory, this.options.file.maxSizeJsonl);
|
|
66
|
+
return chain([
|
|
67
|
+
stringer(),
|
|
68
|
+
entryStream
|
|
69
|
+
]);
|
|
70
|
+
}
|
|
71
|
+
createLinksWriteStream() {
|
|
72
|
+
_class_private_field_loose_base(this, _reportInfo)[_reportInfo]('creating links write stream');
|
|
73
|
+
const filePathFactory = createFilePathFactory('links');
|
|
74
|
+
const entryStream = createDirectoryJsonlWriter(_class_private_field_loose_base(this, _rootResolved)[_rootResolved], filePathFactory, this.options.file.maxSizeJsonl);
|
|
75
|
+
return chain([
|
|
76
|
+
stringer(),
|
|
77
|
+
entryStream
|
|
78
|
+
]);
|
|
79
|
+
}
|
|
80
|
+
createConfigurationWriteStream() {
|
|
81
|
+
_class_private_field_loose_base(this, _reportInfo)[_reportInfo]('creating configuration write stream');
|
|
82
|
+
const filePathFactory = createFilePathFactory('configuration');
|
|
83
|
+
const entryStream = createDirectoryJsonlWriter(_class_private_field_loose_base(this, _rootResolved)[_rootResolved], filePathFactory, this.options.file.maxSizeJsonl);
|
|
84
|
+
return chain([
|
|
85
|
+
stringer(),
|
|
86
|
+
entryStream
|
|
87
|
+
]);
|
|
88
|
+
}
|
|
89
|
+
createAssetsWriteStream() {
|
|
90
|
+
_class_private_field_loose_base(this, _reportInfo)[_reportInfo]('creating assets write stream');
|
|
91
|
+
const root = _class_private_field_loose_base(this, _rootResolved)[_rootResolved];
|
|
92
|
+
return new Writable({
|
|
93
|
+
objectMode: true,
|
|
94
|
+
write (data, _encoding, callback) {
|
|
95
|
+
const { filename } = data;
|
|
96
|
+
const entryPath = path.join(root, 'assets', 'uploads', filename);
|
|
97
|
+
const entryMetadataPath = path.join(root, 'assets', 'metadata', `${filename}.json`);
|
|
98
|
+
const assetWriteError = (cause)=>new ProviderTransferError(`Failed to write asset ${filename}`, {
|
|
99
|
+
details: {
|
|
100
|
+
error: cause instanceof Error ? cause : new Error(String(cause))
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
let fileStream;
|
|
104
|
+
try {
|
|
105
|
+
fs__default.mkdirSync(path.dirname(entryPath), {
|
|
106
|
+
recursive: true
|
|
107
|
+
});
|
|
108
|
+
fs__default.mkdirSync(path.dirname(entryMetadataPath), {
|
|
109
|
+
recursive: true
|
|
110
|
+
});
|
|
111
|
+
fs__default.writeFileSync(entryMetadataPath, JSON.stringify(data.metadata), 'utf8');
|
|
112
|
+
fileStream = createWriteStream(entryPath);
|
|
113
|
+
} catch (error) {
|
|
114
|
+
callback(assetWriteError(error));
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
pipeline(data.stream, fileStream, (err)=>{
|
|
118
|
+
if (err) {
|
|
119
|
+
callback(assetWriteError(err));
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
callback(null);
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
constructor(options){
|
|
128
|
+
Object.defineProperty(this, _reportInfo, {
|
|
129
|
+
value: reportInfo
|
|
130
|
+
});
|
|
131
|
+
Object.defineProperty(this, _writeMetadata, {
|
|
132
|
+
value: writeMetadata
|
|
133
|
+
});
|
|
134
|
+
Object.defineProperty(this, _providersMetadata, {
|
|
135
|
+
writable: true,
|
|
136
|
+
value: void 0
|
|
137
|
+
});
|
|
138
|
+
Object.defineProperty(this, _rootResolved, {
|
|
139
|
+
writable: true,
|
|
140
|
+
value: void 0
|
|
141
|
+
});
|
|
142
|
+
Object.defineProperty(this, _diagnostics, {
|
|
143
|
+
writable: true,
|
|
144
|
+
value: void 0
|
|
145
|
+
});
|
|
146
|
+
this.name = 'destination::local-directory';
|
|
147
|
+
this.type = 'destination';
|
|
148
|
+
this.results = {};
|
|
149
|
+
_class_private_field_loose_base(this, _providersMetadata)[_providersMetadata] = {};
|
|
150
|
+
this.options = options;
|
|
151
|
+
_class_private_field_loose_base(this, _rootResolved)[_rootResolved] = path.resolve(options.directory.path);
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
function reportInfo(message) {
|
|
155
|
+
_class_private_field_loose_base(this, _diagnostics)[_diagnostics]?.report({
|
|
156
|
+
details: {
|
|
157
|
+
createdAt: new Date(),
|
|
158
|
+
message,
|
|
159
|
+
origin: 'directory-destination-provider'
|
|
160
|
+
},
|
|
161
|
+
kind: 'info'
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
async function writeMetadata() {
|
|
165
|
+
_class_private_field_loose_base(this, _reportInfo)[_reportInfo]('writing metadata');
|
|
166
|
+
const metadata = _class_private_field_loose_base(this, _providersMetadata)[_providersMetadata].source;
|
|
167
|
+
if (metadata) {
|
|
168
|
+
const target = path.join(_class_private_field_loose_base(this, _rootResolved)[_rootResolved], 'metadata.json');
|
|
169
|
+
await fs__default.mkdir(path.dirname(target), {
|
|
170
|
+
recursive: true
|
|
171
|
+
});
|
|
172
|
+
await fs__default.writeFile(target, JSON.stringify(metadata, null, 2), 'utf8');
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
export { createLocalDirectoryDestinationProvider };
|
|
177
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../src/directory/providers/destination/index.ts"],"sourcesContent":["import path from 'path';\nimport { createWriteStream } from 'fs';\nimport { Writable, pipeline } from 'stream';\nimport fs from 'fs-extra';\nimport { stringer } from 'stream-json/jsonl/Stringer';\nimport { chain } from 'stream-chain';\n\nimport type {\n IAsset,\n IDestinationProvider,\n IDestinationProviderTransferResults,\n IMetadata,\n ProviderType,\n} from '../../../types';\nimport type { IDiagnosticReporter } from '../../../utils/diagnostic';\nimport { createDirectoryJsonlWriter, createFilePathFactory } from './utils';\nimport { ProviderTransferError } from '../../../errors/providers';\n\nexport interface ILocalDirectoryDestinationProviderOptions {\n directory: {\n /** Output root: unpacked Strapi export layout (metadata.json, entities/, …) */\n path: string;\n };\n file: {\n maxSizeJsonl?: number;\n };\n}\n\nexport interface ILocalDirectoryDestinationProviderTransferResults\n extends IDestinationProviderTransferResults {\n file?: {\n path?: string;\n };\n}\n\nexport const createLocalDirectoryDestinationProvider = (\n options: ILocalDirectoryDestinationProviderOptions\n) => {\n return new LocalDirectoryDestinationProvider(options);\n};\n\nclass LocalDirectoryDestinationProvider implements IDestinationProvider {\n name = 'destination::local-directory';\n\n type: ProviderType = 'destination';\n\n options: ILocalDirectoryDestinationProviderOptions;\n\n results: ILocalDirectoryDestinationProviderTransferResults = {};\n\n #providersMetadata: { source?: IMetadata; destination?: IMetadata } = {};\n\n #rootResolved: string;\n\n #diagnostics?: IDiagnosticReporter;\n\n constructor(options: ILocalDirectoryDestinationProviderOptions) {\n this.options = options;\n this.#rootResolved = path.resolve(options.directory.path);\n }\n\n #reportInfo(message: string) {\n this.#diagnostics?.report({\n details: {\n createdAt: new Date(),\n message,\n origin: 'directory-destination-provider',\n },\n kind: 'info',\n });\n }\n\n setMetadata(target: ProviderType, metadata: IMetadata): IDestinationProvider {\n this.#providersMetadata[target] = metadata;\n return this;\n }\n\n async bootstrap(diagnostics: IDiagnosticReporter): Promise<void> {\n this.#diagnostics = diagnostics;\n this.#reportInfo('preparing directory export');\n await fs.mkdir(this.#rootResolved, { recursive: true });\n this.results.file = { path: this.#rootResolved };\n }\n\n async close() {\n await this.#writeMetadata();\n }\n\n async rollback(): Promise<void> {\n this.#reportInfo('rolling back');\n await fs.rm(this.#rootResolved, { recursive: true, force: true });\n }\n\n getMetadata() {\n return null;\n }\n\n async #writeMetadata(): Promise<void> {\n this.#reportInfo('writing metadata');\n const metadata = this.#providersMetadata.source;\n if (metadata) {\n const target = path.join(this.#rootResolved, 'metadata.json');\n await fs.mkdir(path.dirname(target), { recursive: true });\n await fs.writeFile(target, JSON.stringify(metadata, null, 2), 'utf8');\n }\n }\n\n createSchemasWriteStream() {\n this.#reportInfo('creating schemas write stream');\n const filePathFactory = createFilePathFactory('schemas');\n const entryStream = createDirectoryJsonlWriter(\n this.#rootResolved,\n filePathFactory,\n this.options.file.maxSizeJsonl\n );\n return chain([stringer(), entryStream]);\n }\n\n createEntitiesWriteStream(): Writable {\n this.#reportInfo('creating entities write stream');\n const filePathFactory = createFilePathFactory('entities');\n const entryStream = createDirectoryJsonlWriter(\n this.#rootResolved,\n filePathFactory,\n this.options.file.maxSizeJsonl\n );\n return chain([stringer(), entryStream]);\n }\n\n createLinksWriteStream(): Writable {\n this.#reportInfo('creating links write stream');\n const filePathFactory = createFilePathFactory('links');\n const entryStream = createDirectoryJsonlWriter(\n this.#rootResolved,\n filePathFactory,\n this.options.file.maxSizeJsonl\n );\n return chain([stringer(), entryStream]);\n }\n\n createConfigurationWriteStream(): Writable {\n this.#reportInfo('creating configuration write stream');\n const filePathFactory = createFilePathFactory('configuration');\n const entryStream = createDirectoryJsonlWriter(\n this.#rootResolved,\n filePathFactory,\n this.options.file.maxSizeJsonl\n );\n return chain([stringer(), entryStream]);\n }\n\n createAssetsWriteStream(): Writable {\n this.#reportInfo('creating assets write stream');\n const root = this.#rootResolved;\n\n return new Writable({\n objectMode: true,\n write(data: IAsset, _encoding, callback) {\n const { filename } = data;\n const entryPath = path.join(root, 'assets', 'uploads', filename);\n const entryMetadataPath = path.join(root, 'assets', 'metadata', `${filename}.json`);\n\n const assetWriteError = (cause: unknown) =>\n new ProviderTransferError(`Failed to write asset ${filename}`, {\n details: {\n error: cause instanceof Error ? cause : new Error(String(cause)),\n },\n });\n\n let fileStream: ReturnType<typeof createWriteStream>;\n\n try {\n fs.mkdirSync(path.dirname(entryPath), { recursive: true });\n fs.mkdirSync(path.dirname(entryMetadataPath), { recursive: true });\n fs.writeFileSync(entryMetadataPath, JSON.stringify(data.metadata), 'utf8');\n fileStream = createWriteStream(entryPath);\n } catch (error: unknown) {\n callback(assetWriteError(error));\n return;\n }\n\n pipeline(data.stream, fileStream, (err) => {\n if (err) {\n callback(assetWriteError(err));\n return;\n }\n callback(null);\n });\n },\n });\n }\n}\n"],"names":["createLocalDirectoryDestinationProvider","options","LocalDirectoryDestinationProvider","setMetadata","target","metadata","bootstrap","diagnostics","fs","mkdir","recursive","results","file","path","close","rollback","rm","force","getMetadata","createSchemasWriteStream","filePathFactory","createFilePathFactory","entryStream","createDirectoryJsonlWriter","maxSizeJsonl","chain","stringer","createEntitiesWriteStream","createLinksWriteStream","createConfigurationWriteStream","createAssetsWriteStream","root","Writable","objectMode","write","data","_encoding","callback","filename","entryPath","join","entryMetadataPath","assetWriteError","cause","ProviderTransferError","details","error","Error","String","fileStream","mkdirSync","dirname","writeFileSync","JSON","stringify","createWriteStream","pipeline","stream","err","name","type","resolve","directory","message","report","createdAt","Date","origin","kind","source","writeFile"],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Writable } from 'stream';
|
|
2
|
+
import { createFilePathFactory } from '../../../file/providers/destination/utils';
|
|
3
|
+
export { createFilePathFactory };
|
|
4
|
+
/**
|
|
5
|
+
* JSONL writer that mirrors {@link createTarEntryStream} but writes files under a root directory.
|
|
6
|
+
*/
|
|
7
|
+
export declare const createDirectoryJsonlWriter: (rootDir: string, pathFactory: (index?: number) => string, maxSize?: number) => Writable;
|
|
8
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var fs = require('fs');
|
|
4
|
+
var path = require('path');
|
|
5
|
+
var stream = require('stream');
|
|
6
|
+
|
|
7
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
8
|
+
|
|
9
|
+
var path__default = /*#__PURE__*/_interopDefault(path);
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* JSONL writer that mirrors {@link createTarEntryStream} but writes files under a root directory.
|
|
13
|
+
*/ const createDirectoryJsonlWriter = (rootDir, pathFactory, maxSize = 2.56e8)=>{
|
|
14
|
+
let fileIndex = 0;
|
|
15
|
+
let buffer = '';
|
|
16
|
+
const resolvePath = (posixName)=>path__default.default.join(rootDir, ...posixName.split('/'));
|
|
17
|
+
const flush = async ()=>{
|
|
18
|
+
if (!buffer) {
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
fileIndex += 1;
|
|
22
|
+
const name = pathFactory(fileIndex);
|
|
23
|
+
const targetPath = resolvePath(name);
|
|
24
|
+
await fs.promises.mkdir(path__default.default.dirname(targetPath), {
|
|
25
|
+
recursive: true
|
|
26
|
+
});
|
|
27
|
+
await fs.promises.writeFile(targetPath, buffer, 'utf8');
|
|
28
|
+
buffer = '';
|
|
29
|
+
};
|
|
30
|
+
const push = (chunk)=>{
|
|
31
|
+
buffer += chunk;
|
|
32
|
+
};
|
|
33
|
+
return new stream.Writable({
|
|
34
|
+
async final (callback) {
|
|
35
|
+
try {
|
|
36
|
+
await flush();
|
|
37
|
+
callback();
|
|
38
|
+
} catch (err) {
|
|
39
|
+
callback(err instanceof Error ? err : new Error(String(err)));
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
async destroy (err, callback) {
|
|
43
|
+
await flush();
|
|
44
|
+
callback(err);
|
|
45
|
+
},
|
|
46
|
+
async write (chunk, _encoding, callback) {
|
|
47
|
+
const size = chunk.length;
|
|
48
|
+
if (chunk.length > maxSize) {
|
|
49
|
+
callback(new Error(`payload too large: ${chunk.length}>${maxSize}`));
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
if (buffer.length + size > maxSize) {
|
|
53
|
+
await flush();
|
|
54
|
+
}
|
|
55
|
+
push(chunk);
|
|
56
|
+
callback(null);
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
exports.createDirectoryJsonlWriter = createDirectoryJsonlWriter;
|
|
62
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../src/directory/providers/destination/utils.ts"],"sourcesContent":["import { promises as fsp } from 'fs';\nimport path from 'path';\nimport { Writable } from 'stream';\n\nimport { createFilePathFactory } from '../../../file/providers/destination/utils';\n\nexport { createFilePathFactory };\n\n/**\n * JSONL writer that mirrors {@link createTarEntryStream} but writes files under a root directory.\n */\nexport const createDirectoryJsonlWriter = (\n rootDir: string,\n pathFactory: (index?: number) => string,\n maxSize = 2.56e8\n) => {\n let fileIndex = 0;\n let buffer = '';\n\n const resolvePath = (posixName: string) => path.join(rootDir, ...posixName.split('/'));\n\n const flush = async () => {\n if (!buffer) {\n return;\n }\n\n fileIndex += 1;\n const name = pathFactory(fileIndex);\n const targetPath = resolvePath(name);\n await fsp.mkdir(path.dirname(targetPath), { recursive: true });\n await fsp.writeFile(targetPath, buffer, 'utf8');\n buffer = '';\n };\n\n const push = (chunk: string | Buffer) => {\n buffer += chunk;\n };\n\n return new Writable({\n async final(callback) {\n try {\n await flush();\n callback();\n } catch (err: unknown) {\n callback(err instanceof Error ? err : new Error(String(err)));\n }\n },\n\n async destroy(err, callback) {\n await flush();\n callback(err);\n },\n\n async write(chunk, _encoding, callback) {\n const size = chunk.length;\n\n if (chunk.length > maxSize) {\n callback(new Error(`payload too large: ${chunk.length}>${maxSize}`));\n return;\n }\n\n if (buffer.length + size > maxSize) {\n await flush();\n }\n\n push(chunk);\n\n callback(null);\n },\n });\n};\n"],"names":["createDirectoryJsonlWriter","rootDir","pathFactory","maxSize","fileIndex","buffer","resolvePath","posixName","path","join","split","flush","name","targetPath","fsp","mkdir","dirname","recursive","writeFile","push","chunk","Writable","final","callback","err","Error","String","destroy","write","_encoding","size","length"],"mappings":";;;;;;;;;;AAQA;;AAEC,IACM,MAAMA,0BAAAA,GAA6B,CACxCC,OAAAA,EACAC,WAAAA,EACAC,UAAU,MAAM,GAAA;AAEhB,IAAA,IAAIC,SAAAA,GAAY,CAAA;AAChB,IAAA,IAAIC,MAAAA,GAAS,EAAA;IAEb,MAAMC,WAAAA,GAAc,CAACC,SAAAA,GAAsBC,qBAAAA,CAAKC,IAAI,CAACR,OAAAA,EAAAA,GAAYM,SAAAA,CAAUG,KAAK,CAAC,GAAA,CAAA,CAAA;AAEjF,IAAA,MAAMC,KAAAA,GAAQ,UAAA;AACZ,QAAA,IAAI,CAACN,MAAAA,EAAQ;AACX,YAAA;AACF,QAAA;QAEAD,SAAAA,IAAa,CAAA;AACb,QAAA,MAAMQ,OAAOV,WAAAA,CAAYE,SAAAA,CAAAA;AACzB,QAAA,MAAMS,aAAaP,WAAAA,CAAYM,IAAAA,CAAAA;AAC/B,QAAA,MAAME,YAAIC,KAAK,CAACP,qBAAAA,CAAKQ,OAAO,CAACH,UAAAA,CAAAA,EAAa;YAAEI,SAAAA,EAAW;AAAK,SAAA,CAAA;AAC5D,QAAA,MAAMH,WAAAA,CAAII,SAAS,CAACL,UAAAA,EAAYR,MAAAA,EAAQ,MAAA,CAAA;QACxCA,MAAAA,GAAS,EAAA;AACX,IAAA,CAAA;AAEA,IAAA,MAAMc,OAAO,CAACC,KAAAA,GAAAA;QACZf,MAAAA,IAAUe,KAAAA;AACZ,IAAA,CAAA;AAEA,IAAA,OAAO,IAAIC,eAAAA,CAAS;AAClB,QAAA,MAAMC,OAAMC,QAAQ,EAAA;YAClB,IAAI;gBACF,MAAMZ,KAAAA,EAAAA;AACNY,gBAAAA,QAAAA,EAAAA;AACF,YAAA,CAAA,CAAE,OAAOC,GAAAA,EAAc;AACrBD,gBAAAA,QAAAA,CAASC,GAAAA,YAAeC,KAAAA,GAAQD,GAAAA,GAAM,IAAIC,MAAMC,MAAAA,CAAOF,GAAAA,CAAAA,CAAAA,CAAAA;AACzD,YAAA;AACF,QAAA,CAAA;QAEA,MAAMG,OAAAA,CAAAA,CAAQH,GAAG,EAAED,QAAQ,EAAA;YACzB,MAAMZ,KAAAA,EAAAA;YACNY,QAAAA,CAASC,GAAAA,CAAAA;AACX,QAAA,CAAA;AAEA,QAAA,MAAMI,KAAAA,CAAAA,CAAMR,KAAK,EAAES,SAAS,EAAEN,QAAQ,EAAA;YACpC,MAAMO,IAAAA,GAAOV,MAAMW,MAAM;YAEzB,IAAIX,KAAAA,CAAMW,MAAM,GAAG5B,OAAAA,EAAS;gBAC1BoB,QAAAA,CAAS,IAAIE,KAAAA,CAAM,CAAC,mBAAmB,EAAEL,MAAMW,MAAM,CAAC,CAAC,EAAE5B,OAAAA,CAAAA,CAAS,CAAA,CAAA;AAClE,gBAAA;AACF,YAAA;AAEA,YAAA,IAAIE,MAAAA,CAAO0B,MAAM,GAAGD,IAAAA,GAAO3B,OAAAA,EAAS;gBAClC,MAAMQ,KAAAA,EAAAA;AACR,YAAA;YAEAQ,IAAAA,CAAKC,KAAAA,CAAAA;YAELG,QAAAA,CAAS,IAAA,CAAA;AACX,QAAA;AACF,KAAA,CAAA;AACF;;;;"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { promises } from 'fs';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import { Writable } from 'stream';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* JSONL writer that mirrors {@link createTarEntryStream} but writes files under a root directory.
|
|
7
|
+
*/ const createDirectoryJsonlWriter = (rootDir, pathFactory, maxSize = 2.56e8)=>{
|
|
8
|
+
let fileIndex = 0;
|
|
9
|
+
let buffer = '';
|
|
10
|
+
const resolvePath = (posixName)=>path.join(rootDir, ...posixName.split('/'));
|
|
11
|
+
const flush = async ()=>{
|
|
12
|
+
if (!buffer) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
fileIndex += 1;
|
|
16
|
+
const name = pathFactory(fileIndex);
|
|
17
|
+
const targetPath = resolvePath(name);
|
|
18
|
+
await promises.mkdir(path.dirname(targetPath), {
|
|
19
|
+
recursive: true
|
|
20
|
+
});
|
|
21
|
+
await promises.writeFile(targetPath, buffer, 'utf8');
|
|
22
|
+
buffer = '';
|
|
23
|
+
};
|
|
24
|
+
const push = (chunk)=>{
|
|
25
|
+
buffer += chunk;
|
|
26
|
+
};
|
|
27
|
+
return new Writable({
|
|
28
|
+
async final (callback) {
|
|
29
|
+
try {
|
|
30
|
+
await flush();
|
|
31
|
+
callback();
|
|
32
|
+
} catch (err) {
|
|
33
|
+
callback(err instanceof Error ? err : new Error(String(err)));
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
async destroy (err, callback) {
|
|
37
|
+
await flush();
|
|
38
|
+
callback(err);
|
|
39
|
+
},
|
|
40
|
+
async write (chunk, _encoding, callback) {
|
|
41
|
+
const size = chunk.length;
|
|
42
|
+
if (chunk.length > maxSize) {
|
|
43
|
+
callback(new Error(`payload too large: ${chunk.length}>${maxSize}`));
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
if (buffer.length + size > maxSize) {
|
|
47
|
+
await flush();
|
|
48
|
+
}
|
|
49
|
+
push(chunk);
|
|
50
|
+
callback(null);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export { createDirectoryJsonlWriter };
|
|
56
|
+
//# sourceMappingURL=utils.mjs.map
|