@salesforce/b2c-cli 1.3.2 → 1.5.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.
@@ -127,7 +127,25 @@ export default class CodeDeploy extends CartridgeCommand {
127
127
  await this.operations.deleteCartridges(this.instance, cartridges);
128
128
  }
129
129
  // Upload cartridges
130
- await this.operations.uploadCartridges(this.instance, cartridges);
130
+ const uploadPhaseLabels = {
131
+ archiving: t('commands.code.deploy.archiving', 'Creating cartridge archive'),
132
+ uploading: t('commands.code.deploy.uploading', 'Uploading archive'),
133
+ unzipping: t('commands.code.deploy.unzipping', 'Unzipping on server'),
134
+ cleanup: t('commands.code.deploy.cleanup', 'Cleaning up'),
135
+ };
136
+ await this.operations.uploadCartridges(this.instance, cartridges, {
137
+ onProgress: (info) => {
138
+ if (this.jsonEnabled())
139
+ return;
140
+ const label = uploadPhaseLabels[info.phase];
141
+ if (info.elapsedSeconds === 0) {
142
+ this.log(` ${label}...`);
143
+ }
144
+ else {
145
+ this.log(` ${label}... (${info.elapsedSeconds}s elapsed)`);
146
+ }
147
+ },
148
+ });
131
149
  // Optionally activate or reload code version
132
150
  let activated = false;
133
151
  let reloaded = false;
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/commands/code/deploy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../../src/commands/code/deploy.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import { downloadCartridges, getActiveCodeVersion, type DownloadResult } from '@salesforce/b2c-tooling-sdk/operations/code';
2
+ import { CartridgeCommand } from '@salesforce/b2c-tooling-sdk/cli';
3
+ export default class CodeDownload extends CartridgeCommand<typeof CodeDownload> {
4
+ static hiddenAliases: string[];
5
+ static args: {
6
+ cartridgePath: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
7
+ };
8
+ static description: string;
9
+ static enableJsonFlag: boolean;
10
+ static examples: string[];
11
+ static flags: {
12
+ output: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
13
+ mirror: import("@oclif/core/interfaces").BooleanFlag<boolean>;
14
+ cartridge: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
15
+ 'exclude-cartridge': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
16
+ server: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
17
+ 'webdav-server': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
18
+ 'code-version': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
19
+ username: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
20
+ password: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
21
+ certificate: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
22
+ passphrase: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
23
+ selfsigned: import("@oclif/core/interfaces").BooleanFlag<boolean>;
24
+ verify: import("@oclif/core/interfaces").BooleanFlag<boolean>;
25
+ 'client-id': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
26
+ 'client-secret': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
27
+ 'auth-scope': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
28
+ 'short-code': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
29
+ 'tenant-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
30
+ 'auth-methods': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
31
+ 'user-auth': import("@oclif/core/interfaces").BooleanFlag<boolean>;
32
+ 'account-manager-host': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
33
+ 'log-level': import("@oclif/core/interfaces").OptionFlag<"trace" | "debug" | "info" | "warn" | "error" | "silent" | undefined, import("@oclif/core/interfaces").CustomOptions>;
34
+ debug: import("@oclif/core/interfaces").BooleanFlag<boolean>;
35
+ json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
36
+ jsonl: import("@oclif/core/interfaces").BooleanFlag<boolean>;
37
+ lang: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
38
+ config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
39
+ instance: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
40
+ 'project-directory': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
41
+ 'extra-query': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
42
+ 'extra-body': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
43
+ 'extra-headers': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
44
+ };
45
+ protected operations: {
46
+ downloadCartridges: typeof downloadCartridges;
47
+ getActiveCodeVersion: typeof getActiveCodeVersion;
48
+ };
49
+ run(): Promise<DownloadResult>;
50
+ }
@@ -0,0 +1,163 @@
1
+ /*
2
+ * Copyright (c) 2025, Salesforce, Inc.
3
+ * SPDX-License-Identifier: Apache-2
4
+ * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0
5
+ */
6
+ import { Flags } from '@oclif/core';
7
+ import { downloadCartridges, getActiveCodeVersion, } from '@salesforce/b2c-tooling-sdk/operations/code';
8
+ import { CartridgeCommand } from '@salesforce/b2c-tooling-sdk/cli';
9
+ import { t, withDocs } from '../../i18n/index.js';
10
+ export default class CodeDownload extends CartridgeCommand {
11
+ static hiddenAliases = ['code:download'];
12
+ static args = {
13
+ ...CartridgeCommand.baseArgs,
14
+ };
15
+ static description = withDocs(t('commands.code.download.description', 'Download cartridge code from a B2C Commerce instance'), '/cli/code.html#b2c-code-download');
16
+ static enableJsonFlag = true;
17
+ static examples = [
18
+ '<%= config.bin %> <%= command.id %>',
19
+ '<%= config.bin %> <%= command.id %> -o ./downloaded',
20
+ '<%= config.bin %> <%= command.id %> --server my-sandbox.demandware.net --code-version v1',
21
+ '<%= config.bin %> <%= command.id %> --mirror',
22
+ '<%= config.bin %> <%= command.id %> -c app_storefront_base -c plugin_applepay',
23
+ '<%= config.bin %> <%= command.id %> -x test_cartridge',
24
+ ];
25
+ static flags = {
26
+ ...CartridgeCommand.baseFlags,
27
+ ...CartridgeCommand.cartridgeFlags,
28
+ output: Flags.string({
29
+ char: 'o',
30
+ description: 'Output directory for downloaded cartridges',
31
+ default: 'cartridges',
32
+ exclusive: ['mirror'],
33
+ }),
34
+ mirror: Flags.boolean({
35
+ char: 'm',
36
+ description: 'Extract cartridges to their local project locations',
37
+ default: false,
38
+ exclusive: ['output'],
39
+ }),
40
+ };
41
+ operations = {
42
+ downloadCartridges,
43
+ getActiveCodeVersion,
44
+ };
45
+ async run() {
46
+ this.requireWebDavCredentials();
47
+ const hostname = this.resolvedConfig.values.hostname;
48
+ let version = this.resolvedConfig.values.codeVersion;
49
+ const needsOAuth = !version;
50
+ if (needsOAuth && !this.hasOAuthCredentials()) {
51
+ this.error(t('commands.code.download.oauthRequired', 'No code version specified. OAuth credentials are required to auto-discover the active code version.\n\nProvide --code-version to use basic auth only, or configure OAuth credentials.\nSee: https://salesforcecommercecloud.github.io/b2c-developer-tooling/guide/configuration.html'));
52
+ }
53
+ // If no code version specified, discover the active one
54
+ if (!version) {
55
+ this.warn(t('commands.code.download.noCodeVersion', 'No code version specified, discovering active code version...'));
56
+ const activeVersion = await this.operations.getActiveCodeVersion(this.instance);
57
+ if (!activeVersion?.id) {
58
+ this.error(t('commands.code.download.noActiveVersion', 'No active code version found. Specify one with --code-version.'));
59
+ }
60
+ version = activeVersion.id;
61
+ this.instance.config.codeVersion = version;
62
+ }
63
+ // Build mirror map if --mirror flag is set
64
+ let mirror;
65
+ if (this.flags.mirror) {
66
+ const cartridges = await this.findCartridgesWithProviders();
67
+ if (cartridges.length === 0) {
68
+ this.error(t('commands.code.download.noLocalCartridges', 'No local cartridges found in {{path}} for mirror mode', {
69
+ path: this.cartridgePath,
70
+ }));
71
+ }
72
+ mirror = new Map(cartridges.map((c) => [c.name, c.src]));
73
+ }
74
+ // Create lifecycle context
75
+ const context = this.createContext('code:download', {
76
+ cartridgePath: this.cartridgePath,
77
+ hostname,
78
+ codeVersion: version,
79
+ mirror: this.flags.mirror,
80
+ output: this.flags.output,
81
+ ...this.cartridgeOptions,
82
+ });
83
+ // Run beforeOperation hooks
84
+ const beforeResult = await this.runBeforeHooks(context);
85
+ if (beforeResult.skip) {
86
+ this.log(t('commands.code.download.skipped', 'Download skipped: {{reason}}', {
87
+ reason: beforeResult.skipReason || 'skipped by plugin',
88
+ }));
89
+ return {
90
+ cartridges: [],
91
+ codeVersion: version,
92
+ outputDirectory: this.flags.output ?? 'cartridges',
93
+ };
94
+ }
95
+ this.log(t('commands.code.download.downloading', 'Downloading code version "{{version}}" from {{hostname}}...', {
96
+ version,
97
+ hostname,
98
+ }));
99
+ // Temporarily allow DELETE for zip cleanup
100
+ const cleanupSafetyRule = this.safetyGuard.temporarilyAddRule({
101
+ method: 'DELETE',
102
+ path: '**/Cartridges/*.zip',
103
+ action: 'allow',
104
+ });
105
+ try {
106
+ const phaseLabels = {
107
+ zipping: t('commands.code.download.zipping', 'Archiving code version'),
108
+ downloading: t('commands.code.download.downloadingZip', 'Downloading cartridges'),
109
+ cleanup: t('commands.code.download.cleanup', 'Cleaning up'),
110
+ extracting: t('commands.code.download.extracting', 'Extracting cartridges'),
111
+ };
112
+ const result = await this.operations.downloadCartridges(this.instance, this.flags.output ?? 'cartridges', {
113
+ include: this.cartridgeOptions.include,
114
+ exclude: this.cartridgeOptions.exclude,
115
+ mirror,
116
+ onProgress: (info) => {
117
+ if (this.jsonEnabled())
118
+ return;
119
+ const label = phaseLabels[info.phase];
120
+ if (info.elapsedSeconds === 0) {
121
+ this.log(` ${label}...`);
122
+ }
123
+ else {
124
+ this.log(t('commands.code.download.elapsed', ' {{label}}... ({{elapsed}}s elapsed)', {
125
+ label,
126
+ elapsed: String(info.elapsedSeconds),
127
+ }));
128
+ }
129
+ },
130
+ });
131
+ this.log(t('commands.code.download.summary', 'Downloaded {{count}} cartridge(s) from version "{{codeVersion}}"', {
132
+ count: result.cartridges.length,
133
+ codeVersion: result.codeVersion,
134
+ }));
135
+ for (const name of result.cartridges) {
136
+ this.log(` ${name}`);
137
+ }
138
+ // Run afterOperation hooks with success
139
+ await this.runAfterHooks(context, {
140
+ success: true,
141
+ duration: Date.now() - context.startTime,
142
+ data: result,
143
+ });
144
+ return result;
145
+ }
146
+ catch (error) {
147
+ // Run afterOperation hooks with failure
148
+ await this.runAfterHooks(context, {
149
+ success: false,
150
+ error: error instanceof Error ? error : new Error(String(error)),
151
+ duration: Date.now() - context.startTime,
152
+ });
153
+ if (error instanceof Error) {
154
+ this.error(t('commands.code.download.failed', 'Download failed: {{message}}', { message: error.message }));
155
+ }
156
+ throw error;
157
+ }
158
+ finally {
159
+ cleanupSafetyRule();
160
+ }
161
+ }
162
+ }
163
+ //# sourceMappingURL=download.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"download.js","sourceRoot":"","sources":["../../../src/commands/code/download.ts"],"names":[],"mappings":"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"}
@@ -8,9 +8,11 @@ export default class JobImport extends JobCommand<typeof JobImport> {
8
8
  static enableJsonFlag: boolean;
9
9
  static examples: string[];
10
10
  static flags: {
11
+ wait: import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
12
  'keep-archive': import("@oclif/core/interfaces").BooleanFlag<boolean>;
12
13
  remote: import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
14
  timeout: import("@oclif/core/interfaces").OptionFlag<number | undefined, import("@oclif/core/interfaces").CustomOptions>;
15
+ 'poll-interval': import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
14
16
  'show-log': import("@oclif/core/interfaces").BooleanFlag<boolean>;
15
17
  server: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
16
18
  'webdav-server': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
@@ -24,6 +24,12 @@ export default class JobImport extends JobCommand {
24
24
  ];
25
25
  static flags = {
26
26
  ...JobCommand.baseFlags,
27
+ wait: Flags.boolean({
28
+ char: 'w',
29
+ description: 'Wait for import job to complete',
30
+ default: true,
31
+ allowNo: true,
32
+ }),
27
33
  'keep-archive': Flags.boolean({
28
34
  char: 'k',
29
35
  description: 'Keep archive on instance after import',
@@ -38,6 +44,11 @@ export default class JobImport extends JobCommand {
38
44
  char: 't',
39
45
  description: 'Timeout in seconds (default: no timeout)',
40
46
  }),
47
+ 'poll-interval': Flags.integer({
48
+ description: 'Polling interval in seconds when using --wait',
49
+ default: 3,
50
+ dependsOn: ['wait'],
51
+ }),
41
52
  'show-log': Flags.boolean({
42
53
  description: 'Show job log on failure',
43
54
  default: true,
@@ -50,7 +61,7 @@ export default class JobImport extends JobCommand {
50
61
  this.requireOAuthCredentials();
51
62
  this.requireWebDavCredentials();
52
63
  const { target } = this.args;
53
- const { 'keep-archive': keepArchive, remote, timeout, 'show-log': showLog = true } = this.flags;
64
+ const { wait, 'keep-archive': keepArchive, remote, timeout, 'poll-interval': pollInterval, 'show-log': showLog = true, } = this.flags;
54
65
  const hostname = this.resolvedConfig.values.hostname;
55
66
  // Safety evaluation — check rules for import job before executing.
56
67
  // Command-level rules are already evaluated generically in BaseCommand.init().
@@ -103,8 +114,10 @@ export default class JobImport extends JobCommand {
103
114
  const importTarget = remote ? { remoteFilename: target } : target;
104
115
  const result = await this.operations.siteArchiveImport(this.instance, importTarget, {
105
116
  keepArchive,
117
+ wait,
106
118
  waitOptions: {
107
119
  timeoutSeconds: timeout,
120
+ pollIntervalSeconds: pollInterval,
108
121
  onPoll: (info) => {
109
122
  if (!this.jsonEnabled()) {
110
123
  this.log(t('commands.job.import.progress', ' Status: {{status}} ({{elapsed}}s elapsed)', {
@@ -115,11 +128,19 @@ export default class JobImport extends JobCommand {
115
128
  },
116
129
  },
117
130
  });
118
- const durationSec = result.execution.duration ? (result.execution.duration / 1000).toFixed(1) : 'N/A';
119
- this.log(t('commands.job.import.completed', 'Import completed: {{status}} (duration: {{duration}}s)', {
120
- status: result.execution.exit_status?.code || result.execution.execution_status,
121
- duration: durationSec,
122
- }));
131
+ if (wait) {
132
+ const durationSec = result.execution.duration ? (result.execution.duration / 1000).toFixed(1) : 'N/A';
133
+ this.log(t('commands.job.import.completed', 'Import completed: {{status}} (duration: {{duration}}s)', {
134
+ status: result.execution.exit_status?.code || result.execution.execution_status,
135
+ duration: durationSec,
136
+ }));
137
+ }
138
+ else {
139
+ this.log(t('commands.job.import.started', 'Import job started: {{executionId}} (status: {{status}})', {
140
+ executionId: result.execution.id,
141
+ status: result.execution.execution_status,
142
+ }));
143
+ }
123
144
  if (result.archiveKept) {
124
145
  this.log(t('commands.job.import.archiveKept', 'Archive kept at: Impex/src/instance/{{filename}}', {
125
146
  filename: result.archiveFilename,
@@ -1 +1 @@
1
- {"version":3,"file":"import.js","sourceRoot":"","sources":["../../../src/commands/job/import.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"import.js","sourceRoot":"","sources":["../../../src/commands/job/import.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ import { MrtCommand } from '@salesforce/b2c-tooling-sdk/cli';
2
+ import { listEnvVars, setEnvVar, setEnvVars } from '@salesforce/b2c-tooling-sdk/operations/mrt';
3
+ /**
4
+ * Push local .env file variables to an MRT project environment.
5
+ *
6
+ * Environment variables read:
7
+ * MRT_PROJECT (optional) - MRT project slug, overridden by --project flag
8
+ * MRT_ENVIRONMENT (optional) - MRT environment, overridden by --environment flag
9
+ */
10
+ export default class MrtEnvVarPush extends MrtCommand<typeof MrtEnvVarPush> {
11
+ static description: string;
12
+ static enableJsonFlag: boolean;
13
+ static examples: string[];
14
+ static flags: {
15
+ file: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
16
+ 'exclude-prefix': import("@oclif/core/interfaces").OptionFlag<string[], import("@oclif/core/interfaces").CustomOptions>;
17
+ yes: import("@oclif/core/interfaces").BooleanFlag<boolean>;
18
+ 'api-key': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
19
+ project: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
20
+ environment: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
21
+ 'cloud-origin': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
22
+ 'credentials-file': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
23
+ 'log-level': import("@oclif/core/interfaces").OptionFlag<"trace" | "debug" | "info" | "warn" | "error" | "silent" | undefined, import("@oclif/core/interfaces").CustomOptions>;
24
+ debug: import("@oclif/core/interfaces").BooleanFlag<boolean>;
25
+ json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
26
+ jsonl: import("@oclif/core/interfaces").BooleanFlag<boolean>;
27
+ lang: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
28
+ config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
29
+ instance: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
30
+ 'project-directory': import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
31
+ 'extra-query': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
32
+ 'extra-body': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
33
+ 'extra-headers': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
34
+ };
35
+ protected operations: {
36
+ listEnvVars: typeof listEnvVars;
37
+ setEnvVar: typeof setEnvVar;
38
+ setEnvVars: typeof setEnvVars;
39
+ readEnvFile: (path: string) => string;
40
+ };
41
+ run(): Promise<{
42
+ pushed: number;
43
+ failed: number;
44
+ skipped: number;
45
+ }>;
46
+ }
@@ -0,0 +1,154 @@
1
+ /*
2
+ * Copyright (c) 2025, Salesforce, Inc.
3
+ * SPDX-License-Identifier: Apache-2
4
+ * For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0
5
+ */
6
+ import { readFileSync } from 'node:fs';
7
+ import { resolve } from 'node:path';
8
+ import { parseEnv } from 'node:util';
9
+ import { Flags, ux } from '@oclif/core';
10
+ import { confirm } from '@inquirer/prompts';
11
+ import { MrtCommand } from '@salesforce/b2c-tooling-sdk/cli';
12
+ import { listEnvVars, setEnvVar, setEnvVars } from '@salesforce/b2c-tooling-sdk/operations/mrt';
13
+ import { t, withDocs } from '../../../../i18n/index.js';
14
+ import { filterByPrefix, computeEnvVarDiff, formatEnvVarDiffSummary } from '../../../../utils/mrt/env-var-diff.js';
15
+ /**
16
+ * Push local .env file variables to an MRT project environment.
17
+ *
18
+ * Environment variables read:
19
+ * MRT_PROJECT (optional) - MRT project slug, overridden by --project flag
20
+ * MRT_ENVIRONMENT (optional) - MRT environment, overridden by --environment flag
21
+ */
22
+ export default class MrtEnvVarPush extends MrtCommand {
23
+ static description = withDocs(t('commands.mrt.env.var.push.description', 'Push local .env file variables to a Managed Runtime environment'), '/cli/mrt.html#b2c-mrt-env-var-push');
24
+ static enableJsonFlag = true;
25
+ static examples = [
26
+ '<%= config.bin %> <%= command.id %> --project acme-storefront --environment production',
27
+ '<%= config.bin %> <%= command.id %> -p my-project -e staging --yes',
28
+ '<%= config.bin %> <%= command.id %> --file config/.env --exclude-prefix INTERNAL_ -p my-project -e staging',
29
+ ];
30
+ static flags = {
31
+ ...MrtCommand.baseFlags,
32
+ file: Flags.string({
33
+ char: 'f',
34
+ description: t('commands.mrt.env.var.push.fileFlag', 'Path to the .env file to push'),
35
+ default: '.env',
36
+ }),
37
+ 'exclude-prefix': Flags.string({
38
+ description: t('commands.mrt.env.var.push.excludePrefixFlag', 'Exclude variables whose keys start with this prefix (repeatable)'),
39
+ multiple: true,
40
+ default: ['MRT_'],
41
+ }),
42
+ yes: Flags.boolean({
43
+ char: 'y',
44
+ description: t('commands.mrt.env.var.push.yesFlag', 'Skip confirmation prompt'),
45
+ default: false,
46
+ }),
47
+ };
48
+ operations = {
49
+ listEnvVars,
50
+ setEnvVar,
51
+ setEnvVars,
52
+ readEnvFile: (path) => readFileSync(path, 'utf8'),
53
+ };
54
+ async run() {
55
+ const { flags } = await this.parse(MrtEnvVarPush);
56
+ const envFilePath = resolve(flags.file);
57
+ // Step 1: Read and parse .env file
58
+ let rawContent;
59
+ try {
60
+ rawContent = this.operations.readEnvFile(envFilePath);
61
+ }
62
+ catch (error_) {
63
+ const error = error_;
64
+ if (error.code === 'ENOENT') {
65
+ this.error(t('commands.mrt.env.var.push.fileNotFound', '.env file not found: {{path}}', { path: envFilePath }));
66
+ }
67
+ throw error_;
68
+ }
69
+ const parsed = parseEnv(rawContent);
70
+ // Step 2: Filter out excluded prefixes
71
+ const localVars = filterByPrefix(new Map(Object.entries(parsed).filter((e) => e[1] !== undefined)), flags['exclude-prefix']);
72
+ // Step 3: Validate MRT target
73
+ const { mrtProject: project, mrtEnvironment: environment } = this.resolvedConfig.values;
74
+ if (!project) {
75
+ this.error(t('commands.mrt.env.var.push.missingProject', 'MRT project is required. Provide --project flag, set MRT_PROJECT, or set mrtProject in dw.json.'));
76
+ }
77
+ if (!environment) {
78
+ this.error(t('commands.mrt.env.var.push.missingEnvironment', 'MRT environment is required. Provide --environment flag, set MRT_ENVIRONMENT, or set mrtEnvironment in dw.json.'));
79
+ }
80
+ // Step 4: Fetch current remote env vars
81
+ this.requireMrtCredentials();
82
+ const { mrtOrigin: origin } = this.resolvedConfig.values;
83
+ const auth = this.getMrtAuth();
84
+ ux.stdout(t('commands.mrt.env.var.push.fetching', 'Fetching remote env vars for {{project}}/{{environment}}...', {
85
+ project,
86
+ environment,
87
+ }));
88
+ const { variables: remoteVariables } = await this.operations.listEnvVars({ projectSlug: project, environment, origin }, auth);
89
+ const remoteVars = new Map(remoteVariables.map((v) => [v.name, v.value]));
90
+ // Step 5: Compute diff
91
+ const diff = computeEnvVarDiff(localVars, remoteVars);
92
+ const toSync = [...diff.add, ...diff.update];
93
+ // Step 6: Display summary
94
+ ux.stdout('');
95
+ ux.stdout(formatEnvVarDiffSummary(diff));
96
+ if (toSync.length === 0) {
97
+ return { pushed: 0, failed: 0, skipped: diff.remoteOnly.length };
98
+ }
99
+ // Step 7: Confirm unless --yes
100
+ if (!flags.yes) {
101
+ const message = t('commands.mrt.env.var.push.confirm', 'Push {{count}} variable(s) ({{add}} new, {{update}} updated) to {{project}}/{{environment}}?', {
102
+ count: toSync.length,
103
+ add: diff.add.length,
104
+ update: diff.update.length,
105
+ project,
106
+ environment,
107
+ });
108
+ const confirmed = await confirm({ message, default: false });
109
+ if (!confirmed) {
110
+ ux.stdout(t('commands.mrt.env.var.push.aborted', 'Aborted.'));
111
+ return { pushed: 0, failed: 0, skipped: diff.remoteOnly.length };
112
+ }
113
+ }
114
+ // Step 8: Push variables — try batch first, fall back to individual calls
115
+ let pushed = 0;
116
+ let failed = 0;
117
+ const baseParams = { projectSlug: project, environment, origin };
118
+ try {
119
+ const variables = Object.fromEntries(toSync.map(({ key, value }) => [key, value]));
120
+ await this.operations.setEnvVars({ ...baseParams, variables }, auth);
121
+ for (const { key } of toSync) {
122
+ ux.stdout(t('commands.mrt.env.var.push.varSuccess', ' ✓ {{key}}', { key }));
123
+ }
124
+ pushed = toSync.length;
125
+ }
126
+ catch {
127
+ this.warn(t('commands.mrt.env.var.push.batchFailed', 'Batch push failed, retrying variables individually...'));
128
+ const results = await Promise.allSettled(toSync.map(({ key, value }) => this.operations.setEnvVar({ ...baseParams, key, value }, auth)));
129
+ for (const [index, result] of results.entries()) {
130
+ const { key } = toSync[index];
131
+ if (result.status === 'fulfilled') {
132
+ ux.stdout(t('commands.mrt.env.var.push.varSuccess', ' ✓ {{key}}', { key }));
133
+ pushed++;
134
+ }
135
+ else {
136
+ this.warn(t('commands.mrt.env.var.push.varFailed', ' ✗ {{key}}: {{message}}', {
137
+ key,
138
+ message: result.reason.message,
139
+ }));
140
+ failed++;
141
+ }
142
+ }
143
+ }
144
+ // Step 9: Summary
145
+ ux.stdout('');
146
+ ux.stdout(t('commands.mrt.env.var.push.summary', 'Summary: {{pushed}} pushed, {{failed}} failed, {{skipped}} remote-only (not deleted)', {
147
+ pushed,
148
+ failed,
149
+ skipped: diff.remoteOnly.length,
150
+ }));
151
+ return { pushed, failed, skipped: diff.remoteOnly.length };
152
+ }
153
+ }
154
+ //# sourceMappingURL=push.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"push.js","sourceRoot":"","sources":["../../../../../src/commands/mrt/env/var/push.ts"],"names":[],"mappings":"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"}