@jointhedots/core 0.0.0 → 2.0.21

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.
@@ -0,0 +1,17 @@
1
+ {
2
+ "$id": "jointhedots.core",
3
+ "type": "bundle",
4
+ "name": "@jointhedots/core",
5
+ "data": {
6
+ "baseline": "jointhedots.core-v0",
7
+ "components": [],
8
+ "exports": {
9
+ "@jointhedots/core": "export.js",
10
+ "@jointhedots/core/commands": "export.commands.js",
11
+ "@jointhedots/core/storage": "export.storage.js",
12
+ "@jointhedots/core/view": "export.view.js",
13
+ "@jointhedots/core/react": "export.react.js",
14
+ "@jointhedots/core/rest": "export.rest.js"
15
+ }
16
+ }
17
+ }
@@ -0,0 +1 @@
1
+ import{A as d,Q as p,x as u}from"./chunk.H26D4GQC.js";var y=(i=>(i[i.Default=0]="Default",i[i.Reset=1]="Reset",i[i.Temporary=2]="Temporary",i))(y||{}),l=class{constructor(e){this.name=e;this.key=`settings://${this.name}`;try{let t=localStorage.getItem(this.key);this.restore(JSON.parse(t).stores)}catch{}try{window.addEventListener("storage",t=>{let{key:i,newValue:s}=t;if(i===this.key)try{this.restore(JSON.parse(s).stores)}catch{}})}catch(t){console.error(t.message)}}key=null;stores=S();temporaries=S();settings=S();get(e,t){let i=this.settings[e][t];if(!i){let s=this.temporaries[e][t]||this.stores[e][t];s&&(i=JSON.parse(s),this.settings[e][t]=i)}return i}set(e,t,i,s=0){let n=JSON.stringify(i);return this.write(e,t,n,s)?(this.settings[e][t]=i,m(this,e,t),!0):!1}list(e){return Object.keys(this.temporaries[e]).length>0?Object.keys(Object.assign({},this.stores[e],this.temporaries[e])):Object.keys(this.stores[e])}read(e){return this.stores[e]}write(e,t,i,s){if(s!==1&&this.temporaries[e][t]!==void 0&&(s=2),s===2){if(this.temporaries[e][t]!==i)return this.temporaries[e][t]=i,this.settings[e][t]=null,!0}else if(this.stores[e][t]!==i)return this.stores[e][t]=i,this.settings[e][t]=null,s===0&&localStorage.setItem(this.key,JSON.stringify({stores:this.stores})),!0;return!1}restore(e){for(let t in e)for(let i in e[t])this.write(t,i,e[t][i],1)&&m(this,t,i)}},h=new Set,P=new l("default");function c(){return P}function I(r){return h.add(r),r}function b(r){h.delete(r)}function m(r,e,t){if(r===P&&r.settings[e][t]!==void 0)for(let i of h)i(e,t)}function S(){return{service_points:{},components:{},shareds:{}}}var a=new Map,g=new Set,v=class{constructor(e){this.descriptor=e;let[t,i]=e.id.split("/");this.service=t,this.name=i}service="";name="";services=[];loading=null;ready=!1;failure=null;get id(){return this.descriptor.id}get multiple(){return this.descriptor?.properties?.multiple||!1}async fetch(){return this.ready?this.services:(this.loading||(this.loading=new Promise(async e=>{let{descriptor:t}=this,{providers:i}=this.descriptor,s=await x(i,this.service,this.id,this);t===this.descriptor?(this.services=s,this.ready=!0,this.loading=null,e(this.services)):e(this.fetch())})),this.loading)}async reset(e){return this.descriptor!==e&&(this.descriptor=e,(this.loading||this.ready||this.failure)&&(this.failure=null,this.loading=null,this.ready=!1,g.forEach(t=>t(this)),await this.fetch()),g.forEach(t=>t(this))),this}override(e){let t=c(),i=t.get("service_points",this.id);t.set("service_points",this.id,{...i,providers:e},2)}notifyError(e){this.failure=e,p.error(e)}notifyObject(e){p.send(e)}};function G(r){return g.add(r),r}function H(r){g.delete(r)}u.listen(r=>{for(let e of a.values())e.descriptor.providers?.includes(r.id)&&g.forEach(t=>t(e))});async function x(r,e,t,i){let s=[];if(Array.isArray(r)&&r.length>0)for(let n of r){let o=d(n);if(await o.fetch()){let f=await o.acquireResource(e).fetch();f?s.push(f):i.notifyError(new Error(`ServicePoint '${t}': component '${n}' not implement service '${e}'`))}else i.notifyError(new Error(`ServicePoint '${t}': component '${n}' not found`))}return s}function C(r){let t=c().get("service_points",r);return t||(t={id:r,providers:[],properties:{}}),t}function w(r,e){let t=c(),i=t.get("service_points",r);if(i){let s=!1;for(let n in e){let o=e[n];o!==void 0&&i[n]!=o&&(i[n]=o,s=!0)}s&&t.set("service_points",r,i)}else i={id:r,providers:[],properties:e},t.set("service_points",r,i);return i}I((r,e)=>{if(r==="service_points"){let t=a.get(e);if(t){let i=c().get("service_points",e);t.reset(i),console.log("[Update Service Point]",e)}}});function L(r){return a.get(r)}function D(r){let e=a.get(r);return e||(e=new v(C(r)),a.set(e.id,e)),e}function j(r,e,t){let i=r.resource+"/"+e;return w(i,t),D(i)}export{y as a,l as b,c,I as d,b as e,a as f,v as g,G as h,H as i,C as j,w as k,L as l,D as m,j as n};
@@ -0,0 +1 @@
1
+ import{URI as q}from"vscode-uri";import{URI as me,Utils as ue}from"vscode-uri";var l=class t{constructor(e,n=null){this.resource=e;this.definition=n}defintiion(){}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 new t(`${this.resource}.${e}`)}};var L=new l("component"),_e=new l("editor");var P={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 O(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 U(t){let e=t.match(/data:([^;]+)/);return e?e[1]:"application/octet-stream"}async function B(t){return new Promise((e,n)=>{let o=new FileReader;o.onloadend=()=>e(o.result),o.onerror=n,o.readAsDataURL(t)})}import{URI as D}from"vscode-uri";function w(t){if(t.startsWith("./")){let e=D.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("/")?D.parse(window.location.href).with({path:t,query:"",fragment:""}):D.parse(t)}async function z(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 v(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 z(t)}}function ve(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 F(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 x=class{constructor(e){this.storage=e}modules_exports=new Map;baseUrl=X(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 P.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 X(t){let e=t.split("/");return e.pop(),e.join("/")}import{URI as Y}from"vscode-uri";var I=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 U(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 O(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 B(e);return localStorage.setItem(o,r),!0}return!1}};function je(t,e,n){let o=n?`/${e}/${n}`:`/${e}`;return Y.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}},S=class extends _{manifests=new Map;async add_component(e){let n=await v(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 R=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 P.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 M=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 Z(){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 ee(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 te(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 A(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 ne(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 oe(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 b of d.result)b.service===c&&n.add(b.component_id);p(void 0)},d.onerror=b=>{m(b.target.error)}}));return Promise.all(i)}async function re(t,e){let{services:n}=e;if(n&&n.length>0){let o=[],r=new Set;await oe(t,n,r);for(let s of await A(t,Array.from(r)))h(s,e)&&o.push(s);return o}else return ne(t,o=>h(o,e))}function se(t,e){return new Promise(async(n,o)=>{let r=await v(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 ie(t,e){return new Promise(async(n,o)=>{let r=await te(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 T=class{db=Z();async get_component_publication(e){return(await A(await this.db,[e]))[0]}async search_component_publications(e){return re(await this.db,e)}async get_component_manifest(e){return ee(await this.db,e)}async set_component_manifest(e,n){return!1}async add_component(e){return se(await this.db,e)}async delete_component(e){return ie(await this.db,e)}};function J(){try{if(window)return new T}catch{}return new S}var $=class{notifyError(e,n){console.error(e),this.notifyObject(pe(e,n))}notifyObject(e){f.push(e),console.log(e)}},E=new Set,f=[],K=0,ce=new $;ae(ce);function W(){return K++,"id-"+Date.now().toString(36)+"-"+K.toString(2)}function ae(t){E.add(t)}function Je(t){E.delete(t)}function Ke(){return f.length}function Q(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 G(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 E)e.notifyObject(t)},0)},error(t,e){setTimeout(()=>{for(let n of E)n.notifyError(t,e)},0)},event(t,e){let n=g(t),o=W();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 pe(t,e){return{id:W(),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 L.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 j(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 G(this.id)}getLogs(e){return Q(e,this.id)}},j=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=F(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=V(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=me.parse(window.location.href).with({fragment:null});return ue.joinPath(n,"..",e.split("#")[0]).toString()}return null}},k=class{components=new Map;resources=new Map;datamap=new WeakMap;loadings=new Map;installings=new Map;listeners=new Set;components_provider=new M([]);resources_loader=null;content_provider=null;constructor(){this.content_provider=new I,this.components_provider.add_provider(new R(this.content_provider)),this.components_provider.add_provider(J()),this.resources_loader=new x(this.content_provider)}listen(e){return this.listeners.add(e),e}unlisten(e){this.listeners.delete(e)}notifyError(e,n){}},a=new k;u("<error>").set({$id:"<error>",icon:"bi:house",title:"Define invalid component"});function le(){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 j)return n.component;if(!e&&t.getComponent instanceof Function)return g(t.getComponent(),!0)}return le()}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 nt(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 ot(t){let e=t.split("#");return e.length===2?u(e[0])?.acquireResource(e[1]):null}function rt(t,e){return e&&t.startsWith("/")?u(`${e?.id}${t}`):null}async function st(t){let e=u(t.$id);return a.loadings.delete(e),e.manifest=t,fe(e)}async function fe(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 L.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 it(t){console.log("deleteComponent",t),await a.components_provider.delete_component(t)&&de(t)}function de(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 ct(t){return a.components_provider.search_component_publications(t)}async function at(t){let e=[];for(let n of t){let o=await a.components_provider.get_component_publication(n);o?e.push(o):e.push(ge(n))}return e}function ge(t,e){return{id:t,title:e||"! Not found: "+t}}var H=new l("api.rest");function V(t,e){let n=t.endpoint+(t.path||"");return{invoke(o,r){return globalThis.fetch(n+o,r)},getUrl(o){return n+o}}}var dt={async fetch(t,e){if(typeof t=="string"&&(t=q.parse(t)),t.scheme==="jtd"){let n=u(t.authority),o=await H.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=q.parse(t)),t.scheme==="jtd"){let e=u(t.authority),n=await H.fetch(e);if(n){let o=t.query?`${t.path}?${t.query}`:t.path;t=q.parse(n.getUrl(o))}else throw new Error(`Unknown component '${t.authority}'`)}return t}};export{l as a,L as b,_e as c,w as d,z as e,v as f,ve as g,h,F as i,x as j,I as k,je as l,_ as m,S as n,R as o,M as p,J as q,H as r,V as s,dt as t,C as u,j as v,k as w,a as x,le as y,g as z,u as A,nt as B,ot as C,rt as D,st as E,fe as F,it as G,de as H,ct as I,at as J,ge as K,ae as L,Je as M,Ke as N,Q as O,G as P,y as Q,pe as R};
@@ -0,0 +1,8 @@
1
+ import{z as u}from"zod";var a=class e{constructor(r,t){this.$spec=r;this.version=t}_type="ZodService";parse(r){if(typeof r!="object"||r===null)throw new Error(`Expected object, received ${typeof r}`);return r}safeParse(r){try{return{success:!0,data:this.parse(r)}}catch(t){return{success:!1,error:t}}}toJSONSchema(){return{type:"service",$spec:this.$spec,...this.version&&{version:this.version}}}static create(r,t){return new e(r,t)}},l=a.create;function g(e){return e instanceof a?e.toJSONSchema():u.toJSONSchema(e,{unrepresentable:"any",override:({zodSchema:r,jsonSchema:t})=>{let n=r._zod?.def?.meta;n?.$spec&&Object.assign(t,n.toServiceSchema())}})}function f(e){if(!e||!Object.keys(e).length)return u.any();if(e.type==="service"){let r=e;return l(r.$spec,r.version)}return u.fromJSONSchema(e)}function d(e,r){let n=(e instanceof u.ZodType?e:f(e)).safeParse(r);return n.success?{success:!0,data:n.data}:{success:!1,errors:n.error.issues.map(i=>({path:i.path.map(String),message:i.message,code:i.code}))}}function h(e,r){return(e instanceof u.ZodType?e:f(e)).parse(r)}function b(e,r,t={}){let{comments:n=!0,indent:i=" ",export:o=!0}=t,p=o?"export ":"",s=n&&e.description?`/** ${e.description} */
2
+ `:"";if(e.type==="service"){let m=e,y=n?`${i}/** @spec ${m.$spec}${m.version?` @version ${m.version}`:""} */
3
+ `:"";return`${s}${p}interface ${r} {
4
+ ${y}${i}[key: string]: unknown
5
+ }`}return`${s}${p}type ${r} = ${c(e,i,0)}`}var c=(e,r,t)=>{let n=r.repeat(t),i=r.repeat(t+1);if(e.const!==void 0)return JSON.stringify(e.const);if(e.enum)return e.enum.map(o=>JSON.stringify(o)).join(" | ");if(e.oneOf)return e.oneOf.map(o=>c(o,r,t)).join(" | ");if(e.anyOf)return e.anyOf.map(o=>c(o,r,t)).join(" | ");if(e.allOf)return e.allOf.map(o=>c(o,r,t)).join(" & ");switch(e.type){case"string":return"string";case"number":case"integer":return"number";case"boolean":return"boolean";case"null":return"null";case"array":return Array.isArray(e.items)?`[${e.items.map(s=>c(s,r,t)).join(", ")}]`:`${e.items?c(e.items,r,t):"any"}[]`;case"object":if(!e.properties&&e.additionalProperties&&typeof e.additionalProperties=="object")return`Record<string, ${c(e.additionalProperties,r,t)}>`;if(!e.properties)return"object";let o=e.required??[],p=Object.entries(e.properties).map(([s,m])=>`${i}${s}${o.includes(s)?"":"?"}: ${c(m,r,t+1)}`);return typeof e.additionalProperties=="object"&&Object.keys(e.additionalProperties).length&&p.push(`${i}[key: string]: ${c(e.additionalProperties,r,t+1)}`),`{
6
+ ${p.join(`
7
+ `)}
8
+ ${n}}`;case"function":return"Function";case"view":case"display":case"element":return"React.ReactNode";default:return"any"}};function v(e,r,t){let n=S(e),i=S(r);if(e===r)return{compatible:!0};if(n.major!==i.major)return{compatible:!1,reason:`Major version mismatch: required ${n.major}.x, provided ${i.major}.x`};if(i.minor<n.minor)return{compatible:!1,reason:`Provider version ${r} is older than required ${e}`};if(t){let o=S(t);if(n.major<o.major||n.major===o.major&&n.minor<o.minor)return{compatible:!1,reason:`Required version ${e} is below minimum compatible version ${t}`}}return{compatible:!0,warnings:i.minor>n.minor?[`Provider version ${r} is newer than required ${e}`]:void 0}}function S(e){let r=e.split(".").map(Number);return{major:r[0]||0,minor:r[1]||0,patch:r[2]||0}}function T(e){return e}function I(e){return a.create(e.$spec,e.version)}function N(e){return{type:"service",$spec:e.$spec,version:e.version}}function P(e){return{type:"service",$spec:e.$spec,version:e.version}}function k(e,r){return e.$spec!==r.$spec?{compatible:!1,reason:`Specification mismatch: definition uses "${e.$spec}", expected "${r.$spec}"`}:v(r.version,e.version,r.minCompatibleVersion)}export{u as a,a as b,l as c,g as d,f as e,d as f,h as g,b as h,v as i,T as j,I as k,N as l,P as m,k as n};
@@ -0,0 +1 @@
1
+ import{A as h,C as V,a as w}from"./chunk.H26D4GQC.js";var S={stringify(n,r){let e=new URLSearchParams;for(let[t,o]of Object.entries(n||{}))if(!(r?.skipNull&&o===null)&&!(r?.skipEmptyString&&o===""))if(Array.isArray(o))for(let s of o)e.append(t,String(s));else e.set(t,String(o));return e.toString()},parse(n,r){let e={},t=new URLSearchParams(n);for(let[o,s]of t.entries())e[o]=s;return e}},b=new w("view");function g(n){if(!n)return"";if(n instanceof Object){let r=[];for(;n;){let e=S.stringify(n.params,{skipNull:!1,skipEmptyString:!1});e?r.push(`${n.name}?${e}`):r.push(n.name),n=n.nested}return r.join("/")}return n.startsWith("#")?n.slice(1):n}function a(n,r){if(!n)return null;if(n instanceof Object)return n;let e=null,t=null;n=n.startsWith("#")?n.slice(1):n;for(let o of n.split("/"))if(o){let[s,u]=o.split("?"),c={};u&&(c=S.parse(u,{parseNumbers:!1,parseBooleans:!1}));let f={name:s,params:c};t?t.nested=f:e=f,t=f}return t&&(t.content=r),e}function R(n,r){if(n==="safe")return null;if(n){let e=typeof n=="string"?n:n?.rule,t=V(e).get();if(t)try{return t.check(r,n instanceof Object?n:null)}catch(o){return o}else return new Error("Data security guard not found")}else return new Error("Data cannot be securised")}function k(n,r,e){if(r!==void 0){if(e!==!0){let t=R(n?.security,r);if(t)throw t}return r}else return n.default}function d(n,r,e,t){let o={},s=b.spec(n),u=t==="safe",c=s?.properties;if(c instanceof Object){let{content:f}=e,l=e.params||{},y=s.aliases;if(y){let i={};for(let p in l){let m=y?.[p]||p;i[m]=l[p]}l=i}for(let i in c){let p=c[i],m=l[i];f!==void 0&&p?.binding?.source==="content"&&(m=f);try{o[i]=k(p,m,u)}catch(I){throw new Error(`Invalid param '${i}' : ${I.message}`)}}}return o}async function N(n,r){typeof n=="string"&&(n=a(n));let e=h(n.name),t=await e.fetch();if(e.valid){let o=d(e,t,n,r||"unknown");return{component:e,properties:o}}else throw new Error(`Component '${e.id}' is invalid`)}function O(n,r){let{origin:e,pathname:t}=window.location;typeof n=="string"&&(n=a(n)),r&&(typeof r=="string"&&(r=a(e)),n={...r,nested:n});let o="#"+g(n);return`${e}${t}${o}`}function $(n,r){let{origin:e}=window.location;typeof n=="string"&&(n=a(n)),r&&(typeof r=="string"&&(r=a(e)),n={...r,nested:n});let t="#"+g(n);window.location.assign(t)}function C(n){typeof n=="string"&&(n=a(n));let r=a(window.location.hash),e="#"+g({...n,params:{...r.params,...n.params}});window.location.replace(e)}export{b as a,g as b,a as c,N as d,O as e,$ as f,C as g};
@@ -0,0 +1 @@
1
+ import{A as o,Q as r}from"./chunk.H26D4GQC.js";import{URI as d}from"vscode-uri";async function l(t){console.log("executeCommand:",t.target);let a=d.parse(t.target),i=o(a.authority);if(a.scheme==="command")try{let e=await i.fetchResource("commands");if(e?.execute instanceof Function)e.execute(a.path,t.payload);else throw new Error("Invalid commands service")}catch(e){r.error(e)}}export{l as executeCommand};
package/export.js ADDED
@@ -0,0 +1,2 @@
1
+ import{a as dn,b as wn,c as bn,d as xn,e as vn,f as Tn,g as En,h as kn,i as An,j as On,k as In,l as Nn,m as Pn,n as Cn}from"./chunk.LFHCE3KB.js";import{a as jn,b as zn,c as Jn,d as Ln,e as Vn,f as Dn,g as Fn,h as $n,i as Rn,j as Mn,k as Bn,l as _n,m as qn,n as Un}from"./chunk.3AAAY44Q.js";import{A as Xt,B as en,C as tn,D as nn,E as rn,F as on,G as an,H as sn,I as ln,J as un,K as pn,L as cn,M as fn,N as yn,O as mn,P as hn,Q as Sn,R as gn,a as Pt,b as Ct,c as jt,d as zt,e as Jt,f as Lt,g as Vt,h as Dt,i as Ft,j as $t,k as Rt,l as Mt,m as Bt,n as _t,o as qt,p as Ut,q as Gt,u as Kt,v as Yt,w as Wt,x as Ht,y as Zt,z as Qt}from"./chunk.H26D4GQC.js";function Gn(e,t){for(let n in e)if(e[n]!==t[n])return!1;for(let n in t)if(e[n]!==t[n])return!1;return!0}function*Kn(e){if(Array.isArray(e))for(let t of e)yield t;else e&&(yield e)}var G=Symbol("__observable__"),K=Symbol("__status__");var O=class{observers;state;image;constructor(){this.observers=null,this.state={},this.image=new Proxy(this.state,this)}subscribe(t,n){this.observers===null&&(this.observers=[]),this.observers.push(t,n)}unsubscribe(t){}notify(t){if(this.observers)for(let n=0;n<this.observers.length;n+=2){let r=this.observers[n];r(this.image,t)}}async use(t){return this.image}get(t,n){return n===G?this:Reflect.get(this.state,n)}set(t,n,r){return this.state[n]!==r&&(this.state[n]=r,this.notify(n)),!0}ownKeys(t){return Reflect.ownKeys(this.state)}has(t,n){return Reflect.has(this.state,n)}};var m=null,I=class{".events";".listeners";addEventListener(){let t=this[".listeners"];if(t?m===t&&(this[".listeners"]=t=t.slice()):this[".listeners"]=t=[],arguments.length===1)return arguments[0]?(t.push(arguments[0]),t.push(null),!0):!1;if(arguments.length===2)return arguments[1]?(t.push(arguments[1]),t.push(arguments[0]),!0):!1}removeEventListener(){let t=this[".listeners"];if(t)m===t&&(this[".listeners"]=t=t.slice());else return!1;if(arguments.length===1){let n=arguments[0],r=0;for(;;)if(r=t.indexOf(n,r),r>=0)t.splice(r,2),r++;else return!0}else if(arguments.length===2){let n=arguments[0],r=arguments[1],a=0;for(;;)if(a=t.indexOf(r,a),a>=0){if(t[a+1]===n)return t.splice(a,2),!0;a++}else return console.warn(`removeEventListener(${n}) failed on:`,this),!1}return!1}synchronizeStateInContext(t,n,r,a){return this}addStateListener(t,n){return this.addEventListener("change",t)}removeStateListener(t){return this.removeEventListener("change",t)}setState(){if(arguments.length===0)this[".events"]?this[".events"][0]||(this[".events"][0]={}):(this[".events"]=[{}],setTimeout(z.bind(this)));else if(arguments.length===1)for(let t in arguments[0])Y.call(this,t,arguments[0][t]);else arguments.length===2&&Y.call(this,arguments[0],arguments[1])}dispatchEvent(t,n){this[".events"]||(this[".events"]=[null],setTimeout(z.bind(this))),t==="change"?this[".events"][0]=Object.assign(this[".events"][0]||{},n):(this[".events"].push(t),this[".events"].push(n))}executeEvent(t,n){let r=this[".listeners"],a=r?r.length:0;if(!a)return;m===null?m=r:r=r.slice();let i=[];for(let u=1;u<a;u+=2)try{let p,f=r[u];f?f===t&&(p=r[u-1](n,this)):p=r[u-1](t,n,this),p instanceof Promise&&i.push(p)}catch(p){console.error(p)}return m===r&&(m=null),Promise.all(i)}static setState(){}};I.setState=I.prototype.setState;function Y(e,t){if(this[e]!==t){this[".events"]||(this[".events"]=[null],setTimeout(z.bind(this)));let n=this[".events"][0];n?n.hasOwnProperty(e)||(n[e]=this[e]):this[".events"][0]={[e]:t},this[e]=t}}function z(){let e=this[".listeners"],t=this[".events"],n=e?e.length:0;if(this[".events"]=null,!n)return;m===null?m=e:e=e.slice();let r=t[0];if(r)for(let a=1;a<n;a+=2)try{let i=e[a];if(!i)e[a-1]("change",this,r);else if(i==="change")e[a-1](this,r);else if(Array.isArray(i)){for(let u of i)if(r.hasOwnProperty(u)){e[a-1](this,r);break}}}catch(i){console.error(i)}for(let a=2;a<t.length;a+=2){let i=t[a-1],u=t[a];for(let p=1;p<n;p+=2)try{let f=e[p];f?f===i&&e[p-1](u,this):e[p-1](i,u,this)}catch(f){console.error(f)}}m===e&&(m=null)}var W={log:console.log,debug:console.info,warning:console.warn,error:console.error,success:console.info,title:console.info,info:console.info,exception:console.error};var H=class extends O{constructor(n){super();this.url=n}loaded=!1;query=null;status=0;async use(){return this.loaded===!1?(this.query===null&&(this.query=fetch(this.url).then(async n=>{let r=await n.json();return Object.assign(this.state,r),this.status=n.status,this.query=null,this.loaded=!0,this.notify(),this.image},n=>(W.error(n),this.loaded=!0,this.image))),this.query):this.image}get(n,r){if(typeof r=="string"){if(this.loaded===!1)return this.use().then(()=>this.state[r])}else if(r===K)return this.status;return super.get(n,r)}set(n,r,a){return this.loaded===!1?(console.error(`Resource '${this.url}' not ready for assignement`),!0):super.set(this.state,r,a)}};var h={boolean:{type:"boolean"},string:{type:"string"},number:{type:"number"},object:{type:"object"},view:{type:"view"},display:{type:"display"},function:{type:"function"},null:{type:"null"},unknown:{type:"null"},any:{}},ur={enums(e,...t){return{...e,enum:t}},array(e){return{type:"array",items:e}},record(e){return{type:"object",properties:e}},collection(e){return{type:"object",additionalProperties:e}},event_fn(e){return{type:"function",args:[e||h.any]}}},w={invalid:{$error:"Cannot determine the type"}};function re(e,t){if(!t)return w.invalid;let n=t.properties?.[e];if(n)return n;let{patternProperties:r}=t;for(let a in r)if(e.match(a))return r[a];return t.$error?w.invalid:t.additionalProperties||h.any}function oe(e,t){return t?Array.isArray(t.items)?t.items?.[e]||w.invalid:t.items?t.items:t.type==="element"?t:t.$error?w.invalid:t.additionalProperties||h.any:w.invalid}function J(e){switch(typeof e){case"undefined":return h.null;case"boolean":return h.boolean;case"symbol":case"string":return h.string;case"bigint":case"number":return h.number;case"function":return h.function;case"object":{if(Array.isArray(e))return{type:"array",items:e.map(J)};if(e!==null){let t={};for(let n in t)t[n]=J(t[n]);return{type:"array",properties:t}}return h.null}default:return w.invalid}}function ae(e,t){let{type:n}=e;return Array.isArray(n)?n.includes(t):n===t}function se(e){return Array.isArray(e)?e.join(","):e}function N(e){if(e.type==="object"){let t=[];for(let n in e.properties)t.push(`${n}: ${N(e.properties[n])}`);for(let n in e.additionalProperties)t.push(`${n}?: ${N(e.additionalProperties[n])}`);for(let n in e.patternProperties)t.push(`[${n}: ${N(e.patternProperties[n])}]`);return t.join(`
2
+ `)}else if(e.type)return e.type;return"any"}var pr={getPropertyTyping:re,getItemTyping:oe,getValueTyping:J,isType:ae,typeAsString:se,generateTypescript:N};import{z as o}from"zod";var ie=o.enum(["string","number","integer","boolean","object","array","null"]),le=o.enum(["module","function","service"]),P=o.union([o.string(),o.number(),o.boolean(),o.null(),o.record(o.string(),o.any()),o.array(o.any())]),ue=o.object({title:o.string().optional(),properties:o.array(o.string()).optional(),secondaryProperties:o.array(o.string()).optional(),patternProperties:o.array(o.string()).optional(),additionalProperties:o.boolean().optional()}),pe=o.object({description:o.string().optional(),chapters:o.array(ue).optional(),additionalChapter:o.boolean().optional()}),ce=o.object({source:o.string()}),fe=o.object({type:o.string()}).passthrough(),c=o.lazy(()=>b),ye=o.object({title:o.string().optional(),icon:o.string().optional(),description:o.string().optional(),args:o.array(c).optional(),content:fe}),me=o.object({view:o.string(),properties:o.record(o.string(),c).optional()}),yr=o.object({check:o.any()}),he=o.union([o.literal("safe"),o.string(),o.object({rule:o.string()}).passthrough()]),Se=o.string(),ge=o.union([Se,o.object({type:o.string(),data:o.any().optional()})]),L=o.object({$id:o.string().optional(),$ref:o.string().optional(),$schema:o.string().optional(),$comment:o.string().optional(),$defs:o.record(o.string(),o.lazy(()=>c)).optional(),type:o.union([ie,le]).optional(),enum:o.array(P).optional(),const:P.optional(),multipleOf:o.number().optional(),maximum:o.number().optional(),exclusiveMaximum:o.number().optional(),minimum:o.number().optional(),exclusiveMinimum:o.number().optional(),maxLength:o.number().optional(),minLength:o.number().optional(),pattern:o.string().optional(),items:o.union([o.lazy(()=>c),o.array(o.lazy(()=>c))]).optional(),additionalItems:o.lazy(()=>c).optional(),maxItems:o.number().optional(),minItems:o.number().optional(),uniqueItems:o.boolean().optional(),contains:o.lazy(()=>c).optional(),maxProperties:o.number().optional(),minProperties:o.number().optional(),required:o.array(o.string()).optional(),properties:o.record(o.string(),o.lazy(()=>c)).optional(),patternProperties:o.record(o.string(),o.lazy(()=>c)).optional(),additionalProperties:o.lazy(()=>c).optional(),dependencies:o.record(o.string(),o.union([o.lazy(()=>c),o.array(o.string())])).optional(),propertyNames:o.lazy(()=>c).optional(),if:o.lazy(()=>c).optional(),then:o.lazy(()=>c).optional(),else:o.lazy(()=>c).optional(),allOf:o.array(o.lazy(()=>c)).optional(),anyOf:o.array(o.lazy(()=>c)).optional(),oneOf:o.array(o.lazy(()=>c)).optional(),not:o.lazy(()=>c).optional(),format:o.string().optional(),contentMediaType:o.string().optional(),contentEncoding:o.string().optional(),definitions:o.record(o.string(),o.lazy(()=>c)).optional(),title:o.string().optional(),description:o.string().optional(),default:P.optional(),readOnly:o.boolean().optional(),writeOnly:o.boolean().optional(),examples:P.optional()}),V=o.object({title:o.string().optional(),icon:o.string().optional(),doc:pe.optional(),$error:o.union([o.string(),o.instanceof(Error)]).optional(),args:o.array(o.lazy(()=>b)).optional(),placeholder:o.boolean().optional(),resources:o.record(o.string(),ge).optional(),security:he.optional(),"allow-origin":o.string().optional(),docking:me.optional(),templates:o.array(ye).optional(),binding:ce.optional(),aliases:o.record(o.string(),o.string()).optional()}),de=L.merge(V).extend({type:o.literal("service"),$spec:o.string(),version:o.string().optional()}),mr=L.merge(V).extend({type:o.literal("function"),input:o.union([o.lazy(()=>b),o.array(o.lazy(()=>b))]).optional(),output:o.union([o.lazy(()=>b),o.array(o.lazy(()=>b))]).optional()}),b=o.lazy(()=>o.union([L.merge(V),de]));var S=class{constructor(t,n,r={}){this.$parentScope=t;this.$thisScope=n;this.locals=r}getThis(){return this.$thisScope}getValue(t){if(Object.hasOwn(this.locals,t))return this.locals[t];if(this.$parentScope)return this.$parentScope.getValue(t)}setValue(t,n){if(Object.hasOwn(this.locals,t)){this.locals[t]=n;return}this.$parentScope?.setValue(t,n)}setArguments(t,n){this.locals.arguments=t;let r=Math.min(t.length,n.length);for(let a=0;a<r;a++){let i=n[a];this.locals[i.name]=t[a]}}},Er=new S(null,null),x=Symbol("return"),C=Symbol("break"),R=Symbol("continue"),D=class{constructor(t){this.value=t}symbol=x},F=class{symbol=C},$=class{symbol=R};function v(e){return e!==null&&typeof e=="object"&&"symbol"in e&&(e.symbol===x||e.symbol===C||e.symbol===R)}var Z=new Map([["+",(e,t)=>e+t],["-",(e,t)=>e-t],["*",(e,t)=>e*t],["/",(e,t)=>e/t],["%",(e,t)=>e%t],["==",(e,t)=>e==t],["!=",(e,t)=>e!=t],["===",(e,t)=>e===t],["!==",(e,t)=>e!==t],["<",(e,t)=>e<t],["<=",(e,t)=>e<=t],[">",(e,t)=>e>t],[">=",(e,t)=>e>=t]]),we=new Map([["-",e=>-e],["+",e=>+e],["!",e=>!e],["~",e=>~e],["typeof",e=>typeof e],["void",e=>{}]]),Q=new Map([["=",(e,t)=>t],["+=",(e,t)=>e+t],["-=",(e,t)=>e-t],["*=",(e,t)=>e*t],["/=",(e,t)=>e/t],["%=",(e,t)=>e%t]]);function be(e){return e.value}function xe(e,t){return t.getValue(e.name)}function ve(e){return e.getThis()}function Te(e,t){let n=s(e.left,t),r=s(e.right,t),a=Z.get(e.operator);if(!a)throw new Error(`Unsupported binary operator: ${e.operator}`);return a(n,r)}function Ee(e,t){let n=s(e.left,t);if(e.operator==="&&")return n&&s(e.right,t);if(e.operator==="||")return n||s(e.right,t);throw new Error(`Unsupported logical operator: ${e.operator}`)}function ke(e,t){if(e.operator==="delete"){if(e.argument.type==="MemberExpression"){let a=e.argument,i=s(a.object,t),u=a.computed?s(a.property,t):a.property.name;return delete i[u]}throw new Error(`Unsupported delete operation on type: ${e.argument.type}`)}let n=s(e.argument,t),r=we.get(e.operator);if(!r)throw new Error(`Unsupported unary operator: ${e.operator}`);return r(n)}function Ae(e,t){if(e.argument.type!=="Identifier")throw new Error("Update expression only supports identifiers");let n=e.argument,r=t.getValue(n.name);if(e.operator==="++"){let a=r+1;return t.setValue(n.name,a),e.prefix?a:r}if(e.operator==="--"){let a=r-1;return t.setValue(n.name,a),e.prefix?a:r}throw new Error(`Unsupported update operator: ${e.operator}`)}function Oe(e,t){if(e.left.type!=="Identifier")throw new Error("Assignment only supports identifier left-hand side");let n=e.left,r=s(e.right,t),a=t.getValue(n.name),i=Q.get(e.operator);if(!i)throw new Error(`Unsupported assignment operator: ${e.operator}`);let u=i(a,r);return t.setValue(n.name,u),u}function Ie(e,t){let n=s(e.callee,t);if(typeof n!="function")throw new Error("Attempt to call a non-function");let r=new Array(e.arguments.length);for(let a=0;a<e.arguments.length;a++)r[a]=s(e.arguments[a],t);return n.apply(t.getThis(),r)}function Ne(e,t){let n=s(e.object,t),r=e.computed?s(e.property,t):e.property.name,a=n[r];return typeof a=="function"?a.bind(n):a}function Pe(e,t){let n=s(e.test,t);return s(n?e.consequent:e.alternate,t)}function Ce(e,t){let n=new Array(e.elements.length);for(let r=0;r<e.elements.length;r++)n[r]=s(e.elements[r],t);return n}function je(e,t){let n={};for(let r of e.properties){let a=r,i=a.key.type==="Literal"?a.key.value:a.key.name;n[String(i)]=s(a.value,t)}return n}function ze(e,t){return function(...n){let r=new S(t,this);r.setArguments(n,e.params);try{return s(e.body,r)}catch(a){if(v(a)&&a.symbol===x)return a.value;throw a}}}function Je(e,t){return function(...n){let r=new S(t,t.getThis());r.setArguments(n,e.params);try{return s(e.body,r)}catch(a){if(v(a)&&a.symbol===x)return a.value;throw a}}}function Le(e,t){let n;for(let r of e.body)n=s(r,t);return n}function Ve(e,t){return s(e.expression,t)}function De(e,t){let n;for(let r of e.declarations){let a=r.id.name,i=r.init?s(r.init,t):void 0;t.setValue(a,i),n=i}return n}function Fe(e,t){let n=e.argument?s(e.argument,t):void 0;throw new D(n)}function $e(e,t){if(s(e.test,t))return s(e.consequent,t);if(e.alternate)return s(e.alternate,t)}function k(e,t){if(v(e)){if(e.symbol===C)return{shouldBreak:!0,shouldContinue:!1,result:t};if(e.symbol===R)return{shouldBreak:!1,shouldContinue:!0,result:t};if(e.symbol===x)throw e}throw e}function Re(e,t){let n;for(;s(e.test,t);)try{n=s(e.body,t)}catch(r){let a=k(r,n);if(a.shouldBreak)break;if(a.shouldContinue)continue;n=a.result}return n}function Me(e,t){let n;for(e.init&&s(e.init,t);!e.test||s(e.test,t);){try{n=s(e.body,t)}catch(r){let a=k(r,n);if(a.shouldBreak)break;if(a.shouldContinue){e.update&&s(e.update,t);continue}n=a.result}e.update&&s(e.update,t)}return n}var l=new Map([["Literal",be],["Identifier",xe],["ThisExpression",(e,t)=>ve(t)],["BinaryExpression",Te],["LogicalExpression",Ee],["UnaryExpression",ke],["UpdateExpression",Ae],["AssignmentExpression",Oe],["CallExpression",Ie],["MemberExpression",Ne],["ConditionalExpression",Pe],["ArrayExpression",Ce],["ObjectExpression",je],["FunctionExpression",ze],["ArrowFunctionExpression",Je],["BlockStatement",Le],["ExpressionStatement",Ve],["VariableDeclaration",De],["ReturnStatement",Fe],["IfStatement",$e],["WhileStatement",Re],["ForStatement",Me],["BreakStatement",()=>{throw new F}],["ContinueStatement",()=>{throw new $}],["EmptyStatement",()=>{}]]);function Be(e,t){let n;do try{n=s(e.body,t)}catch(r){let a=k(r,n);if(a.shouldBreak)break;if(a.shouldContinue)continue;n=a.result}while(s(e.test,t));return n}function _e(e,t){let n=s(e.right,t),r;for(let a in n)if(Object.prototype.hasOwnProperty.call(n,a)){X(e.left,a,t);try{r=s(e.body,t)}catch(i){let u=k(i,r);if(u.shouldBreak)break;if(u.shouldContinue)continue;r=u.result}}return r}function qe(e,t){let n=s(e.right,t),r;for(let a of n){X(e.left,a,t);try{r=s(e.body,t)}catch(i){let u=k(i,r);if(u.shouldBreak)break;if(u.shouldContinue)continue;r=u.result}}return r}function X(e,t,n){if(e.type==="VariableDeclaration"){let r=e.declarations[0].id.name;n.setValue(r,t)}else e.type==="Identifier"&&n.setValue(e.name,t)}function Ue(e,t){let n=s(e.discriminant,t),r=!1,a;for(let i of e.cases)if(!r&&i.test&&s(i.test,t)===n&&(r=!0),r||!i.test&&!r)for(let u of i.consequent)try{a=s(u,t)}catch(p){if(v(p)&&p.symbol===C)return a;throw p}return a}function Ge(e,t){throw s(e.argument,t)}function Ke(e,t){let n;try{n=s(e.block,t)}catch(r){if(e.handler){let a=e.handler.param?e.handler.param.name:void 0,i=new S(t,t.getThis());a&&i.setValue(a,r),n=s(e.handler.body,i)}else throw r}finally{e.finalizer&&s(e.finalizer,t)}return n}function Ye(e,t){return s(e.body,t)}function We(e,t){let n;for(let r of e.body)n=s(r,t);return n}function He(e,t){let n=function(...r){let a=new S(t,this);a.setArguments(r,e.params);try{return s(e.body,a)}catch(i){if(v(i)&&i.symbol===x)return i.value;throw i}};return e.id&&t.setValue(e.id.name,n),n}function Ze(e,t){let n=s(e.callee,t);if(typeof n!="function")throw new Error("Attempt to construct a non-function");let r=new Array(e.arguments.length);for(let a=0;a<e.arguments.length;a++)r[a]=s(e.arguments[a],t);return new n(...r)}function Qe(e,t){let n;for(let r of e.expressions)n=s(r,t);return n}function Xe(e,t){let n=e.argument?s(e.argument,t):void 0;if(e.delegate)throw new Error("yield* delegation not implemented");return n}function et(e,t){let n="";for(let r=0;r<e.quasis.length;r++)if(n+=e.quasis[r].value.cooked||e.quasis[r].value.raw,r<e.expressions.length){let a=s(e.expressions[r],t);n+=String(a)}return n}function tt(e,t){let n=s(e.tag,t);if(typeof n!="function")throw new Error("Template tag must be a function");let r=e.quasi.quasis.map(i=>i.value.cooked||i.value.raw);Object.defineProperty(r,"raw",{value:e.quasi.quasis.map(i=>i.value.raw)});let a=e.quasi.expressions.map(i=>s(i,t));return n(r,...a)}function nt(e,t){let n=s(e.argument,t);if(typeof n=="string"||Array.isArray(n))return[...n];if(n&&typeof n=="object")return{...n};throw new Error("Invalid spread operation")}function rt(e,t){throw new Error("ObjectPattern evaluation requires assignment context")}function ot(e,t){throw new Error("ArrayPattern evaluation requires assignment context")}function at(e,t){throw new Error("RestElement evaluation requires destructuring context")}function st(e,t){return s(e.right,t)}function it(e,t){let n=ee(e,t);return e.id&&t.setValue(e.id.name,n),n}function ee(e,t){let n=e.superClass?s(e.superClass,t):null,r=function(...a){let i=e.body.body.find(u=>u.type==="MethodDefinition"&&u.kind==="constructor");if(i)return s(i.value,t).apply(this,a);if(n)return n.apply(this,a)};n&&(Object.setPrototypeOf(r.prototype,n.prototype),Object.setPrototypeOf(r,n));for(let a of e.body.body)if(a.type==="MethodDefinition"&&a.kind!=="constructor"){let i=a,u=s(i.value,t),p=i.computed?s(i.key,t):i.key.name;i.static?r[p]=u:r.prototype[p]=u}return r}function lt(e,t){return s(e.value,t)}function ut(e,t){throw new Error("Super can only be used in class methods")}function pt(e,t){if(!(e.meta.name==="new"&&e.property.name==="target")){if(e.meta.name==="import"&&e.property.name==="meta")return{};throw new Error(`Unsupported meta property: ${e.meta.name}.${e.property.name}`)}}function ct(e,t){let n=s(e.argument,t);if(n&&typeof n=="object"&&"then"in n)throw new Error("Async/await requires async context");return n}function ft(e,t){try{return s(e.expression,t)}catch{return}}function yt(e,t){throw new Error("Dynamic import not supported in this interpreter")}function mt(e,t){return s(e.expression,t)}function ht(e,t){throw new Error("Private identifiers require class context")}function St(e,t){throw new Error("Import declarations require module system")}function gt(e,t){if(e.declaration)return s(e.declaration,t)}function dt(e,t){return s(e.declaration,t)}function wt(e,t){throw new Error("Export all declarations require module system")}var bt=new Map([...Z,["<<",(e,t)=>e<<t],[">>",(e,t)=>e>>t],[">>>",(e,t)=>e>>>t],["|",(e,t)=>e|t],["^",(e,t)=>e^t],["&",(e,t)=>e&t],["in",(e,t)=>e in t],["instanceof",(e,t)=>e instanceof t],["**",(e,t)=>e**t]]),xt=new Map([...Q,["<<=",(e,t)=>e<<t],[">>=",(e,t)=>e>>t],[">>>=",(e,t)=>e>>>t],["|=",(e,t)=>e|t],["^=",(e,t)=>e^t],["&=",(e,t)=>e&t],["**=",(e,t)=>e**t],["||=",(e,t)=>e||t],["&&=",(e,t)=>e&&t],["??=",(e,t)=>e??t]]),vt=new Map([["||",(e,t,n)=>e||s(t,n)],["&&",(e,t,n)=>e&&s(t,n)],["??",(e,t,n)=>e??s(t,n)]]);function Tt(e,t){let n=s(e.left,t),r=s(e.right,t),a=bt.get(e.operator);if(!a)throw new Error(`Unsupported binary operator: ${e.operator}`);return a(n,r)}function Et(e,t){let n=s(e.left,t),r=vt.get(e.operator);if(!r)throw new Error(`Unsupported logical operator: ${e.operator}`);return r(n,e.right,t)}function kt(e,t){if(e.left.type!=="Identifier")throw new Error("Assignment only supports identifier left-hand side");let n=e.left,r=s(e.right,t),a=t.getValue(n.name),i=xt.get(e.operator);if(!i)throw new Error(`Unsupported assignment operator: ${e.operator}`);let u=i(a,r);return t.setValue(n.name,u),u}l.set("Program",We);l.set("FunctionDeclaration",He);l.set("NewExpression",Ze);l.set("SequenceExpression",Qe);l.set("YieldExpression",Xe);l.set("TemplateLiteral",et);l.set("TaggedTemplateExpression",tt);l.set("SpreadElement",nt);l.set("ObjectPattern",rt);l.set("ArrayPattern",ot);l.set("RestElement",at);l.set("AssignmentPattern",st);l.set("ClassDeclaration",it);l.set("ClassExpression",ee);l.set("MethodDefinition",lt);l.set("Super",ut);l.set("MetaProperty",pt);l.set("AwaitExpression",ct);l.set("ChainExpression",ft);l.set("ImportExpression",yt);l.set("ParenthesizedExpression",mt);l.set("PrivateIdentifier",ht);l.set("ImportDeclaration",St);l.set("ExportNamedDeclaration",gt);l.set("ExportDefaultDeclaration",dt);l.set("ExportAllDeclaration",wt);l.set("BinaryExpression",Tt);l.set("LogicalExpression",Et);l.set("AssignmentExpression",kt);l.set("DoWhileStatement",Be);l.set("ForInStatement",_e);l.set("ForOfStatement",qe);l.set("SwitchStatement",Ue);l.set("ThrowStatement",Ge);l.set("TryStatement",Ke);l.set("LabeledStatement",Ye);l.set("DebuggerStatement",()=>{});l.set("WithStatement",()=>{throw new Error("WithStatement is not supported for security reasons")});l.set("VariableDeclarator",(e,t)=>{let n=e.init?s(e.init,t):void 0;return e.id.type==="Identifier"&&t.setValue(e.id.name,n),n});l.set("SwitchCase",(e,t)=>{let n;for(let r of e.consequent)n=s(r,t);return n});l.set("CatchClause",(e,t)=>s(e.body,t));l.set("Property",(e,t)=>s(e.value,t));l.set("TemplateElement",e=>e.value.cooked||e.value.raw);function s(e,t){if(!e||!e.type)throw new Error("Invalid node: missing type");let n=l.get(e.type);if(n)try{return n(e,t)}catch(r){throw v(r)?r:new Error(`Error evaluating ${e.type}: ${r instanceof Error?r.message:String(r)}`)}throw new Error(`Unsupported node type: ${e.type}`)}import*as te from"acorn";import*as q from"astring";var At=(r=>(r[r.DollarBracket=0]="DollarBracket",r[r.DollarCurly=1]="DollarCurly",r[r.CurlyCurly=2]="CurlyCurly",r))(At||{}),B=class{constructor(t,n,r){this.start=t;this.end=n;this.node=r}evaluate(t){return s(this.node,t)}toString(){return q.generate(this.node)}},_=class{constructor(t,n,r){this.pattern=t;this.bindings=n;this.issues=r}evaluate(t){let{pattern:n,bindings:r}=this,a=new S(null,null,t.vars),i=n,u=t.encoder||Nt;for(let p in r){let f=r[p];try{let g=f.evaluate(a);i=i.replace(p,u(g))}catch(g){let T=q.generate(f.node);throw console.log(`Invalid binding '${T}':`,g),new Error(`Invalid binding '${T}': ${g.message}`)}}return i}getBindingAt(t){for(let n in this.bindings){let r=this.bindings[n];if(t>=r.start&&t<r.end)return r}return null}toString(){let{pattern:t,bindings:n}=this,r=t;for(let a in n){let i=n[a];r=r.replace(a,i.toString())}return r}};function M(e,t,n){return{startToken:e,endToken:t,escapeChar:n,escapeCode:n.charCodeAt(0)}}var Ot=[M("$(",")","\\"),M("${","}","\\"),M("{{","}}","\\")];function Or(e,t,n=It){let{startToken:r,endToken:a,escapeCode:i}=Ot[t],u={ecmaVersion:2020},p={},f=n(e),g=0,T=[],A=[],E=0,y=0;for(;y=e.indexOf(r,y),!(y<0);)if(e.charCodeAt(y-1)===i)A.push(e.slice(E,y-1),r),E=y=y+r.length;else try{let d=te.parseExpressionAt(e,y+r.length,u),j=e.indexOf(a,d.end);if(j>0&&e.slice(d.end,j).trim()===""){let U=f(g);p[U]=new B(d.start,d.end,d),A.push(e.slice(E,y),U),E=y=j+a.length,g++}else throw new Error(`Embedding shall end with '${a}'`)}catch(d){T.push(d),y++}A.push(e.slice(E,e.length));let ne=A.join("");return new _(ne,p,T)}function It(e){let t="$";for(;e.includes(t);)t+="_";return n=>t+n}function Nt(e){return e===void 0||e===null?"":e.toString()}export{Q as ASSIGNMENT_OPERATIONS,zn as AccountSettings,Z as BINARY_OPERATIONS,ce as BindingSchema,ue as ChapterSchema,Ut as CombinedComponentProvider,ur as CommonMakers,$t as CommonResourceProvider,h as CommonTypes,Ct as ComponentControllerKey,Kt as ComponentEntry,Yt as ComponentResource,Wt as ComponentsManifold,Ht as ComponentsRegistry,me as DockingSchema,pe as DocumentationSchema,xt as ENHANCED_ASSIGNMENT_OPERATIONS,bt as ENHANCED_BINARY_OPERATIONS,vt as ENHANCED_LOGICAL_OPERATIONS,jt as EditorKey,At as EmbedSyntax,Er as EmptyScope,w as ErrorTypes,fe as ExpressionSchema,mr as FunctionSchemaSchema,K as HttpStatusAttribute,_t as InMemComponentProvider,Bt as InMemComponentPublisher,c as JSONSchema7DefinitionSchema,le as JSONSchema7TypeNameCustomSchema,ie as JSONSchema7TypeNameSchema,P as JSONSchema7TypeSchema,V as JSONSchemaCustomSchema,b as JSONSchemaSchema,L as JSONSchemaStandardSchema,I as Listenable,S as LocalScope,Sn as Log,O as Observable,G as ObservableAttribute,ge as ResourceEntrySchema,Se as ResourceLinkSchema,H as RestResource,pr as Schema,he as SecurityGuardSchema,yr as SecurityRuleSchema,Pt as ServiceEntry,Fn as ServicePoint,Dn as ServicePoints,de as ServiceSchemaSchema,qt as StaticComponentProvider,Rt as StaticContentProvider,ye as TemplateSchema,B as TextBinding,_ as TextTemplate,we as UNARY_OPERATIONS,jn as WriteMode,wn as ZodService,Xt as acquireComponent,en as acquireFutureComponent,tn as acquireResource,qn as acquireServicePoint,Mn as acquireServicePointDescriptor,Gn as areSimilarObjects,An as checkVersionCompatibility,Mt as contentLocalURI,Vt as createComponentFilter,Lt as createComponentPublication,Gt as createLocalComponentProvider,gn as createLogFromError,Un as createServicePoint,On as defineServiceSpec,an as deleteComponent,s as evaluateExpression,pn as failedComponentPublication,un as fetchComponentsPublications,kn as generateTypeScript,Qt as getComponentFromData,Jt as getComponentServicesList,Zt as getDefaultComponent,_n as getServicePoint,Nn as getServiceSchema,Pn as getServiceSchemaFromSpec,In as getServiceZod,Jn as getSettings,vn as jsonSchemaToZod,Kn as listOneOrMany,$n as listenServicePoints,Ln as listenSettings,Dt as matchComponentFilter,Cn as matchesSpecification,zt as parseComponentURI,Ft as parseResourceEntry,Or as parseTextTemplate,yn as queryLogCount,hn as queryLogInfos,mn as queryLogObjects,cn as registerLogCollector,nn as resolveRelativeComponent,on as saveComponent,rn as saveComponentManifest,ln as searchComponentsPublications,Rn as unlistenServicePoints,Vn as unlistenSettings,sn as unregisterComponent,fn as unregisterLogCollector,Bn as updateServicePointDescriptor,Tn as validate,En as validateOrThrow,dn as z,bn as zService,xn as zodToJSONSchema};
@@ -0,0 +1,17 @@
1
+ import{h as g,i as U,m as k}from"./chunk.3AAAY44Q.js";import{a as v,c as y,d as L}from"./chunk.YVZWYQZG.js";import"./chunk.H26D4GQC.js";import{z as a}from"zod";function Ie(r){let e=r||a.record(a.string(),a.any());return{$spec:"spec://jointhedots.org/view.react",version:"0.0",properties:a.object({props:e,requirements:a.object({servicePoints:a.record(a.string(),a.object({service:a.string().optional(),cardinality:a.number().optional()})).optional()}).optional()}),isAssignable(t){return t.$spec=this.$spec}}}var q=v.subservice("react"),Ve=v.subservice("webc");import{useEffect as z,useState as _}from"react";function ke(r,e,t){let[i,o]=_(e);return z(()=>{r().then(o,console.error)},t),i}import w from"react";import{jsx as f}from"react/jsx-runtime";var x=class{constructor(e,t){this.value=e;this.updateTimeout=t}promise=null;dispatch=null;updateTimer=null;shallUpdate=!0;updater;deps;use(e,t){if(this.updater=e,t!==this.deps){let i=this.deps;if(this.deps=t,t?.length===i?.length){if(t){for(let o=0;o<t.length;o++)if(t[o]!==i[o])return this.update()}}else return this.update()}}initiate(e){this.dispatch=e,this.dispatch(this.value)}cancelAutoUpdate(){this.updateTimer&&(clearTimeout(this.updateTimer),this.updateTimer=null)}scheduleAutoUpdate(){this.cancelAutoUpdate(),this.shallUpdate?this.update():this.updateTimeout>0&&(this.updateTimer=setTimeout(()=>{this.updateTimer=null,this.update()},this.updateTimeout))}get isWaiting(){return this.promise!==null}get hasState(){return this.value!==void 0}get autoUpdate(){return this.updateTimeout}set autoUpdate(e){this.updateTimeout=e,this.cancelAutoUpdate(),this.update()}set(e){this.value!==e&&(this.value=e,this.dispatch&&this.dispatch(e))}get(){return this.value}update(){try{if(this.promise)this.shallUpdate=!0,this.cancelAutoUpdate();else{let e=this.updater();this.shallUpdate=!1,e instanceof Promise?(this.promise=e,e.then(t=>{this.promise=null,this.set(t),this.scheduleAutoUpdate()},t=>{this.promise=null,this.scheduleAutoUpdate(),console.log(t)})):this.scheduleAutoUpdate()}}catch(e){this.scheduleAutoUpdate(),console.log(e)}}cancel(){this.dispatch=null,this.promise=null,this.updateTimeout=0,this.cancelAutoUpdate()}waiting(e){return this.isWaiting==!0?f(h,{}):e(this.value)}using(e){return this.hasState==!1?f(h,{}):e(this.value)}};function Ne(r,e,t,i){let[o]=w.useState(()=>new x(t,i)),[s,n]=w.useState(t);return o.use(r,e),w.useEffect(()=>(o.initiate(n),()=>o.cancel()),null),o}function Ae(r,...e){for(let t of e)if(t.isWaiting==!0)return f(h,{});return r()}function Me(r,...e){for(let t of e)if(t.hasState==!1)return f(h,{});return r()}function h(){return f("div",{children:"..."})}import I,{useContext as ee,useEffect as H,useMemo as te,useState as re}from"react";import{Spinner as O}from"react-lightning-design-system";import P,{createContext as X}from"react";var Q=`.JDT-ErrorBoundary {
2
+ background-color: rgb(216, 59, 59);
3
+ padding: 5px;
4
+ overflow: hidden;
5
+ }
6
+ .JDT-ErrorBoundary > .msg {
7
+ overflow: hidden;
8
+ }
9
+ .JDT-ErrorBoundary > .btn {
10
+ background-color: transparent;
11
+ border: 1px dashed darkred;
12
+ border-radius: 5px;
13
+ cursor: pointer;
14
+ }
15
+ .JDT-ErrorBoundary > .btn:hover {
16
+ background-color: rgb(255, 142, 142);
17
+ }`;document.head.appendChild(document.createElement("style")).appendChild(document.createTextNode(Q));import{jsx as T,jsxs as G}from"react/jsx-runtime";var p=class extends P.Component{render(){let{error:e,onRetry:t}=this.props,i=`${e.name}: ${e.message}`;return G("div",{className:"JDT-ErrorBoundary",title:i,children:[T("pre",{className:"msg",children:i}),t&&T("button",{className:"btn",onClick:t,children:"Retry"})]})}},M=X(null),N=class extends P.Component{static contextType=M;state={};componentDidCatch(e){let{context:t}=this,i=t?.getErrorDisplayer(e)||Y(e);this.setState({error:e,displayer:i})}render(){let{error:e}=this.state;if(e){let t=this.state.displayer;return T(t,{error:e,onRetry:()=>this.setState({error:void 0})})}else return this.props.children||null}},A=class extends P.Component{static contextType=M;getErrorDisplayer(e){for(let t=e;t;t=Object.getPrototypeOf(t)){let i=t.constructor;for(let o=this;o;o=o.context)if(o.props.errorClass===i)return o.props.errorDisplayer}return null}render(){return this.props.children||null}};function Y(r){for(let e=r;e;e=Object.getPrototypeOf(e)){let t=e.constructor,i=C.get(t);if(i)return i}return null}var C=new Map;C.set(Error,p);function Ze(r,e){C.set(r,e)}import{jsx as m,jsxs as ce}from"react/jsx-runtime";var oe=(o=>(o[o.NotReady=0]="NotReady",o[o.Loading=1]="Loading",o[o.Ready=2]="Ready",o[o.Failed=3]="Failed",o))(oe||{}),d=class extends Error{constructor(t,i){super(`Missing service point: ${t.map(o=>o.id).join(", ")}`);this.missings=t;this.requireds=i}},R=class{consumers=new Set;getService(e){return e.services}addController(e){this.consumers.add(e)}removeController(e){return this.consumers.delete(e)}onServiceChangeHandler=e=>{for(let t of this.consumers)t.notifyChange(e)}},b=class{constructor(e){this.controller=e}getService(e){return this.controller.getService(e)}},E=class{constructor(e,t,i,o){this.support=e;this.requireds=t;this.requirements=i;this.onUpdate=o;e.addController(this)}services=new Map;provider=null;state=null;get status(){return this.state instanceof Promise?1:this.state instanceof d?3:this.state===null?0:2}get error(){if(this.state instanceof d)return this.state}getService(e){let t=this.services.get(e);return!t&&this.support&&(t=this.support.getService(e),this.services.set(e,this.support.getService(e))),e.services}notifyChange(e){this.services.has(e)&&this.update()}updateState(e){let t=this.state;t!==e&&(this.state=e,this.onUpdate?.(e,t,this))}update(){let{requireds:e,requirements:t}=this,i=[],o=null;function s(n){o||(o=new d([])),o.missings.includes(n)||o.missings.push(n)}if(e)for(let n of e)if(n.ready){let c=n.services;c&&this.services.set(n,c)}else i.push(n.fetch());if(t){let{servicePoints:n}=t;for(let c in n){let u=k(c);if(u.ready){let D=u.services,S=n[c];S.service&&u.service!==S.service||D.length<(S.cardinality||1)?s(u):this.services.set(u,D)}else i.push(u.fetch())}}if(i.length>0){let n=Promise.all(i).then(()=>this.update());return this.updateState(n),n}else o?this.updateState(o):(this.provider=new b(this),this.updateState(this.provider));return null}dispose(){this.support&&(this.support.removeController(this),this.support=null)}},V=new R;g(V.onServiceChangeHandler);var ie=I.createContext(V),J=I.createContext(V);function Xe(r){H(()=>{let e=g(r);return()=>U(e)},[r])}function ne(r,e){let t=I.useContext(J);if(!t)return console.error("Wrap in <MountServicePoints> before using service point:",r.id),null;let i=t.getService(r);if(i.length<(e===void 0?1:e))throw new d([r],[r]);return i}function Ye(r,e){return ne(r,e?0:1)[0]}function se(r,e){let t=ee(ie),[,i]=re(null),o=te(()=>new E(t,r,e,i),[r,e]);return H(()=>(o.update(),()=>o?.dispose()),[o]),o}function W(r){let{requireds:e,requirements:t,children:i}=r,o=se(e,t),{provider:s,error:n}=o;if(n){let c=r.configurator;return c?m(c,{services:n.missings}):m(p,{error:n})}else return s?ce(J.Provider,{value:s,children:[i,o.status===1&&m(O,{})]}):m(O,{})}import{useState as F,useEffect as Z}from"react";function rt(){let[r,e]=F(window.location);return Z(()=>{let t=()=>{e(window.location)};return window.addEventListener("popstate",t),window.addEventListener("hashchange",t),()=>{window.removeEventListener("popstate",t),window.removeEventListener("hashchange",t)}},[]),r}function $(){let[r,e]=F(window.location.hash);return Z(()=>{let t=()=>{e(window.location.hash)};return window.addEventListener("hashchange",t),()=>{window.removeEventListener("hashchange",t)}},[]),r}function ot(){let{search:r}=window.location,e={};if(r.startsWith("?"))for(let t of r.slice(1).split("&")){let i=t.split("=");e[i[0]]=decodeURIComponent(i[1])}return e}import{useCallback as ae,useState as le}from"react";function ue(r,e){try{let t=window.localStorage.getItem(r);if(typeof t=="string")return JSON.parse(t)}catch{}return e instanceof Function?e():e}function pe(r,e){return e===void 0?window.localStorage.removeItem(r):window.localStorage.setItem(r,JSON.stringify(e)),e}function st(r,e){let[t,i]=le(ue(r,e)),o=ae(s=>i(pe(r,s)),[r]);return[t,o]}import{useCallback as de,useState as ve}from"react";function fe(r,e){try{let t=window.sessionStorage.getItem(r);if(typeof t=="string")return JSON.parse(t)}catch{}return e instanceof Function?e():e}function he(r,e){return e===void 0?window.sessionStorage.removeItem(r):window.sessionStorage.setItem(r,JSON.stringify(e)),e}function lt(r,e){let[t,i]=ve(fe(r,e)),o=de(s=>i(he(r,s)),[r]);return[t,o]}import{useState as me,useCallback as Se}from"react";function dt(){let[,r]=me(0);return Se(()=>{r(t=>t+1)},[])}import ge,{useContext as ye,useEffect as we,useMemo as j,useState as xe}from"react";import{jsx as l}from"react/jsx-runtime";var K=ge.createContext(null);async function Te(r,e,t){if(r)try{let{component:i,properties:o}=await L(r,e),s=v.spec(i),n=await q.fetch(i);if(!n)throw new Error(`Component '${r.name}' has no 'view.react' service`);let c=l(K.Provider,{value:r,children:l(n,{...o})});return s?.requirements&&(c=l(W,{requirements:s?.requirements,configurator:null,children:c})),c}catch(i){return l(p,{error:i})}return t}function Pe(){return ye(K)}function B(r){let{view:e,origin:t,fallback:i}=r,[o,s]=xe(null),n=j(()=>typeof e!="string"?e:y(e),[e]);return we(()=>{Te(n,t,i).then(s)},[n]),o||null}function Ce(r){let{hash:e,fallback:t}=r,i=j(()=>y(e),[e]);return l(B,{view:i,origin:"url",fallback:t})}function Re(r){let e=$();return l(Ce,{hash:e,fallback:r.fallback})}function wt(r){let e=Pe();return e?e?.nested?l(B,{view:e?.nested,origin:"url",fallback:r.fallback}):r.fallback||null:l(Re,{fallback:r.fallback})}export{x as AsyncState,N as ErrorBoundary,p as ErrorDisplayer,A as ErrorReconcilier,wt as InvokeNestedView,Re as InvokeURLView,Ce as InvokeUrlHashView,B as InvokeView,d as MissingServiceError,Ie as ReactComponentSchema,J as ServicePointsProviderContext,ie as ServicePointsSupportContext,oe as ServiceStatus,W as UseServicePoints,q as ViewReactKey,Ve as ViewWebComponentKey,ot as getLocationQuery,Ze as registerErrorDisplayer,ke as useAsyncMemo,Ne as useAsyncState,Pe as useCurrentView,dt as useForceUpdate,st as useLocalStorage,rt as useLocation,$ as useLocationHash,Ye as useService,ne as useServices,se as useServicesController,Xe as useServicesListener,lt as useSessionStorage,Me as using,Ae as waiting};
package/export.rest.js ADDED
@@ -0,0 +1 @@
1
+ import{r as a,s as b,t as c}from"./chunk.H26D4GQC.js";export{c as REST,a as RESTServiceKey,b as __import_RESTService};
@@ -0,0 +1 @@
1
+ import"./chunk.LFHCE3KB.js";import"./chunk.3AAAY44Q.js";import{a as e}from"./chunk.H26D4GQC.js";var r=new e("storage");export{r as StorageServiceKey};
package/export.view.js ADDED
@@ -0,0 +1 @@
1
+ import{a,b,c,d,e,f,g}from"./chunk.YVZWYQZG.js";import"./chunk.H26D4GQC.js";export{a as ViewServiceKey,d as evaluateViewInfos,c as getViewInfosFrom,b as getViewReferenceFrom,e as getViewURL,f as gotoURLView,g as updateURLView};
package/package.json CHANGED
@@ -1,5 +1,51 @@
1
- {
2
- "name": "@jointhedots/core",
3
- "version": "0.0.0",
4
- "private": false
1
+ {
2
+ "name": "@jointhedots/core",
3
+ "version": "2.0.21",
4
+ "type": "module",
5
+ "license": "MIT",
6
+ "exports": {
7
+ ".": {
8
+ "import": "./export.js",
9
+ "types": "./types.d.ts"
10
+ },
11
+ "./commands": {
12
+ "import": "./export.commands.js",
13
+ "types": "./types.d.ts"
14
+ },
15
+ "./storage": {
16
+ "import": "./export.storage.js",
17
+ "types": "./types.d.ts"
18
+ },
19
+ "./view": {
20
+ "import": "./export.view.js",
21
+ "types": "./types.d.ts"
22
+ },
23
+ "./react": {
24
+ "import": "./export.react.js",
25
+ "types": "./types.d.ts"
26
+ },
27
+ "./rest": {
28
+ "import": "./export.rest.js",
29
+ "types": "./types.d.ts"
30
+ }
31
+ },
32
+ "dependencies": {
33
+ "acorn": "^8.15.0",
34
+ "astring": "^1.9.0",
35
+ "json-schema": "^0.4.0",
36
+ "query-string": "^9.1.0",
37
+ "react-lightning-design-system": "^5.9.1",
38
+ "vscode-uri": "^3.1.0",
39
+ "yaml": "^2.8.2",
40
+ "zod": "^4.2.1"
41
+ },
42
+ "peerDependencies": {
43
+ "react": "^18.2.0",
44
+ "react-dom": "^18.2.0"
45
+ },
46
+ "overrides": {
47
+ "react-lightning-design-system": {
48
+ "react-relative-portal": "../../deps/react-relative-portal-1.3.1.tgz"
49
+ }
50
+ }
5
51
  }