@salesforce/b2c-tooling-sdk 1.7.0 → 1.9.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.
- package/dist/cjs/auth/index.d.ts +3 -0
- package/dist/cjs/auth/index.js +2 -0
- package/dist/cjs/auth/index.js.map +1 -1
- package/dist/cjs/auth/jwt-utils.d.ts +25 -0
- package/dist/cjs/auth/jwt-utils.js +66 -0
- package/dist/cjs/auth/jwt-utils.js.map +1 -0
- package/dist/cjs/auth/oauth-implicit.js +4 -1
- package/dist/cjs/auth/oauth-implicit.js.map +1 -1
- package/dist/cjs/auth/oauth-jwt.d.ts +99 -0
- package/dist/cjs/auth/oauth-jwt.js +343 -0
- package/dist/cjs/auth/oauth-jwt.js.map +1 -0
- package/dist/cjs/auth/oauth.d.ts +42 -3
- package/dist/cjs/auth/oauth.js +90 -35
- package/dist/cjs/auth/oauth.js.map +1 -1
- package/dist/cjs/auth/stateful-oauth-strategy.js +3 -9
- package/dist/cjs/auth/stateful-oauth-strategy.js.map +1 -1
- package/dist/cjs/auth/stateful-store.js +33 -35
- package/dist/cjs/auth/stateful-store.js.map +1 -1
- package/dist/cjs/auth/types.d.ts +2 -1
- package/dist/cjs/auth/types.js +1 -1
- package/dist/cjs/auth/types.js.map +1 -1
- package/dist/cjs/cli/am-command.d.ts +1 -1
- package/dist/cjs/cli/am-command.js +3 -0
- package/dist/cjs/cli/am-command.js.map +1 -1
- package/dist/cjs/cli/base-command.js +4 -2
- package/dist/cjs/cli/base-command.js.map +1 -1
- package/dist/cjs/cli/columns.d.ts +128 -0
- package/dist/cjs/cli/columns.js +128 -0
- package/dist/cjs/cli/columns.js.map +1 -0
- package/dist/cjs/cli/config.js +4 -0
- package/dist/cjs/cli/config.js.map +1 -1
- package/dist/cjs/cli/details.d.ts +69 -0
- package/dist/cjs/cli/details.js +72 -0
- package/dist/cjs/cli/details.js.map +1 -0
- package/dist/cjs/cli/index.d.ts +4 -0
- package/dist/cjs/cli/index.js +2 -0
- package/dist/cjs/cli/index.js.map +1 -1
- package/dist/cjs/cli/instance-command.d.ts +3 -0
- package/dist/cjs/cli/oauth-command.d.ts +14 -2
- package/dist/cjs/cli/oauth-command.js +54 -3
- package/dist/cjs/cli/oauth-command.js.map +1 -1
- package/dist/cjs/cli/ods-command.d.ts +3 -0
- package/dist/cjs/cli/webdav-command.d.ts +3 -0
- package/dist/cjs/clients/cdn-zones.js +5 -2
- package/dist/cjs/clients/cdn-zones.js.map +1 -1
- package/dist/cjs/clients/cip.js +2 -1
- package/dist/cjs/clients/cip.js.map +1 -1
- package/dist/cjs/clients/custom-apis.js +5 -2
- package/dist/cjs/clients/custom-apis.js.map +1 -1
- package/dist/cjs/clients/granular-replications.js +4 -1
- package/dist/cjs/clients/granular-replications.js.map +1 -1
- package/dist/cjs/clients/mrt.generated.d.ts +1073 -41
- package/dist/cjs/clients/scapi-schemas.js +5 -2
- package/dist/cjs/clients/scapi-schemas.js.map +1 -1
- package/dist/cjs/clients/webdav.js +11 -3
- package/dist/cjs/clients/webdav.js.map +1 -1
- package/dist/cjs/config/dw-json.d.ts +10 -0
- package/dist/cjs/config/dw-json.js +4 -7
- package/dist/cjs/config/dw-json.js.map +1 -1
- package/dist/cjs/config/mapping.js +27 -0
- package/dist/cjs/config/mapping.js.map +1 -1
- package/dist/cjs/config/sources/env-source.js +13 -1
- package/dist/cjs/config/sources/env-source.js.map +1 -1
- package/dist/cjs/config/sources/package-json-source.js +1 -0
- package/dist/cjs/config/sources/package-json-source.js.map +1 -1
- package/dist/cjs/config/types.d.ts +14 -0
- package/dist/cjs/index.d.ts +2 -2
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/operations/bm-users/index.d.ts +50 -0
- package/dist/cjs/operations/bm-users/index.js +55 -0
- package/dist/cjs/operations/bm-users/index.js.map +1 -0
- package/dist/cjs/operations/bm-users/users.d.ts +189 -0
- package/dist/cjs/operations/bm-users/users.js +229 -0
- package/dist/cjs/operations/bm-users/users.js.map +1 -0
- package/dist/cjs/operations/code/deploy.js +19 -10
- package/dist/cjs/operations/code/deploy.js.map +1 -1
- package/dist/cjs/operations/code/download.d.ts +17 -6
- package/dist/cjs/operations/code/download.js +224 -104
- package/dist/cjs/operations/code/download.js.map +1 -1
- package/dist/cjs/operations/code/index.d.ts +3 -1
- package/dist/cjs/operations/code/index.js +3 -1
- package/dist/cjs/operations/code/index.js.map +1 -1
- package/dist/cjs/operations/code/upload-files.d.ts +47 -0
- package/dist/cjs/operations/code/upload-files.js +116 -0
- package/dist/cjs/operations/code/upload-files.js.map +1 -0
- package/dist/cjs/operations/code/watch.js +18 -92
- package/dist/cjs/operations/code/watch.js.map +1 -1
- package/dist/cjs/operations/debug/debug-session.js +23 -8
- package/dist/cjs/operations/debug/debug-session.js.map +1 -1
- package/dist/cjs/operations/debug/index.d.ts +3 -0
- package/dist/cjs/operations/debug/index.js +2 -0
- package/dist/cjs/operations/debug/index.js.map +1 -1
- package/dist/cjs/operations/debug/projections.d.ts +72 -0
- package/dist/cjs/operations/debug/projections.js +84 -0
- package/dist/cjs/operations/debug/projections.js.map +1 -0
- package/dist/cjs/operations/debug/resolve-path.d.ts +15 -0
- package/dist/cjs/operations/debug/resolve-path.js +52 -0
- package/dist/cjs/operations/debug/resolve-path.js.map +1 -0
- package/dist/cjs/operations/mrt/certificate.d.ts +60 -0
- package/dist/cjs/operations/mrt/certificate.js +76 -0
- package/dist/cjs/operations/mrt/certificate.js.map +1 -0
- package/dist/cjs/operations/mrt/env.d.ts +79 -0
- package/dist/cjs/operations/mrt/env.js +65 -3
- package/dist/cjs/operations/mrt/env.js.map +1 -1
- package/dist/cjs/operations/mrt/index.d.ts +8 -4
- package/dist/cjs/operations/mrt/index.js +6 -2
- package/dist/cjs/operations/mrt/index.js.map +1 -1
- package/dist/cjs/operations/mrt/organization-member.d.ts +68 -0
- package/dist/cjs/operations/mrt/organization-member.js +88 -0
- package/dist/cjs/operations/mrt/organization-member.js.map +1 -0
- package/dist/cjs/operations/mrt/push.d.ts +67 -0
- package/dist/cjs/operations/mrt/push.js +63 -0
- package/dist/cjs/operations/mrt/push.js.map +1 -1
- package/dist/cjs/ux/index.d.ts +1 -0
- package/dist/cjs/ux/index.js +7 -0
- package/dist/cjs/ux/index.js.map +1 -0
- package/dist/esm/auth/index.d.ts +3 -0
- package/dist/esm/auth/index.js +2 -0
- package/dist/esm/auth/index.js.map +1 -1
- package/dist/esm/auth/jwt-utils.d.ts +25 -0
- package/dist/esm/auth/jwt-utils.js +66 -0
- package/dist/esm/auth/jwt-utils.js.map +1 -0
- package/dist/esm/auth/oauth-implicit.js +4 -1
- package/dist/esm/auth/oauth-implicit.js.map +1 -1
- package/dist/esm/auth/oauth-jwt.d.ts +99 -0
- package/dist/esm/auth/oauth-jwt.js +343 -0
- package/dist/esm/auth/oauth-jwt.js.map +1 -0
- package/dist/esm/auth/oauth.d.ts +42 -3
- package/dist/esm/auth/oauth.js +90 -35
- package/dist/esm/auth/oauth.js.map +1 -1
- package/dist/esm/auth/stateful-oauth-strategy.js +3 -9
- package/dist/esm/auth/stateful-oauth-strategy.js.map +1 -1
- package/dist/esm/auth/stateful-store.js +33 -35
- package/dist/esm/auth/stateful-store.js.map +1 -1
- package/dist/esm/auth/types.d.ts +2 -1
- package/dist/esm/auth/types.js +1 -1
- package/dist/esm/auth/types.js.map +1 -1
- package/dist/esm/cli/am-command.d.ts +1 -1
- package/dist/esm/cli/am-command.js +3 -0
- package/dist/esm/cli/am-command.js.map +1 -1
- package/dist/esm/cli/base-command.js +4 -2
- package/dist/esm/cli/base-command.js.map +1 -1
- package/dist/esm/cli/columns.d.ts +128 -0
- package/dist/esm/cli/columns.js +128 -0
- package/dist/esm/cli/columns.js.map +1 -0
- package/dist/esm/cli/config.js +4 -0
- package/dist/esm/cli/config.js.map +1 -1
- package/dist/esm/cli/details.d.ts +69 -0
- package/dist/esm/cli/details.js +72 -0
- package/dist/esm/cli/details.js.map +1 -0
- package/dist/esm/cli/index.d.ts +4 -0
- package/dist/esm/cli/index.js +2 -0
- package/dist/esm/cli/index.js.map +1 -1
- package/dist/esm/cli/instance-command.d.ts +3 -0
- package/dist/esm/cli/oauth-command.d.ts +14 -2
- package/dist/esm/cli/oauth-command.js +54 -3
- package/dist/esm/cli/oauth-command.js.map +1 -1
- package/dist/esm/cli/ods-command.d.ts +3 -0
- package/dist/esm/cli/webdav-command.d.ts +3 -0
- package/dist/esm/clients/cdn-zones.js +5 -2
- package/dist/esm/clients/cdn-zones.js.map +1 -1
- package/dist/esm/clients/cip.js +2 -1
- package/dist/esm/clients/cip.js.map +1 -1
- package/dist/esm/clients/custom-apis.js +5 -2
- package/dist/esm/clients/custom-apis.js.map +1 -1
- package/dist/esm/clients/granular-replications.js +4 -1
- package/dist/esm/clients/granular-replications.js.map +1 -1
- package/dist/esm/clients/mrt.generated.d.ts +1073 -41
- package/dist/esm/clients/scapi-schemas.js +5 -2
- package/dist/esm/clients/scapi-schemas.js.map +1 -1
- package/dist/esm/clients/webdav.js +11 -3
- package/dist/esm/clients/webdav.js.map +1 -1
- package/dist/esm/config/dw-json.d.ts +10 -0
- package/dist/esm/config/dw-json.js +4 -7
- package/dist/esm/config/dw-json.js.map +1 -1
- package/dist/esm/config/mapping.js +27 -0
- package/dist/esm/config/mapping.js.map +1 -1
- package/dist/esm/config/sources/env-source.js +13 -1
- package/dist/esm/config/sources/env-source.js.map +1 -1
- package/dist/esm/config/sources/package-json-source.js +1 -0
- package/dist/esm/config/sources/package-json-source.js.map +1 -1
- package/dist/esm/config/types.d.ts +14 -0
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/operations/bm-users/index.d.ts +50 -0
- package/dist/esm/operations/bm-users/index.js +55 -0
- package/dist/esm/operations/bm-users/index.js.map +1 -0
- package/dist/esm/operations/bm-users/users.d.ts +189 -0
- package/dist/esm/operations/bm-users/users.js +229 -0
- package/dist/esm/operations/bm-users/users.js.map +1 -0
- package/dist/esm/operations/code/deploy.js +19 -10
- package/dist/esm/operations/code/deploy.js.map +1 -1
- package/dist/esm/operations/code/download.d.ts +17 -6
- package/dist/esm/operations/code/download.js +224 -104
- package/dist/esm/operations/code/download.js.map +1 -1
- package/dist/esm/operations/code/index.d.ts +3 -1
- package/dist/esm/operations/code/index.js +3 -1
- package/dist/esm/operations/code/index.js.map +1 -1
- package/dist/esm/operations/code/upload-files.d.ts +47 -0
- package/dist/esm/operations/code/upload-files.js +116 -0
- package/dist/esm/operations/code/upload-files.js.map +1 -0
- package/dist/esm/operations/code/watch.js +18 -92
- package/dist/esm/operations/code/watch.js.map +1 -1
- package/dist/esm/operations/debug/debug-session.js +23 -8
- package/dist/esm/operations/debug/debug-session.js.map +1 -1
- package/dist/esm/operations/debug/index.d.ts +3 -0
- package/dist/esm/operations/debug/index.js +2 -0
- package/dist/esm/operations/debug/index.js.map +1 -1
- package/dist/esm/operations/debug/projections.d.ts +72 -0
- package/dist/esm/operations/debug/projections.js +84 -0
- package/dist/esm/operations/debug/projections.js.map +1 -0
- package/dist/esm/operations/debug/resolve-path.d.ts +15 -0
- package/dist/esm/operations/debug/resolve-path.js +52 -0
- package/dist/esm/operations/debug/resolve-path.js.map +1 -0
- package/dist/esm/operations/mrt/certificate.d.ts +60 -0
- package/dist/esm/operations/mrt/certificate.js +76 -0
- package/dist/esm/operations/mrt/certificate.js.map +1 -0
- package/dist/esm/operations/mrt/env.d.ts +79 -0
- package/dist/esm/operations/mrt/env.js +65 -3
- package/dist/esm/operations/mrt/env.js.map +1 -1
- package/dist/esm/operations/mrt/index.d.ts +8 -4
- package/dist/esm/operations/mrt/index.js +6 -2
- package/dist/esm/operations/mrt/index.js.map +1 -1
- package/dist/esm/operations/mrt/organization-member.d.ts +68 -0
- package/dist/esm/operations/mrt/organization-member.js +88 -0
- package/dist/esm/operations/mrt/organization-member.js.map +1 -0
- package/dist/esm/operations/mrt/push.d.ts +67 -0
- package/dist/esm/operations/mrt/push.js +63 -0
- package/dist/esm/operations/mrt/push.js.map +1 -1
- package/dist/esm/ux/index.d.ts +1 -0
- package/dist/esm/ux/index.js +7 -0
- package/dist/esm/ux/index.js.map +1 -0
- package/package.json +22 -2
- package/specs/mrt-api-v1.json +2192 -48
|
@@ -4,30 +4,13 @@
|
|
|
4
4
|
* For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0
|
|
5
5
|
*/
|
|
6
6
|
import path from 'node:path';
|
|
7
|
-
import fs from 'node:fs';
|
|
8
7
|
import { watch } from 'chokidar';
|
|
9
|
-
import JSZip from 'jszip';
|
|
10
8
|
import { getLogger } from '../../logging/logger.js';
|
|
11
9
|
import { findCartridges } from './cartridges.js';
|
|
10
|
+
import { fileToCartridgePath, uploadFiles } from './upload-files.js';
|
|
12
11
|
import { getActiveCodeVersion } from './versions.js';
|
|
13
|
-
const UNZIP_BODY = new URLSearchParams({ method: 'UNZIP' }).toString();
|
|
14
12
|
/** Default debounce time in ms for batching file uploads */
|
|
15
13
|
const DEFAULT_DEBOUNCE_TIME = parseInt(process.env.SFCC_UPLOAD_DEBOUNCE_TIME ?? '100', 10);
|
|
16
|
-
/**
|
|
17
|
-
* Maps an absolute file path to its cartridge-relative destination.
|
|
18
|
-
*/
|
|
19
|
-
function fileToCartridgePath(absolutePath, cartridges) {
|
|
20
|
-
const cartridge = cartridges.find((c) => absolutePath.startsWith(c.src));
|
|
21
|
-
if (!cartridge) {
|
|
22
|
-
return undefined;
|
|
23
|
-
}
|
|
24
|
-
const relativePath = absolutePath.substring(cartridge.src.length);
|
|
25
|
-
const destPath = path.join(cartridge.dest, relativePath);
|
|
26
|
-
return {
|
|
27
|
-
src: absolutePath,
|
|
28
|
-
dest: destPath,
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
14
|
/**
|
|
32
15
|
* Creates a debounced function that batches calls.
|
|
33
16
|
*/
|
|
@@ -97,8 +80,8 @@ export async function watchCartridges(instance, directory, options = {}) {
|
|
|
97
80
|
for (const c of cartridges) {
|
|
98
81
|
logger.info({ cartridgeName: c.name, path: c.src }, ` ${c.name}`);
|
|
99
82
|
}
|
|
100
|
-
const
|
|
101
|
-
const
|
|
83
|
+
// Re-bind as const so TypeScript knows it's a string inside closures
|
|
84
|
+
const resolvedCodeVersion = codeVersion;
|
|
102
85
|
const cwd = process.cwd();
|
|
103
86
|
// Sets for batching file changes
|
|
104
87
|
const filesToUpload = new Set();
|
|
@@ -123,84 +106,27 @@ export async function watchCartridges(instance, directory, options = {}) {
|
|
|
123
106
|
logger.debug({ waitTime }, 'Rate limiting after recent error, waiting...');
|
|
124
107
|
await new Promise((resolve) => setTimeout(resolve, waitTime));
|
|
125
108
|
}
|
|
126
|
-
const
|
|
109
|
+
const uploadChanges = Array.from(filesToUpload)
|
|
127
110
|
.map((f) => fileToCartridgePath(f, cartridges))
|
|
128
111
|
.filter((f) => f !== undefined);
|
|
129
|
-
const
|
|
112
|
+
const deleteChanges = Array.from(filesToDelete)
|
|
130
113
|
.map((f) => fileToCartridgePath(f, cartridges))
|
|
131
114
|
.filter((f) => f !== undefined);
|
|
132
115
|
filesToUpload.clear();
|
|
133
116
|
filesToDelete.clear();
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
}
|
|
140
|
-
return true;
|
|
141
|
-
});
|
|
142
|
-
// Upload files
|
|
143
|
-
if (validUploadFiles.length > 0) {
|
|
144
|
-
const uploadPath = `${webdavLocation}/_upload-${Date.now()}.zip`;
|
|
145
|
-
try {
|
|
146
|
-
const zip = new JSZip();
|
|
147
|
-
for (const f of validUploadFiles) {
|
|
148
|
-
try {
|
|
149
|
-
const content = await fs.promises.readFile(f.src);
|
|
150
|
-
zip.file(f.dest, content);
|
|
151
|
-
}
|
|
152
|
-
catch (error) {
|
|
153
|
-
logger.warn({ file: f.src, error }, 'Failed to add file to archive');
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
const buffer = await zip.generateAsync({
|
|
157
|
-
type: 'nodebuffer',
|
|
158
|
-
compression: 'DEFLATE',
|
|
159
|
-
compressionOptions: { level: 5 },
|
|
160
|
-
});
|
|
161
|
-
await webdav.put(uploadPath, buffer, 'application/zip');
|
|
162
|
-
logger.debug({ uploadPath }, 'Archive uploaded');
|
|
163
|
-
const response = await webdav.request(uploadPath, {
|
|
164
|
-
method: 'POST',
|
|
165
|
-
body: UNZIP_BODY,
|
|
166
|
-
headers: {
|
|
167
|
-
'Content-Type': 'application/x-www-form-urlencoded',
|
|
168
|
-
},
|
|
169
|
-
});
|
|
170
|
-
if (!response.ok) {
|
|
171
|
-
throw new Error(`Unzip failed: ${response.status}`);
|
|
172
|
-
}
|
|
173
|
-
await webdav.delete(uploadPath);
|
|
174
|
-
logger.debug({ fileCount: validUploadFiles.length, server: instance.config.hostname }, `Uploaded ${validUploadFiles.length} file(s)`);
|
|
175
|
-
options.onUpload?.(validUploadFiles.map((f) => f.dest));
|
|
176
|
-
}
|
|
177
|
-
catch (error) {
|
|
178
|
-
lastErrorTime = Date.now();
|
|
179
|
-
// Re-queue so the while loop retries after rate-limit wait
|
|
180
|
-
for (const f of validUploadFiles) {
|
|
181
|
-
filesToUpload.add(f.src);
|
|
182
|
-
}
|
|
183
|
-
const err = error instanceof Error ? error : new Error(String(error));
|
|
184
|
-
logger.error({ error: err }, `Upload error: ${err.message}`);
|
|
185
|
-
options.onError?.(err);
|
|
186
|
-
}
|
|
117
|
+
try {
|
|
118
|
+
await uploadFiles(instance, resolvedCodeVersion, uploadChanges, deleteChanges, {
|
|
119
|
+
onUpload: options.onUpload,
|
|
120
|
+
onDelete: options.onDelete,
|
|
121
|
+
onError: options.onError,
|
|
122
|
+
});
|
|
187
123
|
}
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
for (const f of filesToDeleteFiltered) {
|
|
194
|
-
const deletePath = `${webdavLocation}/${f.dest}`;
|
|
195
|
-
try {
|
|
196
|
-
await webdav.delete(deletePath);
|
|
197
|
-
logger.info({ path: deletePath }, `Deleted: ${deletePath}`);
|
|
198
|
-
}
|
|
199
|
-
catch (error) {
|
|
200
|
-
logger.debug({ path: deletePath, error }, `Failed to delete ${deletePath}`);
|
|
201
|
-
}
|
|
124
|
+
catch {
|
|
125
|
+
lastErrorTime = Date.now();
|
|
126
|
+
// Re-queue so the while loop retries after rate-limit wait
|
|
127
|
+
for (const f of uploadChanges) {
|
|
128
|
+
filesToUpload.add(f.src);
|
|
202
129
|
}
|
|
203
|
-
options.onDelete?.(filesToDeleteFiltered.map((f) => f.dest));
|
|
204
130
|
}
|
|
205
131
|
}
|
|
206
132
|
}
|
|
@@ -235,11 +161,11 @@ export async function watchCartridges(instance, directory, options = {}) {
|
|
|
235
161
|
logger.error({ error }, 'Watcher error');
|
|
236
162
|
options.onError?.(error);
|
|
237
163
|
});
|
|
238
|
-
logger.debug({ server: instance.config.hostname, codeVersion }, 'Watching for changes...');
|
|
164
|
+
logger.debug({ server: instance.config.hostname, codeVersion: resolvedCodeVersion }, 'Watching for changes...');
|
|
239
165
|
return {
|
|
240
166
|
watcher,
|
|
241
167
|
cartridges,
|
|
242
|
-
codeVersion,
|
|
168
|
+
codeVersion: resolvedCodeVersion,
|
|
243
169
|
stop: async () => {
|
|
244
170
|
await watcher.close();
|
|
245
171
|
logger.debug('Watcher stopped');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../../../src/operations/code/watch.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,
|
|
1
|
+
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../../../src/operations/code/watch.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,14 +50,29 @@ export class DebugSessionManager {
|
|
|
50
50
|
}
|
|
51
51
|
await this.client.createClient();
|
|
52
52
|
this.connected = true;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
53
|
+
try {
|
|
54
|
+
// Start keepalive timer
|
|
55
|
+
const keepaliveInterval = this.config.keepaliveInterval ?? DEFAULT_KEEPALIVE_INTERVAL;
|
|
56
|
+
this.keepaliveTimer = setInterval(() => void this.keepalive(), keepaliveInterval);
|
|
57
|
+
// Start thread poller
|
|
58
|
+
const pollInterval = this.config.pollInterval ?? DEFAULT_POLL_INTERVAL;
|
|
59
|
+
this.pollTimer = setInterval(() => void this.pollThreads(), pollInterval);
|
|
60
|
+
this.logger.debug('Script debugger connected');
|
|
61
|
+
this.callbacks.onConnected?.(this.config.hostname);
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
// Ensure timers are cleared if anything (incl. onConnected callback) throws
|
|
65
|
+
// after we started them; otherwise we'd leak intervals.
|
|
66
|
+
this.stopTimers();
|
|
67
|
+
this.connected = false;
|
|
68
|
+
try {
|
|
69
|
+
await this.client.deleteClient();
|
|
70
|
+
}
|
|
71
|
+
catch (deleteErr) {
|
|
72
|
+
this.logger.debug({ err: deleteErr }, 'Failed to clean up debugger client after connect error');
|
|
73
|
+
}
|
|
74
|
+
throw err;
|
|
75
|
+
}
|
|
61
76
|
}
|
|
62
77
|
/**
|
|
63
78
|
* Disconnect: stop timers, delete client.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug-session.js","sourceRoot":"","sources":["../../../../src/operations/debug/debug-session.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;;;;;;GAQG;AACH,OAAO,EAAC,SAAS,EAAC,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAC,WAAW,EAAE,UAAU,EAAC,MAAM,mBAAmB,CAAC;AAS1D,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAClC,MAAM,0BAA0B,GAAG,MAAM,CAAC;AAE1C,MAAM,OAAO,mBAAmB;IACrB,MAAM,CAAc;IACZ,MAAM,CAAqB;IAC3B,SAAS,CAAwB;IACjC,MAAM,GAAG,SAAS,EAAE,CAAC;IAE9B,SAAS,CAAkC;IAC3C,cAAc,CAAkC;IAExD,kDAAkD;IAC1C,YAAY,GAAG,IAAI,GAAG,EAA6B,CAAC;IACpD,SAAS,GAAG,KAAK,CAAC;IAE1B,YAAY,MAA0B,EAAE,YAAmC,EAAE;QAC3E,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,WAAW,CAAC;YAC5B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;SAC1B,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAC,EAAE,+BAA+B,CAAC,CAAC;QAErF,oEAAoE;QACpE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC;YACP,oCAAoC;QACtC,CAAC;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QAEtB,wBAAwB;
|
|
1
|
+
{"version":3,"file":"debug-session.js","sourceRoot":"","sources":["../../../../src/operations/debug/debug-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,5 +13,8 @@ export { B2CScriptDebugAdapter } from './dap-adapter.js';
|
|
|
13
13
|
export { createSourceMapper } from './source-mapping.js';
|
|
14
14
|
export type { SourceMapper } from './source-mapping.js';
|
|
15
15
|
export { VariableStore } from './variable-store.js';
|
|
16
|
+
export { resolveBreakpointPath } from './resolve-path.js';
|
|
17
|
+
export { DEFAULT_MAX_VALUE_LENGTH, isPrimitiveType, projectBreakpoint, projectFrame, projectThreadLocation, projectVariable, truncateValue, } from './projections.js';
|
|
18
|
+
export type { MappedBreakpoint, MappedFrame, MappedLocation, MappedVariable } from './projections.js';
|
|
16
19
|
export type { VariableRef } from './variable-store.js';
|
|
17
20
|
export type { SdapiLocation, SdapiStackFrame, SdapiScriptThread, SdapiBreakpoint, SdapiBreakpoints, SdapiObjectMember, SdapiObjectMembers, SdapiEvalResult, SdapiFault, BreakpointInput, DebugSessionConfig, DebugSessionCallbacks, } from './types.js';
|
|
@@ -16,4 +16,6 @@ export { DebugSessionManager } from './debug-session.js';
|
|
|
16
16
|
export { B2CScriptDebugAdapter } from './dap-adapter.js';
|
|
17
17
|
export { createSourceMapper } from './source-mapping.js';
|
|
18
18
|
export { VariableStore } from './variable-store.js';
|
|
19
|
+
export { resolveBreakpointPath } from './resolve-path.js';
|
|
20
|
+
export { DEFAULT_MAX_VALUE_LENGTH, isPrimitiveType, projectBreakpoint, projectFrame, projectThreadLocation, projectVariable, truncateValue, } from './projections.js';
|
|
19
21
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/operations/debug/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;;;;;GAOG;AACH,OAAO,EAAC,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAE7E,OAAO,EAAC,mBAAmB,EAAC,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAC,qBAAqB,EAAC,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAC,kBAAkB,EAAC,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/operations/debug/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH;;;;;;;GAOG;AACH,OAAO,EAAC,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AAE7E,OAAO,EAAC,mBAAmB,EAAC,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAC,qBAAqB,EAAC,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAC,kBAAkB,EAAC,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAC,qBAAqB,EAAC,MAAM,mBAAmB,CAAC;AACxD,OAAO,EACL,wBAAwB,EACxB,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,qBAAqB,EACrB,eAAe,EACf,aAAa,GACd,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared projections that map SDAPI response types to JSON-friendly objects
|
|
3
|
+
* with both server paths and resolved local file paths. Used by both the MCP
|
|
4
|
+
* debugger tools and the CLI RPC mode.
|
|
5
|
+
*
|
|
6
|
+
* @module operations/debug/projections
|
|
7
|
+
*/
|
|
8
|
+
import type { SourceMapper } from './source-mapping.js';
|
|
9
|
+
import type { SdapiBreakpoint, SdapiObjectMember, SdapiScriptThread, SdapiStackFrame } from './types.js';
|
|
10
|
+
/** Default maximum length for variable values before truncation. */
|
|
11
|
+
export declare const DEFAULT_MAX_VALUE_LENGTH = 200;
|
|
12
|
+
/** A mapped source location with both server and local file paths. */
|
|
13
|
+
export interface MappedLocation {
|
|
14
|
+
file: null | string;
|
|
15
|
+
function_name: string;
|
|
16
|
+
line: number;
|
|
17
|
+
script_path: string;
|
|
18
|
+
}
|
|
19
|
+
/** A mapped stack frame. */
|
|
20
|
+
export interface MappedFrame {
|
|
21
|
+
file: null | string;
|
|
22
|
+
function_name: string;
|
|
23
|
+
index: number;
|
|
24
|
+
line: number;
|
|
25
|
+
script_path: string;
|
|
26
|
+
}
|
|
27
|
+
/** A mapped variable for inspection. */
|
|
28
|
+
export interface MappedVariable {
|
|
29
|
+
has_children: boolean;
|
|
30
|
+
name: string;
|
|
31
|
+
scope?: string;
|
|
32
|
+
type: string;
|
|
33
|
+
value: string;
|
|
34
|
+
}
|
|
35
|
+
/** A mapped breakpoint. */
|
|
36
|
+
export interface MappedBreakpoint {
|
|
37
|
+
condition?: string;
|
|
38
|
+
file: null | string;
|
|
39
|
+
id: number;
|
|
40
|
+
line: number;
|
|
41
|
+
script_path: string;
|
|
42
|
+
}
|
|
43
|
+
/** True when the SDAPI type name represents a non-expandable primitive value. */
|
|
44
|
+
export declare function isPrimitiveType(type: string): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Truncate a string to at most `max` characters, appending `...` if truncated.
|
|
47
|
+
*/
|
|
48
|
+
export declare function truncateValue(value: string, max?: number): string;
|
|
49
|
+
/**
|
|
50
|
+
* Project an SDAPI stack frame to a structured object with mapped local file path.
|
|
51
|
+
*/
|
|
52
|
+
export declare function projectFrame(frame: SdapiStackFrame, mapper: SourceMapper): MappedFrame;
|
|
53
|
+
/**
|
|
54
|
+
* Project an SDAPI object member to a structured variable.
|
|
55
|
+
*
|
|
56
|
+
* @param member - The SDAPI object member
|
|
57
|
+
* @param options.includeScope - Whether to include the scope field (defaults to true)
|
|
58
|
+
* @param options.maxValueLength - Maximum value length before truncation
|
|
59
|
+
*/
|
|
60
|
+
export declare function projectVariable(member: SdapiObjectMember, options?: {
|
|
61
|
+
includeScope?: boolean;
|
|
62
|
+
maxValueLength?: number;
|
|
63
|
+
}): MappedVariable;
|
|
64
|
+
/**
|
|
65
|
+
* Project an SDAPI breakpoint to a structured object with mapped local file path.
|
|
66
|
+
*/
|
|
67
|
+
export declare function projectBreakpoint(bp: SdapiBreakpoint, mapper: SourceMapper): MappedBreakpoint;
|
|
68
|
+
/**
|
|
69
|
+
* Project the top-of-stack location for a thread, mapping the script path.
|
|
70
|
+
* Returns null if the thread has no call stack.
|
|
71
|
+
*/
|
|
72
|
+
export declare function projectThreadLocation(thread: SdapiScriptThread, mapper: SourceMapper): MappedLocation | null;
|
|
@@ -0,0 +1,84 @@
|
|
|
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
|
+
/** Default maximum length for variable values before truncation. */
|
|
7
|
+
export const DEFAULT_MAX_VALUE_LENGTH = 200;
|
|
8
|
+
/**
|
|
9
|
+
* SDAPI primitive type names. Variables of these types are not expandable
|
|
10
|
+
* (no children to drill into).
|
|
11
|
+
*/
|
|
12
|
+
const PRIMITIVE_TYPES = new Set(['boolean', 'Boolean', 'null', 'number', 'Number', 'string', 'String', 'undefined']);
|
|
13
|
+
/** True when the SDAPI type name represents a non-expandable primitive value. */
|
|
14
|
+
export function isPrimitiveType(type) {
|
|
15
|
+
return PRIMITIVE_TYPES.has(type);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Truncate a string to at most `max` characters, appending `...` if truncated.
|
|
19
|
+
*/
|
|
20
|
+
export function truncateValue(value, max = DEFAULT_MAX_VALUE_LENGTH) {
|
|
21
|
+
if (value.length <= max)
|
|
22
|
+
return value;
|
|
23
|
+
return value.slice(0, max) + '...';
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Project an SDAPI stack frame to a structured object with mapped local file path.
|
|
27
|
+
*/
|
|
28
|
+
export function projectFrame(frame, mapper) {
|
|
29
|
+
return {
|
|
30
|
+
file: mapper.toLocalPath(frame.location.script_path) ?? null,
|
|
31
|
+
function_name: frame.location.function_name,
|
|
32
|
+
index: frame.index,
|
|
33
|
+
line: frame.location.line_number,
|
|
34
|
+
script_path: frame.location.script_path,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Project an SDAPI object member to a structured variable.
|
|
39
|
+
*
|
|
40
|
+
* @param member - The SDAPI object member
|
|
41
|
+
* @param options.includeScope - Whether to include the scope field (defaults to true)
|
|
42
|
+
* @param options.maxValueLength - Maximum value length before truncation
|
|
43
|
+
*/
|
|
44
|
+
export function projectVariable(member, options = {}) {
|
|
45
|
+
const { includeScope = true, maxValueLength = DEFAULT_MAX_VALUE_LENGTH } = options;
|
|
46
|
+
const result = {
|
|
47
|
+
has_children: !isPrimitiveType(member.type),
|
|
48
|
+
name: member.name,
|
|
49
|
+
type: member.type,
|
|
50
|
+
value: truncateValue(member.value, maxValueLength),
|
|
51
|
+
};
|
|
52
|
+
if (includeScope)
|
|
53
|
+
result.scope = member.scope;
|
|
54
|
+
return result;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Project an SDAPI breakpoint to a structured object with mapped local file path.
|
|
58
|
+
*/
|
|
59
|
+
export function projectBreakpoint(bp, mapper) {
|
|
60
|
+
return {
|
|
61
|
+
condition: bp.condition,
|
|
62
|
+
file: mapper.toLocalPath(bp.script_path) ?? null,
|
|
63
|
+
id: bp.id,
|
|
64
|
+
line: bp.line_number,
|
|
65
|
+
script_path: bp.script_path,
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Project the top-of-stack location for a thread, mapping the script path.
|
|
70
|
+
* Returns null if the thread has no call stack.
|
|
71
|
+
*/
|
|
72
|
+
export function projectThreadLocation(thread, mapper) {
|
|
73
|
+
const topFrame = thread.call_stack?.[0];
|
|
74
|
+
if (!topFrame)
|
|
75
|
+
return null;
|
|
76
|
+
const loc = topFrame.location;
|
|
77
|
+
return {
|
|
78
|
+
file: mapper.toLocalPath(loc.script_path) ?? null,
|
|
79
|
+
function_name: loc.function_name,
|
|
80
|
+
line: loc.line_number,
|
|
81
|
+
script_path: loc.script_path,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=projections.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projections.js","sourceRoot":"","sources":["../../../../src/operations/debug/projections.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAaH,oEAAoE;AACpE,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAE5C;;;GAGG;AACH,MAAM,eAAe,GAAG,IAAI,GAAG,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;AAqCrH,iFAAiF;AACjF,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,MAAc,wBAAwB;IACjF,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,KAAK,CAAC;IACtC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAsB,EAAE,MAAoB;IACvE,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,IAAI;QAC5D,aAAa,EAAE,KAAK,CAAC,QAAQ,CAAC,aAAa;QAC3C,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW;QAChC,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW;KACxC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,MAAyB,EACzB,UAA6D,EAAE;IAE/D,MAAM,EAAC,YAAY,GAAG,IAAI,EAAE,cAAc,GAAG,wBAAwB,EAAC,GAAG,OAAO,CAAC;IACjF,MAAM,MAAM,GAAmB;QAC7B,YAAY,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC;QAC3C,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC;KACnD,CAAC;IACF,IAAI,YAAY;QAAE,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC9C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAmB,EAAE,MAAoB;IACzE,OAAO;QACL,SAAS,EAAE,EAAE,CAAC,SAAS;QACvB,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,IAAI;QAChD,EAAE,EAAE,EAAE,CAAC,EAAE;QACT,IAAI,EAAE,EAAE,CAAC,WAAW;QACpB,WAAW,EAAE,EAAE,CAAC,WAAW;KAC5B,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAyB,EAAE,MAAoB;IACnF,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC;IACxC,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3B,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC;IAC9B,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI;QACjD,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,IAAI,EAAE,GAAG,CAAC,WAAW;QACrB,WAAW,EAAE,GAAG,CAAC,WAAW;KAC7B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { SourceMapper } from './source-mapping.js';
|
|
2
|
+
import type { CartridgeMapping } from '../code/cartridges.js';
|
|
3
|
+
/**
|
|
4
|
+
* Resolve a user-provided file path to an SDAPI script_path.
|
|
5
|
+
*
|
|
6
|
+
* Accepts:
|
|
7
|
+
* - Absolute local path: `/Users/.../app_storefront/cartridge/controllers/Cart.js`
|
|
8
|
+
* - Relative local path: `./cartridges/app_storefront/cartridge/controllers/Cart.js`
|
|
9
|
+
* - Server path: `/app_storefront/cartridge/controllers/Cart.js` (passed through if not a local match)
|
|
10
|
+
* - Cartridge-name-prefixed: `app_storefront/cartridge/controllers/Cart.js` (prefixed with /)
|
|
11
|
+
*
|
|
12
|
+
* Returns the SDAPI script_path (e.g. `/app_storefront/cartridge/controllers/Cart.js`).
|
|
13
|
+
* Throws with a helpful message if the path cannot be resolved.
|
|
14
|
+
*/
|
|
15
|
+
export declare function resolveBreakpointPath(input: string, sourceMapper: SourceMapper, cartridges: CartridgeMapping[]): string;
|
|
@@ -0,0 +1,52 @@
|
|
|
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 path from 'node:path';
|
|
7
|
+
/**
|
|
8
|
+
* Resolve a user-provided file path to an SDAPI script_path.
|
|
9
|
+
*
|
|
10
|
+
* Accepts:
|
|
11
|
+
* - Absolute local path: `/Users/.../app_storefront/cartridge/controllers/Cart.js`
|
|
12
|
+
* - Relative local path: `./cartridges/app_storefront/cartridge/controllers/Cart.js`
|
|
13
|
+
* - Server path: `/app_storefront/cartridge/controllers/Cart.js` (passed through if not a local match)
|
|
14
|
+
* - Cartridge-name-prefixed: `app_storefront/cartridge/controllers/Cart.js` (prefixed with /)
|
|
15
|
+
*
|
|
16
|
+
* Returns the SDAPI script_path (e.g. `/app_storefront/cartridge/controllers/Cart.js`).
|
|
17
|
+
* Throws with a helpful message if the path cannot be resolved.
|
|
18
|
+
*/
|
|
19
|
+
export function resolveBreakpointPath(input, sourceMapper, cartridges) {
|
|
20
|
+
// Always try source mapper first — handles both absolute and relative local paths
|
|
21
|
+
const mapped = sourceMapper.toServerPath(input);
|
|
22
|
+
if (mapped)
|
|
23
|
+
return mapped;
|
|
24
|
+
// Try resolving relative to cwd (for paths like ./cartridges/app_mysite/...)
|
|
25
|
+
const resolved = path.resolve(input);
|
|
26
|
+
if (resolved !== input) {
|
|
27
|
+
const mappedResolved = sourceMapper.toServerPath(resolved);
|
|
28
|
+
if (mappedResolved)
|
|
29
|
+
return mappedResolved;
|
|
30
|
+
}
|
|
31
|
+
// If it starts with / and the source mapper didn't match, treat as server path
|
|
32
|
+
if (input.startsWith('/')) {
|
|
33
|
+
return input;
|
|
34
|
+
}
|
|
35
|
+
// Check if the input starts with a known cartridge name — treat as server path missing leading /
|
|
36
|
+
const normalized = input.split(path.sep).join('/');
|
|
37
|
+
const firstSegment = normalized.split('/')[0];
|
|
38
|
+
if (cartridges.some((c) => c.name === firstSegment)) {
|
|
39
|
+
return `/${normalized}`;
|
|
40
|
+
}
|
|
41
|
+
const cartridgeNames = cartridges.map((c) => c.name).join(', ');
|
|
42
|
+
const hint = cartridges.length > 0
|
|
43
|
+
? `Known cartridges: ${cartridgeNames}\n` +
|
|
44
|
+
`Accepted forms:\n` +
|
|
45
|
+
` /cartridge_name/cartridge/path/to/file.js (server path)\n` +
|
|
46
|
+
` cartridge_name/cartridge/path/to/file.js (server path without leading /)\n` +
|
|
47
|
+
` ./path/to/cartridge_name/cartridge/file.js (relative local path)\n` +
|
|
48
|
+
` /absolute/path/to/cartridge_name/file.js (absolute local path)`
|
|
49
|
+
: 'No cartridges discovered. Use a server path: /cartridge_name/cartridge/path/file.js';
|
|
50
|
+
throw new Error(`Cannot resolve "${input}" to a server script path.\n${hint}`);
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=resolve-path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve-path.js","sourceRoot":"","sources":["../../../../src/operations/debug/resolve-path.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAI7B;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAa,EACb,YAA0B,EAC1B,UAA8B;IAE9B,kFAAkF;IAClF,MAAM,MAAM,GAAG,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAChD,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACrC,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;QACvB,MAAM,cAAc,GAAG,YAAY,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,cAAc;YAAE,OAAO,cAAc,CAAC;IAC5C,CAAC;IAED,+EAA+E;IAC/E,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,iGAAiG;IACjG,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnD,MAAM,YAAY,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,EAAE,CAAC;QACpD,OAAO,IAAI,UAAU,EAAE,CAAC;IAC1B,CAAC;IAED,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChE,MAAM,IAAI,GACR,UAAU,CAAC,MAAM,GAAG,CAAC;QACnB,CAAC,CAAC,qBAAqB,cAAc,IAAI;YACvC,mBAAmB;YACnB,8DAA8D;YAC9D,iFAAiF;YACjF,uEAAuE;YACvE,qEAAqE;QACvE,CAAC,CAAC,qFAAqF,CAAC;IAE5F,MAAM,IAAI,KAAK,CAAC,mBAAmB,KAAK,+BAA+B,IAAI,EAAE,CAAC,CAAC;AACjF,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom domain certificate operations for Managed Runtime.
|
|
3
|
+
*
|
|
4
|
+
* Certificates are organization-scoped and can be associated with environments
|
|
5
|
+
* via the `certificate_id` field on target create/update/clone operations.
|
|
6
|
+
*
|
|
7
|
+
* @module operations/mrt/certificate
|
|
8
|
+
*/
|
|
9
|
+
import type { AuthStrategy } from '../../auth/types.js';
|
|
10
|
+
import type { components } from '../../clients/mrt.js';
|
|
11
|
+
export type MrtCertificate = components['schemas']['CertificateBase'];
|
|
12
|
+
export type MrtCertificateListCreate = components['schemas']['CertificateListCreate'];
|
|
13
|
+
export interface ListCertificatesOptions {
|
|
14
|
+
organizationSlug: string;
|
|
15
|
+
limit?: number;
|
|
16
|
+
offset?: number;
|
|
17
|
+
ordering?: string;
|
|
18
|
+
search?: string;
|
|
19
|
+
/** When true, return only customer-managed certificates. */
|
|
20
|
+
customOnly?: boolean;
|
|
21
|
+
origin?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface ListCertificatesResult {
|
|
24
|
+
count: number;
|
|
25
|
+
next: string | null;
|
|
26
|
+
previous: string | null;
|
|
27
|
+
certificates: MrtCertificateListCreate[];
|
|
28
|
+
}
|
|
29
|
+
export declare function listCertificates(options: ListCertificatesOptions, auth: AuthStrategy): Promise<ListCertificatesResult>;
|
|
30
|
+
export interface GetCertificateOptions {
|
|
31
|
+
organizationSlug: string;
|
|
32
|
+
certId: number;
|
|
33
|
+
origin?: string;
|
|
34
|
+
}
|
|
35
|
+
export declare function getCertificate(options: GetCertificateOptions, auth: AuthStrategy): Promise<MrtCertificate>;
|
|
36
|
+
export interface CreateCertificateOptions {
|
|
37
|
+
organizationSlug: string;
|
|
38
|
+
/**
|
|
39
|
+
* The domain for the certificate (e.g. shop.example.com).
|
|
40
|
+
*/
|
|
41
|
+
domainName: string;
|
|
42
|
+
origin?: string;
|
|
43
|
+
}
|
|
44
|
+
export declare function createCertificate(options: CreateCertificateOptions, auth: AuthStrategy): Promise<MrtCertificateListCreate>;
|
|
45
|
+
export interface DeleteCertificateOptions {
|
|
46
|
+
organizationSlug: string;
|
|
47
|
+
certId: number;
|
|
48
|
+
origin?: string;
|
|
49
|
+
}
|
|
50
|
+
export declare function deleteCertificate(options: DeleteCertificateOptions, auth: AuthStrategy): Promise<void>;
|
|
51
|
+
export interface RestartCertificateValidationOptions {
|
|
52
|
+
organizationSlug: string;
|
|
53
|
+
certId: number;
|
|
54
|
+
origin?: string;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Restarts validation for a certificate. Only works for certificates that have
|
|
58
|
+
* not yet been validated.
|
|
59
|
+
*/
|
|
60
|
+
export declare function restartCertificateValidation(options: RestartCertificateValidationOptions, auth: AuthStrategy): Promise<MrtCertificate>;
|