@onkernel/sdk 0.47.0 → 0.48.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.
Files changed (83) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/client.d.mts +6 -0
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +6 -0
  5. package/client.d.ts.map +1 -1
  6. package/client.js +6 -0
  7. package/client.js.map +1 -1
  8. package/client.mjs +6 -0
  9. package/client.mjs.map +1 -1
  10. package/internal/utils/env.js +2 -2
  11. package/internal/utils/env.js.map +1 -1
  12. package/internal/utils/env.mjs +2 -2
  13. package/internal/utils/env.mjs.map +1 -1
  14. package/package.json +1 -1
  15. package/resources/browser-pools.d.mts +4 -0
  16. package/resources/browser-pools.d.mts.map +1 -1
  17. package/resources/browser-pools.d.ts +4 -0
  18. package/resources/browser-pools.d.ts.map +1 -1
  19. package/resources/browsers/browsers.d.mts +16 -0
  20. package/resources/browsers/browsers.d.mts.map +1 -1
  21. package/resources/browsers/browsers.d.ts +16 -0
  22. package/resources/browsers/browsers.d.ts.map +1 -1
  23. package/resources/browsers/browsers.js.map +1 -1
  24. package/resources/browsers/browsers.mjs.map +1 -1
  25. package/resources/index.d.mts +1 -0
  26. package/resources/index.d.mts.map +1 -1
  27. package/resources/index.d.ts +1 -0
  28. package/resources/index.d.ts.map +1 -1
  29. package/resources/index.js +3 -1
  30. package/resources/index.js.map +1 -1
  31. package/resources/index.mjs +1 -0
  32. package/resources/index.mjs.map +1 -1
  33. package/resources/invocations.d.mts +4 -0
  34. package/resources/invocations.d.mts.map +1 -1
  35. package/resources/invocations.d.ts +4 -0
  36. package/resources/invocations.d.ts.map +1 -1
  37. package/resources/projects/index.d.mts +3 -0
  38. package/resources/projects/index.d.mts.map +1 -0
  39. package/resources/projects/index.d.ts +3 -0
  40. package/resources/projects/index.d.ts.map +1 -0
  41. package/resources/projects/index.js +9 -0
  42. package/resources/projects/index.js.map +1 -0
  43. package/resources/projects/index.mjs +4 -0
  44. package/resources/projects/index.mjs.map +1 -0
  45. package/resources/projects/limits.d.mts +103 -0
  46. package/resources/projects/limits.d.mts.map +1 -0
  47. package/resources/projects/limits.d.ts +103 -0
  48. package/resources/projects/limits.d.ts.map +1 -0
  49. package/resources/projects/limits.js +42 -0
  50. package/resources/projects/limits.js.map +1 -0
  51. package/resources/projects/limits.mjs +38 -0
  52. package/resources/projects/limits.mjs.map +1 -0
  53. package/resources/projects/projects.d.mts +125 -0
  54. package/resources/projects/projects.d.mts.map +1 -0
  55. package/resources/projects/projects.d.ts +125 -0
  56. package/resources/projects/projects.d.ts.map +1 -0
  57. package/resources/projects/projects.js +87 -0
  58. package/resources/projects/projects.js.map +1 -0
  59. package/resources/projects/projects.mjs +82 -0
  60. package/resources/projects/projects.mjs.map +1 -0
  61. package/resources/projects.d.mts +2 -0
  62. package/resources/projects.d.mts.map +1 -0
  63. package/resources/projects.d.ts +2 -0
  64. package/resources/projects.d.ts.map +1 -0
  65. package/resources/projects.js +6 -0
  66. package/resources/projects.js.map +1 -0
  67. package/resources/projects.mjs +3 -0
  68. package/resources/projects.mjs.map +1 -0
  69. package/src/client.ts +26 -0
  70. package/src/internal/utils/env.ts +2 -2
  71. package/src/resources/browser-pools.ts +5 -0
  72. package/src/resources/browsers/browsers.ts +20 -0
  73. package/src/resources/index.ts +10 -0
  74. package/src/resources/invocations.ts +5 -0
  75. package/src/resources/projects/index.ts +18 -0
  76. package/src/resources/projects/limits.ts +128 -0
  77. package/src/resources/projects/projects.ts +179 -0
  78. package/src/resources/projects.ts +3 -0
  79. package/src/version.ts +1 -1
  80. package/version.d.mts +1 -1
  81. package/version.d.ts +1 -1
  82. package/version.js +1 -1
  83. package/version.mjs +1 -1
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.Limits = void 0;
5
+ const resource_1 = require("../../core/resource.js");
6
+ const path_1 = require("../../internal/utils/path.js");
7
+ /**
8
+ * Create and manage projects for resource isolation within an organization.
9
+ */
10
+ class Limits extends resource_1.APIResource {
11
+ /**
12
+ * Get the resource limit overrides for a project. Null values mean no
13
+ * project-level cap (org limit applies).
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * const projectLimits = await client.projects.limits.retrieve(
18
+ * 'id',
19
+ * );
20
+ * ```
21
+ */
22
+ retrieve(id, options) {
23
+ return this._client.get((0, path_1.path) `/projects/${id}/limits`, options);
24
+ }
25
+ /**
26
+ * Update resource limit overrides for a project. Only fields present in the
27
+ * request are modified. Set a field to 0 to remove that limit cap; omit a field to
28
+ * leave it unchanged.
29
+ *
30
+ * @example
31
+ * ```ts
32
+ * const projectLimits = await client.projects.limits.update(
33
+ * 'id',
34
+ * );
35
+ * ```
36
+ */
37
+ update(id, body, options) {
38
+ return this._client.patch((0, path_1.path) `/projects/${id}/limits`, { body, ...options });
39
+ }
40
+ }
41
+ exports.Limits = Limits;
42
+ //# sourceMappingURL=limits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"limits.js","sourceRoot":"","sources":["../../src/resources/projects/limits.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,qDAAkD;AAGlD,uDAAiD;AAEjD;;GAEG;AACH,MAAa,MAAO,SAAQ,sBAAW;IACrC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAU,EAAE,OAAwB;QAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,WAAI,EAAA,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAED;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,EAAU,EAAE,IAAuB,EAAE,OAAwB;QAClE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAA,WAAI,EAAA,aAAa,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAChF,CAAC;CACF;AA/BD,wBA+BC"}
@@ -0,0 +1,38 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+ import { APIResource } from "../../core/resource.mjs";
3
+ import { path } from "../../internal/utils/path.mjs";
4
+ /**
5
+ * Create and manage projects for resource isolation within an organization.
6
+ */
7
+ export class Limits extends APIResource {
8
+ /**
9
+ * Get the resource limit overrides for a project. Null values mean no
10
+ * project-level cap (org limit applies).
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * const projectLimits = await client.projects.limits.retrieve(
15
+ * 'id',
16
+ * );
17
+ * ```
18
+ */
19
+ retrieve(id, options) {
20
+ return this._client.get(path `/projects/${id}/limits`, options);
21
+ }
22
+ /**
23
+ * Update resource limit overrides for a project. Only fields present in the
24
+ * request are modified. Set a field to 0 to remove that limit cap; omit a field to
25
+ * leave it unchanged.
26
+ *
27
+ * @example
28
+ * ```ts
29
+ * const projectLimits = await client.projects.limits.update(
30
+ * 'id',
31
+ * );
32
+ * ```
33
+ */
34
+ update(id, body, options) {
35
+ return this._client.patch(path `/projects/${id}/limits`, { body, ...options });
36
+ }
37
+ }
38
+ //# sourceMappingURL=limits.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"limits.mjs","sourceRoot":"","sources":["../../src/resources/projects/limits.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EAAE,WAAW,EAAE;OAGf,EAAE,IAAI,EAAE;AAEf;;GAEG;AACH,MAAM,OAAO,MAAO,SAAQ,WAAW;IACrC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAU,EAAE,OAAwB;QAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACjE,CAAC;IAED;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,EAAU,EAAE,IAAuB,EAAE,OAAwB;QAClE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAA,aAAa,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAChF,CAAC;CACF"}
@@ -0,0 +1,125 @@
1
+ import { APIResource } from "../../core/resource.mjs";
2
+ import * as LimitsAPI from "./limits.mjs";
3
+ import { LimitUpdateParams, Limits, ProjectLimits, UpdateProjectLimitsRequest } from "./limits.mjs";
4
+ import { APIPromise } from "../../core/api-promise.mjs";
5
+ import { OffsetPagination, type OffsetPaginationParams, PagePromise } from "../../core/pagination.mjs";
6
+ import { RequestOptions } from "../../internal/request-options.mjs";
7
+ /**
8
+ * Create and manage projects for resource isolation within an organization.
9
+ */
10
+ export declare class Projects extends APIResource {
11
+ limits: LimitsAPI.Limits;
12
+ /**
13
+ * Create a new project within the authenticated organization. Requires a paid plan
14
+ * and the projects feature flag.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * const project = await client.projects.create({
19
+ * name: 'staging',
20
+ * });
21
+ * ```
22
+ */
23
+ create(body: ProjectCreateParams, options?: RequestOptions): APIPromise<Project>;
24
+ /**
25
+ * Get a project by ID.
26
+ *
27
+ * @example
28
+ * ```ts
29
+ * const project = await client.projects.retrieve('id');
30
+ * ```
31
+ */
32
+ retrieve(id: string, options?: RequestOptions): APIPromise<Project>;
33
+ /**
34
+ * Update a project's name or status.
35
+ *
36
+ * @example
37
+ * ```ts
38
+ * const project = await client.projects.update('id');
39
+ * ```
40
+ */
41
+ update(id: string, body: ProjectUpdateParams, options?: RequestOptions): APIPromise<Project>;
42
+ /**
43
+ * List projects for the authenticated organization.
44
+ *
45
+ * @example
46
+ * ```ts
47
+ * // Automatically fetches more pages as needed.
48
+ * for await (const project of client.projects.list()) {
49
+ * // ...
50
+ * }
51
+ * ```
52
+ */
53
+ list(query?: ProjectListParams | null | undefined, options?: RequestOptions): PagePromise<ProjectsOffsetPagination, Project>;
54
+ /**
55
+ * Soft-delete a project. The project must be empty (no active resources).
56
+ *
57
+ * @example
58
+ * ```ts
59
+ * await client.projects.delete('id');
60
+ * ```
61
+ */
62
+ delete(id: string, options?: RequestOptions): APIPromise<void>;
63
+ }
64
+ export type ProjectsOffsetPagination = OffsetPagination<Project>;
65
+ export interface CreateProjectRequest {
66
+ /**
67
+ * Project name (1-255 characters)
68
+ */
69
+ name: string;
70
+ }
71
+ export interface Project {
72
+ /**
73
+ * Unique project identifier
74
+ */
75
+ id: string;
76
+ /**
77
+ * When the project was created
78
+ */
79
+ created_at: string;
80
+ /**
81
+ * Project name
82
+ */
83
+ name: string;
84
+ /**
85
+ * Project status
86
+ */
87
+ status: 'active' | 'archived';
88
+ /**
89
+ * When the project was last updated
90
+ */
91
+ updated_at: string;
92
+ }
93
+ export interface UpdateProjectRequest {
94
+ /**
95
+ * New project name
96
+ */
97
+ name?: string;
98
+ /**
99
+ * New project status
100
+ */
101
+ status?: 'active' | 'archived';
102
+ }
103
+ export interface ProjectCreateParams {
104
+ /**
105
+ * Project name (1-255 characters)
106
+ */
107
+ name: string;
108
+ }
109
+ export interface ProjectUpdateParams {
110
+ /**
111
+ * New project name
112
+ */
113
+ name?: string;
114
+ /**
115
+ * New project status
116
+ */
117
+ status?: 'active' | 'archived';
118
+ }
119
+ export interface ProjectListParams extends OffsetPaginationParams {
120
+ }
121
+ export declare namespace Projects {
122
+ export { type CreateProjectRequest as CreateProjectRequest, type Project as Project, type UpdateProjectRequest as UpdateProjectRequest, type ProjectsOffsetPagination as ProjectsOffsetPagination, type ProjectCreateParams as ProjectCreateParams, type ProjectUpdateParams as ProjectUpdateParams, type ProjectListParams as ProjectListParams, };
123
+ export { Limits as Limits, type ProjectLimits as ProjectLimits, type UpdateProjectLimitsRequest as UpdateProjectLimitsRequest, type LimitUpdateParams as LimitUpdateParams, };
124
+ }
125
+ //# sourceMappingURL=projects.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.d.mts","sourceRoot":"","sources":["../../src/resources/projects/projects.ts"],"names":[],"mappings":"OAEO,EAAE,WAAW,EAAE;OACf,KAAK,SAAS;OACd,EAAE,iBAAiB,EAAE,MAAM,EAAE,aAAa,EAAE,0BAA0B,EAAE;OACxE,EAAE,UAAU,EAAE;OACd,EAAE,gBAAgB,EAAE,KAAK,sBAAsB,EAAE,WAAW,EAAE;OAE9D,EAAE,cAAc,EAAE;AAGzB;;GAEG;AACH,qBAAa,QAAS,SAAQ,WAAW;IACvC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAsC;IAE9D;;;;;;;;;;OAUG;IACH,MAAM,CAAC,IAAI,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC;IAIhF;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC;IAInE;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC;IAI5F;;;;;;;;;;OAUG;IACH,IAAI,CACF,KAAK,GAAE,iBAAiB,GAAG,IAAI,GAAG,SAAc,EAChD,OAAO,CAAC,EAAE,cAAc,GACvB,WAAW,CAAC,wBAAwB,EAAE,OAAO,CAAC;IAIjD;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC;CAM/D;AAED,MAAM,MAAM,wBAAwB,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAEjE,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;IAE9B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;CAChC;AAED,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;CAChC;AAED,MAAM,WAAW,iBAAkB,SAAQ,sBAAsB;CAAG;AAIpE,MAAM,CAAC,OAAO,WAAW,QAAQ,CAAC;IAChC,OAAO,EACL,KAAK,oBAAoB,IAAI,oBAAoB,EACjD,KAAK,OAAO,IAAI,OAAO,EACvB,KAAK,oBAAoB,IAAI,oBAAoB,EACjD,KAAK,wBAAwB,IAAI,wBAAwB,EACzD,KAAK,mBAAmB,IAAI,mBAAmB,EAC/C,KAAK,mBAAmB,IAAI,mBAAmB,EAC/C,KAAK,iBAAiB,IAAI,iBAAiB,GAC5C,CAAC;IAEF,OAAO,EACL,MAAM,IAAI,MAAM,EAChB,KAAK,aAAa,IAAI,aAAa,EACnC,KAAK,0BAA0B,IAAI,0BAA0B,EAC7D,KAAK,iBAAiB,IAAI,iBAAiB,GAC5C,CAAC;CACH"}
@@ -0,0 +1,125 @@
1
+ import { APIResource } from "../../core/resource.js";
2
+ import * as LimitsAPI from "./limits.js";
3
+ import { LimitUpdateParams, Limits, ProjectLimits, UpdateProjectLimitsRequest } from "./limits.js";
4
+ import { APIPromise } from "../../core/api-promise.js";
5
+ import { OffsetPagination, type OffsetPaginationParams, PagePromise } from "../../core/pagination.js";
6
+ import { RequestOptions } from "../../internal/request-options.js";
7
+ /**
8
+ * Create and manage projects for resource isolation within an organization.
9
+ */
10
+ export declare class Projects extends APIResource {
11
+ limits: LimitsAPI.Limits;
12
+ /**
13
+ * Create a new project within the authenticated organization. Requires a paid plan
14
+ * and the projects feature flag.
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * const project = await client.projects.create({
19
+ * name: 'staging',
20
+ * });
21
+ * ```
22
+ */
23
+ create(body: ProjectCreateParams, options?: RequestOptions): APIPromise<Project>;
24
+ /**
25
+ * Get a project by ID.
26
+ *
27
+ * @example
28
+ * ```ts
29
+ * const project = await client.projects.retrieve('id');
30
+ * ```
31
+ */
32
+ retrieve(id: string, options?: RequestOptions): APIPromise<Project>;
33
+ /**
34
+ * Update a project's name or status.
35
+ *
36
+ * @example
37
+ * ```ts
38
+ * const project = await client.projects.update('id');
39
+ * ```
40
+ */
41
+ update(id: string, body: ProjectUpdateParams, options?: RequestOptions): APIPromise<Project>;
42
+ /**
43
+ * List projects for the authenticated organization.
44
+ *
45
+ * @example
46
+ * ```ts
47
+ * // Automatically fetches more pages as needed.
48
+ * for await (const project of client.projects.list()) {
49
+ * // ...
50
+ * }
51
+ * ```
52
+ */
53
+ list(query?: ProjectListParams | null | undefined, options?: RequestOptions): PagePromise<ProjectsOffsetPagination, Project>;
54
+ /**
55
+ * Soft-delete a project. The project must be empty (no active resources).
56
+ *
57
+ * @example
58
+ * ```ts
59
+ * await client.projects.delete('id');
60
+ * ```
61
+ */
62
+ delete(id: string, options?: RequestOptions): APIPromise<void>;
63
+ }
64
+ export type ProjectsOffsetPagination = OffsetPagination<Project>;
65
+ export interface CreateProjectRequest {
66
+ /**
67
+ * Project name (1-255 characters)
68
+ */
69
+ name: string;
70
+ }
71
+ export interface Project {
72
+ /**
73
+ * Unique project identifier
74
+ */
75
+ id: string;
76
+ /**
77
+ * When the project was created
78
+ */
79
+ created_at: string;
80
+ /**
81
+ * Project name
82
+ */
83
+ name: string;
84
+ /**
85
+ * Project status
86
+ */
87
+ status: 'active' | 'archived';
88
+ /**
89
+ * When the project was last updated
90
+ */
91
+ updated_at: string;
92
+ }
93
+ export interface UpdateProjectRequest {
94
+ /**
95
+ * New project name
96
+ */
97
+ name?: string;
98
+ /**
99
+ * New project status
100
+ */
101
+ status?: 'active' | 'archived';
102
+ }
103
+ export interface ProjectCreateParams {
104
+ /**
105
+ * Project name (1-255 characters)
106
+ */
107
+ name: string;
108
+ }
109
+ export interface ProjectUpdateParams {
110
+ /**
111
+ * New project name
112
+ */
113
+ name?: string;
114
+ /**
115
+ * New project status
116
+ */
117
+ status?: 'active' | 'archived';
118
+ }
119
+ export interface ProjectListParams extends OffsetPaginationParams {
120
+ }
121
+ export declare namespace Projects {
122
+ export { type CreateProjectRequest as CreateProjectRequest, type Project as Project, type UpdateProjectRequest as UpdateProjectRequest, type ProjectsOffsetPagination as ProjectsOffsetPagination, type ProjectCreateParams as ProjectCreateParams, type ProjectUpdateParams as ProjectUpdateParams, type ProjectListParams as ProjectListParams, };
123
+ export { Limits as Limits, type ProjectLimits as ProjectLimits, type UpdateProjectLimitsRequest as UpdateProjectLimitsRequest, type LimitUpdateParams as LimitUpdateParams, };
124
+ }
125
+ //# sourceMappingURL=projects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/resources/projects/projects.ts"],"names":[],"mappings":"OAEO,EAAE,WAAW,EAAE;OACf,KAAK,SAAS;OACd,EAAE,iBAAiB,EAAE,MAAM,EAAE,aAAa,EAAE,0BAA0B,EAAE;OACxE,EAAE,UAAU,EAAE;OACd,EAAE,gBAAgB,EAAE,KAAK,sBAAsB,EAAE,WAAW,EAAE;OAE9D,EAAE,cAAc,EAAE;AAGzB;;GAEG;AACH,qBAAa,QAAS,SAAQ,WAAW;IACvC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAsC;IAE9D;;;;;;;;;;OAUG;IACH,MAAM,CAAC,IAAI,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC;IAIhF;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC;IAInE;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC;IAI5F;;;;;;;;;;OAUG;IACH,IAAI,CACF,KAAK,GAAE,iBAAiB,GAAG,IAAI,GAAG,SAAc,EAChD,OAAO,CAAC,EAAE,cAAc,GACvB,WAAW,CAAC,wBAAwB,EAAE,OAAO,CAAC;IAIjD;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC;CAM/D;AAED,MAAM,MAAM,wBAAwB,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAEjE,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACtB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;IAE9B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;CAChC;AAED,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;CAChC;AAED,MAAM,WAAW,iBAAkB,SAAQ,sBAAsB;CAAG;AAIpE,MAAM,CAAC,OAAO,WAAW,QAAQ,CAAC;IAChC,OAAO,EACL,KAAK,oBAAoB,IAAI,oBAAoB,EACjD,KAAK,OAAO,IAAI,OAAO,EACvB,KAAK,oBAAoB,IAAI,oBAAoB,EACjD,KAAK,wBAAwB,IAAI,wBAAwB,EACzD,KAAK,mBAAmB,IAAI,mBAAmB,EAC/C,KAAK,mBAAmB,IAAI,mBAAmB,EAC/C,KAAK,iBAAiB,IAAI,iBAAiB,GAC5C,CAAC;IAEF,OAAO,EACL,MAAM,IAAI,MAAM,EAChB,KAAK,aAAa,IAAI,aAAa,EACnC,KAAK,0BAA0B,IAAI,0BAA0B,EAC7D,KAAK,iBAAiB,IAAI,iBAAiB,GAC5C,CAAC;CACH"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.Projects = void 0;
5
+ const tslib_1 = require("../../internal/tslib.js");
6
+ const resource_1 = require("../../core/resource.js");
7
+ const LimitsAPI = tslib_1.__importStar(require("./limits.js"));
8
+ const limits_1 = require("./limits.js");
9
+ const pagination_1 = require("../../core/pagination.js");
10
+ const headers_1 = require("../../internal/headers.js");
11
+ const path_1 = require("../../internal/utils/path.js");
12
+ /**
13
+ * Create and manage projects for resource isolation within an organization.
14
+ */
15
+ class Projects extends resource_1.APIResource {
16
+ constructor() {
17
+ super(...arguments);
18
+ this.limits = new LimitsAPI.Limits(this._client);
19
+ }
20
+ /**
21
+ * Create a new project within the authenticated organization. Requires a paid plan
22
+ * and the projects feature flag.
23
+ *
24
+ * @example
25
+ * ```ts
26
+ * const project = await client.projects.create({
27
+ * name: 'staging',
28
+ * });
29
+ * ```
30
+ */
31
+ create(body, options) {
32
+ return this._client.post('/projects', { body, ...options });
33
+ }
34
+ /**
35
+ * Get a project by ID.
36
+ *
37
+ * @example
38
+ * ```ts
39
+ * const project = await client.projects.retrieve('id');
40
+ * ```
41
+ */
42
+ retrieve(id, options) {
43
+ return this._client.get((0, path_1.path) `/projects/${id}`, options);
44
+ }
45
+ /**
46
+ * Update a project's name or status.
47
+ *
48
+ * @example
49
+ * ```ts
50
+ * const project = await client.projects.update('id');
51
+ * ```
52
+ */
53
+ update(id, body, options) {
54
+ return this._client.patch((0, path_1.path) `/projects/${id}`, { body, ...options });
55
+ }
56
+ /**
57
+ * List projects for the authenticated organization.
58
+ *
59
+ * @example
60
+ * ```ts
61
+ * // Automatically fetches more pages as needed.
62
+ * for await (const project of client.projects.list()) {
63
+ * // ...
64
+ * }
65
+ * ```
66
+ */
67
+ list(query = {}, options) {
68
+ return this._client.getAPIList('/projects', (pagination_1.OffsetPagination), { query, ...options });
69
+ }
70
+ /**
71
+ * Soft-delete a project. The project must be empty (no active resources).
72
+ *
73
+ * @example
74
+ * ```ts
75
+ * await client.projects.delete('id');
76
+ * ```
77
+ */
78
+ delete(id, options) {
79
+ return this._client.delete((0, path_1.path) `/projects/${id}`, {
80
+ ...options,
81
+ headers: (0, headers_1.buildHeaders)([{ Accept: '*/*' }, options?.headers]),
82
+ });
83
+ }
84
+ }
85
+ exports.Projects = Projects;
86
+ Projects.Limits = limits_1.Limits;
87
+ //# sourceMappingURL=projects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/resources/projects/projects.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;;AAEtF,qDAAkD;AAClD,+DAAsC;AACtC,wCAAgG;AAEhG,yDAAmG;AACnG,uDAAsD;AAEtD,uDAAiD;AAEjD;;GAEG;AACH,MAAa,QAAS,SAAQ,sBAAW;IAAzC;;QACE,WAAM,GAAqB,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAyEhE,CAAC;IAvEC;;;;;;;;;;OAUG;IACH,MAAM,CAAC,IAAyB,EAAE,OAAwB;QACxD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAU,EAAE,OAAwB;QAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,WAAI,EAAA,aAAa,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,EAAU,EAAE,IAAyB,EAAE,OAAwB;QACpE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAA,WAAI,EAAA,aAAa,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACzE,CAAC;IAED;;;;;;;;;;OAUG;IACH,IAAI,CACF,QAA8C,EAAE,EAChD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAA,6BAAyB,CAAA,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAChG,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,EAAU,EAAE,OAAwB;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAA,WAAI,EAAA,aAAa,EAAE,EAAE,EAAE;YAChD,GAAG,OAAO;YACV,OAAO,EAAE,IAAA,sBAAY,EAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SAC7D,CAAC,CAAC;IACL,CAAC;CACF;AA1ED,4BA0EC;AAuED,QAAQ,CAAC,MAAM,GAAG,eAAM,CAAC"}
@@ -0,0 +1,82 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+ import { APIResource } from "../../core/resource.mjs";
3
+ import * as LimitsAPI from "./limits.mjs";
4
+ import { Limits } from "./limits.mjs";
5
+ import { OffsetPagination } from "../../core/pagination.mjs";
6
+ import { buildHeaders } from "../../internal/headers.mjs";
7
+ import { path } from "../../internal/utils/path.mjs";
8
+ /**
9
+ * Create and manage projects for resource isolation within an organization.
10
+ */
11
+ export class Projects extends APIResource {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.limits = new LimitsAPI.Limits(this._client);
15
+ }
16
+ /**
17
+ * Create a new project within the authenticated organization. Requires a paid plan
18
+ * and the projects feature flag.
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * const project = await client.projects.create({
23
+ * name: 'staging',
24
+ * });
25
+ * ```
26
+ */
27
+ create(body, options) {
28
+ return this._client.post('/projects', { body, ...options });
29
+ }
30
+ /**
31
+ * Get a project by ID.
32
+ *
33
+ * @example
34
+ * ```ts
35
+ * const project = await client.projects.retrieve('id');
36
+ * ```
37
+ */
38
+ retrieve(id, options) {
39
+ return this._client.get(path `/projects/${id}`, options);
40
+ }
41
+ /**
42
+ * Update a project's name or status.
43
+ *
44
+ * @example
45
+ * ```ts
46
+ * const project = await client.projects.update('id');
47
+ * ```
48
+ */
49
+ update(id, body, options) {
50
+ return this._client.patch(path `/projects/${id}`, { body, ...options });
51
+ }
52
+ /**
53
+ * List projects for the authenticated organization.
54
+ *
55
+ * @example
56
+ * ```ts
57
+ * // Automatically fetches more pages as needed.
58
+ * for await (const project of client.projects.list()) {
59
+ * // ...
60
+ * }
61
+ * ```
62
+ */
63
+ list(query = {}, options) {
64
+ return this._client.getAPIList('/projects', (OffsetPagination), { query, ...options });
65
+ }
66
+ /**
67
+ * Soft-delete a project. The project must be empty (no active resources).
68
+ *
69
+ * @example
70
+ * ```ts
71
+ * await client.projects.delete('id');
72
+ * ```
73
+ */
74
+ delete(id, options) {
75
+ return this._client.delete(path `/projects/${id}`, {
76
+ ...options,
77
+ headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),
78
+ });
79
+ }
80
+ }
81
+ Projects.Limits = Limits;
82
+ //# sourceMappingURL=projects.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.mjs","sourceRoot":"","sources":["../../src/resources/projects/projects.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EAAE,WAAW,EAAE;OACf,KAAK,SAAS;OACd,EAAqB,MAAM,EAA6C;OAExE,EAAE,gBAAgB,EAA4C;OAC9D,EAAE,YAAY,EAAE;OAEhB,EAAE,IAAI,EAAE;AAEf;;GAEG;AACH,MAAM,OAAO,QAAS,SAAQ,WAAW;IAAzC;;QACE,WAAM,GAAqB,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAyEhE,CAAC;IAvEC;;;;;;;;;;OAUG;IACH,MAAM,CAAC,IAAyB,EAAE,OAAwB;QACxD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAU,EAAE,OAAwB;QAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA,aAAa,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,EAAU,EAAE,IAAyB,EAAE,OAAwB;QACpE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAA,aAAa,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACzE,CAAC;IAED;;;;;;;;;;OAUG;IACH,IAAI,CACF,QAA8C,EAAE,EAChD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,EAAE,CAAA,gBAAyB,CAAA,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAChG,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,EAAU,EAAE,OAAwB;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAA,aAAa,EAAE,EAAE,EAAE;YAChD,GAAG,OAAO;YACV,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SAC7D,CAAC,CAAC;IACL,CAAC;CACF;AAuED,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./projects/index.mjs";
2
+ //# sourceMappingURL=projects.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.d.mts","sourceRoot":"","sources":["../src/resources/projects.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export * from "./projects/index.js";
2
+ //# sourceMappingURL=projects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../src/resources/projects.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ const tslib_1 = require("../internal/tslib.js");
5
+ tslib_1.__exportStar(require("./projects/index.js"), exports);
6
+ //# sourceMappingURL=projects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.js","sourceRoot":"","sources":["../src/resources/projects.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,8DAAiC"}
@@ -0,0 +1,3 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+ export * from "./projects/index.mjs";
3
+ //# sourceMappingURL=projects.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.mjs","sourceRoot":"","sources":["../src/resources/projects.ts"],"names":[],"mappings":"AAAA,sFAAsF"}
package/src/client.ts CHANGED
@@ -118,6 +118,16 @@ import {
118
118
  Browsers,
119
119
  Profile,
120
120
  } from './resources/browsers/browsers';
121
+ import {
122
+ CreateProjectRequest,
123
+ Project,
124
+ ProjectCreateParams,
125
+ ProjectListParams,
126
+ ProjectUpdateParams,
127
+ Projects,
128
+ ProjectsOffsetPagination,
129
+ UpdateProjectRequest,
130
+ } from './resources/projects/projects';
121
131
  import { type Fetch } from './internal/builtin-types';
122
132
  import { HeadersLike, NullableHeaders, buildHeaders } from './internal/headers';
123
133
  import { FinalRequestOptions, RequestOptions } from './internal/request-options';
@@ -925,6 +935,10 @@ export class Kernel {
925
935
  * Create and manage credentials for authentication.
926
936
  */
927
937
  credentials: API.Credentials = new API.Credentials(this);
938
+ /**
939
+ * Create and manage projects for resource isolation within an organization.
940
+ */
941
+ projects: API.Projects = new API.Projects(this);
928
942
  /**
929
943
  * Configure external credential providers like 1Password.
930
944
  */
@@ -941,6 +955,7 @@ Kernel.Proxies = Proxies;
941
955
  Kernel.Extensions = Extensions;
942
956
  Kernel.BrowserPools = BrowserPools;
943
957
  Kernel.Credentials = Credentials;
958
+ Kernel.Projects = Projects;
944
959
  Kernel.CredentialProviders = CredentialProviders;
945
960
 
946
961
  export declare namespace Kernel {
@@ -1057,6 +1072,17 @@ export declare namespace Kernel {
1057
1072
  type CredentialListParams as CredentialListParams,
1058
1073
  };
1059
1074
 
1075
+ export {
1076
+ Projects as Projects,
1077
+ type CreateProjectRequest as CreateProjectRequest,
1078
+ type Project as Project,
1079
+ type UpdateProjectRequest as UpdateProjectRequest,
1080
+ type ProjectsOffsetPagination as ProjectsOffsetPagination,
1081
+ type ProjectCreateParams as ProjectCreateParams,
1082
+ type ProjectUpdateParams as ProjectUpdateParams,
1083
+ type ProjectListParams as ProjectListParams,
1084
+ };
1085
+
1060
1086
  export {
1061
1087
  CredentialProviders as CredentialProviders,
1062
1088
  type CreateCredentialProviderRequest as CreateCredentialProviderRequest,
@@ -9,10 +9,10 @@
9
9
  */
10
10
  export const readEnv = (env: string): string | undefined => {
11
11
  if (typeof (globalThis as any).process !== 'undefined') {
12
- return (globalThis as any).process.env?.[env]?.trim() ?? undefined;
12
+ return (globalThis as any).process.env?.[env]?.trim() || undefined;
13
13
  }
14
14
  if (typeof (globalThis as any).Deno !== 'undefined') {
15
- return (globalThis as any).Deno.env?.get?.(env)?.trim();
15
+ return (globalThis as any).Deno.env?.get?.(env)?.trim() || undefined;
16
16
  }
17
17
  return undefined;
18
18
  };
@@ -305,6 +305,11 @@ export interface BrowserPoolAcquireResponse {
305
305
  */
306
306
  webdriver_ws_url: string;
307
307
 
308
+ /**
309
+ * Metro-API HTTP base URL for this browser session.
310
+ */
311
+ base_url?: string;
312
+
308
313
  /**
309
314
  * Remote URL for live viewing the browser session. Only available for non-headless
310
315
  * browsers.