@ricsam/isolate 0.1.11 → 0.1.13
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 +101 -1
- package/dist/cjs/bridge/runtime-bindings.cjs +36 -8
- package/dist/cjs/bridge/runtime-bindings.cjs.map +3 -3
- package/dist/cjs/bridge/sandbox-isolate.cjs +157 -2
- package/dist/cjs/bridge/sandbox-isolate.cjs.map +3 -3
- package/dist/cjs/host/create-isolate-host.cjs +85 -1
- package/dist/cjs/host/create-isolate-host.cjs.map +3 -3
- package/dist/cjs/host/nested-host-controller.cjs +95 -5
- package/dist/cjs/host/nested-host-controller.cjs.map +3 -3
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/internal/browser-source.cjs +16 -5
- package/dist/cjs/internal/browser-source.cjs.map +3 -3
- package/dist/cjs/internal/client/connection.cjs +20 -9
- package/dist/cjs/internal/client/connection.cjs.map +3 -3
- package/dist/cjs/internal/daemon/connection.cjs +28 -10
- package/dist/cjs/internal/daemon/connection.cjs.map +3 -3
- package/dist/cjs/internal/protocol/types.cjs +2 -1
- package/dist/cjs/internal/protocol/types.cjs.map +3 -3
- package/dist/cjs/internal/runtime/index.cjs +5 -2
- package/dist/cjs/internal/runtime/index.cjs.map +3 -3
- package/dist/cjs/internal/typecheck/isolate-types.cjs +82 -1
- package/dist/cjs/internal/typecheck/isolate-types.cjs.map +3 -3
- package/dist/cjs/package.json +1 -1
- package/dist/cjs/playwright.cjs +76 -0
- package/dist/cjs/playwright.cjs.map +10 -0
- package/dist/cjs/runtime/namespaced-runtime.cjs +184 -0
- package/dist/cjs/runtime/namespaced-runtime.cjs.map +10 -0
- package/dist/cjs/runtime/test-event-subscriptions.cjs +76 -0
- package/dist/cjs/runtime/test-event-subscriptions.cjs.map +10 -0
- package/dist/cjs/runtime/test-runtime.cjs +26 -3
- package/dist/cjs/runtime/test-runtime.cjs.map +3 -3
- package/dist/mjs/bridge/runtime-bindings.mjs +36 -8
- package/dist/mjs/bridge/runtime-bindings.mjs.map +3 -3
- package/dist/mjs/bridge/sandbox-isolate.mjs +157 -2
- package/dist/mjs/bridge/sandbox-isolate.mjs.map +3 -3
- package/dist/mjs/host/create-isolate-host.mjs +85 -1
- package/dist/mjs/host/create-isolate-host.mjs.map +3 -3
- package/dist/mjs/host/nested-host-controller.mjs +95 -5
- package/dist/mjs/host/nested-host-controller.mjs.map +3 -3
- package/dist/mjs/index.mjs.map +1 -1
- package/dist/mjs/internal/browser-source.mjs +16 -5
- package/dist/mjs/internal/browser-source.mjs.map +3 -3
- package/dist/mjs/internal/client/connection.mjs +20 -9
- package/dist/mjs/internal/client/connection.mjs.map +3 -3
- package/dist/mjs/internal/daemon/connection.mjs +28 -10
- package/dist/mjs/internal/daemon/connection.mjs.map +3 -3
- package/dist/mjs/internal/protocol/types.mjs +2 -1
- package/dist/mjs/internal/protocol/types.mjs.map +3 -3
- package/dist/mjs/internal/runtime/index.mjs +5 -2
- package/dist/mjs/internal/runtime/index.mjs.map +3 -3
- package/dist/mjs/internal/typecheck/isolate-types.mjs +82 -1
- package/dist/mjs/internal/typecheck/isolate-types.mjs.map +3 -3
- package/dist/mjs/package.json +1 -1
- package/dist/mjs/playwright.mjs +47 -0
- package/dist/mjs/playwright.mjs.map +10 -0
- package/dist/mjs/runtime/namespaced-runtime.mjs +146 -0
- package/dist/mjs/runtime/namespaced-runtime.mjs.map +10 -0
- package/dist/mjs/runtime/test-event-subscriptions.mjs +36 -0
- package/dist/mjs/runtime/test-event-subscriptions.mjs.map +10 -0
- package/dist/mjs/runtime/test-runtime.mjs +26 -3
- package/dist/mjs/runtime/test-runtime.mjs.map +3 -3
- package/dist/types/bridge/sandbox-isolate.d.ts +9 -3
- package/dist/types/host/nested-host-controller.d.ts +5 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/internal/browser-source.d.ts +1 -2
- package/dist/types/internal/client/types.d.ts +4 -0
- package/dist/types/internal/protocol/types.d.ts +8 -1
- package/dist/types/internal/typecheck/isolate-types.d.ts +2 -2
- package/dist/types/playwright.d.ts +26 -0
- package/dist/types/runtime/namespaced-runtime.d.ts +13 -0
- package/dist/types/runtime/test-event-subscriptions.d.ts +12 -0
- package/dist/types/types.d.ts +51 -3
- package/package.json +6 -1
|
@@ -181,6 +181,9 @@ async function handleMessage(message, connection, state) {
|
|
|
181
181
|
case MessageType.DISPOSE_RUNTIME:
|
|
182
182
|
await handleDisposeRuntime(message, connection, state);
|
|
183
183
|
break;
|
|
184
|
+
case MessageType.DISPOSE_NAMESPACE:
|
|
185
|
+
await handleDisposeNamespace(message, connection, state);
|
|
186
|
+
break;
|
|
184
187
|
case MessageType.EVAL:
|
|
185
188
|
await handleEval(message, connection, state);
|
|
186
189
|
break;
|
|
@@ -334,6 +337,7 @@ async function hardDeleteRuntime(instance, state, reason) {
|
|
|
334
337
|
}
|
|
335
338
|
await instance.runtime.dispose();
|
|
336
339
|
} finally {
|
|
340
|
+
detachRuntimeFromOwningConnection(instance, state);
|
|
337
341
|
state.isolates.delete(instance.isolateId);
|
|
338
342
|
if (instance.namespaceId != null) {
|
|
339
343
|
const indexed = state.namespacedRuntimes.get(instance.namespaceId);
|
|
@@ -356,6 +360,12 @@ async function hardDeleteRuntime(instance, state, reason) {
|
|
|
356
360
|
logRuntimeLifecycle(state, wasPooled ? "evicted pooled" : "hard-disposed", instance, reason);
|
|
357
361
|
}
|
|
358
362
|
}
|
|
363
|
+
function detachRuntimeFromOwningConnection(instance, state) {
|
|
364
|
+
if (!instance.ownerConnection) {
|
|
365
|
+
return;
|
|
366
|
+
}
|
|
367
|
+
state.connections.get(instance.ownerConnection)?.isolates.delete(instance.isolateId);
|
|
368
|
+
}
|
|
359
369
|
var RECONNECTION_TIMEOUT_MS = 30000;
|
|
360
370
|
function softDeleteRuntime(instance, state, reason) {
|
|
361
371
|
const runtimeAbortWasAborted = instance.runtimeAbortController?.signal.aborted ?? false;
|
|
@@ -583,14 +593,7 @@ async function handleCreateRuntime(message, connection, state) {
|
|
|
583
593
|
const existing = state.namespacedRuntimes.get(namespaceId);
|
|
584
594
|
if (existing) {
|
|
585
595
|
if (!existing.isDisposed) {
|
|
586
|
-
|
|
587
|
-
sendOk(connection.socket, message.requestId, {
|
|
588
|
-
isolateId: existing.isolateId,
|
|
589
|
-
reused: true
|
|
590
|
-
});
|
|
591
|
-
return;
|
|
592
|
-
}
|
|
593
|
-
sendError(connection.socket, message.requestId, ErrorCode.SCRIPT_ERROR, `Namespace "${namespaceId}" already has an active runtime`);
|
|
596
|
+
sendError(connection.socket, message.requestId, ErrorCode.SCRIPT_ERROR, `Namespace "${namespaceId}" already has an active runtime`, { name: "NamespaceInUseError" });
|
|
594
597
|
return;
|
|
595
598
|
}
|
|
596
599
|
reuseNamespacedRuntime(existing, connection, message, state);
|
|
@@ -601,7 +604,7 @@ async function handleCreateRuntime(message, connection, state) {
|
|
|
601
604
|
return;
|
|
602
605
|
}
|
|
603
606
|
if (state.namespacedCreatesInFlight.has(namespaceId)) {
|
|
604
|
-
sendError(connection.socket, message.requestId, ErrorCode.SCRIPT_ERROR, `Namespace "${namespaceId}" creation already in progress
|
|
607
|
+
sendError(connection.socket, message.requestId, ErrorCode.SCRIPT_ERROR, `Namespace "${namespaceId}" creation already in progress`, { name: "NamespaceInUseError" });
|
|
605
608
|
return;
|
|
606
609
|
}
|
|
607
610
|
state.namespacedCreatesInFlight.add(namespaceId);
|
|
@@ -1165,6 +1168,21 @@ async function handleDisposeRuntime(message, connection, state) {
|
|
|
1165
1168
|
sendError(connection.socket, message.requestId, ErrorCode.SCRIPT_ERROR, error.message, { name: error.name, stack: error.stack });
|
|
1166
1169
|
}
|
|
1167
1170
|
}
|
|
1171
|
+
async function handleDisposeNamespace(message, connection, state) {
|
|
1172
|
+
const instance = state.namespacedRuntimes.get(message.namespaceId);
|
|
1173
|
+
if (!instance) {
|
|
1174
|
+
sendOk(connection.socket, message.requestId);
|
|
1175
|
+
return;
|
|
1176
|
+
}
|
|
1177
|
+
const requestReason = typeof message.reason === "string" && message.reason.length > 0 ? message.reason : "client requested namespace dispose";
|
|
1178
|
+
try {
|
|
1179
|
+
await hardDeleteRuntime(instance, state, requestReason);
|
|
1180
|
+
sendOk(connection.socket, message.requestId);
|
|
1181
|
+
} catch (err) {
|
|
1182
|
+
const error = err;
|
|
1183
|
+
sendError(connection.socket, message.requestId, ErrorCode.SCRIPT_ERROR, error.message, { name: error.name, stack: error.stack });
|
|
1184
|
+
}
|
|
1185
|
+
}
|
|
1168
1186
|
async function handleEval(message, connection, state) {
|
|
1169
1187
|
const instance = state.isolates.get(message.isolateId);
|
|
1170
1188
|
if (!instance) {
|
|
@@ -2212,4 +2230,4 @@ export {
|
|
|
2212
2230
|
handleConnection
|
|
2213
2231
|
};
|
|
2214
2232
|
|
|
2215
|
-
//# debugId=
|
|
2233
|
+
//# debugId=B375B10E50F2EE8464756E2164756E21
|