create-addfox-app 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli.js +15 -9
- package/dist/config/dependencyRanges.d.ts +19 -0
- package/dist/config/generate.d.ts +10 -0
- package/dist/config/merge.d.ts +10 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/lib/colors.d.ts +23 -0
- package/dist/lib/jsonFile.d.ts +6 -0
- package/dist/lib/minimist.d.ts +9 -0
- package/dist/prompts/logo.d.ts +10 -0
- package/dist/prompts/packageManager.d.ts +6 -0
- package/dist/prompts/skills.d.ts +15 -0
- package/dist/scaffold/entries.d.ts +14 -0
- package/dist/scaffold/style.d.ts +5 -0
- package/dist/scaffold/test.d.ts +12 -0
- package/dist/template/bundledCopy.d.ts +13 -0
- package/dist/template/catalog.d.ts +17 -0
- package/dist/template/filterEntries.d.ts +7 -0
- package/dist/template/spinner.d.ts +12 -0
- package/package.json +8 -2
- package/templates/template-preact-js/package.json +2 -2
- package/templates/template-preact-ts/package.json +2 -2
- package/templates/template-react-js/package.json +2 -2
- package/templates/template-react-ts/package.json +2 -2
- package/templates/template-solid-js/package.json +2 -2
- package/templates/template-solid-ts/package.json +2 -2
- package/templates/template-svelte-js/package.json +2 -2
- package/templates/template-svelte-ts/package.json +2 -2
- package/templates/template-vanilla-js/package.json +1 -1
- package/templates/template-vanilla-ts/package.json +1 -1
- package/templates/template-vue-js/package.json +2 -2
- package/templates/template-vue-ts/package.json +2 -2
package/README.md
CHANGED
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
|
|
11
11
|
Interactive scaffolder: generates a addfox-based extension project from options (template, package manager, entries, skills).
|
|
12
12
|
|
|
13
|
-
- Commands: `create
|
|
13
|
+
- Commands: `addfox create` or `npx addfox@latest create` (subcommand mode)
|
|
14
|
+
- Legacy: `create-addfox-app` or `pnpm create addfox-app` (and npm/yarn/bun equivalents)
|
|
14
15
|
- Flow: (1) select framework (vanilla / vue / react / preact / svelte / solid), (2) language (TypeScript / JavaScript), (3) package manager (pnpm / npm / yarn / bun), (4) entries to include (multi-select), (5) whether to install addfox skills (yes/no). Output to cwd or a given directory. Generated project uses **addfox.config.ts** or **addfox.config.js** with minimal manifest (entry discovery; no built-in entry paths in manifest).
|
|
15
16
|
|
|
16
17
|
## Templates
|
package/dist/cli.js
CHANGED
|
@@ -826,6 +826,7 @@ function printHelp() {
|
|
|
826
826
|
Create a new addfox extension project
|
|
827
827
|
|
|
828
828
|
Usage:
|
|
829
|
+
addfox create [project-name] [options]
|
|
829
830
|
create-addfox-app [project-name] [options]
|
|
830
831
|
|
|
831
832
|
Options:
|
|
@@ -987,19 +988,20 @@ function updatePackageName(destDir, projectName) {
|
|
|
987
988
|
pkg.name = projectName.replace(/\s+/g, "-").toLowerCase();
|
|
988
989
|
writeJsonFile(pkgPath, pkg);
|
|
989
990
|
}
|
|
990
|
-
async function
|
|
991
|
-
const argv = parseArgv(
|
|
991
|
+
async function runCreateApp(rawArgv = process.argv.slice(2)) {
|
|
992
|
+
const argv = parseArgv(rawArgv);
|
|
992
993
|
if (argv.help || argv.h) return void printHelp();
|
|
993
994
|
if (argv.version || argv.v) return void console.log(getVersion());
|
|
994
|
-
const targetDir = argv._[0] ?? "my-extension";
|
|
995
|
+
const targetDir = String(argv._[0] ?? "my-extension");
|
|
995
996
|
const cliFramework = argv.framework;
|
|
996
997
|
const cliLanguage = argv.language;
|
|
998
|
+
console.log(dim(` create-addfox-app v${getVersion()}`));
|
|
997
999
|
printAddfoxLogo();
|
|
998
1000
|
console.log(blue("\n Create Addfox App\n"));
|
|
999
1001
|
const root = external_node_path_resolve(process.cwd(), targetDir);
|
|
1000
1002
|
if (existsSync(root)) {
|
|
1001
1003
|
const confirmed = await confirmOverwrite(targetDir);
|
|
1002
|
-
if (!confirmed)
|
|
1004
|
+
if (!confirmed) return;
|
|
1003
1005
|
rmSync(root, {
|
|
1004
1006
|
recursive: true,
|
|
1005
1007
|
force: true
|
|
@@ -1014,9 +1016,9 @@ async function main() {
|
|
|
1014
1016
|
"__all__"
|
|
1015
1017
|
]
|
|
1016
1018
|
} : await promptOptions();
|
|
1017
|
-
if (!options)
|
|
1019
|
+
if (!options) return;
|
|
1018
1020
|
const testSelection = cliFramework && cliLanguage ? resolveTestSelectionFromArgv(argv) : await promptTestAndReport();
|
|
1019
|
-
if (!testSelection)
|
|
1021
|
+
if (!testSelection) return;
|
|
1020
1022
|
const pm = options.packageManager;
|
|
1021
1023
|
const templateName = getTemplateName(options.framework, options.language);
|
|
1022
1024
|
const templateReady = hasLocalTemplate(templateName);
|
|
@@ -1032,8 +1034,7 @@ async function main() {
|
|
|
1032
1034
|
minVisibleMs: TEMPLATE_SPINNER_MIN_MS
|
|
1033
1035
|
} : void 0);
|
|
1034
1036
|
} catch (err) {
|
|
1035
|
-
|
|
1036
|
-
process.exit(1);
|
|
1037
|
+
throw new Error(`Failed to copy template: ${err.message}`);
|
|
1037
1038
|
}
|
|
1038
1039
|
const useAllEntries = options.entries.includes("__all__");
|
|
1039
1040
|
const existingDirs = getExistingAppEntryDirs(root);
|
|
@@ -1090,7 +1091,12 @@ async function main() {
|
|
|
1090
1091
|
console.log(` ${installCmd}`);
|
|
1091
1092
|
console.log(` ${devCmd}\n`);
|
|
1092
1093
|
}
|
|
1093
|
-
main()
|
|
1094
|
+
async function main() {
|
|
1095
|
+
await runCreateApp();
|
|
1096
|
+
}
|
|
1097
|
+
const isCli = import.meta.url.startsWith("file://") && process.argv[1] === fileURLToPath(import.meta.url);
|
|
1098
|
+
if (isCli) main().catch((e)=>{
|
|
1094
1099
|
console.error(e);
|
|
1095
1100
|
process.exit(1);
|
|
1096
1101
|
});
|
|
1102
|
+
export { runCreateApp };
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Published dependency ranges (caret baseline) for scaffold `package.json` under `create-addfox-app/templates/`.
|
|
3
|
+
* Bump when releasing new versions of `addfox`, `@addfox/utils`, or `@rsbuild/plugin-vue` in templates.
|
|
4
|
+
*
|
|
5
|
+
* Templates put `addfox` and `@rsbuild/plugin-*` in **devDependencies** (build-time only).
|
|
6
|
+
* `@addfox/utils` is in **dependencies** so extension runtime code can import it.
|
|
7
|
+
* Do **not** list `@rsbuild/core` in templates: it is pulled in by `addfox` → `@addfox/cli` / `@addfox/core`
|
|
8
|
+
* and satisfies peers for Rsbuild plugins.
|
|
9
|
+
*
|
|
10
|
+
* `ADDFOX_0_1_SCAFFOLD_RANGE` is a semver range for tooling/docs that must accept 0.1.x prereleases.
|
|
11
|
+
*/
|
|
12
|
+
export declare const ADDFOX_CLI_PACKAGE_VERSION: "^0.2.0";
|
|
13
|
+
export declare const ADDFOX_UTILS_PACKAGE_VERSION: "^0.2.0";
|
|
14
|
+
/** `@rsbuild/plugin-vue` range in `template-vue-ts` / `template-vue-js` (aligned across JS/TS). */
|
|
15
|
+
export declare const RSBUILD_PLUGIN_VUE_PACKAGE_VERSION: "^1.2.8";
|
|
16
|
+
/**
|
|
17
|
+
* `^0.2.0` matches stable releases in the 0.2.x line.
|
|
18
|
+
*/
|
|
19
|
+
export declare const ADDFOX_0_1_SCAFFOLD_RANGE: ">=0.2.0-0 <0.3.0";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Full `addfox.config` codegen when the template has no usable file (fallback only).
|
|
3
|
+
* Normal scaffold: the template’s addfox.config is kept and merged (see `./merge.ts`).
|
|
4
|
+
*/
|
|
5
|
+
import type { Framework, Language, StyleEngine } from "../template/catalog.ts";
|
|
6
|
+
export declare function getStylePlugin(engine: StyleEngine | undefined): {
|
|
7
|
+
importLine: string;
|
|
8
|
+
call: string;
|
|
9
|
+
} | null;
|
|
10
|
+
export declare function generateAddfoxConfig(framework: Framework, _language: Language, styleEngine?: StyleEngine): string;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Merges scaffold-time changes into an existing addfox.config from the template
|
|
3
|
+
* (preserves manifest and framework plugins; only injects Less/Sass Rsbuild plugins when selected).
|
|
4
|
+
*/
|
|
5
|
+
import type { StyleEngine } from "../template/catalog.ts";
|
|
6
|
+
/**
|
|
7
|
+
* After copying a template, merge only Less/Sass Rsbuild plugins into the existing config.
|
|
8
|
+
* Tailwind/UnoCSS need no changes here (postcss + applyStyleEngine). Manifest stays as in template.
|
|
9
|
+
*/
|
|
10
|
+
export declare function mergeScaffoldIntoAddfoxConfig(source: string, styleEngine: StyleEngine): string;
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { runCreateApp } from "./cli/index.ts";
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { runCreateApp } from "./cli.js";
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Lightweight ANSI color helpers.
|
|
3
|
+
* Replaces the `kolorist` npm package to reduce supply-chain risk.
|
|
4
|
+
*/
|
|
5
|
+
export declare const black: (s: string) => string;
|
|
6
|
+
export declare const red: (s: string) => string;
|
|
7
|
+
export declare const green: (s: string) => string;
|
|
8
|
+
export declare const yellow: (s: string) => string;
|
|
9
|
+
export declare const blue: (s: string) => string;
|
|
10
|
+
export declare const magenta: (s: string) => string;
|
|
11
|
+
export declare const cyan: (s: string) => string;
|
|
12
|
+
export declare const white: (s: string) => string;
|
|
13
|
+
export declare const gray: (s: string) => string;
|
|
14
|
+
export declare const lightRed: (s: string) => string;
|
|
15
|
+
export declare const lightGreen: (s: string) => string;
|
|
16
|
+
export declare const lightYellow: (s: string) => string;
|
|
17
|
+
export declare const lightBlue: (s: string) => string;
|
|
18
|
+
export declare const lightMagenta: (s: string) => string;
|
|
19
|
+
export declare const lightCyan: (s: string) => string;
|
|
20
|
+
export declare const lightGray: (s: string) => string;
|
|
21
|
+
export declare const dim: (s: string) => string;
|
|
22
|
+
/** True-color (24-bit) helper. */
|
|
23
|
+
export declare function trueColor(r: number, g: number, b: number): (s: string) => string;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Read/write JSON files; strips UTF-8 BOM on read so JSON.parse never fails.
|
|
3
|
+
*/
|
|
4
|
+
export declare function stripUtf8Bom(text: string): string;
|
|
5
|
+
export declare function readJsonFile<T = unknown>(path: string): T;
|
|
6
|
+
export declare function writeJsonFile(path: string, data: unknown): void;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal argv parser.
|
|
3
|
+
* Replaces the `minimist` npm package to reduce supply-chain risk.
|
|
4
|
+
*/
|
|
5
|
+
export interface ParsedArgv {
|
|
6
|
+
_: (string | number)[];
|
|
7
|
+
[key: string]: string | number | boolean | (string | number)[] | undefined;
|
|
8
|
+
}
|
|
9
|
+
export declare function parseArgv(argv: string[]): ParsedArgv;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI banner: FIGlet-style block letters (same family as Vercel skills CLI).
|
|
3
|
+
*
|
|
4
|
+
* Uses **256-color** ANSI (`\x1b[38;5;Nm`) for the orange→pink gradient, not 24-bit
|
|
5
|
+
* truecolor (`38;2;r;g;b`). Apple Terminal + zsh often mishandle or strip truecolor;
|
|
6
|
+
* Vercel `skills` uses per-line 256-color grays for the same reason.
|
|
7
|
+
*
|
|
8
|
+
* @see https://github.com/vercel-labs/skills/blob/main/src/cli.ts (showLogo / GRAYS)
|
|
9
|
+
*/
|
|
10
|
+
export declare function printAddfoxLogo(): void;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skills step: fetch addfox/skills list and run skills add via package manager.
|
|
3
|
+
*/
|
|
4
|
+
export interface SkillItem {
|
|
5
|
+
name: string;
|
|
6
|
+
value: string;
|
|
7
|
+
}
|
|
8
|
+
/** Fetch list of skill names (directories with SKILL.md) from addfox/skills. */
|
|
9
|
+
export declare function fetchSkillsList(): Promise<SkillItem[]>;
|
|
10
|
+
export declare function getSkillsChoices(skills: SkillItem[]): {
|
|
11
|
+
title: string;
|
|
12
|
+
value: string;
|
|
13
|
+
}[];
|
|
14
|
+
/** Build the skills add command args: repo or repo/skill1 repo/skill2 ... */
|
|
15
|
+
export declare function getSkillsAddArgs(selected: string[]): string[];
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Extension entry types supported by create-addfox-app.
|
|
3
|
+
* Matches addfox MANIFEST_ENTRY_KEYS; app/ subdir names align with these.
|
|
4
|
+
*/
|
|
5
|
+
export declare const ENTRY_NAMES: readonly ["popup", "options", "background", "content", "devtools", "sidepanel", "sandbox", "newtab", "bookmarks", "history", "offscreen"];
|
|
6
|
+
export type EntryName = (typeof ENTRY_NAMES)[number];
|
|
7
|
+
/** app/ directory name for each entry (same as entry name) */
|
|
8
|
+
export declare const ENTRY_APP_DIRS: readonly EntryName[];
|
|
9
|
+
export declare const ENTRY_CHOICES: {
|
|
10
|
+
title: string;
|
|
11
|
+
value: string;
|
|
12
|
+
}[];
|
|
13
|
+
/** Entries that require extra permissions when added to manifest */
|
|
14
|
+
export declare const ENTRY_EXTRA_PERMISSIONS: Record<string, string[]>;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Apply selected style engine after template copy: deps, config files, and entry imports.
|
|
3
|
+
*/
|
|
4
|
+
import type { Framework, Language, StyleEngine } from "../template/catalog.ts";
|
|
5
|
+
export declare function applyStyleEngine(root: string, _framework: Framework, language: Language, engine: StyleEngine): void;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Optional rstest + Rsdoctor setup for scaffolded projects.
|
|
3
|
+
* Versions align with @rstest/core usage in this monorepo.
|
|
4
|
+
*/
|
|
5
|
+
import type { Language } from "../template/catalog.ts";
|
|
6
|
+
export type TestKind = "unit" | "e2e";
|
|
7
|
+
export interface TestSetupSelection {
|
|
8
|
+
testKinds: TestKind[];
|
|
9
|
+
installRsdoctor: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare function generateRstestConfig(language: Language, testKinds: TestKind[]): string;
|
|
12
|
+
export declare function applyTestAndReportSetup(root: string, language: Language, selection: TestSetupSelection): void;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/** True if the bundled `templates/<name>` directory exists in this package. */
|
|
2
|
+
export declare function hasLocalTemplate(templateName: string): boolean;
|
|
3
|
+
/**
|
|
4
|
+
* Skip dependency trees and VCS **inside the template folder** when copying.
|
|
5
|
+
* Must use paths relative to `templateRoot`: the install path often contains
|
|
6
|
+
* `.pnpm` / `node_modules` (e.g. pnpm store), which must not cause every file to be skipped.
|
|
7
|
+
*/
|
|
8
|
+
export declare function shouldCopyLocalTemplatePath(src: string, templateRoot: string): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Copy bundled template from node_modules/create-addfox-app/templates into destDir.
|
|
11
|
+
* @throws If the template folder is missing (broken install or forgot to run build).
|
|
12
|
+
*/
|
|
13
|
+
export declare function copyBundledTemplate(templateName: string, destDir: string): Promise<void>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export type Framework = "vanilla" | "vue" | "react" | "preact" | "svelte" | "solid";
|
|
2
|
+
export type Language = "js" | "ts";
|
|
3
|
+
/** Style / CSS tooling (after framework). `none` = no extra style stack. */
|
|
4
|
+
export type StyleEngine = "none" | "tailwindcss" | "unocss" | "less" | "sass";
|
|
5
|
+
export declare const STYLE_ENGINES: {
|
|
6
|
+
title: string;
|
|
7
|
+
value: StyleEngine;
|
|
8
|
+
}[];
|
|
9
|
+
export declare const FRAMEWORKS: {
|
|
10
|
+
title: string;
|
|
11
|
+
value: Framework;
|
|
12
|
+
}[];
|
|
13
|
+
export declare const LANGUAGES: {
|
|
14
|
+
title: string;
|
|
15
|
+
value: Language;
|
|
16
|
+
}[];
|
|
17
|
+
export declare function getTemplateName(framework: Framework, language: Language): string;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Removes app/ entry dirs that are not in the selected entries list.
|
|
3
|
+
* Call after copying template when user did not select "all" entries.
|
|
4
|
+
*/
|
|
5
|
+
export declare function filterAppEntries(destDir: string, selectedEntries: string[]): void;
|
|
6
|
+
/** Returns entry dir names that exist under app/ in the template. */
|
|
7
|
+
export declare function getExistingAppEntryDirs(destDir: string): string[];
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type TemplateSpinnerOptions = {
|
|
2
|
+
/**
|
|
3
|
+
* Keep the spinner visible at least this long after `fn` starts.
|
|
4
|
+
* Use for fast local copies so the animation is noticeable (sync work used to block the spinner).
|
|
5
|
+
*/
|
|
6
|
+
minVisibleMs?: number;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Runs `fn` while showing a Braille-dot spinner + label on one terminal line.
|
|
10
|
+
* No-op animation when stdout is not a TTY (e.g. CI).
|
|
11
|
+
*/
|
|
12
|
+
export declare function runWithTemplateSpinner<T>(label: string, fn: () => Promise<T>, options?: TemplateSpinnerOptions): Promise<T>;
|
package/package.json
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-addfox-app",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.2",
|
|
4
4
|
"description": "Interactive scaffolder for addfox extension projects",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
7
|
+
"main": "./dist/index.js",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": "./dist/index.js",
|
|
10
|
+
"./cli": "./dist/cli.js"
|
|
11
|
+
},
|
|
7
12
|
"bin": {
|
|
8
13
|
"create-addfox-app": "./dist/cli.js"
|
|
9
14
|
},
|
|
@@ -14,7 +19,7 @@
|
|
|
14
19
|
],
|
|
15
20
|
"dependencies": {
|
|
16
21
|
"prompts": "^2.4.2",
|
|
17
|
-
"@addfox/pkg-manager": "0.2.
|
|
22
|
+
"@addfox/pkg-manager": "0.2.2"
|
|
18
23
|
},
|
|
19
24
|
"engines": {
|
|
20
25
|
"node": ">=18.0.0"
|
|
@@ -24,6 +29,7 @@
|
|
|
24
29
|
"@rstest/core": "^0.9.9",
|
|
25
30
|
"@rstest/coverage-istanbul": "^0.3.2",
|
|
26
31
|
"@types/node": "^20.0.0",
|
|
32
|
+
"@types/prompts": "^2.4.9",
|
|
27
33
|
"typescript": "^5.0.0"
|
|
28
34
|
},
|
|
29
35
|
"scripts": {
|
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
"build": "addfox build"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@addfox/utils": "0.
|
|
11
|
+
"@addfox/utils": "^0.2.0",
|
|
12
12
|
"preact": "^10.29.0"
|
|
13
13
|
},
|
|
14
14
|
"devDependencies": {
|
|
15
|
-
"addfox": "0.
|
|
15
|
+
"addfox": "^0.2.0",
|
|
16
16
|
"@rsbuild/plugin-preact": "1.7.2"
|
|
17
17
|
}
|
|
18
18
|
}
|
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
"build": "addfox build"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@addfox/utils": "0.
|
|
11
|
+
"@addfox/utils": "^0.2.0",
|
|
12
12
|
"preact": "^10.29.0"
|
|
13
13
|
},
|
|
14
14
|
"devDependencies": {
|
|
15
|
-
"addfox": "0.
|
|
15
|
+
"addfox": "^0.2.0",
|
|
16
16
|
"@rsbuild/plugin-preact": "1.7.2",
|
|
17
17
|
"typescript": "^5.9.3",
|
|
18
18
|
"@types/chrome": "^0.1.38"
|
|
@@ -8,12 +8,12 @@
|
|
|
8
8
|
"build": "addfox build"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@addfox/utils": "0.
|
|
11
|
+
"@addfox/utils": "^0.2.0",
|
|
12
12
|
"react": "^19.2.4",
|
|
13
13
|
"react-dom": "^19.2.4"
|
|
14
14
|
},
|
|
15
15
|
"devDependencies": {
|
|
16
|
-
"addfox": "0.
|
|
16
|
+
"addfox": "^0.2.0",
|
|
17
17
|
"@rsbuild/plugin-react": "2.0.0"
|
|
18
18
|
}
|
|
19
19
|
}
|
|
@@ -8,12 +8,12 @@
|
|
|
8
8
|
"build": "addfox build"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@addfox/utils": "0.
|
|
11
|
+
"@addfox/utils": "^0.2.0",
|
|
12
12
|
"react": "^19.2.4",
|
|
13
13
|
"react-dom": "^19.2.4"
|
|
14
14
|
},
|
|
15
15
|
"devDependencies": {
|
|
16
|
-
"addfox": "0.
|
|
16
|
+
"addfox": "^0.2.0",
|
|
17
17
|
"@rsbuild/plugin-react": "2.0.0",
|
|
18
18
|
"typescript": "^5.9.3",
|
|
19
19
|
"@types/chrome": "^0.1.38",
|
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
"build": "addfox build"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@addfox/utils": "0.
|
|
11
|
+
"@addfox/utils": "^0.2.0",
|
|
12
12
|
"solid-js": "^1.9.11"
|
|
13
13
|
},
|
|
14
14
|
"devDependencies": {
|
|
15
|
-
"addfox": "0.
|
|
15
|
+
"addfox": "^0.2.0",
|
|
16
16
|
"@rsbuild/plugin-babel": "^1.2.0",
|
|
17
17
|
"@rsbuild/plugin-solid": "1.2.0"
|
|
18
18
|
}
|
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
"build": "addfox build"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@addfox/utils": "0.
|
|
11
|
+
"@addfox/utils": "^0.2.0",
|
|
12
12
|
"solid-js": "^1.9.11"
|
|
13
13
|
},
|
|
14
14
|
"devDependencies": {
|
|
15
|
-
"addfox": "0.
|
|
15
|
+
"addfox": "^0.2.0",
|
|
16
16
|
"@rsbuild/plugin-babel": "^1.2.0",
|
|
17
17
|
"@rsbuild/plugin-solid": "1.2.0",
|
|
18
18
|
"typescript": "^5.9.3",
|
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
"build": "addfox build"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@addfox/utils": "0.
|
|
11
|
+
"@addfox/utils": "^0.2.0",
|
|
12
12
|
"svelte": "^5.54.1"
|
|
13
13
|
},
|
|
14
14
|
"devDependencies": {
|
|
15
|
-
"addfox": "0.
|
|
15
|
+
"addfox": "^0.2.0",
|
|
16
16
|
"@rsbuild/plugin-svelte": "1.1.1"
|
|
17
17
|
}
|
|
18
18
|
}
|
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
"build": "addfox build"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@addfox/utils": "0.
|
|
11
|
+
"@addfox/utils": "^0.2.0",
|
|
12
12
|
"svelte": "^5.54.1"
|
|
13
13
|
},
|
|
14
14
|
"devDependencies": {
|
|
15
|
-
"addfox": "0.
|
|
15
|
+
"addfox": "^0.2.0",
|
|
16
16
|
"@rsbuild/plugin-svelte": "1.1.1",
|
|
17
17
|
"typescript": "^5.9.3",
|
|
18
18
|
"@types/chrome": "^0.1.38"
|
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
"build": "addfox build"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@addfox/utils": "0.
|
|
11
|
+
"@addfox/utils": "^0.2.0",
|
|
12
12
|
"vue": "^3.5.30"
|
|
13
13
|
},
|
|
14
14
|
"devDependencies": {
|
|
15
|
-
"addfox": "0.
|
|
15
|
+
"addfox": "^0.2.0",
|
|
16
16
|
"@rsbuild/plugin-vue": "^1.2.8"
|
|
17
17
|
}
|
|
18
18
|
}
|
|
@@ -8,11 +8,11 @@
|
|
|
8
8
|
"build": "addfox build"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@addfox/utils": "0.
|
|
11
|
+
"@addfox/utils": "^0.2.0",
|
|
12
12
|
"vue": "^3.5.30"
|
|
13
13
|
},
|
|
14
14
|
"devDependencies": {
|
|
15
|
-
"addfox": "0.
|
|
15
|
+
"addfox": "^0.2.0",
|
|
16
16
|
"@rsbuild/plugin-vue": "^1.2.8",
|
|
17
17
|
"typescript": "^5.9.3",
|
|
18
18
|
"@types/chrome": "^0.1.38"
|