@ionite/core 0.0.24-beta.20260922.9 → 0.0.24-beta.20260927.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +308 -15
- package/dist/index.js +2 -2
- package/dist/server.d.ts +277 -9
- package/dist/server.js +1 -1
- package/dist/shared/core-anx7e6cp.js +4 -0
- package/package.json +1 -1
- package/dist/shared/core-j5xhxcmq.js +0 -4
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
function kt(Ye){if(Ye===void 0||Ye===null)return[];return Array.isArray(Ye)?Ye:[Ye]}function It(Ye){if(typeof Ye!=="string")return;return Ye.endsWith("/")?Ye.slice(0,-1):Ye}function Kt(Ye,Xe){if(It(Xe.issuer)!==It(Ye.claims?.iss))return!1;let Ze=kt(Xe.audience);if(Ze.length===0)return!1;let Qe=kt(Ye.claims?.aud),et=typeof Ye.claims?.azp==="string"?Ye.claims.azp:void 0;if(!(Ze.some((st)=>Qe.includes(st))||(et?Ze.includes(et):!1)))return!1;let nt=Ye.clientId??Ye.workloadId??Ye.claims?.sub;return Xe.clientId===nt}function F(Ye,Xe){let Ze=Ye?.trustedProvisioningClients;if(!Ze?.length)return;let Qe=new Set;for(let et of Ze){if(!Kt(Xe,et))continue;for(let tt of et.permissions??[])Qe.add(tt)}return Qe.size>0?Qe:void 0}function Ae(Ye){let Xe=Ye?.trustedProvisioningClients;if(!Xe?.length)return[];let Ze=[];for(let Qe of Xe)for(let et of Qe.permissions??[])Ze.push({subject:Qe.clientId,subjectType:"workload",targetType:"permission",target:et,status:"active",provenance:{source:"eci-trusted",actor:Qe.clientId}});return Ze}var d=["id","name","displayName","description","providerId","source","deprecated","type","parent","resources","assignableSubjectTypes","recommendedSubjectTypes","requestable","riskLevel","requestUrl","action","permissionTypes","resourceTypes","applyToSubResources","permissions","groups","roles"],R=["id","userName","name","email","avatar","userType","tenantId","externalId","providerId","requestUrl","ecid","accountClass","displayName","scimName","emails","nickName","active","title","preferredLanguage","locale","timezone","phoneNumbers","ims","photos","addresses","roles","groups","entitlements","x509Certificates","scimEnterprise","scimSchemaExtensions","createdAt","updatedAt","sso"],A=["id","userName","name","email","avatar","userType","tenantId","externalId","providerId","requestUrl","displayName","emails","phoneNumbers","active","createdAt","updatedAt","ciam"],I=["id","clientId","displayName","description","externalId","providerId","requestUrl","ecid","active","scopes","createdAt","updatedAt","metadata"];function o(Ye,Xe){let Ze=new Set(Xe),Qe=Object.fromEntries(Object.entries(Ye).filter(([et,tt])=>!Ze.has(et)&&tt!==void 0));return Object.keys(Qe).length>0?Qe:void 0}function M(Ye,Xe,Ze,Qe){let et=Xe.length,tt=Qe??Ye,nt=tt>0?Math.floor(Ze/tt)+1:1,st=tt>0?Math.ceil(Ye/tt):0;return{total:Ye,count:et,items:Xe,size:tt,page:nt,pages:st}}async function*c(Ye,Xe,Ze=1000){let Qe=0;while(!0){let et=await Ye(Qe,Ze);if(et.items.length===0)break;for(let tt of et.items)yield(Xe?await Xe(tt):tt)??tt;if(et.items.length<Ze||Qe+et.items.length>=et.total)break;Qe+=Ze}}function Ie(Ye,Xe){if(!Xe)return!0;if(Xe.requestable!==void 0&&Boolean(Ye.requestable)!==Xe.requestable)return!1;if(Xe.userName!==void 0){if((Ye.userName??Ye.clientId)!==Xe.userName)return!1}if(Xe.externalId!==void 0&&Ye.externalId!==Xe.externalId)return!1;if(Xe.updatedAfter!==void 0){if(!(Ye.updatedAt instanceof Date))return!1;let Ze=Xe.updatedAfter instanceof Date?Xe.updatedAfter:new Date(Xe.updatedAfter);if(Number.isNaN(Ze.getTime())||Ye.updatedAt<=Ze)return!1}return!0}var H=["basic","elevated","privileged","admin"],f="basic",e="urn:ionite:params:scim:schemas:extension:authz:2.0:Group",g=["user","workload","customer"];function ue(Ye){let{assignableSubjectTypes:Xe,recommendedSubjectTypes:Ze}=Ye,Qe=Ye.id?` for "${Ye.id}"`:"";if(!Xe||Xe.length===0)throw Error(`assignableSubjectTypes${Qe} is required and must be a non-empty subset of [${g.join(", ")}]`);let et=Xe.filter((tt)=>!g.includes(tt));if(et.length>0)throw Error(`assignableSubjectTypes${Qe} contains values outside the platform ceiling [${g.join(", ")}]: ${et.join(", ")}`);if(Ze){let tt=Ze.filter((nt)=>!Xe.includes(nt));if(tt.length>0)throw Error(`recommendedSubjectTypes${Qe} must be a subset of assignableSubjectTypes; offending values: ${tt.join(", ")}`)}}function J(Ye,Xe="subjectType"){if(Ye!=="user"&&Ye!=="customer"&&Ye!=="workload")throw Error(`${Xe} is required and must be one of [user, customer, workload]; got ${Ye===void 0?"undefined":JSON.stringify(Ye)}`)}class de extends Error{constructor(Ye,Xe,Ze){super(Ye);this.name="AssignmentPolicyError",this.policy=Xe,this.requestUrl=Ze,Object.setPrototypeOf(this,de.prototype)}}function Se(Ye){return typeof Ye.groups?.get==="function"}function ve(Ye){return Se(Ye)?Ye:ke(Ye)}class yt extends Error{constructor(Ye){super(`defineCatalog: ${Ye}`);this.name="CodeCatalogError"}}function wt(Ye){return typeof Ye==="string"?Ye:Ye.id}function Bt(Ye){for(let Xe of Object.values(Ye))if(Array.isArray(Xe))Object.freeze(Xe);Object.freeze(Ye)}function At(Ye,Xe){try{ue(Xe)}catch(Ze){throw new yt(`${Ye} "${Xe.id}": ${Ze instanceof Error?Ze.message:String(Ze)}`)}}function xt(Ye){let Xe=new Map(Ye.map((Qe)=>[Qe.id,Qe])),Ze=Object.freeze([...Ye]);return Object.freeze({get:(Qe)=>Xe.get(Qe),list:()=>Ze})}function ke(Ye){let Xe=Ye.groups??[],Ze=Ye.roles??[],Qe=Ye.permissions??[],et=new Map,tt=(it,ct)=>{for(let ot of ct){if(!ot.id)throw new yt(`a ${it} is missing its required "id".`);let at=et.get(ot.id);if(at)throw new yt(`duplicate id "${ot.id}" (declared as both ${at} and ${it}).`);et.set(ot.id,it)}};tt("group",Xe),tt("role",Ze),tt("permission",Qe);let nt=(it,ct,ot,at)=>{let pt=wt(at),lt=et.get(pt);if(lt===void 0)throw new yt(`${it} "${ct}" references ${ot} "${pt}", which is not declared in the catalog.`);if(lt!==ot)throw new yt(`${it} "${ct}" references "${pt}" as a ${ot}, but it is a ${lt}.`)};for(let it of Ze){At("role",it);for(let ct of it.permissions??[])nt("role",it.id,"permission",ct)}for(let it of Qe)At("permission",it);for(let it of Xe){At("group",it);for(let ct of it.groups??[])nt("group",it.id,"group",ct);for(let ct of it.roles??[])nt("group",it.id,"role",ct);for(let ct of it.permissions??[])nt("group",it.id,"permission",ct)}let st=new Map(Xe.map((it)=>[it.id,it])),dt=new Map,ut=(it,ct)=>{let ot=dt.get(it);if(ot==="done")return;if(ot==="visiting")throw new yt(`group composition cycle: ${[...ct,it].join(" -> ")}.`);dt.set(it,"visiting");for(let at of st.get(it)?.groups??[])ut(wt(at),[...ct,it]);dt.set(it,"done")};for(let it of Xe)ut(it.id,[]);for(let it of[...Xe,...Ze,...Qe])Bt(it);return Object.freeze({groups:xt(Xe),roles:xt(Ze),permissions:xt(Qe)})}function D(Ye,Xe){let Ze=Ye?.groups.get(Xe);if(Ze)return{entity:Ze,kind:"group"};let Qe=Ye?.roles.get(Xe);if(Qe)return{entity:Qe,kind:"role"};let et=Ye?.permissions.get(Xe);return et?{entity:et,kind:"permission"}:void 0}function j(Ye,Xe){return Xe==="group"?Ye.groups:Xe==="role"?Ye.roles:Ye.permissions}function T(Ye,Xe,Ze){let Qe={...Xe,...Ze,id:Xe.id,requestable:Xe.requestable,source:Ze.source??"code",assignableSubjectTypes:Xe.assignableSubjectTypes,recommendedSubjectTypes:Xe.recommendedSubjectTypes};if(Ye==="group"){let tt=Xe;return{...Qe,groups:tt.groups,roles:tt.roles,permissions:tt.permissions,resources:tt.resources}}if(Ye==="role")return{...Qe,permissions:Xe.permissions};let et=Xe;return{...Qe,action:et.action,permissionTypes:et.permissionTypes,resourceTypes:et.resourceTypes,applyToSubResources:et.applyToSubResources}}async function N(Ye,Xe,Ze){let Qe=await Ze.get(Xe.id);if(Qe)return T(Ye,Xe,Qe);let et=Object.entries(Xe).filter(([ct])=>d.includes(ct)),{riskLevel:tt,displayName:nt,...st}=Object.fromEntries(et),dt={...st,source:"code"},ut=Ze.insertIfAbsent(dt);await ut.ready();let it=await Ze.get(Xe.id)??ut;return T(Ye,Xe,it)}async function Y(Ye,Xe,Ze){let Qe=async(et,tt)=>{let nt=Ze?[await et.get(Ze)].filter((st)=>st!==void 0):c((st,dt)=>et.list({start:st,limit:dt}));for await(let st of nt){if(st.source!=="code"||st.deprecated===!0||tt?.get(st.id))continue;await et.set({...st,deprecated:!0}).ready()}};await Qe(Xe.groups,Ye?.groups),await Qe(Xe.roles,Ye?.roles),await Qe(Xe.permissions,Ye?.permissions)}function St(Ye,Xe,Ze){let Qe=()=>{if(!Ze)throw Error(`Cannot write ${Ye} definitions: no AccessCatalogStore is wired (the code-declared catalog is read-only).`);return Ze};return{async get(tt){let nt=Xe.get(tt);if(!Ze)return nt;let st=await Ze.get(tt);return st&&nt?T(Ye,nt,st):st??nt},set(tt){return Qe().set(tt)},insertIfAbsent(tt){return Qe().insertIfAbsent(tt)},async delete(tt){await Qe().delete(tt)},async list(tt){let nt=Math.max(0,tt?.start??0),st=tt?.limit,dt=tt?.filter?.requestable,ut=[];if(Ze)for await(let at of c((pt,lt)=>Ze.list({start:pt,limit:lt})))ut.push(at);let it=new Map(ut.map((at)=>[at.id,at])),ct=[...Xe.list().map((at)=>{let pt=it.get(at.id);return pt?T(Ye,at,pt):at}),...ut.filter((at)=>!Xe.get(at.id))].filter((at)=>dt===void 0||Boolean(at.requestable)===dt),ot=st!=null?nt+st:void 0;return M(ct.length,ct.slice(nt,ot),nt,st)}}}function L(Ye,Xe){if(!Ye)return Xe;return{groups:St("group",Ye.groups,Xe?.groups),roles:St("role",Ye.roles,Xe?.roles),permissions:St("permission",Ye.permissions,Xe?.permissions),afterChange:Xe?.afterChange?.bind(Xe)}}function n(Ye){if(typeof Ye==="string")return Ye.trim();if(Ye&&typeof Ye==="object"){let Xe=Ye;for(let Ze of["id","value","name","displayName"]){let Qe=Xe[Ze];if(typeof Qe==="string"&&Qe.trim())return Qe.trim()}}return""}function p(Ye){let Xe=n(Ye.subject),Ze=n(Ye.target);if(!Xe)throw Error("Access change subject must resolve to a non-empty id.");if(!Ye.targetType)throw Error("Access change targetType is required.");if(!Ze)throw Error("Access change target must resolve to a non-empty id.");let Qe=(Ye.resources??[]).map((tt)=>tt.trim()).filter(Boolean),et=!Ye.applyToApplication&&Qe.length>0?[...Qe].sort().join(","):"app";return J(Ye.subjectType,"Access change subjectType"),`${Ye.subjectType}:${Xe}:${Ye.targetType}:${Ze}:${et}`}function Gt(Ye){let Xe=(Ye.resources??[]).map((Ze)=>Ze.trim()).filter(Boolean);if(Ye.applyToApplication||Xe.length===0)return[void 0];return Xe}async function _t(Ye,Xe,Ze,Qe,et){if(Qe==="resource")return Ze?.get(et);let tt=Xe?Qe==="group"?Xe.groups.get(et):Qe==="role"?Xe.roles.get(et):Xe.permissions.get(et):void 0;if(Ye){let st=await(Qe==="group"?Ye.groups:Qe==="role"?Ye.roles:Ye.permissions).get(et);if(st)return tt?T(Qe,tt,st):st}return tt}class X{constructor(Ye,Xe,Ze){this.catalog=Ye;this.resources=Xe;this.code=Ze;this.nodes=new Map;this.subResources=new Map;this.children=new Map}getNode(Ye,Xe){let Ze=`${Ye}:${Xe}`,Qe=this.nodes.get(Ze);if(!Qe)Qe=_t(this.catalog,this.code,this.resources,Ye,Xe),this.nodes.set(Ze,Qe);return Qe}resourceChildren(Ye){let Xe=this.children.get(Ye);if(!Xe)Xe=jt(Ye,this.view()),this.children.set(Ye,Xe);return Xe}resourceAndSubResourceIds(Ye){let Xe=this.subResources.get(Ye);if(!Xe)Xe=Ot(Ye,this.view()),this.subResources.set(Ye,Xe);return Xe}view(){return{catalog:this.catalog,code:this.code,resources:this.resources,cache:this}}invalidate(Ye){this.clear()}clear(){this.nodes.clear(),this.subResources.clear(),this.children.clear()}}async function Tt(Ye,Xe,Ze){if(Ye.cache)return Ye.cache.getNode(Xe,Ze);return _t(Ye.catalog,Ye.code,Ye.resources,Xe,Ze)}async function Pt(Ye,Xe){if(typeof Ye!=="string")return Ye;return Tt(Xe,"resource",Ye)}async function jt(Ye,Xe){if(Xe.resources?.children)return Xe.resources.children(Ye);let Ze=await Pt(Ye,Xe),Qe=[];for(let et of Ze?.resources??[]){let tt=await Pt(et,Xe);if(tt)Qe.push(tt);else if(typeof et==="string"&&et.trim())Qe.push({id:et.trim()})}return Qe}async function vt(Ye,Xe){if(Xe.cache)return Xe.cache.resourceChildren(Ye);return jt(Ye,Xe)}async function Ot(Ye,Xe){let Ze=[],Qe=new Set,et=async(tt)=>{if(!tt||Qe.has(tt))return;Qe.add(tt),Ze.push(tt);for(let nt of await vt(tt,Xe))await et(n(nt))};return await et(n(Ye)),Ze}async function Z(Ye,Xe){let Ze=Ye.id??p(Ye),Qe=n(Ye.subject);if(!Qe)throw Error("Access change subject must resolve to a non-empty id.");J(Ye.subjectType,"Access change subjectType");let et=Ye.subjectType,tt=Gt(Ye),nt=[],st=new Set,dt=new Set,ut=(ot,at,pt)=>{if(!at)return;let lt=`${ot}:${at}:${pt??""}`;if(st.has(lt))return;st.add(lt),nt.push({subject:Qe,subjectType:et,targetType:ot,target:at,resource:pt,rootId:Ze})},it=async(ot,at,pt)=>{for(let lt of tt)if(ot==="permission"&&pt?.applyToSubResources&<){let mt=Xe.cache?await Xe.cache.resourceAndSubResourceIds(lt):await Ot(lt,Xe);for(let gt of mt)ut("permission",at,gt)}else ut(ot,at,lt)},ct=async(ot,at)=>{let pt=n(at);if(!pt)return;let lt=`${ot}:${pt}`;if(dt.has(lt))return;if(dt.add(lt),ot==="group"){let gt=typeof at==="string"?await Tt(Xe,"group",pt):at;await it("group",pt,void 0);for(let ft of gt?.groups??[])await ct("group",ft);for(let ft of gt?.roles??[])await ct("role",ft);for(let ft of gt?.permissions??[])await ct("permission",ft);return}if(ot==="role"){let gt=typeof at==="string"?await Tt(Xe,"role",pt):at;await it("role",pt,void 0);for(let ft of gt?.permissions??[])await ct("permission",ft);return}let mt=typeof at==="string"?await Tt(Xe,"permission",pt):at;await it("permission",pt,mt)};return await ct(Ye.targetType,Ye.target),nt}async function le(Ye,Xe,Ze,Qe){let{accessStore:et,accessIndex:tt,catalogStore:nt,code:st,resources:dt}=Ze;if(!tt||!nt&&!st)return 0;if(!et)return await tt.replaceSubject(Ye,Xe,[]),0;let ut={catalog:nt,code:st,resources:dt,cache:Qe},it=[],ct=0;for await(let ot of c((at,pt)=>et.listBySubject(Ye,Xe,{start:at,limit:pt}))){let at=ot.id??p(ot),pt=await Z({...ot,id:at},ut);it.push(...pt),ct+=1}return await tt.replaceSubject(Ye,Xe,it),ct}async function xe(Ye,Xe,Ze){let Qe=new Map,et=new Map,tt=new Map,nt=new Map,st=new Set,dt=(ct,ot)=>Tt(Ze,ct,ot),ut=async(ct)=>{let ot=n(ct);if(!ot||nt.has(ot))return;let at=typeof ct==="string"?await dt("resource",ot):ct;if(!at)return;nt.set(ot,at);let pt=at.resources??(at.id?await vt(at.id,Ze):[]);for(let lt of pt)await ut(lt)},it=async(ct,ot)=>{let at=n(ot);if(!at)return;let pt=`${ct}:${at}`;if(st.has(pt))return;if(st.add(pt),ct==="group"){let mt=typeof ot==="string"?await dt("group",at):ot;if(!mt)return;Qe.set(at,mt);for(let gt of mt.groups??[])await it("group",gt);for(let gt of mt.roles??[])await it("role",gt);for(let gt of mt.permissions??[])await it("permission",gt);for(let gt of mt.resources??[])await ut(gt);return}if(ct==="role"){let mt=typeof ot==="string"?await dt("role",at):ot;if(!mt)return;et.set(at,mt);for(let gt of mt.permissions??[])await it("permission",gt);return}let lt=typeof ot==="string"?await dt("permission",at):ot;if(!lt)return;tt.set(at,lt)};if(st.add(`${Xe}:${n(Ye)}`),Xe==="group"){let ct=Ye;for(let ot of ct.groups??[])await it("group",ot);for(let ot of ct.roles??[])await it("role",ot);for(let ot of ct.permissions??[])await it("permission",ot);for(let ot of ct.resources??[])await ut(ot)}else{let ct=Ye;for(let ot of ct.permissions??[])await it("permission",ot)}return{groups:[...Qe.values()],roles:[...et.values()],permissions:[...tt.values()],resources:[...nt.values()]}}var Ee=".profile",K=1,Pe=10,_e=10,Ue=14400,Q="ion.discovered",qt=new Set(["sid","sub","tokens","access_token","id_token","refresh_token","accessClaims","roles","groups","permissions","grants"]);function ee(Ye){if(typeof Ye!=="number"||!Number.isFinite(Ye)||Ye<1)return 10;return Math.floor(Ye)}function W(Ye){if(typeof Ye!=="number"||!Number.isFinite(Ye)||Ye<1)return 10;return Math.floor(Ye)}function te(Ye){if(typeof Ye!=="number"||!Number.isFinite(Ye)||Ye<1)return 14400;return Math.floor(Ye)}function pe(Ye){let Xe={};if(Ye.name)Xe.name=Ye.name;if(Ye.email)Xe.email=Ye.email;if(Ye.avatar)Xe.avatar=Ye.avatar;return Xe}function me(Ye){if(!Ye||typeof Ye!=="object"||Array.isArray(Ye))return{};let Xe={};for(let[Ze,Qe]of Object.entries(Ye)){if(qt.has(Ze))continue;if(typeof Qe==="string"||typeof Qe==="number"||typeof Qe==="boolean"||Qe===null)Xe[Ze]=Qe}return Xe}function Vt(Ye){let Xe=Ye;return{name:typeof Xe.name==="string"?Xe.name:void 0,email:typeof Xe.email==="string"?Xe.email:void 0,avatar:typeof Xe.avatar==="string"?Xe.avatar:void 0}}function m(Ye,Xe){let Ze=Vt(Ye);if(!Xe)return pe(Ze);try{return me(Xe(Ye))}catch{return pe(Ze)}}function q(Ye){return btoa(JSON.stringify(Ye))}function be(Ye){try{let Xe=JSON.parse(atob(Ye));if(!Xe||typeof Xe!=="object"||Array.isArray(Xe))return;let Ze=Xe;if(Ze.v!==1)return;if(Ze.authType!=="sso"&&Ze.authType!=="ciam")return;if(Ze.kind!==void 0&&Ze.kind!=="session"&&Ze.kind!=="discovered")return;if(typeof Ze.expiresAt!=="string"||!Ze.expiresAt)return;let Qe=typeof Ze.tenantId==="string"&&Ze.tenantId?Ze.tenantId:void 0,et=typeof Ze.tenantName==="string"&&Ze.tenantName?Ze.tenantName:void 0;return{v:1,...Ze.kind?{kind:Ze.kind}:{},...Qe?{tenantId:Qe}:{},authType:Ze.authType,expiresAt:Ze.expiresAt,user:me(Ze.user),...et?{tenantName:et}:{}}}catch{return}}function ne(Ye){let Xe={};if(!Ye)return Xe;for(let Ze of Ye.split(";")){let Qe=Ze.trim();if(!Qe)continue;let et=Qe.indexOf("=");if(et===-1)continue;Xe[Qe.slice(0,et).trim()]=Qe.slice(et+1).trim()}return Xe}function z(Ye){let Xe=ne(Ye),Ze=[];for(let[Qe,et]of Object.entries(Xe)){if(!Qe.endsWith(".profile")||!et)continue;let tt=be(et);if(!tt)continue;Ze.push({name:Qe,prefix:Qe.slice(0,-8),envelope:tt})}return Ze}function v(Ye,Xe){let Ze=Ye?Date.parse(Ye):Number.NaN,Qe=Xe?Date.parse(Xe):Number.NaN,et=Number.isFinite(Ze),tt=Number.isFinite(Qe);if(et&&tt)return Qe-Ze;if(et)return-1;if(tt)return 1;return 0}function x(Ye){return`${Ye}.profile`}function V(Ye){return x(`ion.discovered.${encodeURIComponent(Ye)}`)}var Oe="ecid",Nt=/^ecid:([A-Za-z0-9._-]+):([A-Za-z0-9_-]+)$/,zt=/^[A-Za-z0-9._-]+$/,Ft=/^[A-Za-z0-9_-]+$/;class E extends Error{constructor(Ye){super(Ye);this.name="EcidFormatError"}}function Ce(Ye){return typeof Ye==="string"&&Nt.test(Ye)}function Me(Ye,Xe){if(!Ye||!zt.test(Ye))throw new E(`Invalid ECID realm ${JSON.stringify(Ye)}: must be non-empty and match [A-Za-z0-9._-].`);if(!Xe||!Ft.test(Xe))throw new E(`Invalid ECID opaque ${JSON.stringify(Xe)}: must be non-empty and match [A-Za-z0-9_-].`);return`ecid:${Ye}:${Xe}`}function De(Ye){let Xe=typeof Ye==="string"?Ye.match(Nt):null;if(!Xe)throw new E(`Invalid ECID ${JSON.stringify(Ye)}: expected "ecid:<realm>:<opaque>".`);return{realm:Xe[1],opaque:Xe[2]}}function P(Ye){if(!Ce(Ye))throw new E(`Invalid ECID ${JSON.stringify(Ye)}: expected "ecid:<realm>:<opaque>".`);return Ye}function re(Ye){return{"~standard":{version:1,vendor:Ye,validate:(Xe)=>{if(typeof Xe!=="object"||Xe===null)return{issues:[{message:"Expected an object"}]};let Ze=Xe,Qe=[],et={};if("code"in Ze)if(typeof Ze.code==="string")et.code=Ze.code;else Qe.push({message:"code must be a string",path:["code"]});else if(!("error"in Ze))Qe.push({message:"code is required",path:["code"]});if("state"in Ze)if(typeof Ze.state==="string"||Ze.state===void 0)et.state=Ze.state;else Qe.push({message:"state must be a string",path:["state"]});if("session_state"in Ze)if(typeof Ze.session_state==="string"||Ze.session_state===void 0)et.session_state=Ze.session_state;else Qe.push({message:"session_state must be a string",path:["session_state"]});if("error"in Ze){if(typeof Ze.error==="string")et.error=Ze.error;else Qe.push({message:"error must be a string",path:["error"]});if("error_description"in Ze)if(typeof Ze.error_description==="string"||Ze.error_description===void 0)et.error_description=Ze.error_description;else Qe.push({message:"error_description must be a string",path:["error_description"]});if("error_uri"in Ze)if(typeof Ze.error_uri==="string"||Ze.error_uri===void 0)et.error_uri=Ze.error_uri;else Qe.push({message:"error_uri must be a string",path:["error_uri"]})}if("iss"in Ze)if(typeof Ze.iss==="string"||Ze.iss===void 0)et.iss=Ze.iss;else Qe.push({message:"iss must be a string",path:["iss"]});if(Qe.length>0)return{issues:Qe};return{value:et}}}}}function se(Ye){return{"~standard":{version:1,vendor:Ye,validate:(Xe)=>{if(typeof Xe!=="object"||Xe===null)return{issues:[{message:"Expected an object"}]};let Ze=Xe,Qe=[],et={};if("access_token"in Ze)if(typeof Ze.access_token==="string")et.access_token=Ze.access_token;else Qe.push({message:"access_token must be a string",path:["access_token"]});else Qe.push({message:"access_token is required",path:["access_token"]});if("id_token"in Ze)if(typeof Ze.id_token==="string")et.id_token=Ze.id_token;else Qe.push({message:"id_token must be a string",path:["id_token"]});else Qe.push({message:"id_token is required",path:["id_token"]});if("token_type"in Ze)if(typeof Ze.token_type==="string")et.token_type=Ze.token_type;else Qe.push({message:"token_type must be a string",path:["token_type"]});else Qe.push({message:"token_type is required",path:["token_type"]});if("refresh_token"in Ze)if(typeof Ze.refresh_token==="string"||Ze.refresh_token===void 0)et.refresh_token=Ze.refresh_token;else Qe.push({message:"refresh_token must be a string",path:["refresh_token"]});if("scope"in Ze)if(typeof Ze.scope==="string"||Ze.scope===void 0)et.scope=Ze.scope;else Qe.push({message:"scope must be a string",path:["scope"]});if("session_state"in Ze)if(typeof Ze.session_state==="string"||Ze.session_state===void 0)et.session_state=Ze.session_state;else Qe.push({message:"session_state must be a string",path:["session_state"]});if("expires"in Ze)if(typeof Ze.expires==="string"||Ze.expires===void 0)et.expires=Ze.expires;else Qe.push({message:"expires must be a string",path:["expires"]});if("expires_in"in Ze)if(typeof Ze.expires_in==="number"||Ze.expires_in===void 0)et.expires_in=Ze.expires_in;else Qe.push({message:"expires_in must be a number",path:["expires_in"]});if("refresh_expires_in"in Ze)if(typeof Ze.refresh_expires_in==="number"||Ze.refresh_expires_in===void 0)et.refresh_expires_in=Ze.refresh_expires_in;else Qe.push({message:"refresh_expires_in must be a number",path:["refresh_expires_in"]});if(Qe.length>0)return{issues:Qe};return{value:et}}}}}function y(Ye){return{"~standard":{version:1,vendor:Ye,validate:(Xe)=>{if(typeof Xe!=="object"||Xe===null)return{issues:[{message:"Expected an object"}]};let Ze=Xe,Qe=[],et={...Ze},tt=["iss","sub"];for(let ut of tt)if(typeof Ze[ut]!=="string")Qe.push({message:`${ut} is required and must be a string`,path:[ut]});let nt=Ze.aud;if(!(typeof nt==="string"||Array.isArray(nt)&&nt.length>0&&nt.every((ut)=>typeof ut==="string")))Qe.push({message:"aud is required and must be a string or a non-empty array of strings",path:["aud"]});if(typeof Ze.exp!=="number")Qe.push({message:"exp is required and must be a number",path:["exp"]});let dt=["sid","name","email","preferred_username","picture"];for(let ut of dt)if(ut in Ze&&Ze[ut]!==void 0){if(typeof Ze[ut]!=="string")Qe.push({message:`${ut} must be a string`,path:[ut]})}if("iat"in Ze&&Ze.iat!==void 0&&typeof Ze.iat!=="number")Qe.push({message:"iat must be a number",path:["iat"]});if(Qe.length>0)return{issues:Qe};return{value:et}}}}}var s="application/json",je="application/scim+json",_="application/x-www-form-urlencoded",fe="application/xml",ge="application/octet-stream",i=Object.freeze({Accept:"application/json"}),oe=Object.freeze({Accept:"application/scim+json, application/json"}),Ne=Object.freeze({Accept:"application/xml"}),Le=Object.freeze({Accept:"application/octet-stream"}),r=Object.freeze({"Content-Type":"application/json"}),w=Object.freeze({"Content-Type":"application/scim+json"}),h=Object.freeze({"Content-Type":"application/x-www-form-urlencoded"}),$e=Object.freeze({"Content-Type":"application/xml"}),Ke=Object.freeze({"Content-Type":"application/octet-stream"});function Te(Ye){let Xe=Ye.headers.get("content-type")?.split(";",1)[0]?.trim().toLowerCase();return Boolean(Xe&&(Xe==="application/json"||Xe.endsWith("+json")))}function Wt(Ye){let Xe=Ye.replace(/\s+/g," ").trim();return Xe?Xe.slice(0,300):void 0}async function B(Ye,Xe={}){let Ze=Ye.headers.get("content-type")??void 0,Qe;try{Qe=await Ye.text()}catch{return{contentType:Ze}}let et=/<title(?:\s[^>]*)?>([\s\S]*?)<\/title>/i.exec(Qe)?.[1],tt=Wt(et??(Xe.redact?"":Qe));return{contentType:Ze,excerpt:tt}}async function a(Ye,Xe={}){if(Te(Ye))return await Ye.json();let Ze=await B(Ye,{redact:Xe.redact});Xe.log?.warn("Expected a JSON response body but received a different content type",{"ion.operation":Xe.operation??"http.response","ion.outcome":"degraded",reason:"non_json_response",status:Ye.status,contentType:Ze.contentType,excerpt:Ze.excerpt});let Qe=[Ze.contentType,Ze.excerpt].filter(Boolean).join(": ");throw Error(`Expected a JSON response body${Qe?`; received ${Qe}`:""}`)}function l(Ye){let Xe=Ye["~standard"];return Object.assign(Ye,{validate(Ze){return Promise.resolve(Xe.validate(Ze))}})}function t(Ye,Xe="Assertion failed. Required value is null or undefined."){if(Ye===void 0||Ye===null)throw Error(Xe);return Ye}function ie(Ye,Xe){return Response.json({error:"validation_failed",message:Xe,issues:Ye},{status:400,headers:r})}function We(Ye,Xe,Ze=[]){let Qe={...Ye,...Xe};for(let et of Ze)Qe[et]=Ye?.[et]??Xe?.[et];return Qe}function we(Ye){let Xe="",Ze=0,Qe=Ye.length;while(Ze<Qe){let et=Ye[Ze];if(et==='"'||et==="'"){let tt=et;Xe+=et,Ze++;while(Ze<Qe){let nt=Ye[Ze];if(nt==="\\"){if(Xe+=nt,Ze+1<Qe)Xe+=Ye[Ze+1],Ze+=2;else Ze++;continue}if(nt===tt){Xe+=nt,Ze++;break}Xe+=nt,Ze++}continue}if(et==="/"&&Ze+1<Qe){let tt=Ye[Ze+1];if(tt==="/"){Ze+=2;while(Ze<Qe&&Ye[Ze]!==`
|
|
2
|
+
`)Ze++;if(Ze<Qe)Xe+=`
|
|
3
|
+
`;Ze++;continue}if(tt==="*"){Ze+=2;while(Ze+1<Qe&&!(Ye[Ze]==="*"&&Ye[Ze+1]==="/"))Ze++;Ze+=2;continue}}Xe+=et,Ze++}return Xe}function Yt(Ye){let Xe="",Ze=!1,Qe=!1;for(let et=0;et<Ye.length;et+=1){let tt=Ye[et];if(Ze){if(Xe+=tt,Qe)Qe=!1;else if(tt==="\\")Qe=!0;else if(tt==='"')Ze=!1;continue}if(tt==='"'){Ze=!0,Xe+=tt;continue}if(tt===","){let nt=et+1;while(nt<Ye.length&&/\s/.test(Ye[nt]??""))nt+=1;let st=Ye[nt];if(st==="}"||st==="]")continue}Xe+=tt}return Xe}function qe(Ye){let Xe=Yt(we(Ye));return JSON.parse(Xe)}function U(Ye){return Ye==="/"?Ye:Ye.replace(/\/+$/,"")}function Ct(Ye){if(Ye===null||typeof Ye!=="object"||Array.isArray(Ye))return!1;let Xe=Object.getPrototypeOf(Ye);return Xe===Object.prototype||Xe===null}function Rt(Ye){return Object.keys(Ye).filter((Xe)=>Ye[Xe]!==void 0).sort()}function S(Ye,Xe){if(Object.is(Ye,Xe))return!0;if(Ye===null||Xe===null)return Ye===Xe;if(Array.isArray(Ye)||Array.isArray(Xe)){if(!Array.isArray(Ye)||!Array.isArray(Xe)||Ye.length!==Xe.length)return!1;for(let et=0;et<Ye.length;et+=1)if(!S(Ye[et],Xe[et]))return!1;return!0}if(!Ct(Ye)||!Ct(Xe))return!1;let Ze=Rt(Ye),Qe=Rt(Xe);if(Ze.length!==Qe.length)return!1;for(let et=0;et<Ze.length;et+=1)if(Ze[et]!==Qe[et])return!1;for(let et of Ze)if(!S(Ye[et],Xe[et]))return!1;return!0}function Et(Ye,Xe){if(Ye===null||Ye===void 0){Xe.push("n");return}if(Array.isArray(Ye)){Xe.push("[");for(let Ze of Ye)Et(Ze,Xe);Xe.push("]");return}if(Ct(Ye)){Xe.push("{");for(let Ze of Rt(Ye))Xe.push(JSON.stringify(Ze),":"),Et(Ye[Ze],Xe);Xe.push("}");return}Xe.push(JSON.stringify(Ye))}function ze(Ye){let Xe=[];Et(Ye,Xe);let Ze=Xe.join(""),Qe=2166136261;for(let et=0;et<Ze.length;et+=1)Qe^=Ze.charCodeAt(et),Qe=Qe*16777619%9007199254740992;return`${Ze.length.toString(36)}:${Qe.toString(36)}`}async function Ve(Ye,Xe=async(nt)=>nt.status===200,Ze=1000,Qe=1e4,et,tt){let nt=Date.now(),st=`Awaiting Ping (${Ye})`;return new Promise((dt,ut)=>{let it=null,ct=null,ot=null,at=!1,pt=()=>{if(it)clearTimeout(it);if(ct)clearInterval(ct);if(ot)clearTimeout(ot);it=null,ct=null,ot=null},lt=(ft)=>{if(at)return;at=!0,pt(),ft()},mt=Math.max(Ze,1e4),gt=async()=>{try{let ft=await fetch(Ye,{headers:i,signal:AbortSignal.timeout(mt)});if(ft.ok){if(await Xe(ft)){lt(dt);return}st=`Response test failed: ${ft.status}: ${ft.statusText} - ${Ye}`}else try{let bt=await a(ft,{log:tt,operation:"wait_on.probe"});st=`Response error: ${ft.status}: ${ft.statusText} - ${Ye}: ${JSON.stringify(bt)}`}catch(bt){let $t=bt instanceof Error?`: ${bt.message}`:"";st=`Response error: ${ft.status}: ${ft.statusText} - ${Ye}${$t}`}}catch(ft){st=`${ft instanceof Error?ft.message:String(ft)} - ${Ye}`}if(!at)it=setTimeout(()=>void gt(),Ze)};if(Qe>0)ct=setInterval(()=>{tt?.warn(`${st}: ${Date.now()-nt}ms`)},Qe);if(et)ot=setTimeout(()=>{lt(()=>ut(Error(`Timeout: ${et}ms: ${st}`)))},et);gt()})}var Ht="@ionite/core",Jt=l(y(Ht));function G(Ye){let Xe=Ye.exp!=null?new Date(Ye.exp*1000):new Date,Ze=Ye.iss??"";return{id:Ye.sub??"",userName:Ye.preferred_username??"",name:Ye.name??"",email:Ye.email??"",avatar:Ye.picture,sso:{profile:{...Ye,iss:Ye.iss??Ze,aud:Ye.aud},tenant:{id:Ye.idp??Ze,name:Ze},tokenType:"Bearer",expires:Xe}}}function Xt(Ye){let Xe=Ye.replace(/-/g,"+").replace(/_/g,"/");return atob(Xe)}async function Be(Ye){let Xe=Ye.split(".");if(Xe.length!==3)throw Error("Invalid JWT");let Ze=Xt(Xe[1]),Qe=JSON.parse(Ze),et=await Jt.validate(Qe);if(et.issues)throw Error(`ID token claims validation failed: ${et.issues.map((tt)=>tt.message).join("; ")}`);if(et.value)return G(et.value);throw Error("ID token claims validation failed")}class k extends Error{constructor(Ye,Xe,Ze){super(Ye);this.code="conflict";this.name="StoreConflictError",this.kind=Xe,this.field=Ze,Object.setPrototypeOf(this,k.prototype)}}function O(Ye){return Ye instanceof k||typeof Ye==="object"&&Ye!=null&&Ye.code==="conflict"}class ye extends Error{constructor(Ye,Xe={}){super(Ye,{cause:Xe.cause});this.name="IoniteError",this.status=Xe.status,this.statusText=Xe.statusText,Object.setPrototypeOf(this,ye.prototype)}}function he(Ye){if(typeof Ye!=="object"||Ye==null)return!1;let Xe=Ye.type;if(Xe==="vault"||Xe==="aws"||Xe==="azure"||Xe==="gcp")return!0;if(Xe!=="mirror")return!1;let Ze=Ye;return he(Ze.from)&&Ze.from.type!=="mirror"&&he(Ze.to)&&Ze.to.type==="vault"}function Ge(Ye,Xe=Date.now()){let Ze=Ye?.integration;if(!Ze)return{state:"none"};if(Date.parse(Ze.expiresAt)<=Xe)return{state:"expired",integration:Ze};if(Ze.status==="consented"&&Ze.handoverAppliedAt&&Ye.configLocator)return{state:"integrated",integration:Ze};return{state:Ze.status,integration:Ze}}class Dt{constructor(){this.tenants=new Map;this.integrationHandles=new Map}async get(Ye){return this.tenants.get(Ye)}async list(Ye){let Xe=Array.from(this.tenants.values()),Ze=Math.max(0,Ye?.start??0),Qe=Ye?.limit,et=Xe.length,tt=Qe!=null?Ze+Qe:void 0,nt=Xe.slice(Ze,tt);return M(et,nt,Ze,Qe)}async upsert(Ye){let Xe=this.tenants.get(Ye.id);if(Xe?.integration?.handleHash!==Ye.integration?.handleHash){if(Xe?.integration)this.integrationHandles.delete(Xe.integration.handleHash);if(Ye.integration){let Ze=this.integrationHandles.get(Ye.integration.handleHash);if(Ze&&Ze!==Ye.id)throw Error("Integration handle hash is already in use");this.integrationHandles.set(Ye.integration.handleHash,Ye.id)}}return this.tenants.set(Ye.id,Ye),Ye}async delete(Ye){let Xe=this.tenants.get(Ye),Ze=Xe!==void 0;if(Xe?.integration)this.integrationHandles.delete(Xe.integration.handleHash);return this.tenants.delete(Ye),Ze?1:0}async setIntegration(Ye,Xe,Ze){let Qe=this.tenants.get(Ye);if(!Qe)return;let et=Qe.integration?.handleHash;if(Ze?.expectedHandleHash!==void 0&&(Ze.expectedHandleHash===null?et!==void 0:et!==Ze.expectedHandleHash))return;if(Ze?.expectedVersion!==void 0&&Qe.integration?.version!==Ze.expectedVersion)return;if(S(Qe.integration,Xe))return Qe;if(Xe){let nt=this.integrationHandles.get(Xe.handleHash);if(nt&&nt!==Ye)throw Error("Integration handle hash is already in use")}if(Qe.integration)this.integrationHandles.delete(Qe.integration.handleHash);if(Xe)this.integrationHandles.set(Xe.handleHash,Ye);let tt={...Qe,integration:Xe,updatedAt:new Date};return this.tenants.set(Ye,tt),tt}async getByIntegrationHandleHash(Ye){let Xe=this.integrationHandles.get(Ye);return Xe?this.tenants.get(Xe):void 0}}class Re{constructor(Ye={}){this.ionCache=Ye.ionCache,this.store=new Dt}async get(Ye){return this.store.get(Ye)}async list(Ye){return this.store.list(Ye)}async upsert(Ye){let Xe=await this.store.upsert(Ye);return this.ionCache?.delete(Ye.id),Xe}async delete(Ye){let Xe=await this.store.delete(Ye);return this.ionCache?.delete(Ye),Xe}async getIon(Ye){if(!this.ionCache)throw Error(`${this.constructor.name}.getIon() requires an app-owned ionCache. Pass { ionCache } (an lru-cache instance whose fetchMethod builds the tenant Ionite and whose dispose `+"closes it) — the SDK does not cache tenant runtimes. See the multi-tenant docs.");return this.ionCache.fetch(Ye)}async setIntegration(Ye,Xe,Ze){return this.store.setIntegration(Ye,Xe,Ze)}async getByIntegrationHandleHash(Ye){return this.store.getByIntegrationHandleHash(Ye)}}function Zt(Ye,Xe,Ze){return(async()=>{try{let Qe=await fetch(Ye,{method:"POST",headers:{...i,...r},body:JSON.stringify(Xe)});if(!Qe.ok)Ze.error("Failed to send webhook update",{"ion.operation":"webhook.update","ion.outcome":"failure",status:Qe.status,statusText:Qe.statusText})}catch(Qe){Ze.error("Failed to send webhook update",{"ion.operation":"webhook.update","ion.outcome":"failure"},Qe)}})()}async function Fe(Ye,Xe,Ze){return Zt(Ye,Xe,Ze)}var u="urn:ionite:scim:schemas:extension:ion:2.0:User",b="urn:ionite:scim:schemas:core:2.0:Workload",C="urn:ionite:scim:schemas:core:2.0:Customer";function rt(Ye,Xe,Ze,Qe,et){if(Ye===void 0||Ye===null){if(Ze)Qe.push({message:`${Xe} is required`,path:et});return}if(typeof Ye!=="string"){Qe.push({message:`${Xe} must be a string`,path:et});return}return Ye}function ht(Ye,Xe,Ze,Qe){if(Ye===void 0||Ye===null)return;if(typeof Ye!=="boolean"){Ze.push({message:`${Xe} must be a boolean`,path:Qe});return}return Ye}function Qt(Ye,Xe,Ze){if(Ye===void 0||Ye===null)return;if(typeof Ye!=="object"||Ye===null){Xe.push({message:"name must be an object",path:Ze});return}let Qe=Ye,et={};return et.formatted=rt(Qe.formatted,"formatted",!1,Xe,[...Ze,"formatted"]),et.familyName=rt(Qe.familyName,"familyName",!1,Xe,[...Ze,"familyName"]),et.givenName=rt(Qe.givenName,"givenName",!1,Xe,[...Ze,"givenName"]),et.middleName=rt(Qe.middleName,"middleName",!1,Xe,[...Ze,"middleName"]),et.honorificPrefix=rt(Qe.honorificPrefix,"honorificPrefix",!1,Xe,[...Ze,"honorificPrefix"]),et.honorificSuffix=rt(Qe.honorificSuffix,"honorificSuffix",!1,Xe,[...Ze,"honorificSuffix"]),et}function en(Ye,Xe,Ze){if(Ye===void 0||Ye===null)return;if(!Array.isArray(Ye)){Xe.push({message:"emails must be an array",path:Ze});return}let Qe=[];for(let et=0;et<Ye.length;et++){let tt=Ye[et],nt=[...Ze,et];if(typeof tt!=="object"||tt===null){Xe.push({message:"email must be an object",path:nt});continue}let st=tt,dt=rt(st.value,"value",!0,Xe,[...nt,"value"]);if(dt)Qe.push({value:dt,display:rt(st.display,"display",!1,Xe,[...nt,"display"]),type:rt(st.type,"type",!1,Xe,[...nt,"type"]),primary:ht(st.primary,"primary",Xe,[...nt,"primary"])})}return Qe.length>0?Qe:void 0}function tn(Ye,Xe,Ze){if(Ye===void 0||Ye===null)return;if(!Array.isArray(Ye)){Xe.push({message:"phoneNumbers must be an array",path:Ze});return}let Qe=[];for(let et=0;et<Ye.length;et++){let tt=Ye[et],nt=[...Ze,et];if(typeof tt!=="object"||tt===null){Xe.push({message:"phoneNumber must be an object",path:nt});continue}let st=tt,dt=rt(st.value,"value",!0,Xe,[...nt,"value"]);if(dt)Qe.push({value:dt,display:rt(st.display,"display",!1,Xe,[...nt,"display"]),type:rt(st.type,"type",!1,Xe,[...nt,"type"]),primary:ht(st.primary,"primary",Xe,[...nt,"primary"])})}return Qe.length>0?Qe:void 0}function nn(Ye,Xe,Ze){if(Ye===void 0||Ye===null)return;if(!Array.isArray(Ye)){Xe.push({message:"addresses must be an array",path:Ze});return}let Qe=[];for(let et=0;et<Ye.length;et++){let tt=Ye[et],nt=[...Ze,et];if(typeof tt!=="object"||tt===null){Xe.push({message:"address must be an object",path:nt});continue}let st=tt;Qe.push({formatted:rt(st.formatted,"formatted",!1,Xe,[...nt,"formatted"]),streetAddress:rt(st.streetAddress,"streetAddress",!1,Xe,[...nt,"streetAddress"]),locality:rt(st.locality,"locality",!1,Xe,[...nt,"locality"]),region:rt(st.region,"region",!1,Xe,[...nt,"region"]),postalCode:rt(st.postalCode,"postalCode",!1,Xe,[...nt,"postalCode"]),country:rt(st.country,"country",!1,Xe,[...nt,"country"]),type:rt(st.type,"type",!1,Xe,[...nt,"type"]),primary:ht(st.primary,"primary",Xe,[...nt,"primary"])})}return Qe.length>0?Qe:void 0}function sn(Ye,Xe,Ze){if(Ye===void 0||Ye===null)return;if(!Array.isArray(Ye)){Xe.push({message:"groups must be an array",path:Ze});return}let Qe=[];for(let et=0;et<Ye.length;et++){let tt=Ye[et],nt=[...Ze,et];if(typeof tt!=="object"||tt===null){Xe.push({message:"group must be an object",path:nt});continue}let st=tt,dt=rt(st.value,"value",!0,Xe,[...nt,"value"]);if(dt)Qe.push({value:dt,$ref:rt(st.$ref,"$ref",!1,Xe,[...nt,"$ref"]),display:rt(st.display,"display",!1,Xe,[...nt,"display"]),type:rt(st.type,"type",!1,Xe,[...nt,"type"])})}return Qe.length>0?Qe:void 0}function rn(Ye,Xe,Ze){if(Ye===void 0||Ye===null)return;if(!Array.isArray(Ye)){Xe.push({message:"roles must be an array",path:Ze});return}let Qe=[];for(let et=0;et<Ye.length;et++){let tt=Ye[et],nt=[...Ze,et];if(typeof tt!=="object"||tt===null){Xe.push({message:"role must be an object",path:nt});continue}let st=tt,dt=rt(st.value,"value",!0,Xe,[...nt,"value"]);if(dt)Qe.push({value:dt,display:rt(st.display,"display",!1,Xe,[...nt,"display"]),type:rt(st.type,"type",!1,Xe,[...nt,"type"]),primary:ht(st.primary,"primary",Xe,[...nt,"primary"])})}return Qe.length>0?Qe:void 0}function on(Ye,Xe,Ze){if(Ye===void 0||Ye===null)return;if(typeof Ye!=="object"||Ye===null){Xe.push({message:"Enterprise User extension must be an object",path:Ze});return}let Qe=Ye,et={};if(et.employeeNumber=rt(Qe.employeeNumber,"employeeNumber",!1,Xe,[...Ze,"employeeNumber"]),et.costCenter=rt(Qe.costCenter,"costCenter",!1,Xe,[...Ze,"costCenter"]),et.organization=rt(Qe.organization,"organization",!1,Xe,[...Ze,"organization"]),et.division=rt(Qe.division,"division",!1,Xe,[...Ze,"division"]),et.department=rt(Qe.department,"department",!1,Xe,[...Ze,"department"]),Qe.manager!==void 0&&Qe.manager!==null)if(typeof Qe.manager!=="object"||Qe.manager===null)Xe.push({message:"manager must be an object",path:[...Ze,"manager"]});else{let tt=Qe.manager;et.manager={value:rt(tt.value,"value",!1,Xe,[...Ze,"manager","value"]),$ref:rt(tt.$ref,"$ref",!1,Xe,[...Ze,"manager","$ref"]),displayName:rt(tt.displayName,"displayName",!1,Xe,[...Ze,"manager","displayName"])}}return et}function He(Ye){return{"~standard":{version:1,vendor:Ye,validate:(Xe)=>{if(typeof Xe!=="object"||Xe===null)return{issues:[{message:"Expected an object"}]};let Ze=Xe,Qe=[],et={},tt=rt(Ze.userName,"userName",!0,Qe,["userName"]);if(!tt)return{issues:Qe};if(et.userName=tt,et.id=rt(Ze.id,"id",!1,Qe,["id"]),et.externalId=rt(Ze.externalId,"externalId",!1,Qe,["externalId"]),et.displayName=rt(Ze.displayName,"displayName",!1,Qe,["displayName"]),et.nickName=rt(Ze.nickName,"nickName",!1,Qe,["nickName"]),et.profileUrl=rt(Ze.profileUrl,"profileUrl",!1,Qe,["profileUrl"]),et.title=rt(Ze.title,"title",!1,Qe,["title"]),et.userType=rt(Ze.userType,"userType",!1,Qe,["userType"]),et.preferredLanguage=rt(Ze.preferredLanguage,"preferredLanguage",!1,Qe,["preferredLanguage"]),et.locale=rt(Ze.locale,"locale",!1,Qe,["locale"]),et.timezone=rt(Ze.timezone,"timezone",!1,Qe,["timezone"]),Ze.password!==void 0)Qe.push({message:"password is not supported: the SDK does not accept credentials via SCIM",path:["password"]});et.active=ht(Ze.active,"active",Qe,["active"]),et.name=Qt(Ze.name,Qe,["name"]),et.emails=en(Ze.emails,Qe,["emails"]),et.phoneNumbers=tn(Ze.phoneNumbers,Qe,["phoneNumbers"]),et.addresses=nn(Ze.addresses,Qe,["addresses"]),et.groups=sn(Ze.groups,Qe,["groups"]),et.roles=rn(Ze.roles,Qe,["roles"]);let nt="urn:ietf:params:scim:schemas:extension:enterprise:2.0:User";if(Ze[nt]!==void 0)et[nt]=on(Ze[nt],Qe,[nt]);if(Ze.schemas!==void 0)if(Array.isArray(Ze.schemas))et.schemas=Ze.schemas.filter((st)=>typeof st==="string");else Qe.push({message:"schemas must be an array",path:["schemas"]});if(Ze.meta!==void 0)if(typeof Ze.meta==="object"&&Ze.meta!==null){let st=Ze.meta;et.meta={resourceType:typeof st.resourceType==="string"?st.resourceType:void 0,created:typeof st.created==="string"?st.created:void 0,lastModified:typeof st.lastModified==="string"?st.lastModified:void 0,location:typeof st.location==="string"?st.location:void 0,version:typeof st.version==="string"?st.version:void 0}}else Qe.push({message:"meta must be an object",path:["meta"]});if(Qe.length>0)return{issues:Qe};return{value:et}}}}}function an(Ye,Xe,Ze){if(Ye===void 0||Ye===null)return;if(!Array.isArray(Ye)){Xe.push({message:"members must be an array",path:Ze});return}let Qe=[];for(let et=0;et<Ye.length;et++){let tt=Ye[et],nt=[...Ze,et];if(typeof tt!=="object"||tt===null){Xe.push({message:"member must be an object",path:nt});continue}let st=tt,dt=rt(st.value,"value",!0,Xe,[...nt,"value"]);if(dt){let ut=rt(st.type,"type",!1,Xe,[...nt,"type"]);if(ut!==void 0&&ut!=="User"&&ut!=="Group"&&ut!=="Workload"&&ut!=="Customer")Xe.push({message:"type must be 'User', 'Group', 'Workload', or 'Customer'",path:[...nt,"type"]});Qe.push({value:dt,$ref:rt(st.$ref,"$ref",!1,Xe,[...nt,"$ref"]),display:rt(st.display,"display",!1,Xe,[...nt,"display"]),type:ut==="User"||ut==="Group"||ut==="Workload"||ut==="Customer"?ut:void 0})}}return Qe.length>0?Qe:void 0}function Je(Ye){return{"~standard":{version:1,vendor:Ye,validate:(Xe)=>{if(typeof Xe!=="object"||Xe===null)return{issues:[{message:"Expected an object"}]};let Ze=Xe,Qe=[],et={},tt=rt(Ze.displayName,"displayName",!0,Qe,["displayName"]);if(!tt)return{issues:Qe};if(et.displayName=tt,et.id=rt(Ze.id,"id",!1,Qe,["id"]),et.externalId=rt(Ze.externalId,"externalId",!1,Qe,["externalId"]),et.members=an(Ze.members,Qe,["members"]),Ze.schemas!==void 0)if(Array.isArray(Ze.schemas))et.schemas=Ze.schemas.filter((nt)=>typeof nt==="string");else Qe.push({message:"schemas must be an array",path:["schemas"]});if(Ze.meta!==void 0)if(typeof Ze.meta==="object"&&Ze.meta!==null){let nt=Ze.meta;et.meta={resourceType:typeof nt.resourceType==="string"?nt.resourceType:void 0,created:typeof nt.created==="string"?nt.created:void 0,lastModified:typeof nt.lastModified==="string"?nt.lastModified:void 0,location:typeof nt.location==="string"?nt.location:void 0,version:typeof nt.version==="string"?nt.version:void 0}}else Qe.push({message:"meta must be an object",path:["meta"]});if(Qe.length>0)return{issues:Qe};return{value:et}}}}}function Mt(Ye,Xe){if(Ye===void 0)return;if(typeof Ye!=="object"||Ye===null){Xe.push({message:"meta must be an object",path:["meta"]});return}let Ze=Ye;return{resourceType:typeof Ze.resourceType==="string"?Ze.resourceType:void 0,created:typeof Ze.created==="string"?Ze.created:void 0,lastModified:typeof Ze.lastModified==="string"?Ze.lastModified:void 0,location:typeof Ze.location==="string"?Ze.location:void 0,version:typeof Ze.version==="string"?Ze.version:void 0}}function Ut(Ye,Xe){if(Ye===void 0)return;if(!Array.isArray(Ye)){Xe.push({message:"schemas must be an array",path:["schemas"]});return}return Ye.filter((Ze)=>typeof Ze==="string")}function Lt(Ye,Xe){if(Ye===void 0)return;if(typeof Ye!=="object"||Ye===null||Array.isArray(Ye)){Xe.push({message:"attributes must be an object",path:["attributes"]});return}return{...Ye}}var ae={"~standard":{version:1,vendor:"ionite",validate:(Ye)=>{let Xe=[];if(typeof Ye!=="object"||Ye===null)return{issues:[{message:"Workload must be an object"}]};let Ze=Ye,Qe={schemas:Ut(Ze.schemas,Xe),id:rt(Ze.id,"id",!1,Xe,["id"]),externalId:rt(Ze.externalId,"externalId",!1,Xe,["externalId"]),userName:rt(Ze.userName,"userName",!1,Xe,["userName"]),displayName:rt(Ze.displayName,"displayName",!1,Xe,["displayName"]),description:rt(Ze.description,"description",!1,Xe,["description"]),active:typeof Ze.active==="boolean"?Ze.active:void 0,providerId:rt(Ze.providerId,"providerId",!1,Xe,["providerId"]),requestUrl:rt(Ze.requestUrl,"requestUrl",!1,Xe,["requestUrl"]),attributes:Lt(Ze.attributes,Xe),meta:Mt(Ze.meta,Xe)};if(Xe.length>0)return{issues:Xe};return{value:Qe}}}},ce={"~standard":{version:1,vendor:"ionite",validate:(Ye)=>{let Xe=[];if(typeof Ye!=="object"||Ye===null)return{issues:[{message:"Customer must be an object"}]};let Ze=Ye,Qe=Ze.emails,et;if(Qe!==void 0)if(!Array.isArray(Qe))Xe.push({message:"emails must be an array",path:["emails"]});else et=Qe.filter((nt)=>typeof nt==="object"&&nt!==null&&typeof nt.value==="string");let tt={schemas:Ut(Ze.schemas,Xe),id:rt(Ze.id,"id",!1,Xe,["id"]),externalId:rt(Ze.externalId,"externalId",!1,Xe,["externalId"]),userName:rt(Ze.userName,"userName",!1,Xe,["userName"]),displayName:rt(Ze.displayName,"displayName",!1,Xe,["displayName"]),active:typeof Ze.active==="boolean"?Ze.active:void 0,emails:et,providerId:rt(Ze.providerId,"providerId",!1,Xe,["providerId"]),requestUrl:rt(Ze.requestUrl,"requestUrl",!1,Xe,["requestUrl"]),attributes:Lt(Ze.attributes,Xe),meta:Mt(Ze.meta,Xe)};if(Xe.length>0)return{issues:Xe};return{value:tt}}}};
|
|
4
|
+
export{F,Ae,d,R,A,I,o,M,c,Ie,H,f,e,g,ue,J,de,Se,ve,ke,D,j,T,N,Y,L,n,p,X,Z,le,xe,Ee,K,Pe,_e,Ue,Q,ee,W,te,pe,me,m,q,be,ne,z,v,x,V,Oe,E,Ce,Me,De,P,re,se,y,s,je,_,fe,ge,i,oe,Ne,Le,r,w,h,$e,Ke,Te,B,a,l,t,ie,We,we,qe,U,S,ze,Ve,G,Be,k,O,ye,he,Ge,Re,Fe,u,b,C,He,Je,ae,ce};
|
package/package.json
CHANGED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
function ze(ge){if(ge===void 0||ge===null)return[];return Array.isArray(ge)?ge:[ge]}function De(ge){if(typeof ge!=="string")return;return ge.endsWith("/")?ge.slice(0,-1):ge}function nt(ge,fe){if(De(fe.issuer)!==De(ge.claims?.iss))return!1;let ye=ze(fe.audience);if(ye.length===0)return!1;let he=ze(ge.claims?.aud),Te=typeof ge.claims?.azp==="string"?ge.claims.azp:void 0;if(!(ye.some((xe)=>he.includes(xe))||(Te?ye.includes(Te):!1)))return!1;let Ae=ge.clientId??ge.workloadId??ge.claims?.sub;return fe.clientId===Ae}function E(ge,fe){let ye=ge?.trustedProvisioningClients;if(!ye?.length)return;let he=new Set;for(let Te of ye){if(!nt(fe,Te))continue;for(let be of Te.permissions??[])he.add(be)}return he.size>0?he:void 0}function X(ge){let fe=ge?.trustedProvisioningClients;if(!fe?.length)return[];let ye=[];for(let he of fe)for(let Te of he.permissions??[])ye.push({subject:he.clientId,subjectType:"workload",targetType:"permission",target:Te,status:"active",provenance:{source:"eci-trusted",actor:he.clientId}});return ye}var o=["id","name","displayName","description","providerId","source","deprecated","type","parent","resources","assignableSubjectTypes","recommendedSubjectTypes","requestable","riskLevel","requestUrl","action","permissionTypes","resourceTypes","applyToSubResources","permissions","groups","roles"],h=["id","userName","name","email","avatar","userType","tenantId","externalId","providerId","requestUrl","ecid","accountClass","displayName","scimName","emails","nickName","active","title","preferredLanguage","locale","timezone","phoneNumbers","ims","photos","addresses","roles","groups","entitlements","x509Certificates","scimEnterprise","scimSchemaExtensions","createdAt","updatedAt","sso"],S=["id","userName","name","email","avatar","userType","tenantId","externalId","providerId","requestUrl","displayName","emails","phoneNumbers","active","createdAt","updatedAt","ciam"],b=["id","clientId","displayName","description","externalId","providerId","requestUrl","ecid","active","scopes","createdAt","updatedAt","metadata"];function r(ge,fe){let ye=new Set(fe),he=Object.fromEntries(Object.entries(ge).filter(([Te,be])=>!ye.has(Te)&&be!==void 0));return Object.keys(he).length>0?he:void 0}function R(ge,fe,ye,he){let Te=fe.length,be=he??ge,Ae=be>0?Math.floor(ye/be)+1:1,xe=be>0?Math.ceil(ge/be):0;return{total:ge,count:Te,items:fe,size:be,page:Ae,pages:xe}}async function*i(ge,fe,ye=1000){let he=0;while(!0){let Te=await ge(he,ye);if(Te.items.length===0)break;for(let be of Te.items)yield(fe?await fe(be):be)??be;if(Te.items.length<ye||he+Te.items.length>=Te.total)break;he+=ye}}function Q(ge,fe){if(!fe)return!0;if(fe.requestable!==void 0&&Boolean(ge.requestable)!==fe.requestable)return!1;if(fe.userName!==void 0){if((ge.userName??ge.clientId)!==fe.userName)return!1}if(fe.externalId!==void 0&&ge.externalId!==fe.externalId)return!1;if(fe.updatedAfter!==void 0){if(!(ge.updatedAt instanceof Date))return!1;let ye=fe.updatedAfter instanceof Date?fe.updatedAfter:new Date(fe.updatedAfter);if(Number.isNaN(ye.getTime())||ge.updatedAt<=ye)return!1}return!0}var U=["basic","elevated","privileged","admin"],u="basic",e="urn:ionite:params:scim:schemas:extension:authz:2.0:Group",d=["user","workload","customer"];function W(ge){let{assignableSubjectTypes:fe,recommendedSubjectTypes:ye}=ge,he=ge.id?` for "${ge.id}"`:"";if(!fe||fe.length===0)throw Error(`assignableSubjectTypes${he} is required and must be a non-empty subset of [${d.join(", ")}]`);let Te=fe.filter((be)=>!d.includes(be));if(Te.length>0)throw Error(`assignableSubjectTypes${he} contains values outside the platform ceiling [${d.join(", ")}]: ${Te.join(", ")}`);if(ye){let be=ye.filter((Ae)=>!fe.includes(Ae));if(be.length>0)throw Error(`recommendedSubjectTypes${he} must be a subset of assignableSubjectTypes; offending values: ${be.join(", ")}`)}}function M(ge,fe="subjectType"){if(ge!=="user"&&ge!=="customer"&&ge!=="workload")throw Error(`${fe} is required and must be one of [user, customer, workload]; got ${ge===void 0?"undefined":JSON.stringify(ge)}`)}class V extends Error{constructor(ge,fe,ye){super(ge);this.name="AssignmentPolicyError",this.policy=fe,this.requestUrl=ye,Object.setPrototypeOf(this,V.prototype)}}function H(ge){return typeof ge.groups?.get==="function"}function ee(ge){return H(ge)?ge:F(ge)}class Oe extends Error{constructor(ge){super(`defineCatalog: ${ge}`);this.name="CodeCatalogError"}}function We(ge){return typeof ge==="string"?ge:ge.id}function rt(ge){for(let fe of Object.values(ge))if(Array.isArray(fe))Object.freeze(fe);Object.freeze(ge)}function Ge(ge,fe){try{W(fe)}catch(ye){throw new Oe(`${ge} "${fe.id}": ${ye instanceof Error?ye.message:String(ye)}`)}}function Ke(ge){let fe=new Map(ge.map((he)=>[he.id,he])),ye=Object.freeze([...ge]);return Object.freeze({get:(he)=>fe.get(he),list:()=>ye})}function F(ge){let fe=ge.groups??[],ye=ge.roles??[],he=ge.permissions??[],Te=new Map,be=(Se,ke)=>{for(let Ce of ke){if(!Ce.id)throw new Oe(`a ${Se} is missing its required "id".`);let we=Te.get(Ce.id);if(we)throw new Oe(`duplicate id "${Ce.id}" (declared as both ${we} and ${Se}).`);Te.set(Ce.id,Se)}};be("group",fe),be("role",ye),be("permission",he);let Ae=(Se,ke,Ce,we)=>{let je=We(we),Ie=Te.get(je);if(Ie===void 0)throw new Oe(`${Se} "${ke}" references ${Ce} "${je}", which is not declared in the catalog.`);if(Ie!==Ce)throw new Oe(`${Se} "${ke}" references "${je}" as a ${Ce}, but it is a ${Ie}.`)};for(let Se of ye){Ge("role",Se);for(let ke of Se.permissions??[])Ae("role",Se.id,"permission",ke)}for(let Se of he)Ge("permission",Se);for(let Se of fe){Ge("group",Se);for(let ke of Se.groups??[])Ae("group",Se.id,"group",ke);for(let ke of Se.roles??[])Ae("group",Se.id,"role",ke);for(let ke of Se.permissions??[])Ae("group",Se.id,"permission",ke)}let xe=new Map(fe.map((Se)=>[Se.id,Se])),Pe=new Map,Ee=(Se,ke)=>{let Ce=Pe.get(Se);if(Ce==="done")return;if(Ce==="visiting")throw new Oe(`group composition cycle: ${[...ke,Se].join(" -> ")}.`);Pe.set(Se,"visiting");for(let we of xe.get(Se)?.groups??[])Ee(We(we),[...ke,Se]);Pe.set(Se,"done")};for(let Se of fe)Ee(Se.id,[]);for(let Se of[...fe,...ye,...he])rt(Se);return Object.freeze({groups:Ke(fe),roles:Ke(ye),permissions:Ke(he)})}function A(ge,fe){let ye=ge?.groups.get(fe);if(ye)return{entity:ye,kind:"group"};let he=ge?.roles.get(fe);if(he)return{entity:he,kind:"role"};let Te=ge?.permissions.get(fe);return Te?{entity:Te,kind:"permission"}:void 0}function I(ge,fe){return fe==="group"?ge.groups:fe==="role"?ge.roles:ge.permissions}function y(ge,fe,ye){let he={...fe,...ye,id:fe.id,requestable:fe.requestable,source:ye.source??"code",assignableSubjectTypes:fe.assignableSubjectTypes,recommendedSubjectTypes:fe.recommendedSubjectTypes};if(ge==="group"){let be=fe;return{...he,groups:be.groups,roles:be.roles,permissions:be.permissions,resources:be.resources}}if(ge==="role")return{...he,permissions:fe.permissions};let Te=fe;return{...he,action:Te.action,permissionTypes:Te.permissionTypes,resourceTypes:Te.resourceTypes,applyToSubResources:Te.applyToSubResources}}async function v(ge,fe,ye){let he=await ye.get(fe.id);if(he)return y(ge,fe,he);let Te=Object.entries(fe).filter(([ke])=>o.includes(ke)),{riskLevel:be,displayName:Ae,...xe}=Object.fromEntries(Te),Pe={...xe,source:"code"},Ee=ye.insertIfAbsent(Pe);await Ee.ready();let Se=await ye.get(fe.id)??Ee;return y(ge,fe,Se)}async function j(ge,fe,ye){let he=async(Te,be)=>{let Ae=ye?[await Te.get(ye)].filter((xe)=>xe!==void 0):i((xe,Pe)=>Te.list({start:xe,limit:Pe}));for await(let xe of Ae){if(xe.source!=="code"||xe.deprecated===!0||be?.get(xe.id))continue;await Te.set({...xe,deprecated:!0}).ready()}};await he(fe.groups,ge?.groups),await he(fe.roles,ge?.roles),await he(fe.permissions,ge?.permissions)}function qe(ge,fe,ye){let he=()=>{if(!ye)throw Error(`Cannot write ${ge} definitions: no AccessCatalogStore is wired (the code-declared catalog is read-only).`);return ye};return{async get(be){let Ae=fe.get(be);if(!ye)return Ae;let xe=await ye.get(be);return xe&&Ae?y(ge,Ae,xe):xe??Ae},set(be){return he().set(be)},insertIfAbsent(be){return he().insertIfAbsent(be)},async delete(be){await he().delete(be)},async list(be){let Ae=Math.max(0,be?.start??0),xe=be?.limit,Pe=be?.filter?.requestable,Ee=[];if(ye)for await(let we of i((je,Ie)=>ye.list({start:je,limit:Ie})))Ee.push(we);let Se=new Map(Ee.map((we)=>[we.id,we])),ke=[...fe.list().map((we)=>{let je=Se.get(we.id);return je?y(ge,we,je):we}),...Ee.filter((we)=>!fe.get(we.id))].filter((we)=>Pe===void 0||Boolean(we.requestable)===Pe),Ce=xe!=null?Ae+xe:void 0;return R(ke.length,ke.slice(Ae,Ce),Ae,xe)}}}function x(ge,fe){if(!ge)return fe;return{groups:qe("group",ge.groups,fe?.groups),roles:qe("role",ge.roles,fe?.roles),permissions:qe("permission",ge.permissions,fe?.permissions),afterChange:fe?.afterChange?.bind(fe)}}function n(ge){if(typeof ge==="string")return ge.trim();if(ge&&typeof ge==="object"){let fe=ge;for(let ye of["id","value","name","displayName"]){let he=fe[ye];if(typeof he==="string"&&he.trim())return he.trim()}}return""}function c(ge){let fe=n(ge.subject),ye=n(ge.target);if(!fe)throw Error("Access change subject must resolve to a non-empty id.");if(!ge.targetType)throw Error("Access change targetType is required.");if(!ye)throw Error("Access change target must resolve to a non-empty id.");let he=(ge.resources??[]).map((be)=>be.trim()).filter(Boolean),Te=!ge.applyToApplication&&he.length>0?[...he].sort().join(","):"app";return M(ge.subjectType,"Access change subjectType"),`${ge.subjectType}:${fe}:${ge.targetType}:${ye}:${Te}`}function it(ge){let fe=(ge.resources??[]).map((ye)=>ye.trim()).filter(Boolean);if(ge.applyToApplication||fe.length===0)return[void 0];return fe}async function Fe(ge,fe,ye,he,Te){if(he==="resource")return ye?.get(Te);let be=fe?he==="group"?fe.groups.get(Te):he==="role"?fe.roles.get(Te):fe.permissions.get(Te):void 0;if(ge){let xe=await(he==="group"?ge.groups:he==="role"?ge.roles:ge.permissions).get(Te);if(xe)return be?y(he,be,xe):xe}return be}class _{constructor(ge,fe,ye){this.catalog=ge;this.resources=fe;this.code=ye;this.nodes=new Map;this.subResources=new Map;this.children=new Map}getNode(ge,fe){let ye=`${ge}:${fe}`,he=this.nodes.get(ye);if(!he)he=Fe(this.catalog,this.code,this.resources,ge,fe),this.nodes.set(ye,he);return he}resourceChildren(ge){let fe=this.children.get(ge);if(!fe)fe=Je(ge,this.view()),this.children.set(ge,fe);return fe}resourceAndSubResourceIds(ge){let fe=this.subResources.get(ge);if(!fe)fe=Ze(ge,this.view()),this.subResources.set(ge,fe);return fe}view(){return{catalog:this.catalog,code:this.code,resources:this.resources,cache:this}}invalidate(ge){this.clear()}clear(){this.nodes.clear(),this.subResources.clear(),this.children.clear()}}async function Ue(ge,fe,ye){if(ge.cache)return ge.cache.getNode(fe,ye);return Fe(ge.catalog,ge.code,ge.resources,fe,ye)}async function He(ge,fe){if(typeof ge!=="string")return ge;return Ue(fe,"resource",ge)}async function Je(ge,fe){if(fe.resources?.children)return fe.resources.children(ge);let ye=await He(ge,fe),he=[];for(let Te of ye?.resources??[]){let be=await He(Te,fe);if(be)he.push(be);else if(typeof Te==="string"&&Te.trim())he.push({id:Te.trim()})}return he}async function Ye(ge,fe){if(fe.cache)return fe.cache.resourceChildren(ge);return Je(ge,fe)}async function Ze(ge,fe){let ye=[],he=new Set,Te=async(be)=>{if(!be||he.has(be))return;he.add(be),ye.push(be);for(let Ae of await Ye(be,fe))await Te(n(Ae))};return await Te(n(ge)),ye}async function O(ge,fe){let ye=ge.id??c(ge),he=n(ge.subject);if(!he)throw Error("Access change subject must resolve to a non-empty id.");M(ge.subjectType,"Access change subjectType");let Te=ge.subjectType,be=it(ge),Ae=[],xe=new Set,Pe=new Set,Ee=(Ce,we,je)=>{if(!we)return;let Ie=`${Ce}:${we}:${je??""}`;if(xe.has(Ie))return;xe.add(Ie),Ae.push({subject:he,subjectType:Te,targetType:Ce,target:we,resource:je,rootId:ye})},Se=async(Ce,we,je)=>{for(let Ie of be)if(Ce==="permission"&&je?.applyToSubResources&&Ie){let _e=fe.cache?await fe.cache.resourceAndSubResourceIds(Ie):await Ze(Ie,fe);for(let Ne of _e)Ee("permission",we,Ne)}else Ee(Ce,we,Ie)},ke=async(Ce,we)=>{let je=n(we);if(!je)return;let Ie=`${Ce}:${je}`;if(Pe.has(Ie))return;if(Pe.add(Ie),Ce==="group"){let Ne=typeof we==="string"?await Ue(fe,"group",je):we;await Se("group",je,void 0);for(let ve of Ne?.groups??[])await ke("group",ve);for(let ve of Ne?.roles??[])await ke("role",ve);for(let ve of Ne?.permissions??[])await ke("permission",ve);return}if(Ce==="role"){let Ne=typeof we==="string"?await Ue(fe,"role",je):we;await Se("role",je,void 0);for(let ve of Ne?.permissions??[])await ke("permission",ve);return}let _e=typeof we==="string"?await Ue(fe,"permission",je):we;await Se("permission",je,_e)};return await ke(ge.targetType,ge.target),Ae}async function z(ge,fe,ye,he){let{accessStore:Te,accessIndex:be,catalogStore:Ae,code:xe,resources:Pe}=ye;if(!be||!Ae&&!xe)return 0;if(!Te)return await be.replaceSubject(ge,fe,[]),0;let Ee={catalog:Ae,code:xe,resources:Pe,cache:he},Se=[],ke=0;for await(let Ce of i((we,je)=>Te.listBySubject(ge,fe,{start:we,limit:je}))){let we=Ce.id??c(Ce),je=await O({...Ce,id:we},Ee);Se.push(...je),ke+=1}return await be.replaceSubject(ge,fe,Se),ke}async function te(ge,fe,ye){let he=new Map,Te=new Map,be=new Map,Ae=new Map,xe=new Set,Pe=(ke,Ce)=>Ue(ye,ke,Ce),Ee=async(ke)=>{let Ce=n(ke);if(!Ce||Ae.has(Ce))return;let we=typeof ke==="string"?await Pe("resource",Ce):ke;if(!we)return;Ae.set(Ce,we);let je=we.resources??(we.id?await Ye(we.id,ye):[]);for(let Ie of je)await Ee(Ie)},Se=async(ke,Ce)=>{let we=n(Ce);if(!we)return;let je=`${ke}:${we}`;if(xe.has(je))return;if(xe.add(je),ke==="group"){let _e=typeof Ce==="string"?await Pe("group",we):Ce;if(!_e)return;he.set(we,_e);for(let Ne of _e.groups??[])await Se("group",Ne);for(let Ne of _e.roles??[])await Se("role",Ne);for(let Ne of _e.permissions??[])await Se("permission",Ne);for(let Ne of _e.resources??[])await Ee(Ne);return}if(ke==="role"){let _e=typeof Ce==="string"?await Pe("role",we):Ce;if(!_e)return;Te.set(we,_e);for(let Ne of _e.permissions??[])await Se("permission",Ne);return}let Ie=typeof Ce==="string"?await Pe("permission",we):Ce;if(!Ie)return;be.set(we,Ie)};if(xe.add(`${fe}:${n(ge)}`),fe==="group"){let ke=ge;for(let Ce of ke.groups??[])await Se("group",Ce);for(let Ce of ke.roles??[])await Se("role",Ce);for(let Ce of ke.permissions??[])await Se("permission",Ce);for(let Ce of ke.resources??[])await Ee(Ce)}else{let ke=ge;for(let Ce of ke.permissions??[])await Se("permission",Ce)}return{groups:[...he.values()],roles:[...Te.values()],permissions:[...be.values()],resources:[...Ae.values()]}}var ne="ecid",Xe=/^ecid:([A-Za-z0-9._-]+):([A-Za-z0-9_-]+)$/,ot=/^[A-Za-z0-9._-]+$/,at=/^[A-Za-z0-9_-]+$/;class k extends Error{constructor(ge){super(ge);this.name="EcidFormatError"}}function J(ge){return typeof ge==="string"&&Xe.test(ge)}function re(ge,fe){if(!ge||!ot.test(ge))throw new k(`Invalid ECID realm ${JSON.stringify(ge)}: must be non-empty and match [A-Za-z0-9._-].`);if(!fe||!at.test(fe))throw new k(`Invalid ECID opaque ${JSON.stringify(fe)}: must be non-empty and match [A-Za-z0-9_-].`);return`ecid:${ge}:${fe}`}function se(ge){let fe=typeof ge==="string"?ge.match(Xe):null;if(!fe)throw new k(`Invalid ECID ${JSON.stringify(ge)}: expected "ecid:<realm>:<opaque>".`);return{realm:fe[1],opaque:fe[2]}}function w(ge){if(!J(ge))throw new k(`Invalid ECID ${JSON.stringify(ge)}: expected "ecid:<realm>:<opaque>".`);return ge}function N(ge){return{"~standard":{version:1,vendor:ge,validate:(fe)=>{if(typeof fe!=="object"||fe===null)return{issues:[{message:"Expected an object"}]};let ye=fe,he=[],Te={};if("code"in ye)if(typeof ye.code==="string")Te.code=ye.code;else he.push({message:"code must be a string",path:["code"]});else if(!("error"in ye))he.push({message:"code is required",path:["code"]});if("state"in ye)if(typeof ye.state==="string"||ye.state===void 0)Te.state=ye.state;else he.push({message:"state must be a string",path:["state"]});if("session_state"in ye)if(typeof ye.session_state==="string"||ye.session_state===void 0)Te.session_state=ye.session_state;else he.push({message:"session_state must be a string",path:["session_state"]});if("error"in ye){if(typeof ye.error==="string")Te.error=ye.error;else he.push({message:"error must be a string",path:["error"]});if("error_description"in ye)if(typeof ye.error_description==="string"||ye.error_description===void 0)Te.error_description=ye.error_description;else he.push({message:"error_description must be a string",path:["error_description"]});if("error_uri"in ye)if(typeof ye.error_uri==="string"||ye.error_uri===void 0)Te.error_uri=ye.error_uri;else he.push({message:"error_uri must be a string",path:["error_uri"]})}if("iss"in ye)if(typeof ye.iss==="string"||ye.iss===void 0)Te.iss=ye.iss;else he.push({message:"iss must be a string",path:["iss"]});if(he.length>0)return{issues:he};return{value:Te}}}}}function L(ge){return{"~standard":{version:1,vendor:ge,validate:(fe)=>{if(typeof fe!=="object"||fe===null)return{issues:[{message:"Expected an object"}]};let ye=fe,he=[],Te={};if("access_token"in ye)if(typeof ye.access_token==="string")Te.access_token=ye.access_token;else he.push({message:"access_token must be a string",path:["access_token"]});else he.push({message:"access_token is required",path:["access_token"]});if("id_token"in ye)if(typeof ye.id_token==="string")Te.id_token=ye.id_token;else he.push({message:"id_token must be a string",path:["id_token"]});else he.push({message:"id_token is required",path:["id_token"]});if("token_type"in ye)if(typeof ye.token_type==="string")Te.token_type=ye.token_type;else he.push({message:"token_type must be a string",path:["token_type"]});else he.push({message:"token_type is required",path:["token_type"]});if("refresh_token"in ye)if(typeof ye.refresh_token==="string"||ye.refresh_token===void 0)Te.refresh_token=ye.refresh_token;else he.push({message:"refresh_token must be a string",path:["refresh_token"]});if("scope"in ye)if(typeof ye.scope==="string"||ye.scope===void 0)Te.scope=ye.scope;else he.push({message:"scope must be a string",path:["scope"]});if("session_state"in ye)if(typeof ye.session_state==="string"||ye.session_state===void 0)Te.session_state=ye.session_state;else he.push({message:"session_state must be a string",path:["session_state"]});if("expires"in ye)if(typeof ye.expires==="string"||ye.expires===void 0)Te.expires=ye.expires;else he.push({message:"expires must be a string",path:["expires"]});if("expires_in"in ye)if(typeof ye.expires_in==="number"||ye.expires_in===void 0)Te.expires_in=ye.expires_in;else he.push({message:"expires_in must be a number",path:["expires_in"]});if("refresh_expires_in"in ye)if(typeof ye.refresh_expires_in==="number"||ye.refresh_expires_in===void 0)Te.refresh_expires_in=ye.refresh_expires_in;else he.push({message:"refresh_expires_in must be a number",path:["refresh_expires_in"]});if(he.length>0)return{issues:he};return{value:Te}}}}}function l(ge){return{"~standard":{version:1,vendor:ge,validate:(fe)=>{if(typeof fe!=="object"||fe===null)return{issues:[{message:"Expected an object"}]};let ye=fe,he=[],Te={...ye},be=["iss","sub"];for(let Ee of be)if(typeof ye[Ee]!=="string")he.push({message:`${Ee} is required and must be a string`,path:[Ee]});let Ae=ye.aud;if(!(typeof Ae==="string"||Array.isArray(Ae)&&Ae.length>0&&Ae.every((Ee)=>typeof Ee==="string")))he.push({message:"aud is required and must be a string or a non-empty array of strings",path:["aud"]});if(typeof ye.exp!=="number")he.push({message:"exp is required and must be a number",path:["exp"]});let Pe=["sid","name","email","preferred_username","picture"];for(let Ee of Pe)if(Ee in ye&&ye[Ee]!==void 0){if(typeof ye[Ee]!=="string")he.push({message:`${Ee} must be a string`,path:[Ee]})}if("iat"in ye&&ye.iat!==void 0&&typeof ye.iat!=="number")he.push({message:"iat must be a number",path:["iat"]});if(he.length>0)return{issues:he};return{value:Te}}}}}function a(ge){let fe=ge["~standard"];return Object.assign(ge,{validate(ye){return Promise.resolve(fe.validate(ye))}})}function t(ge,fe="Assertion failed. Required value is null or undefined."){if(ge===void 0||ge===null)throw Error(fe);return ge}function D(ge,fe){return Response.json({error:"validation_failed",message:fe,issues:ge},{status:400,headers:{"Content-Type":"application/json"}})}function oe(ge,fe,ye=[]){let he={...ge,...fe};for(let Te of ye)he[Te]=ge?.[Te]??fe?.[Te];return he}function Y(ge){let fe="",ye=0,he=ge.length;while(ye<he){let Te=ge[ye];if(Te==='"'||Te==="'"){let be=Te;fe+=Te,ye++;while(ye<he){let Ae=ge[ye];if(Ae==="\\"){if(fe+=Ae,ye+1<he)fe+=ge[ye+1],ye+=2;else ye++;continue}if(Ae===be){fe+=Ae,ye++;break}fe+=Ae,ye++}continue}if(Te==="/"&&ye+1<he){let be=ge[ye+1];if(be==="/"){ye+=2;while(ye<he&&ge[ye]!==`
|
|
2
|
-
`)ye++;if(ye<he)fe+=`
|
|
3
|
-
`;ye++;continue}if(be==="*"){ye+=2;while(ye+1<he&&!(ge[ye]==="*"&&ge[ye+1]==="/"))ye++;ye+=2;continue}}fe+=Te,ye++}return fe}function ct(ge){let fe="",ye=!1,he=!1;for(let Te=0;Te<ge.length;Te+=1){let be=ge[Te];if(ye){if(fe+=be,he)he=!1;else if(be==="\\")he=!0;else if(be==='"')ye=!1;continue}if(be==='"'){ye=!0,fe+=be;continue}if(be===","){let Ae=Te+1;while(Ae<ge.length&&/\s/.test(ge[Ae]??""))Ae+=1;let xe=ge[Ae];if(xe==="}"||xe==="]")continue}fe+=be}return fe}function ie(ge){let fe=ct(Y(ge));return JSON.parse(fe)}function C(ge){return ge==="/"?ge:ge.replace(/\/+$/,"")}function Be(ge){if(ge===null||typeof ge!=="object"||Array.isArray(ge))return!1;let fe=Object.getPrototypeOf(ge);return fe===Object.prototype||fe===null}function Le(ge){return Object.keys(ge).filter((fe)=>ge[fe]!==void 0).sort()}function p(ge,fe){if(Object.is(ge,fe))return!0;if(ge===null||fe===null)return ge===fe;if(Array.isArray(ge)||Array.isArray(fe)){if(!Array.isArray(ge)||!Array.isArray(fe)||ge.length!==fe.length)return!1;for(let Te=0;Te<ge.length;Te+=1)if(!p(ge[Te],fe[Te]))return!1;return!0}if(!Be(ge)||!Be(fe))return!1;let ye=Le(ge),he=Le(fe);if(ye.length!==he.length)return!1;for(let Te=0;Te<ye.length;Te+=1)if(ye[Te]!==he[Te])return!1;for(let Te of ye)if(!p(ge[Te],fe[Te]))return!1;return!0}function Me(ge,fe){if(ge===null||ge===void 0){fe.push("n");return}if(Array.isArray(ge)){fe.push("[");for(let ye of ge)Me(ye,fe);fe.push("]");return}if(Be(ge)){fe.push("{");for(let ye of Le(ge))fe.push(JSON.stringify(ye),":"),Me(ge[ye],fe);fe.push("}");return}fe.push(JSON.stringify(ge))}function ae(ge){let fe=[];Me(ge,fe);let ye=fe.join(""),he=2166136261;for(let Te=0;Te<ye.length;Te+=1)he^=ye.charCodeAt(Te),he=he*16777619%9007199254740992;return`${ye.length.toString(36)}:${he.toString(36)}`}async function ce(ge,fe=async(Ae)=>Ae.status===200,ye=1000,he=1e4,Te,be){let Ae=Date.now(),xe=`Awaiting Ping (${ge})`;return new Promise((Pe,Ee)=>{let Se=null,ke=null,Ce=null,we=!1,je=()=>{if(Se)clearTimeout(Se);if(ke)clearInterval(ke);if(Ce)clearTimeout(Ce);Se=null,ke=null,Ce=null},Ie=(ve)=>{if(we)return;we=!0,je(),ve()},_e=Math.max(ye,1e4),Ne=async()=>{try{let ve=await fetch(ge,{signal:AbortSignal.timeout(_e)});if(ve.ok){if(await fe(ve)){Ie(Pe);return}xe=`Response test failed: ${ve.status}: ${ve.statusText} - ${ge}`}else try{let Ve=await ve.json();xe=`Response error: ${ve.status}: ${ve.statusText} - ${ge}: ${JSON.stringify(Ve)}`}catch(Ve){xe=`Response error: ${ve.status}: ${ve.statusText} - ${ge}`}}catch(ve){xe=`${ve instanceof Error?ve.message:String(ve)} - ${ge}`}if(!we)Se=setTimeout(()=>void Ne(),ye)};if(he>0)ke=setInterval(()=>{be?.warn(`${xe}: ${Date.now()-Ae}ms`)},he);if(Te)Ce=setTimeout(()=>{Ie(()=>Ee(Error(`Timeout: ${Te}ms: ${xe}`)))},Te);Ne()})}var ut="@ionite/core",dt=a(l(ut));function P(ge){let fe=ge.exp!=null?new Date(ge.exp*1000):new Date,ye=ge.iss??"";return{id:ge.sub??"",userName:ge.preferred_username??"",name:ge.name??"",email:ge.email??"",avatar:ge.picture,sso:{profile:{...ge,iss:ge.iss??ye,aud:ge.aud},tenant:{id:ge.idp??ye,name:ye},tokenType:"Bearer",expires:fe}}}function pt(ge){let fe=ge.replace(/-/g,"+").replace(/_/g,"/");return atob(fe)}async function ue(ge){let fe=ge.split(".");if(fe.length!==3)throw Error("Invalid JWT");let ye=pt(fe[1]),he=JSON.parse(ye),Te=await dt.validate(he);if(Te.issues)throw Error(`ID token claims validation failed: ${Te.issues.map((be)=>be.message).join("; ")}`);if(Te.value)return P(Te.value);throw Error("ID token claims validation failed")}class m extends Error{constructor(ge,fe,ye){super(ge);this.code="conflict";this.name="StoreConflictError",this.kind=fe,this.field=ye,Object.setPrototypeOf(this,m.prototype)}}function T(ge){return ge instanceof m||typeof ge==="object"&&ge!=null&&ge.code==="conflict"}class G extends Error{constructor(ge,fe={}){super(ge,{cause:fe.cause});this.name="IoniteError",this.status=fe.status,this.statusText=fe.statusText,Object.setPrototypeOf(this,G.prototype)}}function B(ge){if(typeof ge!=="object"||ge==null)return!1;let fe=ge.type;if(fe==="vault"||fe==="aws"||fe==="azure"||fe==="gcp")return!0;if(fe!=="mirror")return!1;let ye=ge;return B(ye.from)&&ye.from.type!=="mirror"&&B(ye.to)&&ye.to.type==="vault"}function de(ge,fe=Date.now()){let ye=ge?.integration;if(!ye)return{state:"none"};if(Date.parse(ye.expiresAt)<=fe)return{state:"expired",integration:ye};if(ye.status==="consented"&&ye.handoverAppliedAt&&ge.configLocator)return{state:"integrated",integration:ye};return{state:ye.status,integration:ye}}class Qe{constructor(){this.tenants=new Map;this.integrationHandles=new Map}async get(ge){return this.tenants.get(ge)}async list(ge){let fe=Array.from(this.tenants.values()),ye=Math.max(0,ge?.start??0),he=ge?.limit,Te=fe.length,be=he!=null?ye+he:void 0,Ae=fe.slice(ye,be);return R(Te,Ae,ye,he)}async upsert(ge){let fe=this.tenants.get(ge.id);if(fe?.integration?.handleHash!==ge.integration?.handleHash){if(fe?.integration)this.integrationHandles.delete(fe.integration.handleHash);if(ge.integration){let ye=this.integrationHandles.get(ge.integration.handleHash);if(ye&&ye!==ge.id)throw Error("Integration handle hash is already in use");this.integrationHandles.set(ge.integration.handleHash,ge.id)}}return this.tenants.set(ge.id,ge),ge}async delete(ge){let fe=this.tenants.get(ge),ye=fe!==void 0;if(fe?.integration)this.integrationHandles.delete(fe.integration.handleHash);return this.tenants.delete(ge),ye?1:0}async setIntegration(ge,fe,ye){let he=this.tenants.get(ge);if(!he)return;let Te=he.integration?.handleHash;if(ye?.expectedHandleHash!==void 0&&(ye.expectedHandleHash===null?Te!==void 0:Te!==ye.expectedHandleHash))return;if(ye?.expectedVersion!==void 0&&he.integration?.version!==ye.expectedVersion)return;if(p(he.integration,fe))return he;if(fe){let Ae=this.integrationHandles.get(fe.handleHash);if(Ae&&Ae!==ge)throw Error("Integration handle hash is already in use")}if(he.integration)this.integrationHandles.delete(he.integration.handleHash);if(fe)this.integrationHandles.set(fe.handleHash,ge);let be={...he,integration:fe,updatedAt:new Date};return this.tenants.set(ge,be),be}async getByIntegrationHandleHash(ge){let fe=this.integrationHandles.get(ge);return fe?this.tenants.get(fe):void 0}}class Z{constructor(ge={}){this.ionCache=ge.ionCache,this.store=new Qe}async get(ge){return this.store.get(ge)}async list(ge){return this.store.list(ge)}async upsert(ge){let fe=await this.store.upsert(ge);return this.ionCache?.delete(ge.id),fe}async delete(ge){let fe=await this.store.delete(ge);return this.ionCache?.delete(ge),fe}async getIon(ge){if(!this.ionCache)throw Error(`${this.constructor.name}.getIon() requires an app-owned ionCache. Pass { ionCache } (an lru-cache instance whose fetchMethod builds the tenant Ionite and whose dispose `+"closes it) — the SDK does not cache tenant runtimes. See the multi-tenant docs.");return this.ionCache.fetch(ge)}async setIntegration(ge,fe,ye){return this.store.setIntegration(ge,fe,ye)}async getByIntegrationHandleHash(ge){return this.store.getByIntegrationHandleHash(ge)}}function lt(ge,fe,ye){return(async()=>{try{let he=await fetch(ge,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(fe)});if(!he.ok)ye.error("Failed to send webhook update",{"ion.operation":"webhook.update","ion.outcome":"failure",status:he.status,statusText:he.statusText})}catch(he){ye.error("Failed to send webhook update",{"ion.operation":"webhook.update","ion.outcome":"failure"},he)}})()}async function le(ge,fe,ye){return lt(ge,fe,ye)}var s="urn:ionite:scim:schemas:extension:ion:2.0:User",f="urn:ionite:scim:schemas:core:2.0:Workload",g="urn:ionite:scim:schemas:core:2.0:Customer";function Re(ge,fe,ye,he,Te){if(ge===void 0||ge===null){if(ye)he.push({message:`${fe} is required`,path:Te});return}if(typeof ge!=="string"){he.push({message:`${fe} must be a string`,path:Te});return}return ge}function $e(ge,fe,ye,he){if(ge===void 0||ge===null)return;if(typeof ge!=="boolean"){ye.push({message:`${fe} must be a boolean`,path:he});return}return ge}function gt(ge,fe,ye){if(ge===void 0||ge===null)return;if(typeof ge!=="object"||ge===null){fe.push({message:"name must be an object",path:ye});return}let he=ge,Te={};return Te.formatted=Re(he.formatted,"formatted",!1,fe,[...ye,"formatted"]),Te.familyName=Re(he.familyName,"familyName",!1,fe,[...ye,"familyName"]),Te.givenName=Re(he.givenName,"givenName",!1,fe,[...ye,"givenName"]),Te.middleName=Re(he.middleName,"middleName",!1,fe,[...ye,"middleName"]),Te.honorificPrefix=Re(he.honorificPrefix,"honorificPrefix",!1,fe,[...ye,"honorificPrefix"]),Te.honorificSuffix=Re(he.honorificSuffix,"honorificSuffix",!1,fe,[...ye,"honorificSuffix"]),Te}function ft(ge,fe,ye){if(ge===void 0||ge===null)return;if(!Array.isArray(ge)){fe.push({message:"emails must be an array",path:ye});return}let he=[];for(let Te=0;Te<ge.length;Te++){let be=ge[Te],Ae=[...ye,Te];if(typeof be!=="object"||be===null){fe.push({message:"email must be an object",path:Ae});continue}let xe=be,Pe=Re(xe.value,"value",!0,fe,[...Ae,"value"]);if(Pe)he.push({value:Pe,display:Re(xe.display,"display",!1,fe,[...Ae,"display"]),type:Re(xe.type,"type",!1,fe,[...Ae,"type"]),primary:$e(xe.primary,"primary",fe,[...Ae,"primary"])})}return he.length>0?he:void 0}function mt(ge,fe,ye){if(ge===void 0||ge===null)return;if(!Array.isArray(ge)){fe.push({message:"phoneNumbers must be an array",path:ye});return}let he=[];for(let Te=0;Te<ge.length;Te++){let be=ge[Te],Ae=[...ye,Te];if(typeof be!=="object"||be===null){fe.push({message:"phoneNumber must be an object",path:Ae});continue}let xe=be,Pe=Re(xe.value,"value",!0,fe,[...Ae,"value"]);if(Pe)he.push({value:Pe,display:Re(xe.display,"display",!1,fe,[...Ae,"display"]),type:Re(xe.type,"type",!1,fe,[...Ae,"type"]),primary:$e(xe.primary,"primary",fe,[...Ae,"primary"])})}return he.length>0?he:void 0}function yt(ge,fe,ye){if(ge===void 0||ge===null)return;if(!Array.isArray(ge)){fe.push({message:"addresses must be an array",path:ye});return}let he=[];for(let Te=0;Te<ge.length;Te++){let be=ge[Te],Ae=[...ye,Te];if(typeof be!=="object"||be===null){fe.push({message:"address must be an object",path:Ae});continue}let xe=be;he.push({formatted:Re(xe.formatted,"formatted",!1,fe,[...Ae,"formatted"]),streetAddress:Re(xe.streetAddress,"streetAddress",!1,fe,[...Ae,"streetAddress"]),locality:Re(xe.locality,"locality",!1,fe,[...Ae,"locality"]),region:Re(xe.region,"region",!1,fe,[...Ae,"region"]),postalCode:Re(xe.postalCode,"postalCode",!1,fe,[...Ae,"postalCode"]),country:Re(xe.country,"country",!1,fe,[...Ae,"country"]),type:Re(xe.type,"type",!1,fe,[...Ae,"type"]),primary:$e(xe.primary,"primary",fe,[...Ae,"primary"])})}return he.length>0?he:void 0}function ht(ge,fe,ye){if(ge===void 0||ge===null)return;if(!Array.isArray(ge)){fe.push({message:"groups must be an array",path:ye});return}let he=[];for(let Te=0;Te<ge.length;Te++){let be=ge[Te],Ae=[...ye,Te];if(typeof be!=="object"||be===null){fe.push({message:"group must be an object",path:Ae});continue}let xe=be,Pe=Re(xe.value,"value",!0,fe,[...Ae,"value"]);if(Pe)he.push({value:Pe,$ref:Re(xe.$ref,"$ref",!1,fe,[...Ae,"$ref"]),display:Re(xe.display,"display",!1,fe,[...Ae,"display"]),type:Re(xe.type,"type",!1,fe,[...Ae,"type"])})}return he.length>0?he:void 0}function Tt(ge,fe,ye){if(ge===void 0||ge===null)return;if(!Array.isArray(ge)){fe.push({message:"roles must be an array",path:ye});return}let he=[];for(let Te=0;Te<ge.length;Te++){let be=ge[Te],Ae=[...ye,Te];if(typeof be!=="object"||be===null){fe.push({message:"role must be an object",path:Ae});continue}let xe=be,Pe=Re(xe.value,"value",!0,fe,[...Ae,"value"]);if(Pe)he.push({value:Pe,display:Re(xe.display,"display",!1,fe,[...Ae,"display"]),type:Re(xe.type,"type",!1,fe,[...Ae,"type"]),primary:$e(xe.primary,"primary",fe,[...Ae,"primary"])})}return he.length>0?he:void 0}function bt(ge,fe,ye){if(ge===void 0||ge===null)return;if(typeof ge!=="object"||ge===null){fe.push({message:"Enterprise User extension must be an object",path:ye});return}let he=ge,Te={};if(Te.employeeNumber=Re(he.employeeNumber,"employeeNumber",!1,fe,[...ye,"employeeNumber"]),Te.costCenter=Re(he.costCenter,"costCenter",!1,fe,[...ye,"costCenter"]),Te.organization=Re(he.organization,"organization",!1,fe,[...ye,"organization"]),Te.division=Re(he.division,"division",!1,fe,[...ye,"division"]),Te.department=Re(he.department,"department",!1,fe,[...ye,"department"]),he.manager!==void 0&&he.manager!==null)if(typeof he.manager!=="object"||he.manager===null)fe.push({message:"manager must be an object",path:[...ye,"manager"]});else{let be=he.manager;Te.manager={value:Re(be.value,"value",!1,fe,[...ye,"manager","value"]),$ref:Re(be.$ref,"$ref",!1,fe,[...ye,"manager","$ref"]),displayName:Re(be.displayName,"displayName",!1,fe,[...ye,"manager","displayName"])}}return Te}function pe(ge){return{"~standard":{version:1,vendor:ge,validate:(fe)=>{if(typeof fe!=="object"||fe===null)return{issues:[{message:"Expected an object"}]};let ye=fe,he=[],Te={},be=Re(ye.userName,"userName",!0,he,["userName"]);if(!be)return{issues:he};if(Te.userName=be,Te.id=Re(ye.id,"id",!1,he,["id"]),Te.externalId=Re(ye.externalId,"externalId",!1,he,["externalId"]),Te.displayName=Re(ye.displayName,"displayName",!1,he,["displayName"]),Te.nickName=Re(ye.nickName,"nickName",!1,he,["nickName"]),Te.profileUrl=Re(ye.profileUrl,"profileUrl",!1,he,["profileUrl"]),Te.title=Re(ye.title,"title",!1,he,["title"]),Te.userType=Re(ye.userType,"userType",!1,he,["userType"]),Te.preferredLanguage=Re(ye.preferredLanguage,"preferredLanguage",!1,he,["preferredLanguage"]),Te.locale=Re(ye.locale,"locale",!1,he,["locale"]),Te.timezone=Re(ye.timezone,"timezone",!1,he,["timezone"]),ye.password!==void 0)he.push({message:"password is not supported: the SDK does not accept credentials via SCIM",path:["password"]});Te.active=$e(ye.active,"active",he,["active"]),Te.name=gt(ye.name,he,["name"]),Te.emails=ft(ye.emails,he,["emails"]),Te.phoneNumbers=mt(ye.phoneNumbers,he,["phoneNumbers"]),Te.addresses=yt(ye.addresses,he,["addresses"]),Te.groups=ht(ye.groups,he,["groups"]),Te.roles=Tt(ye.roles,he,["roles"]);let Ae="urn:ietf:params:scim:schemas:extension:enterprise:2.0:User";if(ye[Ae]!==void 0)Te[Ae]=bt(ye[Ae],he,[Ae]);if(ye.schemas!==void 0)if(Array.isArray(ye.schemas))Te.schemas=ye.schemas.filter((xe)=>typeof xe==="string");else he.push({message:"schemas must be an array",path:["schemas"]});if(ye.meta!==void 0)if(typeof ye.meta==="object"&&ye.meta!==null){let xe=ye.meta;Te.meta={resourceType:typeof xe.resourceType==="string"?xe.resourceType:void 0,created:typeof xe.created==="string"?xe.created:void 0,lastModified:typeof xe.lastModified==="string"?xe.lastModified:void 0,location:typeof xe.location==="string"?xe.location:void 0,version:typeof xe.version==="string"?xe.version:void 0}}else he.push({message:"meta must be an object",path:["meta"]});if(he.length>0)return{issues:he};return{value:Te}}}}}function At(ge,fe,ye){if(ge===void 0||ge===null)return;if(!Array.isArray(ge)){fe.push({message:"members must be an array",path:ye});return}let he=[];for(let Te=0;Te<ge.length;Te++){let be=ge[Te],Ae=[...ye,Te];if(typeof be!=="object"||be===null){fe.push({message:"member must be an object",path:Ae});continue}let xe=be,Pe=Re(xe.value,"value",!0,fe,[...Ae,"value"]);if(Pe){let Ee=Re(xe.type,"type",!1,fe,[...Ae,"type"]);if(Ee!==void 0&&Ee!=="User"&&Ee!=="Group"&&Ee!=="Workload"&&Ee!=="Customer")fe.push({message:"type must be 'User', 'Group', 'Workload', or 'Customer'",path:[...Ae,"type"]});he.push({value:Pe,$ref:Re(xe.$ref,"$ref",!1,fe,[...Ae,"$ref"]),display:Re(xe.display,"display",!1,fe,[...Ae,"display"]),type:Ee==="User"||Ee==="Group"||Ee==="Workload"||Ee==="Customer"?Ee:void 0})}}return he.length>0?he:void 0}function me(ge){return{"~standard":{version:1,vendor:ge,validate:(fe)=>{if(typeof fe!=="object"||fe===null)return{issues:[{message:"Expected an object"}]};let ye=fe,he=[],Te={},be=Re(ye.displayName,"displayName",!0,he,["displayName"]);if(!be)return{issues:he};if(Te.displayName=be,Te.id=Re(ye.id,"id",!1,he,["id"]),Te.externalId=Re(ye.externalId,"externalId",!1,he,["externalId"]),Te.members=At(ye.members,he,["members"]),ye.schemas!==void 0)if(Array.isArray(ye.schemas))Te.schemas=ye.schemas.filter((Ae)=>typeof Ae==="string");else he.push({message:"schemas must be an array",path:["schemas"]});if(ye.meta!==void 0)if(typeof ye.meta==="object"&&ye.meta!==null){let Ae=ye.meta;Te.meta={resourceType:typeof Ae.resourceType==="string"?Ae.resourceType:void 0,created:typeof Ae.created==="string"?Ae.created:void 0,lastModified:typeof Ae.lastModified==="string"?Ae.lastModified:void 0,location:typeof Ae.location==="string"?Ae.location:void 0,version:typeof Ae.version==="string"?Ae.version:void 0}}else he.push({message:"meta must be an object",path:["meta"]});if(he.length>0)return{issues:he};return{value:Te}}}}}function et(ge,fe){if(ge===void 0)return;if(typeof ge!=="object"||ge===null){fe.push({message:"meta must be an object",path:["meta"]});return}let ye=ge;return{resourceType:typeof ye.resourceType==="string"?ye.resourceType:void 0,created:typeof ye.created==="string"?ye.created:void 0,lastModified:typeof ye.lastModified==="string"?ye.lastModified:void 0,location:typeof ye.location==="string"?ye.location:void 0,version:typeof ye.version==="string"?ye.version:void 0}}function tt(ge,fe){if(ge===void 0)return;if(!Array.isArray(ge)){fe.push({message:"schemas must be an array",path:["schemas"]});return}return ge.filter((ye)=>typeof ye==="string")}function st(ge,fe){if(ge===void 0)return;if(typeof ge!=="object"||ge===null||Array.isArray(ge)){fe.push({message:"attributes must be an object",path:["attributes"]});return}return{...ge}}var q={"~standard":{version:1,vendor:"ionite",validate:(ge)=>{let fe=[];if(typeof ge!=="object"||ge===null)return{issues:[{message:"Workload must be an object"}]};let ye=ge,he={schemas:tt(ye.schemas,fe),id:Re(ye.id,"id",!1,fe,["id"]),externalId:Re(ye.externalId,"externalId",!1,fe,["externalId"]),userName:Re(ye.userName,"userName",!1,fe,["userName"]),displayName:Re(ye.displayName,"displayName",!1,fe,["displayName"]),description:Re(ye.description,"description",!1,fe,["description"]),active:typeof ye.active==="boolean"?ye.active:void 0,providerId:Re(ye.providerId,"providerId",!1,fe,["providerId"]),requestUrl:Re(ye.requestUrl,"requestUrl",!1,fe,["requestUrl"]),attributes:st(ye.attributes,fe),meta:et(ye.meta,fe)};if(fe.length>0)return{issues:fe};return{value:he}}}},K={"~standard":{version:1,vendor:"ionite",validate:(ge)=>{let fe=[];if(typeof ge!=="object"||ge===null)return{issues:[{message:"Customer must be an object"}]};let ye=ge,he=ye.emails,Te;if(he!==void 0)if(!Array.isArray(he))fe.push({message:"emails must be an array",path:["emails"]});else Te=he.filter((Ae)=>typeof Ae==="object"&&Ae!==null&&typeof Ae.value==="string");let be={schemas:tt(ye.schemas,fe),id:Re(ye.id,"id",!1,fe,["id"]),externalId:Re(ye.externalId,"externalId",!1,fe,["externalId"]),userName:Re(ye.userName,"userName",!1,fe,["userName"]),displayName:Re(ye.displayName,"displayName",!1,fe,["displayName"]),active:typeof ye.active==="boolean"?ye.active:void 0,emails:Te,providerId:Re(ye.providerId,"providerId",!1,fe,["providerId"]),requestUrl:Re(ye.requestUrl,"requestUrl",!1,fe,["requestUrl"]),attributes:st(ye.attributes,fe),meta:et(ye.meta,fe)};if(fe.length>0)return{issues:fe};return{value:be}}}};
|
|
4
|
-
export{E,X,o,h,S,b,r,R,i,Q,U,u,e,d,W,M,V,H,ee,F,A,I,y,v,j,x,n,c,_,O,z,te,ne,k,J,re,se,w,N,L,l,a,t,D,oe,Y,ie,C,p,ae,ce,P,ue,m,T,G,B,de,Z,le,s,f,g,pe,me,q,K};
|