@sandboxxjs/core 2.0.1 → 2.1.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/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @sandboxxjs/core
2
2
 
3
+ ## 2.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 5c1c1a9: Add SandboxBootstrap component to Provider — Step 2: Prepare.
8
+
9
+ - SandboxProvider now requires createBootstrap() method
10
+ - web-provider: bootstrap boots WebContainer internally, no need to import @webcontainer/api
11
+ - node-provider: bootstrap is no-op (container already running)
12
+ - createSandboxClient calls bootstrap.boot() before creating other components
13
+ - Removed custom WebContainer type definitions, using @webcontainer/api directly
14
+
3
15
  ## 2.0.1
4
16
 
5
17
  ## 2.0.0
@@ -1 +1 @@
1
- {"version":3,"file":"create-client.d.ts","sourceRoot":"","sources":["../src/create-client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAwB,MAAM,UAAU,CAAC;AAQpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,eAAe,GAAG,aAAa,CAwK5E"}
1
+ {"version":3,"file":"create-client.d.ts","sourceRoot":"","sources":["../src/create-client.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAwB,MAAM,UAAU,CAAC;AAQpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,eAAe,GAAG,aAAa,CAiL5E"}
@@ -6,14 +6,21 @@
6
6
  * Executor, FileSystem, and ProcessManager components.
7
7
  */
8
8
  export function createSandboxClient(provider) {
9
- const executor = provider.createExecutor();
10
- const fs = provider.createFileSystem();
11
- const pm = provider.createProcessManager();
9
+ const bootstrap = provider.createBootstrap();
10
+ let executor;
11
+ let fs;
12
+ let pm;
12
13
  let ws = null;
13
14
  let heartbeatTimer = null;
14
15
  let isConnected = false;
15
16
  async function connect(options) {
16
17
  const { wsUrl, sandboxId, token, heartbeatInterval = 30_000 } = options;
18
+ // Step 2: Prepare — boot the sandbox environment
19
+ await bootstrap.boot();
20
+ // Create components after bootstrap (environment is now ready)
21
+ executor = provider.createExecutor();
22
+ fs = provider.createFileSystem();
23
+ pm = provider.createProcessManager();
17
24
  return new Promise((resolve, reject) => {
18
25
  ws = new WebSocket(wsUrl);
19
26
  ws.onopen = () => {
@@ -1 +1 @@
1
- {"version":3,"file":"create-client.js","sourceRoot":"","sources":["../src/create-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-client.js","sourceRoot":"","sources":["../src/create-client.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -19,7 +19,7 @@
19
19
  export type { AllocateRequest, SandboxAllocator, SandboxContainer, SandboxContainerType, SandboxStatus, } from "./allocator";
20
20
  export type { SandboxClient, SandboxClientOptions } from "./client";
21
21
  export { createSandboxClient } from "./create-client";
22
- export type { SandboxExecutor, SandboxFileSystem, SandboxProcessManager, SandboxProvider, } from "./provider";
22
+ export type { SandboxBootstrap, SandboxExecutor, SandboxFileSystem, SandboxProcessManager, SandboxProvider, } from "./provider";
23
23
  export type { SandboxConnection, SandboxRegistry } from "./registry";
24
24
  export type { SandboxRouter } from "./router";
25
25
  export type { ExecOptions, ExecResult, FileInfo, ProcessInfo, Sandbox } from "./sandbox";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,GACd,MAAM,aAAa,CAAC;AAGrB,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAErE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG9C,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,GACd,MAAM,aAAa,CAAC;AAGrB,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD,YAAY,EACV,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,eAAe,GAChB,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAErE,YAAY,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG9C,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC"}
@@ -2,15 +2,25 @@
2
2
  * SandboxProvider — platform capability injection.
3
3
  *
4
4
  * Provider is a component factory that supplies platform-specific
5
- * implementations of Executor, FileSystem, and ProcessManager.
5
+ * implementations of Bootstrap, Executor, FileSystem, and ProcessManager.
6
6
  *
7
7
  * The core layer (createSandboxClient) only depends on this interface.
8
8
  * Platform differences are isolated in provider implementations:
9
- * - node-provider: child_process + node:fs
10
- * - web-provider: @webcontainer/api
9
+ * - node-provider: child_process + node:fs (bootstrap is no-op)
10
+ * - web-provider: @webcontainer/api (bootstrap boots WebContainer)
11
11
  * - Future: Docker, SSH, etc.
12
12
  */
13
13
  import type { ExecOptions, ExecResult, FileInfo, ProcessInfo } from "./sandbox";
14
+ /**
15
+ * Bootstrap component — Step 2: Prepare.
16
+ *
17
+ * Initializes the sandbox environment before other components can work.
18
+ * For cloud containers this is a no-op (container is already running).
19
+ * For WebContainer this boots the runtime in the browser.
20
+ */
21
+ export interface SandboxBootstrap {
22
+ boot(): Promise<void>;
23
+ }
14
24
  /**
15
25
  * Command execution component.
16
26
  */
@@ -43,10 +53,11 @@ export interface SandboxProcessManager {
43
53
  * SandboxProvider — the component factory.
44
54
  *
45
55
  * Each platform implements this interface to provide its components.
46
- * createSandboxClient(provider) obtains components and dispatches
47
- * incoming messages to the appropriate component.
56
+ * createSandboxClient(provider) calls bootstrap.boot() first,
57
+ * then obtains other components and dispatches incoming messages.
48
58
  */
49
59
  export interface SandboxProvider {
60
+ createBootstrap(): SandboxBootstrap;
50
61
  createExecutor(): SandboxExecutor;
51
62
  createFileSystem(): SandboxFileSystem;
52
63
  createProcessManager(): SandboxProcessManager;
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CACnE;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7C,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACzE,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;CAChC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,cAAc,IAAI,eAAe,CAAC;IAClC,gBAAgB,IAAI,iBAAiB,CAAC;IACtC,oBAAoB,IAAI,qBAAqB,CAAC;CAC/C"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAEhF;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CACnE;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC7C,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtE,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACzE,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;CAChC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,eAAe,IAAI,gBAAgB,CAAC;IACpC,cAAc,IAAI,eAAe,CAAC;IAClC,gBAAgB,IAAI,iBAAiB,CAAC;IACtC,oBAAoB,IAAI,qBAAqB,CAAC;CAC/C"}
package/dist/provider.js CHANGED
@@ -2,12 +2,12 @@
2
2
  * SandboxProvider — platform capability injection.
3
3
  *
4
4
  * Provider is a component factory that supplies platform-specific
5
- * implementations of Executor, FileSystem, and ProcessManager.
5
+ * implementations of Bootstrap, Executor, FileSystem, and ProcessManager.
6
6
  *
7
7
  * The core layer (createSandboxClient) only depends on this interface.
8
8
  * Platform differences are isolated in provider implementations:
9
- * - node-provider: child_process + node:fs
10
- * - web-provider: @webcontainer/api
9
+ * - node-provider: child_process + node:fs (bootstrap is no-op)
10
+ * - web-provider: @webcontainer/api (bootstrap boots WebContainer)
11
11
  * - Future: Docker, SSH, etc.
12
12
  */
13
13
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sandboxxjs/core",
3
- "version": "2.0.1",
3
+ "version": "2.1.0",
4
4
  "description": "Core interfaces and runtime for sandboxxjs — unified sandbox lifecycle",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -17,10 +17,11 @@ import type {
17
17
  import type { SandboxProvider } from "./provider";
18
18
 
19
19
  export function createSandboxClient(provider: SandboxProvider): SandboxClient {
20
- const executor = provider.createExecutor();
21
- const fs = provider.createFileSystem();
22
- const pm = provider.createProcessManager();
20
+ const bootstrap = provider.createBootstrap();
23
21
 
22
+ let executor: ReturnType<SandboxProvider["createExecutor"]>;
23
+ let fs: ReturnType<SandboxProvider["createFileSystem"]>;
24
+ let pm: ReturnType<SandboxProvider["createProcessManager"]>;
24
25
  let ws: WebSocket | null = null;
25
26
  let heartbeatTimer: ReturnType<typeof setInterval> | null = null;
26
27
  let isConnected = false;
@@ -28,6 +29,14 @@ export function createSandboxClient(provider: SandboxProvider): SandboxClient {
28
29
  async function connect(options: SandboxClientOptions): Promise<void> {
29
30
  const { wsUrl, sandboxId, token, heartbeatInterval = 30_000 } = options;
30
31
 
32
+ // Step 2: Prepare — boot the sandbox environment
33
+ await bootstrap.boot();
34
+
35
+ // Create components after bootstrap (environment is now ready)
36
+ executor = provider.createExecutor();
37
+ fs = provider.createFileSystem();
38
+ pm = provider.createProcessManager();
39
+
31
40
  return new Promise((resolve, reject) => {
32
41
  ws = new WebSocket(wsUrl);
33
42
 
package/src/index.ts CHANGED
@@ -31,6 +31,7 @@ export type { SandboxClient, SandboxClientOptions } from "./client";
31
31
  export { createSandboxClient } from "./create-client";
32
32
  // Provider — Platform capability injection
33
33
  export type {
34
+ SandboxBootstrap,
34
35
  SandboxExecutor,
35
36
  SandboxFileSystem,
36
37
  SandboxProcessManager,
package/src/provider.ts CHANGED
@@ -2,17 +2,28 @@
2
2
  * SandboxProvider — platform capability injection.
3
3
  *
4
4
  * Provider is a component factory that supplies platform-specific
5
- * implementations of Executor, FileSystem, and ProcessManager.
5
+ * implementations of Bootstrap, Executor, FileSystem, and ProcessManager.
6
6
  *
7
7
  * The core layer (createSandboxClient) only depends on this interface.
8
8
  * Platform differences are isolated in provider implementations:
9
- * - node-provider: child_process + node:fs
10
- * - web-provider: @webcontainer/api
9
+ * - node-provider: child_process + node:fs (bootstrap is no-op)
10
+ * - web-provider: @webcontainer/api (bootstrap boots WebContainer)
11
11
  * - Future: Docker, SSH, etc.
12
12
  */
13
13
 
14
14
  import type { ExecOptions, ExecResult, FileInfo, ProcessInfo } from "./sandbox";
15
15
 
16
+ /**
17
+ * Bootstrap component — Step 2: Prepare.
18
+ *
19
+ * Initializes the sandbox environment before other components can work.
20
+ * For cloud containers this is a no-op (container is already running).
21
+ * For WebContainer this boots the runtime in the browser.
22
+ */
23
+ export interface SandboxBootstrap {
24
+ boot(): Promise<void>;
25
+ }
26
+
16
27
  /**
17
28
  * Command execution component.
18
29
  */
@@ -44,10 +55,11 @@ export interface SandboxProcessManager {
44
55
  * SandboxProvider — the component factory.
45
56
  *
46
57
  * Each platform implements this interface to provide its components.
47
- * createSandboxClient(provider) obtains components and dispatches
48
- * incoming messages to the appropriate component.
58
+ * createSandboxClient(provider) calls bootstrap.boot() first,
59
+ * then obtains other components and dispatches incoming messages.
49
60
  */
50
61
  export interface SandboxProvider {
62
+ createBootstrap(): SandboxBootstrap;
51
63
  createExecutor(): SandboxExecutor;
52
64
  createFileSystem(): SandboxFileSystem;
53
65
  createProcessManager(): SandboxProcessManager;