@vibesdotdev/client 0.1.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 (117) hide show
  1. package/SPEC.md +107 -0
  2. package/dist/factory.d.ts +34 -0
  3. package/dist/factory.d.ts.map +1 -0
  4. package/dist/factory.js +80 -0
  5. package/dist/factory.js.map +1 -0
  6. package/dist/index.d.ts +10 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +6 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/lib/client/core.d.ts +8 -0
  11. package/dist/lib/client/core.d.ts.map +1 -0
  12. package/dist/lib/client/core.js +5 -0
  13. package/dist/lib/client/core.js.map +1 -0
  14. package/dist/lib/client/internal/base-client.d.ts +19 -0
  15. package/dist/lib/client/internal/base-client.d.ts.map +1 -0
  16. package/dist/lib/client/internal/base-client.js +92 -0
  17. package/dist/lib/client/internal/base-client.js.map +1 -0
  18. package/dist/lib/client/internal/base-helpers.d.ts +9 -0
  19. package/dist/lib/client/internal/base-helpers.d.ts.map +1 -0
  20. package/dist/lib/client/internal/base-helpers.js +79 -0
  21. package/dist/lib/client/internal/base-helpers.js.map +1 -0
  22. package/dist/lib/client/internal/base-types.d.ts +35 -0
  23. package/dist/lib/client/internal/base-types.d.ts.map +1 -0
  24. package/dist/lib/client/internal/base-types.js +15 -0
  25. package/dist/lib/client/internal/base-types.js.map +1 -0
  26. package/dist/lib/client/internal/endpoint.d.ts +22 -0
  27. package/dist/lib/client/internal/endpoint.d.ts.map +1 -0
  28. package/dist/lib/client/internal/endpoint.js +35 -0
  29. package/dist/lib/client/internal/endpoint.js.map +1 -0
  30. package/dist/lib/client/internal/generator.d.ts +20 -0
  31. package/dist/lib/client/internal/generator.d.ts.map +1 -0
  32. package/dist/lib/client/internal/generator.js +173 -0
  33. package/dist/lib/client/internal/generator.js.map +1 -0
  34. package/dist/lib/client/internal/index.d.ts +5 -0
  35. package/dist/lib/client/internal/index.d.ts.map +1 -0
  36. package/dist/lib/client/internal/index.js +4 -0
  37. package/dist/lib/client/internal/index.js.map +1 -0
  38. package/dist/lib/client/internal/node/http2-fetch.node.d.ts +2 -0
  39. package/dist/lib/client/internal/node/http2-fetch.node.d.ts.map +1 -0
  40. package/dist/lib/client/internal/node/http2-fetch.node.js +131 -0
  41. package/dist/lib/client/internal/node/http2-fetch.node.js.map +1 -0
  42. package/dist/lib/client/internal/request-builder.d.ts +15 -0
  43. package/dist/lib/client/internal/request-builder.d.ts.map +1 -0
  44. package/dist/lib/client/internal/request-builder.js +158 -0
  45. package/dist/lib/client/internal/request-builder.js.map +1 -0
  46. package/dist/lib/client/internal/sse-stream.d.ts +23 -0
  47. package/dist/lib/client/internal/sse-stream.d.ts.map +1 -0
  48. package/dist/lib/client/internal/sse-stream.js +110 -0
  49. package/dist/lib/client/internal/sse-stream.js.map +1 -0
  50. package/dist/lib/client/internal/vibes-client.d.ts +32 -0
  51. package/dist/lib/client/internal/vibes-client.d.ts.map +1 -0
  52. package/dist/lib/client/internal/vibes-client.js +120 -0
  53. package/dist/lib/client/internal/vibes-client.js.map +1 -0
  54. package/dist/lib/client/internal/wrap-fetch.d.ts +6 -0
  55. package/dist/lib/client/internal/wrap-fetch.d.ts.map +1 -0
  56. package/dist/lib/client/internal/wrap-fetch.js +46 -0
  57. package/dist/lib/client/internal/wrap-fetch.js.map +1 -0
  58. package/dist/lib/client/node.d.ts +5 -0
  59. package/dist/lib/client/node.d.ts.map +1 -0
  60. package/dist/lib/client/node.js +33 -0
  61. package/dist/lib/client/node.js.map +1 -0
  62. package/dist/lib/client/types.d.ts +145 -0
  63. package/dist/lib/client/types.d.ts.map +1 -0
  64. package/dist/lib/client/types.js +21 -0
  65. package/dist/lib/client/types.js.map +1 -0
  66. package/dist/plugin.d.ts +19 -0
  67. package/dist/plugin.d.ts.map +1 -0
  68. package/dist/plugin.js +80 -0
  69. package/dist/plugin.js.map +1 -0
  70. package/dist/schemas.d.ts +90 -0
  71. package/dist/schemas.d.ts.map +1 -0
  72. package/dist/schemas.js +9 -0
  73. package/dist/schemas.js.map +1 -0
  74. package/dist/sse-client.d.ts +39 -0
  75. package/dist/sse-client.d.ts.map +1 -0
  76. package/dist/sse-client.js +124 -0
  77. package/dist/sse-client.js.map +1 -0
  78. package/dist/tools/api-request/api-request.descriptor.d.ts +48 -0
  79. package/dist/tools/api-request/api-request.descriptor.d.ts.map +1 -0
  80. package/dist/tools/api-request/api-request.descriptor.js +27 -0
  81. package/dist/tools/api-request/api-request.descriptor.js.map +1 -0
  82. package/dist/tools/api-request/api-request.impl.consumer.d.ts +13 -0
  83. package/dist/tools/api-request/api-request.impl.consumer.d.ts.map +1 -0
  84. package/dist/tools/api-request/api-request.impl.consumer.js +51 -0
  85. package/dist/tools/api-request/api-request.impl.consumer.js.map +1 -0
  86. package/dist/tools/api-request/index.d.ts +5 -0
  87. package/dist/tools/api-request/index.d.ts.map +1 -0
  88. package/dist/tools/api-request/index.js +4 -0
  89. package/dist/tools/api-request/index.js.map +1 -0
  90. package/dist/tools/api-request/schemas/index.d.ts +33 -0
  91. package/dist/tools/api-request/schemas/index.d.ts.map +1 -0
  92. package/dist/tools/api-request/schemas/index.js +24 -0
  93. package/dist/tools/api-request/schemas/index.js.map +1 -0
  94. package/package.json +99 -0
  95. package/src/factory.ts +114 -0
  96. package/src/index.ts +15 -0
  97. package/src/lib/client/core.ts +13 -0
  98. package/src/lib/client/internal/base-client.ts +107 -0
  99. package/src/lib/client/internal/base-helpers.ts +74 -0
  100. package/src/lib/client/internal/base-types.ts +42 -0
  101. package/src/lib/client/internal/endpoint.ts +51 -0
  102. package/src/lib/client/internal/generator.ts +181 -0
  103. package/src/lib/client/internal/index.ts +4 -0
  104. package/src/lib/client/internal/node/http2-fetch.node.ts +138 -0
  105. package/src/lib/client/internal/request-builder.ts +147 -0
  106. package/src/lib/client/internal/sse-stream.ts +130 -0
  107. package/src/lib/client/internal/vibes-client.ts +167 -0
  108. package/src/lib/client/internal/wrap-fetch.ts +59 -0
  109. package/src/lib/client/node.ts +36 -0
  110. package/src/lib/client/types.ts +156 -0
  111. package/src/plugin.ts +104 -0
  112. package/src/schemas.ts +91 -0
  113. package/src/sse-client.ts +155 -0
  114. package/src/tools/api-request/api-request.descriptor.ts +28 -0
  115. package/src/tools/api-request/api-request.impl.consumer.ts +66 -0
  116. package/src/tools/api-request/index.ts +4 -0
  117. package/src/tools/api-request/schemas/index.ts +29 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../../../../src/lib/client/internal/endpoint.ts"],"names":[],"mappings":"AAYA,MAAM,OAAO,QAAQ;IAEX;IACA;IAFT,YACS,MAAuB,EACvB,IAAY;QADZ,WAAM,GAAN,MAAM,CAAiB;QACvB,SAAI,GAAJ,IAAI,CAAQ;IAClB,CAAC;IAEJ,QAAQ,CAAC,OAAe;QACvB,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;QACpE,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,GAAG,SAAS,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,CAA0D,OAAU;QAC1E,MAAM,KAAK,GAAG,EAA8B,CAAC;QAC7C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAmB,EAAE,CAAC;YAC1D,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAkB,CAAC;QACvD,CAAC;QACD,OAAO,KAAU,CAAC;IACnB,CAAC;IAED,GAAG,CAAc,IAAI,GAAG,EAAE,EAAE,OAA4B;QACvD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED,IAAI,CAAc,IAAI,GAAG,EAAE,EAAE,IAAc,EAAE,OAA4B;QACxE,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAClG,CAAC;IAED,GAAG,CAAc,IAAI,GAAG,EAAE,EAAE,IAAc,EAAE,OAA4B;QACvE,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACjG,CAAC;IAED,KAAK,CAAc,IAAI,GAAG,EAAE,EAAE,IAAc,EAAE,OAA4B;QACzE,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IACnG,CAAC;IAED,MAAM,CAAc,IAAI,GAAG,EAAE,EAAE,OAA4B;QAC1D,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC9F,CAAC;CACD"}
@@ -0,0 +1,20 @@
1
+ import type { RequestBuilder } from './request-builder.ts';
2
+ export interface OpenAPISpec {
3
+ paths?: Record<string, Record<string, unknown>>;
4
+ [key: string]: unknown;
5
+ }
6
+ export declare class APIGenerator {
7
+ private requestBuilder;
8
+ constructor(requestBuilder: RequestBuilder);
9
+ generateAPIs(spec: OpenAPISpec): Record<string, Record<string, (...args: unknown[]) => Promise<unknown>>>;
10
+ private groupPathsByResource;
11
+ private extractResourceName;
12
+ private extractBasePath;
13
+ private getOperationName;
14
+ private createResourceAPI;
15
+ private createOperation;
16
+ private buildRequestOptions;
17
+ private addConvenienceMethods;
18
+ private toCamelCase;
19
+ }
20
+ //# sourceMappingURL=generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../../src/lib/client/internal/generator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,WAAW,WAAW;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAChD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACvB;AAED,qBAAa,YAAY;IACZ,OAAO,CAAC,cAAc;gBAAd,cAAc,EAAE,cAAc;IAElD,YAAY,CACX,IAAI,EAAE,WAAW,GACf,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IAS3E,OAAO,CAAC,oBAAoB;IA0C5B,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,gBAAgB;IAwBxB,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,mBAAmB;IAiC3B,OAAO,CAAC,qBAAqB;IAyB7B,OAAO,CAAC,WAAW;CAKnB"}
@@ -0,0 +1,173 @@
1
+ export class APIGenerator {
2
+ requestBuilder;
3
+ constructor(requestBuilder) {
4
+ this.requestBuilder = requestBuilder;
5
+ }
6
+ generateAPIs(spec) {
7
+ const resources = this.groupPathsByResource(spec);
8
+ const apis = {};
9
+ for (const resource of resources.values()) {
10
+ apis[resource.name] = this.createResourceAPI(resource);
11
+ }
12
+ return apis;
13
+ }
14
+ groupPathsByResource(spec) {
15
+ const resources = new Map();
16
+ for (const [path, pathItem] of Object.entries(spec.paths || {})) {
17
+ if (!pathItem || typeof pathItem !== 'object')
18
+ continue;
19
+ const resourceName = this.extractResourceName(path);
20
+ if (!resourceName)
21
+ continue;
22
+ let resource = resources.get(resourceName);
23
+ if (!resource) {
24
+ resource = {
25
+ name: resourceName,
26
+ basePath: this.extractBasePath(path, resourceName),
27
+ operations: new Map()
28
+ };
29
+ resources.set(resourceName, resource);
30
+ }
31
+ const methods = ['get', 'post', 'put', 'patch', 'delete'];
32
+ for (const method of methods) {
33
+ const operation = pathItem[method];
34
+ if (operation && typeof operation === 'object' && 'responses' in operation) {
35
+ const op = operation;
36
+ const pi = pathItem;
37
+ const opParams = (op.parameters || []);
38
+ const piParams = (pi.parameters || []);
39
+ const pathInfo = {
40
+ path,
41
+ method: method.toUpperCase(),
42
+ operationId: op.operationId,
43
+ parameters: [...piParams, ...opParams],
44
+ requestBody: op.requestBody,
45
+ responses: op.responses,
46
+ tags: op.tags,
47
+ summary: op.summary,
48
+ description: op.description
49
+ };
50
+ const operationName = this.getOperationName(pathInfo);
51
+ resource.operations.set(operationName, pathInfo);
52
+ }
53
+ }
54
+ }
55
+ return resources;
56
+ }
57
+ extractResourceName(path) {
58
+ const segments = path.split('/').filter(Boolean);
59
+ if (segments[0] !== 'api' || segments.length < 2)
60
+ return null;
61
+ return this.toCamelCase(segments[1]);
62
+ }
63
+ extractBasePath(path, resourceName) {
64
+ const match = path.match(/^(\/api\/[^/]+)/);
65
+ return match ? match[1] : `/api/${resourceName}`;
66
+ }
67
+ getOperationName(pathInfo) {
68
+ const pathParts = pathInfo.path.split('/').filter(Boolean);
69
+ const method = pathInfo.method.toLowerCase();
70
+ const hasPathParam = pathInfo.path.includes('{');
71
+ const resourceName = pathParts[1];
72
+ if (method === 'get' && !hasPathParam) {
73
+ return pathInfo.operationId?.toLowerCase().includes('list') ? 'list' : 'list';
74
+ }
75
+ if (method === 'get' && hasPathParam)
76
+ return 'get';
77
+ if (method === 'post' && !hasPathParam)
78
+ return 'create';
79
+ if ((method === 'put' || method === 'patch') && hasPathParam)
80
+ return 'update';
81
+ if (method === 'delete' && hasPathParam)
82
+ return 'delete';
83
+ if (pathInfo.operationId) {
84
+ let opName = pathInfo.operationId;
85
+ if (resourceName && opName.toLowerCase().startsWith(resourceName.slice(0, -1))) {
86
+ opName = opName.slice(resourceName.length - 1);
87
+ }
88
+ return this.toCamelCase(opName);
89
+ }
90
+ const lastPart = pathParts[pathParts.length - 1];
91
+ if (!lastPart.startsWith('{'))
92
+ return this.toCamelCase(lastPart);
93
+ return method;
94
+ }
95
+ createResourceAPI(resource) {
96
+ const api = {};
97
+ for (const [name, pathInfo] of resource.operations) {
98
+ api[name] = this.createOperation(pathInfo);
99
+ }
100
+ this.addConvenienceMethods(api, resource);
101
+ return api;
102
+ }
103
+ createOperation(pathInfo) {
104
+ return (...args) => {
105
+ const options = this.buildRequestOptions(pathInfo, args);
106
+ return this.requestBuilder.request(options);
107
+ };
108
+ }
109
+ buildRequestOptions(pathInfo, args) {
110
+ const options = { method: pathInfo.method, path: pathInfo.path };
111
+ const params = {};
112
+ const query = {};
113
+ let body;
114
+ let argIndex = 0;
115
+ if (pathInfo.parameters) {
116
+ for (const param of pathInfo.parameters) {
117
+ if (param.in === 'path' && argIndex < args.length) {
118
+ params[param.name] = args[argIndex++];
119
+ }
120
+ }
121
+ }
122
+ if (argIndex < args.length) {
123
+ const nextArg = args[argIndex];
124
+ if (typeof nextArg === 'object' && nextArg !== null) {
125
+ if (pathInfo.method === 'GET' || pathInfo.method === 'DELETE') {
126
+ Object.assign(query, nextArg);
127
+ }
128
+ else {
129
+ body = nextArg;
130
+ argIndex++;
131
+ if (argIndex < args.length && typeof args[argIndex] === 'object') {
132
+ Object.assign(query, args[argIndex]);
133
+ }
134
+ }
135
+ }
136
+ }
137
+ if (Object.keys(params).length > 0)
138
+ options.params = params;
139
+ if (Object.keys(query).length > 0)
140
+ options.query = query;
141
+ if (body !== undefined)
142
+ options.body = body;
143
+ return options;
144
+ }
145
+ addConvenienceMethods(api, _resource) {
146
+ if (api.list && !api.search) {
147
+ api.search = ((query, params) => {
148
+ return api.list({ ...params, search: query });
149
+ });
150
+ }
151
+ if (api.get && api.create && !api.getOrCreate) {
152
+ api.getOrCreate = (async (id, data) => {
153
+ try {
154
+ return await api.get(id);
155
+ }
156
+ catch (error) {
157
+ const status = error.status;
158
+ if (status === 404) {
159
+ const record = data;
160
+ return await api.create(Object.assign({}, record, { id }));
161
+ }
162
+ throw error;
163
+ }
164
+ });
165
+ }
166
+ }
167
+ toCamelCase(str) {
168
+ return str
169
+ .replace(/[-_](.)/g, (_, char) => char.toUpperCase())
170
+ .replace(/^(.)/, (_, char) => char.toLowerCase());
171
+ }
172
+ }
173
+ //# sourceMappingURL=generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../src/lib/client/internal/generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export { BaseAPIClient } from './base-client.ts';
2
+ export { APIError } from './base-types.ts';
3
+ export { Endpoint } from './endpoint.ts';
4
+ export type { BaseAPIConfig, EndpointOptions } from './base-types.ts';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/client/internal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { BaseAPIClient } from "./base-client.js";
2
+ export { APIError } from "./base-types.js";
3
+ export { Endpoint } from "./endpoint.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/client/internal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function createHttp2Fetch(baseUrl: string): (input: Parameters<typeof fetch>[0], init?: RequestInit) => Promise<Response>;
2
+ //# sourceMappingURL=http2-fetch.node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http2-fetch.node.d.ts","sourceRoot":"","sources":["../../../../../src/lib/client/internal/node/http2-fetch.node.ts"],"names":[],"mappings":"AAGA,wBAAgB,gBAAgB,CAC/B,OAAO,EAAE,MAAM,GACb,CAAC,KAAK,EAAE,UAAU,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAoI/E"}
@@ -0,0 +1,131 @@
1
+ import { getRuntimeEnv } from '@vibesdotdev/runtime';
2
+ import { connect as http2Connect } from 'node:http2';
3
+ export function createHttp2Fetch(baseUrl) {
4
+ const sessions = new Map();
5
+ const rejectUnauthorized = getRuntimeEnv('REJECT_UNAUTHORIZED') !== 'false';
6
+ return (input, init) => {
7
+ const url = typeof input === 'string'
8
+ ? new URL(input, baseUrl)
9
+ : input instanceof URL
10
+ ? input
11
+ : new URL(input.url, baseUrl);
12
+ const method = init?.method?.toUpperCase() || 'GET';
13
+ const headers = new Headers(init?.headers);
14
+ const sessionKey = `${url.protocol}//${url.host}`;
15
+ let session = sessions.get(sessionKey);
16
+ if (!session || session.destroyed || session.closed) {
17
+ try {
18
+ session = http2Connect(url.origin, { rejectUnauthorized });
19
+ sessions.set(sessionKey, session);
20
+ session.on('close', () => sessions.delete(sessionKey));
21
+ session.on('error', (error) => {
22
+ if (sessions.has(sessionKey)) {
23
+ console.warn('[http2] Session error:', error.message);
24
+ }
25
+ sessions.delete(sessionKey);
26
+ });
27
+ }
28
+ catch {
29
+ return fetch(url.toString(), init);
30
+ }
31
+ }
32
+ return new Promise((resolve, reject) => {
33
+ try {
34
+ const http2Headers = {
35
+ ':method': method,
36
+ ':path': `${url.pathname}${url.search}`,
37
+ ':scheme': url.protocol.replace(':', ''),
38
+ ':authority': url.host
39
+ };
40
+ headers.forEach((value, key) => {
41
+ http2Headers[key.toLowerCase()] = value;
42
+ });
43
+ const req = session.request(http2Headers);
44
+ let settled = false;
45
+ const abort = () => {
46
+ if (settled)
47
+ return;
48
+ settled = true;
49
+ try {
50
+ req.close();
51
+ req.destroy();
52
+ }
53
+ catch {
54
+ // ignore
55
+ }
56
+ const error = new Error('Request aborted');
57
+ error.name = 'AbortError';
58
+ reject(error);
59
+ };
60
+ const signal = init?.signal;
61
+ if (signal) {
62
+ if (signal.aborted) {
63
+ abort();
64
+ return;
65
+ }
66
+ signal.addEventListener('abort', abort, { once: true });
67
+ }
68
+ const cleanupAbort = () => {
69
+ if (!signal)
70
+ return;
71
+ signal.removeEventListener('abort', abort);
72
+ };
73
+ if (init?.body) {
74
+ if (typeof init.body === 'string') {
75
+ req.write(init.body);
76
+ }
77
+ else if (init.body instanceof Buffer) {
78
+ req.write(init.body);
79
+ }
80
+ }
81
+ req.end();
82
+ const chunks = [];
83
+ const responseHeaders = new Headers();
84
+ let statusCode = 200;
85
+ req.on('response', (headers) => {
86
+ const statusValue = headers[':status'];
87
+ statusCode =
88
+ parseInt(Array.isArray(statusValue) ? statusValue[0] : String(statusValue ?? 200)) ||
89
+ 200;
90
+ for (const [key, value] of Object.entries(headers)) {
91
+ if (key.startsWith(':') || value === undefined)
92
+ continue;
93
+ if (Array.isArray(value))
94
+ value.forEach((v) => responseHeaders.append(key, v));
95
+ else
96
+ responseHeaders.set(key, String(value));
97
+ }
98
+ });
99
+ req.on('data', (chunk) => {
100
+ if (typeof chunk === 'string') {
101
+ chunks.push(Buffer.from(chunk));
102
+ return;
103
+ }
104
+ chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(new Uint8Array(chunk)));
105
+ });
106
+ req.on('end', () => {
107
+ if (settled)
108
+ return;
109
+ settled = true;
110
+ cleanupAbort();
111
+ const body = Buffer.concat(chunks);
112
+ resolve(new Response(body, {
113
+ status: statusCode,
114
+ headers: responseHeaders
115
+ }));
116
+ });
117
+ req.on('error', (error) => {
118
+ if (settled)
119
+ return;
120
+ settled = true;
121
+ cleanupAbort();
122
+ reject(error);
123
+ });
124
+ }
125
+ catch (error) {
126
+ reject(error);
127
+ }
128
+ });
129
+ };
130
+ }
131
+ //# sourceMappingURL=http2-fetch.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http2-fetch.node.js","sourceRoot":"","sources":["../../../../../src/lib/client/internal/node/http2-fetch.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import { type AuthConfig, type RequestOptions } from '../types.ts';
2
+ export declare class RequestBuilder {
3
+ private baseUrl;
4
+ private auth;
5
+ private fetchImpl;
6
+ private timeout;
7
+ private debug;
8
+ constructor(baseUrl: string, auth: AuthConfig, fetchImpl: typeof fetch, timeout?: number, debug?: boolean);
9
+ request<T = unknown>(options: RequestOptions): Promise<T>;
10
+ private buildUrl;
11
+ private buildHeaders;
12
+ private createAbortSignal;
13
+ private createError;
14
+ }
15
+ //# sourceMappingURL=request-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-builder.d.ts","sourceRoot":"","sources":["../../../../src/lib/client/internal/request-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAEhF,qBAAa,cAAc;IAEzB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,KAAK;gBAJL,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,OAAO,KAAK,EACvB,OAAO,GAAE,MAAc,EACvB,KAAK,GAAE,OAAe;IAGzB,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAqD/D,OAAO,CAAC,QAAQ;YAkBF,YAAY;IAsB1B,OAAO,CAAC,iBAAiB;YAMX,WAAW;CAoCzB"}
@@ -0,0 +1,158 @@
1
+ import { ClientError } from "../types.js";
2
+ export class RequestBuilder {
3
+ baseUrl;
4
+ auth;
5
+ fetchImpl;
6
+ timeout;
7
+ debug;
8
+ constructor(baseUrl, auth, fetchImpl, timeout = 30000, debug = false) {
9
+ this.baseUrl = baseUrl;
10
+ this.auth = auth;
11
+ this.fetchImpl = fetchImpl;
12
+ this.timeout = timeout;
13
+ this.debug = debug;
14
+ }
15
+ async request(options) {
16
+ const url = this.buildUrl(options);
17
+ const headers = await this.buildHeaders(options);
18
+ const init = {
19
+ method: options.method,
20
+ headers,
21
+ signal: this.createAbortSignal(options.timeout || this.timeout)
22
+ };
23
+ if (options.body !== undefined) {
24
+ if (headers.get('Content-Type')?.includes('application/json'))
25
+ init.body = JSON.stringify(options.body);
26
+ else
27
+ init.body = options.body;
28
+ }
29
+ const shouldLog = this.debug || url.pathname.includes('/auth/');
30
+ if (shouldLog) {
31
+ console.info('[Client] Request:', {
32
+ url: url.toString(),
33
+ method: options.method,
34
+ headers: Object.fromEntries(headers.entries()),
35
+ body: options.body
36
+ });
37
+ }
38
+ try {
39
+ const response = await this.fetchImpl(url.toString(), init);
40
+ if (shouldLog) {
41
+ console.info('[Client] Response:', {
42
+ status: response.status,
43
+ statusText: response.statusText,
44
+ headers: Object.fromEntries(response.headers.entries())
45
+ });
46
+ }
47
+ if (!response.ok)
48
+ throw await this.createError(response, options);
49
+ if (response.status === 204 || response.headers.get('Content-Length') === '0')
50
+ return undefined;
51
+ const contentType = response.headers.get('Content-Type');
52
+ if (contentType?.includes('application/json'))
53
+ return (await response.json());
54
+ return (await response.text());
55
+ }
56
+ catch (error) {
57
+ if (this.debug) {
58
+ console.error('[Client] Request failed:', {
59
+ url: url.toString(),
60
+ method: options.method,
61
+ error: error instanceof Error ? error.message : String(error),
62
+ errorName: error instanceof Error ? error.name : undefined
63
+ });
64
+ }
65
+ if (error instanceof Error && error.name === 'AbortError') {
66
+ throw new ClientError('Request timeout', 408, undefined, options);
67
+ }
68
+ throw error;
69
+ }
70
+ }
71
+ buildUrl(options) {
72
+ let path = options.path;
73
+ if (options.params) {
74
+ for (const [key, value] of Object.entries(options.params)) {
75
+ path = path.replace(`{${key}}`, encodeURIComponent(String(value)));
76
+ }
77
+ }
78
+ const url = new URL(path, this.baseUrl);
79
+ if (options.query) {
80
+ for (const [key, value] of Object.entries(options.query)) {
81
+ if (value === undefined)
82
+ continue;
83
+ if (Array.isArray(value))
84
+ value.forEach((v) => url.searchParams.append(key, String(v)));
85
+ else
86
+ url.searchParams.set(key, String(value));
87
+ }
88
+ }
89
+ return url;
90
+ }
91
+ async buildHeaders(options) {
92
+ const headers = new Headers(options.headers);
93
+ if (!headers.has('Content-Type') && options.body !== undefined)
94
+ headers.set('Content-Type', 'application/json');
95
+ if (!headers.has('Accept'))
96
+ headers.set('Accept', 'application/json');
97
+ if (this.auth.type !== 'none') {
98
+ const token = this.auth.credentials || (await this.auth.tokenProvider?.());
99
+ if (token) {
100
+ switch (this.auth.type) {
101
+ case 'apiKey':
102
+ case 'bearer':
103
+ headers.set('Authorization', `Bearer ${token}`);
104
+ break;
105
+ case 'session':
106
+ headers.set('Cookie', `session=${token}`);
107
+ break;
108
+ }
109
+ }
110
+ }
111
+ return headers;
112
+ }
113
+ createAbortSignal(timeout) {
114
+ const controller = new AbortController();
115
+ setTimeout(() => controller.abort(), timeout);
116
+ return controller.signal;
117
+ }
118
+ async createError(response, request) {
119
+ let message = `${response.status} ${response.statusText}`;
120
+ try {
121
+ const contentType = response.headers.get('Content-Type');
122
+ if (contentType?.includes('application/json')) {
123
+ const error = await response.json();
124
+ const validationErrors = error.issues ??
125
+ error.errors;
126
+ if (Array.isArray(validationErrors) && validationErrors.length > 0) {
127
+ const fieldErrors = validationErrors
128
+ .map((issue) => {
129
+ const rec = issue;
130
+ const path = Array.isArray(rec.path) && rec.path.length > 0
131
+ ? rec.path.map(String).join('.')
132
+ : 'unknown';
133
+ return ` - ${path}: ${typeof rec.message === 'string' ? rec.message : 'Invalid'}`;
134
+ })
135
+ .join('\n');
136
+ message = `Validation failed:\n${fieldErrors}`;
137
+ }
138
+ else if (typeof error.message === 'string') {
139
+ message = error.message;
140
+ }
141
+ else if (error.error !== undefined) {
142
+ const e = error.error;
143
+ message = typeof e === 'string' ? e : JSON.stringify(e);
144
+ }
145
+ }
146
+ else {
147
+ const text = await response.text();
148
+ if (text)
149
+ message = text;
150
+ }
151
+ }
152
+ catch {
153
+ // ignore parsing errors
154
+ }
155
+ return new ClientError(message, response.status, response, request);
156
+ }
157
+ }
158
+ //# sourceMappingURL=request-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-builder.js","sourceRoot":"","sources":["../../../../src/lib/client/internal/request-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { type AuthConfig } from '../types.ts';
2
+ export interface SSEEvent<T = unknown> {
3
+ event?: string;
4
+ data: T;
5
+ id?: string;
6
+ retry?: number;
7
+ }
8
+ export type SSEStreamOptions = {
9
+ method?: string;
10
+ params?: Record<string, string | number | boolean>;
11
+ query?: Record<string, string | number | boolean | string[] | undefined>;
12
+ body?: unknown;
13
+ headers?: Record<string, string>;
14
+ timeout?: number;
15
+ };
16
+ export declare function streamSSE<T = unknown>(args: {
17
+ baseUrl: string;
18
+ auth: AuthConfig;
19
+ fetchImpl: typeof fetch;
20
+ path: string;
21
+ options?: SSEStreamOptions;
22
+ }): AsyncIterableIterator<SSEEvent<T>>;
23
+ //# sourceMappingURL=sse-stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sse-stream.d.ts","sourceRoot":"","sources":["../../../../src/lib/client/internal/sse-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAoC,MAAM,aAAa,CAAC;AAEhF,MAAM,WAAW,QAAQ,CAAC,CAAC,GAAG,OAAO;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,CAAC,CAAC;IACR,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;IACzE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAuB,SAAS,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE;IACnD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,OAAO,KAAK,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC3B,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAyGrC"}