@openlimiter/core 1.3.5 → 2.0.2
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/acquire/cadence.d.ts +5 -3
- package/dist/acquire/cadence.d.ts.map +1 -1
- package/dist/acquire/cadence.js +14 -9
- package/dist/acquire/cadence.js.map +1 -1
- package/dist/acquire/coordination.d.ts.map +1 -1
- package/dist/acquire/coordination.js +3 -4
- package/dist/acquire/coordination.js.map +1 -1
- package/dist/acquire/credentials.d.ts +5 -2
- package/dist/acquire/credentials.d.ts.map +1 -1
- package/dist/acquire/credentials.js +45 -11
- package/dist/acquire/credentials.js.map +1 -1
- package/dist/acquire/cursor.d.ts +8 -0
- package/dist/acquire/cursor.d.ts.map +1 -0
- package/dist/acquire/cursor.js +60 -0
- package/dist/acquire/cursor.js.map +1 -0
- package/dist/acquire/identity.d.ts +16 -2
- package/dist/acquire/identity.d.ts.map +1 -1
- package/dist/acquire/identity.js +64 -1
- package/dist/acquire/identity.js.map +1 -1
- package/dist/acquire/index.d.ts +1 -0
- package/dist/acquire/index.d.ts.map +1 -1
- package/dist/acquire/index.js +1 -0
- package/dist/acquire/index.js.map +1 -1
- package/dist/acquire/providers.d.ts +1 -0
- package/dist/acquire/providers.d.ts.map +1 -1
- package/dist/acquire/providers.js +10 -1
- package/dist/acquire/providers.js.map +1 -1
- package/dist/acquire/runner.d.ts +7 -14
- package/dist/acquire/runner.d.ts.map +1 -1
- package/dist/acquire/runner.js +151 -9
- package/dist/acquire/runner.js.map +1 -1
- package/dist/acquire/transport.d.ts +7 -1
- package/dist/acquire/transport.d.ts.map +1 -1
- package/dist/acquire/transport.js +30 -4
- package/dist/acquire/transport.js.map +1 -1
- package/dist/activity/contract.d.ts +108 -0
- package/dist/activity/contract.d.ts.map +1 -0
- package/dist/activity/contract.js +281 -0
- package/dist/activity/contract.js.map +1 -0
- package/dist/activity/spool.d.ts +20 -0
- package/dist/activity/spool.d.ts.map +1 -0
- package/dist/activity/spool.js +305 -0
- package/dist/activity/spool.js.map +1 -0
- package/dist/cache.d.ts +41 -2
- package/dist/cache.d.ts.map +1 -1
- package/dist/cache.js +134 -4
- package/dist/cache.js.map +1 -1
- package/dist/collection.d.ts.map +1 -1
- package/dist/collection.js +6 -0
- package/dist/collection.js.map +1 -1
- package/dist/connection-state.d.ts +15 -0
- package/dist/connection-state.d.ts.map +1 -1
- package/dist/connection-state.js +18 -0
- package/dist/connection-state.js.map +1 -1
- package/dist/contracts/notify.d.ts +47 -0
- package/dist/contracts/notify.d.ts.map +1 -0
- package/dist/contracts/notify.js +83 -0
- package/dist/contracts/notify.js.map +1 -0
- package/dist/contracts/surfaces.d.ts +61 -0
- package/dist/contracts/surfaces.d.ts.map +1 -0
- package/dist/contracts/surfaces.js +73 -0
- package/dist/contracts/surfaces.js.map +1 -0
- package/dist/contracts/wire.d.ts +108 -0
- package/dist/contracts/wire.d.ts.map +1 -0
- package/dist/contracts/wire.js +202 -0
- package/dist/contracts/wire.js.map +1 -0
- package/dist/data-rules.d.ts +30 -0
- package/dist/data-rules.d.ts.map +1 -0
- package/dist/data-rules.js +57 -0
- package/dist/data-rules.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/normalizer.d.ts.map +1 -1
- package/dist/normalizer.js +42 -7
- package/dist/normalizer.js.map +1 -1
- package/dist/types.d.ts +44 -10
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -1
- package/package.json +16 -1
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { type ConnectorVerification, type Snapshot, type SnapshotAvailability, type SnapshotCurrency, type SnapshotKind, type SnapshotPrecision, type SnapshotSource, type VerificationEvidence } from "../types.js";
|
|
2
|
+
export declare const WIRE_SCHEMA_VERSION_V3: 3;
|
|
3
|
+
export interface WireVerificationEvidence {
|
|
4
|
+
readonly provider_version: string;
|
|
5
|
+
readonly account_shape: string;
|
|
6
|
+
readonly os: string;
|
|
7
|
+
readonly date: string;
|
|
8
|
+
}
|
|
9
|
+
/** The v2 allowlist, plus seven optional v3 metadata fields. */
|
|
10
|
+
export interface WireSampleV3 {
|
|
11
|
+
readonly account_id: string;
|
|
12
|
+
readonly provider: string;
|
|
13
|
+
readonly window_id: string;
|
|
14
|
+
readonly observed_at: string;
|
|
15
|
+
readonly stale: boolean;
|
|
16
|
+
readonly meter?: string;
|
|
17
|
+
readonly code?: string;
|
|
18
|
+
readonly usage_percent?: number | null;
|
|
19
|
+
readonly percent?: number | null;
|
|
20
|
+
readonly reset_at?: string | null;
|
|
21
|
+
readonly resets_at?: string | null;
|
|
22
|
+
readonly amount?: number | null;
|
|
23
|
+
readonly currency?: SnapshotCurrency | null;
|
|
24
|
+
readonly source_period?: readonly [string, string];
|
|
25
|
+
readonly source?: SnapshotSource;
|
|
26
|
+
readonly precision?: SnapshotPrecision;
|
|
27
|
+
readonly verification?: ConnectorVerification;
|
|
28
|
+
readonly verification_evidence?: WireVerificationEvidence;
|
|
29
|
+
readonly kind?: SnapshotKind;
|
|
30
|
+
readonly availability?: SnapshotAvailability;
|
|
31
|
+
readonly retry_at?: string;
|
|
32
|
+
}
|
|
33
|
+
export interface WireForecastInput {
|
|
34
|
+
readonly first_observed_at: string;
|
|
35
|
+
readonly last_observed_at: string;
|
|
36
|
+
readonly sample_count: number;
|
|
37
|
+
readonly burn_usd_per_day: number;
|
|
38
|
+
}
|
|
39
|
+
/** API spend remains the v2 shape. */
|
|
40
|
+
export interface WireApiSpendSample {
|
|
41
|
+
readonly source_id: string;
|
|
42
|
+
readonly account_id: string;
|
|
43
|
+
readonly provider: string;
|
|
44
|
+
readonly key_label: string;
|
|
45
|
+
readonly month: string;
|
|
46
|
+
readonly spend_usd: number;
|
|
47
|
+
readonly budget_usd: number | null;
|
|
48
|
+
readonly source_period: readonly [string, string];
|
|
49
|
+
readonly currency_source: string;
|
|
50
|
+
readonly raw_unit_scale: number;
|
|
51
|
+
readonly forecast_date: string | null;
|
|
52
|
+
readonly forecast_input: WireForecastInput | null;
|
|
53
|
+
readonly period_complete: boolean;
|
|
54
|
+
}
|
|
55
|
+
export interface WireEnvelopeV3 {
|
|
56
|
+
readonly event_id: string;
|
|
57
|
+
readonly device_id: string;
|
|
58
|
+
readonly previous_sequence: number;
|
|
59
|
+
readonly sequence: number;
|
|
60
|
+
readonly observed_at: string;
|
|
61
|
+
readonly client_version: string;
|
|
62
|
+
readonly schema_version: typeof WIRE_SCHEMA_VERSION_V3;
|
|
63
|
+
readonly usage_samples: readonly WireSampleV3[];
|
|
64
|
+
readonly api_spend_samples: readonly WireApiSpendSample[];
|
|
65
|
+
}
|
|
66
|
+
declare const LOCAL_KEYS: {
|
|
67
|
+
readonly account_id: "accountId";
|
|
68
|
+
readonly provider: "provider";
|
|
69
|
+
readonly window_id: "windowId";
|
|
70
|
+
readonly observed_at: "observedAt";
|
|
71
|
+
readonly stale: "stale";
|
|
72
|
+
readonly meter: "meter";
|
|
73
|
+
readonly code: "code";
|
|
74
|
+
readonly usage_percent: "usagePercent";
|
|
75
|
+
readonly percent: "percent";
|
|
76
|
+
readonly reset_at: "resetAt";
|
|
77
|
+
readonly resets_at: "resetsAt";
|
|
78
|
+
readonly amount: "amount";
|
|
79
|
+
readonly currency: "currency";
|
|
80
|
+
readonly source_period: "sourcePeriod";
|
|
81
|
+
readonly source: "source";
|
|
82
|
+
readonly precision: "precision";
|
|
83
|
+
readonly verification: "verification";
|
|
84
|
+
readonly verification_evidence: "verificationEvidence";
|
|
85
|
+
readonly kind: "kind";
|
|
86
|
+
readonly availability: "availability";
|
|
87
|
+
readonly retry_at: "retryAt";
|
|
88
|
+
};
|
|
89
|
+
/**
|
|
90
|
+
* A lossless camelCase projection, not a fabricated Snapshot. The wire does
|
|
91
|
+
* not carry expiresAt, window duration, or the other connector labels.
|
|
92
|
+
*/
|
|
93
|
+
export type LocalWireSample = {
|
|
94
|
+
readonly [K in keyof WireSampleV3 as (typeof LOCAL_KEYS)[K]]: K extends "verification_evidence" ? VerificationEvidence : WireSampleV3[K];
|
|
95
|
+
};
|
|
96
|
+
/** No version lives on a sample. The containing envelope declares 2 or 3. */
|
|
97
|
+
export declare function readWireSample(value: unknown): LocalWireSample;
|
|
98
|
+
/**
|
|
99
|
+
* Snapshot inputs use the established unnamed account and meter window rules.
|
|
100
|
+
* staleness is evaluated at conversion time (or an explicit test clock).
|
|
101
|
+
* LocalWireSample inputs preserve the received wire projection exactly.
|
|
102
|
+
*/
|
|
103
|
+
export declare function toWireSampleV3(snapshot: Snapshot, now?: string): WireSampleV3;
|
|
104
|
+
export declare function toWireSampleV3(snapshot: LocalWireSample): WireSampleV3;
|
|
105
|
+
/** Negotiation is opt in. Existing emitters continue to send v2. */
|
|
106
|
+
export declare function chooseWireVersion(serverAccepted: readonly number[]): 2 | 3;
|
|
107
|
+
export {};
|
|
108
|
+
//# sourceMappingURL=wire.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../src/contracts/wire.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import { CONNECTOR_VERIFICATIONS, SNAPSHOT_KINDS } from "../types.js";
|
|
2
|
+
export const WIRE_SCHEMA_VERSION_V3 = 3;
|
|
3
|
+
const LOCAL_KEYS = {
|
|
4
|
+
account_id: "accountId", provider: "provider", window_id: "windowId",
|
|
5
|
+
observed_at: "observedAt", stale: "stale", meter: "meter", code: "code",
|
|
6
|
+
usage_percent: "usagePercent", percent: "percent", reset_at: "resetAt",
|
|
7
|
+
resets_at: "resetsAt", amount: "amount", currency: "currency",
|
|
8
|
+
source_period: "sourcePeriod", source: "source", precision: "precision",
|
|
9
|
+
verification: "verification", verification_evidence: "verificationEvidence",
|
|
10
|
+
kind: "kind", availability: "availability", retry_at: "retryAt"
|
|
11
|
+
};
|
|
12
|
+
const SOURCES = ["native_payload", "documented_api", "internal_payload", "authenticated_page", "manual_entry"];
|
|
13
|
+
const PRECISIONS = ["exact", "estimated", "manual"];
|
|
14
|
+
const CURRENCIES = ["USD", "CNY"];
|
|
15
|
+
const AVAILABILITIES = {
|
|
16
|
+
network_failure: true, missing_credentials: true, expired_credentials: true,
|
|
17
|
+
access_denied: true, missing_subscription: true, unlimited: true,
|
|
18
|
+
quota_unavailable: true, rate_limited: true, schema_drift: true
|
|
19
|
+
};
|
|
20
|
+
const WIRE_AVAILABILITIES = Object.keys(AVAILABILITIES);
|
|
21
|
+
function fail(field, reason) {
|
|
22
|
+
throw new TypeError(`Invalid wire sample: ${field} ${reason}`);
|
|
23
|
+
}
|
|
24
|
+
function record(value, field) {
|
|
25
|
+
if (typeof value !== "object" || value === null || Array.isArray(value)) {
|
|
26
|
+
fail(field, "must be an object");
|
|
27
|
+
}
|
|
28
|
+
return value;
|
|
29
|
+
}
|
|
30
|
+
function closed(row, keys, field) {
|
|
31
|
+
for (const key of Object.keys(row)) {
|
|
32
|
+
if (!keys.includes(key))
|
|
33
|
+
fail(`${field}.${key}`, "is an unknown key");
|
|
34
|
+
if (row[key] === undefined)
|
|
35
|
+
fail(`${field}.${key}`, "must not be undefined; omit it instead");
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function instant(value, field) {
|
|
39
|
+
if (typeof value !== "string" || !Number.isFinite(Date.parse(value)) ||
|
|
40
|
+
new Date(value).toISOString() !== value)
|
|
41
|
+
fail(field, "must be a canonical ISO instant");
|
|
42
|
+
}
|
|
43
|
+
function numeric(value, field, max, exclusive = false) {
|
|
44
|
+
if (typeof value !== "number" || !Number.isFinite(value) || value < 0 ||
|
|
45
|
+
(exclusive ? value >= max : value > max))
|
|
46
|
+
fail(field, `must be a finite number from 0 to ${max}${exclusive ? " (exclusive)" : ""}`);
|
|
47
|
+
}
|
|
48
|
+
function member(value, values, field) {
|
|
49
|
+
if (typeof value !== "string" || !values.includes(value))
|
|
50
|
+
fail(field, `must be one of ${values.join(", ")}`);
|
|
51
|
+
}
|
|
52
|
+
function validateSample(value) {
|
|
53
|
+
const row = record(value, "sample");
|
|
54
|
+
closed(row, Object.keys(LOCAL_KEYS), "sample");
|
|
55
|
+
for (const key of ["account_id", "provider", "window_id"]) {
|
|
56
|
+
if (typeof row[key] !== "string" || row[key].length === 0)
|
|
57
|
+
fail(key, "must be a nonempty string");
|
|
58
|
+
}
|
|
59
|
+
if (!/^[a-z0-9][a-z0-9-]{0,63}$/u.test(row["account_id"]))
|
|
60
|
+
fail("account_id", "must be a valid account alias");
|
|
61
|
+
instant(row["observed_at"], "observed_at");
|
|
62
|
+
if (typeof row["stale"] !== "boolean")
|
|
63
|
+
fail("stale", "must be a boolean");
|
|
64
|
+
for (const key of ["meter", "code"]) {
|
|
65
|
+
if (row[key] !== undefined && (typeof row[key] !== "string" || row[key].length === 0))
|
|
66
|
+
fail(key, "must be a nonempty string");
|
|
67
|
+
}
|
|
68
|
+
if (row["meter"] === undefined && row["code"] === undefined)
|
|
69
|
+
fail("meter/code", "requires a meter identifier");
|
|
70
|
+
for (const [left, right] of [["meter", "code"], ["usage_percent", "percent"], ["reset_at", "resets_at"]]) {
|
|
71
|
+
if (row[left] !== undefined && row[right] !== undefined && row[left] !== row[right])
|
|
72
|
+
fail(`${left}/${right}`, "aliases must agree");
|
|
73
|
+
}
|
|
74
|
+
for (const key of ["reset_at", "resets_at"]) {
|
|
75
|
+
if (row[key] !== undefined && row[key] !== null)
|
|
76
|
+
instant(row[key], key);
|
|
77
|
+
}
|
|
78
|
+
for (const key of ["usage_percent", "percent"]) {
|
|
79
|
+
if (row[key] !== undefined && row[key] !== null)
|
|
80
|
+
numeric(row[key], key, 100_000);
|
|
81
|
+
}
|
|
82
|
+
if (row["amount"] !== undefined && row["amount"] !== null)
|
|
83
|
+
numeric(row["amount"], "amount", 1e14, true);
|
|
84
|
+
if (row["currency"] !== undefined && row["currency"] !== null)
|
|
85
|
+
member(row["currency"], CURRENCIES, "currency");
|
|
86
|
+
if ((row["amount"] != null) !== (row["currency"] != null))
|
|
87
|
+
fail("amount/currency", "must be supplied together");
|
|
88
|
+
if (row["source_period"] !== undefined) {
|
|
89
|
+
const period = row["source_period"];
|
|
90
|
+
if (!Array.isArray(period) || period.length !== 2)
|
|
91
|
+
fail("source_period", "must contain two ISO instants");
|
|
92
|
+
instant(period[0], "source_period[0]");
|
|
93
|
+
instant(period[1], "source_period[1]");
|
|
94
|
+
if (Date.parse(period[0]) > Date.parse(period[1]))
|
|
95
|
+
fail("source_period", "must be ordered");
|
|
96
|
+
}
|
|
97
|
+
for (const [key, values] of [
|
|
98
|
+
["source", SOURCES], ["precision", PRECISIONS],
|
|
99
|
+
["verification", CONNECTOR_VERIFICATIONS], ["kind", SNAPSHOT_KINDS],
|
|
100
|
+
["availability", WIRE_AVAILABILITIES]
|
|
101
|
+
]) {
|
|
102
|
+
if (row[key] !== undefined)
|
|
103
|
+
member(row[key], values, key);
|
|
104
|
+
}
|
|
105
|
+
if (row["verification_evidence"] !== undefined) {
|
|
106
|
+
if (row["verification"] !== "VERIFIED_LIVE")
|
|
107
|
+
fail("verification_evidence", "requires VERIFIED_LIVE");
|
|
108
|
+
const evidence = record(row["verification_evidence"], "verification_evidence");
|
|
109
|
+
closed(evidence, ["provider_version", "account_shape", "os", "date"], "verification_evidence");
|
|
110
|
+
for (const key of ["provider_version", "account_shape", "os"]) {
|
|
111
|
+
if (typeof evidence[key] !== "string")
|
|
112
|
+
fail(`verification_evidence.${key}`, "must be a string");
|
|
113
|
+
}
|
|
114
|
+
instant(evidence["date"], "verification_evidence.date");
|
|
115
|
+
}
|
|
116
|
+
if (row["availability"] !== undefined && (typeof row["usage_percent"] === "number" || typeof row["percent"] === "number")) {
|
|
117
|
+
fail("availability", "cannot accompany a numeric percent");
|
|
118
|
+
}
|
|
119
|
+
if (row["availability"] === undefined && row["usage_percent"] == null && row["percent"] == null && row["amount"] == null) {
|
|
120
|
+
fail("sample", "requires a numeric percent, an amount, or availability");
|
|
121
|
+
}
|
|
122
|
+
if (row["retry_at"] !== undefined) {
|
|
123
|
+
if (row["availability"] !== "rate_limited")
|
|
124
|
+
fail("retry_at", "requires rate_limited availability");
|
|
125
|
+
instant(row["retry_at"], "retry_at");
|
|
126
|
+
}
|
|
127
|
+
return row;
|
|
128
|
+
}
|
|
129
|
+
/** No version lives on a sample. The containing envelope declares 2 or 3. */
|
|
130
|
+
export function readWireSample(value) {
|
|
131
|
+
const wire = validateSample(value);
|
|
132
|
+
const local = {};
|
|
133
|
+
for (const key of Object.keys(wire)) {
|
|
134
|
+
local[LOCAL_KEYS[key]] = wire[key];
|
|
135
|
+
}
|
|
136
|
+
if (wire.verification_evidence !== undefined) {
|
|
137
|
+
const evidence = wire.verification_evidence;
|
|
138
|
+
local["verificationEvidence"] = {
|
|
139
|
+
providerVersion: evidence.provider_version, accountShape: evidence.account_shape,
|
|
140
|
+
os: evidence.os, date: evidence.date
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
return local;
|
|
144
|
+
}
|
|
145
|
+
export function toWireSampleV3(snapshot, now = new Date().toISOString()) {
|
|
146
|
+
let wire;
|
|
147
|
+
if ("value" in snapshot) {
|
|
148
|
+
instant(snapshot.expiresAt, "expiresAt");
|
|
149
|
+
instant(now, "now");
|
|
150
|
+
if (snapshot.unit !== "PERCENT" && snapshot.availability === undefined && snapshot.usedAmount === undefined) {
|
|
151
|
+
fail("unit", "has no v2 usage representation; use an explicit amount projection");
|
|
152
|
+
}
|
|
153
|
+
wire = {
|
|
154
|
+
account_id: snapshot.accountId ?? "default", provider: snapshot.provider,
|
|
155
|
+
meter: snapshot.meter, window_id: snapshot.meter,
|
|
156
|
+
observed_at: snapshot.observedAt, reset_at: snapshot.resetAt,
|
|
157
|
+
stale: Date.parse(snapshot.expiresAt) <= Date.parse(now),
|
|
158
|
+
source: snapshot.source, precision: snapshot.precision,
|
|
159
|
+
verification: snapshot.labels.verification
|
|
160
|
+
};
|
|
161
|
+
if (snapshot.availability === undefined && snapshot.unit === "PERCENT")
|
|
162
|
+
wire["usage_percent"] = snapshot.value;
|
|
163
|
+
if (snapshot.usedAmount !== undefined)
|
|
164
|
+
wire["amount"] = snapshot.usedAmount;
|
|
165
|
+
if (snapshot.currency !== undefined)
|
|
166
|
+
wire["currency"] = snapshot.currency;
|
|
167
|
+
if (snapshot.kind !== undefined)
|
|
168
|
+
wire["kind"] = snapshot.kind;
|
|
169
|
+
if (snapshot.availability !== undefined)
|
|
170
|
+
wire["availability"] = snapshot.availability;
|
|
171
|
+
if (snapshot.retryAt !== undefined)
|
|
172
|
+
wire["retry_at"] = snapshot.retryAt;
|
|
173
|
+
if (snapshot.labels.verificationEvidence !== undefined) {
|
|
174
|
+
const evidence = snapshot.labels.verificationEvidence;
|
|
175
|
+
wire["verification_evidence"] = {
|
|
176
|
+
provider_version: evidence.providerVersion, account_shape: evidence.accountShape,
|
|
177
|
+
os: evidence.os, date: evidence.date
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
wire = {};
|
|
183
|
+
for (const key of Object.keys(LOCAL_KEYS)) {
|
|
184
|
+
const value = snapshot[LOCAL_KEYS[key]];
|
|
185
|
+
if (value !== undefined)
|
|
186
|
+
wire[key] = value;
|
|
187
|
+
}
|
|
188
|
+
if (snapshot.verificationEvidence !== undefined) {
|
|
189
|
+
const evidence = snapshot.verificationEvidence;
|
|
190
|
+
wire["verification_evidence"] = {
|
|
191
|
+
provider_version: evidence.providerVersion, account_shape: evidence.accountShape,
|
|
192
|
+
os: evidence.os, date: evidence.date
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
return validateSample(wire);
|
|
197
|
+
}
|
|
198
|
+
/** Negotiation is opt in. Existing emitters continue to send v2. */
|
|
199
|
+
export function chooseWireVersion(serverAccepted) {
|
|
200
|
+
return serverAccepted.includes(WIRE_SCHEMA_VERSION_V3) ? WIRE_SCHEMA_VERSION_V3 : 2;
|
|
201
|
+
}
|
|
202
|
+
//# sourceMappingURL=wire.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wire.js","sourceRoot":"","sources":["../../src/contracts/wire.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { Snapshot } from "./types.js";
|
|
2
|
+
export declare const RETENTION_MILLISECONDS: number;
|
|
3
|
+
/** Rust twin: data_rules::freshness_policy. Poll jitter plus bounded request latency. */
|
|
4
|
+
export declare function freshnessPolicy(input: {
|
|
5
|
+
sourceClass: string;
|
|
6
|
+
observedAt: string;
|
|
7
|
+
now: string;
|
|
8
|
+
provider?: string;
|
|
9
|
+
writer?: string;
|
|
10
|
+
}): {
|
|
11
|
+
ttlSeconds: number;
|
|
12
|
+
expiresAt: string;
|
|
13
|
+
availability: string;
|
|
14
|
+
};
|
|
15
|
+
export declare function retainSnapshots(rows: readonly Snapshot[], now: number): Snapshot[];
|
|
16
|
+
export type FixKind = "reconnect" | "open_app" | "sign_in" | "switch_on" | "unsupported";
|
|
17
|
+
export interface ConnectionFlag {
|
|
18
|
+
provider: Snapshot["provider"];
|
|
19
|
+
accountId?: string;
|
|
20
|
+
reason: string;
|
|
21
|
+
fixKind: FixKind;
|
|
22
|
+
}
|
|
23
|
+
export declare function fixKind(reason: string): FixKind;
|
|
24
|
+
export declare function displayReason(row: Snapshot, now: string): string | null;
|
|
25
|
+
/** Active identities come from credentials or connections, never observation age. */
|
|
26
|
+
export declare function projectSnapshots(rows: readonly Snapshot[], now: string, active?: ReadonlyMap<string, ReadonlySet<string>>): {
|
|
27
|
+
snapshots: Snapshot[];
|
|
28
|
+
flags: ConnectionFlag[];
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=data-rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-rules.d.ts","sourceRoot":"","sources":["../src/data-rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,eAAO,MAAM,sBAAsB,QAAiB,CAAC;AAErD,yFAAyF;AACzF,wBAAgB,eAAe,CAAC,KAAK,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE;;;;EAWlI;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,QAAQ,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,CAElF;AAED,MAAM,MAAM,OAAO,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,aAAa,CAAC;AACzF,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAM/C;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMvE;AAED,qFAAqF;AACrF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,SAAS,QAAQ,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG;IAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;IAAC,KAAK,EAAE,cAAc,EAAE,CAAA;CAAE,CAa9K"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
export const RETENTION_MILLISECONDS = 7 * 86_400_000;
|
|
2
|
+
/** Rust twin: data_rules::freshness_policy. Poll jitter plus bounded request latency. */
|
|
3
|
+
export function freshnessPolicy(input) {
|
|
4
|
+
const desktopIntervals = { CLAUDE: 900, GEMINI_CLI: 900, ANTIGRAVITY: 600, CODEX: 300, CURSOR: 300, GROK: 300, KIMI: 300, OPENROUTER: 300, OPENCODE: 300 };
|
|
5
|
+
const interval = input.sourceClass === "native_payload" ? 60
|
|
6
|
+
: input.writer === "desktop" ? desktopIntervals[input.provider ?? ""] ?? 900 : 900;
|
|
7
|
+
const ttlSeconds = interval * 1.2 + 60;
|
|
8
|
+
const observed = Date.parse(input.observedAt);
|
|
9
|
+
const now = Date.parse(input.now);
|
|
10
|
+
const deadline = observed + ttlSeconds * 1000;
|
|
11
|
+
const expiresAt = Number.isFinite(deadline) ? new Date(deadline).toISOString() : input.observedAt;
|
|
12
|
+
return { ttlSeconds, expiresAt, availability: !Number.isFinite(now) || !Number.isFinite(observed) || now < observed
|
|
13
|
+
? "unavailable" : now < deadline ? "fresh" : "stale" };
|
|
14
|
+
}
|
|
15
|
+
export function retainSnapshots(rows, now) {
|
|
16
|
+
return rows.filter(row => Date.parse(row.observedAt) >= now - RETENTION_MILLISECONDS);
|
|
17
|
+
}
|
|
18
|
+
export function fixKind(reason) {
|
|
19
|
+
if (reason === "disabled")
|
|
20
|
+
return "switch_on";
|
|
21
|
+
if (reason === "missing_credentials")
|
|
22
|
+
return "sign_in";
|
|
23
|
+
if (["expired_credentials", "stale", "rate_limited", "network_failure", "not_measured"].includes(reason))
|
|
24
|
+
return "open_app";
|
|
25
|
+
if (["quota_unavailable", "unlimited", "placeholder", "schema_drift"].includes(reason))
|
|
26
|
+
return "unsupported";
|
|
27
|
+
return "reconnect";
|
|
28
|
+
}
|
|
29
|
+
export function displayReason(row, now) {
|
|
30
|
+
if (row.availability !== undefined)
|
|
31
|
+
return row.availability;
|
|
32
|
+
if (row.window.kind === "unknown" || row.kind === "runtime_info" || row.meter === "ACQUISITION")
|
|
33
|
+
return "placeholder";
|
|
34
|
+
if (!Number.isFinite(row.value) || row.value < 0 || (row.unit === "PERCENT" && row.value > 100))
|
|
35
|
+
return "quota_unavailable";
|
|
36
|
+
if (freshnessPolicy({ ...row, sourceClass: row.source, now }).availability !== "fresh")
|
|
37
|
+
return "stale";
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
/** Active identities come from credentials or connections, never observation age. */
|
|
41
|
+
export function projectSnapshots(rows, now, active) {
|
|
42
|
+
const snapshots = [];
|
|
43
|
+
const flags = new Map();
|
|
44
|
+
for (const row of rows) {
|
|
45
|
+
const accounts = active?.get(row.provider);
|
|
46
|
+
const reason = row.availability ?? (accounts !== undefined && (!row.accountId || !accounts.has(row.accountId))
|
|
47
|
+
? "account_not_connected" : displayReason(row, now));
|
|
48
|
+
if (reason === null)
|
|
49
|
+
snapshots.push({ ...row, expiresAt: freshnessPolicy({ ...row, sourceClass: row.source, now }).expiresAt });
|
|
50
|
+
else
|
|
51
|
+
flags.set([row.provider, row.accountId, reason].join(":"), {
|
|
52
|
+
provider: row.provider, ...(row.accountId ? { accountId: row.accountId } : {}), reason, fixKind: fixKind(reason)
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
return { snapshots, flags: [...flags.values()] };
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=data-rules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-rules.js","sourceRoot":"","sources":["../src/data-rules.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,GAAG,UAAU,CAAC;AAErD,yFAAyF;AACzF,MAAM,UAAU,eAAe,CAAC,KAAmG;IACjI,MAAM,gBAAgB,GAAqC,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC;IAC7L,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,KAAK,gBAAgB,CAAC,CAAC,CAAC,EAAE;QAC1D,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACrF,MAAM,UAAU,GAAG,QAAQ,GAAG,GAAG,GAAG,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,IAAI,CAAC;IAC9C,MAAM,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;IAClG,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,QAAQ;YACjH,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAyB,EAAE,GAAW;IACpE,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,GAAG,GAAG,sBAAsB,CAAC,CAAC;AACxF,CAAC;AAUD,MAAM,UAAU,OAAO,CAAC,MAAc;IACpC,IAAI,MAAM,KAAK,UAAU;QAAE,OAAO,WAAW,CAAC;IAC9C,IAAI,MAAM,KAAK,qBAAqB;QAAE,OAAO,SAAS,CAAC;IACvD,IAAI,CAAC,qBAAqB,EAAE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,UAAU,CAAC;IAC5H,IAAI,CAAC,mBAAmB,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,aAAa,CAAC;IAC7G,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAa,EAAE,GAAW;IACtD,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS;QAAE,OAAO,GAAG,CAAC,YAAY,CAAC;IAC5D,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,IAAI,GAAG,CAAC,KAAK,KAAK,aAAa;QAAE,OAAO,aAAa,CAAC;IACtH,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,GAAG,CAAC,KAAK,GAAG,GAAG,CAAC;QAAE,OAAO,mBAAmB,CAAC;IAC5H,IAAI,eAAe,CAAC,EAAE,GAAG,GAAG,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,YAAY,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IACvG,OAAO,IAAI,CAAC;AACd,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,gBAAgB,CAAC,IAAyB,EAAE,GAAW,EAAE,MAAiD;IACxH,MAAM,SAAS,GAAe,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,IAAI,GAAG,EAA0B,CAAC;IAChD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC5G,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;QACvD,IAAI,MAAM,KAAK,IAAI;YAAE,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,SAAS,EAAE,eAAe,CAAC,EAAE,GAAG,GAAG,EAAE,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;;YAC3H,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBAC9D,QAAQ,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC;aACjH,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;AACnD,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -8,9 +8,14 @@ export * from "./failures.js";
|
|
|
8
8
|
export * from "./forecast.js";
|
|
9
9
|
export * from "./format.js";
|
|
10
10
|
export * from "./freshness.js";
|
|
11
|
+
export * from "./data-rules.js";
|
|
11
12
|
export * from "./merge.js";
|
|
12
13
|
export * from "./normalizer.js";
|
|
13
14
|
export * from "./policy.js";
|
|
14
15
|
export * from "./schedule.js";
|
|
15
16
|
export * from "./types.js";
|
|
17
|
+
export * from "./contracts/wire.js";
|
|
18
|
+
export * from "./activity/contract.js";
|
|
19
|
+
export * from "./contracts/notify.js";
|
|
20
|
+
export * from "./contracts/surfaces.js";
|
|
16
21
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -8,9 +8,14 @@ export * from "./failures.js";
|
|
|
8
8
|
export * from "./forecast.js";
|
|
9
9
|
export * from "./format.js";
|
|
10
10
|
export * from "./freshness.js";
|
|
11
|
+
export * from "./data-rules.js";
|
|
11
12
|
export * from "./merge.js";
|
|
12
13
|
export * from "./normalizer.js";
|
|
13
14
|
export * from "./policy.js";
|
|
14
15
|
export * from "./schedule.js";
|
|
15
16
|
export * from "./types.js";
|
|
17
|
+
export * from "./contracts/wire.js";
|
|
18
|
+
export * from "./activity/contract.js";
|
|
19
|
+
export * from "./contracts/notify.js";
|
|
20
|
+
export * from "./contracts/surfaces.js";
|
|
16
21
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC"}
|
package/dist/normalizer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalizer.d.ts","sourceRoot":"","sources":["../src/normalizer.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"normalizer.d.ts","sourceRoot":"","sources":["../src/normalizer.ts"],"names":[],"mappings":"AAAA,OAAO,EAWL,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,QAAQ,EAad,MAAM,YAAY,CAAC;AA6IpB,kDAAkD;AAClD,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAmD1C,wBAAgB,cAAc,CAAC,GAAG,EAAE,QAAQ,GAAG,QAAQ,GAAG,IAAI,CA0D7D;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,QAAQ,EAAE,GAAG,QAAQ,EAAE,CAK1E;AAED;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,sEAAsE;IACtE,QAAQ,EAAE,SAAS,YAAY,EAAE,CAAC;IAClC,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,SAAS,QAAQ,EAAE,GAC7B,eAAe,CAgBjB;AAUD,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEpD"}
|
package/dist/normalizer.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { ACCOUNT_ID_PATTERN, MAX_SNAPSHOT_AMOUNT, PROVIDER_CODES, SNAPSHOT_OBSERVED_VIA, SNAPSHOT_SOURCE_KINDS, SNAPSHOT_WRITERS, UNKNOWN_PROVENANCE } from "./types.js";
|
|
1
|
+
import { ACCOUNT_ID_PATTERN, CONNECTOR_VERIFICATIONS, MAX_SNAPSHOT_AMOUNT, PROVIDER_CODES, SNAPSHOT_KINDS, SNAPSHOT_OBSERVED_VIA, SNAPSHOT_SOURCE_KINDS, SNAPSHOT_WRITERS, UNKNOWN_PROVENANCE } from "./types.js";
|
|
2
|
+
import { SNAPSHOT_AVAILABILITIES } from "./connection-state.js";
|
|
2
3
|
const units = new Set(["PERCENT", "CREDITS", "TOKENS", "REQUESTS"]);
|
|
3
4
|
const sources = new Set([
|
|
4
5
|
"native_payload",
|
|
@@ -8,7 +9,10 @@ const sources = new Set([
|
|
|
8
9
|
"manual_entry"
|
|
9
10
|
]);
|
|
10
11
|
const precisions = new Set(["exact", "estimated", "manual"]);
|
|
11
|
-
const currencies = new Set(["USD"]);
|
|
12
|
+
const currencies = new Set(["USD", "CNY"]);
|
|
13
|
+
const verifications = new Set(CONNECTOR_VERIFICATIONS);
|
|
14
|
+
const kinds = new Set(SNAPSHOT_KINDS);
|
|
15
|
+
const availabilities = new Set(SNAPSHOT_AVAILABILITIES);
|
|
12
16
|
const providerCodes = new Set(PROVIDER_CODES);
|
|
13
17
|
const sourceKinds = new Set(SNAPSHOT_SOURCE_KINDS);
|
|
14
18
|
const observedVia = new Set(SNAPSHOT_OBSERVED_VIA);
|
|
@@ -43,7 +47,17 @@ function normalizeWindow(value) {
|
|
|
43
47
|
return { kind, durationSeconds: duration };
|
|
44
48
|
}
|
|
45
49
|
function normalizeLabels(value) {
|
|
46
|
-
if (!isRecord(value)
|
|
50
|
+
if (!isRecord(value))
|
|
51
|
+
return null;
|
|
52
|
+
const verification = value["verification"];
|
|
53
|
+
if (typeof verification !== "string" || !verifications.has(verification))
|
|
54
|
+
return null;
|
|
55
|
+
const evidence = value["verificationEvidence"];
|
|
56
|
+
if (evidence !== undefined && (verification !== "VERIFIED_LIVE" || !isRecord(evidence) ||
|
|
57
|
+
typeof evidence["providerVersion"] !== "string" || !evidence["providerVersion"].trim() ||
|
|
58
|
+
typeof evidence["accountShape"] !== "string" || !evidence["accountShape"].trim() ||
|
|
59
|
+
typeof evidence["os"] !== "string" || !evidence["os"].trim() ||
|
|
60
|
+
!isIsoInstant(evidence["date"])))
|
|
47
61
|
return null;
|
|
48
62
|
const credentialOrigin = value["credentialOrigin"];
|
|
49
63
|
const dataInterfaceStatus = value["dataInterfaceStatus"];
|
|
@@ -61,11 +75,23 @@ function normalizeLabels(value) {
|
|
|
61
75
|
return null;
|
|
62
76
|
if (automationRisk !== "low" && automationRisk !== "high")
|
|
63
77
|
return null;
|
|
64
|
-
|
|
78
|
+
const base = {
|
|
65
79
|
credentialOrigin,
|
|
66
80
|
dataInterfaceStatus,
|
|
67
|
-
automationRisk
|
|
68
|
-
|
|
81
|
+
automationRisk
|
|
82
|
+
};
|
|
83
|
+
if (verification === "UNVERIFIED" || verification === "VERIFIED_FIXTURES") {
|
|
84
|
+
return { ...base, verification };
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
...base,
|
|
88
|
+
verification,
|
|
89
|
+
...(evidence === undefined ? {} : { verificationEvidence: {
|
|
90
|
+
providerVersion: evidence["providerVersion"],
|
|
91
|
+
accountShape: evidence["accountShape"],
|
|
92
|
+
os: evidence["os"],
|
|
93
|
+
date: evidence["date"]
|
|
94
|
+
} })
|
|
69
95
|
};
|
|
70
96
|
}
|
|
71
97
|
/**
|
|
@@ -168,6 +194,12 @@ function readWriter(value) {
|
|
|
168
194
|
return value;
|
|
169
195
|
}
|
|
170
196
|
export function normalizeMeter(raw) {
|
|
197
|
+
if (raw.kind !== undefined && (typeof raw.kind !== "string" || !kinds.has(raw.kind)))
|
|
198
|
+
return null;
|
|
199
|
+
if (raw.availability !== undefined && (typeof raw.availability !== "string" || !availabilities.has(raw.availability)))
|
|
200
|
+
return null;
|
|
201
|
+
if (raw.retryAt !== undefined && (raw.availability !== "rate_limited" || !isIsoInstant(raw.retryAt)))
|
|
202
|
+
return null;
|
|
171
203
|
if (typeof raw.provider !== "string" || !providerCodes.has(raw.provider))
|
|
172
204
|
return null;
|
|
173
205
|
if (typeof raw.meter !== "string" || !safeMeter.test(raw.meter))
|
|
@@ -222,7 +254,10 @@ export function normalizeMeter(raw) {
|
|
|
222
254
|
? {}
|
|
223
255
|
: { accountLabel }),
|
|
224
256
|
...(provenance === null ? {} : { provenance }),
|
|
225
|
-
...(writer === null ? {} : { writer })
|
|
257
|
+
...(writer === null ? {} : { writer }),
|
|
258
|
+
...(raw.kind === undefined ? {} : { kind: raw.kind }),
|
|
259
|
+
...(raw.availability === undefined ? {} : { availability: raw.availability }),
|
|
260
|
+
...(raw.retryAt === undefined ? {} : { retryAt: raw.retryAt })
|
|
226
261
|
};
|
|
227
262
|
}
|
|
228
263
|
export function normalizeMeters(rawMeters) {
|
package/dist/normalizer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalizer.js","sourceRoot":"","sources":["../src/normalizer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"normalizer.js","sourceRoot":"","sources":["../src/normalizer.ts"],"names":[],"mappings":"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"}
|