@tamagui/cli 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/build.cjs +80 -26
- package/dist/cli.cjs +29 -15
- package/dist/generate-prompt.cjs +8 -6
- package/dist/generate.cjs +0 -0
- package/dist/utils.cjs +26 -14
- package/package.json +9 -8
- package/src/build.ts +190 -56
- package/src/cli.ts +20 -73
- package/src/generate-prompt.ts +1 -1
- package/src/utils.ts +13 -8
- package/types/build.d.ts +3 -0
- package/types/build.d.ts.map +1 -1
- package/types/generate-prompt.d.ts.map +1 -1
- package/types/utils.d.ts.map +1 -1
- package/dist/add.js +0 -91
- package/dist/add.js.map +0 -6
- package/dist/build.js +0 -188
- package/dist/build.js.map +0 -6
- package/dist/cli.js +0 -266
- package/dist/cli.js.map +0 -6
- package/dist/generate-prompt.js +0 -392
- package/dist/generate-prompt.js.map +0 -6
- package/dist/generate.js +0 -62
- package/dist/generate.js.map +0 -6
- package/dist/index.js +0 -3
- package/dist/index.js.map +0 -6
- package/dist/update-template.js +0 -57
- package/dist/update-template.js.map +0 -6
- package/dist/update.js +0 -22
- package/dist/update.js.map +0 -6
- package/dist/upgrade.js +0 -319
- package/dist/upgrade.js.map +0 -6
- package/dist/utils.js +0 -92
- package/dist/utils.js.map +0 -6
package/dist/add.js
DELETED
|
@@ -1,91 +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 add_exports = {};
|
|
24
|
-
__export(add_exports, {
|
|
25
|
-
generatedPackageTypes: () => generatedPackageTypes,
|
|
26
|
-
installGeneratedPackage: () => installGeneratedPackage
|
|
27
|
-
});
|
|
28
|
-
module.exports = __toCommonJS(add_exports);
|
|
29
|
-
var import_node_child_process = require("node:child_process"), import_node_fs = require("node:fs"), import_promises = require("node:fs/promises"), import_node_os = require("node:os"), import_node_path = __toESM(require("node:path")), import_chalk = __toESM(require("chalk")), import_change_case = require("change-case"), import_fs_extra = require("fs-extra"), import_marked = require("marked"), import_marked_terminal = __toESM(require("marked-terminal")), import_opener = __toESM(require("opener")), import_prompts = __toESM(require("prompts"));
|
|
30
|
-
import_marked.marked.setOptions({
|
|
31
|
-
renderer: new import_marked_terminal.default()
|
|
32
|
-
});
|
|
33
|
-
const home = (0, import_node_os.homedir)(), tamaguiDir = import_node_path.default.join(home, ".tamagui"), generatedPackageTypes = ["font", "icon"], installGeneratedPackage = async (type, packagesPath) => {
|
|
34
|
-
if (packagesPath = packagesPath || import_node_path.default.join(process.cwd(), "packages"), !generatedPackageTypes.includes(type))
|
|
35
|
-
throw new Error(
|
|
36
|
-
`${type ? `Type "${type}" is Not supported.` : "No type provided."} Supported types: ${generatedPackageTypes.join(", ")}`
|
|
37
|
-
);
|
|
38
|
-
const repoName = type === "font" ? "tamagui-google-fonts" : "tamagui-iconify";
|
|
39
|
-
console.info(`Setting up ${import_chalk.default.blueBright(tamaguiDir)}...`), await (0, import_fs_extra.ensureDir)(tamaguiDir);
|
|
40
|
-
const tempDir = import_node_path.default.join(tamaguiDir, repoName);
|
|
41
|
-
(0, import_node_fs.existsSync)(tempDir) && (0, import_node_fs.rmSync)(tempDir, { recursive: !0 });
|
|
42
|
-
try {
|
|
43
|
-
process.chdir(tamaguiDir);
|
|
44
|
-
try {
|
|
45
|
-
console.info("Attempting to clone with SSH"), (0, import_node_child_process.execSync)(
|
|
46
|
-
`git clone -n --depth=1 --branch generated --filter=tree:0 git@github.com:tamagui/${repoName}.git`
|
|
47
|
-
);
|
|
48
|
-
} catch {
|
|
49
|
-
console.info("SSH failed - Attempting to c lone with HTTPS"), (0, import_node_child_process.execSync)(
|
|
50
|
-
`git clone -n --depth=1 --branch generated --filter=tree:0 https://github.com/tamagui/${repoName}`
|
|
51
|
-
);
|
|
52
|
-
}
|
|
53
|
-
process.chdir(tempDir), (0, import_node_child_process.execSync)(["git sparse-checkout set --no-cone meta", "git checkout"].join(" && "));
|
|
54
|
-
} catch (error) {
|
|
55
|
-
if (error instanceof Error)
|
|
56
|
-
throw error?.stderr.includes("Repository not found") && (console.info(
|
|
57
|
-
import_chalk.default.yellow(
|
|
58
|
-
`You don't have access to Tamagui ${type === "font" ? "fonts" : "icons"}. Check \u{1F961} Tamagui Takeout (https://tamagui.dev/takeout) for more info.`
|
|
59
|
-
)
|
|
60
|
-
), (0, import_opener.default)("https://tamagui.dev/takeout"), process.exit(0)), error;
|
|
61
|
-
}
|
|
62
|
-
const meta = JSON.parse(
|
|
63
|
-
await (0, import_promises.readFile)(import_node_path.default.join(tamaguiDir, repoName, "meta", "data.json")).then(
|
|
64
|
-
(r) => r.toString()
|
|
65
|
-
)
|
|
66
|
-
);
|
|
67
|
-
console.info(
|
|
68
|
-
import_chalk.default.gray(
|
|
69
|
-
"Use \u21E7/\u21E9 to navigate. Use tab to cycle the result. Use Page Up/Page Down (on Mac: fn + \u21E7 / \u21E9) to change page. Hit enter to select the highlighted item below the prompt."
|
|
70
|
-
)
|
|
71
|
-
);
|
|
72
|
-
const result = await (0, import_prompts.default)({
|
|
73
|
-
name: "packageName",
|
|
74
|
-
type: "autocomplete",
|
|
75
|
-
message: type === "icon" ? "Pick an icon pack:" : type === "font" ? "Pick a font:" : "Pick one:",
|
|
76
|
-
choices: Object.entries(meta).map(([slug, data]) => ({
|
|
77
|
-
title: type === "font" ? `${slug}: ${data.weights.length} weights, ${data.styles.length} styles, ${data.subsets.length} subsets (https://fonts.google.com/specimen/${(0, import_change_case.pascalCase)(slug)})` : `${data.name}: ${data.total} icons, ${data.license.title} license (${data.author.url})`,
|
|
78
|
-
value: slug
|
|
79
|
-
}))
|
|
80
|
-
}), packageName = `${type}-${result.packageName}`, packageDir = import_node_path.default.join(tempDir, "packages", packageName);
|
|
81
|
-
process.chdir(tempDir), (0, import_node_child_process.execSync)(
|
|
82
|
-
[`git sparse-checkout set --no-cone packages/${packageName}`, "git checkout"].join(
|
|
83
|
-
" && "
|
|
84
|
-
)
|
|
85
|
-
);
|
|
86
|
-
const finalDir = import_node_path.default.join(packagesPath, packageName);
|
|
87
|
-
await (0, import_fs_extra.ensureDir)(packagesPath), await (0, import_fs_extra.copy)(packageDir, finalDir), console.info(), console.info(import_chalk.default.green(`Created the package under ${finalDir}`)), console.info();
|
|
88
|
-
const readmePath = import_node_path.default.join(finalDir, "README.md");
|
|
89
|
-
(0, import_node_fs.existsSync)(readmePath) && console.info(import_marked.marked.parse((0, import_fs_extra.readFileSync)(readmePath).toString()));
|
|
90
|
-
};
|
|
91
|
-
//# sourceMappingURL=add.js.map
|
package/dist/add.js.map
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/add.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": ["TerminalRenderer", "path", "chalk", "open", "prompts"]
|
|
6
|
-
}
|
package/dist/build.js
DELETED
|
@@ -1,188 +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 build_exports = {};
|
|
24
|
-
__export(build_exports, {
|
|
25
|
-
build: () => build,
|
|
26
|
-
insertCssImport: () => insertCssImport
|
|
27
|
-
});
|
|
28
|
-
module.exports = __toCommonJS(build_exports);
|
|
29
|
-
var import_static = require("@tamagui/static"), import_chokidar = __toESM(require("chokidar")), import_fs_extra = require("fs-extra"), import_micromatch = __toESM(require("micromatch")), import_node_path = require("node:path"), import_node_os = require("node:os"), import_node_child_process = require("node:child_process"), import_node_crypto = require("node:crypto");
|
|
30
|
-
function insertCssImport(jsContent, cssImport) {
|
|
31
|
-
const directiveMatch = jsContent.match(/^(['"])use (client|server)\1;?\n?/);
|
|
32
|
-
if (directiveMatch) {
|
|
33
|
-
const directive = directiveMatch[0], rest = jsContent.slice(directive.length);
|
|
34
|
-
return `${directive}${cssImport}
|
|
35
|
-
${rest}`;
|
|
36
|
-
}
|
|
37
|
-
return `${cssImport}
|
|
38
|
-
${jsContent}`;
|
|
39
|
-
}
|
|
40
|
-
const build = async (options) => {
|
|
41
|
-
const sourceDir = options.dir ?? ".", promises = [], buildOptions = (0, import_static.loadTamaguiBuildConfigSync)(options.tamaguiOptions), targets = options.target === "both" || !options.target ? ["web", "native"] : [options.target], webTamaguiOptions = {
|
|
42
|
-
...buildOptions,
|
|
43
|
-
platform: "web"
|
|
44
|
-
};
|
|
45
|
-
await (0, import_static.loadTamagui)(webTamaguiOptions);
|
|
46
|
-
const allFiles = [], watchPattern = sourceDir.match(/\.(tsx|jsx)$/) ? sourceDir : `${sourceDir}/**/*.{tsx,jsx}`;
|
|
47
|
-
await new Promise((res) => {
|
|
48
|
-
import_chokidar.default.watch(watchPattern, {
|
|
49
|
-
ignoreInitial: !1
|
|
50
|
-
}).on("add", (relativePath) => {
|
|
51
|
-
const sourcePath = (0, import_node_path.resolve)(process.cwd(), relativePath);
|
|
52
|
-
options.exclude && import_micromatch.default.contains(relativePath, options.exclude) || options.include && !import_micromatch.default.contains(relativePath, options.include) || allFiles.push(sourcePath);
|
|
53
|
-
}).on("ready", () => res());
|
|
54
|
-
});
|
|
55
|
-
const fileToTargets = /* @__PURE__ */ new Map();
|
|
56
|
-
for (const sourcePath of allFiles) {
|
|
57
|
-
const platformMatch = sourcePath.match(/\.(web|native|ios|android)\.(tsx|jsx)$/);
|
|
58
|
-
let filePlatforms = [];
|
|
59
|
-
if (platformMatch) {
|
|
60
|
-
const platform = platformMatch[1];
|
|
61
|
-
platform === "web" ? filePlatforms = ["web"] : (platform === "native" || platform === "ios" || platform === "android") && (filePlatforms = ["native"]);
|
|
62
|
-
} else {
|
|
63
|
-
const basePath = sourcePath.replace(/\.(tsx|jsx)$/, ""), hasNative = allFiles.some(
|
|
64
|
-
(f) => f === `${basePath}.native.tsx` || f === `${basePath}.native.jsx` || f === `${basePath}.ios.tsx` || f === `${basePath}.ios.jsx` || f === `${basePath}.android.tsx` || f === `${basePath}.android.jsx`
|
|
65
|
-
), hasWeb = allFiles.some(
|
|
66
|
-
(f) => f === `${basePath}.web.tsx` || f === `${basePath}.web.jsx`
|
|
67
|
-
);
|
|
68
|
-
filePlatforms = targets.filter((target) => !(target === "native" && hasNative || target === "web" && hasWeb)), hasWeb && hasNative && (filePlatforms = []);
|
|
69
|
-
}
|
|
70
|
-
filePlatforms.length > 0 && fileToTargets.set(sourcePath, filePlatforms);
|
|
71
|
-
}
|
|
72
|
-
const stats = {
|
|
73
|
-
filesProcessed: 0,
|
|
74
|
-
optimized: 0,
|
|
75
|
-
flattened: 0,
|
|
76
|
-
styled: 0,
|
|
77
|
-
found: 0
|
|
78
|
-
}, trackedFiles = [], restoreDir = options.runCommand ? (0, import_node_path.join)((0, import_node_os.tmpdir)(), `tamagui-restore-${process.pid}`) : null;
|
|
79
|
-
restoreDir && await (0, import_fs_extra.mkdir)(restoreDir, { recursive: !0 });
|
|
80
|
-
const trackFile = async (filePath) => {
|
|
81
|
-
if (!restoreDir) return;
|
|
82
|
-
const hash = (0, import_node_crypto.createHash)("md5").update(filePath).digest("hex"), backupPath = (0, import_node_path.join)(restoreDir, hash);
|
|
83
|
-
await (0, import_fs_extra.copyFile)(filePath, backupPath), trackedFiles.push({ path: filePath, hardlinkPath: backupPath, mtimeAfterWrite: 0 });
|
|
84
|
-
}, recordMtime = async (filePath) => {
|
|
85
|
-
if (!restoreDir) return;
|
|
86
|
-
const tracked = trackedFiles.find((t) => t.path === filePath);
|
|
87
|
-
if (tracked) {
|
|
88
|
-
const fileStat = await (0, import_fs_extra.stat)(filePath);
|
|
89
|
-
tracked.mtimeAfterWrite = fileStat.mtimeMs;
|
|
90
|
-
}
|
|
91
|
-
};
|
|
92
|
-
for (const [sourcePath, filePlatforms] of fileToTargets)
|
|
93
|
-
promises.push(
|
|
94
|
-
(async () => {
|
|
95
|
-
options.debug && (process.env.NODE_ENV ||= "development");
|
|
96
|
-
const originalSource = await (0, import_fs_extra.readFile)(sourcePath, "utf-8");
|
|
97
|
-
if (filePlatforms.includes("web")) {
|
|
98
|
-
process.env.TAMAGUI_TARGET = "web";
|
|
99
|
-
const extractor = (0, import_static.createExtractor)({
|
|
100
|
-
platform: "web"
|
|
101
|
-
}), out = await (0, import_static.extractToClassNames)({
|
|
102
|
-
extractor,
|
|
103
|
-
source: originalSource,
|
|
104
|
-
sourcePath,
|
|
105
|
-
options: {
|
|
106
|
-
...buildOptions,
|
|
107
|
-
platform: "web"
|
|
108
|
-
},
|
|
109
|
-
shouldPrintDebug: options.debug || !1
|
|
110
|
-
});
|
|
111
|
-
if (out) {
|
|
112
|
-
stats.filesProcessed++, stats.optimized += out.stats.optimized, stats.flattened += out.stats.flattened, stats.styled += out.stats.styled, stats.found += out.stats.found;
|
|
113
|
-
const cssName = "_" + (0, import_node_path.basename)(sourcePath, (0, import_node_path.extname)(sourcePath)), stylePath = (0, import_node_path.join)((0, import_node_path.dirname)(sourcePath), cssName + ".css"), cssImport = `import "./${cssName}.css"`, jsContent = typeof out.js == "string" ? out.js : out.js.toString("utf-8"), code = insertCssImport(jsContent, cssImport);
|
|
114
|
-
await trackFile(sourcePath), await (0, import_fs_extra.writeFile)(sourcePath, code, "utf-8"), await recordMtime(sourcePath), await (0, import_fs_extra.writeFile)(stylePath, out.styles, "utf-8"), trackedFiles.push({
|
|
115
|
-
path: stylePath,
|
|
116
|
-
hardlinkPath: "",
|
|
117
|
-
// Empty means delete on restore
|
|
118
|
-
mtimeAfterWrite: (await (0, import_fs_extra.stat)(stylePath)).mtimeMs
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
if (filePlatforms.includes("native")) {
|
|
123
|
-
process.env.TAMAGUI_TARGET = "native";
|
|
124
|
-
const nativeTamaguiOptions = {
|
|
125
|
-
...buildOptions,
|
|
126
|
-
platform: "native"
|
|
127
|
-
}, nativeOut = (0, import_static.extractToNative)(
|
|
128
|
-
sourcePath,
|
|
129
|
-
originalSource,
|
|
130
|
-
nativeTamaguiOptions
|
|
131
|
-
);
|
|
132
|
-
let nativeOutputPath = sourcePath;
|
|
133
|
-
!/\.(web|native|ios|android)\.(tsx|jsx)$/.test(
|
|
134
|
-
sourcePath
|
|
135
|
-
) && filePlatforms.length > 1 && (nativeOutputPath = sourcePath.replace(/\.(tsx|jsx)$/, ".native.$1")), nativeOut.code && ((nativeOutputPath === sourcePath || filePlatforms.length === 1) && await trackFile(nativeOutputPath), await (0, import_fs_extra.writeFile)(nativeOutputPath, nativeOut.code, "utf-8"), await recordMtime(nativeOutputPath), nativeOutputPath !== sourcePath && filePlatforms.length > 1 && trackedFiles.push({
|
|
136
|
-
path: nativeOutputPath,
|
|
137
|
-
hardlinkPath: "",
|
|
138
|
-
// Empty = delete on restore
|
|
139
|
-
mtimeAfterWrite: (await (0, import_fs_extra.stat)(nativeOutputPath)).mtimeMs
|
|
140
|
-
}));
|
|
141
|
-
}
|
|
142
|
-
})()
|
|
143
|
-
);
|
|
144
|
-
if (await Promise.all(promises), options.expectOptimizations !== void 0) {
|
|
145
|
-
const totalOptimizations = stats.optimized + stats.flattened;
|
|
146
|
-
totalOptimizations < options.expectOptimizations && (console.error(
|
|
147
|
-
`
|
|
148
|
-
Expected at least ${options.expectOptimizations} optimizations but only got ${totalOptimizations}`
|
|
149
|
-
), console.error(`Stats: ${JSON.stringify(stats, null, 2)}`), process.exit(1)), console.info(
|
|
150
|
-
`
|
|
151
|
-
\u2713 Met optimization target: ${totalOptimizations} >= ${options.expectOptimizations}`
|
|
152
|
-
);
|
|
153
|
-
}
|
|
154
|
-
if (options.runCommand && options.runCommand.length > 0) {
|
|
155
|
-
const command = options.runCommand.join(" ");
|
|
156
|
-
console.info(`
|
|
157
|
-
Running: ${command}
|
|
158
|
-
`);
|
|
159
|
-
try {
|
|
160
|
-
(0, import_node_child_process.execSync)(command, { stdio: "inherit" });
|
|
161
|
-
} catch (err) {
|
|
162
|
-
console.error(`
|
|
163
|
-
Command failed with exit code ${err.status || 1}`), process.exitCode = err.status || 1;
|
|
164
|
-
} finally {
|
|
165
|
-
await restoreFiles(trackedFiles, restoreDir);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
return { stats, trackedFiles };
|
|
169
|
-
};
|
|
170
|
-
async function restoreFiles(trackedFiles, restoreDir) {
|
|
171
|
-
if (!restoreDir || trackedFiles.length === 0) return;
|
|
172
|
-
console.info(`
|
|
173
|
-
Restoring ${trackedFiles.length} files...`);
|
|
174
|
-
let restored = 0, skipped = 0, deleted = 0;
|
|
175
|
-
for (const tracked of trackedFiles)
|
|
176
|
-
try {
|
|
177
|
-
const currentStat = await (0, import_fs_extra.stat)(tracked.path).catch(() => null);
|
|
178
|
-
if (currentStat && currentStat.mtimeMs !== tracked.mtimeAfterWrite) {
|
|
179
|
-
console.warn(` Skipping ${tracked.path} - modified during build`), skipped++;
|
|
180
|
-
continue;
|
|
181
|
-
}
|
|
182
|
-
tracked.hardlinkPath === "" ? (await (0, import_fs_extra.rm)(tracked.path, { force: !0 }), deleted++) : (await (0, import_fs_extra.copyFile)(tracked.hardlinkPath, tracked.path), restored++);
|
|
183
|
-
} catch (err) {
|
|
184
|
-
console.warn(` Failed to restore ${tracked.path}: ${err.message}`), skipped++;
|
|
185
|
-
}
|
|
186
|
-
await (0, import_fs_extra.rm)(restoreDir, { recursive: !0, force: !0 }), console.info(` Restored: ${restored}, Deleted: ${deleted}, Skipped: ${skipped}`);
|
|
187
|
-
}
|
|
188
|
-
//# sourceMappingURL=build.js.map
|
package/dist/build.js.map
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/build.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": ["chokidar", "MicroMatch"]
|
|
6
|
-
}
|
package/dist/cli.js
DELETED
|
@@ -1,266 +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 __copyProps = (to, from, except, desc) => {
|
|
7
|
-
if (from && typeof from == "object" || typeof from == "function")
|
|
8
|
-
for (let key of __getOwnPropNames(from))
|
|
9
|
-
!__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
10
|
-
return to;
|
|
11
|
-
};
|
|
12
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
13
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
14
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
15
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
16
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
17
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: !0 }) : target,
|
|
18
|
-
mod
|
|
19
|
-
));
|
|
20
|
-
var import_arg = __toESM(require("arg")), import_chalk = __toESM(require("chalk")), import_add = require("./add"), import_utils = require("./utils"), import_static = require("@tamagui/static");
|
|
21
|
-
["exit", "SIGINT"].forEach((_) => {
|
|
22
|
-
process.on(_, () => {
|
|
23
|
-
(0, import_utils.disposeAll)(), process.exit();
|
|
24
|
-
});
|
|
25
|
-
});
|
|
26
|
-
const COMMAND_MAP = {
|
|
27
|
-
check: {
|
|
28
|
-
description: "Checks your dependencies for inconsistent versions.",
|
|
29
|
-
shorthands: [],
|
|
30
|
-
flags: {
|
|
31
|
-
"--help": Boolean,
|
|
32
|
-
"--debug": Boolean,
|
|
33
|
-
"--verbose": Boolean
|
|
34
|
-
},
|
|
35
|
-
async run() {
|
|
36
|
-
const { _, ...flags2 } = (0, import_arg.default)(this.flags), options = await (0, import_utils.getOptions)({
|
|
37
|
-
debug: flags2["--debug"] ? flags2["--verbose"] ? "verbose" : !0 : !1,
|
|
38
|
-
loadTamaguiOptions: !0
|
|
39
|
-
});
|
|
40
|
-
await (0, import_static.checkDeps)(options.paths.root);
|
|
41
|
-
}
|
|
42
|
-
},
|
|
43
|
-
generate: {
|
|
44
|
-
description: "Builds your entire tamagui configuration and outputs any CSS.",
|
|
45
|
-
shorthands: [],
|
|
46
|
-
flags: {
|
|
47
|
-
"--help": Boolean,
|
|
48
|
-
"--debug": Boolean,
|
|
49
|
-
"--verbose": Boolean
|
|
50
|
-
},
|
|
51
|
-
async run() {
|
|
52
|
-
const { _, ...flags2 } = (0, import_arg.default)(this.flags), options = await (0, import_utils.getOptions)({
|
|
53
|
-
debug: flags2["--debug"] ? flags2["--verbose"] ? "verbose" : !0 : !1,
|
|
54
|
-
loadTamaguiOptions: !0
|
|
55
|
-
});
|
|
56
|
-
process.env.TAMAGUI_KEEP_THEMES = "1", await (0, import_static.loadTamagui)({
|
|
57
|
-
...options.tamaguiOptions,
|
|
58
|
-
platform: "web"
|
|
59
|
-
});
|
|
60
|
-
const { generatePrompt } = require("./generate-prompt"), { join } = require("node:path");
|
|
61
|
-
await generatePrompt({
|
|
62
|
-
...options,
|
|
63
|
-
output: join(options.paths.dotDir, "prompt.md")
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
|
-
"generate-css": {
|
|
68
|
-
shorthands: [],
|
|
69
|
-
description: "Generate the tamagui.generated.css file from your config",
|
|
70
|
-
flags: {
|
|
71
|
-
"--help": Boolean,
|
|
72
|
-
"--debug": Boolean,
|
|
73
|
-
"--verbose": Boolean,
|
|
74
|
-
"--output": String
|
|
75
|
-
},
|
|
76
|
-
async run() {
|
|
77
|
-
const { _, ...flags2 } = (0, import_arg.default)(this.flags), options = await (0, import_utils.getOptions)({
|
|
78
|
-
debug: flags2["--debug"] ? flags2["--verbose"] ? "verbose" : !0 : !1,
|
|
79
|
-
loadTamaguiOptions: !0
|
|
80
|
-
}), outputPath = flags2["--output"] || options.tamaguiOptions.outputCSS || "./tamagui.generated.css";
|
|
81
|
-
process.env.TAMAGUI_KEEP_THEMES = "1", await (0, import_static.loadTamagui)({
|
|
82
|
-
...options.tamaguiOptions,
|
|
83
|
-
outputCSS: outputPath,
|
|
84
|
-
platform: "web"
|
|
85
|
-
}), console.info(`Generated CSS to ${outputPath}`);
|
|
86
|
-
}
|
|
87
|
-
},
|
|
88
|
-
"generate-themes": {
|
|
89
|
-
shorthands: [],
|
|
90
|
-
description: "Use to pre-build your themes",
|
|
91
|
-
flags: {
|
|
92
|
-
"--help": Boolean,
|
|
93
|
-
"--debug": Boolean,
|
|
94
|
-
"--verbose": Boolean
|
|
95
|
-
},
|
|
96
|
-
async run() {
|
|
97
|
-
const { _, ...flags2 } = (0, import_arg.default)(this.flags), options = await (0, import_utils.getOptions)({
|
|
98
|
-
debug: flags2["--debug"] ? flags2["--verbose"] ? "verbose" : !0 : !1
|
|
99
|
-
}), [_cmd, inPath, outPath] = _;
|
|
100
|
-
if (!inPath || !outPath)
|
|
101
|
-
throw new Error(
|
|
102
|
-
`Must supply both input and output paths, missing one (inPath: ${inPath}, outPath: ${outPath})`
|
|
103
|
-
);
|
|
104
|
-
const { generateThemes, writeGeneratedThemes } = require("@tamagui/generate-themes");
|
|
105
|
-
try {
|
|
106
|
-
const generated = await generateThemes(inPath);
|
|
107
|
-
generated ? (await writeGeneratedThemes(options.paths.dotDir, outPath, generated), console.info(`Successfully generated themes to ${outPath}`)) : process.exit(1);
|
|
108
|
-
} catch (err) {
|
|
109
|
-
console.error(`Error generating themes: ${err}`);
|
|
110
|
-
return;
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
},
|
|
114
|
-
add: {
|
|
115
|
-
shorthands: [],
|
|
116
|
-
description: `Use to add fonts and icons to your monorepo. Supported types: ${import_add.generatedPackageTypes.join(
|
|
117
|
-
", "
|
|
118
|
-
)}`,
|
|
119
|
-
flags: {
|
|
120
|
-
"--help": Boolean,
|
|
121
|
-
"--debug": Boolean,
|
|
122
|
-
"--verbose": Boolean
|
|
123
|
-
},
|
|
124
|
-
async run() {
|
|
125
|
-
const { _, ...flags2 } = (0, import_arg.default)(this.flags), { installGeneratedPackage } = require("./add"), [cmd, type, path] = _;
|
|
126
|
-
await installGeneratedPackage(type, path);
|
|
127
|
-
}
|
|
128
|
-
},
|
|
129
|
-
build: {
|
|
130
|
-
shorthands: ["b"],
|
|
131
|
-
description: "Use to pre-build a Tamagui component directory. Use -- to run a command after optimization, then auto-restore files.",
|
|
132
|
-
flags: {
|
|
133
|
-
"--help": Boolean,
|
|
134
|
-
"--debug": Boolean,
|
|
135
|
-
"--verbose": Boolean,
|
|
136
|
-
"--target": String,
|
|
137
|
-
"--include": String,
|
|
138
|
-
"--exclude": String,
|
|
139
|
-
"--expect-optimizations": Number
|
|
140
|
-
},
|
|
141
|
-
async run() {
|
|
142
|
-
const argvSeparatorIdx = process.argv.indexOf("--");
|
|
143
|
-
let runCommand;
|
|
144
|
-
if (argvSeparatorIdx !== -1) {
|
|
145
|
-
runCommand = process.argv.slice(argvSeparatorIdx + 1);
|
|
146
|
-
const argsBeforeSeparator = process.argv.slice(0, argvSeparatorIdx);
|
|
147
|
-
process.argv = argsBeforeSeparator;
|
|
148
|
-
}
|
|
149
|
-
const { _, ...flags2 } = (0, import_arg.default)(this.flags), [_command, dir] = _, { build } = require("./build.cjs"), options = await (0, import_utils.getOptions)({
|
|
150
|
-
debug: flags2["--debug"] ? flags2["--verbose"] ? "verbose" : !0 : !1
|
|
151
|
-
});
|
|
152
|
-
await build({
|
|
153
|
-
...options,
|
|
154
|
-
dir,
|
|
155
|
-
include: flags2["--include"],
|
|
156
|
-
target: flags2["--target"] || "both",
|
|
157
|
-
exclude: flags2["--exclude"],
|
|
158
|
-
expectOptimizations: flags2["--expect-optimizations"],
|
|
159
|
-
runCommand
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
},
|
|
163
|
-
upgrade: {
|
|
164
|
-
shorthands: ["up"],
|
|
165
|
-
description: "Upgrade all tamagui packages in your workspace to the latest version",
|
|
166
|
-
flags: {
|
|
167
|
-
"--help": Boolean,
|
|
168
|
-
"--debug": Boolean,
|
|
169
|
-
"--from": String,
|
|
170
|
-
"--to": String,
|
|
171
|
-
"--changelog-only": Boolean,
|
|
172
|
-
"--dry-run": Boolean
|
|
173
|
-
},
|
|
174
|
-
async run() {
|
|
175
|
-
const { _, ...flags2 } = (0, import_arg.default)(this.flags), { upgrade } = require("./upgrade");
|
|
176
|
-
await upgrade({
|
|
177
|
-
from: flags2["--from"],
|
|
178
|
-
to: flags2["--to"],
|
|
179
|
-
changelogOnly: flags2["--changelog-only"],
|
|
180
|
-
dryRun: flags2["--dry-run"],
|
|
181
|
-
debug: flags2["--debug"]
|
|
182
|
-
});
|
|
183
|
-
}
|
|
184
|
-
},
|
|
185
|
-
"update-template": {
|
|
186
|
-
shorthands: ["ut"],
|
|
187
|
-
description: "Used to update your git repo with the source template. (e.g. Takeout)",
|
|
188
|
-
flags: {
|
|
189
|
-
"--help": Boolean,
|
|
190
|
-
"--template-repo": String,
|
|
191
|
-
"--ignored-patterns": String
|
|
192
|
-
},
|
|
193
|
-
async run() {
|
|
194
|
-
const { _, ...flags2 } = (0, import_arg.default)(this.flags), { updateTemplate } = require("./update-template");
|
|
195
|
-
if (!flags2["--template-repo"])
|
|
196
|
-
throw new Error("--template-repo is required");
|
|
197
|
-
await updateTemplate(
|
|
198
|
-
flags2["--template-repo"],
|
|
199
|
-
flags2["--ignored-patterns"]?.split(" ")
|
|
200
|
-
);
|
|
201
|
-
}
|
|
202
|
-
},
|
|
203
|
-
"generate-prompt": {
|
|
204
|
-
shorthands: [],
|
|
205
|
-
description: "Generate an LLM-friendly markdown file from your Tamagui config",
|
|
206
|
-
flags: {
|
|
207
|
-
"--help": Boolean,
|
|
208
|
-
"--debug": Boolean,
|
|
209
|
-
"--output": String
|
|
210
|
-
},
|
|
211
|
-
async run() {
|
|
212
|
-
const { _, ...flags2 } = (0, import_arg.default)(this.flags), { generatePrompt } = require("./generate-prompt"), options = await (0, import_utils.getOptions)({
|
|
213
|
-
debug: !!flags2["--debug"],
|
|
214
|
-
loadTamaguiOptions: !0
|
|
215
|
-
});
|
|
216
|
-
await generatePrompt({
|
|
217
|
-
...options,
|
|
218
|
-
output: flags2["--output"]
|
|
219
|
-
});
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
}, commandEntries = Object.keys(COMMAND_MAP).flatMap((command2) => {
|
|
223
|
-
const definition2 = COMMAND_MAP[command2];
|
|
224
|
-
return [command2, ...definition2.shorthands].map((cmd) => [cmd, definition2]);
|
|
225
|
-
}), commands = Object.fromEntries(commandEntries), {
|
|
226
|
-
_: [command],
|
|
227
|
-
...flags
|
|
228
|
-
} = (0, import_arg.default)(
|
|
229
|
-
{
|
|
230
|
-
"--help": Boolean,
|
|
231
|
-
"--version": Boolean
|
|
232
|
-
},
|
|
233
|
-
{
|
|
234
|
-
permissive: !0
|
|
235
|
-
}
|
|
236
|
-
);
|
|
237
|
-
flags["--version"] && (console.info(require("../package.json").version), process.exit(0));
|
|
238
|
-
!command && flags["--help"] && (console.info(`$ tamagui
|
|
239
|
-
|
|
240
|
-
commands:
|
|
241
|
-
|
|
242
|
-
${Object.keys(COMMAND_MAP).map((key) => ` ${key}`).join(`
|
|
243
|
-
`)}`), process.exit(0));
|
|
244
|
-
command in commands || (console.error(), console.warn(import_chalk.default.yellow(`Not a valid command: ${command}`)), process.exit(1));
|
|
245
|
-
const definition = commands[command];
|
|
246
|
-
main();
|
|
247
|
-
async function main() {
|
|
248
|
-
flags["--help"] && (console.info(`
|
|
249
|
-
$ tamagui ${command}: ${definition.description}
|
|
250
|
-
`), console.info(
|
|
251
|
-
`Flags: ${Object.entries(definition.flags).map(([k, v]) => `${k} (${v.name})`)}`
|
|
252
|
-
), process.exit(0));
|
|
253
|
-
const { _, ...cmdFlags } = (0, import_arg.default)(definition.flags);
|
|
254
|
-
cmdFlags["--help"] && (console.info(`$ tamagui ${_}
|
|
255
|
-
|
|
256
|
-
Flags: ${JSON.stringify(cmdFlags, null, 2)}
|
|
257
|
-
|
|
258
|
-
`), process.exit(0));
|
|
259
|
-
try {
|
|
260
|
-
await definition.run();
|
|
261
|
-
} catch (err) {
|
|
262
|
-
console.error(`Error running command: ${err.message}`);
|
|
263
|
-
}
|
|
264
|
-
process.exit(0);
|
|
265
|
-
}
|
|
266
|
-
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/cli.ts"],
|
|
4
|
-
"mappings": "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",
|
|
5
|
-
"names": ["flags", "arg", "command", "definition", "chalk"]
|
|
6
|
-
}
|