java-bridge 2.2.1-beta.5 → 2.2.1-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -93,25 +93,15 @@ import { ensureJvm, JavaVersion } from 'java-bridge';
93
93
  ensureJvm({
94
94
  libPath: 'path/to/jvm.dll',
95
95
  version: JavaVersion.VER_9,
96
- opts: '-Xms512m -Xmx512m',
96
+ opts: ['-Xms512m', '-Xmx512m'],
97
97
  });
98
98
  ```
99
99
 
100
- #### Use daemon threads
100
+ All threads will be attached as daemon threads, allowing the jvm to exit when the main thread exits.
101
+ This behaviour can not be changed, as it may introduce undefined behaviour.
101
102
 
102
- By default, new threads will **not** be attached as daemon threads, meaning any thread attached to the
103
- jvm will be automatically detached once it is not required anymore. This slows down asynchronous calls
104
- but will prevent the jvm from being terminated if any thread is still running.
105
-
106
- If you want to change this behaviour, you can pass the `useDaemonThreads` option to the `ensureJvm` function.
107
- This will make the jvm attach threads as daemon threads causing those threads to not be detached
108
- once not required anymore.
109
-
110
- ```ts
111
- ensureJvm({
112
- useDaemonThreads: true,
113
- });
114
- ```
103
+ Important note on jvm options: Different arguments must be parsed as separate strings in the `opts` array.
104
+ Otherwise, the jvm will not be able to parse the arguments correctly.
115
105
 
116
106
  #### Notes on electron
117
107
 
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.java=t():e.java=t()}(global,(()=>(()=>{var e={388:(e,t,a)=>{e=a.nmd(e);try{process.dlopen(e,__dirname+a(17).sep+a.p+"java.linux-x64-gnu.node")}catch(e){throw new Error("node-loader:\n"+e)}},163:(e,t,a)=>{const{existsSync:r,readFileSync:n}=a(147),{join:i}=a(17),{platform:o,arch:s}=process;let c=null,d=!1,l=null;function u(){if(process.report&&"function"==typeof process.report.getReport){const{glibcVersionRuntime:e}=process.report.getReport().header;return!e}try{return n("/usr/bin/ldd","utf8").includes("musl")}catch(e){return!0}}switch(o){case"android":switch(s){case"arm64":d=r(i(__dirname,"java.android-arm64.node"));try{c=d?a(Object(function(){var e=new Error("Cannot find module './java.android-arm64.node'");throw e.code="MODULE_NOT_FOUND",e}())):require("java-bridge-android-arm64")}catch(e){l=e}break;case"arm":d=r(i(__dirname,"java.android-arm-eabi.node"));try{c=d?a(Object(function(){var e=new Error("Cannot find module './java.android-arm-eabi.node'");throw e.code="MODULE_NOT_FOUND",e}())):require("java-bridge-android-arm-eabi")}catch(e){l=e}break;default:throw new Error(`Unsupported architecture on Android ${s}`)}break;case"win32":switch(s){case"x64":d=r(i(__dirname,"java.win32-x64-msvc.node"));try{c=d?a(Object(function(){var e=new Error("Cannot find module './java.win32-x64-msvc.node'");throw e.code="MODULE_NOT_FOUND",e}())):require("java-bridge-win32-x64-msvc")}catch(e){l=e}break;case"ia32":d=r(i(__dirname,"java.win32-ia32-msvc.node"));try{c=d?a(Object(function(){var e=new Error("Cannot find module './java.win32-ia32-msvc.node'");throw e.code="MODULE_NOT_FOUND",e}())):require("java-bridge-win32-ia32-msvc")}catch(e){l=e}break;case"arm64":d=r(i(__dirname,"java.win32-arm64-msvc.node"));try{c=d?a(Object(function(){var e=new Error("Cannot find module './java.win32-arm64-msvc.node'");throw e.code="MODULE_NOT_FOUND",e}())):require("java-bridge-win32-arm64-msvc")}catch(e){l=e}break;default:throw new Error(`Unsupported architecture on Windows: ${s}`)}break;case"darwin":switch(s){case"x64":d=r(i(__dirname,"java.darwin-x64.node"));try{c=d?a(Object(function(){var e=new Error("Cannot find module './java.darwin-x64.node'");throw e.code="MODULE_NOT_FOUND",e}())):require("java-bridge-darwin-x64")}catch(e){l=e}break;case"arm64":d=r(i(__dirname,"java.darwin-arm64.node"));try{c=d?a(Object(function(){var e=new Error("Cannot find module './java.darwin-arm64.node'");throw e.code="MODULE_NOT_FOUND",e}())):require("java-bridge-darwin-arm64")}catch(e){l=e}break;default:throw new Error(`Unsupported architecture on macOS: ${s}`)}break;case"freebsd":if("x64"!==s)throw new Error(`Unsupported architecture on FreeBSD: ${s}`);d=r(i(__dirname,"java.freebsd-x64.node"));try{c=d?a(Object(function(){var e=new Error("Cannot find module './java.freebsd-x64.node'");throw e.code="MODULE_NOT_FOUND",e}())):require("java-bridge-freebsd-x64")}catch(e){l=e}break;case"linux":switch(s){case"x64":if(u()){d=r(i(__dirname,"java.linux-x64-musl.node"));try{c=d?a(Object(function(){var e=new Error("Cannot find module './java.linux-x64-musl.node'");throw e.code="MODULE_NOT_FOUND",e}())):require("java-bridge-linux-x64-musl")}catch(e){l=e}}else{d=r(i(__dirname,"java.linux-x64-gnu.node"));try{c=d?a(388):require("java-bridge-linux-x64-gnu")}catch(e){l=e}}break;case"arm64":if(u()){d=r(i(__dirname,"java.linux-arm64-musl.node"));try{c=d?a(Object(function(){var e=new Error("Cannot find module './java.linux-arm64-musl.node'");throw e.code="MODULE_NOT_FOUND",e}())):require("java-bridge-linux-arm64-musl")}catch(e){l=e}}else{d=r(i(__dirname,"java.linux-arm64-gnu.node"));try{c=d?a(Object(function(){var e=new Error("Cannot find module './java.linux-arm64-gnu.node'");throw e.code="MODULE_NOT_FOUND",e}())):require("java-bridge-linux-arm64-gnu")}catch(e){l=e}}break;case"arm":d=r(i(__dirname,"java.linux-arm-gnueabihf.node"));try{c=d?a(Object(function(){var e=new Error("Cannot find module './java.linux-arm-gnueabihf.node'");throw e.code="MODULE_NOT_FOUND",e}())):require("java-bridge-linux-arm-gnueabihf")}catch(e){l=e}break;default:throw new Error(`Unsupported architecture on Linux: ${s}`)}break;default:throw new Error(`Unsupported OS: ${o}, architecture: ${s}`)}if(!c){if(l)throw l;throw new Error("Failed to load native binding")}const{Java:f,getClassFields:p,getClassMethods:y,getField:v,setField:m,getStaticField:h,setStaticField:g,JavaInterfaceProxy:b,StdoutRedirect:w,getJavaLibPath:j}=c;e.exports.Java=f,e.exports.getClassFields=p,e.exports.getClassMethods=y,e.exports.getField=v,e.exports.setField=m,e.exports.getStaticField=h,e.exports.setStaticField=g,e.exports.JavaInterfaceProxy=b,e.exports.StdoutRedirect=w,e.exports.getJavaLibPath=j},238:function(e,t,a){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.TypescriptBulkDefinitionGenerator=void 0;const n=r(a(248));t.TypescriptBulkDefinitionGenerator=class{constructor(){this.declarations=[],this.resolvedImports=[]}async generate(e,t=null){let a=0;for(const r of e){const e=new n.default(r,t,this.resolvedImports),i=await e.generate();a+=i.length,this.declarations.push(...i)}return a}async save(e){await n.default.save(this.declarations,e)}get moduleDeclarations(){return this.declarations}}},248:function(e,t,a){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,a,r){void 0===r&&(r=a);var n=Object.getOwnPropertyDescriptor(t,a);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[a]}}),Object.defineProperty(e,r,n)}:function(e,t,a,r){void 0===r&&(r=a),e[r]=t[a]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)"default"!==a&&Object.prototype.hasOwnProperty.call(e,a)&&r(t,e,a);return n(t,e),t},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=i(a(7)),c=a(236),d=o(a(147)),l=o(a(17)),u=s.default.createSourceFile("source.ts","",s.default.ScriptTarget.Latest,!1,s.default.ScriptKind.TS),f=["toString","wait","getClass","hashCode","notify","notifyAll","equals"];class p{constructor(e,t=null,a=[]){this.classname=e,this.progressCallback=t,this.resolvedImports=a,this.usesBasicOrJavaType=!1,this.additionalImports=[],this.importsToResolve=[]}static async convertMethods(e){const t=await(0,c.importClassAsync)("java.lang.reflect.Modifier"),a={};for(const r of e){const e=await r.getModifiers();if(await t.isPublic(e)){const n=await r.getName(),i=await r.getReturnType(),o=await r.getParameterTypes(),s={returnType:await i.getTypeName(),parameters:await Promise.all(o.map((e=>e.getTypeName()))),isStatic:await t.isStatic(e)};Object.hasOwn(a,n)?a[n].push(s):a[n]=[s]}}return a}async convertFields(e){const t=await(0,c.importClassAsync)("java.lang.reflect.Modifier"),a=[];for(const r of e){const e=await r.getModifiers();if(await t.isPublic(e)){const n=await r.getName(),i=await r.getType(),o=await i.getTypeName(),c=[s.default.factory.createModifier(s.SyntaxKind.PublicKeyword)];await t.isStatic(e)&&c.push(s.default.factory.createModifier(s.SyntaxKind.StaticKeyword)),await t.isFinal(e)&&c.push(s.default.factory.createModifier(s.SyntaxKind.ReadonlyKeyword));let d=s.default.factory.createPropertyDeclaration(c,n,void 0,this.javaTypeToTypescriptType(o,!0),void 0);d=s.default.addSyntheticLeadingComment(d,s.default.SyntaxKind.SingleLineCommentTrivia,` ================== Field ${n} ==================`,!0),a.push(s.default.addSyntheticLeadingComment(d,s.default.SyntaxKind.MultiLineCommentTrivia,`*\n * Original type: '${await i.getTypeName()}'\n `,!0))}}return a}async isAbstractOrInterface(e){const t=await(0,c.importClassAsync)("java.lang.reflect.Modifier");return await e.isInterface()||await t.isAbstract(await e.getModifiers())}createPrivateConstructor(){const e=s.default.factory.createConstructorDeclaration([s.default.factory.createModifier(s.default.SyntaxKind.PrivateKeyword)],[],s.default.factory.createBlock([s.default.factory.createExpressionStatement(s.default.factory.createCallExpression(s.default.factory.createSuper(),[],[]))],!0));return s.default.addSyntheticLeadingComment(e,s.default.SyntaxKind.MultiLineCommentTrivia,"*\n * Private constructor to prevent instantiation\n * as this is either an abstract class or an interface\n ",!0)}async convertConstructors(e){const t=await(0,c.importClassAsync)("java.lang.reflect.Modifier"),a=[];for(const r of e){const e=await r.getModifiers();if(await t.isPublic(e)){const e=await r.getParameterTypes();a.push(await Promise.all(e.map((e=>e.getTypeName()))))}}const r=a.map(((e,t)=>{const a=e.map(this.convertParameter.bind(this));let r=s.default.factory.createConstructorDeclaration([s.default.factory.createModifier(s.default.SyntaxKind.PublicKeyword)],a,void 0);return 0===t&&(r=s.default.addSyntheticLeadingComment(r,s.default.SyntaxKind.SingleLineCommentTrivia," ================== Constructors ==================",!0)),e.length>0&&(r=s.default.addSyntheticLeadingComment(r,s.default.SyntaxKind.MultiLineCommentTrivia,"*\n"+e.map(((e,t)=>` * @param var${t} original type: '${e}'\n`)).join("")+" ",!0)),r}));return[...a.map(((e,t)=>this.createMethod({returnType:this.classname,parameters:e,isStatic:!0},"newInstance",t,!1,!0))),...r]}primitiveToClassType(e){switch(e){case"boolean":return"java.lang.Boolean";case"byte":return"java.lang.Byte";case"char":return"java.lang.Character";case"short":return"java.lang.Short";case"int":return"java.lang.Integer";case"long":return"java.lang.Long";case"float":return"java.lang.Float";case"double":return"java.lang.Double";default:return e}}isPrimitive(e){return["boolean","byte","char","short","int","long","float","double"].includes(e)}javaTypeToTypescriptType(e,t,a=!0){const r=e=>a?s.default.factory.createUnionTypeNode([e,s.default.factory.createLiteralTypeNode(s.default.factory.createNull())]):e;switch(e){case"byte[]":case"java.lang.Byte[]":return r(s.default.factory.createTypeReferenceNode("Buffer"))}if(e.endsWith("[]"))return r(s.default.factory.createArrayTypeNode(this.javaTypeToTypescriptType(e.substring(0,e.length-2),t)));const n=e=>{this.resolvedImports.includes(e)||this.additionalImports.push(e),this.importsToResolve.push(e);const a=e===this.classname&&t;return s.default.factory.createTypeReferenceNode(e===this.classname?e.substring(e.lastIndexOf(".")+1)+(a?"Class":""):e.replaceAll(".","_"))},i=(r,...i)=>{const o=[s.default.factory.createKeywordTypeNode(r)];return!this.isPrimitive(e)&&a&&o.push(s.default.factory.createLiteralTypeNode(s.default.factory.createNull())),t?s.default.factory.createUnionTypeNode([n(this.primitiveToClassType(e)),...i.map((e=>s.default.factory.createKeywordTypeNode(e))),...o]):s.default.factory.createUnionTypeNode(o)};switch(e){case"int":case"java.lang.Integer":case"float":case"java.lang.Float":case"double":case"java.lang.Double":case"byte":case"java.lang.Byte":case"short":case"java.lang.Short":return i(s.SyntaxKind.NumberKeyword);case"long":case"java.lang.Long":return i(s.SyntaxKind.NumberKeyword,s.SyntaxKind.BigIntKeyword);case"char":case"java.lang.Character":case"java.lang.String":return r(s.default.factory.createKeywordTypeNode(s.SyntaxKind.StringKeyword));case"boolean":case"java.lang.Boolean":return i(s.SyntaxKind.BooleanKeyword);case"void":case"java.lang.Void":return s.default.factory.createKeywordTypeNode(s.SyntaxKind.VoidKeyword);case"java.lang.Object":return this.usesBasicOrJavaType=!0,r(s.default.factory.createTypeReferenceNode("BasicOrJavaType"));default:return r(n(e))}}convertParameter(e,t){const a="var"+t,r=this.javaTypeToTypescriptType(e,!0);return s.default.factory.createParameterDeclaration(void 0,void 0,a,void 0,r)}convertParameters(e){return e.parameters.map(this.convertParameter.bind(this))}static createMethodComment(e){return"*\n"+e.parameters.map(((e,t)=>` * @param var${t} original type: '${e}'\n`)).join("")+` * @return original return type: '${e.returnType}'\n `}createMethod(e,t,a,r,n){const i=s.default.factory.createModifier(s.default.SyntaxKind.PublicKeyword),o=s.default.factory.createModifier(s.default.SyntaxKind.StaticKeyword),c=[i];e.isStatic&&c.push(o);let d=this.javaTypeToTypescriptType(e.returnType,!1,!n);r||(d=s.default.factory.createTypeReferenceNode(s.default.factory.createIdentifier("Promise"),[d]));let l=s.default.factory.createMethodDeclaration(c,void 0,t+(r?"Sync":""),void 0,void 0,this.convertParameters(e),d,void 0);return 0===a&&(l=s.default.addSyntheticLeadingComment(l,s.default.SyntaxKind.SingleLineCommentTrivia,` ================== Method ${t} ==================`,!0)),s.default.addSyntheticLeadingComment(l,s.default.SyntaxKind.MultiLineCommentTrivia,p.createMethodComment(e),!0)}convertMethod(e,t){const a=[];for(let r=0;r<e.length;r++){const n=e[r],i=f.includes(t);a.push(this.createMethod(n,t,r,!1,i),this.createMethod(n,t,r,!0,i))}return a}getAdditionalImports(){const e=e=>{const t=this.classname.split("."),a=e.split(".");for(let e=0;e<t.length&&a[e]===t[e];e++)t[e]=null,a[e]=null;return"./"+t.filter((e=>!!e)).map((()=>"")).join("../")+a.filter((e=>!!e)).join("/")};return this.importsToResolve.filter((e=>e!=this.classname)).filter(((e,t,a)=>a.indexOf(e)===t)).map((t=>s.default.factory.createImportDeclaration(void 0,s.default.factory.createImportClause(!1,void 0,s.default.factory.createNamedImports([s.default.factory.createImportSpecifier(!1,s.default.factory.createIdentifier(t.substring(t.lastIndexOf(".")+1)),s.default.factory.createIdentifier(t.replaceAll(".","_")))])),s.default.factory.createStringLiteral(e(t)))))}getImports(){const e=[s.default.factory.createImportSpecifier(!1,void 0,s.default.factory.createIdentifier("importClass")),s.default.factory.createImportSpecifier(!1,void 0,s.default.factory.createIdentifier("JavaClass"))];this.usesBasicOrJavaType&&e.push(s.default.factory.createImportSpecifier(!1,void 0,s.default.factory.createIdentifier("BasicOrJavaType")));const t=s.default.factory.createNamedImports(e);return s.default.factory.createImportDeclaration(void 0,s.default.factory.createImportClause(!1,void 0,t),s.default.factory.createStringLiteral("java-bridge"))}getExportStatement(e,t){const a=s.default.factory.createClassDeclaration([s.default.factory.createModifier(s.default.SyntaxKind.ExportKeyword)],e,void 0,[s.default.factory.createHeritageClause(s.default.SyntaxKind.ExtendsKeyword,[s.default.factory.createExpressionWithTypeArguments(s.default.factory.createIdentifier(`importClass<typeof ${e}Class>("${this.classname}")`),void 0)])],t?[this.createPrivateConstructor()]:[]);return[s.default.addSyntheticLeadingComment(a,s.SyntaxKind.MultiLineCommentTrivia,`*\n * Class ${this.classname}.\n *\n * This actually imports the java class for further use.\n * The class ${e}Class only defines types, this is the class you should actually import.\n * Please note that this statement imports the underlying java class at runtime, which may take a while.\n * This was generated by java-bridge.\n * You should probably not edit this.\n `,!0),s.default.factory.createExportDefault(s.default.factory.createIdentifier(e))]}getText(e){return e.map((e=>e&&s.default.createPrinter({newLine:s.default.NewLineKind.LineFeed}).printNode(s.default.EmitHint.Unspecified,e,u)||"")).join("\n")}async generate(){if(this.resolvedImports.includes(this.classname))return[];this.resolvedImports.push(this.classname),this.progressCallback&&this.progressCallback(this.classname);const e=(await(0,c.importClassAsync)(this.classname)).class,t=this.classname.substring(this.classname.lastIndexOf(".")+1),a=(await e.getFields()).filter((function(e,t,a){return a.findIndex((t=>e.getNameSync()===t.getNameSync()))===t})),r=await e.getMethods(),n=await this.convertFields(a),i=await p.convertMethods(r);for(const[e,t]of Object.entries(i))n.push(...this.convertMethod(t,e));const o=await this.isAbstractOrInterface(e);if(!o){const t=await e.getDeclaredConstructors(),a=await this.convertConstructors(t);n.push(...a)}let d=s.default.factory.createClassDeclaration([s.default.factory.createModifier(s.default.SyntaxKind.ExportKeyword),s.default.factory.createModifier(s.default.SyntaxKind.DeclareKeyword)],t+"Class",void 0,[s.default.factory.createHeritageClause(s.default.SyntaxKind.ExtendsKeyword,[s.default.factory.createExpressionWithTypeArguments(s.default.factory.createIdentifier("JavaClass"),void 0)])],n);d=s.default.addSyntheticLeadingComment(d,s.default.SyntaxKind.MultiLineCommentTrivia,`*\n * This class just defines types, you should import ${t} instead of this.\n * This was generated by java-bridge.\n * You should probably not edit this.\n `,!0);const l=this.getText([this.getImports(),...this.getAdditionalImports(),null,d,null,...this.getExportStatement(t,o)]),u=[];for(const e of this.additionalImports){const t=new p(e,this.progressCallback,this.resolvedImports),a=await t.generate();u.push(...a)}return u.push({name:this.classname,contents:l}),u}static async save(e,t){for(const a of e){const e=a.name.split(".");e[e.length-1]=e[e.length-1]+".ts";const r=l.default.join(t,...e);await d.default.promises.mkdir(l.default.dirname(r),{recursive:!0}),await d.default.promises.writeFile(r,a.contents,{encoding:"utf8"})}}}t.default=p},91:(e,t)=>{"use strict";var a;Object.defineProperty(t,"__esModule",{value:!0}),t.JavaObject=t.JavaVersion=void 0,function(e){e.VER_1_1="1.1",e.VER_1_2="1.2",e.VER_1_4="1.4",e.VER_1_6="1.6",e.VER_1_8="1.8",e.VER_9="9",e.VER_10="10"}(a=t.JavaVersion||(t.JavaVersion={})),Object.freeze(a),t.JavaObject=class{}},236:function(e,t,a){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,a,r){void 0===r&&(r=a);var n=Object.getOwnPropertyDescriptor(t,a);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[a]}}),Object.defineProperty(e,r,n)}:function(e,t,a,r){void 0===r&&(r=a),e[r]=t[a]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__exportStar||function(e,t){for(var a in e)"default"===a||Object.prototype.hasOwnProperty.call(t,a)||r(t,e,a)},o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)"default"!==a&&Object.prototype.hasOwnProperty.call(e,a)&&r(t,e,a);return n(t,e),t},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.TypescriptBulkDefinitionGenerator=t.TypescriptDefinitionGenerator=t.getJavaVersionSync=t.getJavaVersion=t.getJavaLibPath=t.UnknownJavaClass=t.JavaClassConstructor=t.JavaClass=t.JavaClassProxy=t.JavaClassInstance=t.JavaObject=t.JavaVersion=void 0;var c=a(91);Object.defineProperty(t,"JavaVersion",{enumerable:!0,get:function(){return c.JavaVersion}}),Object.defineProperty(t,"JavaObject",{enumerable:!0,get:function(){return c.JavaObject}}),Object.defineProperty(t,"JavaClassInstance",{enumerable:!0,get:function(){return c.JavaClassInstance}}),Object.defineProperty(t,"JavaClassProxy",{enumerable:!0,get:function(){return c.JavaClassProxy}}),Object.defineProperty(t,"JavaClass",{enumerable:!0,get:function(){return c.JavaClass}}),Object.defineProperty(t,"JavaClassConstructor",{enumerable:!0,get:function(){return c.JavaClassConstructor}}),Object.defineProperty(t,"UnknownJavaClass",{enumerable:!0,get:function(){return c.UnknownJavaClass}}),i(a(818),t);const d=o(a(818));t.default=d;var l=a(163);Object.defineProperty(t,"getJavaLibPath",{enumerable:!0,get:function(){return l.getJavaLibPath}});var u=a(102);Object.defineProperty(t,"getJavaVersion",{enumerable:!0,get:function(){return u.getJavaVersion}}),Object.defineProperty(t,"getJavaVersionSync",{enumerable:!0,get:function(){return u.getJavaVersionSync}});const f=s(a(248));t.TypescriptDefinitionGenerator=f.default;var p=a(238);Object.defineProperty(t,"TypescriptBulkDefinitionGenerator",{enumerable:!0,get:function(){return p.TypescriptBulkDefinitionGenerator}})},818:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getJavaInstance=t.newProxy=t.stdout=t.classpath=t.isInstanceOf=t.appendClasspath=t.importClassAsync=t.importClass=t.setClassLoader=t.getClassLoader=t.ensureJvm=void 0;const r=a(163),n=a(841);let i=null;function o(e){return!i&&(i=new r.Java(e?.libPath,e?.version,e?.opts,e,(0,n.getJavaLibPath)(e?.isPackagedElectron??!1),(0,n.getNativeLibPath)(e?.isPackagedElectron??!1)),!0)}function s(e){null!=e&&!Array.isArray(e)&&"object"==typeof e&&Object.keys(e).includes("class.proxy")&&(d(e,!1),c(e,!1))}function c(e,t){for(const a of(0,r.getClassFields)(e["class.proxy"],t)){const n=()=>{const n=t?(0,r.getStaticField)(e,a.name):(0,r.getField)(e,a.name);return s(n),n};a.isFinal?Object.defineProperty(e,a.name,{get:n,enumerable:!0}):Object.defineProperty(e,a.name,{get:n,set:n=>t?(0,r.setStaticField)(e,a.name,n):(0,r.setField)(e,a.name,n),enumerable:!0})}}function d(e,t){(0,r.getClassMethods)(e["class.proxy"],t).forEach((({name:t})=>{try{const a=e[t].bind(e);Object.defineProperty(e,t,{value:function(...e){const t=a(...e);return t instanceof Promise?t.then((e=>(s(e),e))):(s(t),t)}})}catch(e){console.warn(`Failed to replace method ${t}`)}}))}function l(e){return c(e,!0),d(e,!0),class extends e{constructor(...e){super(...e),c(this,!1),d(this,!1)}static async newInstanceAsync(...e){const t=await super.newInstanceAsync(...e);return c(t,!1),d(t,!1),t}}}function u(e){o(),i.appendClasspath(e)}var f;t.ensureJvm=o,t.getClassLoader=function(){return o(),i.classLoader},t.setClassLoader=function(e){o(),i.classLoader=e},t.importClass=function(e){return o(),l(i.importClass(e))},t.importClassAsync=async function(e){return o(),l(await i.importClassAsync(e))},t.appendClasspath=u,t.isInstanceOf=function(e,t){return o(),i.isInstanceOf(e,t)},(f=t.classpath||(t.classpath={})).append=function(e){u(e)},f.get=function(){return o(),i.loadedJars},(t.stdout||(t.stdout={})).enableRedirect=function(e,t){return o(),i.setStdoutCallbacks(e,t)},t.newProxy=function(e,t){o();const a=Object.create(null);for(const[e,r]of Object.entries(t))a[e]=(e,t,...a)=>{if(e)throw e;try{t(null,r(...a))}catch(e){e instanceof Error?t(e):t(new Error(e.toString()))}};return i.createInterfaceProxy(e,a)},t.getJavaInstance=function(){return i}},841:function(e,t,a){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,a,r){void 0===r&&(r=a);var n=Object.getOwnPropertyDescriptor(t,a);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[a]}}),Object.defineProperty(e,r,n)}:function(e,t,a,r){void 0===r&&(r=a),e[r]=t[a]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)"default"!==a&&Object.prototype.hasOwnProperty.call(e,a)&&r(t,e,a);return n(t,e),t},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getJavaLibPath=t.getNativeLibPath=void 0;const s=o(a(17)),c=i(a(147)),d=o(a(230)),{platform:l,arch:u}=process,f=/([\\/])app\.asar([\\/])/gim,p="$1app.asar.unpacked$2";function y(e,t){const r=s.default.join(__dirname,e+".node");if(c.default.existsSync(r))return t&&console.warn("Using local native module in packaged Electron app"),r;{const r=e.replaceAll(".","-").replace("java","java-bridge");let n;return n=require&&require.resolve?require.resolve(r):a(955).resolve(r),t&&(n=n.replace(f,p)),n}}function v(){return new Error(`Unsupported platform: ${l} ${u}`)}t.getNativeLibPath=function(e){switch(l){case"android":switch(u){case"arm64":return y("java.android-arm64",e);case"arm":return y("java.android-arm-eabi",e);default:throw v()}case"win32":return y(`java.win32-${u}-msvc`,e);case"darwin":return y(`java.darwin-${u}`,e);case"freebsd":return y(`java.freebsd-${u}`,e);case"linux":switch(u){case"x64":case"arm64":return y(`java.linux-${u}-${function(){if(process.report&&"function"==typeof process.report.getReport){const{glibcVersionRuntime:e}=process.report.getReport().header;return!e}try{return(0,c.readFileSync)("/usr/bin/ldd","utf8").includes("musl")}catch(e){return!0}}()?"musl":"gnu"}`,e);case"arm":return y("java.linux-arm-gnueabihf",e);default:throw v()}default:throw v()}},t.getJavaLibPath=function(e){let t=s.default.join(__dirname,"..","java-src","build","libs");e&&(t=t.replace(f,p));const a=d.default.sync("*.jar",{cwd:t});if(0===a.length)throw new Error(`No java lib found in ${t}`);return s.default.join(t,a[0])}},102:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getJavaVersionSync=t.getJavaVersion=void 0;const r=a(818);t.getJavaVersion=async function(){const e=await(0,r.importClassAsync)("java.lang.System");return await e.getProperty("java.version")},t.getJavaVersionSync=function(){return(0,r.importClass)("java.lang.System").getPropertySync("java.version")}},955:e=>{function t(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}t.keys=()=>[],t.resolve=t,t.id=955,e.exports=t},230:e=>{"use strict";e.exports=require("glob")},7:e=>{"use strict";e.exports=require("typescript")},147:e=>{"use strict";e.exports=require("fs")},17:e=>{"use strict";e.exports=require("path")}},t={};function a(r){var n=t[r];if(void 0!==n)return n.exports;var i=t[r]={id:r,loaded:!1,exports:{}};return e[r].call(i.exports,i,i.exports,a),i.loaded=!0,i.exports}return a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),a.p="",a(236)})()));
1
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.java=t():e.java=t()}(global,(()=>(()=>{var e={388:(e,t,a)=>{e=a.nmd(e);try{process.dlopen(e,__dirname+a(17).sep+a.p+"java.linux-x64-gnu.node")}catch(e){throw new Error("node-loader:\n"+e)}},163:(e,t,a)=>{const{existsSync:r,readFileSync:n}=a(147),{join:i}=a(17),{platform:o,arch:s}=process;let c=null,d=!1,l=null;function u(){if(process.report&&"function"==typeof process.report.getReport){const{glibcVersionRuntime:e}=process.report.getReport().header;return!e}try{const e=a(81).execSync("which ldd").toString().trim();return n(e,"utf8").includes("musl")}catch(e){return!0}}switch(o){case"android":switch(s){case"arm64":d=r(i(__dirname,"java.android-arm64.node"));try{c=d?a(Object(function(){var e=new Error("Cannot find module './java.android-arm64.node'");throw e.code="MODULE_NOT_FOUND",e}())):require("java-bridge-android-arm64")}catch(e){l=e}break;case"arm":d=r(i(__dirname,"java.android-arm-eabi.node"));try{c=d?a(Object(function(){var e=new Error("Cannot find module './java.android-arm-eabi.node'");throw e.code="MODULE_NOT_FOUND",e}())):require("java-bridge-android-arm-eabi")}catch(e){l=e}break;default:throw new Error(`Unsupported architecture on Android ${s}`)}break;case"win32":switch(s){case"x64":d=r(i(__dirname,"java.win32-x64-msvc.node"));try{c=d?a(Object(function(){var e=new Error("Cannot find module './java.win32-x64-msvc.node'");throw e.code="MODULE_NOT_FOUND",e}())):require("java-bridge-win32-x64-msvc")}catch(e){l=e}break;case"ia32":d=r(i(__dirname,"java.win32-ia32-msvc.node"));try{c=d?a(Object(function(){var e=new Error("Cannot find module './java.win32-ia32-msvc.node'");throw e.code="MODULE_NOT_FOUND",e}())):require("java-bridge-win32-ia32-msvc")}catch(e){l=e}break;case"arm64":d=r(i(__dirname,"java.win32-arm64-msvc.node"));try{c=d?a(Object(function(){var e=new Error("Cannot find module './java.win32-arm64-msvc.node'");throw e.code="MODULE_NOT_FOUND",e}())):require("java-bridge-win32-arm64-msvc")}catch(e){l=e}break;default:throw new Error(`Unsupported architecture on Windows: ${s}`)}break;case"darwin":switch(s){case"x64":d=r(i(__dirname,"java.darwin-x64.node"));try{c=d?a(Object(function(){var e=new Error("Cannot find module './java.darwin-x64.node'");throw e.code="MODULE_NOT_FOUND",e}())):require("java-bridge-darwin-x64")}catch(e){l=e}break;case"arm64":d=r(i(__dirname,"java.darwin-arm64.node"));try{c=d?a(Object(function(){var e=new Error("Cannot find module './java.darwin-arm64.node'");throw e.code="MODULE_NOT_FOUND",e}())):require("java-bridge-darwin-arm64")}catch(e){l=e}break;default:throw new Error(`Unsupported architecture on macOS: ${s}`)}break;case"freebsd":if("x64"!==s)throw new Error(`Unsupported architecture on FreeBSD: ${s}`);d=r(i(__dirname,"java.freebsd-x64.node"));try{c=d?a(Object(function(){var e=new Error("Cannot find module './java.freebsd-x64.node'");throw e.code="MODULE_NOT_FOUND",e}())):require("java-bridge-freebsd-x64")}catch(e){l=e}break;case"linux":switch(s){case"x64":if(u()){d=r(i(__dirname,"java.linux-x64-musl.node"));try{c=d?a(Object(function(){var e=new Error("Cannot find module './java.linux-x64-musl.node'");throw e.code="MODULE_NOT_FOUND",e}())):require("java-bridge-linux-x64-musl")}catch(e){l=e}}else{d=r(i(__dirname,"java.linux-x64-gnu.node"));try{c=d?a(388):require("java-bridge-linux-x64-gnu")}catch(e){l=e}}break;case"arm64":if(u()){d=r(i(__dirname,"java.linux-arm64-musl.node"));try{c=d?a(Object(function(){var e=new Error("Cannot find module './java.linux-arm64-musl.node'");throw e.code="MODULE_NOT_FOUND",e}())):require("java-bridge-linux-arm64-musl")}catch(e){l=e}}else{d=r(i(__dirname,"java.linux-arm64-gnu.node"));try{c=d?a(Object(function(){var e=new Error("Cannot find module './java.linux-arm64-gnu.node'");throw e.code="MODULE_NOT_FOUND",e}())):require("java-bridge-linux-arm64-gnu")}catch(e){l=e}}break;case"arm":d=r(i(__dirname,"java.linux-arm-gnueabihf.node"));try{c=d?a(Object(function(){var e=new Error("Cannot find module './java.linux-arm-gnueabihf.node'");throw e.code="MODULE_NOT_FOUND",e}())):require("java-bridge-linux-arm-gnueabihf")}catch(e){l=e}break;default:throw new Error(`Unsupported architecture on Linux: ${s}`)}break;default:throw new Error(`Unsupported OS: ${o}, architecture: ${s}`)}if(!c){if(l)throw l;throw new Error("Failed to load native binding")}const{Java:f,JavaInterfaceProxy:p,StdoutRedirect:y,getJavaLibPath:v}=c;e.exports.Java=f,e.exports.JavaInterfaceProxy=p,e.exports.StdoutRedirect=y,e.exports.getJavaLibPath=v},238:function(e,t,a){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.TypescriptBulkDefinitionGenerator=void 0;const n=r(a(248));t.TypescriptBulkDefinitionGenerator=class{constructor(){this.declarations=[],this.resolvedImports=[]}async generate(e,t=null){let a=0;for(const r of e){const e=new n.default(r,t,this.resolvedImports),i=await e.generate();a+=i.length,this.declarations.push(...i)}return a}async save(e){await n.default.save(this.declarations,e)}get moduleDeclarations(){return this.declarations}}},248:function(e,t,a){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,a,r){void 0===r&&(r=a);var n=Object.getOwnPropertyDescriptor(t,a);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[a]}}),Object.defineProperty(e,r,n)}:function(e,t,a,r){void 0===r&&(r=a),e[r]=t[a]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)"default"!==a&&Object.prototype.hasOwnProperty.call(e,a)&&r(t,e,a);return n(t,e),t},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const s=i(a(7)),c=a(236),d=o(a(147)),l=o(a(17)),u=s.default.createSourceFile("source.ts","",s.default.ScriptTarget.Latest,!1,s.default.ScriptKind.TS),f=["toString","wait","getClass","hashCode","notify","notifyAll","equals"];class p{constructor(e,t=null,a=[]){this.classname=e,this.progressCallback=t,this.resolvedImports=a,this.usesBasicOrJavaType=!1,this.additionalImports=[],this.importsToResolve=[]}static async convertMethods(e){const t=await(0,c.importClassAsync)("java.lang.reflect.Modifier"),a={};for(const r of e){const e=await r.getModifiers();if(await t.isPublic(e)){const n=await r.getName(),i=await r.getReturnType(),o=await r.getParameterTypes(),s={returnType:await i.getTypeName(),parameters:await Promise.all(o.map((e=>e.getTypeName()))),isStatic:await t.isStatic(e)};Object.hasOwn(a,n)?a[n].push(s):a[n]=[s]}}return a}async convertFields(e){const t=await(0,c.importClassAsync)("java.lang.reflect.Modifier"),a=[];for(const r of e){const e=await r.getModifiers();if(await t.isPublic(e)){const n=await r.getName(),i=await r.getType(),o=await i.getTypeName(),c=[s.default.factory.createModifier(s.SyntaxKind.PublicKeyword)];await t.isStatic(e)&&c.push(s.default.factory.createModifier(s.SyntaxKind.StaticKeyword)),await t.isFinal(e)&&c.push(s.default.factory.createModifier(s.SyntaxKind.ReadonlyKeyword));let d=s.default.factory.createPropertyDeclaration(c,n,void 0,this.javaTypeToTypescriptType(o,!0),void 0);d=s.default.addSyntheticLeadingComment(d,s.default.SyntaxKind.SingleLineCommentTrivia,` ================== Field ${n} ==================`,!0),a.push(s.default.addSyntheticLeadingComment(d,s.default.SyntaxKind.MultiLineCommentTrivia,`*\n * Original type: '${await i.getTypeName()}'\n `,!0))}}return a}async isAbstractOrInterface(e){const t=await(0,c.importClassAsync)("java.lang.reflect.Modifier");return await e.isInterface()||await t.isAbstract(await e.getModifiers())}createPrivateConstructor(){const e=s.default.factory.createConstructorDeclaration([s.default.factory.createModifier(s.default.SyntaxKind.PrivateKeyword)],[],s.default.factory.createBlock([s.default.factory.createExpressionStatement(s.default.factory.createCallExpression(s.default.factory.createSuper(),[],[]))],!0));return s.default.addSyntheticLeadingComment(e,s.default.SyntaxKind.MultiLineCommentTrivia,"*\n * Private constructor to prevent instantiation\n * as this is either an abstract class or an interface\n ",!0)}async convertConstructors(e){const t=await(0,c.importClassAsync)("java.lang.reflect.Modifier"),a=[];for(const r of e){const e=await r.getModifiers();if(await t.isPublic(e)){const e=await r.getParameterTypes();a.push(await Promise.all(e.map((e=>e.getTypeName()))))}}const r=a.map(((e,t)=>{const a=e.map(this.convertParameter.bind(this));let r=s.default.factory.createConstructorDeclaration([s.default.factory.createModifier(s.default.SyntaxKind.PublicKeyword)],a,void 0);return 0===t&&(r=s.default.addSyntheticLeadingComment(r,s.default.SyntaxKind.SingleLineCommentTrivia," ================== Constructors ==================",!0)),e.length>0&&(r=s.default.addSyntheticLeadingComment(r,s.default.SyntaxKind.MultiLineCommentTrivia,"*\n"+e.map(((e,t)=>` * @param var${t} original type: '${e}'\n`)).join("")+" ",!0)),r}));return[...a.map(((e,t)=>this.createMethod({returnType:this.classname,parameters:e,isStatic:!0},"newInstance",t,!1,!0))),...r]}primitiveToClassType(e){switch(e){case"boolean":return"java.lang.Boolean";case"byte":return"java.lang.Byte";case"char":return"java.lang.Character";case"short":return"java.lang.Short";case"int":return"java.lang.Integer";case"long":return"java.lang.Long";case"float":return"java.lang.Float";case"double":return"java.lang.Double";default:return e}}isPrimitive(e){return["boolean","byte","char","short","int","long","float","double"].includes(e)}javaTypeToTypescriptType(e,t,a=!0){const r=e=>a?s.default.factory.createUnionTypeNode([e,s.default.factory.createLiteralTypeNode(s.default.factory.createNull())]):e;switch(e){case"byte[]":case"java.lang.Byte[]":return r(s.default.factory.createTypeReferenceNode("Buffer"))}if(e.endsWith("[]"))return r(s.default.factory.createArrayTypeNode(this.javaTypeToTypescriptType(e.substring(0,e.length-2),t)));const n=e=>{this.resolvedImports.includes(e)||this.additionalImports.push(e),this.importsToResolve.push(e);const a=e===this.classname&&t;return s.default.factory.createTypeReferenceNode(e===this.classname?e.substring(e.lastIndexOf(".")+1)+(a?"Class":""):e.replaceAll(".","_"))},i=(r,...i)=>{const o=[s.default.factory.createKeywordTypeNode(r)];return!this.isPrimitive(e)&&a&&o.push(s.default.factory.createLiteralTypeNode(s.default.factory.createNull())),t?s.default.factory.createUnionTypeNode([n(this.primitiveToClassType(e)),...i.map((e=>s.default.factory.createKeywordTypeNode(e))),...o]):s.default.factory.createUnionTypeNode(o)};switch(e){case"int":case"java.lang.Integer":case"float":case"java.lang.Float":case"double":case"java.lang.Double":case"byte":case"java.lang.Byte":case"short":case"java.lang.Short":return i(s.SyntaxKind.NumberKeyword);case"long":case"java.lang.Long":return i(s.SyntaxKind.NumberKeyword,s.SyntaxKind.BigIntKeyword);case"char":case"java.lang.Character":case"java.lang.String":return r(s.default.factory.createKeywordTypeNode(s.SyntaxKind.StringKeyword));case"boolean":case"java.lang.Boolean":return i(s.SyntaxKind.BooleanKeyword);case"void":case"java.lang.Void":return s.default.factory.createKeywordTypeNode(s.SyntaxKind.VoidKeyword);case"java.lang.Object":return this.usesBasicOrJavaType=!0,r(s.default.factory.createTypeReferenceNode("BasicOrJavaType"));default:return r(n(e))}}convertParameter(e,t){const a="var"+t,r=this.javaTypeToTypescriptType(e,!0);return s.default.factory.createParameterDeclaration(void 0,void 0,a,void 0,r)}convertParameters(e){return e.parameters.map(this.convertParameter.bind(this))}static createMethodComment(e){return"*\n"+e.parameters.map(((e,t)=>` * @param var${t} original type: '${e}'\n`)).join("")+` * @return original return type: '${e.returnType}'\n `}createMethod(e,t,a,r,n){const i=s.default.factory.createModifier(s.default.SyntaxKind.PublicKeyword),o=s.default.factory.createModifier(s.default.SyntaxKind.StaticKeyword),c=[i];e.isStatic&&c.push(o);let d=this.javaTypeToTypescriptType(e.returnType,!1,!n);r||(d=s.default.factory.createTypeReferenceNode(s.default.factory.createIdentifier("Promise"),[d]));let l=s.default.factory.createMethodDeclaration(c,void 0,t+(r?"Sync":""),void 0,void 0,this.convertParameters(e),d,void 0);return 0===a&&(l=s.default.addSyntheticLeadingComment(l,s.default.SyntaxKind.SingleLineCommentTrivia,` ================== Method ${t} ==================`,!0)),s.default.addSyntheticLeadingComment(l,s.default.SyntaxKind.MultiLineCommentTrivia,p.createMethodComment(e),!0)}convertMethod(e,t){const a=[];for(let r=0;r<e.length;r++){const n=e[r],i=f.includes(t);a.push(this.createMethod(n,t,r,!1,i),this.createMethod(n,t,r,!0,i))}return a}getAdditionalImports(){const e=e=>{const t=this.classname.split("."),a=e.split(".");for(let e=0;e<t.length&&a[e]===t[e];e++)t[e]=null,a[e]=null;return"./"+t.filter((e=>!!e)).map((()=>"")).join("../")+a.filter((e=>!!e)).join("/")};return this.importsToResolve.filter((e=>e!=this.classname)).filter(((e,t,a)=>a.indexOf(e)===t)).map((t=>s.default.factory.createImportDeclaration(void 0,s.default.factory.createImportClause(!1,void 0,s.default.factory.createNamedImports([s.default.factory.createImportSpecifier(!1,s.default.factory.createIdentifier(t.substring(t.lastIndexOf(".")+1)),s.default.factory.createIdentifier(t.replaceAll(".","_")))])),s.default.factory.createStringLiteral(e(t)))))}getImports(){const e=[s.default.factory.createImportSpecifier(!1,void 0,s.default.factory.createIdentifier("importClass")),s.default.factory.createImportSpecifier(!1,void 0,s.default.factory.createIdentifier("JavaClass"))];this.usesBasicOrJavaType&&e.push(s.default.factory.createImportSpecifier(!1,void 0,s.default.factory.createIdentifier("BasicOrJavaType")));const t=s.default.factory.createNamedImports(e);return s.default.factory.createImportDeclaration(void 0,s.default.factory.createImportClause(!1,void 0,t),s.default.factory.createStringLiteral("java-bridge"))}getExportStatement(e,t){const a=s.default.factory.createClassDeclaration([s.default.factory.createModifier(s.default.SyntaxKind.ExportKeyword)],e,void 0,[s.default.factory.createHeritageClause(s.default.SyntaxKind.ExtendsKeyword,[s.default.factory.createExpressionWithTypeArguments(s.default.factory.createIdentifier(`importClass<typeof ${e}Class>("${this.classname}")`),void 0)])],t?[this.createPrivateConstructor()]:[]);return[s.default.addSyntheticLeadingComment(a,s.SyntaxKind.MultiLineCommentTrivia,`*\n * Class ${this.classname}.\n *\n * This actually imports the java class for further use.\n * The class ${e}Class only defines types, this is the class you should actually import.\n * Please note that this statement imports the underlying java class at runtime, which may take a while.\n * This was generated by java-bridge.\n * You should probably not edit this.\n `,!0),s.default.factory.createExportDefault(s.default.factory.createIdentifier(e))]}getText(e){return e.map((e=>e&&s.default.createPrinter({newLine:s.default.NewLineKind.LineFeed}).printNode(s.default.EmitHint.Unspecified,e,u)||"")).join("\n")}async generate(){if(this.resolvedImports.includes(this.classname))return[];this.resolvedImports.push(this.classname),this.progressCallback&&this.progressCallback(this.classname);const e=(await(0,c.importClassAsync)(this.classname)).class,t=this.classname.substring(this.classname.lastIndexOf(".")+1),a=(await e.getFields()).filter((function(e,t,a){return a.findIndex((t=>e.getNameSync()===t.getNameSync()))===t})),r=await e.getMethods(),n=await this.convertFields(a),i=await p.convertMethods(r);for(const[e,t]of Object.entries(i))n.push(...this.convertMethod(t,e));const o=await this.isAbstractOrInterface(e);if(!o){const t=await e.getDeclaredConstructors(),a=await this.convertConstructors(t);n.push(...a)}let d=s.default.factory.createClassDeclaration([s.default.factory.createModifier(s.default.SyntaxKind.ExportKeyword),s.default.factory.createModifier(s.default.SyntaxKind.DeclareKeyword)],t+"Class",void 0,[s.default.factory.createHeritageClause(s.default.SyntaxKind.ExtendsKeyword,[s.default.factory.createExpressionWithTypeArguments(s.default.factory.createIdentifier("JavaClass"),void 0)])],n);d=s.default.addSyntheticLeadingComment(d,s.default.SyntaxKind.MultiLineCommentTrivia,`*\n * This class just defines types, you should import ${t} instead of this.\n * This was generated by java-bridge.\n * You should probably not edit this.\n `,!0);const l=this.getText([this.getImports(),...this.getAdditionalImports(),null,d,null,...this.getExportStatement(t,o)]),u=[];for(const e of this.additionalImports){const t=new p(e,this.progressCallback,this.resolvedImports),a=await t.generate();u.push(...a)}return u.push({name:this.classname,contents:l}),u}static async save(e,t){for(const a of e){const e=a.name.split(".");e[e.length-1]=e[e.length-1]+".ts";const r=l.default.join(t,...e);await d.default.promises.mkdir(l.default.dirname(r),{recursive:!0}),await d.default.promises.writeFile(r,a.contents,{encoding:"utf8"})}}}t.default=p},91:(e,t)=>{"use strict";var a;Object.defineProperty(t,"__esModule",{value:!0}),t.JavaObject=t.JavaVersion=void 0,function(e){e.VER_1_1="1.1",e.VER_1_2="1.2",e.VER_1_4="1.4",e.VER_1_6="1.6",e.VER_1_8="1.8",e.VER_9="9",e.VER_10="10"}(a=t.JavaVersion||(t.JavaVersion={})),Object.freeze(a),t.JavaObject=class{}},236:function(e,t,a){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,a,r){void 0===r&&(r=a);var n=Object.getOwnPropertyDescriptor(t,a);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[a]}}),Object.defineProperty(e,r,n)}:function(e,t,a,r){void 0===r&&(r=a),e[r]=t[a]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__exportStar||function(e,t){for(var a in e)"default"===a||Object.prototype.hasOwnProperty.call(t,a)||r(t,e,a)},o=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)"default"!==a&&Object.prototype.hasOwnProperty.call(e,a)&&r(t,e,a);return n(t,e),t},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.TypescriptBulkDefinitionGenerator=t.TypescriptDefinitionGenerator=t.getJavaVersionSync=t.getJavaVersion=t.getJavaLibPath=t.UnknownJavaClass=t.JavaClassConstructor=t.JavaClass=t.JavaClassProxy=t.JavaClassInstance=t.JavaObject=t.JavaVersion=void 0;var c=a(91);Object.defineProperty(t,"JavaVersion",{enumerable:!0,get:function(){return c.JavaVersion}}),Object.defineProperty(t,"JavaObject",{enumerable:!0,get:function(){return c.JavaObject}}),Object.defineProperty(t,"JavaClassInstance",{enumerable:!0,get:function(){return c.JavaClassInstance}}),Object.defineProperty(t,"JavaClassProxy",{enumerable:!0,get:function(){return c.JavaClassProxy}}),Object.defineProperty(t,"JavaClass",{enumerable:!0,get:function(){return c.JavaClass}}),Object.defineProperty(t,"JavaClassConstructor",{enumerable:!0,get:function(){return c.JavaClassConstructor}}),Object.defineProperty(t,"UnknownJavaClass",{enumerable:!0,get:function(){return c.UnknownJavaClass}}),i(a(818),t);const d=o(a(818));t.default=d;var l=a(163);Object.defineProperty(t,"getJavaLibPath",{enumerable:!0,get:function(){return l.getJavaLibPath}});var u=a(102);Object.defineProperty(t,"getJavaVersion",{enumerable:!0,get:function(){return u.getJavaVersion}}),Object.defineProperty(t,"getJavaVersionSync",{enumerable:!0,get:function(){return u.getJavaVersionSync}});const f=s(a(248));t.TypescriptDefinitionGenerator=f.default;var p=a(238);Object.defineProperty(t,"TypescriptBulkDefinitionGenerator",{enumerable:!0,get:function(){return p.TypescriptBulkDefinitionGenerator}})},818:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getJavaInstance=t.newProxy=t.stdout=t.classpath=t.isInstanceOf=t.appendClasspath=t.importClassAsync=t.importClass=t.setClassLoader=t.getClassLoader=t.ensureJvm=void 0;const r=a(163),n=a(841);let i=null;function o(e){return!i&&(i=new r.Java(e?.libPath,e?.version,e?.opts,e,(0,n.getJavaLibPath)(e?.isPackagedElectron??!1),(0,n.getNativeLibPath)(e?.isPackagedElectron??!1)),!0)}function s(e){o(),i.appendClasspath(e)}var c;t.ensureJvm=o,t.getClassLoader=function(){return o(),i.classLoader},t.setClassLoader=function(e){o(),i.classLoader=e},t.importClass=function(e){return o(),i.importClass(e)},t.importClassAsync=function(e){return o(),i.importClassAsync(e)},t.appendClasspath=s,t.isInstanceOf=function(e,t){return o(),i.isInstanceOf(e,t)},(c=t.classpath||(t.classpath={})).append=function(e){s(e)},c.get=function(){return o(),i.loadedJars},(t.stdout||(t.stdout={})).enableRedirect=function(e,t){return o(),i.setStdoutCallbacks(e,t)},t.newProxy=function(e,t){o();const a=Object.create(null);for(const[e,r]of Object.entries(t))a[e]=(e,t,...a)=>{if(e)throw e;try{t(null,r(...a))}catch(e){e instanceof Error?t(e):t(new Error(e.toString()))}};return i.createInterfaceProxy(e,a)},t.getJavaInstance=function(){return i}},841:function(e,t,a){"use strict";var r=this&&this.__createBinding||(Object.create?function(e,t,a,r){void 0===r&&(r=a);var n=Object.getOwnPropertyDescriptor(t,a);n&&!("get"in n?!t.__esModule:n.writable||n.configurable)||(n={enumerable:!0,get:function(){return t[a]}}),Object.defineProperty(e,r,n)}:function(e,t,a,r){void 0===r&&(r=a),e[r]=t[a]}),n=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),i=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var a in e)"default"!==a&&Object.prototype.hasOwnProperty.call(e,a)&&r(t,e,a);return n(t,e),t},o=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getJavaLibPath=t.getNativeLibPath=void 0;const s=o(a(17)),c=i(a(147)),d=o(a(230)),{platform:l,arch:u}=process,f=/([\\/])app\.asar([\\/])/gim,p="$1app.asar.unpacked$2";function y(e,t){const r=s.default.join(__dirname,e+".node");if(c.default.existsSync(r))return t&&console.warn("Using local native module in packaged Electron app"),r;{const r=e.replaceAll(".","-").replace("java","java-bridge");let n;return n=require&&require.resolve?require.resolve(r):a(955).resolve(r),t&&(n=n.replace(f,p)),n}}function v(){return new Error(`Unsupported platform: ${l} ${u}`)}t.getNativeLibPath=function(e){switch(l){case"android":switch(u){case"arm64":return y("java.android-arm64",e);case"arm":return y("java.android-arm-eabi",e);default:throw v()}case"win32":return y(`java.win32-${u}-msvc`,e);case"darwin":return y(`java.darwin-${u}`,e);case"freebsd":return y(`java.freebsd-${u}`,e);case"linux":switch(u){case"x64":case"arm64":return y(`java.linux-${u}-${function(){if(process.report&&"function"==typeof process.report.getReport){const{glibcVersionRuntime:e}=process.report.getReport().header;return!e}try{return(0,c.readFileSync)("/usr/bin/ldd","utf8").includes("musl")}catch(e){return!0}}()?"musl":"gnu"}`,e);case"arm":return y("java.linux-arm-gnueabihf",e);default:throw v()}default:throw v()}},t.getJavaLibPath=function(e){let t=s.default.join(__dirname,"..","java-src","build","libs");e&&(t=t.replace(f,p));const a=d.default.sync("*.jar",{cwd:t});if(0===a.length)throw new Error(`No java lib found in ${t}`);return s.default.join(t,a[0])}},102:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getJavaVersionSync=t.getJavaVersion=void 0;const r=a(818);t.getJavaVersion=async function(){const e=await(0,r.importClassAsync)("java.lang.System");return await e.getProperty("java.version")},t.getJavaVersionSync=function(){return(0,r.importClass)("java.lang.System").getPropertySync("java.version")}},955:e=>{function t(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}t.keys=()=>[],t.resolve=t,t.id=955,e.exports=t},230:e=>{"use strict";e.exports=require("glob")},7:e=>{"use strict";e.exports=require("typescript")},81:e=>{"use strict";e.exports=require("child_process")},147:e=>{"use strict";e.exports=require("fs")},17:e=>{"use strict";e.exports=require("path")}},t={};function a(r){var n=t[r];if(void 0!==n)return n.exports;var i=t[r]={id:r,loaded:!1,exports:{}};return e[r].call(i.exports,i,i.exports,a),i.loaded=!0,i.exports}return a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),a.p="",a(236)})()));
2
2
  //# sourceMappingURL=index.prod.min.js.map