@salesforce/b2c-cli 0.0.0-nightly.20260119053920

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 (169) hide show
  1. package/README.md +222 -0
  2. package/bin/dev.cmd +3 -0
  3. package/bin/dev.js +17 -0
  4. package/bin/run.cmd +3 -0
  5. package/bin/run.js +17 -0
  6. package/dist/commands/_test/index.d.ts +6 -0
  7. package/dist/commands/_test/index.js +39 -0
  8. package/dist/commands/_test/index.js.map +1 -0
  9. package/dist/commands/auth/token.d.ts +16 -0
  10. package/dist/commands/auth/token.js +35 -0
  11. package/dist/commands/auth/token.js.map +1 -0
  12. package/dist/commands/code/activate.d.ts +33 -0
  13. package/dist/commands/code/activate.js +83 -0
  14. package/dist/commands/code/activate.js.map +1 -0
  15. package/dist/commands/code/delete.d.ts +33 -0
  16. package/dist/commands/code/delete.js +67 -0
  17. package/dist/commands/code/delete.js.map +1 -0
  18. package/dist/commands/code/deploy.d.ts +38 -0
  19. package/dist/commands/code/deploy.js +141 -0
  20. package/dist/commands/code/deploy.js.map +1 -0
  21. package/dist/commands/code/list.d.ts +8 -0
  22. package/dist/commands/code/list.js +64 -0
  23. package/dist/commands/code/list.js.map +1 -0
  24. package/dist/commands/code/watch.d.ts +34 -0
  25. package/dist/commands/code/watch.js +70 -0
  26. package/dist/commands/code/watch.js.map +1 -0
  27. package/dist/commands/docs/download.d.ts +35 -0
  28. package/dist/commands/docs/download.js +58 -0
  29. package/dist/commands/docs/download.js.map +1 -0
  30. package/dist/commands/docs/read.d.ts +29 -0
  31. package/dist/commands/docs/read.js +70 -0
  32. package/dist/commands/docs/read.js.map +1 -0
  33. package/dist/commands/docs/schema.d.ts +32 -0
  34. package/dist/commands/docs/schema.js +68 -0
  35. package/dist/commands/docs/schema.js.map +1 -0
  36. package/dist/commands/docs/search.d.ts +33 -0
  37. package/dist/commands/docs/search.js +102 -0
  38. package/dist/commands/docs/search.js.map +1 -0
  39. package/dist/commands/job/export.d.ts +50 -0
  40. package/dist/commands/job/export.js +270 -0
  41. package/dist/commands/job/export.js.map +1 -0
  42. package/dist/commands/job/import.d.ts +38 -0
  43. package/dist/commands/job/import.js +143 -0
  44. package/dist/commands/job/import.js.map +1 -0
  45. package/dist/commands/job/run.d.ts +45 -0
  46. package/dist/commands/job/run.js +205 -0
  47. package/dist/commands/job/run.js.map +1 -0
  48. package/dist/commands/job/search.d.ts +37 -0
  49. package/dist/commands/job/search.js +102 -0
  50. package/dist/commands/job/search.js.map +1 -0
  51. package/dist/commands/job/wait.d.ts +38 -0
  52. package/dist/commands/job/wait.js +85 -0
  53. package/dist/commands/job/wait.js.map +1 -0
  54. package/dist/commands/mrt/env/create.d.ts +41 -0
  55. package/dist/commands/mrt/env/create.js +226 -0
  56. package/dist/commands/mrt/env/create.js.map +1 -0
  57. package/dist/commands/mrt/env/delete.d.ts +34 -0
  58. package/dist/commands/mrt/env/delete.js +94 -0
  59. package/dist/commands/mrt/env/delete.js.map +1 -0
  60. package/dist/commands/mrt/env/var/delete.d.ts +34 -0
  61. package/dist/commands/mrt/env/var/delete.js +53 -0
  62. package/dist/commands/mrt/env/var/delete.js.map +1 -0
  63. package/dist/commands/mrt/env/var/list.d.ts +28 -0
  64. package/dist/commands/mrt/env/var/list.js +71 -0
  65. package/dist/commands/mrt/env/var/list.js.map +1 -0
  66. package/dist/commands/mrt/env/var/set.d.ts +35 -0
  67. package/dist/commands/mrt/env/var/set.js +84 -0
  68. package/dist/commands/mrt/env/var/set.js.map +1 -0
  69. package/dist/commands/mrt/push.d.ts +37 -0
  70. package/dist/commands/mrt/push.js +122 -0
  71. package/dist/commands/mrt/push.js.map +1 -0
  72. package/dist/commands/ods/create.d.ts +42 -0
  73. package/dist/commands/ods/create.js +255 -0
  74. package/dist/commands/ods/create.js.map +1 -0
  75. package/dist/commands/ods/delete.d.ts +15 -0
  76. package/dist/commands/ods/delete.js +86 -0
  77. package/dist/commands/ods/delete.js.map +1 -0
  78. package/dist/commands/ods/get.d.ts +17 -0
  79. package/dist/commands/ods/get.js +99 -0
  80. package/dist/commands/ods/get.js.map +1 -0
  81. package/dist/commands/ods/info.d.ts +27 -0
  82. package/dist/commands/ods/info.js +109 -0
  83. package/dist/commands/ods/info.js.map +1 -0
  84. package/dist/commands/ods/list.d.ts +31 -0
  85. package/dist/commands/ods/list.js +166 -0
  86. package/dist/commands/ods/list.js.map +1 -0
  87. package/dist/commands/ods/restart.d.ts +16 -0
  88. package/dist/commands/ods/restart.js +51 -0
  89. package/dist/commands/ods/restart.js.map +1 -0
  90. package/dist/commands/ods/start.d.ts +16 -0
  91. package/dist/commands/ods/start.js +51 -0
  92. package/dist/commands/ods/start.js.map +1 -0
  93. package/dist/commands/ods/stop.d.ts +16 -0
  94. package/dist/commands/ods/stop.js +51 -0
  95. package/dist/commands/ods/stop.js.map +1 -0
  96. package/dist/commands/scapi/custom/status.d.ts +81 -0
  97. package/dist/commands/scapi/custom/status.js +321 -0
  98. package/dist/commands/scapi/custom/status.js.map +1 -0
  99. package/dist/commands/scapi/schemas/get.d.ts +86 -0
  100. package/dist/commands/scapi/schemas/get.js +317 -0
  101. package/dist/commands/scapi/schemas/get.js.map +1 -0
  102. package/dist/commands/scapi/schemas/list.d.ts +48 -0
  103. package/dist/commands/scapi/schemas/list.js +148 -0
  104. package/dist/commands/scapi/schemas/list.js.map +1 -0
  105. package/dist/commands/sites/list.d.ts +10 -0
  106. package/dist/commands/sites/list.js +56 -0
  107. package/dist/commands/sites/list.js.map +1 -0
  108. package/dist/commands/slas/client/create.d.ts +38 -0
  109. package/dist/commands/slas/client/create.js +168 -0
  110. package/dist/commands/slas/client/create.js.map +1 -0
  111. package/dist/commands/slas/client/delete.d.ts +34 -0
  112. package/dist/commands/slas/client/delete.js +54 -0
  113. package/dist/commands/slas/client/delete.js.map +1 -0
  114. package/dist/commands/slas/client/get.d.ts +29 -0
  115. package/dist/commands/slas/client/get.js +51 -0
  116. package/dist/commands/slas/client/get.js.map +1 -0
  117. package/dist/commands/slas/client/list.d.ts +30 -0
  118. package/dist/commands/slas/client/list.js +64 -0
  119. package/dist/commands/slas/client/list.js.map +1 -0
  120. package/dist/commands/slas/client/open.d.ts +25 -0
  121. package/dist/commands/slas/client/open.js +56 -0
  122. package/dist/commands/slas/client/open.js.map +1 -0
  123. package/dist/commands/slas/client/update.d.ts +60 -0
  124. package/dist/commands/slas/client/update.js +183 -0
  125. package/dist/commands/slas/client/update.js.map +1 -0
  126. package/dist/commands/webdav/get.d.ts +41 -0
  127. package/dist/commands/webdav/get.js +61 -0
  128. package/dist/commands/webdav/get.js.map +1 -0
  129. package/dist/commands/webdav/ls.d.ts +17 -0
  130. package/dist/commands/webdav/ls.js +101 -0
  131. package/dist/commands/webdav/ls.js.map +1 -0
  132. package/dist/commands/webdav/mkdir.d.ts +19 -0
  133. package/dist/commands/webdav/mkdir.js +48 -0
  134. package/dist/commands/webdav/mkdir.js.map +1 -0
  135. package/dist/commands/webdav/put.d.ts +23 -0
  136. package/dist/commands/webdav/put.js +107 -0
  137. package/dist/commands/webdav/put.js.map +1 -0
  138. package/dist/commands/webdav/rm.d.ts +40 -0
  139. package/dist/commands/webdav/rm.js +67 -0
  140. package/dist/commands/webdav/rm.js.map +1 -0
  141. package/dist/commands/webdav/unzip.d.ts +15 -0
  142. package/dist/commands/webdav/unzip.js +48 -0
  143. package/dist/commands/webdav/unzip.js.map +1 -0
  144. package/dist/commands/webdav/zip.d.ts +15 -0
  145. package/dist/commands/webdav/zip.js +47 -0
  146. package/dist/commands/webdav/zip.js.map +1 -0
  147. package/dist/i18n/index.d.ts +29 -0
  148. package/dist/i18n/index.js +43 -0
  149. package/dist/i18n/index.js.map +1 -0
  150. package/dist/i18n/locales/de.d.ts +51 -0
  151. package/dist/i18n/locales/de.js +57 -0
  152. package/dist/i18n/locales/de.js.map +1 -0
  153. package/dist/i18n/locales/en.d.ts +118 -0
  154. package/dist/i18n/locales/en.js +124 -0
  155. package/dist/i18n/locales/en.js.map +1 -0
  156. package/dist/i18n/locales/index.d.ts +177 -0
  157. package/dist/i18n/locales/index.js +26 -0
  158. package/dist/i18n/locales/index.js.map +1 -0
  159. package/dist/index.d.ts +3 -0
  160. package/dist/index.js +13 -0
  161. package/dist/index.js.map +1 -0
  162. package/dist/utils/scapi/schemas.d.ts +40 -0
  163. package/dist/utils/scapi/schemas.js +49 -0
  164. package/dist/utils/scapi/schemas.js.map +1 -0
  165. package/dist/utils/slas/client.d.ts +65 -0
  166. package/dist/utils/slas/client.js +146 -0
  167. package/dist/utils/slas/client.js.map +1 -0
  168. package/oclif.manifest.json +10942 -0
  169. package/package.json +154 -0
@@ -0,0 +1,107 @@
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 * as fs from 'node:fs';
7
+ import { basename, extname, resolve } from 'node:path';
8
+ import { Args } from '@oclif/core';
9
+ import { WebDavCommand } from '@salesforce/b2c-tooling-sdk/cli';
10
+ import { t } from '../../i18n/index.js';
11
+ /**
12
+ * Common content type mappings by file extension.
13
+ */
14
+ const CONTENT_TYPES = {
15
+ '.zip': 'application/zip',
16
+ '.xml': 'application/xml',
17
+ '.json': 'application/json',
18
+ '.txt': 'text/plain',
19
+ '.csv': 'text/csv',
20
+ '.html': 'text/html',
21
+ '.css': 'text/css',
22
+ '.js': 'application/javascript',
23
+ '.png': 'image/png',
24
+ '.jpg': 'image/jpeg',
25
+ '.jpeg': 'image/jpeg',
26
+ '.gif': 'image/gif',
27
+ '.svg': 'image/svg+xml',
28
+ '.pdf': 'application/pdf',
29
+ };
30
+ /**
31
+ * Gets the content type for a file based on its extension.
32
+ */
33
+ function getContentType(filePath) {
34
+ const ext = extname(filePath).toLowerCase();
35
+ return CONTENT_TYPES[ext];
36
+ }
37
+ export default class WebDavPut extends WebDavCommand {
38
+ static args = {
39
+ local: Args.string({
40
+ description: 'Local file path to upload',
41
+ required: true,
42
+ }),
43
+ remote: Args.string({
44
+ description: 'Remote destination (directory or file path). If ending with / or is /, uses source filename.',
45
+ required: true,
46
+ }),
47
+ };
48
+ static description = t('commands.webdav.put.description', 'Upload a file to WebDAV');
49
+ static enableJsonFlag = true;
50
+ static examples = [
51
+ '<%= config.bin %> <%= command.id %> ./export.zip / # uploads to root as export.zip',
52
+ '<%= config.bin %> <%= command.id %> ./export.zip src/instance/ # uploads to src/instance/export.zip',
53
+ '<%= config.bin %> <%= command.id %> ./data.xml src/instance/renamed.xml # uploads with new name',
54
+ '<%= config.bin %> <%= command.id %> ./file.tar.gz / --root=temp # uploads to Temp/file.tar.gz',
55
+ ];
56
+ async run() {
57
+ this.ensureWebDavAuth();
58
+ const localPath = resolve(this.args.local);
59
+ const localFilename = basename(localPath);
60
+ // Verify local file exists
61
+ if (!fs.existsSync(localPath)) {
62
+ this.error(t('commands.webdav.put.fileNotFound', 'Local file not found: {{path}}', { path: localPath }));
63
+ }
64
+ // Determine remote path - if it looks like a directory, append the source filename
65
+ let remotePath = this.args.remote;
66
+ if (remotePath === '/' || remotePath === '' || remotePath.endsWith('/')) {
67
+ // Treat as directory, append source filename
68
+ remotePath = remotePath === '/' || remotePath === '' ? localFilename : `${remotePath}${localFilename}`;
69
+ }
70
+ const fullPath = this.buildPath(remotePath);
71
+ // Read local file
72
+ const content = fs.readFileSync(localPath);
73
+ const contentType = getContentType(localPath);
74
+ this.log(t('commands.webdav.put.uploading', 'Uploading {{local}} to {{remote}}...', { local: localPath, remote: fullPath }));
75
+ // Create parent directories if needed
76
+ await this.ensureParentDirectories(fullPath);
77
+ // Upload the file
78
+ await this.instance.webdav.put(fullPath, content, contentType);
79
+ const result = {
80
+ localPath,
81
+ remotePath: fullPath,
82
+ size: content.length,
83
+ contentType,
84
+ };
85
+ this.log(t('commands.webdav.put.success', 'Uploaded {{size}} bytes to {{path}}', {
86
+ size: result.size,
87
+ path: result.remotePath,
88
+ }));
89
+ return result;
90
+ }
91
+ /**
92
+ * Ensures all parent directories exist for the given path.
93
+ * Note: Sequential await is required here as each directory depends on its parent existing.
94
+ */
95
+ async ensureParentDirectories(fullPath) {
96
+ const parts = fullPath.split('/').filter(Boolean);
97
+ // Remove the filename, keep only directory parts
98
+ parts.pop();
99
+ let currentPath = '';
100
+ for (const part of parts) {
101
+ currentPath = currentPath ? `${currentPath}/${part}` : part;
102
+ // eslint-disable-next-line no-await-in-loop
103
+ await this.instance.webdav.mkcol(currentPath);
104
+ }
105
+ }
106
+ }
107
+ //# sourceMappingURL=put.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"put.js","sourceRoot":"","sources":["../../../src/commands/webdav/put.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { WebDavCommand } from '@salesforce/b2c-tooling-sdk/cli';
2
+ interface RmResult {
3
+ path: string;
4
+ deleted: boolean;
5
+ }
6
+ export default class WebDavRm extends WebDavCommand<typeof WebDavRm> {
7
+ static args: {
8
+ path: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
9
+ };
10
+ static description: string;
11
+ static enableJsonFlag: boolean;
12
+ static examples: string[];
13
+ static flags: {
14
+ force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
15
+ root: import("@oclif/core/interfaces").OptionFlag<string, 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
+ 'client-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
22
+ 'client-secret': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
23
+ scope: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
24
+ 'short-code': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
25
+ 'auth-methods': import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
26
+ 'account-manager-host': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
27
+ 'log-level': import("@oclif/core/interfaces").OptionFlag<"trace" | "debug" | "info" | "warn" | "error" | "silent" | undefined, import("@oclif/core/interfaces").CustomOptions>;
28
+ debug: import("@oclif/core/interfaces").BooleanFlag<boolean>;
29
+ json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
30
+ lang: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
31
+ config: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
32
+ instance: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
33
+ 'working-directory': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
34
+ 'extra-query': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
35
+ 'extra-body': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
36
+ 'extra-headers': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
37
+ };
38
+ run(): Promise<RmResult>;
39
+ }
40
+ export {};
@@ -0,0 +1,67 @@
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 * as readline from 'node:readline';
7
+ import { Args, Flags } from '@oclif/core';
8
+ import { WebDavCommand } from '@salesforce/b2c-tooling-sdk/cli';
9
+ import { t } from '../../i18n/index.js';
10
+ /**
11
+ * Simple confirmation prompt.
12
+ */
13
+ async function confirm(message) {
14
+ const rl = readline.createInterface({
15
+ input: process.stdin,
16
+ output: process.stderr,
17
+ });
18
+ return new Promise((resolve) => {
19
+ rl.question(`${message} `, (answer) => {
20
+ rl.close();
21
+ resolve(answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes');
22
+ });
23
+ });
24
+ }
25
+ export default class WebDavRm extends WebDavCommand {
26
+ static args = {
27
+ path: Args.string({
28
+ description: 'Path to delete relative to root',
29
+ required: true,
30
+ }),
31
+ };
32
+ static description = t('commands.webdav.rm.description', 'Delete a file or directory from WebDAV');
33
+ static enableJsonFlag = true;
34
+ static examples = [
35
+ '<%= config.bin %> <%= command.id %> src/instance/old-export.zip',
36
+ '<%= config.bin %> <%= command.id %> src/instance/old-export.zip --force',
37
+ '<%= config.bin %> <%= command.id %> --root=temp my-temp-dir --force',
38
+ ];
39
+ static flags = {
40
+ ...WebDavCommand.baseFlags,
41
+ force: Flags.boolean({
42
+ char: 'f',
43
+ description: 'Skip confirmation prompt',
44
+ default: false,
45
+ }),
46
+ };
47
+ async run() {
48
+ this.ensureWebDavAuth();
49
+ const fullPath = this.buildPath(this.args.path);
50
+ // Confirm deletion unless --force is used
51
+ if (!this.flags.force) {
52
+ const confirmed = await confirm(t('commands.webdav.rm.confirm', 'Are you sure you want to delete "{{path}}"? (y/n)', { path: fullPath }));
53
+ if (!confirmed) {
54
+ this.log(t('commands.webdav.rm.cancelled', 'Deletion cancelled'));
55
+ return { path: fullPath, deleted: false };
56
+ }
57
+ }
58
+ await this.instance.webdav.delete(fullPath);
59
+ const result = {
60
+ path: fullPath,
61
+ deleted: true,
62
+ };
63
+ this.log(t('commands.webdav.rm.success', 'Deleted: {{path}}', { path: fullPath }));
64
+ return result;
65
+ }
66
+ }
67
+ //# sourceMappingURL=rm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rm.js","sourceRoot":"","sources":["../../../src/commands/webdav/rm.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAC,IAAI,EAAE,KAAK,EAAC,MAAM,aAAa,CAAC;AACxC,OAAO,EAAC,aAAa,EAAC,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAC,CAAC,EAAC,MAAM,qBAAqB,CAAC;AAEtC;;GAEG;AACH,KAAK,UAAU,OAAO,CAAC,OAAe;IACpC,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,EAAE,CAAC,QAAQ,CAAC,GAAG,OAAO,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE;YACpC,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,GAAG,IAAI,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC;QAC1E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAOD,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,aAA8B;IAClE,MAAM,CAAC,IAAI,GAAG;QACZ,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;YAChB,WAAW,EAAE,iCAAiC;YAC9C,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAC;IAEF,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,gCAAgC,EAAE,wCAAwC,CAAC,CAAC;IAEnG,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;IAE7B,MAAM,CAAC,QAAQ,GAAG;QAChB,iEAAiE;QACjE,yEAAyE;QACzE,qEAAqE;KACtE,CAAC;IAEF,MAAM,CAAC,KAAK,GAAG;QACb,GAAG,aAAa,CAAC,SAAS;QAC1B,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,0BAA0B;YACvC,OAAO,EAAE,KAAK;SACf,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEhD,0CAA0C;QAC1C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,SAAS,GAAG,MAAM,OAAO,CAC7B,CAAC,CAAC,4BAA4B,EAAE,mDAAmD,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,CAAC,CACvG,CAAC;YAEF,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,8BAA8B,EAAE,oBAAoB,CAAC,CAAC,CAAC;gBAClE,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QAED,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAE5C,MAAM,MAAM,GAAa;YACvB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,IAAI;SACd,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,4BAA4B,EAAE,mBAAmB,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,CAAC,CAAC,CAAC;QAEjF,OAAO,MAAM,CAAC;IAChB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { WebDavCommand } from '@salesforce/b2c-tooling-sdk/cli';
2
+ interface UnzipResult {
3
+ archivePath: string;
4
+ extractPath: string;
5
+ }
6
+ export default class WebDavUnzip extends WebDavCommand<typeof WebDavUnzip> {
7
+ static args: {
8
+ path: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
9
+ };
10
+ static description: string;
11
+ static enableJsonFlag: boolean;
12
+ static examples: string[];
13
+ run(): Promise<UnzipResult>;
14
+ }
15
+ export {};
@@ -0,0 +1,48 @@
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 { Args } from '@oclif/core';
7
+ import { WebDavCommand } from '@salesforce/b2c-tooling-sdk/cli';
8
+ import { t } from '../../i18n/index.js';
9
+ const UNZIP_BODY = new URLSearchParams({ method: 'UNZIP' }).toString();
10
+ export default class WebDavUnzip extends WebDavCommand {
11
+ static args = {
12
+ path: Args.string({
13
+ description: 'Remote zip file path (relative to root)',
14
+ required: true,
15
+ }),
16
+ };
17
+ static description = t('commands.webdav.unzip.description', 'Extract a remote zip archive');
18
+ static enableJsonFlag = true;
19
+ static examples = [
20
+ '<%= config.bin %> <%= command.id %> src/instance/export.zip',
21
+ '<%= config.bin %> <%= command.id %> --root=cartridges my-cartridge.zip',
22
+ ];
23
+ async run() {
24
+ this.ensureWebDavAuth();
25
+ const fullPath = this.buildPath(this.args.path);
26
+ // Determine the extract directory (same location without .zip extension)
27
+ const extractPath = fullPath.endsWith('.zip') ? fullPath.slice(0, -4) : fullPath;
28
+ this.log(t('commands.webdav.unzip.extracting', 'Extracting {{path}}...', { path: fullPath }));
29
+ const response = await this.instance.webdav.request(fullPath, {
30
+ method: 'POST',
31
+ body: UNZIP_BODY,
32
+ headers: {
33
+ 'Content-Type': 'application/x-www-form-urlencoded',
34
+ },
35
+ });
36
+ if (!response.ok) {
37
+ const text = await response.text();
38
+ this.error(t('commands.webdav.unzip.failed', 'UNZIP failed: {{status}} - {{text}}', { status: response.status, text }));
39
+ }
40
+ const result = {
41
+ archivePath: fullPath,
42
+ extractPath,
43
+ };
44
+ this.log(t('commands.webdav.unzip.success', 'Extracted to: {{path}}', { path: extractPath }));
45
+ return result;
46
+ }
47
+ }
48
+ //# sourceMappingURL=unzip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unzip.js","sourceRoot":"","sources":["../../../src/commands/webdav/unzip.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAC,IAAI,EAAC,MAAM,aAAa,CAAC;AACjC,OAAO,EAAC,aAAa,EAAC,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAC,CAAC,EAAC,MAAM,qBAAqB,CAAC;AAEtC,MAAM,UAAU,GAAG,IAAI,eAAe,CAAC,EAAC,MAAM,EAAE,OAAO,EAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAOrE,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,aAAiC;IACxE,MAAM,CAAC,IAAI,GAAG;QACZ,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;YAChB,WAAW,EAAE,yCAAyC;YACtD,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAC;IAEF,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,mCAAmC,EAAE,8BAA8B,CAAC,CAAC;IAE5F,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;IAE7B,MAAM,CAAC,QAAQ,GAAG;QAChB,6DAA6D;QAC7D,wEAAwE;KACzE,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEhD,yEAAyE;QACzE,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;QAEjF,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,kCAAkC,EAAE,wBAAwB,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,CAAC,CAAC,CAAC;QAE5F,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC5D,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE;gBACP,cAAc,EAAE,mCAAmC;aACpD;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC,KAAK,CACR,CAAC,CAAC,8BAA8B,EAAE,qCAAqC,EAAE,EAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAC,CAAC,CAC1G,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAgB;YAC1B,WAAW,EAAE,QAAQ;YACrB,WAAW;SACZ,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,+BAA+B,EAAE,wBAAwB,EAAE,EAAC,IAAI,EAAE,WAAW,EAAC,CAAC,CAAC,CAAC;QAE5F,OAAO,MAAM,CAAC;IAChB,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { WebDavCommand } from '@salesforce/b2c-tooling-sdk/cli';
2
+ interface ZipResult {
3
+ sourcePath: string;
4
+ archivePath: string;
5
+ }
6
+ export default class WebDavZip extends WebDavCommand<typeof WebDavZip> {
7
+ static args: {
8
+ path: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
9
+ };
10
+ static description: string;
11
+ static enableJsonFlag: boolean;
12
+ static examples: string[];
13
+ run(): Promise<ZipResult>;
14
+ }
15
+ export {};
@@ -0,0 +1,47 @@
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 { Args } from '@oclif/core';
7
+ import { WebDavCommand } from '@salesforce/b2c-tooling-sdk/cli';
8
+ import { t } from '../../i18n/index.js';
9
+ const ZIP_BODY = new URLSearchParams({ method: 'ZIP' }).toString();
10
+ export default class WebDavZip extends WebDavCommand {
11
+ static args = {
12
+ path: Args.string({
13
+ description: 'Remote path to zip (relative to root)',
14
+ required: true,
15
+ }),
16
+ };
17
+ static description = t('commands.webdav.zip.description', 'Create a zip archive of a remote file or directory');
18
+ static enableJsonFlag = true;
19
+ static examples = [
20
+ '<%= config.bin %> <%= command.id %> src/instance/data',
21
+ '<%= config.bin %> <%= command.id %> --root=cartridges my-cartridge',
22
+ ];
23
+ async run() {
24
+ this.ensureWebDavAuth();
25
+ const fullPath = this.buildPath(this.args.path);
26
+ const archivePath = `${fullPath}.zip`;
27
+ this.log(t('commands.webdav.zip.zipping', 'Zipping {{path}}...', { path: fullPath }));
28
+ const response = await this.instance.webdav.request(fullPath, {
29
+ method: 'POST',
30
+ body: ZIP_BODY,
31
+ headers: {
32
+ 'Content-Type': 'application/x-www-form-urlencoded',
33
+ },
34
+ });
35
+ if (!response.ok) {
36
+ const text = await response.text();
37
+ this.error(t('commands.webdav.zip.failed', 'ZIP failed: {{status}} - {{text}}', { status: response.status, text }));
38
+ }
39
+ const result = {
40
+ sourcePath: fullPath,
41
+ archivePath,
42
+ };
43
+ this.log(t('commands.webdav.zip.success', 'Created archive: {{path}}', { path: archivePath }));
44
+ return result;
45
+ }
46
+ }
47
+ //# sourceMappingURL=zip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zip.js","sourceRoot":"","sources":["../../../src/commands/webdav/zip.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAC,IAAI,EAAC,MAAM,aAAa,CAAC;AACjC,OAAO,EAAC,aAAa,EAAC,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAC,CAAC,EAAC,MAAM,qBAAqB,CAAC;AAEtC,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,EAAC,MAAM,EAAE,KAAK,EAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAOjE,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,aAA+B;IACpE,MAAM,CAAC,IAAI,GAAG;QACZ,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;YAChB,WAAW,EAAE,uCAAuC;YACpD,QAAQ,EAAE,IAAI;SACf,CAAC;KACH,CAAC;IAEF,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC,iCAAiC,EAAE,oDAAoD,CAAC,CAAC;IAEhH,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC;IAE7B,MAAM,CAAC,QAAQ,GAAG;QAChB,uDAAuD;QACvD,oEAAoE;KACrE,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,GAAG,QAAQ,MAAM,CAAC;QAEtC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,6BAA6B,EAAE,qBAAqB,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,CAAC,CAAC,CAAC;QAEpF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE;YAC5D,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,mCAAmC;aACpD;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,4BAA4B,EAAE,mCAAmC,EAAE,EAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC;QACpH,CAAC;QAED,MAAM,MAAM,GAAc;YACxB,UAAU,EAAE,QAAQ;YACpB,WAAW;SACZ,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,6BAA6B,EAAE,2BAA2B,EAAE,EAAC,IAAI,EAAE,WAAW,EAAC,CAAC,CAAC,CAAC;QAE7F,OAAO,MAAM,CAAC;IAChB,CAAC"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * i18n setup for b2c-cli.
3
+ *
4
+ * This module registers CLI-specific translations with the 'cli' namespace.
5
+ * The core i18n infrastructure comes from @salesforce/b2c-tooling-sdk.
6
+ *
7
+ * Usage in commands:
8
+ * import { t } from '../i18n/index.js'
9
+ * this.log(t('commands.sites.list.fetching', 'Fetching sites from {{hostname}}...', { hostname }))
10
+ */
11
+ import { type TOptions } from '@salesforce/b2c-tooling-sdk';
12
+ /** The namespace used by b2c-cli messages */
13
+ export declare const CLI_NAMESPACE = "cli";
14
+ /**
15
+ * Translate a CLI message key with an inline default.
16
+ *
17
+ * This is a convenience wrapper that uses the 'cli' namespace.
18
+ * For b2c-tooling messages, import t directly from @salesforce/b2c-tooling-sdk.
19
+ *
20
+ * @param key - Dot-notation key (e.g., 'commands.sites.list.fetching')
21
+ * @param defaultValue - The default English string
22
+ * @param options - Optional interpolation values
23
+ * @returns The translated string
24
+ *
25
+ * @example
26
+ * t('commands.sites.list.fetching', 'Fetching sites from {{hostname}}...', { hostname })
27
+ */
28
+ export declare function t(key: string, defaultValue: string, options?: TOptions): string;
29
+ export { setLanguage, getLanguage, getI18nInstance } from '@salesforce/b2c-tooling-sdk';
@@ -0,0 +1,43 @@
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
+ /**
7
+ * i18n setup for b2c-cli.
8
+ *
9
+ * This module registers CLI-specific translations with the 'cli' namespace.
10
+ * The core i18n infrastructure comes from @salesforce/b2c-tooling-sdk.
11
+ *
12
+ * Usage in commands:
13
+ * import { t } from '../i18n/index.js'
14
+ * this.log(t('commands.sites.list.fetching', 'Fetching sites from {{hostname}}...', { hostname }))
15
+ */
16
+ import { registerTranslations, t as toolingT } from '@salesforce/b2c-tooling-sdk';
17
+ import { locales } from './locales/index.js';
18
+ /** The namespace used by b2c-cli messages */
19
+ export const CLI_NAMESPACE = 'cli';
20
+ // Register all CLI translations
21
+ for (const [lang, translations] of Object.entries(locales)) {
22
+ registerTranslations(CLI_NAMESPACE, lang, translations);
23
+ }
24
+ /**
25
+ * Translate a CLI message key with an inline default.
26
+ *
27
+ * This is a convenience wrapper that uses the 'cli' namespace.
28
+ * For b2c-tooling messages, import t directly from @salesforce/b2c-tooling-sdk.
29
+ *
30
+ * @param key - Dot-notation key (e.g., 'commands.sites.list.fetching')
31
+ * @param defaultValue - The default English string
32
+ * @param options - Optional interpolation values
33
+ * @returns The translated string
34
+ *
35
+ * @example
36
+ * t('commands.sites.list.fetching', 'Fetching sites from {{hostname}}...', { hostname })
37
+ */
38
+ export function t(key, defaultValue, options) {
39
+ return toolingT(`${CLI_NAMESPACE}:${key}`, defaultValue, options);
40
+ }
41
+ // Re-export for convenience
42
+ export { setLanguage, getLanguage, getI18nInstance } from '@salesforce/b2c-tooling-sdk';
43
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;;;;;;;GASG;AAEH,OAAO,EAAC,oBAAoB,EAAE,CAAC,IAAI,QAAQ,EAAgB,MAAM,6BAA6B,CAAC;AAC/F,OAAO,EAAC,OAAO,EAAC,MAAM,oBAAoB,CAAC;AAE3C,6CAA6C;AAC7C,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC;AAEnC,gCAAgC;AAChC,KAAK,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3D,oBAAoB,CAAC,aAAa,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;AAC1D,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,CAAC,CAAC,GAAW,EAAE,YAAoB,EAAE,OAAkB;IACrE,OAAO,QAAQ,CAAC,GAAG,aAAa,IAAI,GAAG,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;AACpE,CAAC;AAED,4BAA4B;AAC5B,OAAO,EAAC,WAAW,EAAE,WAAW,EAAE,eAAe,EAAC,MAAM,6BAA6B,CAAC"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * DE - German translations for b2c-cli commands.
3
+ */
4
+ export declare const de: {
5
+ commands: {
6
+ sites: {
7
+ list: {
8
+ description: string;
9
+ fetching: string;
10
+ fetchFailed: string;
11
+ noSites: string;
12
+ foundSites: string;
13
+ displayName: string;
14
+ status: string;
15
+ error: string;
16
+ };
17
+ };
18
+ code: {
19
+ deploy: {
20
+ description: string;
21
+ deploying: string;
22
+ target: string;
23
+ codeVersion: string;
24
+ complete: string;
25
+ failed: string;
26
+ };
27
+ };
28
+ sandbox: {
29
+ create: {
30
+ description: string;
31
+ creating: string;
32
+ profile: string;
33
+ ttl: string;
34
+ stub: string;
35
+ wouldCreate: string;
36
+ };
37
+ };
38
+ mrt: {
39
+ envVar: {
40
+ set: {
41
+ description: string;
42
+ setting: string;
43
+ stub: string;
44
+ wouldSet: string;
45
+ project: string;
46
+ environment: string;
47
+ };
48
+ };
49
+ };
50
+ };
51
+ };
@@ -0,0 +1,57 @@
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
+ /**
7
+ * DE - German translations for b2c-cli commands.
8
+ */
9
+ export const de = {
10
+ commands: {
11
+ sites: {
12
+ list: {
13
+ description: 'Sites auf einer B2C Commerce-Instanz auflisten',
14
+ fetching: 'Rufe Sites von {{hostname}} ab...',
15
+ fetchFailed: 'Sites konnten nicht abgerufen werden: {{status}} {{statusText}}\n{{error}}',
16
+ noSites: 'Keine Sites gefunden.',
17
+ foundSites: '{{count}} Site(s) gefunden:',
18
+ displayName: 'Anzeigename: {{name}}',
19
+ status: 'Status: {{status}}',
20
+ error: 'Sites konnten nicht abgerufen werden: {{message}}',
21
+ },
22
+ },
23
+ code: {
24
+ deploy: {
25
+ description: 'Cartridges auf eine B2C Commerce-Instanz deployen',
26
+ deploying: 'Deploye Cartridges von {{path}}...',
27
+ target: 'Ziel: {{hostname}}',
28
+ codeVersion: 'Code-Version: {{version}}',
29
+ complete: 'Deployment abgeschlossen',
30
+ failed: 'Deployment fehlgeschlagen: {{message}}',
31
+ },
32
+ },
33
+ sandbox: {
34
+ create: {
35
+ description: 'Eine neue On-Demand-Sandbox erstellen',
36
+ creating: 'Erstelle Sandbox in Realm {{realm}}...',
37
+ profile: 'Profil: {{profile}}',
38
+ ttl: 'TTL: {{ttl}} Stunden',
39
+ stub: '(stub) Sandbox-Erstellung noch nicht implementiert',
40
+ wouldCreate: 'Würde Sandbox mit OAuth-Client erstellen: {{clientId}}',
41
+ },
42
+ },
43
+ mrt: {
44
+ envVar: {
45
+ set: {
46
+ description: 'Eine Umgebungsvariable für ein Managed Runtime-Projekt setzen',
47
+ setting: 'Setze {{key}} auf {{project}}/{{environment}}...',
48
+ stub: '(stub) Umgebungsvariablen-Einstellung noch nicht implementiert',
49
+ wouldSet: 'Würde {{key}}={{value}} setzen',
50
+ project: 'Projekt: {{project}}',
51
+ environment: 'Umgebung: {{environment}}',
52
+ },
53
+ },
54
+ },
55
+ },
56
+ };
57
+ //# sourceMappingURL=de.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"de.js","sourceRoot":"","sources":["../../../src/i18n/locales/de.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;GAEG;AACH,MAAM,CAAC,MAAM,EAAE,GAAG;IAChB,QAAQ,EAAE;QACR,KAAK,EAAE;YACL,IAAI,EAAE;gBACJ,WAAW,EAAE,gDAAgD;gBAC7D,QAAQ,EAAE,mCAAmC;gBAC7C,WAAW,EAAE,4EAA4E;gBACzF,OAAO,EAAE,uBAAuB;gBAChC,UAAU,EAAE,6BAA6B;gBACzC,WAAW,EAAE,uBAAuB;gBACpC,MAAM,EAAE,oBAAoB;gBAC5B,KAAK,EAAE,mDAAmD;aAC3D;SACF;QACD,IAAI,EAAE;YACJ,MAAM,EAAE;gBACN,WAAW,EAAE,mDAAmD;gBAChE,SAAS,EAAE,oCAAoC;gBAC/C,MAAM,EAAE,oBAAoB;gBAC5B,WAAW,EAAE,2BAA2B;gBACxC,QAAQ,EAAE,0BAA0B;gBACpC,MAAM,EAAE,wCAAwC;aACjD;SACF;QACD,OAAO,EAAE;YACP,MAAM,EAAE;gBACN,WAAW,EAAE,uCAAuC;gBACpD,QAAQ,EAAE,wCAAwC;gBAClD,OAAO,EAAE,qBAAqB;gBAC9B,GAAG,EAAE,sBAAsB;gBAC3B,IAAI,EAAE,oDAAoD;gBAC1D,WAAW,EAAE,wDAAwD;aACtE;SACF;QACD,GAAG,EAAE;YACH,MAAM,EAAE;gBACN,GAAG,EAAE;oBACH,WAAW,EAAE,+DAA+D;oBAC5E,OAAO,EAAE,kDAAkD;oBAC3D,IAAI,EAAE,gEAAgE;oBACtE,QAAQ,EAAE,gCAAgC;oBAC1C,OAAO,EAAE,sBAAsB;oBAC/B,WAAW,EAAE,2BAA2B;iBACzC;aACF;SACF;KACF;CACF,CAAC"}