ship-safe 1.0.0 → 1.0.1
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/LICENSE +21 -0
- package/cli/commands/init.js +2 -1
- package/configs/gitignore-template +258 -0
- package/package.json +2 -2
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024 ship-safe contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/cli/commands/init.js
CHANGED
|
@@ -70,7 +70,8 @@ export async function initCommand(options = {}) {
|
|
|
70
70
|
// =============================================================================
|
|
71
71
|
|
|
72
72
|
async function handleGitignore(targetDir, force, results) {
|
|
73
|
-
|
|
73
|
+
// Note: We use 'gitignore-template' because npm excludes dotfiles from packages
|
|
74
|
+
const sourcePath = path.join(PACKAGE_ROOT, 'configs', 'gitignore-template');
|
|
74
75
|
const targetPath = path.join(targetDir, '.gitignore');
|
|
75
76
|
|
|
76
77
|
// Check if source exists
|
|
@@ -0,0 +1,258 @@
|
|
|
1
|
+
# =============================================================================
|
|
2
|
+
# SHIP SAFE .GITIGNORE
|
|
3
|
+
# =============================================================================
|
|
4
|
+
# This file prevents you from accidentally committing sensitive data.
|
|
5
|
+
# Copy this to your project root. Customize as needed.
|
|
6
|
+
# =============================================================================
|
|
7
|
+
|
|
8
|
+
# -----------------------------------------------------------------------------
|
|
9
|
+
# ENVIRONMENT FILES - THE #1 SOURCE OF LEAKED SECRETS
|
|
10
|
+
# -----------------------------------------------------------------------------
|
|
11
|
+
# These files often contain API keys, database URLs, and passwords.
|
|
12
|
+
# NEVER commit these. Use .env.example with placeholder values instead.
|
|
13
|
+
|
|
14
|
+
.env
|
|
15
|
+
.env.local
|
|
16
|
+
.env.development
|
|
17
|
+
.env.development.local
|
|
18
|
+
.env.test
|
|
19
|
+
.env.test.local
|
|
20
|
+
.env.production
|
|
21
|
+
.env.production.local
|
|
22
|
+
.env.staging
|
|
23
|
+
.env*.local
|
|
24
|
+
|
|
25
|
+
# Some frameworks use different names
|
|
26
|
+
.envrc
|
|
27
|
+
.env.backup
|
|
28
|
+
.env.bak
|
|
29
|
+
*.env
|
|
30
|
+
|
|
31
|
+
# -----------------------------------------------------------------------------
|
|
32
|
+
# PRIVATE KEYS & CERTIFICATES
|
|
33
|
+
# -----------------------------------------------------------------------------
|
|
34
|
+
# These are cryptographic secrets. If leaked, attackers can impersonate you.
|
|
35
|
+
|
|
36
|
+
*.pem
|
|
37
|
+
*.key
|
|
38
|
+
*.p12
|
|
39
|
+
*.pfx
|
|
40
|
+
*.crt
|
|
41
|
+
*.cer
|
|
42
|
+
*.der
|
|
43
|
+
*.csr
|
|
44
|
+
|
|
45
|
+
# SSH keys - NEVER commit these
|
|
46
|
+
id_rsa
|
|
47
|
+
id_rsa.pub
|
|
48
|
+
id_ed25519
|
|
49
|
+
id_ed25519.pub
|
|
50
|
+
id_dsa
|
|
51
|
+
id_dsa.pub
|
|
52
|
+
*.ppk
|
|
53
|
+
|
|
54
|
+
# GPG keys
|
|
55
|
+
*.gpg
|
|
56
|
+
*.asc
|
|
57
|
+
secring.*
|
|
58
|
+
|
|
59
|
+
# -----------------------------------------------------------------------------
|
|
60
|
+
# API KEYS & CREDENTIALS FILES
|
|
61
|
+
# -----------------------------------------------------------------------------
|
|
62
|
+
# Various tools store credentials in these files
|
|
63
|
+
|
|
64
|
+
# Google Cloud / Firebase
|
|
65
|
+
**/service-account*.json
|
|
66
|
+
*-firebase-adminsdk-*.json
|
|
67
|
+
credentials.json
|
|
68
|
+
client_secret*.json
|
|
69
|
+
|
|
70
|
+
# AWS
|
|
71
|
+
.aws/credentials
|
|
72
|
+
aws-credentials.json
|
|
73
|
+
*.aws
|
|
74
|
+
|
|
75
|
+
# Stripe
|
|
76
|
+
stripe-cli-config.toml
|
|
77
|
+
|
|
78
|
+
# Generic credential files
|
|
79
|
+
*credentials*
|
|
80
|
+
*secrets*
|
|
81
|
+
*.secrets.json
|
|
82
|
+
config/secrets.yml
|
|
83
|
+
secrets.yml
|
|
84
|
+
secrets.yaml
|
|
85
|
+
|
|
86
|
+
# Exception: Allow our security scanning scripts
|
|
87
|
+
!scripts/
|
|
88
|
+
!scripts/*
|
|
89
|
+
|
|
90
|
+
# -----------------------------------------------------------------------------
|
|
91
|
+
# DATABASE FILES
|
|
92
|
+
# -----------------------------------------------------------------------------
|
|
93
|
+
# Local databases may contain user data or test credentials
|
|
94
|
+
|
|
95
|
+
*.sqlite
|
|
96
|
+
*.sqlite3
|
|
97
|
+
*.db
|
|
98
|
+
*.sql
|
|
99
|
+
dump.rdb
|
|
100
|
+
|
|
101
|
+
# -----------------------------------------------------------------------------
|
|
102
|
+
# LOGS - MAY CONTAIN SENSITIVE DATA
|
|
103
|
+
# -----------------------------------------------------------------------------
|
|
104
|
+
# Logs can accidentally contain API responses, user data, or errors with secrets
|
|
105
|
+
|
|
106
|
+
*.log
|
|
107
|
+
logs/
|
|
108
|
+
npm-debug.log*
|
|
109
|
+
yarn-debug.log*
|
|
110
|
+
yarn-error.log*
|
|
111
|
+
pnpm-debug.log*
|
|
112
|
+
lerna-debug.log*
|
|
113
|
+
|
|
114
|
+
# -----------------------------------------------------------------------------
|
|
115
|
+
# OS FILES - NOT SENSITIVE BUT ANNOYING
|
|
116
|
+
# -----------------------------------------------------------------------------
|
|
117
|
+
|
|
118
|
+
# macOS
|
|
119
|
+
.DS_Store
|
|
120
|
+
.DS_Store?
|
|
121
|
+
._*
|
|
122
|
+
.Spotlight-V100
|
|
123
|
+
.Trashes
|
|
124
|
+
.AppleDouble
|
|
125
|
+
.LSOverride
|
|
126
|
+
|
|
127
|
+
# Windows
|
|
128
|
+
Thumbs.db
|
|
129
|
+
Thumbs.db:encryptable
|
|
130
|
+
ehthumbs.db
|
|
131
|
+
ehthumbs_vista.db
|
|
132
|
+
*.stackdump
|
|
133
|
+
[Dd]esktop.ini
|
|
134
|
+
$RECYCLE.BIN/
|
|
135
|
+
*.cab
|
|
136
|
+
*.msi
|
|
137
|
+
*.msix
|
|
138
|
+
*.msm
|
|
139
|
+
*.msp
|
|
140
|
+
*.lnk
|
|
141
|
+
|
|
142
|
+
# Linux
|
|
143
|
+
*~
|
|
144
|
+
.fuse_hidden*
|
|
145
|
+
.directory
|
|
146
|
+
.Trash-*
|
|
147
|
+
.nfs*
|
|
148
|
+
|
|
149
|
+
# -----------------------------------------------------------------------------
|
|
150
|
+
# IDE & EDITOR FILES
|
|
151
|
+
# -----------------------------------------------------------------------------
|
|
152
|
+
# May contain local paths or workspace settings with secrets
|
|
153
|
+
|
|
154
|
+
.idea/
|
|
155
|
+
.vscode/
|
|
156
|
+
*.swp
|
|
157
|
+
*.swo
|
|
158
|
+
*.swn
|
|
159
|
+
*.sublime-workspace
|
|
160
|
+
*.sublime-project
|
|
161
|
+
.project
|
|
162
|
+
.classpath
|
|
163
|
+
.settings/
|
|
164
|
+
*.code-workspace
|
|
165
|
+
|
|
166
|
+
# -----------------------------------------------------------------------------
|
|
167
|
+
# DEPENDENCY DIRECTORIES
|
|
168
|
+
# -----------------------------------------------------------------------------
|
|
169
|
+
# These are large and should be installed fresh via package manager
|
|
170
|
+
|
|
171
|
+
node_modules/
|
|
172
|
+
vendor/
|
|
173
|
+
.bundle/
|
|
174
|
+
bower_components/
|
|
175
|
+
jspm_packages/
|
|
176
|
+
|
|
177
|
+
# Python
|
|
178
|
+
__pycache__/
|
|
179
|
+
*.py[cod]
|
|
180
|
+
*$py.class
|
|
181
|
+
.Python
|
|
182
|
+
venv/
|
|
183
|
+
env/
|
|
184
|
+
ENV/
|
|
185
|
+
.venv/
|
|
186
|
+
pip-log.txt
|
|
187
|
+
pip-delete-this-directory.txt
|
|
188
|
+
|
|
189
|
+
# -----------------------------------------------------------------------------
|
|
190
|
+
# BUILD OUTPUT - MAY CONTAIN INLINED SECRETS
|
|
191
|
+
# -----------------------------------------------------------------------------
|
|
192
|
+
# Build processes sometimes inline environment variables
|
|
193
|
+
|
|
194
|
+
.next/
|
|
195
|
+
.nuxt/
|
|
196
|
+
dist/
|
|
197
|
+
build/
|
|
198
|
+
out/
|
|
199
|
+
.output/
|
|
200
|
+
.cache/
|
|
201
|
+
.parcel-cache/
|
|
202
|
+
.turbo/
|
|
203
|
+
|
|
204
|
+
# -----------------------------------------------------------------------------
|
|
205
|
+
# TEST & COVERAGE - MAY CONTAIN SNAPSHOTS OF SENSITIVE DATA
|
|
206
|
+
# -----------------------------------------------------------------------------
|
|
207
|
+
|
|
208
|
+
coverage/
|
|
209
|
+
.nyc_output/
|
|
210
|
+
*.lcov
|
|
211
|
+
|
|
212
|
+
# -----------------------------------------------------------------------------
|
|
213
|
+
# VERCEL & DEPLOYMENT
|
|
214
|
+
# -----------------------------------------------------------------------------
|
|
215
|
+
# Vercel CLI may cache tokens
|
|
216
|
+
|
|
217
|
+
.vercel/
|
|
218
|
+
|
|
219
|
+
# -----------------------------------------------------------------------------
|
|
220
|
+
# MISC SECURITY-SENSITIVE PATTERNS
|
|
221
|
+
# -----------------------------------------------------------------------------
|
|
222
|
+
|
|
223
|
+
# Backup files might contain old secrets
|
|
224
|
+
*.bak
|
|
225
|
+
*.backup
|
|
226
|
+
*.old
|
|
227
|
+
*.orig
|
|
228
|
+
*.temp
|
|
229
|
+
*.tmp
|
|
230
|
+
|
|
231
|
+
# Archives that might contain sensitive exports
|
|
232
|
+
*.zip
|
|
233
|
+
*.tar
|
|
234
|
+
*.tar.gz
|
|
235
|
+
*.tgz
|
|
236
|
+
*.rar
|
|
237
|
+
|
|
238
|
+
# Docker secrets
|
|
239
|
+
docker-compose.override.yml
|
|
240
|
+
.docker/
|
|
241
|
+
|
|
242
|
+
# Terraform state (contains infrastructure secrets)
|
|
243
|
+
*.tfstate
|
|
244
|
+
*.tfstate.*
|
|
245
|
+
.terraform/
|
|
246
|
+
*.tfvars
|
|
247
|
+
|
|
248
|
+
# Ansible vault
|
|
249
|
+
*.vault
|
|
250
|
+
|
|
251
|
+
# Kubernetes secrets
|
|
252
|
+
*kubeconfig*
|
|
253
|
+
|
|
254
|
+
# -----------------------------------------------------------------------------
|
|
255
|
+
# ADD YOUR PROJECT-SPECIFIC IGNORES BELOW
|
|
256
|
+
# -----------------------------------------------------------------------------
|
|
257
|
+
|
|
258
|
+
.claude/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ship-safe",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "Security toolkit for vibe coders and indie hackers. Secure your MVP in 5 minutes.",
|
|
5
5
|
"main": "cli/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"mvp",
|
|
26
26
|
"cli"
|
|
27
27
|
],
|
|
28
|
-
"author": "",
|
|
28
|
+
"author": "ship-safe contributors",
|
|
29
29
|
"license": "MIT",
|
|
30
30
|
"repository": {
|
|
31
31
|
"type": "git",
|