@ironflow/browser 0.1.0-test.2 → 0.2.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.
- package/README.md +3 -3
- package/dist/client.d.ts +202 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +671 -7
- package/dist/client.js.map +1 -1
- package/dist/config-client.d.ts +43 -0
- package/dist/config-client.d.ts.map +1 -0
- package/dist/config-client.js +130 -0
- package/dist/config-client.js.map +1 -0
- package/dist/config.d.ts +4 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -1
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +6 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -4
- package/dist/index.js.map +1 -1
- package/dist/kv.d.ts +79 -0
- package/dist/kv.d.ts.map +1 -0
- package/dist/kv.js +289 -0
- package/dist/kv.js.map +1 -0
- package/dist/subscription.d.ts +2 -0
- package/dist/subscription.d.ts.map +1 -1
- package/dist/subscription.js +57 -18
- package/dist/subscription.js.map +1 -1
- package/dist/transport/connectrpc.d.ts.map +1 -1
- package/dist/transport/connectrpc.js +28 -7
- package/dist/transport/connectrpc.js.map +1 -1
- package/dist/transport/index.d.ts +2 -2
- package/dist/transport/index.d.ts.map +1 -1
- package/dist/transport/index.js +2 -2
- package/dist/transport/index.js.map +1 -1
- package/dist/transport/types.d.ts +4 -0
- package/dist/transport/types.d.ts.map +1 -1
- package/dist/transport/websocket.d.ts.map +1 -1
- package/dist/transport/websocket.js +38 -2
- package/dist/transport/websocket.js.map +1 -1
- package/package.json +10 -6
package/dist/kv.js
ADDED
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ironflow Browser KV Client
|
|
3
|
+
*
|
|
4
|
+
* Key-Value store operations for browser-based applications.
|
|
5
|
+
* Includes WebSocket-based watch support.
|
|
6
|
+
*/
|
|
7
|
+
import { IronflowError, DEFAULT_TIMEOUTS, HEADERS } from "@ironflow/core";
|
|
8
|
+
/**
|
|
9
|
+
* KV bucket handle for key-level operations in the browser.
|
|
10
|
+
*/
|
|
11
|
+
export class BrowserKVBucketHandle {
|
|
12
|
+
bucketName;
|
|
13
|
+
config;
|
|
14
|
+
constructor(bucketName, config) {
|
|
15
|
+
this.bucketName = bucketName;
|
|
16
|
+
this.config = config;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Get a value by key.
|
|
20
|
+
*/
|
|
21
|
+
async get(key) {
|
|
22
|
+
return this.restRequest("GET", `/api/v1/kv/buckets/${enc(this.bucketName)}/keys/${key}`);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Put a value unconditionally.
|
|
26
|
+
*/
|
|
27
|
+
async put(key, value) {
|
|
28
|
+
return this.restRequest("PUT", `/api/v1/kv/buckets/${enc(this.bucketName)}/keys/${key}`, value);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Create a value only if the key doesn't exist (if-not-exists).
|
|
32
|
+
*/
|
|
33
|
+
async create(key, value) {
|
|
34
|
+
return this.restRequest("PUT", `/api/v1/kv/buckets/${enc(this.bucketName)}/keys/${key}`, value, { "If-None-Match": "*" });
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Update a value only if the revision matches (compare-and-swap).
|
|
38
|
+
*/
|
|
39
|
+
async update(key, value, revision) {
|
|
40
|
+
return this.restRequest("PUT", `/api/v1/kv/buckets/${enc(this.bucketName)}/keys/${key}`, value, { "If-Match": String(revision) });
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Delete a key (soft delete / tombstone).
|
|
44
|
+
*/
|
|
45
|
+
async delete(key) {
|
|
46
|
+
await this.restRequest("DELETE", `/api/v1/kv/buckets/${enc(this.bucketName)}/keys/${key}`);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Purge a key and all its history.
|
|
50
|
+
*/
|
|
51
|
+
async purge(key) {
|
|
52
|
+
await this.restRequest("DELETE", `/api/v1/kv/buckets/${enc(this.bucketName)}/keys/${key}?purge=true`);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* List keys with an optional wildcard filter.
|
|
56
|
+
*/
|
|
57
|
+
async listKeys(filter) {
|
|
58
|
+
let path = `/api/v1/kv/buckets/${enc(this.bucketName)}/keys`;
|
|
59
|
+
if (filter) {
|
|
60
|
+
path += `?filter=${encodeURIComponent(filter)}`;
|
|
61
|
+
}
|
|
62
|
+
const result = await this.restRequest("GET", path);
|
|
63
|
+
return result.keys;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Watch for changes on keys matching a pattern.
|
|
67
|
+
* Uses WebSocket for real-time notifications.
|
|
68
|
+
*/
|
|
69
|
+
watch(callbacks, options) {
|
|
70
|
+
const serverUrl = this.config.serverUrl;
|
|
71
|
+
const wsUrl = serverUrl
|
|
72
|
+
.replace("https://", "wss://")
|
|
73
|
+
.replace("http://", "ws://");
|
|
74
|
+
let path = `/api/v1/kv/buckets/${enc(this.bucketName)}/watch`;
|
|
75
|
+
if (options?.key) {
|
|
76
|
+
path += `?key=${encodeURIComponent(options.key)}`;
|
|
77
|
+
}
|
|
78
|
+
const ws = new WebSocket(`${wsUrl}${path}`);
|
|
79
|
+
ws.onmessage = (event) => {
|
|
80
|
+
try {
|
|
81
|
+
const data = JSON.parse(event.data);
|
|
82
|
+
if (data.type === "kv_update") {
|
|
83
|
+
callbacks.onUpdate(data);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
catch (err) {
|
|
87
|
+
callbacks.onError?.(err instanceof Error ? err : new Error(String(err)));
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
ws.onerror = () => {
|
|
91
|
+
callbacks.onError?.(new Error("KV watch WebSocket error"));
|
|
92
|
+
};
|
|
93
|
+
ws.onclose = () => {
|
|
94
|
+
callbacks.onClose?.();
|
|
95
|
+
};
|
|
96
|
+
return {
|
|
97
|
+
stop: () => {
|
|
98
|
+
ws.close();
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
async restRequest(method, path, body, extraHeaders) {
|
|
103
|
+
const url = `${this.config.serverUrl}${path}`;
|
|
104
|
+
const timeout = this.config.timeout ?? DEFAULT_TIMEOUTS.CLIENT;
|
|
105
|
+
const controller = new AbortController();
|
|
106
|
+
const timeoutId = setTimeout(() => controller.abort(), timeout);
|
|
107
|
+
try {
|
|
108
|
+
const headers = {
|
|
109
|
+
[HEADERS.ENVIRONMENT]: this.config.environment,
|
|
110
|
+
};
|
|
111
|
+
if (body !== undefined) {
|
|
112
|
+
headers["Content-Type"] =
|
|
113
|
+
typeof body === "string"
|
|
114
|
+
? "application/octet-stream"
|
|
115
|
+
: "application/json";
|
|
116
|
+
}
|
|
117
|
+
if (this.config.auth?.apiKey) {
|
|
118
|
+
headers["Authorization"] = `Bearer ${this.config.auth.apiKey}`;
|
|
119
|
+
}
|
|
120
|
+
if (extraHeaders) {
|
|
121
|
+
Object.assign(headers, extraHeaders);
|
|
122
|
+
}
|
|
123
|
+
const response = await fetch(url, {
|
|
124
|
+
method,
|
|
125
|
+
headers,
|
|
126
|
+
body: body !== undefined
|
|
127
|
+
? typeof body === "string"
|
|
128
|
+
? body
|
|
129
|
+
: JSON.stringify(body)
|
|
130
|
+
: undefined,
|
|
131
|
+
signal: controller.signal,
|
|
132
|
+
});
|
|
133
|
+
if (!response.ok) {
|
|
134
|
+
const errorBody = await response.text();
|
|
135
|
+
let errorMessage = `KV request failed: ${response.status}`;
|
|
136
|
+
try {
|
|
137
|
+
const errorJson = JSON.parse(errorBody);
|
|
138
|
+
if (errorJson.error)
|
|
139
|
+
errorMessage = errorJson.error;
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
if (errorBody)
|
|
143
|
+
errorMessage = errorBody;
|
|
144
|
+
}
|
|
145
|
+
throw new IronflowError(errorMessage, {
|
|
146
|
+
code: `HTTP_${response.status}`,
|
|
147
|
+
retryable: response.status >= 500,
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
if (response.status === 204) {
|
|
151
|
+
return undefined;
|
|
152
|
+
}
|
|
153
|
+
return response.json();
|
|
154
|
+
}
|
|
155
|
+
catch (error) {
|
|
156
|
+
if (error instanceof IronflowError)
|
|
157
|
+
throw error;
|
|
158
|
+
if (error instanceof Error && error.name === "AbortError") {
|
|
159
|
+
throw new IronflowError(`KV request timeout after ${timeout}ms`, {
|
|
160
|
+
code: "TIMEOUT",
|
|
161
|
+
retryable: true,
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
throw new IronflowError(`KV ${method} ${path} failed`, {
|
|
165
|
+
code: "REQUEST_FAILED",
|
|
166
|
+
retryable: true,
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
finally {
|
|
170
|
+
clearTimeout(timeoutId);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Browser KV client for bucket management and key operations.
|
|
176
|
+
*/
|
|
177
|
+
export class BrowserKVClient {
|
|
178
|
+
config;
|
|
179
|
+
constructor(config) {
|
|
180
|
+
this.config = config;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Create a new bucket.
|
|
184
|
+
*/
|
|
185
|
+
async createBucket(config) {
|
|
186
|
+
const body = { name: config.name };
|
|
187
|
+
if (config.description)
|
|
188
|
+
body.description = config.description;
|
|
189
|
+
if (config.ttlSeconds)
|
|
190
|
+
body.ttl_seconds = config.ttlSeconds;
|
|
191
|
+
if (config.maxValueSize)
|
|
192
|
+
body.max_value_size = config.maxValueSize;
|
|
193
|
+
if (config.maxBytes)
|
|
194
|
+
body.max_bytes = config.maxBytes;
|
|
195
|
+
if (config.history)
|
|
196
|
+
body.history = config.history;
|
|
197
|
+
return this.restRequest("POST", "/api/v1/kv/buckets", body);
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Delete a bucket.
|
|
201
|
+
*/
|
|
202
|
+
async deleteBucket(name) {
|
|
203
|
+
await this.restRequest("DELETE", `/api/v1/kv/buckets/${enc(name)}`);
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* List all buckets.
|
|
207
|
+
*/
|
|
208
|
+
async listBuckets() {
|
|
209
|
+
const result = await this.restRequest("GET", "/api/v1/kv/buckets");
|
|
210
|
+
return result.buckets;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Get bucket info.
|
|
214
|
+
*/
|
|
215
|
+
async getBucketInfo(name) {
|
|
216
|
+
return this.restRequest("GET", `/api/v1/kv/buckets/${enc(name)}`);
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Get a bucket handle for key-level operations.
|
|
220
|
+
*/
|
|
221
|
+
bucket(name) {
|
|
222
|
+
return new BrowserKVBucketHandle(name, this.config);
|
|
223
|
+
}
|
|
224
|
+
async restRequest(method, path, body) {
|
|
225
|
+
const url = `${this.config.serverUrl}${path}`;
|
|
226
|
+
const timeout = this.config.timeout ?? DEFAULT_TIMEOUTS.CLIENT;
|
|
227
|
+
const controller = new AbortController();
|
|
228
|
+
const timeoutId = setTimeout(() => controller.abort(), timeout);
|
|
229
|
+
try {
|
|
230
|
+
const headers = {
|
|
231
|
+
[HEADERS.ENVIRONMENT]: this.config.environment,
|
|
232
|
+
};
|
|
233
|
+
if (body !== undefined) {
|
|
234
|
+
headers["Content-Type"] = "application/json";
|
|
235
|
+
}
|
|
236
|
+
if (this.config.auth?.apiKey) {
|
|
237
|
+
headers["Authorization"] = `Bearer ${this.config.auth.apiKey}`;
|
|
238
|
+
}
|
|
239
|
+
const response = await fetch(url, {
|
|
240
|
+
method,
|
|
241
|
+
headers,
|
|
242
|
+
body: body !== undefined ? JSON.stringify(body) : undefined,
|
|
243
|
+
signal: controller.signal,
|
|
244
|
+
});
|
|
245
|
+
if (!response.ok) {
|
|
246
|
+
const errorBody = await response.text();
|
|
247
|
+
let errorMessage = `KV request failed: ${response.status}`;
|
|
248
|
+
try {
|
|
249
|
+
const errorJson = JSON.parse(errorBody);
|
|
250
|
+
if (errorJson.error)
|
|
251
|
+
errorMessage = errorJson.error;
|
|
252
|
+
}
|
|
253
|
+
catch {
|
|
254
|
+
if (errorBody)
|
|
255
|
+
errorMessage = errorBody;
|
|
256
|
+
}
|
|
257
|
+
throw new IronflowError(errorMessage, {
|
|
258
|
+
code: `HTTP_${response.status}`,
|
|
259
|
+
retryable: response.status >= 500,
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
if (response.status === 204) {
|
|
263
|
+
return undefined;
|
|
264
|
+
}
|
|
265
|
+
return response.json();
|
|
266
|
+
}
|
|
267
|
+
catch (error) {
|
|
268
|
+
if (error instanceof IronflowError)
|
|
269
|
+
throw error;
|
|
270
|
+
if (error instanceof Error && error.name === "AbortError") {
|
|
271
|
+
throw new IronflowError(`KV request timeout after ${timeout}ms`, {
|
|
272
|
+
code: "TIMEOUT",
|
|
273
|
+
retryable: true,
|
|
274
|
+
});
|
|
275
|
+
}
|
|
276
|
+
throw new IronflowError(`KV ${method} ${path} failed`, {
|
|
277
|
+
code: "REQUEST_FAILED",
|
|
278
|
+
retryable: true,
|
|
279
|
+
});
|
|
280
|
+
}
|
|
281
|
+
finally {
|
|
282
|
+
clearTimeout(timeoutId);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
function enc(s) {
|
|
287
|
+
return encodeURIComponent(s);
|
|
288
|
+
}
|
|
289
|
+
//# sourceMappingURL=kv.js.map
|
package/dist/kv.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kv.js","sourceRoot":"","sources":["../src/kv.ts"],"names":[],"mappings":"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"}
|
package/dist/subscription.d.ts
CHANGED
|
@@ -28,6 +28,8 @@ export declare class SubscriptionManager {
|
|
|
28
28
|
private subscriptions;
|
|
29
29
|
private patternToId;
|
|
30
30
|
private pendingPatterns;
|
|
31
|
+
/** Maps pattern to array of pending lookupKeys for O(1) lookup */
|
|
32
|
+
private patternToPendingKeys;
|
|
31
33
|
private connectionChangeCallbacks;
|
|
32
34
|
private errorCallbacks;
|
|
33
35
|
constructor(transport: Transport, logger?: Logger | false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscription.d.ts","sourceRoot":"","sources":["../src/subscription.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAEV,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,MAAM,EACP,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,SAAS,EAAsB,MAAM,sBAAsB,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,gBAAgB;IAC/D,wCAAwC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;
|
|
1
|
+
{"version":3,"file":"subscription.d.ts","sourceRoot":"","sources":["../src/subscription.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAEV,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,qBAAqB,EACrB,MAAM,EACP,MAAM,gBAAgB,CAAC;AAExB,OAAO,KAAK,EAAE,SAAS,EAAsB,MAAM,sBAAsB,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,gBAAgB;IAC/D,wCAAwC;IACxC,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAkBD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,sCAAsC;IACtC,GAAG,CAAC,CAAC,GAAG,OAAO,EACb,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,uBAAuB,GAC5D,OAAO,CAAC,YAAY,GAAG,mBAAmB,CAAC,CAAC;IAC/C,iDAAiD;IACjD,cAAc,IAAI,IAAI,CAAC;CACxB;AAED;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,SAAS,CAAY;IAE7B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAA6C;IAClE,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,eAAe,CAA6C;IACpE,kEAAkE;IAClE,OAAO,CAAC,oBAAoB,CAAoC;IAChE,OAAO,CAAC,yBAAyB,CAAoD;IACrF,OAAO,CAAC,cAAc,CAA0D;gBAEpE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK;IAgBzD;;OAEG;IACG,SAAS,CAAC,CAAC,GAAG,OAAO,EACzB,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,EAC1B,mBAAmB,EAAE,qBAAqB,CAAC,CAAC,CAAC,GAAG,uBAAuB,GACtE,OAAO,CAAC,YAAY,GAAG,mBAAmB,CAAC;YAsChC,eAAe;IAiE7B;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAW3C;;OAEG;IACH,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAW7C;;OAEG;IACH,WAAW,IAAI,iBAAiB;IAqBhC;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,GAAG,MAAM,IAAI;IAK1E;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,GAAG,MAAM,IAAI;IAKrE;;OAEG;IACH,IAAI,eAAe,IAAI,eAAe,CAErC;IAED;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B;;OAEG;IACH,UAAU,IAAI,IAAI;IAQlB;;OAEG;IACH,KAAK,IAAI,IAAI;IAIb;;OAEG;IACH,MAAM,IAAI,IAAI;IAId,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,gBAAgB;IAqDxB,OAAO,CAAC,qBAAqB;CAqB9B"}
|
package/dist/subscription.js
CHANGED
|
@@ -12,6 +12,8 @@ export class SubscriptionManager {
|
|
|
12
12
|
subscriptions = new Map();
|
|
13
13
|
patternToId = new Map();
|
|
14
14
|
pendingPatterns = new Map();
|
|
15
|
+
/** Maps pattern to array of pending lookupKeys for O(1) lookup */
|
|
16
|
+
patternToPendingKeys = new Map();
|
|
15
17
|
connectionChangeCallbacks = new Set();
|
|
16
18
|
errorCallbacks = new Set();
|
|
17
19
|
constructor(transport, logger) {
|
|
@@ -34,16 +36,22 @@ export class SubscriptionManager {
|
|
|
34
36
|
async subscribe(pattern, callbacksAndOptions) {
|
|
35
37
|
// Handle array of patterns
|
|
36
38
|
if (Array.isArray(pattern)) {
|
|
37
|
-
// For multiple patterns, we create a single logical subscription
|
|
38
|
-
// that receives events from all patterns
|
|
39
|
-
const combinedPattern = pattern.join(",");
|
|
40
|
-
// Subscribe to each pattern but combine into one subscription object
|
|
41
39
|
const subscriptions = [];
|
|
42
|
-
|
|
43
|
-
const
|
|
44
|
-
|
|
40
|
+
try {
|
|
41
|
+
for (const p of pattern) {
|
|
42
|
+
const sub = await this.subscribeSingle(p, callbacksAndOptions);
|
|
43
|
+
subscriptions.push(sub);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
// Rollback successful subscriptions on failure
|
|
48
|
+
for (const sub of subscriptions) {
|
|
49
|
+
sub.unsubscribe();
|
|
50
|
+
}
|
|
51
|
+
throw error;
|
|
45
52
|
}
|
|
46
53
|
// Return a combined subscription
|
|
54
|
+
const combinedPattern = pattern.join(",");
|
|
47
55
|
const combinedId = generateId();
|
|
48
56
|
const combinedSub = {
|
|
49
57
|
id: combinedId,
|
|
@@ -60,10 +68,6 @@ export class SubscriptionManager {
|
|
|
60
68
|
return this.subscribeSingle(pattern, callbacksAndOptions);
|
|
61
69
|
}
|
|
62
70
|
async subscribeSingle(pattern, callbacksAndOptions) {
|
|
63
|
-
// Check if already subscribed
|
|
64
|
-
if (this.patternToId.has(pattern)) {
|
|
65
|
-
throw new Error(`Already subscribed to pattern: ${pattern}`);
|
|
66
|
-
}
|
|
67
71
|
// Extract options and callbacks
|
|
68
72
|
const { replay, includeMetadata, filter, namespace, consumerGroup, ackMode, backpressure, trackState, ...callbacks } = callbacksAndOptions;
|
|
69
73
|
const options = {
|
|
@@ -76,18 +80,32 @@ export class SubscriptionManager {
|
|
|
76
80
|
backpressure,
|
|
77
81
|
trackState,
|
|
78
82
|
};
|
|
83
|
+
// Generate lookup key: for consumer groups, allow multiple subscriptions to same pattern
|
|
84
|
+
// by appending a unique ID; for broadcast, use pattern directly to prevent duplicates
|
|
85
|
+
const lookupKey = consumerGroup
|
|
86
|
+
? `${pattern}:cg:${generateId()}`
|
|
87
|
+
: pattern;
|
|
88
|
+
// Check if already subscribed (only for broadcast subscriptions)
|
|
89
|
+
if (!consumerGroup && this.patternToId.has(lookupKey)) {
|
|
90
|
+
throw new Error(`Already subscribed to pattern: ${pattern}`);
|
|
91
|
+
}
|
|
79
92
|
return new Promise((resolve, reject) => {
|
|
80
93
|
const tempId = generateId();
|
|
81
94
|
const state = {
|
|
82
95
|
id: tempId,
|
|
83
96
|
pattern,
|
|
97
|
+
lookupKey,
|
|
84
98
|
options,
|
|
85
99
|
callbacks: callbacks,
|
|
86
100
|
connectionState: this.transport.connectionState,
|
|
87
101
|
resolve: resolve,
|
|
88
102
|
reject,
|
|
89
103
|
};
|
|
90
|
-
this.pendingPatterns.set(
|
|
104
|
+
this.pendingPatterns.set(lookupKey, state);
|
|
105
|
+
// Track lookupKey by pattern for efficient lookup when server responds
|
|
106
|
+
const pendingKeys = this.patternToPendingKeys.get(pattern) ?? [];
|
|
107
|
+
pendingKeys.push(lookupKey);
|
|
108
|
+
this.patternToPendingKeys.set(pattern, pendingKeys);
|
|
91
109
|
// Send subscribe request
|
|
92
110
|
this.transport.subscribe(pattern, options);
|
|
93
111
|
});
|
|
@@ -114,7 +132,7 @@ export class SubscriptionManager {
|
|
|
114
132
|
}
|
|
115
133
|
this.transport.unsubscribe(subscriptionId);
|
|
116
134
|
this.subscriptions.delete(subscriptionId);
|
|
117
|
-
this.patternToId.delete(state.
|
|
135
|
+
this.patternToId.delete(state.lookupKey);
|
|
118
136
|
}
|
|
119
137
|
/**
|
|
120
138
|
* Create a subscription group for batch management
|
|
@@ -169,6 +187,7 @@ export class SubscriptionManager {
|
|
|
169
187
|
this.subscriptions.clear();
|
|
170
188
|
this.patternToId.clear();
|
|
171
189
|
this.pendingPatterns.clear();
|
|
190
|
+
this.patternToPendingKeys.clear();
|
|
172
191
|
}
|
|
173
192
|
/**
|
|
174
193
|
* Pause subscriptions (for tab visibility)
|
|
@@ -216,15 +235,25 @@ export class SubscriptionManager {
|
|
|
216
235
|
}
|
|
217
236
|
}
|
|
218
237
|
handleSubscribed(pattern, subscriptionId) {
|
|
219
|
-
|
|
238
|
+
// Find pending subscription using pattern-to-keys map for O(1) lookup
|
|
239
|
+
const pendingKeys = this.patternToPendingKeys.get(pattern);
|
|
240
|
+
if (!pendingKeys || pendingKeys.length === 0) {
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
// Get the first pending key (FIFO order)
|
|
244
|
+
const pendingKey = pendingKeys.shift();
|
|
245
|
+
if (pendingKeys.length === 0) {
|
|
246
|
+
this.patternToPendingKeys.delete(pattern);
|
|
247
|
+
}
|
|
248
|
+
const pending = this.pendingPatterns.get(pendingKey);
|
|
220
249
|
if (!pending) {
|
|
221
250
|
return;
|
|
222
251
|
}
|
|
223
|
-
this.pendingPatterns.delete(
|
|
252
|
+
this.pendingPatterns.delete(pendingKey);
|
|
224
253
|
// Update state with real subscription ID
|
|
225
254
|
pending.id = subscriptionId;
|
|
226
255
|
this.subscriptions.set(subscriptionId, pending);
|
|
227
|
-
this.patternToId.set(
|
|
256
|
+
this.patternToId.set(pending.lookupKey, subscriptionId);
|
|
228
257
|
// Create subscription object
|
|
229
258
|
const isManualAck = pending.options?.ackMode === "manual";
|
|
230
259
|
if (isManualAck) {
|
|
@@ -252,11 +281,21 @@ export class SubscriptionManager {
|
|
|
252
281
|
}
|
|
253
282
|
}
|
|
254
283
|
handleSubscribeFailed(pattern, error) {
|
|
255
|
-
|
|
284
|
+
// Find pending subscription using pattern-to-keys map for O(1) lookup
|
|
285
|
+
const pendingKeys = this.patternToPendingKeys.get(pattern);
|
|
286
|
+
if (!pendingKeys || pendingKeys.length === 0) {
|
|
287
|
+
return;
|
|
288
|
+
}
|
|
289
|
+
// Get the first pending key (FIFO order)
|
|
290
|
+
const pendingKey = pendingKeys.shift();
|
|
291
|
+
if (pendingKeys.length === 0) {
|
|
292
|
+
this.patternToPendingKeys.delete(pattern);
|
|
293
|
+
}
|
|
294
|
+
const pending = this.pendingPatterns.get(pendingKey);
|
|
256
295
|
if (!pending) {
|
|
257
296
|
return;
|
|
258
297
|
}
|
|
259
|
-
this.pendingPatterns.delete(
|
|
298
|
+
this.pendingPatterns.delete(pendingKey);
|
|
260
299
|
pending.reject?.(error);
|
|
261
300
|
}
|
|
262
301
|
}
|
package/dist/subscription.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscription.js","sourceRoot":"","sources":["../src/subscription.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"subscription.js","sourceRoot":"","sources":["../src/subscription.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connectrpc.d.ts","sourceRoot":"","sources":["../../src/transport/connectrpc.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,IAAI,oBAAoB,EACxC,OAAO,EAER,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"connectrpc.d.ts","sourceRoot":"","sources":["../../src/transport/connectrpc.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,IAAI,oBAAoB,EACxC,OAAO,EAER,MAAM,gBAAgB,CAAC;AAmBxB,OAAO,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAwClF;;;;GAIG;AACH,qBAAa,mBAAoB,YAAW,SAAS;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAC3C,OAAO,CAAC,SAAS,CAAC,CAAqB;IACvC,OAAO,CAAC,YAAY,CAA0D;IAC9E,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,gBAAgB,CAAmC;IAC3D,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,cAAc,CAA8C;IACpE,OAAO,CAAC,MAAM,CAAS;IAGvB,OAAO,CAAC,mBAAmB,CAA8C;IACzE,OAAO,CAAC,qBAAqB,CAAK;gBAEtB,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB;IAKxD,IAAI,eAAe,IAAI,eAAe,CAErC;IAED,YAAY,CAAC,SAAS,EAAE,kBAAkB,GAAG,IAAI;IAI3C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAkD9B,UAAU,IAAI,IAAI;IAgBlB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,IAAI;IAqBhE,WAAW,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAQnC,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWzE,KAAK,IAAI,IAAI;IAeb,MAAM,IAAI,IAAI;IAOd;;OAEG;YACW,uBAAuB;IAgFrC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAuBzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAcxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA+BzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAM5B;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,gBAAgB,GACxB,SAAS,CAEX"}
|
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Uses @connectrpc/connect-web for browser-compatible gRPC communication.
|
|
5
5
|
*/
|
|
6
|
-
import { createClient } from "@connectrpc/connect";
|
|
7
|
-
import {
|
|
6
|
+
import { createClient, ConnectError } from "@connectrpc/connect";
|
|
7
|
+
import { createGrpcWebTransport } from "@connectrpc/connect-web";
|
|
8
8
|
import { create } from "@bufbuild/protobuf";
|
|
9
|
-
import {
|
|
9
|
+
import { calculateBackoff, HEADERS } from "@ironflow/core";
|
|
10
|
+
import { PubSubService } from "@ironflow/core/gen";
|
|
10
11
|
import { SubscribeRequestSchema, SubscribeOptionsSchema, AckMode as ProtoAckMode, BackpressureMode as ProtoBackpressureMode, } from "@ironflow/core/gen";
|
|
11
12
|
/**
|
|
12
13
|
* Convert SDK ack mode to protobuf enum
|
|
@@ -72,9 +73,19 @@ export class ConnectRPCTransport {
|
|
|
72
73
|
this._connectionState = "connecting";
|
|
73
74
|
this.callbacks?.onConnectionChange("connecting");
|
|
74
75
|
try {
|
|
75
|
-
//
|
|
76
|
-
|
|
76
|
+
// Build interceptor for environment header
|
|
77
|
+
const envHeader = this.options.environment;
|
|
78
|
+
// Create gRPC-Web transport for streaming (Connect transport has a bug with server streaming)
|
|
79
|
+
this.webTransport = createGrpcWebTransport({
|
|
77
80
|
baseUrl: this.serverUrl,
|
|
81
|
+
interceptors: envHeader
|
|
82
|
+
? [
|
|
83
|
+
(next) => async (req) => {
|
|
84
|
+
req.header.set(HEADERS.ENVIRONMENT, envHeader);
|
|
85
|
+
return next(req);
|
|
86
|
+
},
|
|
87
|
+
]
|
|
88
|
+
: undefined,
|
|
78
89
|
});
|
|
79
90
|
// Create the PubSub client
|
|
80
91
|
// Type assertion needed due to connect-es v1/v2 type mismatch
|
|
@@ -205,11 +216,21 @@ export class ConnectRPCTransport {
|
|
|
205
216
|
if (!this.activeSubscriptions.has(subscriptionId)) {
|
|
206
217
|
return;
|
|
207
218
|
}
|
|
219
|
+
// Extract error details from ConnectError or standard Error
|
|
220
|
+
let errorMessage = "Unknown error";
|
|
221
|
+
let errorCode = "STREAM_ERROR";
|
|
222
|
+
if (error instanceof ConnectError) {
|
|
223
|
+
errorMessage = error.message;
|
|
224
|
+
errorCode = error.code.toString();
|
|
225
|
+
}
|
|
226
|
+
else if (error instanceof Error) {
|
|
227
|
+
errorMessage = error.message;
|
|
228
|
+
}
|
|
208
229
|
// Handle connection errors
|
|
209
230
|
this.callbacks?.onError(subscriptionId, {
|
|
210
231
|
subscriptionId,
|
|
211
|
-
code:
|
|
212
|
-
message:
|
|
232
|
+
code: errorCode,
|
|
233
|
+
message: errorMessage,
|
|
213
234
|
retrying: this.options.autoReconnect,
|
|
214
235
|
});
|
|
215
236
|
// Trigger reconnect if enabled
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connectrpc.js","sourceRoot":"","sources":["../../src/transport/connectrpc.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"connectrpc.js","sourceRoot":"","sources":["../../src/transport/connectrpc.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
* Transport layer exports
|
|
3
3
|
*/
|
|
4
4
|
export type { Transport, TransportCallbacks, TransportFactory, TransportOptions, } from "./types.js";
|
|
5
|
-
export {
|
|
6
|
-
export {
|
|
5
|
+
export { createWebSocketTransport } from "./websocket.js";
|
|
6
|
+
export { createConnectRPCTransport } from "./connectrpc.js";
|
|
7
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EACV,SAAS,EACT,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transport/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EACV,SAAS,EACT,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC"}
|