@strapi/data-transfer 4.14.0-alpha.0 → 4.14.0

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.
Files changed (92) hide show
  1. package/dist/commands/commander.d.ts +35 -0
  2. package/dist/commands/commander.js +138 -0
  3. package/dist/commands/commander.js.map +1 -0
  4. package/dist/commands/data-transfer.d.ts +135 -0
  5. package/dist/commands/data-transfer.js +359 -0
  6. package/dist/commands/data-transfer.js.map +1 -0
  7. package/dist/commands/export/action.d.ts +20 -0
  8. package/dist/commands/export/action.js +156 -0
  9. package/dist/commands/export/action.js.map +1 -0
  10. package/dist/commands/export/command.d.ts +8 -0
  11. package/dist/commands/export/command.js +30 -0
  12. package/dist/commands/export/command.js.map +1 -0
  13. package/dist/commands/helpers.d.ts +30 -0
  14. package/dist/commands/helpers.js +87 -0
  15. package/dist/commands/helpers.js.map +1 -0
  16. package/dist/commands/import/action.d.ts +19 -0
  17. package/dist/commands/import/action.js +139 -0
  18. package/dist/commands/import/action.js.map +1 -0
  19. package/dist/commands/import/command.d.ts +8 -0
  20. package/dist/commands/import/command.js +75 -0
  21. package/dist/commands/import/command.js.map +1 -0
  22. package/dist/commands/index.d.ts +3 -0
  23. package/dist/commands/index.js +13 -0
  24. package/dist/commands/index.js.map +1 -0
  25. package/dist/commands/transfer/action.d.ts +18 -0
  26. package/dist/commands/transfer/action.js +161 -0
  27. package/dist/commands/transfer/action.js.map +1 -0
  28. package/dist/commands/transfer/command.d.ts +8 -0
  29. package/dist/commands/transfer/command.js +69 -0
  30. package/dist/commands/transfer/command.js.map +1 -0
  31. package/dist/engine/index.d.ts +2 -1
  32. package/dist/engine/index.js +330 -297
  33. package/dist/engine/index.js.map +1 -1
  34. package/dist/engine/validation/schemas/index.js.map +1 -1
  35. package/dist/errors/base.js +3 -0
  36. package/dist/errors/base.js.map +1 -1
  37. package/dist/file/providers/destination/index.js +51 -55
  38. package/dist/file/providers/destination/index.js.map +1 -1
  39. package/dist/file/providers/source/index.d.ts +1 -1
  40. package/dist/file/providers/source/index.js +111 -119
  41. package/dist/file/providers/source/index.js.map +1 -1
  42. package/dist/index.d.ts +1 -0
  43. package/dist/index.js +2 -1
  44. package/dist/index.js.map +1 -1
  45. package/dist/strapi/providers/local-destination/index.d.ts +4 -3
  46. package/dist/strapi/providers/local-destination/index.js +120 -125
  47. package/dist/strapi/providers/local-destination/index.js.map +1 -1
  48. package/dist/strapi/providers/local-destination/strategies/restore/configuration.d.ts +3 -2
  49. package/dist/strapi/providers/local-destination/strategies/restore/configuration.js.map +1 -1
  50. package/dist/strapi/providers/local-destination/strategies/restore/entities.d.ts +2 -2
  51. package/dist/strapi/providers/local-destination/strategies/restore/entities.js +5 -2
  52. package/dist/strapi/providers/local-destination/strategies/restore/entities.js.map +1 -1
  53. package/dist/strapi/providers/local-destination/strategies/restore/index.d.ts +2 -2
  54. package/dist/strapi/providers/local-destination/strategies/restore/index.js.map +1 -1
  55. package/dist/strapi/providers/local-destination/strategies/restore/links.d.ts +2 -1
  56. package/dist/strapi/providers/local-destination/strategies/restore/links.js.map +1 -1
  57. package/dist/strapi/providers/local-source/assets.d.ts +2 -1
  58. package/dist/strapi/providers/local-source/assets.js +1 -1
  59. package/dist/strapi/providers/local-source/assets.js.map +1 -1
  60. package/dist/strapi/providers/local-source/configuration.d.ts +2 -1
  61. package/dist/strapi/providers/local-source/configuration.js.map +1 -1
  62. package/dist/strapi/providers/local-source/entities.d.ts +2 -1
  63. package/dist/strapi/providers/local-source/entities.js.map +1 -1
  64. package/dist/strapi/providers/local-source/index.d.ts +4 -3
  65. package/dist/strapi/providers/local-source/index.js +5 -3
  66. package/dist/strapi/providers/local-source/index.js.map +1 -1
  67. package/dist/strapi/providers/local-source/links.d.ts +2 -1
  68. package/dist/strapi/providers/local-source/links.js.map +1 -1
  69. package/dist/strapi/providers/remote-destination/index.d.ts +1 -1
  70. package/dist/strapi/providers/remote-destination/index.js +95 -94
  71. package/dist/strapi/providers/remote-destination/index.js.map +1 -1
  72. package/dist/strapi/providers/remote-source/index.d.ts +1 -1
  73. package/dist/strapi/providers/remote-source/index.js +93 -93
  74. package/dist/strapi/providers/remote-source/index.js.map +1 -1
  75. package/dist/strapi/providers/utils.d.ts +2 -2
  76. package/dist/strapi/queries/entity.d.ts +2 -1
  77. package/dist/strapi/queries/entity.js +4 -4
  78. package/dist/strapi/queries/entity.js.map +1 -1
  79. package/dist/strapi/queries/link.d.ts +2 -1
  80. package/dist/strapi/queries/link.js +13 -4
  81. package/dist/strapi/queries/link.js.map +1 -1
  82. package/dist/strapi/remote/handlers/pull.js.map +1 -1
  83. package/dist/strapi/remote/handlers/push.js.map +1 -1
  84. package/dist/utils/components.d.ts +22 -0
  85. package/dist/utils/components.js +381 -0
  86. package/dist/utils/components.js.map +1 -0
  87. package/dist/utils/providers.d.ts +2 -1
  88. package/dist/utils/providers.js.map +1 -1
  89. package/dist/utils/schema.d.ts +1 -1
  90. package/dist/utils/transaction.d.ts +2 -2
  91. package/dist/utils/transaction.js.map +1 -1
  92. package/package.json +17 -10
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.transfer = exports.import = exports.export = void 0;
7
+ var command_1 = require("./export/command");
8
+ Object.defineProperty(exports, "export", { enumerable: true, get: function () { return __importDefault(command_1).default; } });
9
+ var command_2 = require("./import/command");
10
+ Object.defineProperty(exports, "import", { enumerable: true, get: function () { return __importDefault(command_2).default; } });
11
+ var command_3 = require("./transfer/command");
12
+ Object.defineProperty(exports, "transfer", { enumerable: true, get: function () { return __importDefault(command_3).default; } });
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAqD;AAA5C,kHAAA,OAAO,OAAU;AAC1B,4CAAqD;AAA5C,kHAAA,OAAO,OAAU;AAC1B,8CAAyD;AAAhD,oHAAA,OAAO,OAAY"}
@@ -0,0 +1,18 @@
1
+ import * as engineDatatransfer from '../../engine';
2
+ interface CmdOptions {
3
+ from?: URL;
4
+ fromToken: string;
5
+ to: URL;
6
+ toToken: string;
7
+ only?: (keyof engineDatatransfer.TransferGroupFilter)[];
8
+ exclude?: (keyof engineDatatransfer.TransferGroupFilter)[];
9
+ throttle?: number;
10
+ force?: boolean;
11
+ }
12
+ /**
13
+ * Transfer command.
14
+ *
15
+ * Transfers data between local Strapi and remote Strapi instances
16
+ */
17
+ declare const _default: (opts: CmdOptions) => Promise<void>;
18
+ export default _default;
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const fp_1 = require("lodash/fp");
27
+ const engineDatatransfer = __importStar(require("../../engine"));
28
+ const strapiDatatransfer = __importStar(require("../../strapi"));
29
+ const data_transfer_1 = require("../data-transfer");
30
+ const helpers_1 = require("../helpers");
31
+ const { createTransferEngine } = engineDatatransfer;
32
+ const { providers: { createRemoteStrapiDestinationProvider, createLocalStrapiSourceProvider, createLocalStrapiDestinationProvider, createRemoteStrapiSourceProvider, }, } = strapiDatatransfer;
33
+ /**
34
+ * Transfer command.
35
+ *
36
+ * Transfers data between local Strapi and remote Strapi instances
37
+ */
38
+ exports.default = async (opts) => {
39
+ // Validate inputs from Commander
40
+ if (!(0, fp_1.isObject)(opts)) {
41
+ (0, helpers_1.exitWith)(1, 'Could not parse command arguments');
42
+ }
43
+ if (!(opts.from || opts.to) || (opts.from && opts.to)) {
44
+ (0, helpers_1.exitWith)(1, 'Exactly one source (from) or destination (to) option must be provided');
45
+ }
46
+ const strapi = await (0, data_transfer_1.createStrapiInstance)();
47
+ let source;
48
+ let destination;
49
+ // if no URL provided, use local Strapi
50
+ if (!opts.from) {
51
+ source = createLocalStrapiSourceProvider({
52
+ getStrapi: () => strapi,
53
+ });
54
+ }
55
+ // if URL provided, set up a remote source provider
56
+ else {
57
+ if (!opts.fromToken) {
58
+ (0, helpers_1.exitWith)(1, 'Missing token for remote destination');
59
+ }
60
+ source = createRemoteStrapiSourceProvider({
61
+ getStrapi: () => strapi,
62
+ url: opts.from,
63
+ auth: {
64
+ type: 'token',
65
+ token: opts.fromToken,
66
+ },
67
+ });
68
+ }
69
+ // if no URL provided, use local Strapi
70
+ if (!opts.to) {
71
+ destination = createLocalStrapiDestinationProvider({
72
+ getStrapi: () => strapi,
73
+ strategy: 'restore',
74
+ restore: (0, data_transfer_1.parseRestoreFromOptions)(opts),
75
+ });
76
+ }
77
+ // if URL provided, set up a remote destination provider
78
+ else {
79
+ if (!opts.toToken) {
80
+ (0, helpers_1.exitWith)(1, 'Missing token for remote destination');
81
+ }
82
+ destination = createRemoteStrapiDestinationProvider({
83
+ url: opts.to,
84
+ auth: {
85
+ type: 'token',
86
+ token: opts.toToken,
87
+ },
88
+ strategy: 'restore',
89
+ restore: (0, data_transfer_1.parseRestoreFromOptions)(opts),
90
+ });
91
+ }
92
+ if (!source || !destination) {
93
+ (0, helpers_1.exitWith)(1, 'Could not create providers');
94
+ }
95
+ const engine = createTransferEngine(source, destination, {
96
+ versionStrategy: 'exact',
97
+ schemaStrategy: 'strict',
98
+ exclude: opts.exclude,
99
+ only: opts.only,
100
+ throttle: opts.throttle,
101
+ transforms: {
102
+ links: [
103
+ {
104
+ filter(link) {
105
+ return (!data_transfer_1.DEFAULT_IGNORED_CONTENT_TYPES.includes(link.left.type) &&
106
+ !data_transfer_1.DEFAULT_IGNORED_CONTENT_TYPES.includes(link.right.type));
107
+ },
108
+ },
109
+ ],
110
+ entities: [
111
+ {
112
+ filter(entity) {
113
+ return !data_transfer_1.DEFAULT_IGNORED_CONTENT_TYPES.includes(entity.type);
114
+ },
115
+ },
116
+ ],
117
+ },
118
+ });
119
+ engine.diagnostics.onDiagnostic((0, data_transfer_1.formatDiagnostic)('transfer'));
120
+ const progress = engine.progress.stream;
121
+ const { updateLoader } = (0, data_transfer_1.loadersFactory)();
122
+ engine.onSchemaDiff((0, data_transfer_1.getDiffHandler)(engine, { force: opts.force, action: 'transfer' }));
123
+ engine.addErrorHandler('ASSETS_DIRECTORY_ERR', (0, data_transfer_1.getAssetsBackupHandler)(engine, { force: opts.force, action: 'transfer' }));
124
+ progress.on(`stage::start`, ({ stage, data }) => {
125
+ updateLoader(stage, data).start();
126
+ });
127
+ progress.on('stage::finish', ({ stage, data }) => {
128
+ updateLoader(stage, data).succeed();
129
+ });
130
+ progress.on('stage::progress', ({ stage, data }) => {
131
+ updateLoader(stage, data);
132
+ });
133
+ progress.on('stage::error', ({ stage, data }) => {
134
+ updateLoader(stage, data).fail();
135
+ });
136
+ progress.on('transfer::start', async () => {
137
+ console.log(`Starting transfer...`);
138
+ await strapi.telemetry.send('didDEITSProcessStart', (0, data_transfer_1.getTransferTelemetryPayload)(engine));
139
+ });
140
+ let results;
141
+ try {
142
+ // Abort transfer if user interrupts process
143
+ (0, data_transfer_1.setSignalHandler)(() => (0, data_transfer_1.abortTransfer)({ engine, strapi }));
144
+ results = await engine.transfer();
145
+ // Note: we need to await telemetry or else the process ends before it is sent
146
+ await strapi.telemetry.send('didDEITSProcessFinish', (0, data_transfer_1.getTransferTelemetryPayload)(engine));
147
+ try {
148
+ const table = (0, data_transfer_1.buildTransferTable)(results.engine);
149
+ console.log(table?.toString());
150
+ }
151
+ catch (e) {
152
+ console.error('There was an error displaying the results of the transfer.');
153
+ }
154
+ (0, helpers_1.exitWith)(0, (0, data_transfer_1.exitMessageText)('transfer'));
155
+ }
156
+ catch (e) {
157
+ await strapi.telemetry.send('didDEITSProcessFail', (0, data_transfer_1.getTransferTelemetryPayload)(engine));
158
+ (0, helpers_1.exitWith)(1, (0, data_transfer_1.exitMessageText)('transfer', true));
159
+ }
160
+ };
161
+ //# sourceMappingURL=action.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.js","sourceRoot":"","sources":["../../../src/commands/transfer/action.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * `$ strapi transfer`
4
+ */
5
+ declare const command: ({ command }: {
6
+ command: Command;
7
+ }) => void;
8
+ export default command;
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const inquirer_1 = __importDefault(require("inquirer"));
7
+ const commander_1 = require("commander");
8
+ const commander_2 = require("../commander");
9
+ const helpers_1 = require("../helpers");
10
+ const data_transfer_1 = require("../data-transfer");
11
+ const action_1 = __importDefault(require("./action"));
12
+ /**
13
+ * `$ strapi transfer`
14
+ */
15
+ const command = ({ command }) => {
16
+ command
17
+ .command('transfer')
18
+ .description('Transfer data from one source to another')
19
+ .allowExcessArguments(false)
20
+ .addOption(new commander_1.Option('--from <sourceURL>', `URL of the remote Strapi instance to get data from`).argParser(commander_2.parseURL))
21
+ .addOption(new commander_1.Option('--from-token <token>', `Transfer token for the remote Strapi source`))
22
+ .addOption(new commander_1.Option('--to <destinationURL>', `URL of the remote Strapi instance to send data to`).argParser(commander_2.parseURL))
23
+ .addOption(new commander_1.Option('--to-token <token>', `Transfer token for the remote Strapi destination`))
24
+ .addOption(commander_2.forceOption)
25
+ .addOption(data_transfer_1.excludeOption)
26
+ .addOption(data_transfer_1.onlyOption)
27
+ .addOption(data_transfer_1.throttleOption)
28
+ .hook('preAction', data_transfer_1.validateExcludeOnly)
29
+ .hook('preAction', (0, helpers_1.ifOptions)((opts) => !(opts.from || opts.to) || (opts.from && opts.to), async () => (0, helpers_1.exitWith)(1, 'Exactly one remote source (from) or destination (to) option must be provided')))
30
+ // If --from is used, validate the URL and token
31
+ .hook('preAction', (0, helpers_1.ifOptions)((opts) => opts.from, async (thisCommand) => {
32
+ (0, helpers_1.assertUrlHasProtocol)(thisCommand.opts().from, ['https:', 'http:']);
33
+ if (!thisCommand.opts().fromToken) {
34
+ const answers = await inquirer_1.default.prompt([
35
+ {
36
+ type: 'password',
37
+ message: 'Please enter your transfer token for the remote Strapi source',
38
+ name: 'fromToken',
39
+ },
40
+ ]);
41
+ if (!answers.fromToken?.length) {
42
+ (0, helpers_1.exitWith)(1, 'No token provided for remote source, aborting transfer.');
43
+ }
44
+ thisCommand.opts().fromToken = answers.fromToken;
45
+ }
46
+ await (0, commander_2.getCommanderConfirmMessage)('The transfer will delete all the local Strapi assets and its database. Are you sure you want to proceed?', { failMessage: 'Transfer process aborted' })(thisCommand);
47
+ }))
48
+ // If --to is used, validate the URL, token, and confirm restore
49
+ .hook('preAction', (0, helpers_1.ifOptions)((opts) => opts.to, async (thisCommand) => {
50
+ (0, helpers_1.assertUrlHasProtocol)(thisCommand.opts().to, ['https:', 'http:']);
51
+ if (!thisCommand.opts().toToken) {
52
+ const answers = await inquirer_1.default.prompt([
53
+ {
54
+ type: 'password',
55
+ message: 'Please enter your transfer token for the remote Strapi destination',
56
+ name: 'toToken',
57
+ },
58
+ ]);
59
+ if (!answers.toToken?.length) {
60
+ (0, helpers_1.exitWith)(1, 'No token provided for remote destination, aborting transfer.');
61
+ }
62
+ thisCommand.opts().toToken = answers.toToken;
63
+ }
64
+ await (0, commander_2.getCommanderConfirmMessage)('The transfer will delete existing data from the remote Strapi! Are you sure you want to proceed?', { failMessage: 'Transfer process aborted' })(thisCommand);
65
+ }))
66
+ .action(action_1.default);
67
+ };
68
+ exports.default = command;
69
+ //# sourceMappingURL=command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/commands/transfer/command.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  import { PassThrough } from 'stream';
3
- import type { IDestinationProvider, ISourceProvider, ITransferEngine, ITransferEngineOptions, TransferProgress, ITransferResults, TransferStage, TransferFilters, TransferFilterPreset, SchemaDiffHandler, ErrorHandler, ErrorCode } from '../../types';
3
+ import type { IDestinationProvider, ISourceProvider, ITransferEngine, ITransferEngineOptions, TransferProgress, ITransferResults, TransferStage, TransferFilters, TransferFilterPreset, SchemaDiffHandler, SchemaDiffHandlerContext, ErrorHandler, ErrorHandlerContext, ErrorCode } from '../../types';
4
4
  import { IDiagnosticReporter, ErrorDiagnosticSeverity } from './diagnostic';
5
5
  export declare const TRANSFER_STAGES: ReadonlyArray<TransferStage>;
6
6
  export type TransferGroupFilter = Record<TransferFilterPreset, TransferFilters>;
@@ -61,4 +61,5 @@ declare class TransferEngine<S extends ISourceProvider = ISourceProvider, D exte
61
61
  transferConfiguration(): Promise<void>;
62
62
  }
63
63
  export declare const createTransferEngine: <S extends ISourceProvider, D extends IDestinationProvider>(sourceProvider: S, destinationProvider: D, options: ITransferEngineOptions) => TransferEngine<S, D>;
64
+ export type { TransferEngine, ITransferEngine, ITransferEngineOptions, ISourceProvider, IDestinationProvider, TransferStage, TransferFilterPreset, ErrorHandlerContext, SchemaDiffHandlerContext, ITransferResults, };
64
65
  export * as errors from './errors';