sandbox0 0.9.1 → 0.9.3

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.
Files changed (62) hide show
  1. package/README.md +31 -0
  2. package/dist/apispec/src/apis/QuotasApi.d.ts +9 -1
  3. package/dist/apispec/src/apis/QuotasApi.d.ts.map +1 -1
  4. package/dist/apispec/src/apis/QuotasApi.js +30 -1
  5. package/dist/apispec/src/apis/TemplatesApi.d.ts +15 -1
  6. package/dist/apispec/src/apis/TemplatesApi.d.ts.map +1 -1
  7. package/dist/apispec/src/apis/TemplatesApi.js +40 -1
  8. package/dist/apispec/src/models/ApiV1QuotasGet200Response.d.ts +40 -0
  9. package/dist/apispec/src/models/ApiV1QuotasGet200Response.d.ts.map +1 -0
  10. package/dist/apispec/src/models/ApiV1QuotasGet200Response.js +46 -0
  11. package/dist/apispec/src/models/QuotaDimension.d.ts +3 -2
  12. package/dist/apispec/src/models/QuotaDimension.d.ts.map +1 -1
  13. package/dist/apispec/src/models/QuotaDimension.js +3 -2
  14. package/dist/apispec/src/models/SandboxRuntimeMetricUnit.d.ts +7 -7
  15. package/dist/apispec/src/models/SandboxRuntimeMetricUnit.js +7 -7
  16. package/dist/apispec/src/models/SandboxTemplateStatus.d.ts +7 -0
  17. package/dist/apispec/src/models/SandboxTemplateStatus.d.ts.map +1 -1
  18. package/dist/apispec/src/models/SandboxTemplateStatus.js +3 -0
  19. package/dist/apispec/src/models/SandboxVolume.d.ts +12 -0
  20. package/dist/apispec/src/models/SandboxVolume.d.ts.map +1 -1
  21. package/dist/apispec/src/models/SandboxVolume.js +4 -0
  22. package/dist/apispec/src/models/TeamQuota.d.ts +48 -6
  23. package/dist/apispec/src/models/TeamQuota.d.ts.map +1 -1
  24. package/dist/apispec/src/models/TeamQuota.js +37 -5
  25. package/dist/apispec/src/models/TemplateCreationStatus.d.ts +99 -0
  26. package/dist/apispec/src/models/TemplateCreationStatus.d.ts.map +1 -0
  27. package/dist/apispec/src/models/TemplateCreationStatus.js +75 -0
  28. package/dist/apispec/src/models/TemplateFromSandboxCreateRequest.d.ts +46 -0
  29. package/dist/apispec/src/models/TemplateFromSandboxCreateRequest.d.ts.map +1 -0
  30. package/dist/apispec/src/models/TemplateFromSandboxCreateRequest.js +50 -0
  31. package/dist/apispec/src/models/TemplateFromSandboxSpecOverrides.d.ts +55 -0
  32. package/dist/apispec/src/models/TemplateFromSandboxSpecOverrides.d.ts.map +1 -0
  33. package/dist/apispec/src/models/TemplateFromSandboxSpecOverrides.js +48 -0
  34. package/dist/apispec/src/models/index.d.ts +4 -0
  35. package/dist/apispec/src/models/index.d.ts.map +1 -1
  36. package/dist/apispec/src/models/index.js +4 -0
  37. package/dist/client.d.ts +3 -0
  38. package/dist/client.d.ts.map +1 -1
  39. package/dist/client.js +4 -0
  40. package/dist/errors.d.ts +18 -1
  41. package/dist/errors.d.ts.map +1 -1
  42. package/dist/errors.js +28 -0
  43. package/dist/index.d.ts +35 -1
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +5 -1
  46. package/dist/models.d.ts +14 -0
  47. package/dist/models.d.ts.map +1 -1
  48. package/dist/resources/quotas.d.ts +9 -0
  49. package/dist/resources/quotas.d.ts.map +1 -0
  50. package/dist/resources/quotas.js +16 -0
  51. package/dist/resources/sandboxes.d.ts.map +1 -1
  52. package/dist/resources/sandboxes.js +7 -59
  53. package/dist/resources/templates.d.ts +5 -1
  54. package/dist/resources/templates.d.ts.map +1 -1
  55. package/dist/resources/templates.js +50 -3
  56. package/dist/template_helpers.d.ts +2 -1
  57. package/dist/template_helpers.d.ts.map +1 -1
  58. package/dist/template_helpers.js +7 -0
  59. package/dist/wait.d.ts +4 -0
  60. package/dist/wait.d.ts.map +1 -0
  61. package/dist/wait.js +52 -0
  62. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAGzE,eAAO,MAAM,0BAA0B,0BAA0B,CAAC;AAElE,qBAAa,QAAS,SAAQ,KAAK;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;gBAER,MAAM,EAAE;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB;CAUF;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;gBAEnB,MAAM,EAAE;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB;CAOF;AAuBD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAIvE;AAED,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAkChF;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CASrE"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAiB,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAGnF,eAAO,MAAM,0BAA0B,0BAA0B,CAAC;AAElE,qBAAa,QAAS,SAAQ,KAAK;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;gBAER,MAAM,EAAE;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB;CAUF;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;gBAEnB,MAAM,EAAE;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,OAAO,CAAC;KACvB;CAOF;AAED,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC;gBAErB,MAAM,EAAE;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,QAAQ,CAAC;KACzB;CAOF;AAED,qBAAa,2BAA4B,SAAQ,KAAK;IACpD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;gBAEpB,QAAQ,EAAE,QAAQ;CAU/B;AAuBD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAIvE;AAED,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAkChF;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CASrE"}
package/dist/errors.js CHANGED
@@ -30,6 +30,34 @@ export class SandboxWaitTimeoutError extends Error {
30
30
  this.lastSandbox = params.lastSandbox;
31
31
  }
32
32
  }
33
+ export class TemplateWaitTimeoutError extends Error {
34
+ templateId;
35
+ timeoutMs;
36
+ lastTemplate;
37
+ constructor(params) {
38
+ super(`timed out waiting for template ${params.templateId} after ${params.timeoutMs}ms`);
39
+ this.name = "TemplateWaitTimeoutError";
40
+ this.templateId = params.templateId;
41
+ this.timeoutMs = params.timeoutMs;
42
+ this.lastTemplate = params.lastTemplate;
43
+ }
44
+ }
45
+ export class TemplateCreationFailedError extends Error {
46
+ templateId;
47
+ stage;
48
+ reason;
49
+ lastTemplate;
50
+ constructor(template) {
51
+ const creation = template.status?.creation;
52
+ const detail = creation?.message ?? creation?.reason ?? "template creation failed";
53
+ super(`template ${template.templateId} creation failed: ${detail}`);
54
+ this.name = "TemplateCreationFailedError";
55
+ this.templateId = template.templateId;
56
+ this.stage = creation?.stage;
57
+ this.reason = creation?.reason;
58
+ this.lastTemplate = template;
59
+ }
60
+ }
33
61
  function getRequestId(response) {
34
62
  return (response.headers.get("x-request-id") ??
35
63
  response.headers.get("x-requestid") ??
package/dist/index.d.ts CHANGED
@@ -1,6 +1,8 @@
1
+ import type { QuotaDimension as GeneratedQuotaDimension } from "./apispec/src/models/QuotaDimension.js";
2
+ import type { TeamQuota as GeneratedTeamQuota, TeamQuotaKindEnum as GeneratedTeamQuotaKindEnum, TeamQuotaSourceEnum as GeneratedTeamQuotaSourceEnum, TeamQuotaUnitEnum as GeneratedTeamQuotaUnitEnum } from "./apispec/src/models/TeamQuota.js";
1
3
  export { Client, type ClientOptions, DEFAULT_BASE_URL } from "./client.js";
2
4
  export { Sandbox } from "./sandbox.js";
3
- export { APIError, SandboxWaitTimeoutError } from "./errors.js";
5
+ export { APIError, SandboxWaitTimeoutError, TemplateCreationFailedError, TemplateWaitTimeoutError, } from "./errors.js";
4
6
  export { verifyWebhookSignature } from "./webhook_signature.js";
5
7
  export * from "./template_helpers.js";
6
8
  export * from "./models.js";
@@ -14,6 +16,38 @@ import "./sandbox_network.js";
14
16
  import "./sandbox_services.js";
15
17
  import "./sandbox_observability.js";
16
18
  import "./sandbox_sessions.js";
19
+ export declare const QuotaDimension: {
20
+ readonly ActiveSandboxes: "active_sandboxes";
21
+ readonly CpuMillicpu: "cpu_millicpu";
22
+ readonly MemoryMib: "memory_mib";
23
+ readonly VolumeStorageGb: "volume_storage_gb";
24
+ readonly SnapshotStorageGb: "snapshot_storage_gb";
25
+ readonly ApiRequests: "api_requests";
26
+ readonly NetworkEgressBytes: "network_egress_bytes";
27
+ readonly NetworkIngressBytes: "network_ingress_bytes";
28
+ };
29
+ export declare const TeamQuotaKindEnum: {
30
+ readonly TeamQuotaKindCapacity: "capacity";
31
+ readonly TeamQuotaKindRate: "rate";
32
+ };
33
+ export declare const TeamQuotaSourceEnum: {
34
+ readonly TeamQuotaSourceTeamOverride: "team_override";
35
+ readonly TeamQuotaSourceRegionDefault: "region_default";
36
+ readonly TeamQuotaSourceUnlimited: "unlimited";
37
+ };
38
+ export declare const TeamQuotaUnitEnum: {
39
+ readonly TeamQuotaUnitCount: "count";
40
+ readonly TeamQuotaUnitMillicpu: "millicpu";
41
+ readonly TeamQuotaUnitMiB: "MiB";
42
+ readonly TeamQuotaUnitGB: "GB";
43
+ readonly TeamQuotaUnitRequests: "requests";
44
+ readonly TeamQuotaUnitBytes: "bytes";
45
+ };
46
+ export type QuotaDimension = GeneratedQuotaDimension;
47
+ export type TeamQuota = GeneratedTeamQuota;
48
+ export type TeamQuotaKindEnum = GeneratedTeamQuotaKindEnum;
49
+ export type TeamQuotaSourceEnum = GeneratedTeamQuotaSourceEnum;
50
+ export type TeamQuotaUnitEnum = GeneratedTeamQuotaUnitEnum;
17
51
  export declare const SandboxRuntimeMetricName: {
18
52
  readonly SandboxCpuUtilization: "sandbox.cpu.utilization";
19
53
  readonly SandboxCpuUsage: "sandbox.cpu.usage";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAE5C,OAAO,oBAAoB,CAAC;AAC5B,OAAO,iBAAiB,CAAC;AACzB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,yBAAyB,CAAC;AACjC,OAAO,oBAAoB,CAAC;AAE5B,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;CAA2C,CAAC;AACjF,eAAO,MAAM,6BAA6B;;;;;;;CAAgD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,IAAI,uBAAuB,EAC1C,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EACV,SAAS,IAAI,kBAAkB,EAC/B,iBAAiB,IAAI,0BAA0B,EAC/C,mBAAmB,IAAI,4BAA4B,EACnD,iBAAiB,IAAI,0BAA0B,EAChD,MAAM,gCAAgC,CAAC;AAExC,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EACL,QAAQ,EACR,uBAAuB,EACvB,2BAA2B,EAC3B,wBAAwB,GACzB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,OAAO,MAAM,kBAAkB,CAAC;AAE5C,OAAO,oBAAoB,CAAC;AAC5B,OAAO,iBAAiB,CAAC;AACzB,OAAO,mBAAmB,CAAC;AAC3B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,yBAAyB,CAAC;AACjC,OAAO,oBAAoB,CAAC;AAE5B,eAAO,MAAM,cAAc;;;;;;;;;CAAiC,CAAC;AAC7D,eAAO,MAAM,iBAAiB;;;CAAoC,CAAC;AACnE,eAAO,MAAM,mBAAmB;;;;CAAsC,CAAC;AACvE,eAAO,MAAM,iBAAiB;;;;;;;CAAoC,CAAC;AACnE,MAAM,MAAM,cAAc,GAAG,uBAAuB,CAAC;AACrD,MAAM,MAAM,SAAS,GAAG,kBAAkB,CAAC;AAC3C,MAAM,MAAM,iBAAiB,GAAG,0BAA0B,CAAC;AAC3D,MAAM,MAAM,mBAAmB,GAAG,4BAA4B,CAAC;AAC/D,MAAM,MAAM,iBAAiB,GAAG,0BAA0B,CAAC;AAC3D,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;CAA2C,CAAC;AACjF,eAAO,MAAM,6BAA6B;;;;;;;CAAgD,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  export { Client, DEFAULT_BASE_URL } from "./client.js";
2
2
  export { Sandbox } from "./sandbox.js";
3
- export { APIError, SandboxWaitTimeoutError } from "./errors.js";
3
+ export { APIError, SandboxWaitTimeoutError, TemplateCreationFailedError, TemplateWaitTimeoutError, } from "./errors.js";
4
4
  export { verifyWebhookSignature } from "./webhook_signature.js";
5
5
  export * from "./template_helpers.js";
6
6
  export * from "./models.js";
@@ -15,5 +15,9 @@ import "./sandbox_network.js";
15
15
  import "./sandbox_services.js";
16
16
  import "./sandbox_observability.js";
17
17
  import "./sandbox_sessions.js";
18
+ export const QuotaDimension = generatedModels.QuotaDimension;
19
+ export const TeamQuotaKindEnum = generatedModels.TeamQuotaKindEnum;
20
+ export const TeamQuotaSourceEnum = generatedModels.TeamQuotaSourceEnum;
21
+ export const TeamQuotaUnitEnum = generatedModels.TeamQuotaUnitEnum;
18
22
  export const SandboxRuntimeMetricName = generatedModels.SandboxRuntimeMetricName;
19
23
  export const SandboxRuntimeMetricStatistic = generatedModels.SandboxRuntimeMetricStatistic;
package/dist/models.d.ts CHANGED
@@ -158,4 +158,18 @@ export interface SandboxLifecycleWaitOptions {
158
158
  signal?: AbortSignal;
159
159
  }
160
160
  export type SandboxLifecyclePredicate = (sandbox: Sandbox) => boolean | Promise<boolean>;
161
+ export interface TemplateWaitOptions {
162
+ /** Maximum polling duration. Defaults to 10 minutes. */
163
+ timeoutMs?: number;
164
+ /** Delay between observations. Defaults to 500 milliseconds. */
165
+ pollIntervalMs?: number;
166
+ /** Stops waiting locally. It does not cancel template creation on the server. */
167
+ signal?: AbortSignal;
168
+ }
169
+ export interface CreateTemplateFromSandboxOptions extends TemplateWaitOptions {
170
+ /** Allows a create request to be retried without creating a duplicate template. */
171
+ idempotencyKey?: string;
172
+ /** Wait for the returned template to become ready. Defaults to false. */
173
+ wait?: boolean;
174
+ }
161
175
  //# sourceMappingURL=models.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../src/models.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,qBAAqB,EACrB,qBAAqB,EACrB,6BAA6B,EAC7B,kCAAkC,EAClC,6BAA6B,EAC7B,gCAAgC,EAChC,2BAA2B,EAC3B,6BAA6B,EAC7B,wBAAwB,EACxB,6BAA6B,EAC7B,oCAAoC,EACpC,6BAA6B,EAC7B,qBAAqB,EACrB,gCAAgC,EAChC,OAAO,EACP,cAAc,EACf,MAAM,4BAA4B,CAAC;AAEpC,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE5D,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,qBAAqB,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gCAAgC;IAC/C,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,gCAAgC,GAAG,IAAI,CACjD,gCAAgC,EAChC,SAAS,CACV,CAAC;AAEF,MAAM,WAAW,gCAAiC,SAAQ,gCAAgC;IACxF,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAClC,SAAS,CAAC,EAAE,6BAA6B,CAAC;IAC1C,OAAO,CAAC,EAAE,2BAA2B,CAAC;IACtC,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qCACf,SAAQ,gCAAgC;IACxC,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAClC,SAAS,CAAC,EAAE,6BAA6B,CAAC;IAC1C,OAAO,CAAC,EAAE,2BAA2B,CAAC;IACtC,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,8BAA+B,SAAQ,gCAAgC;IACtF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,6BAA6B,CAAC;CACxC;AAED,MAAM,WAAW,mCACf,SAAQ,gCAAgC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,6BAA6B,CAAC;CACxC;AAED,MAAM,WAAW,qBAAqB;IACpC,2CAA2C;IAC3C,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,oCAAoC;IACpC,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,gDAAgD;IAChD,OAAO,CAAC,EAAE,SAAS,wBAAwB,EAAE,CAAC;IAC9C,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,6BAA6B,CAAC;IAC1C,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,+BACf,SAAQ,aAAa,CAAC,6BAA6B,CAAC;IACpD,IAAI,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACjC,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,kFAAkF;IAClF,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,yBAAyB;IACxC,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,uBAAuB;IACtC,mFAAmF;IACnF,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,OAAO,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAmB,SAAQ,aAAa,CAAC,qBAAqB,CAAC;IAC9E,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,MAAM,MAAM,qBAAqB,GAAG,gCAAgC,CAAC;AAErE,MAAM,MAAM,0BAA0B,GAAG,kCAAkC,CAAC;AAC5E,MAAM,MAAM,wBAAwB,GAAG,gCAAgC,CAAC;AACxE,MAAM,MAAM,cAAc,GAAG,6BAA6B,CAAC;AAC3D,MAAM,MAAM,qBAAqB,GAAG,oCAAoC,CAAC;AAEzE,MAAM,MAAM,mBAAmB,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;AAE3D,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,2BAA2B;IAC1C,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uGAAuG;IACvG,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,MAAM,yBAAyB,GAAG,CACtC,OAAO,EAAE,OAAO,KACb,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAEhC,MAAM,WAAW,mBAAmB;IAClC,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gEAAgE;IAChE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,iFAAiF;IACjF,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,gCAAiC,SAAQ,mBAAmB;IAC3E,mFAAmF;IACnF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yEAAyE;IACzE,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB"}
@@ -0,0 +1,9 @@
1
+ import type { QuotaDimension, TeamQuota } from "../apispec/src/models/index.js";
2
+ import type { Client } from "../client.js";
3
+ export declare class Quotas {
4
+ private readonly client;
5
+ constructor(client: Client);
6
+ list(): Promise<TeamQuota[]>;
7
+ get(dimension: QuotaDimension): Promise<TeamQuota>;
8
+ }
9
+ //# sourceMappingURL=quotas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quotas.d.ts","sourceRoot":"","sources":["../../src/resources/quotas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,SAAS,EACV,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAIxC,qBAAa,MAAM;IACL,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAErC,IAAI,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAO5B,GAAG,CAAC,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC;CAMzD"}
@@ -0,0 +1,16 @@
1
+ import { wrapApiCall } from "../errors.js";
2
+ import { ensureData } from "../response.js";
3
+ export class Quotas {
4
+ client;
5
+ constructor(client) {
6
+ this.client = client;
7
+ }
8
+ async list() {
9
+ const response = await wrapApiCall(() => this.client.apispec.quotas.apiV1QuotasGet());
10
+ return ensureData(response, "list team quotas returned empty response");
11
+ }
12
+ async get(dimension) {
13
+ const response = await wrapApiCall(() => this.client.apispec.quotas.apiV1QuotasDimensionGet({ dimension }));
14
+ return ensureData(response, "get team quota returned empty response");
15
+ }
16
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"sandboxes.d.ts","sourceRoot":"","sources":["../../src/resources/sandboxes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sandboxes.d.ts","sourceRoot":"","sources":["../../src/resources/sandboxes.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { ensureData, ensureModel } from "../response.js";
2
2
  import { SandboxWaitTimeoutError, wrapApiCall } from "../errors.js";
3
3
  import { Sandbox as SandboxHandle } from "../sandbox.js";
4
4
  import { SandboxSession } from "../sessions.js";
5
+ import { sleepWithSignal, throwIfAborted, validateWaitDuration, } from "../wait.js";
5
6
  const DEFAULT_LIFECYCLE_TIMEOUT_MS = 60_000;
6
7
  const DEFAULT_LIFECYCLE_POLL_INTERVAL_MS = 500;
7
8
  function isClaimSandboxOptions(value) {
@@ -96,9 +97,9 @@ export class Sandboxes {
96
97
  const startedAt = Date.now();
97
98
  let lastSandbox;
98
99
  while (true) {
99
- throwIfAborted(options.signal);
100
+ throwIfAborted(options.signal, "sandbox lifecycle wait was aborted");
100
101
  lastSandbox = await this.getWithSignal(sandboxId, options.signal);
101
- throwIfAborted(options.signal);
102
+ throwIfAborted(options.signal, "sandbox lifecycle wait was aborted");
102
103
  if (await predicate(lastSandbox)) {
103
104
  return lastSandbox;
104
105
  }
@@ -106,7 +107,7 @@ export class Sandboxes {
106
107
  if (remainingMs <= 0) {
107
108
  throw new SandboxWaitTimeoutError({ sandboxId, timeoutMs, lastSandbox });
108
109
  }
109
- await sleepWithSignal(Math.min(pollIntervalMs, remainingMs), options.signal);
110
+ await sleepWithSignal(Math.min(pollIntervalMs, remainingMs), options.signal, "sandbox lifecycle wait was aborted");
110
111
  }
111
112
  }
112
113
  async update(sandboxId, request) {
@@ -137,7 +138,7 @@ export class Sandboxes {
137
138
  }
138
139
  /** Requests a pause and waits for its durable checkpoint to commit. */
139
140
  async pauseAndWait(sandboxId, options) {
140
- throwIfAborted(options?.signal);
141
+ throwIfAborted(options?.signal, "sandbox lifecycle wait was aborted");
141
142
  await this.pause(sandboxId);
142
143
  return this.waitForLifecycle(sandboxId, (sandbox) => sandbox.status === "paused" && sandbox.paused, options);
143
144
  }
@@ -147,9 +148,9 @@ export class Sandboxes {
147
148
  }
148
149
  /** Requests a resume and waits for the committed running generation. */
149
150
  async resumeAndWait(sandboxId, options) {
150
- throwIfAborted(options?.signal);
151
+ throwIfAborted(options?.signal, "sandbox lifecycle wait was aborted");
151
152
  const before = await this.getWithSignal(sandboxId, options?.signal);
152
- throwIfAborted(options?.signal);
153
+ throwIfAborted(options?.signal, "sandbox lifecycle wait was aborted");
153
154
  await this.resume(sandboxId);
154
155
  const minimumRuntimeGeneration = before.paused || before.status === "paused"
155
156
  ? before.runtimeGeneration + 1
@@ -207,56 +208,3 @@ export class Sandboxes {
207
208
  return new SandboxHandle({ id: sandboxId, client: this.client });
208
209
  }
209
210
  }
210
- function validateWaitDuration(name, value, allowZero) {
211
- if (!Number.isFinite(value) || (allowZero ? value < 0 : value <= 0)) {
212
- const requirement = allowZero ? "a finite number >= 0" : "a finite number > 0";
213
- throw new RangeError(`${name} must be ${requirement}`);
214
- }
215
- }
216
- function throwIfAborted(signal) {
217
- if (!signal?.aborted) {
218
- return;
219
- }
220
- throw abortReason(signal);
221
- }
222
- function abortReason(signal) {
223
- if (signal.reason !== undefined) {
224
- return signal.reason;
225
- }
226
- const error = new Error("sandbox lifecycle wait was aborted");
227
- error.name = "AbortError";
228
- return error;
229
- }
230
- function sleepWithSignal(durationMs, signal) {
231
- return new Promise((resolve, reject) => {
232
- if (signal?.aborted) {
233
- reject(abortReason(signal));
234
- return;
235
- }
236
- let settled = false;
237
- let timer;
238
- const onAbort = () => {
239
- if (settled) {
240
- return;
241
- }
242
- settled = true;
243
- if (timer !== undefined) {
244
- clearTimeout(timer);
245
- }
246
- signal?.removeEventListener("abort", onAbort);
247
- reject(signal ? abortReason(signal) : new Error("sandbox lifecycle wait was aborted"));
248
- };
249
- timer = setTimeout(() => {
250
- if (settled) {
251
- return;
252
- }
253
- settled = true;
254
- signal?.removeEventListener("abort", onAbort);
255
- resolve();
256
- }, durationMs);
257
- signal?.addEventListener("abort", onAbort, { once: true });
258
- if (signal?.aborted) {
259
- onAbort();
260
- }
261
- });
262
- }
@@ -1,4 +1,5 @@
1
- import type { Template, TemplateCreateRequest, TemplateUpdateRequest, SuccessMessageResponse } from "../apispec/src/models/index.js";
1
+ import type { Template, TemplateCreateRequest, TemplateFromSandboxCreateRequest, TemplateUpdateRequest, SuccessMessageResponse } from "../apispec/src/models/index.js";
2
+ import type { CreateTemplateFromSandboxOptions, TemplateWaitOptions } from "../models.js";
2
3
  import type { Client } from "../client.js";
3
4
  export declare class Templates {
4
5
  private readonly client;
@@ -7,7 +8,10 @@ export declare class Templates {
7
8
  listTemplate(): Promise<Template[]>;
8
9
  get(templateId: string): Promise<Template>;
9
10
  create(request: TemplateCreateRequest): Promise<Template>;
11
+ createFromSandbox(request: TemplateFromSandboxCreateRequest, options?: CreateTemplateFromSandboxOptions): Promise<Template>;
12
+ waitUntilReady(templateId: string, options?: TemplateWaitOptions): Promise<Template>;
10
13
  update(templateId: string, request: TemplateUpdateRequest): Promise<Template>;
11
14
  delete(templateId: string): Promise<SuccessMessageResponse>;
15
+ private getWithSignal;
12
16
  }
13
17
  //# sourceMappingURL=templates.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/resources/templates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,qBAAa,SAAS;IACR,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAErC,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAS3B,YAAY,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAInC,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAO1C,MAAM,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC;IASzD,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAU7E,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAMlE"}
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/resources/templates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,qBAAqB,EACrB,gCAAgC,EAChC,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,6BAA6B,CAAC;AACrC,OAAO,KAAK,EACV,gCAAgC,EAChC,mBAAmB,EACpB,MAAM,WAAW,CAAC;AAOnB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAWxC,qBAAa,SAAS;IACR,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAErC,IAAI,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAS3B,YAAY,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAInC,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAI1C,MAAM,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC;IASzD,iBAAiB,CACrB,OAAO,EAAE,gCAAgC,EACzC,OAAO,GAAE,gCAAqC,GAC7C,OAAO,CAAC,QAAQ,CAAC;IAqBd,cAAc,CAClB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,QAAQ,CAAC;IAsCd,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAU7E,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;YAOnD,aAAa;CAY5B"}
@@ -1,5 +1,9 @@
1
1
  import { ensureData, ensureModel } from "../response.js";
2
- import { wrapApiCall } from "../errors.js";
2
+ import { TemplateCreationFailedError, TemplateWaitTimeoutError, wrapApiCall, } from "../errors.js";
3
+ import { sleepWithSignal, throwIfAborted, validateWaitDuration, } from "../wait.js";
4
+ const DEFAULT_TEMPLATE_TIMEOUT_MS = 10 * 60_000;
5
+ const DEFAULT_TEMPLATE_POLL_INTERVAL_MS = 500;
6
+ const TEMPLATE_WAIT_ABORT_MESSAGE = "template readiness wait was aborted";
3
7
  export class Templates {
4
8
  client;
5
9
  constructor(client) {
@@ -15,8 +19,7 @@ export class Templates {
15
19
  return this.list();
16
20
  }
17
21
  async get(templateId) {
18
- const response = await wrapApiCall(() => this.client.apispec.templates.apiV1TemplatesIdGet({ id: templateId }));
19
- return ensureData(response, "get template returned empty response");
22
+ return this.getWithSignal(templateId);
20
23
  }
21
24
  async create(request) {
22
25
  const response = await wrapApiCall(() => this.client.apispec.templates.apiV1TemplatesPost({
@@ -24,6 +27,46 @@ export class Templates {
24
27
  }));
25
28
  return ensureData(response, "create template returned empty response");
26
29
  }
30
+ async createFromSandbox(request, options = {}) {
31
+ throwIfAborted(options.signal, TEMPLATE_WAIT_ABORT_MESSAGE);
32
+ const response = await wrapApiCall(() => this.client.apispec.templates.apiV1TemplatesFromSandboxPost({
33
+ templateFromSandboxCreateRequest: request,
34
+ idempotencyKey: options.idempotencyKey,
35
+ }, options.signal ? { signal: options.signal } : undefined));
36
+ const template = ensureData(response, "create template from sandbox returned empty response");
37
+ if (!options.wait) {
38
+ return template;
39
+ }
40
+ return this.waitUntilReady(template.templateId, options);
41
+ }
42
+ async waitUntilReady(templateId, options = {}) {
43
+ const timeoutMs = options.timeoutMs ?? DEFAULT_TEMPLATE_TIMEOUT_MS;
44
+ const pollIntervalMs = options.pollIntervalMs ?? DEFAULT_TEMPLATE_POLL_INTERVAL_MS;
45
+ validateWaitDuration("timeoutMs", timeoutMs, true);
46
+ validateWaitDuration("pollIntervalMs", pollIntervalMs, false);
47
+ const startedAt = Date.now();
48
+ let lastTemplate;
49
+ while (true) {
50
+ throwIfAborted(options.signal, TEMPLATE_WAIT_ABORT_MESSAGE);
51
+ lastTemplate = await this.getWithSignal(templateId, options.signal);
52
+ throwIfAborted(options.signal, TEMPLATE_WAIT_ABORT_MESSAGE);
53
+ const creation = lastTemplate.status?.creation;
54
+ if (!creation || creation.state === "ready") {
55
+ return lastTemplate;
56
+ }
57
+ if (creation.state === "failed") {
58
+ throw new TemplateCreationFailedError(lastTemplate);
59
+ }
60
+ if (creation.state !== "creating") {
61
+ throw new Error(`template ${templateId} has unknown creation state ${String(creation.state)}`);
62
+ }
63
+ const remainingMs = timeoutMs - (Date.now() - startedAt);
64
+ if (remainingMs <= 0) {
65
+ throw new TemplateWaitTimeoutError({ templateId, timeoutMs, lastTemplate });
66
+ }
67
+ await sleepWithSignal(Math.min(pollIntervalMs, remainingMs), options.signal, TEMPLATE_WAIT_ABORT_MESSAGE);
68
+ }
69
+ }
27
70
  async update(templateId, request) {
28
71
  const response = await wrapApiCall(() => this.client.apispec.templates.apiV1TemplatesIdPut({
29
72
  id: templateId,
@@ -35,4 +78,8 @@ export class Templates {
35
78
  const response = await wrapApiCall(() => this.client.apispec.templates.apiV1TemplatesIdDelete({ id: templateId }));
36
79
  return ensureModel(response, "delete template returned empty response");
37
80
  }
81
+ async getWithSignal(templateId, signal) {
82
+ const response = await wrapApiCall(() => this.client.apispec.templates.apiV1TemplatesIdGet({ id: templateId }, signal ? { signal } : undefined));
83
+ return ensureData(response, "get template returned empty response");
84
+ }
38
85
  }
@@ -1,4 +1,4 @@
1
- import type { ContainerSpec, EnvVar, PoolStrategy, ResourceQuota, SandboxNetworkPolicy, SandboxTemplateSpec, TemplateCreateRequest, TemplateUpdateRequest } from "./apispec/src/models/index.js";
1
+ import type { ContainerSpec, EnvVar, PoolStrategy, ResourceQuota, SandboxNetworkPolicy, SandboxTemplateSpec, TemplateCreateRequest, TemplateFromSandboxCreateRequest, TemplateFromSandboxSpecOverrides, TemplateUpdateRequest } from "./apispec/src/models/index.js";
2
2
  export interface TemplateSpecInit {
3
3
  description?: string;
4
4
  displayName?: string;
@@ -18,5 +18,6 @@ export declare function resources(memory: string): ResourceQuota;
18
18
  export declare function container(image: string, containerResources: ResourceQuota, init?: ContainerInit): ContainerSpec;
19
19
  export declare function templateSpec(mainContainer: ContainerSpec, init?: TemplateSpecInit): SandboxTemplateSpec;
20
20
  export declare function templateCreateRequest(templateId: string, spec: SandboxTemplateSpec): TemplateCreateRequest;
21
+ export declare function templateFromSandboxCreateRequest(templateId: string, sandboxId: string, specOverrides?: TemplateFromSandboxSpecOverrides): TemplateFromSandboxCreateRequest;
21
22
  export declare function templateUpdateRequest(spec: SandboxTemplateSpec): TemplateUpdateRequest;
22
23
  //# sourceMappingURL=template_helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"template_helpers.d.ts","sourceRoot":"","sources":["../src/template_helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,MAAM,EACN,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACtB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,eAAe,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;CACpD;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAEvD;AAED,wBAAgB,SAAS,CACvB,KAAK,EAAE,MAAM,EACb,kBAAkB,EAAE,aAAa,EACjC,IAAI,GAAE,aAAkB,GACvB,aAAa,CAQf;AAED,wBAAgB,YAAY,CAC1B,aAAa,EAAE,aAAa,EAC5B,IAAI,GAAE,gBAAqB,GAC1B,mBAAmB,CAYrB;AAED,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,mBAAmB,GACxB,qBAAqB,CAEvB;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,GAAG,qBAAqB,CAEtF"}
1
+ {"version":3,"file":"template_helpers.d.ts","sourceRoot":"","sources":["../src/template_helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,MAAM,EACN,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,gCAAgC,EAChC,gCAAgC,EAChC,qBAAqB,EACtB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,GAAG,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,eAAe,CAAC,EAAE,aAAa,CAAC,iBAAiB,CAAC,CAAC;CACpD;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,CAEvD;AAED,wBAAgB,SAAS,CACvB,KAAK,EAAE,MAAM,EACb,kBAAkB,EAAE,aAAa,EACjC,IAAI,GAAE,aAAkB,GACvB,aAAa,CAQf;AAED,wBAAgB,YAAY,CAC1B,aAAa,EAAE,aAAa,EAC5B,IAAI,GAAE,gBAAqB,GAC1B,mBAAmB,CAYrB;AAED,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,mBAAmB,GACxB,qBAAqB,CAEvB;AAED,wBAAgB,gCAAgC,CAC9C,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,aAAa,CAAC,EAAE,gCAAgC,GAC/C,gCAAgC,CAMlC;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,mBAAmB,GAAG,qBAAqB,CAEtF"}
@@ -26,6 +26,13 @@ export function templateSpec(mainContainer, init = {}) {
26
26
  export function templateCreateRequest(templateId, spec) {
27
27
  return { templateId, spec };
28
28
  }
29
+ export function templateFromSandboxCreateRequest(templateId, sandboxId, specOverrides) {
30
+ return {
31
+ templateId,
32
+ sandboxId,
33
+ ...(specOverrides ? { specOverrides } : {}),
34
+ };
35
+ }
29
36
  export function templateUpdateRequest(spec) {
30
37
  return { spec };
31
38
  }
package/dist/wait.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ export declare function validateWaitDuration(name: string, value: number, allowZero: boolean): void;
2
+ export declare function throwIfAborted(signal: AbortSignal | undefined, fallbackMessage: string): void;
3
+ export declare function sleepWithSignal(durationMs: number, signal: AbortSignal | undefined, fallbackMessage: string): Promise<void>;
4
+ //# sourceMappingURL=wait.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wait.d.ts","sourceRoot":"","sources":["../src/wait.ts"],"names":[],"mappings":"AAAA,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,OAAO,GACjB,IAAI,CAKN;AAWD,wBAAgB,cAAc,CAC5B,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,eAAe,EAAE,MAAM,GACtB,IAAI,CAIN;AAED,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC,CAiCf"}
package/dist/wait.js ADDED
@@ -0,0 +1,52 @@
1
+ export function validateWaitDuration(name, value, allowZero) {
2
+ if (!Number.isFinite(value) || (allowZero ? value < 0 : value <= 0)) {
3
+ const requirement = allowZero ? "a finite number >= 0" : "a finite number > 0";
4
+ throw new RangeError(`${name} must be ${requirement}`);
5
+ }
6
+ }
7
+ function abortReason(signal, fallbackMessage) {
8
+ if (signal.reason !== undefined) {
9
+ return signal.reason;
10
+ }
11
+ const error = new Error(fallbackMessage);
12
+ error.name = "AbortError";
13
+ return error;
14
+ }
15
+ export function throwIfAborted(signal, fallbackMessage) {
16
+ if (signal?.aborted) {
17
+ throw abortReason(signal, fallbackMessage);
18
+ }
19
+ }
20
+ export function sleepWithSignal(durationMs, signal, fallbackMessage) {
21
+ return new Promise((resolve, reject) => {
22
+ if (signal?.aborted) {
23
+ reject(abortReason(signal, fallbackMessage));
24
+ return;
25
+ }
26
+ let settled = false;
27
+ let timer;
28
+ const onAbort = () => {
29
+ if (settled) {
30
+ return;
31
+ }
32
+ settled = true;
33
+ if (timer !== undefined) {
34
+ clearTimeout(timer);
35
+ }
36
+ signal?.removeEventListener("abort", onAbort);
37
+ reject(signal ? abortReason(signal, fallbackMessage) : new Error(fallbackMessage));
38
+ };
39
+ timer = setTimeout(() => {
40
+ if (settled) {
41
+ return;
42
+ }
43
+ settled = true;
44
+ signal?.removeEventListener("abort", onAbort);
45
+ resolve();
46
+ }, durationMs);
47
+ signal?.addEventListener("abort", onAbort, { once: true });
48
+ if (signal?.aborted) {
49
+ onAbort();
50
+ }
51
+ });
52
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sandbox0",
3
- "version": "0.9.1",
3
+ "version": "0.9.3",
4
4
  "description": "Sandbox0 JavaScript/TypeScript SDK",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Sandbox0 Team",