create-pwa-sv 1.3.0 → 1.5.0

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/README.md CHANGED
@@ -79,8 +79,7 @@ bun create pwa-sv my-pwa-project --no-git
79
79
  After project creation, these scripts are available in your `package.json`:
80
80
 
81
81
  - `bun build-pwa-assets`: Generate PWA icons and assets
82
- - `bun i18n:extract`: Extract translation keys (if i18n enabled)
83
- - `bun i18n:check`: Check for missing translations (if i18n enabled)
82
+ - `bun paraglide:compile`: Compile Paraglide translations (if i18n enabled)
84
83
 
85
84
  ## How to Use pwa-asset-generator
86
85
 
@@ -127,8 +126,6 @@ my-pwa-project/
127
126
  ├── tailwind.config.cjs # Tailwind CSS with Skeleton UI (if enabled)
128
127
  ├── src/ # SvelteKit application code
129
128
  │ ├── lib/ # Reusable components, modules, etc.
130
- │ │ ├── i18n/ # Internationalization config (if enabled)
131
- │ │ └── locales/ # Translation files (if enabled)
132
129
  │ ├── routes/ # Page routes
133
130
  │ └── app.html # Application shell
134
131
  ├── static/ # Static assets directory
@@ -145,10 +142,10 @@ The `vite.config.ts` file includes the PWA plugin with service worker and manife
145
142
 
146
143
  When the `--i18n` flag is used, the project includes:
147
144
 
148
- - `svelte-i18n` for internationalization
149
- - Pre-configured English and Spanish locale files
145
+ - `@inlang/paraglide-js` for internationalization (compiler-based, tree-shaking friendly)
146
+ - Pre-configured English and Spanish translation files in `messages/`
147
+ - Paraglide hooks and middleware for SvelteKit routing
150
148
  - A sample component showing how to use translations
151
- - Scripts for extracting and checking translations
152
149
 
153
150
  ## Skeleton UI
154
151
 
@@ -208,6 +205,16 @@ To publish this CLI tool to npm as `pwa-sv`, please follow the steps in the [pub
208
205
 
209
206
  ## Recent Changes
210
207
 
208
+ ### v1.4.0
209
+
210
+ #### Changes
211
+ - Migrated from `svelte-i18n` to `@inlang/paraglide-js` for internationalization
212
+ - Compiler-based tree-shaking (70% smaller bundles)
213
+ - Full type safety with TypeScript
214
+ - Official SvelteKit integration
215
+ - Updated all packages to latest versions (TypeScript 6.0, Biome 2.5, Commander 15, Effect Platform 0.96)
216
+ - Updated TypeScript config to use `moduleResolution: "bundler"` (TS 6.0)
217
+
211
218
  ### v1.3.0 (2026-01-13)
212
219
 
213
220
  #### New Features
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAUA,eAAO,MAAM,mBAAmB,GAAI,MAAM,MAAM,KAAG,MAiBlD,CAAC"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AASA,eAAO,MAAM,mBAAmB,GAAI,MAAM,MAAM,KAAG,MAiBlD,CAAC"}
package/dist/cli.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { existsSync } from 'fs';
2
+ import { existsSync } from 'node:fs';
3
3
  import { Command } from 'commander';
4
4
  import { createProject } from './engine.js';
5
5
  const program = new Command();
@@ -41,12 +41,12 @@ program
41
41
  }
42
42
  const config = {
43
43
  projectName,
44
- useDexie: options.dexie || false,
45
- useSkeleton: options.skeleton || false,
46
- useI18n: options.i18n || false,
47
- usePlaywright: options.playwright || false,
48
- nonInteractive: options.yes || false,
49
- git: options.git !== undefined ? options.git : true,
44
+ useDexie: options.dexie,
45
+ useSkeleton: options.skeleton,
46
+ useI18n: options.i18n,
47
+ usePlaywright: options.playwright,
48
+ nonInteractive: options.yes,
49
+ git: options.git === undefined ? true : options.git,
50
50
  };
51
51
  await createProject(config);
52
52
  }
@@ -57,5 +57,8 @@ program
57
57
  });
58
58
  // Add help option
59
59
  program.showHelpAfterError('(add --help for additional information)');
60
- program.parse();
60
+ // Only parse if this file is being run directly
61
+ if (import.meta.url === `file://${process.argv[1]}`) {
62
+ program.parse();
63
+ }
61
64
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAI5C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,8DAA8D;AAC9D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAU,EAAE;IAC1D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IAED,iDAAiD;IACjD,MAAM,YAAY,GAAG,eAAe,CAAC;IACrC,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IAED,gDAAgD;IAChD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,0BAA0B;AACxB,OAAO;KACJ,IAAI,CAAC,eAAe,CAAC;KACrB,WAAW,CAAC,2CAA2C,CAAC;KACxD,OAAO,CAAC,OAAO,CAAC;KAChB,QAAQ,CAAC,gBAAgB,EAAE,+BAA+B,CAAC;KAC3D,MAAM,CAAC,OAAO,EAAE,wCAAwC,CAAC;KACzD,MAAM,CAAC,aAAa,EAAE,iCAAiC,CAAC;KACxD,MAAM,CAAC,gBAAgB,EAAE,2BAA2B,CAAC;KACrD,MAAM,CAAC,YAAY,EAAE,kCAAkC,CAAC;KACxD,MAAM,CAAC,kBAAkB,EAAE,oCAAoC,CAAC;KAChE,MAAM,CAAC,WAAW,EAAE,2CAA2C,CAAC;KAChE,MAAM,CAAC,KAAK,EAAE,cAAsB,EAAE,OAAY,EAAE,EAAE;IACvD,IAAI,CAAC;QACH,wBAAwB;QACxB,MAAM,WAAW,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC;QAExD,mEAAmE;QACnE,IAAI,OAAO,CAAC,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,sBAAsB,WAAW,0CAA0C,CAAC,CAAC;QAC3F,CAAC;QAED,MAAM,MAAM,GAAY;YACtB,WAAW;YACX,QAAQ,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK;YAChC,WAAW,EAAE,OAAO,CAAC,QAAQ,IAAI,KAAK;YACtC,OAAO,EAAE,OAAO,CAAC,IAAI,IAAI,KAAK;YAC9B,aAAa,EAAE,OAAO,CAAC,UAAU,IAAI,KAAK;YAC1C,cAAc,EAAE,OAAO,CAAC,GAAG,IAAI,KAAK;YACpC,GAAG,EAAE,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI;SACpD,CAAC;QAEF,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,kBAAkB;AAClB,OAAO,CAAC,kBAAkB,CAAC,yCAAyC,CAAC,CAAC;AACtE,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,8DAA8D;AAC9D,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,IAAY,EAAU,EAAE;IAC1D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IAED,iDAAiD;IACjD,MAAM,YAAY,GAAG,eAAe,CAAC;IACrC,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;IAED,gDAAgD;IAChD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,0BAA0B;AAC1B,OAAO;KACJ,IAAI,CAAC,eAAe,CAAC;KACrB,WAAW,CAAC,2CAA2C,CAAC;KACxD,OAAO,CAAC,OAAO,CAAC;KAChB,QAAQ,CAAC,gBAAgB,EAAE,+BAA+B,CAAC;KAC3D,MAAM,CAAC,OAAO,EAAE,wCAAwC,CAAC;KACzD,MAAM,CAAC,aAAa,EAAE,iCAAiC,CAAC;KACxD,MAAM,CAAC,gBAAgB,EAAE,2BAA2B,CAAC;KACrD,MAAM,CAAC,YAAY,EAAE,kCAAkC,CAAC;KACxD,MAAM,CAAC,kBAAkB,EAAE,oCAAoC,CAAC;KAChE,MAAM,CAAC,WAAW,EAAE,2CAA2C,CAAC;KAChE,MAAM,CAAC,KAAK,EAAE,cAAsB,EAAE,OAAY,EAAE,EAAE;IACrD,IAAI,CAAC;QACH,wBAAwB;QACxB,MAAM,WAAW,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC;QAExD,mEAAmE;QACnE,IAAI,OAAO,CAAC,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,sBAAsB,WAAW,0CAA0C,CAAC,CAAC;QAC3F,CAAC;QAED,MAAM,MAAM,GAAY;YACtB,WAAW;YACX,QAAQ,EAAE,OAAO,CAAC,KAAK;YACvB,WAAW,EAAE,OAAO,CAAC,QAAQ;YAC7B,OAAO,EAAE,OAAO,CAAC,IAAI;YACrB,aAAa,EAAE,OAAO,CAAC,UAAU;YACjC,cAAc,EAAE,OAAO,CAAC,GAAG;YAC3B,GAAG,EAAE,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG;SACpD,CAAC;QAEF,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,kBAAkB;AAClB,OAAO,CAAC,kBAAkB,CAAC,yCAAyC,CAAC,CAAC;AAEtE,gDAAgD;AAChD,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACpD,OAAO,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"deps-manager.d.ts","sourceRoot":"","sources":["../src/deps-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAkB1C;;;;GAIG;AACH,QAAA,MAAM,mBAAmB,GAAI,QAAQ,OAAO,KAAG,MAAM,EA8BpD,CAAC;AAEF;;;;GAIG;AACH,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAE/B;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GACjC,MAAM,MAAM,EAAE,KACb;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAsB5C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAU,QAAQ,OAAO,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAsC7F,CAAC"}
1
+ {"version":3,"file":"deps-manager.d.ts","sourceRoot":"","sources":["../src/deps-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAkB1C;;;;GAIG;AACH,QAAA,MAAM,mBAAmB,GAAI,QAAQ,OAAO,KAAG,MAAM,EA8BpD,CAAC;AAEF;;;;GAIG;AACH,OAAO,EAAE,mBAAmB,EAAE,CAAC;AAE/B;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GACjC,MAAM,MAAM,EAAE,KACb;IAAE,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,EAAE,CAAA;CAuB5C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAU,QAAQ,OAAO,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAsC7F,CAAC"}
@@ -12,7 +12,7 @@ const CORE_DEPENDENCIES = [
12
12
  const CONDITIONAL_DEPENDENCIES = {
13
13
  dexie: ['dexie'],
14
14
  skeleton: ['@skeletonlabs/skeleton', '@skeletonlabs/skeleton-svelte'],
15
- i18n: ['svelte-i18n'],
15
+ i18n: ['@inlang/paraglide-js'],
16
16
  };
17
17
  /**
18
18
  * Creates the complete list of dependencies based on configuration
@@ -68,7 +68,8 @@ export const categorizeDependencies = (deps) => {
68
68
  dep.includes('@sveltejs/') || // Svelte.js official packages are dev dependencies
69
69
  dep.includes('svelte-') || // Svelte-specific dev tools are dev dependencies
70
70
  dep.includes('skeleton') || // UI framework dev dependencies
71
- dep.includes('i18n') // i18n tools are typically dev dependencies
71
+ dep.includes('i18n') || // i18n tools are typically dev dependencies
72
+ dep.includes('paraglide') // Paraglide JS is a build-time i18n compiler
72
73
  ) {
73
74
  devDeps.push(dep);
74
75
  }
@@ -94,7 +95,7 @@ export const installDependencies = async (config) => {
94
95
  const { devDeps, runtimeDeps } = categorizeDependencies(dependenciesToInstall);
95
96
  // Install runtime dependencies first
96
97
  if (runtimeDeps.length > 0) {
97
- console.log(`Installing runtime dependencies:`, runtimeDeps);
98
+ console.log('Installing runtime dependencies:', runtimeDeps);
98
99
  await execa('bun', ['add', ...runtimeDeps], {
99
100
  cwd: projectDir,
100
101
  stdio: 'inherit',
@@ -102,7 +103,7 @@ export const installDependencies = async (config) => {
102
103
  }
103
104
  // Install dev dependencies
104
105
  if (devDeps.length > 0) {
105
- console.log(`Installing dev dependencies:`, devDeps);
106
+ console.log('Installing dev dependencies:', devDeps);
106
107
  await execa('bun', ['add', '-d', ...devDeps], {
107
108
  cwd: projectDir,
108
109
  stdio: 'inherit',
@@ -1 +1 @@
1
- {"version":3,"file":"deps-manager.js","sourceRoot":"","sources":["../src/deps-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deps-manager.js","sourceRoot":"","sources":["../src/deps-manager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAahC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AA8B1C;;GAEG;AACH,UAAU,aAAa;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,iBAAiB,EAAE,OAAO,CAAC;CAC5B;AAED;;;;GAIG;AACH,QAAA,MAAM,kBAAkB,GAAI,QAAQ,OAAO,KAAG,aAY5C,CAAC;AAEH;;;;GAIG;AACH,QAAA,MAAM,eAAe,GAAU,OAAO,aAAa,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CA0EvF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,GACpC,QAAQ,OAAO,KACd,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CA6HpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAU,QAAQ,OAAO,KAAG,OAAO,CAAC,IAAI,CAkCjE,CAAC;AAEF,OAAO,EAAE,KAAK,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,CAAC"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAahC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAuB1C;;GAEG;AACH,UAAU,aAAa;IACrB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,qBAAqB,EAAE,OAAO,CAAC;IAC/B,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AAED;;;;GAIG;AACH,QAAA,MAAM,kBAAkB,GAAI,QAAQ,OAAO,KAAG,aAY5C,CAAC;AAEH;;;;GAIG;AACH,QAAA,MAAM,eAAe,GAAU,OAAO,aAAa,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CA0EvF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,yBAAyB,GACpC,QAAQ,OAAO,KACd,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CA6HpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAU,QAAQ,OAAO,KAAG,OAAO,CAAC,IAAI,CAkCjE,CAAC;AAEF,OAAO,EAAE,kBAAkB,EAAE,KAAK,aAAa,EAAE,eAAe,EAAE,CAAC"}
package/dist/engine.js CHANGED
@@ -1,32 +1,26 @@
1
+ import chalk from 'chalk';
1
2
  import { Either } from 'effect';
2
3
  import { execa } from 'execa';
3
4
  import { installDependencies } from './deps-manager.js';
4
5
  import { createAgentsFileAndDocsFolder, createI18nConfig, createPWAAssetConfig, createPWAConfig, createSkeletonUIConfig, createSvelteProject, updatePackageJsonWithPWAScripts, validateProjectStructure, } from './process-fs-handler.js';
5
- import chalk from 'chalk';
6
6
  /**
7
7
  * Formats step messages with color for better readability
8
8
  * @param message The message to format
9
9
  * @returns Formatted message with color
10
10
  */
11
- const formatStepMessage = (message) => {
12
- return chalk.cyan(message);
13
- };
11
+ const formatStepMessage = (message) => chalk.cyan(message);
14
12
  /**
15
13
  * Formats success messages with color
16
14
  * @param message The message to format
17
15
  * @returns Formatted message with color
18
16
  */
19
- const formatSuccessMessage = (message) => {
20
- return chalk.green(message);
21
- };
17
+ const formatSuccessMessage = (message) => chalk.green(message);
22
18
  /**
23
19
  * Formats error messages with color
24
20
  * @param message The message to format
25
21
  * @returns Formatted message with color
26
22
  */
27
- const formatErrorMessage = (message) => {
28
- return chalk.red(message);
29
- };
23
+ const formatErrorMessage = (message) => chalk.red(message);
30
24
  /**
31
25
  * Creates an initial pipeline state
32
26
  * @param config Configuration object
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"process-fs-handler.d.ts","sourceRoot":"","sources":["../src/process-fs-handler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAU,QAAQ,OAAO,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CA+E7F,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,SAAS,GACpB,aAAa,MAAM,EACnB,SAAS,MAAM,EACf,UAAU,MAAM,KACf,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAUpC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GACnB,aAAa,MAAM,EACnB,UAAU,MAAM,KACf,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAStC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAU,aAAa,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAyI7F,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,+BAA+B,GAC1C,aAAa,MAAM,KAClB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CA6CpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAC/B,aAAa,MAAM,KAClB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAwCpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,GACnC,aAAa,MAAM,KAClB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CA0CpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GACjC,aAAa,MAAM,KAClB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CA2JpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAC3B,aAAa,MAAM,KAClB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAgOpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,6BAA6B,GACxC,aAAa,MAAM,KAClB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAsTpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAU,aAAa,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAkO7F,CAAC"}
1
+ {"version":3,"file":"process-fs-handler.d.ts","sourceRoot":"","sources":["../src/process-fs-handler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAAU,QAAQ,OAAO,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CA6E7F,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,SAAS,GACpB,aAAa,MAAM,EACnB,SAAS,MAAM,EACf,UAAU,MAAM,KACf,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAUpC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GACnB,aAAa,MAAM,EACnB,UAAU,MAAM,KACf,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAStC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAU,aAAa,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAyI7F,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,+BAA+B,GAC1C,aAAa,MAAM,KAClB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CA6CpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAC/B,aAAa,MAAM,KAClB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAwCpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,GACnC,aAAa,MAAM,KAClB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CA0CpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GACjC,aAAa,MAAM,KAClB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CA2JpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAC3B,aAAa,MAAM,KAClB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CA6QpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,6BAA6B,GACxC,aAAa,MAAM,KAClB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAsTpC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAU,aAAa,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAkO7F,CAAC"}
@@ -1,5 +1,5 @@
1
- import { existsSync } from 'fs';
2
- import path from 'path';
1
+ import { existsSync } from 'node:fs';
2
+ import path from 'node:path';
3
3
  import { Either } from 'effect';
4
4
  import { execa } from 'execa';
5
5
  import fs from 'fs-extra';
@@ -32,7 +32,7 @@ export const createSvelteProject = async (config) => {
32
32
  stdio: 'inherit',
33
33
  });
34
34
  // Now add the necessary functionality using Ultracite for linting and toolchain setup
35
- // Ultracite setup: Biome linter, Zed editor, OpenCode agent, Bun PM, Svelte framework, Lefthook integration
35
+ // Ultracite setup: Biome linter, Zed editor, OpenCode agent, Bun PM, Svelte framework
36
36
  await execa('bun', [
37
37
  'x',
38
38
  'ultracite',
@@ -47,15 +47,13 @@ export const createSvelteProject = async (config) => {
47
47
  'bun',
48
48
  '--frameworks',
49
49
  'svelte',
50
- '--integrations',
51
- 'lefthook',
52
50
  '--quiet',
53
51
  ], {
54
52
  cwd: config.projectName, // Run in the project directory
55
53
  stdio: 'inherit',
56
54
  });
57
55
  // Add Vitest for testing (automatically select both unit and component testing)
58
- const vitestResult = await execa('npx', ['sv', 'add', 'vitest', '--install', 'bun'], {
56
+ const _vitestResult = await execa('npx', ['sv', 'add', 'vitest', '--install', 'bun'], {
59
57
  cwd: config.projectName, // Run in the project directory
60
58
  input: '\n\n', // Provide answers to interactive prompts (press Enter for defaults)
61
59
  });
@@ -403,7 +401,7 @@ export default {
403
401
  return tailwindResult;
404
402
  }
405
403
  // Create svelte.config.js with Skeleton UI integration (if not exists or update existing)
406
- const svelteConfigPath = path.join(projectName, 'svelte.config.js');
404
+ const _svelteConfigPath = path.join(projectName, 'svelte.config.js');
407
405
  const svelteConfigContent = `import { vitePreprocess } from '@sveltejs/kit/vite';
408
406
  import adapter from '@sveltejs/adapter-auto';
409
407
  import { resolve } from 'path';
@@ -500,43 +498,35 @@ export default config;
500
498
  }
501
499
  };
502
500
  /**
503
- * Creates internationalization (i18n) configuration files and setup
501
+ * Creates internationalization (i18n) configuration files using Paraglide JS
504
502
  * @param projectName Name of the project to configure
505
503
  */
506
504
  export const createI18nConfig = async (projectName) => {
507
505
  console.log(`Creating internationalization configuration for: ${projectName}`);
508
506
  try {
509
- // Create i18n configuration file
510
- const i18nConfigContent = `import { browser, locales, negotiate } from '$app/env';
511
- import { init, register } from 'svelte-i18n';
512
-
513
- // Initialize internationalization
514
- export const setupI18n = () => {
515
- // Register the locales directory
516
- register('en', () => import('./locales/en.json'));
517
- register('es', () => import('./locales/es.json'));
518
- register('de', () => import('./locales/de.json'));
519
- register('fr', () => import('./locales/fr.json'));
520
-
521
- // Initialize the i18n system
522
- init({
523
- fallbackLocale: 'en',
524
- initialLocale: browser ? undefined : 'en',
525
- warnOnMissing: true
526
- });
527
- };
528
-
529
- // Export common i18n functions
530
- export { default as t } from 'svelte-i18n';
507
+ // Create inlang project settings for Paraglide
508
+ const inlangSettingsContent = `{
509
+ "$schema": "https://inlang.com/schema/project-settings",
510
+ "modules": [
511
+ "https://cdn.jsdelivr.net/npm/@inlang/plugin-message-format@latest/dist/index.js",
512
+ "https://cdn.jsdelivr.net/npm/@inlang/plugin-m-function-matcher@latest/dist/index.js"
513
+ ],
514
+ "plugin.inlang.messageFormat": {
515
+ "pathPattern": "./messages/{languageTag}.json"
516
+ },
517
+ "sourceLanguageTag": "en",
518
+ "languageTags": ["en", "de", "fr", "es"]
519
+ }
531
520
  `;
532
- // Write i18n configuration file
533
- const i18nConfigResult = await writeFile(projectName, i18nConfigContent, 'src/lib/i18n/config.js');
534
- if (Either.isLeft(i18nConfigResult)) {
535
- return i18nConfigResult;
521
+ // Write inlang project settings
522
+ const inlangResult = await writeFile(projectName, inlangSettingsContent, 'project.inlang/settings.json');
523
+ if (Either.isLeft(inlangResult)) {
524
+ return inlangResult;
536
525
  }
537
- // Create directory for locale files if it doesn't exist
538
- const localesDirPath = path.join(projectName, 'src', 'lib', 'locales');
539
- await fs.ensureDir(localesDirPath);
526
+ // Create messages directory and locale files
527
+ // Paraglide uses messages/ directory by convention
528
+ const messagesDirPath = path.join(projectName, 'messages');
529
+ await fs.ensureDir(messagesDirPath);
540
530
  // Create default English locale file
541
531
  const enLocaleContent = `{
542
532
  "welcome": "Welcome",
@@ -553,7 +543,7 @@ export { default as t } from 'svelte-i18n';
553
543
  "success_message": "Operation completed successfully"
554
544
  }`;
555
545
  // Write English locale file
556
- const enLocaleResult = await writeFile(projectName, enLocaleContent, 'src/lib/locales/en.json');
546
+ const enLocaleResult = await writeFile(projectName, enLocaleContent, 'messages/en.json');
557
547
  if (Either.isLeft(enLocaleResult)) {
558
548
  return enLocaleResult;
559
549
  }
@@ -573,7 +563,7 @@ export { default as t } from 'svelte-i18n';
573
563
  "success_message": "Vorgang erfolgreich abgeschlossen"
574
564
  }`;
575
565
  // Write German locale file
576
- const deLocaleResult = await writeFile(projectName, deLocaleContent, 'src/lib/locales/de.json');
566
+ const deLocaleResult = await writeFile(projectName, deLocaleContent, 'messages/de.json');
577
567
  if (Either.isLeft(deLocaleResult)) {
578
568
  return deLocaleResult;
579
569
  }
@@ -593,11 +583,11 @@ export { default as t } from 'svelte-i18n';
593
583
  "success_message": "Opération terminée avec succès"
594
584
  }`;
595
585
  // Write French locale file
596
- const frLocaleResult = await writeFile(projectName, frLocaleContent, 'src/lib/locales/fr.json');
586
+ const frLocaleResult = await writeFile(projectName, frLocaleContent, 'messages/fr.json');
597
587
  if (Either.isLeft(frLocaleResult)) {
598
588
  return frLocaleResult;
599
589
  }
600
- // Create sample Spanish locale file
590
+ // Create Spanish locale file
601
591
  const esLocaleContent = `{
602
592
  "welcome": "Bienvenido",
603
593
  "hello": "Hola",
@@ -613,50 +603,74 @@ export { default as t } from 'svelte-i18n';
613
603
  "success_message": "Operacion completada exitosamente"
614
604
  }`;
615
605
  // Write Spanish locale file
616
- const esLocaleResult = await writeFile(projectName, esLocaleContent, 'src/lib/locales/es.json');
606
+ const esLocaleResult = await writeFile(projectName, esLocaleContent, 'messages/es.json');
617
607
  if (Either.isLeft(esLocaleResult)) {
618
608
  return esLocaleResult;
619
609
  }
620
- // Create a sample i18n-enabled component
621
- const sampleI18nComponentContent = `<script>
622
- import { t } from '$lib/i18n/config.js';
623
- import { onMount } from 'svelte';
624
- import { locale } from 'svelte-i18n';
625
-
626
- // Set default language
627
- onMount(async () => {
628
- locale.set('en');
610
+ // Create Paraglide Vite plugin config snippet for vite.config.ts
611
+ const viteConfigUpdate = `// Add this to your vite.config.ts plugins array:
612
+ // import { paraglideVitePlugin } from '@inlang/paraglide-js';
613
+ //
614
+ // paraglideVitePlugin({
615
+ // project: './project.inlang',
616
+ // outdir: './src/lib/paraglide',
617
+ // strategy: ['url', 'cookie', 'baseLocale'],
618
+ // }),
619
+ `;
620
+ const viteConfigResult = await writeFile(projectName, viteConfigUpdate, 'src/lib/i18n/README.md');
621
+ if (Either.isLeft(viteConfigResult)) {
622
+ return viteConfigResult;
623
+ }
624
+ // Create hooks.server.ts with Paraglide middleware
625
+ const hooksServerContent = `import type { Handle } from '@sveltejs/kit';
626
+ import { paraglideMiddleware } from '$lib/paraglide/server';
627
+ import { getTextDirection } from '$lib/paraglide/runtime';
628
+
629
+ export const handle: Handle = ({ event, resolve }) =>
630
+ paraglideMiddleware(event.request, ({ request: localizedRequest, locale }) => {
631
+ event.request = localizedRequest;
632
+ return resolve(event, {
633
+ transformPageChunk: ({ html }) => {
634
+ return html.replace('%lang%', locale).replace('%dir%', getTextDirection(locale));
635
+ },
636
+ });
629
637
  });
630
- </script>
638
+ `;
639
+ const hooksServerResult = await writeFile(projectName, hooksServerContent, 'src/hooks.server.ts');
640
+ if (Either.isLeft(hooksServerResult)) {
641
+ return hooksServerResult;
642
+ }
643
+ // Create hooks.ts with reroute
644
+ const hooksContent = `import type { Reroute } from '@sveltejs/kit';
645
+ import { deLocalizeUrl } from '$lib/paraglide/runtime';
631
646
 
632
- <div>
633
- <h1>{t('app_title')}</h1>
634
- <p>{t('welcome')}</p>
635
- <button on:click={() => locale.set('es')}>Spanish</button>
636
- <button on:click={() => locale.set('en')}>English</button>
637
- </div>
647
+ export const reroute: Reroute = (request) => {
648
+ return deLocalizeUrl(request.url).pathname;
649
+ };
638
650
  `;
639
- // Write sample component file
640
- const componentResult = await writeFile(projectName, sampleI18nComponentContent, 'src/lib/components/I18nExample.svelte');
641
- if (Either.isLeft(componentResult)) {
642
- return componentResult;
651
+ const hooksResult = await writeFile(projectName, hooksContent, 'src/hooks.ts');
652
+ if (Either.isLeft(hooksResult)) {
653
+ return hooksResult;
643
654
  }
644
- // Update app.html to include locale attribute
655
+ // Update app.html to include %lang% and %dir% placeholders
645
656
  const appHtmlPath = path.join(projectName, 'src', 'app.html');
646
657
  if (await fs.pathExists(appHtmlPath)) {
647
658
  const existingAppHtml = await fs.readFile(appHtmlPath, 'utf8');
648
659
  let updatedAppHtml = existingAppHtml;
649
- // Add lang attribute to html tag if not present
660
+ // Replace lang attribute with Paraglide placeholder
650
661
  if (existingAppHtml.includes('<html')) {
651
- // Check if lang attribute already exists to avoid duplicates
652
- if (!existingAppHtml.match(/<html[^>]*lang\b/i)) {
653
- updatedAppHtml = existingAppHtml.replace(/<html([^>]*)>/i, '<html$1 lang="en"');
654
- }
662
+ updatedAppHtml = existingAppHtml
663
+ .replace(/<html([^>]*)lang="[^"]*"/i, '<html$1lang="%lang%"')
664
+ .replace(/<html([^>]*)>/i, (match) => {
665
+ if (!match.includes('dir=')) {
666
+ return match.replace('>', ' dir="%dir%">');
667
+ }
668
+ return match;
669
+ });
655
670
  }
656
671
  else {
657
- // If html tag doesn't exist, add proper structure with lang attribute
658
672
  updatedAppHtml = `<!DOCTYPE html>
659
- <html lang="en">
673
+ <html lang="%lang%" dir="%dir%">
660
674
  <head>
661
675
  <meta charset="utf-8" />
662
676
  <link rel="icon" href="%sveltekit.assets%/favicon.png" />
@@ -670,7 +684,25 @@ export { default as t } from 'svelte-i18n';
670
684
  }
671
685
  await fs.writeFile(appHtmlPath, updatedAppHtml);
672
686
  }
673
- // Update package.json to add i18n scripts if they don't exist
687
+ // Create a sample Paraglide-powered component
688
+ const sampleI18nComponentContent = `<script>
689
+ import * as m from '$lib/paraglide/messages.js';
690
+ import { getLocale, setLocale } from '$lib/paraglide/runtime.js';
691
+ </script>
692
+
693
+ <div>
694
+ <h1>{m.app_title()}</h1>
695
+ <p>{m.welcome()}</p>
696
+ <button onclick={() => setLocale('es')}>Spanish</button>
697
+ <button onclick={() => setLocale('en')}>English</button>
698
+ </div>
699
+ `;
700
+ // Write sample component file
701
+ const componentResult = await writeFile(projectName, sampleI18nComponentContent, 'src/lib/components/I18nExample.svelte');
702
+ if (Either.isLeft(componentResult)) {
703
+ return componentResult;
704
+ }
705
+ // Update package.json to add Paraglide scripts if they don't exist
674
706
  const packageJsonPath = path.join(projectName, 'package.json');
675
707
  if (await fs.pathExists(packageJsonPath)) {
676
708
  const packageJsonContent = await fs.readFile(packageJsonPath, 'utf8');
@@ -678,16 +710,13 @@ export { default as t } from 'svelte-i18n';
678
710
  try {
679
711
  packageJson = JSON.parse(packageJsonContent);
680
712
  }
681
- catch (e) {
682
- // If package.json is invalid, skip updating it
713
+ catch {
683
714
  console.warn('Could not parse package.json, skipping i18n scripts update');
684
715
  }
685
- if (packageJson && packageJson.scripts) {
686
- // Add i18n-related scripts
716
+ if (packageJson?.scripts) {
687
717
  packageJson.scripts = {
688
718
  ...packageJson.scripts,
689
- 'i18n:extract': 'i18n-extract report src/**/*.svelte src/**/*.js src/**/*.ts',
690
- 'i18n:check': 'i18n-extract report --fail-on-translation-keys-missing-from-source src/**/*.svelte src/**/*.js src/**/*.ts',
719
+ 'paraglide:compile': 'paraglide-js compile --project ./project.inlang --outdir ./src/lib/paraglide',
691
720
  };
692
721
  await fs.writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2));
693
722
  }
@@ -1185,10 +1214,10 @@ Session.vim
1185
1214
  *.elc
1186
1215
  auto-save-list
1187
1216
  tramp
1188
- .\.emacs\.desktop
1189
- .\.emacs\.desktop\.lock
1190
- .\.project\.desktop
1191
- .\.project\.desktop\.lock
1217
+ ..emacs.desktop
1218
+ ..emacs.desktop.lock
1219
+ ..project.desktop
1220
+ ..project.desktop.lock
1192
1221
 
1193
1222
  # Visual Studio
1194
1223
  *.user