@squiz/dxp-cli-next 5.33.0-develop.5 → 5.33.0-develop.6
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/bin/dxp.js +6 -1
- package/dist/dxp.js +4319 -0
- package/package.json +37 -29
- package/lib/ApiService.d.ts +0 -39
- package/lib/ApiService.js +0 -120
- package/lib/ApiService.spec.d.ts +0 -1
- package/lib/ApiService.spec.js +0 -182
- package/lib/ApplicationConfig.d.ts +0 -7
- package/lib/ApplicationConfig.js +0 -38
- package/lib/ApplicationConfig.spec.d.ts +0 -1
- package/lib/ApplicationConfig.spec.js +0 -84
- package/lib/ApplicationStore.d.ts +0 -13
- package/lib/ApplicationStore.js +0 -53
- package/lib/__tests__/cmp/dev-mode.spec.d.ts +0 -1
- package/lib/__tests__/cmp/dev-mode.spec.js +0 -54
- package/lib/__tests__/helpers.d.ts +0 -17
- package/lib/__tests__/helpers.js +0 -54
- package/lib/__tests__/integration/main.spec.d.ts +0 -1
- package/lib/__tests__/integration/main.spec.js +0 -45
- package/lib/__tests__/smoke/validate.spec.d.ts +0 -1
- package/lib/__tests__/smoke/validate.spec.js +0 -37
- package/lib/__tests__/unit/cli.d.ts +0 -0
- package/lib/__tests__/unit/cli.js +0 -7
- package/lib/auth/index.d.ts +0 -3
- package/lib/auth/index.js +0 -14
- package/lib/auth/login/login.d.ts +0 -22
- package/lib/auth/login/login.js +0 -268
- package/lib/auth/login/login.spec.d.ts +0 -1
- package/lib/auth/login/login.spec.js +0 -179
- package/lib/auth/logout/logout.d.ts +0 -3
- package/lib/auth/logout/logout.js +0 -115
- package/lib/auth/logout/logout.spec.d.ts +0 -1
- package/lib/auth/logout/logout.spec.js +0 -67
- package/lib/cdp/constants.d.ts +0 -1
- package/lib/cdp/constants.js +0 -4
- package/lib/cdp/index.d.ts +0 -3
- package/lib/cdp/index.js +0 -16
- package/lib/cdp/instance/activate/activate.d.ts +0 -5
- package/lib/cdp/instance/activate/activate.js +0 -107
- package/lib/cdp/instance/activate/activate.spec.d.ts +0 -1
- package/lib/cdp/instance/activate/activate.spec.js +0 -274
- package/lib/cdp/instance/instanceCommand.d.ts +0 -3
- package/lib/cdp/instance/instanceCommand.js +0 -15
- package/lib/cdp/schema/deploy/deploy.const.d.ts +0 -5
- package/lib/cdp/schema/deploy/deploy.const.js +0 -8
- package/lib/cdp/schema/deploy/deploy.d.ts +0 -4
- package/lib/cdp/schema/deploy/deploy.js +0 -107
- package/lib/cdp/schema/deploy/deploy.spec.d.ts +0 -1
- package/lib/cdp/schema/deploy/deploy.spec.js +0 -137
- package/lib/cdp/schema/schemaCommand.d.ts +0 -3
- package/lib/cdp/schema/schemaCommand.js +0 -15
- package/lib/cdp/utils.d.ts +0 -23
- package/lib/cdp/utils.js +0 -133
- package/lib/cmp/deploy.d.ts +0 -3
- package/lib/cmp/deploy.js +0 -124
- package/lib/cmp/dev-mode-ui.d.ts +0 -4
- package/lib/cmp/dev-mode-ui.js +0 -51
- package/lib/cmp/dev-mode.d.ts +0 -4
- package/lib/cmp/dev-mode.js +0 -58
- package/lib/cmp/edge-components/compiler.d.ts +0 -13
- package/lib/cmp/edge-components/compiler.js +0 -55
- package/lib/cmp/index.d.ts +0 -3
- package/lib/cmp/index.js +0 -18
- package/lib/cmp/init.d.ts +0 -3
- package/lib/cmp/init.js +0 -105
- package/lib/cmp/utils/definitions.d.ts +0 -481
- package/lib/cmp/utils/definitions.js +0 -262
- package/lib/cmp/utils/definitions.spec.d.ts +0 -1
- package/lib/cmp/utils/definitions.spec.js +0 -503
- package/lib/constants.d.ts +0 -1
- package/lib/constants.js +0 -4
- package/lib/datastore/blueprint/add/add.d.ts +0 -3
- package/lib/datastore/blueprint/add/add.js +0 -119
- package/lib/datastore/blueprint/add/add.spec.d.ts +0 -1
- package/lib/datastore/blueprint/add/add.spec.js +0 -134
- package/lib/datastore/blueprint/blueprintCommand.d.ts +0 -3
- package/lib/datastore/blueprint/blueprintCommand.js +0 -21
- package/lib/datastore/blueprint/list/list.d.ts +0 -3
- package/lib/datastore/blueprint/list/list.js +0 -76
- package/lib/datastore/blueprint/list/list.spec.d.ts +0 -1
- package/lib/datastore/blueprint/list/list.spec.js +0 -51
- package/lib/datastore/blueprint/rename/rename.d.ts +0 -3
- package/lib/datastore/blueprint/rename/rename.js +0 -93
- package/lib/datastore/blueprint/rename/rename.spec.d.ts +0 -1
- package/lib/datastore/blueprint/rename/rename.spec.js +0 -142
- package/lib/datastore/blueprint/update/update.d.ts +0 -3
- package/lib/datastore/blueprint/update/update.js +0 -89
- package/lib/datastore/blueprint/update/update.spec.d.ts +0 -1
- package/lib/datastore/blueprint/update/update.spec.js +0 -99
- package/lib/datastore/bundle/bundle.d.ts +0 -3
- package/lib/datastore/bundle/bundle.js +0 -176
- package/lib/datastore/bundle/bundle.spec.d.ts +0 -1
- package/lib/datastore/bundle/bundle.spec.js +0 -94
- package/lib/datastore/index.d.ts +0 -3
- package/lib/datastore/index.js +0 -16
- package/lib/datastore/simulator/add/add.d.ts +0 -3
- package/lib/datastore/simulator/add/add.js +0 -125
- package/lib/datastore/simulator/add/add.spec.d.ts +0 -1
- package/lib/datastore/simulator/add/add.spec.js +0 -114
- package/lib/datastore/simulator/clear/clear.d.ts +0 -3
- package/lib/datastore/simulator/clear/clear.js +0 -70
- package/lib/datastore/simulator/clear/clear.spec.d.ts +0 -1
- package/lib/datastore/simulator/clear/clear.spec.js +0 -224
- package/lib/datastore/simulator/list/list.d.ts +0 -3
- package/lib/datastore/simulator/list/list.js +0 -115
- package/lib/datastore/simulator/list/list.spec.d.ts +0 -1
- package/lib/datastore/simulator/list/list.spec.js +0 -95
- package/lib/datastore/simulator/pause/pause.d.ts +0 -3
- package/lib/datastore/simulator/pause/pause.js +0 -84
- package/lib/datastore/simulator/pause/pause.spec.d.ts +0 -1
- package/lib/datastore/simulator/pause/pause.spec.js +0 -90
- package/lib/datastore/simulator/remove/remove.d.ts +0 -3
- package/lib/datastore/simulator/remove/remove.js +0 -68
- package/lib/datastore/simulator/remove/remove.spec.d.ts +0 -1
- package/lib/datastore/simulator/remove/remove.spec.js +0 -224
- package/lib/datastore/simulator/resume/resume.d.ts +0 -3
- package/lib/datastore/simulator/resume/resume.js +0 -84
- package/lib/datastore/simulator/resume/resume.spec.d.ts +0 -1
- package/lib/datastore/simulator/resume/resume.spec.js +0 -90
- package/lib/datastore/simulator/simulatorCommand.d.ts +0 -3
- package/lib/datastore/simulator/simulatorCommand.js +0 -27
- package/lib/datastore/simulator/upgrade/upgrade.d.ts +0 -3
- package/lib/datastore/simulator/upgrade/upgrade.js +0 -157
- package/lib/datastore/simulator/upgrade/upgrade.spec.d.ts +0 -1
- package/lib/datastore/simulator/upgrade/upgrade.spec.js +0 -199
- package/lib/datastore/simulator/utils.d.ts +0 -29
- package/lib/datastore/simulator/utils.js +0 -218
- package/lib/datastore/simulator/utils.spec.d.ts +0 -1
- package/lib/datastore/simulator/utils.spec.js +0 -201
- package/lib/datastore/utils.d.ts +0 -20
- package/lib/datastore/utils.js +0 -241
- package/lib/datastore/utils.spec.d.ts +0 -1
- package/lib/datastore/utils.spec.js +0 -113
- package/lib/dxp.d.ts +0 -1
- package/lib/dxp.js +0 -57
- package/lib/job-runner/index.d.ts +0 -3
- package/lib/job-runner/index.js +0 -22
- package/lib/job-runner/job/listJobs/listJobs.d.ts +0 -3
- package/lib/job-runner/job/listJobs/listJobs.js +0 -66
- package/lib/job-runner/job/listJobs/listJobs.spec.d.ts +0 -1
- package/lib/job-runner/job/listJobs/listJobs.spec.js +0 -42
- package/lib/job-runner/job/uploadJob/uploadJob.d.ts +0 -3
- package/lib/job-runner/job/uploadJob/uploadJob.js +0 -56
- package/lib/job-runner/job/uploadJob/uploadJob.spec.d.ts +0 -1
- package/lib/job-runner/job/uploadJob/uploadJob.spec.js +0 -42
- package/lib/job-runner/jobContext/listJobContexts.d.ts +0 -3
- package/lib/job-runner/jobContext/listJobContexts.js +0 -66
- package/lib/job-runner/jobContext/listJobContexts.spec.d.ts +0 -1
- package/lib/job-runner/jobContext/listJobContexts.spec.js +0 -58
- package/lib/job-runner/jobExecution/beginJob/beginJob.d.ts +0 -3
- package/lib/job-runner/jobExecution/beginJob/beginJob.js +0 -68
- package/lib/job-runner/jobExecution/beginJob/beginJob.spec.d.ts +0 -1
- package/lib/job-runner/jobExecution/beginJob/beginJob.spec.js +0 -62
- package/lib/job-runner/jobExecution/listJobExecutions/listJobExecutions.d.ts +0 -3
- package/lib/job-runner/jobExecution/listJobExecutions/listJobExecutions.js +0 -67
- package/lib/job-runner/jobExecution/listJobExecutions/listJobExecutions.spec.d.ts +0 -1
- package/lib/job-runner/jobExecution/listJobExecutions/listJobExecutions.spec.js +0 -64
- package/lib/job-runner/jobExecution/terminateJob/terminateJob.d.ts +0 -3
- package/lib/job-runner/jobExecution/terminateJob/terminateJob.js +0 -64
- package/lib/job-runner/jobExecution/terminateJob/terminateJob.spec.d.ts +0 -1
- package/lib/job-runner/jobExecution/terminateJob/terminateJob.spec.js +0 -61
- package/lib/job-runner/utils.d.ts +0 -19
- package/lib/job-runner/utils.js +0 -145
- package/lib/job-runner/utils.spec.d.ts +0 -1
- package/lib/job-runner/utils.spec.js +0 -116
- package/lib/migration/batch-get/batch-get.d.ts +0 -3
- package/lib/migration/batch-get/batch-get.js +0 -45
- package/lib/migration/batch-get/batch-get.spec.d.ts +0 -1
- package/lib/migration/batch-get/batch-get.spec.js +0 -182
- package/lib/migration/batch-next/batch-next.d.ts +0 -3
- package/lib/migration/batch-next/batch-next.js +0 -60
- package/lib/migration/batch-next/batch-next.spec.d.ts +0 -1
- package/lib/migration/batch-next/batch-next.spec.js +0 -251
- package/lib/migration/batch-revert/batch-revert.d.ts +0 -3
- package/lib/migration/batch-revert/batch-revert.js +0 -45
- package/lib/migration/batch-revert/batch-revert.spec.d.ts +0 -1
- package/lib/migration/batch-revert/batch-revert.spec.js +0 -197
- package/lib/migration/create/create.d.ts +0 -3
- package/lib/migration/create/create.js +0 -76
- package/lib/migration/create/create.spec.d.ts +0 -1
- package/lib/migration/create/create.spec.js +0 -308
- package/lib/migration/get/get.d.ts +0 -3
- package/lib/migration/get/get.js +0 -46
- package/lib/migration/get/get.spec.d.ts +0 -1
- package/lib/migration/get/get.spec.js +0 -276
- package/lib/migration/index.d.ts +0 -3
- package/lib/migration/index.js +0 -32
- package/lib/migration/list/list.d.ts +0 -3
- package/lib/migration/list/list.js +0 -45
- package/lib/migration/list/list.spec.d.ts +0 -1
- package/lib/migration/list/list.spec.js +0 -139
- package/lib/migration/mark-deployed/mark-deployed.d.ts +0 -3
- package/lib/migration/mark-deployed/mark-deployed.js +0 -55
- package/lib/migration/mark-deployed/mark-deployed.spec.d.ts +0 -1
- package/lib/migration/mark-deployed/mark-deployed.spec.js +0 -217
- package/lib/migration/next/next.d.ts +0 -3
- package/lib/migration/next/next.js +0 -75
- package/lib/migration/next/next.spec.d.ts +0 -1
- package/lib/migration/next/next.spec.js +0 -254
- package/lib/migration/pre/pre.d.ts +0 -3
- package/lib/migration/pre/pre.js +0 -54
- package/lib/migration/pre/pre.spec.d.ts +0 -1
- package/lib/migration/pre/pre.spec.js +0 -269
- package/lib/migration/revert/revert.d.ts +0 -3
- package/lib/migration/revert/revert.js +0 -47
- package/lib/migration/revert/revert.spec.d.ts +0 -1
- package/lib/migration/revert/revert.spec.js +0 -153
- package/lib/migration/settings/settings.d.ts +0 -3
- package/lib/migration/settings/settings.js +0 -63
- package/lib/migration/settings/settings.spec.d.ts +0 -1
- package/lib/migration/settings/settings.spec.js +0 -339
- package/lib/migration/types/common.types.d.ts +0 -60
- package/lib/migration/types/common.types.js +0 -19
- package/lib/migration/types/createMigration.types.d.ts +0 -48
- package/lib/migration/types/createMigration.types.js +0 -2
- package/lib/migration/types/getMigration.types.d.ts +0 -9
- package/lib/migration/types/getMigration.types.js +0 -2
- package/lib/migration/types/index.d.ts +0 -8
- package/lib/migration/types/index.js +0 -24
- package/lib/migration/types/listMigrations.types.d.ts +0 -2
- package/lib/migration/types/listMigrations.types.js +0 -2
- package/lib/migration/types/markDeployed.types.d.ts +0 -20
- package/lib/migration/types/markDeployed.types.js +0 -2
- package/lib/migration/types/nextStage.types.d.ts +0 -31
- package/lib/migration/types/nextStage.types.js +0 -2
- package/lib/migration/types/preMigration.types.d.ts +0 -10
- package/lib/migration/types/preMigration.types.js +0 -2
- package/lib/migration/types/revert.types.d.ts +0 -18
- package/lib/migration/types/revert.types.js +0 -2
- package/lib/migration/types/settings.types.d.ts +0 -15
- package/lib/migration/types/settings.types.js +0 -2
- package/lib/migration/utils/common.d.ts +0 -53
- package/lib/migration/utils/common.js +0 -166
- package/lib/migration/utils/common.spec.d.ts +0 -1
- package/lib/migration/utils/common.spec.js +0 -236
- package/lib/migration/utils/createMigration.d.ts +0 -16
- package/lib/migration/utils/createMigration.js +0 -116
- package/lib/migration/utils/createMigration.spec.d.ts +0 -1
- package/lib/migration/utils/createMigration.spec.js +0 -260
- package/lib/migration/utils/getMigration.d.ts +0 -3
- package/lib/migration/utils/getMigration.js +0 -46
- package/lib/migration/utils/getMigration.spec.d.ts +0 -1
- package/lib/migration/utils/getMigration.spec.js +0 -295
- package/lib/migration/utils/index.d.ts +0 -10
- package/lib/migration/utils/index.js +0 -26
- package/lib/migration/utils/listMigrations.d.ts +0 -3
- package/lib/migration/utils/listMigrations.js +0 -41
- package/lib/migration/utils/listMigrations.spec.d.ts +0 -1
- package/lib/migration/utils/listMigrations.spec.js +0 -109
- package/lib/migration/utils/loadAssetIdsFromFile.d.ts +0 -9
- package/lib/migration/utils/loadAssetIdsFromFile.js +0 -40
- package/lib/migration/utils/loadAssetIdsFromFile.spec.d.ts +0 -1
- package/lib/migration/utils/loadAssetIdsFromFile.spec.js +0 -91
- package/lib/migration/utils/loadStageOptionsFromFile.d.ts +0 -2
- package/lib/migration/utils/loadStageOptionsFromFile.js +0 -32
- package/lib/migration/utils/loadStageOptionsFromFile.spec.d.ts +0 -1
- package/lib/migration/utils/loadStageOptionsFromFile.spec.js +0 -77
- package/lib/migration/utils/markComponentsDeployed.d.ts +0 -2
- package/lib/migration/utils/markComponentsDeployed.js +0 -37
- package/lib/migration/utils/markComponentsDeployed.spec.d.ts +0 -1
- package/lib/migration/utils/markComponentsDeployed.spec.js +0 -222
- package/lib/migration/utils/nextStage.d.ts +0 -3
- package/lib/migration/utils/nextStage.js +0 -55
- package/lib/migration/utils/nextStage.spec.d.ts +0 -1
- package/lib/migration/utils/nextStage.spec.js +0 -323
- package/lib/migration/utils/options.d.ts +0 -18
- package/lib/migration/utils/options.js +0 -136
- package/lib/migration/utils/options.spec.d.ts +0 -1
- package/lib/migration/utils/options.spec.js +0 -115
- package/lib/migration/utils/promptForMorphConfirmation.d.ts +0 -5
- package/lib/migration/utils/promptForMorphConfirmation.js +0 -55
- package/lib/migration/utils/promptForMorphConfirmation.spec.d.ts +0 -1
- package/lib/migration/utils/promptForMorphConfirmation.spec.js +0 -101
- package/lib/migration/utils/revertMigration.d.ts +0 -3
- package/lib/migration/utils/revertMigration.js +0 -58
- package/lib/migration/utils/revertMigration.spec.d.ts +0 -1
- package/lib/migration/utils/revertMigration.spec.js +0 -210
- package/lib/migration/utils/setMigrationSettings.d.ts +0 -2
- package/lib/migration/utils/setMigrationSettings.js +0 -52
- package/lib/migration/utils/setMigrationSettings.spec.d.ts +0 -1
- package/lib/migration/utils/setMigrationSettings.spec.js +0 -163
- package/lib/page/index.d.ts +0 -3
- package/lib/page/index.js +0 -12
- package/lib/page/layouts/deploy/deploy.d.ts +0 -5
- package/lib/page/layouts/deploy/deploy.js +0 -157
- package/lib/page/layouts/deploy/deploy.spec.d.ts +0 -1
- package/lib/page/layouts/deploy/deploy.spec.js +0 -319
- package/lib/page/layouts/dev/dev.d.ts +0 -5
- package/lib/page/layouts/dev/dev.js +0 -84
- package/lib/page/layouts/dev/dev.spec.d.ts +0 -1
- package/lib/page/layouts/dev/dev.spec.js +0 -271
- package/lib/page/layouts/layouts.d.ts +0 -3
- package/lib/page/layouts/layouts.js +0 -17
- package/lib/page/layouts/layouts.spec.d.ts +0 -1
- package/lib/page/layouts/layouts.spec.js +0 -29
- package/lib/page/layouts/validation/index.d.ts +0 -3
- package/lib/page/layouts/validation/index.js +0 -9
- package/lib/page/layouts/validation/property-consistency.d.ts +0 -7
- package/lib/page/layouts/validation/property-consistency.js +0 -92
- package/lib/page/layouts/validation/property-consistency.spec.d.ts +0 -1
- package/lib/page/layouts/validation/property-consistency.spec.js +0 -307
- package/lib/page/layouts/validation/validateLayoutFormat.d.ts +0 -2
- package/lib/page/layouts/validation/validateLayoutFormat.js +0 -27
- package/lib/page/layouts/validation/validateLayoutFormat.spec.d.ts +0 -1
- package/lib/page/layouts/validation/validateLayoutFormat.spec.js +0 -42
- package/lib/page/layouts/validation/zone-consistency.d.ts +0 -7
- package/lib/page/layouts/validation/zone-consistency.js +0 -50
- package/lib/page/layouts/validation/zone-consistency.spec.d.ts +0 -1
- package/lib/page/layouts/validation/zone-consistency.spec.js +0 -94
- package/lib/page/templates/validation.d.ts +0 -11
- package/lib/page/templates/validation.js +0 -30
- package/lib/page/templates/validation.spec.d.ts +0 -1
- package/lib/page/templates/validation.spec.js +0 -89
- package/lib/page/utils/definitions.d.ts +0 -596
- package/lib/page/utils/definitions.js +0 -253
- package/lib/page/utils/definitions.spec.d.ts +0 -1
- package/lib/page/utils/definitions.spec.js +0 -804
- package/lib/page/utils/normalize.d.ts +0 -8
- package/lib/page/utils/normalize.js +0 -54
- package/lib/page/utils/normalize.spec.d.ts +0 -1
- package/lib/page/utils/normalize.spec.js +0 -309
- package/lib/page/utils/parse-args.d.ts +0 -44
- package/lib/page/utils/parse-args.js +0 -119
- package/lib/page/utils/parse-args.spec.d.ts +0 -1
- package/lib/page/utils/parse-args.spec.js +0 -284
- package/lib/page/utils/render.d.ts +0 -51
- package/lib/page/utils/render.js +0 -112
- package/lib/page/utils/render.spec.d.ts +0 -1
- package/lib/page/utils/render.spec.js +0 -134
- package/lib/page/utils/server.d.ts +0 -12
- package/lib/page/utils/server.js +0 -201
- package/lib/page/utils/server.spec.d.ts +0 -1
- package/lib/page/utils/server.spec.js +0 -275
- package/lib/porter/constants.d.ts +0 -11
- package/lib/porter/constants.js +0 -14
- package/lib/porter/index.d.ts +0 -3
- package/lib/porter/index.js +0 -24
- package/lib/porter/port/abort/abort.d.ts +0 -3
- package/lib/porter/port/abort/abort.js +0 -80
- package/lib/porter/port/abort/abort.spec.d.ts +0 -1
- package/lib/porter/port/abort/abort.spec.js +0 -182
- package/lib/porter/port/get/get.d.ts +0 -3
- package/lib/porter/port/get/get.js +0 -96
- package/lib/porter/port/get/get.spec.d.ts +0 -1
- package/lib/porter/port/get/get.spec.js +0 -277
- package/lib/porter/port/start/start.d.ts +0 -3
- package/lib/porter/port/start/start.js +0 -82
- package/lib/porter/port/start/start.spec.d.ts +0 -1
- package/lib/porter/port/start/start.spec.js +0 -198
- package/lib/porter/project/add/add.d.ts +0 -3
- package/lib/porter/project/add/add.js +0 -138
- package/lib/porter/project/add/add.spec.d.ts +0 -1
- package/lib/porter/project/add/add.spec.js +0 -269
- package/lib/porter/project/get/get.d.ts +0 -3
- package/lib/porter/project/get/get.js +0 -65
- package/lib/porter/project/get/get.spec.d.ts +0 -1
- package/lib/porter/project/get/get.spec.js +0 -185
- package/lib/porter/project/remove/remove.d.ts +0 -3
- package/lib/porter/project/remove/remove.js +0 -69
- package/lib/porter/project/remove/remove.spec.d.ts +0 -1
- package/lib/porter/project/remove/remove.spec.js +0 -201
- package/lib/porter/types.d.ts +0 -5
- package/lib/porter/types.js +0 -2
- package/lib/porter/utils/BuildDXPUrl/BuildDXPUrl.d.ts +0 -4
- package/lib/porter/utils/BuildDXPUrl/BuildDXPUrl.js +0 -34
- package/lib/porter/utils/BuildPorterUrl/BuildPorterUrl.d.ts +0 -1
- package/lib/porter/utils/BuildPorterUrl/BuildPorterUrl.js +0 -21
- package/lib/porter/utils/BuildPorterUrl/BuildPorterUrl.spec.d.ts +0 -1
- package/lib/porter/utils/BuildPorterUrl/BuildPorterUrl.spec.js +0 -52
- package/lib/porter/utils/CoreUtils/CoreUtils.d.ts +0 -2
- package/lib/porter/utils/CoreUtils/CoreUtils.js +0 -13
- package/lib/porter/utils/CoreUtils/CoreUtils.spec.d.ts +0 -1
- package/lib/porter/utils/CoreUtils/CoreUtils.spec.js +0 -36
- package/lib/porter/utils/DoesPathExist/DoesPathExist.d.ts +0 -1
- package/lib/porter/utils/DoesPathExist/DoesPathExist.js +0 -27
- package/lib/porter/utils/DoesPathExist/DoesPathExist.spec.d.ts +0 -1
- package/lib/porter/utils/DoesPathExist/DoesPathExist.spec.js +0 -40
- package/lib/porter/utils/ErrorUtils/ErrorUtils.d.ts +0 -4
- package/lib/porter/utils/ErrorUtils/ErrorUtils.js +0 -66
- package/lib/porter/utils/ErrorUtils/ErrorUtils.spec.d.ts +0 -1
- package/lib/porter/utils/ErrorUtils/ErrorUtils.spec.js +0 -176
- package/lib/porter/utils/GetProjectConfig/GetProjectConfig.d.ts +0 -2
- package/lib/porter/utils/GetProjectConfig/GetProjectConfig.js +0 -33
- package/lib/porter/utils/GetProjectConfig/GetProjectConfig.spec.d.ts +0 -1
- package/lib/porter/utils/GetProjectConfig/GetProjectConfig.spec.js +0 -50
- package/lib/porter/utils/GetProjectName/GetProjectName.d.ts +0 -4
- package/lib/porter/utils/GetProjectName/GetProjectName.js +0 -30
- package/lib/porter/utils/GetProjectName/GetProjectName.spec.d.ts +0 -1
- package/lib/porter/utils/GetProjectName/GetProjectName.spec.js +0 -91
- package/lib/porter/utils/index.d.ts +0 -7
- package/lib/porter/utils/index.js +0 -23
|
@@ -1,236 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
const fs_1 = __importDefault(require("fs"));
|
|
16
|
-
const axios_1 = __importDefault(require("axios"));
|
|
17
|
-
const ApplicationConfig_1 = require("../../ApplicationConfig");
|
|
18
|
-
const ApplicationStore_1 = require("../../ApplicationStore");
|
|
19
|
-
const _1 = require(".");
|
|
20
|
-
// Mock all external dependencies
|
|
21
|
-
jest.mock('fs');
|
|
22
|
-
jest.mock('path');
|
|
23
|
-
jest.mock('child_process');
|
|
24
|
-
jest.mock('axios');
|
|
25
|
-
jest.mock('../../ApplicationConfig');
|
|
26
|
-
jest.mock('../../ApplicationStore');
|
|
27
|
-
jest.mock('../../ApiService');
|
|
28
|
-
// Mock global fetch
|
|
29
|
-
const mockFetch = jest.fn();
|
|
30
|
-
global.fetch = mockFetch;
|
|
31
|
-
const mockFs = fs_1.default;
|
|
32
|
-
const mockAxios = axios_1.default;
|
|
33
|
-
const mockFetchApplicationConfig = ApplicationConfig_1.fetchApplicationConfig;
|
|
34
|
-
const mockGetApplicationFile = ApplicationStore_1.getApplicationFile;
|
|
35
|
-
describe('Migration Utils', () => {
|
|
36
|
-
beforeEach(() => {
|
|
37
|
-
jest.clearAllMocks();
|
|
38
|
-
jest.resetAllMocks();
|
|
39
|
-
});
|
|
40
|
-
describe('handleCommandError', () => {
|
|
41
|
-
let mockCommand;
|
|
42
|
-
beforeEach(() => {
|
|
43
|
-
mockCommand = {
|
|
44
|
-
error: jest.fn(),
|
|
45
|
-
};
|
|
46
|
-
});
|
|
47
|
-
it('handles axios errors with response data message', () => {
|
|
48
|
-
const axiosError = {
|
|
49
|
-
message: 'Network Error',
|
|
50
|
-
response: {
|
|
51
|
-
data: {
|
|
52
|
-
message: 'Server Error',
|
|
53
|
-
details: 'Additional details',
|
|
54
|
-
},
|
|
55
|
-
},
|
|
56
|
-
};
|
|
57
|
-
mockAxios.isAxiosError.mockReturnValue(true);
|
|
58
|
-
(0, _1.handleCommandError)(mockCommand, axiosError);
|
|
59
|
-
expect(mockCommand.error).toHaveBeenCalledWith(expect.stringContaining('Network Error: Server Error: Additional details'));
|
|
60
|
-
});
|
|
61
|
-
it('handles axios errors without response data', () => {
|
|
62
|
-
const axiosError = {
|
|
63
|
-
message: 'Network Error',
|
|
64
|
-
};
|
|
65
|
-
mockAxios.isAxiosError.mockReturnValue(true);
|
|
66
|
-
(0, _1.handleCommandError)(mockCommand, axiosError);
|
|
67
|
-
expect(mockCommand.error).toHaveBeenCalledWith(expect.stringContaining('Network Error'));
|
|
68
|
-
});
|
|
69
|
-
it('handles regular errors with message', () => {
|
|
70
|
-
const error = new Error('Regular error');
|
|
71
|
-
mockAxios.isAxiosError.mockReturnValue(false);
|
|
72
|
-
(0, _1.handleCommandError)(mockCommand, error);
|
|
73
|
-
expect(mockCommand.error).toHaveBeenCalledWith(expect.stringContaining('Regular error'));
|
|
74
|
-
});
|
|
75
|
-
it('handles errors without message', () => {
|
|
76
|
-
const error = new Error();
|
|
77
|
-
error.message = '';
|
|
78
|
-
mockAxios.isAxiosError.mockReturnValue(false);
|
|
79
|
-
(0, _1.handleCommandError)(mockCommand, error);
|
|
80
|
-
expect(mockCommand.error).toHaveBeenCalledWith(expect.stringContaining('An unknown error occurred'));
|
|
81
|
-
});
|
|
82
|
-
it('shows stack trace in debug mode', () => {
|
|
83
|
-
const originalDebug = process.env.DEBUG;
|
|
84
|
-
process.env.DEBUG = 'true';
|
|
85
|
-
const error = new Error('Test error');
|
|
86
|
-
error.stack = 'Error stack trace';
|
|
87
|
-
mockAxios.isAxiosError.mockReturnValue(false);
|
|
88
|
-
(0, _1.handleCommandError)(mockCommand, error);
|
|
89
|
-
expect(mockCommand.error).toHaveBeenCalledWith(expect.stringContaining('Test error'));
|
|
90
|
-
expect(mockCommand.error).toHaveBeenCalledWith(expect.stringContaining('Stack trace:'));
|
|
91
|
-
expect(mockCommand.error).toHaveBeenCalledWith(expect.stringContaining('Error stack trace'));
|
|
92
|
-
process.env.DEBUG = originalDebug;
|
|
93
|
-
});
|
|
94
|
-
});
|
|
95
|
-
describe('throwErrorIfNotLoggedIn', () => {
|
|
96
|
-
let mockCommand;
|
|
97
|
-
beforeEach(() => {
|
|
98
|
-
mockCommand = {
|
|
99
|
-
error: jest.fn(),
|
|
100
|
-
};
|
|
101
|
-
});
|
|
102
|
-
it('throws error when not logged in', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
103
|
-
mockGetApplicationFile.mockResolvedValue(undefined);
|
|
104
|
-
yield (0, _1.throwErrorIfNotLoggedIn)(mockCommand);
|
|
105
|
-
expect(mockCommand.error).toHaveBeenCalledWith(expect.stringContaining('You must login to interact with the migration service'));
|
|
106
|
-
}));
|
|
107
|
-
it('does not throw error when logged in', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
108
|
-
mockGetApplicationFile.mockResolvedValue('session-cookie');
|
|
109
|
-
yield (0, _1.throwErrorIfNotLoggedIn)(mockCommand);
|
|
110
|
-
expect(mockCommand.error).not.toHaveBeenCalled();
|
|
111
|
-
}));
|
|
112
|
-
});
|
|
113
|
-
describe('buildMigrationUrl', () => {
|
|
114
|
-
it('builds url without override', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
115
|
-
const mockConfig = {
|
|
116
|
-
baseUrl: 'https://example.com',
|
|
117
|
-
tenant: 'test-tenant',
|
|
118
|
-
region: 'au',
|
|
119
|
-
};
|
|
120
|
-
mockFetchApplicationConfig.mockResolvedValue(mockConfig);
|
|
121
|
-
const result = yield (0, _1.buildMigrationUrl)('tenant-id');
|
|
122
|
-
expect(result).toBe('https://example.com/__dxp/service/aiapps/migration/migrations');
|
|
123
|
-
expect(mockFetchApplicationConfig).toHaveBeenCalledWith('tenant-id');
|
|
124
|
-
}));
|
|
125
|
-
it('returns override url when provided', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
126
|
-
const overrideUrl = 'https://override.com';
|
|
127
|
-
const result = yield (0, _1.buildMigrationUrl)('tenant-id', overrideUrl);
|
|
128
|
-
expect(result).toBe(overrideUrl + '/migrations');
|
|
129
|
-
expect(mockFetchApplicationConfig).not.toHaveBeenCalled();
|
|
130
|
-
}));
|
|
131
|
-
});
|
|
132
|
-
describe('validateAxiosStatus', () => {
|
|
133
|
-
it('returns true for successful status codes', () => {
|
|
134
|
-
expect((0, _1.validateAxiosStatus)(200)).toBe(true);
|
|
135
|
-
expect((0, _1.validateAxiosStatus)(201)).toBe(true);
|
|
136
|
-
expect((0, _1.validateAxiosStatus)(399)).toBe(true);
|
|
137
|
-
});
|
|
138
|
-
it('returns false for error status codes', () => {
|
|
139
|
-
expect((0, _1.validateAxiosStatus)(400)).toBe(false);
|
|
140
|
-
expect((0, _1.validateAxiosStatus)(404)).toBe(false);
|
|
141
|
-
expect((0, _1.validateAxiosStatus)(500)).toBe(false);
|
|
142
|
-
});
|
|
143
|
-
});
|
|
144
|
-
describe('getMigrationHeaders', () => {
|
|
145
|
-
it('returns headers with tenant from config', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
146
|
-
const mockConfig = {
|
|
147
|
-
tenant: 'test-tenant',
|
|
148
|
-
baseUrl: 'https://example.com',
|
|
149
|
-
region: 'au',
|
|
150
|
-
};
|
|
151
|
-
mockFetchApplicationConfig.mockResolvedValue(mockConfig);
|
|
152
|
-
const result = yield (0, _1.getMigrationHeaders)('tenant-id');
|
|
153
|
-
expect(result).toEqual({
|
|
154
|
-
'Content-Type': 'application/json',
|
|
155
|
-
'x-dxp-tenant': 'test-tenant',
|
|
156
|
-
});
|
|
157
|
-
expect(mockFetchApplicationConfig).toHaveBeenCalledWith('tenant-id');
|
|
158
|
-
}));
|
|
159
|
-
});
|
|
160
|
-
describe('redactKey', () => {
|
|
161
|
-
it('redacts key correctly', () => {
|
|
162
|
-
expect((0, _1.redactKey)('1234567890', 3)).toBe('*******890');
|
|
163
|
-
expect((0, _1.redactKey)('1234567890', 1)).toBe('*********0');
|
|
164
|
-
expect((0, _1.redactKey)('1234567890', 10)).toBe('**********');
|
|
165
|
-
});
|
|
166
|
-
});
|
|
167
|
-
describe('formatBatchOperationResult', () => {
|
|
168
|
-
it('formats successful results correctly', () => {
|
|
169
|
-
const success = [
|
|
170
|
-
{ assetIds: ['asset-1', 'asset-2'], message: 'Stage completed' },
|
|
171
|
-
];
|
|
172
|
-
const failed = [];
|
|
173
|
-
const result = (0, _1.formatBatchOperationResult)(success, failed);
|
|
174
|
-
expect(result).toContain('Successful:');
|
|
175
|
-
expect(result).toContain('asset-1, asset-2');
|
|
176
|
-
expect(result).toContain('Stage completed');
|
|
177
|
-
});
|
|
178
|
-
it('formats failed results correctly', () => {
|
|
179
|
-
const success = [];
|
|
180
|
-
const failed = [{ assetIds: ['asset-3'], error: 'Migration failed' }];
|
|
181
|
-
const result = (0, _1.formatBatchOperationResult)(success, failed);
|
|
182
|
-
expect(result).toContain('Failed:');
|
|
183
|
-
expect(result).toContain('asset-3');
|
|
184
|
-
expect(result).toContain('Migration failed');
|
|
185
|
-
});
|
|
186
|
-
it('formats mixed success and failed results correctly', () => {
|
|
187
|
-
const success = [{ assetIds: ['asset-1'], message: 'Completed' }];
|
|
188
|
-
const failed = [{ assetIds: ['asset-2'], error: 'Failed to process' }];
|
|
189
|
-
const result = (0, _1.formatBatchOperationResult)(success, failed);
|
|
190
|
-
expect(result).toContain('Successful:');
|
|
191
|
-
expect(result).toContain('asset-1');
|
|
192
|
-
expect(result).toContain('Completed');
|
|
193
|
-
expect(result).toContain('Failed:');
|
|
194
|
-
expect(result).toContain('asset-2');
|
|
195
|
-
expect(result).toContain('Failed to process');
|
|
196
|
-
});
|
|
197
|
-
it('returns empty message when no results', () => {
|
|
198
|
-
const success = [];
|
|
199
|
-
const failed = [];
|
|
200
|
-
const result = (0, _1.formatBatchOperationResult)(success, failed);
|
|
201
|
-
expect(result).toBe('No assets were processed');
|
|
202
|
-
});
|
|
203
|
-
it('handles multiple asset IDs in a single result', () => {
|
|
204
|
-
const success = [
|
|
205
|
-
{
|
|
206
|
-
assetIds: ['asset-1', 'asset-2', 'asset-3'],
|
|
207
|
-
message: 'All processed',
|
|
208
|
-
},
|
|
209
|
-
];
|
|
210
|
-
const failed = [];
|
|
211
|
-
const result = (0, _1.formatBatchOperationResult)(success, failed);
|
|
212
|
-
expect(result).toContain('asset-1, asset-2, asset-3');
|
|
213
|
-
});
|
|
214
|
-
it('handles multiple success entries', () => {
|
|
215
|
-
const success = [
|
|
216
|
-
{ assetIds: ['asset-1'], message: 'First batch' },
|
|
217
|
-
{ assetIds: ['asset-2'], message: 'Second batch' },
|
|
218
|
-
];
|
|
219
|
-
const failed = [];
|
|
220
|
-
const result = (0, _1.formatBatchOperationResult)(success, failed);
|
|
221
|
-
expect(result).toContain('asset-1');
|
|
222
|
-
expect(result).toContain('First batch');
|
|
223
|
-
expect(result).toContain('asset-2');
|
|
224
|
-
expect(result).toContain('Second batch');
|
|
225
|
-
});
|
|
226
|
-
it('handles empty message gracefully', () => {
|
|
227
|
-
const success = [{ assetIds: ['asset-1'], message: '' }];
|
|
228
|
-
const failed = [];
|
|
229
|
-
const result = (0, _1.formatBatchOperationResult)(success, failed);
|
|
230
|
-
expect(result).toContain('Successful:');
|
|
231
|
-
expect(result).toContain('asset-1');
|
|
232
|
-
// Should not have a trailing colon when message is empty
|
|
233
|
-
expect(result).not.toContain('asset-1:');
|
|
234
|
-
});
|
|
235
|
-
});
|
|
236
|
-
});
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { CreateMigrationInput, CreateMigrationApiResponse } from '../types';
|
|
2
|
-
/**
|
|
3
|
-
* Creates a new single asset migration, bulk migration, or pre-migration using the AI Page Migration service.
|
|
4
|
-
* Pre-migrations are used to generate specs for CCTs so they can be converted and deployed in advance.
|
|
5
|
-
* Bulk migrations are used to migrate multiple assets at once, and they all share the same migration ID.
|
|
6
|
-
* @param {CreateMigrationInput} input - The input parameters for the migration/pre-migration creation.
|
|
7
|
-
* @returns {Promise<CreateMigrationApiResponse>}
|
|
8
|
-
*/
|
|
9
|
-
export declare function createMigration({ tenant, overrideUrl, assetIds, previewAssetId, matrixUrl, cctIds, stageOptions, triggerNextStage, }: CreateMigrationInput): Promise<CreateMigrationApiResponse>;
|
|
10
|
-
export declare function validateExportFolder(exportPath: string): void;
|
|
11
|
-
/**
|
|
12
|
-
* Creates a tar file from the export path.
|
|
13
|
-
* @param exportPath - The path to the export folder.
|
|
14
|
-
* @returns The path to the tar file.
|
|
15
|
-
*/
|
|
16
|
-
export declare function createTarFile(exportPath: string): Promise<string>;
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.createTarFile = exports.validateExportFolder = exports.createMigration = void 0;
|
|
16
|
-
const fs_1 = __importDefault(require("fs"));
|
|
17
|
-
const path_1 = __importDefault(require("path"));
|
|
18
|
-
const ApiService_1 = require("../../ApiService");
|
|
19
|
-
const _1 = require(".");
|
|
20
|
-
const child_process_1 = require("child_process");
|
|
21
|
-
/**
|
|
22
|
-
* Creates a new single asset migration, bulk migration, or pre-migration using the AI Page Migration service.
|
|
23
|
-
* Pre-migrations are used to generate specs for CCTs so they can be converted and deployed in advance.
|
|
24
|
-
* Bulk migrations are used to migrate multiple assets at once, and they all share the same migration ID.
|
|
25
|
-
* @param {CreateMigrationInput} input - The input parameters for the migration/pre-migration creation.
|
|
26
|
-
* @returns {Promise<CreateMigrationApiResponse>}
|
|
27
|
-
*/
|
|
28
|
-
function createMigration({ tenant, overrideUrl, assetIds, previewAssetId, matrixUrl, cctIds, stageOptions, triggerNextStage, }) {
|
|
29
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
30
|
-
const apiService = new ApiService_1.ApiService({
|
|
31
|
-
validateStatus: _1.validateAxiosStatus,
|
|
32
|
-
});
|
|
33
|
-
const migrationUrl = yield (0, _1.buildMigrationUrl)(tenant, overrideUrl);
|
|
34
|
-
const payload = {
|
|
35
|
-
assetIds,
|
|
36
|
-
previewAssetId,
|
|
37
|
-
matrixUrl,
|
|
38
|
-
cctIds,
|
|
39
|
-
stageOptions,
|
|
40
|
-
triggerNextStage,
|
|
41
|
-
};
|
|
42
|
-
const response = yield apiService.client.post(`${migrationUrl}`, payload, {
|
|
43
|
-
headers: yield (0, _1.getMigrationHeaders)(tenant),
|
|
44
|
-
});
|
|
45
|
-
// Validate response structure
|
|
46
|
-
const { assetMigration, summary, nextStageResults } = response.data || {};
|
|
47
|
-
if (!assetMigration && !summary && !nextStageResults) {
|
|
48
|
-
throw new Error('Invalid response format from migration service.');
|
|
49
|
-
}
|
|
50
|
-
return {
|
|
51
|
-
assetMigration,
|
|
52
|
-
summary,
|
|
53
|
-
nextStageResults,
|
|
54
|
-
};
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
exports.createMigration = createMigration;
|
|
58
|
-
function validateExportFolder(exportPath) {
|
|
59
|
-
// Check if the export folder exists
|
|
60
|
-
if (!fs_1.default.existsSync(exportPath)) {
|
|
61
|
-
throw new Error(`Export folder does not exist: ${exportPath}`);
|
|
62
|
-
}
|
|
63
|
-
// Check if it's a directory
|
|
64
|
-
if (!fs_1.default.statSync(exportPath).isDirectory()) {
|
|
65
|
-
throw new Error(`Export path is not a directory: ${exportPath}`);
|
|
66
|
-
}
|
|
67
|
-
// Check for nested export folder structure (e.g., ./export/export/...)
|
|
68
|
-
const nestedExportPath = path_1.default.join(exportPath, 'export');
|
|
69
|
-
if (!fs_1.default.existsSync(nestedExportPath)) {
|
|
70
|
-
throw new Error(`Nested export folder does not exist: ${nestedExportPath}`);
|
|
71
|
-
}
|
|
72
|
-
if (!fs_1.default.statSync(nestedExportPath).isDirectory()) {
|
|
73
|
-
throw new Error(`Nested export path is not a directory: ${nestedExportPath}`);
|
|
74
|
-
}
|
|
75
|
-
// Check for export.xml file in the nested export directory
|
|
76
|
-
const exportXmlPath = path_1.default.join(nestedExportPath, 'export.xml');
|
|
77
|
-
if (!fs_1.default.existsSync(exportXmlPath)) {
|
|
78
|
-
throw new Error(`export.xml file does not exist in: ${nestedExportPath}`);
|
|
79
|
-
}
|
|
80
|
-
if (!fs_1.default.statSync(exportXmlPath).isFile()) {
|
|
81
|
-
throw new Error(`export.xml is not a valid file: ${exportXmlPath}`);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
exports.validateExportFolder = validateExportFolder;
|
|
85
|
-
/**
|
|
86
|
-
* Creates a tar file from the export path.
|
|
87
|
-
* @param exportPath - The path to the export folder.
|
|
88
|
-
* @returns The path to the tar file.
|
|
89
|
-
*/
|
|
90
|
-
function createTarFile(exportPath) {
|
|
91
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
92
|
-
const tarFileName = `export_${Date.now()}.tar.gz`;
|
|
93
|
-
const tarFilePath = path_1.default.join(process.cwd(), tarFileName);
|
|
94
|
-
return new Promise((resolve, reject) => {
|
|
95
|
-
const tar = (0, child_process_1.spawn)('tar', [
|
|
96
|
-
'-czf',
|
|
97
|
-
tarFilePath,
|
|
98
|
-
'-C',
|
|
99
|
-
path_1.default.dirname(exportPath),
|
|
100
|
-
path_1.default.basename(exportPath),
|
|
101
|
-
]);
|
|
102
|
-
tar.on('close', code => {
|
|
103
|
-
if (code === 0) {
|
|
104
|
-
resolve(tarFilePath);
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
reject(new Error(`tar command failed with exit code ${code}`));
|
|
108
|
-
}
|
|
109
|
-
});
|
|
110
|
-
tar.on('error', error => {
|
|
111
|
-
reject(new Error(`Failed to create tar file: ${error.message}`));
|
|
112
|
-
});
|
|
113
|
-
});
|
|
114
|
-
});
|
|
115
|
-
}
|
|
116
|
-
exports.createTarFile = createTarFile;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,260 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
const fs_1 = __importDefault(require("fs"));
|
|
16
|
-
const path_1 = __importDefault(require("path"));
|
|
17
|
-
const child_process_1 = require("child_process");
|
|
18
|
-
const ApplicationConfig_1 = require("../../ApplicationConfig");
|
|
19
|
-
const ApiService_1 = require("../../ApiService");
|
|
20
|
-
const _1 = require(".");
|
|
21
|
-
// Mock all external dependencies
|
|
22
|
-
jest.mock('fs');
|
|
23
|
-
jest.mock('path');
|
|
24
|
-
jest.mock('child_process');
|
|
25
|
-
jest.mock('axios');
|
|
26
|
-
jest.mock('../../ApplicationConfig');
|
|
27
|
-
jest.mock('../../ApplicationStore');
|
|
28
|
-
jest.mock('../../ApiService');
|
|
29
|
-
// Mock global fetch
|
|
30
|
-
const mockFetch = jest.fn();
|
|
31
|
-
global.fetch = mockFetch;
|
|
32
|
-
const mockFs = fs_1.default;
|
|
33
|
-
const mockPath = path_1.default;
|
|
34
|
-
const mockSpawn = child_process_1.spawn;
|
|
35
|
-
const mockFetchApplicationConfig = ApplicationConfig_1.fetchApplicationConfig;
|
|
36
|
-
const mockApiService = ApiService_1.ApiService;
|
|
37
|
-
describe('createMigration', () => {
|
|
38
|
-
beforeEach(() => {
|
|
39
|
-
jest.clearAllMocks();
|
|
40
|
-
jest.resetAllMocks();
|
|
41
|
-
});
|
|
42
|
-
describe('validateExportFolder', () => {
|
|
43
|
-
beforeEach(() => {
|
|
44
|
-
mockPath.join.mockImplementation((...paths) => paths.join('/'));
|
|
45
|
-
});
|
|
46
|
-
it('validates successful export folder structure', () => {
|
|
47
|
-
mockFs.existsSync.mockImplementation(filePath => {
|
|
48
|
-
return [
|
|
49
|
-
'/export/path',
|
|
50
|
-
'/export/path/export',
|
|
51
|
-
'/export/path/export/export.xml',
|
|
52
|
-
].includes(filePath);
|
|
53
|
-
});
|
|
54
|
-
mockFs.statSync.mockImplementation(filePath => ({
|
|
55
|
-
isDirectory: () => filePath !== '/export/path/export/export.xml',
|
|
56
|
-
isFile: () => filePath === '/export/path/export/export.xml',
|
|
57
|
-
}));
|
|
58
|
-
expect(() => (0, _1.validateExportFolder)('/export/path')).not.toThrow();
|
|
59
|
-
});
|
|
60
|
-
it('throws error when export folder does not exist', () => {
|
|
61
|
-
mockFs.existsSync.mockReturnValue(false);
|
|
62
|
-
expect(() => (0, _1.validateExportFolder)('/nonexistent')).toThrow('Export folder does not exist: /nonexistent');
|
|
63
|
-
});
|
|
64
|
-
it('throws error when export path is not a directory', () => {
|
|
65
|
-
mockFs.existsSync.mockReturnValue(true);
|
|
66
|
-
mockFs.statSync.mockReturnValue({
|
|
67
|
-
isDirectory: () => false,
|
|
68
|
-
isFile: () => true,
|
|
69
|
-
});
|
|
70
|
-
expect(() => (0, _1.validateExportFolder)('/export/file.txt')).toThrow('Export path is not a directory: /export/file.txt');
|
|
71
|
-
});
|
|
72
|
-
it('throws error when nested export folder does not exist', () => {
|
|
73
|
-
mockFs.existsSync.mockImplementation(filePath => filePath === '/export/path');
|
|
74
|
-
mockFs.statSync.mockReturnValue({
|
|
75
|
-
isDirectory: () => true,
|
|
76
|
-
});
|
|
77
|
-
expect(() => (0, _1.validateExportFolder)('/export/path')).toThrow('Nested export folder does not exist: /export/path/export');
|
|
78
|
-
});
|
|
79
|
-
it('throws error when export.xml does not exist', () => {
|
|
80
|
-
mockFs.existsSync.mockImplementation(filePath => {
|
|
81
|
-
return ['/export/path', '/export/path/export'].includes(filePath);
|
|
82
|
-
});
|
|
83
|
-
mockFs.statSync.mockReturnValue({
|
|
84
|
-
isDirectory: () => true,
|
|
85
|
-
});
|
|
86
|
-
expect(() => (0, _1.validateExportFolder)('/export/path')).toThrow('export.xml file does not exist in: /export/path/export');
|
|
87
|
-
});
|
|
88
|
-
it('throws error when export.xml is not a file', () => {
|
|
89
|
-
mockFs.existsSync.mockReturnValue(true);
|
|
90
|
-
mockFs.statSync.mockImplementation(filePath => ({
|
|
91
|
-
isDirectory: () => filePath !== '/export/path/export/export.xml',
|
|
92
|
-
isFile: () => false,
|
|
93
|
-
}));
|
|
94
|
-
expect(() => (0, _1.validateExportFolder)('/export/path')).toThrow('export.xml is not a valid file: /export/path/export/export.xml');
|
|
95
|
-
});
|
|
96
|
-
it('throws error when nested export path is not a directory', () => {
|
|
97
|
-
mockFs.existsSync.mockReturnValue(true);
|
|
98
|
-
mockFs.statSync.mockImplementation(filePath => {
|
|
99
|
-
if (filePath === '/export/path') {
|
|
100
|
-
return { isDirectory: () => true };
|
|
101
|
-
}
|
|
102
|
-
else if (filePath === '/export/path/export') {
|
|
103
|
-
return { isDirectory: () => false, isFile: () => true };
|
|
104
|
-
}
|
|
105
|
-
return { isDirectory: () => false, isFile: () => false };
|
|
106
|
-
});
|
|
107
|
-
expect(() => (0, _1.validateExportFolder)('/export/path')).toThrow('Nested export path is not a directory: /export/path/export');
|
|
108
|
-
});
|
|
109
|
-
});
|
|
110
|
-
describe('createTarFile', () => {
|
|
111
|
-
let mockChildProcess;
|
|
112
|
-
beforeEach(() => {
|
|
113
|
-
mockChildProcess = {
|
|
114
|
-
on: jest.fn(),
|
|
115
|
-
};
|
|
116
|
-
mockSpawn.mockReturnValue(mockChildProcess);
|
|
117
|
-
mockPath.join.mockImplementation((...paths) => paths.join('/'));
|
|
118
|
-
mockPath.dirname.mockReturnValue('/parent');
|
|
119
|
-
mockPath.basename.mockReturnValue('export');
|
|
120
|
-
// Mock Date.now() to return consistent timestamp
|
|
121
|
-
jest.spyOn(Date, 'now').mockReturnValue(1234567890);
|
|
122
|
-
});
|
|
123
|
-
afterEach(() => {
|
|
124
|
-
jest.restoreAllMocks();
|
|
125
|
-
});
|
|
126
|
-
describe('createMigration', () => {
|
|
127
|
-
let mockApiServiceInstance;
|
|
128
|
-
let mockOptions;
|
|
129
|
-
beforeEach(() => {
|
|
130
|
-
mockApiServiceInstance = {
|
|
131
|
-
client: {
|
|
132
|
-
post: jest.fn(),
|
|
133
|
-
},
|
|
134
|
-
};
|
|
135
|
-
mockApiService.mockImplementation(() => mockApiServiceInstance);
|
|
136
|
-
mockOptions = {
|
|
137
|
-
assetIds: ['asset-123'],
|
|
138
|
-
previewAssetId: 'preview-456',
|
|
139
|
-
matrixUrl: 'https://matrix.example.com',
|
|
140
|
-
tenant: 'test-tenant',
|
|
141
|
-
};
|
|
142
|
-
mockFetchApplicationConfig.mockResolvedValue({
|
|
143
|
-
tenant: 'test-tenant',
|
|
144
|
-
baseUrl: 'https://example.com',
|
|
145
|
-
region: 'au',
|
|
146
|
-
});
|
|
147
|
-
});
|
|
148
|
-
it('creates migration successfully', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
149
|
-
const mockResponse = {
|
|
150
|
-
status: 201,
|
|
151
|
-
data: {
|
|
152
|
-
assetMigration: {
|
|
153
|
-
migrationId: 'migration-123',
|
|
154
|
-
assetId: 'asset-123',
|
|
155
|
-
stage: 'pending',
|
|
156
|
-
status: 'created',
|
|
157
|
-
xmlFilePath: '/path/to/xml',
|
|
158
|
-
matrixUrl: 'https://matrix.example.com',
|
|
159
|
-
previewAssetId: 'preview-456',
|
|
160
|
-
created: 1234567890,
|
|
161
|
-
updated: 1234567890,
|
|
162
|
-
migrationIdAssetId: 'migration-123-asset-123',
|
|
163
|
-
},
|
|
164
|
-
},
|
|
165
|
-
};
|
|
166
|
-
mockApiServiceInstance.client.post.mockResolvedValue(mockResponse);
|
|
167
|
-
const result = yield (0, _1.createMigration)(mockOptions);
|
|
168
|
-
expect(result).toEqual(mockResponse.data);
|
|
169
|
-
expect(mockApiServiceInstance.client.post).toHaveBeenCalledWith('https://example.com/__dxp/service/aiapps/migration/migrations', {
|
|
170
|
-
assetIds: ['asset-123'],
|
|
171
|
-
previewAssetId: 'preview-456',
|
|
172
|
-
matrixUrl: 'https://matrix.example.com',
|
|
173
|
-
cctIds: undefined,
|
|
174
|
-
stageOptions: undefined,
|
|
175
|
-
triggerNextStage: undefined,
|
|
176
|
-
}, {
|
|
177
|
-
headers: {
|
|
178
|
-
'Content-Type': 'application/json',
|
|
179
|
-
'x-dxp-tenant': 'test-tenant',
|
|
180
|
-
},
|
|
181
|
-
});
|
|
182
|
-
}));
|
|
183
|
-
it('handles API errors (4xx/5xx status codes)', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
184
|
-
// In production, Axios throws AxiosError for 4xx/5xx status codes
|
|
185
|
-
const axiosError = new Error('Request failed with status code 400');
|
|
186
|
-
axiosError.isAxiosError = true;
|
|
187
|
-
axiosError.response = {
|
|
188
|
-
status: 400,
|
|
189
|
-
data: { message: 'Bad Request' },
|
|
190
|
-
};
|
|
191
|
-
mockApiServiceInstance.client.post.mockRejectedValue(axiosError);
|
|
192
|
-
yield expect((0, _1.createMigration)(mockOptions)).rejects.toThrow('Request failed with status code 400');
|
|
193
|
-
}));
|
|
194
|
-
it('handles invalid response format - missing required fields', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
195
|
-
const mockResponse = {
|
|
196
|
-
status: 200,
|
|
197
|
-
data: {},
|
|
198
|
-
};
|
|
199
|
-
mockApiServiceInstance.client.post.mockResolvedValue(mockResponse);
|
|
200
|
-
yield expect((0, _1.createMigration)(mockOptions)).rejects.toThrow('Invalid response format from migration service.');
|
|
201
|
-
}));
|
|
202
|
-
it('handles API service errors', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
203
|
-
const error = new Error('Network error');
|
|
204
|
-
mockApiServiceInstance.client.post.mockRejectedValue(error);
|
|
205
|
-
yield expect((0, _1.createMigration)(mockOptions)).rejects.toThrow('Network error');
|
|
206
|
-
}));
|
|
207
|
-
it('propagates rejected values as-is', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
208
|
-
// Non-Error values are propagated without wrapping
|
|
209
|
-
mockApiServiceInstance.client.post.mockRejectedValue('Unknown error');
|
|
210
|
-
yield expect((0, _1.createMigration)(mockOptions)).rejects.toBe('Unknown error');
|
|
211
|
-
}));
|
|
212
|
-
});
|
|
213
|
-
describe('createTarFile', () => {
|
|
214
|
-
let mockChildProcess;
|
|
215
|
-
beforeEach(() => {
|
|
216
|
-
mockChildProcess = {
|
|
217
|
-
on: jest.fn(),
|
|
218
|
-
};
|
|
219
|
-
mockSpawn.mockReturnValue(mockChildProcess);
|
|
220
|
-
mockPath.join.mockImplementation((...paths) => paths.join('/'));
|
|
221
|
-
mockPath.dirname.mockReturnValue('/parent');
|
|
222
|
-
mockPath.basename.mockReturnValue('export');
|
|
223
|
-
// Mock Date.now() to return consistent timestamp
|
|
224
|
-
jest.spyOn(Date, 'now').mockReturnValue(1234567890);
|
|
225
|
-
});
|
|
226
|
-
afterEach(() => {
|
|
227
|
-
jest.restoreAllMocks();
|
|
228
|
-
});
|
|
229
|
-
it('creates tar file successfully', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
230
|
-
const promise = (0, _1.createTarFile)('/parent/export');
|
|
231
|
-
// Simulate successful tar creation
|
|
232
|
-
const closeCallback = mockChildProcess.on.mock.calls.find((call) => call[0] === 'close')[1];
|
|
233
|
-
closeCallback(0);
|
|
234
|
-
const result = yield promise;
|
|
235
|
-
expect(result).toBe(`${process.cwd()}/export_1234567890.tar.gz`);
|
|
236
|
-
expect(mockSpawn).toHaveBeenCalledWith('tar', [
|
|
237
|
-
'-czf',
|
|
238
|
-
`${process.cwd()}/export_1234567890.tar.gz`,
|
|
239
|
-
'-C',
|
|
240
|
-
'/parent',
|
|
241
|
-
'export',
|
|
242
|
-
]);
|
|
243
|
-
}));
|
|
244
|
-
it('handles tar command failure', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
245
|
-
const promise = (0, _1.createTarFile)('/parent/export');
|
|
246
|
-
// Simulate tar command failure
|
|
247
|
-
const closeCallback = mockChildProcess.on.mock.calls.find((call) => call[0] === 'close')[1];
|
|
248
|
-
closeCallback(1);
|
|
249
|
-
yield expect(promise).rejects.toThrow('tar command failed with exit code 1');
|
|
250
|
-
}));
|
|
251
|
-
it('handles spawn error', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
252
|
-
const promise = (0, _1.createTarFile)('/parent/export');
|
|
253
|
-
// Simulate spawn error
|
|
254
|
-
const errorCallback = mockChildProcess.on.mock.calls.find((call) => call[0] === 'error')[1];
|
|
255
|
-
errorCallback(new Error('Spawn failed'));
|
|
256
|
-
yield expect(promise).rejects.toThrow('Failed to create tar file: Spawn failed');
|
|
257
|
-
}));
|
|
258
|
-
});
|
|
259
|
-
});
|
|
260
|
-
});
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { GetMigrationOptions, GetMigrationApiResponse, BatchGetMigrationOptions, BatchGetMigrationApiResponse } from '../types';
|
|
2
|
-
export declare function getMigration(options: GetMigrationOptions): Promise<GetMigrationApiResponse>;
|
|
3
|
-
export declare function batchGetMigration(options: BatchGetMigrationOptions): Promise<BatchGetMigrationApiResponse>;
|