@donotdev/cli 0.0.11 → 0.0.13
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/dependencies-matrix.json +30 -116
- package/dist/bin/commands/bump.js +137 -104
- package/dist/bin/commands/create-app.js +20 -0
- package/dist/bin/commands/create-project.js +63 -7
- package/dist/bin/commands/deploy.js +7606 -17
- package/dist/bin/commands/firebase-setup.d.ts +6 -0
- package/dist/bin/commands/firebase-setup.d.ts.map +1 -0
- package/dist/bin/commands/firebase-setup.js +7 -0
- package/dist/bin/commands/firebase-setup.js.map +1 -0
- package/dist/bin/commands/staging.d.ts +11 -0
- package/dist/bin/commands/staging.d.ts.map +1 -0
- package/dist/bin/commands/staging.js +12 -0
- package/dist/bin/commands/staging.js.map +1 -0
- package/dist/bin/dndev.js +28 -3
- package/dist/bin/donotdev.js +28 -3
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7714 -62
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/templates/app-demo/src/pages/DetailPage.tsx.example +1 -1
- package/templates/app-demo/src/pages/FullPage.tsx.example +3 -3
- package/templates/app-demo/src/pages/HomePage.tsx.example +1 -1
- package/templates/app-demo/src/pages/components/ComponentRenderer.tsx.example +5 -5
- package/templates/app-demo/src/pages/components/DemoLayout.tsx.example +3 -3
- package/templates/app-next/.env.example +2 -0
- package/templates/app-next/src/pages/HomePage.tsx.example +2 -2
- package/templates/app-vite/.env.example +2 -0
- package/templates/app-vite/src/pages/HomePage.tsx.example +163 -73
- package/templates/functions-firebase/build.mjs.example +26 -10
- package/templates/functions-firebase/functions-firebase/build.mjs.example +26 -10
- package/templates/functions-firebase/functions.config.js.example +11 -15
- package/templates/github-consumer/.github/workflows/ci.yml.example +36 -0
- package/templates/root-consumer/.claude/agents/architect.md.example +2 -2
- package/templates/root-consumer/.claude/agents/builder.md.example +2 -2
- package/templates/root-consumer/.claude/agents/coder.md.example +2 -2
- package/templates/root-consumer/.claude/agents/extractor.md.example +2 -3
- package/templates/root-consumer/.claude/agents/polisher.md.example +67 -291
- package/templates/root-consumer/.claude/agents/prompt-engineer.md.example +4 -4
- package/templates/root-consumer/.claude/commands/build.md.example +2 -2
- package/templates/root-consumer/.claude/commands/polish.md.example +65 -81
- package/templates/root-consumer/.env.example +13 -13
- package/templates/root-consumer/.gemini/settings.json.example +9 -0
- package/templates/root-consumer/.gitignore.example +3 -1
- package/templates/root-consumer/AI.md.example +139 -0
- package/templates/root-consumer/CLAUDE.md.example +13 -104
- package/templates/root-consumer/README.md.example +81 -255
- package/templates/root-consumer/entities/Contact.ts.example +126 -0
- package/templates/root-consumer/entities/index.ts.example +6 -3
- package/templates/root-consumer/guides/dndev/AGENT_START_HERE.md.example +41 -342
- package/templates/root-consumer/guides/dndev/COMPONENTS_ADV.md.example +2 -1
- package/templates/root-consumer/guides/dndev/ENV_SETUP.md.example +144 -9
- package/templates/root-consumer/guides/dndev/INDEX.md.example +9 -0
- package/templates/root-consumer/guides/dndev/SETUP_APP_CONFIG.md.example +13 -16
- package/templates/root-consumer/guides/dndev/SETUP_BLOG.md.example +263 -0
- package/templates/root-consumer/guides/dndev/SETUP_CRUD.md.example +1 -1
- package/templates/root-consumer/guides/dndev/SETUP_FIREBASE.md.example +168 -0
- package/templates/root-consumer/guides/dndev/SETUP_FUNCTIONS.md.example +5 -12
- package/templates/root-consumer/guides/dndev/SETUP_TESTING.md.example +184 -0
- package/templates/root-consumer/guides/wai-way/WAI_WAY_CLI.md.example +134 -69
- package/templates/root-consumer/guides/wai-way/agents/polisher.md.example +66 -44
- package/templates/root-consumer/guides/wai-way/blueprints/0_brainstorm.md.example +18 -1
- package/templates/root-consumer/guides/wai-way/blueprints/1_scaffold.md.example +1 -0
- package/templates/root-consumer/guides/wai-way/blueprints/2_entities.md.example +2 -1
- package/templates/root-consumer/guides/wai-way/blueprints/3_compose.md.example +2 -1
- package/templates/root-consumer/guides/wai-way/blueprints/4_configure.md.example +180 -108
- package/templates/root-consumer/guides/wai-way/context_map.json.example +8 -7
- package/templates/root-consumer/guides/wai-way/page_patterns.md.example +4 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firebase-setup.d.ts","sourceRoot":"","sources":["../../../src/bin/commands/firebase-setup.ts"],"names":[],"mappings":"AACA;;;GAGG;AAEH,OAAO,EAAE,aAAa,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// packages/cli/src/bin/commands/firebase-setup.ts
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Firebase Setup Command Wrapper
|
|
4
|
+
* @description Re-exports firebaseSetup from tooling for CLI bundling.
|
|
5
|
+
*/
|
|
6
|
+
export { firebaseSetup as main } from '@donotdev/tooling';
|
|
7
|
+
//# sourceMappingURL=firebase-setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"firebase-setup.js","sourceRoot":"","sources":["../../../src/bin/commands/firebase-setup.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD;;;GAGG;AAEH,OAAO,EAAE,aAAa,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Staging Command Wrapper
|
|
3
|
+
* @description Staging is a thin wrapper around deploy with --staging flag.
|
|
4
|
+
* Re-exports deploy from tooling — the staging flag is set by the CLI entry point.
|
|
5
|
+
*
|
|
6
|
+
* @version 0.0.1
|
|
7
|
+
* @since 0.0.1
|
|
8
|
+
* @author AMBROISE PARK Consulting
|
|
9
|
+
*/
|
|
10
|
+
export { deploy as main } from '@donotdev/tooling';
|
|
11
|
+
//# sourceMappingURL=staging.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"staging.d.ts","sourceRoot":"","sources":["../../../src/bin/commands/staging.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// packages/cli/src/bin/commands/staging.ts
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Staging Command Wrapper
|
|
4
|
+
* @description Staging is a thin wrapper around deploy with --staging flag.
|
|
5
|
+
* Re-exports deploy from tooling — the staging flag is set by the CLI entry point.
|
|
6
|
+
*
|
|
7
|
+
* @version 0.0.1
|
|
8
|
+
* @since 0.0.1
|
|
9
|
+
* @author AMBROISE PARK Consulting
|
|
10
|
+
*/
|
|
11
|
+
export { deploy as main } from '@donotdev/tooling';
|
|
12
|
+
//# sourceMappingURL=staging.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"staging.js","sourceRoot":"","sources":["../../../src/bin/commands/staging.ts"],"names":[],"mappings":"AAAA,2CAA2C;AAC3C;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,IAAI,IAAI,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/bin/dndev.js
CHANGED
|
@@ -53,10 +53,13 @@ Commands:
|
|
|
53
53
|
emu [app] Start dev with Firebase emulators
|
|
54
54
|
format Format code with Prettier
|
|
55
55
|
deploy [app] Deploy to Firebase
|
|
56
|
+
staging [subcommand] Deploy to staging/UAT (deploy, deploy:hosting, deploy:functions, seed, status)
|
|
56
57
|
sync-secrets Sync env vars to Firebase/Vercel
|
|
58
|
+
firebase:setup Set up Firebase project, web app, and .env config
|
|
57
59
|
cacheout [app] Clear build caches
|
|
58
60
|
bump Update framework packages and peer dependencies
|
|
59
|
-
|
|
61
|
+
agent Configure MCP server for AI agents (Cursor, Claude, Gemini)
|
|
62
|
+
wai Output WAI-WAY activation prompt (paste into any AI agent)
|
|
60
63
|
|
|
61
64
|
Options:
|
|
62
65
|
-v, --version Display version number
|
|
@@ -70,6 +73,7 @@ Examples:
|
|
|
70
73
|
dndev create-app my-app --functions --project my-fb-id Set Firebase project (2-min setup)
|
|
71
74
|
dndev dev Start dev server
|
|
72
75
|
dndev dev:web Start dev server for 'web' app
|
|
76
|
+
dndev agent Configure MCP for all AI agents
|
|
73
77
|
dndev wai Output WAI-WAY activation prompt
|
|
74
78
|
|
|
75
79
|
Run 'dndev <command> --help' for command-specific help.`);
|
|
@@ -147,7 +151,15 @@ bumpCmd.action(async (commanderOptions) => {
|
|
|
147
151
|
throw error;
|
|
148
152
|
}
|
|
149
153
|
});
|
|
150
|
-
var
|
|
154
|
+
var stagingCmd = program.command("staging [app]").alias("uat").description("Deploy to staging/UAT (shorthand for deploy --staging)").option("-p, --project <project>", "Firebase project ID (overrides .firebaserc)").option("--skip-build", "skip build step").option("--force", "Force deployment / cleanup policy");
|
|
155
|
+
addCommonOptions(stagingCmd);
|
|
156
|
+
stagingCmd.action(async (app, commanderOptions) => {
|
|
157
|
+
const commonOptions = extractCommonOptions(commanderOptions);
|
|
158
|
+
const options = { ...commonOptions, ...commanderOptions, app, staging: true };
|
|
159
|
+
const { main } = await import("./commands/deploy.js");
|
|
160
|
+
await main(options);
|
|
161
|
+
});
|
|
162
|
+
var deployCmd = program.command("deploy [app]").description("Deploy to Firebase").option("-p, --project <project>", "Firebase project ID").option("--skip-build", "skip build step").option("--staging", "Deploy to staging (uses .env.staging, service-account-key.staging.json, .firebaserc staging project)");
|
|
151
163
|
addCommonOptions(deployCmd);
|
|
152
164
|
deployCmd.action(async (app, commanderOptions) => {
|
|
153
165
|
const commonOptions = extractCommonOptions(commanderOptions);
|
|
@@ -163,6 +175,14 @@ syncSecretsCmd.action(async (commanderOptions) => {
|
|
|
163
175
|
const { main } = await import("./commands/sync-secrets.js");
|
|
164
176
|
await main(options);
|
|
165
177
|
});
|
|
178
|
+
var firebaseSetupCmd = program.command("firebase:setup").description("Set up Firebase project, web app, and .env config").option("-a, --app <app>", "app name (if multiple apps)");
|
|
179
|
+
addCommonOptions(firebaseSetupCmd);
|
|
180
|
+
firebaseSetupCmd.action(async (commanderOptions) => {
|
|
181
|
+
const commonOptions = extractCommonOptions(commanderOptions);
|
|
182
|
+
const options = { ...commonOptions, ...commanderOptions };
|
|
183
|
+
const { main } = await import("./commands/firebase-setup.js");
|
|
184
|
+
await main(options);
|
|
185
|
+
});
|
|
166
186
|
program.command("dev [app]").description("Start development server").action(async (app) => {
|
|
167
187
|
const { main } = await import("./commands/dev.js");
|
|
168
188
|
if (app) {
|
|
@@ -199,6 +219,11 @@ program.command("preview [app]").description("Preview production build").action(
|
|
|
199
219
|
}
|
|
200
220
|
process.exit(await main());
|
|
201
221
|
});
|
|
222
|
+
program.command("agent").alias("agent:setup").description("Configure MCP server for all AI agents (Cursor, Claude Code, Gemini, Claude Desktop)").option("--dry-run, --dry", "Preview changes without applying").action(async (commanderOptions) => {
|
|
223
|
+
const options = extractCommonOptions(commanderOptions);
|
|
224
|
+
const { main } = await import("./commands/agent-setup.js");
|
|
225
|
+
await main(options);
|
|
226
|
+
});
|
|
202
227
|
program.command("wai").alias("wai-way").description("Output WAI-WAY activation prompt for AI agents").option("-w, --workflow", "Show workflow summary only").option("-c, --copy", "Copy prompt to clipboard").action(async () => {
|
|
203
228
|
const { main } = await import("./commands/wai.js");
|
|
204
229
|
process.exit(await main());
|
|
@@ -206,7 +231,7 @@ program.command("wai").alias("wai-way").description("Output WAI-WAY activation p
|
|
|
206
231
|
function preprocessArgs(args2) {
|
|
207
232
|
if (args2.length === 0) return args2;
|
|
208
233
|
const firstArg = args2[0];
|
|
209
|
-
const appCommands = ["dev", "build", "preview", "emu", "deploy"];
|
|
234
|
+
const appCommands = ["dev", "build", "preview", "emu", "deploy", "staging"];
|
|
210
235
|
if (firstArg && firstArg.includes(":")) {
|
|
211
236
|
const colonIndex = firstArg.indexOf(":");
|
|
212
237
|
const command = firstArg.substring(0, colonIndex);
|
package/dist/bin/donotdev.js
CHANGED
|
@@ -53,10 +53,13 @@ Commands:
|
|
|
53
53
|
emu [app] Start dev with Firebase emulators
|
|
54
54
|
format Format code with Prettier
|
|
55
55
|
deploy [app] Deploy to Firebase
|
|
56
|
+
staging [subcommand] Deploy to staging/UAT (deploy, deploy:hosting, deploy:functions, seed, status)
|
|
56
57
|
sync-secrets Sync env vars to Firebase/Vercel
|
|
58
|
+
firebase:setup Set up Firebase project, web app, and .env config
|
|
57
59
|
cacheout [app] Clear build caches
|
|
58
60
|
bump Update framework packages and peer dependencies
|
|
59
|
-
|
|
61
|
+
agent Configure MCP server for AI agents (Cursor, Claude, Gemini)
|
|
62
|
+
wai Output WAI-WAY activation prompt (paste into any AI agent)
|
|
60
63
|
|
|
61
64
|
Options:
|
|
62
65
|
-v, --version Display version number
|
|
@@ -70,6 +73,7 @@ Examples:
|
|
|
70
73
|
dndev create-app my-app --functions --project my-fb-id Set Firebase project (2-min setup)
|
|
71
74
|
dndev dev Start dev server
|
|
72
75
|
dndev dev:web Start dev server for 'web' app
|
|
76
|
+
dndev agent Configure MCP for all AI agents
|
|
73
77
|
dndev wai Output WAI-WAY activation prompt
|
|
74
78
|
|
|
75
79
|
Run 'dndev <command> --help' for command-specific help.`);
|
|
@@ -147,7 +151,15 @@ bumpCmd.action(async (commanderOptions) => {
|
|
|
147
151
|
throw error;
|
|
148
152
|
}
|
|
149
153
|
});
|
|
150
|
-
var
|
|
154
|
+
var stagingCmd = program.command("staging [app]").alias("uat").description("Deploy to staging/UAT (shorthand for deploy --staging)").option("-p, --project <project>", "Firebase project ID (overrides .firebaserc)").option("--skip-build", "skip build step").option("--force", "Force deployment / cleanup policy");
|
|
155
|
+
addCommonOptions(stagingCmd);
|
|
156
|
+
stagingCmd.action(async (app, commanderOptions) => {
|
|
157
|
+
const commonOptions = extractCommonOptions(commanderOptions);
|
|
158
|
+
const options = { ...commonOptions, ...commanderOptions, app, staging: true };
|
|
159
|
+
const { main } = await import("./commands/deploy.js");
|
|
160
|
+
await main(options);
|
|
161
|
+
});
|
|
162
|
+
var deployCmd = program.command("deploy [app]").description("Deploy to Firebase").option("-p, --project <project>", "Firebase project ID").option("--skip-build", "skip build step").option("--staging", "Deploy to staging (uses .env.staging, service-account-key.staging.json, .firebaserc staging project)");
|
|
151
163
|
addCommonOptions(deployCmd);
|
|
152
164
|
deployCmd.action(async (app, commanderOptions) => {
|
|
153
165
|
const commonOptions = extractCommonOptions(commanderOptions);
|
|
@@ -163,6 +175,14 @@ syncSecretsCmd.action(async (commanderOptions) => {
|
|
|
163
175
|
const { main } = await import("./commands/sync-secrets.js");
|
|
164
176
|
await main(options);
|
|
165
177
|
});
|
|
178
|
+
var firebaseSetupCmd = program.command("firebase:setup").description("Set up Firebase project, web app, and .env config").option("-a, --app <app>", "app name (if multiple apps)");
|
|
179
|
+
addCommonOptions(firebaseSetupCmd);
|
|
180
|
+
firebaseSetupCmd.action(async (commanderOptions) => {
|
|
181
|
+
const commonOptions = extractCommonOptions(commanderOptions);
|
|
182
|
+
const options = { ...commonOptions, ...commanderOptions };
|
|
183
|
+
const { main } = await import("./commands/firebase-setup.js");
|
|
184
|
+
await main(options);
|
|
185
|
+
});
|
|
166
186
|
program.command("dev [app]").description("Start development server").action(async (app) => {
|
|
167
187
|
const { main } = await import("./commands/dev.js");
|
|
168
188
|
if (app) {
|
|
@@ -199,6 +219,11 @@ program.command("preview [app]").description("Preview production build").action(
|
|
|
199
219
|
}
|
|
200
220
|
process.exit(await main());
|
|
201
221
|
});
|
|
222
|
+
program.command("agent").alias("agent:setup").description("Configure MCP server for all AI agents (Cursor, Claude Code, Gemini, Claude Desktop)").option("--dry-run, --dry", "Preview changes without applying").action(async (commanderOptions) => {
|
|
223
|
+
const options = extractCommonOptions(commanderOptions);
|
|
224
|
+
const { main } = await import("./commands/agent-setup.js");
|
|
225
|
+
await main(options);
|
|
226
|
+
});
|
|
202
227
|
program.command("wai").alias("wai-way").description("Output WAI-WAY activation prompt for AI agents").option("-w, --workflow", "Show workflow summary only").option("-c, --copy", "Copy prompt to clipboard").action(async () => {
|
|
203
228
|
const { main } = await import("./commands/wai.js");
|
|
204
229
|
process.exit(await main());
|
|
@@ -206,7 +231,7 @@ program.command("wai").alias("wai-way").description("Output WAI-WAY activation p
|
|
|
206
231
|
function preprocessArgs(args2) {
|
|
207
232
|
if (args2.length === 0) return args2;
|
|
208
233
|
const firstArg = args2[0];
|
|
209
|
-
const appCommands = ["dev", "build", "preview", "emu", "deploy"];
|
|
234
|
+
const appCommands = ["dev", "build", "preview", "emu", "deploy", "staging"];
|
|
210
235
|
if (firstArg && firstArg.includes(":")) {
|
|
211
236
|
const colonIndex = firstArg.indexOf(":");
|
|
212
237
|
const command = firstArg.substring(0, colonIndex);
|
package/dist/index.d.ts
CHANGED
|
@@ -4,5 +4,5 @@
|
|
|
4
4
|
* Thin wrapper around @donotdev/tooling for public distribution.
|
|
5
5
|
* Tooling is the source of truth for all CLI code.
|
|
6
6
|
*/
|
|
7
|
-
export { createApp, createProject, format, dev, build, preview, emu, cacheout, syncSecrets, deploy, } from '@donotdev/tooling';
|
|
7
|
+
export { createApp, createProject, format, dev, build, preview, emu, cacheout, syncSecrets, deploy, staging, } from '@donotdev/tooling';
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAGH,OAAO,EACL,SAAS,EACT,aAAa,EACb,MAAM,EACN,GAAG,EACH,KAAK,EACL,OAAO,EACP,GAAG,EACH,QAAQ,EACR,WAAW,EACX,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAGH,OAAO,EACL,SAAS,EACT,aAAa,EACb,MAAM,EACN,GAAG,EACH,KAAK,EACL,OAAO,EACP,GAAG,EACH,QAAQ,EACR,WAAW,EACX,MAAM,EACN,OAAO,GACR,MAAM,mBAAmB,CAAC"}
|