@m14i/sith 1.16.0 → 1.17.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.
Files changed (35) hide show
  1. package/dist/commands/__tests__/nix.test.d.ts +2 -0
  2. package/dist/commands/__tests__/nix.test.d.ts.map +1 -0
  3. package/dist/commands/docker.d.ts.map +1 -1
  4. package/dist/commands/nix.d.ts +1 -0
  5. package/dist/commands/nix.d.ts.map +1 -1
  6. package/dist/commands/skills.d.ts.map +1 -1
  7. package/dist/components/ConfigModal.d.ts +1 -1
  8. package/dist/components/ConfigModal.d.ts.map +1 -1
  9. package/dist/components/TerminalUI.d.ts.map +1 -1
  10. package/dist/index.js +479 -416
  11. package/dist/package.json +1 -1
  12. package/dist/types.d.ts.map +1 -1
  13. package/dist/utils/__tests__/dockerArgs.test.d.ts +2 -0
  14. package/dist/utils/__tests__/dockerArgs.test.d.ts.map +1 -0
  15. package/dist/utils/__tests__/githubToken.test.d.ts +2 -0
  16. package/dist/utils/__tests__/githubToken.test.d.ts.map +1 -0
  17. package/dist/utils/__tests__/messageUtils.test.d.ts +2 -0
  18. package/dist/utils/__tests__/messageUtils.test.d.ts.map +1 -0
  19. package/dist/utils/__tests__/skills.test.d.ts +2 -0
  20. package/dist/utils/__tests__/skills.test.d.ts.map +1 -0
  21. package/dist/utils/__tests__/slashCommands.test.d.ts +2 -0
  22. package/dist/utils/__tests__/slashCommands.test.d.ts.map +1 -0
  23. package/dist/utils/dockerArgs.d.ts +3 -0
  24. package/dist/utils/dockerArgs.d.ts.map +1 -0
  25. package/dist/utils/githubToken.d.ts +2 -0
  26. package/dist/utils/githubToken.d.ts.map +1 -0
  27. package/dist/utils/messageUtils.d.ts +4 -0
  28. package/dist/utils/messageUtils.d.ts.map +1 -0
  29. package/dist/utils/skills.d.ts +1 -0
  30. package/dist/utils/skills.d.ts.map +1 -1
  31. package/dist/utils/slashCommands.d.ts.map +1 -1
  32. package/docker/Dockerfile +4 -9
  33. package/docker/nix/nix-scripts/setup.sh +7 -0
  34. package/package.json +8 -3
  35. package/dist/package1.json +0 -137
package/dist/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@m14i/sith","version":"1.16.0","description":"Turn your context to the dark side. Standardize and share your OpenCode setup with a fully dockerized environment, designed for seamless collaboration and CI integration.","type":"module","repository":{"type":"git","url":"https://github.com/MerzoukeMansouri/sith.git"},"bin":{"sith":"./dist/index.js"},"scripts":{"build":"ncc build src/index.ts -o dist && rm -rf dist/assets && cp -r assets dist/","dev":"tsx src/index.ts","dev:build":"pnpm build && node dist/index.js","dev:shell":"pnpm build && node dist/index.js shell","typecheck":"tsc --noEmit","clean":"rm -rf dist","prepublishOnly":"pnpm build"},"files":["dist","assets","docker"],"keywords":["opencode","docker","ci","automation","cli","nix"],"author":"","license":"MIT","dependencies":{"@inquirer/prompts":"^5.0.0","chalk":"^5.3.0","commander":"^12.1.0","execa":"^9.0.0","ink":"^7.0.3","ink-text-input":"^6.0.0","react":"^19.2.6","update-notifier":"^7.3.1"},"devDependencies":{"@semantic-release/changelog":"^6.0.3","@semantic-release/git":"^10.0.1","@semantic-release/github":"^11.0.1","@semantic-release/npm":"^12.0.1","@types/node":"^20.12.7","@types/react":"^19.2.14","@types/update-notifier":"^6.0.8","@vercel/ncc":"^0.38.1","semantic-release":"^24.2.0","tsx":"^4.7.2","typescript":"^5.4.5"},"engines":{"node":">=18"}}
1
+ {"name":"ink","version":"7.0.3","description":"React for CLI","license":"MIT","repository":"vadimdemedes/ink","author":{"name":"Vadim Demedes","email":"vadimdemedes@hey.com","url":"https://github.com/vadimdemedes"},"type":"module","exports":{"types":"./build/index.d.ts","default":"./build/index.js"},"engines":{"node":">=22"},"scripts":{"dev":"tsc --watch","build":"tsc","prepare":"npm run build","test":"npm run typecheck && npm run lint && FORCE_COLOR=true ava","lint":"xo","format":"prettier --write .","typecheck":"tsc --noEmit","example":"NODE_NO_WARNINGS=1 node --import=tsx","benchmark":"NODE_NO_WARNINGS=1 node --import=tsx","inspect":"react-devtools"},"files":["build"],"keywords":["react","cli","jsx","stdout","components","command-line","preact","redux","print","render","colors","text"],"dependencies":{"@alcalzone/ansi-tokenize":"^0.3.0","ansi-escapes":"^7.3.0","ansi-styles":"^6.2.3","auto-bind":"^5.0.1","chalk":"^5.6.2","cli-boxes":"^4.0.1","cli-cursor":"^4.0.0","cli-truncate":"^6.0.0","code-excerpt":"^4.0.0","es-toolkit":"^1.45.1","indent-string":"^5.0.0","is-in-ci":"^2.0.0","patch-console":"^2.0.0","react-reconciler":"^0.33.0","scheduler":"^0.27.0","signal-exit":"^3.0.7","slice-ansi":"^9.0.0","stack-utils":"^2.0.6","string-width":"^8.2.0","terminal-size":"^4.0.1","type-fest":"^5.5.0","widest-line":"^6.0.0","wrap-ansi":"^10.0.0","ws":"^8.20.0","yoga-layout":"~3.2.1"},"devDependencies":{"@faker-js/faker":"^10.4.0","@sindresorhus/tsconfig":"^8.1.0","@sinonjs/fake-timers":"^15.3.0","@types/ms":"^2.1.0","@types/node":"^25.5.2","@types/react":"^19.2.14","@types/react-reconciler":"^0.33.0","@types/scheduler":"^0.26.0","@types/signal-exit":"^3.0.0","@types/sinon":"^21.0.1","@types/stack-utils":"^2.0.3","@types/ws":"^8.18.1","@vdemedes/prettier-config":"^2.0.1","ava":"^7.0.0","boxen":"^8.0.1","delay":"^7.0.0","ms":"^2.1.3","node-pty":"^1.2.0-beta.12","p-queue":"^9.1.2","prettier":"^3.8.1","react":"^19.2.4","react-devtools":"^7.0.1","react-devtools-core":"^7.0.1","react-router":"^7.14.0","sinon":"^21.0.3","strip-ansi":"^7.2.0","tsx":"^4.21.0","typescript":"^5.8.3","xo":"^1.2.3"},"peerDependencies":{"@types/react":">=19.2.0","react":">=19.2.0","react-devtools-core":">=6.1.2"},"peerDependenciesMeta":{"@types/react":{"optional":true},"react-devtools-core":{"optional":true}},"ava":{"workerThreads":false,"serial":true,"files":["test/**/*","!test/helpers/**/*","!test/fixtures/**/*"],"extensions":{"ts":"module","tsx":"module"},"nodeArguments":["--import=tsx"]},"prettier":"@vdemedes/prettier-config"}
@@ -1 +1 @@
1
- {"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/sith/sith/src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B"}
1
+ {"version":3,"file":"","sourceRoot":"","sources":["file:///home/runner/work/sith/sith/src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,oBAAoB;IACpC,IAAI,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,oBAAoB;IACpC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC7B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=dockerArgs.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dockerArgs.test.d.ts","sourceRoot":"","sources":["file:///home/runner/work/sith/sith/src/utils/__tests__/dockerArgs.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=githubToken.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"githubToken.test.d.ts","sourceRoot":"","sources":["file:///home/runner/work/sith/sith/src/utils/__tests__/githubToken.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=messageUtils.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageUtils.test.d.ts","sourceRoot":"","sources":["file:///home/runner/work/sith/sith/src/utils/__tests__/messageUtils.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=skills.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills.test.d.ts","sourceRoot":"","sources":["file:///home/runner/work/sith/sith/src/utils/__tests__/skills.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=slashCommands.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slashCommands.test.d.ts","sourceRoot":"","sources":["file:///home/runner/work/sith/sith/src/utils/__tests__/slashCommands.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export declare function buildDockerShellCommand(githubToken: string): string[];
2
+ export declare function buildDockerOpencodeCommand(githubToken: string, prompt?: string): string[];
3
+ //# sourceMappingURL=dockerArgs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dockerArgs.d.ts","sourceRoot":"","sources":["file:///home/runner/work/sith/sith/src/utils/dockerArgs.ts"],"names":[],"mappings":"AAGA,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAkBrE;AAED,wBAAgB,0BAA0B,CACzC,WAAW,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,GACb,MAAM,EAAE,CA6BV"}
@@ -0,0 +1,2 @@
1
+ export declare function getGitHubToken(): Promise<string>;
2
+ //# sourceMappingURL=githubToken.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"githubToken.d.ts","sourceRoot":"","sources":["file:///home/runner/work/sith/sith/src/utils/githubToken.ts"],"names":[],"mappings":"AAEA,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,CAQtD"}
@@ -0,0 +1,4 @@
1
+ export type MessageType = "system" | "user" | "success" | "error" | "info";
2
+ export declare function getMessageColor(type: MessageType): string | undefined;
3
+ export declare function getMessagePrefix(type: MessageType): string;
4
+ //# sourceMappingURL=messageUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messageUtils.d.ts","sourceRoot":"","sources":["file:///home/runner/work/sith/sith/src/utils/messageUtils.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAE3E,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CAerE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAS1D"}
@@ -1,6 +1,7 @@
1
1
  import type { SkillEntry } from "../types.js";
2
2
  export declare function getSkillsDir(): string;
3
3
  export declare function getOpenCodeConfigPath(): string;
4
+ export declare function findInstructionsFile(skillDir: string): string | null;
4
5
  export declare function isInstalled(name: string): boolean;
5
6
  export declare function installSkill(skill: SkillEntry): Promise<void>;
6
7
  export declare function uninstallSkill(name: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["file:///home/runner/work/sith/sith/src/utils/skills.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAc9C,wBAAgB,YAAY,IAAI,MAAM,CAIrC;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAW9C;AAsCD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CA6CnE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAMjD"}
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["file:///home/runner/work/sith/sith/src/utils/skills.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAa9C,wBAAgB,YAAY,IAAI,MAAM,CAIrC;AAED,wBAAgB,qBAAqB,IAAI,MAAM,CAW9C;AA4BD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAYpE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,wBAAsB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAsDnE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAMjD"}
@@ -1 +1 @@
1
- {"version":3,"file":"slashCommands.d.ts","sourceRoot":"","sources":["file:///home/runner/work/sith/sith/src/utils/slashCommands.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEtE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,gBAAgB,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAqBpE;AAED,wBAAgB,oBAAoB,IAAI,KAAK,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAOtF"}
1
+ {"version":3,"file":"slashCommands.d.ts","sourceRoot":"","sources":["file:///home/runner/work/sith/sith/src/utils/slashCommands.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEtE,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,gBAAgB,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;CACZ;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAqBpE;AAED,wBAAgB,oBAAoB,IAAI,KAAK,CAAC;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACpB,CAAC,CAOD"}
package/docker/Dockerfile CHANGED
@@ -21,15 +21,10 @@ COPY assets/ /opt/sith/assets/
21
21
  # Copier les fichiers Nix (scripts, config, shell.nix)
22
22
  COPY docker/nix/ /opt/sith/nix/
23
23
 
24
- # Configurer npm pour utiliser le registry public
25
- RUN echo "registry=https://registry.npmjs.org/" > /root/.npmrc
26
-
27
- # Pré-charger l'environnement Nix (installe tous les packages)
28
- # Cela cache les dépendances dans le layer Docker
29
- RUN nix-shell /opt/sith/nix/shell.nix --run "echo '✅ Environment cached'"
30
-
31
- # Installer OpenCode CLI via script officiel
32
- RUN nix-shell /opt/sith/nix/shell.nix --run " \
24
+ # Configurer npm, pré-charger Nix et installer OpenCode CLI
25
+ RUN echo "registry=https://registry.npmjs.org/" > /root/.npmrc && \
26
+ nix-shell /opt/sith/nix/shell.nix --run "echo '✅ Environment cached'" && \
27
+ nix-shell /opt/sith/nix/shell.nix --run " \
33
28
  curl -fsSL https://opencode.ai/install | bash && \
34
29
  patchelf --set-interpreter \$(patchelf --print-interpreter \$(which bash)) /root/.opencode/bin/opencode && \
35
30
  /root/.opencode/bin/opencode --version \
@@ -8,22 +8,29 @@ set -e
8
8
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
9
9
 
10
10
  # 1. Banner and versions
11
+ # shellcheck source=./01-banner.sh
11
12
  source "${SCRIPT_DIR}/01-banner.sh"
12
13
 
13
14
  # 2. Environment variables
15
+ # shellcheck source=./02-env-vars.sh
14
16
  source "${SCRIPT_DIR}/02-env-vars.sh"
15
17
 
16
18
  # 3. Directory setup
19
+ # shellcheck source=./03-directories.sh
17
20
  source "${SCRIPT_DIR}/03-directories.sh"
18
21
 
19
22
  # 4. Git configuration
23
+ # shellcheck source=./04-git-config.sh
20
24
  source "${SCRIPT_DIR}/04-git-config.sh"
21
25
 
22
26
  # 5. OpenCode CLI installation
27
+ # shellcheck source=./05-opencode-cli.sh
23
28
  source "${SCRIPT_DIR}/05-opencode-cli.sh"
24
29
 
25
30
  # 6. Skills installation (from volume mount)
31
+ # shellcheck source=./06-skills-setup.sh
26
32
  source "${SCRIPT_DIR}/06-skills-setup.sh"
27
33
 
28
34
  # 7. Ready message
35
+ # shellcheck source=./07-ready.sh
29
36
  source "${SCRIPT_DIR}/07-ready.sh"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@m14i/sith",
3
- "version": "1.16.0",
3
+ "version": "1.17.0",
4
4
  "description": "Turn your context to the dark side. Standardize and share your OpenCode setup with a fully dockerized environment, designed for seamless collaboration and CI integration.",
5
5
  "type": "module",
6
6
  "repository": {
@@ -15,6 +15,8 @@
15
15
  "dev": "tsx src/index.ts",
16
16
  "dev:build": "pnpm build && node dist/index.js",
17
17
  "dev:shell": "pnpm build && node dist/index.js shell",
18
+ "test": "vitest run",
19
+ "lint": "biome check src/",
18
20
  "typecheck": "tsc --noEmit",
19
21
  "clean": "rm -rf dist",
20
22
  "prepublishOnly": "pnpm build"
@@ -35,7 +37,7 @@
35
37
  "author": "",
36
38
  "license": "MIT",
37
39
  "dependencies": {
38
- "@inquirer/prompts": "^5.0.0",
40
+ "@inquirer/prompts": "^8.5.1",
39
41
  "chalk": "^5.3.0",
40
42
  "commander": "^12.1.0",
41
43
  "execa": "^9.0.0",
@@ -45,6 +47,7 @@
45
47
  "update-notifier": "^7.3.1"
46
48
  },
47
49
  "devDependencies": {
50
+ "@biomejs/biome": "^2.4.16",
48
51
  "@semantic-release/changelog": "^6.0.3",
49
52
  "@semantic-release/git": "^10.0.1",
50
53
  "@semantic-release/github": "^11.0.1",
@@ -53,9 +56,11 @@
53
56
  "@types/react": "^19.2.14",
54
57
  "@types/update-notifier": "^6.0.8",
55
58
  "@vercel/ncc": "^0.38.1",
59
+ "@vitest/coverage-v8": "^4.1.7",
56
60
  "semantic-release": "^24.2.0",
57
61
  "tsx": "^4.7.2",
58
- "typescript": "^5.4.5"
62
+ "typescript": "^5.4.5",
63
+ "vitest": "^4.1.7"
59
64
  },
60
65
  "engines": {
61
66
  "node": ">=18"
@@ -1,137 +0,0 @@
1
- {
2
- "name": "ink",
3
- "version": "7.0.3",
4
- "description": "React for CLI",
5
- "license": "MIT",
6
- "repository": "vadimdemedes/ink",
7
- "author": {
8
- "name": "Vadim Demedes",
9
- "email": "vadimdemedes@hey.com",
10
- "url": "https://github.com/vadimdemedes"
11
- },
12
- "type": "module",
13
- "exports": {
14
- "types": "./build/index.d.ts",
15
- "default": "./build/index.js"
16
- },
17
- "engines": {
18
- "node": ">=22"
19
- },
20
- "scripts": {
21
- "dev": "tsc --watch",
22
- "build": "tsc",
23
- "prepare": "npm run build",
24
- "test": "npm run typecheck && npm run lint && FORCE_COLOR=true ava",
25
- "lint": "xo",
26
- "format": "prettier --write .",
27
- "typecheck": "tsc --noEmit",
28
- "example": "NODE_NO_WARNINGS=1 node --import=tsx",
29
- "benchmark": "NODE_NO_WARNINGS=1 node --import=tsx",
30
- "inspect": "react-devtools"
31
- },
32
- "files": [
33
- "build"
34
- ],
35
- "keywords": [
36
- "react",
37
- "cli",
38
- "jsx",
39
- "stdout",
40
- "components",
41
- "command-line",
42
- "preact",
43
- "redux",
44
- "print",
45
- "render",
46
- "colors",
47
- "text"
48
- ],
49
- "dependencies": {
50
- "@alcalzone/ansi-tokenize": "^0.3.0",
51
- "ansi-escapes": "^7.3.0",
52
- "ansi-styles": "^6.2.3",
53
- "auto-bind": "^5.0.1",
54
- "chalk": "^5.6.2",
55
- "cli-boxes": "^4.0.1",
56
- "cli-cursor": "^4.0.0",
57
- "cli-truncate": "^6.0.0",
58
- "code-excerpt": "^4.0.0",
59
- "es-toolkit": "^1.45.1",
60
- "indent-string": "^5.0.0",
61
- "is-in-ci": "^2.0.0",
62
- "patch-console": "^2.0.0",
63
- "react-reconciler": "^0.33.0",
64
- "scheduler": "^0.27.0",
65
- "signal-exit": "^3.0.7",
66
- "slice-ansi": "^9.0.0",
67
- "stack-utils": "^2.0.6",
68
- "string-width": "^8.2.0",
69
- "terminal-size": "^4.0.1",
70
- "type-fest": "^5.5.0",
71
- "widest-line": "^6.0.0",
72
- "wrap-ansi": "^10.0.0",
73
- "ws": "^8.20.0",
74
- "yoga-layout": "~3.2.1"
75
- },
76
- "devDependencies": {
77
- "@faker-js/faker": "^10.4.0",
78
- "@sindresorhus/tsconfig": "^8.1.0",
79
- "@sinonjs/fake-timers": "^15.3.0",
80
- "@types/ms": "^2.1.0",
81
- "@types/node": "^25.5.2",
82
- "@types/react": "^19.2.14",
83
- "@types/react-reconciler": "^0.33.0",
84
- "@types/scheduler": "^0.26.0",
85
- "@types/signal-exit": "^3.0.0",
86
- "@types/sinon": "^21.0.1",
87
- "@types/stack-utils": "^2.0.3",
88
- "@types/ws": "^8.18.1",
89
- "@vdemedes/prettier-config": "^2.0.1",
90
- "ava": "^7.0.0",
91
- "boxen": "^8.0.1",
92
- "delay": "^7.0.0",
93
- "ms": "^2.1.3",
94
- "node-pty": "^1.2.0-beta.12",
95
- "p-queue": "^9.1.2",
96
- "prettier": "^3.8.1",
97
- "react": "^19.2.4",
98
- "react-devtools": "^7.0.1",
99
- "react-devtools-core": "^7.0.1",
100
- "react-router": "^7.14.0",
101
- "sinon": "^21.0.3",
102
- "strip-ansi": "^7.2.0",
103
- "tsx": "^4.21.0",
104
- "typescript": "^5.8.3",
105
- "xo": "^1.2.3"
106
- },
107
- "peerDependencies": {
108
- "@types/react": ">=19.2.0",
109
- "react": ">=19.2.0",
110
- "react-devtools-core": ">=6.1.2"
111
- },
112
- "peerDependenciesMeta": {
113
- "@types/react": {
114
- "optional": true
115
- },
116
- "react-devtools-core": {
117
- "optional": true
118
- }
119
- },
120
- "ava": {
121
- "workerThreads": false,
122
- "serial": true,
123
- "files": [
124
- "test/**/*",
125
- "!test/helpers/**/*",
126
- "!test/fixtures/**/*"
127
- ],
128
- "extensions": {
129
- "ts": "module",
130
- "tsx": "module"
131
- },
132
- "nodeArguments": [
133
- "--import=tsx"
134
- ]
135
- },
136
- "prettier": "@vdemedes/prettier-config"
137
- }