@hostlink/light 1.2.5 → 2.0.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/dist/auth.d.ts +14 -11
- package/dist/config.d.ts +4 -0
- package/dist/createClient.d.ts +28 -0
- package/dist/fs.d.ts +19 -10
- package/dist/gqlBuilder.d.ts +2 -1
- package/dist/index.d.ts +1 -8
- package/dist/light.js +449 -433
- package/dist/light.umd.cjs +1 -1
- package/dist/mail.d.ts +5 -0
- package/dist/model.d.ts +6 -8
- package/dist/models.d.ts +8 -0
- package/dist/mutation.d.ts +2 -1
- package/dist/query.d.ts +2 -1
- package/dist/roles.d.ts +5 -0
- package/dist/roles.test.d.ts +1 -0
- package/dist/toQuery.d.ts +1 -1
- package/dist/users.d.ts +5 -0
- package/dist/webauthn.d.ts +6 -0
- package/package.json +4 -3
- package/dist/apiUrl.d.ts +0 -2
- package/dist/axios.d.ts +0 -4
- package/dist/getConfig.d.ts +0 -2
- package/dist/granted.d.ts +0 -1
- package/dist/sendMail.d.ts +0 -2
- package/dist/uploadFile.d.ts +0 -1
- package/dist/webauthnLogin.d.ts +0 -1
- package/dist/webauthnRegister.d.ts +0 -1
- /package/dist/{login.test.d.ts → auth.test.d.ts} +0 -0
package/dist/light.umd.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
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,U){"use strict";function E(e){const t="==".slice(0,(4-e.length%4)%4),r=e.replace(/-/g,"+").replace(/_/g,"/")+t,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(e){const t=new Uint8Array(e);let r="";for(const a of t)r+=String.fromCharCode(a);return btoa(r).replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}var o="copy",m="convert";function O(e,t,r){if(t===o)return r;if(t===m)return e(r);if(t instanceof Array)return r.map(n=>O(e,t[0],n));if(t instanceof Object){const n={};for(const[s,a]of Object.entries(t)){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(e,a.schema,r[s])}return n}}function j(e,t){return{required:!0,schema:e,derive:t}}function l(e){return{required:!0,schema:e}}function c(e){return{required:!1,schema:e}}var J={type:l(o),id:l(m),transports:c(o)},P={appid:c(o),appidExclude:c(o),credProps:c(o)},T={appid:c(o),appidExclude:c(o),credProps:c(o)},V={publicKey:l({rp:l(o),user:l({id:l(m),name:l(o),displayName:l(o)}),challenge:l(m),pubKeyCredParams:l(o),timeout:c(o),excludeCredentials:c([J]),authenticatorSelection:c(o),attestation:c(o),extensions:c(P)}),signal:c(o)},L={type:l(o),id:l(o),rawId:l(m),authenticatorAttachment:c(o),response:l({clientDataJSON:l(m),attestationObject:l(m),transports:j(o,e=>{var t;return((t=e.getTransports)==null?void 0:t.call(e))||[]})}),clientExtensionResults:j(T,e=>e.getClientExtensionResults())},K={mediation:c(o),publicKey:l({challenge:l(m),timeout:c(o),rpId:c(o),allowCredentials:c([J]),userVerification:c(o),extensions:c(P)}),signal:c(o)},D={type:l(o),id:l(o),rawId:l(m),authenticatorAttachment:c(o),response:l({clientDataJSON:l(m),authenticatorData:l(m),signature:l(m),userHandle:l(m)}),clientExtensionResults:j(T,e=>e.getClientExtensionResults())};function B(e){return O(E,V,e)}function Q(e){return O(N,L,e)}function W(e){return O(E,K,e)}function M(e){return O(N,D,e)}async function $(e){const t=await navigator.credentials.create(e);return t.toJSON=()=>Q(t),t}async function z(e){const t=await navigator.credentials.get(e);return t.toJSON=()=>M(t),t}const H=e=>({login:async t=>{const n=(await w(e,{webAuthnRequestOptions:{__args:{username:t}}})).webAuthnRequestOptions,s=W({publicKey:n}),a=await z(s);await d(e,"webAuthnAssertion",{username:t,assertion:a.toJSON()})},register:async()=>{const t=await w(e,{webAuthnCreationOptions:!0}),r=B({publicKey:t.webAuthnCreationOptions}),n=await $(r);await d(e,"webAuthnRegister",{registration:n.toJSON()})}}),I=e=>({WebAuthn:H(e),login:(t,r,n="")=>d(e,"login",{username:t,password:r,code:n}),logout:()=>d(e,"logout"),updatePassword:(t,r)=>d(e,"updatePassword",{old_password:t,new_password:r}),resetPassword:(t,r,n)=>d(e,"resetPassword",{email:t,password:r,code:n}),forgetPassword:t=>d(e,"forgetPassword",{email:t}),granted:async t=>(await w(e,{granted:{__args:{rights:t}}})).granted}),G=(e,t,r)=>{const n=t,s=e,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 d(s,"update"+n,{id:i,data:p})},async delete(i){return await d(s,"delete"+n,{id:i})},async add(i){return await d(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(e){e="<~"+e+"~>";var t,r,n,s,a,u=String,i=255;for(e.slice(0,2)==="<~"&&e.slice(-2),e=e.slice(2,-2).replace(/\s/g,"").replace("z","!!!!!"),t="uuuuu".slice(e.length%5||5),e+=t,n=[],s=0,a=e.length;a>s;s+=5)r=52200625*(e.charCodeAt(s)-33)+614125*(e.charCodeAt(s+1)-33)+7225*(e.charCodeAt(s+2)-33)+85*(e.charCodeAt(s+3)-33)+(e.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,t.length),u.fromCharCode.apply(u,n)}const q=(e="")=>{const t=e,r=(n="application/octet-stream")=>{const s=new Uint8Array(t.length);for(let i=0;i<t.length;i++)s[i]=t.charCodeAt(i);const a=new Blob([s],{type:n});return URL.createObjectURL(a)};return{getContent:()=>t,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:e=>q(X(e)),fromBase64:e=>q(atob(e)),fromString:e=>q(e)},R=e=>{let t={};return typeof e=="string"?(t[e]=!0,t):e instanceof Array?(e.forEach(r=>{Object.entries(R(r)).forEach(([n,s])=>{t[n]=s})}),t):(Object.entries(e).forEach(([r,n])=>{if(r=="__args"||r=="__aliasFor"||r=="__variables"||r=="__directives"||r=="__all_on"||r=="__name"){t[r]=n;return}if(typeof n=="boolean"){t[r]=n;return}t[r]=R(n)}),t)},S=e=>R(e),w=async(e,t)=>{let r=y.jsonToGraphQLQuery(S(t));const n=await e.post("",{query:`{ ${r} }`});if(n.data.errors)throw new Error(n.data.errors[0].message);return n.data.data};function Z(e){for(let t=0;t<e.length;t++)if(e[t]instanceof File)return!0;return!1}function x(e){for(let t in e)if(e[t]instanceof File)return!0;return!1}const d=async(e,t,r=null,n=[])=>{let s={[t]:{}};const a=new FormData;let u=!1;if(r){const f={},g={},v={};let F=0;Object.entries(r).forEach(([b,_])=>{if(_ instanceof Array&&Z(_)){u=!0;let C=0;_.forEach(A=>{A instanceof File&&(f[b]=new y.VariableType(b),g[F]=["variables."+b+"."+C],a.append(F.toString(),A),F++)}),v[b]="[Upload!]!"}else _ instanceof File?(u=!0,f[b]=new y.VariableType(b),g[F]=["variables."+b],a.append(F.toString(),_),v[b]="Upload!",F++):_ instanceof Object&&x(_)?(u=!0,f[b]={},Object.entries(_).forEach(([C,A])=>{A instanceof File?(f[b][C]=new y.VariableType(C),g[F]=["variables."+C],a.append(F.toString(),A),v[C]="Upload!",F++):f[b][C]=A})):_!==void 0&&(f[b]=_)}),s[t].__args=f,s.__variables=v,u&&a.append("map",JSON.stringify(g))}Object.entries(S(n)).forEach(([f,g])=>{s[t][f]=g}),Object.entries(s[t]).length===0&&(s[t]=!0);let i=null;const p=y.jsonToGraphQLQuery({mutation:s});if(u?(a.append("operations",JSON.stringify({query:p})),i=await e.post("",a)):i=await e.post("",{query:p}),i.data.errors)throw new Error(i.data.errors[0].message);return i.data.data[t]},k=e=>({uploadTempFile:t=>d(e,"fsUploadTempFile",{file:t},{name:!0,path:!0,size:!0,mime:!0}),folders:{list:async t=>(await w(e,{fsListFolders:{__args:{path:t},name:!0,path:!0}})).fsListFolders,create:t=>d(e,"fsCreateFolder",{path:t}),delete:t=>d(e,"fsDeleteFolder",{path:t}),rename:(t,r)=>d(e,"fsRenameFolder",{path:t,name:r})},files:{list:async t=>(await w(e,{fsListFiles:{__args:{path:t},name:!0,path:!0,size:!0,mime:!0,canPreview:!0,imagePath:!0}})).fsListFiles,read:async t=>{let r=await w(e,{fsFile:{__args:{path:t},base64Content:!0}});return window.atob(r.fsFile.base64Content)},write:(t,r)=>d(e,"fsWriteFile",{path:t,content:r}),delete:t=>d(e,"fsDeleteFile",{path:t}),rename:(t,r)=>d(e,"fsRenameFile",{path:t,name:r}),move:(t,r)=>d(e,"fsMoveFile",{source:t,target:r})}}),ee=e=>({get:async t=>(await e({config:{__args:{name:t}}})).config}),te=e=>({send:(t,r,n)=>d(e,"sendMail",{email:t,subject:r,message:n})}),re=e=>({list:async()=>(await w(e,{listUser:{data:{user_id:!0,username:!0,first_name:!0,last_name:!0,status:!0}}})).listUser.data}),ne=()=>{const e={};return{create(t,r){e[t]={};for(const n of Object.entries(r)){const[s,a]=n;e[t][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 e[t]},get(t){return e[t]}}},se=e=>({list:async()=>(await w(e,{listRole:{name:!0}})).listRole}),ae=e=>{const t=U.create({baseURL:e,withCredentials:!0}),r=(a,u=null,i=[])=>d(t,a,u,i),n=a=>w(t,a),s=ne();return{baseURL:e,axios:t,auth:I(t),mutation:r,query:n,config:ee(n),mail:te(t),users:re(t),fs:k(t),models:s,model(a){return G(t,a,s.get(a))},roles:se(t)}};h.File=Y,h.createClient=ae,h.file=q,h.mutation=d,h.query=w,h.toQuery=S,Object.defineProperty(h,Symbol.toStringTag,{value:"Module"})});
|
package/dist/mail.d.ts
ADDED
package/dist/model.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { AxiosInstance } from 'axios';
|
|
2
|
+
import { Fields } from '.';
|
|
2
3
|
export type ModelField = {
|
|
3
4
|
name: string;
|
|
4
5
|
raw: FieldOption;
|
|
@@ -19,14 +20,10 @@ export type FieldOption = {
|
|
|
19
20
|
field?: any;
|
|
20
21
|
format?: any;
|
|
21
22
|
};
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}) => void;
|
|
25
|
-
export declare const getModelField: (name: string, field: string) => ModelField | null;
|
|
26
|
-
export declare const getGQLFields: (model: string, fields: (string | object)[]) => any[];
|
|
27
|
-
export declare const model: (name: string) => {
|
|
28
|
-
name: string;
|
|
23
|
+
declare const _default: (axios: AxiosInstance, name: string, fields: any) => {
|
|
24
|
+
field: (f: string) => ModelField | null;
|
|
29
25
|
$fields: any;
|
|
26
|
+
gqlFields(fields: (string | object)[]): any[];
|
|
30
27
|
update(id: number, data: Object): Promise<any>;
|
|
31
28
|
delete(id: number): Promise<any>;
|
|
32
29
|
add(data: Object): Promise<any>;
|
|
@@ -34,3 +31,4 @@ export declare const model: (name: string) => {
|
|
|
34
31
|
get(filters: any, fields: Fields): Promise<any>;
|
|
35
32
|
list(filters: any, fields: Fields): Promise<any>;
|
|
36
33
|
};
|
|
34
|
+
export default _default;
|
package/dist/models.d.ts
ADDED
package/dist/mutation.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { AxiosInstance } from 'axios';
|
|
1
2
|
import { Fields } from '.';
|
|
2
|
-
declare const _default: (operation: string, args?: {
|
|
3
|
+
declare const _default: (axios: AxiosInstance, operation: string, args?: {
|
|
3
4
|
[key: string]: any;
|
|
4
5
|
} | null, fields?: Fields) => Promise<any>;
|
|
5
6
|
export default _default;
|
package/dist/query.d.ts
CHANGED
package/dist/roles.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/toQuery.d.ts
CHANGED
package/dist/users.d.ts
ADDED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hostlink/light",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist"
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"types": "./dist/index.d.ts",
|
|
11
11
|
"exports": {
|
|
12
12
|
".": {
|
|
13
|
+
"types": "./dist/index.d.ts",
|
|
13
14
|
"import": "./dist/light.js"
|
|
14
15
|
}
|
|
15
16
|
},
|
|
@@ -23,8 +24,8 @@
|
|
|
23
24
|
"devDependencies": {
|
|
24
25
|
"typescript": "^5.3.3",
|
|
25
26
|
"vite": "^5.1.4",
|
|
26
|
-
"vite-plugin-dts": "^
|
|
27
|
-
"vitest": "^
|
|
27
|
+
"vite-plugin-dts": "^4.0.3",
|
|
28
|
+
"vitest": "^2.0.5"
|
|
28
29
|
},
|
|
29
30
|
"dependencies": {
|
|
30
31
|
"@github/webauthn-json": "^2.1.1",
|
package/dist/apiUrl.d.ts
DELETED
package/dist/axios.d.ts
DELETED
package/dist/getConfig.d.ts
DELETED
package/dist/granted.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const granted: (rights: string[]) => Promise<string[]>;
|
package/dist/sendMail.d.ts
DELETED
package/dist/uploadFile.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default function (file: File): Promise<any>;
|
package/dist/webauthnLogin.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default function (username: string): Promise<void>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export default function (): Promise<void>;
|
|
File without changes
|