@opendatalabs/connect 0.12.2 → 0.13.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.
@@ -0,0 +1,146 @@
1
+ export declare const TELEMETRY_PRODUCERS: readonly ["cli", "data_connect", "personal_server"];
2
+ export type TelemetryProducer = (typeof TELEMETRY_PRODUCERS)[number];
3
+ export declare const TELEMETRY_ERROR_CLASSES: readonly ["auth_failed", "personal_server_unavailable", "network_error", "timeout", "runtime_error", "unknown"];
4
+ export type TelemetryErrorClass = (typeof TELEMETRY_ERROR_CLASSES)[number];
5
+ export declare const TELEMETRY_CANCELLATION_REASONS: readonly ["user_aborted", "abandoned", "timeout"];
6
+ export type TelemetryCancellationReason = (typeof TELEMETRY_CANCELLATION_REASONS)[number];
7
+ export declare const TELEMETRY_INTERACTION_KINDS: readonly ["login", "otp", "captcha", "manual_action"];
8
+ export type TelemetryInteractionKind = (typeof TELEMETRY_INTERACTION_KINDS)[number];
9
+ export declare const TELEMETRY_SYNC_SKIP_REASONS: readonly ["server_unavailable", "not_requested"];
10
+ export type TelemetrySyncSkipReason = (typeof TELEMETRY_SYNC_SKIP_REASONS)[number];
11
+ export declare const TELEMETRY_OS_VALUES: readonly ["linux", "macos", "windows"];
12
+ export type TelemetryOs = (typeof TELEMETRY_OS_VALUES)[number];
13
+ export declare const TELEMETRY_ARCH_VALUES: readonly ["x86_64", "arm64"];
14
+ export type TelemetryArch = (typeof TELEMETRY_ARCH_VALUES)[number];
15
+ export interface TelemetryIdentity {
16
+ eventId: string;
17
+ eventVersion: number;
18
+ }
19
+ export interface TelemetryTime {
20
+ occurredAt: string;
21
+ durationMs?: number;
22
+ }
23
+ export interface TelemetryAttribution {
24
+ producer: TelemetryProducer;
25
+ installId: string;
26
+ appSessionId?: string;
27
+ }
28
+ export interface TelemetryContext {
29
+ hostPlatform: string;
30
+ os: TelemetryOs;
31
+ arch: TelemetryArch;
32
+ producerVersion: string;
33
+ connectorVersion?: string;
34
+ authMode?: string;
35
+ }
36
+ export type TelemetryCorrelation = {
37
+ scope: "host";
38
+ hostRunId: string;
39
+ } | {
40
+ scope: "collection";
41
+ hostRunId: string;
42
+ collectionRunId: string;
43
+ source: string;
44
+ } | {
45
+ scope: "sync";
46
+ hostRunId: string;
47
+ syncRunId: string;
48
+ source: string;
49
+ collectionRunId?: string;
50
+ } | {
51
+ scope: "grant";
52
+ hostRunId: string;
53
+ grantFlowId: string;
54
+ };
55
+ export type TelemetryKind = {
56
+ lifecycle: "host";
57
+ phase: "started";
58
+ } | {
59
+ lifecycle: "host";
60
+ phase: "terminal";
61
+ outcome: "success";
62
+ } | {
63
+ lifecycle: "host";
64
+ phase: "terminal";
65
+ outcome: "failure";
66
+ errorClass: TelemetryErrorClass;
67
+ } | {
68
+ lifecycle: "collection";
69
+ phase: "started";
70
+ } | {
71
+ lifecycle: "collection";
72
+ phase: "needs_input";
73
+ interactionKind?: TelemetryInteractionKind;
74
+ } | {
75
+ lifecycle: "collection";
76
+ phase: "terminal";
77
+ outcome: "success";
78
+ recordCount?: number;
79
+ } | {
80
+ lifecycle: "collection";
81
+ phase: "terminal";
82
+ outcome: "failure";
83
+ errorClass: TelemetryErrorClass;
84
+ } | {
85
+ lifecycle: "collection";
86
+ phase: "terminal";
87
+ outcome: "cancelled";
88
+ reason?: TelemetryCancellationReason;
89
+ } | {
90
+ lifecycle: "sync";
91
+ phase: "started";
92
+ } | {
93
+ lifecycle: "sync";
94
+ phase: "terminal";
95
+ outcome: "success";
96
+ storedScopeCount: number;
97
+ failedScopeCount: number;
98
+ } | {
99
+ lifecycle: "sync";
100
+ phase: "terminal";
101
+ outcome: "failure";
102
+ errorClass: TelemetryErrorClass;
103
+ } | {
104
+ lifecycle: "sync";
105
+ phase: "skipped";
106
+ reason: TelemetrySyncSkipReason;
107
+ } | {
108
+ lifecycle: "grant";
109
+ phase: "started";
110
+ } | {
111
+ lifecycle: "grant";
112
+ phase: "terminal";
113
+ outcome: "approved";
114
+ } | {
115
+ lifecycle: "grant";
116
+ phase: "terminal";
117
+ outcome: "denied";
118
+ } | {
119
+ lifecycle: "grant";
120
+ phase: "terminal";
121
+ outcome: "expired";
122
+ } | {
123
+ lifecycle: "grant";
124
+ phase: "terminal";
125
+ outcome: "failure";
126
+ errorClass: TelemetryErrorClass;
127
+ };
128
+ export interface TelemetryEvent {
129
+ identity: TelemetryIdentity;
130
+ time: TelemetryTime;
131
+ attribution: TelemetryAttribution;
132
+ context: TelemetryContext;
133
+ correlation: TelemetryCorrelation;
134
+ kind: TelemetryKind;
135
+ debug?: string;
136
+ extensions?: Record<string, unknown>;
137
+ }
138
+ export interface TelemetryBatch {
139
+ batchId: string;
140
+ sentAt: string;
141
+ events: TelemetryEvent[];
142
+ }
143
+ export declare const TELEMETRY_ENDPOINT = "https://telemetry.opendatalabs.com/v1/telemetry/events";
144
+ export declare const TELEMETRY_EVENT_VERSION = 1;
145
+ export declare const TELEMETRY_PRODUCER_NAME: TelemetryProducer;
146
+ //# sourceMappingURL=telemetry-contract.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-contract.d.ts","sourceRoot":"","sources":["../../src/cli/telemetry-contract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
1
+ // ---------------------------------------------------------------------------
2
+ // Canonical telemetry contract — copied from context-gateway.
3
+ //
4
+ // SOURCE OF TRUTH:
5
+ // https://github.com/vana-com/context-gateway/blob/main/packages/contracts/src/telemetry.ts
6
+ // https://github.com/vana-com/context-gateway/blob/main/packages/contracts/TELEMETRY.md
7
+ //
8
+ // Context-gateway is a private monorepo, so this file is manually synced
9
+ // rather than imported from npm. When the canonical contract changes, this
10
+ // file MUST be updated to match. The server validates events against its
11
+ // own copy; a mismatch will cause events from this client to be rejected.
12
+ //
13
+ // See TELEMETRY.md in context-gateway for the state machine and the rollup
14
+ // rules. All type definitions below mirror the upstream contract exactly.
15
+ // ---------------------------------------------------------------------------
16
+ // ── Producers ───────────────────────────────────────────────────────────────
17
+ export const TELEMETRY_PRODUCERS = [
18
+ "cli",
19
+ "data_connect",
20
+ "personal_server",
21
+ ];
22
+ // ── Error classes ───────────────────────────────────────────────────────────
23
+ export const TELEMETRY_ERROR_CLASSES = [
24
+ "auth_failed",
25
+ "personal_server_unavailable",
26
+ "network_error",
27
+ "timeout",
28
+ "runtime_error",
29
+ "unknown",
30
+ ];
31
+ // ── Cancellation reasons ────────────────────────────────────────────────────
32
+ export const TELEMETRY_CANCELLATION_REASONS = [
33
+ "user_aborted",
34
+ "abandoned",
35
+ "timeout",
36
+ ];
37
+ // ── Interaction kinds ───────────────────────────────────────────────────────
38
+ export const TELEMETRY_INTERACTION_KINDS = [
39
+ "login",
40
+ "otp",
41
+ "captcha",
42
+ "manual_action",
43
+ ];
44
+ // ── Sync skip reasons ───────────────────────────────────────────────────────
45
+ export const TELEMETRY_SYNC_SKIP_REASONS = [
46
+ "server_unavailable",
47
+ "not_requested",
48
+ ];
49
+ // ── Host context enums ──────────────────────────────────────────────────────
50
+ export const TELEMETRY_OS_VALUES = ["linux", "macos", "windows"];
51
+ export const TELEMETRY_ARCH_VALUES = ["x86_64", "arm64"];
52
+ // ── Endpoint ────────────────────────────────────────────────────────────────
53
+ export const TELEMETRY_ENDPOINT = "https://telemetry.opendatalabs.com/v1/telemetry/events";
54
+ export const TELEMETRY_EVENT_VERSION = 1;
55
+ export const TELEMETRY_PRODUCER_NAME = "cli";
56
+ //# sourceMappingURL=telemetry-contract.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-contract.js","sourceRoot":"","sources":["../../src/cli/telemetry-contract.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,8DAA8D;AAC9D,EAAE;AACF,mBAAmB;AACnB,8FAA8F;AAC9F,0FAA0F;AAC1F,EAAE;AACF,yEAAyE;AACzE,2EAA2E;AAC3E,yEAAyE;AACzE,0EAA0E;AAC1E,EAAE;AACF,2EAA2E;AAC3E,0EAA0E;AAC1E,8EAA8E;AAE9E,+EAA+E;AAE/E,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,KAAK;IACL,cAAc;IACd,iBAAiB;CACT,CAAC;AAGX,+EAA+E;AAE/E,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,aAAa;IACb,6BAA6B;IAC7B,eAAe;IACf,SAAS;IACT,eAAe;IACf,SAAS;CACD,CAAC;AAGX,+EAA+E;AAE/E,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,cAAc;IACd,WAAW;IACX,SAAS;CACD,CAAC;AAIX,+EAA+E;AAE/E,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,OAAO;IACP,KAAK;IACL,SAAS;IACT,eAAe;CACP,CAAC;AAIX,+EAA+E;AAE/E,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,oBAAoB;IACpB,eAAe;CACP,CAAC;AAIX,+EAA+E;AAE/E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAU,CAAC;AAG1E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAU,CAAC;AA8IlE,+EAA+E;AAE/E,MAAM,CAAC,MAAM,kBAAkB,GAC7B,wDAAwD,CAAC;AAC3D,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAC;AACzC,MAAM,CAAC,MAAM,uBAAuB,GAAsB,KAAK,CAAC"}
@@ -1,6 +1,5 @@
1
1
  import type { CliChannel, CliEvent, CliInstallMethod, CliOutcome } from "../core/cli-types.js";
2
2
  type TelemetryReason = "default" | "config_enabled" | "config_disabled" | "env_disabled" | "env_debug" | "local_only";
3
- type TelemetryMetadata = Record<string, string | number | boolean | null>;
4
3
  export interface TelemetryCommandContext {
5
4
  command: string;
6
5
  subcommand?: string;
@@ -25,44 +24,26 @@ export interface TelemetryStatus {
25
24
  endpoint: string;
26
25
  queuedBatches: number;
27
26
  }
28
- interface TelemetryStoredEvent {
29
- eventId: string;
30
- eventVersion: number;
31
- timestamp: string;
32
- installId: string;
33
- runId: string;
34
- eventName: string;
35
- command: string;
36
- subcommand: string | null;
37
- source: string | null;
38
- connectorVersion: string | null;
39
- authMode: string | null;
40
- platform: string;
41
- os: string;
42
- arch: string;
43
- cliVersion: string;
44
- channel: CliChannel;
45
- installMethod: CliInstallMethod;
46
- ci: boolean;
47
- agent: boolean;
48
- interactive: boolean;
49
- outcome: string | null;
50
- errorClass: string | null;
51
- durationMs: number | null;
52
- storedScopeCount: number | null;
53
- failedScopeCount: number | null;
54
- metadata: TelemetryMetadata | null;
55
- }
56
27
  interface CommandResult {
57
28
  exitCode: number;
58
29
  outcome?: string | null;
59
30
  errorClass?: string | null;
60
31
  }
61
32
  export interface CliTelemetrySession {
33
+ /** Translate a CLI-native event into canonical telemetry events. */
62
34
  trackCliEvent(event: CliEvent | CliOutcome): void;
63
- trackCustomEvent(eventName: string, patch?: Partial<TelemetryStoredEvent>): void;
35
+ /**
36
+ * No-op shim for call sites that emitted ad-hoc custom events. The
37
+ * canonical contract does not support arbitrary event names; the
38
+ * intended way to carry producer-specific detail is via
39
+ * `extensions` on host events, already handled by the session.
40
+ */
41
+ trackCustomEvent(eventName: string, patch?: Record<string, unknown>): void;
42
+ /** Mark the overall command result and emit host/collection terminals. */
64
43
  markCommandResult(result: CommandResult): void;
44
+ /** Persist queued events to the outbox. */
65
45
  persist(): Promise<void>;
46
+ /** Attempt to flush outbox files to the server. */
66
47
  flush(): Promise<void>;
67
48
  }
68
49
  export declare function flushTelemetryOutbox(): Promise<void>;
@@ -70,7 +51,10 @@ export declare function getTelemetryStatus(): Promise<TelemetryStatus>;
70
51
  export declare function setTelemetryEnabled(enabled: boolean): Promise<void>;
71
52
  export declare function setActiveTelemetrySession(session: CliTelemetrySession | null): void;
72
53
  export declare function getActiveTelemetrySession(): CliTelemetrySession | null;
73
- export declare function trackActiveTelemetryEvent(eventName: string, patch?: Partial<TelemetryStoredEvent>): void;
74
54
  export declare function createCliTelemetrySession(context: TelemetryCommandContext): Promise<CliTelemetrySession>;
55
+ /** @deprecated trackCustomEvent on the session is a no-op in the canonical
56
+ * model. This top-level helper is also a no-op — kept only to satisfy
57
+ * existing call sites. */
58
+ export declare function trackActiveTelemetryEvent(_eventName?: string, _patch?: unknown): void;
75
59
  export {};
76
60
  //# sourceMappingURL=telemetry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/cli/telemetry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../src/cli/telemetry.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,UAAU,EACV,QAAQ,EACR,gBAAgB,EAChB,UAAU,EACX,MAAM,sBAAsB,CAAC;AA6B9B,KAAK,eAAe,GAChB,SAAS,GACT,gBAAgB,GAChB,iBAAiB,GACjB,cAAc,GACd,WAAW,GACX,YAAY,CAAC;AAEjB,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,UAAU,CAAC;IACpB,aAAa,EAAE,gBAAgB,CAAC;IAChC,OAAO,EAAE;QACP,IAAI,EAAE,OAAO,CAAC;QACd,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,EAAE,OAAO,CAAC;QACf,MAAM,EAAE,OAAO,CAAC;QAChB,GAAG,EAAE,OAAO,CAAC;KACd,CAAC;IACF,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;IACtC,MAAM,EAAE,eAAe,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;CACvB;AAWD,UAAU,aAAa;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAClC,oEAAoE;IACpE,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,UAAU,GAAG,IAAI,CAAC;IAClD;;;;;OAKG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC3E,0EAA0E;IAC1E,iBAAiB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC;IAC/C,2CAA2C;IAC3C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACzB,mDAAmD;IACnD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAuSD,wBAAsB,oBAAoB,kBA8BzC;AAID,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,eAAe,CAAC,CAUnE;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,OAAO,iBAEzD;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI,QAE5E;AAED,wBAAgB,yBAAyB,+BAExC;AAID,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,mBAAmB,CAAC,CA2V9B;AAID;;2BAE2B;AAC3B,wBAAgB,yBAAyB,CACvC,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,OAAO,QAGjB"}
@@ -3,13 +3,14 @@ import fs from "node:fs/promises";
3
3
  import os from "node:os";
4
4
  import path from "node:path";
5
5
  import { getTelemetryOutboxDir, readCliConfig, updateCliConfig, } from "../core/index.js";
6
- const TELEMETRY_ENDPOINT = "https://telemetry.opendatalabs.com/v1/cli/events";
6
+ import { TELEMETRY_ENDPOINT, TELEMETRY_EVENT_VERSION, TELEMETRY_PRODUCER_NAME, } from "./telemetry-contract.js";
7
+ // ── Config ──────────────────────────────────────────────────────────────────
7
8
  const MAX_EVENTS_PER_BATCH = 100;
8
9
  const MAX_BATCH_BYTES = 64 * 1024;
9
10
  const MAX_FILES_PER_FLUSH = 10;
10
11
  const FLUSH_TIMEOUT_MS = 1500;
11
- const EVENT_VERSION = 1;
12
12
  let activeSession = null;
13
+ // ── Helpers ─────────────────────────────────────────────────────────────────
13
14
  function randomId(prefix) {
14
15
  return `${prefix}_${crypto.randomUUID()}`;
15
16
  }
@@ -19,177 +20,74 @@ function nowIso() {
19
20
  function getEndpoint() {
20
21
  return process.env.VANA_TELEMETRY_URL?.trim() || TELEMETRY_ENDPOINT;
21
22
  }
22
- function getInteractive(options) {
23
- return Boolean(process.stdin.isTTY && process.stdout.isTTY && !options.noInput);
23
+ function detectOs() {
24
+ const platform = process.platform;
25
+ if (platform === "linux")
26
+ return "linux";
27
+ if (platform === "darwin")
28
+ return "macos";
29
+ if (platform === "win32")
30
+ return "windows";
31
+ return "linux"; // fallback
24
32
  }
25
- function sanitizeMetadata(metadata) {
26
- if (!metadata) {
27
- return null;
28
- }
29
- return Object.fromEntries(Object.entries(metadata).slice(0, 16));
33
+ function detectArch() {
34
+ const arch = os.arch();
35
+ if (arch === "arm64")
36
+ return "arm64";
37
+ return "x86_64";
30
38
  }
31
- function countScopeResults(scopeResults) {
32
- return {
33
- storedScopeCount: scopeResults?.filter((item) => item.status === "stored").length ?? null,
34
- failedScopeCount: scopeResults?.filter((item) => item.status === "failed").length ?? null,
35
- };
39
+ function makeHostPlatform(osName, arch) {
40
+ return `${osName}-${arch}`;
36
41
  }
37
- function classifyError(reason) {
38
- const value = (reason ?? "").toLowerCase();
39
- if (!value)
40
- return null;
41
- if (value.includes("setup_declined"))
42
- return "setup_declined";
43
- if (value.includes("setup_required"))
44
- return "setup_required";
45
- if (value.includes("source_required"))
46
- return "source_required";
47
- if (value.includes("prompt_cancelled") || value.includes("cancelled"))
48
- return "prompt_cancelled";
49
- if (value.includes("needs_input") ||
50
- value.includes("needs input") ||
51
- value.includes("input required") ||
52
- value.includes("manual step"))
53
- return "needs_input";
54
- if (value.includes("auth expired"))
55
- return "auth_expired";
56
- if (value.includes("auth"))
57
- return "auth_failed";
58
- if (value.includes("legacy"))
59
- return "legacy_auth";
60
- if (value.includes("personal_server_unavailable") ||
61
- value.includes("personal server unavailable"))
42
+ // Classify a free-form CLI error/reason string into a canonical error class.
43
+ // The CLI's own classification produced richer values (e.g. setup_required,
44
+ // legacy_auth); we collapse these into the canonical whitelist here.
45
+ function classifyCanonicalError(value) {
46
+ const normalized = (value ?? "").toLowerCase();
47
+ if (!normalized)
48
+ return "unknown";
49
+ if (normalized.includes("personal_server_unavailable") ||
50
+ normalized.includes("personal server")) {
62
51
  return "personal_server_unavailable";
63
- if (value.includes("timeout") || value.includes("timed out"))
52
+ }
53
+ if (normalized.includes("auth") || normalized.includes("legacy")) {
54
+ return "auth_failed";
55
+ }
56
+ if (normalized.includes("timeout") || normalized.includes("timed out")) {
64
57
  return "timeout";
65
- if (value.includes("network"))
58
+ }
59
+ if (normalized.includes("network")) {
66
60
  return "network_error";
67
- if (value.includes("ingest"))
68
- return "ingest_failed";
69
- if (value.includes("connector"))
70
- return "connector_unavailable";
71
- if (value.includes("runtime"))
61
+ }
62
+ if (normalized.includes("runtime") ||
63
+ normalized.includes("connector") ||
64
+ normalized.includes("unexpected") ||
65
+ normalized.includes("ingest_failed") ||
66
+ normalized.includes("setup_required") ||
67
+ normalized.includes("invalid_connector")) {
72
68
  return "runtime_error";
73
- return "unknown";
74
- }
75
- function classifyOutcomeStatus(outcome) {
76
- switch (outcome) {
77
- case "needs_input":
78
- return "needs_input";
79
- case "auth_failed":
80
- return "auth_failed";
81
- case "legacy_auth":
82
- return "legacy_auth";
83
- case "personal_server_unavailable":
84
- return "personal_server_unavailable";
85
- case "ingest_failed":
86
- return "ingest_failed";
87
- case "connector_unavailable":
88
- return "connector_unavailable";
89
- case "runtime_error":
90
- return "runtime_error";
91
- case "setup_required":
92
- return "setup_required";
93
- case "setup_declined":
94
- return "setup_declined";
95
- case "source_required":
96
- return "source_required";
97
- case "prompt_cancelled":
98
- return "prompt_cancelled";
99
- case "invalid_connector":
100
- return "invalid_connector";
101
- case "unexpected_internal_error":
102
- return "unexpected_internal_error";
103
- default:
104
- return null;
105
69
  }
70
+ return "unknown";
106
71
  }
107
- function resolveErrorClass(...candidates) {
108
- const preferred = candidates.find((candidate) => Boolean(candidate && candidate !== "unknown"));
109
- if (preferred) {
110
- return preferred;
111
- }
112
- return (candidates.find((candidate) => Boolean(candidate)) ??
113
- null);
114
- }
115
- function mapCliEventToTelemetry(event) {
116
- switch (event.type) {
117
- case "setup-check":
118
- return {
119
- eventName: "runtime_check_completed",
120
- patch: {
121
- metadata: sanitizeMetadata({ runtime: event.runtime ?? null }),
122
- },
123
- };
124
- case "setup-complete":
125
- return {
126
- eventName: "runtime_install_completed",
127
- patch: {
128
- metadata: sanitizeMetadata({ runtime: event.runtime ?? null }),
129
- },
130
- };
131
- case "connector-resolved":
132
- return { eventName: "connector_resolved" };
133
- case "needs-input":
134
- return {
135
- eventName: "input_required",
136
- patch: {
137
- errorClass: "needs_input",
138
- metadata: sanitizeMetadata({ fieldCount: event.fields?.length ?? 0 }),
139
- },
140
- };
141
- case "legacy-auth":
142
- return {
143
- eventName: "legacy_auth_required",
144
- patch: { errorClass: "legacy_auth" },
145
- };
146
- case "collection-complete":
147
- return { eventName: "collection_completed" };
148
- case "runtime-error":
149
- return {
150
- eventName: "collection_failed",
151
- patch: { errorClass: classifyError(event.message) ?? "runtime_error" },
152
- };
153
- case "ingest-started":
154
- return { eventName: "ingest_started" };
155
- case "ingest-complete":
156
- return {
157
- eventName: "ingest_completed",
158
- patch: countScopeResults(event.scopeResults),
159
- };
160
- case "ingest-partial":
161
- return {
162
- eventName: "ingest_partial",
163
- patch: {
164
- ...countScopeResults(event.scopeResults),
165
- errorClass: "ingest_failed",
166
- },
167
- };
168
- case "ingest-failed":
169
- return {
170
- eventName: "ingest_failed",
171
- patch: {
172
- ...countScopeResults(event.scopeResults),
173
- errorClass: "ingest_failed",
174
- },
175
- };
176
- case "ingest-skipped":
177
- return {
178
- eventName: "ingest_skipped",
179
- patch: {
180
- errorClass: classifyError(event.reason) ?? null,
181
- metadata: sanitizeMetadata({ reason: event.reason ?? null }),
182
- },
183
- };
184
- case "outcome":
185
- case "progress-update":
186
- case "status-update":
187
- case "headed-required":
188
- case "jpeg":
189
- return null;
190
- }
191
- return null;
72
+ // Map a CLI interaction indicator to a canonical InteractionKind.
73
+ function mapInteractionKind(value) {
74
+ const normalized = (value ?? "").toLowerCase();
75
+ if (!normalized)
76
+ return undefined;
77
+ if (normalized.includes("otp"))
78
+ return "otp";
79
+ if (normalized.includes("captcha"))
80
+ return "captcha";
81
+ if (normalized.includes("login") || normalized.includes("credential"))
82
+ return "login";
83
+ return "manual_action";
192
84
  }
85
+ // ── Outbox (file-backed) ────────────────────────────────────────────────────
86
+ //
87
+ // Events are batched into TelemetryBatch envelopes, written to individual
88
+ // JSON files in getTelemetryOutboxDir(), and flushed on command exit and on
89
+ // subsequent runs (retry across restarts). This survives crashes — the
90
+ // pattern is worth preserving for the desktop app too.
193
91
  async function ensureOutboxDir() {
194
92
  await fs.mkdir(getTelemetryOutboxDir(), { recursive: true });
195
93
  }
@@ -272,52 +170,64 @@ async function resolveTelemetryState(localOnly = false) {
272
170
  queuedBatches,
273
171
  };
274
172
  }
173
+ // ── Event factory ───────────────────────────────────────────────────────────
174
+ //
175
+ // Builds canonical TelemetryEvent values with identity + time + attribution +
176
+ // context auto-populated. The caller supplies correlation + kind.
275
177
  function createEventFactory(context, state) {
276
- const runId = randomId("run");
277
- const base = {
278
- installId: state.installId,
279
- runId,
280
- command: context.command,
281
- subcommand: context.subcommand ?? null,
282
- source: context.source ?? null,
283
- connectorVersion: null,
284
- authMode: null,
285
- platform: `${process.platform}-${os.arch()}`,
286
- os: process.platform,
287
- arch: os.arch(),
288
- cliVersion: context.cliVersion,
289
- channel: context.channel,
290
- installMethod: context.installMethod,
291
- ci: Boolean(process.env.CI),
292
- agent: Boolean(process.env.AGENT),
293
- interactive: getInteractive(context.options),
178
+ const hostRunId = randomId("host");
179
+ const osName = detectOs();
180
+ const arch = detectArch();
181
+ const hostPlatform = makeHostPlatform(osName, arch);
182
+ const baseContext = {
183
+ hostPlatform,
184
+ os: osName,
185
+ arch,
186
+ producerVersion: context.cliVersion,
187
+ };
188
+ return {
189
+ hostRunId,
190
+ build(args) {
191
+ return {
192
+ identity: {
193
+ eventId: randomId("evt"),
194
+ eventVersion: TELEMETRY_EVENT_VERSION,
195
+ },
196
+ time: {
197
+ occurredAt: nowIso(),
198
+ ...(args.durationMs !== undefined
199
+ ? { durationMs: args.durationMs }
200
+ : {}),
201
+ },
202
+ attribution: {
203
+ producer: TELEMETRY_PRODUCER_NAME,
204
+ installId: state.installId,
205
+ },
206
+ context: {
207
+ ...baseContext,
208
+ ...(args.connectorVersion
209
+ ? { connectorVersion: args.connectorVersion }
210
+ : {}),
211
+ ...(args.authMode ? { authMode: args.authMode } : {}),
212
+ },
213
+ correlation: args.correlation,
214
+ kind: args.kind,
215
+ ...(args.debug ? { debug: args.debug } : {}),
216
+ ...(args.extensions ? { extensions: args.extensions } : {}),
217
+ };
218
+ },
294
219
  };
295
- return (eventName, patch = {}) => ({
296
- eventId: randomId("evt"),
297
- eventVersion: EVENT_VERSION,
298
- timestamp: nowIso(),
299
- eventName,
300
- ...base,
301
- ...patch,
302
- outcome: patch.outcome ?? null,
303
- errorClass: patch.errorClass ?? null,
304
- durationMs: patch.durationMs ?? null,
305
- storedScopeCount: patch.storedScopeCount ?? null,
306
- failedScopeCount: patch.failedScopeCount ?? null,
307
- metadata: sanitizeMetadata(patch.metadata),
308
- });
309
220
  }
310
- function splitIntoEnvelopes(events, cliVersion) {
221
+ // ── Batch serialization ─────────────────────────────────────────────────────
222
+ function splitIntoEnvelopes(events) {
311
223
  const envelopes = [];
312
224
  let current = [];
313
225
  const flushCurrent = () => {
314
- if (current.length === 0) {
226
+ if (current.length === 0)
315
227
  return;
316
- }
317
228
  envelopes.push({
318
229
  batchId: randomId("batch"),
319
230
  sentAt: nowIso(),
320
- client: { name: "vana-cli", version: cliVersion },
321
231
  events: current,
322
232
  });
323
233
  current = [];
@@ -327,7 +237,6 @@ function splitIntoEnvelopes(events, cliVersion) {
327
237
  const candidate = {
328
238
  batchId: "batch_candidate",
329
239
  sentAt: nowIso(),
330
- client: { name: "vana-cli", version: cliVersion },
331
240
  events: current,
332
241
  };
333
242
  const tooManyEvents = current.length > MAX_EVENTS_PER_BATCH;
@@ -335,25 +244,23 @@ function splitIntoEnvelopes(events, cliVersion) {
335
244
  if (tooManyEvents || tooLarge) {
336
245
  const overflow = current.pop();
337
246
  flushCurrent();
338
- if (overflow) {
247
+ if (overflow)
339
248
  current.push(overflow);
340
- }
341
249
  }
342
250
  }
343
251
  flushCurrent();
344
252
  return envelopes;
345
253
  }
346
- async function writeEnvelope(envelope, runId) {
254
+ async function writeEnvelope(envelope, hostRunId) {
347
255
  await ensureOutboxDir();
348
- const filename = `${Date.now()}-${process.pid}-${runId}-${crypto.randomUUID()}.json`;
256
+ const filename = `${Date.now()}-${process.pid}-${hostRunId}-${crypto.randomUUID()}.json`;
349
257
  const outboxPath = path.join(getTelemetryOutboxDir(), filename);
350
258
  await fs.writeFile(outboxPath, `${JSON.stringify(envelope)}\n`, "utf8");
351
259
  }
352
260
  export async function flushTelemetryOutbox() {
353
261
  const state = await resolveTelemetryState();
354
- if (!state.enabled || state.mode !== "normal") {
262
+ if (!state.enabled || state.mode !== "normal")
355
263
  return;
356
- }
357
264
  const files = (await listOutboxFiles()).slice(0, MAX_FILES_PER_FLUSH);
358
265
  for (const filePath of files) {
359
266
  let contents;
@@ -368,7 +275,7 @@ export async function flushTelemetryOutbox() {
368
275
  method: "POST",
369
276
  headers: {
370
277
  "Content-Type": "application/json",
371
- "User-Agent": `vana-cli/${JSON.parse(contents).client?.version ?? "unknown"}`,
278
+ "User-Agent": `vana-cli/unknown`,
372
279
  },
373
280
  body: contents,
374
281
  signal: AbortSignal.timeout(FLUSH_TIMEOUT_MS),
@@ -382,6 +289,7 @@ export async function flushTelemetryOutbox() {
382
289
  }
383
290
  }
384
291
  }
292
+ // ── Public helpers ──────────────────────────────────────────────────────────
385
293
  export async function getTelemetryStatus() {
386
294
  const state = await resolveTelemetryState();
387
295
  return {
@@ -402,93 +310,312 @@ export function setActiveTelemetrySession(session) {
402
310
  export function getActiveTelemetrySession() {
403
311
  return activeSession;
404
312
  }
405
- export function trackActiveTelemetryEvent(eventName, patch) {
406
- activeSession?.trackCustomEvent(eventName, patch);
407
- }
313
+ // ── Session ─────────────────────────────────────────────────────────────────
408
314
  export async function createCliTelemetrySession(context) {
409
315
  const state = await resolveTelemetryState(Boolean(context.localOnly));
410
- const buildEvent = createEventFactory(context, state);
316
+ const factory = createEventFactory(context, state);
411
317
  const startedAt = Date.now();
412
318
  const events = [];
413
- let latestOutcome = null;
414
- let latestErrorClass = null;
319
+ // Per-session state. A single CLI invocation is ONE host run, with zero
320
+ // or more collection runs and sync attempts nested within.
321
+ const hostRunId = factory.hostRunId;
322
+ let collectionRunId = null;
323
+ let collectionSource = context.source ?? null;
324
+ let connectorVersion;
325
+ let authMode;
326
+ let syncRunId = null;
327
+ let latestOutcomeRaw = null;
415
328
  let persisted = false;
416
- const push = (eventName, patch = {}) => {
417
- if (!state.enabled && state.mode !== "debug") {
329
+ // Host-level extensions captured from the command context. These are
330
+ // producer-specific details that don't belong in the canonical Kind.
331
+ const hostExtensions = {
332
+ command: context.command,
333
+ subcommand: context.subcommand ?? null,
334
+ channel: context.channel,
335
+ installMethod: context.installMethod,
336
+ isCi: Boolean(process.env.CI),
337
+ isAgent: Boolean(process.env.AGENT),
338
+ isInteractive: Boolean(process.stdin.isTTY && process.stdout.isTTY && !context.options.noInput),
339
+ };
340
+ const push = (event) => {
341
+ if (!state.enabled && state.mode !== "debug")
418
342
  return;
419
- }
420
- const next = buildEvent(eventName, patch);
421
- events.push(next);
343
+ events.push(event);
344
+ };
345
+ // Emit host/started immediately.
346
+ push(factory.build({
347
+ correlation: { scope: "host", hostRunId },
348
+ kind: { lifecycle: "host", phase: "started" },
349
+ extensions: hostExtensions,
350
+ }));
351
+ // Helper to lazily start a collection run the first time we see collection activity.
352
+ const ensureCollectionStarted = () => {
353
+ if (collectionRunId)
354
+ return;
355
+ if (!collectionSource)
356
+ return;
357
+ collectionRunId = randomId("col");
358
+ push(factory.build({
359
+ correlation: {
360
+ scope: "collection",
361
+ hostRunId,
362
+ collectionRunId,
363
+ source: collectionSource,
364
+ },
365
+ kind: { lifecycle: "collection", phase: "started" },
366
+ connectorVersion,
367
+ authMode,
368
+ }));
369
+ };
370
+ const emitCollectionEvent = (kind) => {
371
+ ensureCollectionStarted();
372
+ if (!collectionRunId || !collectionSource)
373
+ return;
374
+ push(factory.build({
375
+ correlation: {
376
+ scope: "collection",
377
+ hostRunId,
378
+ collectionRunId,
379
+ source: collectionSource,
380
+ },
381
+ kind,
382
+ connectorVersion,
383
+ }));
384
+ };
385
+ const ensureSyncRunId = () => {
386
+ if (!syncRunId)
387
+ syncRunId = randomId("sync");
388
+ return syncRunId;
389
+ };
390
+ const emitSyncEvent = (kind) => {
391
+ if (!collectionSource)
392
+ return;
393
+ push(factory.build({
394
+ correlation: {
395
+ scope: "sync",
396
+ hostRunId,
397
+ syncRunId: ensureSyncRunId(),
398
+ source: collectionSource,
399
+ ...(collectionRunId ? { collectionRunId } : {}),
400
+ },
401
+ kind,
402
+ }));
403
+ };
404
+ const countScopeResults = (scopeResults) => {
405
+ const stored = scopeResults?.filter((s) => s.status === "stored").length ?? 0;
406
+ const failed = scopeResults?.filter((s) => s.status === "failed").length ?? 0;
407
+ return { stored, failed };
422
408
  };
423
- push("command_started", {
424
- metadata: sanitizeMetadata({
425
- launchMode: context.options.detach ? "detached" : "direct",
426
- inputMode: context.options.ipc
427
- ? "ipc"
428
- : context.options.noInput
429
- ? "no_input"
430
- : "interactive",
431
- }),
432
- });
433
409
  return {
434
410
  trackCliEvent(event) {
435
- const mapped = mapCliEventToTelemetry(event);
436
- if (!mapped) {
437
- if (event.type === "outcome") {
438
- latestOutcome = event.status ?? null;
439
- latestErrorClass = resolveErrorClass(classifyError(event.reason), classifyOutcomeStatus(event.status), latestErrorClass);
411
+ // Capture connector version / source / auth mode from any event that carries them.
412
+ if ("source" in event && event.source)
413
+ collectionSource = event.source;
414
+ switch (event.type) {
415
+ case "setup-check":
416
+ // Setup-phase events are producer-specific and don't fit the shared
417
+ // lifecycle. Attach them to the host extensions instead.
418
+ hostExtensions.runtimeCheckCompleted = true;
419
+ break;
420
+ case "setup-complete":
421
+ hostExtensions.runtimeInstallCompleted = true;
422
+ break;
423
+ case "connector-resolved":
424
+ hostExtensions.connectorResolved = true;
425
+ break;
426
+ case "needs-input":
427
+ emitCollectionEvent({
428
+ lifecycle: "collection",
429
+ phase: "needs_input",
430
+ ...(mapInteractionKind(event.fields?.join(",") ?? null)
431
+ ? {
432
+ interactionKind: mapInteractionKind(event.fields?.join(",") ?? null),
433
+ }
434
+ : {}),
435
+ });
436
+ break;
437
+ case "legacy-auth":
438
+ // Legacy auth is effectively a "needs manual action" interaction.
439
+ emitCollectionEvent({
440
+ lifecycle: "collection",
441
+ phase: "needs_input",
442
+ interactionKind: "manual_action",
443
+ });
444
+ break;
445
+ case "collection-complete":
446
+ emitCollectionEvent({
447
+ lifecycle: "collection",
448
+ phase: "terminal",
449
+ outcome: "success",
450
+ });
451
+ break;
452
+ case "runtime-error":
453
+ emitCollectionEvent({
454
+ lifecycle: "collection",
455
+ phase: "terminal",
456
+ outcome: "failure",
457
+ errorClass: classifyCanonicalError(event.message),
458
+ });
459
+ break;
460
+ case "ingest-started":
461
+ emitSyncEvent({ lifecycle: "sync", phase: "started" });
462
+ break;
463
+ case "ingest-complete": {
464
+ const { stored, failed } = countScopeResults(event.scopeResults);
465
+ emitSyncEvent({
466
+ lifecycle: "sync",
467
+ phase: "terminal",
468
+ outcome: "success",
469
+ storedScopeCount: stored,
470
+ failedScopeCount: failed,
471
+ });
472
+ syncRunId = null;
473
+ break;
440
474
  }
441
- return;
475
+ case "ingest-partial": {
476
+ // Partial in the CLI means "some scopes stored, some failed" — in
477
+ // the canonical contract that is `outcome: success` with
478
+ // failedScopeCount > 0. The UI derives the "partial" label.
479
+ const { stored, failed } = countScopeResults(event.scopeResults);
480
+ emitSyncEvent({
481
+ lifecycle: "sync",
482
+ phase: "terminal",
483
+ outcome: "success",
484
+ storedScopeCount: stored,
485
+ failedScopeCount: failed,
486
+ });
487
+ syncRunId = null;
488
+ break;
489
+ }
490
+ case "ingest-failed":
491
+ emitSyncEvent({
492
+ lifecycle: "sync",
493
+ phase: "terminal",
494
+ outcome: "failure",
495
+ errorClass: classifyCanonicalError("ingest_failed"),
496
+ });
497
+ syncRunId = null;
498
+ break;
499
+ case "ingest-skipped":
500
+ // Skip is standalone — no preceding `started` event.
501
+ syncRunId = randomId("sync"); // fresh ID for the standalone skip
502
+ emitSyncEvent({
503
+ lifecycle: "sync",
504
+ phase: "skipped",
505
+ reason: classifyCanonicalError(event.reason) ===
506
+ "personal_server_unavailable"
507
+ ? "server_unavailable"
508
+ : "not_requested",
509
+ });
510
+ syncRunId = null;
511
+ break;
512
+ case "outcome":
513
+ latestOutcomeRaw = event.status ?? null;
514
+ break;
515
+ case "progress-update":
516
+ case "status-update":
517
+ case "headed-required":
518
+ case "jpeg":
519
+ // Not modeled in canonical telemetry.
520
+ break;
442
521
  }
443
- push(mapped.eventName, {
444
- ...mapped.patch,
445
- source: event.source ?? context.source ?? null,
446
- });
447
- },
448
- trackCustomEvent(eventName, patch = {}) {
449
- push(eventName, patch);
450
522
  },
451
523
  markCommandResult(result) {
452
- latestOutcome = result.outcome ?? latestOutcome;
453
- latestErrorClass = resolveErrorClass(result.errorClass, latestErrorClass, classifyOutcomeStatus(latestOutcome));
454
524
  const durationMs = Date.now() - startedAt;
525
+ latestOutcomeRaw = result.outcome ?? latestOutcomeRaw;
526
+ // If a collection run was started but never terminated, close it here.
527
+ // If the CLI exited with a non-zero code, record collection_failed;
528
+ // otherwise let the lifecycle's own terminal stand.
529
+ if (collectionRunId && collectionSource) {
530
+ const hasCollectionTerminal = events.some((e) => e.correlation.scope === "collection" &&
531
+ e.correlation.collectionRunId === collectionRunId &&
532
+ e.kind.lifecycle === "collection" &&
533
+ e.kind.phase === "terminal");
534
+ if (!hasCollectionTerminal) {
535
+ if (result.exitCode === 0) {
536
+ push(factory.build({
537
+ correlation: {
538
+ scope: "collection",
539
+ hostRunId,
540
+ collectionRunId,
541
+ source: collectionSource,
542
+ },
543
+ kind: {
544
+ lifecycle: "collection",
545
+ phase: "terminal",
546
+ outcome: "success",
547
+ },
548
+ }));
549
+ }
550
+ else {
551
+ push(factory.build({
552
+ correlation: {
553
+ scope: "collection",
554
+ hostRunId,
555
+ collectionRunId,
556
+ source: collectionSource,
557
+ },
558
+ kind: {
559
+ lifecycle: "collection",
560
+ phase: "terminal",
561
+ outcome: "failure",
562
+ errorClass: classifyCanonicalError(result.errorClass ?? latestOutcomeRaw),
563
+ },
564
+ }));
565
+ }
566
+ }
567
+ }
568
+ // Host terminal.
455
569
  if (result.exitCode === 0) {
456
- push("command_completed", {
570
+ push(factory.build({
571
+ correlation: { scope: "host", hostRunId },
572
+ kind: { lifecycle: "host", phase: "terminal", outcome: "success" },
457
573
  durationMs,
458
- outcome: latestOutcome,
459
- errorClass: null,
460
- });
461
- return;
574
+ }));
575
+ }
576
+ else {
577
+ push(factory.build({
578
+ correlation: { scope: "host", hostRunId },
579
+ kind: {
580
+ lifecycle: "host",
581
+ phase: "terminal",
582
+ outcome: "failure",
583
+ errorClass: classifyCanonicalError(result.errorClass ?? latestOutcomeRaw),
584
+ },
585
+ durationMs,
586
+ }));
462
587
  }
463
- push("command_failed", {
464
- durationMs,
465
- outcome: latestOutcome,
466
- errorClass: latestErrorClass ?? "unknown",
467
- });
468
588
  },
469
589
  async persist() {
470
- if (persisted) {
590
+ if (persisted)
471
591
  return;
472
- }
473
592
  persisted = true;
474
593
  if (state.mode === "debug") {
475
- for (const envelope of splitIntoEnvelopes(events, context.cliVersion)) {
594
+ for (const envelope of splitIntoEnvelopes(events)) {
476
595
  process.stderr.write(`${JSON.stringify(envelope)}\n`);
477
596
  }
478
597
  return;
479
598
  }
480
- if (!state.enabled) {
599
+ if (!state.enabled)
481
600
  return;
482
- }
483
- const envelopes = splitIntoEnvelopes(events, context.cliVersion);
484
- const runId = events[0]?.runId ?? randomId("run");
601
+ const envelopes = splitIntoEnvelopes(events);
485
602
  for (const envelope of envelopes) {
486
- await writeEnvelope(envelope, runId);
603
+ await writeEnvelope(envelope, hostRunId);
487
604
  }
488
605
  },
606
+ trackCustomEvent() {
607
+ // No-op. See the CliTelemetrySession interface doc.
608
+ },
489
609
  async flush() {
490
610
  await flushTelemetryOutbox();
491
611
  },
492
612
  };
493
613
  }
614
+ // ── Deprecated ──────────────────────────────────────────────────────────────
615
+ /** @deprecated trackCustomEvent on the session is a no-op in the canonical
616
+ * model. This top-level helper is also a no-op — kept only to satisfy
617
+ * existing call sites. */
618
+ export function trackActiveTelemetryEvent(_eventName, _patch) {
619
+ /* intentionally blank */
620
+ }
494
621
  //# sourceMappingURL=telemetry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/cli/telemetry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../../src/cli/telemetry.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAO1B,OAAO,EACL,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,GASxB,MAAM,yBAAyB,CAAC;AAEjC,+EAA+E;AAE/E,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACjC,MAAM,eAAe,GAAG,EAAE,GAAG,IAAI,CAAC;AAClC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAC/B,MAAM,gBAAgB,GAAG,IAAI,CAAC;AA4E9B,IAAI,aAAa,GAA+B,IAAI,CAAC;AAErD,+EAA+E;AAE/E,SAAS,QAAQ,CAAC,MAAc;IAC9B,OAAO,GAAG,MAAM,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;AAC5C,CAAC;AAED,SAAS,MAAM;IACb,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,WAAW;IAClB,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE,IAAI,kBAAkB,CAAC;AACtE,CAAC;AAED,SAAS,QAAQ;IACf,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IACzC,IAAI,QAAQ,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAC1C,IAAI,QAAQ,KAAK,OAAO;QAAE,OAAO,SAAS,CAAC;IAC3C,OAAO,OAAO,CAAC,CAAC,WAAW;AAC7B,CAAC;AAED,SAAS,UAAU;IACjB,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IACvB,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IACrC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAmB,EAAE,IAAmB;IAChE,OAAO,GAAG,MAAM,IAAI,IAAI,EAAE,CAAC;AAC7B,CAAC;AAED,6EAA6E;AAC7E,4EAA4E;AAC5E,qEAAqE;AACrE,SAAS,sBAAsB,CAAC,KAAqB;IACnD,MAAM,UAAU,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/C,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IAClC,IACE,UAAU,CAAC,QAAQ,CAAC,6BAA6B,CAAC;QAClD,UAAU,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EACtC,CAAC;QACD,OAAO,6BAA6B,CAAC;IACvC,CAAC;IACD,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjE,OAAO,aAAa,CAAC;IACvB,CAAC;IACD,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACvE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACnC,OAAO,eAAe,CAAC;IACzB,CAAC;IACD,IACE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC;QAC9B,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC;QAChC,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC;QACjC,UAAU,CAAC,QAAQ,CAAC,eAAe,CAAC;QACpC,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QACrC,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EACxC,CAAC;QACD,OAAO,eAAe,CAAC;IACzB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,kEAAkE;AAClE,SAAS,kBAAkB,CACzB,KAAqB;IAErB,MAAM,UAAU,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;IAC/C,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IAClC,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC;QAAE,OAAO,SAAS,CAAC;IACrD,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC;QACnE,OAAO,OAAO,CAAC;IACjB,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,+EAA+E;AAC/E,EAAE;AACF,0EAA0E;AAC1E,4EAA4E;AAC5E,uEAAuE;AACvE,uDAAuD;AAEvD,KAAK,UAAU,eAAe;IAC5B,MAAM,EAAE,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,KAAK,UAAU,eAAe;IAC5B,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE;YACxD,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;QACH,OAAO,OAAO;aACX,MAAM,CACL,CAAC,KAA0C,EAAE,EAAE,CAC7C,KAAK,CAAC,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CACjD;aACA,GAAG,CAAC,CAAC,KAAuB,EAAE,EAAE,CAC/B,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAC/C;aACA,IAAI,EAAE,CAAC;IACZ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,kBAAkB;IAC/B,OAAO,CAAC,MAAM,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC;AAC1C,CAAC;AAED,KAAK,UAAU,wBAAwB;IACrC,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;IACrC,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,kBAAkB,CAAC;IACnC,CAAC;IACD,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,eAAe,CAAC,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,CAAC;IACzD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,qBAAqB,CAClC,SAAS,GAAG,KAAK;IAEjB,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAC;IACrC,MAAM,SAAS,GAAG,MAAM,wBAAwB,EAAE,CAAC;IACnD,MAAM,aAAa,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAEjD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO;YACL,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,YAAY;YAClB,MAAM,EAAE,YAAY;YACpB,QAAQ,EAAE,WAAW,EAAE;YACvB,SAAS;YACT,aAAa;SACd,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,GAAG,EAAE,CAAC;QAC7C,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,WAAW;YACnB,QAAQ,EAAE,WAAW,EAAE;YACvB,SAAS;YACT,aAAa;SACd,CAAC;IACJ,CAAC;IAED,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,GAAG,EAAE,CAAC;QAChD,OAAO;YACL,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,cAAc;YACtB,QAAQ,EAAE,WAAW,EAAE;YACvB,SAAS;YACT,aAAa;SACd,CAAC;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,gBAAgB,KAAK,KAAK,EAAE,CAAC;QACtC,OAAO;YACL,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,iBAAiB;YACzB,QAAQ,EAAE,WAAW,EAAE;YACvB,SAAS;YACT,aAAa;SACd,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS;QAC9D,QAAQ,EAAE,WAAW,EAAE;QACvB,SAAS;QACT,aAAa;KACd,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,EAAE;AACF,8EAA8E;AAC9E,kEAAkE;AAElE,SAAS,kBAAkB,CACzB,OAAgC,EAChC,KAA6B;IAE7B,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,QAAQ,EAAE,CAAC;IAC1B,MAAM,IAAI,GAAG,UAAU,EAAE,CAAC;IAC1B,MAAM,YAAY,GAAG,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAEpD,MAAM,WAAW,GAAG;QAClB,YAAY;QACZ,EAAE,EAAE,MAAM;QACV,IAAI;QACJ,eAAe,EAAE,OAAO,CAAC,UAAU;KACpC,CAAC;IAEF,OAAO;QACL,SAAS;QACT,KAAK,CAAC,IAQL;YACC,OAAO;gBACL,QAAQ,EAAE;oBACR,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC;oBACxB,YAAY,EAAE,uBAAuB;iBACtC;gBACD,IAAI,EAAE;oBACJ,UAAU,EAAE,MAAM,EAAE;oBACpB,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS;wBAC/B,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE;wBACjC,CAAC,CAAC,EAAE,CAAC;iBACR;gBACD,WAAW,EAAE;oBACX,QAAQ,EAAE,uBAAuB;oBACjC,SAAS,EAAE,KAAK,CAAC,SAAS;iBAC3B;gBACD,OAAO,EAAE;oBACP,GAAG,WAAW;oBACd,GAAG,CAAC,IAAI,CAAC,gBAAgB;wBACvB,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE;wBAC7C,CAAC,CAAC,EAAE,CAAC;oBACP,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;iBACtD;gBACD,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5C,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5D,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AAED,+EAA+E;AAE/E,SAAS,kBAAkB,CAAC,MAAwB;IAClD,MAAM,SAAS,GAAqB,EAAE,CAAC;IACvC,IAAI,OAAO,GAAqB,EAAE,CAAC;IAEnC,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACjC,SAAS,CAAC,IAAI,CAAC;YACb,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC;YAC1B,MAAM,EAAE,MAAM,EAAE;YAChB,MAAM,EAAE,OAAO;SAChB,CAAC,CAAC;QACH,OAAO,GAAG,EAAE,CAAC;IACf,CAAC,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACpB,MAAM,SAAS,GAAmB;YAChC,OAAO,EAAE,iBAAiB;YAC1B,MAAM,EAAE,MAAM,EAAE;YAChB,MAAM,EAAE,OAAO;SAChB,CAAC;QACF,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,oBAAoB,CAAC;QAC5D,MAAM,QAAQ,GACZ,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,GAAG,eAAe,CAAC;QACzE,IAAI,aAAa,IAAI,QAAQ,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;YAC/B,YAAY,EAAE,CAAC;YACf,IAAI,QAAQ;gBAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,YAAY,EAAE,CAAC;IACf,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,QAAwB,EAAE,SAAiB;IACtE,MAAM,eAAe,EAAE,CAAC;IACxB,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC,GAAG,IAAI,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC;IACzF,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,QAAQ,CAAC,CAAC;IAChE,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,KAAK,GAAG,MAAM,qBAAqB,EAAE,CAAC;IAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ;QAAE,OAAO;IAEtD,MAAM,KAAK,GAAG,CAAC,MAAM,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC;IACtE,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC7B,IAAI,QAAgB,CAAC;QACrB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACjD,CAAC;QAAC,MAAM,CAAC;YACP,SAAS;QACX,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,QAAQ,EAAE;gBAC3C,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,YAAY,EAAE,kBAAkB;iBACjC;gBACD,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC;aAC9C,CAAC,CAAC;YACH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC5B,MAAM,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,iCAAiC;QACnC,CAAC;IACH,CAAC;AACH,CAAC;AAED,+EAA+E;AAE/E,MAAM,CAAC,KAAK,UAAU,kBAAkB;IACtC,MAAM,KAAK,GAAG,MAAM,qBAAqB,EAAE,CAAC;IAC5C,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI;QAC3D,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,aAAa,EAAE,KAAK,CAAC,aAAa;KACnC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAAgB;IACxD,MAAM,eAAe,CAAC,EAAE,gBAAgB,EAAE,OAAO,EAAE,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,OAAmC;IAC3E,aAAa,GAAG,OAAO,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,+EAA+E;AAE/E,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,OAAgC;IAEhC,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IACtE,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACnD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAqB,EAAE,CAAC;IAEpC,wEAAwE;IACxE,2DAA2D;IAC3D,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACpC,IAAI,eAAe,GAAkB,IAAI,CAAC;IAC1C,IAAI,gBAAgB,GAAkB,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC;IAC7D,IAAI,gBAAoC,CAAC;IACzC,IAAI,QAA4B,CAAC;IACjC,IAAI,SAAS,GAAkB,IAAI,CAAC;IACpC,IAAI,gBAAgB,GAAkB,IAAI,CAAC;IAC3C,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,qEAAqE;IACrE,qEAAqE;IACrE,MAAM,cAAc,GAA4B;QAC9C,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI;QACtC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;QACnC,aAAa,EAAE,OAAO,CACpB,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CACxE;KACF,CAAC;IAEF,MAAM,IAAI,GAAG,CAAC,KAAqB,EAAE,EAAE;QACrC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO;YAAE,OAAO;QACrD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC,CAAC;IAEF,iCAAiC;IACjC,IAAI,CACF,OAAO,CAAC,KAAK,CAAC;QACZ,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE;QACzC,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE;QAC7C,UAAU,EAAE,cAAc;KAC3B,CAAC,CACH,CAAC;IAEF,qFAAqF;IACrF,MAAM,uBAAuB,GAAG,GAAG,EAAE;QACnC,IAAI,eAAe;YAAE,OAAO;QAC5B,IAAI,CAAC,gBAAgB;YAAE,OAAO;QAC9B,eAAe,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAClC,IAAI,CACF,OAAO,CAAC,KAAK,CAAC;YACZ,WAAW,EAAE;gBACX,KAAK,EAAE,YAAY;gBACnB,SAAS;gBACT,eAAe;gBACf,MAAM,EAAE,gBAAgB;aACzB;YACD,IAAI,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE;YACnD,gBAAgB;YAChB,QAAQ;SACT,CAAC,CACH,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,mBAAmB,GAAG,CAC1B,IAAiD,EACjD,EAAE;QACF,uBAAuB,EAAE,CAAC;QAC1B,IAAI,CAAC,eAAe,IAAI,CAAC,gBAAgB;YAAE,OAAO;QAClD,IAAI,CACF,OAAO,CAAC,KAAK,CAAC;YACZ,WAAW,EAAE;gBACX,KAAK,EAAE,YAAY;gBACnB,SAAS;gBACT,eAAe;gBACf,MAAM,EAAE,gBAAgB;aACzB;YACD,IAAI;YACJ,gBAAgB;SACjB,CAAC,CACH,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,IAAI,CAAC,SAAS;YAAE,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC7C,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,IAA2C,EAAE,EAAE;QACpE,IAAI,CAAC,gBAAgB;YAAE,OAAO;QAC9B,IAAI,CACF,OAAO,CAAC,KAAK,CAAC;YACZ,WAAW,EAAE;gBACX,KAAK,EAAE,MAAM;gBACb,SAAS;gBACT,SAAS,EAAE,eAAe,EAAE;gBAC5B,MAAM,EAAE,gBAAgB;gBACxB,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAChD;YACD,IAAI;SACL,CAAC,CACH,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CACxB,YAAoE,EACpE,EAAE;QACF,MAAM,MAAM,GACV,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;QACjE,MAAM,MAAM,GACV,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;QACjE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC5B,CAAC,CAAC;IAEF,OAAO;QACL,aAAa,CAAC,KAAK;YACjB,mFAAmF;YACnF,IAAI,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM;gBAAE,gBAAgB,GAAG,KAAK,CAAC,MAAM,CAAC;YAEvE,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnB,KAAK,aAAa;oBAChB,oEAAoE;oBACpE,yDAAyD;oBACzD,cAAc,CAAC,qBAAqB,GAAG,IAAI,CAAC;oBAC5C,MAAM;gBACR,KAAK,gBAAgB;oBACnB,cAAc,CAAC,uBAAuB,GAAG,IAAI,CAAC;oBAC9C,MAAM;gBACR,KAAK,oBAAoB;oBACvB,cAAc,CAAC,iBAAiB,GAAG,IAAI,CAAC;oBACxC,MAAM;gBAER,KAAK,aAAa;oBAChB,mBAAmB,CAAC;wBAClB,SAAS,EAAE,YAAY;wBACvB,KAAK,EAAE,aAAa;wBACpB,GAAG,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;4BACrD,CAAC,CAAC;gCACE,eAAe,EAAE,kBAAkB,CACjC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAC/B;6BACH;4BACH,CAAC,CAAC,EAAE,CAAC;qBACR,CAAC,CAAC;oBACH,MAAM;gBAER,KAAK,aAAa;oBAChB,kEAAkE;oBAClE,mBAAmB,CAAC;wBAClB,SAAS,EAAE,YAAY;wBACvB,KAAK,EAAE,aAAa;wBACpB,eAAe,EAAE,eAAe;qBACjC,CAAC,CAAC;oBACH,MAAM;gBAER,KAAK,qBAAqB;oBACxB,mBAAmB,CAAC;wBAClB,SAAS,EAAE,YAAY;wBACvB,KAAK,EAAE,UAAU;wBACjB,OAAO,EAAE,SAAS;qBACnB,CAAC,CAAC;oBACH,MAAM;gBAER,KAAK,eAAe;oBAClB,mBAAmB,CAAC;wBAClB,SAAS,EAAE,YAAY;wBACvB,KAAK,EAAE,UAAU;wBACjB,OAAO,EAAE,SAAS;wBAClB,UAAU,EAAE,sBAAsB,CAAC,KAAK,CAAC,OAAO,CAAC;qBAClD,CAAC,CAAC;oBACH,MAAM;gBAER,KAAK,gBAAgB;oBACnB,aAAa,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;oBACvD,MAAM;gBACR,KAAK,iBAAiB,CAAC,CAAC,CAAC;oBACvB,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;oBACjE,aAAa,CAAC;wBACZ,SAAS,EAAE,MAAM;wBACjB,KAAK,EAAE,UAAU;wBACjB,OAAO,EAAE,SAAS;wBAClB,gBAAgB,EAAE,MAAM;wBACxB,gBAAgB,EAAE,MAAM;qBACzB,CAAC,CAAC;oBACH,SAAS,GAAG,IAAI,CAAC;oBACjB,MAAM;gBACR,CAAC;gBACD,KAAK,gBAAgB,CAAC,CAAC,CAAC;oBACtB,kEAAkE;oBAClE,yDAAyD;oBACzD,4DAA4D;oBAC5D,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;oBACjE,aAAa,CAAC;wBACZ,SAAS,EAAE,MAAM;wBACjB,KAAK,EAAE,UAAU;wBACjB,OAAO,EAAE,SAAS;wBAClB,gBAAgB,EAAE,MAAM;wBACxB,gBAAgB,EAAE,MAAM;qBACzB,CAAC,CAAC;oBACH,SAAS,GAAG,IAAI,CAAC;oBACjB,MAAM;gBACR,CAAC;gBACD,KAAK,eAAe;oBAClB,aAAa,CAAC;wBACZ,SAAS,EAAE,MAAM;wBACjB,KAAK,EAAE,UAAU;wBACjB,OAAO,EAAE,SAAS;wBAClB,UAAU,EAAE,sBAAsB,CAAC,eAAe,CAAC;qBACpD,CAAC,CAAC;oBACH,SAAS,GAAG,IAAI,CAAC;oBACjB,MAAM;gBACR,KAAK,gBAAgB;oBACnB,qDAAqD;oBACrD,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,mCAAmC;oBACjE,aAAa,CAAC;wBACZ,SAAS,EAAE,MAAM;wBACjB,KAAK,EAAE,SAAS;wBAChB,MAAM,EACJ,sBAAsB,CAAC,KAAK,CAAC,MAAM,CAAC;4BACpC,6BAA6B;4BAC3B,CAAC,CAAC,oBAAoB;4BACtB,CAAC,CAAC,eAAe;qBACtB,CAAC,CAAC;oBACH,SAAS,GAAG,IAAI,CAAC;oBACjB,MAAM;gBAER,KAAK,SAAS;oBACZ,gBAAgB,GAAG,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC;oBACxC,MAAM;gBAER,KAAK,iBAAiB,CAAC;gBACvB,KAAK,eAAe,CAAC;gBACrB,KAAK,iBAAiB,CAAC;gBACvB,KAAK,MAAM;oBACT,sCAAsC;oBACtC,MAAM;YACV,CAAC;QACH,CAAC;QAED,iBAAiB,CAAC,MAAM;YACtB,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YAC1C,gBAAgB,GAAG,MAAM,CAAC,OAAO,IAAI,gBAAgB,CAAC;YAEtD,uEAAuE;YACvE,oEAAoE;YACpE,oDAAoD;YACpD,IAAI,eAAe,IAAI,gBAAgB,EAAE,CAAC;gBACxC,MAAM,qBAAqB,GAAG,MAAM,CAAC,IAAI,CACvC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,CAAC,WAAW,CAAC,KAAK,KAAK,YAAY;oBACpC,CAAC,CAAC,WAAW,CAAC,eAAe,KAAK,eAAe;oBACjD,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,YAAY;oBACjC,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,UAAU,CAC9B,CAAC;gBACF,IAAI,CAAC,qBAAqB,EAAE,CAAC;oBAC3B,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;wBAC1B,IAAI,CACF,OAAO,CAAC,KAAK,CAAC;4BACZ,WAAW,EAAE;gCACX,KAAK,EAAE,YAAY;gCACnB,SAAS;gCACT,eAAe;gCACf,MAAM,EAAE,gBAAgB;6BACzB;4BACD,IAAI,EAAE;gCACJ,SAAS,EAAE,YAAY;gCACvB,KAAK,EAAE,UAAU;gCACjB,OAAO,EAAE,SAAS;6BACnB;yBACF,CAAC,CACH,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,IAAI,CACF,OAAO,CAAC,KAAK,CAAC;4BACZ,WAAW,EAAE;gCACX,KAAK,EAAE,YAAY;gCACnB,SAAS;gCACT,eAAe;gCACf,MAAM,EAAE,gBAAgB;6BACzB;4BACD,IAAI,EAAE;gCACJ,SAAS,EAAE,YAAY;gCACvB,KAAK,EAAE,UAAU;gCACjB,OAAO,EAAE,SAAS;gCAClB,UAAU,EAAE,sBAAsB,CAChC,MAAM,CAAC,UAAU,IAAI,gBAAgB,CACtC;6BACF;yBACF,CAAC,CACH,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;YAED,iBAAiB;YACjB,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,EAAE,CAAC;gBAC1B,IAAI,CACF,OAAO,CAAC,KAAK,CAAC;oBACZ,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE;oBACzC,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE;oBAClE,UAAU;iBACX,CAAC,CACH,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,IAAI,CACF,OAAO,CAAC,KAAK,CAAC;oBACZ,WAAW,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE;oBACzC,IAAI,EAAE;wBACJ,SAAS,EAAE,MAAM;wBACjB,KAAK,EAAE,UAAU;wBACjB,OAAO,EAAE,SAAS;wBAClB,UAAU,EAAE,sBAAsB,CAChC,MAAM,CAAC,UAAU,IAAI,gBAAgB,CACtC;qBACF;oBACD,UAAU;iBACX,CAAC,CACH,CAAC;YACJ,CAAC;QACH,CAAC;QAED,KAAK,CAAC,OAAO;YACX,IAAI,SAAS;gBAAE,OAAO;YACtB,SAAS,GAAG,IAAI,CAAC;YACjB,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC3B,KAAK,MAAM,QAAQ,IAAI,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC;oBAClD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACxD,CAAC;gBACD,OAAO;YACT,CAAC;YACD,IAAI,CAAC,KAAK,CAAC,OAAO;gBAAE,OAAO;YAE3B,MAAM,SAAS,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;YAC7C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,MAAM,aAAa,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,gBAAgB;YACd,oDAAoD;QACtD,CAAC;QAED,KAAK,CAAC,KAAK;YACT,MAAM,oBAAoB,EAAE,CAAC;QAC/B,CAAC;KACF,CAAC;AACJ,CAAC;AAED,+EAA+E;AAE/E;;2BAE2B;AAC3B,MAAM,UAAU,yBAAyB,CACvC,UAAmB,EACnB,MAAgB;IAEhB,yBAAyB;AAC3B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opendatalabs/connect",
3
- "version": "0.12.2",
3
+ "version": "0.13.0",
4
4
  "description": "SDK for integrating Vana Data Portability 'Connect data' flows",
5
5
  "license": "MIT",
6
6
  "repository": {