@shahwali/archangel 0.0.4 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/archangel.js +3 -0
  2. package/dist/cli/index.js +21 -0
  3. package/dist/cli/index.js.map +11 -0
  4. package/dist/index.cjs +2 -3
  5. package/dist/index.cjs.map +2 -2
  6. package/dist/index.js +1 -2
  7. package/dist/index.js.map +2 -2
  8. package/dist/plugins/crypto/pwhash/index.cjs +4 -0
  9. package/dist/plugins/crypto/pwhash/index.cjs.map +11 -0
  10. package/dist/plugins/crypto/pwhash/index.d.ts +13 -0
  11. package/dist/plugins/crypto/pwhash/index.js +4 -0
  12. package/dist/plugins/crypto/pwhash/index.js.map +11 -0
  13. package/dist/plugins/fs/index.cjs +2 -3
  14. package/dist/plugins/fs/index.cjs.map +3 -3
  15. package/dist/plugins/fs/index.d.ts +40 -0
  16. package/dist/plugins/fs/index.js +2 -3
  17. package/dist/plugins/fs/index.js.map +3 -3
  18. package/dist/plugins/os/index.cjs +2 -3
  19. package/dist/plugins/os/index.cjs.map +3 -3
  20. package/dist/plugins/os/index.js +2 -3
  21. package/dist/plugins/os/index.js.map +3 -3
  22. package/dist/plugins/process/index.cjs +2 -3
  23. package/dist/plugins/process/index.cjs.map +3 -3
  24. package/dist/plugins/process/index.d.ts +28 -11
  25. package/dist/plugins/process/index.js +2 -3
  26. package/dist/plugins/process/index.js.map +3 -3
  27. package/native/archangel-aarch64-windows-msvc.dll +0 -0
  28. package/native/archangel-aarch64-windows-msvc.lib +0 -0
  29. package/native/archangel-x86_64-windows-msvc.dll +0 -0
  30. package/native/archangel-x86_64-windows-msvc.lib +0 -0
  31. package/native/libarchangel-aarch64-linux-gnu.so +0 -0
  32. package/native/libarchangel-aarch64-macos-none.dylib +0 -0
  33. package/native/libarchangel-x86_64-linux-gnu.so +0 -0
  34. package/native/libarchangel-x86_64-macos-none.dylib +0 -0
  35. package/package.json +35 -7
  36. package/README.md +0 -195
package/archangel.js ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env bun
2
+
3
+ import "./dist/cli/index.js";
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env bun
2
+ // @bun
3
+ var C=Object.create;var{getPrototypeOf:y,defineProperty:p,getOwnPropertyNames:E}=Object;var R=Object.prototype.hasOwnProperty;var k=(e,r,i)=>{i=e!=null?C(y(e)):{};let b=r||!e||!e.__esModule?p(i,"default",{value:e,enumerable:!0}):i;for(let m of E(e))if(!R.call(b,m))p(b,m,{get:()=>e[m],enumerable:!0});return b};var O=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports);var f=O((F,s)=>{var a=process||{},h=a.argv||[],n=a.env||{},T=!(!!n.NO_COLOR||h.includes("--no-color"))&&(!!n.FORCE_COLOR||h.includes("--color")||a.platform==="win32"||(a.stdout||{}).isTTY&&n.TERM!=="dumb"||!!n.CI),I=(e,r,i=e)=>(b)=>{let m=""+b,x=m.indexOf(r,e.length);return~x?e+L(m,r,i,x)+r:e+m+r},L=(e,r,i,b)=>{let m="",x=0;do m+=e.substring(x,b)+i,x=b+r.length,b=e.indexOf(r,x);while(~b);return m+e.substring(x)},d=(e=T)=>{let r=e?I:()=>String;return{isColorSupported:e,reset:r("\x1B[0m","\x1B[0m"),bold:r("\x1B[1m","\x1B[22m","\x1B[22m\x1B[1m"),dim:r("\x1B[2m","\x1B[22m","\x1B[22m\x1B[2m"),italic:r("\x1B[3m","\x1B[23m"),underline:r("\x1B[4m","\x1B[24m"),inverse:r("\x1B[7m","\x1B[27m"),hidden:r("\x1B[8m","\x1B[28m"),strikethrough:r("\x1B[9m","\x1B[29m"),black:r("\x1B[30m","\x1B[39m"),red:r("\x1B[31m","\x1B[39m"),green:r("\x1B[32m","\x1B[39m"),yellow:r("\x1B[33m","\x1B[39m"),blue:r("\x1B[34m","\x1B[39m"),magenta:r("\x1B[35m","\x1B[39m"),cyan:r("\x1B[36m","\x1B[39m"),white:r("\x1B[37m","\x1B[39m"),gray:r("\x1B[90m","\x1B[39m"),bgBlack:r("\x1B[40m","\x1B[49m"),bgRed:r("\x1B[41m","\x1B[49m"),bgGreen:r("\x1B[42m","\x1B[49m"),bgYellow:r("\x1B[43m","\x1B[49m"),bgBlue:r("\x1B[44m","\x1B[49m"),bgMagenta:r("\x1B[45m","\x1B[49m"),bgCyan:r("\x1B[46m","\x1B[49m"),bgWhite:r("\x1B[47m","\x1B[49m"),blackBright:r("\x1B[90m","\x1B[39m"),redBright:r("\x1B[91m","\x1B[39m"),greenBright:r("\x1B[92m","\x1B[39m"),yellowBright:r("\x1B[93m","\x1B[39m"),blueBright:r("\x1B[94m","\x1B[39m"),magentaBright:r("\x1B[95m","\x1B[39m"),cyanBright:r("\x1B[96m","\x1B[39m"),whiteBright:r("\x1B[97m","\x1B[39m"),bgBlackBright:r("\x1B[100m","\x1B[49m"),bgRedBright:r("\x1B[101m","\x1B[49m"),bgGreenBright:r("\x1B[102m","\x1B[49m"),bgYellowBright:r("\x1B[103m","\x1B[49m"),bgBlueBright:r("\x1B[104m","\x1B[49m"),bgMagentaBright:r("\x1B[105m","\x1B[49m"),bgCyanBright:r("\x1B[106m","\x1B[49m"),bgWhiteBright:r("\x1B[107m","\x1B[49m")}};s.exports=d();s.exports.createColors=d});var t=k(f(),1);import{dlopen as P,FFIType as u,suffix as D}from"bun:ffi";import{join as M}from"path";import{arch as B,platform as w}from"os";function g(){console.log(`
4
+ ${t.default.dim("Archangel CLI")}
5
+
6
+ Usage:
7
+ To run your project in development mode
8
+ ${t.default.underline(`$ archangel ${t.default.greenBright("dev")}`)}
9
+
10
+ To build your project
11
+ ${t.default.underline(`$ archangel ${t.default.blueBright("build")}`)}
12
+
13
+ To preview your project
14
+ ${t.default.underline(`$ archangel ${t.default.yellowBright("preview")}`)}
15
+
16
+ To print this help message
17
+ ${t.default.underline(`$ archangel ${t.default.magentaBright("help")}`)}
18
+ `),process.exit(1)}var U={darwin:{prefix:"lib",abi:"none",platform:"macos"},linux:{prefix:"lib",abi:"gnu",platform:"linux"},win32:{prefix:"",abi:"msvc",platform:"windows"}},j={x64:"x86_64",arm64:"aarch64"},o=U[w()],v=j[B()];if(!o||!v)throw Error(`Unsupported platform: ${w()} ${B()}`);var V=M(import.meta.dir,"../../native",`${o.prefix}archangel-${v}-${o.platform}-${o.abi}.${D}`),{symbols:c}=P(V,{runDev:{args:[],returns:u.i32},runPreview:{args:[],returns:u.i32},runBuild:{args:[],returns:u.i32}});if(process.argv.length!=3)g();var $=process.argv[2];if(!$)g();var l;switch($){case"dev":l=c.runDev();break;case"preview":l=c.runPreview();break;case"build":l=c.runBuild();break;case"help":g();break;default:g()}process.exit(l);
19
+
20
+ //# debugId=F1795EFCBA0ED06264756E2164756E21
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,11 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["..\\..\\..\\..\\node_modules\\.bun\\picocolors@1.1.1\\node_modules\\picocolors\\picocolors.js", "..\\..\\src\\cli\\index.ts"],
4
+ "sourcesContent": [
5
+ "let p = process || {}, argv = p.argv || [], env = p.env || {}\nlet isColorSupported =\n\t!(!!env.NO_COLOR || argv.includes(\"--no-color\")) &&\n\t(!!env.FORCE_COLOR || argv.includes(\"--color\") || p.platform === \"win32\" || ((p.stdout || {}).isTTY && env.TERM !== \"dumb\") || !!env.CI)\n\nlet formatter = (open, close, replace = open) =>\n\tinput => {\n\t\tlet string = \"\" + input, index = string.indexOf(close, open.length)\n\t\treturn ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close\n\t}\n\nlet replaceClose = (string, close, replace, index) => {\n\tlet result = \"\", cursor = 0\n\tdo {\n\t\tresult += string.substring(cursor, index) + replace\n\t\tcursor = index + close.length\n\t\tindex = string.indexOf(close, cursor)\n\t} while (~index)\n\treturn result + string.substring(cursor)\n}\n\nlet createColors = (enabled = isColorSupported) => {\n\tlet f = enabled ? formatter : () => String\n\treturn {\n\t\tisColorSupported: enabled,\n\t\treset: f(\"\\x1b[0m\", \"\\x1b[0m\"),\n\t\tbold: f(\"\\x1b[1m\", \"\\x1b[22m\", \"\\x1b[22m\\x1b[1m\"),\n\t\tdim: f(\"\\x1b[2m\", \"\\x1b[22m\", \"\\x1b[22m\\x1b[2m\"),\n\t\titalic: f(\"\\x1b[3m\", \"\\x1b[23m\"),\n\t\tunderline: f(\"\\x1b[4m\", \"\\x1b[24m\"),\n\t\tinverse: f(\"\\x1b[7m\", \"\\x1b[27m\"),\n\t\thidden: f(\"\\x1b[8m\", \"\\x1b[28m\"),\n\t\tstrikethrough: f(\"\\x1b[9m\", \"\\x1b[29m\"),\n\n\t\tblack: f(\"\\x1b[30m\", \"\\x1b[39m\"),\n\t\tred: f(\"\\x1b[31m\", \"\\x1b[39m\"),\n\t\tgreen: f(\"\\x1b[32m\", \"\\x1b[39m\"),\n\t\tyellow: f(\"\\x1b[33m\", \"\\x1b[39m\"),\n\t\tblue: f(\"\\x1b[34m\", \"\\x1b[39m\"),\n\t\tmagenta: f(\"\\x1b[35m\", \"\\x1b[39m\"),\n\t\tcyan: f(\"\\x1b[36m\", \"\\x1b[39m\"),\n\t\twhite: f(\"\\x1b[37m\", \"\\x1b[39m\"),\n\t\tgray: f(\"\\x1b[90m\", \"\\x1b[39m\"),\n\n\t\tbgBlack: f(\"\\x1b[40m\", \"\\x1b[49m\"),\n\t\tbgRed: f(\"\\x1b[41m\", \"\\x1b[49m\"),\n\t\tbgGreen: f(\"\\x1b[42m\", \"\\x1b[49m\"),\n\t\tbgYellow: f(\"\\x1b[43m\", \"\\x1b[49m\"),\n\t\tbgBlue: f(\"\\x1b[44m\", \"\\x1b[49m\"),\n\t\tbgMagenta: f(\"\\x1b[45m\", \"\\x1b[49m\"),\n\t\tbgCyan: f(\"\\x1b[46m\", \"\\x1b[49m\"),\n\t\tbgWhite: f(\"\\x1b[47m\", \"\\x1b[49m\"),\n\n\t\tblackBright: f(\"\\x1b[90m\", \"\\x1b[39m\"),\n\t\tredBright: f(\"\\x1b[91m\", \"\\x1b[39m\"),\n\t\tgreenBright: f(\"\\x1b[92m\", \"\\x1b[39m\"),\n\t\tyellowBright: f(\"\\x1b[93m\", \"\\x1b[39m\"),\n\t\tblueBright: f(\"\\x1b[94m\", \"\\x1b[39m\"),\n\t\tmagentaBright: f(\"\\x1b[95m\", \"\\x1b[39m\"),\n\t\tcyanBright: f(\"\\x1b[96m\", \"\\x1b[39m\"),\n\t\twhiteBright: f(\"\\x1b[97m\", \"\\x1b[39m\"),\n\n\t\tbgBlackBright: f(\"\\x1b[100m\", \"\\x1b[49m\"),\n\t\tbgRedBright: f(\"\\x1b[101m\", \"\\x1b[49m\"),\n\t\tbgGreenBright: f(\"\\x1b[102m\", \"\\x1b[49m\"),\n\t\tbgYellowBright: f(\"\\x1b[103m\", \"\\x1b[49m\"),\n\t\tbgBlueBright: f(\"\\x1b[104m\", \"\\x1b[49m\"),\n\t\tbgMagentaBright: f(\"\\x1b[105m\", \"\\x1b[49m\"),\n\t\tbgCyanBright: f(\"\\x1b[106m\", \"\\x1b[49m\"),\n\t\tbgWhiteBright: f(\"\\x1b[107m\", \"\\x1b[49m\"),\n\t}\n}\n\nmodule.exports = createColors()\nmodule.exports.createColors = createColors\n",
6
+ "#!/usr/bin/env bun\n\nimport { dlopen, FFIType, suffix } from \"bun:ffi\";\nimport { join } from \"path\";\nimport { arch, platform } from \"os\";\nimport pc from \"picocolors\";\n\nfunction printUsageAndExit() {\n console.log(`\n ${pc.dim(\"Archangel CLI\")}\n\n Usage:\n To run your project in development mode\n ${pc.underline(`$ archangel ${pc.greenBright(\"dev\")}`)}\n\n To build your project\n ${pc.underline(`$ archangel ${pc.blueBright(\"build\")}`)}\n\n To preview your project\n ${pc.underline(`$ archangel ${pc.yellowBright(\"preview\")}`)}\n\n To print this help message\n ${pc.underline(`$ archangel ${pc.magentaBright(\"help\")}`)}\n`);\n process.exit(1);\n}\n\nconst platformMap: Record<string, { prefix: string; abi: string; platform: string }> = {\n darwin: { prefix: \"lib\", abi: \"none\", platform: \"macos\" },\n linux: { prefix: \"lib\", abi: \"gnu\", platform: \"linux\" },\n win32: { prefix: \"\", abi: \"msvc\", platform: \"windows\" },\n} as const;\n\nconst archMap: Record<string, string> = {\n x64: \"x86_64\",\n arm64: \"aarch64\",\n} as const;\n\nconst p = platformMap[platform()];\nconst a = archMap[arch()];\n\nif (!p || !a) {\n throw new Error(`Unsupported platform: ${platform()} ${arch()}`);\n}\n\nconst libPath = join(\n import.meta.dir,\n \"../../native\",\n `${p.prefix}archangel-${a}-${p.platform}-${p.abi}.${suffix}`,\n);\n\nconst { symbols } = dlopen(libPath, {\n runDev: {\n args: [],\n returns: FFIType.i32,\n },\n runPreview: {\n args: [],\n returns: FFIType.i32,\n },\n runBuild: {\n args: [],\n returns: FFIType.i32,\n },\n});\n\nif (process.argv.length != 3) {\n printUsageAndExit();\n}\n\nenum Command {\n DEV = \"dev\",\n BUILD = \"build\",\n PREVIEW = \"preview\",\n HELP = \"help\",\n}\n\nconst command: Command = process.argv[2] as Command;\n\nif (!command) {\n printUsageAndExit();\n}\n\nlet code: number | undefined;\nswitch (command) {\n case Command.DEV:\n code = symbols.runDev();\n break;\n case Command.PREVIEW:\n code = symbols.runPreview();\n break;\n case Command.BUILD:\n code = symbols.runBuild();\n break;\n case Command.HELP:\n printUsageAndExit();\n break;\n default:\n printUsageAndExit();\n}\n\nprocess.exit(code);\n"
7
+ ],
8
+ "mappings": ";;qYAAA,IAAI,EAAI,SAAW,CAAC,EAAG,EAAO,EAAE,MAAQ,CAAC,EAAG,EAAM,EAAE,KAAO,CAAC,EACxD,EACH,EAAE,CAAC,CAAC,EAAI,UAAY,EAAK,SAAS,YAAY,KAC7C,CAAC,CAAC,EAAI,aAAe,EAAK,SAAS,SAAS,GAAK,EAAE,WAAa,UAAa,EAAE,QAAU,CAAC,GAAG,OAAS,EAAI,OAAS,QAAW,CAAC,CAAC,EAAI,IAElI,EAAY,CAAC,EAAM,EAAO,EAAU,IACvC,KAAS,CACR,IAAI,EAAS,GAAK,EAAO,EAAQ,EAAO,QAAQ,EAAO,EAAK,MAAM,EAClE,MAAO,CAAC,EAAQ,EAAO,EAAa,EAAQ,EAAO,EAAS,CAAK,EAAI,EAAQ,EAAO,EAAS,GAG3F,EAAe,CAAC,EAAQ,EAAO,EAAS,IAAU,CACrD,IAAI,EAAS,GAAI,EAAS,EAC1B,GACC,GAAU,EAAO,UAAU,EAAQ,CAAK,EAAI,EAC5C,EAAS,EAAQ,EAAM,OACvB,EAAQ,EAAO,QAAQ,EAAO,CAAM,QAC5B,CAAC,GACV,OAAO,EAAS,EAAO,UAAU,CAAM,GAGpC,EAAe,CAAC,EAAU,IAAqB,CAClD,IAAI,EAAI,EAAU,EAAY,IAAM,OACpC,MAAO,CACN,iBAAkB,EAClB,MAAO,EAAE,UAAW,SAAS,EAC7B,KAAM,EAAE,UAAW,WAAY,iBAAiB,EAChD,IAAK,EAAE,UAAW,WAAY,iBAAiB,EAC/C,OAAQ,EAAE,UAAW,UAAU,EAC/B,UAAW,EAAE,UAAW,UAAU,EAClC,QAAS,EAAE,UAAW,UAAU,EAChC,OAAQ,EAAE,UAAW,UAAU,EAC/B,cAAe,EAAE,UAAW,UAAU,EAEtC,MAAO,EAAE,WAAY,UAAU,EAC/B,IAAK,EAAE,WAAY,UAAU,EAC7B,MAAO,EAAE,WAAY,UAAU,EAC/B,OAAQ,EAAE,WAAY,UAAU,EAChC,KAAM,EAAE,WAAY,UAAU,EAC9B,QAAS,EAAE,WAAY,UAAU,EACjC,KAAM,EAAE,WAAY,UAAU,EAC9B,MAAO,EAAE,WAAY,UAAU,EAC/B,KAAM,EAAE,WAAY,UAAU,EAE9B,QAAS,EAAE,WAAY,UAAU,EACjC,MAAO,EAAE,WAAY,UAAU,EAC/B,QAAS,EAAE,WAAY,UAAU,EACjC,SAAU,EAAE,WAAY,UAAU,EAClC,OAAQ,EAAE,WAAY,UAAU,EAChC,UAAW,EAAE,WAAY,UAAU,EACnC,OAAQ,EAAE,WAAY,UAAU,EAChC,QAAS,EAAE,WAAY,UAAU,EAEjC,YAAa,EAAE,WAAY,UAAU,EACrC,UAAW,EAAE,WAAY,UAAU,EACnC,YAAa,EAAE,WAAY,UAAU,EACrC,aAAc,EAAE,WAAY,UAAU,EACtC,WAAY,EAAE,WAAY,UAAU,EACpC,cAAe,EAAE,WAAY,UAAU,EACvC,WAAY,EAAE,WAAY,UAAU,EACpC,YAAa,EAAE,WAAY,UAAU,EAErC,cAAe,EAAE,YAAa,UAAU,EACxC,YAAa,EAAE,YAAa,UAAU,EACtC,cAAe,EAAE,YAAa,UAAU,EACxC,eAAgB,EAAE,YAAa,UAAU,EACzC,aAAc,EAAE,YAAa,UAAU,EACvC,gBAAiB,EAAE,YAAa,UAAU,EAC1C,aAAc,EAAE,YAAa,UAAU,EACvC,cAAe,EAAE,YAAa,UAAU,CACzC,GAGD,EAAO,QAAU,EAAa,EAC9B,EAAO,QAAQ,aAAe,ICrE9B,eAHA,iBAAS,aAAQ,YAAS,gBAC1B,eAAS,aACT,eAAS,cAAM,WAGf,SAAS,CAAiB,EAAG,CAC3B,QAAQ,IAAI;AAAA,IACV,UAAG,IAAI,eAAe;AAAA;AAAA;AAAA;AAAA,QAIlB,UAAG,UAAU,eAAe,UAAG,YAAY,KAAK,GAAG;AAAA;AAAA;AAAA,QAGnD,UAAG,UAAU,eAAe,UAAG,WAAW,OAAO,GAAG;AAAA;AAAA;AAAA,QAGpD,UAAG,UAAU,eAAe,UAAG,aAAa,SAAS,GAAG;AAAA;AAAA;AAAA,QAGxD,UAAG,UAAU,eAAe,UAAG,cAAc,MAAM,GAAG;AAAA,CAC7D,EACC,QAAQ,KAAK,CAAC,EAGhB,IAAM,EAAiF,CACrF,OAAQ,CAAE,OAAQ,MAAO,IAAK,OAAQ,SAAU,OAAQ,EACxD,MAAO,CAAE,OAAQ,MAAO,IAAK,MAAO,SAAU,OAAQ,EACtD,MAAO,CAAE,OAAQ,GAAI,IAAK,OAAQ,SAAU,SAAU,CACxD,EAEM,EAAkC,CACtC,IAAK,SACL,MAAO,SACT,EAEM,EAAI,EAAY,EAAS,GACzB,EAAI,EAAQ,EAAK,GAEvB,GAAI,CAAC,GAAK,CAAC,EACT,MAAU,MAAM,yBAAyB,EAAS,KAAK,EAAK,GAAG,EAGjE,IAAM,EAAU,EACd,YAAY,IACZ,eACA,GAAG,EAAE,mBAAmB,KAAK,EAAE,YAAY,EAAE,OAAO,GACtD,GAEQ,WAAY,EAAO,EAAS,CAClC,OAAQ,CACN,KAAM,CAAC,EACP,QAAS,EAAQ,GACnB,EACA,WAAY,CACV,KAAM,CAAC,EACP,QAAS,EAAQ,GACnB,EACA,SAAU,CACR,KAAM,CAAC,EACP,QAAS,EAAQ,GACnB,CACF,CAAC,EAED,GAAI,QAAQ,KAAK,QAAU,EACzB,EAAkB,EAUpB,IAAM,EAAmB,QAAQ,KAAK,GAEtC,GAAI,CAAC,EACH,EAAkB,EAGpB,IAAI,EACJ,OAAQ,OACD,MACH,EAAO,EAAQ,OAAO,EACtB,UACG,UACH,EAAO,EAAQ,WAAW,EAC1B,UACG,QACH,EAAO,EAAQ,SAAS,EACxB,UACG,OACH,EAAkB,EAClB,cAEA,EAAkB,EAGtB,QAAQ,KAAK,CAAI",
9
+ "debugId": "F1795EFCBA0ED06264756E2164756E21",
10
+ "names": []
11
+ }
package/dist/index.cjs CHANGED
@@ -1,5 +1,4 @@
1
- // @bun @bun-cjs
2
- (function(exports, require, module, __filename, __dirname) {var{defineProperty:i,getOwnPropertyNames:l,getOwnPropertyDescriptor:d}=Object,f=Object.prototype.hasOwnProperty;var o=new WeakMap,h=(r)=>{var n=o.get(r),g;if(n)return n;if(n=i({},"__esModule",{value:!0}),r&&typeof r==="object"||typeof r==="function")l(r).map((a)=>!f.call(n,a)&&i(n,a,{get:()=>r[a],enumerable:!(g=d(r,a))||g.enumerable}));return o.set(r,n),n};var w=(r,n)=>{for(var g in n)i(r,g,{get:n[g],enumerable:!0,configurable:!0,set:(a)=>n[g]=()=>a})};var $={};w($,{once:()=>c,on:()=>B,invoke:()=>y});module.exports=h($);function A(r){if(r===null||typeof r!=="object")return!1;return"__archangel_error"in r&&typeof r.__archangel_error==="string"}function R(r){throw Error(r.__archangel_error,{cause:r.__archangel_error_trace??Error("Error trace only available in debug builds.")})}function x(r){if(A(r))R(r);return r}function T(r){let n=window[r];if(!n)console.warn(`Backend binding not available: ${r}`);return async(g)=>{if(!n)throw Error(`Backend binding not available: ${r}`);let a=await n(g);return x(a)}}var u=T("__invoke__");async function y(r,n={}){return u({function:r,args:JSON.stringify(n)})}var _=new Map;function B(r,n){let g=_.get(r);if(!g)g=new Set,_.set(r,g);return g.add(n),()=>{if(g.delete(n),g.size===0)_.delete(r)}}function c(r,n){let a=B(r,(E)=>{n(E),a()});return a}function F(r,n){let g=_.get(r);if(!g)return;for(let a of g)a(n)}Object.defineProperty(window,"__emit__",{value:F,writable:!1,configurable:!1});})
1
+ var{defineProperty:i,getOwnPropertyNames:l,getOwnPropertyDescriptor:d}=Object,f=Object.prototype.hasOwnProperty;var o=new WeakMap,h=(r)=>{var n=o.get(r),g;if(n)return n;if(n=i({},"__esModule",{value:!0}),r&&typeof r==="object"||typeof r==="function")l(r).map((a)=>!f.call(n,a)&&i(n,a,{get:()=>r[a],enumerable:!(g=d(r,a))||g.enumerable}));return o.set(r,n),n};var w=(r,n)=>{for(var g in n)i(r,g,{get:n[g],enumerable:!0,configurable:!0,set:(a)=>n[g]=()=>a})};var $={};w($,{once:()=>c,on:()=>B,invoke:()=>y});module.exports=h($);function A(r){if(r===null||typeof r!=="object")return!1;return"__archangel_error"in r&&typeof r.__archangel_error==="string"}function R(r){throw Error(r.__archangel_error,{cause:r.__archangel_error_trace??Error("Error trace only available in debug builds.")})}function x(r){if(A(r))R(r);return r}function T(r){let n=window[r];if(!n)console.warn(`Backend binding not available: ${r}`);return async(g)=>{if(!n)throw Error(`Backend binding not available: ${r}`);let a=await n(g);return x(a)}}var u=T("__invoke__");async function y(r,n={}){return u({function:r,args:JSON.stringify(n)})}var _=new Map;function B(r,n){let g=_.get(r);if(!g)g=new Set,_.set(r,g);return g.add(n),()=>{if(g.delete(n),g.size===0)_.delete(r)}}function c(r,n){let a=B(r,(E)=>{n(E),a()});return a}function F(r,n){let g=_.get(r);if(!g)return;for(let a of g)a(n)}Object.defineProperty(window,"__emit__",{value:F,writable:!1,configurable:!1});
3
2
 
4
- //# debugId=A5594DDE138E4E6D64756E2164756E21
3
+ //# debugId=290F7A599874E67064756E2164756E21
5
4
  //# sourceMappingURL=index.cjs.map
@@ -5,7 +5,7 @@
5
5
  "export interface BindingError {\n __archangel_error: string;\n __archangel_error_trace?: string;\n}\n\nexport function isBindingError(result: any): result is BindingError {\n if (result === null || typeof result !== \"object\") {\n return false;\n }\n\n return \"__archangel_error\" in result && typeof result.__archangel_error === \"string\";\n}\n\nexport function throwBindingError(error: BindingError): never {\n throw new Error(error.__archangel_error, {\n cause:\n error.__archangel_error_trace ?? new Error(\"Error trace only available in debug builds.\"),\n });\n}\n\nexport function handleBindingResult<T>(result: any): T {\n if (isBindingError(result)) {\n throwBindingError(result);\n }\n return result as T;\n}\n\ntype BindingFn<TArgs = any, TResult = any> = (args: TArgs) => Promise<TResult>;\n\nexport function createBinding<TArgs, TResult>(windowKey: string): BindingFn<TArgs, TResult> {\n const fn = (window as any)[windowKey];\n\n if (!fn) {\n console.warn(`Backend binding not available: ${windowKey}`);\n }\n\n return async (args: TArgs) => {\n if (!fn) {\n throw new Error(`Backend binding not available: ${windowKey}`);\n }\n\n const result = await fn(args);\n return handleBindingResult(result);\n };\n}\n",
6
6
  "import { createBinding } from \"./internal/binding\";\n\ntype InvokeRequest = {\n function: string;\n args: string;\n};\n\nexport type InvokeArgs = Record<string, any>;\n\nconst _invoke = createBinding<InvokeRequest, any>(\"__invoke__\");\n\nexport interface InvokeHandlers {}\n\ntype IsEmptyArgs<T> =\n T extends Record<string, never> ? true : T extends null | undefined | void ? true : false;\n\n/**\n * Generic invoke method for calling backend functions\n * @param functionName - Name of the backend function to call\n * @param args - Arguments to pass to the function\n * @returns Promise resolving to the result\n * Type-safe invoke method for calling backend functions\n */\nexport async function invoke<K extends keyof InvokeHandlers>(\n functionName: K,\n ...args: IsEmptyArgs<InvokeHandlers[K][\"args\"]> extends true\n ? [args?: InvokeHandlers[K][\"args\"]]\n : [args: InvokeHandlers[K][\"args\"]]\n): Promise<InvokeHandlers[K][\"result\"]>;\n\n// Fallback overload for when InvokeHandlers is empty or for dynamic usage\nexport async function invoke<T = any>(functionName: string, args?: any): Promise<T>;\n\nexport async function invoke(functionName: string, args: any = {}): Promise<any> {\n return _invoke({\n function: functionName,\n args: JSON.stringify(args),\n });\n}\n\ntype Listener<T = any> = (payload: T) => void;\n\nconst listeners = new Map<string, Set<Listener>>();\n\n/**\n * Subscribe to events emitted from the backend\n * @param event - Name of the event to listen for\n * @param cb - Callback function to execute when the event is emitted\n * @returns Unsubscribe function to stop listening to the event\n */\nexport function on<T = any>(event: string, cb: Listener<T>) {\n let set = listeners.get(event);\n if (!set) {\n set = new Set();\n listeners.set(event, set);\n }\n\n set.add(cb);\n\n return () => {\n set!.delete(cb);\n if (set!.size === 0) listeners.delete(event);\n };\n}\n\n/**\n * Subscribe to events emitted from the backend (fires only once)\n * @param event - Name of the event to listen for\n * @param cb - Callback function to execute when the event is emitted\n * @returns Unsubscribe function to stop listening to the event\n */\nexport function once<T = any>(event: string, cb: Listener<T>) {\n const wrappedCallback: Listener<T> = (payload) => {\n cb(payload);\n unsubscribe();\n };\n\n const unsubscribe = on(event, wrappedCallback);\n\n return unsubscribe;\n}\n\nfunction emit<T = any>(event: string, payload: T) {\n const set = listeners.get(event);\n if (!set) return;\n for (const cb of set) cb(payload);\n}\n\nObject.defineProperty(window, \"__emit__\", {\n value: emit,\n writable: false,\n configurable: false,\n});\n\nexport type { InvokeRequest, Listener };\n"
7
7
  ],
8
- "mappings": ";0kBAKO,SAAS,CAAc,CAAC,EAAqC,CAClE,GAAI,IAAW,MAAQ,OAAO,IAAW,SACvC,MAAO,GAGT,MAAO,sBAAuB,GAAU,OAAO,EAAO,oBAAsB,SAGvE,SAAS,CAAiB,CAAC,EAA4B,CAC5D,MAAU,MAAM,EAAM,kBAAmB,CACvC,MACE,EAAM,yBAA+B,MAAM,6CAA6C,CAC5F,CAAC,EAGI,SAAS,CAAsB,CAAC,EAAgB,CACrD,GAAI,EAAe,CAAM,EACvB,EAAkB,CAAM,EAE1B,OAAO,EAKF,SAAS,CAA6B,CAAC,EAA8C,CAC1F,IAAM,EAAM,OAAe,GAE3B,GAAI,CAAC,EACH,QAAQ,KAAK,kCAAkC,GAAW,EAG5D,MAAO,OAAO,IAAgB,CAC5B,GAAI,CAAC,EACH,MAAU,MAAM,kCAAkC,GAAW,EAG/D,IAAM,EAAS,MAAM,EAAG,CAAI,EAC5B,OAAO,EAAoB,CAAM,GCjCrC,IAAM,EAAU,EAAkC,YAAY,EAwB9D,eAAsB,CAAM,CAAC,EAAsB,EAAY,CAAC,EAAiB,CAC/E,OAAO,EAAQ,CACb,SAAU,EACV,KAAM,KAAK,UAAU,CAAI,CAC3B,CAAC,EAKH,IAAM,EAAY,IAAI,IAQf,SAAS,CAAW,CAAC,EAAe,EAAiB,CAC1D,IAAI,EAAM,EAAU,IAAI,CAAK,EAC7B,GAAI,CAAC,EACH,EAAM,IAAI,IACV,EAAU,IAAI,EAAO,CAAG,EAK1B,OAFA,EAAI,IAAI,CAAE,EAEH,IAAM,CAEX,GADA,EAAK,OAAO,CAAE,EACV,EAAK,OAAS,EAAG,EAAU,OAAO,CAAK,GAUxC,SAAS,CAAa,CAAC,EAAe,EAAiB,CAM5D,IAAM,EAAc,EAAG,EALc,CAAC,IAAY,CAChD,EAAG,CAAO,EACV,EAAY,EAG+B,EAE7C,OAAO,EAGT,SAAS,CAAa,CAAC,EAAe,EAAY,CAChD,IAAM,EAAM,EAAU,IAAI,CAAK,EAC/B,GAAI,CAAC,EAAK,OACV,QAAW,KAAM,EAAK,EAAG,CAAO,EAGlC,OAAO,eAAe,OAAQ,WAAY,CACxC,MAAO,EACP,SAAU,GACV,aAAc,EAChB,CAAC",
9
- "debugId": "A5594DDE138E4E6D64756E2164756E21",
8
+ "mappings": "8gBAKO,SAAS,CAAc,CAAC,EAAqC,CAClE,GAAI,IAAW,MAAQ,OAAO,IAAW,SACvC,MAAO,GAGT,MAAO,sBAAuB,GAAU,OAAO,EAAO,oBAAsB,SAGvE,SAAS,CAAiB,CAAC,EAA4B,CAC5D,MAAU,MAAM,EAAM,kBAAmB,CACvC,MACE,EAAM,yBAA+B,MAAM,6CAA6C,CAC5F,CAAC,EAGI,SAAS,CAAsB,CAAC,EAAgB,CACrD,GAAI,EAAe,CAAM,EACvB,EAAkB,CAAM,EAE1B,OAAO,EAKF,SAAS,CAA6B,CAAC,EAA8C,CAC1F,IAAM,EAAM,OAAe,GAE3B,GAAI,CAAC,EACH,QAAQ,KAAK,kCAAkC,GAAW,EAG5D,MAAO,OAAO,IAAgB,CAC5B,GAAI,CAAC,EACH,MAAU,MAAM,kCAAkC,GAAW,EAG/D,IAAM,EAAS,MAAM,EAAG,CAAI,EAC5B,OAAO,EAAoB,CAAM,GCjCrC,IAAM,EAAU,EAAkC,YAAY,EAwB9D,eAAsB,CAAM,CAAC,EAAsB,EAAY,CAAC,EAAiB,CAC/E,OAAO,EAAQ,CACb,SAAU,EACV,KAAM,KAAK,UAAU,CAAI,CAC3B,CAAC,EAKH,IAAM,EAAY,IAAI,IAQf,SAAS,CAAW,CAAC,EAAe,EAAiB,CAC1D,IAAI,EAAM,EAAU,IAAI,CAAK,EAC7B,GAAI,CAAC,EACH,EAAM,IAAI,IACV,EAAU,IAAI,EAAO,CAAG,EAK1B,OAFA,EAAI,IAAI,CAAE,EAEH,IAAM,CAEX,GADA,EAAK,OAAO,CAAE,EACV,EAAK,OAAS,EAAG,EAAU,OAAO,CAAK,GAUxC,SAAS,CAAa,CAAC,EAAe,EAAiB,CAM5D,IAAM,EAAc,EAAG,EALc,CAAC,IAAY,CAChD,EAAG,CAAO,EACV,EAAY,EAG+B,EAE7C,OAAO,EAGT,SAAS,CAAa,CAAC,EAAe,EAAY,CAChD,IAAM,EAAM,EAAU,IAAI,CAAK,EAC/B,GAAI,CAAC,EAAK,OACV,QAAW,KAAM,EAAK,EAAG,CAAO,EAGlC,OAAO,eAAe,OAAQ,WAAY,CACxC,MAAO,EACP,SAAU,GACV,aAAc,EAChB,CAAC",
9
+ "debugId": "290F7A599874E67064756E2164756E21",
10
10
  "names": []
11
11
  }
package/dist/index.js CHANGED
@@ -1,5 +1,4 @@
1
- // @bun
2
1
  function T(r){if(r===null||typeof r!=="object")return!1;return"__archangel_error"in r&&typeof r.__archangel_error==="string"}function B(r){throw Error(r.__archangel_error,{cause:r.__archangel_error_trace??Error("Error trace only available in debug builds.")})}function E(r){if(T(r))B(r);return r}function i(r){let n=window[r];if(!n)console.warn(`Backend binding not available: ${r}`);return async(g)=>{if(!n)throw Error(`Backend binding not available: ${r}`);let a=await n(g);return E(a)}}var l=i("__invoke__");async function A(r,n={}){return l({function:r,args:JSON.stringify(n)})}var _=new Map;function d(r,n){let g=_.get(r);if(!g)g=new Set,_.set(r,g);return g.add(n),()=>{if(g.delete(n),g.size===0)_.delete(r)}}function R(r,n){let a=d(r,(o)=>{n(o),a()});return a}function f(r,n){let g=_.get(r);if(!g)return;for(let a of g)a(n)}Object.defineProperty(window,"__emit__",{value:f,writable:!1,configurable:!1});export{R as once,d as on,A as invoke};
3
2
 
4
- //# debugId=4D4982FD20E292DC64756E2164756E21
3
+ //# debugId=2CDF8B8659B713EC64756E2164756E21
5
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -5,7 +5,7 @@
5
5
  "export interface BindingError {\n __archangel_error: string;\n __archangel_error_trace?: string;\n}\n\nexport function isBindingError(result: any): result is BindingError {\n if (result === null || typeof result !== \"object\") {\n return false;\n }\n\n return \"__archangel_error\" in result && typeof result.__archangel_error === \"string\";\n}\n\nexport function throwBindingError(error: BindingError): never {\n throw new Error(error.__archangel_error, {\n cause:\n error.__archangel_error_trace ?? new Error(\"Error trace only available in debug builds.\"),\n });\n}\n\nexport function handleBindingResult<T>(result: any): T {\n if (isBindingError(result)) {\n throwBindingError(result);\n }\n return result as T;\n}\n\ntype BindingFn<TArgs = any, TResult = any> = (args: TArgs) => Promise<TResult>;\n\nexport function createBinding<TArgs, TResult>(windowKey: string): BindingFn<TArgs, TResult> {\n const fn = (window as any)[windowKey];\n\n if (!fn) {\n console.warn(`Backend binding not available: ${windowKey}`);\n }\n\n return async (args: TArgs) => {\n if (!fn) {\n throw new Error(`Backend binding not available: ${windowKey}`);\n }\n\n const result = await fn(args);\n return handleBindingResult(result);\n };\n}\n",
6
6
  "import { createBinding } from \"./internal/binding\";\n\ntype InvokeRequest = {\n function: string;\n args: string;\n};\n\nexport type InvokeArgs = Record<string, any>;\n\nconst _invoke = createBinding<InvokeRequest, any>(\"__invoke__\");\n\nexport interface InvokeHandlers {}\n\ntype IsEmptyArgs<T> =\n T extends Record<string, never> ? true : T extends null | undefined | void ? true : false;\n\n/**\n * Generic invoke method for calling backend functions\n * @param functionName - Name of the backend function to call\n * @param args - Arguments to pass to the function\n * @returns Promise resolving to the result\n * Type-safe invoke method for calling backend functions\n */\nexport async function invoke<K extends keyof InvokeHandlers>(\n functionName: K,\n ...args: IsEmptyArgs<InvokeHandlers[K][\"args\"]> extends true\n ? [args?: InvokeHandlers[K][\"args\"]]\n : [args: InvokeHandlers[K][\"args\"]]\n): Promise<InvokeHandlers[K][\"result\"]>;\n\n// Fallback overload for when InvokeHandlers is empty or for dynamic usage\nexport async function invoke<T = any>(functionName: string, args?: any): Promise<T>;\n\nexport async function invoke(functionName: string, args: any = {}): Promise<any> {\n return _invoke({\n function: functionName,\n args: JSON.stringify(args),\n });\n}\n\ntype Listener<T = any> = (payload: T) => void;\n\nconst listeners = new Map<string, Set<Listener>>();\n\n/**\n * Subscribe to events emitted from the backend\n * @param event - Name of the event to listen for\n * @param cb - Callback function to execute when the event is emitted\n * @returns Unsubscribe function to stop listening to the event\n */\nexport function on<T = any>(event: string, cb: Listener<T>) {\n let set = listeners.get(event);\n if (!set) {\n set = new Set();\n listeners.set(event, set);\n }\n\n set.add(cb);\n\n return () => {\n set!.delete(cb);\n if (set!.size === 0) listeners.delete(event);\n };\n}\n\n/**\n * Subscribe to events emitted from the backend (fires only once)\n * @param event - Name of the event to listen for\n * @param cb - Callback function to execute when the event is emitted\n * @returns Unsubscribe function to stop listening to the event\n */\nexport function once<T = any>(event: string, cb: Listener<T>) {\n const wrappedCallback: Listener<T> = (payload) => {\n cb(payload);\n unsubscribe();\n };\n\n const unsubscribe = on(event, wrappedCallback);\n\n return unsubscribe;\n}\n\nfunction emit<T = any>(event: string, payload: T) {\n const set = listeners.get(event);\n if (!set) return;\n for (const cb of set) cb(payload);\n}\n\nObject.defineProperty(window, \"__emit__\", {\n value: emit,\n writable: false,\n configurable: false,\n});\n\nexport type { InvokeRequest, Listener };\n"
7
7
  ],
8
- "mappings": ";AAKO,SAAS,CAAc,CAAC,EAAqC,CAClE,GAAI,IAAW,MAAQ,OAAO,IAAW,SACvC,MAAO,GAGT,MAAO,sBAAuB,GAAU,OAAO,EAAO,oBAAsB,SAGvE,SAAS,CAAiB,CAAC,EAA4B,CAC5D,MAAU,MAAM,EAAM,kBAAmB,CACvC,MACE,EAAM,yBAA+B,MAAM,6CAA6C,CAC5F,CAAC,EAGI,SAAS,CAAsB,CAAC,EAAgB,CACrD,GAAI,EAAe,CAAM,EACvB,EAAkB,CAAM,EAE1B,OAAO,EAKF,SAAS,CAA6B,CAAC,EAA8C,CAC1F,IAAM,EAAM,OAAe,GAE3B,GAAI,CAAC,EACH,QAAQ,KAAK,kCAAkC,GAAW,EAG5D,MAAO,OAAO,IAAgB,CAC5B,GAAI,CAAC,EACH,MAAU,MAAM,kCAAkC,GAAW,EAG/D,IAAM,EAAS,MAAM,EAAG,CAAI,EAC5B,OAAO,EAAoB,CAAM,GCjCrC,IAAM,EAAU,EAAkC,YAAY,EAwB9D,eAAsB,CAAM,CAAC,EAAsB,EAAY,CAAC,EAAiB,CAC/E,OAAO,EAAQ,CACb,SAAU,EACV,KAAM,KAAK,UAAU,CAAI,CAC3B,CAAC,EAKH,IAAM,EAAY,IAAI,IAQf,SAAS,CAAW,CAAC,EAAe,EAAiB,CAC1D,IAAI,EAAM,EAAU,IAAI,CAAK,EAC7B,GAAI,CAAC,EACH,EAAM,IAAI,IACV,EAAU,IAAI,EAAO,CAAG,EAK1B,OAFA,EAAI,IAAI,CAAE,EAEH,IAAM,CAEX,GADA,EAAK,OAAO,CAAE,EACV,EAAK,OAAS,EAAG,EAAU,OAAO,CAAK,GAUxC,SAAS,CAAa,CAAC,EAAe,EAAiB,CAM5D,IAAM,EAAc,EAAG,EALc,CAAC,IAAY,CAChD,EAAG,CAAO,EACV,EAAY,EAG+B,EAE7C,OAAO,EAGT,SAAS,CAAa,CAAC,EAAe,EAAY,CAChD,IAAM,EAAM,EAAU,IAAI,CAAK,EAC/B,GAAI,CAAC,EAAK,OACV,QAAW,KAAM,EAAK,EAAG,CAAO,EAGlC,OAAO,eAAe,OAAQ,WAAY,CACxC,MAAO,EACP,SAAU,GACV,aAAc,EAChB,CAAC",
9
- "debugId": "4D4982FD20E292DC64756E2164756E21",
8
+ "mappings": "AAKO,SAAS,CAAc,CAAC,EAAqC,CAClE,GAAI,IAAW,MAAQ,OAAO,IAAW,SACvC,MAAO,GAGT,MAAO,sBAAuB,GAAU,OAAO,EAAO,oBAAsB,SAGvE,SAAS,CAAiB,CAAC,EAA4B,CAC5D,MAAU,MAAM,EAAM,kBAAmB,CACvC,MACE,EAAM,yBAA+B,MAAM,6CAA6C,CAC5F,CAAC,EAGI,SAAS,CAAsB,CAAC,EAAgB,CACrD,GAAI,EAAe,CAAM,EACvB,EAAkB,CAAM,EAE1B,OAAO,EAKF,SAAS,CAA6B,CAAC,EAA8C,CAC1F,IAAM,EAAM,OAAe,GAE3B,GAAI,CAAC,EACH,QAAQ,KAAK,kCAAkC,GAAW,EAG5D,MAAO,OAAO,IAAgB,CAC5B,GAAI,CAAC,EACH,MAAU,MAAM,kCAAkC,GAAW,EAG/D,IAAM,EAAS,MAAM,EAAG,CAAI,EAC5B,OAAO,EAAoB,CAAM,GCjCrC,IAAM,EAAU,EAAkC,YAAY,EAwB9D,eAAsB,CAAM,CAAC,EAAsB,EAAY,CAAC,EAAiB,CAC/E,OAAO,EAAQ,CACb,SAAU,EACV,KAAM,KAAK,UAAU,CAAI,CAC3B,CAAC,EAKH,IAAM,EAAY,IAAI,IAQf,SAAS,CAAW,CAAC,EAAe,EAAiB,CAC1D,IAAI,EAAM,EAAU,IAAI,CAAK,EAC7B,GAAI,CAAC,EACH,EAAM,IAAI,IACV,EAAU,IAAI,EAAO,CAAG,EAK1B,OAFA,EAAI,IAAI,CAAE,EAEH,IAAM,CAEX,GADA,EAAK,OAAO,CAAE,EACV,EAAK,OAAS,EAAG,EAAU,OAAO,CAAK,GAUxC,SAAS,CAAa,CAAC,EAAe,EAAiB,CAM5D,IAAM,EAAc,EAAG,EALc,CAAC,IAAY,CAChD,EAAG,CAAO,EACV,EAAY,EAG+B,EAE7C,OAAO,EAGT,SAAS,CAAa,CAAC,EAAe,EAAY,CAChD,IAAM,EAAM,EAAU,IAAI,CAAK,EAC/B,GAAI,CAAC,EAAK,OACV,QAAW,KAAM,EAAK,EAAG,CAAO,EAGlC,OAAO,eAAe,OAAQ,WAAY,CACxC,MAAO,EACP,SAAU,GACV,aAAc,EAChB,CAAC",
9
+ "debugId": "2CDF8B8659B713EC64756E2164756E21",
10
10
  "names": []
11
11
  }
@@ -0,0 +1,4 @@
1
+ var{defineProperty:s,getOwnPropertyNames:a,getOwnPropertyDescriptor:g}=Object,_=Object.prototype.hasOwnProperty;var o=new WeakMap,c=(r)=>{var n=o.get(r),e;if(n)return n;if(n=s({},"__esModule",{value:!0}),r&&typeof r==="object"||typeof r==="function")a(r).map((t)=>!_.call(n,t)&&s(n,t,{get:()=>r[t],enumerable:!(e=g(r,t))||e.enumerable}));return o.set(r,n),n};var p=(r,n)=>{for(var e in n)s(r,e,{get:n[e],enumerable:!0,configurable:!0,set:(t)=>n[e]=()=>t})};var w={};p(w,{bcrypt:()=>m,argon2:()=>B});module.exports=c(w);function y(r){if(r===null||typeof r!=="object")return!1;return"__archangel_error"in r&&typeof r.__archangel_error==="string"}function u(r){throw Error(r.__archangel_error,{cause:r.__archangel_error_trace??Error("Error trace only available in debug builds.")})}function h(r){if(y(r))u(r);return r}function i(r){let n=window[r];if(!n)console.warn(`Backend binding not available: ${r}`);return async(e)=>{if(!n)throw Error(`Backend binding not available: ${r}`);let t=await n(e);return h(t)}}var l=i("__plugin_crypto_pwhash_argon2__"),d=i("__plugin_crypto_pwhash_argon2_verify__"),f=i("__plugin_crypto_pwhash_bcrypt__"),b=i("__plugin_crypto_pwhash_bcrypt_verify__"),B={hash:(r,n)=>l({password:r,...n}),verify:(r,n)=>d({password:r,hash:n})},m={hash:(r,n)=>f({password:r,rounds:n}),verify:(r,n)=>b({password:r,hash:n})};
2
+
3
+ //# debugId=0DDF47BE501A607764756E2164756E21
4
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,11 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["..\\src\\internal\\binding.ts", "..\\src\\plugins\\crypto\\pwhash\\index.ts"],
4
+ "sourcesContent": [
5
+ "export interface BindingError {\n __archangel_error: string;\n __archangel_error_trace?: string;\n}\n\nexport function isBindingError(result: any): result is BindingError {\n if (result === null || typeof result !== \"object\") {\n return false;\n }\n\n return \"__archangel_error\" in result && typeof result.__archangel_error === \"string\";\n}\n\nexport function throwBindingError(error: BindingError): never {\n throw new Error(error.__archangel_error, {\n cause:\n error.__archangel_error_trace ?? new Error(\"Error trace only available in debug builds.\"),\n });\n}\n\nexport function handleBindingResult<T>(result: any): T {\n if (isBindingError(result)) {\n throwBindingError(result);\n }\n return result as T;\n}\n\ntype BindingFn<TArgs = any, TResult = any> = (args: TArgs) => Promise<TResult>;\n\nexport function createBinding<TArgs, TResult>(windowKey: string): BindingFn<TArgs, TResult> {\n const fn = (window as any)[windowKey];\n\n if (!fn) {\n console.warn(`Backend binding not available: ${windowKey}`);\n }\n\n return async (args: TArgs) => {\n if (!fn) {\n throw new Error(`Backend binding not available: ${windowKey}`);\n }\n\n const result = await fn(args);\n return handleBindingResult(result);\n };\n}\n",
6
+ "import { createBinding } from \"../../../internal/binding\";\n\nexport type Argon2HashRequest = {\n time_cost?: number;\n memory_cost?: number;\n parallelism?: number;\n};\n\ntype Argon2VerifyRequest = {\n password: string;\n hash: string;\n};\n\ntype BcryptHashRequest = {\n password: string;\n rounds?: number;\n};\n\ntype BcryptVerifyRequest = {\n password: string;\n hash: string;\n};\n\nconst argon2HashBinding = createBinding<Argon2HashRequest & { password: string }, string>(\n \"__plugin_crypto_pwhash_argon2__\",\n);\nconst argon2VerifyBinding = createBinding<Argon2VerifyRequest, boolean>(\n \"__plugin_crypto_pwhash_argon2_verify__\",\n);\nconst bcryptHashBinding = createBinding<BcryptHashRequest, string>(\n \"__plugin_crypto_pwhash_bcrypt__\",\n);\nconst bcryptVerifyBinding = createBinding<BcryptVerifyRequest, boolean>(\n \"__plugin_crypto_pwhash_bcrypt_verify__\",\n);\n\nexport const argon2 = {\n hash: (password: string, options?: Argon2HashRequest): Promise<string> =>\n argon2HashBinding({ password: password, ...options }),\n verify: (password: string, hash: string): Promise<boolean> =>\n argon2VerifyBinding({ password, hash }),\n};\n\nexport const bcrypt = {\n hash: (password: string, rounds?: number): Promise<string> =>\n bcryptHashBinding({ password, rounds }),\n verify: (password: string, hash: string): Promise<boolean> =>\n bcryptVerifyBinding({ password, hash }),\n};\n"
7
+ ],
8
+ "mappings": "ugBAKO,SAAS,CAAc,CAAC,EAAqC,CAClE,GAAI,IAAW,MAAQ,OAAO,IAAW,SACvC,MAAO,GAGT,MAAO,sBAAuB,GAAU,OAAO,EAAO,oBAAsB,SAGvE,SAAS,CAAiB,CAAC,EAA4B,CAC5D,MAAU,MAAM,EAAM,kBAAmB,CACvC,MACE,EAAM,yBAA+B,MAAM,6CAA6C,CAC5F,CAAC,EAGI,SAAS,CAAsB,CAAC,EAAgB,CACrD,GAAI,EAAe,CAAM,EACvB,EAAkB,CAAM,EAE1B,OAAO,EAKF,SAAS,CAA6B,CAAC,EAA8C,CAC1F,IAAM,EAAM,OAAe,GAE3B,GAAI,CAAC,EACH,QAAQ,KAAK,kCAAkC,GAAW,EAG5D,MAAO,OAAO,IAAgB,CAC5B,GAAI,CAAC,EACH,MAAU,MAAM,kCAAkC,GAAW,EAG/D,IAAM,EAAS,MAAM,EAAG,CAAI,EAC5B,OAAO,EAAoB,CAAM,GCnBrC,IAAM,EAAoB,EACxB,iCACF,EACM,EAAsB,EAC1B,wCACF,EACM,EAAoB,EACxB,iCACF,EACM,EAAsB,EAC1B,wCACF,EAEa,EAAS,CACpB,KAAM,CAAC,EAAkB,IACvB,EAAkB,CAAE,SAAU,KAAa,CAAQ,CAAC,EACtD,OAAQ,CAAC,EAAkB,IACzB,EAAoB,CAAE,WAAU,MAAK,CAAC,CAC1C,EAEa,EAAS,CACpB,KAAM,CAAC,EAAkB,IACvB,EAAkB,CAAE,WAAU,QAAO,CAAC,EACxC,OAAQ,CAAC,EAAkB,IACzB,EAAoB,CAAE,WAAU,MAAK,CAAC,CAC1C",
9
+ "debugId": "0DDF47BE501A607764756E2164756E21",
10
+ "names": []
11
+ }
@@ -0,0 +1,13 @@
1
+ export type Argon2HashRequest = {
2
+ time_cost?: number;
3
+ memory_cost?: number;
4
+ parallelism?: number;
5
+ };
6
+ export declare const argon2: {
7
+ hash: (password: string, options?: Argon2HashRequest) => Promise<string>;
8
+ verify: (password: string, hash: string) => Promise<boolean>;
9
+ };
10
+ export declare const bcrypt: {
11
+ hash: (password: string, rounds?: number) => Promise<string>;
12
+ verify: (password: string, hash: string) => Promise<boolean>;
13
+ };
@@ -0,0 +1,4 @@
1
+ function s(r){if(r===null||typeof r!=="object")return!1;return"__archangel_error"in r&&typeof r.__archangel_error==="string"}function o(r){throw Error(r.__archangel_error,{cause:r.__archangel_error_trace??Error("Error trace only available in debug builds.")})}function a(r){if(s(r))o(r);return r}function e(r){let n=window[r];if(!n)console.warn(`Backend binding not available: ${r}`);return async(t)=>{if(!n)throw Error(`Backend binding not available: ${r}`);let i=await n(t);return a(i)}}var g=e("__plugin_crypto_pwhash_argon2__"),_=e("__plugin_crypto_pwhash_argon2_verify__"),c=e("__plugin_crypto_pwhash_bcrypt__"),p=e("__plugin_crypto_pwhash_bcrypt_verify__"),h={hash:(r,n)=>g({password:r,...n}),verify:(r,n)=>_({password:r,hash:n})},l={hash:(r,n)=>c({password:r,rounds:n}),verify:(r,n)=>p({password:r,hash:n})};export{l as bcrypt,h as argon2};
2
+
3
+ //# debugId=047B5CA8031806AE64756E2164756E21
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,11 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["..\\src\\internal\\binding.ts", "..\\src\\plugins\\crypto\\pwhash\\index.ts"],
4
+ "sourcesContent": [
5
+ "export interface BindingError {\n __archangel_error: string;\n __archangel_error_trace?: string;\n}\n\nexport function isBindingError(result: any): result is BindingError {\n if (result === null || typeof result !== \"object\") {\n return false;\n }\n\n return \"__archangel_error\" in result && typeof result.__archangel_error === \"string\";\n}\n\nexport function throwBindingError(error: BindingError): never {\n throw new Error(error.__archangel_error, {\n cause:\n error.__archangel_error_trace ?? new Error(\"Error trace only available in debug builds.\"),\n });\n}\n\nexport function handleBindingResult<T>(result: any): T {\n if (isBindingError(result)) {\n throwBindingError(result);\n }\n return result as T;\n}\n\ntype BindingFn<TArgs = any, TResult = any> = (args: TArgs) => Promise<TResult>;\n\nexport function createBinding<TArgs, TResult>(windowKey: string): BindingFn<TArgs, TResult> {\n const fn = (window as any)[windowKey];\n\n if (!fn) {\n console.warn(`Backend binding not available: ${windowKey}`);\n }\n\n return async (args: TArgs) => {\n if (!fn) {\n throw new Error(`Backend binding not available: ${windowKey}`);\n }\n\n const result = await fn(args);\n return handleBindingResult(result);\n };\n}\n",
6
+ "import { createBinding } from \"../../../internal/binding\";\n\nexport type Argon2HashRequest = {\n time_cost?: number;\n memory_cost?: number;\n parallelism?: number;\n};\n\ntype Argon2VerifyRequest = {\n password: string;\n hash: string;\n};\n\ntype BcryptHashRequest = {\n password: string;\n rounds?: number;\n};\n\ntype BcryptVerifyRequest = {\n password: string;\n hash: string;\n};\n\nconst argon2HashBinding = createBinding<Argon2HashRequest & { password: string }, string>(\n \"__plugin_crypto_pwhash_argon2__\",\n);\nconst argon2VerifyBinding = createBinding<Argon2VerifyRequest, boolean>(\n \"__plugin_crypto_pwhash_argon2_verify__\",\n);\nconst bcryptHashBinding = createBinding<BcryptHashRequest, string>(\n \"__plugin_crypto_pwhash_bcrypt__\",\n);\nconst bcryptVerifyBinding = createBinding<BcryptVerifyRequest, boolean>(\n \"__plugin_crypto_pwhash_bcrypt_verify__\",\n);\n\nexport const argon2 = {\n hash: (password: string, options?: Argon2HashRequest): Promise<string> =>\n argon2HashBinding({ password: password, ...options }),\n verify: (password: string, hash: string): Promise<boolean> =>\n argon2VerifyBinding({ password, hash }),\n};\n\nexport const bcrypt = {\n hash: (password: string, rounds?: number): Promise<string> =>\n bcryptHashBinding({ password, rounds }),\n verify: (password: string, hash: string): Promise<boolean> =>\n bcryptVerifyBinding({ password, hash }),\n};\n"
7
+ ],
8
+ "mappings": "AAKO,SAAS,CAAc,CAAC,EAAqC,CAClE,GAAI,IAAW,MAAQ,OAAO,IAAW,SACvC,MAAO,GAGT,MAAO,sBAAuB,GAAU,OAAO,EAAO,oBAAsB,SAGvE,SAAS,CAAiB,CAAC,EAA4B,CAC5D,MAAU,MAAM,EAAM,kBAAmB,CACvC,MACE,EAAM,yBAA+B,MAAM,6CAA6C,CAC5F,CAAC,EAGI,SAAS,CAAsB,CAAC,EAAgB,CACrD,GAAI,EAAe,CAAM,EACvB,EAAkB,CAAM,EAE1B,OAAO,EAKF,SAAS,CAA6B,CAAC,EAA8C,CAC1F,IAAM,EAAM,OAAe,GAE3B,GAAI,CAAC,EACH,QAAQ,KAAK,kCAAkC,GAAW,EAG5D,MAAO,OAAO,IAAgB,CAC5B,GAAI,CAAC,EACH,MAAU,MAAM,kCAAkC,GAAW,EAG/D,IAAM,EAAS,MAAM,EAAG,CAAI,EAC5B,OAAO,EAAoB,CAAM,GCnBrC,IAAM,EAAoB,EACxB,iCACF,EACM,EAAsB,EAC1B,wCACF,EACM,EAAoB,EACxB,iCACF,EACM,EAAsB,EAC1B,wCACF,EAEa,EAAS,CACpB,KAAM,CAAC,EAAkB,IACvB,EAAkB,CAAE,SAAU,KAAa,CAAQ,CAAC,EACtD,OAAQ,CAAC,EAAkB,IACzB,EAAoB,CAAE,WAAU,MAAK,CAAC,CAC1C,EAEa,EAAS,CACpB,KAAM,CAAC,EAAkB,IACvB,EAAkB,CAAE,WAAU,QAAO,CAAC,EACxC,OAAQ,CAAC,EAAkB,IACzB,EAAoB,CAAE,WAAU,MAAK,CAAC,CAC1C",
9
+ "debugId": "047B5CA8031806AE64756E2164756E21",
10
+ "names": []
11
+ }
@@ -1,5 +1,4 @@
1
- // @bun @bun-cjs
2
- (function(exports, require, module, __filename, __dirname) {var{defineProperty:g,getOwnPropertyNames:t,getOwnPropertyDescriptor:l}=Object,c=Object.prototype.hasOwnProperty;var _=new WeakMap,s=(r)=>{var n=_.get(r),o;if(n)return n;if(n=g({},"__esModule",{value:!0}),r&&typeof r==="object"||typeof r==="function")t(r).map((e)=>!c.call(n,e)&&g(n,e,{get:()=>r[e],enumerable:!(o=l(r,e))||o.enumerable}));return _.set(r,n),n};var u=(r,n)=>{for(var o in n)g(r,o,{get:n[o],enumerable:!0,configurable:!0,set:(e)=>n[o]=()=>e})};var b={};u(b,{statFile:()=>B,readFile:()=>E,readDir:()=>h,deleteFile:()=>y});module.exports=s(b);function T(r){if(r===null||typeof r!=="object")return!1;return"__archangel_error"in r&&typeof r.__archangel_error==="string"}function f(r){throw Error(r.__archangel_error,{cause:r.__archangel_error_trace??Error("Error trace only available in debug builds.")})}function i(r){if(T(r))f(r);return r}function a(r){let n=window[r];if(!n)console.warn(`Backend binding not available: ${r}`);return async(o)=>{if(!n)throw Error(`Backend binding not available: ${r}`);let e=await n(o);return i(e)}}var E=a("__plugin_fs_read_file__"),h=a("__plugin_fs_read_dir__"),y=a("__plugin_fs_delete_file__"),B=a("__plugin_fs_stat_file__");})
1
+ var{defineProperty:l,getOwnPropertyNames:u,getOwnPropertyDescriptor:g}=Object,T=Object.prototype.hasOwnProperty;var s=new WeakMap,c=(r)=>{var o=s.get(r),_;if(o)return o;if(o=l({},"__esModule",{value:!0}),r&&typeof r==="object"||typeof r==="function")u(r).map((a)=>!T.call(o,a)&&l(o,a,{get:()=>r[a],enumerable:!(_=g(r,a))||_.enumerable}));return s.set(r,o),o};var e=(r,o)=>{for(var _ in o)l(r,_,{get:o[_],enumerable:!0,configurable:!0,set:(a)=>o[_]=()=>a})};var C={};e(C,{statFile:()=>x,resolve:()=>v,relative:()=>z,readFile:()=>b,readDir:()=>w,join:()=>$,isAbsolute:()=>k,dirname:()=>R,deleteFile:()=>t,basename:()=>A});module.exports=c(C);function f(r){if(r===null||typeof r!=="object")return!1;return"__archangel_error"in r&&typeof r.__archangel_error==="string"}function E(r){throw Error(r.__archangel_error,{cause:r.__archangel_error_trace??Error("Error trace only available in debug builds.")})}function y(r){if(f(r))E(r);return r}function n(r){let o=window[r];if(!o)console.warn(`Backend binding not available: ${r}`);return async(_)=>{if(!o)throw Error(`Backend binding not available: ${r}`);let a=await o(_);return y(a)}}var b=n("__plugin_fs_read_file__"),w=n("__plugin_fs_read_dir__"),t=n("__plugin_fs_delete_file__"),x=n("__plugin_fs_stat_file__"),A=n("__plugin_fs_basename__"),R=n("__plugin_fs_dirname__"),k=n("__plugin_fs_is_absolute__"),F=n("__plugin_fs_join__"),$=(...r)=>{return F({paths:r})},q=n("__plugin_fs_resolve__"),v=(...r)=>{return q({paths:r})},z=n("__plugin_fs_relative__");
3
2
 
4
- //# debugId=DB4179FB3D66BAFA64756E2164756E21
3
+ //# debugId=EC77E2ADFCD6E72264756E2164756E21
5
4
  //# sourceMappingURL=index.cjs.map
@@ -3,9 +3,9 @@
3
3
  "sources": ["..\\src\\internal\\binding.ts", "..\\src\\plugins\\fs\\index.ts"],
4
4
  "sourcesContent": [
5
5
  "export interface BindingError {\n __archangel_error: string;\n __archangel_error_trace?: string;\n}\n\nexport function isBindingError(result: any): result is BindingError {\n if (result === null || typeof result !== \"object\") {\n return false;\n }\n\n return \"__archangel_error\" in result && typeof result.__archangel_error === \"string\";\n}\n\nexport function throwBindingError(error: BindingError): never {\n throw new Error(error.__archangel_error, {\n cause:\n error.__archangel_error_trace ?? new Error(\"Error trace only available in debug builds.\"),\n });\n}\n\nexport function handleBindingResult<T>(result: any): T {\n if (isBindingError(result)) {\n throwBindingError(result);\n }\n return result as T;\n}\n\ntype BindingFn<TArgs = any, TResult = any> = (args: TArgs) => Promise<TResult>;\n\nexport function createBinding<TArgs, TResult>(windowKey: string): BindingFn<TArgs, TResult> {\n const fn = (window as any)[windowKey];\n\n if (!fn) {\n console.warn(`Backend binding not available: ${windowKey}`);\n }\n\n return async (args: TArgs) => {\n if (!fn) {\n throw new Error(`Backend binding not available: ${windowKey}`);\n }\n\n const result = await fn(args);\n return handleBindingResult(result);\n };\n}\n",
6
- "import { createBinding } from \"../../internal/binding\";\n\ntype ReadFileRequest = {\n path: string;\n};\n\ntype DeleteFileRequest = {\n path: string;\n};\n\ntype StatFileRequest = {\n path: string;\n};\n\ntype ReadDirRequest = {\n path: string;\n recursive?: boolean;\n};\n\ntype DirEntry = {\n name: string;\n kind: Kind;\n};\n\ntype StatFileResponse = {\n kind: Kind;\n size: number;\n last_access: number;\n last_modified: number;\n last_metadata_change: number;\n};\n\nenum Kind {\n BLOCK_DEVICE = \"block_device\",\n CHARACTER_DEVICE = \"character_device\",\n DIRECTORY = \"directory\",\n NAMED_PIPE = \"named_pipe\",\n SYM_LINK = \"sym_link\",\n FILE = \"file\",\n UNIX_DOMAIN_SOCKET = \"unix_domain_socket\",\n WHITEOUT = \"whiteout\",\n DOOR = \"door\",\n EVENT_PORT = \"event_port\",\n UNKNOWN = \"unknown\",\n}\n\n/**\n * Read the contents of a file\n * @param args - Object containing the file path\n * @returns Promise resolving to the file contents as a string\n */\nexport const readFile = createBinding<ReadFileRequest, string>(\"__plugin_fs_read_file__\");\n\n/**\n * Read the contents of a directory\n * @param args - Object containing the directory path and optional recursive flag\n * @returns Promise resolving to an array of directory entries\n */\nexport const readDir = createBinding<ReadDirRequest, DirEntry[]>(\"__plugin_fs_read_dir__\");\n\n/**\n * Delete a file\n * @param args - Object containing the file path\n * @returns Promise resolving when the file is deleted\n */\nexport const deleteFile = createBinding<DeleteFileRequest, void>(\"__plugin_fs_delete_file__\");\n\n/**\n * Get file metadata and statistics\n * @param args - Object containing the file path\n * @returns Promise resolving to file statistics\n */\nexport const statFile = createBinding<StatFileRequest, StatFileResponse>(\"__plugin_fs_stat_file__\");\n"
6
+ "import { createBinding } from \"../../internal/binding\";\n\ntype ReadFileRequest = {\n path: string;\n};\n\ntype DeleteFileRequest = {\n path: string;\n};\n\ntype StatFileRequest = {\n path: string;\n};\n\ntype ReadDirRequest = {\n path: string;\n recursive?: boolean;\n};\n\ntype DirEntry = {\n name: string;\n kind: Kind;\n};\n\ntype StatFileResponse = {\n kind: Kind;\n size: number;\n last_access: number;\n last_modified: number;\n last_metadata_change: number;\n};\n\nenum Kind {\n BLOCK_DEVICE = \"block_device\",\n CHARACTER_DEVICE = \"character_device\",\n DIRECTORY = \"directory\",\n NAMED_PIPE = \"named_pipe\",\n SYM_LINK = \"sym_link\",\n FILE = \"file\",\n UNIX_DOMAIN_SOCKET = \"unix_domain_socket\",\n WHITEOUT = \"whiteout\",\n DOOR = \"door\",\n EVENT_PORT = \"event_port\",\n UNKNOWN = \"unknown\",\n}\n\n/**\n * Read the contents of a file\n * @param args - Object containing the file path\n * @returns Promise resolving to the file contents as a string\n */\nexport const readFile = createBinding<ReadFileRequest, string>(\"__plugin_fs_read_file__\");\n\n/**\n * Read the contents of a directory\n * @param args - Object containing the directory path and optional recursive flag\n * @returns Promise resolving to an array of directory entries\n */\nexport const readDir = createBinding<ReadDirRequest, DirEntry[]>(\"__plugin_fs_read_dir__\");\n\n/**\n * Delete a file\n * @param args - Object containing the file path\n * @returns Promise resolving when the file is deleted\n */\nexport const deleteFile = createBinding<DeleteFileRequest, void>(\"__plugin_fs_delete_file__\");\n\n/**\n * Get file metadata and statistics\n * @param args - Object containing the file path\n * @returns Promise resolving to file statistics\n */\nexport const statFile = createBinding<StatFileRequest, StatFileResponse>(\"__plugin_fs_stat_file__\");\n\n/**\n * Get the base name of a path\n * @param path - The file path\n * @returns Promise resolving to the base name\n */\nexport const basename = createBinding<string, string>(\"__plugin_fs_basename__\");\n\n/**\n * Get the directory name of a path\n * @param path - The file path\n * @returns Promise resolving to the directory name, or null if there is no directory\n */\nexport const dirname = createBinding<string, string | null>(\"__plugin_fs_dirname__\");\n\n/**\n * Check if a path is absolute\n * @param path - The file path\n * @returns Promise resolving to true if the path is absolute, false otherwise\n */\nexport const isAbsolute = createBinding<string, boolean>(\"__plugin_fs_is_absolute__\");\n\ntype JoinRequest = {\n paths: string[];\n};\n\nconst joinBinding = createBinding<JoinRequest, string>(\"__plugin_fs_join__\");\n\n/**\n * Join multiple path segments\n * @param paths - Path segments to join\n * @returns Promise resolving to the joined path\n */\nexport const join = (...paths: string[]): Promise<string> => {\n return joinBinding({ paths });\n};\n\ntype ResolveRequest = {\n paths: string[];\n};\n\nconst resolveBinding = createBinding<ResolveRequest, string>(\"__plugin_fs_resolve__\");\n\n/**\n * Resolve a sequence of paths to an absolute path\n * @param paths - Path segments to resolve\n * @returns Promise resolving to the absolute path\n */\nexport const resolve = (...paths: string[]): Promise<string> => {\n return resolveBinding({ paths });\n};\n\ntype RelativeRequest = {\n from: string;\n to: string;\n};\n\n/**\n * Get the relative path from one path to another\n * @param args - Object containing the from and to paths\n * @returns Promise resolving to the relative path\n */\nexport const relative = createBinding<RelativeRequest, string>(\"__plugin_fs_relative__\");\n"
7
7
  ],
8
- "mappings": ";smBAKO,SAAS,CAAc,CAAC,EAAqC,CAClE,GAAI,IAAW,MAAQ,OAAO,IAAW,SACvC,MAAO,GAGT,MAAO,sBAAuB,GAAU,OAAO,EAAO,oBAAsB,SAGvE,SAAS,CAAiB,CAAC,EAA4B,CAC5D,MAAU,MAAM,EAAM,kBAAmB,CACvC,MACE,EAAM,yBAA+B,MAAM,6CAA6C,CAC5F,CAAC,EAGI,SAAS,CAAsB,CAAC,EAAgB,CACrD,GAAI,EAAe,CAAM,EACvB,EAAkB,CAAM,EAE1B,OAAO,EAKF,SAAS,CAA6B,CAAC,EAA8C,CAC1F,IAAM,EAAM,OAAe,GAE3B,GAAI,CAAC,EACH,QAAQ,KAAK,kCAAkC,GAAW,EAG5D,MAAO,OAAO,IAAgB,CAC5B,GAAI,CAAC,EACH,MAAU,MAAM,kCAAkC,GAAW,EAG/D,IAAM,EAAS,MAAM,EAAG,CAAI,EAC5B,OAAO,EAAoB,CAAM,GCS9B,IAAM,EAAW,EAAuC,yBAAyB,EAO3E,EAAU,EAA0C,wBAAwB,EAO5E,EAAa,EAAuC,2BAA2B,EAO/E,EAAW,EAAiD,yBAAyB",
9
- "debugId": "DB4179FB3D66BAFA64756E2164756E21",
8
+ "mappings": "goBAKO,SAAS,CAAc,CAAC,EAAqC,CAClE,GAAI,IAAW,MAAQ,OAAO,IAAW,SACvC,MAAO,GAGT,MAAO,sBAAuB,GAAU,OAAO,EAAO,oBAAsB,SAGvE,SAAS,CAAiB,CAAC,EAA4B,CAC5D,MAAU,MAAM,EAAM,kBAAmB,CACvC,MACE,EAAM,yBAA+B,MAAM,6CAA6C,CAC5F,CAAC,EAGI,SAAS,CAAsB,CAAC,EAAgB,CACrD,GAAI,EAAe,CAAM,EACvB,EAAkB,CAAM,EAE1B,OAAO,EAKF,SAAS,CAA6B,CAAC,EAA8C,CAC1F,IAAM,EAAM,OAAe,GAE3B,GAAI,CAAC,EACH,QAAQ,KAAK,kCAAkC,GAAW,EAG5D,MAAO,OAAO,IAAgB,CAC5B,GAAI,CAAC,EACH,MAAU,MAAM,kCAAkC,GAAW,EAG/D,IAAM,EAAS,MAAM,EAAG,CAAI,EAC5B,OAAO,EAAoB,CAAM,GCS9B,IAAM,EAAW,EAAuC,yBAAyB,EAO3E,EAAU,EAA0C,wBAAwB,EAO5E,EAAa,EAAuC,2BAA2B,EAO/E,EAAW,EAAiD,yBAAyB,EAOrF,EAAW,EAA8B,wBAAwB,EAOjE,EAAU,EAAqC,uBAAuB,EAOtE,EAAa,EAA+B,2BAA2B,EAM9E,EAAc,EAAmC,oBAAoB,EAO9D,EAAO,IAAI,IAAqC,CAC3D,OAAO,EAAY,CAAE,OAAM,CAAC,GAOxB,EAAiB,EAAsC,uBAAuB,EAOvE,EAAU,IAAI,IAAqC,CAC9D,OAAO,EAAe,CAAE,OAAM,CAAC,GAapB,EAAW,EAAuC,wBAAwB",
9
+ "debugId": "EC77E2ADFCD6E72264756E2164756E21",
10
10
  "names": []
11
11
  }
@@ -59,4 +59,44 @@ export declare const deleteFile: (args: DeleteFileRequest) => Promise<void>;
59
59
  * @returns Promise resolving to file statistics
60
60
  */
61
61
  export declare const statFile: (args: StatFileRequest) => Promise<StatFileResponse>;
62
+ /**
63
+ * Get the base name of a path
64
+ * @param path - The file path
65
+ * @returns Promise resolving to the base name
66
+ */
67
+ export declare const basename: (args: string) => Promise<string>;
68
+ /**
69
+ * Get the directory name of a path
70
+ * @param path - The file path
71
+ * @returns Promise resolving to the directory name, or null if there is no directory
72
+ */
73
+ export declare const dirname: (args: string) => Promise<string | null>;
74
+ /**
75
+ * Check if a path is absolute
76
+ * @param path - The file path
77
+ * @returns Promise resolving to true if the path is absolute, false otherwise
78
+ */
79
+ export declare const isAbsolute: (args: string) => Promise<boolean>;
80
+ /**
81
+ * Join multiple path segments
82
+ * @param paths - Path segments to join
83
+ * @returns Promise resolving to the joined path
84
+ */
85
+ export declare const join: (...paths: string[]) => Promise<string>;
86
+ /**
87
+ * Resolve a sequence of paths to an absolute path
88
+ * @param paths - Path segments to resolve
89
+ * @returns Promise resolving to the absolute path
90
+ */
91
+ export declare const resolve: (...paths: string[]) => Promise<string>;
92
+ type RelativeRequest = {
93
+ from: string;
94
+ to: string;
95
+ };
96
+ /**
97
+ * Get the relative path from one path to another
98
+ * @param args - Object containing the from and to paths
99
+ * @returns Promise resolving to the relative path
100
+ */
101
+ export declare const relative: (args: RelativeRequest) => Promise<string>;
62
102
  export {};
@@ -1,5 +1,4 @@
1
- // @bun
2
- function g(r){if(r===null||typeof r!=="object")return!1;return"__archangel_error"in r&&typeof r.__archangel_error==="string"}function _(r){throw Error(r.__archangel_error,{cause:r.__archangel_error_trace??Error("Error trace only available in debug builds.")})}function t(r){if(g(r))_(r);return r}function n(r){let o=window[r];if(!o)console.warn(`Backend binding not available: ${r}`);return async(e)=>{if(!o)throw Error(`Backend binding not available: ${r}`);let a=await o(e);return t(a)}}var s=n("__plugin_fs_read_file__"),u=n("__plugin_fs_read_dir__"),T=n("__plugin_fs_delete_file__"),f=n("__plugin_fs_stat_file__");export{f as statFile,s as readFile,u as readDir,T as deleteFile};
1
+ function l(r){if(r===null||typeof r!=="object")return!1;return"__archangel_error"in r&&typeof r.__archangel_error==="string"}function s(r){throw Error(r.__archangel_error,{cause:r.__archangel_error_trace??Error("Error trace only available in debug builds.")})}function u(r){if(l(r))s(r);return r}function o(r){let n=window[r];if(!n)console.warn(`Backend binding not available: ${r}`);return async(_)=>{if(!n)throw Error(`Backend binding not available: ${r}`);let a=await n(_);return u(a)}}var f=o("__plugin_fs_read_file__"),E=o("__plugin_fs_read_dir__"),y=o("__plugin_fs_delete_file__"),b=o("__plugin_fs_stat_file__"),w=o("__plugin_fs_basename__"),t=o("__plugin_fs_dirname__"),x=o("__plugin_fs_is_absolute__"),g=o("__plugin_fs_join__"),A=(...r)=>{return g({paths:r})},T=o("__plugin_fs_resolve__"),R=(...r)=>{return T({paths:r})},k=o("__plugin_fs_relative__");export{b as statFile,R as resolve,k as relative,f as readFile,E as readDir,A as join,x as isAbsolute,t as dirname,y as deleteFile,w as basename};
3
2
 
4
- //# debugId=34CF230C3C49051164756E2164756E21
3
+ //# debugId=D9E7F45814EF91E664756E2164756E21
5
4
  //# sourceMappingURL=index.js.map
@@ -3,9 +3,9 @@
3
3
  "sources": ["..\\src\\internal\\binding.ts", "..\\src\\plugins\\fs\\index.ts"],
4
4
  "sourcesContent": [
5
5
  "export interface BindingError {\n __archangel_error: string;\n __archangel_error_trace?: string;\n}\n\nexport function isBindingError(result: any): result is BindingError {\n if (result === null || typeof result !== \"object\") {\n return false;\n }\n\n return \"__archangel_error\" in result && typeof result.__archangel_error === \"string\";\n}\n\nexport function throwBindingError(error: BindingError): never {\n throw new Error(error.__archangel_error, {\n cause:\n error.__archangel_error_trace ?? new Error(\"Error trace only available in debug builds.\"),\n });\n}\n\nexport function handleBindingResult<T>(result: any): T {\n if (isBindingError(result)) {\n throwBindingError(result);\n }\n return result as T;\n}\n\ntype BindingFn<TArgs = any, TResult = any> = (args: TArgs) => Promise<TResult>;\n\nexport function createBinding<TArgs, TResult>(windowKey: string): BindingFn<TArgs, TResult> {\n const fn = (window as any)[windowKey];\n\n if (!fn) {\n console.warn(`Backend binding not available: ${windowKey}`);\n }\n\n return async (args: TArgs) => {\n if (!fn) {\n throw new Error(`Backend binding not available: ${windowKey}`);\n }\n\n const result = await fn(args);\n return handleBindingResult(result);\n };\n}\n",
6
- "import { createBinding } from \"../../internal/binding\";\n\ntype ReadFileRequest = {\n path: string;\n};\n\ntype DeleteFileRequest = {\n path: string;\n};\n\ntype StatFileRequest = {\n path: string;\n};\n\ntype ReadDirRequest = {\n path: string;\n recursive?: boolean;\n};\n\ntype DirEntry = {\n name: string;\n kind: Kind;\n};\n\ntype StatFileResponse = {\n kind: Kind;\n size: number;\n last_access: number;\n last_modified: number;\n last_metadata_change: number;\n};\n\nenum Kind {\n BLOCK_DEVICE = \"block_device\",\n CHARACTER_DEVICE = \"character_device\",\n DIRECTORY = \"directory\",\n NAMED_PIPE = \"named_pipe\",\n SYM_LINK = \"sym_link\",\n FILE = \"file\",\n UNIX_DOMAIN_SOCKET = \"unix_domain_socket\",\n WHITEOUT = \"whiteout\",\n DOOR = \"door\",\n EVENT_PORT = \"event_port\",\n UNKNOWN = \"unknown\",\n}\n\n/**\n * Read the contents of a file\n * @param args - Object containing the file path\n * @returns Promise resolving to the file contents as a string\n */\nexport const readFile = createBinding<ReadFileRequest, string>(\"__plugin_fs_read_file__\");\n\n/**\n * Read the contents of a directory\n * @param args - Object containing the directory path and optional recursive flag\n * @returns Promise resolving to an array of directory entries\n */\nexport const readDir = createBinding<ReadDirRequest, DirEntry[]>(\"__plugin_fs_read_dir__\");\n\n/**\n * Delete a file\n * @param args - Object containing the file path\n * @returns Promise resolving when the file is deleted\n */\nexport const deleteFile = createBinding<DeleteFileRequest, void>(\"__plugin_fs_delete_file__\");\n\n/**\n * Get file metadata and statistics\n * @param args - Object containing the file path\n * @returns Promise resolving to file statistics\n */\nexport const statFile = createBinding<StatFileRequest, StatFileResponse>(\"__plugin_fs_stat_file__\");\n"
6
+ "import { createBinding } from \"../../internal/binding\";\n\ntype ReadFileRequest = {\n path: string;\n};\n\ntype DeleteFileRequest = {\n path: string;\n};\n\ntype StatFileRequest = {\n path: string;\n};\n\ntype ReadDirRequest = {\n path: string;\n recursive?: boolean;\n};\n\ntype DirEntry = {\n name: string;\n kind: Kind;\n};\n\ntype StatFileResponse = {\n kind: Kind;\n size: number;\n last_access: number;\n last_modified: number;\n last_metadata_change: number;\n};\n\nenum Kind {\n BLOCK_DEVICE = \"block_device\",\n CHARACTER_DEVICE = \"character_device\",\n DIRECTORY = \"directory\",\n NAMED_PIPE = \"named_pipe\",\n SYM_LINK = \"sym_link\",\n FILE = \"file\",\n UNIX_DOMAIN_SOCKET = \"unix_domain_socket\",\n WHITEOUT = \"whiteout\",\n DOOR = \"door\",\n EVENT_PORT = \"event_port\",\n UNKNOWN = \"unknown\",\n}\n\n/**\n * Read the contents of a file\n * @param args - Object containing the file path\n * @returns Promise resolving to the file contents as a string\n */\nexport const readFile = createBinding<ReadFileRequest, string>(\"__plugin_fs_read_file__\");\n\n/**\n * Read the contents of a directory\n * @param args - Object containing the directory path and optional recursive flag\n * @returns Promise resolving to an array of directory entries\n */\nexport const readDir = createBinding<ReadDirRequest, DirEntry[]>(\"__plugin_fs_read_dir__\");\n\n/**\n * Delete a file\n * @param args - Object containing the file path\n * @returns Promise resolving when the file is deleted\n */\nexport const deleteFile = createBinding<DeleteFileRequest, void>(\"__plugin_fs_delete_file__\");\n\n/**\n * Get file metadata and statistics\n * @param args - Object containing the file path\n * @returns Promise resolving to file statistics\n */\nexport const statFile = createBinding<StatFileRequest, StatFileResponse>(\"__plugin_fs_stat_file__\");\n\n/**\n * Get the base name of a path\n * @param path - The file path\n * @returns Promise resolving to the base name\n */\nexport const basename = createBinding<string, string>(\"__plugin_fs_basename__\");\n\n/**\n * Get the directory name of a path\n * @param path - The file path\n * @returns Promise resolving to the directory name, or null if there is no directory\n */\nexport const dirname = createBinding<string, string | null>(\"__plugin_fs_dirname__\");\n\n/**\n * Check if a path is absolute\n * @param path - The file path\n * @returns Promise resolving to true if the path is absolute, false otherwise\n */\nexport const isAbsolute = createBinding<string, boolean>(\"__plugin_fs_is_absolute__\");\n\ntype JoinRequest = {\n paths: string[];\n};\n\nconst joinBinding = createBinding<JoinRequest, string>(\"__plugin_fs_join__\");\n\n/**\n * Join multiple path segments\n * @param paths - Path segments to join\n * @returns Promise resolving to the joined path\n */\nexport const join = (...paths: string[]): Promise<string> => {\n return joinBinding({ paths });\n};\n\ntype ResolveRequest = {\n paths: string[];\n};\n\nconst resolveBinding = createBinding<ResolveRequest, string>(\"__plugin_fs_resolve__\");\n\n/**\n * Resolve a sequence of paths to an absolute path\n * @param paths - Path segments to resolve\n * @returns Promise resolving to the absolute path\n */\nexport const resolve = (...paths: string[]): Promise<string> => {\n return resolveBinding({ paths });\n};\n\ntype RelativeRequest = {\n from: string;\n to: string;\n};\n\n/**\n * Get the relative path from one path to another\n * @param args - Object containing the from and to paths\n * @returns Promise resolving to the relative path\n */\nexport const relative = createBinding<RelativeRequest, string>(\"__plugin_fs_relative__\");\n"
7
7
  ],
8
- "mappings": ";AAKO,SAAS,CAAc,CAAC,EAAqC,CAClE,GAAI,IAAW,MAAQ,OAAO,IAAW,SACvC,MAAO,GAGT,MAAO,sBAAuB,GAAU,OAAO,EAAO,oBAAsB,SAGvE,SAAS,CAAiB,CAAC,EAA4B,CAC5D,MAAU,MAAM,EAAM,kBAAmB,CACvC,MACE,EAAM,yBAA+B,MAAM,6CAA6C,CAC5F,CAAC,EAGI,SAAS,CAAsB,CAAC,EAAgB,CACrD,GAAI,EAAe,CAAM,EACvB,EAAkB,CAAM,EAE1B,OAAO,EAKF,SAAS,CAA6B,CAAC,EAA8C,CAC1F,IAAM,EAAM,OAAe,GAE3B,GAAI,CAAC,EACH,QAAQ,KAAK,kCAAkC,GAAW,EAG5D,MAAO,OAAO,IAAgB,CAC5B,GAAI,CAAC,EACH,MAAU,MAAM,kCAAkC,GAAW,EAG/D,IAAM,EAAS,MAAM,EAAG,CAAI,EAC5B,OAAO,EAAoB,CAAM,GCS9B,IAAM,EAAW,EAAuC,yBAAyB,EAO3E,EAAU,EAA0C,wBAAwB,EAO5E,EAAa,EAAuC,2BAA2B,EAO/E,EAAW,EAAiD,yBAAyB",
9
- "debugId": "34CF230C3C49051164756E2164756E21",
8
+ "mappings": "AAKO,SAAS,CAAc,CAAC,EAAqC,CAClE,GAAI,IAAW,MAAQ,OAAO,IAAW,SACvC,MAAO,GAGT,MAAO,sBAAuB,GAAU,OAAO,EAAO,oBAAsB,SAGvE,SAAS,CAAiB,CAAC,EAA4B,CAC5D,MAAU,MAAM,EAAM,kBAAmB,CACvC,MACE,EAAM,yBAA+B,MAAM,6CAA6C,CAC5F,CAAC,EAGI,SAAS,CAAsB,CAAC,EAAgB,CACrD,GAAI,EAAe,CAAM,EACvB,EAAkB,CAAM,EAE1B,OAAO,EAKF,SAAS,CAA6B,CAAC,EAA8C,CAC1F,IAAM,EAAM,OAAe,GAE3B,GAAI,CAAC,EACH,QAAQ,KAAK,kCAAkC,GAAW,EAG5D,MAAO,OAAO,IAAgB,CAC5B,GAAI,CAAC,EACH,MAAU,MAAM,kCAAkC,GAAW,EAG/D,IAAM,EAAS,MAAM,EAAG,CAAI,EAC5B,OAAO,EAAoB,CAAM,GCS9B,IAAM,EAAW,EAAuC,yBAAyB,EAO3E,EAAU,EAA0C,wBAAwB,EAO5E,EAAa,EAAuC,2BAA2B,EAO/E,EAAW,EAAiD,yBAAyB,EAOrF,EAAW,EAA8B,wBAAwB,EAOjE,EAAU,EAAqC,uBAAuB,EAOtE,EAAa,EAA+B,2BAA2B,EAM9E,EAAc,EAAmC,oBAAoB,EAO9D,EAAO,IAAI,IAAqC,CAC3D,OAAO,EAAY,CAAE,OAAM,CAAC,GAOxB,EAAiB,EAAsC,uBAAuB,EAOvE,EAAU,IAAI,IAAqC,CAC9D,OAAO,EAAe,CAAE,OAAM,CAAC,GAapB,EAAW,EAAuC,wBAAwB",
9
+ "debugId": "D9E7F45814EF91E664756E2164756E21",
10
10
  "names": []
11
11
  }
@@ -1,5 +1,4 @@
1
- // @bun @bun-cjs
2
- (function(exports, require, module, __filename, __dirname) {var{defineProperty:w,getOwnPropertyNames:D,getOwnPropertyDescriptor:E}=Object,F=Object.prototype.hasOwnProperty;var y=new WeakMap,H=(k)=>{var j=y.get(k),q;if(j)return j;if(j=w({},"__esModule",{value:!0}),k&&typeof k==="object"||typeof k==="function")D(k).map((v)=>!F.call(j,v)&&w(j,v,{get:()=>k[v],enumerable:!(q=E(k,v))||q.enumerable}));return y.set(k,j),j};var I=(k,j)=>{for(var q in j)w(k,q,{get:j[q],enumerable:!0,configurable:!0,set:(v)=>j[q]=()=>v})};var L={};I(L,{platform:()=>J,arch:()=>K,Platform:()=>z,Arch:()=>B});module.exports=H(L);var z;((d)=>{d.WINDOWS="windows";d.LINUX="linux";d.MACOS="macos";d.FREEBSD="freebsd";d.OPENBSD="openbsd";d.NETBSD="netbsd";d.DRAGONFLY="dragonfly";d.IOS="ios";d.TVOS="tvos";d.WATCHOS="watchos";d.VISIONOS="visionos";d.ANDROID="android";d.SOLARIS="solaris";d.ILLUMOS="illumos";d.FUCHSIA="fuchsia";d.HAIKU="haiku";d.UNKNOWN="unknown"})(z||={});var B;((b)=>{b.AMDGCN="amdgcn";b.ARC="arc";b.ARM="arm";b.ARMEB="armeb";b.THUMB="thumb";b.THUMBEB="thumbeb";b.AARCH64="aarch64";b.AARCH64_BE="aarch64_be";b.AVR="avr";b.BPFEL="bpfel";b.BPFEB="bpfeb";b.CSKY="csky";b.HEXAGON="hexagon";b.KALIMBA="kalimba";b.LANAI="lanai";b.LOONGARCH32="loongarch32";b.LOONGARCH64="loongarch64";b.M68K="m68k";b.MIPS="mips";b.MIPSEL="mipsel";b.MIPS64="mips64";b.MIPS64EL="mips64el";b.MSP430="msp430";b.OR1K="or1k";b.NVPTX="nvptx";b.NVPTX64="nvptx64";b.POWERPC="powerpc";b.POWERPCLE="powerpcle";b.POWERPC64="powerpc64";b.POWERPC64LE="powerpc64le";b.PROPELLER="propeller";b.RISCV32="riscv32";b.RISCV64="riscv64";b.S390X="s390x";b.SPARC="sparc";b.SPARC64="sparc64";b.SPIRV32="spirv32";b.SPIRV64="spirv64";b.VE="ve";b.WASM32="wasm32";b.WASM64="wasm64";b.X86="x86";b.X86_64="x86_64";b.XCORE="xcore";b.XTENSA="xtensa"})(B||={});function J(){return window.__archangel_os_platform()}function K(){return window.__archangel_os_arch()}})
1
+ var{defineProperty:z,getOwnPropertyNames:F,getOwnPropertyDescriptor:H}=Object,I=Object.prototype.hasOwnProperty;var B=new WeakMap,J=(v)=>{var q=B.get(v),w;if(q)return q;if(q=z({},"__esModule",{value:!0}),v&&typeof v==="object"||typeof v==="function")F(v).map((y)=>!I.call(q,y)&&z(q,y,{get:()=>v[y],enumerable:!(w=H(v,y))||w.enumerable}));return B.set(v,q),q};var K=(v,q)=>{for(var w in q)z(v,w,{get:q[w],enumerable:!0,configurable:!0,set:(y)=>q[w]=()=>y})};var N={};K(N,{platform:()=>L,arch:()=>M,Platform:()=>D,Arch:()=>E});module.exports=J(N);var D;((k)=>{k.WINDOWS="windows";k.LINUX="linux";k.MACOS="macos";k.FREEBSD="freebsd";k.OPENBSD="openbsd";k.NETBSD="netbsd";k.DRAGONFLY="dragonfly";k.IOS="ios";k.TVOS="tvos";k.WATCHOS="watchos";k.VISIONOS="visionos";k.ANDROID="android";k.SOLARIS="solaris";k.ILLUMOS="illumos";k.FUCHSIA="fuchsia";k.HAIKU="haiku";k.UNKNOWN="unknown"})(D||={});var E;((j)=>{j.AMDGCN="amdgcn";j.ARC="arc";j.ARM="arm";j.ARMEB="armeb";j.THUMB="thumb";j.THUMBEB="thumbeb";j.AARCH64="aarch64";j.AARCH64_BE="aarch64_be";j.AVR="avr";j.BPFEL="bpfel";j.BPFEB="bpfeb";j.CSKY="csky";j.HEXAGON="hexagon";j.KALIMBA="kalimba";j.LANAI="lanai";j.LOONGARCH32="loongarch32";j.LOONGARCH64="loongarch64";j.M68K="m68k";j.MIPS="mips";j.MIPSEL="mipsel";j.MIPS64="mips64";j.MIPS64EL="mips64el";j.MSP430="msp430";j.OR1K="or1k";j.NVPTX="nvptx";j.NVPTX64="nvptx64";j.POWERPC="powerpc";j.POWERPCLE="powerpcle";j.POWERPC64="powerpc64";j.POWERPC64LE="powerpc64le";j.PROPELLER="propeller";j.RISCV32="riscv32";j.RISCV64="riscv64";j.S390X="s390x";j.SPARC="sparc";j.SPARC64="sparc64";j.SPIRV32="spirv32";j.SPIRV64="spirv64";j.VE="ve";j.WASM32="wasm32";j.WASM64="wasm64";j.X86="x86";j.X86_64="x86_64";j.XCORE="xcore";j.XTENSA="xtensa"})(E||={});function L(){return window.__archangel_os_platform()}function M(){return window.__archangel_os_arch()}
3
2
 
4
- //# debugId=0386EDF768F19DA664756E2164756E21
3
+ //# debugId=A11D046C1D19156F64756E2164756E21
5
4
  //# sourceMappingURL=index.cjs.map
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["..\\src\\plugins\\os\\index.ts"],
4
4
  "sourcesContent": [
5
- "declare global {\n interface Window {\n __archangel_os_platform: () => Platform;\n __archangel_os_arch: () => Arch;\n }\n}\n\nexport enum Platform {\n WINDOWS = \"windows\",\n LINUX = \"linux\",\n MACOS = \"macos\",\n FREEBSD = \"freebsd\",\n OPENBSD = \"openbsd\",\n NETBSD = \"netbsd\",\n DRAGONFLY = \"dragonfly\",\n IOS = \"ios\",\n TVOS = \"tvos\",\n WATCHOS = \"watchos\",\n VISIONOS = \"visionos\",\n ANDROID = \"android\",\n SOLARIS = \"solaris\",\n ILLUMOS = \"illumos\",\n FUCHSIA = \"fuchsia\",\n HAIKU = \"haiku\",\n UNKNOWN = \"unknown\",\n}\n\nexport enum Arch {\n AMDGCN = \"amdgcn\",\n ARC = \"arc\",\n ARM = \"arm\",\n ARMEB = \"armeb\",\n THUMB = \"thumb\",\n THUMBEB = \"thumbeb\",\n AARCH64 = \"aarch64\",\n AARCH64_BE = \"aarch64_be\",\n AVR = \"avr\",\n BPFEL = \"bpfel\",\n BPFEB = \"bpfeb\",\n CSKY = \"csky\",\n HEXAGON = \"hexagon\",\n KALIMBA = \"kalimba\",\n LANAI = \"lanai\",\n LOONGARCH32 = \"loongarch32\",\n LOONGARCH64 = \"loongarch64\",\n M68K = \"m68k\",\n MIPS = \"mips\",\n MIPSEL = \"mipsel\",\n MIPS64 = \"mips64\",\n MIPS64EL = \"mips64el\",\n MSP430 = \"msp430\",\n OR1K = \"or1k\",\n NVPTX = \"nvptx\",\n NVPTX64 = \"nvptx64\",\n POWERPC = \"powerpc\",\n POWERPCLE = \"powerpcle\",\n POWERPC64 = \"powerpc64\",\n POWERPC64LE = \"powerpc64le\",\n PROPELLER = \"propeller\",\n RISCV32 = \"riscv32\",\n RISCV64 = \"riscv64\",\n S390X = \"s390x\",\n SPARC = \"sparc\",\n SPARC64 = \"sparc64\",\n SPIRV32 = \"spirv32\",\n SPIRV64 = \"spirv64\",\n VE = \"ve\",\n WASM32 = \"wasm32\",\n WASM64 = \"wasm64\",\n X86 = \"x86\",\n X86_64 = \"x86_64\",\n XCORE = \"xcore\",\n XTENSA = \"xtensa\",\n}\n\n/**\n * Get the platform the application is running on\n * @returns The platform name (e.g., \"windows\", \"linux\", \"macos\")\n */\nexport function platform(): Platform {\n return window.__archangel_os_platform() as Platform;\n}\n\n/**\n * Get the CPU architecture the application is running on\n * @returns The architecture name (e.g., \"x86_64\", \"aarch64\", \"arm\")\n */\nexport function arch(): Arch {\n return window.__archangel_os_arch() as Arch;\n}\n"
5
+ "import { createBinding } from \"../../internal/binding\";\n\ndeclare global {\n interface Window {\n __archangel_os_platform: () => Platform;\n __archangel_os_arch: () => Arch;\n }\n}\n\nexport enum Platform {\n WINDOWS = \"windows\",\n LINUX = \"linux\",\n MACOS = \"macos\",\n FREEBSD = \"freebsd\",\n OPENBSD = \"openbsd\",\n NETBSD = \"netbsd\",\n DRAGONFLY = \"dragonfly\",\n IOS = \"ios\",\n TVOS = \"tvos\",\n WATCHOS = \"watchos\",\n VISIONOS = \"visionos\",\n ANDROID = \"android\",\n SOLARIS = \"solaris\",\n ILLUMOS = \"illumos\",\n FUCHSIA = \"fuchsia\",\n HAIKU = \"haiku\",\n UNKNOWN = \"unknown\",\n}\n\nexport enum Arch {\n AMDGCN = \"amdgcn\",\n ARC = \"arc\",\n ARM = \"arm\",\n ARMEB = \"armeb\",\n THUMB = \"thumb\",\n THUMBEB = \"thumbeb\",\n AARCH64 = \"aarch64\",\n AARCH64_BE = \"aarch64_be\",\n AVR = \"avr\",\n BPFEL = \"bpfel\",\n BPFEB = \"bpfeb\",\n CSKY = \"csky\",\n HEXAGON = \"hexagon\",\n KALIMBA = \"kalimba\",\n LANAI = \"lanai\",\n LOONGARCH32 = \"loongarch32\",\n LOONGARCH64 = \"loongarch64\",\n M68K = \"m68k\",\n MIPS = \"mips\",\n MIPSEL = \"mipsel\",\n MIPS64 = \"mips64\",\n MIPS64EL = \"mips64el\",\n MSP430 = \"msp430\",\n OR1K = \"or1k\",\n NVPTX = \"nvptx\",\n NVPTX64 = \"nvptx64\",\n POWERPC = \"powerpc\",\n POWERPCLE = \"powerpcle\",\n POWERPC64 = \"powerpc64\",\n POWERPC64LE = \"powerpc64le\",\n PROPELLER = \"propeller\",\n RISCV32 = \"riscv32\",\n RISCV64 = \"riscv64\",\n S390X = \"s390x\",\n SPARC = \"sparc\",\n SPARC64 = \"sparc64\",\n SPIRV32 = \"spirv32\",\n SPIRV64 = \"spirv64\",\n VE = \"ve\",\n WASM32 = \"wasm32\",\n WASM64 = \"wasm64\",\n X86 = \"x86\",\n X86_64 = \"x86_64\",\n XCORE = \"xcore\",\n XTENSA = \"xtensa\",\n}\n\n/**\n * Get the platform the application is running on\n * @returns The platform name (e.g., \"windows\", \"linux\", \"macos\")\n */\nexport function platform(): Platform {\n return window.__archangel_os_platform() as Platform;\n}\n\n/**\n * Get the CPU architecture the application is running on\n * @returns The architecture name (e.g., \"x86_64\", \"aarch64\", \"arm\")\n */\nexport function arch(): Arch {\n return window.__archangel_os_arch() as Arch;\n}\n"
6
6
  ],
7
- "mappings": ";6lBAOO,IAAK,GAAL,CAAK,IAAL,CACL,UAAU,UACV,QAAQ,QACR,QAAQ,QACR,UAAU,UACV,UAAU,UACV,SAAS,SACT,YAAY,YACZ,MAAM,MACN,OAAO,OACP,UAAU,UACV,WAAW,WACX,UAAU,UACV,UAAU,UACV,UAAU,UACV,UAAU,UACV,QAAQ,QACR,UAAU,YAjBA,QAoBL,IAAK,GAAL,CAAK,IAAL,CACL,SAAS,SACT,MAAM,MACN,MAAM,MACN,QAAQ,QACR,QAAQ,QACR,UAAU,UACV,UAAU,UACV,aAAa,aACb,MAAM,MACN,QAAQ,QACR,QAAQ,QACR,OAAO,OACP,UAAU,UACV,UAAU,UACV,QAAQ,QACR,cAAc,cACd,cAAc,cACd,OAAO,OACP,OAAO,OACP,SAAS,SACT,SAAS,SACT,WAAW,WACX,SAAS,SACT,OAAO,OACP,QAAQ,QACR,UAAU,UACV,UAAU,UACV,YAAY,YACZ,YAAY,YACZ,cAAc,cACd,YAAY,YACZ,UAAU,UACV,UAAU,UACV,QAAQ,QACR,QAAQ,QACR,UAAU,UACV,UAAU,UACV,UAAU,UACV,KAAK,KACL,SAAS,SACT,SAAS,SACT,MAAM,MACN,SAAS,SACT,QAAQ,QACR,SAAS,WA7CC,QAoDL,SAAS,CAAQ,EAAa,CACnC,OAAO,OAAO,wBAAwB,EAOjC,SAAS,CAAI,EAAS,CAC3B,OAAO,OAAO,oBAAoB",
8
- "debugId": "0386EDF768F19DA664756E2164756E21",
7
+ "mappings": "iiBASO,IAAK,GAAL,CAAK,IAAL,CACL,UAAU,UACV,QAAQ,QACR,QAAQ,QACR,UAAU,UACV,UAAU,UACV,SAAS,SACT,YAAY,YACZ,MAAM,MACN,OAAO,OACP,UAAU,UACV,WAAW,WACX,UAAU,UACV,UAAU,UACV,UAAU,UACV,UAAU,UACV,QAAQ,QACR,UAAU,YAjBA,QAoBL,IAAK,GAAL,CAAK,IAAL,CACL,SAAS,SACT,MAAM,MACN,MAAM,MACN,QAAQ,QACR,QAAQ,QACR,UAAU,UACV,UAAU,UACV,aAAa,aACb,MAAM,MACN,QAAQ,QACR,QAAQ,QACR,OAAO,OACP,UAAU,UACV,UAAU,UACV,QAAQ,QACR,cAAc,cACd,cAAc,cACd,OAAO,OACP,OAAO,OACP,SAAS,SACT,SAAS,SACT,WAAW,WACX,SAAS,SACT,OAAO,OACP,QAAQ,QACR,UAAU,UACV,UAAU,UACV,YAAY,YACZ,YAAY,YACZ,cAAc,cACd,YAAY,YACZ,UAAU,UACV,UAAU,UACV,QAAQ,QACR,QAAQ,QACR,UAAU,UACV,UAAU,UACV,UAAU,UACV,KAAK,KACL,SAAS,SACT,SAAS,SACT,MAAM,MACN,SAAS,SACT,QAAQ,QACR,SAAS,WA7CC,QAoDL,SAAS,CAAQ,EAAa,CACnC,OAAO,OAAO,wBAAwB,EAOjC,SAAS,CAAI,EAAS,CAC3B,OAAO,OAAO,oBAAoB",
8
+ "debugId": "A11D046C1D19156F64756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,5 +1,4 @@
1
- // @bun
2
- var j;((d)=>{d.WINDOWS="windows";d.LINUX="linux";d.MACOS="macos";d.FREEBSD="freebsd";d.OPENBSD="openbsd";d.NETBSD="netbsd";d.DRAGONFLY="dragonfly";d.IOS="ios";d.TVOS="tvos";d.WATCHOS="watchos";d.VISIONOS="visionos";d.ANDROID="android";d.SOLARIS="solaris";d.ILLUMOS="illumos";d.FUCHSIA="fuchsia";d.HAIKU="haiku";d.UNKNOWN="unknown"})(j||={});var k;((b)=>{b.AMDGCN="amdgcn";b.ARC="arc";b.ARM="arm";b.ARMEB="armeb";b.THUMB="thumb";b.THUMBEB="thumbeb";b.AARCH64="aarch64";b.AARCH64_BE="aarch64_be";b.AVR="avr";b.BPFEL="bpfel";b.BPFEB="bpfeb";b.CSKY="csky";b.HEXAGON="hexagon";b.KALIMBA="kalimba";b.LANAI="lanai";b.LOONGARCH32="loongarch32";b.LOONGARCH64="loongarch64";b.M68K="m68k";b.MIPS="mips";b.MIPSEL="mipsel";b.MIPS64="mips64";b.MIPS64EL="mips64el";b.MSP430="msp430";b.OR1K="or1k";b.NVPTX="nvptx";b.NVPTX64="nvptx64";b.POWERPC="powerpc";b.POWERPCLE="powerpcle";b.POWERPC64="powerpc64";b.POWERPC64LE="powerpc64le";b.PROPELLER="propeller";b.RISCV32="riscv32";b.RISCV64="riscv64";b.S390X="s390x";b.SPARC="sparc";b.SPARC64="sparc64";b.SPIRV32="spirv32";b.SPIRV64="spirv64";b.VE="ve";b.WASM32="wasm32";b.WASM64="wasm64";b.X86="x86";b.X86_64="x86_64";b.XCORE="xcore";b.XTENSA="xtensa"})(k||={});function q(){return window.__archangel_os_platform()}function v(){return window.__archangel_os_arch()}export{q as platform,v as arch,j as Platform,k as Arch};
1
+ var q;((k)=>{k.WINDOWS="windows";k.LINUX="linux";k.MACOS="macos";k.FREEBSD="freebsd";k.OPENBSD="openbsd";k.NETBSD="netbsd";k.DRAGONFLY="dragonfly";k.IOS="ios";k.TVOS="tvos";k.WATCHOS="watchos";k.VISIONOS="visionos";k.ANDROID="android";k.SOLARIS="solaris";k.ILLUMOS="illumos";k.FUCHSIA="fuchsia";k.HAIKU="haiku";k.UNKNOWN="unknown"})(q||={});var v;((j)=>{j.AMDGCN="amdgcn";j.ARC="arc";j.ARM="arm";j.ARMEB="armeb";j.THUMB="thumb";j.THUMBEB="thumbeb";j.AARCH64="aarch64";j.AARCH64_BE="aarch64_be";j.AVR="avr";j.BPFEL="bpfel";j.BPFEB="bpfeb";j.CSKY="csky";j.HEXAGON="hexagon";j.KALIMBA="kalimba";j.LANAI="lanai";j.LOONGARCH32="loongarch32";j.LOONGARCH64="loongarch64";j.M68K="m68k";j.MIPS="mips";j.MIPSEL="mipsel";j.MIPS64="mips64";j.MIPS64EL="mips64el";j.MSP430="msp430";j.OR1K="or1k";j.NVPTX="nvptx";j.NVPTX64="nvptx64";j.POWERPC="powerpc";j.POWERPCLE="powerpcle";j.POWERPC64="powerpc64";j.POWERPC64LE="powerpc64le";j.PROPELLER="propeller";j.RISCV32="riscv32";j.RISCV64="riscv64";j.S390X="s390x";j.SPARC="sparc";j.SPARC64="sparc64";j.SPIRV32="spirv32";j.SPIRV64="spirv64";j.VE="ve";j.WASM32="wasm32";j.WASM64="wasm64";j.X86="x86";j.X86_64="x86_64";j.XCORE="xcore";j.XTENSA="xtensa"})(v||={});function w(){return window.__archangel_os_platform()}function y(){return window.__archangel_os_arch()}export{w as platform,y as arch,q as Platform,v as Arch};
3
2
 
4
- //# debugId=72339573A53EB5E564756E2164756E21
3
+ //# debugId=98D31E71B8A88DCF64756E2164756E21
5
4
  //# sourceMappingURL=index.js.map
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["..\\src\\plugins\\os\\index.ts"],
4
4
  "sourcesContent": [
5
- "declare global {\n interface Window {\n __archangel_os_platform: () => Platform;\n __archangel_os_arch: () => Arch;\n }\n}\n\nexport enum Platform {\n WINDOWS = \"windows\",\n LINUX = \"linux\",\n MACOS = \"macos\",\n FREEBSD = \"freebsd\",\n OPENBSD = \"openbsd\",\n NETBSD = \"netbsd\",\n DRAGONFLY = \"dragonfly\",\n IOS = \"ios\",\n TVOS = \"tvos\",\n WATCHOS = \"watchos\",\n VISIONOS = \"visionos\",\n ANDROID = \"android\",\n SOLARIS = \"solaris\",\n ILLUMOS = \"illumos\",\n FUCHSIA = \"fuchsia\",\n HAIKU = \"haiku\",\n UNKNOWN = \"unknown\",\n}\n\nexport enum Arch {\n AMDGCN = \"amdgcn\",\n ARC = \"arc\",\n ARM = \"arm\",\n ARMEB = \"armeb\",\n THUMB = \"thumb\",\n THUMBEB = \"thumbeb\",\n AARCH64 = \"aarch64\",\n AARCH64_BE = \"aarch64_be\",\n AVR = \"avr\",\n BPFEL = \"bpfel\",\n BPFEB = \"bpfeb\",\n CSKY = \"csky\",\n HEXAGON = \"hexagon\",\n KALIMBA = \"kalimba\",\n LANAI = \"lanai\",\n LOONGARCH32 = \"loongarch32\",\n LOONGARCH64 = \"loongarch64\",\n M68K = \"m68k\",\n MIPS = \"mips\",\n MIPSEL = \"mipsel\",\n MIPS64 = \"mips64\",\n MIPS64EL = \"mips64el\",\n MSP430 = \"msp430\",\n OR1K = \"or1k\",\n NVPTX = \"nvptx\",\n NVPTX64 = \"nvptx64\",\n POWERPC = \"powerpc\",\n POWERPCLE = \"powerpcle\",\n POWERPC64 = \"powerpc64\",\n POWERPC64LE = \"powerpc64le\",\n PROPELLER = \"propeller\",\n RISCV32 = \"riscv32\",\n RISCV64 = \"riscv64\",\n S390X = \"s390x\",\n SPARC = \"sparc\",\n SPARC64 = \"sparc64\",\n SPIRV32 = \"spirv32\",\n SPIRV64 = \"spirv64\",\n VE = \"ve\",\n WASM32 = \"wasm32\",\n WASM64 = \"wasm64\",\n X86 = \"x86\",\n X86_64 = \"x86_64\",\n XCORE = \"xcore\",\n XTENSA = \"xtensa\",\n}\n\n/**\n * Get the platform the application is running on\n * @returns The platform name (e.g., \"windows\", \"linux\", \"macos\")\n */\nexport function platform(): Platform {\n return window.__archangel_os_platform() as Platform;\n}\n\n/**\n * Get the CPU architecture the application is running on\n * @returns The architecture name (e.g., \"x86_64\", \"aarch64\", \"arm\")\n */\nexport function arch(): Arch {\n return window.__archangel_os_arch() as Arch;\n}\n"
5
+ "import { createBinding } from \"../../internal/binding\";\n\ndeclare global {\n interface Window {\n __archangel_os_platform: () => Platform;\n __archangel_os_arch: () => Arch;\n }\n}\n\nexport enum Platform {\n WINDOWS = \"windows\",\n LINUX = \"linux\",\n MACOS = \"macos\",\n FREEBSD = \"freebsd\",\n OPENBSD = \"openbsd\",\n NETBSD = \"netbsd\",\n DRAGONFLY = \"dragonfly\",\n IOS = \"ios\",\n TVOS = \"tvos\",\n WATCHOS = \"watchos\",\n VISIONOS = \"visionos\",\n ANDROID = \"android\",\n SOLARIS = \"solaris\",\n ILLUMOS = \"illumos\",\n FUCHSIA = \"fuchsia\",\n HAIKU = \"haiku\",\n UNKNOWN = \"unknown\",\n}\n\nexport enum Arch {\n AMDGCN = \"amdgcn\",\n ARC = \"arc\",\n ARM = \"arm\",\n ARMEB = \"armeb\",\n THUMB = \"thumb\",\n THUMBEB = \"thumbeb\",\n AARCH64 = \"aarch64\",\n AARCH64_BE = \"aarch64_be\",\n AVR = \"avr\",\n BPFEL = \"bpfel\",\n BPFEB = \"bpfeb\",\n CSKY = \"csky\",\n HEXAGON = \"hexagon\",\n KALIMBA = \"kalimba\",\n LANAI = \"lanai\",\n LOONGARCH32 = \"loongarch32\",\n LOONGARCH64 = \"loongarch64\",\n M68K = \"m68k\",\n MIPS = \"mips\",\n MIPSEL = \"mipsel\",\n MIPS64 = \"mips64\",\n MIPS64EL = \"mips64el\",\n MSP430 = \"msp430\",\n OR1K = \"or1k\",\n NVPTX = \"nvptx\",\n NVPTX64 = \"nvptx64\",\n POWERPC = \"powerpc\",\n POWERPCLE = \"powerpcle\",\n POWERPC64 = \"powerpc64\",\n POWERPC64LE = \"powerpc64le\",\n PROPELLER = \"propeller\",\n RISCV32 = \"riscv32\",\n RISCV64 = \"riscv64\",\n S390X = \"s390x\",\n SPARC = \"sparc\",\n SPARC64 = \"sparc64\",\n SPIRV32 = \"spirv32\",\n SPIRV64 = \"spirv64\",\n VE = \"ve\",\n WASM32 = \"wasm32\",\n WASM64 = \"wasm64\",\n X86 = \"x86\",\n X86_64 = \"x86_64\",\n XCORE = \"xcore\",\n XTENSA = \"xtensa\",\n}\n\n/**\n * Get the platform the application is running on\n * @returns The platform name (e.g., \"windows\", \"linux\", \"macos\")\n */\nexport function platform(): Platform {\n return window.__archangel_os_platform() as Platform;\n}\n\n/**\n * Get the CPU architecture the application is running on\n * @returns The architecture name (e.g., \"x86_64\", \"aarch64\", \"arm\")\n */\nexport function arch(): Arch {\n return window.__archangel_os_arch() as Arch;\n}\n"
6
6
  ],
7
- "mappings": ";AAOO,IAAK,GAAL,CAAK,IAAL,CACL,UAAU,UACV,QAAQ,QACR,QAAQ,QACR,UAAU,UACV,UAAU,UACV,SAAS,SACT,YAAY,YACZ,MAAM,MACN,OAAO,OACP,UAAU,UACV,WAAW,WACX,UAAU,UACV,UAAU,UACV,UAAU,UACV,UAAU,UACV,QAAQ,QACR,UAAU,YAjBA,QAoBL,IAAK,GAAL,CAAK,IAAL,CACL,SAAS,SACT,MAAM,MACN,MAAM,MACN,QAAQ,QACR,QAAQ,QACR,UAAU,UACV,UAAU,UACV,aAAa,aACb,MAAM,MACN,QAAQ,QACR,QAAQ,QACR,OAAO,OACP,UAAU,UACV,UAAU,UACV,QAAQ,QACR,cAAc,cACd,cAAc,cACd,OAAO,OACP,OAAO,OACP,SAAS,SACT,SAAS,SACT,WAAW,WACX,SAAS,SACT,OAAO,OACP,QAAQ,QACR,UAAU,UACV,UAAU,UACV,YAAY,YACZ,YAAY,YACZ,cAAc,cACd,YAAY,YACZ,UAAU,UACV,UAAU,UACV,QAAQ,QACR,QAAQ,QACR,UAAU,UACV,UAAU,UACV,UAAU,UACV,KAAK,KACL,SAAS,SACT,SAAS,SACT,MAAM,MACN,SAAS,SACT,QAAQ,QACR,SAAS,WA7CC,QAoDL,SAAS,CAAQ,EAAa,CACnC,OAAO,OAAO,wBAAwB,EAOjC,SAAS,CAAI,EAAS,CAC3B,OAAO,OAAO,oBAAoB",
8
- "debugId": "72339573A53EB5E564756E2164756E21",
7
+ "mappings": "AASO,IAAK,GAAL,CAAK,IAAL,CACL,UAAU,UACV,QAAQ,QACR,QAAQ,QACR,UAAU,UACV,UAAU,UACV,SAAS,SACT,YAAY,YACZ,MAAM,MACN,OAAO,OACP,UAAU,UACV,WAAW,WACX,UAAU,UACV,UAAU,UACV,UAAU,UACV,UAAU,UACV,QAAQ,QACR,UAAU,YAjBA,QAoBL,IAAK,GAAL,CAAK,IAAL,CACL,SAAS,SACT,MAAM,MACN,MAAM,MACN,QAAQ,QACR,QAAQ,QACR,UAAU,UACV,UAAU,UACV,aAAa,aACb,MAAM,MACN,QAAQ,QACR,QAAQ,QACR,OAAO,OACP,UAAU,UACV,UAAU,UACV,QAAQ,QACR,cAAc,cACd,cAAc,cACd,OAAO,OACP,OAAO,OACP,SAAS,SACT,SAAS,SACT,WAAW,WACX,SAAS,SACT,OAAO,OACP,QAAQ,QACR,UAAU,UACV,UAAU,UACV,YAAY,YACZ,YAAY,YACZ,cAAc,cACd,YAAY,YACZ,UAAU,UACV,UAAU,UACV,QAAQ,QACR,QAAQ,QACR,UAAU,UACV,UAAU,UACV,UAAU,UACV,KAAK,KACL,SAAS,SACT,SAAS,SACT,MAAM,MACN,SAAS,SACT,QAAQ,QACR,SAAS,WA7CC,QAoDL,SAAS,CAAQ,EAAa,CACnC,OAAO,OAAO,wBAAwB,EAOjC,SAAS,CAAI,EAAS,CAC3B,OAAO,OAAO,oBAAoB",
8
+ "debugId": "98D31E71B8A88DCF64756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -1,5 +1,4 @@
1
- // @bun @bun-cjs
2
- (function(exports, require, module, __filename, __dirname) {var{defineProperty:o,getOwnPropertyNames:e,getOwnPropertyDescriptor:g}=Object,c=Object.prototype.hasOwnProperty;var t=new WeakMap,l=(r)=>{var n=t.get(r),i;if(n)return n;if(n=o({},"__esModule",{value:!0}),r&&typeof r==="object"||typeof r==="function")e(r).map((a)=>!c.call(n,a)&&o(n,a,{get:()=>r[a],enumerable:!(i=g(r,a))||i.enumerable}));return t.set(r,n),n};var s=(r,n)=>{for(var i in n)o(r,i,{get:n[i],enumerable:!0,configurable:!0,set:(a)=>n[i]=()=>a})};var h={};s(h,{run:()=>d});module.exports=l(h);function f(r){if(r===null||typeof r!=="object")return!1;return"__archangel_error"in r&&typeof r.__archangel_error==="string"}function T(r){throw Error(r.__archangel_error,{cause:r.__archangel_error_trace??Error("Error trace only available in debug builds.")})}function B(r){if(f(r))T(r);return r}function _(r){let n=window[r];if(!n)console.warn(`Backend binding not available: ${r}`);return async(i)=>{if(!n)throw Error(`Backend binding not available: ${r}`);let a=await n(i);return B(a)}}var E=_("__plugin_process_run__"),d=(r,n)=>E({argv:r,...n?{cwd:n.cwd,env:n.env?Object.entries(n.env).map(([i,a])=>({key:i,value:a})):void 0}:{}});})
1
+ var{defineProperty:o,getOwnPropertyNames:_,getOwnPropertyDescriptor:c}=Object,e=Object.prototype.hasOwnProperty;var g=new WeakMap,l=(r)=>{var n=g.get(r),i;if(n)return n;if(n=o({},"__esModule",{value:!0}),r&&typeof r==="object"||typeof r==="function")_(r).map((a)=>!e.call(n,a)&&o(n,a,{get:()=>r[a],enumerable:!(i=c(r,a))||i.enumerable}));return g.set(r,n),n};var s=(r,n)=>{for(var i in n)o(r,i,{get:n[i],enumerable:!0,configurable:!0,set:(a)=>n[i]=()=>a})};var w={};s(w,{totalSystemMemory:()=>h,run:()=>B,cwd:()=>d,baseAddress:()=>p});module.exports=l(w);function f(r){if(r===null||typeof r!=="object")return!1;return"__archangel_error"in r&&typeof r.__archangel_error==="string"}function u(r){throw Error(r.__archangel_error,{cause:r.__archangel_error_trace??Error("Error trace only available in debug builds.")})}function T(r){if(f(r))u(r);return r}function t(r){let n=window[r];if(!n)console.warn(`Backend binding not available: ${r}`);return async(i)=>{if(!n)throw Error(`Backend binding not available: ${r}`);let a=await n(i);return T(a)}}var E=t("__plugin_process_run__");function B(r,n){return E({argv:r,...n?{cwd:n.cwd,env:n.env?Object.entries(n.env).map(([i,a])=>({key:i,value:a})):void 0}:{}})}var d=t("__plugin_process_cwd__");function h(){return window.__archangel_process_total_system_memory()}function p(){return window.__archangel_process_base_address()}
3
2
 
4
- //# debugId=76A3F262EB1AF98F64756E2164756E21
3
+ //# debugId=E6195E222C96A53764756E2164756E21
5
4
  //# sourceMappingURL=index.cjs.map
@@ -3,9 +3,9 @@
3
3
  "sources": ["..\\src\\internal\\binding.ts", "..\\src\\plugins\\process\\index.ts"],
4
4
  "sourcesContent": [
5
5
  "export interface BindingError {\n __archangel_error: string;\n __archangel_error_trace?: string;\n}\n\nexport function isBindingError(result: any): result is BindingError {\n if (result === null || typeof result !== \"object\") {\n return false;\n }\n\n return \"__archangel_error\" in result && typeof result.__archangel_error === \"string\";\n}\n\nexport function throwBindingError(error: BindingError): never {\n throw new Error(error.__archangel_error, {\n cause:\n error.__archangel_error_trace ?? new Error(\"Error trace only available in debug builds.\"),\n });\n}\n\nexport function handleBindingResult<T>(result: any): T {\n if (isBindingError(result)) {\n throwBindingError(result);\n }\n return result as T;\n}\n\ntype BindingFn<TArgs = any, TResult = any> = (args: TArgs) => Promise<TResult>;\n\nexport function createBinding<TArgs, TResult>(windowKey: string): BindingFn<TArgs, TResult> {\n const fn = (window as any)[windowKey];\n\n if (!fn) {\n console.warn(`Backend binding not available: ${windowKey}`);\n }\n\n return async (args: TArgs) => {\n if (!fn) {\n throw new Error(`Backend binding not available: ${windowKey}`);\n }\n\n const result = await fn(args);\n return handleBindingResult(result);\n };\n}\n",
6
- "import { createBinding } from \"../../internal/binding\";\r\n\r\ntype EnvMapping = {\r\n key: string;\r\n value: string;\r\n};\r\n\r\ntype RunRequestBinding = {\r\n argv: string[];\r\n cwd?: string;\r\n env?: EnvMapping[];\r\n};\r\n\r\n\r\nexport type RunRequest = {\r\n cwd?: string;\r\n env?: Record<string, string>;\r\n};\r\n\r\nexport type RunResponse = {\r\n stdout: string;\r\n stderr: string;\r\n term: number;\r\n};\r\n\r\nconst runBinding = createBinding<RunRequestBinding, RunResponse>(\"__plugin_process_run__\");\r\n\r\n/**\r\n * Run a command\r\n * @param args - Object containing the command arguments, current working directory, and environment variables\r\n * @returns Promise resolving to the run response\r\n */\r\nexport const run = (argv: string[], req?: RunRequest) => runBinding({\r\n argv: argv,\r\n ...req ? {\r\n cwd: req.cwd,\r\n env: req.env ? Object.entries(req.env).map(([key, value]) => ({ key, value })) : undefined,\r\n } : {},\r\n});\r\n"
6
+ "import { createBinding } from \"../../internal/binding\";\n\ndeclare global {\n interface Window {\n __archangel_process_total_system_memory: () => number;\n __archangel_process_base_address: () => number;\n }\n}\n\ntype EnvMapping = {\n key: string;\n value: string;\n};\n\ntype RunRequestBinding = {\n argv: string[];\n cwd?: string;\n env?: EnvMapping[];\n};\n\nexport type RunRequest = {\n cwd?: string;\n env?: Record<string, string>;\n};\n\nexport type RunResponse = {\n stdout: string;\n stderr: string;\n term: number;\n};\n\nconst runBinding = createBinding<RunRequestBinding, RunResponse>(\"__plugin_process_run__\");\n\n/**\n * Run a command\n * @param argv - Array of command arguments\n * @param req - Optional request object containing the current working directory and environment variables\n * @returns Promise resolving to the run response\n */\nexport function run(argv: string[], req?: RunRequest) {\n return runBinding({\n argv: argv,\n ...(req\n ? {\n cwd: req.cwd,\n env: req.env\n ? Object.entries(req.env).map(([key, value]) => ({ key, value }))\n : undefined,\n }\n : {}),\n });\n}\n\n/**\n * @returns The process current working directory.\n */\nexport const cwd = createBinding<void, string>(\"__plugin_process_cwd__\");\n\n/**\n * Get the total system memory in bytes\n * @returns The total system memory in bytes\n */\nexport function totalSystemMemory(): number {\n return window.__archangel_process_total_system_memory();\n}\n\n/**\n * Get the base address of the process\n * @returns The base address of the process\n */\nexport function baseAddress(): number {\n return window.__archangel_process_base_address();\n}\n"
7
7
  ],
8
- "mappings": ";mjBAKO,SAAS,CAAc,CAAC,EAAqC,CAClE,GAAI,IAAW,MAAQ,OAAO,IAAW,SACvC,MAAO,GAGT,MAAO,sBAAuB,GAAU,OAAO,EAAO,oBAAsB,SAGvE,SAAS,CAAiB,CAAC,EAA4B,CAC5D,MAAU,MAAM,EAAM,kBAAmB,CACvC,MACE,EAAM,yBAA+B,MAAM,6CAA6C,CAC5F,CAAC,EAGI,SAAS,CAAsB,CAAC,EAAgB,CACrD,GAAI,EAAe,CAAM,EACvB,EAAkB,CAAM,EAE1B,OAAO,EAKF,SAAS,CAA6B,CAAC,EAA8C,CAC1F,IAAM,EAAM,OAAe,GAE3B,GAAI,CAAC,EACH,QAAQ,KAAK,kCAAkC,GAAW,EAG5D,MAAO,OAAO,IAAgB,CAC5B,GAAI,CAAC,EACH,MAAU,MAAM,kCAAkC,GAAW,EAG/D,IAAM,EAAS,MAAM,EAAG,CAAI,EAC5B,OAAO,EAAoB,CAAM,GCjBrC,IAAM,EAAa,EAA8C,wBAAwB,EAO5E,EAAM,CAAC,EAAgB,IAAqB,EAAW,CAClE,KAAM,KACH,EAAM,CACP,IAAK,EAAI,IACT,IAAK,EAAI,IAAM,OAAO,QAAQ,EAAI,GAAG,EAAE,IAAI,EAAE,EAAK,MAAY,CAAE,MAAK,OAAM,EAAE,EAAI,MACnF,EAAI,CAAC,CACP,CAAC",
9
- "debugId": "76A3F262EB1AF98F64756E2164756E21",
8
+ "mappings": "2iBAKO,SAAS,CAAc,CAAC,EAAqC,CAClE,GAAI,IAAW,MAAQ,OAAO,IAAW,SACvC,MAAO,GAGT,MAAO,sBAAuB,GAAU,OAAO,EAAO,oBAAsB,SAGvE,SAAS,CAAiB,CAAC,EAA4B,CAC5D,MAAU,MAAM,EAAM,kBAAmB,CACvC,MACE,EAAM,yBAA+B,MAAM,6CAA6C,CAC5F,CAAC,EAGI,SAAS,CAAsB,CAAC,EAAgB,CACrD,GAAI,EAAe,CAAM,EACvB,EAAkB,CAAM,EAE1B,OAAO,EAKF,SAAS,CAA6B,CAAC,EAA8C,CAC1F,IAAM,EAAM,OAAe,GAE3B,GAAI,CAAC,EACH,QAAQ,KAAK,kCAAkC,GAAW,EAG5D,MAAO,OAAO,IAAgB,CAC5B,GAAI,CAAC,EACH,MAAU,MAAM,kCAAkC,GAAW,EAG/D,IAAM,EAAS,MAAM,EAAG,CAAI,EAC5B,OAAO,EAAoB,CAAM,GCXrC,IAAM,EAAa,EAA8C,wBAAwB,EAQlF,SAAS,CAAG,CAAC,EAAgB,EAAkB,CACpD,OAAO,EAAW,CAChB,KAAM,KACF,EACA,CACE,IAAK,EAAI,IACT,IAAK,EAAI,IACL,OAAO,QAAQ,EAAI,GAAG,EAAE,IAAI,EAAE,EAAK,MAAY,CAAE,MAAK,OAAM,EAAE,EAC9D,MACN,EACA,CAAC,CACP,CAAC,EAMI,IAAM,EAAM,EAA4B,wBAAwB,EAMhE,SAAS,CAAiB,EAAW,CAC1C,OAAO,OAAO,wCAAwC,EAOjD,SAAS,CAAW,EAAW,CACpC,OAAO,OAAO,iCAAiC",
9
+ "debugId": "E6195E222C96A53764756E2164756E21",
10
10
  "names": []
11
11
  }
@@ -1,19 +1,36 @@
1
+ declare global {
2
+ interface Window {
3
+ __archangel_process_total_system_memory: () => number;
4
+ __archangel_process_base_address: () => number;
5
+ }
6
+ }
1
7
  export type RunRequest = {
2
- cwd?: string;
3
- env?: Record<string, string>;
8
+ cwd?: string;
9
+ env?: Record<string, string>;
4
10
  };
5
11
  export type RunResponse = {
6
- stdout: string;
7
- stderr: string;
8
- term: number;
12
+ stdout: string;
13
+ stderr: string;
14
+ term: number;
9
15
  };
10
16
  /**
11
17
  * Run a command
12
- * @param argv: Array of command arguments
13
- * @param req: Optional request object containing the current working directory and environment variables
18
+ * @param argv - Array of command arguments
19
+ * @param req - Optional request object containing the current working directory and environment variables
14
20
  * @returns Promise resolving to the run response
15
21
  */
16
- export declare const run: (
17
- argv: string[],
18
- req?: RunRequest,
19
- ) => Promise<RunResponse>;
22
+ export declare function run(argv: string[], req?: RunRequest): Promise<RunResponse>;
23
+ /**
24
+ * @returns The process current working directory.
25
+ */
26
+ export declare const cwd: (args: void) => Promise<string>;
27
+ /**
28
+ * Get the total system memory in bytes
29
+ * @returns The total system memory in bytes
30
+ */
31
+ export declare function totalSystemMemory(): number;
32
+ /**
33
+ * Get the base address of the process
34
+ * @returns The base address of the process
35
+ */
36
+ export declare function baseAddress(): number;
@@ -1,5 +1,4 @@
1
- // @bun
2
- function t(r){if(r===null||typeof r!=="object")return!1;return"__archangel_error"in r&&typeof r.__archangel_error==="string"}function _(r){throw Error(r.__archangel_error,{cause:r.__archangel_error_trace??Error("Error trace only available in debug builds.")})}function e(r){if(t(r))_(r);return r}function o(r){let n=window[r];if(!n)console.warn(`Backend binding not available: ${r}`);return async(i)=>{if(!n)throw Error(`Backend binding not available: ${r}`);let a=await n(i);return e(a)}}var g=o("__plugin_process_run__"),s=(r,n)=>g({argv:r,...n?{cwd:n.cwd,env:n.env?Object.entries(n.env).map(([i,a])=>({key:i,value:a})):void 0}:{}});export{s as run};
1
+ function t(r){if(r===null||typeof r!=="object")return!1;return"__archangel_error"in r&&typeof r.__archangel_error==="string"}function g(r){throw Error(r.__archangel_error,{cause:r.__archangel_error_trace??Error("Error trace only available in debug builds.")})}function _(r){if(t(r))g(r);return r}function o(r){let n=window[r];if(!n)console.warn(`Backend binding not available: ${r}`);return async(i)=>{if(!n)throw Error(`Backend binding not available: ${r}`);let a=await n(i);return _(a)}}var c=o("__plugin_process_run__");function s(r,n){return c({argv:r,...n?{cwd:n.cwd,env:n.env?Object.entries(n.env).map(([i,a])=>({key:i,value:a})):void 0}:{}})}var f=o("__plugin_process_cwd__");function u(){return window.__archangel_process_total_system_memory()}function T(){return window.__archangel_process_base_address()}export{u as totalSystemMemory,s as run,f as cwd,T as baseAddress};
3
2
 
4
- //# debugId=1D349BCE5AF1D93464756E2164756E21
3
+ //# debugId=59644CD3F5FE4FB864756E2164756E21
5
4
  //# sourceMappingURL=index.js.map
@@ -3,9 +3,9 @@
3
3
  "sources": ["..\\src\\internal\\binding.ts", "..\\src\\plugins\\process\\index.ts"],
4
4
  "sourcesContent": [
5
5
  "export interface BindingError {\n __archangel_error: string;\n __archangel_error_trace?: string;\n}\n\nexport function isBindingError(result: any): result is BindingError {\n if (result === null || typeof result !== \"object\") {\n return false;\n }\n\n return \"__archangel_error\" in result && typeof result.__archangel_error === \"string\";\n}\n\nexport function throwBindingError(error: BindingError): never {\n throw new Error(error.__archangel_error, {\n cause:\n error.__archangel_error_trace ?? new Error(\"Error trace only available in debug builds.\"),\n });\n}\n\nexport function handleBindingResult<T>(result: any): T {\n if (isBindingError(result)) {\n throwBindingError(result);\n }\n return result as T;\n}\n\ntype BindingFn<TArgs = any, TResult = any> = (args: TArgs) => Promise<TResult>;\n\nexport function createBinding<TArgs, TResult>(windowKey: string): BindingFn<TArgs, TResult> {\n const fn = (window as any)[windowKey];\n\n if (!fn) {\n console.warn(`Backend binding not available: ${windowKey}`);\n }\n\n return async (args: TArgs) => {\n if (!fn) {\n throw new Error(`Backend binding not available: ${windowKey}`);\n }\n\n const result = await fn(args);\n return handleBindingResult(result);\n };\n}\n",
6
- "import { createBinding } from \"../../internal/binding\";\r\n\r\ntype EnvMapping = {\r\n key: string;\r\n value: string;\r\n};\r\n\r\ntype RunRequestBinding = {\r\n argv: string[];\r\n cwd?: string;\r\n env?: EnvMapping[];\r\n};\r\n\r\n\r\nexport type RunRequest = {\r\n cwd?: string;\r\n env?: Record<string, string>;\r\n};\r\n\r\nexport type RunResponse = {\r\n stdout: string;\r\n stderr: string;\r\n term: number;\r\n};\r\n\r\nconst runBinding = createBinding<RunRequestBinding, RunResponse>(\"__plugin_process_run__\");\r\n\r\n/**\r\n * Run a command\r\n * @param args - Object containing the command arguments, current working directory, and environment variables\r\n * @returns Promise resolving to the run response\r\n */\r\nexport const run = (argv: string[], req?: RunRequest) => runBinding({\r\n argv: argv,\r\n ...req ? {\r\n cwd: req.cwd,\r\n env: req.env ? Object.entries(req.env).map(([key, value]) => ({ key, value })) : undefined,\r\n } : {},\r\n});\r\n"
6
+ "import { createBinding } from \"../../internal/binding\";\n\ndeclare global {\n interface Window {\n __archangel_process_total_system_memory: () => number;\n __archangel_process_base_address: () => number;\n }\n}\n\ntype EnvMapping = {\n key: string;\n value: string;\n};\n\ntype RunRequestBinding = {\n argv: string[];\n cwd?: string;\n env?: EnvMapping[];\n};\n\nexport type RunRequest = {\n cwd?: string;\n env?: Record<string, string>;\n};\n\nexport type RunResponse = {\n stdout: string;\n stderr: string;\n term: number;\n};\n\nconst runBinding = createBinding<RunRequestBinding, RunResponse>(\"__plugin_process_run__\");\n\n/**\n * Run a command\n * @param argv - Array of command arguments\n * @param req - Optional request object containing the current working directory and environment variables\n * @returns Promise resolving to the run response\n */\nexport function run(argv: string[], req?: RunRequest) {\n return runBinding({\n argv: argv,\n ...(req\n ? {\n cwd: req.cwd,\n env: req.env\n ? Object.entries(req.env).map(([key, value]) => ({ key, value }))\n : undefined,\n }\n : {}),\n });\n}\n\n/**\n * @returns The process current working directory.\n */\nexport const cwd = createBinding<void, string>(\"__plugin_process_cwd__\");\n\n/**\n * Get the total system memory in bytes\n * @returns The total system memory in bytes\n */\nexport function totalSystemMemory(): number {\n return window.__archangel_process_total_system_memory();\n}\n\n/**\n * Get the base address of the process\n * @returns The base address of the process\n */\nexport function baseAddress(): number {\n return window.__archangel_process_base_address();\n}\n"
7
7
  ],
8
- "mappings": ";AAKO,SAAS,CAAc,CAAC,EAAqC,CAClE,GAAI,IAAW,MAAQ,OAAO,IAAW,SACvC,MAAO,GAGT,MAAO,sBAAuB,GAAU,OAAO,EAAO,oBAAsB,SAGvE,SAAS,CAAiB,CAAC,EAA4B,CAC5D,MAAU,MAAM,EAAM,kBAAmB,CACvC,MACE,EAAM,yBAA+B,MAAM,6CAA6C,CAC5F,CAAC,EAGI,SAAS,CAAsB,CAAC,EAAgB,CACrD,GAAI,EAAe,CAAM,EACvB,EAAkB,CAAM,EAE1B,OAAO,EAKF,SAAS,CAA6B,CAAC,EAA8C,CAC1F,IAAM,EAAM,OAAe,GAE3B,GAAI,CAAC,EACH,QAAQ,KAAK,kCAAkC,GAAW,EAG5D,MAAO,OAAO,IAAgB,CAC5B,GAAI,CAAC,EACH,MAAU,MAAM,kCAAkC,GAAW,EAG/D,IAAM,EAAS,MAAM,EAAG,CAAI,EAC5B,OAAO,EAAoB,CAAM,GCjBrC,IAAM,EAAa,EAA8C,wBAAwB,EAO5E,EAAM,CAAC,EAAgB,IAAqB,EAAW,CAClE,KAAM,KACH,EAAM,CACP,IAAK,EAAI,IACT,IAAK,EAAI,IAAM,OAAO,QAAQ,EAAI,GAAG,EAAE,IAAI,EAAE,EAAK,MAAY,CAAE,MAAK,OAAM,EAAE,EAAI,MACnF,EAAI,CAAC,CACP,CAAC",
9
- "debugId": "1D349BCE5AF1D93464756E2164756E21",
8
+ "mappings": "AAKO,SAAS,CAAc,CAAC,EAAqC,CAClE,GAAI,IAAW,MAAQ,OAAO,IAAW,SACvC,MAAO,GAGT,MAAO,sBAAuB,GAAU,OAAO,EAAO,oBAAsB,SAGvE,SAAS,CAAiB,CAAC,EAA4B,CAC5D,MAAU,MAAM,EAAM,kBAAmB,CACvC,MACE,EAAM,yBAA+B,MAAM,6CAA6C,CAC5F,CAAC,EAGI,SAAS,CAAsB,CAAC,EAAgB,CACrD,GAAI,EAAe,CAAM,EACvB,EAAkB,CAAM,EAE1B,OAAO,EAKF,SAAS,CAA6B,CAAC,EAA8C,CAC1F,IAAM,EAAM,OAAe,GAE3B,GAAI,CAAC,EACH,QAAQ,KAAK,kCAAkC,GAAW,EAG5D,MAAO,OAAO,IAAgB,CAC5B,GAAI,CAAC,EACH,MAAU,MAAM,kCAAkC,GAAW,EAG/D,IAAM,EAAS,MAAM,EAAG,CAAI,EAC5B,OAAO,EAAoB,CAAM,GCXrC,IAAM,EAAa,EAA8C,wBAAwB,EAQlF,SAAS,CAAG,CAAC,EAAgB,EAAkB,CACpD,OAAO,EAAW,CAChB,KAAM,KACF,EACA,CACE,IAAK,EAAI,IACT,IAAK,EAAI,IACL,OAAO,QAAQ,EAAI,GAAG,EAAE,IAAI,EAAE,EAAK,MAAY,CAAE,MAAK,OAAM,EAAE,EAC9D,MACN,EACA,CAAC,CACP,CAAC,EAMI,IAAM,EAAM,EAA4B,wBAAwB,EAMhE,SAAS,CAAiB,EAAW,CAC1C,OAAO,OAAO,wCAAwC,EAOjD,SAAS,CAAW,EAAW,CACpC,OAAO,OAAO,iCAAiC",
9
+ "debugId": "59644CD3F5FE4FB864756E2164756E21",
10
10
  "names": []
11
11
  }
package/package.json CHANGED
@@ -1,13 +1,24 @@
1
1
  {
2
2
  "name": "@shahwali/archangel",
3
- "version": "0.0.4",
3
+ "version": "0.0.6",
4
+ "bin": {
5
+ "archangel": "archangel.js"
6
+ },
4
7
  "files": [
5
- "dist"
8
+ "dist",
9
+ "native",
10
+ "archangel.js"
11
+ ],
12
+ "os": [
13
+ "darwin",
14
+ "linux",
15
+ "win32"
16
+ ],
17
+ "cpu": [
18
+ "x64",
19
+ "arm64"
6
20
  ],
7
21
  "type": "module",
8
- "main": "./dist/index.cjs",
9
- "module": "./dist/index.js",
10
- "types": "./dist/index.d.ts",
11
22
  "exports": {
12
23
  ".": {
13
24
  "types": "./dist/index.d.ts",
@@ -23,18 +34,35 @@
23
34
  "types": "./dist/plugins/os/index.d.ts",
24
35
  "import": "./dist/plugins/os/index.js",
25
36
  "require": "./dist/plugins/os/index.cjs"
37
+ },
38
+ "./process": {
39
+ "types": "./dist/plugins/process/index.d.ts",
40
+ "import": "./dist/plugins/process/index.js",
41
+ "require": "./dist/plugins/process/index.cjs"
42
+ },
43
+ "./crypto/pwhash": {
44
+ "types": "./dist/plugins/crypto/pwhash/index.d.ts",
45
+ "import": "./dist/plugins/crypto/pwhash/index.js",
46
+ "require": "./dist/plugins/crypto/pwhash/index.cjs"
26
47
  }
27
48
  },
28
49
  "publishConfig": {
29
50
  "access": "public"
30
51
  },
31
52
  "scripts": {
32
- "build": "bun run build.ts"
53
+ "build": "bun build-bindings && bun build-types && bun build-native",
54
+ "build-bindings": "bun run build.ts",
55
+ "build-types": "tsc --project tsconfig.types.json",
56
+ "build-native": "zig build -Doptimize=ReleaseSafe"
33
57
  },
34
58
  "devDependencies": {
35
- "@types/bun": "latest"
59
+ "@types/bun": "latest",
60
+ "picocolors": "^1.1.1"
36
61
  },
37
62
  "peerDependencies": {
38
63
  "typescript": "^5"
64
+ },
65
+ "engines": {
66
+ "bun": ">=1.0.0"
39
67
  }
40
68
  }
package/README.md DELETED
@@ -1,195 +0,0 @@
1
- # Archangel
2
-
3
- A small library for building web-based desktop applications in Zig.
4
-
5
- ## Creating an Archangel Application
6
-
7
- ### Prerequisites
8
-
9
- - Zig compiler, version **0.15.2** or higher
10
- - Platform specific dependencies
11
- - Windows
12
- - WebView2
13
- - Linux
14
- - webkit2gtk-4.1
15
- - MacOS
16
- - WebKit
17
-
18
- There is currently no CLI or similar tooling for bootstrapping an Archangel application. You will need to do the following steps manually.
19
-
20
- ### Initialize a New Project
21
-
22
- You can bring your own frontend setup for your Archangel application, but below steps will assume you are using Vite as your build tool.
23
-
24
- Create your Vite project
25
-
26
- ```sh
27
- # or npm, yarn, pnpm e.t.c
28
- $ bun create vite
29
- $ cd <app-name>
30
- $ bun add @shahwali/archangel
31
- ```
32
-
33
- Create your archangel source directory inside the project
34
-
35
- ```sh
36
- $ mkdir src-archangel
37
- $ cd src-archangel
38
- $ zig init --minimal
39
- $ zig fetch --save git+https://codeberg.org/shahwali/archangel.git
40
- ```
41
-
42
- Archangel is quite flexible in how you want to use it, but an `archangel.conf.zon` file is required to configure the application. Place it in src-archangel with the following content.
43
-
44
- ```
45
- .{
46
- .app_name = "My Example App",
47
- .dev_url = "http://localhost:5173/", // Must be the same as the url your are hosting your frontend on locally.
48
- .frontend_build_path = "../dist", // Must be the same as the path your frontend is built to.
49
- .bindings_path = "../src/generated",
50
- .window = .{
51
- .width = 1280,
52
- .height = 720,
53
- .title = "My App",
54
- },
55
- }
56
- ```
57
-
58
- For a simple minimal Archangel application, you can create the following `main.zig` file in the `src-archangel/src`.
59
-
60
- ```zig
61
- const std = @import("std");
62
- const archangel = @import("archangel");
63
-
64
- const HelloResponse = struct {
65
- message: []const u8,
66
- timestamp: i64,
67
- };
68
-
69
- fn helloHandler(name: []const u8) !HelloResponse {
70
- if (std.mem.eql(u8, name, "John")) {
71
- return error.InvalidName;
72
- }
73
-
74
- return HelloResponse{
75
- .message = try std.fmt.allocPrint(std.heap.page_allocator, "Hello, {s}!", .{name}),
76
- .timestamp = std.time.timestamp(),
77
- };
78
- }
79
-
80
- pub fn main() !void {
81
- // Use whatever allocator you want.
82
- var gpa = std.heap.DebugAllocator(.{ .safety = true }).init;
83
- const allocator = gpa.allocator();
84
-
85
- defer {
86
- if (gpa.deinit() == .leak) {
87
- @panic("memory leak detected!");
88
- }
89
- }
90
-
91
- var app = try archangel.App.init(
92
- allocator,
93
- .{
94
- .{ "hello", archangel.handler.create(helloHandler) },
95
- },
96
- );
97
- defer app.deinit();
98
-
99
- try app.run();
100
- }
101
- ```
102
-
103
- And then you can build it with the following `build.zig`
104
-
105
- ```zig
106
- const std = @import("std");
107
- const archangel = @import("archangel");
108
-
109
- pub fn build(b: *std.Build) void {
110
- const target = b.standardTargetOptions(.{
111
- .default_target = .{
112
- .cpu_model = .baseline,
113
- },
114
- });
115
- const optimize = b.standardOptimizeOption(.{});
116
-
117
- const exe, const archangel_dep = archangel.createApp(b, .{
118
- .exe_name = "testapp",
119
- .exe_create_options = .{
120
- .target = target,
121
- .optimize = optimize,
122
- .root_source_file = b.path("src/main.zig"),
123
- },
124
- });
125
-
126
- exe.root_module.addImport("archangel", archangel_dep.module("archangel"));
127
- }
128
- ```
129
-
130
- The `archangel.createApp` function will create an executable with the given config, and create a `run` step that you can use to run the application. It also creates an option `dev` which can be passed to enable development mode. In development mode, the webview will navigate to the `dev_url` you specified in the archange.conf.zon file, rather than embedding the frontend in the binary, thus allowing you to take advantage of HMR-like features with a tool like Vite for example.
131
-
132
- For a more advanced example, you can look at [the testapp example](examples/testapp/src-archangel). This example shows a more realistic use case of archangel, where your app is contained to a Zig module which is then imported in your executable entry point. The module can then have its own tests and be self contained.
133
-
134
- ### Run the application in development mode
135
-
136
- In the frontend root, start the dev server
137
-
138
- ```sh
139
- $ bun dev
140
- ```
141
-
142
- In the archangel root (src-archangel), start the application.
143
-
144
- ```sh
145
- $ zig build run -Ddev
146
- ```
147
-
148
- ### Build the application for production
149
-
150
- In the frontend root, build the production version of the frontend
151
-
152
- ```sh
153
- $ bun run build
154
- ```
155
-
156
- In the archangel root (src-archangel), build the application.
157
-
158
- ```sh
159
- $ zig build
160
- ```
161
-
162
- You will find the executable in the `zig-out/bin` directory.
163
-
164
- You can also run the application to test it in production mode
165
-
166
- ```sh
167
- $ zig build run
168
- ```
169
-
170
- ## Bundling
171
-
172
- Archangel does not come with a bundler, although it is planned to add one in the future. For now, you will have to manually bundle your application using whatever tool your prefer for your designated platform. Luckily, the Zig build system is quite powerful and one can easily modify the `build.zig` to do all kinds of things, such as installing additional binaries, libraries, assets and resources alongside your application executable. You can then use a tool like WiX on Windows or hdiutil on macOS to create an installer for your application.
173
-
174
- ## Experimental Features
175
-
176
- ### Generate typescript bindings
177
-
178
- You can generate typescript bindings for your handlers using the bindings step. To do this you must create an `archangel_options` declaration in your entry point file.
179
-
180
- ```zig
181
- const testapp = @import("testapp");
182
- const archangel = @import("archangel");
183
-
184
- pub const archangel_options: archangel.Options(testapp.handlers) = .{
185
- .skip_binding = .initComptime(.{.{"hello"}}), // You can also specify handlers to skip/ignore.
186
- };
187
-
188
- pub fn main() !void ....
189
- ```
190
-
191
- ```sh
192
- $ zig build bindings
193
- ```
194
-
195
- This will place the bindings in the `bindings_path` specified in your `archangel.conf.zon`.