@zhivex-ai/qwen 0.7.8 → 0.8.1

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  # @zhivex-ai/qwen
2
2
 
3
- Qwen adapter for Zhivex AI SDK.
3
+ Qwen and Alibaba Cloud Model Studio adapter for Zhivex AI SDK.
4
4
 
5
5
  ## Install
6
6
 
@@ -8,28 +8,60 @@ Qwen adapter for Zhivex AI SDK.
8
8
  bun add @zhivex-ai/qwen
9
9
  ```
10
10
 
11
- ## Audio response limits
11
+ ## Configure
12
12
 
13
- `createQwen({ responseLimits })` bounds transcription JSON, binary speech, JSON/base64 speech, and provider error bodies before large allocations. Speech defaults to 16 MiB decoded; base64 size is checked before decoding. The encoded audio field is omitted from `SpeechResult.rawResponse` after decoding so the result does not retain both representations.
13
+ ```ts
14
+ import { createQwen } from "@zhivex-ai/qwen";
15
+
16
+ const qwen = createQwen({
17
+ apiKey: process.env.DASHSCOPE_API_KEY
18
+ });
19
+ ```
20
+
21
+ For Alibaba Cloud Model Studio workspace endpoints, configure the workspace once and the adapter derives the compatible HTTP, native task, and realtime URLs:
14
22
 
15
23
  ```ts
16
24
  const qwen = createQwen({
17
- responseLimits: {
18
- speechBytes: 16 * 1024 * 1024,
19
- transcriptionBytes: 1024 * 1024,
20
- errorBodyBytes: 64 * 1024
21
- }
25
+ apiKey: process.env.DASHSCOPE_API_KEY,
26
+ workspaceId: process.env.QWEN_WORKSPACE_ID,
27
+ region: "singapore"
22
28
  });
23
29
  ```
24
30
 
25
- ## Hosted tools
31
+ Supported region values are `singapore`, `beijing`, `hong-kong`, `tokyo`, `frankfurt`, and `virginia`. `baseURL`, `taskBaseURL`, and `realtimeURL` remain available for private gateways or an explicit regional endpoint.
26
32
 
27
- Qwen uses the DashScope-compatible Responses API by default. The adapter exposes helpers for Qwen built-in hosted tools and remote MCP:
33
+ ## Text, tools, and structured output
34
+
35
+ The default `apiMode: "auto"` selects the protocol required by the request:
36
+
37
+ - Responses for hosted tools, Qwen OCR file URLs, and `previous_response_id` continuation.
38
+ - Chat Completions for structured output, audio input, `maxTokens`, or `reasoning.budgetTokens`.
39
+ - Either path for ordinary text and local function tools; automatic mode prefers Responses.
40
+
41
+ Use `providerOptions: { apiMode: "responses" }` or `{ apiMode: "chat" }` only when you need to force a compatible path. Unsupported combinations fail before the network request instead of silently dropping fields.
42
+
43
+ `qwen3.5-omni-plus` and `qwen3.5-omni-flash` are streaming-only Chat Completions models. Use `streamText()` for them; the adapter rejects `generateText()`, Responses-only hosted tools, file inputs, and reasoning controls that those models do not support. Text output is selected by default with `modalities: ["text"]`, while an explicit compatible `modalities` option is preserved.
44
+
45
+ Qwen Chat Completions supports JSON-object mode but does not currently enforce a JSON Schema natively. `generateObject()` therefore sends JSON mode plus a schema system prompt and validates the result locally:
46
+
47
+ ```ts
48
+ import { generateObject } from "@zhivex-ai/sdk";
49
+ import { z } from "zod";
50
+
51
+ const result = await generateObject({
52
+ model: qwen("qwen3.7-plus"),
53
+ prompt: "Return the city and temperature.",
54
+ schema: z.object({ city: z.string(), temperature: z.number() })
55
+ });
56
+ ```
57
+
58
+ Responses reasoning maps shared `effort` to `reasoning.effort` (`low` becomes Qwen `minimal`). Chat reasoning maps to `enable_thinking`; `budgetTokens` maps to `thinking_budget`.
59
+
60
+ ### Hosted tools
28
61
 
29
62
  ```ts
30
63
  import { generateText } from "@zhivex-ai/sdk";
31
64
  import {
32
- createQwen,
33
65
  qwenCodeInterpreterTool,
34
66
  qwenFileSearchTool,
35
67
  qwenMcpTool,
@@ -37,10 +69,6 @@ import {
37
69
  qwenWebSearchTool
38
70
  } from "@zhivex-ai/qwen";
39
71
 
40
- const qwen = createQwen({
41
- apiKey: process.env.DASHSCOPE_API_KEY
42
- });
43
-
44
72
  const result = await generateText({
45
73
  model: qwen("qwen3.7-plus"),
46
74
  prompt: "Search current docs, extract the relevant page, and validate a calculation.",
@@ -48,7 +76,7 @@ const result = await generateText({
48
76
  search: qwenWebSearchTool(),
49
77
  extract: qwenWebExtractorTool(),
50
78
  code: qwenCodeInterpreterTool(),
51
- files: qwenFileSearchTool({ vector_store_ids: ["store_1"] }),
79
+ files: qwenFileSearchTool({ vector_store_ids: ["existing_knowledge_base_id"] }),
52
80
  maps: qwenMcpTool({
53
81
  server_label: "amap-maps",
54
82
  server_protocol: "sse",
@@ -61,56 +89,121 @@ const result = await generateText({
61
89
  console.log(result.text);
62
90
  ```
63
91
 
64
- Use `providerOptions: { apiMode: "chat" }` only for legacy Chat Completions compatibility. Hosted Qwen tools are Responses-only.
92
+ `qwenFileSearchTool()` consumes an existing Alibaba Cloud knowledge-base/vector-store identifier. The package intentionally does not expose invented file-search-store CRUD endpoints; DashScope Files remains available for extraction and batch jobs.
65
93
 
66
- ## Qwen Cloud clients
94
+ ## Files and batch
67
95
 
68
- The package also exposes broader Qwen Cloud surfaces through the shared SDK helpers:
96
+ Batch inference requires a JSONL file uploaded with `purpose: "batch"`:
69
97
 
70
98
  ```ts
71
- import {
72
- createBatch,
73
- generateImage,
74
- generateSpeech,
75
- transcribeAudio,
76
- uploadFile
77
- } from "@zhivex-ai/sdk";
78
- import { createQwen } from "@zhivex-ai/qwen";
79
-
80
- const qwen = createQwen({
81
- apiKey: process.env.DASHSCOPE_API_KEY
82
- });
99
+ import { createBatch, uploadFile } from "@zhivex-ai/sdk";
83
100
 
84
101
  const file = await uploadFile({
85
102
  provider: qwen,
86
- data: new Uint8Array([1, 2, 3]),
87
- mediaType: "text/plain",
88
- filename: "notes.txt"
103
+ data: batchJsonl,
104
+ mediaType: "application/jsonl",
105
+ filename: "requests.jsonl",
106
+ providerOptions: { purpose: "batch" }
89
107
  });
90
108
 
91
- await createBatch({
109
+ const batch = await createBatch({
92
110
  provider: qwen,
93
111
  modelId: "qwen3.7-plus",
94
112
  fileName: file.name
95
113
  });
114
+ ```
96
115
 
97
- await transcribeAudio({
98
- model: qwen.transcriptionModel("qwen-audio-asr"),
99
- audio: { data: new Uint8Array([1, 2, 3]), mediaType: "audio/wav" }
116
+ ## Speech and generative media
117
+
118
+ ```ts
119
+ import {
120
+ generateImage,
121
+ generateSpeech,
122
+ generateVideo,
123
+ transcribeAudio
124
+ } from "@zhivex-ai/sdk";
125
+
126
+ const transcript = await transcribeAudio({
127
+ model: qwen.transcriptionModel("qwen3-asr-flash"),
128
+ audio: { data: audioBytes, mediaType: "audio/wav" }
100
129
  });
101
130
 
102
- await generateSpeech({
103
- model: qwen.speechModel("qwen-tts"),
104
- input: "Hello from Qwen."
131
+ const speech = await generateSpeech({
132
+ model: qwen.speechModel("qwen3-tts-flash"),
133
+ input: "Hello from Qwen.",
134
+ voice: "Cherry",
135
+ providerOptions: { language_type: "English" }
105
136
  });
106
137
 
107
- await generateImage({
138
+ const image = await generateImage({
108
139
  model: qwen.imageGenerationModel("qwen-image-2.0-pro"),
109
- prompt: "A clean product icon"
140
+ prompt: "A clean product icon",
141
+ size: "1024*1024"
142
+ });
143
+
144
+ const video = await generateVideo({
145
+ model: qwen.videoGenerationModel("wan2.7-t2v"),
146
+ prompt: "A clean product icon rotating slowly",
147
+ providerOptions: { resolution: "720P", watermark: false }
110
148
  });
111
149
  ```
112
150
 
113
- Current first-class model IDs include `qwen3.7-plus`, `qwen3.7-max`, `qwen3.6-flash`, `qwen3.5-omni-plus`, and `qwen-image-2.0-pro`. `qwen3.7-plus` is marked vision-capable in the SDK; `qwen3.7-max` stays text/reasoning-only until Qwen documents image understanding for that SKU. For provider-specific surfaces without a shared cross-provider contract, use `qwen.rerankModel()`, `qwen.multimodalEmbeddingModel()`, and `qwen.tasks`.
151
+ Speech responses are bounded by `createQwen({ responseLimits })`. The default decoded speech limit is 16 MiB, base64 size is checked before decoding, and encoded audio is removed from `SpeechResult.rawResponse` after decoding to avoid retaining two copies.
152
+
153
+ Downloaded speech URLs are also protected against server-side request forgery. By default, the adapter accepts the HTTP(S) Alibaba OSS hosts used by Qwen TTS, follows at most three redirects manually, and validates every redirect target without forwarding the Qwen API key. Private gateways can provide an explicit `speechAudioURLValidator`; `speechAudioMaxRedirects` can be set from 0 through 10.
154
+
155
+ ## Multimodal embeddings and reranking
156
+
157
+ ```ts
158
+ const embeddings = await qwen
159
+ .multimodalEmbeddingModel("tongyi-embedding-vision-plus")
160
+ .embed({
161
+ values: [
162
+ "product description",
163
+ { uri: "https://example.com/product.png", mediaType: "image/png" }
164
+ ]
165
+ });
166
+
167
+ const ranked = await qwen.rerankModel("qwen3-rerank").rerank({
168
+ query: "Qwen SDK support",
169
+ documents: ["unrelated", "Zhivex supports Qwen."],
170
+ topN: 1
171
+ });
172
+ ```
173
+
174
+ `tongyi-embedding-vision-plus` is the multimodal embedding model for the international/Singapore endpoint used by the provider defaults. `qwen3-vl-embedding` is available in Beijing; configure a Beijing workspace and `region: "beijing"` before selecting it.
175
+
176
+ `qwen3-vl-rerank` and other native multimodal rerank models also accept `MediaInput` query and document values.
177
+
178
+ ## Realtime
179
+
180
+ ```ts
181
+ const session = await qwen
182
+ .realtimeModel("qwen3.5-omni-plus-realtime")
183
+ .connect({
184
+ instructions: "Be concise.",
185
+ turnDetection: { type: "server_vad" }
186
+ });
187
+
188
+ await session.sendText("Hello");
189
+ await session.sendMedia({ data: jpegBytes, mediaType: "image/jpeg" });
190
+ ```
191
+
192
+ The realtime adapter maps text, audio, transcripts, function calls, response completion, and session completion into the shared `RealtimeEvent` contract. JPEG image frames are supported by Qwen Omni realtime; browser-token minting is not exposed.
193
+
194
+ Authenticated realtime connections use the package's Node/Bun `ws` transport by default. `realtimeConnectionFactory` remains available for custom runtimes. Do not expose a Model Studio API key in browser code.
195
+
196
+ ## Current catalog coverage
197
+
198
+ The default catalog includes current text and multimodal Qwen families plus the specialized IDs wired above: `qwen3.7-plus`, `qwen3.7-max`, `qwen3.6-flash`, `qwen3.5-omni-plus`, `qwen3.5-omni-plus-realtime`, `qwen3.5-ocr`, `tongyi-embedding-vision-plus` for international/Singapore, `qwen3-vl-embedding` for Beijing, `qwen3-rerank`, `qwen3-asr-flash`, `qwen3-tts-flash`, `qwen-image-2.0-pro`, and `wan2.7-t2v`.
199
+
200
+ Run opt-in live coverage with:
201
+
202
+ ```bash
203
+ QWEN_EXTENDED_INTEGRATION=1 bun --env-file=.env run test:integration:qwen
204
+ ```
205
+
206
+ Set only the surfaces you want to exercise: `QWEN_MULTIMODAL_EMBEDDING_MODEL`, `QWEN_MULTIMODAL_IMAGE_URL`, `QWEN_RERANK_MODEL`, `QWEN_ASR_MODEL`, `QWEN_ASR_AUDIO_URL`, `QWEN_TTS_MODEL`, `QWEN_IMAGE_MODEL`, `QWEN_VIDEO_MODEL`, and `QWEN_REALTIME_MODEL`. For the default international endpoint, use `tongyi-embedding-vision-plus`; use `qwen3-vl-embedding` only with a Beijing workspace. Workspace and endpoint overrides use `QWEN_WORKSPACE_ID`, `QWEN_REGION`, `QWEN_BASE_URL`, `QWEN_TASK_BASE_URL`, and `QWEN_REALTIME_URL`.
114
207
 
115
208
  Repository and full documentation:
116
209
 
package/dist/index.d.ts CHANGED
@@ -1,15 +1,20 @@
1
- import { type AudioResponseLimits, type CallableProviderAdapter, type EmbeddingModel, type JsonValue, type PredictionOperation, type ProviderAdapter, type RealtimeConnectionFactory } from "@zhivex-ai/core";
1
+ import { type AudioResponseLimits, type CallableProviderAdapter, type EmbedInput, type EmbeddingModel, type EmbedResult, type JsonValue, type MediaInput, type PredictionOperation, type ProviderAdapter, type RealtimeConnectionFactory } from "@zhivex-ai/core";
2
2
  export interface QwenProviderOptions {
3
3
  apiKey?: string;
4
+ workspaceId?: string;
5
+ region?: QwenRegion;
4
6
  baseURL?: string;
5
7
  taskBaseURL?: string;
6
8
  realtimeURL?: string;
7
9
  realtimeConnectionFactory?: RealtimeConnectionFactory;
8
10
  fetch?: typeof globalThis.fetch;
9
11
  responseLimits?: AudioResponseLimits;
12
+ speechAudioURLValidator?: QwenSpeechAudioURLValidator;
13
+ speechAudioMaxRedirects?: number;
10
14
  }
15
+ export type QwenSpeechAudioURLValidator = (url: URL) => boolean | Promise<boolean>;
11
16
  export interface QwenLanguageModelOptions {
12
- apiMode?: "responses" | "chat";
17
+ apiMode?: "auto" | "responses" | "chat";
13
18
  conversation?: string;
14
19
  instructions?: string;
15
20
  "x-dashscope-session-cache"?: "enable" | "disable";
@@ -29,9 +34,11 @@ export interface QwenLanguageModelOptions {
29
34
  };
30
35
  [key: string]: unknown;
31
36
  }
37
+ export type QwenRegion = "singapore" | "beijing" | "hong-kong" | "tokyo" | "frankfurt" | "virginia";
38
+ export type QwenRerankValue = string | MediaInput;
32
39
  export interface QwenRerankInput {
33
- query: string;
34
- documents: string[];
40
+ query: QwenRerankValue;
41
+ documents: QwenRerankValue[];
35
42
  topN?: number;
36
43
  providerOptions?: Record<string, unknown>;
37
44
  abortSignal?: AbortSignal;
@@ -42,7 +49,7 @@ export interface QwenRerankInput {
42
49
  export interface QwenRerankResult {
43
50
  results: Array<{
44
51
  index: number;
45
- document: string;
52
+ document: QwenRerankValue;
46
53
  relevanceScore: number;
47
54
  providerMetadata?: Record<string, unknown>;
48
55
  }>;
@@ -53,6 +60,15 @@ export interface QwenRerankModel {
53
60
  readonly modelId: string;
54
61
  rerank(input: QwenRerankInput): Promise<QwenRerankResult>;
55
62
  }
63
+ export interface QwenMultimodalEmbeddingModel extends EmbeddingModel {
64
+ embed(input: EmbedInput & {
65
+ providerOptions?: Record<string, unknown>;
66
+ abortSignal?: AbortSignal;
67
+ timeoutMs?: number;
68
+ maxRetries?: number;
69
+ retryBackoffMs?: number;
70
+ }): Promise<EmbedResult>;
71
+ }
56
72
  export interface QwenTasksClient {
57
73
  get(input: {
58
74
  name: string;
@@ -72,7 +88,7 @@ export interface QwenTasksClient {
72
88
  export type QwenProvider = CallableProviderAdapter & ProviderAdapter & {
73
89
  rawFetch: typeof globalThis.fetch;
74
90
  rerankModel(modelId: string): QwenRerankModel;
75
- multimodalEmbeddingModel(modelId: string): EmbeddingModel;
91
+ multimodalEmbeddingModel(modelId: string): QwenMultimodalEmbeddingModel;
76
92
  tasks: QwenTasksClient;
77
93
  };
78
94
  export declare const createQwen: (options?: QwenProviderOptions) => QwenProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAqBL,KAAK,mBAAmB,EAQxB,KAAK,uBAAuB,EAE5B,KAAK,cAAc,EAmBnB,KAAK,SAAS,EAOd,KAAK,mBAAmB,EACxB,KAAK,eAAe,EAEpB,KAAK,yBAAyB,EAa/B,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yBAAyB,CAAC,EAAE,yBAAyB,CAAC;IACtD,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,cAAc,CAAC,EAAE,mBAAmB,CAAC;CACtC;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,WAAW,GAAG,MAAM,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2BAA2B,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IACnD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,GAAG;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,QAAQ,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IAC9F,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,CAAC;IACxH,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC3D;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,WAAW,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACxJ,MAAM,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,WAAW,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;CAC5J;AAED,MAAM,MAAM,YAAY,GAAG,uBAAuB,GAChD,eAAe,GAAG;IAChB,QAAQ,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAClC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAAC;IAC9C,wBAAwB,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc,CAAC;IAC1D,KAAK,EAAE,eAAe,CAAC;CACxB,CAAC;AAgkDJ,eAAO,MAAM,UAAU,GACrB,UAAS,mBAAwB,KAChC,YA6BF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,8DAOlE,CAAC;AAEL,eAAO,MAAM,oBAAoB,GAAI,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,8DAOrE,CAAC;AAEL,eAAO,MAAM,uBAAuB,GAAI,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,8DAOxE,CAAC;AAEL,eAAO,MAAM,kBAAkB,GAAI,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,8DAOnE,CAAC;AAEL,eAAO,MAAM,WAAW,GAAI,QAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,8DAOvD,CAAC;AAEL,eAAO,MAAM,sBAAsB,GAAI,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,8DAOvE,CAAC;AAEL,eAAO,MAAM,mBAAmB,GAAI,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,8DAOpE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}