ec.fdk 0.9.0 → 0.9.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/README.md CHANGED
@@ -218,7 +218,8 @@ ec.fdk <command> [options]
218
218
 
219
219
  | Command | Description | Required flags |
220
220
  | -------------- | ------------------------- | -------------- |
221
- | `login` | Login with ec credentials | — |
221
+ | `login` | Login via browser (OIDC). Use `--password` for email/password prompt. | — |
222
+ | `logout` | Logout and remove stored token | — |
222
223
  | `resourceList` | List any resource type | `--resource`, `-f` for query params |
223
224
  | `resourceGet` | Get a single resource | `--resource`, `-f` for identifying params |
224
225
  | `resourceEdit` | Edit a single resource | `--resource`, `-f` for identifying params, `--data` |
@@ -260,6 +261,7 @@ ec.fdk <command> [options]
260
261
  | `-p, --page <n>` | Page number for list |
261
262
  | `--sort <field>` | Sort field for list |
262
263
  | `-f, --filter <k=v>` | Filter for list (repeatable) |
264
+ | `--password` | Use email/password login instead of browser OIDC |
263
265
  | `--raw` | Include `_links` and `_embedded` in output |
264
266
  | `--md` | Output entries as readable markdown table |
265
267
  | `-v, --version` | Show version |
@@ -288,9 +290,15 @@ All examples use `<PLACEHOLDER>` values — replace them with your own resource
288
290
  ### Examples
289
291
 
290
292
  ```sh
291
- # Login to stage (stores token in ~/.ec-fdk/auth.json)
293
+ # Login to stage via browser OIDC (stores token in ~/.ec-fdk/auth.json)
292
294
  ec.fdk login -e stage
293
295
 
296
+ # Login via email/password prompt
297
+ ec.fdk login -e stage --password
298
+
299
+ # Logout
300
+ ec.fdk logout -e stage
301
+
294
302
  # List datamanagers
295
303
  ec.fdk dmList -e stage
296
304
 
package/dist/cli.cjs CHANGED
@@ -1,13 +1,17 @@
1
1
  #!/usr/bin/env node
2
- "use strict";const Y=require("node:util"),Q=require("node:module"),D=require("node:fs"),j=require("node:path"),Z=require("node:os"),ee=require("node:readline");async function u(t,e={},n={}){const{token:r,rawRes:a}=e;r&&(n.headers={...n.headers||{},Authorization:`Bearer ${r}`});const i=await fetch(t,n);if(!i.ok){if(i.headers.get("content-type")?.includes("application/json")){const s=await i.json(),c=`${s.title}
3
- ${s.detail}
4
- ${s.verbose}`;throw new Error(c)}throw new Error(`unexpected fetch error: ${i.statusText}`)}if(a)return i;if(i.status===204)return;const o=await i.text();return o?JSON.parse(o):void 0}const v={datamanager:{live:"https://datamanager.entrecode.de/",stage:"https://datamanager.cachena.entrecode.de/"},accounts:{live:"https://accounts.entrecode.de/",stage:"https://accounts.cachena.entrecode.de/"},appserver:{live:"https://appserver.entrecode.de/",stage:"https://appserver.cachena.entrecode.de/"},"dm-history":{live:"https://dm-history.entrecode.de/",stage:"https://dm-history.cachena.entrecode.de/"}};function f(t,e="stage",n="datamanager"){const r=v[n];if(!r)throw new Error(`subdomain "${n}" not found. Try one of ${Object.keys(v).join(", ")}`);const a=r[e];if(!a)throw new Error(`env "${e}" not found. Try one of ${Object.keys(r[e]).join(", ")}`);return a+t}function h(t,e=!0){return Object.entries(t).sort((n,r)=>n[0].localeCompare(r[0])).map(([n,r])=>`${n}=${r}`).join("&")}function d(t){Object.entries(t).forEach(([e,n])=>{if(n===void 0)throw new Error(`expected ${e} to be set!`)})}const N={stage:"https://accounts.cachena.entrecode.de/",live:"https://accounts.entrecode.de/"};async function te(t){let{env:e,dmShortID:n,email:r,password:a}=t;d({env:e,dmShortID:n,email:r,password:a});const i=f(`api/${n}/_auth/login?clientID=rest`,e);return await u(i,{},{method:"POST",body:JSON.stringify({email:r,password:a}),headers:{"Content-Type":"application/json"}})}async function ne(t){let{env:e,email:n,password:r}=t;d({env:e,email:n,password:r});const a=`${N[e]}auth/login?clientID=rest`;return await u(a,{},{method:"POST",body:JSON.stringify({email:n,password:r}),headers:{"Content-Type":"application/json"}})}async function re(t){let{dmShortID:e,env:n,token:r}=t;d({dmShortID:e,env:n,token:r});const a=f(`api/${e}/_auth/logout?clientID=rest&token=${r}`,n);return await u(a,{rawRes:!0},{method:"POST"})}async function ae(t){let{env:e,token:n}=t;d({env:e,token:n});const r=`${N[e]}auth/logout?clientID=rest`;return await u(r,{rawRes:!0,token:n},{method:"POST"})}function ie({dmShortID:t}){return d({dmShortID:t}),t}function se({env:t}){return d({env:t}),t}let oe=["created","creator","id","modified","private","_created","_creator","_embedded","_entryTitle","_id","_links","_modelTitle","_modelTitleField","_modified"];function J(t){let e={};for(let n in t)oe.includes(n)||(e[n]=t[n]);return e}function ce(t){return JSON.parse(JSON.stringify(t))}async function de(t){let{env:e,dmShortID:n}=t;d({env:e,dmShortID:n});const r=f(`api/${n}`,e);return u(r,t)}async function x(t){let{env:e,dmShortID:n,model:r,options:a={}}=t;d({env:e,dmShortID:n,model:r}),a={size:50,page:1,_list:!0,...a};const i=h(a),o=f(`api/${n}/${r}?${i}`,e),{count:s,total:c,_embedded:g}=await u(o,t);let m=g?g[`${n}:${r}`]:[];return m=Array.isArray(m)?m:[m],{count:s,total:c,items:m}}function ue({env:t,dmShortID:e,model:n,entryID:r,token:a}){d({env:t,dmShortID:e,model:n,entryID:r});const i=h({_id:r}),o=f(`api/${e}/${n}?${i}`,t);return u(o,{token:a})}async function le({env:t,dmShortID:e,model:n,value:r,token:a}){d({env:t,dmShortID:e,model:n,value:r});const i=f(`api/${e}/${n}`,t);return await u(i,{token:a},{method:"POST",body:JSON.stringify(r),headers:{"Content-Type":"application/json"}})}async function F({env:t,dmShortID:e,model:n,entryID:r,value:a,token:i,safePut:o=!1}){d({env:t,dmShortID:e,model:n,entryID:r,value:a});const s={"Content-Type":"application/json"};if(o){if(!("_modified"in a))throw new Error("expected _modified to be set!");s["If-Unmodified-Since"]=new Date(a._modified).toUTCString()}const c=f(`api/${e}/${n}?_id=${r}`,t);return a=ce(a),a=J(a),await u(c,{token:i},{method:"PUT",headers:s,body:JSON.stringify(a)})}function z({env:t,dmShortID:e,model:n,entryID:r,token:a}){d({env:t,dmShortID:e,model:n,entryID:r});const i=f(`api/${e}/${n}?_id=${r}`,t);return u(i,{token:a,rawRes:!0},{method:"DELETE",headers:{"Content-Type":"application/json"}})}async function fe(t,e){let{env:n,dmShortID:r,model:a,options:i={}}=t;d({env:n,dmShortID:r,model:a}),t.options={size:50,page:1,_list:!0,...i};let o=0,s,c=[];for(;s===void 0||o<s;){const g=await x(t);for(let m of g.items)c.push(await e(m));o+=g.items.length,s=g.total,t.options.page++}return c}async function ge({env:t,dmShortID:e,model:n,withMetadata:r}){d({env:t,dmShortID:e,model:n});const a=f(`api/schema/${e}/${n}`,t),i=await u(a),o=i?.allOf?.[1];if(typeof o.properties!="object")throw new Error(`getSchema: ${a} returned unexpected format: ${JSON.stringify(i)}`);const{properties:s}=o,c=J(s);for(let g in c){let m=c[g];if(m.required=o.required.includes(g),c[g]?.oneOf&&delete c[g]?.oneOf,m.title?.includes("<")&&m.title?.includes(">")){const k=m.title.split("<")[1].slice(0,-1),w=m.title.split("<")[0];m.type=w,k.includes(":")?m.resource=k.split(":")[1]:m.resource=k}else["asset","entry","assets","entries"].includes(m.title)?(m.type=m.title,m.resource=null):m.type=m.title;delete c[g].title}if(r){const g=s._modelTitle.title,m=s._modelTitleField.title;return{properties:c,meta:{modelTitleField:m,modelTitle:g}}}return c}function H(t){return Object.entries(t).map(([e,n])=>typeof n!="object"?{[e]:String(n)}:{...n.sort&&{sort:Array.isArray(n)?n.join(","):n},...n.search&&{[e+"~"]:n.search},...n.notNull&&{[e+"!"]:""},...n.null&&{[e]:""},...n.any&&{[e]:n.any.join(",")},...n.from&&{[e+"From"]:n.from},...n.to&&{[e+"To"]:n.to}}).reduce((e,n)=>({...e,...n}),{})}const me=H;function U(t){return t._links.collection.href.split("/").slice(-2)[0]}function K(t){const e=t._links.collection.href.split("api/")[0];return Object.keys(v.datamanager).find(r=>v.datamanager[r]===e)}const V=t=>{const e=U(t),n=K(t),r=t._modelTitle,a=t.id;return{dmShortID:e,env:n,model:r,entryID:a}},he=t=>z(V(t)),pe=(t,e)=>F({...V(t),value:e});function ye(t,e){const n=U(e);return e._embedded[`${n}:${e._modelTitle}/${t}/asset`]}async function ke({env:t,dmShortID:e,assetGroup:n,assetID:r,token:a}){d({env:t,dmShortID:e,assetGroup:n,assetID:r});const i=h({assetID:r}),o=f(`a/${e}/${n}?${i}`,t),{_embedded:s}=await u(o,{token:a});return s?s["ec:dm-asset"]:void 0}async function we(t){let{env:e,dmShortID:n,assetGroup:r,token:a,options:i={}}=t;d({env:e,dmShortID:n,assetGroup:r}),i={size:50,page:1,_list:!0,...i};const o=h(i),s=f(`a/${n}/${r}?${o}`,e),{count:c,total:g,_embedded:m}=await u(s,{token:a});let k=m?m["ec:dm-asset"]:[];return k=Array.isArray(k)?k:[k],{count:c,total:g,items:k}}async function De({env:t,dmShortID:e,assetGroup:n,token:r,file:a,name:i,options:o}){d({env:t,dmShortID:e,assetGroup:n,file:a});const s=f(`a/${e}/${n}`,t),c=new FormData;return c.append("file",a,i),o&&Object.keys(o).forEach(m=>{c.append(m,o[m])}),(await u(s,{token:r},{method:"POST",body:c}))._embedded["ec:dm-asset"]}async function Te({env:t,dmShortID:e,assetGroup:n,files:r,options:a}){d({env:t,dmShortID:e,assetGroup:n,files:r});const i=f(`a/${e}/${n}`,t),o=new FormData;r.forEach(c=>{o.append("file",c)}),a&&Object.keys(a).forEach(c=>{o.append(c,a[c])});const s=await u(i,{},{method:"POST",body:o});return Array.isArray(s._embedded["ec:dm-asset"])?s._embedded["ec:dm-asset"]:[s._embedded["ec:dm-asset"]]}async function be({env:t,dmShortID:e,assetGroup:n,assetID:r,token:a}){d({env:t,dmShortID:e,assetGroup:n,assetID:r});const i=f(`a/${e}/${n}/${r}`,t);await u(i,{token:a,rawRes:!0},{method:"DELETE"})}function $e(t,e,n=!1){let r,a;return(n?t?.thumbnails:t?.fileVariants)?.forEach(o=>{const{resolution:{width:s,height:c}}=o,g=Math.abs(Math.max(s,c)-e);(!a||g<a)&&(a=g,r=o)}),r?.url??t?.file?.url??null}function Ae(t="stage",e,n,r,a=!1){const i=Math.max(r.file.resolution.width,r.file.resolution.height),o=n.filter(c=>c<i),s=`https://datamanager${t==="stage"?".cachena":""}.entrecode.de`;return a?o.map(c=>{const g=r.thumbnails.find(w=>c===w.dimension),m=`${s}/t/${e}/${r.assetID}/${c}`,k=g?g.url:m;return{size:c,url:k,generated:g}}):o.map(c=>{const g=r.fileVariants.find(w=>c===Math.max(w.resolution.width,w.resolution.height)),m=`${s}/f/${e}/${r.assetID}/${c}`,k=g?g.url:m;return{size:c,url:k,generated:g}})}const p={"Content-Type":"application/json"};async function Ee(t){let{env:e,dmID:n,token:r}=t;d({env:e,dmID:n});const a=f(`?dataManagerID=${n}`,e);return u(a,{token:r})}async function ve(t){let{env:e,options:n={}}=t;d({env:e}),n={size:25,page:1,_list:!0,...n};const r=h(n),a=f(`?${r}`,e),{count:i,total:o,_embedded:s}=await u(a,t);let c=s?s["ec:datamanager"]:[];return c=Array.isArray(c)?c:[c],{count:i,total:o,items:c}}async function Ie(t){let{env:e,dmID:n,options:r={}}=t;d({env:e,dmID:n}),r={size:25,dataManagerID:n,page:1,_list:!0,...r};const a=h(r),i=f(`model?${a}`,e),{count:o,total:s,_embedded:c}=await u(i,t);let g=c?c["ec:model"]:[];return g=Array.isArray(g)?g:[g],{count:o,total:s,items:g}}async function Se(t){let{env:e,resource:n,options:r={},subdomain:a="datamanager"}=t;d({env:e,subdomain:a,resource:n}),r={size:25,page:1,_list:!0,...r};const i=h(r),o=f(`${n}?${i}`,e,a),{count:s,total:c,_embedded:g}=await u(o,t);let m=g?g[Object.keys(g)[0]]:[];return m=Array.isArray(m)?m:[m],{count:s,total:c,items:m}}async function qe(t){let{env:e,resource:n,options:r={},subdomain:a="datamanager"}=t;d({env:e,subdomain:a,resource:n});const i=h(r),o=f(`${n}?${i}`,e,a);return u(o,t)}async function Oe(t){let{env:e,resource:n,options:r={},subdomain:a="datamanager",value:i}=t;d({env:e,subdomain:a,resource:n,value:i});const o=h(r),s=f(`${n}?${o}`,e,a);return u(s,t,{method:"PUT",body:JSON.stringify(i),headers:p})}async function Ue(t){let{env:e,resource:n,options:r={},subdomain:a="datamanager"}=t;d({env:e,subdomain:a,resource:n});const i=h(r),o=f(`${n}?${i}`,e,a);return u(o,{...t,rawRes:!0},{method:"DELETE",headers:p})}async function Me(t,e={}){let{env:n,route:r,options:a={},subdomain:i="datamanager"}=t;d({env:n,subdomain:i,route:r}),a={...a};const o=h(a),s=f(`${r}?${o}`,n,i);return u(s,t,e)}async function Ce(t){let{env:e,token:n,value:r}=t;d({env:e,value:r});const a=f("",e);return u(a,{token:n},{method:"POST",body:JSON.stringify(r),headers:p})}async function Le(t){let{env:e,token:n,dmID:r,value:a}=t;d({env:e,dmID:r,value:a});const i=h({dataManagerID:r}),o=f(`?${i}`,e);return u(o,{token:n},{method:"PUT",body:JSON.stringify(a),headers:p})}async function _e(t){let{env:e,token:n,dmID:r}=t;d({env:e,dmID:r});const a=h({dataManagerID:r}),i=f(`?${a}`,e);return u(i,{token:n,rawRes:!0},{method:"DELETE",headers:p})}async function Re(t){let{env:e,token:n,dmID:r,value:a}=t;d({env:e,dmID:r,value:a});const i=h({dataManagerID:r}),o=f(`model?${i}`,e);return u(o,{token:n},{method:"POST",body:JSON.stringify(a),headers:p})}async function Ge(t){let{env:e,token:n,dmID:r,modelID:a,value:i}=t;d({env:e,dmID:r,modelID:a,value:i});const o=h({dataManagerID:r,modelID:a}),s=f(`model?${o}`,e);return u(s,{token:n},{method:"PUT",body:JSON.stringify(i),headers:p})}async function Pe(t){let{env:e,token:n,dmID:r,modelID:a}=t;d({env:e,dmID:r,modelID:a});const i=h({dataManagerID:r,modelID:a}),o=f(`model?${i}`,e);return u(o,{token:n,rawRes:!0},{method:"DELETE",headers:p})}async function Be(t){let{env:e,token:n,value:r}=t;d({env:e,value:r});const a=f("template",e);return u(a,{token:n},{method:"POST",body:JSON.stringify(r),headers:p})}async function je(t){let{env:e,token:n,dmID:r,value:a}=t;d({env:e,dmID:r,value:a});const i=h({dataManagerID:r}),o=f(`assetgroup?${i}`,e);return u(o,{token:n},{method:"POST",body:JSON.stringify(a),headers:p})}async function Ne(t){let{env:e,token:n,dmID:r,assetGroupID:a,value:i}=t;d({env:e,dmID:r,assetGroupID:a,value:i});const o=h({dataManagerID:r,assetGroupID:a}),s=f(`assetgroup?${o}`,e);return u(s,{token:n},{method:"PUT",body:JSON.stringify(i),headers:p})}async function Je(t){let{env:e,token:n,dmShortID:r,assetGroup:a,assetID:i,value:o}=t;d({env:e,dmShortID:r,assetGroup:a,assetID:i,value:o});const s=f(`a/${r}/${a}/${i}`,e);return u(s,{token:n},{method:"PUT",body:JSON.stringify(o),headers:p})}async function xe(t){let{env:e,token:n,dmID:r,clientID:a,value:i}=t;d({env:e,dmID:r,clientID:a,value:i});const o=h({dataManagerID:r,clientID:a}),s=f(`client?${o}`,e);return u(s,{token:n},{method:"PUT",body:JSON.stringify(i),headers:p})}async function Fe(t){let{env:e,token:n,dmID:r,value:a}=t;d({env:e,dmID:r,value:a});const i=h({dataManagerID:r}),o=f(`role?${i}`,e);return u(o,{token:n},{method:"POST",body:JSON.stringify(a),headers:p})}async function ze(t){let{env:e,token:n,dmID:r,roleID:a,value:i}=t;d({env:e,dmID:r,roleID:a,value:i});const o=h({dataManagerID:r,roleID:a}),s=f(`role?${o}`,e);return u(s,{token:n},{method:"PUT",body:JSON.stringify(i),headers:p})}async function He(t){let{env:e,token:n,dmID:r,roleID:a}=t;d({env:e,dmID:r,roleID:a});const i=h({dataManagerID:r,roleID:a}),o=f(`role?${i}`,e);return u(o,{token:n,rawRes:!0},{method:"DELETE",headers:p})}async function Ke(t){let{env:e,token:n,dmID:r,accountID:a,value:i}=t;d({env:e,dmID:r,accountID:a,value:i});const o=h({dataManagerID:r,accountID:a}),s=f(`account?${o}`,e);return u(s,{token:n},{method:"PUT",body:JSON.stringify(i),headers:p})}async function Ve(t){let{env:e,token:n,dmID:r,accountID:a}=t;d({env:e,dmID:r,accountID:a});const i=h({dataManagerID:r,accountID:a}),o=f(`account?${i}`,e);return u(o,{token:n,rawRes:!0},{method:"DELETE",headers:p})}async function We(t){let{env:e,token:n,options:r={}}=t;d({env:e});const a=h(r),i=f(`stats?${a}`,e);return u(i,{token:n})}async function Xe(t){let{env:e,token:n,options:r={}}=t;d({env:e});const a=h(r),i=f(`entries?${a}`,e,"dm-history");return u(i,{token:n})}async function Ye(t){let{env:e,token:n,value:r}=t;d({env:e,value:r});const a=f("client",e,"accounts");return u(a,{token:n},{method:"POST",body:JSON.stringify(r),headers:p})}async function Qe(t){let{env:e,token:n,clientID:r,value:a}=t;d({env:e,clientID:r,value:a});const i=h({clientID:r}),o=f(`client?${i}`,e,"accounts");return u(o,{token:n},{method:"PUT",body:JSON.stringify(a),headers:p})}async function Ze(t){let{env:e,token:n,clientID:r}=t;d({env:e,clientID:r});const a=h({clientID:r}),i=f(`client?${a}`,e,"accounts");return u(i,{token:n,rawRes:!0},{method:"DELETE",headers:p})}async function et(t){let{env:e,token:n,value:r}=t;d({env:e,value:r});const a=f("group",e,"accounts");return u(a,{token:n},{method:"POST",body:JSON.stringify(r),headers:p})}async function tt(t){let{env:e,token:n,groupID:r,value:a}=t;d({env:e,groupID:r,value:a});const i=h({groupID:r}),o=f(`group?${i}`,e,"accounts");return u(o,{token:n},{method:"PUT",body:JSON.stringify(a),headers:p})}async function nt(t){let{env:e,token:n,groupID:r}=t;d({env:e,groupID:r});const a=h({groupID:r}),i=f(`group?${a}`,e,"accounts");return u(i,{token:n,rawRes:!0},{method:"DELETE",headers:p})}async function rt(t){let{env:e,token:n,value:r}=t;d({env:e,value:r});const a=f("invite",e,"accounts"),i=await u(a,{token:n},{method:"POST",body:JSON.stringify(r),headers:p});return i?._embedded?.["ec:invite"]??i}async function at(t){let{env:e,token:n,inviteID:r,value:a}=t;d({env:e,inviteID:r,value:a});const i=h({invite:r}),o=f(`invite?${i}`,e,"accounts");return u(o,{token:n},{method:"PUT",body:JSON.stringify(a),headers:p})}async function it(t){let{env:e,token:n,inviteID:r}=t;d({env:e,inviteID:r});const a=h({invite:r}),i=f(`invite?${a}`,e,"accounts");return u(i,{token:n,rawRes:!0},{method:"DELETE",headers:p})}async function st(t){let{env:e,token:n,accountID:r,value:a}=t;d({env:e,accountID:r,value:a});const i=h({accountID:r}),o=f(`account?${i}`,e,"accounts");return u(o,{token:n},{method:"PUT",body:JSON.stringify(a),headers:p})}async function ot(t){let{env:e,token:n,accountID:r}=t;d({env:e,accountID:r});const a=h({accountID:r}),i=f(`account/tokens?${a}`,e,"accounts");let s=(await u(i,{token:n}))?._embedded?.["ec:account/token"]??[];return Array.isArray(s)?s:[s]}async function ct(t){let{env:e,token:n,accountID:r}=t;d({env:e,accountID:r});const a=h({accountID:r}),i=f(`account/tokens?${a}`,e,"accounts");return u(i,{token:n},{method:"POST",headers:p})}async function dt(t){let{env:e,token:n,accountID:r,accessTokenID:a}=t;d({env:e,accountID:r,accessTokenID:a});const i=h({accessTokenID:a,accountID:r}),o=f(`account/tokens?${i}`,e,"accounts");return u(o,{token:n,rawRes:!0},{method:"DELETE",headers:p})}const ut=Object.freeze(Object.defineProperty({__proto__:null,assetList:we,createAccountClient:Ye,createAsset:De,createAssetGroup:je,createAssets:Te,createDatamanager:Ce,createEntry:le,createGroup:et,createInvite:rt,createModel:Re,createRole:Fe,createTemplate:Be,createToken:ct,deleteAccountClient:Ze,deleteAsset:be,deleteDatamanager:_e,deleteDmAccount:Ve,deleteEntry:z,deleteEntryObject:he,deleteGroup:nt,deleteInvite:it,deleteModel:Pe,deleteRole:He,deleteToken:dt,dmList:ve,editAccount:st,editAccountClient:Qe,editAsset:Je,editAssetGroup:Ne,editDatamanager:Le,editDmAccount:Ke,editDmClient:xe,editEntry:F,editEntryObject:pe,editGroup:tt,editInvite:at,editModel:Ge,editRole:ze,entryList:x,fileVariant:$e,filterOptions:me,getAsset:ke,getDatamanager:Ee,getEcAuthKey:se,getEntry:ue,getEntryAsset:ye,getEntryEnv:K,getEntryShortID:U,getFileVariants:Ae,getHistory:Xe,getPublicAuthKey:ie,getSchema:ge,getStats:We,listTokens:ot,loginEc:ne,loginPublic:te,logoutEc:ae,logoutPublic:re,mapEntries:fe,modelList:Ie,publicApi:de,raw:Me,resourceDelete:Ue,resourceEdit:Oe,resourceGet:qe,resourceList:Se,sdkOptions:H},Symbol.toStringTag,{value:"Module"})),{entryList:C,mapEntries:lt,getEntry:ft,getAsset:gt,assetList:L,createAsset:mt,createAssets:ht,deleteAsset:pt,createEntry:yt,editEntry:_,deleteEntry:kt,getSchema:wt,loginPublic:Dt,loginEc:Tt,logoutEc:bt,logoutPublic:$t,getEcAuthKey:b,getPublicAuthKey:$,dmList:At,modelList:Et,publicApi:vt,getDatamanager:It,resourceList:St,resourceGet:qt,resourceEdit:Ot,resourceDelete:Ut,raw:Mt,createDatamanager:Ct,editDatamanager:Lt,deleteDatamanager:_t,createModel:Rt,editModel:Gt,deleteModel:Pt,createTemplate:Bt,createAssetGroup:jt,editAssetGroup:Nt,editAsset:Jt,editDmClient:xt,createRole:Ft,editRole:zt,deleteRole:Ht,editDmAccount:Kt,deleteDmAccount:Vt,getStats:Wt,getHistory:Xt,createAccountClient:Yt,editAccountClient:Qt,deleteAccountClient:Zt,createGroup:en,editGroup:tn,deleteGroup:nn,createInvite:rn,editInvite:an,deleteInvite:sn,editAccount:on,listTokens:cn,createToken:dn,deleteToken:un}=ut;function R(t){if(!t||typeof t!="object")return t;const{_links:e,_embedded:n,...r}=t;return r}function ln(t){return!t||typeof t!="object"?t:Array.isArray(t.items)?{...t,items:t.items.map(R)}:R(t)}class M{constructor(e={}){if(!e.storageAdapter){let n=new Map;e.storageAdapter={get:r=>n.get(r),set:(r,a)=>n.set(r,a),remove:r=>n.delete(r)}}this.config=e}set(e){return new M({...this.config,...e})}async entries(e={}){const n=await this.getBestToken();return C({...this.config,options:e,token:n})}async entryList(e){const n=await this.getBestToken();return C({...this.config,options:e,token:n}).then(r=>this.maybeClean(r))}async mapEntries(e,n={}){const r=await this.getBestToken();return lt({...this.config,options:n,token:r},e)}async getEntry(e){const n=await this.getBestToken();return ft({...this.config,entryID:e,token:n}).then(r=>this.maybeClean(r))}async editEntrySafe(e,n){const r=await this.getBestToken();return _({...this.config,entryID:e,token:r,value:n,safePut:!0}).then(a=>this.maybeClean(a))}async getSchema(){return wt(this.config)}async assets(e){const n=await this.getBestToken();return L({...this.config,options:e,token:n})}async assetList(e){const n=await this.getBestToken();return L({...this.config,options:e,token:n})}async createAsset(e){const{file:n,name:r,options:a}=e,i=await this.getBestToken();return mt({...this.config,file:n,name:r,options:a,token:i})}async createAssets(e){const{files:n,options:r}=e,a=await this.getBestToken();return ht({...this.config,files:n,options:r,token:a})}async deleteAsset(e){const n=await this.getBestToken();return pt({...this.config,token:n,assetID:e})}async getAsset(e){const n=await this.getBestToken();return gt({...this.config,assetID:e,token:n})}async createEntry(e){const n=await this.getBestToken();return yt({...this.config,token:n,value:e}).then(r=>this.maybeClean(r))}async editEntry(e,n){const r=await this.getBestToken();return _({...this.config,entryID:e,token:r,value:n}).then(a=>this.maybeClean(a))}async deleteEntry(e){const n=await this.getBestToken();return kt({...this.config,token:n,entryID:e})}async resourceList(e){const n=await this.getBestToken();return St({...this.config,options:e,token:n})}async resourceGet(e){const n=await this.getBestToken();return qt({...this.config,options:e,token:n})}async resourceEdit(e,n){const r=await this.getBestToken();return Ot({...this.config,options:e,token:r,value:n})}async resourceDelete(e){const n=await this.getBestToken();return Ut({...this.config,options:e,token:n})}async raw(e,n){const r=await this.getBestToken();return Mt({...this.config,options:e,token:r},n)}async createDatamanager(e){const n=await this.getBestToken();return Ct({...this.config,token:n,value:e})}async editDatamanager(e,n){const r=await this.getBestToken();return Lt({...this.config,token:r,dmID:e,value:n})}async deleteDatamanager(e){const n=await this.getBestToken();return _t({...this.config,token:n,dmID:e})}async createModel(e){const n=await this.getBestToken();return Rt({...this.config,token:n,value:e})}async editModel(e,n){const r=await this.getBestToken();return Gt({...this.config,token:r,modelID:e,value:n})}async deleteModel(e){const n=await this.getBestToken();return Pt({...this.config,token:n,modelID:e})}async createTemplate(e){const n=await this.getBestToken();return Bt({...this.config,token:n,value:e})}async createAssetGroup(e){const n=await this.getBestToken();return jt({...this.config,token:n,value:e})}async editAssetGroup(e,n){const r=await this.getBestToken();return Nt({...this.config,token:r,assetGroupID:e,value:n})}async editAsset(e,n){const r=await this.getBestToken();return Jt({...this.config,token:r,assetID:e,value:n})}async editDmClient(e,n){const r=await this.getBestToken();return xt({...this.config,token:r,clientID:e,value:n})}async createRole(e){const n=await this.getBestToken();return Ft({...this.config,token:n,value:e})}async editRole(e,n){const r=await this.getBestToken();return zt({...this.config,token:r,roleID:e,value:n})}async deleteRole(e){const n=await this.getBestToken();return Ht({...this.config,token:n,roleID:e})}async editDmAccount(e,n){const r=await this.getBestToken();return Kt({...this.config,token:r,accountID:e,value:n})}async deleteDmAccount(e){const n=await this.getBestToken();return Vt({...this.config,token:n,accountID:e})}async getStats(e={}){const n=await this.getBestToken();return Wt({...this.config,token:n,options:e})}async getHistory(e={}){const n=await this.getBestToken();return Xt({...this.config,token:n,options:e})}async createAccountClient(e){const n=await this.getBestToken();return Yt({...this.config,token:n,value:e})}async editAccountClient(e,n){const r=await this.getBestToken();return Qt({...this.config,token:r,clientID:e,value:n})}async deleteAccountClient(e){const n=await this.getBestToken();return Zt({...this.config,token:n,clientID:e})}async createGroup(e){const n=await this.getBestToken();return en({...this.config,token:n,value:e})}async editGroup(e,n){const r=await this.getBestToken();return tn({...this.config,token:r,groupID:e,value:n})}async deleteGroup(e){const n=await this.getBestToken();return nn({...this.config,token:n,groupID:e})}async createInvite(e){const n=await this.getBestToken();return rn({...this.config,token:n,value:e})}async editInvite(e,n){const r=await this.getBestToken();return an({...this.config,token:r,inviteID:e,value:n})}async deleteInvite(e){const n=await this.getBestToken();return sn({...this.config,token:n,inviteID:e})}async editAccount(e,n){const r=await this.getBestToken();return on({...this.config,token:r,accountID:e,value:n})}async listTokens(e){const n=await this.getBestToken();return cn({...this.config,token:n,accountID:e})}async createToken(e){const n=await this.getBestToken();return dn({...this.config,token:n,accountID:e})}async deleteToken(e,n){const r=await this.getBestToken();return un({...this.config,token:r,accountID:e,accessTokenID:n})}storageAdapter(e){return this.set({storageAdapter:e})}removeToken(e){if(!this.config.storageAdapter)throw new Error("cannot removeToken: no storageAdapter defined!");const{remove:n}=this.config.storageAdapter;n(e)}getToken(e){if(!this.config.storageAdapter)throw new Error("cannot getAuth: no storageAdapter defined!");const{get:n}=this.config.storageAdapter;return n(e)}getPublicToken(){return this.config.token||this.getToken($(this.config))}getEcToken(){return this.config.token||this.getToken(b(this.config))}setToken(e,n){if(!this.config.storageAdapter)throw new Error("cannot setEcToken: no storageAdapter defined!");return this.config.storageAdapter.set(e,n)}setEcToken(e){this.setToken(b(this.config),e)}setPublicToken(e){this.setToken($(this.config),e)}loginEc(e){return Tt({...this.config,...e}).then(n=>this.setToken(b(this.config),n.token))}loginPublic(e){return Dt({...this.config,...e}).then(n=>this.setToken($(this.config),n.token))}logoutPublic(){const e=this.getPublicToken();return $t({...this.config,token:e}).then(()=>this.removeToken($(this.config)))}logoutEc(){const e=this.getEcToken();return bt({...this.config,token:e}).then(()=>this.removeToken(b(this.config)))}hasPublicToken(){return!!this.getPublicToken()}hasEcToken(){return!!this.getEcToken()}hasAnyToken(){return!!this.getEcToken()||!!this.getPublicToken()}getBestToken(){try{return this.getEcToken()||this.getPublicToken()}catch{return}}clean(e=!0){return this.set({_clean:e})}maybeClean(e){return this.config._clean?ln(e):e}model(e){return this.set({model:e})}token(e){return this.set({token:e})}dmShortID(e){return this.set({dmShortID:e})}dm(e){return this.dmShortID(e)}dmID(e){return this.set({dmID:e})}assetGroup(e){return this.set({assetGroup:e})}assetgroup(e){return this.assetGroup(e)}subdomain(e){return this.set({subdomain:e})}resource(e){return this.set({resource:e})}route(e){return this.set({route:e})}publicApi(){return vt(this.config)}async getDatamanager(e){const n=await this.getBestToken();return It({...this.config,dmID:e,token:n})}async dmList(e={}){const n=await this.getBestToken();return At({...this.config,options:e,token:n})}async modelList(e={}){const n=await this.getBestToken();return Et({...this.config,options:e,token:n})}}const q=j.join(Z.homedir(),".ec-fdk"),O=j.join(q,"auth.json");function S(){try{return D.existsSync(O)?JSON.parse(D.readFileSync(O,"utf-8")):{}}catch{return{}}}function G(t){D.existsSync(q)||D.mkdirSync(q,{recursive:!0,mode:448}),D.writeFileSync(O,JSON.stringify(t,null,2),{mode:384})}const fn={get(t){return S()[t]},set(t,e){const n=S();n[t]=e,G(n)},remove(t){const e=S();delete e[t],G(e)}};function gn(t){const e=ee.createInterface({input:process.stdin,output:process.stderr});return new Promise(n=>{e.question(t,r=>{e.close(),n(r)})})}function mn(t){return new Promise(e=>{process.stderr.write(t);const n=process.stdin;n.setRawMode(!0),n.resume(),n.setEncoding("utf-8");let r="";const a=i=>{for(const o of i){if(o===""&&(process.stderr.write(`
5
- `),process.exit(130)),o==="\r"||o===`
2
+ "use strict";const de=require("node:util"),ue=require("node:module"),$=require("node:fs"),W=require("node:path"),le=require("node:os"),fe=require("node:readline"),L=require("node:crypto"),ge=require("node:http"),me=require("node:child_process");async function u(t,e={},n={}){const{token:r,rawRes:a}=e;r&&(n.headers={...n.headers||{},Authorization:`Bearer ${r}`});const o=await fetch(t,n);if(!o.ok){if(o.headers.get("content-type")?.includes("application/json")){const i=await o.json(),c=`${i.title}
3
+ ${i.detail}
4
+ ${i.verbose}`;throw new Error(c)}throw new Error(`unexpected fetch error: ${o.statusText}`)}if(a)return o;if(o.status===204)return;const s=await o.text();return s?JSON.parse(s):void 0}const q={datamanager:{live:"https://datamanager.entrecode.de/",stage:"https://datamanager.cachena.entrecode.de/"},accounts:{live:"https://accounts.entrecode.de/",stage:"https://accounts.cachena.entrecode.de/"},appserver:{live:"https://appserver.entrecode.de/",stage:"https://appserver.cachena.entrecode.de/"},"dm-history":{live:"https://dm-history.entrecode.de/",stage:"https://dm-history.cachena.entrecode.de/"}};function g(t,e="stage",n="datamanager"){const r=q[n];if(!r)throw new Error(`subdomain "${n}" not found. Try one of ${Object.keys(q).join(", ")}`);const a=r[e];if(!a)throw new Error(`env "${e}" not found. Try one of ${Object.keys(r[e]).join(", ")}`);return a+t}function h(t,e=!0){return Object.entries(t).sort((n,r)=>n[0].localeCompare(r[0])).map(([n,r])=>`${n}=${r}`).join("&")}function d(t){Object.entries(t).forEach(([e,n])=>{if(n===void 0)throw new Error(`expected ${e} to be set!`)})}const X={stage:"https://accounts.cachena.entrecode.de/",live:"https://accounts.entrecode.de/"};async function he(t){let{env:e,dmShortID:n,email:r,password:a}=t;d({env:e,dmShortID:n,email:r,password:a});const o=g(`api/${n}/_auth/login?clientID=rest`,e);return await u(o,{},{method:"POST",body:JSON.stringify({email:r,password:a}),headers:{"Content-Type":"application/json"}})}async function pe(t){let{env:e,email:n,password:r}=t;d({env:e,email:n,password:r});const a=`${X[e]}auth/login?clientID=rest`;return await u(a,{},{method:"POST",body:JSON.stringify({email:n,password:r}),headers:{"Content-Type":"application/json"}})}async function ye(t){let{dmShortID:e,env:n,token:r}=t;d({dmShortID:e,env:n,token:r});const a=g(`api/${e}/_auth/logout?clientID=rest&token=${r}`,n);return await u(a,{rawRes:!0},{method:"POST"})}async function we(t){let{env:e,token:n}=t;d({env:e,token:n});const r=`${X[e]}auth/logout?clientID=rest`;return await u(r,{rawRes:!0,token:n},{method:"POST"})}function ke({dmShortID:t}){return d({dmShortID:t}),t}function De({env:t}){return d({env:t}),t}let Te=["created","creator","id","modified","private","_created","_creator","_embedded","_entryTitle","_id","_links","_modelTitle","_modelTitleField","_modified"];function Q(t){let e={};for(let n in t)Te.includes(n)||(e[n]=t[n]);return e}function be(t){return JSON.parse(JSON.stringify(t))}async function $e(t){let{env:e,dmShortID:n}=t;d({env:e,dmShortID:n});const r=g(`api/${n}`,e);return u(r,t)}async function Z(t){let{env:e,dmShortID:n,model:r,options:a={}}=t;d({env:e,dmShortID:n,model:r}),a={size:50,page:1,_list:!0,...a};const o=h(a),s=g(`api/${n}/${r}?${o}`,e),{count:i,total:c,_embedded:l}=await u(s,t);let m=l?l[`${n}:${r}`]:[];return m=Array.isArray(m)?m:[m],{count:i,total:c,items:m}}function Ee({env:t,dmShortID:e,model:n,entryID:r,token:a}){d({env:t,dmShortID:e,model:n,entryID:r});const o=h({_id:r}),s=g(`api/${e}/${n}?${o}`,t);return u(s,{token:a})}async function ve({env:t,dmShortID:e,model:n,value:r,token:a}){d({env:t,dmShortID:e,model:n,value:r});const o=g(`api/${e}/${n}`,t);return await u(o,{token:a},{method:"POST",body:JSON.stringify(r),headers:{"Content-Type":"application/json"}})}async function ee({env:t,dmShortID:e,model:n,entryID:r,value:a,token:o,safePut:s=!1}){d({env:t,dmShortID:e,model:n,entryID:r,value:a});const i={"Content-Type":"application/json"};if(s){if(!("_modified"in a))throw new Error("expected _modified to be set!");i["If-Unmodified-Since"]=new Date(a._modified).toUTCString()}const c=g(`api/${e}/${n}?_id=${r}`,t);return a=be(a),a=Q(a),await u(c,{token:o},{method:"PUT",headers:i,body:JSON.stringify(a)})}function te({env:t,dmShortID:e,model:n,entryID:r,token:a}){d({env:t,dmShortID:e,model:n,entryID:r});const o=g(`api/${e}/${n}?_id=${r}`,t);return u(o,{token:a,rawRes:!0},{method:"DELETE",headers:{"Content-Type":"application/json"}})}async function Ae(t,e){let{env:n,dmShortID:r,model:a,options:o={}}=t;d({env:n,dmShortID:r,model:a}),t.options={size:50,page:1,_list:!0,...o};let s=0,i,c=[];for(;i===void 0||s<i;){const l=await Z(t);for(let m of l.items)c.push(await e(m));s+=l.items.length,i=l.total,t.options.page++}return c}async function Ie({env:t,dmShortID:e,model:n,withMetadata:r}){d({env:t,dmShortID:e,model:n});const a=g(`api/schema/${e}/${n}`,t),o=await u(a),s=o?.allOf?.[1];if(typeof s.properties!="object")throw new Error(`getSchema: ${a} returned unexpected format: ${JSON.stringify(o)}`);const{properties:i}=s,c=Q(i);for(let l in c){let m=c[l];if(m.required=s.required.includes(l),c[l]?.oneOf&&delete c[l]?.oneOf,m.title?.includes("<")&&m.title?.includes(">")){const w=m.title.split("<")[1].slice(0,-1),k=m.title.split("<")[0];m.type=k,w.includes(":")?m.resource=w.split(":")[1]:m.resource=w}else["asset","entry","assets","entries"].includes(m.title)?(m.type=m.title,m.resource=null):m.type=m.title;delete c[l].title}if(r){const l=i._modelTitle.title,m=i._modelTitleField.title;return{properties:c,meta:{modelTitleField:m,modelTitle:l}}}return c}function ne(t){return Object.entries(t).map(([e,n])=>typeof n!="object"?{[e]:String(n)}:{...n.sort&&{sort:Array.isArray(n)?n.join(","):n},...n.search&&{[e+"~"]:n.search},...n.notNull&&{[e+"!"]:""},...n.null&&{[e]:""},...n.any&&{[e]:n.any.join(",")},...n.from&&{[e+"From"]:n.from},...n.to&&{[e+"To"]:n.to}}).reduce((e,n)=>({...e,...n}),{})}const Se=ne;function R(t){return t._links.collection.href.split("/").slice(-2)[0]}function re(t){const e=t._links.collection.href.split("api/")[0];return Object.keys(q.datamanager).find(r=>q.datamanager[r]===e)}const ae=t=>{const e=R(t),n=re(t),r=t._modelTitle,a=t.id;return{dmShortID:e,env:n,model:r,entryID:a}},qe=t=>te(ae(t)),Oe=(t,e)=>ee({...ae(t),value:e});function _e(t,e){const n=R(e);return e._embedded[`${n}:${e._modelTitle}/${t}/asset`]}async function Ce({env:t,dmShortID:e,assetGroup:n,assetID:r,token:a}){d({env:t,dmShortID:e,assetGroup:n,assetID:r});const o=h({assetID:r}),s=g(`a/${e}/${n}?${o}`,t),{_embedded:i}=await u(s,{token:a});return i?i["ec:dm-asset"]:void 0}async function Ue(t){let{env:e,dmShortID:n,assetGroup:r,token:a,options:o={}}=t;d({env:e,dmShortID:n,assetGroup:r}),o={size:50,page:1,_list:!0,...o};const s=h(o),i=g(`a/${n}/${r}?${s}`,e),{count:c,total:l,_embedded:m}=await u(i,{token:a});let w=m?m["ec:dm-asset"]:[];return w=Array.isArray(w)?w:[w],{count:c,total:l,items:w}}async function Me({env:t,dmShortID:e,assetGroup:n,token:r,file:a,name:o,options:s}){d({env:t,dmShortID:e,assetGroup:n,file:a});const i=g(`a/${e}/${n}`,t),c=new FormData;return c.append("file",a,o),s&&Object.keys(s).forEach(m=>{c.append(m,s[m])}),(await u(i,{token:r},{method:"POST",body:c}))._embedded["ec:dm-asset"]}async function Le({env:t,dmShortID:e,assetGroup:n,files:r,options:a}){d({env:t,dmShortID:e,assetGroup:n,files:r});const o=g(`a/${e}/${n}`,t),s=new FormData;r.forEach(c=>{s.append("file",c)}),a&&Object.keys(a).forEach(c=>{s.append(c,a[c])});const i=await u(o,{},{method:"POST",body:s});return Array.isArray(i._embedded["ec:dm-asset"])?i._embedded["ec:dm-asset"]:[i._embedded["ec:dm-asset"]]}async function Re({env:t,dmShortID:e,assetGroup:n,assetID:r,token:a}){d({env:t,dmShortID:e,assetGroup:n,assetID:r});const o=g(`a/${e}/${n}/${r}`,t);await u(o,{token:a,rawRes:!0},{method:"DELETE"})}function Pe(t,e,n=!1){let r,a;return(n?t?.thumbnails:t?.fileVariants)?.forEach(s=>{const{resolution:{width:i,height:c}}=s,l=Math.abs(Math.max(i,c)-e);(!a||l<a)&&(a=l,r=s)}),r?.url??t?.file?.url??null}function Ge(t="stage",e,n,r,a=!1){const o=Math.max(r.file.resolution.width,r.file.resolution.height),s=n.filter(c=>c<o),i=`https://datamanager${t==="stage"?".cachena":""}.entrecode.de`;return a?s.map(c=>{const l=r.thumbnails.find(k=>c===k.dimension),m=`${i}/t/${e}/${r.assetID}/${c}`,w=l?l.url:m;return{size:c,url:w,generated:l}}):s.map(c=>{const l=r.fileVariants.find(k=>c===Math.max(k.resolution.width,k.resolution.height)),m=`${i}/f/${e}/${r.assetID}/${c}`,w=l?l.url:m;return{size:c,url:w,generated:l}})}const p={"Content-Type":"application/json"};async function Be(t){let{env:e,dmID:n,token:r}=t;d({env:e,dmID:n});const a=g(`?dataManagerID=${n}`,e);return u(a,{token:r})}async function Ne(t){let{env:e,options:n={}}=t;d({env:e}),n={size:25,page:1,_list:!0,...n};const r=h(n),a=g(`?${r}`,e),{count:o,total:s,_embedded:i}=await u(a,t);let c=i?i["ec:datamanager"]:[];return c=Array.isArray(c)?c:[c],{count:o,total:s,items:c}}async function je(t){let{env:e,dmID:n,options:r={}}=t;d({env:e,dmID:n}),r={size:25,dataManagerID:n,page:1,_list:!0,...r};const a=h(r),o=g(`model?${a}`,e),{count:s,total:i,_embedded:c}=await u(o,t);let l=c?c["ec:model"]:[];return l=Array.isArray(l)?l:[l],{count:s,total:i,items:l}}async function xe(t){let{env:e,resource:n,options:r={},subdomain:a="datamanager"}=t;d({env:e,subdomain:a,resource:n}),r={size:25,page:1,_list:!0,...r};const o=h(r),s=g(`${n}?${o}`,e,a),{count:i,total:c,_embedded:l}=await u(s,t);let m=l?l[Object.keys(l)[0]]:[];return m=Array.isArray(m)?m:[m],{count:i,total:c,items:m}}async function Je(t){let{env:e,resource:n,options:r={},subdomain:a="datamanager"}=t;d({env:e,subdomain:a,resource:n});const o=h(r),s=g(`${n}?${o}`,e,a);return u(s,t)}async function Fe(t){let{env:e,resource:n,options:r={},subdomain:a="datamanager",value:o}=t;d({env:e,subdomain:a,resource:n,value:o});const s=h(r),i=g(`${n}?${s}`,e,a);return u(i,t,{method:"PUT",body:JSON.stringify(o),headers:p})}async function He(t){let{env:e,resource:n,options:r={},subdomain:a="datamanager"}=t;d({env:e,subdomain:a,resource:n});const o=h(r),s=g(`${n}?${o}`,e,a);return u(s,{...t,rawRes:!0},{method:"DELETE",headers:p})}async function ze(t,e={}){let{env:n,route:r,options:a={},subdomain:o="datamanager"}=t;d({env:n,subdomain:o,route:r}),a={...a};const s=h(a),i=g(`${r}?${s}`,n,o);return u(i,t,e)}async function Ke(t){let{env:e,token:n,value:r}=t;d({env:e,value:r});const a=g("",e);return u(a,{token:n},{method:"POST",body:JSON.stringify(r),headers:p})}async function Ve(t){let{env:e,token:n,dmID:r,value:a}=t;d({env:e,dmID:r,value:a});const o=h({dataManagerID:r}),s=g(`?${o}`,e);return u(s,{token:n},{method:"PUT",body:JSON.stringify(a),headers:p})}async function Ye(t){let{env:e,token:n,dmID:r}=t;d({env:e,dmID:r});const a=h({dataManagerID:r}),o=g(`?${a}`,e);return u(o,{token:n,rawRes:!0},{method:"DELETE",headers:p})}async function We(t){let{env:e,token:n,dmID:r,value:a}=t;d({env:e,dmID:r,value:a});const o=h({dataManagerID:r}),s=g(`model?${o}`,e);return u(s,{token:n},{method:"POST",body:JSON.stringify(a),headers:p})}async function Xe(t){let{env:e,token:n,dmID:r,modelID:a,value:o}=t;d({env:e,dmID:r,modelID:a,value:o});const s=h({dataManagerID:r,modelID:a}),i=g(`model?${s}`,e);return u(i,{token:n},{method:"PUT",body:JSON.stringify(o),headers:p})}async function Qe(t){let{env:e,token:n,dmID:r,modelID:a}=t;d({env:e,dmID:r,modelID:a});const o=h({dataManagerID:r,modelID:a}),s=g(`model?${o}`,e);return u(s,{token:n,rawRes:!0},{method:"DELETE",headers:p})}async function Ze(t){let{env:e,token:n,value:r}=t;d({env:e,value:r});const a=g("template",e);return u(a,{token:n},{method:"POST",body:JSON.stringify(r),headers:p})}async function et(t){let{env:e,token:n,dmID:r,value:a}=t;d({env:e,dmID:r,value:a});const o=h({dataManagerID:r}),s=g(`assetgroup?${o}`,e);return u(s,{token:n},{method:"POST",body:JSON.stringify(a),headers:p})}async function tt(t){let{env:e,token:n,dmID:r,assetGroupID:a,value:o}=t;d({env:e,dmID:r,assetGroupID:a,value:o});const s=h({dataManagerID:r,assetGroupID:a}),i=g(`assetgroup?${s}`,e);return u(i,{token:n},{method:"PUT",body:JSON.stringify(o),headers:p})}async function nt(t){let{env:e,token:n,dmShortID:r,assetGroup:a,assetID:o,value:s}=t;d({env:e,dmShortID:r,assetGroup:a,assetID:o,value:s});const i=g(`a/${r}/${a}/${o}`,e);return u(i,{token:n},{method:"PUT",body:JSON.stringify(s),headers:p})}async function rt(t){let{env:e,token:n,dmID:r,clientID:a,value:o}=t;d({env:e,dmID:r,clientID:a,value:o});const s=h({dataManagerID:r,clientID:a}),i=g(`client?${s}`,e);return u(i,{token:n},{method:"PUT",body:JSON.stringify(o),headers:p})}async function at(t){let{env:e,token:n,dmID:r,value:a}=t;d({env:e,dmID:r,value:a});const o=h({dataManagerID:r}),s=g(`role?${o}`,e);return u(s,{token:n},{method:"POST",body:JSON.stringify(a),headers:p})}async function ot(t){let{env:e,token:n,dmID:r,roleID:a,value:o}=t;d({env:e,dmID:r,roleID:a,value:o});const s=h({dataManagerID:r,roleID:a}),i=g(`role?${s}`,e);return u(i,{token:n},{method:"PUT",body:JSON.stringify(o),headers:p})}async function it(t){let{env:e,token:n,dmID:r,roleID:a}=t;d({env:e,dmID:r,roleID:a});const o=h({dataManagerID:r,roleID:a}),s=g(`role?${o}`,e);return u(s,{token:n,rawRes:!0},{method:"DELETE",headers:p})}async function st(t){let{env:e,token:n,dmID:r,accountID:a,value:o}=t;d({env:e,dmID:r,accountID:a,value:o});const s=h({dataManagerID:r,accountID:a}),i=g(`account?${s}`,e);return u(i,{token:n},{method:"PUT",body:JSON.stringify(o),headers:p})}async function ct(t){let{env:e,token:n,dmID:r,accountID:a}=t;d({env:e,dmID:r,accountID:a});const o=h({dataManagerID:r,accountID:a}),s=g(`account?${o}`,e);return u(s,{token:n,rawRes:!0},{method:"DELETE",headers:p})}async function dt(t){let{env:e,token:n,options:r={}}=t;d({env:e});const a=h(r),o=g(`stats?${a}`,e);return u(o,{token:n})}async function ut(t){let{env:e,token:n,options:r={}}=t;d({env:e});const a=h(r),o=g(`entries?${a}`,e,"dm-history");return u(o,{token:n})}async function lt(t){let{env:e,token:n,value:r}=t;d({env:e,value:r});const a=g("client",e,"accounts");return u(a,{token:n},{method:"POST",body:JSON.stringify(r),headers:p})}async function ft(t){let{env:e,token:n,clientID:r,value:a}=t;d({env:e,clientID:r,value:a});const o=h({clientID:r}),s=g(`client?${o}`,e,"accounts");return u(s,{token:n},{method:"PUT",body:JSON.stringify(a),headers:p})}async function gt(t){let{env:e,token:n,clientID:r}=t;d({env:e,clientID:r});const a=h({clientID:r}),o=g(`client?${a}`,e,"accounts");return u(o,{token:n,rawRes:!0},{method:"DELETE",headers:p})}async function mt(t){let{env:e,token:n,value:r}=t;d({env:e,value:r});const a=g("group",e,"accounts");return u(a,{token:n},{method:"POST",body:JSON.stringify(r),headers:p})}async function ht(t){let{env:e,token:n,groupID:r,value:a}=t;d({env:e,groupID:r,value:a});const o=h({groupID:r}),s=g(`group?${o}`,e,"accounts");return u(s,{token:n},{method:"PUT",body:JSON.stringify(a),headers:p})}async function pt(t){let{env:e,token:n,groupID:r}=t;d({env:e,groupID:r});const a=h({groupID:r}),o=g(`group?${a}`,e,"accounts");return u(o,{token:n,rawRes:!0},{method:"DELETE",headers:p})}async function yt(t){let{env:e,token:n,value:r}=t;d({env:e,value:r});const a=g("invite",e,"accounts"),o=await u(a,{token:n},{method:"POST",body:JSON.stringify(r),headers:p});return o?._embedded?.["ec:invite"]??o}async function wt(t){let{env:e,token:n,inviteID:r,value:a}=t;d({env:e,inviteID:r,value:a});const o=h({invite:r}),s=g(`invite?${o}`,e,"accounts");return u(s,{token:n},{method:"PUT",body:JSON.stringify(a),headers:p})}async function kt(t){let{env:e,token:n,inviteID:r}=t;d({env:e,inviteID:r});const a=h({invite:r}),o=g(`invite?${a}`,e,"accounts");return u(o,{token:n,rawRes:!0},{method:"DELETE",headers:p})}async function Dt(t){let{env:e,token:n,accountID:r,value:a}=t;d({env:e,accountID:r,value:a});const o=h({accountID:r}),s=g(`account?${o}`,e,"accounts");return u(s,{token:n},{method:"PUT",body:JSON.stringify(a),headers:p})}async function Tt(t){let{env:e,token:n,accountID:r}=t;d({env:e,accountID:r});const a=h({accountID:r}),o=g(`account/tokens?${a}`,e,"accounts");let i=(await u(o,{token:n}))?._embedded?.["ec:account/token"]??[];return Array.isArray(i)?i:[i]}async function bt(t){let{env:e,token:n,accountID:r}=t;d({env:e,accountID:r});const a=h({accountID:r}),o=g(`account/tokens?${a}`,e,"accounts");return u(o,{token:n},{method:"POST",headers:p})}async function $t(t){let{env:e,token:n,accountID:r,accessTokenID:a}=t;d({env:e,accountID:r,accessTokenID:a});const o=h({accessTokenID:a,accountID:r}),s=g(`account/tokens?${o}`,e,"accounts");return u(s,{token:n,rawRes:!0},{method:"DELETE",headers:p})}const Et=Object.freeze(Object.defineProperty({__proto__:null,assetList:Ue,createAccountClient:lt,createAsset:Me,createAssetGroup:et,createAssets:Le,createDatamanager:Ke,createEntry:ve,createGroup:mt,createInvite:yt,createModel:We,createRole:at,createTemplate:Ze,createToken:bt,deleteAccountClient:gt,deleteAsset:Re,deleteDatamanager:Ye,deleteDmAccount:ct,deleteEntry:te,deleteEntryObject:qe,deleteGroup:pt,deleteInvite:kt,deleteModel:Qe,deleteRole:it,deleteToken:$t,dmList:Ne,editAccount:Dt,editAccountClient:ft,editAsset:nt,editAssetGroup:tt,editDatamanager:Ve,editDmAccount:st,editDmClient:rt,editEntry:ee,editEntryObject:Oe,editGroup:ht,editInvite:wt,editModel:Xe,editRole:ot,entryList:Z,fileVariant:Pe,filterOptions:Se,getAsset:Ce,getDatamanager:Be,getEcAuthKey:De,getEntry:Ee,getEntryAsset:_e,getEntryEnv:re,getEntryShortID:R,getFileVariants:Ge,getHistory:ut,getPublicAuthKey:ke,getSchema:Ie,getStats:dt,listTokens:Tt,loginEc:pe,loginPublic:he,logoutEc:we,logoutPublic:ye,mapEntries:Ae,modelList:je,publicApi:$e,raw:ze,resourceDelete:He,resourceEdit:Fe,resourceGet:Je,resourceList:xe,sdkOptions:ne},Symbol.toStringTag,{value:"Module"})),{entryList:j,mapEntries:vt,getEntry:At,getAsset:It,assetList:x,createAsset:St,createAssets:qt,deleteAsset:Ot,createEntry:_t,editEntry:J,deleteEntry:Ct,getSchema:Ut,loginPublic:Mt,loginEc:Lt,logoutEc:Rt,logoutPublic:Pt,getEcAuthKey:b,getPublicAuthKey:v,dmList:Gt,modelList:Bt,publicApi:Nt,getDatamanager:jt,resourceList:xt,resourceGet:Jt,resourceEdit:Ft,resourceDelete:Ht,raw:zt,createDatamanager:Kt,editDatamanager:Vt,deleteDatamanager:Yt,createModel:Wt,editModel:Xt,deleteModel:Qt,createTemplate:Zt,createAssetGroup:en,editAssetGroup:tn,editAsset:nn,editDmClient:rn,createRole:an,editRole:on,deleteRole:sn,editDmAccount:cn,deleteDmAccount:dn,getStats:un,getHistory:ln,createAccountClient:fn,editAccountClient:gn,deleteAccountClient:mn,createGroup:hn,editGroup:pn,deleteGroup:yn,createInvite:wn,editInvite:kn,deleteInvite:Dn,editAccount:Tn,listTokens:bn,createToken:$n,deleteToken:En}=Et;function F(t){if(!t||typeof t!="object")return t;const{_links:e,_embedded:n,...r}=t;return r}function vn(t){return!t||typeof t!="object"?t:Array.isArray(t.items)?{...t,items:t.items.map(F)}:F(t)}class P{constructor(e={}){if(!e.storageAdapter){let n=new Map;e.storageAdapter={get:r=>n.get(r),set:(r,a)=>n.set(r,a),remove:r=>n.delete(r)}}this.config=e}set(e){return new P({...this.config,...e})}async entries(e={}){const n=await this.getBestToken();return j({...this.config,options:e,token:n})}async entryList(e){const n=await this.getBestToken();return j({...this.config,options:e,token:n}).then(r=>this.maybeClean(r))}async mapEntries(e,n={}){const r=await this.getBestToken();return vt({...this.config,options:n,token:r},e)}async getEntry(e){const n=await this.getBestToken();return At({...this.config,entryID:e,token:n}).then(r=>this.maybeClean(r))}async editEntrySafe(e,n){const r=await this.getBestToken();return J({...this.config,entryID:e,token:r,value:n,safePut:!0}).then(a=>this.maybeClean(a))}async getSchema(){return Ut(this.config)}async assets(e){const n=await this.getBestToken();return x({...this.config,options:e,token:n})}async assetList(e){const n=await this.getBestToken();return x({...this.config,options:e,token:n})}async createAsset(e){const{file:n,name:r,options:a}=e,o=await this.getBestToken();return St({...this.config,file:n,name:r,options:a,token:o})}async createAssets(e){const{files:n,options:r}=e,a=await this.getBestToken();return qt({...this.config,files:n,options:r,token:a})}async deleteAsset(e){const n=await this.getBestToken();return Ot({...this.config,token:n,assetID:e})}async getAsset(e){const n=await this.getBestToken();return It({...this.config,assetID:e,token:n})}async createEntry(e){const n=await this.getBestToken();return _t({...this.config,token:n,value:e}).then(r=>this.maybeClean(r))}async editEntry(e,n){const r=await this.getBestToken();return J({...this.config,entryID:e,token:r,value:n}).then(a=>this.maybeClean(a))}async deleteEntry(e){const n=await this.getBestToken();return Ct({...this.config,token:n,entryID:e})}async resourceList(e){const n=await this.getBestToken();return xt({...this.config,options:e,token:n})}async resourceGet(e){const n=await this.getBestToken();return Jt({...this.config,options:e,token:n})}async resourceEdit(e,n){const r=await this.getBestToken();return Ft({...this.config,options:e,token:r,value:n})}async resourceDelete(e){const n=await this.getBestToken();return Ht({...this.config,options:e,token:n})}async raw(e,n){const r=await this.getBestToken();return zt({...this.config,options:e,token:r},n)}async createDatamanager(e){const n=await this.getBestToken();return Kt({...this.config,token:n,value:e})}async editDatamanager(e,n){const r=await this.getBestToken();return Vt({...this.config,token:r,dmID:e,value:n})}async deleteDatamanager(e){const n=await this.getBestToken();return Yt({...this.config,token:n,dmID:e})}async createModel(e){const n=await this.getBestToken();return Wt({...this.config,token:n,value:e})}async editModel(e,n){const r=await this.getBestToken();return Xt({...this.config,token:r,modelID:e,value:n})}async deleteModel(e){const n=await this.getBestToken();return Qt({...this.config,token:n,modelID:e})}async createTemplate(e){const n=await this.getBestToken();return Zt({...this.config,token:n,value:e})}async createAssetGroup(e){const n=await this.getBestToken();return en({...this.config,token:n,value:e})}async editAssetGroup(e,n){const r=await this.getBestToken();return tn({...this.config,token:r,assetGroupID:e,value:n})}async editAsset(e,n){const r=await this.getBestToken();return nn({...this.config,token:r,assetID:e,value:n})}async editDmClient(e,n){const r=await this.getBestToken();return rn({...this.config,token:r,clientID:e,value:n})}async createRole(e){const n=await this.getBestToken();return an({...this.config,token:n,value:e})}async editRole(e,n){const r=await this.getBestToken();return on({...this.config,token:r,roleID:e,value:n})}async deleteRole(e){const n=await this.getBestToken();return sn({...this.config,token:n,roleID:e})}async editDmAccount(e,n){const r=await this.getBestToken();return cn({...this.config,token:r,accountID:e,value:n})}async deleteDmAccount(e){const n=await this.getBestToken();return dn({...this.config,token:n,accountID:e})}async getStats(e={}){const n=await this.getBestToken();return un({...this.config,token:n,options:e})}async getHistory(e={}){const n=await this.getBestToken();return ln({...this.config,token:n,options:e})}async createAccountClient(e){const n=await this.getBestToken();return fn({...this.config,token:n,value:e})}async editAccountClient(e,n){const r=await this.getBestToken();return gn({...this.config,token:r,clientID:e,value:n})}async deleteAccountClient(e){const n=await this.getBestToken();return mn({...this.config,token:n,clientID:e})}async createGroup(e){const n=await this.getBestToken();return hn({...this.config,token:n,value:e})}async editGroup(e,n){const r=await this.getBestToken();return pn({...this.config,token:r,groupID:e,value:n})}async deleteGroup(e){const n=await this.getBestToken();return yn({...this.config,token:n,groupID:e})}async createInvite(e){const n=await this.getBestToken();return wn({...this.config,token:n,value:e})}async editInvite(e,n){const r=await this.getBestToken();return kn({...this.config,token:r,inviteID:e,value:n})}async deleteInvite(e){const n=await this.getBestToken();return Dn({...this.config,token:n,inviteID:e})}async editAccount(e,n){const r=await this.getBestToken();return Tn({...this.config,token:r,accountID:e,value:n})}async listTokens(e){const n=await this.getBestToken();return bn({...this.config,token:n,accountID:e})}async createToken(e){const n=await this.getBestToken();return $n({...this.config,token:n,accountID:e})}async deleteToken(e,n){const r=await this.getBestToken();return En({...this.config,token:r,accountID:e,accessTokenID:n})}storageAdapter(e){return this.set({storageAdapter:e})}removeToken(e){if(!this.config.storageAdapter)throw new Error("cannot removeToken: no storageAdapter defined!");const{remove:n}=this.config.storageAdapter;n(e)}getToken(e){if(!this.config.storageAdapter)throw new Error("cannot getAuth: no storageAdapter defined!");const{get:n}=this.config.storageAdapter;return n(e)}getPublicToken(){return this.config.token||this.getToken(v(this.config))}getEcToken(){return this.config.token||this.getToken(b(this.config))}setToken(e,n){if(!this.config.storageAdapter)throw new Error("cannot setEcToken: no storageAdapter defined!");return this.config.storageAdapter.set(e,n)}setEcToken(e){this.setToken(b(this.config),e)}removeEcToken(){this.removeToken(b(this.config))}setPublicToken(e){this.setToken(v(this.config),e)}loginEc(e){return Lt({...this.config,...e}).then(n=>this.setToken(b(this.config),n.token))}loginPublic(e){return Mt({...this.config,...e}).then(n=>this.setToken(v(this.config),n.token))}logoutPublic(){const e=this.getPublicToken();return Pt({...this.config,token:e}).then(()=>this.removeToken(v(this.config)))}logoutEc(){const e=this.getEcToken();return Rt({...this.config,token:e}).then(()=>this.removeToken(b(this.config)))}hasPublicToken(){return!!this.getPublicToken()}hasEcToken(){return!!this.getEcToken()}hasAnyToken(){return!!this.getEcToken()||!!this.getPublicToken()}getBestToken(){try{return this.getEcToken()||this.getPublicToken()}catch{return}}clean(e=!0){return this.set({_clean:e})}maybeClean(e){return this.config._clean?vn(e):e}model(e){return this.set({model:e})}token(e){return this.set({token:e})}dmShortID(e){return this.set({dmShortID:e})}dm(e){return this.dmShortID(e)}dmID(e){return this.set({dmID:e})}assetGroup(e){return this.set({assetGroup:e})}assetgroup(e){return this.assetGroup(e)}subdomain(e){return this.set({subdomain:e})}resource(e){return this.set({resource:e})}route(e){return this.set({route:e})}publicApi(){return Nt(this.config)}async getDatamanager(e){const n=await this.getBestToken();return jt({...this.config,dmID:e,token:n})}async dmList(e={}){const n=await this.getBestToken();return Gt({...this.config,options:e,token:n})}async modelList(e={}){const n=await this.getBestToken();return Bt({...this.config,options:e,token:n})}}const U=W.join(le.homedir(),".ec-fdk"),M=W.join(U,"auth.json");function C(){try{return $.existsSync(M)?JSON.parse($.readFileSync(M,"utf-8")):{}}catch{return{}}}function H(t){$.existsSync(U)||$.mkdirSync(U,{recursive:!0,mode:448}),$.writeFileSync(M,JSON.stringify(t,null,2),{mode:384})}const An={get(t){return C()[t]},set(t,e){const n=C();n[t]=e,H(n)},remove(t){const e=C();delete e[t],H(e)}};function In(t){const e=fe.createInterface({input:process.stdin,output:process.stderr});return new Promise(n=>{e.question(t,r=>{e.close(),n(r)})})}function Sn(t){return new Promise(e=>{process.stderr.write(t);const n=process.stdin;n.setRawMode(!0),n.resume(),n.setEncoding("utf-8");let r="";const a=o=>{for(const s of o){if(s===""&&(process.stderr.write(`
5
+ `),process.exit(130)),s==="\r"||s===`
6
6
  `){n.setRawMode(!1),n.pause(),n.removeListener("data",a),process.stderr.write(`
7
- `),e(r);return}if(o===""||o==="\b"){r.length>0&&(r=r.slice(0,-1),process.stderr.write("\b \b"));continue}r+=o,process.stderr.write("*")}};n.on("data",a)})}const hn=Q.createRequire(typeof document>"u"?require("url").pathToFileURL(__filename).href:document.currentScript&&document.currentScript.src||new URL("cli.cjs",document.baseURI).href),{version:pn}=hn("../package.json"),yn=`ec.fdk <command> [options]
7
+ `),e(r);return}if(s===""||s==="\b"){r.length>0&&(r=r.slice(0,-1),process.stderr.write("\b \b"));continue}r+=s,process.stderr.write("*")}};n.on("data",a)})}const qn={stage:{authEndpoint:"https://login.cachena.entrecode.de/oidc/auth",tokenEndpoint:"https://login.cachena.entrecode.de/oidc/token"},live:{authEndpoint:"https://login.entrecode.de/oidc/auth",tokenEndpoint:"https://login.entrecode.de/oidc/token"}},z="ec-fdk-cli",K="http://localhost:19836/callback",On=12e4;function G(t){return t.toString("base64url")}function _n(){return G(L.randomBytes(32))}function Cn(t){return G(L.createHash("sha256").update(t).digest())}function Un(t){const e=process.platform==="darwin"?"open":process.platform==="win32"?"start":"xdg-open";me.exec(`${e} ${JSON.stringify(t)}`)}const Mn=`<!DOCTYPE html><html><body style="font-family:system-ui;display:flex;justify-content:center;align-items:center;height:100vh;margin:0">
8
+ <div style="text-align:center"><h1>Login successful</h1><p>You can close this tab.</p></div></body></html>`,A=t=>`<!DOCTYPE html><html><body style="font-family:system-ui;display:flex;justify-content:center;align-items:center;height:100vh;margin:0">
9
+ <div style="text-align:center"><h1>Login failed</h1><p>${t}</p></div></body></html>`;function Ln(t){const{authEndpoint:e,tokenEndpoint:n}=qn[t],r=_n(),a=Cn(r),o=G(L.randomBytes(16));return new Promise((s,i)=>{const c=ge.createServer(async(w,k)=>{if(!w.url?.startsWith("/callback")){k.writeHead(404),k.end();return}const T=new URL(w.url,"http://localhost").searchParams,B=T.get("code"),se=T.get("state"),_=T.get("error");if(_){k.writeHead(200,{"Content-Type":"text/html"}),k.end(A(T.get("error_description")||_)),m(),i(new Error(T.get("error_description")||_));return}if(se!==o){k.writeHead(200,{"Content-Type":"text/html"}),k.end(A("State mismatch")),m(),i(new Error("State mismatch — possible CSRF attack"));return}if(!B){k.writeHead(200,{"Content-Type":"text/html"}),k.end(A("No authorization code received")),m(),i(new Error("No authorization code received"));return}try{const D=await fetch(n,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"authorization_code",client_id:z,redirect_uri:K,code:B,code_verifier:r})});if(!D.ok){const ce=await D.text();throw new Error(`Token exchange failed: ${D.status} ${ce}`)}const N=(await D.json()).access_token;if(!N)throw new Error("No access_token in token response");k.writeHead(200,{"Content-Type":"text/html"}),k.end(Mn),m(),s(N)}catch(D){k.writeHead(200,{"Content-Type":"text/html"}),k.end(A(D.message)),m(),i(D)}}),l=setTimeout(()=>{m(),i(new Error("Login timed out after 2 minutes"))},On);function m(){clearTimeout(l),c.close()}c.listen(19836,()=>{const w=`${e}?`+new URLSearchParams({client_id:z,redirect_uri:K,response_type:"code",scope:"openid",state:o,code_challenge:a,code_challenge_method:"S256"}).toString();process.stderr.write(`Opening browser for login...
10
+ `),Un(w)}),c.on("error",w=>{m(),i(new Error(`Could not start local server: ${w.message}`))})})}const Rn=ue.createRequire(typeof document>"u"?require("url").pathToFileURL(__filename).href:document.currentScript&&document.currentScript.src||new URL("cli.cjs",document.baseURI).href),{version:Pn}=Rn("../package.json"),Gn=`ec.fdk <command> [options]
8
11
 
9
12
  Commands:
10
- login Login with ec credentials (interactive prompt)
13
+ login Login via browser (OIDC). Use --password for email/password prompt.
14
+ logout Logout and remove stored token
11
15
 
12
16
  Entry commands (require --dm, --model):
13
17
  entryList List entries
@@ -101,31 +105,33 @@ Options:
101
105
  --raw Include _links and _embedded in output
102
106
  --md Output entries as readable markdown
103
107
  -v, --version Show version
104
- -h, --help Show help`;function A(t){return Object.fromEntries(t.map(e=>{const n=e.indexOf("=");return n===-1&&l(`Invalid filter: "${e}" (expected key=value)`),[e.slice(0,n),e.slice(n+1)]}))}function l(t){process.stderr.write(`Error: ${t}
105
- `),process.exit(2)}function kn(){return new Promise(t=>{let e="";process.stdin.setEncoding("utf-8"),process.stdin.on("data",n=>e+=n),process.stdin.on("end",()=>t(e))})}async function y(t){if(t)try{return JSON.parse(t)}catch{l("--data must be valid JSON")}if(!process.stdin.isTTY){const e=await kn();e.trim()||l("No data provided via stdin");try{return JSON.parse(e)}catch{l("Stdin must be valid JSON")}}l("Provide --data or pipe JSON via stdin")}function T(t){if(!t||typeof t!="object")return t;const{_links:e,_embedded:n,...r}=t;return r}function E(t){return!t||typeof t!="object"?t:Array.isArray(t.items)?{...t,items:t.items.map(T)}:T(t)}const P=40;function B(t){return t.length>P?t.slice(0,P-2)+"..":t}function W(t){return t==null?"":B(typeof t=="object"?JSON.stringify(t):String(t))}function X(t){return Object.keys(t).filter(e=>!e.startsWith("_"))}function I(t,e){return"| "+t.map((n,r)=>n.padEnd(e[r])).join(" | ")+" |"}function wn(t){const e=X(t),n=e.map(g=>W(t[g])),r=Math.max(5,...e.map(g=>g.length)),a=Math.max(5,...n.map(g=>g.length)),i=[r,a],o=I(["Field","Value"],i),s="| "+i.map(g=>"-".repeat(g)).join(" | ")+" |",c=e.map((g,m)=>I([g,n[m]],i));return`${o}
106
- ${s}
107
- ${c.join(`
108
- `)}`}function Dn(t){if(!t.items.length)return"No entries found.";const e=X(t.items[0]),n=t.items.map(s=>e.map(c=>W(s[c]))),r=e.map((s,c)=>Math.max(s.length,...n.map(g=>g[c].length))),a=I(e,r),i="| "+r.map(s=>"-".repeat(s)).join(" | ")+" |",o=n.map(s=>I(s,r));return`${a}
108
+ --password Use email/password login instead of browser
109
+ -h, --help Show help`;function I(t){return Object.fromEntries(t.map(e=>{const n=e.indexOf("=");return n===-1&&f(`Invalid filter: "${e}" (expected key=value)`),[e.slice(0,n),e.slice(n+1)]}))}function f(t){process.stderr.write(`Error: ${t}
110
+ `),process.exit(2)}function Bn(){return new Promise(t=>{let e="";process.stdin.setEncoding("utf-8"),process.stdin.on("data",n=>e+=n),process.stdin.on("end",()=>t(e))})}async function y(t){if(t)try{return JSON.parse(t)}catch{f("--data must be valid JSON")}if(!process.stdin.isTTY){const e=await Bn();e.trim()||f("No data provided via stdin");try{return JSON.parse(e)}catch{f("Stdin must be valid JSON")}}f("Provide --data or pipe JSON via stdin")}function E(t){if(!t||typeof t!="object")return t;const{_links:e,_embedded:n,...r}=t;return r}function S(t){return!t||typeof t!="object"?t:Array.isArray(t.items)?{...t,items:t.items.map(E)}:E(t)}const V=40;function Y(t){return t.length>V?t.slice(0,V-2)+"..":t}function oe(t){return t==null?"":Y(typeof t=="object"?JSON.stringify(t):String(t))}function ie(t){return Object.keys(t).filter(e=>!e.startsWith("_"))}function O(t,e){return"| "+t.map((n,r)=>n.padEnd(e[r])).join(" | ")+" |"}function Nn(t){const e=ie(t),n=e.map(l=>oe(t[l])),r=Math.max(5,...e.map(l=>l.length)),a=Math.max(5,...n.map(l=>l.length)),o=[r,a],s=O(["Field","Value"],o),i="| "+o.map(l=>"-".repeat(l)).join(" | ")+" |",c=e.map((l,m)=>O([l,n[m]],o));return`${s}
109
111
  ${i}
110
- ${o.join(`
112
+ ${c.join(`
113
+ `)}`}function jn(t){if(!t.items.length)return"No entries found.";const e=ie(t.items[0]),n=t.items.map(i=>e.map(c=>oe(i[c]))),r=e.map((i,c)=>Math.max(i.length,...n.map(l=>l[c].length))),a=O(e,r),o="| "+r.map(i=>"-".repeat(i)).join(" | ")+" |",s=n.map(i=>O(i,r));return`${a}
114
+ ${o}
115
+ ${s.join(`
111
116
  `)}
112
117
 
113
- ${t.items.length} of ${t.total} entries`}async function Tn(){const{values:t,positionals:e}=Y.parseArgs({allowPositionals:!0,options:{env:{type:"string",short:"e",default:"stage"},dm:{type:"string",short:"d"},model:{type:"string",short:"m"},id:{type:"string",short:"i"},data:{type:"string"},size:{type:"string",short:"s"},page:{type:"string",short:"p"},sort:{type:"string"},filter:{type:"string",short:"f",multiple:!0,default:[]},rid:{type:"string"},"account-id":{type:"string"},assetgroup:{type:"string"},resource:{type:"string"},subdomain:{type:"string"},raw:{type:"boolean",default:!1},md:{type:"boolean",default:!1},version:{type:"boolean",short:"v"},help:{type:"boolean",short:"h"}}});t.version&&(console.log(pn),process.exit(0)),(t.help||e.length===0)&&(console.log(yn),process.exit(0));const n=e[0],r=t.env;r!=="stage"&&r!=="live"&&l('--env must be "stage" or "live"');const a=new M({env:r,storageAdapter:fn});if(n==="login"){const i=await gn("Email: "),o=await mn("Password: ");try{await a.loginEc({email:i,password:o}),process.stderr.write(`Logged in to ${r} successfully.
114
- `)}catch(s){process.stderr.write(`Login failed: ${s.message}
115
- `),process.exit(1)}return}try{let i;const o=()=>{const s={...A(t.filter)};return t.size&&(s.size=Number(t.size)),t.page&&(s.page=Number(t.page)),t.sort&&(s.sort=[t.sort]),s};switch(n){case"dmList":{i=await a.dmList(o()),t.raw||(i=E(i));break}case"modelList":{t.id||l("--id (datamanager UUID) is required for modelList"),i=await a.dmID(t.id).modelList(o()),t.raw||(i=E(i));break}case"getDatamanager":{t.id||l("--id (datamanager UUID) is required for getDatamanager"),i=await a.getDatamanager(t.id),t.raw||(i=E(i));break}case"resourceList":{t.resource||l("--resource is required for resourceList");let s=a.resource(t.resource);t.subdomain&&(s=s.subdomain(t.subdomain)),i=await s.resourceList(o()),t.raw||(i=E(i));break}case"resourceGet":{t.resource||l("--resource is required for resourceGet");let s=a.resource(t.resource);t.subdomain&&(s=s.subdomain(t.subdomain)),i=await s.resourceGet(A(t.filter)),t.raw||(i=T(i));break}case"resourceEdit":{t.resource||l("--resource is required for resourceEdit");let s=a.resource(t.resource);t.subdomain&&(s=s.subdomain(t.subdomain));const c=await y(t.data);if(i=await s.resourceEdit(A(t.filter),c),!i){process.stderr.write(`Resource updated.
116
- `);return}t.raw||(i=T(i));break}case"resourceDelete":{t.resource||l("--resource is required for resourceDelete");let s=a.resource(t.resource);t.subdomain&&(s=s.subdomain(t.subdomain)),await s.resourceDelete(A(t.filter)),process.stderr.write(`Resource deleted.
117
- `);return}case"getStats":{i=await a.getStats(o());break}case"getHistory":{i=await a.getHistory(o());break}case"entryList":case"getEntry":case"createEntry":case"editEntry":case"deleteEntry":case"getSchema":{t.dm||l("--dm is required"),t.model||l("--model is required");const s=a.dm(t.dm).model(t.model).clean(!t.raw);switch(n){case"entryList":{i=await s.entryList(o());break}case"getEntry":{t.id||l("--id is required for getEntry"),i=await s.getEntry(t.id);break}case"createEntry":{const c=await y(t.data);i=await s.createEntry(c);break}case"editEntry":{t.id||l("--id is required for editEntry");const c=await y(t.data);i=await s.editEntry(t.id,c);break}case"deleteEntry":{t.id||l("--id is required for deleteEntry"),await s.deleteEntry(t.id),process.stderr.write(`Entry deleted.
118
- `);return}case"getSchema":{i=await s.getSchema();break}}break}case"createDatamanager":{const s=await y(t.data);i=await a.createDatamanager(s);break}case"editDatamanager":{t.id||l("--id (datamanager UUID) is required for editDatamanager");const s=await y(t.data);i=await a.editDatamanager(t.id,s);break}case"deleteDatamanager":{t.id||l("--id (datamanager UUID) is required for deleteDatamanager"),await a.deleteDatamanager(t.id),process.stderr.write(`Datamanager deleted.
119
- `);return}case"createModel":{t.id||l("--id (datamanager UUID) is required for createModel");const s=await y(t.data);i=await a.dmID(t.id).createModel(s);break}case"editModel":{t.id||l("--id (datamanager UUID) is required for editModel"),t.rid||l("--rid (model ID) is required for editModel");const s=await y(t.data);i=await a.dmID(t.id).editModel(t.rid,s);break}case"deleteModel":{t.id||l("--id (datamanager UUID) is required for deleteModel"),t.rid||l("--rid (model ID) is required for deleteModel"),await a.dmID(t.id).deleteModel(t.rid),process.stderr.write(`Model deleted.
120
- `);return}case"createTemplate":{const s=await y(t.data);i=await a.createTemplate(s);break}case"createAssetGroup":{t.id||l("--id (datamanager UUID) is required for createAssetGroup");const s=await y(t.data);i=await a.dmID(t.id).createAssetGroup(s);break}case"editAssetGroup":{t.id||l("--id (datamanager UUID) is required for editAssetGroup"),t.rid||l("--rid (asset group ID) is required for editAssetGroup");const s=await y(t.data);i=await a.dmID(t.id).editAssetGroup(t.rid,s);break}case"editAsset":{t.dm||l("--dm (short ID) is required for editAsset"),t.assetgroup||l("--assetgroup is required for editAsset"),t.rid||l("--rid (asset ID) is required for editAsset");const s=await y(t.data);i=await a.dm(t.dm).assetGroup(t.assetgroup).editAsset(t.rid,s);break}case"editDmClient":{t.id||l("--id (datamanager UUID) is required for editDmClient"),t.rid||l("--rid (client ID) is required for editDmClient");const s=await y(t.data);i=await a.dmID(t.id).editDmClient(t.rid,s);break}case"createRole":{t.id||l("--id (datamanager UUID) is required for createRole");const s=await y(t.data);i=await a.dmID(t.id).createRole(s);break}case"editRole":{t.id||l("--id (datamanager UUID) is required for editRole"),t.rid||l("--rid (role ID) is required for editRole");const s=await y(t.data);i=await a.dmID(t.id).editRole(t.rid,s);break}case"deleteRole":{t.id||l("--id (datamanager UUID) is required for deleteRole"),t.rid||l("--rid (role ID) is required for deleteRole"),await a.dmID(t.id).deleteRole(t.rid),process.stderr.write(`Role deleted.
121
- `);return}case"editDmAccount":{t.id||l("--id (datamanager UUID) is required for editDmAccount"),t["account-id"]||l("--account-id is required for editDmAccount");const s=await y(t.data);i=await a.dmID(t.id).editDmAccount(t["account-id"],s);break}case"deleteDmAccount":{t.id||l("--id (datamanager UUID) is required for deleteDmAccount"),t["account-id"]||l("--account-id is required for deleteDmAccount"),await a.dmID(t.id).deleteDmAccount(t["account-id"]),process.stderr.write(`DM account deleted.
122
- `);return}case"createAccountClient":{const s=await y(t.data);i=await a.createAccountClient(s);break}case"editAccountClient":{t.rid||l("--rid (client ID) is required for editAccountClient");const s=await y(t.data);i=await a.editAccountClient(t.rid,s);break}case"deleteAccountClient":{t.rid||l("--rid (client ID) is required for deleteAccountClient"),await a.deleteAccountClient(t.rid),process.stderr.write(`Account client deleted.
123
- `);return}case"createGroup":{const s=await y(t.data);i=await a.createGroup(s);break}case"editGroup":{t.rid||l("--rid (group ID) is required for editGroup");const s=await y(t.data);i=await a.editGroup(t.rid,s);break}case"deleteGroup":{t.rid||l("--rid (group ID) is required for deleteGroup"),await a.deleteGroup(t.rid),process.stderr.write(`Group deleted.
124
- `);return}case"createInvite":{const s=await y(t.data);i=await a.createInvite(s);break}case"editInvite":{t.rid||l("--rid (invite ID) is required for editInvite");const s=await y(t.data);i=await a.editInvite(t.rid,s);break}case"deleteInvite":{t.rid||l("--rid (invite ID) is required for deleteInvite"),await a.deleteInvite(t.rid),process.stderr.write(`Invite deleted.
125
- `);return}case"editAccount":{t["account-id"]||l("--account-id is required for editAccount");const s=await y(t.data);if(i=await a.editAccount(t["account-id"],s),!i){process.stderr.write(`Account updated.
126
- `);return}break}case"listTokens":{t["account-id"]||l("--account-id is required for listTokens");const s=await a.listTokens(t["account-id"]);i=t.raw?s:s.map(T);break}case"createToken":{t["account-id"]||l("--account-id is required for createToken"),i=await a.createToken(t["account-id"]);break}case"deleteToken":{t["account-id"]||l("--account-id is required for deleteToken"),t.rid||l("--rid (access token ID) is required for deleteToken"),await a.deleteToken(t["account-id"],t.rid),process.stderr.write(`Token deleted.
127
- `);return}default:l(`Unknown command: ${n}`)}t.md&&i&&typeof i=="object"?Array.isArray(i.items)?process.stdout.write(Dn(i)+`
128
- `):process.stdout.write(wn(i)+`
129
- `):process.stdout.write(JSON.stringify(i,null,2)+`
130
- `)}catch(i){process.stderr.write(`${i.message}
131
- `),process.exit(1)}}Tn();
118
+ ${t.items.length} of ${t.total} entries`}async function xn(){const{values:t,positionals:e}=de.parseArgs({allowPositionals:!0,options:{env:{type:"string",short:"e",default:"stage"},dm:{type:"string",short:"d"},model:{type:"string",short:"m"},id:{type:"string",short:"i"},data:{type:"string"},size:{type:"string",short:"s"},page:{type:"string",short:"p"},sort:{type:"string"},filter:{type:"string",short:"f",multiple:!0,default:[]},rid:{type:"string"},"account-id":{type:"string"},assetgroup:{type:"string"},resource:{type:"string"},subdomain:{type:"string"},raw:{type:"boolean",default:!1},md:{type:"boolean",default:!1},password:{type:"boolean",default:!1},version:{type:"boolean",short:"v"},help:{type:"boolean",short:"h"}}});t.version&&(console.log(Pn),process.exit(0)),(t.help||e.length===0)&&(console.log(Gn),process.exit(0));const n=e[0],r=t.env;r!=="stage"&&r!=="live"&&f('--env must be "stage" or "live"');const a=new P({env:r,storageAdapter:An});if(n==="login"){try{if(t.password){const o=await In("Email: "),s=await Sn("Password: ");await a.loginEc({email:o,password:s})}else{const o=await Ln(r);a.setEcToken(o)}process.stderr.write(`Logged in to ${r} successfully.
119
+ `)}catch(o){process.stderr.write(`Login failed: ${o.message}
120
+ `),process.exit(1)}return}if(n==="logout"){try{a.hasEcToken()&&await a.logoutEc()}catch{}a.removeEcToken(),process.stderr.write(`Logged out of ${r}.
121
+ `);return}try{let o;const s=()=>{const i={...I(t.filter)};return t.size&&(i.size=Number(t.size)),t.page&&(i.page=Number(t.page)),t.sort&&(i.sort=[t.sort]),i};switch(n){case"dmList":{o=await a.dmList(s()),t.raw||(o=S(o));break}case"modelList":{t.id||f("--id (datamanager UUID) is required for modelList"),o=await a.dmID(t.id).modelList(s()),t.raw||(o=S(o));break}case"getDatamanager":{t.id||f("--id (datamanager UUID) is required for getDatamanager"),o=await a.getDatamanager(t.id),t.raw||(o=S(o));break}case"resourceList":{t.resource||f("--resource is required for resourceList");let i=a.resource(t.resource);t.subdomain&&(i=i.subdomain(t.subdomain)),o=await i.resourceList(s()),t.raw||(o=S(o));break}case"resourceGet":{t.resource||f("--resource is required for resourceGet");let i=a.resource(t.resource);t.subdomain&&(i=i.subdomain(t.subdomain)),o=await i.resourceGet(I(t.filter)),t.raw||(o=E(o));break}case"resourceEdit":{t.resource||f("--resource is required for resourceEdit");let i=a.resource(t.resource);t.subdomain&&(i=i.subdomain(t.subdomain));const c=await y(t.data);if(o=await i.resourceEdit(I(t.filter),c),!o){process.stderr.write(`Resource updated.
122
+ `);return}t.raw||(o=E(o));break}case"resourceDelete":{t.resource||f("--resource is required for resourceDelete");let i=a.resource(t.resource);t.subdomain&&(i=i.subdomain(t.subdomain)),await i.resourceDelete(I(t.filter)),process.stderr.write(`Resource deleted.
123
+ `);return}case"getStats":{o=await a.getStats(s());break}case"getHistory":{o=await a.getHistory(s());break}case"entryList":case"getEntry":case"createEntry":case"editEntry":case"deleteEntry":case"getSchema":{t.dm||f("--dm is required"),t.model||f("--model is required");const i=a.dm(t.dm).model(t.model).clean(!t.raw);switch(n){case"entryList":{o=await i.entryList(s());break}case"getEntry":{t.id||f("--id is required for getEntry"),o=await i.getEntry(t.id);break}case"createEntry":{const c=await y(t.data);o=await i.createEntry(c);break}case"editEntry":{t.id||f("--id is required for editEntry");const c=await y(t.data);o=await i.editEntry(t.id,c);break}case"deleteEntry":{t.id||f("--id is required for deleteEntry"),await i.deleteEntry(t.id),process.stderr.write(`Entry deleted.
124
+ `);return}case"getSchema":{o=await i.getSchema();break}}break}case"createDatamanager":{const i=await y(t.data);o=await a.createDatamanager(i);break}case"editDatamanager":{t.id||f("--id (datamanager UUID) is required for editDatamanager");const i=await y(t.data);o=await a.editDatamanager(t.id,i);break}case"deleteDatamanager":{t.id||f("--id (datamanager UUID) is required for deleteDatamanager"),await a.deleteDatamanager(t.id),process.stderr.write(`Datamanager deleted.
125
+ `);return}case"createModel":{t.id||f("--id (datamanager UUID) is required for createModel");const i=await y(t.data);o=await a.dmID(t.id).createModel(i);break}case"editModel":{t.id||f("--id (datamanager UUID) is required for editModel"),t.rid||f("--rid (model ID) is required for editModel");const i=await y(t.data);o=await a.dmID(t.id).editModel(t.rid,i);break}case"deleteModel":{t.id||f("--id (datamanager UUID) is required for deleteModel"),t.rid||f("--rid (model ID) is required for deleteModel"),await a.dmID(t.id).deleteModel(t.rid),process.stderr.write(`Model deleted.
126
+ `);return}case"createTemplate":{const i=await y(t.data);o=await a.createTemplate(i);break}case"createAssetGroup":{t.id||f("--id (datamanager UUID) is required for createAssetGroup");const i=await y(t.data);o=await a.dmID(t.id).createAssetGroup(i);break}case"editAssetGroup":{t.id||f("--id (datamanager UUID) is required for editAssetGroup"),t.rid||f("--rid (asset group ID) is required for editAssetGroup");const i=await y(t.data);o=await a.dmID(t.id).editAssetGroup(t.rid,i);break}case"editAsset":{t.dm||f("--dm (short ID) is required for editAsset"),t.assetgroup||f("--assetgroup is required for editAsset"),t.rid||f("--rid (asset ID) is required for editAsset");const i=await y(t.data);o=await a.dm(t.dm).assetGroup(t.assetgroup).editAsset(t.rid,i);break}case"editDmClient":{t.id||f("--id (datamanager UUID) is required for editDmClient"),t.rid||f("--rid (client ID) is required for editDmClient");const i=await y(t.data);o=await a.dmID(t.id).editDmClient(t.rid,i);break}case"createRole":{t.id||f("--id (datamanager UUID) is required for createRole");const i=await y(t.data);o=await a.dmID(t.id).createRole(i);break}case"editRole":{t.id||f("--id (datamanager UUID) is required for editRole"),t.rid||f("--rid (role ID) is required for editRole");const i=await y(t.data);o=await a.dmID(t.id).editRole(t.rid,i);break}case"deleteRole":{t.id||f("--id (datamanager UUID) is required for deleteRole"),t.rid||f("--rid (role ID) is required for deleteRole"),await a.dmID(t.id).deleteRole(t.rid),process.stderr.write(`Role deleted.
127
+ `);return}case"editDmAccount":{t.id||f("--id (datamanager UUID) is required for editDmAccount"),t["account-id"]||f("--account-id is required for editDmAccount");const i=await y(t.data);o=await a.dmID(t.id).editDmAccount(t["account-id"],i);break}case"deleteDmAccount":{t.id||f("--id (datamanager UUID) is required for deleteDmAccount"),t["account-id"]||f("--account-id is required for deleteDmAccount"),await a.dmID(t.id).deleteDmAccount(t["account-id"]),process.stderr.write(`DM account deleted.
128
+ `);return}case"createAccountClient":{const i=await y(t.data);o=await a.createAccountClient(i);break}case"editAccountClient":{t.rid||f("--rid (client ID) is required for editAccountClient");const i=await y(t.data);o=await a.editAccountClient(t.rid,i);break}case"deleteAccountClient":{t.rid||f("--rid (client ID) is required for deleteAccountClient"),await a.deleteAccountClient(t.rid),process.stderr.write(`Account client deleted.
129
+ `);return}case"createGroup":{const i=await y(t.data);o=await a.createGroup(i);break}case"editGroup":{t.rid||f("--rid (group ID) is required for editGroup");const i=await y(t.data);o=await a.editGroup(t.rid,i);break}case"deleteGroup":{t.rid||f("--rid (group ID) is required for deleteGroup"),await a.deleteGroup(t.rid),process.stderr.write(`Group deleted.
130
+ `);return}case"createInvite":{const i=await y(t.data);o=await a.createInvite(i);break}case"editInvite":{t.rid||f("--rid (invite ID) is required for editInvite");const i=await y(t.data);o=await a.editInvite(t.rid,i);break}case"deleteInvite":{t.rid||f("--rid (invite ID) is required for deleteInvite"),await a.deleteInvite(t.rid),process.stderr.write(`Invite deleted.
131
+ `);return}case"editAccount":{t["account-id"]||f("--account-id is required for editAccount");const i=await y(t.data);if(o=await a.editAccount(t["account-id"],i),!o){process.stderr.write(`Account updated.
132
+ `);return}break}case"listTokens":{t["account-id"]||f("--account-id is required for listTokens");const i=await a.listTokens(t["account-id"]);o=t.raw?i:i.map(E);break}case"createToken":{t["account-id"]||f("--account-id is required for createToken"),o=await a.createToken(t["account-id"]);break}case"deleteToken":{t["account-id"]||f("--account-id is required for deleteToken"),t.rid||f("--rid (access token ID) is required for deleteToken"),await a.deleteToken(t["account-id"],t.rid),process.stderr.write(`Token deleted.
133
+ `);return}default:f(`Unknown command: ${n}`)}t.md&&o&&typeof o=="object"?Array.isArray(o.items)?process.stdout.write(jn(o)+`
134
+ `):process.stdout.write(Nn(o)+`
135
+ `):process.stdout.write(JSON.stringify(o,null,2)+`
136
+ `)}catch(o){process.stderr.write(`${o.message}
137
+ `),process.exit(1)}}xn();
package/dist/index.cjs CHANGED
@@ -1,3 +1,3 @@
1
- "use strict";var oe=Object.defineProperty,se=Object.defineProperties;var re=Object.getOwnPropertyDescriptors;var b=Object.getOwnPropertySymbols;var G=Object.prototype.hasOwnProperty,N=Object.prototype.propertyIsEnumerable;var R=(o,t,e)=>t in o?oe(o,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[t]=e,c=(o,t)=>{for(var e in t||(t={}))G.call(t,e)&&R(o,e,t[e]);if(b)for(var e of b(t))N.call(t,e)&&R(o,e,t[e]);return o},l=(o,t)=>se(o,re(t));var J=(o,t)=>{var e={};for(var n in o)G.call(o,n)&&t.indexOf(n)<0&&(e[n]=o[n]);if(o!=null&&b)for(var n of b(o))t.indexOf(n)<0&&N.call(o,n)&&(e[n]=o[n]);return e};var i=(o,t,e)=>new Promise((n,s)=>{var r=u=>{try{d(e.next(u))}catch(g){s(g)}},a=u=>{try{d(e.throw(u))}catch(g){s(g)}},d=u=>u.done?n(u.value):Promise.resolve(u.value).then(r,a);d((e=e.apply(o,t)).next())});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function f(n){return i(this,arguments,function*(o,t={},e={}){var u;const{token:s,rawRes:r}=t;s&&(e.headers=l(c({},e.headers||{}),{Authorization:`Bearer ${s}`}));const a=yield fetch(o,e);if(!a.ok){if((u=a.headers.get("content-type"))!=null&&u.includes("application/json")){const g=yield a.json(),p=`${g.title}
1
+ "use strict";var oe=Object.defineProperty,se=Object.defineProperties;var re=Object.getOwnPropertyDescriptors;var v=Object.getOwnPropertySymbols;var G=Object.prototype.hasOwnProperty,N=Object.prototype.propertyIsEnumerable;var R=(o,t,e)=>t in o?oe(o,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):o[t]=e,c=(o,t)=>{for(var e in t||(t={}))G.call(t,e)&&R(o,e,t[e]);if(v)for(var e of v(t))N.call(t,e)&&R(o,e,t[e]);return o},l=(o,t)=>se(o,re(t));var J=(o,t)=>{var e={};for(var n in o)G.call(o,n)&&t.indexOf(n)<0&&(e[n]=o[n]);if(o!=null&&v)for(var n of v(o))t.indexOf(n)<0&&N.call(o,n)&&(e[n]=o[n]);return e};var i=(o,t,e)=>new Promise((n,s)=>{var r=u=>{try{d(e.next(u))}catch(g){s(g)}},a=u=>{try{d(e.throw(u))}catch(g){s(g)}},d=u=>u.done?n(u.value):Promise.resolve(u.value).then(r,a);d((e=e.apply(o,t)).next())});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function f(n){return i(this,arguments,function*(o,t={},e={}){var u;const{token:s,rawRes:r}=t;s&&(e.headers=l(c({},e.headers||{}),{Authorization:`Bearer ${s}`}));const a=yield fetch(o,e);if(!a.ok){if((u=a.headers.get("content-type"))!=null&&u.includes("application/json")){const g=yield a.json(),p=`${g.title}
2
2
  ${g.detail}
3
- ${g.verbose}`;throw new Error(p)}throw new Error(`unexpected fetch error: ${a.statusText}`)}if(r)return a;if(a.status===204)return;const d=yield a.text();return d?JSON.parse(d):void 0})}const A={datamanager:{live:"https://datamanager.entrecode.de/",stage:"https://datamanager.cachena.entrecode.de/"},accounts:{live:"https://accounts.entrecode.de/",stage:"https://accounts.cachena.entrecode.de/"},appserver:{live:"https://appserver.entrecode.de/",stage:"https://appserver.cachena.entrecode.de/"},"dm-history":{live:"https://dm-history.entrecode.de/",stage:"https://dm-history.cachena.entrecode.de/"}};function y(o,t="stage",e="datamanager"){const n=A[e];if(!n)throw new Error(`subdomain "${e}" not found. Try one of ${Object.keys(A).join(", ")}`);const s=n[t];if(!s)throw new Error(`env "${t}" not found. Try one of ${Object.keys(n[t]).join(", ")}`);return s+o}function m(o,t=!0){return Object.entries(o).sort((e,n)=>e[0].localeCompare(n[0])).map(([e,n])=>`${e}=${n}`).join("&")}function h(o){Object.entries(o).forEach(([t,e])=>{if(e===void 0)throw new Error(`expected ${t} to be set!`)})}const V={stage:"https://accounts.cachena.entrecode.de/",live:"https://accounts.entrecode.de/"};function z(o){return i(this,null,function*(){let{env:t,dmShortID:e,email:n,password:s}=o;h({env:t,dmShortID:e,email:n,password:s});const r=y(`api/${e}/_auth/login?clientID=rest`,t);return yield f(r,{},{method:"POST",body:JSON.stringify({email:n,password:s}),headers:{"Content-Type":"application/json"}})})}function H(o){return i(this,null,function*(){let{env:t,email:e,password:n}=o;h({env:t,email:e,password:n});const s=`${V[t]}auth/login?clientID=rest`;return yield f(s,{},{method:"POST",body:JSON.stringify({email:e,password:n}),headers:{"Content-Type":"application/json"}})})}function Q(o){return i(this,null,function*(){let{dmShortID:t,env:e,token:n}=o;h({dmShortID:t,env:e,token:n});const s=y(`api/${t}/_auth/logout?clientID=rest&token=${n}`,e);return yield f(s,{rawRes:!0},{method:"POST"})})}function W(o){return i(this,null,function*(){let{env:t,token:e}=o;h({env:t,token:e});const n=`${V[t]}auth/logout?clientID=rest`;return yield f(n,{rawRes:!0,token:e},{method:"POST"})})}function X({dmShortID:o}){return h({dmShortID:o}),o}function Y({env:o}){return h({env:o}),o}let ie=["created","creator","id","modified","private","_created","_creator","_embedded","_entryTitle","_id","_links","_modelTitle","_modelTitleField","_modified"];function Z(o){let t={};for(let e in o)ie.includes(e)||(t[e]=o[e]);return t}function ae(o){return JSON.parse(JSON.stringify(o))}function tt(o){return i(this,null,function*(){let{env:t,dmShortID:e}=o;h({env:t,dmShortID:e});const n=y(`api/${e}`,t);return f(n,o)})}function P(o){return i(this,null,function*(){let{env:t,dmShortID:e,model:n,options:s={}}=o;h({env:t,dmShortID:e,model:n}),s=c({size:50,page:1,_list:!0},s);const r=m(s),a=y(`api/${e}/${n}?${r}`,t),{count:d,total:u,_embedded:g}=yield f(a,o);let p=g?g[`${e}:${n}`]:[];return p=Array.isArray(p)?p:[p],{count:d,total:u,items:p}})}function et({env:o,dmShortID:t,model:e,entryID:n,token:s}){h({env:o,dmShortID:t,model:e,entryID:n});const r=m({_id:n}),a=y(`api/${t}/${e}?${r}`,o);return f(a,{token:s})}function nt(r){return i(this,arguments,function*({env:o,dmShortID:t,model:e,value:n,token:s}){h({env:o,dmShortID:t,model:e,value:n});const a=y(`api/${t}/${e}`,o);return yield f(a,{token:s},{method:"POST",body:JSON.stringify(n),headers:{"Content-Type":"application/json"}})})}function _(d){return i(this,arguments,function*({env:o,dmShortID:t,model:e,entryID:n,value:s,token:r,safePut:a=!1}){h({env:o,dmShortID:t,model:e,entryID:n,value:s});const u={"Content-Type":"application/json"};if(a){if(!("_modified"in s))throw new Error("expected _modified to be set!");u["If-Unmodified-Since"]=new Date(s._modified).toUTCString()}const g=y(`api/${t}/${e}?_id=${n}`,o);return s=ae(s),s=Z(s),yield f(g,{token:r},{method:"PUT",headers:u,body:JSON.stringify(s)})})}function q({env:o,dmShortID:t,model:e,entryID:n,token:s}){h({env:o,dmShortID:t,model:e,entryID:n});const r=y(`api/${t}/${e}?_id=${n}`,o);return f(r,{token:s,rawRes:!0},{method:"DELETE",headers:{"Content-Type":"application/json"}})}function ot(o,t){return i(this,null,function*(){let{env:e,dmShortID:n,model:s,options:r={}}=o;h({env:e,dmShortID:n,model:s}),o.options=c({size:50,page:1,_list:!0},r);let a=0,d,u=[];for(;d===void 0||a<d;){const g=yield P(o);for(let p of g.items)u.push(yield t(p));a+=g.items.length,d=g.total,o.options.page++}return u})}function st(s){return i(this,arguments,function*({env:o,dmShortID:t,model:e,withMetadata:n}){var p,T,w,j,C;h({env:o,dmShortID:t,model:e});const r=y(`api/schema/${t}/${e}`,o),a=yield f(r),d=(p=a==null?void 0:a.allOf)==null?void 0:p[1];if(typeof d.properties!="object")throw new Error(`getSchema: ${r} returned unexpected format: ${JSON.stringify(a)}`);const{properties:u}=d,g=Z(u);for(let E in g){let $=g[E];if($.required=d.required.includes(E),(T=g[E])!=null&&T.oneOf&&((w=g[E])==null||delete w.oneOf),(j=$.title)!=null&&j.includes("<")&&((C=$.title)!=null&&C.includes(">"))){const B=$.title.split("<")[1].slice(0,-1),ne=$.title.split("<")[0];$.type=ne,B.includes(":")?$.resource=B.split(":")[1]:$.resource=B}else["asset","entry","assets","entries"].includes($.title)?($.type=$.title,$.resource=null):$.type=$.title;delete g[E].title}if(n){const E=u._modelTitle.title,$=u._modelTitleField.title;return{properties:g,meta:{modelTitleField:$,modelTitle:E}}}return g})}function L(o){return Object.entries(o).map(([t,e])=>typeof e!="object"?{[t]:String(e)}:c(c(c(c(c(c(c({},e.sort&&{sort:Array.isArray(e)?e.join(","):e}),e.search&&{[t+"~"]:e.search}),e.notNull&&{[t+"!"]:""}),e.null&&{[t]:""}),e.any&&{[t]:e.any.join(",")}),e.from&&{[t+"From"]:e.from}),e.to&&{[t+"To"]:e.to})).reduce((t,e)=>c(c({},t),e),{})}const rt=L;function O(o){return o._links.collection.href.split("/").slice(-2)[0]}function M(o){const t=o._links.collection.href.split("api/")[0];return Object.keys(A.datamanager).find(n=>A.datamanager[n]===t)}const it=o=>{const t=O(o),e=M(o),n=o._modelTitle,s=o.id;return{dmShortID:t,env:e,model:n,entryID:s}},at=o=>q(it(o)),ct=(o,t)=>_(l(c({},it(o)),{value:t}));function ut(o,t){const e=O(t);return t._embedded[`${e}:${t._modelTitle}/${o}/asset`]}function dt(r){return i(this,arguments,function*({env:o,dmShortID:t,assetGroup:e,assetID:n,token:s}){h({env:o,dmShortID:t,assetGroup:e,assetID:n});const a=m({assetID:n}),d=y(`a/${t}/${e}?${a}`,o),{_embedded:u}=yield f(d,{token:s});return u?u["ec:dm-asset"]:void 0})}function lt(o){return i(this,null,function*(){let{env:t,dmShortID:e,assetGroup:n,token:s,options:r={}}=o;h({env:t,dmShortID:e,assetGroup:n}),r=c({size:50,page:1,_list:!0},r);const a=m(r),d=y(`a/${e}/${n}?${a}`,t),{count:u,total:g,_embedded:p}=yield f(d,{token:s});let T=p?p["ec:dm-asset"]:[];return T=Array.isArray(T)?T:[T],{count:u,total:g,items:T}})}function ht(d){return i(this,arguments,function*({env:o,dmShortID:t,assetGroup:e,token:n,file:s,name:r,options:a}){h({env:o,dmShortID:t,assetGroup:e,file:s});const u=y(`a/${t}/${e}`,o),g=new FormData;return g.append("file",s,r),a&&Object.keys(a).forEach(T=>{g.append(T,a[T])}),(yield f(u,{token:n},{method:"POST",body:g}))._embedded["ec:dm-asset"]})}function gt(r){return i(this,arguments,function*({env:o,dmShortID:t,assetGroup:e,files:n,options:s}){h({env:o,dmShortID:t,assetGroup:e,files:n});const a=y(`a/${t}/${e}`,o),d=new FormData;n.forEach(g=>{d.append("file",g)}),s&&Object.keys(s).forEach(g=>{d.append(g,s[g])});const u=yield f(a,{},{method:"POST",body:d});return Array.isArray(u._embedded["ec:dm-asset"])?u._embedded["ec:dm-asset"]:[u._embedded["ec:dm-asset"]]})}function ft(r){return i(this,arguments,function*({env:o,dmShortID:t,assetGroup:e,assetID:n,token:s}){h({env:o,dmShortID:t,assetGroup:e,assetID:n});const a=y(`a/${t}/${e}/${n}`,o);yield f(a,{token:s,rawRes:!0},{method:"DELETE"})})}function yt(o,t,e=!1){var a,d,u;let n,s;const r=e?o==null?void 0:o.thumbnails:o==null?void 0:o.fileVariants;return r==null||r.forEach(g=>{const{resolution:{width:p,height:T}}=g,w=Math.abs(Math.max(p,T)-t);(!s||w<s)&&(s=w,n=g)}),(u=(d=n==null?void 0:n.url)!=null?d:(a=o==null?void 0:o.file)==null?void 0:a.url)!=null?u:null}function mt(o="stage",t,e,n,s=!1){const r=Math.max(n.file.resolution.width,n.file.resolution.height),a=e.filter(u=>u<r),d=`https://datamanager${o==="stage"?".cachena":""}.entrecode.de`;return s?a.map(u=>{const g=n.thumbnails.find(w=>u===w.dimension),p=`${d}/t/${t}/${n.assetID}/${u}`,T=g?g.url:p;return{size:u,url:T,generated:g}}):a.map(u=>{const g=n.fileVariants.find(w=>u===Math.max(w.resolution.width,w.resolution.height)),p=`${d}/f/${t}/${n.assetID}/${u}`,T=g?g.url:p;return{size:u,url:T,generated:g}})}const k={"Content-Type":"application/json"};function kt(o){return i(this,null,function*(){let{env:t,dmID:e,token:n}=o;h({env:t,dmID:e});const s=y(`?dataManagerID=${e}`,t);return f(s,{token:n})})}function pt(o){return i(this,null,function*(){let{env:t,options:e={}}=o;h({env:t}),e=c({size:25,page:1,_list:!0},e);const n=m(e),s=y(`?${n}`,t),{count:r,total:a,_embedded:d}=yield f(s,o);let u=d?d["ec:datamanager"]:[];return u=Array.isArray(u)?u:[u],{count:r,total:a,items:u}})}function Tt(o){return i(this,null,function*(){let{env:t,dmID:e,options:n={}}=o;h({env:t,dmID:e}),n=c({size:25,dataManagerID:e,page:1,_list:!0},n);const s=m(n),r=y(`model?${s}`,t),{count:a,total:d,_embedded:u}=yield f(r,o);let g=u?u["ec:model"]:[];return g=Array.isArray(g)?g:[g],{count:a,total:d,items:g}})}function $t(o){return i(this,null,function*(){let{env:t,resource:e,options:n={},subdomain:s="datamanager"}=o;h({env:t,subdomain:s,resource:e}),n=c({size:25,page:1,_list:!0},n);const r=m(n),a=y(`${e}?${r}`,t,s),{count:d,total:u,_embedded:g}=yield f(a,o);let p=g?g[Object.keys(g)[0]]:[];return p=Array.isArray(p)?p:[p],{count:d,total:u,items:p}})}function wt(o){return i(this,null,function*(){let{env:t,resource:e,options:n={},subdomain:s="datamanager"}=o;h({env:t,subdomain:s,resource:e});const r=m(n),a=y(`${e}?${r}`,t,s);return f(a,o)})}function Et(o){return i(this,null,function*(){let{env:t,resource:e,options:n={},subdomain:s="datamanager",value:r}=o;h({env:t,subdomain:s,resource:e,value:r});const a=m(n),d=y(`${e}?${a}`,t,s);return f(d,o,{method:"PUT",body:JSON.stringify(r),headers:k})})}function At(o){return i(this,null,function*(){let{env:t,resource:e,options:n={},subdomain:s="datamanager"}=o;h({env:t,subdomain:s,resource:e});const r=m(n),a=y(`${e}?${r}`,t,s);return f(a,l(c({},o),{rawRes:!0}),{method:"DELETE",headers:k})})}function Dt(e){return i(this,arguments,function*(o,t={}){let{env:n,route:s,options:r={},subdomain:a="datamanager"}=o;h({env:n,subdomain:a,route:s}),r=c({},r);const d=m(r),u=y(`${s}?${d}`,n,a);return f(u,o,t)})}function bt(o){return i(this,null,function*(){let{env:t,token:e,value:n}=o;h({env:t,value:n});const s=y("",t);return f(s,{token:e},{method:"POST",body:JSON.stringify(n),headers:k})})}function vt(o){return i(this,null,function*(){let{env:t,token:e,dmID:n,value:s}=o;h({env:t,dmID:n,value:s});const r=m({dataManagerID:n}),a=y(`?${r}`,t);return f(a,{token:e},{method:"PUT",body:JSON.stringify(s),headers:k})})}function It(o){return i(this,null,function*(){let{env:t,token:e,dmID:n}=o;h({env:t,dmID:n});const s=m({dataManagerID:n}),r=y(`?${s}`,t);return f(r,{token:e,rawRes:!0},{method:"DELETE",headers:k})})}function St(o){return i(this,null,function*(){let{env:t,token:e,dmID:n,value:s}=o;h({env:t,dmID:n,value:s});const r=m({dataManagerID:n}),a=y(`model?${r}`,t);return f(a,{token:e},{method:"POST",body:JSON.stringify(s),headers:k})})}function Ot(o){return i(this,null,function*(){let{env:t,token:e,dmID:n,modelID:s,value:r}=o;h({env:t,dmID:n,modelID:s,value:r});const a=m({dataManagerID:n,modelID:s}),d=y(`model?${a}`,t);return f(d,{token:e},{method:"PUT",body:JSON.stringify(r),headers:k})})}function Bt(o){return i(this,null,function*(){let{env:t,token:e,dmID:n,modelID:s}=o;h({env:t,dmID:n,modelID:s});const r=m({dataManagerID:n,modelID:s}),a=y(`model?${r}`,t);return f(a,{token:e,rawRes:!0},{method:"DELETE",headers:k})})}function Pt(o){return i(this,null,function*(){let{env:t,token:e,value:n}=o;h({env:t,value:n});const s=y("template",t);return f(s,{token:e},{method:"POST",body:JSON.stringify(n),headers:k})})}function _t(o){return i(this,null,function*(){let{env:t,token:e,dmID:n,value:s}=o;h({env:t,dmID:n,value:s});const r=m({dataManagerID:n}),a=y(`assetgroup?${r}`,t);return f(a,{token:e},{method:"POST",body:JSON.stringify(s),headers:k})})}function qt(o){return i(this,null,function*(){let{env:t,token:e,dmID:n,assetGroupID:s,value:r}=o;h({env:t,dmID:n,assetGroupID:s,value:r});const a=m({dataManagerID:n,assetGroupID:s}),d=y(`assetgroup?${a}`,t);return f(d,{token:e},{method:"PUT",body:JSON.stringify(r),headers:k})})}function Lt(o){return i(this,null,function*(){let{env:t,token:e,dmShortID:n,assetGroup:s,assetID:r,value:a}=o;h({env:t,dmShortID:n,assetGroup:s,assetID:r,value:a});const d=y(`a/${n}/${s}/${r}`,t);return f(d,{token:e},{method:"PUT",body:JSON.stringify(a),headers:k})})}function Mt(o){return i(this,null,function*(){let{env:t,token:e,dmID:n,clientID:s,value:r}=o;h({env:t,dmID:n,clientID:s,value:r});const a=m({dataManagerID:n,clientID:s}),d=y(`client?${a}`,t);return f(d,{token:e},{method:"PUT",body:JSON.stringify(r),headers:k})})}function jt(o){return i(this,null,function*(){let{env:t,token:e,dmID:n,value:s}=o;h({env:t,dmID:n,value:s});const r=m({dataManagerID:n}),a=y(`role?${r}`,t);return f(a,{token:e},{method:"POST",body:JSON.stringify(s),headers:k})})}function Ct(o){return i(this,null,function*(){let{env:t,token:e,dmID:n,roleID:s,value:r}=o;h({env:t,dmID:n,roleID:s,value:r});const a=m({dataManagerID:n,roleID:s}),d=y(`role?${a}`,t);return f(d,{token:e},{method:"PUT",body:JSON.stringify(r),headers:k})})}function Rt(o){return i(this,null,function*(){let{env:t,token:e,dmID:n,roleID:s}=o;h({env:t,dmID:n,roleID:s});const r=m({dataManagerID:n,roleID:s}),a=y(`role?${r}`,t);return f(a,{token:e,rawRes:!0},{method:"DELETE",headers:k})})}function Gt(o){return i(this,null,function*(){let{env:t,token:e,dmID:n,accountID:s,value:r}=o;h({env:t,dmID:n,accountID:s,value:r});const a=m({dataManagerID:n,accountID:s}),d=y(`account?${a}`,t);return f(d,{token:e},{method:"PUT",body:JSON.stringify(r),headers:k})})}function Nt(o){return i(this,null,function*(){let{env:t,token:e,dmID:n,accountID:s}=o;h({env:t,dmID:n,accountID:s});const r=m({dataManagerID:n,accountID:s}),a=y(`account?${r}`,t);return f(a,{token:e,rawRes:!0},{method:"DELETE",headers:k})})}function Jt(o){return i(this,null,function*(){let{env:t,token:e,options:n={}}=o;h({env:t});const s=m(n),r=y(`stats?${s}`,t);return f(r,{token:e})})}function Ut(o){return i(this,null,function*(){let{env:t,token:e,options:n={}}=o;h({env:t});const s=m(n),r=y(`entries?${s}`,t,"dm-history");return f(r,{token:e})})}function xt(o){return i(this,null,function*(){let{env:t,token:e,value:n}=o;h({env:t,value:n});const s=y("client",t,"accounts");return f(s,{token:e},{method:"POST",body:JSON.stringify(n),headers:k})})}function Ft(o){return i(this,null,function*(){let{env:t,token:e,clientID:n,value:s}=o;h({env:t,clientID:n,value:s});const r=m({clientID:n}),a=y(`client?${r}`,t,"accounts");return f(a,{token:e},{method:"PUT",body:JSON.stringify(s),headers:k})})}function Kt(o){return i(this,null,function*(){let{env:t,token:e,clientID:n}=o;h({env:t,clientID:n});const s=m({clientID:n}),r=y(`client?${s}`,t,"accounts");return f(r,{token:e,rawRes:!0},{method:"DELETE",headers:k})})}function Vt(o){return i(this,null,function*(){let{env:t,token:e,value:n}=o;h({env:t,value:n});const s=y("group",t,"accounts");return f(s,{token:e},{method:"POST",body:JSON.stringify(n),headers:k})})}function zt(o){return i(this,null,function*(){let{env:t,token:e,groupID:n,value:s}=o;h({env:t,groupID:n,value:s});const r=m({groupID:n}),a=y(`group?${r}`,t,"accounts");return f(a,{token:e},{method:"PUT",body:JSON.stringify(s),headers:k})})}function Ht(o){return i(this,null,function*(){let{env:t,token:e,groupID:n}=o;h({env:t,groupID:n});const s=m({groupID:n}),r=y(`group?${s}`,t,"accounts");return f(r,{token:e,rawRes:!0},{method:"DELETE",headers:k})})}function Qt(o){return i(this,null,function*(){var a,d;let{env:t,token:e,value:n}=o;h({env:t,value:n});const s=y("invite",t,"accounts"),r=yield f(s,{token:e},{method:"POST",body:JSON.stringify(n),headers:k});return(d=(a=r==null?void 0:r._embedded)==null?void 0:a["ec:invite"])!=null?d:r})}function Wt(o){return i(this,null,function*(){let{env:t,token:e,inviteID:n,value:s}=o;h({env:t,inviteID:n,value:s});const r=m({invite:n}),a=y(`invite?${r}`,t,"accounts");return f(a,{token:e},{method:"PUT",body:JSON.stringify(s),headers:k})})}function Xt(o){return i(this,null,function*(){let{env:t,token:e,inviteID:n}=o;h({env:t,inviteID:n});const s=m({invite:n}),r=y(`invite?${s}`,t,"accounts");return f(r,{token:e,rawRes:!0},{method:"DELETE",headers:k})})}function Yt(o){return i(this,null,function*(){let{env:t,token:e,accountID:n,value:s}=o;h({env:t,accountID:n,value:s});const r=m({accountID:n}),a=y(`account?${r}`,t,"accounts");return f(a,{token:e},{method:"PUT",body:JSON.stringify(s),headers:k})})}function Zt(o){return i(this,null,function*(){var u,g;let{env:t,token:e,accountID:n}=o;h({env:t,accountID:n});const s=m({accountID:n}),r=y(`account/tokens?${s}`,t,"accounts"),a=yield f(r,{token:e});let d=(g=(u=a==null?void 0:a._embedded)==null?void 0:u["ec:account/token"])!=null?g:[];return Array.isArray(d)?d:[d]})}function te(o){return i(this,null,function*(){let{env:t,token:e,accountID:n}=o;h({env:t,accountID:n});const s=m({accountID:n}),r=y(`account/tokens?${s}`,t,"accounts");return f(r,{token:e},{method:"POST",headers:k})})}function ee(o){return i(this,null,function*(){let{env:t,token:e,accountID:n,accessTokenID:s}=o;h({env:t,accountID:n,accessTokenID:s});const r=m({accessTokenID:s,accountID:n}),a=y(`account/tokens?${r}`,t,"accounts");return f(a,{token:e,rawRes:!0},{method:"DELETE",headers:k})})}const S=Object.freeze(Object.defineProperty({__proto__:null,assetList:lt,createAccountClient:xt,createAsset:ht,createAssetGroup:_t,createAssets:gt,createDatamanager:bt,createEntry:nt,createGroup:Vt,createInvite:Qt,createModel:St,createRole:jt,createTemplate:Pt,createToken:te,deleteAccountClient:Kt,deleteAsset:ft,deleteDatamanager:It,deleteDmAccount:Nt,deleteEntry:q,deleteEntryObject:at,deleteGroup:Ht,deleteInvite:Xt,deleteModel:Bt,deleteRole:Rt,deleteToken:ee,dmList:pt,editAccount:Yt,editAccountClient:Ft,editAsset:Lt,editAssetGroup:qt,editDatamanager:vt,editDmAccount:Gt,editDmClient:Mt,editEntry:_,editEntryObject:ct,editGroup:zt,editInvite:Wt,editModel:Ot,editRole:Ct,entryList:P,fileVariant:yt,filterOptions:rt,getAsset:dt,getDatamanager:kt,getEcAuthKey:Y,getEntry:et,getEntryAsset:ut,getEntryEnv:M,getEntryShortID:O,getFileVariants:mt,getHistory:Ut,getPublicAuthKey:X,getSchema:st,getStats:Jt,listTokens:Zt,loginEc:H,loginPublic:z,logoutEc:W,logoutPublic:Q,mapEntries:ot,modelList:Tt,publicApi:tt,raw:Dt,resourceDelete:At,resourceEdit:Et,resourceGet:wt,resourceList:$t,sdkOptions:L},Symbol.toStringTag,{value:"Module"})),{entryList:U,mapEntries:ce,getEntry:ue,getAsset:de,assetList:x,createAsset:le,createAssets:he,deleteAsset:ge,createEntry:fe,editEntry:F,deleteEntry:ye,getSchema:me,loginPublic:ke,loginEc:pe,logoutEc:Te,logoutPublic:$e,getEcAuthKey:v,getPublicAuthKey:I,dmList:we,modelList:Ee,publicApi:Ae,getDatamanager:De,resourceList:be,resourceGet:ve,resourceEdit:Ie,resourceDelete:Se,raw:Oe,createDatamanager:Be,editDatamanager:Pe,deleteDatamanager:_e,createModel:qe,editModel:Le,deleteModel:Me,createTemplate:je,createAssetGroup:Ce,editAssetGroup:Re,editAsset:Ge,editDmClient:Ne,createRole:Je,editRole:Ue,deleteRole:xe,editDmAccount:Fe,deleteDmAccount:Ke,getStats:Ve,getHistory:ze,createAccountClient:He,editAccountClient:Qe,deleteAccountClient:We,createGroup:Xe,editGroup:Ye,deleteGroup:Ze,createInvite:tn,editInvite:en,deleteInvite:nn,editAccount:on,listTokens:sn,createToken:rn,deleteToken:an}=S;function cn(o){const{action:t}=o;if(h({action:t}),!S[t])throw new Error(`"${t}" does not exist! try one of ${Object.keys(S).join(", ")}`);return S[t](o)}function K(o){if(!o||typeof o!="object")return o;const s=o,{_links:t,_embedded:e}=s;return J(s,["_links","_embedded"])}function un(o){return!o||typeof o!="object"?o:Array.isArray(o.items)?l(c({},o),{items:o.items.map(K)}):K(o)}class D{constructor(t={}){if(!t.storageAdapter){let e=new Map;t.storageAdapter={get:n=>e.get(n),set:(n,s)=>e.set(n,s),remove:n=>e.delete(n)}}this.config=t}set(t){return new D(c(c({},this.config),t))}entries(){return i(this,arguments,function*(t={}){const e=yield this.getBestToken();return U(l(c({},this.config),{options:t,token:e}))})}entryList(t){return i(this,null,function*(){const e=yield this.getBestToken();return U(l(c({},this.config),{options:t,token:e})).then(n=>this.maybeClean(n))})}mapEntries(n){return i(this,arguments,function*(t,e={}){const s=yield this.getBestToken();return ce(l(c({},this.config),{options:e,token:s}),t)})}getEntry(t){return i(this,null,function*(){const e=yield this.getBestToken();return ue(l(c({},this.config),{entryID:t,token:e})).then(n=>this.maybeClean(n))})}editEntrySafe(t,e){return i(this,null,function*(){const n=yield this.getBestToken();return F(l(c({},this.config),{entryID:t,token:n,value:e,safePut:!0})).then(s=>this.maybeClean(s))})}getSchema(){return i(this,null,function*(){return me(this.config)})}assets(t){return i(this,null,function*(){const e=yield this.getBestToken();return x(l(c({},this.config),{options:t,token:e}))})}assetList(t){return i(this,null,function*(){const e=yield this.getBestToken();return x(l(c({},this.config),{options:t,token:e}))})}createAsset(t){return i(this,null,function*(){const{file:e,name:n,options:s}=t,r=yield this.getBestToken();return le(l(c({},this.config),{file:e,name:n,options:s,token:r}))})}createAssets(t){return i(this,null,function*(){const{files:e,options:n}=t,s=yield this.getBestToken();return he(l(c({},this.config),{files:e,options:n,token:s}))})}deleteAsset(t){return i(this,null,function*(){const e=yield this.getBestToken();return ge(l(c({},this.config),{token:e,assetID:t}))})}getAsset(t){return i(this,null,function*(){const e=yield this.getBestToken();return de(l(c({},this.config),{assetID:t,token:e}))})}createEntry(t){return i(this,null,function*(){const e=yield this.getBestToken();return fe(l(c({},this.config),{token:e,value:t})).then(n=>this.maybeClean(n))})}editEntry(t,e){return i(this,null,function*(){const n=yield this.getBestToken();return F(l(c({},this.config),{entryID:t,token:n,value:e})).then(s=>this.maybeClean(s))})}deleteEntry(t){return i(this,null,function*(){const e=yield this.getBestToken();return ye(l(c({},this.config),{token:e,entryID:t}))})}resourceList(t){return i(this,null,function*(){const e=yield this.getBestToken();return be(l(c({},this.config),{options:t,token:e}))})}resourceGet(t){return i(this,null,function*(){const e=yield this.getBestToken();return ve(l(c({},this.config),{options:t,token:e}))})}resourceEdit(t,e){return i(this,null,function*(){const n=yield this.getBestToken();return Ie(l(c({},this.config),{options:t,token:n,value:e}))})}resourceDelete(t){return i(this,null,function*(){const e=yield this.getBestToken();return Se(l(c({},this.config),{options:t,token:e}))})}raw(t,e){return i(this,null,function*(){const n=yield this.getBestToken();return Oe(l(c({},this.config),{options:t,token:n}),e)})}createDatamanager(t){return i(this,null,function*(){const e=yield this.getBestToken();return Be(l(c({},this.config),{token:e,value:t}))})}editDatamanager(t,e){return i(this,null,function*(){const n=yield this.getBestToken();return Pe(l(c({},this.config),{token:n,dmID:t,value:e}))})}deleteDatamanager(t){return i(this,null,function*(){const e=yield this.getBestToken();return _e(l(c({},this.config),{token:e,dmID:t}))})}createModel(t){return i(this,null,function*(){const e=yield this.getBestToken();return qe(l(c({},this.config),{token:e,value:t}))})}editModel(t,e){return i(this,null,function*(){const n=yield this.getBestToken();return Le(l(c({},this.config),{token:n,modelID:t,value:e}))})}deleteModel(t){return i(this,null,function*(){const e=yield this.getBestToken();return Me(l(c({},this.config),{token:e,modelID:t}))})}createTemplate(t){return i(this,null,function*(){const e=yield this.getBestToken();return je(l(c({},this.config),{token:e,value:t}))})}createAssetGroup(t){return i(this,null,function*(){const e=yield this.getBestToken();return Ce(l(c({},this.config),{token:e,value:t}))})}editAssetGroup(t,e){return i(this,null,function*(){const n=yield this.getBestToken();return Re(l(c({},this.config),{token:n,assetGroupID:t,value:e}))})}editAsset(t,e){return i(this,null,function*(){const n=yield this.getBestToken();return Ge(l(c({},this.config),{token:n,assetID:t,value:e}))})}editDmClient(t,e){return i(this,null,function*(){const n=yield this.getBestToken();return Ne(l(c({},this.config),{token:n,clientID:t,value:e}))})}createRole(t){return i(this,null,function*(){const e=yield this.getBestToken();return Je(l(c({},this.config),{token:e,value:t}))})}editRole(t,e){return i(this,null,function*(){const n=yield this.getBestToken();return Ue(l(c({},this.config),{token:n,roleID:t,value:e}))})}deleteRole(t){return i(this,null,function*(){const e=yield this.getBestToken();return xe(l(c({},this.config),{token:e,roleID:t}))})}editDmAccount(t,e){return i(this,null,function*(){const n=yield this.getBestToken();return Fe(l(c({},this.config),{token:n,accountID:t,value:e}))})}deleteDmAccount(t){return i(this,null,function*(){const e=yield this.getBestToken();return Ke(l(c({},this.config),{token:e,accountID:t}))})}getStats(){return i(this,arguments,function*(t={}){const e=yield this.getBestToken();return Ve(l(c({},this.config),{token:e,options:t}))})}getHistory(){return i(this,arguments,function*(t={}){const e=yield this.getBestToken();return ze(l(c({},this.config),{token:e,options:t}))})}createAccountClient(t){return i(this,null,function*(){const e=yield this.getBestToken();return He(l(c({},this.config),{token:e,value:t}))})}editAccountClient(t,e){return i(this,null,function*(){const n=yield this.getBestToken();return Qe(l(c({},this.config),{token:n,clientID:t,value:e}))})}deleteAccountClient(t){return i(this,null,function*(){const e=yield this.getBestToken();return We(l(c({},this.config),{token:e,clientID:t}))})}createGroup(t){return i(this,null,function*(){const e=yield this.getBestToken();return Xe(l(c({},this.config),{token:e,value:t}))})}editGroup(t,e){return i(this,null,function*(){const n=yield this.getBestToken();return Ye(l(c({},this.config),{token:n,groupID:t,value:e}))})}deleteGroup(t){return i(this,null,function*(){const e=yield this.getBestToken();return Ze(l(c({},this.config),{token:e,groupID:t}))})}createInvite(t){return i(this,null,function*(){const e=yield this.getBestToken();return tn(l(c({},this.config),{token:e,value:t}))})}editInvite(t,e){return i(this,null,function*(){const n=yield this.getBestToken();return en(l(c({},this.config),{token:n,inviteID:t,value:e}))})}deleteInvite(t){return i(this,null,function*(){const e=yield this.getBestToken();return nn(l(c({},this.config),{token:e,inviteID:t}))})}editAccount(t,e){return i(this,null,function*(){const n=yield this.getBestToken();return on(l(c({},this.config),{token:n,accountID:t,value:e}))})}listTokens(t){return i(this,null,function*(){const e=yield this.getBestToken();return sn(l(c({},this.config),{token:e,accountID:t}))})}createToken(t){return i(this,null,function*(){const e=yield this.getBestToken();return rn(l(c({},this.config),{token:e,accountID:t}))})}deleteToken(t,e){return i(this,null,function*(){const n=yield this.getBestToken();return an(l(c({},this.config),{token:n,accountID:t,accessTokenID:e}))})}storageAdapter(t){return this.set({storageAdapter:t})}removeToken(t){if(!this.config.storageAdapter)throw new Error("cannot removeToken: no storageAdapter defined!");const{remove:e}=this.config.storageAdapter;e(t)}getToken(t){if(!this.config.storageAdapter)throw new Error("cannot getAuth: no storageAdapter defined!");const{get:e}=this.config.storageAdapter;return e(t)}getPublicToken(){return this.config.token||this.getToken(I(this.config))}getEcToken(){return this.config.token||this.getToken(v(this.config))}setToken(t,e){if(!this.config.storageAdapter)throw new Error("cannot setEcToken: no storageAdapter defined!");return this.config.storageAdapter.set(t,e)}setEcToken(t){this.setToken(v(this.config),t)}setPublicToken(t){this.setToken(I(this.config),t)}loginEc(t){return pe(c(c({},this.config),t)).then(e=>this.setToken(v(this.config),e.token))}loginPublic(t){return ke(c(c({},this.config),t)).then(e=>this.setToken(I(this.config),e.token))}logoutPublic(){const t=this.getPublicToken();return $e(l(c({},this.config),{token:t})).then(()=>this.removeToken(I(this.config)))}logoutEc(){const t=this.getEcToken();return Te(l(c({},this.config),{token:t})).then(()=>this.removeToken(v(this.config)))}hasPublicToken(){return!!this.getPublicToken()}hasEcToken(){return!!this.getEcToken()}hasAnyToken(){return!!this.getEcToken()||!!this.getPublicToken()}getBestToken(){try{return this.getEcToken()||this.getPublicToken()}catch(t){return}}clean(t=!0){return this.set({_clean:t})}maybeClean(t){return this.config._clean?un(t):t}model(t){return this.set({model:t})}token(t){return this.set({token:t})}dmShortID(t){return this.set({dmShortID:t})}dm(t){return this.dmShortID(t)}dmID(t){return this.set({dmID:t})}assetGroup(t){return this.set({assetGroup:t})}assetgroup(t){return this.assetGroup(t)}subdomain(t){return this.set({subdomain:t})}resource(t){return this.set({resource:t})}route(t){return this.set({route:t})}publicApi(){return Ae(this.config)}getDatamanager(t){return i(this,null,function*(){const e=yield this.getBestToken();return De(l(c({},this.config),{dmID:t,token:e}))})}dmList(){return i(this,arguments,function*(t={}){const e=yield this.getBestToken();return we(l(c({},this.config),{options:t,token:e}))})}modelList(){return i(this,arguments,function*(t={}){const e=yield this.getBestToken();return Ee(l(c({},this.config),{options:t,token:e}))})}}const dn=o=>new D({env:o}),ln=o=>new D({env:o});exports.Fdk=D;exports.act=cn;exports.apiURL=y;exports.apis=A;exports.assetList=lt;exports.createAccountClient=xt;exports.createAsset=ht;exports.createAssetGroup=_t;exports.createAssets=gt;exports.createDatamanager=bt;exports.createEntry=nt;exports.createGroup=Vt;exports.createInvite=Qt;exports.createModel=St;exports.createRole=jt;exports.createTemplate=Pt;exports.createToken=te;exports.deleteAccountClient=Kt;exports.deleteAsset=ft;exports.deleteDatamanager=It;exports.deleteDmAccount=Nt;exports.deleteEntry=q;exports.deleteEntryObject=at;exports.deleteGroup=Ht;exports.deleteInvite=Xt;exports.deleteModel=Bt;exports.deleteRole=Rt;exports.deleteToken=ee;exports.dmList=pt;exports.editAccount=Yt;exports.editAccountClient=Ft;exports.editAsset=Lt;exports.editAssetGroup=qt;exports.editDatamanager=vt;exports.editDmAccount=Gt;exports.editDmClient=Mt;exports.editEntry=_;exports.editEntryObject=ct;exports.editGroup=zt;exports.editInvite=Wt;exports.editModel=Ot;exports.editRole=Ct;exports.entryList=P;exports.expect=h;exports.fdk=dn;exports.fetcher=f;exports.fileVariant=yt;exports.filterOptions=rt;exports.getAsset=dt;exports.getDatamanager=kt;exports.getEcAuthKey=Y;exports.getEntry=et;exports.getEntryAsset=ut;exports.getEntryEnv=M;exports.getEntryShortID=O;exports.getFileVariants=mt;exports.getHistory=Ut;exports.getPublicAuthKey=X;exports.getSchema=st;exports.getStats=Jt;exports.listTokens=Zt;exports.loginEc=H;exports.loginPublic=z;exports.logoutEc=W;exports.logoutPublic=Q;exports.mapEntries=ot;exports.modelList=Tt;exports.publicApi=tt;exports.query=m;exports.raw=Dt;exports.resourceDelete=At;exports.resourceEdit=Et;exports.resourceGet=wt;exports.resourceList=$t;exports.sdk=ln;exports.sdkOptions=L;
3
+ ${g.verbose}`;throw new Error(p)}throw new Error(`unexpected fetch error: ${a.statusText}`)}if(r)return a;if(a.status===204)return;const d=yield a.text();return d?JSON.parse(d):void 0})}const D={datamanager:{live:"https://datamanager.entrecode.de/",stage:"https://datamanager.cachena.entrecode.de/"},accounts:{live:"https://accounts.entrecode.de/",stage:"https://accounts.cachena.entrecode.de/"},appserver:{live:"https://appserver.entrecode.de/",stage:"https://appserver.cachena.entrecode.de/"},"dm-history":{live:"https://dm-history.entrecode.de/",stage:"https://dm-history.cachena.entrecode.de/"}};function y(o,t="stage",e="datamanager"){const n=D[e];if(!n)throw new Error(`subdomain "${e}" not found. Try one of ${Object.keys(D).join(", ")}`);const s=n[t];if(!s)throw new Error(`env "${t}" not found. Try one of ${Object.keys(n[t]).join(", ")}`);return s+o}function m(o,t=!0){return Object.entries(o).sort((e,n)=>e[0].localeCompare(n[0])).map(([e,n])=>`${e}=${n}`).join("&")}function h(o){Object.entries(o).forEach(([t,e])=>{if(e===void 0)throw new Error(`expected ${t} to be set!`)})}const V={stage:"https://accounts.cachena.entrecode.de/",live:"https://accounts.entrecode.de/"};function z(o){return i(this,null,function*(){let{env:t,dmShortID:e,email:n,password:s}=o;h({env:t,dmShortID:e,email:n,password:s});const r=y(`api/${e}/_auth/login?clientID=rest`,t);return yield f(r,{},{method:"POST",body:JSON.stringify({email:n,password:s}),headers:{"Content-Type":"application/json"}})})}function H(o){return i(this,null,function*(){let{env:t,email:e,password:n}=o;h({env:t,email:e,password:n});const s=`${V[t]}auth/login?clientID=rest`;return yield f(s,{},{method:"POST",body:JSON.stringify({email:e,password:n}),headers:{"Content-Type":"application/json"}})})}function Q(o){return i(this,null,function*(){let{dmShortID:t,env:e,token:n}=o;h({dmShortID:t,env:e,token:n});const s=y(`api/${t}/_auth/logout?clientID=rest&token=${n}`,e);return yield f(s,{rawRes:!0},{method:"POST"})})}function W(o){return i(this,null,function*(){let{env:t,token:e}=o;h({env:t,token:e});const n=`${V[t]}auth/logout?clientID=rest`;return yield f(n,{rawRes:!0,token:e},{method:"POST"})})}function X({dmShortID:o}){return h({dmShortID:o}),o}function Y({env:o}){return h({env:o}),o}let ie=["created","creator","id","modified","private","_created","_creator","_embedded","_entryTitle","_id","_links","_modelTitle","_modelTitleField","_modified"];function Z(o){let t={};for(let e in o)ie.includes(e)||(t[e]=o[e]);return t}function ae(o){return JSON.parse(JSON.stringify(o))}function tt(o){return i(this,null,function*(){let{env:t,dmShortID:e}=o;h({env:t,dmShortID:e});const n=y(`api/${e}`,t);return f(n,o)})}function P(o){return i(this,null,function*(){let{env:t,dmShortID:e,model:n,options:s={}}=o;h({env:t,dmShortID:e,model:n}),s=c({size:50,page:1,_list:!0},s);const r=m(s),a=y(`api/${e}/${n}?${r}`,t),{count:d,total:u,_embedded:g}=yield f(a,o);let p=g?g[`${e}:${n}`]:[];return p=Array.isArray(p)?p:[p],{count:d,total:u,items:p}})}function et({env:o,dmShortID:t,model:e,entryID:n,token:s}){h({env:o,dmShortID:t,model:e,entryID:n});const r=m({_id:n}),a=y(`api/${t}/${e}?${r}`,o);return f(a,{token:s})}function nt(r){return i(this,arguments,function*({env:o,dmShortID:t,model:e,value:n,token:s}){h({env:o,dmShortID:t,model:e,value:n});const a=y(`api/${t}/${e}`,o);return yield f(a,{token:s},{method:"POST",body:JSON.stringify(n),headers:{"Content-Type":"application/json"}})})}function _(d){return i(this,arguments,function*({env:o,dmShortID:t,model:e,entryID:n,value:s,token:r,safePut:a=!1}){h({env:o,dmShortID:t,model:e,entryID:n,value:s});const u={"Content-Type":"application/json"};if(a){if(!("_modified"in s))throw new Error("expected _modified to be set!");u["If-Unmodified-Since"]=new Date(s._modified).toUTCString()}const g=y(`api/${t}/${e}?_id=${n}`,o);return s=ae(s),s=Z(s),yield f(g,{token:r},{method:"PUT",headers:u,body:JSON.stringify(s)})})}function q({env:o,dmShortID:t,model:e,entryID:n,token:s}){h({env:o,dmShortID:t,model:e,entryID:n});const r=y(`api/${t}/${e}?_id=${n}`,o);return f(r,{token:s,rawRes:!0},{method:"DELETE",headers:{"Content-Type":"application/json"}})}function ot(o,t){return i(this,null,function*(){let{env:e,dmShortID:n,model:s,options:r={}}=o;h({env:e,dmShortID:n,model:s}),o.options=c({size:50,page:1,_list:!0},r);let a=0,d,u=[];for(;d===void 0||a<d;){const g=yield P(o);for(let p of g.items)u.push(yield t(p));a+=g.items.length,d=g.total,o.options.page++}return u})}function st(s){return i(this,arguments,function*({env:o,dmShortID:t,model:e,withMetadata:n}){var p,T,w,j,C;h({env:o,dmShortID:t,model:e});const r=y(`api/schema/${t}/${e}`,o),a=yield f(r),d=(p=a==null?void 0:a.allOf)==null?void 0:p[1];if(typeof d.properties!="object")throw new Error(`getSchema: ${r} returned unexpected format: ${JSON.stringify(a)}`);const{properties:u}=d,g=Z(u);for(let E in g){let $=g[E];if($.required=d.required.includes(E),(T=g[E])!=null&&T.oneOf&&((w=g[E])==null||delete w.oneOf),(j=$.title)!=null&&j.includes("<")&&((C=$.title)!=null&&C.includes(">"))){const B=$.title.split("<")[1].slice(0,-1),ne=$.title.split("<")[0];$.type=ne,B.includes(":")?$.resource=B.split(":")[1]:$.resource=B}else["asset","entry","assets","entries"].includes($.title)?($.type=$.title,$.resource=null):$.type=$.title;delete g[E].title}if(n){const E=u._modelTitle.title,$=u._modelTitleField.title;return{properties:g,meta:{modelTitleField:$,modelTitle:E}}}return g})}function L(o){return Object.entries(o).map(([t,e])=>typeof e!="object"?{[t]:String(e)}:c(c(c(c(c(c(c({},e.sort&&{sort:Array.isArray(e)?e.join(","):e}),e.search&&{[t+"~"]:e.search}),e.notNull&&{[t+"!"]:""}),e.null&&{[t]:""}),e.any&&{[t]:e.any.join(",")}),e.from&&{[t+"From"]:e.from}),e.to&&{[t+"To"]:e.to})).reduce((t,e)=>c(c({},t),e),{})}const rt=L;function O(o){return o._links.collection.href.split("/").slice(-2)[0]}function M(o){const t=o._links.collection.href.split("api/")[0];return Object.keys(D.datamanager).find(n=>D.datamanager[n]===t)}const it=o=>{const t=O(o),e=M(o),n=o._modelTitle,s=o.id;return{dmShortID:t,env:e,model:n,entryID:s}},at=o=>q(it(o)),ct=(o,t)=>_(l(c({},it(o)),{value:t}));function ut(o,t){const e=O(t);return t._embedded[`${e}:${t._modelTitle}/${o}/asset`]}function dt(r){return i(this,arguments,function*({env:o,dmShortID:t,assetGroup:e,assetID:n,token:s}){h({env:o,dmShortID:t,assetGroup:e,assetID:n});const a=m({assetID:n}),d=y(`a/${t}/${e}?${a}`,o),{_embedded:u}=yield f(d,{token:s});return u?u["ec:dm-asset"]:void 0})}function lt(o){return i(this,null,function*(){let{env:t,dmShortID:e,assetGroup:n,token:s,options:r={}}=o;h({env:t,dmShortID:e,assetGroup:n}),r=c({size:50,page:1,_list:!0},r);const a=m(r),d=y(`a/${e}/${n}?${a}`,t),{count:u,total:g,_embedded:p}=yield f(d,{token:s});let T=p?p["ec:dm-asset"]:[];return T=Array.isArray(T)?T:[T],{count:u,total:g,items:T}})}function ht(d){return i(this,arguments,function*({env:o,dmShortID:t,assetGroup:e,token:n,file:s,name:r,options:a}){h({env:o,dmShortID:t,assetGroup:e,file:s});const u=y(`a/${t}/${e}`,o),g=new FormData;return g.append("file",s,r),a&&Object.keys(a).forEach(T=>{g.append(T,a[T])}),(yield f(u,{token:n},{method:"POST",body:g}))._embedded["ec:dm-asset"]})}function gt(r){return i(this,arguments,function*({env:o,dmShortID:t,assetGroup:e,files:n,options:s}){h({env:o,dmShortID:t,assetGroup:e,files:n});const a=y(`a/${t}/${e}`,o),d=new FormData;n.forEach(g=>{d.append("file",g)}),s&&Object.keys(s).forEach(g=>{d.append(g,s[g])});const u=yield f(a,{},{method:"POST",body:d});return Array.isArray(u._embedded["ec:dm-asset"])?u._embedded["ec:dm-asset"]:[u._embedded["ec:dm-asset"]]})}function ft(r){return i(this,arguments,function*({env:o,dmShortID:t,assetGroup:e,assetID:n,token:s}){h({env:o,dmShortID:t,assetGroup:e,assetID:n});const a=y(`a/${t}/${e}/${n}`,o);yield f(a,{token:s,rawRes:!0},{method:"DELETE"})})}function yt(o,t,e=!1){var a,d,u;let n,s;const r=e?o==null?void 0:o.thumbnails:o==null?void 0:o.fileVariants;return r==null||r.forEach(g=>{const{resolution:{width:p,height:T}}=g,w=Math.abs(Math.max(p,T)-t);(!s||w<s)&&(s=w,n=g)}),(u=(d=n==null?void 0:n.url)!=null?d:(a=o==null?void 0:o.file)==null?void 0:a.url)!=null?u:null}function mt(o="stage",t,e,n,s=!1){const r=Math.max(n.file.resolution.width,n.file.resolution.height),a=e.filter(u=>u<r),d=`https://datamanager${o==="stage"?".cachena":""}.entrecode.de`;return s?a.map(u=>{const g=n.thumbnails.find(w=>u===w.dimension),p=`${d}/t/${t}/${n.assetID}/${u}`,T=g?g.url:p;return{size:u,url:T,generated:g}}):a.map(u=>{const g=n.fileVariants.find(w=>u===Math.max(w.resolution.width,w.resolution.height)),p=`${d}/f/${t}/${n.assetID}/${u}`,T=g?g.url:p;return{size:u,url:T,generated:g}})}const k={"Content-Type":"application/json"};function kt(o){return i(this,null,function*(){let{env:t,dmID:e,token:n}=o;h({env:t,dmID:e});const s=y(`?dataManagerID=${e}`,t);return f(s,{token:n})})}function pt(o){return i(this,null,function*(){let{env:t,options:e={}}=o;h({env:t}),e=c({size:25,page:1,_list:!0},e);const n=m(e),s=y(`?${n}`,t),{count:r,total:a,_embedded:d}=yield f(s,o);let u=d?d["ec:datamanager"]:[];return u=Array.isArray(u)?u:[u],{count:r,total:a,items:u}})}function Tt(o){return i(this,null,function*(){let{env:t,dmID:e,options:n={}}=o;h({env:t,dmID:e}),n=c({size:25,dataManagerID:e,page:1,_list:!0},n);const s=m(n),r=y(`model?${s}`,t),{count:a,total:d,_embedded:u}=yield f(r,o);let g=u?u["ec:model"]:[];return g=Array.isArray(g)?g:[g],{count:a,total:d,items:g}})}function $t(o){return i(this,null,function*(){let{env:t,resource:e,options:n={},subdomain:s="datamanager"}=o;h({env:t,subdomain:s,resource:e}),n=c({size:25,page:1,_list:!0},n);const r=m(n),a=y(`${e}?${r}`,t,s),{count:d,total:u,_embedded:g}=yield f(a,o);let p=g?g[Object.keys(g)[0]]:[];return p=Array.isArray(p)?p:[p],{count:d,total:u,items:p}})}function wt(o){return i(this,null,function*(){let{env:t,resource:e,options:n={},subdomain:s="datamanager"}=o;h({env:t,subdomain:s,resource:e});const r=m(n),a=y(`${e}?${r}`,t,s);return f(a,o)})}function Et(o){return i(this,null,function*(){let{env:t,resource:e,options:n={},subdomain:s="datamanager",value:r}=o;h({env:t,subdomain:s,resource:e,value:r});const a=m(n),d=y(`${e}?${a}`,t,s);return f(d,o,{method:"PUT",body:JSON.stringify(r),headers:k})})}function At(o){return i(this,null,function*(){let{env:t,resource:e,options:n={},subdomain:s="datamanager"}=o;h({env:t,subdomain:s,resource:e});const r=m(n),a=y(`${e}?${r}`,t,s);return f(a,l(c({},o),{rawRes:!0}),{method:"DELETE",headers:k})})}function Dt(e){return i(this,arguments,function*(o,t={}){let{env:n,route:s,options:r={},subdomain:a="datamanager"}=o;h({env:n,subdomain:a,route:s}),r=c({},r);const d=m(r),u=y(`${s}?${d}`,n,a);return f(u,o,t)})}function bt(o){return i(this,null,function*(){let{env:t,token:e,value:n}=o;h({env:t,value:n});const s=y("",t);return f(s,{token:e},{method:"POST",body:JSON.stringify(n),headers:k})})}function vt(o){return i(this,null,function*(){let{env:t,token:e,dmID:n,value:s}=o;h({env:t,dmID:n,value:s});const r=m({dataManagerID:n}),a=y(`?${r}`,t);return f(a,{token:e},{method:"PUT",body:JSON.stringify(s),headers:k})})}function It(o){return i(this,null,function*(){let{env:t,token:e,dmID:n}=o;h({env:t,dmID:n});const s=m({dataManagerID:n}),r=y(`?${s}`,t);return f(r,{token:e,rawRes:!0},{method:"DELETE",headers:k})})}function St(o){return i(this,null,function*(){let{env:t,token:e,dmID:n,value:s}=o;h({env:t,dmID:n,value:s});const r=m({dataManagerID:n}),a=y(`model?${r}`,t);return f(a,{token:e},{method:"POST",body:JSON.stringify(s),headers:k})})}function Ot(o){return i(this,null,function*(){let{env:t,token:e,dmID:n,modelID:s,value:r}=o;h({env:t,dmID:n,modelID:s,value:r});const a=m({dataManagerID:n,modelID:s}),d=y(`model?${a}`,t);return f(d,{token:e},{method:"PUT",body:JSON.stringify(r),headers:k})})}function Bt(o){return i(this,null,function*(){let{env:t,token:e,dmID:n,modelID:s}=o;h({env:t,dmID:n,modelID:s});const r=m({dataManagerID:n,modelID:s}),a=y(`model?${r}`,t);return f(a,{token:e,rawRes:!0},{method:"DELETE",headers:k})})}function Pt(o){return i(this,null,function*(){let{env:t,token:e,value:n}=o;h({env:t,value:n});const s=y("template",t);return f(s,{token:e},{method:"POST",body:JSON.stringify(n),headers:k})})}function _t(o){return i(this,null,function*(){let{env:t,token:e,dmID:n,value:s}=o;h({env:t,dmID:n,value:s});const r=m({dataManagerID:n}),a=y(`assetgroup?${r}`,t);return f(a,{token:e},{method:"POST",body:JSON.stringify(s),headers:k})})}function qt(o){return i(this,null,function*(){let{env:t,token:e,dmID:n,assetGroupID:s,value:r}=o;h({env:t,dmID:n,assetGroupID:s,value:r});const a=m({dataManagerID:n,assetGroupID:s}),d=y(`assetgroup?${a}`,t);return f(d,{token:e},{method:"PUT",body:JSON.stringify(r),headers:k})})}function Lt(o){return i(this,null,function*(){let{env:t,token:e,dmShortID:n,assetGroup:s,assetID:r,value:a}=o;h({env:t,dmShortID:n,assetGroup:s,assetID:r,value:a});const d=y(`a/${n}/${s}/${r}`,t);return f(d,{token:e},{method:"PUT",body:JSON.stringify(a),headers:k})})}function Mt(o){return i(this,null,function*(){let{env:t,token:e,dmID:n,clientID:s,value:r}=o;h({env:t,dmID:n,clientID:s,value:r});const a=m({dataManagerID:n,clientID:s}),d=y(`client?${a}`,t);return f(d,{token:e},{method:"PUT",body:JSON.stringify(r),headers:k})})}function jt(o){return i(this,null,function*(){let{env:t,token:e,dmID:n,value:s}=o;h({env:t,dmID:n,value:s});const r=m({dataManagerID:n}),a=y(`role?${r}`,t);return f(a,{token:e},{method:"POST",body:JSON.stringify(s),headers:k})})}function Ct(o){return i(this,null,function*(){let{env:t,token:e,dmID:n,roleID:s,value:r}=o;h({env:t,dmID:n,roleID:s,value:r});const a=m({dataManagerID:n,roleID:s}),d=y(`role?${a}`,t);return f(d,{token:e},{method:"PUT",body:JSON.stringify(r),headers:k})})}function Rt(o){return i(this,null,function*(){let{env:t,token:e,dmID:n,roleID:s}=o;h({env:t,dmID:n,roleID:s});const r=m({dataManagerID:n,roleID:s}),a=y(`role?${r}`,t);return f(a,{token:e,rawRes:!0},{method:"DELETE",headers:k})})}function Gt(o){return i(this,null,function*(){let{env:t,token:e,dmID:n,accountID:s,value:r}=o;h({env:t,dmID:n,accountID:s,value:r});const a=m({dataManagerID:n,accountID:s}),d=y(`account?${a}`,t);return f(d,{token:e},{method:"PUT",body:JSON.stringify(r),headers:k})})}function Nt(o){return i(this,null,function*(){let{env:t,token:e,dmID:n,accountID:s}=o;h({env:t,dmID:n,accountID:s});const r=m({dataManagerID:n,accountID:s}),a=y(`account?${r}`,t);return f(a,{token:e,rawRes:!0},{method:"DELETE",headers:k})})}function Jt(o){return i(this,null,function*(){let{env:t,token:e,options:n={}}=o;h({env:t});const s=m(n),r=y(`stats?${s}`,t);return f(r,{token:e})})}function Ut(o){return i(this,null,function*(){let{env:t,token:e,options:n={}}=o;h({env:t});const s=m(n),r=y(`entries?${s}`,t,"dm-history");return f(r,{token:e})})}function xt(o){return i(this,null,function*(){let{env:t,token:e,value:n}=o;h({env:t,value:n});const s=y("client",t,"accounts");return f(s,{token:e},{method:"POST",body:JSON.stringify(n),headers:k})})}function Ft(o){return i(this,null,function*(){let{env:t,token:e,clientID:n,value:s}=o;h({env:t,clientID:n,value:s});const r=m({clientID:n}),a=y(`client?${r}`,t,"accounts");return f(a,{token:e},{method:"PUT",body:JSON.stringify(s),headers:k})})}function Kt(o){return i(this,null,function*(){let{env:t,token:e,clientID:n}=o;h({env:t,clientID:n});const s=m({clientID:n}),r=y(`client?${s}`,t,"accounts");return f(r,{token:e,rawRes:!0},{method:"DELETE",headers:k})})}function Vt(o){return i(this,null,function*(){let{env:t,token:e,value:n}=o;h({env:t,value:n});const s=y("group",t,"accounts");return f(s,{token:e},{method:"POST",body:JSON.stringify(n),headers:k})})}function zt(o){return i(this,null,function*(){let{env:t,token:e,groupID:n,value:s}=o;h({env:t,groupID:n,value:s});const r=m({groupID:n}),a=y(`group?${r}`,t,"accounts");return f(a,{token:e},{method:"PUT",body:JSON.stringify(s),headers:k})})}function Ht(o){return i(this,null,function*(){let{env:t,token:e,groupID:n}=o;h({env:t,groupID:n});const s=m({groupID:n}),r=y(`group?${s}`,t,"accounts");return f(r,{token:e,rawRes:!0},{method:"DELETE",headers:k})})}function Qt(o){return i(this,null,function*(){var a,d;let{env:t,token:e,value:n}=o;h({env:t,value:n});const s=y("invite",t,"accounts"),r=yield f(s,{token:e},{method:"POST",body:JSON.stringify(n),headers:k});return(d=(a=r==null?void 0:r._embedded)==null?void 0:a["ec:invite"])!=null?d:r})}function Wt(o){return i(this,null,function*(){let{env:t,token:e,inviteID:n,value:s}=o;h({env:t,inviteID:n,value:s});const r=m({invite:n}),a=y(`invite?${r}`,t,"accounts");return f(a,{token:e},{method:"PUT",body:JSON.stringify(s),headers:k})})}function Xt(o){return i(this,null,function*(){let{env:t,token:e,inviteID:n}=o;h({env:t,inviteID:n});const s=m({invite:n}),r=y(`invite?${s}`,t,"accounts");return f(r,{token:e,rawRes:!0},{method:"DELETE",headers:k})})}function Yt(o){return i(this,null,function*(){let{env:t,token:e,accountID:n,value:s}=o;h({env:t,accountID:n,value:s});const r=m({accountID:n}),a=y(`account?${r}`,t,"accounts");return f(a,{token:e},{method:"PUT",body:JSON.stringify(s),headers:k})})}function Zt(o){return i(this,null,function*(){var u,g;let{env:t,token:e,accountID:n}=o;h({env:t,accountID:n});const s=m({accountID:n}),r=y(`account/tokens?${s}`,t,"accounts"),a=yield f(r,{token:e});let d=(g=(u=a==null?void 0:a._embedded)==null?void 0:u["ec:account/token"])!=null?g:[];return Array.isArray(d)?d:[d]})}function te(o){return i(this,null,function*(){let{env:t,token:e,accountID:n}=o;h({env:t,accountID:n});const s=m({accountID:n}),r=y(`account/tokens?${s}`,t,"accounts");return f(r,{token:e},{method:"POST",headers:k})})}function ee(o){return i(this,null,function*(){let{env:t,token:e,accountID:n,accessTokenID:s}=o;h({env:t,accountID:n,accessTokenID:s});const r=m({accessTokenID:s,accountID:n}),a=y(`account/tokens?${r}`,t,"accounts");return f(a,{token:e,rawRes:!0},{method:"DELETE",headers:k})})}const S=Object.freeze(Object.defineProperty({__proto__:null,assetList:lt,createAccountClient:xt,createAsset:ht,createAssetGroup:_t,createAssets:gt,createDatamanager:bt,createEntry:nt,createGroup:Vt,createInvite:Qt,createModel:St,createRole:jt,createTemplate:Pt,createToken:te,deleteAccountClient:Kt,deleteAsset:ft,deleteDatamanager:It,deleteDmAccount:Nt,deleteEntry:q,deleteEntryObject:at,deleteGroup:Ht,deleteInvite:Xt,deleteModel:Bt,deleteRole:Rt,deleteToken:ee,dmList:pt,editAccount:Yt,editAccountClient:Ft,editAsset:Lt,editAssetGroup:qt,editDatamanager:vt,editDmAccount:Gt,editDmClient:Mt,editEntry:_,editEntryObject:ct,editGroup:zt,editInvite:Wt,editModel:Ot,editRole:Ct,entryList:P,fileVariant:yt,filterOptions:rt,getAsset:dt,getDatamanager:kt,getEcAuthKey:Y,getEntry:et,getEntryAsset:ut,getEntryEnv:M,getEntryShortID:O,getFileVariants:mt,getHistory:Ut,getPublicAuthKey:X,getSchema:st,getStats:Jt,listTokens:Zt,loginEc:H,loginPublic:z,logoutEc:W,logoutPublic:Q,mapEntries:ot,modelList:Tt,publicApi:tt,raw:Dt,resourceDelete:At,resourceEdit:Et,resourceGet:wt,resourceList:$t,sdkOptions:L},Symbol.toStringTag,{value:"Module"})),{entryList:U,mapEntries:ce,getEntry:ue,getAsset:de,assetList:x,createAsset:le,createAssets:he,deleteAsset:ge,createEntry:fe,editEntry:F,deleteEntry:ye,getSchema:me,loginPublic:ke,loginEc:pe,logoutEc:Te,logoutPublic:$e,getEcAuthKey:A,getPublicAuthKey:I,dmList:we,modelList:Ee,publicApi:Ae,getDatamanager:De,resourceList:be,resourceGet:ve,resourceEdit:Ie,resourceDelete:Se,raw:Oe,createDatamanager:Be,editDatamanager:Pe,deleteDatamanager:_e,createModel:qe,editModel:Le,deleteModel:Me,createTemplate:je,createAssetGroup:Ce,editAssetGroup:Re,editAsset:Ge,editDmClient:Ne,createRole:Je,editRole:Ue,deleteRole:xe,editDmAccount:Fe,deleteDmAccount:Ke,getStats:Ve,getHistory:ze,createAccountClient:He,editAccountClient:Qe,deleteAccountClient:We,createGroup:Xe,editGroup:Ye,deleteGroup:Ze,createInvite:tn,editInvite:en,deleteInvite:nn,editAccount:on,listTokens:sn,createToken:rn,deleteToken:an}=S;function cn(o){const{action:t}=o;if(h({action:t}),!S[t])throw new Error(`"${t}" does not exist! try one of ${Object.keys(S).join(", ")}`);return S[t](o)}function K(o){if(!o||typeof o!="object")return o;const s=o,{_links:t,_embedded:e}=s;return J(s,["_links","_embedded"])}function un(o){return!o||typeof o!="object"?o:Array.isArray(o.items)?l(c({},o),{items:o.items.map(K)}):K(o)}class b{constructor(t={}){if(!t.storageAdapter){let e=new Map;t.storageAdapter={get:n=>e.get(n),set:(n,s)=>e.set(n,s),remove:n=>e.delete(n)}}this.config=t}set(t){return new b(c(c({},this.config),t))}entries(){return i(this,arguments,function*(t={}){const e=yield this.getBestToken();return U(l(c({},this.config),{options:t,token:e}))})}entryList(t){return i(this,null,function*(){const e=yield this.getBestToken();return U(l(c({},this.config),{options:t,token:e})).then(n=>this.maybeClean(n))})}mapEntries(n){return i(this,arguments,function*(t,e={}){const s=yield this.getBestToken();return ce(l(c({},this.config),{options:e,token:s}),t)})}getEntry(t){return i(this,null,function*(){const e=yield this.getBestToken();return ue(l(c({},this.config),{entryID:t,token:e})).then(n=>this.maybeClean(n))})}editEntrySafe(t,e){return i(this,null,function*(){const n=yield this.getBestToken();return F(l(c({},this.config),{entryID:t,token:n,value:e,safePut:!0})).then(s=>this.maybeClean(s))})}getSchema(){return i(this,null,function*(){return me(this.config)})}assets(t){return i(this,null,function*(){const e=yield this.getBestToken();return x(l(c({},this.config),{options:t,token:e}))})}assetList(t){return i(this,null,function*(){const e=yield this.getBestToken();return x(l(c({},this.config),{options:t,token:e}))})}createAsset(t){return i(this,null,function*(){const{file:e,name:n,options:s}=t,r=yield this.getBestToken();return le(l(c({},this.config),{file:e,name:n,options:s,token:r}))})}createAssets(t){return i(this,null,function*(){const{files:e,options:n}=t,s=yield this.getBestToken();return he(l(c({},this.config),{files:e,options:n,token:s}))})}deleteAsset(t){return i(this,null,function*(){const e=yield this.getBestToken();return ge(l(c({},this.config),{token:e,assetID:t}))})}getAsset(t){return i(this,null,function*(){const e=yield this.getBestToken();return de(l(c({},this.config),{assetID:t,token:e}))})}createEntry(t){return i(this,null,function*(){const e=yield this.getBestToken();return fe(l(c({},this.config),{token:e,value:t})).then(n=>this.maybeClean(n))})}editEntry(t,e){return i(this,null,function*(){const n=yield this.getBestToken();return F(l(c({},this.config),{entryID:t,token:n,value:e})).then(s=>this.maybeClean(s))})}deleteEntry(t){return i(this,null,function*(){const e=yield this.getBestToken();return ye(l(c({},this.config),{token:e,entryID:t}))})}resourceList(t){return i(this,null,function*(){const e=yield this.getBestToken();return be(l(c({},this.config),{options:t,token:e}))})}resourceGet(t){return i(this,null,function*(){const e=yield this.getBestToken();return ve(l(c({},this.config),{options:t,token:e}))})}resourceEdit(t,e){return i(this,null,function*(){const n=yield this.getBestToken();return Ie(l(c({},this.config),{options:t,token:n,value:e}))})}resourceDelete(t){return i(this,null,function*(){const e=yield this.getBestToken();return Se(l(c({},this.config),{options:t,token:e}))})}raw(t,e){return i(this,null,function*(){const n=yield this.getBestToken();return Oe(l(c({},this.config),{options:t,token:n}),e)})}createDatamanager(t){return i(this,null,function*(){const e=yield this.getBestToken();return Be(l(c({},this.config),{token:e,value:t}))})}editDatamanager(t,e){return i(this,null,function*(){const n=yield this.getBestToken();return Pe(l(c({},this.config),{token:n,dmID:t,value:e}))})}deleteDatamanager(t){return i(this,null,function*(){const e=yield this.getBestToken();return _e(l(c({},this.config),{token:e,dmID:t}))})}createModel(t){return i(this,null,function*(){const e=yield this.getBestToken();return qe(l(c({},this.config),{token:e,value:t}))})}editModel(t,e){return i(this,null,function*(){const n=yield this.getBestToken();return Le(l(c({},this.config),{token:n,modelID:t,value:e}))})}deleteModel(t){return i(this,null,function*(){const e=yield this.getBestToken();return Me(l(c({},this.config),{token:e,modelID:t}))})}createTemplate(t){return i(this,null,function*(){const e=yield this.getBestToken();return je(l(c({},this.config),{token:e,value:t}))})}createAssetGroup(t){return i(this,null,function*(){const e=yield this.getBestToken();return Ce(l(c({},this.config),{token:e,value:t}))})}editAssetGroup(t,e){return i(this,null,function*(){const n=yield this.getBestToken();return Re(l(c({},this.config),{token:n,assetGroupID:t,value:e}))})}editAsset(t,e){return i(this,null,function*(){const n=yield this.getBestToken();return Ge(l(c({},this.config),{token:n,assetID:t,value:e}))})}editDmClient(t,e){return i(this,null,function*(){const n=yield this.getBestToken();return Ne(l(c({},this.config),{token:n,clientID:t,value:e}))})}createRole(t){return i(this,null,function*(){const e=yield this.getBestToken();return Je(l(c({},this.config),{token:e,value:t}))})}editRole(t,e){return i(this,null,function*(){const n=yield this.getBestToken();return Ue(l(c({},this.config),{token:n,roleID:t,value:e}))})}deleteRole(t){return i(this,null,function*(){const e=yield this.getBestToken();return xe(l(c({},this.config),{token:e,roleID:t}))})}editDmAccount(t,e){return i(this,null,function*(){const n=yield this.getBestToken();return Fe(l(c({},this.config),{token:n,accountID:t,value:e}))})}deleteDmAccount(t){return i(this,null,function*(){const e=yield this.getBestToken();return Ke(l(c({},this.config),{token:e,accountID:t}))})}getStats(){return i(this,arguments,function*(t={}){const e=yield this.getBestToken();return Ve(l(c({},this.config),{token:e,options:t}))})}getHistory(){return i(this,arguments,function*(t={}){const e=yield this.getBestToken();return ze(l(c({},this.config),{token:e,options:t}))})}createAccountClient(t){return i(this,null,function*(){const e=yield this.getBestToken();return He(l(c({},this.config),{token:e,value:t}))})}editAccountClient(t,e){return i(this,null,function*(){const n=yield this.getBestToken();return Qe(l(c({},this.config),{token:n,clientID:t,value:e}))})}deleteAccountClient(t){return i(this,null,function*(){const e=yield this.getBestToken();return We(l(c({},this.config),{token:e,clientID:t}))})}createGroup(t){return i(this,null,function*(){const e=yield this.getBestToken();return Xe(l(c({},this.config),{token:e,value:t}))})}editGroup(t,e){return i(this,null,function*(){const n=yield this.getBestToken();return Ye(l(c({},this.config),{token:n,groupID:t,value:e}))})}deleteGroup(t){return i(this,null,function*(){const e=yield this.getBestToken();return Ze(l(c({},this.config),{token:e,groupID:t}))})}createInvite(t){return i(this,null,function*(){const e=yield this.getBestToken();return tn(l(c({},this.config),{token:e,value:t}))})}editInvite(t,e){return i(this,null,function*(){const n=yield this.getBestToken();return en(l(c({},this.config),{token:n,inviteID:t,value:e}))})}deleteInvite(t){return i(this,null,function*(){const e=yield this.getBestToken();return nn(l(c({},this.config),{token:e,inviteID:t}))})}editAccount(t,e){return i(this,null,function*(){const n=yield this.getBestToken();return on(l(c({},this.config),{token:n,accountID:t,value:e}))})}listTokens(t){return i(this,null,function*(){const e=yield this.getBestToken();return sn(l(c({},this.config),{token:e,accountID:t}))})}createToken(t){return i(this,null,function*(){const e=yield this.getBestToken();return rn(l(c({},this.config),{token:e,accountID:t}))})}deleteToken(t,e){return i(this,null,function*(){const n=yield this.getBestToken();return an(l(c({},this.config),{token:n,accountID:t,accessTokenID:e}))})}storageAdapter(t){return this.set({storageAdapter:t})}removeToken(t){if(!this.config.storageAdapter)throw new Error("cannot removeToken: no storageAdapter defined!");const{remove:e}=this.config.storageAdapter;e(t)}getToken(t){if(!this.config.storageAdapter)throw new Error("cannot getAuth: no storageAdapter defined!");const{get:e}=this.config.storageAdapter;return e(t)}getPublicToken(){return this.config.token||this.getToken(I(this.config))}getEcToken(){return this.config.token||this.getToken(A(this.config))}setToken(t,e){if(!this.config.storageAdapter)throw new Error("cannot setEcToken: no storageAdapter defined!");return this.config.storageAdapter.set(t,e)}setEcToken(t){this.setToken(A(this.config),t)}removeEcToken(){this.removeToken(A(this.config))}setPublicToken(t){this.setToken(I(this.config),t)}loginEc(t){return pe(c(c({},this.config),t)).then(e=>this.setToken(A(this.config),e.token))}loginPublic(t){return ke(c(c({},this.config),t)).then(e=>this.setToken(I(this.config),e.token))}logoutPublic(){const t=this.getPublicToken();return $e(l(c({},this.config),{token:t})).then(()=>this.removeToken(I(this.config)))}logoutEc(){const t=this.getEcToken();return Te(l(c({},this.config),{token:t})).then(()=>this.removeToken(A(this.config)))}hasPublicToken(){return!!this.getPublicToken()}hasEcToken(){return!!this.getEcToken()}hasAnyToken(){return!!this.getEcToken()||!!this.getPublicToken()}getBestToken(){try{return this.getEcToken()||this.getPublicToken()}catch(t){return}}clean(t=!0){return this.set({_clean:t})}maybeClean(t){return this.config._clean?un(t):t}model(t){return this.set({model:t})}token(t){return this.set({token:t})}dmShortID(t){return this.set({dmShortID:t})}dm(t){return this.dmShortID(t)}dmID(t){return this.set({dmID:t})}assetGroup(t){return this.set({assetGroup:t})}assetgroup(t){return this.assetGroup(t)}subdomain(t){return this.set({subdomain:t})}resource(t){return this.set({resource:t})}route(t){return this.set({route:t})}publicApi(){return Ae(this.config)}getDatamanager(t){return i(this,null,function*(){const e=yield this.getBestToken();return De(l(c({},this.config),{dmID:t,token:e}))})}dmList(){return i(this,arguments,function*(t={}){const e=yield this.getBestToken();return we(l(c({},this.config),{options:t,token:e}))})}modelList(){return i(this,arguments,function*(t={}){const e=yield this.getBestToken();return Ee(l(c({},this.config),{options:t,token:e}))})}}const dn=o=>new b({env:o}),ln=o=>new b({env:o});exports.Fdk=b;exports.act=cn;exports.apiURL=y;exports.apis=D;exports.assetList=lt;exports.createAccountClient=xt;exports.createAsset=ht;exports.createAssetGroup=_t;exports.createAssets=gt;exports.createDatamanager=bt;exports.createEntry=nt;exports.createGroup=Vt;exports.createInvite=Qt;exports.createModel=St;exports.createRole=jt;exports.createTemplate=Pt;exports.createToken=te;exports.deleteAccountClient=Kt;exports.deleteAsset=ft;exports.deleteDatamanager=It;exports.deleteDmAccount=Nt;exports.deleteEntry=q;exports.deleteEntryObject=at;exports.deleteGroup=Ht;exports.deleteInvite=Xt;exports.deleteModel=Bt;exports.deleteRole=Rt;exports.deleteToken=ee;exports.dmList=pt;exports.editAccount=Yt;exports.editAccountClient=Ft;exports.editAsset=Lt;exports.editAssetGroup=qt;exports.editDatamanager=vt;exports.editDmAccount=Gt;exports.editDmClient=Mt;exports.editEntry=_;exports.editEntryObject=ct;exports.editGroup=zt;exports.editInvite=Wt;exports.editModel=Ot;exports.editRole=Ct;exports.entryList=P;exports.expect=h;exports.fdk=dn;exports.fetcher=f;exports.fileVariant=yt;exports.filterOptions=rt;exports.getAsset=dt;exports.getDatamanager=kt;exports.getEcAuthKey=Y;exports.getEntry=et;exports.getEntryAsset=ut;exports.getEntryEnv=M;exports.getEntryShortID=O;exports.getFileVariants=mt;exports.getHistory=Ut;exports.getPublicAuthKey=X;exports.getSchema=st;exports.getStats=Jt;exports.listTokens=Zt;exports.loginEc=H;exports.loginPublic=z;exports.logoutEc=W;exports.logoutPublic=Q;exports.mapEntries=ot;exports.modelList=Tt;exports.publicApi=tt;exports.query=m;exports.raw=Dt;exports.resourceDelete=At;exports.resourceEdit=Et;exports.resourceGet=wt;exports.resourceList=$t;exports.sdk=ln;exports.sdkOptions=L;
package/dist/index.mjs CHANGED
@@ -1,12 +1,12 @@
1
1
  var W = Object.defineProperty, X = Object.defineProperties;
2
2
  var Y = Object.getOwnPropertyDescriptors;
3
- var D = Object.getOwnPropertySymbols;
3
+ var E = Object.getOwnPropertySymbols;
4
4
  var L = Object.prototype.hasOwnProperty, M = Object.prototype.propertyIsEnumerable;
5
5
  var q = (s, t, e) => t in s ? W(s, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : s[t] = e, c = (s, t) => {
6
6
  for (var e in t || (t = {}))
7
7
  L.call(t, e) && q(s, e, t[e]);
8
- if (D)
9
- for (var e of D(t))
8
+ if (E)
9
+ for (var e of E(t))
10
10
  M.call(t, e) && q(s, e, t[e]);
11
11
  return s;
12
12
  }, l = (s, t) => X(s, Y(t));
@@ -14,8 +14,8 @@ var C = (s, t) => {
14
14
  var e = {};
15
15
  for (var n in s)
16
16
  L.call(s, n) && t.indexOf(n) < 0 && (e[n] = s[n]);
17
- if (s != null && D)
18
- for (var n of D(s))
17
+ if (s != null && E)
18
+ for (var n of E(s))
19
19
  t.indexOf(n) < 0 && M.call(s, n) && (e[n] = s[n]);
20
20
  return e;
21
21
  };
@@ -1003,7 +1003,7 @@ const v = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
1003
1003
  loginEc: pe,
1004
1004
  logoutEc: Te,
1005
1005
  logoutPublic: $e,
1006
- getEcAuthKey: E,
1006
+ getEcAuthKey: D,
1007
1007
  getPublicAuthKey: b,
1008
1008
  dmList: we,
1009
1009
  modelList: Ae,
@@ -1749,7 +1749,7 @@ class S {
1749
1749
  }
1750
1750
  /** @ignore */
1751
1751
  getEcToken() {
1752
- return this.config.token || this.getToken(E(this.config));
1752
+ return this.config.token || this.getToken(D(this.config));
1753
1753
  }
1754
1754
  /** @ignore */
1755
1755
  setToken(t, e) {
@@ -1763,7 +1763,11 @@ class S {
1763
1763
  * @ignore
1764
1764
  */
1765
1765
  setEcToken(t) {
1766
- this.setToken(E(this.config), t);
1766
+ this.setToken(D(this.config), t);
1767
+ }
1768
+ /** @ignore */
1769
+ removeEcToken() {
1770
+ this.removeToken(D(this.config));
1767
1771
  }
1768
1772
  /**
1769
1773
  * Manually set public user token on the {@link Fdk.authStorage}. In most cases, you'd want to use {@link Fdk.token} instead!
@@ -1779,7 +1783,7 @@ class S {
1779
1783
  */
1780
1784
  loginEc(t) {
1781
1785
  return pe(c(c({}, this.config), t)).then(
1782
- (e) => this.setToken(E(this.config), e.token)
1786
+ (e) => this.setToken(D(this.config), e.token)
1783
1787
  );
1784
1788
  }
1785
1789
  /**
@@ -1808,7 +1812,7 @@ class S {
1808
1812
  logoutEc() {
1809
1813
  const t = this.getEcToken();
1810
1814
  return Te(l(c({}, this.config), { token: t })).then(
1811
- () => this.removeToken(E(this.config))
1815
+ () => this.removeToken(D(this.config))
1812
1816
  );
1813
1817
  }
1814
1818
  /** @ignore */
package/dist/lib/api.d.ts CHANGED
@@ -430,6 +430,8 @@ export declare class Fdk {
430
430
  * @ignore
431
431
  */
432
432
  setEcToken(token: string): void;
433
+ /** @ignore */
434
+ removeEcToken(): void;
433
435
  /**
434
436
  * Manually set public user token on the {@link Fdk.authStorage}. In most cases, you'd want to use {@link Fdk.token} instead!
435
437
  * @category Auth
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ec.fdk",
3
- "version": "0.9.0",
3
+ "version": "0.9.2",
4
4
  "description": "ec frontend sdk",
5
5
  "main": "dist/index.cjs",
6
6
  "bin": {
package/publish.sh CHANGED
@@ -16,15 +16,19 @@ else
16
16
  echo "Keeping $CURRENT"
17
17
  fi
18
18
 
19
- # 2. Regenerate docs
19
+ # 2. Run tests
20
+ echo "Running tests..."
21
+ npm test
22
+
23
+ # 3. Regenerate docs
20
24
  echo "Building docs..."
21
25
  npm run docs
22
26
 
23
- # 3. Commit + push
27
+ # 4. Commit + push
24
28
  git add -A
25
29
  git commit -m "v$NEW_VERSION"
26
30
  git push
27
31
 
28
- # 4. Publish (triggers prepublishOnly -> npm run build)
32
+ # 5. Publish (triggers prepublishOnly -> npm run build)
29
33
  pnpm publish --no-git-checks
30
34
  echo "Published ec.fdk@$NEW_VERSION"