create-shipsite 0.1.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/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +357 -0
- package/dist/index.js.map +1 -0
- package/package.json +22 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import * as p from '@clack/prompts';
|
|
3
|
+
import { existsSync, mkdirSync, writeFileSync } from 'fs';
|
|
4
|
+
import { resolve, join } from 'path';
|
|
5
|
+
import { execSync } from 'child_process';
|
|
6
|
+
async function main() {
|
|
7
|
+
console.log();
|
|
8
|
+
p.intro('Create a new ShipSite project');
|
|
9
|
+
const projectName = (await p.text({
|
|
10
|
+
message: 'Project name',
|
|
11
|
+
placeholder: 'my-website',
|
|
12
|
+
validate: (value) => {
|
|
13
|
+
if (!value)
|
|
14
|
+
return 'Project name is required';
|
|
15
|
+
if (existsSync(resolve(value)))
|
|
16
|
+
return 'Directory already exists';
|
|
17
|
+
},
|
|
18
|
+
}));
|
|
19
|
+
if (p.isCancel(projectName)) {
|
|
20
|
+
p.cancel('Cancelled');
|
|
21
|
+
process.exit(0);
|
|
22
|
+
}
|
|
23
|
+
const primaryColor = (await p.text({
|
|
24
|
+
message: 'Primary color (hex)',
|
|
25
|
+
placeholder: '#5d5bd4',
|
|
26
|
+
initialValue: '#5d5bd4',
|
|
27
|
+
}));
|
|
28
|
+
if (p.isCancel(primaryColor)) {
|
|
29
|
+
p.cancel('Cancelled');
|
|
30
|
+
process.exit(0);
|
|
31
|
+
}
|
|
32
|
+
const localesResult = (await p.multiselect({
|
|
33
|
+
message: 'Which languages do you need?',
|
|
34
|
+
options: [
|
|
35
|
+
{ value: 'en', label: 'English', hint: 'default' },
|
|
36
|
+
{ value: 'de', label: 'German' },
|
|
37
|
+
{ value: 'fr', label: 'French' },
|
|
38
|
+
{ value: 'es', label: 'Spanish' },
|
|
39
|
+
],
|
|
40
|
+
required: true,
|
|
41
|
+
initialValues: ['en'],
|
|
42
|
+
}));
|
|
43
|
+
if (p.isCancel(localesResult)) {
|
|
44
|
+
p.cancel('Cancelled');
|
|
45
|
+
process.exit(0);
|
|
46
|
+
}
|
|
47
|
+
const locales = localesResult;
|
|
48
|
+
const defaultLocale = locales[0] || 'en';
|
|
49
|
+
const s = p.spinner();
|
|
50
|
+
s.start('Creating project...');
|
|
51
|
+
const projectDir = resolve(projectName);
|
|
52
|
+
mkdirSync(projectDir, { recursive: true });
|
|
53
|
+
// shipsite.json
|
|
54
|
+
const config = {
|
|
55
|
+
$schema: 'https://schema.shipsite.dev/v1.json',
|
|
56
|
+
name: projectName,
|
|
57
|
+
url: `https://${projectName}.com`,
|
|
58
|
+
logo: '/images/logo.svg',
|
|
59
|
+
favicon: '/favicon.png',
|
|
60
|
+
ogImage: '/images/og-image.jpg',
|
|
61
|
+
colors: {
|
|
62
|
+
primary: primaryColor,
|
|
63
|
+
accent: '#067647',
|
|
64
|
+
background: '#ffffff',
|
|
65
|
+
text: '#1f2a37',
|
|
66
|
+
},
|
|
67
|
+
fonts: { heading: 'Inter', body: 'Inter' },
|
|
68
|
+
i18n: {
|
|
69
|
+
defaultLocale,
|
|
70
|
+
locales,
|
|
71
|
+
localePrefix: 'as-needed',
|
|
72
|
+
},
|
|
73
|
+
navigation: {
|
|
74
|
+
items: [
|
|
75
|
+
{ label: 'Features', href: '/features' },
|
|
76
|
+
{ label: 'Pricing', href: '/pricing' },
|
|
77
|
+
{ label: 'Blog', href: '/blog' },
|
|
78
|
+
],
|
|
79
|
+
cta: {
|
|
80
|
+
label: 'Get Started',
|
|
81
|
+
href: `https://app.${projectName}.com/signup`,
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
footer: {
|
|
85
|
+
columns: [
|
|
86
|
+
{
|
|
87
|
+
title: 'Product',
|
|
88
|
+
links: [
|
|
89
|
+
{ label: 'Features', href: '/features' },
|
|
90
|
+
{ label: 'Pricing', href: '/pricing' },
|
|
91
|
+
],
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
title: 'Legal',
|
|
95
|
+
links: [
|
|
96
|
+
{ label: 'Privacy Policy', href: '/privacy' },
|
|
97
|
+
{ label: 'Terms of Service', href: '/terms' },
|
|
98
|
+
],
|
|
99
|
+
},
|
|
100
|
+
],
|
|
101
|
+
copyright: `\u00A9 ${new Date().getFullYear()} ${projectName}`,
|
|
102
|
+
},
|
|
103
|
+
pages: [
|
|
104
|
+
{ slug: '', type: 'landing', content: 'landing', locales },
|
|
105
|
+
{
|
|
106
|
+
slug: 'pricing',
|
|
107
|
+
type: 'page',
|
|
108
|
+
content: 'pricing',
|
|
109
|
+
locales: [defaultLocale],
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
slug: 'blog',
|
|
113
|
+
type: 'blog-index',
|
|
114
|
+
content: 'blog',
|
|
115
|
+
locales: [defaultLocale],
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
slug: 'blog/getting-started',
|
|
119
|
+
type: 'blog-article',
|
|
120
|
+
content: 'blog/getting-started',
|
|
121
|
+
locales: [defaultLocale],
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
slug: 'privacy',
|
|
125
|
+
type: 'legal',
|
|
126
|
+
content: 'privacy',
|
|
127
|
+
locales: [defaultLocale],
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
slug: 'terms',
|
|
131
|
+
type: 'legal',
|
|
132
|
+
content: 'terms',
|
|
133
|
+
locales: [defaultLocale],
|
|
134
|
+
},
|
|
135
|
+
],
|
|
136
|
+
blog: {
|
|
137
|
+
authors: {
|
|
138
|
+
default: {
|
|
139
|
+
name: 'Team',
|
|
140
|
+
role: 'Author',
|
|
141
|
+
image: '/images/team.avif',
|
|
142
|
+
},
|
|
143
|
+
},
|
|
144
|
+
},
|
|
145
|
+
};
|
|
146
|
+
writeFileSync(join(projectDir, 'shipsite.json'), JSON.stringify(config, null, 2) + '\n');
|
|
147
|
+
// Content directories and files
|
|
148
|
+
const dirs = [
|
|
149
|
+
'landing',
|
|
150
|
+
'pricing',
|
|
151
|
+
'blog',
|
|
152
|
+
'blog/getting-started',
|
|
153
|
+
'privacy',
|
|
154
|
+
'terms',
|
|
155
|
+
];
|
|
156
|
+
for (const dir of dirs) {
|
|
157
|
+
mkdirSync(join(projectDir, 'content', dir), { recursive: true });
|
|
158
|
+
}
|
|
159
|
+
const today = new Date().toISOString().split('T')[0];
|
|
160
|
+
// Landing page
|
|
161
|
+
writeFileSync(join(projectDir, 'content', 'landing', 'en.mdx'), `---
|
|
162
|
+
title: "${projectName} \u2014 Build Something Amazing"
|
|
163
|
+
description: "The best way to build your next great product."
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
<Hero
|
|
167
|
+
title="Build Something Amazing"
|
|
168
|
+
description="The fastest way to launch your product. Simple, powerful, and ready to go."
|
|
169
|
+
primaryCta={{ label: "Get Started Free", href: "https://app.${projectName}.com/signup" }}
|
|
170
|
+
secondaryCta={{ label: "Learn More", href: "/features" }}
|
|
171
|
+
/>
|
|
172
|
+
|
|
173
|
+
<Features title="Everything You Need" columns={3}>
|
|
174
|
+
<Feature title="Fast Setup" description="Get started in minutes, not days. Our intuitive setup process gets you up and running quickly." />
|
|
175
|
+
<Feature title="Powerful Features" description="All the tools you need to succeed, built right in. No plugins or extensions needed." />
|
|
176
|
+
<Feature title="Great Support" description="Our team is here to help you every step of the way with world-class support." />
|
|
177
|
+
</Features>
|
|
178
|
+
|
|
179
|
+
<BannerCTA
|
|
180
|
+
title="Ready to get started?"
|
|
181
|
+
buttonText="Start Free Trial"
|
|
182
|
+
buttonHref="https://app.${projectName}.com/signup"
|
|
183
|
+
subtext="No credit card required. Free plan available."
|
|
184
|
+
/>
|
|
185
|
+
|
|
186
|
+
<FAQ title="Frequently Asked Questions">
|
|
187
|
+
<FAQItem question="Is there a free plan?">
|
|
188
|
+
Yes! We offer a generous free plan that includes all core features.
|
|
189
|
+
</FAQItem>
|
|
190
|
+
<FAQItem question="Can I cancel anytime?">
|
|
191
|
+
Absolutely. No long-term contracts or cancellation fees.
|
|
192
|
+
</FAQItem>
|
|
193
|
+
<FAQItem question="Do you offer support?">
|
|
194
|
+
Yes, we provide email support on all plans and priority support on paid plans.
|
|
195
|
+
</FAQItem>
|
|
196
|
+
</FAQ>
|
|
197
|
+
`);
|
|
198
|
+
// Pricing
|
|
199
|
+
writeFileSync(join(projectDir, 'content', 'pricing', 'en.mdx'), `---
|
|
200
|
+
title: "Pricing \u2014 ${projectName}"
|
|
201
|
+
description: "Simple, transparent pricing for teams of all sizes."
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
<PricingSection title="Simple Pricing" description="Choose the plan that works for you.">
|
|
205
|
+
<PricingPlan name="Free" price="$0" description="For individuals getting started" features={["Up to 5 users", "Core features", "Community support"]} cta={{ label: "Get Started", href: "https://app.${projectName}.com/signup" }} />
|
|
206
|
+
<PricingPlan name="Pro" price="$29/mo" yearlyPrice="$24/mo" description="For growing teams" features={["Unlimited users", "All features", "Priority support", "Custom integrations"]} cta={{ label: "Start Free Trial", href: "https://app.${projectName}.com/signup?plan=pro" }} popular={true} />
|
|
207
|
+
<PricingPlan name="Enterprise" price="Custom" description="For large organizations" features={["Everything in Pro", "Dedicated support", "SLA", "Custom contracts"]} cta={{ label: "Contact Sales", href: "mailto:sales@${projectName}.com" }} />
|
|
208
|
+
</PricingSection>
|
|
209
|
+
`);
|
|
210
|
+
// Blog index
|
|
211
|
+
writeFileSync(join(projectDir, 'content', 'blog', 'en.mdx'), `---
|
|
212
|
+
title: "Blog \u2014 ${projectName}"
|
|
213
|
+
description: "Latest news, updates, and insights."
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
<BlogIndex title="Our Blog" description="Latest news, updates, and insights from our team." />
|
|
217
|
+
`);
|
|
218
|
+
// Blog post
|
|
219
|
+
writeFileSync(join(projectDir, 'content', 'blog', 'getting-started', 'en.mdx'), `---
|
|
220
|
+
title: "Getting Started with ${projectName}"
|
|
221
|
+
description: "Learn how to set up and start using ${projectName} in minutes."
|
|
222
|
+
date: "${today}"
|
|
223
|
+
readingTime: 3
|
|
224
|
+
author: default
|
|
225
|
+
---
|
|
226
|
+
|
|
227
|
+
<BlogArticle>
|
|
228
|
+
|
|
229
|
+
<BlogIntro>
|
|
230
|
+
Welcome to ${projectName}! In this guide, we'll walk you through everything you need to know to get started.
|
|
231
|
+
</BlogIntro>
|
|
232
|
+
|
|
233
|
+
## Step 1: Create Your Account
|
|
234
|
+
|
|
235
|
+
Sign up for a free account at [app.${projectName}.com](https://app.${projectName}.com/signup). No credit card required.
|
|
236
|
+
|
|
237
|
+
## Step 2: Configure Your Settings
|
|
238
|
+
|
|
239
|
+
Once you're in, head to Settings to customize your workspace. You can invite team members, set up integrations, and more.
|
|
240
|
+
|
|
241
|
+
## Step 3: Start Building
|
|
242
|
+
|
|
243
|
+
You're all set! Start exploring the features and building something great.
|
|
244
|
+
|
|
245
|
+
<StartFreeNowCTA
|
|
246
|
+
title="Ready to get started?"
|
|
247
|
+
bullets={["No credit card required", "Free plan available", "Cancel anytime"]}
|
|
248
|
+
buttonText="Start Free"
|
|
249
|
+
buttonHref="https://app.${projectName}.com/signup"
|
|
250
|
+
/>
|
|
251
|
+
|
|
252
|
+
</BlogArticle>
|
|
253
|
+
`);
|
|
254
|
+
// Privacy
|
|
255
|
+
writeFileSync(join(projectDir, 'content', 'privacy', 'en.mdx'), `---
|
|
256
|
+
title: "Privacy Policy"
|
|
257
|
+
description: "How we handle your data."
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
<LegalPage title="Privacy Policy" lastUpdated="${today}">
|
|
261
|
+
<LegalSection title="1. Data Collection">We collect only the data necessary to provide our services.</LegalSection>
|
|
262
|
+
<LegalSection title="2. Data Usage">Your data is used solely to deliver and improve our services.</LegalSection>
|
|
263
|
+
<LegalSection title="3. Contact">For privacy-related inquiries, contact us at privacy@${projectName}.com.</LegalSection>
|
|
264
|
+
</LegalPage>
|
|
265
|
+
`);
|
|
266
|
+
// Terms
|
|
267
|
+
writeFileSync(join(projectDir, 'content', 'terms', 'en.mdx'), `---
|
|
268
|
+
title: "Terms of Service"
|
|
269
|
+
description: "Terms and conditions for using our service."
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
<LegalPage title="Terms of Service" lastUpdated="${today}">
|
|
273
|
+
<LegalSection title="1. Acceptance of Terms">By using our service, you agree to these terms.</LegalSection>
|
|
274
|
+
<LegalSection title="2. Use of Service">You may use our service for lawful purposes only.</LegalSection>
|
|
275
|
+
<LegalSection title="3. Termination">We reserve the right to terminate accounts that violate these terms.</LegalSection>
|
|
276
|
+
</LegalPage>
|
|
277
|
+
`);
|
|
278
|
+
// Public directory
|
|
279
|
+
mkdirSync(join(projectDir, 'public', 'images'), { recursive: true });
|
|
280
|
+
writeFileSync(join(projectDir, 'public', 'images', 'logo.svg'), `<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
281
|
+
<rect width="32" height="32" rx="8" fill="${primaryColor}"/>
|
|
282
|
+
<text x="16" y="22" text-anchor="middle" fill="white" font-size="18" font-weight="bold" font-family="system-ui">${projectName.charAt(0).toUpperCase()}</text>
|
|
283
|
+
</svg>`);
|
|
284
|
+
// Custom components directory
|
|
285
|
+
mkdirSync(join(projectDir, 'components'), { recursive: true });
|
|
286
|
+
writeFileSync(join(projectDir, 'components', 'index.ts'), `// Custom components — export your components here to use them in MDX.
|
|
287
|
+
// ShipSite automatically merges these with the built-in components.
|
|
288
|
+
//
|
|
289
|
+
// Example:
|
|
290
|
+
// export { Highlight } from './Highlight';
|
|
291
|
+
//
|
|
292
|
+
// Then use in any MDX file:
|
|
293
|
+
// <Highlight color="blue">Important text</Highlight>
|
|
294
|
+
`);
|
|
295
|
+
// next.config.ts — always present so AI agents and developers know where to add redirects, headers, etc.
|
|
296
|
+
writeFileSync(join(projectDir, 'next.config.ts'), `import type { NextConfig } from 'next';
|
|
297
|
+
|
|
298
|
+
const config: NextConfig = {
|
|
299
|
+
// Add your custom Next.js config here.
|
|
300
|
+
// ShipSite merges this with its own config automatically.
|
|
301
|
+
//
|
|
302
|
+
// Examples:
|
|
303
|
+
// redirects: async () => [
|
|
304
|
+
// { source: '/old-page', destination: '/new-page', permanent: true },
|
|
305
|
+
// ],
|
|
306
|
+
// headers: async () => [
|
|
307
|
+
// { source: '/(.*)', headers: [{ key: 'X-Frame-Options', value: 'DENY' }] },
|
|
308
|
+
// ],
|
|
309
|
+
};
|
|
310
|
+
|
|
311
|
+
export default config;
|
|
312
|
+
`);
|
|
313
|
+
// .gitignore
|
|
314
|
+
writeFileSync(join(projectDir, '.gitignore'), `node_modules/
|
|
315
|
+
.next/
|
|
316
|
+
.shipsite/
|
|
317
|
+
.content-collections/
|
|
318
|
+
*.tsbuildinfo
|
|
319
|
+
`);
|
|
320
|
+
// package.json
|
|
321
|
+
writeFileSync(join(projectDir, 'package.json'), JSON.stringify({
|
|
322
|
+
name: projectName,
|
|
323
|
+
version: '0.1.0',
|
|
324
|
+
private: true,
|
|
325
|
+
scripts: {
|
|
326
|
+
dev: 'shipsite dev',
|
|
327
|
+
build: 'shipsite build',
|
|
328
|
+
validate: 'shipsite validate',
|
|
329
|
+
},
|
|
330
|
+
dependencies: {
|
|
331
|
+
'@shipsite.dev/cli': '^0.1.0',
|
|
332
|
+
'@shipsite.dev/core': '^0.1.0',
|
|
333
|
+
'@shipsite.dev/components': '^0.1.0',
|
|
334
|
+
'@radix-ui/react-accordion': '^1.2.3',
|
|
335
|
+
'@radix-ui/react-dialog': '^1.1.6',
|
|
336
|
+
'@radix-ui/react-slot': '^1.2.0',
|
|
337
|
+
'class-variance-authority': '^0.7.1',
|
|
338
|
+
'clsx': '^2.1.1',
|
|
339
|
+
'lucide-react': '^0.475.0',
|
|
340
|
+
'tailwind-merge': '^3.0.2',
|
|
341
|
+
'tw-animate-css': '^1.2.5',
|
|
342
|
+
},
|
|
343
|
+
}, null, 2) + '\n');
|
|
344
|
+
s.stop('Project created!');
|
|
345
|
+
// Initialize git
|
|
346
|
+
try {
|
|
347
|
+
execSync('git init', { cwd: projectDir, stdio: 'ignore' });
|
|
348
|
+
p.log.success('Initialized git repository');
|
|
349
|
+
}
|
|
350
|
+
catch {
|
|
351
|
+
// Git not available
|
|
352
|
+
}
|
|
353
|
+
p.note([`cd ${projectName}`, 'npm install', 'npx shipsite dev'].join('\n'), 'Next steps');
|
|
354
|
+
p.outro('Happy shipping!');
|
|
355
|
+
}
|
|
356
|
+
main().catch(console.error);
|
|
357
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,KAAK,UAAU,IAAI;IACjB,OAAO,CAAC,GAAG,EAAE,CAAC;IACd,CAAC,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;IAEzC,MAAM,WAAW,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;QAChC,OAAO,EAAE,cAAc;QACvB,WAAW,EAAE,YAAY;QACzB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAClB,IAAI,CAAC,KAAK;gBAAE,OAAO,0BAA0B,CAAC;YAC9C,IAAI,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAAE,OAAO,0BAA0B,CAAC;QACpE,CAAC;KACF,CAAC,CAAW,CAAC;IAEd,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,YAAY,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC;QACjC,OAAO,EAAE,qBAAqB;QAC9B,WAAW,EAAE,SAAS;QACtB,YAAY,EAAE,SAAS;KACxB,CAAC,CAAW,CAAC;IAEd,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC;QACzC,OAAO,EAAE,8BAA8B;QACvC,OAAO,EAAE;YACP,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;YAClD,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE;YAChC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE;YAChC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE;SAClC;QACD,QAAQ,EAAE,IAAI;QACd,aAAa,EAAE,CAAC,IAAI,CAAC;KACtB,CAAC,CAAa,CAAC;IAEhB,IAAI,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9B,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,aAAa,CAAC;IAC9B,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAEzC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAE/B,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACxC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE3C,gBAAgB;IAChB,MAAM,MAAM,GAAG;QACb,OAAO,EAAE,qCAAqC;QAC9C,IAAI,EAAE,WAAW;QACjB,GAAG,EAAE,WAAW,WAAW,MAAM;QACjC,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,cAAc;QACvB,OAAO,EAAE,sBAAsB;QAC/B,MAAM,EAAE;YACN,OAAO,EAAE,YAAY;YACrB,MAAM,EAAE,SAAS;YACjB,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,SAAS;SAChB;QACD,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE;QAC1C,IAAI,EAAE;YACJ,aAAa;YACb,OAAO;YACP,YAAY,EAAE,WAAoB;SACnC;QACD,UAAU,EAAE;YACV,KAAK,EAAE;gBACL,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE;gBACxC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE;gBACtC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;aACjC;YACD,GAAG,EAAE;gBACH,KAAK,EAAE,aAAa;gBACpB,IAAI,EAAE,eAAe,WAAW,aAAa;aAC9C;SACF;QACD,MAAM,EAAE;YACN,OAAO,EAAE;gBACP;oBACE,KAAK,EAAE,SAAS;oBAChB,KAAK,EAAE;wBACL,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE;wBACxC,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE;qBACvC;iBACF;gBACD;oBACE,KAAK,EAAE,OAAO;oBACd,KAAK,EAAE;wBACL,EAAE,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,UAAU,EAAE;wBAC7C,EAAE,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE;qBAC9C;iBACF;aACF;YACD,SAAS,EAAE,UAAU,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,WAAW,EAAE;SAC/D;QACD,KAAK,EAAE;YACL,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE;YAC1D;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,CAAC,aAAa,CAAC;aACzB;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,YAAY;gBAClB,OAAO,EAAE,MAAM;gBACf,OAAO,EAAE,CAAC,aAAa,CAAC;aACzB;YACD;gBACE,IAAI,EAAE,sBAAsB;gBAC5B,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,sBAAsB;gBAC/B,OAAO,EAAE,CAAC,aAAa,CAAC;aACzB;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,CAAC,aAAa,CAAC;aACzB;YACD;gBACE,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,CAAC,aAAa,CAAC;aACzB;SACF;QACD,IAAI,EAAE;YACJ,OAAO,EAAE;gBACP,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAE,mBAAmB;iBAC3B;aACF;SACF;KACF,CAAC;IAEF,aAAa,CACX,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,EACjC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CACvC,CAAC;IAEF,gCAAgC;IAChC,MAAM,IAAI,GAAG;QACX,SAAS;QACT,SAAS;QACT,MAAM;QACN,sBAAsB;QACtB,SAAS;QACT,OAAO;KACR,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAErD,eAAe;IACf,aAAa,CACX,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,EAChD;UACM,WAAW;;;;;;;gEAO2C,WAAW;;;;;;;;;;;;;4BAa/C,WAAW;;;;;;;;;;;;;;;CAetC,CACE,CAAC;IAEF,UAAU;IACV,aAAa,CACX,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,EAChD;yBACqB,WAAW;;;;;yMAKqK,WAAW;+OAC2B,WAAW;4NAC9B,WAAW;;CAEtO,CACE,CAAC;IAEF,aAAa;IACb,aAAa,CACX,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,EAC7C;sBACkB,WAAW;;;;;CAKhC,CACE,CAAC;IAEF,YAAY;IACZ,aAAa,CACX,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,CAAC,EAChE;+BAC2B,WAAW;oDACU,WAAW;SACtD,KAAK;;;;;;;;aAQD,WAAW;;;;;qCAKa,WAAW,qBAAqB,WAAW;;;;;;;;;;;;;;4BAcpD,WAAW;;;;CAItC,CACE,CAAC;IAEF,UAAU;IACV,aAAa,CACX,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,EAChD;;;;;iDAK6C,KAAK;;;0FAGoC,WAAW;;CAEpG,CACE,CAAC;IAEF,QAAQ;IACR,aAAa,CACX,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,EAC9C;;;;;mDAK+C,KAAK;;;;;CAKvD,CACE,CAAC;IAEF,mBAAmB;IACnB,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAErE,aAAa,CACX,IAAI,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,EAChD;8CAC0C,YAAY;oHAC0D,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE;OAChJ,CACJ,CAAC;IAEF,8BAA8B;IAC9B,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/D,aAAa,CACX,IAAI,CAAC,UAAU,EAAE,YAAY,EAAE,UAAU,CAAC,EAC1C;;;;;;;;CAQH,CACE,CAAC;IAEF,yGAAyG;IACzG,aAAa,CACX,IAAI,CAAC,UAAU,EAAE,gBAAgB,CAAC,EAClC;;;;;;;;;;;;;;;;CAgBH,CACE,CAAC;IAEF,aAAa;IACb,aAAa,CACX,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,EAC9B;;;;;CAKH,CACE,CAAC;IAEF,eAAe;IACf,aAAa,CACX,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,EAChC,IAAI,CAAC,SAAS,CACZ;QACE,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,OAAO;QAChB,OAAO,EAAE,IAAI;QACb,OAAO,EAAE;YACP,GAAG,EAAE,cAAc;YACnB,KAAK,EAAE,gBAAgB;YACvB,QAAQ,EAAE,mBAAmB;SAC9B;QACD,YAAY,EAAE;YACZ,mBAAmB,EAAE,QAAQ;YAC7B,oBAAoB,EAAE,QAAQ;YAC9B,0BAA0B,EAAE,QAAQ;YACpC,2BAA2B,EAAE,QAAQ;YACrC,wBAAwB,EAAE,QAAQ;YAClC,sBAAsB,EAAE,QAAQ;YAChC,0BAA0B,EAAE,QAAQ;YACpC,MAAM,EAAE,QAAQ;YAChB,cAAc,EAAE,UAAU;YAC1B,gBAAgB,EAAE,QAAQ;YAC1B,gBAAgB,EAAE,QAAQ;SAC3B;KACF,EACD,IAAI,EACJ,CAAC,CACF,GAAG,IAAI,CACT,CAAC;IAEF,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAE3B,iBAAiB;IACjB,IAAI,CAAC;QACH,QAAQ,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3D,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,oBAAoB;IACtB,CAAC;IAED,CAAC,CAAC,IAAI,CACJ,CAAC,MAAM,WAAW,EAAE,EAAE,aAAa,EAAE,kBAAkB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EACnE,YAAY,CACb,CAAC;IAEF,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;AAC7B,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "create-shipsite",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"bin": {
|
|
6
|
+
"create-shipsite": "./dist/index.js"
|
|
7
|
+
},
|
|
8
|
+
"files": [
|
|
9
|
+
"dist/"
|
|
10
|
+
],
|
|
11
|
+
"scripts": {
|
|
12
|
+
"build": "tsc",
|
|
13
|
+
"clean": "rm -rf dist"
|
|
14
|
+
},
|
|
15
|
+
"dependencies": {
|
|
16
|
+
"@clack/prompts": "^0.10.0"
|
|
17
|
+
},
|
|
18
|
+
"devDependencies": {
|
|
19
|
+
"typescript": "^5.8.3",
|
|
20
|
+
"@types/node": "^20"
|
|
21
|
+
}
|
|
22
|
+
}
|