@neon/sdk 1.4.0 → 1.5.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 (168) hide show
  1. package/README.md +64 -3
  2. package/dist/_virtual/_rolldown/runtime.js +1 -2
  3. package/dist/index.d.ts +2 -2
  4. package/dist/index.js +2 -2
  5. package/dist/neon/config.d.ts +13 -0
  6. package/dist/neon/config.d.ts.map +1 -1
  7. package/dist/neon/config.js +2 -0
  8. package/dist/neon/config.js.map +1 -1
  9. package/dist/neon/context.d.ts +26 -6
  10. package/dist/neon/context.d.ts.map +1 -1
  11. package/dist/neon/context.js +59 -10
  12. package/dist/neon/context.js.map +1 -1
  13. package/dist/neon/deadline.d.ts +81 -0
  14. package/dist/neon/deadline.d.ts.map +1 -0
  15. package/dist/neon/deadline.js +143 -0
  16. package/dist/neon/deadline.js.map +1 -0
  17. package/dist/neon/errors.d.ts +22 -3
  18. package/dist/neon/errors.d.ts.map +1 -1
  19. package/dist/neon/errors.js +22 -2
  20. package/dist/neon/errors.js.map +1 -1
  21. package/dist/neon/paginate.d.ts +6 -1
  22. package/dist/neon/paginate.d.ts.map +1 -1
  23. package/dist/neon/paginate.js +59 -24
  24. package/dist/neon/paginate.js.map +1 -1
  25. package/dist/neon/raw-wrap.d.ts.map +1 -1
  26. package/dist/neon/raw-wrap.js +17 -2
  27. package/dist/neon/raw-wrap.js.map +1 -1
  28. package/dist/neon/resources/account.d.ts.map +1 -1
  29. package/dist/neon/resources/account.js +18 -12
  30. package/dist/neon/resources/account.js.map +1 -1
  31. package/dist/neon/resources/ai-gateway.js +3 -2
  32. package/dist/neon/resources/ai-gateway.js.map +1 -1
  33. package/dist/neon/resources/auth.d.ts.map +1 -1
  34. package/dist/neon/resources/auth.js +42 -28
  35. package/dist/neon/resources/auth.js.map +1 -1
  36. package/dist/neon/resources/branches.d.ts +1 -1
  37. package/dist/neon/resources/branches.d.ts.map +1 -1
  38. package/dist/neon/resources/branches.js +29 -20
  39. package/dist/neon/resources/branches.js.map +1 -1
  40. package/dist/neon/resources/bucket-objects.d.ts.map +1 -1
  41. package/dist/neon/resources/bucket-objects.js +15 -10
  42. package/dist/neon/resources/bucket-objects.js.map +1 -1
  43. package/dist/neon/resources/buckets.d.ts.map +1 -1
  44. package/dist/neon/resources/buckets.js +9 -6
  45. package/dist/neon/resources/buckets.js.map +1 -1
  46. package/dist/neon/resources/consumption.d.ts +4 -4
  47. package/dist/neon/resources/consumption.d.ts.map +1 -1
  48. package/dist/neon/resources/consumption.js +6 -6
  49. package/dist/neon/resources/consumption.js.map +1 -1
  50. package/dist/neon/resources/credentials.d.ts.map +1 -1
  51. package/dist/neon/resources/credentials.js +9 -6
  52. package/dist/neon/resources/credentials.js.map +1 -1
  53. package/dist/neon/resources/dataapi.d.ts.map +1 -1
  54. package/dist/neon/resources/dataapi.js +12 -8
  55. package/dist/neon/resources/dataapi.js.map +1 -1
  56. package/dist/neon/resources/databases.d.ts.map +1 -1
  57. package/dist/neon/resources/databases.js +15 -10
  58. package/dist/neon/resources/databases.js.map +1 -1
  59. package/dist/neon/resources/endpoints.d.ts.map +1 -1
  60. package/dist/neon/resources/endpoints.js +27 -18
  61. package/dist/neon/resources/endpoints.js.map +1 -1
  62. package/dist/neon/resources/functions.d.ts +1 -1
  63. package/dist/neon/resources/functions.d.ts.map +1 -1
  64. package/dist/neon/resources/functions.js +14 -10
  65. package/dist/neon/resources/functions.js.map +1 -1
  66. package/dist/neon/resources/operations.d.ts +12 -3
  67. package/dist/neon/resources/operations.d.ts.map +1 -1
  68. package/dist/neon/resources/operations.js +5 -4
  69. package/dist/neon/resources/operations.js.map +1 -1
  70. package/dist/neon/resources/postgres.d.ts.map +1 -1
  71. package/dist/neon/resources/postgres.js +9 -1
  72. package/dist/neon/resources/postgres.js.map +1 -1
  73. package/dist/neon/resources/projects.d.ts +1 -1
  74. package/dist/neon/resources/projects.d.ts.map +1 -1
  75. package/dist/neon/resources/projects.js +35 -24
  76. package/dist/neon/resources/projects.js.map +1 -1
  77. package/dist/neon/resources/roles.d.ts.map +1 -1
  78. package/dist/neon/resources/roles.js +18 -12
  79. package/dist/neon/resources/roles.js.map +1 -1
  80. package/dist/neon/resources/snapshots.d.ts +10 -1
  81. package/dist/neon/resources/snapshots.d.ts.map +1 -1
  82. package/dist/neon/resources/snapshots.js +37 -19
  83. package/dist/neon/resources/snapshots.js.map +1 -1
  84. package/dist/neon/resources/storage.js +3 -2
  85. package/dist/neon/resources/storage.js.map +1 -1
  86. package/dist/neon/retry.d.ts +30 -8
  87. package/dist/neon/retry.d.ts.map +1 -1
  88. package/dist/neon/retry.js +59 -20
  89. package/dist/neon/retry.js.map +1 -1
  90. package/dist/neon/wait.d.ts +7 -1
  91. package/dist/neon/wait.d.ts.map +1 -1
  92. package/dist/neon/wait.js +53 -34
  93. package/dist/neon/wait.js.map +1 -1
  94. package/package.json +3 -2
  95. package/dist/neon/client.test-d.d.ts +0 -1
  96. package/dist/neon/client.test-d.js +0 -98
  97. package/dist/neon/client.test-d.js.map +0 -1
  98. package/dist/node_modules/.pnpm/@vitest_pretty-format@3.0.9/node_modules/@vitest/pretty-format/dist/index.js +0 -879
  99. package/dist/node_modules/.pnpm/@vitest_pretty-format@3.0.9/node_modules/@vitest/pretty-format/dist/index.js.map +0 -1
  100. package/dist/node_modules/.pnpm/@vitest_runner@3.0.9/node_modules/@vitest/runner/dist/chunk-tasks.js +0 -30
  101. package/dist/node_modules/.pnpm/@vitest_runner@3.0.9/node_modules/@vitest/runner/dist/chunk-tasks.js.map +0 -1
  102. package/dist/node_modules/.pnpm/@vitest_runner@3.0.9/node_modules/@vitest/runner/dist/index.js +0 -579
  103. package/dist/node_modules/.pnpm/@vitest_runner@3.0.9/node_modules/@vitest/runner/dist/index.js.map +0 -1
  104. package/dist/node_modules/.pnpm/@vitest_runner@3.0.9/node_modules/@vitest/runner/dist/utils.js +0 -2
  105. package/dist/node_modules/.pnpm/@vitest_utils@3.0.9/node_modules/@vitest/utils/dist/chunk-_commonjsHelpers.js +0 -92
  106. package/dist/node_modules/.pnpm/@vitest_utils@3.0.9/node_modules/@vitest/utils/dist/chunk-_commonjsHelpers.js.map +0 -1
  107. package/dist/node_modules/.pnpm/@vitest_utils@3.0.9/node_modules/@vitest/utils/dist/helpers.js +0 -43
  108. package/dist/node_modules/.pnpm/@vitest_utils@3.0.9/node_modules/@vitest/utils/dist/helpers.js.map +0 -1
  109. package/dist/node_modules/.pnpm/@vitest_utils@3.0.9/node_modules/@vitest/utils/dist/index.js +0 -450
  110. package/dist/node_modules/.pnpm/@vitest_utils@3.0.9/node_modules/@vitest/utils/dist/index.js.map +0 -1
  111. package/dist/node_modules/.pnpm/@vitest_utils@3.0.9/node_modules/@vitest/utils/dist/source-map.js +0 -168
  112. package/dist/node_modules/.pnpm/@vitest_utils@3.0.9/node_modules/@vitest/utils/dist/source-map.js.map +0 -1
  113. package/dist/node_modules/.pnpm/chai@5.2.0/node_modules/chai/chai.js +0 -3101
  114. package/dist/node_modules/.pnpm/chai@5.2.0/node_modules/chai/chai.js.map +0 -1
  115. package/dist/node_modules/.pnpm/expect-type@1.2.1/node_modules/expect-type/dist/branding.js +0 -10
  116. package/dist/node_modules/.pnpm/expect-type@1.2.1/node_modules/expect-type/dist/branding.js.map +0 -1
  117. package/dist/node_modules/.pnpm/expect-type@1.2.1/node_modules/expect-type/dist/index.js +0 -109
  118. package/dist/node_modules/.pnpm/expect-type@1.2.1/node_modules/expect-type/dist/index.js.map +0 -1
  119. package/dist/node_modules/.pnpm/expect-type@1.2.1/node_modules/expect-type/dist/messages.js +0 -10
  120. package/dist/node_modules/.pnpm/expect-type@1.2.1/node_modules/expect-type/dist/messages.js.map +0 -1
  121. package/dist/node_modules/.pnpm/expect-type@1.2.1/node_modules/expect-type/dist/overloads.js +0 -10
  122. package/dist/node_modules/.pnpm/expect-type@1.2.1/node_modules/expect-type/dist/overloads.js.map +0 -1
  123. package/dist/node_modules/.pnpm/expect-type@1.2.1/node_modules/expect-type/dist/utils.js +0 -10
  124. package/dist/node_modules/.pnpm/expect-type@1.2.1/node_modules/expect-type/dist/utils.js.map +0 -1
  125. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/arguments.js +0 -11
  126. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/arguments.js.map +0 -1
  127. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/array.js +0 -16
  128. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/array.js.map +0 -1
  129. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/bigint.js +0 -11
  130. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/bigint.js.map +0 -1
  131. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/class.js +0 -15
  132. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/class.js.map +0 -1
  133. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/date.js +0 -13
  134. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/date.js.map +0 -1
  135. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/error.js +0 -34
  136. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/error.js.map +0 -1
  137. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/function.js +0 -12
  138. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/function.js.map +0 -1
  139. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/helpers.js +0 -122
  140. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/helpers.js.map +0 -1
  141. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/html.js +0 -39
  142. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/html.js.map +0 -1
  143. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/index.js +0 -99
  144. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/index.js.map +0 -1
  145. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/map.js +0 -25
  146. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/map.js.map +0 -1
  147. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/number.js +0 -14
  148. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/number.js.map +0 -1
  149. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/object.js +0 -21
  150. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/object.js.map +0 -1
  151. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/promise.js +0 -6
  152. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/promise.js.map +0 -1
  153. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/regexp.js +0 -12
  154. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/regexp.js.map +0 -1
  155. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/set.js +0 -18
  156. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/set.js.map +0 -1
  157. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/string.js +0 -24
  158. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/string.js.map +0 -1
  159. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/symbol.js +0 -9
  160. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/symbol.js.map +0 -1
  161. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/typedarray.js +0 -30
  162. package/dist/node_modules/.pnpm/loupe@3.2.1/node_modules/loupe/lib/typedarray.js.map +0 -1
  163. package/dist/node_modules/.pnpm/tinyrainbow@2.0.0/node_modules/tinyrainbow/dist/chunk-BVHSVHOK.js +0 -82
  164. package/dist/node_modules/.pnpm/tinyrainbow@2.0.0/node_modules/tinyrainbow/dist/chunk-BVHSVHOK.js.map +0 -1
  165. package/dist/node_modules/.pnpm/tinyrainbow@2.0.0/node_modules/tinyrainbow/dist/node.js +0 -7
  166. package/dist/node_modules/.pnpm/tinyrainbow@2.0.0/node_modules/tinyrainbow/dist/node.js.map +0 -1
  167. package/dist/node_modules/.pnpm/vitest@3.0.9_@types_debug@4.1.13_@types_node@20.19.17_jiti@2.7.0_jsdom@26.1.0_lightning_fb7ae83398b95c49208c9194029bba02/node_modules/vitest/dist/index.js +0 -10
  168. package/dist/node_modules/.pnpm/vitest@3.0.9_@types_debug@4.1.13_@types_node@20.19.17_jiti@2.7.0_jsdom@26.1.0_lightning_fb7ae83398b95c49208c9194029bba02/node_modules/vitest/dist/index.js.map +0 -1
@@ -8,7 +8,7 @@ var Functions = class {
8
8
  this.#ctx = ctx;
9
9
  }
10
10
  /** @apiCall GET /projects/{project_id}/branches/{branch_id}/functions (cursor-paginated) */
11
- list(projectId, branchId, query) {
11
+ list(projectId, branchId, query, opts) {
12
12
  return paginate((cursor, signal) => listProjectBranchFunctions({
13
13
  client: this.#ctx.client,
14
14
  path: {
@@ -24,21 +24,22 @@ var Functions = class {
24
24
  }), (data) => ({
25
25
  items: data?.functions ?? [],
26
26
  cursor: data?.pagination?.next
27
- }));
27
+ }), () => this.#ctx.deadlineFor(opts));
28
28
  }
29
29
  get(projectId, branchId, slug, opts) {
30
- return this.#ctx.run(opts, (client) => getProjectBranchFunction({
30
+ return this.#ctx.run(opts, (client, signal) => getProjectBranchFunction({
31
31
  client,
32
32
  path: {
33
33
  project_id: projectId,
34
34
  branch_id: branchId,
35
35
  slug
36
36
  },
37
- throwOnError: false
37
+ throwOnError: false,
38
+ signal
38
39
  }), (data) => data.function);
39
40
  }
40
41
  update(projectId, branchId, slug, input, opts) {
41
- return this.#ctx.run(opts, (client) => updateProjectBranchFunction({
42
+ return this.#ctx.run(opts, (client, signal) => updateProjectBranchFunction({
42
43
  client,
43
44
  path: {
44
45
  project_id: projectId,
@@ -46,22 +47,24 @@ var Functions = class {
46
47
  slug
47
48
  },
48
49
  body: input,
49
- throwOnError: false
50
+ throwOnError: false,
51
+ signal
50
52
  }), (data) => data.function);
51
53
  }
52
54
  delete(projectId, branchId, slug, opts) {
53
- return this.#ctx.runVoid(opts, (client) => deleteProjectBranchFunction({
55
+ return this.#ctx.runVoid(opts, (client, signal) => deleteProjectBranchFunction({
54
56
  client,
55
57
  path: {
56
58
  project_id: projectId,
57
59
  branch_id: branchId,
58
60
  slug
59
61
  },
60
- throwOnError: false
62
+ throwOnError: false,
63
+ signal
61
64
  }));
62
65
  }
63
66
  deploy(projectId, branchId, slug, input, opts) {
64
- return this.#ctx.run(opts, (client) => createProjectBranchFunctionDeployment({
67
+ return this.#ctx.run(opts, (client, signal) => createProjectBranchFunctionDeployment({
65
68
  client,
66
69
  path: {
67
70
  project_id: projectId,
@@ -69,7 +72,8 @@ var Functions = class {
69
72
  slug
70
73
  },
71
74
  body: input ?? {},
72
- throwOnError: false
75
+ throwOnError: false,
76
+ signal
73
77
  }), (data) => data.deployment);
74
78
  }
75
79
  };
@@ -1 +1 @@
1
- {"version":3,"file":"functions.js","names":["#ctx"],"sources":["../../../src/neon/resources/functions.ts"],"sourcesContent":["import {\n\tcreateProjectBranchFunctionDeployment,\n\tdeleteProjectBranchFunction,\n\tgetProjectBranchFunction,\n\tlistProjectBranchFunctions,\n\tupdateProjectBranchFunction,\n} from \"../../client/sdk.gen.js\";\nimport type {\n\tFunctionDeployRequest,\n\tListProjectBranchFunctionsData,\n\tNeonFunction,\n\tNeonFunctionDeployment,\n\tNeonFunctionUpdateRequest,\n} from \"../../client/types.gen.js\";\nimport type { CallOptions, RequestContext } from \"../context.js\";\nimport { type Paginated, paginate } from \"../paginate.js\";\nimport type { NeonResult, Outcome } from \"../result.js\";\n\ntype ListQuery = Omit<\n\tNonNullable<ListProjectBranchFunctionsData[\"query\"]>,\n\t\"cursor\"\n>;\ntype UpdateInput = NeonFunctionUpdateRequest;\n\n/** Branch-scoped Neon Functions. */\nexport class Functions<DThrow extends boolean> {\n\treadonly #ctx: RequestContext;\n\n\tconstructor(ctx: RequestContext) {\n\t\tthis.#ctx = ctx;\n\t}\n\n\t/** @apiCall GET /projects/{project_id}/branches/{branch_id}/functions (cursor-paginated) */\n\tlist(\n\t\tprojectId: string,\n\t\tbranchId: string,\n\t\tquery?: ListQuery,\n\t): Paginated<NeonFunction> {\n\t\treturn paginate(\n\t\t\t(cursor, signal) =>\n\t\t\t\tlistProjectBranchFunctions({\n\t\t\t\t\tclient: this.#ctx.client,\n\t\t\t\t\tpath: { project_id: projectId, branch_id: branchId },\n\t\t\t\t\tquery: { ...query, cursor },\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t\tsignal,\n\t\t\t\t}),\n\t\t\t(data) => ({\n\t\t\t\titems: data?.functions ?? [],\n\t\t\t\tcursor: data?.pagination?.next,\n\t\t\t}),\n\t\t);\n\t}\n\n\t/** @apiCall GET /projects/{project_id}/branches/{branch_id}/functions/{slug} */\n\tget(\n\t\tprojectId: string,\n\t\tbranchId: string,\n\t\tslug: string,\n\t): Promise<Outcome<NeonFunction, DThrow>>;\n\tget<Throw extends boolean = DThrow>(\n\t\tprojectId: string,\n\t\tbranchId: string,\n\t\tslug: string,\n\t\topts: CallOptions<Throw>,\n\t): Promise<Outcome<NeonFunction, Throw>>;\n\tget(\n\t\tprojectId: string,\n\t\tbranchId: string,\n\t\tslug: string,\n\t\topts?: CallOptions,\n\t): Promise<NeonFunction | NeonResult<NeonFunction>> {\n\t\treturn this.#ctx.run(\n\t\t\topts,\n\t\t\t(client) =>\n\t\t\t\tgetProjectBranchFunction({\n\t\t\t\t\tclient,\n\t\t\t\t\tpath: {\n\t\t\t\t\t\tproject_id: projectId,\n\t\t\t\t\t\tbranch_id: branchId,\n\t\t\t\t\t\tslug,\n\t\t\t\t\t},\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t}),\n\t\t\t(data) => data.function,\n\t\t);\n\t}\n\n\t/** @apiCall PATCH /projects/{project_id}/branches/{branch_id}/functions/{slug} */\n\tupdate(\n\t\tprojectId: string,\n\t\tbranchId: string,\n\t\tslug: string,\n\t\tinput: UpdateInput,\n\t): Promise<Outcome<NeonFunction, DThrow>>;\n\tupdate<Throw extends boolean = DThrow>(\n\t\tprojectId: string,\n\t\tbranchId: string,\n\t\tslug: string,\n\t\tinput: UpdateInput,\n\t\topts: CallOptions<Throw>,\n\t): Promise<Outcome<NeonFunction, Throw>>;\n\tupdate(\n\t\tprojectId: string,\n\t\tbranchId: string,\n\t\tslug: string,\n\t\tinput: UpdateInput,\n\t\topts?: CallOptions,\n\t): Promise<NeonFunction | NeonResult<NeonFunction>> {\n\t\treturn this.#ctx.run(\n\t\t\topts,\n\t\t\t(client) =>\n\t\t\t\tupdateProjectBranchFunction({\n\t\t\t\t\tclient,\n\t\t\t\t\tpath: {\n\t\t\t\t\t\tproject_id: projectId,\n\t\t\t\t\t\tbranch_id: branchId,\n\t\t\t\t\t\tslug,\n\t\t\t\t\t},\n\t\t\t\t\tbody: input,\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t}),\n\t\t\t(data) => data.function,\n\t\t);\n\t}\n\n\t/** @apiCall DELETE /projects/{project_id}/branches/{branch_id}/functions/{slug} */\n\tdelete(\n\t\tprojectId: string,\n\t\tbranchId: string,\n\t\tslug: string,\n\t): Promise<Outcome<void, DThrow>>;\n\tdelete<Throw extends boolean = DThrow>(\n\t\tprojectId: string,\n\t\tbranchId: string,\n\t\tslug: string,\n\t\topts: CallOptions<Throw>,\n\t): Promise<Outcome<void, Throw>>;\n\tdelete(\n\t\tprojectId: string,\n\t\tbranchId: string,\n\t\tslug: string,\n\t\topts?: CallOptions,\n\t): Promise<void | NeonResult<void>> {\n\t\treturn this.#ctx.runVoid(opts, (client) =>\n\t\t\tdeleteProjectBranchFunction({\n\t\t\t\tclient,\n\t\t\t\tpath: {\n\t\t\t\t\tproject_id: projectId,\n\t\t\t\t\tbranch_id: branchId,\n\t\t\t\t\tslug,\n\t\t\t\t},\n\t\t\t\tthrowOnError: false,\n\t\t\t}),\n\t\t);\n\t}\n\n\t/** @apiCall POST /projects/{project_id}/branches/{branch_id}/functions/{slug}/deployments */\n\tdeploy(\n\t\tprojectId: string,\n\t\tbranchId: string,\n\t\tslug: string,\n\t\tinput?: FunctionDeployRequest,\n\t): Promise<Outcome<NeonFunctionDeployment, DThrow>>;\n\tdeploy<Throw extends boolean = DThrow>(\n\t\tprojectId: string,\n\t\tbranchId: string,\n\t\tslug: string,\n\t\tinput: FunctionDeployRequest | undefined,\n\t\topts: CallOptions<Throw>,\n\t): Promise<Outcome<NeonFunctionDeployment, Throw>>;\n\tdeploy(\n\t\tprojectId: string,\n\t\tbranchId: string,\n\t\tslug: string,\n\t\tinput?: FunctionDeployRequest,\n\t\topts?: CallOptions,\n\t): Promise<NeonFunctionDeployment | NeonResult<NeonFunctionDeployment>> {\n\t\treturn this.#ctx.run(\n\t\t\topts,\n\t\t\t(client) =>\n\t\t\t\tcreateProjectBranchFunctionDeployment({\n\t\t\t\t\tclient,\n\t\t\t\t\tpath: {\n\t\t\t\t\t\tproject_id: projectId,\n\t\t\t\t\t\tbranch_id: branchId,\n\t\t\t\t\t\tslug,\n\t\t\t\t\t},\n\t\t\t\t\tbody: input ?? {},\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t}),\n\t\t\t(data) => data.deployment,\n\t\t);\n\t}\n}\n"],"mappings":";;;;AAyBA,IAAa,YAAb,MAA+C;CAC9C;CAEA,YAAY,KAAqB;EAChC,KAAKA,OAAO;CACb;;CAGA,KACC,WACA,UACA,OAC0B;EAC1B,OAAO,UACL,QAAQ,WACR,2BAA2B;GAC1B,QAAQ,KAAKA,KAAK;GAClB,MAAM;IAAE,YAAY;IAAW,WAAW;GAAS;GACnD,OAAO;IAAE,GAAG;IAAO;GAAO;GAC1B,cAAc;GACd;EACD,CAAC,IACD,UAAU;GACV,OAAO,MAAM,aAAa,CAAC;GAC3B,QAAQ,MAAM,YAAY;EAC3B,EACD;CACD;CAcA,IACC,WACA,UACA,MACA,MACmD;EACnD,OAAO,KAAKA,KAAK,IAChB,OACC,WACA,yBAAyB;GACxB;GACA,MAAM;IACL,YAAY;IACZ,WAAW;IACX;GACD;GACA,cAAc;EACf,CAAC,IACD,SAAS,KAAK,QAChB;CACD;CAgBA,OACC,WACA,UACA,MACA,OACA,MACmD;EACnD,OAAO,KAAKA,KAAK,IAChB,OACC,WACA,4BAA4B;GAC3B;GACA,MAAM;IACL,YAAY;IACZ,WAAW;IACX;GACD;GACA,MAAM;GACN,cAAc;EACf,CAAC,IACD,SAAS,KAAK,QAChB;CACD;CAcA,OACC,WACA,UACA,MACA,MACmC;EACnC,OAAO,KAAKA,KAAK,QAAQ,OAAO,WAC/B,4BAA4B;GAC3B;GACA,MAAM;IACL,YAAY;IACZ,WAAW;IACX;GACD;GACA,cAAc;EACf,CAAC,CACF;CACD;CAgBA,OACC,WACA,UACA,MACA,OACA,MACuE;EACvE,OAAO,KAAKA,KAAK,IAChB,OACC,WACA,sCAAsC;GACrC;GACA,MAAM;IACL,YAAY;IACZ,WAAW;IACX;GACD;GACA,MAAM,SAAS,CAAC;GAChB,cAAc;EACf,CAAC,IACD,SAAS,KAAK,UAChB;CACD;AACD"}
1
+ {"version":3,"file":"functions.js","names":["#ctx"],"sources":["../../../src/neon/resources/functions.ts"],"sourcesContent":["import {\n\tcreateProjectBranchFunctionDeployment,\n\tdeleteProjectBranchFunction,\n\tgetProjectBranchFunction,\n\tlistProjectBranchFunctions,\n\tupdateProjectBranchFunction,\n} from \"../../client/sdk.gen.js\";\nimport type {\n\tFunctionDeployRequest,\n\tListProjectBranchFunctionsData,\n\tNeonFunction,\n\tNeonFunctionDeployment,\n\tNeonFunctionUpdateRequest,\n} from \"../../client/types.gen.js\";\nimport type { CallOptions, RequestContext } from \"../context.js\";\nimport { type Paginated, paginate } from \"../paginate.js\";\nimport type { NeonResult, Outcome } from \"../result.js\";\n\ntype ListQuery = Omit<\n\tNonNullable<ListProjectBranchFunctionsData[\"query\"]>,\n\t\"cursor\"\n>;\ntype UpdateInput = NeonFunctionUpdateRequest;\n\n/** Branch-scoped Neon Functions. */\nexport class Functions<DThrow extends boolean> {\n\treadonly #ctx: RequestContext;\n\n\tconstructor(ctx: RequestContext) {\n\t\tthis.#ctx = ctx;\n\t}\n\n\t/** @apiCall GET /projects/{project_id}/branches/{branch_id}/functions (cursor-paginated) */\n\tlist(\n\t\tprojectId: string,\n\t\tbranchId: string,\n\t\tquery?: ListQuery,\n\t\topts?: CallOptions,\n\t): Paginated<NeonFunction> {\n\t\treturn paginate(\n\t\t\t(cursor, signal) =>\n\t\t\t\tlistProjectBranchFunctions({\n\t\t\t\t\tclient: this.#ctx.client,\n\t\t\t\t\tpath: { project_id: projectId, branch_id: branchId },\n\t\t\t\t\tquery: { ...query, cursor },\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t\tsignal,\n\t\t\t\t}),\n\t\t\t(data) => ({\n\t\t\t\titems: data?.functions ?? [],\n\t\t\t\tcursor: data?.pagination?.next,\n\t\t\t}),\n\t\t\t() => this.#ctx.deadlineFor(opts),\n\t\t);\n\t}\n\n\t/** @apiCall GET /projects/{project_id}/branches/{branch_id}/functions/{slug} */\n\tget(\n\t\tprojectId: string,\n\t\tbranchId: string,\n\t\tslug: string,\n\t): Promise<Outcome<NeonFunction, DThrow>>;\n\tget<Throw extends boolean = DThrow>(\n\t\tprojectId: string,\n\t\tbranchId: string,\n\t\tslug: string,\n\t\topts: CallOptions<Throw>,\n\t): Promise<Outcome<NeonFunction, Throw>>;\n\tget(\n\t\tprojectId: string,\n\t\tbranchId: string,\n\t\tslug: string,\n\t\topts?: CallOptions,\n\t): Promise<NeonFunction | NeonResult<NeonFunction>> {\n\t\treturn this.#ctx.run(\n\t\t\topts,\n\t\t\t(client, signal) =>\n\t\t\t\tgetProjectBranchFunction({\n\t\t\t\t\tclient,\n\t\t\t\t\tpath: {\n\t\t\t\t\t\tproject_id: projectId,\n\t\t\t\t\t\tbranch_id: branchId,\n\t\t\t\t\t\tslug,\n\t\t\t\t\t},\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t\tsignal,\n\t\t\t\t}),\n\t\t\t(data) => data.function,\n\t\t);\n\t}\n\n\t/** @apiCall PATCH /projects/{project_id}/branches/{branch_id}/functions/{slug} */\n\tupdate(\n\t\tprojectId: string,\n\t\tbranchId: string,\n\t\tslug: string,\n\t\tinput: UpdateInput,\n\t): Promise<Outcome<NeonFunction, DThrow>>;\n\tupdate<Throw extends boolean = DThrow>(\n\t\tprojectId: string,\n\t\tbranchId: string,\n\t\tslug: string,\n\t\tinput: UpdateInput,\n\t\topts: CallOptions<Throw>,\n\t): Promise<Outcome<NeonFunction, Throw>>;\n\tupdate(\n\t\tprojectId: string,\n\t\tbranchId: string,\n\t\tslug: string,\n\t\tinput: UpdateInput,\n\t\topts?: CallOptions,\n\t): Promise<NeonFunction | NeonResult<NeonFunction>> {\n\t\treturn this.#ctx.run(\n\t\t\topts,\n\t\t\t(client, signal) =>\n\t\t\t\tupdateProjectBranchFunction({\n\t\t\t\t\tclient,\n\t\t\t\t\tpath: {\n\t\t\t\t\t\tproject_id: projectId,\n\t\t\t\t\t\tbranch_id: branchId,\n\t\t\t\t\t\tslug,\n\t\t\t\t\t},\n\t\t\t\t\tbody: input,\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t\tsignal,\n\t\t\t\t}),\n\t\t\t(data) => data.function,\n\t\t);\n\t}\n\n\t/** @apiCall DELETE /projects/{project_id}/branches/{branch_id}/functions/{slug} */\n\tdelete(\n\t\tprojectId: string,\n\t\tbranchId: string,\n\t\tslug: string,\n\t): Promise<Outcome<void, DThrow>>;\n\tdelete<Throw extends boolean = DThrow>(\n\t\tprojectId: string,\n\t\tbranchId: string,\n\t\tslug: string,\n\t\topts: CallOptions<Throw>,\n\t): Promise<Outcome<void, Throw>>;\n\tdelete(\n\t\tprojectId: string,\n\t\tbranchId: string,\n\t\tslug: string,\n\t\topts?: CallOptions,\n\t): Promise<void | NeonResult<void>> {\n\t\treturn this.#ctx.runVoid(opts, (client, signal) =>\n\t\t\tdeleteProjectBranchFunction({\n\t\t\t\tclient,\n\t\t\t\tpath: {\n\t\t\t\t\tproject_id: projectId,\n\t\t\t\t\tbranch_id: branchId,\n\t\t\t\t\tslug,\n\t\t\t\t},\n\t\t\t\tthrowOnError: false,\n\t\t\t\tsignal,\n\t\t\t}),\n\t\t);\n\t}\n\n\t/** @apiCall POST /projects/{project_id}/branches/{branch_id}/functions/{slug}/deployments */\n\tdeploy(\n\t\tprojectId: string,\n\t\tbranchId: string,\n\t\tslug: string,\n\t\tinput?: FunctionDeployRequest,\n\t): Promise<Outcome<NeonFunctionDeployment, DThrow>>;\n\tdeploy<Throw extends boolean = DThrow>(\n\t\tprojectId: string,\n\t\tbranchId: string,\n\t\tslug: string,\n\t\tinput: FunctionDeployRequest | undefined,\n\t\topts: CallOptions<Throw>,\n\t): Promise<Outcome<NeonFunctionDeployment, Throw>>;\n\tdeploy(\n\t\tprojectId: string,\n\t\tbranchId: string,\n\t\tslug: string,\n\t\tinput?: FunctionDeployRequest,\n\t\topts?: CallOptions,\n\t): Promise<NeonFunctionDeployment | NeonResult<NeonFunctionDeployment>> {\n\t\treturn this.#ctx.run(\n\t\t\topts,\n\t\t\t(client, signal) =>\n\t\t\t\tcreateProjectBranchFunctionDeployment({\n\t\t\t\t\tclient,\n\t\t\t\t\tpath: {\n\t\t\t\t\t\tproject_id: projectId,\n\t\t\t\t\t\tbranch_id: branchId,\n\t\t\t\t\t\tslug,\n\t\t\t\t\t},\n\t\t\t\t\tbody: input ?? {},\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t\tsignal,\n\t\t\t\t}),\n\t\t\t(data) => data.deployment,\n\t\t);\n\t}\n}\n"],"mappings":";;;;AAyBA,IAAa,YAAb,MAA+C;CAC9C;CAEA,YAAY,KAAqB;EAChC,KAAKA,OAAO;CACb;;CAGA,KACC,WACA,UACA,OACA,MAC0B;EAC1B,OAAO,UACL,QAAQ,WACR,2BAA2B;GAC1B,QAAQ,KAAKA,KAAK;GAClB,MAAM;IAAE,YAAY;IAAW,WAAW;GAAS;GACnD,OAAO;IAAE,GAAG;IAAO;GAAO;GAC1B,cAAc;GACd;EACD,CAAC,IACD,UAAU;GACV,OAAO,MAAM,aAAa,CAAC;GAC3B,QAAQ,MAAM,YAAY;EAC3B,UACM,KAAKA,KAAK,YAAY,IAAI,CACjC;CACD;CAcA,IACC,WACA,UACA,MACA,MACmD;EACnD,OAAO,KAAKA,KAAK,IAChB,OACC,QAAQ,WACR,yBAAyB;GACxB;GACA,MAAM;IACL,YAAY;IACZ,WAAW;IACX;GACD;GACA,cAAc;GACd;EACD,CAAC,IACD,SAAS,KAAK,QAChB;CACD;CAgBA,OACC,WACA,UACA,MACA,OACA,MACmD;EACnD,OAAO,KAAKA,KAAK,IAChB,OACC,QAAQ,WACR,4BAA4B;GAC3B;GACA,MAAM;IACL,YAAY;IACZ,WAAW;IACX;GACD;GACA,MAAM;GACN,cAAc;GACd;EACD,CAAC,IACD,SAAS,KAAK,QAChB;CACD;CAcA,OACC,WACA,UACA,MACA,MACmC;EACnC,OAAO,KAAKA,KAAK,QAAQ,OAAO,QAAQ,WACvC,4BAA4B;GAC3B;GACA,MAAM;IACL,YAAY;IACZ,WAAW;IACX;GACD;GACA,cAAc;GACd;EACD,CAAC,CACF;CACD;CAgBA,OACC,WACA,UACA,MACA,OACA,MACuE;EACvE,OAAO,KAAKA,KAAK,IAChB,OACC,QAAQ,WACR,sCAAsC;GACrC;GACA,MAAM;IACL,YAAY;IACZ,WAAW;IACX;GACD;GACA,MAAM,SAAS,CAAC;GAChB,cAAc;GACd;EACD,CAAC,IACD,SAAS,KAAK,UAChB;CACD;AACD"}
@@ -5,12 +5,21 @@ import { CallOptions, RequestContext } from "../context.js";
5
5
  import { Paginated } from "../paginate.js";
6
6
 
7
7
  //#region src/neon/resources/operations.d.ts
8
+
9
+ /**
10
+ * Options for {@link Operations.waitFor}.
11
+ *
12
+ * `requestTimeoutMs` and `waitForReadiness` are deliberately excluded. Readiness is
13
+ * budgeted by `timeoutMs`, and waiting *is* the readiness step — accepting either would
14
+ * offer a knob that silently did nothing.
15
+ */
16
+ type WaitForForOptions<Throw extends boolean> = WaitForOptions & Omit<CallOptions<Throw>, "requestTimeoutMs" | "waitForReadiness">;
8
17
  /** Operation resource — read operations and wait for them to finish. */
9
18
  declare class Operations<DThrow extends boolean> {
10
19
  #private;
11
20
  constructor(ctx: RequestContext);
12
21
  /** @apiCall GET /projects/{project_id}/operations (cursor-paginated) */
13
- list(projectId: string): Paginated<Operation>;
22
+ list(projectId: string, opts?: CallOptions): Paginated<Operation>;
14
23
  /** @apiCall GET /projects/{project_id}/operations/{operation_id} */
15
24
  get(projectId: string, operationId: string): Promise<Outcome<Operation, DThrow>>;
16
25
  get<Throw extends boolean = DThrow>(projectId: string, operationId: string, opts: CallOptions<Throw>): Promise<Outcome<Operation, Throw>>;
@@ -20,8 +29,8 @@ declare class Operations<DThrow extends boolean> {
20
29
  * from any source (e.g. a raw call or a create response).
21
30
  */
22
31
  waitFor(operations: readonly Operation[]): Promise<Outcome<void, DThrow>>;
23
- waitFor<Throw extends boolean = DThrow>(operations: readonly Operation[], opts: WaitForOptions & CallOptions<Throw>): Promise<Outcome<void, Throw>>;
32
+ waitFor<Throw extends boolean = DThrow>(operations: readonly Operation[], opts: WaitForForOptions<Throw>): Promise<Outcome<void, Throw>>;
24
33
  }
25
34
  //#endregion
26
- export { Operations };
35
+ export { Operations, WaitForForOptions };
27
36
  //# sourceMappingURL=operations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"operations.d.ts","names":[],"sources":["../../../src/neon/resources/operations.ts"],"mappings":";;;;;;;;cAWa;EAAA,CAAA,OAAA;EAAU,WAAA,CAAA,GAAA,EAGL,cAHK;EAGL;EAKkB,IAAA,CAAA,SAAA,EAAA,MAAA,CAAA,EAAV,SAAU,CAAA,SAAA,CAAA;EAAV;EAqBN,GAAA,CAAA,SAAA,EAAA,MAAA,EAAA,WAAA,EAAA,MAAA,CAAA,EAAhB,OAAgB,CAAR,OAAQ,CAAA,SAAA,EAAW,MAAX,CAAA,CAAA;EAAW,GAAA,CAAA,cAAA,OAAA,GACF,MADE,CAAA,CAAA,SAAA,EAAA,MAAA,EAAA,WAAA,EAAA,MAAA,EAAA,IAAA,EAIvB,WAJuB,CAIX,KAJW,CAAA,CAAA,EAK3B,OAL2B,CAKnB,OALmB,CAKX,SALW,EAKA,KALA,CAAA,CAAA;EAAnB;AAAR;AACyB;AAGT;AAAZ;EACY,OAAA,CAAA,UAAA,EAAA,SAuBU,SAvBV,EAAA,CAAA,EAuBwB,OAvBxB,CAuBgC,OAvBhC,CAAA,IAAA,EAuB8C,MAvB9C,CAAA,CAAA;EAAW,OAAA,CAAA,cAAA,OAAA,GAwBE,MAxBF,CAAA,CAAA,UAAA,EAAA,SAyBR,SAzBQ,EAAA,EAAA,IAAA,EA0BvB,cA1BuB,GA0BN,WA1BM,CA0BM,KA1BN,CAAA,CAAA,EA2B3B,OA3B2B,CA2BnB,OA3BmB,CAAA,IAAA,EA2BL,KA3BK,CAAA,CAAA;AAAnB"}
1
+ {"version":3,"file":"operations.d.ts","names":[],"sources":["../../../src/neon/resources/operations.ts"],"mappings":";;;;;;;;;;AAiBA;AAA6B;AAA0B;AACrC;AAAZ;AAAL,KADW,iBACX,CAAA,cAAA,OAAA,CAAA,GADsD,cACtD,GAAA,IAAA,CAAK,WAAL,CAAiB,KAAjB,CAAA,EAAA,kBAAA,GAAA,kBAAA,CAAA;AAAI;AAGQ,cAAA,UAAU,CAAA,eAAA,OAAA,CAAA,CAAA;EAAA,CAAA,OAAA;EAGL,WAAA,CAAA,GAAA,EAAA,cAAA;EAKc;EAAwB,IAAA,CAAA,SAAA,EAAA,MAAA,EAAA,IAAA,CAAA,EAAxB,WAAwB,CAAA,EAAV,SAAU,CAAA,SAAA,CAAA;EAAV;EAsB1B,GAAA,CAAA,SAAA,EAAA,MAAA,EAAA,WAAA,EAAA,MAAA,CAAA,EAAhB,OAAgB,CAAR,OAAQ,CAAA,SAAA,EAAW,MAAX,CAAA,CAAA;EAAW,GAAA,CAAA,cAAA,OAAA,GACF,MADE,CAAA,CAAA,SAAA,EAAA,MAAA,EAAA,WAAA,EAAA,MAAA,EAAA,IAAA,EAIvB,WAJuB,CAIX,KAJW,CAAA,CAAA,EAK3B,OAL2B,CAKnB,OALmB,CAKX,SALW,EAKA,KALA,CAAA,CAAA;EAAnB;AAAR;AACyB;AAGT;AAAZ;EACY,OAAA,CAAA,UAAA,EAAA,SAwBU,SAxBV,EAAA,CAAA,EAwBwB,OAxBxB,CAwBgC,OAxBhC,CAAA,IAAA,EAwB8C,MAxB9C,CAAA,CAAA;EAAW,OAAA,CAAA,cAAA,OAAA,GAyBE,MAzBF,CAAA,CAAA,UAAA,EAAA,SA0BR,SA1BQ,EAAA,EAAA,IAAA,EA2BvB,iBA3BuB,CA2BL,KA3BK,CAAA,CAAA,EA4B3B,OA5B2B,CA4BnB,OA5BmB,CAAA,IAAA,EA4BL,KA5BK,CAAA,CAAA;AAAnB"}
@@ -9,7 +9,7 @@ var Operations = class {
9
9
  this.#ctx = ctx;
10
10
  }
11
11
  /** @apiCall GET /projects/{project_id}/operations (cursor-paginated) */
12
- list(projectId) {
12
+ list(projectId, opts) {
13
13
  return paginate((cursor, signal) => listProjectOperations({
14
14
  client: this.#ctx.client,
15
15
  path: { project_id: projectId },
@@ -19,16 +19,17 @@ var Operations = class {
19
19
  }), (data) => ({
20
20
  items: data?.operations ?? [],
21
21
  cursor: data?.pagination?.cursor
22
- }));
22
+ }), () => this.#ctx.deadlineFor(opts));
23
23
  }
24
24
  get(projectId, operationId, opts) {
25
- return this.#ctx.run(opts, (client) => getProjectOperation({
25
+ return this.#ctx.run(opts, (client, signal) => getProjectOperation({
26
26
  client,
27
27
  path: {
28
28
  project_id: projectId,
29
29
  operation_id: operationId
30
30
  },
31
- throwOnError: false
31
+ throwOnError: false,
32
+ signal
32
33
  }), (data) => data.operation);
33
34
  }
34
35
  async waitFor(operations, opts) {
@@ -1 +1 @@
1
- {"version":3,"file":"operations.js","names":["#ctx"],"sources":["../../../src/neon/resources/operations.ts"],"sourcesContent":["import {\n\tgetProjectOperation,\n\tlistProjectOperations,\n} from \"../../client/sdk.gen.js\";\nimport type { Operation } from \"../../client/types.gen.js\";\nimport type { CallOptions, RequestContext } from \"../context.js\";\nimport { type Paginated, paginate } from \"../paginate.js\";\nimport type { NeonResult, Outcome } from \"../result.js\";\nimport { type WaitForOptions, waitForOperations } from \"../wait.js\";\n\n/** Operation resource — read operations and wait for them to finish. */\nexport class Operations<DThrow extends boolean> {\n\treadonly #ctx: RequestContext;\n\n\tconstructor(ctx: RequestContext) {\n\t\tthis.#ctx = ctx;\n\t}\n\n\t/** @apiCall GET /projects/{project_id}/operations (cursor-paginated) */\n\tlist(projectId: string): Paginated<Operation> {\n\t\treturn paginate(\n\t\t\t(cursor, signal) =>\n\t\t\t\tlistProjectOperations({\n\t\t\t\t\tclient: this.#ctx.client,\n\t\t\t\t\tpath: { project_id: projectId },\n\t\t\t\t\tquery: { cursor },\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t\tsignal,\n\t\t\t\t}),\n\t\t\t(data) => ({\n\t\t\t\titems: data?.operations ?? [],\n\t\t\t\tcursor: data?.pagination?.cursor,\n\t\t\t}),\n\t\t);\n\t}\n\n\t/** @apiCall GET /projects/{project_id}/operations/{operation_id} */\n\tget(\n\t\tprojectId: string,\n\t\toperationId: string,\n\t): Promise<Outcome<Operation, DThrow>>;\n\tget<Throw extends boolean = DThrow>(\n\t\tprojectId: string,\n\t\toperationId: string,\n\t\topts: CallOptions<Throw>,\n\t): Promise<Outcome<Operation, Throw>>;\n\tget(\n\t\tprojectId: string,\n\t\toperationId: string,\n\t\topts?: CallOptions,\n\t): Promise<Operation | NeonResult<Operation>> {\n\t\treturn this.#ctx.run(\n\t\t\topts,\n\t\t\t(client) =>\n\t\t\t\tgetProjectOperation({\n\t\t\t\t\tclient,\n\t\t\t\t\tpath: { project_id: projectId, operation_id: operationId },\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t}),\n\t\t\t(data) => data.operation,\n\t\t);\n\t}\n\n\t/**\n\t * Poll until every given operation reaches a terminal `finished`/`skipped` state.\n\t * The primitive behind `waitForReadiness`; use it directly with operations obtained\n\t * from any source (e.g. a raw call or a create response).\n\t */\n\twaitFor(operations: readonly Operation[]): Promise<Outcome<void, DThrow>>;\n\twaitFor<Throw extends boolean = DThrow>(\n\t\toperations: readonly Operation[],\n\t\topts: WaitForOptions & CallOptions<Throw>,\n\t): Promise<Outcome<void, Throw>>;\n\tasync waitFor(\n\t\toperations: readonly Operation[],\n\t\topts?: WaitForOptions & CallOptions,\n\t): Promise<void | NeonResult<void>> {\n\t\tconst defaults = this.#ctx.defaults;\n\t\tconst shouldThrow = opts?.throwOnError ?? defaults.throwOnError;\n\t\tconst result = await waitForOperations(this.#ctx.client, operations, {\n\t\t\tpollIntervalMs:\n\t\t\t\topts?.pollIntervalMs ?? defaults.waitOptions.pollIntervalMs,\n\t\t\ttimeoutMs: opts?.timeoutMs ?? defaults.waitOptions.timeoutMs,\n\t\t\tsignal: opts?.signal ?? defaults.waitOptions.signal,\n\t\t});\n\t\tif (!shouldThrow) return result;\n\t\tif (result.error) throw result.error;\n\t\treturn result.data;\n\t}\n}\n"],"mappings":";;;;;AAWA,IAAa,aAAb,MAAgD;CAC/C;CAEA,YAAY,KAAqB;EAChC,KAAKA,OAAO;CACb;;CAGA,KAAK,WAAyC;EAC7C,OAAO,UACL,QAAQ,WACR,sBAAsB;GACrB,QAAQ,KAAKA,KAAK;GAClB,MAAM,EAAE,YAAY,UAAU;GAC9B,OAAO,EAAE,OAAO;GAChB,cAAc;GACd;EACD,CAAC,IACD,UAAU;GACV,OAAO,MAAM,cAAc,CAAC;GAC5B,QAAQ,MAAM,YAAY;EAC3B,EACD;CACD;CAYA,IACC,WACA,aACA,MAC6C;EAC7C,OAAO,KAAKA,KAAK,IAChB,OACC,WACA,oBAAoB;GACnB;GACA,MAAM;IAAE,YAAY;IAAW,cAAc;GAAY;GACzD,cAAc;EACf,CAAC,IACD,SAAS,KAAK,SAChB;CACD;CAYA,MAAM,QACL,YACA,MACmC;EACnC,MAAM,WAAW,KAAKA,KAAK;EAC3B,MAAM,cAAc,MAAM,gBAAgB,SAAS;EACnD,MAAM,SAAS,MAAM,kBAAkB,KAAKA,KAAK,QAAQ,YAAY;GACpE,gBACC,MAAM,kBAAkB,SAAS,YAAY;GAC9C,WAAW,MAAM,aAAa,SAAS,YAAY;GACnD,QAAQ,MAAM,UAAU,SAAS,YAAY;EAC9C,CAAC;EACD,IAAI,CAAC,aAAa,OAAO;EACzB,IAAI,OAAO,OAAO,MAAM,OAAO;EAC/B,OAAO,OAAO;CACf;AACD"}
1
+ {"version":3,"file":"operations.js","names":["#ctx"],"sources":["../../../src/neon/resources/operations.ts"],"sourcesContent":["import {\n\tgetProjectOperation,\n\tlistProjectOperations,\n} from \"../../client/sdk.gen.js\";\nimport type { Operation } from \"../../client/types.gen.js\";\nimport type { CallOptions, RequestContext } from \"../context.js\";\nimport { type Paginated, paginate } from \"../paginate.js\";\nimport type { NeonResult, Outcome } from \"../result.js\";\nimport { type WaitForOptions, waitForOperations } from \"../wait.js\";\n\n/**\n * Options for {@link Operations.waitFor}.\n *\n * `requestTimeoutMs` and `waitForReadiness` are deliberately excluded. Readiness is\n * budgeted by `timeoutMs`, and waiting *is* the readiness step — accepting either would\n * offer a knob that silently did nothing.\n */\nexport type WaitForForOptions<Throw extends boolean> = WaitForOptions &\n\tOmit<CallOptions<Throw>, \"requestTimeoutMs\" | \"waitForReadiness\">;\n\n/** Operation resource — read operations and wait for them to finish. */\nexport class Operations<DThrow extends boolean> {\n\treadonly #ctx: RequestContext;\n\n\tconstructor(ctx: RequestContext) {\n\t\tthis.#ctx = ctx;\n\t}\n\n\t/** @apiCall GET /projects/{project_id}/operations (cursor-paginated) */\n\tlist(projectId: string, opts?: CallOptions): Paginated<Operation> {\n\t\treturn paginate(\n\t\t\t(cursor, signal) =>\n\t\t\t\tlistProjectOperations({\n\t\t\t\t\tclient: this.#ctx.client,\n\t\t\t\t\tpath: { project_id: projectId },\n\t\t\t\t\tquery: { cursor },\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t\tsignal,\n\t\t\t\t}),\n\t\t\t(data) => ({\n\t\t\t\titems: data?.operations ?? [],\n\t\t\t\tcursor: data?.pagination?.cursor,\n\t\t\t}),\n\t\t\t() => this.#ctx.deadlineFor(opts),\n\t\t);\n\t}\n\n\t/** @apiCall GET /projects/{project_id}/operations/{operation_id} */\n\tget(\n\t\tprojectId: string,\n\t\toperationId: string,\n\t): Promise<Outcome<Operation, DThrow>>;\n\tget<Throw extends boolean = DThrow>(\n\t\tprojectId: string,\n\t\toperationId: string,\n\t\topts: CallOptions<Throw>,\n\t): Promise<Outcome<Operation, Throw>>;\n\tget(\n\t\tprojectId: string,\n\t\toperationId: string,\n\t\topts?: CallOptions,\n\t): Promise<Operation | NeonResult<Operation>> {\n\t\treturn this.#ctx.run(\n\t\t\topts,\n\t\t\t(client, signal) =>\n\t\t\t\tgetProjectOperation({\n\t\t\t\t\tclient,\n\t\t\t\t\tpath: { project_id: projectId, operation_id: operationId },\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t\tsignal,\n\t\t\t\t}),\n\t\t\t(data) => data.operation,\n\t\t);\n\t}\n\n\t/**\n\t * Poll until every given operation reaches a terminal `finished`/`skipped` state.\n\t * The primitive behind `waitForReadiness`; use it directly with operations obtained\n\t * from any source (e.g. a raw call or a create response).\n\t */\n\twaitFor(operations: readonly Operation[]): Promise<Outcome<void, DThrow>>;\n\twaitFor<Throw extends boolean = DThrow>(\n\t\toperations: readonly Operation[],\n\t\topts: WaitForForOptions<Throw>,\n\t): Promise<Outcome<void, Throw>>;\n\tasync waitFor(\n\t\toperations: readonly Operation[],\n\t\topts?: WaitForForOptions<boolean>,\n\t): Promise<void | NeonResult<void>> {\n\t\tconst defaults = this.#ctx.defaults;\n\t\tconst shouldThrow = opts?.throwOnError ?? defaults.throwOnError;\n\t\tconst result = await waitForOperations(this.#ctx.client, operations, {\n\t\t\tpollIntervalMs:\n\t\t\t\topts?.pollIntervalMs ?? defaults.waitOptions.pollIntervalMs,\n\t\t\ttimeoutMs: opts?.timeoutMs ?? defaults.waitOptions.timeoutMs,\n\t\t\tsignal: opts?.signal ?? defaults.waitOptions.signal,\n\t\t});\n\t\tif (!shouldThrow) return result;\n\t\tif (result.error) throw result.error;\n\t\treturn result.data;\n\t}\n}\n"],"mappings":";;;;;AAqBA,IAAa,aAAb,MAAgD;CAC/C;CAEA,YAAY,KAAqB;EAChC,KAAKA,OAAO;CACb;;CAGA,KAAK,WAAmB,MAA0C;EACjE,OAAO,UACL,QAAQ,WACR,sBAAsB;GACrB,QAAQ,KAAKA,KAAK;GAClB,MAAM,EAAE,YAAY,UAAU;GAC9B,OAAO,EAAE,OAAO;GAChB,cAAc;GACd;EACD,CAAC,IACD,UAAU;GACV,OAAO,MAAM,cAAc,CAAC;GAC5B,QAAQ,MAAM,YAAY;EAC3B,UACM,KAAKA,KAAK,YAAY,IAAI,CACjC;CACD;CAYA,IACC,WACA,aACA,MAC6C;EAC7C,OAAO,KAAKA,KAAK,IAChB,OACC,QAAQ,WACR,oBAAoB;GACnB;GACA,MAAM;IAAE,YAAY;IAAW,cAAc;GAAY;GACzD,cAAc;GACd;EACD,CAAC,IACD,SAAS,KAAK,SAChB;CACD;CAYA,MAAM,QACL,YACA,MACmC;EACnC,MAAM,WAAW,KAAKA,KAAK;EAC3B,MAAM,cAAc,MAAM,gBAAgB,SAAS;EACnD,MAAM,SAAS,MAAM,kBAAkB,KAAKA,KAAK,QAAQ,YAAY;GACpE,gBACC,MAAM,kBAAkB,SAAS,YAAY;GAC9C,WAAW,MAAM,aAAa,SAAS,YAAY;GACnD,QAAQ,MAAM,UAAU,SAAS,YAAY;EAC9C,CAAC;EACD,IAAI,CAAC,aAAa,OAAO;EACzB,IAAI,OAAO,OAAO,MAAM,OAAO;EAC/B,OAAO,OAAO;CACf;AACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"postgres.d.ts","names":[],"sources":["../../../src/neon/resources/postgres.ts"],"mappings":";;;;;;;;;UAeiB,sBAAA;EAAA,SAAA,EAAA,MAAA;EAmBJ;EAAQ,QAAA,CAAA,EAAA,MAAA;EACU;EAAV,UAAA,CAAA,EAAA,MAAA;EACE;EAAN,YAAA,CAAA,EAAA,MAAA;EACc;EAAV,QAAA,CAAA,EAAA,MAAA;EACM;EAAR,MAAA,CAAA,EAAA,OAAA;AAGD;AAcR;AACkB;AAAhB;AAAR;AACsC;AAChC,cAxBG,QAwBH,CAAA,eAAA,OAAA,CAAA,CAAA;EACU,CAAA,OAAA;EAAZ,SAAA,SAAA,EAxBa,SAwBb,CAxBuB,MAwBvB,CAAA;EACoB,SAAA,KAAA,EAxBX,KAwBW,CAxBL,MAwBK,CAAA;EAAhB,SAAA,SAAA,EAvBS,SAuBT,CAvBmB,MAuBnB,CAAA;EAAR,SAAA,OAAA,EAtBe,OAsBf,CAtBuB,MAsBvB,CAAA;EAAO,WAAA,CAAA,GAAA,EAnBO,cAmBP;;;;;;2BALD,yBACN,QAAQ,gBAAgB;2CACc,gBAChC,8BACF,YAAY,SAChB,QAAQ,gBAAgB"}
1
+ {"version":3,"file":"postgres.d.ts","names":[],"sources":["../../../src/neon/resources/postgres.ts"],"mappings":";;;;;;;;;UAgBiB,sBAAA;EAAA,SAAA,EAAA,MAAA;EAmBJ;EAAQ,QAAA,CAAA,EAAA,MAAA;EACU;EAAV,UAAA,CAAA,EAAA,MAAA;EACE;EAAN,YAAA,CAAA,EAAA,MAAA;EACc;EAAV,QAAA,CAAA,EAAA,MAAA;EACM;EAAR,MAAA,CAAA,EAAA,OAAA;AAGD;AAcR;AACkB;AAAhB;AAAR;AACsC;AAChC,cAxBG,QAwBH,CAAA,eAAA,OAAA,CAAA,CAAA;EACU,CAAA,OAAA;EAAZ,SAAA,SAAA,EAxBa,SAwBb,CAxBuB,MAwBvB,CAAA;EACoB,SAAA,KAAA,EAxBX,KAwBW,CAxBL,MAwBK,CAAA;EAAhB,SAAA,SAAA,EAvBS,SAuBT,CAvBmB,MAuBnB,CAAA;EAAR,SAAA,OAAA,EAtBe,OAsBf,CAtBuB,MAsBvB,CAAA;EAAO,WAAA,CAAA,GAAA,EAnBO,cAmBP;;;;;;2BALD,yBACN,QAAQ,gBAAgB;2CACc,gBAChC,8BACF,YAAY,SAChB,QAAQ,gBAAgB"}
@@ -1,4 +1,5 @@
1
1
  import { NeonError, toNeonError } from "../errors.js";
2
+ import { cancelled, runBounded } from "../deadline.js";
2
3
  import { err, finalize, ok } from "../result.js";
3
4
  import { getConnectionUri, listProjectBranchDatabases, listProjectBranchRoles, listProjectBranches } from "../../client/sdk.gen.js";
4
5
  import { DataApi } from "./dataapi.js";
@@ -26,7 +27,14 @@ var Postgres = class {
26
27
  }
27
28
  async connectionString(params, opts) {
28
29
  const shouldThrow = opts?.throwOnError ?? this.#ctx.defaults.throwOnError;
29
- return finalize(await this.#resolve(params, opts?.signal), shouldThrow);
30
+ const deadline = this.#ctx.deadlineFor(opts);
31
+ try {
32
+ const resolved = await runBounded(deadline, () => this.#resolve(params, deadline.signal));
33
+ const cancellation = cancelled(deadline);
34
+ return finalize(cancellation !== void 0 ? err(cancellation) : resolved ?? err(new NeonError("The connection-string resolver ended without a result.", "client")), shouldThrow);
35
+ } finally {
36
+ deadline.dispose();
37
+ }
30
38
  }
31
39
  async #resolve(params, signal) {
32
40
  const client = this.#ctx.client;
@@ -1 +1 @@
1
- {"version":3,"file":"postgres.js","names":["#ctx","#resolve"],"sources":["../../../src/neon/resources/postgres.ts"],"sourcesContent":["import {\n\tgetConnectionUri,\n\tlistProjectBranchDatabases,\n\tlistProjectBranches,\n\tlistProjectBranchRoles,\n} from \"../../client/sdk.gen.js\";\nimport type { CallOptions, RequestContext } from \"../context.js\";\nimport { NeonError, toNeonError } from \"../errors.js\";\nimport { err, finalize, type NeonResult, type Outcome, ok } from \"../result.js\";\nimport { DataApi } from \"./dataapi.js\";\nimport { Databases } from \"./databases.js\";\nimport { Endpoints } from \"./endpoints.js\";\nimport { Roles } from \"./roles.js\";\n\n/** Parameters for {@link Postgres.connectionString}. */\nexport interface ConnectionStringParams {\n\tprojectId: string;\n\t/** Defaults to the project's default branch. */\n\tbranchId?: string;\n\t/** Defaults to the branch's read-write endpoint. */\n\tendpointId?: string;\n\t/** Auto-selected when the branch has exactly one database. */\n\tdatabaseName?: string;\n\t/** Auto-selected when the branch has exactly one role. */\n\troleName?: string;\n\t/** Pooled connection string (default `true`). */\n\tpooled?: boolean;\n}\n\n/**\n * The Postgres data plane of a branch: compute endpoints, roles, databases, the Data API,\n * and a connection-string helper. (Grouped under `neon.postgres.*` so future top-level\n * namespaces like `functions` / `storage` stay unambiguous.)\n */\nexport class Postgres<DThrow extends boolean> {\n\treadonly endpoints: Endpoints<DThrow>;\n\treadonly roles: Roles<DThrow>;\n\treadonly databases: Databases<DThrow>;\n\treadonly dataApi: DataApi<DThrow>;\n\treadonly #ctx: RequestContext;\n\n\tconstructor(ctx: RequestContext) {\n\t\tthis.#ctx = ctx;\n\t\tthis.endpoints = new Endpoints<DThrow>(ctx);\n\t\tthis.roles = new Roles<DThrow>(ctx);\n\t\tthis.databases = new Databases<DThrow>(ctx);\n\t\tthis.dataApi = new DataApi<DThrow>(ctx);\n\t}\n\n\t/**\n\t * Resolve a Postgres connection string. Auto-selects the default branch and the sole\n\t * role/database when not specified (mirrors `@neon/config`'s `fetchEnv`); returns\n\t * a `client`-kind {@link NeonError} when the selection is ambiguous.\n\t */\n\tconnectionString(\n\t\tparams: ConnectionStringParams,\n\t): Promise<Outcome<string, DThrow>>;\n\tconnectionString<Throw extends boolean = DThrow>(\n\t\tparams: ConnectionStringParams,\n\t\topts: CallOptions<Throw>,\n\t): Promise<Outcome<string, Throw>>;\n\tasync connectionString(\n\t\tparams: ConnectionStringParams,\n\t\topts?: CallOptions,\n\t): Promise<string | NeonResult<string>> {\n\t\tconst shouldThrow =\n\t\t\topts?.throwOnError ?? this.#ctx.defaults.throwOnError;\n\t\treturn finalize(await this.#resolve(params, opts?.signal), shouldThrow);\n\t}\n\n\tasync #resolve(\n\t\tparams: ConnectionStringParams,\n\t\tsignal?: AbortSignal,\n\t): Promise<NeonResult<string>> {\n\t\tconst client = this.#ctx.client;\n\t\tconst projectId = params.projectId;\n\t\tlet branchId = params.branchId;\n\t\tlet roleName = params.roleName;\n\t\tlet databaseName = params.databaseName;\n\n\t\tif ((!roleName || !databaseName) && !branchId) {\n\t\t\tconst branches = await listProjectBranches({\n\t\t\t\tclient,\n\t\t\t\tpath: { project_id: projectId },\n\t\t\t\tthrowOnError: false,\n\t\t\t\tsignal,\n\t\t\t});\n\t\t\tif (branches.error || !branches.data) {\n\t\t\t\treturn err(toNeonError(branches.error, branches.response));\n\t\t\t}\n\t\t\tbranchId = branches.data.branches.find(\n\t\t\t\t(branch) => branch.default,\n\t\t\t)?.id;\n\t\t\tif (!branchId) {\n\t\t\t\treturn err(\n\t\t\t\t\tnew NeonError(\n\t\t\t\t\t\t\"Could not determine the default branch; pass branchId.\",\n\t\t\t\t\t\t\"client\",\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!roleName) {\n\t\t\tif (!branchId) return err(branchRequired(\"roleName\"));\n\t\t\tconst roles = await listProjectBranchRoles({\n\t\t\t\tclient,\n\t\t\t\tpath: { project_id: projectId, branch_id: branchId },\n\t\t\t\tthrowOnError: false,\n\t\t\t\tsignal,\n\t\t\t});\n\t\t\tif (roles.error || !roles.data)\n\t\t\t\treturn err(toNeonError(roles.error, roles.response));\n\t\t\tif (roles.data.roles.length !== 1) {\n\t\t\t\treturn err(\n\t\t\t\t\tambiguous(\"role\", roles.data.roles.length, \"roleName\"),\n\t\t\t\t);\n\t\t\t}\n\t\t\troleName = roles.data.roles[0].name;\n\t\t}\n\n\t\tif (!databaseName) {\n\t\t\tif (!branchId) return err(branchRequired(\"databaseName\"));\n\t\t\tconst databases = await listProjectBranchDatabases({\n\t\t\t\tclient,\n\t\t\t\tpath: { project_id: projectId, branch_id: branchId },\n\t\t\t\tthrowOnError: false,\n\t\t\t\tsignal,\n\t\t\t});\n\t\t\tif (databases.error || !databases.data) {\n\t\t\t\treturn err(toNeonError(databases.error, databases.response));\n\t\t\t}\n\t\t\tif (databases.data.databases.length !== 1) {\n\t\t\t\treturn err(\n\t\t\t\t\tambiguous(\n\t\t\t\t\t\t\"database\",\n\t\t\t\t\t\tdatabases.data.databases.length,\n\t\t\t\t\t\t\"databaseName\",\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t\tdatabaseName = databases.data.databases[0].name;\n\t\t}\n\n\t\tconst conn = await getConnectionUri({\n\t\t\tclient,\n\t\t\tpath: { project_id: projectId },\n\t\t\tquery: {\n\t\t\t\tbranch_id: branchId,\n\t\t\t\tendpoint_id: params.endpointId,\n\t\t\t\tdatabase_name: databaseName,\n\t\t\t\trole_name: roleName,\n\t\t\t\tpooled: params.pooled ?? true,\n\t\t\t},\n\t\t\tthrowOnError: false,\n\t\t\tsignal,\n\t\t});\n\t\tif (conn.error || !conn.data)\n\t\t\treturn err(toNeonError(conn.error, conn.response));\n\t\treturn ok(conn.data.uri);\n\t}\n}\n\nfunction branchRequired(param: string): NeonError {\n\treturn new NeonError(\n\t\t`Pass branchId or ${param} to resolve a connection string.`,\n\t\t\"client\",\n\t);\n}\n\nfunction ambiguous(kind: string, count: number, param: string): NeonError {\n\treturn new NeonError(\n\t\t`Expected exactly one ${kind} to auto-select for the connection string; found ${count}. Pass ${param}.`,\n\t\t\"client\",\n\t);\n}\n"],"mappings":";;;;;;;;;;;;;AAkCA,IAAa,WAAb,MAA8C;CAC7C;CACA;CACA;CACA;CACA;CAEA,YAAY,KAAqB;EAChC,KAAKA,OAAO;EACZ,KAAK,YAAY,IAAI,UAAkB,GAAG;EAC1C,KAAK,QAAQ,IAAI,MAAc,GAAG;EAClC,KAAK,YAAY,IAAI,UAAkB,GAAG;EAC1C,KAAK,UAAU,IAAI,QAAgB,GAAG;CACvC;CAcA,MAAM,iBACL,QACA,MACuC;EACvC,MAAM,cACL,MAAM,gBAAgB,KAAKA,KAAK,SAAS;EAC1C,OAAO,SAAS,MAAM,KAAKC,SAAS,QAAQ,MAAM,MAAM,GAAG,WAAW;CACvE;CAEA,MAAMA,SACL,QACA,QAC8B;EAC9B,MAAM,SAAS,KAAKD,KAAK;EACzB,MAAM,YAAY,OAAO;EACzB,IAAI,WAAW,OAAO;EACtB,IAAI,WAAW,OAAO;EACtB,IAAI,eAAe,OAAO;EAE1B,KAAK,CAAC,YAAY,CAAC,iBAAiB,CAAC,UAAU;GAC9C,MAAM,WAAW,MAAM,oBAAoB;IAC1C;IACA,MAAM,EAAE,YAAY,UAAU;IAC9B,cAAc;IACd;GACD,CAAC;GACD,IAAI,SAAS,SAAS,CAAC,SAAS,MAC/B,OAAO,IAAI,YAAY,SAAS,OAAO,SAAS,QAAQ,CAAC;GAE1D,WAAW,SAAS,KAAK,SAAS,MAChC,WAAW,OAAO,OACpB,CAAC,EAAE;GACH,IAAI,CAAC,UACJ,OAAO,IACN,IAAI,UACH,0DACA,QACD,CACD;EAEF;EAEA,IAAI,CAAC,UAAU;GACd,IAAI,CAAC,UAAU,OAAO,IAAI,eAAe,UAAU,CAAC;GACpD,MAAM,QAAQ,MAAM,uBAAuB;IAC1C;IACA,MAAM;KAAE,YAAY;KAAW,WAAW;IAAS;IACnD,cAAc;IACd;GACD,CAAC;GACD,IAAI,MAAM,SAAS,CAAC,MAAM,MACzB,OAAO,IAAI,YAAY,MAAM,OAAO,MAAM,QAAQ,CAAC;GACpD,IAAI,MAAM,KAAK,MAAM,WAAW,GAC/B,OAAO,IACN,UAAU,QAAQ,MAAM,KAAK,MAAM,QAAQ,UAAU,CACtD;GAED,WAAW,MAAM,KAAK,MAAM,EAAE,CAAC;EAChC;EAEA,IAAI,CAAC,cAAc;GAClB,IAAI,CAAC,UAAU,OAAO,IAAI,eAAe,cAAc,CAAC;GACxD,MAAM,YAAY,MAAM,2BAA2B;IAClD;IACA,MAAM;KAAE,YAAY;KAAW,WAAW;IAAS;IACnD,cAAc;IACd;GACD,CAAC;GACD,IAAI,UAAU,SAAS,CAAC,UAAU,MACjC,OAAO,IAAI,YAAY,UAAU,OAAO,UAAU,QAAQ,CAAC;GAE5D,IAAI,UAAU,KAAK,UAAU,WAAW,GACvC,OAAO,IACN,UACC,YACA,UAAU,KAAK,UAAU,QACzB,cACD,CACD;GAED,eAAe,UAAU,KAAK,UAAU,EAAE,CAAC;EAC5C;EAEA,MAAM,OAAO,MAAM,iBAAiB;GACnC;GACA,MAAM,EAAE,YAAY,UAAU;GAC9B,OAAO;IACN,WAAW;IACX,aAAa,OAAO;IACpB,eAAe;IACf,WAAW;IACX,QAAQ,OAAO,UAAU;GAC1B;GACA,cAAc;GACd;EACD,CAAC;EACD,IAAI,KAAK,SAAS,CAAC,KAAK,MACvB,OAAO,IAAI,YAAY,KAAK,OAAO,KAAK,QAAQ,CAAC;EAClD,OAAO,GAAG,KAAK,KAAK,GAAG;CACxB;AACD;AAEA,SAAS,eAAe,OAA0B;CACjD,OAAO,IAAI,UACV,oBAAoB,MAAM,mCAC1B,QACD;AACD;AAEA,SAAS,UAAU,MAAc,OAAe,OAA0B;CACzE,OAAO,IAAI,UACV,wBAAwB,KAAK,mDAAmD,MAAM,SAAS,MAAM,IACrG,QACD;AACD"}
1
+ {"version":3,"file":"postgres.js","names":["#ctx","#resolve"],"sources":["../../../src/neon/resources/postgres.ts"],"sourcesContent":["import {\n\tgetConnectionUri,\n\tlistProjectBranchDatabases,\n\tlistProjectBranches,\n\tlistProjectBranchRoles,\n} from \"../../client/sdk.gen.js\";\nimport type { CallOptions, RequestContext } from \"../context.js\";\nimport { cancelled, runBounded } from \"../deadline.js\";\nimport { NeonError, toNeonError } from \"../errors.js\";\nimport { err, finalize, type NeonResult, type Outcome, ok } from \"../result.js\";\nimport { DataApi } from \"./dataapi.js\";\nimport { Databases } from \"./databases.js\";\nimport { Endpoints } from \"./endpoints.js\";\nimport { Roles } from \"./roles.js\";\n\n/** Parameters for {@link Postgres.connectionString}. */\nexport interface ConnectionStringParams {\n\tprojectId: string;\n\t/** Defaults to the project's default branch. */\n\tbranchId?: string;\n\t/** Defaults to the branch's read-write endpoint. */\n\tendpointId?: string;\n\t/** Auto-selected when the branch has exactly one database. */\n\tdatabaseName?: string;\n\t/** Auto-selected when the branch has exactly one role. */\n\troleName?: string;\n\t/** Pooled connection string (default `true`). */\n\tpooled?: boolean;\n}\n\n/**\n * The Postgres data plane of a branch: compute endpoints, roles, databases, the Data API,\n * and a connection-string helper. (Grouped under `neon.postgres.*` so future top-level\n * namespaces like `functions` / `storage` stay unambiguous.)\n */\nexport class Postgres<DThrow extends boolean> {\n\treadonly endpoints: Endpoints<DThrow>;\n\treadonly roles: Roles<DThrow>;\n\treadonly databases: Databases<DThrow>;\n\treadonly dataApi: DataApi<DThrow>;\n\treadonly #ctx: RequestContext;\n\n\tconstructor(ctx: RequestContext) {\n\t\tthis.#ctx = ctx;\n\t\tthis.endpoints = new Endpoints<DThrow>(ctx);\n\t\tthis.roles = new Roles<DThrow>(ctx);\n\t\tthis.databases = new Databases<DThrow>(ctx);\n\t\tthis.dataApi = new DataApi<DThrow>(ctx);\n\t}\n\n\t/**\n\t * Resolve a Postgres connection string. Auto-selects the default branch and the sole\n\t * role/database when not specified (mirrors `@neon/config`'s `fetchEnv`); returns\n\t * a `client`-kind {@link NeonError} when the selection is ambiguous.\n\t */\n\tconnectionString(\n\t\tparams: ConnectionStringParams,\n\t): Promise<Outcome<string, DThrow>>;\n\tconnectionString<Throw extends boolean = DThrow>(\n\t\tparams: ConnectionStringParams,\n\t\topts: CallOptions<Throw>,\n\t): Promise<Outcome<string, Throw>>;\n\tasync connectionString(\n\t\tparams: ConnectionStringParams,\n\t\topts?: CallOptions,\n\t): Promise<string | NeonResult<string>> {\n\t\tconst shouldThrow =\n\t\t\topts?.throwOnError ?? this.#ctx.defaults.throwOnError;\n\t\t// This resolver makes up to four sequential requests without going through\n\t\t// RequestContext, so it owns the deadline covering all of them.\n\t\tconst deadline = this.#ctx.deadlineFor(opts);\n\t\ttry {\n\t\t\tconst resolved = await runBounded(deadline, () =>\n\t\t\t\tthis.#resolve(params, deadline.signal),\n\t\t\t);\n\t\t\tconst cancellation = cancelled(deadline);\n\t\t\t// `runBounded` resolves undefined only when the deadline won the race, which\n\t\t\t// `cancelled` then reports, so the fallback is unreachable by construction.\n\t\t\tconst result: NeonResult<string> =\n\t\t\t\tcancellation !== undefined\n\t\t\t\t\t? err(cancellation)\n\t\t\t\t\t: (resolved ??\n\t\t\t\t\t\terr(\n\t\t\t\t\t\t\tnew NeonError(\n\t\t\t\t\t\t\t\t\"The connection-string resolver ended without a result.\",\n\t\t\t\t\t\t\t\t\"client\",\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t));\n\t\t\treturn finalize(result, shouldThrow);\n\t\t} finally {\n\t\t\tdeadline.dispose();\n\t\t}\n\t}\n\n\tasync #resolve(\n\t\tparams: ConnectionStringParams,\n\t\tsignal?: AbortSignal,\n\t): Promise<NeonResult<string>> {\n\t\tconst client = this.#ctx.client;\n\t\tconst projectId = params.projectId;\n\t\tlet branchId = params.branchId;\n\t\tlet roleName = params.roleName;\n\t\tlet databaseName = params.databaseName;\n\n\t\tif ((!roleName || !databaseName) && !branchId) {\n\t\t\tconst branches = await listProjectBranches({\n\t\t\t\tclient,\n\t\t\t\tpath: { project_id: projectId },\n\t\t\t\tthrowOnError: false,\n\t\t\t\tsignal,\n\t\t\t});\n\t\t\tif (branches.error || !branches.data) {\n\t\t\t\treturn err(toNeonError(branches.error, branches.response));\n\t\t\t}\n\t\t\tbranchId = branches.data.branches.find(\n\t\t\t\t(branch) => branch.default,\n\t\t\t)?.id;\n\t\t\tif (!branchId) {\n\t\t\t\treturn err(\n\t\t\t\t\tnew NeonError(\n\t\t\t\t\t\t\"Could not determine the default branch; pass branchId.\",\n\t\t\t\t\t\t\"client\",\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tif (!roleName) {\n\t\t\tif (!branchId) return err(branchRequired(\"roleName\"));\n\t\t\tconst roles = await listProjectBranchRoles({\n\t\t\t\tclient,\n\t\t\t\tpath: { project_id: projectId, branch_id: branchId },\n\t\t\t\tthrowOnError: false,\n\t\t\t\tsignal,\n\t\t\t});\n\t\t\tif (roles.error || !roles.data)\n\t\t\t\treturn err(toNeonError(roles.error, roles.response));\n\t\t\tif (roles.data.roles.length !== 1) {\n\t\t\t\treturn err(\n\t\t\t\t\tambiguous(\"role\", roles.data.roles.length, \"roleName\"),\n\t\t\t\t);\n\t\t\t}\n\t\t\troleName = roles.data.roles[0].name;\n\t\t}\n\n\t\tif (!databaseName) {\n\t\t\tif (!branchId) return err(branchRequired(\"databaseName\"));\n\t\t\tconst databases = await listProjectBranchDatabases({\n\t\t\t\tclient,\n\t\t\t\tpath: { project_id: projectId, branch_id: branchId },\n\t\t\t\tthrowOnError: false,\n\t\t\t\tsignal,\n\t\t\t});\n\t\t\tif (databases.error || !databases.data) {\n\t\t\t\treturn err(toNeonError(databases.error, databases.response));\n\t\t\t}\n\t\t\tif (databases.data.databases.length !== 1) {\n\t\t\t\treturn err(\n\t\t\t\t\tambiguous(\n\t\t\t\t\t\t\"database\",\n\t\t\t\t\t\tdatabases.data.databases.length,\n\t\t\t\t\t\t\"databaseName\",\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\t\t\tdatabaseName = databases.data.databases[0].name;\n\t\t}\n\n\t\tconst conn = await getConnectionUri({\n\t\t\tclient,\n\t\t\tpath: { project_id: projectId },\n\t\t\tquery: {\n\t\t\t\tbranch_id: branchId,\n\t\t\t\tendpoint_id: params.endpointId,\n\t\t\t\tdatabase_name: databaseName,\n\t\t\t\trole_name: roleName,\n\t\t\t\tpooled: params.pooled ?? true,\n\t\t\t},\n\t\t\tthrowOnError: false,\n\t\t\tsignal,\n\t\t});\n\t\tif (conn.error || !conn.data)\n\t\t\treturn err(toNeonError(conn.error, conn.response));\n\t\treturn ok(conn.data.uri);\n\t}\n}\n\nfunction branchRequired(param: string): NeonError {\n\treturn new NeonError(\n\t\t`Pass branchId or ${param} to resolve a connection string.`,\n\t\t\"client\",\n\t);\n}\n\nfunction ambiguous(kind: string, count: number, param: string): NeonError {\n\treturn new NeonError(\n\t\t`Expected exactly one ${kind} to auto-select for the connection string; found ${count}. Pass ${param}.`,\n\t\t\"client\",\n\t);\n}\n"],"mappings":"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"}
@@ -51,7 +51,7 @@ declare class Projects<DThrow extends boolean> {
51
51
  *
52
52
  * @apiCall GET /projects
53
53
  */
54
- list(query?: ListQuery): Paginated<ProjectListItem>;
54
+ list(query?: ListQuery, opts?: CallOptions): Paginated<ProjectListItem>;
55
55
  /** @apiCall GET /projects/{project_id} */
56
56
  get(id: string): Promise<Outcome<Project, DThrow>>;
57
57
  get<Throw extends boolean = DThrow>(id: string, opts: CallOptions<Throw>): Promise<Outcome<Project, Throw>>;
@@ -1 +1 @@
1
- {"version":3,"file":"projects.d.ts","names":[],"sources":["../../../src/neon/resources/projects.ts"],"mappings":"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"}
1
+ {"version":3,"file":"projects.d.ts","names":[],"sources":["../../../src/neon/resources/projects.ts"],"mappings":"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"}
@@ -11,28 +11,31 @@ var Permissions = class {
11
11
  this.#ctx = ctx;
12
12
  }
13
13
  list(projectId, opts) {
14
- return this.#ctx.run(opts, (client) => listProjectPermissions({
14
+ return this.#ctx.run(opts, (client, signal) => listProjectPermissions({
15
15
  client,
16
16
  path: { project_id: projectId },
17
- throwOnError: false
17
+ throwOnError: false,
18
+ signal
18
19
  }), (data) => data.project_permissions);
19
20
  }
20
21
  grant(projectId, email, opts) {
21
- return this.#ctx.run(opts, (client) => grantPermissionToProject({
22
+ return this.#ctx.run(opts, (client, signal) => grantPermissionToProject({
22
23
  client,
23
24
  path: { project_id: projectId },
24
25
  body: { email },
25
- throwOnError: false
26
+ throwOnError: false,
27
+ signal
26
28
  }), (data) => data);
27
29
  }
28
30
  revoke(projectId, permissionId, opts) {
29
- return this.#ctx.run(opts, (client) => revokePermissionFromProject({
31
+ return this.#ctx.run(opts, (client, signal) => revokePermissionFromProject({
30
32
  client,
31
33
  path: {
32
34
  project_id: projectId,
33
35
  permission_id: permissionId
34
36
  },
35
- throwOnError: false
37
+ throwOnError: false,
38
+ signal
36
39
  }), (data) => data);
37
40
  }
38
41
  };
@@ -51,7 +54,7 @@ var Projects = class {
51
54
  *
52
55
  * @apiCall GET /projects
53
56
  */
54
- list(query) {
57
+ list(query, opts) {
55
58
  return paginate((cursor, signal) => listProjects({
56
59
  client: this.#ctx.client,
57
60
  query: {
@@ -64,23 +67,25 @@ var Projects = class {
64
67
  }), (data) => ({
65
68
  items: data?.projects ?? [],
66
69
  cursor: data?.pagination?.cursor
67
- }));
70
+ }), () => this.#ctx.deadlineFor(opts));
68
71
  }
69
72
  get(id, opts) {
70
- return this.#ctx.run(opts, (client) => getProject({
73
+ return this.#ctx.run(opts, (client, signal) => getProject({
71
74
  client,
72
75
  path: { project_id: id },
73
- throwOnError: false
76
+ throwOnError: false,
77
+ signal
74
78
  }), (data) => data.project);
75
79
  }
76
80
  create(input, opts) {
77
- return this.#ctx.run(opts, (client) => createProject({
81
+ return this.#ctx.run(opts, (client, signal) => createProject({
78
82
  client,
79
83
  body: { project: {
80
84
  ...this.#ctx.defaults.orgId ? { org_id: this.#ctx.defaults.orgId } : {},
81
85
  ...input
82
86
  } },
83
- throwOnError: false
87
+ throwOnError: false,
88
+ signal
84
89
  }), (data) => data.project);
85
90
  }
86
91
  async createAndConnect(input, opts) {
@@ -88,62 +93,68 @@ var Projects = class {
88
93
  return finalize(withConnectionString(await this.#ctx.execute({
89
94
  ...opts,
90
95
  waitForReadiness: opts?.waitForReadiness ?? true
91
- }, (client) => createProject({
96
+ }, (client, signal) => createProject({
92
97
  client,
93
98
  body: { project: {
94
99
  ...this.#ctx.defaults.orgId ? { org_id: this.#ctx.defaults.orgId } : {},
95
100
  ...input
96
101
  } },
97
- throwOnError: false
102
+ throwOnError: false,
103
+ signal
98
104
  }), (data) => data), (data) => data.connection_uris, (data, connectionString) => ({
99
105
  project: data.project,
100
106
  connectionString
101
107
  }), opts?.pooled ?? true), shouldThrow);
102
108
  }
103
109
  update(id, input, opts) {
104
- return this.#ctx.run(opts, (client) => updateProject({
110
+ return this.#ctx.run(opts, (client, signal) => updateProject({
105
111
  client,
106
112
  path: { project_id: id },
107
113
  body: { project: input },
108
- throwOnError: false
114
+ throwOnError: false,
115
+ signal
109
116
  }), (data) => data.project);
110
117
  }
111
118
  delete(id, opts) {
112
- return this.#ctx.run(opts, (client) => deleteProject({
119
+ return this.#ctx.run(opts, (client, signal) => deleteProject({
113
120
  client,
114
121
  path: { project_id: id },
115
- throwOnError: false
122
+ throwOnError: false,
123
+ signal
116
124
  }), (data) => data.project);
117
125
  }
118
126
  recover(id, opts) {
119
- return this.#ctx.run(opts, (client) => recoverProject({
127
+ return this.#ctx.run(opts, (client, signal) => recoverProject({
120
128
  client,
121
129
  path: { project_id: id },
122
- throwOnError: false
130
+ throwOnError: false,
131
+ signal
123
132
  }), (data) => data.project);
124
133
  }
125
134
  async transfer(input, opts) {
126
135
  const shouldThrow = opts?.throwOnError ?? this.#ctx.defaults.throwOnError;
127
136
  const fromOrgId = input.fromOrgId ?? this.#ctx.defaults.orgId;
128
137
  if (!fromOrgId) return finalize(err(new NeonError("Pass fromOrgId or set orgId on the client.", "client")), shouldThrow);
129
- return this.#ctx.run(opts, (client) => transferProjectsFromOrgToOrg({
138
+ return this.#ctx.run(opts, (client, signal) => transferProjectsFromOrgToOrg({
130
139
  client,
131
140
  path: { source_org_id: fromOrgId },
132
141
  body: {
133
142
  destination_org_id: input.toOrgId,
134
143
  project_ids: input.projectIds
135
144
  },
136
- throwOnError: false
145
+ throwOnError: false,
146
+ signal
137
147
  }), () => void 0);
138
148
  }
139
149
  transferFromUser(input, opts) {
140
- return this.#ctx.run(opts, (client) => transferProjectsFromUserToOrg({
150
+ return this.#ctx.run(opts, (client, signal) => transferProjectsFromUserToOrg({
141
151
  client,
142
152
  body: {
143
153
  destination_org_id: input.toOrgId,
144
154
  project_ids: input.projectIds
145
155
  },
146
- throwOnError: false
156
+ throwOnError: false,
157
+ signal
147
158
  }), () => void 0);
148
159
  }
149
160
  };
@@ -1 +1 @@
1
- {"version":3,"file":"projects.js","names":["#ctx"],"sources":["../../../src/neon/resources/projects.ts"],"sourcesContent":["import {\n\tcreateProject,\n\tdeleteProject,\n\tgetProject,\n\tgrantPermissionToProject,\n\tlistProjectPermissions,\n\tlistProjects,\n\trecoverProject,\n\trevokePermissionFromProject,\n\ttransferProjectsFromOrgToOrg,\n\ttransferProjectsFromUserToOrg,\n\tupdateProject,\n} from \"../../client/sdk.gen.js\";\nimport type {\n\tListProjectsData,\n\tProject,\n\tProjectCreateRequest,\n\tProjectListItem,\n\tProjectPermission,\n\tProjectUpdateRequest,\n} from \"../../client/types.gen.js\";\nimport { withConnectionString } from \"../connection.js\";\nimport type { CallOptions, RequestContext } from \"../context.js\";\nimport { NeonError } from \"../errors.js\";\nimport { type Paginated, paginate } from \"../paginate.js\";\nimport { err, finalize, type NeonResult, type Outcome } from \"../result.js\";\n\n/** Input for {@link Projects.transfer} (org → org). */\nexport interface TransferProjectsInput {\n\t/** Source org. Defaults to the client's `orgId`. */\n\tfromOrgId?: string;\n\t/** Destination org. */\n\ttoOrgId: string;\n\tprojectIds: string[];\n}\n\ntype ListQuery = Omit<NonNullable<ListProjectsData[\"query\"]>, \"cursor\">;\ntype CreateInput = ProjectCreateRequest[\"project\"];\ntype UpdateInput = ProjectUpdateRequest[\"project\"];\n\n/** Per-call options for the connect workflow. */\ninterface WorkflowOptions<Throw extends boolean> extends CallOptions<Throw> {\n\t/** Return a pooled connection string (default `true`). */\n\tpooled?: boolean;\n}\n\n/** A project with a ready-to-use connection string to its default branch. */\nexport interface ProjectConnection {\n\tproject: Project;\n\tconnectionString: string;\n}\n\n/** Project access grants (share a project with additional users by email). */\nexport class Permissions<DThrow extends boolean> {\n\treadonly #ctx: RequestContext;\n\n\tconstructor(ctx: RequestContext) {\n\t\tthis.#ctx = ctx;\n\t}\n\n\t/** @apiCall GET /projects/{project_id}/permissions */\n\tlist(projectId: string): Promise<Outcome<ProjectPermission[], DThrow>>;\n\tlist<Throw extends boolean = DThrow>(\n\t\tprojectId: string,\n\t\topts: CallOptions<Throw>,\n\t): Promise<Outcome<ProjectPermission[], Throw>>;\n\tlist(\n\t\tprojectId: string,\n\t\topts?: CallOptions,\n\t): Promise<ProjectPermission[] | NeonResult<ProjectPermission[]>> {\n\t\treturn this.#ctx.run(\n\t\t\topts,\n\t\t\t(client) =>\n\t\t\t\tlistProjectPermissions({\n\t\t\t\t\tclient,\n\t\t\t\t\tpath: { project_id: projectId },\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t}),\n\t\t\t(data) => data.project_permissions,\n\t\t);\n\t}\n\n\t/** @apiCall POST /projects/{project_id}/permissions */\n\tgrant(\n\t\tprojectId: string,\n\t\temail: string,\n\t): Promise<Outcome<ProjectPermission, DThrow>>;\n\tgrant<Throw extends boolean = DThrow>(\n\t\tprojectId: string,\n\t\temail: string,\n\t\topts: CallOptions<Throw>,\n\t): Promise<Outcome<ProjectPermission, Throw>>;\n\tgrant(\n\t\tprojectId: string,\n\t\temail: string,\n\t\topts?: CallOptions,\n\t): Promise<ProjectPermission | NeonResult<ProjectPermission>> {\n\t\treturn this.#ctx.run(\n\t\t\topts,\n\t\t\t(client) =>\n\t\t\t\tgrantPermissionToProject({\n\t\t\t\t\tclient,\n\t\t\t\t\tpath: { project_id: projectId },\n\t\t\t\t\tbody: { email },\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t}),\n\t\t\t(data) => data,\n\t\t);\n\t}\n\n\t/** @apiCall DELETE /projects/{project_id}/permissions/{permission_id} */\n\trevoke(\n\t\tprojectId: string,\n\t\tpermissionId: string,\n\t): Promise<Outcome<ProjectPermission, DThrow>>;\n\trevoke<Throw extends boolean = DThrow>(\n\t\tprojectId: string,\n\t\tpermissionId: string,\n\t\topts: CallOptions<Throw>,\n\t): Promise<Outcome<ProjectPermission, Throw>>;\n\trevoke(\n\t\tprojectId: string,\n\t\tpermissionId: string,\n\t\topts?: CallOptions,\n\t): Promise<ProjectPermission | NeonResult<ProjectPermission>> {\n\t\treturn this.#ctx.run(\n\t\t\topts,\n\t\t\t(client) =>\n\t\t\t\trevokePermissionFromProject({\n\t\t\t\t\tclient,\n\t\t\t\t\tpath: {\n\t\t\t\t\t\tproject_id: projectId,\n\t\t\t\t\t\tpermission_id: permissionId,\n\t\t\t\t\t},\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t}),\n\t\t\t(data) => data,\n\t\t);\n\t}\n}\n\n/** Project resource — one API call per method (`list` is cursor-paginated). */\nexport class Projects<DThrow extends boolean> {\n\treadonly #ctx: RequestContext;\n\t/** Project access grants (share by email). */\n\treadonly permissions: Permissions<DThrow>;\n\n\tconstructor(ctx: RequestContext) {\n\t\tthis.#ctx = ctx;\n\t\tthis.permissions = new Permissions<DThrow>(ctx);\n\t}\n\n\t/**\n\t * List projects (cursor-paginated). Returns a lazy list — `await .all()`, `.page()`,\n\t * or `for await (… of …)`.\n\t *\n\t * @apiCall GET /projects\n\t */\n\tlist(query?: ListQuery): Paginated<ProjectListItem> {\n\t\treturn paginate(\n\t\t\t(cursor, signal) =>\n\t\t\t\tlistProjects({\n\t\t\t\t\tclient: this.#ctx.client,\n\t\t\t\t\tquery: {\n\t\t\t\t\t\torg_id: this.#ctx.defaults.orgId,\n\t\t\t\t\t\t...query,\n\t\t\t\t\t\tcursor,\n\t\t\t\t\t},\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t\tsignal,\n\t\t\t\t}),\n\t\t\t(data) => ({\n\t\t\t\titems: data?.projects ?? [],\n\t\t\t\tcursor: data?.pagination?.cursor,\n\t\t\t}),\n\t\t);\n\t}\n\n\t/** @apiCall GET /projects/{project_id} */\n\tget(id: string): Promise<Outcome<Project, DThrow>>;\n\tget<Throw extends boolean = DThrow>(\n\t\tid: string,\n\t\topts: CallOptions<Throw>,\n\t): Promise<Outcome<Project, Throw>>;\n\tget(\n\t\tid: string,\n\t\topts?: CallOptions,\n\t): Promise<Project | NeonResult<Project>> {\n\t\treturn this.#ctx.run(\n\t\t\topts,\n\t\t\t(client) =>\n\t\t\t\tgetProject({\n\t\t\t\t\tclient,\n\t\t\t\t\tpath: { project_id: id },\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t}),\n\t\t\t(data) => data.project,\n\t\t);\n\t}\n\n\t/** @apiCall POST /projects */\n\tcreate(input?: CreateInput): Promise<Outcome<Project, DThrow>>;\n\tcreate<Throw extends boolean = DThrow>(\n\t\tinput: CreateInput | undefined,\n\t\topts: CallOptions<Throw>,\n\t): Promise<Outcome<Project, Throw>>;\n\tcreate(\n\t\tinput?: CreateInput,\n\t\topts?: CallOptions,\n\t): Promise<Project | NeonResult<Project>> {\n\t\treturn this.#ctx.run(\n\t\t\topts,\n\t\t\t(client) =>\n\t\t\t\tcreateProject({\n\t\t\t\t\tclient,\n\t\t\t\t\tbody: {\n\t\t\t\t\t\tproject: {\n\t\t\t\t\t\t\t...(this.#ctx.defaults.orgId\n\t\t\t\t\t\t\t\t? { org_id: this.#ctx.defaults.orgId }\n\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t...input,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t}),\n\t\t\t(data) => data.project,\n\t\t);\n\t}\n\n\t/**\n\t * Create a project and return a ready-to-use connection string to its default branch.\n\t * One API call plus readiness polling (the create response already carries the\n\t * connection URI).\n\t *\n\t * @workflow createProject + waitForReadiness\n\t */\n\tcreateAndConnect(\n\t\tinput?: CreateInput,\n\t): Promise<Outcome<ProjectConnection, DThrow>>;\n\tcreateAndConnect<Throw extends boolean = DThrow>(\n\t\tinput: CreateInput | undefined,\n\t\topts: WorkflowOptions<Throw>,\n\t): Promise<Outcome<ProjectConnection, Throw>>;\n\tasync createAndConnect(\n\t\tinput?: CreateInput,\n\t\topts?: WorkflowOptions<boolean>,\n\t): Promise<ProjectConnection | NeonResult<ProjectConnection>> {\n\t\tconst shouldThrow =\n\t\t\topts?.throwOnError ?? this.#ctx.defaults.throwOnError;\n\t\tconst result = await this.#ctx.execute(\n\t\t\t{ ...opts, waitForReadiness: opts?.waitForReadiness ?? true },\n\t\t\t(client) =>\n\t\t\t\tcreateProject({\n\t\t\t\t\tclient,\n\t\t\t\t\tbody: {\n\t\t\t\t\t\tproject: {\n\t\t\t\t\t\t\t...(this.#ctx.defaults.orgId\n\t\t\t\t\t\t\t\t? { org_id: this.#ctx.defaults.orgId }\n\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t...input,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t}),\n\t\t\t(data) => data,\n\t\t);\n\t\tconst out = withConnectionString(\n\t\t\tresult,\n\t\t\t(data) => data.connection_uris,\n\t\t\t(data, connectionString) => ({\n\t\t\t\tproject: data.project,\n\t\t\t\tconnectionString,\n\t\t\t}),\n\t\t\topts?.pooled ?? true,\n\t\t);\n\t\treturn finalize(out, shouldThrow);\n\t}\n\n\t/** @apiCall PATCH /projects/{project_id} */\n\tupdate(id: string, input: UpdateInput): Promise<Outcome<Project, DThrow>>;\n\tupdate<Throw extends boolean = DThrow>(\n\t\tid: string,\n\t\tinput: UpdateInput,\n\t\topts: CallOptions<Throw>,\n\t): Promise<Outcome<Project, Throw>>;\n\tupdate(\n\t\tid: string,\n\t\tinput: UpdateInput,\n\t\topts?: CallOptions,\n\t): Promise<Project | NeonResult<Project>> {\n\t\treturn this.#ctx.run(\n\t\t\topts,\n\t\t\t(client) =>\n\t\t\t\tupdateProject({\n\t\t\t\t\tclient,\n\t\t\t\t\tpath: { project_id: id },\n\t\t\t\t\tbody: { project: input },\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t}),\n\t\t\t(data) => data.project,\n\t\t);\n\t}\n\n\t/** @apiCall DELETE /projects/{project_id} */\n\tdelete(id: string): Promise<Outcome<Project, DThrow>>;\n\tdelete<Throw extends boolean = DThrow>(\n\t\tid: string,\n\t\topts: CallOptions<Throw>,\n\t): Promise<Outcome<Project, Throw>>;\n\tdelete(\n\t\tid: string,\n\t\topts?: CallOptions,\n\t): Promise<Project | NeonResult<Project>> {\n\t\treturn this.#ctx.run(\n\t\t\topts,\n\t\t\t(client) =>\n\t\t\t\tdeleteProject({\n\t\t\t\t\tclient,\n\t\t\t\t\tpath: { project_id: id },\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t}),\n\t\t\t(data) => data.project,\n\t\t);\n\t}\n\n\t/**\n\t * Recover a soft-deleted project within its retention window (beta). Mirrors\n\t * `branches.recover` at the project level.\n\t *\n\t * @apiCall POST /projects/{project_id}/recover\n\t */\n\trecover(id: string): Promise<Outcome<Project, DThrow>>;\n\trecover<Throw extends boolean = DThrow>(\n\t\tid: string,\n\t\topts: CallOptions<Throw>,\n\t): Promise<Outcome<Project, Throw>>;\n\trecover(\n\t\tid: string,\n\t\topts?: CallOptions,\n\t): Promise<Project | NeonResult<Project>> {\n\t\treturn this.#ctx.run(\n\t\t\topts,\n\t\t\t(client) =>\n\t\t\t\trecoverProject({\n\t\t\t\t\tclient,\n\t\t\t\t\tpath: { project_id: id },\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t}),\n\t\t\t(data) => data.project,\n\t\t);\n\t}\n\n\t/**\n\t * Transfer projects from one organization to another (e.g. sponsored → paid). The\n\t * source org defaults to the client's `orgId`. Requires a key with access to both orgs.\n\t *\n\t * @apiCall POST /organizations/{source_org_id}/projects/transfer\n\t */\n\ttransfer(input: TransferProjectsInput): Promise<Outcome<void, DThrow>>;\n\ttransfer<Throw extends boolean = DThrow>(\n\t\tinput: TransferProjectsInput,\n\t\topts: CallOptions<Throw>,\n\t): Promise<Outcome<void, Throw>>;\n\tasync transfer(\n\t\tinput: TransferProjectsInput,\n\t\topts?: CallOptions,\n\t): Promise<void | NeonResult<void>> {\n\t\tconst shouldThrow =\n\t\t\topts?.throwOnError ?? this.#ctx.defaults.throwOnError;\n\t\tconst fromOrgId = input.fromOrgId ?? this.#ctx.defaults.orgId;\n\t\tif (!fromOrgId) {\n\t\t\treturn finalize(\n\t\t\t\terr<void>(\n\t\t\t\t\tnew NeonError(\n\t\t\t\t\t\t\"Pass fromOrgId or set orgId on the client.\",\n\t\t\t\t\t\t\"client\",\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t\tshouldThrow,\n\t\t\t);\n\t\t}\n\t\treturn this.#ctx.run(\n\t\t\topts,\n\t\t\t(client) =>\n\t\t\t\ttransferProjectsFromOrgToOrg({\n\t\t\t\t\tclient,\n\t\t\t\t\tpath: { source_org_id: fromOrgId },\n\t\t\t\t\tbody: {\n\t\t\t\t\t\tdestination_org_id: input.toOrgId,\n\t\t\t\t\t\tproject_ids: input.projectIds,\n\t\t\t\t\t},\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t}),\n\t\t\t() => undefined,\n\t\t);\n\t}\n\n\t/**\n\t * Transfer projects from the personal account to an organization.\n\t *\n\t * @apiCall POST /users/me/projects/transfer\n\t */\n\ttransferFromUser(input: {\n\t\ttoOrgId: string;\n\t\tprojectIds: string[];\n\t}): Promise<Outcome<void, DThrow>>;\n\ttransferFromUser<Throw extends boolean = DThrow>(\n\t\tinput: { toOrgId: string; projectIds: string[] },\n\t\topts: CallOptions<Throw>,\n\t): Promise<Outcome<void, Throw>>;\n\ttransferFromUser(\n\t\tinput: { toOrgId: string; projectIds: string[] },\n\t\topts?: CallOptions,\n\t): Promise<void | NeonResult<void>> {\n\t\treturn this.#ctx.run(\n\t\t\topts,\n\t\t\t(client) =>\n\t\t\t\ttransferProjectsFromUserToOrg({\n\t\t\t\t\tclient,\n\t\t\t\t\tbody: {\n\t\t\t\t\t\tdestination_org_id: input.toOrgId,\n\t\t\t\t\t\tproject_ids: input.projectIds,\n\t\t\t\t\t},\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t}),\n\t\t\t() => undefined,\n\t\t);\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"projects.js","names":["#ctx"],"sources":["../../../src/neon/resources/projects.ts"],"sourcesContent":["import {\n\tcreateProject,\n\tdeleteProject,\n\tgetProject,\n\tgrantPermissionToProject,\n\tlistProjectPermissions,\n\tlistProjects,\n\trecoverProject,\n\trevokePermissionFromProject,\n\ttransferProjectsFromOrgToOrg,\n\ttransferProjectsFromUserToOrg,\n\tupdateProject,\n} from \"../../client/sdk.gen.js\";\nimport type {\n\tListProjectsData,\n\tProject,\n\tProjectCreateRequest,\n\tProjectListItem,\n\tProjectPermission,\n\tProjectUpdateRequest,\n} from \"../../client/types.gen.js\";\nimport { withConnectionString } from \"../connection.js\";\nimport type { CallOptions, RequestContext } from \"../context.js\";\nimport { NeonError } from \"../errors.js\";\nimport { type Paginated, paginate } from \"../paginate.js\";\nimport { err, finalize, type NeonResult, type Outcome } from \"../result.js\";\n\n/** Input for {@link Projects.transfer} (org → org). */\nexport interface TransferProjectsInput {\n\t/** Source org. Defaults to the client's `orgId`. */\n\tfromOrgId?: string;\n\t/** Destination org. */\n\ttoOrgId: string;\n\tprojectIds: string[];\n}\n\ntype ListQuery = Omit<NonNullable<ListProjectsData[\"query\"]>, \"cursor\">;\ntype CreateInput = ProjectCreateRequest[\"project\"];\ntype UpdateInput = ProjectUpdateRequest[\"project\"];\n\n/** Per-call options for the connect workflow. */\ninterface WorkflowOptions<Throw extends boolean> extends CallOptions<Throw> {\n\t/** Return a pooled connection string (default `true`). */\n\tpooled?: boolean;\n}\n\n/** A project with a ready-to-use connection string to its default branch. */\nexport interface ProjectConnection {\n\tproject: Project;\n\tconnectionString: string;\n}\n\n/** Project access grants (share a project with additional users by email). */\nexport class Permissions<DThrow extends boolean> {\n\treadonly #ctx: RequestContext;\n\n\tconstructor(ctx: RequestContext) {\n\t\tthis.#ctx = ctx;\n\t}\n\n\t/** @apiCall GET /projects/{project_id}/permissions */\n\tlist(projectId: string): Promise<Outcome<ProjectPermission[], DThrow>>;\n\tlist<Throw extends boolean = DThrow>(\n\t\tprojectId: string,\n\t\topts: CallOptions<Throw>,\n\t): Promise<Outcome<ProjectPermission[], Throw>>;\n\tlist(\n\t\tprojectId: string,\n\t\topts?: CallOptions,\n\t): Promise<ProjectPermission[] | NeonResult<ProjectPermission[]>> {\n\t\treturn this.#ctx.run(\n\t\t\topts,\n\t\t\t(client, signal) =>\n\t\t\t\tlistProjectPermissions({\n\t\t\t\t\tclient,\n\t\t\t\t\tpath: { project_id: projectId },\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t\tsignal,\n\t\t\t\t}),\n\t\t\t(data) => data.project_permissions,\n\t\t);\n\t}\n\n\t/** @apiCall POST /projects/{project_id}/permissions */\n\tgrant(\n\t\tprojectId: string,\n\t\temail: string,\n\t): Promise<Outcome<ProjectPermission, DThrow>>;\n\tgrant<Throw extends boolean = DThrow>(\n\t\tprojectId: string,\n\t\temail: string,\n\t\topts: CallOptions<Throw>,\n\t): Promise<Outcome<ProjectPermission, Throw>>;\n\tgrant(\n\t\tprojectId: string,\n\t\temail: string,\n\t\topts?: CallOptions,\n\t): Promise<ProjectPermission | NeonResult<ProjectPermission>> {\n\t\treturn this.#ctx.run(\n\t\t\topts,\n\t\t\t(client, signal) =>\n\t\t\t\tgrantPermissionToProject({\n\t\t\t\t\tclient,\n\t\t\t\t\tpath: { project_id: projectId },\n\t\t\t\t\tbody: { email },\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t\tsignal,\n\t\t\t\t}),\n\t\t\t(data) => data,\n\t\t);\n\t}\n\n\t/** @apiCall DELETE /projects/{project_id}/permissions/{permission_id} */\n\trevoke(\n\t\tprojectId: string,\n\t\tpermissionId: string,\n\t): Promise<Outcome<ProjectPermission, DThrow>>;\n\trevoke<Throw extends boolean = DThrow>(\n\t\tprojectId: string,\n\t\tpermissionId: string,\n\t\topts: CallOptions<Throw>,\n\t): Promise<Outcome<ProjectPermission, Throw>>;\n\trevoke(\n\t\tprojectId: string,\n\t\tpermissionId: string,\n\t\topts?: CallOptions,\n\t): Promise<ProjectPermission | NeonResult<ProjectPermission>> {\n\t\treturn this.#ctx.run(\n\t\t\topts,\n\t\t\t(client, signal) =>\n\t\t\t\trevokePermissionFromProject({\n\t\t\t\t\tclient,\n\t\t\t\t\tpath: {\n\t\t\t\t\t\tproject_id: projectId,\n\t\t\t\t\t\tpermission_id: permissionId,\n\t\t\t\t\t},\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t\tsignal,\n\t\t\t\t}),\n\t\t\t(data) => data,\n\t\t);\n\t}\n}\n\n/** Project resource — one API call per method (`list` is cursor-paginated). */\nexport class Projects<DThrow extends boolean> {\n\treadonly #ctx: RequestContext;\n\t/** Project access grants (share by email). */\n\treadonly permissions: Permissions<DThrow>;\n\n\tconstructor(ctx: RequestContext) {\n\t\tthis.#ctx = ctx;\n\t\tthis.permissions = new Permissions<DThrow>(ctx);\n\t}\n\n\t/**\n\t * List projects (cursor-paginated). Returns a lazy list — `await .all()`, `.page()`,\n\t * or `for await (… of …)`.\n\t *\n\t * @apiCall GET /projects\n\t */\n\tlist(query?: ListQuery, opts?: CallOptions): Paginated<ProjectListItem> {\n\t\treturn paginate(\n\t\t\t(cursor, signal) =>\n\t\t\t\tlistProjects({\n\t\t\t\t\tclient: this.#ctx.client,\n\t\t\t\t\tquery: {\n\t\t\t\t\t\torg_id: this.#ctx.defaults.orgId,\n\t\t\t\t\t\t...query,\n\t\t\t\t\t\tcursor,\n\t\t\t\t\t},\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t\tsignal,\n\t\t\t\t}),\n\t\t\t(data) => ({\n\t\t\t\titems: data?.projects ?? [],\n\t\t\t\tcursor: data?.pagination?.cursor,\n\t\t\t}),\n\t\t\t() => this.#ctx.deadlineFor(opts),\n\t\t);\n\t}\n\n\t/** @apiCall GET /projects/{project_id} */\n\tget(id: string): Promise<Outcome<Project, DThrow>>;\n\tget<Throw extends boolean = DThrow>(\n\t\tid: string,\n\t\topts: CallOptions<Throw>,\n\t): Promise<Outcome<Project, Throw>>;\n\tget(\n\t\tid: string,\n\t\topts?: CallOptions,\n\t): Promise<Project | NeonResult<Project>> {\n\t\treturn this.#ctx.run(\n\t\t\topts,\n\t\t\t(client, signal) =>\n\t\t\t\tgetProject({\n\t\t\t\t\tclient,\n\t\t\t\t\tpath: { project_id: id },\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t\tsignal,\n\t\t\t\t}),\n\t\t\t(data) => data.project,\n\t\t);\n\t}\n\n\t/** @apiCall POST /projects */\n\tcreate(input?: CreateInput): Promise<Outcome<Project, DThrow>>;\n\tcreate<Throw extends boolean = DThrow>(\n\t\tinput: CreateInput | undefined,\n\t\topts: CallOptions<Throw>,\n\t): Promise<Outcome<Project, Throw>>;\n\tcreate(\n\t\tinput?: CreateInput,\n\t\topts?: CallOptions,\n\t): Promise<Project | NeonResult<Project>> {\n\t\treturn this.#ctx.run(\n\t\t\topts,\n\t\t\t(client, signal) =>\n\t\t\t\tcreateProject({\n\t\t\t\t\tclient,\n\t\t\t\t\tbody: {\n\t\t\t\t\t\tproject: {\n\t\t\t\t\t\t\t...(this.#ctx.defaults.orgId\n\t\t\t\t\t\t\t\t? { org_id: this.#ctx.defaults.orgId }\n\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t...input,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t\tsignal,\n\t\t\t\t}),\n\t\t\t(data) => data.project,\n\t\t);\n\t}\n\n\t/**\n\t * Create a project and return a ready-to-use connection string to its default branch.\n\t * One API call plus readiness polling (the create response already carries the\n\t * connection URI).\n\t *\n\t * @workflow createProject + waitForReadiness\n\t */\n\tcreateAndConnect(\n\t\tinput?: CreateInput,\n\t): Promise<Outcome<ProjectConnection, DThrow>>;\n\tcreateAndConnect<Throw extends boolean = DThrow>(\n\t\tinput: CreateInput | undefined,\n\t\topts: WorkflowOptions<Throw>,\n\t): Promise<Outcome<ProjectConnection, Throw>>;\n\tasync createAndConnect(\n\t\tinput?: CreateInput,\n\t\topts?: WorkflowOptions<boolean>,\n\t): Promise<ProjectConnection | NeonResult<ProjectConnection>> {\n\t\tconst shouldThrow =\n\t\t\topts?.throwOnError ?? this.#ctx.defaults.throwOnError;\n\t\tconst result = await this.#ctx.execute(\n\t\t\t{ ...opts, waitForReadiness: opts?.waitForReadiness ?? true },\n\t\t\t(client, signal) =>\n\t\t\t\tcreateProject({\n\t\t\t\t\tclient,\n\t\t\t\t\tbody: {\n\t\t\t\t\t\tproject: {\n\t\t\t\t\t\t\t...(this.#ctx.defaults.orgId\n\t\t\t\t\t\t\t\t? { org_id: this.#ctx.defaults.orgId }\n\t\t\t\t\t\t\t\t: {}),\n\t\t\t\t\t\t\t...input,\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t\tsignal,\n\t\t\t\t}),\n\t\t\t(data) => data,\n\t\t);\n\t\tconst out = withConnectionString(\n\t\t\tresult,\n\t\t\t(data) => data.connection_uris,\n\t\t\t(data, connectionString) => ({\n\t\t\t\tproject: data.project,\n\t\t\t\tconnectionString,\n\t\t\t}),\n\t\t\topts?.pooled ?? true,\n\t\t);\n\t\treturn finalize(out, shouldThrow);\n\t}\n\n\t/** @apiCall PATCH /projects/{project_id} */\n\tupdate(id: string, input: UpdateInput): Promise<Outcome<Project, DThrow>>;\n\tupdate<Throw extends boolean = DThrow>(\n\t\tid: string,\n\t\tinput: UpdateInput,\n\t\topts: CallOptions<Throw>,\n\t): Promise<Outcome<Project, Throw>>;\n\tupdate(\n\t\tid: string,\n\t\tinput: UpdateInput,\n\t\topts?: CallOptions,\n\t): Promise<Project | NeonResult<Project>> {\n\t\treturn this.#ctx.run(\n\t\t\topts,\n\t\t\t(client, signal) =>\n\t\t\t\tupdateProject({\n\t\t\t\t\tclient,\n\t\t\t\t\tpath: { project_id: id },\n\t\t\t\t\tbody: { project: input },\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t\tsignal,\n\t\t\t\t}),\n\t\t\t(data) => data.project,\n\t\t);\n\t}\n\n\t/** @apiCall DELETE /projects/{project_id} */\n\tdelete(id: string): Promise<Outcome<Project, DThrow>>;\n\tdelete<Throw extends boolean = DThrow>(\n\t\tid: string,\n\t\topts: CallOptions<Throw>,\n\t): Promise<Outcome<Project, Throw>>;\n\tdelete(\n\t\tid: string,\n\t\topts?: CallOptions,\n\t): Promise<Project | NeonResult<Project>> {\n\t\treturn this.#ctx.run(\n\t\t\topts,\n\t\t\t(client, signal) =>\n\t\t\t\tdeleteProject({\n\t\t\t\t\tclient,\n\t\t\t\t\tpath: { project_id: id },\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t\tsignal,\n\t\t\t\t}),\n\t\t\t(data) => data.project,\n\t\t);\n\t}\n\n\t/**\n\t * Recover a soft-deleted project within its retention window (beta). Mirrors\n\t * `branches.recover` at the project level.\n\t *\n\t * @apiCall POST /projects/{project_id}/recover\n\t */\n\trecover(id: string): Promise<Outcome<Project, DThrow>>;\n\trecover<Throw extends boolean = DThrow>(\n\t\tid: string,\n\t\topts: CallOptions<Throw>,\n\t): Promise<Outcome<Project, Throw>>;\n\trecover(\n\t\tid: string,\n\t\topts?: CallOptions,\n\t): Promise<Project | NeonResult<Project>> {\n\t\treturn this.#ctx.run(\n\t\t\topts,\n\t\t\t(client, signal) =>\n\t\t\t\trecoverProject({\n\t\t\t\t\tclient,\n\t\t\t\t\tpath: { project_id: id },\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t\tsignal,\n\t\t\t\t}),\n\t\t\t(data) => data.project,\n\t\t);\n\t}\n\n\t/**\n\t * Transfer projects from one organization to another (e.g. sponsored → paid). The\n\t * source org defaults to the client's `orgId`. Requires a key with access to both orgs.\n\t *\n\t * @apiCall POST /organizations/{source_org_id}/projects/transfer\n\t */\n\ttransfer(input: TransferProjectsInput): Promise<Outcome<void, DThrow>>;\n\ttransfer<Throw extends boolean = DThrow>(\n\t\tinput: TransferProjectsInput,\n\t\topts: CallOptions<Throw>,\n\t): Promise<Outcome<void, Throw>>;\n\tasync transfer(\n\t\tinput: TransferProjectsInput,\n\t\topts?: CallOptions,\n\t): Promise<void | NeonResult<void>> {\n\t\tconst shouldThrow =\n\t\t\topts?.throwOnError ?? this.#ctx.defaults.throwOnError;\n\t\tconst fromOrgId = input.fromOrgId ?? this.#ctx.defaults.orgId;\n\t\tif (!fromOrgId) {\n\t\t\treturn finalize(\n\t\t\t\terr<void>(\n\t\t\t\t\tnew NeonError(\n\t\t\t\t\t\t\"Pass fromOrgId or set orgId on the client.\",\n\t\t\t\t\t\t\"client\",\n\t\t\t\t\t),\n\t\t\t\t),\n\t\t\t\tshouldThrow,\n\t\t\t);\n\t\t}\n\t\treturn this.#ctx.run(\n\t\t\topts,\n\t\t\t(client, signal) =>\n\t\t\t\ttransferProjectsFromOrgToOrg({\n\t\t\t\t\tclient,\n\t\t\t\t\tpath: { source_org_id: fromOrgId },\n\t\t\t\t\tbody: {\n\t\t\t\t\t\tdestination_org_id: input.toOrgId,\n\t\t\t\t\t\tproject_ids: input.projectIds,\n\t\t\t\t\t},\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t\tsignal,\n\t\t\t\t}),\n\t\t\t() => undefined,\n\t\t);\n\t}\n\n\t/**\n\t * Transfer projects from the personal account to an organization.\n\t *\n\t * @apiCall POST /users/me/projects/transfer\n\t */\n\ttransferFromUser(input: {\n\t\ttoOrgId: string;\n\t\tprojectIds: string[];\n\t}): Promise<Outcome<void, DThrow>>;\n\ttransferFromUser<Throw extends boolean = DThrow>(\n\t\tinput: { toOrgId: string; projectIds: string[] },\n\t\topts: CallOptions<Throw>,\n\t): Promise<Outcome<void, Throw>>;\n\ttransferFromUser(\n\t\tinput: { toOrgId: string; projectIds: string[] },\n\t\topts?: CallOptions,\n\t): Promise<void | NeonResult<void>> {\n\t\treturn this.#ctx.run(\n\t\t\topts,\n\t\t\t(client, signal) =>\n\t\t\t\ttransferProjectsFromUserToOrg({\n\t\t\t\t\tclient,\n\t\t\t\t\tbody: {\n\t\t\t\t\t\tdestination_org_id: input.toOrgId,\n\t\t\t\t\t\tproject_ids: input.projectIds,\n\t\t\t\t\t},\n\t\t\t\t\tthrowOnError: false,\n\t\t\t\t\tsignal,\n\t\t\t\t}),\n\t\t\t() => undefined,\n\t\t);\n\t}\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"roles.d.ts","names":[],"sources":["../../../src/neon/resources/roles.ts"],"mappings":"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"}
1
+ {"version":3,"file":"roles.d.ts","names":[],"sources":["../../../src/neon/resources/roles.ts"],"mappings":"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"}