azot 5.0.0-alpha.3 → 5.0.0-alpha.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/azt.js +2 -0
- package/dist/azt.mjs +2 -0
- package/dist/context-DHWGgddt.mjs +3 -0
- package/dist/context-DtwTOZVR.js +3 -0
- package/dist/context.js +1 -0
- package/dist/context.mjs +1 -0
- package/{out → dist}/main.js +1 -1
- package/{out → dist}/main.mjs +1 -1
- package/dist/vitest.js +1 -0
- package/{out → dist}/vitest.mjs +1 -1
- package/package.json +51 -122
- package/types/extension.d.ts +1 -1
- package/out/azt.js +0 -2
- package/out/azt.mjs +0 -2
- package/out/context-DTSYpvwR.mjs +0 -3
- package/out/context-DYv2PCKF.js +0 -3
- package/out/context.js +0 -1
- package/out/context.mjs +0 -1
- package/out/vitest.js +0 -1
- /package/{out → dist}/chunk-nOFOJqeH.js +0 -0
package/dist/azt.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
const e=require(`./chunk-nOFOJqeH.js`);let t=require(`node:util`);t=e.__toESM(t);let n=require(`node:fs`);n=e.__toESM(n);let r=require(`node:path`);r=e.__toESM(r);let i=require(`tsdown`);i=e.__toESM(i);let a=require(`node:crypto`);a=e.__toESM(a);let o=require(`javascript-obfuscator`);o=e.__toESM(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.privateDecrypt)(e,f),h=(0,a.createDecipheriv)(`aes-256-cbc`,m,d),g=Buffer.concat([h.update(p),h.final()]).toString(`utf8`);return r&&(0,n.writeFileSync)(r,g),g},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`]).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,o=a.replace(process.cwd(),`.`).replace(r.default.sep,`/`);await(0,i.build)({entry:o,format:d.values.format??`cjs`,platform:`node`,target:`node22`,watch:d.values.watch,minify:t}),d.values.input=r.default.join(process.cwd(),`dist`,r.default.basename(a).replace(/\.ts$/,`.js`));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||d.values.input.replace(/\.js$/,`-${s.version}.stx`);c(e,d.values.input,t),(0,n.rmSync)(d.values.input)}}else if(e===`decrypt`){let e=(0,n.readFileSync)(d.values.key||r.default.join(__dirname,`../private.pem`),`utf8`),t=d.values.output||a.replace(/\.stx$/,`.js`);l(e,a,t),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:`node20`,watch:!0,minify:e})}})();
|
package/dist/azt.mjs
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import{createRequire as e}from"node:module";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";var m=e(import.meta.url);const h=Buffer.from(`STX`,`utf8`),g=(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),m=Buffer.concat([h,o,p,u]);return r&&a(r,m),{aesIv:o,encryptedAesKey:p,encryptedCode:u}},_=(e,t,r)=>{let i=n(t),o=h.byteLength;if(!i.subarray(0,o).equals(h))throw Error(`Incorrect file format`);let s=o,c=s+16,d=c+512,f=i.subarray(s,c),p=i.subarray(c,d),m=i.subarray(d),g=u(e,p),_=l(`aes-256-cbc`,g,f),v=Buffer.concat([_.update(m),_.final()]).toString(`utf8`);return r&&a(r,v),v},v=(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},y=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`}}}),b=()=>{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`]).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[e,...t]=y.positionals,r=y.values.input||t[0]||b();if(!r)throw Error(`No entry file found`);if(e===`build`||e===`pack`){let t=typeof y.values.minify==`boolean`?y.values.minify:!0,a=r.replace(process.cwd(),`.`).replace(o.sep,`/`);await s({entry:a,format:y.values.format??`cjs`,platform:`node`,target:`node22`,watch:y.values.watch,minify:t}),y.values.input=o.join(process.cwd(),`dist`,o.basename(r).replace(/\.ts$/,`.js`));let c=m(o.join(process.cwd(),`package.json`));if((typeof y.values.obfuscate==`boolean`?y.values.obfuscate:c.private)&&v(y.values.input,y.values.input),y.values.encrypt||e===`pack`){let e=n(y.values.key||o.join(__dirname,`../public.pem`),`utf8`),t=y.values.output||y.values.input.replace(/\.js$/,`-${c.version}.stx`);g(e,y.values.input,t),i(y.values.input)}}else if(e===`decrypt`){let e=n(y.values.key||o.join(__dirname,`../private.pem`),`utf8`),t=y.values.output||r.replace(/\.stx$/,`.js`);_(e,r,t),y.values.input&&i(y.values.input)}else if(e===`dev`||e===`develop`||!e){let e=typeof y.values.minify==`boolean`?y.values.minify:!1;await s({entry:r,format:y.values.format??`cjs`,platform:`node`,target:`node20`,watch:!0,minify:e})}})();export{};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{existsSync as e,mkdirSync as t,readSync as n,writeSync as r}from"node:fs";import i,{basename as a,dirname as o,join as s}from"node:path";import c,{EOL as l,homedir as u,tmpdir as d}from"node:os";import{setTimeout as f}from"node:timers/promises";import{readFile as p,rm as m,stat as h,writeFile as g}from"node:fs/promises";import{configureSync as _,getConsoleSink as v,getLogger as y,withFilter as b}from"@logtape/logtape";import{getFileSink as x}from"@logtape/file";import{getPrettyFormatter as S}from"@logtape/pretty";import{arch as C,platform as w,stdin as ee,stdout as te,version as ne}from"node:process";import"urlpattern-polyfill";import re,{EventEmitter as ie}from"node:events";import{createInterface as ae}from"node:readline/promises";import{URL as oe}from"node:url";import{Agent as se,ProxyAgent as ce,fetch as le,interceptors as ue,parseCookie as T}from"undici";import{Impit as E}from"impit";import D from"metavm";import"picocolors";import"nanospinner";import O from"conf";var k={name:`@azot/desktop`,productName:`Azot`,version:`5.0.0-alpha.28`,description:`A powerful, extensible app for downloading videos`,main:`./out/main.js`,files:[`out`],scripts:{start:`tsx --env-file .env ./src/main/cli.ts`,preview:`electron-vite preview --config vite.desktop.config.mjs`,dev:`electron-vite dev --config vite.desktop.config.mjs --watch`,test:`vitest`,coverage:`vitest run --coverage`,"bundle:lib":`tsdown`,"bundle:cli":`electron-vite build --config vite.cli.config.mjs`,bundle:`npm run bundle:cli && electron-vite build --config vite.desktop.config.mjs`,build:`npm run bundle && electron-builder build --config electron-builder.config.js`,"build:mac":`npm run bundle && electron-builder build --mac --arm64 --config electron-builder.config.js`,"build:mac:intel":`npm run bundle && electron-builder build --mac --x64 --config electron-builder.config.js`,"build:win":`npm run bundle && electron-builder build --win --config electron-builder.config.js`,"build:linux":`npm run bundle && electron-builder build --linux --config electron-builder.config.js`,"publish:desktop":`npm run bundle && electron-builder build --publish always --config electron-builder.config.js`,"publish:lib":`npm run bundle:lib && npm publish --tag alpha`,typecheck:`npm run typecheck:node && npm run typecheck:web`,"typecheck:node":`tsc --noEmit -p tsconfig.node.json --composite false`,"typecheck:web":`vue-tsc --noEmit -p tsconfig.web.json --composite false`,format:`prettier --write .`,lint:`eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts,.vue --fix`},engines:{node:`>=22`},os:[`darwin`,`linux`,`win32`],keywords:[`azot`,`extensions`,`types`,`api`],author:`Vitaly Gashkov <vitalygashkov@vk.com>`,repository:{type:`git`,url:`https://github.com/azot-labs/azot.git`},homepage:`https://azot.so`,readmeFilename:`README.md`,funding:[{type:`individual`,url:`https://t.me/tribute/app?startapp=dqW2`}],dependencies:{"@electron-toolkit/preload":`^3.0.2`,"@electron-toolkit/utils":`^4.0.0`,"@inquirer/prompts":`^7.8.3`,"@logtape/file":`^1.0.4`,"@logtape/logtape":`^1.0.4`,"@logtape/pretty":`^1.0.4`,"@tanstack/query-core":`^5.85.5`,"@tribute-tg/better-auth":`^2.1.1`,"@types/semver":`^7.7.1`,azot:`^0.9.3`,"better-auth":`^1.3.9`,bytenode:`^1.5.7`,conf:`^14.0.0`,"cross-spawn":`^7.0.6`,dasha:`3.1.9`,"electron-squirrel-startup":`^1.0.1`,"electron-updater":`^6.6.2`,impit:`^0.5.4`,"javascript-obfuscator":`^4.1.1`,mediabunny:`^1.23.0`,metavm:`^1.4.4`,molnia:`^0.1.6`,nanospinner:`^1.2.2`,okova:`^0.9.3`,open:`^10.2.0`,"p-queue":`^8.1.0`,picocolors:`^1.1.1`,semver:`^7.7.2`,"telegram-better-auth":`^0.0.6`,tsdown:`^0.14.2`,undici:`^7.15.0`,"urlpattern-polyfill":`^10.1.0`,yargs:`^18.0.0`,yauzl:`^3.2.0`},devDependencies:{"@electron-toolkit/eslint-config":`^2.1.0`,"@electron-toolkit/eslint-config-prettier":`^3.0.0`,"@electron-toolkit/eslint-config-ts":`^3.1.0`,"@electron-toolkit/tsconfig":`^1.0.1`,"@eslint/js":`^9.26.0`,"@iconify/vue":`^4.3.0`,"@intlify/unplugin-vue-i18n":`^6.0.8`,"@rushstack/eslint-patch":`^1.10.5`,"@tailwindcss/vite":`^4.1.12`,"@tanstack/vue-query":`^5.85.5`,"@types/node":`^24.3.0`,"@types/wicg-file-system-access":`^2023.10.5`,"@types/yargs":`^17.0.33`,"@vee-validate/zod":`^4.15.1`,"@vitejs/plugin-vue":`^6.0.1`,"@vue/eslint-config-prettier":`^10.2.0`,"@vue/eslint-config-typescript":`^14.5.0`,"@vueuse/core":`^13.7.0`,"class-variance-authority":`^0.7.1`,clsx:`^2.1.1`,dotenv:`^17.2.1`,electron:`38.1.2`,"electron-builder":`^26.0.12`,"electron-vite":`^4.0.1`,eslint:`^9.34.0`,"eslint-plugin-import":`^2.32.0`,"eslint-plugin-n":`^17.21.3`,"eslint-plugin-vue":`^10.4.0`,execa:`^9.6.0`,globals:`^16.3.0`,"lucide-vue-next":`^0.541.0`,"non.geist":`^1.0.4`,pinia:`^3.0.3`,postcss:`^8.5.6`,prettier:`^3.6.2`,"reka-ui":`^2.5.0`,rolldown:`^1.0.0-beta.39`,sass:`^1.90.0`,"tailwind-merge":`^3.3.1`,tailwindcss:`^4.1.12`,"tailwindcss-animate":`^1.0.7`,tsx:`^4.20.5`,typescript:`^5.9.2`,"vee-validate":`^4.15.1`,vite:`^7.1.3`,"vite-plugin-static-copy":`^3.1.2`,vitest:`^3.2.4`,vue:`^3.5.18`,"vue-eslint-parser":`^10.2.0`,"vue-i18n":`^11.1.11`,"vue-sonner":`^1.3.0`,"vue-tsc":`^3.0.7`,zod:`^3.25.42`},peerDependencies:{vitest:`>=3.2.0`}};`pkg`in process&&process.pkg,process.versions.electron,`${k.version}${w}${C}${ne}`,`${k.version}`,k.name;const A=k.productName,j={darwin:`macOS`,win32:`Windows`,linux:`Linux`}[process.platform],M=n=>{let r=typeof n==`string`?n:n[j];return e(r)||t(r,{recursive:!0}),r},N=u(),P=d(),F=M({Windows:process.env.APPDATA||s(N,`AppData`,`Roaming`),macOS:s(N,`Library`,`Application Support`),Linux:process.env.XDG_DATA_HOME||s(N,`.local`,`share`)}),I=M({Windows:process.env.APPDATA||s(N,`AppData`,`Roaming`),macOS:s(N,`Library`,`Application Support`),Linux:process.env.XDG_CONFIG_HOME||s(N,`.config`)});M({Windows:process.env.LOCALAPPDATA||s(N,`AppData`,`Local`),macOS:s(N,`Library`,`Caches`),Linux:process.env.XDG_CACHE_HOME||s(N,`.cache`)}),M({Windows:s(N,`Downloads`),macOS:s(N,`Downloads`),Linux:process.env.XDG_DOWNLOAD_DIR||s(N,`Downloads`)});const L=M({Windows:s(F,A),macOS:s(F,A),Linux:s(F,A.toLowerCase())}),R=M({Windows:s(I,A),macOS:s(I,A),Linux:s(I,A.toLowerCase())}),z=M({Windows:s(I,A,`logs`),macOS:s(N,`Library`,`Logs`,A),Linux:s(I,A.toLowerCase(),`logs`)});s(P,A.toLowerCase());const B=M(s(L,`extensions`));M(s(B,`installed`)),M(s(B,`work`)),M(s(B,`index.json`)),s(R,`settings.json`);const V=process.argv.includes(`-d`)||process.argv.includes(`--debug`)||process.env.NODE_ENV_ELECTRON_VITE===`development`||!!process.env.ELECTRON_CLI_ARGS,H=()=>`Azot_${new Date().toISOString().split(`.`)[0].replace(`T`,`_`).replaceAll(`-`,``).replaceAll(`:`,``)}.log`,U=()=>s(z,H()),de=S({timestamp:`time`,messageColor:null,messageStyle:null,levelStyle:null,icons:!1,colors:!0,level:`FULL`,categoryWidth:0,categoryStyle:null,categoryTruncate:`end`,wordWrap:!0});_({sinks:{console:b(v({formatter:de}),V?`debug`:`info`),file:x(U(),{flushInterval:0})},loggers:[{category:[],lowestLevel:`trace`,sinks:[`console`,`file`]},{category:[`logtape`,`meta`],lowestLevel:`error`,sinks:[`console`]}]});const W=y([]),G=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}},q=(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(),o=a.length;return{items:e,has:t,set:n,getMin:()=>Math.min(...a),getMax:()=>Math.max(...a),seasonsCount:i,episodesCount:o}};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 ie{static requestEventName=`form`;static responseEventName=`form:response`;title;constructor(e={}){super(),this.title=e.title,this.listen(async e=>{let t=ae({input:ee,output:te}),{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),f(pe,``)])}return t.close(),o})}async ask(t){return new Promise(n=>{this.emit(e.requestEventName,t),this.addListener(e.responseEventName,e=>{n(e)})})}listen(t){this.addListener(e.requestEventName,async n=>{let r=await t(n);this.emit(e.responseEventName,r)})}},fe=async(e,t)=>{let n=t?.fields??{answer:{label:e}};return await J.ask({title:t?.title,description:e,fields:n})},pe=12e4,me=(e,t)=>{r(1,e||``);let i=Buffer.alloc(1),a=``;for(;;){try{n(0,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{n(0,i,0,1,null),i.toString(`utf-8`)}catch(e){if(e.code===`EOF`)break;throw e}break}a+=e}return a.trim()||t},he=e=>{let t=e.expires instanceof Date?e.expires.getTime():e.expires,n;return e.sameSite===`Strict`?n=`strict`:e.sameSite===`Lax`&&(n=`lax`),{name:e.name,value:e.value,expires:t,domain:e.domain,path:e.path,sameSite:n,partitioned:!1,maxAge:e.maxAge,secure:e.secure,httpOnly:e.httpOnly,unparsed:e.unparsed}},Y=e=>{let t=[];for(let n of e)try{let e=T(n);e&&t.push(he(e))}catch(e){W.debug(e)}return t},ge=async e=>{let t=await p(e,`utf8`).catch(()=>``);if(!t)return[];let n=t.split(l).flatMap(e=>e.split(`
|
|
3
|
+
`)).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,unparsed:e})}return r};var X=class{#data={};#cookies;#storagePath;#hasBeenRead=!1;static parse(e){return Y(e)}constructor({storagePath:e}={}){this.#storagePath=e,this.#cookies=[]}async import(e){(await h(e).catch(()=>null))?.isFile()&&(this.#cookies=await ge(e),await m(e,{recursive:!0,force:!0}))}async#read(){if(!(!this.#storagePath||this.#hasBeenRead)){if((await h(this.#storagePath).catch(()=>null))?.isFile()){let e=await p(this.#storagePath,`utf8`);this.#data=e?JSON.parse(e):{},this.#cookies=`cookies`in this.#data?this.#data.cookies:[]}this.#hasBeenRead=!0}}async#write(){if(!this.#storagePath)return;let e=JSON.stringify({...this.#data,cookies:this.#cookies},null,2);await g(this.#storagePath,e,`utf8`)}async get(e){await this.#read();let t=typeof e==`string`?e:e.name;return this.#cookies.find(e=>e.name===t)??null}async getAll(e){if(await this.#read(),!e)return this.#cookies;let t=typeof e==`string`?e:e.name;return this.#cookies.filter(e=>e.name===t)??null}async set(e){await this.#read(),this.#cookies=this.#cookies.filter(t=>!(t.name===e.name&&t.domain===e.domain)),this.#cookies.push(e),await this.#write()}async delete(e){if(await this.#read(),!e)this.#cookies=[];else{let t=typeof e==`string`?e:e.name;this.#cookies=this.#cookies.filter(e=>e.name!==t)}}toString(){return this.#cookies.map(e=>`${e.name}=${e.value}`).join(`; `)}},Z=class{#impit;#agent;cookieStore;headers;#retryThreshold;#retryDelayMs;#failures=new Map;constructor(e={}){this.headers=new Headers,this.#retryThreshold=3,this.#retryDelayMs=1500,this.configure(e)}configure({proxyUrl:e,allowH2:t=!0,maxRedirections:n=3,maxRetries:r=3,cookieStore:i}={}){this.cookieStore=i??this.cookieStore??new X,this.#impit=new E({browser:`chrome`,ignoreTlsErrors:!0,proxyUrl:e,followRedirects:!0,maxRedirects:n});let{redirect:a,retry:o}=ue;e?this.#agent=new ce({uri:e,allowH2:t}).compose(a({maxRedirections:n}),o({maxRetries:r})):this.#agent=new se({allowH2:t}).compose(a({maxRedirections:n}),o({maxRetries:r}))}get retries(){return this.#retryThreshold}async fetch(e,t={}){let n=t.headers&&(t.headers instanceof Headers?t.headers.has(`User-Agent`):`User-Agent`in t.headers||`user-agent`in t.headers),r=this.appendHeaders(t?.headers||{}),i=await this.cookieStore.getAll(),a=i.filter(t=>!t.domain||new oe(e).hostname.includes(t.domain));for(let e of i)a.find(t=>t.name===e.name)||e.domain||a.push(e);let o=a.map(e=>`${e.name}=${e.value}`).join(`; `);r.has(`cookie`)?r.get(`cookie`)||r.delete(`cookie`):r.set(`cookie`,o);let s={...t,body:t?.body,headers:r};t&&(t.headers=r);let c=await(n?le(e,{...s,dispatcher:this.#agent}):this.withRetry(this.#impit.fetch.bind(this.#impit),e,s)),l=c.headers.getSetCookie();return l&&await this.setCookies(l),c}async withRetry(e,t,n){try{let r=await e(t.toString(),n),i=r.status===401,a=r.status>=300&&r.status<=399;return!(r.status>=200&&r.status<=299||a||i)&&this.#hasAttempts(t)?(await this.#nextRetry(t),W.debug(await r.text()),W.debug(String(r.status)),this.withRetry(e,t,n)):r}catch(r){let i=r;if(W.debug(i.stack),W.debug({input:t,init:{method:n?.method,headers:n?.headers,body:`...`}}),!this.#hasAttempts(t))throw r;return await this.#nextRetry(t),this.withRetry(e,t,n)}}async setCookies(e){let t=[];if(typeof e==`string`){let[n]=Y([e]);n&&t.push(n)}else if(Array.isArray(e)&&typeof e.at(0)==`string`){let n=Y(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}#hasAttempts(e){return this.#getFailuresCount(e)<=this.#retryThreshold}#getFailuresCount(e){return this.#failures.get(e)||1}#addFailure(e){this.#failures.set(e,this.#getFailuresCount(e)+1)}async#nextRetry(e){let t=this.#getFailuresCount(e);t&&await new Promise(e=>setTimeout(e,this.#retryDelayMs)),this.#addFailure(e),W.debug(`Retry ${t}/${this.#retryThreshold}: ${String(e)}`)}setHeader(e,t){this.headers.set(e,t)}removeHeader(e){this.headers.delete(e)}setRetryCount(e){e>1&&(this.#retryThreshold=e)}};new Z;const{COMMON_CONTEXT:_e}=D,ve=(e,t=`Eval`,n)=>{try{return D.createScript(t,e,n)}catch(t){return console.debug(t),console.debug(e),console.error(`Syntax Error: ${t.message}`),null}},Q=(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[]},ye=e=>new(`default`in O?O.default:O)(e);var be=class{#store;constructor(e){this.#store=ye({cwd:o(e),configName:a(e,`.json`)})}get length(){return Object.keys(this.#store.store).length}clear(){this.#store.clear()}getItem(e){return this.#store.get(e)??null}key(e){return Object.keys(this.#store.store).at(e)??null}removeItem(e){this.#store.delete(e)}setItem(e,t){this.#store.set(e,t)}};const xe=new re,$=()=>{switch(c.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 Se=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`]]]),Ce=()=>{let e=Number(c.release().split(`.`)[0]),[t,n]=Se.get(e)||[`Unknown`,``];return{name:t,version:n}},we=()=>{switch($()){case`macOS`:return Ce().version;case`Windows`:return c.release();case`Linux`:return c.release()}},Te=()=>{let e=[{brand:`Azot`,version:k.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=c.arch()),t.includes(`platform`)&&(n.platform=$()),t.includes(`platformVersion`)&&(n.platformVersion=we()),t.includes(`fullVersionList`)&&(n.fullVersionList=[{brand:`Azot`,version:k.version},{brand:`Node.js`,version:process.version}]),n}}},Ee=({name:e=`extension`,dir:t=process.cwd(),title:n}={})=>{let r=M(s(t,e)),i=new be(s(r,`storage.json`)),a=new X({storagePath:s(r,`cookies.json`)}),o=new Z({cookieStore:a}),c=(e,t,n)=>e.split(t)[1]?.split(n)[0]?.trim(),l={sanitizeString:G,execUrlPatterns:K,extendEpisodes:q,between:c,getRandomElements:Q},u={defineExtension:e=>e,version:k.version,input:fe,sleep:f,sanitizeString:G,execUrlPatterns:K,extendEpisodes:q,between:c,getRandomElements:Q,utils:l,prompt:async e=>(!e.title&&n&&(e.title=n[0].toUpperCase()+n.slice(1)),await J.ask(e))};class d{get cookie(){return a.toString()}}let p={fetch:o.fetch.bind(o),Response,Request,Headers,AbortController,AbortSignal,URL,URLSearchParams,URLPattern,Blob,structuredClone,btoa,atob,TextEncoder,TextDecoder,Uint8Array,crypto,console:{log:console.log,info:W.info.bind(W),warn:W.warn.bind(W),error:(...e)=>{xe.emit(`error`,{message:e[0]}),W.error(...e)},trace:W.trace.bind(W),debug:W.debug.bind(W)},prompt:me,alert:e=>{W.warn(e)},Event,EventTarget,localStorage:i,cookieStore:a,document:new d,eval:e=>ve(e)?.exports,navigator:{appName:`Azot`,appVersion:k.version,platform:process.platform,userAgentData:Te()}};return{http:o,question:J,common:l,Streamyx:u,Azot:u,window:p,...p}};export{Ee as createContext};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
const e=require(`./chunk-nOFOJqeH.js`);let t=require(`node:fs`);t=e.__toESM(t);let n=require(`node:path`);n=e.__toESM(n);let r=require(`node:os`);r=e.__toESM(r);let i=require(`node:timers/promises`);i=e.__toESM(i);let a=require(`node:fs/promises`);a=e.__toESM(a);let o=require(`@logtape/logtape`);o=e.__toESM(o);let s=require(`@logtape/file`);s=e.__toESM(s);let c=require(`@logtape/pretty`);c=e.__toESM(c);let l=require(`node:process`);l=e.__toESM(l),require(`urlpattern-polyfill`);let u=require(`node:events`);u=e.__toESM(u);let d=require(`node:readline/promises`);d=e.__toESM(d);let f=require(`node:url`);f=e.__toESM(f);let p=require(`undici`);p=e.__toESM(p);let m=require(`impit`);m=e.__toESM(m);let h=require(`metavm`);h=e.__toESM(h),require(`picocolors`),require(`nanospinner`);let g=require(`conf`);g=e.__toESM(g);var ee=`@azot/desktop`,_=`Azot`,v=`5.0.0-alpha.28`,y=`A powerful, extensible app for downloading videos`,b=`./out/main.js`,x=[`out`],S={start:`tsx --env-file .env ./src/main/cli.ts`,preview:`electron-vite preview --config vite.desktop.config.mjs`,dev:`electron-vite dev --config vite.desktop.config.mjs --watch`,test:`vitest`,coverage:`vitest run --coverage`,"bundle:lib":`tsdown`,"bundle:cli":`electron-vite build --config vite.cli.config.mjs`,bundle:`npm run bundle:cli && electron-vite build --config vite.desktop.config.mjs`,build:`npm run bundle && electron-builder build --config electron-builder.config.js`,"build:mac":`npm run bundle && electron-builder build --mac --arm64 --config electron-builder.config.js`,"build:mac:intel":`npm run bundle && electron-builder build --mac --x64 --config electron-builder.config.js`,"build:win":`npm run bundle && electron-builder build --win --config electron-builder.config.js`,"build:linux":`npm run bundle && electron-builder build --linux --config electron-builder.config.js`,"publish:desktop":`npm run bundle && electron-builder build --publish always --config electron-builder.config.js`,"publish:lib":`npm run bundle:lib && npm publish --tag alpha`,typecheck:`npm run typecheck:node && npm run typecheck:web`,"typecheck:node":`tsc --noEmit -p tsconfig.node.json --composite false`,"typecheck:web":`vue-tsc --noEmit -p tsconfig.web.json --composite false`,format:`prettier --write .`,lint:`eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts,.vue --fix`},C={node:`>=22`},te=[`darwin`,`linux`,`win32`],ne=[`azot`,`extensions`,`types`,`api`],re=`Vitaly Gashkov <vitalygashkov@vk.com>`,ie={type:`git`,url:`https://github.com/azot-labs/azot.git`},ae=`https://azot.so`,w=`README.md`,oe=[{type:`individual`,url:`https://t.me/tribute/app?startapp=dqW2`}],se={"@electron-toolkit/preload":`^3.0.2`,"@electron-toolkit/utils":`^4.0.0`,"@inquirer/prompts":`^7.8.3`,"@logtape/file":`^1.0.4`,"@logtape/logtape":`^1.0.4`,"@logtape/pretty":`^1.0.4`,"@tanstack/query-core":`^5.85.5`,"@tribute-tg/better-auth":`^2.1.1`,"@types/semver":`^7.7.1`,azot:`^0.9.3`,"better-auth":`^1.3.9`,bytenode:`^1.5.7`,conf:`^14.0.0`,"cross-spawn":`^7.0.6`,dasha:`3.1.9`,"electron-squirrel-startup":`^1.0.1`,"electron-updater":`^6.6.2`,impit:`^0.5.4`,"javascript-obfuscator":`^4.1.1`,mediabunny:`^1.23.0`,metavm:`^1.4.4`,molnia:`^0.1.6`,nanospinner:`^1.2.2`,okova:`^0.9.3`,open:`^10.2.0`,"p-queue":`^8.1.0`,picocolors:`^1.1.1`,semver:`^7.7.2`,"telegram-better-auth":`^0.0.6`,tsdown:`^0.14.2`,undici:`^7.15.0`,"urlpattern-polyfill":`^10.1.0`,yargs:`^18.0.0`,yauzl:`^3.2.0`},ce={"@electron-toolkit/eslint-config":`^2.1.0`,"@electron-toolkit/eslint-config-prettier":`^3.0.0`,"@electron-toolkit/eslint-config-ts":`^3.1.0`,"@electron-toolkit/tsconfig":`^1.0.1`,"@eslint/js":`^9.26.0`,"@iconify/vue":`^4.3.0`,"@intlify/unplugin-vue-i18n":`^6.0.8`,"@rushstack/eslint-patch":`^1.10.5`,"@tailwindcss/vite":`^4.1.12`,"@tanstack/vue-query":`^5.85.5`,"@types/node":`^24.3.0`,"@types/wicg-file-system-access":`^2023.10.5`,"@types/yargs":`^17.0.33`,"@vee-validate/zod":`^4.15.1`,"@vitejs/plugin-vue":`^6.0.1`,"@vue/eslint-config-prettier":`^10.2.0`,"@vue/eslint-config-typescript":`^14.5.0`,"@vueuse/core":`^13.7.0`,"class-variance-authority":`^0.7.1`,clsx:`^2.1.1`,dotenv:`^17.2.1`,electron:`38.1.2`,"electron-builder":`^26.0.12`,"electron-vite":`^4.0.1`,eslint:`^9.34.0`,"eslint-plugin-import":`^2.32.0`,"eslint-plugin-n":`^17.21.3`,"eslint-plugin-vue":`^10.4.0`,execa:`^9.6.0`,globals:`^16.3.0`,"lucide-vue-next":`^0.541.0`,"non.geist":`^1.0.4`,pinia:`^3.0.3`,postcss:`^8.5.6`,prettier:`^3.6.2`,"reka-ui":`^2.5.0`,rolldown:`^1.0.0-beta.39`,sass:`^1.90.0`,"tailwind-merge":`^3.3.1`,tailwindcss:`^4.1.12`,"tailwindcss-animate":`^1.0.7`,tsx:`^4.20.5`,typescript:`^5.9.2`,"vee-validate":`^4.15.1`,vite:`^7.1.3`,"vite-plugin-static-copy":`^3.1.2`,vitest:`^3.2.4`,vue:`^3.5.18`,"vue-eslint-parser":`^10.2.0`,"vue-i18n":`^11.1.11`,"vue-sonner":`^1.3.0`,"vue-tsc":`^3.0.7`,zod:`^3.25.42`},le={vitest:`>=3.2.0`},T={name:ee,productName:_,version:v,description:y,main:b,files:x,scripts:S,engines:C,os:te,keywords:ne,author:re,repository:ie,homepage:ae,readmeFilename:w,funding:oe,dependencies:se,devDependencies:ce,peerDependencies:le};const ue=`pkg`in process&&process.pkg!==void 0,E=!!process.versions.electron&&!1,D=!E,de=`v${T.version} ${l.platform}-${l.arch} node-${l.version}`,fe=`v${T.version}`,pe=T.name,O=T.productName,k={darwin:`macOS`,win32:`Windows`,linux:`Linux`},A=k[process.platform],j=e=>{let n=typeof e==`string`?e:e[A];return(0,t.existsSync)(n)||(0,t.mkdirSync)(n,{recursive:!0}),n},M=(0,r.homedir)(),N=(0,r.tmpdir)(),P=j({Windows:process.env.APPDATA||(0,n.join)(M,`AppData`,`Roaming`),macOS:(0,n.join)(M,`Library`,`Application Support`),Linux:process.env.XDG_DATA_HOME||(0,n.join)(M,`.local`,`share`)}),F=j({Windows:process.env.APPDATA||(0,n.join)(M,`AppData`,`Roaming`),macOS:(0,n.join)(M,`Library`,`Application Support`),Linux:process.env.XDG_CONFIG_HOME||(0,n.join)(M,`.config`)}),me=j({Windows:process.env.LOCALAPPDATA||(0,n.join)(M,`AppData`,`Local`),macOS:(0,n.join)(M,`Library`,`Caches`),Linux:process.env.XDG_CACHE_HOME||(0,n.join)(M,`.cache`)}),he=j({Windows:(0,n.join)(M,`Downloads`),macOS:(0,n.join)(M,`Downloads`),Linux:process.env.XDG_DOWNLOAD_DIR||(0,n.join)(M,`Downloads`)}),I=j({Windows:(0,n.join)(P,O),macOS:(0,n.join)(P,O),Linux:(0,n.join)(P,O.toLowerCase())}),L=j({Windows:(0,n.join)(F,O),macOS:(0,n.join)(F,O),Linux:(0,n.join)(F,O.toLowerCase())}),R=j({Windows:(0,n.join)(F,O,`logs`),macOS:(0,n.join)(M,`Library`,`Logs`,O),Linux:(0,n.join)(F,O.toLowerCase(),`logs`)}),ge=(0,n.join)(N,O.toLowerCase()),z=j((0,n.join)(I,`extensions`)),_e=j((0,n.join)(z,`installed`)),ve=j((0,n.join)(z,`work`)),ye=j((0,n.join)(z,`index.json`)),be=(0,n.join)(L,`settings.json`),B=process.argv.includes(`-d`)||process.argv.includes(`--debug`)||process.env.NODE_ENV_ELECTRON_VITE===`development`||!!process.env.ELECTRON_CLI_ARGS,V=()=>`Azot_${new Date().toISOString().split(`.`)[0].replace(`T`,`_`).replaceAll(`-`,``).replaceAll(`:`,``)}.log`,xe=()=>(0,n.join)(R,V()),H=(0,c.getPrettyFormatter)({timestamp:`time`,messageColor:null,messageStyle:null,levelStyle:null,icons:!1,colors:!0,level:`FULL`,categoryWidth:0,categoryStyle:null,categoryTruncate:`end`,wordWrap:!0});(0,o.configureSync)({sinks:{console:(0,o.withFilter)((0,o.getConsoleSink)({formatter:H}),B?`debug`:`info`),file:(0,s.getFileSink)(xe(),{flushInterval:0})},loggers:[{category:[],lowestLevel:`trace`,sinks:[`console`,`file`]},{category:[`logtape`,`meta`],lowestLevel:`error`,sinks:[`console`]}]});const U=(0,o.getLogger)([]),W=e=>{let t=[`}`,`{`,`%`,`>`,`<`,`^`,`;`,"`",`$`,`"`,`@`,`=`],n=e;for(let e in t)n=n.replaceAll(`/`,`_`).replaceAll(t[e],``);return n},G=(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}},K=(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(),o=a.length;return{items:e,has:t,set:n,getMin:()=>Math.min(...a),getMax:()=>Math.max(...a),seasonsCount:i,episodesCount:o}},Se=new Intl.DateTimeFormat(`en-US`,{year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1}),Ce=new Intl.DateTimeFormat(`en-US`,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1});var we=class e extends u.EventEmitter{static requestEventName=`form`;static responseEventName=`form:response`;title;constructor(e={}){super(),this.title=e.title,D&&this.listen(async e=>{let t=(0,d.createInterface)({input:l.stdin,output:l.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)(Ee,``)])}return t.close(),s})}async ask(t){return new Promise(n=>{this.emit(e.requestEventName,t),this.addListener(e.responseEventName,e=>{n(e)})})}listen(t){this.addListener(e.requestEventName,async n=>{let r=await t(n);this.emit(e.responseEventName,r)})}};const q=new we,Te=async(e,t)=>{let n=t?.fields??{answer:{label:e}};return await q.ask({title:t?.title,description:e,fields:n})},Ee=12e4,De=(e,n)=>{(0,t.writeSync)(1,e||``);let r=Buffer.alloc(1),i=``;for(;;){try{(0,t.readSync)(0,r,0,1,null)}catch(e){if(e.code===`EOF`)break;throw e}let e=r.toString(`utf-8`);if(e===`
|
|
2
|
+
`||e===`\r`){if(e===`\r`)try{(0,t.readSync)(0,r,0,1,null),r.toString(`utf-8`)}catch(e){if(e.code===`EOF`)break;throw e}break}i+=e}return i.trim()||n},Oe=e=>{let t=e.expires instanceof Date?e.expires.getTime():e.expires,n;return e.sameSite===`Strict`?n=`strict`:e.sameSite===`Lax`&&(n=`lax`),{name:e.name,value:e.value,expires:t,domain:e.domain,path:e.path,sameSite:n,partitioned:!1,maxAge:e.maxAge,secure:e.secure,httpOnly:e.httpOnly,unparsed:e.unparsed}},J=e=>{let t=[];for(let n of e)try{let e=(0,p.parseCookie)(n);e&&t.push(Oe(e))}catch(e){U.debug(e)}return t},ke=async e=>{let t=await(0,a.readFile)(e,`utf8`).catch(()=>``);if(!t)return[];let n=t.split(r.EOL).flatMap(e=>e.split(`
|
|
3
|
+
`)).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,unparsed:e})}return i};var Y=class{#data={};#cookies;#storagePath;#hasBeenRead=!1;static parse(e){return J(e)}constructor({storagePath:e}={}){this.#storagePath=e,this.#cookies=[]}async import(e){(await(0,a.stat)(e).catch(()=>null))?.isFile()&&(this.#cookies=await ke(e),await(0,a.rm)(e,{recursive:!0,force:!0}))}async#read(){if(!(!this.#storagePath||this.#hasBeenRead)){if((await(0,a.stat)(this.#storagePath).catch(()=>null))?.isFile()){let e=await(0,a.readFile)(this.#storagePath,`utf8`);this.#data=e?JSON.parse(e):{},this.#cookies=`cookies`in this.#data?this.#data.cookies:[]}this.#hasBeenRead=!0}}async#write(){if(!this.#storagePath)return;let e=JSON.stringify({...this.#data,cookies:this.#cookies},null,2);await(0,a.writeFile)(this.#storagePath,e,`utf8`)}async get(e){await this.#read();let t=typeof e==`string`?e:e.name;return this.#cookies.find(e=>e.name===t)??null}async getAll(e){if(await this.#read(),!e)return this.#cookies;let t=typeof e==`string`?e:e.name;return this.#cookies.filter(e=>e.name===t)??null}async set(e){await this.#read(),this.#cookies=this.#cookies.filter(t=>!(t.name===e.name&&t.domain===e.domain)),this.#cookies.push(e),await this.#write()}async delete(e){if(await this.#read(),!e)this.#cookies=[];else{let t=typeof e==`string`?e:e.name;this.#cookies=this.#cookies.filter(e=>e.name!==t)}}toString(){return this.#cookies.map(e=>`${e.name}=${e.value}`).join(`; `)}},X=class{#impit;#agent;cookieStore;headers;#retryThreshold;#retryDelayMs;#failures=new Map;constructor(e={}){this.headers=new Headers,this.#retryThreshold=3,this.#retryDelayMs=1500,this.configure(e)}configure({proxyUrl:e,allowH2:t=!0,maxRedirections:n=3,maxRetries:r=3,cookieStore:i}={}){this.cookieStore=i??this.cookieStore??new Y,this.#impit=new m.Impit({browser:`chrome`,ignoreTlsErrors:!0,proxyUrl:e,followRedirects:!0,maxRedirects:n});let{redirect:a,retry:o}=p.interceptors;e?this.#agent=new p.ProxyAgent({uri:e,allowH2:t}).compose(a({maxRedirections:n}),o({maxRetries:r})):this.#agent=new p.Agent({allowH2:t}).compose(a({maxRedirections:n}),o({maxRetries:r}))}get retries(){return this.#retryThreshold}async fetch(e,t={}){let n=t.headers&&(t.headers instanceof Headers?t.headers.has(`User-Agent`):`User-Agent`in t.headers||`user-agent`in t.headers),r=this.appendHeaders(t?.headers||{}),i=await this.cookieStore.getAll(),a=i.filter(t=>!t.domain||new f.URL(e).hostname.includes(t.domain));for(let e of i)a.find(t=>t.name===e.name)||e.domain||a.push(e);let o=a.map(e=>`${e.name}=${e.value}`).join(`; `);r.has(`cookie`)?r.get(`cookie`)||r.delete(`cookie`):r.set(`cookie`,o);let s={...t,body:t?.body,headers:r};t&&(t.headers=r);let c=await(n?(0,p.fetch)(e,{...s,dispatcher:this.#agent}):this.withRetry(this.#impit.fetch.bind(this.#impit),e,s)),l=c.headers.getSetCookie();return l&&await this.setCookies(l),c}async withRetry(e,t,n){try{let r=await e(t.toString(),n),i=r.status===401,a=r.status>=300&&r.status<=399;return!(r.status>=200&&r.status<=299||a||i)&&this.#hasAttempts(t)?(await this.#nextRetry(t),U.debug(await r.text()),U.debug(String(r.status)),this.withRetry(e,t,n)):r}catch(r){let i=r;if(U.debug(i.stack),U.debug({input:t,init:{method:n?.method,headers:n?.headers,body:`...`}}),!this.#hasAttempts(t))throw r;return await this.#nextRetry(t),this.withRetry(e,t,n)}}async setCookies(e){let t=[];if(typeof e==`string`){let[n]=J([e]);n&&t.push(n)}else if(Array.isArray(e)&&typeof e.at(0)==`string`){let n=J(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}#hasAttempts(e){return this.#getFailuresCount(e)<=this.#retryThreshold}#getFailuresCount(e){return this.#failures.get(e)||1}#addFailure(e){this.#failures.set(e,this.#getFailuresCount(e)+1)}async#nextRetry(e){let t=this.#getFailuresCount(e);t&&await new Promise(e=>setTimeout(e,this.#retryDelayMs)),this.#addFailure(e),U.debug(`Retry ${t}/${this.#retryThreshold}: ${String(e)}`)}setHeader(e,t){this.headers.set(e,t)}removeHeader(e){this.headers.delete(e)}setRetryCount(e){e>1&&(this.#retryThreshold=e)}};const Ae=new X,{COMMON_CONTEXT:je}=h.default,Me=(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}},Z=(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[]},Ne=e=>new(`default`in g.default?g.default.default:g.default)(e);var Pe=class{#store;constructor(e){this.#store=Ne({cwd:(0,n.dirname)(e),configName:(0,n.basename)(e,`.json`)})}get length(){return Object.keys(this.#store.store).length}clear(){this.#store.clear()}getItem(e){return this.#store.get(e)??null}key(e){return Object.keys(this.#store.store).at(e)??null}removeItem(e){this.#store.delete(e)}setItem(e,t){this.#store.set(e,t)}};const Fe=new u.default,Q=()=>{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 Ie=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`]]]),Le=()=>{let e=Number(r.default.release().split(`.`)[0]),[t,n]=Ie.get(e)||[`Unknown`,``];return{name:t,version:n}},Re=()=>{switch(Q()){case`macOS`:return Le().version;case`Windows`:return r.default.release();case`Linux`:return r.default.release()}},ze=()=>{let e=[{brand:`Azot`,version:T.version.split(`.`).slice(0,2).join(`.`)},{brand:`Node.js`,version:process.version.replace(`v`,``).split(`.`).slice(0,1).join(`.`)}];return{mobile:!1,platform:Q(),brands:e,getHighEntropyValues:async t=>{let n={mobile:!1,platform:Q(),brands:e};return t.includes(`architecture`)&&(n.architecture=r.default.arch()),t.includes(`platform`)&&(n.platform=Q()),t.includes(`platformVersion`)&&(n.platformVersion=Re()),t.includes(`fullVersionList`)&&(n.fullVersionList=[{brand:`Azot`,version:T.version},{brand:`Node.js`,version:process.version}]),n}}},$=({name:e=`extension`,dir:t=process.cwd(),title:r}={})=>{let a=j((0,n.join)(t,e)),o=new Pe((0,n.join)(a,`storage.json`)),s=new Y({storagePath:(0,n.join)(a,`cookies.json`)}),c=new X({cookieStore:s}),l=(e,t,n)=>e.split(t)[1]?.split(n)[0]?.trim(),u={sanitizeString:W,execUrlPatterns:G,extendEpisodes:K,between:l,getRandomElements:Z},d={defineExtension:e=>e,version:T.version,input:Te,sleep:i.setTimeout,sanitizeString:W,execUrlPatterns:G,extendEpisodes:K,between:l,getRandomElements:Z,utils:u,prompt:async e=>(!e.title&&r&&(e.title=r[0].toUpperCase()+r.slice(1)),await q.ask(e))};class f{get cookie(){return s.toString()}}let p={fetch:c.fetch.bind(c),Response,Request,Headers,AbortController,AbortSignal,URL,URLSearchParams,URLPattern,Blob,structuredClone,btoa,atob,TextEncoder,TextDecoder,Uint8Array,crypto,console:{log:console.log,info:U.info.bind(U),warn:U.warn.bind(U),error:(...e)=>{Fe.emit(`error`,{message:e[0]}),U.error(...e)},trace:U.trace.bind(U),debug:U.debug.bind(U)},prompt:De,alert:e=>{U.warn(e)},Event,EventTarget,localStorage:o,cookieStore:s,document:new f,eval:e=>Me(e)?.exports,navigator:{appName:`Azot`,appVersion:T.version,platform:process.platform,userAgentData:ze()}};return{http:c,question:q,common:u,Streamyx:d,Azot:d,window:p,...p}};Object.defineProperty(exports,`createContext`,{enumerable:!0,get:function(){return $}});
|
package/dist/context.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require(`./context-DtwTOZVR.js`);exports.createContext=e.createContext;
|
package/dist/context.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{createContext as e}from"./context-DHWGgddt.mjs";export{e as createContext};
|
package/{out → dist}/main.js
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=`Streamyx`in globalThis?globalThis.Streamyx:{},t=`Azot`in globalThis?globalThis.Azot:{};if(!globalThis.Azot&&globalThis.Streamyx&&(globalThis.Azot=globalThis.Streamyx),globalThis.Azot&&!globalThis.Azot.input){let e=async(e,t)=>{let n=t?.fields??{answer:{label:e}}
|
|
1
|
+
const e=`Streamyx`in globalThis?globalThis.Streamyx:{},t=`Azot`in globalThis?globalThis.Azot:{};if(!globalThis.Azot&&globalThis.Streamyx&&(globalThis.Azot=globalThis.Streamyx),globalThis.Azot&&!globalThis.Azot.input){let e=async(e,t)=>{let n=t?.fields??{answer:{label:e}};return await globalThis.Azot.prompt.ask({title:t?.title,description:e,fields:n})};globalThis.Azot.input=e}var n={...e,...t};module.exports=n;
|
package/{out → dist}/main.mjs
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=`Streamyx`in globalThis?globalThis.Streamyx:{},t=`Azot`in globalThis?globalThis.Azot:{};if(!globalThis.Azot&&globalThis.Streamyx&&(globalThis.Azot=globalThis.Streamyx),globalThis.Azot&&!globalThis.Azot.input){let e=async(e,t)=>{let n=t?.fields??{answer:{label:e}}
|
|
1
|
+
const e=`Streamyx`in globalThis?globalThis.Streamyx:{},t=`Azot`in globalThis?globalThis.Azot:{};if(!globalThis.Azot&&globalThis.Streamyx&&(globalThis.Azot=globalThis.Streamyx),globalThis.Azot&&!globalThis.Azot.input){let e=async(e,t)=>{let n=t?.fields??{answer:{label:e}};return await globalThis.Azot.prompt.ask({title:t?.title,description:e,fields:n})};globalThis.Azot.input=e}var n={...e,...t};export{n as default};
|
package/dist/vitest.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const e=require(`./chunk-nOFOJqeH.js`),t=require(`./context-DtwTOZVR.js`);let n=require(`vitest`);n=e.__toESM(n),n.vi.mock(`azot`,()=>{let e=t.createContext();return Object.entries(e).forEach(([e,t])=>{n.vi.stubGlobal(e,t)}),e.Azot});
|
package/{out → dist}/vitest.mjs
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{createContext as e}from"./context-
|
|
1
|
+
import{createContext as e}from"./context-DHWGgddt.mjs";import{vi as t}from"vitest";t.mock(`azot`,()=>{let n=e();return Object.entries(n).forEach(([e,n])=>{t.stubGlobal(e,n)}),n.Azot});export{};
|
package/package.json
CHANGED
|
@@ -1,159 +1,88 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "azot",
|
|
3
|
-
"
|
|
4
|
-
"
|
|
5
|
-
"
|
|
3
|
+
"version": "5.0.0-alpha.5",
|
|
4
|
+
"description": "Build extensions for Azot with Node.js",
|
|
5
|
+
"homepage": "https://developers.azot.so",
|
|
6
|
+
"main": "./dist/main.js",
|
|
6
7
|
"types": "./types/main.d.ts",
|
|
7
8
|
"exports": {
|
|
8
9
|
".": {
|
|
9
10
|
"types": "./types/main.d.ts",
|
|
10
|
-
"import": "./
|
|
11
|
-
"require": "./
|
|
11
|
+
"import": "./dist/main.js",
|
|
12
|
+
"require": "./dist/main.js"
|
|
12
13
|
},
|
|
13
14
|
"./context": {
|
|
14
15
|
"types": "./types/context.d.ts",
|
|
15
|
-
"import": "./
|
|
16
|
-
"require": "./
|
|
16
|
+
"import": "./dist/context.js",
|
|
17
|
+
"require": "./dist/context.js"
|
|
17
18
|
},
|
|
18
19
|
"./vitest": {
|
|
19
|
-
"import": "./
|
|
20
|
-
"require": "./
|
|
20
|
+
"import": "./dist/vitest.mjs",
|
|
21
|
+
"require": "./dist/vitest.js"
|
|
21
22
|
}
|
|
22
23
|
},
|
|
23
24
|
"bin": {
|
|
24
|
-
"azt": "
|
|
25
|
+
"azt": "./dist/cli.js"
|
|
25
26
|
},
|
|
26
27
|
"files": [
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"types",
|
|
30
|
-
".npmrc"
|
|
28
|
+
"dist",
|
|
29
|
+
"types"
|
|
31
30
|
],
|
|
32
|
-
"author": "Vitaly Gashkov <vitalygashkov@vk.com>",
|
|
33
|
-
"description": "A powerful, extensible app for downloading videos",
|
|
34
|
-
"repository": {
|
|
35
|
-
"type": "git",
|
|
36
|
-
"url": "https://github.com/azot-labs/azot.git"
|
|
37
|
-
},
|
|
38
|
-
"homepage": "https://azot.so",
|
|
39
31
|
"scripts": {
|
|
40
|
-
"
|
|
41
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"coverage": "vitest run --coverage",
|
|
45
|
-
"bundle:lib": "tsdown",
|
|
46
|
-
"bundle:cli": "electron-vite build --config vite.cli.config.mjs",
|
|
47
|
-
"bundle": "npm run bundle:cli && electron-vite build --config vite.desktop.config.mjs",
|
|
48
|
-
"build": "npm run bundle && electron-builder build --config electron-builder.config.js",
|
|
49
|
-
"build:mac": "npm run bundle && electron-builder build --mac --config electron-builder.config.js",
|
|
50
|
-
"build:win": "npm run bundle && electron-builder build --win --config electron-builder.config.js",
|
|
51
|
-
"build:linux": "npm run bundle && electron-builder build --linux --config electron-builder.config.js",
|
|
52
|
-
"publish:desktop": "npm run bundle && electron-builder build --publish always --config electron-builder.config.js",
|
|
53
|
-
"publish:lib": "npm run bundle:lib && npm publish --tag alpha",
|
|
54
|
-
"typecheck": "npm run typecheck:node && npm run typecheck:web",
|
|
55
|
-
"typecheck:node": "tsc --noEmit -p tsconfig.node.json --composite false",
|
|
56
|
-
"typecheck:web": "vue-tsc --noEmit -p tsconfig.web.json --composite false",
|
|
57
|
-
"format": "prettier --write .",
|
|
58
|
-
"lint": "eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts,.vue --fix"
|
|
32
|
+
"dev": "tsdown --watch",
|
|
33
|
+
"build": "tsdown",
|
|
34
|
+
"lint": "eslint . && prettier --check .",
|
|
35
|
+
"fix": "eslint . --fix && prettier --write ."
|
|
59
36
|
},
|
|
60
|
-
"
|
|
61
|
-
"
|
|
37
|
+
"repository": {
|
|
38
|
+
"type": "git",
|
|
39
|
+
"url": "git+https://github.com/azot-labs/extensions.git"
|
|
62
40
|
},
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"
|
|
41
|
+
"keywords": [
|
|
42
|
+
"azot",
|
|
43
|
+
"extensions",
|
|
44
|
+
"types",
|
|
45
|
+
"api"
|
|
67
46
|
],
|
|
47
|
+
"bugs": {
|
|
48
|
+
"url": "https://github.com/azot-labs/extensions/issues",
|
|
49
|
+
"email": "vitalygashkov@vk.com"
|
|
50
|
+
},
|
|
51
|
+
"author": "Vitaly Gashkov <vitalygashkov@vk.com>",
|
|
52
|
+
"license": "MIT",
|
|
53
|
+
"readmeFilename": "README.md",
|
|
68
54
|
"funding": [
|
|
69
55
|
{
|
|
70
56
|
"type": "individual",
|
|
71
57
|
"url": "https://t.me/tribute/app?startapp=dqW2"
|
|
72
58
|
}
|
|
73
59
|
],
|
|
60
|
+
"engines": {
|
|
61
|
+
"node": ">=22"
|
|
62
|
+
},
|
|
74
63
|
"dependencies": {
|
|
75
|
-
"@
|
|
76
|
-
"@
|
|
77
|
-
"@
|
|
78
|
-
"
|
|
79
|
-
"@logtape/logtape": "^1.0.4",
|
|
80
|
-
"@logtape/pretty": "^1.0.4",
|
|
81
|
-
"@tanstack/query-core": "^5.85.5",
|
|
82
|
-
"@tribute-tg/better-auth": "^1.0.9",
|
|
83
|
-
"better-auth": "^1.3.7",
|
|
84
|
-
"bytenode": "^1.5.7",
|
|
85
|
-
"conf": "^14.0.0",
|
|
86
|
-
"cross-spawn": "^7.0.6",
|
|
87
|
-
"dasha": "3.1.8",
|
|
88
|
-
"electron-squirrel-startup": "^1.0.1",
|
|
89
|
-
"electron-updater": "^6.6.2",
|
|
64
|
+
"@logtape/file": "^1.1.1",
|
|
65
|
+
"@logtape/logtape": "^1.1.1",
|
|
66
|
+
"@logtape/pretty": "^1.1.1",
|
|
67
|
+
"conf": "^15.0.2",
|
|
90
68
|
"impit": "^0.5.4",
|
|
91
69
|
"javascript-obfuscator": "^4.1.1",
|
|
92
|
-
"metavm": "^1.4.
|
|
93
|
-
"molnia": "^0.1.5",
|
|
70
|
+
"metavm": "^1.4.5",
|
|
94
71
|
"nanospinner": "^1.2.2",
|
|
95
|
-
"
|
|
96
|
-
"
|
|
97
|
-
"
|
|
98
|
-
"tsdown": "^0.14.2",
|
|
99
|
-
"undici": "^7.15.0",
|
|
100
|
-
"urlpattern-polyfill": "^10.1.0",
|
|
101
|
-
"yargs": "^18.0.0",
|
|
102
|
-
"yauzl": "^3.2.0"
|
|
72
|
+
"tsdown": "^0.15.6",
|
|
73
|
+
"undici": "^7.16.0",
|
|
74
|
+
"urlpattern-polyfill": "^10.1.0"
|
|
103
75
|
},
|
|
104
76
|
"devDependencies": {
|
|
105
|
-
"@
|
|
106
|
-
"@
|
|
107
|
-
"
|
|
108
|
-
"
|
|
109
|
-
"
|
|
110
|
-
"
|
|
111
|
-
"
|
|
112
|
-
"@rushstack/eslint-patch": "^1.10.5",
|
|
113
|
-
"@tailwindcss/vite": "^4.1.12",
|
|
114
|
-
"@tanstack/vue-query": "^5.85.5",
|
|
115
|
-
"@types/node": "^24.3.0",
|
|
116
|
-
"@types/wicg-file-system-access": "^2023.10.5",
|
|
117
|
-
"@types/yargs": "^17.0.33",
|
|
118
|
-
"@vee-validate/zod": "^4.15.1",
|
|
119
|
-
"@vitejs/plugin-vue": "^6.0.1",
|
|
120
|
-
"@vue/eslint-config-prettier": "^10.2.0",
|
|
121
|
-
"@vue/eslint-config-typescript": "^14.5.0",
|
|
122
|
-
"@vueuse/core": "^13.7.0",
|
|
123
|
-
"class-variance-authority": "^0.7.1",
|
|
124
|
-
"clsx": "^2.1.1",
|
|
125
|
-
"dotenv": "^17.2.1",
|
|
126
|
-
"electron": "37.3.1",
|
|
127
|
-
"electron-builder": "^26.0.12",
|
|
128
|
-
"electron-vite": "^4.0.0",
|
|
129
|
-
"eslint": "^9.34.0",
|
|
130
|
-
"eslint-plugin-import": "^2.32.0",
|
|
131
|
-
"eslint-plugin-n": "^17.21.3",
|
|
132
|
-
"eslint-plugin-vue": "^10.4.0",
|
|
133
|
-
"execa": "^9.6.0",
|
|
134
|
-
"globals": "^16.3.0",
|
|
135
|
-
"lucide-vue-next": "^0.541.0",
|
|
136
|
-
"non.geist": "^1.0.4",
|
|
137
|
-
"pinia": "^3.0.3",
|
|
138
|
-
"postcss": "^8.5.6",
|
|
77
|
+
"@eslint/js": "^9.37.0",
|
|
78
|
+
"@types/node": "^24.7.0",
|
|
79
|
+
"dasha": "^3.1.9",
|
|
80
|
+
"eslint": "^9.37.0",
|
|
81
|
+
"eslint-config-prettier": "^10.1.8",
|
|
82
|
+
"eslint-plugin-prettier": "^5.5.4",
|
|
83
|
+
"globals": "^16.4.0",
|
|
139
84
|
"prettier": "^3.6.2",
|
|
140
|
-
"
|
|
141
|
-
"sass": "^1.90.0",
|
|
142
|
-
"tailwind-merge": "^3.3.1",
|
|
143
|
-
"tailwindcss": "^4.1.12",
|
|
144
|
-
"tailwindcss-animate": "^1.0.7",
|
|
145
|
-
"tsx": "^4.20.5",
|
|
146
|
-
"typescript": "^5.9.2",
|
|
147
|
-
"vee-validate": "^4.15.1",
|
|
148
|
-
"vite": "^7.1.3",
|
|
149
|
-
"vite-plugin-static-copy": "^3.1.2",
|
|
150
|
-
"vitest": "^3.2.4",
|
|
151
|
-
"vue": "^3.5.18",
|
|
152
|
-
"vue-eslint-parser": "^10.2.0",
|
|
153
|
-
"vue-i18n": "^11.1.11",
|
|
154
|
-
"vue-sonner": "^1.3.0",
|
|
155
|
-
"vue-tsc": "^3.0.6",
|
|
156
|
-
"zod": "^3.25.42"
|
|
85
|
+
"typescript": "^5.9.3"
|
|
157
86
|
},
|
|
158
87
|
"peerDependencies": {
|
|
159
88
|
"vitest": ">=3.2.0"
|
package/types/extension.d.ts
CHANGED
package/out/azt.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
const e=require(`./chunk-nOFOJqeH.js`),t=e.__toESM(require(`node:util`)),n=e.__toESM(require(`node:fs`)),r=e.__toESM(require(`node:path`)),i=e.__toESM(require(`tsdown`)),a=e.__toESM(require(`node:crypto`)),o=e.__toESM(require(`javascript-obfuscator`)),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,c=i.subarray(0,o);if(!c.equals(s))throw Error(`Incorrect file format`);let l=o,u=l+16,d=u+512,f=i.subarray(l,u),p=i.subarray(u,d),m=i.subarray(d),h=(0,a.privateDecrypt)(e,p),g=(0,a.createDecipheriv)(`aes-256-cbc`,h,f),_=Buffer.concat([g.update(m),g.final()]),v=_.toString(`utf8`);return r&&(0,n.writeFileSync)(r,v),v},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),i=e.filter(e=>!e.endsWith(`.d.ts`)).filter(e=>new Set([`.ts`,`.js`]).has(r.default.extname(e))),a=e=>r.default.basename(e,r.default.extname(e)),o=i.find(e=>a(e)===`index`)||i.find(e=>a(e)===`main`)||i[0];if(o)return r.default.join(t,o)}};(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;await(0,i.build)({entry:a,format:d.values.format??`cjs`,platform:`node`,target:`node22`,watch:d.values.watch,minify:t}),d.values.input=r.default.join(process.cwd(),`dist`,r.default.basename(a).replace(/\.ts$/,`.js`));let o=require(r.default.join(process.cwd(),`package.json`)),s=typeof d.values.obfuscate==`boolean`,l=s?d.values.obfuscate:o.private;l&&u(d.values.input,d.values.input);let f=d.values.encrypt||e===`pack`;if(f){let e=(0,n.readFileSync)(d.values.key||r.default.join(__dirname,`../public.pem`),`utf8`),t=d.values.output||d.values.input.replace(/\.js$/,`-${o.version}.stx`);c(e,d.values.input,t),(0,n.rmSync)(d.values.input)}}else if(e===`decrypt`){let e=(0,n.readFileSync)(d.values.key||r.default.join(__dirname,`../private.pem`),`utf8`),t=d.values.output||a.replace(/\.stx$/,`.js`);l(e,a,t),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:`node20`,watch:!0,minify:e})}})();
|
package/out/azt.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import{createRequire as e}from"node:module";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";var m=e(import.meta.url);const h=Buffer.from(`STX`,`utf8`),g=(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),m=Buffer.concat([h,o,p,u]);return r&&a(r,m),{aesIv:o,encryptedAesKey:p,encryptedCode:u}},_=(e,t,r)=>{let i=n(t),o=h.byteLength,s=i.subarray(0,o);if(!s.equals(h))throw Error(`Incorrect file format`);let c=o,d=c+16,f=d+512,p=i.subarray(c,d),m=i.subarray(d,f),g=i.subarray(f),_=u(e,m),v=l(`aes-256-cbc`,_,p),y=Buffer.concat([v.update(g),v.final()]),b=y.toString(`utf8`);return r&&a(r,b),b},v=(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},y=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`}}}),b=()=>{let e=[process.cwd(),o.join(process.cwd(),`src`),o.join(process.cwd(),`lib`)];for(let t of e){let e=r(t),n=e.filter(e=>!e.endsWith(`.d.ts`)).filter(e=>new Set([`.ts`,`.js`]).has(o.extname(e))),i=e=>o.basename(e,o.extname(e)),a=n.find(e=>i(e)===`index`)||n.find(e=>i(e)===`main`)||n[0];if(a)return o.join(t,a)}};(async()=>{let[e,...t]=y.positionals,r=y.values.input||t[0]||b();if(!r)throw Error(`No entry file found`);if(e===`build`||e===`pack`){let t=typeof y.values.minify==`boolean`?y.values.minify:!0;await s({entry:r,format:y.values.format??`cjs`,platform:`node`,target:`node22`,watch:y.values.watch,minify:t}),y.values.input=o.join(process.cwd(),`dist`,o.basename(r).replace(/\.ts$/,`.js`));let a=m(o.join(process.cwd(),`package.json`)),c=typeof y.values.obfuscate==`boolean`,l=c?y.values.obfuscate:a.private;l&&v(y.values.input,y.values.input);let u=y.values.encrypt||e===`pack`;if(u){let e=n(y.values.key||o.join(__dirname,`../public.pem`),`utf8`),t=y.values.output||y.values.input.replace(/\.js$/,`-${a.version}.stx`);g(e,y.values.input,t),i(y.values.input)}}else if(e===`decrypt`){let e=n(y.values.key||o.join(__dirname,`../private.pem`),`utf8`),t=y.values.output||r.replace(/\.stx$/,`.js`);_(e,r,t),y.values.input&&i(y.values.input)}else if(e===`dev`||e===`develop`||!e){let e=typeof y.values.minify==`boolean`?y.values.minify:!1;await s({entry:r,format:y.values.format??`cjs`,platform:`node`,target:`node20`,watch:!0,minify:e})}})();export{};
|
package/out/context-DTSYpvwR.mjs
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{existsSync as e,mkdirSync as t,readSync as n,writeSync as r}from"node:fs";import i,{basename as a,dirname as o,join as s}from"node:path";import c,{EOL as l,homedir as u,tmpdir as d}from"node:os";import{setTimeout as f}from"node:timers/promises";import{readFile as p,rm as m,stat as h,writeFile as g}from"node:fs/promises";import{configureSync as te,getConsoleSink as ne,getLogger as re,withFilter as ie}from"@logtape/logtape";import{getFileSink as ae}from"@logtape/file";import{getPrettyFormatter as oe}from"@logtape/pretty";import{arch as se,platform as ce,stdin as le,stdout as ue,version as de}from"node:process";import"urlpattern-polyfill";import{EventEmitter as fe}from"node:events";import{createInterface as pe}from"node:readline/promises";import{URL as me}from"node:url";import{Agent as he,ProxyAgent as ge,fetch as _e,interceptors as ve,parseCookie as ye}from"undici";import{Impit as _}from"impit";import v from"metavm";import"picocolors";import"nanospinner";import y from"conf";var b=`azot`,x=`Azot`,S=`5.0.0-alpha.3`,C=`./out/main.js`,w=`./types/main.d.ts`,exports={".":{types:`./types/main.d.ts`,import:`./out/main.js`,require:`./out/main.js`},"./context":{types:`./types/context.d.ts`,import:`./out/context.js`,require:`./out/context.js`},"./vitest":{import:`./out/vitest.mjs`,require:`./out/vitest.js`}},T={azt:`out/azt.js`},E=[`out`,`azot.d.ts`,`types`,`.npmrc`],D=`Vitaly Gashkov <vitalygashkov@vk.com>`,O=`A powerful, extensible app for downloading videos`,k={type:`git`,url:`https://github.com/azot-labs/azot.git`},A=`https://azot.so`,j={start:`tsx --env-file .env ./src/main/cli.ts`,preview:`electron-vite preview --config vite.desktop.config.mjs`,dev:`electron-vite dev --config vite.desktop.config.mjs --watch`,test:`vitest`,coverage:`vitest run --coverage`,"bundle:lib":`tsdown`,"bundle:cli":`electron-vite build --config vite.cli.config.mjs`,bundle:`npm run bundle:cli && electron-vite build --config vite.desktop.config.mjs`,build:`npm run bundle && electron-builder build --config electron-builder.config.js`,"build:mac":`npm run bundle && electron-builder build --mac --config electron-builder.config.js`,"build:win":`npm run bundle && electron-builder build --win --config electron-builder.config.js`,"build:linux":`npm run bundle && electron-builder build --linux --config electron-builder.config.js`,"publish:desktop":`npm run bundle && electron-builder build --publish always --config electron-builder.config.js`,"publish:lib":`npm run bundle:lib && npm publish --tag alpha`,typecheck:`npm run typecheck:node && npm run typecheck:web`,"typecheck:node":`tsc --noEmit -p tsconfig.node.json --composite false`,"typecheck:web":`vue-tsc --noEmit -p tsconfig.web.json --composite false`,format:`prettier --write .`,lint:`eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts,.vue --fix`},M={node:`22`},N=[`darwin`,`linux`,`win32`],P=[{type:`individual`,url:`https://t.me/tribute/app?startapp=dqW2`}],F={"@electron-toolkit/preload":`^3.0.2`,"@electron-toolkit/utils":`^4.0.0`,"@inquirer/prompts":`^7.8.3`,"@logtape/file":`^1.0.4`,"@logtape/logtape":`^1.0.4`,"@logtape/pretty":`^1.0.4`,"@tanstack/query-core":`^5.85.5`,"@tribute-tg/better-auth":`^1.0.9`,"better-auth":`^1.3.7`,bytenode:`^1.5.7`,conf:`^14.0.0`,"cross-spawn":`^7.0.6`,dasha:`3.1.8`,"electron-squirrel-startup":`^1.0.1`,"electron-updater":`^6.6.2`,impit:`^0.5.4`,"javascript-obfuscator":`^4.1.1`,metavm:`^1.4.4`,molnia:`^0.1.5`,nanospinner:`^1.2.2`,okova:`^0.9.3`,"p-queue":`^8.1.0`,picocolors:`^1.1.1`,tsdown:`^0.14.2`,undici:`^7.15.0`,"urlpattern-polyfill":`^10.1.0`,yargs:`^18.0.0`,yauzl:`^3.2.0`},be={"@electron-toolkit/eslint-config":`^2.1.0`,"@electron-toolkit/eslint-config-prettier":`^3.0.0`,"@electron-toolkit/eslint-config-ts":`^3.1.0`,"@electron-toolkit/tsconfig":`^1.0.1`,"@eslint/js":`^9.26.0`,"@iconify/vue":`^4.3.0`,"@intlify/unplugin-vue-i18n":`^6.0.8`,"@rushstack/eslint-patch":`^1.10.5`,"@tailwindcss/vite":`^4.1.12`,"@tanstack/vue-query":`^5.85.5`,"@types/node":`^24.3.0`,"@types/wicg-file-system-access":`^2023.10.5`,"@types/yargs":`^17.0.33`,"@vee-validate/zod":`^4.15.1`,"@vitejs/plugin-vue":`^6.0.1`,"@vue/eslint-config-prettier":`^10.2.0`,"@vue/eslint-config-typescript":`^14.5.0`,"@vueuse/core":`^13.7.0`,"class-variance-authority":`^0.7.1`,clsx:`^2.1.1`,dotenv:`^17.2.1`,electron:`37.3.1`,"electron-builder":`^26.0.12`,"electron-vite":`^4.0.0`,eslint:`^9.34.0`,"eslint-plugin-import":`^2.32.0`,"eslint-plugin-n":`^17.21.3`,"eslint-plugin-vue":`^10.4.0`,execa:`^9.6.0`,globals:`^16.3.0`,"lucide-vue-next":`^0.541.0`,"non.geist":`^1.0.4`,pinia:`^3.0.3`,postcss:`^8.5.6`,prettier:`^3.6.2`,"reka-ui":`^2.4.1`,sass:`^1.90.0`,"tailwind-merge":`^3.3.1`,tailwindcss:`^4.1.12`,"tailwindcss-animate":`^1.0.7`,tsx:`^4.20.5`,typescript:`^5.9.2`,"vee-validate":`^4.15.1`,vite:`^7.1.3`,"vite-plugin-static-copy":`^3.1.2`,vitest:`^3.2.4`,vue:`^3.5.18`,"vue-eslint-parser":`^10.2.0`,"vue-i18n":`^11.1.11`,"vue-sonner":`^1.3.0`,"vue-tsc":`^3.0.6`,zod:`^3.25.42`},xe={vitest:`>=3.2.0`},I={name:b,productName:x,version:S,main:C,types:w,exports,bin:T,files:E,author:D,description:O,repository:k,homepage:A,scripts:j,engines:M,os:N,funding:P,dependencies:F,devDependencies:be,peerDependencies:xe};`pkg`in process&&process.pkg;const Se=!!process.versions.electron&&!1,Ce=!Se;`${I.version}${ce}${se}${de}`,`${I.version}`,I.name;const L=I.productName,we={darwin:`macOS`,win32:`Windows`,linux:`Linux`},Te=we[process.platform],R=n=>{let r=typeof n==`string`?n:n[Te];return e(r)||t(r,{recursive:!0}),r},z=u(),Ee=d(),B=R({Windows:process.env.APPDATA||s(z,`AppData`,`Roaming`),macOS:s(z,`Library`,`Application Support`),Linux:process.env.XDG_DATA_HOME||s(z,`.local`,`share`)}),V=R({Windows:process.env.APPDATA||s(z,`AppData`,`Roaming`),macOS:s(z,`Library`,`Application Support`),Linux:process.env.XDG_CONFIG_HOME||s(z,`.config`)});R({Windows:process.env.LOCALAPPDATA||s(z,`AppData`,`Local`),macOS:s(z,`Library`,`Caches`),Linux:process.env.XDG_CACHE_HOME||s(z,`.cache`)}),R({Windows:s(z,`Downloads`),macOS:s(z,`Downloads`),Linux:process.env.XDG_DOWNLOAD_DIR||s(z,`Downloads`)});const De=R({Windows:s(B,L),macOS:s(B,L),Linux:s(B,L.toLowerCase())}),Oe=R({Windows:s(V,L),macOS:s(V,L),Linux:s(V,L.toLowerCase())}),ke=R({Windows:s(V,L,`logs`),macOS:s(z,`Library`,`Logs`,L),Linux:s(V,L.toLowerCase(),`logs`)});s(Ee,L.toLowerCase());const H=R(s(De,`extensions`));R(s(H,`installed`)),R(s(H,`work`)),s(Oe,`settings.json`);const Ae=process.argv.includes(`-d`)||process.argv.includes(`--debug`)||process.env.NODE_ENV_ELECTRON_VITE===`development`||!!process.env.ELECTRON_CLI_ARGS,je=()=>{let e=new Date().toISOString().split(`.`)[0].replace(`T`,`_`).replaceAll(`-`,``).replaceAll(`:`,``);return`Azot_${e}.log`},Me=()=>s(ke,je()),Ne=oe({timestamp:`time`,levelStyle:null,icons:!1,colors:!0,level:`FULL`,categoryWidth:0,categoryStyle:null,categoryTruncate:`end`,wordWrap:!0});te({sinks:{console:ie(ne({formatter:Ne}),Ae?`debug`:`info`),file:ae(Me(),{flushInterval:0})},loggers:[{category:[],lowestLevel:`trace`,sinks:[`console`,`file`]},{category:[`logtape`,`meta`],lowestLevel:`error`,sinks:[`console`]}]});const U=re([]),W=e=>{let t=[`}`,`{`,`%`,`>`,`<`,`^`,`;`,"`",`$`,`"`,`@`,`=`],n=e;for(let e in t)n=n.replaceAll(`/`,`_`).replaceAll(t[e],``);return n},G=(e,t,n)=>{let r={},i={};for(let a of n)for(let n of t){let t=new URLPattern(n,a),o=t.exec(e);o&&(Object.assign(r,o.pathname.groups),Object.assign(i,o.search.groups))}return{pathname:r,search:i}},K=(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(),o=a.length,s=()=>Math.min(...a),c=()=>Math.max(...a);return{items:e,has:t,set:n,getMin:s,getMax:c,seasonsCount:i,episodesCount:o}};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});var Pe=class e extends fe{static{this.requestEventName=`form`}static{this.responseEventName=`form:response`}constructor(){super(),Ce&&this.listen(async e=>{let t=pe({input:le,output:ue}),{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)`:``)+`: `,l=await Promise.race([t.question(a),f(J,``)]);o[e]=l}return t.close(),o})}async ask(t){let n=new Promise(n=>{this.emit(e.requestEventName,t),this.addListener(e.responseEventName,e=>{n(e)})});return n}listen(t){this.addListener(e.requestEventName,async n=>{let r=await t(n);this.emit(e.responseEventName,r)})}};const q=new Pe,Fe=async(e,t)=>{let n=t?.fields??{answer:{label:e}},r=await q.ask({title:t?.title,description:e,fields:n});return r},J=12e4,Ie=(e,t)=>{r(1,e||``);let i=Buffer.alloc(1),a=``;for(;;){try{n(0,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{n(0,i,0,1,null),i.toString(`utf-8`)}catch(e){if(e.code===`EOF`)break;throw e}break}a+=e}return a.trim()||t},Le=e=>{let t=e.expires instanceof Date?e.expires.getTime():e.expires,n;return e.sameSite===`Strict`?n=`strict`:e.sameSite===`Lax`&&(n=`lax`),{name:e.name,value:e.value,expires:t,domain:e.domain,path:e.path,sameSite:n,partitioned:!1,maxAge:e.maxAge,secure:e.secure,httpOnly:e.httpOnly,unparsed:e.unparsed}},Y=e=>{let t=[];for(let n of e)try{let e=ye(n);e&&t.push(Le(e))}catch(e){U.debug(e)}return t},Re=async e=>{let t=await p(e,`utf8`).catch(()=>``);if(!t)return[];let n=t.split(l).flatMap(e=>e.split(`
|
|
3
|
-
`)),r=n.filter(e=>!!e.trim()&&!e.startsWith(`# `)),i=r.map(e=>e.split(` `)),a=[];for(let e of i){let[t,n,r,i,o,s,c]=e;a.push({name:s,value:c,expires:Number(o),maxAge:void 0,domain:t.replace(`#HttpOnly_`,``),path:r,secure:i===`TRUE`,httpOnly:void 0,sameSite:void 0,unparsed:e})}return a};var X=class{#data={};#cookies;#storagePath;#hasBeenRead=!1;static parse(e){return Y(e)}constructor({storagePath:e}={}){this.#storagePath=e,this.#cookies=[]}async import(e){let t=await h(e).catch(()=>null);t?.isFile()&&(this.#cookies=await Re(e),await m(e,{recursive:!0,force:!0}))}async#read(){if(!this.#storagePath||this.#hasBeenRead)return;let e=await h(this.#storagePath).catch(()=>null);if(e?.isFile()){let e=await p(this.#storagePath,`utf8`);this.#data=e?JSON.parse(e):{},this.#cookies=`cookies`in this.#data?this.#data.cookies:[]}this.#hasBeenRead=!0}async#write(){if(!this.#storagePath)return;let e=JSON.stringify({...this.#data,cookies:this.#cookies},null,2);await g(this.#storagePath,e,`utf8`)}async get(e){await this.#read();let t=typeof e==`string`?e:e.name;return this.#cookies.find(e=>e.name===t)??null}async getAll(e){if(await this.#read(),!e)return this.#cookies;let t=typeof e==`string`?e:e.name;return this.#cookies.filter(e=>e.name===t)??null}async set(e){await this.#read(),this.#cookies=this.#cookies.filter(t=>!(t.name===e.name&&t.domain===e.domain)),this.#cookies.push(e),await this.#write()}async delete(e){if(await this.#read(),!e)this.#cookies=[];else{let t=typeof e==`string`?e:e.name;this.#cookies=this.#cookies.filter(e=>e.name!==t)}}toString(){return this.#cookies.map(e=>`${e.name}=${e.value}`).join(`; `)}},Z=class{#impit;#agent;#retryThreshold;#retryDelayMs;#failures=new Map;constructor(e={}){this.headers=new Headers,this.#retryThreshold=3,this.#retryDelayMs=1500,this.configure(e)}configure({proxyUrl:e,allowH2:t=!0,maxRedirections:n=3,maxRetries:r=3,cookieStore:i}={}){this.cookieStore=i??this.cookieStore??new X,this.#impit=new _({browser:`chrome`,ignoreTlsErrors:!0,proxyUrl:e,followRedirects:!0,maxRedirects:n});let{redirect:a,retry:o}=ve;e?this.#agent=new ge({uri:e,allowH2:t}).compose(a({maxRedirections:n}),o({maxRetries:r})):this.#agent=new he({allowH2:t}).compose(a({maxRedirections:n}),o({maxRetries:r}))}get retries(){return this.#retryThreshold}async fetch(e,t={}){let n=t.headers&&(t.headers instanceof Headers?t.headers.has(`User-Agent`):`User-Agent`in t.headers),r=this.appendHeaders(t?.headers||{}),i=await this.cookieStore.getAll(),a=i.filter(t=>!t.domain||new me(e).hostname.includes(t.domain));for(let e of i){let t=a.find(t=>t.name===e.name);if(t)continue;e.domain||a.push(e)}let o=a.map(e=>`${e.name}=${e.value}`).join(`; `);r.has(`cookie`)?r.get(`cookie`)||r.delete(`cookie`):r.set(`cookie`,o);let s={...t,body:t?.body,headers:r};t&&(t.headers=r);let c=await(n?_e(e,{...s,dispatcher:this.#agent}):this.withRetry(this.#impit.fetch.bind(this.#impit),e,s)),l=c.headers.getSetCookie();return l&&await this.setCookies(l),c}async withRetry(e,t,n){try{let r=await e(t,n),i=r.status>=300&&r.status<=399,a=r.status>=200&&r.status<=299||i;return!a&&this.#hasAttempts(t)?(await this.#nextRetry(t),U.debug(await r.text()),U.debug(String(r.status)),this.withRetry(e,t,n)):r}catch(r){let i=r;if(U.debug(i.stack),U.debug({input:t,init:{method:n?.method,headers:n?.headers,body:`...`}}),!this.#hasAttempts(t))throw r;return await this.#nextRetry(t),this.withRetry(e,t,n)}}async setCookies(e){let t=[];if(typeof e==`string`){let[n]=Y([e]);n&&t.push(n)}else if(Array.isArray(e)&&typeof e.at(0)==`string`){let n=Y(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}#hasAttempts(e){return this.#getFailuresCount(e)<=this.#retryThreshold}#getFailuresCount(e){return this.#failures.get(e)||1}#addFailure(e){this.#failures.set(e,this.#getFailuresCount(e)+1)}async#nextRetry(e){let t=this.#getFailuresCount(e);t&&await new Promise(e=>setTimeout(e,this.#retryDelayMs)),this.#addFailure(e),U.debug(`Retry ${t}/${this.#retryThreshold}: ${String(e)}`)}setHeader(e,t){this.headers.set(e,t)}removeHeader(e){this.headers.delete(e)}setRetryCount(e){e>1&&(this.#retryThreshold=e)}};new Z;const{COMMON_CONTEXT:ze}=v,Be=(e,t=`Eval`)=>{try{let n=v.createScript(t,e);return n}catch(e){return console.error(`Syntax Error: ${e.message}`),null}},Q=(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[]},Ve=e=>{let t=`default`in y?y.default:y;return new t(e)};var He=class{#store;constructor({storagePath:e}){this.#store=Ve({cwd:o(e),configName:a(e,`.json`)})}get length(){return Object.keys(this.#store.store).length}clear(){this.#store.clear()}getItem(e){return this.#store.get(e)??null}key(e){return Object.keys(this.#store.store).at(e)??null}removeItem(e){this.#store.delete(e)}setItem(e,t){this.#store.set(e,t)}};const $=()=>{switch(c.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 Ue=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`]]]),We=()=>{let e=Number(c.release().split(`.`)[0]),[t,n]=Ue.get(e)||[`Unknown`,``];return{name:t,version:n}},Ge=()=>{switch($()){case`macOS`:return We().version;case`Windows`:return c.release();case`Linux`:return c.release()}},Ke=()=>{let e=[{brand:`Azot`,version:I.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=c.arch()),t.includes(`platform`)&&(n.platform=$()),t.includes(`platformVersion`)&&(n.platformVersion=Ge()),t.includes(`fullVersionList`)&&(n.fullVersionList=[{brand:`Azot`,version:I.version},{brand:`Node.js`,version:process.version}]),n}}},qe=({name:e=`extension`,dir:t=process.cwd()}={})=>{let n=R(s(t,e)),r=new He({storagePath:s(n,`storage.json`)}),i=new X({storagePath:s(n,`cookies.json`)}),a=new Z({cookieStore:i}),o=(e,t,n)=>e.split(t)[1]?.split(n)[0]?.trim(),c={sanitizeString:W,execUrlPatterns:G,extendEpisodes:K,between:o,getRandomElements:Q},l={defineExtension:e=>e,version:I.version,input:Fe,sleep:f,sanitizeString:W,execUrlPatterns:G,extendEpisodes:K,between:o,getRandomElements:Q,utils:c,prompt:q.ask.bind(q)};class u{get cookie(){return i.toString()}}let d={fetch:a.fetch.bind(a),Response,Request,Headers,AbortController,AbortSignal,URL,URLSearchParams,URLPattern,Blob,structuredClone,btoa,atob,TextEncoder,TextDecoder,Uint8Array,crypto,console:Object.assign(U,{log:console.log}),prompt:Ie,alert:e=>{U.warn(e)},Event,EventTarget,localStorage:r,cookieStore:i,document:new u,eval:e=>Be(e)?.exports,navigator:{appName:`Azot`,appVersion:I.version,platform:process.platform,userAgentData:Ke()}},p={http:a,question:q,common:c,Streamyx:l,Azot:l,window:d,...d};return p};export{qe as createContext};
|
package/out/context-DYv2PCKF.js
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
const e=require(`./chunk-nOFOJqeH.js`),t=e.__toESM(require(`node:fs`)),n=e.__toESM(require(`node:path`)),r=e.__toESM(require(`node:os`)),i=e.__toESM(require(`node:timers/promises`)),a=e.__toESM(require(`node:fs/promises`)),o=e.__toESM(require(`@logtape/logtape`)),s=e.__toESM(require(`@logtape/file`)),c=e.__toESM(require(`@logtape/pretty`)),l=e.__toESM(require(`node:process`));require(`urlpattern-polyfill`);const u=e.__toESM(require(`node:events`)),d=e.__toESM(require(`node:readline/promises`)),f=e.__toESM(require(`node:url`)),p=e.__toESM(require(`undici`)),m=e.__toESM(require(`impit`)),h=e.__toESM(require(`metavm`));require(`picocolors`),require(`nanospinner`);const g=e.__toESM(require(`conf`));var _=`azot`,v=`Azot`,y=`5.0.0-alpha.3`,ee=`./out/main.js`,te=`./types/main.d.ts`,ne={".":{types:`./types/main.d.ts`,import:`./out/main.js`,require:`./out/main.js`},"./context":{types:`./types/context.d.ts`,import:`./out/context.js`,require:`./out/context.js`},"./vitest":{import:`./out/vitest.mjs`,require:`./out/vitest.js`}},re={azt:`out/azt.js`},ie=[`out`,`azot.d.ts`,`types`,`.npmrc`],b=`Vitaly Gashkov <vitalygashkov@vk.com>`,x=`A powerful, extensible app for downloading videos`,S={type:`git`,url:`https://github.com/azot-labs/azot.git`},C=`https://azot.so`,w={start:`tsx --env-file .env ./src/main/cli.ts`,preview:`electron-vite preview --config vite.desktop.config.mjs`,dev:`electron-vite dev --config vite.desktop.config.mjs --watch`,test:`vitest`,coverage:`vitest run --coverage`,"bundle:lib":`tsdown`,"bundle:cli":`electron-vite build --config vite.cli.config.mjs`,bundle:`npm run bundle:cli && electron-vite build --config vite.desktop.config.mjs`,build:`npm run bundle && electron-builder build --config electron-builder.config.js`,"build:mac":`npm run bundle && electron-builder build --mac --config electron-builder.config.js`,"build:win":`npm run bundle && electron-builder build --win --config electron-builder.config.js`,"build:linux":`npm run bundle && electron-builder build --linux --config electron-builder.config.js`,"publish:desktop":`npm run bundle && electron-builder build --publish always --config electron-builder.config.js`,"publish:lib":`npm run bundle:lib && npm publish --tag alpha`,typecheck:`npm run typecheck:node && npm run typecheck:web`,"typecheck:node":`tsc --noEmit -p tsconfig.node.json --composite false`,"typecheck:web":`vue-tsc --noEmit -p tsconfig.web.json --composite false`,format:`prettier --write .`,lint:`eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts,.vue --fix`},ae={node:`22`},oe=[`darwin`,`linux`,`win32`],se=[{type:`individual`,url:`https://t.me/tribute/app?startapp=dqW2`}],ce={"@electron-toolkit/preload":`^3.0.2`,"@electron-toolkit/utils":`^4.0.0`,"@inquirer/prompts":`^7.8.3`,"@logtape/file":`^1.0.4`,"@logtape/logtape":`^1.0.4`,"@logtape/pretty":`^1.0.4`,"@tanstack/query-core":`^5.85.5`,"@tribute-tg/better-auth":`^1.0.9`,"better-auth":`^1.3.7`,bytenode:`^1.5.7`,conf:`^14.0.0`,"cross-spawn":`^7.0.6`,dasha:`3.1.8`,"electron-squirrel-startup":`^1.0.1`,"electron-updater":`^6.6.2`,impit:`^0.5.4`,"javascript-obfuscator":`^4.1.1`,metavm:`^1.4.4`,molnia:`^0.1.5`,nanospinner:`^1.2.2`,okova:`^0.9.3`,"p-queue":`^8.1.0`,picocolors:`^1.1.1`,tsdown:`^0.14.2`,undici:`^7.15.0`,"urlpattern-polyfill":`^10.1.0`,yargs:`^18.0.0`,yauzl:`^3.2.0`},le={"@electron-toolkit/eslint-config":`^2.1.0`,"@electron-toolkit/eslint-config-prettier":`^3.0.0`,"@electron-toolkit/eslint-config-ts":`^3.1.0`,"@electron-toolkit/tsconfig":`^1.0.1`,"@eslint/js":`^9.26.0`,"@iconify/vue":`^4.3.0`,"@intlify/unplugin-vue-i18n":`^6.0.8`,"@rushstack/eslint-patch":`^1.10.5`,"@tailwindcss/vite":`^4.1.12`,"@tanstack/vue-query":`^5.85.5`,"@types/node":`^24.3.0`,"@types/wicg-file-system-access":`^2023.10.5`,"@types/yargs":`^17.0.33`,"@vee-validate/zod":`^4.15.1`,"@vitejs/plugin-vue":`^6.0.1`,"@vue/eslint-config-prettier":`^10.2.0`,"@vue/eslint-config-typescript":`^14.5.0`,"@vueuse/core":`^13.7.0`,"class-variance-authority":`^0.7.1`,clsx:`^2.1.1`,dotenv:`^17.2.1`,electron:`37.3.1`,"electron-builder":`^26.0.12`,"electron-vite":`^4.0.0`,eslint:`^9.34.0`,"eslint-plugin-import":`^2.32.0`,"eslint-plugin-n":`^17.21.3`,"eslint-plugin-vue":`^10.4.0`,execa:`^9.6.0`,globals:`^16.3.0`,"lucide-vue-next":`^0.541.0`,"non.geist":`^1.0.4`,pinia:`^3.0.3`,postcss:`^8.5.6`,prettier:`^3.6.2`,"reka-ui":`^2.4.1`,sass:`^1.90.0`,"tailwind-merge":`^3.3.1`,tailwindcss:`^4.1.12`,"tailwindcss-animate":`^1.0.7`,tsx:`^4.20.5`,typescript:`^5.9.2`,"vee-validate":`^4.15.1`,vite:`^7.1.3`,"vite-plugin-static-copy":`^3.1.2`,vitest:`^3.2.4`,vue:`^3.5.18`,"vue-eslint-parser":`^10.2.0`,"vue-i18n":`^11.1.11`,"vue-sonner":`^1.3.0`,"vue-tsc":`^3.0.6`,zod:`^3.25.42`},T={vitest:`>=3.2.0`},E={name:_,productName:v,version:y,main:ee,types:te,exports:ne,bin:re,files:ie,author:b,description:x,repository:S,homepage:C,scripts:w,engines:ae,os:oe,funding:se,dependencies:ce,devDependencies:le,peerDependencies:T};const ue=`pkg`in process&&process.pkg!==void 0,D=!!process.versions.electron&&!1,O=!D,de=`v${E.version} ${l.platform}-${l.arch} node-${l.version}`,fe=`v${E.version}`,pe=E.name,k=E.productName,A={darwin:`macOS`,win32:`Windows`,linux:`Linux`},j=A[process.platform],M=e=>{let n=typeof e==`string`?e:e[j];return(0,t.existsSync)(n)||(0,t.mkdirSync)(n,{recursive:!0}),n},N=(0,r.homedir)(),P=(0,r.tmpdir)(),F=M({Windows:process.env.APPDATA||(0,n.join)(N,`AppData`,`Roaming`),macOS:(0,n.join)(N,`Library`,`Application Support`),Linux:process.env.XDG_DATA_HOME||(0,n.join)(N,`.local`,`share`)}),I=M({Windows:process.env.APPDATA||(0,n.join)(N,`AppData`,`Roaming`),macOS:(0,n.join)(N,`Library`,`Application Support`),Linux:process.env.XDG_CONFIG_HOME||(0,n.join)(N,`.config`)}),me=M({Windows:process.env.LOCALAPPDATA||(0,n.join)(N,`AppData`,`Local`),macOS:(0,n.join)(N,`Library`,`Caches`),Linux:process.env.XDG_CACHE_HOME||(0,n.join)(N,`.cache`)}),he=M({Windows:(0,n.join)(N,`Downloads`),macOS:(0,n.join)(N,`Downloads`),Linux:process.env.XDG_DOWNLOAD_DIR||(0,n.join)(N,`Downloads`)}),L=M({Windows:(0,n.join)(F,k),macOS:(0,n.join)(F,k),Linux:(0,n.join)(F,k.toLowerCase())}),R=M({Windows:(0,n.join)(I,k),macOS:(0,n.join)(I,k),Linux:(0,n.join)(I,k.toLowerCase())}),z=M({Windows:(0,n.join)(I,k,`logs`),macOS:(0,n.join)(N,`Library`,`Logs`,k),Linux:(0,n.join)(I,k.toLowerCase(),`logs`)}),ge=(0,n.join)(P,k.toLowerCase()),B=M((0,n.join)(L,`extensions`)),_e=M((0,n.join)(B,`installed`)),ve=M((0,n.join)(B,`work`)),ye=(0,n.join)(R,`settings.json`),V=process.argv.includes(`-d`)||process.argv.includes(`--debug`)||process.env.NODE_ENV_ELECTRON_VITE===`development`||!!process.env.ELECTRON_CLI_ARGS,be=()=>{let e=new Date().toISOString().split(`.`)[0].replace(`T`,`_`).replaceAll(`-`,``).replaceAll(`:`,``);return`Azot_${e}.log`},H=()=>(0,n.join)(z,be()),U=(0,c.getPrettyFormatter)({timestamp:`time`,levelStyle:null,icons:!1,colors:!0,level:`FULL`,categoryWidth:0,categoryStyle:null,categoryTruncate:`end`,wordWrap:!0});(0,o.configureSync)({sinks:{console:(0,o.withFilter)((0,o.getConsoleSink)({formatter:U}),V?`debug`:`info`),file:(0,s.getFileSink)(H(),{flushInterval:0})},loggers:[{category:[],lowestLevel:`trace`,sinks:[`console`,`file`]},{category:[`logtape`,`meta`],lowestLevel:`error`,sinks:[`console`]}]});const W=(0,o.getLogger)([]),G=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),o=t.exec(e);o&&(Object.assign(r,o.pathname.groups),Object.assign(i,o.search.groups))}return{pathname:r,search:i}},q=(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(),o=a.length,s=()=>Math.min(...a),c=()=>Math.max(...a);return{items:e,has:t,set:n,getMin:s,getMax:c,seasonsCount:i,episodesCount:o}},xe=new Intl.DateTimeFormat(`en-US`,{year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1}),Se=new Intl.DateTimeFormat(`en-US`,{hour:`2-digit`,minute:`2-digit`,second:`2-digit`,hour12:!1});var Ce=class e extends u.EventEmitter{static{this.requestEventName=`form`}static{this.responseEventName=`form:response`}constructor(){super(),O&&this.listen(async e=>{let t=(0,d.createInterface)({input:l.stdin,output:l.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)`:``)+`: `,u=await Promise.race([t.question(o),(0,i.setTimeout)(Te,``)]);s[e]=u}return t.close(),s})}async ask(t){let n=new Promise(n=>{this.emit(e.requestEventName,t),this.addListener(e.responseEventName,e=>{n(e)})});return n}listen(t){this.addListener(e.requestEventName,async n=>{let r=await t(n);this.emit(e.responseEventName,r)})}};const J=new Ce,we=async(e,t)=>{let n=t?.fields??{answer:{label:e}},r=await J.ask({title:t?.title,description:e,fields:n});return r},Te=12e4,Ee=(e,n)=>{(0,t.writeSync)(1,e||``);let r=Buffer.alloc(1),i=``;for(;;){try{(0,t.readSync)(0,r,0,1,null)}catch(e){if(e.code===`EOF`)break;throw e}let e=r.toString(`utf-8`);if(e===`
|
|
2
|
-
`||e===`\r`){if(e===`\r`)try{(0,t.readSync)(0,r,0,1,null),r.toString(`utf-8`)}catch(e){if(e.code===`EOF`)break;throw e}break}i+=e}return i.trim()||n},De=e=>{let t=e.expires instanceof Date?e.expires.getTime():e.expires,n;return e.sameSite===`Strict`?n=`strict`:e.sameSite===`Lax`&&(n=`lax`),{name:e.name,value:e.value,expires:t,domain:e.domain,path:e.path,sameSite:n,partitioned:!1,maxAge:e.maxAge,secure:e.secure,httpOnly:e.httpOnly,unparsed:e.unparsed}},Y=e=>{let t=[];for(let n of e)try{let e=(0,p.parseCookie)(n);e&&t.push(De(e))}catch(e){W.debug(e)}return t},Oe=async e=>{let t=await(0,a.readFile)(e,`utf8`).catch(()=>``);if(!t)return[];let n=t.split(r.EOL).flatMap(e=>e.split(`
|
|
3
|
-
`)),i=n.filter(e=>!!e.trim()&&!e.startsWith(`# `)),o=i.map(e=>e.split(` `)),s=[];for(let e of o){let[t,n,r,i,a,o,c]=e;s.push({name:o,value:c,expires:Number(a),maxAge:void 0,domain:t.replace(`#HttpOnly_`,``),path:r,secure:i===`TRUE`,httpOnly:void 0,sameSite:void 0,unparsed:e})}return s};var X=class{#data={};#cookies;#storagePath;#hasBeenRead=!1;static parse(e){return Y(e)}constructor({storagePath:e}={}){this.#storagePath=e,this.#cookies=[]}async import(e){let t=await(0,a.stat)(e).catch(()=>null);t?.isFile()&&(this.#cookies=await Oe(e),await(0,a.rm)(e,{recursive:!0,force:!0}))}async#read(){if(!this.#storagePath||this.#hasBeenRead)return;let e=await(0,a.stat)(this.#storagePath).catch(()=>null);if(e?.isFile()){let e=await(0,a.readFile)(this.#storagePath,`utf8`);this.#data=e?JSON.parse(e):{},this.#cookies=`cookies`in this.#data?this.#data.cookies:[]}this.#hasBeenRead=!0}async#write(){if(!this.#storagePath)return;let e=JSON.stringify({...this.#data,cookies:this.#cookies},null,2);await(0,a.writeFile)(this.#storagePath,e,`utf8`)}async get(e){await this.#read();let t=typeof e==`string`?e:e.name;return this.#cookies.find(e=>e.name===t)??null}async getAll(e){if(await this.#read(),!e)return this.#cookies;let t=typeof e==`string`?e:e.name;return this.#cookies.filter(e=>e.name===t)??null}async set(e){await this.#read(),this.#cookies=this.#cookies.filter(t=>!(t.name===e.name&&t.domain===e.domain)),this.#cookies.push(e),await this.#write()}async delete(e){if(await this.#read(),!e)this.#cookies=[];else{let t=typeof e==`string`?e:e.name;this.#cookies=this.#cookies.filter(e=>e.name!==t)}}toString(){return this.#cookies.map(e=>`${e.name}=${e.value}`).join(`; `)}},Z=class{#impit;#agent;#retryThreshold;#retryDelayMs;#failures=new Map;constructor(e={}){this.headers=new Headers,this.#retryThreshold=3,this.#retryDelayMs=1500,this.configure(e)}configure({proxyUrl:e,allowH2:t=!0,maxRedirections:n=3,maxRetries:r=3,cookieStore:i}={}){this.cookieStore=i??this.cookieStore??new X,this.#impit=new m.Impit({browser:`chrome`,ignoreTlsErrors:!0,proxyUrl:e,followRedirects:!0,maxRedirects:n});let{redirect:a,retry:o}=p.interceptors;e?this.#agent=new p.ProxyAgent({uri:e,allowH2:t}).compose(a({maxRedirections:n}),o({maxRetries:r})):this.#agent=new p.Agent({allowH2:t}).compose(a({maxRedirections:n}),o({maxRetries:r}))}get retries(){return this.#retryThreshold}async fetch(e,t={}){let n=t.headers&&(t.headers instanceof Headers?t.headers.has(`User-Agent`):`User-Agent`in t.headers),r=this.appendHeaders(t?.headers||{}),i=await this.cookieStore.getAll(),a=i.filter(t=>!t.domain||new f.URL(e).hostname.includes(t.domain));for(let e of i){let t=a.find(t=>t.name===e.name);if(t)continue;e.domain||a.push(e)}let o=a.map(e=>`${e.name}=${e.value}`).join(`; `);r.has(`cookie`)?r.get(`cookie`)||r.delete(`cookie`):r.set(`cookie`,o);let s={...t,body:t?.body,headers:r};t&&(t.headers=r);let c=await(n?(0,p.fetch)(e,{...s,dispatcher:this.#agent}):this.withRetry(this.#impit.fetch.bind(this.#impit),e,s)),l=c.headers.getSetCookie();return l&&await this.setCookies(l),c}async withRetry(e,t,n){try{let r=await e(t,n),i=r.status>=300&&r.status<=399,a=r.status>=200&&r.status<=299||i;return!a&&this.#hasAttempts(t)?(await this.#nextRetry(t),W.debug(await r.text()),W.debug(String(r.status)),this.withRetry(e,t,n)):r}catch(r){let i=r;if(W.debug(i.stack),W.debug({input:t,init:{method:n?.method,headers:n?.headers,body:`...`}}),!this.#hasAttempts(t))throw r;return await this.#nextRetry(t),this.withRetry(e,t,n)}}async setCookies(e){let t=[];if(typeof e==`string`){let[n]=Y([e]);n&&t.push(n)}else if(Array.isArray(e)&&typeof e.at(0)==`string`){let n=Y(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}#hasAttempts(e){return this.#getFailuresCount(e)<=this.#retryThreshold}#getFailuresCount(e){return this.#failures.get(e)||1}#addFailure(e){this.#failures.set(e,this.#getFailuresCount(e)+1)}async#nextRetry(e){let t=this.#getFailuresCount(e);t&&await new Promise(e=>setTimeout(e,this.#retryDelayMs)),this.#addFailure(e),W.debug(`Retry ${t}/${this.#retryThreshold}: ${String(e)}`)}setHeader(e,t){this.headers.set(e,t)}removeHeader(e){this.headers.delete(e)}setRetryCount(e){e>1&&(this.#retryThreshold=e)}};const ke=new Z,{COMMON_CONTEXT:Ae}=h.default,je=(e,t=`Eval`)=>{try{let n=h.default.createScript(t,e);return n}catch(e){return console.error(`Syntax Error: ${e.message}`),null}},Q=(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[]},Me=e=>{let t=`default`in g.default?g.default.default:g.default;return new t(e)};var Ne=class{#store;constructor({storagePath:e}){this.#store=Me({cwd:(0,n.dirname)(e),configName:(0,n.basename)(e,`.json`)})}get length(){return Object.keys(this.#store.store).length}clear(){this.#store.clear()}getItem(e){return this.#store.get(e)??null}key(e){return Object.keys(this.#store.store).at(e)??null}removeItem(e){this.#store.delete(e)}setItem(e,t){this.#store.set(e,t)}};const $=()=>{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 Pe=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`]]]),Fe=()=>{let e=Number(r.default.release().split(`.`)[0]),[t,n]=Pe.get(e)||[`Unknown`,``];return{name:t,version:n}},Ie=()=>{switch($()){case`macOS`:return Fe().version;case`Windows`:return r.default.release();case`Linux`:return r.default.release()}},Le=()=>{let e=[{brand:`Azot`,version:E.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=Ie()),t.includes(`fullVersionList`)&&(n.fullVersionList=[{brand:`Azot`,version:E.version},{brand:`Node.js`,version:process.version}]),n}}},Re=({name:e=`extension`,dir:t=process.cwd()}={})=>{let r=M((0,n.join)(t,e)),a=new Ne({storagePath:(0,n.join)(r,`storage.json`)}),o=new X({storagePath:(0,n.join)(r,`cookies.json`)}),s=new Z({cookieStore:o}),c=(e,t,n)=>e.split(t)[1]?.split(n)[0]?.trim(),l={sanitizeString:G,execUrlPatterns:K,extendEpisodes:q,between:c,getRandomElements:Q},u={defineExtension:e=>e,version:E.version,input:we,sleep:i.setTimeout,sanitizeString:G,execUrlPatterns:K,extendEpisodes:q,between:c,getRandomElements:Q,utils:l,prompt:J.ask.bind(J)};class d{get cookie(){return o.toString()}}let f={fetch:s.fetch.bind(s),Response,Request,Headers,AbortController,AbortSignal,URL,URLSearchParams,URLPattern,Blob,structuredClone,btoa,atob,TextEncoder,TextDecoder,Uint8Array,crypto,console:Object.assign(W,{log:console.log}),prompt:Ee,alert:e=>{W.warn(e)},Event,EventTarget,localStorage:a,cookieStore:o,document:new d,eval:e=>je(e)?.exports,navigator:{appName:`Azot`,appVersion:E.version,platform:process.platform,userAgentData:Le()}},p={http:s,question:J,common:l,Streamyx:u,Azot:u,window:f,...f};return p};Object.defineProperty(exports,`createContext`,{enumerable:!0,get:function(){return Re}});
|
package/out/context.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e=require(`./context-DYv2PCKF.js`);exports.createContext=e.createContext;
|
package/out/context.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{createContext as e}from"./context-DTSYpvwR.mjs";export{e as createContext};
|
package/out/vitest.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const e=require(`./chunk-nOFOJqeH.js`),t=require(`./context-DYv2PCKF.js`),n=e.__toESM(require(`vitest`));n.vi.mock(`azot`,()=>{let e=t.createContext();return Object.entries(e).forEach(([e,t])=>{n.vi.stubGlobal(e,t)}),e.Azot});
|
|
File without changes
|