@stacksjs/buddy 0.74.2 → 0.74.3

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.
@@ -1,3 +1,3 @@
1
- import process from"node:process";import{generateComponentMeta,generateCoreSymlink,generateIdeHelpers,generateLibEntries,generateOpenApiSpec,generatePantryConfig,generateProjectImages,generateTypes,generateVsCodeCustomData,generateWebTypes,invoke as startGenerationProcess,watchTypes}from"@stacksjs/actions";import{intro,log,onUnknownSubcommand,outro}from"@stacksjs/cli";import{ExitCode}from"@stacksjs/types";import{reportFailure,resultFailed}from"../result";export function generate(buddy){const descriptions={command:"Automagically build any of your libraries/packages for production use. Select any of the following packages",types:"Generate your TypeScript types",entries:"Generate your function & Component Library Entry Points",webTypes:"Generate web-types.json for IDEs",customData:"Generate VS Code custom data (custom-elements.json) for IDEs",ideHelpers:"Generate IDE helpers",componentMeta:"Generate component meta information",coreSymlink:"Generate symlink of the core framework to the project root",pantry:"Generate the pantry configuration file",openApi:"Generate the OpenAPI specification",images:"Generate every image declared in config/images.ts",og:"Generate the social cards used by link previews",appStore:"Generate the App Store screenshot set",appIcons:"Generate the app icon and favicon sets",select:"What are you trying to generate?",project:"Target a specific project",verbose:"Enable verbose output"};buddy.command("generate",descriptions.command).option("-t, --types",descriptions.types).option("-e, --entries",descriptions.entries).option("-w, --web-types",descriptions.webTypes).option("-c, --custom-data",descriptions.customData).option("-i, --ide-helpers",descriptions.ideHelpers).option("-c, --component-meta",descriptions.componentMeta).option("-p, --pantry",descriptions.pantry).option("-o, --openapi",descriptions.openApi).option("--images",descriptions.images).option("-p, --project [project]",descriptions.project,{default:!1}).option("--core-symlink",descriptions.coreSymlink).option("--verbose",descriptions.verbose,{default:!1}).action(async(options)=>{log.debug("Running `buddy generate` ...",options);await startGenerationProcess(options);process.exit(ExitCode.Success)});buddy.command("generate:types",descriptions.types).option("-p, --project [project]",descriptions.project,{default:!1}).option("-w, --watch","Re-run on changes to models/ and config/",{default:!1}).option("--verbose",descriptions.verbose,{default:!1}).alias("types:generate").action(async(options)=>{log.debug("Running `buddy generate:types` ...",options);await generateTypes(options);try{const{buildDatabaseSchema}=await import("@stacksjs/orm");await buildDatabaseSchema()}catch(err){log.warn(`[generate:db-types] skipped: ${err.message}`)}if(options.watch)await watchTypes(options)});buddy.command("generate:db-types","Refresh database/types.d.ts for db.selectFrom autocomplete (stacksjs/stacks#1923)").option("--dry-run","Print the would-be file content without writing",{default:!1}).action(async(options)=>{const{buildDatabaseSchema}=await import("@stacksjs/orm"),result=await buildDatabaseSchema({dryRun:options.dryRun});if(options.dryRun)console.log(result.content);for(const e of result.errors)log.warn(`[generate:db-types] ${e.file}: ${e.error}`);log.info(`[generate:db-types] resolved ${result.tables.length} table(s)`)});buddy.command("generate:vschema","Derive a Vitess VSchema from your models (writes database/vschema.json)").option("--dry-run","Print the VSchema without writing it",{default:!1}).option("--out [path]","Where to write the VSchema",{default:"database/vschema.json"}).action(async(options)=>{const{generateVSchema}=await import("@stacksjs/actions"),result=await generateVSchema({dryRun:options.dryRun,out:options.out});if(!result.ok){console.error(`
1
+ import process from"node:process";import{generateComponentMeta,generateCoreSymlink,generateIdeHelpers,generateLibEntries,generateOpenApiSpec,generatePantryConfig,generateProjectImages,generateTypes,generateVsCodeCustomData,generateWebTypes,invoke as startGenerationProcess,watchTypes}from"@stacksjs/actions";import{intro,log,onUnknownSubcommand,outro}from"@stacksjs/cli";import{frameworkPath,projectPath}from"@stacksjs/path";import{ExitCode}from"@stacksjs/types";import{reportFailure,resultFailed}from"../result";export function generate(buddy){const descriptions={command:"Automagically build any of your libraries/packages for production use. Select any of the following packages",types:"Generate your TypeScript types",entries:"Generate your function & Component Library Entry Points",webTypes:"Generate web-types.json for IDEs",customData:"Generate VS Code custom data (custom-elements.json) for IDEs",ideHelpers:"Generate IDE helpers",componentMeta:"Generate component meta information",coreSymlink:"Generate symlink of the core framework to the project root",pantry:"Generate the pantry configuration file",openApi:"Generate the OpenAPI specification",images:"Generate every image declared in config/images.ts",og:"Generate the social cards used by link previews",appStore:"Generate the App Store screenshot set",appIcons:"Generate the app icon and favicon sets",select:"What are you trying to generate?",project:"Target a specific project",verbose:"Enable verbose output"};buddy.command("generate",descriptions.command).option("-t, --types",descriptions.types).option("-e, --entries",descriptions.entries).option("-w, --web-types",descriptions.webTypes).option("-c, --custom-data",descriptions.customData).option("-i, --ide-helpers",descriptions.ideHelpers).option("-c, --component-meta",descriptions.componentMeta).option("-p, --pantry",descriptions.pantry).option("-o, --openapi",descriptions.openApi).option("--images",descriptions.images).option("-p, --project [project]",descriptions.project,{default:!1}).option("--core-symlink",descriptions.coreSymlink).option("--verbose",descriptions.verbose,{default:!1}).action(async(options)=>{log.debug("Running `buddy generate` ...",options);await startGenerationProcess(options);process.exit(ExitCode.Success)});buddy.command("generate:types",descriptions.types).option("-p, --project [project]",descriptions.project,{default:!1}).option("-w, --watch","Re-run on changes to models/ and config/",{default:!1}).option("--verbose",descriptions.verbose,{default:!1}).alias("types:generate").action(async(options)=>{log.debug("Running `buddy generate:types` ...",options);await generateTypes(options);try{const{buildDatabaseSchema}=await import("@stacksjs/orm");await buildDatabaseSchema()}catch(err){log.warn(`[generate:db-types] skipped: ${err.message}`)}if(options.watch)await watchTypes(options)});buddy.command("generate:db-types","Refresh database/types.d.ts for db.selectFrom autocomplete (stacksjs/stacks#1923)").option("--dry-run","Print the would-be file content without writing",{default:!1}).option("--framework","Write the framework's own FrameworkSchema instead of the app's DatabaseSchema",{default:!1}).action(async(options)=>{const{buildDatabaseSchema}=await import("@stacksjs/orm"),result=await buildDatabaseSchema(options.framework?{dryRun:options.dryRun,target:"framework",outFile:frameworkPath("core/database/src/framework-schema.ts"),migrationsDir:projectPath("database/migrations")}:{dryRun:options.dryRun});if(options.dryRun)console.log(result.content);for(const e of result.errors)log.warn(`[generate:db-types] ${e.file}: ${e.error}`);log.info(`[generate:db-types] resolved ${result.tables.length} table(s)`)});buddy.command("generate:vschema","Derive a Vitess VSchema from your models (writes database/vschema.json)").option("--dry-run","Print the VSchema without writing it",{default:!1}).option("--out [path]","Where to write the VSchema",{default:"database/vschema.json"}).action(async(options)=>{const{generateVSchema}=await import("@stacksjs/actions"),result=await generateVSchema({dryRun:options.dryRun,out:options.out});if(!result.ok){console.error(`
2
2
  \u274C ${result.error}
3
3
  `);process.exit(ExitCode.FatalError)}console.log(result.report);if(options.dryRun)console.log(JSON.stringify(result.vschema,null,2));else log.success(`Wrote ${result.path} (${result.tableCount} tables)`)});buddy.command("generate:entries",descriptions.entries).option("-p, --project [project]",descriptions.project,{default:!1}).option("--verbose",descriptions.verbose,{default:!1}).action(async(options)=>{log.debug("Running `buddy generate:entries` ...",options);await generateLibEntries(options)});buddy.command("generate:web-types",descriptions.webTypes).option("-p, --project [project]",descriptions.project,{default:!1}).option("--verbose",descriptions.verbose,{default:!1}).action(async(options)=>{log.debug("Running `buddy generate:web-types` ...",options);await generateWebTypes()});buddy.command("generate:vscode-custom-data",descriptions.customData).option("-p, --project [project]",descriptions.project,{default:!1}).option("--verbose",descriptions.verbose,{default:!1}).action(async(options)=>{log.debug("Running `buddy generate:vscode-custom-data` ...",options);await generateVsCodeCustomData()});buddy.command("generate:ide-helpers",descriptions.ideHelpers).option("-p, --project [project]",descriptions.project,{default:!1}).option("--verbose",descriptions.verbose,{default:!1}).action(async(options)=>{log.debug("Running `buddy generate:ide-helpers` ...",options);await generateIdeHelpers()});buddy.command("generate:component-meta",descriptions.componentMeta).option("-p, --project [project]",descriptions.project,{default:!1}).option("--verbose",descriptions.verbose,{default:!1}).action(async(options)=>{log.debug("Running `buddy generate:component-meta` ...",options);await generateComponentMeta()});buddy.command("generate:pantry-config",descriptions.pantry).option("-p, --project [project]",descriptions.project,{default:!1}).option("--verbose",descriptions.verbose,{default:!1}).action(async(options)=>{log.debug("Running `buddy generate:pantry-config` ...",options);await generatePantryConfig()});buddy.command("generate:openapi-spec",descriptions.openApi).alias("generate:openapi").option("-p, --project [project]",descriptions.project,{default:!1}).option("--verbose",descriptions.verbose,{default:!1}).action(async(options)=>{log.debug("Running `buddy generate:openapi-spec` ...",options);const perf=await intro("buddy generate:openapi-spec");await generateOpenApiSpec();await outro("Generated OpenAPI specification",{startTime:perf,useSeconds:!0})});buddy.command("generate:migrations","Generate Migrations").action(async(options)=>{log.debug("Running `buddy generate:migrations` ...",options);const{generateMigrations}=await import("@stacksjs/database"),result=await generateMigrations();if(resultFailed(result))reportFailure(result,"generateMigrations failed")});buddy.command("generate:core-symlink","Symlink `.framework` -> storage/framework. A shortcut for core developers.").action(async(options)=>{log.debug("Running `buddy core-symlink` ...",options);await generateCoreSymlink()});buddy.command("generate:images",descriptions.images).alias("images:generate").option("--social","Only build the social cards").option("--app-store","Only build the App Store screenshots").option("--app-icons","Only build the app icons and favicons").option("--verbose",descriptions.verbose,{default:!1}).action(async(options)=>{log.debug("Running `buddy generate:images` ...",options);const perf=await intro("buddy generate:images"),only=[];if(options.social)only.push("social");if(options.appStore)only.push("app-store");if(options.appIcons)only.push("app-icons");await generateProjectImages({only,verbose:options.verbose});await outro("Generated images",{startTime:perf,useSeconds:!0})});buddy.command("generate:og",descriptions.og).alias("generate:social").option("--verbose",descriptions.verbose,{default:!1}).action(async(options)=>{log.debug("Running `buddy generate:og` ...",options);const perf=await intro("buddy generate:og");await generateProjectImages({only:["social"],verbose:options.verbose});await outro("Generated social cards",{startTime:perf,useSeconds:!0})});buddy.command("generate:app-store",descriptions.appStore).alias("generate:screenshots").option("--verbose",descriptions.verbose,{default:!1}).action(async(options)=>{log.debug("Running `buddy generate:app-store` ...",options);const perf=await intro("buddy generate:app-store");await generateProjectImages({only:["app-store"],verbose:options.verbose});await outro("Generated App Store screenshots",{startTime:perf,useSeconds:!0})});buddy.command("generate:app-icons",descriptions.appIcons).option("--verbose",descriptions.verbose,{default:!1}).action(async(options)=>{log.debug("Running `buddy generate:app-icons` ...",options);const perf=await intro("buddy generate:app-icons");await generateProjectImages({only:["app-icons"],verbose:options.verbose});await outro("Generated app icons",{startTime:perf,useSeconds:!0})});onUnknownSubcommand(buddy,"generate")}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@stacksjs/buddy",
3
3
  "type": "module",
4
4
  "sideEffects": false,
5
- "version": "0.74.2",
5
+ "version": "0.74.3",
6
6
  "description": "Meet Buddy. The Stacks runtime.",
7
7
  "author": "Chris Breuer",
8
8
  "contributors": [
@@ -95,64 +95,64 @@
95
95
  "prepublishOnly": "bun run build"
96
96
  },
97
97
  "dependencies": {
98
- "@stacksjs/actions": "^0.74.2",
99
- "@stacksjs/ai": "^0.74.2",
100
- "@stacksjs/alias": "^0.74.2",
101
- "@stacksjs/analytics": "^0.74.2",
102
- "@stacksjs/api": "^0.74.2",
103
- "@stacksjs/arrays": "^0.74.2",
104
- "@stacksjs/auth": "^0.74.2",
105
- "@stacksjs/browser-extension": "^0.74.2",
106
- "@stacksjs/build": "^0.74.2",
107
- "@stacksjs/cache": "^0.74.2",
108
- "@stacksjs/chat": "^0.74.2",
98
+ "@stacksjs/actions": "^0.74.3",
99
+ "@stacksjs/ai": "^0.74.3",
100
+ "@stacksjs/alias": "^0.74.3",
101
+ "@stacksjs/analytics": "^0.74.3",
102
+ "@stacksjs/api": "^0.74.3",
103
+ "@stacksjs/arrays": "^0.74.3",
104
+ "@stacksjs/auth": "^0.74.3",
105
+ "@stacksjs/browser-extension": "^0.74.3",
106
+ "@stacksjs/build": "^0.74.3",
107
+ "@stacksjs/cache": "^0.74.3",
108
+ "@stacksjs/chat": "^0.74.3",
109
109
  "@stacksjs/clapp": "^0.2.12",
110
- "@stacksjs/cli": "^0.74.2",
111
- "@stacksjs/cloud": "^0.74.2",
112
- "@stacksjs/cms": "^0.74.2",
113
- "@stacksjs/collections": "^0.74.2",
114
- "@stacksjs/config": "^0.74.2",
115
- "@stacksjs/database": "^0.74.2",
116
- "@stacksjs/desktop-build": "^0.74.2",
117
- "@stacksjs/dns": "^0.74.2",
110
+ "@stacksjs/cli": "^0.74.3",
111
+ "@stacksjs/cloud": "^0.74.3",
112
+ "@stacksjs/cms": "^0.74.3",
113
+ "@stacksjs/collections": "^0.74.3",
114
+ "@stacksjs/config": "^0.74.3",
115
+ "@stacksjs/database": "^0.74.3",
116
+ "@stacksjs/desktop-build": "^0.74.3",
117
+ "@stacksjs/dns": "^0.74.3",
118
118
  "@stacksjs/dnsx": "^0.2.3",
119
- "@stacksjs/email": "^0.74.2",
120
- "@stacksjs/enums": "^0.74.2",
121
- "@stacksjs/env": "^0.74.2",
122
- "@stacksjs/error-handling": "^0.74.2",
123
- "@stacksjs/events": "^0.74.2",
124
- "@stacksjs/git": "^0.74.2",
119
+ "@stacksjs/email": "^0.74.3",
120
+ "@stacksjs/enums": "^0.74.3",
121
+ "@stacksjs/env": "^0.74.3",
122
+ "@stacksjs/error-handling": "^0.74.3",
123
+ "@stacksjs/events": "^0.74.3",
124
+ "@stacksjs/git": "^0.74.3",
125
125
  "@stacksjs/gitit": "^0.2.5",
126
- "@stacksjs/health": "^0.74.2",
126
+ "@stacksjs/health": "^0.74.3",
127
127
  "@stacksjs/httx": "^0.1.10",
128
- "@stacksjs/image": "^0.74.2",
129
- "@stacksjs/lint": "^0.74.2",
130
- "@stacksjs/logging": "^0.74.2",
131
- "@stacksjs/notifications": "^0.74.2",
132
- "@stacksjs/objects": "^0.74.2",
133
- "@stacksjs/orm": "^0.74.2",
134
- "@stacksjs/path": "^0.74.2",
135
- "@stacksjs/payments": "^0.74.2",
136
- "@stacksjs/realtime": "^0.74.2",
137
- "@stacksjs/router": "^0.74.2",
128
+ "@stacksjs/image": "^0.74.3",
129
+ "@stacksjs/lint": "^0.74.3",
130
+ "@stacksjs/logging": "^0.74.3",
131
+ "@stacksjs/notifications": "^0.74.3",
132
+ "@stacksjs/objects": "^0.74.3",
133
+ "@stacksjs/orm": "^0.74.3",
134
+ "@stacksjs/path": "^0.74.3",
135
+ "@stacksjs/payments": "^0.74.3",
136
+ "@stacksjs/realtime": "^0.74.3",
137
+ "@stacksjs/router": "^0.74.3",
138
138
  "@stacksjs/rpx": "^0.11.42",
139
- "@stacksjs/scheduler": "^0.74.2",
140
- "@stacksjs/search-engine": "^0.74.2",
141
- "@stacksjs/security": "^0.74.2",
142
- "@stacksjs/server": "^0.74.2",
143
- "@stacksjs/sites": "^0.74.2",
144
- "@stacksjs/skills": "^0.74.2",
145
- "@stacksjs/storage": "^0.74.2",
146
- "@stacksjs/strings": "^0.74.2",
139
+ "@stacksjs/scheduler": "^0.74.3",
140
+ "@stacksjs/search-engine": "^0.74.3",
141
+ "@stacksjs/security": "^0.74.3",
142
+ "@stacksjs/server": "^0.74.3",
143
+ "@stacksjs/sites": "^0.74.3",
144
+ "@stacksjs/skills": "^0.74.3",
145
+ "@stacksjs/storage": "^0.74.3",
146
+ "@stacksjs/strings": "^0.74.3",
147
147
  "@stacksjs/stx": "^0.2.253",
148
- "@stacksjs/testing": "^0.74.2",
149
- "@stacksjs/tinker": "^0.74.2",
148
+ "@stacksjs/testing": "^0.74.3",
149
+ "@stacksjs/tinker": "^0.74.3",
150
150
  "@stacksjs/ts-cloud": "^0.12.10",
151
- "@stacksjs/tunnel": "^0.74.2",
152
- "@stacksjs/types": "^0.74.2",
153
- "@stacksjs/ui": "^0.74.2",
154
- "@stacksjs/utils": "^0.74.2",
155
- "@stacksjs/validation": "^0.74.2",
151
+ "@stacksjs/tunnel": "^0.74.3",
152
+ "@stacksjs/types": "^0.74.3",
153
+ "@stacksjs/ui": "^0.74.3",
154
+ "@stacksjs/utils": "^0.74.3",
155
+ "@stacksjs/validation": "^0.74.3",
156
156
  "ajv": "^8.20.0",
157
157
  "ajv-formats": "^3.0.1",
158
158
  "bun-plugin-stx": "^0.2.246",