@salesforce/b2c-tooling-sdk 1.1.0 → 1.2.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/operations/code/watch.js +98 -75
- package/dist/cjs/operations/code/watch.js.map +1 -1
- package/dist/cjs/operations/debug/dap-adapter.d.ts +72 -0
- package/dist/cjs/operations/debug/dap-adapter.js +505 -0
- package/dist/cjs/operations/debug/dap-adapter.js.map +1 -0
- package/dist/cjs/operations/debug/debug-session.d.ts +51 -0
- package/dist/cjs/operations/debug/debug-session.js +219 -0
- package/dist/cjs/operations/debug/debug-session.js.map +1 -0
- package/dist/cjs/operations/debug/index.d.ts +17 -0
- package/dist/cjs/operations/debug/index.js +19 -0
- package/dist/cjs/operations/debug/index.js.map +1 -0
- package/dist/cjs/operations/debug/sdapi-client.d.ts +44 -0
- package/dist/cjs/operations/debug/sdapi-client.js +169 -0
- package/dist/cjs/operations/debug/sdapi-client.js.map +1 -0
- package/dist/cjs/operations/debug/source-mapping.d.ts +13 -0
- package/dist/cjs/operations/debug/source-mapping.js +57 -0
- package/dist/cjs/operations/debug/source-mapping.js.map +1 -0
- package/dist/cjs/operations/debug/types.d.ts +95 -0
- package/dist/cjs/operations/debug/types.js +2 -0
- package/dist/cjs/operations/debug/types.js.map +1 -0
- package/dist/cjs/operations/debug/variable-store.d.ts +35 -0
- package/dist/cjs/operations/debug/variable-store.js +52 -0
- package/dist/cjs/operations/debug/variable-store.js.map +1 -0
- package/dist/esm/operations/code/watch.js +98 -75
- package/dist/esm/operations/code/watch.js.map +1 -1
- package/dist/esm/operations/debug/dap-adapter.d.ts +72 -0
- package/dist/esm/operations/debug/dap-adapter.js +505 -0
- package/dist/esm/operations/debug/dap-adapter.js.map +1 -0
- package/dist/esm/operations/debug/debug-session.d.ts +51 -0
- package/dist/esm/operations/debug/debug-session.js +219 -0
- package/dist/esm/operations/debug/debug-session.js.map +1 -0
- package/dist/esm/operations/debug/index.d.ts +17 -0
- package/dist/esm/operations/debug/index.js +19 -0
- package/dist/esm/operations/debug/index.js.map +1 -0
- package/dist/esm/operations/debug/sdapi-client.d.ts +44 -0
- package/dist/esm/operations/debug/sdapi-client.js +169 -0
- package/dist/esm/operations/debug/sdapi-client.js.map +1 -0
- package/dist/esm/operations/debug/source-mapping.d.ts +13 -0
- package/dist/esm/operations/debug/source-mapping.js +57 -0
- package/dist/esm/operations/debug/source-mapping.js.map +1 -0
- package/dist/esm/operations/debug/types.d.ts +95 -0
- package/dist/esm/operations/debug/types.js +2 -0
- package/dist/esm/operations/debug/types.js.map +1 -0
- package/dist/esm/operations/debug/variable-store.d.ts +35 -0
- package/dist/esm/operations/debug/variable-store.js +52 -0
- package/dist/esm/operations/debug/variable-store.js.map +1 -0
- package/package.json +14 -3
|
@@ -104,91 +104,112 @@ export async function watchCartridges(instance, directory, options = {}) {
|
|
|
104
104
|
const filesToUpload = new Set();
|
|
105
105
|
const filesToDelete = new Set();
|
|
106
106
|
let lastErrorTime = 0;
|
|
107
|
+
let isProcessing = false;
|
|
107
108
|
/**
|
|
108
|
-
* Processes
|
|
109
|
+
* Processes all pending file changes, serializing WebDAV operations.
|
|
110
|
+
* Only one instance runs at a time — if new changes accumulate during
|
|
111
|
+
* processing, the while loop picks them up in the next iteration.
|
|
109
112
|
*/
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
// Rate limit on errors
|
|
113
|
-
if (now - lastErrorTime < 5000) {
|
|
114
|
-
logger.debug('Rate limiting after recent error, waiting...');
|
|
113
|
+
async function runProcessing() {
|
|
114
|
+
if (isProcessing)
|
|
115
115
|
return;
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
.
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
116
|
+
isProcessing = true;
|
|
117
|
+
try {
|
|
118
|
+
while (filesToUpload.size > 0 || filesToDelete.size > 0) {
|
|
119
|
+
// Rate limit on errors — wait instead of dropping items
|
|
120
|
+
const timeSinceError = Date.now() - lastErrorTime;
|
|
121
|
+
if (timeSinceError < 5000) {
|
|
122
|
+
const waitTime = 5000 - timeSinceError;
|
|
123
|
+
logger.debug({ waitTime }, 'Rate limiting after recent error, waiting...');
|
|
124
|
+
await new Promise((resolve) => setTimeout(resolve, waitTime));
|
|
125
|
+
}
|
|
126
|
+
const uploadFiles = Array.from(filesToUpload)
|
|
127
|
+
.map((f) => fileToCartridgePath(f, cartridges))
|
|
128
|
+
.filter((f) => f !== undefined);
|
|
129
|
+
const deleteFiles = Array.from(filesToDelete)
|
|
130
|
+
.map((f) => fileToCartridgePath(f, cartridges))
|
|
131
|
+
.filter((f) => f !== undefined);
|
|
132
|
+
filesToUpload.clear();
|
|
133
|
+
filesToDelete.clear();
|
|
134
|
+
// Filter out files that no longer exist
|
|
135
|
+
const validUploadFiles = uploadFiles.filter((f) => {
|
|
136
|
+
if (!fs.existsSync(f.src)) {
|
|
137
|
+
logger.debug({ file: f.src }, 'Skipping missing file');
|
|
138
|
+
return false;
|
|
139
|
+
}
|
|
140
|
+
return true;
|
|
141
|
+
});
|
|
142
|
+
// Upload files
|
|
143
|
+
if (validUploadFiles.length > 0) {
|
|
144
|
+
const uploadPath = `${webdavLocation}/_upload-${Date.now()}.zip`;
|
|
139
145
|
try {
|
|
140
|
-
const
|
|
141
|
-
|
|
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));
|
|
142
176
|
}
|
|
143
177
|
catch (error) {
|
|
144
|
-
|
|
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);
|
|
145
186
|
}
|
|
146
187
|
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
188
|
+
// Skip deletes for any file that was also uploaded in this batch (disk state wins)
|
|
189
|
+
const uploadedPaths = new Set(validUploadFiles.map((f) => f.dest));
|
|
190
|
+
const filesToDeleteFiltered = deleteFiles.filter((f) => !uploadedPaths.has(f.dest));
|
|
191
|
+
if (filesToDeleteFiltered.length > 0) {
|
|
192
|
+
logger.debug({ fileCount: filesToDeleteFiltered.length }, `Deleting ${filesToDeleteFiltered.length} file(s)`);
|
|
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
|
+
}
|
|
202
|
+
}
|
|
203
|
+
options.onDelete?.(filesToDeleteFiltered.map((f) => f.dest));
|
|
163
204
|
}
|
|
164
|
-
await webdav.delete(uploadPath);
|
|
165
|
-
logger.debug({ fileCount: validUploadFiles.length, server: instance.config.hostname }, `Uploaded ${validUploadFiles.length} file(s)`);
|
|
166
|
-
options.onUpload?.(validUploadFiles.map((f) => f.dest));
|
|
167
|
-
}
|
|
168
|
-
catch (error) {
|
|
169
|
-
lastErrorTime = now;
|
|
170
|
-
const err = error instanceof Error ? error : new Error(String(error));
|
|
171
|
-
logger.error({ error: err }, `Upload error: ${err.message}`);
|
|
172
|
-
options.onError?.(err);
|
|
173
205
|
}
|
|
174
206
|
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
const filesToDeleteFiltered = deleteFiles.filter((f) => !recentlyUploadedPaths.has(f.dest));
|
|
178
|
-
if (filesToDeleteFiltered.length > 0) {
|
|
179
|
-
logger.debug({ fileCount: filesToDeleteFiltered.length }, `Deleting ${filesToDeleteFiltered.length} file(s)`);
|
|
180
|
-
for (const f of filesToDeleteFiltered) {
|
|
181
|
-
const deletePath = `${webdavLocation}/${f.dest}`;
|
|
182
|
-
try {
|
|
183
|
-
await webdav.delete(deletePath);
|
|
184
|
-
logger.info({ path: deletePath }, `Deleted: ${deletePath}`);
|
|
185
|
-
}
|
|
186
|
-
catch (error) {
|
|
187
|
-
logger.debug({ path: deletePath, error }, `Failed to delete ${deletePath}`);
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
options.onDelete?.(filesToDeleteFiltered.map((f) => f.dest));
|
|
207
|
+
finally {
|
|
208
|
+
isProcessing = false;
|
|
191
209
|
}
|
|
210
|
+
}
|
|
211
|
+
const scheduleProcessing = debounce(() => {
|
|
212
|
+
void runProcessing();
|
|
192
213
|
}, debounceTime);
|
|
193
214
|
// Set up file watcher
|
|
194
215
|
const watcher = watch(cartridges.map((c) => c.src), {
|
|
@@ -200,11 +221,13 @@ export async function watchCartridges(instance, directory, options = {}) {
|
|
|
200
221
|
logger.info({ event, path: fullPath }, `File event: ${event} ${fullPath}`);
|
|
201
222
|
if (event === 'change' || event === 'add') {
|
|
202
223
|
filesToUpload.add(fullPath);
|
|
203
|
-
|
|
224
|
+
filesToDelete.delete(fullPath);
|
|
225
|
+
scheduleProcessing();
|
|
204
226
|
}
|
|
205
227
|
else if (event === 'unlink') {
|
|
206
228
|
filesToDelete.add(fullPath);
|
|
207
|
-
|
|
229
|
+
filesToUpload.delete(fullPath);
|
|
230
|
+
scheduleProcessing();
|
|
208
231
|
}
|
|
209
232
|
});
|
|
210
233
|
watcher.on('error', (err) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch.js","sourceRoot":"","sources":["../../../../src/operations/code/watch.ts"],"names":[],"mappings":"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
|
|
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,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAC,KAAK,EAAiB,MAAM,UAAU,CAAC;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,SAAS,EAAC,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAC,cAAc,EAAoD,MAAM,iBAAiB,CAAC;AAClG,OAAO,EAAC,oBAAoB,EAAC,MAAM,eAAe,CAAC;AAEnD,MAAM,UAAU,GAAG,IAAI,eAAe,CAAC,EAAC,MAAM,EAAE,OAAO,EAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;AAErE,4DAA4D;AAC5D,MAAM,qBAAqB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,KAAK,EAAE,EAAE,CAAC,CAAC;AA8B3F;;GAEG;AACH,SAAS,mBAAmB,CAC1B,YAAoB,EACpB,UAA8B;IAE9B,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAEzE,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAEzD,OAAO;QACL,GAAG,EAAE,YAAY;QACjB,IAAI,EAAE,QAAQ;KACf,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,QAAQ,CAAuB,EAAK,EAAE,KAAa;IAC1D,IAAI,KAAK,GAAyC,IAAI,CAAC;IAEvD,OAAO,CAAC,GAAG,EAAE;QACX,IAAI,KAAK,EAAE,CAAC;YACV,YAAY,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QAED,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YACtB,KAAK,GAAG,IAAI,CAAC;YACb,EAAE,EAAE,CAAC;QACP,CAAC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC,CAAM,CAAC;AACV,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAAqB,EACrB,SAAiB,EACjB,UAAwB,EAAE;IAE1B,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,IAAI,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC;IAC9C,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,qBAAqB,CAAC;IAEnE,mDAAmD;IACnD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAChF,CAAC;QACD,WAAW,GAAG,MAAM,CAAC,EAAE,CAAC;QACxB,QAAQ,CAAC,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;IAC5C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,EAAC,SAAS,EAAC,EAAE,gCAAgC,CAAC,CAAC;IAC5D,MAAM,UAAU,GAAG,cAAc,CAAC,SAAS,EAAE;QAC3C,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;IAEH,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,0BAA0B,SAAS,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,EAAC,KAAK,EAAE,UAAU,CAAC,MAAM,EAAC,EAAE,YAAY,UAAU,CAAC,MAAM,eAAe,CAAC,CAAC;IACvF,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,EAAC,aAAa,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,EAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC/B,MAAM,cAAc,GAAG,cAAc,WAAW,EAAE,CAAC;IACnD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,iCAAiC;IACjC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,YAAY,GAAG,KAAK,CAAC;IAEzB;;;;OAIG;IACH,KAAK,UAAU,aAAa;QAC1B,IAAI,YAAY;YAAE,OAAO;QACzB,YAAY,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC;YACH,OAAO,aAAa,CAAC,IAAI,GAAG,CAAC,IAAI,aAAa,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACxD,wDAAwD;gBACxD,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,aAAa,CAAC;gBAClD,IAAI,cAAc,GAAG,IAAI,EAAE,CAAC;oBAC1B,MAAM,QAAQ,GAAG,IAAI,GAAG,cAAc,CAAC;oBACvC,MAAM,CAAC,KAAK,CAAC,EAAC,QAAQ,EAAC,EAAE,8CAA8C,CAAC,CAAC;oBACzE,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;gBAChE,CAAC;gBAED,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;qBAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;qBAC9C,MAAM,CAAC,CAAC,CAAC,EAA8B,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;gBAE9D,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;qBAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,mBAAmB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;qBAC9C,MAAM,CAAC,CAAC,CAAC,EAA8B,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC;gBAE9D,aAAa,CAAC,KAAK,EAAE,CAAC;gBACtB,aAAa,CAAC,KAAK,EAAE,CAAC;gBAEtB,wCAAwC;gBACxC,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;oBAChD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;wBAC1B,MAAM,CAAC,KAAK,CAAC,EAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAC,EAAE,uBAAuB,CAAC,CAAC;wBACrD,OAAO,KAAK,CAAC;oBACf,CAAC;oBACD,OAAO,IAAI,CAAC;gBACd,CAAC,CAAC,CAAC;gBAEH,eAAe;gBACf,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChC,MAAM,UAAU,GAAG,GAAG,cAAc,YAAY,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC;oBAEjE,IAAI,CAAC;wBACH,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;wBAExB,KAAK,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC;4BACjC,IAAI,CAAC;gCACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gCAClD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;4BAC5B,CAAC;4BAAC,OAAO,KAAK,EAAE,CAAC;gCACf,MAAM,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,KAAK,EAAC,EAAE,+BAA+B,CAAC,CAAC;4BACrE,CAAC;wBACH,CAAC;wBAED,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC;4BACrC,IAAI,EAAE,YAAY;4BAClB,WAAW,EAAE,SAAS;4BACtB,kBAAkB,EAAE,EAAC,KAAK,EAAE,CAAC,EAAC;yBAC/B,CAAC,CAAC;wBAEH,MAAM,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,iBAAiB,CAAC,CAAC;wBACxD,MAAM,CAAC,KAAK,CAAC,EAAC,UAAU,EAAC,EAAE,kBAAkB,CAAC,CAAC;wBAE/C,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE;4BAChD,MAAM,EAAE,MAAM;4BACd,IAAI,EAAE,UAAU;4BAChB,OAAO,EAAE;gCACP,cAAc,EAAE,mCAAmC;6BACpD;yBACF,CAAC,CAAC;wBAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;4BACjB,MAAM,IAAI,KAAK,CAAC,iBAAiB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;wBACtD,CAAC;wBAED,MAAM,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;wBAEhC,MAAM,CAAC,KAAK,CACV,EAAC,SAAS,EAAE,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAC,EACtE,YAAY,gBAAgB,CAAC,MAAM,UAAU,CAC9C,CAAC;wBAEF,OAAO,CAAC,QAAQ,EAAE,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;oBAC1D,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;wBAC3B,2DAA2D;wBAC3D,KAAK,MAAM,CAAC,IAAI,gBAAgB,EAAE,CAAC;4BACjC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAC3B,CAAC;wBACD,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;wBACtE,MAAM,CAAC,KAAK,CAAC,EAAC,KAAK,EAAE,GAAG,EAAC,EAAE,iBAAiB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;wBAC3D,OAAO,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;oBACzB,CAAC;gBACH,CAAC;gBAED,mFAAmF;gBACnF,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBACnE,MAAM,qBAAqB,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBAEpF,IAAI,qBAAqB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrC,MAAM,CAAC,KAAK,CAAC,EAAC,SAAS,EAAE,qBAAqB,CAAC,MAAM,EAAC,EAAE,YAAY,qBAAqB,CAAC,MAAM,UAAU,CAAC,CAAC;oBAE5G,KAAK,MAAM,CAAC,IAAI,qBAAqB,EAAE,CAAC;wBACtC,MAAM,UAAU,GAAG,GAAG,cAAc,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;wBACjD,IAAI,CAAC;4BACH,MAAM,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;4BAChC,MAAM,CAAC,IAAI,CAAC,EAAC,IAAI,EAAE,UAAU,EAAC,EAAE,YAAY,UAAU,EAAE,CAAC,CAAC;wBAC5D,CAAC;wBAAC,OAAO,KAAK,EAAE,CAAC;4BACf,MAAM,CAAC,KAAK,CAAC,EAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAC,EAAE,oBAAoB,UAAU,EAAE,CAAC,CAAC;wBAC5E,CAAC;oBACH,CAAC;oBAED,OAAO,CAAC,QAAQ,EAAE,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,YAAY,GAAG,KAAK,CAAC;QACvB,CAAC;IACH,CAAC;IAED,MAAM,kBAAkB,GAAG,QAAQ,CAAC,GAAG,EAAE;QACvC,KAAK,aAAa,EAAE,CAAC;IACvB,CAAC,EAAE,YAAY,CAAC,CAAC;IAEjB,sBAAsB;IACtB,MAAM,OAAO,GAAG,KAAK,CACnB,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAC5B;QACE,aAAa,EAAE,IAAI;QACnB,GAAG;KACJ,CACF,CAAC;IAEF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QACtC,MAAM,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAC,EAAE,eAAe,KAAK,IAAI,QAAQ,EAAE,CAAC,CAAC;QAEzE,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;YAC1C,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC5B,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC/B,kBAAkB,EAAE,CAAC;QACvB,CAAC;aAAM,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAC5B,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC/B,kBAAkB,EAAE,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAY,EAAE,EAAE;QACnC,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAClE,MAAM,CAAC,KAAK,CAAC,EAAC,KAAK,EAAC,EAAE,eAAe,CAAC,CAAC;QACvC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,CAAC,EAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAC,EAAE,yBAAyB,CAAC,CAAC;IAEzF,OAAO;QACL,OAAO;QACP,UAAU;QACV,WAAW;QACX,IAAI,EAAE,KAAK,IAAI,EAAE;YACf,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;QAClC,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DAP (Debug Adapter Protocol) adapter for B2C Commerce Script Debugger.
|
|
3
|
+
*
|
|
4
|
+
* Extends `@vscode/debugadapter`'s LoggingDebugSession and maps DAP requests
|
|
5
|
+
* to SDAPI operations. Works over stdio (CLI) or inline (VSCode extension).
|
|
6
|
+
*
|
|
7
|
+
* @module operations/debug/dap-adapter
|
|
8
|
+
*/
|
|
9
|
+
import { LoggingDebugSession } from '@vscode/debugadapter';
|
|
10
|
+
import type { DebugProtocol } from '@vscode/debugprotocol';
|
|
11
|
+
import type { DebugSessionCallbacks, DebugSessionConfig } from './types.js';
|
|
12
|
+
/**
|
|
13
|
+
* Launch request arguments (received via launch.json or CLI config).
|
|
14
|
+
*/
|
|
15
|
+
interface LaunchRequestArguments extends DebugProtocol.LaunchRequestArguments {
|
|
16
|
+
hostname?: string;
|
|
17
|
+
username?: string;
|
|
18
|
+
password?: string;
|
|
19
|
+
clientId?: string;
|
|
20
|
+
cartridgePath?: string;
|
|
21
|
+
pollInterval?: number;
|
|
22
|
+
keepaliveInterval?: number;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* B2C Script Debug Adapter.
|
|
26
|
+
*
|
|
27
|
+
* Can be used in two modes:
|
|
28
|
+
* 1. **Pre-configured**: Pass a `DebugSessionConfig` to the constructor (for inline VSCode use)
|
|
29
|
+
* 2. **Launch-configured**: Config comes from DAP launch request arguments (for CLI stdio use)
|
|
30
|
+
*/
|
|
31
|
+
export declare class B2CScriptDebugAdapter extends LoggingDebugSession {
|
|
32
|
+
private session?;
|
|
33
|
+
private sourceMapper?;
|
|
34
|
+
private variableStore;
|
|
35
|
+
private preConfig?;
|
|
36
|
+
private externalCallbacks;
|
|
37
|
+
/** Breakpoints keyed by server script_path (merged across all files) */
|
|
38
|
+
private breakpointsBySource;
|
|
39
|
+
/** Logpoint messages keyed by "script_path:line_number" */
|
|
40
|
+
private logpoints;
|
|
41
|
+
constructor(config?: DebugSessionConfig, callbacks?: DebugSessionCallbacks);
|
|
42
|
+
/**
|
|
43
|
+
* Override shutdown to prevent the base class from calling process.exit().
|
|
44
|
+
* Process lifecycle is managed by the CLI command, not the adapter.
|
|
45
|
+
*/
|
|
46
|
+
shutdown(): void;
|
|
47
|
+
protected initializeRequest(response: DebugProtocol.InitializeResponse, _args: DebugProtocol.InitializeRequestArguments): void;
|
|
48
|
+
protected launchRequest(response: DebugProtocol.LaunchResponse, args: LaunchRequestArguments): Promise<void>;
|
|
49
|
+
protected configurationDoneRequest(response: DebugProtocol.ConfigurationDoneResponse, _args: DebugProtocol.ConfigurationDoneArguments): void;
|
|
50
|
+
protected disconnectRequest(response: DebugProtocol.DisconnectResponse, _args: DebugProtocol.DisconnectArguments): Promise<void>;
|
|
51
|
+
protected terminateRequest(response: DebugProtocol.TerminateResponse, _args: DebugProtocol.TerminateArguments): Promise<void>;
|
|
52
|
+
protected setBreakPointsRequest(response: DebugProtocol.SetBreakpointsResponse, args: DebugProtocol.SetBreakpointsArguments): Promise<void>;
|
|
53
|
+
protected threadsRequest(response: DebugProtocol.ThreadsResponse): void;
|
|
54
|
+
protected stackTraceRequest(response: DebugProtocol.StackTraceResponse, args: DebugProtocol.StackTraceArguments): Promise<void>;
|
|
55
|
+
protected scopesRequest(response: DebugProtocol.ScopesResponse, args: DebugProtocol.ScopesArguments): void;
|
|
56
|
+
protected variablesRequest(response: DebugProtocol.VariablesResponse, args: DebugProtocol.VariablesArguments): Promise<void>;
|
|
57
|
+
protected evaluateRequest(response: DebugProtocol.EvaluateResponse, args: DebugProtocol.EvaluateArguments): Promise<void>;
|
|
58
|
+
protected continueRequest(response: DebugProtocol.ContinueResponse, args: DebugProtocol.ContinueArguments): Promise<void>;
|
|
59
|
+
protected nextRequest(response: DebugProtocol.NextResponse, args: DebugProtocol.NextArguments): Promise<void>;
|
|
60
|
+
protected stepInRequest(response: DebugProtocol.StepInResponse, args: DebugProtocol.StepInArguments): Promise<void>;
|
|
61
|
+
protected stepOutRequest(response: DebugProtocol.StepOutResponse, args: DebugProtocol.StepOutArguments): Promise<void>;
|
|
62
|
+
private handleThreadStopped;
|
|
63
|
+
private handleLogpoint;
|
|
64
|
+
private handleThreadContinued;
|
|
65
|
+
private handleThreadExited;
|
|
66
|
+
private resolveConfig;
|
|
67
|
+
private memberToVariable;
|
|
68
|
+
private friendlyErrorMessage;
|
|
69
|
+
private _nextBreakpointId;
|
|
70
|
+
private allocateBreakpointId;
|
|
71
|
+
}
|
|
72
|
+
export {};
|