@viceme-ai/sdk 0.1.6 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -5
- package/dist/bootstrap.min.js +1 -1
- package/dist/bootstrap.min.js.map +1 -1
- package/dist/chunks/client-DKsaEtwq.js +941 -0
- package/dist/chunks/client-DKsaEtwq.js.map +1 -0
- package/dist/chunks/version-C3KVoLNb.js +51 -0
- package/dist/chunks/version-C3KVoLNb.js.map +1 -0
- package/dist/core/build-endpoints.d.ts +9 -0
- package/dist/core/build-endpoints.d.ts.map +1 -0
- package/dist/core/capabilities.d.ts +79 -0
- package/dist/core/capabilities.d.ts.map +1 -0
- package/dist/core/client.d.ts +14 -2
- package/dist/core/client.d.ts.map +1 -1
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/errors.d.ts +1 -1
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/presentation.d.ts +24 -0
- package/dist/core/presentation.d.ts.map +1 -0
- package/dist/danmaku/anchor.d.ts +14 -0
- package/dist/danmaku/anchor.d.ts.map +1 -0
- package/dist/danmaku/index.d.ts +12 -0
- package/dist/danmaku/index.d.ts.map +1 -0
- package/dist/danmaku/mount.d.ts +5 -0
- package/dist/danmaku/mount.d.ts.map +1 -0
- package/dist/danmaku.js +198 -0
- package/dist/danmaku.js.map +1 -0
- package/dist/generated/public-contract.d.ts +630 -14
- package/dist/generated/public-contract.d.ts.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +52 -50
- package/dist/index.js.map +1 -1
- package/dist/loader/attributes.d.ts +1 -1
- package/dist/loader/attributes.d.ts.map +1 -1
- package/dist/loader/auto-loader.d.ts +6 -6
- package/dist/loader/auto-loader.d.ts.map +1 -1
- package/dist/loader/mount-handle.d.ts +2 -2
- package/dist/loader/mount-handle.d.ts.map +1 -1
- package/dist/loader/registry.d.ts +2 -2
- package/dist/manifest.json +37 -23
- package/dist/session/session.d.ts +15 -2
- package/dist/session/session.d.ts.map +1 -1
- package/dist/testing/test-adapter.d.ts +3 -1
- package/dist/testing/test-adapter.d.ts.map +1 -1
- package/dist/testing.js +14 -8
- package/dist/testing.js.map +1 -1
- package/dist/transport/transport.d.ts +4 -2
- package/dist/transport/transport.d.ts.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/viceme.min.js +232 -1
- package/dist/viceme.min.js.map +1 -1
- package/package.json +8 -5
- package/dist/chunks/client-BAlcnQI_.js +0 -275
- package/dist/chunks/client-BAlcnQI_.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-contract.d.ts","sourceRoot":"","sources":["../../src/generated/public-contract.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"public-contract.d.ts","sourceRoot":"","sources":["../../src/generated/public-contract.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `@viceme-ai/sdk` public entry.
|
|
3
3
|
*
|
|
4
|
-
* Production consumers get
|
|
5
|
-
* lives under `@viceme-ai/sdk/testing`.
|
|
6
|
-
* are added only when the capability is real.
|
|
4
|
+
* Production consumers get `createViceMe` plus public types. Test injection
|
|
5
|
+
* lives under `@viceme-ai/sdk/testing`.
|
|
7
6
|
*/
|
|
8
7
|
import { resolveApiBaseUrl } from './core/config.ts';
|
|
9
8
|
import { ViceMeError, isViceMeError, type ViceMeErrorCode } from './core/errors.ts';
|
|
10
9
|
import type { ViceMeClient, ViceMeMountedInstance } from './core/client.ts';
|
|
11
10
|
import type { ViceMeRegion, ViceMeConfig } from './core/config.ts';
|
|
12
11
|
import type { ViceMeClientState } from './core/lifecycle.ts';
|
|
12
|
+
import type { AccessCapability, AccessDecision, AccessFeaturePresentation, AccessPolicyType, AccessReason, AuthCapability, AuthState, CheckoutCapability, CheckoutOptions, CheckoutResult } from './core/capabilities.ts';
|
|
13
|
+
import type { WorkUser } from './session/session.ts';
|
|
13
14
|
import { SDK_VERSION, API_MAJOR } from './version.ts';
|
|
14
15
|
export { ViceMeError, isViceMeError, SDK_VERSION, API_MAJOR, resolveApiBaseUrl };
|
|
15
|
-
export type { ViceMeClient, ViceMeMountedInstance, ViceMeConfig, ViceMeRegion, ViceMeClientState, ViceMeErrorCode, };
|
|
16
|
+
export type { ViceMeClient, ViceMeMountedInstance, ViceMeConfig, ViceMeRegion, ViceMeClientState, ViceMeErrorCode, AccessCapability, AccessDecision, AccessFeaturePresentation, AccessPolicyType, AccessReason, AuthCapability, AuthState, CheckoutCapability, CheckoutOptions, CheckoutResult, WorkUser, };
|
|
16
17
|
/**
|
|
17
18
|
* Create a headless ViceMe client for one Work.
|
|
18
19
|
*
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,iBAAiB,EAAwB,MAAM,kBAAkB,CAAC;AAE3E,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,yBAAyB,EACzB,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,SAAS,EACT,kBAAkB,EAClB,eAAe,EACf,cAAc,EACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;AACjF,YAAY,EACV,YAAY,EACZ,qBAAqB,EACrB,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,yBAAyB,EACzB,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,SAAS,EACT,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,QAAQ,GACT,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,GAAG,YAAY,CAO1D"}
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { V as
|
|
2
|
-
import { A as
|
|
3
|
-
|
|
1
|
+
import { V as n } from "./chunks/version-C3KVoLNb.js";
|
|
2
|
+
import { A as L, S as U, i as S } from "./chunks/version-C3KVoLNb.js";
|
|
3
|
+
import { v as A, V as b, r as h } from "./chunks/client-DKsaEtwq.js";
|
|
4
|
+
const p = 1e4, T = /* @__PURE__ */ new Map([
|
|
4
5
|
[400, "CONFIG_INVALID"],
|
|
5
6
|
[401, "SESSION_EXPIRED"],
|
|
6
|
-
[403, "
|
|
7
|
+
[403, "CAPABILITY_DISABLED"],
|
|
7
8
|
[404, "WORK_NOT_FOUND"],
|
|
8
9
|
[409, "CONFIG_INVALID"],
|
|
9
10
|
[422, "CONFIG_INVALID"],
|
|
@@ -11,44 +12,44 @@ const A = 1e4, h = /* @__PURE__ */ new Map([
|
|
|
11
12
|
]), m = /* @__PURE__ */ new Set([
|
|
12
13
|
"CONFIG_INVALID",
|
|
13
14
|
"WORK_NOT_FOUND",
|
|
14
|
-
"ORIGIN_NOT_ALLOWED",
|
|
15
15
|
"CAPABILITY_DISABLED",
|
|
16
16
|
"SESSION_EXPIRED",
|
|
17
|
+
"AUTH_REQUIRED",
|
|
18
|
+
"AUTH_CANCELLED",
|
|
19
|
+
"RETURN_URL_NOT_ALLOWED",
|
|
17
20
|
"RATE_LIMITED",
|
|
18
21
|
"NETWORK_TIMEOUT",
|
|
19
22
|
"CHECKOUT_UNAVAILABLE",
|
|
20
23
|
"INTERNAL_ERROR"
|
|
21
24
|
]);
|
|
22
|
-
function
|
|
23
|
-
if (typeof
|
|
24
|
-
const e =
|
|
25
|
-
|
|
26
|
-
const t = e, s = {};
|
|
27
|
-
return typeof t.code == "string" && m.has(t.code) && (s.code = t.code), typeof t.message == "string" && (s.message = t.message.slice(0, 200)), typeof t.retryable == "boolean" && (s.retryable = t.retryable), typeof t.requestId == "string" && (s.requestId = t.requestId), s;
|
|
25
|
+
function O(s) {
|
|
26
|
+
if (typeof s != "object" || s === null) return {};
|
|
27
|
+
const e = s, t = typeof e.error == "object" && e.error !== null ? e.error : e, r = {};
|
|
28
|
+
return typeof t.code == "string" && m.has(t.code) && (r.code = t.code), typeof t.message == "string" && (r.message = t.message.slice(0, 200)), typeof t.retryable == "boolean" && (r.retryable = t.retryable), typeof t.requestId == "string" && (r.requestId = t.requestId), r;
|
|
28
29
|
}
|
|
29
|
-
function
|
|
30
|
+
function _() {
|
|
30
31
|
return typeof crypto < "u" && typeof crypto.randomUUID == "function" ? crypto.randomUUID() : `req-${Math.random().toString(36).slice(2)}`;
|
|
31
32
|
}
|
|
32
|
-
class
|
|
33
|
+
class R {
|
|
33
34
|
#e;
|
|
34
35
|
#t;
|
|
35
36
|
#r;
|
|
36
37
|
#o;
|
|
37
38
|
constructor(e) {
|
|
38
|
-
this.#e = e.apiBaseUrl.replace(/\/+$/, ""), this.#t = e.fetchImpl ?? globalThis.fetch.bind(globalThis), this.#r = e.defaultTimeoutMs ??
|
|
39
|
+
this.#e = e.apiBaseUrl.replace(/\/+$/, ""), this.#t = e.fetchImpl ?? globalThis.fetch.bind(globalThis), this.#r = e.defaultTimeoutMs ?? p, this.#o = e.generateRequestId ?? _;
|
|
39
40
|
}
|
|
40
41
|
async request(e) {
|
|
41
42
|
if (e.signal?.aborted)
|
|
42
43
|
throw this.#s(e.signal);
|
|
43
|
-
const t = e.timeoutMs ?? this.#r,
|
|
44
|
+
const t = e.timeoutMs ?? this.#r, r = new AbortController();
|
|
44
45
|
let c = !1;
|
|
45
|
-
const
|
|
46
|
-
c = !0,
|
|
47
|
-
}, t), d = () =>
|
|
46
|
+
const E = setTimeout(() => {
|
|
47
|
+
c = !0, r.abort(new I());
|
|
48
|
+
}, t), d = () => r.abort(new I(!1));
|
|
48
49
|
e.signal?.addEventListener("abort", d, { once: !0 });
|
|
49
50
|
const l = this.#o();
|
|
50
51
|
try {
|
|
51
|
-
const
|
|
52
|
+
const o = await this.#t(`${this.#e}${e.path}`, {
|
|
52
53
|
method: e.method,
|
|
53
54
|
// Public API is CORS-only; credentials must stay off so Shop session
|
|
54
55
|
// cookies can never attach to public SDK requests.
|
|
@@ -56,44 +57,45 @@ class _ {
|
|
|
56
57
|
mode: "cors",
|
|
57
58
|
headers: {
|
|
58
59
|
"content-type": "application/json",
|
|
59
|
-
"x-client-request-id": l
|
|
60
|
+
"x-client-request-id": l,
|
|
61
|
+
...e.authorization !== void 0 ? { authorization: `Bearer ${e.authorization}` } : {}
|
|
60
62
|
},
|
|
61
63
|
body: e.body !== void 0 ? JSON.stringify(e.body) : void 0,
|
|
62
|
-
signal:
|
|
64
|
+
signal: r.signal
|
|
63
65
|
});
|
|
64
|
-
let
|
|
66
|
+
let i;
|
|
65
67
|
try {
|
|
66
|
-
|
|
67
|
-
} catch (
|
|
68
|
+
i = await o.json();
|
|
69
|
+
} catch (a) {
|
|
68
70
|
if (e.signal?.aborted || c)
|
|
69
|
-
throw
|
|
70
|
-
|
|
71
|
+
throw a;
|
|
72
|
+
i = void 0;
|
|
71
73
|
}
|
|
72
|
-
const u =
|
|
73
|
-
if (!
|
|
74
|
-
const
|
|
75
|
-
throw new
|
|
76
|
-
code:
|
|
77
|
-
message:
|
|
78
|
-
retryable:
|
|
79
|
-
requestId:
|
|
74
|
+
const u = o.headers.get("x-request-id") ?? void 0;
|
|
75
|
+
if (!o.ok) {
|
|
76
|
+
const a = O(i), f = a.code ?? T.get(o.status) ?? "INTERNAL_ERROR";
|
|
77
|
+
throw new n({
|
|
78
|
+
code: f,
|
|
79
|
+
message: a.message ?? "Public API request failed.",
|
|
80
|
+
retryable: a.retryable,
|
|
81
|
+
requestId: a.requestId ?? u
|
|
80
82
|
});
|
|
81
83
|
}
|
|
82
|
-
return { status:
|
|
83
|
-
} catch (
|
|
84
|
-
throw e.signal?.aborted ? this.#s(e.signal) : c ? new
|
|
84
|
+
return { status: o.status, body: i, requestId: u };
|
|
85
|
+
} catch (o) {
|
|
86
|
+
throw e.signal?.aborted ? this.#s(e.signal) : c ? new n({
|
|
85
87
|
code: "NETWORK_TIMEOUT",
|
|
86
88
|
message: "Public API request timed out.",
|
|
87
89
|
retryable: !0,
|
|
88
90
|
requestId: l
|
|
89
|
-
}) :
|
|
91
|
+
}) : o instanceof n ? o : o instanceof DOMException && o.name === "AbortError" ? new DOMException("ViceMe request aborted by caller.", "AbortError") : new n({
|
|
90
92
|
code: "INTERNAL_ERROR",
|
|
91
93
|
message: "Public API request failed.",
|
|
92
94
|
retryable: !0,
|
|
93
95
|
requestId: l
|
|
94
96
|
});
|
|
95
97
|
} finally {
|
|
96
|
-
clearTimeout(
|
|
98
|
+
clearTimeout(E), e.signal?.removeEventListener("abort", d);
|
|
97
99
|
}
|
|
98
100
|
}
|
|
99
101
|
/** Caller-abort error that preserves the caller's own abort reason. */
|
|
@@ -101,26 +103,26 @@ class _ {
|
|
|
101
103
|
return e.reason instanceof Error ? e.reason : new DOMException("ViceMe request aborted by caller.", "AbortError");
|
|
102
104
|
}
|
|
103
105
|
}
|
|
104
|
-
function
|
|
105
|
-
return new
|
|
106
|
+
function N(s) {
|
|
107
|
+
return new R(s);
|
|
106
108
|
}
|
|
107
109
|
class I extends DOMException {
|
|
108
110
|
constructor(e = !0) {
|
|
109
111
|
super(e ? "ViceMe request timed out." : "ViceMe request aborted.", "AbortError");
|
|
110
112
|
}
|
|
111
113
|
}
|
|
112
|
-
function
|
|
113
|
-
const e =
|
|
114
|
-
apiBaseUrl:
|
|
114
|
+
function D(s) {
|
|
115
|
+
const e = A(s), t = h(e.region), r = N({
|
|
116
|
+
apiBaseUrl: t
|
|
115
117
|
});
|
|
116
|
-
return new
|
|
118
|
+
return new b({ config: e, transport: r });
|
|
117
119
|
}
|
|
118
120
|
export {
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
121
|
+
L as API_MAJOR,
|
|
122
|
+
U as SDK_VERSION,
|
|
123
|
+
n as ViceMeError,
|
|
124
|
+
D as createViceMe,
|
|
123
125
|
S as isViceMeError,
|
|
124
|
-
|
|
126
|
+
h as resolveApiBaseUrl
|
|
125
127
|
};
|
|
126
128
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/transport/transport.ts","../src/index.ts"],"sourcesContent":["/**\n * HTTP transport for the public API.\n *\n * Responsibilities: request execution with timeout, abort, client request ids,\n * and normalization of every failure into the public `ViceMeError` model.\n * Capabilities and the loader never build their own `fetch` calls — they go\n * through a Transport so tests can swap in `createMemoryTransport`.\n */\n\nimport { ViceMeError, type ViceMeErrorCode } from '../core/errors.ts';\n\nexport interface TransportRequest {\n method: 'GET' | 'POST';\n /** Absolute path under the public API base, e.g. `/public/v1/work-sessions`. */\n path: string;\n /** JSON-serializable request body. */\n body?: unknown;\n signal?: AbortSignal;\n /** Per-request timeout; defaults to the transport default. */\n timeoutMs?: number;\n}\n\nexport interface TransportResponse {\n status: number;\n body?: unknown;\n /** Echoed server request id, when provided. */\n requestId?: string;\n}\n\nexport interface Transport {\n request(request: TransportRequest): Promise<TransportResponse>;\n}\n\nexport interface FetchTransportOptions {\n apiBaseUrl: string;\n /** Injectable for tests; defaults to global `fetch`. */\n fetchImpl?: typeof fetch;\n defaultTimeoutMs?: number;\n /** Injectable id generator (default: `crypto.randomUUID`). */\n generateRequestId?: () => string;\n}\n\nconst DEFAULT_TIMEOUT_MS = 10_000;\n\nconst STATUS_CODE_MAP: ReadonlyMap<number, ViceMeErrorCode> = new Map([\n [400, 'CONFIG_INVALID'],\n [401, 'SESSION_EXPIRED'],\n [403, 'ORIGIN_NOT_ALLOWED'],\n [404, 'WORK_NOT_FOUND'],\n [409, 'CONFIG_INVALID'],\n [422, 'CONFIG_INVALID'],\n [429, 'RATE_LIMITED'],\n]);\n\nconst KNOWN_CODES: ReadonlySet<string> = new Set([\n 'CONFIG_INVALID',\n 'WORK_NOT_FOUND',\n 'ORIGIN_NOT_ALLOWED',\n 'CAPABILITY_DISABLED',\n 'SESSION_EXPIRED',\n 'RATE_LIMITED',\n 'NETWORK_TIMEOUT',\n 'CHECKOUT_UNAVAILABLE',\n 'INTERNAL_ERROR',\n]);\n\n/** Extract a stable error payload from a JSON error body, if well-formed. */\nfunction parseErrorBody(body: unknown): {\n code?: ViceMeErrorCode;\n message?: string;\n retryable?: boolean;\n requestId?: string;\n} {\n if (typeof body !== 'object' || body === null) return {};\n const error = (body as { error?: unknown }).error;\n if (typeof error !== 'object' || error === null) return {};\n const candidate = error as Record<string, unknown>;\n const result: {\n code?: ViceMeErrorCode;\n message?: string;\n retryable?: boolean;\n requestId?: string;\n } = {};\n if (typeof candidate.code === 'string' && KNOWN_CODES.has(candidate.code)) {\n result.code = candidate.code as ViceMeErrorCode;\n }\n if (typeof candidate.message === 'string') {\n result.message = candidate.message.slice(0, 200);\n }\n if (typeof candidate.retryable === 'boolean') {\n result.retryable = candidate.retryable;\n }\n if (typeof candidate.requestId === 'string') {\n result.requestId = candidate.requestId;\n }\n return result;\n}\n\nfunction defaultRequestId(): string {\n if (typeof crypto !== 'undefined' && typeof crypto.randomUUID === 'function') {\n return crypto.randomUUID();\n }\n return `req-${Math.random().toString(36).slice(2)}`;\n}\n\nexport class FetchTransport implements Transport {\n readonly #apiBaseUrl: string;\n readonly #fetchImpl: typeof fetch;\n readonly #defaultTimeoutMs: number;\n readonly #generateRequestId: () => string;\n\n constructor(options: FetchTransportOptions) {\n this.#apiBaseUrl = options.apiBaseUrl.replace(/\\/+$/, '');\n this.#fetchImpl = options.fetchImpl ?? globalThis.fetch.bind(globalThis);\n this.#defaultTimeoutMs = options.defaultTimeoutMs ?? DEFAULT_TIMEOUT_MS;\n this.#generateRequestId = options.generateRequestId ?? defaultRequestId;\n }\n\n async request(request: TransportRequest): Promise<TransportResponse> {\n // A pre-aborted signal must never reach the network. Preserve the\n // caller's abort reason when one was set.\n if (request.signal?.aborted) {\n throw this.#callerAbortError(request.signal);\n }\n const timeoutMs = request.timeoutMs ?? this.#defaultTimeoutMs;\n const controller = new AbortController();\n // Engine notes: Chrome/Firefox reject fetch with the abort reason and\n // WebKit may reject with a plain error — so timeout/abort classification\n // keys off our own timer/signal state, never off the exception shape.\n let timedOut = false;\n const timer = setTimeout(() => {\n timedOut = true;\n controller.abort(new TimeoutAbort());\n }, timeoutMs);\n const onOuterAbort = () => controller.abort(new TimeoutAbort(false));\n request.signal?.addEventListener('abort', onOuterAbort, { once: true });\n\n const requestId = this.#generateRequestId();\n try {\n const response = await this.#fetchImpl(`${this.#apiBaseUrl}${request.path}`, {\n method: request.method,\n // Public API is CORS-only; credentials must stay off so Shop session\n // cookies can never attach to public SDK requests.\n credentials: 'omit',\n mode: 'cors',\n headers: {\n 'content-type': 'application/json',\n 'x-client-request-id': requestId,\n },\n body: request.body !== undefined ? JSON.stringify(request.body) : undefined,\n signal: controller.signal,\n });\n\n // Body reading stays inside the same timeout/abort lifecycle: a server\n // that returns headers and then stalls the body still hits\n // NETWORK_TIMEOUT, caller abort still cancels the read, and a late\n // body can never outlive a destroyed client/session.\n let body: unknown;\n try {\n body = await response.json();\n } catch (error) {\n // A malformed/empty body is tolerated; a cancelled read must\n // propagate so the outer handler can classify it.\n if (request.signal?.aborted || timedOut) {\n throw error;\n }\n body = undefined;\n }\n\n const serverRequestId = response.headers.get('x-request-id') ?? undefined;\n if (!response.ok) {\n const parsed = parseErrorBody(body);\n const code = parsed.code ?? STATUS_CODE_MAP.get(response.status) ?? 'INTERNAL_ERROR';\n throw new ViceMeError({\n code,\n message: parsed.message ?? 'Public API request failed.',\n retryable: parsed.retryable,\n requestId: parsed.requestId ?? serverRequestId,\n });\n }\n return { status: response.status, body, requestId: serverRequestId };\n } catch (cause) {\n if (request.signal?.aborted) {\n throw this.#callerAbortError(request.signal);\n }\n if (timedOut) {\n throw new ViceMeError({\n code: 'NETWORK_TIMEOUT',\n message: 'Public API request timed out.',\n retryable: true,\n requestId,\n });\n }\n // Non-OK statuses already carry a normalized error — pass it through.\n if (cause instanceof ViceMeError) {\n throw cause;\n }\n if (cause instanceof DOMException && cause.name === 'AbortError') {\n throw new DOMException('ViceMe request aborted by caller.', 'AbortError');\n }\n throw new ViceMeError({\n code: 'INTERNAL_ERROR',\n message: 'Public API request failed.',\n retryable: true,\n requestId,\n });\n } finally {\n clearTimeout(timer);\n request.signal?.removeEventListener('abort', onOuterAbort);\n }\n }\n\n /** Caller-abort error that preserves the caller's own abort reason. */\n #callerAbortError(signal: AbortSignal): unknown {\n return signal.reason instanceof Error\n ? signal.reason\n : new DOMException('ViceMe request aborted by caller.', 'AbortError');\n }\n}\n\nexport function createFetchTransport(options: FetchTransportOptions): Transport {\n return new FetchTransport(options);\n}\n\n/** Internal marker distinguishing timeout aborts from caller aborts. */\nclass TimeoutAbort extends DOMException {\n constructor(timedOut = true) {\n super(timedOut ? 'ViceMe request timed out.' : 'ViceMe request aborted.', 'AbortError');\n }\n}\n","/**\n * `@viceme-ai/sdk` public entry.\n *\n * Production consumers get exactly `createViceMe` plus types. Test injection\n * lives under `@viceme-ai/sdk/testing`. Capability subpaths (danmaku, payment)\n * are added only when the capability is real.\n */\n\nimport { createFetchTransport } from './transport/transport.ts';\nimport { resolveApiBaseUrl, validatePublicConfig } from './core/config.ts';\nimport { ViceMeClientImpl } from './core/client.ts';\nimport { ViceMeError, isViceMeError, type ViceMeErrorCode } from './core/errors.ts';\nimport type { ViceMeClient, ViceMeMountedInstance } from './core/client.ts';\nimport type { ViceMeRegion, ViceMeConfig } from './core/config.ts';\nimport type { ViceMeClientState } from './core/lifecycle.ts';\nimport { SDK_VERSION, API_MAJOR } from './version.ts';\n\nexport { ViceMeError, isViceMeError, SDK_VERSION, API_MAJOR, resolveApiBaseUrl };\nexport type {\n ViceMeClient,\n ViceMeMountedInstance,\n ViceMeConfig,\n ViceMeRegion,\n ViceMeClientState,\n ViceMeErrorCode,\n};\n\n/**\n * Create a headless ViceMe client for one Work.\n *\n * @example\n * ```ts\n * const client = createViceMe({ workKey: 'wrk_public_xxx', region: 'cn' });\n * await client.ready();\n * client.destroy();\n * ```\n */\nexport function createViceMe(config: unknown): ViceMeClient {\n const validated = validatePublicConfig(config);\n const transport = createFetchTransport({\n apiBaseUrl: resolveApiBaseUrl(validated.region),\n });\n return new ViceMeClientImpl({ config: validated, transport });\n}\n"],"names":["DEFAULT_TIMEOUT_MS","STATUS_CODE_MAP","KNOWN_CODES","parseErrorBody","body","error","candidate","result","defaultRequestId","FetchTransport","#apiBaseUrl","#fetchImpl","#defaultTimeoutMs","#generateRequestId","options","request","#callerAbortError","timeoutMs","controller","timedOut","timer","TimeoutAbort","onOuterAbort","requestId","response","serverRequestId","parsed","code","ViceMeError","cause","signal","createFetchTransport","createViceMe","config","validated","validatePublicConfig","transport","resolveApiBaseUrl","ViceMeClientImpl"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/transport/transport.ts","../src/index.ts"],"sourcesContent":["/**\n * HTTP transport for the public API.\n *\n * Responsibilities: request execution with timeout, abort, client request ids,\n * and normalization of every failure into the public `ViceMeError` model.\n * Capabilities and the loader never build their own `fetch` calls — they go\n * through a Transport so tests can swap in `createMemoryTransport`.\n */\n\nimport { ViceMeError, type ViceMeErrorCode } from '../core/errors.ts';\n\nexport interface TransportRequest {\n method: 'GET' | 'POST' | 'PUT' | 'DELETE';\n /** Absolute path under the public API base, e.g. `/v1/public/v1/work-sessions`. */\n path: string;\n /** JSON-serializable request body. */\n body?: unknown;\n /** Work-session token. It is never persisted by the transport. */\n authorization?: string;\n signal?: AbortSignal;\n /** Per-request timeout; defaults to the transport default. */\n timeoutMs?: number;\n}\n\nexport interface TransportResponse {\n status: number;\n body?: unknown;\n /** Echoed server request id, when provided. */\n requestId?: string;\n}\n\nexport interface Transport {\n request(request: TransportRequest): Promise<TransportResponse>;\n}\n\nexport interface FetchTransportOptions {\n apiBaseUrl: string;\n /** Injectable for tests; defaults to global `fetch`. */\n fetchImpl?: typeof fetch;\n defaultTimeoutMs?: number;\n /** Injectable id generator (default: `crypto.randomUUID`). */\n generateRequestId?: () => string;\n}\n\nconst DEFAULT_TIMEOUT_MS = 10_000;\n\nconst STATUS_CODE_MAP: ReadonlyMap<number, ViceMeErrorCode> = new Map([\n [400, 'CONFIG_INVALID'],\n [401, 'SESSION_EXPIRED'],\n [403, 'CAPABILITY_DISABLED'],\n [404, 'WORK_NOT_FOUND'],\n [409, 'CONFIG_INVALID'],\n [422, 'CONFIG_INVALID'],\n [429, 'RATE_LIMITED'],\n]);\n\nconst KNOWN_CODES: ReadonlySet<string> = new Set([\n 'CONFIG_INVALID',\n 'WORK_NOT_FOUND',\n 'CAPABILITY_DISABLED',\n 'SESSION_EXPIRED',\n 'AUTH_REQUIRED',\n 'AUTH_CANCELLED',\n 'RETURN_URL_NOT_ALLOWED',\n 'RATE_LIMITED',\n 'NETWORK_TIMEOUT',\n 'CHECKOUT_UNAVAILABLE',\n 'INTERNAL_ERROR',\n]);\n\n/** Extract a stable error payload from a JSON error body, if well-formed. */\nfunction parseErrorBody(body: unknown): {\n code?: ViceMeErrorCode;\n message?: string;\n retryable?: boolean;\n requestId?: string;\n} {\n if (typeof body !== 'object' || body === null) return {};\n const raw = body as Record<string, unknown>;\n const candidate =\n typeof raw.error === 'object' && raw.error !== null\n ? (raw.error as Record<string, unknown>)\n : raw;\n const result: {\n code?: ViceMeErrorCode;\n message?: string;\n retryable?: boolean;\n requestId?: string;\n } = {};\n if (typeof candidate.code === 'string' && KNOWN_CODES.has(candidate.code)) {\n result.code = candidate.code as ViceMeErrorCode;\n }\n if (typeof candidate.message === 'string') {\n result.message = candidate.message.slice(0, 200);\n }\n if (typeof candidate.retryable === 'boolean') {\n result.retryable = candidate.retryable;\n }\n if (typeof candidate.requestId === 'string') {\n result.requestId = candidate.requestId;\n }\n return result;\n}\n\nfunction defaultRequestId(): string {\n if (typeof crypto !== 'undefined' && typeof crypto.randomUUID === 'function') {\n return crypto.randomUUID();\n }\n return `req-${Math.random().toString(36).slice(2)}`;\n}\n\nexport class FetchTransport implements Transport {\n readonly #apiBaseUrl: string;\n readonly #fetchImpl: typeof fetch;\n readonly #defaultTimeoutMs: number;\n readonly #generateRequestId: () => string;\n\n constructor(options: FetchTransportOptions) {\n this.#apiBaseUrl = options.apiBaseUrl.replace(/\\/+$/, '');\n this.#fetchImpl = options.fetchImpl ?? globalThis.fetch.bind(globalThis);\n this.#defaultTimeoutMs = options.defaultTimeoutMs ?? DEFAULT_TIMEOUT_MS;\n this.#generateRequestId = options.generateRequestId ?? defaultRequestId;\n }\n\n async request(request: TransportRequest): Promise<TransportResponse> {\n // A pre-aborted signal must never reach the network. Preserve the\n // caller's abort reason when one was set.\n if (request.signal?.aborted) {\n throw this.#callerAbortError(request.signal);\n }\n const timeoutMs = request.timeoutMs ?? this.#defaultTimeoutMs;\n const controller = new AbortController();\n // Engine notes: Chrome/Firefox reject fetch with the abort reason and\n // WebKit may reject with a plain error — so timeout/abort classification\n // keys off our own timer/signal state, never off the exception shape.\n let timedOut = false;\n const timer = setTimeout(() => {\n timedOut = true;\n controller.abort(new TimeoutAbort());\n }, timeoutMs);\n const onOuterAbort = () => controller.abort(new TimeoutAbort(false));\n request.signal?.addEventListener('abort', onOuterAbort, { once: true });\n\n const requestId = this.#generateRequestId();\n try {\n const response = await this.#fetchImpl(`${this.#apiBaseUrl}${request.path}`, {\n method: request.method,\n // Public API is CORS-only; credentials must stay off so Shop session\n // cookies can never attach to public SDK requests.\n credentials: 'omit',\n mode: 'cors',\n headers: {\n 'content-type': 'application/json',\n 'x-client-request-id': requestId,\n ...(request.authorization !== undefined\n ? { authorization: `Bearer ${request.authorization}` }\n : {}),\n },\n body: request.body !== undefined ? JSON.stringify(request.body) : undefined,\n signal: controller.signal,\n });\n\n // Body reading stays inside the same timeout/abort lifecycle: a server\n // that returns headers and then stalls the body still hits\n // NETWORK_TIMEOUT, caller abort still cancels the read, and a late\n // body can never outlive a destroyed client/session.\n let body: unknown;\n try {\n body = await response.json();\n } catch (error) {\n // A malformed/empty body is tolerated; a cancelled read must\n // propagate so the outer handler can classify it.\n if (request.signal?.aborted || timedOut) {\n throw error;\n }\n body = undefined;\n }\n\n const serverRequestId = response.headers.get('x-request-id') ?? undefined;\n if (!response.ok) {\n const parsed = parseErrorBody(body);\n const code = parsed.code ?? STATUS_CODE_MAP.get(response.status) ?? 'INTERNAL_ERROR';\n throw new ViceMeError({\n code,\n message: parsed.message ?? 'Public API request failed.',\n retryable: parsed.retryable,\n requestId: parsed.requestId ?? serverRequestId,\n });\n }\n return { status: response.status, body, requestId: serverRequestId };\n } catch (cause) {\n if (request.signal?.aborted) {\n throw this.#callerAbortError(request.signal);\n }\n if (timedOut) {\n throw new ViceMeError({\n code: 'NETWORK_TIMEOUT',\n message: 'Public API request timed out.',\n retryable: true,\n requestId,\n });\n }\n // Non-OK statuses already carry a normalized error — pass it through.\n if (cause instanceof ViceMeError) {\n throw cause;\n }\n if (cause instanceof DOMException && cause.name === 'AbortError') {\n throw new DOMException('ViceMe request aborted by caller.', 'AbortError');\n }\n throw new ViceMeError({\n code: 'INTERNAL_ERROR',\n message: 'Public API request failed.',\n retryable: true,\n requestId,\n });\n } finally {\n clearTimeout(timer);\n request.signal?.removeEventListener('abort', onOuterAbort);\n }\n }\n\n /** Caller-abort error that preserves the caller's own abort reason. */\n #callerAbortError(signal: AbortSignal): unknown {\n return signal.reason instanceof Error\n ? signal.reason\n : new DOMException('ViceMe request aborted by caller.', 'AbortError');\n }\n}\n\nexport function createFetchTransport(options: FetchTransportOptions): Transport {\n return new FetchTransport(options);\n}\n\n/** Internal marker distinguishing timeout aborts from caller aborts. */\nclass TimeoutAbort extends DOMException {\n constructor(timedOut = true) {\n super(timedOut ? 'ViceMe request timed out.' : 'ViceMe request aborted.', 'AbortError');\n }\n}\n","/**\n * `@viceme-ai/sdk` public entry.\n *\n * Production consumers get `createViceMe` plus public types. Test injection\n * lives under `@viceme-ai/sdk/testing`.\n */\n\nimport { createFetchTransport } from './transport/transport.ts';\nimport { resolveApiBaseUrl, validatePublicConfig } from './core/config.ts';\nimport { ViceMeClientImpl } from './core/client.ts';\nimport { ViceMeError, isViceMeError, type ViceMeErrorCode } from './core/errors.ts';\nimport type { ViceMeClient, ViceMeMountedInstance } from './core/client.ts';\nimport type { ViceMeRegion, ViceMeConfig } from './core/config.ts';\nimport type { ViceMeClientState } from './core/lifecycle.ts';\nimport type {\n AccessCapability,\n AccessDecision,\n AccessFeaturePresentation,\n AccessPolicyType,\n AccessReason,\n AuthCapability,\n AuthState,\n CheckoutCapability,\n CheckoutOptions,\n CheckoutResult,\n} from './core/capabilities.ts';\nimport type { WorkUser } from './session/session.ts';\nimport { SDK_VERSION, API_MAJOR } from './version.ts';\n\nexport { ViceMeError, isViceMeError, SDK_VERSION, API_MAJOR, resolveApiBaseUrl };\nexport type {\n ViceMeClient,\n ViceMeMountedInstance,\n ViceMeConfig,\n ViceMeRegion,\n ViceMeClientState,\n ViceMeErrorCode,\n AccessCapability,\n AccessDecision,\n AccessFeaturePresentation,\n AccessPolicyType,\n AccessReason,\n AuthCapability,\n AuthState,\n CheckoutCapability,\n CheckoutOptions,\n CheckoutResult,\n WorkUser,\n};\n\n/**\n * Create a headless ViceMe client for one Work.\n *\n * @example\n * ```ts\n * const client = createViceMe({ workKey: 'wrk_public_xxx', region: 'cn' });\n * await client.ready();\n * client.destroy();\n * ```\n */\nexport function createViceMe(config: unknown): ViceMeClient {\n const validated = validatePublicConfig(config);\n const apiBaseUrl = resolveApiBaseUrl(validated.region);\n const transport = createFetchTransport({\n apiBaseUrl,\n });\n return new ViceMeClientImpl({ config: validated, transport });\n}\n"],"names":["DEFAULT_TIMEOUT_MS","STATUS_CODE_MAP","KNOWN_CODES","parseErrorBody","body","raw","candidate","result","defaultRequestId","FetchTransport","#apiBaseUrl","#fetchImpl","#defaultTimeoutMs","#generateRequestId","options","request","#callerAbortError","timeoutMs","controller","timedOut","timer","TimeoutAbort","onOuterAbort","requestId","response","error","serverRequestId","parsed","code","ViceMeError","cause","signal","createFetchTransport","createViceMe","config","validated","validatePublicConfig","apiBaseUrl","resolveApiBaseUrl","transport","ViceMeClientImpl"],"mappings":";;;AA4CA,MAAMA,IAAqB,KAErBC,wBAA4D,IAAI;AAAA,EACpE,CAAC,KAAK,gBAAgB;AAAA,EACtB,CAAC,KAAK,iBAAiB;AAAA,EACvB,CAAC,KAAK,qBAAqB;AAAA,EAC3B,CAAC,KAAK,gBAAgB;AAAA,EACtB,CAAC,KAAK,gBAAgB;AAAA,EACtB,CAAC,KAAK,gBAAgB;AAAA,EACtB,CAAC,KAAK,cAAc;AACtB,CAAC,GAEKC,wBAAuC,IAAI;AAAA,EAC/C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAGD,SAASC,EAAeC,GAKtB;AACA,MAAI,OAAOA,KAAS,YAAYA,MAAS,aAAa,CAAA;AACtD,QAAMC,IAAMD,GACNE,IACJ,OAAOD,EAAI,SAAU,YAAYA,EAAI,UAAU,OAC1CA,EAAI,QACLA,GACAE,IAKF,CAAA;AACJ,SAAI,OAAOD,EAAU,QAAS,YAAYJ,EAAY,IAAII,EAAU,IAAI,MACtEC,EAAO,OAAOD,EAAU,OAEtB,OAAOA,EAAU,WAAY,aAC/BC,EAAO,UAAUD,EAAU,QAAQ,MAAM,GAAG,GAAG,IAE7C,OAAOA,EAAU,aAAc,cACjCC,EAAO,YAAYD,EAAU,YAE3B,OAAOA,EAAU,aAAc,aACjCC,EAAO,YAAYD,EAAU,YAExBC;AACT;AAEA,SAASC,IAA2B;AAClC,SAAI,OAAO,SAAW,OAAe,OAAO,OAAO,cAAe,aACzD,OAAO,WAAA,IAET,OAAO,KAAK,OAAA,EAAS,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC;AACnD;AAEO,MAAMC,EAAoC;AAAA,EACtCC;AAAA,EACAC;AAAA,EACAC;AAAA,EACAC;AAAA,EAET,YAAYC,GAAgC;AAC1C,SAAKJ,KAAcI,EAAQ,WAAW,QAAQ,QAAQ,EAAE,GACxD,KAAKH,KAAaG,EAAQ,aAAa,WAAW,MAAM,KAAK,UAAU,GACvE,KAAKF,KAAoBE,EAAQ,oBAAoBd,GACrD,KAAKa,KAAqBC,EAAQ,qBAAqBN;AAAA,EACzD;AAAA,EAEA,MAAM,QAAQO,GAAuD;AAGnE,QAAIA,EAAQ,QAAQ;AAClB,YAAM,KAAKC,GAAkBD,EAAQ,MAAM;AAE7C,UAAME,IAAYF,EAAQ,aAAa,KAAKH,IACtCM,IAAa,IAAI,gBAAA;AAIvB,QAAIC,IAAW;AACf,UAAMC,IAAQ,WAAW,MAAM;AAC7B,MAAAD,IAAW,IACXD,EAAW,MAAM,IAAIG,GAAc;AAAA,IACrC,GAAGJ,CAAS,GACNK,IAAe,MAAMJ,EAAW,MAAM,IAAIG,EAAa,EAAK,CAAC;AACnE,IAAAN,EAAQ,QAAQ,iBAAiB,SAASO,GAAc,EAAE,MAAM,IAAM;AAEtE,UAAMC,IAAY,KAAKV,GAAA;AACvB,QAAI;AACF,YAAMW,IAAW,MAAM,KAAKb,GAAW,GAAG,KAAKD,EAAW,GAAGK,EAAQ,IAAI,IAAI;AAAA,QAC3E,QAAQA,EAAQ;AAAA;AAAA;AAAA,QAGhB,aAAa;AAAA,QACb,MAAM;AAAA,QACN,SAAS;AAAA,UACP,gBAAgB;AAAA,UAChB,uBAAuBQ;AAAA,UACvB,GAAIR,EAAQ,kBAAkB,SAC1B,EAAE,eAAe,UAAUA,EAAQ,aAAa,OAChD,CAAA;AAAA,QAAC;AAAA,QAEP,MAAMA,EAAQ,SAAS,SAAY,KAAK,UAAUA,EAAQ,IAAI,IAAI;AAAA,QAClE,QAAQG,EAAW;AAAA,MAAA,CACpB;AAMD,UAAId;AACJ,UAAI;AACF,QAAAA,IAAO,MAAMoB,EAAS,KAAA;AAAA,MACxB,SAASC,GAAO;AAGd,YAAIV,EAAQ,QAAQ,WAAWI;AAC7B,gBAAMM;AAER,QAAArB,IAAO;AAAA,MACT;AAEA,YAAMsB,IAAkBF,EAAS,QAAQ,IAAI,cAAc,KAAK;AAChE,UAAI,CAACA,EAAS,IAAI;AAChB,cAAMG,IAASxB,EAAeC,CAAI,GAC5BwB,IAAOD,EAAO,QAAQ1B,EAAgB,IAAIuB,EAAS,MAAM,KAAK;AACpE,cAAM,IAAIK,EAAY;AAAA,UACpB,MAAAD;AAAA,UACA,SAASD,EAAO,WAAW;AAAA,UAC3B,WAAWA,EAAO;AAAA,UAClB,WAAWA,EAAO,aAAaD;AAAA,QAAA,CAChC;AAAA,MACH;AACA,aAAO,EAAE,QAAQF,EAAS,QAAQ,MAAApB,GAAM,WAAWsB,EAAA;AAAA,IACrD,SAASI,GAAO;AACd,YAAIf,EAAQ,QAAQ,UACZ,KAAKC,GAAkBD,EAAQ,MAAM,IAEzCI,IACI,IAAIU,EAAY;AAAA,QACpB,MAAM;AAAA,QACN,SAAS;AAAA,QACT,WAAW;AAAA,QACX,WAAAN;AAAA,MAAA,CACD,IAGCO,aAAiBD,IACbC,IAEJA,aAAiB,gBAAgBA,EAAM,SAAS,eAC5C,IAAI,aAAa,qCAAqC,YAAY,IAEpE,IAAID,EAAY;AAAA,QACpB,MAAM;AAAA,QACN,SAAS;AAAA,QACT,WAAW;AAAA,QACX,WAAAN;AAAA,MAAA,CACD;AAAA,IACH,UAAA;AACE,mBAAaH,CAAK,GAClBL,EAAQ,QAAQ,oBAAoB,SAASO,CAAY;AAAA,IAC3D;AAAA,EACF;AAAA;AAAA,EAGAN,GAAkBe,GAA8B;AAC9C,WAAOA,EAAO,kBAAkB,QAC5BA,EAAO,SACP,IAAI,aAAa,qCAAqC,YAAY;AAAA,EACxE;AACF;AAEO,SAASC,EAAqBlB,GAA2C;AAC9E,SAAO,IAAIL,EAAeK,CAAO;AACnC;AAGA,MAAMO,UAAqB,aAAa;AAAA,EACtC,YAAYF,IAAW,IAAM;AAC3B,UAAMA,IAAW,8BAA8B,2BAA2B,YAAY;AAAA,EACxF;AACF;AClLO,SAASc,EAAaC,GAA+B;AAC1D,QAAMC,IAAYC,EAAqBF,CAAM,GACvCG,IAAaC,EAAkBH,EAAU,MAAM,GAC/CI,IAAYP,EAAqB;AAAA,IACrC,YAAAK;AAAA,EAAA,CACD;AACD,SAAO,IAAIG,EAAiB,EAAE,QAAQL,GAAW,WAAAI,GAAW;AAC9D;"}
|
|
@@ -11,7 +11,7 @@ export type ViceMeTheme = 'light' | 'dark' | 'auto';
|
|
|
11
11
|
export interface LoaderAttributes {
|
|
12
12
|
workKey: string;
|
|
13
13
|
region: ViceMeRegion;
|
|
14
|
-
/**
|
|
14
|
+
/** The only released public feature. */
|
|
15
15
|
features: string[];
|
|
16
16
|
/** CSS selector; required whenever features are declared. */
|
|
17
17
|
target?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../../src/loader/attributes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAEpD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,YAAY,CAAC;IACrB,
|
|
1
|
+
{"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../../src/loader/attributes.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAEpD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,YAAY,CAAC;IACrB,wCAAwC;IACxC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,WAAW,CAAC;CACpB;AAcD,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,gBAAgB,CAsDxE"}
|
|
@@ -11,12 +11,12 @@
|
|
|
11
11
|
* and never creates phantom nodes.
|
|
12
12
|
* 4. Read `manifest.json` from the loader's own directory (exact release
|
|
13
13
|
* version; URLs are never assembled from page parameters).
|
|
14
|
-
* 5.
|
|
15
|
-
*
|
|
14
|
+
* 5. Create the local client embedded in this loader, then load the
|
|
15
|
+
* same-version danmaku chunk declared by the manifest.
|
|
16
|
+
* 6. Mount; handles land in an internal registry.
|
|
16
17
|
* 7. Re-running the same instance key returns the original handle — no
|
|
17
|
-
* duplicate
|
|
18
|
-
* 8. A failing
|
|
19
|
-
* the page and other capabilities keep working.
|
|
18
|
+
* duplicate clients, subscriptions, or DOM.
|
|
19
|
+
* 8. A failing mount keeps the host page working and degrades only its client.
|
|
20
20
|
* 9. `pagehide` never auto-destroys (bfcache); cleanup happens on explicit
|
|
21
21
|
* `destroy()` only.
|
|
22
22
|
*
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
* than the fixed `window.ViceMe.versions.vN` namespace.
|
|
25
25
|
*/
|
|
26
26
|
import { type RegisteredInstance } from './registry.ts';
|
|
27
|
-
import type
|
|
27
|
+
import { type ViceMeClient, type ViceMeMountedInstance } from '../core/client.ts';
|
|
28
28
|
export interface ReleaseManifest {
|
|
29
29
|
version: string;
|
|
30
30
|
apiMajor: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-loader.d.ts","sourceRoot":"","sources":["../../src/loader/auto-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,EAA+B,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAIrF,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"auto-loader.d.ts","sourceRoot":"","sources":["../../src/loader/auto-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,EAA+B,KAAK,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAIrF,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC3B,MAAM,mBAAmB,CAAC;AAI3B,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACpD,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS,CAAC;IACpE,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3C,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE;QAER,CAAC,KAAK,EAAE,MAAM,GAAG,uBAAuB,GAAG,SAAS,CAAC;KACtD,CAAC;CACH;AA4ED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,uBAAuB,CA2CxE;AA0GD,wBAAsB,aAAa,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuJ5E;AAkBD,iBAAS,SAAS,IAAI,IAAI,CAYzB;AAKD,eAAO,MAAM,mBAAmB,kBAAY,CAAC;AAC7C,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The handle
|
|
2
|
+
* The handle the danmaku mount function returns to the loader (no
|
|
3
3
|
* registry/identity concerns). The loader wraps it into the public
|
|
4
4
|
* `ViceMeMountedInstance`, which carries the registry-assigned `instanceKey`
|
|
5
5
|
* and owns idempotent destroy + event dispatch.
|
|
@@ -20,6 +20,6 @@ export interface CapabilityMountHandle {
|
|
|
20
20
|
export type CapabilityMountFunction = (client: ViceMeClient, options: CapabilityMountOptions) => Promise<CapabilityMountHandle>;
|
|
21
21
|
/** Convenience for ESM-direct capability entry points. */
|
|
22
22
|
export interface ViceMeCapabilityModule {
|
|
23
|
-
|
|
23
|
+
mountDanmaku: CapabilityMountFunction;
|
|
24
24
|
}
|
|
25
25
|
//# sourceMappingURL=mount-handle.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mount-handle.d.ts","sourceRoot":"","sources":["../../src/loader/mount-handle.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,WAAW,sBAAsB;IACrC,sEAAsE;IACtE,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,WAAW,CAAC;CACpB;AAED,2EAA2E;AAC3E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,0EAA0E;IAC1E,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,MAAM,uBAAuB,GAAG,CACpC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,sBAAsB,KAC5B,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAEpC,0DAA0D;AAC1D,MAAM,WAAW,sBAAsB;IACrC,
|
|
1
|
+
{"version":3,"file":"mount-handle.d.ts","sourceRoot":"","sources":["../../src/loader/mount-handle.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,WAAW,sBAAsB;IACrC,sEAAsE;IACtE,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,WAAW,CAAC;CACpB;AAED,2EAA2E;AAC3E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,0EAA0E;IAC1E,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,MAAM,uBAAuB,GAAG,CACpC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,sBAAsB,KAC5B,OAAO,CAAC,qBAAqB,CAAC,CAAC;AAEpC,0DAA0D;AAC1D,MAAM,WAAW,sBAAsB;IACrC,YAAY,EAAE,uBAAuB,CAAC;CACvC"}
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Loader registry.
|
|
3
3
|
*
|
|
4
4
|
* Only the CDN loader maintains this registry (explicit `createViceMe()`
|
|
5
|
-
* instances never register).
|
|
6
|
-
* `major + region + workKey`;
|
|
5
|
+
* instances never register). Local clients are shared by
|
|
6
|
+
* `major + region + workKey`; danmaku mounts are deduplicated by
|
|
7
7
|
* `clientKey + capability + target Element identity`.
|
|
8
8
|
*
|
|
9
9
|
* The registry itself is never exposed on `window` — only the fixed
|
package/dist/manifest.json
CHANGED
|
@@ -1,38 +1,52 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.
|
|
2
|
+
"version": "0.3.0",
|
|
3
3
|
"apiMajor": 1,
|
|
4
4
|
"loader": "viceme.min.js",
|
|
5
|
-
"features": {
|
|
5
|
+
"features": {
|
|
6
|
+
"danmaku": "danmaku.js"
|
|
7
|
+
},
|
|
6
8
|
"files": {
|
|
7
9
|
"bootstrap.min.js": {
|
|
8
|
-
"sha256": "
|
|
9
|
-
"sri": "sha384-
|
|
10
|
-
"bytes":
|
|
11
|
-
"gzipBytes":
|
|
10
|
+
"sha256": "43efabdb3e999156cac881090602e45edcc795b73dcaaee50fe710f7c0cb45e3",
|
|
11
|
+
"sri": "sha384-iAKo6ccUGEfjVkOBlHiisPrXqeVwysUM+zjb0QGlRhdtO8nBTXj26nLQhFK8exbr",
|
|
12
|
+
"bytes": 964,
|
|
13
|
+
"gzipBytes": 597
|
|
12
14
|
},
|
|
13
|
-
"chunks/client-
|
|
14
|
-
"sha256": "
|
|
15
|
-
"sri": "sha384-
|
|
16
|
-
"bytes":
|
|
17
|
-
"gzipBytes":
|
|
15
|
+
"chunks/client-DKsaEtwq.js": {
|
|
16
|
+
"sha256": "215d5f1ce4c3ebb21df44e2f86327d471e224d74defd07da4cac09fa8913110d",
|
|
17
|
+
"sri": "sha384-TMesmEZMwyfhvg9t+q0Id9joAJ6MkSJsfvWwwfXZRGow1WQHqpHakHQl6HTAwBwI",
|
|
18
|
+
"bytes": 31777,
|
|
19
|
+
"gzipBytes": 9163
|
|
20
|
+
},
|
|
21
|
+
"chunks/version-C3KVoLNb.js": {
|
|
22
|
+
"sha256": "e1765ca3565e9e8566728472e9d64f17e77b9c8fc5ac65eec7d8717cc7650adc",
|
|
23
|
+
"sri": "sha384-bh1TNmcDTeJL073++MHNHwLgW+azxmhexy0BK1907gxGB91w8oZrBwBQ923H1ddB",
|
|
24
|
+
"bytes": 1257,
|
|
25
|
+
"gzipBytes": 643
|
|
26
|
+
},
|
|
27
|
+
"danmaku.js": {
|
|
28
|
+
"sha256": "9aa58ccc8eaba1909d64ade32c91c1967bb85227715ee8dde2d5f9c8a0932842",
|
|
29
|
+
"sri": "sha384-r9JmGBivx6h+PUyqj8QyEqzwqZjlDSkX4Wvg5WMDCdxTEFbnQFbAOsndyGT2L3Hj",
|
|
30
|
+
"bytes": 8905,
|
|
31
|
+
"gzipBytes": 3189
|
|
18
32
|
},
|
|
19
33
|
"index.js": {
|
|
20
|
-
"sha256": "
|
|
21
|
-
"sri": "sha384-
|
|
22
|
-
"bytes":
|
|
23
|
-
"gzipBytes":
|
|
34
|
+
"sha256": "21a34ce5b311ca2aac5372b983d17b0d4efccbb3851f4986fd1264ec8c29607b",
|
|
35
|
+
"sri": "sha384-2u0cWBXoddhqx/G1Vq9/UJCCasn7/vSK6ZTryHTw3GI/Q9DMG+pitgeW3qCfW7Oa",
|
|
36
|
+
"bytes": 4328,
|
|
37
|
+
"gzipBytes": 1796
|
|
24
38
|
},
|
|
25
39
|
"testing.js": {
|
|
26
|
-
"sha256": "
|
|
27
|
-
"sri": "sha384-
|
|
28
|
-
"bytes":
|
|
29
|
-
"gzipBytes":
|
|
40
|
+
"sha256": "301aeb3ec7167c7bebfd743146f0596dc5dfe005750eed0ab157a5acb7984465",
|
|
41
|
+
"sri": "sha384-fdECgh/BTwQyaBM67/oe2K6Qgj90bQn7ejwKzA5hi97RKrTeqkQm0l6G3FFKPezI",
|
|
42
|
+
"bytes": 2256,
|
|
43
|
+
"gzipBytes": 1017
|
|
30
44
|
},
|
|
31
45
|
"viceme.min.js": {
|
|
32
|
-
"sha256": "
|
|
33
|
-
"sri": "sha384-
|
|
34
|
-
"bytes":
|
|
35
|
-
"gzipBytes":
|
|
46
|
+
"sha256": "a49be63eb7bd742991a28c9ad446627f398b3ff4bb03eeaa60de4a661e8e6abb",
|
|
47
|
+
"sri": "sha384-jVJgJxCBf0COQKWju5vsPl6x+5Ld6j+chP7io45FiKXBSQdLm2DTQ9EPWfBKRefD",
|
|
48
|
+
"bytes": 36859,
|
|
49
|
+
"gzipBytes": 11292
|
|
36
50
|
}
|
|
37
51
|
}
|
|
38
52
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Public visitor session.
|
|
3
3
|
*
|
|
4
4
|
* ```text
|
|
5
|
-
* SDK + workKey + Origin -> POST /public/v1/work-sessions
|
|
5
|
+
* SDK + workKey + Origin -> POST /v1/public/v1/work-sessions
|
|
6
6
|
* -> short-lived capability token -> public capability calls
|
|
7
7
|
* ```
|
|
8
8
|
*
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* `destroy()`. `workKey` locates the Work — it is never an authorization
|
|
12
12
|
* credential.
|
|
13
13
|
*/
|
|
14
|
-
import type { Transport } from '../transport/transport.ts';
|
|
14
|
+
import type { Transport, TransportRequest, TransportResponse } from '../transport/transport.ts';
|
|
15
15
|
import type { components } from '../generated/public-contract.ts';
|
|
16
16
|
export type CreateWorkSessionRequestDto = components['schemas']['CreateWorkSessionRequest'];
|
|
17
17
|
export interface WorkDescriptor {
|
|
@@ -25,6 +25,12 @@ export interface WorkSessionSnapshot {
|
|
|
25
25
|
token?: string;
|
|
26
26
|
/** Epoch milliseconds when the token expires, when provided by the server. */
|
|
27
27
|
expiresAt?: number;
|
|
28
|
+
user?: WorkUser;
|
|
29
|
+
}
|
|
30
|
+
export interface WorkUser {
|
|
31
|
+
subject: string;
|
|
32
|
+
nickname: string | null;
|
|
33
|
+
avatarUrl: string | null;
|
|
28
34
|
}
|
|
29
35
|
export interface SessionManagerOptions {
|
|
30
36
|
workKey: string;
|
|
@@ -46,6 +52,13 @@ export declare class SessionManager {
|
|
|
46
52
|
* in-flight request (single flight).
|
|
47
53
|
*/
|
|
48
54
|
establish(): Promise<WorkSessionSnapshot>;
|
|
55
|
+
request(request: Omit<TransportRequest, 'authorization' | 'signal'>): Promise<TransportResponse>;
|
|
56
|
+
authenticate(input: {
|
|
57
|
+
token: string;
|
|
58
|
+
expiresAt: number;
|
|
59
|
+
user: WorkUser;
|
|
60
|
+
}): void;
|
|
61
|
+
signOut(): Promise<void>;
|
|
49
62
|
/** Drop the token; next `establish()` re-authenticates. */
|
|
50
63
|
invalidate(): void;
|
|
51
64
|
/** Hard cleanup: forget the token and pending work. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/session/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/session/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAChG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAQlE,MAAM,MAAM,2BAA2B,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,0BAA0B,CAAC,CAAC;AAE5F,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,8CAA8C;IAC9C,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,cAAc,CAAC;IACrB,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AA4CD,qBAAa,cAAc;;gBAMb,OAAO,EAAE,qBAAqB;IAK1C,IAAI,QAAQ,IAAI,mBAAmB,GAAG,SAAS,CAE9C;IAQD;;;;;;OAMG;IACH,SAAS,IAAI,OAAO,CAAC,mBAAmB,CAAC;IAwBnC,OAAO,CACX,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,eAAe,GAAG,QAAQ,CAAC,GAC1D,OAAO,CAAC,iBAAiB,CAAC;IAsB7B,YAAY,CAAC,KAAK,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,QAAQ,CAAA;KAAE,GAAG,IAAI;IAUzE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAK9B,2DAA2D;IAC3D,UAAU,IAAI,IAAI;IAIlB,uDAAuD;IACvD,OAAO,IAAI,IAAI;CAIhB"}
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
*/
|
|
12
12
|
import type { ViceMeClient } from '../core/client.ts';
|
|
13
13
|
import type { ViceMeRegion } from '../core/config.ts';
|
|
14
|
+
import type { AccessPresenter } from '../core/presentation.ts';
|
|
14
15
|
import type { Transport, TransportRequest } from '../transport/transport.ts';
|
|
15
16
|
export interface MemoryTransportWorkFixture {
|
|
16
17
|
key: string;
|
|
@@ -19,7 +20,7 @@ export interface MemoryTransportWorkFixture {
|
|
|
19
20
|
expiresAt?: number;
|
|
20
21
|
}
|
|
21
22
|
export interface MemoryTransportOptions {
|
|
22
|
-
/** Work descriptor served for `POST /public/v1/work-sessions`. */
|
|
23
|
+
/** Work descriptor served for `POST /v1/public/v1/work-sessions`. */
|
|
23
24
|
work: MemoryTransportWorkFixture;
|
|
24
25
|
/** Artificial response latency in milliseconds (default 0). */
|
|
25
26
|
latencyMs?: number;
|
|
@@ -44,6 +45,7 @@ export interface CreateTestViceMeOptions {
|
|
|
44
45
|
/** Mock transport serving the fixture contract. */
|
|
45
46
|
transport: Transport;
|
|
46
47
|
signal?: AbortSignal;
|
|
48
|
+
presenter?: AccessPresenter;
|
|
47
49
|
/** Stable virtual clock for deterministic time-based assertions. */
|
|
48
50
|
now?: () => number;
|
|
49
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-adapter.d.ts","sourceRoot":"","sources":["../../src/testing/test-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAqB,MAAM,2BAA2B,CAAC;AAEhG,MAAM,WAAW,0BAA0B;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,
|
|
1
|
+
{"version":3,"file":"test-adapter.d.ts","sourceRoot":"","sources":["../../src/testing/test-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAqB,MAAM,2BAA2B,CAAC;AAEhG,MAAM,WAAW,0BAA0B;IACzC,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,qEAAqE;IACrE,IAAI,EAAE,0BAA0B,CAAC;IACjC,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,eAAe,CAAC,EAAE,KAAK,CAAC,KAAK,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrF;AAED,MAAM,WAAW,eAAgB,SAAQ,SAAS;IAChD,iDAAiD;IACjD,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,EAAE,CAAC;CACvC;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,eAAe,CAoDtF;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,YAAY,CAAC;IACrB,mDAAmD;IACnD,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,oEAAoE;IACpE,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,YAAY,CAoB/E;AAED,iEAAiE;AACjE,eAAO,MAAM,YAAY,EAAE,0BAI1B,CAAC"}
|