@limrun/api 0.12.0 → 0.13.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 (71) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/client.d.mts +10 -4
  3. package/client.d.mts.map +1 -1
  4. package/client.d.ts +10 -4
  5. package/client.d.ts.map +1 -1
  6. package/client.js +8 -0
  7. package/client.js.map +1 -1
  8. package/client.mjs +8 -0
  9. package/client.mjs.map +1 -1
  10. package/core/pagination.d.mts +55 -0
  11. package/core/pagination.d.mts.map +1 -0
  12. package/core/pagination.d.ts +55 -0
  13. package/core/pagination.d.ts.map +1 -0
  14. package/core/pagination.js +115 -0
  15. package/core/pagination.js.map +1 -0
  16. package/core/pagination.mjs +109 -0
  17. package/core/pagination.mjs.map +1 -0
  18. package/index.d.mts +1 -0
  19. package/index.d.mts.map +1 -1
  20. package/index.d.ts +1 -0
  21. package/index.d.ts.map +1 -1
  22. package/index.js +3 -1
  23. package/index.js.map +1 -1
  24. package/index.mjs +1 -0
  25. package/index.mjs.map +1 -1
  26. package/package.json +11 -1
  27. package/pagination.d.mts +2 -0
  28. package/pagination.d.mts.map +1 -0
  29. package/pagination.d.ts +2 -0
  30. package/pagination.d.ts.map +1 -0
  31. package/pagination.js +6 -0
  32. package/pagination.js.map +1 -0
  33. package/pagination.mjs +2 -0
  34. package/pagination.mjs.map +1 -0
  35. package/resources/android-instances-helpers.js +2 -2
  36. package/resources/android-instances-helpers.js.map +1 -1
  37. package/resources/android-instances-helpers.mjs +2 -2
  38. package/resources/android-instances-helpers.mjs.map +1 -1
  39. package/resources/android-instances.d.mts +18 -11
  40. package/resources/android-instances.d.mts.map +1 -1
  41. package/resources/android-instances.d.ts +18 -11
  42. package/resources/android-instances.d.ts.map +1 -1
  43. package/resources/android-instances.js +4 -3
  44. package/resources/android-instances.js.map +1 -1
  45. package/resources/android-instances.mjs +4 -3
  46. package/resources/android-instances.mjs.map +1 -1
  47. package/resources/index.d.mts +2 -2
  48. package/resources/index.d.mts.map +1 -1
  49. package/resources/index.d.ts +2 -2
  50. package/resources/index.d.ts.map +1 -1
  51. package/resources/ios-instances.d.mts +18 -11
  52. package/resources/ios-instances.d.mts.map +1 -1
  53. package/resources/ios-instances.d.ts +18 -11
  54. package/resources/ios-instances.d.ts.map +1 -1
  55. package/resources/ios-instances.js +4 -3
  56. package/resources/ios-instances.js.map +1 -1
  57. package/resources/ios-instances.mjs +4 -3
  58. package/resources/ios-instances.mjs.map +1 -1
  59. package/src/client.ts +28 -4
  60. package/src/core/pagination.ts +167 -0
  61. package/src/index.ts +1 -0
  62. package/src/pagination.ts +2 -0
  63. package/src/resources/android-instances-helpers.ts +2 -2
  64. package/src/resources/android-instances.ts +24 -16
  65. package/src/resources/index.ts +2 -2
  66. package/src/resources/ios-instances.ts +24 -16
  67. package/src/version.ts +1 -1
  68. package/version.d.mts +1 -1
  69. package/version.d.ts +1 -1
  70. package/version.js +1 -1
  71. package/version.mjs +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"android-instances.js","sourceRoot":"","sources":["../src/resources/android-instances.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,kDAA+C;AAE/C,oDAAmD;AAEnD,oDAA8C;AAE9C,MAAa,gBAAiB,SAAQ,sBAAW;IAC/C;;OAEG;IACH,MAAM,CAAC,MAAmC,EAAE,OAAwB;QAClE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED;;OAEG;IACH,IAAI,CACF,QAAsD,EAAE,EACxD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,EAAU,EAAE,OAAwB;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAA,WAAI,EAAA,yBAAyB,EAAE,EAAE,EAAE;YAC5D,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,yBAAyB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;CACF;AAnCD,4CAmCC"}
1
+ {"version":3,"file":"android-instances.js","sourceRoot":"","sources":["../src/resources/android-instances.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,kDAA+C;AAE/C,sDAA0E;AAC1E,oDAAmD;AAEnD,oDAA8C;AAE9C,MAAa,gBAAiB,SAAQ,sBAAW;IAC/C;;OAEG;IACH,MAAM,CAAC,MAAmC,EAAE,OAAwB;QAClE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;QAChD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC1G,CAAC;IAED;;OAEG;IACH,IAAI,CACF,QAAsD,EAAE,EACxD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAA,kBAAsB,CAAA,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACzG,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,EAAU,EAAE,OAAwB;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAA,WAAI,EAAA,yBAAyB,EAAE,EAAE,EAAE;YAC5D,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,yBAAyB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;CACF;AAnCD,4CAmCC"}
@@ -1,5 +1,6 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
  import { APIResource } from "../core/resource.mjs";
3
+ import { Items } from "../core/pagination.mjs";
3
4
  import { buildHeaders } from "../internal/headers.mjs";
4
5
  import { path } from "../internal/utils/path.mjs";
5
6
  export class AndroidInstances extends APIResource {
@@ -7,14 +8,14 @@ export class AndroidInstances extends APIResource {
7
8
  * Create an Android instance
8
9
  */
9
10
  create(params, options) {
10
- const { wait, ...body } = params;
11
- return this._client.post('/v1/android_instances', { query: { wait }, body, ...options });
11
+ const { reuseIfExists, wait, ...body } = params;
12
+ return this._client.post('/v1/android_instances', { query: { reuseIfExists, wait }, body, ...options });
12
13
  }
13
14
  /**
14
15
  * List Android instances
15
16
  */
16
17
  list(query = {}, options) {
17
- return this._client.get('/v1/android_instances', { query, ...options });
18
+ return this._client.getAPIList('/v1/android_instances', (Items), { query, ...options });
18
19
  }
19
20
  /**
20
21
  * Delete Android instance with given name
@@ -1 +1 @@
1
- {"version":3,"file":"android-instances.mjs","sourceRoot":"","sources":["../src/resources/android-instances.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EAAE,WAAW,EAAE;OAEf,EAAE,YAAY,EAAE;OAEhB,EAAE,IAAI,EAAE;AAEf,MAAM,OAAO,gBAAiB,SAAQ,WAAW;IAC/C;;OAEG;IACH,MAAM,CAAC,MAAmC,EAAE,OAAwB;QAClE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED;;OAEG;IACH,IAAI,CACF,QAAsD,EAAE,EACxD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,EAAU,EAAE,OAAwB;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAA,yBAAyB,EAAE,EAAE,EAAE;YAC5D,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,yBAAyB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;CACF"}
1
+ {"version":3,"file":"android-instances.mjs","sourceRoot":"","sources":["../src/resources/android-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,gBAAiB,SAAQ,WAAW;IAC/C;;OAEG;IACH,MAAM,CAAC,MAAmC,EAAE,OAAwB;QAClE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;QAChD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC1G,CAAC;IAED;;OAEG;IACH,IAAI,CACF,QAAsD,EAAE,EACxD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,uBAAuB,EAAE,CAAA,KAAsB,CAAA,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACzG,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,EAAU,EAAE,OAAwB;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAA,yBAAyB,EAAE,EAAE,EAAE;YAC5D,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,yBAAyB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;CACF"}
@@ -1,6 +1,6 @@
1
- export { type AndroidInstance, type AndroidInstanceListResponse, type AndroidInstanceCreateParams, type AndroidInstanceListParams, } from "./android-instances.mjs";
1
+ export { type AndroidInstance, type AndroidInstanceCreateParams, type AndroidInstanceListParams, type AndroidInstancesItems, } from "./android-instances.mjs";
2
2
  export { type Asset, type AssetListResponse, type AssetGetOrCreateResponse, type AssetListParams, type AssetGetParams, type AssetGetOrCreateParams, } from "./assets.mjs";
3
- export { IosInstances, type IosInstance, type IosInstanceListResponse, type IosInstanceCreateParams, type IosInstanceListParams, } from "./ios-instances.mjs";
3
+ export { IosInstances, type IosInstance, type IosInstanceCreateParams, type IosInstanceListParams, type IosInstancesItems, } from "./ios-instances.mjs";
4
4
  export { AndroidInstances } from "./android-instances-helpers.mjs";
5
5
  export { Assets, AssetGetOrUploadParams, AssetGetOrUploadResponse } from "./assets-helpers.mjs";
6
6
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/resources/index.ts"],"names":[],"mappings":"OAEO,EACL,KAAK,eAAe,EACpB,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,GAC/B;OACM,EACL,KAAK,KAAK,EACV,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,sBAAsB,GAC5B;OACM,EACL,YAAY,EACZ,KAAK,WAAW,EAChB,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,GAC3B;OAEM,EAAE,gBAAgB,EAAE;OAEpB,EAAE,MAAM,EAAE,sBAAsB,EAAE,wBAAwB,EAAE"}
1
+ {"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/resources/index.ts"],"names":[],"mappings":"OAEO,EACL,KAAK,eAAe,EACpB,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,GAC3B;OACM,EACL,KAAK,KAAK,EACV,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,sBAAsB,GAC5B;OACM,EACL,YAAY,EACZ,KAAK,WAAW,EAChB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,GACvB;OAEM,EAAE,gBAAgB,EAAE;OAEpB,EAAE,MAAM,EAAE,sBAAsB,EAAE,wBAAwB,EAAE"}
@@ -1,6 +1,6 @@
1
- export { type AndroidInstance, type AndroidInstanceListResponse, type AndroidInstanceCreateParams, type AndroidInstanceListParams, } from "./android-instances.js";
1
+ export { type AndroidInstance, type AndroidInstanceCreateParams, type AndroidInstanceListParams, type AndroidInstancesItems, } from "./android-instances.js";
2
2
  export { type Asset, type AssetListResponse, type AssetGetOrCreateResponse, type AssetListParams, type AssetGetParams, type AssetGetOrCreateParams, } from "./assets.js";
3
- export { IosInstances, type IosInstance, type IosInstanceListResponse, type IosInstanceCreateParams, type IosInstanceListParams, } from "./ios-instances.js";
3
+ export { IosInstances, type IosInstance, type IosInstanceCreateParams, type IosInstanceListParams, type IosInstancesItems, } from "./ios-instances.js";
4
4
  export { AndroidInstances } from "./android-instances-helpers.js";
5
5
  export { Assets, AssetGetOrUploadParams, AssetGetOrUploadResponse } from "./assets-helpers.js";
6
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/resources/index.ts"],"names":[],"mappings":"OAEO,EACL,KAAK,eAAe,EACpB,KAAK,2BAA2B,EAChC,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,GAC/B;OACM,EACL,KAAK,KAAK,EACV,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,sBAAsB,GAC5B;OACM,EACL,YAAY,EACZ,KAAK,WAAW,EAChB,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,GAC3B;OAEM,EAAE,gBAAgB,EAAE;OAEpB,EAAE,MAAM,EAAE,sBAAsB,EAAE,wBAAwB,EAAE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/resources/index.ts"],"names":[],"mappings":"OAEO,EACL,KAAK,eAAe,EACpB,KAAK,2BAA2B,EAChC,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,GAC3B;OACM,EACL,KAAK,KAAK,EACV,KAAK,iBAAiB,EACtB,KAAK,wBAAwB,EAC7B,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,sBAAsB,GAC5B;OACM,EACL,YAAY,EACZ,KAAK,WAAW,EAChB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAC1B,KAAK,iBAAiB,GACvB;OAEM,EAAE,gBAAgB,EAAE;OAEpB,EAAE,MAAM,EAAE,sBAAsB,EAAE,wBAAwB,EAAE"}
@@ -1,5 +1,6 @@
1
1
  import { APIResource } from "../core/resource.mjs";
2
2
  import { APIPromise } from "../core/api-promise.mjs";
3
+ import { Items, type ItemsParams, PagePromise } from "../core/pagination.mjs";
3
4
  import { RequestOptions } from "../internal/request-options.mjs";
4
5
  export declare class IosInstances extends APIResource {
5
6
  /**
@@ -9,7 +10,7 @@ export declare class IosInstances extends APIResource {
9
10
  /**
10
11
  * List iOS instances
11
12
  */
12
- list(query?: IosInstanceListParams | null | undefined, options?: RequestOptions): APIPromise<IosInstanceListResponse>;
13
+ list(query?: IosInstanceListParams | null | undefined, options?: RequestOptions): PagePromise<IosInstancesItems, IosInstance>;
13
14
  /**
14
15
  * Delete iOS instance with given name
15
16
  */
@@ -19,6 +20,7 @@ export declare class IosInstances extends APIResource {
19
20
  */
20
21
  get(id: string, options?: RequestOptions): APIPromise<IosInstance>;
21
22
  }
23
+ export type IosInstancesItems = Items<IosInstance>;
22
24
  export interface IosInstance {
23
25
  metadata: IosInstance.Metadata;
24
26
  spec: IosInstance.Spec;
@@ -60,8 +62,12 @@ export declare namespace IosInstance {
60
62
  portForwardWebSocketUrl?: string;
61
63
  }
62
64
  }
63
- export type IosInstanceListResponse = Array<IosInstance>;
64
65
  export interface IosInstanceCreateParams {
66
+ /**
67
+ * Query param: If there is another instance with given labels and region, return
68
+ * that one instead of creating a new instance.
69
+ */
70
+ reuseIfExists?: boolean;
65
71
  /**
66
72
  * Query param: Return after the instance is ready to connect.
67
73
  */
@@ -109,7 +115,8 @@ export declare namespace IosInstanceCreateParams {
109
115
  }
110
116
  interface InitialAsset {
111
117
  kind: 'App';
112
- source: 'URL' | 'AssetName';
118
+ source: 'URL' | 'AssetName' | 'AssetID';
119
+ assetId?: string;
113
120
  assetName?: string;
114
121
  /**
115
122
  * Launch mode specifies how to launch the app after installation. If not given,
@@ -120,26 +127,26 @@ export declare namespace IosInstanceCreateParams {
120
127
  }
121
128
  }
122
129
  }
123
- export interface IosInstanceListParams {
130
+ export interface IosInstanceListParams extends ItemsParams {
124
131
  /**
125
132
  * Labels filter to apply to instances to return. Expects a comma-separated list of
126
133
  * key=value pairs (e.g., env=prod,region=us-west).
127
134
  */
128
135
  labelSelector?: string;
129
- /**
130
- * Maximum number of items to be returned. The default is 50.
131
- */
132
- limit?: number;
133
136
  /**
134
137
  * Region where the instance is scheduled on.
135
138
  */
136
139
  region?: string;
137
140
  /**
138
- * State filter to apply to instances to return.
141
+ * State filter to apply to Android instances to return. Each comma-separated state
142
+ * will be used as part of an OR clause, e.g. "assigned,ready" will return all
143
+ * instances that are either assigned or ready.
144
+ *
145
+ * Valid states: creating, assigned, ready, terminated, unknown
139
146
  */
140
- state?: 'unknown' | 'creating' | 'assigned' | 'ready' | 'terminated';
147
+ state?: string;
141
148
  }
142
149
  export declare namespace IosInstances {
143
- export { type IosInstance as IosInstance, type IosInstanceListResponse as IosInstanceListResponse, type IosInstanceCreateParams as IosInstanceCreateParams, type IosInstanceListParams as IosInstanceListParams, };
150
+ export { type IosInstance as IosInstance, type IosInstancesItems as IosInstancesItems, type IosInstanceCreateParams as IosInstanceCreateParams, type IosInstanceListParams as IosInstanceListParams, };
144
151
  }
145
152
  //# sourceMappingURL=ios-instances.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ios-instances.d.mts","sourceRoot":"","sources":["../src/resources/ios-instances.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ios-instances.d.mts","sourceRoot":"","sources":["../src/resources/ios-instances.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { APIResource } from "../core/resource.js";
2
2
  import { APIPromise } from "../core/api-promise.js";
3
+ import { Items, type ItemsParams, PagePromise } from "../core/pagination.js";
3
4
  import { RequestOptions } from "../internal/request-options.js";
4
5
  export declare class IosInstances extends APIResource {
5
6
  /**
@@ -9,7 +10,7 @@ export declare class IosInstances extends APIResource {
9
10
  /**
10
11
  * List iOS instances
11
12
  */
12
- list(query?: IosInstanceListParams | null | undefined, options?: RequestOptions): APIPromise<IosInstanceListResponse>;
13
+ list(query?: IosInstanceListParams | null | undefined, options?: RequestOptions): PagePromise<IosInstancesItems, IosInstance>;
13
14
  /**
14
15
  * Delete iOS instance with given name
15
16
  */
@@ -19,6 +20,7 @@ export declare class IosInstances extends APIResource {
19
20
  */
20
21
  get(id: string, options?: RequestOptions): APIPromise<IosInstance>;
21
22
  }
23
+ export type IosInstancesItems = Items<IosInstance>;
22
24
  export interface IosInstance {
23
25
  metadata: IosInstance.Metadata;
24
26
  spec: IosInstance.Spec;
@@ -60,8 +62,12 @@ export declare namespace IosInstance {
60
62
  portForwardWebSocketUrl?: string;
61
63
  }
62
64
  }
63
- export type IosInstanceListResponse = Array<IosInstance>;
64
65
  export interface IosInstanceCreateParams {
66
+ /**
67
+ * Query param: If there is another instance with given labels and region, return
68
+ * that one instead of creating a new instance.
69
+ */
70
+ reuseIfExists?: boolean;
65
71
  /**
66
72
  * Query param: Return after the instance is ready to connect.
67
73
  */
@@ -109,7 +115,8 @@ export declare namespace IosInstanceCreateParams {
109
115
  }
110
116
  interface InitialAsset {
111
117
  kind: 'App';
112
- source: 'URL' | 'AssetName';
118
+ source: 'URL' | 'AssetName' | 'AssetID';
119
+ assetId?: string;
113
120
  assetName?: string;
114
121
  /**
115
122
  * Launch mode specifies how to launch the app after installation. If not given,
@@ -120,26 +127,26 @@ export declare namespace IosInstanceCreateParams {
120
127
  }
121
128
  }
122
129
  }
123
- export interface IosInstanceListParams {
130
+ export interface IosInstanceListParams extends ItemsParams {
124
131
  /**
125
132
  * Labels filter to apply to instances to return. Expects a comma-separated list of
126
133
  * key=value pairs (e.g., env=prod,region=us-west).
127
134
  */
128
135
  labelSelector?: string;
129
- /**
130
- * Maximum number of items to be returned. The default is 50.
131
- */
132
- limit?: number;
133
136
  /**
134
137
  * Region where the instance is scheduled on.
135
138
  */
136
139
  region?: string;
137
140
  /**
138
- * State filter to apply to instances to return.
141
+ * State filter to apply to Android instances to return. Each comma-separated state
142
+ * will be used as part of an OR clause, e.g. "assigned,ready" will return all
143
+ * instances that are either assigned or ready.
144
+ *
145
+ * Valid states: creating, assigned, ready, terminated, unknown
139
146
  */
140
- state?: 'unknown' | 'creating' | 'assigned' | 'ready' | 'terminated';
147
+ state?: string;
141
148
  }
142
149
  export declare namespace IosInstances {
143
- export { type IosInstance as IosInstance, type IosInstanceListResponse as IosInstanceListResponse, type IosInstanceCreateParams as IosInstanceCreateParams, type IosInstanceListParams as IosInstanceListParams, };
150
+ export { type IosInstance as IosInstance, type IosInstancesItems as IosInstancesItems, type IosInstanceCreateParams as IosInstanceCreateParams, type IosInstanceListParams as IosInstanceListParams, };
144
151
  }
145
152
  //# sourceMappingURL=ios-instances.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ios-instances.d.ts","sourceRoot":"","sources":["../src/resources/ios-instances.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ios-instances.d.ts","sourceRoot":"","sources":["../src/resources/ios-instances.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.IosInstances = void 0;
5
5
  const resource_1 = require("../core/resource.js");
6
+ const pagination_1 = require("../core/pagination.js");
6
7
  const headers_1 = require("../internal/headers.js");
7
8
  const path_1 = require("../internal/utils/path.js");
8
9
  class IosInstances extends resource_1.APIResource {
@@ -10,14 +11,14 @@ class IosInstances extends resource_1.APIResource {
10
11
  * Create an iOS instance
11
12
  */
12
13
  create(params, options) {
13
- const { wait, ...body } = params;
14
- return this._client.post('/v1/ios_instances', { query: { wait }, body, ...options });
14
+ const { reuseIfExists, wait, ...body } = params;
15
+ return this._client.post('/v1/ios_instances', { query: { reuseIfExists, wait }, body, ...options });
15
16
  }
16
17
  /**
17
18
  * List iOS instances
18
19
  */
19
20
  list(query = {}, options) {
20
- return this._client.get('/v1/ios_instances', { query, ...options });
21
+ return this._client.getAPIList('/v1/ios_instances', (pagination_1.Items), { query, ...options });
21
22
  }
22
23
  /**
23
24
  * Delete iOS instance with given name
@@ -1 +1 @@
1
- {"version":3,"file":"ios-instances.js","sourceRoot":"","sources":["../src/resources/ios-instances.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,kDAA+C;AAE/C,oDAAmD;AAEnD,oDAA8C;AAE9C,MAAa,YAAa,SAAQ,sBAAW;IAC3C;;OAEG;IACH,MAAM,CAAC,MAA+B,EAAE,OAAwB;QAC9D,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACvF,CAAC;IAED;;OAEG;IACH,IAAI,CACF,QAAkD,EAAE,EACpD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,EAAU,EAAE,OAAwB;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAA,WAAI,EAAA,qBAAqB,EAAE,EAAE,EAAE;YACxD,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,qBAAqB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;CACF;AAnCD,oCAmCC"}
1
+ {"version":3,"file":"ios-instances.js","sourceRoot":"","sources":["../src/resources/ios-instances.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,kDAA+C;AAE/C,sDAA0E;AAC1E,oDAAmD;AAEnD,oDAA8C;AAE9C,MAAa,YAAa,SAAQ,sBAAW;IAC3C;;OAEG;IACH,MAAM,CAAC,MAA+B,EAAE,OAAwB;QAC9D,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;QAChD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACtG,CAAC;IAED;;OAEG;IACH,IAAI,CACF,QAAkD,EAAE,EACpD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAA,kBAAkB,CAAA,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACjG,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,EAAU,EAAE,OAAwB;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAA,WAAI,EAAA,qBAAqB,EAAE,EAAE,EAAE;YACxD,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,qBAAqB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;CACF;AAnCD,oCAmCC"}
@@ -1,5 +1,6 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
  import { APIResource } from "../core/resource.mjs";
3
+ import { Items } from "../core/pagination.mjs";
3
4
  import { buildHeaders } from "../internal/headers.mjs";
4
5
  import { path } from "../internal/utils/path.mjs";
5
6
  export class IosInstances extends APIResource {
@@ -7,14 +8,14 @@ export class IosInstances extends APIResource {
7
8
  * Create an iOS instance
8
9
  */
9
10
  create(params, options) {
10
- const { wait, ...body } = params;
11
- return this._client.post('/v1/ios_instances', { query: { wait }, body, ...options });
11
+ const { reuseIfExists, wait, ...body } = params;
12
+ return this._client.post('/v1/ios_instances', { query: { reuseIfExists, wait }, body, ...options });
12
13
  }
13
14
  /**
14
15
  * List iOS instances
15
16
  */
16
17
  list(query = {}, options) {
17
- return this._client.get('/v1/ios_instances', { query, ...options });
18
+ return this._client.getAPIList('/v1/ios_instances', (Items), { query, ...options });
18
19
  }
19
20
  /**
20
21
  * Delete iOS instance with given name
@@ -1 +1 @@
1
- {"version":3,"file":"ios-instances.mjs","sourceRoot":"","sources":["../src/resources/ios-instances.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EAAE,WAAW,EAAE;OAEf,EAAE,YAAY,EAAE;OAEhB,EAAE,IAAI,EAAE;AAEf,MAAM,OAAO,YAAa,SAAQ,WAAW;IAC3C;;OAEG;IACH,MAAM,CAAC,MAA+B,EAAE,OAAwB;QAC9D,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACvF,CAAC;IAED;;OAEG;IACH,IAAI,CACF,QAAkD,EAAE,EACpD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,EAAU,EAAE,OAAwB;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAA,qBAAqB,EAAE,EAAE,EAAE;YACxD,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,qBAAqB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;CACF"}
1
+ {"version":3,"file":"ios-instances.mjs","sourceRoot":"","sources":["../src/resources/ios-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,YAAa,SAAQ,WAAW;IAC3C;;OAEG;IACH,MAAM,CAAC,MAA+B,EAAE,OAAwB;QAC9D,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;QAChD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACtG,CAAC;IAED;;OAEG;IACH,IAAI,CACF,QAAkD,EAAE,EACpD,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAA,KAAkB,CAAA,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACjG,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,EAAU,EAAE,OAAwB;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAA,qBAAqB,EAAE,EAAE,EAAE;YACxD,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,qBAAqB,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;CACF"}
package/src/client.ts CHANGED
@@ -13,6 +13,8 @@ import * as Shims from './internal/shims';
13
13
  import * as Opts from './internal/request-options';
14
14
  import { VERSION } from './version';
15
15
  import * as Errors from './core/error';
16
+ import * as Pagination from './core/pagination';
17
+ import { AbstractPage, type ItemsParams, ItemsResponse } from './core/pagination';
16
18
  import * as Uploads from './core/uploads';
17
19
  import * as API from './resources/index';
18
20
  import { APIPromise } from './core/api-promise';
@@ -20,7 +22,7 @@ import {
20
22
  AndroidInstance,
21
23
  AndroidInstanceCreateParams,
22
24
  AndroidInstanceListParams,
23
- AndroidInstanceListResponse,
25
+ AndroidInstancesItems,
24
26
  } from './resources/android-instances';
25
27
  import {
26
28
  Asset,
@@ -35,8 +37,8 @@ import {
35
37
  IosInstance,
36
38
  IosInstanceCreateParams,
37
39
  IosInstanceListParams,
38
- IosInstanceListResponse,
39
40
  IosInstances,
41
+ IosInstancesItems,
40
42
  } from './resources/ios-instances';
41
43
  import { type Fetch } from './internal/builtin-types';
42
44
  import { HeadersLike, NullableHeaders, buildHeaders } from './internal/headers';
@@ -509,6 +511,25 @@ export class Limrun {
509
511
  return { response, options, controller, requestLogID, retryOfRequestLogID, startTime };
510
512
  }
511
513
 
514
+ getAPIList<Item, PageClass extends Pagination.AbstractPage<Item> = Pagination.AbstractPage<Item>>(
515
+ path: string,
516
+ Page: new (...args: any[]) => PageClass,
517
+ opts?: RequestOptions,
518
+ ): Pagination.PagePromise<PageClass, Item> {
519
+ return this.requestAPIList(Page, { method: 'get', path, ...opts });
520
+ }
521
+
522
+ requestAPIList<
523
+ Item = unknown,
524
+ PageClass extends Pagination.AbstractPage<Item> = Pagination.AbstractPage<Item>,
525
+ >(
526
+ Page: new (...args: ConstructorParameters<typeof Pagination.AbstractPage>) => PageClass,
527
+ options: FinalRequestOptions,
528
+ ): Pagination.PagePromise<PageClass, Item> {
529
+ const request = this.makeRequest(options, null, undefined);
530
+ return new Pagination.PagePromise<PageClass, Item>(this as any as Limrun, request, Page);
531
+ }
532
+
512
533
  async fetchWithTimeout(
513
534
  url: RequestInfo,
514
535
  init: RequestInit | undefined,
@@ -753,10 +774,13 @@ Limrun.IosInstances = IosInstances;
753
774
  export declare namespace Limrun {
754
775
  export type RequestOptions = Opts.RequestOptions;
755
776
 
777
+ export import Items = Pagination.Items;
778
+ export { type ItemsParams as ItemsParams, type ItemsResponse as ItemsResponse };
779
+
756
780
  export {
757
781
  AndroidInstances as AndroidInstances,
758
782
  type AndroidInstance as AndroidInstance,
759
- type AndroidInstanceListResponse as AndroidInstanceListResponse,
783
+ type AndroidInstancesItems as AndroidInstancesItems,
760
784
  type AndroidInstanceCreateParams as AndroidInstanceCreateParams,
761
785
  type AndroidInstanceListParams as AndroidInstanceListParams,
762
786
  };
@@ -775,7 +799,7 @@ export declare namespace Limrun {
775
799
  export {
776
800
  IosInstances as IosInstances,
777
801
  type IosInstance as IosInstance,
778
- type IosInstanceListResponse as IosInstanceListResponse,
802
+ type IosInstancesItems as IosInstancesItems,
779
803
  type IosInstanceCreateParams as IosInstanceCreateParams,
780
804
  type IosInstanceListParams as IosInstanceListParams,
781
805
  };
@@ -0,0 +1,167 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { LimrunError } from './error';
4
+ import { FinalRequestOptions } from '../internal/request-options';
5
+ import { defaultParseResponse } from '../internal/parse';
6
+ import { type Limrun } from '../client';
7
+ import { APIPromise } from './api-promise';
8
+ import { type APIResponseProps } from '../internal/parse';
9
+ import { maybeObj } from '../internal/utils/values';
10
+
11
+ export type PageRequestOptions = Pick<FinalRequestOptions, 'query' | 'headers' | 'body' | 'path' | 'method'>;
12
+
13
+ export abstract class AbstractPage<Item> implements AsyncIterable<Item> {
14
+ #client: Limrun;
15
+ protected options: FinalRequestOptions;
16
+
17
+ protected response: Response;
18
+ protected body: unknown;
19
+
20
+ constructor(client: Limrun, response: Response, body: unknown, options: FinalRequestOptions) {
21
+ this.#client = client;
22
+ this.options = options;
23
+ this.response = response;
24
+ this.body = body;
25
+ }
26
+
27
+ abstract nextPageRequestOptions(): PageRequestOptions | null;
28
+
29
+ abstract getPaginatedItems(): Item[];
30
+
31
+ hasNextPage(): boolean {
32
+ const items = this.getPaginatedItems();
33
+ if (!items.length) return false;
34
+ return this.nextPageRequestOptions() != null;
35
+ }
36
+
37
+ async getNextPage(): Promise<this> {
38
+ const nextOptions = this.nextPageRequestOptions();
39
+ if (!nextOptions) {
40
+ throw new LimrunError(
41
+ 'No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.',
42
+ );
43
+ }
44
+
45
+ return await this.#client.requestAPIList(this.constructor as any, nextOptions);
46
+ }
47
+
48
+ async *iterPages(): AsyncGenerator<this> {
49
+ let page: this = this;
50
+ yield page;
51
+ while (page.hasNextPage()) {
52
+ page = await page.getNextPage();
53
+ yield page;
54
+ }
55
+ }
56
+
57
+ async *[Symbol.asyncIterator](): AsyncGenerator<Item> {
58
+ for await (const page of this.iterPages()) {
59
+ for (const item of page.getPaginatedItems()) {
60
+ yield item;
61
+ }
62
+ }
63
+ }
64
+ }
65
+
66
+ /**
67
+ * This subclass of Promise will resolve to an instantiated Page once the request completes.
68
+ *
69
+ * It also implements AsyncIterable to allow auto-paginating iteration on an unawaited list call, eg:
70
+ *
71
+ * for await (const item of client.items.list()) {
72
+ * console.log(item)
73
+ * }
74
+ */
75
+ export class PagePromise<
76
+ PageClass extends AbstractPage<Item>,
77
+ Item = ReturnType<PageClass['getPaginatedItems']>[number],
78
+ >
79
+ extends APIPromise<PageClass>
80
+ implements AsyncIterable<Item>
81
+ {
82
+ constructor(
83
+ client: Limrun,
84
+ request: Promise<APIResponseProps>,
85
+ Page: new (...args: ConstructorParameters<typeof AbstractPage>) => PageClass,
86
+ ) {
87
+ super(
88
+ client,
89
+ request,
90
+ async (client, props) =>
91
+ new Page(client, props.response, await defaultParseResponse(client, props), props.options),
92
+ );
93
+ }
94
+
95
+ /**
96
+ * Allow auto-paginating iteration on an unawaited list call, eg:
97
+ *
98
+ * for await (const item of client.items.list()) {
99
+ * console.log(item)
100
+ * }
101
+ */
102
+ async *[Symbol.asyncIterator](): AsyncGenerator<Item> {
103
+ const page = await this;
104
+ for await (const item of page) {
105
+ yield item;
106
+ }
107
+ }
108
+ }
109
+
110
+ export type ItemsResponse<Item> = Item[];
111
+
112
+ export interface ItemsParams {
113
+ startingAfter?: string;
114
+
115
+ endingBefore?: string;
116
+
117
+ limit?: number;
118
+ }
119
+
120
+ export class Items<Item extends { metadata: { id: string } }> extends AbstractPage<Item> {
121
+ items: Array<Item>;
122
+
123
+ constructor(client: Limrun, response: Response, body: ItemsResponse<Item>, options: FinalRequestOptions) {
124
+ super(client, response, body, options);
125
+
126
+ this.items = body || [];
127
+ }
128
+
129
+ getPaginatedItems(): Item[] {
130
+ return this.items ?? [];
131
+ }
132
+
133
+ nextPageRequestOptions(): PageRequestOptions | null {
134
+ const items = this.getPaginatedItems();
135
+
136
+ const isForwards = !(
137
+ typeof this.options.query === 'object' && 'endingBefore' in (this.options.query || {})
138
+ );
139
+ if (isForwards) {
140
+ const id = items[items.length - 1]?.metadata.id;
141
+ if (!id) {
142
+ return null;
143
+ }
144
+
145
+ return {
146
+ ...this.options,
147
+ query: {
148
+ ...maybeObj(this.options.query),
149
+ startingAfter: id,
150
+ },
151
+ };
152
+ }
153
+
154
+ const id = items[0]?.metadata.id;
155
+ if (!id) {
156
+ return null;
157
+ }
158
+
159
+ return {
160
+ ...this.options,
161
+ query: {
162
+ ...maybeObj(this.options.query),
163
+ endingBefore: id,
164
+ },
165
+ };
166
+ }
167
+ }
package/src/index.ts CHANGED
@@ -5,6 +5,7 @@ export { Limrun as default } from './client';
5
5
  export { type Uploadable, toFile } from './core/uploads';
6
6
  export { APIPromise } from './core/api-promise';
7
7
  export { Limrun, type ClientOptions } from './client';
8
+ export { PagePromise } from './core/pagination';
8
9
  export { createInstanceClient } from './instance-client';
9
10
  export {
10
11
  LimrunError,
@@ -0,0 +1,2 @@
1
+ /** @deprecated Import from ./core/pagination instead */
2
+ export * from './core/pagination';
@@ -19,8 +19,8 @@ export class AndroidInstances extends GeneratedAndroidInstances {
19
19
  },
20
20
  options,
21
21
  );
22
- if (instances && instances.length > 0) {
23
- return instances[0]!;
22
+ if (instances && instances.items.length > 0) {
23
+ return instances.items[0]!;
24
24
  }
25
25
  return super.create(params, options);
26
26
  }