{"_id":"@aether-official/cli","_rev":"9-4c5a1873f016b592033a423e6dce253b","name":"@aether-official/cli","dist-tags":{"latest":"1.0.8"},"versions":{"1.0.0":{"name":"@aether-official/cli","version":"1.0.0","_id":"@aether-official/cli@1.0.0","maintainers":[{"name":"aether-official","email":"hello@aethercms.com"}],"bin":{"aether-sdk":"dist/index.js"},"dist":{"shasum":"9945dbe716ada86b72ba0bbc8e253bdc85294454","tarball":"https://registry.npmjs.org/@aether-official/cli/-/cli-1.0.0.tgz","fileCount":5,"integrity":"sha512-QHvtXx3RUPlIZZJ6jPbigeh11O4qjY8nsc+cSZGoABVltmjovf/S5zhzmJQRXqzUiAmDKAtFZF654XJI6QtGPQ==","signatures":[{"sig":"MEUCIQCCNc9/E8bHL8W5M6lRRfiXz6y8rXvNNjlFvnjAt6dJwwIgO6e4r0oUV+uIJuQc3SONLM+BsEi+vti6wlXUrpaybME=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":39003},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"00db473e171d40fa3fb5d0869cd58efc26791780","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"aether-official","email":"hello@aethercms.com"},"_npmVersion":"10.9.1","description":"CLI tool for Aether Sites SDK","directories":{},"_nodeVersion":"22.20.0","dependencies":{"dotenv":"^16.6.1","commander":"^11.1.0","picocolors":"^1.1.1","change-case":"^5.4.4","@clack/prompts":"^0.7.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.3.0","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_1.0.0_1763073108756_0.8927751880242993","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@aether-official/cli","version":"1.0.1","_id":"@aether-official/cli@1.0.1","maintainers":[{"name":"aether-official","email":"hello@aethercms.com"}],"bin":{"aether-sdk":"bin/cli.js"},"dist":{"shasum":"aac36707c89d0fcca0f5e50c1adc0bb156d69319","tarball":"https://registry.npmjs.org/@aether-official/cli/-/cli-1.0.1.tgz","fileCount":6,"integrity":"sha512-TrQD6abDTrfQEWa2QRkl/Nuw+/kV4V61YzqqfmAtcDjrdaQtyd+ilv6sPwjjrnvRQcrUQ72IN99vneEBiv87AQ==","signatures":[{"sig":"MEUCIEcEhsnMx3blVqbm8WgvqIO5cU7S0hGd9KCr3wm1MV/fAiEAgpBjvc5rdjgonh+htQQv3LXqThiOlMTNSt3xqQOuveQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38987},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"00db473e171d40fa3fb5d0869cd58efc26791780","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"aether-official","email":"hello@aethercms.com"},"_npmVersion":"10.9.1","description":"CLI tool for Aether Sites SDK","directories":{},"_nodeVersion":"22.20.0","dependencies":{"dotenv":"^16.6.1","commander":"^11.1.0","picocolors":"^1.1.1","change-case":"^5.4.4","@clack/prompts":"^0.7.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.3.0","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_1.0.1_1763073380391_0.2000032685382649","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@aether-official/cli","version":"1.0.2","_id":"@aether-official/cli@1.0.2","maintainers":[{"name":"aether-official","email":"hello@aethercms.com"}],"bin":{"aether-sdk":"bin/cli.js"},"dist":{"shasum":"49a7249b3f4f7da64d18a50fb63c8bd1c0f9a6f7","tarball":"https://registry.npmjs.org/@aether-official/cli/-/cli-1.0.2.tgz","fileCount":6,"integrity":"sha512-jqvJ+TTjrAo4Qe0DnG+NXykdJwwvlxzzoy4rYumtYW6C65/QnrvwLTCQC6WC9zljpccc/oNpbBTFhWxVW8mlMw==","signatures":[{"sig":"MEQCIFB4Eq1Vxly5raUyCXpL9AkR7IYJzgBQs4q9lbm5AaVNAiBqGY2y9omulRtcxXqO6P1Bke5MSnA51IOoo8U5rRqhMg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38979},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"00db473e171d40fa3fb5d0869cd58efc26791780","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"aether-official","email":"hello@aethercms.com"},"_npmVersion":"10.9.1","description":"CLI tool for Aether Sites SDK","directories":{},"_nodeVersion":"22.20.0","dependencies":{"dotenv":"^16.6.1","commander":"^11.1.0","picocolors":"^1.1.1","change-case":"^5.4.4","@clack/prompts":"^0.7.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.3.0","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_1.0.2_1763073681273_0.4243158253101895","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@aether-official/cli","version":"1.0.3","_id":"@aether-official/cli@1.0.3","maintainers":[{"name":"aether-official","email":"hello@aethercms.com"}],"bin":{"aether-sdk":"bin/cli.js"},"dist":{"shasum":"41e78ba60baa7abc24b26ac9d8309170fc9d8df6","tarball":"https://registry.npmjs.org/@aether-official/cli/-/cli-1.0.3.tgz","fileCount":6,"integrity":"sha512-TdKRKTKw+bJKxf29YdBEV03nJ1mNbnCs+86ZophhcOKP7H3vsStUkbw/K9Dkg0bzqnx8w7XkKd9lz1WuCw7uVw==","signatures":[{"sig":"MEUCIA1wyhj9FEbFdQ7J46kyhtAx7knvm+pLIbVN919uMqfvAiEA1Sp+KxPKZRLGDODcIcRqT07ae/GyoAjnWB2b4cXOU/I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38987},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"00db473e171d40fa3fb5d0869cd58efc26791780","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"aether-official","email":"hello@aethercms.com"},"_npmVersion":"10.9.1","description":"CLI tool for Aether Sites SDK","directories":{},"_nodeVersion":"22.20.0","dependencies":{"dotenv":"^16.6.1","commander":"^11.1.0","picocolors":"^1.1.1","change-case":"^5.4.4","@clack/prompts":"^0.7.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.3.0","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_1.0.3_1763073854202_0.28799831324762737","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@aether-official/cli","version":"1.0.4","_id":"@aether-official/cli@1.0.4","maintainers":[{"name":"aether-official","email":"hello@aethercms.com"}],"bin":{"aether-sdk":"bin/cli.js"},"dist":{"shasum":"a307c44fdbf25df7eefb1b18febb75c66d437953","tarball":"https://registry.npmjs.org/@aether-official/cli/-/cli-1.0.4.tgz","fileCount":6,"integrity":"sha512-TjaXrdz6jRuSzOrhVEPfGNGxQIWm5QkVvBDNn96nhsO0FNGpbcf0l87NNdJKs6nP/Nc3w7yGUNC3trrScV9uNQ==","signatures":[{"sig":"MEQCICq494I/AKtFQQNpyNJdiKlj5KGOODXh8E7Ytow6yr/HAiBD7mKJvzFperpe2JW9ag3CRaXYiBSRx8ApNPJUXuzGoQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":38999},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"00db473e171d40fa3fb5d0869cd58efc26791780","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"aether-official","email":"hello@aethercms.com"},"_npmVersion":"10.9.1","description":"CLI tool for Aether Sites SDK","directories":{},"_nodeVersion":"22.20.0","dependencies":{"dotenv":"^16.6.1","commander":"^11.1.0","picocolors":"^1.1.1","change-case":"^5.4.4","@clack/prompts":"^0.7.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.3.0","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_1.0.4_1763074097940_0.6747992938275997","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@aether-official/cli","version":"1.0.5","_id":"@aether-official/cli@1.0.5","maintainers":[{"name":"aether-official","email":"hello@aethercms.com"}],"bin":{"aether-sdk":"bin/cli.js"},"dist":{"shasum":"9adbd4ec3bcfa8821e59e2b558f6ad536120665f","tarball":"https://registry.npmjs.org/@aether-official/cli/-/cli-1.0.5.tgz","fileCount":6,"integrity":"sha512-h/rI6X64QWDvlKM/fJWOyNm5/AGAjevFTb+i+/RvHPU+VlB7xNKs9jXgIlA0O2emYjI9ZF5rwoRjrRfwfRKlQA==","signatures":[{"sig":"MEYCIQDGOdvKnKyKLUeTUecWT6B4wXSpog3WMglGTF1qHTM7hwIhALPYDylkLMTQ1Dhiax1oo7oV+ovgeJW7IJ07JMw+OIRj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40241},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"00db473e171d40fa3fb5d0869cd58efc26791780","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"aether-official","email":"hello@aethercms.com"},"_npmVersion":"10.9.1","description":"CLI tool for Aether Sites SDK","directories":{},"_nodeVersion":"22.20.0","dependencies":{"dotenv":"^16.6.1","commander":"^11.1.0","picocolors":"^1.1.1","change-case":"^5.4.4","@clack/prompts":"^0.7.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.3.0","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_1.0.5_1763074402590_0.23868650742249597","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@aether-official/cli","version":"1.0.6","_id":"@aether-official/cli@1.0.6","maintainers":[{"name":"aether-official","email":"hello@aethercms.com"}],"bin":{"aether-sdk":"bin/cli.js"},"dist":{"shasum":"86cd3ef58fe83d81e31b283dcdad0c89dedbe363","tarball":"https://registry.npmjs.org/@aether-official/cli/-/cli-1.0.6.tgz","fileCount":6,"integrity":"sha512-6DG7qi4RqrOOsVO5d0B4DKFjJZEDzMutCDOAwqx4D78eskygw1DxZIHknh5DlMdkRtrgX+MEtT8FkDEC9R5Yww==","signatures":[{"sig":"MEQCICAeQXB46Lcx2UNaPKgIU5CLHpKBDLQpvUZCwS2D40E0AiActcG6YC/zxfqVABVcVkIRx5tiZlxzlO4qjULh2MFWzw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42276},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"00db473e171d40fa3fb5d0869cd58efc26791780","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"aether-official","email":"hello@aethercms.com"},"_npmVersion":"10.9.1","description":"CLI tool for Aether Sites SDK","directories":{},"_nodeVersion":"22.20.0","dependencies":{"dotenv":"^16.6.1","commander":"^11.1.0","picocolors":"^1.1.1","change-case":"^5.4.4","@clack/prompts":"^0.7.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.3.0","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_1.0.6_1763085413731_0.248950640972196","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@aether-official/cli","version":"1.0.7","_id":"@aether-official/cli@1.0.7","maintainers":[{"name":"aether-official","email":"hello@aethercms.com"}],"bin":{"aether-sdk":"bin/cli.js"},"dist":{"shasum":"6bb16cf9dd50681adce804651aa342c7ea6b103a","tarball":"https://registry.npmjs.org/@aether-official/cli/-/cli-1.0.7.tgz","fileCount":6,"integrity":"sha512-Nb0wuomod0RazVnK5SLmH/QXw4boLfH+8vWoGZqzYR6AYnlbEWSSmx8rx6uCjTBkeyEe+DgxdyNpU8EkUHgyxQ==","signatures":[{"sig":"MEUCIB6H2dGA16/+y8hZdCz3Q9o+tXtQvzpwxuMjobSZ5Y1JAiEAyD1zDC8fIHuq+PIg/VEB6nVlZ0osU4PfmEmEhdhks1k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":42304},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"00db473e171d40fa3fb5d0869cd58efc26791780","scripts":{"dev":"tsup --watch","build":"tsup","typecheck":"tsc --noEmit"},"_npmUser":{"name":"aether-official","email":"hello@aethercms.com"},"_npmVersion":"10.9.1","description":"CLI tool for Aether Sites SDK","directories":{},"_nodeVersion":"22.20.0","dependencies":{"dotenv":"^16.6.1","commander":"^11.1.0","picocolors":"^1.1.1","change-case":"^5.4.4","@clack/prompts":"^0.7.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","typescript":"^5.3.0","@types/node":"^20.10.0"},"_npmOperationalInternal":{"tmp":"tmp/cli_1.0.7_1763087289805_0.11310205967421472","host":"s3://npm-registry-packages-npm-production"}},"1.0.8":{"name":"@aether-official/cli","version":"1.0.8","description":"CLI tool for Aether Sites SDK","type":"module","bin":{"aether-sdk":"bin/cli.js"},"scripts":{"build":"npx tsup","dev":"tsup --watch","typecheck":"tsc --noEmit"},"dependencies":{"@clack/prompts":"^0.7.0","change-case":"^5.4.4","commander":"^11.1.0","dotenv":"^16.6.1","picocolors":"^1.1.1"},"devDependencies":{"@types/node":"^20.10.0","tsup":"^8.0.0","typescript":"^5.3.0"},"engines":{"node":">=18.0.0"},"_id":"@aether-official/cli@1.0.8","gitHead":"936db826721fecd3ef7c8b019f189e57cd9e4557","_nodeVersion":"22.20.0","_npmVersion":"10.9.1","dist":{"integrity":"sha512-fH1C7z1lv72vBltlt4hq6CtDdBtEjkQSK9OcSIrbZj4PVLAkkbe6GlkGB/wfhgz3dsIpOVbeOFJ+bta+/avIkg==","shasum":"2b0dd523738947ae9859c0dedbd175bad967a6ed","tarball":"https://registry.npmjs.org/@aether-official/cli/-/cli-1.0.8.tgz","fileCount":6,"unpackedSize":54805,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCID9tENY6EydqnKBZBiX3rjUEcONxF8FsaKMu5hTBFlqgAiEA5ThwE+KIUtWrZYBE07ngRD8KMsjSd0P95FshnpNamLw="}]},"_npmUser":{"name":"aether-official","email":"hello@aethercms.com"},"directories":{},"maintainers":[{"name":"aether-official","email":"hello@aethercms.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cli_1.0.8_1765293386809_0.9659896498896086"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-13T22:31:48.681Z","modified":"2025-12-09T15:16:27.154Z","1.0.0":"2025-11-13T22:31:48.951Z","1.0.1":"2025-11-13T22:36:20.585Z","1.0.2":"2025-11-13T22:41:21.546Z","1.0.3":"2025-11-13T22:44:14.404Z","1.0.4":"2025-11-13T22:48:18.126Z","1.0.5":"2025-11-13T22:53:22.777Z","1.0.6":"2025-11-14T01:56:53.914Z","1.0.7":"2025-11-14T02:28:10.043Z","1.0.8":"2025-12-09T15:16:26.946Z"},"description":"CLI tool for Aether Sites SDK","maintainers":[{"name":"aether-official","email":"hello@aethercms.com"}],"readme":"# @aether-official/cli\r\n\r\nCLI tool for Aether Sites SDK - Generate TypeScript types from your CMS schema.\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install -D @aether-official/cli\r\n```\r\n\r\n## Commands\r\n\r\n### `init`\r\n\r\nInteractive setup wizard to configure Aether SDK in your project.\r\n\r\n```bash\r\nnpx aether-sdk init\r\n```\r\n\r\nThis will:\r\n- Prompt for your Site ID, Organization ID, and API token\r\n- Test the connection to your CMS\r\n- Create a `.env` file with your configuration\r\n- Fetch your site schema\r\n- Generate TypeScript types\r\n\r\n### `sync`\r\n\r\nFetch the latest schema from your CMS.\r\n\r\n```bash\r\nnpx aether-sdk sync\r\n```\r\n\r\nThis downloads all section templates and their field definitions to `.aether/schema.json`.\r\n\r\n### `types`\r\n\r\nGenerate TypeScript types from your schema.\r\n\r\n```bash\r\nnpx aether-sdk types\r\n```\r\n\r\nThis creates `src/aether-types.d.ts` with:\r\n- Section ID constants\r\n- TypeScript interfaces for each section\r\n- Type-safe helper types\r\n\r\n## Workflow\r\n\r\n1. **Initial Setup**:\r\n   ```bash\r\n   npx aether-sdk init\r\n   ```\r\n\r\n2. **After Adding Sections in CMS**:\r\n   ```bash\r\n   npx aether-sdk sync\r\n   npx aether-sdk types\r\n   ```\r\n\r\n3. **Use in Code**:\r\n   ```typescript\r\n   import { SECTIONS, type HeroSectionData } from './aether-types';\r\n   import { getAetherSection } from '@aether-official/sites-sdk/astro';\r\n\r\n   const hero = await getAetherSection(SECTIONS.HERO);\r\n   // TypeScript knows all available fields!\r\n   ```\r\n\r\n## Configuration\r\n\r\nThe CLI reads from your `.env` file:\r\n\r\n```env\r\nAETHER_SITE_ID=your-site-id\r\nAETHER_ORGANIZATION_ID=your-org-id\r\nAETHER_API_TOKEN=your-api-token\r\nAETHER_API_URL=http://localhost:3000\r\n```\r\n\r\n## Generated Types Example\r\n\r\n```typescript\r\n// src/aether-types.d.ts (auto-generated)\r\n\r\nexport const SECTIONS = {\r\n  HERO: 'abc123' as const,\r\n  FEATURES: 'def456' as const,\r\n} as const;\r\n\r\nexport interface HeroSectionData {\r\n  /** text field */\r\n  title: string;\r\n  /** textarea field */\r\n  subtitle?: string;\r\n  /** image field */\r\n  backgroundImage: ImageField;\r\n}\r\n\r\nexport type SectionId = typeof SECTIONS[keyof typeof SECTIONS];\r\nexport type SectionData<T extends SectionId> =\r\n  T extends typeof SECTIONS.HERO ? HeroSectionData :\r\n  T extends typeof SECTIONS.FEATURES ? FeaturesSectionData :\r\n  never;\r\n```\r\n\r\n## License\r\n\r\nMIT\r\n","readmeFilename":"README.md"}