@tamagui/cli 1.32.4 → 1.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -59,6 +59,32 @@ const COMMAND_MAP = {
59
59
  });
60
60
  }
61
61
  },
62
+ "install-font": {
63
+ shorthands: ["if"],
64
+ description: `Use to install fonts into your monorepo`,
65
+ flags: {
66
+ "--help": Boolean,
67
+ "--debug": Boolean,
68
+ "--verbose": Boolean
69
+ },
70
+ async run() {
71
+ const { installGeneratedPackage } = await import("./install-generated-package.js");
72
+ await installGeneratedPackage("font");
73
+ }
74
+ },
75
+ "install-icon": {
76
+ shorthands: ["ic"],
77
+ description: `Use to install icon packs into your monorepo`,
78
+ flags: {
79
+ "--help": Boolean,
80
+ "--debug": Boolean,
81
+ "--verbose": Boolean
82
+ },
83
+ async run() {
84
+ const { installGeneratedPackage } = await import("./install-generated-package.js");
85
+ await installGeneratedPackage("icon");
86
+ }
87
+ },
62
88
  // build: {
63
89
  // shorthands: ['b'],
64
90
  // description: `Use to pre-build a Tamagui component directory`,
package/dist/cli.js.map CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/cli.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["flags", "arg", "command", "definition", "chalk"]
6
6
  }
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var install_generated_package_exports = {};
30
+ __export(install_generated_package_exports, {
31
+ installGeneratedPackage: () => installGeneratedPackage
32
+ });
33
+ module.exports = __toCommonJS(install_generated_package_exports);
34
+ var import_child_process = require("child_process");
35
+ var import_fs = require("fs");
36
+ var import_promises = require("fs/promises");
37
+ var import_os = require("os");
38
+ var import_path = __toESM(require("path"));
39
+ var import_chalk = __toESM(require("chalk"));
40
+ var import_change_case = require("change-case");
41
+ var import_fs_extra = require("fs-extra");
42
+ var import_prompts = __toESM(require("prompts"));
43
+ const home = (0, import_os.homedir)();
44
+ const tamaguiDir = import_path.default.join(home, ".tamagui");
45
+ const installGeneratedPackage = async (type) => {
46
+ const repoName = type === "font" ? "tamagui-google-fonts" : "tamagui-iconify";
47
+ console.log(`Setting up ${import_chalk.default.blueBright(tamaguiDir)}...`);
48
+ await (0, import_fs_extra.ensureDir)(tamaguiDir);
49
+ const tempDir = import_path.default.join(tamaguiDir, repoName);
50
+ if ((0, import_fs.existsSync)(tempDir)) {
51
+ (0, import_fs.rmSync)(tempDir, { recursive: true });
52
+ }
53
+ try {
54
+ (0, import_child_process.execSync)(
55
+ `cd ${tamaguiDir} &&
56
+ git clone -n --depth=1 --branch generated --filter=tree:0 https://github.com/tamagui/${repoName}
57
+ cd ${repoName}
58
+ git sparse-checkout set --no-cone meta
59
+ git checkout`,
60
+ {
61
+ stdio: "inherit"
62
+ }
63
+ );
64
+ } catch (error) {
65
+ throw new Error(
66
+ `You don't have access to Tamagui ${type === "font" ? "fonts" : "icons"}. Check \u{1F961} Tamagui Takeout (https://tamagui.dev/takeout) for more info.`
67
+ );
68
+ }
69
+ const meta = JSON.parse(
70
+ await (0, import_promises.readFile)(import_path.default.join(tamaguiDir, repoName, `meta`, `data.json`)).then(
71
+ (r) => r.toString()
72
+ )
73
+ );
74
+ const result = await (0, import_prompts.default)({
75
+ name: "packageName",
76
+ type: "autocomplete",
77
+ message: `Pick a ${type}:`,
78
+ choices: Object.entries(meta).map(([slug, data]) => ({
79
+ 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})`,
80
+ value: slug
81
+ }))
82
+ });
83
+ const packageName = `${type === "font" ? "font-" : ""}${result.packageName}`;
84
+ const packageDir = import_path.default.join(tempDir, `packages`, packageName);
85
+ (0, import_child_process.execSync)(
86
+ `cd ${tempDir} &&
87
+ git sparse-checkout set --no-cone packages/${packageName}
88
+ git checkout`
89
+ );
90
+ const finalDir = import_path.default.join("packages", packageName);
91
+ await (0, import_fs_extra.copy)(packageDir, finalDir);
92
+ console.log(`Created the package under ${finalDir}`);
93
+ };
94
+ // Annotate the CommonJS export names for ESM import in node:
95
+ 0 && (module.exports = {
96
+ installGeneratedPackage
97
+ });
98
+ //# sourceMappingURL=install-generated-package.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/install-generated-package.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAAyB;AACzB,gBAAmC;AACnC,sBAAyB;AACzB,gBAAwB;AACxB,kBAAiB;AAEjB,mBAAkB;AAClB,yBAA2B;AAC3B,sBAAgC;AAChC,qBAAoB;AAEpB,MAAM,WAAO,mBAAQ;AACrB,MAAM,aAAa,YAAAA,QAAK,KAAK,MAAM,UAAU;AAEtC,MAAM,0BAA0B,OAAO,SAA0B;AACtE,QAAM,WAAW,SAAS,SAAS,yBAAyB;AAC5D,UAAQ,IAAI,cAAc,aAAAC,QAAM,WAAW,UAAU,MAAM;AAE3D,YAAM,2BAAU,UAAU;AAC1B,QAAM,UAAU,YAAAD,QAAK,KAAK,YAAY,QAAQ;AAC9C,UAAI,sBAAW,OAAO,GAAG;AACvB,0BAAO,SAAS,EAAE,WAAW,KAAK,CAAC;AAAA,EACrC;AACA,MAAI;AACF;AAAA,MACE,MAAM;AAAA,6FACiF;AAAA,WAClF;AAAA;AAAA;AAAA,MAGL;AAAA,QACE,OAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF,SAAS,OAAP;AACA,UAAM,IAAI;AAAA,MACR,oCACE,SAAS,SAAS,UAAU;AAAA,IAEhC;AAAA,EACF;AAEA,QAAM,OAAO,KAAK;AAAA,IAChB,UAAM,0BAAS,YAAAA,QAAK,KAAK,YAAY,UAAU,QAAQ,WAAW,CAAC,EAAE;AAAA,MAAK,CAAC,MACzE,EAAE,SAAS;AAAA,IACb;AAAA,EACF;AAEA,QAAM,SAAS,UAAM,eAAAE,SAAQ;AAAA,IAC3B,MAAM;AAAA,IACN,MAAM;AAAA,IACN,SAAS,UAAU;AAAA,IAEnB,SAAS,OAAO,QAAa,IAAI,EAAE,IAAI,CAAC,CAAC,MAAM,IAAI,OAAO;AAAA,MACxD,OACE,SAAS,SACL,GAAG,SAAS,KAAK,QAAQ,mBAAmB,KAAK,OAAO,kBACtD,KAAK,QAAQ,yDACgC,+BAAW,IAAI,OAC9D,GAAG,KAAK,SAAS,KAAK,gBAAgB,KAAK,QAAQ,kBAAkB,KAAK,OAAO;AAAA,MACvF,OAAO;AAAA,IACT,EAAE;AAAA,EACJ,CAAC;AAED,QAAM,cAAc,GAAG,SAAS,SAAS,UAAU,KAAK,OAAO;AAC/D,QAAM,aAAa,YAAAF,QAAK,KAAK,SAAS,YAAY,WAAW;AAE7D;AAAA,IACE,MAAM;AAAA,iDACuC;AAAA;AAAA,EAE/C;AACA,QAAM,WAAW,YAAAA,QAAK,KAAK,YAAY,WAAW;AAClD,YAAM,sBAAK,YAAY,QAAQ;AAC/B,UAAQ,IAAI,6BAA6B,UAAU;AACrD;",
5
+ "names": ["path", "chalk", "prompts"]
6
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/cli",
3
- "version": "1.32.4",
3
+ "version": "1.33.0",
4
4
  "source": "src/index.ts",
5
5
  "types": "./types/index.d.ts",
6
6
  "main": "dist/cjs",
@@ -35,16 +35,17 @@
35
35
  "@callstack/repack-debugger-app": "^1.0.0",
36
36
  "@fastify/sensible": "^4.1.0",
37
37
  "@fastify/static": "^5.0.2",
38
- "@tamagui/build": "1.32.4",
39
- "@tamagui/create-theme": "1.32.4",
40
- "@tamagui/static": "1.32.4",
41
- "@tamagui/types": "1.32.4",
42
- "@tamagui/vite-plugin": "1.32.4",
38
+ "@tamagui/build": "1.33.0",
39
+ "@tamagui/create-theme": "1.33.0",
40
+ "@tamagui/static": "1.33.0",
41
+ "@tamagui/types": "1.33.0",
42
+ "@tamagui/vite-plugin": "1.33.0",
43
43
  "@types/compression": "^1.7.2",
44
44
  "@types/morgan": "^1.9.3",
45
45
  "@vitejs/plugin-react-swc": "^3.3.0",
46
46
  "arg": "^5.0.2",
47
47
  "chalk": "^4.1.2",
48
+ "change-case": "^4.1.2",
48
49
  "chokidar": "^3.5.2",
49
50
  "compression": "^1.7.4",
50
51
  "esbuild": "^0.17.17",
@@ -65,6 +66,7 @@
65
66
  "open": "^8.4.0",
66
67
  "open-editor": "^4.0.0",
67
68
  "pretty-format": "^28.1.0",
69
+ "prompts": "2.1.0",
68
70
  "source-map": "^0.7.3",
69
71
  "ts-morph": "^15.1.0",
70
72
  "typescript": "^5.1.3",
package/src/cli.ts CHANGED
@@ -42,6 +42,42 @@ const COMMAND_MAP = {
42
42
  },
43
43
  },
44
44
 
45
+ 'install-font': {
46
+ shorthands: ['if'],
47
+ description: `Use to install fonts into your monorepo`,
48
+ flags: {
49
+ '--help': Boolean,
50
+ '--debug': Boolean,
51
+ '--verbose': Boolean,
52
+ },
53
+ async run() {
54
+ // const { _, ...flags } = arg(this.flags)
55
+ const { installGeneratedPackage } = await import('./install-generated-package.js')
56
+ // const options = await getOptions({
57
+ // debug: flags['--debug'] ? (flags['--verbose'] ? 'verbose' : true) : false,
58
+ // })
59
+ await installGeneratedPackage('font')
60
+ },
61
+ },
62
+
63
+ 'install-icon': {
64
+ shorthands: ['ic'],
65
+ description: `Use to install icon packs into your monorepo`,
66
+ flags: {
67
+ '--help': Boolean,
68
+ '--debug': Boolean,
69
+ '--verbose': Boolean,
70
+ },
71
+ async run() {
72
+ // const { _, ...flags } = arg(this.flags)
73
+ const { installGeneratedPackage } = await import('./install-generated-package.js')
74
+ // const options = await getOptions({
75
+ // debug: flags['--debug'] ? (flags['--verbose'] ? 'verbose' : true) : false,
76
+ // })
77
+ await installGeneratedPackage('icon')
78
+ },
79
+ },
80
+
45
81
  // build: {
46
82
  // shorthands: ['b'],
47
83
  // description: `Use to pre-build a Tamagui component directory`,
@@ -0,0 +1,76 @@
1
+ import { execSync } from 'child_process'
2
+ import { existsSync, rmSync } from 'fs'
3
+ import { readFile } from 'fs/promises'
4
+ import { homedir } from 'os'
5
+ import path from 'path'
6
+
7
+ import chalk from 'chalk'
8
+ import { pascalCase } from 'change-case'
9
+ import { copy, ensureDir } from 'fs-extra'
10
+ import prompts from 'prompts'
11
+
12
+ const home = homedir()
13
+ const tamaguiDir = path.join(home, '.tamagui')
14
+
15
+ export const installGeneratedPackage = async (type: 'font' | 'icon') => {
16
+ const repoName = type === 'font' ? 'tamagui-google-fonts' : 'tamagui-iconify'
17
+ console.log(`Setting up ${chalk.blueBright(tamaguiDir)}...`)
18
+
19
+ await ensureDir(tamaguiDir)
20
+ const tempDir = path.join(tamaguiDir, repoName)
21
+ if (existsSync(tempDir)) {
22
+ rmSync(tempDir, { recursive: true })
23
+ }
24
+ try {
25
+ execSync(
26
+ `cd ${tamaguiDir} &&
27
+ git clone -n --depth=1 --branch generated --filter=tree:0 https://github.com/tamagui/${repoName}
28
+ cd ${repoName}
29
+ git sparse-checkout set --no-cone meta
30
+ git checkout`,
31
+ {
32
+ stdio: 'inherit',
33
+ }
34
+ )
35
+ } catch (error) {
36
+ throw new Error(
37
+ `You don't have access to Tamagui ${
38
+ type === 'font' ? 'fonts' : 'icons'
39
+ }. Check 🥡 Tamagui Takeout (https://tamagui.dev/takeout) for more info.`
40
+ )
41
+ }
42
+
43
+ const meta = JSON.parse(
44
+ await readFile(path.join(tamaguiDir, repoName, `meta`, `data.json`)).then((r) =>
45
+ r.toString()
46
+ )
47
+ )
48
+
49
+ const result = await prompts({
50
+ name: 'packageName',
51
+ type: 'autocomplete',
52
+ message: `Pick a ${type}:`,
53
+
54
+ choices: Object.entries<any>(meta).map(([slug, data]) => ({
55
+ title:
56
+ type === 'font'
57
+ ? `${slug}: ${data.weights.length} weights, ${data.styles.length} styles, ${
58
+ data.subsets.length
59
+ } subsets (https://fonts.google.com/specimen/${pascalCase(slug)})`
60
+ : `${data.name}: ${data.total} icons, ${data.license.title} license (${data.author.url})`,
61
+ value: slug,
62
+ })),
63
+ })
64
+
65
+ const packageName = `${type === 'font' ? 'font-' : ''}${result.packageName}`
66
+ const packageDir = path.join(tempDir, `packages`, packageName)
67
+
68
+ execSync(
69
+ `cd ${tempDir} &&
70
+ git sparse-checkout set --no-cone packages/${packageName}
71
+ git checkout`
72
+ )
73
+ const finalDir = path.join('packages', packageName)
74
+ await copy(packageDir, finalDir)
75
+ console.log(`Created the package under ${finalDir}`)
76
+ }
@@ -0,0 +1,2 @@
1
+ export declare const installGeneratedPackage: (type: 'font' | 'icon') => Promise<void>;
2
+ //# sourceMappingURL=install-generated-package.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-generated-package.d.ts","sourceRoot":"","sources":["../src/install-generated-package.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,uBAAuB,SAAgB,MAAM,GAAG,MAAM,kBA6DlE,CAAA"}