@tamagui/static-worker 2.0.0-rc.3 → 2.0.0-rc.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.cjs +4 -4
- package/dist/esm/index.js +83 -71
- package/dist/esm/index.js.map +1 -6
- package/dist/esm/index.mjs +4 -4
- package/dist/esm/index.mjs.map +1 -1
- package/package.json +8 -6
- package/src/index.ts +11 -10
- package/types/index.d.ts +3 -2
- package/types/index.d.ts.map +1 -1
- package/dist/cjs/index.js +0 -224
- package/dist/cjs/index.js.map +0 -6
package/dist/cjs/index.cjs
CHANGED
|
@@ -56,7 +56,7 @@ const import_meta = {},
|
|
|
56
56
|
CLOSING_KEY = "__tamagui_piscina_closing__",
|
|
57
57
|
TASK_COUNT_KEY = "__tamagui_piscina_task_count__",
|
|
58
58
|
RECYCLING_KEY = "__tamagui_piscina_recycling__",
|
|
59
|
-
MAX_TASKS_BEFORE_RECYCLE =
|
|
59
|
+
MAX_TASKS_BEFORE_RECYCLE = 1e3;
|
|
60
60
|
function getSharedPool() {
|
|
61
61
|
return globalThis[POOL_KEY] ?? null;
|
|
62
62
|
}
|
|
@@ -88,9 +88,9 @@ function resetTaskCount() {
|
|
|
88
88
|
function createPool() {
|
|
89
89
|
const pool = new import_piscina.default({
|
|
90
90
|
filename: getWorkerPath(),
|
|
91
|
-
//
|
|
92
|
-
minThreads:
|
|
93
|
-
maxThreads:
|
|
91
|
+
// each worker loads and caches config independently
|
|
92
|
+
minThreads: 2,
|
|
93
|
+
maxThreads: 2,
|
|
94
94
|
// Never terminate due to idle - worker stays alive until close() or process exit
|
|
95
95
|
// This prevents "Terminating worker thread" errors from Piscina during idle
|
|
96
96
|
idleTimeout: Number.POSITIVE_INFINITY
|
package/dist/esm/index.js
CHANGED
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
import { fileURLToPath } from "node:url";
|
|
2
2
|
import Piscina from "piscina";
|
|
3
|
-
const getPragmaOptions = async
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
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 = 1e3;
|
|
7
15
|
function getSharedPool() {
|
|
8
16
|
return globalThis[POOL_KEY] ?? null;
|
|
9
17
|
}
|
|
@@ -35,16 +43,16 @@ function resetTaskCount() {
|
|
|
35
43
|
function createPool() {
|
|
36
44
|
const pool = new Piscina({
|
|
37
45
|
filename: getWorkerPath(),
|
|
38
|
-
//
|
|
39
|
-
minThreads:
|
|
40
|
-
maxThreads:
|
|
46
|
+
// each worker loads and caches config independently
|
|
47
|
+
minThreads: 2,
|
|
48
|
+
maxThreads: 2,
|
|
41
49
|
// Never terminate due to idle - worker stays alive until close() or process exit
|
|
42
50
|
// This prevents "Terminating worker thread" errors from Piscina during idle
|
|
43
51
|
idleTimeout: Number.POSITIVE_INFINITY
|
|
44
52
|
// no resourceLimits - we rely on task-based recycling instead
|
|
45
53
|
// V8 resourceLimits cause "Terminating worker thread" messages when hit
|
|
46
54
|
});
|
|
47
|
-
return pool.on("error",
|
|
55
|
+
return pool.on("error", err => {
|
|
48
56
|
isClosing() || isRecycling() || (err && typeof err == "object" && "message" in err ? String(err.message) : "").includes("Terminating worker thread") || console.error("[tamagui] Worker pool error:", err);
|
|
49
57
|
}), pool;
|
|
50
58
|
}
|
|
@@ -53,18 +61,23 @@ function getPool() {
|
|
|
53
61
|
return pool || (pool = createPool(), setSharedPool(pool)), pool;
|
|
54
62
|
}
|
|
55
63
|
async function loadTamagui(options) {
|
|
56
|
-
const pool = getPool(),
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
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
|
+
};
|
|
66
75
|
try {
|
|
67
|
-
return await pool.run(task, {
|
|
76
|
+
return await pool.run(task, {
|
|
77
|
+
name: "runTask"
|
|
78
|
+
}), {
|
|
79
|
+
success: !0
|
|
80
|
+
};
|
|
68
81
|
} catch (error) {
|
|
69
82
|
throw console.error("[static-worker] Error loading Tamagui config:", error), error;
|
|
70
83
|
}
|
|
@@ -76,8 +89,10 @@ async function recyclePool(options) {
|
|
|
76
89
|
setRecycling(!0);
|
|
77
90
|
const start = Date.now();
|
|
78
91
|
try {
|
|
79
|
-
const originalStderr = process.stderr.write.bind(process.stderr),
|
|
80
|
-
|
|
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);
|
|
81
96
|
const newPool = createPool();
|
|
82
97
|
setSharedPool(newPool);
|
|
83
98
|
const warmupTask = {
|
|
@@ -91,8 +106,9 @@ async function recyclePool(options) {
|
|
|
91
106
|
},
|
|
92
107
|
shouldPrintDebug: !1
|
|
93
108
|
};
|
|
94
|
-
await newPool.run(warmupTask, {
|
|
95
|
-
|
|
109
|
+
await newPool.run(warmupTask, {
|
|
110
|
+
name: "runTask"
|
|
111
|
+
}), oldPool.removeAllListeners(), oldPool.destroy().catch(() => {}), setTimeout(() => {
|
|
96
112
|
process.stderr.write = originalStderr, process.stdout.write = originalStdout;
|
|
97
113
|
}), console.log(` \u267B\uFE0F [tamagui] recycled worker pool (${Date.now() - start}ms)`);
|
|
98
114
|
} finally {
|
|
@@ -100,59 +116,61 @@ async function recyclePool(options) {
|
|
|
100
116
|
}
|
|
101
117
|
}
|
|
102
118
|
async function loadTamaguiBuildConfig(tamaguiOptions) {
|
|
103
|
-
const {
|
|
119
|
+
const {
|
|
120
|
+
default: Static
|
|
121
|
+
} = await import("@tamagui/static");
|
|
104
122
|
return Static.loadTamaguiBuildConfigAsync(tamaguiOptions);
|
|
105
123
|
}
|
|
106
124
|
async function extractToClassNames(params) {
|
|
107
|
-
const {
|
|
108
|
-
if (typeof source != "string")
|
|
109
|
-
throw new Error("`source` must be a string of javascript");
|
|
110
|
-
const task = {
|
|
111
|
-
type: "extractToClassNames",
|
|
125
|
+
const {
|
|
112
126
|
source,
|
|
113
|
-
sourcePath,
|
|
127
|
+
sourcePath = "",
|
|
114
128
|
options,
|
|
115
|
-
shouldPrintDebug
|
|
116
|
-
}
|
|
129
|
+
shouldPrintDebug = !1
|
|
130
|
+
} = params;
|
|
131
|
+
if (typeof source != "string") throw new Error("`source` must be a string of javascript");
|
|
132
|
+
const task = {
|
|
133
|
+
type: "extractToClassNames",
|
|
134
|
+
source,
|
|
135
|
+
sourcePath,
|
|
136
|
+
options,
|
|
137
|
+
shouldPrintDebug
|
|
138
|
+
},
|
|
139
|
+
result = await getPool().run(task, {
|
|
140
|
+
name: "runTask"
|
|
141
|
+
});
|
|
117
142
|
if (!result.success) {
|
|
118
|
-
const errorMessage = [
|
|
119
|
-
|
|
120
|
-
"",
|
|
121
|
-
result.error,
|
|
122
|
-
result.stack ? `
|
|
123
|
-
${result.stack}` : ""
|
|
124
|
-
].filter(Boolean).join(`
|
|
143
|
+
const errorMessage = [`[tamagui-extract] Error processing file: ${sourcePath || "(unknown)"}`, "", result.error, result.stack ? `
|
|
144
|
+
${result.stack}` : ""].filter(Boolean).join(`
|
|
125
145
|
`);
|
|
126
146
|
throw new Error(errorMessage);
|
|
127
147
|
}
|
|
128
|
-
return incrementTaskCount() >= MAX_TASKS_BEFORE_RECYCLE && (resetTaskCount(), recyclePool(options).catch(() => {
|
|
129
|
-
})), result.data;
|
|
148
|
+
return incrementTaskCount() >= MAX_TASKS_BEFORE_RECYCLE && (resetTaskCount(), recyclePool(options).catch(() => {})), result.data;
|
|
130
149
|
}
|
|
131
150
|
async function extractToNative(sourceFileName, sourceCode, options) {
|
|
132
151
|
const task = {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
152
|
+
type: "extractToNative",
|
|
153
|
+
sourceFileName,
|
|
154
|
+
sourceCode,
|
|
155
|
+
options
|
|
156
|
+
},
|
|
157
|
+
result = await getPool().run(task, {
|
|
158
|
+
name: "runTask"
|
|
159
|
+
});
|
|
138
160
|
if (!result.success) {
|
|
139
|
-
const errorMessage = [
|
|
140
|
-
|
|
141
|
-
"",
|
|
142
|
-
result.error,
|
|
143
|
-
result.stack ? `
|
|
144
|
-
${result.stack}` : ""
|
|
145
|
-
].filter(Boolean).join(`
|
|
161
|
+
const errorMessage = [`[tamagui-extract] Error processing file: ${sourceFileName || "(unknown)"}`, "", result.error, result.stack ? `
|
|
162
|
+
${result.stack}` : ""].filter(Boolean).join(`
|
|
146
163
|
`);
|
|
147
164
|
throw new Error(errorMessage);
|
|
148
165
|
}
|
|
149
|
-
return incrementTaskCount() >= MAX_TASKS_BEFORE_RECYCLE && (resetTaskCount(), recyclePool(options).catch(() => {
|
|
150
|
-
})), result.data;
|
|
166
|
+
return incrementTaskCount() >= MAX_TASKS_BEFORE_RECYCLE && (resetTaskCount(), recyclePool(options).catch(() => {})), result.data;
|
|
151
167
|
}
|
|
152
168
|
async function watchTamaguiConfig(options) {
|
|
153
|
-
const {
|
|
154
|
-
|
|
155
|
-
|
|
169
|
+
const {
|
|
170
|
+
default: Static
|
|
171
|
+
} = await import("@tamagui/static"),
|
|
172
|
+
watcher = await Static.watchTamaguiConfig(options);
|
|
173
|
+
if (!watcher) return;
|
|
156
174
|
const originalDispose = watcher.dispose;
|
|
157
175
|
return {
|
|
158
176
|
dispose: () => {
|
|
@@ -163,8 +181,12 @@ async function watchTamaguiConfig(options) {
|
|
|
163
181
|
async function clearWorkerCache() {
|
|
164
182
|
const pool = getSharedPool();
|
|
165
183
|
if (!pool || isClosing()) return;
|
|
166
|
-
const task = {
|
|
167
|
-
|
|
184
|
+
const task = {
|
|
185
|
+
type: "clearCache"
|
|
186
|
+
};
|
|
187
|
+
await pool.run(task, {
|
|
188
|
+
name: "runTask"
|
|
189
|
+
});
|
|
168
190
|
}
|
|
169
191
|
async function destroyPool() {
|
|
170
192
|
const pool = getSharedPool();
|
|
@@ -187,15 +209,5 @@ function getPoolStats() {
|
|
|
187
209
|
utilization: pool.utilization
|
|
188
210
|
} : null;
|
|
189
211
|
}
|
|
190
|
-
export {
|
|
191
|
-
clearWorkerCache,
|
|
192
|
-
destroyPool,
|
|
193
|
-
extractToClassNames,
|
|
194
|
-
extractToNative,
|
|
195
|
-
getPoolStats,
|
|
196
|
-
getPragmaOptions,
|
|
197
|
-
loadTamagui,
|
|
198
|
-
loadTamaguiBuildConfig,
|
|
199
|
-
watchTamaguiConfig
|
|
200
|
-
};
|
|
212
|
+
export { clearWorkerCache, destroyPool, extractToClassNames, extractToNative, getPoolStats, getPragmaOptions, loadTamagui, loadTamaguiBuildConfig, watchTamaguiConfig };
|
|
201
213
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1,6 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/index.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
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":[]}
|
package/dist/esm/index.mjs
CHANGED
|
@@ -11,7 +11,7 @@ const getPragmaOptions = async props => {
|
|
|
11
11
|
CLOSING_KEY = "__tamagui_piscina_closing__",
|
|
12
12
|
TASK_COUNT_KEY = "__tamagui_piscina_task_count__",
|
|
13
13
|
RECYCLING_KEY = "__tamagui_piscina_recycling__",
|
|
14
|
-
MAX_TASKS_BEFORE_RECYCLE =
|
|
14
|
+
MAX_TASKS_BEFORE_RECYCLE = 1e3;
|
|
15
15
|
function getSharedPool() {
|
|
16
16
|
return globalThis[POOL_KEY] ?? null;
|
|
17
17
|
}
|
|
@@ -43,9 +43,9 @@ function resetTaskCount() {
|
|
|
43
43
|
function createPool() {
|
|
44
44
|
const pool = new Piscina({
|
|
45
45
|
filename: getWorkerPath(),
|
|
46
|
-
//
|
|
47
|
-
minThreads:
|
|
48
|
-
maxThreads:
|
|
46
|
+
// each worker loads and caches config independently
|
|
47
|
+
minThreads: 2,
|
|
48
|
+
maxThreads: 2,
|
|
49
49
|
// Never terminate due to idle - worker stays alive until close() or process exit
|
|
50
50
|
// This prevents "Terminating worker thread" errors from Piscina during idle
|
|
51
51
|
idleTimeout: Number.POSITIVE_INFINITY
|
package/dist/esm/index.mjs.map
CHANGED
|
@@ -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":"
|
|
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":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tamagui/static-worker",
|
|
3
|
-
"version": "2.0.0-rc.
|
|
3
|
+
"version": "2.0.0-rc.31",
|
|
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
|
-
"
|
|
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.
|
|
37
|
-
"@tamagui/types": "2.0.0-rc.
|
|
38
|
+
"@tamagui/static": "2.0.0-rc.31",
|
|
39
|
+
"@tamagui/types": "2.0.0-rc.31",
|
|
38
40
|
"piscina": "^4.7.0"
|
|
39
41
|
},
|
|
40
42
|
"devDependencies": {
|
|
41
|
-
"@tamagui/build": "2.0.0-rc.
|
|
43
|
+
"@tamagui/build": "2.0.0-rc.31",
|
|
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
|
-
//
|
|
47
|
-
|
|
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
|
-
//
|
|
94
|
-
minThreads:
|
|
95
|
-
maxThreads:
|
|
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
|
|
130
|
-
*
|
|
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
|
-
//
|
|
136
|
-
//
|
|
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
|
|
22
|
-
*
|
|
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
|
/**
|
package/types/index.d.ts.map
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/cjs/index.js
DELETED
|
@@ -1,224 +0,0 @@
|
|
|
1
|
-
var __create = Object.create;
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __getProtoOf = Object.getPrototypeOf, __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: !0 });
|
|
9
|
-
}, __copyProps = (to, from, except, desc) => {
|
|
10
|
-
if (from && typeof from == "object" || typeof from == "function")
|
|
11
|
-
for (let key of __getOwnPropNames(from))
|
|
12
|
-
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
13
|
-
return to;
|
|
14
|
-
};
|
|
15
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
16
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
17
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
18
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
19
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
20
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
|
|
21
|
-
mod
|
|
22
|
-
)), __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: !0 }), mod);
|
|
23
|
-
var index_exports = {};
|
|
24
|
-
__export(index_exports, {
|
|
25
|
-
clearWorkerCache: () => clearWorkerCache,
|
|
26
|
-
destroyPool: () => destroyPool,
|
|
27
|
-
extractToClassNames: () => extractToClassNames,
|
|
28
|
-
extractToNative: () => extractToNative,
|
|
29
|
-
getPoolStats: () => getPoolStats,
|
|
30
|
-
getPragmaOptions: () => getPragmaOptions,
|
|
31
|
-
loadTamagui: () => loadTamagui,
|
|
32
|
-
loadTamaguiBuildConfig: () => loadTamaguiBuildConfig,
|
|
33
|
-
watchTamaguiConfig: () => watchTamaguiConfig
|
|
34
|
-
});
|
|
35
|
-
module.exports = __toCommonJS(index_exports);
|
|
36
|
-
var import_node_url = require("node:url"), import_piscina = __toESM(require("piscina"), 1);
|
|
37
|
-
const import_meta = {}, getPragmaOptions = async (props) => {
|
|
38
|
-
const { default: Static } = await import("@tamagui/static");
|
|
39
|
-
return Static.getPragmaOptions(props);
|
|
40
|
-
}, getWorkerPath = () => typeof import_meta < "u" && import_meta.url ? (0, import_node_url.fileURLToPath)(import_meta.resolve("@tamagui/static/worker")).replace(/\.mjs$/, ".js") : require.resolve("@tamagui/static/worker").replace(/\.mjs$/, ".js"), POOL_KEY = "__tamagui_piscina_pool__", CLOSING_KEY = "__tamagui_piscina_closing__", TASK_COUNT_KEY = "__tamagui_piscina_task_count__", RECYCLING_KEY = "__tamagui_piscina_recycling__", MAX_TASKS_BEFORE_RECYCLE = 200;
|
|
41
|
-
function getSharedPool() {
|
|
42
|
-
return globalThis[POOL_KEY] ?? null;
|
|
43
|
-
}
|
|
44
|
-
function setSharedPool(pool) {
|
|
45
|
-
globalThis[POOL_KEY] = pool;
|
|
46
|
-
}
|
|
47
|
-
function isClosing() {
|
|
48
|
-
return globalThis[CLOSING_KEY] === !0;
|
|
49
|
-
}
|
|
50
|
-
function setClosing(value) {
|
|
51
|
-
globalThis[CLOSING_KEY] = value;
|
|
52
|
-
}
|
|
53
|
-
function isRecycling() {
|
|
54
|
-
return globalThis[RECYCLING_KEY] === !0;
|
|
55
|
-
}
|
|
56
|
-
function setRecycling(value) {
|
|
57
|
-
globalThis[RECYCLING_KEY] = value;
|
|
58
|
-
}
|
|
59
|
-
function getTaskCount() {
|
|
60
|
-
return globalThis[TASK_COUNT_KEY] ?? 0;
|
|
61
|
-
}
|
|
62
|
-
function incrementTaskCount() {
|
|
63
|
-
const count = getTaskCount() + 1;
|
|
64
|
-
return globalThis[TASK_COUNT_KEY] = count, count;
|
|
65
|
-
}
|
|
66
|
-
function resetTaskCount() {
|
|
67
|
-
globalThis[TASK_COUNT_KEY] = 0;
|
|
68
|
-
}
|
|
69
|
-
function createPool() {
|
|
70
|
-
const pool = new import_piscina.default({
|
|
71
|
-
filename: getWorkerPath(),
|
|
72
|
-
// Single worker for state consistency and simpler caching
|
|
73
|
-
minThreads: 1,
|
|
74
|
-
maxThreads: 1,
|
|
75
|
-
// Never terminate due to idle - worker stays alive until close() or process exit
|
|
76
|
-
// This prevents "Terminating worker thread" errors from Piscina during idle
|
|
77
|
-
idleTimeout: Number.POSITIVE_INFINITY
|
|
78
|
-
// no resourceLimits - we rely on task-based recycling instead
|
|
79
|
-
// V8 resourceLimits cause "Terminating worker thread" messages when hit
|
|
80
|
-
});
|
|
81
|
-
return pool.on("error", (err) => {
|
|
82
|
-
isClosing() || isRecycling() || (err && typeof err == "object" && "message" in err ? String(err.message) : "").includes("Terminating worker thread") || console.error("[tamagui] Worker pool error:", err);
|
|
83
|
-
}), pool;
|
|
84
|
-
}
|
|
85
|
-
function getPool() {
|
|
86
|
-
let pool = getSharedPool();
|
|
87
|
-
return pool || (pool = createPool(), setSharedPool(pool)), pool;
|
|
88
|
-
}
|
|
89
|
-
async function loadTamagui(options) {
|
|
90
|
-
const pool = getPool(), task = {
|
|
91
|
-
type: "extractToClassNames",
|
|
92
|
-
source: "// dummy",
|
|
93
|
-
sourcePath: "__dummy__.tsx",
|
|
94
|
-
options: {
|
|
95
|
-
components: ["tamagui"],
|
|
96
|
-
...options
|
|
97
|
-
},
|
|
98
|
-
shouldPrintDebug: !1
|
|
99
|
-
};
|
|
100
|
-
try {
|
|
101
|
-
return await pool.run(task, { name: "runTask" }), { success: !0 };
|
|
102
|
-
} catch (error) {
|
|
103
|
-
throw console.error("[static-worker] Error loading Tamagui config:", error), error;
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
async function recyclePool(options) {
|
|
107
|
-
if (isClosing() || isRecycling()) return;
|
|
108
|
-
const oldPool = getSharedPool();
|
|
109
|
-
if (!oldPool) return;
|
|
110
|
-
setRecycling(!0);
|
|
111
|
-
const start = Date.now();
|
|
112
|
-
try {
|
|
113
|
-
const originalStderr = process.stderr.write.bind(process.stderr), originalStdout = process.stdout.write.bind(process.stdout), filter = (chunk, ...args) => !!(typeof chunk == "string" ? chunk : chunk?.toString?.() || "").includes("Terminating worker thread");
|
|
114
|
-
process.stderr.write = ((chunk, ...args) => filter(chunk) ? !0 : originalStderr(chunk, ...args)), process.stdout.write = ((chunk, ...args) => filter(chunk) ? !0 : originalStdout(chunk, ...args));
|
|
115
|
-
const newPool = createPool();
|
|
116
|
-
setSharedPool(newPool);
|
|
117
|
-
const warmupTask = {
|
|
118
|
-
type: "extractToClassNames",
|
|
119
|
-
source: "// warmup",
|
|
120
|
-
sourcePath: "__warmup__.tsx",
|
|
121
|
-
options: {
|
|
122
|
-
...options,
|
|
123
|
-
// skip the "built config" log on warmup since it's a recycle
|
|
124
|
-
_skipBuildLog: !0
|
|
125
|
-
},
|
|
126
|
-
shouldPrintDebug: !1
|
|
127
|
-
};
|
|
128
|
-
await newPool.run(warmupTask, { name: "runTask" }), oldPool.removeAllListeners(), oldPool.destroy().catch(() => {
|
|
129
|
-
}), setTimeout(() => {
|
|
130
|
-
process.stderr.write = originalStderr, process.stdout.write = originalStdout;
|
|
131
|
-
}), console.log(` \u267B\uFE0F [tamagui] recycled worker pool (${Date.now() - start}ms)`);
|
|
132
|
-
} finally {
|
|
133
|
-
setRecycling(!1);
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
async function loadTamaguiBuildConfig(tamaguiOptions) {
|
|
137
|
-
const { default: Static } = await import("@tamagui/static");
|
|
138
|
-
return Static.loadTamaguiBuildConfigAsync(tamaguiOptions);
|
|
139
|
-
}
|
|
140
|
-
async function extractToClassNames(params) {
|
|
141
|
-
const { source, sourcePath = "", options, shouldPrintDebug = !1 } = params;
|
|
142
|
-
if (typeof source != "string")
|
|
143
|
-
throw new Error("`source` must be a string of javascript");
|
|
144
|
-
const task = {
|
|
145
|
-
type: "extractToClassNames",
|
|
146
|
-
source,
|
|
147
|
-
sourcePath,
|
|
148
|
-
options,
|
|
149
|
-
shouldPrintDebug
|
|
150
|
-
}, result = await getPool().run(task, { name: "runTask" });
|
|
151
|
-
if (!result.success) {
|
|
152
|
-
const errorMessage = [
|
|
153
|
-
`[tamagui-extract] Error processing file: ${sourcePath || "(unknown)"}`,
|
|
154
|
-
"",
|
|
155
|
-
result.error,
|
|
156
|
-
result.stack ? `
|
|
157
|
-
${result.stack}` : ""
|
|
158
|
-
].filter(Boolean).join(`
|
|
159
|
-
`);
|
|
160
|
-
throw new Error(errorMessage);
|
|
161
|
-
}
|
|
162
|
-
return incrementTaskCount() >= MAX_TASKS_BEFORE_RECYCLE && (resetTaskCount(), recyclePool(options).catch(() => {
|
|
163
|
-
})), result.data;
|
|
164
|
-
}
|
|
165
|
-
async function extractToNative(sourceFileName, sourceCode, options) {
|
|
166
|
-
const task = {
|
|
167
|
-
type: "extractToNative",
|
|
168
|
-
sourceFileName,
|
|
169
|
-
sourceCode,
|
|
170
|
-
options
|
|
171
|
-
}, result = await getPool().run(task, { name: "runTask" });
|
|
172
|
-
if (!result.success) {
|
|
173
|
-
const errorMessage = [
|
|
174
|
-
`[tamagui-extract] Error processing file: ${sourceFileName || "(unknown)"}`,
|
|
175
|
-
"",
|
|
176
|
-
result.error,
|
|
177
|
-
result.stack ? `
|
|
178
|
-
${result.stack}` : ""
|
|
179
|
-
].filter(Boolean).join(`
|
|
180
|
-
`);
|
|
181
|
-
throw new Error(errorMessage);
|
|
182
|
-
}
|
|
183
|
-
return incrementTaskCount() >= MAX_TASKS_BEFORE_RECYCLE && (resetTaskCount(), recyclePool(options).catch(() => {
|
|
184
|
-
})), result.data;
|
|
185
|
-
}
|
|
186
|
-
async function watchTamaguiConfig(options) {
|
|
187
|
-
const { default: Static } = await import("@tamagui/static"), watcher = await Static.watchTamaguiConfig(options);
|
|
188
|
-
if (!watcher)
|
|
189
|
-
return;
|
|
190
|
-
const originalDispose = watcher.dispose;
|
|
191
|
-
return {
|
|
192
|
-
dispose: () => {
|
|
193
|
-
originalDispose(), getSharedPool() && clearWorkerCache();
|
|
194
|
-
}
|
|
195
|
-
};
|
|
196
|
-
}
|
|
197
|
-
async function clearWorkerCache() {
|
|
198
|
-
const pool = getSharedPool();
|
|
199
|
-
if (!pool || isClosing()) return;
|
|
200
|
-
const task = { type: "clearCache" };
|
|
201
|
-
await pool.run(task, { name: "runTask" });
|
|
202
|
-
}
|
|
203
|
-
async function destroyPool() {
|
|
204
|
-
const pool = getSharedPool();
|
|
205
|
-
if (pool) {
|
|
206
|
-
setClosing(!0);
|
|
207
|
-
try {
|
|
208
|
-
await pool.close();
|
|
209
|
-
} finally {
|
|
210
|
-
setSharedPool(null), setClosing(!1);
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
function getPoolStats() {
|
|
215
|
-
const pool = getSharedPool();
|
|
216
|
-
return pool ? {
|
|
217
|
-
threads: pool.threads.length,
|
|
218
|
-
queueSize: pool.queueSize,
|
|
219
|
-
completed: pool.completed,
|
|
220
|
-
duration: pool.duration,
|
|
221
|
-
utilization: pool.utilization
|
|
222
|
-
} : null;
|
|
223
|
-
}
|
|
224
|
-
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/index.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYA,sBAA8B,qBAC9B,iBAAoB;AAbpB,wBAkBa,mBAAmB,OAAO,UAA4C;AACjF,QAAM,EAAE,SAAS,OAAO,IAAI,MAAM,OAAO,iBAAiB;AAC1D,SAAO,OAAO,iBAAiB,KAAK;AACtC,GAGM,gBAAgB,MAGhB,OAAO,cAAgB,OAAe,YAAY,UACjC,+BAAc,YAAY,QAAQ,wBAAwB,CAAC,EAE5D,QAAQ,UAAU,KAAK,IAIpC,gBAAgB,wBAAwB,EAAE,QAAQ,UAAU,KAAK,GAIpE,WAAW,4BACX,cAAc,+BACd,iBAAiB,kCACjB,gBAAgB,iCAKhB,2BAA2B;AAEjC,SAAS,gBAAgC;AACvC,SAAQ,WAAmB,QAAQ,KAAK;AAC1C;AAEA,SAAS,cAAc,MAAsB;AAC1C,EAAC,WAAmB,QAAQ,IAAI;AACnC;AAEA,SAAS,YAAqB;AAC5B,SAAQ,WAAmB,WAAW,MAAM;AAC9C;AAEA,SAAS,WAAW,OAAgB;AACjC,EAAC,WAAmB,WAAW,IAAI;AACtC;AAEA,SAAS,cAAuB;AAC9B,SAAQ,WAAmB,aAAa,MAAM;AAChD;AAEA,SAAS,aAAa,OAAgB;AACnC,EAAC,WAAmB,aAAa,IAAI;AACxC;AAEA,SAAS,eAAuB;AAC9B,SAAQ,WAAmB,cAAc,KAAK;AAChD;AAEA,SAAS,qBAA6B;AACpC,QAAM,QAAQ,aAAa,IAAI;AAC9B,SAAC,WAAmB,cAAc,IAAI,OAChC;AACT;AAEA,SAAS,iBAAiB;AACvB,EAAC,WAAmB,cAAc,IAAI;AACzC;AAKA,SAAS,aAAsB;AAC7B,QAAM,OAAO,IAAI,eAAAA,QAAQ;AAAA,IACvB,UAAU,cAAc;AAAA;AAAA,IAExB,YAAY;AAAA,IACZ,YAAY;AAAA;AAAA;AAAA,IAGZ,aAAa,OAAO;AAAA;AAAA;AAAA,EAGtB,CAAC;AAGD,cAAK,GAAG,SAAS,CAAC,QAAQ;AAKxB,IAJI,UAAU,KAAK,YAAY,MAE7B,OAAO,OAAO,OAAQ,YAAY,aAAa,MAAM,OAAO,IAAI,OAAO,IAAI,IAEjE,SAAS,2BAA2B,KAChD,QAAQ,MAAM,gCAAgC,GAAG;AAAA,EACnD,CAAC,GAEM;AACT;AAKA,SAAS,UAAmB;AAC1B,MAAI,OAAO,cAAc;AACzB,SAAK,SACH,OAAO,WAAW,GAClB,cAAc,IAAI,IAEb;AACT;AAMA,eAAsB,YAAY,SAAgD;AAChF,QAAM,OAAO,QAAQ,GAIf,OAAO;AAAA,IACX,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,YAAY;AAAA,IACZ,SAAS;AAAA,MACP,YAAY,CAAC,SAAS;AAAA,MACtB,GAAG;AAAA,IACL;AAAA,IACA,kBAAkB;AAAA,EACpB;AAEA,MAAI;AACF,iBAAM,KAAK,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC,GACjC,EAAE,SAAS,GAAK;AAAA,EACzB,SAAS,OAAO;AACd,kBAAQ,MAAM,iDAAiD,KAAK,GAC9D;AAAA,EACR;AACF;AAOA,eAAe,YAAY,SAAwC;AACjE,MAAI,UAAU,KAAK,YAAY,EAAG;AAElC,QAAM,UAAU,cAAc;AAC9B,MAAI,CAAC,QAAS;AAEd,eAAa,EAAI;AAEjB,QAAM,QAAQ,KAAK,IAAI;AAEvB,MAAI;AAEF,UAAM,iBAAiB,QAAQ,OAAO,MAAM,KAAK,QAAQ,MAAM,GACzD,iBAAiB,QAAQ,OAAO,MAAM,KAAK,QAAQ,MAAM,GACzD,SAAS,CAAC,UAAe,SAEzB,GADQ,OAAO,SAAU,WAAW,QAAQ,OAAO,WAAW,KAAK,IAC/D,SAAS,2BAA2B;AAG9C,YAAQ,OAAO,SAAS,CAAC,UAAe,SAClC,OAAO,KAAK,IAAU,KACnB,eAAe,OAAO,GAAG,IAAI,IAEtC,QAAQ,OAAO,SAAS,CAAC,UAAe,SAClC,OAAO,KAAK,IAAU,KACnB,eAAe,OAAO,GAAG,IAAI;AAItC,UAAM,UAAU,WAAW;AAC3B,kBAAc,OAAO;AAGrB,UAAM,aAAa;AAAA,MACjB,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,YAAY;AAAA,MACZ,SAAS;AAAA,QACP,GAAG;AAAA;AAAA,QAEH,eAAe;AAAA,MACjB;AAAA,MACA,kBAAkB;AAAA,IACpB;AAEA,UAAM,QAAQ,IAAI,YAAY,EAAE,MAAM,UAAU,CAAC,GAGjD,QAAQ,mBAAmB,GAC3B,QAAQ,QAAQ,EAAE,MAAM,MAAM;AAAA,IAAC,CAAC,GAGhC,WAAW,MAAM;AACf,cAAQ,OAAO,QAAQ,gBACvB,QAAQ,OAAO,QAAQ;AAAA,IACzB,CAAC,GAED,QAAQ,IAAI,mDAAyC,KAAK,IAAI,IAAI,KAAK,KAAK;AAAA,EAC9E,UAAE;AACA,iBAAa,EAAK;AAAA,EACpB;AACF;AAMA,eAAsB,uBACpB,gBACyB;AACzB,QAAM,EAAE,SAAS,OAAO,IAAI,MAAM,OAAO,iBAAiB;AAE1D,SAAO,OAAO,4BAA4B,cAAc;AAC1D;AAKA,eAAsB,oBAAoB,QAKzB;AACf,QAAM,EAAE,QAAQ,aAAa,IAAI,SAAS,mBAAmB,GAAM,IAAI;AAEvE,MAAI,OAAO,UAAW;AACpB,UAAM,IAAI,MAAM,yCAAyC;AAG3D,QAAM,OAAO;AAAA,IACX,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAGM,SAAU,MADH,QAAQ,EACM,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAExD,MAAI,CAAC,OAAO,SAAS;AACnB,UAAM,eAAe;AAAA,MACnB,4CAA4C,cAAc,WAAW;AAAA,MACrE;AAAA,MACA,OAAO;AAAA,MACP,OAAO,QAAQ;AAAA,EAAK,OAAO,KAAK,KAAK;AAAA,IACvC,EACG,OAAO,OAAO,EACd,KAAK;AAAA,CAAI;AAEZ,UAAM,IAAI,MAAM,YAAY;AAAA,EAC9B;AAIA,SADc,mBAAmB,KACpB,6BACX,eAAe,GAEf,YAAY,OAAO,EAAE,MAAM,MAAM;AAAA,EAAC,CAAC,IAG9B,OAAO;AAChB;AAKA,eAAsB,gBACpB,gBACA,YACA,SACc;AACd,QAAM,OAAO;AAAA,IACX,MAAM;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,EACF,GAGM,SAAU,MADH,QAAQ,EACM,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAExD,MAAI,CAAC,OAAO,SAAS;AACnB,UAAM,eAAe;AAAA,MACnB,4CAA4C,kBAAkB,WAAW;AAAA,MACzE;AAAA,MACA,OAAO;AAAA,MACP,OAAO,QAAQ;AAAA,EAAK,OAAO,KAAK,KAAK;AAAA,IACvC,EACG,OAAO,OAAO,EACd,KAAK;AAAA,CAAI;AAEZ,UAAM,IAAI,MAAM,YAAY;AAAA,EAC9B;AAIA,SADc,mBAAmB,KACpB,6BACX,eAAe,GAEf,YAAY,OAAO,EAAE,MAAM,MAAM;AAAA,EAAC,CAAC,IAG9B,OAAO;AAChB;AAKA,eAAsB,mBACpB,SAC8C;AAG9C,QAAM,EAAE,SAAS,OAAO,IAAI,MAAM,OAAO,iBAAiB,GACpD,UAAU,MAAM,OAAO,mBAAmB,OAAO;AAEvD,MAAI,CAAC;AACH;AAIF,QAAM,kBAAkB,QAAQ;AAChC,SAAO;AAAA,IACL,SAAS,MAAM;AACb,sBAAgB,GACZ,cAAc,KAEhB,iBAAiB;AAAA,IAErB;AAAA,EACF;AACF;AAMA,eAAsB,mBAAkC;AACtD,QAAM,OAAO,cAAc;AAC3B,MAAI,CAAC,QAAQ,UAAU,EAAG;AAE1B,QAAM,OAAO,EAAE,MAAM,aAAa;AAClC,QAAM,KAAK,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC1C;AAMA,eAAsB,cAA6B;AACjD,QAAM,OAAO,cAAc;AAC3B,MAAI,MAAM;AACR,eAAW,EAAI;AACf,QAAI;AACF,YAAM,KAAK,MAAM;AAAA,IACnB,UAAE;AACA,oBAAc,IAAI,GAClB,WAAW,EAAK;AAAA,IAClB;AAAA,EACF;AACF;AAKO,SAAS,eAAe;AAC7B,QAAM,OAAO,cAAc;AAC3B,SAAK,OAGE;AAAA,IACL,SAAS,KAAK,QAAQ;AAAA,IACtB,WAAW,KAAK;AAAA,IAChB,WAAW,KAAK;AAAA,IAChB,UAAU,KAAK;AAAA,IACf,aAAa,KAAK;AAAA,EACpB,IARS;AASX;",
|
|
5
|
-
"names": ["Piscina"]
|
|
6
|
-
}
|