create-moria 0.3.3 → 0.3.5

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,4 +1,4 @@
1
1
 
2
- > create-moria@0.3.3 build C:\Codes\node\2026\github\moriajs\packages\create-moria
2
+ > create-moria@0.3.5 build C:\Codes\node\2026\github\moriajs\packages\create-moria
3
3
  > tsc
4
4
 
package/dist/index.js CHANGED
@@ -17,7 +17,7 @@ import pc from 'picocolors';
17
17
  import prompts from 'prompts';
18
18
  import { writeFileSync, mkdirSync, existsSync } from 'node:fs';
19
19
  import { join, resolve } from 'node:path';
20
- const VERSION = '0.3.2';
20
+ const VERSION = '0.3.5';
21
21
  export const cli = cac('create-moria');
22
22
  // ─── Template file generators ─────────────────────────
23
23
  function tsconfigContent() {
@@ -78,6 +78,9 @@ export default defineConfig({
78
78
  database: {
79
79
  ${dbConfig}
80
80
  },
81
+ vite: {
82
+ clientEntry: '/src/entry-client.ts',
83
+ },
81
84
  });
82
85
  `;
83
86
  }
@@ -93,6 +96,9 @@ export default {
93
96
  database: {
94
97
  ${dbConfig}
95
98
  },
99
+ vite: {
100
+ clientEntry: '/src/entry-client.js',
101
+ },
96
102
  };
97
103
  `;
98
104
  }
@@ -189,6 +195,54 @@ export function GET(_request: FastifyRequest, _reply: FastifyReply) {
189
195
  }
190
196
  `;
191
197
  }
198
+ function srcApiHealthTs() {
199
+ return `/**
200
+ * GET /api/health
201
+ */
202
+
203
+ import type { FastifyRequest, FastifyReply } from 'fastify';
204
+
205
+ export function GET(_request: FastifyRequest, _reply: FastifyReply) {
206
+ return { status: 'ok', uptime: process.uptime() };
207
+ }
208
+ `;
209
+ }
210
+ function srcApiUsersTs() {
211
+ return `/**
212
+ * GET /api/users/:id
213
+ */
214
+
215
+ import type { FastifyRequest, FastifyReply } from 'fastify';
216
+
217
+ export function GET(request: FastifyRequest<{ Params: { id: string } }>, _reply: FastifyReply) {
218
+ const { id } = request.params;
219
+ return {
220
+ id,
221
+ name: \`User \${id}\`,
222
+ email: \`user\${id}@example.com\`,
223
+ };
224
+ }
225
+ `;
226
+ }
227
+ function srcApiSearchTs() {
228
+ return `/**
229
+ * GET /api/search?q=...
230
+ */
231
+
232
+ import type { FastifyRequest, FastifyReply } from 'fastify';
233
+
234
+ export function GET(request: FastifyRequest<{ Querystring: { q?: string } }>, _reply: FastifyReply) {
235
+ const { q = '' } = request.query;
236
+ return {
237
+ query: q,
238
+ results: [
239
+ { id: 1, title: \`Result for \${q} 1\` },
240
+ { id: 2, title: \`Result for \${q} 2\` },
241
+ ],
242
+ };
243
+ }
244
+ `;
245
+ }
192
246
  function srcApiHelloJs() {
193
247
  return `/**
194
248
  * GET /api/hello
@@ -202,6 +256,48 @@ export function GET(_request, _reply) {
202
256
  }
203
257
  `;
204
258
  }
259
+ function srcApiHealthJs() {
260
+ return `/**
261
+ * GET /api/health
262
+ */
263
+
264
+ export function GET(_request, _reply) {
265
+ return { status: 'ok', uptime: process.uptime() };
266
+ }
267
+ `;
268
+ }
269
+ function srcApiUsersJs() {
270
+ return `/**
271
+ * GET /api/users/:id
272
+ */
273
+
274
+ export function GET(request, _reply) {
275
+ const { id } = request.params;
276
+ return {
277
+ id,
278
+ name: \`User \${id}\`,
279
+ email: \`user\${id}@example.com\`,
280
+ };
281
+ }
282
+ `;
283
+ }
284
+ function srcApiSearchJs() {
285
+ return `/**
286
+ * GET /api/search?q=...
287
+ */
288
+
289
+ export function GET(request, _reply) {
290
+ const { q = '' } = request.query;
291
+ return {
292
+ query: q,
293
+ results: [
294
+ { id: 1, title: \`Result for \${q} 1\` },
295
+ { id: 2, title: \`Result for \${q} 2\` },
296
+ ],
297
+ };
298
+ }
299
+ `;
300
+ }
205
301
  function srcPageIndexTs() {
206
302
  return `/**
207
303
  * Home page — server-rendered Mithril.js component.
@@ -224,6 +320,8 @@ export async function getServerData() {
224
320
  }
225
321
 
226
322
  /** Page component */
323
+ let count = 0;
324
+
227
325
  export default {
228
326
  title: 'MoriaJS App',
229
327
  view(vnode: m.Vnode<{ serverData?: { title: string; features: string[] } }>) {
@@ -231,12 +329,30 @@ export default {
231
329
  return m('main', { style: 'max-width:640px;margin:2rem auto;font-family:system-ui;padding:0 1rem' }, [
232
330
  m('h1', { style: 'font-size:2.5rem;margin-bottom:0.5rem' }, '🏔️ ' + (data?.title ?? 'MoriaJS')),
233
331
  m('p', { style: 'color:#666;font-size:1.1rem' }, 'Your full-stack Mithril.js app is up and running.'),
332
+
333
+ m('div', { style: 'background:#f4f4f4;padding:1.5rem;border-radius:8px;margin:2rem 0;text-align:center' }, [
334
+ m('h3', { style: 'margin-top:0' }, 'Hydration Demo'),
335
+ m('p', 'Click the button below to verify that client-side hydration is working:'),
336
+ m('button', {
337
+ style: 'background:#007bff;color:#fff;border:none;padding:0.75rem 1.5rem;border-radius:4px;font-size:1rem;cursor:pointer',
338
+ onclick: () => { count++; }
339
+ }, \`Count is \${count}\`),
340
+ ]),
341
+
234
342
  m('hr', { style: 'border:none;border-top:1px solid #eee;margin:1.5rem 0' }),
235
343
  m('h2', { style: 'font-size:1.3rem' }, 'Features'),
236
344
  m('ul', { style: 'line-height:1.8' },
237
345
  (data?.features ?? []).map((f: string) => m('li', f))
238
346
  ),
239
347
  m('hr', { style: 'border:none;border-top:1px solid #eee;margin:1.5rem 0' }),
348
+ m('h2', { style: 'font-size:1.3rem' }, 'Quick Links'),
349
+ m('ul', { style: 'line-height:1.8;display:flex;gap:1rem;padding:0;list-style:none' }, [
350
+ m('li', m('a', { href: '/api/hello', target: '_blank' }, 'Hello API')),
351
+ m('li', m('a', { href: '/api/health', target: '_blank' }, 'Health Check')),
352
+ m('li', m('a', { href: '/api/users/42', target: '_blank' }, 'User Params')),
353
+ m('li', m('a', { href: '/api/search?q=moria', target: '_blank' }, 'Search Query')),
354
+ ]),
355
+ m('hr', { style: 'border:none;border-top:1px solid #eee;margin:1.5rem 0' }),
240
356
  m('p', { style: 'color:#999;font-size:0.9rem' }, [
241
357
  'Edit ',
242
358
  m('code', 'src/routes/pages/index.ts'),
@@ -269,6 +385,8 @@ export async function getServerData() {
269
385
  }
270
386
 
271
387
  /** Page component */
388
+ let count = 0;
389
+
272
390
  export default {
273
391
  title: 'MoriaJS App',
274
392
  view(vnode) {
@@ -276,12 +394,30 @@ export default {
276
394
  return m('main', { style: 'max-width:640px;margin:2rem auto;font-family:system-ui;padding:0 1rem' }, [
277
395
  m('h1', { style: 'font-size:2.5rem;margin-bottom:0.5rem' }, '🏔️ ' + (data?.title ?? 'MoriaJS')),
278
396
  m('p', { style: 'color:#666;font-size:1.1rem' }, 'Your full-stack Mithril.js app is up and running.'),
397
+
398
+ m('div', { style: 'background:#f4f4f4;padding:1.5rem;border-radius:8px;margin:2rem 0;text-align:center' }, [
399
+ m('h3', { style: 'margin-top:0' }, 'Hydration Demo'),
400
+ m('p', 'Click the button below to verify that client-side hydration is working:'),
401
+ m('button', {
402
+ style: 'background:#007bff;color:#fff;border:none;padding:0.75rem 1.5rem;border-radius:4px;font-size:1rem;cursor:pointer',
403
+ onclick: () => { count++; }
404
+ }, \`Count is \${count}\`),
405
+ ]),
406
+
279
407
  m('hr', { style: 'border:none;border-top:1px solid #eee;margin:1.5rem 0' }),
280
408
  m('h2', { style: 'font-size:1.3rem' }, 'Features'),
281
409
  m('ul', { style: 'line-height:1.8' },
282
410
  (data?.features ?? []).map((f) => m('li', f))
283
411
  ),
284
412
  m('hr', { style: 'border:none;border-top:1px solid #eee;margin:1.5rem 0' }),
413
+ m('h2', { style: 'font-size:1.3rem' }, 'Quick Links'),
414
+ m('ul', { style: 'line-height:1.8;display:flex;gap:1rem;padding:0;list-style:none' }, [
415
+ m('li', m('a', { href: '/api/hello', target: '_blank' }, 'Hello API')),
416
+ m('li', m('a', { href: '/api/health', target: '_blank' }, 'Health Check')),
417
+ m('li', m('a', { href: '/api/users/42', target: '_blank' }, 'User Params')),
418
+ m('li', m('a', { href: '/api/search?q=moria', target: '_blank' }, 'Search Query')),
419
+ ]),
420
+ m('hr', { style: 'border:none;border-top:1px solid #eee;margin:1.5rem 0' }),
285
421
  m('p', { style: 'color:#999;font-size:0.9rem' }, [
286
422
  'Edit ',
287
423
  m('code', 'src/routes/pages/index.js'),
@@ -418,7 +554,7 @@ cli
418
554
  console.log();
419
555
  // ─── Create directory structure ─────────────────────
420
556
  if (template === 'default') {
421
- mkdirs(join(dir, 'src', 'routes', 'api'), join(dir, 'src', 'routes', 'pages'));
557
+ mkdirs(join(dir, 'src', 'routes', 'api'), join(dir, 'src', 'routes', 'api', 'users'), join(dir, 'src', 'routes', 'pages'));
422
558
  }
423
559
  else {
424
560
  mkdirs(join(dir, 'src', 'routes', 'api'));
@@ -480,6 +616,10 @@ cli
480
616
  write(join(dir, `src/routes/api/hello.${ext}`), isTS ? srcApiHelloTs() : srcApiHelloJs());
481
617
  // SSR page
482
618
  write(join(dir, `src/routes/pages/index.${ext}`), isTS ? srcPageIndexTs() : srcPageIndexJs());
619
+ // Additional API routes
620
+ write(join(dir, `src/routes/api/health.${ext}`), isTS ? srcApiHealthTs() : srcApiHealthJs());
621
+ write(join(dir, `src/routes/api/users/[id].${ext}`), isTS ? srcApiUsersTs() : srcApiUsersJs());
622
+ write(join(dir, `src/routes/api/search.${ext}`), isTS ? srcApiSearchTs() : srcApiSearchJs());
483
623
  }
484
624
  else {
485
625
  // Minimal template — just entry + one API route
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-moria",
3
- "version": "0.3.3",
3
+ "version": "0.3.5",
4
4
  "type": "module",
5
5
  "description": "Create a new MoriaJS project",
6
6
  "main": "./dist/index.js",
package/src/index.ts CHANGED
@@ -19,7 +19,7 @@ import prompts from 'prompts';
19
19
  import { writeFileSync, mkdirSync, existsSync } from 'node:fs';
20
20
  import { join, resolve } from 'node:path';
21
21
 
22
- const VERSION = '0.3.2';
22
+ const VERSION = '0.3.5';
23
23
 
24
24
  export const cli = cac('create-moria');
25
25
 
@@ -90,6 +90,9 @@ export default defineConfig({
90
90
  database: {
91
91
  ${dbConfig}
92
92
  },
93
+ vite: {
94
+ clientEntry: '/src/entry-client.ts',
95
+ },
93
96
  });
94
97
  `;
95
98
  }
@@ -107,6 +110,9 @@ export default {
107
110
  database: {
108
111
  ${dbConfig}
109
112
  },
113
+ vite: {
114
+ clientEntry: '/src/entry-client.js',
115
+ },
110
116
  };
111
117
  `;
112
118
  }
@@ -210,6 +216,57 @@ export function GET(_request: FastifyRequest, _reply: FastifyReply) {
210
216
  `;
211
217
  }
212
218
 
219
+ function srcApiHealthTs(): string {
220
+ return `/**
221
+ * GET /api/health
222
+ */
223
+
224
+ import type { FastifyRequest, FastifyReply } from 'fastify';
225
+
226
+ export function GET(_request: FastifyRequest, _reply: FastifyReply) {
227
+ return { status: 'ok', uptime: process.uptime() };
228
+ }
229
+ `;
230
+ }
231
+
232
+ function srcApiUsersTs(): string {
233
+ return `/**
234
+ * GET /api/users/:id
235
+ */
236
+
237
+ import type { FastifyRequest, FastifyReply } from 'fastify';
238
+
239
+ export function GET(request: FastifyRequest<{ Params: { id: string } }>, _reply: FastifyReply) {
240
+ const { id } = request.params;
241
+ return {
242
+ id,
243
+ name: \`User \${id}\`,
244
+ email: \`user\${id}@example.com\`,
245
+ };
246
+ }
247
+ `;
248
+ }
249
+
250
+ function srcApiSearchTs(): string {
251
+ return `/**
252
+ * GET /api/search?q=...
253
+ */
254
+
255
+ import type { FastifyRequest, FastifyReply } from 'fastify';
256
+
257
+ export function GET(request: FastifyRequest<{ Querystring: { q?: string } }>, _reply: FastifyReply) {
258
+ const { q = '' } = request.query;
259
+ return {
260
+ query: q,
261
+ results: [
262
+ { id: 1, title: \`Result for \${q} 1\` },
263
+ { id: 2, title: \`Result for \${q} 2\` },
264
+ ],
265
+ };
266
+ }
267
+ `;
268
+ }
269
+
213
270
  function srcApiHelloJs(): string {
214
271
  return `/**
215
272
  * GET /api/hello
@@ -224,6 +281,51 @@ export function GET(_request, _reply) {
224
281
  `;
225
282
  }
226
283
 
284
+ function srcApiHealthJs(): string {
285
+ return `/**
286
+ * GET /api/health
287
+ */
288
+
289
+ export function GET(_request, _reply) {
290
+ return { status: 'ok', uptime: process.uptime() };
291
+ }
292
+ `;
293
+ }
294
+
295
+ function srcApiUsersJs(): string {
296
+ return `/**
297
+ * GET /api/users/:id
298
+ */
299
+
300
+ export function GET(request, _reply) {
301
+ const { id } = request.params;
302
+ return {
303
+ id,
304
+ name: \`User \${id}\`,
305
+ email: \`user\${id}@example.com\`,
306
+ };
307
+ }
308
+ `;
309
+ }
310
+
311
+ function srcApiSearchJs(): string {
312
+ return `/**
313
+ * GET /api/search?q=...
314
+ */
315
+
316
+ export function GET(request, _reply) {
317
+ const { q = '' } = request.query;
318
+ return {
319
+ query: q,
320
+ results: [
321
+ { id: 1, title: \`Result for \${q} 1\` },
322
+ { id: 2, title: \`Result for \${q} 2\` },
323
+ ],
324
+ };
325
+ }
326
+ `;
327
+ }
328
+
227
329
  function srcPageIndexTs(): string {
228
330
  return `/**
229
331
  * Home page — server-rendered Mithril.js component.
@@ -246,6 +348,8 @@ export async function getServerData() {
246
348
  }
247
349
 
248
350
  /** Page component */
351
+ let count = 0;
352
+
249
353
  export default {
250
354
  title: 'MoriaJS App',
251
355
  view(vnode: m.Vnode<{ serverData?: { title: string; features: string[] } }>) {
@@ -253,12 +357,30 @@ export default {
253
357
  return m('main', { style: 'max-width:640px;margin:2rem auto;font-family:system-ui;padding:0 1rem' }, [
254
358
  m('h1', { style: 'font-size:2.5rem;margin-bottom:0.5rem' }, '🏔️ ' + (data?.title ?? 'MoriaJS')),
255
359
  m('p', { style: 'color:#666;font-size:1.1rem' }, 'Your full-stack Mithril.js app is up and running.'),
360
+
361
+ m('div', { style: 'background:#f4f4f4;padding:1.5rem;border-radius:8px;margin:2rem 0;text-align:center' }, [
362
+ m('h3', { style: 'margin-top:0' }, 'Hydration Demo'),
363
+ m('p', 'Click the button below to verify that client-side hydration is working:'),
364
+ m('button', {
365
+ style: 'background:#007bff;color:#fff;border:none;padding:0.75rem 1.5rem;border-radius:4px;font-size:1rem;cursor:pointer',
366
+ onclick: () => { count++; }
367
+ }, \`Count is \${count}\`),
368
+ ]),
369
+
256
370
  m('hr', { style: 'border:none;border-top:1px solid #eee;margin:1.5rem 0' }),
257
371
  m('h2', { style: 'font-size:1.3rem' }, 'Features'),
258
372
  m('ul', { style: 'line-height:1.8' },
259
373
  (data?.features ?? []).map((f: string) => m('li', f))
260
374
  ),
261
375
  m('hr', { style: 'border:none;border-top:1px solid #eee;margin:1.5rem 0' }),
376
+ m('h2', { style: 'font-size:1.3rem' }, 'Quick Links'),
377
+ m('ul', { style: 'line-height:1.8;display:flex;gap:1rem;padding:0;list-style:none' }, [
378
+ m('li', m('a', { href: '/api/hello', target: '_blank' }, 'Hello API')),
379
+ m('li', m('a', { href: '/api/health', target: '_blank' }, 'Health Check')),
380
+ m('li', m('a', { href: '/api/users/42', target: '_blank' }, 'User Params')),
381
+ m('li', m('a', { href: '/api/search?q=moria', target: '_blank' }, 'Search Query')),
382
+ ]),
383
+ m('hr', { style: 'border:none;border-top:1px solid #eee;margin:1.5rem 0' }),
262
384
  m('p', { style: 'color:#999;font-size:0.9rem' }, [
263
385
  'Edit ',
264
386
  m('code', 'src/routes/pages/index.ts'),
@@ -292,6 +414,8 @@ export async function getServerData() {
292
414
  }
293
415
 
294
416
  /** Page component */
417
+ let count = 0;
418
+
295
419
  export default {
296
420
  title: 'MoriaJS App',
297
421
  view(vnode) {
@@ -299,12 +423,30 @@ export default {
299
423
  return m('main', { style: 'max-width:640px;margin:2rem auto;font-family:system-ui;padding:0 1rem' }, [
300
424
  m('h1', { style: 'font-size:2.5rem;margin-bottom:0.5rem' }, '🏔️ ' + (data?.title ?? 'MoriaJS')),
301
425
  m('p', { style: 'color:#666;font-size:1.1rem' }, 'Your full-stack Mithril.js app is up and running.'),
426
+
427
+ m('div', { style: 'background:#f4f4f4;padding:1.5rem;border-radius:8px;margin:2rem 0;text-align:center' }, [
428
+ m('h3', { style: 'margin-top:0' }, 'Hydration Demo'),
429
+ m('p', 'Click the button below to verify that client-side hydration is working:'),
430
+ m('button', {
431
+ style: 'background:#007bff;color:#fff;border:none;padding:0.75rem 1.5rem;border-radius:4px;font-size:1rem;cursor:pointer',
432
+ onclick: () => { count++; }
433
+ }, \`Count is \${count}\`),
434
+ ]),
435
+
302
436
  m('hr', { style: 'border:none;border-top:1px solid #eee;margin:1.5rem 0' }),
303
437
  m('h2', { style: 'font-size:1.3rem' }, 'Features'),
304
438
  m('ul', { style: 'line-height:1.8' },
305
439
  (data?.features ?? []).map((f) => m('li', f))
306
440
  ),
307
441
  m('hr', { style: 'border:none;border-top:1px solid #eee;margin:1.5rem 0' }),
442
+ m('h2', { style: 'font-size:1.3rem' }, 'Quick Links'),
443
+ m('ul', { style: 'line-height:1.8;display:flex;gap:1rem;padding:0;list-style:none' }, [
444
+ m('li', m('a', { href: '/api/hello', target: '_blank' }, 'Hello API')),
445
+ m('li', m('a', { href: '/api/health', target: '_blank' }, 'Health Check')),
446
+ m('li', m('a', { href: '/api/users/42', target: '_blank' }, 'User Params')),
447
+ m('li', m('a', { href: '/api/search?q=moria', target: '_blank' }, 'Search Query')),
448
+ ]),
449
+ m('hr', { style: 'border:none;border-top:1px solid #eee;margin:1.5rem 0' }),
308
450
  m('p', { style: 'color:#999;font-size:0.9rem' }, [
309
451
  'Edit ',
310
452
  m('code', 'src/routes/pages/index.js'),
@@ -456,6 +598,7 @@ cli
456
598
  if (template === 'default') {
457
599
  mkdirs(
458
600
  join(dir, 'src', 'routes', 'api'),
601
+ join(dir, 'src', 'routes', 'api', 'users'),
459
602
  join(dir, 'src', 'routes', 'pages')
460
603
  );
461
604
  } else {
@@ -545,6 +688,20 @@ cli
545
688
  join(dir, `src/routes/pages/index.${ext}`),
546
689
  isTS ? srcPageIndexTs() : srcPageIndexJs()
547
690
  );
691
+
692
+ // Additional API routes
693
+ write(
694
+ join(dir, `src/routes/api/health.${ext}`),
695
+ isTS ? srcApiHealthTs() : srcApiHealthJs()
696
+ );
697
+ write(
698
+ join(dir, `src/routes/api/users/[id].${ext}`),
699
+ isTS ? srcApiUsersTs() : srcApiUsersJs()
700
+ );
701
+ write(
702
+ join(dir, `src/routes/api/search.${ext}`),
703
+ isTS ? srcApiSearchTs() : srcApiSearchJs()
704
+ );
548
705
  } else {
549
706
  // Minimal template — just entry + one API route
550
707
  write(join(dir, `src/index.${ext}`), isTS ? srcIndexTs() : srcIndexJs());