vite-plugin-react-server 1.4.1 → 1.4.2
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/README.md +3 -3
- package/dist/package.json +1 -1
- package/dist/plugin/dev-server/configureReactServer.server.d.ts.map +1 -1
- package/dist/plugin/dev-server/configureReactServer.server.js +5 -8
- package/dist/plugin/dev-server/plugin.client.d.ts.map +1 -1
- package/dist/plugin/dev-server/plugin.client.js +2 -1
- package/dist/plugin/dev-server/plugin.server.d.ts.map +1 -1
- package/dist/plugin/dev-server/plugin.server.js +2 -36
- package/dist/plugin/error/index.d.ts +1 -2
- package/dist/plugin/error/index.d.ts.map +1 -1
- package/dist/plugin/error/index.js +2 -3
- package/dist/plugin/error/panicThresholdHandler.js +14 -3
- package/dist/plugin/error/setupGlobalErrorHandler.d.ts.map +1 -1
- package/dist/plugin/error/setupGlobalErrorHandler.js +23 -16
- package/dist/plugin/helpers/createRscRenderHelpers.d.ts +0 -5
- package/dist/plugin/helpers/createRscRenderHelpers.d.ts.map +1 -1
- package/dist/plugin/helpers/createRscRenderHelpers.js +0 -22
- package/dist/plugin/helpers/headlessStreamState.d.ts +0 -38
- package/dist/plugin/helpers/headlessStreamState.d.ts.map +1 -1
- package/dist/plugin/helpers/headlessStreamState.js +0 -48
- package/dist/plugin/helpers/index.d.ts +0 -3
- package/dist/plugin/helpers/index.d.ts.map +1 -1
- package/dist/plugin/helpers/index.js +1 -4
- package/dist/plugin/helpers/requestInfo.d.ts.map +1 -1
- package/dist/plugin/helpers/requestInfo.js +3 -3
- package/dist/plugin/helpers/workerCleanup.d.ts +1 -12
- package/dist/plugin/helpers/workerCleanup.d.ts.map +1 -1
- package/dist/plugin/helpers/workerCleanup.js +1 -1
- package/dist/plugin/loader/directives/index.d.ts +0 -1
- package/dist/plugin/loader/directives/index.d.ts.map +1 -1
- package/dist/plugin/loader/directives/index.js +1 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/plugin/dev-server/configureReactServer.server.ts +7 -10
- package/plugin/dev-server/plugin.client.ts +2 -0
- package/plugin/dev-server/plugin.server.ts +2 -49
- package/plugin/error/index.ts +1 -2
- package/plugin/error/setupGlobalErrorHandler.ts +24 -25
- package/plugin/helpers/createRscRenderHelpers.ts +0 -29
- package/plugin/helpers/headlessStreamState.ts +0 -69
- package/plugin/helpers/index.ts +0 -3
- package/plugin/helpers/requestInfo.ts +1 -2
- package/plugin/helpers/workerCleanup.ts +1 -38
- package/plugin/loader/directives/index.ts +0 -1
- package/plugin/transformer/README.md +1 -1
- package/plugin/worker/html/README.md +1 -1
- package/plugin/worker/rsc/README.md +1 -1
- package/dist/plugin/error/assertPanic.d.ts +0 -2
- package/dist/plugin/error/assertPanic.d.ts.map +0 -1
- package/dist/plugin/error/assertPanic.js +0 -15
- package/dist/plugin/error/directiveError.d.ts +0 -13
- package/dist/plugin/error/directiveError.d.ts.map +0 -1
- package/dist/plugin/error/directiveError.js +0 -21
- package/dist/plugin/error/enhanceError.d.ts +0 -14
- package/dist/plugin/error/enhanceError.d.ts.map +0 -1
- package/dist/plugin/error/enhanceError.js +0 -24
- package/dist/plugin/helpers/createSafePageComponent.d.ts +0 -36
- package/dist/plugin/helpers/createSafePageComponent.d.ts.map +0 -1
- package/dist/plugin/helpers/createSafePageComponent.js +0 -50
- package/dist/plugin/helpers/moduleResolver.d.ts +0 -25
- package/dist/plugin/helpers/moduleResolver.d.ts.map +0 -1
- package/dist/plugin/helpers/moduleResolver.js +0 -64
- package/dist/plugin/helpers/stashReturnValue.d.ts +0 -3
- package/dist/plugin/helpers/stashReturnValue.d.ts.map +0 -1
- package/dist/plugin/helpers/stashReturnValue.js +0 -23
- package/dist/plugin/helpers/workerManager.d.ts +0 -5
- package/dist/plugin/helpers/workerManager.d.ts.map +0 -1
- package/dist/plugin/helpers/workerManager.js +0 -18
- package/dist/plugin/loader/directives/collectExportsFromModule.d.ts +0 -6
- package/dist/plugin/loader/directives/collectExportsFromModule.d.ts.map +0 -1
- package/dist/plugin/loader/directives/collectExportsFromModule.js +0 -24
- package/plugin/error/assertPanic.ts +0 -9
- package/plugin/error/directiveError.ts +0 -29
- package/plugin/error/enhanceError.ts +0 -41
- package/plugin/helpers/createSafePageComponent.ts +0 -64
- package/plugin/helpers/moduleResolver.ts +0 -91
- package/plugin/helpers/stashReturnValue.ts +0 -19
- package/plugin/helpers/workerManager.ts +0 -16
- package/plugin/loader/directives/collectExportsFromModule.ts +0 -25
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
* MIT License
|
|
5
5
|
*/
|
|
6
6
|
let isGlobalHandlerSetup = false;
|
|
7
|
+
let uncaughtExceptionHandler = null;
|
|
8
|
+
let unhandledRejectionHandler = null;
|
|
7
9
|
const setupGlobalErrorHandler = function _setupGlobalErrorHandler(options) {
|
|
8
10
|
const { panicThreshold, logger, verbose = false } = options;
|
|
9
11
|
if (isGlobalHandlerSetup) {
|
|
@@ -14,7 +16,7 @@ const setupGlobalErrorHandler = function _setupGlobalErrorHandler(options) {
|
|
|
14
16
|
`Setting up global error handler for panic threshold: ${panicThreshold}`
|
|
15
17
|
);
|
|
16
18
|
}
|
|
17
|
-
|
|
19
|
+
uncaughtExceptionHandler = (error) => {
|
|
18
20
|
if (verbose) {
|
|
19
21
|
logger.info(
|
|
20
22
|
`Global error handler caught uncaught exception: ${error.message}`
|
|
@@ -23,30 +25,35 @@ const setupGlobalErrorHandler = function _setupGlobalErrorHandler(options) {
|
|
|
23
25
|
logger.warn(
|
|
24
26
|
`Uncaught exception handled by panic threshold (${panicThreshold}): ${error.message}`
|
|
25
27
|
);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
logger.info(
|
|
32
|
-
`Global error handler caught unhandled rejection: ${reason}`
|
|
33
|
-
);
|
|
34
|
-
}
|
|
35
|
-
logger.warn(
|
|
36
|
-
`Unhandled rejection handled by panic threshold (${panicThreshold}): ${reason}`
|
|
28
|
+
};
|
|
29
|
+
unhandledRejectionHandler = (reason, _promise) => {
|
|
30
|
+
if (verbose) {
|
|
31
|
+
logger.info(
|
|
32
|
+
`Global error handler caught unhandled rejection: ${reason}`
|
|
37
33
|
);
|
|
38
34
|
}
|
|
39
|
-
|
|
35
|
+
logger.warn(
|
|
36
|
+
`Unhandled rejection handled by panic threshold (${panicThreshold}): ${reason}`
|
|
37
|
+
);
|
|
38
|
+
};
|
|
39
|
+
process.on("uncaughtException", uncaughtExceptionHandler);
|
|
40
|
+
process.on("unhandledRejection", unhandledRejectionHandler);
|
|
40
41
|
isGlobalHandlerSetup = true;
|
|
41
42
|
};
|
|
42
43
|
const cleanupGlobalErrorHandler = function _cleanupGlobalErrorHandler() {
|
|
43
44
|
if (!isGlobalHandlerSetup) {
|
|
44
45
|
return;
|
|
45
46
|
}
|
|
46
|
-
|
|
47
|
-
|
|
47
|
+
if (uncaughtExceptionHandler) {
|
|
48
|
+
process.removeListener("uncaughtException", uncaughtExceptionHandler);
|
|
49
|
+
uncaughtExceptionHandler = null;
|
|
50
|
+
}
|
|
51
|
+
if (unhandledRejectionHandler) {
|
|
52
|
+
process.removeListener("unhandledRejection", unhandledRejectionHandler);
|
|
53
|
+
unhandledRejectionHandler = null;
|
|
54
|
+
}
|
|
48
55
|
isGlobalHandlerSetup = false;
|
|
49
56
|
};
|
|
50
57
|
|
|
51
58
|
export { cleanupGlobalErrorHandler, setupGlobalErrorHandler };
|
|
52
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
59
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0dXBHbG9iYWxFcnJvckhhbmRsZXIuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BsdWdpbi9lcnJvci9zZXR1cEdsb2JhbEVycm9ySGFuZGxlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIENsZWFudXBHbG9iYWxFcnJvckhhbmRsZXJGbixcbiAgU2V0dXBHbG9iYWxFcnJvckhhbmRsZXJGbixcbn0gZnJvbSBcIi4vdHlwZXMuanNcIjtcblxubGV0IGlzR2xvYmFsSGFuZGxlclNldHVwID0gZmFsc2U7XG5sZXQgdW5jYXVnaHRFeGNlcHRpb25IYW5kbGVyOiAoKGVycm9yOiBFcnJvcikgPT4gdm9pZCkgfCBudWxsID0gbnVsbDtcbmxldCB1bmhhbmRsZWRSZWplY3Rpb25IYW5kbGVyOiAoKHJlYXNvbjogdW5rbm93biwgcHJvbWlzZTogUHJvbWlzZTx1bmtub3duPikgPT4gdm9pZCkgfCBudWxsID0gbnVsbDtcblxuZXhwb3J0IGNvbnN0IHNldHVwR2xvYmFsRXJyb3JIYW5kbGVyOiBTZXR1cEdsb2JhbEVycm9ySGFuZGxlckZuID1cbiAgZnVuY3Rpb24gX3NldHVwR2xvYmFsRXJyb3JIYW5kbGVyKG9wdGlvbnMpIHtcbiAgICBjb25zdCB7IHBhbmljVGhyZXNob2xkLCBsb2dnZXIsIHZlcmJvc2UgPSBmYWxzZSB9ID0gb3B0aW9ucztcblxuICAgIGlmIChpc0dsb2JhbEhhbmRsZXJTZXR1cCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICBsb2dnZXIuaW5mbyhcbiAgICAgICAgYFNldHRpbmcgdXAgZ2xvYmFsIGVycm9yIGhhbmRsZXIgZm9yIHBhbmljIHRocmVzaG9sZDogJHtwYW5pY1RocmVzaG9sZH1gXG4gICAgICApO1xuICAgIH1cblxuICAgIHVuY2F1Z2h0RXhjZXB0aW9uSGFuZGxlciA9IChlcnJvcjogRXJyb3IpID0+IHtcbiAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgIGxvZ2dlci5pbmZvKFxuICAgICAgICAgIGBHbG9iYWwgZXJyb3IgaGFuZGxlciBjYXVnaHQgdW5jYXVnaHQgZXhjZXB0aW9uOiAke2Vycm9yLm1lc3NhZ2V9YFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBsb2dnZXIud2FybihcbiAgICAgICAgYFVuY2F1Z2h0IGV4Y2VwdGlvbiBoYW5kbGVkIGJ5IHBhbmljIHRocmVzaG9sZCAoJHtwYW5pY1RocmVzaG9sZH0pOiAke2Vycm9yLm1lc3NhZ2V9YFxuICAgICAgKTtcbiAgICB9O1xuXG4gICAgdW5oYW5kbGVkUmVqZWN0aW9uSGFuZGxlciA9IChyZWFzb246IHVua25vd24sIF9wcm9taXNlOiBQcm9taXNlPHVua25vd24+KSA9PiB7XG4gICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICBsb2dnZXIuaW5mbyhcbiAgICAgICAgICBgR2xvYmFsIGVycm9yIGhhbmRsZXIgY2F1Z2h0IHVuaGFuZGxlZCByZWplY3Rpb246ICR7cmVhc29ufWBcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgbG9nZ2VyLndhcm4oXG4gICAgICAgIGBVbmhhbmRsZWQgcmVqZWN0aW9uIGhhbmRsZWQgYnkgcGFuaWMgdGhyZXNob2xkICgke3BhbmljVGhyZXNob2xkfSk6ICR7cmVhc29ufWBcbiAgICAgICk7XG4gICAgfTtcblxuICAgIHByb2Nlc3Mub24oXCJ1bmNhdWdodEV4Y2VwdGlvblwiLCB1bmNhdWdodEV4Y2VwdGlvbkhhbmRsZXIpO1xuICAgIHByb2Nlc3Mub24oXCJ1bmhhbmRsZWRSZWplY3Rpb25cIiwgdW5oYW5kbGVkUmVqZWN0aW9uSGFuZGxlcik7XG5cbiAgICBpc0dsb2JhbEhhbmRsZXJTZXR1cCA9IHRydWU7XG4gIH07XG5cbmV4cG9ydCBjb25zdCBjbGVhbnVwR2xvYmFsRXJyb3JIYW5kbGVyOiBDbGVhbnVwR2xvYmFsRXJyb3JIYW5kbGVyRm4gPVxuICBmdW5jdGlvbiBfY2xlYW51cEdsb2JhbEVycm9ySGFuZGxlcigpIHtcbiAgICBpZiAoIWlzR2xvYmFsSGFuZGxlclNldHVwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHVuY2F1Z2h0RXhjZXB0aW9uSGFuZGxlcikge1xuICAgICAgcHJvY2Vzcy5yZW1vdmVMaXN0ZW5lcihcInVuY2F1Z2h0RXhjZXB0aW9uXCIsIHVuY2F1Z2h0RXhjZXB0aW9uSGFuZGxlcik7XG4gICAgICB1bmNhdWdodEV4Y2VwdGlvbkhhbmRsZXIgPSBudWxsO1xuICAgIH1cbiAgICBpZiAodW5oYW5kbGVkUmVqZWN0aW9uSGFuZGxlcikge1xuICAgICAgcHJvY2Vzcy5yZW1vdmVMaXN0ZW5lcihcInVuaGFuZGxlZFJlamVjdGlvblwiLCB1bmhhbmRsZWRSZWplY3Rpb25IYW5kbGVyKTtcbiAgICAgIHVuaGFuZGxlZFJlamVjdGlvbkhhbmRsZXIgPSBudWxsO1xuICAgIH1cblxuICAgIGlzR2xvYmFsSGFuZGxlclNldHVwID0gZmFsc2U7XG4gIH07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFLQSxJQUFJLG9CQUF1QixHQUFBLEtBQUE7QUFDM0IsSUFBSSx3QkFBNEQsR0FBQSxJQUFBO0FBQ2hFLElBQUkseUJBQTJGLEdBQUEsSUFBQTtBQUVsRixNQUFBLHVCQUFBLEdBQ1gsU0FBUyx3QkFBQSxDQUF5QixPQUFTLEVBQUE7QUFDekMsRUFBQSxNQUFNLEVBQUUsY0FBQSxFQUFnQixNQUFRLEVBQUEsT0FBQSxHQUFVLE9BQVUsR0FBQSxPQUFBO0FBRXBELEVBQUEsSUFBSSxvQkFBc0IsRUFBQTtBQUN4QixJQUFBO0FBQUE7QUFHRixFQUFBLElBQUksT0FBUyxFQUFBO0FBQ1gsSUFBTyxNQUFBLENBQUEsSUFBQTtBQUFBLE1BQ0wsd0RBQXdELGNBQWMsQ0FBQTtBQUFBLEtBQ3hFO0FBQUE7QUFHRixFQUFBLHdCQUFBLEdBQTJCLENBQUMsS0FBaUIsS0FBQTtBQUMzQyxJQUFBLElBQUksT0FBUyxFQUFBO0FBQ1gsTUFBTyxNQUFBLENBQUEsSUFBQTtBQUFBLFFBQ0wsQ0FBQSxnREFBQSxFQUFtRCxNQUFNLE9BQU8sQ0FBQTtBQUFBLE9BQ2xFO0FBQUE7QUFHRixJQUFPLE1BQUEsQ0FBQSxJQUFBO0FBQUEsTUFDTCxDQUFrRCwrQ0FBQSxFQUFBLGNBQWMsQ0FBTSxHQUFBLEVBQUEsS0FBQSxDQUFNLE9BQU8sQ0FBQTtBQUFBLEtBQ3JGO0FBQUEsR0FDRjtBQUVBLEVBQTRCLHlCQUFBLEdBQUEsQ0FBQyxRQUFpQixRQUErQixLQUFBO0FBQzNFLElBQUEsSUFBSSxPQUFTLEVBQUE7QUFDWCxNQUFPLE1BQUEsQ0FBQSxJQUFBO0FBQUEsUUFDTCxvREFBb0QsTUFBTSxDQUFBO0FBQUEsT0FDNUQ7QUFBQTtBQUdGLElBQU8sTUFBQSxDQUFBLElBQUE7QUFBQSxNQUNMLENBQUEsZ0RBQUEsRUFBbUQsY0FBYyxDQUFBLEdBQUEsRUFBTSxNQUFNLENBQUE7QUFBQSxLQUMvRTtBQUFBLEdBQ0Y7QUFFQSxFQUFRLE9BQUEsQ0FBQSxFQUFBLENBQUcscUJBQXFCLHdCQUF3QixDQUFBO0FBQ3hELEVBQVEsT0FBQSxDQUFBLEVBQUEsQ0FBRyxzQkFBc0IseUJBQXlCLENBQUE7QUFFMUQsRUFBdUIsb0JBQUEsR0FBQSxJQUFBO0FBQ3pCO0FBRVcsTUFBQSx5QkFBQSxHQUNYLFNBQVMsMEJBQTZCLEdBQUE7QUFDcEMsRUFBQSxJQUFJLENBQUMsb0JBQXNCLEVBQUE7QUFDekIsSUFBQTtBQUFBO0FBR0YsRUFBQSxJQUFJLHdCQUEwQixFQUFBO0FBQzVCLElBQVEsT0FBQSxDQUFBLGNBQUEsQ0FBZSxxQkFBcUIsd0JBQXdCLENBQUE7QUFDcEUsSUFBMkIsd0JBQUEsR0FBQSxJQUFBO0FBQUE7QUFFN0IsRUFBQSxJQUFJLHlCQUEyQixFQUFBO0FBQzdCLElBQVEsT0FBQSxDQUFBLGNBQUEsQ0FBZSxzQkFBc0IseUJBQXlCLENBQUE7QUFDdEUsSUFBNEIseUJBQUEsR0FBQSxJQUFBO0FBQUE7QUFHOUIsRUFBdUIsb0JBQUEsR0FBQSxLQUFBO0FBQ3pCOzs7OyJ9
|
|
@@ -8,9 +8,4 @@ export declare function createReactElement(options: CreateHandlerOptions, contex
|
|
|
8
8
|
/**
|
|
9
9
|
* Pure function for storing headless stream data
|
|
10
10
|
*/
|
|
11
|
-
export declare function storeHeadlessStreamData(context: RscRenderContext, finalOptions: CreateHandlerOptions): void;
|
|
12
|
-
export declare const createRscRenderHelpers: {
|
|
13
|
-
createReactElement: typeof createReactElement;
|
|
14
|
-
storeHeadlessStreamData: typeof storeHeadlessStreamData;
|
|
15
|
-
};
|
|
16
11
|
//# sourceMappingURL=createRscRenderHelpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createRscRenderHelpers.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/createRscRenderHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAK3E;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,gBAAgB,8FA+B1B;AAED;;GAEG
|
|
1
|
+
{"version":3,"file":"createRscRenderHelpers.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/createRscRenderHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AAK3E;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,gBAAgB,8FA+B1B;AAED;;GAEG"}
|
|
@@ -36,25 +36,3 @@ export function createReactElement(options, context) {
|
|
|
36
36
|
/**
|
|
37
37
|
* Pure function for storing headless stream data
|
|
38
38
|
*/
|
|
39
|
-
export function storeHeadlessStreamData(context, finalOptions) {
|
|
40
|
-
// Determine if this is a headless stream by checking if htmlPath is empty
|
|
41
|
-
const isHeadless = finalOptions.htmlPath === "";
|
|
42
|
-
if (context.headlessStreamElements &&
|
|
43
|
-
isHeadless &&
|
|
44
|
-
!context.headlessStreamErrors?.has(context.route)) {
|
|
45
|
-
// Store the rendered elements for reuse
|
|
46
|
-
const element = createElementWithReact(React, {
|
|
47
|
-
...finalOptions,
|
|
48
|
-
Html: React.Fragment,
|
|
49
|
-
as: React.Fragment,
|
|
50
|
-
});
|
|
51
|
-
context.headlessStreamElements.set(context.id, {
|
|
52
|
-
elements: element,
|
|
53
|
-
errored: false,
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
export const createRscRenderHelpers = {
|
|
58
|
-
createReactElement,
|
|
59
|
-
storeHeadlessStreamData,
|
|
60
|
-
};
|
|
@@ -30,42 +30,4 @@ export declare function trackHeadlessStreamError(state: HeadlessStreamState, rou
|
|
|
30
30
|
* @returns true if the route has a headless stream error
|
|
31
31
|
*/
|
|
32
32
|
export declare function hasHeadlessStreamError(state: HeadlessStreamState, route: string): boolean;
|
|
33
|
-
/**
|
|
34
|
-
* Gets the headless stream error for a route.
|
|
35
|
-
*
|
|
36
|
-
* @param state - The headless stream state
|
|
37
|
-
* @param route - The route to get the error for
|
|
38
|
-
* @returns The error if it exists, undefined otherwise
|
|
39
|
-
*/
|
|
40
|
-
export declare function getHeadlessStreamError(state: HeadlessStreamState, route: string): Error | undefined;
|
|
41
|
-
/**
|
|
42
|
-
* Stores headless stream elements for reuse.
|
|
43
|
-
*
|
|
44
|
-
* @param state - The headless stream state
|
|
45
|
-
* @param streamId - The stream ID
|
|
46
|
-
* @param data - The stream data to store
|
|
47
|
-
*/
|
|
48
|
-
export declare function storeHeadlessStreamElements(state: HeadlessStreamState, streamId: string, data: HeadlessStreamData): void;
|
|
49
|
-
/**
|
|
50
|
-
* Gets headless stream elements for reuse.
|
|
51
|
-
*
|
|
52
|
-
* @param state - The headless stream state
|
|
53
|
-
* @param streamId - The stream ID
|
|
54
|
-
* @returns The stream data if it exists, undefined otherwise
|
|
55
|
-
*/
|
|
56
|
-
export declare function getHeadlessStreamElements(state: HeadlessStreamState, streamId: string): HeadlessStreamData | undefined;
|
|
57
|
-
/**
|
|
58
|
-
* Cleans up headless stream elements after use.
|
|
59
|
-
*
|
|
60
|
-
* @param state - The headless stream state
|
|
61
|
-
* @param streamId - The stream ID to clean up
|
|
62
|
-
*/
|
|
63
|
-
export declare function cleanupHeadlessStreamElements(state: HeadlessStreamState, streamId: string): void;
|
|
64
|
-
/**
|
|
65
|
-
* Clears all headless stream errors for a route.
|
|
66
|
-
*
|
|
67
|
-
* @param state - The headless stream state
|
|
68
|
-
* @param route - The route to clear errors for
|
|
69
|
-
*/
|
|
70
|
-
export declare function clearHeadlessStreamErrors(state: HeadlessStreamState, route: string): void;
|
|
71
33
|
//# sourceMappingURL=headlessStreamState.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"headlessStreamState.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/headlessStreamState.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,GAAG,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC1C,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,mBAAmB,CAK/D;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,mBAAmB,EAC1B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,KAAK,GACX,IAAI,CAEN;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,mBAAmB,EAC1B,KAAK,EAAE,MAAM,GACZ,OAAO,CAET
|
|
1
|
+
{"version":3,"file":"headlessStreamState.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/headlessStreamState.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,GAAG,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC1C,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,mBAAmB,CAK/D;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,mBAAmB,EAC1B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,KAAK,GACX,IAAI,CAEN;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,mBAAmB,EAC1B,KAAK,EAAE,MAAM,GACZ,OAAO,CAET"}
|
|
@@ -31,51 +31,3 @@ export function trackHeadlessStreamError(state, route, error) {
|
|
|
31
31
|
export function hasHeadlessStreamError(state, route) {
|
|
32
32
|
return state.errors.has(route);
|
|
33
33
|
}
|
|
34
|
-
/**
|
|
35
|
-
* Gets the headless stream error for a route.
|
|
36
|
-
*
|
|
37
|
-
* @param state - The headless stream state
|
|
38
|
-
* @param route - The route to get the error for
|
|
39
|
-
* @returns The error if it exists, undefined otherwise
|
|
40
|
-
*/
|
|
41
|
-
export function getHeadlessStreamError(state, route) {
|
|
42
|
-
return state.errors.get(route);
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Stores headless stream elements for reuse.
|
|
46
|
-
*
|
|
47
|
-
* @param state - The headless stream state
|
|
48
|
-
* @param streamId - The stream ID
|
|
49
|
-
* @param data - The stream data to store
|
|
50
|
-
*/
|
|
51
|
-
export function storeHeadlessStreamElements(state, streamId, data) {
|
|
52
|
-
state.elements.set(streamId, data);
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Gets headless stream elements for reuse.
|
|
56
|
-
*
|
|
57
|
-
* @param state - The headless stream state
|
|
58
|
-
* @param streamId - The stream ID
|
|
59
|
-
* @returns The stream data if it exists, undefined otherwise
|
|
60
|
-
*/
|
|
61
|
-
export function getHeadlessStreamElements(state, streamId) {
|
|
62
|
-
return state.elements.get(streamId);
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Cleans up headless stream elements after use.
|
|
66
|
-
*
|
|
67
|
-
* @param state - The headless stream state
|
|
68
|
-
* @param streamId - The stream ID to clean up
|
|
69
|
-
*/
|
|
70
|
-
export function cleanupHeadlessStreamElements(state, streamId) {
|
|
71
|
-
state.elements.delete(streamId);
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Clears all headless stream errors for a route.
|
|
75
|
-
*
|
|
76
|
-
* @param state - The headless stream state
|
|
77
|
-
* @param route - The route to clear errors for
|
|
78
|
-
*/
|
|
79
|
-
export function clearHeadlessStreamErrors(state, route) {
|
|
80
|
-
state.errors.delete(route);
|
|
81
|
-
}
|
|
@@ -16,9 +16,6 @@ export * from "./metrics.js";
|
|
|
16
16
|
export * from "./tryManifest.js";
|
|
17
17
|
export * from "./getBundleManifest.js";
|
|
18
18
|
export * from "./moduleRefs.js";
|
|
19
|
-
export * from "./moduleResolver.js";
|
|
20
|
-
export * from "./stashReturnValue.js";
|
|
21
|
-
export * from "./workerManager.js";
|
|
22
19
|
export * from "./validateRscRenderMessage.js";
|
|
23
20
|
export * from "./resolveRenderUrl.js";
|
|
24
21
|
export * from "./mergeMessageWithDefaults.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/index.ts"],"names":[],"mappings":"AAGA,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC;AAMpC,cAAc,yBAAyB,CAAC;AAGxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAG7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/index.ts"],"names":[],"mappings":"AAGA,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AAEzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC;AACjC,cAAc,sBAAsB,CAAC;AAGrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC;AAMpC,cAAc,yBAAyB,CAAC;AAGxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAG7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AAGvC,cAAc,iBAAiB,CAAC;AAKhC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oCAAoC,CAAC;AACnD,OAAO,EAAE,iBAAiB,IAAI,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAE7F,cAAc,qBAAqB,CAAC;AACpC,cAAc,uCAAuC,CAAC;AAEtD,cAAc,2BAA2B,CAAC;AAE1C,cAAc,gCAAgC,CAAC;AAO/C,QAAA,MAAQ,kBAAkB,KAIzB,CAAC;AAEF,OAAO,EAAG,kBAAkB,EAAE,CAAC"}
|
|
@@ -20,9 +20,6 @@ export { hydrateUserOptions } from './hydrateUserOptions.js';
|
|
|
20
20
|
export { tryManifest } from './tryManifest.js';
|
|
21
21
|
export { getBundleManifest } from './getBundleManifest.js';
|
|
22
22
|
export { getModuleRef, moduleRefs } from './moduleRefs.js';
|
|
23
|
-
export { getSource, loadClientSource, resolve, resolveClientImport, setStashedGetSource, setStashedResolve } from './moduleResolver.js';
|
|
24
|
-
export { clearStashedReturnValues, stashReturnValue } from './stashReturnValue.js';
|
|
25
|
-
export { clearWorker, getWorker, setWorker } from './workerManager.js';
|
|
26
23
|
export { validateRscRenderMessage } from './validateRscRenderMessage.js';
|
|
27
24
|
export { resolveRenderUrl } from './resolveRenderUrl.js';
|
|
28
25
|
export { mergeMessageWithDefaults } from './mergeMessageWithDefaults.js';
|
|
@@ -42,4 +39,4 @@ const dirname = new URL("./", import.meta.url).pathname.replace(/\/$/, "");
|
|
|
42
39
|
const { handleServerAction } = await import(`${dirname}/handleServerAction.${condition}.js`);
|
|
43
40
|
|
|
44
41
|
export { handleServerAction };
|
|
45
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BsdWdpbi9oZWxwZXJzL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldENvbmRpdGlvbiB9IGZyb20gXCIuLi9jb25maWcvZ2V0Q29uZGl0aW9uLmpzXCI7XG5cbi8vIFJvdXRlIGFuZCBmaWxlIGhhbmRsaW5nXG5leHBvcnQgKiBmcm9tIFwiLi9nZXRSb3V0ZUZpbGVzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yZXNvbHZlUGFnZS5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vcmVzb2x2ZVByb3BzLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yZXNvbHZlUGFnZUFuZFByb3BzLmpzXCI7XG5cbmV4cG9ydCAqIGZyb20gXCIuL3JlcXVlc3RJbmZvLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yZXF1ZXN0VG9Sb3V0ZS5qc1wiO1xuXG4vLyBDb25maWd1cmF0aW9uIGFuZCBvcHRpb25zXG5leHBvcnQgKiBmcm9tIFwiLi9zZXJpYWxpemVVc2VyT3B0aW9ucy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vY2xlYW5PYmplY3QuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2lucHV0Tm9ybWFsaXplci5qc1wiO1xuXG4vLyBDU1MgaGFuZGxpbmdcbmV4cG9ydCAqIGZyb20gXCIuL2NvbGxlY3RNYW5pZmVzdENzcy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vY29sbGVjdFZpdGVNb2R1bGVHcmFwaENzcy5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vY3JlYXRlQ3NzUHJvcHMuanNcIjtcblxuLy8gU3RyZWFtIGFuZCBoYW5kbGVyIGNyZWF0aW9uXG4vLyBTdHJlYW0tcmVsYXRlZCBmdW5jdGlvbnMgYXJlIG5vdyBleHBvcnRlZCBmcm9tIC4uL3N0cmVhbS9pbmRleC5qc1xuXG4vLyBIeWRyYXRlIHVzZXIgb3B0aW9uc1xuZXhwb3J0ICogZnJvbSBcIi4vaHlkcmF0ZVVzZXJPcHRpb25zLmpzXCI7XG5cbi8vIE1ldHJpY3MgYW5kIG1vbml0b3JpbmdcbmV4cG9ydCAqIGZyb20gXCIuL2Zvcm1hdE1ldHJpY3MuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL21ldHJpY3MuanNcIjtcblxuLy8gTWFuaWZlc3QgaGFuZGxpbmdcbmV4cG9ydCAqIGZyb20gXCIuL3RyeU1hbmlmZXN0LmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9nZXRCdW5kbGVNYW5pZmVzdC5qc1wiO1xuXG4vLyBNb2R1bGUgaGFuZGxpbmdcbmV4cG9ydCAqIGZyb20gXCIuL21vZHVsZVJlZnMuanNcIjtcblxuLy8gVXRpbGl0eSBmdW5jdGlvbnNcblxuLy8gVW5pZmllZCByZW5kZXIgaGVscGVyc1xuZXhwb3J0ICogZnJvbSBcIi4vdmFsaWRhdGVSc2NSZW5kZXJNZXNzYWdlLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9yZXNvbHZlUmVuZGVyVXJsLmpzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9tZXJnZU1lc3NhZ2VXaXRoRGVmYXVsdHMuanNcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3Jlc29sdmVXaXRoRGVmYXVsdFJvb3RBbmRIdG1sLmpzXCI7XG5leHBvcnQgeyByZXNvbHZlQ29tcG9uZW50cyBhcyByZXNvbHZlQ29tcG9uZW50c0NsaWVudCB9IGZyb20gXCIuL3Jlc29sdmVDb21wb25lbnRzLmNsaWVudC5qc1wiO1xuXG5leHBvcnQgKiBmcm9tIFwiLi9sb2dSZW5kZXJTdGFydC5qc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vY3JlYXRlU2VyaWFsaXphYmxlSGFuZGxlck9wdGlvbnMuanNcIjtcblxuZXhwb3J0ICogZnJvbSBcIi4vY3JlYXRlUGF0dGVybk1hdGNoZXIuanNcIjtcblxuZXhwb3J0ICogZnJvbSBcIi4vY3JlYXRlVW5pZmllZENzc1Byb2Nlc3Nvci5qc1wiO1xuXG4vLyBTZXJ2ZXIgYWN0aW9uIGhhbmRsaW5nXG5cbmNvbnN0IGNvbmRpdGlvbiA9IGdldENvbmRpdGlvbihcIlwiKTtcbmNvbnN0IGRpcm5hbWUgPSBuZXcgVVJMKFwiLi9cIiwgaW1wb3J0Lm1ldGEudXJsKS5wYXRobmFtZS5yZXBsYWNlKC9cXC8kLywgXCJcIik7XG5cbmNvbnN0IHsgaGFuZGxlU2VydmVyQWN0aW9uIH0gPSAoYXdhaXQgaW1wb3J0KFxuICBgJHtkaXJuYW1lfS9oYW5kbGVTZXJ2ZXJBY3Rpb24uJHtjb25kaXRpb259LmpzYFxuKSkgYXMge1xuICBoYW5kbGVTZXJ2ZXJBY3Rpb246IGFueVxufTtcblxuZXhwb3J0IHsgIGhhbmRsZVNlcnZlckFjdGlvbiB9O1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXdEQSxNQUFNLFNBQUEsR0FBWSxhQUFhLEVBQUUsQ0FBQTtBQUNqQyxNQUFNLE9BQUEsR0FBVSxJQUFJLEdBQUEsQ0FBSSxJQUFNLEVBQUEsTUFBQSxDQUFBLElBQUEsQ0FBWSxHQUFHLENBQUUsQ0FBQSxRQUFBLENBQVMsT0FBUSxDQUFBLEtBQUEsRUFBTyxFQUFFLENBQUE7QUFFbkUsTUFBQSxFQUFFLG9CQUF3QixHQUFBLE1BQU0sT0FDcEMsQ0FBRyxFQUFBLE9BQU8sdUJBQXVCLFNBQVMsQ0FBQSxHQUFBLENBQUE7Ozs7In0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"requestInfo.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/requestInfo.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAKpC;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,OAAO,CAAC,eAAe,EAC5B,cAAc,EAAE,IAAI,CAClB,oBAAoB,EAClB,YAAY,GACZ,OAAO,GACP,cAAc,GACd,SAAS,GACT,gBAAgB,GAChB,eAAe,GACf,SAAS,GACT,QAAQ,CACX,EACD,OAAO,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"requestInfo.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/requestInfo.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,MAAM,CAAC;AAKpC;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,OAAO,CAAC,eAAe,EAC5B,cAAc,EAAE,IAAI,CAClB,oBAAoB,EAClB,YAAY,GACZ,OAAO,GACP,cAAc,GACd,SAAS,GACT,gBAAgB,GAChB,eAAe,GACf,SAAS,GACT,QAAQ,CACX,EACD,OAAO,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4MhB"}
|
|
@@ -59,7 +59,7 @@ function requestInfo(req, handlerOptions, hostDir) {
|
|
|
59
59
|
const isFormActionRequest = !isServerActionRequest && (req.method === "POST" || isFormContentType && req.headers["sec-fetch-dest"] === "document" && req.headers["sec-fetch-mode"] === "navigate");
|
|
60
60
|
const isJsRequest = !isFormActionRequest && !isJson && !isHtml && !isCss && !isRsc && (isJS || hasJsHeader);
|
|
61
61
|
const isJsonRequest = isJson || hasJsonHeader && !isJsRequest;
|
|
62
|
-
const isHtmlRequest = !hasRscQueryParam && (isHtml || hasHtmlHeader || isFolder && !hasRscHeader && !
|
|
62
|
+
const isHtmlRequest = !hasRscQueryParam && (isHtml || hasHtmlHeader || isFolder && !hasRscHeader && !isRsc && !isJsRequest && !isFormActionRequest);
|
|
63
63
|
const isRscRequest = hasRscQueryParam || !isJsRequest && !isHtmlRequest && (isRsc || hasRscHeader);
|
|
64
64
|
const isCssRequest = !isHtmlRequest && !isRscRequest && !isJsRequest && !isJsonRequest && (isCss || hasCssHeader);
|
|
65
65
|
const routeForFilePath = value;
|
|
@@ -106,7 +106,7 @@ function requestInfo(req, handlerOptions, hostDir) {
|
|
|
106
106
|
if (mimeType) {
|
|
107
107
|
contentType = mimeType + "; charset=utf-8";
|
|
108
108
|
} else {
|
|
109
|
-
contentType = "application/octet-stream
|
|
109
|
+
contentType = "application/octet-stream";
|
|
110
110
|
}
|
|
111
111
|
}
|
|
112
112
|
if (handlerOptions.verbose) {
|
|
@@ -160,4 +160,4 @@ function requestInfo(req, handlerOptions, hostDir) {
|
|
|
160
160
|
}
|
|
161
161
|
|
|
162
162
|
export { requestInfo };
|
|
163
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdEluZm8uanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BsdWdpbi9oZWxwZXJzL3JlcXVlc3RJbmZvLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlc29sdmUgfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgdHlwZSB7IENyZWF0ZUhhbmRsZXJPcHRpb25zIH0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5pbXBvcnQgeyB0eXBlIENvbm5lY3QgfSBmcm9tIFwidml0ZVwiO1xuaW1wb3J0IHsgTUlNRV9UWVBFUyB9IGZyb20gXCIuLi9jb25maWcvbWltZVR5cGVzLmpzXCI7XG5pbXBvcnQgeyByZXF1ZXN0VG9Sb3V0ZSB9IGZyb20gXCIuL3JlcXVlc3RUb1JvdXRlLmpzXCI7XG5pbXBvcnQgeyByb3V0ZVRvVVJMIH0gZnJvbSBcIi4uL3V0aWxzL3JvdXRlVG9VUkwuanNcIjtcblxuLyoqXG4gKiAjIFJlcXVlc3QgaW5mb1xuICpcbiAqIERvZXMgdGhlIGluaXRpYWwgd29yayB0byBjaGVjayBpZiB0aGUgcmVxdWVzdCBpcyBmb3IgaHRtbCwgcnNjLCBqc29uLCBqcywgY3NzLCBzZXJ2ZXItYWN0aW9uLCBvciBzb21ldGhpbmcgZWxzZSBub3QgaGFuZGxlZCBieSB0aGlzIHBsdWdpbi5cbiAqXG4gKiBAcGFyYW0gcmVxXG4gKiBAcGFyYW0gaGFuZGxlck9wdGlvbnNcbiAqIEBwYXJhbSBob3N0RGlyXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcmVxdWVzdEluZm8oXG4gIHJlcTogQ29ubmVjdC5JbmNvbWluZ01lc3NhZ2UsXG4gIGhhbmRsZXJPcHRpb25zOiBQaWNrPFxuICAgIENyZWF0ZUhhbmRsZXJPcHRpb25zLFxuICAgIHwgXCJub3JtYWxpemVyXCJcbiAgICB8IFwiYnVpbGRcIlxuICAgIHwgXCJhdXRvRGlzY292ZXJcIlxuICAgIHwgXCJ2ZXJib3NlXCJcbiAgICB8IFwibW9kdWxlQmFzZVBhdGhcIlxuICAgIHwgXCJtb2R1bGVCYXNlVVJMXCJcbiAgICB8IFwidmVyYm9zZVwiXG4gICAgfCBcImxvZ2dlclwiXG4gID4sXG4gIGhvc3REaXI6IHN0cmluZyxcbikge1xuICBjb25zdCByb3V0ZSA9IHJlcXVlc3RUb1JvdXRlKHJlcSwge1xuICAgIG1vZHVsZUJhc2VQYXRoOiBoYW5kbGVyT3B0aW9ucy5tb2R1bGVCYXNlUGF0aCxcbiAgICBtb2R1bGVCYXNlVVJMOiBoYW5kbGVyT3B0aW9ucy5tb2R1bGVCYXNlVVJMLFxuICAgIGJ1aWxkOiBoYW5kbGVyT3B0aW9ucy5idWlsZCxcbiAgfSk7XG5cbiAgaWYgKCFyb3V0ZSkge1xuICAgIHJldHVybiB7XG4gICAgICByb3V0ZTogXCIvXCIsXG4gICAgICB1cmw6IHJvdXRlVG9VUkwoXCIvXCIsIGhhbmRsZXJPcHRpb25zLm1vZHVsZUJhc2VVUkwsIGhhbmRsZXJPcHRpb25zLmJ1aWxkLnJzY091dHB1dFBhdGgpLFxuICAgICAgZXh0OiBcIlwiLFxuICAgIH07XG4gIH1cblxuICAvLyBVc2UgdGhlIGNsZWFuZWQgcm91dGUgZm9yIG5vcm1hbGl6YXRpb24sIG5vdCB0aGUgcmF3IHJlcS51cmxcbiAgLy8gVGhpcyBlbnN1cmVzIGJhc2UgVVJMIGlzIHByb3Blcmx5IHN0cmlwcGVkIGJlZm9yZSBub3JtYWxpemF0aW9uXG4gIGNvbnN0IFssIHZhbHVlXSA9IGhhbmRsZXJPcHRpb25zLm5vcm1hbGl6ZXIocm91dGUpO1xuICBpZiAoaGFuZGxlck9wdGlvbnMudmVyYm9zZSkge1xuICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSAhPT0gXCJcIikge1xuICAgICAgaGFuZGxlck9wdGlvbnMubG9nZ2VyLmluZm8oYFtyZXF1ZXN0SW5mb10gVmFsdWU6IFxcXCIke3ZhbHVlfVxcXCJgKTtcbiAgICB9XG4gICAgaWYgKGhvc3REaXIgJiYgaG9zdERpciAhPT0gXCJcIikge1xuICAgICAgaGFuZGxlck9wdGlvbnMubG9nZ2VyLmluZm8oYFtyZXF1ZXN0SW5mb10gSG9zdCBEaXI6IFxcXCIke2hvc3REaXJ9XFxcImApO1xuICAgIH1cbiAgICBpZiAocmVxLnVybCAmJiByZXEudXJsICE9PSBcIlwiKSB7XG4gICAgICBoYW5kbGVyT3B0aW9ucy5sb2dnZXIuaW5mbyhgW3JlcXVlc3RJbmZvXSBSZXF1ZXN0IFVSTDogXFxcIiR7cmVxLnVybH1cXFwiYCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgZG90SW5kZXggPSB2YWx1ZS5sYXN0SW5kZXhPZihcIi5cIik7XG4gIGNvbnN0IGV4dCA9IGRvdEluZGV4ID09PSAtMSA/IFwiXCIgOiB2YWx1ZS5zbGljZShkb3RJbmRleCk7XG4gIC8vIGhhbmRsZSBpbmRleC5odG1sXG4gIGNvbnN0IGlzVmVuZG9yID0gaGFuZGxlck9wdGlvbnMuYXV0b0Rpc2NvdmVyLnZlbmRvclBhdHRlcm4udGVzdCh2YWx1ZSk7XG4gIGNvbnN0IGlzVmlydHVhbCA9IGhhbmRsZXJPcHRpb25zLmF1dG9EaXNjb3Zlci52aXJ0dWFsUGF0dGVybi50ZXN0KHZhbHVlKTtcbiAgY29uc3QgaXNKUyA9IGhhbmRsZXJPcHRpb25zLmF1dG9EaXNjb3Zlci5tb2R1bGVQYXR0ZXJuLnRlc3QodmFsdWUpO1xuICBjb25zdCBpc0h0bWwgPSBoYW5kbGVyT3B0aW9ucy5hdXRvRGlzY292ZXIuaHRtbFBhdHRlcm4udGVzdCh2YWx1ZSk7XG4gIGNvbnN0IGlzQ3NzID0gaGFuZGxlck9wdGlvbnMuYXV0b0Rpc2NvdmVyLmNzc1BhdHRlcm4udGVzdCh2YWx1ZSk7XG4gIGNvbnN0IGlzSnNvbiA9IGhhbmRsZXJPcHRpb25zLmF1dG9EaXNjb3Zlci5qc29uUGF0dGVybi50ZXN0KHZhbHVlKTtcbiAgY29uc3QgaXNSc2MgPSBoYW5kbGVyT3B0aW9ucy5hdXRvRGlzY292ZXIucnNjUGF0dGVybi50ZXN0KHZhbHVlKTtcbiAgY29uc3QgaGFzSnNIZWFkZXIgPVxuICAgIHJlcS5oZWFkZXJzW1wic2VjLWZldGNoLWRlc3RcIl0gPT09IFwic2NyaXB0XCIgfHxcbiAgICByZXEuaGVhZGVyc1tcImFjY2VwdFwiXT8uaW5jbHVkZXMoXCIqLypcIikgfHxcbiAgICByZXEuaGVhZGVyc1tcImFjY2VwdFwiXT8uaW5jbHVkZXMoXCJ0ZXh0L2phdmFzY3JpcHRcIik7XG4gIGNvbnN0IGhhc0pzb25IZWFkZXIgPSByZXEuaGVhZGVyc1tcImFjY2VwdFwiXT8uaW5jbHVkZXMoXCJhcHBsaWNhdGlvbi9qc29uXCIpO1xuICBjb25zdCBoYXNIdG1sSGVhZGVyID0gcmVxLmhlYWRlcnMuYWNjZXB0Py5pbmNsdWRlcyhcInRleHQvaHRtbFwiKTtcbiAgY29uc3QgaGFzUnNjSGVhZGVyID0gcmVxLmhlYWRlcnMuYWNjZXB0Py5pbmNsdWRlcyhcInRleHQveC1jb21wb25lbnRcIik7XG4gIC8vIFN1cHBvcnQgP19yc2MgcXVlcnkgcGFyYW0gKGUuZy4gLz9fcnNjIGZvciBicm93c2VyIGRlYnVnZ2luZykgYXMgYWx0ZXJuYXRpdmUgdG8gQWNjZXB0IGhlYWRlciAodXNlZnVsIGZvciBicm93c2VyIGRlYnVnZ2luZylcbiAgY29uc3QgaGFzUnNjUXVlcnlQYXJhbSA9IC9bPyZdX3JzY1xcYi8udGVzdChyZXEudXJsIHx8IFwiXCIpO1xuICBjb25zdCBoYXNDc3NIZWFkZXIgPSByZXEuaGVhZGVycy5hY2NlcHQ/LmluY2x1ZGVzKFwidGV4dC9jc3NcIik7XG4gIGNvbnN0IGlzRm9sZGVyID0gIWV4dDtcbiAgY29uc3QgaXNGb3JtQ29udGVudFR5cGUgPVxuICAgIHJlcS5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdPy5pbmNsdWRlcyhcbiAgICAgIFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCJcbiAgICApIHx8ICEhcmVxLmhlYWRlcnNbXCJjb250ZW50LXR5cGVcIl0/LmluY2x1ZGVzKFwibXVsdGlwYXJ0L2Zvcm0tZGF0YVwiKTtcblxuICAvLyBTZXJ2ZXIgYWN0aW9uIGRldGVjdGlvblxuICBjb25zdCBoYXNSc2NBY3Rpb25IZWFkZXIgPSAhIXJlcS5oZWFkZXJzW1wieC1yc2MtYWN0aW9uXCJdO1xuICBjb25zdCBoYXNTZXJ2ZXJBY3Rpb25IZWFkZXJzID1cbiAgICByZXEubWV0aG9kID09PSBcIlBPU1RcIiAmJlxuICAgIChoYXNSc2NBY3Rpb25IZWFkZXIgfHwgKFxuICAgICAgKHJlcS5oZWFkZXJzW1wic2VjLWZldGNoLWRlc3RcIl0gPT09IFwiZW1wdHlcIiB8fFxuICAgICAgICByZXEuaGVhZGVyc1tcInNlYy1mZXRjaC1kZXN0XCJdID09PSBcIlwiKSAmJlxuICAgICAgcmVxLmhlYWRlcnNbXCJzZWMtZmV0Y2gtbW9kZVwiXSA9PT0gXCJjb3JzXCJcbiAgICApKTtcbiAgY29uc3QgaXNTZXJ2ZXJBY3Rpb25SZXF1ZXN0ID0gaGFzU2VydmVyQWN0aW9uSGVhZGVycztcblxuICBjb25zdCBpc0Zvcm1BY3Rpb25SZXF1ZXN0ID1cbiAgICAhaXNTZXJ2ZXJBY3Rpb25SZXF1ZXN0ICYmXG4gICAgKHJlcS5tZXRob2QgPT09IFwiUE9TVFwiIHx8XG4gICAgICAoaXNGb3JtQ29udGVudFR5cGUgJiZcbiAgICAgICAgcmVxLmhlYWRlcnNbXCJzZWMtZmV0Y2gtZGVzdFwiXSA9PT0gXCJkb2N1bWVudFwiICYmXG4gICAgICAgIHJlcS5oZWFkZXJzW1wic2VjLWZldGNoLW1vZGVcIl0gPT09IFwibmF2aWdhdGVcIikpO1xuXG4gIGNvbnN0IGlzSnNSZXF1ZXN0ID1cbiAgICAhaXNGb3JtQWN0aW9uUmVxdWVzdCAmJlxuICAgICFpc0pzb24gJiZcbiAgICAhaXNIdG1sICYmXG4gICAgIWlzQ3NzICYmXG4gICAgIWlzUnNjICYmXG4gICAgKGlzSlMgfHwgaGFzSnNIZWFkZXIpO1xuICBjb25zdCBpc0pzb25SZXF1ZXN0ID0gaXNKc29uIHx8IChoYXNKc29uSGVhZGVyICYmICFpc0pzUmVxdWVzdCk7XG4gIC8vIEZvcm0gYWN0aW9uIGRldGVjdGlvblxuXG4gIGNvbnN0IGlzSHRtbFJlcXVlc3QgPVxuICAgICFoYXNSc2NRdWVyeVBhcmFtICYmIChpc0h0bWwgfHxcbiAgICBoYXNIdG1sSGVhZGVyIHx8XG4gICAgKGlzRm9sZGVyICYmXG4gICAgICAhaGFzUnNjSGVhZGVyICYmXG4gICAgICAhaGFzUnNjUXVlcnlQYXJhbSAmJlxuICAgICAgIWlzUnNjICYmXG4gICAgICAhaXNKc1JlcXVlc3QgJiZcbiAgICAgICFpc0Zvcm1BY3Rpb25SZXF1ZXN0KSk7XG4gIGNvbnN0IGlzUnNjUmVxdWVzdCA9XG4gICAgaGFzUnNjUXVlcnlQYXJhbSB8fCAoIWlzSnNSZXF1ZXN0ICYmICFpc0h0bWxSZXF1ZXN0ICYmIChpc1JzYyB8fCBoYXNSc2NIZWFkZXIpKTtcbiAgY29uc3QgaXNDc3NSZXF1ZXN0ID1cbiAgICAhaXNIdG1sUmVxdWVzdCAmJlxuICAgICFpc1JzY1JlcXVlc3QgJiZcbiAgICAhaXNKc1JlcXVlc3QgJiZcbiAgICAhaXNKc29uUmVxdWVzdCAmJlxuICAgIChpc0NzcyB8fCBoYXNDc3NIZWFkZXIpO1xuXG4gIC8vIFVzZSB0aGUgbm9ybWFsaXplZCB2YWx1ZSBmb3IgZmlsZSBwYXRoIGNvbnN0cnVjdGlvblxuICAvLyBUaGUgbm9ybWFsaXplciBzaG91bGQgaGF2ZSBhbHJlYWR5IHN0cmlwcGVkIGJhc2UgVVJMcyBwcm9wZXJseVxuICBjb25zdCByb3V0ZUZvckZpbGVQYXRoID0gdmFsdWU7XG5cbiAgbGV0IGZpbGVQYXRoID0gcmVzb2x2ZShob3N0RGlyLCByb3V0ZUZvckZpbGVQYXRoKTtcbiAgbGV0IGNvbnRlbnRUeXBlO1xuICBpZiAoaXNTZXJ2ZXJBY3Rpb25SZXF1ZXN0KSB7XG4gICAgLy8gRm9yIHNlcnZlciBhY3Rpb25zLCB3ZSdsbCBnZXQgdGhlIGFjdHVhbCBmaWxlIHBhdGggZnJvbSB0aGUgcmVxdWVzdCBib2R5XG4gICAgLy8gVGhlIHJvdXRlIGlzIGp1c3QgYSBwbGFjZWhvbGRlclxuICAgIGZpbGVQYXRoID0gcmVzb2x2ZShob3N0RGlyLCByb3V0ZUZvckZpbGVQYXRoKTtcbiAgICBjb250ZW50VHlwZSA9IFwiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOFwiO1xuICB9IGVsc2UgaWYgKGlzSHRtbFJlcXVlc3QpIHtcbiAgICBpZiAoIWlzSHRtbCkge1xuICAgICAgZmlsZVBhdGggPSByZXNvbHZlKFxuICAgICAgICBob3N0RGlyLFxuICAgICAgICByb3V0ZUZvckZpbGVQYXRoLFxuICAgICAgICBoYW5kbGVyT3B0aW9ucy5idWlsZC5odG1sT3V0cHV0UGF0aFxuICAgICAgKTtcbiAgICB9XG4gICAgY29udGVudFR5cGUgPSBcInRleHQvaHRtbDsgY2hhcnNldD11dGYtOFwiO1xuICB9IGVsc2UgaWYgKGlzUnNjUmVxdWVzdCkge1xuICAgIGlmICghaXNSc2MpIHtcbiAgICAgIC8vIFZhbHVlIGRvZXNuJ3QgZW5kIHdpdGggLnJzYywgYXBwZW5kIHRoZSByc2Mgb3V0cHV0IHBhdGhcbiAgICAgIGZpbGVQYXRoID0gcmVzb2x2ZShcbiAgICAgICAgaG9zdERpcixcbiAgICAgICAgcm91dGVGb3JGaWxlUGF0aCxcbiAgICAgICAgaGFuZGxlck9wdGlvbnMuYnVpbGQucnNjT3V0cHV0UGF0aFxuICAgICAgKTtcbiAgICB9XG4gICAgY29udGVudFR5cGUgPSBcInRleHQveC1jb21wb25lbnQ7IGNoYXJzZXQ9dXRmLThcIjtcbiAgfSBlbHNlIGlmIChpc0Nzc1JlcXVlc3QpIHtcbiAgICBpZiAoIWlzQ3NzKSB7XG4gICAgICBmaWxlUGF0aCA9IHJlc29sdmUoaG9zdERpciwgcm91dGVGb3JGaWxlUGF0aCArIFwiLmNzc1wiKTtcbiAgICB9XG4gICAgY29udGVudFR5cGUgPSBcInRleHQvY3NzOyBjaGFyc2V0PXV0Zi04XCI7XG4gIH0gZWxzZSBpZiAoaXNKc1JlcXVlc3QpIHtcbiAgICBpZiAoIWlzSlMpIHtcbiAgICAgIGZpbGVQYXRoID0gcmVzb2x2ZShob3N0RGlyLCByb3V0ZUZvckZpbGVQYXRoICsgXCIuanNcIik7XG4gICAgfVxuICAgIGNvbnRlbnRUeXBlID0gXCJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0OyBjaGFyc2V0PXV0Zi04XCI7XG4gIH0gZWxzZSBpZiAoaXNKc29uUmVxdWVzdCkge1xuICAgIGlmICghaXNKc29uKSB7XG4gICAgICBmaWxlUGF0aCA9IHJlc29sdmUoaG9zdERpciwgcm91dGVGb3JGaWxlUGF0aCArIFwiLmpzb25cIik7XG4gICAgfVxuICAgIGNvbnRlbnRUeXBlID0gXCJhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04XCI7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgbWltZVR5cGUgPSBNSU1FX1RZUEVTW2V4dF07XG4gICAgaWYgKG1pbWVUeXBlKSB7XG4gICAgICBjb250ZW50VHlwZSA9IG1pbWVUeXBlICsgXCI7IGNoYXJzZXQ9dXRmLThcIjtcbiAgICB9IGVsc2Uge1xuICAgICAgY29udGVudFR5cGUgPSBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbTsgY2hhcnNldD11dGYtOFwiO1xuICAgIH1cbiAgfVxuXG4gIGlmIChoYW5kbGVyT3B0aW9ucy52ZXJib3NlKSB7XG4gICAgaWYgKGlzRm9ybUFjdGlvblJlcXVlc3QpIHtcbiAgICAgIGhhbmRsZXJPcHRpb25zLmxvZ2dlci5pbmZvKGBbcmVhY3QtZGV2LXNlcnZlcl0gKGZvcm0tYWN0aW9uKSAke3JvdXRlfWApO1xuICAgIH0gZWxzZSBpZiAoaXNTZXJ2ZXJBY3Rpb25SZXF1ZXN0KSB7XG4gICAgICBoYW5kbGVyT3B0aW9ucy5sb2dnZXIuaW5mbyhgW3JlYWN0LWRldi1zZXJ2ZXJdIChzZXJ2ZXItYWN0aW9uKSAke3JvdXRlfWApO1xuICAgIH0gZWxzZSBpZiAoaXNIdG1sUmVxdWVzdCkge1xuICAgICAgaGFuZGxlck9wdGlvbnMubG9nZ2VyLmluZm8oYFtyZWFjdC1kZXYtc2VydmVyXSAoaHRtbCkgJHtyb3V0ZX1gKTtcbiAgICB9IGVsc2UgaWYgKGlzUnNjUmVxdWVzdCkge1xuICAgICAgaGFuZGxlck9wdGlvbnMubG9nZ2VyLmluZm8oYFtyZWFjdC1kZXYtc2VydmVyXSAocnNjKSAke3JvdXRlfWApO1xuICAgIH0gZWxzZSBpZiAoaXNDc3NSZXF1ZXN0KSB7XG4gICAgICBoYW5kbGVyT3B0aW9ucy5sb2dnZXIuaW5mbyhgW3JlYWN0LWRldi1zZXJ2ZXJdIChjc3MpICR7cm91dGV9YCk7XG4gICAgfSBlbHNlIGlmIChpc0pzUmVxdWVzdCkge1xuICAgICAgaGFuZGxlck9wdGlvbnMubG9nZ2VyLmluZm8oYFtyZWFjdC1kZXYtc2VydmVyXSAoanMpICR7cm91dGV9YCk7XG4gICAgfSBlbHNlIGlmIChpc0pzb25SZXF1ZXN0KSB7XG4gICAgICBoYW5kbGVyT3B0aW9ucy5sb2dnZXIuaW5mbyhgW3JlYWN0LWRldi1zZXJ2ZXJdIChqc29uKSAke3JvdXRlfWApO1xuICAgIH0gZWxzZSB7XG4gICAgICBoYW5kbGVyT3B0aW9ucy5sb2dnZXIuaW5mbyhgW3JlYWN0LWRldi1zZXJ2ZXJdIChvdGhlcikgJHtyb3V0ZX1gKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHtcbiAgICByb3V0ZSxcbiAgICB1cmw6IHJvdXRlVG9VUkwocm91dGUsIGhhbmRsZXJPcHRpb25zLm1vZHVsZUJhc2VVUkwsIGhhbmRsZXJPcHRpb25zLmJ1aWxkLnJzY091dHB1dFBhdGgpLFxuICAgIGV4dCxcbiAgICBpc0h0bWxSZXF1ZXN0LFxuICAgIGlzUnNjUmVxdWVzdCxcbiAgICBpc0Nzc1JlcXVlc3QsXG4gICAgaXNDc3MsXG4gICAgaXNIdG1sLFxuICAgIGlzUnNjLFxuICAgIGlzRm9sZGVyLFxuICAgIGNvbnRlbnRUeXBlLFxuICAgIGZpbGVQYXRoLFxuICAgIGlzSlMsXG4gICAgaXNWZW5kb3IsXG4gICAgaXNWaXJ0dWFsLFxuICAgIGhhc0pzSGVhZGVyLFxuICAgIGlzSnNSZXF1ZXN0LFxuICAgIGlzSnNvbixcbiAgICBpc0pzb25SZXF1ZXN0LFxuICAgIGhhc0Nzc0hlYWRlcixcbiAgICBoYXNKc29uSGVhZGVyLFxuICAgIGhhc0h0bWxIZWFkZXIsXG4gICAgaGFzUnNjSGVhZGVyLFxuICAgIGhhc1NlcnZlckFjdGlvbkhlYWRlcnMsXG4gICAgaXNTZXJ2ZXJBY3Rpb25SZXF1ZXN0LFxuICAgIGlzRm9y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
|
|
163
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWVzdEluZm8uanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BsdWdpbi9oZWxwZXJzL3JlcXVlc3RJbmZvLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlc29sdmUgfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgdHlwZSB7IENyZWF0ZUhhbmRsZXJPcHRpb25zIH0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5pbXBvcnQgeyB0eXBlIENvbm5lY3QgfSBmcm9tIFwidml0ZVwiO1xuaW1wb3J0IHsgTUlNRV9UWVBFUyB9IGZyb20gXCIuLi9jb25maWcvbWltZVR5cGVzLmpzXCI7XG5pbXBvcnQgeyByZXF1ZXN0VG9Sb3V0ZSB9IGZyb20gXCIuL3JlcXVlc3RUb1JvdXRlLmpzXCI7XG5pbXBvcnQgeyByb3V0ZVRvVVJMIH0gZnJvbSBcIi4uL3V0aWxzL3JvdXRlVG9VUkwuanNcIjtcblxuLyoqXG4gKiAjIFJlcXVlc3QgaW5mb1xuICpcbiAqIERvZXMgdGhlIGluaXRpYWwgd29yayB0byBjaGVjayBpZiB0aGUgcmVxdWVzdCBpcyBmb3IgaHRtbCwgcnNjLCBqc29uLCBqcywgY3NzLCBzZXJ2ZXItYWN0aW9uLCBvciBzb21ldGhpbmcgZWxzZSBub3QgaGFuZGxlZCBieSB0aGlzIHBsdWdpbi5cbiAqXG4gKiBAcGFyYW0gcmVxXG4gKiBAcGFyYW0gaGFuZGxlck9wdGlvbnNcbiAqIEBwYXJhbSBob3N0RGlyXG4gKiBAcmV0dXJuc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcmVxdWVzdEluZm8oXG4gIHJlcTogQ29ubmVjdC5JbmNvbWluZ01lc3NhZ2UsXG4gIGhhbmRsZXJPcHRpb25zOiBQaWNrPFxuICAgIENyZWF0ZUhhbmRsZXJPcHRpb25zLFxuICAgIHwgXCJub3JtYWxpemVyXCJcbiAgICB8IFwiYnVpbGRcIlxuICAgIHwgXCJhdXRvRGlzY292ZXJcIlxuICAgIHwgXCJ2ZXJib3NlXCJcbiAgICB8IFwibW9kdWxlQmFzZVBhdGhcIlxuICAgIHwgXCJtb2R1bGVCYXNlVVJMXCJcbiAgICB8IFwidmVyYm9zZVwiXG4gICAgfCBcImxvZ2dlclwiXG4gID4sXG4gIGhvc3REaXI6IHN0cmluZyxcbikge1xuICBjb25zdCByb3V0ZSA9IHJlcXVlc3RUb1JvdXRlKHJlcSwge1xuICAgIG1vZHVsZUJhc2VQYXRoOiBoYW5kbGVyT3B0aW9ucy5tb2R1bGVCYXNlUGF0aCxcbiAgICBtb2R1bGVCYXNlVVJMOiBoYW5kbGVyT3B0aW9ucy5tb2R1bGVCYXNlVVJMLFxuICAgIGJ1aWxkOiBoYW5kbGVyT3B0aW9ucy5idWlsZCxcbiAgfSk7XG5cbiAgaWYgKCFyb3V0ZSkge1xuICAgIHJldHVybiB7XG4gICAgICByb3V0ZTogXCIvXCIsXG4gICAgICB1cmw6IHJvdXRlVG9VUkwoXCIvXCIsIGhhbmRsZXJPcHRpb25zLm1vZHVsZUJhc2VVUkwsIGhhbmRsZXJPcHRpb25zLmJ1aWxkLnJzY091dHB1dFBhdGgpLFxuICAgICAgZXh0OiBcIlwiLFxuICAgIH07XG4gIH1cblxuICAvLyBVc2UgdGhlIGNsZWFuZWQgcm91dGUgZm9yIG5vcm1hbGl6YXRpb24sIG5vdCB0aGUgcmF3IHJlcS51cmxcbiAgLy8gVGhpcyBlbnN1cmVzIGJhc2UgVVJMIGlzIHByb3Blcmx5IHN0cmlwcGVkIGJlZm9yZSBub3JtYWxpemF0aW9uXG4gIGNvbnN0IFssIHZhbHVlXSA9IGhhbmRsZXJPcHRpb25zLm5vcm1hbGl6ZXIocm91dGUpO1xuICBpZiAoaGFuZGxlck9wdGlvbnMudmVyYm9zZSkge1xuICAgIGlmICh2YWx1ZSAmJiB2YWx1ZSAhPT0gXCJcIikge1xuICAgICAgaGFuZGxlck9wdGlvbnMubG9nZ2VyLmluZm8oYFtyZXF1ZXN0SW5mb10gVmFsdWU6IFxcXCIke3ZhbHVlfVxcXCJgKTtcbiAgICB9XG4gICAgaWYgKGhvc3REaXIgJiYgaG9zdERpciAhPT0gXCJcIikge1xuICAgICAgaGFuZGxlck9wdGlvbnMubG9nZ2VyLmluZm8oYFtyZXF1ZXN0SW5mb10gSG9zdCBEaXI6IFxcXCIke2hvc3REaXJ9XFxcImApO1xuICAgIH1cbiAgICBpZiAocmVxLnVybCAmJiByZXEudXJsICE9PSBcIlwiKSB7XG4gICAgICBoYW5kbGVyT3B0aW9ucy5sb2dnZXIuaW5mbyhgW3JlcXVlc3RJbmZvXSBSZXF1ZXN0IFVSTDogXFxcIiR7cmVxLnVybH1cXFwiYCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgZG90SW5kZXggPSB2YWx1ZS5sYXN0SW5kZXhPZihcIi5cIik7XG4gIGNvbnN0IGV4dCA9IGRvdEluZGV4ID09PSAtMSA/IFwiXCIgOiB2YWx1ZS5zbGljZShkb3RJbmRleCk7XG4gIC8vIGhhbmRsZSBpbmRleC5odG1sXG4gIGNvbnN0IGlzVmVuZG9yID0gaGFuZGxlck9wdGlvbnMuYXV0b0Rpc2NvdmVyLnZlbmRvclBhdHRlcm4udGVzdCh2YWx1ZSk7XG4gIGNvbnN0IGlzVmlydHVhbCA9IGhhbmRsZXJPcHRpb25zLmF1dG9EaXNjb3Zlci52aXJ0dWFsUGF0dGVybi50ZXN0KHZhbHVlKTtcbiAgY29uc3QgaXNKUyA9IGhhbmRsZXJPcHRpb25zLmF1dG9EaXNjb3Zlci5tb2R1bGVQYXR0ZXJuLnRlc3QodmFsdWUpO1xuICBjb25zdCBpc0h0bWwgPSBoYW5kbGVyT3B0aW9ucy5hdXRvRGlzY292ZXIuaHRtbFBhdHRlcm4udGVzdCh2YWx1ZSk7XG4gIGNvbnN0IGlzQ3NzID0gaGFuZGxlck9wdGlvbnMuYXV0b0Rpc2NvdmVyLmNzc1BhdHRlcm4udGVzdCh2YWx1ZSk7XG4gIGNvbnN0IGlzSnNvbiA9IGhhbmRsZXJPcHRpb25zLmF1dG9EaXNjb3Zlci5qc29uUGF0dGVybi50ZXN0KHZhbHVlKTtcbiAgY29uc3QgaXNSc2MgPSBoYW5kbGVyT3B0aW9ucy5hdXRvRGlzY292ZXIucnNjUGF0dGVybi50ZXN0KHZhbHVlKTtcbiAgY29uc3QgaGFzSnNIZWFkZXIgPVxuICAgIHJlcS5oZWFkZXJzW1wic2VjLWZldGNoLWRlc3RcIl0gPT09IFwic2NyaXB0XCIgfHxcbiAgICByZXEuaGVhZGVyc1tcImFjY2VwdFwiXT8uaW5jbHVkZXMoXCIqLypcIikgfHxcbiAgICByZXEuaGVhZGVyc1tcImFjY2VwdFwiXT8uaW5jbHVkZXMoXCJ0ZXh0L2phdmFzY3JpcHRcIik7XG4gIGNvbnN0IGhhc0pzb25IZWFkZXIgPSByZXEuaGVhZGVyc1tcImFjY2VwdFwiXT8uaW5jbHVkZXMoXCJhcHBsaWNhdGlvbi9qc29uXCIpO1xuICBjb25zdCBoYXNIdG1sSGVhZGVyID0gcmVxLmhlYWRlcnMuYWNjZXB0Py5pbmNsdWRlcyhcInRleHQvaHRtbFwiKTtcbiAgY29uc3QgaGFzUnNjSGVhZGVyID0gcmVxLmhlYWRlcnMuYWNjZXB0Py5pbmNsdWRlcyhcInRleHQveC1jb21wb25lbnRcIik7XG4gIC8vIFN1cHBvcnQgP19yc2MgcXVlcnkgcGFyYW0gKGUuZy4gLz9fcnNjIGZvciBicm93c2VyIGRlYnVnZ2luZykgYXMgYWx0ZXJuYXRpdmUgdG8gQWNjZXB0IGhlYWRlciAodXNlZnVsIGZvciBicm93c2VyIGRlYnVnZ2luZylcbiAgY29uc3QgaGFzUnNjUXVlcnlQYXJhbSA9IC9bPyZdX3JzY1xcYi8udGVzdChyZXEudXJsIHx8IFwiXCIpO1xuICBjb25zdCBoYXNDc3NIZWFkZXIgPSByZXEuaGVhZGVycy5hY2NlcHQ/LmluY2x1ZGVzKFwidGV4dC9jc3NcIik7XG4gIGNvbnN0IGlzRm9sZGVyID0gIWV4dDtcbiAgY29uc3QgaXNGb3JtQ29udGVudFR5cGUgPVxuICAgIHJlcS5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdPy5pbmNsdWRlcyhcbiAgICAgIFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCJcbiAgICApIHx8ICEhcmVxLmhlYWRlcnNbXCJjb250ZW50LXR5cGVcIl0/LmluY2x1ZGVzKFwibXVsdGlwYXJ0L2Zvcm0tZGF0YVwiKTtcblxuICAvLyBTZXJ2ZXIgYWN0aW9uIGRldGVjdGlvblxuICBjb25zdCBoYXNSc2NBY3Rpb25IZWFkZXIgPSAhIXJlcS5oZWFkZXJzW1wieC1yc2MtYWN0aW9uXCJdO1xuICBjb25zdCBoYXNTZXJ2ZXJBY3Rpb25IZWFkZXJzID1cbiAgICByZXEubWV0aG9kID09PSBcIlBPU1RcIiAmJlxuICAgIChoYXNSc2NBY3Rpb25IZWFkZXIgfHwgKFxuICAgICAgKHJlcS5oZWFkZXJzW1wic2VjLWZldGNoLWRlc3RcIl0gPT09IFwiZW1wdHlcIiB8fFxuICAgICAgICByZXEuaGVhZGVyc1tcInNlYy1mZXRjaC1kZXN0XCJdID09PSBcIlwiKSAmJlxuICAgICAgcmVxLmhlYWRlcnNbXCJzZWMtZmV0Y2gtbW9kZVwiXSA9PT0gXCJjb3JzXCJcbiAgICApKTtcbiAgY29uc3QgaXNTZXJ2ZXJBY3Rpb25SZXF1ZXN0ID0gaGFzU2VydmVyQWN0aW9uSGVhZGVycztcblxuICBjb25zdCBpc0Zvcm1BY3Rpb25SZXF1ZXN0ID1cbiAgICAhaXNTZXJ2ZXJBY3Rpb25SZXF1ZXN0ICYmXG4gICAgKHJlcS5tZXRob2QgPT09IFwiUE9TVFwiIHx8XG4gICAgICAoaXNGb3JtQ29udGVudFR5cGUgJiZcbiAgICAgICAgcmVxLmhlYWRlcnNbXCJzZWMtZmV0Y2gtZGVzdFwiXSA9PT0gXCJkb2N1bWVudFwiICYmXG4gICAgICAgIHJlcS5oZWFkZXJzW1wic2VjLWZldGNoLW1vZGVcIl0gPT09IFwibmF2aWdhdGVcIikpO1xuXG4gIGNvbnN0IGlzSnNSZXF1ZXN0ID1cbiAgICAhaXNGb3JtQWN0aW9uUmVxdWVzdCAmJlxuICAgICFpc0pzb24gJiZcbiAgICAhaXNIdG1sICYmXG4gICAgIWlzQ3NzICYmXG4gICAgIWlzUnNjICYmXG4gICAgKGlzSlMgfHwgaGFzSnNIZWFkZXIpO1xuICBjb25zdCBpc0pzb25SZXF1ZXN0ID0gaXNKc29uIHx8IChoYXNKc29uSGVhZGVyICYmICFpc0pzUmVxdWVzdCk7XG4gIC8vIEZvcm0gYWN0aW9uIGRldGVjdGlvblxuXG4gIGNvbnN0IGlzSHRtbFJlcXVlc3QgPVxuICAgICFoYXNSc2NRdWVyeVBhcmFtICYmIChpc0h0bWwgfHxcbiAgICBoYXNIdG1sSGVhZGVyIHx8XG4gICAgKGlzRm9sZGVyICYmXG4gICAgICAhaGFzUnNjSGVhZGVyICYmXG4gICAgICAhaXNSc2MgJiZcbiAgICAgICFpc0pzUmVxdWVzdCAmJlxuICAgICAgIWlzRm9ybUFjdGlvblJlcXVlc3QpKTtcbiAgY29uc3QgaXNSc2NSZXF1ZXN0ID1cbiAgICBoYXNSc2NRdWVyeVBhcmFtIHx8ICghaXNKc1JlcXVlc3QgJiYgIWlzSHRtbFJlcXVlc3QgJiYgKGlzUnNjIHx8IGhhc1JzY0hlYWRlcikpO1xuICBjb25zdCBpc0Nzc1JlcXVlc3QgPVxuICAgICFpc0h0bWxSZXF1ZXN0ICYmXG4gICAgIWlzUnNjUmVxdWVzdCAmJlxuICAgICFpc0pzUmVxdWVzdCAmJlxuICAgICFpc0pzb25SZXF1ZXN0ICYmXG4gICAgKGlzQ3NzIHx8IGhhc0Nzc0hlYWRlcik7XG5cbiAgLy8gVXNlIHRoZSBub3JtYWxpemVkIHZhbHVlIGZvciBmaWxlIHBhdGggY29uc3RydWN0aW9uXG4gIC8vIFRoZSBub3JtYWxpemVyIHNob3VsZCBoYXZlIGFscmVhZHkgc3RyaXBwZWQgYmFzZSBVUkxzIHByb3Blcmx5XG4gIGNvbnN0IHJvdXRlRm9yRmlsZVBhdGggPSB2YWx1ZTtcblxuICBsZXQgZmlsZVBhdGggPSByZXNvbHZlKGhvc3REaXIsIHJvdXRlRm9yRmlsZVBhdGgpO1xuICBsZXQgY29udGVudFR5cGU7XG4gIGlmIChpc1NlcnZlckFjdGlvblJlcXVlc3QpIHtcbiAgICAvLyBGb3Igc2VydmVyIGFjdGlvbnMsIHdlJ2xsIGdldCB0aGUgYWN0dWFsIGZpbGUgcGF0aCBmcm9tIHRoZSByZXF1ZXN0IGJvZHlcbiAgICAvLyBUaGUgcm91dGUgaXMganVzdCBhIHBsYWNlaG9sZGVyXG4gICAgZmlsZVBhdGggPSByZXNvbHZlKGhvc3REaXIsIHJvdXRlRm9yRmlsZVBhdGgpO1xuICAgIGNvbnRlbnRUeXBlID0gXCJhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04XCI7XG4gIH0gZWxzZSBpZiAoaXNIdG1sUmVxdWVzdCkge1xuICAgIGlmICghaXNIdG1sKSB7XG4gICAgICBmaWxlUGF0aCA9IHJlc29sdmUoXG4gICAgICAgIGhvc3REaXIsXG4gICAgICAgIHJvdXRlRm9yRmlsZVBhdGgsXG4gICAgICAgIGhhbmRsZXJPcHRpb25zLmJ1aWxkLmh0bWxPdXRwdXRQYXRoXG4gICAgICApO1xuICAgIH1cbiAgICBjb250ZW50VHlwZSA9IFwidGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04XCI7XG4gIH0gZWxzZSBpZiAoaXNSc2NSZXF1ZXN0KSB7XG4gICAgaWYgKCFpc1JzYykge1xuICAgICAgLy8gVmFsdWUgZG9lc24ndCBlbmQgd2l0aCAucnNjLCBhcHBlbmQgdGhlIHJzYyBvdXRwdXQgcGF0aFxuICAgICAgZmlsZVBhdGggPSByZXNvbHZlKFxuICAgICAgICBob3N0RGlyLFxuICAgICAgICByb3V0ZUZvckZpbGVQYXRoLFxuICAgICAgICBoYW5kbGVyT3B0aW9ucy5idWlsZC5yc2NPdXRwdXRQYXRoXG4gICAgICApO1xuICAgIH1cbiAgICBjb250ZW50VHlwZSA9IFwidGV4dC94LWNvbXBvbmVudDsgY2hhcnNldD11dGYtOFwiO1xuICB9IGVsc2UgaWYgKGlzQ3NzUmVxdWVzdCkge1xuICAgIGlmICghaXNDc3MpIHtcbiAgICAgIGZpbGVQYXRoID0gcmVzb2x2ZShob3N0RGlyLCByb3V0ZUZvckZpbGVQYXRoICsgXCIuY3NzXCIpO1xuICAgIH1cbiAgICBjb250ZW50VHlwZSA9IFwidGV4dC9jc3M7IGNoYXJzZXQ9dXRmLThcIjtcbiAgfSBlbHNlIGlmIChpc0pzUmVxdWVzdCkge1xuICAgIGlmICghaXNKUykge1xuICAgICAgZmlsZVBhdGggPSByZXNvbHZlKGhvc3REaXIsIHJvdXRlRm9yRmlsZVBhdGggKyBcIi5qc1wiKTtcbiAgICB9XG4gICAgY29udGVudFR5cGUgPSBcImFwcGxpY2F0aW9uL2phdmFzY3JpcHQ7IGNoYXJzZXQ9dXRmLThcIjtcbiAgfSBlbHNlIGlmIChpc0pzb25SZXF1ZXN0KSB7XG4gICAgaWYgKCFpc0pzb24pIHtcbiAgICAgIGZpbGVQYXRoID0gcmVzb2x2ZShob3N0RGlyLCByb3V0ZUZvckZpbGVQYXRoICsgXCIuanNvblwiKTtcbiAgICB9XG4gICAgY29udGVudFR5cGUgPSBcImFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLThcIjtcbiAgfSBlbHNlIHtcbiAgICBjb25zdCBtaW1lVHlwZSA9IE1JTUVfVFlQRVNbZXh0XTtcbiAgICBpZiAobWltZVR5cGUpIHtcbiAgICAgIGNvbnRlbnRUeXBlID0gbWltZVR5cGUgKyBcIjsgY2hhcnNldD11dGYtOFwiO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb250ZW50VHlwZSA9IFwiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtXCI7XG4gICAgfVxuICB9XG5cbiAgaWYgKGhhbmRsZXJPcHRpb25zLnZlcmJvc2UpIHtcbiAgICBpZiAoaXNGb3JtQWN0aW9uUmVxdWVzdCkge1xuICAgICAgaGFuZGxlck9wdGlvbnMubG9nZ2VyLmluZm8oYFtyZWFjdC1kZXYtc2VydmVyXSAoZm9ybS1hY3Rpb24pICR7cm91dGV9YCk7XG4gICAgfSBlbHNlIGlmIChpc1NlcnZlckFjdGlvblJlcXVlc3QpIHtcbiAgICAgIGhhbmRsZXJPcHRpb25zLmxvZ2dlci5pbmZvKGBbcmVhY3QtZGV2LXNlcnZlcl0gKHNlcnZlci1hY3Rpb24pICR7cm91dGV9YCk7XG4gICAgfSBlbHNlIGlmIChpc0h0bWxSZXF1ZXN0KSB7XG4gICAgICBoYW5kbGVyT3B0aW9ucy5sb2dnZXIuaW5mbyhgW3JlYWN0LWRldi1zZXJ2ZXJdIChodG1sKSAke3JvdXRlfWApO1xuICAgIH0gZWxzZSBpZiAoaXNSc2NSZXF1ZXN0KSB7XG4gICAgICBoYW5kbGVyT3B0aW9ucy5sb2dnZXIuaW5mbyhgW3JlYWN0LWRldi1zZXJ2ZXJdIChyc2MpICR7cm91dGV9YCk7XG4gICAgfSBlbHNlIGlmIChpc0Nzc1JlcXVlc3QpIHtcbiAgICAgIGhhbmRsZXJPcHRpb25zLmxvZ2dlci5pbmZvKGBbcmVhY3QtZGV2LXNlcnZlcl0gKGNzcykgJHtyb3V0ZX1gKTtcbiAgICB9IGVsc2UgaWYgKGlzSnNSZXF1ZXN0KSB7XG4gICAgICBoYW5kbGVyT3B0aW9ucy5sb2dnZXIuaW5mbyhgW3JlYWN0LWRldi1zZXJ2ZXJdIChqcykgJHtyb3V0ZX1gKTtcbiAgICB9IGVsc2UgaWYgKGlzSnNvblJlcXVlc3QpIHtcbiAgICAgIGhhbmRsZXJPcHRpb25zLmxvZ2dlci5pbmZvKGBbcmVhY3QtZGV2LXNlcnZlcl0gKGpzb24pICR7cm91dGV9YCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGhhbmRsZXJPcHRpb25zLmxvZ2dlci5pbmZvKGBbcmVhY3QtZGV2LXNlcnZlcl0gKG90aGVyKSAke3JvdXRlfWApO1xuICAgIH1cbiAgfVxuICByZXR1cm4ge1xuICAgIHJvdXRlLFxuICAgIHVybDogcm91dGVUb1VSTChyb3V0ZSwgaGFuZGxlck9wdGlvbnMubW9kdWxlQmFzZVVSTCwgaGFuZGxlck9wdGlvbnMuYnVpbGQucnNjT3V0cHV0UGF0aCksXG4gICAgZXh0LFxuICAgIGlzSHRtbFJlcXVlc3QsXG4gICAgaXNSc2NSZXF1ZXN0LFxuICAgIGlzQ3NzUmVxdWVzdCxcbiAgICBpc0NzcyxcbiAgICBpc0h0bWwsXG4gICAgaXNSc2MsXG4gICAgaXNGb2xkZXIsXG4gICAgY29udGVudFR5cGUsXG4gICAgZmlsZVBhdGgsXG4gICAgaXNKUyxcbiAgICBpc1ZlbmRvcixcbiAgICBpc1ZpcnR1YWwsXG4gICAgaGFzSnNIZWFkZXIsXG4gICAgaXNKc1JlcXVlc3QsXG4gICAgaXNKc29uLFxuICAgIGlzSnNvblJlcXVlc3QsXG4gICAgaGFzQ3NzSGVhZGVyLFxuICAgIGhhc0pzb25IZWFkZXIsXG4gICAgaGFzSHRtbEhlYWRlcixcbiAgICBoYXNSc2NIZWFkZXIsXG4gICAgaGFzU2VydmVyQWN0aW9uSGVhZGVycyxcbiAgICBpc1NlcnZlckFjdGlvblJlcXVlc3QsXG4gICAgaXNGb3JtQ29udGVudFR5cGUsXG4gICAgaXNGb3JtQWN0aW9uUmVxdWVzdCxcbiAg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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Worker
|
|
1
|
+
import type { Worker } from "node:worker_threads";
|
|
2
2
|
/**
|
|
3
3
|
* Centralized worker cleanup utilities
|
|
4
4
|
* Provides consistent cleanup patterns across the codebase
|
|
@@ -15,15 +15,4 @@ export interface WorkerCleanupOptions {
|
|
|
15
15
|
* Safely cleans up a worker with consistent error handling
|
|
16
16
|
*/
|
|
17
17
|
export declare function cleanupWorker(worker: Worker | null | undefined, options?: WorkerCleanupOptions): void;
|
|
18
|
-
/**
|
|
19
|
-
* Safely cleans up MessagePorts with consistent error handling
|
|
20
|
-
*/
|
|
21
|
-
export declare function cleanupMessagePorts(ports: (MessagePort | null | undefined)[], options?: {
|
|
22
|
-
logErrors?: boolean;
|
|
23
|
-
}): void;
|
|
24
|
-
/**
|
|
25
|
-
* Comprehensive cleanup for worker + MessagePorts combination
|
|
26
|
-
* This is the most common cleanup pattern in the codebase
|
|
27
|
-
*/
|
|
28
|
-
export declare function cleanupWorkerAndPorts(worker: Worker | null | undefined, ports: (MessagePort | null | undefined)[], options?: WorkerCleanupOptions): void;
|
|
29
18
|
//# sourceMappingURL=workerCleanup.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workerCleanup.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/workerCleanup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"workerCleanup.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/workerCleanup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD;;;GAGG;AAEH,MAAM,WAAW,oBAAoB;IACnC,sDAAsD;IACtD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,sDAAsD;IACtD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,qDAAqD;IACrD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACjC,OAAO,GAAE,oBAAyB,GACjC,IAAI,CAuBN"}
|
|
@@ -25,4 +25,4 @@ function cleanupWorker(worker, options = {}) {
|
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
export { cleanupWorker };
|
|
28
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyQ2xlYW51cC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGx1Z2luL2hlbHBlcnMvd29ya2VyQ2xlYW51cC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFdvcmtlciB9IGZyb20gXCJub2RlOndvcmtlcl90aHJlYWRzXCI7XG5cbi8qKlxuICogQ2VudHJhbGl6ZWQgd29ya2VyIGNsZWFudXAgdXRpbGl0aWVzXG4gKiBQcm92aWRlcyBjb25zaXN0ZW50IGNsZWFudXAgcGF0dGVybnMgYWNyb3NzIHRoZSBjb2RlYmFzZVxuICovXG5cbmV4cG9ydCBpbnRlcmZhY2UgV29ya2VyQ2xlYW51cE9wdGlvbnMge1xuICAvKiogV2hldGhlciB0byB0ZXJtaW5hdGUgdGhlIHdvcmtlciAoZGVmYXVsdDogdHJ1ZSkgKi9cbiAgdGVybWluYXRlPzogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgdG8gcmVtb3ZlIGFsbCBsaXN0ZW5lcnMgKGRlZmF1bHQ6IHRydWUpICovXG4gIHJlbW92ZUxpc3RlbmVycz86IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIHRvIGxvZyBjbGVhbnVwIGVycm9ycyAoZGVmYXVsdDogZmFsc2UpICovXG4gIGxvZ0Vycm9ycz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogU2FmZWx5IGNsZWFucyB1cCBhIHdvcmtlciB3aXRoIGNvbnNpc3RlbnQgZXJyb3IgaGFuZGxpbmdcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsZWFudXBXb3JrZXIoXG4gIHdvcmtlcjogV29ya2VyIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgb3B0aW9uczogV29ya2VyQ2xlYW51cE9wdGlvbnMgPSB7fVxuKTogdm9pZCB7XG4gIGlmICghd29ya2VyKSByZXR1cm47XG5cbiAgY29uc3Qge1xuICAgIHRlcm1pbmF0ZSA9IHRydWUsXG4gICAgcmVtb3ZlTGlzdGVuZXJzID0gdHJ1ZSxcbiAgICBsb2dFcnJvcnMgPSBmYWxzZVxuICB9ID0gb3B0aW9ucztcblxuICB0cnkge1xuICAgIGlmIChyZW1vdmVMaXN0ZW5lcnMpIHtcbiAgICAgIHdvcmtlci5yZW1vdmVBbGxMaXN0ZW5lcnMoKTtcbiAgICB9XG4gICAgXG4gICAgaWYgKHRlcm1pbmF0ZSkge1xuICAgICAgd29ya2VyLnRlcm1pbmF0ZSgpO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBpZiAobG9nRXJyb3JzKSB7XG4gICAgICBjb25zb2xlLndhcm4oJ1t3b3JrZXJDbGVhbnVwXSBFcnJvciBkdXJpbmcgd29ya2VyIGNsZWFudXA6JywgZXJyb3IpO1xuICAgIH1cbiAgICAvLyBBbHdheXMgaWdub3JlIGNsZWFudXAgZXJyb3JzIHRvIHByZXZlbnQgY2FzY2FkaW5nIGZhaWx1cmVzXG4gIH1cbn1cblxuXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFtQk8sU0FBUyxhQUNkLENBQUEsTUFBQSxFQUNBLE9BQWdDLEdBQUEsRUFDMUIsRUFBQTtBQUNOLEVBQUEsSUFBSSxDQUFDLE1BQVEsRUFBQTtBQUViLEVBQU0sTUFBQTtBQUFBLElBQ0osU0FBWSxHQUFBLElBQUE7QUFBQSxJQUNaLGVBQWtCLEdBQUEsSUFBQTtBQUFBLElBQ2xCLFNBQVksR0FBQTtBQUFBLEdBQ1YsR0FBQSxPQUFBO0FBRUosRUFBSSxJQUFBO0FBQ0YsSUFBQSxJQUFJLGVBQWlCLEVBQUE7QUFDbkIsTUFBQSxNQUFBLENBQU8sa0JBQW1CLEVBQUE7QUFBQTtBQUc1QixJQUFBLElBQUksU0FBVyxFQUFBO0FBQ2IsTUFBQSxNQUFBLENBQU8sU0FBVSxFQUFBO0FBQUE7QUFDbkIsV0FDTyxLQUFPLEVBQUE7QUFDZCxJQUFBLElBQUksU0FBVyxFQUFBO0FBQ2IsTUFBUSxPQUFBLENBQUEsSUFBQSxDQUFLLGdEQUFnRCxLQUFLLENBQUE7QUFBQTtBQUNwRTtBQUdKOzs7OyJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../plugin/loader/directives/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../plugin/loader/directives/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
|
|
@@ -5,7 +5,6 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export { addLocalExportedNames } from './addLocalExportedNames.js';
|
|
7
7
|
export { getExports } from './getExports.js';
|
|
8
|
-
export { collectExportsFromModule } from './collectExportsFromModule.js';
|
|
9
8
|
export { analyzeDirectives } from './analyzeDirectives.js';
|
|
10
9
|
export { analyzeModule } from './analyzeModule.js';
|
|
11
10
|
export { collectExports } from './collectExports.js';
|
|
@@ -15,4 +14,4 @@ export { getQualifiedName } from './getQualifiedName.js';
|
|
|
15
14
|
export { processFunctionNode } from './processFunctionNode.js';
|
|
16
15
|
export { canHaveDirective, isArrowFunctionExpression, isAsyncFunction, isBlockStatement, isClassBody, isClassDeclaration, isDirective, isExportDeclaration, isExportDefaultDeclaration, isExportNamedDeclaration, isExportSpecifier, isExpressionStatement, isFunctionDeclaration, isFunctionExpression, isFunctionLikeWithBlock, isFunctionNode, isIdentifier, isLiteral, isMethodDefinition, isNodeWithParent, isObjectExpression, isProgram, isProperty, isPropertyDefinition, isStringLiteral, isVariableDeclaration, isVariableDeclarator } from './typeGuards.js';
|
|
17
16
|
export { getDirectiveValue, isDirectiveAtStart, matchOverlapsDirective } from './utils.js';
|
|
18
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7In0=
|