{"_id":"@aryagg/create-super-svelte-library","_rev":"9-f04eaf1bb9c0a9ab4c89050e51827daf","name":"@aryagg/create-super-svelte-library","dist-tags":{"latest":"1.0.3"},"versions":{"1.0.16":{"name":"@aryagg/create-super-svelte-library","version":"1.0.16","_id":"@aryagg/create-super-svelte-library@1.0.16","maintainers":[{"name":"aryagg","email":"aryaglekshmi@gmail.com"}],"bin":{"create-super-svelte-library":"cli.js"},"dist":{"shasum":"0e138934bb3660e7700976354f206677307a487a","tarball":"https://registry.npmjs.org/@aryagg/create-super-svelte-library/-/create-super-svelte-library-1.0.16.tgz","fileCount":19,"integrity":"sha512-OG+1Gr5zfFnz90G1JKk4IvpboL6xjErn3iGR8lDXdB8afsh0Ur4eFEPkyppJc6UU2X09vDX6z958JH/ibapr1w==","signatures":[{"sig":"MEYCIQCnbtnsiHV+v9au20p4ckSCggYsyUkg/K1+Z1FLuhoMrAIhAJHDXxhLGuggnZXf07pfrDfOkp2HW19cwZkrw8g+Lar1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135476},"type":"module","gitHead":"d26c22b379d11a71c58c8b2670afeac18de76295","private":false,"_npmUser":{"name":"aryagg","email":"aryaglekshmi@gmail.com"},"deprecated":"This package has been renamed to @aryagg/create-svelte-app-template","_npmVersion":"10.9.7","description":"A CLI scaffolding tool. One command gives you a fully wired Svelte 5 starter — auth, API layer, i18n, offline support, and 20+ components — ready to run.","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/create-super-svelte-library_1.0.16_1781078261708_0.18962014099794988","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@aryagg/create-super-svelte-library","version":"1.0.0","_id":"@aryagg/create-super-svelte-library@1.0.0","maintainers":[{"name":"aryagg","email":"aryaglekshmi@gmail.com"}],"bin":{"create-super-svelte-library":"cli.js"},"dist":{"shasum":"ef3d7343ed473b0aaa36707caf41d1c2fa1da358","tarball":"https://registry.npmjs.org/@aryagg/create-super-svelte-library/-/create-super-svelte-library-1.0.0.tgz","fileCount":19,"integrity":"sha512-2cTBqI8qR0y1IvEGV7ZA42Q829E6oHq1AFdoCaIPtCag3wvam2Sc3saf0HVnrOlnBiHvMjksb2U2FdLYKHugPQ==","signatures":[{"sig":"MEYCIQCJ5k/s7CI3QGK14EJO3j8ohop9azan/zpWTu9L9cvTLwIhALcUKd/f9w3tdSnsUMQT+nwUbHhseHXUegrSMo7E/5TX","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135471},"type":"module","gitHead":"29defe4a810b950aac26561eaca4d02de46fe237","private":false,"_npmUser":{"name":"aryagg","email":"aryaglekshmi@gmail.com"},"_npmVersion":"10.9.7","description":"A CLI scaffolding tool. One command gives you a fully wired Svelte 5 starter — auth, API layer, i18n, offline support, and 20+ components — ready to run.","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/create-super-svelte-library_1.0.0_1781080043821_0.9827257087048504","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@aryagg/create-super-svelte-library","version":"1.0.1","_id":"@aryagg/create-super-svelte-library@1.0.1","maintainers":[{"name":"aryagg","email":"aryaglekshmi@gmail.com"}],"bin":{"create-super-svelte-library":"cli.js"},"dist":{"shasum":"35631f26d782d7b81980ceaeaef18780ca18a8b4","tarball":"https://registry.npmjs.org/@aryagg/create-super-svelte-library/-/create-super-svelte-library-1.0.1.tgz","fileCount":19,"integrity":"sha512-RFuCINHa4stgMJKZvkZXfsKjTpcfGELgpXVxDsq4fgBa5Zp+sVom0IIlPwZeKfMXDksu8PoCUDTRXmVqd2sbsA==","signatures":[{"sig":"MEUCIDZrSYt/3ZqoeRaNjFN0kTloCPvHI/IYDBg+z9zXIniyAiEAr+DEd3TkFRJlTSZjdRMcEUzuPqbcBPYNk/kP/AQ/k/4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135519},"type":"module","gitHead":"9d40058a94d68aa1e37952b219378d9f53912816","private":false,"_npmUser":{"name":"aryagg","email":"aryaglekshmi@gmail.com"},"_npmVersion":"10.9.7","description":"A CLI scaffolding tool. One command gives you a fully wired Svelte 5 starter — auth, API layer, i18n, offline support, and 20+ components — ready to run.","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/create-super-svelte-library_1.0.1_1781253775533_0.5420616743568176","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@aryagg/create-super-svelte-library","version":"1.0.2","_id":"@aryagg/create-super-svelte-library@1.0.2","maintainers":[{"name":"aryagg","email":"aryaglekshmi@gmail.com"}],"homepage":"https://github.com/iron-throne/super-svelte-library-template#readme","bugs":{"url":"https://github.com/iron-throne/super-svelte-library-template/issues"},"bin":{"create-super-svelte-library":"cli.js"},"dist":{"shasum":"718c0ed6dfe76e1035e760b578bd0756ad87503a","tarball":"https://registry.npmjs.org/@aryagg/create-super-svelte-library/-/create-super-svelte-library-1.0.2.tgz","fileCount":19,"integrity":"sha512-JaCFJjK4iXD//0DaQdKzstVKToSiurPB+2jDFMY3rm8kvQu3D7E+QcpQWoXLIKk54+F9rQKdmSxNhnu3AT5YJQ==","signatures":[{"sig":"MEQCIFndXNFMa/z4mlM125mEXcbKWH7OkG87oPKBYM9OaLa5AiAzRKnJ/tWg/5/NtjueGHOCtAJ/UWjxhO04xXFiPkOlCg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135641},"type":"module","gitHead":"26ee9db71b7cd7c9ec616916fcaa624c61f14f6e","private":false,"_npmUser":{"name":"aryagg","email":"aryaglekshmi@gmail.com"},"repository":{"url":"git+https://github.com/iron-throne/super-svelte-library-template.git","type":"git"},"_npmVersion":"10.9.7","description":"A CLI scaffolding tool. One command gives you a fully wired Svelte 5 starter — auth, API layer, i18n, offline support, and 20+ components — ready to run.","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/create-super-svelte-library_1.0.2_1781254256062_0.4086309875668872","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@aryagg/create-super-svelte-library","version":"1.0.3","_id":"@aryagg/create-super-svelte-library@1.0.3","maintainers":[{"name":"aryagg","email":"aryaglekshmi@gmail.com"}],"homepage":"https://github.com/iron-throne/super-svelte-library-template#readme","bugs":{"url":"https://github.com/iron-throne/super-svelte-library-template/issues"},"bin":{"create-super-svelte-library":"cli.js"},"dist":{"shasum":"acdb7d402568e3685d2507b581c07743b6b33565","tarball":"https://registry.npmjs.org/@aryagg/create-super-svelte-library/-/create-super-svelte-library-1.0.3.tgz","fileCount":19,"integrity":"sha512-34HtYvgBld2snH1V1IYWbgMrnH1/Q7ygN3Rw11xh/iJFLV2R6qa8OQsyVLHVlRxvgEnZQTYDnEZmXJO2sJvJqQ==","signatures":[{"sig":"MEYCIQCqvdRJmbtlU6KiFyYbiNkHeOY0m7nmxGDAfKNfFQWgiAIhAKSq2OXHjN0o4kxZsiK0DXmfbhEa4Gj8mhzDai+EYZ17","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135646},"type":"module","gitHead":"9c20471d58d59625aaee1e95ff5ea8c5484d3401","private":false,"_npmUser":{"name":"aryagg","email":"aryaglekshmi@gmail.com"},"repository":{"url":"git+https://github.com/iron-throne/super-svelte-library-template.git","type":"git"},"_npmVersion":"10.9.7","description":"A CLI scaffolding tool. One command gives you a fully wired Svelte 5 starter — auth, API layer, i18n, offline support, and 20+ components — ready to run.","directories":{},"_nodeVersion":"22.22.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/create-super-svelte-library_1.0.3_1781255214613_0.2400161893302657","host":"s3://npm-registry-packages-npm-production"}}},"time":{"created":"2026-06-10T07:57:41.495Z","modified":"2026-07-22T17:23:23.131Z","1.0.16":"2026-06-10T07:57:41.867Z","1.0.0":"2026-06-10T08:27:23.982Z","1.0.1":"2026-06-12T08:42:55.683Z","1.0.2":"2026-06-12T08:50:56.199Z","1.0.3":"2026-06-12T09:06:54.805Z"},"bugs":{"url":"https://github.com/iron-throne/super-svelte-library-template/issues"},"homepage":"https://github.com/iron-throne/super-svelte-library-template#readme","repository":{"url":"git+https://github.com/iron-throne/super-svelte-library-template.git","type":"git"},"description":"A CLI scaffolding tool. One command gives you a fully wired Svelte 5 starter — auth, API layer, i18n, offline support, and 20+ components — ready to run.","maintainers":[{"email":"aryaglekshmi@gmail.com","name":"aryagg"},{"email":"kawthar.klayshe177@gmail.com","name":"kawtharklayshe"}],"readme":"# @aryagg/create-super-svelte-library\r\n\r\nA CLI scaffolding tool. One command gives you a fully wired Svelte 5 starter — auth, API layer, i18n, offline support, and 20+ components — ready to run.\r\n\r\n---\r\n\r\n## 1. Create your project\r\n\r\n```bash\r\nnpm create @aryagg/super-svelte-library my-app\r\n```\r\n\r\nThis copies the full template into `my-app/` and runs `npm install` automatically.\r\n\r\n> `npm create` prepends `create-` to the package name automatically, so `@aryagg/super-svelte-library` resolves to `@aryagg/create-super-svelte-library` (this package).\r\n\r\n---\r\n\r\n## 2. Set up environment variables\r\n\r\nThree env files are included — each loaded automatically by Vite depending on how you run the app:\r\n\r\n| File | When it loads |\r\n|---|---|\r\n| `.env` | Always (base values, any mode) |\r\n| `.env.development` | `npm run dev` only |\r\n| `.env.production` | `npm run build` / `npm run preview` only |\r\n\r\nValues in the mode-specific file override `.env`.\r\n\r\nCopy the example file as your starting point:\r\n\r\n```bash\r\ncp .env.example .env\r\n```\r\n\r\n**`.env` — shared base**\r\n```env\r\nPUBLIC_SITE_NAME=\"My App\"\r\nPUBLIC_SITE_DESCRIPTION=\"A high-performance SvelteKit application.\"\r\nPUBLIC_API_URL=\"https://api.myapp.com\"\r\nPUBLIC_CONFIG_ENV=\"local\"\r\nPUBLIC_BASE_PATH=\"/app\"\r\n```\r\n\r\n**`.env.development` — local dev overrides**\r\n```env\r\nPUBLIC_CONFIG_ENV=\"local\"\r\nPUBLIC_BASE_PATH=\"/skeleton-local\"\r\n```\r\n\r\n**`.env.production` — production build overrides**\r\n```env\r\nPUBLIC_CONFIG_ENV=\"production\"\r\nPUBLIC_BASE_PATH=\"/prod\"\r\n```\r\n\r\n**Rules:**\r\n- No spaces around `=` — `KEY=VALUE`, not `KEY = VALUE`\r\n- Variables starting with `PUBLIC_` are available in the browser and server\r\n- Variables without `PUBLIC_` are server-only\r\n- After editing any `.env` file, stop and restart `npm run dev`\r\n\r\n---\r\n\r\n## 3. Configure runtime settings\r\n\r\nOpen `static/config/config.local.json` for local dev (or `config.prod.json` for production).  \r\nThe active file is picked based on `PUBLIC_CONFIG_ENV` in your `.env`.  \r\nThese files load at runtime — no rebuild needed when you change them.\r\n\r\n```json\r\n{\r\n  \"name\": \"local\"\r\n}\r\n```\r\n\r\n---\r\n\r\n## 4. Run the app\r\n\r\n```bash\r\ncd my-app\r\nnpm run dev\r\n```\r\n\r\nApp starts at `http://localhost:5173`.\r\n\r\n**Other commands:**\r\n\r\n| Command | What it does |\r\n|---|---|\r\n| `npm run build` | Production build |\r\n| `npm run preview` | Preview production build locally |\r\n| `npm run lint` | Run ESLint |\r\n| `npm run format` | Format with Prettier |\r\n| `npm run machine-translate` | Auto-fill missing i18n translation keys |\r\n\r\n---\r\n\r\n## Project structure\r\n\r\n```\r\nmy-app/\r\n├── src/\r\n│   ├── routes/\r\n│   │   ├── (auth)/             ← login, register, forgot/reset password\r\n│   │   ├── (protected)/        ← dashboard & admin (auth-gated)\r\n│   │   ├── settings/           ← settings page\r\n│   │   └── theme/              ← theme preview page\r\n│   ├── lib/\r\n│   │   ├── api/                ← HTTP client, endpoints, services, types\r\n│   │   ├── components/         ← 20+ reusable UI components\r\n│   │   ├── stores/             ← auth, config, snackbar, loader state\r\n│   │   ├── composables/        ← Svelte actions (autoFocus, clickOutside)\r\n│   │   ├── constants/          ← route names, auth keys\r\n│   │   ├── utils/              ← helpers (string, date, number, URL, theme)\r\n│   │   ├── types/              ← shared TypeScript interfaces\r\n│   │   └── styles/             ← global CSS and Tailwind config\r\n│   ├── hooks.server.ts         ← auth, locale, API key middleware\r\n│   ├── hooks.client.ts         ← client error handling\r\n│   └── service-worker.ts       ← offline cache + request queue\r\n├── messages/\r\n│   ├── en.json                 ← English translations\r\n│   ├── es.json                 ← Spanish translations\r\n│   └── ar.json                 ← Arabic translations\r\n├── static/\r\n│   ├── config/\r\n│   │   ├── config.local.json   ← runtime config for local dev\r\n│   │   └── config.prod.json    ← runtime config for production\r\n│   ├── theme-light.css\r\n│   └── theme-dark.css\r\n├── .env                        ← your env vars (not committed)\r\n├── .env.example                ← template for env vars\r\n├── svelte.config.js\r\n├── vite.config.ts\r\n└── package.json\r\n```\r\n\r\n---\r\n\r\n## Features\r\n\r\n### Authentication\r\n- Session cookie–based login (httpOnly, secure in production)\r\n- JWT access + refresh tokens stored in cookie, auto-read by server hooks\r\n- `/login`, `/register`, `/forgot-password`, `/reset-password` pages — all styled and wired\r\n- Auth store with role-based helpers (`isAdmin`, `hasRole`, `hasPermission`)\r\n- 5-level role hierarchy: `GUEST → USER → MANAGER → ADMIN → SUPER_ADMIN`\r\n- Protected route group `(protected)/` — server layout checks auth before rendering\r\n\r\n### API layer\r\nLocated in `src/lib/api/`:\r\n\r\n| Folder | Purpose |\r\n|---|---|\r\n| `axiosClient.ts` | Configured axios instance — base URL from env, 30s timeout, auto Bearer token, 401 handler |\r\n| `http.ts` | Response normalizer + offline-queue-aware request wrapper |\r\n| `endpoints/` | URL constants with a `buildUrl()` param helper |\r\n| `services/` | Functions for every API call (login, register, me, logout, refresh, list, get, update, remove) |\r\n| `types/` | TypeScript interfaces for all payloads and responses |\r\n\r\n### Offline support\r\n- Service worker with cache-first for static assets and network-first for API/pages\r\n- IndexedDB sync queue — requests made offline are stored and replayed when network returns\r\n- Background Sync API (Chrome/Edge) with postMessage fallback (Safari/Firefox)\r\n\r\n### i18n (multi-language)\r\n- **Paraglide** (`@inlang/paraglide-sveltekit`) — compile-time-safe translations\r\n- Languages: English, Spanish, Arabic (RTL supported)\r\n- Language switcher in `Header.svelte` — persists to localStorage\r\n- To add a language: add `messages/xx.json`, register in `project.inlang/settings.json`, run `npm run machine-translate`\r\n\r\n### Theming\r\n- Light / dark CSS variable themes in `static/theme-light.css` and `theme-dark.css`\r\n- Theme loaded before first paint — no flash\r\n- Toggle in `Header.svelte` — persists preference\r\n- Theme preview page at `/theme`\r\n\r\n\r\n### Developer experience\r\n- Auto-imports via `unplugin-auto-import` — no need to import `onMount`, `goto`, `fade`, etc.\r\n- Path aliases — `$components`, `$stores`, `$utils`, `$lib`\r\n- TypeScript strict mode — unused locals/params flagged\r\n- ESLint + Prettier preconfigured\r\n- VS Code extensions and debugger configured out of the box\r\n- Version polling — layout detects new deploys and reloads automatically\r\n\r\n---\r\n\r\n## How to publish a new version\r\n\r\n```bash\r\n# 1. Make your changes inside template/ or cli.js\r\n\r\n# 2. Bump the version\r\nnpm version patch   # 1.0.1 → 1.0.2\r\nnpm version minor   # 1.0.0 → 1.1.0\r\nnpm version major   # 1.0.0 → 2.0.0\r\n\r\n# 3. Publish to npm\r\nnpm publish --access public\r\n\r\n# 4. Clear the npx cache so users get the new version immediately\r\nnpx clear-npx-cache\r\n```\r\n\r\n> On Windows, clear manually if needed:\r\n> `Remove-Item -Recurse -Force \"$env:LOCALAPPDATA\\npm-cache\\_npx\"`\r\n\r\n### What gets published\r\n\r\nOnly `cli.js` and the `template/` folder are included in the npm tarball (controlled by the `files` field in `package.json`). This README and other repo files are not published.\r\n\r\n### Repo structure\r\n\r\n```\r\nsuper-svelte-library-template/\r\n├── cli.js          ← scaffolding script (entry point)\r\n├── package.json    ← package config (name, version, bin, files)\r\n└── template/       ← everything here gets copied into the new project\r\n```\r\n","readmeFilename":"README.md"}