@ironflow/node 0.14.0 → 0.16.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/dist/client.d.ts +271 -4
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +464 -7
- package/dist/client.js.map +1 -1
- package/dist/config-client.d.ts +13 -1
- package/dist/config-client.d.ts.map +1 -1
- package/dist/config-client.js +50 -0
- package/dist/config-client.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/projection-runner.d.ts +54 -7
- package/dist/projection-runner.d.ts.map +1 -1
- package/dist/projection-runner.js +275 -0
- package/dist/projection-runner.js.map +1 -1
- package/dist/worker.d.ts.map +1 -1
- package/dist/worker.js +12 -4
- package/dist/worker.js.map +1 -1
- package/package.json +2 -2
package/dist/config-client.d.ts
CHANGED
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Config management operations for the Ironflow server.
|
|
5
5
|
*/
|
|
6
|
-
import type { ConfigResponse, ConfigEntry, ConfigSetResult } from "@ironflow/core";
|
|
6
|
+
import type { ConfigResponse, ConfigEntry, ConfigSetResult, ConfigWatchEvent, ConfigWatchCallbacks, ConfigWatcher } from "@ironflow/core";
|
|
7
7
|
import type { OnErrorHandler } from "./types.js";
|
|
8
|
+
export type { ConfigWatchEvent, ConfigWatchCallbacks, ConfigWatcher };
|
|
8
9
|
/**
|
|
9
10
|
* Configuration for the config client (inherited from parent client).
|
|
10
11
|
*/
|
|
@@ -40,6 +41,17 @@ export declare class ConfigClient {
|
|
|
40
41
|
* Delete a config. Idempotent — succeeds silently if the config does not exist.
|
|
41
42
|
*/
|
|
42
43
|
delete(name: string): Promise<void>;
|
|
44
|
+
/**
|
|
45
|
+
* Watch a config for real-time changes via WebSocket.
|
|
46
|
+
*
|
|
47
|
+
* Connects to /api/v1/config/{name}/watch and delivers config_update events
|
|
48
|
+
* to the provided callbacks. Returns a ConfigWatcher with a stop() method
|
|
49
|
+
* to close the connection.
|
|
50
|
+
*
|
|
51
|
+
* The Node.js global WebSocket (available since Node 20) is used — no
|
|
52
|
+
* additional dependencies required.
|
|
53
|
+
*/
|
|
54
|
+
watch(name: string, callbacks: ConfigWatchCallbacks): ConfigWatcher;
|
|
43
55
|
private callOnError;
|
|
44
56
|
private restRequest;
|
|
45
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-client.d.ts","sourceRoot":"","sources":["../src/config-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,WAAW,EACX,eAAe,EAChB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"config-client.d.ts","sourceRoot":"","sources":["../src/config-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACd,MAAM,gBAAgB,CAAC;AAQxB,OAAO,KAAK,EAAE,cAAc,EAAgB,MAAM,YAAY,CAAC;AAE/D,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,aAAa,EAAE,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B;AAED;;GAEG;AACH,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,kBAAkB;IAEvD;;OAEG;IACG,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAIhF;;OAEG;IACG,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAIhD;;OAEG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAIlF;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;IAKpC;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC;;;;;;;;;OASG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,oBAAoB,GAAG,aAAa;YAgDrD,WAAW;YASX,WAAW;CAyD1B"}
|
package/dist/config-client.js
CHANGED
|
@@ -43,6 +43,56 @@ export class ConfigClient {
|
|
|
43
43
|
async delete(name) {
|
|
44
44
|
await this.restRequest("DELETE", `/api/v1/config/${enc(name)}`, undefined, "config.delete");
|
|
45
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Watch a config for real-time changes via WebSocket.
|
|
48
|
+
*
|
|
49
|
+
* Connects to /api/v1/config/{name}/watch and delivers config_update events
|
|
50
|
+
* to the provided callbacks. Returns a ConfigWatcher with a stop() method
|
|
51
|
+
* to close the connection.
|
|
52
|
+
*
|
|
53
|
+
* The Node.js global WebSocket (available since Node 20) is used — no
|
|
54
|
+
* additional dependencies required.
|
|
55
|
+
*/
|
|
56
|
+
watch(name, callbacks) {
|
|
57
|
+
const serverUrl = this.config.serverUrl;
|
|
58
|
+
const wsUrl = serverUrl
|
|
59
|
+
.replace("https://", "wss://")
|
|
60
|
+
.replace("http://", "ws://");
|
|
61
|
+
const url = `${wsUrl}/api/v1/config/${enc(name)}/watch`;
|
|
62
|
+
const headers = {};
|
|
63
|
+
if (this.config.apiKey) {
|
|
64
|
+
headers["Authorization"] = `Bearer ${this.config.apiKey}`;
|
|
65
|
+
}
|
|
66
|
+
// Node 20+ supports the global WebSocket constructor with an options
|
|
67
|
+
// argument that accepts headers (unlike the browser API).
|
|
68
|
+
const ws = new WebSocket(url, { headers });
|
|
69
|
+
ws.onmessage = (event) => {
|
|
70
|
+
try {
|
|
71
|
+
const data = JSON.parse(event.data);
|
|
72
|
+
if (data.type === "config_update") {
|
|
73
|
+
callbacks.onUpdate(data);
|
|
74
|
+
}
|
|
75
|
+
else if (data.type === "error") {
|
|
76
|
+
const msg = data.message ?? "config watch error";
|
|
77
|
+
callbacks.onError?.(new Error(msg));
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
catch (err) {
|
|
81
|
+
callbacks.onError?.(err instanceof Error ? err : new Error(String(err)));
|
|
82
|
+
}
|
|
83
|
+
};
|
|
84
|
+
ws.onerror = () => {
|
|
85
|
+
callbacks.onError?.(new Error("config watch WebSocket error"));
|
|
86
|
+
};
|
|
87
|
+
ws.onclose = () => {
|
|
88
|
+
callbacks.onClose?.();
|
|
89
|
+
};
|
|
90
|
+
return {
|
|
91
|
+
stop: () => {
|
|
92
|
+
ws.close();
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
}
|
|
46
96
|
async callOnError(error, context) {
|
|
47
97
|
if (!this.config.onError)
|
|
48
98
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-client.js","sourceRoot":"","sources":["../src/config-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"config-client.js","sourceRoot":"","sources":["../src/config-client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -41,7 +41,7 @@ export { ironflow, createFunction } from "./function.js";
|
|
|
41
41
|
export { serve, createHandler } from "./serve.js";
|
|
42
42
|
export { createWorker } from "./worker.js";
|
|
43
43
|
export { createProjection } from "./projection.js";
|
|
44
|
-
export { createProjectionRunner, type ProjectionRunnerConfig } from "./projection-runner.js";
|
|
44
|
+
export { createProjectionRunner, StreamingUnsupportedError, type ProjectionRunnerConfig } from "./projection-runner.js";
|
|
45
45
|
export { createWebhook } from "./webhook.js";
|
|
46
46
|
export { createSecretsClient } from "./secrets.js";
|
|
47
47
|
export { createClient } from "./client.js";
|
|
@@ -50,9 +50,10 @@ export type { IronflowClientConfig, RegisterFunctionRequest, RegisterFunctionRes
|
|
|
50
50
|
export { KVClient, KVBucketHandle } from "./kv.js";
|
|
51
51
|
export type { KVClientConfig } from "./kv.js";
|
|
52
52
|
export { ConfigClient } from "./config-client.js";
|
|
53
|
-
export type { ConfigClientConfig } from "./config-client.js";
|
|
53
|
+
export type { ConfigClientConfig, ConfigWatchEvent, ConfigWatchCallbacks, ConfigWatcher } from "./config-client.js";
|
|
54
54
|
export type { ServeConfig, HandlerOptions, HandlerContext, WorkerConfig, Worker, CreateFunctionConfig, ErrorContext, OnErrorHandler, } from "./types.js";
|
|
55
|
-
export type { Branded, RunId, FunctionId, StepId, EventId, JobId, WorkerId, SubscriptionId, FunctionConfig, FunctionContext, FunctionHandler, IronflowFunction, Trigger, RetryConfig, ConcurrencyConfig, ExecutionMode, IronflowEvent, EventFilter, StepClient, Duration, ParallelOptions, RunInfo, Run, RunStatus, ListRunsOptions, ListRunsResult,
|
|
55
|
+
export type { Branded, RunId, FunctionId, StepId, EventId, JobId, WorkerId, SubscriptionId, FunctionConfig, FunctionContext, FunctionHandler, IronflowFunction, Trigger, RetryConfig, ConcurrencyConfig, ExecutionMode, IronflowEvent, EventFilter, StepClient, Duration, ParallelOptions, RunInfo, Run, RunStatus, ListRunsOptions, ListRunsResult, InvokeResult, TriggerResult, // deprecated alias for InvokeResult
|
|
56
|
+
TriggerSyncOptions, TriggerSyncResult, EmitOptions, EmitResult, AppendEventInput, AppendOptions, AppendResult, ReadStreamOptions, StreamEvent, StreamInfo, SecretsClient, Logger, PushRequest, PushResponse, CompletedStep, ResumeContext, StepResult, YieldInfo, SleepYield, WaitEventYield, KVBucketConfig, KVBucketInfo, KVEntry, KVPutResult, KVListKeysResult, KVListBucketsResult, KVWatchEvent, KVWatchCallbacks, KVWatchOptions, KVWatcher, ConfigResponse, ConfigEntry, ConfigSetResult, SubscribeOptions, SubscriptionEvent, SubscriptionErrorInfo, Subscription, AckableSubscription, ConnectionState, WebhookConfig, WebhookRequest, WebhookEvent, IronflowWebhook, ProjectionMode, ProjectionStatus, ProjectionContext, ManagedProjectionHandler, ExternalProjectionHandler, ProjectionConfig, IronflowProjection, ProjectionStatusInfo, ProjectionStateResult, GetProjectionOptions, RebuildProjectionOptions, ProjectionSubscriptionCallbacks, APIKey, APIKeyWithSecret, CreateAPIKeyInput, Organization, CreateOrgInput, UpdateOrgInput, Role, CreateRoleInput, UpdateRoleInput, Policy, CreatePolicyInput, UpdatePolicyInput, WebhookSource, CreateWebhookSourceInput, WebhookDelivery, ListWebhookDeliveriesOptions, User, CreateUserInput, UpdateUserInput, Tenant, } from "@ironflow/core";
|
|
56
57
|
export { createRunId, createFunctionId, createStepId, createEventId, createJobId, createWorkerId, createSubscriptionId, } from "@ironflow/core";
|
|
57
58
|
export { IronflowError, StepError, TimeoutError, ValidationError, SchemaValidationError, SignatureError, FunctionNotFoundError, RunNotFoundError, NonRetryableError, UnauthenticatedError, EnterpriseRequiredError, UnauthorizedError, isRetryable, isIronflowError, } from "@ironflow/core";
|
|
58
59
|
export { parseDuration, calculateBackoff, sleep, generateId, createLogger, createNoopLogger, type LogLevel, type LoggerConfig, } from "@ironflow/core";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAIH,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,KAAK,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -43,7 +43,7 @@ export { ironflow, createFunction } from "./function.js";
|
|
|
43
43
|
export { serve, createHandler } from "./serve.js";
|
|
44
44
|
export { createWorker } from "./worker.js";
|
|
45
45
|
export { createProjection } from "./projection.js";
|
|
46
|
-
export { createProjectionRunner } from "./projection-runner.js";
|
|
46
|
+
export { createProjectionRunner, StreamingUnsupportedError } from "./projection-runner.js";
|
|
47
47
|
// NOTE: createStreamingWorker is NOT exported here to avoid loading protobuf
|
|
48
48
|
// dependencies. Import from "@ironflow/node/worker-streaming" if you need it.
|
|
49
49
|
export { createWebhook } from "./webhook.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,eAAe;AACf,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAA+B,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,eAAe;AACf,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAA+B,MAAM,wBAAwB,CAAC;AACxH,6EAA6E;AAC7E,8EAA8E;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EACL,wBAAwB,EACxB,kBAAkB,GAEnB,MAAM,gBAAgB,CAAC;AAMxB,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAgKlD,gCAAgC;AAChC,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,WAAW,EACX,cAAc,EACd,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAExB,mBAAmB;AACnB,OAAO,EACL,aAAa,EACb,SAAS,EACT,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,uBAAuB,EACvB,iBAAiB,EACjB,WAAW,EACX,eAAe,GAChB,MAAM,gBAAgB,CAAC;AAExB,sBAAsB;AACtB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,KAAK,EACL,UAAU,EACV,YAAY,EACZ,gBAAgB,GAGjB,MAAM,gBAAgB,CAAC;AAExB,sBAAsB;AACtB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,QAAQ,GACT,MAAM,gBAAgB,CAAC;AAExB,uCAAuC;AACvC,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,QAAQ,GACT,MAAM,gBAAgB,CAAC;AAExB,iBAAiB;AACjB,eAAe,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Projection Runner
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
* Follows the same pattern as the worker polling loop in worker.ts.
|
|
4
|
+
* Processes events for a single projection using two strategies:
|
|
6
5
|
*
|
|
7
|
-
*
|
|
8
|
-
* -
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
6
|
+
* 1. **Streaming (preferred):** Opens a persistent ConnectRPC server-stream
|
|
7
|
+
* that receives events in real-time as they arrive. Uses micro-batching
|
|
8
|
+
* (100ms window or batch_size events, whichever comes first) to amortize
|
|
9
|
+
* state saves.
|
|
10
|
+
*
|
|
11
|
+
* 2. **Polling (fallback):** If streaming is unavailable (older server), falls
|
|
12
|
+
* back to HTTP polling with exponential backoff (1s → 2s → 4s, max 10s).
|
|
13
|
+
*
|
|
14
|
+
* Both modes use the same handler execution and state persistence logic.
|
|
12
15
|
*/
|
|
13
16
|
import type { IronflowProjection, Logger } from "@ironflow/core";
|
|
14
17
|
export interface ProjectionRunnerConfig {
|
|
@@ -22,8 +25,48 @@ export declare class ProjectionRunner {
|
|
|
22
25
|
private config;
|
|
23
26
|
private running;
|
|
24
27
|
private backoffMs;
|
|
28
|
+
private pendingEvents;
|
|
29
|
+
private flushTimer;
|
|
30
|
+
private flushChain;
|
|
31
|
+
private managedState;
|
|
32
|
+
private managedStateInitialized;
|
|
25
33
|
constructor(config: ProjectionRunnerConfig);
|
|
26
34
|
register(): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* Start in streaming mode (preferred). Opens a ConnectRPC server-stream
|
|
37
|
+
* that delivers events in real-time. Falls back to polling if the server
|
|
38
|
+
* returns Unimplemented or the stream fails to connect.
|
|
39
|
+
*/
|
|
40
|
+
startStreaming(): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* Enqueue an event from the stream into the micro-batch.
|
|
43
|
+
* Flushes when batch is full or after FLUSH_INTERVAL_MS of inactivity.
|
|
44
|
+
* Flush calls are serialized via flushChain to prevent concurrent state mutations.
|
|
45
|
+
*/
|
|
46
|
+
private enqueueEvent;
|
|
47
|
+
/** Serializes flush calls so only one runs at a time */
|
|
48
|
+
private scheduleFlush;
|
|
49
|
+
/**
|
|
50
|
+
* Flush pending events through the handler and persist state.
|
|
51
|
+
*/
|
|
52
|
+
private flushPending;
|
|
53
|
+
/**
|
|
54
|
+
* Process a batch of events in managed mode: run reducer, save state.
|
|
55
|
+
*/
|
|
56
|
+
private processManagedBatch;
|
|
57
|
+
/**
|
|
58
|
+
* Process a batch of events in external mode: run handler, ack.
|
|
59
|
+
*/
|
|
60
|
+
private processExternalBatch;
|
|
61
|
+
/**
|
|
62
|
+
* Load existing projection state from the server so streaming resumes
|
|
63
|
+
* with the correct accumulated state.
|
|
64
|
+
*/
|
|
65
|
+
private loadExistingState;
|
|
66
|
+
/**
|
|
67
|
+
* Start in poll mode (fallback). Uses the existing PollProjectionEvents RPC
|
|
68
|
+
* with exponential backoff.
|
|
69
|
+
*/
|
|
27
70
|
start(): Promise<void>;
|
|
28
71
|
stop(): Promise<void>;
|
|
29
72
|
private poll;
|
|
@@ -32,5 +75,9 @@ export declare class ProjectionRunner {
|
|
|
32
75
|
private ackEvents;
|
|
33
76
|
private sleep;
|
|
34
77
|
}
|
|
78
|
+
/** Error thrown when the server doesn't support the streaming RPC */
|
|
79
|
+
export declare class StreamingUnsupportedError extends Error {
|
|
80
|
+
constructor(message: string);
|
|
81
|
+
}
|
|
35
82
|
export declare function createProjectionRunner(config: ProjectionRunnerConfig): ProjectionRunner;
|
|
36
83
|
//# sourceMappingURL=projection-runner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection-runner.d.ts","sourceRoot":"","sources":["../src/projection-runner.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"projection-runner.d.ts","sourceRoot":"","sources":["../src/projection-runner.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAElB,MAAM,EAGP,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,sBAAsB;IAErC,UAAU,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAqBD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAQ;IAGzB,OAAO,CAAC,aAAa,CAAmB;IACxC,OAAO,CAAC,UAAU,CAA8C;IAEhE,OAAO,CAAC,UAAU,CAAoC;IAEtD,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,uBAAuB,CAAS;gBAE5B,MAAM,EAAE,sBAAsB;IAIpC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB/B;;;;OAIG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IA0IrC;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAgBpB,wDAAwD;IACxD,OAAO,CAAC,aAAa;IAIrB;;OAEG;YACW,YAAY;IAkB1B;;OAEG;YACW,mBAAmB;IA2CjC;;OAEG;YACW,oBAAoB;IAelC;;;OAGG;YACW,iBAAiB;IAyB/B;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAyBtB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAWb,IAAI;IA2FlB,OAAO,CAAC,YAAY;YAgBN,SAAS;YA0BT,SAAS;IAoBvB,OAAO,CAAC,KAAK;CAad;AAED,qEAAqE;AACrE,qBAAa,yBAA0B,SAAQ,KAAK;gBACtC,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,sBAAsB,GAAG,gBAAgB,CAEvF"}
|
|
@@ -1,8 +1,18 @@
|
|
|
1
1
|
// sdk/js/node/src/projection-runner.ts
|
|
2
|
+
/** Micro-batch flush configuration */
|
|
3
|
+
const FLUSH_INTERVAL_MS = 100;
|
|
2
4
|
export class ProjectionRunner {
|
|
3
5
|
config;
|
|
4
6
|
running = false;
|
|
5
7
|
backoffMs = 1000;
|
|
8
|
+
// Micro-batch state for streaming mode
|
|
9
|
+
pendingEvents = [];
|
|
10
|
+
flushTimer = null;
|
|
11
|
+
// Serializes flushPending calls to prevent concurrent state mutations
|
|
12
|
+
flushChain = Promise.resolve();
|
|
13
|
+
// In-memory state for managed projections (accumulated across micro-batches)
|
|
14
|
+
managedState = null;
|
|
15
|
+
managedStateInitialized = false;
|
|
6
16
|
constructor(config) {
|
|
7
17
|
this.config = config;
|
|
8
18
|
}
|
|
@@ -23,6 +33,257 @@ export class ProjectionRunner {
|
|
|
23
33
|
throw new Error(`Failed to register projection: ${resp.status}`);
|
|
24
34
|
}
|
|
25
35
|
}
|
|
36
|
+
/**
|
|
37
|
+
* Start in streaming mode (preferred). Opens a ConnectRPC server-stream
|
|
38
|
+
* that delivers events in real-time. Falls back to polling if the server
|
|
39
|
+
* returns Unimplemented or the stream fails to connect.
|
|
40
|
+
*/
|
|
41
|
+
async startStreaming() {
|
|
42
|
+
this.running = true;
|
|
43
|
+
await this.register();
|
|
44
|
+
const { projection, baseUrl, headers, logger } = this.config;
|
|
45
|
+
const name = projection.config.name;
|
|
46
|
+
logger.info(`Projection runner started (streaming): ${name}`);
|
|
47
|
+
// Initialize managed state from initialState() if available
|
|
48
|
+
if (projection.config.mode === "managed" && projection.config.initialState) {
|
|
49
|
+
this.managedState = projection.config.initialState();
|
|
50
|
+
this.managedStateInitialized = true;
|
|
51
|
+
}
|
|
52
|
+
// Fetch existing state from server to resume from where we left off
|
|
53
|
+
await this.loadExistingState();
|
|
54
|
+
while (this.running && !this.config.signal?.aborted) {
|
|
55
|
+
try {
|
|
56
|
+
const resp = await fetch(`${baseUrl}/ironflow.v1.ProjectionService/StreamProjectionEvents`, {
|
|
57
|
+
method: "POST",
|
|
58
|
+
headers: {
|
|
59
|
+
...headers,
|
|
60
|
+
"Content-Type": "application/json",
|
|
61
|
+
Accept: "application/connect+streaming",
|
|
62
|
+
},
|
|
63
|
+
body: JSON.stringify({
|
|
64
|
+
name,
|
|
65
|
+
batchSize: projection.config.batchSize || 100,
|
|
66
|
+
}),
|
|
67
|
+
signal: this.config.signal,
|
|
68
|
+
});
|
|
69
|
+
if (!resp.ok) {
|
|
70
|
+
const status = resp.status;
|
|
71
|
+
// If server doesn't support streaming, let the caller know to fall back
|
|
72
|
+
if (status === 404 || status === 501) {
|
|
73
|
+
throw new StreamingUnsupportedError(`Server does not support StreamProjectionEvents (${status})`);
|
|
74
|
+
}
|
|
75
|
+
throw new Error(`Stream request failed: ${status}`);
|
|
76
|
+
}
|
|
77
|
+
if (!resp.body) {
|
|
78
|
+
throw new Error("No response body for streaming");
|
|
79
|
+
}
|
|
80
|
+
// Read the streaming response using the ConnectRPC streaming envelope format.
|
|
81
|
+
// Each message is: 1 byte flags + 4 bytes big-endian length + JSON payload.
|
|
82
|
+
const reader = resp.body.getReader();
|
|
83
|
+
try {
|
|
84
|
+
let buffer = new Uint8Array(0);
|
|
85
|
+
while (this.running && !this.config.signal?.aborted) {
|
|
86
|
+
const { done, value } = await reader.read();
|
|
87
|
+
if (done)
|
|
88
|
+
break;
|
|
89
|
+
// Append new data to buffer
|
|
90
|
+
const newBuffer = new Uint8Array(buffer.length + value.length);
|
|
91
|
+
newBuffer.set(buffer);
|
|
92
|
+
newBuffer.set(value, buffer.length);
|
|
93
|
+
buffer = newBuffer;
|
|
94
|
+
// Process all complete messages in the buffer
|
|
95
|
+
while (buffer.length >= 5) {
|
|
96
|
+
// ConnectRPC envelope: flags(1) + length(4) + payload(length)
|
|
97
|
+
const dataView = new DataView(buffer.buffer, buffer.byteOffset, buffer.byteLength);
|
|
98
|
+
const msgLength = dataView.getUint32(1, false); // big-endian
|
|
99
|
+
const totalLength = 5 + msgLength;
|
|
100
|
+
if (buffer.length < totalLength)
|
|
101
|
+
break; // Incomplete message
|
|
102
|
+
const flags = buffer[0] ?? 0;
|
|
103
|
+
const payload = buffer.slice(5, totalLength);
|
|
104
|
+
buffer = buffer.slice(totalLength);
|
|
105
|
+
// ConnectRPC end-of-stream trailer (flags bit 1 set)
|
|
106
|
+
if (flags & 0x02) {
|
|
107
|
+
const text = new TextDecoder().decode(payload);
|
|
108
|
+
try {
|
|
109
|
+
const trailer = JSON.parse(text);
|
|
110
|
+
if (trailer.error) {
|
|
111
|
+
logger.error(`Stream trailer error: ${trailer.error.message || trailer.error.code}`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
catch { /* ignore malformed trailers */ }
|
|
115
|
+
break; // End of stream
|
|
116
|
+
}
|
|
117
|
+
const text = new TextDecoder().decode(payload);
|
|
118
|
+
try {
|
|
119
|
+
const event = JSON.parse(text);
|
|
120
|
+
// Normalize field names from protobuf JSON (camelCase)
|
|
121
|
+
const normalized = {
|
|
122
|
+
id: event.id || "",
|
|
123
|
+
name: event.name || "",
|
|
124
|
+
data: event.data,
|
|
125
|
+
seq: typeof event.seq === "string" ? parseInt(event.seq, 10) : (event.seq || 0),
|
|
126
|
+
timestamp: event.timestamp,
|
|
127
|
+
metadata: event.metadata,
|
|
128
|
+
};
|
|
129
|
+
this.enqueueEvent(normalized);
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
// Skip malformed messages
|
|
133
|
+
logger.warn(`Skipping malformed stream message: ${text.slice(0, 100)}`);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
finally {
|
|
139
|
+
reader.releaseLock();
|
|
140
|
+
// Flush any remaining events
|
|
141
|
+
await this.flushPending();
|
|
142
|
+
}
|
|
143
|
+
// Stream ended normally (server restart, etc.)
|
|
144
|
+
if (this.running) {
|
|
145
|
+
logger.info(`Projection stream ended for ${name}, reconnecting...`);
|
|
146
|
+
await this.sleep(1000);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
catch (err) {
|
|
150
|
+
if (!this.running || this.config.signal?.aborted)
|
|
151
|
+
break;
|
|
152
|
+
// Re-throw StreamingUnsupportedError so caller can fall back to polling
|
|
153
|
+
if (err instanceof StreamingUnsupportedError) {
|
|
154
|
+
throw err;
|
|
155
|
+
}
|
|
156
|
+
logger.error(`Projection stream error for ${name}: ${err}`);
|
|
157
|
+
await this.sleep(2000); // Brief delay before reconnect
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Enqueue an event from the stream into the micro-batch.
|
|
163
|
+
* Flushes when batch is full or after FLUSH_INTERVAL_MS of inactivity.
|
|
164
|
+
* Flush calls are serialized via flushChain to prevent concurrent state mutations.
|
|
165
|
+
*/
|
|
166
|
+
enqueueEvent(event) {
|
|
167
|
+
this.pendingEvents.push(event);
|
|
168
|
+
const batchSize = this.config.projection.config.batchSize || 100;
|
|
169
|
+
if (this.pendingEvents.length >= batchSize) {
|
|
170
|
+
// Batch full — flush immediately, serialized through the chain
|
|
171
|
+
this.scheduleFlush();
|
|
172
|
+
}
|
|
173
|
+
else if (!this.flushTimer) {
|
|
174
|
+
// Start the flush timer
|
|
175
|
+
this.flushTimer = setTimeout(() => {
|
|
176
|
+
this.flushTimer = null;
|
|
177
|
+
this.scheduleFlush();
|
|
178
|
+
}, FLUSH_INTERVAL_MS);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
/** Serializes flush calls so only one runs at a time */
|
|
182
|
+
scheduleFlush() {
|
|
183
|
+
this.flushChain = this.flushChain.then(() => this.flushPending()).catch(() => { });
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Flush pending events through the handler and persist state.
|
|
187
|
+
*/
|
|
188
|
+
async flushPending() {
|
|
189
|
+
if (this.flushTimer) {
|
|
190
|
+
clearTimeout(this.flushTimer);
|
|
191
|
+
this.flushTimer = null;
|
|
192
|
+
}
|
|
193
|
+
const events = this.pendingEvents.splice(0);
|
|
194
|
+
if (events.length === 0)
|
|
195
|
+
return;
|
|
196
|
+
const projConfig = this.config.projection.config;
|
|
197
|
+
if (projConfig.mode === "managed") {
|
|
198
|
+
await this.processManagedBatch(events);
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
await this.processExternalBatch(events);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Process a batch of events in managed mode: run reducer, save state.
|
|
206
|
+
*/
|
|
207
|
+
async processManagedBatch(events) {
|
|
208
|
+
const projConfig = this.config.projection.config;
|
|
209
|
+
// Group by partition
|
|
210
|
+
const partitions = new Map();
|
|
211
|
+
for (const event of events) {
|
|
212
|
+
const pk = event.metadata?.["__partition"] || "__global__";
|
|
213
|
+
if (!partitions.has(pk)) {
|
|
214
|
+
partitions.set(pk, { events: [], lastEventId: "", lastEventSeq: 0 });
|
|
215
|
+
}
|
|
216
|
+
partitions.get(pk).events.push(event);
|
|
217
|
+
}
|
|
218
|
+
for (const [pk, batch] of partitions) {
|
|
219
|
+
// For __global__ partition, use in-memory accumulated state
|
|
220
|
+
let state;
|
|
221
|
+
if (pk === "__global__" && this.managedStateInitialized) {
|
|
222
|
+
state = this.managedState;
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
state = projConfig.initialState ? projConfig.initialState() : {};
|
|
226
|
+
}
|
|
227
|
+
for (const event of batch.events) {
|
|
228
|
+
const ctx = this.buildContext(event);
|
|
229
|
+
state = projConfig.handler(state, event, ctx);
|
|
230
|
+
batch.lastEventId = event.id;
|
|
231
|
+
batch.lastEventSeq = event.seq;
|
|
232
|
+
batch.lastEventTime = event.timestamp;
|
|
233
|
+
}
|
|
234
|
+
// Update in-memory state for __global__ partition
|
|
235
|
+
if (pk === "__global__") {
|
|
236
|
+
this.managedState = state;
|
|
237
|
+
this.managedStateInitialized = true;
|
|
238
|
+
}
|
|
239
|
+
await this.saveState(state, batch.lastEventId, batch.lastEventSeq, batch.lastEventTime, pk);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Process a batch of events in external mode: run handler, ack.
|
|
244
|
+
*/
|
|
245
|
+
async processExternalBatch(events) {
|
|
246
|
+
const projConfig = this.config.projection.config;
|
|
247
|
+
let lastEventId = "";
|
|
248
|
+
let lastEventSeq = 0;
|
|
249
|
+
for (const event of events) {
|
|
250
|
+
const ctx = this.buildContext(event);
|
|
251
|
+
await projConfig.handler(event, ctx);
|
|
252
|
+
lastEventId = event.id;
|
|
253
|
+
lastEventSeq = event.seq;
|
|
254
|
+
}
|
|
255
|
+
await this.ackEvents(lastEventId, lastEventSeq);
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Load existing projection state from the server so streaming resumes
|
|
259
|
+
* with the correct accumulated state.
|
|
260
|
+
*/
|
|
261
|
+
async loadExistingState() {
|
|
262
|
+
const { projection, baseUrl, headers, logger } = this.config;
|
|
263
|
+
if (projection.config.mode !== "managed")
|
|
264
|
+
return;
|
|
265
|
+
try {
|
|
266
|
+
const resp = await fetch(`${baseUrl}/ironflow.v1.ProjectionService/GetProjection`, {
|
|
267
|
+
method: "POST",
|
|
268
|
+
headers: { ...headers, "Content-Type": "application/json" },
|
|
269
|
+
body: JSON.stringify({ name: projection.config.name }),
|
|
270
|
+
});
|
|
271
|
+
if (resp.ok) {
|
|
272
|
+
const data = await resp.json();
|
|
273
|
+
if (data.state && typeof data.state === "object" && Object.keys(data.state).length > 0) {
|
|
274
|
+
this.managedState = data.state;
|
|
275
|
+
this.managedStateInitialized = true;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
catch (err) {
|
|
280
|
+
logger.warn(`Failed to load existing projection state: ${err}`);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Start in poll mode (fallback). Uses the existing PollProjectionEvents RPC
|
|
285
|
+
* with exponential backoff.
|
|
286
|
+
*/
|
|
26
287
|
async start() {
|
|
27
288
|
this.running = true;
|
|
28
289
|
await this.register();
|
|
@@ -48,6 +309,13 @@ export class ProjectionRunner {
|
|
|
48
309
|
}
|
|
49
310
|
async stop() {
|
|
50
311
|
this.running = false;
|
|
312
|
+
if (this.flushTimer) {
|
|
313
|
+
clearTimeout(this.flushTimer);
|
|
314
|
+
this.flushTimer = null;
|
|
315
|
+
}
|
|
316
|
+
// Wait for any in-flight flush, then flush remaining events
|
|
317
|
+
await this.flushChain;
|
|
318
|
+
await this.flushPending();
|
|
51
319
|
}
|
|
52
320
|
async poll() {
|
|
53
321
|
const { projection, baseUrl, headers } = this.config;
|
|
@@ -167,6 +435,13 @@ export class ProjectionRunner {
|
|
|
167
435
|
});
|
|
168
436
|
}
|
|
169
437
|
}
|
|
438
|
+
/** Error thrown when the server doesn't support the streaming RPC */
|
|
439
|
+
export class StreamingUnsupportedError extends Error {
|
|
440
|
+
constructor(message) {
|
|
441
|
+
super(message);
|
|
442
|
+
this.name = "StreamingUnsupportedError";
|
|
443
|
+
}
|
|
444
|
+
}
|
|
170
445
|
export function createProjectionRunner(config) {
|
|
171
446
|
return new ProjectionRunner(config);
|
|
172
447
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projection-runner.js","sourceRoot":"","sources":["../src/projection-runner.ts"],"names":[],"mappings":"AAAA,uCAAuC;AAgDvC,MAAM,OAAO,gBAAgB;IACnB,MAAM,CAAyB;IAC/B,OAAO,GAAG,KAAK,CAAC;IAChB,SAAS,GAAG,IAAI,CAAC;IAEzB,YAAY,MAA8B;QACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QACrD,MAAM,IAAI,GAAG,MAAM,KAAK,CACtB,GAAG,OAAO,mDAAmD,EAC7D;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC3D,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;gBAC5B,MAAM,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM;gBAChC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;gBAC5B,OAAO,EAAE,CAAC;gBACV,YAAY,EAAE,UAAU,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE;aACnD,CAAC;SACH,CACF,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,kCAAkC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;QACtB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CACrB,8BAA8B,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,CACnE,CAAC;QAEF,OAAO,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;YACpD,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;gBACpC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;oBAClB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC,gBAAgB;gBACzC,CAAC;qBAAM,CAAC;oBACN,wBAAwB;oBACxB,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,0BAA0B,GAAG,EAAE,CAAC,CAAC;gBAC1D,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACjC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAErD,MAAM,IAAI,GAAG,MAAM,KAAK,CACtB,GAAG,OAAO,qDAAqD,EAC/D;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC3D,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;gBAC5B,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,SAAS,IAAI,GAAG;aAC9C,CAAC;SACH,CACF,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAE7D,MAAM,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAiB,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;QACjC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAElC,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC;QAErC,IAAI,UAAU,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAClC,iFAAiF;YACjF,MAAM,UAAU,GAAG,IAAI,GAAG,EAGvB,CAAC;YACJ,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,EAAE,GACL,KAAK,CAAC,QAAQ,EAAE,CAAC,aAAa,CAAY,IAAI,YAAY,CAAC;gBAC9D,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;oBACxB,UAAU,CAAC,GAAG,CAAC,EAAE,EAAE;wBACjB,MAAM,EAAE,EAAE;wBACV,WAAW,EAAE,EAAE;wBACf,YAAY,EAAE,CAAC;qBAChB,CAAC,CAAC;gBACL,CAAC;gBACD,UAAU,CAAC,GAAG,CAAC,EAAE,CAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC;YAED,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,UAAU,EAAE,CAAC;gBACrC,sEAAsE;gBACtE,IAAI,KAAK,GACP,EAAE,KAAK,YAAY,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI;oBAC9C,CAAC,CAAC,IAAI,CAAC,YAAY;oBACnB,CAAC,CAAC,UAAU,CAAC,YAAY;wBACvB,CAAC,CAAC,UAAU,CAAC,YAAY,EAAE;wBAC3B,CAAC,CAAC,EAAE,CAAC;gBAEX,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;oBACjC,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;oBACrC,KAAK,GAAI,UAAU,CAAC,OAAoC,CACtD,KAAK,EACL,KAAY,EACZ,GAAG,CACJ,CAAC;oBACF,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC,EAAE,CAAC;oBAC7B,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC;oBAC/B,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,SAAS,CAAC;gBACxC,CAAC;gBAED,MAAM,IAAI,CAAC,SAAS,CAClB,KAAK,EACL,KAAK,CAAC,WAAW,EACjB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,aAAa,EACnB,EAAE,CACH,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,sDAAsD;YACtD,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IAAI,YAAY,GAAG,CAAC,CAAC;YAErB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;gBACrC,MAAO,UAAU,CAAC,OAAqC,CACrD,KAAY,EACZ,GAAG,CACJ,CAAC;gBACF,WAAW,GAAG,KAAK,CAAC,EAAE,CAAC;gBACvB,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC;YAC3B,CAAC;YAED,MAAM,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;QAClD,CAAC;QAED,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;IAEO,YAAY,CAAC,KAAgB;QACnC,OAAO;YACL,KAAK,EAAE;gBACL,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC;gBACnB,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;aACpE;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI;gBACxC,OAAO,EAAE,CAAC;aACX;YACD,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;SAC3B,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,SAAS,CACrB,KAAc,EACd,WAAmB,EACnB,YAAoB,EACpB,aAAsB,EACtB,YAAqB;QAErB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QACrD,MAAM,IAAI,GAAG,MAAM,KAAK,CACtB,GAAG,OAAO,oDAAoD,EAC9D;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC3D,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;gBAC5B,YAAY,EAAE,YAAY,IAAI,EAAE;gBAChC,KAAK;gBACL,WAAW;gBACX,YAAY;gBACZ,aAAa;aACd,CAAC;SACH,CACF,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACrE,CAAC;IAEO,KAAK,CAAC,SAAS,CACrB,WAAmB,EACnB,YAAoB;QAEpB,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QACrD,MAAM,IAAI,GAAG,MAAM,KAAK,CACtB,GAAG,OAAO,oDAAoD,EAC9D;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC3D,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,IAAI;gBAC5B,WAAW;gBACX,YAAY;aACb,CAAC;SACH,CACF,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACrE,CAAC;IAEO,KAAK,CAAC,EAAU;QACtB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAClC,OAAO,EACP,GAAG,EAAE;gBACH,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,OAAO,EAAE,CAAC;YACZ,CAAC,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,UAAU,sBAAsB,CAAC,MAA8B;IACnE,OAAO,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;AACtC,CAAC"}
|
|
1
|
+
{"version":3,"file":"projection-runner.js","sourceRoot":"","sources":["../src/projection-runner.ts"],"names":[],"mappings":"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"}
|
package/dist/worker.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAmBH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAuBvD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAEzD;
|
|
1
|
+
{"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAmBH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAuBvD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAEzD;AA+lBD;;GAEG;AACH,eAAe,YAAY,CAAC"}
|