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 +14 -7
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +11 -8
- package/dist/cli.js.map +1 -1
- package/dist/deps-manager.d.ts.map +1 -1
- package/dist/deps-manager.js +5 -4
- package/dist/deps-manager.js.map +1 -1
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +4 -10
- package/dist/engine.js.map +1 -1
- package/dist/process-fs-handler.d.ts.map +1 -1
- package/dist/process-fs-handler.js +110 -81
- package/dist/process-fs-handler.js.map +1 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +15 -12
- package/AGENTS-for-pwa.md +0 -211
- package/AGENTS.md +0 -164
- package/biome.json +0 -61
- package/bun.lock +0 -344
- package/lefthook.yml +0 -12
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
|
|
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
|
-
-
|
|
149
|
-
- Pre-configured English and Spanish
|
|
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":";
|
|
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
|
|
45
|
-
useSkeleton: options.skeleton
|
|
46
|
-
useI18n: options.i18n
|
|
47
|
-
usePlaywright: options.playwright
|
|
48
|
-
nonInteractive: options.yes
|
|
49
|
-
git: options.git
|
|
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
|
-
|
|
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,
|
|
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;
|
|
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"}
|
package/dist/deps-manager.js
CHANGED
|
@@ -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: ['
|
|
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(
|
|
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(
|
|
106
|
+
console.log('Installing dev dependencies:', devDeps);
|
|
106
107
|
await execa('bun', ['add', '-d', ...devDeps], {
|
|
107
108
|
cwd: projectDir,
|
|
108
109
|
stdio: 'inherit',
|
package/dist/deps-manager.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deps-manager.js","sourceRoot":"","sources":["../src/deps-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAG9B,gFAAgF;AAChF,MAAM,iBAAiB,GAAG;IACxB,qBAAqB,EAAE,sBAAsB;IAC7C,gBAAgB,EAAE,eAAe;IACjC,QAAQ,EAAE,iCAAiC;IAC3C,kBAAkB,EAAE,4BAA4B;IAChD,6BAA6B,EAAE,kCAAkC;CAClE,CAAC;AAEF,0CAA0C;AAC1C,MAAM,wBAAwB,GAAgC;IAC5D,KAAK,EAAE,CAAC,OAAO,CAAC;IAChB,QAAQ,EAAE,CAAC,wBAAwB,EAAE,+BAA+B,CAAC;IACrE,IAAI,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"deps-manager.js","sourceRoot":"","sources":["../src/deps-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/engine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"
|
|
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
|
package/dist/engine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAC9B,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EACL,6BAA6B,EAC7B,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,+BAA+B,EAC/B,wBAAwB,GACzB,MAAM,yBAAyB,CAAC;
|
|
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,
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
510
|
-
const
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
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
|
|
533
|
-
const
|
|
534
|
-
if (Either.isLeft(
|
|
535
|
-
return
|
|
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
|
|
538
|
-
|
|
539
|
-
|
|
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, '
|
|
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, '
|
|
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, '
|
|
586
|
+
const frLocaleResult = await writeFile(projectName, frLocaleContent, 'messages/fr.json');
|
|
597
587
|
if (Either.isLeft(frLocaleResult)) {
|
|
598
588
|
return frLocaleResult;
|
|
599
589
|
}
|
|
600
|
-
// Create
|
|
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, '
|
|
606
|
+
const esLocaleResult = await writeFile(projectName, esLocaleContent, 'messages/es.json');
|
|
617
607
|
if (Either.isLeft(esLocaleResult)) {
|
|
618
608
|
return esLocaleResult;
|
|
619
609
|
}
|
|
620
|
-
// Create
|
|
621
|
-
const
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
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
|
-
|
|
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
|
-
|
|
633
|
-
|
|
634
|
-
|
|
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
|
-
|
|
640
|
-
|
|
641
|
-
|
|
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
|
|
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
|
-
//
|
|
660
|
+
// Replace lang attribute with Paraglide placeholder
|
|
650
661
|
if (existingAppHtml.includes('<html')) {
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
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="
|
|
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
|
-
//
|
|
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
|
|
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
|
|
686
|
-
// Add i18n-related scripts
|
|
716
|
+
if (packageJson?.scripts) {
|
|
687
717
|
packageJson.scripts = {
|
|
688
718
|
...packageJson.scripts,
|
|
689
|
-
'
|
|
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
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1217
|
+
..emacs.desktop
|
|
1218
|
+
..emacs.desktop.lock
|
|
1219
|
+
..project.desktop
|
|
1220
|
+
..project.desktop.lock
|
|
1192
1221
|
|
|
1193
1222
|
# Visual Studio
|
|
1194
1223
|
*.user
|