@nirvana-labs/nirvana 1.20.3 → 1.21.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 (261) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/README.md +31 -0
  3. package/client.d.mts +7 -0
  4. package/client.d.mts.map +1 -1
  5. package/client.d.ts +7 -0
  6. package/client.d.ts.map +1 -1
  7. package/client.js +8 -0
  8. package/client.js.map +1 -1
  9. package/client.mjs +8 -0
  10. package/client.mjs.map +1 -1
  11. package/core/pagination.d.mts +61 -0
  12. package/core/pagination.d.mts.map +1 -0
  13. package/core/pagination.d.ts +61 -0
  14. package/core/pagination.d.ts.map +1 -0
  15. package/core/pagination.js +101 -0
  16. package/core/pagination.js.map +1 -0
  17. package/core/pagination.mjs +95 -0
  18. package/core/pagination.mjs.map +1 -0
  19. package/index.d.mts +1 -0
  20. package/index.d.mts.map +1 -1
  21. package/index.d.ts +1 -0
  22. package/index.d.ts.map +1 -1
  23. package/index.js +3 -1
  24. package/index.js.map +1 -1
  25. package/index.mjs +1 -0
  26. package/index.mjs.map +1 -1
  27. package/internal/tslib.js +18 -18
  28. package/package.json +11 -1
  29. package/pagination.d.mts +2 -0
  30. package/pagination.d.mts.map +1 -0
  31. package/pagination.d.ts +2 -0
  32. package/pagination.d.ts.map +1 -0
  33. package/pagination.js +6 -0
  34. package/pagination.js.map +1 -0
  35. package/pagination.mjs +2 -0
  36. package/pagination.mjs.map +1 -0
  37. package/resources/api-keys.d.mts +16 -4
  38. package/resources/api-keys.d.mts.map +1 -1
  39. package/resources/api-keys.d.ts +16 -4
  40. package/resources/api-keys.d.ts.map +1 -1
  41. package/resources/api-keys.js +8 -4
  42. package/resources/api-keys.js.map +1 -1
  43. package/resources/api-keys.mjs +8 -4
  44. package/resources/api-keys.mjs.map +1 -1
  45. package/resources/compute/compute.d.mts +4 -4
  46. package/resources/compute/compute.d.mts.map +1 -1
  47. package/resources/compute/compute.d.ts +4 -4
  48. package/resources/compute/compute.d.ts.map +1 -1
  49. package/resources/compute/compute.js.map +1 -1
  50. package/resources/compute/compute.mjs.map +1 -1
  51. package/resources/compute/index.d.mts +2 -2
  52. package/resources/compute/index.d.mts.map +1 -1
  53. package/resources/compute/index.d.ts +2 -2
  54. package/resources/compute/index.d.ts.map +1 -1
  55. package/resources/compute/index.js.map +1 -1
  56. package/resources/compute/index.mjs.map +1 -1
  57. package/resources/compute/vms/index.d.mts +2 -2
  58. package/resources/compute/vms/index.d.mts.map +1 -1
  59. package/resources/compute/vms/index.d.ts +2 -2
  60. package/resources/compute/vms/index.d.ts.map +1 -1
  61. package/resources/compute/vms/index.js.map +1 -1
  62. package/resources/compute/vms/index.mjs.map +1 -1
  63. package/resources/compute/vms/vms.d.mts +16 -5
  64. package/resources/compute/vms/vms.d.mts.map +1 -1
  65. package/resources/compute/vms/vms.d.ts +16 -5
  66. package/resources/compute/vms/vms.d.ts.map +1 -1
  67. package/resources/compute/vms/vms.js +7 -3
  68. package/resources/compute/vms/vms.js.map +1 -1
  69. package/resources/compute/vms/vms.mjs +7 -3
  70. package/resources/compute/vms/vms.mjs.map +1 -1
  71. package/resources/compute/vms/volumes.d.mts +15 -5
  72. package/resources/compute/vms/volumes.d.mts.map +1 -1
  73. package/resources/compute/vms/volumes.d.ts +15 -5
  74. package/resources/compute/vms/volumes.d.ts.map +1 -1
  75. package/resources/compute/vms/volumes.js +11 -4
  76. package/resources/compute/vms/volumes.js.map +1 -1
  77. package/resources/compute/vms/volumes.mjs +11 -4
  78. package/resources/compute/vms/volumes.mjs.map +1 -1
  79. package/resources/compute/volumes/index.d.mts +1 -1
  80. package/resources/compute/volumes/index.d.mts.map +1 -1
  81. package/resources/compute/volumes/index.d.ts +1 -1
  82. package/resources/compute/volumes/index.d.ts.map +1 -1
  83. package/resources/compute/volumes/index.js.map +1 -1
  84. package/resources/compute/volumes/index.mjs.map +1 -1
  85. package/resources/compute/volumes/volumes.d.mts +14 -3
  86. package/resources/compute/volumes/volumes.d.mts.map +1 -1
  87. package/resources/compute/volumes/volumes.d.ts +14 -3
  88. package/resources/compute/volumes/volumes.d.ts.map +1 -1
  89. package/resources/compute/volumes/volumes.js +7 -3
  90. package/resources/compute/volumes/volumes.js.map +1 -1
  91. package/resources/compute/volumes/volumes.mjs +7 -3
  92. package/resources/compute/volumes/volumes.mjs.map +1 -1
  93. package/resources/networking/connect/connect.d.mts +15 -4
  94. package/resources/networking/connect/connect.d.mts.map +1 -1
  95. package/resources/networking/connect/connect.d.ts +15 -4
  96. package/resources/networking/connect/connect.d.ts.map +1 -1
  97. package/resources/networking/connect/connect.js.map +1 -1
  98. package/resources/networking/connect/connect.mjs +1 -1
  99. package/resources/networking/connect/connect.mjs.map +1 -1
  100. package/resources/networking/connect/connections.d.mts +11 -4
  101. package/resources/networking/connect/connections.d.mts.map +1 -1
  102. package/resources/networking/connect/connections.d.ts +11 -4
  103. package/resources/networking/connect/connections.d.ts.map +1 -1
  104. package/resources/networking/connect/connections.js +7 -4
  105. package/resources/networking/connect/connections.js.map +1 -1
  106. package/resources/networking/connect/connections.mjs +7 -4
  107. package/resources/networking/connect/connections.mjs.map +1 -1
  108. package/resources/networking/connect/index.d.mts +3 -3
  109. package/resources/networking/connect/index.d.mts.map +1 -1
  110. package/resources/networking/connect/index.d.ts +3 -3
  111. package/resources/networking/connect/index.d.ts.map +1 -1
  112. package/resources/networking/connect/index.js.map +1 -1
  113. package/resources/networking/connect/index.mjs +1 -1
  114. package/resources/networking/connect/index.mjs.map +1 -1
  115. package/resources/networking/connect/routes.d.mts +13 -4
  116. package/resources/networking/connect/routes.d.mts.map +1 -1
  117. package/resources/networking/connect/routes.d.ts +13 -4
  118. package/resources/networking/connect/routes.d.ts.map +1 -1
  119. package/resources/networking/connect/routes.js +10 -4
  120. package/resources/networking/connect/routes.js.map +1 -1
  121. package/resources/networking/connect/routes.mjs +10 -4
  122. package/resources/networking/connect/routes.mjs.map +1 -1
  123. package/resources/networking/firewall-rules.d.mts +16 -4
  124. package/resources/networking/firewall-rules.d.mts.map +1 -1
  125. package/resources/networking/firewall-rules.d.ts +16 -4
  126. package/resources/networking/firewall-rules.d.ts.map +1 -1
  127. package/resources/networking/firewall-rules.js +12 -4
  128. package/resources/networking/firewall-rules.js.map +1 -1
  129. package/resources/networking/firewall-rules.mjs +12 -4
  130. package/resources/networking/firewall-rules.mjs.map +1 -1
  131. package/resources/networking/index.d.mts +3 -3
  132. package/resources/networking/index.d.mts.map +1 -1
  133. package/resources/networking/index.d.ts +3 -3
  134. package/resources/networking/index.d.ts.map +1 -1
  135. package/resources/networking/index.js.map +1 -1
  136. package/resources/networking/index.mjs.map +1 -1
  137. package/resources/networking/networking.d.mts +4 -4
  138. package/resources/networking/networking.d.mts.map +1 -1
  139. package/resources/networking/networking.d.ts +4 -4
  140. package/resources/networking/networking.d.ts.map +1 -1
  141. package/resources/networking/networking.js.map +1 -1
  142. package/resources/networking/networking.mjs +1 -1
  143. package/resources/networking/networking.mjs.map +1 -1
  144. package/resources/networking/vpcs/index.d.mts +1 -1
  145. package/resources/networking/vpcs/index.d.mts.map +1 -1
  146. package/resources/networking/vpcs/index.d.ts +1 -1
  147. package/resources/networking/vpcs/index.d.ts.map +1 -1
  148. package/resources/networking/vpcs/index.js.map +1 -1
  149. package/resources/networking/vpcs/index.mjs.map +1 -1
  150. package/resources/networking/vpcs/vpcs.d.mts +14 -3
  151. package/resources/networking/vpcs/vpcs.d.mts.map +1 -1
  152. package/resources/networking/vpcs/vpcs.d.ts +14 -3
  153. package/resources/networking/vpcs/vpcs.d.ts.map +1 -1
  154. package/resources/networking/vpcs/vpcs.js +7 -3
  155. package/resources/networking/vpcs/vpcs.js.map +1 -1
  156. package/resources/networking/vpcs/vpcs.mjs +7 -3
  157. package/resources/networking/vpcs/vpcs.mjs.map +1 -1
  158. package/resources/operations.d.mts +11 -2
  159. package/resources/operations.d.mts.map +1 -1
  160. package/resources/operations.d.ts +11 -2
  161. package/resources/operations.d.ts.map +1 -1
  162. package/resources/operations.js +3 -2
  163. package/resources/operations.js.map +1 -1
  164. package/resources/operations.mjs +3 -2
  165. package/resources/operations.mjs.map +1 -1
  166. package/resources/rpc-nodes/dedicated/blockchains.d.mts +13 -4
  167. package/resources/rpc-nodes/dedicated/blockchains.d.mts.map +1 -1
  168. package/resources/rpc-nodes/dedicated/blockchains.d.ts +13 -4
  169. package/resources/rpc-nodes/dedicated/blockchains.d.ts.map +1 -1
  170. package/resources/rpc-nodes/dedicated/blockchains.js +7 -4
  171. package/resources/rpc-nodes/dedicated/blockchains.js.map +1 -1
  172. package/resources/rpc-nodes/dedicated/blockchains.mjs +7 -4
  173. package/resources/rpc-nodes/dedicated/blockchains.mjs.map +1 -1
  174. package/resources/rpc-nodes/dedicated/dedicated.d.mts +22 -6
  175. package/resources/rpc-nodes/dedicated/dedicated.d.mts.map +1 -1
  176. package/resources/rpc-nodes/dedicated/dedicated.d.ts +22 -6
  177. package/resources/rpc-nodes/dedicated/dedicated.d.ts.map +1 -1
  178. package/resources/rpc-nodes/dedicated/dedicated.js +7 -4
  179. package/resources/rpc-nodes/dedicated/dedicated.js.map +1 -1
  180. package/resources/rpc-nodes/dedicated/dedicated.mjs +7 -4
  181. package/resources/rpc-nodes/dedicated/dedicated.mjs.map +1 -1
  182. package/resources/rpc-nodes/dedicated/index.d.mts +2 -2
  183. package/resources/rpc-nodes/dedicated/index.d.mts.map +1 -1
  184. package/resources/rpc-nodes/dedicated/index.d.ts +2 -2
  185. package/resources/rpc-nodes/dedicated/index.d.ts.map +1 -1
  186. package/resources/rpc-nodes/dedicated/index.js.map +1 -1
  187. package/resources/rpc-nodes/dedicated/index.mjs.map +1 -1
  188. package/resources/rpc-nodes/flex/blockchains.d.mts +13 -4
  189. package/resources/rpc-nodes/flex/blockchains.d.mts.map +1 -1
  190. package/resources/rpc-nodes/flex/blockchains.d.ts +13 -4
  191. package/resources/rpc-nodes/flex/blockchains.d.ts.map +1 -1
  192. package/resources/rpc-nodes/flex/blockchains.js +10 -4
  193. package/resources/rpc-nodes/flex/blockchains.js.map +1 -1
  194. package/resources/rpc-nodes/flex/blockchains.mjs +10 -4
  195. package/resources/rpc-nodes/flex/blockchains.mjs.map +1 -1
  196. package/resources/rpc-nodes/flex/flex.d.mts +22 -5
  197. package/resources/rpc-nodes/flex/flex.d.mts.map +1 -1
  198. package/resources/rpc-nodes/flex/flex.d.ts +22 -5
  199. package/resources/rpc-nodes/flex/flex.d.ts.map +1 -1
  200. package/resources/rpc-nodes/flex/flex.js +7 -3
  201. package/resources/rpc-nodes/flex/flex.js.map +1 -1
  202. package/resources/rpc-nodes/flex/flex.mjs +7 -3
  203. package/resources/rpc-nodes/flex/flex.mjs.map +1 -1
  204. package/resources/rpc-nodes/flex/index.d.mts +2 -2
  205. package/resources/rpc-nodes/flex/index.d.mts.map +1 -1
  206. package/resources/rpc-nodes/flex/index.d.ts +2 -2
  207. package/resources/rpc-nodes/flex/index.d.ts.map +1 -1
  208. package/resources/rpc-nodes/flex/index.js.map +1 -1
  209. package/resources/rpc-nodes/flex/index.mjs.map +1 -1
  210. package/resources/rpc-nodes/index.d.mts +2 -2
  211. package/resources/rpc-nodes/index.d.mts.map +1 -1
  212. package/resources/rpc-nodes/index.d.ts +2 -2
  213. package/resources/rpc-nodes/index.d.ts.map +1 -1
  214. package/resources/rpc-nodes/index.js.map +1 -1
  215. package/resources/rpc-nodes/index.mjs.map +1 -1
  216. package/resources/rpc-nodes/rpc-nodes.d.mts +4 -4
  217. package/resources/rpc-nodes/rpc-nodes.d.mts.map +1 -1
  218. package/resources/rpc-nodes/rpc-nodes.d.ts +4 -4
  219. package/resources/rpc-nodes/rpc-nodes.d.ts.map +1 -1
  220. package/resources/rpc-nodes/rpc-nodes.js.map +1 -1
  221. package/resources/rpc-nodes/rpc-nodes.mjs.map +1 -1
  222. package/resources/shared.d.mts +8 -0
  223. package/resources/shared.d.mts.map +1 -1
  224. package/resources/shared.d.ts +8 -0
  225. package/resources/shared.d.ts.map +1 -1
  226. package/src/client.ts +25 -0
  227. package/src/core/pagination.ts +167 -0
  228. package/src/index.ts +1 -0
  229. package/src/pagination.ts +2 -0
  230. package/src/resources/api-keys.ts +23 -4
  231. package/src/resources/compute/compute.ts +8 -0
  232. package/src/resources/compute/index.ts +4 -0
  233. package/src/resources/compute/vms/index.ts +3 -1
  234. package/src/resources/compute/vms/vms.ts +20 -5
  235. package/src/resources/compute/vms/volumes.ts +25 -6
  236. package/src/resources/compute/volumes/index.ts +2 -0
  237. package/src/resources/compute/volumes/volumes.ts +21 -3
  238. package/src/resources/networking/connect/connect.ts +24 -3
  239. package/src/resources/networking/connect/connections.ts +20 -4
  240. package/src/resources/networking/connect/index.ts +9 -2
  241. package/src/resources/networking/connect/routes.ts +22 -5
  242. package/src/resources/networking/firewall-rules.ts +27 -4
  243. package/src/resources/networking/index.ts +6 -0
  244. package/src/resources/networking/networking.ts +16 -1
  245. package/src/resources/networking/vpcs/index.ts +2 -0
  246. package/src/resources/networking/vpcs/vpcs.ts +18 -3
  247. package/src/resources/operations.ts +18 -2
  248. package/src/resources/rpc-nodes/dedicated/blockchains.ts +23 -5
  249. package/src/resources/rpc-nodes/dedicated/dedicated.ts +31 -6
  250. package/src/resources/rpc-nodes/dedicated/index.ts +4 -1
  251. package/src/resources/rpc-nodes/flex/blockchains.ts +22 -5
  252. package/src/resources/rpc-nodes/flex/flex.ts +31 -5
  253. package/src/resources/rpc-nodes/flex/index.ts +4 -1
  254. package/src/resources/rpc-nodes/index.ts +6 -0
  255. package/src/resources/rpc-nodes/rpc-nodes.ts +8 -0
  256. package/src/resources/shared.ts +11 -0
  257. package/src/version.ts +1 -1
  258. package/version.d.mts +1 -1
  259. package/version.d.ts +1 -1
  260. package/version.js +1 -1
  261. package/version.mjs +1 -1
@@ -1,4 +1,4 @@
1
- export { DedicatedResource, type Dedicated, type DedicatedBlockchain, type DedicatedBlockchainList, type DedicatedList, } from "./dedicated/index.js";
2
- export { FlexResource, type Flex, type FlexBlockchain, type FlexBlockchainList, type FlexList, type FlexCreateParams, type FlexUpdateParams, } from "./flex/index.js";
1
+ export { DedicatedResource, type Dedicated, type DedicatedBlockchain, type DedicatedBlockchainList, type DedicatedList, type DedicatedListParams, type DedicatedBlockchainsCursor, type DedicatedsCursor, } from "./dedicated/index.js";
2
+ export { FlexResource, type Flex, type FlexBlockchain, type FlexBlockchainList, type FlexList, type FlexCreateParams, type FlexUpdateParams, type FlexListParams, type FlexBlockchainsCursor, type FlexesCursor, } from "./flex/index.js";
3
3
  export { RPCNodes } from "./rpc-nodes.js";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/rpc-nodes/index.ts"],"names":[],"mappings":"OAEO,EACL,iBAAiB,EACjB,KAAK,SAAS,EACd,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,aAAa,GACnB;OACM,EACL,YAAY,EACZ,KAAK,IAAI,EACT,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB;OACM,EAAE,QAAQ,EAAE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/resources/rpc-nodes/index.ts"],"names":[],"mappings":"OAEO,EACL,iBAAiB,EACjB,KAAK,SAAS,EACd,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACxB,KAAK,0BAA0B,EAC/B,KAAK,gBAAgB,GACtB;OACM,EACL,YAAY,EACZ,KAAK,IAAI,EACT,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,QAAQ,EACb,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,YAAY,GAClB;OACM,EAAE,QAAQ,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resources/rpc-nodes/index.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,8CAM2B;AALzB,0GAAA,iBAAiB,OAAA;AAMnB,yCAQsB;AAPpB,qGAAA,YAAY,OAAA;AAQd,4CAAuC;AAA9B,qGAAA,QAAQ,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/resources/rpc-nodes/index.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;AAEtF,8CAS2B;AARzB,0GAAA,iBAAiB,OAAA;AASnB,yCAWsB;AAVpB,qGAAA,YAAY,OAAA;AAWd,4CAAuC;AAA9B,qGAAA,QAAQ,OAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/resources/rpc-nodes/index.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EACL,iBAAiB,GAKlB;OACM,EACL,YAAY,GAOb;OACM,EAAE,QAAQ,EAAE"}
1
+ {"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../src/resources/rpc-nodes/index.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EACL,iBAAiB,GAQlB;OACM,EACL,YAAY,GAUb;OACM,EAAE,QAAQ,EAAE"}
@@ -1,14 +1,14 @@
1
1
  import { APIResource } from "../../core/resource.mjs";
2
2
  import * as DedicatedAPI from "./dedicated/dedicated.mjs";
3
- import { Dedicated, DedicatedBlockchain, DedicatedBlockchainList, DedicatedList, DedicatedResource } from "./dedicated/dedicated.mjs";
3
+ import { Dedicated, DedicatedBlockchain, DedicatedBlockchainList, DedicatedList, DedicatedListParams, DedicatedResource, DedicatedsCursor } from "./dedicated/dedicated.mjs";
4
4
  import * as FlexAPI from "./flex/flex.mjs";
5
- import { Flex, FlexBlockchain, FlexBlockchainList, FlexCreateParams, FlexList, FlexResource, FlexUpdateParams } from "./flex/flex.mjs";
5
+ import { Flex, FlexBlockchain, FlexBlockchainList, FlexCreateParams, FlexList, FlexListParams, FlexResource, FlexUpdateParams, FlexesCursor } from "./flex/flex.mjs";
6
6
  export declare class RPCNodes extends APIResource {
7
7
  flex: FlexAPI.FlexResource;
8
8
  dedicated: DedicatedAPI.DedicatedResource;
9
9
  }
10
10
  export declare namespace RPCNodes {
11
- export { FlexResource as FlexResource, type Flex as Flex, type FlexBlockchain as FlexBlockchain, type FlexBlockchainList as FlexBlockchainList, type FlexList as FlexList, type FlexCreateParams as FlexCreateParams, type FlexUpdateParams as FlexUpdateParams, };
12
- export { DedicatedResource as DedicatedResource, type Dedicated as Dedicated, type DedicatedBlockchain as DedicatedBlockchain, type DedicatedBlockchainList as DedicatedBlockchainList, type DedicatedList as DedicatedList, };
11
+ export { FlexResource as FlexResource, type Flex as Flex, type FlexBlockchain as FlexBlockchain, type FlexBlockchainList as FlexBlockchainList, type FlexList as FlexList, type FlexesCursor as FlexesCursor, type FlexCreateParams as FlexCreateParams, type FlexUpdateParams as FlexUpdateParams, type FlexListParams as FlexListParams, };
12
+ export { DedicatedResource as DedicatedResource, type Dedicated as Dedicated, type DedicatedBlockchain as DedicatedBlockchain, type DedicatedBlockchainList as DedicatedBlockchainList, type DedicatedList as DedicatedList, type DedicatedsCursor as DedicatedsCursor, type DedicatedListParams as DedicatedListParams, };
13
13
  }
14
14
  //# sourceMappingURL=rpc-nodes.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-nodes.d.mts","sourceRoot":"","sources":["../../src/resources/rpc-nodes/rpc-nodes.ts"],"names":[],"mappings":"OAEO,EAAE,WAAW,EAAE;OACf,KAAK,YAAY;OACjB,EACL,SAAS,EACT,mBAAmB,EACnB,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EAClB;OACM,KAAK,OAAO;OACZ,EACL,IAAI,EACJ,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,gBAAgB,EACjB;AAED,qBAAa,QAAS,SAAQ,WAAW;IACvC,IAAI,EAAE,OAAO,CAAC,YAAY,CAA0C;IACpE,SAAS,EAAE,YAAY,CAAC,iBAAiB,CAAoD;CAC9F;AAKD,MAAM,CAAC,OAAO,WAAW,QAAQ,CAAC;IAChC,OAAO,EACL,YAAY,IAAI,YAAY,EAC5B,KAAK,IAAI,IAAI,IAAI,EACjB,KAAK,cAAc,IAAI,cAAc,EACrC,KAAK,kBAAkB,IAAI,kBAAkB,EAC7C,KAAK,QAAQ,IAAI,QAAQ,EACzB,KAAK,gBAAgB,IAAI,gBAAgB,EACzC,KAAK,gBAAgB,IAAI,gBAAgB,GAC1C,CAAC;IAEF,OAAO,EACL,iBAAiB,IAAI,iBAAiB,EACtC,KAAK,SAAS,IAAI,SAAS,EAC3B,KAAK,mBAAmB,IAAI,mBAAmB,EAC/C,KAAK,uBAAuB,IAAI,uBAAuB,EACvD,KAAK,aAAa,IAAI,aAAa,GACpC,CAAC;CACH"}
1
+ {"version":3,"file":"rpc-nodes.d.mts","sourceRoot":"","sources":["../../src/resources/rpc-nodes/rpc-nodes.ts"],"names":[],"mappings":"OAEO,EAAE,WAAW,EAAE;OACf,KAAK,YAAY;OACjB,EACL,SAAS,EACT,mBAAmB,EACnB,uBAAuB,EACvB,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EACjB;OACM,KAAK,OAAO;OACZ,EACL,IAAI,EACJ,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACb;AAED,qBAAa,QAAS,SAAQ,WAAW;IACvC,IAAI,EAAE,OAAO,CAAC,YAAY,CAA0C;IACpE,SAAS,EAAE,YAAY,CAAC,iBAAiB,CAAoD;CAC9F;AAKD,MAAM,CAAC,OAAO,WAAW,QAAQ,CAAC;IAChC,OAAO,EACL,YAAY,IAAI,YAAY,EAC5B,KAAK,IAAI,IAAI,IAAI,EACjB,KAAK,cAAc,IAAI,cAAc,EACrC,KAAK,kBAAkB,IAAI,kBAAkB,EAC7C,KAAK,QAAQ,IAAI,QAAQ,EACzB,KAAK,YAAY,IAAI,YAAY,EACjC,KAAK,gBAAgB,IAAI,gBAAgB,EACzC,KAAK,gBAAgB,IAAI,gBAAgB,EACzC,KAAK,cAAc,IAAI,cAAc,GACtC,CAAC;IAEF,OAAO,EACL,iBAAiB,IAAI,iBAAiB,EACtC,KAAK,SAAS,IAAI,SAAS,EAC3B,KAAK,mBAAmB,IAAI,mBAAmB,EAC/C,KAAK,uBAAuB,IAAI,uBAAuB,EACvD,KAAK,aAAa,IAAI,aAAa,EACnC,KAAK,gBAAgB,IAAI,gBAAgB,EACzC,KAAK,mBAAmB,IAAI,mBAAmB,GAChD,CAAC;CACH"}
@@ -1,14 +1,14 @@
1
1
  import { APIResource } from "../../core/resource.js";
2
2
  import * as DedicatedAPI from "./dedicated/dedicated.js";
3
- import { Dedicated, DedicatedBlockchain, DedicatedBlockchainList, DedicatedList, DedicatedResource } from "./dedicated/dedicated.js";
3
+ import { Dedicated, DedicatedBlockchain, DedicatedBlockchainList, DedicatedList, DedicatedListParams, DedicatedResource, DedicatedsCursor } from "./dedicated/dedicated.js";
4
4
  import * as FlexAPI from "./flex/flex.js";
5
- import { Flex, FlexBlockchain, FlexBlockchainList, FlexCreateParams, FlexList, FlexResource, FlexUpdateParams } from "./flex/flex.js";
5
+ import { Flex, FlexBlockchain, FlexBlockchainList, FlexCreateParams, FlexList, FlexListParams, FlexResource, FlexUpdateParams, FlexesCursor } from "./flex/flex.js";
6
6
  export declare class RPCNodes extends APIResource {
7
7
  flex: FlexAPI.FlexResource;
8
8
  dedicated: DedicatedAPI.DedicatedResource;
9
9
  }
10
10
  export declare namespace RPCNodes {
11
- export { FlexResource as FlexResource, type Flex as Flex, type FlexBlockchain as FlexBlockchain, type FlexBlockchainList as FlexBlockchainList, type FlexList as FlexList, type FlexCreateParams as FlexCreateParams, type FlexUpdateParams as FlexUpdateParams, };
12
- export { DedicatedResource as DedicatedResource, type Dedicated as Dedicated, type DedicatedBlockchain as DedicatedBlockchain, type DedicatedBlockchainList as DedicatedBlockchainList, type DedicatedList as DedicatedList, };
11
+ export { FlexResource as FlexResource, type Flex as Flex, type FlexBlockchain as FlexBlockchain, type FlexBlockchainList as FlexBlockchainList, type FlexList as FlexList, type FlexesCursor as FlexesCursor, type FlexCreateParams as FlexCreateParams, type FlexUpdateParams as FlexUpdateParams, type FlexListParams as FlexListParams, };
12
+ export { DedicatedResource as DedicatedResource, type Dedicated as Dedicated, type DedicatedBlockchain as DedicatedBlockchain, type DedicatedBlockchainList as DedicatedBlockchainList, type DedicatedList as DedicatedList, type DedicatedsCursor as DedicatedsCursor, type DedicatedListParams as DedicatedListParams, };
13
13
  }
14
14
  //# sourceMappingURL=rpc-nodes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-nodes.d.ts","sourceRoot":"","sources":["../../src/resources/rpc-nodes/rpc-nodes.ts"],"names":[],"mappings":"OAEO,EAAE,WAAW,EAAE;OACf,KAAK,YAAY;OACjB,EACL,SAAS,EACT,mBAAmB,EACnB,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EAClB;OACM,KAAK,OAAO;OACZ,EACL,IAAI,EACJ,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,gBAAgB,EACjB;AAED,qBAAa,QAAS,SAAQ,WAAW;IACvC,IAAI,EAAE,OAAO,CAAC,YAAY,CAA0C;IACpE,SAAS,EAAE,YAAY,CAAC,iBAAiB,CAAoD;CAC9F;AAKD,MAAM,CAAC,OAAO,WAAW,QAAQ,CAAC;IAChC,OAAO,EACL,YAAY,IAAI,YAAY,EAC5B,KAAK,IAAI,IAAI,IAAI,EACjB,KAAK,cAAc,IAAI,cAAc,EACrC,KAAK,kBAAkB,IAAI,kBAAkB,EAC7C,KAAK,QAAQ,IAAI,QAAQ,EACzB,KAAK,gBAAgB,IAAI,gBAAgB,EACzC,KAAK,gBAAgB,IAAI,gBAAgB,GAC1C,CAAC;IAEF,OAAO,EACL,iBAAiB,IAAI,iBAAiB,EACtC,KAAK,SAAS,IAAI,SAAS,EAC3B,KAAK,mBAAmB,IAAI,mBAAmB,EAC/C,KAAK,uBAAuB,IAAI,uBAAuB,EACvD,KAAK,aAAa,IAAI,aAAa,GACpC,CAAC;CACH"}
1
+ {"version":3,"file":"rpc-nodes.d.ts","sourceRoot":"","sources":["../../src/resources/rpc-nodes/rpc-nodes.ts"],"names":[],"mappings":"OAEO,EAAE,WAAW,EAAE;OACf,KAAK,YAAY;OACjB,EACL,SAAS,EACT,mBAAmB,EACnB,uBAAuB,EACvB,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EACjB;OACM,KAAK,OAAO;OACZ,EACL,IAAI,EACJ,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACb;AAED,qBAAa,QAAS,SAAQ,WAAW;IACvC,IAAI,EAAE,OAAO,CAAC,YAAY,CAA0C;IACpE,SAAS,EAAE,YAAY,CAAC,iBAAiB,CAAoD;CAC9F;AAKD,MAAM,CAAC,OAAO,WAAW,QAAQ,CAAC;IAChC,OAAO,EACL,YAAY,IAAI,YAAY,EAC5B,KAAK,IAAI,IAAI,IAAI,EACjB,KAAK,cAAc,IAAI,cAAc,EACrC,KAAK,kBAAkB,IAAI,kBAAkB,EAC7C,KAAK,QAAQ,IAAI,QAAQ,EACzB,KAAK,YAAY,IAAI,YAAY,EACjC,KAAK,gBAAgB,IAAI,gBAAgB,EACzC,KAAK,gBAAgB,IAAI,gBAAgB,EACzC,KAAK,cAAc,IAAI,cAAc,GACtC,CAAC;IAEF,OAAO,EACL,iBAAiB,IAAI,iBAAiB,EACtC,KAAK,SAAS,IAAI,SAAS,EAC3B,KAAK,mBAAmB,IAAI,mBAAmB,EAC/C,KAAK,uBAAuB,IAAI,uBAAuB,EACvD,KAAK,aAAa,IAAI,aAAa,EACnC,KAAK,gBAAgB,IAAI,gBAAgB,EACzC,KAAK,mBAAmB,IAAI,mBAAmB,GAChD,CAAC;CACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-nodes.js","sourceRoot":"","sources":["../../src/resources/rpc-nodes/rpc-nodes.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;;AAEtF,qDAAkD;AAClD,+EAAsD;AACtD,wDAM+B;AAC/B,gEAAuC;AACvC,yCAQqB;AAErB,MAAa,QAAS,SAAQ,sBAAW;IAAzC;;QACE,SAAI,GAAyB,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpE,cAAS,GAAmC,IAAI,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/F,CAAC;CAAA;AAHD,4BAGC;AAED,QAAQ,CAAC,YAAY,GAAG,mBAAY,CAAC;AACrC,QAAQ,CAAC,iBAAiB,GAAG,6BAAiB,CAAC"}
1
+ {"version":3,"file":"rpc-nodes.js","sourceRoot":"","sources":["../../src/resources/rpc-nodes/rpc-nodes.ts"],"names":[],"mappings":";AAAA,sFAAsF;;;;AAEtF,qDAAkD;AAClD,+EAAsD;AACtD,wDAQ+B;AAC/B,gEAAuC;AACvC,yCAUqB;AAErB,MAAa,QAAS,SAAQ,sBAAW;IAAzC;;QACE,SAAI,GAAyB,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpE,cAAS,GAAmC,IAAI,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/F,CAAC;CAAA;AAHD,4BAGC;AAED,QAAQ,CAAC,YAAY,GAAG,mBAAY,CAAC;AACrC,QAAQ,CAAC,iBAAiB,GAAG,6BAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"rpc-nodes.mjs","sourceRoot":"","sources":["../../src/resources/rpc-nodes/rpc-nodes.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EAAE,WAAW,EAAE;OACf,KAAK,YAAY;OACjB,EAKL,iBAAiB,GAClB;OACM,KAAK,OAAO;OACZ,EAML,YAAY,GAEb;AAED,MAAM,OAAO,QAAS,SAAQ,WAAW;IAAzC;;QACE,SAAI,GAAyB,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpE,cAAS,GAAmC,IAAI,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/F,CAAC;CAAA;AAED,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;AACrC,QAAQ,CAAC,iBAAiB,GAAG,iBAAiB,CAAC"}
1
+ {"version":3,"file":"rpc-nodes.mjs","sourceRoot":"","sources":["../../src/resources/rpc-nodes/rpc-nodes.ts"],"names":[],"mappings":"AAAA,sFAAsF;OAE/E,EAAE,WAAW,EAAE;OACf,KAAK,YAAY;OACjB,EAML,iBAAiB,GAElB;OACM,KAAK,OAAO;OACZ,EAOL,YAAY,GAGb;AAED,MAAM,OAAO,QAAS,SAAQ,WAAW;IAAzC;;QACE,SAAI,GAAyB,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpE,cAAS,GAAmC,IAAI,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/F,CAAC;CAAA;AAED,QAAQ,CAAC,YAAY,GAAG,YAAY,CAAC;AACrC,QAAQ,CAAC,iBAAiB,GAAG,iBAAiB,CAAC"}
@@ -1,3 +1,11 @@
1
+ /**
2
+ * Pagination response details.
3
+ */
4
+ export interface Pagination {
5
+ next_cursor: string | null;
6
+ previous_cursor: string | null;
7
+ total_count: number;
8
+ }
1
9
  /**
2
10
  * Region the resource is in.
3
11
  */
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.mts","sourceRoot":"","sources":["../src/resources/shared.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,MAAM,UAAU,GAClB,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,CAAC;AAEf;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"shared.d.mts","sourceRoot":"","sources":["../src/resources/shared.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAClB,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,CAAC;AAEf;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC"}
@@ -1,3 +1,11 @@
1
+ /**
2
+ * Pagination response details.
3
+ */
4
+ export interface Pagination {
5
+ next_cursor: string | null;
6
+ previous_cursor: string | null;
7
+ total_count: number;
8
+ }
1
9
  /**
2
10
  * Region the resource is in.
3
11
  */
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../src/resources/shared.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,MAAM,UAAU,GAClB,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,CAAC;AAEf;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../src/resources/shared.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAE/B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAClB,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,GACV,UAAU,CAAC;AAEf;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC"}
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 CursorParams, CursorResponse } 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';
@@ -488,6 +490,25 @@ export class NirvanaLabs {
488
490
  return { response, options, controller, requestLogID, retryOfRequestLogID, startTime };
489
491
  }
490
492
 
493
+ getAPIList<Item, PageClass extends Pagination.AbstractPage<Item> = Pagination.AbstractPage<Item>>(
494
+ path: string,
495
+ Page: new (...args: any[]) => PageClass,
496
+ opts?: RequestOptions,
497
+ ): Pagination.PagePromise<PageClass, Item> {
498
+ return this.requestAPIList(Page, { method: 'get', path, ...opts });
499
+ }
500
+
501
+ requestAPIList<
502
+ Item = unknown,
503
+ PageClass extends Pagination.AbstractPage<Item> = Pagination.AbstractPage<Item>,
504
+ >(
505
+ Page: new (...args: ConstructorParameters<typeof Pagination.AbstractPage>) => PageClass,
506
+ options: FinalRequestOptions,
507
+ ): Pagination.PagePromise<PageClass, Item> {
508
+ const request = this.makeRequest(options, null, undefined);
509
+ return new Pagination.PagePromise<PageClass, Item>(this as any as NirvanaLabs, request, Page);
510
+ }
511
+
491
512
  async fetchWithTimeout(
492
513
  url: RequestInfo,
493
514
  init: RequestInit | undefined,
@@ -740,6 +761,9 @@ NirvanaLabs.Vektor = Vektor;
740
761
  export declare namespace NirvanaLabs {
741
762
  export type RequestOptions = Opts.RequestOptions;
742
763
 
764
+ export import Cursor = Pagination.Cursor;
765
+ export { type CursorParams as CursorParams, type CursorResponse as CursorResponse };
766
+
743
767
  export { UserResource as UserResource };
744
768
 
745
769
  export { APIKeys as APIKeys };
@@ -754,6 +778,7 @@ export declare namespace NirvanaLabs {
754
778
 
755
779
  export { Vektor as Vektor };
756
780
 
781
+ export type Pagination = API.Pagination;
757
782
  export type RegionName = API.RegionName;
758
783
  export type ResourceStatus = API.ResourceStatus;
759
784
  }
@@ -0,0 +1,167 @@
1
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
+
3
+ import { NirvanaLabsError } from './error';
4
+ import { FinalRequestOptions } from '../internal/request-options';
5
+ import { defaultParseResponse } from '../internal/parse';
6
+ import { type NirvanaLabs } 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: NirvanaLabs;
15
+ protected options: FinalRequestOptions;
16
+
17
+ protected response: Response;
18
+ protected body: unknown;
19
+
20
+ constructor(client: NirvanaLabs, 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 NirvanaLabsError(
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: NirvanaLabs,
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 interface CursorResponse<Item> {
111
+ items: Array<Item>;
112
+
113
+ pagination: CursorResponse.Pagination | null;
114
+ }
115
+
116
+ export namespace CursorResponse {
117
+ export interface Pagination {
118
+ next_cursor?: string | null;
119
+
120
+ previous_cursor?: string | null;
121
+
122
+ total_count?: number;
123
+ }
124
+ }
125
+
126
+ export interface CursorParams {
127
+ cursor?: string;
128
+
129
+ limit?: number;
130
+ }
131
+
132
+ export class Cursor<Item> extends AbstractPage<Item> implements CursorResponse<Item> {
133
+ items: Array<Item>;
134
+
135
+ pagination: CursorResponse.Pagination | null;
136
+
137
+ constructor(
138
+ client: NirvanaLabs,
139
+ response: Response,
140
+ body: CursorResponse<Item>,
141
+ options: FinalRequestOptions,
142
+ ) {
143
+ super(client, response, body, options);
144
+
145
+ this.items = body.items || [];
146
+ this.pagination = body.pagination || null;
147
+ }
148
+
149
+ getPaginatedItems(): Item[] {
150
+ return this.items ?? [];
151
+ }
152
+
153
+ nextPageRequestOptions(): PageRequestOptions | null {
154
+ const cursor = this.pagination?.next_cursor;
155
+ if (!cursor) {
156
+ return null;
157
+ }
158
+
159
+ return {
160
+ ...this.options,
161
+ query: {
162
+ ...maybeObj(this.options.query),
163
+ cursor,
164
+ },
165
+ };
166
+ }
167
+ }
package/src/index.ts CHANGED
@@ -5,6 +5,7 @@ export { NirvanaLabs as default } from './client';
5
5
  export { type Uploadable, toFile } from './core/uploads';
6
6
  export { APIPromise } from './core/api-promise';
7
7
  export { NirvanaLabs, type ClientOptions } from './client';
8
+ export { PagePromise } from './core/pagination';
8
9
  export {
9
10
  NirvanaLabsError,
10
11
  APIError,
@@ -0,0 +1,2 @@
1
+ /** @deprecated Import from ./core/pagination instead */
2
+ export * from './core/pagination';
@@ -1,7 +1,9 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  import { APIResource } from '../core/resource';
4
+ import * as Shared from './shared';
4
5
  import { APIPromise } from '../core/api-promise';
6
+ import { Cursor, type CursorParams, PagePromise } from '../core/pagination';
5
7
  import { buildHeaders } from '../internal/headers';
6
8
  import { RequestOptions } from '../internal/request-options';
7
9
  import { path } from '../internal/utils/path';
@@ -14,7 +16,7 @@ export class APIKeys extends APIResource {
14
16
  * ```ts
15
17
  * const apiKey = await client.apiKeys.create({
16
18
  * expires_at: '2025-12-31T23:59:59Z',
17
- * name: 'my-api-key',
19
+ * name: 'My API Key',
18
20
  * });
19
21
  * ```
20
22
  */
@@ -39,11 +41,17 @@ export class APIKeys extends APIResource {
39
41
  *
40
42
  * @example
41
43
  * ```ts
42
- * const apiKeyList = await client.apiKeys.list();
44
+ * // Automatically fetches more pages as needed.
45
+ * for await (const apiKey of client.apiKeys.list()) {
46
+ * // ...
47
+ * }
43
48
  * ```
44
49
  */
45
- list(options?: RequestOptions): APIPromise<APIKeyList> {
46
- return this._client.get('/v1/api_keys', options);
50
+ list(
51
+ query: APIKeyListParams | null | undefined = {},
52
+ options?: RequestOptions,
53
+ ): PagePromise<APIKeysCursor, APIKey> {
54
+ return this._client.getAPIList('/v1/api_keys', Cursor<APIKey>, { query, ...options });
47
55
  }
48
56
 
49
57
  /**
@@ -74,6 +82,8 @@ export class APIKeys extends APIResource {
74
82
  }
75
83
  }
76
84
 
85
+ export type APIKeysCursor = Cursor<APIKey>;
86
+
77
87
  /**
78
88
  * API Key response.
79
89
  */
@@ -126,6 +136,11 @@ export interface APIKey {
126
136
 
127
137
  export interface APIKeyList {
128
138
  items: Array<APIKey>;
139
+
140
+ /**
141
+ * Pagination response details.
142
+ */
143
+ pagination: Shared.Pagination;
129
144
  }
130
145
 
131
146
  export interface APIKeyCreateParams {
@@ -162,11 +177,15 @@ export interface APIKeyUpdateParams {
162
177
  tags?: Array<string>;
163
178
  }
164
179
 
180
+ export interface APIKeyListParams extends CursorParams {}
181
+
165
182
  export declare namespace APIKeys {
166
183
  export {
167
184
  type APIKey as APIKey,
168
185
  type APIKeyList as APIKeyList,
186
+ type APIKeysCursor as APIKeysCursor,
169
187
  type APIKeyCreateParams as APIKeyCreateParams,
170
188
  type APIKeyUpdateParams as APIKeyUpdateParams,
189
+ type APIKeyListParams as APIKeyListParams,
171
190
  };
172
191
  }
@@ -12,8 +12,10 @@ import {
12
12
  VM,
13
13
  VMCreateParams,
14
14
  VMList,
15
+ VMListParams,
15
16
  VMUpdateParams,
16
17
  VMs,
18
+ VMsCursor,
17
19
  } from './vms/vms';
18
20
  import * as VolumesAPI from './volumes/volumes';
19
21
  import {
@@ -22,8 +24,10 @@ import {
22
24
  VolumeCreateParams,
23
25
  VolumeKind,
24
26
  VolumeList,
27
+ VolumeListParams,
25
28
  VolumeUpdateParams,
26
29
  Volumes,
30
+ VolumesCursor,
27
31
  } from './volumes/volumes';
28
32
 
29
33
  export class Compute extends APIResource {
@@ -45,8 +49,10 @@ export declare namespace Compute {
45
49
  type SSHKeyRequest as SSHKeyRequest,
46
50
  type VM as VM,
47
51
  type VMList as VMList,
52
+ type VMsCursor as VMsCursor,
48
53
  type VMCreateParams as VMCreateParams,
49
54
  type VMUpdateParams as VMUpdateParams,
55
+ type VMListParams as VMListParams,
50
56
  };
51
57
 
52
58
  export {
@@ -55,7 +61,9 @@ export declare namespace Compute {
55
61
  type Volume as Volume,
56
62
  type VolumeKind as VolumeKind,
57
63
  type VolumeList as VolumeList,
64
+ type VolumesCursor as VolumesCursor,
58
65
  type VolumeCreateParams as VolumeCreateParams,
59
66
  type VolumeUpdateParams as VolumeUpdateParams,
67
+ type VolumeListParams as VolumeListParams,
60
68
  };
61
69
  }
@@ -13,6 +13,8 @@ export {
13
13
  type VMList,
14
14
  type VMCreateParams,
15
15
  type VMUpdateParams,
16
+ type VMListParams,
17
+ type VMsCursor,
16
18
  } from './vms/index';
17
19
  export {
18
20
  Volumes,
@@ -22,4 +24,6 @@ export {
22
24
  type VolumeList,
23
25
  type VolumeCreateParams,
24
26
  type VolumeUpdateParams,
27
+ type VolumeListParams,
28
+ type VolumesCursor,
25
29
  } from './volumes/index';
@@ -20,5 +20,7 @@ export {
20
20
  type VMList,
21
21
  type VMCreateParams,
22
22
  type VMUpdateParams,
23
+ type VMListParams,
24
+ type VMsCursor,
23
25
  } from './vms';
24
- export { Volumes } from './volumes';
26
+ export { Volumes, type VolumeListParams } from './volumes';
@@ -14,8 +14,9 @@ import {
14
14
  import * as OSImagesAPI from './os-images';
15
15
  import { OSImageListResponse, OSImages } from './os-images';
16
16
  import * as VolumesAPI from './volumes';
17
- import { Volumes } from './volumes';
17
+ import { VolumeListParams, Volumes } from './volumes';
18
18
  import { APIPromise } from '../../../core/api-promise';
19
+ import { Cursor, type CursorParams, PagePromise } from '../../../core/pagination';
19
20
  import { RequestOptions } from '../../../internal/request-options';
20
21
  import { path } from '../../../internal/utils/path';
21
22
 
@@ -66,11 +67,14 @@ export class VMs extends APIResource {
66
67
  *
67
68
  * @example
68
69
  * ```ts
69
- * const vmList = await client.compute.vms.list();
70
+ * // Automatically fetches more pages as needed.
71
+ * for await (const vm of client.compute.vms.list()) {
72
+ * // ...
73
+ * }
70
74
  * ```
71
75
  */
72
- list(options?: RequestOptions): APIPromise<VMList> {
73
- return this._client.get('/v1/compute/vms', options);
76
+ list(query: VMListParams | null | undefined = {}, options?: RequestOptions): PagePromise<VMsCursor, VM> {
77
+ return this._client.getAPIList('/v1/compute/vms', Cursor<VM>, { query, ...options });
74
78
  }
75
79
 
76
80
  /**
@@ -110,6 +114,8 @@ export class VMs extends APIResource {
110
114
  }
111
115
  }
112
116
 
117
+ export type VMsCursor = Cursor<VM>;
118
+
113
119
  /**
114
120
  * CPU configuration for the VM.
115
121
  */
@@ -272,6 +278,11 @@ export interface VM {
272
278
 
273
279
  export interface VMList {
274
280
  items: Array<VM>;
281
+
282
+ /**
283
+ * Pagination response details.
284
+ */
285
+ pagination: Shared.Pagination;
275
286
  }
276
287
 
277
288
  export interface VMCreateParams {
@@ -395,6 +406,8 @@ export interface VMUpdateParams {
395
406
  tags?: Array<string>;
396
407
  }
397
408
 
409
+ export interface VMListParams extends CursorParams {}
410
+
398
411
  VMs.Availability = Availability;
399
412
  VMs.Volumes = Volumes;
400
413
  VMs.OSImages = OSImages;
@@ -409,8 +422,10 @@ export declare namespace VMs {
409
422
  type SSHKeyRequest as SSHKeyRequest,
410
423
  type VM as VM,
411
424
  type VMList as VMList,
425
+ type VMsCursor as VMsCursor,
412
426
  type VMCreateParams as VMCreateParams,
413
427
  type VMUpdateParams as VMUpdateParams,
428
+ type VMListParams as VMListParams,
414
429
  };
415
430
 
416
431
  export {
@@ -421,7 +436,7 @@ export declare namespace VMs {
421
436
  type AvailabilityUpdateParams as AvailabilityUpdateParams,
422
437
  };
423
438
 
424
- export { Volumes as Volumes };
439
+ export { Volumes as Volumes, type VolumeListParams as VolumeListParams };
425
440
 
426
441
  export { OSImages as OSImages, type OSImageListResponse as OSImageListResponse };
427
442
  }
@@ -1,8 +1,9 @@
1
1
  // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  import { APIResource } from '../../../core/resource';
4
- import * as VolumesAPI from '../volumes/volumes';
5
- import { APIPromise } from '../../../core/api-promise';
4
+ import * as VolumesVolumesAPI from '../volumes/volumes';
5
+ import { VolumesCursor } from '../volumes/volumes';
6
+ import { Cursor, type CursorParams, PagePromise } from '../../../core/pagination';
6
7
  import { RequestOptions } from '../../../internal/request-options';
7
8
  import { path } from '../../../internal/utils/path';
8
9
 
@@ -12,12 +13,30 @@ export class Volumes extends APIResource {
12
13
  *
13
14
  * @example
14
15
  * ```ts
15
- * const volumeList = await client.compute.vms.volumes.list(
16
+ * // Automatically fetches more pages as needed.
17
+ * for await (const volume of client.compute.vms.volumes.list(
16
18
  * 'vm_id',
17
- * );
19
+ * )) {
20
+ * // ...
21
+ * }
18
22
  * ```
19
23
  */
20
- list(vmID: string, options?: RequestOptions): APIPromise<VolumesAPI.VolumeList> {
21
- return this._client.get(path`/v1/compute/vms/${vmID}/volumes`, options);
24
+ list(
25
+ vmID: string,
26
+ query: VolumeListParams | null | undefined = {},
27
+ options?: RequestOptions,
28
+ ): PagePromise<VolumesCursor, VolumesVolumesAPI.Volume> {
29
+ return this._client.getAPIList(path`/v1/compute/vms/${vmID}/volumes`, Cursor<VolumesVolumesAPI.Volume>, {
30
+ query,
31
+ ...options,
32
+ });
22
33
  }
23
34
  }
35
+
36
+ export interface VolumeListParams extends CursorParams {}
37
+
38
+ export declare namespace Volumes {
39
+ export { type VolumeListParams as VolumeListParams };
40
+ }
41
+
42
+ export { type VolumesCursor };
@@ -15,4 +15,6 @@ export {
15
15
  type VolumeList,
16
16
  type VolumeCreateParams,
17
17
  type VolumeUpdateParams,
18
+ type VolumeListParams,
19
+ type VolumesCursor,
18
20
  } from './volumes';