bwsr 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +200 -0
- package/dist/bwsr.js +200 -0
- package/package.json +31 -8
- package/bin/bwsr.js +0 -15
- package/scripts/postinstall.js +0 -63
package/README.md
ADDED
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
# bwsr
|
|
2
|
+
|
|
3
|
+
Fast CLI for managing browser daemons via Playwright CDP.
|
|
4
|
+
|
|
5
|
+
## Inspiration
|
|
6
|
+
|
|
7
|
+
[agent-browser](https://github.com/anthropics/agent-browser) is a powerful tool for AI agents to interact with browsers via CDP. However, it expects a browser already running with CDP enabled.
|
|
8
|
+
|
|
9
|
+
**bwsr** fills that gap - it manages browser lifecycles so you can:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
bwsr start # Start a browser daemon
|
|
13
|
+
agent-browser connect $(bwsr cdp) && agent-browser snapshot
|
|
14
|
+
bwsr stop --all # Clean up when done
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Installation
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npm install bwsr playwright-core
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Then install a browser:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npx playwright install chromium
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Verify your setup:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
bwsr doctor
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Direct Download
|
|
36
|
+
|
|
37
|
+
Download binaries from [GitHub Releases](https://github.com/lagz0ne/pw-run/releases).
|
|
38
|
+
|
|
39
|
+
**Note:** You still need `playwright-core` installed separately:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
npm install playwright-core
|
|
43
|
+
npx playwright install chromium
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## Requirements
|
|
47
|
+
|
|
48
|
+
- **playwright-core** >= 1.40.0 (peer dependency)
|
|
49
|
+
- **Browser** - At least one of: Chromium, Firefox, or WebKit
|
|
50
|
+
- **Platform** - Linux or macOS (no Windows support)
|
|
51
|
+
|
|
52
|
+
## Quick Start
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
# Start a browser (returns session name)
|
|
56
|
+
bwsr start
|
|
57
|
+
# → happy-fox
|
|
58
|
+
|
|
59
|
+
# Get CDP port for agent-browser
|
|
60
|
+
bwsr cdp
|
|
61
|
+
# → 42711
|
|
62
|
+
|
|
63
|
+
# Use with agent-browser
|
|
64
|
+
agent-browser connect $(bwsr cdp)
|
|
65
|
+
agent-browser open https://example.com
|
|
66
|
+
agent-browser snapshot
|
|
67
|
+
|
|
68
|
+
# Stop all browsers
|
|
69
|
+
bwsr stop --all
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Commands
|
|
73
|
+
|
|
74
|
+
### `bwsr start`
|
|
75
|
+
|
|
76
|
+
Start a new browser instance.
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
bwsr start # Use default profile
|
|
80
|
+
bwsr start --profile my-profile # Use specific profile
|
|
81
|
+
bwsr start --session my-session # Custom session name
|
|
82
|
+
bwsr start --verbose # Show detailed output
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### `bwsr stop`
|
|
86
|
+
|
|
87
|
+
Stop browser instances.
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
bwsr stop happy-fox # Stop specific session
|
|
91
|
+
bwsr stop --all # Stop all sessions
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### `bwsr list`
|
|
95
|
+
|
|
96
|
+
List running browser instances.
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
bwsr list
|
|
100
|
+
# happy-fox default 42711 healthy
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### `bwsr cdp`
|
|
104
|
+
|
|
105
|
+
Get CDP port for connecting tools like agent-browser.
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
bwsr cdp # First available session
|
|
109
|
+
bwsr cdp happy-fox # Specific session
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### `bwsr profile`
|
|
113
|
+
|
|
114
|
+
Manage browser profiles.
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
bwsr profile create work
|
|
118
|
+
bwsr profile set work --browser chromium --headless
|
|
119
|
+
bwsr profile set work --viewport 1920x1080
|
|
120
|
+
bwsr profile list
|
|
121
|
+
bwsr profile show work
|
|
122
|
+
bwsr profile remove work
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
Profile options:
|
|
126
|
+
- `--browser <chromium|firefox|webkit>`
|
|
127
|
+
- `--headless` / `--no-headless`
|
|
128
|
+
- `--viewport <width>x<height>`
|
|
129
|
+
- `--locale <locale>`
|
|
130
|
+
- `--timezone <tz>`
|
|
131
|
+
- `--color-scheme <light|dark>`
|
|
132
|
+
- `--user-agent <string>`
|
|
133
|
+
|
|
134
|
+
### `bwsr doctor`
|
|
135
|
+
|
|
136
|
+
Check runtime requirements, browser availability, and system configuration.
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
bwsr doctor
|
|
140
|
+
|
|
141
|
+
# bwsr doctor
|
|
142
|
+
# ==================================================
|
|
143
|
+
#
|
|
144
|
+
# [Runtime]
|
|
145
|
+
# ✓ playwright-core: 1.57.0
|
|
146
|
+
#
|
|
147
|
+
# [Configuration]
|
|
148
|
+
# Config dir: ~/.bwsr
|
|
149
|
+
# Profiles: ~/.bwsr/profiles
|
|
150
|
+
# Sockets: ~/.bwsr/sockets
|
|
151
|
+
#
|
|
152
|
+
# [Browsers]
|
|
153
|
+
# ✓ chromium: ~/.cache/ms-playwright/chromium-1194/chrome-linux/chrome
|
|
154
|
+
# - firefox: not found
|
|
155
|
+
# - webkit: not found
|
|
156
|
+
#
|
|
157
|
+
# [Status]
|
|
158
|
+
# Running instances: 0
|
|
159
|
+
#
|
|
160
|
+
# ==================================================
|
|
161
|
+
# ✓ All checks passed. Ready to use bwsr.
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
If something is missing, doctor will suggest installation commands.
|
|
165
|
+
|
|
166
|
+
## Architecture
|
|
167
|
+
|
|
168
|
+
```
|
|
169
|
+
┌─────────┐ ┌──────────┐ ┌─────────┐ ┌─────────┐
|
|
170
|
+
│ CLI │────▶│ Watchdog │────▶│ Wrapper │────▶│ Browser │
|
|
171
|
+
└─────────┘ └──────────┘ └─────────┘ └─────────┘
|
|
172
|
+
│ │ │
|
|
173
|
+
│ IPC │ IPC │ CDP
|
|
174
|
+
│ (Unix │ (Unix │ (HTTP)
|
|
175
|
+
│ Socket) │ Socket) │
|
|
176
|
+
▼ ▼ ▼
|
|
177
|
+
Auto-starts Manages Playwright
|
|
178
|
+
on first use lifecycle instance
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
- **CLI**: User-facing commands
|
|
182
|
+
- **Watchdog**: Central daemon that manages all browser instances
|
|
183
|
+
- **Wrapper**: Per-browser process with IPC server
|
|
184
|
+
- **Browser**: Actual Chromium/Firefox/WebKit via Playwright
|
|
185
|
+
|
|
186
|
+
The watchdog auto-starts when you run `bwsr start` and exits when no browsers remain.
|
|
187
|
+
|
|
188
|
+
## Platform Support
|
|
189
|
+
|
|
190
|
+
| Platform | Status |
|
|
191
|
+
|----------|--------|
|
|
192
|
+
| Linux x64 | ✅ |
|
|
193
|
+
| Linux ARM64 | ✅ |
|
|
194
|
+
| macOS x64 | ✅ |
|
|
195
|
+
| macOS ARM64 | ✅ |
|
|
196
|
+
| Windows | ❌ (no Unix sockets) |
|
|
197
|
+
|
|
198
|
+
## License
|
|
199
|
+
|
|
200
|
+
MIT
|
package/dist/bwsr.js
ADDED
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import{createRequire as i2}from"node:module";var d2=Object.create;var{getPrototypeOf:l2,defineProperty:mq,getOwnPropertyNames:a2}=Object;var c2=Object.prototype.hasOwnProperty;var A0=(q,$,U)=>{U=q!=null?d2(l2(q)):{};let H=$||!q||!q.__esModule?mq(U,"default",{value:q,enumerable:!0}):U;for(let z of a2(q))if(!c2.call(H,z))mq(H,z,{get:()=>q[z],enumerable:!0});return H};var O=(q,$)=>()=>($||q(($={exports:{}}).exports,$),$.exports);var pq=(q,$)=>{for(var U in $)mq(q,U,{get:$[U],enumerable:!0,configurable:!0,set:(H)=>$[U]=()=>H})};var dq=(q,$)=>()=>(q&&($=q(q=0)),$);var e=i2(import.meta.url);var Q1={};pq(Q1,{getPaths:()=>N,ensureDirectories:()=>M0});import{homedir as s2}from"os";import{join as B0}from"path";import{mkdir as Z1}from"fs/promises";function N(){let q=B0(s2(),".bwsr"),$=B0(q,"profiles"),U=B0(q,"sockets");return{root:q,profiles:$,sockets:U,watchdogSocket:B0(U,"watchdog.sock"),profile:(H)=>B0($,`${H}.yaml`),sessionSocket:(H)=>B0(U,`${H}.sock`)}}async function M0(){let q=N();await Z1(q.profiles,{recursive:!0}),await Z1(q.sockets,{recursive:!0})}var Y0=()=>{};var M=O((U9)=>{var lq=Symbol.for("yaml.alias"),J1=Symbol.for("yaml.document"),o0=Symbol.for("yaml.map"),B1=Symbol.for("yaml.pair"),aq=Symbol.for("yaml.scalar"),t0=Symbol.for("yaml.seq"),v=Symbol.for("yaml.node.type"),r2=(q)=>!!q&&typeof q==="object"&&q[v]===lq,n2=(q)=>!!q&&typeof q==="object"&&q[v]===J1,o2=(q)=>!!q&&typeof q==="object"&&q[v]===o0,t2=(q)=>!!q&&typeof q==="object"&&q[v]===B1,Y1=(q)=>!!q&&typeof q==="object"&&q[v]===aq,e2=(q)=>!!q&&typeof q==="object"&&q[v]===t0;function T1(q){if(q&&typeof q==="object")switch(q[v]){case o0:case t0:return!0}return!1}function q9(q){if(q&&typeof q==="object")switch(q[v]){case lq:case o0:case aq:case t0:return!0}return!1}var $9=(q)=>(Y1(q)||T1(q))&&!!q.anchor;U9.ALIAS=lq;U9.DOC=J1;U9.MAP=o0;U9.NODE_TYPE=v;U9.PAIR=B1;U9.SCALAR=aq;U9.SEQ=t0;U9.hasAnchor=$9;U9.isAlias=r2;U9.isCollection=T1;U9.isDocument=n2;U9.isMap=o2;U9.isNode=q9;U9.isPair=t2;U9.isScalar=Y1;U9.isSeq=e2});var K0=O((I9)=>{var C=M(),E=Symbol("break visit"),R1=Symbol("skip children"),h=Symbol("remove node");function e0(q,$){let U=L1($);if(C.isDocument(q)){if(T0(null,q.contents,U,Object.freeze([q]))===h)q.contents=null}else T0(null,q,U,Object.freeze([]))}e0.BREAK=E;e0.SKIP=R1;e0.REMOVE=h;function T0(q,$,U,H){let z=W1(q,$,U,H);if(C.isNode(z)||C.isPair(z))return O1(q,H,z),T0(q,z,U,H);if(typeof z!=="symbol"){if(C.isCollection($)){H=Object.freeze(H.concat($));for(let G=0;G<$.items.length;++G){let X=T0(G,$.items[G],U,H);if(typeof X==="number")G=X-1;else if(X===E)return E;else if(X===h)$.items.splice(G,1),G-=1}}else if(C.isPair($)){H=Object.freeze(H.concat($));let G=T0("key",$.key,U,H);if(G===E)return E;else if(G===h)$.key=null;let X=T0("value",$.value,U,H);if(X===E)return E;else if(X===h)$.value=null}}return z}async function qq(q,$){let U=L1($);if(C.isDocument(q)){if(await R0(null,q.contents,U,Object.freeze([q]))===h)q.contents=null}else await R0(null,q,U,Object.freeze([]))}qq.BREAK=E;qq.SKIP=R1;qq.REMOVE=h;async function R0(q,$,U,H){let z=await W1(q,$,U,H);if(C.isNode(z)||C.isPair(z))return O1(q,H,z),R0(q,z,U,H);if(typeof z!=="symbol"){if(C.isCollection($)){H=Object.freeze(H.concat($));for(let G=0;G<$.items.length;++G){let X=await R0(G,$.items[G],U,H);if(typeof X==="number")G=X-1;else if(X===E)return E;else if(X===h)$.items.splice(G,1),G-=1}}else if(C.isPair($)){H=Object.freeze(H.concat($));let G=await R0("key",$.key,U,H);if(G===E)return E;else if(G===h)$.key=null;let X=await R0("value",$.value,U,H);if(X===E)return E;else if(X===h)$.value=null}}return z}function L1(q){if(typeof q==="object"&&(q.Collection||q.Node||q.Value))return Object.assign({Alias:q.Node,Map:q.Node,Scalar:q.Node,Seq:q.Node},q.Value&&{Map:q.Value,Scalar:q.Value,Seq:q.Value},q.Collection&&{Map:q.Collection,Seq:q.Collection},q);return q}function W1(q,$,U,H){if(typeof U==="function")return U(q,$,H);if(C.isMap($))return U.Map?.(q,$,H);if(C.isSeq($))return U.Seq?.(q,$,H);if(C.isPair($))return U.Pair?.(q,$,H);if(C.isScalar($))return U.Scalar?.(q,$,H);if(C.isAlias($))return U.Alias?.(q,$,H);return}function O1(q,$,U){let H=$[$.length-1];if(C.isCollection(H))H.items[q]=U;else if(C.isPair(H))if(q==="key")H.key=U;else H.value=U;else if(C.isDocument(H))H.contents=U;else{let z=C.isAlias(H)?"alias":"scalar";throw Error(`Cannot replace node with ${z} parent`)}}I9.visit=e0;I9.visitAsync=qq});var cq=O((M9)=>{var D1=M(),w9=K0(),P9={"!":"%21",",":"%2C","[":"%5B","]":"%5D","{":"%7B","}":"%7D"},A9=(q)=>q.replace(/[!,[\]{}]/g,($)=>P9[$]);class f{constructor(q,$){this.docStart=null,this.docEnd=!1,this.yaml=Object.assign({},f.defaultYaml,q),this.tags=Object.assign({},f.defaultTags,$)}clone(){let q=new f(this.yaml,this.tags);return q.docStart=this.docStart,q}atDocument(){let q=new f(this.yaml,this.tags);switch(this.yaml.version){case"1.1":this.atNextDocument=!0;break;case"1.2":this.atNextDocument=!1,this.yaml={explicit:f.defaultYaml.explicit,version:"1.2"},this.tags=Object.assign({},f.defaultTags);break}return q}add(q,$){if(this.atNextDocument)this.yaml={explicit:f.defaultYaml.explicit,version:"1.1"},this.tags=Object.assign({},f.defaultTags),this.atNextDocument=!1;let U=q.trim().split(/[ \t]+/),H=U.shift();switch(H){case"%TAG":{if(U.length!==2){if($(0,"%TAG directive should contain exactly two parts"),U.length<2)return!1}let[z,G]=U;return this.tags[z]=G,!0}case"%YAML":{if(this.yaml.explicit=!0,U.length!==1)return $(0,"%YAML directive should contain exactly one part"),!1;let[z]=U;if(z==="1.1"||z==="1.2")return this.yaml.version=z,!0;else{let G=/^\d+\.\d+$/.test(z);return $(6,`Unsupported YAML version ${z}`,G),!1}}default:return $(0,`Unknown directive ${H}`,!0),!1}}tagName(q,$){if(q==="!")return"!";if(q[0]!=="!")return $(`Not a valid tag: ${q}`),null;if(q[1]==="<"){let G=q.slice(2,-1);if(G==="!"||G==="!!")return $(`Verbatim tags aren't resolved, so ${q} is invalid.`),null;if(q[q.length-1]!==">")$("Verbatim tags must end with a >");return G}let[,U,H]=q.match(/^(.*!)([^!]*)$/s);if(!H)$(`The ${q} tag has no suffix`);let z=this.tags[U];if(z)try{return z+decodeURIComponent(H)}catch(G){return $(String(G)),null}if(U==="!")return q;return $(`Could not resolve tag: ${q}`),null}tagString(q){for(let[$,U]of Object.entries(this.tags))if(q.startsWith(U))return $+A9(q.substring(U.length));return q[0]==="!"?q:`!<${q}>`}toString(q){let $=this.yaml.explicit?[`%YAML ${this.yaml.version||"1.2"}`]:[],U=Object.entries(this.tags),H;if(q&&U.length>0&&D1.isNode(q.contents)){let z={};w9.visit(q.contents,(G,X)=>{if(D1.isNode(X)&&X.tag)z[X.tag]=!0}),H=Object.keys(z)}else H=[];for(let[z,G]of U){if(z==="!!"&&G==="tag:yaml.org,2002:")continue;if(!q||H.some((X)=>X.startsWith(G)))$.push(`%TAG ${z} ${G}`)}return $.join(`
|
|
3
|
+
`)}}f.defaultYaml={explicit:!1,version:"1.2"};f.defaultTags={"!!":"tag:yaml.org,2002:"};M9.Directives=f});var $q=O((j9)=>{var _1=M(),N9=K0();function b9(q){if(/[\x00-\x19\s,[\]{}]/.test(q)){let U=`Anchor must not contain whitespace or control characters: ${JSON.stringify(q)}`;throw Error(U)}return!0}function I1(q){let $=new Set;return N9.visit(q,{Value(U,H){if(H.anchor)$.add(H.anchor)}}),$}function V1(q,$){for(let U=1;;++U){let H=`${q}${U}`;if(!$.has(H))return H}}function S9(q,$){let U=[],H=new Map,z=null;return{onAnchor:(G)=>{U.push(G),z??(z=I1(q));let X=V1($,z);return z.add(X),X},setAnchors:()=>{for(let G of U){let X=H.get(G);if(typeof X==="object"&&X.anchor&&(_1.isScalar(X.node)||_1.isCollection(X.node)))X.node.anchor=X.anchor;else{let Z=Error("Failed to resolve repeated object (this should not happen)");throw Z.source=G,Z}}},sourceObjects:H}}j9.anchorIsValid=b9;j9.anchorNames=I1;j9.createNodeAnchors=S9;j9.findNewAnchor=V1});var iq=O((y9)=>{function N0(q,$,U,H){if(H&&typeof H==="object")if(Array.isArray(H))for(let z=0,G=H.length;z<G;++z){let X=H[z],Z=N0(q,H,String(z),X);if(Z===void 0)delete H[z];else if(Z!==X)H[z]=Z}else if(H instanceof Map)for(let z of Array.from(H.keys())){let G=H.get(z),X=N0(q,H,z,G);if(X===void 0)H.delete(z);else if(X!==G)H.set(z,X)}else if(H instanceof Set)for(let z of Array.from(H)){let G=N0(q,H,z,z);if(G===void 0)H.delete(z);else if(G!==z)H.delete(z),H.add(G)}else for(let[z,G]of Object.entries(H)){let X=N0(q,H,z,G);if(X===void 0)delete H[z];else if(X!==G)H[z]=X}return q.call($,U,H)}y9.applyReviver=N0});var l=O((h9)=>{var x9=M();function F1(q,$,U){if(Array.isArray(q))return q.map((H,z)=>F1(H,String(z),U));if(q&&typeof q.toJSON==="function"){if(!U||!x9.hasAnchor(q))return q.toJSON($,U);let H={aliasCount:0,count:1,res:void 0};U.anchors.set(q,H),U.onCreate=(G)=>{H.res=G,delete U.onCreate};let z=q.toJSON($,U);if(U.onCreate)U.onCreate(z);return z}if(typeof q==="bigint"&&!U?.keep)return Number(q);return q}h9.toJS=F1});var Uq=O((p9)=>{var v9=iq(),w1=M(),m9=l();class P1{constructor(q){Object.defineProperty(this,w1.NODE_TYPE,{value:q})}clone(){let q=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));if(this.range)q.range=this.range.slice();return q}toJS(q,{mapAsMap:$,maxAliasCount:U,onAnchor:H,reviver:z}={}){if(!w1.isDocument(q))throw TypeError("A document argument is required");let G={anchors:new Map,doc:q,keep:!0,mapAsMap:$===!0,mapKeyWarned:!1,maxAliasCount:typeof U==="number"?U:100},X=m9.toJS(this,"",G);if(typeof H==="function")for(let{count:Z,res:Q}of G.anchors.values())H(Q,Z);return typeof z==="function"?v9.applyReviver(z,{"":X},"",X):X}}p9.NodeBase=P1});var b0=O((s9)=>{var l9=$q(),a9=K0(),L0=M(),c9=Uq(),i9=l();class A1 extends c9.NodeBase{constructor(q){super(L0.ALIAS);this.source=q,Object.defineProperty(this,"tag",{set(){throw Error("Alias nodes cannot have tags")}})}resolve(q,$){let U;if($?.aliasResolveCache)U=$.aliasResolveCache;else if(U=[],a9.visit(q,{Node:(z,G)=>{if(L0.isAlias(G)||L0.hasAnchor(G))U.push(G)}}),$)$.aliasResolveCache=U;let H=void 0;for(let z of U){if(z===this)break;if(z.anchor===this.source)H=z}return H}toJSON(q,$){if(!$)return{source:this.source};let{anchors:U,doc:H,maxAliasCount:z}=$,G=this.resolve(H,$);if(!G){let Z=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw ReferenceError(Z)}let X=U.get(G);if(!X)i9.toJS(G,null,$),X=U.get(G);if(X?.res===void 0)throw ReferenceError("This should not happen: Alias anchor was not resolved?");if(z>=0){if(X.count+=1,X.aliasCount===0)X.aliasCount=Hq(H,G,U);if(X.count*X.aliasCount>z)throw ReferenceError("Excessive alias count indicates a resource exhaustion attack")}return X.res}toString(q,$,U){let H=`*${this.source}`;if(q){if(l9.anchorIsValid(this.source),q.options.verifyAliasOrder&&!q.anchors.has(this.source)){let z=`Unresolved alias (the anchor must be set before the alias): ${this.source}`;throw Error(z)}if(q.implicitKey)return`${H} `}return H}}function Hq(q,$,U){if(L0.isAlias($)){let H=$.resolve(q),z=U&&H&&U.get(H);return z?z.count*z.aliasCount:0}else if(L0.isCollection($)){let H=0;for(let z of $.items){let G=Hq(q,z,U);if(G>H)H=G}return H}else if(L0.isPair($)){let H=Hq(q,$.key,U),z=Hq(q,$.value,U);return Math.max(H,z)}return 1}s9.Alias=A1});var b=O((qH)=>{var n9=M(),o9=Uq(),t9=l(),e9=(q)=>!q||typeof q!=="function"&&typeof q!=="object";class q0 extends o9.NodeBase{constructor(q){super(n9.SCALAR);this.value=q}toJSON(q,$){return $?.keep?this.value:t9.toJS(this.value,q,$)}toString(){return String(this.value)}}q0.BLOCK_FOLDED="BLOCK_FOLDED";q0.BLOCK_LITERAL="BLOCK_LITERAL";q0.PLAIN="PLAIN";q0.QUOTE_DOUBLE="QUOTE_DOUBLE";q0.QUOTE_SINGLE="QUOTE_SINGLE";qH.Scalar=q0;qH.isScalarValue=e9});var S0=O((ZH)=>{var HH=b0(),$0=M(),M1=b(),zH="tag:yaml.org,2002:";function GH(q,$,U){if($){let H=U.filter((G)=>G.tag===$),z=H.find((G)=>!G.format)??H[0];if(!z)throw Error(`Tag ${$} not found`);return z}return U.find((H)=>H.identify?.(q)&&!H.format)}function XH(q,$,U){if($0.isDocument(q))q=q.contents;if($0.isNode(q))return q;if($0.isPair(q)){let B=U.schema[$0.MAP].createNode?.(U.schema,null,U);return B.items.push(q),B}if(q instanceof String||q instanceof Number||q instanceof Boolean||typeof BigInt<"u"&&q instanceof BigInt)q=q.valueOf();let{aliasDuplicateObjects:H,onAnchor:z,onTagObj:G,schema:X,sourceObjects:Z}=U,Q=void 0;if(H&&q&&typeof q==="object")if(Q=Z.get(q),Q)return Q.anchor??(Q.anchor=z(q)),new HH.Alias(Q.anchor);else Q={anchor:null,node:null},Z.set(q,Q);if($?.startsWith("!!"))$=zH+$.slice(2);let J=GH(q,$,X.tags);if(!J){if(q&&typeof q.toJSON==="function")q=q.toJSON();if(!q||typeof q!=="object"){let B=new M1.Scalar(q);if(Q)Q.node=B;return B}J=q instanceof Map?X[$0.MAP]:(Symbol.iterator in Object(q))?X[$0.SEQ]:X[$0.MAP]}if(G)G(J),delete U.onTagObj;let R=J?.createNode?J.createNode(U.schema,q,U):typeof J?.nodeClass?.from==="function"?J.nodeClass.from(U.schema,q,U):new M1.Scalar(q);if($)R.tag=$;else if(!J.default)R.tag=J.tag;if(Q)Q.node=R;return R}ZH.createNode=XH});var zq=O((YH)=>{var JH=S0(),k=M(),BH=Uq();function sq(q,$,U){let H=U;for(let z=$.length-1;z>=0;--z){let G=$[z];if(typeof G==="number"&&Number.isInteger(G)&&G>=0){let X=[];X[G]=H,H=X}else H=new Map([[G,H]])}return JH.createNode(H,void 0,{aliasDuplicateObjects:!1,keepUndefined:!1,onAnchor:()=>{throw Error("This should not happen, please report a bug.")},schema:q,sourceObjects:new Map})}var K1=(q)=>q==null||typeof q==="object"&&!!q[Symbol.iterator]().next().done;class N1 extends BH.NodeBase{constructor(q,$){super(q);Object.defineProperty(this,"schema",{value:$,configurable:!0,enumerable:!1,writable:!0})}clone(q){let $=Object.create(Object.getPrototypeOf(this),Object.getOwnPropertyDescriptors(this));if(q)$.schema=q;if($.items=$.items.map((U)=>k.isNode(U)||k.isPair(U)?U.clone(q):U),this.range)$.range=this.range.slice();return $}addIn(q,$){if(K1(q))this.add($);else{let[U,...H]=q,z=this.get(U,!0);if(k.isCollection(z))z.addIn(H,$);else if(z===void 0&&this.schema)this.set(U,sq(this.schema,H,$));else throw Error(`Expected YAML collection at ${U}. Remaining path: ${H}`)}}deleteIn(q){let[$,...U]=q;if(U.length===0)return this.delete($);let H=this.get($,!0);if(k.isCollection(H))return H.deleteIn(U);else throw Error(`Expected YAML collection at ${$}. Remaining path: ${U}`)}getIn(q,$){let[U,...H]=q,z=this.get(U,!0);if(H.length===0)return!$&&k.isScalar(z)?z.value:z;else return k.isCollection(z)?z.getIn(H,$):void 0}hasAllNullValues(q){return this.items.every(($)=>{if(!k.isPair($))return!1;let U=$.value;return U==null||q&&k.isScalar(U)&&U.value==null&&!U.commentBefore&&!U.comment&&!U.tag})}hasIn(q){let[$,...U]=q;if(U.length===0)return this.has($);let H=this.get($,!0);return k.isCollection(H)?H.hasIn(U):!1}setIn(q,$){let[U,...H]=q;if(H.length===0)this.set(U,$);else{let z=this.get(U,!0);if(k.isCollection(z))z.setIn(H,$);else if(z===void 0&&this.schema)this.set(U,sq(this.schema,H,$));else throw Error(`Expected YAML collection at ${U}. Remaining path: ${H}`)}}}YH.Collection=N1;YH.collectionFromPath=sq;YH.isEmptyPath=K1});var j0=O((DH)=>{var WH=(q)=>q.replace(/^(?!$)(?: $)?/gm,"#");function rq(q,$){if(/^\n+$/.test(q))return q.substring(1);return $?q.replace(/^(?! *$)/gm,$):q}var OH=(q,$,U)=>q.endsWith(`
|
|
4
|
+
`)?rq(U,$):U.includes(`
|
|
5
|
+
`)?`
|
|
6
|
+
`+rq(U,$):(q.endsWith(" ")?"":" ")+U;DH.indentComment=rq;DH.lineComment=OH;DH.stringifyComment=WH});var S1=O((wH)=>{function FH(q,$,U="flow",{indentAtStart:H,lineWidth:z=80,minContentWidth:G=20,onFold:X,onOverflow:Z}={}){if(!z||z<0)return q;if(z<G)G=0;let Q=Math.max(1+G,1+z-$.length);if(q.length<=Q)return q;let J=[],R={},B=z-$.length;if(typeof H==="number")if(H>z-Math.max(2,G))J.push(0);else B=z-H;let Y=void 0,W=void 0,D=!1,T=-1,L=-1,I=-1;if(U==="block"){if(T=b1(q,T,$.length),T!==-1)B=T+Q}for(let F;F=q[T+=1];){if(U==="quoted"&&F==="\\"){switch(L=T,q[T+1]){case"x":T+=3;break;case"u":T+=5;break;case"U":T+=9;break;default:T+=1}I=T}if(F===`
|
|
7
|
+
`){if(U==="block")T=b1(q,T,$.length);B=T+$.length+Q,Y=void 0}else{if(F===" "&&W&&W!==" "&&W!==`
|
|
8
|
+
`&&W!=="\t"){let w=q[T+1];if(w&&w!==" "&&w!==`
|
|
9
|
+
`&&w!=="\t")Y=T}if(T>=B)if(Y)J.push(Y),B=Y+Q,Y=void 0;else if(U==="quoted"){while(W===" "||W==="\t")W=F,F=q[T+=1],D=!0;let w=T>I+1?T-2:L-1;if(R[w])return q;J.push(w),R[w]=!0,B=w+Q,Y=void 0}else D=!0}W=F}if(D&&Z)Z();if(J.length===0)return q;if(X)X();let V=q.slice(0,J[0]);for(let F=0;F<J.length;++F){let w=J[F],P=J[F+1]||q.length;if(w===0)V=`
|
|
10
|
+
${$}${q.slice(0,P)}`;else{if(U==="quoted"&&R[w])V+=`${q[w]}\\`;V+=`
|
|
11
|
+
${$}${q.slice(w+1,P)}`}}return V}function b1(q,$,U){let H=$,z=$+1,G=q[z];while(G===" "||G==="\t")if($<z+U)G=q[++$];else{do G=q[++$];while(G&&G!==`
|
|
12
|
+
`);H=$,z=$+1,G=q[z]}return H}wH.FOLD_BLOCK="block";wH.FOLD_FLOW="flow";wH.FOLD_QUOTED="quoted";wH.foldFlowLines=FH});var E0=O((jH)=>{var u=b(),a=S1(),Xq=(q,$)=>({indentAtStart:$?q.indent.length:q.indentAtStart,lineWidth:q.options.lineWidth,minContentWidth:q.options.minContentWidth}),Zq=(q)=>/^(%|---|\.\.\.)/m.test(q);function NH(q,$,U){if(!$||$<0)return!1;let H=$-U,z=q.length;if(z<=H)return!1;for(let G=0,X=0;G<z;++G)if(q[G]===`
|
|
13
|
+
`){if(G-X>H)return!0;if(X=G+1,z-X<=H)return!1}return!0}function C0(q,$){let U=JSON.stringify(q);if($.options.doubleQuotedAsJSON)return U;let{implicitKey:H}=$,z=$.options.doubleQuotedMinMultiLineLength,G=$.indent||(Zq(q)?" ":""),X="",Z=0;for(let Q=0,J=U[Q];J;J=U[++Q]){if(J===" "&&U[Q+1]==="\\"&&U[Q+2]==="n")X+=U.slice(Z,Q)+"\\ ",Q+=1,Z=Q,J="\\";if(J==="\\")switch(U[Q+1]){case"u":{X+=U.slice(Z,Q);let R=U.substr(Q+2,4);switch(R){case"0000":X+="\\0";break;case"0007":X+="\\a";break;case"000b":X+="\\v";break;case"001b":X+="\\e";break;case"0085":X+="\\N";break;case"00a0":X+="\\_";break;case"2028":X+="\\L";break;case"2029":X+="\\P";break;default:if(R.substr(0,2)==="00")X+="\\x"+R.substr(2);else X+=U.substr(Q,6)}Q+=5,Z=Q+1}break;case"n":if(H||U[Q+2]==='"'||U.length<z)Q+=1;else{X+=U.slice(Z,Q)+`
|
|
14
|
+
|
|
15
|
+
`;while(U[Q+2]==="\\"&&U[Q+3]==="n"&&U[Q+4]!=='"')X+=`
|
|
16
|
+
`,Q+=2;if(X+=G,U[Q+2]===" ")X+="\\";Q+=1,Z=Q+1}break;default:Q+=1}}return X=Z?X+U.slice(Z):U,H?X:a.foldFlowLines(X,G,a.FOLD_QUOTED,Xq($,!1))}function nq(q,$){if($.options.singleQuote===!1||$.implicitKey&&q.includes(`
|
|
17
|
+
`)||/[ \t]\n|\n[ \t]/.test(q))return C0(q,$);let U=$.indent||(Zq(q)?" ":""),H="'"+q.replace(/'/g,"''").replace(/\n+/g,`$&
|
|
18
|
+
${U}`)+"'";return $.implicitKey?H:a.foldFlowLines(H,U,a.FOLD_FLOW,Xq($,!1))}function W0(q,$){let{singleQuote:U}=$.options,H;if(U===!1)H=C0;else{let z=q.includes('"'),G=q.includes("'");if(z&&!G)H=nq;else if(G&&!z)H=C0;else H=U?nq:C0}return H(q,$)}var oq;try{oq=new RegExp(`(^|(?<!
|
|
19
|
+
))
|
|
20
|
+
+(?!
|
|
21
|
+
|$)`,"g")}catch{oq=/\n+(?!\n|$)/g}function Gq({comment:q,type:$,value:U},H,z,G){let{blockQuote:X,commentString:Z,lineWidth:Q}=H.options;if(!X||/\n[\t ]+$/.test(U))return W0(U,H);let J=H.indent||(H.forceBlockIndent||Zq(U)?" ":""),R=X==="literal"?!0:X==="folded"||$===u.Scalar.BLOCK_FOLDED?!1:$===u.Scalar.BLOCK_LITERAL?!0:!NH(U,Q,J.length);if(!U)return R?`|
|
|
22
|
+
`:`>
|
|
23
|
+
`;let B,Y;for(Y=U.length;Y>0;--Y){let P=U[Y-1];if(P!==`
|
|
24
|
+
`&&P!=="\t"&&P!==" ")break}let W=U.substring(Y),D=W.indexOf(`
|
|
25
|
+
`);if(D===-1)B="-";else if(U===W||D!==W.length-1){if(B="+",G)G()}else B="";if(W){if(U=U.slice(0,-W.length),W[W.length-1]===`
|
|
26
|
+
`)W=W.slice(0,-1);W=W.replace(oq,`$&${J}`)}let T=!1,L,I=-1;for(L=0;L<U.length;++L){let P=U[L];if(P===" ")T=!0;else if(P===`
|
|
27
|
+
`)I=L;else break}let V=U.substring(0,I<L?I+1:L);if(V)U=U.substring(V.length),V=V.replace(/\n+/g,`$&${J}`);let w=(T?J?"2":"1":"")+B;if(q){if(w+=" "+Z(q.replace(/ ?[\r\n]+/g," ")),z)z()}if(!R){let P=U.replace(/\n+/g,`
|
|
28
|
+
$&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,"$1$2").replace(/\n+/g,`$&${J}`),A=!1,K=Xq(H,!0);if(X!=="folded"&&$!==u.Scalar.BLOCK_FOLDED)K.onOverflow=()=>{A=!0};let _=a.foldFlowLines(`${V}${P}${W}`,J,a.FOLD_BLOCK,K);if(!A)return`>${w}
|
|
29
|
+
${J}${_}`}return U=U.replace(/\n+/g,`$&${J}`),`|${w}
|
|
30
|
+
${J}${V}${U}${W}`}function bH(q,$,U,H){let{type:z,value:G}=q,{actualString:X,implicitKey:Z,indent:Q,indentStep:J,inFlow:R}=$;if(Z&&G.includes(`
|
|
31
|
+
`)||R&&/[[\]{},]/.test(G))return W0(G,$);if(/^[\n\t ,[\]{}#&*!|>'"%@`]|^[?-]$|^[?-][ \t]|[\n:][ \t]|[ \t]\n|[\n\t ]#|[\n\t :]$/.test(G))return Z||R||!G.includes(`
|
|
32
|
+
`)?W0(G,$):Gq(q,$,U,H);if(!Z&&!R&&z!==u.Scalar.PLAIN&&G.includes(`
|
|
33
|
+
`))return Gq(q,$,U,H);if(Zq(G)){if(Q==="")return $.forceBlockIndent=!0,Gq(q,$,U,H);else if(Z&&Q===J)return W0(G,$)}let B=G.replace(/\n+/g,`$&
|
|
34
|
+
${Q}`);if(X){let Y=(T)=>T.default&&T.tag!=="tag:yaml.org,2002:str"&&T.test?.test(B),{compat:W,tags:D}=$.doc.schema;if(D.some(Y)||W?.some(Y))return W0(G,$)}return Z?B:a.foldFlowLines(B,Q,a.FOLD_FLOW,Xq($,!1))}function SH(q,$,U,H){let{implicitKey:z,inFlow:G}=$,X=typeof q.value==="string"?q:Object.assign({},q,{value:String(q.value)}),{type:Z}=q;if(Z!==u.Scalar.QUOTE_DOUBLE){if(/[\x00-\x08\x0b-\x1f\x7f-\x9f\u{D800}-\u{DFFF}]/u.test(X.value))Z=u.Scalar.QUOTE_DOUBLE}let Q=(R)=>{switch(R){case u.Scalar.BLOCK_FOLDED:case u.Scalar.BLOCK_LITERAL:return z||G?W0(X.value,$):Gq(X,$,U,H);case u.Scalar.QUOTE_DOUBLE:return C0(X.value,$);case u.Scalar.QUOTE_SINGLE:return nq(X.value,$);case u.Scalar.PLAIN:return bH(X,$,U,H);default:return null}},J=Q(Z);if(J===null){let{defaultKeyType:R,defaultStringType:B}=$.options,Y=z&&R||B;if(J=Q(Y),J===null)throw Error(`Unsupported default string type ${Y}`)}return J}jH.stringifyString=SH});var f0=O((kH)=>{var EH=$q(),c=M(),fH=j0(),gH=E0();function yH(q,$){let U=Object.assign({blockQuote:!0,commentString:fH.stringifyComment,defaultKeyType:null,defaultStringType:"PLAIN",directives:null,doubleQuotedAsJSON:!1,doubleQuotedMinMultiLineLength:40,falseStr:"false",flowCollectionPadding:!0,indentSeq:!0,lineWidth:80,minContentWidth:20,nullStr:"null",simpleKeys:!1,singleQuote:null,trueStr:"true",verifyAliasOrder:!0},q.schema.toStringOptions,$),H;switch(U.collectionStyle){case"block":H=!1;break;case"flow":H=!0;break;default:H=null}return{anchors:new Set,doc:q,flowCollectionPadding:U.flowCollectionPadding?" ":"",indent:"",indentStep:typeof U.indent==="number"?" ".repeat(U.indent):" ",inFlow:H,options:U}}function uH(q,$){if($.tag){let z=q.filter((G)=>G.tag===$.tag);if(z.length>0)return z.find((G)=>G.format===$.format)??z[0]}let U=void 0,H;if(c.isScalar($)){H=$.value;let z=q.filter((G)=>G.identify?.(H));if(z.length>1){let G=z.filter((X)=>X.test);if(G.length>0)z=G}U=z.find((G)=>G.format===$.format)??z.find((G)=>!G.format)}else H=$,U=q.find((z)=>z.nodeClass&&H instanceof z.nodeClass);if(!U){let z=H?.constructor?.name??(H===null?"null":typeof H);throw Error(`Tag not resolved for ${z} value`)}return U}function xH(q,$,{anchors:U,doc:H}){if(!H.directives)return"";let z=[],G=(c.isScalar(q)||c.isCollection(q))&&q.anchor;if(G&&EH.anchorIsValid(G))U.add(G),z.push(`&${G}`);let X=q.tag??($.default?null:$.tag);if(X)z.push(H.directives.tagString(X));return z.join(" ")}function hH(q,$,U,H){if(c.isPair(q))return q.toString($,U,H);if(c.isAlias(q)){if($.doc.directives)return q.toString($);if($.resolvedAliases?.has(q))throw TypeError("Cannot stringify circular structure without alias nodes");else{if($.resolvedAliases)$.resolvedAliases.add(q);else $.resolvedAliases=new Set([q]);q=q.resolve($.doc)}}let z=void 0,G=c.isNode(q)?q:$.doc.createNode(q,{onTagObj:(Q)=>z=Q});z??(z=uH($.doc.schema.tags,G));let X=xH(G,z,$);if(X.length>0)$.indentAtStart=($.indentAtStart??0)+X.length+1;let Z=typeof z.stringify==="function"?z.stringify(G,$,U,H):c.isScalar(G)?gH.stringifyString(G,$,U,H):G.toString($,U,H);if(!X)return Z;return c.isScalar(G)||Z[0]==="{"||Z[0]==="["?`${X} ${Z}`:`${X}
|
|
35
|
+
${$.indent}${Z}`}kH.createStringifyContext=yH;kH.stringify=hH});var E1=O((dH)=>{var m=M(),j1=b(),C1=f0(),g0=j0();function pH({key:q,value:$},U,H,z){let{allNullValues:G,doc:X,indent:Z,indentStep:Q,options:{commentString:J,indentSeq:R,simpleKeys:B}}=U,Y=m.isNode(q)&&q.comment||null;if(B){if(Y)throw Error("With simple keys, key nodes cannot have comments");if(m.isCollection(q)||!m.isNode(q)&&typeof q==="object")throw Error("With simple keys, collection cannot be used as a key value")}let W=!B&&(!q||Y&&$==null&&!U.inFlow||m.isCollection(q)||(m.isScalar(q)?q.type===j1.Scalar.BLOCK_FOLDED||q.type===j1.Scalar.BLOCK_LITERAL:typeof q==="object"));U=Object.assign({},U,{allNullValues:!1,implicitKey:!W&&(B||!G),indent:Z+Q});let D=!1,T=!1,L=C1.stringify(q,U,()=>D=!0,()=>T=!0);if(!W&&!U.inFlow&&L.length>1024){if(B)throw Error("With simple keys, single line scalar must not span more than 1024 characters");W=!0}if(U.inFlow){if(G||$==null){if(D&&H)H();return L===""?"?":W?`? ${L}`:L}}else if(G&&!B||$==null&&W){if(L=`? ${L}`,Y&&!D)L+=g0.lineComment(L,U.indent,J(Y));else if(T&&z)z();return L}if(D)Y=null;if(W){if(Y)L+=g0.lineComment(L,U.indent,J(Y));L=`? ${L}
|
|
36
|
+
${Z}:`}else if(L=`${L}:`,Y)L+=g0.lineComment(L,U.indent,J(Y));let I,V,F;if(m.isNode($))I=!!$.spaceBefore,V=$.commentBefore,F=$.comment;else if(I=!1,V=null,F=null,$&&typeof $==="object")$=X.createNode($);if(U.implicitKey=!1,!W&&!Y&&m.isScalar($))U.indentAtStart=L.length+1;if(T=!1,!R&&Q.length>=2&&!U.inFlow&&!W&&m.isSeq($)&&!$.flow&&!$.tag&&!$.anchor)U.indent=U.indent.substring(2);let w=!1,P=C1.stringify($,U,()=>w=!0,()=>T=!0),A=" ";if(Y||I||V){if(A=I?`
|
|
37
|
+
`:"",V){let K=J(V);A+=`
|
|
38
|
+
${g0.indentComment(K,U.indent)}`}if(P===""&&!U.inFlow){if(A===`
|
|
39
|
+
`&&F)A=`
|
|
40
|
+
|
|
41
|
+
`}else A+=`
|
|
42
|
+
${U.indent}`}else if(!W&&m.isCollection($)){let K=P[0],_=P.indexOf(`
|
|
43
|
+
`),S=_!==-1,d=U.inFlow??$.flow??$.items.length===0;if(S||!d){let J0=!1;if(S&&(K==="&"||K==="!")){let j=P.indexOf(" ");if(K==="&"&&j!==-1&&j<_&&P[j+1]==="!")j=P.indexOf(" ",j+1);if(j===-1||_<j)J0=!0}if(!J0)A=`
|
|
44
|
+
${U.indent}`}}else if(P===""||P[0]===`
|
|
45
|
+
`)A="";if(L+=A+P,U.inFlow){if(w&&H)H()}else if(F&&!w)L+=g0.lineComment(L,U.indent,J(F));else if(T&&z)z();return L}dH.stringifyPair=pH});var tq=O((iH)=>{var f1=e("process");function aH(q,...$){if(q==="debug")console.log(...$)}function cH(q,$){if(q==="debug"||q==="warn")if(typeof f1.emitWarning==="function")f1.emitWarning($);else console.warn($)}iH.debug=aH;iH.warn=cH});var Bq=O((oH)=>{var y0=M(),g1=b(),Qq="<<",Jq={identify:(q)=>q===Qq||typeof q==="symbol"&&q.description===Qq,default:"key",tag:"tag:yaml.org,2002:merge",test:/^<<$/,resolve:()=>Object.assign(new g1.Scalar(Symbol(Qq)),{addToJSMap:y1}),stringify:()=>Qq},nH=(q,$)=>(Jq.identify($)||y0.isScalar($)&&(!$.type||$.type===g1.Scalar.PLAIN)&&Jq.identify($.value))&&q?.doc.schema.tags.some((U)=>U.tag===Jq.tag&&U.default);function y1(q,$,U){if(U=q&&y0.isAlias(U)?U.resolve(q.doc):U,y0.isSeq(U))for(let H of U.items)eq(q,$,H);else if(Array.isArray(U))for(let H of U)eq(q,$,H);else eq(q,$,U)}function eq(q,$,U){let H=q&&y0.isAlias(U)?U.resolve(q.doc):U;if(!y0.isMap(H))throw Error("Merge sources must be maps or map aliases");let z=H.toJSON(null,q,Map);for(let[G,X]of z)if($ instanceof Map){if(!$.has(G))$.set(G,X)}else if($ instanceof Set)$.add(G);else if(!Object.prototype.hasOwnProperty.call($,G))Object.defineProperty($,G,{value:X,writable:!0,enumerable:!0,configurable:!0});return $}oH.addMergeToJSMap=y1;oH.isMergeKey=nH;oH.merge=Jq});var $$=O((G8)=>{var $8=tq(),u1=Bq(),U8=f0(),x1=M(),q$=l();function H8(q,$,{key:U,value:H}){if(x1.isNode(U)&&U.addToJSMap)U.addToJSMap(q,$,H);else if(u1.isMergeKey(q,U))u1.addMergeToJSMap(q,$,H);else{let z=q$.toJS(U,"",q);if($ instanceof Map)$.set(z,q$.toJS(H,z,q));else if($ instanceof Set)$.add(z);else{let G=z8(U,z,q),X=q$.toJS(H,G,q);if(G in $)Object.defineProperty($,G,{value:X,writable:!0,enumerable:!0,configurable:!0});else $[G]=X}}return $}function z8(q,$,U){if($===null)return"";if(typeof $!=="object")return String($);if(x1.isNode(q)&&U?.doc){let H=U8.createStringifyContext(U.doc,{});H.anchors=new Set;for(let G of U.anchors.keys())H.anchors.add(G.anchor);H.inFlow=!0,H.inStringifyKey=!0;let z=q.toString(H);if(!U.mapKeyWarned){let G=JSON.stringify(z);if(G.length>40)G=G.substring(0,36)+'..."';$8.warn(U.doc.options.logLevel,`Keys with collection values will be stringified due to JS Object restrictions: ${G}. Set mapAsMap: true to use object keys.`),U.mapKeyWarned=!0}return z}return JSON.stringify($)}G8.addPairToJSMap=H8});var i=O((B8)=>{var h1=S0(),Z8=E1(),Q8=$$(),Yq=M();function J8(q,$,U){let H=h1.createNode(q,void 0,U),z=h1.createNode($,void 0,U);return new Tq(H,z)}class Tq{constructor(q,$=null){Object.defineProperty(this,Yq.NODE_TYPE,{value:Yq.PAIR}),this.key=q,this.value=$}clone(q){let{key:$,value:U}=this;if(Yq.isNode($))$=$.clone(q);if(Yq.isNode(U))U=U.clone(q);return new Tq($,U)}toJSON(q,$){let U=$?.mapAsMap?new Map:{};return Q8.addPairToJSMap($,U,this)}toString(q,$,U){return q?.doc?Z8.stringifyPair(this,q,$,U):JSON.stringify(this)}}B8.Pair=Tq;B8.createPair=J8});var U$=O((O8)=>{var U0=M(),k1=f0(),Rq=j0();function R8(q,$,U){return($.inFlow??q.flow?W8:L8)(q,$,U)}function L8({comment:q,items:$},U,{blockItemPrefix:H,flowChars:z,itemIndent:G,onChompKeep:X,onComment:Z}){let{indent:Q,options:{commentString:J}}=U,R=Object.assign({},U,{indent:G,type:null}),B=!1,Y=[];for(let D=0;D<$.length;++D){let T=$[D],L=null;if(U0.isNode(T)){if(!B&&T.spaceBefore)Y.push("");if(Lq(U,Y,T.commentBefore,B),T.comment)L=T.comment}else if(U0.isPair(T)){let V=U0.isNode(T.key)?T.key:null;if(V){if(!B&&V.spaceBefore)Y.push("");Lq(U,Y,V.commentBefore,B)}}B=!1;let I=k1.stringify(T,R,()=>L=null,()=>B=!0);if(L)I+=Rq.lineComment(I,G,J(L));if(B&&L)B=!1;Y.push(H+I)}let W;if(Y.length===0)W=z.start+z.end;else{W=Y[0];for(let D=1;D<Y.length;++D){let T=Y[D];W+=T?`
|
|
46
|
+
${Q}${T}`:`
|
|
47
|
+
`}}if(q){if(W+=`
|
|
48
|
+
`+Rq.indentComment(J(q),Q),Z)Z()}else if(B&&X)X();return W}function W8({items:q},$,{flowChars:U,itemIndent:H}){let{indent:z,indentStep:G,flowCollectionPadding:X,options:{commentString:Z}}=$;H+=G;let Q=Object.assign({},$,{indent:H,inFlow:!0,type:null}),J=!1,R=0,B=[];for(let D=0;D<q.length;++D){let T=q[D],L=null;if(U0.isNode(T)){if(T.spaceBefore)B.push("");if(Lq($,B,T.commentBefore,!1),T.comment)L=T.comment}else if(U0.isPair(T)){let V=U0.isNode(T.key)?T.key:null;if(V){if(V.spaceBefore)B.push("");if(Lq($,B,V.commentBefore,!1),V.comment)J=!0}let F=U0.isNode(T.value)?T.value:null;if(F){if(F.comment)L=F.comment;if(F.commentBefore)J=!0}else if(T.value==null&&V?.comment)L=V.comment}if(L)J=!0;let I=k1.stringify(T,Q,()=>L=null);if(D<q.length-1)I+=",";if(L)I+=Rq.lineComment(I,H,Z(L));if(!J&&(B.length>R||I.includes(`
|
|
49
|
+
`)))J=!0;B.push(I),R=B.length}let{start:Y,end:W}=U;if(B.length===0)return Y+W;else{if(!J){let D=B.reduce((T,L)=>T+L.length+2,2);J=$.options.lineWidth>0&&D>$.options.lineWidth}if(J){let D=Y;for(let T of B)D+=T?`
|
|
50
|
+
${G}${z}${T}`:`
|
|
51
|
+
`;return`${D}
|
|
52
|
+
${z}${W}`}else return`${Y}${X}${B.join(" ")}${X}${W}`}}function Lq({indent:q,options:{commentString:$}},U,H,z){if(H&&z)H=H.replace(/^\n+/,"");if(H){let G=Rq.indentComment($(H),q);U.push(G.trimStart())}}O8.stringifyCollection=R8});var r=O((w8)=>{var _8=U$(),I8=$$(),V8=zq(),s=M(),Wq=i(),F8=b();function u0(q,$){let U=s.isScalar($)?$.value:$;for(let H of q)if(s.isPair(H)){if(H.key===$||H.key===U)return H;if(s.isScalar(H.key)&&H.key.value===U)return H}return}class v1 extends V8.Collection{static get tagName(){return"tag:yaml.org,2002:map"}constructor(q){super(s.MAP,q);this.items=[]}static from(q,$,U){let{keepUndefined:H,replacer:z}=U,G=new this(q),X=(Z,Q)=>{if(typeof z==="function")Q=z.call($,Z,Q);else if(Array.isArray(z)&&!z.includes(Z))return;if(Q!==void 0||H)G.items.push(Wq.createPair(Z,Q,U))};if($ instanceof Map)for(let[Z,Q]of $)X(Z,Q);else if($&&typeof $==="object")for(let Z of Object.keys($))X(Z,$[Z]);if(typeof q.sortMapEntries==="function")G.items.sort(q.sortMapEntries);return G}add(q,$){let U;if(s.isPair(q))U=q;else if(!q||typeof q!=="object"||!("key"in q))U=new Wq.Pair(q,q?.value);else U=new Wq.Pair(q.key,q.value);let H=u0(this.items,U.key),z=this.schema?.sortMapEntries;if(H){if(!$)throw Error(`Key ${U.key} already set`);if(s.isScalar(H.value)&&F8.isScalarValue(U.value))H.value.value=U.value;else H.value=U.value}else if(z){let G=this.items.findIndex((X)=>z(U,X)<0);if(G===-1)this.items.push(U);else this.items.splice(G,0,U)}else this.items.push(U)}delete(q){let $=u0(this.items,q);if(!$)return!1;return this.items.splice(this.items.indexOf($),1).length>0}get(q,$){let H=u0(this.items,q)?.value;return(!$&&s.isScalar(H)?H.value:H)??void 0}has(q){return!!u0(this.items,q)}set(q,$){this.add(new Wq.Pair(q,$),!0)}toJSON(q,$,U){let H=U?new U:$?.mapAsMap?new Map:{};if($?.onCreate)$.onCreate(H);for(let z of this.items)I8.addPairToJSMap($,H,z);return H}toString(q,$,U){if(!q)return JSON.stringify(this);for(let H of this.items)if(!s.isPair(H))throw Error(`Map items must all be pairs; found ${JSON.stringify(H)} instead`);if(!q.allNullValues&&this.hasAllNullValues(!1))q=Object.assign({},q,{allNullValues:!0});return _8.stringifyCollection(this,q,{blockItemPrefix:"",flowChars:{start:"{",end:"}"},itemIndent:q.indent||"",onChompKeep:U,onComment:$})}}w8.YAMLMap=v1;w8.findPair=u0});var O0=O((N8)=>{var M8=M(),m1=r(),K8={collection:"map",default:!0,nodeClass:m1.YAMLMap,tag:"tag:yaml.org,2002:map",resolve(q,$){if(!M8.isMap(q))$("Expected a mapping for this tag");return q},createNode:(q,$,U)=>m1.YAMLMap.from(q,$,U)};N8.map=K8});var n=O((g8)=>{var S8=S0(),j8=U$(),C8=zq(),Dq=M(),E8=b(),f8=l();class p1 extends C8.Collection{static get tagName(){return"tag:yaml.org,2002:seq"}constructor(q){super(Dq.SEQ,q);this.items=[]}add(q){this.items.push(q)}delete(q){let $=Oq(q);if(typeof $!=="number")return!1;return this.items.splice($,1).length>0}get(q,$){let U=Oq(q);if(typeof U!=="number")return;let H=this.items[U];return!$&&Dq.isScalar(H)?H.value:H}has(q){let $=Oq(q);return typeof $==="number"&&$<this.items.length}set(q,$){let U=Oq(q);if(typeof U!=="number")throw Error(`Expected a valid index, not ${q}.`);let H=this.items[U];if(Dq.isScalar(H)&&E8.isScalarValue($))H.value=$;else this.items[U]=$}toJSON(q,$){let U=[];if($?.onCreate)$.onCreate(U);let H=0;for(let z of this.items)U.push(f8.toJS(z,String(H++),$));return U}toString(q,$,U){if(!q)return JSON.stringify(this);return j8.stringifyCollection(this,q,{blockItemPrefix:"- ",flowChars:{start:"[",end:"]"},itemIndent:(q.indent||"")+" ",onChompKeep:U,onComment:$})}static from(q,$,U){let{replacer:H}=U,z=new this(q);if($&&Symbol.iterator in Object($)){let G=0;for(let X of $){if(typeof H==="function"){let Z=$ instanceof Set?X:String(G++);X=H.call($,Z,X)}z.items.push(S8.createNode(X,void 0,U))}}return z}}function Oq(q){let $=Dq.isScalar(q)?q.value:q;if($&&typeof $==="string")$=Number($);return typeof $==="number"&&Number.isInteger($)&&$>=0?$:null}g8.YAMLSeq=p1});var D0=O((h8)=>{var u8=M(),d1=n(),x8={collection:"seq",default:!0,nodeClass:d1.YAMLSeq,tag:"tag:yaml.org,2002:seq",resolve(q,$){if(!u8.isSeq(q))$("Expected a sequence for this tag");return q},createNode:(q,$,U)=>d1.YAMLSeq.from(q,$,U)};h8.seq=x8});var x0=O((p8)=>{var v8=E0(),m8={identify:(q)=>typeof q==="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:(q)=>q,stringify(q,$,U,H){return $=Object.assign({actualString:!0},$),v8.stringifyString(q,$,U,H)}};p8.string=m8});var _q=O((l8)=>{var l1=b(),a1={identify:(q)=>q==null,createNode:()=>new l1.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^(?:~|[Nn]ull|NULL)?$/,resolve:()=>new l1.Scalar(null),stringify:({source:q},$)=>typeof q==="string"&&a1.test.test(q)?q:$.options.nullStr};l8.nullTag=a1});var H$=O((i8)=>{var c8=b(),c1={identify:(q)=>typeof q==="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:[Tt]rue|TRUE|[Ff]alse|FALSE)$/,resolve:(q)=>new c8.Scalar(q[0]==="t"||q[0]==="T"),stringify({source:q,value:$},U){if(q&&c1.test.test(q)){let H=q[0]==="t"||q[0]==="T";if($===H)return q}return $?U.options.trueStr:U.options.falseStr}};i8.boolTag=c1});var _0=O((n8)=>{function r8({format:q,minFractionDigits:$,tag:U,value:H}){if(typeof H==="bigint")return String(H);let z=typeof H==="number"?H:Number(H);if(!isFinite(z))return isNaN(z)?".nan":z<0?"-.inf":".inf";let G=Object.is(H,-0)?"-0":JSON.stringify(H);if(!q&&$&&(!U||U==="tag:yaml.org,2002:float")&&/^\d/.test(G)){let X=G.indexOf(".");if(X<0)X=G.length,G+=".";let Z=$-(G.length-X-1);while(Z-- >0)G+="0"}return G}n8.stringifyNumber=r8});var G$=O((U4)=>{var t8=b(),z$=_0(),e8={identify:(q)=>typeof q==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:(q)=>q.slice(-3).toLowerCase()==="nan"?NaN:q[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:z$.stringifyNumber},q4={identify:(q)=>typeof q==="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:\.[0-9]+|[0-9]+(?:\.[0-9]*)?)[eE][-+]?[0-9]+$/,resolve:(q)=>parseFloat(q),stringify(q){let $=Number(q.value);return isFinite($)?$.toExponential():z$.stringifyNumber(q)}},$4={identify:(q)=>typeof q==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:\.[0-9]+|[0-9]+\.[0-9]*)$/,resolve(q){let $=new t8.Scalar(parseFloat(q)),U=q.indexOf(".");if(U!==-1&&q[q.length-1]==="0")$.minFractionDigits=q.length-U-1;return $},stringify:z$.stringifyNumber};U4.float=$4;U4.floatExp=q4;U4.floatNaN=e8});var Z$=O((J4)=>{var i1=_0(),Iq=(q)=>typeof q==="bigint"||Number.isInteger(q),X$=(q,$,U,{intAsBigInt:H})=>H?BigInt(q):parseInt(q.substring($),U);function s1(q,$,U){let{value:H}=q;if(Iq(H)&&H>=0)return U+H.toString($);return i1.stringifyNumber(q)}var X4={identify:(q)=>Iq(q)&&q>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^0o[0-7]+$/,resolve:(q,$,U)=>X$(q,2,8,U),stringify:(q)=>s1(q,8,"0o")},Z4={identify:Iq,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9]+$/,resolve:(q,$,U)=>X$(q,0,10,U),stringify:i1.stringifyNumber},Q4={identify:(q)=>Iq(q)&&q>=0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^0x[0-9a-fA-F]+$/,resolve:(q,$,U)=>X$(q,2,16,U),stringify:(q)=>s1(q,16,"0x")};J4.int=Z4;J4.intHex=Q4;J4.intOct=X4});var r1=O((I4)=>{var R4=O0(),L4=_q(),W4=D0(),O4=x0(),D4=H$(),Q$=G$(),J$=Z$(),_4=[R4.map,W4.seq,O4.string,L4.nullTag,D4.boolTag,J$.intOct,J$.int,J$.intHex,Q$.floatNaN,Q$.floatExp,Q$.float];I4.schema=_4});var o1=O((N4)=>{var F4=b(),w4=O0(),P4=D0();function n1(q){return typeof q==="bigint"||Number.isInteger(q)}var Vq=({value:q})=>JSON.stringify(q),A4=[{identify:(q)=>typeof q==="string",default:!0,tag:"tag:yaml.org,2002:str",resolve:(q)=>q,stringify:Vq},{identify:(q)=>q==null,createNode:()=>new F4.Scalar(null),default:!0,tag:"tag:yaml.org,2002:null",test:/^null$/,resolve:()=>null,stringify:Vq},{identify:(q)=>typeof q==="boolean",default:!0,tag:"tag:yaml.org,2002:bool",test:/^true$|^false$/,resolve:(q)=>q==="true",stringify:Vq},{identify:n1,default:!0,tag:"tag:yaml.org,2002:int",test:/^-?(?:0|[1-9][0-9]*)$/,resolve:(q,$,{intAsBigInt:U})=>U?BigInt(q):parseInt(q,10),stringify:({value:q})=>n1(q)?q.toString():JSON.stringify(q)},{identify:(q)=>typeof q==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]*)?(?:[eE][-+]?[0-9]+)?$/,resolve:(q)=>parseFloat(q),stringify:Vq}],M4={default:!0,tag:"",test:/^/,resolve(q,$){return $(`Unresolved plain scalar ${JSON.stringify(q)}`),q}},K4=[w4.map,P4.seq].concat(A4,M4);N4.schema=K4});var Y$=O((C4)=>{var h0=e("buffer"),B$=b(),S4=E0(),j4={identify:(q)=>q instanceof Uint8Array,default:!1,tag:"tag:yaml.org,2002:binary",resolve(q,$){if(typeof h0.Buffer==="function")return h0.Buffer.from(q,"base64");else if(typeof atob==="function"){let U=atob(q.replace(/[\n\r]/g,"")),H=new Uint8Array(U.length);for(let z=0;z<U.length;++z)H[z]=U.charCodeAt(z);return H}else return $("This environment does not support reading binary tags; either Buffer or atob is required"),q},stringify({comment:q,type:$,value:U},H,z,G){if(!U)return"";let X=U,Z;if(typeof h0.Buffer==="function")Z=X instanceof h0.Buffer?X.toString("base64"):h0.Buffer.from(X.buffer).toString("base64");else if(typeof btoa==="function"){let Q="";for(let J=0;J<X.length;++J)Q+=String.fromCharCode(X[J]);Z=btoa(Q)}else throw Error("This environment does not support writing binary tags; either Buffer or btoa is required");if($??($=B$.Scalar.BLOCK_LITERAL),$!==B$.Scalar.QUOTE_DOUBLE){let Q=Math.max(H.options.lineWidth-H.indent.length,H.options.minContentWidth),J=Math.ceil(Z.length/Q),R=Array(J);for(let B=0,Y=0;B<J;++B,Y+=Q)R[B]=Z.substr(Y,Q);Z=R.join($===B$.Scalar.BLOCK_LITERAL?`
|
|
53
|
+
`:" ")}return S4.stringifyString({comment:q,type:$,value:Z},H,z,G)}};C4.binary=j4});var wq=O((u4)=>{var Fq=M(),T$=i(),f4=b(),g4=n();function t1(q,$){if(Fq.isSeq(q))for(let U=0;U<q.items.length;++U){let H=q.items[U];if(Fq.isPair(H))continue;else if(Fq.isMap(H)){if(H.items.length>1)$("Each pair must have its own sequence indicator");let z=H.items[0]||new T$.Pair(new f4.Scalar(null));if(H.commentBefore)z.key.commentBefore=z.key.commentBefore?`${H.commentBefore}
|
|
54
|
+
${z.key.commentBefore}`:H.commentBefore;if(H.comment){let G=z.value??z.key;G.comment=G.comment?`${H.comment}
|
|
55
|
+
${G.comment}`:H.comment}H=z}q.items[U]=Fq.isPair(H)?H:new T$.Pair(H)}else $("Expected a sequence for this tag");return q}function e1(q,$,U){let{replacer:H}=U,z=new g4.YAMLSeq(q);z.tag="tag:yaml.org,2002:pairs";let G=0;if($&&Symbol.iterator in Object($))for(let X of $){if(typeof H==="function")X=H.call($,String(G++),X);let Z,Q;if(Array.isArray(X))if(X.length===2)Z=X[0],Q=X[1];else throw TypeError(`Expected [key, value] tuple: ${X}`);else if(X&&X instanceof Object){let J=Object.keys(X);if(J.length===1)Z=J[0],Q=X[Z];else throw TypeError(`Expected tuple with one key, not ${J.length} keys`)}else Z=X;z.items.push(T$.createPair(Z,Q,U))}return z}var y4={collection:"seq",default:!1,tag:"tag:yaml.org,2002:pairs",resolve:t1,createNode:e1};u4.createPairs=e1;u4.pairs=y4;u4.resolvePairs=t1});var L$=O((p4)=>{var qU=M(),R$=l(),k0=r(),v4=n(),$U=wq();class H0 extends v4.YAMLSeq{constructor(){super();this.add=k0.YAMLMap.prototype.add.bind(this),this.delete=k0.YAMLMap.prototype.delete.bind(this),this.get=k0.YAMLMap.prototype.get.bind(this),this.has=k0.YAMLMap.prototype.has.bind(this),this.set=k0.YAMLMap.prototype.set.bind(this),this.tag=H0.tag}toJSON(q,$){if(!$)return super.toJSON(q);let U=new Map;if($?.onCreate)$.onCreate(U);for(let H of this.items){let z,G;if(qU.isPair(H))z=R$.toJS(H.key,"",$),G=R$.toJS(H.value,z,$);else z=R$.toJS(H,"",$);if(U.has(z))throw Error("Ordered maps must not include duplicate keys");U.set(z,G)}return U}static from(q,$,U){let H=$U.createPairs(q,$,U),z=new this;return z.items=H.items,z}}H0.tag="tag:yaml.org,2002:omap";var m4={collection:"seq",identify:(q)=>q instanceof Map,nodeClass:H0,default:!1,tag:"tag:yaml.org,2002:omap",resolve(q,$){let U=$U.resolvePairs(q,$),H=[];for(let{key:z}of U.items)if(qU.isScalar(z))if(H.includes(z.value))$(`Ordered maps must not include duplicate keys: ${z.value}`);else H.push(z.value);return Object.assign(new H0,U)},createNode:(q,$,U)=>H0.from(q,$,U)};p4.YAMLOMap=H0;p4.omap=m4});var XU=O((a4)=>{var UU=b();function HU({value:q,source:$},U){if($&&(q?zU:GU).test.test($))return $;return q?U.options.trueStr:U.options.falseStr}var zU={identify:(q)=>q===!0,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:Y|y|[Yy]es|YES|[Tt]rue|TRUE|[Oo]n|ON)$/,resolve:()=>new UU.Scalar(!0),stringify:HU},GU={identify:(q)=>q===!1,default:!0,tag:"tag:yaml.org,2002:bool",test:/^(?:N|n|[Nn]o|NO|[Ff]alse|FALSE|[Oo]ff|OFF)$/,resolve:()=>new UU.Scalar(!1),stringify:HU};a4.falseTag=GU;a4.trueTag=zU});var ZU=O((t4)=>{var s4=b(),W$=_0(),r4={identify:(q)=>typeof q==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^(?:[-+]?\.(?:inf|Inf|INF)|\.nan|\.NaN|\.NAN)$/,resolve:(q)=>q.slice(-3).toLowerCase()==="nan"?NaN:q[0]==="-"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,stringify:W$.stringifyNumber},n4={identify:(q)=>typeof q==="number",default:!0,tag:"tag:yaml.org,2002:float",format:"EXP",test:/^[-+]?(?:[0-9][0-9_]*)?(?:\.[0-9_]*)?[eE][-+]?[0-9]+$/,resolve:(q)=>parseFloat(q.replace(/_/g,"")),stringify(q){let $=Number(q.value);return isFinite($)?$.toExponential():W$.stringifyNumber(q)}},o4={identify:(q)=>typeof q==="number",default:!0,tag:"tag:yaml.org,2002:float",test:/^[-+]?(?:[0-9][0-9_]*)?\.[0-9_]*$/,resolve(q){let $=new s4.Scalar(parseFloat(q.replace(/_/g,""))),U=q.indexOf(".");if(U!==-1){let H=q.substring(U+1).replace(/_/g,"");if(H[H.length-1]==="0")$.minFractionDigits=H.length}return $},stringify:W$.stringifyNumber};t4.float=o4;t4.floatExp=n4;t4.floatNaN=r4});var JU=O((Xz)=>{var QU=_0(),v0=(q)=>typeof q==="bigint"||Number.isInteger(q);function Pq(q,$,U,{intAsBigInt:H}){let z=q[0];if(z==="-"||z==="+")$+=1;if(q=q.substring($).replace(/_/g,""),H){switch(U){case 2:q=`0b${q}`;break;case 8:q=`0o${q}`;break;case 16:q=`0x${q}`;break}let X=BigInt(q);return z==="-"?BigInt(-1)*X:X}let G=parseInt(q,U);return z==="-"?-1*G:G}function O$(q,$,U){let{value:H}=q;if(v0(H)){let z=H.toString($);return H<0?"-"+U+z.substr(1):U+z}return QU.stringifyNumber(q)}var Uz={identify:v0,default:!0,tag:"tag:yaml.org,2002:int",format:"BIN",test:/^[-+]?0b[0-1_]+$/,resolve:(q,$,U)=>Pq(q,2,2,U),stringify:(q)=>O$(q,2,"0b")},Hz={identify:v0,default:!0,tag:"tag:yaml.org,2002:int",format:"OCT",test:/^[-+]?0[0-7_]+$/,resolve:(q,$,U)=>Pq(q,1,8,U),stringify:(q)=>O$(q,8,"0")},zz={identify:v0,default:!0,tag:"tag:yaml.org,2002:int",test:/^[-+]?[0-9][0-9_]*$/,resolve:(q,$,U)=>Pq(q,0,10,U),stringify:QU.stringifyNumber},Gz={identify:v0,default:!0,tag:"tag:yaml.org,2002:int",format:"HEX",test:/^[-+]?0x[0-9a-fA-F_]+$/,resolve:(q,$,U)=>Pq(q,2,16,U),stringify:(q)=>O$(q,16,"0x")};Xz.int=zz;Xz.intBin=Uz;Xz.intHex=Gz;Xz.intOct=Hz});var D$=O((Tz)=>{var Kq=M(),Aq=i(),Mq=r();class z0 extends Mq.YAMLMap{constructor(q){super(q);this.tag=z0.tag}add(q){let $;if(Kq.isPair(q))$=q;else if(q&&typeof q==="object"&&"key"in q&&"value"in q&&q.value===null)$=new Aq.Pair(q.key,null);else $=new Aq.Pair(q,null);if(!Mq.findPair(this.items,$.key))this.items.push($)}get(q,$){let U=Mq.findPair(this.items,q);return!$&&Kq.isPair(U)?Kq.isScalar(U.key)?U.key.value:U.key:U}set(q,$){if(typeof $!=="boolean")throw Error(`Expected boolean value for set(key, value) in a YAML set, not ${typeof $}`);let U=Mq.findPair(this.items,q);if(U&&!$)this.items.splice(this.items.indexOf(U),1);else if(!U&&$)this.items.push(new Aq.Pair(q))}toJSON(q,$){return super.toJSON(q,$,Set)}toString(q,$,U){if(!q)return JSON.stringify(this);if(this.hasAllNullValues(!0))return super.toString(Object.assign({},q,{allNullValues:!0}),$,U);else throw Error("Set items must all have null values")}static from(q,$,U){let{replacer:H}=U,z=new this(q);if($&&Symbol.iterator in Object($))for(let G of $){if(typeof H==="function")G=H.call($,G,G);z.items.push(Aq.createPair(G,null,U))}return z}}z0.tag="tag:yaml.org,2002:set";var Yz={collection:"map",identify:(q)=>q instanceof Set,nodeClass:z0,default:!1,tag:"tag:yaml.org,2002:set",createNode:(q,$,U)=>z0.from(q,$,U),resolve(q,$){if(Kq.isMap(q))if(q.hasAllNullValues(!0))return Object.assign(new z0,q);else $("Set items must all have null values");else $("Expected a mapping for this tag");return q}};Tz.YAMLSet=z0;Tz.set=Yz});var I$=O((_z)=>{var Wz=_0();function _$(q,$){let U=q[0],H=U==="-"||U==="+"?q.substring(1):q,z=(X)=>$?BigInt(X):Number(X),G=H.replace(/_/g,"").split(":").reduce((X,Z)=>X*z(60)+z(Z),z(0));return U==="-"?z(-1)*G:G}function BU(q){let{value:$}=q,U=(X)=>X;if(typeof $==="bigint")U=(X)=>BigInt(X);else if(isNaN($)||!isFinite($))return Wz.stringifyNumber(q);let H="";if($<0)H="-",$*=U(-1);let z=U(60),G=[$%z];if($<60)G.unshift(0);else if($=($-G[0])/z,G.unshift($%z),$>=60)$=($-G[0])/z,G.unshift($);return H+G.map((X)=>String(X).padStart(2,"0")).join(":").replace(/000000\d*$/,"")}var Oz={identify:(q)=>typeof q==="bigint"||Number.isInteger(q),default:!0,tag:"tag:yaml.org,2002:int",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+$/,resolve:(q,$,{intAsBigInt:U})=>_$(q,U),stringify:BU},Dz={identify:(q)=>typeof q==="number",default:!0,tag:"tag:yaml.org,2002:float",format:"TIME",test:/^[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\.[0-9_]*$/,resolve:(q)=>_$(q,!1),stringify:BU},YU={identify:(q)=>q instanceof Date,default:!0,tag:"tag:yaml.org,2002:timestamp",test:RegExp("^([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})(?:(?:t|T|[ \\t]+)([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2}(\\.[0-9]+)?)(?:[ \\t]*(Z|[-+][012]?[0-9](?::[0-9]{2})?))?)?$"),resolve(q){let $=q.match(YU.test);if(!$)throw Error("!!timestamp expects a date, starting with yyyy-mm-dd");let[,U,H,z,G,X,Z]=$.map(Number),Q=$[7]?Number(($[7]+"00").substr(1,3)):0,J=Date.UTC(U,H-1,z,G||0,X||0,Z||0,Q),R=$[8];if(R&&R!=="Z"){let B=_$(R,!1);if(Math.abs(B)<30)B*=60;J-=60000*B}return new Date(J)},stringify:({value:q})=>q?.toISOString().replace(/(T00:00:00)?\.000Z$/,"")??""};_z.floatTime=Dz;_z.intTime=Oz;_z.timestamp=YU});var RU=O((Ez)=>{var wz=O0(),Pz=_q(),Az=D0(),Mz=x0(),Kz=Y$(),TU=XU(),V$=ZU(),Nq=JU(),Nz=Bq(),bz=L$(),Sz=wq(),jz=D$(),F$=I$(),Cz=[wz.map,Az.seq,Mz.string,Pz.nullTag,TU.trueTag,TU.falseTag,Nq.intBin,Nq.intOct,Nq.int,Nq.intHex,V$.floatNaN,V$.floatExp,V$.float,Kz.binary,Nz.merge,bz.omap,Sz.pairs,jz.set,F$.intTime,F$.floatTime,F$.timestamp];Ez.schema=Cz});var PU=O((mz)=>{var DU=O0(),gz=_q(),_U=D0(),yz=x0(),uz=H$(),w$=G$(),P$=Z$(),xz=r1(),hz=o1(),IU=Y$(),m0=Bq(),VU=L$(),FU=wq(),LU=RU(),wU=D$(),bq=I$(),WU=new Map([["core",xz.schema],["failsafe",[DU.map,_U.seq,yz.string]],["json",hz.schema],["yaml11",LU.schema],["yaml-1.1",LU.schema]]),OU={binary:IU.binary,bool:uz.boolTag,float:w$.float,floatExp:w$.floatExp,floatNaN:w$.floatNaN,floatTime:bq.floatTime,int:P$.int,intHex:P$.intHex,intOct:P$.intOct,intTime:bq.intTime,map:DU.map,merge:m0.merge,null:gz.nullTag,omap:VU.omap,pairs:FU.pairs,seq:_U.seq,set:wU.set,timestamp:bq.timestamp},kz={"tag:yaml.org,2002:binary":IU.binary,"tag:yaml.org,2002:merge":m0.merge,"tag:yaml.org,2002:omap":VU.omap,"tag:yaml.org,2002:pairs":FU.pairs,"tag:yaml.org,2002:set":wU.set,"tag:yaml.org,2002:timestamp":bq.timestamp};function vz(q,$,U){let H=WU.get($);if(H&&!q)return U&&!H.includes(m0.merge)?H.concat(m0.merge):H.slice();let z=H;if(!z)if(Array.isArray(q))z=[];else{let G=Array.from(WU.keys()).filter((X)=>X!=="yaml11").map((X)=>JSON.stringify(X)).join(", ");throw Error(`Unknown schema "${$}"; use one of ${G} or define customTags array`)}if(Array.isArray(q))for(let G of q)z=z.concat(G);else if(typeof q==="function")z=q(z.slice());if(U)z=z.concat(m0.merge);return z.reduce((G,X)=>{let Z=typeof X==="string"?OU[X]:X;if(!Z){let Q=JSON.stringify(X),J=Object.keys(OU).map((R)=>JSON.stringify(R)).join(", ");throw Error(`Unknown custom tag ${Q}; use one of ${J}`)}if(!G.includes(Z))G.push(Z);return G},[])}mz.coreKnownTags=kz;mz.getTags=vz});var K$=O((sz)=>{var A$=M(),lz=O0(),az=D0(),cz=x0(),Sq=PU(),iz=(q,$)=>q.key<$.key?-1:q.key>$.key?1:0;class M${constructor({compat:q,customTags:$,merge:U,resolveKnownTags:H,schema:z,sortMapEntries:G,toStringDefaults:X}){this.compat=Array.isArray(q)?Sq.getTags(q,"compat"):q?Sq.getTags(null,q):null,this.name=typeof z==="string"&&z||"core",this.knownTags=H?Sq.coreKnownTags:{},this.tags=Sq.getTags($,this.name,U),this.toStringOptions=X??null,Object.defineProperty(this,A$.MAP,{value:lz.map}),Object.defineProperty(this,A$.SCALAR,{value:cz.string}),Object.defineProperty(this,A$.SEQ,{value:az.seq}),this.sortMapEntries=typeof G==="function"?G:G===!0?iz:null}clone(){let q=Object.create(M$.prototype,Object.getOwnPropertyDescriptors(this));return q.tags=this.tags.slice(),q}}sz.Schema=M$});var AU=O((tz)=>{var nz=M(),N$=f0(),p0=j0();function oz(q,$){let U=[],H=$.directives===!0;if($.directives!==!1&&q.directives){let Q=q.directives.toString(q);if(Q)U.push(Q),H=!0;else if(q.directives.docStart)H=!0}if(H)U.push("---");let z=N$.createStringifyContext(q,$),{commentString:G}=z.options;if(q.commentBefore){if(U.length!==1)U.unshift("");let Q=G(q.commentBefore);U.unshift(p0.indentComment(Q,""))}let X=!1,Z=null;if(q.contents){if(nz.isNode(q.contents)){if(q.contents.spaceBefore&&H)U.push("");if(q.contents.commentBefore){let R=G(q.contents.commentBefore);U.push(p0.indentComment(R,""))}z.forceBlockIndent=!!q.comment,Z=q.contents.comment}let Q=Z?void 0:()=>X=!0,J=N$.stringify(q.contents,z,()=>Z=null,Q);if(Z)J+=p0.lineComment(J,"",G(Z));if((J[0]==="|"||J[0]===">")&&U[U.length-1]==="---")U[U.length-1]=`--- ${J}`;else U.push(J)}else U.push(N$.stringify(q.contents,z));if(q.directives?.docEnd)if(q.comment){let Q=G(q.comment);if(Q.includes(`
|
|
56
|
+
`))U.push("..."),U.push(p0.indentComment(Q,""));else U.push(`... ${Q}`)}else U.push("...");else{let Q=q.comment;if(Q&&X)Q=Q.replace(/^\n+/,"");if(Q){if((!X||Z)&&U[U.length-1]!=="")U.push("");U.push(p0.indentComment(G(Q),""))}}return U.join(`
|
|
57
|
+
`)+`
|
|
58
|
+
`}tz.stringifyDocument=oz});var d0=O((ZG)=>{var qG=b0(),I0=zq(),g=M(),$G=i(),UG=l(),HG=K$(),zG=AU(),b$=$q(),GG=iq(),XG=S0(),S$=cq();class j${constructor(q,$,U){this.commentBefore=null,this.comment=null,this.errors=[],this.warnings=[],Object.defineProperty(this,g.NODE_TYPE,{value:g.DOC});let H=null;if(typeof $==="function"||Array.isArray($))H=$;else if(U===void 0&&$)U=$,$=void 0;let z=Object.assign({intAsBigInt:!1,keepSourceTokens:!1,logLevel:"warn",prettyErrors:!0,strict:!0,stringKeys:!1,uniqueKeys:!0,version:"1.2"},U);this.options=z;let{version:G}=z;if(U?._directives){if(this.directives=U._directives.atDocument(),this.directives.yaml.explicit)G=this.directives.yaml.version}else this.directives=new S$.Directives({version:G});this.setSchema(G,U),this.contents=q===void 0?null:this.createNode(q,H,U)}clone(){let q=Object.create(j$.prototype,{[g.NODE_TYPE]:{value:g.DOC}});if(q.commentBefore=this.commentBefore,q.comment=this.comment,q.errors=this.errors.slice(),q.warnings=this.warnings.slice(),q.options=Object.assign({},this.options),this.directives)q.directives=this.directives.clone();if(q.schema=this.schema.clone(),q.contents=g.isNode(this.contents)?this.contents.clone(q.schema):this.contents,this.range)q.range=this.range.slice();return q}add(q){if(V0(this.contents))this.contents.add(q)}addIn(q,$){if(V0(this.contents))this.contents.addIn(q,$)}createAlias(q,$){if(!q.anchor){let U=b$.anchorNames(this);q.anchor=!$||U.has($)?b$.findNewAnchor($||"a",U):$}return new qG.Alias(q.anchor)}createNode(q,$,U){let H=void 0;if(typeof $==="function")q=$.call({"":q},"",q),H=$;else if(Array.isArray($)){let T=(I)=>typeof I==="number"||I instanceof String||I instanceof Number,L=$.filter(T).map(String);if(L.length>0)$=$.concat(L);H=$}else if(U===void 0&&$)U=$,$=void 0;let{aliasDuplicateObjects:z,anchorPrefix:G,flow:X,keepUndefined:Z,onTagObj:Q,tag:J}=U??{},{onAnchor:R,setAnchors:B,sourceObjects:Y}=b$.createNodeAnchors(this,G||"a"),W={aliasDuplicateObjects:z??!0,keepUndefined:Z??!1,onAnchor:R,onTagObj:Q,replacer:H,schema:this.schema,sourceObjects:Y},D=XG.createNode(q,J,W);if(X&&g.isCollection(D))D.flow=!0;return B(),D}createPair(q,$,U={}){let H=this.createNode(q,null,U),z=this.createNode($,null,U);return new $G.Pair(H,z)}delete(q){return V0(this.contents)?this.contents.delete(q):!1}deleteIn(q){if(I0.isEmptyPath(q)){if(this.contents==null)return!1;return this.contents=null,!0}return V0(this.contents)?this.contents.deleteIn(q):!1}get(q,$){return g.isCollection(this.contents)?this.contents.get(q,$):void 0}getIn(q,$){if(I0.isEmptyPath(q))return!$&&g.isScalar(this.contents)?this.contents.value:this.contents;return g.isCollection(this.contents)?this.contents.getIn(q,$):void 0}has(q){return g.isCollection(this.contents)?this.contents.has(q):!1}hasIn(q){if(I0.isEmptyPath(q))return this.contents!==void 0;return g.isCollection(this.contents)?this.contents.hasIn(q):!1}set(q,$){if(this.contents==null)this.contents=I0.collectionFromPath(this.schema,[q],$);else if(V0(this.contents))this.contents.set(q,$)}setIn(q,$){if(I0.isEmptyPath(q))this.contents=$;else if(this.contents==null)this.contents=I0.collectionFromPath(this.schema,Array.from(q),$);else if(V0(this.contents))this.contents.setIn(q,$)}setSchema(q,$={}){if(typeof q==="number")q=String(q);let U;switch(q){case"1.1":if(this.directives)this.directives.yaml.version="1.1";else this.directives=new S$.Directives({version:"1.1"});U={resolveKnownTags:!1,schema:"yaml-1.1"};break;case"1.2":case"next":if(this.directives)this.directives.yaml.version=q;else this.directives=new S$.Directives({version:q});U={resolveKnownTags:!0,schema:"core"};break;case null:if(this.directives)delete this.directives;U=null;break;default:{let H=JSON.stringify(q);throw Error(`Expected '1.1', '1.2' or null as first argument, but found: ${H}`)}}if($.schema instanceof Object)this.schema=$.schema;else if(U)this.schema=new HG.Schema(Object.assign(U,$));else throw Error("With a null YAML version, the { schema: Schema } option is required")}toJS({json:q,jsonArg:$,mapAsMap:U,maxAliasCount:H,onAnchor:z,reviver:G}={}){let X={anchors:new Map,doc:this,keep:!q,mapAsMap:U===!0,mapKeyWarned:!1,maxAliasCount:typeof H==="number"?H:100},Z=UG.toJS(this.contents,$??"",X);if(typeof z==="function")for(let{count:Q,res:J}of X.anchors.values())z(J,Q);return typeof G==="function"?GG.applyReviver(G,{"":Z},"",Z):Z}toJSON(q,$){return this.toJS({json:!0,jsonArg:q,mapAsMap:!1,onAnchor:$})}toString(q={}){if(this.errors.length>0)throw Error("Document with errors cannot be stringified");if("indent"in q&&(!Number.isInteger(q.indent)||Number(q.indent)<=0)){let $=JSON.stringify(q.indent);throw Error(`"indent" option must be a positive integer, not ${$}`)}return zG.stringifyDocument(this,q)}}function V0(q){if(g.isCollection(q))return!0;throw Error("Expected a YAML collection as document contents")}ZG.Document=j$});var l0=O((BG)=>{class jq extends Error{constructor(q,$,U,H){super();this.name=q,this.code=U,this.message=H,this.pos=$}}class MU extends jq{constructor(q,$,U){super("YAMLParseError",q,$,U)}}class KU extends jq{constructor(q,$,U){super("YAMLWarning",q,$,U)}}var JG=(q,$)=>(U)=>{if(U.pos[0]===-1)return;U.linePos=U.pos.map((Z)=>$.linePos(Z));let{line:H,col:z}=U.linePos[0];U.message+=` at line ${H}, column ${z}`;let G=z-1,X=q.substring($.lineStarts[H-1],$.lineStarts[H]).replace(/[\n\r]+$/,"");if(G>=60&&X.length>80){let Z=Math.min(G-39,X.length-79);X="…"+X.substring(Z),G-=Z-1}if(X.length>80)X=X.substring(0,79)+"…";if(H>1&&/^ *$/.test(X.substring(0,G))){let Z=q.substring($.lineStarts[H-2],$.lineStarts[H-1]);if(Z.length>80)Z=Z.substring(0,79)+`…
|
|
59
|
+
`;X=Z+X}if(/[^ ]/.test(X)){let Z=1,Q=U.linePos[1];if(Q?.line===H&&Q.col>z)Z=Math.max(1,Math.min(Q.col-z,80-G));let J=" ".repeat(G)+"^".repeat(Z);U.message+=`:
|
|
60
|
+
|
|
61
|
+
${X}
|
|
62
|
+
${J}
|
|
63
|
+
`}};BG.YAMLError=jq;BG.YAMLParseError=MU;BG.YAMLWarning=KU;BG.prettifyError=JG});var a0=O((OG)=>{function WG(q,{flow:$,indicator:U,next:H,offset:z,onError:G,parentIndent:X,startOnNewline:Z}){let Q=!1,J=Z,R=Z,B="",Y="",W=!1,D=!1,T=null,L=null,I=null,V=null,F=null,w=null,P=null;for(let _ of q){if(D){if(_.type!=="space"&&_.type!=="newline"&&_.type!=="comma")G(_.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space");D=!1}if(T){if(J&&_.type!=="comment"&&_.type!=="newline")G(T,"TAB_AS_INDENT","Tabs are not allowed as indentation");T=null}switch(_.type){case"space":if(!$&&(U!=="doc-start"||H?.type!=="flow-collection")&&_.source.includes("\t"))T=_;R=!0;break;case"comment":{if(!R)G(_,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let S=_.source.substring(1)||" ";if(!B)B=S;else B+=Y+S;Y="",J=!1;break}case"newline":if(J){if(B)B+=_.source;else if(!w||U!=="seq-item-ind")Q=!0}else Y+=_.source;if(J=!0,W=!0,L||I)V=_;R=!0;break;case"anchor":if(L)G(_,"MULTIPLE_ANCHORS","A node can have at most one anchor");if(_.source.endsWith(":"))G(_.offset+_.source.length-1,"BAD_ALIAS","Anchor ending in : is ambiguous",!0);L=_,P??(P=_.offset),J=!1,R=!1,D=!0;break;case"tag":{if(I)G(_,"MULTIPLE_TAGS","A node can have at most one tag");I=_,P??(P=_.offset),J=!1,R=!1,D=!0;break}case U:if(L||I)G(_,"BAD_PROP_ORDER",`Anchors and tags must be after the ${_.source} indicator`);if(w)G(_,"UNEXPECTED_TOKEN",`Unexpected ${_.source} in ${$??"collection"}`);w=_,J=U==="seq-item-ind"||U==="explicit-key-ind",R=!1;break;case"comma":if($){if(F)G(_,"UNEXPECTED_TOKEN",`Unexpected , in ${$}`);F=_,J=!1,R=!1;break}default:G(_,"UNEXPECTED_TOKEN",`Unexpected ${_.type} token`),J=!1,R=!1}}let A=q[q.length-1],K=A?A.offset+A.source.length:z;if(D&&H&&H.type!=="space"&&H.type!=="newline"&&H.type!=="comma"&&(H.type!=="scalar"||H.source!==""))G(H.offset,"MISSING_CHAR","Tags and anchors must be separated from the next token by white space");if(T&&(J&&T.indent<=X||H?.type==="block-map"||H?.type==="block-seq"))G(T,"TAB_AS_INDENT","Tabs are not allowed as indentation");return{comma:F,found:w,spaceBefore:Q,comment:B,hasNewline:W,anchor:L,tag:I,newlineAfterProp:V,end:K,start:P??K}}OG.resolveProps=WG});var Cq=O((_G)=>{function C$(q){if(!q)return null;switch(q.type){case"alias":case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":if(q.source.includes(`
|
|
64
|
+
`))return!0;if(q.end){for(let $ of q.end)if($.type==="newline")return!0}return!1;case"flow-collection":for(let $ of q.items){for(let U of $.start)if(U.type==="newline")return!0;if($.sep){for(let U of $.sep)if(U.type==="newline")return!0}if(C$($.key)||C$($.value))return!0}return!1;default:return!0}}_G.containsNewline=C$});var E$=O((wG)=>{var VG=Cq();function FG(q,$,U){if($?.type==="flow-collection"){let H=$.end[0];if(H.indent===q&&(H.source==="]"||H.source==="}")&&VG.containsNewline($))U(H,"BAD_INDENT","Flow end indicator should be more indented than parent",!0)}}wG.flowIndentCheck=FG});var f$=O((MG)=>{var NU=M();function AG(q,$,U){let{uniqueKeys:H}=q.options;if(H===!1)return!1;let z=typeof H==="function"?H:(G,X)=>G===X||NU.isScalar(G)&&NU.isScalar(X)&&G.value===X.value;return $.some((G)=>z(G.key,U))}MG.mapIncludes=AG});var EU=O((CG)=>{var bU=i(),NG=r(),SU=a0(),bG=Cq(),jU=E$(),SG=f$(),CU="All mapping items must start at the same column";function jG({composeNode:q,composeEmptyNode:$},U,H,z,G){let Z=new(G?.nodeClass??NG.YAMLMap)(U.schema);if(U.atRoot)U.atRoot=!1;let Q=H.offset,J=null;for(let R of H.items){let{start:B,key:Y,sep:W,value:D}=R,T=SU.resolveProps(B,{indicator:"explicit-key-ind",next:Y??W?.[0],offset:Q,onError:z,parentIndent:H.indent,startOnNewline:!0}),L=!T.found;if(L){if(Y){if(Y.type==="block-seq")z(Q,"BLOCK_AS_IMPLICIT_KEY","A block sequence may not be used as an implicit map key");else if("indent"in Y&&Y.indent!==H.indent)z(Q,"BAD_INDENT",CU)}if(!T.anchor&&!T.tag&&!W){if(J=T.end,T.comment)if(Z.comment)Z.comment+=`
|
|
65
|
+
`+T.comment;else Z.comment=T.comment;continue}if(T.newlineAfterProp||bG.containsNewline(Y))z(Y??B[B.length-1],"MULTILINE_IMPLICIT_KEY","Implicit keys need to be on a single line")}else if(T.found?.indent!==H.indent)z(Q,"BAD_INDENT",CU);U.atKey=!0;let I=T.end,V=Y?q(U,Y,T,z):$(U,I,B,null,T,z);if(U.schema.compat)jU.flowIndentCheck(H.indent,Y,z);if(U.atKey=!1,SG.mapIncludes(U,Z.items,V))z(I,"DUPLICATE_KEY","Map keys must be unique");let F=SU.resolveProps(W??[],{indicator:"map-value-ind",next:D,offset:V.range[2],onError:z,parentIndent:H.indent,startOnNewline:!Y||Y.type==="block-scalar"});if(Q=F.end,F.found){if(L){if(D?.type==="block-map"&&!F.hasNewline)z(Q,"BLOCK_AS_IMPLICIT_KEY","Nested mappings are not allowed in compact mappings");if(U.options.strict&&T.start<F.found.offset-1024)z(V.range,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit block mapping key")}let w=D?q(U,D,F,z):$(U,Q,W,null,F,z);if(U.schema.compat)jU.flowIndentCheck(H.indent,D,z);Q=w.range[2];let P=new bU.Pair(V,w);if(U.options.keepSourceTokens)P.srcToken=R;Z.items.push(P)}else{if(L)z(V.range,"MISSING_CHAR","Implicit map keys need to be followed by map values");if(F.comment)if(V.comment)V.comment+=`
|
|
66
|
+
`+F.comment;else V.comment=F.comment;let w=new bU.Pair(V);if(U.options.keepSourceTokens)w.srcToken=R;Z.items.push(w)}}if(J&&J<Q)z(J,"IMPOSSIBLE","Map comment with trailing content");return Z.range=[H.offset,Q,J??Q],Z}CG.resolveBlockMap=jG});var fU=O((xG)=>{var fG=n(),gG=a0(),yG=E$();function uG({composeNode:q,composeEmptyNode:$},U,H,z,G){let Z=new(G?.nodeClass??fG.YAMLSeq)(U.schema);if(U.atRoot)U.atRoot=!1;if(U.atKey)U.atKey=!1;let Q=H.offset,J=null;for(let{start:R,value:B}of H.items){let Y=gG.resolveProps(R,{indicator:"seq-item-ind",next:B,offset:Q,onError:z,parentIndent:H.indent,startOnNewline:!0});if(!Y.found)if(Y.anchor||Y.tag||B)if(B?.type==="block-seq")z(Y.end,"BAD_INDENT","All sequence items must start at the same column");else z(Q,"MISSING_CHAR","Sequence item without - indicator");else{if(J=Y.end,Y.comment)Z.comment=Y.comment;continue}let W=B?q(U,B,Y,z):$(U,Y.end,R,null,Y,z);if(U.schema.compat)yG.flowIndentCheck(H.indent,B,z);Q=W.range[2],Z.items.push(W)}return Z.range=[H.offset,Q,J??Q],Z}xG.resolveBlockSeq=uG});var F0=O((vG)=>{function kG(q,$,U,H){let z="";if(q){let G=!1,X="";for(let Z of q){let{source:Q,type:J}=Z;switch(J){case"space":G=!0;break;case"comment":{if(U&&!G)H(Z,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");let R=Q.substring(1)||" ";if(!z)z=R;else z+=X+R;X="";break}case"newline":if(z)X+=Q;G=!0;break;default:H(Z,"UNEXPECTED_TOKEN",`Unexpected ${J} at node end`)}$+=Q.length}}return{comment:z,offset:$}}vG.resolveEnd=kG});var uU=O((rG)=>{var pG=M(),dG=i(),gU=r(),lG=n(),aG=F0(),yU=a0(),cG=Cq(),iG=f$(),g$="Block collections are not allowed within flow collections",y$=(q)=>q&&(q.type==="block-map"||q.type==="block-seq");function sG({composeNode:q,composeEmptyNode:$},U,H,z,G){let X=H.start.source==="{",Z=X?"flow map":"flow sequence",J=new(G?.nodeClass??(X?gU.YAMLMap:lG.YAMLSeq))(U.schema);J.flow=!0;let R=U.atRoot;if(R)U.atRoot=!1;if(U.atKey)U.atKey=!1;let B=H.offset+H.start.source.length;for(let L=0;L<H.items.length;++L){let I=H.items[L],{start:V,key:F,sep:w,value:P}=I,A=yU.resolveProps(V,{flow:Z,indicator:"explicit-key-ind",next:F??w?.[0],offset:B,onError:z,parentIndent:H.indent,startOnNewline:!1});if(!A.found){if(!A.anchor&&!A.tag&&!w&&!P){if(L===0&&A.comma)z(A.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${Z}`);else if(L<H.items.length-1)z(A.start,"UNEXPECTED_TOKEN",`Unexpected empty item in ${Z}`);if(A.comment)if(J.comment)J.comment+=`
|
|
67
|
+
`+A.comment;else J.comment=A.comment;B=A.end;continue}if(!X&&U.options.strict&&cG.containsNewline(F))z(F,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line")}if(L===0){if(A.comma)z(A.comma,"UNEXPECTED_TOKEN",`Unexpected , in ${Z}`)}else{if(!A.comma)z(A.start,"MISSING_CHAR",`Missing , between ${Z} items`);if(A.comment){let K="";q:for(let _ of V)switch(_.type){case"comma":case"space":break;case"comment":K=_.source.substring(1);break q;default:break q}if(K){let _=J.items[J.items.length-1];if(pG.isPair(_))_=_.value??_.key;if(_.comment)_.comment+=`
|
|
68
|
+
`+K;else _.comment=K;A.comment=A.comment.substring(K.length+1)}}}if(!X&&!w&&!A.found){let K=P?q(U,P,A,z):$(U,A.end,w,null,A,z);if(J.items.push(K),B=K.range[2],y$(P))z(K.range,"BLOCK_IN_FLOW",g$)}else{U.atKey=!0;let K=A.end,_=F?q(U,F,A,z):$(U,K,V,null,A,z);if(y$(F))z(_.range,"BLOCK_IN_FLOW",g$);U.atKey=!1;let S=yU.resolveProps(w??[],{flow:Z,indicator:"map-value-ind",next:P,offset:_.range[2],onError:z,parentIndent:H.indent,startOnNewline:!1});if(S.found){if(!X&&!A.found&&U.options.strict){if(w)for(let j of w){if(j===S.found)break;if(j.type==="newline"){z(j,"MULTILINE_IMPLICIT_KEY","Implicit keys of flow sequence pairs need to be on a single line");break}}if(A.start<S.found.offset-1024)z(S.found,"KEY_OVER_1024_CHARS","The : indicator must be at most 1024 chars after the start of an implicit flow sequence key")}}else if(P)if("source"in P&&P.source?.[0]===":")z(P,"MISSING_CHAR",`Missing space after : in ${Z}`);else z(S.start,"MISSING_CHAR",`Missing , or : between ${Z} items`);let d=P?q(U,P,S,z):S.found?$(U,S.end,w,null,S,z):null;if(d){if(y$(P))z(d.range,"BLOCK_IN_FLOW",g$)}else if(S.comment)if(_.comment)_.comment+=`
|
|
69
|
+
`+S.comment;else _.comment=S.comment;let J0=new dG.Pair(_,d);if(U.options.keepSourceTokens)J0.srcToken=I;if(X){let j=J;if(iG.mapIncludes(U,j.items,_))z(K,"DUPLICATE_KEY","Map keys must be unique");j.items.push(J0)}else{let j=new gU.YAMLMap(U.schema);j.flow=!0,j.items.push(J0);let X1=(d??_).range;j.range=[_.range[0],X1[1],X1[2]],J.items.push(j)}B=d?d.range[2]:S.end}}let Y=X?"}":"]",[W,...D]=H.end,T=B;if(W?.source===Y)T=W.offset+W.source.length;else{let L=Z[0].toUpperCase()+Z.substring(1),I=R?`${L} must end with a ${Y}`:`${L} in block collection must be sufficiently indented and end with a ${Y}`;if(z(B,R?"MISSING_CHAR":"BAD_INDENT",I),W&&W.source.length!==1)D.unshift(W)}if(D.length>0){let L=aG.resolveEnd(D,T,U.options.strict,z);if(L.comment)if(J.comment)J.comment+=`
|
|
70
|
+
`+L.comment;else J.comment=L.comment;J.range=[H.offset,T,L.offset]}else J.range=[H.offset,T,T];return J}rG.resolveFlowCollection=sG});var xU=O((GX)=>{var oG=M(),tG=b(),eG=r(),qX=n(),$X=EU(),UX=fU(),HX=uU();function u$(q,$,U,H,z,G){let X=U.type==="block-map"?$X.resolveBlockMap(q,$,U,H,G):U.type==="block-seq"?UX.resolveBlockSeq(q,$,U,H,G):HX.resolveFlowCollection(q,$,U,H,G),Z=X.constructor;if(z==="!"||z===Z.tagName)return X.tag=Z.tagName,X;if(z)X.tag=z;return X}function zX(q,$,U,H,z){let G=H.tag,X=!G?null:$.directives.tagName(G.source,(Y)=>z(G,"TAG_RESOLVE_FAILED",Y));if(U.type==="block-seq"){let{anchor:Y,newlineAfterProp:W}=H,D=Y&&G?Y.offset>G.offset?Y:G:Y??G;if(D&&(!W||W.offset<D.offset))z(D,"MISSING_CHAR","Missing newline after block sequence props")}let Z=U.type==="block-map"?"map":U.type==="block-seq"?"seq":U.start.source==="{"?"map":"seq";if(!G||!X||X==="!"||X===eG.YAMLMap.tagName&&Z==="map"||X===qX.YAMLSeq.tagName&&Z==="seq")return u$(q,$,U,z,X);let Q=$.schema.tags.find((Y)=>Y.tag===X&&Y.collection===Z);if(!Q){let Y=$.schema.knownTags[X];if(Y?.collection===Z)$.schema.tags.push(Object.assign({},Y,{default:!1})),Q=Y;else{if(Y)z(G,"BAD_COLLECTION_TYPE",`${Y.tag} used for ${Z} collection, but expects ${Y.collection??"scalar"}`,!0);else z(G,"TAG_RESOLVE_FAILED",`Unresolved tag: ${X}`,!0);return u$(q,$,U,z,X)}}let J=u$(q,$,U,z,X,Q),R=Q.resolve?.(J,(Y)=>z(G,"TAG_RESOLVE_FAILED",Y),$.options)??J,B=oG.isNode(R)?R:new tG.Scalar(R);if(B.range=J.range,B.tag=X,Q?.format)B.format=Q.format;return B}GX.composeCollection=zX});var h$=O((BX)=>{var x$=b();function ZX(q,$,U){let H=$.offset,z=QX($,q.options.strict,U);if(!z)return{value:"",type:null,comment:"",range:[H,H,H]};let G=z.mode===">"?x$.Scalar.BLOCK_FOLDED:x$.Scalar.BLOCK_LITERAL,X=$.source?JX($.source):[],Z=X.length;for(let T=X.length-1;T>=0;--T){let L=X[T][1];if(L===""||L==="\r")Z=T;else break}if(Z===0){let T=z.chomp==="+"&&X.length>0?`
|
|
71
|
+
`.repeat(Math.max(1,X.length-1)):"",L=H+z.length;if($.source)L+=$.source.length;return{value:T,type:G,comment:z.comment,range:[H,L,L]}}let Q=$.indent+z.indent,J=$.offset+z.length,R=0;for(let T=0;T<Z;++T){let[L,I]=X[T];if(I===""||I==="\r"){if(z.indent===0&&L.length>Q)Q=L.length}else{if(L.length<Q)U(J+L.length,"MISSING_CHAR","Block scalars with more-indented leading empty lines must use an explicit indentation indicator");if(z.indent===0)Q=L.length;if(R=T,Q===0&&!q.atRoot)U(J,"BAD_INDENT","Block scalar values in collections must be indented");break}J+=L.length+I.length+1}for(let T=X.length-1;T>=Z;--T)if(X[T][0].length>Q)Z=T+1;let B="",Y="",W=!1;for(let T=0;T<R;++T)B+=X[T][0].slice(Q)+`
|
|
72
|
+
`;for(let T=R;T<Z;++T){let[L,I]=X[T];J+=L.length+I.length+1;let V=I[I.length-1]==="\r";if(V)I=I.slice(0,-1);if(I&&L.length<Q){let w=`Block scalar lines must not be less indented than their ${z.indent?"explicit indentation indicator":"first line"}`;U(J-I.length-(V?2:1),"BAD_INDENT",w),L=""}if(G===x$.Scalar.BLOCK_LITERAL)B+=Y+L.slice(Q)+I,Y=`
|
|
73
|
+
`;else if(L.length>Q||I[0]==="\t"){if(Y===" ")Y=`
|
|
74
|
+
`;else if(!W&&Y===`
|
|
75
|
+
`)Y=`
|
|
76
|
+
|
|
77
|
+
`;B+=Y+L.slice(Q)+I,Y=`
|
|
78
|
+
`,W=!0}else if(I==="")if(Y===`
|
|
79
|
+
`)B+=`
|
|
80
|
+
`;else Y=`
|
|
81
|
+
`;else B+=Y+I,Y=" ",W=!1}switch(z.chomp){case"-":break;case"+":for(let T=Z;T<X.length;++T)B+=`
|
|
82
|
+
`+X[T][0].slice(Q);if(B[B.length-1]!==`
|
|
83
|
+
`)B+=`
|
|
84
|
+
`;break;default:B+=`
|
|
85
|
+
`}let D=H+z.length+$.source.length;return{value:B,type:G,comment:z.comment,range:[H,D,D]}}function QX({offset:q,props:$},U,H){if($[0].type!=="block-scalar-header")return H($[0],"IMPOSSIBLE","Block scalar header not found"),null;let{source:z}=$[0],G=z[0],X=0,Z="",Q=-1;for(let Y=1;Y<z.length;++Y){let W=z[Y];if(!Z&&(W==="-"||W==="+"))Z=W;else{let D=Number(W);if(!X&&D)X=D;else if(Q===-1)Q=q+Y}}if(Q!==-1)H(Q,"UNEXPECTED_TOKEN",`Block scalar header includes extra characters: ${z}`);let J=!1,R="",B=z.length;for(let Y=1;Y<$.length;++Y){let W=$[Y];switch(W.type){case"space":J=!0;case"newline":B+=W.source.length;break;case"comment":if(U&&!J)H(W,"MISSING_CHAR","Comments must be separated from other tokens by white space characters");B+=W.source.length,R=W.source.substring(1);break;case"error":H(W,"UNEXPECTED_TOKEN",W.message),B+=W.source.length;break;default:{let D=`Unexpected token in block scalar header: ${W.type}`;H(W,"UNEXPECTED_TOKEN",D);let T=W.source;if(T&&typeof T==="string")B+=T.length}}}return{mode:G,indent:X,chomp:Z,comment:R,length:B}}function JX(q){let $=q.split(/\n( *)/),U=$[0],H=U.match(/^( *)/),G=[H?.[1]?[H[1],U.slice(H[1].length)]:["",U]];for(let X=1;X<$.length;X+=2)G.push([$[X],$[X+1]]);return G}BX.resolveBlockScalar=ZX});var v$=O((VX)=>{var k$=b(),TX=F0();function RX(q,$,U){let{offset:H,type:z,source:G,end:X}=q,Z,Q,J=(Y,W,D)=>U(H+Y,W,D);switch(z){case"scalar":Z=k$.Scalar.PLAIN,Q=LX(G,J);break;case"single-quoted-scalar":Z=k$.Scalar.QUOTE_SINGLE,Q=WX(G,J);break;case"double-quoted-scalar":Z=k$.Scalar.QUOTE_DOUBLE,Q=OX(G,J);break;default:return U(q,"UNEXPECTED_TOKEN",`Expected a flow scalar value, but found: ${z}`),{value:"",type:null,comment:"",range:[H,H+G.length,H+G.length]}}let R=H+G.length,B=TX.resolveEnd(X,R,$,U);return{value:Q,type:Z,comment:B.comment,range:[H,R,B.offset]}}function LX(q,$){let U="";switch(q[0]){case"\t":U="a tab character";break;case",":U="flow indicator character ,";break;case"%":U="directive indicator character %";break;case"|":case">":{U=`block scalar indicator ${q[0]}`;break}case"@":case"`":{U=`reserved character ${q[0]}`;break}}if(U)$(0,"BAD_SCALAR_START",`Plain value cannot start with ${U}`);return hU(q)}function WX(q,$){if(q[q.length-1]!=="'"||q.length===1)$(q.length,"MISSING_CHAR","Missing closing 'quote");return hU(q.slice(1,-1)).replace(/''/g,"'")}function hU(q){let $,U;try{$=new RegExp(`(.*?)(?<![ ])[ ]*\r?
|
|
86
|
+
`,"sy"),U=new RegExp(`[ ]*(.*?)(?:(?<![ ])[ ]*)?\r?
|
|
87
|
+
`,"sy")}catch{$=/(.*?)[ \t]*\r?\n/sy,U=/[ \t]*(.*?)[ \t]*\r?\n/sy}let H=$.exec(q);if(!H)return q;let z=H[1],G=" ",X=$.lastIndex;U.lastIndex=X;while(H=U.exec(q)){if(H[1]==="")if(G===`
|
|
88
|
+
`)z+=G;else G=`
|
|
89
|
+
`;else z+=G+H[1],G=" ";X=U.lastIndex}let Z=/[ \t]*(.*)/sy;return Z.lastIndex=X,H=Z.exec(q),z+G+(H?.[1]??"")}function OX(q,$){let U="";for(let H=1;H<q.length-1;++H){let z=q[H];if(z==="\r"&&q[H+1]===`
|
|
90
|
+
`)continue;if(z===`
|
|
91
|
+
`){let{fold:G,offset:X}=DX(q,H);U+=G,H=X}else if(z==="\\"){let G=q[++H],X=_X[G];if(X)U+=X;else if(G===`
|
|
92
|
+
`){G=q[H+1];while(G===" "||G==="\t")G=q[++H+1]}else if(G==="\r"&&q[H+1]===`
|
|
93
|
+
`){G=q[++H+1];while(G===" "||G==="\t")G=q[++H+1]}else if(G==="x"||G==="u"||G==="U"){let Z={x:2,u:4,U:8}[G];U+=IX(q,H+1,Z,$),H+=Z}else{let Z=q.substr(H-1,2);$(H-1,"BAD_DQ_ESCAPE",`Invalid escape sequence ${Z}`),U+=Z}}else if(z===" "||z==="\t"){let G=H,X=q[H+1];while(X===" "||X==="\t")X=q[++H+1];if(X!==`
|
|
94
|
+
`&&!(X==="\r"&&q[H+2]===`
|
|
95
|
+
`))U+=H>G?q.slice(G,H+1):z}else U+=z}if(q[q.length-1]!=='"'||q.length===1)$(q.length,"MISSING_CHAR",'Missing closing "quote');return U}function DX(q,$){let U="",H=q[$+1];while(H===" "||H==="\t"||H===`
|
|
96
|
+
`||H==="\r"){if(H==="\r"&&q[$+2]!==`
|
|
97
|
+
`)break;if(H===`
|
|
98
|
+
`)U+=`
|
|
99
|
+
`;$+=1,H=q[$+1]}if(!U)U=" ";return{fold:U,offset:$}}var _X={"0":"\x00",a:"\x07",b:"\b",e:"\x1B",f:"\f",n:`
|
|
100
|
+
`,r:"\r",t:"\t",v:"\v",N:"
",_:" ",L:"\u2028",P:"\u2029"," ":" ",'"':'"',"/":"/","\\":"\\","\t":"\t"};function IX(q,$,U,H){let z=q.substr($,U),X=z.length===U&&/^[0-9a-fA-F]+$/.test(z)?parseInt(z,16):NaN;if(isNaN(X)){let Z=q.substr($-2,U+2);return H($-2,"BAD_DQ_ESCAPE",`Invalid escape sequence ${Z}`),Z}return String.fromCodePoint(X)}VX.resolveFlowScalar=RX});var vU=O((NX)=>{var G0=M(),kU=b(),wX=h$(),PX=v$();function AX(q,$,U,H){let{value:z,type:G,comment:X,range:Z}=$.type==="block-scalar"?wX.resolveBlockScalar(q,$,H):PX.resolveFlowScalar($,q.options.strict,H),Q=U?q.directives.tagName(U.source,(B)=>H(U,"TAG_RESOLVE_FAILED",B)):null,J;if(q.options.stringKeys&&q.atKey)J=q.schema[G0.SCALAR];else if(Q)J=MX(q.schema,z,Q,U,H);else if($.type==="scalar")J=KX(q,z,$,H);else J=q.schema[G0.SCALAR];let R;try{let B=J.resolve(z,(Y)=>H(U??$,"TAG_RESOLVE_FAILED",Y),q.options);R=G0.isScalar(B)?B:new kU.Scalar(B)}catch(B){let Y=B instanceof Error?B.message:String(B);H(U??$,"TAG_RESOLVE_FAILED",Y),R=new kU.Scalar(z)}if(R.range=Z,R.source=z,G)R.type=G;if(Q)R.tag=Q;if(J.format)R.format=J.format;if(X)R.comment=X;return R}function MX(q,$,U,H,z){if(U==="!")return q[G0.SCALAR];let G=[];for(let Z of q.tags)if(!Z.collection&&Z.tag===U)if(Z.default&&Z.test)G.push(Z);else return Z;for(let Z of G)if(Z.test?.test($))return Z;let X=q.knownTags[U];if(X&&!X.collection)return q.tags.push(Object.assign({},X,{default:!1,test:void 0})),X;return z(H,"TAG_RESOLVE_FAILED",`Unresolved tag: ${U}`,U!=="tag:yaml.org,2002:str"),q[G0.SCALAR]}function KX({atKey:q,directives:$,schema:U},H,z,G){let X=U.tags.find((Z)=>(Z.default===!0||q&&Z.default==="key")&&Z.test?.test(H))||U[G0.SCALAR];if(U.compat){let Z=U.compat.find((Q)=>Q.default&&Q.test?.test(H))??U[G0.SCALAR];if(X.tag!==Z.tag){let Q=$.tagString(X.tag),J=$.tagString(Z.tag),R=`Value may be parsed as either ${Q} or ${J}`;G(z,"TAG_RESOLVE_FAILED",R,!0)}}return X}NX.composeScalar=AX});var mU=O((jX)=>{function SX(q,$,U){if($){U??(U=$.length);for(let H=U-1;H>=0;--H){let z=$[H];switch(z.type){case"space":case"comment":case"newline":q-=z.source.length;continue}z=$[++H];while(z?.type==="space")q+=z.source.length,z=$[++H];break}}return q}jX.emptyScalarPosition=SX});var lU=O((kX)=>{var EX=b0(),fX=M(),gX=xU(),pU=vU(),yX=F0(),uX=mU(),xX={composeNode:dU,composeEmptyNode:m$};function dU(q,$,U,H){let z=q.atKey,{spaceBefore:G,comment:X,anchor:Z,tag:Q}=U,J,R=!0;switch($.type){case"alias":if(J=hX(q,$,H),Z||Q)H($,"ALIAS_PROPS","An alias node must not specify any properties");break;case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"block-scalar":if(J=pU.composeScalar(q,$,Q,H),Z)J.anchor=Z.source.substring(1);break;case"block-map":case"block-seq":case"flow-collection":if(J=gX.composeCollection(xX,q,$,U,H),Z)J.anchor=Z.source.substring(1);break;default:{let B=$.type==="error"?$.message:`Unsupported token (type: ${$.type})`;H($,"UNEXPECTED_TOKEN",B),J=m$(q,$.offset,void 0,null,U,H),R=!1}}if(Z&&J.anchor==="")H(Z,"BAD_ALIAS","Anchor cannot be an empty string");if(z&&q.options.stringKeys&&(!fX.isScalar(J)||typeof J.value!=="string"||J.tag&&J.tag!=="tag:yaml.org,2002:str"))H(Q??$,"NON_STRING_KEY","With stringKeys, all keys must be strings");if(G)J.spaceBefore=!0;if(X)if($.type==="scalar"&&$.source==="")J.comment=X;else J.commentBefore=X;if(q.options.keepSourceTokens&&R)J.srcToken=$;return J}function m$(q,$,U,H,{spaceBefore:z,comment:G,anchor:X,tag:Z,end:Q},J){let R={type:"scalar",offset:uX.emptyScalarPosition($,U,H),indent:-1,source:""},B=pU.composeScalar(q,R,Z,J);if(X){if(B.anchor=X.source.substring(1),B.anchor==="")J(X,"BAD_ALIAS","Anchor cannot be an empty string")}if(z)B.spaceBefore=!0;if(G)B.comment=G,B.range[2]=Q;return B}function hX({options:q},{offset:$,source:U,end:H},z){let G=new EX.Alias(U.substring(1));if(G.source==="")z($,"BAD_ALIAS","Alias cannot be an empty string");if(G.source.endsWith(":"))z($+U.length-1,"BAD_ALIAS","Alias ending in : is ambiguous",!0);let X=$+U.length,Z=yX.resolveEnd(H,X,q.strict,z);if(G.range=[$,X,Z.offset],Z.comment)G.comment=Z.comment;return G}kX.composeEmptyNode=m$;kX.composeNode=dU});var cU=O((cX)=>{var pX=d0(),aU=lU(),dX=F0(),lX=a0();function aX(q,$,{offset:U,start:H,value:z,end:G},X){let Z=Object.assign({_directives:$},q),Q=new pX.Document(void 0,Z),J={atKey:!1,atRoot:!0,directives:Q.directives,options:Q.options,schema:Q.schema},R=lX.resolveProps(H,{indicator:"doc-start",next:z??G?.[0],offset:U,onError:X,parentIndent:0,startOnNewline:!0});if(R.found){if(Q.directives.docStart=!0,z&&(z.type==="block-map"||z.type==="block-seq")&&!R.hasNewline)X(R.end,"MISSING_CHAR","Block collection cannot start on same line with directives-end marker")}Q.contents=z?aU.composeNode(J,z,R,X):aU.composeEmptyNode(J,R.end,H,null,R,X);let B=Q.contents.range[2],Y=dX.resolveEnd(G,B,!1,X);if(Y.comment)Q.comment=Y.comment;return Q.range=[U,B,Y.offset],Q}cX.composeDoc=aX});var p$=O((eX)=>{var sX=e("process"),rX=cq(),nX=d0(),c0=l0(),iU=M(),oX=cU(),tX=F0();function i0(q){if(typeof q==="number")return[q,q+1];if(Array.isArray(q))return q.length===2?q:[q[0],q[1]];let{offset:$,source:U}=q;return[$,$+(typeof U==="string"?U.length:1)]}function sU(q){let $="",U=!1,H=!1;for(let z=0;z<q.length;++z){let G=q[z];switch(G[0]){case"#":$+=($===""?"":H?`
|
|
101
|
+
|
|
102
|
+
`:`
|
|
103
|
+
`)+(G.substring(1)||" "),U=!0,H=!1;break;case"%":if(q[z+1]?.[0]!=="#")z+=1;U=!1;break;default:if(!U)H=!0;U=!1}}return{comment:$,afterEmptyLine:H}}class rU{constructor(q={}){this.doc=null,this.atDirectives=!1,this.prelude=[],this.errors=[],this.warnings=[],this.onError=($,U,H,z)=>{let G=i0($);if(z)this.warnings.push(new c0.YAMLWarning(G,U,H));else this.errors.push(new c0.YAMLParseError(G,U,H))},this.directives=new rX.Directives({version:q.version||"1.2"}),this.options=q}decorate(q,$){let{comment:U,afterEmptyLine:H}=sU(this.prelude);if(U){let z=q.contents;if($)q.comment=q.comment?`${q.comment}
|
|
104
|
+
${U}`:U;else if(H||q.directives.docStart||!z)q.commentBefore=U;else if(iU.isCollection(z)&&!z.flow&&z.items.length>0){let G=z.items[0];if(iU.isPair(G))G=G.key;let X=G.commentBefore;G.commentBefore=X?`${U}
|
|
105
|
+
${X}`:U}else{let G=z.commentBefore;z.commentBefore=G?`${U}
|
|
106
|
+
${G}`:U}}if($)Array.prototype.push.apply(q.errors,this.errors),Array.prototype.push.apply(q.warnings,this.warnings);else q.errors=this.errors,q.warnings=this.warnings;this.prelude=[],this.errors=[],this.warnings=[]}streamInfo(){return{comment:sU(this.prelude).comment,directives:this.directives,errors:this.errors,warnings:this.warnings}}*compose(q,$=!1,U=-1){for(let H of q)yield*this.next(H);yield*this.end($,U)}*next(q){if(sX.env.LOG_STREAM)console.dir(q,{depth:null});switch(q.type){case"directive":this.directives.add(q.source,($,U,H)=>{let z=i0(q);z[0]+=$,this.onError(z,"BAD_DIRECTIVE",U,H)}),this.prelude.push(q.source),this.atDirectives=!0;break;case"document":{let $=oX.composeDoc(this.options,this.directives,q,this.onError);if(this.atDirectives&&!$.directives.docStart)this.onError(q,"MISSING_CHAR","Missing directives-end/doc-start indicator line");if(this.decorate($,!1),this.doc)yield this.doc;this.doc=$,this.atDirectives=!1;break}case"byte-order-mark":case"space":break;case"comment":case"newline":this.prelude.push(q.source);break;case"error":{let $=q.source?`${q.message}: ${JSON.stringify(q.source)}`:q.message,U=new c0.YAMLParseError(i0(q),"UNEXPECTED_TOKEN",$);if(this.atDirectives||!this.doc)this.errors.push(U);else this.doc.errors.push(U);break}case"doc-end":{if(!this.doc){this.errors.push(new c0.YAMLParseError(i0(q),"UNEXPECTED_TOKEN","Unexpected doc-end without preceding document"));break}this.doc.directives.docEnd=!0;let $=tX.resolveEnd(q.end,q.offset+q.source.length,this.doc.options.strict,this.onError);if(this.decorate(this.doc,!0),$.comment){let U=this.doc.comment;this.doc.comment=U?`${U}
|
|
107
|
+
${$.comment}`:$.comment}this.doc.range[2]=$.offset;break}default:this.errors.push(new c0.YAMLParseError(i0(q),"UNEXPECTED_TOKEN",`Unsupported token ${q.type}`))}}*end(q=!1,$=-1){if(this.doc)this.decorate(this.doc,!0),yield this.doc,this.doc=null;else if(q){let U=Object.assign({_directives:this.directives},this.options),H=new nX.Document(void 0,U);if(this.atDirectives)this.onError($,"MISSING_CHAR","Missing directives-end indicator line");H.range=[0,$,$],this.decorate(H,!1),yield H}}}eX.Composer=rU});var tU=O((Q5)=>{var $5=h$(),U5=v$(),H5=l0(),nU=E0();function z5(q,$=!0,U){if(q){let H=(z,G,X)=>{let Z=typeof z==="number"?z:Array.isArray(z)?z[0]:z.offset;if(U)U(Z,G,X);else throw new H5.YAMLParseError([Z,Z+1],G,X)};switch(q.type){case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return U5.resolveFlowScalar(q,$,H);case"block-scalar":return $5.resolveBlockScalar({options:{strict:$}},q,H)}}return null}function G5(q,$){let{implicitKey:U=!1,indent:H,inFlow:z=!1,offset:G=-1,type:X="PLAIN"}=$,Z=nU.stringifyString({type:X,value:q},{implicitKey:U,indent:H>0?" ".repeat(H):"",inFlow:z,options:{blockQuote:!0,lineWidth:-1}}),Q=$.end??[{type:"newline",offset:-1,indent:H,source:`
|
|
108
|
+
`}];switch(Z[0]){case"|":case">":{let J=Z.indexOf(`
|
|
109
|
+
`),R=Z.substring(0,J),B=Z.substring(J+1)+`
|
|
110
|
+
`,Y=[{type:"block-scalar-header",offset:G,indent:H,source:R}];if(!oU(Y,Q))Y.push({type:"newline",offset:-1,indent:H,source:`
|
|
111
|
+
`});return{type:"block-scalar",offset:G,indent:H,props:Y,source:B}}case'"':return{type:"double-quoted-scalar",offset:G,indent:H,source:Z,end:Q};case"'":return{type:"single-quoted-scalar",offset:G,indent:H,source:Z,end:Q};default:return{type:"scalar",offset:G,indent:H,source:Z,end:Q}}}function X5(q,$,U={}){let{afterKey:H=!1,implicitKey:z=!1,inFlow:G=!1,type:X}=U,Z="indent"in q?q.indent:null;if(H&&typeof Z==="number")Z+=2;if(!X)switch(q.type){case"single-quoted-scalar":X="QUOTE_SINGLE";break;case"double-quoted-scalar":X="QUOTE_DOUBLE";break;case"block-scalar":{let J=q.props[0];if(J.type!=="block-scalar-header")throw Error("Invalid block scalar header");X=J.source[0]===">"?"BLOCK_FOLDED":"BLOCK_LITERAL";break}default:X="PLAIN"}let Q=nU.stringifyString({type:X,value:$},{implicitKey:z||Z===null,indent:Z!==null&&Z>0?" ".repeat(Z):"",inFlow:G,options:{blockQuote:!0,lineWidth:-1}});switch(Q[0]){case"|":case">":Z5(q,Q);break;case'"':d$(q,Q,"double-quoted-scalar");break;case"'":d$(q,Q,"single-quoted-scalar");break;default:d$(q,Q,"scalar")}}function Z5(q,$){let U=$.indexOf(`
|
|
112
|
+
`),H=$.substring(0,U),z=$.substring(U+1)+`
|
|
113
|
+
`;if(q.type==="block-scalar"){let G=q.props[0];if(G.type!=="block-scalar-header")throw Error("Invalid block scalar header");G.source=H,q.source=z}else{let{offset:G}=q,X="indent"in q?q.indent:-1,Z=[{type:"block-scalar-header",offset:G,indent:X,source:H}];if(!oU(Z,"end"in q?q.end:void 0))Z.push({type:"newline",offset:-1,indent:X,source:`
|
|
114
|
+
`});for(let Q of Object.keys(q))if(Q!=="type"&&Q!=="offset")delete q[Q];Object.assign(q,{type:"block-scalar",indent:X,props:Z,source:z})}}function oU(q,$){if($)for(let U of $)switch(U.type){case"space":case"comment":q.push(U);break;case"newline":return q.push(U),!0}return!1}function d$(q,$,U){switch(q.type){case"scalar":case"double-quoted-scalar":case"single-quoted-scalar":q.type=U,q.source=$;break;case"block-scalar":{let H=q.props.slice(1),z=$.length;if(q.props[0].type==="block-scalar-header")z-=q.props[0].source.length;for(let G of H)G.offset+=z;delete q.props,Object.assign(q,{type:U,source:$,end:H});break}case"block-map":case"block-seq":{let z={type:"newline",offset:q.offset+$.length,indent:q.indent,source:`
|
|
115
|
+
`};delete q.items,Object.assign(q,{type:U,source:$,end:[z]});break}default:{let H="indent"in q?q.indent:-1,z="end"in q&&Array.isArray(q.end)?q.end.filter((G)=>G.type==="space"||G.type==="comment"||G.type==="newline"):[];for(let G of Object.keys(q))if(G!=="type"&&G!=="offset")delete q[G];Object.assign(q,{type:U,indent:H,source:$,end:z})}}}Q5.createScalarToken=G5;Q5.resolveAsScalar=z5;Q5.setScalarValue=X5});var eU=O((R5)=>{var T5=(q)=>("type"in q)?fq(q):Eq(q);function fq(q){switch(q.type){case"block-scalar":{let $="";for(let U of q.props)$+=fq(U);return $+q.source}case"block-map":case"block-seq":{let $="";for(let U of q.items)$+=Eq(U);return $}case"flow-collection":{let $=q.start.source;for(let U of q.items)$+=Eq(U);for(let U of q.end)$+=U.source;return $}case"document":{let $=Eq(q);if(q.end)for(let U of q.end)$+=U.source;return $}default:{let $=q.source;if("end"in q&&q.end)for(let U of q.end)$+=U.source;return $}}}function Eq({start:q,key:$,sep:U,value:H}){let z="";for(let G of q)z+=G.source;if($)z+=fq($);if(U)for(let G of U)z+=G.source;if(H)z+=fq(H);return z}R5.stringify=T5});var U2=O((O5)=>{var l$=Symbol("break visit"),W5=Symbol("skip children"),q2=Symbol("remove item");function X0(q,$){if("type"in q&&q.type==="document")q={start:q.start,value:q.value};$2(Object.freeze([]),q,$)}X0.BREAK=l$;X0.SKIP=W5;X0.REMOVE=q2;X0.itemAtPath=(q,$)=>{let U=q;for(let[H,z]of $){let G=U?.[H];if(G&&"items"in G)U=G.items[z];else return}return U};X0.parentCollection=(q,$)=>{let U=X0.itemAtPath(q,$.slice(0,-1)),H=$[$.length-1][0],z=U?.[H];if(z&&"items"in z)return z;throw Error("Parent collection not found")};function $2(q,$,U){let H=U($,q);if(typeof H==="symbol")return H;for(let z of["key","value"]){let G=$[z];if(G&&"items"in G){for(let X=0;X<G.items.length;++X){let Z=$2(Object.freeze(q.concat([[z,X]])),G.items[X],U);if(typeof Z==="number")X=Z-1;else if(Z===l$)return l$;else if(Z===q2)G.items.splice(X,1),X-=1}if(typeof H==="function"&&z==="key")H=H($,q)}}return typeof H==="function"?H($,q):H}O5.visit=X0});var gq=O((A5)=>{var a$=tU(),_5=eU(),I5=U2(),c$="\uFEFF",i$="\x02",s$="\x18",r$="\x1F",V5=(q)=>!!q&&("items"in q),F5=(q)=>!!q&&(q.type==="scalar"||q.type==="single-quoted-scalar"||q.type==="double-quoted-scalar"||q.type==="block-scalar");function w5(q){switch(q){case c$:return"<BOM>";case i$:return"<DOC>";case s$:return"<FLOW_END>";case r$:return"<SCALAR>";default:return JSON.stringify(q)}}function P5(q){switch(q){case c$:return"byte-order-mark";case i$:return"doc-mode";case s$:return"flow-error-end";case r$:return"scalar";case"---":return"doc-start";case"...":return"doc-end";case"":case`
|
|
116
|
+
`:case`\r
|
|
117
|
+
`:return"newline";case"-":return"seq-item-ind";case"?":return"explicit-key-ind";case":":return"map-value-ind";case"{":return"flow-map-start";case"}":return"flow-map-end";case"[":return"flow-seq-start";case"]":return"flow-seq-end";case",":return"comma"}switch(q[0]){case" ":case"\t":return"space";case"#":return"comment";case"%":return"directive-line";case"*":return"alias";case"&":return"anchor";case"!":return"tag";case"'":return"single-quoted-scalar";case'"':return"double-quoted-scalar";case"|":case">":return"block-scalar-header"}return null}A5.createScalarToken=a$.createScalarToken;A5.resolveAsScalar=a$.resolveAsScalar;A5.setScalarValue=a$.setScalarValue;A5.stringify=_5.stringify;A5.visit=I5.visit;A5.BOM=c$;A5.DOCUMENT=i$;A5.FLOW_END=s$;A5.SCALAR=r$;A5.isCollection=V5;A5.isScalar=F5;A5.prettyToken=w5;A5.tokenType=P5});var o$=O((v5)=>{var s0=gq();function x(q){switch(q){case void 0:case" ":case`
|
|
118
|
+
`:case"\r":case"\t":return!0;default:return!1}}var H2=new Set("0123456789ABCDEFabcdef"),h5=new Set("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-#;/?:@&=+$_.!~*'()"),yq=new Set(",[]{}"),k5=new Set(` ,[]{}
|
|
119
|
+
\r `),n$=(q)=>!q||k5.has(q);class z2{constructor(){this.atEnd=!1,this.blockScalarIndent=-1,this.blockScalarKeep=!1,this.buffer="",this.flowKey=!1,this.flowLevel=0,this.indentNext=0,this.indentValue=0,this.lineEndPos=null,this.next=null,this.pos=0}*lex(q,$=!1){if(q){if(typeof q!=="string")throw TypeError("source is not a string");this.buffer=this.buffer?this.buffer+q:q,this.lineEndPos=null}this.atEnd=!$;let U=this.next??"stream";while(U&&($||this.hasChars(1)))U=yield*this.parseNext(U)}atLineEnd(){let q=this.pos,$=this.buffer[q];while($===" "||$==="\t")$=this.buffer[++q];if(!$||$==="#"||$===`
|
|
120
|
+
`)return!0;if($==="\r")return this.buffer[q+1]===`
|
|
121
|
+
`;return!1}charAt(q){return this.buffer[this.pos+q]}continueScalar(q){let $=this.buffer[q];if(this.indentNext>0){let U=0;while($===" ")$=this.buffer[++U+q];if($==="\r"){let H=this.buffer[U+q+1];if(H===`
|
|
122
|
+
`||!H&&!this.atEnd)return q+U+1}return $===`
|
|
123
|
+
`||U>=this.indentNext||!$&&!this.atEnd?q+U:-1}if($==="-"||$==="."){let U=this.buffer.substr(q,3);if((U==="---"||U==="...")&&x(this.buffer[q+3]))return-1}return q}getLine(){let q=this.lineEndPos;if(typeof q!=="number"||q!==-1&&q<this.pos)q=this.buffer.indexOf(`
|
|
124
|
+
`,this.pos),this.lineEndPos=q;if(q===-1)return this.atEnd?this.buffer.substring(this.pos):null;if(this.buffer[q-1]==="\r")q-=1;return this.buffer.substring(this.pos,q)}hasChars(q){return this.pos+q<=this.buffer.length}setNext(q){return this.buffer=this.buffer.substring(this.pos),this.pos=0,this.lineEndPos=null,this.next=q,null}peek(q){return this.buffer.substr(this.pos,q)}*parseNext(q){switch(q){case"stream":return yield*this.parseStream();case"line-start":return yield*this.parseLineStart();case"block-start":return yield*this.parseBlockStart();case"doc":return yield*this.parseDocument();case"flow":return yield*this.parseFlowCollection();case"quoted-scalar":return yield*this.parseQuotedScalar();case"block-scalar":return yield*this.parseBlockScalar();case"plain-scalar":return yield*this.parsePlainScalar()}}*parseStream(){let q=this.getLine();if(q===null)return this.setNext("stream");if(q[0]===s0.BOM)yield*this.pushCount(1),q=q.substring(1);if(q[0]==="%"){let $=q.length,U=q.indexOf("#");while(U!==-1){let z=q[U-1];if(z===" "||z==="\t"){$=U-1;break}else U=q.indexOf("#",U+1)}while(!0){let z=q[$-1];if(z===" "||z==="\t")$-=1;else break}let H=(yield*this.pushCount($))+(yield*this.pushSpaces(!0));return yield*this.pushCount(q.length-H),this.pushNewline(),"stream"}if(this.atLineEnd()){let $=yield*this.pushSpaces(!0);return yield*this.pushCount(q.length-$),yield*this.pushNewline(),"stream"}return yield s0.DOCUMENT,yield*this.parseLineStart()}*parseLineStart(){let q=this.charAt(0);if(!q&&!this.atEnd)return this.setNext("line-start");if(q==="-"||q==="."){if(!this.atEnd&&!this.hasChars(4))return this.setNext("line-start");let $=this.peek(3);if(($==="---"||$==="...")&&x(this.charAt(3)))return yield*this.pushCount(3),this.indentValue=0,this.indentNext=0,$==="---"?"doc":"stream"}if(this.indentValue=yield*this.pushSpaces(!1),this.indentNext>this.indentValue&&!x(this.charAt(1)))this.indentNext=this.indentValue;return yield*this.parseBlockStart()}*parseBlockStart(){let[q,$]=this.peek(2);if(!$&&!this.atEnd)return this.setNext("block-start");if((q==="-"||q==="?"||q===":")&&x($)){let U=(yield*this.pushCount(1))+(yield*this.pushSpaces(!0));return this.indentNext=this.indentValue+1,this.indentValue+=U,yield*this.parseBlockStart()}return"doc"}*parseDocument(){yield*this.pushSpaces(!0);let q=this.getLine();if(q===null)return this.setNext("doc");let $=yield*this.pushIndicators();switch(q[$]){case"#":yield*this.pushCount(q.length-$);case void 0:return yield*this.pushNewline(),yield*this.parseLineStart();case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel=1,"flow";case"}":case"]":return yield*this.pushCount(1),"doc";case"*":return yield*this.pushUntil(n$),"doc";case'"':case"'":return yield*this.parseQuotedScalar();case"|":case">":return $+=yield*this.parseBlockScalarHeader(),$+=yield*this.pushSpaces(!0),yield*this.pushCount(q.length-$),yield*this.pushNewline(),yield*this.parseBlockScalar();default:return yield*this.parsePlainScalar()}}*parseFlowCollection(){let q,$,U=-1;do{if(q=yield*this.pushNewline(),q>0)$=yield*this.pushSpaces(!1),this.indentValue=U=$;else $=0;$+=yield*this.pushSpaces(!0)}while(q+$>0);let H=this.getLine();if(H===null)return this.setNext("flow");if(U!==-1&&U<this.indentNext&&H[0]!=="#"||U===0&&(H.startsWith("---")||H.startsWith("..."))&&x(H[3])){if(!(U===this.indentNext-1&&this.flowLevel===1&&(H[0]==="]"||H[0]==="}")))return this.flowLevel=0,yield s0.FLOW_END,yield*this.parseLineStart()}let z=0;while(H[z]===",")z+=yield*this.pushCount(1),z+=yield*this.pushSpaces(!0),this.flowKey=!1;switch(z+=yield*this.pushIndicators(),H[z]){case void 0:return"flow";case"#":return yield*this.pushCount(H.length-z),"flow";case"{":case"[":return yield*this.pushCount(1),this.flowKey=!1,this.flowLevel+=1,"flow";case"}":case"]":return yield*this.pushCount(1),this.flowKey=!0,this.flowLevel-=1,this.flowLevel?"flow":"doc";case"*":return yield*this.pushUntil(n$),"flow";case'"':case"'":return this.flowKey=!0,yield*this.parseQuotedScalar();case":":{let G=this.charAt(1);if(this.flowKey||x(G)||G===",")return this.flowKey=!1,yield*this.pushCount(1),yield*this.pushSpaces(!0),"flow"}default:return this.flowKey=!1,yield*this.parsePlainScalar()}}*parseQuotedScalar(){let q=this.charAt(0),$=this.buffer.indexOf(q,this.pos+1);if(q==="'")while($!==-1&&this.buffer[$+1]==="'")$=this.buffer.indexOf("'",$+2);else while($!==-1){let z=0;while(this.buffer[$-1-z]==="\\")z+=1;if(z%2===0)break;$=this.buffer.indexOf('"',$+1)}let U=this.buffer.substring(0,$),H=U.indexOf(`
|
|
125
|
+
`,this.pos);if(H!==-1){while(H!==-1){let z=this.continueScalar(H+1);if(z===-1)break;H=U.indexOf(`
|
|
126
|
+
`,z)}if(H!==-1)$=H-(U[H-1]==="\r"?2:1)}if($===-1){if(!this.atEnd)return this.setNext("quoted-scalar");$=this.buffer.length}return yield*this.pushToIndex($+1,!1),this.flowLevel?"flow":"doc"}*parseBlockScalarHeader(){this.blockScalarIndent=-1,this.blockScalarKeep=!1;let q=this.pos;while(!0){let $=this.buffer[++q];if($==="+")this.blockScalarKeep=!0;else if($>"0"&&$<="9")this.blockScalarIndent=Number($)-1;else if($!=="-")break}return yield*this.pushUntil(($)=>x($)||$==="#")}*parseBlockScalar(){let q=this.pos-1,$=0,U;q:for(let z=this.pos;U=this.buffer[z];++z)switch(U){case" ":$+=1;break;case`
|
|
127
|
+
`:q=z,$=0;break;case"\r":{let G=this.buffer[z+1];if(!G&&!this.atEnd)return this.setNext("block-scalar");if(G===`
|
|
128
|
+
`)break}default:break q}if(!U&&!this.atEnd)return this.setNext("block-scalar");if($>=this.indentNext){if(this.blockScalarIndent===-1)this.indentNext=$;else this.indentNext=this.blockScalarIndent+(this.indentNext===0?1:this.indentNext);do{let z=this.continueScalar(q+1);if(z===-1)break;q=this.buffer.indexOf(`
|
|
129
|
+
`,z)}while(q!==-1);if(q===-1){if(!this.atEnd)return this.setNext("block-scalar");q=this.buffer.length}}let H=q+1;U=this.buffer[H];while(U===" ")U=this.buffer[++H];if(U==="\t"){while(U==="\t"||U===" "||U==="\r"||U===`
|
|
130
|
+
`)U=this.buffer[++H];q=H-1}else if(!this.blockScalarKeep)do{let z=q-1,G=this.buffer[z];if(G==="\r")G=this.buffer[--z];let X=z;while(G===" ")G=this.buffer[--z];if(G===`
|
|
131
|
+
`&&z>=this.pos&&z+1+$>X)q=z;else break}while(!0);return yield s0.SCALAR,yield*this.pushToIndex(q+1,!0),yield*this.parseLineStart()}*parsePlainScalar(){let q=this.flowLevel>0,$=this.pos-1,U=this.pos-1,H;while(H=this.buffer[++U])if(H===":"){let z=this.buffer[U+1];if(x(z)||q&&yq.has(z))break;$=U}else if(x(H)){let z=this.buffer[U+1];if(H==="\r")if(z===`
|
|
132
|
+
`)U+=1,H=`
|
|
133
|
+
`,z=this.buffer[U+1];else $=U;if(z==="#"||q&&yq.has(z))break;if(H===`
|
|
134
|
+
`){let G=this.continueScalar(U+1);if(G===-1)break;U=Math.max(U,G-2)}}else{if(q&&yq.has(H))break;$=U}if(!H&&!this.atEnd)return this.setNext("plain-scalar");return yield s0.SCALAR,yield*this.pushToIndex($+1,!0),q?"flow":"doc"}*pushCount(q){if(q>0)return yield this.buffer.substr(this.pos,q),this.pos+=q,q;return 0}*pushToIndex(q,$){let U=this.buffer.slice(this.pos,q);if(U)return yield U,this.pos+=U.length,U.length;else if($)yield"";return 0}*pushIndicators(){switch(this.charAt(0)){case"!":return(yield*this.pushTag())+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"&":return(yield*this.pushUntil(n$))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators());case"-":case"?":case":":{let q=this.flowLevel>0,$=this.charAt(1);if(x($)||q&&yq.has($)){if(!q)this.indentNext=this.indentValue+1;else if(this.flowKey)this.flowKey=!1;return(yield*this.pushCount(1))+(yield*this.pushSpaces(!0))+(yield*this.pushIndicators())}}}return 0}*pushTag(){if(this.charAt(1)==="<"){let q=this.pos+2,$=this.buffer[q];while(!x($)&&$!==">")$=this.buffer[++q];return yield*this.pushToIndex($===">"?q+1:q,!1)}else{let q=this.pos+1,$=this.buffer[q];while($)if(h5.has($))$=this.buffer[++q];else if($==="%"&&H2.has(this.buffer[q+1])&&H2.has(this.buffer[q+2]))$=this.buffer[q+=3];else break;return yield*this.pushToIndex(q,!1)}}*pushNewline(){let q=this.buffer[this.pos];if(q===`
|
|
135
|
+
`)return yield*this.pushCount(1);else if(q==="\r"&&this.charAt(1)===`
|
|
136
|
+
`)return yield*this.pushCount(2);else return 0}*pushSpaces(q){let $=this.pos-1,U;do U=this.buffer[++$];while(U===" "||q&&U==="\t");let H=$-this.pos;if(H>0)yield this.buffer.substr(this.pos,H),this.pos=$;return H}*pushUntil(q){let $=this.pos,U=this.buffer[$];while(!q(U))U=this.buffer[++$];return yield*this.pushToIndex($,!1)}}v5.Lexer=z2});var t$=O((p5)=>{class G2{constructor(){this.lineStarts=[],this.addNewLine=(q)=>this.lineStarts.push(q),this.linePos=(q)=>{let $=0,U=this.lineStarts.length;while($<U){let z=$+U>>1;if(this.lineStarts[z]<q)$=z+1;else U=z}if(this.lineStarts[$]===q)return{line:$+1,col:1};if($===0)return{line:0,col:q};let H=this.lineStarts[$-1];return{line:$,col:q-H+1}}}}p5.LineCounter=G2});var e$=O((c5)=>{var l5=e("process"),X2=gq(),a5=o$();function o(q,$){for(let U=0;U<q.length;++U)if(q[U].type===$)return!0;return!1}function Z2(q){for(let $=0;$<q.length;++$)switch(q[$].type){case"space":case"comment":case"newline":break;default:return $}return-1}function J2(q){switch(q?.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":case"flow-collection":return!0;default:return!1}}function uq(q){switch(q.type){case"document":return q.start;case"block-map":{let $=q.items[q.items.length-1];return $.sep??$.start}case"block-seq":return q.items[q.items.length-1].start;default:return[]}}function w0(q){if(q.length===0)return[];let $=q.length;q:while(--$>=0)switch(q[$].type){case"doc-start":case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":case"newline":break q}while(q[++$]?.type==="space");return q.splice($,q.length)}function Q2(q){if(q.start.type==="flow-seq-start"){for(let $ of q.items)if($.sep&&!$.value&&!o($.start,"explicit-key-ind")&&!o($.sep,"map-value-ind")){if($.key)$.value=$.key;if(delete $.key,J2($.value))if($.value.end)Array.prototype.push.apply($.value.end,$.sep);else $.value.end=$.sep;else Array.prototype.push.apply($.start,$.sep);delete $.sep}}}class B2{constructor(q){this.atNewLine=!0,this.atScalar=!1,this.indent=0,this.offset=0,this.onKeyLine=!1,this.stack=[],this.source="",this.type="",this.lexer=new a5.Lexer,this.onNewLine=q}*parse(q,$=!1){if(this.onNewLine&&this.offset===0)this.onNewLine(0);for(let U of this.lexer.lex(q,$))yield*this.next(U);if(!$)yield*this.end()}*next(q){if(this.source=q,l5.env.LOG_TOKENS)console.log("|",X2.prettyToken(q));if(this.atScalar){this.atScalar=!1,yield*this.step(),this.offset+=q.length;return}let $=X2.tokenType(q);if(!$){let U=`Not a YAML token: ${q}`;yield*this.pop({type:"error",offset:this.offset,message:U,source:q}),this.offset+=q.length}else if($==="scalar")this.atNewLine=!1,this.atScalar=!0,this.type="scalar";else{switch(this.type=$,yield*this.step(),$){case"newline":if(this.atNewLine=!0,this.indent=0,this.onNewLine)this.onNewLine(this.offset+q.length);break;case"space":if(this.atNewLine&&q[0]===" ")this.indent+=q.length;break;case"explicit-key-ind":case"map-value-ind":case"seq-item-ind":if(this.atNewLine)this.indent+=q.length;break;case"doc-mode":case"flow-error-end":return;default:this.atNewLine=!1}this.offset+=q.length}}*end(){while(this.stack.length>0)yield*this.pop()}get sourceToken(){return{type:this.type,offset:this.offset,indent:this.indent,source:this.source}}*step(){let q=this.peek(1);if(this.type==="doc-end"&&q?.type!=="doc-end"){while(this.stack.length>0)yield*this.pop();this.stack.push({type:"doc-end",offset:this.offset,source:this.source});return}if(!q)return yield*this.stream();switch(q.type){case"document":return yield*this.document(q);case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return yield*this.scalar(q);case"block-scalar":return yield*this.blockScalar(q);case"block-map":return yield*this.blockMap(q);case"block-seq":return yield*this.blockSequence(q);case"flow-collection":return yield*this.flowCollection(q);case"doc-end":return yield*this.documentEnd(q)}yield*this.pop()}peek(q){return this.stack[this.stack.length-q]}*pop(q){let $=q??this.stack.pop();if(!$)yield{type:"error",offset:this.offset,source:"",message:"Tried to pop an empty stack"};else if(this.stack.length===0)yield $;else{let U=this.peek(1);if($.type==="block-scalar")$.indent="indent"in U?U.indent:0;else if($.type==="flow-collection"&&U.type==="document")$.indent=0;if($.type==="flow-collection")Q2($);switch(U.type){case"document":U.value=$;break;case"block-scalar":U.props.push($);break;case"block-map":{let H=U.items[U.items.length-1];if(H.value){U.items.push({start:[],key:$,sep:[]}),this.onKeyLine=!0;return}else if(H.sep)H.value=$;else{Object.assign(H,{key:$,sep:[]}),this.onKeyLine=!H.explicitKey;return}break}case"block-seq":{let H=U.items[U.items.length-1];if(H.value)U.items.push({start:[],value:$});else H.value=$;break}case"flow-collection":{let H=U.items[U.items.length-1];if(!H||H.value)U.items.push({start:[],key:$,sep:[]});else if(H.sep)H.value=$;else Object.assign(H,{key:$,sep:[]});return}default:yield*this.pop(),yield*this.pop($)}if((U.type==="document"||U.type==="block-map"||U.type==="block-seq")&&($.type==="block-map"||$.type==="block-seq")){let H=$.items[$.items.length-1];if(H&&!H.sep&&!H.value&&H.start.length>0&&Z2(H.start)===-1&&($.indent===0||H.start.every((z)=>z.type!=="comment"||z.indent<$.indent))){if(U.type==="document")U.end=H.start;else U.items.push({start:H.start});$.items.splice(-1,1)}}}}*stream(){switch(this.type){case"directive-line":yield{type:"directive",offset:this.offset,source:this.source};return;case"byte-order-mark":case"space":case"comment":case"newline":yield this.sourceToken;return;case"doc-mode":case"doc-start":{let q={type:"document",offset:this.offset,start:[]};if(this.type==="doc-start")q.start.push(this.sourceToken);this.stack.push(q);return}}yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML stream`,source:this.source}}*document(q){if(q.value)return yield*this.lineEnd(q);switch(this.type){case"doc-start":{if(Z2(q.start)!==-1)yield*this.pop(),yield*this.step();else q.start.push(this.sourceToken);return}case"anchor":case"tag":case"space":case"comment":case"newline":q.start.push(this.sourceToken);return}let $=this.startBlockValue(q);if($)this.stack.push($);else yield{type:"error",offset:this.offset,message:`Unexpected ${this.type} token in YAML document`,source:this.source}}*scalar(q){if(this.type==="map-value-ind"){let $=uq(this.peek(2)),U=w0($),H;if(q.end)H=q.end,H.push(this.sourceToken),delete q.end;else H=[this.sourceToken];let z={type:"block-map",offset:q.offset,indent:q.indent,items:[{start:U,key:q,sep:H}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=z}else yield*this.lineEnd(q)}*blockScalar(q){switch(this.type){case"space":case"comment":case"newline":q.props.push(this.sourceToken);return;case"scalar":if(q.source=this.source,this.atNewLine=!0,this.indent=0,this.onNewLine){let $=this.source.indexOf(`
|
|
137
|
+
`)+1;while($!==0)this.onNewLine(this.offset+$),$=this.source.indexOf(`
|
|
138
|
+
`,$)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(q){let $=q.items[q.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,$.value){let U="end"in $.value?$.value.end:void 0;if((Array.isArray(U)?U[U.length-1]:void 0)?.type==="comment")U?.push(this.sourceToken);else q.items.push({start:[this.sourceToken]})}else if($.sep)$.sep.push(this.sourceToken);else $.start.push(this.sourceToken);return;case"space":case"comment":if($.value)q.items.push({start:[this.sourceToken]});else if($.sep)$.sep.push(this.sourceToken);else{if(this.atIndentedComment($.start,q.indent)){let H=q.items[q.items.length-2]?.value?.end;if(Array.isArray(H)){Array.prototype.push.apply(H,$.start),H.push(this.sourceToken),q.items.pop();return}}$.start.push(this.sourceToken)}return}if(this.indent>=q.indent){let U=!this.onKeyLine&&this.indent===q.indent,H=U&&($.sep||$.explicitKey)&&this.type!=="seq-item-ind",z=[];if(H&&$.sep&&!$.value){let G=[];for(let X=0;X<$.sep.length;++X){let Z=$.sep[X];switch(Z.type){case"newline":G.push(X);break;case"space":break;case"comment":if(Z.indent>q.indent)G.length=0;break;default:G.length=0}}if(G.length>=2)z=$.sep.splice(G[1])}switch(this.type){case"anchor":case"tag":if(H||$.value)z.push(this.sourceToken),q.items.push({start:z}),this.onKeyLine=!0;else if($.sep)$.sep.push(this.sourceToken);else $.start.push(this.sourceToken);return;case"explicit-key-ind":if(!$.sep&&!$.explicitKey)$.start.push(this.sourceToken),$.explicitKey=!0;else if(H||$.value)z.push(this.sourceToken),q.items.push({start:z,explicitKey:!0});else this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]});this.onKeyLine=!0;return;case"map-value-ind":if($.explicitKey)if(!$.sep)if(o($.start,"newline"))Object.assign($,{key:null,sep:[this.sourceToken]});else{let G=w0($.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:G,key:null,sep:[this.sourceToken]}]})}else if($.value)q.items.push({start:[],key:null,sep:[this.sourceToken]});else if(o($.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:z,key:null,sep:[this.sourceToken]}]});else if(J2($.key)&&!o($.sep,"newline")){let G=w0($.start),X=$.key,Z=$.sep;Z.push(this.sourceToken),delete $.key,delete $.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:G,key:X,sep:Z}]})}else if(z.length>0)$.sep=$.sep.concat(z,this.sourceToken);else $.sep.push(this.sourceToken);else if(!$.sep)Object.assign($,{key:null,sep:[this.sourceToken]});else if($.value||H)q.items.push({start:z,key:null,sep:[this.sourceToken]});else if(o($.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]});else $.sep.push(this.sourceToken);this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let G=this.flowScalar(this.type);if(H||$.value)q.items.push({start:z,key:G,sep:[]}),this.onKeyLine=!0;else if($.sep)this.stack.push(G);else Object.assign($,{key:G,sep:[]}),this.onKeyLine=!0;return}default:{let G=this.startBlockValue(q);if(G){if(G.type==="block-seq"){if(!$.explicitKey&&$.sep&&!o($.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else if(U)q.items.push({start:z});this.stack.push(G);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(q){let $=q.items[q.items.length-1];switch(this.type){case"newline":if($.value){let U="end"in $.value?$.value.end:void 0;if((Array.isArray(U)?U[U.length-1]:void 0)?.type==="comment")U?.push(this.sourceToken);else q.items.push({start:[this.sourceToken]})}else $.start.push(this.sourceToken);return;case"space":case"comment":if($.value)q.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment($.start,q.indent)){let H=q.items[q.items.length-2]?.value?.end;if(Array.isArray(H)){Array.prototype.push.apply(H,$.start),H.push(this.sourceToken),q.items.pop();return}}$.start.push(this.sourceToken)}return;case"anchor":case"tag":if($.value||this.indent<=q.indent)break;$.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==q.indent)break;if($.value||o($.start,"seq-item-ind"))q.items.push({start:[this.sourceToken]});else $.start.push(this.sourceToken);return}if(this.indent>q.indent){let U=this.startBlockValue(q);if(U){this.stack.push(U);return}}yield*this.pop(),yield*this.step()}*flowCollection(q){let $=q.items[q.items.length-1];if(this.type==="flow-error-end"){let U;do yield*this.pop(),U=this.peek(1);while(U?.type==="flow-collection")}else if(q.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":if(!$||$.sep)q.items.push({start:[this.sourceToken]});else $.start.push(this.sourceToken);return;case"map-value-ind":if(!$||$.value)q.items.push({start:[],key:null,sep:[this.sourceToken]});else if($.sep)$.sep.push(this.sourceToken);else Object.assign($,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":if(!$||$.value)q.items.push({start:[this.sourceToken]});else if($.sep)$.sep.push(this.sourceToken);else $.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{let H=this.flowScalar(this.type);if(!$||$.value)q.items.push({start:[],key:H,sep:[]});else if($.sep)this.stack.push(H);else Object.assign($,{key:H,sep:[]});return}case"flow-map-end":case"flow-seq-end":q.end.push(this.sourceToken);return}let U=this.startBlockValue(q);if(U)this.stack.push(U);else yield*this.pop(),yield*this.step()}else{let U=this.peek(2);if(U.type==="block-map"&&(this.type==="map-value-ind"&&U.indent===q.indent||this.type==="newline"&&!U.items[U.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&U.type!=="flow-collection"){let H=uq(U),z=w0(H);Q2(q);let G=q.end.splice(1,q.end.length);G.push(this.sourceToken);let X={type:"block-map",offset:q.offset,indent:q.indent,items:[{start:z,key:q,sep:G}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=X}else yield*this.lineEnd(q)}}flowScalar(q){if(this.onNewLine){let $=this.source.indexOf(`
|
|
139
|
+
`)+1;while($!==0)this.onNewLine(this.offset+$),$=this.source.indexOf(`
|
|
140
|
+
`,$)+1}return{type:q,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(q){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;let $=uq(q),U=w0($);return U.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:U,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;let $=uq(q),U=w0($);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:U,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(q,$){if(this.type!=="comment")return!1;if(this.indent<=$)return!1;return q.every((U)=>U.type==="newline"||U.type==="space")}*documentEnd(q){if(this.type!=="doc-mode"){if(q.end)q.end.push(this.sourceToken);else q.end=[this.sourceToken];if(this.type==="newline")yield*this.pop()}}*lineEnd(q){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:if(q.end)q.end.push(this.sourceToken);else q.end=[this.sourceToken];if(this.type==="newline")yield*this.pop()}}}c5.Parser=B2});var W2=O(($Z)=>{var Y2=p$(),s5=d0(),r0=l0(),r5=tq(),n5=M(),o5=t$(),T2=e$();function R2(q){let $=q.prettyErrors!==!1;return{lineCounter:q.lineCounter||$&&new o5.LineCounter||null,prettyErrors:$}}function t5(q,$={}){let{lineCounter:U,prettyErrors:H}=R2($),z=new T2.Parser(U?.addNewLine),G=new Y2.Composer($),X=Array.from(G.compose(z.parse(q)));if(H&&U)for(let Z of X)Z.errors.forEach(r0.prettifyError(q,U)),Z.warnings.forEach(r0.prettifyError(q,U));if(X.length>0)return X;return Object.assign([],{empty:!0},G.streamInfo())}function L2(q,$={}){let{lineCounter:U,prettyErrors:H}=R2($),z=new T2.Parser(U?.addNewLine),G=new Y2.Composer($),X=null;for(let Z of G.compose(z.parse(q),!0,q.length))if(!X)X=Z;else if(X.options.logLevel!=="silent"){X.errors.push(new r0.YAMLParseError(Z.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}if(H&&U)X.errors.forEach(r0.prettifyError(q,U)),X.warnings.forEach(r0.prettifyError(q,U));return X}function e5(q,$,U){let H=void 0;if(typeof $==="function")H=$;else if(U===void 0&&$&&typeof $==="object")U=$;let z=L2(q,U);if(!z)return null;if(z.warnings.forEach((G)=>r5.warn(z.options.logLevel,G)),z.errors.length>0)if(z.options.logLevel!=="silent")throw z.errors[0];else z.errors=[];return z.toJS(Object.assign({reviver:H},U))}function qZ(q,$,U){let H=null;if(typeof $==="function"||Array.isArray($))H=$;else if(U===void 0&&$)U=$;if(typeof U==="string")U=U.length;if(typeof U==="number"){let z=Math.round(U);U=z<1?void 0:z>8?{indent:8}:{indent:z}}if(q===void 0){let{keepUndefined:z}=U??$??{};if(!z)return}if(n5.isDocument(q)&&!H)return q.toString(U);return new s5.Document(q,H,U).toString(U)}$Z.parse=e5;$Z.parseAllDocuments=t5;$Z.parseDocument=L2;$Z.stringify=qZ});var $1=O((_Z)=>{var XZ=p$(),ZZ=d0(),QZ=K$(),q1=l0(),JZ=b0(),t=M(),BZ=i(),YZ=b(),TZ=r(),RZ=n(),LZ=gq(),WZ=o$(),OZ=t$(),DZ=e$(),xq=W2(),O2=K0();_Z.Composer=XZ.Composer;_Z.Document=ZZ.Document;_Z.Schema=QZ.Schema;_Z.YAMLError=q1.YAMLError;_Z.YAMLParseError=q1.YAMLParseError;_Z.YAMLWarning=q1.YAMLWarning;_Z.Alias=JZ.Alias;_Z.isAlias=t.isAlias;_Z.isCollection=t.isCollection;_Z.isDocument=t.isDocument;_Z.isMap=t.isMap;_Z.isNode=t.isNode;_Z.isPair=t.isPair;_Z.isScalar=t.isScalar;_Z.isSeq=t.isSeq;_Z.Pair=BZ.Pair;_Z.Scalar=YZ.Scalar;_Z.YAMLMap=TZ.YAMLMap;_Z.YAMLSeq=RZ.YAMLSeq;_Z.CST=LZ;_Z.Lexer=WZ.Lexer;_Z.LineCounter=OZ.LineCounter;_Z.Parser=DZ.Parser;_Z.parse=xq.parse;_Z.parseAllDocuments=xq.parseAllDocuments;_Z.parseDocument=xq.parseDocument;_Z.stringify=xq.stringify;_Z.visit=O2.visit;_Z.visitAsync=O2.visitAsync});var _2={};pq(_2,{ProfileManager:()=>y});import{join as sZ}from"path";import{readFile as rZ,writeFile as hq,unlink as nZ,readdir as oZ,access as tZ}from"fs/promises";async function D2(q){try{return await tZ(q),!0}catch{return!1}}class y{profilesDir;constructor(q){this.profilesDir=q}async create(q,$){let U=this.path(q);await hq(U,Z0.stringify($),"utf-8")}async get(q){let $=this.path(q);if(!await D2($))return null;let U=await rZ($,"utf-8");return Z0.parse(U)}async set(q,$){let U=await this.get(q);if(!U)throw Error(`Profile '${q}' not found`);let H={...U,...$};await hq(this.path(q),Z0.stringify(H),"utf-8")}async append(q,$,U){let H=await this.get(q);if(!H)throw Error(`Profile '${q}' not found`);let z=H[$]||[];H[$]=[...z,...U],await hq(this.path(q),Z0.stringify(H),"utf-8")}async unset(q,$){let U=await this.get(q);if(!U)throw Error(`Profile '${q}' not found`);for(let H of $)delete U[H];await hq(this.path(q),Z0.stringify(U),"utf-8")}async remove(q){let $=this.path(q);if(await D2($))await nZ($)}async list(){try{return(await oZ(this.profilesDir)).filter(($)=>$.endsWith(".yaml")).map(($)=>$.replace(".yaml",""))}catch{return[]}}path(q){return sZ(this.profilesDir,`${q}.yaml`)}}var Z0;var kq=dq(()=>{Z0=A0($1(),1)});var w2={};pq(w2,{discoverBrowser:()=>U1});import{homedir as eZ}from"os";import{join as V2}from"path";import{readdir as q6,stat as $6}from"fs/promises";async function F2(q){try{return await $6(q),!0}catch{return!1}}async function z6(q){try{let U=(await q6(I2)).filter((H)=>H.startsWith(q+"-")).sort().reverse();for(let H of U){let z=V2(I2,H,H6[q]);if(await F2(z))return z}}catch{}return null}async function G6(q){for(let $ of U6[q])if(await F2($))return $;return null}async function U1(q){if(!["chromium","firefox","webkit"].includes(q))return null;let $=await z6(q);if($)return $;let U=await G6(q);if(U)return U;return null}var I2,U6,H6;var H1=dq(()=>{I2=V2(eZ(),".cache","ms-playwright"),U6={chromium:["/usr/bin/chromium","/usr/bin/chromium-browser","/usr/bin/google-chrome","/usr/bin/google-chrome-stable","/Applications/Google Chrome.app/Contents/MacOS/Google Chrome","/Applications/Chromium.app/Contents/MacOS/Chromium"],firefox:["/usr/bin/firefox","/Applications/Firefox.app/Contents/MacOS/firefox"],webkit:[]},H6={chromium:process.platform==="darwin"?"chrome-mac/Chromium.app/Contents/MacOS/Chromium":"chrome-linux/chrome",firefox:process.platform==="darwin"?"firefox/Nightly.app/Contents/MacOS/firefox":"firefox/firefox",webkit:process.platform==="darwin"?"pw_run.app/Contents/MacOS/pw_run":"playwright-webkit/pw_run.sh"}});Y0();kq();import{createServer as B6,createConnection as Y6}from"net";import{unlinkSync as vq,readdirSync as T6}from"fs";import{chromium as X6,firefox as Z6,webkit as Q6}from"playwright-core";import{createServer as A2}from"net";import{unlinkSync as P2}from"fs";function p(q){return Buffer.from(JSON.stringify(q)+`
|
|
141
|
+
`)}function Q0(q){return JSON.parse(q.toString().trim())}Y0();H1();async function J6(){return new Promise((q,$)=>{let U=A2();U.listen(0,()=>{let H=U.address(),z=typeof H==="object"&&H?H.port:0;U.close(()=>q(z))}),U.on("error",$)})}class z1{session;profile;browser=null;context=null;cdpPort=0;server=null;lastUsed=new Date;constructor(q,$){this.session=q,this.profile=$}async start(){let q=this.profile.browser||"chromium",$={chromium:X6,firefox:Z6,webkit:Q6}[q];if(!$)throw Error(`Unknown browser type: ${q}`);let U=this.profile.executable||await U1(q);if(!U)throw Error(`Could not find ${q} browser. Install via: npx playwright install ${q}`);return this.cdpPort=await J6(),this.browser=await $.launch({headless:this.profile.headless??!0,executablePath:U,args:[...this.profile.args||[],`--remote-debugging-port=${this.cdpPort}`]}),this.context=await this.browser.newContext({viewport:this.profile.viewport,locale:this.profile.locale,timezoneId:this.profile.timezone,colorScheme:this.profile.colorScheme,userAgent:this.profile.userAgent,ignoreHTTPSErrors:this.profile.ignoreHTTPSErrors,offline:this.profile.offline}),await this.context.newPage(),await this.startIpcServer(),this.cdpPort}async startIpcServer(){let q=N().sessionSocket(this.session);try{P2(q)}catch{}return this.server=A2(($)=>{$.on("data",async(U)=>{try{let H=Buffer.isBuffer(U)?U:Buffer.from(U),z=Q0(H),G=await this.handleRequest(z);$.write(p(G))}catch(H){$.write(p({type:"error",message:String(H)}))}})}),new Promise(($)=>{this.server.listen(q,()=>$())})}async handleRequest(q){switch(q.type){case"ping":return this.lastUsed=new Date,{type:"pong",cdpPort:this.cdpPort,status:this.browser?.isConnected()?"healthy":"unhealthy",lastUsed:this.lastUsed.toISOString()};case"shutdown":return await this.stop(),{type:"shutdownAck"};default:throw Error("Unknown request type")}}async stop(){if(this.context)await this.context.close(),this.context=null;if(this.browser)await this.browser.close(),this.browser=null;if(this.server){this.server.close();let q=N().sessionSocket(this.session);try{P2(q)}catch{}}}isHealthy(){return this.browser?.isConnected()??!1}}var M2=["happy","calm","swift","bright","quiet","bold","keen","warm","cool","fair","kind","wise","brave","quick","sharp","clear","fresh","light","soft","pure","neat","prime","true","fine"],K2=["fox","bear","owl","wolf","deer","hawk","lynx","crow","dove","hare","seal","wren","moth","swan","toad","wasp","crab","goat","lamb","newt","puma","ram","yak","elk"];function N2(){let q=M2[Math.floor(Math.random()*M2.length)],$=K2[Math.floor(Math.random()*K2.length)];return`${q}-${$}`}class b2{server=null;wrappers=new Map;profileManager;pollInterval=null;constructor(){let q=N();this.profileManager=new y(q.profiles)}async start(){let q=N();try{vq(q.watchdogSocket)}catch{}await this.discoverExistingWrappers(),this.server=B6(($)=>{this.handleConnection($)}),await new Promise(($)=>{this.server.listen(q.watchdogSocket,()=>$())}),this.startPolling()}async discoverExistingWrappers(){let q=N();try{let $=T6(q.sockets);for(let U of $){if(U==="watchdog.sock"||!U.endsWith(".sock"))continue;let H=U.replace(".sock",""),z=q.sessionSocket(H);try{if(await this.pingWrapper(z))console.error(`Recovered session: ${H}`)}catch{try{vq(z)}catch{}}}}catch{}}async pingWrapper(q){return new Promise(($)=>{let U=Y6(q),H=setTimeout(()=>{U.destroy(),$(null)},1000);U.on("connect",()=>{U.write(p({type:"ping"}))}),U.on("data",(z)=>{clearTimeout(H),U.end();let G=Buffer.isBuffer(z)?z:Buffer.from(z);$(Q0(G))}),U.on("error",()=>{clearTimeout(H),$(null)})})}startPolling(){this.pollInterval=setInterval(()=>this.pollWrappers(),5000)}async pollWrappers(){let q=N();for(let[$,U]of this.wrappers)if(!U.isHealthy()){console.error(`Session ${$} unhealthy, removing`),this.wrappers.delete($);try{vq(q.sessionSocket($))}catch{}}if(this.wrappers.size===0)setTimeout(()=>{if(this.wrappers.size===0)this.stop(),process.exit(0)},5000)}handleConnection(q){q.on("data",async($)=>{try{let U=Buffer.isBuffer($)?$:Buffer.from($),H=Q0(U),z=await this.handleRequest(H);q.write(p(z))}catch(U){q.write(p({ok:!1,error:String(U)}))}})}async handleRequest(q){switch(q.type){case"start":return this.handleStart(q.profile,q.session);case"stop":return this.handleStop(q.session);case"stopAll":return this.handleStopAll();case"list":return this.handleList();case"cdp":return this.handleCdp(q.session);default:return{ok:!1,error:"Unknown request type"}}}async handleStart(q,$){let U=await this.profileManager.get(q);if(!U)return{ok:!1,error:`Profile '${q}' not found`};let H=$||N2();if(this.wrappers.has(H))return{ok:!1,error:`Session '${H}' already exists`};let z=new z1(H,U);try{let G=await z.start();return this.wrappers.set(H,z),{ok:!0,session:H,cdpPort:G}}catch(G){return{ok:!1,error:String(G)}}}async handleStop(q){let $=this.wrappers.get(q);if(!$)return{ok:!1,error:`Session '${q}' not found`};return await $.stop(),this.wrappers.delete(q),{ok:!0}}async handleStopAll(){for(let[q,$]of this.wrappers)await $.stop(),this.wrappers.delete(q);return{ok:!0}}async handleList(){let q=[],$=N();for(let[U]of this.wrappers){let H=$.sessionSocket(U),z=await this.pingWrapper(H);if(z&&z.type==="pong")q.push({session:U,profile:"default",cdpPort:z.cdpPort,lastUsed:z.lastUsed,lastPulse:new Date().toISOString(),status:z.status})}return{ok:!0,instances:q}}async handleCdp(q){let $=q||this.wrappers.keys().next().value;if(!$)return{ok:!1,error:"No running sessions"};let H=N().sessionSocket($),z=await this.pingWrapper(H);if(z&&z.type==="pong")return{ok:!0,cdpPort:z.cdpPort};return{ok:!1,error:`Session '${$}' not responding`}}async stop(){if(this.pollInterval)clearInterval(this.pollInterval);for(let[,q]of this.wrappers)await q.stop();if(this.server){this.server.close();let q=N();try{vq(q.watchdogSocket)}catch{}}}}async function S2(){let q=new b2;process.on("SIGINT",async()=>{await q.stop(),process.exit(0)}),process.on("SIGTERM",async()=>{await q.stop(),process.exit(0)}),await q.start()}Y0();import{createConnection as R6}from"net";import{spawn as L6}from"child_process";import{existsSync as W6}from"fs";class G1{async ensureWatchdog(){let q=N();if(W6(q.watchdogSocket))try{await this.send({type:"list"});return}catch{}L6(process.execPath,[process.argv[1],"--watchdog"],{detached:!0,stdio:"ignore"}).unref();for(let U=0;U<50;U++){await new Promise((H)=>setTimeout(H,100));try{await this.send({type:"list"});return}catch{}}throw Error("Failed to start watchdog")}send(q){return new Promise(($,U)=>{let H=N(),z=R6(H.watchdogSocket),G=setTimeout(()=>{z.destroy(),U(Error("Request timeout"))},1e4);z.on("connect",()=>{z.write(p(q))}),z.on("data",(X)=>{clearTimeout(G),z.end();let Z=Buffer.isBuffer(X)?X:Buffer.from(X);$(Q0(Z))}),z.on("error",(X)=>{clearTimeout(G),U(X)})})}async start(q,$){return await this.ensureWatchdog(),this.send({type:"start",profile:q,session:$})}async stop(q){return this.send({type:"stop",session:q})}async stopAll(){return this.send({type:"stopAll"})}async list(){try{return await this.send({type:"list"})}catch{return{ok:!0,instances:[]}}}async cdp(q){return this.send({type:"cdp",session:q})}}kq();Y0();var P0=new G1;async function j2(q){await M0();let $=q.profile||"default",U=q.session||"",H=N(),z=new y(H.profiles);if(!await z.get($))if($==="default")await z.create("default",{browser:"chromium",headless:!0}),console.log("Created default profile (chromium, headless)");else console.error(`Profile '${$}' not found. Create it with: bwsr profile create ${$}`),process.exit(1);let X=await P0.start($,U);if(!X.ok)console.error(X.error),process.exit(1);if(q.verbose&&"session"in X)console.log(`Session: ${X.session}`),console.log(`CDP: ${X.cdpPort}`),console.log(`Profile: ${$}`);else if("session"in X)console.log(X.session)}async function C2(q){let $=await P0.stop(q);if(!$.ok)console.error($.error),process.exit(1)}async function E2(){let q=await P0.stopAll();if(!q.ok)console.error(q.error),process.exit(1)}async function f2(){let q=await P0.list();if(!q.ok)console.error(q.error),process.exit(1);if("instances"in q&&q.instances.length===0)return;if("instances"in q)for(let $ of q.instances)console.log(`${$.session} ${$.profile} ${$.cdpPort} ${$.status}`)}async function g2(q){let $=await P0.cdp(q);if(!$.ok)console.error($.error),process.exit(1);if("cdpPort"in $)console.log($.cdpPort)}async function y2(q){await M0();let $=N(),U=new y($.profiles);if(await U.get(q))console.error(`Profile '${q}' already exists`),process.exit(1);await U.create(q,{browser:"chromium",headless:!0})}async function u2(q,$){let U=N(),H=new y(U.profiles);try{await H.set(q,$)}catch(z){console.error(String(z)),process.exit(1)}}async function x2(q){let $=N();await new y($.profiles).remove(q)}async function h2(){let q=N(),U=await new y(q.profiles).list();for(let H of U)console.log(H)}async function k2(q){let $=N(),H=await new y($.profiles).get(q);if(!H)console.error(`Profile '${q}' not found`),process.exit(1);let{stringify:z}=await Promise.resolve().then(() => A0($1(),1));console.log(z(H))}var O6=["1.40","1.41","1.42","1.43","1.44","1.45","1.46","1.47","1.48","1.49","1.50","1.51","1.52","1.53","1.54","1.55","1.56","1.57"];function D6(q){let $=q.match(/^(\d+)\.(\d+)/);if(!$)return{supported:!1,message:"unknown version format"};let U=`${$[1]}.${$[2]}`,H=parseInt($[1]);if(H<1)return{supported:!1,message:"version too old"};if(O6.includes(U))return{supported:!0,message:"supported"};if(H>=1&&parseInt($[2])>57)return{supported:!0,message:"newer than tested, should work"};return{supported:!1,message:"version not in supported range (1.40+)"}}async function v2(){await M0();let q=N(),$=!1,U=[];console.log(`bwsr doctor
|
|
142
|
+
`),console.log("=".repeat(50)),console.log(`
|
|
143
|
+
[Runtime]`);let H=process.version;if(parseInt(H.slice(1).split(".")[0])>=18)console.log(` ✓ Node.js: ${H}`);else console.log(` ✗ Node.js: ${H} (requires >=18.0.0)`),$=!0,U.push("Upgrade Node.js to version 18 or later");let G=null;try{await import("playwright-core");try{let{createRequire:R}=await import("module"),Y=R(import.meta.url).resolve("playwright-core/package.json"),{readFile:W}=await import("fs/promises");G=JSON.parse(await W(Y,"utf-8")).version}catch{G="installed (version unknown)"}}catch{G=null}if(G){let R=typeof G==="string"&&G.match(/^\d/)?D6(G):{supported:!0,message:""},B=R.supported?"✓":"✗",Y=R.message&&R.message!=="supported"?` (${R.message})`:"";if(console.log(` ${B} playwright-core: ${G}${Y}`),!R.supported)$=!0}else console.log(" ✗ playwright-core: not found"),$=!0,U.push(`Install playwright-core:
|
|
144
|
+
npm install -g playwright-core
|
|
145
|
+
# or add to your project:
|
|
146
|
+
npm install playwright-core`);console.log(`
|
|
147
|
+
[Configuration]`),console.log(` Config dir: ${q.root}`);let X=new y(q.profiles),Z=await X.list();if(Z.length===0)await X.create("default",{browser:"chromium",headless:!0}),Z=["default"],console.log(" ✓ Profiles: default (created)");else console.log(` ✓ Profiles: ${Z.join(", ")}`);console.log(`
|
|
148
|
+
[Browsers]`);let{discoverBrowser:Q}=await Promise.resolve().then(() => (H1(),w2)),J=0;for(let R of["chromium","firefox","webkit"]){let B=await Q(R);if(B)console.log(` ✓ ${R}: ${B}`),J++;else console.log(` - ${R}: not found`)}if(J===0)$=!0,U.push(`Install browsers:
|
|
149
|
+
npx playwright install chromium
|
|
150
|
+
# or for all browsers:
|
|
151
|
+
npx playwright install`);console.log(`
|
|
152
|
+
[Status]`);try{let R=await P0.list();if("instances"in R)console.log(` Running instances: ${R.instances.length}`)}catch{console.log(" Watchdog: not running (starts automatically on 'bwsr start')")}if(console.log(`
|
|
153
|
+
`+"=".repeat(50)),$&&U.length>0){console.log(`
|
|
154
|
+
[Setup Required]
|
|
155
|
+
`);for(let R of U)console.log(` ${R}
|
|
156
|
+
`)}else if($)console.log(`
|
|
157
|
+
Some checks failed. Review the output above.
|
|
158
|
+
`);else console.log(`
|
|
159
|
+
✓ All checks passed. Ready to use bwsr.
|
|
160
|
+
`),console.log("Quick start:"),console.log(" bwsr start # Start browser daemon"),console.log(" bwsr cdp # Get CDP endpoint"),console.log(` bwsr stop --all # Stop all sessions
|
|
161
|
+
`)}var p2="0.3.0",n0=process.argv.slice(2);function _6(q){let $={};for(let U=0;U<q.length;U++){let H=q[U];if(H.startsWith("--")){let z=H.slice(2),G=q[U+1];if(G&&!G.startsWith("--"))$[z]=G,U++;else $[z]=!0}}return $}async function I6(){let q=n0[0],$=_6(n0);if($.watchdog){await S2();return}switch(q){case"start":await j2({profile:$.profile,session:$.session,verbose:Boolean($.verbose)});break;case"stop":if($.all)await E2();else{let U=n0[1];if(!U)console.error("Usage: bwsr stop <session> | --all"),process.exit(1);await C2(U)}break;case"list":await f2();break;case"cdp":await g2(n0[1]);break;case"profile":await V6(n0.slice(1),$);break;case"doctor":await v2();break;case"--version":case"-v":case"version":console.log(`bwsr v${p2}`);break;case"--help":case"-h":case"help":await m2();break;default:await m2();break}}async function V6(q,$){switch(q[0]){case"create":await y2(q[1]);break;case"set":{let H={};if($.browser)H.browser=$.browser;if($.executable)H.executable=$.executable;if($.headless!==void 0)H.headless=$.headless===!0||$.headless==="true";if($.headed!==void 0)H.headless=!1;if($.locale)H.locale=$.locale;if($.timezone)H.timezone=$.timezone;if($.viewport){let[z,G]=$.viewport.split("x").map(Number);H.viewport={width:z,height:G}}await u2(q[1],H);break}case"remove":await x2(q[1]);break;case"list":await h2();break;case"show":await k2(q[1]);break;default:console.error("Usage: bwsr profile <create|set|remove|list|show> [name] [flags]"),process.exit(1)}}async function m2(){let{getPaths:q}=await Promise.resolve().then(() => (Y0(),Q1)),{ProfileManager:$}=await Promise.resolve().then(() => (kq(),_2)),U=q(),G=(await new $(U.profiles).list()).length===0;if(console.log(`bwsr v${p2} - Browser daemon manager
|
|
162
|
+
|
|
163
|
+
Usage: bwsr <command> [options]
|
|
164
|
+
|
|
165
|
+
Commands:
|
|
166
|
+
start Start browser daemon (auto-creates default profile)
|
|
167
|
+
--profile <name> Use specific profile (default: "default")
|
|
168
|
+
--session <name> Custom session name
|
|
169
|
+
--verbose Show connection details
|
|
170
|
+
stop <session> Stop a specific session
|
|
171
|
+
stop --all Stop all sessions
|
|
172
|
+
list List running sessions
|
|
173
|
+
cdp [session] Get CDP endpoint URL
|
|
174
|
+
profile Manage browser profiles
|
|
175
|
+
create <name> Create new profile
|
|
176
|
+
set <name> [flags] Update profile settings
|
|
177
|
+
remove <name> Delete profile
|
|
178
|
+
list List all profiles
|
|
179
|
+
show <name> Show profile details
|
|
180
|
+
doctor Check system health and dependencies
|
|
181
|
+
version Show version`),G)console.log(`
|
|
182
|
+
${"=".repeat(50)}
|
|
183
|
+
Quick Start:
|
|
184
|
+
|
|
185
|
+
1. Start a browser session:
|
|
186
|
+
$ bwsr start
|
|
187
|
+
|
|
188
|
+
2. Get CDP endpoint for your tools:
|
|
189
|
+
$ bwsr cdp
|
|
190
|
+
|
|
191
|
+
3. Stop when done:
|
|
192
|
+
$ bwsr stop --all
|
|
193
|
+
|
|
194
|
+
Run 'bwsr doctor' to verify dependencies are installed.
|
|
195
|
+
${"=".repeat(50)}`);else console.log(`
|
|
196
|
+
Examples:
|
|
197
|
+
bwsr start --verbose # Start with default profile
|
|
198
|
+
bwsr cdp # Get CDP URL for tools
|
|
199
|
+
bwsr profile set default --headed # Switch to headed mode
|
|
200
|
+
bwsr stop --all # Clean up all sessions`)}I6().catch((q)=>{console.error(q.message),process.exit(1)});
|
package/package.json
CHANGED
|
@@ -1,20 +1,43 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bwsr",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Fast CLI for managing browser daemons via Playwright CDP",
|
|
5
|
+
"module": "src/index.ts",
|
|
6
|
+
"type": "module",
|
|
5
7
|
"bin": {
|
|
6
|
-
"bwsr": "./
|
|
8
|
+
"bwsr": "./dist/bwsr.js"
|
|
7
9
|
},
|
|
8
10
|
"scripts": {
|
|
9
|
-
"
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
"playwright-core": ">=1.40.0"
|
|
11
|
+
"build": "bun build src/index.ts --outfile dist/bwsr.js --target node --minify --external playwright-core --external chromium-bidi --external electron",
|
|
12
|
+
"dev": "bun run src/index.ts",
|
|
13
|
+
"test": "bun test"
|
|
13
14
|
},
|
|
14
15
|
"repository": {
|
|
15
16
|
"type": "git",
|
|
16
17
|
"url": "https://github.com/lagz0ne/pw-run"
|
|
17
18
|
},
|
|
18
|
-
"keywords": [
|
|
19
|
-
|
|
19
|
+
"keywords": [
|
|
20
|
+
"browser",
|
|
21
|
+
"playwright",
|
|
22
|
+
"cdp",
|
|
23
|
+
"automation",
|
|
24
|
+
"cli"
|
|
25
|
+
],
|
|
26
|
+
"license": "MIT",
|
|
27
|
+
"files": [
|
|
28
|
+
"dist/bwsr.js"
|
|
29
|
+
],
|
|
30
|
+
"engines": {
|
|
31
|
+
"node": ">=18.0.0"
|
|
32
|
+
},
|
|
33
|
+
"peerDependencies": {
|
|
34
|
+
"playwright-core": ">=1.40.0"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@types/bun": "latest",
|
|
38
|
+
"playwright-core": "^1.57.0"
|
|
39
|
+
},
|
|
40
|
+
"dependencies": {
|
|
41
|
+
"yaml": "^2.3.4"
|
|
42
|
+
}
|
|
20
43
|
}
|
package/bin/bwsr.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
const { execFileSync } = require("child_process");
|
|
3
|
-
const { join } = require("path");
|
|
4
|
-
|
|
5
|
-
const binPath = join(__dirname, "bwsr-binary");
|
|
6
|
-
|
|
7
|
-
try {
|
|
8
|
-
execFileSync(binPath, process.argv.slice(2), { stdio: "inherit" });
|
|
9
|
-
} catch (e) {
|
|
10
|
-
if (e.status !== undefined) {
|
|
11
|
-
process.exit(e.status);
|
|
12
|
-
}
|
|
13
|
-
console.error(`Failed to run bwsr: ${e.message}`);
|
|
14
|
-
process.exit(1);
|
|
15
|
-
}
|
package/scripts/postinstall.js
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
const { execSync } = require("child_process");
|
|
2
|
-
const { createWriteStream, chmodSync, existsSync, mkdirSync } = require("fs");
|
|
3
|
-
const { join } = require("path");
|
|
4
|
-
const https = require("https");
|
|
5
|
-
|
|
6
|
-
const VERSION = require("../package.json").version;
|
|
7
|
-
const REPO = "lagz0ne/pw-run";
|
|
8
|
-
|
|
9
|
-
const PLATFORMS = {
|
|
10
|
-
"darwin-x64": "bwsr-darwin-x64",
|
|
11
|
-
"darwin-arm64": "bwsr-darwin-arm64",
|
|
12
|
-
"linux-x64": "bwsr-linux-x64",
|
|
13
|
-
"linux-arm64": "bwsr-linux-arm64",
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
const key = `${process.platform}-${process.arch}`;
|
|
17
|
-
const artifact = PLATFORMS[key];
|
|
18
|
-
|
|
19
|
-
if (!artifact) {
|
|
20
|
-
console.error(`Unsupported platform: ${key}`);
|
|
21
|
-
process.exit(1);
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
const binDir = join(__dirname, "..", "bin");
|
|
25
|
-
const binPath = join(binDir, "bwsr-binary");
|
|
26
|
-
const url = `https://github.com/${REPO}/releases/download/v${VERSION}/${artifact}`;
|
|
27
|
-
|
|
28
|
-
if (existsSync(binPath)) {
|
|
29
|
-
process.exit(0);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
if (!existsSync(binDir)) {
|
|
33
|
-
mkdirSync(binDir, { recursive: true });
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
console.log(`Downloading bwsr v${VERSION} for ${key}...`);
|
|
37
|
-
|
|
38
|
-
function download(url, dest) {
|
|
39
|
-
return new Promise((resolve, reject) => {
|
|
40
|
-
https.get(url, (res) => {
|
|
41
|
-
if (res.statusCode === 302 || res.statusCode === 301) {
|
|
42
|
-
return download(res.headers.location, dest).then(resolve).catch(reject);
|
|
43
|
-
}
|
|
44
|
-
if (res.statusCode !== 200) {
|
|
45
|
-
return reject(new Error(`Failed to download: ${res.statusCode}`));
|
|
46
|
-
}
|
|
47
|
-
const file = createWriteStream(dest);
|
|
48
|
-
res.pipe(file);
|
|
49
|
-
file.on("finish", () => {
|
|
50
|
-
file.close();
|
|
51
|
-
chmodSync(dest, 0o755);
|
|
52
|
-
resolve();
|
|
53
|
-
});
|
|
54
|
-
}).on("error", reject);
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
download(url, binPath)
|
|
59
|
-
.then(() => console.log("Done!"))
|
|
60
|
-
.catch((err) => {
|
|
61
|
-
console.error(`Failed to download: ${err.message}`);
|
|
62
|
-
process.exit(1);
|
|
63
|
-
});
|