@preflightsh/preflight 0.6.2 → 0.6.4
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 +9 -152
- package/install.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,30 +1,23 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @preflightsh/preflight
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
npm package for [Preflight.sh](https://preflight.sh) - a CLI tool that scans your codebase for launch readiness.
|
|
4
4
|
|
|
5
5
|
## Installation
|
|
6
6
|
|
|
7
|
-
### Homebrew (macOS/Linux)
|
|
8
|
-
|
|
9
7
|
```bash
|
|
10
|
-
|
|
8
|
+
npm install -g @preflightsh/preflight
|
|
11
9
|
```
|
|
12
10
|
|
|
13
|
-
|
|
11
|
+
Or use with npx:
|
|
14
12
|
|
|
15
13
|
```bash
|
|
16
|
-
|
|
14
|
+
npx @preflightsh/preflight scan
|
|
17
15
|
```
|
|
18
16
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
Download the latest release from [GitHub Releases](https://github.com/preflightsh/preflight.sh/releases).
|
|
22
|
-
|
|
23
|
-
## Quick Start
|
|
17
|
+
## Usage
|
|
24
18
|
|
|
25
19
|
```bash
|
|
26
20
|
# Initialize in your project directory
|
|
27
|
-
cd your-project
|
|
28
21
|
preflight init
|
|
29
22
|
|
|
30
23
|
# Run all checks
|
|
@@ -34,147 +27,11 @@ preflight scan
|
|
|
34
27
|
preflight scan --ci --format json
|
|
35
28
|
```
|
|
36
29
|
|
|
37
|
-
##
|
|
38
|
-
|
|
39
|
-
| Check | Description |
|
|
40
|
-
|-------|-------------|
|
|
41
|
-
| **ENV Parity** | Compares `.env` and `.env.example` for missing variables |
|
|
42
|
-
| **Health Endpoint** | Verifies `/health` is reachable on staging/production |
|
|
43
|
-
| **Vulnerability Scan** | Checks for dependency vulnerabilities (bundle audit, npm audit, etc.) |
|
|
44
|
-
| **SEO Metadata** | Checks for title, description, and Open Graph tags |
|
|
45
|
-
| **OG & Twitter Cards** | Validates og:image, twitter:card and social sharing metadata |
|
|
46
|
-
| **Security Headers** | Validates HSTS, CSP, X-Content-Type-Options on both prod and staging |
|
|
47
|
-
| **SSL Certificate** | Checks SSL validity and warns before expiration |
|
|
48
|
-
| **Secret Scanning** | Finds leaked API keys and credentials in code |
|
|
49
|
-
| **Favicon & Icons** | Checks for favicon, apple-touch-icon (.png, .webp, .svg), and web manifest |
|
|
50
|
-
| **robots.txt** | Verifies robots.txt exists and has content |
|
|
51
|
-
| **sitemap.xml** | Checks for sitemap presence or generator |
|
|
52
|
-
| **llms.txt** | Checks for LLM crawler guidance file |
|
|
53
|
-
| **ads.txt** | Validates ads.txt for ad-supported sites (opt-in) |
|
|
54
|
-
| **IndexNow** | Verifies IndexNow key file for faster search indexing (opt-in) |
|
|
55
|
-
| **LICENSE** | Checks for license file (opt-in, for open source projects) |
|
|
56
|
-
|
|
57
|
-
## Supported Services (48)
|
|
58
|
-
|
|
59
|
-
Preflight auto-detects and validates configuration for these services:
|
|
60
|
-
|
|
61
|
-
**Payments**
|
|
62
|
-
- Stripe, PayPal, Braintree, Paddle, LemonSqueezy
|
|
63
|
-
|
|
64
|
-
**Error Tracking & Monitoring**
|
|
65
|
-
- Sentry, Bugsnag, Rollbar, Honeybadger, Datadog, New Relic, LogRocket
|
|
66
|
-
|
|
67
|
-
**Email**
|
|
68
|
-
- Postmark, SendGrid, Mailgun, AWS SES, Resend, Mailchimp, Kit
|
|
69
|
-
|
|
70
|
-
**Analytics**
|
|
71
|
-
- Plausible, Fathom, Fullres Analytics, Datafa.st Analytics, Google Analytics, Mixpanel, Amplitude, Segment, Hotjar
|
|
72
|
-
|
|
73
|
-
**Auth**
|
|
74
|
-
- Auth0, Clerk, Firebase, Supabase
|
|
75
|
-
|
|
76
|
-
**Communication**
|
|
77
|
-
- Twilio, Slack, Discord, Intercom, Crisp
|
|
78
|
-
|
|
79
|
-
**Infrastructure**
|
|
80
|
-
- Redis, Sidekiq, RabbitMQ, Elasticsearch
|
|
81
|
-
|
|
82
|
-
**Storage & CDN**
|
|
83
|
-
- AWS S3, Cloudinary, Cloudflare
|
|
84
|
-
|
|
85
|
-
**Search**
|
|
86
|
-
- Algolia
|
|
87
|
-
|
|
88
|
-
**SEO**
|
|
89
|
-
- IndexNow
|
|
90
|
-
|
|
91
|
-
**AI / LLMs**
|
|
92
|
-
- OpenAI, Anthropic Claude, Google AI (Gemini), Mistral, Cohere, Replicate, Hugging Face, Grok (X/Twitter), Perplexity, Together AI
|
|
93
|
-
|
|
94
|
-
## Configuration
|
|
95
|
-
|
|
96
|
-
Preflight uses a `preflight.yml` file in your project root:
|
|
97
|
-
|
|
98
|
-
```yaml
|
|
99
|
-
projectName: my-app
|
|
100
|
-
stack: rails # rails, next, react, vite, laravel, etc.
|
|
101
|
-
|
|
102
|
-
urls:
|
|
103
|
-
staging: "https://staging.example.com"
|
|
104
|
-
production: "https://example.com"
|
|
105
|
-
|
|
106
|
-
services:
|
|
107
|
-
stripe:
|
|
108
|
-
declared: true
|
|
109
|
-
sentry:
|
|
110
|
-
declared: true
|
|
111
|
-
|
|
112
|
-
checks:
|
|
113
|
-
envParity:
|
|
114
|
-
enabled: true
|
|
115
|
-
envFile: ".env"
|
|
116
|
-
exampleFile: ".env.example"
|
|
117
|
-
|
|
118
|
-
healthEndpoint:
|
|
119
|
-
enabled: true
|
|
120
|
-
path: "/health"
|
|
121
|
-
|
|
122
|
-
stripeWebhook:
|
|
123
|
-
enabled: true
|
|
124
|
-
url: "https://api.example.com/webhooks/stripe"
|
|
125
|
-
|
|
126
|
-
seoMeta:
|
|
127
|
-
enabled: true
|
|
128
|
-
mainLayout: "app/views/layouts/application.html.erb"
|
|
129
|
-
|
|
130
|
-
security:
|
|
131
|
-
enabled: true
|
|
132
|
-
|
|
133
|
-
indexNow:
|
|
134
|
-
enabled: true
|
|
135
|
-
key: "your32characterhexkeyhere00000"
|
|
136
|
-
|
|
137
|
-
license:
|
|
138
|
-
enabled: false # opt-in, for open source projects
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
## Exit Codes
|
|
142
|
-
|
|
143
|
-
| Code | Meaning |
|
|
144
|
-
|------|---------|
|
|
145
|
-
| 0 | All checks passed |
|
|
146
|
-
| 1 | Warnings only |
|
|
147
|
-
| 2 | Errors found |
|
|
148
|
-
|
|
149
|
-
## Supported Stacks
|
|
150
|
-
|
|
151
|
-
**Backend Frameworks**
|
|
152
|
-
- Ruby on Rails, Laravel, Go, Python/Django, Rust, Node.js
|
|
153
|
-
|
|
154
|
-
**Frontend Frameworks**
|
|
155
|
-
- Next.js, React, Vue.js, Vite, Svelte, Angular
|
|
30
|
+
## Documentation
|
|
156
31
|
|
|
157
|
-
|
|
158
|
-
- WordPress, Craft CMS, Drupal, Ghost
|
|
32
|
+
For full documentation, supported checks, and configuration options, see the main repository:
|
|
159
33
|
|
|
160
|
-
|
|
161
|
-
- Hugo, Jekyll, Gatsby, Eleventy (11ty), Astro
|
|
162
|
-
|
|
163
|
-
**Headless CMS**
|
|
164
|
-
- Strapi, Sanity, Contentful, Prismic
|
|
165
|
-
|
|
166
|
-
**Other**
|
|
167
|
-
- Static sites
|
|
168
|
-
|
|
169
|
-
## CI Integration
|
|
170
|
-
|
|
171
|
-
```yaml
|
|
172
|
-
# GitHub Actions example
|
|
173
|
-
- name: Run Preflight
|
|
174
|
-
run: |
|
|
175
|
-
curl -sSL https://raw.githubusercontent.com/preflightsh/preflight.sh/main/install.sh | sh
|
|
176
|
-
preflight scan --ci --format json
|
|
177
|
-
```
|
|
34
|
+
https://github.com/preflightsh/preflight
|
|
178
35
|
|
|
179
36
|
## License
|
|
180
37
|
|
package/install.js
CHANGED
|
@@ -6,7 +6,7 @@ const path = require('path');
|
|
|
6
6
|
const { execSync } = require('child_process');
|
|
7
7
|
const os = require('os');
|
|
8
8
|
|
|
9
|
-
const REPO = 'preflightsh/preflight
|
|
9
|
+
const REPO = 'preflightsh/preflight';
|
|
10
10
|
const VERSION = require('./package.json').version;
|
|
11
11
|
|
|
12
12
|
function getPlatform() {
|