@jointhedots/core 2.1.0 → 2.1.2

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/chunk.M34PULAU.js DELETED
@@ -1 +0,0 @@
1
- import{URI as O}from"vscode-uri";import{URI as le,Utils as fe}from"vscode-uri";var l=class t{constructor(e,n){this.resource=e;this.definition=n}get(e){return e.getResource(this.resource)?.get()}fetch(e){return e.fetchResource(this.resource)}spec(e){return e.acquireResource(this.resource)?.spec}subservice(e){return t.About(`${this.resource}.${e}`)}static About(e,n=null){return new t(e,n)}};var D=l.About("component"),Ce=l.About("editor");var v={object:{async read(t){let e=await t.text();return JSON.parse(e)},async write(t){let e=JSON.stringify(t);return new Blob([e],{type:"application/json"})}},text:{async read(t){return t.text()},async write(t){return new Blob([t],{type:"text/plain"})}}};function U(t){let[e,n]=t.split(","),o=e.match(/data:([^;]+)/),r=o?o[1]:"application/octet-stream",s=atob(n),i=new Uint8Array(s.length);for(let c=0;c<s.length;c++)i[c]=s.charCodeAt(c);return new Blob([i],{type:r})}function B(t){let e=t.match(/data:([^;]+)/);return e?e[1]:"application/octet-stream"}async function F(t){return new Promise((e,n)=>{let o=new FileReader;o.onloadend=()=>e(o.result),o.onerror=n,o.readAsDataURL(t)})}import{URI as T}from"vscode-uri";function w(t){if(t.startsWith("./")){let e=T.parse(window.location.href),n=e.path.split("/");return n[n.length-1]=t.slice(2),e.with({path:n.join("/"),query:"",fragment:""})}else return t.startsWith("/")?T.parse(window.location.href).with({path:t,query:"",fragment:""}):T.parse(t)}async function X(t){let e=t.services?Object.keys(t.services):[];if(t.type){let n=await u(t.type)?.fetch();if(n){for(let o in n?.services)if(o.startsWith("component.")){let r=o.slice(10);e.includes(r)||e.push(r)}}else throw new Error("Cannot create publiction properly")}return e}async function x(t){let{$id:e}=t;return{id:e,type:t.type,icon:t.icon,title:t.title||e,description:t.description||"",keywords:t.keywords,tags:t.tags,services:await X(t)}}function Ie(t){let e={query:t?.query||"",pattern:t?.pattern||null,tags:t?.tags||[],keywords:t?.keywords||[],services:t?.services||[],types:t?.types||[]};if(e.query.length>0)for(let n of e.query.split(/\s/))n.length>0&&!e.keywords.includes(n)&&e.keywords.push(n);return e.keywords.length>0&&(e.pattern=new RegExp(`(${e.keywords.join(").*(")})`)),e}function h(t,e){function n(s,i){return i?s?!i||i.test(s):!1:!0}function o(s,i){return!!(i.length===0||s&&i.includes(s))}function r(s,i){if(i.length===0)return!0;if(s){for(let c of s)if(i.includes(c))return!0}return!1}return!(!n(t.title||t.id,e.pattern)&&!n(t.description,e.pattern)||!r(t.services,e.services)||!r(t.keywords,e.keywords)||!r(t.tags,e.tags)||!o(t.type,e.types))}function A(t){if(typeof t=="string"){let[e,n]=t.split("#",2),o={type:"module",location:e};if(n){let[r,s]=n.split("?",2);if(o.identifier=r,s)for(let i of s.split("&")){let[c,p]=i.split("=");o[c]=p===void 0?!0:p}}return o}return t}var I=class{constructor(e){this.storage=e}modules_exports=new Map;baseUrl=Y(import.meta.url);async load_resource(e){if(this.modules_exports.has(e))return this.modules_exports.get(e);let n=w(e);switch(await this.storage.check_content(n)){case"application/json":case"text/json":return this.import_module_json(e,n);default:return this.import_module_esm(e,n)}}async import_module_json(e,n){let o=await this.storage.load_content(n);return v.object.read(o)}async import_module_esm(e,n){let o=n.toString();try{let r=await import(o);return this.modules_exports.set(e,r),r}catch(r){throw r.message=`Cannot import '${o}': ${r.message}`,r}}};function Y(t){let e=t.split("/");return e.pop(),e.join("/")}import{URI as Z}from"vscode-uri";var S=class{async check_url_content(e){let n=await fetch(e,{method:"HEAD"});if(n.ok){let o=n.headers.get("content-type");return o?o.split(";")[0].trim():"application/octet-stream"}return null}async load_url_content(e){let n=await fetch(e);if(n.ok)return n.blob();throw new Error(`Fetch failed ${n.statusText} ${n.status} '${e}'`)}async check_content(e){if(e.scheme==="local"){let n=e.toString(),o=localStorage.getItem(n);if(o)return B(o);throw new Error(`Unsupported local content uri: ${e}`)}else return this.check_url_content(e.toString())}async load_content(e){if(e.scheme==="local"){let n=e.toString();if(localStorage.getItem(n))return U(localStorage.getItem(n));throw new Error(`Unsupported local content uri: ${e}`)}else return this.load_url_content(e.toString())}async store_content(e,n){if(n.scheme==="local"){let o=n.toString(),r=await F(e);return localStorage.setItem(o,r),!0}return!1}};function De(t,e,n){let o=n?`/${e}/${n}`:`/${e}`;return Z.from({scheme:"local",authority:t,path:o})}var _=class{pubs=new Map;constructor(e=[]){for(let n of e)this.pubs.set(n.id,n)}async get_component_publication(e){return this.pubs.get(e)}async search_component_publications(e){let n=[];for(let o of this.pubs.values())h(o,e)&&n.push(o);return n}},R=class extends _{manifests=new Map;async add_component(e){let n=await x(e);return this.manifests.set(n.id,e),this.pubs.set(n.id,n),n}async delete_component(e){return this.manifests.delete(e),this.pubs.delete(e),!0}async get_component_manifest(e){return this.manifests.get(e)}async set_component_manifest(e,n){return!1}};var M=class{constructor(e){this.content_provider=e}manifest=null;catalog=null;async get_provider_bundle(){return this.manifest||(this.manifest=await(await fetch("./bundle.manifest.json")).json()),this.manifest}async get_component_catalog(){if(!this.catalog){let e=await this.get_provider_bundle();this.catalog=new _(e.data?.components)}return this.catalog}async get_component_publication(e){return(await this.get_component_catalog()).get_component_publication(e)}async search_component_publications(e){return(await this.get_component_catalog()).search_component_publications(e)}async get_component_manifest(e){try{let o=(await this.get_provider_bundle()).data.components.find(r=>r.id===e);if(o){let r=w(o.ref?`./${o.ref}`:`./${e}.json`),s=await this.content_provider.load_content(r);if(s)return v.object.read(s)}}catch{}return null}async set_component_manifest(e,n){return!1}async add_component(e){return null}async delete_component(e){return!1}};var E=class{constructor(e=[]){this.providers=e}add_provider(e){this.providers.push(e)}async get_component_publication(e){for(let n of this.providers){let o=await n.get_component_publication(e);if(o)return o}return null}async search_component_publications(e){let n=[];for(let o of this.providers){let r=await o.search_component_publications(e);r&&n.push(...r)}return n}async get_component_manifest(e){for(let n of this.providers){let o=await n.get_component_manifest(e);if(o)return o}return null}async set_component_manifest(e,n){for(let o of this.providers)if(await o.set_component_manifest(e,n))return!0;return!1}async add_component(e){for(let n of this.providers){let o=await n.add_component(e);if(o)return o}return null}async delete_component(e){for(let n of this.providers)if(await n.delete_component(e))return!0;return!1}};var N=5;function ee(){return new Promise((t,e)=>{let n=window.indexedDB.open("LocalComponents",N);n.onerror=o=>{console.error("Database error:",o.target.error),e(o.target.error)},n.onupgradeneeded=()=>{console.log("Upgrade LocalComponents to ",N);debugger;let o=n.result;o.objectStoreNames.contains("components_manifests")&&o.deleteObjectStore("components_manifests"),o.objectStoreNames.contains("components_services")&&o.deleteObjectStore("components_services"),o.objectStoreNames.contains("components")&&o.deleteObjectStore("components"),o.createObjectStore("components",{keyPath:"id"}).createIndex("title","title",{unique:!1});let s=o.createObjectStore("components_services",{keyPath:["component_id","service"]});s.createIndex("component_id","component_id",{unique:!1}),s.createIndex("service","service",{unique:!1}),o.createObjectStore("components_manifests",{keyPath:"component_id"}).createIndex("component_id","component_id",{unique:!1})},n.onsuccess=()=>{let o=n.result;o.onerror=r=>{console.error("Database error:",r)},t(n.result)}})}function te(t,e){return new Promise((n,o)=>{let r=[],c=t.transaction(["components_manifests"],"readonly").objectStore("components_manifests").getAll(e);c.onsuccess=()=>{n(c.result?.[0]?.manifest)},c.onerror=p=>{o(p.target.error)}})}function ne(t,e){let o=t.transaction(["components","components_services"],"readonly").objectStore("components");return new Promise((r,s)=>{let i=o.get(e);i.onsuccess=()=>{r(i.result)},i.onerror=c=>{s(c.target.error)}})}function J(t,e){let o=t.transaction(["components","components_services"],"readonly").objectStore("components"),r=[];for(let s of e)r.push(new Promise((i,c)=>{let p=o.get(s);p.onsuccess=()=>{i(p.result)},p.onerror=m=>{c(m.target.error)}}));return Promise.all(r)}function oe(t,e){return new Promise((n,o)=>{let i=t.transaction(["components"],"readonly").objectStore("components").openCursor(),c=[];i.onsuccess=()=>{let p=i.result;if(p){let m=p.value;e(m)&&c.push(p.value),p.continue()}else n(c)},i.onerror=()=>{o(i.error)}})}function re(t,e,n){let s=t.transaction(["components_services"],"readonly").objectStore("components_services").index("service"),i=[];for(let c of e)i.push(new Promise((p,m)=>{let d=s.getAll(c);d.onsuccess=async()=>{for(let P of d.result)P.service===c&&n.add(P.component_id);p(void 0)},d.onerror=P=>{m(P.target.error)}}));return Promise.all(i)}async function se(t,e){let{services:n}=e;if(n&&n.length>0){let o=[],r=new Set;await re(t,n,r);for(let s of await J(t,Array.from(r)))h(s,e)&&o.push(s);return o}else return oe(t,o=>h(o,e))}function ie(t,e){return new Promise(async(n,o)=>{let r=await x(e),s=t.transaction(["components","components_services","components_manifests"],"readwrite");s.objectStore("components").put(r);let c=s.objectStore("components_services");for(let m of r.services)c.put({component_id:r.id,service:m});s.objectStore("components_manifests").put({component_id:r.id,manifest:e}),s.onerror=m=>o(m.target.error),s.oncomplete=()=>n(r),s.commit()})}function ce(t,e){return new Promise(async(n,o)=>{let r=await ne(t,e);if(r){let s=t.transaction(["components","components_services","components_manifests"],"readwrite");s.objectStore("components").delete(e);let c=s.objectStore("components_services");for(let m of r.services)c.delete([e,m]);s.objectStore("components_manifests").delete(e),s.onerror=m=>o(m.target.error),s.oncomplete=()=>n(!0),s.commit()}else n(!1)})}var $=class{db=ee();async get_component_publication(e){return(await J(await this.db,[e]))[0]}async search_component_publications(e){return se(await this.db,e)}async get_component_manifest(e){return te(await this.db,e)}async set_component_manifest(e,n){return!1}async add_component(e){return ie(await this.db,e)}async delete_component(e){return ce(await this.db,e)}};function K(){try{if(window)return new $}catch{}return new R}var b={...console},Ke=console.error=(...t)=>{b.error(...t.map(e=>typeof e=="string"?`\x1B[31m${e}\x1B[0m`:e))},We=console.warn=(...t)=>{b.warn(...t.map(e=>typeof e=="string"?`\x1B[35m${e}\x1B[0m`:e))},Qe=console.info=(...t)=>{b.info(...t.map(e=>typeof e=="string"?`\x1B[36m${e}\x1B[0m`:e))},Ge=console.trace=(...t)=>{b.trace(...t.map(e=>typeof e=="string"?`\x1B[34m${e}\x1B[0m`:e))},Ve=console.debug=(...t)=>{b.debug(...t.map(e=>typeof e=="string"?`\x1B[32m${e}\x1B[0m`:e))},ae=console;var k=class{notifyError(e,n){console.error(e),this.notifyObject(ue(e,n))}notifyObject(e){f.push(e),console.log(e)}},j=new Set,f=[],W=0,pe=new k;me(pe);function Q(){return W++,"id-"+Date.now().toString(36)+"-"+W.toString(2)}function me(t){j.add(t)}function Xe(t){j.delete(t)}function Ye(){return f.length}function G(t,e){let n=[];for(let o of f)if(e===void 0||e===o.component_id){if(n.length>=t)return{objects:n,hasMore:!0};n.push(o)}return{objects:n,hasMore:!1}}function V(t){return f.reduce((e,n)=>{if(t===void 0||t===n.component_id)switch(n.status){case"error":e.error_count++,e.warn_count++,e.notify_count++,e.info_count++;break;case"warn":e.warn_count++,e.notify_count++,e.info_count++;break;case"notify":e.notify_count++,e.info_count++;break;case"info":e.info_count++;break}return e},{action_expected_count:0,error_count:0,warn_count:0,notify_count:0,info_count:0})}var y={send(t){setTimeout(()=>{for(let e of j)e.notifyObject(t)},0)},error(t,e){setTimeout(()=>{for(let n of j)n.notifyError(t,e)},0)},event(t,e){let n=g(t),o=Q();y.send({...e,kind:"event",status:e.status||"error",message:e.message||`Issue with component: ${o}`,component_id:n.id,id:o})},openTicket(t,e,n){let o=g(t),r=`${o.id}/${e}`;y.send({...n,kind:"ticket",status:n.status||"error",message:n.message||`Issue with component: ${r}`,component_id:o.id,id:r})},closeTicket(t,e){let o=`${g(t).id}/${e}`,r=f.findIndex(s=>s.id===o);if(r>=0){let s=f[r];f.splice(r,1),y.event(t,{...s,kind:"event",status:"info",icon:"[success]bi:check-circle",message:`[closed] ${s.message}`,actions:void 0,doc_uri:void 0})}}};function ue(t,e){return{id:Q(),kind:"event",status:"error",component_id:g(e).id,message:t.message}}var C=class{constructor(e){this.id=e}__instance__=void 0;manifest=void 0;get title(){return this.id}get namespace(){let e=this.id.indexOf(":");switch(e){case-1:return"std";case 0:return"";default:return this.id.slice(0,e)}}get valid(){return this.manifest!==void 0&&this.manifest.type!=="<error>"}get loaded(){return this.manifest!==void 0}get installed(){return this.__instance__!==void 0}get instance(){return this.__instance__}set instance(e){if(this.__instance__=e,e instanceof Object)a.datamap.set(e,this);else if(e!==null)throw this.__instance__=null,new Error("Component instance shall be an object")}get(){if(this.manifest===void 0)throw new Error("Cannot get manifest of not loaded module");return this.manifest}set(e){return this.manifest=e,this}fetch(){let e=a.loadings.get(this);return e||(this.manifest===void 0?e=a.components_provider.get_component_manifest(this.id).then(async n=>{if(n)n.type&&await u(n.type).fetch(),this.manifest=n;else throw new Error(`Component '${this.id}' not found`);return this.manifest}).catch(n=>(y.error(n,this),this.set({$id:this.id,type:"<error>",message:n.message,stack:n.stack}),this.__instance__=new Error(n.message),this.manifest)):e=Promise.resolve(this.manifest),a.loadings.set(this,e),e)}async install(){let e=a.installings.get(this);return e||(this.instance===void 0?(this.instance=null,e=new Promise(async n=>{try{this.loaded===!1&&await this.fetch();let o=this.manifest?.type;if(o){let r=u(o);await(await D.fetch(r)).createComponent(this,this.manifest)}}catch(o){y.error(o,this)}n(this)})):e=Promise.resolve(this),a.installings.set(this,e),e)}acquireResource(e){let n=`${this.id}#${e}`,o=a.resources.get(n);return o||(o=new L(this,e),a.resources.set(n,o)),o}getResource(e){return this.hasResource(e)?this.acquireResource(e):null}hasResource(e){let{manifest:n}=this;if(n?.services?.[e])return!0;if(n?.type){let o=u(n.type);if(o)return o?.hasResource(`component.${e}`)}return!1}async getResourceAsync(e){return this.manifest===void 0&&await this.fetch(),this.getResource(e)}async fetchResource(e){return this.manifest===void 0&&await this.fetch(),this.getResource(e)?.fetch()}getLogStats(){return V(this.id)}getLogs(e){return G(e,this.id)}},L=class{constructor(e,n){this.component=e;this.resource=n;e.fetch()}entry=void 0;identifier=void 0;get valid(){return this.identifier!==void 0&&this.component.valid}get loaded(){return this.identifier!==void 0}async fetch(){if(this.identifier===void 0){let e=a.loadings.get(this);return e||(e=new Promise(async n=>{let{component:o}=this;try{o.installed===!1&&await o.install();let{manifest:r}=o,s=A(r.services?.[this.resource]),i=s?.type;if(i==="module")this.entry=await a.resources_loader.load_resource(s.location),this.identifier=s.identifier;else if(i==="api.rest")this.entry=H(s,o),this.identifier=null;else if(r.type){let m=u(r.type).getResource(`component.${this.resource}`);if(m){let d=await m.fetch();d?this.entry=await d(this.component):this.entry=null,this.identifier=null}else throw new Error(`Cannot provide resource '${this.resource}'`)}else throw new Error(`Cannot load resource '${this.resource}': ${JSON.stringify(s)}`);let c=this.get();c instanceof Object&&a.datamap.set(c,this)}catch(r){console.error(`Cannot install service '${this.resource}' of '${o.id}':`,r),this.entry=null,this.identifier=null}n(this.get()),a.loadings.set(this,null)}),a.loadings.set(this,e),e)}else return this.get()}get(){if(this.entry)return this.identifier!==null?this.entry?.[this.identifier]:this.entry}set(e){this.entry=e,this.identifier=null}get spec(){let e=this.resource.split(".")[0];return this.component.manifest?.specs?.[e]}get url(){let e=this.component.manifest?.services?.[this.resource];if(typeof e=="string"){let n=le.parse(window.location.href).with({fragment:null});return fe.joinPath(n,"..",e.split("#")[0]).toString()}return null}},q=class{components=new Map;resources=new Map;datamap=new WeakMap;loadings=new Map;installings=new Map;listeners=new Set;components_provider=new E([]);resources_loader=null;content_provider=null;constructor(){this.content_provider=new S,this.components_provider.add_provider(new M(this.content_provider)),this.components_provider.add_provider(K()),this.resources_loader=new I(this.content_provider)}listen(e){return this.listeners.add(e),e}unlisten(e){this.listeners.delete(e)}notifyError(e,n){}},a=new q;u("<error>").set({$id:"<error>",icon:"bi:house",title:"Define invalid component"});function de(){return u("log:application")}function g(t,e){if(t instanceof Object){let n=a.datamap.get(t)||t;if(n instanceof C)return n;if(n instanceof L)return n.component;if(!e&&t.getComponent instanceof Function)return g(t.getComponent(),!0)}return de()}function u(t){let e=a.components.get(t);return!e&&typeof t=="string"&&(e=new C(t),a.components.set(t,e)),e}function ut(t){let e=t.$id,n=a.components.get(e);return!n&&typeof e=="string"&&(n=new C(e),n.manifest=t,n.instance=null,a.components.set(e,n)),n}function lt(t){let e=t.split("#");return e.length===2?u(e[0])?.acquireResource(e[1]):null}function ft(t,e){return e&&t.startsWith("/")?u(`${e?.id}${t}`):null}async function dt(t){let e=u(t.$id);return a.loadings.delete(e),e.manifest=t,ge(e)}async function ge(t){console.log("[Update Component]",t.id);let e=await t.fetch();if(await a.components_provider.add_component(e),t.loaded&&e.type&&t.installed){let o=await D.fetch(u(e.type));o&&(t.instance?await o.updateComponent(t,e):(t.__instance__=void 0,await o.createComponent(t,e))),t.instance instanceof Object&&a.datamap.set(t.instance,t),a.listeners.forEach(r=>r(t))}return t}async function gt(t){console.log("deleteComponent",t),await a.components_provider.delete_component(t)&&ye(t)}function ye(t){let e=a.components.get(t);e&&(e.set({$id:e.id,type:"<error>",message:"Component deleted"}),a.listeners.forEach(n=>n(e)),a.components.delete(t))}async function yt(t){return a.components_provider.search_component_publications(t)}async function ht(t){let e=[];for(let n of t){let o=await a.components_provider.get_component_publication(n);o?e.push(o):e.push(he(n))}return e}function he(t,e){return{id:t,title:e||"! Not found: "+t}}var z=l.About("api.rest");function H(t,e){let n=t.endpoint+(t.path||"");return{invoke(o,r){return globalThis.fetch(n+o,r)},getUrl(o){return n+o}}}var wt={async fetch(t,e){if(typeof t=="string"&&(t=O.parse(t)),t.scheme==="jtd"){let n=u(t.authority),o=await z.fetch(n);if(o){let r=t.query?`${t.path}?${t.query}`:t.path;return o.invoke(r,e)}else return Response.error()}else return fetch(t.toString(),e)},async getUri(t){if(typeof t=="string"&&(t=O.parse(t)),t.scheme==="jtd"){let e=u(t.authority),n=await z.fetch(e);if(n){let o=t.query?`${t.path}?${t.query}`:t.path;t=O.parse(n.getUrl(o))}else throw new Error(`Unknown component '${t.authority}'`)}return t}};export{l as a,D as b,Ce as c,w as d,X as e,x as f,Ie as g,h,A as i,I as j,S as k,De as l,_ as m,R as n,M as o,E as p,K as q,z as r,H as s,wt as t,C as u,L as v,q as w,a as x,de as y,g as z,u as A,ut as B,lt as C,ft as D,dt as E,ge as F,gt as G,ye as H,yt as I,ht as J,he as K,ae as L,me as M,Xe as N,Ye as O,G as P,V as Q,y as R,ue as S};