@hostlink/light 2.0.1 → 2.1.0

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 ADDED
@@ -0,0 +1,37 @@
1
+ # HostLink Light Cient
2
+
3
+ A javascript library for Light Framework.
4
+
5
+
6
+ ## Installation
7
+
8
+ ```bash
9
+ npm install @hostlink/light
10
+ ```
11
+
12
+ ## Usage
13
+
14
+ ```javascript
15
+ import { createClient } from '@hostlink/light';
16
+
17
+ const api=createClient('https://example.com/api');
18
+
19
+ ```
20
+
21
+ ## Login
22
+
23
+ ```javascript
24
+ await api.auth.login('username','password');
25
+ ```
26
+
27
+ ## Logout
28
+
29
+ ```javascript
30
+ await api.auth.logout();
31
+ ```
32
+
33
+
34
+
35
+
36
+
37
+
package/dist/auth.d.ts CHANGED
@@ -4,13 +4,15 @@ declare const _default: (axios: AxiosInstance) => {
4
4
  login: (username: string) => Promise<void>;
5
5
  register: () => Promise<void>;
6
6
  };
7
+ facebookLogin: (accessToken: string) => Promise<boolean>;
8
+ microsoftLogin: (accessToken: string) => Promise<boolean>;
7
9
  googleLogin: (credential: string) => Promise<boolean>;
8
10
  login: (username: string, password: string, code?: string) => Promise<boolean>;
9
11
  logout: () => Promise<boolean>;
10
12
  updatePassword: (oldPassword: string, newPassword: string) => Promise<boolean>;
11
- resetPassword: (email: string, password: string, code: string) => Promise<boolean>;
12
- forgetPassword: (email: string) => Promise<boolean>;
13
- verifyCode(email: string, code: string): Promise<boolean>;
13
+ resetPassword: (username: string, password: string, code: string) => Promise<boolean>;
14
+ forgetPassword: (username: string, email: string) => Promise<boolean>;
15
+ verifyCode(username: string, code: string): Promise<boolean>;
14
16
  granted: (rights: string[]) => Promise<string[]>;
15
17
  };
16
18
  export default _default;
package/dist/light.js CHANGED
@@ -2,11 +2,11 @@ import { jsonToGraphQLQuery as E, VariableType as S } from "json-to-graphql-quer
2
2
  import U from "axios";
3
3
  function j(t) {
4
4
  const e = "==".slice(0, (4 - t.length % 4) % 4), r = t.replace(/-/g, "+").replace(/_/g, "/") + e, n = atob(r), s = new ArrayBuffer(n.length), a = new Uint8Array(s);
5
- for (let o = 0; o < n.length; o++)
6
- a[o] = n.charCodeAt(o);
5
+ for (let i = 0; i < n.length; i++)
6
+ a[i] = n.charCodeAt(i);
7
7
  return s;
8
8
  }
9
- function N(t) {
9
+ function L(t) {
10
10
  const e = new Uint8Array(t);
11
11
  let r = "";
12
12
  for (const a of e)
@@ -16,9 +16,9 @@ function N(t) {
16
16
  "_"
17
17
  ).replace(/=/g, "");
18
18
  }
19
- var l = "copy", m = "convert";
19
+ var u = "copy", m = "convert";
20
20
  function F(t, e, r) {
21
- if (e === l)
21
+ if (e === u)
22
22
  return r;
23
23
  if (e === m)
24
24
  return t(r);
@@ -28,8 +28,8 @@ function F(t, e, r) {
28
28
  const n = {};
29
29
  for (const [s, a] of Object.entries(e)) {
30
30
  if (a.derive) {
31
- const o = a.derive(r);
32
- o !== void 0 && (r[s] = o);
31
+ const i = a.derive(r);
32
+ i !== void 0 && (r[s] = i);
33
33
  }
34
34
  if (!(s in r)) {
35
35
  if (a.required)
@@ -56,57 +56,57 @@ function q(t, e) {
56
56
  derive: e
57
57
  };
58
58
  }
59
- function u(t) {
59
+ function c(t) {
60
60
  return {
61
61
  required: !0,
62
62
  schema: t
63
63
  };
64
64
  }
65
- function d(t) {
65
+ function f(t) {
66
66
  return {
67
67
  required: !1,
68
68
  schema: t
69
69
  };
70
70
  }
71
- var J = {
72
- type: u(l),
73
- id: u(m),
74
- transports: d(l)
75
- }, L = {
76
- appid: d(l),
77
- appidExclude: d(l),
78
- credProps: d(l)
71
+ var N = {
72
+ type: c(u),
73
+ id: c(m),
74
+ transports: f(u)
75
+ }, J = {
76
+ appid: f(u),
77
+ appidExclude: f(u),
78
+ credProps: f(u)
79
79
  }, P = {
80
- appid: d(l),
81
- appidExclude: d(l),
82
- credProps: d(l)
83
- }, T = {
84
- publicKey: u({
85
- rp: u(l),
86
- user: u({
87
- id: u(m),
88
- name: u(l),
89
- displayName: u(l)
80
+ appid: f(u),
81
+ appidExclude: f(u),
82
+ credProps: f(u)
83
+ }, V = {
84
+ publicKey: c({
85
+ rp: c(u),
86
+ user: c({
87
+ id: c(m),
88
+ name: c(u),
89
+ displayName: c(u)
90
90
  }),
91
- challenge: u(m),
92
- pubKeyCredParams: u(l),
93
- timeout: d(l),
94
- excludeCredentials: d([J]),
95
- authenticatorSelection: d(l),
96
- attestation: d(l),
97
- extensions: d(L)
91
+ challenge: c(m),
92
+ pubKeyCredParams: c(u),
93
+ timeout: f(u),
94
+ excludeCredentials: f([N]),
95
+ authenticatorSelection: f(u),
96
+ attestation: f(u),
97
+ extensions: f(J)
98
98
  }),
99
- signal: d(l)
100
- }, V = {
101
- type: u(l),
102
- id: u(l),
103
- rawId: u(m),
104
- authenticatorAttachment: d(l),
105
- response: u({
106
- clientDataJSON: u(m),
107
- attestationObject: u(m),
99
+ signal: f(u)
100
+ }, T = {
101
+ type: c(u),
102
+ id: c(u),
103
+ rawId: c(m),
104
+ authenticatorAttachment: f(u),
105
+ response: c({
106
+ clientDataJSON: c(m),
107
+ attestationObject: c(m),
108
108
  transports: q(
109
- l,
109
+ u,
110
110
  (t) => {
111
111
  var e;
112
112
  return ((e = t.getTransports) == null ? void 0 : e.call(t)) || [];
@@ -118,26 +118,26 @@ var J = {
118
118
  (t) => t.getClientExtensionResults()
119
119
  )
120
120
  }, K = {
121
- mediation: d(l),
122
- publicKey: u({
123
- challenge: u(m),
124
- timeout: d(l),
125
- rpId: d(l),
126
- allowCredentials: d([J]),
127
- userVerification: d(l),
128
- extensions: d(L)
121
+ mediation: f(u),
122
+ publicKey: c({
123
+ challenge: c(m),
124
+ timeout: f(u),
125
+ rpId: f(u),
126
+ allowCredentials: f([N]),
127
+ userVerification: f(u),
128
+ extensions: f(J)
129
129
  }),
130
- signal: d(l)
130
+ signal: f(u)
131
131
  }, D = {
132
- type: u(l),
133
- id: u(l),
134
- rawId: u(m),
135
- authenticatorAttachment: d(l),
136
- response: u({
137
- clientDataJSON: u(m),
138
- authenticatorData: u(m),
139
- signature: u(m),
140
- userHandle: u(m)
132
+ type: c(u),
133
+ id: c(u),
134
+ rawId: c(m),
135
+ authenticatorAttachment: f(u),
136
+ response: c({
137
+ clientDataJSON: c(m),
138
+ authenticatorData: c(m),
139
+ signature: c(m),
140
+ userHandle: c(m)
141
141
  }),
142
142
  clientExtensionResults: q(
143
143
  P,
@@ -145,12 +145,12 @@ var J = {
145
145
  )
146
146
  };
147
147
  function B(t) {
148
- return F(j, T, t);
148
+ return F(j, V, t);
149
149
  }
150
150
  function Q(t) {
151
151
  return F(
152
- N,
153
- V,
152
+ L,
153
+ T,
154
154
  t
155
155
  );
156
156
  }
@@ -159,7 +159,7 @@ function W(t) {
159
159
  }
160
160
  function $(t) {
161
161
  return F(
162
- N,
162
+ L,
163
163
  D,
164
164
  t
165
165
  );
@@ -187,7 +187,7 @@ const H = (t) => ({
187
187
  })).webAuthnRequestOptions, s = W({
188
188
  publicKey: n
189
189
  }), a = await G(s);
190
- await c(t, "webAuthnAssertion", {
190
+ await l(t, "webAuthnAssertion", {
191
191
  username: e,
192
192
  assertion: a.toJSON()
193
193
  });
@@ -196,36 +196,43 @@ const H = (t) => ({
196
196
  const e = await h(t, { webAuthnCreationOptions: !0 }), r = B({
197
197
  publicKey: e.webAuthnCreationOptions
198
198
  }), n = await z(r);
199
- await c(t, "webAuthnRegister", {
199
+ await l(t, "webAuthnRegister", {
200
200
  registration: n.toJSON()
201
201
  });
202
202
  }
203
203
  }), I = (t) => ({
204
204
  WebAuthn: H(t),
205
- googleLogin: (e) => c(t, "googleLogin", {
205
+ facebookLogin: (e) => l(t, "facebookLogin", {
206
+ access_token: e
207
+ }),
208
+ microsoftLogin: (e) => l(t, "microsoftLogin", {
209
+ access_token: e
210
+ }),
211
+ googleLogin: (e) => l(t, "googleLogin", {
206
212
  credential: e
207
213
  }),
208
- login: (e, r, n = "") => c(t, "login", {
214
+ login: (e, r, n = "") => l(t, "login", {
209
215
  username: e,
210
216
  password: r,
211
217
  code: n
212
218
  }),
213
- logout: () => c(t, "logout"),
214
- updatePassword: (e, r) => c(t, "updatePassword", {
219
+ logout: () => l(t, "logout"),
220
+ updatePassword: (e, r) => l(t, "updatePassword", {
215
221
  old_password: e,
216
222
  new_password: r
217
223
  }),
218
- resetPassword: (e, r, n) => c(t, "resetPassword", {
219
- email: e,
224
+ resetPassword: (e, r, n) => l(t, "resetPassword", {
225
+ username: e,
220
226
  password: r,
221
227
  code: n
222
228
  }),
223
- forgetPassword: (e) => c(t, "forgetPassword", {
224
- email: e
229
+ forgetPassword: (e, r) => l(t, "forgetPassword", {
230
+ username: e,
231
+ email: r
225
232
  }),
226
233
  verifyCode(e, r) {
227
- return c(t, "verifyCode", {
228
- email: e,
234
+ return l(t, "forgetPasswordVerifyCode", {
235
+ username: e,
229
236
  code: r
230
237
  });
231
238
  },
@@ -237,41 +244,41 @@ const H = (t) => ({
237
244
  }
238
245
  })).granted
239
246
  }), M = (t, e, r) => {
240
- const n = e, s = t, a = r, o = (i) => a[i] ? a[i]() : null;
247
+ const n = e, s = t, a = r, i = (o) => a[o] ? a[o]() : null;
241
248
  return {
242
- field: o,
249
+ field: i,
243
250
  $fields: a,
244
- gqlFields(i) {
251
+ gqlFields(o) {
245
252
  const p = [];
246
- for (const f of i)
247
- if (typeof f == "string") {
248
- const g = o(f);
253
+ for (const d of o)
254
+ if (typeof d == "string") {
255
+ const g = i(d);
249
256
  g && p.push(g.getGQLField());
250
- } else typeof f == "object" && p.push(f);
257
+ } else typeof d == "object" && p.push(d);
251
258
  return p;
252
259
  },
253
- async update(i, p) {
254
- return await c(s, "update" + n, { id: i, data: p });
260
+ async update(o, p) {
261
+ return await l(s, "update" + n, { id: o, data: p });
255
262
  },
256
- async delete(i) {
257
- return await c(s, "delete" + n, { id: i });
263
+ async delete(o) {
264
+ return await l(s, "delete" + n, { id: o });
258
265
  },
259
- async add(i) {
260
- return await c(s, "add" + n, { data: i });
266
+ async add(o) {
267
+ return await l(s, "add" + n, { data: o });
261
268
  },
262
- fields(i) {
269
+ fields(o) {
263
270
  let p = [];
264
- for (let f of i) {
265
- const g = o(f);
271
+ for (let d of o) {
272
+ const g = i(d);
266
273
  g && p.push(g);
267
274
  }
268
275
  return p;
269
276
  },
270
- async get(i, p) {
277
+ async get(o, p) {
271
278
  return (await h(s, {
272
279
  ["list" + n]: {
273
280
  __args: {
274
- filters: i
281
+ filters: o
275
282
  },
276
283
  data: {
277
284
  __args: {
@@ -282,11 +289,11 @@ const H = (t) => ({
282
289
  }
283
290
  }))["list" + n].data[0];
284
291
  },
285
- async list(i, p) {
292
+ async list(o, p) {
286
293
  return (await h(s, {
287
294
  ["list" + n]: {
288
295
  __args: {
289
- filters: i
296
+ filters: o
290
297
  },
291
298
  data: {
292
299
  ...A(p)
@@ -298,17 +305,17 @@ const H = (t) => ({
298
305
  };
299
306
  function X(t) {
300
307
  t = "<~" + t + "~>";
301
- var e, r, n, s, a, o = String, i = 255;
302
- for (t.slice(0, 2) === "<~" && t.slice(-2), t = t.slice(2, -2).replace(/\s/g, "").replace("z", "!!!!!"), e = "uuuuu".slice(t.length % 5 || 5), t += e, n = [], s = 0, a = t.length; a > s; s += 5) r = 52200625 * (t.charCodeAt(s) - 33) + 614125 * (t.charCodeAt(s + 1) - 33) + 7225 * (t.charCodeAt(s + 2) - 33) + 85 * (t.charCodeAt(s + 3) - 33) + (t.charCodeAt(s + 4) - 33), n.push(i & r >> 24, i & r >> 16, i & r >> 8, i & r);
303
- return function(p, f) {
304
- for (var g = f; g > 0; g--) p.pop();
305
- }(n, e.length), o.fromCharCode.apply(o, n);
308
+ var e, r, n, s, a, i = String, o = 255;
309
+ for (t.slice(0, 2) === "<~" && t.slice(-2), t = t.slice(2, -2).replace(/\s/g, "").replace("z", "!!!!!"), e = "uuuuu".slice(t.length % 5 || 5), t += e, n = [], s = 0, a = t.length; a > s; s += 5) r = 52200625 * (t.charCodeAt(s) - 33) + 614125 * (t.charCodeAt(s + 1) - 33) + 7225 * (t.charCodeAt(s + 2) - 33) + 85 * (t.charCodeAt(s + 3) - 33) + (t.charCodeAt(s + 4) - 33), n.push(o & r >> 24, o & r >> 16, o & r >> 8, o & r);
310
+ return function(p, d) {
311
+ for (var g = d; g > 0; g--) p.pop();
312
+ }(n, e.length), i.fromCharCode.apply(i, n);
306
313
  }
307
314
  const v = (t = "") => {
308
315
  const e = t, r = (n = "application/octet-stream") => {
309
316
  const s = new Uint8Array(e.length);
310
- for (let i = 0; i < e.length; i++)
311
- s[i] = e.charCodeAt(i);
317
+ for (let o = 0; o < e.length; o++)
318
+ s[o] = e.charCodeAt(o);
312
319
  const a = new Blob([s], { type: n });
313
320
  return URL.createObjectURL(a);
314
321
  };
@@ -323,7 +330,7 @@ const v = (t = "") => {
323
330
  window.open(r(n), "_blank");
324
331
  }
325
332
  };
326
- }, ie = {
333
+ }, oe = {
327
334
  fromBase85: (t) => v(X(t)),
328
335
  fromBase64: (t) => v(atob(t)),
329
336
  fromString: (t) => v(t)
@@ -365,41 +372,41 @@ function Z(t) {
365
372
  return !0;
366
373
  return !1;
367
374
  }
368
- const c = async (t, e, r = null, n = []) => {
375
+ const l = async (t, e, r = null, n = []) => {
369
376
  let s = {
370
377
  [e]: {}
371
378
  };
372
379
  const a = new FormData();
373
- let o = !1;
380
+ let i = !1;
374
381
  if (r) {
375
- const f = {}, g = {}, O = {};
382
+ const d = {}, g = {}, O = {};
376
383
  let b = 0;
377
384
  Object.entries(r).forEach(([w, _]) => {
378
385
  if (_ instanceof Array && Y(_)) {
379
- o = !0;
386
+ i = !0;
380
387
  let y = 0;
381
388
  _.forEach((C) => {
382
- C instanceof File && (f[w] = new S(w), g[b] = ["variables." + w + "." + y], a.append(b.toString(), C), b++);
389
+ C instanceof File && (d[w] = new S(w), g[b] = ["variables." + w + "." + y], a.append(b.toString(), C), b++);
383
390
  }), O[w] = "[Upload!]!";
384
- } else _ instanceof File ? (o = !0, f[w] = new S(w), g[b] = ["variables." + w], a.append(b.toString(), _), O[w] = "Upload!", b++) : _ instanceof Object && Z(_) ? (o = !0, f[w] = {}, Object.entries(_).forEach(([y, C]) => {
385
- C instanceof File ? (f[w][y] = new S(y), g[b] = ["variables." + y], a.append(b.toString(), C), O[y] = "Upload!", b++) : f[w][y] = C;
386
- })) : _ !== void 0 && (f[w] = _);
387
- }), s[e].__args = f, s.__variables = O, o && a.append("map", JSON.stringify(g));
391
+ } else _ instanceof File ? (i = !0, d[w] = new S(w), g[b] = ["variables." + w], a.append(b.toString(), _), O[w] = "Upload!", b++) : _ instanceof Object && Z(_) ? (i = !0, d[w] = {}, Object.entries(_).forEach(([y, C]) => {
392
+ C instanceof File ? (d[w][y] = new S(y), g[b] = ["variables." + y], a.append(b.toString(), C), O[y] = "Upload!", b++) : d[w][y] = C;
393
+ })) : _ !== void 0 && (d[w] = _);
394
+ }), s[e].__args = d, s.__variables = O, i && a.append("map", JSON.stringify(g));
388
395
  }
389
- Object.entries(A(n)).forEach(([f, g]) => {
390
- s[e][f] = g;
396
+ Object.entries(A(n)).forEach(([d, g]) => {
397
+ s[e][d] = g;
391
398
  }), Object.entries(s[e]).length === 0 && (s[e] = !0);
392
- let i = null;
399
+ let o = null;
393
400
  const p = E({ mutation: s });
394
- if (o ? (a.append("operations", JSON.stringify({
401
+ if (i ? (a.append("operations", JSON.stringify({
395
402
  query: p
396
- })), i = await t.post("", a)) : i = await t.post("", {
403
+ })), o = await t.post("", a)) : o = await t.post("", {
397
404
  query: p
398
- }), i.data.errors)
399
- throw new Error(i.data.errors[0].message);
400
- return i.data.data[e];
405
+ }), o.data.errors)
406
+ throw new Error(o.data.errors[0].message);
407
+ return o.data.data[e];
401
408
  }, x = (t) => ({
402
- uploadTempFile: (e) => c(t, "fsUploadTempFile", {
409
+ uploadTempFile: (e) => l(t, "fsUploadTempFile", {
403
410
  file: e
404
411
  }, {
405
412
  name: !0,
@@ -417,9 +424,9 @@ const c = async (t, e, r = null, n = []) => {
417
424
  path: !0
418
425
  }
419
426
  })).fsListFolders,
420
- create: (e) => c(t, "fsCreateFolder", { path: e }),
421
- delete: (e) => c(t, "fsDeleteFolder", { path: e }),
422
- rename: (e, r) => c(t, "fsRenameFolder", { path: e, name: r })
427
+ create: (e) => l(t, "fsCreateFolder", { path: e }),
428
+ delete: (e) => l(t, "fsDeleteFolder", { path: e }),
429
+ rename: (e, r) => l(t, "fsRenameFolder", { path: e, name: r })
423
430
  },
424
431
  files: {
425
432
  list: async (e) => (await h(t, {
@@ -446,13 +453,13 @@ const c = async (t, e, r = null, n = []) => {
446
453
  });
447
454
  return window.atob(r.fsFile.base64Content);
448
455
  },
449
- write: (e, r) => c(t, "fsWriteFile", {
456
+ write: (e, r) => l(t, "fsWriteFile", {
450
457
  path: e,
451
458
  content: r
452
459
  }),
453
- delete: (e) => c(t, "fsDeleteFile", { path: e }),
454
- rename: (e, r) => c(t, "fsRenameFile", { path: e, name: r }),
455
- move: (e, r) => c(t, "fsMoveFile", { source: e, target: r })
460
+ delete: (e) => l(t, "fsDeleteFile", { path: e }),
461
+ rename: (e, r) => l(t, "fsRenameFile", { path: e, name: r }),
462
+ move: (e, r) => l(t, "fsMoveFile", { source: e, target: r })
456
463
  }
457
464
  }), k = (t) => ({
458
465
  get: async (e) => (await t({
@@ -463,7 +470,7 @@ const c = async (t, e, r = null, n = []) => {
463
470
  }
464
471
  })).config
465
472
  }), ee = (t) => ({
466
- send: (e, r, n) => c(t, "sendMail", {
473
+ send: (e, r, n) => l(t, "sendMail", {
467
474
  email: e,
468
475
  subject: r,
469
476
  message: n
@@ -495,12 +502,12 @@ const c = async (t, e, r = null, n = []) => {
495
502
  getRaw() {
496
503
  return a;
497
504
  },
498
- getValue(o) {
499
- return a.field && typeof a.field == "function" ? a.field(o) : a.field && typeof a.field == "string" ? o[a.field] : o[this.getName()];
505
+ getValue(i) {
506
+ return a.field && typeof a.field == "function" ? a.field(i) : a.field && typeof a.field == "string" ? i[a.field] : i[this.getName()];
500
507
  },
501
- getFormattedValue(o) {
502
- const i = this.getValue(o);
503
- return a.format ? a.format(i) : i;
508
+ getFormattedValue(i) {
509
+ const o = this.getValue(i);
510
+ return a.format ? a.format(o) : o;
504
511
  }
505
512
  });
506
513
  }
@@ -516,11 +523,11 @@ const c = async (t, e, r = null, n = []) => {
516
523
  name: !0
517
524
  }
518
525
  })).listRole
519
- }), oe = (t) => {
526
+ }), ie = (t) => {
520
527
  const e = U.create({
521
528
  baseURL: t,
522
529
  withCredentials: !0
523
- }), r = (a, o = null, i = []) => c(e, a, o, i), n = (a) => h(e, a), s = re();
530
+ }), r = (a, i = null, o = []) => l(e, a, i, o), n = (a) => h(e, a), s = re();
524
531
  return {
525
532
  baseURL: t,
526
533
  axios: e,
@@ -539,10 +546,10 @@ const c = async (t, e, r = null, n = []) => {
539
546
  };
540
547
  };
541
548
  export {
542
- ie as File,
543
- oe as createClient,
549
+ oe as File,
550
+ ie as createClient,
544
551
  v as file,
545
- c as mutation,
552
+ l as mutation,
546
553
  h as query,
547
554
  A as toQuery
548
555
  };
@@ -1 +1 @@
1
- (function(h,y){typeof exports=="object"&&typeof module<"u"?y(exports,require("json-to-graphql-query"),require("axios")):typeof define=="function"&&define.amd?define(["exports","json-to-graphql-query","axios"],y):(h=typeof globalThis<"u"?globalThis:h||self,y(h.light={},h.jsonToGraphqlQuery,h.axios))})(this,function(h,y,T){"use strict";function E(t){const e="==".slice(0,(4-t.length%4)%4),r=t.replace(/-/g,"+").replace(/_/g,"/")+e,n=atob(r),s=new ArrayBuffer(n.length),a=new Uint8Array(s);for(let u=0;u<n.length;u++)a[u]=n.charCodeAt(u);return s}function N(t){const e=new Uint8Array(t);let r="";for(const a of e)r+=String.fromCharCode(a);return btoa(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}var o="copy",m="convert";function O(t,e,r){if(e===o)return r;if(e===m)return t(r);if(e instanceof Array)return r.map(n=>O(t,e[0],n));if(e instanceof Object){const n={};for(const[s,a]of Object.entries(e)){if(a.derive){const u=a.derive(r);u!==void 0&&(r[s]=u)}if(!(s in r)){if(a.required)throw new Error(`Missing key: ${s}`);continue}if(r[s]==null){n[s]=null;continue}n[s]=O(t,a.schema,r[s])}return n}}function j(t,e){return{required:!0,schema:t,derive:e}}function l(t){return{required:!0,schema:t}}function d(t){return{required:!1,schema:t}}var J={type:l(o),id:l(m),transports:d(o)},L={appid:d(o),appidExclude:d(o),credProps:d(o)},P={appid:d(o),appidExclude:d(o),credProps:d(o)},U={publicKey:l({rp:l(o),user:l({id:l(m),name:l(o),displayName:l(o)}),challenge:l(m),pubKeyCredParams:l(o),timeout:d(o),excludeCredentials:d([J]),authenticatorSelection:d(o),attestation:d(o),extensions:d(L)}),signal:d(o)},V={type:l(o),id:l(o),rawId:l(m),authenticatorAttachment:d(o),response:l({clientDataJSON:l(m),attestationObject:l(m),transports:j(o,t=>{var e;return((e=t.getTransports)==null?void 0:e.call(t))||[]})}),clientExtensionResults:j(P,t=>t.getClientExtensionResults())},K={mediation:d(o),publicKey:l({challenge:l(m),timeout:d(o),rpId:d(o),allowCredentials:d([J]),userVerification:d(o),extensions:d(L)}),signal:d(o)},D={type:l(o),id:l(o),rawId:l(m),authenticatorAttachment:d(o),response:l({clientDataJSON:l(m),authenticatorData:l(m),signature:l(m),userHandle:l(m)}),clientExtensionResults:j(P,t=>t.getClientExtensionResults())};function B(t){return O(E,U,t)}function Q(t){return O(N,V,t)}function W(t){return O(E,K,t)}function M(t){return O(N,D,t)}async function $(t){const e=await navigator.credentials.create(t);return e.toJSON=()=>Q(e),e}async function z(t){const e=await navigator.credentials.get(t);return e.toJSON=()=>M(e),e}const H=t=>({login:async e=>{const n=(await w(t,{webAuthnRequestOptions:{__args:{username:e}}})).webAuthnRequestOptions,s=W({publicKey:n}),a=await z(s);await c(t,"webAuthnAssertion",{username:e,assertion:a.toJSON()})},register:async()=>{const e=await w(t,{webAuthnCreationOptions:!0}),r=B({publicKey:e.webAuthnCreationOptions}),n=await $(r);await c(t,"webAuthnRegister",{registration:n.toJSON()})}}),I=t=>({WebAuthn:H(t),googleLogin:e=>c(t,"googleLogin",{credential:e}),login:(e,r,n="")=>c(t,"login",{username:e,password:r,code:n}),logout:()=>c(t,"logout"),updatePassword:(e,r)=>c(t,"updatePassword",{old_password:e,new_password:r}),resetPassword:(e,r,n)=>c(t,"resetPassword",{email:e,password:r,code:n}),forgetPassword:e=>c(t,"forgetPassword",{email:e}),verifyCode(e,r){return c(t,"verifyCode",{email:e,code:r})},granted:async e=>(await w(t,{granted:{__args:{rights:e}}})).granted}),G=(t,e,r)=>{const n=e,s=t,a=r,u=i=>a[i]?a[i]():null;return{field:u,$fields:a,gqlFields(i){const p=[];for(const f of i)if(typeof f=="string"){const g=u(f);g&&p.push(g.getGQLField())}else typeof f=="object"&&p.push(f);return p},async update(i,p){return await c(s,"update"+n,{id:i,data:p})},async delete(i){return await c(s,"delete"+n,{id:i})},async add(i){return await c(s,"add"+n,{data:i})},fields(i){let p=[];for(let f of i){const g=u(f);g&&p.push(g)}return p},async get(i,p){return(await w(s,{["list"+n]:{__args:{filters:i},data:{__args:{limit:1},...S(p)}}}))["list"+n].data[0]},async list(i,p){return(await w(s,{["list"+n]:{__args:{filters:i},data:{...S(p)}}}))["list"+n].data}}};function X(t){t="<~"+t+"~>";var e,r,n,s,a,u=String,i=255;for(t.slice(0,2)==="<~"&&t.slice(-2),t=t.slice(2,-2).replace(/\s/g,"").replace("z","!!!!!"),e="uuuuu".slice(t.length%5||5),t+=e,n=[],s=0,a=t.length;a>s;s+=5)r=52200625*(t.charCodeAt(s)-33)+614125*(t.charCodeAt(s+1)-33)+7225*(t.charCodeAt(s+2)-33)+85*(t.charCodeAt(s+3)-33)+(t.charCodeAt(s+4)-33),n.push(i&r>>24,i&r>>16,i&r>>8,i&r);return function(p,f){for(var g=f;g>0;g--)p.pop()}(n,e.length),u.fromCharCode.apply(u,n)}const q=(t="")=>{const e=t,r=(n="application/octet-stream")=>{const s=new Uint8Array(e.length);for(let i=0;i<e.length;i++)s[i]=e.charCodeAt(i);const a=new Blob([s],{type:n});return URL.createObjectURL(a)};return{getContent:()=>e,getURL:r,download:n=>{const s=document.createElement("a");s.download=n,s.href=r(),document.body.appendChild(s),s.click(),document.body.removeChild(s)},open:n=>{window.open(r(n),"_blank")}}},Y={fromBase85:t=>q(X(t)),fromBase64:t=>q(atob(t)),fromString:t=>q(t)},R=t=>{let e={};return typeof t=="string"?(e[t]=!0,e):t instanceof Array?(t.forEach(r=>{Object.entries(R(r)).forEach(([n,s])=>{e[n]=s})}),e):(Object.entries(t).forEach(([r,n])=>{if(r=="__args"||r=="__aliasFor"||r=="__variables"||r=="__directives"||r=="__all_on"||r=="__name"){e[r]=n;return}if(typeof n=="boolean"){e[r]=n;return}e[r]=R(n)}),e)},S=t=>R(t),w=async(t,e)=>{let r=y.jsonToGraphQLQuery(S(e));const n=await t.post("",{query:`{ ${r} }`});if(n.data.errors)throw new Error(n.data.errors[0].message);return n.data.data};function Z(t){for(let e=0;e<t.length;e++)if(t[e]instanceof File)return!0;return!1}function x(t){for(let e in t)if(t[e]instanceof File)return!0;return!1}const c=async(t,e,r=null,n=[])=>{let s={[e]:{}};const a=new FormData;let u=!1;if(r){const f={},g={},v={};let C=0;Object.entries(r).forEach(([b,_])=>{if(_ instanceof Array&&Z(_)){u=!0;let F=0;_.forEach(A=>{A instanceof File&&(f[b]=new y.VariableType(b),g[C]=["variables."+b+"."+F],a.append(C.toString(),A),C++)}),v[b]="[Upload!]!"}else _ instanceof File?(u=!0,f[b]=new y.VariableType(b),g[C]=["variables."+b],a.append(C.toString(),_),v[b]="Upload!",C++):_ instanceof Object&&x(_)?(u=!0,f[b]={},Object.entries(_).forEach(([F,A])=>{A instanceof File?(f[b][F]=new y.VariableType(F),g[C]=["variables."+F],a.append(C.toString(),A),v[F]="Upload!",C++):f[b][F]=A})):_!==void 0&&(f[b]=_)}),s[e].__args=f,s.__variables=v,u&&a.append("map",JSON.stringify(g))}Object.entries(S(n)).forEach(([f,g])=>{s[e][f]=g}),Object.entries(s[e]).length===0&&(s[e]=!0);let i=null;const p=y.jsonToGraphQLQuery({mutation:s});if(u?(a.append("operations",JSON.stringify({query:p})),i=await t.post("",a)):i=await t.post("",{query:p}),i.data.errors)throw new Error(i.data.errors[0].message);return i.data.data[e]},k=t=>({uploadTempFile:e=>c(t,"fsUploadTempFile",{file:e},{name:!0,path:!0,size:!0,mime:!0}),folders:{list:async e=>(await w(t,{fsListFolders:{__args:{path:e},name:!0,path:!0}})).fsListFolders,create:e=>c(t,"fsCreateFolder",{path:e}),delete:e=>c(t,"fsDeleteFolder",{path:e}),rename:(e,r)=>c(t,"fsRenameFolder",{path:e,name:r})},files:{list:async e=>(await w(t,{fsListFiles:{__args:{path:e},name:!0,path:!0,size:!0,mime:!0,canPreview:!0,imagePath:!0}})).fsListFiles,read:async e=>{let r=await w(t,{fsFile:{__args:{path:e},base64Content:!0}});return window.atob(r.fsFile.base64Content)},write:(e,r)=>c(t,"fsWriteFile",{path:e,content:r}),delete:e=>c(t,"fsDeleteFile",{path:e}),rename:(e,r)=>c(t,"fsRenameFile",{path:e,name:r}),move:(e,r)=>c(t,"fsMoveFile",{source:e,target:r})}}),ee=t=>({get:async e=>(await t({config:{__args:{name:e}}})).config}),te=t=>({send:(e,r,n)=>c(t,"sendMail",{email:e,subject:r,message:n})}),re=t=>({list:async()=>(await w(t,{listUser:{data:{user_id:!0,username:!0,first_name:!0,last_name:!0,status:!0}}})).listUser.data}),ne=()=>{const t={};return{create(e,r){t[e]={};for(const n of Object.entries(r)){const[s,a]=n;t[e][s]=()=>({name:a.name?a.name:s,raw:a,getName:()=>a.name?a.name:s,getGQLField:()=>a.gqlField!==void 0?a.gqlField:a.name||s,getRaw(){return a},getValue(u){return a.field&&typeof a.field=="function"?a.field(u):a.field&&typeof a.field=="string"?u[a.field]:u[this.getName()]},getFormattedValue(u){const i=this.getValue(u);return a.format?a.format(i):i}})}return t[e]},get(e){return t[e]}}},se=t=>({list:async()=>(await w(t,{listRole:{name:!0}})).listRole}),ae=t=>{const e=T.create({baseURL:t,withCredentials:!0}),r=(a,u=null,i=[])=>c(e,a,u,i),n=a=>w(e,a),s=ne();return{baseURL:t,axios:e,auth:I(e),mutation:r,query:n,config:ee(n),mail:te(e),users:re(e),fs:k(e),models:s,model(a){return G(e,a,s.get(a))},roles:se(e)}};h.File=Y,h.createClient=ae,h.file=q,h.mutation=c,h.query=w,h.toQuery=S,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})});
1
+ (function(m,y){typeof exports=="object"&&typeof module<"u"?y(exports,require("json-to-graphql-query"),require("axios")):typeof define=="function"&&define.amd?define(["exports","json-to-graphql-query","axios"],y):(m=typeof globalThis<"u"?globalThis:m||self,y(m.light={},m.jsonToGraphqlQuery,m.axios))})(this,function(m,y,T){"use strict";function E(t){const e="==".slice(0,(4-t.length%4)%4),r=t.replace(/-/g,"+").replace(/_/g,"/")+e,n=atob(r),s=new ArrayBuffer(n.length),a=new Uint8Array(s);for(let u=0;u<n.length;u++)a[u]=n.charCodeAt(u);return s}function L(t){const e=new Uint8Array(t);let r="";for(const a of e)r+=String.fromCharCode(a);return btoa(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}var o="copy",h="convert";function O(t,e,r){if(e===o)return r;if(e===h)return t(r);if(e instanceof Array)return r.map(n=>O(t,e[0],n));if(e instanceof Object){const n={};for(const[s,a]of Object.entries(e)){if(a.derive){const u=a.derive(r);u!==void 0&&(r[s]=u)}if(!(s in r)){if(a.required)throw new Error(`Missing key: ${s}`);continue}if(r[s]==null){n[s]=null;continue}n[s]=O(t,a.schema,r[s])}return n}}function j(t,e){return{required:!0,schema:t,derive:e}}function c(t){return{required:!0,schema:t}}function f(t){return{required:!1,schema:t}}var N={type:c(o),id:c(h),transports:f(o)},J={appid:f(o),appidExclude:f(o),credProps:f(o)},P={appid:f(o),appidExclude:f(o),credProps:f(o)},V={publicKey:c({rp:c(o),user:c({id:c(h),name:c(o),displayName:c(o)}),challenge:c(h),pubKeyCredParams:c(o),timeout:f(o),excludeCredentials:f([N]),authenticatorSelection:f(o),attestation:f(o),extensions:f(J)}),signal:f(o)},U={type:c(o),id:c(o),rawId:c(h),authenticatorAttachment:f(o),response:c({clientDataJSON:c(h),attestationObject:c(h),transports:j(o,t=>{var e;return((e=t.getTransports)==null?void 0:e.call(t))||[]})}),clientExtensionResults:j(P,t=>t.getClientExtensionResults())},K={mediation:f(o),publicKey:c({challenge:c(h),timeout:f(o),rpId:f(o),allowCredentials:f([N]),userVerification:f(o),extensions:f(J)}),signal:f(o)},D={type:c(o),id:c(o),rawId:c(h),authenticatorAttachment:f(o),response:c({clientDataJSON:c(h),authenticatorData:c(h),signature:c(h),userHandle:c(h)}),clientExtensionResults:j(P,t=>t.getClientExtensionResults())};function B(t){return O(E,V,t)}function Q(t){return O(L,U,t)}function W(t){return O(E,K,t)}function M(t){return O(L,D,t)}async function $(t){const e=await navigator.credentials.create(t);return e.toJSON=()=>Q(e),e}async function z(t){const e=await navigator.credentials.get(t);return e.toJSON=()=>M(e),e}const H=t=>({login:async e=>{const n=(await w(t,{webAuthnRequestOptions:{__args:{username:e}}})).webAuthnRequestOptions,s=W({publicKey:n}),a=await z(s);await l(t,"webAuthnAssertion",{username:e,assertion:a.toJSON()})},register:async()=>{const e=await w(t,{webAuthnCreationOptions:!0}),r=B({publicKey:e.webAuthnCreationOptions}),n=await $(r);await l(t,"webAuthnRegister",{registration:n.toJSON()})}}),I=t=>({WebAuthn:H(t),facebookLogin:e=>l(t,"facebookLogin",{access_token:e}),microsoftLogin:e=>l(t,"microsoftLogin",{access_token:e}),googleLogin:e=>l(t,"googleLogin",{credential:e}),login:(e,r,n="")=>l(t,"login",{username:e,password:r,code:n}),logout:()=>l(t,"logout"),updatePassword:(e,r)=>l(t,"updatePassword",{old_password:e,new_password:r}),resetPassword:(e,r,n)=>l(t,"resetPassword",{username:e,password:r,code:n}),forgetPassword:(e,r)=>l(t,"forgetPassword",{username:e,email:r}),verifyCode(e,r){return l(t,"forgetPasswordVerifyCode",{username:e,code:r})},granted:async e=>(await w(t,{granted:{__args:{rights:e}}})).granted}),G=(t,e,r)=>{const n=e,s=t,a=r,u=i=>a[i]?a[i]():null;return{field:u,$fields:a,gqlFields(i){const p=[];for(const d of i)if(typeof d=="string"){const g=u(d);g&&p.push(g.getGQLField())}else typeof d=="object"&&p.push(d);return p},async update(i,p){return await l(s,"update"+n,{id:i,data:p})},async delete(i){return await l(s,"delete"+n,{id:i})},async add(i){return await l(s,"add"+n,{data:i})},fields(i){let p=[];for(let d of i){const g=u(d);g&&p.push(g)}return p},async get(i,p){return(await w(s,{["list"+n]:{__args:{filters:i},data:{__args:{limit:1},...S(p)}}}))["list"+n].data[0]},async list(i,p){return(await w(s,{["list"+n]:{__args:{filters:i},data:{...S(p)}}}))["list"+n].data}}};function X(t){t="<~"+t+"~>";var e,r,n,s,a,u=String,i=255;for(t.slice(0,2)==="<~"&&t.slice(-2),t=t.slice(2,-2).replace(/\s/g,"").replace("z","!!!!!"),e="uuuuu".slice(t.length%5||5),t+=e,n=[],s=0,a=t.length;a>s;s+=5)r=52200625*(t.charCodeAt(s)-33)+614125*(t.charCodeAt(s+1)-33)+7225*(t.charCodeAt(s+2)-33)+85*(t.charCodeAt(s+3)-33)+(t.charCodeAt(s+4)-33),n.push(i&r>>24,i&r>>16,i&r>>8,i&r);return function(p,d){for(var g=d;g>0;g--)p.pop()}(n,e.length),u.fromCharCode.apply(u,n)}const q=(t="")=>{const e=t,r=(n="application/octet-stream")=>{const s=new Uint8Array(e.length);for(let i=0;i<e.length;i++)s[i]=e.charCodeAt(i);const a=new Blob([s],{type:n});return URL.createObjectURL(a)};return{getContent:()=>e,getURL:r,download:n=>{const s=document.createElement("a");s.download=n,s.href=r(),document.body.appendChild(s),s.click(),document.body.removeChild(s)},open:n=>{window.open(r(n),"_blank")}}},Y={fromBase85:t=>q(X(t)),fromBase64:t=>q(atob(t)),fromString:t=>q(t)},R=t=>{let e={};return typeof t=="string"?(e[t]=!0,e):t instanceof Array?(t.forEach(r=>{Object.entries(R(r)).forEach(([n,s])=>{e[n]=s})}),e):(Object.entries(t).forEach(([r,n])=>{if(r=="__args"||r=="__aliasFor"||r=="__variables"||r=="__directives"||r=="__all_on"||r=="__name"){e[r]=n;return}if(typeof n=="boolean"){e[r]=n;return}e[r]=R(n)}),e)},S=t=>R(t),w=async(t,e)=>{let r=y.jsonToGraphQLQuery(S(e));const n=await t.post("",{query:`{ ${r} }`});if(n.data.errors)throw new Error(n.data.errors[0].message);return n.data.data};function Z(t){for(let e=0;e<t.length;e++)if(t[e]instanceof File)return!0;return!1}function x(t){for(let e in t)if(t[e]instanceof File)return!0;return!1}const l=async(t,e,r=null,n=[])=>{let s={[e]:{}};const a=new FormData;let u=!1;if(r){const d={},g={},v={};let C=0;Object.entries(r).forEach(([b,_])=>{if(_ instanceof Array&&Z(_)){u=!0;let F=0;_.forEach(A=>{A instanceof File&&(d[b]=new y.VariableType(b),g[C]=["variables."+b+"."+F],a.append(C.toString(),A),C++)}),v[b]="[Upload!]!"}else _ instanceof File?(u=!0,d[b]=new y.VariableType(b),g[C]=["variables."+b],a.append(C.toString(),_),v[b]="Upload!",C++):_ instanceof Object&&x(_)?(u=!0,d[b]={},Object.entries(_).forEach(([F,A])=>{A instanceof File?(d[b][F]=new y.VariableType(F),g[C]=["variables."+F],a.append(C.toString(),A),v[F]="Upload!",C++):d[b][F]=A})):_!==void 0&&(d[b]=_)}),s[e].__args=d,s.__variables=v,u&&a.append("map",JSON.stringify(g))}Object.entries(S(n)).forEach(([d,g])=>{s[e][d]=g}),Object.entries(s[e]).length===0&&(s[e]=!0);let i=null;const p=y.jsonToGraphQLQuery({mutation:s});if(u?(a.append("operations",JSON.stringify({query:p})),i=await t.post("",a)):i=await t.post("",{query:p}),i.data.errors)throw new Error(i.data.errors[0].message);return i.data.data[e]},k=t=>({uploadTempFile:e=>l(t,"fsUploadTempFile",{file:e},{name:!0,path:!0,size:!0,mime:!0}),folders:{list:async e=>(await w(t,{fsListFolders:{__args:{path:e},name:!0,path:!0}})).fsListFolders,create:e=>l(t,"fsCreateFolder",{path:e}),delete:e=>l(t,"fsDeleteFolder",{path:e}),rename:(e,r)=>l(t,"fsRenameFolder",{path:e,name:r})},files:{list:async e=>(await w(t,{fsListFiles:{__args:{path:e},name:!0,path:!0,size:!0,mime:!0,canPreview:!0,imagePath:!0}})).fsListFiles,read:async e=>{let r=await w(t,{fsFile:{__args:{path:e},base64Content:!0}});return window.atob(r.fsFile.base64Content)},write:(e,r)=>l(t,"fsWriteFile",{path:e,content:r}),delete:e=>l(t,"fsDeleteFile",{path:e}),rename:(e,r)=>l(t,"fsRenameFile",{path:e,name:r}),move:(e,r)=>l(t,"fsMoveFile",{source:e,target:r})}}),ee=t=>({get:async e=>(await t({config:{__args:{name:e}}})).config}),te=t=>({send:(e,r,n)=>l(t,"sendMail",{email:e,subject:r,message:n})}),re=t=>({list:async()=>(await w(t,{listUser:{data:{user_id:!0,username:!0,first_name:!0,last_name:!0,status:!0}}})).listUser.data}),ne=()=>{const t={};return{create(e,r){t[e]={};for(const n of Object.entries(r)){const[s,a]=n;t[e][s]=()=>({name:a.name?a.name:s,raw:a,getName:()=>a.name?a.name:s,getGQLField:()=>a.gqlField!==void 0?a.gqlField:a.name||s,getRaw(){return a},getValue(u){return a.field&&typeof a.field=="function"?a.field(u):a.field&&typeof a.field=="string"?u[a.field]:u[this.getName()]},getFormattedValue(u){const i=this.getValue(u);return a.format?a.format(i):i}})}return t[e]},get(e){return t[e]}}},se=t=>({list:async()=>(await w(t,{listRole:{name:!0}})).listRole}),ae=t=>{const e=T.create({baseURL:t,withCredentials:!0}),r=(a,u=null,i=[])=>l(e,a,u,i),n=a=>w(e,a),s=ne();return{baseURL:t,axios:e,auth:I(e),mutation:r,query:n,config:ee(n),mail:te(e),users:re(e),fs:k(e),models:s,model(a){return G(e,a,s.get(a))},roles:se(e)}};m.File=Y,m.createClient=ae,m.file=q,m.mutation=l,m.query=w,m.toQuery=S,Object.defineProperty(m,Symbol.toStringTag,{value:"Module"})});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hostlink/light",
3
- "version": "2.0.1",
3
+ "version": "2.1.0",
4
4
  "type": "module",
5
5
  "files": [
6
6
  "dist"
@@ -18,7 +18,7 @@
18
18
  "dev": "vite --host",
19
19
  "build": "tsc && vite build",
20
20
  "preview": "vite preview",
21
- "release": "npm run build && npm version patch && npm publish --access public && git push --follow-tags",
21
+ "release": "npm run build && npm publish --access public && git push --follow-tags",
22
22
  "test": "vitest"
23
23
  },
24
24
  "devDependencies": {