qca-sdk 0.3.0 → 0.5.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 +275 -1
- package/dist/core/auth.d.ts +12 -0
- package/dist/core/auth.d.ts.map +1 -0
- package/dist/core/auth.js +34 -0
- package/dist/core/auth.js.map +1 -0
- package/dist/core/client.d.ts +14 -0
- package/dist/core/client.d.ts.map +1 -1
- package/dist/core/client.js +36 -11
- package/dist/core/client.js.map +1 -1
- package/dist/core/credentials.d.ts +3 -0
- package/dist/core/credentials.d.ts.map +1 -1
- package/dist/core/credentials.js +3 -1
- package/dist/core/credentials.js.map +1 -1
- package/dist/core/service-account-credential.d.ts +20 -0
- package/dist/core/service-account-credential.d.ts.map +1 -0
- package/dist/core/service-account-credential.js +139 -0
- package/dist/core/service-account-credential.js.map +1 -0
- package/dist/esm/core/auth.d.ts +12 -0
- package/dist/esm/core/auth.d.ts.map +1 -0
- package/dist/esm/core/auth.js +30 -0
- package/dist/esm/core/auth.js.map +1 -0
- package/dist/esm/core/client.d.ts +14 -0
- package/dist/esm/core/client.d.ts.map +1 -1
- package/dist/esm/core/client.js +36 -11
- package/dist/esm/core/client.js.map +1 -1
- package/dist/esm/core/credentials.d.ts +3 -0
- package/dist/esm/core/credentials.d.ts.map +1 -1
- package/dist/esm/core/credentials.js +1 -0
- package/dist/esm/core/credentials.js.map +1 -1
- package/dist/esm/core/service-account-credential.d.ts +20 -0
- package/dist/esm/core/service-account-credential.d.ts.map +1 -0
- package/dist/esm/core/service-account-credential.js +135 -0
- package/dist/esm/core/service-account-credential.js.map +1 -0
- package/dist/esm/forward/forwardClient.d.ts +4 -0
- package/dist/esm/forward/forwardClient.d.ts.map +1 -1
- package/dist/esm/forward/forwardClient.js +4 -0
- package/dist/esm/forward/forwardClient.js.map +1 -1
- package/dist/esm/forward/identity-service-account-token.d.ts +11 -0
- package/dist/esm/forward/identity-service-account-token.d.ts.map +1 -0
- package/dist/esm/forward/identity-service-account-token.js +18 -0
- package/dist/esm/forward/identity-service-account-token.js.map +1 -0
- package/dist/esm/forward/identity.d.ts +2 -0
- package/dist/esm/forward/identity.d.ts.map +1 -1
- package/dist/esm/forward/identity.js +2 -0
- package/dist/esm/forward/identity.js.map +1 -1
- package/dist/esm/forward/index.d.ts +9 -1
- package/dist/esm/forward/index.d.ts.map +1 -1
- package/dist/esm/forward/index.js +7 -1
- package/dist/esm/forward/index.js.map +1 -1
- package/dist/esm/forward/realtime/connection.d.ts +106 -0
- package/dist/esm/forward/realtime/connection.d.ts.map +1 -0
- package/dist/esm/forward/realtime/connection.js +465 -0
- package/dist/esm/forward/realtime/connection.js.map +1 -0
- package/dist/esm/forward/realtime/conversation.d.ts +31 -0
- package/dist/esm/forward/realtime/conversation.d.ts.map +1 -0
- package/dist/esm/forward/realtime/conversation.js +92 -0
- package/dist/esm/forward/realtime/conversation.js.map +1 -0
- package/dist/esm/forward/realtime/realtime.d.ts +9 -0
- package/dist/esm/forward/realtime/realtime.d.ts.map +1 -0
- package/dist/esm/forward/realtime/realtime.js +9 -0
- package/dist/esm/forward/realtime/realtime.js.map +1 -0
- package/dist/esm/forward/realtime/types.d.ts +204 -0
- package/dist/esm/forward/realtime/types.d.ts.map +1 -0
- package/dist/esm/forward/realtime/types.js +7 -0
- package/dist/esm/forward/realtime/types.js.map +1 -0
- package/dist/esm/forward/service-account-token.d.ts +15 -0
- package/dist/esm/forward/service-account-token.d.ts.map +1 -0
- package/dist/esm/forward/service-account-token.js +38 -0
- package/dist/esm/forward/service-account-token.js.map +1 -0
- package/dist/esm/forward/types.d.ts +35 -0
- package/dist/esm/forward/types.d.ts.map +1 -1
- package/dist/esm/index.d.ts +5 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/forward/forwardClient.d.ts +4 -0
- package/dist/forward/forwardClient.d.ts.map +1 -1
- package/dist/forward/forwardClient.js +4 -0
- package/dist/forward/forwardClient.js.map +1 -1
- package/dist/forward/identity-service-account-token.d.ts +11 -0
- package/dist/forward/identity-service-account-token.d.ts.map +1 -0
- package/dist/forward/identity-service-account-token.js +22 -0
- package/dist/forward/identity-service-account-token.js.map +1 -0
- package/dist/forward/identity.d.ts +2 -0
- package/dist/forward/identity.d.ts.map +1 -1
- package/dist/forward/identity.js +2 -0
- package/dist/forward/identity.js.map +1 -1
- package/dist/forward/index.d.ts +9 -1
- package/dist/forward/index.d.ts.map +1 -1
- package/dist/forward/index.js +18 -1
- package/dist/forward/index.js.map +1 -1
- package/dist/forward/realtime/connection.d.ts +106 -0
- package/dist/forward/realtime/connection.d.ts.map +1 -0
- package/dist/forward/realtime/connection.js +473 -0
- package/dist/forward/realtime/connection.js.map +1 -0
- package/dist/forward/realtime/conversation.d.ts +31 -0
- package/dist/forward/realtime/conversation.d.ts.map +1 -0
- package/dist/forward/realtime/conversation.js +97 -0
- package/dist/forward/realtime/conversation.js.map +1 -0
- package/dist/forward/realtime/realtime.d.ts +9 -0
- package/dist/forward/realtime/realtime.d.ts.map +1 -0
- package/dist/forward/realtime/realtime.js +13 -0
- package/dist/forward/realtime/realtime.js.map +1 -0
- package/dist/forward/realtime/types.d.ts +204 -0
- package/dist/forward/realtime/types.d.ts.map +1 -0
- package/dist/forward/realtime/types.js +11 -0
- package/dist/forward/realtime/types.js.map +1 -0
- package/dist/forward/service-account-token.d.ts +15 -0
- package/dist/forward/service-account-token.d.ts.map +1 -0
- package/dist/forward/service-account-token.js +43 -0
- package/dist/forward/service-account-token.js.map +1 -0
- package/dist/forward/types.d.ts +35 -0
- package/dist/forward/types.d.ts.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -1
- package/dist/index.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +12 -3
package/README.md
CHANGED
|
@@ -110,7 +110,7 @@ remains available.
|
|
|
110
110
|
|
|
111
111
|
### Configuration
|
|
112
112
|
|
|
113
|
-
`
|
|
113
|
+
`accessToken` accepts a string or a function returning a string or a promise, re-resolved before every request attempt. `pat` remains available for existing PAT integrations. `QODER_ACCESS_TOKEN` supplies the selected mode's token; PAT mode falls back to `QODER_PAT`. A `Credential` object can be supplied instead; see the authentication section for automatic SA exchange.
|
|
114
114
|
|
|
115
115
|
The base URL comes from `QODER_FORWARD_BASE_URL` for Forward and `QODER_BASE_URL` for Managed, defaulting to `https://api.qoder.com/api/v1/forward` and `https://api.qoder.com/api/v1/cloud`. Explicit constructor options always win.
|
|
116
116
|
|
|
@@ -126,6 +126,148 @@ const client = new ManagedClient({
|
|
|
126
126
|
});
|
|
127
127
|
```
|
|
128
128
|
|
|
129
|
+
## PAT and Service Account authentication
|
|
130
|
+
|
|
131
|
+
PAT and SA are parallel modes. Existing `pat` calls keep working. For an existing
|
|
132
|
+
SAT use `{ authMode: 'sa', accessToken }`. `accessToken` also accepts a callback.
|
|
133
|
+
`QODER_ACCESS_TOKEN` supplies the selected mode's token; only PAT mode falls back
|
|
134
|
+
to `QODER_PAT`. Ordinary clients never automatically read `QODER_SA_KEY`.
|
|
135
|
+
|
|
136
|
+
For automatic SAT exchange, explicitly construct a shared credential:
|
|
137
|
+
|
|
138
|
+
```ts
|
|
139
|
+
import { ForwardClient, ManagedClient, ServiceAccountCredential } from 'qca-sdk';
|
|
140
|
+
|
|
141
|
+
const credential = ServiceAccountCredential.fromEnv({
|
|
142
|
+
region: 'global',
|
|
143
|
+
scopes: ['qca.access', 'forward.access'],
|
|
144
|
+
});
|
|
145
|
+
const forward = new ForwardClient({ credential });
|
|
146
|
+
const managed = new ManagedClient({ credential });
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
For CN, use `region: 'cn'` and matching `https://api.qoder.com.cn/api/v1/forward/`
|
|
150
|
+
and `https://api.qoder.com.cn/api/v1/cloud/` BaseURLs. Managed-only integrations
|
|
151
|
+
can request `['qca.access']`. Scopes and Service Account permissions/workspace
|
|
152
|
+
bindings must be configured server-side; the SDK does not provision them.
|
|
153
|
+
|
|
154
|
+
The credential lazily exchanges the SA Key, caches the server's actual lifetime,
|
|
155
|
+
and renews on the next request in the refresh window. Concurrent callers share
|
|
156
|
+
one exchange. A transient failure can reuse a still-safe SAT; authentication or
|
|
157
|
+
invalid-response failures cannot. Failures enter a bounded cooldown. There is
|
|
158
|
+
no PAT fallback, background refresh, or automatic replay of a 401 write request.
|
|
159
|
+
The independent exchange timeout includes reading its body (default 30 seconds).
|
|
160
|
+
Cancelling a business request ends that caller's wait; the shared exchange can
|
|
161
|
+
continue and cache its result. Already-open streams are not closed by cache expiry.
|
|
162
|
+
|
|
163
|
+
Do not combine `accessToken` with `pat` or `credential`, or an SA credential with
|
|
164
|
+
a static token. Legacy `pat` + custom credential retains provider precedence.
|
|
165
|
+
Request Authorization headers still override automatic injection. `withOptions`
|
|
166
|
+
retains mode and source; explicitly changing `authMode` clears the other mode's
|
|
167
|
+
credentials before applying new options.
|
|
168
|
+
|
|
169
|
+
Run the read-only CN/Global SA smoke separately with `npm run test:live:sa`, setting
|
|
170
|
+
`QODER_SA_CN_KEY` and `QODER_SA_GLOBAL_KEY` in `.env.live` or the process environment.
|
|
171
|
+
Process variables take precedence; `LIVE_ENV_FILE` selects another file.
|
|
172
|
+
Both keys are checked before the first API call. For write/read, Session SSE and
|
|
173
|
+
cleanup verification, run `npm run test:live:sa:execution` with
|
|
174
|
+
`QODER_SA_LIVE_ALLOW_WRITE=true` and `QODER_SA_LIVE_ALLOW_EXECUTION=true`.
|
|
175
|
+
`QODER_SA_MODEL` defaults to `auto`. Ordinary offline and PAT suites do not require
|
|
176
|
+
SA credentials; `QODER_AUTH_MODE` switches examples, not the PAT test suites. See the
|
|
177
|
+
[official authentication contract](https://docs.qoder.com/cloud-agents/api/conventions/authentication).
|
|
178
|
+
|
|
179
|
+
### Forward SAT management
|
|
180
|
+
|
|
181
|
+
Forward exposes explicit admin/Identity SAT issuance and revocation in addition
|
|
182
|
+
to automatic platform exchange. These three endpoints authenticate with an
|
|
183
|
+
**SA Key**, supplied per method call; ordinary business requests still use PAT
|
|
184
|
+
or SAT. The Key overrides client/request Authorization only for that call, is
|
|
185
|
+
never included in the JSON body, and is not saved on the client.
|
|
186
|
+
|
|
187
|
+
`ttl_seconds` is optional (1-43200); omission uses the issuer's default. Issuance
|
|
188
|
+
and revocation are not automatically retried, even when the client or request
|
|
189
|
+
allows retries. Do not blindly repeat an issuance after an uncertain network
|
|
190
|
+
failure: it may already have issued a token. Metadata is for audit information,
|
|
191
|
+
not secrets. Keep the issuance response's Token ID, Credential ID and expiry for
|
|
192
|
+
precise revocation. A returned static SAT does not renew automatically, and
|
|
193
|
+
revocation affects its Forward binding; it does not cancel an already-running
|
|
194
|
+
Session or revoke unrelated Managed/platform access. Never log the SA Key, SAT,
|
|
195
|
+
serialized token response or Authorization headers.
|
|
196
|
+
|
|
197
|
+
Run `npm run test:live:sa:tokens` with `QODER_SA_CN_KEY`,
|
|
198
|
+
`QODER_SA_GLOBAL_KEY` and `QODER_SA_LIVE_ALLOW_WRITE=true` to verify both regions.
|
|
199
|
+
This separate suite issues admin and Identity SATs, checks business access and
|
|
200
|
+
cross-Identity refusal, then revokes the tokens, verifies access is refused and
|
|
201
|
+
deletes its temporary Identities. It does not execute a model or require
|
|
202
|
+
`QODER_SA_LIVE_ALLOW_EXECUTION=true`.
|
|
203
|
+
|
|
204
|
+
```ts
|
|
205
|
+
import { ForwardClient } from 'qca-sdk';
|
|
206
|
+
|
|
207
|
+
const forwardBaseURL = process.env.QODER_FORWARD_BASE_URL || 'https://api.qoder.com/api/v1/forward';
|
|
208
|
+
const saKey = process.env.QODER_SA_KEY!;
|
|
209
|
+
const identityID = process.env.QODER_IDENTITY_ID!;
|
|
210
|
+
const issuer = new ForwardClient({ baseURL: forwardBaseURL });
|
|
211
|
+
// Admin: issuer.serviceAccountTokens.create({ saKey, ttl_seconds: 600 }).
|
|
212
|
+
const token = await issuer.identities.serviceAccountTokens.create(identityID, {
|
|
213
|
+
saKey, ttl_seconds: 600,
|
|
214
|
+
});
|
|
215
|
+
try {
|
|
216
|
+
const runtime = new ForwardClient({
|
|
217
|
+
baseURL: forwardBaseURL, authMode: 'sa', accessToken: token.access_token,
|
|
218
|
+
});
|
|
219
|
+
const page = await runtime.sessions.list({ identity_ids: [identityID], limit: 1 });
|
|
220
|
+
} finally {
|
|
221
|
+
await issuer.serviceAccountTokens.revoke(token.auth_token_id, {
|
|
222
|
+
saKey, target_credential_id: token.credential_id,
|
|
223
|
+
target_expires_at: token.expires_at, reason: 'runtime complete',
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
After building, run `node examples/auth/forward-tokens.mjs`. It revokes its token
|
|
229
|
+
even if the business call fails. Set `QODER_SA_KEY` and `QODER_SA_REGION=cn|global`;
|
|
230
|
+
set `QODER_IDENTITY_ID` for Identity mode, or leave it unset for admin mode.
|
|
231
|
+
|
|
232
|
+
See the official [admin issuance](https://docs.qoder.com/cloud-agents/api/forward/service-account-tokens/create),
|
|
233
|
+
[Identity issuance](https://docs.qoder.com/cloud-agents/api/forward/service-account-tokens/create-identity)
|
|
234
|
+
and [revocation](https://docs.qoder.com/cloud-agents/api/forward/service-account-tokens/revoke) contracts.
|
|
235
|
+
|
|
236
|
+
### Authentication examples
|
|
237
|
+
|
|
238
|
+
The two read-only examples under `examples/auth/` show client construction directly:
|
|
239
|
+
SA Key exchange with automatic caching/renewal, and direct SAT access with renewal
|
|
240
|
+
managed by the caller. Each lists Forward templates and Managed agents; no model
|
|
241
|
+
execution or resources are created. The SA needs both API scopes/permissions and
|
|
242
|
+
its Managed workspace binding in the selected region.
|
|
243
|
+
|
|
244
|
+
```sh
|
|
245
|
+
npm run build
|
|
246
|
+
# Configure QODER_SA_REGION=cn|global and only the credential needed by the demo.
|
|
247
|
+
node --env-file=.env.live examples/auth/sa-key.mjs # QODER_SA_KEY; leave QODER_ACCESS_TOKEN empty
|
|
248
|
+
node --env-file=.env.live examples/auth/sa-token.mjs # QODER_ACCESS_TOKEN; leave QODER_SA_KEY empty
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
The existing business examples keep PAT as the default. Node's `--env-file` can
|
|
252
|
+
load `.env.live`; the example helpers themselves read process environment variables.
|
|
253
|
+
Set `QODER_AUTH_MODE=sa` to select SA explicitly, then configure exactly one of
|
|
254
|
+
`QODER_SA_KEY` and `QODER_ACCESS_TOKEN`. `QODER_SA_REGION=cn|global` selects both the
|
|
255
|
+
business and exchange hosts. Leave the unused credential empty. Ambient PATs are
|
|
256
|
+
ignored in SA mode; missing SA credentials and conflicting Key/SAT inputs fail
|
|
257
|
+
before a request is sent. This selection is example configuration, not implicit
|
|
258
|
+
SDK behavior.
|
|
259
|
+
|
|
260
|
+
```sh
|
|
261
|
+
# Reuse the same models or Session program with SA authentication.
|
|
262
|
+
QODER_AUTH_MODE=sa QODER_SA_REGION=cn node --env-file=.env.live examples/forward/models.mjs
|
|
263
|
+
QODER_AUTH_MODE=sa QODER_SA_REGION=global node --env-file=.env.live examples/managed/session.mjs
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
For a centralized SAT service, use
|
|
267
|
+
`new ForwardClient({ authMode: 'sa', accessToken: () => tokenManager.getValidSAT() })`.
|
|
268
|
+
The callback may return a promise and is called before each HTTP attempt; the token
|
|
269
|
+
manager is responsible for renewing the SAT.
|
|
270
|
+
|
|
129
271
|
## Request and response types
|
|
130
272
|
|
|
131
273
|
Every operation is typed. The two APIs define independent type sets, so request and response types are exported from the subpath entry points rather than the package root:
|
|
@@ -410,3 +552,135 @@ The API reference under `docs/api/` is generated from the source. Regenerate it
|
|
|
410
552
|
## License
|
|
411
553
|
|
|
412
554
|
Released under the [MIT License](LICENSE).
|
|
555
|
+
|
|
556
|
+
### Forward Realtime (Beta, Node.js)
|
|
557
|
+
|
|
558
|
+
`forward.realtime` supports Conversation creation, persisted History and the
|
|
559
|
+
`voice.realtime.v1` WebSocket protocol. A pre-existing enabled Identity and a
|
|
560
|
+
Realtime-enabled Template are required. Template Realtime configuration APIs are
|
|
561
|
+
not included. The `ws` runtime dependency is installed with the SDK and loaded
|
|
562
|
+
only when connecting; existing HTTP imports remain usable in browser runtimes.
|
|
563
|
+
Browsers cannot set the required Authorization header, so Realtime connections
|
|
564
|
+
require Node.js 20.12 or newer.
|
|
565
|
+
|
|
566
|
+
```ts
|
|
567
|
+
import { ForwardClient } from 'qca-sdk';
|
|
568
|
+
|
|
569
|
+
const client = new ForwardClient({ pat: process.env.QODER_FORWARD_PAT });
|
|
570
|
+
const conversation = await client.realtime.conversations.create({
|
|
571
|
+
identity_id: process.env.QODER_REALTIME_IDENTITY_ID!,
|
|
572
|
+
template_id: process.env.QODER_REALTIME_TEMPLATE_ID!,
|
|
573
|
+
idempotency_key: crypto.randomUUID(), // Stable for this create operation and its retries.
|
|
574
|
+
});
|
|
575
|
+
const connection = await client.realtime.connect({
|
|
576
|
+
conversationId: conversation.id,
|
|
577
|
+
signal: AbortSignal.timeout(180_000),
|
|
578
|
+
});
|
|
579
|
+
try {
|
|
580
|
+
// connect returns after validated voice.ready; pre-ready events are retained.
|
|
581
|
+
await connection.sendText('Hello');
|
|
582
|
+
const event = await connection.receive({ timeout: 30_000 });
|
|
583
|
+
console.log(event.value?.type);
|
|
584
|
+
const acknowledgement = await connection.closeGracefully();
|
|
585
|
+
console.log(acknowledgement.outcome);
|
|
586
|
+
} finally {
|
|
587
|
+
connection.close();
|
|
588
|
+
}
|
|
589
|
+
|
|
590
|
+
const history = await client.realtime.conversations.history(conversation.id, {
|
|
591
|
+
limit: 50, types: 'message,work',
|
|
592
|
+
});
|
|
593
|
+
for await (const event of history) console.log(event.id, event.type);
|
|
594
|
+
// Or use history.hasNextPage() / history.getNextPage() / history.iterPages().
|
|
595
|
+
```
|
|
596
|
+
|
|
597
|
+
Realtime currently accepts PAT or a **Forward-issued bound SAT**. A platform SAT
|
|
598
|
+
obtained by `ServiceAccountCredential` has no Forward Token binding and is
|
|
599
|
+
rejected by the current Realtime service. `ServiceAccountCredential` only
|
|
600
|
+
exchanges and renews platform SATs; it does not create a Forward-bound Token.
|
|
601
|
+
For SA access, obtain the appropriate Admin/Identity SAT from Forward's Token
|
|
602
|
+
management API and pass it through the existing direct-Token interface:
|
|
603
|
+
|
|
604
|
+
```ts
|
|
605
|
+
import { ForwardClient } from 'qca-sdk';
|
|
606
|
+
|
|
607
|
+
const client = new ForwardClient({
|
|
608
|
+
authMode: 'sa',
|
|
609
|
+
accessToken: process.env.QODER_ACCESS_TOKEN!, // Forward-issued bound SAT.
|
|
610
|
+
});
|
|
611
|
+
```
|
|
612
|
+
|
|
613
|
+
An Identity SAT is restricted to its authorized Identity; use an Admin SAT for
|
|
614
|
+
the live suite that creates temporary Identities. A Token callback or custom
|
|
615
|
+
Credential can supply a refreshed Forward-bound SAT. Each new connection
|
|
616
|
+
resolves current credentials; an existing WebSocket does not update its
|
|
617
|
+
Authorization header when a SAT is renewed.
|
|
618
|
+
Credentials are sent only in headers. Redirects, automatic reconnection and input
|
|
619
|
+
replay are disabled. Custom HTTP fetch/middleware and defaultQuery do not apply
|
|
620
|
+
to the separate WS transport; `transport` accepts a Node agent (including a proxy
|
|
621
|
+
agent) and CA/certificate/TLS settings. Per-connection headers override client
|
|
622
|
+
headers using the ordinary authentication rules.
|
|
623
|
+
|
|
624
|
+
Handshake, ready, send and graceful-close deadlines default to 30, 60, 30 and 10
|
|
625
|
+
seconds, respectively, and can be overridden through connect options. The HTTP
|
|
626
|
+
request timeout does not impose a WS lifetime. The service limits one connection
|
|
627
|
+
to 60 minutes. AbortSignal cancels and releases the connection. Breaking event iteration only
|
|
628
|
+
ends that read phase; keep using the connection or explicitly close it in
|
|
629
|
+
`finally`. Incoming events
|
|
630
|
+
are bounded to 256 queued events, 4 MiB total, and 1 MiB per frame; slow consumers
|
|
631
|
+
receive a queue-overflow error. Sends are serialized and bounded to the same
|
|
632
|
+
queue budget. Unknown Beta event types and extension fields remain available;
|
|
633
|
+
invalid envelopes, protocol versions or JSON fail explicitly. Server error
|
|
634
|
+
codes/retry guidance and abnormal WS close codes/reasons remain accessible.
|
|
635
|
+
|
|
636
|
+
`appendAudio(Uint8Array)` accepts nonempty raw **16 kHz mono PCM16 little-endian**
|
|
637
|
+
samples; decode WAV and resample in the application. Output `audio.delta` is
|
|
638
|
+
Base64 **24 kHz mono PCM16**, decoded by `decodeRealtimeAudio(event)`. The final
|
|
639
|
+
client JSON frame, including Base64 expansion, is limited to 256 KiB. VAD detects
|
|
640
|
+
speech endings; there is no `audio.commit` event. Text is limited to 16 KiB UTF-8.
|
|
641
|
+
The SDK does not capture or play audio. `audio.done` and `work.completed` do not
|
|
642
|
+
mean a speaker finished playing. Report actual playback with `playbackStarted`,
|
|
643
|
+
`playbackEnded` or `playbackCancelled`, passing the original audio event's
|
|
644
|
+
`work_id` and `announcement_id` when present. On `playback.interrupt`, stop and
|
|
645
|
+
clear application playback; `interrupt()` sends a user interruption.
|
|
646
|
+
|
|
647
|
+
`closeGracefully()` waits for `connection.closed` with its matching request ID
|
|
648
|
+
and returns the persistence outcome. Missing acknowledgements, persistence
|
|
649
|
+
errors and timeouts fail explicitly. Plain `close()` releases transport without
|
|
650
|
+
promising persistence, cancelling Work or deleting the Conversation. History
|
|
651
|
+
uses separate `events` / `page.next_before` fields and older-record cursors;
|
|
652
|
+
WS sequence/event IDs are not history cursors. Timestamp strings preserve
|
|
653
|
+
nanosecond precision. Conversation retention/deletion must be managed outside
|
|
654
|
+
this SDK because no public delete API is available.
|
|
655
|
+
|
|
656
|
+
Runnable examples reuse the existing PAT/SA environment selection. For SA,
|
|
657
|
+
set `QODER_AUTH_MODE=sa` and provide a Forward-issued bound SAT through
|
|
658
|
+
`QODER_ACCESS_TOKEN`; leave `QODER_SA_KEY` unset:
|
|
659
|
+
|
|
660
|
+
```bash
|
|
661
|
+
npm run build
|
|
662
|
+
node examples/forward/realtime/text.mjs --help
|
|
663
|
+
node examples/forward/realtime/pcm.mjs --help
|
|
664
|
+
# Set QODER_REALTIME_IDENTITY_ID and QODER_REALTIME_TEMPLATE_ID before real execution.
|
|
665
|
+
node examples/forward/realtime/text.mjs 'Hello'
|
|
666
|
+
node examples/forward/realtime/pcm.mjs input.pcm output.pcm
|
|
667
|
+
```
|
|
668
|
+
|
|
669
|
+
The separate opt-in two-region entry is `npm run test:live:realtime -- all text`
|
|
670
|
+
(or select `-- pat basic` / `-- sa basic`). Configure the selected
|
|
671
|
+
`QODER_REALTIME_{CN,GLOBAL}_{PAT,SA}_TEMPLATE_ID` values,
|
|
672
|
+
Forward PATs or Forward-issued Admin SATs in
|
|
673
|
+
`QODER_REALTIME_CN_SAT` / `QODER_REALTIME_GLOBAL_SAT`, and explicitly enable
|
|
674
|
+
`QODER_REALTIME_LIVE_ALLOW_WRITE=true` and
|
|
675
|
+
`QODER_REALTIME_LIVE_ALLOW_EXECUTION=true`. Both regions are validated before
|
|
676
|
+
creation. Explicit Realtime SATs take priority over region SA Keys. The Key
|
|
677
|
+
fallback remains available to detect changes in platform-SAT acceptance, but
|
|
678
|
+
currently fails without a Forward Token binding. Basic verifies
|
|
679
|
+
create/ready/ping/acknowledged close/History; SA also
|
|
680
|
+
checks a direct-SAT reconnect. `text`, `pcm` and `work` scenarios separately run
|
|
681
|
+
model/audio/task execution. PCM requires `QODER_REALTIME_PCM_FILE`; work requires
|
|
682
|
+
a confirmed trigger in `QODER_REALTIME_WORK_PROMPT`. Logs retain Conversation
|
|
683
|
+
and request IDs without tokens. Tests create temporary Identities, delete them on success/failure, preserve the
|
|
684
|
+
original Templates and record persisted Conversations because transport close cannot delete them. These entries are not
|
|
685
|
+
included in daily PAT tests until explicitly configured; offline CI validates
|
|
686
|
+
protocol behavior without network or credentials.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type Credential } from './credentials.js';
|
|
2
|
+
export type AuthMode = 'pat' | 'sa';
|
|
3
|
+
export type TokenSource = string | (() => string | Promise<string>);
|
|
4
|
+
export interface AuthOptions {
|
|
5
|
+
authMode?: AuthMode;
|
|
6
|
+
pat?: TokenSource;
|
|
7
|
+
accessToken?: TokenSource;
|
|
8
|
+
credential?: Credential;
|
|
9
|
+
}
|
|
10
|
+
export declare function resolveAuthMode(options: AuthOptions): AuthMode;
|
|
11
|
+
export declare function resolveToken(options: AuthOptions, mode: AuthMode): Promise<string | undefined>;
|
|
12
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/core/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAW,MAAM,kBAAkB,CAAC;AAI5D,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC;AACpC,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;AACpE,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,QAAQ,CAY9D;AAED,wBAAsB,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CASpG"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveAuthMode = resolveAuthMode;
|
|
4
|
+
exports.resolveToken = resolveToken;
|
|
5
|
+
const credentials_js_1 = require("./credentials.js");
|
|
6
|
+
const service_account_credential_js_1 = require("./service-account-credential.js");
|
|
7
|
+
const error_js_1 = require("./error.js");
|
|
8
|
+
function resolveAuthMode(options) {
|
|
9
|
+
const nativeSA = options.credential instanceof service_account_credential_js_1.ServiceAccountCredential;
|
|
10
|
+
const mode = options.authMode ?? (nativeSA ? 'sa' : 'pat');
|
|
11
|
+
if (mode !== 'pat' && mode !== 'sa')
|
|
12
|
+
throw new error_js_1.QoderError('authMode must be pat or sa');
|
|
13
|
+
if (mode === 'sa' && options.pat !== undefined)
|
|
14
|
+
throw new error_js_1.QoderError('pat cannot be used in SA mode');
|
|
15
|
+
if (nativeSA && (mode !== 'sa' || options.pat !== undefined || options.accessToken !== undefined)) {
|
|
16
|
+
throw new error_js_1.QoderError('ServiceAccountCredential requires SA mode without a static token');
|
|
17
|
+
}
|
|
18
|
+
if (options.accessToken !== undefined && (options.pat !== undefined || options.credential !== undefined)) {
|
|
19
|
+
throw new error_js_1.QoderError('accessToken cannot be combined with pat or credential');
|
|
20
|
+
}
|
|
21
|
+
return mode;
|
|
22
|
+
}
|
|
23
|
+
async function resolveToken(options, mode) {
|
|
24
|
+
const source = options.credential ?? options.accessToken ?? options.pat;
|
|
25
|
+
if (source !== undefined) {
|
|
26
|
+
const token = typeof source === 'object' ? await source.getToken()
|
|
27
|
+
: typeof source === 'function' ? await source() : source;
|
|
28
|
+
if (typeof token !== 'string' || !token.trim())
|
|
29
|
+
throw new error_js_1.QoderError('Configured credential returned an empty access token');
|
|
30
|
+
return token;
|
|
31
|
+
}
|
|
32
|
+
return (0, credentials_js_1.readEnv)('QODER_ACCESS_TOKEN') || (mode === 'pat' ? (0, credentials_js_1.readEnv)('QODER_PAT') : undefined);
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/core/auth.ts"],"names":[],"mappings":";;AAaA,0CAYC;AAED,oCASC;AApCD,qDAA4D;AAC5D,mFAA2E;AAC3E,yCAAwC;AAWxC,SAAgB,eAAe,CAAC,OAAoB;IAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,YAAY,wDAAwB,CAAC;IACxE,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3D,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI;QAAE,MAAM,IAAI,qBAAU,CAAC,4BAA4B,CAAC,CAAC;IACxF,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS;QAAE,MAAM,IAAI,qBAAU,CAAC,+BAA+B,CAAC,CAAC;IACtG,IAAI,QAAQ,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,CAAC,EAAE,CAAC;QAClG,MAAM,IAAI,qBAAU,CAAC,kEAAkE,CAAC,CAAC;IAC3F,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,IAAI,CAAC,OAAO,CAAC,GAAG,KAAK,SAAS,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,EAAE,CAAC;QACzG,MAAM,IAAI,qBAAU,CAAC,uDAAuD,CAAC,CAAC;IAChF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAEM,KAAK,UAAU,YAAY,CAAC,OAAoB,EAAE,IAAc;IACrE,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,CAAC;IACxE,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,MAAM,CAAC,QAAQ,EAAE;YAChE,CAAC,CAAC,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,MAAM,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;QAC3D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;YAAE,MAAM,IAAI,qBAAU,CAAC,sDAAsD,CAAC,CAAC;QAC7H,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAA,wBAAO,EAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,IAAA,wBAAO,EAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AAC9F,CAAC"}
|
package/dist/core/client.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { APIPromise } from './api-promise.js';
|
|
2
2
|
import { type Credential } from './credentials.js';
|
|
3
|
+
import { type AuthMode } from './auth.js';
|
|
3
4
|
import { PagePromise, type PaginationMode } from './pagination.js';
|
|
4
5
|
export type HeadersLike = HeadersInit | Record<string, string | null | undefined>;
|
|
5
6
|
export type Middleware = (request: Request, next: (request: Request) => Promise<Response>) => Promise<Response>;
|
|
6
7
|
export interface ClientOptions {
|
|
8
|
+
authMode?: AuthMode;
|
|
9
|
+
accessToken?: string | (() => string | Promise<string>);
|
|
7
10
|
pat?: string | (() => string | Promise<string>);
|
|
8
11
|
credential?: Credential;
|
|
9
12
|
baseURL?: string;
|
|
@@ -32,6 +35,7 @@ export declare function mergeHeaders(...sources: (HeadersLike | undefined)[]): H
|
|
|
32
35
|
export declare function stringifyQuery(query: object, arrayFormat?: 'repeat' | 'brackets'): string;
|
|
33
36
|
export declare class APIClient {
|
|
34
37
|
readonly mode: 'forward' | 'managed';
|
|
38
|
+
readonly authMode: AuthMode;
|
|
35
39
|
readonly baseURL: string;
|
|
36
40
|
readonly maxRetries: number;
|
|
37
41
|
readonly timeout: number;
|
|
@@ -44,6 +48,16 @@ export declare class APIClient {
|
|
|
44
48
|
withOptions(options: Partial<ClientOptions>): this;
|
|
45
49
|
private validateOptions;
|
|
46
50
|
protected validateHeaders(headers: Headers): void;
|
|
51
|
+
private authenticateHeaders;
|
|
52
|
+
/** @internal Resolve the same public credentials for the separate Node WS transport. */
|
|
53
|
+
_prepareRealtimeRequest(options: {
|
|
54
|
+
conversationId: string;
|
|
55
|
+
headers?: HeadersLike;
|
|
56
|
+
signal?: AbortSignal | null;
|
|
57
|
+
}): Promise<{
|
|
58
|
+
url: URL;
|
|
59
|
+
headers: Headers;
|
|
60
|
+
}>;
|
|
47
61
|
request<T>(options: APIRequestOptions): APIPromise<T>;
|
|
48
62
|
private parseJSONResponse;
|
|
49
63
|
getAPIList<T>(path: string, query?: object, options?: RequestOptions, pagination?: PaginationMode): PagePromise<T>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,KAAK,UAAU,EAAW,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"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"}
|
package/dist/core/client.js
CHANGED
|
@@ -5,6 +5,8 @@ exports.mergeHeaders = mergeHeaders;
|
|
|
5
5
|
exports.stringifyQuery = stringifyQuery;
|
|
6
6
|
const api_promise_js_1 = require("./api-promise.js");
|
|
7
7
|
const credentials_js_1 = require("./credentials.js");
|
|
8
|
+
const auth_js_1 = require("./auth.js");
|
|
9
|
+
const service_account_credential_js_1 = require("./service-account-credential.js");
|
|
8
10
|
const error_js_1 = require("./error.js");
|
|
9
11
|
const pagination_js_1 = require("./pagination.js");
|
|
10
12
|
const streaming_js_1 = require("./streaming.js");
|
|
@@ -77,6 +79,7 @@ async function wait(ms, signal, timedOut) {
|
|
|
77
79
|
}
|
|
78
80
|
class APIClient {
|
|
79
81
|
mode;
|
|
82
|
+
authMode;
|
|
80
83
|
baseURL;
|
|
81
84
|
maxRetries;
|
|
82
85
|
timeout;
|
|
@@ -86,13 +89,16 @@ class APIClient {
|
|
|
86
89
|
controllers = new WeakMap();
|
|
87
90
|
constructor(options = {}, mode = 'managed') {
|
|
88
91
|
this.mode = mode;
|
|
89
|
-
this.
|
|
92
|
+
this.authMode = (0, auth_js_1.resolveAuthMode)(options);
|
|
93
|
+
this.options = { ...options, authMode: this.authMode };
|
|
90
94
|
this.defaultHeaders = options.defaultHeaders;
|
|
91
95
|
this.baseURL = (options.baseURL ?? (0, credentials_js_1.readEnv)(mode === 'forward' ? 'QODER_FORWARD_BASE_URL' : 'QODER_BASE_URL')
|
|
92
96
|
?? `https://api.qoder.com/api/v1/${mode === 'forward' ? 'forward' : 'cloud'}`).replace(/\/+$/, '');
|
|
93
97
|
const url = new URL(this.baseURL);
|
|
94
98
|
if (!['http:', 'https:'].includes(url.protocol) || url.username || url.password)
|
|
95
99
|
throw new error_js_1.QoderError('Invalid baseURL');
|
|
100
|
+
if (options.credential instanceof service_account_credential_js_1.ServiceAccountCredential)
|
|
101
|
+
options.credential.validateRegion(url.hostname);
|
|
96
102
|
this.maxRetries = options.maxRetries ?? 2;
|
|
97
103
|
this.timeout = options.timeout ?? 600_000;
|
|
98
104
|
this.validateOptions(this.maxRetries, this.timeout);
|
|
@@ -103,8 +109,14 @@ class APIClient {
|
|
|
103
109
|
/** Create a client of the same type, replacing supplied options and retaining the rest. */
|
|
104
110
|
withOptions(options) {
|
|
105
111
|
const Client = this.constructor;
|
|
112
|
+
const inherited = { ...this.options };
|
|
113
|
+
if (options.authMode !== undefined && options.authMode !== this.authMode) {
|
|
114
|
+
delete inherited.pat;
|
|
115
|
+
delete inherited.accessToken;
|
|
116
|
+
delete inherited.credential;
|
|
117
|
+
}
|
|
106
118
|
return new Client({
|
|
107
|
-
...
|
|
119
|
+
...inherited,
|
|
108
120
|
baseURL: this.baseURL,
|
|
109
121
|
maxRetries: this.maxRetries,
|
|
110
122
|
timeout: this.timeout,
|
|
@@ -122,7 +134,27 @@ class APIClient {
|
|
|
122
134
|
if (headers.get('authorization')) {
|
|
123
135
|
return;
|
|
124
136
|
}
|
|
125
|
-
throw new Error('Could not resolve authentication method.
|
|
137
|
+
throw new Error('Could not resolve authentication method. Configure accessToken or credential, or QODER_ACCESS_TOKEN (QODER_PAT is supported in PAT mode).');
|
|
138
|
+
}
|
|
139
|
+
async authenticateHeaders(headers, signal) {
|
|
140
|
+
if (!headers.has('authorization')) {
|
|
141
|
+
const token = await withSignal((0, auth_js_1.resolveToken)(this.options, this.authMode), signal, () => false);
|
|
142
|
+
if (token)
|
|
143
|
+
headers.set('Authorization', `Bearer ${token}`);
|
|
144
|
+
}
|
|
145
|
+
this.validateHeaders(headers);
|
|
146
|
+
}
|
|
147
|
+
/** @internal Resolve the same public credentials for the separate Node WS transport. */
|
|
148
|
+
async _prepareRealtimeRequest(options) {
|
|
149
|
+
const url = new URL(this.baseURL);
|
|
150
|
+
url.pathname = `${url.pathname.replace(/\/+$/, '')}/realtime`;
|
|
151
|
+
url.search = '';
|
|
152
|
+
url.hash = '';
|
|
153
|
+
url.protocol = url.protocol === 'https:' ? 'wss:' : 'ws:';
|
|
154
|
+
url.searchParams.set('conversation_id', options.conversationId);
|
|
155
|
+
const headers = mergeHeaders({ Accept: 'application/json', 'User-Agent': `qca-js/${version_js_1.VERSION}`, ...(0, detect_platform_js_1.platformHeaders)() }, this.defaultHeaders, options.headers);
|
|
156
|
+
await this.authenticateHeaders(headers, options.signal ?? new AbortController().signal);
|
|
157
|
+
return { url, headers };
|
|
126
158
|
}
|
|
127
159
|
request(options) {
|
|
128
160
|
return new api_promise_js_1.APIPromise(this.execute(options), async (response) => {
|
|
@@ -252,14 +284,7 @@ class APIClient {
|
|
|
252
284
|
const attemptHeaders = new Headers(headers);
|
|
253
285
|
if (!storage) {
|
|
254
286
|
attemptHeaders.set('X-Qoder-Retry-Count', String(attempt));
|
|
255
|
-
|
|
256
|
-
const credential = this.options.credential;
|
|
257
|
-
const configured = this.options.pat;
|
|
258
|
-
const token = await withSignal(Promise.resolve(credential ? credential.getToken() : typeof configured === 'function' ? configured() : configured ?? (0, credentials_js_1.readEnv)('QODER_PAT')), signal, () => timedOut);
|
|
259
|
-
if (token)
|
|
260
|
-
attemptHeaders.set('Authorization', `Bearer ${token}`);
|
|
261
|
-
}
|
|
262
|
-
this.validateHeaders(attemptHeaders);
|
|
287
|
+
await this.authenticateHeaders(attemptHeaders, signal);
|
|
263
288
|
}
|
|
264
289
|
let response;
|
|
265
290
|
try {
|
package/dist/core/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":";;;AAoCA,oCAcC;AAED,wCAYC;AAhED,qDAA8C;AAC9C,qDAA4D;AAC5D,yCAAoH;AACpH,mDAA4F;AAC5F,iDAAwC;AACxC,8CAAwC;AACxC,6DAAuD;AA8BvD,SAAgB,YAAY,CAAC,GAAG,OAAoC;IAClE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,IAAI,MAAM,YAAY,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,IAAI,OAAO,CAAC,MAAqB,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;QACtF,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAClD,IAAI,KAAK,KAAK,IAAI;oBAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;qBACnC,IAAI,KAAK,KAAK,SAAS;oBAAE,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAgB,cAAc,CAAC,KAAa,EAAE,cAAqC,QAAQ;IACzF,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;IACrC,MAAM,MAAM,GAAG,CAAC,GAAW,EAAE,KAAc,EAAE,EAAE;QAC7C,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI;YAAE,OAAO;QAClD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAAC,KAAK,MAAM,IAAI,IAAI,KAAK;gBAAE,MAAM,CAAC,WAAW,KAAK,UAAU,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAAC,CAAC;aACtI,IAAI,KAAK,YAAY,IAAI;YAAE,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;aACnE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACnC,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;gBAAE,MAAM,CAAC,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;QACtF,CAAC;;YAAM,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3C,CAAC,CAAC;IACF,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrE,OAAO,MAAM,CAAC,QAAQ,EAAE,CAAC;AAC3B,CAAC;AAED,SAAS,UAAU,CAAC,MAAmB,EAAE,QAAiB;IACxD,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,oCAAyB,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;QAC5F,CAAC,CAAC,IAAI,4BAAiB,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED,KAAK,UAAU,UAAU,CAAI,OAAuB,EAAE,MAAmB,EAAE,QAAuB;IAChG,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,KAAK,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC9C,MAAM,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,IAAI,OAAO,CAAI,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACxC,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC3D,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IAC3G,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,IAAI,CAAC,EAAU,EAAE,MAAmB,EAAE,QAAuB;IAC1E,IAAI,KAAgD,CAAC;IACrD,IAAI,CAAC;QAAC,MAAM,UAAU,CAAC,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,GAAG,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAAC,CAAC;YACzG,CAAC;QAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IAAC,CAAC;AAClC,CAAC;AAED,MAAa,SAAS;IAS8B;IARzC,OAAO,CAAS;IAChB,UAAU,CAAS;IACnB,OAAO,CAAS;IAChB,cAAc,CAA0B;IAC9B,OAAO,CAAgB;IACzB,SAAS,CAA0B;IACnC,WAAW,GAAG,IAAI,OAAO,EAA6B,CAAC;IAExE,YAAY,UAAyB,EAAE,EAAW,OAA8B,SAAS;QAAvC,SAAI,GAAJ,IAAI,CAAmC;QACvF,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;QAC9B,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,IAAA,wBAAO,EAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,gBAAgB,CAAC;eACvG,gCAAgC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACrG,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ;YAAE,MAAM,IAAI,qBAAU,CAAC,iBAAiB,CAAC,CAAC;QACzH,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC;QAC1C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC;QACnD,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,qBAAU,CAAC,oCAAoC,CAAC,CAAC;IAClF,CAAC;IAED,2FAA2F;IAC3F,WAAW,CAAC,OAA+B;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAgF,CAAC;QACrG,OAAO,IAAI,MAAM,CAAC;YAChB,GAAG,IAAI,CAAC,OAAO;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,IAAI,CAAC,SAAS;YACrB,GAAG,OAAO;SACX,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAEO,eAAe,CAAC,OAAe,EAAE,OAAe;QACtD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC;YAAE,MAAM,IAAI,qBAAU,CAAC,2CAA2C,CAAC,CAAC;QACjH,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,GAAG,CAAC;YAAE,MAAM,IAAI,qBAAU,CAAC,uCAAuC,CAAC,CAAC;IAC9G,CAAC;IAES,eAAe,CAAC,OAAgB;QACxC,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;YACjC,OAAO;QACT,CAAC;QAED,MAAM,IAAI,KAAK,CACb,+IAA+I,CAChJ,CAAC;IACJ,CAAC;IAED,OAAO,CAAI,OAA0B;QACnC,OAAO,IAAI,2BAAU,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;YAC9D,IAAI,OAAO,CAAC,YAAY,KAAK,UAAU,IAAI,OAAO,CAAC,YAAY,KAAK,QAAQ;gBAAE,OAAO,QAAa,CAAC;YACnG,IAAI,OAAO,CAAC,YAAY,KAAK,QAAQ;gBAAE,OAAO,IAAI,qBAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAM,CAAC;YACxG,IAAI,OAAO,CAAC,YAAY,KAAK,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC1F,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;gBAC9B,OAAO,SAAc,CAAC;YACxB,CAAC;YACD,OAAO,IAAI,CAAC,iBAAiB,CAAI,QAAQ,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAI,QAAkB;QACnD,MAAM,IAAI,GAAY,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YACtE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE;gBACzC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;gBACjF,UAAU,EAAE,KAAK;aAClB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAS,CAAC;IACnB,CAAC;IAED,UAAU,CAAI,IAAY,EAAE,QAAgB,EAAE,EAAE,UAA0B,EAAE,EAAE,aAA6B,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM;QACpJ,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;QAC5E,OAAO,IAAI,2BAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAC1G,IAAI,oBAAI,CAAI,IAAI,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC,iBAAiB,CAAkB,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC;IACtJ,CAAC;IAED,8FAA8F;IAC9F,YAAY,CAAC,IAAY,EAAE,UAA0B,EAAE;QACrD,MAAM,QAAQ,GAAG,CAAC,KAAK,IAAI,EAAE;YAC3B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,CAAkB,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;YAC5G,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ;gBAAE,MAAM,IAAI,qBAAU,CAAC,2BAA2B,CAAC,CAAC;YACnI,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,IAAI,CAAC,CAAC;QAC3K,CAAC,CAAC,EAAE,CAAC;QACL,OAAO,IAAI,2BAAU,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;IACpD,CAAC;IAEO,SAAS,CAAC,MAAc,EAAE,OAAgB,EAAE,UAAmB,EAAE,QAAmB;QAC1F,IAAI,CAAC,UAAU;YAAE,OAAO,KAAK,CAAC;QAC9B,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;QAClF,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC3B,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,IAAI,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAChF,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,OAAO;YAAE,OAAO,KAAK,CAAC;QACrE,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QACnE,OAAO,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,QAAQ,CAAC,MAAM,IAAI,GAAG,CAAC;IACtF,CAAC;IAEO,UAAU,CAAC,QAA8B,EAAE,OAAe;QAChE,IAAI,KAAyB,CAAC;QAC9B,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAClD,IAAI,EAAE,EAAE,CAAC;gBACP,MAAM,MAAM,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;gBAC9B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC;oBAAE,KAAK,GAAG,MAAM,CAAC;YAC5C,CAAC;YACD,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAClD,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;gBACpB,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;gBAClC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC;YAClF,CAAC;QACH,CAAC;QACD,+DAA+D;QAC/D,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAC3E,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IACzE,CAAC;IAEO,KAAK,CAAC,OAAO,CAAC,OAA0B,EAAE,OAAO,GAAG,KAAK;QAC/D,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC;QACtD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC;QAChD,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACvC,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC,MAAM,CAAC;QACpE,IAAI,YAAY,CAAC,OAAO;YAAE,MAAM,UAAU,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QAChE,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7G,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,cAAc,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,OAAO,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAClI,IAAI,KAAK;gBAAE,GAAG,CAAC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;QAC9D,CAAC;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;QACzF,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;YACrD,MAAM,EAAE,OAAO,CAAC,YAAY,KAAK,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,kBAAkB;YACpF,YAAY,EAAE,UAAU,oBAAO,EAAE;YACjC,GAAG,IAAA,oCAAe,GAAE;YACpB,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9E,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACjD,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;QACjG,IAAI,IAA0B,CAAC;QAC/B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;gBAAC,IAAI,GAAG,KAAK,CAAC;gBAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;YAAC,CAAC;iBAC3E,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,YAAY,WAAW,IAAI,KAAK,YAAY,UAAU,IAAI,KAAK,YAAY,eAAe,IAAI,KAAK,YAAY,cAAc;gBAAE,IAAI,GAAG,KAAiB,CAAC;iBACvN,CAAC;gBAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;oBAAE,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;YAAC,CAAC;QAC3H,CAAC;QACD,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,YAAY,cAAc,CAAC,CAAC;QACrD,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,EAAE,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;YACzC,IAAI,QAAQ,GAAG,KAAK,CAAC;YACrB,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YAC5D,IAAI,YAAY,CAAC,OAAO;gBAAE,OAAO,EAAE,CAAC;;gBAC/B,YAAY,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACrE,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACzE,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;YACjC,IAAI,SAAS,GAAG,KAAK,CAAC;YACtB,IAAI,UAA8B,CAAC;YACnC,IAAI,CAAC;gBACH,IAAI,MAAM,CAAC,OAAO;oBAAE,MAAM,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;gBACvD,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,cAAc,CAAC,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;oBAC3D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;wBACzC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;wBAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;wBACpC,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,IAAA,wBAAO,EAAC,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;wBACnM,IAAI,KAAK;4BAAE,cAAc,CAAC,GAAG,CAAC,eAAe,EAAE,UAAU,KAAK,EAAE,CAAC,CAAC;oBACpE,CAAC;oBACD,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;gBACvC,CAAC;gBACD,IAAI,QAAkB,CAAC;gBACvB,IAAI,CAAC;oBACH,MAAM,IAAI,GAAsC,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC1I,IAAI,IAAI,YAAY,cAAc;wBAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;oBACzD,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC;oBAChE,wFAAwF;oBACxF,MAAM,UAAU,GAA4B,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;wBACrE,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;wBACxG,IAAI,CAAC;4BACH,OAAO,MAAM,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;wBACpG,CAAC;gCAAS,CAAC;4BAAC,YAAY,CAAC,KAAK,CAAC,CAAC;wBAAC,CAAC;oBACpC,CAAC,CAAC;oBACF,IAAI,YAA+B,CAAC;oBACpC,IAAI,UAAU,CAAC,MAAM,EAAE,CAAC;wBACtB,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CACjC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,EACpD,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;wBAClC,YAAY,GAAG,IAAI,CAAC,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;oBAC9C,CAAC;;wBAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,CAAC;oBACvD,QAAQ,GAAG,MAAM,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;oBAClE,IAAI,CAAC,CAAC,QAAQ,YAAY,QAAQ,CAAC;wBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;gBACrF,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,YAAY,CAAC,OAAO;wBAAE,MAAM,UAAU,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;oBAChE,IAAI,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,CAAC,EAAE,CAAC;wBAC5E,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;wBACjD,SAAS;oBACX,CAAC;oBACD,IAAI,QAAQ;wBAAE,MAAM,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;oBAC7C,MAAM,IAAI,6BAAkB,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;gBACrE,CAAC;gBACD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,IAAI,OAAO,GAAG,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC;wBACtF,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;wBAChD,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;wBAC9B,SAAS;oBACX,CAAC;oBACD,MAAM,GAAG,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;oBACtE,IAAI,KAAK,GAAY,GAAG,CAAC;oBACzB,IAAI,CAAC;wBAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAAC,CAAC;oBAAC,MAAM,CAAC,CAAC,4BAA4B,CAAC,CAAC;oBACvE,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;oBAC5H,MAAM,OAAO,GAAG,mBAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBACjG,OAAO,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;oBACxE,MAAM,OAAO,CAAC;gBAChB,CAAC;gBACD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;gBACjF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;gBAC1C,SAAS,GAAG,IAAI,CAAC;gBACjB,OAAO,OAAO,CAAC;YACjB,CAAC;oBAAS,CAAC;gBACT,IAAI,CAAC,SAAS;oBAAE,OAAO,EAAE,CAAC;gBAC1B,IAAI,UAAU,KAAK,SAAS;oBAAE,MAAM,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;YAClF,CAAC;QACH,CAAC;IACH,CAAC;IAEO,YAAY,CAAC,QAAkB,EAAE,UAA2B,EAAE,OAAmB,EAAE,QAAuB;QAChH,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAAC,OAAO,EAAE,CAAC;YAAC,OAAO,QAAQ,CAAC;QAAC,CAAC;QACnD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,IAAI,cAAc,CAAa;YAC1C,KAAK,CAAC,IAAI,CAAC,MAAM;gBACf,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;oBAC5E,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;wBAAC,OAAO,EAAE,CAAC;wBAAC,MAAM,CAAC,WAAW,EAAE,CAAC;wBAAC,MAAM,CAAC,KAAK,EAAE,CAAC;oBAAC,CAAC;;wBAChE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACpC,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAAC,OAAO,EAAE,CAAC;oBAAC,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;oBAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAAC,CAAC;YAC5F,CAAC;YACD,KAAK,CAAC,MAAM,CAAC,MAAM,IAAI,OAAO,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;SACjE,EAAE,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC;QACzB,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QAC3H,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC;QAC9D,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAlPD,8BAkPC"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
export interface Credential {
|
|
2
2
|
getToken(): string | Promise<string>;
|
|
3
3
|
}
|
|
4
|
+
export { ServiceAccountCredential } from './service-account-credential.js';
|
|
5
|
+
export type { ServiceAccountCredentialOptions } from './service-account-credential.js';
|
|
6
|
+
export type { AuthMode } from './auth.js';
|
|
4
7
|
export declare function readEnv(name: string): string | undefined;
|
|
5
8
|
export declare class PATCredential implements Credential {
|
|
6
9
|
private readonly token;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/core/credentials.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,QAAQ,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACtC;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAExD;AAED,qBAAa,aAAc,YAAW,UAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,MAAM;IAI1C,MAAM,CAAC,OAAO,CAAC,IAAI,SAAc,GAAG,aAAa;IAIjD,QAAQ,IAAI,MAAM;CACnB"}
|
|
1
|
+
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/core/credentials.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,UAAU;IACzB,QAAQ,IAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACtC;AAED,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAC3E,YAAY,EAAE,+BAA+B,EAAE,MAAM,iCAAiC,CAAC;AACvF,YAAY,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAExD;AAED,qBAAa,aAAc,YAAW,UAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,MAAM;IAI1C,MAAM,CAAC,OAAO,CAAC,IAAI,SAAc,GAAG,aAAa;IAIjD,QAAQ,IAAI,MAAM;CACnB"}
|
package/dist/core/credentials.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PATCredential = void 0;
|
|
3
|
+
exports.PATCredential = exports.ServiceAccountCredential = void 0;
|
|
4
4
|
exports.readEnv = readEnv;
|
|
5
|
+
var service_account_credential_js_1 = require("./service-account-credential.js");
|
|
6
|
+
Object.defineProperty(exports, "ServiceAccountCredential", { enumerable: true, get: function () { return service_account_credential_js_1.ServiceAccountCredential; } });
|
|
5
7
|
function readEnv(name) {
|
|
6
8
|
return globalThis.process?.env?.[name];
|
|
7
9
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/core/credentials.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/core/credentials.ts"],"names":[],"mappings":";;;AAQA,0BAEC;AAND,iFAA2E;AAAlE,yIAAA,wBAAwB,OAAA;AAIjC,SAAgB,OAAO,CAAC,IAAY;IAClC,OAAQ,UAAoF,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;AACpH,CAAC;AAED,MAAa,aAAa;IACK;IAA7B,YAA6B,KAAa;QAAb,UAAK,GAAL,KAAK,CAAQ;QACxC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,WAAW;QAC/B,OAAO,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,QAAQ,KAAa,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;CAC1C;AAVD,sCAUC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Credential } from './credentials.js';
|
|
2
|
+
export interface ServiceAccountCredentialOptions {
|
|
3
|
+
saKey: string;
|
|
4
|
+
region: 'cn' | 'global';
|
|
5
|
+
scopes: readonly string[];
|
|
6
|
+
ttlSeconds?: number;
|
|
7
|
+
/** Exchange timeout in milliseconds, including response body reading. */
|
|
8
|
+
timeout?: number;
|
|
9
|
+
fetch?: typeof globalThis.fetch;
|
|
10
|
+
}
|
|
11
|
+
/** Lazy, instance-owned SAT cache. Share an instance between clients in the same region. */
|
|
12
|
+
export declare class ServiceAccountCredential implements Credential {
|
|
13
|
+
#private;
|
|
14
|
+
readonly region: 'cn' | 'global';
|
|
15
|
+
constructor(options: ServiceAccountCredentialOptions);
|
|
16
|
+
static fromEnv(options: Omit<ServiceAccountCredentialOptions, 'saKey'>): ServiceAccountCredential;
|
|
17
|
+
validateRegion(host: string): void;
|
|
18
|
+
getToken(): Promise<string>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=service-account-credential.d.ts.map
|