@shipstatic/ship 2.2.0-beta.1 → 2.2.0-beta.5
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 +29 -0
- package/SKILL.md +6 -2
- package/THIRD-PARTY-LICENSES.md +365 -0
- package/dist/browser.d.ts +71 -2
- package/dist/browser.js +1 -1
- package/dist/browser.js.map +1 -1
- package/dist/cli.cjs +160 -53
- package/dist/cli.cjs.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +71 -2
- package/dist/index.d.ts +71 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/metafile-cjs.json +1 -0
- package/dist/metafile-esm.json +1 -0
- package/package.json +10 -9
package/README.md
CHANGED
|
@@ -47,6 +47,7 @@ const ship = new Ship({ token: 'ship-...' });
|
|
|
47
47
|
|
|
48
48
|
```bash
|
|
49
49
|
ship ./dist # Deploy (shortcut)
|
|
50
|
+
ship ./dist --domain www.example.com # Deploy and serve it there
|
|
50
51
|
ship ./dist --label production --label v1.0.0 # Deploy with labels
|
|
51
52
|
ship deployments list
|
|
52
53
|
ship deployments list --limit 20 # Page size; a hint shows the next cursor
|
|
@@ -152,6 +153,14 @@ open https://$(ship ./dist -q)
|
|
|
152
153
|
ship deployments list -q | xargs -I{} ship deployments delete {} -q
|
|
153
154
|
```
|
|
154
155
|
|
|
156
|
+
`--domain` is the same two calls as one command:
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
ship ./dist --domain www.example.com
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Both spellings are supported and neither replaces the other. The pipe composes interactively — any two commands, wherever `-q` gives you the value the next one wants. `--domain` is one process, one exit code, and one `--json`, which is what CI needs: a `run:` block is `bash -e` **without** `pipefail`, so a pipeline reports only the last command's status and a failed deploy is masked. It answers as the domain, exactly as `ship domains set` does — DNS records and setup link included on a new external domain — and it needs a token, which it checks before uploading anything.
|
|
163
|
+
|
|
155
164
|
### Shell Completion
|
|
156
165
|
|
|
157
166
|
```bash
|
|
@@ -180,6 +189,7 @@ Available on `ship <path>` and `ship deployments upload`:
|
|
|
180
189
|
|
|
181
190
|
| Flag | Description |
|
|
182
191
|
|------|-------------|
|
|
192
|
+
| `--domain <domain>` | Serve this deployment at that domain — creates or repoints it. Needs a token |
|
|
183
193
|
| `--label <label>` | Add label (repeatable) |
|
|
184
194
|
| `--password <password>` | Password-protect this deployment (6–128 chars) |
|
|
185
195
|
| `--no-path-detect` | Disable automatic path optimization |
|
|
@@ -220,6 +230,25 @@ const ship = new Ship({ session: true });
|
|
|
220
230
|
ship.setToken('ship-...');
|
|
221
231
|
```
|
|
222
232
|
|
|
233
|
+
### Retries
|
|
234
|
+
|
|
235
|
+
Failed requests are retried automatically: transport failures (including a
|
|
236
|
+
timeout) and 500/502/503/504, twice by default, with full-jitter exponential
|
|
237
|
+
backoff. `maxRetries` is the knob; `0` disables it.
|
|
238
|
+
|
|
239
|
+
```javascript
|
|
240
|
+
const ship = new Ship({ token: 'ship-...', maxRetries: 5 });
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
Deliberately never retried: a maintenance 503 (its message says when to come
|
|
244
|
+
back), 429 (the rate limiter has answered), `PUT`/`DELETE` (a repeat can
|
|
245
|
+
misreport a lost success as a failure), anything stopped by a `signal` you
|
|
246
|
+
supplied, and any other non-`GET` without an `Idempotency-Key` — with the key,
|
|
247
|
+
a deploy replays its stored result instead of creating a second one.
|
|
248
|
+
|
|
249
|
+
`timeout` is the ceiling on one ATTEMPT. For a hard overall deadline pass your
|
|
250
|
+
own `signal` (`AbortSignal.timeout(ms)`), which is never retried past.
|
|
251
|
+
|
|
223
252
|
### Deploy Options
|
|
224
253
|
|
|
225
254
|
```typescript
|
package/SKILL.md
CHANGED
|
@@ -123,8 +123,8 @@ Requires an API key. Full workflow:
|
|
|
123
123
|
# 1. Validate
|
|
124
124
|
ship domains validate www.example.com
|
|
125
125
|
|
|
126
|
-
# 2. Deploy + link in one
|
|
127
|
-
ship ./dist
|
|
126
|
+
# 2. Deploy + link in one command
|
|
127
|
+
ship ./dist --domain www.example.com
|
|
128
128
|
|
|
129
129
|
# 3. Show DNS records to the user
|
|
130
130
|
ship domains records www.example.com
|
|
@@ -135,6 +135,8 @@ ship domains verify www.example.com
|
|
|
135
135
|
|
|
136
136
|
Step 2 auto-prints DNS records and a setup link in text mode. With `--json`, call `domains records` separately.
|
|
137
137
|
|
|
138
|
+
`--domain` answers **as the domain** — same output as `ship domains set`, with the freshly linked deployment in the `deployment` field. Prefer it over the pipe (`ship ./dist -q | ship domains set www.example.com`), which still works: one process means one exit code and one JSON document, so a failed deploy cannot be masked by the second command. It requires a token and refuses before uploading anything if there isn't one. If the link fails, the deployment still exists and is reported first — re-run to link it again.
|
|
139
|
+
|
|
138
140
|
Verification is async — DNS propagation takes minutes to hours. Check status with `ship domains get <name> --json` and look for `"status": "success"`.
|
|
139
141
|
|
|
140
142
|
### Domain types
|
|
@@ -235,6 +237,7 @@ List commands return `{"<resource>s": [...], "cursor": null}`. A non-null `curso
|
|
|
235
237
|
|
|
236
238
|
```bash
|
|
237
239
|
ship ./dist # Deploy (shortcut)
|
|
240
|
+
ship ./dist --domain <name> # Deploy and serve it at that domain
|
|
238
241
|
ship deployments upload <path> # Deploy (explicit)
|
|
239
242
|
ship deployments list # List all
|
|
240
243
|
ship deployments get <deployment> # Details
|
|
@@ -275,6 +278,7 @@ ship tokens delete <token> # Delete (revokes immediately)
|
|
|
275
278
|
| `--json` | JSON output |
|
|
276
279
|
| `-q, --quiet` | Identifier only |
|
|
277
280
|
| `--token <token>` | Any ship token: API key or deploy token |
|
|
281
|
+
| `--domain <domain>` | Deploy and serve it there — creates or repoints. Needs a token |
|
|
278
282
|
| `--label <label>` | Set label (repeatable, replaces all) |
|
|
279
283
|
| `--password <pwd>` | Password-protect deployment (6–128 chars) |
|
|
280
284
|
| `--no-path-detect` | Skip build output auto-detection |
|
|
@@ -0,0 +1,365 @@
|
|
|
1
|
+
# Third-party licenses
|
|
2
|
+
|
|
3
|
+
`@shipstatic/ship` bundles the packages below into its published artifact.
|
|
4
|
+
Their copyright notices travel with that copy, and are reproduced here in
|
|
5
|
+
full. This file is GENERATED from the build's own metafile — edit the
|
|
6
|
+
bundle, not this list.
|
|
7
|
+
|
|
8
|
+
## @shipstatic/types 2.7.0-beta.2
|
|
9
|
+
|
|
10
|
+
License: MIT
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
MIT License
|
|
14
|
+
|
|
15
|
+
Copyright (c) 2025 shipstatic
|
|
16
|
+
|
|
17
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
18
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
19
|
+
in the Software without restriction, including without limitation the rights
|
|
20
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
21
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
22
|
+
furnished to do so, subject to the following conditions:
|
|
23
|
+
|
|
24
|
+
The above copyright notice and this permission notice shall be included in all
|
|
25
|
+
copies or substantial portions of the Software.
|
|
26
|
+
|
|
27
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
28
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
29
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
30
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
31
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
32
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
33
|
+
SOFTWARE.
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## ansi-regex 5.0.1
|
|
37
|
+
|
|
38
|
+
License: MIT
|
|
39
|
+
|
|
40
|
+
```
|
|
41
|
+
MIT License
|
|
42
|
+
|
|
43
|
+
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
|
|
44
|
+
|
|
45
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
46
|
+
|
|
47
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
48
|
+
|
|
49
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## clone 1.0.4
|
|
53
|
+
|
|
54
|
+
License: MIT
|
|
55
|
+
|
|
56
|
+
```
|
|
57
|
+
Copyright © 2011-2015 Paul Vorbach <paul@vorba.ch>
|
|
58
|
+
|
|
59
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
60
|
+
this software and associated documentation files (the “Software”), to deal in
|
|
61
|
+
the Software without restriction, including without limitation the rights to
|
|
62
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
|
63
|
+
the Software, and to permit persons to whom the Software is furnished to do so,
|
|
64
|
+
subject to the following conditions:
|
|
65
|
+
|
|
66
|
+
The above copyright notice and this permission notice shall be included in all
|
|
67
|
+
copies or substantial portions of the Software.
|
|
68
|
+
|
|
69
|
+
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
70
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
|
71
|
+
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
|
72
|
+
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
|
73
|
+
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, OUT OF OR IN CONNECTION WITH THE
|
|
74
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## columnify 1.6.0
|
|
78
|
+
|
|
79
|
+
License: MIT
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
The MIT License (MIT)
|
|
83
|
+
|
|
84
|
+
Copyright (c) 2013 Tim Oxley
|
|
85
|
+
|
|
86
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
87
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
88
|
+
in the Software without restriction, including without limitation the rights
|
|
89
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
90
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
91
|
+
furnished to do so, subject to the following conditions:
|
|
92
|
+
|
|
93
|
+
The above copyright notice and this permission notice shall be included in
|
|
94
|
+
all copies or substantial portions of the Software.
|
|
95
|
+
|
|
96
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
97
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
98
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
99
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
100
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
101
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
102
|
+
THE SOFTWARE.
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## commander 14.0.3
|
|
106
|
+
|
|
107
|
+
License: MIT
|
|
108
|
+
|
|
109
|
+
```
|
|
110
|
+
(The MIT License)
|
|
111
|
+
|
|
112
|
+
Copyright (c) 2011 TJ Holowaychuk <tj@vision-media.ca>
|
|
113
|
+
|
|
114
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
115
|
+
a copy of this software and associated documentation files (the
|
|
116
|
+
'Software'), to deal in the Software without restriction, including
|
|
117
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
118
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
119
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
120
|
+
the following conditions:
|
|
121
|
+
|
|
122
|
+
The above copyright notice and this permission notice shall be
|
|
123
|
+
included in all copies or substantial portions of the Software.
|
|
124
|
+
|
|
125
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
|
126
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
127
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
128
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
129
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
130
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
131
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## defaults 1.0.4
|
|
135
|
+
|
|
136
|
+
License: MIT
|
|
137
|
+
|
|
138
|
+
```
|
|
139
|
+
The MIT License (MIT)
|
|
140
|
+
|
|
141
|
+
Copyright (c) 2022 Sindre Sorhus
|
|
142
|
+
Copyright (c) 2015 Elijah Insua
|
|
143
|
+
|
|
144
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
145
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
146
|
+
in the Software without restriction, including without limitation the rights
|
|
147
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
148
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
149
|
+
furnished to do so, subject to the following conditions:
|
|
150
|
+
|
|
151
|
+
The above copyright notice and this permission notice shall be included in
|
|
152
|
+
all copies or substantial portions of the Software.
|
|
153
|
+
|
|
154
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
155
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
156
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
157
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
158
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
159
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
160
|
+
THE SOFTWARE.
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## form-data-encoder 4.1.0
|
|
164
|
+
|
|
165
|
+
License: MIT
|
|
166
|
+
|
|
167
|
+
```
|
|
168
|
+
The MIT License (MIT)
|
|
169
|
+
|
|
170
|
+
Copyright (c) 2021-present Nick K.
|
|
171
|
+
|
|
172
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
173
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
174
|
+
in the Software without restriction, including without limitation the rights
|
|
175
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
176
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
177
|
+
furnished to do so, subject to the following conditions:
|
|
178
|
+
|
|
179
|
+
The above copyright notice and this permission notice shall be included in all
|
|
180
|
+
copies or substantial portions of the Software.
|
|
181
|
+
|
|
182
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
183
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
184
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
185
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
186
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
187
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
188
|
+
SOFTWARE.
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
## formdata-node 6.0.3
|
|
192
|
+
|
|
193
|
+
License: MIT
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
The MIT License (MIT)
|
|
197
|
+
|
|
198
|
+
Copyright (c) 2017-present Nick K.
|
|
199
|
+
|
|
200
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
201
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
202
|
+
in the Software without restriction, including without limitation the rights
|
|
203
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
204
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
205
|
+
furnished to do so, subject to the following conditions:
|
|
206
|
+
|
|
207
|
+
The above copyright notice and this permission notice shall be included in all
|
|
208
|
+
copies or substantial portions of the Software.
|
|
209
|
+
|
|
210
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
211
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
212
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
213
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
214
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
215
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
216
|
+
SOFTWARE.
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
## junk 4.0.1
|
|
220
|
+
|
|
221
|
+
License: MIT
|
|
222
|
+
|
|
223
|
+
```
|
|
224
|
+
MIT License
|
|
225
|
+
|
|
226
|
+
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
|
|
227
|
+
|
|
228
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
229
|
+
|
|
230
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
231
|
+
|
|
232
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
## spark-md5 3.0.2
|
|
236
|
+
|
|
237
|
+
License: (WTFPL OR MIT)
|
|
238
|
+
|
|
239
|
+
```
|
|
240
|
+
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
|
241
|
+
Version 2, December 2004
|
|
242
|
+
|
|
243
|
+
Copyright (C) 2015 André Cruz <amdfcruz@gmail.com>
|
|
244
|
+
|
|
245
|
+
Everyone is permitted to copy and distribute verbatim or modified
|
|
246
|
+
copies of this license document, and changing it is allowed as long
|
|
247
|
+
as the name is changed.
|
|
248
|
+
|
|
249
|
+
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
|
250
|
+
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
|
251
|
+
|
|
252
|
+
0. You just DO WHAT THE FUCK YOU WANT TO.
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
## strip-ansi 6.0.1
|
|
256
|
+
|
|
257
|
+
License: MIT
|
|
258
|
+
|
|
259
|
+
```
|
|
260
|
+
MIT License
|
|
261
|
+
|
|
262
|
+
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
|
|
263
|
+
|
|
264
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
265
|
+
|
|
266
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
267
|
+
|
|
268
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
## wcwidth 1.0.1
|
|
272
|
+
|
|
273
|
+
License: MIT
|
|
274
|
+
|
|
275
|
+
```
|
|
276
|
+
wcwidth.js: JavaScript Portng of Markus Kuhn's wcwidth() Implementation
|
|
277
|
+
=======================================================================
|
|
278
|
+
|
|
279
|
+
Copyright (C) 2012 by Jun Woong.
|
|
280
|
+
|
|
281
|
+
This package is a JavaScript porting of `wcwidth()` implementation
|
|
282
|
+
[by Markus Kuhn](http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c).
|
|
283
|
+
|
|
284
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
|
285
|
+
this software and associated documentation files (the "Software"), to deal in
|
|
286
|
+
the Software without restriction, including without limitation the rights to
|
|
287
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
|
288
|
+
of the Software, and to permit persons to whom the Software is furnished to do
|
|
289
|
+
so, subject to the following conditions:
|
|
290
|
+
|
|
291
|
+
The above copyright notice and this permission notice shall be included in all
|
|
292
|
+
copies or substantial portions of the Software.
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
|
296
|
+
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
|
297
|
+
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR
|
|
298
|
+
OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
299
|
+
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
300
|
+
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
|
301
|
+
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
|
302
|
+
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
303
|
+
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
|
304
|
+
POSSIBILITY OF SUCH DAMAGE.
|
|
305
|
+
```
|
|
306
|
+
|
|
307
|
+
## yocto-spinner 1.2.2
|
|
308
|
+
|
|
309
|
+
License: MIT
|
|
310
|
+
|
|
311
|
+
```
|
|
312
|
+
MIT License
|
|
313
|
+
|
|
314
|
+
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
|
|
315
|
+
|
|
316
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
317
|
+
|
|
318
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
319
|
+
|
|
320
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
## yoctocolors 2.2.0
|
|
324
|
+
|
|
325
|
+
License: MIT
|
|
326
|
+
|
|
327
|
+
```
|
|
328
|
+
MIT License
|
|
329
|
+
|
|
330
|
+
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
|
|
331
|
+
|
|
332
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
333
|
+
|
|
334
|
+
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
335
|
+
|
|
336
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
## zod 4.4.3
|
|
340
|
+
|
|
341
|
+
License: MIT
|
|
342
|
+
|
|
343
|
+
```
|
|
344
|
+
MIT License
|
|
345
|
+
|
|
346
|
+
Copyright (c) 2025 Colin McDonnell
|
|
347
|
+
|
|
348
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
349
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
350
|
+
in the Software without restriction, including without limitation the rights
|
|
351
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
352
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
353
|
+
furnished to do so, subject to the following conditions:
|
|
354
|
+
|
|
355
|
+
The above copyright notice and this permission notice shall be included in all
|
|
356
|
+
copies or substantial portions of the Software.
|
|
357
|
+
|
|
358
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
359
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
360
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
361
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
362
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
363
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
364
|
+
SOFTWARE.
|
|
365
|
+
```
|
package/dist/browser.d.ts
CHANGED
|
@@ -788,12 +788,30 @@ declare class ShipError extends Error {
|
|
|
788
788
|
*
|
|
789
789
|
* Routing:
|
|
790
790
|
* - Already a `ShipError` → returned as-is (caller's intent preserved)
|
|
791
|
-
* - `AbortError` → `ShipError.cancelled(...)`
|
|
791
|
+
* - `AbortError` → `ShipError.cancelled(...)` — someone stopped it on purpose
|
|
792
|
+
* - `TimeoutError` → `ShipError.network(...)` — a deadline expired, so
|
|
793
|
+
* nothing was exchanged; the message names the timeout
|
|
792
794
|
* - A transport failure → `ShipError.network(...)` — see `isTransportFailure`
|
|
793
795
|
* for what each runtime offers as evidence
|
|
794
796
|
* - Any other `Error` → `ShipError(Api, ...)` (no HTTP status — fetch never reached the server)
|
|
795
797
|
* - Anything else (string, undefined, etc.) → `ShipError(Api, ...)`
|
|
796
798
|
*
|
|
799
|
+
* **Abort and timeout are read from `name` BEFORE any `instanceof Error`
|
|
800
|
+
* gate.** A `DOMException` satisfies that gate in every runtime measured
|
|
801
|
+
* (Node, Bun, Chromium, Firefox, WebKit, workerd — all six), but the
|
|
802
|
+
* inheritance is a comparatively recent spec change and this classification
|
|
803
|
+
* has no reason to depend on it: `name` is where the meaning lives, and
|
|
804
|
+
* reading it first costs nothing. The suite plants a non-`Error`
|
|
805
|
+
* `DOMException` shape to hold the arm, since no runtime on the table
|
|
806
|
+
* produces one.
|
|
807
|
+
*
|
|
808
|
+
* A caller's own `AbortSignal.timeout()` is the reachable source of
|
|
809
|
+
* `TimeoutError` — and the two are NOT interchangeable per runtime: WebKit
|
|
810
|
+
* reports a fired `AbortSignal.timeout()` as `AbortError`, so on Safari a
|
|
811
|
+
* deadline is indistinguishable from a cancellation and lands on
|
|
812
|
+
* `Cancelled`. Recorded rather than worked around; `Cancelled` is honest
|
|
813
|
+
* there, since the caller's signal is what stopped it.
|
|
814
|
+
*
|
|
797
815
|
* The optional `operationName` is composed into the message for context:
|
|
798
816
|
* `"Get account was cancelled"`, `"Get account failed: ..."`. Defaults to
|
|
799
817
|
* `"Request"` when omitted.
|
|
@@ -1865,8 +1883,31 @@ interface ShipClientOptions {
|
|
|
1865
1883
|
/**
|
|
1866
1884
|
* Timeout in milliseconds for every API request made by this client
|
|
1867
1885
|
* instance. Defaults to 30 seconds.
|
|
1886
|
+
*
|
|
1887
|
+
* With retries, this is the ceiling on an ATTEMPT rather than on the wall
|
|
1888
|
+
* clock — each attempt is an honest request and deserves the ceiling you
|
|
1889
|
+
* named, and {@link ShipClientOptions.maxRetries} is the lever on the total.
|
|
1890
|
+
* For a hard overall deadline, pass your own `signal`
|
|
1891
|
+
* (`AbortSignal.timeout(ms)`): the client never retries past a signal you
|
|
1892
|
+
* supplied.
|
|
1868
1893
|
*/
|
|
1869
1894
|
timeout?: number | undefined;
|
|
1895
|
+
/**
|
|
1896
|
+
* How many times to retry a failed request. Defaults to 2 (three attempts);
|
|
1897
|
+
* `0` disables retrying entirely.
|
|
1898
|
+
*
|
|
1899
|
+
* Retried: transport failures (including a timeout — nothing was exchanged
|
|
1900
|
+
* either way) and 500/502/503/504, with full-jitter exponential backoff.
|
|
1901
|
+
*
|
|
1902
|
+
* NOT retried, each deliberately: a maintenance 503 (a state, not a fault —
|
|
1903
|
+
* its message says when to come back), 429 (the rate limiter has just
|
|
1904
|
+
* answered), anything stopped by a `signal` you supplied, and any request
|
|
1905
|
+
* that cannot be safely repeated — `PUT`/`DELETE` are excluded outright, and
|
|
1906
|
+
* other non-`GET` methods retry only when they carry an `Idempotency-Key`,
|
|
1907
|
+
* which is what lets a deploy replay its stored result instead of creating a
|
|
1908
|
+
* second one.
|
|
1909
|
+
*/
|
|
1910
|
+
maxRetries?: number | undefined;
|
|
1870
1911
|
/**
|
|
1871
1912
|
* When true, the client authenticates with the first-party cookie session
|
|
1872
1913
|
* (`AuthMethod.SESSION`) — requests are sent with `credentials: 'include'`
|
|
@@ -1991,6 +2032,7 @@ declare class ApiHttp extends SimpleEvents {
|
|
|
1991
2032
|
private readonly session;
|
|
1992
2033
|
private readonly caller;
|
|
1993
2034
|
private readonly timeout;
|
|
2035
|
+
private readonly maxRetries;
|
|
1994
2036
|
private readonly deployTimeout;
|
|
1995
2037
|
private readonly deployBuildTimeout;
|
|
1996
2038
|
private readonly fetch;
|
|
@@ -2004,9 +2046,36 @@ declare class ApiHttp extends SimpleEvents {
|
|
|
2004
2046
|
*/
|
|
2005
2047
|
setGlobalHeaders(headers: Record<string, string>): void;
|
|
2006
2048
|
/**
|
|
2007
|
-
* Execute HTTP request
|
|
2049
|
+
* Execute an HTTP request, retrying the failures that are worth retrying.
|
|
2050
|
+
*
|
|
2051
|
+
* The loop lives here because `attemptOnce` is already the single wrap point
|
|
2052
|
+
* for headers, the timeout signal, the events and error normalization — so
|
|
2053
|
+
* an attempt is a whole request and nothing has to be undone between two.
|
|
2054
|
+
*
|
|
2055
|
+
* **Events stay honest across attempts**: `request` and `error` fire per
|
|
2056
|
+
* attempt, so a consumer counting requests sees what actually went out;
|
|
2057
|
+
* `response` fires once, on the one that worked.
|
|
2058
|
+
*
|
|
2059
|
+
* **The caller's `timeout` governs an ATTEMPT, not the wall clock.** Each
|
|
2060
|
+
* attempt is an honest request and deserves the ceiling the caller named;
|
|
2061
|
+
* `maxRetries` is the lever on the total. A caller who wants a hard overall
|
|
2062
|
+
* deadline passes their own `signal` — see `isRetryable` for why that ends
|
|
2063
|
+
* the loop even when it is a timeout.
|
|
2008
2064
|
*/
|
|
2009
2065
|
private executeRequest;
|
|
2066
|
+
/**
|
|
2067
|
+
* Is this failure worth another attempt?
|
|
2068
|
+
*
|
|
2069
|
+
* Two axes, and both must say yes: what went wrong, and whether the request
|
|
2070
|
+
* is one that may be sent twice.
|
|
2071
|
+
*/
|
|
2072
|
+
private isRetryable;
|
|
2073
|
+
/** Did this request carry the header that makes a repeat safe? */
|
|
2074
|
+
private hasIdempotencyKey;
|
|
2075
|
+
/**
|
|
2076
|
+
* One attempt: headers, timeout signal, events, and error normalization.
|
|
2077
|
+
*/
|
|
2078
|
+
private attemptOnce;
|
|
2010
2079
|
/**
|
|
2011
2080
|
* Simple request - returns data only
|
|
2012
2081
|
*/
|