azot 5.0.0-alpha.15 → 5.0.0-alpha.17
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/dist/azt.cjs +1 -1
- package/dist/azt.mjs +1 -1
- package/dist/context-DHVMX6Ku.mjs +5 -0
- package/dist/context-NfAQSZZu.cjs +5 -0
- package/dist/context.cjs +1 -1
- package/dist/context.mjs +1 -1
- package/dist/main.cjs +1 -1
- package/dist/main.mjs +1 -1
- package/dist/vitest.cjs +1 -1
- package/dist/vitest.mjs +1 -1
- package/package.json +9 -9
- package/types/feedback.d.ts +33 -9
- package/dist/context-BqAwWBiX.mjs +0 -4
- package/dist/context-CAiNH_h9.cjs +0 -4
- /package/dist/{open--CgxJiTk.cjs → open-DWfOU8xH.cjs} +0 -0
- /package/dist/{open-DxsWuSWk.mjs → open-rfKrXH0-.mjs} +0 -0
package/dist/azt.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
const e=require(`./chunk-350yNsax.cjs`);let t=require(`node:util`),n=require(`node:fs`),r=require(`node:path`);r=e.n(r);let i=require(`tsdown`),a=require(`node:crypto`),o=require(`javascript-obfuscator`);o=e.n(o);const s=Buffer.from(`STX`,`utf8`),c=(e,t,r)=>{let i=(0,a.randomBytes)(32),o=(0,a.randomBytes)(16),c=(0,n.readFileSync)(t),l=(0,a.createCipheriv)(`aes-256-cbc`,i,o),u=Buffer.concat([l.update(c),l.final()]),d=(0,a.publicEncrypt)(e,i),f=Buffer.concat([s,o,d,u]);return r&&(0,n.writeFileSync)(r,f),{aesIv:o,encryptedAesKey:d,encryptedCode:u}},l=(e,t,r)=>{let i=(0,n.readFileSync)(t),o=s.byteLength;if(!i.subarray(0,o).equals(s))throw Error(`Incorrect file format`);let c=o,l=c+16,u=l+512,d=i.subarray(c,l),f=i.subarray(l,u),p=i.subarray(u),m=(0,a.createDecipheriv)(`aes-256-cbc`,(0,a.privateDecrypt)(e,f),d),h=Buffer.concat([m.update(p),m.final()]).toString(`utf8`);return r&&(0,n.writeFileSync)(r,h),h},u=(e,t)=>{let r=(0,n.readFileSync)(e,`utf8`);console.log(`Obfuscating...`),console.time(`Obfuscation complete in`);let i=o.default.obfuscate(r,{target:`node`,compact:!0,controlFlowFlattening:!0,controlFlowFlatteningThreshold:1,deadCodeInjection:!0,debugProtection:!0,identifierNamesGenerator:`hexadecimal`,numbersToExpressions:!0,selfDefending:!0,simplify:!0,splitStrings:!0,splitStringsChunkLength:5,stringArray:!0,stringArrayCallsTransform:!0,stringArrayCallsTransformThreshold:1,stringArrayEncoding:[`base64`],stringArrayIndexShift:!0,stringArrayRotate:!0,stringArrayShuffle:!0,stringArrayWrappersCount:2,stringArrayWrappersChainedCalls:!0,stringArrayWrappersType:`function`,stringArrayThreshold:1,transformObjectKeys:!0,unicodeEscapeSequence:!1});console.timeEnd(`Obfuscation complete in`);let a=i.getObfuscatedCode();return(0,n.writeFileSync)(t||e,a),a},d=(0,t.parseArgs)({allowPositionals:!0,allowNegative:!0,options:{input:{type:`string`,short:`i`,description:`Path to the input file`},key:{type:`string`,short:`k`,description:`Path to the key file (public for encrypt, private for decrypt)`},output:{type:`string`,short:`o`,description:`Path to the output file`},format:{type:`string`,short:`f`,description:`Output format`},watch:{type:`boolean`,description:`Watch file changes`},minify:{type:`boolean`,description:`Minify output`},obfuscate:{type:`boolean`,description:`Obfuscate output`},encrypt:{type:`boolean`,description:`Encrypt extension source code (.js will be packed inside .stx)`},decrypt:{type:`boolean`,description:`Decrypt encrypted extension`}}}),f=()=>{let e=[process.cwd(),r.default.join(process.cwd(),`src`),r.default.join(process.cwd(),`lib`)];for(let t of e){let e=(0,n.readdirSync)(t).filter(e=>!e.endsWith(`.d.ts`)).filter(e=>new Set([`.ts`,`.js`,`.cjs`,`.mjs`]).has(r.default.extname(e))),i=e=>r.default.basename(e,r.default.extname(e)),a=e.find(e=>i(e)===`index`)||e.find(e=>i(e)===`main`)||e[0];if(a)return r.default.join(t,a)}};(async()=>{let[e,...t]=d.positionals,a=d.values.input||t[0]||f();if(!a)throw Error(`No entry file found`);if(e===`build`||e===`pack`){let t=typeof d.values.minify==`boolean`?d.values.minify:!0
|
|
2
|
+
const e=require(`./chunk-350yNsax.cjs`);let t=require(`node:util`),n=require(`node:fs`),r=require(`node:path`);r=e.n(r);let i=require(`tsdown`),a=require(`node:crypto`),o=require(`javascript-obfuscator`);o=e.n(o);const s=Buffer.from(`STX`,`utf8`),c=(e,t,r)=>{let i=(0,a.randomBytes)(32),o=(0,a.randomBytes)(16),c=(0,n.readFileSync)(t),l=(0,a.createCipheriv)(`aes-256-cbc`,i,o),u=Buffer.concat([l.update(c),l.final()]),d=(0,a.publicEncrypt)(e,i),f=Buffer.concat([s,o,d,u]);return r&&(0,n.writeFileSync)(r,f),{aesIv:o,encryptedAesKey:d,encryptedCode:u}},l=(e,t,r)=>{let i=(0,n.readFileSync)(t),o=s.byteLength;if(!i.subarray(0,o).equals(s))throw Error(`Incorrect file format`);let c=o,l=c+16,u=l+512,d=i.subarray(c,l),f=i.subarray(l,u),p=i.subarray(u),m=(0,a.createDecipheriv)(`aes-256-cbc`,(0,a.privateDecrypt)(e,f),d),h=Buffer.concat([m.update(p),m.final()]).toString(`utf8`);return r&&(0,n.writeFileSync)(r,h),h},u=(e,t)=>{let r=(0,n.readFileSync)(e,`utf8`);console.log(`Obfuscating...`),console.time(`Obfuscation complete in`);let i=o.default.obfuscate(r,{target:`node`,compact:!0,controlFlowFlattening:!0,controlFlowFlatteningThreshold:1,deadCodeInjection:!0,debugProtection:!0,identifierNamesGenerator:`hexadecimal`,numbersToExpressions:!0,selfDefending:!0,simplify:!0,splitStrings:!0,splitStringsChunkLength:5,stringArray:!0,stringArrayCallsTransform:!0,stringArrayCallsTransformThreshold:1,stringArrayEncoding:[`base64`],stringArrayIndexShift:!0,stringArrayRotate:!0,stringArrayShuffle:!0,stringArrayWrappersCount:2,stringArrayWrappersChainedCalls:!0,stringArrayWrappersType:`function`,stringArrayThreshold:1,transformObjectKeys:!0,unicodeEscapeSequence:!1});console.timeEnd(`Obfuscation complete in`);let a=i.getObfuscatedCode();return(0,n.writeFileSync)(t||e,a),a},d=(0,t.parseArgs)({allowPositionals:!0,allowNegative:!0,options:{input:{type:`string`,short:`i`,description:`Path to the input file`},key:{type:`string`,short:`k`,description:`Path to the key file (public for encrypt, private for decrypt)`},output:{type:`string`,short:`o`,description:`Path to the output file`},format:{type:`string`,short:`f`,description:`Output format`},watch:{type:`boolean`,description:`Watch file changes`},minify:{type:`boolean`,description:`Minify output`},obfuscate:{type:`boolean`,description:`Obfuscate output`},encrypt:{type:`boolean`,description:`Encrypt extension source code (.js will be packed inside .stx)`},decrypt:{type:`boolean`,description:`Decrypt encrypted extension`}}}),f=()=>{let e=[process.cwd(),r.default.join(process.cwd(),`src`),r.default.join(process.cwd(),`lib`)];for(let t of e){let e=(0,n.readdirSync)(t).filter(e=>!e.endsWith(`.d.ts`)).filter(e=>new Set([`.ts`,`.js`,`.cjs`,`.mjs`]).has(r.default.extname(e))),i=e=>r.default.basename(e,r.default.extname(e)),a=e.find(e=>i(e)===`index`)||e.find(e=>i(e)===`main`)||e[0];if(a)return r.default.join(t,a)}},p=e=>e===`esm`?`mjs`:`cjs`,m=(e,t)=>r.default.join(process.cwd(),`dist`,`${r.default.parse(e).name}.${p(t)}`),h=(e,t)=>{let{dir:n,name:i}=r.default.parse(e);return r.default.join(n,`${i}-${t}.azt`)};(async()=>{let[e,...t]=d.positionals,a=d.values.input||t[0]||f();if(!a)throw Error(`No entry file found`);if(e===`build`||e===`pack`){let t=typeof d.values.minify==`boolean`?d.values.minify:!0,o=d.values.format??`cjs`;await(0,i.build)({entry:a.replace(process.cwd(),`.`).replace(r.default.sep,`/`),format:o,platform:`node`,target:`node24`,watch:d.values.watch,minify:t,inlineOnly:!1}),d.values.input=m(a,o);let s=require(r.default.join(process.cwd(),`package.json`));if((typeof d.values.obfuscate==`boolean`?d.values.obfuscate:s.private)&&u(d.values.input,d.values.input),d.values.encrypt||e===`pack`){let e=(0,n.readFileSync)(d.values.key||r.default.join(__dirname,`../public.pem`),`utf8`),t=d.values.output||h(d.values.input,s.version);c(e,d.values.input,t),(0,n.rmSync)(d.values.input)}}else if(e===`decrypt`)l((0,n.readFileSync)(d.values.key||r.default.join(__dirname,`../private.pem`),`utf8`),a,d.values.output||a.replace(/\.stx$/,`.js`)),d.values.input&&(0,n.rmSync)(d.values.input);else if(e===`dev`||e===`develop`||!e){let e=typeof d.values.minify==`boolean`?d.values.minify:!1;await(0,i.build)({entry:a,format:d.values.format??`cjs`,platform:`node`,target:`node22`,watch:!0,minify:e})}})();
|
package/dist/azt.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{n as e}from"./chunk-DtROqxiw.mjs";import{parseArgs as t}from"node:util";import{readFileSync as n,readdirSync as r,rmSync as i,writeFileSync as a}from"node:fs";import o from"node:path";import{build as s}from"tsdown";import{createCipheriv as c,createDecipheriv as l,privateDecrypt as u,publicEncrypt as d,randomBytes as f}from"node:crypto";import p from"javascript-obfuscator";const m=Buffer.from(`STX`,`utf8`),h=(e,t,r)=>{let i=f(32),o=f(16),s=n(t),l=c(`aes-256-cbc`,i,o),u=Buffer.concat([l.update(s),l.final()]),p=d(e,i),h=Buffer.concat([m,o,p,u]);return r&&a(r,h),{aesIv:o,encryptedAesKey:p,encryptedCode:u}},g=(e,t,r)=>{let i=n(t),o=m.byteLength;if(!i.subarray(0,o).equals(m))throw Error(`Incorrect file format`);let s=o,c=s+16,d=c+512,f=i.subarray(s,c),p=i.subarray(c,d),h=i.subarray(d),g=l(`aes-256-cbc`,u(e,p),f),_=Buffer.concat([g.update(h),g.final()]).toString(`utf8`);return r&&a(r,_),_},_=(e,t)=>{let r=n(e,`utf8`);console.log(`Obfuscating...`),console.time(`Obfuscation complete in`);let i=p.obfuscate(r,{target:`node`,compact:!0,controlFlowFlattening:!0,controlFlowFlatteningThreshold:1,deadCodeInjection:!0,debugProtection:!0,identifierNamesGenerator:`hexadecimal`,numbersToExpressions:!0,selfDefending:!0,simplify:!0,splitStrings:!0,splitStringsChunkLength:5,stringArray:!0,stringArrayCallsTransform:!0,stringArrayCallsTransformThreshold:1,stringArrayEncoding:[`base64`],stringArrayIndexShift:!0,stringArrayRotate:!0,stringArrayShuffle:!0,stringArrayWrappersCount:2,stringArrayWrappersChainedCalls:!0,stringArrayWrappersType:`function`,stringArrayThreshold:1,transformObjectKeys:!0,unicodeEscapeSequence:!1});console.timeEnd(`Obfuscation complete in`);let o=i.getObfuscatedCode();return a(t||e,o),o},v=t({allowPositionals:!0,allowNegative:!0,options:{input:{type:`string`,short:`i`,description:`Path to the input file`},key:{type:`string`,short:`k`,description:`Path to the key file (public for encrypt, private for decrypt)`},output:{type:`string`,short:`o`,description:`Path to the output file`},format:{type:`string`,short:`f`,description:`Output format`},watch:{type:`boolean`,description:`Watch file changes`},minify:{type:`boolean`,description:`Minify output`},obfuscate:{type:`boolean`,description:`Obfuscate output`},encrypt:{type:`boolean`,description:`Encrypt extension source code (.js will be packed inside .stx)`},decrypt:{type:`boolean`,description:`Decrypt encrypted extension`}}}),y=()=>{let e=[process.cwd(),o.join(process.cwd(),`src`),o.join(process.cwd(),`lib`)];for(let t of e){let e=r(t).filter(e=>!e.endsWith(`.d.ts`)).filter(e=>new Set([`.ts`,`.js`,`.cjs`,`.mjs`]).has(o.extname(e))),n=e=>o.basename(e,o.extname(e)),i=e.find(e=>n(e)===`index`)||e.find(e=>n(e)===`main`)||e[0];if(i)return o.join(t,i)}};(async()=>{let[t,...r]=v.positionals,a=v.values.input||r[0]||y();if(!a)throw Error(`No entry file found`);if(t===`build`||t===`pack`){let r=typeof v.values.minify==`boolean`?v.values.minify:!0
|
|
2
|
+
import{n as e}from"./chunk-DtROqxiw.mjs";import{parseArgs as t}from"node:util";import{readFileSync as n,readdirSync as r,rmSync as i,writeFileSync as a}from"node:fs";import o from"node:path";import{build as s}from"tsdown";import{createCipheriv as c,createDecipheriv as l,privateDecrypt as u,publicEncrypt as d,randomBytes as f}from"node:crypto";import p from"javascript-obfuscator";const m=Buffer.from(`STX`,`utf8`),h=(e,t,r)=>{let i=f(32),o=f(16),s=n(t),l=c(`aes-256-cbc`,i,o),u=Buffer.concat([l.update(s),l.final()]),p=d(e,i),h=Buffer.concat([m,o,p,u]);return r&&a(r,h),{aesIv:o,encryptedAesKey:p,encryptedCode:u}},g=(e,t,r)=>{let i=n(t),o=m.byteLength;if(!i.subarray(0,o).equals(m))throw Error(`Incorrect file format`);let s=o,c=s+16,d=c+512,f=i.subarray(s,c),p=i.subarray(c,d),h=i.subarray(d),g=l(`aes-256-cbc`,u(e,p),f),_=Buffer.concat([g.update(h),g.final()]).toString(`utf8`);return r&&a(r,_),_},_=(e,t)=>{let r=n(e,`utf8`);console.log(`Obfuscating...`),console.time(`Obfuscation complete in`);let i=p.obfuscate(r,{target:`node`,compact:!0,controlFlowFlattening:!0,controlFlowFlatteningThreshold:1,deadCodeInjection:!0,debugProtection:!0,identifierNamesGenerator:`hexadecimal`,numbersToExpressions:!0,selfDefending:!0,simplify:!0,splitStrings:!0,splitStringsChunkLength:5,stringArray:!0,stringArrayCallsTransform:!0,stringArrayCallsTransformThreshold:1,stringArrayEncoding:[`base64`],stringArrayIndexShift:!0,stringArrayRotate:!0,stringArrayShuffle:!0,stringArrayWrappersCount:2,stringArrayWrappersChainedCalls:!0,stringArrayWrappersType:`function`,stringArrayThreshold:1,transformObjectKeys:!0,unicodeEscapeSequence:!1});console.timeEnd(`Obfuscation complete in`);let o=i.getObfuscatedCode();return a(t||e,o),o},v=t({allowPositionals:!0,allowNegative:!0,options:{input:{type:`string`,short:`i`,description:`Path to the input file`},key:{type:`string`,short:`k`,description:`Path to the key file (public for encrypt, private for decrypt)`},output:{type:`string`,short:`o`,description:`Path to the output file`},format:{type:`string`,short:`f`,description:`Output format`},watch:{type:`boolean`,description:`Watch file changes`},minify:{type:`boolean`,description:`Minify output`},obfuscate:{type:`boolean`,description:`Obfuscate output`},encrypt:{type:`boolean`,description:`Encrypt extension source code (.js will be packed inside .stx)`},decrypt:{type:`boolean`,description:`Decrypt encrypted extension`}}}),y=()=>{let e=[process.cwd(),o.join(process.cwd(),`src`),o.join(process.cwd(),`lib`)];for(let t of e){let e=r(t).filter(e=>!e.endsWith(`.d.ts`)).filter(e=>new Set([`.ts`,`.js`,`.cjs`,`.mjs`]).has(o.extname(e))),n=e=>o.basename(e,o.extname(e)),i=e.find(e=>n(e)===`index`)||e.find(e=>n(e)===`main`)||e[0];if(i)return o.join(t,i)}},b=e=>e===`esm`?`mjs`:`cjs`,x=(e,t)=>o.join(process.cwd(),`dist`,`${o.parse(e).name}.${b(t)}`),S=(e,t)=>{let{dir:n,name:r}=o.parse(e);return o.join(n,`${r}-${t}.azt`)};(async()=>{let[t,...r]=v.positionals,a=v.values.input||r[0]||y();if(!a)throw Error(`No entry file found`);if(t===`build`||t===`pack`){let r=typeof v.values.minify==`boolean`?v.values.minify:!0,c=v.values.format??`cjs`;await s({entry:a.replace(process.cwd(),`.`).replace(o.sep,`/`),format:c,platform:`node`,target:`node24`,watch:v.values.watch,minify:r,inlineOnly:!1}),v.values.input=x(a,c);let l=e(o.join(process.cwd(),`package.json`));if((typeof v.values.obfuscate==`boolean`?v.values.obfuscate:l.private)&&_(v.values.input,v.values.input),v.values.encrypt||t===`pack`){let e=n(v.values.key||o.join(__dirname,`../public.pem`),`utf8`),t=v.values.output||S(v.values.input,l.version);h(e,v.values.input,t),i(v.values.input)}}else if(t===`decrypt`)g(n(v.values.key||o.join(__dirname,`../private.pem`),`utf8`),a,v.values.output||a.replace(/\.stx$/,`.js`)),v.values.input&&i(v.values.input);else if(t===`dev`||t===`develop`||!t){let e=typeof v.values.minify==`boolean`?v.values.minify:!1;await s({entry:a,format:v.values.format??`cjs`,platform:`node`,target:`node22`,watch:!0,minify:e})}})();export{};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import{t as e}from"./chunk-DtROqxiw.mjs";import{closeSync as t,existsSync as n,mkdirSync as r,openSync as i,readSync as a,writeSync as o}from"node:fs";import{basename as s,dirname as c,join as l}from"node:path";import u,{EOL as d,homedir as f,tmpdir as p}from"node:os";import{setTimeout as m}from"node:timers/promises";import{confirm as ee,input as te,number as ne,password as re,select as h}from"@inquirer/prompts";import{readFile as g,rm as _,stat as v,writeFile as ie}from"node:fs/promises";import{configureSync as y,getConsoleSink as ae,getLogger as oe,withFilter as se}from"@logtape/logtape";import{getFileSink as ce}from"@logtape/file";import{getPrettyFormatter as le}from"@logtape/pretty";import{arch as ue,platform as de,stdin as b,stdout as fe,version as pe}from"node:process";import me,{EventEmitter as x}from"node:events";import"picocolors";import"urlpattern-polyfill";import{createInterface as he}from"node:readline/promises";import{Impit as ge}from"impit";import{Agent as _e,ProxyAgent as ve}from"undici";import ye from"metavm";import"nanospinner";import S from"conf";var be=`@azot/desktop`,C=`5.0.0-alpha.55`,xe=`Azot`,w={name:be,version:C,description:`A powerful, extensible app for downloading videos`,keywords:[`downloader`],homepage:`https://azot.mov`,author:`Vitaly Gashkov <vitalygashkov@vk.com>`,repository:{type:`git`,url:`https://github.com/azot-labs/azot.git`},funding:[{type:`individual`,url:`https://t.me/tribute/app?startapp=dqW2`}],files:[`out`],os:[`darwin`,`linux`,`win32`],main:`./out/main.js`,scripts:{start:`tsx --env-file-if-exists .env.local ./src/main/cli.ts`,preview:`electron-vite preview --config vite.desktop.config.mjs`,dev:`pnpm run bundle:extensions && electron-vite dev --config vite.desktop.config.mjs --watch`,cli:`pnpm run bundle:extensions && bun run ./src/main/cli.ts --env-file .env`,test:`vitest`,coverage:`vitest run --coverage`,"prepare:runtime-deps":`pnpm -C ../../packages/api build && pnpm -C ../../packages/molnia build`,"bundle:extensions":`node ./scripts/bundle-extensions.mjs`,"bundle:cli":`pnpm run bundle:extensions && node ./scripts/bundle-cli.mjs`,bundle:`pnpm run prepare:runtime-deps && pnpm run bundle:extensions && electron-vite build --config vite.cli.config.mjs && electron-vite build --config vite.desktop.config.mjs`,"build:cli":`pnpm run prepare:runtime-deps && pnpm run bundle:cli && bun build --compile ./out/cli.mjs --minify --outfile ./release/azot`,build:`pnpm run bundle && electron-builder build --config electron-builder.config.js`,"build:mac":`pnpm run bundle && electron-builder build --mac --arm64 --config electron-builder.config.js`,"build:mac:intel":`pnpm run bundle && electron-builder build --mac --x64 --config electron-builder.config.js`,"build:win":`pnpm run build:winconsole && pnpm run bundle && electron-builder build --win --config electron-builder.config.js`,"build:winconsole":`node ./scripts/build-winconsole.mjs`,"build:linux":`pnpm run bundle && electron-builder build --linux --config electron-builder.config.js`,"publish:desktop":`pnpm run bundle && electron-builder build --publish always --config electron-builder.config.js`,"sync:native-optionals":`node ./scripts/sync-native-optionals.mjs`,"check:native-optionals":`node ./scripts/sync-native-optionals.mjs --check`,typecheck:`pnpm run typecheck:node && pnpm run typecheck:web`,"typecheck:node":`tsc --noEmit -p tsconfig.node.json --composite false`,"typecheck:web":`vue-tsc --noEmit -p tsconfig.web.json --composite false`,lint:`../../node_modules/.bin/oxlint -c ../../.oxlintrc.json .`,"lint:fix":`../../node_modules/.bin/oxlint -c ../../.oxlintrc.json --fix .`,fmt:`../../node_modules/.bin/oxfmt -c ../../.oxfmtrc.json .`,"fmt:check":`../../node_modules/.bin/oxfmt -c ../../.oxfmtrc.json --check .`},dependencies:{"@electron-toolkit/preload":`^3.0.2`,"@electron-toolkit/utils":`^4.0.0`,"@gitbeaker/rest":`^43.8.0`,"@inquirer/prompts":`^8.3.0`,"@logtape/file":`^2.0.2`,"@logtape/logtape":`^2.0.2`,"@logtape/pretty":`^2.0.2`,"@tanstack/query-core":`^5.90.20`,"@tribute-tg/better-auth":`^2.1.9`,azot:`workspace:*`,"better-auth":`^1.4.19`,bytenode:`^1.5.7`,conf:`^15.1.0`,cookie:`^1.1.1`,"cross-spawn":`^7.0.6`,dasha:`4.0.0-alpha.12`,"electron-updater":`^6.8.3`,impit:`^0.11.0`,ky:`^1.14.3`,mediabunny:`^1.38.1`,metavm:`^1.4.5`,molnia:`workspace:*`,nanospinner:`^1.2.2`,okova:`^0.10.5`,open:`^11.0.0`,"p-queue":`^9.1.0`,picocolors:`^1.1.1`,"posthog-js":`^1.353.1`,semver:`^7.7.4`,"telegram-better-auth":`^0.0.8`,undici:`^7.22.0`,"urlpattern-polyfill":`^10.1.0`,yargs:`^18.0.0`,yauzl:`^3.2.0`,zod:`^4.3.6`},devDependencies:{"@electron-toolkit/tsconfig":`^2.0.0`,"@iconify/vue":`^5.0.0`,"@intlify/unplugin-vue-i18n":`^11.0.7`,"@tailwindcss/vite":`^4.2.1`,"@tanstack/vue-query":`^5.92.9`,"@types/node":`^25.3.0`,"@types/semver":`^7.7.1`,"@types/wicg-file-system-access":`^2023.10.7`,"@types/yargs":`^17.0.35`,"@vee-validate/zod":`^4.15.1`,"@vitejs/plugin-vue":`^6.0.4`,"@vueuse/core":`^14.2.1`,"class-variance-authority":`^0.7.1`,clsx:`^2.1.1`,dotenv:`^17.3.1`,electron:`41.0.2`,"electron-builder":`^26.8.1`,"electron-vite":`^5.0.0`,esbuild:`^0.27.3`,execa:`^9.6.1`,"lucide-vue-next":`^0.575.0`,"node-gyp":`^12.2.0`,"non.geist":`^1.0.4`,pinia:`^3.0.4`,postcss:`^8.5.6`,"reka-ui":`^2.8.2`,rolldown:`^1.0.0-rc.5`,sass:`^1.97.3`,"tailwind-merge":`^3.5.0`,tailwindcss:`^4.2.1`,"tailwindcss-animate":`^1.0.7`,tsdown:`^0.20.3`,tsx:`^4.21.0`,typescript:`^5.9.3`,"vee-validate":`^4.15.1`,vite:`^7.3.1`,"vite-plugin-static-copy":`^3.1.2`,vitest:`^4.0.18`,vue:`^3.5.29`,"vue-i18n":`^11.2.8`,"vue-sonner":`^2.0.9`,"vue-tsc":`^3.2.5`},peerDependencies:{vitest:`>=4.0.0`},optionalDependencies:{"impit-darwin-arm64":`0.11.0`,"impit-darwin-x64":`0.11.0`,"impit-linux-arm64-gnu":`0.11.0`,"impit-linux-arm64-musl":`0.11.0`,"impit-linux-x64-gnu":`0.11.0`,"impit-linux-x64-musl":`0.11.0`,"impit-win32-arm64-msvc":`0.11.0`,"impit-win32-x64-msvc":`0.11.0`},engines:{node:`>=24.10`},packageManager:`pnpm@10.28.2`,productName:xe,readmeFilename:`README.md`};`pkg`in process&&process.pkg,process.versions.electron,`${C}${de}${ue}${pe}`,`${C}`,be.split(`/`)[0]?.split(`-`)[0]?.replace(`@`,``);const T=xe,Se={darwin:`macOS`,win32:`Windows`,linux:`Linux`}[process.platform],E=e=>{let t=typeof e==`string`?e:e[Se];return n(t)||r(t,{recursive:!0}),t},D=f(),Ce=p(),O=E({Windows:process.env.APPDATA||l(D,`AppData`,`Roaming`),macOS:l(D,`Library`,`Application Support`),Linux:process.env.XDG_DATA_HOME||l(D,`.local`,`share`)}),k=E({Windows:process.env.APPDATA||l(D,`AppData`,`Roaming`),macOS:l(D,`Library`,`Application Support`),Linux:process.env.XDG_CONFIG_HOME||l(D,`.config`)});E({Windows:process.env.LOCALAPPDATA||l(D,`AppData`,`Local`),macOS:l(D,`Library`,`Caches`),Linux:process.env.XDG_CACHE_HOME||l(D,`.cache`)}),E({Windows:l(D,`Downloads`),macOS:l(D,`Downloads`),Linux:process.env.XDG_DOWNLOAD_DIR||l(D,`Downloads`)});const we=E({Windows:l(O,T),macOS:l(O,T),Linux:l(O,T.toLowerCase())}),Te=E({Windows:l(k,T),macOS:l(k,T),Linux:l(k,T.toLowerCase())}),Ee=E({Windows:l(k,T,`logs`),macOS:l(D,`Library`,`Logs`,T),Linux:l(k,T.toLowerCase(),`logs`)});l(Ce,T.toLowerCase());const A=E(l(we,`extensions`));E(l(A,`installed`)),E(l(A,`work`)),l(A,`index.json`),l(Te,`settings.json`);const De=process.argv.includes(`-d`)||process.argv.includes(`--debug`)||process.env.NODE_ENV_ELECTRON_VITE===`development`||!!process.env.ELECTRON_CLI_ARGS;y({sinks:{console:se(ae({formatter:le({timestamp:`time`,messageColor:null,messageStyle:null,levelStyle:null,icons:!1,colors:!0,level:`FULL`,categoryWidth:0,categoryStyle:null,categoryTruncate:`end`,wordWrap:!0})}),De?`debug`:`info`),file:ce(l(Ee,`Azot_${new Date().toISOString().split(`.`)[0].replace(`T`,`_`).replaceAll(`-`,``).replaceAll(`:`,``)}.log`),{flushInterval:0})},loggers:[{category:[],lowestLevel:`trace`,sinks:[`console`,`file`]},{category:[`logtape`,`meta`],lowestLevel:`error`,sinks:[`console`]}]});const j=oe([]),Oe=new class e extends x{static requestEventName=`feedback`;static responseEventName=`feedback:response`;#e=Promise.resolve();async ask(t){let n=()=>new Promise(n=>{this.once(e.responseEventName,e=>{n(e)}),this.emit(e.requestEventName,t)}),r=this.#e.then(n,n);return this.#e=r.then(()=>void 0,()=>void 0),r}listen(t){this.addListener(e.requestEventName,async n=>{let r=await t(n);this.emit(e.responseEventName,r)})}},ke=e=>{let t=[`}`,`{`,`%`,`>`,`<`,`^`,`;`,"`",`$`,`"`,`@`,`=`],n=e;for(let e in t)n=n.replaceAll(`/`,`_`).replaceAll(t[e],``);return n},Ae=(e,t,n)=>{let r={},i={};for(let a of n)for(let n of t){let t=new URLPattern(n,a).exec(e);t&&(Object.assign(r,t.pathname.groups),Object.assign(i,t.search.groups))}return{pathname:r,search:i}},je=(e=new Map)=>{let t=(t,n)=>{for(let r of e.keys())for(let i of e.get(r)||[]){let e=n===void 0||isNaN(n),a=t===void 0||isNaN(t),o=!1;if(o=a?r===n:(e?isNaN(r):r===n)&&i===t,o)return!0}return!1},n=(t,n)=>{let r=n||NaN,i=t||NaN;e.has(r)?e.get(r)?.add(i):e.set(r,new Set([i]))},r=()=>Array.from(e.values()).flatMap(e=>Array.from(e)),i=e.size,a=r();return{items:e,has:t,set:n,getMin:()=>Math.min(...a),getMax:()=>Math.max(...a),seasonsCount:i,episodesCount:a.length}};new Intl.DateTimeFormat(`en-US`,{year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1}),new Intl.DateTimeFormat(`en-US`,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1});const M=new class e extends x{static requestEventName=`form`;static responseEventName=`form:response`;title;#e=Promise.resolve();constructor(e={}){super(),this.title=e.title,this.listen(async e=>{let{title:n,description:r,fields:a,...o}=e,s={},c=Object.entries(a||o);if(!b.isTTY||process.platform===`win32`){let e=0,a=1,o=!1;if(process.platform===`win32`)try{e=i(`\\\\.\\CONIN$`,`r`),a=i(`\\\\.\\CONOUT$`,`w`),o=!0}catch{}try{for(let[t,{label:i,type:o}]of c){let c=o===`confirm`;s[t]=Pe([n,r,i].filter(Boolean).join(`. `)+(c?` (y/n)`:``)+`: `,void 0,{inputFd:e,outputFd:a})??``}return s}finally{o&&(t(e),t(a))}}b.setEncoding&&b.setEncoding(`utf8`),b.isTTY&&b.setRawMode&&b.setRawMode(!1),b.resume();let l=he({input:b,output:fe,terminal:!0});try{for(let[e,{label:t,type:i}]of c){let a=i===`confirm`,o=[n,r,t].filter(Boolean).join(`. `)+(a?` (y/n)`:``)+`: `;s[e]=await Promise.race([l.question(o),m(Ne,``)])}return s}finally{l.close()}})}async ask(t){let n=()=>new Promise(n=>{this.once(e.responseEventName,e=>{n(e)}),this.emit(e.requestEventName,t)}),r=this.#e.then(n,n);return this.#e=r.then(()=>void 0,()=>void 0),r}listen(t){this.addListener(e.requestEventName,async n=>{let r=await t(n);this.emit(e.responseEventName,r)})}},Me=async(e,t)=>{let n=t?.fields??{answer:{label:e}};return await M.ask({title:t?.title,description:e,fields:n})},Ne=12e4,Pe=(e,t,n)=>{let r=n?.inputFd??0;o(n?.outputFd??1,e||``);let i=Buffer.alloc(1),s=``;for(;;){try{a(r,i,0,1,null)}catch(e){if(e.code===`EOF`)break;throw e}let e=i.toString(`utf-8`);if(e===`
|
|
2
|
+
`||e===`\r`){if(e===`\r`)try{a(r,i,0,1,null),i.toString(`utf-8`)}catch(e){if(e.code===`EOF`)break;throw e}break}s+=e}return s.trim()||t};var N=class extends Error{response;request;options;constructor(e,t,n){let r=`${e.status||e.status===0?e.status:``} ${e.statusText??``}`.trim(),i=r?`status code ${r}`:`an unknown error`;super(`Request failed with ${i}: ${t.method} ${t.url}`),this.name=`HTTPError`,this.response=e,this.request=t,this.options=n}},Fe=class extends Error{name=`NonError`;value;constructor(e){let t=`Non-error value was thrown`;try{typeof e==`string`?t=e:e&&typeof e==`object`&&`message`in e&&typeof e.message==`string`&&(t=e.message)}catch{}super(t),this.value=e}},P=class extends Error{name=`ForceRetryError`;customDelay;code;customRequest;constructor(e){let t=e?.cause?e.cause instanceof Error?e.cause:new Fe(e.cause):void 0;super(e?.code?`Forced retry: ${e.code}`:`Forced retry`,t?{cause:t}:void 0),this.customDelay=e?.delay,this.code=e?.code,this.customRequest=e?.request}};const Ie=(()=>{let e=!1,t=!1,n=typeof globalThis.ReadableStream==`function`,r=typeof globalThis.Request==`function`;if(n&&r)try{t=new globalThis.Request(`https://empty.invalid`,{body:new globalThis.ReadableStream,method:`POST`,get duplex(){return e=!0,`half`}}).headers.has(`Content-Type`)}catch(e){if(e instanceof Error&&e.message===`unsupported BodyInit type`)return!1;throw e}return e&&!t})(),Le=typeof globalThis.AbortController==`function`,Re=typeof globalThis.AbortSignal==`function`&&typeof globalThis.AbortSignal.any==`function`,ze=typeof globalThis.ReadableStream==`function`,Be=typeof globalThis.FormData==`function`,Ve=[`get`,`post`,`put`,`patch`,`head`,`delete`],He={json:`application/json`,text:`text/*`,formData:`multipart/form-data`,arrayBuffer:`*/*`,blob:`*/*`,bytes:`*/*`},F=2147483647,Ue=new TextEncoder().encode(`------WebKitFormBoundaryaxpyiPgbbPti10Rw`).length,I=Symbol(`stop`);var L=class{options;constructor(e){this.options=e}};const We=e=>new L(e),Ge={json:!0,parseJson:!0,stringifyJson:!0,searchParams:!0,prefixUrl:!0,retry:!0,timeout:!0,hooks:!0,throwHttpErrors:!0,onDownloadProgress:!0,onUploadProgress:!0,fetch:!0,context:!0},Ke={next:!0},qe={method:!0,headers:!0,body:!0,mode:!0,credentials:!0,cache:!0,redirect:!0,referrer:!0,referrerPolicy:!0,integrity:!0,keepalive:!0,signal:!0,window:!0,duplex:!0},Je=e=>{if(!e)return 0;if(e instanceof FormData){let t=0;for(let[n,r]of e)t+=Ue,t+=new TextEncoder().encode(`Content-Disposition: form-data; name="${n}"`).length,t+=typeof r==`string`?new TextEncoder().encode(r).length:r.size;return t}if(e instanceof Blob)return e.size;if(e instanceof ArrayBuffer)return e.byteLength;if(typeof e==`string`)return new TextEncoder().encode(e).length;if(e instanceof URLSearchParams)return new TextEncoder().encode(e.toString()).length;if(`byteLength`in e)return e.byteLength;if(typeof e==`object`&&e)try{let t=JSON.stringify(e);return new TextEncoder().encode(t).length}catch{return 0}return 0},R=(e,t,n)=>{let r,i=0;return e.pipeThrough(new TransformStream({transform(e,a){if(a.enqueue(e),r){i+=r.byteLength;let e=t===0?0:i/t;e>=1&&(e=1-2**-52),n?.({percent:e,totalBytes:Math.max(t,i),transferredBytes:i},r)}r=e},flush(){r&&(i+=r.byteLength,n?.({percent:1,totalBytes:Math.max(t,i),transferredBytes:i},r))}}))},Ye=(e,t)=>{if(!e.body)return e;if(e.status===204)return new Response(null,{status:e.status,statusText:e.statusText,headers:e.headers});let n=Math.max(0,Number(e.headers.get(`content-length`))||0);return new Response(R(e.body,n,t),{status:e.status,statusText:e.statusText,headers:e.headers})},Xe=(e,t,n)=>{if(!e.body)return e;let r=Je(n??e.body);return new Request(e,{duplex:`half`,body:R(e.body,r,t)})},z=e=>typeof e==`object`&&!!e,B=(...e)=>{for(let t of e)if((!z(t)||Array.isArray(t))&&t!==void 0)throw TypeError("The `options` argument must be an object");return U({},...e)},V=(e={},t={})=>{let n=new globalThis.Headers(e),r=t instanceof globalThis.Headers,i=new globalThis.Headers(t);for(let[e,t]of i.entries())r&&t===`undefined`||t===void 0?n.delete(e):n.set(e,t);return n};function H(e,t,n){return Object.hasOwn(t,n)&&t[n]===void 0?[]:U(e[n]??[],t[n]??[])}const Ze=(e={},t={})=>({beforeRequest:H(e,t,`beforeRequest`),beforeRetry:H(e,t,`beforeRetry`),afterResponse:H(e,t,`afterResponse`),beforeError:H(e,t,`beforeError`)}),Qe=(e,t)=>{let n=new URLSearchParams;for(let r of[e,t])if(r!==void 0)if(r instanceof URLSearchParams)for(let[e,t]of r.entries())n.append(e,t);else if(Array.isArray(r))for(let e of r){if(!Array.isArray(e)||e.length!==2)throw TypeError(`Array search parameters must be provided in [[key, value], ...] format`);n.append(String(e[0]),String(e[1]))}else if(z(r))for(let[e,t]of Object.entries(r))t!==void 0&&n.append(e,String(t));else{let e=new URLSearchParams(r);for(let[t,r]of e.entries())n.append(t,r)}return n},U=(...e)=>{let t={},n={},r={},i,a=[];for(let o of e)if(Array.isArray(o))Array.isArray(t)||(t=[]),t=[...t,...o];else if(z(o)){for(let[e,n]of Object.entries(o)){if(e===`signal`&&n instanceof globalThis.AbortSignal){a.push(n);continue}if(e===`context`){if(n!=null&&(!z(n)||Array.isArray(n)))throw TypeError("The `context` option must be an object");t={...t,context:n==null?{}:{...t.context,...n}};continue}if(e===`searchParams`){i=n==null?void 0:i===void 0?n:Qe(i,n);continue}z(n)&&e in t&&(n=U(t[e],n)),t={...t,[e]:n}}z(o.hooks)&&(r=Ze(r,o.hooks),t.hooks=r),z(o.headers)&&(n=V(n,o.headers),t.headers=n)}return i!==void 0&&(t.searchParams=i),a.length>0&&(a.length===1?t.signal=a[0]:Re?t.signal=AbortSignal.any(a):t.signal=a.at(-1)),t},$e=e=>Ve.includes(e)?e.toUpperCase():e,et={limit:2,methods:[`get`,`put`,`head`,`delete`,`options`,`trace`],statusCodes:[408,413,429,500,502,503,504],afterStatusCodes:[413,429,503],maxRetryAfter:1/0,backoffLimit:1/0,delay:e=>.3*2**(e-1)*1e3,jitter:void 0,retryOnTimeout:!1},tt=(e={})=>{if(typeof e==`number`)return{...et,limit:e};if(e.methods&&!Array.isArray(e.methods))throw Error(`retry.methods must be an array`);if(e.methods&&=e.methods.map(e=>e.toLowerCase()),e.statusCodes&&!Array.isArray(e.statusCodes))throw Error(`retry.statusCodes must be an array`);let t=Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0));return{...et,...t}};var W=class extends Error{request;constructor(e){super(`Request timed out: ${e.method} ${e.url}`),this.name=`TimeoutError`,this.request=e}};async function nt(e,t,n,r){return new Promise((i,a)=>{let o=setTimeout(()=>{n&&n.abort(),a(new W(e))},r.timeout);r.fetch(e,t).then(i).catch(a).then(()=>{clearTimeout(o)})})}async function rt(e,{signal:t}){return new Promise((n,r)=>{t&&(t.throwIfAborted(),t.addEventListener(`abort`,i,{once:!0}));function i(){clearTimeout(a),r(t.reason)}let a=setTimeout(()=>{t?.removeEventListener(`abort`,i),n()},e)})}const it=(e,t)=>{let n={};for(let r in t)Object.hasOwn(t,r)&&!(r in qe)&&!(r in Ge)&&(!(r in e)||r in Ke)&&(n[r]=t[r]);return n},at=e=>e===void 0?!1:Array.isArray(e)?e.length>0:e instanceof URLSearchParams?e.size>0:typeof e==`object`?Object.keys(e).length>0:typeof e==`string`?e.trim().length>0:!!e;function ot(e){return e instanceof N||e?.name===N.name}function st(e){return e instanceof W||e?.name===W.name}var ct=class e{static create(t,n){let r=new e(t,n),i=r.#p(async()=>{if(typeof r.#i.timeout==`number`&&r.#i.timeout>2147483647)throw RangeError(`The \`timeout\` option cannot be greater than ${F}`);await Promise.resolve();let e=await r.#m();for(let t of r.#i.hooks.afterResponse){let n=r.#u(e.clone()),i;try{i=await t(r.request,r.#h(),n,{retryCount:r.#n})}catch(t){throw r.#f(n),r.#f(e),t}if(i instanceof L)throw r.#f(n),r.#f(e),new P(i.options);let a=i instanceof globalThis.Response?i:e;n!==a&&r.#f(n),e!==a&&r.#f(e),e=a}if(r.#u(e),!e.ok&&(typeof r.#i.throwHttpErrors==`function`?r.#i.throwHttpErrors(e.status):r.#i.throwHttpErrors)){let t=new N(e,r.request,r.#h());for(let e of r.#i.hooks.beforeError)t=await e(t,{retryCount:r.#n});throw t}if(r.#i.onDownloadProgress){if(typeof r.#i.onDownloadProgress!=`function`)throw TypeError("The `onDownloadProgress` option must be a function");if(!ze)throw Error("Streams are not supported in your environment. `ReadableStream` is missing.");let t=e.clone();return r.#f(e),Ye(t,r.#i.onDownloadProgress)}return e}).finally(()=>{let e=r.#a;r.#d(e?.body??void 0),r.#d(r.request.body??void 0)});for(let[e,t]of Object.entries(He))e===`bytes`&&typeof globalThis.Response?.prototype?.bytes!=`function`||(i[e]=async()=>{r.request.headers.set(`accept`,r.request.headers.get(`accept`)||t);let a=await i;if(e===`json`){if(a.status===204)return``;let e=await a.text();return e===``?``:n.parseJson?n.parseJson(e):JSON.parse(e)}return a[e]()});return i}static#e(e){return e&&typeof e==`object`&&!Array.isArray(e)&&!(e instanceof URLSearchParams)?Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0)):e}request;#t;#n=0;#r;#i;#a;#o;#s;constructor(t,n={}){if(this.#r=t,this.#i={...n,headers:V(this.#r.headers,n.headers),hooks:Ze({beforeRequest:[],beforeRetry:[],beforeError:[],afterResponse:[]},n.hooks),method:$e(n.method??this.#r.method??`GET`),prefixUrl:String(n.prefixUrl||``),retry:tt(n.retry),throwHttpErrors:n.throwHttpErrors??!0,timeout:n.timeout??1e4,fetch:n.fetch??globalThis.fetch.bind(globalThis),context:n.context??{}},typeof this.#r!=`string`&&!(this.#r instanceof URL||this.#r instanceof globalThis.Request))throw TypeError("`input` must be a string, URL, or Request");if(this.#i.prefixUrl&&typeof this.#r==`string`){if(this.#r.startsWith(`/`))throw Error("`input` must not begin with a slash when using `prefixUrl`");this.#i.prefixUrl.endsWith(`/`)||(this.#i.prefixUrl+=`/`),this.#r=this.#i.prefixUrl+this.#r}Le&&Re&&(this.#o=this.#i.signal??this.#r.signal,this.#t=new globalThis.AbortController,this.#i.signal=this.#o?AbortSignal.any([this.#o,this.#t.signal]):this.#t.signal),Ie&&(this.#i.duplex=`half`),this.#i.json!==void 0&&(this.#i.body=this.#i.stringifyJson?.(this.#i.json)??JSON.stringify(this.#i.json),this.#i.headers.set(`content-type`,this.#i.headers.get(`content-type`)??`application/json`));let r=n.headers&&new globalThis.Headers(n.headers).has(`content-type`);if(this.#r instanceof globalThis.Request&&(Be&&this.#i.body instanceof globalThis.FormData||this.#i.body instanceof URLSearchParams)&&!r&&this.#i.headers.delete(`content-type`),this.request=new globalThis.Request(this.#r,this.#i),at(this.#i.searchParams)){let t=`?`+(typeof this.#i.searchParams==`string`?this.#i.searchParams.replace(/^\?/,``):new URLSearchParams(e.#e(this.#i.searchParams)).toString()),n=this.request.url.replace(/(?:\?.*?)?(?=#|$)/,t);this.request=new globalThis.Request(n,this.#i)}if(this.#i.onUploadProgress){if(typeof this.#i.onUploadProgress!=`function`)throw TypeError("The `onUploadProgress` option must be a function");if(!Ie)throw Error("Request streams are not supported in your environment. The `duplex` option for `Request` is not available.");this.request=this.#_(this.request,this.#i.body??void 0)}}#c(){let e=this.#i.retry.delay(this.#n),t=e;this.#i.retry.jitter===!0?t=Math.random()*e:typeof this.#i.retry.jitter==`function`&&(t=this.#i.retry.jitter(e),(!Number.isFinite(t)||t<0)&&(t=e));let n=this.#i.retry.backoffLimit??1/0;return Math.min(n,t)}async#l(e){if(this.#n++,this.#n>this.#i.retry.limit)throw e;let t=e instanceof Error?e:new Fe(e);if(t instanceof P)return t.customDelay??this.#c();if(!this.#i.retry.methods.includes(this.request.method.toLowerCase()))throw e;if(this.#i.retry.shouldRetry!==void 0){let n=await this.#i.retry.shouldRetry({error:t,retryCount:this.#n});if(n===!1)throw e;if(n===!0)return this.#c()}if(st(e)&&!this.#i.retry.retryOnTimeout)throw e;if(ot(e)){if(!this.#i.retry.statusCodes.includes(e.response.status))throw e;let t=e.response.headers.get(`Retry-After`)??e.response.headers.get(`RateLimit-Reset`)??e.response.headers.get(`X-RateLimit-Retry-After`)??e.response.headers.get(`X-RateLimit-Reset`)??e.response.headers.get(`X-Rate-Limit-Reset`);if(t&&this.#i.retry.afterStatusCodes.includes(e.response.status)){let e=Number(t)*1e3;Number.isNaN(e)?e=Date.parse(t)-Date.now():e>=Date.parse(`2024-01-01`)&&(e-=Date.now());let n=this.#i.retry.maxRetryAfter??e;return e<n?e:n}if(e.response.status===413)throw e}return this.#c()}#u(e){return this.#i.parseJson&&(e.json=async()=>this.#i.parseJson(await e.text())),e}#d(e){e&&e.cancel().catch(()=>void 0)}#f(e){this.#d(e.body??void 0)}async#p(e){try{return await e()}catch(t){let n=Math.min(await this.#l(t),F);if(this.#n<1)throw t;if(await rt(n,this.#o?{signal:this.#o}:{}),t instanceof P&&t.customRequest){let e=this.#i.signal?new globalThis.Request(t.customRequest,{signal:this.#i.signal}):new globalThis.Request(t.customRequest);this.#g(e)}for(let e of this.#i.hooks.beforeRetry){let n=await e({request:this.request,options:this.#h(),error:t,retryCount:this.#n});if(n instanceof globalThis.Request){this.#g(n);break}if(n instanceof globalThis.Response)return n;if(n===I)return}return this.#p(e)}}async#m(){this.#t?.signal.aborted&&(this.#t=new globalThis.AbortController,this.#i.signal=this.#o?AbortSignal.any([this.#o,this.#t.signal]):this.#t.signal,this.request=new globalThis.Request(this.request,{signal:this.#i.signal}));for(let e of this.#i.hooks.beforeRequest){let t=await e(this.request,this.#h(),{retryCount:this.#n});if(t instanceof Response)return t;if(t instanceof globalThis.Request){this.#g(t);break}}let e=it(this.request,this.#i);return this.#a=this.request,this.request=this.#a.clone(),this.#i.timeout===!1?this.#i.fetch(this.#a,e):nt(this.#a,e,this.#t,this.#i)}#h(){if(!this.#s){let{hooks:e,...t}=this.#i;this.#s=Object.freeze(t)}return this.#s}#g(e){this.#s=void 0,this.request=this.#_(e)}#_(e,t){return!this.#i.onUploadProgress||!e.body?e:Xe(e,this.#i.onUploadProgress,t??this.#i.body??void 0)}};
|
|
3
|
+
/*! MIT License © Sindre Sorhus */
|
|
4
|
+
const G=e=>{let t=(t,n)=>ct.create(t,B(e,n));for(let n of Ve)t[n]=(t,r)=>ct.create(t,B(e,r,{method:n}));return t.create=e=>G(B(e)),t.extend=t=>(typeof t==`function`&&(t=t(e??{})),G(B(e,t))),t.stop=I,t.retry=We,t},lt=G();var ut=e((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.stringifySetCookie=s,e.serialize=s,e.parseSetCookie=c,e.stringifySetCookie=s,e.serialize=s;let t=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,n=/^[\u0021-\u003A\u003C-\u007E]*$/,r=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,i=/^[\u0020-\u003A\u003D-\u007E]*$/,a=/^-?\d+$/,o=Object.prototype.toString;function s(e,a,o){let s=typeof e==`object`?e:{...o,name:e,value:String(a)},c=(typeof a==`object`?a:o)?.encode||encodeURIComponent;if(!t.test(s.name))throw TypeError(`argument name is invalid: ${s.name}`);let l=s.value?c(s.value):``;if(!n.test(l))throw TypeError(`argument val is invalid: ${s.value}`);let u=s.name+`=`+l;if(s.maxAge!==void 0){if(!Number.isInteger(s.maxAge))throw TypeError(`option maxAge is invalid: ${s.maxAge}`);u+=`; Max-Age=`+s.maxAge}if(s.domain){if(!r.test(s.domain))throw TypeError(`option domain is invalid: ${s.domain}`);u+=`; Domain=`+s.domain}if(s.path){if(!i.test(s.path))throw TypeError(`option path is invalid: ${s.path}`);u+=`; Path=`+s.path}if(s.expires){if(!p(s.expires)||!Number.isFinite(s.expires.valueOf()))throw TypeError(`option expires is invalid: ${s.expires}`);u+=`; Expires=`+s.expires.toUTCString()}if(s.httpOnly&&(u+=`; HttpOnly`),s.secure&&(u+=`; Secure`),s.partitioned&&(u+=`; Partitioned`),s.priority)switch(typeof s.priority==`string`?s.priority.toLowerCase():void 0){case`low`:u+=`; Priority=Low`;break;case`medium`:u+=`; Priority=Medium`;break;case`high`:u+=`; Priority=High`;break;default:throw TypeError(`option priority is invalid: ${s.priority}`)}if(s.sameSite)switch(typeof s.sameSite==`string`?s.sameSite.toLowerCase():s.sameSite){case!0:case`strict`:u+=`; SameSite=Strict`;break;case`lax`:u+=`; SameSite=Lax`;break;case`none`:u+=`; SameSite=None`;break;default:throw TypeError(`option sameSite is invalid: ${s.sameSite}`)}return u}function c(e,t){let n=t?.decode||f,r=e.length,i=l(e,0,r),o=u(e,0,i),s=o===-1?{name:``,value:n(d(e,0,i))}:{name:d(e,0,o),value:n(d(e,o+1,i))},c=i+1;for(;c<r;){let t=l(e,c,r),n=u(e,c,t),i=n===-1?d(e,c,t):d(e,c,n),o=n===-1?void 0:d(e,n+1,t);switch(i.toLowerCase()){case`httponly`:s.httpOnly=!0;break;case`secure`:s.secure=!0;break;case`partitioned`:s.partitioned=!0;break;case`domain`:s.domain=o;break;case`path`:s.path=o;break;case`max-age`:o&&a.test(o)&&(s.maxAge=Number(o));break;case`expires`:if(!o)break;let e=new Date(o);Number.isFinite(e.valueOf())&&(s.expires=e);break;case`priority`:if(!o)break;let t=o.toLowerCase();(t===`low`||t===`medium`||t===`high`)&&(s.priority=t);break;case`samesite`:if(!o)break;let n=o.toLowerCase();(n===`lax`||n===`strict`||n===`none`)&&(s.sameSite=n);break}c=t+1}return s}function l(e,t,n){let r=e.indexOf(`;`,t);return r===-1?n:r}function u(e,t,n){let r=e.indexOf(`=`,t);return r<n?r:-1}function d(e,t,n){let r=t,i=n;do{let t=e.charCodeAt(r);if(t!==32&&t!==9)break}while(++r<i);for(;i>r;){let t=e.charCodeAt(i-1);if(t!==32&&t!==9)break;i--}return e.slice(r,i)}function f(e){if(e.indexOf(`%`)===-1)return e;try{return decodeURIComponent(e)}catch{return e}}function p(e){return o.call(e)===`[object Date]`}}))();const K=e=>{let t=[];for(let n of e)try{let e=(0,ut.parseSetCookie)(n),r={...e,expires:e.expires instanceof Date?e.expires.getTime():e.expires,sameSite:typeof e.sameSite==`boolean`?`strict`:e.sameSite};t.push(r)}catch(e){j.debug(e)}return t},dt=async e=>{let t=await g(e,`utf8`).catch(()=>``);if(!t)return[];let n=t.split(d).flatMap(e=>e.split(`
|
|
5
|
+
`)).filter(e=>!!e.trim()&&!e.startsWith(`# `)).map(e=>e.split(` `)),r=[];for(let e of n){let[t,n,i,a,o,s,c]=e;r.push({name:s,value:c,expires:Number(o),maxAge:void 0,domain:t.replace(`#HttpOnly_`,``),path:i,secure:a===`TRUE`,httpOnly:void 0,sameSite:void 0})}return r},ft=(e,t)=>e.name===t.name&&e.domain===t.domain&&e.path===t.path&&e.partitioned===t.partitioned,pt=(e,t)=>{let n=[...e];for(let e of t){let t=n.findIndex(t=>ft(t,e));t>=0?n[t]=e:n.push(e)}return n},mt=(e,t)=>{if(typeof e!=`string`)return e;if(t===void 0)throw TypeError(`CookieStore.set(name, value) requires a value argument`);return{name:e,value:t}};var ht=class{#e={};#t;#n;#r=!1;static parse(e){return K(e)}constructor({storagePath:e}={}){this.#n=e,this.#t=[]}async import(e,{removeSource:t=!0}={}){if(await this.#i(),!(await v(e).catch(()=>null))?.isFile())return 0;j.debug(`Importing cookies from ${e}`);let n=await dt(e);this.#t=pt(this.#t,n);try{await this.#a(),t&&await _(e,{force:!0})}catch(e){throw e}return n.length}async#i(){if(!(!this.#n||this.#r)){if((await v(this.#n).catch(()=>null))?.isFile()){let e=await g(this.#n,`utf8`);this.#e=e?JSON.parse(e):{},this.#t=`cookies`in this.#e?this.#e.cookies:[]}this.#r=!0}}async#a(){if(!this.#n)return;let e=JSON.stringify({...this.#e,cookies:this.#t},null,2);await ie(this.#n,e,`utf8`)}async get(e){await this.#i();let t=typeof e==`string`?e:e.name;return this.#t.find(e=>e.name===t)??null}async getAll(e){if(await this.#i(),!e)return this.#t;let t=typeof e==`string`?e:e.name;return this.#t.filter(e=>e.name===t)??null}async set(e,t){await this.#i();let n=mt(e,t);this.#t=pt(this.#t,[n]),await this.#a()}async delete(e){if(await this.#i(),!e)this.#t=[];else{let t=typeof e==`string`?e:e.name;this.#t=this.#t.filter(e=>e.name!==t)}await this.#a()}toString(){return this.#t.map(e=>`${e.name}=${e.value}`).join(`; `)}};const gt=lt.default??lt,_t=e=>e?e instanceof Headers?e.has(`User-Agent`):typeof e==`object`&&e?`User-Agent`in e||`user-agent`in e:!1:!1,vt=e=>e instanceof URL?e:e instanceof Request?new URL(e.url):new URL(e);var yt=class{cookieStore;headers;#e;#t;constructor(e={}){this.headers=new Headers,this.configure(e)}configure({maxRetries:e=3,proxyUrl:t,allowH2:n=!0,cookieStore:r,fetch:i}={}){this.cookieStore=r??this.cookieStore??new ht;let a=t?new ve({uri:t,allowH2:n}):new _e({allowH2:n}),o={retry:e};this.#e=gt.create({dispatcher:a,proxy:t,fetch:i,...o});let s=new ge({browser:`chrome`,proxyUrl:t,ignoreTlsErrors:!0,followRedirects:!1});this.#t=gt.create({fetch:this.#r.bind(this,i??s.fetch.bind(s)),...o})}async fetch(e,t={}){let n=await this.#n(e,t?.headers),r=(_t(t?.headers)?this.#e:this.#t)[t?.method?.toLowerCase()??`get`],i=await r(e,{...t,headers:n}),a=i.headers.getSetCookie();return a&&await this.setCookies(a),i}async#n(e,t){let n=this.appendHeaders(t),r=await this.cookieStore.getAll(),i=r.filter(t=>!t.domain||vt(e).hostname.includes(t.domain));for(let e of r)i.find(t=>t.name===e.name)||e.domain||i.push(e);let a=i.map(e=>`${e.name}=${e.value}`).join(`; `);return a?(n.has(`cookie`)?n.get(`cookie`)||n.delete(`cookie`):n.set(`cookie`,a),n):(n.get(`cookie`)||n.delete(`cookie`),n)}async setCookies(e){let t=[];if(typeof e==`string`){let[n]=K([e]);n&&t.push(n)}else if(Array.isArray(e)&&typeof e.at(0)==`string`){let n=K(e);t.push(...n)}else Array.isArray(e)&&typeof e[0]!=`string`&&t.push(...e);if(!(!t||!t?.length))for(let e of t)await this.cookieStore.set(e)}appendHeaders(e){let t=new Headers(this.headers),n=e instanceof Headers?e.entries():Object.entries(e??{});for(let[e,r]of n)t.set(e,r);return t}setHeader(e,t){this.headers.set(e,t)}removeHeader(e){this.headers.delete(e)}async#r(e,t,n={}){let r=0,i=t instanceof Request?new URL(t.url):t,a=await this.#o(t,n)??{};for(a.redirect=`manual`;;){let t=await e(i,a),n=t.headers.getSetCookie();if(n.length&&await this.setCookies(n),!this.#a(t.status))return t;let o=t.headers.get(`location`);if(!o)return t;if(r>=20)throw Error(`Maximum redirect limit (20) exceeded`);r+=1,i=new URL(o,vt(i)),a=this.#i(a,t.status)??{},a.headers=await this.#n(i,a.headers)}}#i(e={},t){let n=e.method?.toUpperCase()??`GET`;if(t===303||(t===301||t===302)&&n===`POST`){let t=new Headers(e.headers);return t.delete(`content-length`),t.delete(`content-type`),{...e,method:`GET`,body:void 0,headers:t,redirect:`manual`}}return{...e,redirect:`manual`}}#a(e){return[301,302,303,307,308].includes(e)}async#o(e,t={}){if(!(e instanceof Request))return{...t};let n=new Headers(e.headers);for(let[e,r]of new Headers(t.headers).entries())n.set(e,r);let r=(t.method??e.method).toUpperCase(),i={...t,method:r,headers:n};return t.body!==void 0||r===`GET`||r===`HEAD`?(i.body=t.body,i):(i.body=await e.clone().arrayBuffer(),i)}};new yt;const{COMMON_CONTEXT:bt}=ye,xt=(e,t=`Eval`,n)=>{try{return ye.createScript(t,e,n)}catch(t){return console.debug(t),console.debug(e),console.error(`Syntax Error: ${t.message}`),null}},St=(e,t=1)=>{if(Array.isArray(e)||typeof e==`string`){let n=[];for(let r=1;r<=t;r++)n.push(e[Math.floor(Math.random()*e.length)]);return n}else return[]},Ct=e=>new(`default`in S?S.default:S)(e);var wt=class{#e;constructor(e){this.#e=Ct({cwd:c(e),configName:s(e,`.json`)})}get length(){return Object.keys(this.#e.store).length}clear(){this.#e.clear()}getItem(e){return this.#e.get(e)??null}key(e){return Object.keys(this.#e.store).at(e)??null}removeItem(e){this.#e.delete(e)}setItem(e,t){this.#e.set(e,t)}};const Tt=new me,q=e=>{if(!e||typeof e!=`object`)return!1;let t=`name`in e?String(e.name):``;return t===`ExitPromptError`||t===`AbortPromptError`},Et=e=>e&&e[0].toUpperCase()+e.slice(1),J=(e,t=!1)=>{if(typeof e==`boolean`)return e;if(typeof e!=`string`)return t;let n=e.trim().toLowerCase();return[`1`,`true`,`yes`,`y`,`on`].includes(n)?!0:[`0`,`false`,`no`,`n`,`off`].includes(n)?!1:t},Y=(e,t=0)=>{if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e!=`string`)return t;let n=Number(e);return Number.isFinite(n)?n:t},Dt=e=>{switch(e.type){case`checkbox`:return J(e.defaultValue,!1);case`number`:return Y(e.defaultValue,0);default:return e.defaultValue??``}},Ot=(e,t)=>{switch(e.type){case`checkbox`:return J(t,J(e.defaultValue,!1));case`number`:return Y(t,Y(e.defaultValue,0));default:return typeof t==`string`?t:t==null?e.defaultValue??``:String(t)}},kt=e=>{let t=Object.entries(e).map(([e,t])=>[e,Dt(t)]);return Object.fromEntries(t)},X=(e,t)=>{let n=Object.entries(e).map(([e,n])=>[e,Ot(n,t[e])]);return Object.fromEntries(n)},At=e=>!!e&&typeof e==`object`&&`fields`in e,jt=e=>{switch(e){case`password`:case`number`:case`checkbox`:return e;default:return`text`}},Mt=e=>{let t=Object.fromEntries(Object.entries(e.fields).map(([e,t])=>[e,{type:jt(t.type),title:t.label||e,description:t.description,placeholder:t.placeholder,defaultValue:t.defaultValue??t.value,required:t.required,autoFocus:t.autoFocus}]));return{message:e.description??``,options:{title:e.title,form:t,primaryAction:e.actions?.primaryAction,secondaryAction:e.actions?.secondaryAction}}},Z=async e=>{e?.onAction&&await e.onAction()},Nt=async e=>{{let{default:t}=await import(`./open-rfKrXH0-.mjs`);await t(e);return}let{shell:t}=await import(`electron`);await t.openExternal(e)},Pt=(e,t,n)=>{let r=typeof e==`string`?e:e?.toString();return r?.trim()&&Nt(r).catch(e=>{j.error(`Failed to open URL: ${r}`),j.debug(e instanceof Error?e.message:String(e))}),null},Q=async(e,t)=>{if(!t.length)return`dismiss`;try{return await h({message:e,loop:!1,choices:t.map(e=>({name:e.action.title,value:e.kind}))})}catch(e){if(q(e))return`dismiss`;throw e}},$=()=>{switch(u.type()){case`Darwin`:return`macOS`;case`Windows_NT`:return`Windows`;default:return`Linux`}};Object.defineProperties(Uint8Array.prototype,{toBase64:{value:function(){return Buffer.from(this).toString(`base64`)},writable:!0,configurable:!0},toHex:{value:function(){return Buffer.from(this).toString(`hex`)},writable:!0,configurable:!0}}),Object.defineProperties(Uint8Array,{fromBase64:{value:function(e){return new Uint8Array(Buffer.from(e,`base64`))},writable:!0,configurable:!0},fromHex:{value:function(e){return new Uint8Array(Buffer.from(e,`hex`))},writable:!0,configurable:!0}});const Ft=new Map([[24,[`Sequoia`,`15`]],[23,[`Sonoma`,`14`]],[22,[`Ventura`,`13`]],[21,[`Monterey`,`12`]],[20,[`Big Sur`,`11`]],[19,[`Catalina`,`10.15`]],[18,[`Mojave`,`10.14`]],[17,[`High Sierra`,`10.13`]],[16,[`Sierra`,`10.12`]],[15,[`El Capitan`,`10.11`]],[14,[`Yosemite`,`10.10`]],[13,[`Mavericks`,`10.9`]],[12,[`Mountain Lion`,`10.8`]],[11,[`Lion`,`10.7`]],[10,[`Snow Leopard`,`10.6`]],[9,[`Leopard`,`10.5`]],[8,[`Tiger`,`10.4`]],[7,[`Panther`,`10.3`]],[6,[`Jaguar`,`10.2`]],[5,[`Puma`,`10.1`]]]),It=()=>{let e=Number(u.release().split(`.`)[0]),[t,n]=Ft.get(e)||[`Unknown`,``];return{name:t,version:n}},Lt=()=>{switch($()){case`macOS`:return It().version;case`Windows`:return u.release();case`Linux`:return u.release()}},Rt=()=>{let e=[{brand:`Azot`,version:w.version.split(`.`).slice(0,2).join(`.`)},{brand:`Node.js`,version:process.version.replace(`v`,``).split(`.`).slice(0,1).join(`.`)}];return{mobile:!1,platform:$(),brands:e,getHighEntropyValues:async t=>{let n={mobile:!1,platform:$(),brands:e};return t.includes(`architecture`)&&(n.architecture=u.arch()),t.includes(`platform`)&&(n.platform=$()),t.includes(`platformVersion`)&&(n.platformVersion=Lt()),t.includes(`fullVersionList`)&&(n.fullVersionList=[{brand:`Azot`,version:w.version},{brand:`Node.js`,version:process.version}]),n}}},zt=({name:e=`extension`,dir:t=process.cwd(),title:n}={})=>{let r=E(l(t,e)),i=new wt(l(r,`storage.json`)),a=new ht({storagePath:l(r,`cookies.json`)}),o=new yt({cookieStore:a}),s=(e,t,n)=>e.split(t)[1]?.split(n)[0]?.trim(),c={sanitizeString:ke,execUrlPatterns:Ae,extendEpisodes:je,between:s,getRandomElements:St},u=n?Et(n):void 0,d=e=>e||u,f=async e=>(e.title||=u,await M.ask(e)),p=async(e,t={})=>{let n=d(t.title)??`Azot`,r=[t.primaryAction?{kind:`primary`,action:t.primaryAction}:null,t.secondaryAction?{kind:`secondary`,action:t.secondaryAction}:null].filter(Boolean);{if(!r.length)return j.info(e);let n=await Q(e,r);n===`primary`&&await Z(t.primaryAction),n===`secondary`&&await Z(t.secondaryAction);return}let i=(await Oe.ask({variant:`notify`,title:n,message:e,style:t.style,primaryAction:t.primaryAction?{title:t.primaryAction.title,style:t.primaryAction.style}:void 0,secondaryAction:t.secondaryAction?{title:t.secondaryAction.title,style:t.secondaryAction.style}:void 0})).action??`dismiss`;i===`primary`&&await Z(t.primaryAction),i===`secondary`&&await Z(t.secondaryAction)},h=async(e,t={})=>{let n=d(t.title)??`Azot`,r=!!t.primaryAction||!!t.secondaryAction,i=t.primaryAction??{title:`OK`},a=t.secondaryAction??{title:`Cancel`,style:`cancel`};if(r){let t=await Q(e,[{kind:`primary`,action:i},{kind:`secondary`,action:a}]);return t===`primary`?(await Z(i),!0):(t===`secondary`&&await Z(a),!1)}try{let n=await ee({message:e,default:!0});return n?await Z(t.primaryAction):await Z(t.secondaryAction),n}catch(e){if(q(e))return!1;throw e}let o=await Oe.ask({variant:`confirm`,title:n,message:e,style:t.style,primaryAction:{title:i.title,style:i.style},secondaryAction:{title:a.title,style:a.style}}),s=o.action===`primary`;return s?await Z(i):o.action===`secondary`&&await Z(a),s},g=async(e,t)=>{let n=kt(t.form),r=Object.entries(t.form),i=!!t.primaryAction||!!t.secondaryAction,a=t.primaryAction??{title:`Submit`},o=t.secondaryAction??{title:`Cancel`,style:`cancel`};{let s={};try{for(let[e,t]of r){let n=[t.title||e,t.description].filter(Boolean).join(` - `);if(t.type===`checkbox`){s[e]=await ee({message:n,default:J(t.defaultValue,!1)});continue}if(t.type===`number`){let r=Y(t.defaultValue,NaN);s[e]=await ne({message:n,default:Number.isFinite(r)?r:void 0,validate:e=>(e===void 0||Number.isNaN(e))&&t.required?`This field is required`:!0});continue}if(t.type===`password`){s[e]=await re({message:n,validate:t.required?e=>String(e??``).trim()?!0:`This field is required`:void 0});continue}s[e]=await te({message:n,default:t.defaultValue,validate:t.required?e=>String(e??``).trim()?!0:`This field is required`:void 0})}}catch(e){if(q(e))return n;throw e}if(!i)return X(t.form,s);let c=await Q(e,[{kind:`primary`,action:a},{kind:`secondary`,action:o}]);return c===`primary`?(await Z(a),X(t.form,s)):(c===`secondary`&&await Z(o),n)}let s=Object.fromEntries(r.map(([e,t])=>[e,{type:t.type,label:t.title||e,description:t.description,placeholder:t.placeholder,defaultValue:t.defaultValue,value:t.defaultValue,required:t.required,autoFocus:t.autoFocus}])),c=await f({title:d(t.title),description:e,fields:s,actions:i?{primaryAction:{title:a.title,style:a.style},secondaryAction:{title:o.title,style:o.style}}:void 0}),l=c.__action??`primary`,u={...c};return delete u.__action,l===`primary`?(await Z(t.primaryAction),X(t.form,u)):(l===`secondary`&&await Z(t.secondaryAction),n)},_=async(e,t)=>{if(At(e)){let t=Mt(e);return g(t.message,t.options)}if(!t)throw TypeError(`prompt(message, options) requires a form definition`);return g(e,t)},v={defineExtension:e=>e,version:w.version,sleep:m,sanitizeString:ke,execUrlPatterns:Ae,extendEpisodes:je,between:s,getRandomElements:St,utils:c,notify:p,confirm:h,prompt:_,input:Me,ask:_};class ie{get cookie(){return a.toString()}}let y={fetch:o.fetch.bind(o),Response,Request,Headers,AbortController,AbortSignal,URL,URLSearchParams,URLPattern,open:Pt,Blob,structuredClone,btoa,atob,TextEncoder,TextDecoder,Uint8Array,crypto,console:{log:console.log,info:j.info.bind(j),warn:j.warn.bind(j),error:(...e)=>{let t=String(e[0]??`Unknown error`);Tt.emit(`error`,{message:t}),j.error(t)},trace:j.trace.bind(j),debug:j.debug.bind(j)},Event,EventTarget,localStorage:i,cookieStore:a,document:new ie,eval:e=>xt(e)?.exports,navigator:{appName:`Azot`,appVersion:w.version,platform:process.platform,userAgent:`Azot/${w.version}`,userAgentData:Rt()}};return{http:o,question:M,common:c,Streamyx:v,Azot:v,window:y,...y}};export{zt as t};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
const e=require(`./chunk-350yNsax.cjs`);let t=require(`node:fs`),n=require(`node:path`);n=e.n(n);let r=require(`node:os`);r=e.n(r);let i=require(`node:timers/promises`),a=require(`@inquirer/prompts`),o=require(`node:fs/promises`);o=e.n(o);let s=require(`@logtape/logtape`),c=require(`@logtape/file`),l=require(`@logtape/pretty`),u=require(`node:process`),d=require(`node:events`);d=e.n(d),require(`picocolors`),require(`urlpattern-polyfill`);let f=require(`node:readline/promises`),p=require(`impit`),m=require(`undici`),h=require(`metavm`);h=e.n(h),require(`node:child_process`),require(`nanospinner`);let g=require(`conf`);g=e.n(g);var _=`@azot/desktop`,v=`5.0.0-alpha.55`,y=`Azot`,b={name:_,version:v,description:`A powerful, extensible app for downloading videos`,keywords:[`downloader`],homepage:`https://azot.mov`,author:`Vitaly Gashkov <vitalygashkov@vk.com>`,repository:{type:`git`,url:`https://github.com/azot-labs/azot.git`},funding:[{type:`individual`,url:`https://t.me/tribute/app?startapp=dqW2`}],files:[`out`],os:[`darwin`,`linux`,`win32`],main:`./out/main.js`,scripts:{start:`tsx --env-file-if-exists .env.local ./src/main/cli.ts`,preview:`electron-vite preview --config vite.desktop.config.mjs`,dev:`pnpm run bundle:extensions && electron-vite dev --config vite.desktop.config.mjs --watch`,cli:`pnpm run bundle:extensions && bun run ./src/main/cli.ts --env-file .env`,test:`vitest`,coverage:`vitest run --coverage`,"prepare:runtime-deps":`pnpm -C ../../packages/api build && pnpm -C ../../packages/molnia build`,"bundle:extensions":`node ./scripts/bundle-extensions.mjs`,"bundle:cli":`pnpm run bundle:extensions && node ./scripts/bundle-cli.mjs`,bundle:`pnpm run prepare:runtime-deps && pnpm run bundle:extensions && electron-vite build --config vite.cli.config.mjs && electron-vite build --config vite.desktop.config.mjs`,"build:cli":`pnpm run prepare:runtime-deps && pnpm run bundle:cli && bun build --compile ./out/cli.mjs --minify --outfile ./release/azot`,build:`pnpm run bundle && electron-builder build --config electron-builder.config.js`,"build:mac":`pnpm run bundle && electron-builder build --mac --arm64 --config electron-builder.config.js`,"build:mac:intel":`pnpm run bundle && electron-builder build --mac --x64 --config electron-builder.config.js`,"build:win":`pnpm run build:winconsole && pnpm run bundle && electron-builder build --win --config electron-builder.config.js`,"build:winconsole":`node ./scripts/build-winconsole.mjs`,"build:linux":`pnpm run bundle && electron-builder build --linux --config electron-builder.config.js`,"publish:desktop":`pnpm run bundle && electron-builder build --publish always --config electron-builder.config.js`,"sync:native-optionals":`node ./scripts/sync-native-optionals.mjs`,"check:native-optionals":`node ./scripts/sync-native-optionals.mjs --check`,typecheck:`pnpm run typecheck:node && pnpm run typecheck:web`,"typecheck:node":`tsc --noEmit -p tsconfig.node.json --composite false`,"typecheck:web":`vue-tsc --noEmit -p tsconfig.web.json --composite false`,lint:`../../node_modules/.bin/oxlint -c ../../.oxlintrc.json .`,"lint:fix":`../../node_modules/.bin/oxlint -c ../../.oxlintrc.json --fix .`,fmt:`../../node_modules/.bin/oxfmt -c ../../.oxfmtrc.json .`,"fmt:check":`../../node_modules/.bin/oxfmt -c ../../.oxfmtrc.json --check .`},dependencies:{"@electron-toolkit/preload":`^3.0.2`,"@electron-toolkit/utils":`^4.0.0`,"@gitbeaker/rest":`^43.8.0`,"@inquirer/prompts":`^8.3.0`,"@logtape/file":`^2.0.2`,"@logtape/logtape":`^2.0.2`,"@logtape/pretty":`^2.0.2`,"@tanstack/query-core":`^5.90.20`,"@tribute-tg/better-auth":`^2.1.9`,azot:`workspace:*`,"better-auth":`^1.4.19`,bytenode:`^1.5.7`,conf:`^15.1.0`,cookie:`^1.1.1`,"cross-spawn":`^7.0.6`,dasha:`4.0.0-alpha.12`,"electron-updater":`^6.8.3`,impit:`^0.11.0`,ky:`^1.14.3`,mediabunny:`^1.38.1`,metavm:`^1.4.5`,molnia:`workspace:*`,nanospinner:`^1.2.2`,okova:`^0.10.5`,open:`^11.0.0`,"p-queue":`^9.1.0`,picocolors:`^1.1.1`,"posthog-js":`^1.353.1`,semver:`^7.7.4`,"telegram-better-auth":`^0.0.8`,undici:`^7.22.0`,"urlpattern-polyfill":`^10.1.0`,yargs:`^18.0.0`,yauzl:`^3.2.0`,zod:`^4.3.6`},devDependencies:{"@electron-toolkit/tsconfig":`^2.0.0`,"@iconify/vue":`^5.0.0`,"@intlify/unplugin-vue-i18n":`^11.0.7`,"@tailwindcss/vite":`^4.2.1`,"@tanstack/vue-query":`^5.92.9`,"@types/node":`^25.3.0`,"@types/semver":`^7.7.1`,"@types/wicg-file-system-access":`^2023.10.7`,"@types/yargs":`^17.0.35`,"@vee-validate/zod":`^4.15.1`,"@vitejs/plugin-vue":`^6.0.4`,"@vueuse/core":`^14.2.1`,"class-variance-authority":`^0.7.1`,clsx:`^2.1.1`,dotenv:`^17.3.1`,electron:`41.0.2`,"electron-builder":`^26.8.1`,"electron-vite":`^5.0.0`,esbuild:`^0.27.3`,execa:`^9.6.1`,"lucide-vue-next":`^0.575.0`,"node-gyp":`^12.2.0`,"non.geist":`^1.0.4`,pinia:`^3.0.4`,postcss:`^8.5.6`,"reka-ui":`^2.8.2`,rolldown:`^1.0.0-rc.5`,sass:`^1.97.3`,"tailwind-merge":`^3.5.0`,tailwindcss:`^4.2.1`,"tailwindcss-animate":`^1.0.7`,tsdown:`^0.20.3`,tsx:`^4.21.0`,typescript:`^5.9.3`,"vee-validate":`^4.15.1`,vite:`^7.3.1`,"vite-plugin-static-copy":`^3.1.2`,vitest:`^4.0.18`,vue:`^3.5.29`,"vue-i18n":`^11.2.8`,"vue-sonner":`^2.0.9`,"vue-tsc":`^3.2.5`},peerDependencies:{vitest:`>=4.0.0`},optionalDependencies:{"impit-darwin-arm64":`0.11.0`,"impit-darwin-x64":`0.11.0`,"impit-linux-arm64-gnu":`0.11.0`,"impit-linux-arm64-musl":`0.11.0`,"impit-linux-x64-gnu":`0.11.0`,"impit-linux-x64-musl":`0.11.0`,"impit-win32-arm64-msvc":`0.11.0`,"impit-win32-x64-msvc":`0.11.0`},engines:{node:`>=24.10`},packageManager:`pnpm@10.28.2`,productName:y,readmeFilename:`README.md`};`pkg`in process&&process.pkg,process.versions.electron,`${v}${u.platform}${u.arch}${u.version}`,`${v}`,_.split(`/`)[0]?.split(`-`)[0]?.replace(`@`,``);const x=y,S={darwin:`macOS`,win32:`Windows`,linux:`Linux`}[process.platform],C=e=>{let n=typeof e==`string`?e:e[S];return(0,t.existsSync)(n)||(0,t.mkdirSync)(n,{recursive:!0}),n},w=(0,r.homedir)(),ee=(0,r.tmpdir)(),T=C({Windows:process.env.APPDATA||(0,n.join)(w,`AppData`,`Roaming`),macOS:(0,n.join)(w,`Library`,`Application Support`),Linux:process.env.XDG_DATA_HOME||(0,n.join)(w,`.local`,`share`)}),E=C({Windows:process.env.APPDATA||(0,n.join)(w,`AppData`,`Roaming`),macOS:(0,n.join)(w,`Library`,`Application Support`),Linux:process.env.XDG_CONFIG_HOME||(0,n.join)(w,`.config`)});C({Windows:process.env.LOCALAPPDATA||(0,n.join)(w,`AppData`,`Local`),macOS:(0,n.join)(w,`Library`,`Caches`),Linux:process.env.XDG_CACHE_HOME||(0,n.join)(w,`.cache`)}),C({Windows:(0,n.join)(w,`Downloads`),macOS:(0,n.join)(w,`Downloads`),Linux:process.env.XDG_DOWNLOAD_DIR||(0,n.join)(w,`Downloads`)});const te=C({Windows:(0,n.join)(T,x),macOS:(0,n.join)(T,x),Linux:(0,n.join)(T,x.toLowerCase())}),ne=C({Windows:(0,n.join)(E,x),macOS:(0,n.join)(E,x),Linux:(0,n.join)(E,x.toLowerCase())}),re=C({Windows:(0,n.join)(E,x,`logs`),macOS:(0,n.join)(w,`Library`,`Logs`,x),Linux:(0,n.join)(E,x.toLowerCase(),`logs`)});(0,n.join)(ee,x.toLowerCase());const D=C((0,n.join)(te,`extensions`));C((0,n.join)(D,`installed`)),C((0,n.join)(D,`work`)),(0,n.join)(D,`index.json`),(0,n.join)(ne,`settings.json`);const ie=process.argv.includes(`-d`)||process.argv.includes(`--debug`)||process.env.NODE_ENV_ELECTRON_VITE===`development`||!!process.env.ELECTRON_CLI_ARGS;(0,s.configureSync)({sinks:{console:(0,s.withFilter)((0,s.getConsoleSink)({formatter:(0,l.getPrettyFormatter)({timestamp:`time`,messageColor:null,messageStyle:null,levelStyle:null,icons:!1,colors:!0,level:`FULL`,categoryWidth:0,categoryStyle:null,categoryTruncate:`end`,wordWrap:!0})}),ie?`debug`:`info`),file:(0,c.getFileSink)((0,n.join)(re,`Azot_${new Date().toISOString().split(`.`)[0].replace(`T`,`_`).replaceAll(`-`,``).replaceAll(`:`,``)}.log`),{flushInterval:0})},loggers:[{category:[],lowestLevel:`trace`,sinks:[`console`,`file`]},{category:[`logtape`,`meta`],lowestLevel:`error`,sinks:[`console`]}]});const O=(0,s.getLogger)([]),k=new class e extends d.EventEmitter{static requestEventName=`feedback`;static responseEventName=`feedback:response`;#e=Promise.resolve();async ask(t){let n=()=>new Promise(n=>{this.once(e.responseEventName,e=>{n(e)}),this.emit(e.requestEventName,t)}),r=this.#e.then(n,n);return this.#e=r.then(()=>void 0,()=>void 0),r}listen(t){this.addListener(e.requestEventName,async n=>{let r=await t(n);this.emit(e.responseEventName,r)})}},ae=e=>{let t=[`}`,`{`,`%`,`>`,`<`,`^`,`;`,"`",`$`,`"`,`@`,`=`],n=e;for(let e in t)n=n.replaceAll(`/`,`_`).replaceAll(t[e],``);return n},oe=(e,t,n)=>{let r={},i={};for(let a of n)for(let n of t){let t=new URLPattern(n,a).exec(e);t&&(Object.assign(r,t.pathname.groups),Object.assign(i,t.search.groups))}return{pathname:r,search:i}},se=(e=new Map)=>{let t=(t,n)=>{for(let r of e.keys())for(let i of e.get(r)||[]){let e=n===void 0||isNaN(n),a=t===void 0||isNaN(t),o=!1;if(o=a?r===n:(e?isNaN(r):r===n)&&i===t,o)return!0}return!1},n=(t,n)=>{let r=n||NaN,i=t||NaN;e.has(r)?e.get(r)?.add(i):e.set(r,new Set([i]))},r=()=>Array.from(e.values()).flatMap(e=>Array.from(e)),i=e.size,a=r();return{items:e,has:t,set:n,getMin:()=>Math.min(...a),getMax:()=>Math.max(...a),seasonsCount:i,episodesCount:a.length}};new Intl.DateTimeFormat(`en-US`,{year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1}),new Intl.DateTimeFormat(`en-US`,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1});const A=new class e extends d.EventEmitter{static requestEventName=`form`;static responseEventName=`form:response`;title;#e=Promise.resolve();constructor(e={}){super(),this.title=e.title,this.listen(async e=>{let{title:n,description:r,fields:a,...o}=e,s={},c=Object.entries(a||o);if(!u.stdin.isTTY||process.platform===`win32`){let e=0,i=1,a=!1;if(process.platform===`win32`)try{e=(0,t.openSync)(`\\\\.\\CONIN$`,`r`),i=(0,t.openSync)(`\\\\.\\CONOUT$`,`w`),a=!0}catch{}try{for(let[t,{label:a,type:o}]of c){let c=o===`confirm`;s[t]=ue([n,r,a].filter(Boolean).join(`. `)+(c?` (y/n)`:``)+`: `,void 0,{inputFd:e,outputFd:i})??``}return s}finally{a&&((0,t.closeSync)(e),(0,t.closeSync)(i))}}u.stdin.setEncoding&&u.stdin.setEncoding(`utf8`),u.stdin.isTTY&&u.stdin.setRawMode&&u.stdin.setRawMode(!1),u.stdin.resume();let l=(0,f.createInterface)({input:u.stdin,output:u.stdout,terminal:!0});try{for(let[e,{label:t,type:a}]of c){let o=a===`confirm`,c=[n,r,t].filter(Boolean).join(`. `)+(o?` (y/n)`:``)+`: `;s[e]=await Promise.race([l.question(c),(0,i.setTimeout)(le,``)])}return s}finally{l.close()}})}async ask(t){let n=()=>new Promise(n=>{this.once(e.responseEventName,e=>{n(e)}),this.emit(e.requestEventName,t)}),r=this.#e.then(n,n);return this.#e=r.then(()=>void 0,()=>void 0),r}listen(t){this.addListener(e.requestEventName,async n=>{let r=await t(n);this.emit(e.responseEventName,r)})}},ce=async(e,t)=>{let n=t?.fields??{answer:{label:e}};return await A.ask({title:t?.title,description:e,fields:n})},le=12e4,ue=(e,n,r)=>{let i=r?.inputFd??0;(0,t.writeSync)(r?.outputFd??1,e||``);let a=Buffer.alloc(1),o=``;for(;;){try{(0,t.readSync)(i,a,0,1,null)}catch(e){if(e.code===`EOF`)break;throw e}let e=a.toString(`utf-8`);if(e===`
|
|
2
|
+
`||e===`\r`){if(e===`\r`)try{(0,t.readSync)(i,a,0,1,null),a.toString(`utf-8`)}catch(e){if(e.code===`EOF`)break;throw e}break}o+=e}return o.trim()||n};var j=class extends Error{response;request;options;constructor(e,t,n){let r=`${e.status||e.status===0?e.status:``} ${e.statusText??``}`.trim(),i=r?`status code ${r}`:`an unknown error`;super(`Request failed with ${i}: ${t.method} ${t.url}`),this.name=`HTTPError`,this.response=e,this.request=t,this.options=n}},de=class extends Error{name=`NonError`;value;constructor(e){let t=`Non-error value was thrown`;try{typeof e==`string`?t=e:e&&typeof e==`object`&&`message`in e&&typeof e.message==`string`&&(t=e.message)}catch{}super(t),this.value=e}},M=class extends Error{name=`ForceRetryError`;customDelay;code;customRequest;constructor(e){let t=e?.cause?e.cause instanceof Error?e.cause:new de(e.cause):void 0;super(e?.code?`Forced retry: ${e.code}`:`Forced retry`,t?{cause:t}:void 0),this.customDelay=e?.delay,this.code=e?.code,this.customRequest=e?.request}};const fe=(()=>{let e=!1,t=!1,n=typeof globalThis.ReadableStream==`function`,r=typeof globalThis.Request==`function`;if(n&&r)try{t=new globalThis.Request(`https://empty.invalid`,{body:new globalThis.ReadableStream,method:`POST`,get duplex(){return e=!0,`half`}}).headers.has(`Content-Type`)}catch(e){if(e instanceof Error&&e.message===`unsupported BodyInit type`)return!1;throw e}return e&&!t})(),pe=typeof globalThis.AbortController==`function`,N=typeof globalThis.AbortSignal==`function`&&typeof globalThis.AbortSignal.any==`function`,me=typeof globalThis.ReadableStream==`function`,he=typeof globalThis.FormData==`function`,P=[`get`,`post`,`put`,`patch`,`head`,`delete`],ge={json:`application/json`,text:`text/*`,formData:`multipart/form-data`,arrayBuffer:`*/*`,blob:`*/*`,bytes:`*/*`},F=2147483647,_e=new TextEncoder().encode(`------WebKitFormBoundaryaxpyiPgbbPti10Rw`).length,ve=Symbol(`stop`);var ye=class{options;constructor(e){this.options=e}};const be=e=>new ye(e),xe={json:!0,parseJson:!0,stringifyJson:!0,searchParams:!0,prefixUrl:!0,retry:!0,timeout:!0,hooks:!0,throwHttpErrors:!0,onDownloadProgress:!0,onUploadProgress:!0,fetch:!0,context:!0},Se={next:!0},Ce={method:!0,headers:!0,body:!0,mode:!0,credentials:!0,cache:!0,redirect:!0,referrer:!0,referrerPolicy:!0,integrity:!0,keepalive:!0,signal:!0,window:!0,duplex:!0},we=e=>{if(!e)return 0;if(e instanceof FormData){let t=0;for(let[n,r]of e)t+=_e,t+=new TextEncoder().encode(`Content-Disposition: form-data; name="${n}"`).length,t+=typeof r==`string`?new TextEncoder().encode(r).length:r.size;return t}if(e instanceof Blob)return e.size;if(e instanceof ArrayBuffer)return e.byteLength;if(typeof e==`string`)return new TextEncoder().encode(e).length;if(e instanceof URLSearchParams)return new TextEncoder().encode(e.toString()).length;if(`byteLength`in e)return e.byteLength;if(typeof e==`object`&&e)try{let t=JSON.stringify(e);return new TextEncoder().encode(t).length}catch{return 0}return 0},Te=(e,t,n)=>{let r,i=0;return e.pipeThrough(new TransformStream({transform(e,a){if(a.enqueue(e),r){i+=r.byteLength;let e=t===0?0:i/t;e>=1&&(e=1-2**-52),n?.({percent:e,totalBytes:Math.max(t,i),transferredBytes:i},r)}r=e},flush(){r&&(i+=r.byteLength,n?.({percent:1,totalBytes:Math.max(t,i),transferredBytes:i},r))}}))},Ee=(e,t)=>{if(!e.body)return e;if(e.status===204)return new Response(null,{status:e.status,statusText:e.statusText,headers:e.headers});let n=Math.max(0,Number(e.headers.get(`content-length`))||0);return new Response(Te(e.body,n,t),{status:e.status,statusText:e.statusText,headers:e.headers})},De=(e,t,n)=>{if(!e.body)return e;let r=we(n??e.body);return new Request(e,{duplex:`half`,body:Te(e.body,r,t)})},I=e=>typeof e==`object`&&!!e,L=(...e)=>{for(let t of e)if((!I(t)||Array.isArray(t))&&t!==void 0)throw TypeError("The `options` argument must be an object");return V({},...e)},R=(e={},t={})=>{let n=new globalThis.Headers(e),r=t instanceof globalThis.Headers,i=new globalThis.Headers(t);for(let[e,t]of i.entries())r&&t===`undefined`||t===void 0?n.delete(e):n.set(e,t);return n};function z(e,t,n){return Object.hasOwn(t,n)&&t[n]===void 0?[]:V(e[n]??[],t[n]??[])}const B=(e={},t={})=>({beforeRequest:z(e,t,`beforeRequest`),beforeRetry:z(e,t,`beforeRetry`),afterResponse:z(e,t,`afterResponse`),beforeError:z(e,t,`beforeError`)}),Oe=(e,t)=>{let n=new URLSearchParams;for(let r of[e,t])if(r!==void 0)if(r instanceof URLSearchParams)for(let[e,t]of r.entries())n.append(e,t);else if(Array.isArray(r))for(let e of r){if(!Array.isArray(e)||e.length!==2)throw TypeError(`Array search parameters must be provided in [[key, value], ...] format`);n.append(String(e[0]),String(e[1]))}else if(I(r))for(let[e,t]of Object.entries(r))t!==void 0&&n.append(e,String(t));else{let e=new URLSearchParams(r);for(let[t,r]of e.entries())n.append(t,r)}return n},V=(...e)=>{let t={},n={},r={},i,a=[];for(let o of e)if(Array.isArray(o))Array.isArray(t)||(t=[]),t=[...t,...o];else if(I(o)){for(let[e,n]of Object.entries(o)){if(e===`signal`&&n instanceof globalThis.AbortSignal){a.push(n);continue}if(e===`context`){if(n!=null&&(!I(n)||Array.isArray(n)))throw TypeError("The `context` option must be an object");t={...t,context:n==null?{}:{...t.context,...n}};continue}if(e===`searchParams`){i=n==null?void 0:i===void 0?n:Oe(i,n);continue}I(n)&&e in t&&(n=V(t[e],n)),t={...t,[e]:n}}I(o.hooks)&&(r=B(r,o.hooks),t.hooks=r),I(o.headers)&&(n=R(n,o.headers),t.headers=n)}return i!==void 0&&(t.searchParams=i),a.length>0&&(a.length===1?t.signal=a[0]:N?t.signal=AbortSignal.any(a):t.signal=a.at(-1)),t},ke=e=>P.includes(e)?e.toUpperCase():e,H={limit:2,methods:[`get`,`put`,`head`,`delete`,`options`,`trace`],statusCodes:[408,413,429,500,502,503,504],afterStatusCodes:[413,429,503],maxRetryAfter:1/0,backoffLimit:1/0,delay:e=>.3*2**(e-1)*1e3,jitter:void 0,retryOnTimeout:!1},Ae=(e={})=>{if(typeof e==`number`)return{...H,limit:e};if(e.methods&&!Array.isArray(e.methods))throw Error(`retry.methods must be an array`);if(e.methods&&=e.methods.map(e=>e.toLowerCase()),e.statusCodes&&!Array.isArray(e.statusCodes))throw Error(`retry.statusCodes must be an array`);let t=Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0));return{...H,...t}};var U=class extends Error{request;constructor(e){super(`Request timed out: ${e.method} ${e.url}`),this.name=`TimeoutError`,this.request=e}};async function je(e,t,n,r){return new Promise((i,a)=>{let o=setTimeout(()=>{n&&n.abort(),a(new U(e))},r.timeout);r.fetch(e,t).then(i).catch(a).then(()=>{clearTimeout(o)})})}async function Me(e,{signal:t}){return new Promise((n,r)=>{t&&(t.throwIfAborted(),t.addEventListener(`abort`,i,{once:!0}));function i(){clearTimeout(a),r(t.reason)}let a=setTimeout(()=>{t?.removeEventListener(`abort`,i),n()},e)})}const Ne=(e,t)=>{let n={};for(let r in t)Object.hasOwn(t,r)&&!(r in Ce)&&!(r in xe)&&(!(r in e)||r in Se)&&(n[r]=t[r]);return n},Pe=e=>e===void 0?!1:Array.isArray(e)?e.length>0:e instanceof URLSearchParams?e.size>0:typeof e==`object`?Object.keys(e).length>0:typeof e==`string`?e.trim().length>0:!!e;function Fe(e){return e instanceof j||e?.name===j.name}function Ie(e){return e instanceof U||e?.name===U.name}var W=class e{static create(t,n){let r=new e(t,n),i=r.#p(async()=>{if(typeof r.#i.timeout==`number`&&r.#i.timeout>2147483647)throw RangeError(`The \`timeout\` option cannot be greater than ${F}`);await Promise.resolve();let e=await r.#m();for(let t of r.#i.hooks.afterResponse){let n=r.#u(e.clone()),i;try{i=await t(r.request,r.#h(),n,{retryCount:r.#n})}catch(t){throw r.#f(n),r.#f(e),t}if(i instanceof ye)throw r.#f(n),r.#f(e),new M(i.options);let a=i instanceof globalThis.Response?i:e;n!==a&&r.#f(n),e!==a&&r.#f(e),e=a}if(r.#u(e),!e.ok&&(typeof r.#i.throwHttpErrors==`function`?r.#i.throwHttpErrors(e.status):r.#i.throwHttpErrors)){let t=new j(e,r.request,r.#h());for(let e of r.#i.hooks.beforeError)t=await e(t,{retryCount:r.#n});throw t}if(r.#i.onDownloadProgress){if(typeof r.#i.onDownloadProgress!=`function`)throw TypeError("The `onDownloadProgress` option must be a function");if(!me)throw Error("Streams are not supported in your environment. `ReadableStream` is missing.");let t=e.clone();return r.#f(e),Ee(t,r.#i.onDownloadProgress)}return e}).finally(()=>{let e=r.#a;r.#d(e?.body??void 0),r.#d(r.request.body??void 0)});for(let[e,t]of Object.entries(ge))e===`bytes`&&typeof globalThis.Response?.prototype?.bytes!=`function`||(i[e]=async()=>{r.request.headers.set(`accept`,r.request.headers.get(`accept`)||t);let a=await i;if(e===`json`){if(a.status===204)return``;let e=await a.text();return e===``?``:n.parseJson?n.parseJson(e):JSON.parse(e)}return a[e]()});return i}static#e(e){return e&&typeof e==`object`&&!Array.isArray(e)&&!(e instanceof URLSearchParams)?Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0)):e}request;#t;#n=0;#r;#i;#a;#o;#s;constructor(t,n={}){if(this.#r=t,this.#i={...n,headers:R(this.#r.headers,n.headers),hooks:B({beforeRequest:[],beforeRetry:[],beforeError:[],afterResponse:[]},n.hooks),method:ke(n.method??this.#r.method??`GET`),prefixUrl:String(n.prefixUrl||``),retry:Ae(n.retry),throwHttpErrors:n.throwHttpErrors??!0,timeout:n.timeout??1e4,fetch:n.fetch??globalThis.fetch.bind(globalThis),context:n.context??{}},typeof this.#r!=`string`&&!(this.#r instanceof URL||this.#r instanceof globalThis.Request))throw TypeError("`input` must be a string, URL, or Request");if(this.#i.prefixUrl&&typeof this.#r==`string`){if(this.#r.startsWith(`/`))throw Error("`input` must not begin with a slash when using `prefixUrl`");this.#i.prefixUrl.endsWith(`/`)||(this.#i.prefixUrl+=`/`),this.#r=this.#i.prefixUrl+this.#r}pe&&N&&(this.#o=this.#i.signal??this.#r.signal,this.#t=new globalThis.AbortController,this.#i.signal=this.#o?AbortSignal.any([this.#o,this.#t.signal]):this.#t.signal),fe&&(this.#i.duplex=`half`),this.#i.json!==void 0&&(this.#i.body=this.#i.stringifyJson?.(this.#i.json)??JSON.stringify(this.#i.json),this.#i.headers.set(`content-type`,this.#i.headers.get(`content-type`)??`application/json`));let r=n.headers&&new globalThis.Headers(n.headers).has(`content-type`);if(this.#r instanceof globalThis.Request&&(he&&this.#i.body instanceof globalThis.FormData||this.#i.body instanceof URLSearchParams)&&!r&&this.#i.headers.delete(`content-type`),this.request=new globalThis.Request(this.#r,this.#i),Pe(this.#i.searchParams)){let t=`?`+(typeof this.#i.searchParams==`string`?this.#i.searchParams.replace(/^\?/,``):new URLSearchParams(e.#e(this.#i.searchParams)).toString()),n=this.request.url.replace(/(?:\?.*?)?(?=#|$)/,t);this.request=new globalThis.Request(n,this.#i)}if(this.#i.onUploadProgress){if(typeof this.#i.onUploadProgress!=`function`)throw TypeError("The `onUploadProgress` option must be a function");if(!fe)throw Error("Request streams are not supported in your environment. The `duplex` option for `Request` is not available.");this.request=this.#_(this.request,this.#i.body??void 0)}}#c(){let e=this.#i.retry.delay(this.#n),t=e;this.#i.retry.jitter===!0?t=Math.random()*e:typeof this.#i.retry.jitter==`function`&&(t=this.#i.retry.jitter(e),(!Number.isFinite(t)||t<0)&&(t=e));let n=this.#i.retry.backoffLimit??1/0;return Math.min(n,t)}async#l(e){if(this.#n++,this.#n>this.#i.retry.limit)throw e;let t=e instanceof Error?e:new de(e);if(t instanceof M)return t.customDelay??this.#c();if(!this.#i.retry.methods.includes(this.request.method.toLowerCase()))throw e;if(this.#i.retry.shouldRetry!==void 0){let n=await this.#i.retry.shouldRetry({error:t,retryCount:this.#n});if(n===!1)throw e;if(n===!0)return this.#c()}if(Ie(e)&&!this.#i.retry.retryOnTimeout)throw e;if(Fe(e)){if(!this.#i.retry.statusCodes.includes(e.response.status))throw e;let t=e.response.headers.get(`Retry-After`)??e.response.headers.get(`RateLimit-Reset`)??e.response.headers.get(`X-RateLimit-Retry-After`)??e.response.headers.get(`X-RateLimit-Reset`)??e.response.headers.get(`X-Rate-Limit-Reset`);if(t&&this.#i.retry.afterStatusCodes.includes(e.response.status)){let e=Number(t)*1e3;Number.isNaN(e)?e=Date.parse(t)-Date.now():e>=Date.parse(`2024-01-01`)&&(e-=Date.now());let n=this.#i.retry.maxRetryAfter??e;return e<n?e:n}if(e.response.status===413)throw e}return this.#c()}#u(e){return this.#i.parseJson&&(e.json=async()=>this.#i.parseJson(await e.text())),e}#d(e){e&&e.cancel().catch(()=>void 0)}#f(e){this.#d(e.body??void 0)}async#p(e){try{return await e()}catch(t){let n=Math.min(await this.#l(t),F);if(this.#n<1)throw t;if(await Me(n,this.#o?{signal:this.#o}:{}),t instanceof M&&t.customRequest){let e=this.#i.signal?new globalThis.Request(t.customRequest,{signal:this.#i.signal}):new globalThis.Request(t.customRequest);this.#g(e)}for(let e of this.#i.hooks.beforeRetry){let n=await e({request:this.request,options:this.#h(),error:t,retryCount:this.#n});if(n instanceof globalThis.Request){this.#g(n);break}if(n instanceof globalThis.Response)return n;if(n===ve)return}return this.#p(e)}}async#m(){this.#t?.signal.aborted&&(this.#t=new globalThis.AbortController,this.#i.signal=this.#o?AbortSignal.any([this.#o,this.#t.signal]):this.#t.signal,this.request=new globalThis.Request(this.request,{signal:this.#i.signal}));for(let e of this.#i.hooks.beforeRequest){let t=await e(this.request,this.#h(),{retryCount:this.#n});if(t instanceof Response)return t;if(t instanceof globalThis.Request){this.#g(t);break}}let e=Ne(this.request,this.#i);return this.#a=this.request,this.request=this.#a.clone(),this.#i.timeout===!1?this.#i.fetch(this.#a,e):je(this.#a,e,this.#t,this.#i)}#h(){if(!this.#s){let{hooks:e,...t}=this.#i;this.#s=Object.freeze(t)}return this.#s}#g(e){this.#s=void 0,this.request=this.#_(e)}#_(e,t){return!this.#i.onUploadProgress||!e.body?e:De(e,this.#i.onUploadProgress,t??this.#i.body??void 0)}};
|
|
3
|
+
/*! MIT License © Sindre Sorhus */
|
|
4
|
+
const G=e=>{let t=(t,n)=>W.create(t,L(e,n));for(let n of P)t[n]=(t,r)=>W.create(t,L(e,r,{method:n}));return t.create=e=>G(L(e)),t.extend=t=>(typeof t==`function`&&(t=t(e??{})),G(L(e,t))),t.stop=ve,t.retry=be,t},Le=G();var Re=e.t((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.stringifySetCookie=s,e.serialize=s,e.parseSetCookie=c,e.stringifySetCookie=s,e.serialize=s;let t=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,n=/^[\u0021-\u003A\u003C-\u007E]*$/,r=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,i=/^[\u0020-\u003A\u003D-\u007E]*$/,a=/^-?\d+$/,o=Object.prototype.toString;function s(e,a,o){let s=typeof e==`object`?e:{...o,name:e,value:String(a)},c=(typeof a==`object`?a:o)?.encode||encodeURIComponent;if(!t.test(s.name))throw TypeError(`argument name is invalid: ${s.name}`);let l=s.value?c(s.value):``;if(!n.test(l))throw TypeError(`argument val is invalid: ${s.value}`);let u=s.name+`=`+l;if(s.maxAge!==void 0){if(!Number.isInteger(s.maxAge))throw TypeError(`option maxAge is invalid: ${s.maxAge}`);u+=`; Max-Age=`+s.maxAge}if(s.domain){if(!r.test(s.domain))throw TypeError(`option domain is invalid: ${s.domain}`);u+=`; Domain=`+s.domain}if(s.path){if(!i.test(s.path))throw TypeError(`option path is invalid: ${s.path}`);u+=`; Path=`+s.path}if(s.expires){if(!p(s.expires)||!Number.isFinite(s.expires.valueOf()))throw TypeError(`option expires is invalid: ${s.expires}`);u+=`; Expires=`+s.expires.toUTCString()}if(s.httpOnly&&(u+=`; HttpOnly`),s.secure&&(u+=`; Secure`),s.partitioned&&(u+=`; Partitioned`),s.priority)switch(typeof s.priority==`string`?s.priority.toLowerCase():void 0){case`low`:u+=`; Priority=Low`;break;case`medium`:u+=`; Priority=Medium`;break;case`high`:u+=`; Priority=High`;break;default:throw TypeError(`option priority is invalid: ${s.priority}`)}if(s.sameSite)switch(typeof s.sameSite==`string`?s.sameSite.toLowerCase():s.sameSite){case!0:case`strict`:u+=`; SameSite=Strict`;break;case`lax`:u+=`; SameSite=Lax`;break;case`none`:u+=`; SameSite=None`;break;default:throw TypeError(`option sameSite is invalid: ${s.sameSite}`)}return u}function c(e,t){let n=t?.decode||f,r=e.length,i=l(e,0,r),o=u(e,0,i),s=o===-1?{name:``,value:n(d(e,0,i))}:{name:d(e,0,o),value:n(d(e,o+1,i))},c=i+1;for(;c<r;){let t=l(e,c,r),n=u(e,c,t),i=n===-1?d(e,c,t):d(e,c,n),o=n===-1?void 0:d(e,n+1,t);switch(i.toLowerCase()){case`httponly`:s.httpOnly=!0;break;case`secure`:s.secure=!0;break;case`partitioned`:s.partitioned=!0;break;case`domain`:s.domain=o;break;case`path`:s.path=o;break;case`max-age`:o&&a.test(o)&&(s.maxAge=Number(o));break;case`expires`:if(!o)break;let e=new Date(o);Number.isFinite(e.valueOf())&&(s.expires=e);break;case`priority`:if(!o)break;let t=o.toLowerCase();(t===`low`||t===`medium`||t===`high`)&&(s.priority=t);break;case`samesite`:if(!o)break;let n=o.toLowerCase();(n===`lax`||n===`strict`||n===`none`)&&(s.sameSite=n);break}c=t+1}return s}function l(e,t,n){let r=e.indexOf(`;`,t);return r===-1?n:r}function u(e,t,n){let r=e.indexOf(`=`,t);return r<n?r:-1}function d(e,t,n){let r=t,i=n;do{let t=e.charCodeAt(r);if(t!==32&&t!==9)break}while(++r<i);for(;i>r;){let t=e.charCodeAt(i-1);if(t!==32&&t!==9)break;i--}return e.slice(r,i)}function f(e){if(e.indexOf(`%`)===-1)return e;try{return decodeURIComponent(e)}catch{return e}}function p(e){return o.call(e)===`[object Date]`}}))();const K=e=>{let t=[];for(let n of e)try{let e=(0,Re.parseSetCookie)(n),r={...e,expires:e.expires instanceof Date?e.expires.getTime():e.expires,sameSite:typeof e.sameSite==`boolean`?`strict`:e.sameSite};t.push(r)}catch(e){O.debug(e)}return t},ze=async e=>{let t=await(0,o.readFile)(e,`utf8`).catch(()=>``);if(!t)return[];let n=t.split(r.EOL).flatMap(e=>e.split(`
|
|
5
|
+
`)).filter(e=>!!e.trim()&&!e.startsWith(`# `)).map(e=>e.split(` `)),i=[];for(let e of n){let[t,n,r,a,o,s,c]=e;i.push({name:s,value:c,expires:Number(o),maxAge:void 0,domain:t.replace(`#HttpOnly_`,``),path:r,secure:a===`TRUE`,httpOnly:void 0,sameSite:void 0})}return i},Be=(e,t)=>e.name===t.name&&e.domain===t.domain&&e.path===t.path&&e.partitioned===t.partitioned,Ve=(e,t)=>{let n=[...e];for(let e of t){let t=n.findIndex(t=>Be(t,e));t>=0?n[t]=e:n.push(e)}return n},He=(e,t)=>{if(typeof e!=`string`)return e;if(t===void 0)throw TypeError(`CookieStore.set(name, value) requires a value argument`);return{name:e,value:t}};var Ue=class{#e={};#t;#n;#r=!1;static parse(e){return K(e)}constructor({storagePath:e}={}){this.#n=e,this.#t=[]}async import(e,{removeSource:t=!0}={}){if(await this.#i(),!(await(0,o.stat)(e).catch(()=>null))?.isFile())return 0;O.debug(`Importing cookies from ${e}`);let n=await ze(e);this.#t=Ve(this.#t,n);try{await this.#a(),t&&await(0,o.rm)(e,{force:!0})}catch(e){throw e}return n.length}async#i(){if(!(!this.#n||this.#r)){if((await(0,o.stat)(this.#n).catch(()=>null))?.isFile()){let e=await(0,o.readFile)(this.#n,`utf8`);this.#e=e?JSON.parse(e):{},this.#t=`cookies`in this.#e?this.#e.cookies:[]}this.#r=!0}}async#a(){if(!this.#n)return;let e=JSON.stringify({...this.#e,cookies:this.#t},null,2);await(0,o.writeFile)(this.#n,e,`utf8`)}async get(e){await this.#i();let t=typeof e==`string`?e:e.name;return this.#t.find(e=>e.name===t)??null}async getAll(e){if(await this.#i(),!e)return this.#t;let t=typeof e==`string`?e:e.name;return this.#t.filter(e=>e.name===t)??null}async set(e,t){await this.#i();let n=He(e,t);this.#t=Ve(this.#t,[n]),await this.#a()}async delete(e){if(await this.#i(),!e)this.#t=[];else{let t=typeof e==`string`?e:e.name;this.#t=this.#t.filter(e=>e.name!==t)}await this.#a()}toString(){return this.#t.map(e=>`${e.name}=${e.value}`).join(`; `)}};const We=Le.default??Le,Ge=e=>e?e instanceof Headers?e.has(`User-Agent`):typeof e==`object`&&e?`User-Agent`in e||`user-agent`in e:!1:!1,Ke=e=>e instanceof URL?e:e instanceof Request?new URL(e.url):new URL(e);var qe=class{cookieStore;headers;#e;#t;constructor(e={}){this.headers=new Headers,this.configure(e)}configure({maxRetries:e=3,proxyUrl:t,allowH2:n=!0,cookieStore:r,fetch:i}={}){this.cookieStore=r??this.cookieStore??new Ue;let a=t?new m.ProxyAgent({uri:t,allowH2:n}):new m.Agent({allowH2:n}),o={retry:e};this.#e=We.create({dispatcher:a,proxy:t,fetch:i,...o});let s=new p.Impit({browser:`chrome`,proxyUrl:t,ignoreTlsErrors:!0,followRedirects:!1});this.#t=We.create({fetch:this.#r.bind(this,i??s.fetch.bind(s)),...o})}async fetch(e,t={}){let n=await this.#n(e,t?.headers),r=(Ge(t?.headers)?this.#e:this.#t)[t?.method?.toLowerCase()??`get`],i=await r(e,{...t,headers:n}),a=i.headers.getSetCookie();return a&&await this.setCookies(a),i}async#n(e,t){let n=this.appendHeaders(t),r=await this.cookieStore.getAll(),i=r.filter(t=>!t.domain||Ke(e).hostname.includes(t.domain));for(let e of r)i.find(t=>t.name===e.name)||e.domain||i.push(e);let a=i.map(e=>`${e.name}=${e.value}`).join(`; `);return a?(n.has(`cookie`)?n.get(`cookie`)||n.delete(`cookie`):n.set(`cookie`,a),n):(n.get(`cookie`)||n.delete(`cookie`),n)}async setCookies(e){let t=[];if(typeof e==`string`){let[n]=K([e]);n&&t.push(n)}else if(Array.isArray(e)&&typeof e.at(0)==`string`){let n=K(e);t.push(...n)}else Array.isArray(e)&&typeof e[0]!=`string`&&t.push(...e);if(!(!t||!t?.length))for(let e of t)await this.cookieStore.set(e)}appendHeaders(e){let t=new Headers(this.headers),n=e instanceof Headers?e.entries():Object.entries(e??{});for(let[e,r]of n)t.set(e,r);return t}setHeader(e,t){this.headers.set(e,t)}removeHeader(e){this.headers.delete(e)}async#r(e,t,n={}){let r=0,i=t instanceof Request?new URL(t.url):t,a=await this.#o(t,n)??{};for(a.redirect=`manual`;;){let t=await e(i,a),n=t.headers.getSetCookie();if(n.length&&await this.setCookies(n),!this.#a(t.status))return t;let o=t.headers.get(`location`);if(!o)return t;if(r>=20)throw Error(`Maximum redirect limit (20) exceeded`);r+=1,i=new URL(o,Ke(i)),a=this.#i(a,t.status)??{},a.headers=await this.#n(i,a.headers)}}#i(e={},t){let n=e.method?.toUpperCase()??`GET`;if(t===303||(t===301||t===302)&&n===`POST`){let t=new Headers(e.headers);return t.delete(`content-length`),t.delete(`content-type`),{...e,method:`GET`,body:void 0,headers:t,redirect:`manual`}}return{...e,redirect:`manual`}}#a(e){return[301,302,303,307,308].includes(e)}async#o(e,t={}){if(!(e instanceof Request))return{...t};let n=new Headers(e.headers);for(let[e,r]of new Headers(t.headers).entries())n.set(e,r);let r=(t.method??e.method).toUpperCase(),i={...t,method:r,headers:n};return t.body!==void 0||r===`GET`||r===`HEAD`?(i.body=t.body,i):(i.body=await e.clone().arrayBuffer(),i)}};new qe;const{COMMON_CONTEXT:Je}=h.default,Ye=(e,t=`Eval`,n)=>{try{return h.default.createScript(t,e,n)}catch(t){return console.debug(t),console.debug(e),console.error(`Syntax Error: ${t.message}`),null}},Xe=(e,t=1)=>{if(Array.isArray(e)||typeof e==`string`){let n=[];for(let r=1;r<=t;r++)n.push(e[Math.floor(Math.random()*e.length)]);return n}else return[]},Ze=e=>new(`default`in g.default?g.default.default:g.default)(e);var Qe=class{#e;constructor(e){this.#e=Ze({cwd:(0,n.dirname)(e),configName:(0,n.basename)(e,`.json`)})}get length(){return Object.keys(this.#e.store).length}clear(){this.#e.clear()}getItem(e){return this.#e.get(e)??null}key(e){return Object.keys(this.#e.store).at(e)??null}removeItem(e){this.#e.delete(e)}setItem(e,t){this.#e.set(e,t)}};const $e=new d.default,q=e=>{if(!e||typeof e!=`object`)return!1;let t=`name`in e?String(e.name):``;return t===`ExitPromptError`||t===`AbortPromptError`},et=e=>e&&e[0].toUpperCase()+e.slice(1),J=(e,t=!1)=>{if(typeof e==`boolean`)return e;if(typeof e!=`string`)return t;let n=e.trim().toLowerCase();return[`1`,`true`,`yes`,`y`,`on`].includes(n)?!0:[`0`,`false`,`no`,`n`,`off`].includes(n)?!1:t},Y=(e,t=0)=>{if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e!=`string`)return t;let n=Number(e);return Number.isFinite(n)?n:t},tt=e=>{switch(e.type){case`checkbox`:return J(e.defaultValue,!1);case`number`:return Y(e.defaultValue,0);default:return e.defaultValue??``}},nt=(e,t)=>{switch(e.type){case`checkbox`:return J(t,J(e.defaultValue,!1));case`number`:return Y(t,Y(e.defaultValue,0));default:return typeof t==`string`?t:t==null?e.defaultValue??``:String(t)}},rt=e=>{let t=Object.entries(e).map(([e,t])=>[e,tt(t)]);return Object.fromEntries(t)},X=(e,t)=>{let n=Object.entries(e).map(([e,n])=>[e,nt(n,t[e])]);return Object.fromEntries(n)},it=e=>!!e&&typeof e==`object`&&`fields`in e,at=e=>{switch(e){case`password`:case`number`:case`checkbox`:return e;default:return`text`}},ot=e=>{let t=Object.fromEntries(Object.entries(e.fields).map(([e,t])=>[e,{type:at(t.type),title:t.label||e,description:t.description,placeholder:t.placeholder,defaultValue:t.defaultValue??t.value,required:t.required,autoFocus:t.autoFocus}]));return{message:e.description??``,options:{title:e.title,form:t,primaryAction:e.actions?.primaryAction,secondaryAction:e.actions?.secondaryAction}}},Z=async e=>{e?.onAction&&await e.onAction()},st=async e=>{{let{default:t}=await Promise.resolve().then(()=>require(`./open-DWfOU8xH.cjs`));await t(e);return}let{shell:t}=await import(`electron`);await t.openExternal(e)},ct=(e,t,n)=>{let r=typeof e==`string`?e:e?.toString();return r?.trim()&&st(r).catch(e=>{O.error(`Failed to open URL: ${r}`),O.debug(e instanceof Error?e.message:String(e))}),null},Q=async(e,t)=>{if(!t.length)return`dismiss`;try{return await(0,a.select)({message:e,loop:!1,choices:t.map(e=>({name:e.action.title,value:e.kind}))})}catch(e){if(q(e))return`dismiss`;throw e}},$=()=>{switch(r.default.type()){case`Darwin`:return`macOS`;case`Windows_NT`:return`Windows`;default:return`Linux`}};Object.defineProperties(Uint8Array.prototype,{toBase64:{value:function(){return Buffer.from(this).toString(`base64`)},writable:!0,configurable:!0},toHex:{value:function(){return Buffer.from(this).toString(`hex`)},writable:!0,configurable:!0}}),Object.defineProperties(Uint8Array,{fromBase64:{value:function(e){return new Uint8Array(Buffer.from(e,`base64`))},writable:!0,configurable:!0},fromHex:{value:function(e){return new Uint8Array(Buffer.from(e,`hex`))},writable:!0,configurable:!0}});const lt=new Map([[24,[`Sequoia`,`15`]],[23,[`Sonoma`,`14`]],[22,[`Ventura`,`13`]],[21,[`Monterey`,`12`]],[20,[`Big Sur`,`11`]],[19,[`Catalina`,`10.15`]],[18,[`Mojave`,`10.14`]],[17,[`High Sierra`,`10.13`]],[16,[`Sierra`,`10.12`]],[15,[`El Capitan`,`10.11`]],[14,[`Yosemite`,`10.10`]],[13,[`Mavericks`,`10.9`]],[12,[`Mountain Lion`,`10.8`]],[11,[`Lion`,`10.7`]],[10,[`Snow Leopard`,`10.6`]],[9,[`Leopard`,`10.5`]],[8,[`Tiger`,`10.4`]],[7,[`Panther`,`10.3`]],[6,[`Jaguar`,`10.2`]],[5,[`Puma`,`10.1`]]]),ut=()=>{let e=Number(r.default.release().split(`.`)[0]),[t,n]=lt.get(e)||[`Unknown`,``];return{name:t,version:n}},dt=()=>{switch($()){case`macOS`:return ut().version;case`Windows`:return r.default.release();case`Linux`:return r.default.release()}},ft=()=>{let e=[{brand:`Azot`,version:b.version.split(`.`).slice(0,2).join(`.`)},{brand:`Node.js`,version:process.version.replace(`v`,``).split(`.`).slice(0,1).join(`.`)}];return{mobile:!1,platform:$(),brands:e,getHighEntropyValues:async t=>{let n={mobile:!1,platform:$(),brands:e};return t.includes(`architecture`)&&(n.architecture=r.default.arch()),t.includes(`platform`)&&(n.platform=$()),t.includes(`platformVersion`)&&(n.platformVersion=dt()),t.includes(`fullVersionList`)&&(n.fullVersionList=[{brand:`Azot`,version:b.version},{brand:`Node.js`,version:process.version}]),n}}},pt=({name:e=`extension`,dir:t=process.cwd(),title:r}={})=>{let o=C((0,n.join)(t,e)),s=new Qe((0,n.join)(o,`storage.json`)),c=new Ue({storagePath:(0,n.join)(o,`cookies.json`)}),l=new qe({cookieStore:c}),u=(e,t,n)=>e.split(t)[1]?.split(n)[0]?.trim(),d={sanitizeString:ae,execUrlPatterns:oe,extendEpisodes:se,between:u,getRandomElements:Xe},f=r?et(r):void 0,p=e=>e||f,m=async e=>(e.title||=f,await A.ask(e)),h=async(e,t={})=>{let n=p(t.title)??`Azot`,r=[t.primaryAction?{kind:`primary`,action:t.primaryAction}:null,t.secondaryAction?{kind:`secondary`,action:t.secondaryAction}:null].filter(Boolean);{if(!r.length)return O.info(e);let n=await Q(e,r);n===`primary`&&await Z(t.primaryAction),n===`secondary`&&await Z(t.secondaryAction);return}let i=(await k.ask({variant:`notify`,title:n,message:e,style:t.style,primaryAction:t.primaryAction?{title:t.primaryAction.title,style:t.primaryAction.style}:void 0,secondaryAction:t.secondaryAction?{title:t.secondaryAction.title,style:t.secondaryAction.style}:void 0})).action??`dismiss`;i===`primary`&&await Z(t.primaryAction),i===`secondary`&&await Z(t.secondaryAction)},g=async(e,t={})=>{let n=p(t.title)??`Azot`,r=!!t.primaryAction||!!t.secondaryAction,i=t.primaryAction??{title:`OK`},o=t.secondaryAction??{title:`Cancel`,style:`cancel`};if(r){let t=await Q(e,[{kind:`primary`,action:i},{kind:`secondary`,action:o}]);return t===`primary`?(await Z(i),!0):(t===`secondary`&&await Z(o),!1)}try{let n=await(0,a.confirm)({message:e,default:!0});return n?await Z(t.primaryAction):await Z(t.secondaryAction),n}catch(e){if(q(e))return!1;throw e}let s=await k.ask({variant:`confirm`,title:n,message:e,style:t.style,primaryAction:{title:i.title,style:i.style},secondaryAction:{title:o.title,style:o.style}}),c=s.action===`primary`;return c?await Z(i):s.action===`secondary`&&await Z(o),c},_=async(e,t)=>{let n=rt(t.form),r=Object.entries(t.form),i=!!t.primaryAction||!!t.secondaryAction,o=t.primaryAction??{title:`Submit`},s=t.secondaryAction??{title:`Cancel`,style:`cancel`};{let c={};try{for(let[e,t]of r){let n=[t.title||e,t.description].filter(Boolean).join(` - `);if(t.type===`checkbox`){c[e]=await(0,a.confirm)({message:n,default:J(t.defaultValue,!1)});continue}if(t.type===`number`){let r=Y(t.defaultValue,NaN);c[e]=await(0,a.number)({message:n,default:Number.isFinite(r)?r:void 0,validate:e=>(e===void 0||Number.isNaN(e))&&t.required?`This field is required`:!0});continue}if(t.type===`password`){c[e]=await(0,a.password)({message:n,validate:t.required?e=>String(e??``).trim()?!0:`This field is required`:void 0});continue}c[e]=await(0,a.input)({message:n,default:t.defaultValue,validate:t.required?e=>String(e??``).trim()?!0:`This field is required`:void 0})}}catch(e){if(q(e))return n;throw e}if(!i)return X(t.form,c);let l=await Q(e,[{kind:`primary`,action:o},{kind:`secondary`,action:s}]);return l===`primary`?(await Z(o),X(t.form,c)):(l===`secondary`&&await Z(s),n)}let c=Object.fromEntries(r.map(([e,t])=>[e,{type:t.type,label:t.title||e,description:t.description,placeholder:t.placeholder,defaultValue:t.defaultValue,value:t.defaultValue,required:t.required,autoFocus:t.autoFocus}])),l=await m({title:p(t.title),description:e,fields:c,actions:i?{primaryAction:{title:o.title,style:o.style},secondaryAction:{title:s.title,style:s.style}}:void 0}),u=l.__action??`primary`,d={...l};return delete d.__action,u===`primary`?(await Z(t.primaryAction),X(t.form,d)):(u===`secondary`&&await Z(t.secondaryAction),n)},v=async(e,t)=>{if(it(e)){let t=ot(e);return _(t.message,t.options)}if(!t)throw TypeError(`prompt(message, options) requires a form definition`);return _(e,t)},y={defineExtension:e=>e,version:b.version,sleep:i.setTimeout,sanitizeString:ae,execUrlPatterns:oe,extendEpisodes:se,between:u,getRandomElements:Xe,utils:d,notify:h,confirm:g,prompt:v,input:ce,ask:v};class x{get cookie(){return c.toString()}}let S={fetch:l.fetch.bind(l),Response,Request,Headers,AbortController,AbortSignal,URL,URLSearchParams,URLPattern,open:ct,Blob,structuredClone,btoa,atob,TextEncoder,TextDecoder,Uint8Array,crypto,console:{log:console.log,info:O.info.bind(O),warn:O.warn.bind(O),error:(...e)=>{let t=String(e[0]??`Unknown error`);$e.emit(`error`,{message:t}),O.error(t)},trace:O.trace.bind(O),debug:O.debug.bind(O)},Event,EventTarget,localStorage:s,cookieStore:c,document:new x,eval:e=>Ye(e)?.exports,navigator:{appName:`Azot`,appVersion:b.version,platform:process.platform,userAgent:`Azot/${b.version}`,userAgentData:ft()}};return{http:l,question:A,common:d,Streamyx:y,Azot:y,window:S,...S}};Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return pt}});
|
package/dist/context.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./context-
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./context-NfAQSZZu.cjs`);exports.createContext=e.t;
|
package/dist/context.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./context-
|
|
1
|
+
import{t as e}from"./context-DHVMX6Ku.mjs";export{e as createContext};
|
package/dist/main.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=Azot??Streamyx??{};e&&(
|
|
1
|
+
Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});const e=Azot??Streamyx??{};e&&(e.defineExtension||=e=>e);const t=e.defineExtension,n=e.version,r=e.sleep,i=e.input,a=e.prompt,o=e.notify,s=e.confirm,c=e.ask,l=e.utils;exports.ask=c,exports.confirm=s,exports.default=e,exports.defineExtension=t,exports.input=i,exports.notify=o,exports.prompt=a,exports.sleep=r,exports.utils=l,exports.version=n;
|
package/dist/main.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=Azot??Streamyx??{};e&&(
|
|
1
|
+
const e=Azot??Streamyx??{};e&&(e.defineExtension||=e=>e);const t=e.defineExtension,n=e.version,r=e.sleep,i=e.input,a=e.prompt,o=e.notify,s=e.confirm,c=e.ask,l=e.utils;export{c as ask,s as confirm,e as default,t as defineExtension,i as input,o as notify,a as prompt,r as sleep,l as utils,n as version};
|
package/dist/vitest.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
require(`./chunk-350yNsax.cjs`);const e=require(`./context-
|
|
1
|
+
require(`./chunk-350yNsax.cjs`);const e=require(`./context-NfAQSZZu.cjs`);let t=require(`vitest`);const n=e.t();Object.entries(n).forEach(([e,n])=>{t.vi.stubGlobal(e,n)}),t.vi.mock(`azot`,async()=>n.Azot),(0,t.beforeEach)(async()=>{n.localStorage.clear();let e=await n.cookieStore.getAll();for(let t of e)await n.cookieStore.delete(t.name);t.vi.clearAllMocks()});
|
package/dist/vitest.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as e}from"./context-
|
|
1
|
+
import{t as e}from"./context-DHVMX6Ku.mjs";import{beforeEach as t,vi as n}from"vitest";const r=e();Object.entries(r).forEach(([e,t])=>{n.stubGlobal(e,t)}),n.mock(`azot`,async()=>r.Azot),t(async()=>{r.localStorage.clear();let e=await r.cookieStore.getAll();for(let t of e)await r.cookieStore.delete(t.name);n.clearAllMocks()});export{};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "azot",
|
|
3
|
-
"version": "5.0.0-alpha.
|
|
3
|
+
"version": "5.0.0-alpha.17",
|
|
4
4
|
"description": "Build extensions for Azot with Node.js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"api",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
}
|
|
38
38
|
},
|
|
39
39
|
"scripts": {
|
|
40
|
-
"dev": "tsdown --watch --no-fail-on-warn",
|
|
40
|
+
"dev": "tsdown --watch --minify=false --no-fail-on-warn",
|
|
41
41
|
"build": "tsdown --no-fail-on-warn",
|
|
42
42
|
"lint": "../../node_modules/.bin/oxlint -c ../../.oxlintrc.json .",
|
|
43
43
|
"lint:fix": "../../node_modules/.bin/oxlint -c ../../.oxlintrc.json --fix .",
|
|
@@ -45,17 +45,17 @@
|
|
|
45
45
|
"fmt:check": "../../node_modules/.bin/oxfmt -c ../../.oxfmtrc.json --check ."
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
|
-
"@inquirer/prompts": "^8.3.
|
|
49
|
-
"@logtape/file": "^2.0.
|
|
50
|
-
"@logtape/logtape": "^2.0.
|
|
51
|
-
"@logtape/pretty": "^2.0.
|
|
48
|
+
"@inquirer/prompts": "^8.3.2",
|
|
49
|
+
"@logtape/file": "^2.0.4",
|
|
50
|
+
"@logtape/logtape": "^2.0.4",
|
|
51
|
+
"@logtape/pretty": "^2.0.4",
|
|
52
52
|
"conf": "^15.1.0",
|
|
53
|
-
"impit": "^0.
|
|
53
|
+
"impit": "^0.11.0",
|
|
54
54
|
"javascript-obfuscator": "^4.1.1",
|
|
55
55
|
"metavm": "^1.4.5",
|
|
56
56
|
"nanospinner": "^1.2.2",
|
|
57
|
-
"tsdown": "^0.
|
|
58
|
-
"undici": "^7.
|
|
57
|
+
"tsdown": "^0.21.3",
|
|
58
|
+
"undici": "^7.24.4",
|
|
59
59
|
"urlpattern-polyfill": "^10.1.0"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
package/types/feedback.d.ts
CHANGED
|
@@ -26,10 +26,10 @@ export async function confirm(
|
|
|
26
26
|
},
|
|
27
27
|
): Promise<boolean>;
|
|
28
28
|
|
|
29
|
-
export type
|
|
29
|
+
export type PromptFieldType = "text" | "password" | "number" | "checkbox";
|
|
30
30
|
|
|
31
|
-
export type
|
|
32
|
-
type:
|
|
31
|
+
export type PromptField = {
|
|
32
|
+
type: PromptFieldType;
|
|
33
33
|
title?: string;
|
|
34
34
|
description?: string;
|
|
35
35
|
placeholder?: string;
|
|
@@ -38,19 +38,19 @@ export type AskField = {
|
|
|
38
38
|
autoFocus?: boolean;
|
|
39
39
|
};
|
|
40
40
|
|
|
41
|
-
export type
|
|
41
|
+
export type PromptForm = Record<string, PromptField>;
|
|
42
42
|
|
|
43
|
-
export type
|
|
43
|
+
export type PromptFieldValue<T extends PromptField> = T["type"] extends "checkbox"
|
|
44
44
|
? boolean
|
|
45
45
|
: T["type"] extends "number"
|
|
46
46
|
? number
|
|
47
47
|
: string;
|
|
48
48
|
|
|
49
|
-
export type
|
|
50
|
-
[K in keyof TForm]:
|
|
49
|
+
export type PromptResult<TForm extends PromptForm> = {
|
|
50
|
+
[K in keyof TForm]: PromptFieldValue<TForm[K]>;
|
|
51
51
|
};
|
|
52
52
|
|
|
53
|
-
export async function
|
|
53
|
+
export async function prompt<TForm extends PromptForm>(
|
|
54
54
|
message: string,
|
|
55
55
|
options: {
|
|
56
56
|
title?: string;
|
|
@@ -59,4 +59,28 @@ export async function ask<TForm extends AskForm>(
|
|
|
59
59
|
secondaryAction?: ActionOptions;
|
|
60
60
|
form: TForm;
|
|
61
61
|
},
|
|
62
|
-
): Promise<
|
|
62
|
+
): Promise<PromptResult<TForm>>;
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* @deprecated Use `prompt` instead
|
|
66
|
+
*/
|
|
67
|
+
export async function input<T extends string = "answer">(
|
|
68
|
+
message: string,
|
|
69
|
+
options?: DialogOptions<T>,
|
|
70
|
+
): Promise<Record<T, string>>;
|
|
71
|
+
|
|
72
|
+
export interface DialogOptions<T extends string> {
|
|
73
|
+
title?: string;
|
|
74
|
+
fields?: Record<T, InputField>;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export type InputField = {
|
|
78
|
+
type?: InputType;
|
|
79
|
+
label: string;
|
|
80
|
+
placeholder?: string;
|
|
81
|
+
defaultValue?: string;
|
|
82
|
+
required?: boolean;
|
|
83
|
+
options?: string[];
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
export type InputType = "text" | "password" | "number" | "checkbox" | "select" | "date" | "confirm";
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./chunk-DtROqxiw.mjs";import{existsSync as t,mkdirSync as n}from"node:fs";import r,{basename as i,dirname as a,join as o}from"node:path";import s,{EOL as c,homedir as l,tmpdir as u}from"node:os";import{setTimeout as d}from"node:timers/promises";import{confirm as f,input as ee,number as te,password as ne,select as p}from"@inquirer/prompts";import re,{readFile as m,rm as ie,stat as h,writeFile as ae}from"node:fs/promises";import{configureSync as oe,getConsoleSink as se,getLogger as ce,withFilter as le}from"@logtape/logtape";import{getFileSink as ue}from"@logtape/file";import{getPrettyFormatter as de}from"@logtape/pretty";import{arch as fe,platform as pe,stdin as me,stdout as he,version as ge}from"node:process";import _e,{EventEmitter as g}from"node:events";import"urlpattern-polyfill";import{createInterface as ve}from"node:readline/promises";import{Impit as ye}from"impit";import{Agent as be,ProxyAgent as xe}from"undici";import _ from"metavm";import"picocolors";import"nanospinner";import v from"conf";var y=`@azot/desktop`,b=`5.0.0-alpha.51`,Se=`Azot`,x={name:y,version:b,description:`A powerful, extensible app for downloading videos`,keywords:[`downloader`],homepage:`https://azot.mov`,author:`Vitaly Gashkov <vitalygashkov@vk.com>`,repository:{type:`git`,url:`https://github.com/azot-labs/azot.git`},funding:[{type:`individual`,url:`https://t.me/tribute/app?startapp=dqW2`}],files:[`out`],os:[`darwin`,`linux`,`win32`],main:`./out/main.js`,scripts:{start:`tsx --env-file .env ./src/main/cli.ts`,preview:`electron-vite preview --config vite.desktop.config.mjs`,dev:`pnpm run bundle:extensions && electron-vite dev --config vite.desktop.config.mjs --watch`,cli:`pnpm run bundle:extensions && bun run ./src/main/cli.ts --env-file .env`,test:`vitest`,coverage:`vitest run --coverage`,"prepare:runtime-deps":`pnpm -C ../../packages/api build && pnpm -C ../../packages/molnia build`,"bundle:extensions":`node ./scripts/bundle-extensions.mjs`,"bundle:cli":`pnpm run bundle:extensions && node ./scripts/bundle-cli.mjs`,bundle:`pnpm run prepare:runtime-deps && pnpm run bundle:extensions && electron-vite build --config vite.cli.config.mjs && electron-vite build --config vite.desktop.config.mjs`,"build:cli":`pnpm run prepare:runtime-deps && pnpm run bundle:cli && bun build --compile ./out/cli.mjs --minify --outfile ./release/azot`,build:`pnpm run bundle && electron-builder build --config electron-builder.config.js`,"build:mac":`pnpm run bundle && electron-builder build --mac --arm64 --config electron-builder.config.js`,"build:mac:intel":`pnpm run bundle && electron-builder build --mac --x64 --config electron-builder.config.js`,"build:win":`pnpm run bundle && electron-builder build --win --config electron-builder.config.js`,"build:linux":`pnpm run bundle && electron-builder build --linux --config electron-builder.config.js`,"publish:desktop":`pnpm run bundle && electron-builder build --publish always --config electron-builder.config.js`,"sync:native-optionals":`node ./scripts/sync-native-optionals.mjs`,"check:native-optionals":`node ./scripts/sync-native-optionals.mjs --check`,typecheck:`pnpm run typecheck:node && pnpm run typecheck:web`,"typecheck:node":`tsc --noEmit -p tsconfig.node.json --composite false`,"typecheck:web":`vue-tsc --noEmit -p tsconfig.web.json --composite false`,lint:`../../node_modules/.bin/oxlint -c ../../.oxlintrc.json .`,"lint:fix":`../../node_modules/.bin/oxlint -c ../../.oxlintrc.json --fix .`,fmt:`../../node_modules/.bin/oxfmt -c ../../.oxfmtrc.json .`,"fmt:check":`../../node_modules/.bin/oxfmt -c ../../.oxfmtrc.json --check .`},dependencies:{"@electron-toolkit/preload":`^3.0.2`,"@electron-toolkit/utils":`^4.0.0`,"@gitbeaker/rest":`^43.8.0`,"@inquirer/prompts":`^8.3.0`,"@logtape/file":`^2.0.2`,"@logtape/logtape":`^2.0.2`,"@logtape/pretty":`^2.0.2`,"@tanstack/query-core":`^5.90.20`,"@tribute-tg/better-auth":`^2.1.9`,azot:`workspace:*`,"better-auth":`^1.4.19`,bytenode:`^1.5.7`,conf:`^15.1.0`,cookie:`^1.1.1`,"cross-spawn":`^7.0.6`,dasha:`4.0.0-alpha.11`,"electron-updater":`^6.8.3`,impit:`^0.9.2`,ky:`^1.14.3`,mediabunny:`^1.38.1`,metavm:`^1.4.5`,molnia:`workspace:*`,nanospinner:`^1.2.2`,okova:`^0.10.5`,open:`^11.0.0`,"p-queue":`^9.1.0`,picocolors:`^1.1.1`,"posthog-js":`^1.353.1`,semver:`^7.7.4`,"telegram-better-auth":`^0.0.8`,undici:`^7.22.0`,"urlpattern-polyfill":`^10.1.0`,yargs:`^18.0.0`,yauzl:`^3.2.0`,zod:`^4.3.6`},devDependencies:{"@electron-toolkit/tsconfig":`^2.0.0`,"@iconify/vue":`^5.0.0`,"@intlify/unplugin-vue-i18n":`^11.0.7`,"@tailwindcss/vite":`^4.2.1`,"@tanstack/vue-query":`^5.92.9`,"@types/node":`^25.3.0`,"@types/semver":`^7.7.1`,"@types/wicg-file-system-access":`^2023.10.7`,"@types/yargs":`^17.0.35`,"@vee-validate/zod":`^4.15.1`,"@vitejs/plugin-vue":`^6.0.4`,"@vueuse/core":`^14.2.1`,"class-variance-authority":`^0.7.1`,clsx:`^2.1.1`,dotenv:`^17.3.1`,electron:`39.5.1`,"electron-builder":`^26.8.1`,"electron-vite":`^5.0.0`,esbuild:`^0.27.3`,execa:`^9.6.1`,"lucide-vue-next":`^0.575.0`,"non.geist":`^1.0.4`,pinia:`^3.0.4`,postcss:`^8.5.6`,"reka-ui":`^2.8.2`,rolldown:`^1.0.0-rc.5`,sass:`^1.97.3`,"tailwind-merge":`^3.5.0`,tailwindcss:`^4.2.1`,"tailwindcss-animate":`^1.0.7`,tsdown:`^0.20.3`,tsx:`^4.21.0`,typescript:`^5.9.3`,"vee-validate":`^4.15.1`,vite:`^7.3.1`,"vite-plugin-static-copy":`^3.1.2`,vitest:`^4.0.18`,vue:`^3.5.29`,"vue-i18n":`^11.2.8`,"vue-sonner":`^2.0.9`,"vue-tsc":`^3.2.5`},peerDependencies:{vitest:`>=4.0.0`},optionalDependencies:{"impit-darwin-arm64":`0.9.2`,"impit-darwin-x64":`0.9.2`,"impit-linux-arm64-gnu":`0.9.2`,"impit-linux-arm64-musl":`0.9.2`,"impit-linux-x64-gnu":`0.9.2`,"impit-linux-x64-musl":`0.9.2`,"impit-win32-arm64-msvc":`0.9.2`,"impit-win32-x64-msvc":`0.9.2`},engines:{node:`>=24.10`},packageManager:`pnpm@10.28.2`,productName:Se,readmeFilename:`README.md`};`pkg`in process&&process.pkg,process.versions.electron,`${b}${pe}${fe}${ge}`,`${b}`,y.split(`/`)[0]?.split(`-`)[0]?.replace(`@`,``);const S=Se,Ce={darwin:`macOS`,win32:`Windows`,linux:`Linux`}[process.platform],C=e=>{let r=typeof e==`string`?e:e[Ce];return t(r)||n(r,{recursive:!0}),r},w=l(),we=u(),T=C({Windows:process.env.APPDATA||o(w,`AppData`,`Roaming`),macOS:o(w,`Library`,`Application Support`),Linux:process.env.XDG_DATA_HOME||o(w,`.local`,`share`)}),E=C({Windows:process.env.APPDATA||o(w,`AppData`,`Roaming`),macOS:o(w,`Library`,`Application Support`),Linux:process.env.XDG_CONFIG_HOME||o(w,`.config`)});C({Windows:process.env.LOCALAPPDATA||o(w,`AppData`,`Local`),macOS:o(w,`Library`,`Caches`),Linux:process.env.XDG_CACHE_HOME||o(w,`.cache`)}),C({Windows:o(w,`Downloads`),macOS:o(w,`Downloads`),Linux:process.env.XDG_DOWNLOAD_DIR||o(w,`Downloads`)});const Te=C({Windows:o(T,S),macOS:o(T,S),Linux:o(T,S.toLowerCase())}),Ee=C({Windows:o(E,S),macOS:o(E,S),Linux:o(E,S.toLowerCase())}),De=C({Windows:o(E,S,`logs`),macOS:o(w,`Library`,`Logs`,S),Linux:o(E,S.toLowerCase(),`logs`)});o(we,S.toLowerCase());const D=C(o(Te,`extensions`));C(o(D,`installed`)),C(o(D,`work`)),o(D,`index.json`),o(Ee,`settings.json`);const Oe=process.argv.includes(`-d`)||process.argv.includes(`--debug`)||process.env.NODE_ENV_ELECTRON_VITE===`development`||!!process.env.ELECTRON_CLI_ARGS;oe({sinks:{console:le(se({formatter:de({timestamp:`time`,messageColor:null,messageStyle:null,levelStyle:null,icons:!1,colors:!0,level:`FULL`,categoryWidth:0,categoryStyle:null,categoryTruncate:`end`,wordWrap:!0})}),Oe?`debug`:`info`),file:ue(o(De,`Azot_${new Date().toISOString().split(`.`)[0].replace(`T`,`_`).replaceAll(`-`,``).replaceAll(`:`,``)}.log`),{flushInterval:0})},loggers:[{category:[],lowestLevel:`trace`,sinks:[`console`,`file`]},{category:[`logtape`,`meta`],lowestLevel:`error`,sinks:[`console`]}]});const O=ce([]),k=new class e extends g{static requestEventName=`feedback`;static responseEventName=`feedback:response`;#e=Promise.resolve();async ask(t){let n=()=>new Promise(n=>{this.once(e.responseEventName,e=>{n(e)}),this.emit(e.requestEventName,t)}),r=this.#e.then(n,n);return this.#e=r.then(()=>void 0,()=>void 0),r}listen(t){this.addListener(e.requestEventName,async n=>{let r=await t(n);this.emit(e.responseEventName,r)})}},ke=e=>{let t=[`}`,`{`,`%`,`>`,`<`,`^`,`;`,"`",`$`,`"`,`@`,`=`],n=e;for(let e in t)n=n.replaceAll(`/`,`_`).replaceAll(t[e],``);return n},Ae=(e,t,n)=>{let r={},i={};for(let a of n)for(let n of t){let t=new URLPattern(n,a).exec(e);t&&(Object.assign(r,t.pathname.groups),Object.assign(i,t.search.groups))}return{pathname:r,search:i}},A=(e=new Map)=>{let t=(t,n)=>{for(let r of e.keys())for(let i of e.get(r)||[]){let e=n===void 0||isNaN(n),a=t===void 0||isNaN(t),o=!1;if(o=a?r===n:(e?isNaN(r):r===n)&&i===t,o)return!0}return!1},n=(t,n)=>{let r=n||NaN,i=t||NaN;e.has(r)?e.get(r)?.add(i):e.set(r,new Set([i]))},r=()=>Array.from(e.values()).flatMap(e=>Array.from(e)),i=e.size,a=r();return{items:e,has:t,set:n,getMin:()=>Math.min(...a),getMax:()=>Math.max(...a),seasonsCount:i,episodesCount:a.length}};new Intl.DateTimeFormat(`en-US`,{year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1}),new Intl.DateTimeFormat(`en-US`,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1});const j=new class e extends g{static requestEventName=`form`;static responseEventName=`form:response`;title;#e=Promise.resolve();constructor(e={}){super(),this.title=e.title,this.listen(async e=>{let t=ve({input:me,output:he}),{title:n,description:r,fields:i,...a}=e,o={};for(let[e,{label:s,type:c}]of Object.entries(i||a)){let i=c===`confirm`,a=[n,r,s].filter(Boolean).join(`. `)+(i?` (y/n)`:``)+`: `;o[e]=await Promise.race([t.question(a),d(Me,``)])}return t.close(),o})}async ask(t){let n=()=>new Promise(n=>{this.once(e.responseEventName,e=>{n(e)}),this.emit(e.requestEventName,t)}),r=this.#e.then(n,n);return this.#e=r.then(()=>void 0,()=>void 0),r}listen(t){this.addListener(e.requestEventName,async n=>{let r=await t(n);this.emit(e.responseEventName,r)})}},je=async(e,t)=>{let n=t?.fields??{answer:{label:e}};return await j.ask({title:t?.title,description:e,fields:n})},Me=12e4;var M=class extends Error{response;request;options;constructor(e,t,n){let r=`${e.status||e.status===0?e.status:``} ${e.statusText??``}`.trim(),i=r?`status code ${r}`:`an unknown error`;super(`Request failed with ${i}: ${t.method} ${t.url}`),this.name=`HTTPError`,this.response=e,this.request=t,this.options=n}},Ne=class extends Error{name=`NonError`;value;constructor(e){let t=`Non-error value was thrown`;try{typeof e==`string`?t=e:e&&typeof e==`object`&&`message`in e&&typeof e.message==`string`&&(t=e.message)}catch{}super(t),this.value=e}},N=class extends Error{name=`ForceRetryError`;customDelay;code;customRequest;constructor(e){let t=e?.cause?e.cause instanceof Error?e.cause:new Ne(e.cause):void 0;super(e?.code?`Forced retry: ${e.code}`:`Forced retry`,t?{cause:t}:void 0),this.customDelay=e?.delay,this.code=e?.code,this.customRequest=e?.request}};const Pe=(()=>{let e=!1,t=!1,n=typeof globalThis.ReadableStream==`function`,r=typeof globalThis.Request==`function`;if(n&&r)try{t=new globalThis.Request(`https://empty.invalid`,{body:new globalThis.ReadableStream,method:`POST`,get duplex(){return e=!0,`half`}}).headers.has(`Content-Type`)}catch(e){if(e instanceof Error&&e.message===`unsupported BodyInit type`)return!1;throw e}return e&&!t})(),Fe=typeof globalThis.AbortController==`function`,Ie=typeof globalThis.AbortSignal==`function`&&typeof globalThis.AbortSignal.any==`function`,Le=typeof globalThis.ReadableStream==`function`,Re=typeof globalThis.FormData==`function`,ze=[`get`,`post`,`put`,`patch`,`head`,`delete`],Be={json:`application/json`,text:`text/*`,formData:`multipart/form-data`,arrayBuffer:`*/*`,blob:`*/*`,bytes:`*/*`},P=2147483647,Ve=new TextEncoder().encode(`------WebKitFormBoundaryaxpyiPgbbPti10Rw`).length,He=Symbol(`stop`);var F=class{options;constructor(e){this.options=e}};const Ue=e=>new F(e),We={json:!0,parseJson:!0,stringifyJson:!0,searchParams:!0,prefixUrl:!0,retry:!0,timeout:!0,hooks:!0,throwHttpErrors:!0,onDownloadProgress:!0,onUploadProgress:!0,fetch:!0,context:!0},Ge={next:!0},Ke={method:!0,headers:!0,body:!0,mode:!0,credentials:!0,cache:!0,redirect:!0,referrer:!0,referrerPolicy:!0,integrity:!0,keepalive:!0,signal:!0,window:!0,duplex:!0},qe=e=>{if(!e)return 0;if(e instanceof FormData){let t=0;for(let[n,r]of e)t+=Ve,t+=new TextEncoder().encode(`Content-Disposition: form-data; name="${n}"`).length,t+=typeof r==`string`?new TextEncoder().encode(r).length:r.size;return t}if(e instanceof Blob)return e.size;if(e instanceof ArrayBuffer)return e.byteLength;if(typeof e==`string`)return new TextEncoder().encode(e).length;if(e instanceof URLSearchParams)return new TextEncoder().encode(e.toString()).length;if(`byteLength`in e)return e.byteLength;if(typeof e==`object`&&e)try{let t=JSON.stringify(e);return new TextEncoder().encode(t).length}catch{return 0}return 0},I=(e,t,n)=>{let r,i=0;return e.pipeThrough(new TransformStream({transform(e,a){if(a.enqueue(e),r){i+=r.byteLength;let e=t===0?0:i/t;e>=1&&(e=1-2**-52),n?.({percent:e,totalBytes:Math.max(t,i),transferredBytes:i},r)}r=e},flush(){r&&(i+=r.byteLength,n?.({percent:1,totalBytes:Math.max(t,i),transferredBytes:i},r))}}))},Je=(e,t)=>{if(!e.body)return e;if(e.status===204)return new Response(null,{status:e.status,statusText:e.statusText,headers:e.headers});let n=Math.max(0,Number(e.headers.get(`content-length`))||0);return new Response(I(e.body,n,t),{status:e.status,statusText:e.statusText,headers:e.headers})},Ye=(e,t,n)=>{if(!e.body)return e;let r=qe(n??e.body);return new Request(e,{duplex:`half`,body:I(e.body,r,t)})},L=e=>typeof e==`object`&&!!e,R=(...e)=>{for(let t of e)if((!L(t)||Array.isArray(t))&&t!==void 0)throw TypeError("The `options` argument must be an object");return H({},...e)},z=(e={},t={})=>{let n=new globalThis.Headers(e),r=t instanceof globalThis.Headers,i=new globalThis.Headers(t);for(let[e,t]of i.entries())r&&t===`undefined`||t===void 0?n.delete(e):n.set(e,t);return n};function B(e,t,n){return Object.hasOwn(t,n)&&t[n]===void 0?[]:H(e[n]??[],t[n]??[])}const V=(e={},t={})=>({beforeRequest:B(e,t,`beforeRequest`),beforeRetry:B(e,t,`beforeRetry`),afterResponse:B(e,t,`afterResponse`),beforeError:B(e,t,`beforeError`)}),Xe=(e,t)=>{let n=new URLSearchParams;for(let r of[e,t])if(r!==void 0)if(r instanceof URLSearchParams)for(let[e,t]of r.entries())n.append(e,t);else if(Array.isArray(r))for(let e of r){if(!Array.isArray(e)||e.length!==2)throw TypeError(`Array search parameters must be provided in [[key, value], ...] format`);n.append(String(e[0]),String(e[1]))}else if(L(r))for(let[e,t]of Object.entries(r))t!==void 0&&n.append(e,String(t));else{let e=new URLSearchParams(r);for(let[t,r]of e.entries())n.append(t,r)}return n},H=(...e)=>{let t={},n={},r={},i,a=[];for(let o of e)if(Array.isArray(o))Array.isArray(t)||(t=[]),t=[...t,...o];else if(L(o)){for(let[e,n]of Object.entries(o)){if(e===`signal`&&n instanceof globalThis.AbortSignal){a.push(n);continue}if(e===`context`){if(n!=null&&(!L(n)||Array.isArray(n)))throw TypeError("The `context` option must be an object");t={...t,context:n==null?{}:{...t.context,...n}};continue}if(e===`searchParams`){i=n==null?void 0:i===void 0?n:Xe(i,n);continue}L(n)&&e in t&&(n=H(t[e],n)),t={...t,[e]:n}}L(o.hooks)&&(r=V(r,o.hooks),t.hooks=r),L(o.headers)&&(n=z(n,o.headers),t.headers=n)}return i!==void 0&&(t.searchParams=i),a.length>0&&(a.length===1?t.signal=a[0]:Ie?t.signal=AbortSignal.any(a):t.signal=a.at(-1)),t},Ze=e=>ze.includes(e)?e.toUpperCase():e,U={limit:2,methods:[`get`,`put`,`head`,`delete`,`options`,`trace`],statusCodes:[408,413,429,500,502,503,504],afterStatusCodes:[413,429,503],maxRetryAfter:1/0,backoffLimit:1/0,delay:e=>.3*2**(e-1)*1e3,jitter:void 0,retryOnTimeout:!1},Qe=(e={})=>{if(typeof e==`number`)return{...U,limit:e};if(e.methods&&!Array.isArray(e.methods))throw Error(`retry.methods must be an array`);if(e.methods&&=e.methods.map(e=>e.toLowerCase()),e.statusCodes&&!Array.isArray(e.statusCodes))throw Error(`retry.statusCodes must be an array`);let t=Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0));return{...U,...t}};var W=class extends Error{request;constructor(e){super(`Request timed out: ${e.method} ${e.url}`),this.name=`TimeoutError`,this.request=e}};async function $e(e,t,n,r){return new Promise((i,a)=>{let o=setTimeout(()=>{n&&n.abort(),a(new W(e))},r.timeout);r.fetch(e,t).then(i).catch(a).then(()=>{clearTimeout(o)})})}async function et(e,{signal:t}){return new Promise((n,r)=>{t&&(t.throwIfAborted(),t.addEventListener(`abort`,i,{once:!0}));function i(){clearTimeout(a),r(t.reason)}let a=setTimeout(()=>{t?.removeEventListener(`abort`,i),n()},e)})}const tt=(e,t)=>{let n={};for(let r in t)Object.hasOwn(t,r)&&!(r in Ke)&&!(r in We)&&(!(r in e)||r in Ge)&&(n[r]=t[r]);return n},nt=e=>e===void 0?!1:Array.isArray(e)?e.length>0:e instanceof URLSearchParams?e.size>0:typeof e==`object`?Object.keys(e).length>0:typeof e==`string`?e.trim().length>0:!!e;function rt(e){return e instanceof M||e?.name===M.name}function it(e){return e instanceof W||e?.name===W.name}var at=class e{static create(t,n){let r=new e(t,n),i=r.#p(async()=>{if(typeof r.#i.timeout==`number`&&r.#i.timeout>P)throw RangeError(`The \`timeout\` option cannot be greater than ${P}`);await Promise.resolve();let e=await r.#m();for(let t of r.#i.hooks.afterResponse){let n=r.#u(e.clone()),i;try{i=await t(r.request,r.#h(),n,{retryCount:r.#n})}catch(t){throw r.#f(n),r.#f(e),t}if(i instanceof F)throw r.#f(n),r.#f(e),new N(i.options);let a=i instanceof globalThis.Response?i:e;n!==a&&r.#f(n),e!==a&&r.#f(e),e=a}if(r.#u(e),!e.ok&&(typeof r.#i.throwHttpErrors==`function`?r.#i.throwHttpErrors(e.status):r.#i.throwHttpErrors)){let t=new M(e,r.request,r.#h());for(let e of r.#i.hooks.beforeError)t=await e(t,{retryCount:r.#n});throw t}if(r.#i.onDownloadProgress){if(typeof r.#i.onDownloadProgress!=`function`)throw TypeError("The `onDownloadProgress` option must be a function");if(!Le)throw Error("Streams are not supported in your environment. `ReadableStream` is missing.");let t=e.clone();return r.#f(e),Je(t,r.#i.onDownloadProgress)}return e}).finally(()=>{let e=r.#a;r.#d(e?.body??void 0),r.#d(r.request.body??void 0)});for(let[e,t]of Object.entries(Be))e===`bytes`&&typeof globalThis.Response?.prototype?.bytes!=`function`||(i[e]=async()=>{r.request.headers.set(`accept`,r.request.headers.get(`accept`)||t);let a=await i;if(e===`json`){if(a.status===204)return``;let e=await a.text();return e===``?``:n.parseJson?n.parseJson(e):JSON.parse(e)}return a[e]()});return i}static#e(e){return e&&typeof e==`object`&&!Array.isArray(e)&&!(e instanceof URLSearchParams)?Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0)):e}request;#t;#n=0;#r;#i;#a;#o;#s;constructor(t,n={}){if(this.#r=t,this.#i={...n,headers:z(this.#r.headers,n.headers),hooks:V({beforeRequest:[],beforeRetry:[],beforeError:[],afterResponse:[]},n.hooks),method:Ze(n.method??this.#r.method??`GET`),prefixUrl:String(n.prefixUrl||``),retry:Qe(n.retry),throwHttpErrors:n.throwHttpErrors??!0,timeout:n.timeout??1e4,fetch:n.fetch??globalThis.fetch.bind(globalThis),context:n.context??{}},typeof this.#r!=`string`&&!(this.#r instanceof URL||this.#r instanceof globalThis.Request))throw TypeError("`input` must be a string, URL, or Request");if(this.#i.prefixUrl&&typeof this.#r==`string`){if(this.#r.startsWith(`/`))throw Error("`input` must not begin with a slash when using `prefixUrl`");this.#i.prefixUrl.endsWith(`/`)||(this.#i.prefixUrl+=`/`),this.#r=this.#i.prefixUrl+this.#r}Fe&&Ie&&(this.#o=this.#i.signal??this.#r.signal,this.#t=new globalThis.AbortController,this.#i.signal=this.#o?AbortSignal.any([this.#o,this.#t.signal]):this.#t.signal),Pe&&(this.#i.duplex=`half`),this.#i.json!==void 0&&(this.#i.body=this.#i.stringifyJson?.(this.#i.json)??JSON.stringify(this.#i.json),this.#i.headers.set(`content-type`,this.#i.headers.get(`content-type`)??`application/json`));let r=n.headers&&new globalThis.Headers(n.headers).has(`content-type`);if(this.#r instanceof globalThis.Request&&(Re&&this.#i.body instanceof globalThis.FormData||this.#i.body instanceof URLSearchParams)&&!r&&this.#i.headers.delete(`content-type`),this.request=new globalThis.Request(this.#r,this.#i),nt(this.#i.searchParams)){let t=`?`+(typeof this.#i.searchParams==`string`?this.#i.searchParams.replace(/^\?/,``):new URLSearchParams(e.#e(this.#i.searchParams)).toString()),n=this.request.url.replace(/(?:\?.*?)?(?=#|$)/,t);this.request=new globalThis.Request(n,this.#i)}if(this.#i.onUploadProgress){if(typeof this.#i.onUploadProgress!=`function`)throw TypeError("The `onUploadProgress` option must be a function");if(!Pe)throw Error("Request streams are not supported in your environment. The `duplex` option for `Request` is not available.");this.request=this.#_(this.request,this.#i.body??void 0)}}#c(){let e=this.#i.retry.delay(this.#n),t=e;this.#i.retry.jitter===!0?t=Math.random()*e:typeof this.#i.retry.jitter==`function`&&(t=this.#i.retry.jitter(e),(!Number.isFinite(t)||t<0)&&(t=e));let n=this.#i.retry.backoffLimit??1/0;return Math.min(n,t)}async#l(e){if(this.#n++,this.#n>this.#i.retry.limit)throw e;let t=e instanceof Error?e:new Ne(e);if(t instanceof N)return t.customDelay??this.#c();if(!this.#i.retry.methods.includes(this.request.method.toLowerCase()))throw e;if(this.#i.retry.shouldRetry!==void 0){let n=await this.#i.retry.shouldRetry({error:t,retryCount:this.#n});if(n===!1)throw e;if(n===!0)return this.#c()}if(it(e)&&!this.#i.retry.retryOnTimeout)throw e;if(rt(e)){if(!this.#i.retry.statusCodes.includes(e.response.status))throw e;let t=e.response.headers.get(`Retry-After`)??e.response.headers.get(`RateLimit-Reset`)??e.response.headers.get(`X-RateLimit-Retry-After`)??e.response.headers.get(`X-RateLimit-Reset`)??e.response.headers.get(`X-Rate-Limit-Reset`);if(t&&this.#i.retry.afterStatusCodes.includes(e.response.status)){let e=Number(t)*1e3;Number.isNaN(e)?e=Date.parse(t)-Date.now():e>=Date.parse(`2024-01-01`)&&(e-=Date.now());let n=this.#i.retry.maxRetryAfter??e;return e<n?e:n}if(e.response.status===413)throw e}return this.#c()}#u(e){return this.#i.parseJson&&(e.json=async()=>this.#i.parseJson(await e.text())),e}#d(e){e&&e.cancel().catch(()=>void 0)}#f(e){this.#d(e.body??void 0)}async#p(e){try{return await e()}catch(t){let n=Math.min(await this.#l(t),P);if(this.#n<1)throw t;if(await et(n,this.#o?{signal:this.#o}:{}),t instanceof N&&t.customRequest){let e=this.#i.signal?new globalThis.Request(t.customRequest,{signal:this.#i.signal}):new globalThis.Request(t.customRequest);this.#g(e)}for(let e of this.#i.hooks.beforeRetry){let n=await e({request:this.request,options:this.#h(),error:t,retryCount:this.#n});if(n instanceof globalThis.Request){this.#g(n);break}if(n instanceof globalThis.Response)return n;if(n===He)return}return this.#p(e)}}async#m(){this.#t?.signal.aborted&&(this.#t=new globalThis.AbortController,this.#i.signal=this.#o?AbortSignal.any([this.#o,this.#t.signal]):this.#t.signal,this.request=new globalThis.Request(this.request,{signal:this.#i.signal}));for(let e of this.#i.hooks.beforeRequest){let t=await e(this.request,this.#h(),{retryCount:this.#n});if(t instanceof Response)return t;if(t instanceof globalThis.Request){this.#g(t);break}}let e=tt(this.request,this.#i);return this.#a=this.request,this.request=this.#a.clone(),this.#i.timeout===!1?this.#i.fetch(this.#a,e):$e(this.#a,e,this.#t,this.#i)}#h(){if(!this.#s){let{hooks:e,...t}=this.#i;this.#s=Object.freeze(t)}return this.#s}#g(e){this.#s=void 0,this.request=this.#_(e)}#_(e,t){return!this.#i.onUploadProgress||!e.body?e:Ye(e,this.#i.onUploadProgress,t??this.#i.body??void 0)}};
|
|
2
|
-
/*! MIT License © Sindre Sorhus */
|
|
3
|
-
const G=e=>{let t=(t,n)=>at.create(t,R(e,n));for(let n of ze)t[n]=(t,r)=>at.create(t,R(e,r,{method:n}));return t.create=e=>G(R(e)),t.extend=t=>(typeof t==`function`&&(t=t(e??{})),G(R(e,t))),t.stop=He,t.retry=Ue,t},ot=G();var st=e((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.stringifySetCookie=s,e.serialize=s,e.parseSetCookie=c,e.stringifySetCookie=s,e.serialize=s;let t=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,n=/^[\u0021-\u003A\u003C-\u007E]*$/,r=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,i=/^[\u0020-\u003A\u003D-\u007E]*$/,a=/^-?\d+$/,o=Object.prototype.toString;function s(e,a,o){let s=typeof e==`object`?e:{...o,name:e,value:String(a)},c=(typeof a==`object`?a:o)?.encode||encodeURIComponent;if(!t.test(s.name))throw TypeError(`argument name is invalid: ${s.name}`);let l=s.value?c(s.value):``;if(!n.test(l))throw TypeError(`argument val is invalid: ${s.value}`);let u=s.name+`=`+l;if(s.maxAge!==void 0){if(!Number.isInteger(s.maxAge))throw TypeError(`option maxAge is invalid: ${s.maxAge}`);u+=`; Max-Age=`+s.maxAge}if(s.domain){if(!r.test(s.domain))throw TypeError(`option domain is invalid: ${s.domain}`);u+=`; Domain=`+s.domain}if(s.path){if(!i.test(s.path))throw TypeError(`option path is invalid: ${s.path}`);u+=`; Path=`+s.path}if(s.expires){if(!ee(s.expires)||!Number.isFinite(s.expires.valueOf()))throw TypeError(`option expires is invalid: ${s.expires}`);u+=`; Expires=`+s.expires.toUTCString()}if(s.httpOnly&&(u+=`; HttpOnly`),s.secure&&(u+=`; Secure`),s.partitioned&&(u+=`; Partitioned`),s.priority)switch(typeof s.priority==`string`?s.priority.toLowerCase():void 0){case`low`:u+=`; Priority=Low`;break;case`medium`:u+=`; Priority=Medium`;break;case`high`:u+=`; Priority=High`;break;default:throw TypeError(`option priority is invalid: ${s.priority}`)}if(s.sameSite)switch(typeof s.sameSite==`string`?s.sameSite.toLowerCase():s.sameSite){case!0:case`strict`:u+=`; SameSite=Strict`;break;case`lax`:u+=`; SameSite=Lax`;break;case`none`:u+=`; SameSite=None`;break;default:throw TypeError(`option sameSite is invalid: ${s.sameSite}`)}return u}function c(e,t){let n=t?.decode||f,r=e.length,i=l(e,0,r),o=u(e,0,i),s=o===-1?{name:``,value:n(d(e,0,i))}:{name:d(e,0,o),value:n(d(e,o+1,i))},c=i+1;for(;c<r;){let t=l(e,c,r),n=u(e,c,t),i=n===-1?d(e,c,t):d(e,c,n),o=n===-1?void 0:d(e,n+1,t);switch(i.toLowerCase()){case`httponly`:s.httpOnly=!0;break;case`secure`:s.secure=!0;break;case`partitioned`:s.partitioned=!0;break;case`domain`:s.domain=o;break;case`path`:s.path=o;break;case`max-age`:o&&a.test(o)&&(s.maxAge=Number(o));break;case`expires`:if(!o)break;let e=new Date(o);Number.isFinite(e.valueOf())&&(s.expires=e);break;case`priority`:if(!o)break;let t=o.toLowerCase();(t===`low`||t===`medium`||t===`high`)&&(s.priority=t);break;case`samesite`:if(!o)break;let n=o.toLowerCase();(n===`lax`||n===`strict`||n===`none`)&&(s.sameSite=n);break}c=t+1}return s}function l(e,t,n){let r=e.indexOf(`;`,t);return r===-1?n:r}function u(e,t,n){let r=e.indexOf(`=`,t);return r<n?r:-1}function d(e,t,n){let r=t,i=n;do{let t=e.charCodeAt(r);if(t!==32&&t!==9)break}while(++r<i);for(;i>r;){let t=e.charCodeAt(i-1);if(t!==32&&t!==9)break;i--}return e.slice(r,i)}function f(e){if(e.indexOf(`%`)===-1)return e;try{return decodeURIComponent(e)}catch{return e}}function ee(e){return o.call(e)===`[object Date]`}}))();const K=e=>{let t=[];for(let n of e)try{let e=(0,st.parseSetCookie)(n),r={...e,expires:e.expires instanceof Date?e.expires.getTime():e.expires,sameSite:typeof e.sameSite==`boolean`?`strict`:e.sameSite};t.push(r)}catch(e){O.debug(e)}return t},ct=async e=>{let t=await m(e,`utf8`).catch(()=>``);if(!t)return[];let n=t.split(c).flatMap(e=>e.split(`
|
|
4
|
-
`)).filter(e=>!!e.trim()&&!e.startsWith(`# `)).map(e=>e.split(` `)),r=[];for(let e of n){let[t,n,i,a,o,s,c]=e;r.push({name:s,value:c,expires:Number(o),maxAge:void 0,domain:t.replace(`#HttpOnly_`,``),path:i,secure:a===`TRUE`,httpOnly:void 0,sameSite:void 0})}return r},lt=(e,t)=>{if(typeof e!=`string`)return e;if(t===void 0)throw TypeError(`CookieStore.set(name, value) requires a value argument`);return{name:e,value:t}};var ut=class{#e={};#t;#n;#r=!1;static parse(e){return K(e)}constructor({storagePath:e}={}){this.#n=e,this.#t=[]}async import(e){(await h(e).catch(()=>null))?.isFile()&&(O.debug(`Importing cookies from ${e}`),this.#t=await ct(e),await ie(e,{recursive:!0,force:!0}))}async#i(){if(!(!this.#n||this.#r)){if((await h(this.#n).catch(()=>null))?.isFile()){let e=await m(this.#n,`utf8`);this.#e=e?JSON.parse(e):{},this.#t=`cookies`in this.#e?this.#e.cookies:[]}this.#r=!0}}async#a(){if(!this.#n)return;let e=JSON.stringify({...this.#e,cookies:this.#t},null,2);await ae(this.#n,e,`utf8`)}async get(e){await this.#i();let t=typeof e==`string`?e:e.name;return this.#t.find(e=>e.name===t)??null}async getAll(e){if(await this.#i(),!e)return this.#t;let t=typeof e==`string`?e:e.name;return this.#t.filter(e=>e.name===t)??null}async set(e,t){await this.#i();let n=lt(e,t);this.#t=this.#t.filter(e=>!(e.name===n.name&&e.domain===n.domain)),this.#t.push(n),await this.#a()}async delete(e){if(await this.#i(),!e)this.#t=[];else{let t=typeof e==`string`?e:e.name;this.#t=this.#t.filter(e=>e.name!==t)}await this.#a()}toString(){return this.#t.map(e=>`${e.name}=${e.value}`).join(`; `)}};const dt=ot.default??ot,ft=e=>e?e instanceof Headers?e.has(`User-Agent`):typeof e==`object`&&e?`User-Agent`in e||`user-agent`in e:!1:!1,pt=e=>e instanceof URL?e:e instanceof Request?new URL(e.url):new URL(e);var mt=class{cookieStore;headers;#e;#t;constructor(e={}){this.headers=new Headers,this.configure(e)}configure({maxRetries:e=3,proxyUrl:t,allowH2:n=!0,cookieStore:r}={}){this.cookieStore=r??this.cookieStore??new ut;let i=t?new xe({uri:t,allowH2:n}):new be({allowH2:n}),a={retry:e};this.#e=dt.create({dispatcher:i,proxy:t,...a});let o=new ye({browser:`chrome`,proxyUrl:t,ignoreTlsErrors:!0,followRedirects:!0});this.#t=dt.create({fetch:o.fetch.bind(o),...a})}async fetch(e,t={}){let n=await this.#n(e,t?.headers),r=(ft(t?.headers)?this.#e:this.#t)[t?.method?.toLowerCase()??`get`],i=await r(e,{...t,headers:n}),a=i.headers.getSetCookie();return a&&await this.setCookies(a),i}async#n(e,t){let n=this.appendHeaders(t),r=await this.cookieStore.getAll(),i=r.filter(t=>!t.domain||pt(e).hostname.includes(t.domain));for(let e of r)i.find(t=>t.name===e.name)||e.domain||i.push(e);let a=i.map(e=>`${e.name}=${e.value}`).join(`; `);return n.has(`cookie`)?n.get(`cookie`)||n.delete(`cookie`):n.set(`cookie`,a),n}async setCookies(e){let t=[];if(typeof e==`string`){let[n]=K([e]);n&&t.push(n)}else if(Array.isArray(e)&&typeof e.at(0)==`string`){let n=K(e);t.push(...n)}else Array.isArray(e)&&typeof e[0]!=`string`&&t.push(...e);if(!(!t||!t?.length))for(let e of t)await this.cookieStore.set(e)}appendHeaders(e){let t=new Headers(this.headers);for(let[n,r]of Object.entries(e??{}))t.set(n,r);return t}setHeader(e,t){this.headers.set(e,t)}removeHeader(e){this.headers.delete(e)}};new mt;const{COMMON_CONTEXT:ht}=_,gt=(e,t=`Eval`,n)=>{try{return _.createScript(t,e,n)}catch(t){return console.debug(t),console.debug(e),console.error(`Syntax Error: ${t.message}`),null}},_t=(e,t=1)=>{if(Array.isArray(e)||typeof e==`string`){let n=[];for(let r=1;r<=t;r++)n.push(e[Math.floor(Math.random()*e.length)]);return n}else return[]},vt=e=>new(`default`in v?v.default:v)(e);var yt=class{#e;constructor(e){this.#e=vt({cwd:a(e),configName:i(e,`.json`)})}get length(){return Object.keys(this.#e.store).length}clear(){this.#e.clear()}getItem(e){return this.#e.get(e)??null}key(e){return Object.keys(this.#e.store).at(e)??null}removeItem(e){this.#e.delete(e)}setItem(e,t){this.#e.set(e,t)}};const bt=new _e,q=e=>{if(!e||typeof e!=`object`)return!1;let t=`name`in e?String(e.name):``;return t===`ExitPromptError`||t===`AbortPromptError`},xt=e=>e[0].toUpperCase()+e.slice(1),J=(e,t=!1)=>{if(typeof e==`boolean`)return e;if(typeof e!=`string`)return t;let n=e.trim().toLowerCase();return[`1`,`true`,`yes`,`y`,`on`].includes(n)?!0:[`0`,`false`,`no`,`n`,`off`].includes(n)?!1:t},Y=(e,t=0)=>{if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e!=`string`)return t;let n=Number(e);return Number.isFinite(n)?n:t},St=e=>{switch(e.type){case`checkbox`:return J(e.defaultValue,!1);case`number`:return Y(e.defaultValue,0);default:return e.defaultValue??``}},Ct=(e,t)=>{switch(e.type){case`checkbox`:return J(t,J(e.defaultValue,!1));case`number`:return Y(t,Y(e.defaultValue,0));default:return typeof t==`string`?t:t==null?e.defaultValue??``:String(t)}},wt=e=>{let t=Object.entries(e).map(([e,t])=>[e,St(t)]);return Object.fromEntries(t)},X=(e,t)=>{let n=Object.entries(e).map(([e,n])=>[e,Ct(n,t[e])]);return Object.fromEntries(n)},Z=async e=>{e?.onAction&&await e.onAction()},Tt=async e=>{{let{default:t}=await import(`./open-DxsWuSWk.mjs`);await t(e);return}let{shell:t}=await import(`electron`);await t.openExternal(e)},Et=(e,t,n)=>{let r=typeof e==`string`?e:e?.toString();return r?.trim()&&Tt(r).catch(e=>{O.error(`Failed to open URL: ${r}`),O.debug(e instanceof Error?e.message:String(e))}),null},Q=async(e,t)=>{if(!t.length)return`dismiss`;try{return await p({message:e,loop:!1,choices:t.map(e=>({name:e.action.title,value:e.kind}))})}catch(e){if(q(e))return`dismiss`;throw e}},$=()=>{switch(s.type()){case`Darwin`:return`macOS`;case`Windows_NT`:return`Windows`;default:return`Linux`}};Object.defineProperties(Uint8Array.prototype,{toBase64:{value:function(){return Buffer.from(this).toString(`base64`)},writable:!0,configurable:!0},toHex:{value:function(){return Buffer.from(this).toString(`hex`)},writable:!0,configurable:!0}}),Object.defineProperties(Uint8Array,{fromBase64:{value:function(e){return new Uint8Array(Buffer.from(e,`base64`))},writable:!0,configurable:!0},fromHex:{value:function(e){return new Uint8Array(Buffer.from(e,`hex`))},writable:!0,configurable:!0}});const Dt=new Map([[24,[`Sequoia`,`15`]],[23,[`Sonoma`,`14`]],[22,[`Ventura`,`13`]],[21,[`Monterey`,`12`]],[20,[`Big Sur`,`11`]],[19,[`Catalina`,`10.15`]],[18,[`Mojave`,`10.14`]],[17,[`High Sierra`,`10.13`]],[16,[`Sierra`,`10.12`]],[15,[`El Capitan`,`10.11`]],[14,[`Yosemite`,`10.10`]],[13,[`Mavericks`,`10.9`]],[12,[`Mountain Lion`,`10.8`]],[11,[`Lion`,`10.7`]],[10,[`Snow Leopard`,`10.6`]],[9,[`Leopard`,`10.5`]],[8,[`Tiger`,`10.4`]],[7,[`Panther`,`10.3`]],[6,[`Jaguar`,`10.2`]],[5,[`Puma`,`10.1`]]]),Ot=()=>{let e=Number(s.release().split(`.`)[0]),[t,n]=Dt.get(e)||[`Unknown`,``];return{name:t,version:n}},kt=()=>{switch($()){case`macOS`:return Ot().version;case`Windows`:return s.release();case`Linux`:return s.release()}},At=()=>{let e=[{brand:`Azot`,version:x.version.split(`.`).slice(0,2).join(`.`)},{brand:`Node.js`,version:process.version.replace(`v`,``).split(`.`).slice(0,1).join(`.`)}];return{mobile:!1,platform:$(),brands:e,getHighEntropyValues:async t=>{let n={mobile:!1,platform:$(),brands:e};return t.includes(`architecture`)&&(n.architecture=s.arch()),t.includes(`platform`)&&(n.platform=$()),t.includes(`platformVersion`)&&(n.platformVersion=kt()),t.includes(`fullVersionList`)&&(n.fullVersionList=[{brand:`Azot`,version:x.version},{brand:`Node.js`,version:process.version}]),n}}},jt=({name:e=`extension`,dir:t=process.cwd(),title:n}={})=>{let r=C(o(t,e)),i=new yt(o(r,`storage.json`)),a=new ut({storagePath:o(r,`cookies.json`)}),s=new mt({cookieStore:a}),c=(e,t,n)=>e.split(t)[1]?.split(n)[0]?.trim(),l={sanitizeString:ke,execUrlPatterns:Ae,extendEpisodes:A,between:c,getRandomElements:_t},u=n?xt(n):void 0,p=e=>e||u,re=async e=>(e.title||=u,await j.ask(e)),m={defineExtension:e=>e,version:x.version,sleep:d,sanitizeString:ke,execUrlPatterns:Ae,extendEpisodes:A,between:c,getRandomElements:_t,utils:l,prompt:re,input:je,notify:async(e,t={})=>{let n=p(t.title)??`Azot`,r=[t.primaryAction?{kind:`primary`,action:t.primaryAction}:null,t.secondaryAction?{kind:`secondary`,action:t.secondaryAction}:null].filter(Boolean);{if(!r.length)return O.info(e);let n=await Q(e,r);n===`primary`&&await Z(t.primaryAction),n===`secondary`&&await Z(t.secondaryAction);return}let i=(await k.ask({variant:`notify`,title:n,message:e,style:t.style,primaryAction:t.primaryAction?{title:t.primaryAction.title,style:t.primaryAction.style}:void 0,secondaryAction:t.secondaryAction?{title:t.secondaryAction.title,style:t.secondaryAction.style}:void 0})).action??`dismiss`;i===`primary`&&await Z(t.primaryAction),i===`secondary`&&await Z(t.secondaryAction)},confirm:async(e,t={})=>{let n=p(t.title)??`Azot`,r=!!t.primaryAction||!!t.secondaryAction,i=t.primaryAction??{title:`OK`},a=t.secondaryAction??{title:`Cancel`,style:`cancel`};if(r){let t=await Q(e,[{kind:`primary`,action:i},{kind:`secondary`,action:a}]);return t===`primary`?(await Z(i),!0):(t===`secondary`&&await Z(a),!1)}try{let n=await f({message:e,default:!0});return n?await Z(t.primaryAction):await Z(t.secondaryAction),n}catch(e){if(q(e))return!1;throw e}let o=await k.ask({variant:`confirm`,title:n,message:e,style:t.style,primaryAction:{title:i.title,style:i.style},secondaryAction:{title:a.title,style:a.style}}),s=o.action===`primary`;return s?await Z(i):o.action===`secondary`&&await Z(a),s},ask:async(e,t)=>{let n=wt(t.form),r=Object.entries(t.form),i=!!t.primaryAction||!!t.secondaryAction,a=t.primaryAction??{title:`Submit`},o=t.secondaryAction??{title:`Cancel`,style:`cancel`};{let s={};try{for(let[e,t]of r){let n=[t.title||e,t.description].filter(Boolean).join(` - `);if(t.type===`checkbox`){s[e]=await f({message:n,default:J(t.defaultValue,!1)});continue}if(t.type===`number`){let r=Y(t.defaultValue,NaN);s[e]=await te({message:n,default:Number.isFinite(r)?r:void 0,validate:e=>(e===void 0||Number.isNaN(e))&&t.required?`This field is required`:!0});continue}if(t.type===`password`){s[e]=await ne({message:n,validate:t.required?e=>String(e??``).trim()?!0:`This field is required`:void 0});continue}s[e]=await ee({message:n,default:t.defaultValue,validate:t.required?e=>String(e??``).trim()?!0:`This field is required`:void 0})}}catch(e){if(q(e))return n;throw e}if(!i)return X(t.form,s);let c=await Q(e,[{kind:`primary`,action:a},{kind:`secondary`,action:o}]);return c===`primary`?(await Z(a),X(t.form,s)):(c===`secondary`&&await Z(o),n)}let s=Object.fromEntries(r.map(([e,t])=>[e,{type:t.type,label:t.title||e,description:t.description,placeholder:t.placeholder,defaultValue:t.defaultValue,value:t.defaultValue,required:t.required,autoFocus:t.autoFocus}])),c=await re({title:p(t.title),description:e,fields:s,actions:i?{primaryAction:{title:a.title,style:a.style},secondaryAction:{title:o.title,style:o.style}}:void 0}),l=c.__action??`primary`,u={...c};return delete u.__action,l===`primary`?(await Z(t.primaryAction),X(t.form,u)):(l===`secondary`&&await Z(t.secondaryAction),n)}};class ie{get cookie(){return a.toString()}}let h={fetch:s.fetch.bind(s),Response,Request,Headers,AbortController,AbortSignal,URL,URLSearchParams,URLPattern,open:Et,Blob,structuredClone,btoa,atob,TextEncoder,TextDecoder,Uint8Array,crypto,console:{log:console.log,info:O.info.bind(O),warn:O.warn.bind(O),error:(...e)=>{let t=String(e[0]??`Unknown error`);bt.emit(`error`,{message:t}),O.error(t)},trace:O.trace.bind(O),debug:O.debug.bind(O)},Event,EventTarget,localStorage:i,cookieStore:a,document:new ie,eval:e=>gt(e)?.exports,navigator:{appName:`Azot`,appVersion:x.version,platform:process.platform,userAgent:`Azot/${x.version}`,userAgentData:At()}};return{http:s,question:j,common:l,Streamyx:m,Azot:m,window:h,...h}};export{jt as t};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
const e=require(`./chunk-350yNsax.cjs`);let t=require(`node:fs`),n=require(`node:path`);n=e.n(n);let r=require(`node:os`);r=e.n(r);let i=require(`node:timers/promises`),a=require(`@inquirer/prompts`),o=require(`node:fs/promises`);o=e.n(o);let s=require(`@logtape/logtape`),c=require(`@logtape/file`),l=require(`@logtape/pretty`),u=require(`node:process`),d=require(`node:events`);d=e.n(d),require(`urlpattern-polyfill`);let f=require(`node:readline/promises`),p=require(`impit`),m=require(`undici`),h=require(`metavm`);h=e.n(h),require(`node:child_process`),require(`picocolors`),require(`nanospinner`);let g=require(`conf`);g=e.n(g);var _=`@azot/desktop`,v=`5.0.0-alpha.51`,y=`Azot`,b={name:_,version:v,description:`A powerful, extensible app for downloading videos`,keywords:[`downloader`],homepage:`https://azot.mov`,author:`Vitaly Gashkov <vitalygashkov@vk.com>`,repository:{type:`git`,url:`https://github.com/azot-labs/azot.git`},funding:[{type:`individual`,url:`https://t.me/tribute/app?startapp=dqW2`}],files:[`out`],os:[`darwin`,`linux`,`win32`],main:`./out/main.js`,scripts:{start:`tsx --env-file .env ./src/main/cli.ts`,preview:`electron-vite preview --config vite.desktop.config.mjs`,dev:`pnpm run bundle:extensions && electron-vite dev --config vite.desktop.config.mjs --watch`,cli:`pnpm run bundle:extensions && bun run ./src/main/cli.ts --env-file .env`,test:`vitest`,coverage:`vitest run --coverage`,"prepare:runtime-deps":`pnpm -C ../../packages/api build && pnpm -C ../../packages/molnia build`,"bundle:extensions":`node ./scripts/bundle-extensions.mjs`,"bundle:cli":`pnpm run bundle:extensions && node ./scripts/bundle-cli.mjs`,bundle:`pnpm run prepare:runtime-deps && pnpm run bundle:extensions && electron-vite build --config vite.cli.config.mjs && electron-vite build --config vite.desktop.config.mjs`,"build:cli":`pnpm run prepare:runtime-deps && pnpm run bundle:cli && bun build --compile ./out/cli.mjs --minify --outfile ./release/azot`,build:`pnpm run bundle && electron-builder build --config electron-builder.config.js`,"build:mac":`pnpm run bundle && electron-builder build --mac --arm64 --config electron-builder.config.js`,"build:mac:intel":`pnpm run bundle && electron-builder build --mac --x64 --config electron-builder.config.js`,"build:win":`pnpm run bundle && electron-builder build --win --config electron-builder.config.js`,"build:linux":`pnpm run bundle && electron-builder build --linux --config electron-builder.config.js`,"publish:desktop":`pnpm run bundle && electron-builder build --publish always --config electron-builder.config.js`,"sync:native-optionals":`node ./scripts/sync-native-optionals.mjs`,"check:native-optionals":`node ./scripts/sync-native-optionals.mjs --check`,typecheck:`pnpm run typecheck:node && pnpm run typecheck:web`,"typecheck:node":`tsc --noEmit -p tsconfig.node.json --composite false`,"typecheck:web":`vue-tsc --noEmit -p tsconfig.web.json --composite false`,lint:`../../node_modules/.bin/oxlint -c ../../.oxlintrc.json .`,"lint:fix":`../../node_modules/.bin/oxlint -c ../../.oxlintrc.json --fix .`,fmt:`../../node_modules/.bin/oxfmt -c ../../.oxfmtrc.json .`,"fmt:check":`../../node_modules/.bin/oxfmt -c ../../.oxfmtrc.json --check .`},dependencies:{"@electron-toolkit/preload":`^3.0.2`,"@electron-toolkit/utils":`^4.0.0`,"@gitbeaker/rest":`^43.8.0`,"@inquirer/prompts":`^8.3.0`,"@logtape/file":`^2.0.2`,"@logtape/logtape":`^2.0.2`,"@logtape/pretty":`^2.0.2`,"@tanstack/query-core":`^5.90.20`,"@tribute-tg/better-auth":`^2.1.9`,azot:`workspace:*`,"better-auth":`^1.4.19`,bytenode:`^1.5.7`,conf:`^15.1.0`,cookie:`^1.1.1`,"cross-spawn":`^7.0.6`,dasha:`4.0.0-alpha.11`,"electron-updater":`^6.8.3`,impit:`^0.9.2`,ky:`^1.14.3`,mediabunny:`^1.38.1`,metavm:`^1.4.5`,molnia:`workspace:*`,nanospinner:`^1.2.2`,okova:`^0.10.5`,open:`^11.0.0`,"p-queue":`^9.1.0`,picocolors:`^1.1.1`,"posthog-js":`^1.353.1`,semver:`^7.7.4`,"telegram-better-auth":`^0.0.8`,undici:`^7.22.0`,"urlpattern-polyfill":`^10.1.0`,yargs:`^18.0.0`,yauzl:`^3.2.0`,zod:`^4.3.6`},devDependencies:{"@electron-toolkit/tsconfig":`^2.0.0`,"@iconify/vue":`^5.0.0`,"@intlify/unplugin-vue-i18n":`^11.0.7`,"@tailwindcss/vite":`^4.2.1`,"@tanstack/vue-query":`^5.92.9`,"@types/node":`^25.3.0`,"@types/semver":`^7.7.1`,"@types/wicg-file-system-access":`^2023.10.7`,"@types/yargs":`^17.0.35`,"@vee-validate/zod":`^4.15.1`,"@vitejs/plugin-vue":`^6.0.4`,"@vueuse/core":`^14.2.1`,"class-variance-authority":`^0.7.1`,clsx:`^2.1.1`,dotenv:`^17.3.1`,electron:`39.5.1`,"electron-builder":`^26.8.1`,"electron-vite":`^5.0.0`,esbuild:`^0.27.3`,execa:`^9.6.1`,"lucide-vue-next":`^0.575.0`,"non.geist":`^1.0.4`,pinia:`^3.0.4`,postcss:`^8.5.6`,"reka-ui":`^2.8.2`,rolldown:`^1.0.0-rc.5`,sass:`^1.97.3`,"tailwind-merge":`^3.5.0`,tailwindcss:`^4.2.1`,"tailwindcss-animate":`^1.0.7`,tsdown:`^0.20.3`,tsx:`^4.21.0`,typescript:`^5.9.3`,"vee-validate":`^4.15.1`,vite:`^7.3.1`,"vite-plugin-static-copy":`^3.1.2`,vitest:`^4.0.18`,vue:`^3.5.29`,"vue-i18n":`^11.2.8`,"vue-sonner":`^2.0.9`,"vue-tsc":`^3.2.5`},peerDependencies:{vitest:`>=4.0.0`},optionalDependencies:{"impit-darwin-arm64":`0.9.2`,"impit-darwin-x64":`0.9.2`,"impit-linux-arm64-gnu":`0.9.2`,"impit-linux-arm64-musl":`0.9.2`,"impit-linux-x64-gnu":`0.9.2`,"impit-linux-x64-musl":`0.9.2`,"impit-win32-arm64-msvc":`0.9.2`,"impit-win32-x64-msvc":`0.9.2`},engines:{node:`>=24.10`},packageManager:`pnpm@10.28.2`,productName:y,readmeFilename:`README.md`};`pkg`in process&&process.pkg,process.versions.electron,`${v}${u.platform}${u.arch}${u.version}`,`${v}`,_.split(`/`)[0]?.split(`-`)[0]?.replace(`@`,``);const x=y,ee={darwin:`macOS`,win32:`Windows`,linux:`Linux`}[process.platform],S=e=>{let n=typeof e==`string`?e:e[ee];return(0,t.existsSync)(n)||(0,t.mkdirSync)(n,{recursive:!0}),n},C=(0,r.homedir)(),te=(0,r.tmpdir)(),w=S({Windows:process.env.APPDATA||(0,n.join)(C,`AppData`,`Roaming`),macOS:(0,n.join)(C,`Library`,`Application Support`),Linux:process.env.XDG_DATA_HOME||(0,n.join)(C,`.local`,`share`)}),T=S({Windows:process.env.APPDATA||(0,n.join)(C,`AppData`,`Roaming`),macOS:(0,n.join)(C,`Library`,`Application Support`),Linux:process.env.XDG_CONFIG_HOME||(0,n.join)(C,`.config`)});S({Windows:process.env.LOCALAPPDATA||(0,n.join)(C,`AppData`,`Local`),macOS:(0,n.join)(C,`Library`,`Caches`),Linux:process.env.XDG_CACHE_HOME||(0,n.join)(C,`.cache`)}),S({Windows:(0,n.join)(C,`Downloads`),macOS:(0,n.join)(C,`Downloads`),Linux:process.env.XDG_DOWNLOAD_DIR||(0,n.join)(C,`Downloads`)});const ne=S({Windows:(0,n.join)(w,x),macOS:(0,n.join)(w,x),Linux:(0,n.join)(w,x.toLowerCase())}),re=S({Windows:(0,n.join)(T,x),macOS:(0,n.join)(T,x),Linux:(0,n.join)(T,x.toLowerCase())}),ie=S({Windows:(0,n.join)(T,x,`logs`),macOS:(0,n.join)(C,`Library`,`Logs`,x),Linux:(0,n.join)(T,x.toLowerCase(),`logs`)});(0,n.join)(te,x.toLowerCase());const E=S((0,n.join)(ne,`extensions`));S((0,n.join)(E,`installed`)),S((0,n.join)(E,`work`)),(0,n.join)(E,`index.json`),(0,n.join)(re,`settings.json`);const ae=process.argv.includes(`-d`)||process.argv.includes(`--debug`)||process.env.NODE_ENV_ELECTRON_VITE===`development`||!!process.env.ELECTRON_CLI_ARGS;(0,s.configureSync)({sinks:{console:(0,s.withFilter)((0,s.getConsoleSink)({formatter:(0,l.getPrettyFormatter)({timestamp:`time`,messageColor:null,messageStyle:null,levelStyle:null,icons:!1,colors:!0,level:`FULL`,categoryWidth:0,categoryStyle:null,categoryTruncate:`end`,wordWrap:!0})}),ae?`debug`:`info`),file:(0,c.getFileSink)((0,n.join)(ie,`Azot_${new Date().toISOString().split(`.`)[0].replace(`T`,`_`).replaceAll(`-`,``).replaceAll(`:`,``)}.log`),{flushInterval:0})},loggers:[{category:[],lowestLevel:`trace`,sinks:[`console`,`file`]},{category:[`logtape`,`meta`],lowestLevel:`error`,sinks:[`console`]}]});const D=(0,s.getLogger)([]),O=new class e extends d.EventEmitter{static requestEventName=`feedback`;static responseEventName=`feedback:response`;#e=Promise.resolve();async ask(t){let n=()=>new Promise(n=>{this.once(e.responseEventName,e=>{n(e)}),this.emit(e.requestEventName,t)}),r=this.#e.then(n,n);return this.#e=r.then(()=>void 0,()=>void 0),r}listen(t){this.addListener(e.requestEventName,async n=>{let r=await t(n);this.emit(e.responseEventName,r)})}},oe=e=>{let t=[`}`,`{`,`%`,`>`,`<`,`^`,`;`,"`",`$`,`"`,`@`,`=`],n=e;for(let e in t)n=n.replaceAll(`/`,`_`).replaceAll(t[e],``);return n},k=(e,t,n)=>{let r={},i={};for(let a of n)for(let n of t){let t=new URLPattern(n,a).exec(e);t&&(Object.assign(r,t.pathname.groups),Object.assign(i,t.search.groups))}return{pathname:r,search:i}},se=(e=new Map)=>{let t=(t,n)=>{for(let r of e.keys())for(let i of e.get(r)||[]){let e=n===void 0||isNaN(n),a=t===void 0||isNaN(t),o=!1;if(o=a?r===n:(e?isNaN(r):r===n)&&i===t,o)return!0}return!1},n=(t,n)=>{let r=n||NaN,i=t||NaN;e.has(r)?e.get(r)?.add(i):e.set(r,new Set([i]))},r=()=>Array.from(e.values()).flatMap(e=>Array.from(e)),i=e.size,a=r();return{items:e,has:t,set:n,getMin:()=>Math.min(...a),getMax:()=>Math.max(...a),seasonsCount:i,episodesCount:a.length}};new Intl.DateTimeFormat(`en-US`,{year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1}),new Intl.DateTimeFormat(`en-US`,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1});const A=new class e extends d.EventEmitter{static requestEventName=`form`;static responseEventName=`form:response`;title;#e=Promise.resolve();constructor(e={}){super(),this.title=e.title,this.listen(async e=>{let t=(0,f.createInterface)({input:u.stdin,output:u.stdout}),{title:n,description:r,fields:a,...o}=e,s={};for(let[e,{label:c,type:l}]of Object.entries(a||o)){let a=l===`confirm`,o=[n,r,c].filter(Boolean).join(`. `)+(a?` (y/n)`:``)+`: `;s[e]=await Promise.race([t.question(o),(0,i.setTimeout)(le,``)])}return t.close(),s})}async ask(t){let n=()=>new Promise(n=>{this.once(e.responseEventName,e=>{n(e)}),this.emit(e.requestEventName,t)}),r=this.#e.then(n,n);return this.#e=r.then(()=>void 0,()=>void 0),r}listen(t){this.addListener(e.requestEventName,async n=>{let r=await t(n);this.emit(e.responseEventName,r)})}},ce=async(e,t)=>{let n=t?.fields??{answer:{label:e}};return await A.ask({title:t?.title,description:e,fields:n})},le=12e4;var j=class extends Error{response;request;options;constructor(e,t,n){let r=`${e.status||e.status===0?e.status:``} ${e.statusText??``}`.trim(),i=r?`status code ${r}`:`an unknown error`;super(`Request failed with ${i}: ${t.method} ${t.url}`),this.name=`HTTPError`,this.response=e,this.request=t,this.options=n}},M=class extends Error{name=`NonError`;value;constructor(e){let t=`Non-error value was thrown`;try{typeof e==`string`?t=e:e&&typeof e==`object`&&`message`in e&&typeof e.message==`string`&&(t=e.message)}catch{}super(t),this.value=e}},N=class extends Error{name=`ForceRetryError`;customDelay;code;customRequest;constructor(e){let t=e?.cause?e.cause instanceof Error?e.cause:new M(e.cause):void 0;super(e?.code?`Forced retry: ${e.code}`:`Forced retry`,t?{cause:t}:void 0),this.customDelay=e?.delay,this.code=e?.code,this.customRequest=e?.request}};const ue=(()=>{let e=!1,t=!1,n=typeof globalThis.ReadableStream==`function`,r=typeof globalThis.Request==`function`;if(n&&r)try{t=new globalThis.Request(`https://empty.invalid`,{body:new globalThis.ReadableStream,method:`POST`,get duplex(){return e=!0,`half`}}).headers.has(`Content-Type`)}catch(e){if(e instanceof Error&&e.message===`unsupported BodyInit type`)return!1;throw e}return e&&!t})(),de=typeof globalThis.AbortController==`function`,fe=typeof globalThis.AbortSignal==`function`&&typeof globalThis.AbortSignal.any==`function`,pe=typeof globalThis.ReadableStream==`function`,me=typeof globalThis.FormData==`function`,he=[`get`,`post`,`put`,`patch`,`head`,`delete`],ge={json:`application/json`,text:`text/*`,formData:`multipart/form-data`,arrayBuffer:`*/*`,blob:`*/*`,bytes:`*/*`},P=2147483647,_e=new TextEncoder().encode(`------WebKitFormBoundaryaxpyiPgbbPti10Rw`).length,ve=Symbol(`stop`);var ye=class{options;constructor(e){this.options=e}};const be=e=>new ye(e),xe={json:!0,parseJson:!0,stringifyJson:!0,searchParams:!0,prefixUrl:!0,retry:!0,timeout:!0,hooks:!0,throwHttpErrors:!0,onDownloadProgress:!0,onUploadProgress:!0,fetch:!0,context:!0},Se={next:!0},Ce={method:!0,headers:!0,body:!0,mode:!0,credentials:!0,cache:!0,redirect:!0,referrer:!0,referrerPolicy:!0,integrity:!0,keepalive:!0,signal:!0,window:!0,duplex:!0},we=e=>{if(!e)return 0;if(e instanceof FormData){let t=0;for(let[n,r]of e)t+=_e,t+=new TextEncoder().encode(`Content-Disposition: form-data; name="${n}"`).length,t+=typeof r==`string`?new TextEncoder().encode(r).length:r.size;return t}if(e instanceof Blob)return e.size;if(e instanceof ArrayBuffer)return e.byteLength;if(typeof e==`string`)return new TextEncoder().encode(e).length;if(e instanceof URLSearchParams)return new TextEncoder().encode(e.toString()).length;if(`byteLength`in e)return e.byteLength;if(typeof e==`object`&&e)try{let t=JSON.stringify(e);return new TextEncoder().encode(t).length}catch{return 0}return 0},F=(e,t,n)=>{let r,i=0;return e.pipeThrough(new TransformStream({transform(e,a){if(a.enqueue(e),r){i+=r.byteLength;let e=t===0?0:i/t;e>=1&&(e=1-2**-52),n?.({percent:e,totalBytes:Math.max(t,i),transferredBytes:i},r)}r=e},flush(){r&&(i+=r.byteLength,n?.({percent:1,totalBytes:Math.max(t,i),transferredBytes:i},r))}}))},Te=(e,t)=>{if(!e.body)return e;if(e.status===204)return new Response(null,{status:e.status,statusText:e.statusText,headers:e.headers});let n=Math.max(0,Number(e.headers.get(`content-length`))||0);return new Response(F(e.body,n,t),{status:e.status,statusText:e.statusText,headers:e.headers})},Ee=(e,t,n)=>{if(!e.body)return e;let r=we(n??e.body);return new Request(e,{duplex:`half`,body:F(e.body,r,t)})},I=e=>typeof e==`object`&&!!e,L=(...e)=>{for(let t of e)if((!I(t)||Array.isArray(t))&&t!==void 0)throw TypeError("The `options` argument must be an object");return V({},...e)},R=(e={},t={})=>{let n=new globalThis.Headers(e),r=t instanceof globalThis.Headers,i=new globalThis.Headers(t);for(let[e,t]of i.entries())r&&t===`undefined`||t===void 0?n.delete(e):n.set(e,t);return n};function z(e,t,n){return Object.hasOwn(t,n)&&t[n]===void 0?[]:V(e[n]??[],t[n]??[])}const B=(e={},t={})=>({beforeRequest:z(e,t,`beforeRequest`),beforeRetry:z(e,t,`beforeRetry`),afterResponse:z(e,t,`afterResponse`),beforeError:z(e,t,`beforeError`)}),De=(e,t)=>{let n=new URLSearchParams;for(let r of[e,t])if(r!==void 0)if(r instanceof URLSearchParams)for(let[e,t]of r.entries())n.append(e,t);else if(Array.isArray(r))for(let e of r){if(!Array.isArray(e)||e.length!==2)throw TypeError(`Array search parameters must be provided in [[key, value], ...] format`);n.append(String(e[0]),String(e[1]))}else if(I(r))for(let[e,t]of Object.entries(r))t!==void 0&&n.append(e,String(t));else{let e=new URLSearchParams(r);for(let[t,r]of e.entries())n.append(t,r)}return n},V=(...e)=>{let t={},n={},r={},i,a=[];for(let o of e)if(Array.isArray(o))Array.isArray(t)||(t=[]),t=[...t,...o];else if(I(o)){for(let[e,n]of Object.entries(o)){if(e===`signal`&&n instanceof globalThis.AbortSignal){a.push(n);continue}if(e===`context`){if(n!=null&&(!I(n)||Array.isArray(n)))throw TypeError("The `context` option must be an object");t={...t,context:n==null?{}:{...t.context,...n}};continue}if(e===`searchParams`){i=n==null?void 0:i===void 0?n:De(i,n);continue}I(n)&&e in t&&(n=V(t[e],n)),t={...t,[e]:n}}I(o.hooks)&&(r=B(r,o.hooks),t.hooks=r),I(o.headers)&&(n=R(n,o.headers),t.headers=n)}return i!==void 0&&(t.searchParams=i),a.length>0&&(a.length===1?t.signal=a[0]:fe?t.signal=AbortSignal.any(a):t.signal=a.at(-1)),t},Oe=e=>he.includes(e)?e.toUpperCase():e,H={limit:2,methods:[`get`,`put`,`head`,`delete`,`options`,`trace`],statusCodes:[408,413,429,500,502,503,504],afterStatusCodes:[413,429,503],maxRetryAfter:1/0,backoffLimit:1/0,delay:e=>.3*2**(e-1)*1e3,jitter:void 0,retryOnTimeout:!1},ke=(e={})=>{if(typeof e==`number`)return{...H,limit:e};if(e.methods&&!Array.isArray(e.methods))throw Error(`retry.methods must be an array`);if(e.methods&&=e.methods.map(e=>e.toLowerCase()),e.statusCodes&&!Array.isArray(e.statusCodes))throw Error(`retry.statusCodes must be an array`);let t=Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0));return{...H,...t}};var U=class extends Error{request;constructor(e){super(`Request timed out: ${e.method} ${e.url}`),this.name=`TimeoutError`,this.request=e}};async function Ae(e,t,n,r){return new Promise((i,a)=>{let o=setTimeout(()=>{n&&n.abort(),a(new U(e))},r.timeout);r.fetch(e,t).then(i).catch(a).then(()=>{clearTimeout(o)})})}async function je(e,{signal:t}){return new Promise((n,r)=>{t&&(t.throwIfAborted(),t.addEventListener(`abort`,i,{once:!0}));function i(){clearTimeout(a),r(t.reason)}let a=setTimeout(()=>{t?.removeEventListener(`abort`,i),n()},e)})}const Me=(e,t)=>{let n={};for(let r in t)Object.hasOwn(t,r)&&!(r in Ce)&&!(r in xe)&&(!(r in e)||r in Se)&&(n[r]=t[r]);return n},Ne=e=>e===void 0?!1:Array.isArray(e)?e.length>0:e instanceof URLSearchParams?e.size>0:typeof e==`object`?Object.keys(e).length>0:typeof e==`string`?e.trim().length>0:!!e;function Pe(e){return e instanceof j||e?.name===j.name}function Fe(e){return e instanceof U||e?.name===U.name}var Ie=class e{static create(t,n){let r=new e(t,n),i=r.#p(async()=>{if(typeof r.#i.timeout==`number`&&r.#i.timeout>P)throw RangeError(`The \`timeout\` option cannot be greater than ${P}`);await Promise.resolve();let e=await r.#m();for(let t of r.#i.hooks.afterResponse){let n=r.#u(e.clone()),i;try{i=await t(r.request,r.#h(),n,{retryCount:r.#n})}catch(t){throw r.#f(n),r.#f(e),t}if(i instanceof ye)throw r.#f(n),r.#f(e),new N(i.options);let a=i instanceof globalThis.Response?i:e;n!==a&&r.#f(n),e!==a&&r.#f(e),e=a}if(r.#u(e),!e.ok&&(typeof r.#i.throwHttpErrors==`function`?r.#i.throwHttpErrors(e.status):r.#i.throwHttpErrors)){let t=new j(e,r.request,r.#h());for(let e of r.#i.hooks.beforeError)t=await e(t,{retryCount:r.#n});throw t}if(r.#i.onDownloadProgress){if(typeof r.#i.onDownloadProgress!=`function`)throw TypeError("The `onDownloadProgress` option must be a function");if(!pe)throw Error("Streams are not supported in your environment. `ReadableStream` is missing.");let t=e.clone();return r.#f(e),Te(t,r.#i.onDownloadProgress)}return e}).finally(()=>{let e=r.#a;r.#d(e?.body??void 0),r.#d(r.request.body??void 0)});for(let[e,t]of Object.entries(ge))e===`bytes`&&typeof globalThis.Response?.prototype?.bytes!=`function`||(i[e]=async()=>{r.request.headers.set(`accept`,r.request.headers.get(`accept`)||t);let a=await i;if(e===`json`){if(a.status===204)return``;let e=await a.text();return e===``?``:n.parseJson?n.parseJson(e):JSON.parse(e)}return a[e]()});return i}static#e(e){return e&&typeof e==`object`&&!Array.isArray(e)&&!(e instanceof URLSearchParams)?Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0)):e}request;#t;#n=0;#r;#i;#a;#o;#s;constructor(t,n={}){if(this.#r=t,this.#i={...n,headers:R(this.#r.headers,n.headers),hooks:B({beforeRequest:[],beforeRetry:[],beforeError:[],afterResponse:[]},n.hooks),method:Oe(n.method??this.#r.method??`GET`),prefixUrl:String(n.prefixUrl||``),retry:ke(n.retry),throwHttpErrors:n.throwHttpErrors??!0,timeout:n.timeout??1e4,fetch:n.fetch??globalThis.fetch.bind(globalThis),context:n.context??{}},typeof this.#r!=`string`&&!(this.#r instanceof URL||this.#r instanceof globalThis.Request))throw TypeError("`input` must be a string, URL, or Request");if(this.#i.prefixUrl&&typeof this.#r==`string`){if(this.#r.startsWith(`/`))throw Error("`input` must not begin with a slash when using `prefixUrl`");this.#i.prefixUrl.endsWith(`/`)||(this.#i.prefixUrl+=`/`),this.#r=this.#i.prefixUrl+this.#r}de&&fe&&(this.#o=this.#i.signal??this.#r.signal,this.#t=new globalThis.AbortController,this.#i.signal=this.#o?AbortSignal.any([this.#o,this.#t.signal]):this.#t.signal),ue&&(this.#i.duplex=`half`),this.#i.json!==void 0&&(this.#i.body=this.#i.stringifyJson?.(this.#i.json)??JSON.stringify(this.#i.json),this.#i.headers.set(`content-type`,this.#i.headers.get(`content-type`)??`application/json`));let r=n.headers&&new globalThis.Headers(n.headers).has(`content-type`);if(this.#r instanceof globalThis.Request&&(me&&this.#i.body instanceof globalThis.FormData||this.#i.body instanceof URLSearchParams)&&!r&&this.#i.headers.delete(`content-type`),this.request=new globalThis.Request(this.#r,this.#i),Ne(this.#i.searchParams)){let t=`?`+(typeof this.#i.searchParams==`string`?this.#i.searchParams.replace(/^\?/,``):new URLSearchParams(e.#e(this.#i.searchParams)).toString()),n=this.request.url.replace(/(?:\?.*?)?(?=#|$)/,t);this.request=new globalThis.Request(n,this.#i)}if(this.#i.onUploadProgress){if(typeof this.#i.onUploadProgress!=`function`)throw TypeError("The `onUploadProgress` option must be a function");if(!ue)throw Error("Request streams are not supported in your environment. The `duplex` option for `Request` is not available.");this.request=this.#_(this.request,this.#i.body??void 0)}}#c(){let e=this.#i.retry.delay(this.#n),t=e;this.#i.retry.jitter===!0?t=Math.random()*e:typeof this.#i.retry.jitter==`function`&&(t=this.#i.retry.jitter(e),(!Number.isFinite(t)||t<0)&&(t=e));let n=this.#i.retry.backoffLimit??1/0;return Math.min(n,t)}async#l(e){if(this.#n++,this.#n>this.#i.retry.limit)throw e;let t=e instanceof Error?e:new M(e);if(t instanceof N)return t.customDelay??this.#c();if(!this.#i.retry.methods.includes(this.request.method.toLowerCase()))throw e;if(this.#i.retry.shouldRetry!==void 0){let n=await this.#i.retry.shouldRetry({error:t,retryCount:this.#n});if(n===!1)throw e;if(n===!0)return this.#c()}if(Fe(e)&&!this.#i.retry.retryOnTimeout)throw e;if(Pe(e)){if(!this.#i.retry.statusCodes.includes(e.response.status))throw e;let t=e.response.headers.get(`Retry-After`)??e.response.headers.get(`RateLimit-Reset`)??e.response.headers.get(`X-RateLimit-Retry-After`)??e.response.headers.get(`X-RateLimit-Reset`)??e.response.headers.get(`X-Rate-Limit-Reset`);if(t&&this.#i.retry.afterStatusCodes.includes(e.response.status)){let e=Number(t)*1e3;Number.isNaN(e)?e=Date.parse(t)-Date.now():e>=Date.parse(`2024-01-01`)&&(e-=Date.now());let n=this.#i.retry.maxRetryAfter??e;return e<n?e:n}if(e.response.status===413)throw e}return this.#c()}#u(e){return this.#i.parseJson&&(e.json=async()=>this.#i.parseJson(await e.text())),e}#d(e){e&&e.cancel().catch(()=>void 0)}#f(e){this.#d(e.body??void 0)}async#p(e){try{return await e()}catch(t){let n=Math.min(await this.#l(t),P);if(this.#n<1)throw t;if(await je(n,this.#o?{signal:this.#o}:{}),t instanceof N&&t.customRequest){let e=this.#i.signal?new globalThis.Request(t.customRequest,{signal:this.#i.signal}):new globalThis.Request(t.customRequest);this.#g(e)}for(let e of this.#i.hooks.beforeRetry){let n=await e({request:this.request,options:this.#h(),error:t,retryCount:this.#n});if(n instanceof globalThis.Request){this.#g(n);break}if(n instanceof globalThis.Response)return n;if(n===ve)return}return this.#p(e)}}async#m(){this.#t?.signal.aborted&&(this.#t=new globalThis.AbortController,this.#i.signal=this.#o?AbortSignal.any([this.#o,this.#t.signal]):this.#t.signal,this.request=new globalThis.Request(this.request,{signal:this.#i.signal}));for(let e of this.#i.hooks.beforeRequest){let t=await e(this.request,this.#h(),{retryCount:this.#n});if(t instanceof Response)return t;if(t instanceof globalThis.Request){this.#g(t);break}}let e=Me(this.request,this.#i);return this.#a=this.request,this.request=this.#a.clone(),this.#i.timeout===!1?this.#i.fetch(this.#a,e):Ae(this.#a,e,this.#t,this.#i)}#h(){if(!this.#s){let{hooks:e,...t}=this.#i;this.#s=Object.freeze(t)}return this.#s}#g(e){this.#s=void 0,this.request=this.#_(e)}#_(e,t){return!this.#i.onUploadProgress||!e.body?e:Ee(e,this.#i.onUploadProgress,t??this.#i.body??void 0)}};
|
|
2
|
-
/*! MIT License © Sindre Sorhus */
|
|
3
|
-
const W=e=>{let t=(t,n)=>Ie.create(t,L(e,n));for(let n of he)t[n]=(t,r)=>Ie.create(t,L(e,r,{method:n}));return t.create=e=>W(L(e)),t.extend=t=>(typeof t==`function`&&(t=t(e??{})),W(L(e,t))),t.stop=ve,t.retry=be,t},Le=W();var Re=e.t((e=>{Object.defineProperty(e,`__esModule`,{value:!0}),e.stringifySetCookie=s,e.serialize=s,e.parseSetCookie=c,e.stringifySetCookie=s,e.serialize=s;let t=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,n=/^[\u0021-\u003A\u003C-\u007E]*$/,r=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,i=/^[\u0020-\u003A\u003D-\u007E]*$/,a=/^-?\d+$/,o=Object.prototype.toString;function s(e,a,o){let s=typeof e==`object`?e:{...o,name:e,value:String(a)},c=(typeof a==`object`?a:o)?.encode||encodeURIComponent;if(!t.test(s.name))throw TypeError(`argument name is invalid: ${s.name}`);let l=s.value?c(s.value):``;if(!n.test(l))throw TypeError(`argument val is invalid: ${s.value}`);let u=s.name+`=`+l;if(s.maxAge!==void 0){if(!Number.isInteger(s.maxAge))throw TypeError(`option maxAge is invalid: ${s.maxAge}`);u+=`; Max-Age=`+s.maxAge}if(s.domain){if(!r.test(s.domain))throw TypeError(`option domain is invalid: ${s.domain}`);u+=`; Domain=`+s.domain}if(s.path){if(!i.test(s.path))throw TypeError(`option path is invalid: ${s.path}`);u+=`; Path=`+s.path}if(s.expires){if(!p(s.expires)||!Number.isFinite(s.expires.valueOf()))throw TypeError(`option expires is invalid: ${s.expires}`);u+=`; Expires=`+s.expires.toUTCString()}if(s.httpOnly&&(u+=`; HttpOnly`),s.secure&&(u+=`; Secure`),s.partitioned&&(u+=`; Partitioned`),s.priority)switch(typeof s.priority==`string`?s.priority.toLowerCase():void 0){case`low`:u+=`; Priority=Low`;break;case`medium`:u+=`; Priority=Medium`;break;case`high`:u+=`; Priority=High`;break;default:throw TypeError(`option priority is invalid: ${s.priority}`)}if(s.sameSite)switch(typeof s.sameSite==`string`?s.sameSite.toLowerCase():s.sameSite){case!0:case`strict`:u+=`; SameSite=Strict`;break;case`lax`:u+=`; SameSite=Lax`;break;case`none`:u+=`; SameSite=None`;break;default:throw TypeError(`option sameSite is invalid: ${s.sameSite}`)}return u}function c(e,t){let n=t?.decode||f,r=e.length,i=l(e,0,r),o=u(e,0,i),s=o===-1?{name:``,value:n(d(e,0,i))}:{name:d(e,0,o),value:n(d(e,o+1,i))},c=i+1;for(;c<r;){let t=l(e,c,r),n=u(e,c,t),i=n===-1?d(e,c,t):d(e,c,n),o=n===-1?void 0:d(e,n+1,t);switch(i.toLowerCase()){case`httponly`:s.httpOnly=!0;break;case`secure`:s.secure=!0;break;case`partitioned`:s.partitioned=!0;break;case`domain`:s.domain=o;break;case`path`:s.path=o;break;case`max-age`:o&&a.test(o)&&(s.maxAge=Number(o));break;case`expires`:if(!o)break;let e=new Date(o);Number.isFinite(e.valueOf())&&(s.expires=e);break;case`priority`:if(!o)break;let t=o.toLowerCase();(t===`low`||t===`medium`||t===`high`)&&(s.priority=t);break;case`samesite`:if(!o)break;let n=o.toLowerCase();(n===`lax`||n===`strict`||n===`none`)&&(s.sameSite=n);break}c=t+1}return s}function l(e,t,n){let r=e.indexOf(`;`,t);return r===-1?n:r}function u(e,t,n){let r=e.indexOf(`=`,t);return r<n?r:-1}function d(e,t,n){let r=t,i=n;do{let t=e.charCodeAt(r);if(t!==32&&t!==9)break}while(++r<i);for(;i>r;){let t=e.charCodeAt(i-1);if(t!==32&&t!==9)break;i--}return e.slice(r,i)}function f(e){if(e.indexOf(`%`)===-1)return e;try{return decodeURIComponent(e)}catch{return e}}function p(e){return o.call(e)===`[object Date]`}}))();const G=e=>{let t=[];for(let n of e)try{let e=(0,Re.parseSetCookie)(n),r={...e,expires:e.expires instanceof Date?e.expires.getTime():e.expires,sameSite:typeof e.sameSite==`boolean`?`strict`:e.sameSite};t.push(r)}catch(e){D.debug(e)}return t},ze=async e=>{let t=await(0,o.readFile)(e,`utf8`).catch(()=>``);if(!t)return[];let n=t.split(r.EOL).flatMap(e=>e.split(`
|
|
4
|
-
`)).filter(e=>!!e.trim()&&!e.startsWith(`# `)).map(e=>e.split(` `)),i=[];for(let e of n){let[t,n,r,a,o,s,c]=e;i.push({name:s,value:c,expires:Number(o),maxAge:void 0,domain:t.replace(`#HttpOnly_`,``),path:r,secure:a===`TRUE`,httpOnly:void 0,sameSite:void 0})}return i},Be=(e,t)=>{if(typeof e!=`string`)return e;if(t===void 0)throw TypeError(`CookieStore.set(name, value) requires a value argument`);return{name:e,value:t}};var Ve=class{#e={};#t;#n;#r=!1;static parse(e){return G(e)}constructor({storagePath:e}={}){this.#n=e,this.#t=[]}async import(e){(await(0,o.stat)(e).catch(()=>null))?.isFile()&&(D.debug(`Importing cookies from ${e}`),this.#t=await ze(e),await(0,o.rm)(e,{recursive:!0,force:!0}))}async#i(){if(!(!this.#n||this.#r)){if((await(0,o.stat)(this.#n).catch(()=>null))?.isFile()){let e=await(0,o.readFile)(this.#n,`utf8`);this.#e=e?JSON.parse(e):{},this.#t=`cookies`in this.#e?this.#e.cookies:[]}this.#r=!0}}async#a(){if(!this.#n)return;let e=JSON.stringify({...this.#e,cookies:this.#t},null,2);await(0,o.writeFile)(this.#n,e,`utf8`)}async get(e){await this.#i();let t=typeof e==`string`?e:e.name;return this.#t.find(e=>e.name===t)??null}async getAll(e){if(await this.#i(),!e)return this.#t;let t=typeof e==`string`?e:e.name;return this.#t.filter(e=>e.name===t)??null}async set(e,t){await this.#i();let n=Be(e,t);this.#t=this.#t.filter(e=>!(e.name===n.name&&e.domain===n.domain)),this.#t.push(n),await this.#a()}async delete(e){if(await this.#i(),!e)this.#t=[];else{let t=typeof e==`string`?e:e.name;this.#t=this.#t.filter(e=>e.name!==t)}await this.#a()}toString(){return this.#t.map(e=>`${e.name}=${e.value}`).join(`; `)}};const K=Le.default??Le,He=e=>e?e instanceof Headers?e.has(`User-Agent`):typeof e==`object`&&e?`User-Agent`in e||`user-agent`in e:!1:!1,Ue=e=>e instanceof URL?e:e instanceof Request?new URL(e.url):new URL(e);var We=class{cookieStore;headers;#e;#t;constructor(e={}){this.headers=new Headers,this.configure(e)}configure({maxRetries:e=3,proxyUrl:t,allowH2:n=!0,cookieStore:r}={}){this.cookieStore=r??this.cookieStore??new Ve;let i=t?new m.ProxyAgent({uri:t,allowH2:n}):new m.Agent({allowH2:n}),a={retry:e};this.#e=K.create({dispatcher:i,proxy:t,...a});let o=new p.Impit({browser:`chrome`,proxyUrl:t,ignoreTlsErrors:!0,followRedirects:!0});this.#t=K.create({fetch:o.fetch.bind(o),...a})}async fetch(e,t={}){let n=await this.#n(e,t?.headers),r=(He(t?.headers)?this.#e:this.#t)[t?.method?.toLowerCase()??`get`],i=await r(e,{...t,headers:n}),a=i.headers.getSetCookie();return a&&await this.setCookies(a),i}async#n(e,t){let n=this.appendHeaders(t),r=await this.cookieStore.getAll(),i=r.filter(t=>!t.domain||Ue(e).hostname.includes(t.domain));for(let e of r)i.find(t=>t.name===e.name)||e.domain||i.push(e);let a=i.map(e=>`${e.name}=${e.value}`).join(`; `);return n.has(`cookie`)?n.get(`cookie`)||n.delete(`cookie`):n.set(`cookie`,a),n}async setCookies(e){let t=[];if(typeof e==`string`){let[n]=G([e]);n&&t.push(n)}else if(Array.isArray(e)&&typeof e.at(0)==`string`){let n=G(e);t.push(...n)}else Array.isArray(e)&&typeof e[0]!=`string`&&t.push(...e);if(!(!t||!t?.length))for(let e of t)await this.cookieStore.set(e)}appendHeaders(e){let t=new Headers(this.headers);for(let[n,r]of Object.entries(e??{}))t.set(n,r);return t}setHeader(e,t){this.headers.set(e,t)}removeHeader(e){this.headers.delete(e)}};new We;const{COMMON_CONTEXT:Ge}=h.default,Ke=(e,t=`Eval`,n)=>{try{return h.default.createScript(t,e,n)}catch(t){return console.debug(t),console.debug(e),console.error(`Syntax Error: ${t.message}`),null}},qe=(e,t=1)=>{if(Array.isArray(e)||typeof e==`string`){let n=[];for(let r=1;r<=t;r++)n.push(e[Math.floor(Math.random()*e.length)]);return n}else return[]},Je=e=>new(`default`in g.default?g.default.default:g.default)(e);var Ye=class{#e;constructor(e){this.#e=Je({cwd:(0,n.dirname)(e),configName:(0,n.basename)(e,`.json`)})}get length(){return Object.keys(this.#e.store).length}clear(){this.#e.clear()}getItem(e){return this.#e.get(e)??null}key(e){return Object.keys(this.#e.store).at(e)??null}removeItem(e){this.#e.delete(e)}setItem(e,t){this.#e.set(e,t)}};const Xe=new d.default,q=e=>{if(!e||typeof e!=`object`)return!1;let t=`name`in e?String(e.name):``;return t===`ExitPromptError`||t===`AbortPromptError`},Ze=e=>e[0].toUpperCase()+e.slice(1),J=(e,t=!1)=>{if(typeof e==`boolean`)return e;if(typeof e!=`string`)return t;let n=e.trim().toLowerCase();return[`1`,`true`,`yes`,`y`,`on`].includes(n)?!0:[`0`,`false`,`no`,`n`,`off`].includes(n)?!1:t},Y=(e,t=0)=>{if(typeof e==`number`&&Number.isFinite(e))return e;if(typeof e!=`string`)return t;let n=Number(e);return Number.isFinite(n)?n:t},Qe=e=>{switch(e.type){case`checkbox`:return J(e.defaultValue,!1);case`number`:return Y(e.defaultValue,0);default:return e.defaultValue??``}},$e=(e,t)=>{switch(e.type){case`checkbox`:return J(t,J(e.defaultValue,!1));case`number`:return Y(t,Y(e.defaultValue,0));default:return typeof t==`string`?t:t==null?e.defaultValue??``:String(t)}},et=e=>{let t=Object.entries(e).map(([e,t])=>[e,Qe(t)]);return Object.fromEntries(t)},X=(e,t)=>{let n=Object.entries(e).map(([e,n])=>[e,$e(n,t[e])]);return Object.fromEntries(n)},Z=async e=>{e?.onAction&&await e.onAction()},tt=async e=>{{let{default:t}=await Promise.resolve().then(()=>require(`./open--CgxJiTk.cjs`));await t(e);return}let{shell:t}=await import(`electron`);await t.openExternal(e)},nt=(e,t,n)=>{let r=typeof e==`string`?e:e?.toString();return r?.trim()&&tt(r).catch(e=>{D.error(`Failed to open URL: ${r}`),D.debug(e instanceof Error?e.message:String(e))}),null},Q=async(e,t)=>{if(!t.length)return`dismiss`;try{return await(0,a.select)({message:e,loop:!1,choices:t.map(e=>({name:e.action.title,value:e.kind}))})}catch(e){if(q(e))return`dismiss`;throw e}},$=()=>{switch(r.default.type()){case`Darwin`:return`macOS`;case`Windows_NT`:return`Windows`;default:return`Linux`}};Object.defineProperties(Uint8Array.prototype,{toBase64:{value:function(){return Buffer.from(this).toString(`base64`)},writable:!0,configurable:!0},toHex:{value:function(){return Buffer.from(this).toString(`hex`)},writable:!0,configurable:!0}}),Object.defineProperties(Uint8Array,{fromBase64:{value:function(e){return new Uint8Array(Buffer.from(e,`base64`))},writable:!0,configurable:!0},fromHex:{value:function(e){return new Uint8Array(Buffer.from(e,`hex`))},writable:!0,configurable:!0}});const rt=new Map([[24,[`Sequoia`,`15`]],[23,[`Sonoma`,`14`]],[22,[`Ventura`,`13`]],[21,[`Monterey`,`12`]],[20,[`Big Sur`,`11`]],[19,[`Catalina`,`10.15`]],[18,[`Mojave`,`10.14`]],[17,[`High Sierra`,`10.13`]],[16,[`Sierra`,`10.12`]],[15,[`El Capitan`,`10.11`]],[14,[`Yosemite`,`10.10`]],[13,[`Mavericks`,`10.9`]],[12,[`Mountain Lion`,`10.8`]],[11,[`Lion`,`10.7`]],[10,[`Snow Leopard`,`10.6`]],[9,[`Leopard`,`10.5`]],[8,[`Tiger`,`10.4`]],[7,[`Panther`,`10.3`]],[6,[`Jaguar`,`10.2`]],[5,[`Puma`,`10.1`]]]),it=()=>{let e=Number(r.default.release().split(`.`)[0]),[t,n]=rt.get(e)||[`Unknown`,``];return{name:t,version:n}},at=()=>{switch($()){case`macOS`:return it().version;case`Windows`:return r.default.release();case`Linux`:return r.default.release()}},ot=()=>{let e=[{brand:`Azot`,version:b.version.split(`.`).slice(0,2).join(`.`)},{brand:`Node.js`,version:process.version.replace(`v`,``).split(`.`).slice(0,1).join(`.`)}];return{mobile:!1,platform:$(),brands:e,getHighEntropyValues:async t=>{let n={mobile:!1,platform:$(),brands:e};return t.includes(`architecture`)&&(n.architecture=r.default.arch()),t.includes(`platform`)&&(n.platform=$()),t.includes(`platformVersion`)&&(n.platformVersion=at()),t.includes(`fullVersionList`)&&(n.fullVersionList=[{brand:`Azot`,version:b.version},{brand:`Node.js`,version:process.version}]),n}}},st=({name:e=`extension`,dir:t=process.cwd(),title:r}={})=>{let o=S((0,n.join)(t,e)),s=new Ye((0,n.join)(o,`storage.json`)),c=new Ve({storagePath:(0,n.join)(o,`cookies.json`)}),l=new We({cookieStore:c}),u=(e,t,n)=>e.split(t)[1]?.split(n)[0]?.trim(),d={sanitizeString:oe,execUrlPatterns:k,extendEpisodes:se,between:u,getRandomElements:qe},f=r?Ze(r):void 0,p=e=>e||f,m=async e=>(e.title||=f,await A.ask(e)),h={defineExtension:e=>e,version:b.version,sleep:i.setTimeout,sanitizeString:oe,execUrlPatterns:k,extendEpisodes:se,between:u,getRandomElements:qe,utils:d,prompt:m,input:ce,notify:async(e,t={})=>{let n=p(t.title)??`Azot`,r=[t.primaryAction?{kind:`primary`,action:t.primaryAction}:null,t.secondaryAction?{kind:`secondary`,action:t.secondaryAction}:null].filter(Boolean);{if(!r.length)return D.info(e);let n=await Q(e,r);n===`primary`&&await Z(t.primaryAction),n===`secondary`&&await Z(t.secondaryAction);return}let i=(await O.ask({variant:`notify`,title:n,message:e,style:t.style,primaryAction:t.primaryAction?{title:t.primaryAction.title,style:t.primaryAction.style}:void 0,secondaryAction:t.secondaryAction?{title:t.secondaryAction.title,style:t.secondaryAction.style}:void 0})).action??`dismiss`;i===`primary`&&await Z(t.primaryAction),i===`secondary`&&await Z(t.secondaryAction)},confirm:async(e,t={})=>{let n=p(t.title)??`Azot`,r=!!t.primaryAction||!!t.secondaryAction,i=t.primaryAction??{title:`OK`},o=t.secondaryAction??{title:`Cancel`,style:`cancel`};if(r){let t=await Q(e,[{kind:`primary`,action:i},{kind:`secondary`,action:o}]);return t===`primary`?(await Z(i),!0):(t===`secondary`&&await Z(o),!1)}try{let n=await(0,a.confirm)({message:e,default:!0});return n?await Z(t.primaryAction):await Z(t.secondaryAction),n}catch(e){if(q(e))return!1;throw e}let s=await O.ask({variant:`confirm`,title:n,message:e,style:t.style,primaryAction:{title:i.title,style:i.style},secondaryAction:{title:o.title,style:o.style}}),c=s.action===`primary`;return c?await Z(i):s.action===`secondary`&&await Z(o),c},ask:async(e,t)=>{let n=et(t.form),r=Object.entries(t.form),i=!!t.primaryAction||!!t.secondaryAction,o=t.primaryAction??{title:`Submit`},s=t.secondaryAction??{title:`Cancel`,style:`cancel`};{let c={};try{for(let[e,t]of r){let n=[t.title||e,t.description].filter(Boolean).join(` - `);if(t.type===`checkbox`){c[e]=await(0,a.confirm)({message:n,default:J(t.defaultValue,!1)});continue}if(t.type===`number`){let r=Y(t.defaultValue,NaN);c[e]=await(0,a.number)({message:n,default:Number.isFinite(r)?r:void 0,validate:e=>(e===void 0||Number.isNaN(e))&&t.required?`This field is required`:!0});continue}if(t.type===`password`){c[e]=await(0,a.password)({message:n,validate:t.required?e=>String(e??``).trim()?!0:`This field is required`:void 0});continue}c[e]=await(0,a.input)({message:n,default:t.defaultValue,validate:t.required?e=>String(e??``).trim()?!0:`This field is required`:void 0})}}catch(e){if(q(e))return n;throw e}if(!i)return X(t.form,c);let l=await Q(e,[{kind:`primary`,action:o},{kind:`secondary`,action:s}]);return l===`primary`?(await Z(o),X(t.form,c)):(l===`secondary`&&await Z(s),n)}let c=Object.fromEntries(r.map(([e,t])=>[e,{type:t.type,label:t.title||e,description:t.description,placeholder:t.placeholder,defaultValue:t.defaultValue,value:t.defaultValue,required:t.required,autoFocus:t.autoFocus}])),l=await m({title:p(t.title),description:e,fields:c,actions:i?{primaryAction:{title:o.title,style:o.style},secondaryAction:{title:s.title,style:s.style}}:void 0}),u=l.__action??`primary`,d={...l};return delete d.__action,u===`primary`?(await Z(t.primaryAction),X(t.form,d)):(u===`secondary`&&await Z(t.secondaryAction),n)}};class g{get cookie(){return c.toString()}}let _={fetch:l.fetch.bind(l),Response,Request,Headers,AbortController,AbortSignal,URL,URLSearchParams,URLPattern,open:nt,Blob,structuredClone,btoa,atob,TextEncoder,TextDecoder,Uint8Array,crypto,console:{log:console.log,info:D.info.bind(D),warn:D.warn.bind(D),error:(...e)=>{let t=String(e[0]??`Unknown error`);Xe.emit(`error`,{message:t}),D.error(t)},trace:D.trace.bind(D),debug:D.debug.bind(D)},Event,EventTarget,localStorage:s,cookieStore:c,document:new g,eval:e=>Ke(e)?.exports,navigator:{appName:`Azot`,appVersion:b.version,platform:process.platform,userAgent:`Azot/${b.version}`,userAgentData:ot()}};return{http:l,question:A,common:d,Streamyx:h,Azot:h,window:_,..._}};Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return st}});
|
|
File without changes
|
|
File without changes
|