@socketsecurity/cli 1.1.171 → 1.1.173

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.
@@ -1 +1 @@
1
- {"version":3,"file":"handle-ci.d.mts","sourceRoot":"","sources":["../../../../src/commands/ci/handle-ci.mts"],"names":[],"mappings":"AAcA;;;;;GAKG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAKlD;AAED,wBAAsB,QAAQ,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAsEnE"}
1
+ {"version":3,"file":"handle-ci.d.mts","sourceRoot":"","sources":["../../../../src/commands/ci/handle-ci.mts"],"names":[],"mappings":"AAcA;;;;;GAKG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAKlD;AAED,wBAAsB,QAAQ,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAuEnE"}
@@ -1 +1 @@
1
- {"version":3,"file":"cmd-scan-create.d.mts","sourceRoot":"","sources":["../../../../src/commands/scan/cmd-scan-create.mts"],"names":[],"mappings":"AA4CA,OAAO,KAAK,EAEV,iBAAiB,EAClB,MAAM,uCAAuC,CAAA;AAE9C,eAAO,MAAM,QAAQ,WAAW,CAAA;AA+HhC,eAAO,MAAM,aAAa;;;;CAIzB,CAAA;AAED,iBAAe,GAAG,CAChB,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,EAClC,UAAU,EAAE,UAAU,EACtB,EAAE,UAAU,EAAE,EAAE,iBAAiB,GAChC,OAAO,CAAC,IAAI,CAAC,CA4ef"}
1
+ {"version":3,"file":"cmd-scan-create.d.mts","sourceRoot":"","sources":["../../../../src/commands/scan/cmd-scan-create.mts"],"names":[],"mappings":"AA4CA,OAAO,KAAK,EAEV,iBAAiB,EAClB,MAAM,uCAAuC,CAAA;AAE9C,eAAO,MAAM,QAAQ,WAAW,CAAA;AA+HhC,eAAO,MAAM,aAAa;;;;CAIzB,CAAA;AAED,iBAAe,GAAG,CAChB,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,EAClC,UAAU,EAAE,UAAU,EACtB,EAAE,UAAU,EAAE,EAAE,iBAAiB,GAChC,OAAO,CAAC,IAAI,CAAC,CA+ef"}
@@ -1 +1 @@
1
- {"version":3,"file":"cmd-scan-reach.d.mts","sourceRoot":"","sources":["../../../../src/commands/scan/cmd-scan-reach.mts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAEV,iBAAiB,EAClB,MAAM,uCAAuC,CAAA;AAE9C,eAAO,MAAM,QAAQ,UAAU,CAAA;AAyC/B,eAAO,MAAM,YAAY;;;;CAIxB,CAAA;AAED,iBAAe,GAAG,CAChB,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,EAClC,UAAU,EAAE,UAAU,EACtB,EAAE,UAAU,EAAE,EAAE,iBAAiB,GAChC,OAAO,CAAC,IAAI,CAAC,CAmOf"}
1
+ {"version":3,"file":"cmd-scan-reach.d.mts","sourceRoot":"","sources":["../../../../src/commands/scan/cmd-scan-reach.mts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAEV,iBAAiB,EAClB,MAAM,uCAAuC,CAAA;AAE9C,eAAO,MAAM,QAAQ,UAAU,CAAA;AAiD/B,eAAO,MAAM,YAAY;;;;CAIxB,CAAA;AAED,iBAAe,GAAG,CAChB,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,EAClC,UAAU,EAAE,UAAU,EACtB,EAAE,UAAU,EAAE,EAAE,iBAAiB,GAChC,OAAO,CAAC,IAAI,CAAC,CAmOf"}
@@ -16,6 +16,7 @@ export type HandleCreateNewScanConfig = {
16
16
  pullRequest: number;
17
17
  outputKind: OutputKind;
18
18
  reach: Remap<ReachabilityOptions & {
19
+ reachFallbackToRegularScan: boolean;
19
20
  runReachabilityAnalysis: boolean;
20
21
  }>;
21
22
  readOnly: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"handle-create-new-scan.d.mts","sourceRoot":"","sources":["../../../../src/commands/scan/handle-create-new-scan.mts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sCAAsC,CAAA;AAsCjE,MAAM,MAAM,yBAAyB,GAAG;IACtC,YAAY,EAAE,OAAO,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,MAAM,CAAA;IACX,aAAa,EAAE,OAAO,CAAA;IACtB,WAAW,EAAE,OAAO,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,OAAO,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,UAAU,CAAA;IACtB,KAAK,EAAE,KAAK,CACV,mBAAmB,GAAG;QACpB,uBAAuB,EAAE,OAAO,CAAA;KACjC,CACF,CAAA;IACD,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,OAAO,CAAA;IACf,WAAW,EAAE,YAAY,CAAA;IACzB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,GAAG,EAAE,OAAO,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC/B,CAAA;AAED,wBAAsB,mBAAmB,CAAC,EACxC,YAAY,EACZ,UAAU,EACV,UAAU,EACV,aAAa,EACb,UAAU,EACV,GAAG,EACH,aAAa,EACb,WAAW,EACX,OAAO,EACP,UAAU,EACV,WAAW,EACX,WAAW,EACX,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,WAAW,EACX,OAAO,EACP,GAAG,EACH,SAAS,EACV,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2V3C"}
1
+ {"version":3,"file":"handle-create-new-scan.d.mts","sourceRoot":"","sources":["../../../../src/commands/scan/handle-create-new-scan.mts"],"names":[],"mappings":"AAiCA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAA;AAC9E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sCAAsC,CAAA;AAsCjE,MAAM,MAAM,yBAAyB,GAAG;IACtC,YAAY,EAAE,OAAO,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,MAAM,CAAA;IACX,aAAa,EAAE,OAAO,CAAA;IACtB,WAAW,EAAE,OAAO,CAAA;IACpB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,OAAO,CAAA;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,EAAE,UAAU,CAAA;IACtB,KAAK,EAAE,KAAK,CACV,mBAAmB,GAAG;QACpB,0BAA0B,EAAE,OAAO,CAAA;QACnC,uBAAuB,EAAE,OAAO,CAAA;KACjC,CACF,CAAA;IACD,QAAQ,EAAE,OAAO,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,OAAO,CAAA;IACf,WAAW,EAAE,YAAY,CAAA;IACzB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,GAAG,EAAE,OAAO,CAAA;IACZ,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAC/B,CAAA;AAED,wBAAsB,mBAAmB,CAAC,EACxC,YAAY,EACZ,UAAU,EACV,UAAU,EACV,aAAa,EACb,UAAU,EACV,GAAG,EACH,aAAa,EACb,WAAW,EACX,OAAO,EACP,UAAU,EACV,WAAW,EACX,WAAW,EACX,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,WAAW,EACX,OAAO,EACP,GAAG,EACH,SAAS,EACV,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsX3C"}
@@ -1,9 +1,16 @@
1
1
  import type { CResult, OutputKind } from '../../types.mts';
2
2
  import type { Spinner } from '@socketsecurity/registry/lib/spinner';
3
3
  import type { FullScanResult } from '@socketsecurity/sdk';
4
+ export type ReachabilityFallback = {
5
+ cause?: string | undefined;
6
+ message: string;
7
+ };
4
8
  export type CreateNewScanOptions = {
5
9
  interactive?: boolean | undefined;
6
10
  outputKind?: OutputKind | undefined;
11
+ // Set when --reach-fallback-to-regular-scan downgraded the run, so machine
12
+ // consumers can tell a degraded scan from a full one.
13
+ reachabilityFallback?: ReachabilityFallback | undefined;
7
14
  spinner?: Spinner | undefined;
8
15
  };
9
16
  export declare function outputCreateNewScan(result: CResult<FullScanResult['data']>, options?: CreateNewScanOptions | undefined): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"output-create-new-scan.d.mts","sourceRoot":"","sources":["../../../../src/commands/scan/output-create-new-scan.mts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAA;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEzD,MAAM,MAAM,oBAAoB,GAAG;IACjC,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACjC,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IACnC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAC9B,CAAA;AAED,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EACvC,OAAO,CAAC,EAAE,oBAAoB,GAAG,SAAS,iBAmF3C"}
1
+ {"version":3,"file":"output-create-new-scan.d.mts","sourceRoot":"","sources":["../../../../src/commands/scan/output-create-new-scan.mts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAA;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEzD,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACjC,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAA;IACnC,2EAA2E;IAC3E,sDAAsD;IACtD,oBAAoB,CAAC,EAAE,oBAAoB,GAAG,SAAS,CAAA;IACvD,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAC9B,CAAA;AAED,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,EACvC,OAAO,CAAC,EAAE,oBAAoB,GAAG,SAAS,iBA6F3C"}
@@ -1 +1 @@
1
- {"version":3,"file":"reachability-flags.d.mts","sourceRoot":"","sources":["../../../../src/commands/scan/reachability-flags.mts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAEhD,8EAA8E;AAC9E,uEAAuE;AACvE,gBAAgB;AAChB,eAAO,MAAM,kCAAkC,oKACoH,CAAA;AAEnK,eAAO,MAAM,iBAAiB,EAAE,SAwH/B,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,SAO9B,CAAA"}
1
+ {"version":3,"file":"reachability-flags.d.mts","sourceRoot":"","sources":["../../../../src/commands/scan/reachability-flags.mts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAEhD,8EAA8E;AAC9E,uEAAuE;AACvE,gBAAgB;AAChB,eAAO,MAAM,kCAAkC,oKACoH,CAAA;AAEnK,eAAO,MAAM,iBAAiB,EAAE,SA8H/B,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,SAO9B,CAAA"}
@@ -47,4 +47,15 @@ export declare function extractTier1ReachabilityScanId(socketFactsFile: string):
47
47
  // and `workspacePath` the workspace within it, so a single-root repo reports
48
48
  // `.` as its subproject and must be labelled by its workspace alone.
49
49
  export declare function getFullWorkspacePath(subprojectPath: string, workspacePath: string): string;
50
+ export type SnapshotSocketFactsOptions = {
51
+ cwd: string;
52
+ outputPath: string;
53
+ tmpDir: string;
54
+ };
55
+ export type SocketFactsSnapshot = {
56
+ restore: () => Promise<void>;
57
+ };
58
+ // Coana overwrites `.socket.facts.json` in place, so an analysis that fails
59
+ // part way leaves partial output where the scan's inputs used to be.
60
+ export declare function snapshotSocketFacts(scanPaths: string[], options: SnapshotSocketFactsOptions): Promise<SocketFactsSnapshot>;
50
61
  //# sourceMappingURL=coana.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"coana.d.mts","sourceRoot":"","sources":["../../../src/utils/coana.mts"],"names":[],"mappings":"AA+BA,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7B,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAsB,4BAA4B,CAChD,SAAS,EAAE,MAAM,EAAE,GAClB,OAAO,CAAC,mBAAmB,CAAC,CAgD9B;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,aAAa,EAAE,MAAM,CAAA;IACrB,gBAAgB,EAAE,MAAM,CAAA;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,wBAAgB,yBAAyB,CACvC,eAAe,EAAE,MAAM,GACtB,iBAAiB,EAAE,CA4CrB;AAED,wBAAgB,8BAA8B,CAC5C,eAAe,EAAE,MAAM,GACtB,MAAM,GAAG,SAAS,CAQpB;AAED,2EAA2E;AAC3E,6EAA6E;AAC7E,6EAA6E;AAC7E,qEAAqE;AACrE,wBAAgB,oBAAoB,CAClC,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,GACpB,MAAM,CAQR"}
1
+ {"version":3,"file":"coana.d.mts","sourceRoot":"","sources":["../../../src/utils/coana.mts"],"names":[],"mappings":"AAkCA,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7B,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAsB,4BAA4B,CAChD,SAAS,EAAE,MAAM,EAAE,GAClB,OAAO,CAAC,mBAAmB,CAAC,CAgD9B;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,aAAa,EAAE,MAAM,CAAA;IACrB,gBAAgB,EAAE,MAAM,CAAA;IACxB,MAAM,EAAE,MAAM,CAAA;IACd,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,wBAAgB,yBAAyB,CACvC,eAAe,EAAE,MAAM,GACtB,iBAAiB,EAAE,CA4CrB;AAED,wBAAgB,8BAA8B,CAC5C,eAAe,EAAE,MAAM,GACtB,MAAM,GAAG,SAAS,CAQpB;AAED,2EAA2E;AAC3E,6EAA6E;AAC7E,6EAA6E;AAC7E,qEAAqE;AACrE,wBAAgB,oBAAoB,CAClC,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,MAAM,GACpB,MAAM,CAQR;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7B,CAAA;AAED,4EAA4E;AAC5E,qEAAqE;AACrE,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EAAE,EACnB,OAAO,EAAE,0BAA0B,GAClC,OAAO,CAAC,mBAAmB,CAAC,CAoD9B"}
package/dist/utils.js CHANGED
@@ -5035,6 +5035,8 @@ function* walkNestedMap(map, keys = []) {
5035
5035
  * - extractReachabilityErrors: Extract per-component reachability errors
5036
5036
  * - extractTier1ReachabilityScanId: Extract scan ID from socket facts file
5037
5037
  * - getFullWorkspacePath: Label a build-root/workspace pair the way Coana does
5038
+ * - snapshotSocketFacts: Copy aside the socket facts files Coana overwrites
5039
+ * in place, so a failed analysis can be rolled back
5038
5040
  *
5039
5041
  * Integration:
5040
5042
  * - Works with @coana-tech/cli for reachability analysis
@@ -5173,6 +5175,62 @@ function getFullWorkspacePath(subprojectPath, workspacePath) {
5173
5175
  }
5174
5176
  return subproject || workspace || '.';
5175
5177
  }
5178
+ // Coana overwrites `.socket.facts.json` in place, so an analysis that fails
5179
+ // part way leaves partial output where the scan's inputs used to be.
5180
+ async function snapshotSocketFacts(scanPaths, options) {
5181
+ const {
5182
+ cwd,
5183
+ outputPath,
5184
+ tmpDir
5185
+ } = {
5186
+ __proto__: null,
5187
+ ...options
5188
+ };
5189
+ const sources = new Set(scanPaths.filter(p => path.basename(p) === DOT_SOCKET_DOT_FACTS_JSON).map(p => path.resolve(cwd, p)));
5190
+ sources.add(path.resolve(cwd, outputPath));
5191
+ const snapshotDir = path.join(tmpDir, 'socket-facts-snapshot');
5192
+ await fs$2.mkdir(snapshotDir, {
5193
+ recursive: true
5194
+ });
5195
+ const captured = [];
5196
+ const created = [];
5197
+ await Promise.all(Array.from(sources, async (source, index) => {
5198
+ if (!fs.existsSync(source)) {
5199
+ created.push(source);
5200
+ return;
5201
+ }
5202
+ const backup = path.join(snapshotDir, `${index}.json`);
5203
+ try {
5204
+ await fs$2.copyFile(source, backup);
5205
+ captured.push({
5206
+ backup,
5207
+ source
5208
+ });
5209
+ } catch (e) {
5210
+ // A path we cannot copy is left out of both lists so restore() leaves
5211
+ // it untouched rather than deleting a file it never captured.
5212
+ debug$2.debugFn('warn', `[socket-facts] snapshot failed: ${source}`);
5213
+ debug$2.debugDir('error', e);
5214
+ }
5215
+ }));
5216
+ return {
5217
+ async restore() {
5218
+ await Promise.all([...captured.map(async ({
5219
+ backup,
5220
+ source
5221
+ }) => {
5222
+ try {
5223
+ await fs$2.copyFile(backup, source);
5224
+ } catch (e) {
5225
+ debug$2.debugFn('warn', `[socket-facts] restore failed: ${source}`);
5226
+ debug$2.debugDir('error', e);
5227
+ }
5228
+ }), ...created.map(source => fs$2.rm(source, {
5229
+ force: true
5230
+ }).catch(() => {}))]);
5231
+ }
5232
+ };
5233
+ }
5176
5234
 
5177
5235
  /**
5178
5236
  * File system utilities for Socket CLI.
@@ -9084,6 +9142,7 @@ exports.serializeResultJson = serializeResultJson;
9084
9142
  exports.setGitRemoteGithubRepoUrl = setGitRemoteGithubRepoUrl;
9085
9143
  exports.setupSdk = setupSdk;
9086
9144
  exports.setupTelemetryExitHandlers = setupTelemetryExitHandlers;
9145
+ exports.snapshotSocketFacts = snapshotSocketFacts;
9087
9146
  exports.socketDashboardLink = socketDashboardLink;
9088
9147
  exports.socketDevLink = socketDevLink;
9089
9148
  exports.socketDocsLink = socketDocsLink;
@@ -9104,5 +9163,5 @@ exports.walkNestedMap = walkNestedMap;
9104
9163
  exports.webLink = webLink;
9105
9164
  exports.withTmpDir = withTmpDir;
9106
9165
  exports.writeSocketJson = writeSocketJson;
9107
- //# debugId=374c6786-8711-43fe-b863-d5928c055431
9166
+ //# debugId=b463bffe-59eb-47e2-a92a-0ed72f8d1362
9108
9167
  //# sourceMappingURL=utils.js.map