@tamagui/static-worker 2.0.0-rc.4 → 2.0.0-rc.40

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.
@@ -1,33 +1,42 @@
1
1
  import { fileURLToPath } from "node:url";
2
2
  import Piscina from "piscina";
3
3
  const getPragmaOptions = async props => {
4
- const {
5
- default: Static
6
- } = await import("@tamagui/static");
7
- return Static.getPragmaOptions(props);
8
- },
9
- getWorkerPath = () => typeof import.meta < "u" && import.meta.url ? fileURLToPath(import.meta.resolve("@tamagui/static/worker")).replace(/\.mjs$/, ".js") : require.resolve("@tamagui/static/worker").replace(/\.mjs$/, ".js"),
10
- POOL_KEY = "__tamagui_piscina_pool__",
11
- CLOSING_KEY = "__tamagui_piscina_closing__",
12
- TASK_COUNT_KEY = "__tamagui_piscina_task_count__",
13
- RECYCLING_KEY = "__tamagui_piscina_recycling__",
14
- MAX_TASKS_BEFORE_RECYCLE = 200;
4
+ const {
5
+ default: Static
6
+ } = await import("@tamagui/static");
7
+ return Static.getPragmaOptions(props);
8
+ };
9
+ const getWorkerPath = () => {
10
+ if (typeof import.meta !== "undefined" && import.meta.url) {
11
+ const workerPath = fileURLToPath(import.meta.resolve("@tamagui/static/worker"));
12
+ return workerPath.replace(/\.mjs$/, ".js");
13
+ }
14
+ return require.resolve("@tamagui/static/worker").replace(/\.mjs$/, ".js");
15
+ };
16
+ const POOL_KEY = "__tamagui_piscina_pool__";
17
+ const CLOSING_KEY = "__tamagui_piscina_closing__";
18
+ const TASK_COUNT_KEY = "__tamagui_piscina_task_count__";
19
+ const RECYCLING_KEY = "__tamagui_piscina_recycling__";
20
+ const MAX_TASKS_BEFORE_RECYCLE = 1e3;
15
21
  function getSharedPool() {
16
22
  return globalThis[POOL_KEY] ?? null;
17
23
  }
18
24
  function setSharedPool(pool) {
25
+ ;
19
26
  globalThis[POOL_KEY] = pool;
20
27
  }
21
28
  function isClosing() {
22
- return globalThis[CLOSING_KEY] === !0;
29
+ return globalThis[CLOSING_KEY] === true;
23
30
  }
24
31
  function setClosing(value) {
32
+ ;
25
33
  globalThis[CLOSING_KEY] = value;
26
34
  }
27
35
  function isRecycling() {
28
- return globalThis[RECYCLING_KEY] === !0;
36
+ return globalThis[RECYCLING_KEY] === true;
29
37
  }
30
38
  function setRecycling(value) {
39
+ ;
31
40
  globalThis[RECYCLING_KEY] = value;
32
41
  }
33
42
  function getTaskCount() {
@@ -35,64 +44,87 @@ function getTaskCount() {
35
44
  }
36
45
  function incrementTaskCount() {
37
46
  const count = getTaskCount() + 1;
38
- return globalThis[TASK_COUNT_KEY] = count, count;
47
+ globalThis[TASK_COUNT_KEY] = count;
48
+ return count;
39
49
  }
40
50
  function resetTaskCount() {
51
+ ;
41
52
  globalThis[TASK_COUNT_KEY] = 0;
42
53
  }
43
54
  function createPool() {
44
55
  const pool = new Piscina({
45
56
  filename: getWorkerPath(),
46
- // Single worker for state consistency and simpler caching
47
- minThreads: 1,
48
- maxThreads: 1,
57
+ // each worker loads and caches config independently
58
+ minThreads: 2,
59
+ maxThreads: 2,
49
60
  // Never terminate due to idle - worker stays alive until close() or process exit
50
61
  // This prevents "Terminating worker thread" errors from Piscina during idle
51
62
  idleTimeout: Number.POSITIVE_INFINITY
52
63
  // no resourceLimits - we rely on task-based recycling instead
53
64
  // V8 resourceLimits cause "Terminating worker thread" messages when hit
54
65
  });
55
- return pool.on("error", err => {
56
- isClosing() || isRecycling() || (err && typeof err == "object" && "message" in err ? String(err.message) : "").includes("Terminating worker thread") || console.error("[tamagui] Worker pool error:", err);
57
- }), pool;
66
+ pool.on("error", err => {
67
+ if (isClosing() || isRecycling()) return;
68
+ const message = err && typeof err === "object" && "message" in err ? String(err.message) : "";
69
+ if (message.includes("Terminating worker thread")) return;
70
+ console.error("[tamagui] Worker pool error:", err);
71
+ });
72
+ return pool;
58
73
  }
59
74
  function getPool() {
60
75
  let pool = getSharedPool();
61
- return pool || (pool = createPool(), setSharedPool(pool)), pool;
76
+ if (!pool) {
77
+ pool = createPool();
78
+ setSharedPool(pool);
79
+ }
80
+ return pool;
62
81
  }
63
82
  async function loadTamagui(options) {
64
- const pool = getPool(),
65
- task = {
66
- type: "extractToClassNames",
67
- source: "// dummy",
68
- sourcePath: "__dummy__.tsx",
69
- options: {
70
- components: ["tamagui"],
71
- ...options
72
- },
73
- shouldPrintDebug: !1
74
- };
83
+ const pool = getPool();
84
+ const task = {
85
+ type: "extractToClassNames",
86
+ source: "// dummy",
87
+ sourcePath: "__dummy__.tsx",
88
+ options: {
89
+ components: ["tamagui"],
90
+ ...options
91
+ },
92
+ shouldPrintDebug: false
93
+ };
75
94
  try {
76
- return await pool.run(task, {
95
+ await pool.run(task, {
77
96
  name: "runTask"
78
- }), {
79
- success: !0
97
+ });
98
+ return {
99
+ success: true
80
100
  };
81
101
  } catch (error) {
82
- throw console.error("[static-worker] Error loading Tamagui config:", error), error;
102
+ console.error("[static-worker] Error loading Tamagui config:", error);
103
+ throw error;
83
104
  }
84
105
  }
85
106
  async function recyclePool(options) {
86
107
  if (isClosing() || isRecycling()) return;
87
108
  const oldPool = getSharedPool();
88
109
  if (!oldPool) return;
89
- setRecycling(!0);
110
+ setRecycling(true);
90
111
  const start = Date.now();
91
112
  try {
92
- const originalStderr = process.stderr.write.bind(process.stderr),
93
- originalStdout = process.stdout.write.bind(process.stdout),
94
- filter = (chunk, ...args) => !!(typeof chunk == "string" ? chunk : chunk?.toString?.() || "").includes("Terminating worker thread");
95
- process.stderr.write = (chunk, ...args) => filter(chunk) ? !0 : originalStderr(chunk, ...args), process.stdout.write = (chunk, ...args) => filter(chunk) ? !0 : originalStdout(chunk, ...args);
113
+ const originalStderr = process.stderr.write.bind(process.stderr);
114
+ const originalStdout = process.stdout.write.bind(process.stdout);
115
+ const filter = (chunk, ...args) => {
116
+ const str = typeof chunk === "string" ? chunk : chunk?.toString?.() || "";
117
+ if (str.includes("Terminating worker thread")) return true;
118
+ return false;
119
+ };
120
+ process.stderr.write = (chunk, ...args) => {
121
+ if (filter(chunk)) return true;
122
+ return originalStderr(chunk, ...args);
123
+ };
124
+ process.stdout.write = (chunk, ...args) => {
125
+ if (filter(chunk)) return true;
126
+ return originalStdout(chunk, ...args);
127
+ };
96
128
  const newPool = createPool();
97
129
  setSharedPool(newPool);
98
130
  const warmupTask = {
@@ -102,17 +134,22 @@ async function recyclePool(options) {
102
134
  options: {
103
135
  ...options,
104
136
  // skip the "built config" log on warmup since it's a recycle
105
- _skipBuildLog: !0
137
+ _skipBuildLog: true
106
138
  },
107
- shouldPrintDebug: !1
139
+ shouldPrintDebug: false
108
140
  };
109
141
  await newPool.run(warmupTask, {
110
142
  name: "runTask"
111
- }), oldPool.removeAllListeners(), oldPool.destroy().catch(() => {}), setTimeout(() => {
112
- process.stderr.write = originalStderr, process.stdout.write = originalStdout;
113
- }), console.log(` \u267B\uFE0F [tamagui] recycled worker pool (${Date.now() - start}ms)`);
143
+ });
144
+ oldPool.removeAllListeners();
145
+ oldPool.destroy().catch(() => {});
146
+ setTimeout(() => {
147
+ process.stderr.write = originalStderr;
148
+ process.stdout.write = originalStdout;
149
+ });
150
+ console.log(` \u267B\uFE0F [tamagui] recycled worker pool (${Date.now() - start}ms)`);
114
151
  } finally {
115
- setRecycling(!1);
152
+ setRecycling(false);
116
153
  }
117
154
  }
118
155
  async function loadTamaguiBuildConfig(tamaguiOptions) {
@@ -126,55 +163,72 @@ async function extractToClassNames(params) {
126
163
  source,
127
164
  sourcePath = "",
128
165
  options,
129
- shouldPrintDebug = !1
166
+ shouldPrintDebug = false
130
167
  } = params;
131
- if (typeof source != "string") throw new Error("`source` must be a string of javascript");
168
+ if (typeof source !== "string") {
169
+ throw new Error("`source` must be a string of javascript");
170
+ }
132
171
  const task = {
133
- type: "extractToClassNames",
134
- source,
135
- sourcePath,
136
- options,
137
- shouldPrintDebug
138
- },
139
- result = await getPool().run(task, {
140
- name: "runTask"
141
- });
172
+ type: "extractToClassNames",
173
+ source,
174
+ sourcePath,
175
+ options,
176
+ shouldPrintDebug
177
+ };
178
+ const pool = getPool();
179
+ const result = await pool.run(task, {
180
+ name: "runTask"
181
+ });
142
182
  if (!result.success) {
143
- const errorMessage = [`[tamagui-extract] Error processing file: ${sourcePath || "(unknown)"}`, "", result.error, result.stack ? `
144
- ${result.stack}` : ""].filter(Boolean).join(`
145
- `);
183
+ const errorMessage = [`[tamagui-extract] Error processing file: ${sourcePath || "(unknown)"}`, ``, result.error, result.stack ? `
184
+ ${result.stack}` : ""].filter(Boolean).join("\n");
146
185
  throw new Error(errorMessage);
147
186
  }
148
- return incrementTaskCount() >= MAX_TASKS_BEFORE_RECYCLE && (resetTaskCount(), recyclePool(options).catch(() => {})), result.data;
187
+ const count = incrementTaskCount();
188
+ if (count >= MAX_TASKS_BEFORE_RECYCLE) {
189
+ resetTaskCount();
190
+ recyclePool(options).catch(() => {});
191
+ }
192
+ return result.data;
149
193
  }
150
194
  async function extractToNative(sourceFileName, sourceCode, options) {
151
195
  const task = {
152
- type: "extractToNative",
153
- sourceFileName,
154
- sourceCode,
155
- options
156
- },
157
- result = await getPool().run(task, {
158
- name: "runTask"
159
- });
196
+ type: "extractToNative",
197
+ sourceFileName,
198
+ sourceCode,
199
+ options
200
+ };
201
+ const pool = getPool();
202
+ const result = await pool.run(task, {
203
+ name: "runTask"
204
+ });
160
205
  if (!result.success) {
161
- const errorMessage = [`[tamagui-extract] Error processing file: ${sourceFileName || "(unknown)"}`, "", result.error, result.stack ? `
162
- ${result.stack}` : ""].filter(Boolean).join(`
163
- `);
206
+ const errorMessage = [`[tamagui-extract] Error processing file: ${sourceFileName || "(unknown)"}`, ``, result.error, result.stack ? `
207
+ ${result.stack}` : ""].filter(Boolean).join("\n");
164
208
  throw new Error(errorMessage);
165
209
  }
166
- return incrementTaskCount() >= MAX_TASKS_BEFORE_RECYCLE && (resetTaskCount(), recyclePool(options).catch(() => {})), result.data;
210
+ const count = incrementTaskCount();
211
+ if (count >= MAX_TASKS_BEFORE_RECYCLE) {
212
+ resetTaskCount();
213
+ recyclePool(options).catch(() => {});
214
+ }
215
+ return result.data;
167
216
  }
168
217
  async function watchTamaguiConfig(options) {
169
218
  const {
170
- default: Static
171
- } = await import("@tamagui/static"),
172
- watcher = await Static.watchTamaguiConfig(options);
173
- if (!watcher) return;
219
+ default: Static
220
+ } = await import("@tamagui/static");
221
+ const watcher = await Static.watchTamaguiConfig(options);
222
+ if (!watcher) {
223
+ return;
224
+ }
174
225
  const originalDispose = watcher.dispose;
175
226
  return {
176
227
  dispose: () => {
177
- originalDispose(), getSharedPool() && clearWorkerCache();
228
+ originalDispose();
229
+ if (getSharedPool()) {
230
+ clearWorkerCache();
231
+ }
178
232
  }
179
233
  };
180
234
  }
@@ -191,23 +245,27 @@ async function clearWorkerCache() {
191
245
  async function destroyPool() {
192
246
  const pool = getSharedPool();
193
247
  if (pool) {
194
- setClosing(!0);
248
+ setClosing(true);
195
249
  try {
196
250
  await pool.close();
197
251
  } finally {
198
- setSharedPool(null), setClosing(!1);
252
+ setSharedPool(null);
253
+ setClosing(false);
199
254
  }
200
255
  }
201
256
  }
202
257
  function getPoolStats() {
203
258
  const pool = getSharedPool();
204
- return pool ? {
259
+ if (!pool) {
260
+ return null;
261
+ }
262
+ return {
205
263
  threads: pool.threads.length,
206
264
  queueSize: pool.queueSize,
207
265
  completed: pool.completed,
208
266
  duration: pool.duration,
209
267
  utilization: pool.utilization
210
- } : null;
268
+ };
211
269
  }
212
270
  export { clearWorkerCache, destroyPool, extractToClassNames, extractToNative, getPoolStats, getPragmaOptions, loadTamagui, loadTamaguiBuildConfig, watchTamaguiConfig };
213
271
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"names":["fileURLToPath","Piscina","getPragmaOptions","props","default","Static","getWorkerPath","import","meta","url","resolve","replace","require","POOL_KEY","CLOSING_KEY","TASK_COUNT_KEY","RECYCLING_KEY","MAX_TASKS_BEFORE_RECYCLE","getSharedPool","globalThis","setSharedPool","pool","isClosing","setClosing","value","isRecycling","setRecycling","getTaskCount","incrementTaskCount","count","resetTaskCount","createPool","filename","minThreads","maxThreads","idleTimeout","Number","POSITIVE_INFINITY","on","err","String","message","includes","console","error","getPool","loadTamagui","options","task","type","source","sourcePath","components","shouldPrintDebug","run","name","success","recyclePool","oldPool","start","Date","now","originalStderr","process","stderr","write","bind","originalStdout","stdout","filter","chunk","args","toString","newPool","warmupTask","_skipBuildLog","removeAllListeners","destroy","catch","setTimeout","log","loadTamaguiBuildConfig","tamaguiOptions","loadTamaguiBuildConfigAsync","extractToClassNames","params","Error","result","errorMessage","stack","Boolean","join","data","extractToNative","sourceFileName","sourceCode","watchTamaguiConfig","watcher","originalDispose","dispose","clearWorkerCache","destroyPool","close","getPoolStats","threads","length","queueSize","completed","duration","utilization"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["fileURLToPath","Piscina","getPragmaOptions","props","default","Static","getWorkerPath","import","meta","url","workerPath","resolve","replace","require","POOL_KEY","CLOSING_KEY","TASK_COUNT_KEY","RECYCLING_KEY","MAX_TASKS_BEFORE_RECYCLE","getSharedPool","globalThis","setSharedPool","pool","isClosing","setClosing","value","isRecycling","setRecycling","getTaskCount","incrementTaskCount","count","resetTaskCount","createPool","filename","minThreads","maxThreads","idleTimeout","Number","POSITIVE_INFINITY","on","err","message","String","includes","console","error","getPool","loadTamagui","options","task","type","source","sourcePath","components","shouldPrintDebug","run","name","success","recyclePool","oldPool","start","Date","now","originalStderr","process","stderr","write","bind","originalStdout","stdout","filter","chunk","args","str","toString","newPool","warmupTask","_skipBuildLog","removeAllListeners","destroy","catch","setTimeout","log","loadTamaguiBuildConfig","tamaguiOptions","loadTamaguiBuildConfigAsync","extractToClassNames","params","Error","result","errorMessage","stack","Boolean","join","data","extractToNative","sourceFileName","sourceCode","watchTamaguiConfig","watcher","originalDispose","dispose","clearWorkerCache","destroyPool","close","getPoolStats","threads","length","queueSize","completed","duration","utilization"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/static-worker",
3
- "version": "2.0.0-rc.4",
3
+ "version": "2.0.0-rc.40",
4
4
  "license": "MIT",
5
5
  "source": "src/index.ts",
6
6
  "files": [
@@ -16,9 +16,10 @@
16
16
  "./package.json": "./package.json",
17
17
  ".": {
18
18
  "types": "./types/index.d.ts",
19
- "require": "./dist/cjs/index.cjs",
19
+ "browser": "./dist/esm/index.mjs",
20
20
  "module": "./dist/esm/index.mjs",
21
- "import": "./dist/esm/index.mjs"
21
+ "import": "./dist/esm/index.mjs",
22
+ "require": "./dist/cjs/index.cjs"
22
23
  }
23
24
  },
24
25
  "publishConfig": {
@@ -30,15 +31,16 @@
30
31
  "clean": "tamagui-build clean",
31
32
  "clean:build": "tamagui-build clean:build",
32
33
  "test": "vitest run",
34
+ "test:web": "bun run test",
33
35
  "test:watch": "vitest"
34
36
  },
35
37
  "dependencies": {
36
- "@tamagui/static": "2.0.0-rc.4",
37
- "@tamagui/types": "2.0.0-rc.4",
38
+ "@tamagui/static": "2.0.0-rc.40",
39
+ "@tamagui/types": "2.0.0-rc.40",
38
40
  "piscina": "^4.7.0"
39
41
  },
40
42
  "devDependencies": {
41
- "@tamagui/build": "2.0.0-rc.4",
43
+ "@tamagui/build": "2.0.0-rc.40",
42
44
  "vitest": "4.0.4"
43
45
  }
44
46
  }
package/src/index.ts CHANGED
@@ -9,7 +9,6 @@
9
9
  */
10
10
 
11
11
  import type { TamaguiOptions } from '@tamagui/types'
12
- import { dirname, resolve } from 'node:path'
13
12
  import { fileURLToPath } from 'node:url'
14
13
  import Piscina from 'piscina'
15
14
 
@@ -43,8 +42,9 @@ const RECYCLING_KEY = '__tamagui_piscina_recycling__'
43
42
 
44
43
  // recycle worker after this many tasks to prevent RSS bloat from V8 memory fragmentation
45
44
  // Node.js worker threads don't release memory properly - see https://github.com/nodejs/node/issues/51868
46
- // Lower threshold to recycle before hitting V8 memory limits
47
- const MAX_TASKS_BEFORE_RECYCLE = 200
45
+ // set high enough that builds (typically 200-400 files) never trigger a recycle,
46
+ // but long-running dev servers still get memory relief eventually
47
+ const MAX_TASKS_BEFORE_RECYCLE = 1000
48
48
 
49
49
  function getSharedPool(): Piscina | null {
50
50
  return (globalThis as any)[POOL_KEY] ?? null
@@ -90,9 +90,9 @@ function resetTaskCount() {
90
90
  function createPool(): Piscina {
91
91
  const pool = new Piscina({
92
92
  filename: getWorkerPath(),
93
- // Single worker for state consistency and simpler caching
94
- minThreads: 1,
95
- maxThreads: 1,
93
+ // each worker loads and caches config independently
94
+ minThreads: 2,
95
+ maxThreads: 2,
96
96
  // Never terminate due to idle - worker stays alive until close() or process exit
97
97
  // This prevents "Terminating worker thread" errors from Piscina during idle
98
98
  idleTimeout: Number.POSITIVE_INFINITY,
@@ -126,14 +126,15 @@ function getPool(): Piscina {
126
126
  }
127
127
 
128
128
  /**
129
- * Load Tamagui configuration in the worker thread
130
- * This is cached in the worker, so subsequent calls are fast
129
+ * Load Tamagui configuration in worker
130
+ * Sends a warmup task to trigger config loading
131
+ * bundleConfig auto-detects if files exist and skips rebuild
131
132
  */
132
133
  export async function loadTamagui(options: Partial<TamaguiOptions>): Promise<any> {
133
134
  const pool = getPool()
134
135
 
135
- // Use extractToClassNames with a dummy request to trigger config loading
136
- // The worker will cache the config for subsequent requests
136
+ // use extractToClassNames with a dummy request to trigger config loading
137
+ // the worker will cache the config for subsequent requests
137
138
  const task = {
138
139
  type: 'extractToClassNames',
139
140
  source: '// dummy',
package/types/index.d.ts CHANGED
@@ -18,8 +18,9 @@ export declare const getPragmaOptions: (props: {
18
18
  shouldDisable: boolean;
19
19
  }>;
20
20
  /**
21
- * Load Tamagui configuration in the worker thread
22
- * This is cached in the worker, so subsequent calls are fast
21
+ * Load Tamagui configuration in worker
22
+ * Sends a warmup task to trigger config loading
23
+ * bundleConfig auto-detects if files exist and skips rebuild
23
24
  */
24
25
  export declare function loadTamagui(options: Partial<TamaguiOptions>): Promise<any>;
25
26
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAKpD,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAC5E,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,eAAO,MAAM,gBAAgB,GAAU,OAAO;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;;;EAG7E,CAAA;AA0GD;;;GAGG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAuBhF;AAsED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,SAAS,GAClD,OAAO,CAAC,cAAc,CAAC,CAIzB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE;IAChD,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,cAAc,CAAA;IACvB,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CACvC,GAAG,OAAO,CAAC,GAAG,CAAC,CAwCf;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,GAAG,CAAC,CAiCd;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,GAAG,SAAS,CAAC,CAqB9C;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAMtD;AAED;;;GAGG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAWjD;AAED;;GAEG;AACH,wBAAgB,YAAY;;;;;;SAY3B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAIpD,YAAY,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAC5E,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,eAAO,MAAM,gBAAgB,GAAU,OAAO;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;;;EAG7E,CAAA;AA2GD;;;;GAIG;AACH,wBAAsB,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAuBhF;AAsED;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,SAAS,GAClD,OAAO,CAAC,cAAc,CAAC,CAIzB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,MAAM,EAAE;IAChD,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,cAAc,CAAA;IACvB,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CACvC,GAAG,OAAO,CAAC,GAAG,CAAC,CAwCf;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,GAAG,CAAC,CAiCd;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,GAAG,SAAS,CAAC,CAqB9C;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAMtD;AAED;;;GAGG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAWjD;AAED;;GAEG;AACH,wBAAgB,YAAY;;;;;;SAY3B"}