@form8ion/codecov 1.7.0 → 2.0.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/lib/index.cjs.js +50 -59
- package/lib/index.cjs.js.map +1 -1
- package/lib/index.es.js +50 -59
- package/lib/index.es.js.map +1 -1
- package/package.json +1 -1
package/lib/index.cjs.js
CHANGED
|
@@ -98,13 +98,57 @@ function coverageShouldBeReportedToCodecov({
|
|
|
98
98
|
return !!('Public' === visibility || apiAccessToken && 'github' === vcs.host);
|
|
99
99
|
}
|
|
100
100
|
|
|
101
|
-
function
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
101
|
+
async function fetchRepositoryDetails ({
|
|
102
|
+
vcs,
|
|
103
|
+
apiAccessToken
|
|
104
|
+
}) {
|
|
105
|
+
const {
|
|
106
|
+
body: {
|
|
107
|
+
repo
|
|
106
108
|
}
|
|
107
|
-
}
|
|
109
|
+
} = await got__default["default"](`https://codecov.io/api/gh/${vcs.owner}/${vcs.name}`, {
|
|
110
|
+
headers: {
|
|
111
|
+
Authorization: apiAccessToken
|
|
112
|
+
},
|
|
113
|
+
responseType: 'json'
|
|
114
|
+
});
|
|
115
|
+
return repo;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
async function scaffold$1({
|
|
119
|
+
vcs,
|
|
120
|
+
apiAccessToken
|
|
121
|
+
}) {
|
|
122
|
+
return _objectSpread2({}, ['github', 'gitlab', 'bitbucket'].includes(vcs === null || vcs === void 0 ? void 0 : vcs.host) && {
|
|
123
|
+
badges: {
|
|
124
|
+
status: {
|
|
125
|
+
coverage: {
|
|
126
|
+
img: `https://img.shields.io/codecov/c/${vcs.host}/${vcs.owner}/${vcs.name}?logo=codecov${apiAccessToken ? `&token=${(await fetchRepositoryDetails({
|
|
127
|
+
vcs,
|
|
128
|
+
apiAccessToken
|
|
129
|
+
})).image_token}` : ''}`,
|
|
130
|
+
link: `https://codecov.io/${vcs.host}/${vcs.owner}/${vcs.name}`,
|
|
131
|
+
text: 'Codecov'
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
async function scaffold({
|
|
139
|
+
vcs,
|
|
140
|
+
visibility,
|
|
141
|
+
apiAccessToken
|
|
142
|
+
}) {
|
|
143
|
+
if (!coverageShouldBeReportedToCodecov({
|
|
144
|
+
vcs,
|
|
145
|
+
visibility,
|
|
146
|
+
apiAccessToken
|
|
147
|
+
})) return {};
|
|
148
|
+
return _objectSpread2({}, await scaffold$1({
|
|
149
|
+
vcs,
|
|
150
|
+
apiAccessToken
|
|
151
|
+
}));
|
|
108
152
|
}
|
|
109
153
|
|
|
110
154
|
function getPathToWorkflowFile(projectRoot) {
|
|
@@ -188,59 +232,6 @@ async function liftReporting ({
|
|
|
188
232
|
return {};
|
|
189
233
|
}
|
|
190
234
|
|
|
191
|
-
async function fetchRepositoryDetails ({
|
|
192
|
-
vcs,
|
|
193
|
-
apiAccessToken
|
|
194
|
-
}) {
|
|
195
|
-
const {
|
|
196
|
-
body: {
|
|
197
|
-
repo
|
|
198
|
-
}
|
|
199
|
-
} = await got__default["default"](`https://codecov.io/api/gh/${vcs.owner}/${vcs.name}`, {
|
|
200
|
-
headers: {
|
|
201
|
-
Authorization: apiAccessToken
|
|
202
|
-
},
|
|
203
|
-
responseType: 'json'
|
|
204
|
-
});
|
|
205
|
-
return repo;
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
async function scaffold$1({
|
|
209
|
-
vcs,
|
|
210
|
-
apiAccessToken
|
|
211
|
-
}) {
|
|
212
|
-
return _objectSpread2({}, ['github', 'gitlab', 'bitbucket'].includes(vcs === null || vcs === void 0 ? void 0 : vcs.host) && {
|
|
213
|
-
badges: {
|
|
214
|
-
status: {
|
|
215
|
-
coverage: {
|
|
216
|
-
img: `https://img.shields.io/codecov/c/${vcs.host}/${vcs.owner}/${vcs.name}?logo=codecov${apiAccessToken ? `&token=${(await fetchRepositoryDetails({
|
|
217
|
-
vcs,
|
|
218
|
-
apiAccessToken
|
|
219
|
-
})).image_token}` : ''}`,
|
|
220
|
-
link: `https://codecov.io/${vcs.host}/${vcs.owner}/${vcs.name}`,
|
|
221
|
-
text: 'Codecov'
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
});
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
async function scaffold({
|
|
229
|
-
vcs,
|
|
230
|
-
visibility,
|
|
231
|
-
apiAccessToken
|
|
232
|
-
}) {
|
|
233
|
-
if (!coverageShouldBeReportedToCodecov({
|
|
234
|
-
vcs,
|
|
235
|
-
visibility,
|
|
236
|
-
apiAccessToken
|
|
237
|
-
})) return {};
|
|
238
|
-
return _objectSpread2(_objectSpread2({}, scaffold$2()), await scaffold$1({
|
|
239
|
-
vcs,
|
|
240
|
-
apiAccessToken
|
|
241
|
-
}));
|
|
242
|
-
}
|
|
243
|
-
|
|
244
235
|
function lift({
|
|
245
236
|
projectRoot,
|
|
246
237
|
packageManager
|
package/lib/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../src/predicates.js","../src/
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../src/predicates.js","../src/badge/repository-details-fetcher.js","../src/badge/scaffolder.js","../src/scaffolder.js","../src/reporter/ci-providers/github-workflows/lifter.js","../src/reporter/lifter.js","../src/lifter.js"],"sourcesContent":["export function coverageShouldBeReportedToCodecov({vcs, visibility, apiAccessToken}) {\n return !!('Public' === visibility || (apiAccessToken && 'github' === vcs.host));\n}\n","import got from '../../thirdparty-wrappers/got';\n\nexport default async function ({vcs, apiAccessToken}) {\n const {body: {repo}} = await got(\n `https://codecov.io/api/gh/${vcs.owner}/${vcs.name}`,\n {headers: {Authorization: apiAccessToken}, responseType: 'json'}\n );\n\n return repo;\n}\n","import fetchRepositoryDetails from './repository-details-fetcher';\n\nexport async function scaffold({vcs, apiAccessToken}) {\n return {\n ...['github', 'gitlab', 'bitbucket'].includes(vcs?.host) && {\n badges: {\n status: {\n coverage: {\n img: `https://img.shields.io/codecov/c/${vcs.host}/${vcs.owner}/${vcs.name}?logo=codecov${\n apiAccessToken\n ? `&token=${(await fetchRepositoryDetails({vcs, apiAccessToken})).image_token}`\n : ''\n }`,\n link: `https://codecov.io/${vcs.host}/${vcs.owner}/${vcs.name}`,\n text: 'Codecov'\n }\n }\n }\n }\n };\n}\n","import {coverageShouldBeReportedToCodecov} from './predicates';\nimport {scaffold as scaffoldBadge} from './badge';\n\nexport async function scaffold({vcs, visibility, apiAccessToken}) {\n if (!coverageShouldBeReportedToCodecov({vcs, visibility, apiAccessToken})) return {};\n\n return {\n ...await scaffoldBadge({vcs, apiAccessToken})\n };\n}\n","import {promises as fs} from 'fs';\nimport {dump, load} from 'js-yaml';\nimport {fileExists} from '@form8ion/core';\n\nfunction getPathToWorkflowFile(projectRoot) {\n return `${projectRoot}/.github/workflows/node-ci.yml`;\n}\n\nexport function test({projectRoot}) {\n return fileExists(getPathToWorkflowFile(projectRoot));\n}\n\nexport async function lift({projectRoot}) {\n const pathToWorkflowFile = getPathToWorkflowFile(projectRoot);\n\n const workflowDetails = load(await fs.readFile(pathToWorkflowFile, 'utf-8'));\n const {jobs: {verify: {steps}}} = workflowDetails;\n\n if (!steps.find(step => step.uses?.startsWith('codecov/codecov-action'))) {\n const stepsWithLegacyReportingRemoved = steps.filter(({run}) => 'npm run coverage:report' !== run);\n\n await fs.writeFile(\n pathToWorkflowFile,\n dump({\n ...workflowDetails,\n jobs: {\n ...workflowDetails.jobs,\n verify: {\n ...workflowDetails.jobs.verify,\n steps: [...stepsWithLegacyReportingRemoved, {uses: 'codecov/codecov-action@v2'}]\n }\n }\n })\n );\n }\n}\n","import {promises as fs} from 'fs';\n\nimport execa from '../../thirdparty-wrappers/execa';\nimport {lift as liftCiProvider, test as ciProviderIsLiftable} from './ci-providers';\n\nexport default async function ({projectRoot, packageManager}) {\n const pathToPackageJson = `${projectRoot}/package.json`;\n\n const [ciProviderCanBeLifted, existingPackageContents] = await Promise.all([\n ciProviderIsLiftable({projectRoot}),\n fs.readFile(pathToPackageJson, 'utf-8')\n ]);\n const {scripts, ...otherTopLevelProperties} = JSON.parse(existingPackageContents);\n const {'coverage:report': reportCoverageScript, ...otherScripts} = scripts;\n\n if (ciProviderCanBeLifted) await liftCiProvider({projectRoot});\n\n if (scripts['coverage:report']) {\n await fs.writeFile(pathToPackageJson, JSON.stringify({...otherTopLevelProperties, scripts: otherScripts}));\n\n await execa(packageManager, ['remove', 'codecov']);\n\n return {\n ...!ciProviderCanBeLifted && {\n nextSteps: [{\n summary: 'Configure modern reporting to Codecov on your CI service',\n description: 'Configure the [Codecov Uploader](https://docs.codecov.com/docs/codecov-uploader) appropriately'\n + ' for your CI Provider. If available for your provider, prefer one of the dedicated wrappers.'\n }]\n }\n };\n }\n\n return {};\n}\n","import {lift as liftReporting} from './reporter';\n\nexport function lift({projectRoot, packageManager}) {\n return liftReporting({projectRoot, packageManager});\n}\n"],"names":["coverageShouldBeReportedToCodecov","vcs","visibility","apiAccessToken","host","body","repo","got","owner","name","headers","Authorization","responseType","scaffold","includes","badges","status","coverage","img","fetchRepositoryDetails","image_token","link","text","scaffoldBadge","getPathToWorkflowFile","projectRoot","test","fileExists","lift","pathToWorkflowFile","workflowDetails","load","fs","readFile","jobs","verify","steps","find","step","uses","startsWith","stepsWithLegacyReportingRemoved","filter","run","writeFile","dump","packageManager","pathToPackageJson","ciProviderCanBeLifted","existingPackageContents","Promise","all","ciProviderIsLiftable","JSON","parse","scripts","otherTopLevelProperties","otherScripts","liftCiProvider","stringify","execa","nextSteps","summary","description","liftReporting"],"mappings":"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"}
|
package/lib/index.es.js
CHANGED
|
@@ -89,13 +89,57 @@ function coverageShouldBeReportedToCodecov({
|
|
|
89
89
|
return !!('Public' === visibility || apiAccessToken && 'github' === vcs.host);
|
|
90
90
|
}
|
|
91
91
|
|
|
92
|
-
function
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
92
|
+
async function fetchRepositoryDetails ({
|
|
93
|
+
vcs,
|
|
94
|
+
apiAccessToken
|
|
95
|
+
}) {
|
|
96
|
+
const {
|
|
97
|
+
body: {
|
|
98
|
+
repo
|
|
97
99
|
}
|
|
98
|
-
}
|
|
100
|
+
} = await got(`https://codecov.io/api/gh/${vcs.owner}/${vcs.name}`, {
|
|
101
|
+
headers: {
|
|
102
|
+
Authorization: apiAccessToken
|
|
103
|
+
},
|
|
104
|
+
responseType: 'json'
|
|
105
|
+
});
|
|
106
|
+
return repo;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
async function scaffold$1({
|
|
110
|
+
vcs,
|
|
111
|
+
apiAccessToken
|
|
112
|
+
}) {
|
|
113
|
+
return _objectSpread2({}, ['github', 'gitlab', 'bitbucket'].includes(vcs === null || vcs === void 0 ? void 0 : vcs.host) && {
|
|
114
|
+
badges: {
|
|
115
|
+
status: {
|
|
116
|
+
coverage: {
|
|
117
|
+
img: `https://img.shields.io/codecov/c/${vcs.host}/${vcs.owner}/${vcs.name}?logo=codecov${apiAccessToken ? `&token=${(await fetchRepositoryDetails({
|
|
118
|
+
vcs,
|
|
119
|
+
apiAccessToken
|
|
120
|
+
})).image_token}` : ''}`,
|
|
121
|
+
link: `https://codecov.io/${vcs.host}/${vcs.owner}/${vcs.name}`,
|
|
122
|
+
text: 'Codecov'
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
async function scaffold({
|
|
130
|
+
vcs,
|
|
131
|
+
visibility,
|
|
132
|
+
apiAccessToken
|
|
133
|
+
}) {
|
|
134
|
+
if (!coverageShouldBeReportedToCodecov({
|
|
135
|
+
vcs,
|
|
136
|
+
visibility,
|
|
137
|
+
apiAccessToken
|
|
138
|
+
})) return {};
|
|
139
|
+
return _objectSpread2({}, await scaffold$1({
|
|
140
|
+
vcs,
|
|
141
|
+
apiAccessToken
|
|
142
|
+
}));
|
|
99
143
|
}
|
|
100
144
|
|
|
101
145
|
function getPathToWorkflowFile(projectRoot) {
|
|
@@ -179,59 +223,6 @@ async function liftReporting ({
|
|
|
179
223
|
return {};
|
|
180
224
|
}
|
|
181
225
|
|
|
182
|
-
async function fetchRepositoryDetails ({
|
|
183
|
-
vcs,
|
|
184
|
-
apiAccessToken
|
|
185
|
-
}) {
|
|
186
|
-
const {
|
|
187
|
-
body: {
|
|
188
|
-
repo
|
|
189
|
-
}
|
|
190
|
-
} = await got(`https://codecov.io/api/gh/${vcs.owner}/${vcs.name}`, {
|
|
191
|
-
headers: {
|
|
192
|
-
Authorization: apiAccessToken
|
|
193
|
-
},
|
|
194
|
-
responseType: 'json'
|
|
195
|
-
});
|
|
196
|
-
return repo;
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
async function scaffold$1({
|
|
200
|
-
vcs,
|
|
201
|
-
apiAccessToken
|
|
202
|
-
}) {
|
|
203
|
-
return _objectSpread2({}, ['github', 'gitlab', 'bitbucket'].includes(vcs === null || vcs === void 0 ? void 0 : vcs.host) && {
|
|
204
|
-
badges: {
|
|
205
|
-
status: {
|
|
206
|
-
coverage: {
|
|
207
|
-
img: `https://img.shields.io/codecov/c/${vcs.host}/${vcs.owner}/${vcs.name}?logo=codecov${apiAccessToken ? `&token=${(await fetchRepositoryDetails({
|
|
208
|
-
vcs,
|
|
209
|
-
apiAccessToken
|
|
210
|
-
})).image_token}` : ''}`,
|
|
211
|
-
link: `https://codecov.io/${vcs.host}/${vcs.owner}/${vcs.name}`,
|
|
212
|
-
text: 'Codecov'
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
});
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
async function scaffold({
|
|
220
|
-
vcs,
|
|
221
|
-
visibility,
|
|
222
|
-
apiAccessToken
|
|
223
|
-
}) {
|
|
224
|
-
if (!coverageShouldBeReportedToCodecov({
|
|
225
|
-
vcs,
|
|
226
|
-
visibility,
|
|
227
|
-
apiAccessToken
|
|
228
|
-
})) return {};
|
|
229
|
-
return _objectSpread2(_objectSpread2({}, scaffold$2()), await scaffold$1({
|
|
230
|
-
vcs,
|
|
231
|
-
apiAccessToken
|
|
232
|
-
}));
|
|
233
|
-
}
|
|
234
|
-
|
|
235
226
|
function lift({
|
|
236
227
|
projectRoot,
|
|
237
228
|
packageManager
|
package/lib/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../src/predicates.js","../src/
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../src/predicates.js","../src/badge/repository-details-fetcher.js","../src/badge/scaffolder.js","../src/scaffolder.js","../src/reporter/ci-providers/github-workflows/lifter.js","../src/reporter/lifter.js","../src/lifter.js"],"sourcesContent":["export function coverageShouldBeReportedToCodecov({vcs, visibility, apiAccessToken}) {\n return !!('Public' === visibility || (apiAccessToken && 'github' === vcs.host));\n}\n","import got from '../../thirdparty-wrappers/got';\n\nexport default async function ({vcs, apiAccessToken}) {\n const {body: {repo}} = await got(\n `https://codecov.io/api/gh/${vcs.owner}/${vcs.name}`,\n {headers: {Authorization: apiAccessToken}, responseType: 'json'}\n );\n\n return repo;\n}\n","import fetchRepositoryDetails from './repository-details-fetcher';\n\nexport async function scaffold({vcs, apiAccessToken}) {\n return {\n ...['github', 'gitlab', 'bitbucket'].includes(vcs?.host) && {\n badges: {\n status: {\n coverage: {\n img: `https://img.shields.io/codecov/c/${vcs.host}/${vcs.owner}/${vcs.name}?logo=codecov${\n apiAccessToken\n ? `&token=${(await fetchRepositoryDetails({vcs, apiAccessToken})).image_token}`\n : ''\n }`,\n link: `https://codecov.io/${vcs.host}/${vcs.owner}/${vcs.name}`,\n text: 'Codecov'\n }\n }\n }\n }\n };\n}\n","import {coverageShouldBeReportedToCodecov} from './predicates';\nimport {scaffold as scaffoldBadge} from './badge';\n\nexport async function scaffold({vcs, visibility, apiAccessToken}) {\n if (!coverageShouldBeReportedToCodecov({vcs, visibility, apiAccessToken})) return {};\n\n return {\n ...await scaffoldBadge({vcs, apiAccessToken})\n };\n}\n","import {promises as fs} from 'fs';\nimport {dump, load} from 'js-yaml';\nimport {fileExists} from '@form8ion/core';\n\nfunction getPathToWorkflowFile(projectRoot) {\n return `${projectRoot}/.github/workflows/node-ci.yml`;\n}\n\nexport function test({projectRoot}) {\n return fileExists(getPathToWorkflowFile(projectRoot));\n}\n\nexport async function lift({projectRoot}) {\n const pathToWorkflowFile = getPathToWorkflowFile(projectRoot);\n\n const workflowDetails = load(await fs.readFile(pathToWorkflowFile, 'utf-8'));\n const {jobs: {verify: {steps}}} = workflowDetails;\n\n if (!steps.find(step => step.uses?.startsWith('codecov/codecov-action'))) {\n const stepsWithLegacyReportingRemoved = steps.filter(({run}) => 'npm run coverage:report' !== run);\n\n await fs.writeFile(\n pathToWorkflowFile,\n dump({\n ...workflowDetails,\n jobs: {\n ...workflowDetails.jobs,\n verify: {\n ...workflowDetails.jobs.verify,\n steps: [...stepsWithLegacyReportingRemoved, {uses: 'codecov/codecov-action@v2'}]\n }\n }\n })\n );\n }\n}\n","import {promises as fs} from 'fs';\n\nimport execa from '../../thirdparty-wrappers/execa';\nimport {lift as liftCiProvider, test as ciProviderIsLiftable} from './ci-providers';\n\nexport default async function ({projectRoot, packageManager}) {\n const pathToPackageJson = `${projectRoot}/package.json`;\n\n const [ciProviderCanBeLifted, existingPackageContents] = await Promise.all([\n ciProviderIsLiftable({projectRoot}),\n fs.readFile(pathToPackageJson, 'utf-8')\n ]);\n const {scripts, ...otherTopLevelProperties} = JSON.parse(existingPackageContents);\n const {'coverage:report': reportCoverageScript, ...otherScripts} = scripts;\n\n if (ciProviderCanBeLifted) await liftCiProvider({projectRoot});\n\n if (scripts['coverage:report']) {\n await fs.writeFile(pathToPackageJson, JSON.stringify({...otherTopLevelProperties, scripts: otherScripts}));\n\n await execa(packageManager, ['remove', 'codecov']);\n\n return {\n ...!ciProviderCanBeLifted && {\n nextSteps: [{\n summary: 'Configure modern reporting to Codecov on your CI service',\n description: 'Configure the [Codecov Uploader](https://docs.codecov.com/docs/codecov-uploader) appropriately'\n + ' for your CI Provider. If available for your provider, prefer one of the dedicated wrappers.'\n }]\n }\n };\n }\n\n return {};\n}\n","import {lift as liftReporting} from './reporter';\n\nexport function lift({projectRoot, packageManager}) {\n return liftReporting({projectRoot, packageManager});\n}\n"],"names":["coverageShouldBeReportedToCodecov","vcs","visibility","apiAccessToken","host","body","repo","got","owner","name","headers","Authorization","responseType","scaffold","includes","badges","status","coverage","img","fetchRepositoryDetails","image_token","link","text","scaffoldBadge","getPathToWorkflowFile","projectRoot","test","fileExists","lift","pathToWorkflowFile","workflowDetails","load","fs","readFile","jobs","verify","steps","find","step","uses","startsWith","stepsWithLegacyReportingRemoved","filter","run","writeFile","dump","packageManager","pathToPackageJson","ciProviderCanBeLifted","existingPackageContents","Promise","all","ciProviderIsLiftable","JSON","parse","scripts","otherTopLevelProperties","otherScripts","liftCiProvider","stringify","execa","nextSteps","summary","description","liftReporting"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAO,SAASA,iCAAT,CAA2C;AAACC,EAAAA,GAAD;AAAMC,EAAAA,UAAN;AAAkBC,EAAAA;AAAlB,CAA3C,EAA8E;AACnF,SAAO,CAAC,EAAE,aAAaD,UAAb,IAA4BC,cAAc,IAAI,aAAaF,GAAG,CAACG,IAAjE,CAAR;AACD;;ACAc,uCAAgB;AAACH,EAAAA,GAAD;AAAME,EAAAA;AAAN,CAAhB,EAAuC;AACpD,QAAM;AAACE,IAAAA,IAAI,EAAE;AAACC,MAAAA;AAAD;AAAP,MAAiB,MAAMC,GAAG,CAC7B,6BAA4BN,GAAG,CAACO,KAAM,IAAGP,GAAG,CAACQ,IAAK,EADrB,EAE9B;AAACC,IAAAA,OAAO,EAAE;AAACC,MAAAA,aAAa,EAAER;AAAhB,KAAV;AAA2CS,IAAAA,YAAY,EAAE;AAAzD,GAF8B,CAAhC;AAKA,SAAON,IAAP;AACD;;ACPM,eAAeO,UAAf,CAAwB;AAACZ,EAAAA,GAAD;AAAME,EAAAA;AAAN,CAAxB,EAA+C;AACpD,4BACK,CAAC,QAAD,EAAW,QAAX,EAAqB,WAArB,EAAkCW,QAAlC,CAA2Cb,GAA3C,aAA2CA,GAA3C,uBAA2CA,GAAG,CAAEG,IAAhD,KAAyD;AAC1DW,IAAAA,MAAM,EAAE;AACNC,MAAAA,MAAM,EAAE;AACNC,QAAAA,QAAQ,EAAE;AACRC,UAAAA,GAAG,EAAG,oCAAmCjB,GAAG,CAACG,IAAK,IAAGH,GAAG,CAACO,KAAM,IAAGP,GAAG,CAACQ,IAAK,gBACzEN,cAAc,GACT,UAAS,CAAC,MAAMgB,sBAAsB,CAAC;AAAClB,YAAAA,GAAD;AAAME,YAAAA;AAAN,WAAD,CAA7B,EAAsDiB,WAAY,EADlE,GAEV,EACL,EALO;AAMRC,UAAAA,IAAI,EAAG,sBAAqBpB,GAAG,CAACG,IAAK,IAAGH,GAAG,CAACO,KAAM,IAAGP,GAAG,CAACQ,IAAK,EANtD;AAORa,UAAAA,IAAI,EAAE;AAPE;AADJ;AADF;AADkD,GAD9D;AAiBD;;ACjBM,eAAeT,QAAf,CAAwB;AAACZ,EAAAA,GAAD;AAAMC,EAAAA,UAAN;AAAkBC,EAAAA;AAAlB,CAAxB,EAA2D;AAChE,MAAI,CAACH,iCAAiC,CAAC;AAACC,IAAAA,GAAD;AAAMC,IAAAA,UAAN;AAAkBC,IAAAA;AAAlB,GAAD,CAAtC,EAA2E,OAAO,EAAP;AAE3E,4BACK,MAAMoB,UAAa,CAAC;AAACtB,IAAAA,GAAD;AAAME,IAAAA;AAAN,GAAD,CADxB;AAGD;;ACLD,SAASqB,qBAAT,CAA+BC,WAA/B,EAA4C;AAC1C,SAAQ,GAAEA,WAAY,gCAAtB;AACD;;AAEM,SAASC,IAAT,CAAc;AAACD,EAAAA;AAAD,CAAd,EAA6B;AAClC,SAAOE,UAAU,CAACH,qBAAqB,CAACC,WAAD,CAAtB,CAAjB;AACD;AAEM,eAAeG,MAAf,CAAoB;AAACH,EAAAA;AAAD,CAApB,EAAmC;AACxC,QAAMI,kBAAkB,GAAGL,qBAAqB,CAACC,WAAD,CAAhD;AAEA,QAAMK,eAAe,GAAGC,IAAI,CAAC,MAAMC,QAAE,CAACC,QAAH,CAAYJ,kBAAZ,EAAgC,OAAhC,CAAP,CAA5B;AACA,QAAM;AAACK,IAAAA,IAAI,EAAE;AAACC,MAAAA,MAAM,EAAE;AAACC,QAAAA;AAAD;AAAT;AAAP,MAA4BN,eAAlC;;AAEA,MAAI,CAACM,KAAK,CAACC,IAAN,CAAWC,IAAI;AAAA;;AAAA,yBAAIA,IAAI,CAACC,IAAT,+CAAI,WAAWC,UAAX,CAAsB,wBAAtB,CAAJ;AAAA,GAAf,CAAL,EAA0E;AACxE,UAAMC,+BAA+B,GAAGL,KAAK,CAACM,MAAN,CAAa,CAAC;AAACC,MAAAA;AAAD,KAAD,KAAW,8BAA8BA,GAAtD,CAAxC;AAEA,UAAMX,QAAE,CAACY,SAAH,CACJf,kBADI,EAEJgB,IAAI,mCACCf,eADD;AAEFI,MAAAA,IAAI,oCACCJ,eAAe,CAACI,IADjB;AAEFC,QAAAA,MAAM,oCACDL,eAAe,CAACI,IAAhB,CAAqBC,MADpB;AAEJC,UAAAA,KAAK,EAAE,CAAC,GAAGK,+BAAJ,EAAqC;AAACF,YAAAA,IAAI,EAAE;AAAP,WAArC;AAFH;AAFJ;AAFF,OAFA,CAAN;AAaD;AACF;;;;AC9Bc,8BAAgB;AAACd,EAAAA,WAAD;AAAcqB,EAAAA;AAAd,CAAhB,EAA+C;AAC5D,QAAMC,iBAAiB,GAAI,GAAEtB,WAAY,eAAzC;AAEA,QAAM,CAACuB,qBAAD,EAAwBC,uBAAxB,IAAmD,MAAMC,OAAO,CAACC,GAAR,CAAY,CACzEC,IAAoB,CAAC;AAAC3B,IAAAA;AAAD,GAAD,CADqD,EAEzEO,QAAE,CAACC,QAAH,CAAYc,iBAAZ,EAA+B,OAA/B,CAFyE,CAAZ,CAA/D;;AAIA,sBAA8CM,IAAI,CAACC,KAAL,CAAWL,uBAAX,CAA9C;AAAA,QAAM;AAACM,IAAAA;AAAD,GAAN;AAAA,QAAmBC,uBAAnB;;AACA,QAAmDC,YAAnD,4BAAmEF,OAAnE;;AAEA,MAAIP,qBAAJ,EAA2B,MAAMU,MAAc,CAAC;AAACjC,IAAAA;AAAD,GAAD,CAApB;;AAE3B,MAAI8B,OAAO,CAAC,iBAAD,CAAX,EAAgC;AAC9B,UAAMvB,QAAE,CAACY,SAAH,CAAaG,iBAAb,EAAgCM,IAAI,CAACM,SAAL,mCAAmBH,uBAAnB;AAA4CD,MAAAA,OAAO,EAAEE;AAArD,OAAhC,CAAN;AAEA,UAAMG,KAAK,CAACd,cAAD,EAAiB,CAAC,QAAD,EAAW,SAAX,CAAjB,CAAX;AAEA,8BACK,CAACE,qBAAD,IAA0B;AAC3Ba,MAAAA,SAAS,EAAE,CAAC;AACVC,QAAAA,OAAO,EAAE,0DADC;AAEVC,QAAAA,WAAW,EAAE,mGACT;AAHM,OAAD;AADgB,KAD/B;AASD;;AAED,SAAO,EAAP;AACD;;AChCM,SAASnC,IAAT,CAAc;AAACH,EAAAA,WAAD;AAAcqB,EAAAA;AAAd,CAAd,EAA6C;AAClD,SAAOkB,aAAa,CAAC;AAACvC,IAAAA,WAAD;AAAcqB,IAAAA;AAAd,GAAD,CAApB;AACD;;;;"}
|