@nitrostack/cli 1.0.13 → 1.0.15
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/assets/canonical.gitignore +57 -0
- package/dist/commands/init.d.ts +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +90 -16
- package/dist/commands/pack.d.ts +10 -0
- package/dist/commands/pack.d.ts.map +1 -0
- package/dist/commands/pack.js +82 -0
- package/dist/commands/upgrade.d.ts.map +1 -1
- package/dist/commands/upgrade.js +66 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -0
- package/dist/pack/canonical-gitignore.d.ts +14 -0
- package/dist/pack/canonical-gitignore.d.ts.map +1 -0
- package/dist/pack/canonical-gitignore.js +28 -0
- package/dist/pack/exclusions.d.ts +8 -0
- package/dist/pack/exclusions.d.ts.map +1 -0
- package/dist/pack/exclusions.js +84 -0
- package/dist/pack/gitignore.d.ts +21 -0
- package/dist/pack/gitignore.d.ts.map +1 -0
- package/dist/pack/gitignore.js +123 -0
- package/dist/pack/ignore-matcher.d.ts +19 -0
- package/dist/pack/ignore-matcher.d.ts.map +1 -0
- package/dist/pack/ignore-matcher.js +149 -0
- package/dist/pack/index.d.ts +11 -0
- package/dist/pack/index.d.ts.map +1 -0
- package/dist/pack/index.js +8 -0
- package/dist/pack/pack-project.d.ts +6 -0
- package/dist/pack/pack-project.d.ts.map +1 -0
- package/dist/pack/pack-project.js +59 -0
- package/dist/pack/standalone.d.ts +3 -0
- package/dist/pack/standalone.d.ts.map +1 -0
- package/dist/pack/standalone.js +95 -0
- package/dist/pack/tree.d.ts +5 -0
- package/dist/pack/tree.d.ts.map +1 -0
- package/dist/pack/tree.js +70 -0
- package/dist/pack/types.d.ts +35 -0
- package/dist/pack/types.d.ts.map +1 -0
- package/dist/pack/types.js +1 -0
- package/dist/pack/validate-project.d.ts +9 -0
- package/dist/pack/validate-project.d.ts.map +1 -0
- package/dist/pack/validate-project.js +44 -0
- package/dist/pack/zipper.d.ts +20 -0
- package/dist/pack/zipper.d.ts.map +1 -0
- package/dist/pack/zipper.js +121 -0
- package/dist/skills/clone.d.ts +28 -0
- package/dist/skills/clone.d.ts.map +1 -0
- package/dist/skills/clone.js +60 -0
- package/dist/skills/detect-agents.d.ts +8 -0
- package/dist/skills/detect-agents.d.ts.map +1 -0
- package/dist/skills/detect-agents.js +129 -0
- package/dist/skills/discover.d.ts +12 -0
- package/dist/skills/discover.d.ts.map +1 -0
- package/dist/skills/discover.js +45 -0
- package/dist/skills/index.d.ts +21 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +97 -0
- package/dist/skills/installer.d.ts +21 -0
- package/dist/skills/installer.d.ts.map +1 -0
- package/dist/skills/installer.js +48 -0
- package/dist/skills/types.d.ts +39 -0
- package/dist/skills/types.d.ts.map +1 -0
- package/dist/skills/types.js +1 -0
- package/dist/skills/ui.d.ts +55 -0
- package/dist/skills/ui.d.ts.map +1 -0
- package/dist/skills/ui.js +102 -0
- package/package.json +6 -3
- package/templates/typescript-oauth/.env.example +1 -1
- package/templates/typescript-oauth/_gitignore +57 -0
- package/templates/typescript-pizzaz/.env.example +1 -1
- package/templates/typescript-pizzaz/_gitignore +57 -0
- package/templates/typescript-starter/.env.example +1 -1
- package/templates/typescript-starter/_gitignore +57 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import fs from 'fs-extra';
|
|
3
|
+
/**
|
|
4
|
+
* Installs all discovered skills into the skills directory of a single agent.
|
|
5
|
+
*
|
|
6
|
+
* - Creates the target directory if it does not exist.
|
|
7
|
+
* - Skips individual skills whose destination directory already exists,
|
|
8
|
+
* unless `force` is true.
|
|
9
|
+
* - Preserves the full folder structure of each skill.
|
|
10
|
+
*
|
|
11
|
+
* @param agent - The agent to install into.
|
|
12
|
+
* @param skills - All skills discovered from the repository.
|
|
13
|
+
* @param force - When true, overwrite existing skill directories.
|
|
14
|
+
* @returns InstallResult describing what was installed vs skipped.
|
|
15
|
+
*/
|
|
16
|
+
export async function installSkillsForAgent(agent, skills, force, scope = 'global', projectDir = process.cwd()) {
|
|
17
|
+
const result = { agent, installed: [], skipped: [] };
|
|
18
|
+
try {
|
|
19
|
+
const skillsDir = agent.getSkillsDir(scope, projectDir);
|
|
20
|
+
await fs.mkdirp(skillsDir);
|
|
21
|
+
for (const skill of skills) {
|
|
22
|
+
const dest = path.join(skillsDir, skill.name);
|
|
23
|
+
const alreadyExists = await fs.pathExists(dest);
|
|
24
|
+
if (alreadyExists && !force) {
|
|
25
|
+
result.skipped.push(skill.name);
|
|
26
|
+
continue;
|
|
27
|
+
}
|
|
28
|
+
await fs.copy(skill.sourcePath, dest, { overwrite: force });
|
|
29
|
+
result.installed.push(skill.name);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
catch (err) {
|
|
33
|
+
result.error = err instanceof Error ? err.message : String(err);
|
|
34
|
+
}
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Installs skills into every selected agent sequentially.
|
|
39
|
+
* Sequential (rather than parallel) installation gives cleaner CLI progress output.
|
|
40
|
+
*/
|
|
41
|
+
export async function installSkills(agents, skills, force, scope = 'global', projectDir = process.cwd()) {
|
|
42
|
+
const results = [];
|
|
43
|
+
for (const agent of agents) {
|
|
44
|
+
const result = await installSkillsForAgent(agent, skills, force, scope, projectDir);
|
|
45
|
+
results.push(result);
|
|
46
|
+
}
|
|
47
|
+
return results;
|
|
48
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A single skill discovered from the skills repository.
|
|
3
|
+
* Each skill maps to one subdirectory under `skills/` in the cloned repo.
|
|
4
|
+
*/
|
|
5
|
+
export interface Skill {
|
|
6
|
+
/** Directory name — used as the skill identifier and display name */
|
|
7
|
+
name: string;
|
|
8
|
+
/** Absolute path to the skill directory inside the temporary clone */
|
|
9
|
+
sourcePath: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Describes a supported AI coding agent.
|
|
13
|
+
* Add new agents by appending entries to the AGENTS registry in detect-agents.ts.
|
|
14
|
+
*/
|
|
15
|
+
export interface AgentDescriptor {
|
|
16
|
+
/** Machine-readable identifier (kebab-case) */
|
|
17
|
+
id: string;
|
|
18
|
+
/** Human-readable display name shown in the CLI */
|
|
19
|
+
name: string;
|
|
20
|
+
/** Short path hint shown next to the agent name in the selection list */
|
|
21
|
+
displayPath: string;
|
|
22
|
+
/** Returns true when the agent appears to be installed on this machine */
|
|
23
|
+
detect(): Promise<boolean>;
|
|
24
|
+
/** Returns the absolute path of the directory where skills should be installed */
|
|
25
|
+
getSkillsDir(scope?: 'project' | 'global', projectDir?: string): string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Result of installing skills for one agent.
|
|
29
|
+
*/
|
|
30
|
+
export interface InstallResult {
|
|
31
|
+
agent: AgentDescriptor;
|
|
32
|
+
/** Skill names that were successfully copied */
|
|
33
|
+
installed: string[];
|
|
34
|
+
/** Skill names that were skipped because the destination already existed */
|
|
35
|
+
skipped: string[];
|
|
36
|
+
/** Non-fatal error message, if any */
|
|
37
|
+
error?: string;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/skills/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,KAAK;IACpB,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,sEAAsE;IACtE,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,+CAA+C;IAC/C,EAAE,EAAE,MAAM,CAAC;IACX,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,yEAAyE;IACzE,WAAW,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,MAAM,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3B,kFAAkF;IAClF,YAAY,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,QAAQ,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACzE;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,eAAe,CAAC;IACvB,gDAAgD;IAChD,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,4EAA4E;IAC5E,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { InstallResult, Skill } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Prints the skills section header:
|
|
4
|
+
*
|
|
5
|
+
* skills
|
|
6
|
+
*
|
|
7
|
+
* ◇ Source: https://github.com/nitrocloudofficial/skills.git
|
|
8
|
+
* ◇ Repository cloned
|
|
9
|
+
*/
|
|
10
|
+
export declare function printSkillsHeader(): void;
|
|
11
|
+
/**
|
|
12
|
+
* Prints the "Repository cloned" confirmation line.
|
|
13
|
+
* Called after cloneSkillsRepo() succeeds.
|
|
14
|
+
*/
|
|
15
|
+
export declare function printCloned(): void;
|
|
16
|
+
/**
|
|
17
|
+
* Prints the discovered skill list:
|
|
18
|
+
*
|
|
19
|
+
* ◇ Found 4 skills
|
|
20
|
+
*
|
|
21
|
+
* • nitrostack-sdk
|
|
22
|
+
* • mcp-best-practices
|
|
23
|
+
* …
|
|
24
|
+
*/
|
|
25
|
+
export declare function printSkillList(skills: Skill[]): void;
|
|
26
|
+
/**
|
|
27
|
+
* Prints the detected-agent count line:
|
|
28
|
+
*
|
|
29
|
+
* ◇ Detected 3 agents
|
|
30
|
+
*/
|
|
31
|
+
export declare function printDetectedAgents(count: number): void;
|
|
32
|
+
/**
|
|
33
|
+
* Prints a warning when no agents are detected so the user knows why the
|
|
34
|
+
* flow is being skipped rather than seeing a silent no-op.
|
|
35
|
+
*/
|
|
36
|
+
export declare function printNoAgentsWarning(): void;
|
|
37
|
+
/**
|
|
38
|
+
* Prints the per-agent installation results:
|
|
39
|
+
*
|
|
40
|
+
* Installing...
|
|
41
|
+
*
|
|
42
|
+
* ✔ Cursor (3 installed)
|
|
43
|
+
* ✔ Claude Code (2 installed, 1 skipped)
|
|
44
|
+
* ⚠ Gemini CLI error: …
|
|
45
|
+
*/
|
|
46
|
+
export declare function printInstalling(results: InstallResult[]): void;
|
|
47
|
+
/**
|
|
48
|
+
* Prints the final success message.
|
|
49
|
+
*/
|
|
50
|
+
export declare function printSuccess(): void;
|
|
51
|
+
/**
|
|
52
|
+
* Prints a warning when git is not available or the clone fails.
|
|
53
|
+
*/
|
|
54
|
+
export declare function printCloneError(message: string): void;
|
|
55
|
+
//# sourceMappingURL=ui.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/skills/ui.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAYvD;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAGxC;AAED;;;GAGG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAQpD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAEvD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAK3C;AAED;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,IAAI,CAuB9D;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAEnC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAKrD"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import { brand } from '../ui/branding.js';
|
|
3
|
+
import { SKILLS_REPO_URL } from './clone.js';
|
|
4
|
+
// ── Private helpers ──────────────────────────────────────────────────────────
|
|
5
|
+
/** Diamond prefix used for info lines — matches Remotion create-video style */
|
|
6
|
+
const diamond = () => chalk.dim('◇');
|
|
7
|
+
/** Bullet used for list items */
|
|
8
|
+
const bullet = () => brand.sky('•');
|
|
9
|
+
// ── Public output functions ──────────────────────────────────────────────────
|
|
10
|
+
/**
|
|
11
|
+
* Prints the skills section header:
|
|
12
|
+
*
|
|
13
|
+
* skills
|
|
14
|
+
*
|
|
15
|
+
* ◇ Source: https://github.com/nitrocloudofficial/skills.git
|
|
16
|
+
* ◇ Repository cloned
|
|
17
|
+
*/
|
|
18
|
+
export function printSkillsHeader() {
|
|
19
|
+
console.log('\n' + chalk.white.bold(' skills') + '\n');
|
|
20
|
+
console.log(` ${diamond()} ${chalk.dim('Source:')} ${brand.sky(SKILLS_REPO_URL)}`);
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Prints the "Repository cloned" confirmation line.
|
|
24
|
+
* Called after cloneSkillsRepo() succeeds.
|
|
25
|
+
*/
|
|
26
|
+
export function printCloned() {
|
|
27
|
+
console.log(` ${diamond()} ${chalk.dim('Repository cloned')}\n`);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Prints the discovered skill list:
|
|
31
|
+
*
|
|
32
|
+
* ◇ Found 4 skills
|
|
33
|
+
*
|
|
34
|
+
* • nitrostack-sdk
|
|
35
|
+
* • mcp-best-practices
|
|
36
|
+
* …
|
|
37
|
+
*/
|
|
38
|
+
export function printSkillList(skills) {
|
|
39
|
+
console.log(` ${diamond()} ${chalk.white(`Found ${skills.length} skill${skills.length === 1 ? '' : 's'}`)}\n`);
|
|
40
|
+
for (const skill of skills) {
|
|
41
|
+
console.log(` ${bullet()} ${chalk.white(skill.name)}`);
|
|
42
|
+
}
|
|
43
|
+
console.log('');
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Prints the detected-agent count line:
|
|
47
|
+
*
|
|
48
|
+
* ◇ Detected 3 agents
|
|
49
|
+
*/
|
|
50
|
+
export function printDetectedAgents(count) {
|
|
51
|
+
console.log(` ${diamond()} ${chalk.white(`Detected ${count} agent${count === 1 ? '' : 's'}`)}\n`);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Prints a warning when no agents are detected so the user knows why the
|
|
55
|
+
* flow is being skipped rather than seeing a silent no-op.
|
|
56
|
+
*/
|
|
57
|
+
export function printNoAgentsWarning() {
|
|
58
|
+
console.log(` ${chalk.hex('#F59E0B')('⚠')} ${chalk.dim('No supported AI agents detected on this machine.')}\n` +
|
|
59
|
+
` ${chalk.dim('Install Cursor, Claude Code, Gemini CLI, or Codex and re-run to add skills.')}\n`);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Prints the per-agent installation results:
|
|
63
|
+
*
|
|
64
|
+
* Installing...
|
|
65
|
+
*
|
|
66
|
+
* ✔ Cursor (3 installed)
|
|
67
|
+
* ✔ Claude Code (2 installed, 1 skipped)
|
|
68
|
+
* ⚠ Gemini CLI error: …
|
|
69
|
+
*/
|
|
70
|
+
export function printInstalling(results) {
|
|
71
|
+
console.log(`\n ${chalk.white.bold('Installing...')}\n`);
|
|
72
|
+
for (const result of results) {
|
|
73
|
+
if (result.error) {
|
|
74
|
+
const label = chalk.hex('#F59E0B')('⚠');
|
|
75
|
+
console.log(` ${label} ${chalk.white(result.agent.name)} ${chalk.dim('error: ' + result.error)}`);
|
|
76
|
+
continue;
|
|
77
|
+
}
|
|
78
|
+
const label = brand.mint('✔');
|
|
79
|
+
const parts = [];
|
|
80
|
+
if (result.installed.length > 0) {
|
|
81
|
+
parts.push(`${result.installed.length} installed`);
|
|
82
|
+
}
|
|
83
|
+
if (result.skipped.length > 0) {
|
|
84
|
+
parts.push(`${result.skipped.length} skipped`);
|
|
85
|
+
}
|
|
86
|
+
const detail = parts.length > 0 ? chalk.dim(` (${parts.join(', ')})`) : '';
|
|
87
|
+
console.log(` ${label} ${chalk.white(result.agent.name)}${detail}`);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Prints the final success message.
|
|
92
|
+
*/
|
|
93
|
+
export function printSuccess() {
|
|
94
|
+
console.log('\n ' + chalk.white('✨ NitroStack agent skills installed successfully.') + '\n');
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Prints a warning when git is not available or the clone fails.
|
|
98
|
+
*/
|
|
99
|
+
export function printCloneError(message) {
|
|
100
|
+
console.log(`\n ${chalk.hex('#F59E0B')('⚠')} ${chalk.dim('Agent skills skipped:')}\n` +
|
|
101
|
+
` ${chalk.dim(message)}\n`);
|
|
102
|
+
}
|
package/package.json
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nitrostack/cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.15",
|
|
4
4
|
"description": "CLI for NitroStack - Create and manage MCP server projects",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
8
8
|
"bin": {
|
|
9
9
|
"nitrostack-cli": "dist/index.js",
|
|
10
|
-
"@nitrostack/cli": "dist/index.js"
|
|
10
|
+
"@nitrostack/cli": "dist/index.js",
|
|
11
|
+
"nitrostack-pack": "dist/pack/standalone.js"
|
|
11
12
|
},
|
|
12
13
|
"exports": {
|
|
13
14
|
".": {
|
|
@@ -23,7 +24,7 @@
|
|
|
23
24
|
"assets"
|
|
24
25
|
],
|
|
25
26
|
"scripts": {
|
|
26
|
-
"build": "tsc && chmod +x dist/index.js",
|
|
27
|
+
"build": "tsc && chmod +x dist/index.js dist/pack/standalone.js",
|
|
27
28
|
"dev": "tsc --watch",
|
|
28
29
|
"test": "NODE_OPTIONS=--experimental-vm-modules jest",
|
|
29
30
|
"test:coverage": "NODE_OPTIONS=--experimental-vm-modules jest --coverage",
|
|
@@ -40,6 +41,7 @@
|
|
|
40
41
|
"author": "Nitrostack Inc <hello@nitrostack.ai>",
|
|
41
42
|
"license": "Apache-2.0",
|
|
42
43
|
"dependencies": {
|
|
44
|
+
"archiver": "^7.0.1",
|
|
43
45
|
"chalk": "^5.3.0",
|
|
44
46
|
"chokidar": "^3.6.0",
|
|
45
47
|
"commander": "^12.1.0",
|
|
@@ -51,6 +53,7 @@
|
|
|
51
53
|
"posthog-node": "^5.21.2"
|
|
52
54
|
},
|
|
53
55
|
"devDependencies": {
|
|
56
|
+
"@types/archiver": "^6.0.3",
|
|
54
57
|
"@types/fs-extra": "^11.0.4",
|
|
55
58
|
"@types/inquirer": "^9.0.9",
|
|
56
59
|
"@types/jest": "^29.5.14",
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Dependencies
|
|
2
|
+
node_modules/
|
|
3
|
+
src/widgets/node_modules/
|
|
4
|
+
|
|
5
|
+
# Build outputs
|
|
6
|
+
dist/
|
|
7
|
+
src/widgets/.next/
|
|
8
|
+
src/widgets/out/
|
|
9
|
+
|
|
10
|
+
# Environment files
|
|
11
|
+
.env
|
|
12
|
+
.env.local
|
|
13
|
+
.env.*.local
|
|
14
|
+
|
|
15
|
+
# IDE
|
|
16
|
+
.idea/
|
|
17
|
+
.vscode/
|
|
18
|
+
*.swp
|
|
19
|
+
*.swo
|
|
20
|
+
*~
|
|
21
|
+
|
|
22
|
+
# OS files
|
|
23
|
+
.DS_Store
|
|
24
|
+
Thumbs.db
|
|
25
|
+
|
|
26
|
+
# Logs
|
|
27
|
+
*.log
|
|
28
|
+
npm-debug.log*
|
|
29
|
+
yarn-debug.log*
|
|
30
|
+
yarn-error.log*
|
|
31
|
+
|
|
32
|
+
# Runtime data
|
|
33
|
+
pids/
|
|
34
|
+
*.pid
|
|
35
|
+
*.seed
|
|
36
|
+
*.pid.lock
|
|
37
|
+
|
|
38
|
+
# Coverage
|
|
39
|
+
coverage/
|
|
40
|
+
.nyc_output/
|
|
41
|
+
|
|
42
|
+
# Uploads
|
|
43
|
+
uploads/
|
|
44
|
+
|
|
45
|
+
# TypeScript cache
|
|
46
|
+
*.tsbuildinfo
|
|
47
|
+
|
|
48
|
+
# Optional npm cache
|
|
49
|
+
.npm/
|
|
50
|
+
|
|
51
|
+
# Optional eslint cache
|
|
52
|
+
.eslintcache
|
|
53
|
+
|
|
54
|
+
# OAuth tokens/secrets (never commit these!)
|
|
55
|
+
*.pem
|
|
56
|
+
*.key
|
|
57
|
+
tokens.json
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Dependencies
|
|
2
|
+
node_modules/
|
|
3
|
+
src/widgets/node_modules/
|
|
4
|
+
|
|
5
|
+
# Build outputs
|
|
6
|
+
dist/
|
|
7
|
+
src/widgets/.next/
|
|
8
|
+
src/widgets/out/
|
|
9
|
+
|
|
10
|
+
# Environment files
|
|
11
|
+
.env
|
|
12
|
+
.env.local
|
|
13
|
+
.env.*.local
|
|
14
|
+
|
|
15
|
+
# IDE
|
|
16
|
+
.idea/
|
|
17
|
+
.vscode/
|
|
18
|
+
*.swp
|
|
19
|
+
*.swo
|
|
20
|
+
*~
|
|
21
|
+
|
|
22
|
+
# OS files
|
|
23
|
+
.DS_Store
|
|
24
|
+
Thumbs.db
|
|
25
|
+
|
|
26
|
+
# Logs
|
|
27
|
+
*.log
|
|
28
|
+
npm-debug.log*
|
|
29
|
+
yarn-debug.log*
|
|
30
|
+
yarn-error.log*
|
|
31
|
+
|
|
32
|
+
# Runtime data
|
|
33
|
+
pids/
|
|
34
|
+
*.pid
|
|
35
|
+
*.seed
|
|
36
|
+
*.pid.lock
|
|
37
|
+
|
|
38
|
+
# Coverage
|
|
39
|
+
coverage/
|
|
40
|
+
.nyc_output/
|
|
41
|
+
|
|
42
|
+
# Uploads
|
|
43
|
+
uploads/
|
|
44
|
+
|
|
45
|
+
# TypeScript cache
|
|
46
|
+
*.tsbuildinfo
|
|
47
|
+
|
|
48
|
+
# Optional npm cache
|
|
49
|
+
.npm/
|
|
50
|
+
|
|
51
|
+
# Optional eslint cache
|
|
52
|
+
.eslintcache
|
|
53
|
+
|
|
54
|
+
# OAuth tokens/secrets (never commit these!)
|
|
55
|
+
*.pem
|
|
56
|
+
*.key
|
|
57
|
+
tokens.json
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Dependencies
|
|
2
|
+
node_modules/
|
|
3
|
+
src/widgets/node_modules/
|
|
4
|
+
|
|
5
|
+
# Build outputs
|
|
6
|
+
dist/
|
|
7
|
+
src/widgets/.next/
|
|
8
|
+
src/widgets/out/
|
|
9
|
+
|
|
10
|
+
# Environment files
|
|
11
|
+
.env
|
|
12
|
+
.env.local
|
|
13
|
+
.env.*.local
|
|
14
|
+
|
|
15
|
+
# IDE
|
|
16
|
+
.idea/
|
|
17
|
+
.vscode/
|
|
18
|
+
*.swp
|
|
19
|
+
*.swo
|
|
20
|
+
*~
|
|
21
|
+
|
|
22
|
+
# OS files
|
|
23
|
+
.DS_Store
|
|
24
|
+
Thumbs.db
|
|
25
|
+
|
|
26
|
+
# Logs
|
|
27
|
+
*.log
|
|
28
|
+
npm-debug.log*
|
|
29
|
+
yarn-debug.log*
|
|
30
|
+
yarn-error.log*
|
|
31
|
+
|
|
32
|
+
# Runtime data
|
|
33
|
+
pids/
|
|
34
|
+
*.pid
|
|
35
|
+
*.seed
|
|
36
|
+
*.pid.lock
|
|
37
|
+
|
|
38
|
+
# Coverage
|
|
39
|
+
coverage/
|
|
40
|
+
.nyc_output/
|
|
41
|
+
|
|
42
|
+
# Uploads
|
|
43
|
+
uploads/
|
|
44
|
+
|
|
45
|
+
# TypeScript cache
|
|
46
|
+
*.tsbuildinfo
|
|
47
|
+
|
|
48
|
+
# Optional npm cache
|
|
49
|
+
.npm/
|
|
50
|
+
|
|
51
|
+
# Optional eslint cache
|
|
52
|
+
.eslintcache
|
|
53
|
+
|
|
54
|
+
# OAuth tokens/secrets (never commit these!)
|
|
55
|
+
*.pem
|
|
56
|
+
*.key
|
|
57
|
+
tokens.json
|