@capgo/cli 4.18.0 → 4.18.2

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.
Files changed (3) hide show
  1. package/README.md +154 -20
  2. package/dist/index.js +2 -2
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -13,9 +13,11 @@ Before use the CLI, you should register here : https://capgo.app/
13
13
 
14
14
  Then go to your account in `apikey` section and click in the `all` key to copy it.
15
15
 
16
+ Follow the documentation here : "https://capacitorjs.com/docs/getting-started/
17
+
16
18
  ### **Init**
17
19
 
18
- `npx @capgo/cli init [apikey]`
20
+ `npx @capgo/cli@latest init [apikey]`
19
21
 
20
22
  This method is here to onboard you step by step.
21
23
 
@@ -49,7 +51,7 @@ This command will also be useful for bug report.
49
51
 
50
52
  `npx @capgo/cli app add [appId]`
51
53
 
52
- `[appId]` your app ID the format `com.test.app` is explained [here](https://capacitorjs.com/docs/cli/commands/init).
54
+ `[appId]` your app ID the format `com.test.app` is explained [here](https://capacitorjs.com/docs/cli/commands/init/).
53
55
 
54
56
  > 💡 All option will be guessed in your config if not provided.
55
57
 
@@ -73,7 +75,7 @@ Example of `capacitor.config.json` for appId and AppName, the icon is guess in t
73
75
 
74
76
  `npx @capgo/cli app set [appId]`
75
77
 
76
- `[appId]` is your app ID, the format is explained [here](https://capacitorjs.com/docs/cli/commands/init).
78
+ `[appId]` is your app ID, the format is explained [here](https://capacitorjs.com/docs/cli/commands/init/).
77
79
 
78
80
  Optionally, you can give:
79
81
 
@@ -86,7 +88,7 @@ Optionally, you can give:
86
88
 
87
89
  `npx @capgo/cli app list [appId]`
88
90
 
89
- `[appId]` your app ID the format `com.test.app` is explained [here](https://capacitorjs.com/docs/cli/commands/init).
91
+ `[appId]` your app ID the format `com.test.app` is explained [here](https://capacitorjs.com/docs/cli/commands/init/).
90
92
 
91
93
  Optionally, you can give:
92
94
 
@@ -96,7 +98,7 @@ Optionally, you can give:
96
98
 
97
99
  `npx @capgo/cli app delete [appId]`
98
100
 
99
- `[appId]` your app ID the format `com.test.app` is explained [here](https://capacitorjs.com/docs/cli/commands/init).
101
+ `[appId]` your app ID the format `com.test.app` is explained [here](https://capacitorjs.com/docs/cli/commands/init/).
100
102
 
101
103
  Optionally, you can give:
102
104
 
@@ -107,20 +109,35 @@ Optionally, you can give:
107
109
 
108
110
  `npx @capgo/cli app debug [appId]`
109
111
 
110
- `[appId]` your app ID the format `com.test.app` is explained [here](https://capacitorjs.com/docs/cli/commands/init).
112
+ `[appId]` your app ID the format `com.test.app` is explained [here](https://capacitorjs.com/docs/cli/commands/init/).
111
113
 
112
114
  Optionally, you can give:
113
115
 
114
116
  * `--apikey [key]` API key to link to your account.
115
117
  * `--device` with the specific device you want to debug
116
118
 
119
+ ### Setting
120
+
121
+ `npx @capgo/cli app setting [path]`
122
+
123
+ Edit the Capacitor config.
124
+
125
+ `[path]` - path of the setting that you would like to change. For example, to change the `appId`, provide `appId`.
126
+ If you wish to disable auto update in the `capacitor-updater` provide `plugins.CapacitorUpdater.autoUpdate`
127
+
128
+ You MUST provide either `--string` or `--bool`!
129
+
130
+ Options:
131
+ - `--string <string>` - sets the setting to a string
132
+ - `--bool <true | false>` - sets the setting to a boolean
133
+
117
134
  ## Bundle
118
135
 
119
136
  ### Upload
120
137
 
121
138
  `npx @capgo/cli bundle upload [appId]`
122
139
 
123
- `[appId]` is your app ID, the format is explained [here](https://capacitorjs.com/docs/cli/commands/init).
140
+ `[appId]` is your app ID, the format is explained [here](https://capacitorjs.com/docs/cli/commands/init/).
124
141
 
125
142
  Optionally, you can give:
126
143
 
@@ -137,7 +154,7 @@ Optionally, you can give:
137
154
  * `--s3-apisecret [secretkey]` API secret necessary for uploading to S3.
138
155
  * `--s3-region [region]` to set the region of the AWS S3 account of the two previous API keys.
139
156
  * `--s3-bucket-name [bucketName]` to set the name of the AWS S3 bucket to which upload.
140
- * `--bundle-url` prints bundle url into stdout. Useful when [parsing bundle url from shell](https://github.com/Cap-go/CLI/pull/132).
157
+ * `--bundle-url` prints bundle url into stdout. Useful when [parsing bundle url from shell](https://github.com/Cap-go/CLI/pull/132/).
141
158
  * `--no-code-check` to ignore the code check and send the bundle anyway.
142
159
 
143
160
  > ⭐️ External option helps to unlock 2 cases: corporate with privacy concern, don't send the code to a third part and app bigger than 200 MB. With this setting, Capgo store only the link to the zip and sends the link to all apps.
@@ -156,13 +173,13 @@ Example of `package.json` for version
156
173
 
157
174
  > ⛔ Version should be greater than “0.0.0”.
158
175
 
159
- > 💡 Don't forget to update the version number each time you send one, or the device will don't see the update.
176
+ > 💡 Don't forget to update the version number each time you send one, version number cannot be overrode, or reused after deletion for security reason.
160
177
 
161
178
  ### **List**
162
179
 
163
180
  `npx @capgo/cli bundle list [appId]`
164
181
 
165
- `[appId]` your app ID the format `com.test.app` is explained [here](https://capacitorjs.com/docs/cli/commands/init).
182
+ `[appId]` your app ID the format `com.test.app` is explained [here](https://capacitorjs.com/docs/cli/commands/init/).
166
183
 
167
184
  Optionally, you can give:
168
185
 
@@ -172,7 +189,7 @@ Optionally, you can give:
172
189
 
173
190
  `npx @capgo/cli bundle delete [appId]`
174
191
 
175
- `[appId]` your app ID the format `com.test.app` is explained [here](https://capacitorjs.com/docs/cli/commands/init).
192
+ `[appId]` your app ID the format `com.test.app` is explained [here](https://capacitorjs.com/docs/cli/commands/init/).
176
193
 
177
194
  Optionally, you can give:
178
195
 
@@ -185,7 +202,7 @@ in a SemVer range for a major version to Cloud
185
202
 
186
203
  `npx @capgo/cli bundle cleanup [appId] --bundle=[majorVersion] --keep=[numberToKeep]`
187
204
 
188
- `[appId]` your app ID the format `com.test.app` is explained [here](https://capacitorjs.com/docs/cli/commands/init).
205
+ `[appId]` your app ID the format `com.test.app` is explained [here](https://capacitorjs.com/docs/cli/commands/init/).
189
206
 
190
207
  Optionally, you can give:
191
208
 
@@ -205,14 +222,31 @@ This command will ignore bundles which are currently in use in any channel.
205
222
 
206
223
  ### **Encrypt**
207
224
 
225
+ > **Warning**: This command is deprecated and will be removed in the next major release. Please use the new encryption system.
208
226
  `npx @capgo/cli bundle encrypt [path/to/zip]`
209
227
 
210
- This command is used when you use external source to store your code or for test purpose.
228
+ This command is used when you use external source to store your code or for test purpose.
211
229
 
212
230
  Optionally, you can give:
213
231
 
214
232
  `--key [/path/to/my/private_key]` the path of your private key.
215
- `--key-data [privateKey]` the private key data, if you want to use inline.
233
+ `--key-data [privateKey]` the private key data, if you want to use inline.
234
+ The command will print your `ivSessionKey`y and generate an encrypted zip, to use it with the upload command or decryt command.
235
+
236
+ ### **Encrypt V2**
237
+
238
+ `npx @capgo/cli bundle encryptV2 [path/to/zip] [checksum]`
239
+
240
+ This command is used when you use external source to store your code or for test purpose.
241
+ The checksum is the sha256 of the bundle (generated by --key-v2), it is used to verify the integrity of the file after decryption.
242
+ It will be enncrypted with the private key and sent along with the bundle.
243
+ In encryption v2 the checksum is upgraded to become a "signature" of the bundle.
244
+
245
+ Optionally, you can give:
246
+
247
+ `--key [/path/to/my/private_key]` the path of your private key.
248
+ `--key-data [privateKey]` the private key data, if you want to use inline.
249
+ `--json` to output info as json.
216
250
  The command will print your `ivSessionKey`y and generate an encrypted zip, to use it with the upload command or decryt command.
217
251
 
218
252
  ### **Decrypt**
@@ -225,17 +259,42 @@ Optionally, you can give:
225
259
 
226
260
  `--key-data [privateKey]` the private key data, if you want to use inline. This command is mainly used for test purpose, it will decrypt the zip and print the base64 decrypted session key in the console.
227
261
 
262
+ ### **Decrypt V2**
263
+
264
+ `npx @capgo/cli bundle decryptV2 [path/to/zip] [ivSessionKey]`
265
+
266
+ Optionally, you can give:
267
+
268
+ `--key [/path/to/my/private_key]` the path of your private key.
269
+ `--key-data [privateKey]` the private key data, if you want to use inline. This command is mainly used for test purpose, it will decrypt the zip and print the base64 decrypted session key in the console.
270
+ `--checksum [checksum]` the checksum of the file, it will verify the checksum after decryption.
271
+
228
272
  ### **Zip**
229
273
 
230
274
  `npx @capgo/cli bundle zip [appId]`
231
275
 
232
- `[appId]` is your app ID, the format is explained [here](https://capacitorjs.com/docs/cli/commands/init).
276
+ `[appId]` is your app ID, the format is explained [here](https://capacitorjs.com/docs/cli/commands/init/).
233
277
 
234
278
  Optionally, you can give:
235
279
 
236
280
  * `--path [/path/to/my/bundle]` to upload a specific folder.
237
281
  * `--bundle [1.0.0]` to set the bundle version number of the filename.
238
282
  * `--name [myapp]` to override the filename.
283
+ * `--json` to output info as json.
284
+ * `--no-code-check` to ignore the code check and send the bundle anyway.
285
+ * `--key-v2` to use the new encryption system. This is required as new encryption system use better checksums to verify the integrity of the file.
286
+
287
+ ### **Compatibility**
288
+
289
+ `npx @capgo/cli bundle compatibility [appId] -c [channelId]`
290
+
291
+ `[appId]` is your app ID, the format is explained [here](https://capacitorjs.com/docs/cli/commands/init/).
292
+ `[channelId]` the name of your new channel.
293
+
294
+ Optionally, you can give:
295
+
296
+ * `--apikey [key]` API key to link to your account.
297
+ * `--text` use text instead of emojis in the table
239
298
 
240
299
  ## Channel
241
300
 
@@ -243,19 +302,19 @@ Optionally, you can give:
243
302
 
244
303
  `npx @capgo/cli channel add [channelId] [appId]`
245
304
 
246
- `[channelId]` the name of your new channel. `[appId]` your app ID the format `com.test.app` is explained [here](https://capacitorjs.com/docs/cli/commands/init).
305
+ `[channelId]` the name of your new channel. `[appId]` your app ID the format `com.test.app` is explained [here](https://capacitorjs.com/docs/cli/commands/init/).
247
306
 
248
307
  ### **Delete**
249
308
 
250
309
  `npx @capgo/cli channel delete [channelId] [appId]`
251
310
 
252
- `[channelId]` the name of your channel you want to delete. `[appId]` your app ID the format `com.test.app` is explained [here](https://capacitorjs.com/docs/cli/commands/init).
311
+ `[channelId]` the name of your channel you want to delete. `[appId]` your app ID the format `com.test.app` is explained [here](https://capacitorjs.com/docs/cli/commands/init/).
253
312
 
254
313
  ### **List**
255
314
 
256
315
  `npx @capgo/cli channel list [appId]`
257
316
 
258
- `[appId]` your app ID the format `com.test.app` is explained [here](https://capacitorjs.com/docs/cli/commands/init).
317
+ `[appId]` your app ID the format `com.test.app` is explained [here](https://capacitorjs.com/docs/cli/commands/init/).
259
318
 
260
319
  Optionally, you can give:
261
320
 
@@ -265,7 +324,7 @@ Optionally, you can give:
265
324
 
266
325
  `npx @capgo/cli channel set [channelId] [appId]`
267
326
 
268
- `[appId]` is your app ID, the format is explained [here](https://capacitorjs.com/docs/cli/commands/init).
327
+ `[appId]` is your app ID, the format is explained [here](https://capacitorjs.com/docs/cli/commands/init/).
269
328
 
270
329
  Optionally, you can give:
271
330
 
@@ -282,8 +341,68 @@ Optionally, you can give:
282
341
  * `--no-android` disallows the channel to send version to android devices.
283
342
  * `--self-assign` allows devices to self assign to this channel.
284
343
  * `--no-self-assign` disallows devices to self assign to this channel.
344
+ * `--disable-auto-update STRATEGY` Disable auto update strategy for this channel.The possible options are: major, minor, metadata, none.
285
345
  * `--apikey [key]` API key to link to your account.
286
346
 
347
+ ## Disable updates strategy
348
+
349
+ There are a few ways to handle disabling updates for too old versions.\
350
+ Capgo cannot update native code thus an update from a version with the old native code to a version with the updated native code should not be possible.
351
+ There are a couple of ways to achieve that.
352
+
353
+ First, the `major` strategy. It prevents an update from `0.0.0` -> `1.0.0`. The major is the highlighted number (**1**.0.0 and **0**.0.0).\
354
+ Second is the `minor` strategy. It prevents an update from `0.0.0` -> `1.1.0` or an update from `1.1.0` to `1.2.0`.
355
+ **BE AWARE** this strategy does not prevent an update from `0.1.0` -> `1.1.0`
356
+
357
+ Third, the `patch` strategy. It was added into capgo as a very strict mode. It's not recomended to be used unless you fully understand how it works.
358
+ In order for it to accept a update the following conditions must be meet:
359
+ - The major is the same between the new and the old version
360
+ - The minor is the same between the new and the old version
361
+ - The patch of the new version if greater then the patch of the old version
362
+
363
+ Here is an example of which scenarios the update is allowed or denied
364
+
365
+ - 0.0.311 -> 0.0.314 ✅
366
+ - 0.0.0 -> 0.0.314 ✅
367
+ - 0.0.316 -> 0.0.314 ❌
368
+ - 0.1.312 -> 0.0.314 ❌
369
+ - 1.0.312 -> 0.0.314 ❌
370
+
371
+ Lastly the most complicated strategy. The `metadata` strategy.\
372
+ First you need to know that initially after you enable it the updates **WILL** fail as the channel is lacking the required metadata.\
373
+ If the channel is lacking metadata you will see a message like this:
374
+ <img src="/fail-metadata.webp" alt="Cannot find metadata"/>
375
+
376
+ If you see something like this you know that you have to go to the current bundle for the failing channel and set the metadata.\
377
+ First, figure out what channel is failing. You can do that by looking at the `misconfigured` column
378
+ <img src="/misconfigured-table.webp" alt="Misconfigured table"/>
379
+
380
+ Then go to the failing channel and click on `Bundle number`. This should take you to the bundle page.
381
+ <img src="/fail-channel-show.webp" alt="Locate failing channel"/>
382
+
383
+ Once there fill the `Minimal update version` field. This should be a [semver](https://devhints.io/semver/).\
384
+ If the value you pass is not a semver you will get an error, but if everything goes correctly you should see something like this:
385
+ <img src="/set-min-update-version.webp" alt="Set min version"/>
386
+
387
+ Now, you likely do not want to set this data manually every time you update. Fortunately, the CLI will prevent you from sending an update without this metadata
388
+ <img src="/cli-fail-no-metadata.webp" alt="CLI fail no metadata"/>
389
+
390
+ To properly upload a bundle when using the `metadata` option you need to pass the `--min-update-version` with the valid semver. Something like this:
391
+ <img src="/cli-upload-with-metadata.webp" alt="CLI upload with metadata"/>
392
+
393
+ The `--min-update-version` is not the ONLY way to do compatibility.
394
+ There also exists the `--auto-min-update-version`. Here is how it works.
395
+
396
+ First, it takes a look at the version curently uploaded to the channel. It checks compatibility same as `bundle compatibility` command would.
397
+ Second, if the new version is 100% compatible it reuses the `min_update_version` from the latest version in the channel.
398
+ If not, then it sets the `min_update_version` to the bundle number of the newly uploaded version.
399
+
400
+ You will always get an information what is the `min_update_version` when using this option. It will look something like this:
401
+ <img src="/min_update_version_info.webp" alt="Min update version"/>
402
+
403
+ If the new version is not compatible it should look something like this
404
+ <img src="/min_update_version_not_compatible.webp" alt="Min update version not compatible"/>
405
+
287
406
  ## End-to-End encryption (Trustless)
288
407
 
289
408
  Capgo supports end-to-end encryption, this means that your bundle(code) is encrypted before sent to the cloud and decrypted on the device. For that, you need to generate an RSA key pair, you can use the following command to generate it.
@@ -294,11 +413,13 @@ See below for more information about the encryption system.
294
413
 
295
414
  <figure><img src="/crypto_explained.png" alt=""><figcaption><p>Ecryption schema</p></figcaption></figure>
296
415
 
416
+ Ecryption schema
417
+
297
418
  ### Create key for your app
298
419
 
299
420
  `npx @capgo/cli key create`
300
421
 
301
- Optionally, you can give: `--force` to overwrite the existing key. This command will create for you a key pair in your app, and will ask you to save the private key in a safe place. It's recommended to not git commit the private and public key, and to not share it with anyone.
422
+ Optionally, you can give: `--force` to overwrite the existing key. This command will create for you a key pair in your app, and will ask you to save the private key in a safe place. It's recommended to not git commit the private key, and to not share it with anyone.
302
423
 
303
424
  > After your local test, remove the key from the config file and add it on the CI step with `key save`
304
425
 
@@ -311,6 +432,19 @@ Optionally, you can give:
311
432
  `--key [/path/to/my/private_key]` the path of your private key.
312
433
 
313
434
  `--key-data [privateKey]` the private key data, if you want to use inline. This command is useful if you followed the recommendation and didn't commit the key in your app, and in the config.
435
+
436
+ ## Ci integration
437
+
438
+ To automate your work, I recommend you make GitHub action do the job of pushing to our server
439
+
440
+ [GitHub action tutorial](https://capgo.app/blog/automatic-build-and-release-with-github-actions/)
441
+
442
+ ## Our demo app
443
+
444
+ [GitHub - Cap-go/demo-app](https://github.com/Cap-go/demo-app/)
445
+
446
+ Don’t forget to configure CI env variable with your API key
447
+
314
448
  ## Dev contribution
315
449
 
316
450
  1. Install development dependencies
package/dist/index.js CHANGED
@@ -280,7 +280,7 @@ GFS4: `),console.error(e)});bt[Rr]||(kce=global[Rr]||[],Pce(bt,kce),bt.close=fun
280
280
  `;function Mce(e,t){var r=[],i="";typeof t=="string"?t={section:t,whitespace:!1}:(t=t||{},t.whitespace=t.whitespace===!0);var n=t.whitespace?" = ":"=";return Object.keys(e).forEach(function(s,a,o){var u=e[s];u&&Array.isArray(u)?u.forEach(function(l){i+=bf(s+"[]")+n+bf(l)+`
281
281
  `}):u&&typeof u=="object"?r.push(s):i+=bf(s)+n+bf(u)+WT}),t.section&&i.length&&(i="["+bf(t.section)+"]"+WT+i),r.forEach(function(s,a,o){var u=Uce(s).join("\\."),l=(t.section?t.section+".":"")+u,c=Mce(e[s],{section:l,whitespace:t.whitespace});i.length&&c.length&&(i+=WT),i+=c}),i}function Uce(e){return e.replace(/\1/g,"LITERAL\\1LITERAL").replace(/\\\./g,"").split(/\./).map(function(t){return t.replace(/\1/g,"\\.").replace(/\2LITERAL\\1LITERAL\2/g,"")})}function Sze(e){var t={},r=t,i=null,n=/^\[([^\]]*)\]$|^([^=]+)(=(.*))?$/i,s=e.split(/[\r\n]+/g);return s.forEach(function(a,o,u){if(!(!a||a.match(/^\s*[;#]/))){var l=a.match(n);if(l){if(l[1]!==void 0){if(i=C9(l[1]),i==="__proto__"){r={};return}r=t[i]=t[i]||{};return}var c=C9(l[2]);if(c!=="__proto__"){var p=l[3]?C9(l[4]):!0;switch(p){case"true":case"false":case"null":p=JSON.parse(p)}if(c.length>2&&c.slice(-2)==="[]"){if(c=c.substring(0,c.length-2),c==="__proto__")return;r[c]?Array.isArray(r[c])||(r[c]=[r[c]]):r[c]=[]}Array.isArray(r[c])?r[c].push(p):r[c]=p}}}}),Object.keys(t).filter(function(a,o,u){if(!t[a]||typeof t[a]!="object"||Array.isArray(t[a]))return!1;var l=Uce(a),c=t,p=l.pop(),d=p.replace(/\\\./g,".");return l.forEach(function(f,h,m){f!=="__proto__"&&((!c[f]||typeof c[f]!="object")&&(c[f]={}),c=c[f])}),c===t&&d===p?!1:(c[d]=t[a],!0)}).forEach(function(a,o,u){delete t[a]}),t}function Vce(e){return e.charAt(0)==='"'&&e.slice(-1)==='"'||e.charAt(0)==="'"&&e.slice(-1)==="'"}function bf(e){return typeof e!="string"||e.match(/[=\r\n]/)||e.match(/^\[/)||e.length>1&&Vce(e)||e!==e.trim()?JSON.stringify(e):e.replace(/;/g,"\\;").replace(/#/g,"\\#")}function C9(e,t){if(e=(e||"").trim(),Vce(e)){e.charAt(0)==="'"&&(e=e.substr(1,e.length-2));try{e=JSON.parse(e)}catch{}}else{for(var r=!1,i="",n=0,s=e.length;n<s;n++){var a=e.charAt(n);if(r)"\\;#".indexOf(a)!==-1?i+=a:i+="\\"+a,r=!1;else{if(";#".indexOf(a)!==-1)break;a==="\\"?r=!0:i+=a}}return r&&(i+="\\"),i.trim()}return e}});var Kce=g((Do,Wce)=>{var zce=$ce(),km=require("path"),S9=require("fs"),KT=Hce(),YT=require("events").EventEmitter,Aze=require("url"),Tze=require("http"),Do=Wce.exports=function(){for(var e=[].slice.call(arguments),t=new Kr;e.length;){var r=e.shift();r&&t.push(typeof r=="string"?Fze(r):r)}return t},ipt=Do.find=function(){var e=km.join.apply(null,[].slice.call(arguments));function t(r,i){var n=km.join(r,i);try{return S9.statSync(n),n}catch{if(km.dirname(r)!==r)return t(km.dirname(r),i)}}return t(__dirname,e)},Oze=Do.parse=function(e,t,r){if(e=""+e,r)if(r==="json")if(this.emit)try{return JSON.parse(e)}catch(i){this.emit("error",i)}else return JSON.parse(e);else return KT.parse(e);else try{return JSON.parse(e)}catch{return KT.parse(e)}},Fze=Do.json=function(){var e=[].slice.call(arguments).filter(function(i){return i!=null}),t=km.join.apply(null,e),r;try{r=S9.readFileSync(t,"utf-8")}catch{return}return Oze(r,t,"json")},npt=Do.env=function(e,t){t=t||process.env;var r={},i=e.length;for(var n in t)n.indexOf(e)===0&&(r[n.substring(i)]=t[n]);return r};Do.ConfigChain=Kr;function Kr(){YT.apply(this),zce.apply(this,arguments),this._awaiting=0,this._saving=0,this.sources={}}var Gce={constructor:{value:Kr}};Object.keys(YT.prototype).forEach(function(e){Gce[e]=Object.getOwnPropertyDescriptor(YT.prototype,e)});Kr.prototype=Object.create(zce.prototype,Gce);Kr.prototype.del=function(e,t){if(t){var r=this.sources[t];if(r=r&&r.data,!r)return this.emit("error",new Error("not found "+t));delete r[e]}else for(var i=0,n=this.list.length;i<n;i++)delete this.list[i][e];return this};Kr.prototype.set=function(e,t,r){var i;if(r){if(i=this.sources[r],i=i&&i.data,!i)return this.emit("error",new Error("not found "+r))}else if(i=this.list[0],!i)return this.emit("error",new Error("cannot set, no confs!"));return i[e]=t,this};Kr.prototype.get=function(e,t){return t?(t=this.sources[t],t&&(t=t.data),t&&Object.hasOwnProperty.call(t,e)?t[e]:void 0):this.list[0][e]};Kr.prototype.save=function(e,s,r){typeof s=="function"&&(r=s,s=null);var i=this.sources[e];if(!i||!(i.path||i.source)||!i.data)return this.emit("error",new Error("bad save target: "+e));if(i.source){var n=i.prefix||"";return Object.keys(i.data).forEach(function(o){i.source[n+o]=i.data[o]}),this}var s=s||i.type,a=i.data;return i.type==="json"?a=JSON.stringify(a):a=KT.stringify(a),this._saving++,S9.writeFile(i.path,a,"utf8",function(o){if(this._saving--,o)return r?r(o):this.emit("error",o);this._saving===0&&(r&&r(),this.emit("save"))}.bind(this)),this};Kr.prototype.addFile=function(e,t,r){r=r||e;var i={__source__:r};return this.sources[r]={path:e,type:t},this.push(i),this._await(),S9.readFile(e,"utf8",function(n,s){n&&this.emit("error",n),this.addString(s,e,t,i)}.bind(this)),this};Kr.prototype.addEnv=function(e,t,r){r=r||"env";var i=Do.env(e,t);return this.sources[r]={data:i,source:t,prefix:e},this.add(i,r)};Kr.prototype.addUrl=function(e,t,r){this._await();var i=Aze.format(e);r=r||i;var n={__source__:r};return this.sources[r]={href:i,type:t},this.push(n),Tze.request(e,function(s){var a=[],o=s.headers["content-type"];t||(t=o.indexOf("json")!==-1?"json":o.indexOf("ini")!==-1?"ini":i.match(/\.json$/)?"json":i.match(/\.ini$/)?"ini":null,n.type=t),s.on("data",a.push.bind(a)).on("end",function(){this.addString(Buffer.concat(a),i,t,n)}.bind(this)).on("error",this.emit.bind(this,"error"))}.bind(this)).on("error",this.emit.bind(this,"error")).end(),this};Kr.prototype.addString=function(e,t,r,i){return e=this.parse(e,t,r),this.add(e,i),this};Kr.prototype.add=function(e,t){if(t&&typeof t=="object"){var r=this.list.indexOf(t);if(r===-1)return this.emit("error",new Error("bad marker"));this.splice(r,1,e),t=t.__source__,this.sources[t]=this.sources[t]||{},this.sources[t].data=e,this._resolve()}else typeof t=="string"&&(this.sources[t]=this.sources[t]||{},this.sources[t].data=e),this._await(),this.push(e),process.nextTick(this._resolve.bind(this));return this};Kr.prototype.parse=Do.parse;Kr.prototype._await=function(){this._awaiting++};Kr.prototype._resolve=function(){this._awaiting--,this._awaiting===0&&this.emit("load",this)}});var Xce=g((spt,Yce)=>{Yce.exports=function(e){let t=e.indexOf(":");if(t===-1)return XT(e);let r=e.substr(0,t),i=e.substr(t+1);return`${XT(r)}:${XT(i)}`};function XT(e){if(e=e.toLowerCase(),e==="_authtoken")return"_authToken";let t=e[0];for(let r=1;r<e.length;r++)t+=e[r]==="_"?"-":e[r];return t}});var Jce=g(A9=>{"use strict";Object.defineProperty(A9,"__esModule",{value:!0});A9.envReplace=void 0;var Nze=/(?<!\\)(\\*)\$\{([^${}]+)\}/g;function kze(e,t){return e.replace(Nze,Rze.bind(null,t))}A9.envReplace=kze;function Rze(e,t,r,i){if(r.length%2)return t.slice((r.length+1)/2);let n=Ize(e,i);if(n===void 0)throw new Error(`Failed to replace env in config: ${t}`);return`${r.slice(r.length/2)}${n}`}var Pze=/([^:-]+)(:?)-(.+)/;function Ize(e,t){let r=t.match(Pze);if(!r)return e[t];let[,i,n,s]=r;return Object.prototype.hasOwnProperty.call(e,i)?!e[i]&&n?s:e[i]:s}});var Zce=g(T9=>{"use strict";Object.defineProperty(T9,"__esModule",{value:!0});T9.envReplace=void 0;var Lze=Jce();Object.defineProperty(T9,"envReplace",{enumerable:!0,get:function(){return Lze.envReplace}})});var epe=g(O9=>{"use strict";var Bze=require("fs"),wc=require("path"),{envReplace:Qce}=Zce(),jze=(e,t,r)=>{if(typeof t!="string")return t;let i=[].concat(e[r]),n=i.indexOf(wc)!==-1,s=i.indexOf(Boolean)!==-1,a=i.indexOf(String)!==-1,o=i.indexOf(Number)!==-1;if(t=`${t}`.trim(),/^".*"$/.test(t))try{t=JSON.parse(t)}catch{throw new Error(`Failed parsing JSON config key ${r}: ${t}`)}if(s&&!a&&t==="")return!0;switch(t){case"true":return!0;case"false":return!1;case"null":return null;case"undefined":return}return t=Qce(t,process.env),n&&((process.platform==="win32"?/^~(\/|\\)/:/^~\//).test(t)&&process.env.HOME&&(t=wc.resolve(process.env.HOME,t.substr(2))),t=wc.resolve(t)),o&&!isNaN(t)&&(t=Number(t)),t},qze=e=>{e=wc.resolve(e);let t=!1;for(;wc.basename(e)==="node_modules";)e=wc.dirname(e),t=!0;if(t)return e;let r=(i,n)=>{let s=/^[a-zA-Z]:(\\|\/)?$/;if(i==="/"||process.platform==="win32"&&s.test(i))return n;try{let a=Bze.readdirSync(i);if(a.includes("node_modules")||a.includes("package.json")||a.includes("package.json5")||a.includes("package.yaml")||a.includes("pnpm-workspace.yaml"))return i;let o=wc.dirname(i);return o===i?n:r(o,n)}catch(a){if(i===n){if(a.code==="ENOENT")return n;throw a}return n}};return r(e,e)};O9.envReplace=Qce;O9.findPrefix=qze;O9.parseField=jze});var ipe=g(rpe=>{"use strict";var bc=require("path"),$ze=require("stream").Stream,F9=require("url"),Mze=()=>{},Uze=()=>[],tpe=()=>{};rpe.types={access:[null,"restricted","public"],"allow-same-version":Boolean,"always-auth":Boolean,also:[null,"dev","development"],audit:Boolean,"auth-type":["legacy","sso","saml","oauth"],"bin-links":Boolean,browser:[null,String],ca:[null,String,Array],cafile:bc,cache:bc,"cache-lock-stale":Number,"cache-lock-retries":Number,"cache-lock-wait":Number,"cache-max":Number,"cache-min":Number,cert:[null,String],cidr:[null,String,Array],color:["always",Boolean],depth:Number,description:Boolean,dev:Boolean,"dry-run":Boolean,editor:String,"engine-strict":Boolean,force:Boolean,"fetch-retries":Number,"fetch-retry-factor":Number,"fetch-retry-mintimeout":Number,"fetch-retry-maxtimeout":Number,git:String,"git-tag-version":Boolean,"commit-hooks":Boolean,global:Boolean,globalconfig:bc,"global-style":Boolean,group:[Number,String],"https-proxy":[null,F9],"user-agent":String,"ham-it-up":Boolean,heading:String,"if-present":Boolean,"ignore-prepublish":Boolean,"ignore-scripts":Boolean,"init-module":bc,"init-author-name":String,"init-author-email":String,"init-author-url":["",F9],"init-license":String,"init-version":tpe,json:Boolean,key:[null,String],"legacy-bundling":Boolean,link:Boolean,"local-address":Uze(),loglevel:["silent","error","warn","notice","http","timing","info","verbose","silly"],logstream:$ze,"logs-max":Number,long:Boolean,maxsockets:Number,message:String,"metrics-registry":[null,String],"node-options":[null,String],"node-version":[null,tpe],"no-proxy":[null,String,Array],offline:Boolean,"onload-script":[null,String],only:[null,"dev","development","prod","production"],optional:Boolean,"package-lock":Boolean,otp:[null,String],"package-lock-only":Boolean,parseable:Boolean,"prefer-offline":Boolean,"prefer-online":Boolean,prefix:bc,production:Boolean,progress:Boolean,proxy:[null,!1,F9],provenance:Boolean,"read-only":Boolean,"rebuild-bundle":Boolean,registry:[null,F9],rollback:Boolean,save:Boolean,"save-bundle":Boolean,"save-dev":Boolean,"save-exact":Boolean,"save-optional":Boolean,"save-prefix":String,"save-prod":Boolean,scope:String,"script-shell":[null,String],"scripts-prepend-node-path":[!1,!0,"auto","warn-only"],searchopts:String,searchexclude:[null,String],searchlimit:Number,searchstaleness:Number,"send-metrics":Boolean,shell:String,shrinkwrap:Boolean,"sign-git-tag":Boolean,"sso-poll-frequency":Number,"sso-type":[null,"oauth","saml"],"strict-ssl":Boolean,tag:String,timing:Boolean,tmp:bc,unicode:Boolean,"unsafe-perm":Boolean,usage:Boolean,user:[Number,String],userconfig:bc,umask:Mze,version:Boolean,"tag-version-prefix":String,versions:Boolean,viewer:String,_exit:Boolean}});var ope=g((cpt,ape)=>{"use strict";var{readCAFileSync:Vze}=Bce(),npe=require("fs"),JT=require("path"),{ConfigChain:Hze}=Kce(),zze=Xce(),spe=epe(),ZT=class extends Hze{constructor(t,r){super(t),this.root=t,this._parseField=spe.parseField.bind(null,r||ipe())}add(t,r){try{for(let i of Object.keys(t))t[i]=this._parseField(t[i],i)}catch(i){throw i}return super.add(t,r)}addFile(t,r){r=r||t;let i={__source__:r};this.sources[r]={path:t,type:"ini"},this.push(i),this._await();try{let n=npe.readFileSync(t,"utf8");this.addString(n,t,"ini",i)}catch(n){if(n.code==="ENOENT")this.add({},i);else return`Issue while reading "${t}". ${n.message}`}}addEnv(t){t=t||process.env;let r={};return Object.keys(t).filter(i=>/^npm_config_/i.test(i)).forEach(i=>{t[i]&&(r[zze(i.substr(11))]=t[i])}),super.addEnv("",r,"env")}loadPrefix(){let t=this.list[0];Object.defineProperty(this,"prefix",{enumerable:!0,set:i=>{let n=this.get("global");this[n?"globalPrefix":"localPrefix"]=i},get:()=>this.get("global")?this.globalPrefix:this.localPrefix}),Object.defineProperty(this,"globalPrefix",{enumerable:!0,set:i=>{this.set("prefix",i)},get:()=>JT.resolve(this.get("prefix"))});let r;if(Object.defineProperty(this,"localPrefix",{enumerable:!0,set:i=>{r=i},get:()=>r}),Object.prototype.hasOwnProperty.call(t,"prefix"))r=JT.resolve(t.prefix);else try{r=spe.findPrefix(process.cwd())}catch(i){throw i}return r}loadCAFile(t){if(!t)return;let r=Vze(t);r&&this.set("ca",r)}loadUser(){let t=this.root;if(this.get("global"))return;if(process.env.SUDO_UID){t.user=Number(process.env.SUDO_UID);return}let r=JT.resolve(this.get("prefix"));try{let i=npe.statSync(r);t.user=i.uid}catch(i){if(i.code==="ENOENT")return;throw i}}};ape.exports=ZT});var fpe=g(dpe=>{"use strict";var cpe=require("os"),Eo=require("path"),ppe=cpe.tmpdir(),Gze=process.getuid?process.getuid():process.pid,Wze=()=>!0,upe=process.platform==="win32",lpe={editor:()=>process.env.EDITOR||process.env.VISUAL||(upe?"notepad.exe":"vi"),shell:()=>upe?process.env.COMSPEC||"cmd.exe":process.env.SHELL||"/bin/bash"},Kze={fromString:()=>process.umask()},Df=cpe.homedir();Df?process.env.HOME=Df:Df=Eo.resolve(ppe,"npm-"+Gze);var Yze=process.platform==="win32"?"npm-cache":".npm",Xze=process.platform==="win32"&&process.env.APPDATA||Df,Jze=Eo.resolve(Xze,Yze),N9,Dc;Object.defineProperty(dpe,"defaults",{get:function(){return N9||(process.env.PREFIX?Dc=process.env.PREFIX:process.platform==="win32"?Dc=Eo.dirname(process.execPath):(Dc=Eo.dirname(Eo.dirname(process.execPath)),process.env.DESTDIR&&(Dc=Eo.join(process.env.DESTDIR,Dc))),N9={access:null,"allow-same-version":!1,"always-auth":!1,also:null,audit:!0,"auth-type":"legacy","bin-links":!0,browser:null,ca:null,cafile:null,cache:Jze,"cache-lock-stale":6e4,"cache-lock-retries":10,"cache-lock-wait":1e4,"cache-max":1/0,"cache-min":10,cert:null,cidr:null,color:process.env.NO_COLOR==null,depth:1/0,description:!0,dev:!1,"dry-run":!1,editor:lpe.editor(),"engine-strict":!1,force:!1,"fetch-retries":2,"fetch-retry-factor":10,"fetch-retry-mintimeout":1e4,"fetch-retry-maxtimeout":6e4,git:"git","git-tag-version":!0,"commit-hooks":!0,global:!1,globalconfig:Eo.resolve(Dc,"etc","npmrc"),"global-style":!1,group:process.platform==="win32"?0:process.env.SUDO_GID||process.getgid&&process.getgid(),"ham-it-up":!1,heading:"npm","if-present":!1,"ignore-prepublish":!1,"ignore-scripts":!1,"init-module":Eo.resolve(Df,".npm-init.js"),"init-author-name":"","init-author-email":"","init-author-url":"","init-version":"1.0.0","init-license":"ISC",json:!1,key:null,"legacy-bundling":!1,link:!1,"local-address":void 0,loglevel:"notice",logstream:process.stderr,"logs-max":10,long:!1,maxsockets:50,message:"%s","metrics-registry":null,"node-options":null,offline:!1,"onload-script":!1,only:null,optional:!0,otp:null,"package-lock":!0,"package-lock-only":!1,parseable:!1,"prefer-offline":!1,"prefer-online":!1,prefix:Dc,production:process.env.NODE_ENV==="production",progress:!process.env.TRAVIS&&!process.env.CI,provenance:!1,proxy:null,"https-proxy":null,"no-proxy":null,"user-agent":"npm/{npm-version} node/{node-version} {platform} {arch}","read-only":!1,"rebuild-bundle":!0,registry:"https://registry.npmjs.org/",rollback:!0,save:!0,"save-bundle":!1,"save-dev":!1,"save-exact":!1,"save-optional":!1,"save-prefix":"^","save-prod":!1,scope:"","script-shell":null,"scripts-prepend-node-path":"warn-only",searchopts:"",searchexclude:null,searchlimit:20,searchstaleness:15*60,"send-metrics":!1,shell:lpe.shell(),shrinkwrap:!0,"sign-git-tag":!1,"sso-poll-frequency":500,"sso-type":"oauth","strict-ssl":!0,tag:"latest","tag-version-prefix":"v",timing:!1,tmp:ppe,unicode:Wze(),"unsafe-perm":process.platform==="win32"||process.platform==="cygwin"||!(process.getuid&&process.setuid&&process.getgid&&process.setgid)||process.getuid()!==0,usage:!1,user:process.platform==="win32"?0:"nobody",userconfig:Eo.resolve(Df,".npmrc"),umask:process.umask?process.umask():Kze.fromString("022"),version:!1,versions:!1,viewer:process.platform==="win32"?"browser":"man",_exit:!0},N9)}})});var mpe=g((dpt,QT)=>{"use strict";var Ec=require("path"),Zze=ope(),hpe=fpe();QT.exports=(e,t,r)=>{let i=new Zze(Object.assign({},hpe.defaults,r),t);i.add(Object.assign({},e),"cli");let n=[],s=!1;if(require.resolve.paths){let l=require.resolve.paths("npm"),c;try{c=require.resolve("npm",{paths:l.slice(-1)})}catch{s=!0}c&&n.push(i.addFile(Ec.resolve(Ec.dirname(c),"..","npmrc"),"builtin"))}i.addEnv(),i.loadPrefix();let a=Ec.resolve(i.localPrefix,".npmrc"),o=i.get("userconfig");if(!i.get("global")&&a!==o?n.push(i.addFile(a,"project")):i.add({},"project"),i.get("workspace-prefix")&&i.get("workspace-prefix")!==a){let l=Ec.resolve(i.get("workspace-prefix"),".npmrc");n.push(i.addFile(l,"workspace"))}if(n.push(i.addFile(i.get("userconfig"),"user")),i.get("prefix")){let l=Ec.resolve(i.get("prefix"),"etc");i.root.globalconfig=Ec.resolve(l,"npmrc"),i.root.globalignorefile=Ec.resolve(l,"npmignore")}n.push(i.addFile(i.get("globalconfig"),"global")),i.loadUser();let u=i.get("cafile");return u&&i.loadCAFile(u),{config:i,warnings:n.filter(Boolean),failedToLoadBuiltInConfig:s}};Object.defineProperty(QT.exports,"defaults",{get(){return hpe.defaults},enumerable:!0})});var Epe=g((fpt,Dpe)=>{var eO=require("url"),gpe=mpe(),ype=":_authToken",vpe=":_auth",_pe=":username",wpe=":_password";Dpe.exports=function(){let t,r;arguments.length>=2?(t=arguments[0],r=Object.assign({},arguments[1])):typeof arguments[0]=="string"?t=arguments[0]:r=Object.assign({},arguments[0]),r=r||{};let i=r.npmrc;return r.npmrc=(r.npmrc?{config:{get:n=>i[n]}}:gpe()).config,t=t||r.npmrc.get("registry")||gpe.defaults.registry,bpe(t,r)||Qze(r.npmrc)};function bpe(e,t){let r=eO.parse(e,!1,!0),i;for(;i!=="/"&&r.pathname!==i;){i=r.pathname||"/";let n="//"+r.host+i.replace(/\/$/,""),s=tGe(n,t.npmrc);if(s)return s;if(!t.recursive)return/\/$/.test(e)?void 0:bpe(eO.resolve(e,"."),t);r.pathname=eO.resolve(eGe(i),"..")||"/"}}function Qze(e){return e.get("_auth")?{token:k9(e.get("_auth")),type:"Basic"}:void 0}function eGe(e){return e[e.length-1]==="/"?e:e+"/"}function tGe(e,t){let r=rGe(t.get(e+ype)||t.get(e+"/"+ype));if(r)return r;let i=t.get(e+_pe)||t.get(e+"/"+_pe),n=t.get(e+wpe)||t.get(e+"/"+wpe),s=iGe(i,n);if(s)return s;let a=nGe(t.get(e+vpe)||t.get(e+"/"+vpe));if(a)return a}function k9(e){return e.replace(/^\$\{?([^}]*)\}?$/,function(t,r){return process.env[r]})}function rGe(e){return e?{token:k9(e),type:"Bearer"}:void 0}function iGe(e,t){if(!e||!t)return;let r=Buffer.from(k9(t),"base64").toString("utf8");return{token:Buffer.from(e+":"+r,"utf8").toString("base64"),type:"Basic",password:r,username:e}}function nGe(e){return e?{token:k9(e),type:"Basic"}:void 0}});var Rm=g((hpt,xpe)=>{var sGe="2.0.0",aGe=Number.MAX_SAFE_INTEGER||9007199254740991,oGe=16,uGe=250,lGe=["major","premajor","minor","preminor","patch","prepatch","prerelease"];xpe.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:oGe,MAX_SAFE_BUILD_LENGTH:uGe,MAX_SAFE_INTEGER:aGe,RELEASE_TYPES:lGe,SEMVER_SPEC_VERSION:sGe,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var Pm=g((mpt,Cpe)=>{var cGe=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};Cpe.exports=cGe});var Ef=g((xo,Spe)=>{var{MAX_SAFE_COMPONENT_LENGTH:tO,MAX_SAFE_BUILD_LENGTH:pGe,MAX_LENGTH:dGe}=Rm(),fGe=Pm();xo=Spe.exports={};var hGe=xo.re=[],mGe=xo.safeRe=[],Y=xo.src=[],X=xo.t={},gGe=0,rO="[a-zA-Z0-9-]",yGe=[["\\s",1],["\\d",dGe],[rO,pGe]],vGe=e=>{for(let[t,r]of yGe)e=e.split(`${t}*`).join(`${t}{0,${r}}`).split(`${t}+`).join(`${t}{1,${r}}`);return e},he=(e,t,r)=>{let i=vGe(t),n=gGe++;fGe(e,n,t),X[e]=n,Y[n]=t,hGe[n]=new RegExp(t,r?"g":void 0),mGe[n]=new RegExp(i,r?"g":void 0)};he("NUMERICIDENTIFIER","0|[1-9]\\d*");he("NUMERICIDENTIFIERLOOSE","\\d+");he("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${rO}*`);he("MAINVERSION",`(${Y[X.NUMERICIDENTIFIER]})\\.(${Y[X.NUMERICIDENTIFIER]})\\.(${Y[X.NUMERICIDENTIFIER]})`);he("MAINVERSIONLOOSE",`(${Y[X.NUMERICIDENTIFIERLOOSE]})\\.(${Y[X.NUMERICIDENTIFIERLOOSE]})\\.(${Y[X.NUMERICIDENTIFIERLOOSE]})`);he("PRERELEASEIDENTIFIER",`(?:${Y[X.NUMERICIDENTIFIER]}|${Y[X.NONNUMERICIDENTIFIER]})`);he("PRERELEASEIDENTIFIERLOOSE",`(?:${Y[X.NUMERICIDENTIFIERLOOSE]}|${Y[X.NONNUMERICIDENTIFIER]})`);he("PRERELEASE",`(?:-(${Y[X.PRERELEASEIDENTIFIER]}(?:\\.${Y[X.PRERELEASEIDENTIFIER]})*))`);he("PRERELEASELOOSE",`(?:-?(${Y[X.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${Y[X.PRERELEASEIDENTIFIERLOOSE]})*))`);he("BUILDIDENTIFIER",`${rO}+`);he("BUILD",`(?:\\+(${Y[X.BUILDIDENTIFIER]}(?:\\.${Y[X.BUILDIDENTIFIER]})*))`);he("FULLPLAIN",`v?${Y[X.MAINVERSION]}${Y[X.PRERELEASE]}?${Y[X.BUILD]}?`);he("FULL",`^${Y[X.FULLPLAIN]}$`);he("LOOSEPLAIN",`[v=\\s]*${Y[X.MAINVERSIONLOOSE]}${Y[X.PRERELEASELOOSE]}?${Y[X.BUILD]}?`);he("LOOSE",`^${Y[X.LOOSEPLAIN]}$`);he("GTLT","((?:<|>)?=?)");he("XRANGEIDENTIFIERLOOSE",`${Y[X.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);he("XRANGEIDENTIFIER",`${Y[X.NUMERICIDENTIFIER]}|x|X|\\*`);he("XRANGEPLAIN",`[v=\\s]*(${Y[X.XRANGEIDENTIFIER]})(?:\\.(${Y[X.XRANGEIDENTIFIER]})(?:\\.(${Y[X.XRANGEIDENTIFIER]})(?:${Y[X.PRERELEASE]})?${Y[X.BUILD]}?)?)?`);he("XRANGEPLAINLOOSE",`[v=\\s]*(${Y[X.XRANGEIDENTIFIERLOOSE]})(?:\\.(${Y[X.XRANGEIDENTIFIERLOOSE]})(?:\\.(${Y[X.XRANGEIDENTIFIERLOOSE]})(?:${Y[X.PRERELEASELOOSE]})?${Y[X.BUILD]}?)?)?`);he("XRANGE",`^${Y[X.GTLT]}\\s*${Y[X.XRANGEPLAIN]}$`);he("XRANGELOOSE",`^${Y[X.GTLT]}\\s*${Y[X.XRANGEPLAINLOOSE]}$`);he("COERCE",`(^|[^\\d])(\\d{1,${tO}})(?:\\.(\\d{1,${tO}}))?(?:\\.(\\d{1,${tO}}))?(?:$|[^\\d])`);he("COERCERTL",Y[X.COERCE],!0);he("LONETILDE","(?:~>?)");he("TILDETRIM",`(\\s*)${Y[X.LONETILDE]}\\s+`,!0);xo.tildeTrimReplace="$1~";he("TILDE",`^${Y[X.LONETILDE]}${Y[X.XRANGEPLAIN]}$`);he("TILDELOOSE",`^${Y[X.LONETILDE]}${Y[X.XRANGEPLAINLOOSE]}$`);he("LONECARET","(?:\\^)");he("CARETTRIM",`(\\s*)${Y[X.LONECARET]}\\s+`,!0);xo.caretTrimReplace="$1^";he("CARET",`^${Y[X.LONECARET]}${Y[X.XRANGEPLAIN]}$`);he("CARETLOOSE",`^${Y[X.LONECARET]}${Y[X.XRANGEPLAINLOOSE]}$`);he("COMPARATORLOOSE",`^${Y[X.GTLT]}\\s*(${Y[X.LOOSEPLAIN]})$|^$`);he("COMPARATOR",`^${Y[X.GTLT]}\\s*(${Y[X.FULLPLAIN]})$|^$`);he("COMPARATORTRIM",`(\\s*)${Y[X.GTLT]}\\s*(${Y[X.LOOSEPLAIN]}|${Y[X.XRANGEPLAIN]})`,!0);xo.comparatorTrimReplace="$1$2$3";he("HYPHENRANGE",`^\\s*(${Y[X.XRANGEPLAIN]})\\s+-\\s+(${Y[X.XRANGEPLAIN]})\\s*$`);he("HYPHENRANGELOOSE",`^\\s*(${Y[X.XRANGEPLAINLOOSE]})\\s+-\\s+(${Y[X.XRANGEPLAINLOOSE]})\\s*$`);he("STAR","(<|>)?=?\\s*\\*");he("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");he("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var R9=g((gpt,Ape)=>{var _Ge=Object.freeze({loose:!0}),wGe=Object.freeze({}),bGe=e=>e?typeof e!="object"?_Ge:e:wGe;Ape.exports=bGe});var iO=g((ypt,Fpe)=>{var Tpe=/^[0-9]+$/,Ope=(e,t)=>{let r=Tpe.test(e),i=Tpe.test(t);return r&&i&&(e=+e,t=+t),e===t?0:r&&!i?-1:i&&!r?1:e<t?-1:1},DGe=(e,t)=>Ope(t,e);Fpe.exports={compareIdentifiers:Ope,rcompareIdentifiers:DGe}});var Yr=g((vpt,Ppe)=>{var P9=Pm(),{MAX_LENGTH:Npe,MAX_SAFE_INTEGER:I9}=Rm(),{safeRe:kpe,t:Rpe}=Ef(),EGe=R9(),{compareIdentifiers:xf}=iO(),nO=class e{constructor(t,r){if(r=EGe(r),t instanceof e){if(t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease)return t;t=t.version}else if(typeof t!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof t}".`);if(t.length>Npe)throw new TypeError(`version is longer than ${Npe} characters`);P9("SemVer",t,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let i=t.trim().match(r.loose?kpe[Rpe.LOOSE]:kpe[Rpe.FULL]);if(!i)throw new TypeError(`Invalid Version: ${t}`);if(this.raw=t,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>I9||this.major<0)throw new TypeError("Invalid major version");if(this.minor>I9||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>I9||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s<I9)return s}return n}):this.prerelease=[],this.build=i[5]?i[5].split("."):[],this.format()}format(){return this.version=`${this.major}.${this.minor}.${this.patch}`,this.prerelease.length&&(this.version+=`-${this.prerelease.join(".")}`),this.version}toString(){return this.version}compare(t){if(P9("SemVer.compare",this.version,this.options,t),!(t instanceof e)){if(typeof t=="string"&&t===this.version)return 0;t=new e(t,this.options)}return t.version===this.version?0:this.compareMain(t)||this.comparePre(t)}compareMain(t){return t instanceof e||(t=new e(t,this.options)),xf(this.major,t.major)||xf(this.minor,t.minor)||xf(this.patch,t.patch)}comparePre(t){if(t instanceof e||(t=new e(t,this.options)),this.prerelease.length&&!t.prerelease.length)return-1;if(!this.prerelease.length&&t.prerelease.length)return 1;if(!this.prerelease.length&&!t.prerelease.length)return 0;let r=0;do{let i=this.prerelease[r],n=t.prerelease[r];if(P9("prerelease compare",r,i,n),i===void 0&&n===void 0)return 0;if(n===void 0)return 1;if(i===void 0)return-1;if(i===n)continue;return xf(i,n)}while(++r)}compareBuild(t){t instanceof e||(t=new e(t,this.options));let r=0;do{let i=this.build[r],n=t.build[r];if(P9("prerelease compare",r,i,n),i===void 0&&n===void 0)return 0;if(n===void 0)return 1;if(i===void 0)return-1;if(i===n)continue;return xf(i,n)}while(++r)}inc(t,r,i){switch(t){case"premajor":this.prerelease.length=0,this.patch=0,this.minor=0,this.major++,this.inc("pre",r,i);break;case"preminor":this.prerelease.length=0,this.patch=0,this.minor++,this.inc("pre",r,i);break;case"prepatch":this.prerelease.length=0,this.inc("patch",r,i),this.inc("pre",r,i);break;case"prerelease":this.prerelease.length===0&&this.inc("patch",r,i),this.inc("pre",r,i);break;case"major":(this.minor!==0||this.patch!==0||this.prerelease.length===0)&&this.major++,this.minor=0,this.patch=0,this.prerelease=[];break;case"minor":(this.patch!==0||this.prerelease.length===0)&&this.minor++,this.patch=0,this.prerelease=[];break;case"patch":this.prerelease.length===0&&this.patch++,this.prerelease=[];break;case"pre":{let n=Number(i)?1:0;if(!r&&i===!1)throw new Error("invalid increment argument: identifier is empty");if(this.prerelease.length===0)this.prerelease=[n];else{let s=this.prerelease.length;for(;--s>=0;)typeof this.prerelease[s]=="number"&&(this.prerelease[s]++,s=-2);if(s===-1){if(r===this.prerelease.join(".")&&i===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(n)}}if(r){let s=[r,n];i===!1&&(s=[r]),xf(this.prerelease[0],r)===0?isNaN(this.prerelease[1])&&(this.prerelease=s):this.prerelease=s}break}default:throw new Error(`invalid increment argument: ${t}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};Ppe.exports=nO});var xc=g((_pt,Lpe)=>{var Ipe=Yr(),xGe=(e,t,r=!1)=>{if(e instanceof Ipe)return e;try{return new Ipe(e,t)}catch(i){if(!r)return null;throw i}};Lpe.exports=xGe});var jpe=g((wpt,Bpe)=>{var CGe=xc(),SGe=(e,t)=>{let r=CGe(e,t);return r?r.version:null};Bpe.exports=SGe});var $pe=g((bpt,qpe)=>{var AGe=xc(),TGe=(e,t)=>{let r=AGe(e.trim().replace(/^[=v]+/,""),t);return r?r.version:null};qpe.exports=TGe});var Vpe=g((Dpt,Upe)=>{var Mpe=Yr(),OGe=(e,t,r,i,n)=>{typeof r=="string"&&(n=i,i=r,r=void 0);try{return new Mpe(e instanceof Mpe?e.version:e,r).inc(t,i,n).version}catch{return null}};Upe.exports=OGe});var Gpe=g((Ept,zpe)=>{var Hpe=xc(),FGe=(e,t)=>{let r=Hpe(e,null,!0),i=Hpe(t,null,!0),n=r.compare(i);if(n===0)return null;let s=n>0,a=s?r:i,o=s?i:r,u=!!a.prerelease.length;if(!!o.prerelease.length&&!u)return!o.patch&&!o.minor?"major":a.patch?"patch":a.minor?"minor":"major";let c=u?"pre":"";return r.major!==i.major?c+"major":r.minor!==i.minor?c+"minor":r.patch!==i.patch?c+"patch":"prerelease"};zpe.exports=FGe});var Kpe=g((xpt,Wpe)=>{var NGe=Yr(),kGe=(e,t)=>new NGe(e,t).major;Wpe.exports=kGe});var Xpe=g((Cpt,Ype)=>{var RGe=Yr(),PGe=(e,t)=>new RGe(e,t).minor;Ype.exports=PGe});var Zpe=g((Spt,Jpe)=>{var IGe=Yr(),LGe=(e,t)=>new IGe(e,t).patch;Jpe.exports=LGe});var ede=g((Apt,Qpe)=>{var BGe=xc(),jGe=(e,t)=>{let r=BGe(e,t);return r&&r.prerelease.length?r.prerelease:null};Qpe.exports=jGe});var Bn=g((Tpt,rde)=>{var tde=Yr(),qGe=(e,t,r)=>new tde(e,r).compare(new tde(t,r));rde.exports=qGe});var nde=g((Opt,ide)=>{var $Ge=Bn(),MGe=(e,t,r)=>$Ge(t,e,r);ide.exports=MGe});var ade=g((Fpt,sde)=>{var UGe=Bn(),VGe=(e,t)=>UGe(e,t,!0);sde.exports=VGe});var L9=g((Npt,ude)=>{var ode=Yr(),HGe=(e,t,r)=>{let i=new ode(e,r),n=new ode(t,r);return i.compare(n)||i.compareBuild(n)};ude.exports=HGe});var cde=g((kpt,lde)=>{var zGe=L9(),GGe=(e,t)=>e.sort((r,i)=>zGe(r,i,t));lde.exports=GGe});var dde=g((Rpt,pde)=>{var WGe=L9(),KGe=(e,t)=>e.sort((r,i)=>WGe(i,r,t));pde.exports=KGe});var Im=g((Ppt,fde)=>{var YGe=Bn(),XGe=(e,t,r)=>YGe(e,t,r)>0;fde.exports=XGe});var B9=g((Ipt,hde)=>{var JGe=Bn(),ZGe=(e,t,r)=>JGe(e,t,r)<0;hde.exports=ZGe});var sO=g((Lpt,mde)=>{var QGe=Bn(),eWe=(e,t,r)=>QGe(e,t,r)===0;mde.exports=eWe});var aO=g((Bpt,gde)=>{var tWe=Bn(),rWe=(e,t,r)=>tWe(e,t,r)!==0;gde.exports=rWe});var j9=g((jpt,yde)=>{var iWe=Bn(),nWe=(e,t,r)=>iWe(e,t,r)>=0;yde.exports=nWe});var q9=g((qpt,vde)=>{var sWe=Bn(),aWe=(e,t,r)=>sWe(e,t,r)<=0;vde.exports=aWe});var oO=g(($pt,_de)=>{var oWe=sO(),uWe=aO(),lWe=Im(),cWe=j9(),pWe=B9(),dWe=q9(),fWe=(e,t,r,i)=>{switch(t){case"===":return typeof e=="object"&&(e=e.version),typeof r=="object"&&(r=r.version),e===r;case"!==":return typeof e=="object"&&(e=e.version),typeof r=="object"&&(r=r.version),e!==r;case"":case"=":case"==":return oWe(e,r,i);case"!=":return uWe(e,r,i);case">":return lWe(e,r,i);case">=":return cWe(e,r,i);case"<":return pWe(e,r,i);case"<=":return dWe(e,r,i);default:throw new TypeError(`Invalid operator: ${t}`)}};_de.exports=fWe});var bde=g((Mpt,wde)=>{var hWe=Yr(),mWe=xc(),{safeRe:$9,t:M9}=Ef(),gWe=(e,t)=>{if(e instanceof hWe)return e;if(typeof e=="number"&&(e=String(e)),typeof e!="string")return null;t=t||{};let r=null;if(!t.rtl)r=e.match($9[M9.COERCE]);else{let i;for(;(i=$9[M9.COERCERTL].exec(e))&&(!r||r.index+r[0].length!==e.length);)(!r||i.index+i[0].length!==r.index+r[0].length)&&(r=i),$9[M9.COERCERTL].lastIndex=i.index+i[1].length+i[2].length;$9[M9.COERCERTL].lastIndex=-1}return r===null?null:mWe(`${r[2]}.${r[3]||"0"}.${r[4]||"0"}`,t)};wde.exports=gWe});var Ede=g((Upt,Dde)=>{"use strict";Dde.exports=function(e){e.prototype[Symbol.iterator]=function*(){for(let t=this.head;t;t=t.next)yield t.value}}});var Cde=g((Vpt,xde)=>{"use strict";xde.exports=ke;ke.Node=Cc;ke.create=ke;function ke(e){var t=this;if(t instanceof ke||(t=new ke),t.tail=null,t.head=null,t.length=0,e&&typeof e.forEach=="function")e.forEach(function(n){t.push(n)});else if(arguments.length>0)for(var r=0,i=arguments.length;r<i;r++)t.push(arguments[r]);return t}ke.prototype.removeNode=function(e){if(e.list!==this)throw new Error("removing node which does not belong to this list");var t=e.next,r=e.prev;return t&&(t.prev=r),r&&(r.next=t),e===this.head&&(this.head=t),e===this.tail&&(this.tail=r),e.list.length--,e.next=null,e.prev=null,e.list=null,t};ke.prototype.unshiftNode=function(e){if(e!==this.head){e.list&&e.list.removeNode(e);var t=this.head;e.list=this,e.next=t,t&&(t.prev=e),this.head=e,this.tail||(this.tail=e),this.length++}};ke.prototype.pushNode=function(e){if(e!==this.tail){e.list&&e.list.removeNode(e);var t=this.tail;e.list=this,e.prev=t,t&&(t.next=e),this.tail=e,this.head||(this.head=e),this.length++}};ke.prototype.push=function(){for(var e=0,t=arguments.length;e<t;e++)vWe(this,arguments[e]);return this.length};ke.prototype.unshift=function(){for(var e=0,t=arguments.length;e<t;e++)_We(this,arguments[e]);return this.length};ke.prototype.pop=function(){if(this.tail){var e=this.tail.value;return this.tail=this.tail.prev,this.tail?this.tail.next=null:this.head=null,this.length--,e}};ke.prototype.shift=function(){if(this.head){var e=this.head.value;return this.head=this.head.next,this.head?this.head.prev=null:this.tail=null,this.length--,e}};ke.prototype.forEach=function(e,t){t=t||this;for(var r=this.head,i=0;r!==null;i++)e.call(t,r.value,i,this),r=r.next};ke.prototype.forEachReverse=function(e,t){t=t||this;for(var r=this.tail,i=this.length-1;r!==null;i--)e.call(t,r.value,i,this),r=r.prev};ke.prototype.get=function(e){for(var t=0,r=this.head;r!==null&&t<e;t++)r=r.next;if(t===e&&r!==null)return r.value};ke.prototype.getReverse=function(e){for(var t=0,r=this.tail;r!==null&&t<e;t++)r=r.prev;if(t===e&&r!==null)return r.value};ke.prototype.map=function(e,t){t=t||this;for(var r=new ke,i=this.head;i!==null;)r.push(e.call(t,i.value,this)),i=i.next;return r};ke.prototype.mapReverse=function(e,t){t=t||this;for(var r=new ke,i=this.tail;i!==null;)r.push(e.call(t,i.value,this)),i=i.prev;return r};ke.prototype.reduce=function(e,t){var r,i=this.head;if(arguments.length>1)r=t;else if(this.head)i=this.head.next,r=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=0;i!==null;n++)r=e(r,i.value,n),i=i.next;return r};ke.prototype.reduceReverse=function(e,t){var r,i=this.tail;if(arguments.length>1)r=t;else if(this.tail)i=this.tail.prev,r=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=this.length-1;i!==null;n--)r=e(r,i.value,n),i=i.prev;return r};ke.prototype.toArray=function(){for(var e=new Array(this.length),t=0,r=this.head;r!==null;t++)e[t]=r.value,r=r.next;return e};ke.prototype.toArrayReverse=function(){for(var e=new Array(this.length),t=0,r=this.tail;r!==null;t++)e[t]=r.value,r=r.prev;return e};ke.prototype.slice=function(e,t){t=t||this.length,t<0&&(t+=this.length),e=e||0,e<0&&(e+=this.length);var r=new ke;if(t<e||t<0)return r;e<0&&(e=0),t>this.length&&(t=this.length);for(var i=0,n=this.head;n!==null&&i<e;i++)n=n.next;for(;n!==null&&i<t;i++,n=n.next)r.push(n.value);return r};ke.prototype.sliceReverse=function(e,t){t=t||this.length,t<0&&(t+=this.length),e=e||0,e<0&&(e+=this.length);var r=new ke;if(t<e||t<0)return r;e<0&&(e=0),t>this.length&&(t=this.length);for(var i=this.length,n=this.tail;n!==null&&i>t;i--)n=n.prev;for(;n!==null&&i>e;i--,n=n.prev)r.push(n.value);return r};ke.prototype.splice=function(e,t,...r){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);for(var i=0,n=this.head;n!==null&&i<e;i++)n=n.next;for(var s=[],i=0;n&&i<t;i++)s.push(n.value),n=this.removeNode(n);n===null&&(n=this.tail),n!==this.head&&n!==this.tail&&(n=n.prev);for(var i=0;i<r.length;i++)n=yWe(this,n,r[i]);return s};ke.prototype.reverse=function(){for(var e=this.head,t=this.tail,r=e;r!==null;r=r.prev){var i=r.prev;r.prev=r.next,r.next=i}return this.head=t,this.tail=e,this};function yWe(e,t,r){var i=t===e.head?new Cc(r,null,t,e):new Cc(r,t,t.next,e);return i.next===null&&(e.tail=i),i.prev===null&&(e.head=i),e.length++,i}function vWe(e,t){e.tail=new Cc(t,e.tail,null,e),e.head||(e.head=e.tail),e.length++}function _We(e,t){e.head=new Cc(t,null,e.head,e),e.tail||(e.tail=e.head),e.length++}function Cc(e,t,r,i){if(!(this instanceof Cc))return new Cc(e,t,r,i);this.list=i,this.value=e,t?(t.next=this,this.prev=t):this.prev=null,r?(r.prev=this,this.next=r):this.next=null}try{Ede()(ke)}catch{}});var Fde=g((Hpt,Ode)=>{"use strict";var wWe=Cde(),Sc=Symbol("max"),So=Symbol("length"),Cf=Symbol("lengthCalculator"),Bm=Symbol("allowStale"),Ac=Symbol("maxAge"),Co=Symbol("dispose"),Sde=Symbol("noDisposeOnSet"),_r=Symbol("lruList"),ps=Symbol("cache"),Tde=Symbol("updateAgeOnGet"),uO=()=>1,cO=class{constructor(t){if(typeof t=="number"&&(t={max:t}),t||(t={}),t.max&&(typeof t.max!="number"||t.max<0))throw new TypeError("max must be a non-negative number");let r=this[Sc]=t.max||1/0,i=t.length||uO;if(this[Cf]=typeof i!="function"?uO:i,this[Bm]=t.stale||!1,t.maxAge&&typeof t.maxAge!="number")throw new TypeError("maxAge must be a number");this[Ac]=t.maxAge||0,this[Co]=t.dispose,this[Sde]=t.noDisposeOnSet||!1,this[Tde]=t.updateAgeOnGet||!1,this.reset()}set max(t){if(typeof t!="number"||t<0)throw new TypeError("max must be a non-negative number");this[Sc]=t||1/0,Lm(this)}get max(){return this[Sc]}set allowStale(t){this[Bm]=!!t}get allowStale(){return this[Bm]}set maxAge(t){if(typeof t!="number")throw new TypeError("maxAge must be a non-negative number");this[Ac]=t,Lm(this)}get maxAge(){return this[Ac]}set lengthCalculator(t){typeof t!="function"&&(t=uO),t!==this[Cf]&&(this[Cf]=t,this[So]=0,this[_r].forEach(r=>{r.length=this[Cf](r.value,r.key),this[So]+=r.length})),Lm(this)}get lengthCalculator(){return this[Cf]}get length(){return this[So]}get itemCount(){return this[_r].length}rforEach(t,r){r=r||this;for(let i=this[_r].tail;i!==null;){let n=i.prev;Ade(this,t,i,r),i=n}}forEach(t,r){r=r||this;for(let i=this[_r].head;i!==null;){let n=i.next;Ade(this,t,i,r),i=n}}keys(){return this[_r].toArray().map(t=>t.key)}values(){return this[_r].toArray().map(t=>t.value)}reset(){this[Co]&&this[_r]&&this[_r].length&&this[_r].forEach(t=>this[Co](t.key,t.value)),this[ps]=new Map,this[_r]=new wWe,this[So]=0}dump(){return this[_r].map(t=>U9(this,t)?!1:{k:t.key,v:t.value,e:t.now+(t.maxAge||0)}).toArray().filter(t=>t)}dumpLru(){return this[_r]}set(t,r,i){if(i=i||this[Ac],i&&typeof i!="number")throw new TypeError("maxAge must be a number");let n=i?Date.now():0,s=this[Cf](r,t);if(this[ps].has(t)){if(s>this[Sc])return Sf(this,this[ps].get(t)),!1;let u=this[ps].get(t).value;return this[Co]&&(this[Sde]||this[Co](t,u.value)),u.now=n,u.maxAge=i,u.value=r,this[So]+=s-u.length,u.length=s,this.get(t),Lm(this),!0}let a=new pO(t,r,s,n,i);return a.length>this[Sc]?(this[Co]&&this[Co](t,r),!1):(this[So]+=a.length,this[_r].unshift(a),this[ps].set(t,this[_r].head),Lm(this),!0)}has(t){if(!this[ps].has(t))return!1;let r=this[ps].get(t).value;return!U9(this,r)}get(t){return lO(this,t,!0)}peek(t){return lO(this,t,!1)}pop(){let t=this[_r].tail;return t?(Sf(this,t),t.value):null}del(t){Sf(this,this[ps].get(t))}load(t){this.reset();let r=Date.now();for(let i=t.length-1;i>=0;i--){let n=t[i],s=n.e||0;if(s===0)this.set(n.k,n.v);else{let a=s-r;a>0&&this.set(n.k,n.v,a)}}}prune(){this[ps].forEach((t,r)=>lO(this,r,!1))}},lO=(e,t,r)=>{let i=e[ps].get(t);if(i){let n=i.value;if(U9(e,n)){if(Sf(e,i),!e[Bm])return}else r&&(e[Tde]&&(i.value.now=Date.now()),e[_r].unshiftNode(i));return n.value}},U9=(e,t)=>{if(!t||!t.maxAge&&!e[Ac])return!1;let r=Date.now()-t.now;return t.maxAge?r>t.maxAge:e[Ac]&&r>e[Ac]},Lm=e=>{if(e[So]>e[Sc])for(let t=e[_r].tail;e[So]>e[Sc]&&t!==null;){let r=t.prev;Sf(e,t),t=r}},Sf=(e,t)=>{if(t){let r=t.value;e[Co]&&e[Co](r.key,r.value),e[So]-=r.length,e[ps].delete(r.key),e[_r].removeNode(t)}},pO=class{constructor(t,r,i,n,s){this.key=t,this.value=r,this.length=i,this.now=n,this.maxAge=s||0}},Ade=(e,t,r,i)=>{let n=r.value;U9(e,n)&&(Sf(e,r),e[Bm]||(n=void 0)),n&&t.call(i,n.value,n.key,e)};Ode.exports=cO});var jn=g((zpt,Pde)=>{var dO=class e{constructor(t,r){if(r=DWe(r),t instanceof e)return t.loose===!!r.loose&&t.includePrerelease===!!r.includePrerelease?t:new e(t.raw,r);if(t instanceof fO)return this.raw=t.value,this.set=[[t]],this.format(),this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=t.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(i=>this.parseRange(i.trim())).filter(i=>i.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let i=this.set[0];if(this.set=this.set.filter(n=>!kde(n[0])),this.set.length===0)this.set=[i];else if(this.set.length>1){for(let n of this.set)if(n.length===1&&OWe(n[0])){this.set=[n];break}}}this.format()}format(){return this.range=this.set.map(t=>t.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(t){let i=((this.options.includePrerelease&&AWe)|(this.options.loose&&TWe))+":"+t,n=Nde.get(i);if(n)return n;let s=this.options.loose,a=s?Li[di.HYPHENRANGELOOSE]:Li[di.HYPHENRANGE];t=t.replace(a,qWe(this.options.includePrerelease)),st("hyphen replace",t),t=t.replace(Li[di.COMPARATORTRIM],xWe),st("comparator trim",t),t=t.replace(Li[di.TILDETRIM],CWe),st("tilde trim",t),t=t.replace(Li[di.CARETTRIM],SWe),st("caret trim",t);let o=t.split(" ").map(p=>FWe(p,this.options)).join(" ").split(/\s+/).map(p=>jWe(p,this.options));s&&(o=o.filter(p=>(st("loose invalid filter",p,this.options),!!p.match(Li[di.COMPARATORLOOSE])))),st("range list",o);let u=new Map,l=o.map(p=>new fO(p,this.options));for(let p of l){if(kde(p))return[p];u.set(p.value,p)}u.size>1&&u.has("")&&u.delete("");let c=[...u.values()];return Nde.set(i,c),c}intersects(t,r){if(!(t instanceof e))throw new TypeError("a Range is required");return this.set.some(i=>Rde(i,r)&&t.set.some(n=>Rde(n,r)&&i.every(s=>n.every(a=>s.intersects(a,r)))))}test(t){if(!t)return!1;if(typeof t=="string")try{t=new EWe(t,this.options)}catch{return!1}for(let r=0;r<this.set.length;r++)if($We(this.set[r],t,this.options))return!0;return!1}};Pde.exports=dO;var bWe=Fde(),Nde=new bWe({max:1e3}),DWe=R9(),fO=jm(),st=Pm(),EWe=Yr(),{safeRe:Li,t:di,comparatorTrimReplace:xWe,tildeTrimReplace:CWe,caretTrimReplace:SWe}=Ef(),{FLAG_INCLUDE_PRERELEASE:AWe,FLAG_LOOSE:TWe}=Rm(),kde=e=>e.value==="<0.0.0-0",OWe=e=>e.value==="",Rde=(e,t)=>{let r=!0,i=e.slice(),n=i.pop();for(;r&&i.length;)r=i.every(s=>n.intersects(s,t)),n=i.pop();return r},FWe=(e,t)=>(st("comp",e,t),e=RWe(e,t),st("caret",e),e=NWe(e,t),st("tildes",e),e=IWe(e,t),st("xrange",e),e=BWe(e,t),st("stars",e),e),fi=e=>!e||e.toLowerCase()==="x"||e==="*",NWe=(e,t)=>e.trim().split(/\s+/).map(r=>kWe(r,t)).join(" "),kWe=(e,t)=>{let r=t.loose?Li[di.TILDELOOSE]:Li[di.TILDE];return e.replace(r,(i,n,s,a,o)=>{st("tilde",e,i,n,s,a,o);let u;return fi(n)?u="":fi(s)?u=`>=${n}.0.0 <${+n+1}.0.0-0`:fi(a)?u=`>=${n}.${s}.0 <${n}.${+s+1}.0-0`:o?(st("replaceTilde pr",o),u=`>=${n}.${s}.${a}-${o} <${n}.${+s+1}.0-0`):u=`>=${n}.${s}.${a} <${n}.${+s+1}.0-0`,st("tilde return",u),u})},RWe=(e,t)=>e.trim().split(/\s+/).map(r=>PWe(r,t)).join(" "),PWe=(e,t)=>{st("caret",e,t);let r=t.loose?Li[di.CARETLOOSE]:Li[di.CARET],i=t.includePrerelease?"-0":"";return e.replace(r,(n,s,a,o,u)=>{st("caret",e,n,s,a,o,u);let l;return fi(s)?l="":fi(a)?l=`>=${s}.0.0${i} <${+s+1}.0.0-0`:fi(o)?s==="0"?l=`>=${s}.${a}.0${i} <${s}.${+a+1}.0-0`:l=`>=${s}.${a}.0${i} <${+s+1}.0.0-0`:u?(st("replaceCaret pr",u),s==="0"?a==="0"?l=`>=${s}.${a}.${o}-${u} <${s}.${a}.${+o+1}-0`:l=`>=${s}.${a}.${o}-${u} <${s}.${+a+1}.0-0`:l=`>=${s}.${a}.${o}-${u} <${+s+1}.0.0-0`):(st("no pr"),s==="0"?a==="0"?l=`>=${s}.${a}.${o}${i} <${s}.${a}.${+o+1}-0`:l=`>=${s}.${a}.${o}${i} <${s}.${+a+1}.0-0`:l=`>=${s}.${a}.${o} <${+s+1}.0.0-0`),st("caret return",l),l})},IWe=(e,t)=>(st("replaceXRanges",e,t),e.split(/\s+/).map(r=>LWe(r,t)).join(" ")),LWe=(e,t)=>{e=e.trim();let r=t.loose?Li[di.XRANGELOOSE]:Li[di.XRANGE];return e.replace(r,(i,n,s,a,o,u)=>{st("xRange",e,i,n,s,a,o,u);let l=fi(s),c=l||fi(a),p=c||fi(o),d=p;return n==="="&&d&&(n=""),u=t.includePrerelease?"-0":"",l?n===">"||n==="<"?i="<0.0.0-0":i="*":n&&d?(c&&(a=0),o=0,n===">"?(n=">=",c?(s=+s+1,a=0,o=0):(a=+a+1,o=0)):n==="<="&&(n="<",c?s=+s+1:a=+a+1),n==="<"&&(u="-0"),i=`${n+s}.${a}.${o}${u}`):c?i=`>=${s}.0.0${u} <${+s+1}.0.0-0`:p&&(i=`>=${s}.${a}.0${u} <${s}.${+a+1}.0-0`),st("xRange return",i),i})},BWe=(e,t)=>(st("replaceStars",e,t),e.trim().replace(Li[di.STAR],"")),jWe=(e,t)=>(st("replaceGTE0",e,t),e.trim().replace(Li[t.includePrerelease?di.GTE0PRE:di.GTE0],"")),qWe=e=>(t,r,i,n,s,a,o,u,l,c,p,d,f)=>(fi(i)?r="":fi(n)?r=`>=${i}.0.0${e?"-0":""}`:fi(s)?r=`>=${i}.${n}.0${e?"-0":""}`:a?r=`>=${r}`:r=`>=${r}${e?"-0":""}`,fi(l)?u="":fi(c)?u=`<${+l+1}.0.0-0`:fi(p)?u=`<${l}.${+c+1}.0-0`:d?u=`<=${l}.${c}.${p}-${d}`:e?u=`<${l}.${c}.${+p+1}-0`:u=`<=${u}`,`${r} ${u}`.trim()),$We=(e,t,r)=>{for(let i=0;i<e.length;i++)if(!e[i].test(t))return!1;if(t.prerelease.length&&!r.includePrerelease){for(let i=0;i<e.length;i++)if(st(e[i].semver),e[i].semver!==fO.ANY&&e[i].semver.prerelease.length>0){let n=e[i].semver;if(n.major===t.major&&n.minor===t.minor&&n.patch===t.patch)return!0}return!1}return!0}});var jm=g((Gpt,$de)=>{var qm=Symbol("SemVer ANY"),gO=class e{static get ANY(){return qm}constructor(t,r){if(r=Ide(r),t instanceof e){if(t.loose===!!r.loose)return t;t=t.value}t=t.trim().split(/\s+/).join(" "),mO("comparator",t,r),this.options=r,this.loose=!!r.loose,this.parse(t),this.semver===qm?this.value="":this.value=this.operator+this.semver.version,mO("comp",this)}parse(t){let r=this.options.loose?Lde[Bde.COMPARATORLOOSE]:Lde[Bde.COMPARATOR],i=t.match(r);if(!i)throw new TypeError(`Invalid comparator: ${t}`);this.operator=i[1]!==void 0?i[1]:"",this.operator==="="&&(this.operator=""),i[2]?this.semver=new jde(i[2],this.options.loose):this.semver=qm}toString(){return this.value}test(t){if(mO("Comparator.test",t,this.options.loose),this.semver===qm||t===qm)return!0;if(typeof t=="string")try{t=new jde(t,this.options)}catch{return!1}return hO(t,this.operator,this.semver,this.options)}intersects(t,r){if(!(t instanceof e))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new qde(t.value,r).test(this.value):t.operator===""?t.value===""?!0:new qde(this.value,r).test(t.semver):(r=Ide(r),r.includePrerelease&&(this.value==="<0.0.0-0"||t.value==="<0.0.0-0")||!r.includePrerelease&&(this.value.startsWith("<0.0.0")||t.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&t.operator.startsWith(">")||this.operator.startsWith("<")&&t.operator.startsWith("<")||this.semver.version===t.semver.version&&this.operator.includes("=")&&t.operator.includes("=")||hO(this.semver,"<",t.semver,r)&&this.operator.startsWith(">")&&t.operator.startsWith("<")||hO(this.semver,">",t.semver,r)&&this.operator.startsWith("<")&&t.operator.startsWith(">")))}};$de.exports=gO;var Ide=R9(),{safeRe:Lde,t:Bde}=Ef(),hO=oO(),mO=Pm(),jde=Yr(),qde=jn()});var $m=g((Wpt,Mde)=>{var MWe=jn(),UWe=(e,t,r)=>{try{t=new MWe(t,r)}catch{return!1}return t.test(e)};Mde.exports=UWe});var Vde=g((Kpt,Ude)=>{var VWe=jn(),HWe=(e,t)=>new VWe(e,t).set.map(r=>r.map(i=>i.value).join(" ").trim().split(" "));Ude.exports=HWe});var zde=g((Ypt,Hde)=>{var zWe=Yr(),GWe=jn(),WWe=(e,t,r)=>{let i=null,n=null,s=null;try{s=new GWe(t,r)}catch{return null}return e.forEach(a=>{s.test(a)&&(!i||n.compare(a)===-1)&&(i=a,n=new zWe(i,r))}),i};Hde.exports=WWe});var Wde=g((Xpt,Gde)=>{var KWe=Yr(),YWe=jn(),XWe=(e,t,r)=>{let i=null,n=null,s=null;try{s=new YWe(t,r)}catch{return null}return e.forEach(a=>{s.test(a)&&(!i||n.compare(a)===1)&&(i=a,n=new KWe(i,r))}),i};Gde.exports=XWe});var Xde=g((Jpt,Yde)=>{var yO=Yr(),JWe=jn(),Kde=Im(),ZWe=(e,t)=>{e=new JWe(e,t);let r=new yO("0.0.0");if(e.test(r)||(r=new yO("0.0.0-0"),e.test(r)))return r;r=null;for(let i=0;i<e.set.length;++i){let n=e.set[i],s=null;n.forEach(a=>{let o=new yO(a.semver.version);switch(a.operator){case">":o.prerelease.length===0?o.patch++:o.prerelease.push(0),o.raw=o.format();case"":case">=":(!s||Kde(o,s))&&(s=o);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${a.operator}`)}}),s&&(!r||Kde(r,s))&&(r=s)}return r&&e.test(r)?r:null};Yde.exports=ZWe});var Zde=g((Zpt,Jde)=>{var QWe=jn(),eKe=(e,t)=>{try{return new QWe(e,t).range||"*"}catch{return null}};Jde.exports=eKe});var V9=g((Qpt,rfe)=>{var tKe=Yr(),tfe=jm(),{ANY:rKe}=tfe,iKe=jn(),nKe=$m(),Qde=Im(),efe=B9(),sKe=q9(),aKe=j9(),oKe=(e,t,r,i)=>{e=new tKe(e,i),t=new iKe(t,i);let n,s,a,o,u;switch(r){case">":n=Qde,s=sKe,a=efe,o=">",u=">=";break;case"<":n=efe,s=aKe,a=Qde,o="<",u="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(nKe(e,t,i))return!1;for(let l=0;l<t.set.length;++l){let c=t.set[l],p=null,d=null;if(c.forEach(f=>{f.semver===rKe&&(f=new tfe(">=0.0.0")),p=p||f,d=d||f,n(f.semver,p.semver,i)?p=f:a(f.semver,d.semver,i)&&(d=f)}),p.operator===o||p.operator===u||(!d.operator||d.operator===o)&&s(e,d.semver))return!1;if(d.operator===u&&a(e,d.semver))return!1}return!0};rfe.exports=oKe});var nfe=g((edt,ife)=>{var uKe=V9(),lKe=(e,t,r)=>uKe(e,t,">",r);ife.exports=lKe});var afe=g((tdt,sfe)=>{var cKe=V9(),pKe=(e,t,r)=>cKe(e,t,"<",r);sfe.exports=pKe});var lfe=g((rdt,ufe)=>{var ofe=jn(),dKe=(e,t,r)=>(e=new ofe(e,r),t=new ofe(t,r),e.intersects(t,r));ufe.exports=dKe});var pfe=g((idt,cfe)=>{var fKe=$m(),hKe=Bn();cfe.exports=(e,t,r)=>{let i=[],n=null,s=null,a=e.sort((c,p)=>hKe(c,p,r));for(let c of a)fKe(c,t,r)?(s=c,n||(n=c)):(s&&i.push([n,s]),s=null,n=null);n&&i.push([n,null]);let o=[];for(let[c,p]of i)c===p?o.push(c):!p&&c===a[0]?o.push("*"):p?c===a[0]?o.push(`<=${p}`):o.push(`${c} - ${p}`):o.push(`>=${c}`);let u=o.join(" || "),l=typeof t.raw=="string"?t.raw:String(t);return u.length<l.length?u:t}});var yfe=g((ndt,gfe)=>{var dfe=jn(),_O=jm(),{ANY:vO}=_O,Mm=$m(),wO=Bn(),mKe=(e,t,r={})=>{if(e===t)return!0;e=new dfe(e,r),t=new dfe(t,r);let i=!1;e:for(let n of e.set){for(let s of t.set){let a=yKe(n,s,r);if(i=i||a!==null,a)continue e}if(i)return!1}return!0},gKe=[new _O(">=0.0.0-0")],ffe=[new _O(">=0.0.0")],yKe=(e,t,r)=>{if(e===t)return!0;if(e.length===1&&e[0].semver===vO){if(t.length===1&&t[0].semver===vO)return!0;r.includePrerelease?e=gKe:e=ffe}if(t.length===1&&t[0].semver===vO){if(r.includePrerelease)return!0;t=ffe}let i=new Set,n,s;for(let f of e)f.operator===">"||f.operator===">="?n=hfe(n,f,r):f.operator==="<"||f.operator==="<="?s=mfe(s,f,r):i.add(f.semver);if(i.size>1)return null;let a;if(n&&s){if(a=wO(n.semver,s.semver,r),a>0)return null;if(a===0&&(n.operator!==">="||s.operator!=="<="))return null}for(let f of i){if(n&&!Mm(f,String(n),r)||s&&!Mm(f,String(s),r))return null;for(let h of t)if(!Mm(f,String(h),r))return!1;return!0}let o,u,l,c,p=s&&!r.includePrerelease&&s.semver.prerelease.length?s.semver:!1,d=n&&!r.includePrerelease&&n.semver.prerelease.length?n.semver:!1;p&&p.prerelease.length===1&&s.operator==="<"&&p.prerelease[0]===0&&(p=!1);for(let f of t){if(c=c||f.operator===">"||f.operator===">=",l=l||f.operator==="<"||f.operator==="<=",n){if(d&&f.semver.prerelease&&f.semver.prerelease.length&&f.semver.major===d.major&&f.semver.minor===d.minor&&f.semver.patch===d.patch&&(d=!1),f.operator===">"||f.operator===">="){if(o=hfe(n,f,r),o===f&&o!==n)return!1}else if(n.operator===">="&&!Mm(n.semver,String(f),r))return!1}if(s){if(p&&f.semver.prerelease&&f.semver.prerelease.length&&f.semver.major===p.major&&f.semver.minor===p.minor&&f.semver.patch===p.patch&&(p=!1),f.operator==="<"||f.operator==="<="){if(u=mfe(s,f,r),u===f&&u!==s)return!1}else if(s.operator==="<="&&!Mm(s.semver,String(f),r))return!1}if(!f.operator&&(s||n)&&a!==0)return!1}return!(n&&l&&!s&&a!==0||s&&c&&!n&&a!==0||d||p)},hfe=(e,t,r)=>{if(!e)return t;let i=wO(e.semver,t.semver,r);return i>0?e:i<0||t.operator===">"&&e.operator===">="?t:e},mfe=(e,t,r)=>{if(!e)return t;let i=wO(e.semver,t.semver,r);return i<0?e:i>0||t.operator==="<"&&e.operator==="<="?t:e};gfe.exports=mKe});var bfe=g((sdt,wfe)=>{var bO=Ef(),vfe=Rm(),vKe=Yr(),_fe=iO(),_Ke=xc(),wKe=jpe(),bKe=$pe(),DKe=Vpe(),EKe=Gpe(),xKe=Kpe(),CKe=Xpe(),SKe=Zpe(),AKe=ede(),TKe=Bn(),OKe=nde(),FKe=ade(),NKe=L9(),kKe=cde(),RKe=dde(),PKe=Im(),IKe=B9(),LKe=sO(),BKe=aO(),jKe=j9(),qKe=q9(),$Ke=oO(),MKe=bde(),UKe=jm(),VKe=jn(),HKe=$m(),zKe=Vde(),GKe=zde(),WKe=Wde(),KKe=Xde(),YKe=Zde(),XKe=V9(),JKe=nfe(),ZKe=afe(),QKe=lfe(),eYe=pfe(),tYe=yfe();wfe.exports={parse:_Ke,valid:wKe,clean:bKe,inc:DKe,diff:EKe,major:xKe,minor:CKe,patch:SKe,prerelease:AKe,compare:TKe,rcompare:OKe,compareLoose:FKe,compareBuild:NKe,sort:kKe,rsort:RKe,gt:PKe,lt:IKe,eq:LKe,neq:BKe,gte:jKe,lte:qKe,cmp:$Ke,coerce:MKe,Comparator:UKe,Range:VKe,satisfies:HKe,toComparators:zKe,maxSatisfying:GKe,minSatisfying:WKe,minVersion:KKe,validRange:YKe,outside:XKe,gtr:JKe,ltr:ZKe,intersects:QKe,simplifyRange:eYe,subset:tYe,SemVer:vKe,re:bO.re,src:bO.src,tokens:bO.t,SEMVER_SPEC_VERSION:vfe.SEMVER_SPEC_VERSION,RELEASE_TYPES:vfe.RELEASE_TYPES,compareIdentifiers:_fe.compareIdentifiers,rcompareIdentifiers:_fe.rcompareIdentifiers}});var DO=g((adt,Cfe)=>{var rYe=require("url"),{getIt:iYe}=Ple(),{debug:nYe,retry:Dfe,promise:sYe,httpErrors:aYe,jsonResponse:oYe}=Qle(),uYe=xce(),lYe=Epe(),cYe=bfe(),pYe=e=>/(application\/json|\+json)/.test(e||"");function dYe(e,t,r){let i=e.response||{statusCode:500,headers:{}};return Dfe.shouldRetry(e,t,r)||i&&i.statusCode>=500||i.statusCode<300&&!pYe(i.headers["content-type"])}function fYe(e,t){if(t.registryUrl)return t.registryUrl;let r=e.split("/")[0];return uYe(r)}var Efe=iYe([oYe({force:!0}),aYe(),nYe({namespace:"get-latest-version"}),sYe(),Dfe({shouldRetry:dYe})]);async function xfe(e,t){let r=typeof t=="string"?{range:t,auth:!0}:Object.assign({range:"latest",auth:!0},t),i=fYe(e,r),n=rYe.resolve(i,encodeURIComponent(e).replace(/^%40/,"@")),s=r.auth&&lYe(i,{recursive:!0}),a=r.request||Efe,o={accept:"application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"};s&&(o.authorization=`${s.type} ${s.token}`);let u;try{u=await a({url:n,headers:o})}catch(h){throw h.response&&h.response.statusCode===404?new Error(`Package \`${e}\` doesn't exist`):h}let l=u.body,c=r.range,p=l["dist-tags"].latest;if(l["dist-tags"][c])return r.includeLatest?{latest:p,inRange:l["dist-tags"][c]}:l["dist-tags"][c];if(l.versions[c])return r.includeLatest?{latest:p,inRange:c}:c;let d=Object.keys(l.versions),f=cYe.maxSatisfying(d,c);return f?r.includeLatest?{latest:p,inRange:f}:f:r.includeLatest?{latest:p,inRange:void 0}:void 0}xfe.request=Efe;Cfe.exports=xfe});var zfe=g((ydt,Ao)=>{var Yt=require("fs"),TO=require("os"),nn=require("path"),Ffe=require("crypto"),da={fs:Yt.constants,os:TO.constants},Nfe="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",Rfe=/XXXXXX/,gYe=3,Pfe=(da.O_CREAT||da.fs.O_CREAT)|(da.O_EXCL||da.fs.O_EXCL)|(da.O_RDWR||da.fs.O_RDWR),yYe=TO.platform()==="win32",vYe=da.EBADF||da.os.errno.EBADF,_Ye=da.ENOENT||da.os.errno.ENOENT,Ife=448,Lfe=384,wYe="exit",Af=[],Bfe=Yt.rmdirSync.bind(Yt),jfe=!1;function bYe(e,t){return Yt.rm(e,{recursive:!0},t)}function qfe(e){return Yt.rmSync(e,{recursive:!0})}function OO(e,t){let r=Tf(e,t),i=r[0],n=r[1];try{Ufe(i)}catch(a){return n(a)}let s=i.tries;(function a(){try{let o=Mfe(i);Yt.stat(o,function(u){if(!u)return s-- >0?a():n(new Error("Could not get a unique tmp filename, max tries reached "+o));n(null,o)})}catch(o){n(o)}})()}function FO(e){let t=Tf(e),r=t[0];Ufe(r);let i=r.tries;do{let n=Mfe(r);try{Yt.statSync(n)}catch{return n}}while(i-- >0);throw new Error("Could not get a unique tmp filename, max tries reached")}function DYe(e,t){let r=Tf(e,t),i=r[0],n=r[1];OO(i,function(a,o){if(a)return n(a);Yt.open(o,Pfe,i.mode||Lfe,function(l,c){if(l)return n(l);if(i.discardDescriptor)return Yt.close(c,function(d){return n(d,o,void 0,CO(o,-1,i,!1))});{let p=i.discardDescriptor||i.detachDescriptor;n(null,o,c,CO(o,p?-1:c,i,!1))}})})}function EYe(e){let t=Tf(e),r=t[0],i=r.discardDescriptor||r.detachDescriptor,n=FO(r);var s=Yt.openSync(n,Pfe,r.mode||Lfe);return r.discardDescriptor&&(Yt.closeSync(s),s=void 0),{name:n,fd:s,removeCallback:CO(n,i?-1:s,r,!0)}}function xYe(e,t){let r=Tf(e,t),i=r[0],n=r[1];OO(i,function(a,o){if(a)return n(a);Yt.mkdir(o,i.mode||Ife,function(l){if(l)return n(l);n(null,o,$fe(o,i,!1))})})}function CYe(e){let t=Tf(e),r=t[0],i=FO(r);return Yt.mkdirSync(i,r.mode||Ife),{name:i,removeCallback:$fe(i,r,!0)}}function SYe(e,t){let r=function(i){if(i&&!AO(i))return t(i);t()};0<=e[0]?Yt.close(e[0],function(){Yt.unlink(e[1],r)}):Yt.unlink(e[1],r)}function AYe(e){let t=null;try{0<=e[0]&&Yt.closeSync(e[0])}catch(r){if(!FYe(r)&&!AO(r))throw r}finally{try{Yt.unlinkSync(e[1])}catch(r){AO(r)||(t=r)}}if(t!==null)throw t}function CO(e,t,r,i){let n=z9(AYe,[t,e],i),s=z9(SYe,[t,e],i,n);return r.keep||Af.unshift(n),i?n:s}function $fe(e,t,r){let i=t.unsafeCleanup?bYe:Yt.rmdir.bind(Yt),n=t.unsafeCleanup?qfe:Bfe,s=z9(n,e,r),a=z9(i,e,r,s);return t.keep||Af.unshift(s),r?s:a}function z9(e,t,r,i){let n=!1;return function s(a){if(!n){let o=i||s,u=Af.indexOf(o);return u>=0&&Af.splice(u,1),n=!0,r||e===Bfe||e===qfe?e(t):e(t,a||function(){})}}}function TYe(){if(jfe)for(;Af.length;)try{Af[0]()}catch{}}function kfe(e){let t=[],r=null;try{r=Ffe.randomBytes(e)}catch{r=Ffe.pseudoRandomBytes(e)}for(var i=0;i<e;i++)t.push(Nfe[r[i]%Nfe.length]);return t.join("")}function OYe(e){return e===null||Bi(e)||!e.trim()}function Bi(e){return typeof e>"u"}function Tf(e,t){if(typeof e=="function")return[{},e];if(Bi(e))return[{},t];let r={};for(let i of Object.getOwnPropertyNames(e))r[i]=e[i];return[r,t]}function Mfe(e){let t=e.tmpdir;if(!Bi(e.name))return nn.join(t,e.dir,e.name);if(!Bi(e.template))return nn.join(t,e.dir,e.template).replace(Rfe,kfe(6));let r=[e.prefix?e.prefix:"tmp","-",process.pid,"-",kfe(12),e.postfix?"-"+e.postfix:""].join("");return nn.join(t,e.dir,r)}function Ufe(e){e.tmpdir=Hfe(e);let t=e.tmpdir;if(Bi(e.name)||xO(e.name,"name",t),Bi(e.dir)||xO(e.dir,"dir",t),!Bi(e.template)&&(xO(e.template,"template",t),!e.template.match(Rfe)))throw new Error(`Invalid template, found "${e.template}".`);if(!Bi(e.tries)&&isNaN(e.tries)||e.tries<0)throw new Error(`Invalid tries, found "${e.tries}".`);e.tries=Bi(e.name)?e.tries||gYe:1,e.keep=!!e.keep,e.detachDescriptor=!!e.detachDescriptor,e.discardDescriptor=!!e.discardDescriptor,e.unsafeCleanup=!!e.unsafeCleanup,e.dir=Bi(e.dir)?"":nn.relative(t,SO(e.dir,t)),e.template=Bi(e.template)?void 0:nn.relative(t,SO(e.template,t)),e.template=OYe(e.template)?void 0:nn.relative(e.dir,e.template),e.name=Bi(e.name)?void 0:e.name,e.prefix=Bi(e.prefix)?"":e.prefix,e.postfix=Bi(e.postfix)?"":e.postfix}function SO(e,t){return e.startsWith(t)?nn.resolve(e):nn.resolve(nn.join(t,e))}function xO(e,t,r){if(t==="name"){if(nn.isAbsolute(e))throw new Error(`${t} option must not contain an absolute path, found "${e}".`);let i=nn.basename(e);if(i===".."||i==="."||i!==e)throw new Error(`${t} option must not contain a path, found "${e}".`)}else{if(nn.isAbsolute(e)&&!e.startsWith(r))throw new Error(`${t} option must be relative to "${r}", found "${e}".`);let i=SO(e,r);if(!i.startsWith(r))throw new Error(`${t} option must be relative to "${r}", found "${i}".`)}}function FYe(e){return Vfe(e,-vYe,"EBADF")}function AO(e){return Vfe(e,-_Ye,"ENOENT")}function Vfe(e,t,r){return yYe?e.code===r:e.code===r&&e.errno===t}function NYe(){jfe=!0}function Hfe(e){return nn.resolve(e&&e.tmpdir||TO.tmpdir())}process.addListener(wYe,TYe);Object.defineProperty(Ao.exports,"tmpdir",{enumerable:!0,configurable:!1,get:function(){return Hfe()}});Ao.exports.dir=xYe;Ao.exports.dirSync=CYe;Ao.exports.file=DYe;Ao.exports.fileSync=EYe;Ao.exports.tmpName=OO;Ao.exports.tmpNameSync=FO;Ao.exports.setGracefulCleanup=NYe});var IO=g(Of=>{"use strict";Object.defineProperty(Of,"__esModule",{value:!0});Of.DEFAULT_COLOR_MAP=void 0;Of.DEFAULT_COLOR_MAP={red:"\x1B[31m",green:"\x1B[32m",yellow:"\x1B[33m",blue:"\x1B[34m",magenta:"\x1B[35m",cyan:"\x1B[36m",white:"\x1B[37m",white_bold:"\x1B[01m",reset:"\x1B[0m"};var PO=class{constructor(t=Of.DEFAULT_COLOR_MAP){this.text="",this.colorMap=t}addCharsWithColor(t,r){let i=this.colorMap[t];this.text+=i!==void 0?`${i}${r}${this.colorMap.reset}`:r}renderConsole(){return this.text}};Of.default=PO});var Gm=g(Xt=>{"use strict";Object.defineProperty(Xt,"__esModule",{value:!0});Xt.DEFAULT_HEADER_ALIGNMENT=Xt.DEFAULT_ROW_ALIGNMENT=Xt.DEFAULT_HEADER_FONT_COLOR=Xt.DEFAULT_ROW_FONT_COLOR=Xt.COLORS=Xt.ALIGNMENTS=Xt.DEFAULT_TABLE_STYLE=Xt.DEFAULT_ROW_SEPARATOR=Xt.DEFAULT_COLUMN_LEN=void 0;Xt.DEFAULT_COLUMN_LEN=20;Xt.DEFAULT_ROW_SEPARATOR=!1;Xt.DEFAULT_TABLE_STYLE={headerTop:{left:"\u250C",mid:"\u252C",right:"\u2510",other:"\u2500"},headerBottom:{left:"\u251C",mid:"\u253C",right:"\u2524",other:"\u2500"},tableBottom:{left:"\u2514",mid:"\u2534",right:"\u2518",other:"\u2500"},vertical:"\u2502",rowSeparator:{left:"\u251C",mid:"\u253C",right:"\u2524",other:"\u2500"}};Xt.ALIGNMENTS=["right","left","center"];Xt.COLORS=["red","green","yellow","white","blue","magenta","cyan","white_bold","reset"];Xt.DEFAULT_ROW_FONT_COLOR="white";Xt.DEFAULT_HEADER_FONT_COLOR="white_bold";Xt.DEFAULT_ROW_ALIGNMENT="right";Xt.DEFAULT_HEADER_ALIGNMENT="center"});var LO=g(Oo=>{"use strict";Object.defineProperty(Oo,"__esModule",{value:!0});Oo.rawColumnToInternalColumn=Oo.objIfExists=void 0;var jYe=Gm(),qYe=(e,t)=>t?{[e]:t}:{};Oo.objIfExists=qYe;var $Ye=e=>{var t;return Object.assign(Object.assign(Object.assign(Object.assign({name:e.name,title:(t=e.title)!==null&&t!==void 0?t:e.name},(0,Oo.objIfExists)("color",e.color)),(0,Oo.objIfExists)("maxLen",e.maxLen)),(0,Oo.objIfExists)("minLen",e.minLen)),{alignment:e.alignment||jYe.DEFAULT_ROW_ALIGNMENT})};Oo.rawColumnToInternalColumn=$Ye});var t1e=g(BO=>{"use strict";Object.defineProperty(BO,"__esModule",{value:!0});var MYe=[{first:768,last:879},{first:1155,last:1158},{first:1160,last:1161},{first:1425,last:1469},{first:1471,last:1471},{first:1473,last:1474},{first:1476,last:1477},{first:1479,last:1479},{first:1536,last:1539},{first:1552,last:1557},{first:1611,last:1630},{first:1648,last:1648},{first:1750,last:1764},{first:1767,last:1768},{first:1770,last:1773},{first:1807,last:1807},{first:1809,last:1809},{first:1840,last:1866},{first:1958,last:1968},{first:2027,last:2035},{first:2305,last:2306},{first:2364,last:2364},{first:2369,last:2376},{first:2381,last:2381},{first:2385,last:2388},{first:2402,last:2403},{first:2433,last:2433},{first:2492,last:2492},{first:2497,last:2500},{first:2509,last:2509},{first:2530,last:2531},{first:2561,last:2562},{first:2620,last:2620},{first:2625,last:2626},{first:2631,last:2632},{first:2635,last:2637},{first:2672,last:2673},{first:2689,last:2690},{first:2748,last:2748},{first:2753,last:2757},{first:2759,last:2760},{first:2765,last:2765},{first:2786,last:2787},{first:2817,last:2817},{first:2876,last:2876},{first:2879,last:2879},{first:2881,last:2883},{first:2893,last:2893},{first:2902,last:2902},{first:2946,last:2946},{first:3008,last:3008},{first:3021,last:3021},{first:3134,last:3136},{first:3142,last:3144},{first:3146,last:3149},{first:3157,last:3158},{first:3260,last:3260},{first:3263,last:3263},{first:3270,last:3270},{first:3276,last:3277},{first:3298,last:3299},{first:3393,last:3395},{first:3405,last:3405},{first:3530,last:3530},{first:3538,last:3540},{first:3542,last:3542},{first:3633,last:3633},{first:3636,last:3642},{first:3655,last:3662},{first:3761,last:3761},{first:3764,last:3769},{first:3771,last:3772},{first:3784,last:3789},{first:3864,last:3865},{first:3893,last:3893},{first:3895,last:3895},{first:3897,last:3897},{first:3953,last:3966},{first:3968,last:3972},{first:3974,last:3975},{first:3984,last:3991},{first:3993,last:4028},{first:4038,last:4038},{first:4141,last:4144},{first:4146,last:4146},{first:4150,last:4151},{first:4153,last:4153},{first:4184,last:4185},{first:4448,last:4607},{first:4959,last:4959},{first:5906,last:5908},{first:5938,last:5940},{first:5970,last:5971},{first:6002,last:6003},{first:6068,last:6069},{first:6071,last:6077},{first:6086,last:6086},{first:6089,last:6099},{first:6109,last:6109},{first:6155,last:6157},{first:6313,last:6313},{first:6432,last:6434},{first:6439,last:6440},{first:6450,last:6450},{first:6457,last:6459},{first:6679,last:6680},{first:6912,last:6915},{first:6964,last:6964},{first:6966,last:6970},{first:6972,last:6972},{first:6978,last:6978},{first:7019,last:7027},{first:7616,last:7626},{first:7678,last:7679},{first:8203,last:8207},{first:8234,last:8238},{first:8288,last:8291},{first:8298,last:8303},{first:8400,last:8431},{first:12330,last:12335},{first:12441,last:12442},{first:43014,last:43014},{first:43019,last:43019},{first:43045,last:43046},{first:64286,last:64286},{first:65024,last:65039},{first:65056,last:65059},{first:65279,last:65279},{first:65529,last:65531},{first:68097,last:68099},{first:68101,last:68102},{first:68108,last:68111},{first:68152,last:68154},{first:68159,last:68159},{first:119143,last:119145},{first:119155,last:119170},{first:119173,last:119179},{first:119210,last:119213},{first:119362,last:119364},{first:917505,last:917505},{first:917536,last:917631},{first:917760,last:917999}];BO.default=MYe});var r1e=g(jO=>{"use strict";Object.defineProperty(jO,"__esModule",{value:!0});var UYe=(e,t,r)=>{let i=0,n,s=r;if(e<t[0].first||e>t[s].last)return 0;for(;s>=i;)if(n=Math.floor((i+s)/2),e>t[n].last)i=n+1;else if(e<t[n].first)s=n-1;else return 1;return 0};jO.default=UYe});var qO=g(Wm=>{"use strict";var n1e=Wm&&Wm.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Wm,"__esModule",{value:!0});var i1e=n1e(t1e()),VYe=n1e(r1e()),HYe=e=>e===0?0:e<32||e>=127&&e<160?-1:VYe.default(e,i1e.default,i1e.default.length-1)?0:1+ +(e>=4352&&(e<=4447||e===9001||e===9002||e>=11904&&e<=42191&&e!==12351||e>=44032&&e<=55203||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65135||e>=65280&&e<=65376||e>=65504&&e<=65510||e>=131072&&e<=196605||e>=196608&&e<=262141));Wm.default=HYe});var s1e=g(Km=>{"use strict";var zYe=Km&&Km.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Km,"__esModule",{value:!0});var GYe=zYe(qO()),WYe=e=>{let t=0;for(let r=0;r<e.length;r++){let i=e.charCodeAt(r),n=GYe.default(i);if(n<0)return-1;t+=n}return t};Km.default=WYe});var o1e=g(zu=>{"use strict";var a1e=zu&&zu.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(zu,"__esModule",{value:!0});zu.wcswidth=zu.wcwidth=void 0;var KYe=a1e(s1e());zu.wcswidth=KYe.default;var YYe=a1e(qO());zu.wcwidth=YYe.default});var $O=g(Tc=>{"use strict";Object.defineProperty(Tc,"__esModule",{value:!0});Tc.findWidthInConsole=Tc.stripAnsi=void 0;var XYe=o1e(),JYe=/\x1b\[\d{1,3}(;\d{1,3})*m/g,ZYe=e=>e.replace(JYe,"");Tc.stripAnsi=ZYe;var QYe=(e,t)=>{let r=0;return e=(0,Tc.stripAnsi)(e),t&&Object.entries(t).forEach(([i,n])=>{let s=new RegExp(i,"g");r+=(e.match(s)||[]).length*n,e=e.replace(i,"")}),r+=(0,XYe.wcswidth)(e),r};Tc.findWidthInConsole=QYe});var UO=g(fa=>{"use strict";Object.defineProperty(fa,"__esModule",{value:!0});fa.biggestWordInSentence=fa.textWithPadding=fa.splitTextIntoTextsOfMinLen=void 0;var MO=$O(),eXe=(e,t,r)=>{let i=[];return e.split(/[\n\r]/).forEach(s=>{let a=s.split(" "),o=[],u=0;a.forEach(l=>{let c=(0,MO.findWidthInConsole)(l,r);u+c<=t?(u+=c+1,o.push(l)):(o.length>0&&i.push(o.join(" ")),o=[l],u=c+1)}),i.push(o.join(" "))}),i};fa.splitTextIntoTextsOfMinLen=eXe;var tXe=(e,t,r,i)=>{let n=(0,MO.findWidthInConsole)(e,i),s=Math.floor((r-n)/2),a=r-s-n;if(r<n){let o=(0,fa.splitTextIntoTextsOfMinLen)(e,r);return o.length===1?e:o.map(u=>(0,fa.textWithPadding)(u,t,r,i)).join(`
282
282
  `)}switch(t){case"left":return e.concat(" ".repeat(r-n));case"center":return" ".repeat(s).concat(e).concat(" ".repeat(a));case"right":default:return" ".repeat(r-n).concat(e)}};fa.textWithPadding=tXe;var rXe=(e,t)=>e.split(" ").reduce((r,i)=>Math.max(r,(0,MO.findWidthInConsole)(i,t)),0);fa.biggestWordInSentence=rXe});var Ym=g(Je=>{"use strict";Object.defineProperty(Je,"__esModule",{value:!0});Je.getWidthLimitedColumnsArray=Je.createHeaderAsRow=Je.renderTableHorizontalBorders=Je.findLenOfColumn=Je.createRow=Je.createColumFromComputedColumn=Je.createColumFromOnlyName=Je.createTableHorizontalBorders=Je.convertRawRowOptionsToStandard=Je.cellText=void 0;var VO=LO(),u1e=$O(),HO=UO(),Y9=Gm(),Ff=(e,t)=>Math.max(e,t),iXe=e=>e==null?"":`${e}`;Je.cellText=iXe;var nXe=e=>{if(e)return{color:e.color,separator:e.separator||Y9.DEFAULT_ROW_SEPARATOR}};Je.convertRawRowOptionsToStandard=nXe;var sXe=({left:e,mid:t,right:r,other:i},n)=>{let s=e;return n.forEach(a=>{s+=i.repeat(a+2),s+=t}),s=s.slice(0,-t.length),s+=r,s};Je.createTableHorizontalBorders=sXe;var aXe=e=>({name:e,title:e});Je.createColumFromOnlyName=aXe;var oXe=e=>{var t;return Object.assign(Object.assign(Object.assign(Object.assign({name:e.name,title:(t=e.title)!==null&&t!==void 0?t:e.name},(0,VO.objIfExists)("color",e.color)),(0,VO.objIfExists)("maxLen",e.maxLen)),(0,VO.objIfExists)("minLen",e.minLen)),{alignment:e.alignment||Y9.DEFAULT_ROW_ALIGNMENT})};Je.createColumFromComputedColumn=oXe;var uXe=(e,t,r)=>({color:e,separator:r,text:t});Je.createRow=uXe;var lXe=(e,t,r)=>{let i=e.name,n=e.title,s=Ff(0,e?.minLen||0);return e.maxLen?(s=Ff(s,Ff(e.maxLen,(0,HO.biggestWordInSentence)(n,r))),s=t.reduce((a,o)=>Ff(a,(0,HO.biggestWordInSentence)((0,Je.cellText)(o.text[i]),r)),s),s):(s=Ff(s,(0,u1e.findWidthInConsole)(n,r)),t.forEach(a=>{s=Ff(s,(0,u1e.findWidthInConsole)((0,Je.cellText)(a.text[i]),r))}),s)};Je.findLenOfColumn=lXe;var cXe=(e,t)=>(0,Je.createTableHorizontalBorders)(e,t);Je.renderTableHorizontalBorders=cXe;var pXe=(e,t)=>{let r=Y9.DEFAULT_HEADER_FONT_COLOR,i=e(r,{},!1);return t.forEach(n=>{i.text[n.name]=n.title}),i};Je.createHeaderAsRow=pXe;var dXe=(e,t,r)=>{let i={};return e.forEach(n=>{i[n.name]=(0,HO.splitTextIntoTextsOfMinLen)((0,Je.cellText)(t.text[n.name]),n.length||Y9.DEFAULT_COLUMN_LEN,r)}),i};Je.getWidthLimitedColumnsArray=dXe});var l1e=g(Nf=>{"use strict";Object.defineProperty(Nf,"__esModule",{value:!0});Nf.preProcessRows=Nf.preProcessColumns=void 0;var fXe=Ym(),hXe=e=>{e.computedColumns.length&&e.computedColumns.forEach(t=>{e.addColumn(t),e.rows.forEach(r=>{r.text[t.name]=t.function(r.text)})})},mXe=e=>{e.enabledColumns.length&&(e.columns=e.columns.filter(t=>e.enabledColumns.includes(t.name)))},gXe=e=>{e.disabledColumns.length&&(e.columns=e.columns.filter(t=>!e.disabledColumns.includes(t.name)))},yXe=e=>{e.columns.forEach(t=>{t.length=(0,fXe.findLenOfColumn)(t,e.rows,e.charLength)})},vXe=e=>{hXe(e),gXe(e),mXe(e),yXe(e)};Nf.preProcessColumns=vXe;var _Xe=e=>{let t=e.rows.filter(r=>e.filterFunction(r.text)).sort((r,i)=>e.sortFunction(r.text,i.text));e.rows=t};Nf.preProcessRows=_Xe});var zO=g($n=>{"use strict";var p1e=$n&&$n.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty($n,"__esModule",{value:!0});$n.printSimpleTable=$n.renderSimpleTable=$n.renderTable=void 0;var d1e=p1e(IO()),f1e=UO(),ds=Gm(),Gu=Ym(),wXe=p1e(GO()),c1e=l1e(),bXe=(e,t,r,i,n,s,a,o)=>{let u=new d1e.default(a);return u.addCharsWithColor("",e.vertical),t.forEach(l=>{let p=r<i[l.name].length?(0,Gu.cellText)(i[l.name][r]):"";u.addCharsWithColor(ds.DEFAULT_ROW_FONT_COLOR," "),u.addCharsWithColor(n&&ds.DEFAULT_HEADER_FONT_COLOR||l.color||s.color,(0,f1e.textWithPadding)(p,l.alignment||ds.DEFAULT_ROW_ALIGNMENT,l.length||ds.DEFAULT_COLUMN_LEN,o)),u.addCharsWithColor("",` ${e.vertical}`)}),u.renderConsole()},h1e=(e,t,r,i,n,s)=>{let a=(0,Gu.getWidthLimitedColumnsArray)(t,r,s),o=Object.values(a).reduce((l,c)=>Math.max(l,c.length),0),u=[];for(let l=0;l<o;l+=1){let c=bXe(e,t,l,a,n,r,i,s);u.push(c)}return u},DXe=(e,t)=>{let r=[];return r=r.concat(h1e(e.tableStyle,e.columns,t,e.colorMap,void 0,e.charLength)),r},EXe=e=>{let t=[];if(e.title===void 0)return t;let r=()=>{let s=(a,o)=>a+o+2+1;return e.columns.map(a=>a.length||ds.DEFAULT_COLUMN_LEN).reduce(s,1)},i=(0,f1e.textWithPadding)(e.title,ds.DEFAULT_HEADER_ALIGNMENT,r()),n=new d1e.default(e.colorMap);return n.addCharsWithColor(ds.DEFAULT_HEADER_FONT_COLOR,i),t.push(n.renderConsole()),t},xXe=e=>{let t=[];t.push((0,Gu.renderTableHorizontalBorders)(e.tableStyle.headerTop,e.columns.map(i=>i.length||ds.DEFAULT_COLUMN_LEN)));let r=(0,Gu.createHeaderAsRow)(Gu.createRow,e.columns);return t=t.concat(h1e(e.tableStyle,e.columns,r,e.colorMap,!0)),t.push((0,Gu.renderTableHorizontalBorders)(e.tableStyle.headerBottom,e.columns.map(i=>i.length||ds.DEFAULT_COLUMN_LEN))),t},CXe=e=>{let t=[];return t.push((0,Gu.renderTableHorizontalBorders)(e.tableStyle.tableBottom,e.columns.map(r=>r.length||ds.DEFAULT_COLUMN_LEN))),t},SXe=(e,t)=>{let r=[],i=e.rows.length-1;return e.rows.indexOf(t)!==i&&t.separator&&r.push((0,Gu.renderTableHorizontalBorders)(e.tableStyle.rowSeparator,e.columns.map(s=>s.length||ds.DEFAULT_COLUMN_LEN))),r},AXe=e=>{(0,c1e.preProcessColumns)(e),(0,c1e.preProcessRows)(e);let t=[];return EXe(e).forEach(r=>t.push(r)),xXe(e).forEach(r=>t.push(r)),e.rows.forEach(r=>{DXe(e,r).forEach(i=>t.push(i)),SXe(e,r).forEach(i=>t.push(i))}),CXe(e).forEach(r=>t.push(r)),t.join(`
283
- `)};$n.renderTable=AXe;var TXe=e=>{let t=new wXe.default;return t.addRows(e),(0,$n.renderTable)(t)};$n.renderSimpleTable=TXe;var OXe=e=>{console.log((0,$n.renderSimpleTable)(e))};$n.printSimpleTable=OXe});var GO=g(KO=>{"use strict";Object.defineProperty(KO,"__esModule",{value:!0});var FXe=IO(),X9=Gm(),J9=Ym(),NXe=LO(),kXe=zO(),RXe=()=>0,PXe=()=>!0,WO=class{initSimple(t){this.columns=t.map(r=>({name:r,title:r,alignment:X9.DEFAULT_ROW_ALIGNMENT}))}initDetailed(t){var r;this.title=t?.title||this.title,this.tableStyle=t?.style||this.tableStyle,this.sortFunction=t?.sort||this.sortFunction,this.filterFunction=t?.filter||this.filterFunction,this.enabledColumns=t?.enabledColumns||this.enabledColumns,this.disabledColumns=t?.disabledColumns||this.disabledColumns,this.computedColumns=t?.computedColumns||this.computedColumns,this.columns=((r=t?.columns)===null||r===void 0?void 0:r.map(NXe.rawColumnToInternalColumn))||this.columns,this.rowSeparator=t?.rowSeparator||this.rowSeparator,this.charLength=t?.charLength||this.charLength,t?.shouldDisableColors?this.colorMap={}:t?.colorMap&&(this.colorMap=Object.assign(Object.assign({},this.colorMap),t.colorMap)),t.rows!==void 0&&this.addRows(t.rows)}constructor(t){this.rows=[],this.columns=[],this.title=void 0,this.tableStyle=X9.DEFAULT_TABLE_STYLE,this.filterFunction=PXe,this.sortFunction=RXe,this.enabledColumns=[],this.disabledColumns=[],this.computedColumns=[],this.rowSeparator=X9.DEFAULT_ROW_SEPARATOR,this.colorMap=FXe.DEFAULT_COLOR_MAP,this.charLength={},t instanceof Array?this.initSimple(t):typeof t=="object"&&this.initDetailed(t)}createColumnFromRow(t){let r=this.columns.map(i=>i.name);Object.keys(t).forEach(i=>{r.includes(i)||this.columns.push((0,J9.createColumFromOnlyName)(i))})}addColumn(t){typeof t=="string"?this.columns.push((0,J9.createColumFromOnlyName)(t)):this.columns.push((0,J9.createColumFromComputedColumn)(t))}addColumns(t){t.forEach(r=>{this.addColumn(r)})}addRow(t,r){this.createColumnFromRow(t),this.rows.push((0,J9.createRow)(r?.color||X9.DEFAULT_ROW_FONT_COLOR,t,r?.separator!==void 0?r?.separator:this.rowSeparator))}addRows(t,r){t.forEach(i=>{this.addRow(i,r)})}renderTable(){return(0,kXe.renderTable)(this)}};KO.default=WO});var g1e=g(Xm=>{"use strict";var IXe=Xm&&Xm.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Xm,"__esModule",{value:!0});var LXe=IXe(GO()),m1e=Ym(),YO=class{constructor(t){this.table=new LXe.default(t)}addColumn(t){return this.table.addColumn(t),this}addColumns(t){return this.table.addColumns(t),this}addRow(t,r){return this.table.addRow(t,(0,m1e.convertRawRowOptionsToStandard)(r)),this}addRows(t,r){return this.table.addRows(t,(0,m1e.convertRawRowOptionsToStandard)(r)),this}printTable(){let t=this.table.renderTable();console.log(t)}render(){return this.table.renderTable()}};Xm.default=YO});var Jm=g(ha=>{"use strict";var BXe=ha&&ha.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ha,"__esModule",{value:!0});ha.renderTable=ha.printTable=ha.Table=void 0;var jXe=BXe(g1e());ha.Table=jXe.default;var y1e=zO();Object.defineProperty(ha,"printTable",{enumerable:!0,get:function(){return y1e.printSimpleTable}});Object.defineProperty(ha,"renderTable",{enumerable:!0,get:function(){return y1e.renderSimpleTable}})});var khe=g((Lht,Nhe)=>{Nhe.exports=L8()});var FF=fe(OF(),1),{program:B,createCommand:qJe,createArgument:$Je,createOption:MJe,CommanderError:UJe,InvalidArgumentError:VJe,InvalidOptionArgumentError:HJe,Command:zJe,Argument:GJe,Option:WJe,Help:KJe}=FF.default;var Po={name:"@capgo/cli",version:"4.18.0",description:"A CLI to upload to capgo servers",author:"github.com/riderx",license:"Apache 2.0",homepage:"https://github.com/Cap-go/CLIl#readme",repository:{type:"git",url:"git+https://github.com/Cap-go/CLI.git"},bugs:{url:"https://github.com/Cap-go/CLI/issues"},keywords:["appflow alternative","ionic","capacitor","auto update","live update","capgo","cli","upload","capgo-cli"],main:"dist/index.js",bin:{capgo:"dist/index.js"},engines:{npm:">=8.0.0",node:">=18.0.0"},scripts:{build:"node build.mjs",dev:"NODE_ENV=development ncc build","no-debug":"node dist/index.js",test:"npx --yes ts-node -T src/index.ts","dev-build":"SUPA_DB=development ncc build",pack:"pkg",types:"npx --yes supabase gen types typescript --project-id=xvwzpoazmxkqosrdewyv > src/types/supabase.types.ts",test_rls:"ts-node ./test/test_headers_rls.ts",lint:'eslint "src/**/*.ts" --fix',"check-posix-paths":"node test/check-posix-paths.js"},dependencies:{"@types/node-dir":"^0.0.37"},devDependencies:{"@antfu/eslint-config":"^2.27.3","@bradenmacdonald/s3-lite-client":"npm:@jsr/bradenmacdonald__s3-lite-client","@capacitor/cli":"^6.1.2","@capgo/find-package-manager":"^0.0.17","@clack/prompts":"^0.7.0","@manypkg/find-root":"^2.2.3","@supabase/supabase-js":"^2.45.2","@tomasklaen/checksum":"^1.1.0","@types/adm-zip":"0.5.5","@types/mime":"^4.0.0","@types/node":"^22.5.0","@types/npmcli__ci-detect":"^2.0.3","@types/prettyjson":"^0.0.33","@types/prompt-sync":"^4.2.3","@types/semver":"^7.5.8","@types/tmp":"^0.2.6","@typescript-eslint/eslint-plugin":"^8.3.0","@typescript-eslint/parser":"^8.3.0","@vercel/ncc":"^0.38.1","adm-zip":"0.5.14","ci-info":"^4.0.0",commander:"12.1.0","console-table-printer":"^2.12.1",esbuild:"^0.23.1",eslint:"9.11.0","get-latest-version":"^5.1.0","git-format-staged":"3.1.1",husky:"^9.1.5","is-wsl":"^3.1.0",jszip:"^3.10.1",ky:"^1.7.1",logsnag:"1.0.0",mime:"^4.0.4","node-dir":"^0.1.17",open:"^10.1.0",pkg:"5.8.1",prettyjson:"^1.2.5",semver:"^7.6.3",tmp:"^0.2.3","ts-loader":"^9.5.1","ts-node":"^10.9.2","tsconfig-paths":"4.2.0",typescript:"5.6.2"}};var of=require("node:process");var Jr=fe(Ze(),1),Ic=require("node:process"),Io=fe(require("node:readline"),1),$y=fe(require("node:readline"),1),UF=require("node:tty"),d2=fe(PF(),1);function _0e({onlyFirst:e=!1}={}){let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}function VF(e){if(typeof e!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace(_0e(),"")}var My={},w0e={get exports(){return My},set exports(e){My=e}};(function(e){var t={};e.exports=t,t.eastAsianWidth=function(i){var n=i.charCodeAt(0),s=i.length==2?i.charCodeAt(1):0,a=n;return 55296<=n&&n<=56319&&56320<=s&&s<=57343&&(n&=1023,s&=1023,a=n<<10|s,a+=65536),a==12288||65281<=a&&a<=65376||65504<=a&&a<=65510?"F":a==8361||65377<=a&&a<=65470||65474<=a&&a<=65479||65482<=a&&a<=65487||65490<=a&&a<=65495||65498<=a&&a<=65500||65512<=a&&a<=65518?"H":4352<=a&&a<=4447||4515<=a&&a<=4519||4602<=a&&a<=4607||9001<=a&&a<=9002||11904<=a&&a<=11929||11931<=a&&a<=12019||12032<=a&&a<=12245||12272<=a&&a<=12283||12289<=a&&a<=12350||12353<=a&&a<=12438||12441<=a&&a<=12543||12549<=a&&a<=12589||12593<=a&&a<=12686||12688<=a&&a<=12730||12736<=a&&a<=12771||12784<=a&&a<=12830||12832<=a&&a<=12871||12880<=a&&a<=13054||13056<=a&&a<=19903||19968<=a&&a<=42124||42128<=a&&a<=42182||43360<=a&&a<=43388||44032<=a&&a<=55203||55216<=a&&a<=55238||55243<=a&&a<=55291||63744<=a&&a<=64255||65040<=a&&a<=65049||65072<=a&&a<=65106||65108<=a&&a<=65126||65128<=a&&a<=65131||110592<=a&&a<=110593||127488<=a&&a<=127490||127504<=a&&a<=127546||127552<=a&&a<=127560||127568<=a&&a<=127569||131072<=a&&a<=194367||177984<=a&&a<=196605||196608<=a&&a<=262141?"W":32<=a&&a<=126||162<=a&&a<=163||165<=a&&a<=166||a==172||a==175||10214<=a&&a<=10221||10629<=a&&a<=10630?"Na":a==161||a==164||167<=a&&a<=168||a==170||173<=a&&a<=174||176<=a&&a<=180||182<=a&&a<=186||188<=a&&a<=191||a==198||a==208||215<=a&&a<=216||222<=a&&a<=225||a==230||232<=a&&a<=234||236<=a&&a<=237||a==240||242<=a&&a<=243||247<=a&&a<=250||a==252||a==254||a==257||a==273||a==275||a==283||294<=a&&a<=295||a==299||305<=a&&a<=307||a==312||319<=a&&a<=322||a==324||328<=a&&a<=331||a==333||338<=a&&a<=339||358<=a&&a<=359||a==363||a==462||a==464||a==466||a==468||a==470||a==472||a==474||a==476||a==593||a==609||a==708||a==711||713<=a&&a<=715||a==717||a==720||728<=a&&a<=731||a==733||a==735||768<=a&&a<=879||913<=a&&a<=929||931<=a&&a<=937||945<=a&&a<=961||963<=a&&a<=969||a==1025||1040<=a&&a<=1103||a==1105||a==8208||8211<=a&&a<=8214||8216<=a&&a<=8217||8220<=a&&a<=8221||8224<=a&&a<=8226||8228<=a&&a<=8231||a==8240||8242<=a&&a<=8243||a==8245||a==8251||a==8254||a==8308||a==8319||8321<=a&&a<=8324||a==8364||a==8451||a==8453||a==8457||a==8467||a==8470||8481<=a&&a<=8482||a==8486||a==8491||8531<=a&&a<=8532||8539<=a&&a<=8542||8544<=a&&a<=8555||8560<=a&&a<=8569||a==8585||8592<=a&&a<=8601||8632<=a&&a<=8633||a==8658||a==8660||a==8679||a==8704||8706<=a&&a<=8707||8711<=a&&a<=8712||a==8715||a==8719||a==8721||a==8725||a==8730||8733<=a&&a<=8736||a==8739||a==8741||8743<=a&&a<=8748||a==8750||8756<=a&&a<=8759||8764<=a&&a<=8765||a==8776||a==8780||a==8786||8800<=a&&a<=8801||8804<=a&&a<=8807||8810<=a&&a<=8811||8814<=a&&a<=8815||8834<=a&&a<=8835||8838<=a&&a<=8839||a==8853||a==8857||a==8869||a==8895||a==8978||9312<=a&&a<=9449||9451<=a&&a<=9547||9552<=a&&a<=9587||9600<=a&&a<=9615||9618<=a&&a<=9621||9632<=a&&a<=9633||9635<=a&&a<=9641||9650<=a&&a<=9651||9654<=a&&a<=9655||9660<=a&&a<=9661||9664<=a&&a<=9665||9670<=a&&a<=9672||a==9675||9678<=a&&a<=9681||9698<=a&&a<=9701||a==9711||9733<=a&&a<=9734||a==9737||9742<=a&&a<=9743||9748<=a&&a<=9749||a==9756||a==9758||a==9792||a==9794||9824<=a&&a<=9825||9827<=a&&a<=9829||9831<=a&&a<=9834||9836<=a&&a<=9837||a==9839||9886<=a&&a<=9887||9918<=a&&a<=9919||9924<=a&&a<=9933||9935<=a&&a<=9953||a==9955||9960<=a&&a<=9983||a==10045||a==10071||10102<=a&&a<=10111||11093<=a&&a<=11097||12872<=a&&a<=12879||57344<=a&&a<=63743||65024<=a&&a<=65039||a==65533||127232<=a&&a<=127242||127248<=a&&a<=127277||127280<=a&&a<=127337||127344<=a&&a<=127386||917760<=a&&a<=917999||983040<=a&&a<=1048573||1048576<=a&&a<=1114109?"A":"N"},t.characterLength=function(i){var n=this.eastAsianWidth(i);return n=="F"||n=="W"||n=="A"?2:1};function r(i){return i.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}t.length=function(i){for(var n=r(i),s=0,a=0;a<n.length;a++)s=s+this.characterLength(n[a]);return s},t.slice=function(i,n,s){textLen=t.length(i),n=n||0,s=s||1,n<0&&(n=textLen+n),s<0&&(s=textLen+s);for(var a="",o=0,u=r(i),l=0;l<u.length;l++){var c=u[l],p=t.length(c);if(o>=n-(p==2?1:0))if(o+p<=s)a+=c;else break;o+=p}return a}})(w0e);var b0e=My,D0e=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g};function Mf(e,t={}){if(typeof e!="string"||e.length===0||(t={ambiguousIsNarrow:!0,...t},e=VF(e),e.length===0))return 0;e=e.replace(D0e()," ");let r=t.ambiguousIsNarrow?1:2,i=0;for(let n of e){let s=n.codePointAt(0);if(!(s<=31||s>=127&&s<=159||s>=768&&s<=879))switch(b0e.eastAsianWidth(n)){case"F":case"W":i+=2;break;case"A":i+=r;break;default:i+=1}}return i}var jy=10,IF=(e=0)=>t=>`\x1B[${t+e}m`,LF=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,BF=(e=0)=>(t,r,i)=>`\x1B[${38+e};2;${t};${r};${i}m`,ot={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(ot.modifier);var E0e=Object.keys(ot.color),x0e=Object.keys(ot.bgColor);[...E0e,...x0e];function C0e(){let e=new Map;for(let[t,r]of Object.entries(ot)){for(let[i,n]of Object.entries(r))ot[i]={open:`\x1B[${n[0]}m`,close:`\x1B[${n[1]}m`},r[i]=ot[i],e.set(n[0],n[1]);Object.defineProperty(ot,t,{value:r,enumerable:!1})}return Object.defineProperty(ot,"codes",{value:e,enumerable:!1}),ot.color.close="\x1B[39m",ot.bgColor.close="\x1B[49m",ot.color.ansi=IF(),ot.color.ansi256=LF(),ot.color.ansi16m=BF(),ot.bgColor.ansi=IF(jy),ot.bgColor.ansi256=LF(jy),ot.bgColor.ansi16m=BF(jy),Object.defineProperties(ot,{rgbToAnsi256:{value:(t,r,i)=>t===r&&r===i?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(i/255*5),enumerable:!1},hexToRgb:{value:t=>{let r=/[a-f\d]{6}|[a-f\d]{3}/i.exec(t.toString(16));if(!r)return[0,0,0];let[i]=r;i.length===3&&(i=[...i].map(s=>s+s).join(""));let n=Number.parseInt(i,16);return[n>>16&255,n>>8&255,n&255]},enumerable:!1},hexToAnsi256:{value:t=>ot.rgbToAnsi256(...ot.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value:t=>{if(t<8)return 30+t;if(t<16)return 90+(t-8);let r,i,n;if(t>=232)r=((t-232)*10+8)/255,i=r,n=r;else{t-=16;let o=t%36;r=Math.floor(t/36)/5,i=Math.floor(o/6)/5,n=o%6/5}let s=Math.max(r,i,n)*2;if(s===0)return 30;let a=30+(Math.round(n)<<2|Math.round(i)<<1|Math.round(r));return s===2&&(a+=60),a},enumerable:!1},rgbToAnsi:{value:(t,r,i)=>ot.ansi256ToAnsi(ot.rgbToAnsi256(t,r,i)),enumerable:!1},hexToAnsi:{value:t=>ot.ansi256ToAnsi(ot.hexToAnsi256(t)),enumerable:!1}}),ot}var S0e=C0e(),g2=new Set(["\x1B","\x9B"]),A0e=39,Uy="\x07",HF="[",T0e="]",zF="m",Vy=`${T0e}8;;`,jF=e=>`${g2.values().next().value}${HF}${e}${zF}`,qF=e=>`${g2.values().next().value}${Vy}${e}${Uy}`,O0e=e=>e.split(" ").map(t=>Mf(t)),qy=(e,t,r)=>{let i=[...t],n=!1,s=!1,a=Mf(VF(e[e.length-1]));for(let[o,u]of i.entries()){let l=Mf(u);if(a+l<=r?e[e.length-1]+=u:(e.push(u),a=0),g2.has(u)&&(n=!0,s=i.slice(o+1).join("").startsWith(Vy)),n){s?u===Uy&&(n=!1,s=!1):u===zF&&(n=!1);continue}a+=l,a===r&&o<i.length-1&&(e.push(""),a=0)}!a&&e[e.length-1].length>0&&e.length>1&&(e[e.length-2]+=e.pop())},F0e=e=>{let t=e.split(" "),r=t.length;for(;r>0&&!(Mf(t[r-1])>0);)r--;return r===t.length?e:t.slice(0,r).join(" ")+t.slice(r).join("")},N0e=(e,t,r={})=>{if(r.trim!==!1&&e.trim()==="")return"";let i="",n,s,a=O0e(e),o=[""];for(let[l,c]of e.split(" ").entries()){r.trim!==!1&&(o[o.length-1]=o[o.length-1].trimStart());let p=Mf(o[o.length-1]);if(l!==0&&(p>=t&&(r.wordWrap===!1||r.trim===!1)&&(o.push(""),p=0),(p>0||r.trim===!1)&&(o[o.length-1]+=" ",p++)),r.hard&&a[l]>t){let d=t-p,f=1+Math.floor((a[l]-d-1)/t);Math.floor((a[l]-1)/t)<f&&o.push(""),qy(o,c,t);continue}if(p+a[l]>t&&p>0&&a[l]>0){if(r.wordWrap===!1&&p<t){qy(o,c,t);continue}o.push("")}if(p+a[l]>t&&r.wordWrap===!1){qy(o,c,t);continue}o[o.length-1]+=c}r.trim!==!1&&(o=o.map(l=>F0e(l)));let u=[...o.join(`
283
+ `)};$n.renderTable=AXe;var TXe=e=>{let t=new wXe.default;return t.addRows(e),(0,$n.renderTable)(t)};$n.renderSimpleTable=TXe;var OXe=e=>{console.log((0,$n.renderSimpleTable)(e))};$n.printSimpleTable=OXe});var GO=g(KO=>{"use strict";Object.defineProperty(KO,"__esModule",{value:!0});var FXe=IO(),X9=Gm(),J9=Ym(),NXe=LO(),kXe=zO(),RXe=()=>0,PXe=()=>!0,WO=class{initSimple(t){this.columns=t.map(r=>({name:r,title:r,alignment:X9.DEFAULT_ROW_ALIGNMENT}))}initDetailed(t){var r;this.title=t?.title||this.title,this.tableStyle=t?.style||this.tableStyle,this.sortFunction=t?.sort||this.sortFunction,this.filterFunction=t?.filter||this.filterFunction,this.enabledColumns=t?.enabledColumns||this.enabledColumns,this.disabledColumns=t?.disabledColumns||this.disabledColumns,this.computedColumns=t?.computedColumns||this.computedColumns,this.columns=((r=t?.columns)===null||r===void 0?void 0:r.map(NXe.rawColumnToInternalColumn))||this.columns,this.rowSeparator=t?.rowSeparator||this.rowSeparator,this.charLength=t?.charLength||this.charLength,t?.shouldDisableColors?this.colorMap={}:t?.colorMap&&(this.colorMap=Object.assign(Object.assign({},this.colorMap),t.colorMap)),t.rows!==void 0&&this.addRows(t.rows)}constructor(t){this.rows=[],this.columns=[],this.title=void 0,this.tableStyle=X9.DEFAULT_TABLE_STYLE,this.filterFunction=PXe,this.sortFunction=RXe,this.enabledColumns=[],this.disabledColumns=[],this.computedColumns=[],this.rowSeparator=X9.DEFAULT_ROW_SEPARATOR,this.colorMap=FXe.DEFAULT_COLOR_MAP,this.charLength={},t instanceof Array?this.initSimple(t):typeof t=="object"&&this.initDetailed(t)}createColumnFromRow(t){let r=this.columns.map(i=>i.name);Object.keys(t).forEach(i=>{r.includes(i)||this.columns.push((0,J9.createColumFromOnlyName)(i))})}addColumn(t){typeof t=="string"?this.columns.push((0,J9.createColumFromOnlyName)(t)):this.columns.push((0,J9.createColumFromComputedColumn)(t))}addColumns(t){t.forEach(r=>{this.addColumn(r)})}addRow(t,r){this.createColumnFromRow(t),this.rows.push((0,J9.createRow)(r?.color||X9.DEFAULT_ROW_FONT_COLOR,t,r?.separator!==void 0?r?.separator:this.rowSeparator))}addRows(t,r){t.forEach(i=>{this.addRow(i,r)})}renderTable(){return(0,kXe.renderTable)(this)}};KO.default=WO});var g1e=g(Xm=>{"use strict";var IXe=Xm&&Xm.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(Xm,"__esModule",{value:!0});var LXe=IXe(GO()),m1e=Ym(),YO=class{constructor(t){this.table=new LXe.default(t)}addColumn(t){return this.table.addColumn(t),this}addColumns(t){return this.table.addColumns(t),this}addRow(t,r){return this.table.addRow(t,(0,m1e.convertRawRowOptionsToStandard)(r)),this}addRows(t,r){return this.table.addRows(t,(0,m1e.convertRawRowOptionsToStandard)(r)),this}printTable(){let t=this.table.renderTable();console.log(t)}render(){return this.table.renderTable()}};Xm.default=YO});var Jm=g(ha=>{"use strict";var BXe=ha&&ha.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(ha,"__esModule",{value:!0});ha.renderTable=ha.printTable=ha.Table=void 0;var jXe=BXe(g1e());ha.Table=jXe.default;var y1e=zO();Object.defineProperty(ha,"printTable",{enumerable:!0,get:function(){return y1e.printSimpleTable}});Object.defineProperty(ha,"renderTable",{enumerable:!0,get:function(){return y1e.renderSimpleTable}})});var khe=g((Lht,Nhe)=>{Nhe.exports=L8()});var FF=fe(OF(),1),{program:B,createCommand:qJe,createArgument:$Je,createOption:MJe,CommanderError:UJe,InvalidArgumentError:VJe,InvalidOptionArgumentError:HJe,Command:zJe,Argument:GJe,Option:WJe,Help:KJe}=FF.default;var Po={name:"@capgo/cli",version:"4.18.2",description:"A CLI to upload to capgo servers",author:"github.com/riderx",license:"Apache 2.0",homepage:"https://github.com/Cap-go/CLIl#readme",repository:{type:"git",url:"git+https://github.com/Cap-go/CLI.git"},bugs:{url:"https://github.com/Cap-go/CLI/issues"},keywords:["appflow alternative","ionic","capacitor","auto update","live update","capgo","cli","upload","capgo-cli"],main:"dist/index.js",bin:{capgo:"dist/index.js"},engines:{npm:">=8.0.0",node:">=18.0.0"},scripts:{build:"node build.mjs",dev:"NODE_ENV=development ncc build","no-debug":"node dist/index.js",test:"npx --yes ts-node -T src/index.ts","dev-build":"SUPA_DB=development ncc build",pack:"pkg",types:"npx --yes supabase gen types typescript --project-id=xvwzpoazmxkqosrdewyv > src/types/supabase.types.ts",test_rls:"ts-node ./test/test_headers_rls.ts",lint:'eslint "src/**/*.ts" --fix',"check-posix-paths":"node test/check-posix-paths.js"},dependencies:{"@types/node-dir":"^0.0.37"},devDependencies:{"@antfu/eslint-config":"^2.27.3","@bradenmacdonald/s3-lite-client":"npm:@jsr/bradenmacdonald__s3-lite-client","@capacitor/cli":"^6.1.2","@capgo/find-package-manager":"^0.0.17","@clack/prompts":"^0.7.0","@manypkg/find-root":"^2.2.3","@supabase/supabase-js":"^2.45.2","@tomasklaen/checksum":"^1.1.0","@types/adm-zip":"0.5.5","@types/mime":"^4.0.0","@types/node":"^22.5.0","@types/npmcli__ci-detect":"^2.0.3","@types/prettyjson":"^0.0.33","@types/prompt-sync":"^4.2.3","@types/semver":"^7.5.8","@types/tmp":"^0.2.6","@typescript-eslint/eslint-plugin":"^8.3.0","@typescript-eslint/parser":"^8.3.0","@vercel/ncc":"^0.38.1","adm-zip":"0.5.14","ci-info":"^4.0.0",commander:"12.1.0","console-table-printer":"^2.12.1",esbuild:"^0.23.1",eslint:"9.11.0","get-latest-version":"^5.1.0","git-format-staged":"3.1.1",husky:"^9.1.5","is-wsl":"^3.1.0",jszip:"^3.10.1",ky:"^1.7.1",logsnag:"1.0.0",mime:"^4.0.4","node-dir":"^0.1.17",open:"^10.1.0",pkg:"5.8.1",prettyjson:"^1.2.5",semver:"^7.6.3",tmp:"^0.2.3","ts-loader":"^9.5.1","ts-node":"^10.9.2","tsconfig-paths":"4.2.0",typescript:"5.6.2"}};var of=require("node:process");var Jr=fe(Ze(),1),Ic=require("node:process"),Io=fe(require("node:readline"),1),$y=fe(require("node:readline"),1),UF=require("node:tty"),d2=fe(PF(),1);function _0e({onlyFirst:e=!1}={}){let t=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(t,e?void 0:"g")}function VF(e){if(typeof e!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof e}\``);return e.replace(_0e(),"")}var My={},w0e={get exports(){return My},set exports(e){My=e}};(function(e){var t={};e.exports=t,t.eastAsianWidth=function(i){var n=i.charCodeAt(0),s=i.length==2?i.charCodeAt(1):0,a=n;return 55296<=n&&n<=56319&&56320<=s&&s<=57343&&(n&=1023,s&=1023,a=n<<10|s,a+=65536),a==12288||65281<=a&&a<=65376||65504<=a&&a<=65510?"F":a==8361||65377<=a&&a<=65470||65474<=a&&a<=65479||65482<=a&&a<=65487||65490<=a&&a<=65495||65498<=a&&a<=65500||65512<=a&&a<=65518?"H":4352<=a&&a<=4447||4515<=a&&a<=4519||4602<=a&&a<=4607||9001<=a&&a<=9002||11904<=a&&a<=11929||11931<=a&&a<=12019||12032<=a&&a<=12245||12272<=a&&a<=12283||12289<=a&&a<=12350||12353<=a&&a<=12438||12441<=a&&a<=12543||12549<=a&&a<=12589||12593<=a&&a<=12686||12688<=a&&a<=12730||12736<=a&&a<=12771||12784<=a&&a<=12830||12832<=a&&a<=12871||12880<=a&&a<=13054||13056<=a&&a<=19903||19968<=a&&a<=42124||42128<=a&&a<=42182||43360<=a&&a<=43388||44032<=a&&a<=55203||55216<=a&&a<=55238||55243<=a&&a<=55291||63744<=a&&a<=64255||65040<=a&&a<=65049||65072<=a&&a<=65106||65108<=a&&a<=65126||65128<=a&&a<=65131||110592<=a&&a<=110593||127488<=a&&a<=127490||127504<=a&&a<=127546||127552<=a&&a<=127560||127568<=a&&a<=127569||131072<=a&&a<=194367||177984<=a&&a<=196605||196608<=a&&a<=262141?"W":32<=a&&a<=126||162<=a&&a<=163||165<=a&&a<=166||a==172||a==175||10214<=a&&a<=10221||10629<=a&&a<=10630?"Na":a==161||a==164||167<=a&&a<=168||a==170||173<=a&&a<=174||176<=a&&a<=180||182<=a&&a<=186||188<=a&&a<=191||a==198||a==208||215<=a&&a<=216||222<=a&&a<=225||a==230||232<=a&&a<=234||236<=a&&a<=237||a==240||242<=a&&a<=243||247<=a&&a<=250||a==252||a==254||a==257||a==273||a==275||a==283||294<=a&&a<=295||a==299||305<=a&&a<=307||a==312||319<=a&&a<=322||a==324||328<=a&&a<=331||a==333||338<=a&&a<=339||358<=a&&a<=359||a==363||a==462||a==464||a==466||a==468||a==470||a==472||a==474||a==476||a==593||a==609||a==708||a==711||713<=a&&a<=715||a==717||a==720||728<=a&&a<=731||a==733||a==735||768<=a&&a<=879||913<=a&&a<=929||931<=a&&a<=937||945<=a&&a<=961||963<=a&&a<=969||a==1025||1040<=a&&a<=1103||a==1105||a==8208||8211<=a&&a<=8214||8216<=a&&a<=8217||8220<=a&&a<=8221||8224<=a&&a<=8226||8228<=a&&a<=8231||a==8240||8242<=a&&a<=8243||a==8245||a==8251||a==8254||a==8308||a==8319||8321<=a&&a<=8324||a==8364||a==8451||a==8453||a==8457||a==8467||a==8470||8481<=a&&a<=8482||a==8486||a==8491||8531<=a&&a<=8532||8539<=a&&a<=8542||8544<=a&&a<=8555||8560<=a&&a<=8569||a==8585||8592<=a&&a<=8601||8632<=a&&a<=8633||a==8658||a==8660||a==8679||a==8704||8706<=a&&a<=8707||8711<=a&&a<=8712||a==8715||a==8719||a==8721||a==8725||a==8730||8733<=a&&a<=8736||a==8739||a==8741||8743<=a&&a<=8748||a==8750||8756<=a&&a<=8759||8764<=a&&a<=8765||a==8776||a==8780||a==8786||8800<=a&&a<=8801||8804<=a&&a<=8807||8810<=a&&a<=8811||8814<=a&&a<=8815||8834<=a&&a<=8835||8838<=a&&a<=8839||a==8853||a==8857||a==8869||a==8895||a==8978||9312<=a&&a<=9449||9451<=a&&a<=9547||9552<=a&&a<=9587||9600<=a&&a<=9615||9618<=a&&a<=9621||9632<=a&&a<=9633||9635<=a&&a<=9641||9650<=a&&a<=9651||9654<=a&&a<=9655||9660<=a&&a<=9661||9664<=a&&a<=9665||9670<=a&&a<=9672||a==9675||9678<=a&&a<=9681||9698<=a&&a<=9701||a==9711||9733<=a&&a<=9734||a==9737||9742<=a&&a<=9743||9748<=a&&a<=9749||a==9756||a==9758||a==9792||a==9794||9824<=a&&a<=9825||9827<=a&&a<=9829||9831<=a&&a<=9834||9836<=a&&a<=9837||a==9839||9886<=a&&a<=9887||9918<=a&&a<=9919||9924<=a&&a<=9933||9935<=a&&a<=9953||a==9955||9960<=a&&a<=9983||a==10045||a==10071||10102<=a&&a<=10111||11093<=a&&a<=11097||12872<=a&&a<=12879||57344<=a&&a<=63743||65024<=a&&a<=65039||a==65533||127232<=a&&a<=127242||127248<=a&&a<=127277||127280<=a&&a<=127337||127344<=a&&a<=127386||917760<=a&&a<=917999||983040<=a&&a<=1048573||1048576<=a&&a<=1114109?"A":"N"},t.characterLength=function(i){var n=this.eastAsianWidth(i);return n=="F"||n=="W"||n=="A"?2:1};function r(i){return i.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g)||[]}t.length=function(i){for(var n=r(i),s=0,a=0;a<n.length;a++)s=s+this.characterLength(n[a]);return s},t.slice=function(i,n,s){textLen=t.length(i),n=n||0,s=s||1,n<0&&(n=textLen+n),s<0&&(s=textLen+s);for(var a="",o=0,u=r(i),l=0;l<u.length;l++){var c=u[l],p=t.length(c);if(o>=n-(p==2?1:0))if(o+p<=s)a+=c;else break;o+=p}return a}})(w0e);var b0e=My,D0e=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g};function Mf(e,t={}){if(typeof e!="string"||e.length===0||(t={ambiguousIsNarrow:!0,...t},e=VF(e),e.length===0))return 0;e=e.replace(D0e()," ");let r=t.ambiguousIsNarrow?1:2,i=0;for(let n of e){let s=n.codePointAt(0);if(!(s<=31||s>=127&&s<=159||s>=768&&s<=879))switch(b0e.eastAsianWidth(n)){case"F":case"W":i+=2;break;case"A":i+=r;break;default:i+=1}}return i}var jy=10,IF=(e=0)=>t=>`\x1B[${t+e}m`,LF=(e=0)=>t=>`\x1B[${38+e};5;${t}m`,BF=(e=0)=>(t,r,i)=>`\x1B[${38+e};2;${t};${r};${i}m`,ot={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],overline:[53,55],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],gray:[90,39],grey:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgGray:[100,49],bgGrey:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};Object.keys(ot.modifier);var E0e=Object.keys(ot.color),x0e=Object.keys(ot.bgColor);[...E0e,...x0e];function C0e(){let e=new Map;for(let[t,r]of Object.entries(ot)){for(let[i,n]of Object.entries(r))ot[i]={open:`\x1B[${n[0]}m`,close:`\x1B[${n[1]}m`},r[i]=ot[i],e.set(n[0],n[1]);Object.defineProperty(ot,t,{value:r,enumerable:!1})}return Object.defineProperty(ot,"codes",{value:e,enumerable:!1}),ot.color.close="\x1B[39m",ot.bgColor.close="\x1B[49m",ot.color.ansi=IF(),ot.color.ansi256=LF(),ot.color.ansi16m=BF(),ot.bgColor.ansi=IF(jy),ot.bgColor.ansi256=LF(jy),ot.bgColor.ansi16m=BF(jy),Object.defineProperties(ot,{rgbToAnsi256:{value:(t,r,i)=>t===r&&r===i?t<8?16:t>248?231:Math.round((t-8)/247*24)+232:16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(i/255*5),enumerable:!1},hexToRgb:{value:t=>{let r=/[a-f\d]{6}|[a-f\d]{3}/i.exec(t.toString(16));if(!r)return[0,0,0];let[i]=r;i.length===3&&(i=[...i].map(s=>s+s).join(""));let n=Number.parseInt(i,16);return[n>>16&255,n>>8&255,n&255]},enumerable:!1},hexToAnsi256:{value:t=>ot.rgbToAnsi256(...ot.hexToRgb(t)),enumerable:!1},ansi256ToAnsi:{value:t=>{if(t<8)return 30+t;if(t<16)return 90+(t-8);let r,i,n;if(t>=232)r=((t-232)*10+8)/255,i=r,n=r;else{t-=16;let o=t%36;r=Math.floor(t/36)/5,i=Math.floor(o/6)/5,n=o%6/5}let s=Math.max(r,i,n)*2;if(s===0)return 30;let a=30+(Math.round(n)<<2|Math.round(i)<<1|Math.round(r));return s===2&&(a+=60),a},enumerable:!1},rgbToAnsi:{value:(t,r,i)=>ot.ansi256ToAnsi(ot.rgbToAnsi256(t,r,i)),enumerable:!1},hexToAnsi:{value:t=>ot.ansi256ToAnsi(ot.hexToAnsi256(t)),enumerable:!1}}),ot}var S0e=C0e(),g2=new Set(["\x1B","\x9B"]),A0e=39,Uy="\x07",HF="[",T0e="]",zF="m",Vy=`${T0e}8;;`,jF=e=>`${g2.values().next().value}${HF}${e}${zF}`,qF=e=>`${g2.values().next().value}${Vy}${e}${Uy}`,O0e=e=>e.split(" ").map(t=>Mf(t)),qy=(e,t,r)=>{let i=[...t],n=!1,s=!1,a=Mf(VF(e[e.length-1]));for(let[o,u]of i.entries()){let l=Mf(u);if(a+l<=r?e[e.length-1]+=u:(e.push(u),a=0),g2.has(u)&&(n=!0,s=i.slice(o+1).join("").startsWith(Vy)),n){s?u===Uy&&(n=!1,s=!1):u===zF&&(n=!1);continue}a+=l,a===r&&o<i.length-1&&(e.push(""),a=0)}!a&&e[e.length-1].length>0&&e.length>1&&(e[e.length-2]+=e.pop())},F0e=e=>{let t=e.split(" "),r=t.length;for(;r>0&&!(Mf(t[r-1])>0);)r--;return r===t.length?e:t.slice(0,r).join(" ")+t.slice(r).join("")},N0e=(e,t,r={})=>{if(r.trim!==!1&&e.trim()==="")return"";let i="",n,s,a=O0e(e),o=[""];for(let[l,c]of e.split(" ").entries()){r.trim!==!1&&(o[o.length-1]=o[o.length-1].trimStart());let p=Mf(o[o.length-1]);if(l!==0&&(p>=t&&(r.wordWrap===!1||r.trim===!1)&&(o.push(""),p=0),(p>0||r.trim===!1)&&(o[o.length-1]+=" ",p++)),r.hard&&a[l]>t){let d=t-p,f=1+Math.floor((a[l]-d-1)/t);Math.floor((a[l]-1)/t)<f&&o.push(""),qy(o,c,t);continue}if(p+a[l]>t&&p>0&&a[l]>0){if(r.wordWrap===!1&&p<t){qy(o,c,t);continue}o.push("")}if(p+a[l]>t&&r.wordWrap===!1){qy(o,c,t);continue}o[o.length-1]+=c}r.trim!==!1&&(o=o.map(l=>F0e(l)));let u=[...o.join(`
284
284
  `)];for(let[l,c]of u.entries()){if(i+=c,g2.has(c)){let{groups:d}=new RegExp(`(?:\\${HF}(?<code>\\d+)m|\\${Vy}(?<uri>.*)${Uy})`).exec(u.slice(l).join(""))||{groups:{}};if(d.code!==void 0){let f=Number.parseFloat(d.code);n=f===A0e?void 0:f}else d.uri!==void 0&&(s=d.uri.length===0?void 0:d.uri)}let p=S0e.codes.get(Number(n));u[l+1]===`
285
285
  `?(s&&(i+=qF("")),n&&p&&(i+=jF(p))):c===`
286
286
  `&&(n&&p&&(i+=jF(n)),s&&(i+=qF(s)))}return i};function $F(e,t,r){return String(e).normalize().replace(/\r\n/g,`
@@ -407,7 +407,7 @@ ${cy};
407
407
  ${Z1e};
408
408
 
409
409
  ${cy};
410
- `)}async function mJe(e,t,r,i){let n=pi(),s=await Qe({message:`Automatic configure end-to-end encryption in ${i} updates?`});if(await ya(s,e,t),s){let a=Ue();a.start(`Running: ${n.runner} @capgo/cli@latest key create`),await NO({force:!0},!1)?a.stop("key created \u{1F511}"):(a.stop("Error"),C.warn("Cannot create key \u274C"),Q("Bye \u{1F44B}"),(0,sn.exit)(1)),To("onboarding-v2",e,t,"Use encryption v2")}await fs(e,t,6)}async function gJe(e,t,r,i){let n=pi(),s=await Qe({message:`Automatic build ${i} with "${n.pm} run build" ?`});if(await ya(s,e,t),s){let a=Ue(),o=await IA(),u=await goe(o);a.start(`Running: ${n.pm} run ${u} && ${n.runner} cap sync`),(await ci()).scripts[u]||(a.stop("Error"),C.warn(`Cannot find ${u} script in package.json, please add it and run \`capgo init\` again`),Q("Bye \u{1F44B}"),(0,sn.exit)()),(0,s2.execSync)(`${n.pm} run ${u} && ${n.runner} cap sync`,Q1e),a.stop("Build & Sync Done \u2705")}else C.info(`Build yourself with command: ${n.pm} run build && ${n.runner} cap sync`);await fs(e,t,7)}async function yJe(e,t,r,i){let n=pi(),s=await Qe({message:`Automatic upload ${i} bundle to Capgo?`});if(await ya(s,e,t),s){let a=Ue();a.start(`Running: ${n.runner} @capgo/cli@latest bundle upload`),await ly(i,{channel:n2,apikey:r},!1)?a.stop("Upload Done \u2705"):(a.stop("Error"),C.warn("Upload failed \u274C"),Q("Bye \u{1F44B}"),(0,sn.exit)())}else C.info(`Upload yourself with command: ${n.runner} @capgo/cli@latest bundle upload`);await fs(e,t,8)}async function vJe(e,t){let r=pi(),i=await Qe({message:"Run in device now ?"});if(await ya(i,e,t),i){let n=await jc({message:"Pick a platform to run your app",options:[{value:"ios",label:"IOS"},{value:"android",label:"Android"}]});yi(n)&&(Q("Bye \u{1F44B}"),(0,sn.exit)());let s=n,a=Ue();a.start(`Running: ${r.runner} cap run ${s}`),await(0,s2.spawnSync)(r.runner,["cap","run",s],{stdio:"inherit"}),a.stop("Started Done \u2705")}else C.info(`If you change your mind, run it for yourself with: ${r.runner} cap run <ios|android>`);await fs(e,t,9)}async function _Je(e,t,r,i){let n=await Qe({message:"Automatic check if update working in device ?"});if(await ya(n,e,t),n)C.info(`Wait logs sent to Capgo from ${i} device, Please open your app \u{1F4AA}`),await RO("onboarding-v2",r,i,t,e);else{let s=sf(i);C.info(`Check logs in https://web.capgo.app/app/p/${s}/logs to see if update works.`)}await fs(e,t,10)}async function the(e,t,r){let i=pi();J("Capgo onboarding \u{1F6EB}"),await Oe();let n=qt(),s=await se();t=t||s?.config?.appId,r.apikey=e||xe();let a=Ue();(!H1e()||e)&&(a.start(`Running: ${i.runner} @capgo/cli@latest login ***`),await uF(r.apikey,r,!1),a.stop("Login Done \u2705"));let o=await we(r.apikey);await be(o,r.apikey,["upload","all","read","write"]);let u=await nf(o,["admin","super_admin"]),l=u.gid,c=await oJe(l,n)??0;try{c<1&&await fs(l,n,1),c<2&&(await lJe(u,n,t,r),Yu(2)),c<3&&(await cJe(l,n,r.apikey,t),Yu(3)),c<4&&(await fJe(l,n,r.apikey,t),Yu(4)),c<5&&(await hJe(l,n,r.apikey,t),Yu(5)),c<6&&(await mJe(l,n,r.apikey,t),Yu(6)),c<7&&(await gJe(l,n,r.apikey,t),Yu(7)),c<8&&(await yJe(l,n,r.apikey,t),Yu(8)),c<9&&(await vJe(l,n),Yu(9)),await _Je(l,n,r.apikey,t),await fs(l,n,0),uJe()}catch(p){console.error(p),C.error("Error during onboarding, please try again later"),(0,sn.exit)(1)}C.info("Welcome onboard \u2708\uFE0F!"),C.info("Your Capgo update system is setup"),C.info(`Next time use \`${i.runner} @capgo/cli@latest bundle upload\` to only upload your bundle`),C.info(`If you have any issue try to use the debug command \`${i.runner} @capgo/cli@latest app debug\``),Q("Bye \u{1F44B}"),(0,sn.exit)()}var ohe=require("node:process");var nhe=require("node:process");var she=fe(Jm());var rhe=require("node:process");async function ihe(e,t,r){let{data:i,error:n}=await e.from("devices_override").select().eq("app_id",t).eq("version",r.id);if(n&&(C.error(`Cannot check Device override ${t}@${r.name}`),B.error("")),i&&i.length>0)if(J(`\u274C Version ${t}@${r.name} is used in ${i.length} device override`),await Qe({message:"unlink it?"}))for(let s of i){let a=Ue();a.start(`Unlinking device ${s.device_id}`);let{error:o}=await e.from("devices_override").delete().eq("device_id",s.device_id);o&&(a.stop(`Cannot unlink device ${s.device_id} ${ie(o)}`),(0,rhe.exit)(1)),a.stop(`\u2705 Device ${s.device_id} unlinked`)}else C.error("Unlink it first"),B.error("")}async function wJe(e,t,r){let{error:i}=await e.from("app_versions").update({deleted:!0}).eq("app_id",t).eq("deleted",!1).eq("name",r);i&&(C.error(`App Version ${t}@${r} not found in database`),B.error(""))}async function hy(e,t,r){let i=await bJe(e,t,r);await w1e(e,t,i),await ihe(e,t,i),await wJe(e,t,r)}function my(e){e.length||(C.error("No bundle found"),(0,nhe.exit)(1));let t=new she.Table({title:"Bundles",charLength:{"\u274C":2,"\u2705":2}});e.reverse().forEach(r=>{t.addRow({Version:r.name,Created:af(r.created_at),...r.keep!=null?{Keep:r.keep}:{}})}),C.success(t.render())}async function gy(e,t){let{data:r,error:i}=await e.from("app_versions").select().eq("app_id",t).eq("deleted",!1).order("created_at",{ascending:!1});return i&&(C.error(`App ${t} not found in database`),B.error("")),r}async function ahe(e,t){let{data:r,error:i}=await e.from("channels").select("version").eq("app_id",t);return i&&(C.error(`App ${t} not found in database`),B.error("")),r.map(n=>n.version)}async function bJe(e,t,r){let{data:i,error:n}=await e.from("app_versions").select().eq("app_id",t).eq("name",r).eq("deleted",!1).single();return(!i||n)&&(C.error(`App Version ${t}@${r} doesn't exist`),B.error("")),i}async function uhe(e,t){J("List bundles"),await Oe(),t.apikey=t.apikey||xe();let r=await se();e=e||r?.config?.appId,t.apikey||(C.error("Missing API key, you need to provide a API key to upload your bundle"),B.error("")),e||(C.error("Missing argument, you need to provide a appid, or be in a capacitor project"),B.error(""));let i=await we(t.apikey);await be(i,t.apikey,["write","all","read","upload"]),C.info(`Querying available versions of: ${e} in Capgo`),await Xe(i,t.apikey,e,1);let n=await gy(i,e);C.info(`Active versions in Capgo: ${n?.length}`),my(n),Q("Done \u2705"),(0,ohe.exit)()}var va=require("node:fs"),lhe=require("node:process");async function che(e,t,r){J("Decrypt zip file"),await Oe(),(0,va.existsSync)(e)||(C.error(`Zip not found at the path ${e}`),B.error(""));let i=await se();!r.key&&!(0,va.existsSync)(Pi)&&!i.config.plugins?.CapacitorUpdater?.privateKey&&(C.error(`Private Key not found at the path ${Pi} or in ${i.path}`),B.error(""));let n=r.key||Pi,s=i.config.plugins?.CapacitorUpdater?.privateKey;!(0,va.existsSync)(n)&&!s?(C.error(`Cannot find public key ${n} or as keyData option or in ${i.path}`),B.error("")):(0,va.existsSync)(n)&&(s=(0,va.readFileSync)(n).toString());let a=(0,va.readFileSync)(e),o=Yfe(a,t,r.keyData??s??"");(0,va.writeFileSync)(`${e}_decrypted.zip`,o),Q(`Decrypted zip file at ${e}_decrypted.zip`),(0,lhe.exit)()}var _a=require("node:fs"),phe=require("node:process");var dhe=fe(p9());async function fhe(e,t,r){J("Decrypt zip file"),await Oe(),(0,_a.existsSync)(e)||(C.error(`Zip not found at the path ${e}`),B.error(""));let i=await se();!r.key&&!(0,_a.existsSync)(_o)&&!i.config.plugins?.CapacitorUpdater?.privateKey&&(C.error(`Private Key not found at the path ${_o} or in ${i.path}`),B.error(""));let n=r.key||_o,s=i.config.plugins?.CapacitorUpdater?.publicKey;!(0,_a.existsSync)(n)&&!s?(C.error(`Cannot find public key ${n} or as keyData option or in ${i.path}`),B.error("")):(0,_a.existsSync)(n)&&(s=(0,_a.readFileSync)(n).toString());let a=(0,_a.readFileSync)(e),o=j1e(a,t,r.keyData??s??"");if((0,_a.writeFileSync)(`${e}_decrypted.zip`,o),C.info(`Decrypted zip file at ${e}_decrypted.zip`),r.checksum){let u=await(0,dhe.checksum)(o,"sha256"),l=q1e(r.checksum,r.keyData??s??"");u!==l?(C.error(`Checksum does not match ${u} !== ${l}`),B.error("")):C.info("Checksum matches")}Q("\u2705 done"),(0,phe.exit)()}var Xu=require("node:fs"),hhe=require("node:process");async function mhe(e,t){J("Encryption"),await Oe(),(0,Xu.existsSync)(e)||(C.error(`Error: Zip not found at the path ${e}`),B.error(""));let r=t.key||tn,i=t.keyData||"";(0,Xu.existsSync)(r)&&(i=(0,Xu.readFileSync)(r).toString());let n=(0,Xu.readFileSync)(e),s=W9(n,i);C.success(`ivSessionKey: ${s.ivSessionKey}`),(0,Xu.writeFileSync)(`${e}_encrypted.zip`,s.encryptedData),C.success(`Encrypted zip saved at ${e}_encrypted.zip`),Q("Done \u2705"),(0,hhe.exit)()}var Ro=require("node:fs"),ghe=require("node:process");async function yhe(e,t,r){let{json:i}=r;i||(J("Encryption"),await Oe());let n=await se(),s=!!n.config.plugins?.CapacitorUpdater?.privateKey,a=!!n.config.plugins?.CapacitorUpdater?.publicKey;s&&!i&&C.warning("There is still a privateKey in the config"),(0,Ro.existsSync)(e)||(i?console.error(ie({error:"zip_not_found"})):C.error(`Error: Zip not found at the path ${e}`),B.error("")),a||(i?console.error(ie({error:"missing_public_key"})):C.warning("Warning: Missing Public Key in config"),B.error(""));let o=r.key||en,u=r.keyData||"";!(0,Ro.existsSync)(o)&&!u?(i?console.error(ie({error:"missing_key"})):(C.warning(`Cannot find a private key at ${o} or as a keyData option`),C.error("Error: Missing key")),B.error("")):(0,Ro.existsSync)(o)&&(u=(0,Ro.readFileSync)(o).toString()),u&&!u.startsWith("-----BEGIN RSA PRIVATE KEY-----")&&(i?console.error(ie({error:"invalid_private_key"})):C.error("the private key provided is not a valid RSA Private key"),B.error(""));let l=(0,Ro.readFileSync)(e),c=uy(l,u),p=oy(t,u),d=`${e}_encrypted.zip`;i?console.log(JSON.stringify({checksum:p,filename:d,ivSessionKey:c.ivSessionKey},null,2)):(C.success(`Encoded Checksum: ${p}`),C.success(`ivSessionKey: ${c.ivSessionKey}`)),(0,Ro.writeFileSync)(d,c.encryptedData),i||(C.success(`Encrypted zip saved at ${d}`),Q("Done \u2705")),(0,ghe.exit)()}var Bf=require("node:process"),yy=require("node:os"),vhe=fe(DO());async function DJe(e){let t={},r=[];for(let i in e)Object.prototype.hasOwnProperty.call(e,i)&&r.push((0,vhe.default)(i));return await Promise.all(r).then(i=>{let n=Object.keys(e);for(let s=0;s<i.length;s+=1){let a=i[s];a&&(t[n[s]]=a)}}),t}async function EJe(){let{dependencies:e}=await ci(),t={"@capgo/cli":Po.version};for(let r in e)if(Object.prototype.hasOwnProperty.call(e,r)&&r.startsWith("@capgo/")&&r.startsWith("@capawesome/")&&r.startsWith("capacitor")){let i=e[r].replace("^","").replace("~","");t[r]=i}return t}async function _he(){C.warn(" \u{1F48A} Capgo Doctor \u{1F48A}");let e=await se(),t=await ci(),r=e?.config?.plugins?.CapacitorUpdater?.version||t?.version,i=e?.config?.appName||"";C.info(` App Name: ${i}`);let n=e?.config?.appId||"";C.info(` App ID: ${n}`),C.info(` App Version: ${r}`);let s=e?.config?.webDir||"";C.info(` Web Dir: ${s}`),C.info(` OS: ${(0,yy.platform)()} ${(0,yy.version)()}`),C.info(` Node: ${Bf.version}`),C.info(" Installed Dependencies:");let a=await EJe();Object.keys(a).length===0&&(C.warning("\x1B[31m%s\x1B[0m \u{1F6A8} No dependencies found"),(0,Bf.exit)(1));for(let l in a)if(Object.prototype.hasOwnProperty.call(a,l)){let c=a[l];C.info(` ${l}: ${c}`)}let o=Ue();o.start("Running: Loading latest dependencies");let u=await DJe(a);o.stop("Latest Dependencies:");for(let l in u)if(Object.prototype.hasOwnProperty.call(u,l)){let c=u[l];C.info(` ${l}: ${c}`)}JSON.stringify(a)!==JSON.stringify(u)&&(C.warn("\x1B[31m\u{1F6A8} Some dependencies are not up to date\x1B[0m"),(0,Bf.exit)(1)),C.success("\x1B[32m\u2705 All dependencies are up to date\x1B[0m"),(0,Bf.exit)()}var wa=require("node:fs");async function xJe(e,t=!0){t&&J("Save keys \u{1F511}");let r=await se(),i=e.key||Pi,n=e.keyData||"";if(!(0,wa.existsSync)(i)&&!n)if(t)C.error(`Cannot find public key ${i} or as keyData option or in ${r.path}`),B.error("");else return!1;else(0,wa.existsSync)(i)&&(n=(0,wa.readFileSync)(i).toString());return r?.config&&(r.config.plugins||(r.config.plugins={extConfig:{},CapacitorUpdater:{}}),r.config.plugins.CapacitorUpdater||(r.config.plugins.CapacitorUpdater={}),r.config.plugins.CapacitorUpdater.privateKey=n,await aa(r)),C&&(C.success(`private key saved into ${r.path} file in local directory`),C.success("your app will decode the zip archive with this key")),!0}async function whe(e){J("Save keys \u{1F511}"),await Oe(),await xJe(e)}async function CJe(e,t=!0){t&&J("Create keys \u{1F511}");let{publicKey:r,privateKey:i}=K9();if((0,wa.existsSync)(tn)&&!e.force)if(C.error("Public Key already exists, use --force to overwrite"),t)B.error("");else return!1;if((0,wa.writeFileSync)(tn,r),(0,wa.existsSync)(Pi)&&!e.force)if(C.error("Private Key already exists, use --force to overwrite"),t)B.error("");else return!1;(0,wa.writeFileSync)(Pi,i);let n=i.replace(/\\n/g,"\\n"),s=await G8({privateKey:n});return t&&(C.success("Your RSA key has been generated"),C.success(`Public key saved in ${tn}`),C.success("This key will be use to encrypt your bundle before sending it to Capgo"),C.success("Keep it safe"),C.success("Than make it unreadable by Capgo and unmodifiable by anyone"),C.success(`Private key saved in ${s.path}`),C.success("Your app will be the only one having it"),C.success("Only your users can decrypt your update"),C.success("Only you can send them an update"),Q("Done \u2705")),!0}async function bhe(e){await Oe(),await CJe(e)}var Dhe=require("node:process");async function Ehe(e,t,r){J("Delete bundle"),r.apikey=r.apikey||xe();let i=await se();t=t||i?.config?.appId,r.apikey||(C.error("Missing API key, you need to provide a API key to upload your bundle"),B.error("")),t||(C.error("Missing argument, you need to provide a appId, or be in a capacitor project"),B.error(""));let n=await we(r.apikey);await be(n,r.apikey,["write","all"]),await Xe(n,r.apikey,t,3),r.apikey||(C.error("Missing API key, you need to provide an API key to delete your app"),B.error("")),e||(C.error("Missing argument, you need to provide a bundleId, or be in a capacitor project"),B.error("")),t||(C.error("Missing argument, you need to provide a appId, or be in a capacitor project"),B.error("")),C.info(`Deleting bundle ${t}@${e} from Capgo`),C.info("Keep in mind that you will not be able to reuse this bundle version, it's gone forever"),await hy(n,t,e),C.success(`Bundle ${t}@${e} deleted in Capgo`),Q("Done"),(0,Dhe.exit)()}var Che=require("node:process");var xhe=["major","minor","metadata","patch","none"];async function She(e,t,r){J("Set channel"),r.apikey=r.apikey||xe();let i=await se();t=t||i?.config?.appId;let n=qt();r.apikey||(C.error("Missing API key, you need to provide a API key to upload your bundle"),B.error("")),t||(C.error("Missing argument, you need to provide a appId, or be in a capacitor project"),B.error(""));let s=await we(r.apikey),a=await be(s,r.apikey,["write","all"]);await Xe(s,r.apikey,t,4);let o=await Pn(s,t),{bundle:u,state:l,downgrade:c,latest:p,upgrade:d,ios:f,android:h,selfAssign:m,disableAutoUpdate:v,dev:y,emulator:E}=r;e||(C.error("Missing argument, you need to provide a channel"),B.error("")),p&&u&&(C.error("Cannot set latest and bundle at the same time"),B.error("")),u==null&&l==null&&p==null&&c==null&&d==null&&f==null&&h==null&&m==null&&y==null&&E==null&&v==null&&(C.error("Missing argument, you need to provide a option to set"),B.error(""));try{await rf(s,o,r.apikey,t);let b={created_by:a,app_id:t,name:e,owner_org:o,version:void 0},_=await ci(),w=p?i?.config?.plugins?.CapacitorUpdater?.version||_?.version:u;if(w!=null){let{data:T,error:A}=await s.from("app_versions").select().eq("app_id",t).eq("name",w).eq("user_id",a).eq("deleted",!1).single();(A||!T)&&(C.error(`Cannot find version ${w}`),B.error("")),C.info(`Set ${t} channel: ${e} to @${w}`),b.version=T.id}if(l!=null&&((l==="public"||l==="private")&&C.info(`Set ${t} channel: ${e} to public or private is deprecated, use default or normal instead`),C.info(`Set ${t} channel: ${e} to ${l==="public"||l==="default"?"default":"normal"}`),b.public=l==="public"||l==="default"),c!=null&&(C.info(`Set ${t} channel: ${e} to ${c?"allow":"disallow"} downgrade`),b.disable_auto_update_under_native=!c),f!=null&&(C.info(`Set ${t} channel: ${e} to ${f?"allow":"disallow"} ios update`),b.ios=!!f),h!=null&&(C.info(`Set ${t} channel: ${e} to ${h?"allow":"disallow"} android update`),b.android=!!h),m!=null&&(C.info(`Set ${t} channel: ${e} to ${m?"allow":"disallow"} self assign to this channel`),b.allow_device_self_set=!!m),v!=null){let T=v.toLocaleLowerCase();xhe.includes(T)||(C.error(`Channel strategy ${T} is not known. The possible values are: ${xhe.join(", ")}.`),B.error("")),T==="metadata"&&(T="version_number"),b.disable_auto_update=T,C.info(`Set ${t} channel: ${e} to ${T} disable update strategy to this channel`)}try{let{error:T}=await K8(s,b);T&&(C.error('Cannot set channel the upload key is not allowed to do that, use the "all" for this.'),B.error(""))}catch{C.error('Cannot set channel the upload key is not allowed to do that, use the "all" for this.'),B.error("")}await n.track({channel:"channel",event:"Set channel",icon:"\u2705",user_id:o,tags:{"app-id":t},notify:!1}).catch()}catch(b){C.error(`Unknow error ${ie(b)}`),B.error("")}Q("Done \u2705"),(0,Che.exit)()}var Ahe=require("node:process");async function The(e,t,r){let{quiet:i}=r;i||J("List current bundle"),r.apikey=r.apikey||xe(i);let n=await se();t=t||n?.config?.appId,r.apikey||(C.error("Missing API key, you need to provide a API key to upload your bundle"),B.error("")),t||(C.error("Missing argument, you need to provide a appId, or be in a capacitor project"),B.error(""));let s=await we(r.apikey),a=await be(s,r.apikey,["write","all","read"]);await Xe(s,r.apikey,t,1),e||(C.error("Please provide a channel to get the bundle from."),B.error(""));let{data:o,error:u}=await s.from("channels").select("version ( name )").eq("name",e).eq("app_id",t).limit(1);(u||o.length===0)&&(C.error(`Error retrieving channel ${e} for app ${t}. Perhaps the channel does not exists?`),B.error(""));let{version:l}=o[0];l||(C.error(`Error retrieving channel ${e} for app ${t}. Perhaps the channel does not exists?`),B.error("")),i?C.info(l.name):C.info(`Current bundle for channel ${e} is ${l.name}`),(0,Ahe.exit)()}var dF=require("node:process");var Ohe=fe(Jm());function SJe(e){e.length||(C.error("No apps found"),(0,dF.exit)(1));let t=new Ohe.Table({title:"Apps",charLength:{"\u274C":2,"\u2705":2}});e.reverse().forEach(r=>{t.addRow({Name:r.name,id:r.app_id,Created:af(r.created_at)})}),C.success(t.render())}async function AJe(e){let{data:t,error:r}=await e.from("apps").select().order("created_at",{ascending:!1});return r&&(C.error("Apps not found"),B.error("")),t}async function Fhe(e){J("List apps in Capgo"),await Oe(),e.apikey=e.apikey||xe();let t=await we(e.apikey);await be(t,e.apikey,["write","all","read","upload"]),C.info("Getting active bundle in Capgo");let r=await AJe(t);C.info(`Active app in Capgo: ${r?.length}`),SJe(r),Q("Done \u2705"),(0,dF.exit)()}var fF=require("node:process");var vy=fe(khe());async function TJe(e,t,r){for await(let i of e)C.warn(`Removing ${i.name} created on ${af(i.created_at)}`),await hy(t,r,i.name)}function OJe(e,t,r){let i=[];return e?.forEach(n=>{vy.default.gte(n.name,t)&&vy.default.lt(n.name,`${r}`)&&i.push(n)}),i}async function Rhe(e,t){J("Cleanup versions in Capgo"),await Oe(),t.apikey=t.apikey||xe();let{bundle:r,keep:i=4}=t,n=t.force||!1,s=await se();e=e||s?.config?.appId,t.apikey||(C.error("Missing API key, you need to provide an API key to delete your app"),B.error("")),e||(C.error("Missing argument, you need to provide a appid, or be in a capacitor project"),B.error(""));let a=await we(t.apikey);await be(a,t.apikey,["write","all"]),await Xe(a,t.apikey,e,3),C.info("Querying all available versions in Capgo");let o=await gy(a,e),u=await ahe(a,e);if(C.info(`Total active versions in Capgo: ${o?.length}`),o?.length===0){C.error("No versions found, aborting cleanup");return}if(r){let p=`${vy.default.inc(r,"major")}`;C.info(`Querying available versions in Capgo between ${r} and ${p}`),o=OJe(o,r,p),C.info(`Active versions in Capgo between ${r} and ${p}: ${o?.length}`)}let l=[],c=0;if(o.forEach(p=>{let d=u.find(f=>f===p.id);c<i||d?(d?p.keep="\u2705 (Linked to channel)":p.keep="\u2705",c+=1):(p.keep="\u274C",l.push(p))}),l.length===0){C.warn("Nothing to be removed, aborting removal...");return}if(my(o),!n){let p=await Qe({message:"Do you want to continue removing the versions specified?"});(yi(p)||!p)&&(C.warn("Not confirmed, aborting removal..."),(0,fF.exit)())}C.success("You have confirmed removal, removing versions now"),await TJe(l,a,e),Q("Done \u2705"),(0,fF.exit)()}var Phe=require("node:process");async function Ihe(e,t,r){J("Delete channel"),r.apikey=r.apikey||xe();let i=await se();t=t||i?.config?.appId;let n=qt();r.apikey||(C.error("Missing API key, you need to provide a API key to upload your bundle"),B.error("")),t||(C.error("Missing argument, you need to provide a appId, or be in a capacitor project"),B.error(""));let s=await we(r.apikey),a=await be(s,r.apikey,["write","all"]);await Xe(s,r.apikey,t,4),C.info(`Deleting channel ${t}#${e} from Capgo`);try{let o=await D1e(s,e,t,a);o.error&&(C.error(`Cannot delete Channel \u{1F640} ${ie(o.error)}`),B.error(""));let u=await Pn(s,t);C.success("Channel deleted"),await n.track({channel:"channel",event:"Delete channel",icon:"\u2705",user_id:u,tags:{"user-id":a,"app-id":t,channel:e},notify:!1}).catch()}catch{C.error("Cannot delete Channel \u{1F640}")}Q("Done \u2705"),(0,Phe.exit)()}var Lhe=require("node:process");async function Bhe(e,t){J("List channels"),t.apikey=t.apikey||xe();let r=await se();e=e||r?.config?.appId;let i=qt();t.apikey||C.error("Missing API key, you need to provide a API key to upload your bundle"),e||(C.error("Missing argument, you need to provide a appId, or be in a capacitor project"),B.error(""));let n=await we(t.apikey),s=await be(n,t.apikey,["write","all","read","upload"]);await Xe(n,t.apikey,e,1),C.info("Querying available channels in Capgo");let a=await x1e(n,e);C.info(`Active channels in Capgo: ${a?.length}`),E1e(a),await i.track({channel:"channel",event:"List channel",icon:"\u2705",user_id:s,tags:{"app-id":e},notify:!1}).catch(),Q("Done \u2705"),(0,Lhe.exit)()}var jhe=require("node:crypto"),jf=require("node:fs"),qhe=require("node:process");async function $he(e,t){J("Set app"),t.apikey=t.apikey||xe();let r=await se();e=e||r?.config?.appId,t.apikey||(C.error("Missing API key, you need to provide a API key to upload your bundle"),B.error("")),e||(C.error("Missing argument, you need to provide a appId, or be in a capacitor project"),B.error(""));let i=await we(t.apikey),s=(await nf(i,["admin","super_admin"])).gid,a=await be(i,t.apikey,["write","all"]);await Xe(i,t.apikey,e,4);let{name:o,icon:u,retention:l}=t;l&&Number.isNaN(Number(l))?(C.error("retention value must be a number"),B.error("")):l&&l<0&&(C.error("retention value cannot be less than 0"),B.error(""));let c,p,d=`icon_${(0,jhe.randomUUID)()}`,f="https://xvwzpoazmxkqosrdewyv.supabase.co/storage/v1/object/public/images/capgo.png";if(u&&(0,jf.existsSync)(u)?(c=(0,jf.readFileSync)(u),p=Pf.getType(u)||"image/png",C.warn(`Found app icon ${u}`)):(0,jf.existsSync)(qn)?(c=(0,jf.readFileSync)(qn),p=Pf.getType(qn)||"image/png",C.warn(`Found app icon ${qn}`)):C.warn(`Cannot find app icon in any of the following locations: ${u}, ${qn}`),c&&p){let{error:m}=await i.storage.from(`images/org/${s}/${e}`).upload(d,c,{contentType:p});m&&(C.error(`Could not set app ${ie(m)}`),B.error(""));let{data:v}=await i.storage.from(`images/org/${s}/${e}`).getPublicUrl(d);f=v?.publicUrl||f}let{error:h}=await i.from("apps").update({icon_url:f,name:o,retention:l?l*24*60*60:void 0}).eq("app_id",e).eq("user_id",a);h&&(C.error(`Could not set app ${ie(h)}`),B.error("")),Q("Done \u2705"),(0,qhe.exit)()}var Mhe=require("node:process");async function Uhe(e,t){J("Deleting"),t.apikey=t.apikey||xe();let r=await se();e=e||r?.config?.appId;let i=qt();t.apikey||(C.error("Missing API key, you need to provide a API key to upload your bundle"),B.error("")),e||(C.error("Missing argument, you need to provide a appId, or be in a capacitor project"),B.error(""));let n=await we(t.apikey),s=await be(n,t.apikey,["write","all"]);await Xe(n,t.apikey,e,5);let{data:a,error:o}=await n.from("apps").select("owner_org ( created_by, id )").eq("app_id",e).single(),u=a;if(!o&&(u?.owner_org.created_by??"")!==s){C.warn("Deleting the app is not recomended for users that are not the organization owner"),C.warn("You are invited as a super_admin but your are not the owner"),C.warn("It's strongly recomended that you do not continue!");let f=await jc({message:"Do you want to continue?",options:[{label:"Yes",value:"yes"},{label:"No",value:"no"}]});(yi(f)||f==="no")&&(C.error("Canceled deleting the app, exiting"),B.error(""))}else o&&C.warn(`Cannot get the app owner ${ie(o)}`);let{error:l}=await n.storage.from("images").remove([`org/${u?.owner_org.id}/${e}/icon`]);l&&(console.error(l,`images/org/${u?.owner_org.id}/${e}`),C.error("Could not delete app logo"));let{error:c}=await n.storage.from(`apps/${e}/${s}`).remove(["versions"]);c&&C.error("Could not delete app version");let{error:p}=await n.from("apps").delete().eq("app_id",e);p&&(C.error("Could not delete app"),B.error(""));let d=await Pn(n,e);await i.track({channel:"app",event:"App Deleted",icon:"\u{1F5D1}\uFE0F",user_id:d,tags:{"app-id":e},notify:!1}).catch(),C.success("App deleted in Capgo"),Q("Done \u2705"),(0,Mhe.exit)()}var Vhe=fe(Jm());async function Hhe(e,t){J("Check compatibility"),t.apikey=t.apikey||xe();let r=await se();e=e||r?.config?.appId;let{channel:i}=t;i||(C.error("Missing argument, you need to provide a channel"),B.error("")),t.apikey||(C.error("Missing API key, you need to provide a API key to upload your bundle"),B.error("")),e||(C.error("Missing argument, you need to provide a appId, or be in a capacitor project"),B.error(""));let n=await we(t.apikey);await be(n,t.apikey,["write","all","read","upload"]),await Xe(n,t.apikey,e,1);let{finalCompatibility:s}=await Y8(n,e,i),a=new Vhe.Table({title:"Compatibility",charLength:{"\u274C":2,"\u2705":2}}),o=t.text?"Yes":"\u2705",u=t.text?"No":"\u274C";s.forEach(l=>{let{name:c,localVersion:p,remoteVersion:d}=l;a.addRow({Package:c,"Local version":p??"None","Remote version":d??"None",Compatible:d===p?o:u})}),C.success(a.render())}B.name(Po.name).description("Manage packages and bundle versions in Capgo Cloud").version(Po.version);B.command("login [apikey]").alias("l").description("Save apikey to your machine or folder").action(z1e).option("--local","Only save in local folder");B.command("doctor").description("Get info about your Capgo app install").action(_he);B.command("init [apikey] [appId]").description("Init a new app").action(the).option("-n, --name <name>","app name").option("-i, --icon <icon>","app icon path");var qf=B.command("app").description("Manage app");qf.command("add [appId]").alias("a").description("Add a new app in Capgo Cloud").action(J1e).option("-n, --name <name>","app name").option("-i, --icon <icon>","app icon path").option("-a, --apikey <apikey>","apikey to link to your account");qf.command("delete [appId]").description("Delete an app in Capgo Cloud").action(Uhe).option("-a, --apikey <apikey>","apikey to link to your account");qf.command("list").alias("l").description("list apps in Capgo Cloud").action(Fhe).option("-a, --apikey <apikey>","apikey to link to your account");qf.command("debug [appId]").description("Listen for live updates event in Capgo Cloud to debug your app").option("-a, --apikey <apikey>","apikey to link to your account").option("-d, --device <device>","the specific device to debug").action(e1e);qf.command("setting [path]").description("Modifies capacitor config programmatically").option("--bool <bool>","A value for the setting to modify as a boolean").option("--string <string>","A value for the setting to modify as a string").action(Eoe);qf.command("set [appId]").alias("s").description("Set an app in Capgo Cloud").action($he).option("-n, --name <name>","app name").option("-i, --icon <icon>","app icon path").option("-a, --apikey <apikey>","apikey to link to your account").option("-r, --retention <retention>","retention period of app bundle in days");var ba=B.command("bundle").description("Manage bundle");ba.command("upload [appId]").alias("u").description("Upload a new bundle in Capgo Cloud").action(U1e).option("-a, --apikey <apikey>","apikey to link to your account").option("-p, --path <path>","path of the folder to upload").option("-c, --channel <channel>","channel to link to").option("-e, --external <url>","link to external url intead of upload to Capgo Cloud").option("--iv-session-key <key>","Set the iv and session key for bundle url external").option("--s3-region <region>","Region for your S3 bucket").option("--s3-apikey <apikey>","Apikey for your S3 endpoint").option("--s3-apisecret <apisecret>","Api secret for your S3 endpoint").option("--s3-endoint <s3Endpoint>","Url of S3 endpoint").option("--s3-bucket-name <bucketName>","Name for your AWS S3 bucket").option("--s3-port <port>","Port for your S3 endpoint").option("--no-s3-ssl","Disable SSL for S3 upload").option("--key <key>","custom path for public signing key").option("--key-data <keyData>","public signing key").option("--key-v2 <key>","custom path for private signing key").option("--key-data-v2 <keyData>","private signing key").option("--bundle-url","prints bundle url into stdout").option("--no-key","ignore signing key and send clear update").option("--no-code-check","Ignore checking if notifyAppReady() is called in soure code and index present in root folder").option("--display-iv-session","Show in the console the iv and session key used to encrypt the update").option("-b, --bundle <bundle>","bundle version number of the bundle to upload").option("--min-update-version <minUpdateVersion>","Minimal version required to update to this version. Used only if the disable auto update is set to metadata in channel").option("--auto-min-update-version","Set the min update version based on native packages").option("--ignore-metadata-check","Ignores the metadata (node_modules) check when uploading").option("--ignore-checksum-check","Ignores the checksum check when uploading").option("--timeout <timeout>","Timeout for the upload process in seconds").option("--multipart","Uses multipart protocol to upload data to S3").option("--ignore-partial","Does not upload partial files to S3").option("--encrypted-checksum <encryptedChecksum>","An encrypted checksum (signature). Used only when uploading an external bundle.");ba.command("compatibility [appId]").action(Hhe).option("-a, --apikey <apikey>","apikey to link to your account").option("-c, --channel <channel>","channel to check the compatibility with").option("--text","output text instead of emojis");ba.command("delete [bundleId] [appId]").alias("d").description("Delete a bundle in Capgo Cloud").action(Ehe).option("-a, --apikey <apikey>","apikey to link to your account");ba.command("list [appId]").alias("l").description("List bundle in Capgo Cloud").action(uhe).option("-a, --apikey <apikey>","apikey to link to your account");ba.command("cleanup [appId]").alias("c").action(Rhe).description("Cleanup bundle in Capgo Cloud").option("-b, --bundle <bundle>","bundle version number of the app to delete").option("-a, --apikey <apikey>","apikey to link to your account").option("-k, --keep <keep>","number of version to keep").option("-f, --force","force removal");ba.command("decrypt [zipPath] [sessionKey]").description("Decrypt a signed zip bundle").action(che).option("--key <key>","custom path for private signing key").option("--key-data <keyData>","private signing key");ba.command("encrypt [zipPath]").description("Encrypt a zip bundle").action(mhe).option("--key <key>","custom path for private signing key").option("--key-data <keyData>","private signing key");ba.command("encryptV2 [zipPath] [checksum]").description("Encrypt a zip bundle using the new encryption method").action(yhe).option("--key <key>","custom path for private signing key").option("--key-data <keyData>","private signing key").option("-j, --json","output in JSON");ba.command("decryptV2 [zipPath] [checksum]").description("Decrypt a zip bundle using the new encryption method").action(fhe).option("--key <key>","custom path for private signing key").option("--key-data <keyData>","private signing key").option("-j, --json","output in JSON").option("--checksum <checksum>","checksum of the bundle, to verify the integrity of the bundle");ba.command("zip [appId]").description("Zip a bundle").action(Ofe).option("-p, --path <path>","path of the folder to upload").option("-b, --bundle <bundle>","bundle version number to name the zip file").option("-n, --name <name>","name of the zip file").option("-j, --json","output in JSON").option("--no-code-check","Ignore checking if notifyAppReady() is called in soure code and index present in root folder").option("--key-v2","use encryption v2");var a2=B.command("channel").description("Manage channel");a2.command("add [channelId] [appId]").alias("a").description("Create channel").action(S1e).option("-d, --default","set the channel as default").option("-a, --apikey <apikey>","apikey to link to your account");a2.command("delete [channelId] [appId]").alias("d").description("Delete channel").action(Ihe).option("-a, --apikey <apikey>","apikey to link to your account");a2.command("list [appId]").alias("l").description("List channel").action(Bhe).option("-a, --apikey <apikey>","apikey to link to your account");a2.command("currentBundle [channel] [appId]").description("Get current bundle for specific channel in Capgo Cloud").action(The).option("-c, --channel <channel>","channel to get the current bundle from").option("-a, --apikey <apikey>","apikey to link to your account").option("--quiet","only print the bundle version");a2.command("set [channelId] [appId]").alias("s").description("Set channel").action(She).option("-a, --apikey <apikey>","apikey to link to your account").option("-b, --bundle <bundle>","bundle version number of the file to set").option("-s, --state <state>","set the state of the channel, default or normal").option("--latest","get the latest version key in the package.json to set it to the channel").option("--downgrade","Allow to downgrade to version under native one").option("--no-downgrade","Disable downgrade to version under native one").option("--upgrade","Allow to upgrade to version above native one").option("--no-upgrade","Disable upgrade to version above native one").option("--ios","Allow sending update to ios devices").option("--no-ios","Disable sending update to ios devices").option("--android","Allow sending update to android devices").option("--no-android","Disable sending update to android devices").option("--self-assign","Allow to device to self assign to this channel").option("--no-self-assign","Disable devices to self assign to this channel").option("--disable-auto-update <disableAutoUpdate>","Disable auto update strategy for this channel.The possible options are: major, minor, metadata, patch, none").option("--dev","Allow sending update to development devices").option("--no-dev","Disable sending update to development devices").option("--emulator","Allow sending update to emulator devices").option("--no-emulator","Disable sending update to emulator devices");var zhe=B.command("key_old").description("Manage old encryption key");zhe.command("save").description("Save base64 encryption key in capacitor config, usefull for CI").action(whe).option("-f, --force","force generate a new one").option("--key","key path to save in capacitor config").option("--key-data","key data to save in capacitor config");zhe.command("create").description("Create a new encryption key").action(bhe).option("-f, --force","force generate a new one");var hF=B.command("key").description("Manage encryption key");hF.command("save").description("Save base64 encryption key in capacitor config, usefull for CI").action(Xfe).option("-f, --force","force generate a new one").option("--key","key path to save in capacitor config").option("--key-data","key data to save in capacitor config");hF.command("create").description("Create a new encryption key").action(Jfe).option("-f, --force","force generate a new one");hF.command("delete_old").description("Delete the old encryption key").action(Zfe);B.command("upload [appId]").alias("u").description("(Deprecated) Upload a new bundle to Capgo Cloud").action(V1e).option("-a, --apikey <apikey>","apikey to link to your account").option("-p, --path <path>","path of the folder to upload").option("-c, --channel <channel>","channel to link to").option("-e, --external <url>","link to external url intead of upload to Capgo Cloud").option("--old-encryption","use old encryption").option("--key <key>","custom path for public signing key").option("--key-data <keyData>","public signing key").option("--bundle-url","prints bundle url into stdout").option("--no-key","ignore signing key and send clear update").option("--display-iv-session","Show in the console the iv and session key used to encrypt the update").option("-b, --bundle <bundle>","bundle version number of the file to upload").option("--min-update-version <minUpdateVersion>","Minimal version required to update to this version. Used only if the disable auto update is set to metadata in channel");var FJe=B.command("account").description("Manage account");FJe.command("id").description("Get your account ID").action(xoe).option("-a, --apikey <apikey>","apikey to link to your account");B.parseAsync();
410
+ `)}async function mJe(e,t,r,i){let n=pi(),s=await Qe({message:`Automatic configure end-to-end encryption in ${i} updates?`});if(await ya(s,e,t),s){let a=Ue();a.start(`Running: ${n.runner} @capgo/cli@latest key create`),await NO({force:!0},!1)?a.stop("key created \u{1F511}"):(a.stop("Error"),C.warn("Cannot create key \u274C"),Q("Bye \u{1F44B}"),(0,sn.exit)(1)),To("onboarding-v2",e,t,"Use encryption v2")}await fs(e,t,6)}async function gJe(e,t,r,i){let n=pi(),s=await Qe({message:`Automatic build ${i} with "${n.pm} run build" ?`});if(await ya(s,e,t),s){let a=Ue(),o=await IA(),u=await goe(o);a.start(`Running: ${n.pm} run ${u} && ${n.runner} cap sync`),(await ci()).scripts[u]||(a.stop("Error"),C.warn(`Cannot find ${u} script in package.json, please add it and run \`capgo init\` again`),Q("Bye \u{1F44B}"),(0,sn.exit)()),(0,s2.execSync)(`${n.pm} run ${u} && ${n.runner} cap sync`,Q1e),a.stop("Build & Sync Done \u2705")}else C.info(`Build yourself with command: ${n.pm} run build && ${n.runner} cap sync`);await fs(e,t,7)}async function yJe(e,t,r,i){let n=pi(),s=await Qe({message:`Automatic upload ${i} bundle to Capgo?`});if(await ya(s,e,t),s){let a=Ue();a.start(`Running: ${n.runner} @capgo/cli@latest bundle upload`),await ly(i,{channel:n2,apikey:r},!1)?a.stop("Upload Done \u2705"):(a.stop("Error"),C.warn("Upload failed \u274C"),Q("Bye \u{1F44B}"),(0,sn.exit)())}else C.info(`Upload yourself with command: ${n.runner} @capgo/cli@latest bundle upload`);await fs(e,t,8)}async function vJe(e,t){let r=pi(),i=await Qe({message:"Run in device now ?"});if(await ya(i,e,t),i){let n=await jc({message:"Pick a platform to run your app",options:[{value:"ios",label:"IOS"},{value:"android",label:"Android"}]});yi(n)&&(Q("Bye \u{1F44B}"),(0,sn.exit)());let s=n,a=Ue();a.start(`Running: ${r.runner} cap run ${s}`),await(0,s2.spawnSync)(r.runner,["cap","run",s],{stdio:"inherit"}),a.stop("Started Done \u2705")}else C.info(`If you change your mind, run it for yourself with: ${r.runner} cap run <ios|android>`);await fs(e,t,9)}async function _Je(e,t,r,i){let n=await Qe({message:"Automatic check if update working in device ?"});if(await ya(n,e,t),n)C.info(`Wait logs sent to Capgo from ${i} device, Please open your app \u{1F4AA}`),await RO("onboarding-v2",r,i,t,e);else{let s=sf(i);C.info(`Check logs in https://web.capgo.app/app/p/${s}/logs to see if update works.`)}await fs(e,t,10)}async function the(e,t,r){let i=pi();J("Capgo onboarding \u{1F6EB}"),await Oe();let n=qt(),s=await se();t=t||s?.config?.appId,r.apikey=e||xe();let a=Ue();(!H1e()||e)&&(a.start(`Running: ${i.runner} @capgo/cli@latest login ***`),await uF(r.apikey,r,!1),a.stop("Login Done \u2705"));let o=await we(r.apikey);await be(o,r.apikey,["upload","all","read","write"]);let u=await nf(o,["admin","super_admin"]),l=u.gid,c=await oJe(l,n)??0;try{c<1&&await fs(l,n,1),c<2&&(await lJe(u,n,t,r),Yu(2)),c<3&&(await cJe(l,n,r.apikey,t),Yu(3)),c<4&&(await fJe(l,n,r.apikey,t),Yu(4)),c<5&&(await hJe(l,n,r.apikey,t),Yu(5)),c<6&&(await mJe(l,n,r.apikey,t),Yu(6)),c<7&&(await gJe(l,n,r.apikey,t),Yu(7)),c<8&&(await yJe(l,n,r.apikey,t),Yu(8)),c<9&&(await vJe(l,n),Yu(9)),await _Je(l,n,r.apikey,t),await fs(l,n,0),uJe()}catch(p){console.error(p),C.error("Error during onboarding, please try again later"),(0,sn.exit)(1)}C.info("Welcome onboard \u2708\uFE0F!"),C.info("Your Capgo update system is setup"),C.info(`Next time use \`${i.runner} @capgo/cli@latest bundle upload\` to only upload your bundle`),C.info(`If you have any issue try to use the debug command \`${i.runner} @capgo/cli@latest app debug\``),Q("Bye \u{1F44B}"),(0,sn.exit)()}var ohe=require("node:process");var nhe=require("node:process");var she=fe(Jm());var rhe=require("node:process");async function ihe(e,t,r){let{data:i,error:n}=await e.from("devices_override").select().eq("app_id",t).eq("version",r.id);if(n&&(C.error(`Cannot check Device override ${t}@${r.name}`),B.error("")),i&&i.length>0)if(J(`\u274C Version ${t}@${r.name} is used in ${i.length} device override`),await Qe({message:"unlink it?"}))for(let s of i){let a=Ue();a.start(`Unlinking device ${s.device_id}`);let{error:o}=await e.from("devices_override").delete().eq("device_id",s.device_id);o&&(a.stop(`Cannot unlink device ${s.device_id} ${ie(o)}`),(0,rhe.exit)(1)),a.stop(`\u2705 Device ${s.device_id} unlinked`)}else C.error("Unlink it first"),B.error("")}async function wJe(e,t,r){let{error:i}=await e.from("app_versions").update({deleted:!0}).eq("app_id",t).eq("deleted",!1).eq("name",r);i&&(C.error(`App Version ${t}@${r} not found in database`),B.error(""))}async function hy(e,t,r){let i=await bJe(e,t,r);await w1e(e,t,i),await ihe(e,t,i),await wJe(e,t,r)}function my(e){e.length||(C.error("No bundle found"),(0,nhe.exit)(1));let t=new she.Table({title:"Bundles",charLength:{"\u274C":2,"\u2705":2}});e.reverse().forEach(r=>{t.addRow({Version:r.name,Created:af(r.created_at),...r.keep!=null?{Keep:r.keep}:{}})}),C.success(t.render())}async function gy(e,t){let{data:r,error:i}=await e.from("app_versions").select().eq("app_id",t).eq("deleted",!1).order("created_at",{ascending:!1});return i&&(C.error(`App ${t} not found in database`),B.error("")),r}async function ahe(e,t){let{data:r,error:i}=await e.from("channels").select("version").eq("app_id",t);return i&&(C.error(`App ${t} not found in database`),B.error("")),r.map(n=>n.version)}async function bJe(e,t,r){let{data:i,error:n}=await e.from("app_versions").select().eq("app_id",t).eq("name",r).eq("deleted",!1).single();return(!i||n)&&(C.error(`App Version ${t}@${r} doesn't exist`),B.error("")),i}async function uhe(e,t){J("List bundles"),await Oe(),t.apikey=t.apikey||xe();let r=await se();e=e||r?.config?.appId,t.apikey||(C.error("Missing API key, you need to provide a API key to upload your bundle"),B.error("")),e||(C.error("Missing argument, you need to provide a appid, or be in a capacitor project"),B.error(""));let i=await we(t.apikey);await be(i,t.apikey,["write","all","read","upload"]),C.info(`Querying available versions of: ${e} in Capgo`),await Xe(i,t.apikey,e,1);let n=await gy(i,e);C.info(`Active versions in Capgo: ${n?.length}`),my(n),Q("Done \u2705"),(0,ohe.exit)()}var va=require("node:fs"),lhe=require("node:process");async function che(e,t,r){J("Decrypt zip file"),await Oe(),(0,va.existsSync)(e)||(C.error(`Zip not found at the path ${e}`),B.error(""));let i=await se();!r.key&&!(0,va.existsSync)(Pi)&&!i.config.plugins?.CapacitorUpdater?.privateKey&&(C.error(`Private Key not found at the path ${Pi} or in ${i.path}`),B.error(""));let n=r.key||Pi,s=i.config.plugins?.CapacitorUpdater?.privateKey;!(0,va.existsSync)(n)&&!s?(C.error(`Cannot find public key ${n} or as keyData option or in ${i.path}`),B.error("")):(0,va.existsSync)(n)&&(s=(0,va.readFileSync)(n).toString());let a=(0,va.readFileSync)(e),o=Yfe(a,t,r.keyData??s??"");(0,va.writeFileSync)(`${e}_decrypted.zip`,o),Q(`Decrypted zip file at ${e}_decrypted.zip`),(0,lhe.exit)()}var _a=require("node:fs"),phe=require("node:process");var dhe=fe(p9());async function fhe(e,t,r){J("Decrypt zip file"),await Oe(),(0,_a.existsSync)(e)||(C.error(`Zip not found at the path ${e}`),B.error(""));let i=await se();!r.key&&!(0,_a.existsSync)(_o)&&!i.config.plugins?.CapacitorUpdater?.privateKey&&(C.error(`Private Key not found at the path ${_o} or in ${i.path}`),B.error(""));let n=r.key||_o,s=i.config.plugins?.CapacitorUpdater?.publicKey;!(0,_a.existsSync)(n)&&!s?(C.error(`Cannot find public key ${n} or as keyData option or in ${i.path}`),B.error("")):(0,_a.existsSync)(n)&&(s=(0,_a.readFileSync)(n).toString());let a=(0,_a.readFileSync)(e),o=j1e(a,t,r.keyData??s??"");if((0,_a.writeFileSync)(`${e}_decrypted.zip`,o),C.info(`Decrypted zip file at ${e}_decrypted.zip`),r.checksum){let u=await(0,dhe.checksum)(o,"sha256"),l=q1e(r.checksum,r.keyData??s??"");u!==l?(C.error(`Checksum does not match ${u} !== ${l}`),B.error("")):C.info("Checksum matches")}Q("\u2705 done"),(0,phe.exit)()}var Xu=require("node:fs"),hhe=require("node:process");async function mhe(e,t){J("Encryption"),await Oe(),(0,Xu.existsSync)(e)||(C.error(`Error: Zip not found at the path ${e}`),B.error(""));let r=t.key||tn,i=t.keyData||"";(0,Xu.existsSync)(r)&&(i=(0,Xu.readFileSync)(r).toString());let n=(0,Xu.readFileSync)(e),s=W9(n,i);C.success(`ivSessionKey: ${s.ivSessionKey}`),(0,Xu.writeFileSync)(`${e}_encrypted.zip`,s.encryptedData),C.success(`Encrypted zip saved at ${e}_encrypted.zip`),Q("Done \u2705"),(0,hhe.exit)()}var Ro=require("node:fs"),ghe=require("node:process");async function yhe(e,t,r){let{json:i}=r;i||(J("Encryption"),await Oe());let n=await se(),s=!!n.config.plugins?.CapacitorUpdater?.privateKey,a=!!n.config.plugins?.CapacitorUpdater?.publicKey;s&&!i&&C.warning("There is still a privateKey in the config"),(0,Ro.existsSync)(e)||(i?console.error(ie({error:"zip_not_found"})):C.error(`Error: Zip not found at the path ${e}`),B.error("")),a||(i?console.error(ie({error:"missing_public_key"})):C.warning("Warning: Missing Public Key in config"),B.error(""));let o=r.key||en,u=r.keyData||"";!(0,Ro.existsSync)(o)&&!u?(i?console.error(ie({error:"missing_key"})):(C.warning(`Cannot find a private key at ${o} or as a keyData option`),C.error("Error: Missing key")),B.error("")):(0,Ro.existsSync)(o)&&(u=(0,Ro.readFileSync)(o).toString()),u&&!u.startsWith("-----BEGIN RSA PRIVATE KEY-----")&&(i?console.error(ie({error:"invalid_private_key"})):C.error("the private key provided is not a valid RSA Private key"),B.error(""));let l=(0,Ro.readFileSync)(e),c=uy(l,u),p=oy(t,u),d=`${e}_encrypted.zip`;i?console.log(JSON.stringify({checksum:p,filename:d,ivSessionKey:c.ivSessionKey},null,2)):(C.success(`Encoded Checksum: ${p}`),C.success(`ivSessionKey: ${c.ivSessionKey}`)),(0,Ro.writeFileSync)(d,c.encryptedData),i||(C.success(`Encrypted zip saved at ${d}`),Q("Done \u2705")),(0,ghe.exit)()}var Bf=require("node:process"),yy=require("node:os"),vhe=fe(DO());async function DJe(e){let t={},r=[];for(let i in e)Object.prototype.hasOwnProperty.call(e,i)&&r.push((0,vhe.default)(i));return await Promise.all(r).then(i=>{let n=Object.keys(e);for(let s=0;s<i.length;s+=1){let a=i[s];a&&(t[n[s]]=a)}}),t}async function EJe(){let{dependencies:e}=await ci(),t={"@capgo/cli":Po.version};for(let r in e)if(Object.prototype.hasOwnProperty.call(e,r)&&r.startsWith("@capgo/")&&r.startsWith("@capawesome/")&&r.startsWith("capacitor")){let i=e[r].replace("^","").replace("~","");t[r]=i}return t}async function _he(){C.warn(" \u{1F48A} Capgo Doctor \u{1F48A}");let e=await se(),t=await ci(),r=e?.config?.plugins?.CapacitorUpdater?.version||t?.version,i=e?.config?.appName||"";C.info(` App Name: ${i}`);let n=e?.config?.appId||"";C.info(` App ID: ${n}`),C.info(` App Version: ${r}`);let s=e?.config?.webDir||"";C.info(` Web Dir: ${s}`),C.info(` OS: ${(0,yy.platform)()} ${(0,yy.version)()}`),C.info(` Node: ${Bf.version}`),C.info(" Installed Dependencies:");let a=await EJe();Object.keys(a).length===0&&(C.warning("\x1B[31m%s\x1B[0m \u{1F6A8} No dependencies found"),(0,Bf.exit)(1));for(let l in a)if(Object.prototype.hasOwnProperty.call(a,l)){let c=a[l];C.info(` ${l}: ${c}`)}let o=Ue();o.start("Running: Loading latest dependencies");let u=await DJe(a);o.stop("Latest Dependencies:");for(let l in u)if(Object.prototype.hasOwnProperty.call(u,l)){let c=u[l];C.info(` ${l}: ${c}`)}JSON.stringify(a)!==JSON.stringify(u)&&(C.warn("\x1B[31m\u{1F6A8} Some dependencies are not up to date\x1B[0m"),(0,Bf.exit)(1)),C.success("\x1B[32m\u2705 All dependencies are up to date\x1B[0m"),(0,Bf.exit)()}var wa=require("node:fs");async function xJe(e,t=!0){t&&J("Save keys \u{1F511}");let r=await se(),i=e.key||Pi,n=e.keyData||"";if(!(0,wa.existsSync)(i)&&!n)if(t)C.error(`Cannot find public key ${i} or as keyData option or in ${r.path}`),B.error("");else return!1;else(0,wa.existsSync)(i)&&(n=(0,wa.readFileSync)(i).toString());return r?.config&&(r.config.plugins||(r.config.plugins={extConfig:{},CapacitorUpdater:{}}),r.config.plugins.CapacitorUpdater||(r.config.plugins.CapacitorUpdater={}),r.config.plugins.CapacitorUpdater.privateKey=n,await aa(r)),C&&(C.success(`private key saved into ${r.path} file in local directory`),C.success("your app will decode the zip archive with this key")),!0}async function whe(e){J("Save keys \u{1F511}"),await Oe(),await xJe(e)}async function CJe(e,t=!0){t&&J("Create keys \u{1F511}");let{publicKey:r,privateKey:i}=K9();if((0,wa.existsSync)(tn)&&!e.force)if(C.error("Public Key already exists, use --force to overwrite"),t)B.error("");else return!1;if((0,wa.writeFileSync)(tn,r),(0,wa.existsSync)(Pi)&&!e.force)if(C.error("Private Key already exists, use --force to overwrite"),t)B.error("");else return!1;(0,wa.writeFileSync)(Pi,i);let n=i.replace(/\\n/g,"\\n"),s=await G8({privateKey:n});return t&&(C.success("Your RSA key has been generated"),C.success(`Public key saved in ${tn}`),C.success("This key will be use to encrypt your bundle before sending it to Capgo"),C.success("Keep it safe"),C.success("Than make it unreadable by Capgo and unmodifiable by anyone"),C.success(`Private key saved in ${s.path}`),C.success("Your app will be the only one having it"),C.success("Only your users can decrypt your update"),C.success("Only you can send them an update"),Q("Done \u2705")),!0}async function bhe(e){await Oe(),await CJe(e)}var Dhe=require("node:process");async function Ehe(e,t,r){J("Delete bundle"),r.apikey=r.apikey||xe();let i=await se();t=t||i?.config?.appId,r.apikey||(C.error("Missing API key, you need to provide a API key to upload your bundle"),B.error("")),t||(C.error("Missing argument, you need to provide a appId, or be in a capacitor project"),B.error(""));let n=await we(r.apikey);await be(n,r.apikey,["write","all"]),await Xe(n,r.apikey,t,3),r.apikey||(C.error("Missing API key, you need to provide an API key to delete your app"),B.error("")),e||(C.error("Missing argument, you need to provide a bundleId, or be in a capacitor project"),B.error("")),t||(C.error("Missing argument, you need to provide a appId, or be in a capacitor project"),B.error("")),C.info(`Deleting bundle ${t}@${e} from Capgo`),C.info("Keep in mind that you will not be able to reuse this bundle version, it's gone forever"),await hy(n,t,e),C.success(`Bundle ${t}@${e} deleted in Capgo`),Q("Done"),(0,Dhe.exit)()}var Che=require("node:process");var xhe=["major","minor","metadata","patch","none"];async function She(e,t,r){J("Set channel"),r.apikey=r.apikey||xe();let i=await se();t=t||i?.config?.appId;let n=qt();r.apikey||(C.error("Missing API key, you need to provide a API key to upload your bundle"),B.error("")),t||(C.error("Missing argument, you need to provide a appId, or be in a capacitor project"),B.error(""));let s=await we(r.apikey),a=await be(s,r.apikey,["write","all"]);await Xe(s,r.apikey,t,4);let o=await Pn(s,t),{bundle:u,state:l,downgrade:c,latest:p,upgrade:d,ios:f,android:h,selfAssign:m,disableAutoUpdate:v,dev:y,emulator:E}=r;e||(C.error("Missing argument, you need to provide a channel"),B.error("")),p&&u&&(C.error("Cannot set latest and bundle at the same time"),B.error("")),u==null&&l==null&&p==null&&c==null&&d==null&&f==null&&h==null&&m==null&&y==null&&E==null&&v==null&&(C.error("Missing argument, you need to provide a option to set"),B.error(""));try{await rf(s,o,r.apikey,t);let b={created_by:a,app_id:t,name:e,owner_org:o,version:void 0},_=await ci(),w=p?i?.config?.plugins?.CapacitorUpdater?.version||_?.version:u;if(w!=null){let{data:T,error:A}=await s.from("app_versions").select().eq("app_id",t).eq("name",w).eq("user_id",a).eq("deleted",!1).single();(A||!T)&&(C.error(`Cannot find version ${w}`),B.error("")),C.info(`Set ${t} channel: ${e} to @${w}`),b.version=T.id}if(l!=null&&((l==="public"||l==="private")&&C.info(`Set ${t} channel: ${e} to public or private is deprecated, use default or normal instead`),C.info(`Set ${t} channel: ${e} to ${l==="public"||l==="default"?"default":"normal"}`),b.public=l==="public"||l==="default"),c!=null&&(C.info(`Set ${t} channel: ${e} to ${c?"allow":"disallow"} downgrade`),b.disable_auto_update_under_native=!c),f!=null&&(C.info(`Set ${t} channel: ${e} to ${f?"allow":"disallow"} ios update`),b.ios=!!f),h!=null&&(C.info(`Set ${t} channel: ${e} to ${h?"allow":"disallow"} android update`),b.android=!!h),m!=null&&(C.info(`Set ${t} channel: ${e} to ${m?"allow":"disallow"} self assign to this channel`),b.allow_device_self_set=!!m),v!=null){let T=v.toLocaleLowerCase();xhe.includes(T)||(C.error(`Channel strategy ${T} is not known. The possible values are: ${xhe.join(", ")}.`),B.error("")),T==="metadata"&&(T="version_number"),b.disable_auto_update=T,C.info(`Set ${t} channel: ${e} to ${T} disable update strategy to this channel`)}try{let{error:T}=await K8(s,b);T&&(C.error('Cannot set channel the upload key is not allowed to do that, use the "all" for this.'),B.error(""))}catch{C.error('Cannot set channel the upload key is not allowed to do that, use the "all" for this.'),B.error("")}await n.track({channel:"channel",event:"Set channel",icon:"\u2705",user_id:o,tags:{"app-id":t},notify:!1}).catch()}catch(b){C.error(`Unknow error ${ie(b)}`),B.error("")}Q("Done \u2705"),(0,Che.exit)()}var Ahe=require("node:process");async function The(e,t,r){let{quiet:i}=r;i||J("List current bundle"),r.apikey=r.apikey||xe(i);let n=await se();t=t||n?.config?.appId,r.apikey||(C.error("Missing API key, you need to provide a API key to upload your bundle"),B.error("")),t||(C.error("Missing argument, you need to provide a appId, or be in a capacitor project"),B.error(""));let s=await we(r.apikey),a=await be(s,r.apikey,["write","all","read"]);await Xe(s,r.apikey,t,1),e||(C.error("Please provide a channel to get the bundle from."),B.error(""));let{data:o,error:u}=await s.from("channels").select("version ( name )").eq("name",e).eq("app_id",t).limit(1);(u||o.length===0)&&(C.error(`Error retrieving channel ${e} for app ${t}. Perhaps the channel does not exists?`),B.error(""));let{version:l}=o[0];l||(C.error(`Error retrieving channel ${e} for app ${t}. Perhaps the channel does not exists?`),B.error("")),i?C.info(l.name):C.info(`Current bundle for channel ${e} is ${l.name}`),(0,Ahe.exit)()}var dF=require("node:process");var Ohe=fe(Jm());function SJe(e){e.length||(C.error("No apps found"),(0,dF.exit)(1));let t=new Ohe.Table({title:"Apps",charLength:{"\u274C":2,"\u2705":2}});e.reverse().forEach(r=>{t.addRow({Name:r.name,id:r.app_id,Created:af(r.created_at)})}),C.success(t.render())}async function AJe(e){let{data:t,error:r}=await e.from("apps").select().order("created_at",{ascending:!1});return r&&(C.error("Apps not found"),B.error("")),t}async function Fhe(e){J("List apps in Capgo"),await Oe(),e.apikey=e.apikey||xe();let t=await we(e.apikey);await be(t,e.apikey,["write","all","read","upload"]),C.info("Getting active bundle in Capgo");let r=await AJe(t);C.info(`Active app in Capgo: ${r?.length}`),SJe(r),Q("Done \u2705"),(0,dF.exit)()}var fF=require("node:process");var vy=fe(khe());async function TJe(e,t,r){for await(let i of e)C.warn(`Removing ${i.name} created on ${af(i.created_at)}`),await hy(t,r,i.name)}function OJe(e,t,r){let i=[];return e?.forEach(n=>{vy.default.gte(n.name,t)&&vy.default.lt(n.name,`${r}`)&&i.push(n)}),i}async function Rhe(e,t){J("Cleanup versions in Capgo"),await Oe(),t.apikey=t.apikey||xe();let{bundle:r,keep:i=4}=t,n=t.force||!1,s=await se();e=e||s?.config?.appId,t.apikey||(C.error("Missing API key, you need to provide an API key to delete your app"),B.error("")),e||(C.error("Missing argument, you need to provide a appid, or be in a capacitor project"),B.error(""));let a=await we(t.apikey);await be(a,t.apikey,["write","all"]),await Xe(a,t.apikey,e,3),C.info("Querying all available versions in Capgo");let o=await gy(a,e),u=await ahe(a,e);if(C.info(`Total active versions in Capgo: ${o?.length}`),o?.length===0){C.error("No versions found, aborting cleanup");return}if(r){let p=`${vy.default.inc(r,"major")}`;C.info(`Querying available versions in Capgo between ${r} and ${p}`),o=OJe(o,r,p),C.info(`Active versions in Capgo between ${r} and ${p}: ${o?.length}`)}let l=[],c=0;if(o.forEach(p=>{let d=u.find(f=>f===p.id);c<i||d?(d?p.keep="\u2705 (Linked to channel)":p.keep="\u2705",c+=1):(p.keep="\u274C",l.push(p))}),l.length===0){C.warn("Nothing to be removed, aborting removal...");return}if(my(o),!n){let p=await Qe({message:"Do you want to continue removing the versions specified?"});(yi(p)||!p)&&(C.warn("Not confirmed, aborting removal..."),(0,fF.exit)())}C.success("You have confirmed removal, removing versions now"),await TJe(l,a,e),Q("Done \u2705"),(0,fF.exit)()}var Phe=require("node:process");async function Ihe(e,t,r){J("Delete channel"),r.apikey=r.apikey||xe();let i=await se();t=t||i?.config?.appId;let n=qt();r.apikey||(C.error("Missing API key, you need to provide a API key to upload your bundle"),B.error("")),t||(C.error("Missing argument, you need to provide a appId, or be in a capacitor project"),B.error(""));let s=await we(r.apikey),a=await be(s,r.apikey,["write","all"]);await Xe(s,r.apikey,t,4),C.info(`Deleting channel ${t}#${e} from Capgo`);try{let o=await D1e(s,e,t,a);o.error&&(C.error(`Cannot delete Channel \u{1F640} ${ie(o.error)}`),B.error(""));let u=await Pn(s,t);C.success("Channel deleted"),await n.track({channel:"channel",event:"Delete channel",icon:"\u2705",user_id:u,tags:{"user-id":a,"app-id":t,channel:e},notify:!1}).catch()}catch{C.error("Cannot delete Channel \u{1F640}")}Q("Done \u2705"),(0,Phe.exit)()}var Lhe=require("node:process");async function Bhe(e,t){J("List channels"),t.apikey=t.apikey||xe();let r=await se();e=e||r?.config?.appId;let i=qt();t.apikey||C.error("Missing API key, you need to provide a API key to upload your bundle"),e||(C.error("Missing argument, you need to provide a appId, or be in a capacitor project"),B.error(""));let n=await we(t.apikey),s=await be(n,t.apikey,["write","all","read","upload"]);await Xe(n,t.apikey,e,1),C.info("Querying available channels in Capgo");let a=await x1e(n,e);C.info(`Active channels in Capgo: ${a?.length}`),E1e(a),await i.track({channel:"channel",event:"List channel",icon:"\u2705",user_id:s,tags:{"app-id":e},notify:!1}).catch(),Q("Done \u2705"),(0,Lhe.exit)()}var jhe=require("node:crypto"),jf=require("node:fs"),qhe=require("node:process");async function $he(e,t){J("Set app"),t.apikey=t.apikey||xe();let r=await se();e=e||r?.config?.appId,t.apikey||(C.error("Missing API key, you need to provide a API key to upload your bundle"),B.error("")),e||(C.error("Missing argument, you need to provide a appId, or be in a capacitor project"),B.error(""));let i=await we(t.apikey),s=(await nf(i,["admin","super_admin"])).gid,a=await be(i,t.apikey,["write","all"]);await Xe(i,t.apikey,e,4);let{name:o,icon:u,retention:l}=t;l&&Number.isNaN(Number(l))?(C.error("retention value must be a number"),B.error("")):l&&l<0&&(C.error("retention value cannot be less than 0"),B.error(""));let c,p,d=`icon_${(0,jhe.randomUUID)()}`,f="https://xvwzpoazmxkqosrdewyv.supabase.co/storage/v1/object/public/images/capgo.png";if(u&&(0,jf.existsSync)(u)?(c=(0,jf.readFileSync)(u),p=Pf.getType(u)||"image/png",C.warn(`Found app icon ${u}`)):(0,jf.existsSync)(qn)?(c=(0,jf.readFileSync)(qn),p=Pf.getType(qn)||"image/png",C.warn(`Found app icon ${qn}`)):C.warn(`Cannot find app icon in any of the following locations: ${u}, ${qn}`),c&&p){let{error:m}=await i.storage.from(`images/org/${s}/${e}`).upload(d,c,{contentType:p});m&&(C.error(`Could not set app ${ie(m)}`),B.error(""));let{data:v}=await i.storage.from(`images/org/${s}/${e}`).getPublicUrl(d);f=v?.publicUrl||f}let{error:h}=await i.from("apps").update({icon_url:f,name:o,retention:l?l*24*60*60:void 0}).eq("app_id",e).eq("user_id",a);h&&(C.error(`Could not set app ${ie(h)}`),B.error("")),Q("Done \u2705"),(0,qhe.exit)()}var Mhe=require("node:process");async function Uhe(e,t){J("Deleting"),t.apikey=t.apikey||xe();let r=await se();e=e||r?.config?.appId;let i=qt();t.apikey||(C.error("Missing API key, you need to provide a API key to upload your bundle"),B.error("")),e||(C.error("Missing argument, you need to provide a appId, or be in a capacitor project"),B.error(""));let n=await we(t.apikey),s=await be(n,t.apikey,["write","all"]);await Xe(n,t.apikey,e,5);let{data:a,error:o}=await n.from("apps").select("owner_org ( created_by, id )").eq("app_id",e).single(),u=a;if(!o&&(u?.owner_org.created_by??"")!==s){C.warn("Deleting the app is not recomended for users that are not the organization owner"),C.warn("You are invited as a super_admin but your are not the owner"),C.warn("It's strongly recomended that you do not continue!");let f=await jc({message:"Do you want to continue?",options:[{label:"Yes",value:"yes"},{label:"No",value:"no"}]});(yi(f)||f==="no")&&(C.error("Canceled deleting the app, exiting"),B.error(""))}else o&&C.warn(`Cannot get the app owner ${ie(o)}`);let{error:l}=await n.storage.from("images").remove([`org/${u?.owner_org.id}/${e}/icon`]);l&&(console.error(l,`images/org/${u?.owner_org.id}/${e}`),C.error("Could not delete app logo"));let{error:c}=await n.storage.from(`apps/${e}/${s}`).remove(["versions"]);c&&C.error("Could not delete app version");let{error:p}=await n.from("apps").delete().eq("app_id",e);p&&(C.error("Could not delete app"),B.error(""));let d=await Pn(n,e);await i.track({channel:"app",event:"App Deleted",icon:"\u{1F5D1}\uFE0F",user_id:d,tags:{"app-id":e},notify:!1}).catch(),C.success("App deleted in Capgo"),Q("Done \u2705"),(0,Mhe.exit)()}var Vhe=fe(Jm());async function Hhe(e,t){J("Check compatibility"),t.apikey=t.apikey||xe();let r=await se();e=e||r?.config?.appId;let{channel:i}=t;i||(C.error("Missing argument, you need to provide a channel"),B.error("")),t.apikey||(C.error("Missing API key, you need to provide a API key to upload your bundle"),B.error("")),e||(C.error("Missing argument, you need to provide a appId, or be in a capacitor project"),B.error(""));let n=await we(t.apikey);await be(n,t.apikey,["write","all","read","upload"]),await Xe(n,t.apikey,e,1);let{finalCompatibility:s}=await Y8(n,e,i),a=new Vhe.Table({title:"Compatibility",charLength:{"\u274C":2,"\u2705":2}}),o=t.text?"Yes":"\u2705",u=t.text?"No":"\u274C";s.forEach(l=>{let{name:c,localVersion:p,remoteVersion:d}=l;a.addRow({Package:c,"Local version":p??"None","Remote version":d??"None",Compatible:d===p?o:u})}),C.success(a.render())}B.name(Po.name).description("Manage packages and bundle versions in Capgo Cloud").version(Po.version);B.command("login [apikey]").alias("l").description("Save apikey to your machine or folder").action(z1e).option("--local","Only save in local folder");B.command("doctor").description("Get info about your Capgo app install").action(_he);B.command("init [apikey] [appId]").description("Init a new app").action(the).option("-n, --name <name>","app name").option("-i, --icon <icon>","app icon path");var qf=B.command("app").description("Manage app");qf.command("add [appId]").alias("a").description("Add a new app in Capgo Cloud").action(J1e).option("-n, --name <name>","app name").option("-i, --icon <icon>","app icon path").option("-a, --apikey <apikey>","apikey to link to your account");qf.command("delete [appId]").description("Delete an app in Capgo Cloud").action(Uhe).option("-a, --apikey <apikey>","apikey to link to your account");qf.command("list").alias("l").description("list apps in Capgo Cloud").action(Fhe).option("-a, --apikey <apikey>","apikey to link to your account");qf.command("debug [appId]").description("Listen for live updates event in Capgo Cloud to debug your app").option("-a, --apikey <apikey>","apikey to link to your account").option("-d, --device <device>","the specific device to debug").action(e1e);qf.command("setting [path]").description("Modifies capacitor config programmatically").option("--bool <bool>","A value for the setting to modify as a boolean").option("--string <string>","A value for the setting to modify as a string").action(Eoe);qf.command("set [appId]").alias("s").description("Set an app in Capgo Cloud").action($he).option("-n, --name <name>","app name").option("-i, --icon <icon>","app icon path").option("-a, --apikey <apikey>","apikey to link to your account").option("-r, --retention <retention>","retention period of app bundle in days");var ba=B.command("bundle").description("Manage bundle");ba.command("upload [appId]").alias("u").description("Upload a new bundle in Capgo Cloud").action(U1e).option("-a, --apikey <apikey>","apikey to link to your account").option("-p, --path <path>","path of the folder to upload").option("-c, --channel <channel>","channel to link to").option("-e, --external <url>","link to external url intead of upload to Capgo Cloud").option("--iv-session-key <key>","Set the iv and session key for bundle url external").option("--s3-region <region>","Region for your S3 bucket").option("--s3-apikey <apikey>","Apikey for your S3 endpoint").option("--s3-apisecret <apisecret>","Api secret for your S3 endpoint").option("--s3-endoint <s3Endpoint>","Url of S3 endpoint").option("--s3-bucket-name <bucketName>","Name for your AWS S3 bucket").option("--s3-port <port>","Port for your S3 endpoint").option("--no-s3-ssl","Disable SSL for S3 upload").option("--key <key>","custom path for public signing key").option("--key-data <keyData>","public signing key").option("--key-v2 <key>","custom path for private signing key").option("--key-data-v2 <keyData>","private signing key").option("--bundle-url","prints bundle url into stdout").option("--no-key","ignore signing key and send clear update").option("--no-code-check","Ignore checking if notifyAppReady() is called in soure code and index present in root folder").option("--display-iv-session","Show in the console the iv and session key used to encrypt the update").option("-b, --bundle <bundle>","bundle version number of the bundle to upload").option("--min-update-version <minUpdateVersion>","Minimal version required to update to this version. Used only if the disable auto update is set to metadata in channel").option("--auto-min-update-version","Set the min update version based on native packages").option("--ignore-metadata-check","Ignores the metadata (node_modules) check when uploading").option("--ignore-checksum-check","Ignores the checksum check when uploading").option("--timeout <timeout>","Timeout for the upload process in seconds").option("--multipart","Uses multipart protocol to upload data to S3").option("--ignore-partial","Does not upload partial files to S3").option("--encrypted-checksum <encryptedChecksum>","An encrypted checksum (signature). Used only when uploading an external bundle.");ba.command("compatibility [appId]").action(Hhe).option("-a, --apikey <apikey>","apikey to link to your account").option("-c, --channel <channel>","channel to check the compatibility with").option("--text","output text instead of emojis");ba.command("delete [bundleId] [appId]").alias("d").description("Delete a bundle in Capgo Cloud").action(Ehe).option("-a, --apikey <apikey>","apikey to link to your account");ba.command("list [appId]").alias("l").description("List bundle in Capgo Cloud").action(uhe).option("-a, --apikey <apikey>","apikey to link to your account");ba.command("cleanup [appId]").alias("c").action(Rhe).description("Cleanup bundle in Capgo Cloud").option("-b, --bundle <bundle>","bundle version number of the app to delete").option("-a, --apikey <apikey>","apikey to link to your account").option("-k, --keep <keep>","number of version to keep").option("-f, --force","force removal");ba.command("decrypt [zipPath] [sessionKey]").description("Decrypt a signed zip bundle").action(che).option("--key <key>","custom path for private signing key").option("--key-data <keyData>","private signing key");ba.command("encrypt [zipPath]").description("Encrypt a zip bundle").action(mhe).option("--key <key>","custom path for private signing key").option("--key-data <keyData>","private signing key");ba.command("encryptV2 [zipPath] [checksum]").description("Encrypt a zip bundle using the new encryption method").action(yhe).option("--key <key>","custom path for private signing key").option("--key-data <keyData>","private signing key").option("-j, --json","output in JSON");ba.command("decryptV2 [zipPath] [checksum]").description("Decrypt a zip bundle using the new encryption method").action(fhe).option("--key <key>","custom path for private signing key").option("--key-data <keyData>","private signing key").option("--checksum <checksum>","checksum of the bundle, to verify the integrity of the bundle");ba.command("zip [appId]").description("Zip a bundle").action(Ofe).option("-p, --path <path>","path of the folder to upload").option("-b, --bundle <bundle>","bundle version number to name the zip file").option("-n, --name <name>","name of the zip file").option("-j, --json","output in JSON").option("--no-code-check","Ignore checking if notifyAppReady() is called in soure code and index present in root folder").option("--key-v2","use encryption v2");var a2=B.command("channel").description("Manage channel");a2.command("add [channelId] [appId]").alias("a").description("Create channel").action(S1e).option("-d, --default","set the channel as default").option("-a, --apikey <apikey>","apikey to link to your account");a2.command("delete [channelId] [appId]").alias("d").description("Delete channel").action(Ihe).option("-a, --apikey <apikey>","apikey to link to your account");a2.command("list [appId]").alias("l").description("List channel").action(Bhe).option("-a, --apikey <apikey>","apikey to link to your account");a2.command("currentBundle [channel] [appId]").description("Get current bundle for specific channel in Capgo Cloud").action(The).option("-c, --channel <channel>","channel to get the current bundle from").option("-a, --apikey <apikey>","apikey to link to your account").option("--quiet","only print the bundle version");a2.command("set [channelId] [appId]").alias("s").description("Set channel").action(She).option("-a, --apikey <apikey>","apikey to link to your account").option("-b, --bundle <bundle>","bundle version number of the file to set").option("-s, --state <state>","set the state of the channel, default or normal").option("--latest","get the latest version key in the package.json to set it to the channel").option("--downgrade","Allow to downgrade to version under native one").option("--no-downgrade","Disable downgrade to version under native one").option("--upgrade","Allow to upgrade to version above native one").option("--no-upgrade","Disable upgrade to version above native one").option("--ios","Allow sending update to ios devices").option("--no-ios","Disable sending update to ios devices").option("--android","Allow sending update to android devices").option("--no-android","Disable sending update to android devices").option("--self-assign","Allow to device to self assign to this channel").option("--no-self-assign","Disable devices to self assign to this channel").option("--disable-auto-update <disableAutoUpdate>","Disable auto update strategy for this channel.The possible options are: major, minor, metadata, patch, none").option("--dev","Allow sending update to development devices").option("--no-dev","Disable sending update to development devices").option("--emulator","Allow sending update to emulator devices").option("--no-emulator","Disable sending update to emulator devices");var zhe=B.command("key_old").description("Manage old encryption key");zhe.command("save").description("Save base64 encryption key in capacitor config, usefull for CI").action(whe).option("-f, --force","force generate a new one").option("--key","key path to save in capacitor config").option("--key-data","key data to save in capacitor config");zhe.command("create").description("Create a new encryption key").action(bhe).option("-f, --force","force generate a new one");var hF=B.command("key").description("Manage encryption key");hF.command("save").description("Save base64 encryption key in capacitor config, usefull for CI").action(Xfe).option("-f, --force","force generate a new one").option("--key","key path to save in capacitor config").option("--key-data","key data to save in capacitor config");hF.command("create").description("Create a new encryption key").action(Jfe).option("-f, --force","force generate a new one");hF.command("delete_old").description("Delete the old encryption key").action(Zfe);B.command("upload [appId]").alias("u").description("(Deprecated) Upload a new bundle to Capgo Cloud").action(V1e).option("-a, --apikey <apikey>","apikey to link to your account").option("-p, --path <path>","path of the folder to upload").option("-c, --channel <channel>","channel to link to").option("-e, --external <url>","link to external url intead of upload to Capgo Cloud").option("--old-encryption","use old encryption").option("--key <key>","custom path for public signing key").option("--key-data <keyData>","public signing key").option("--bundle-url","prints bundle url into stdout").option("--no-key","ignore signing key and send clear update").option("--display-iv-session","Show in the console the iv and session key used to encrypt the update").option("-b, --bundle <bundle>","bundle version number of the file to upload").option("--min-update-version <minUpdateVersion>","Minimal version required to update to this version. Used only if the disable auto update is set to metadata in channel");var FJe=B.command("account").description("Manage account");FJe.command("id").description("Get your account ID").action(xoe).option("-a, --apikey <apikey>","apikey to link to your account");B.parseAsync();
411
411
  /*! Bundled license information:
412
412
 
413
413
  is-extglob/index.js:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@capgo/cli",
3
- "version": "4.18.0",
3
+ "version": "4.18.2",
4
4
  "description": "A CLI to upload to capgo servers",
5
5
  "author": "github.com/riderx",
6
6
  "license": "Apache 2.0",