@ionite/core 0.0.24-beta.20260927.13 → 0.0.24-beta.20260927.15

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.
Files changed (2) hide show
  1. package/dist/index.js +1 -1
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import{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,Ee,K,Pe,_e,Ue,Q,ee,W,te,pe,me,m,q,be,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,u,b,C,He,Je,ae,ce}from"./shared/core-anx7e6cp.js";var Kt="0.0.24-beta.20260927.13";class nt extends Error{constructor(X,Z){super(X,Z.cause!==void 0?{cause:Z.cause}:void 0);this.name="ConfigSourceError",this.kind=Z.kind,this.recoverable=Z.recoverable,this.code=Z.code,this.status=Z.status,this.path=Z.path,this.sourceType=Z.sourceType,Object.setPrototypeOf(this,nt.prototype)}}function Nt(X){return X instanceof nt}var Ze=["workload"],at={id:"ion:iam:read",name:"Read Identities (SCIM)",description:"Authorizes a workload to list and read Users, Groups, Workloads, and Customers via the SCIM endpoints.",requestable:!1,permissionTypes:["DataRead"],assignableSubjectTypes:Ze,recommendedSubjectTypes:Ze},pt={id:"ion:iam:users:write",name:"Manage Identities (SCIM Users)",description:"Authorizes a workload to create, replace, modify (including attribute changes), and delete Users via SCIM, including access-root revocation on user delete.",requestable:!1,permissionTypes:["DataCreate","DataWrite","DataDelete"],assignableSubjectTypes:Ze,recommendedSubjectTypes:Ze},ct={id:"ion:iam:groups:write",name:"Manage Groups & Access (SCIM Groups)",description:"Authorizes a workload to create, replace, modify, and delete Groups via SCIM, including membership changes that grant or revoke entitlements.",requestable:!1,permissionTypes:["DataCreate","DataWrite","DataDelete"],assignableSubjectTypes:Ze,recommendedSubjectTypes:Ze},mt={id:"ion:iam:workloads:write",name:"Manage Workloads (SCIM Workloads)",description:"Authorizes a workload to create, replace, modify, and delete Workload principals via SCIM, including access-root revocation on delete.",requestable:!1,permissionTypes:["DataCreate","DataWrite","DataDelete"],assignableSubjectTypes:Ze,recommendedSubjectTypes:Ze},lt={id:"ion:iam:customers:write",name:"Manage Customers (SCIM Customers)",description:"Authorizes a workload to create, replace, modify, and delete Customer principals via SCIM, including access-root revocation on delete.",requestable:!1,permissionTypes:["DataCreate","DataWrite","DataDelete"],assignableSubjectTypes:Ze,recommendedSubjectTypes:Ze},ut={id:"ion:iam:access-requests:write",name:"Submit Access Requests",description:"Authorizes a workload to submit an access request on a principal's behalf via the AccessRequests endpoint.",requestable:!1,permissionTypes:["DataCreate"],assignableSubjectTypes:Ze,recommendedSubjectTypes:Ze},dt={id:"ion:capabilitiez:read",name:"Read Capability Manifest",description:"Authorizes a workload to read the capability manifest at the capabilitiez endpoint (only when RemoteConfig.capabilitiez is enabled).",requestable:!1,permissionTypes:["DataRead"],assignableSubjectTypes:Ze,recommendedSubjectTypes:Ze},gt={id:"ion:ciam:magic-link:create",name:"Issue CIAM Magic Links",description:"Authorizes a caller to mint customer magic-link login credentials via the magic-link endpoint. Grant narrowly.",requestable:!1,permissionTypes:["DataCreate"],assignableSubjectTypes:["workload","user"],recommendedSubjectTypes:Ze},yt={id:"ion:authz:oaa:sync",name:"Trigger OAA Full Sync",description:"Authorizes a workload (Ops/ECI client) to trigger a full OAA reconcile via the authz OAA sync endpoint (only when RemoteConfig.authz.oaa.fullSync.enabled is true).",requestable:!1,permissionTypes:["DataWrite"],assignableSubjectTypes:Ze,recommendedSubjectTypes:Ze},ft={id:"ion:tenant:manage",name:"Manage Tenants",description:"Authorizes a workload (ECI/TMS client) to create, read, update, and delete tenant records via the tenant-management endpoints.",requestable:!1,permissionTypes:["DataCreate","DataRead","DataWrite","DataDelete"],assignableSubjectTypes:Ze,recommendedSubjectTypes:Ze},Dt=[at,pt,ct,mt,lt,ut,dt,gt,yt,ft],Lt={"iam.read":{permission:at,subjectType:["workload"]},"iam.users.write":{permission:pt,subjectType:["workload"]},"iam.groups.write":{permission:ct,subjectType:["workload"]},"iam.workloads.write":{permission:mt,subjectType:["workload"]},"iam.customers.write":{permission:lt,subjectType:["workload"]},"iam.access-requests.write":{permission:ut,subjectType:["workload"]},"capabilitiez.read":{permission:dt,subjectType:["workload"]},"ciam.magic-link.create":{permission:gt,subjectType:["workload","user"]},"authz.oaa.sync":{permission:yt,subjectType:["workload"]},"tenant.manage":{permission:ft,subjectType:["workload"]}};var Wt=["sessionStore","userStore","customerStore","accessStore","tokenStore","magicLinkStore","store"];function kt(X){if(X===null||typeof X!=="object")return X;let Z={};for(let[ne,le]of Object.entries(X)){if(Wt.includes(ne)||ne==="validators"||ne==="setStores")continue;Z[ne]=le!==null&&typeof le==="object"&&!Array.isArray(le)&&Object.getPrototypeOf(le)===Object.prototype?kt(le):le}return Z}function jt(X){return kt(X)}function st(X,Z){if(!X||typeof X!=="object"||Array.isArray(X))throw Error(`${Z} must be an object.`);return X}function tt(X,Z){if(X===void 0)return;if(typeof X!=="string"||X.length===0||!Number.isFinite(Date.parse(X)))throw Error(`${Z} must be a valid timestamp string.`);return X}function Rt(X,Z,ne){if(!Array.isArray(X)||!ne.allowEmpty&&X.length===0)throw Error(`${Z} keys must be ${ne.allowEmpty?"an":"a non-empty"} array.`);let le=new Set;return X.map((xe,Re)=>{let Fe=st(xe,`${Z} keys[${Re}]`);if(typeof Fe.id!=="string"||Fe.id.length===0)throw Error(`${Z} keys[${Re}].id must be a non-empty string.`);if(le.has(Fe.id))throw Error(`${Z} contains duplicate key id "${Fe.id}".`);if(le.add(Fe.id),!["pending","active","deprecated","rotated","revoked"].includes(String(Fe.state)))throw Error(`${Z} keys[${Re}].state is invalid.`);if(Fe.value!==void 0&&(typeof Fe.value!=="string"||Fe.value.length===0))throw Error(`${Z} keys[${Re}].value must be a non-empty string when present.`);let Xe=Fe.meta===void 0?void 0:st(Fe.meta,`${Z} keys[${Re}].meta`);return{id:Fe.id,state:Fe.state,...Fe.value===void 0?{}:{value:Fe.value},...Fe.notBefore===void 0?{}:{notBefore:tt(Fe.notBefore,`${Z} keys[${Re}].notBefore`)},...Fe.notAfter===void 0?{}:{notAfter:tt(Fe.notAfter,`${Z} keys[${Re}].notAfter`)},...Fe.createdAt===void 0?{}:{createdAt:tt(Fe.createdAt,`${Z} keys[${Re}].createdAt`)},...Fe.activatedAt===void 0?{}:{activatedAt:tt(Fe.activatedAt,`${Z} keys[${Re}].activatedAt`)},...Fe.deprecatedAt===void 0?{}:{deprecatedAt:tt(Fe.deprecatedAt,`${Z} keys[${Re}].deprecatedAt`)},...Fe.rotatedAt===void 0?{}:{rotatedAt:tt(Fe.rotatedAt,`${Z} keys[${Re}].rotatedAt`)},...Fe.revokedAt===void 0?{}:{revokedAt:tt(Fe.revokedAt,`${Z} keys[${Re}].revokedAt`)},...Xe?{meta:{...Xe}}:{}}})}function Ut(X,Z,ne){if(X===void 0)return;if(!Array.isArray(X))throw Error(`${ne} slots must be an array.`);let le=new Set,xe=X.map((Re,Fe)=>{if(Re===null)return null;if(typeof Re!=="string"||Re.length===0)throw Error(`${ne} slots[${Fe}] must be a non-empty key id or null.`);if(le.has(Re))throw Error(`${ne} slots contain duplicate key id "${Re}".`);le.add(Re);let Xe=Z.find((Ye)=>Ye.id===Re);if(!Xe)throw Error(`${ne} slot key "${Re}" is not present in keys.`);if(Xe.state!=="active")throw Error(`${ne} slot key "${Re}" must have state "active".`);if(!Xe.value)throw Error(`${ne} slot key "${Re}" must include a value.`);return Re});if(Z.length===0&&xe.some((Re)=>Re!==null))throw Error(`${ne} slots must be omitted or all-null when keys is empty.`);return xe}function $t(X){let ne=st(X,"KMS pool");if(ne.kind!=="kms")throw Error('KMS pool kind must be "kms".');let le=Rt(ne.keys,"KMS pool",{allowEmpty:!0}),xe=Ut(ne.slots,le,"KMS pool");return xe?{kind:"kms",slots:xe,keys:le}:{kind:"kms",keys:le}}function zt(X){let ne=st(X,"KMS pool control document");if(ne.kind!=="kms")throw Error('KMS pool control document kind must be "kms".');return{kind:"kms",keys:Rt(ne.keys,"KMS pool control document",{allowEmpty:!0})}}var Ft={trace:"TRACE",debug:"DEBUG",info:"INFO ",warn:"WARN ",error:"ERROR"};function At(X){if(typeof X==="string")return X;try{return JSON.stringify(X)??String(X)}catch{return String(X)}}function it(X){let Z=At(X);return/^[A-Za-z0-9_./:@+|-]+$/.test(Z)?Z:JSON.stringify(Z)}function qt(X){return At(X).replaceAll("\r","\\r").replaceAll(`
1
+ import{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,Ee,K,Pe,_e,Ue,Q,ee,W,te,pe,me,m,q,be,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,u,b,C,He,Je,ae,ce}from"./shared/core-anx7e6cp.js";var Kt="0.0.24-beta.20260927.15";class nt extends Error{constructor(X,Z){super(X,Z.cause!==void 0?{cause:Z.cause}:void 0);this.name="ConfigSourceError",this.kind=Z.kind,this.recoverable=Z.recoverable,this.code=Z.code,this.status=Z.status,this.path=Z.path,this.sourceType=Z.sourceType,Object.setPrototypeOf(this,nt.prototype)}}function Nt(X){return X instanceof nt}var Ze=["workload"],at={id:"ion:iam:read",name:"Read Identities (SCIM)",description:"Authorizes a workload to list and read Users, Groups, Workloads, and Customers via the SCIM endpoints.",requestable:!1,permissionTypes:["DataRead"],assignableSubjectTypes:Ze,recommendedSubjectTypes:Ze},pt={id:"ion:iam:users:write",name:"Manage Identities (SCIM Users)",description:"Authorizes a workload to create, replace, modify (including attribute changes), and delete Users via SCIM, including access-root revocation on user delete.",requestable:!1,permissionTypes:["DataCreate","DataWrite","DataDelete"],assignableSubjectTypes:Ze,recommendedSubjectTypes:Ze},ct={id:"ion:iam:groups:write",name:"Manage Groups & Access (SCIM Groups)",description:"Authorizes a workload to create, replace, modify, and delete Groups via SCIM, including membership changes that grant or revoke entitlements.",requestable:!1,permissionTypes:["DataCreate","DataWrite","DataDelete"],assignableSubjectTypes:Ze,recommendedSubjectTypes:Ze},mt={id:"ion:iam:workloads:write",name:"Manage Workloads (SCIM Workloads)",description:"Authorizes a workload to create, replace, modify, and delete Workload principals via SCIM, including access-root revocation on delete.",requestable:!1,permissionTypes:["DataCreate","DataWrite","DataDelete"],assignableSubjectTypes:Ze,recommendedSubjectTypes:Ze},lt={id:"ion:iam:customers:write",name:"Manage Customers (SCIM Customers)",description:"Authorizes a workload to create, replace, modify, and delete Customer principals via SCIM, including access-root revocation on delete.",requestable:!1,permissionTypes:["DataCreate","DataWrite","DataDelete"],assignableSubjectTypes:Ze,recommendedSubjectTypes:Ze},ut={id:"ion:iam:access-requests:write",name:"Submit Access Requests",description:"Authorizes a workload to submit an access request on a principal's behalf via the AccessRequests endpoint.",requestable:!1,permissionTypes:["DataCreate"],assignableSubjectTypes:Ze,recommendedSubjectTypes:Ze},dt={id:"ion:capabilitiez:read",name:"Read Capability Manifest",description:"Authorizes a workload to read the capability manifest at the capabilitiez endpoint (only when RemoteConfig.capabilitiez is enabled).",requestable:!1,permissionTypes:["DataRead"],assignableSubjectTypes:Ze,recommendedSubjectTypes:Ze},gt={id:"ion:ciam:magic-link:create",name:"Issue CIAM Magic Links",description:"Authorizes a caller to mint customer magic-link login credentials via the magic-link endpoint. Grant narrowly.",requestable:!1,permissionTypes:["DataCreate"],assignableSubjectTypes:["workload","user"],recommendedSubjectTypes:Ze},yt={id:"ion:authz:oaa:sync",name:"Trigger OAA Full Sync",description:"Authorizes a workload (Ops/ECI client) to trigger a full OAA reconcile via the authz OAA sync endpoint (only when RemoteConfig.authz.oaa.fullSync.enabled is true).",requestable:!1,permissionTypes:["DataWrite"],assignableSubjectTypes:Ze,recommendedSubjectTypes:Ze},ft={id:"ion:tenant:manage",name:"Manage Tenants",description:"Authorizes a workload (ECI/TMS client) to create, read, update, and delete tenant records via the tenant-management endpoints.",requestable:!1,permissionTypes:["DataCreate","DataRead","DataWrite","DataDelete"],assignableSubjectTypes:Ze,recommendedSubjectTypes:Ze},Dt=[at,pt,ct,mt,lt,ut,dt,gt,yt,ft],Lt={"iam.read":{permission:at,subjectType:["workload"]},"iam.users.write":{permission:pt,subjectType:["workload"]},"iam.groups.write":{permission:ct,subjectType:["workload"]},"iam.workloads.write":{permission:mt,subjectType:["workload"]},"iam.customers.write":{permission:lt,subjectType:["workload"]},"iam.access-requests.write":{permission:ut,subjectType:["workload"]},"capabilitiez.read":{permission:dt,subjectType:["workload"]},"ciam.magic-link.create":{permission:gt,subjectType:["workload","user"]},"authz.oaa.sync":{permission:yt,subjectType:["workload"]},"tenant.manage":{permission:ft,subjectType:["workload"]}};var Wt=["sessionStore","userStore","customerStore","accessStore","tokenStore","magicLinkStore","store"];function kt(X){if(X===null||typeof X!=="object")return X;let Z={};for(let[ne,le]of Object.entries(X)){if(Wt.includes(ne)||ne==="validators"||ne==="setStores")continue;Z[ne]=le!==null&&typeof le==="object"&&!Array.isArray(le)&&Object.getPrototypeOf(le)===Object.prototype?kt(le):le}return Z}function jt(X){return kt(X)}function st(X,Z){if(!X||typeof X!=="object"||Array.isArray(X))throw Error(`${Z} must be an object.`);return X}function tt(X,Z){if(X===void 0)return;if(typeof X!=="string"||X.length===0||!Number.isFinite(Date.parse(X)))throw Error(`${Z} must be a valid timestamp string.`);return X}function Rt(X,Z,ne){if(!Array.isArray(X)||!ne.allowEmpty&&X.length===0)throw Error(`${Z} keys must be ${ne.allowEmpty?"an":"a non-empty"} array.`);let le=new Set;return X.map((xe,Re)=>{let Fe=st(xe,`${Z} keys[${Re}]`);if(typeof Fe.id!=="string"||Fe.id.length===0)throw Error(`${Z} keys[${Re}].id must be a non-empty string.`);if(le.has(Fe.id))throw Error(`${Z} contains duplicate key id "${Fe.id}".`);if(le.add(Fe.id),!["pending","active","deprecated","rotated","revoked"].includes(String(Fe.state)))throw Error(`${Z} keys[${Re}].state is invalid.`);if(Fe.value!==void 0&&(typeof Fe.value!=="string"||Fe.value.length===0))throw Error(`${Z} keys[${Re}].value must be a non-empty string when present.`);let Xe=Fe.meta===void 0?void 0:st(Fe.meta,`${Z} keys[${Re}].meta`);return{id:Fe.id,state:Fe.state,...Fe.value===void 0?{}:{value:Fe.value},...Fe.notBefore===void 0?{}:{notBefore:tt(Fe.notBefore,`${Z} keys[${Re}].notBefore`)},...Fe.notAfter===void 0?{}:{notAfter:tt(Fe.notAfter,`${Z} keys[${Re}].notAfter`)},...Fe.createdAt===void 0?{}:{createdAt:tt(Fe.createdAt,`${Z} keys[${Re}].createdAt`)},...Fe.activatedAt===void 0?{}:{activatedAt:tt(Fe.activatedAt,`${Z} keys[${Re}].activatedAt`)},...Fe.deprecatedAt===void 0?{}:{deprecatedAt:tt(Fe.deprecatedAt,`${Z} keys[${Re}].deprecatedAt`)},...Fe.rotatedAt===void 0?{}:{rotatedAt:tt(Fe.rotatedAt,`${Z} keys[${Re}].rotatedAt`)},...Fe.revokedAt===void 0?{}:{revokedAt:tt(Fe.revokedAt,`${Z} keys[${Re}].revokedAt`)},...Xe?{meta:{...Xe}}:{}}})}function Ut(X,Z,ne){if(X===void 0)return;if(!Array.isArray(X))throw Error(`${ne} slots must be an array.`);let le=new Set,xe=X.map((Re,Fe)=>{if(Re===null)return null;if(typeof Re!=="string"||Re.length===0)throw Error(`${ne} slots[${Fe}] must be a non-empty key id or null.`);if(le.has(Re))throw Error(`${ne} slots contain duplicate key id "${Re}".`);le.add(Re);let Xe=Z.find((Ye)=>Ye.id===Re);if(!Xe)throw Error(`${ne} slot key "${Re}" is not present in keys.`);if(Xe.state!=="active")throw Error(`${ne} slot key "${Re}" must have state "active".`);if(!Xe.value)throw Error(`${ne} slot key "${Re}" must include a value.`);return Re});if(Z.length===0&&xe.some((Re)=>Re!==null))throw Error(`${ne} slots must be omitted or all-null when keys is empty.`);return xe}function $t(X){let ne=st(X,"KMS pool");if(ne.kind!=="kms")throw Error('KMS pool kind must be "kms".');let le=Rt(ne.keys,"KMS pool",{allowEmpty:!0}),xe=Ut(ne.slots,le,"KMS pool");return xe?{kind:"kms",slots:xe,keys:le}:{kind:"kms",keys:le}}function zt(X){let ne=st(X,"KMS pool control document");if(ne.kind!=="kms")throw Error('KMS pool control document kind must be "kms".');return{kind:"kms",keys:Rt(ne.keys,"KMS pool control document",{allowEmpty:!0})}}var Ft={trace:"TRACE",debug:"DEBUG",info:"INFO ",warn:"WARN ",error:"ERROR"};function At(X){if(typeof X==="string")return X;try{return JSON.stringify(X)??String(X)}catch{return String(X)}}function it(X){let Z=At(X);return/^[A-Za-z0-9_./:@+|-]+$/.test(Z)?Z:JSON.stringify(Z)}function qt(X){return At(X).replaceAll("\r","\\r").replaceAll(`
2
2
  `,"\\n")}function Et(X,Z,ne){if(ne==null)return;if(ne instanceof Error){if(X.push(`${Z}.name=${it(ne.name)}`),X.push(`${Z}.message=${it(ne.message)}`),ne.stack)X.push(`${Z}.stack=${it(ne.stack)}`);return}X.push(`${Z}=${it(ne)}`)}function ot(X,Z,ne=[],le=new Date){let xe=qt(Z instanceof Error?Z.message:Z??""),Re=[];for(let[Fe,Xe]of ne.entries()){if(Xe&&typeof Xe==="object"&&!Array.isArray(Xe)&&!(Xe instanceof Error)&&Object.getPrototypeOf(Xe)===Object.prototype){for(let[Ye,et]of Object.entries(Xe))Et(Re,Ye,et);continue}Et(Re,`param.${Fe}`,Xe)}return[le.toISOString(),Ft[X],xe,...Re].filter(Boolean).join(" ")}var ht={trace:()=>{},debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}},Vt=ht,Gt={trace:()=>{},debug:console.debug,info:console.info,warn:console.warn,error:console.error},Bt={trace:()=>{},debug:()=>{},info:console.info,warn:console.warn,error:console.error},Ht={trace:()=>{},debug:()=>{},info:()=>{},warn:console.warn,error:console.error},Yt={trace:()=>{},debug:(X,...Z)=>globalThis.console.debug(ot("debug",X,Z)),info:(X,...Z)=>globalThis.console.info(ot("info",X,Z)),warn:(X,...Z)=>globalThis.console.warn(ot("warn",X,Z)),error:(X,...Z)=>globalThis.console.error(ot("error",X,Z))};function Jt(X,Z){if(typeof Z!=="number"||Z<=0)return X;return new Promise((ne,le)=>{let xe=setTimeout(()=>{le(Error(`Authz catalog entry did not become ready within ${Z}ms`))},Z);X.then(()=>{clearTimeout(xe),ne()},(Re)=>{clearTimeout(xe),le(Re)})})}function Xt(X,Z){let ne=!1,le,xe=Z.then(()=>{ne=!0},(Fe)=>{ne=!1,le=Fe}),Re=X;return Object.defineProperty(Re,"ready",{enumerable:!1,configurable:!0,value:(Fe)=>Jt(xe.then(()=>{if(!ne)throw le}),Fe)}),Object.defineProperty(Re,"isReady",{enumerable:!1,configurable:!0,value:()=>ne}),Re}var St=Object.freeze({jsonc:s,env:"text/x-dotenv",text:"text/plain",binary:ge,yaml:"application/yaml",toml:"application/toml",xml:fe});function Ct(X){if(!X.id.trim())throw Error("defineSecretType: id is required");let Z=X.mimeType?.trim()||St[X.format],ne=Object.freeze({id:X.id,...X.label?{label:X.label}:{},format:X.format,mimeType:Z,...X.schemaUrl?{schemaUrl:X.schemaUrl}:{},typeId:X.id});return Object.freeze({id:X.id,...X.label?{label:X.label}:{},format:X.format,mimeType:Z,...X.schemaUrl?{schemaUrl:X.schemaUrl}:{},...X.schema?{schema:X.schema}:{},toRegistryEntry:()=>ne})}function Zt(X="jsonc"){return{format:X,mimeType:St[X],typeId:X}}class It extends Error{constructor(X,Z){super(`Secret content type mismatch: expected "${X.mimeType}" (${X.format}) but received "${Z.mimeType}" (${Z.format})`);this.name="SecretContentTypeMismatchError",this.expected=X,this.received=Z}}var Qt=Ct({id:"ionite-remote-config",label:"ionite RemoteConfig",format:"jsonc",mimeType:"application/vnd.ionite.remote-config+json",schemaUrl:"https://ionite.com/schemas/remote-config.json"});var _t={beforeTenantSegments:["ui"]},xt={beforeTenantSegments:["api"]};function bt(X){return(X??[]).map((Z)=>Z.trim()).filter(Boolean)}function Ot(X){let Z=X.trim();if(!Z)return"/";let ne=Z.replace(/\\/g,"/").replace(/\/+/g,"/");return ne.startsWith("/")?ne:`/${ne}`}function Pt(X){return Ot(X).split("/").filter(Boolean)}function rt(X){return{beforeTenantSegments:bt(X?.beforeTenantSegments),afterTenantSegments:bt(X?.afterTenantSegments)}}function wt(X){if(X?.type==="host")return{type:"host",baseDomain:Tt(X.baseDomain)};if(X?.type==="selector")return X;return{type:"path",ui:rt(X?.ui??_t),api:rt(X?.api??xt)}}function Tt(X){let Z=X.trim().replace(/^\.+|\.+$/g,"").toLowerCase();if(!Z)throw Error('Host tenant routing requires a non-empty baseDomain such as "app.example.com".');return Z}function eo(X,Z){let ne=X.trim().replace(/\.$/,"").toLowerCase(),le=Tt(Z);if(!ne.endsWith(`.${le}`))return null;let xe=ne.slice(0,-(le.length+1));if(!xe||xe.includes("."))return null;return{id:xe}}function to(X,Z){let ne=rt(Z),le=ne.beforeTenantSegments??[],xe=ne.afterTenantSegments??[],Re=Pt(X),Fe=le.length+1+xe.length;if(Re.length<Fe)return null;for(let Qe=0;Qe<le.length;Qe++)if(Re[Qe]!==le[Qe])return null;let Xe=le.length,Ye=Re[Xe];if(!Ye)return null;for(let Qe=0;Qe<xe.length;Qe++)if(Re[Xe+1+Qe]!==xe[Qe])return null;let et=Re.slice(Xe+1+xe.length);return{id:decodeURIComponent(Ye),restSegments:et,restPath:et.length>0?`/${et.join("/")}`:"/"}}function Mt(X,Z="/",ne){let le=rt(ne),xe=le.beforeTenantSegments??[],Re=le.afterTenantSegments??[],Fe=Pt(Z),Xe=[...xe,encodeURIComponent(X),...Re,...Fe];return Xe.length>0?`/${Xe.join("/")}`:"/"}function oo(X,Z="/",ne,le="ui"){let xe=wt(ne);if(xe.type==="host"||xe.type==="selector")return Ot(Z);return Mt(X,Z,xe[le])}function ro(X){return{"~standard":{version:1,vendor:X,validate:(Z)=>{if(typeof Z!=="object"||Z===null)return{issues:[{message:"Expected an object"}]};let ne=Z,le=[],xe={...ne},Re=["iss","sub"];for(let Ye of Re)if(Ye in ne){if(typeof ne[Ye]!=="string")le.push({message:`${Ye} must be a string`,path:[Ye]})}else le.push({message:`${Ye} is required`,path:[Ye]});if("aud"in ne&&ne.aud!==void 0){let Ye=ne.aud;if(typeof Ye!=="string"&&!Array.isArray(Ye))le.push({message:"aud must be a string or array of strings",path:["aud"]});else if(Array.isArray(Ye)&&!Ye.every((et)=>typeof et==="string"))le.push({message:"aud array must contain only strings",path:["aud"]})}let Fe=["jti","scope"];for(let Ye of Fe)if(Ye in ne&&ne[Ye]!==void 0){if(typeof ne[Ye]!=="string")le.push({message:`${Ye} must be a string`,path:[Ye]})}let Xe=["exp","iat"];for(let Ye of Xe)if(Ye in ne){if(typeof ne[Ye]!=="number")le.push({message:`${Ye} must be a number`,path:[Ye]})}else le.push({message:`${Ye} is required`,path:[Ye]});if(le.length>0)return{issues:le};return{value:xe}}}}}function no(X){return{"~standard":{version:1,vendor:X,validate:(Z)=>{if(typeof Z!=="object"||Z===null)return{issues:[{message:"Expected an object"}]};let ne=Z,le=[],xe={};if("access_token"in ne)if(typeof ne.access_token==="string")xe.access_token=ne.access_token;else le.push({message:"access_token must be a string",path:["access_token"]});else le.push({message:"access_token is required",path:["access_token"]});if("token_type"in ne)if(typeof ne.token_type==="string")xe.token_type=ne.token_type;else le.push({message:"token_type must be a string",path:["token_type"]});else le.push({message:"token_type is required",path:["token_type"]});if("scope"in ne)if(typeof ne.scope==="string"||ne.scope===void 0)xe.scope=ne.scope;else le.push({message:"scope must be a string",path:["scope"]});if("refresh_token"in ne)if(typeof ne.refresh_token==="string"||ne.refresh_token===void 0)xe.refresh_token=ne.refresh_token;else le.push({message:"refresh_token must be a string",path:["refresh_token"]});if("expires"in ne)if(typeof ne.expires==="string"||ne.expires===void 0)xe.expires=ne.expires;else le.push({message:"expires must be a string",path:["expires"]});if("expires_in"in ne)if(typeof ne.expires_in==="number"||ne.expires_in===void 0)xe.expires_in=ne.expires_in;else le.push({message:"expires_in must be a number",path:["expires_in"]});if(le.length>0)return{issues:le};return{value:xe}}}}}function so(X){let Z=new Uint8Array(X);return crypto.getRandomValues(Z),Z}function io(X){let Z="",ne=so(X);for(let le=0;le<X;le++){let xe=ne[le]%32;Z+="0123456789ABCDEFGHJKMNPQRSTVWXYZ".charAt(xe)}return Z}function ao(X,Z){let ne="";for(let le=Z;le>0;le--){let xe=X%32;ne="0123456789ABCDEFGHJKMNPQRSTVWXYZ".charAt(xe)+ne,X=Math.floor(X/32)}return ne}function po(X){let Z=Date.now(),ne=ao(Z,10),le=io(16);return`${X??""}${ne}${le}`}export{i as ACCEPT_JSON,Le as ACCEPT_OCTET_STREAM,oe as ACCEPT_SCIM,Ne as ACCEPT_XML,de as AssignmentPolicyError,H as CANONICAL_RISK_LEVELS,h as CONTENT_TYPE_FORM,r as CONTENT_TYPE_JSON,Ke as CONTENT_TYPE_OCTET_STREAM,w as CONTENT_TYPE_SCIM,$e as CONTENT_TYPE_XML,nt as ConfigSourceError,_e as DEFAULT_DISCOVERED_COOKIE_MAX,Ue as DEFAULT_DISCOVERED_COOKIE_TTL_SECONDS,Pe as DEFAULT_DISPLAY_COOKIE_MAX,f as DEFAULT_RISK_LEVEL,St as DEFAULT_SECRET_MIME_TYPES,xt as DEFAULT_TENANT_API_NAMESPACE,_t as DEFAULT_TENANT_UI_NAMESPACE,Q as DISCOVERED_COOKIE_PREFIX,Ee as DISPLAY_COOKIE_SUFFIX,K as DISPLAY_COOKIE_VERSION,Oe as ECID_SCHEME,E as EcidFormatError,_ as FORM_MEDIA_TYPE,e as ION_AUTHZ_GROUP_SCHEMA,yt as ION_AUTHZ_OAA_SYNC,dt as ION_CAPABILITIEZ_READ,gt as ION_CIAM_MAGIC_LINK_CREATE,Lt as ION_ENDPOINT_PERMISSIONS,ut as ION_IAM_ACCESS_REQUESTS_WRITE,lt as ION_IAM_CUSTOMERS_WRITE,ct as ION_IAM_GROUPS_WRITE,at as ION_IAM_READ,pt as ION_IAM_USERS_WRITE,mt as ION_IAM_WORKLOADS_WRITE,C as ION_SCIM_CUSTOMER_SCHEMA,u as ION_SCIM_USER_EXTENSION_URN,b as ION_SCIM_WORKLOAD_SCHEMA,Dt as ION_SDK_PERMISSIONS,ft as ION_TENANT_MANAGE,ye as IoniteError,s as JSON_MEDIA_TYPE,A as KNOWN_BASE_CUSTOMER_KEYS,R as KNOWN_BASE_USER_KEYS,d as KNOWN_ENTITLEMENT_KEYS,I as KNOWN_WORKLOAD_KEYS,ge as OCTET_STREAM_MEDIA_TYPE,g as PLATFORM_ASSIGNABLE_SUBJECT_TYPES,je as SCIM_MEDIA_TYPE,It as SecretContentTypeMismatchError,k as StoreConflictError,fe as XML_MEDIA_TYPE,n as accessRefId,p as accessRootId,P as assertEcid,J as assertRequiredSubjectType,ue as assertValidSubjectTypeScoping,Mt as buildTenantPath,oo as buildTenantUrl,j as catalogEntityStore,G as claimsToUser,v as compareDisplayExpiryDesc,Ae as configTrustedClientGrants,o as customAttributes,ce as customerResourceSchema,Gt as debugLogger,be as decodeDisplayCookie,Be as decodeUser,S as deepEqualPlain,pe as defaultDisplayUser,Vt as defaultLogger,Zt as defaultSecretContentType,ke as defineCatalog,Ct as defineSecretType,Y as deprecateRetiredCodeCatalogRows,V as discoveredProfileCookieName,q as encodeDisplayCookie,Me as formatEcid,ot as formatLogLine,po as generateULID,D as getCodeCatalogEntity,Je as groupResourceSchema,y as idTokenClaimsSchema,Bt as infoLogger,Se as isCodeCatalog,he as isConfigLocator,Nt as isConfigSourceError,Ce as isEcid,Te as isJsonResponse,O as isStoreConflictError,ro as jwtAssertionClaimsSchema,M as list,c as listGenerator,eo as matchTenantHost,to as matchTenantPath,Ie as matchesListFilter,N as materializeCodeCatalogEntity,T as mergeCodeCatalogEntity,We as mergeConfig,t as must,Tt as normalizeTenantBaseDomain,rt as normalizeTenantPathNamespace,wt as normalizeTenantRoutingStrategy,re as oidcCallbackSchema,De as parseEcid,qe as parseJsonc,zt as parseKmsPoolControlDocument,$t as parseKmsPoolDocument,Yt as prettyLogger,x as profileCookieName,m as projectDisplayUser,z as readDisplayCookies,a as readJsonResponse,Xt as readyCatalogEntry,Qt as remoteConfigSecretType,W as resolveDiscoveredCookieMax,te as resolveDiscoveredCookieTtlSeconds,ee as resolveDisplayCookieMax,me as sanitizeDisplayUser,jt as serializeConfig,ht as silentLogger,ze as stableConfigHash,we as stripJsonComments,Ge as tmIntegrationState,ve as toCodeCatalog,se as tokenResponseSchema,U as trimTrailingSlash,F as trustedClientPermissionsForPrincipal,B as unexpectedBodySummary,L as unionCatalogRead,He as userSchema,ie as validationFailureResponse,Kt as version,Ve as waitOn,Ht as warnLogger,l as withValidate,ae as workloadResourceSchema,no as workloadTokenResponseSchema};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ionite/core",
3
- "version": "0.0.24-beta.20260927.13",
3
+ "version": "0.0.24-beta.20260927.15",
4
4
  "description": "ionite Core (client-safe main entry; server handlers under ./server)",
5
5
  "private": false,
6
6
  "author": "ionite",