@limrun/api 0.23.2 → 0.24.1

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 (148) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/client.d.mts +4 -0
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +4 -0
  5. package/client.d.ts.map +1 -1
  6. package/client.js +3 -0
  7. package/client.js.map +1 -1
  8. package/client.mjs +3 -0
  9. package/client.mjs.map +1 -1
  10. package/exec-client.d.mts +3 -2
  11. package/exec-client.d.mts.map +1 -1
  12. package/exec-client.d.ts +3 -2
  13. package/exec-client.d.ts.map +1 -1
  14. package/exec-client.js +10 -3
  15. package/exec-client.js.map +1 -1
  16. package/exec-client.mjs +10 -3
  17. package/exec-client.mjs.map +1 -1
  18. package/folder-sync.d.mts.map +1 -1
  19. package/folder-sync.d.ts.map +1 -1
  20. package/folder-sync.js +5 -2
  21. package/folder-sync.js.map +1 -1
  22. package/folder-sync.mjs +5 -2
  23. package/folder-sync.mjs.map +1 -1
  24. package/index.d.mts +1 -1
  25. package/index.d.mts.map +1 -1
  26. package/index.d.ts +1 -1
  27. package/index.d.ts.map +1 -1
  28. package/index.js +1 -3
  29. package/index.js.map +1 -1
  30. package/index.mjs +0 -1
  31. package/index.mjs.map +1 -1
  32. package/instance-client.d.mts +31 -4
  33. package/instance-client.d.mts.map +1 -1
  34. package/instance-client.d.ts +31 -4
  35. package/instance-client.d.ts.map +1 -1
  36. package/instance-client.js +61 -2
  37. package/instance-client.js.map +1 -1
  38. package/instance-client.mjs +60 -2
  39. package/instance-client.mjs.map +1 -1
  40. package/internal/download-file.d.mts +2 -0
  41. package/internal/download-file.d.mts.map +1 -0
  42. package/internal/download-file.d.ts +2 -0
  43. package/internal/download-file.d.ts.map +1 -0
  44. package/internal/download-file.js +35 -0
  45. package/internal/download-file.js.map +1 -0
  46. package/internal/download-file.mjs +31 -0
  47. package/internal/download-file.mjs.map +1 -0
  48. package/internal/proxy-transport.d.mts +14 -0
  49. package/internal/proxy-transport.d.mts.map +1 -0
  50. package/internal/proxy-transport.d.ts +14 -0
  51. package/internal/proxy-transport.d.ts.map +1 -0
  52. package/internal/proxy-transport.js +59 -0
  53. package/internal/proxy-transport.js.map +1 -0
  54. package/internal/proxy-transport.mjs +56 -0
  55. package/internal/proxy-transport.mjs.map +1 -0
  56. package/internal/shims.d.mts.map +1 -1
  57. package/internal/shims.d.ts.map +1 -1
  58. package/internal/shims.js +2 -1
  59. package/internal/shims.js.map +1 -1
  60. package/internal/shims.mjs +2 -1
  61. package/internal/shims.mjs.map +1 -1
  62. package/internal/tslib.js +4 -4
  63. package/internal/utils/env.js +2 -2
  64. package/internal/utils/env.js.map +1 -1
  65. package/internal/utils/env.mjs +2 -2
  66. package/internal/utils/env.mjs.map +1 -1
  67. package/ios-client.d.mts +13 -1
  68. package/ios-client.d.mts.map +1 -1
  69. package/ios-client.d.ts +13 -1
  70. package/ios-client.d.ts.map +1 -1
  71. package/ios-client.js +44 -65
  72. package/ios-client.js.map +1 -1
  73. package/ios-client.mjs +42 -63
  74. package/ios-client.mjs.map +1 -1
  75. package/package.json +4 -11
  76. package/resources/android-instances.d.mts +5 -4
  77. package/resources/android-instances.d.mts.map +1 -1
  78. package/resources/android-instances.d.ts +5 -4
  79. package/resources/android-instances.d.ts.map +1 -1
  80. package/resources/assets-helpers.d.mts.map +1 -1
  81. package/resources/assets-helpers.d.ts.map +1 -1
  82. package/resources/assets-helpers.js +2 -1
  83. package/resources/assets-helpers.js.map +1 -1
  84. package/resources/assets-helpers.mjs +2 -1
  85. package/resources/assets-helpers.mjs.map +1 -1
  86. package/resources/index.d.mts +2 -0
  87. package/resources/index.d.mts.map +1 -1
  88. package/resources/index.d.ts +2 -0
  89. package/resources/index.d.ts.map +1 -1
  90. package/resources/index.js +3 -1
  91. package/resources/index.js.map +1 -1
  92. package/resources/index.mjs +1 -0
  93. package/resources/index.mjs.map +1 -1
  94. package/resources/ios-instances.d.mts +4 -4
  95. package/resources/ios-instances.d.ts +4 -4
  96. package/resources/xcode-instances-helpers.d.mts +76 -0
  97. package/resources/xcode-instances-helpers.d.mts.map +1 -0
  98. package/resources/xcode-instances-helpers.d.ts +76 -0
  99. package/resources/xcode-instances-helpers.d.ts.map +1 -0
  100. package/resources/xcode-instances-helpers.js +150 -0
  101. package/resources/xcode-instances-helpers.js.map +1 -0
  102. package/resources/xcode-instances-helpers.mjs +145 -0
  103. package/resources/xcode-instances-helpers.mjs.map +1 -0
  104. package/resources/xcode-instances.d.mts +122 -0
  105. package/resources/xcode-instances.d.mts.map +1 -0
  106. package/resources/xcode-instances.d.ts +122 -0
  107. package/resources/xcode-instances.d.ts.map +1 -0
  108. package/resources/xcode-instances.js +40 -0
  109. package/resources/xcode-instances.js.map +1 -0
  110. package/resources/xcode-instances.mjs +36 -0
  111. package/resources/xcode-instances.mjs.map +1 -0
  112. package/src/client.ts +27 -0
  113. package/src/exec-client.ts +12 -5
  114. package/src/folder-sync.ts +15 -12
  115. package/src/index.ts +6 -9
  116. package/src/instance-client.ts +107 -8
  117. package/src/internal/download-file.ts +33 -0
  118. package/src/internal/proxy-transport.ts +69 -0
  119. package/src/internal/shims.ts +2 -1
  120. package/src/internal/utils/env.ts +2 -2
  121. package/src/ios-client.ts +45 -67
  122. package/src/resources/android-instances.ts +6 -4
  123. package/src/resources/assets-helpers.ts +2 -1
  124. package/src/resources/index.ts +13 -0
  125. package/src/resources/ios-instances.ts +4 -4
  126. package/src/resources/xcode-instances-helpers.ts +228 -0
  127. package/src/resources/xcode-instances.ts +177 -0
  128. package/src/tunnel.ts +5 -0
  129. package/src/version.ts +1 -1
  130. package/tunnel.d.mts.map +1 -1
  131. package/tunnel.d.ts.map +1 -1
  132. package/tunnel.js +5 -0
  133. package/tunnel.js.map +1 -1
  134. package/tunnel.mjs +5 -0
  135. package/tunnel.mjs.map +1 -1
  136. package/version.d.mts +1 -1
  137. package/version.d.ts +1 -1
  138. package/version.js +1 -1
  139. package/version.mjs +1 -1
  140. package/sandbox-client.d.mts +0 -129
  141. package/sandbox-client.d.mts.map +0 -1
  142. package/sandbox-client.d.ts +0 -129
  143. package/sandbox-client.d.ts.map +0 -1
  144. package/sandbox-client.js +0 -158
  145. package/sandbox-client.js.map +0 -1
  146. package/sandbox-client.mjs +0 -154
  147. package/sandbox-client.mjs.map +0 -1
  148. package/src/sandbox-client.ts +0 -277
@@ -0,0 +1,122 @@
1
+ import { APIResource } from "../core/resource.mjs";
2
+ import { APIPromise } from "../core/api-promise.mjs";
3
+ import { Items, type ItemsParams, PagePromise } from "../core/pagination.mjs";
4
+ import { RequestOptions } from "../internal/request-options.mjs";
5
+ export declare class XcodeInstances extends APIResource {
6
+ /**
7
+ * Create an Xcode instance
8
+ */
9
+ create(params: XcodeInstanceCreateParams, options?: RequestOptions): APIPromise<XcodeInstance>;
10
+ /**
11
+ * List Xcode instances
12
+ */
13
+ list(query?: XcodeInstanceListParams | null | undefined, options?: RequestOptions): PagePromise<XcodeInstancesItems, XcodeInstance>;
14
+ /**
15
+ * Delete Xcode instance with given name
16
+ */
17
+ delete(id: string, options?: RequestOptions): APIPromise<void>;
18
+ /**
19
+ * Get Xcode instance with given ID
20
+ */
21
+ get(id: string, options?: RequestOptions): APIPromise<XcodeInstance>;
22
+ }
23
+ export type XcodeInstancesItems = Items<XcodeInstance>;
24
+ export interface XcodeInstance {
25
+ metadata: XcodeInstance.Metadata;
26
+ spec: XcodeInstance.Spec;
27
+ status: XcodeInstance.Status;
28
+ }
29
+ export declare namespace XcodeInstance {
30
+ interface Metadata {
31
+ id: string;
32
+ createdAt: string;
33
+ organizationId: string;
34
+ displayName?: string;
35
+ labels?: {
36
+ [key: string]: string;
37
+ };
38
+ terminatedAt?: string;
39
+ }
40
+ interface Spec {
41
+ inactivityTimeout: string;
42
+ region: string;
43
+ hardTimeout?: string;
44
+ }
45
+ interface Status {
46
+ token: string;
47
+ state: 'unknown' | 'creating' | 'assigned' | 'ready' | 'terminated';
48
+ apiUrl?: string;
49
+ errorMessage?: string;
50
+ }
51
+ }
52
+ export interface XcodeInstanceCreateParams {
53
+ /**
54
+ * Query param: If there is another instance with given labels and region, return
55
+ * that one instead of creating a new instance.
56
+ */
57
+ reuseIfExists?: boolean;
58
+ /**
59
+ * Query param: Return after the instance is ready to connect.
60
+ */
61
+ wait?: boolean;
62
+ /**
63
+ * Body param
64
+ */
65
+ metadata?: XcodeInstanceCreateParams.Metadata;
66
+ /**
67
+ * Body param
68
+ */
69
+ spec?: XcodeInstanceCreateParams.Spec;
70
+ }
71
+ export declare namespace XcodeInstanceCreateParams {
72
+ interface Metadata {
73
+ displayName?: string;
74
+ labels?: {
75
+ [key: string]: string;
76
+ };
77
+ }
78
+ interface Spec {
79
+ clues?: Array<Spec.Clue>;
80
+ /**
81
+ * After how many minutes should the instance be terminated. Example values 1m,
82
+ * 10m, 3h. Default is "0" which means no hard timeout.
83
+ */
84
+ hardTimeout?: string;
85
+ /**
86
+ * After how many minutes of inactivity should the instance be terminated. Example
87
+ * values 1m, 10m, 3h. Default is 3m. Providing "0" uses the organization's default
88
+ * inactivity timeout.
89
+ */
90
+ inactivityTimeout?: string;
91
+ /**
92
+ * The region where the instance will be created. If not given, will be decided
93
+ * based on scheduling clues and availability.
94
+ */
95
+ region?: string;
96
+ }
97
+ namespace Spec {
98
+ interface Clue {
99
+ kind: 'ClientIP';
100
+ clientIp?: string;
101
+ }
102
+ }
103
+ }
104
+ export interface XcodeInstanceListParams extends ItemsParams {
105
+ /**
106
+ * Labels filter to apply to instances to return. Expects a comma-separated list of
107
+ * key=value pairs (e.g., env=prod,region=us-west).
108
+ */
109
+ labelSelector?: string;
110
+ /**
111
+ * State filter to apply to Xcode instances to return. Each comma-separated state
112
+ * will be used as part of an OR clause, e.g. "assigned,ready" will return all
113
+ * instances that are either assigned or ready.
114
+ *
115
+ * Valid states: creating, assigned, ready, terminated, unknown
116
+ */
117
+ state?: string;
118
+ }
119
+ export declare namespace XcodeInstances {
120
+ export { type XcodeInstance as XcodeInstance, type XcodeInstancesItems as XcodeInstancesItems, type XcodeInstanceCreateParams as XcodeInstanceCreateParams, type XcodeInstanceListParams as XcodeInstanceListParams, };
121
+ }
122
+ //# sourceMappingURL=xcode-instances.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xcode-instances.d.mts","sourceRoot":"","sources":["../src/resources/xcode-instances.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,122 @@
1
+ import { APIResource } from "../core/resource.js";
2
+ import { APIPromise } from "../core/api-promise.js";
3
+ import { Items, type ItemsParams, PagePromise } from "../core/pagination.js";
4
+ import { RequestOptions } from "../internal/request-options.js";
5
+ export declare class XcodeInstances extends APIResource {
6
+ /**
7
+ * Create an Xcode instance
8
+ */
9
+ create(params: XcodeInstanceCreateParams, options?: RequestOptions): APIPromise<XcodeInstance>;
10
+ /**
11
+ * List Xcode instances
12
+ */
13
+ list(query?: XcodeInstanceListParams | null | undefined, options?: RequestOptions): PagePromise<XcodeInstancesItems, XcodeInstance>;
14
+ /**
15
+ * Delete Xcode instance with given name
16
+ */
17
+ delete(id: string, options?: RequestOptions): APIPromise<void>;
18
+ /**
19
+ * Get Xcode instance with given ID
20
+ */
21
+ get(id: string, options?: RequestOptions): APIPromise<XcodeInstance>;
22
+ }
23
+ export type XcodeInstancesItems = Items<XcodeInstance>;
24
+ export interface XcodeInstance {
25
+ metadata: XcodeInstance.Metadata;
26
+ spec: XcodeInstance.Spec;
27
+ status: XcodeInstance.Status;
28
+ }
29
+ export declare namespace XcodeInstance {
30
+ interface Metadata {
31
+ id: string;
32
+ createdAt: string;
33
+ organizationId: string;
34
+ displayName?: string;
35
+ labels?: {
36
+ [key: string]: string;
37
+ };
38
+ terminatedAt?: string;
39
+ }
40
+ interface Spec {
41
+ inactivityTimeout: string;
42
+ region: string;
43
+ hardTimeout?: string;
44
+ }
45
+ interface Status {
46
+ token: string;
47
+ state: 'unknown' | 'creating' | 'assigned' | 'ready' | 'terminated';
48
+ apiUrl?: string;
49
+ errorMessage?: string;
50
+ }
51
+ }
52
+ export interface XcodeInstanceCreateParams {
53
+ /**
54
+ * Query param: If there is another instance with given labels and region, return
55
+ * that one instead of creating a new instance.
56
+ */
57
+ reuseIfExists?: boolean;
58
+ /**
59
+ * Query param: Return after the instance is ready to connect.
60
+ */
61
+ wait?: boolean;
62
+ /**
63
+ * Body param
64
+ */
65
+ metadata?: XcodeInstanceCreateParams.Metadata;
66
+ /**
67
+ * Body param
68
+ */
69
+ spec?: XcodeInstanceCreateParams.Spec;
70
+ }
71
+ export declare namespace XcodeInstanceCreateParams {
72
+ interface Metadata {
73
+ displayName?: string;
74
+ labels?: {
75
+ [key: string]: string;
76
+ };
77
+ }
78
+ interface Spec {
79
+ clues?: Array<Spec.Clue>;
80
+ /**
81
+ * After how many minutes should the instance be terminated. Example values 1m,
82
+ * 10m, 3h. Default is "0" which means no hard timeout.
83
+ */
84
+ hardTimeout?: string;
85
+ /**
86
+ * After how many minutes of inactivity should the instance be terminated. Example
87
+ * values 1m, 10m, 3h. Default is 3m. Providing "0" uses the organization's default
88
+ * inactivity timeout.
89
+ */
90
+ inactivityTimeout?: string;
91
+ /**
92
+ * The region where the instance will be created. If not given, will be decided
93
+ * based on scheduling clues and availability.
94
+ */
95
+ region?: string;
96
+ }
97
+ namespace Spec {
98
+ interface Clue {
99
+ kind: 'ClientIP';
100
+ clientIp?: string;
101
+ }
102
+ }
103
+ }
104
+ export interface XcodeInstanceListParams extends ItemsParams {
105
+ /**
106
+ * Labels filter to apply to instances to return. Expects a comma-separated list of
107
+ * key=value pairs (e.g., env=prod,region=us-west).
108
+ */
109
+ labelSelector?: string;
110
+ /**
111
+ * State filter to apply to Xcode instances to return. Each comma-separated state
112
+ * will be used as part of an OR clause, e.g. "assigned,ready" will return all
113
+ * instances that are either assigned or ready.
114
+ *
115
+ * Valid states: creating, assigned, ready, terminated, unknown
116
+ */
117
+ state?: string;
118
+ }
119
+ export declare namespace XcodeInstances {
120
+ export { type XcodeInstance as XcodeInstance, type XcodeInstancesItems as XcodeInstancesItems, type XcodeInstanceCreateParams as XcodeInstanceCreateParams, type XcodeInstanceListParams as XcodeInstanceListParams, };
121
+ }
122
+ //# sourceMappingURL=xcode-instances.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xcode-instances.d.ts","sourceRoot":"","sources":["../src/resources/xcode-instances.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
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.XcodeInstances = void 0;
5
+ const resource_1 = require("../core/resource.js");
6
+ const pagination_1 = require("../core/pagination.js");
7
+ const headers_1 = require("../internal/headers.js");
8
+ const path_1 = require("../internal/utils/path.js");
9
+ class XcodeInstances extends resource_1.APIResource {
10
+ /**
11
+ * Create an Xcode instance
12
+ */
13
+ create(params, options) {
14
+ const { reuseIfExists, wait, ...body } = params;
15
+ return this._client.post('/v1/xcode_instances', { query: { reuseIfExists, wait }, body, ...options });
16
+ }
17
+ /**
18
+ * List Xcode instances
19
+ */
20
+ list(query = {}, options) {
21
+ return this._client.getAPIList('/v1/xcode_instances', (pagination_1.Items), { query, ...options });
22
+ }
23
+ /**
24
+ * Delete Xcode instance with given name
25
+ */
26
+ delete(id, options) {
27
+ return this._client.delete((0, path_1.path) `/v1/xcode_instances/${id}`, {
28
+ ...options,
29
+ headers: (0, headers_1.buildHeaders)([{ Accept: '*/*' }, options?.headers]),
30
+ });
31
+ }
32
+ /**
33
+ * Get Xcode instance with given ID
34
+ */
35
+ get(id, options) {
36
+ return this._client.get((0, path_1.path) `/v1/xcode_instances/${id}`, options);
37
+ }
38
+ }
39
+ exports.XcodeInstances = XcodeInstances;
40
+ //# sourceMappingURL=xcode-instances.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xcode-instances.js","sourceRoot":"","sources":["../src/resources/xcode-instances.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,kDAA+C;AAE/C,sDAA0E;AAC1E,oDAAmD;AAEnD,oDAA8C;AAE9C,MAAa,cAAe,SAAQ,sBAAW;IAC7C;;OAEG;IACH,MAAM,CAAC,MAAiC,EAAE,OAAwB;QAChE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;QAChD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACxG,CAAC;IAED;;OAEG;IACH,IAAI,CACF,QAAoD,EAAE,EACtD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAA,kBAAoB,CAAA,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACrG,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,EAAU,EAAE,OAAwB;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAA,WAAI,EAAA,uBAAuB,EAAE,EAAE,EAAE;YAC1D,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;IAED;;OAEG;IACH,GAAG,CAAC,EAAU,EAAE,OAAwB;QACtC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAA,WAAI,EAAA,uBAAuB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;CACF;AAnCD,wCAmCC"}
@@ -0,0 +1,36 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+ import { APIResource } from "../core/resource.mjs";
3
+ import { Items } from "../core/pagination.mjs";
4
+ import { buildHeaders } from "../internal/headers.mjs";
5
+ import { path } from "../internal/utils/path.mjs";
6
+ export class XcodeInstances extends APIResource {
7
+ /**
8
+ * Create an Xcode instance
9
+ */
10
+ create(params, options) {
11
+ const { reuseIfExists, wait, ...body } = params;
12
+ return this._client.post('/v1/xcode_instances', { query: { reuseIfExists, wait }, body, ...options });
13
+ }
14
+ /**
15
+ * List Xcode instances
16
+ */
17
+ list(query = {}, options) {
18
+ return this._client.getAPIList('/v1/xcode_instances', (Items), { query, ...options });
19
+ }
20
+ /**
21
+ * Delete Xcode instance with given name
22
+ */
23
+ delete(id, options) {
24
+ return this._client.delete(path `/v1/xcode_instances/${id}`, {
25
+ ...options,
26
+ headers: buildHeaders([{ Accept: '*/*' }, options?.headers]),
27
+ });
28
+ }
29
+ /**
30
+ * Get Xcode instance with given ID
31
+ */
32
+ get(id, options) {
33
+ return this._client.get(path `/v1/xcode_instances/${id}`, options);
34
+ }
35
+ }
36
+ //# sourceMappingURL=xcode-instances.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"xcode-instances.mjs","sourceRoot":"","sources":["../src/resources/xcode-instances.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EAAE,WAAW,EAAE;OAEf,EAAE,KAAK,EAAiC;OACxC,EAAE,YAAY,EAAE;OAEhB,EAAE,IAAI,EAAE;AAEf,MAAM,OAAO,cAAe,SAAQ,WAAW;IAC7C;;OAEG;IACH,MAAM,CAAC,MAAiC,EAAE,OAAwB;QAChE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;QAChD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACxG,CAAC;IAED;;OAEG;IACH,IAAI,CACF,QAAoD,EAAE,EACtD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAA,KAAoB,CAAA,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACrG,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,EAAU,EAAE,OAAwB;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAA,uBAAuB,EAAE,EAAE,EAAE;YAC1D,GAAG,OAAO;YACV,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;SAC7D,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,EAAU,EAAE,OAAwB;QACtC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAA,uBAAuB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;CACF"}
package/src/client.ts CHANGED
@@ -41,6 +41,19 @@ import {
41
41
  IosInstances,
42
42
  IosInstancesItems,
43
43
  } from './resources/ios-instances';
44
+ import {
45
+ XcodeInstance,
46
+ XcodeInstanceCreateParams,
47
+ XcodeInstanceListParams,
48
+ XcodeInstancesItems,
49
+ } from './resources/xcode-instances';
50
+ import {
51
+ XcodeInstances,
52
+ XcodeCreateClientParams,
53
+ XcodeClient,
54
+ XcodeProjectConfig,
55
+ XcodeBuildOptions,
56
+ } from './resources/xcode-instances-helpers';
44
57
  import { type Fetch } from './internal/builtin-types';
45
58
  import { HeadersLike, NullableHeaders, buildHeaders } from './internal/headers';
46
59
  import { FinalRequestOptions, RequestOptions } from './internal/request-options';
@@ -774,11 +787,13 @@ export class Limrun {
774
787
  androidInstances: API.AndroidInstances = new API.AndroidInstances(this);
775
788
  assets: API.Assets = new API.Assets(this);
776
789
  iosInstances: API.IosInstances = new API.IosInstances(this);
790
+ xcodeInstances: API.XcodeInstances = new API.XcodeInstances(this);
777
791
  }
778
792
 
779
793
  Limrun.AndroidInstances = AndroidInstances;
780
794
  Limrun.Assets = Assets;
781
795
  Limrun.IosInstances = IosInstances;
796
+ Limrun.XcodeInstances = XcodeInstances;
782
797
 
783
798
  export declare namespace Limrun {
784
799
  export type RequestOptions = Opts.RequestOptions;
@@ -812,4 +827,16 @@ export declare namespace Limrun {
812
827
  type IosInstanceCreateParams as IosInstanceCreateParams,
813
828
  type IosInstanceListParams as IosInstanceListParams,
814
829
  };
830
+
831
+ export {
832
+ XcodeInstances as XcodeInstances,
833
+ type XcodeInstance as XcodeInstance,
834
+ type XcodeInstancesItems as XcodeInstancesItems,
835
+ type XcodeInstanceCreateParams as XcodeInstanceCreateParams,
836
+ type XcodeInstanceListParams as XcodeInstanceListParams,
837
+ type XcodeCreateClientParams as XcodeCreateClientParams,
838
+ type XcodeClient as XcodeClient,
839
+ type XcodeProjectConfig as XcodeProjectConfig,
840
+ type XcodeBuildOptions as XcodeBuildOptions,
841
+ };
815
842
  }
@@ -6,6 +6,7 @@
6
6
  */
7
7
 
8
8
  import { createEventSource, type EventSourceClient, type EventSourceMessage } from 'eventsource-client';
9
+ import { nodeProxyTransport } from './internal/proxy-transport';
9
10
 
10
11
  // =============================================================================
11
12
  // Types
@@ -18,6 +19,7 @@ export type ExecRequest = {
18
19
  project?: string;
19
20
  scheme?: string;
20
21
  };
22
+ signedUploadUrl?: string;
21
23
  };
22
24
 
23
25
  export type ExecOptions = {
@@ -106,10 +108,14 @@ export class ExecChildProcess implements PromiseLike<ExecResult> {
106
108
  private readonly options: ExecOptions;
107
109
  private readonly log: (level: 'debug' | 'info' | 'warn' | 'error', msg: string) => void;
108
110
 
109
- constructor(request: ExecRequest, options: ExecOptions) {
111
+ constructor(request: ExecRequest | Promise<ExecRequest>, options: ExecOptions) {
110
112
  this.options = options;
111
113
  this.log = options.log ?? (() => {});
112
- this.resultPromise = this.run(request);
114
+ if (request instanceof Promise) {
115
+ this.resultPromise = request.then((r) => this.run(r));
116
+ } else {
117
+ this.resultPromise = this.run(request);
118
+ }
113
119
  }
114
120
 
115
121
  /** Implement PromiseLike so this object can be awaited */
@@ -153,7 +159,7 @@ export class ExecChildProcess implements PromiseLike<ExecResult> {
153
159
  return;
154
160
  }
155
161
  try {
156
- await fetch(`${this.options.apiUrl}/exec/${this.execId}/cancel`, {
162
+ await nodeProxyTransport.fetch(`${this.options.apiUrl}/exec/${this.execId}/cancel`, {
157
163
  method: 'POST',
158
164
  headers: {
159
165
  Authorization: `Bearer ${this.options.token}`,
@@ -172,7 +178,7 @@ export class ExecChildProcess implements PromiseLike<ExecResult> {
172
178
  // 1. Trigger the build via POST /exec
173
179
  let execRes: Response;
174
180
  try {
175
- execRes = await fetch(`${apiUrl}/exec`, {
181
+ execRes = await nodeProxyTransport.fetch(`${apiUrl}/exec`, {
176
182
  method: 'POST',
177
183
  headers: {
178
184
  'Content-Type': 'application/json',
@@ -273,6 +279,7 @@ export class ExecChildProcess implements PromiseLike<ExecResult> {
273
279
  try {
274
280
  const eventSource = createEventSource({
275
281
  url: eventsUrl,
282
+ fetch: nodeProxyTransport.fetch,
276
283
  headers: { Authorization: `Bearer ${this.options.token}` },
277
284
  onMessage: (message: EventSourceMessage) => {
278
285
  const data = typeof message.data === 'string' ? message.data : String(message.data ?? '');
@@ -329,6 +336,6 @@ export class ExecChildProcess implements PromiseLike<ExecResult> {
329
336
  * // Wait for completion
330
337
  * const { exitCode, status } = await proc;
331
338
  */
332
- export function exec(request: ExecRequest, options: ExecOptions): ExecChildProcess {
339
+ export function exec(request: ExecRequest | Promise<ExecRequest>, options: ExecOptions): ExecChildProcess {
333
340
  return new ExecChildProcess(request, options);
334
341
  }
@@ -7,6 +7,7 @@ import { watchFolderTree } from './folder-sync-watcher';
7
7
  import { type IgnoreFn } from './folder-sync-ignore';
8
8
  import { Readable } from 'stream';
9
9
  import * as zlib from 'zlib';
10
+ import { nodeProxyTransport } from './internal/proxy-transport';
10
11
 
11
12
  // =============================================================================
12
13
  // Folder Sync (HTTP batch)
@@ -218,18 +219,20 @@ async function httpFolderSyncBatch(
218
219
  };
219
220
  sourceStream.on('error', onStreamError);
220
221
  bodyStream.on('error', onStreamError);
221
- const res = await fetch(url, {
222
- method: 'POST',
223
- headers,
224
- body: bodyStream as any,
225
- duplex: 'half' as any,
226
- signal: controller.signal,
227
- } as any).catch((err) => {
228
- if (streamError) {
229
- throw streamError;
230
- }
231
- throw err;
232
- });
222
+ const res = await nodeProxyTransport
223
+ .fetch(url, {
224
+ method: 'POST',
225
+ headers,
226
+ body: bodyStream as any,
227
+ duplex: 'half' as any,
228
+ signal: controller.signal,
229
+ } as any)
230
+ .catch((err) => {
231
+ if (streamError) {
232
+ throw streamError;
233
+ }
234
+ throw err;
235
+ });
233
236
  const text = await res.text();
234
237
  if (!res.ok) {
235
238
  throw new Error(`folder-sync http failed: ${res.status} ${text}`);
package/src/index.ts CHANGED
@@ -8,15 +8,6 @@ export { Limrun, type ClientOptions } from './client';
8
8
  export { PagePromise } from './core/pagination';
9
9
  export * from './instance-client';
10
10
  export * as Ios from './ios-client';
11
- export {
12
- createXCodeSandboxClient,
13
- type XCodeSandboxClient,
14
- type CreateXCodeSandboxClientOptions,
15
- type SimulatorConfig,
16
- type SyncOptions,
17
- type SyncResult,
18
- type XcodeBuildConfig,
19
- } from './sandbox-client';
20
11
  export {
21
12
  exec,
22
13
  type ExecRequest,
@@ -24,6 +15,12 @@ export {
24
15
  type ExecResult,
25
16
  type ExecChildProcess,
26
17
  } from './exec-client';
18
+ export {
19
+ type XcodeCreateClientParams,
20
+ type XcodeClient,
21
+ type XcodeProjectConfig,
22
+ type XcodeBuildOptions,
23
+ } from './resources/xcode-instances-helpers';
27
24
  export {
28
25
  LimrunError,
29
26
  APIError,