create-zenstack 3.0.0-alpha.9 → 3.0.0-beta.10

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/dist/index.cjs CHANGED
@@ -59,14 +59,15 @@ model Post {
59
59
  }
60
60
  `;
61
61
  var STARTER_MAIN_TS = `import { ZenStackClient } from '@zenstackhq/runtime';
62
- import { schema } from './zenstack/schema';
63
62
  import SQLite from 'better-sqlite3';
63
+ import { SqliteDialect } from 'kysely';
64
+ import { schema } from './zenstack/schema';
64
65
 
65
66
  async function main() {
66
67
  const client = new ZenStackClient(schema, {
67
- dialectConfig: {
68
+ dialect: new SqliteDialect({
68
69
  database: new SQLite('./zenstack/dev.db'),
69
- },
70
+ }),
70
71
  });
71
72
  const user = await client.user.create({
72
73
  data: {
@@ -127,6 +128,7 @@ function initProject(name) {
127
128
  },
128
129
  license: "ISC"
129
130
  }, null, 2));
131
+ createVsCodeConfig();
130
132
  const packages = [
131
133
  {
132
134
  name: "@zenstackhq/cli@next",
@@ -175,18 +177,25 @@ function initProject(name) {
175
177
  import_node_fs.default.mkdirSync("zenstack");
176
178
  import_node_fs.default.writeFileSync("zenstack/schema.zmodel", STARTER_ZMODEL);
177
179
  import_node_fs.default.writeFileSync("main.ts", STARTER_MAIN_TS);
178
- runCommand(`${agentExec} zenstack generate`, "Running `zenstack generate`");
179
- runCommand(`${agentExec} zenstack db push`, "Running `zenstack db push`");
180
+ runCommand(`${agentExec} zen generate`, "Running `zen generate`");
181
+ runCommand(`${agentExec} zen db push`, "Running `zen db push`");
182
+ console.log(`Running \`${agent} run dev\``);
183
+ (0, import_node_child_process.execSync)(`${agent} run dev`, {
184
+ stdio: "inherit"
185
+ });
186
+ console.log(import_colors.default.green("Project setup completed!"));
180
187
  }
181
188
  __name(initProject, "initProject");
182
189
  function installPackage(pkg) {
183
190
  runCommand(`${agent} install ${pkg.name} ${pkg.dev ? saveDev : ""}`, `Installing "${pkg.name}"`);
184
191
  }
185
192
  __name(installPackage, "installPackage");
186
- function runCommand(cmd, status) {
193
+ function runCommand(cmd, status, stdio = "ignore") {
187
194
  const spinner = (0, import_ora.default)(status).start();
188
195
  try {
189
- (0, import_node_child_process.execSync)(cmd);
196
+ (0, import_node_child_process.execSync)(cmd, {
197
+ stdio
198
+ });
190
199
  spinner.succeed();
191
200
  } catch (e) {
192
201
  spinner.fail();
@@ -194,4 +203,20 @@ function runCommand(cmd, status) {
194
203
  }
195
204
  }
196
205
  __name(runCommand, "runCommand");
206
+ function createVsCodeConfig() {
207
+ import_node_fs.default.mkdirSync(".vscode", {
208
+ recursive: true
209
+ });
210
+ import_node_fs.default.writeFileSync(".vscode/settings.json", JSON.stringify({
211
+ "files.associations": {
212
+ "*.zmodel": "zmodel-v3"
213
+ }
214
+ }, null, 4));
215
+ import_node_fs.default.writeFileSync(".vscode/extensions.json", JSON.stringify({
216
+ recommendations: [
217
+ "zenstack.zenstack-v3"
218
+ ]
219
+ }, null, 4));
220
+ }
221
+ __name(createVsCodeConfig, "createVsCodeConfig");
197
222
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../../cli/src/actions/templates.ts"],"sourcesContent":["import colors from 'colors';\nimport { Command } from 'commander';\nimport { execSync } from 'node:child_process';\nimport fs from 'node:fs';\nimport ora from 'ora';\nimport { STARTER_MAIN_TS, STARTER_ZMODEL } from './templates';\n\n// detect package manager\nconst npmAgent = process.env['npm_config_user_agent'];\nlet agent = 'npm';\nlet agentExec = 'npx';\nlet saveDev = '--save-dev';\n\nif (npmAgent?.includes('pnpm')) {\n agent = 'pnpm';\n agentExec = 'pnpm';\n} else if (npmAgent?.includes('yarn')) {\n agent = 'yarn';\n agentExec = 'npx';\n saveDev = '--dev';\n} else if (npmAgent?.includes('bun')) {\n agent = 'bun';\n agentExec = 'bun';\n}\n\nconst program = new Command('create-zenstack');\n\nprogram.arguments('<project-name>').action((projectName) => {\n initProject(projectName);\n});\n\nprogram.parse(process.argv);\n\nfunction initProject(name: string) {\n // create folder\n if (fs.existsSync(name)) {\n console.log(colors.red(`Directory ${name} already exists.`));\n process.exit(1);\n }\n fs.mkdirSync(name);\n process.chdir(name);\n\n console.log(colors.gray(`Using package manager: ${agent}`));\n\n // create package.json\n fs.writeFileSync(\n 'package.json',\n JSON.stringify(\n {\n name: 'zenstack-app',\n version: '1.0.0',\n description: 'Scaffolded with create-zenstack',\n type: 'module',\n scripts: {\n dev: 'tsx main.ts',\n },\n license: 'ISC',\n },\n null,\n 2,\n ),\n );\n\n // install packages\n const packages = [\n { name: '@zenstackhq/cli@next', dev: true },\n { name: '@zenstackhq/runtime@next', dev: false },\n { name: 'better-sqlite3', dev: false },\n { name: '@types/better-sqlite3', dev: true },\n { name: 'typescript', dev: true },\n { name: 'tsx', dev: true },\n { name: '@types/node', dev: true },\n ];\n for (const pkg of packages) {\n installPackage(pkg);\n }\n\n // create tsconfig.json\n fs.writeFileSync(\n 'tsconfig.json',\n JSON.stringify(\n {\n compilerOptions: {\n module: 'esnext',\n target: 'esnext',\n moduleResolution: 'bundler',\n sourceMap: true,\n outDir: 'dist',\n strict: true,\n skipLibCheck: true,\n esModuleInterop: true,\n },\n },\n null,\n 2,\n ),\n );\n\n // create schema.zmodel\n fs.mkdirSync('zenstack');\n fs.writeFileSync('zenstack/schema.zmodel', STARTER_ZMODEL);\n\n // create main.ts\n fs.writeFileSync('main.ts', STARTER_MAIN_TS);\n\n // run `zenstack generate`\n runCommand(`${agentExec} zenstack generate`, 'Running `zenstack generate`');\n\n // run `zenstack db push`\n runCommand(`${agentExec} zenstack db push`, 'Running `zenstack db push`');\n}\n\nfunction installPackage(pkg: { name: string; dev: boolean }) {\n runCommand(`${agent} install ${pkg.name} ${pkg.dev ? saveDev : ''}`, `Installing \"${pkg.name}\"`);\n}\n\nfunction runCommand(cmd: string, status: string) {\n const spinner = ora(status).start();\n try {\n execSync(cmd);\n spinner.succeed();\n } catch (e) {\n spinner.fail();\n throw e;\n }\n}\n","export const STARTER_ZMODEL = `// This is a sample model to get you started.\n\n/// A sample data source using local sqlite db.\ndatasource db {\n provider = 'sqlite'\n url = 'file:./dev.db'\n}\n\n/// User model\nmodel User {\n id String @id @default(cuid())\n email String @unique @email @length(6, 32)\n posts Post[]\n}\n\n/// Post model\nmodel Post {\n id String @id @default(cuid())\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n title String @length(1, 256)\n content String\n published Boolean @default(false)\n author User @relation(fields: [authorId], references: [id])\n authorId String\n}\n`;\n\nexport const STARTER_MAIN_TS = `import { ZenStackClient } from '@zenstackhq/runtime';\nimport { schema } from './zenstack/schema';\nimport SQLite from 'better-sqlite3';\n\nasync function main() {\n const client = new ZenStackClient(schema, {\n dialectConfig: {\n database: new SQLite('./zenstack/dev.db'),\n },\n });\n const user = await client.user.create({\n data: {\n email: 'test@zenstack.dev',\n posts: {\n create: [\n {\n title: 'Hello World',\n content: 'This is a test post',\n },\n ],\n },\n },\n include: { posts: true }\n });\n console.log('User created:', user);\n}\n\nmain();\n`;\n"],"mappings":"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","names":["STARTER_ZMODEL","STARTER_MAIN_TS","npmAgent","process","env","agent","agentExec","saveDev","includes","program","Command","arguments","action","projectName","initProject","parse","argv","name","fs","existsSync","console","log","colors","red","exit","mkdirSync","chdir","gray","writeFileSync","JSON","stringify","version","description","type","scripts","dev","license","packages","pkg","installPackage","compilerOptions","module","target","moduleResolution","sourceMap","outDir","strict","skipLibCheck","esModuleInterop","STARTER_ZMODEL","STARTER_MAIN_TS","runCommand","cmd","status","spinner","ora","start","execSync","succeed","e","fail"]}
1
+ {"version":3,"sources":["../src/index.ts","../../cli/src/actions/templates.ts"],"sourcesContent":["import colors from 'colors';\nimport { Command } from 'commander';\nimport { execSync, type StdioOptions } from 'node:child_process';\nimport fs from 'node:fs';\nimport ora from 'ora';\nimport { STARTER_MAIN_TS, STARTER_ZMODEL } from './templates';\n\n// detect package manager\nconst npmAgent = process.env['npm_config_user_agent'];\nlet agent = 'npm';\nlet agentExec = 'npx';\nlet saveDev = '--save-dev';\n\nif (npmAgent?.includes('pnpm')) {\n agent = 'pnpm';\n agentExec = 'pnpm';\n} else if (npmAgent?.includes('yarn')) {\n agent = 'yarn';\n agentExec = 'npx';\n saveDev = '--dev';\n} else if (npmAgent?.includes('bun')) {\n agent = 'bun';\n agentExec = 'bun';\n}\n\nconst program = new Command('create-zenstack');\n\nprogram.arguments('<project-name>').action((projectName) => {\n initProject(projectName);\n});\n\nprogram.parse(process.argv);\n\nfunction initProject(name: string) {\n // create folder\n if (fs.existsSync(name)) {\n console.log(colors.red(`Directory ${name} already exists.`));\n process.exit(1);\n }\n fs.mkdirSync(name);\n process.chdir(name);\n\n console.log(colors.gray(`Using package manager: ${agent}`));\n\n // create package.json\n fs.writeFileSync(\n 'package.json',\n JSON.stringify(\n {\n name: 'zenstack-app',\n version: '1.0.0',\n description: 'Scaffolded with create-zenstack',\n type: 'module',\n scripts: {\n dev: 'tsx main.ts',\n },\n license: 'ISC',\n },\n null,\n 2,\n ),\n );\n\n // create VSCode config files\n createVsCodeConfig();\n\n // install packages\n const packages = [\n { name: '@zenstackhq/cli@next', dev: true },\n { name: '@zenstackhq/runtime@next', dev: false },\n { name: 'better-sqlite3', dev: false },\n { name: '@types/better-sqlite3', dev: true },\n { name: 'typescript', dev: true },\n { name: 'tsx', dev: true },\n { name: '@types/node', dev: true },\n ];\n for (const pkg of packages) {\n installPackage(pkg);\n }\n\n // create tsconfig.json\n fs.writeFileSync(\n 'tsconfig.json',\n JSON.stringify(\n {\n compilerOptions: {\n module: 'esnext',\n target: 'esnext',\n moduleResolution: 'bundler',\n sourceMap: true,\n outDir: 'dist',\n strict: true,\n skipLibCheck: true,\n esModuleInterop: true,\n },\n },\n null,\n 2,\n ),\n );\n\n // create schema.zmodel\n fs.mkdirSync('zenstack');\n fs.writeFileSync('zenstack/schema.zmodel', STARTER_ZMODEL);\n\n // create main.ts\n fs.writeFileSync('main.ts', STARTER_MAIN_TS);\n\n // run `zen generate`\n runCommand(`${agentExec} zen generate`, 'Running `zen generate`');\n\n // run `zen db push`\n runCommand(`${agentExec} zen db push`, 'Running `zen db push`');\n\n // run `$agent run dev`\n console.log(`Running \\`${agent} run dev\\``);\n execSync(`${agent} run dev`, { stdio: 'inherit' });\n console.log(colors.green('Project setup completed!'));\n}\n\nfunction installPackage(pkg: { name: string; dev: boolean }) {\n runCommand(`${agent} install ${pkg.name} ${pkg.dev ? saveDev : ''}`, `Installing \"${pkg.name}\"`);\n}\n\nfunction runCommand(cmd: string, status: string, stdio: StdioOptions = 'ignore') {\n const spinner = ora(status).start();\n try {\n execSync(cmd, { stdio });\n spinner.succeed();\n } catch (e) {\n spinner.fail();\n throw e;\n }\n}\n\nfunction createVsCodeConfig() {\n fs.mkdirSync('.vscode', { recursive: true });\n fs.writeFileSync(\n '.vscode/settings.json',\n JSON.stringify(\n {\n 'files.associations': {\n '*.zmodel': 'zmodel-v3',\n },\n },\n null,\n 4,\n ),\n );\n fs.writeFileSync('.vscode/extensions.json', JSON.stringify({ recommendations: ['zenstack.zenstack-v3'] }, null, 4));\n}\n","export const STARTER_ZMODEL = `// This is a sample model to get you started.\n\n/// A sample data source using local sqlite db.\ndatasource db {\n provider = 'sqlite'\n url = 'file:./dev.db'\n}\n\n/// User model\nmodel User {\n id String @id @default(cuid())\n email String @unique @email @length(6, 32)\n posts Post[]\n}\n\n/// Post model\nmodel Post {\n id String @id @default(cuid())\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n title String @length(1, 256)\n content String\n published Boolean @default(false)\n author User @relation(fields: [authorId], references: [id])\n authorId String\n}\n`;\n\nexport const STARTER_MAIN_TS = `import { ZenStackClient } from '@zenstackhq/runtime';\nimport SQLite from 'better-sqlite3';\nimport { SqliteDialect } from 'kysely';\nimport { schema } from './zenstack/schema';\n\nasync function main() {\n const client = new ZenStackClient(schema, {\n dialect: new SqliteDialect({\n database: new SQLite('./zenstack/dev.db'),\n }),\n });\n const user = await client.user.create({\n data: {\n email: 'test@zenstack.dev',\n posts: {\n create: [\n {\n title: 'Hello World',\n content: 'This is a test post',\n },\n ],\n },\n },\n include: { posts: true }\n });\n console.log('User created:', user);\n}\n\nmain();\n`;\n"],"mappings":"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","names":["STARTER_ZMODEL","STARTER_MAIN_TS","npmAgent","process","env","agent","agentExec","saveDev","includes","program","Command","arguments","action","projectName","initProject","parse","argv","name","fs","existsSync","console","log","colors","red","exit","mkdirSync","chdir","gray","writeFileSync","JSON","stringify","version","description","type","scripts","dev","license","createVsCodeConfig","packages","pkg","installPackage","compilerOptions","module","target","moduleResolution","sourceMap","outDir","strict","skipLibCheck","esModuleInterop","STARTER_ZMODEL","STARTER_MAIN_TS","runCommand","execSync","stdio","green","cmd","status","spinner","ora","start","succeed","e","fail","recursive","recommendations"]}
package/dist/index.js CHANGED
@@ -37,14 +37,15 @@ model Post {
37
37
  }
38
38
  `;
39
39
  var STARTER_MAIN_TS = `import { ZenStackClient } from '@zenstackhq/runtime';
40
- import { schema } from './zenstack/schema';
41
40
  import SQLite from 'better-sqlite3';
41
+ import { SqliteDialect } from 'kysely';
42
+ import { schema } from './zenstack/schema';
42
43
 
43
44
  async function main() {
44
45
  const client = new ZenStackClient(schema, {
45
- dialectConfig: {
46
+ dialect: new SqliteDialect({
46
47
  database: new SQLite('./zenstack/dev.db'),
47
- },
48
+ }),
48
49
  });
49
50
  const user = await client.user.create({
50
51
  data: {
@@ -105,6 +106,7 @@ function initProject(name) {
105
106
  },
106
107
  license: "ISC"
107
108
  }, null, 2));
109
+ createVsCodeConfig();
108
110
  const packages = [
109
111
  {
110
112
  name: "@zenstackhq/cli@next",
@@ -153,18 +155,25 @@ function initProject(name) {
153
155
  fs.mkdirSync("zenstack");
154
156
  fs.writeFileSync("zenstack/schema.zmodel", STARTER_ZMODEL);
155
157
  fs.writeFileSync("main.ts", STARTER_MAIN_TS);
156
- runCommand(`${agentExec} zenstack generate`, "Running `zenstack generate`");
157
- runCommand(`${agentExec} zenstack db push`, "Running `zenstack db push`");
158
+ runCommand(`${agentExec} zen generate`, "Running `zen generate`");
159
+ runCommand(`${agentExec} zen db push`, "Running `zen db push`");
160
+ console.log(`Running \`${agent} run dev\``);
161
+ execSync(`${agent} run dev`, {
162
+ stdio: "inherit"
163
+ });
164
+ console.log(colors.green("Project setup completed!"));
158
165
  }
159
166
  __name(initProject, "initProject");
160
167
  function installPackage(pkg) {
161
168
  runCommand(`${agent} install ${pkg.name} ${pkg.dev ? saveDev : ""}`, `Installing "${pkg.name}"`);
162
169
  }
163
170
  __name(installPackage, "installPackage");
164
- function runCommand(cmd, status) {
171
+ function runCommand(cmd, status, stdio = "ignore") {
165
172
  const spinner = ora(status).start();
166
173
  try {
167
- execSync(cmd);
174
+ execSync(cmd, {
175
+ stdio
176
+ });
168
177
  spinner.succeed();
169
178
  } catch (e) {
170
179
  spinner.fail();
@@ -172,4 +181,20 @@ function runCommand(cmd, status) {
172
181
  }
173
182
  }
174
183
  __name(runCommand, "runCommand");
184
+ function createVsCodeConfig() {
185
+ fs.mkdirSync(".vscode", {
186
+ recursive: true
187
+ });
188
+ fs.writeFileSync(".vscode/settings.json", JSON.stringify({
189
+ "files.associations": {
190
+ "*.zmodel": "zmodel-v3"
191
+ }
192
+ }, null, 4));
193
+ fs.writeFileSync(".vscode/extensions.json", JSON.stringify({
194
+ recommendations: [
195
+ "zenstack.zenstack-v3"
196
+ ]
197
+ }, null, 4));
198
+ }
199
+ __name(createVsCodeConfig, "createVsCodeConfig");
175
200
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../../cli/src/actions/templates.ts"],"sourcesContent":["import colors from 'colors';\nimport { Command } from 'commander';\nimport { execSync } from 'node:child_process';\nimport fs from 'node:fs';\nimport ora from 'ora';\nimport { STARTER_MAIN_TS, STARTER_ZMODEL } from './templates';\n\n// detect package manager\nconst npmAgent = process.env['npm_config_user_agent'];\nlet agent = 'npm';\nlet agentExec = 'npx';\nlet saveDev = '--save-dev';\n\nif (npmAgent?.includes('pnpm')) {\n agent = 'pnpm';\n agentExec = 'pnpm';\n} else if (npmAgent?.includes('yarn')) {\n agent = 'yarn';\n agentExec = 'npx';\n saveDev = '--dev';\n} else if (npmAgent?.includes('bun')) {\n agent = 'bun';\n agentExec = 'bun';\n}\n\nconst program = new Command('create-zenstack');\n\nprogram.arguments('<project-name>').action((projectName) => {\n initProject(projectName);\n});\n\nprogram.parse(process.argv);\n\nfunction initProject(name: string) {\n // create folder\n if (fs.existsSync(name)) {\n console.log(colors.red(`Directory ${name} already exists.`));\n process.exit(1);\n }\n fs.mkdirSync(name);\n process.chdir(name);\n\n console.log(colors.gray(`Using package manager: ${agent}`));\n\n // create package.json\n fs.writeFileSync(\n 'package.json',\n JSON.stringify(\n {\n name: 'zenstack-app',\n version: '1.0.0',\n description: 'Scaffolded with create-zenstack',\n type: 'module',\n scripts: {\n dev: 'tsx main.ts',\n },\n license: 'ISC',\n },\n null,\n 2,\n ),\n );\n\n // install packages\n const packages = [\n { name: '@zenstackhq/cli@next', dev: true },\n { name: '@zenstackhq/runtime@next', dev: false },\n { name: 'better-sqlite3', dev: false },\n { name: '@types/better-sqlite3', dev: true },\n { name: 'typescript', dev: true },\n { name: 'tsx', dev: true },\n { name: '@types/node', dev: true },\n ];\n for (const pkg of packages) {\n installPackage(pkg);\n }\n\n // create tsconfig.json\n fs.writeFileSync(\n 'tsconfig.json',\n JSON.stringify(\n {\n compilerOptions: {\n module: 'esnext',\n target: 'esnext',\n moduleResolution: 'bundler',\n sourceMap: true,\n outDir: 'dist',\n strict: true,\n skipLibCheck: true,\n esModuleInterop: true,\n },\n },\n null,\n 2,\n ),\n );\n\n // create schema.zmodel\n fs.mkdirSync('zenstack');\n fs.writeFileSync('zenstack/schema.zmodel', STARTER_ZMODEL);\n\n // create main.ts\n fs.writeFileSync('main.ts', STARTER_MAIN_TS);\n\n // run `zenstack generate`\n runCommand(`${agentExec} zenstack generate`, 'Running `zenstack generate`');\n\n // run `zenstack db push`\n runCommand(`${agentExec} zenstack db push`, 'Running `zenstack db push`');\n}\n\nfunction installPackage(pkg: { name: string; dev: boolean }) {\n runCommand(`${agent} install ${pkg.name} ${pkg.dev ? saveDev : ''}`, `Installing \"${pkg.name}\"`);\n}\n\nfunction runCommand(cmd: string, status: string) {\n const spinner = ora(status).start();\n try {\n execSync(cmd);\n spinner.succeed();\n } catch (e) {\n spinner.fail();\n throw e;\n }\n}\n","export const STARTER_ZMODEL = `// This is a sample model to get you started.\n\n/// A sample data source using local sqlite db.\ndatasource db {\n provider = 'sqlite'\n url = 'file:./dev.db'\n}\n\n/// User model\nmodel User {\n id String @id @default(cuid())\n email String @unique @email @length(6, 32)\n posts Post[]\n}\n\n/// Post model\nmodel Post {\n id String @id @default(cuid())\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n title String @length(1, 256)\n content String\n published Boolean @default(false)\n author User @relation(fields: [authorId], references: [id])\n authorId String\n}\n`;\n\nexport const STARTER_MAIN_TS = `import { ZenStackClient } from '@zenstackhq/runtime';\nimport { schema } from './zenstack/schema';\nimport SQLite from 'better-sqlite3';\n\nasync function main() {\n const client = new ZenStackClient(schema, {\n dialectConfig: {\n database: new SQLite('./zenstack/dev.db'),\n },\n });\n const user = await client.user.create({\n data: {\n email: 'test@zenstack.dev',\n posts: {\n create: [\n {\n title: 'Hello World',\n content: 'This is a test post',\n },\n ],\n },\n },\n include: { posts: true }\n });\n console.log('User created:', user);\n}\n\nmain();\n`;\n"],"mappings":";;;;AAAA,OAAOA,YAAY;AACnB,SAASC,eAAe;AACxB,SAASC,gBAAgB;AACzB,OAAOC,QAAQ;AACf,OAAOC,SAAS;;;ACJT,IAAMC,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BvB,IAAMC,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ADpB/B,IAAMC,WAAWC,QAAQC,IAAI,uBAAA;AAC7B,IAAIC,QAAQ;AACZ,IAAIC,YAAY;AAChB,IAAIC,UAAU;AAEd,IAAIL,UAAUM,SAAS,MAAA,GAAS;AAC5BH,UAAQ;AACRC,cAAY;AAChB,WAAWJ,UAAUM,SAAS,MAAA,GAAS;AACnCH,UAAQ;AACRC,cAAY;AACZC,YAAU;AACd,WAAWL,UAAUM,SAAS,KAAA,GAAQ;AAClCH,UAAQ;AACRC,cAAY;AAChB;AAEA,IAAMG,UAAU,IAAIC,QAAQ,iBAAA;AAE5BD,QAAQE,UAAU,gBAAA,EAAkBC,OAAO,CAACC,gBAAAA;AACxCC,cAAYD,WAAAA;AAChB,CAAA;AAEAJ,QAAQM,MAAMZ,QAAQa,IAAI;AAE1B,SAASF,YAAYG,MAAY;AAE7B,MAAIC,GAAGC,WAAWF,IAAAA,GAAO;AACrBG,YAAQC,IAAIC,OAAOC,IAAI,aAAaN,IAAAA,kBAAsB,CAAA;AAC1Dd,YAAQqB,KAAK,CAAA;EACjB;AACAN,KAAGO,UAAUR,IAAAA;AACbd,UAAQuB,MAAMT,IAAAA;AAEdG,UAAQC,IAAIC,OAAOK,KAAK,0BAA0BtB,KAAAA,EAAO,CAAA;AAGzDa,KAAGU,cACC,gBACAC,KAAKC,UACD;IACIb,MAAM;IACNc,SAAS;IACTC,aAAa;IACbC,MAAM;IACNC,SAAS;MACLC,KAAK;IACT;IACAC,SAAS;EACb,GACA,MACA,CAAA,CAAA;AAKR,QAAMC,WAAW;IACb;MAAEpB,MAAM;MAAwBkB,KAAK;IAAK;IAC1C;MAAElB,MAAM;MAA4BkB,KAAK;IAAM;IAC/C;MAAElB,MAAM;MAAkBkB,KAAK;IAAM;IACrC;MAAElB,MAAM;MAAyBkB,KAAK;IAAK;IAC3C;MAAElB,MAAM;MAAckB,KAAK;IAAK;IAChC;MAAElB,MAAM;MAAOkB,KAAK;IAAK;IACzB;MAAElB,MAAM;MAAekB,KAAK;IAAK;;AAErC,aAAWG,OAAOD,UAAU;AACxBE,mBAAeD,GAAAA;EACnB;AAGApB,KAAGU,cACC,iBACAC,KAAKC,UACD;IACIU,iBAAiB;MACbC,QAAQ;MACRC,QAAQ;MACRC,kBAAkB;MAClBC,WAAW;MACXC,QAAQ;MACRC,QAAQ;MACRC,cAAc;MACdC,iBAAiB;IACrB;EACJ,GACA,MACA,CAAA,CAAA;AAKR9B,KAAGO,UAAU,UAAA;AACbP,KAAGU,cAAc,0BAA0BqB,cAAAA;AAG3C/B,KAAGU,cAAc,WAAWsB,eAAAA;AAG5BC,aAAW,GAAG7C,SAAAA,sBAA+B,6BAAA;AAG7C6C,aAAW,GAAG7C,SAAAA,qBAA8B,4BAAA;AAChD;AA7ESQ;AA+ET,SAASyB,eAAeD,KAAmC;AACvDa,aAAW,GAAG9C,KAAAA,YAAiBiC,IAAIrB,IAAI,IAAIqB,IAAIH,MAAM5B,UAAU,EAAA,IAAM,eAAe+B,IAAIrB,IAAI,GAAG;AACnG;AAFSsB;AAIT,SAASY,WAAWC,KAAaC,QAAc;AAC3C,QAAMC,UAAUC,IAAIF,MAAAA,EAAQG,MAAK;AACjC,MAAI;AACAC,aAASL,GAAAA;AACTE,YAAQI,QAAO;EACnB,SAASC,GAAG;AACRL,YAAQM,KAAI;AACZ,UAAMD;EACV;AACJ;AATSR;","names":["colors","Command","execSync","fs","ora","STARTER_ZMODEL","STARTER_MAIN_TS","npmAgent","process","env","agent","agentExec","saveDev","includes","program","Command","arguments","action","projectName","initProject","parse","argv","name","fs","existsSync","console","log","colors","red","exit","mkdirSync","chdir","gray","writeFileSync","JSON","stringify","version","description","type","scripts","dev","license","packages","pkg","installPackage","compilerOptions","module","target","moduleResolution","sourceMap","outDir","strict","skipLibCheck","esModuleInterop","STARTER_ZMODEL","STARTER_MAIN_TS","runCommand","cmd","status","spinner","ora","start","execSync","succeed","e","fail"]}
1
+ {"version":3,"sources":["../src/index.ts","../../cli/src/actions/templates.ts"],"sourcesContent":["import colors from 'colors';\nimport { Command } from 'commander';\nimport { execSync, type StdioOptions } from 'node:child_process';\nimport fs from 'node:fs';\nimport ora from 'ora';\nimport { STARTER_MAIN_TS, STARTER_ZMODEL } from './templates';\n\n// detect package manager\nconst npmAgent = process.env['npm_config_user_agent'];\nlet agent = 'npm';\nlet agentExec = 'npx';\nlet saveDev = '--save-dev';\n\nif (npmAgent?.includes('pnpm')) {\n agent = 'pnpm';\n agentExec = 'pnpm';\n} else if (npmAgent?.includes('yarn')) {\n agent = 'yarn';\n agentExec = 'npx';\n saveDev = '--dev';\n} else if (npmAgent?.includes('bun')) {\n agent = 'bun';\n agentExec = 'bun';\n}\n\nconst program = new Command('create-zenstack');\n\nprogram.arguments('<project-name>').action((projectName) => {\n initProject(projectName);\n});\n\nprogram.parse(process.argv);\n\nfunction initProject(name: string) {\n // create folder\n if (fs.existsSync(name)) {\n console.log(colors.red(`Directory ${name} already exists.`));\n process.exit(1);\n }\n fs.mkdirSync(name);\n process.chdir(name);\n\n console.log(colors.gray(`Using package manager: ${agent}`));\n\n // create package.json\n fs.writeFileSync(\n 'package.json',\n JSON.stringify(\n {\n name: 'zenstack-app',\n version: '1.0.0',\n description: 'Scaffolded with create-zenstack',\n type: 'module',\n scripts: {\n dev: 'tsx main.ts',\n },\n license: 'ISC',\n },\n null,\n 2,\n ),\n );\n\n // create VSCode config files\n createVsCodeConfig();\n\n // install packages\n const packages = [\n { name: '@zenstackhq/cli@next', dev: true },\n { name: '@zenstackhq/runtime@next', dev: false },\n { name: 'better-sqlite3', dev: false },\n { name: '@types/better-sqlite3', dev: true },\n { name: 'typescript', dev: true },\n { name: 'tsx', dev: true },\n { name: '@types/node', dev: true },\n ];\n for (const pkg of packages) {\n installPackage(pkg);\n }\n\n // create tsconfig.json\n fs.writeFileSync(\n 'tsconfig.json',\n JSON.stringify(\n {\n compilerOptions: {\n module: 'esnext',\n target: 'esnext',\n moduleResolution: 'bundler',\n sourceMap: true,\n outDir: 'dist',\n strict: true,\n skipLibCheck: true,\n esModuleInterop: true,\n },\n },\n null,\n 2,\n ),\n );\n\n // create schema.zmodel\n fs.mkdirSync('zenstack');\n fs.writeFileSync('zenstack/schema.zmodel', STARTER_ZMODEL);\n\n // create main.ts\n fs.writeFileSync('main.ts', STARTER_MAIN_TS);\n\n // run `zen generate`\n runCommand(`${agentExec} zen generate`, 'Running `zen generate`');\n\n // run `zen db push`\n runCommand(`${agentExec} zen db push`, 'Running `zen db push`');\n\n // run `$agent run dev`\n console.log(`Running \\`${agent} run dev\\``);\n execSync(`${agent} run dev`, { stdio: 'inherit' });\n console.log(colors.green('Project setup completed!'));\n}\n\nfunction installPackage(pkg: { name: string; dev: boolean }) {\n runCommand(`${agent} install ${pkg.name} ${pkg.dev ? saveDev : ''}`, `Installing \"${pkg.name}\"`);\n}\n\nfunction runCommand(cmd: string, status: string, stdio: StdioOptions = 'ignore') {\n const spinner = ora(status).start();\n try {\n execSync(cmd, { stdio });\n spinner.succeed();\n } catch (e) {\n spinner.fail();\n throw e;\n }\n}\n\nfunction createVsCodeConfig() {\n fs.mkdirSync('.vscode', { recursive: true });\n fs.writeFileSync(\n '.vscode/settings.json',\n JSON.stringify(\n {\n 'files.associations': {\n '*.zmodel': 'zmodel-v3',\n },\n },\n null,\n 4,\n ),\n );\n fs.writeFileSync('.vscode/extensions.json', JSON.stringify({ recommendations: ['zenstack.zenstack-v3'] }, null, 4));\n}\n","export const STARTER_ZMODEL = `// This is a sample model to get you started.\n\n/// A sample data source using local sqlite db.\ndatasource db {\n provider = 'sqlite'\n url = 'file:./dev.db'\n}\n\n/// User model\nmodel User {\n id String @id @default(cuid())\n email String @unique @email @length(6, 32)\n posts Post[]\n}\n\n/// Post model\nmodel Post {\n id String @id @default(cuid())\n createdAt DateTime @default(now())\n updatedAt DateTime @updatedAt\n title String @length(1, 256)\n content String\n published Boolean @default(false)\n author User @relation(fields: [authorId], references: [id])\n authorId String\n}\n`;\n\nexport const STARTER_MAIN_TS = `import { ZenStackClient } from '@zenstackhq/runtime';\nimport SQLite from 'better-sqlite3';\nimport { SqliteDialect } from 'kysely';\nimport { schema } from './zenstack/schema';\n\nasync function main() {\n const client = new ZenStackClient(schema, {\n dialect: new SqliteDialect({\n database: new SQLite('./zenstack/dev.db'),\n }),\n });\n const user = await client.user.create({\n data: {\n email: 'test@zenstack.dev',\n posts: {\n create: [\n {\n title: 'Hello World',\n content: 'This is a test post',\n },\n ],\n },\n },\n include: { posts: true }\n });\n console.log('User created:', user);\n}\n\nmain();\n`;\n"],"mappings":"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","names":["colors","Command","execSync","fs","ora","STARTER_ZMODEL","STARTER_MAIN_TS","npmAgent","process","env","agent","agentExec","saveDev","includes","program","Command","arguments","action","projectName","initProject","parse","argv","name","fs","existsSync","console","log","colors","red","exit","mkdirSync","chdir","gray","writeFileSync","JSON","stringify","version","description","type","scripts","dev","license","createVsCodeConfig","packages","pkg","installPackage","compilerOptions","module","target","moduleResolution","sourceMap","outDir","strict","skipLibCheck","esModuleInterop","STARTER_ZMODEL","STARTER_MAIN_TS","runCommand","execSync","stdio","green","cmd","status","spinner","ora","start","succeed","e","fail","recursive","recommendations"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-zenstack",
3
- "version": "3.0.0-alpha.9",
3
+ "version": "3.0.0-beta.10",
4
4
  "description": "Create a new ZenStack project",
5
5
  "type": "module",
6
6
  "keywords": [],
@@ -30,11 +30,11 @@
30
30
  "ora": "^5.4.1"
31
31
  },
32
32
  "devDependencies": {
33
- "@zenstackhq/eslint-config": "3.0.0-alpha.9",
34
- "@zenstackhq/typescript-config": "3.0.0-alpha.9"
33
+ "@zenstackhq/eslint-config": "3.0.0-beta.10",
34
+ "@zenstackhq/typescript-config": "3.0.0-beta.10"
35
35
  },
36
36
  "scripts": {
37
- "build": "tsup-node",
37
+ "build": "tsc --noEmit && tsup-node",
38
38
  "lint": "eslint src --ext ts",
39
39
  "pack": "pnpm pack"
40
40
  }