1 module libwasm.bindings.AddonManager;
2 
3 import libwasm.types;
4 
5 import memutils.ct: tuple;
6 import libwasm.bindings.EventTarget;
7 
8 @safe:
9 nothrow:
10 
11 struct Addon {
12   nothrow:
13   JsHandle handle;
14   alias handle this;
15   this(Handle h) {
16     this.handle = JsHandle(h);
17   }
18   string id()() {
19     return Object_Getter__string(this.handle, "id");
20   }
21   string version_()() {
22     return Object_Getter__string(this.handle, "version");
23   }
24   string type()() {
25     return Object_Getter__string(this.handle, "type");
26   }
27   string name()() {
28     return Object_Getter__string(this.handle, "name");
29   }
30   string description()() {
31     return Object_Getter__string(this.handle, "description");
32   }
33   bool isEnabled()() {
34     return Object_Getter__bool(this.handle, "isEnabled");
35   }
36   bool isActive()() {
37     return Object_Getter__bool(this.handle, "isActive");
38   }
39   bool canUninstall()() {
40     return Object_Getter__bool(this.handle, "canUninstall");
41   }
42   auto uninstall()() {
43     return JsPromise!(bool)(Object_Getter__Handle(this.handle, "uninstall"));
44   }
45   auto setEnabled()(bool value) {
46     return JsPromise!(void)(Object_Call_bool__Handle(this.handle, "setEnabled", value));
47   }
48 }
49 struct AddonInstall {
50   nothrow:
51   libwasm.bindings.EventTarget.EventTarget _parent;
52   alias _parent this;
53   this(Handle h) {
54     _parent = .EventTarget(h);
55   }
56   string state()() {
57     return Object_Getter__string(this._parent, "state");
58   }
59   Optional!(string) error()() {
60     return Object_Getter__OptionalString(this._parent, "error");
61   }
62   int progress()() {
63     return Object_Getter__int(this._parent, "progress");
64   }
65   int maxProgress()() {
66     return Object_Getter__int(this._parent, "maxProgress");
67   }
68   auto install()() {
69     return JsPromise!(void)(Object_Getter__Handle(this._parent, "install"));
70   }
71   auto cancel()() {
72     return JsPromise!(void)(Object_Getter__Handle(this._parent, "cancel"));
73   }
74 }
75 struct AddonManager {
76   nothrow:
77   libwasm.bindings.EventTarget.EventTarget _parent;
78   alias _parent this;
79   this(Handle h) {
80     _parent = .EventTarget(h);
81   }
82   auto getAddonByID()(string id) {
83     return JsPromise!(Addon)(Object_Call_string__Handle(this._parent, "getAddonByID", id));
84   }
85   auto createInstall()(scope ref addonInstallOptions options) {
86     return JsPromise!(AddonInstall)(Object_Call_Handle__Handle(this._parent, "createInstall", options.handle));
87   }
88   auto createInstall()() {
89     return JsPromise!(AddonInstall)(Object_Getter__Handle(this._parent, "createInstall"));
90   }
91   bool permissionPromptsEnabled()() {
92     return Object_Getter__bool(this._parent, "permissionPromptsEnabled");
93   }
94 }
95 struct AddonManagerPermissions {
96   nothrow:
97   JsHandle handle;
98   alias handle this;
99   this(Handle h) {
100     this.handle = JsHandle(h);
101   }
102   bool isHostPermitted()(string host) {
103     return Object_Call_string__bool(this.handle, "isHostPermitted", host);
104   }
105 }
106 struct addonInstallOptions {
107   nothrow:
108   JsHandle handle;
109   alias handle this;
110   this(Handle h) {
111     this.handle = JsHandle(h);
112   }
113   static auto create() {
114     return addonInstallOptions(libwasm_add__object());
115   }
116   void url()(string url) {
117     Object_Call_string__void(this.handle, "url", url);
118   }
119   string url()() {
120     return Object_Getter__string(this.handle, "url");
121   }
122   void hash(T0)(scope auto ref Optional!(T0) hash) if (isTOrPointer!(T0, string)) {
123     Serialize_Object_VarArgCall!void(this.handle, "hash", "Optional!(string)", tuple(!hash.empty, hash.front));
124   }
125   Optional!(string) hash()() {
126     return Object_Getter__OptionalString(this.handle, "hash");
127   }
128 }
129 
130