vibe64 0.1.47 → 0.1.49
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/bin/run.js +1734 -1687
- package/bin/server.js +75 -75
- package/bin/upgrade-state.js +4539 -4471
- package/dist/assets/GithubBrowserTabs-BwpiRS2u.js +1 -0
- package/dist/assets/{LocalDatabaseServer-6VzPWZxG.js → LocalDatabaseServer-u_Ky7bNS.js} +1 -1
- package/dist/assets/{Vibe64AuthSettingsButton-TLwqAxDo.js → Vibe64AuthSettingsButton-BCwswT1G.js} +1 -1
- package/dist/assets/{Vibe64DashboardShell-B4dQ-oHD.js → Vibe64DashboardShell-CWlgrR2B.js} +1 -1
- package/dist/assets/{Vibe64DatabaseWorkspace-Bh5WIPOj.js → Vibe64DatabaseWorkspace-Dhs8_H0P.js} +1 -1
- package/dist/assets/Vibe64OutputControls-Dn548CZa.js +8 -0
- package/dist/assets/{Vibe64RepositoryWorkspace-idDg94lc.js → Vibe64RepositoryWorkspace-C-8S4JUF.js} +1 -1
- package/dist/assets/{Vibe64SessionFiles-Z9zxosyl.js → Vibe64SessionFiles-Cx6J7DDN.js} +2 -3
- package/dist/assets/{Vibe64UiStoryboardView-CrCDWMdR.js → Vibe64UiStoryboardView-DHyhJiWS.js} +1 -1
- package/dist/assets/{Vibe64UnavailableSessions-TqsxvGSf.js → Vibe64UnavailableSessions-Da4RxIhA.js} +1 -1
- package/dist/assets/{_sessionId_-7F1VGOou.js → _sessionId_-DCpgDPSI.js} +1 -1
- package/dist/assets/_slug_-BbEWp01a.js +25 -0
- package/dist/assets/{_slug_-B16mTWjj.css → _slug_-DerKOisL.css} +1 -1
- package/dist/assets/{access-Cx9RH95J.js → access-D4di2sCr.js} +1 -1
- package/dist/assets/{app-DPx4KKOa.js → app-Adr9Iz8p.js} +1 -1
- package/dist/assets/asyncModuleRecovery-DJsn5NrL.js +1 -0
- package/dist/assets/{changes-DYsuQLFW.js → changes-3Dd1O8Lu.js} +1 -1
- package/dist/assets/client-BAXHGUOC.js +1 -0
- package/dist/assets/{client-BYsDPxR3.js → client-CCZIu6yc.js} +1 -1
- package/dist/assets/{conversation-3ln-WnbL.css → conversation-CSDHdGDb.css} +1 -1
- package/dist/assets/conversation-DG9lp25w.js +8 -0
- package/dist/assets/conversation-ErAO1CmH.js +13 -0
- package/dist/assets/{dashboard-CWswAbYP.js → dashboard-0tCzDYCX.js} +1 -1
- package/dist/assets/english-definitions-DeiQ-jTT.js +1 -0
- package/dist/assets/env-DsyQ2MFX.js +1 -0
- package/dist/assets/{health-C0f6s-G1.js → health-DyTXU-nb.js} +1 -1
- package/dist/assets/{history-BQjETNB9.js → history-BXGAdPMI.js} +1 -1
- package/dist/assets/{incoming-COpY201m.js → incoming-yajkdGBY.js} +1 -1
- package/dist/assets/{index-MWACm8Pp.css → index-B-dukXUB.css} +1 -1
- package/dist/assets/index-CGz4Yow6.js +136 -0
- package/dist/assets/{integrations-BBkvNRHu.js → integrations-BMrXET36.js} +10 -2
- package/dist/assets/issues-kc1XBZCK.js +1 -0
- package/dist/assets/{learning-B8_wHoe1.js → learning-CIE5ghYv.js} +1 -1
- package/dist/assets/linkPath-Ch9eft18.js +1 -0
- package/dist/assets/{placement-DXvgK433.js → placement-BNmlke_j.js} +1 -1
- package/dist/assets/placement-DYM3JJ-F.js +1 -0
- package/dist/assets/publish-DTh6amqi.js +3 -0
- package/dist/assets/pull-requests-CbfGSSIh.js +1 -0
- package/dist/assets/{repository-BNPt7UWc.js → repository-BstMh-bG.js} +1 -1
- package/dist/assets/settings-Bf8C6dls.js +1 -0
- package/dist/assets/{studioGateApi-BVdclhPL.js → studioGateApi-mkX1eOTX.js} +1 -1
- package/dist/assets/{studioUrls-CGKCbM_d.js → studioUrls-B0-GdWh8.js} +1 -1
- package/dist/assets/useArchivedVibe64Sessions-DIOpfUxD.js +1 -0
- package/dist/assets/useCommand-CVuya6vG.js +1 -0
- package/dist/assets/useEndpointResource-7-YDfAxX.js +1 -0
- package/dist/assets/usePaths-Y6UuQxmI.js +1 -0
- package/dist/assets/{useUiFeedback-B51xtCAK.js → useUiFeedback-Bd3rao6E.js} +1 -1
- package/dist/assets/useVibe64ConversationLog-ChJOU2SD.js +1 -0
- package/dist/assets/{useVibe64DatabaseTools-BE_yXZFn.js → useVibe64DatabaseTools-DKV-TeNJ.js} +1 -1
- package/dist/assets/{useVibe64ProjectScope-D7b8n1gx.js → useVibe64ProjectScope-DXjsKKhl.js} +1 -1
- package/dist/assets/useVibe64SessionData-BkIHUrP5.js +1 -0
- package/dist/assets/useVibe64SessionSelection-N8wX5oqo.js +1 -0
- package/dist/assets/{useVibe64SystemGraph-CDDcsye4.js → useVibe64SystemGraph-Db_eD-X8.js} +1 -1
- package/dist/assets/{useVibe64Terminal-Zr3Mig2L.js → useVibe64Terminal-B9EWJ9Ba.js} +2 -2
- package/dist/assets/vibe64ProjectScope.local-l5_-E6pq.js +1 -0
- package/dist/assets/vibe64RepositoryRealtime-CHT4-6VN.js +1 -0
- package/dist/assets/vibe64SessionFocus-CS6Ex53G.js +1 -0
- package/dist/assets/vibe64SessionFocus-CSm4YJQD.css +1 -0
- package/dist/assets/vibe64SessionRequestConfig-xIx-5jxQ.js +1 -0
- package/dist/index.html +26 -22
- package/docs/colleague-usage/ai-accounts.md +6 -2
- package/docs/colleague-usage/ai-balance-and-allowance.md +15 -2
- package/docs/colleague-usage/coding-agent-failures.md +2 -1
- package/docs/colleague-usage/coding-agent-goals.md +8 -3
- package/docs/colleague-usage/coding-agents.md +16 -0
- package/docs/colleague-usage/github-work.md +14 -0
- package/docs/colleague-usage/preview-browser-checks.md +5 -3
- package/docs/colleague-usage/project-setup.md +6 -3
- package/docs/colleague-usage/running-vibe64-on-your-computer.md +3 -1
- package/docs/colleague-usage/sessions.md +35 -7
- package/docs/colleague-usage/starter-apps.md +3 -0
- package/docs/colleague-usage/temporary-chat-context.md +2 -1
- package/docs/colleague-usage/temporary-chats.md +17 -5
- package/node_modules/@jskit-ai/assistant-core/CHANGELOG.md +539 -0
- package/node_modules/@jskit-ai/assistant-core/locales/en.json +383 -0
- package/node_modules/@jskit-ai/assistant-core/package.json +3 -2
- package/node_modules/@jskit-ai/assistant-runtime/CHANGELOG.md +138 -0
- package/node_modules/@jskit-ai/assistant-runtime/README.md +2 -1
- package/node_modules/@jskit-ai/assistant-runtime/locales/en.json +137 -0
- package/node_modules/@jskit-ai/assistant-runtime/package.json +3 -2
- package/node_modules/@jskit-ai/assistant-runtime/src/server/repositories/assistantConfigRepository.js +223 -203
- package/node_modules/@jskit-ai/assistant-runtime/src/server/repositories/conversationsRepository.js +286 -266
- package/node_modules/@jskit-ai/assistant-runtime/src/server/repositories/messagesRepository.js +270 -250
- package/node_modules/@jskit-ai/assistant-voice/locales/en.json +182 -0
- package/node_modules/@jskit-ai/assistant-voice/package.json +3 -2
- package/node_modules/@jskit-ai/connector-google-calendar/CHANGELOG.md +83 -0
- package/node_modules/@jskit-ai/connector-google-calendar/locales/en.json +91 -0
- package/node_modules/@jskit-ai/connector-google-calendar/package.json +4 -3
- package/node_modules/@jskit-ai/connectors-catalog/CHANGELOG.md +1722 -0
- package/node_modules/@jskit-ai/connectors-catalog/README.md +11 -0
- package/node_modules/@jskit-ai/connectors-catalog/locales/en.json +3139 -0
- package/node_modules/@jskit-ai/connectors-catalog/package.json +5 -4
- package/node_modules/@jskit-ai/connectors-core/CHANGELOG.md +183 -0
- package/node_modules/@jskit-ai/connectors-core/locales/en.json +92 -0
- package/node_modules/@jskit-ai/connectors-core/package.json +3 -2
- package/node_modules/@jskit-ai/http-runtime/CHANGELOG.md +31 -0
- package/node_modules/@jskit-ai/http-runtime/locales/en.json +14 -0
- package/node_modules/@jskit-ai/http-runtime/package.json +3 -2
- package/node_modules/@jskit-ai/kernel/CHANGELOG.md +182 -0
- package/node_modules/@jskit-ai/kernel/locales/en.json +94 -0
- package/node_modules/@jskit-ai/kernel/package.json +6 -2
- package/node_modules/@jskit-ai/payments-core/CHANGELOG.md +128 -0
- package/node_modules/@jskit-ai/payments-core/locales/en.json +77 -0
- package/node_modules/@jskit-ai/payments-core/package.json +3 -2
- package/node_modules/@jskit-ai/realtime/CHANGELOG.md +20 -0
- package/node_modules/@jskit-ai/realtime/locales/en.json +14 -0
- package/node_modules/@jskit-ai/realtime/package.json +3 -2
- package/node_modules/@jskit-ai/resource-core/package.json +1 -1
- package/node_modules/@jskit-ai/resource-crud-core/package.json +1 -1
- package/node_modules/@jskit-ai/uploads-runtime/CHANGELOG.md +35 -0
- package/node_modules/@jskit-ai/uploads-runtime/locales/en.json +15 -0
- package/node_modules/@jskit-ai/uploads-runtime/package.json +3 -2
- package/node_modules/@local/vibe64-execution/src/host/execHelper.js +49 -48
- package/node_modules/@local/vibe64-execution/src/server/gitTurnCheckpointCommand.js +1327 -0
- package/node_modules/@local/vibe64-genesis/bin/vibe64-genesis-host-context +430 -390
- package/node_modules/@local/vibe64-genesis/src/server/index.js +45 -45
- package/node_modules/@local/vibe64-genesis/src/server/promptContext.js +119 -119
- package/node_modules/@local/vibe64-runtime/src/server/codexAppServerProcess.js +57 -57
- package/node_modules/@local/vibe64-sessions/package.json +2 -1
- package/node_modules/@local/vibe64-terminals/src/server/opencodeSessionEnvironmentPlugin.js +195 -175
- package/node_modules/@local/vibe64-terminals/src/server/sessionWorkOperationCommand.js +1385 -1362
- package/package.json +15 -15
- package/server.bundle.mjs +44206 -42825
- package/dist/assets/GithubBrowserTabs-D-Z3TlA8.js +0 -1
- package/dist/assets/Vibe64OutputControls-DtybwgL3.js +0 -8
- package/dist/assets/_slug_-Bq84T_Iv.js +0 -24
- package/dist/assets/conversation-Bn7wpATa.js +0 -2
- package/dist/assets/conversation-CNcCrV-R.js +0 -16
- package/dist/assets/definitions-CEbi4qae.js +0 -1
- package/dist/assets/env-X7EOFLtl.js +0 -1
- package/dist/assets/index-CBo1BEk6.js +0 -138
- package/dist/assets/issues-BiSiUd5o.js +0 -1
- package/dist/assets/placement-B5T1LR7m.js +0 -1
- package/dist/assets/publish-CeLZE2AG.js +0 -3
- package/dist/assets/pull-requests-pTdQOT7i.js +0 -1
- package/dist/assets/settings-lecRzZ-r.js +0 -1
- package/dist/assets/useArchivedVibe64Sessions-DHYRnyJD.js +0 -1
- package/dist/assets/useCommand-Epd2yHhQ.js +0 -1
- package/dist/assets/useEndpointResource-DBRQISI_.js +0 -1
- package/dist/assets/usePaths-DdAnjVDj.js +0 -1
- package/dist/assets/useVibe64ConversationLog-DboM3tYN.js +0 -1
- package/dist/assets/useVibe64SessionData-CreWtQAO.js +0 -1
- package/dist/assets/useVibe64SessionSelection-CDaX4uwY.js +0 -1
- package/dist/assets/vibe64ProjectScope.local-BxTBYuRg.js +0 -1
- package/dist/assets/vibe64RepositoryRealtime-C-J0I5jY.js +0 -1
- package/dist/assets/vibe64SessionFocus-DSW5Irm6.css +0 -1
- package/dist/assets/vibe64SessionFocus-DzqbVq60.js +0 -1
package/node_modules/@jskit-ai/assistant-runtime/src/server/repositories/messagesRepository.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { createRequire as __vibe64CreateRequire } from 'node:module';const require=__vibe64CreateRequire(import.meta.url);
|
|
2
|
-
import{createWithTransaction as
|
|
2
|
+
import{createWithTransaction as Gn,normalizeDbRecordId as ke,runInTransaction as Wn}from"@jskit-ai/database-runtime/shared/repositoryOptions";var Qn=Object.freeze(["none","pending","committed","rolledBack","unknown"]);function g(e,{fallback:t=""}={}){return String(e||"").trim()||t}function b(e,{fallback:t={}}={}){return!e||typeof e!="object"||Array.isArray(e)?{...t}:e}function ae(e,{fallback:t=null}={}){if(e==null)return t;let n=String(e).trim();return/^[1-9][0-9]*$/.test(n)?n:t}function K(e,{
|
|
3
3
|
fallback:t=null}={}){return e==null?t:typeof e=="string"?ae(e,{fallback:t}):typeof e=="number"?!Number.isSafeInteger(e)||
|
|
4
|
-
e<1?t:ae(e,{fallback:t}):typeof e=="bigint"?e<1n?t:ae(e,{fallback:t}):t}import{resolveInsertedRecordId as
|
|
5
|
-
l_call",TOOL_RESULT:"tool_result",ERROR:"error",DONE:"done"}),
|
|
6
|
-
|
|
7
|
-
typeof e.toJsonSchema=="function"&&typeof e.cleanup=="function"}function
|
|
4
|
+
e<1?t:ae(e,{fallback:t}):typeof e=="bigint"?e<1n?t:ae(e,{fallback:t}):t}import{resolveInsertedRecordId as Kn}from"@jskit-ai/database-runtime/shared";import{normalizeDbRecordId as Jn}from"@jskit-ai/database-runtime/shared/repositoryOptions";var Ht=Object.freeze(["assistant"]);var Me=Object.freeze({META:"meta",ASSISTANT_DELTA:"assistant_delta",ASSISTANT_MESSAGE:"assistant_message",TOOL_CALL:"too\
|
|
5
|
+
l_call",TOOL_RESULT:"tool_result",ERROR:"error",DONE:"done"}),Ao=new Set(Object.values(Me));function E(e){if(e===null||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||
|
|
6
|
+
Kt(t)}function Kt(e){return e!==null&&typeof e=="object"&&Object.getPrototypeOf(e)===null&&Reflect.ownKeys(e).length===0}function ce(e){return e!==null&&typeof e=="object"&&E(e.structure)&&E(e.operations)&&typeof e.validateWith=="function"&&
|
|
7
|
+
typeof e.toJsonSchema=="function"&&typeof e.cleanup=="function"}function J(e,t){if(!Object.hasOwn(t,"items"))return null;
|
|
8
8
|
let{items:n}=t;if(ce(n))return{kind:"schema",schema:n};if(!E(n)||typeof n.type!="string")throw new Error(`Array field "${e}\
|
|
9
9
|
" must define items as either a Schema instance or a field definition object.`);return{kind:"definition",definition:n}}function V(e,t){
|
|
10
10
|
if(!Object.hasOwn(t,"values"))return null;let{values:n}=t;if(ce(n))return{kind:"schema",schema:n};if(!E(n)||typeof n.type!=
|
|
@@ -15,136 +15,136 @@ ues.`);if(o&&t.additionalProperties!==!0)throw new Error(`Object field "${e}" on
|
|
|
15
15
|
if(r&&t.additionalProperties===!0)throw new Error(`Object field "${e}" cannot define both values and additionalPropertie\
|
|
16
16
|
s: true.`);if(n){if(!ce(t.schema))throw new Error(`Object field "${e}" must define schema as a Schema instance.`);return{
|
|
17
17
|
kind:"nested",schema:t.schema,allowAdditionalProperties:t.additionalProperties===!0}}return r?{kind:"map",valuesConfig:V(
|
|
18
|
-
e,t)}:t.additionalProperties===!0?{kind:"opaque"}:{kind:"plain"}}function
|
|
19
|
-
(?:${Ve}):${
|
|
20
|
-
`^${Be}$`),
|
|
21
|
-
ue),
|
|
22
|
-
2?
|
|
18
|
+
e,t)}:t.additionalProperties===!0?{kind:"opaque"}:{kind:"plain"}}function L(e){return e?.type==="number"||e?.type==="integer"||e?.type==="epochMilliseconds"||e?.type==="epochSeconds"}var ue="^(?:0|-?[1-9]\\d*)$",xe="\\d{4}",De="0[1-9]|1[0-2]",Fe="0[1-9]|[12]\\d|3[01]",Ve="[01]\\d|2[0-3]",$="[0-5]\\d",W=`\
|
|
19
|
+
(?:${Ve}):${$}`,qe=`(?:Z|[+-](?:${Ve}):${$})`,Be=`(${xe})-(${De})-(${Fe})`,Ue=`${xe}-(?:${De})-(?:${Fe})`,He=`^${Ue}$`,Jt=new RegExp(
|
|
20
|
+
`^${Be}$`),Gt=new RegExp(`^${W}(?::${$}(?:\\.(\\d+))?)?$`),Wt=new RegExp(`^${Be}T${W}:${$}(?:\\.(\\d+))?${qe}$`),Xt=new RegExp(
|
|
21
|
+
ue),Yt=[31,28,31,30,31,30,31,31,30,31,30,31];function Qt(e){return e%4===0&&(e%100!==0||e%400===0)}function Zt(e,t){return t===
|
|
22
|
+
2?Qt(e)?29:28:Yt[t-1]}function Ke(e,t,n){let r=Number(e),o=Number(t),i=Number(n);return o>=1&&o<=12&&i>=1&&i<=Zt(r,o)}function q(e,t){
|
|
23
23
|
let n=e.temporalPrecision;if(n!==void 0){if(!Number.isInteger(n)||n<0)throw new Error(`temporalPrecision for "${t}" must\
|
|
24
|
-
be a non-negative integer.`);return n}}function
|
|
25
|
-
"string")return!1;let t=Jt.exec(e);return t!==null&&
|
|
26
|
-
exec(e);return n!==null&&
|
|
27
|
-
|
|
28
|
-
let n=q(e,t);return`^${W}(?::${
|
|
29
|
-
let n;if(typeof e=="number")n=e;else if(typeof e=="string"&&
|
|
30
|
-
n)||n<-t||n>t?null:n===0?0:n}var
|
|
31
|
-
has(e))throw new Error(`${t}() received unsafe path segment "${e}".`)}function
|
|
24
|
+
be a non-negative integer.`);return n}}function Je(e,t){return e===void 0?!0:t===void 0||e.length<=t}function Ge(e){if(typeof e!=
|
|
25
|
+
"string")return!1;let t=Jt.exec(e);return t!==null&&Ke(t[1],t[2],t[3])}function We(e,t){if(typeof e!="string")return!1;let n=Gt.
|
|
26
|
+
exec(e);return n!==null&&Je(n[1],t)}function Xe(e,t){if(typeof e!="string")return!1;let n=Wt.exec(e);return n===null?!1:
|
|
27
|
+
Ke(n[1],n[2],n[3])&&Je(n[4],t)}function Ye(e){return e===void 0?"(?:\\.\\d+)?":e===0?"":`(?:\\.\\d{1,${e}})?`}function Qe(e,t){
|
|
28
|
+
let n=q(e,t);return`^${W}(?::${$}${Ye(n)})?$`}function Ze(e,t){let n=q(e,t);return`^${Ue}T${W}:${$}${Ye(n)}${qe}$`}function le(e,t){
|
|
29
|
+
let n;if(typeof e=="number")n=e;else if(typeof e=="string"&&Xt.test(e))n=Number(e);else return null;return!Number.isSafeInteger(
|
|
30
|
+
n)||n<-t||n>t?null:n===0?0:n}var er=new Set(["__proto__","prototype","constructor"]);function p(e,t,n){Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0})}function tr(e,t){if(er.
|
|
31
|
+
has(e))throw new Error(`${t}() received unsafe path segment "${e}".`)}function rr(e){return typeof e!="string"?e:e.replace(
|
|
32
32
|
/\[(.+?)\]/g,".$1").replace(/^\.+/,"").replace(/\.+/g,".").replace(/\.$/,"")}function fe(e,t,{normalize:n=!1,allowEmpty:r=!1}={}){
|
|
33
|
-
let o=n?
|
|
33
|
+
let o=n?rr(e):e;if(typeof o!="string"||o.trim()===""){if(r&&o==="")return[];throw new Error(`${t}() expects a non-empty \
|
|
34
34
|
dotted path string.`)}let i=o.split(".");if(i.some(s=>s===""))throw new Error(`${t}() received an invalid path "${o}".`);
|
|
35
|
-
for(let s of i)
|
|
36
|
-
|
|
37
|
-
return{anyOf:[{type:"integer",minimum:-e,maximum:e},{type:"string",pattern:ue}]}}function
|
|
35
|
+
for(let s of i)tr(s,t);return i}var nr="http://json-schema.org/draft-07/schema#",j="x-json-rest-schema",de=["object","array","string","number","boolean"],
|
|
36
|
+
me=Symbol("json-rest-schema.exportContext"),or=["true","1","yes","y","on"],ir=["false","0","no","n","off"];function et(e){
|
|
37
|
+
return{anyOf:[{type:"integer",minimum:-e,maximum:e},{type:"string",pattern:ue}]}}function R(e,t){return{[j]:{[e]:t}}}var sr={
|
|
38
38
|
none:()=>({type:de}),blob:()=>({type:de}),serialize:()=>({type:de}),object:()=>({type:"object"}),array:()=>({type:"array"}),
|
|
39
39
|
file:()=>({type:"string"}),string:()=>({type:"string"}),number:()=>({type:["number","string"]}),integer:()=>({type:["int\
|
|
40
40
|
eger","string"]}),epochMilliseconds:()=>et(864e13),epochSeconds:()=>et(864e10),dateTime:({definition:e,fieldName:t})=>({
|
|
41
41
|
type:"string",format:"date-time",pattern:Ze(e,t)}),date:()=>({type:"string",format:"date",pattern:He}),time:({definition:e,
|
|
42
42
|
fieldName:t})=>({type:"string",pattern:Qe(e,t)}),boolean:({definition:e})=>{if(e.strictBoolean===!0)return{type:"boolean"};
|
|
43
|
-
let t=new Set([...
|
|
43
|
+
let t=new Set([...or,String(e.stringTrueWhen||"true").trim().toLowerCase()]),n=new Set([...ir,String(e.stringFalseWhen||
|
|
44
44
|
"false").trim().toLowerCase()]);return{anyOf:[{type:"boolean"},{type:"number",enum:[0,1]},{type:"string",enum:[...n,...t]}]}},
|
|
45
|
-
id:()=>({type:["integer","string"],minimum:1,pattern:"^[1-9][0-9]*$"})},
|
|
45
|
+
id:()=>({type:["integer","string"],minimum:1,pattern:"^[1-9][0-9]*$"})},ar={minLength:({definition:e,parameterValue:t})=>e.
|
|
46
46
|
type==="string"?{minLength:t}:null,maxLength:({definition:e,parameterValue:t})=>e.type==="string"?{maxLength:t}:null,min:({
|
|
47
|
-
definition:e,parameterValue:t})
|
|
47
|
+
definition:e,parameterValue:t})=>L(e)?{minimum:t}:null,max:({definition:e,parameterValue:t})=>L(e)?{maximum:t}:null,pattern:({
|
|
48
48
|
definition:e,parameterValue:t})=>e.type==="string"?{pattern:t instanceof RegExp?t.source:t}:null,enum:({parameterValue:e})=>({
|
|
49
49
|
enum:e}),notEmpty:({parameterValue:e,definition:t})=>!e||t.type==="array"?null:{minLength:1},uppercase:({parameterValue:e})=>e?
|
|
50
|
-
|
|
51
|
-
"transforms",{length:e}),unsigned:({parameterValue:e})=>e?
|
|
52
|
-
"metadata",{precision:e}),scale:({parameterValue:e})=>
|
|
50
|
+
R("transforms",{uppercase:!0}):null,lowercase:({parameterValue:e})=>e?R("transforms",{lowercase:!0}):null,length:({parameterValue:e})=>R(
|
|
51
|
+
"transforms",{length:e}),unsigned:({parameterValue:e})=>e?R("metadata",{unsigned:!0}):null,precision:({parameterValue:e})=>R(
|
|
52
|
+
"metadata",{precision:e}),scale:({parameterValue:e})=>R("metadata",{scale:e}),temporalPrecision:({parameterValue:e})=>R(
|
|
53
53
|
"metadata",{temporalPrecision:e}),strictBoolean:()=>null,required:()=>null,nullable:()=>null,nullOnEmpty:()=>null,defaultTo:()=>null};
|
|
54
54
|
function ge(e,t){for(let n of Object.keys(t)){let r=t[n],o=e[n];if(r&&o&&typeof r=="object"&&typeof o=="object"&&!Array.
|
|
55
|
-
isArray(r)&&!Array.isArray(o)){ge(o,r);continue}e[n]=r}}function
|
|
55
|
+
isArray(r)&&!Array.isArray(o)){ge(o,r);continue}e[n]=r}}function cr(e,t){if(!t||typeof t!="object"||Array.isArray(t))throw new Error(
|
|
56
56
|
"JSON Schema export hooks must return an object or null.");for(let n of Object.keys(t)){if(n===j&&e[n]&&typeof e[n]=="ob\
|
|
57
|
-
ject"&&typeof t[n]=="object"&&!Array.isArray(e[n])&&!Array.isArray(t[n])){ge(e[n],t[n]);continue}e[n]=t[n]}}function
|
|
58
|
-
let r=[...Array.isArray(e.anyOf)&&Object.keys(e).length===1?e.anyOf:[e],...t];return r.length===1?e:{anyOf:r}}function
|
|
57
|
+
ject"&&typeof t[n]=="object"&&!Array.isArray(e[n])&&!Array.isArray(t[n])){ge(e[n],t[n]);continue}e[n]=t[n]}}function ur(e,t){
|
|
58
|
+
let r=[...Array.isArray(e.anyOf)&&Object.keys(e).length===1?e.anyOf:[e],...t];return r.length===1?e:{anyOf:r}}function lr(e,t){
|
|
59
59
|
if(!Object.hasOwn(e.types,t.type))throw new Error(`No casting function for type: ${t.type}`);let n=e.types[t.type];if(typeof n.
|
|
60
|
-
toJsonSchema=="function")return n.toJsonSchema;let r=
|
|
61
|
-
ed to JSON Schema without a toJsonSchema hook.`);return r}function
|
|
62
|
-
let r=e.validators[t];if(typeof r.toJsonSchema=="function")return r.toJsonSchema;let o=
|
|
60
|
+
toJsonSchema=="function")return n.toJsonSchema;let r=sr[t.type];if(!r)throw new Error(`Type '${t.type}' cannot be export\
|
|
61
|
+
ed to JSON Schema without a toJsonSchema hook.`);return r}function fr(e,t,n){if(!Object.hasOwn(e.validators,t))return null;
|
|
62
|
+
let r=e.validators[t];if(typeof r.toJsonSchema=="function")return r.toJsonSchema;let o=ar[t];if(o)return o;throw new Error(
|
|
63
63
|
`Validator '${t}' on field '${n}' cannot be exported to JSON Schema without a toJsonSchema hook.`)}function tt(e){if(e===
|
|
64
64
|
void 0)return"create";if(["create","replace","patch"].includes(e))return e;throw new Error(`Unsupported JSON Schema expo\
|
|
65
|
-
rt mode '${e}'. Expected 'create', 'replace', or 'patch'.`)}function
|
|
65
|
+
rt mode '${e}'. Expected 'create', 'replace', or 'patch'.`)}function dr(e,t={}){if(t.mode!==void 0&&t.operation!==void 0){
|
|
66
66
|
let n=tt(t.mode);if(n!==t.operation)throw new Error(`Conflicting JSON Schema export options: mode '${n}' does not match \
|
|
67
67
|
operation '${t.operation}'.`)}if(t.operation!==void 0){if(!Object.hasOwn(e.operations,t.operation))throw new Error(`Unkn\
|
|
68
|
-
own JSON Schema export operation '${t.operation}'.`);return t.operation}return tt(t.mode)}function
|
|
69
|
-
void 0&&t.operationDescriptor!==void 0)return{operationName:t.operationName,operation:t.operationDescriptor};let n=
|
|
70
|
-
t);return{operationName:n,operation:e.operations[n]}}function pr(e={}){let t={...e};return Object.defineProperty(t,
|
|
71
|
-
definitions:{},nodes:[],nextDefinitionId:1,rootNode:null},enumerable:!1}),t}function Y(e={}){return e[
|
|
72
|
-
nodes:[],nextDefinitionId:1,rootNode:null}}function
|
|
73
|
-
"")||"operation"}function
|
|
74
|
-
e)?{allOf:[e]}:e}function
|
|
75
|
-
o)||null}function
|
|
76
|
-
root:i=!1}={}){let s=Y(t),c=
|
|
77
|
-
operation:r,additionalProperties:o,status:"new",definitionName:i?null:
|
|
68
|
+
own JSON Schema export operation '${t.operation}'.`);return t.operation}return tt(t.mode)}function mr(e,t={}){if(t.operationName!==
|
|
69
|
+
void 0&&t.operationDescriptor!==void 0)return{operationName:t.operationName,operation:t.operationDescriptor};let n=dr(e,
|
|
70
|
+
t);return{operationName:n,operation:e.operations[n]}}function pr(e={}){let t={...e};return Object.defineProperty(t,me,{value:{
|
|
71
|
+
definitions:{},nodes:[],nextDefinitionId:1,rootNode:null},enumerable:!1}),t}function Y(e={}){return e[me]?e[me]:{definitions:{},
|
|
72
|
+
nodes:[],nextDefinitionId:1,rootNode:null}}function hr(e){return String(e).replace(/[^a-zA-Z0-9]+/g,"_").replace(/^_+|_+$/g,
|
|
73
|
+
"")||"operation"}function pe(e){return E(e)&&Object.keys(e).length===1&&typeof e.$ref=="string"}function X(e){return pe(
|
|
74
|
+
e)?{allOf:[e]}:e}function yr(e,t,n,r,o){return e.nodes.find(i=>i.schema===t&&i.operationName===n&&i.operation===r&&i.additionalProperties===
|
|
75
|
+
o)||null}function gr(e,t){let n=hr(t),r=`SchemaNode_${e.nextDefinitionId}_${n}`;return e.nextDefinitionId+=1,r}function rt(e,t,n,r,o,{
|
|
76
|
+
root:i=!1}={}){let s=Y(t),c=yr(s,e,n,r,o);if(c)return i&&(c.pointer="#",s.rootNode=c),c;let a={schema:e,operationName:n,
|
|
77
|
+
operation:r,additionalProperties:o,status:"new",definitionName:i?null:gr(s,n),pointer:i?"#":null};return i?s.rootNode=a:
|
|
78
78
|
a.pointer=`#/definitions/${a.definitionName}`,s.nodes.push(a),a}function nt(e,t){if(e.status==="built")return{$ref:e.pointer};
|
|
79
79
|
if(e.status==="building")return{$ref:e.pointer};let n=Y(t);e.status="building",e.pointer!=="#"&&(n.definitions[e.definitionName]=
|
|
80
|
-
{});let r=
|
|
80
|
+
{});let r=Sr(e.schema,t,e.operationName,e.operation,e.additionalProperties);return e.status="built",e.pointer==="#"?r:(n.
|
|
81
81
|
definitions[e.definitionName]=r,{$ref:e.pointer})}function Se(e,t,n,r,o=!1){let i=Y(t),s=rt(e,t,n,r,o);return i.rootNode===
|
|
82
|
-
s?{$ref:"#"}:nt(s,t)}function B(e,{referenceBacked:t=!1}={}){return{schema:e,referenceBacked:t}}function
|
|
83
|
-
let i={},s=[];for(let[a,u]of Object.entries(e.structure))
|
|
84
|
-
a);let c={type:"object",properties:i,additionalProperties:o};return s.length>0&&(c.required=s),c}function
|
|
85
|
-
let s=
|
|
82
|
+
s?{$ref:"#"}:nt(s,t)}function B(e,{referenceBacked:t=!1}={}){return{schema:e,referenceBacked:t}}function Sr(e,t,n,r,o=!1){
|
|
83
|
+
let i={},s=[];for(let[a,u]of Object.entries(e.structure))p(i,a,be(e,a,u,t,n,r)),r.enforceRequired&&u.required===!0&&s.push(
|
|
84
|
+
a);let c={type:"object",properties:i,additionalProperties:o};return s.length>0&&(c.required=s),c}function br(e,t,n,r,o,i){
|
|
85
|
+
let s=J(t,n);if(!s)return null;if(s.kind==="schema")return{...X(Se(s.schema,r,"replace",s.schema.operations.replace,!1)),
|
|
86
86
|
[j]:{castType:"object"}};let c=n.items.type==="object"&&Object.hasOwn(n.items,"schema")?"replace":o,a=c==="replace"?e.operations.
|
|
87
|
-
replace:i;return be(e,`${t}[]`,n.items,r,c,a)}function
|
|
87
|
+
replace:i;return be(e,`${t}[]`,n.items,r,c,a)}function Or(e,t,n,r,o,i){let s=V(t,n);if(!s)return null;if(s.kind==="schem\
|
|
88
88
|
a")return{...X(Se(s.schema,r,"replace",s.schema.operations.replace,!1)),[j]:{castType:"object"}};let c=s.definition.type===
|
|
89
89
|
"object"&&Object.hasOwn(s.definition,"schema")?"replace":o,a=c==="replace"?e.operations.replace:i;return be(e,`${t}.*`,s.
|
|
90
|
-
definition,r,c,a)}function
|
|
90
|
+
definition,r,c,a)}function Er(e,t,n,r,o,i){if(n.type==="object"){let c=G(t,n);if(c.kind==="nested")return B(Se(c.schema,
|
|
91
91
|
r,o,i,c.allowAdditionalProperties===!0),{referenceBacked:!0});if(c.kind==="opaque")return B({type:"object",additionalProperties:!0});
|
|
92
|
-
if(c.kind==="map")return B({type:"object",additionalProperties:
|
|
92
|
+
if(c.kind==="map")return B({type:"object",additionalProperties:Or(e,t,n,r,o,i)})}let s=lr(e,n)({schema:e,fieldName:t,definition:n,
|
|
93
93
|
operation:o,mode:o,options:r});if(!s||typeof s!="object"||Array.isArray(s))throw new Error(`Type '${n.type}' on field '${t}\
|
|
94
|
-
' returned an invalid JSON Schema fragment.`);if(n.type==="array"){let c=
|
|
95
|
-
s)})}return B(s,{referenceBacked:
|
|
96
|
-
options:r},c=
|
|
97
|
-
n)){if(f==="type"||!Object.hasOwn(e.validators,f))continue;let
|
|
98
|
-
parameterValue:n[f],fieldSchema:{...a}});h&&
|
|
99
|
-
null"}),n.nullOnEmpty===!0&&l.push({const:""});let d=X(
|
|
94
|
+
' returned an invalid JSON Schema fragment.`);if(n.type==="array"){let c=br(e,t,n,r,o,i);if(c)return B({...s,items:c},{referenceBacked:pe(
|
|
95
|
+
s)})}return B(s,{referenceBacked:pe(s)})}function be(e,t,n,r,o,i){let s={schema:e,fieldName:t,definition:n,operation:o,mode:o,
|
|
96
|
+
options:r},c=Er(e,t,n,r,o,i),a=c.referenceBacked?X(c.schema):{...c.schema},u={castType:n.type};for(let f of Object.keys(
|
|
97
|
+
n)){if(f==="type"||!Object.hasOwn(e.validators,f))continue;let m=fr(e,f,t);if(!m)continue;let h=m({...s,parameterName:f,
|
|
98
|
+
parameterValue:n[f],fieldSchema:{...a}});h&&cr(a,h)}a[j]&&(ge(u,a[j]),delete a[j]);let l=[];n.nullable===!0&&l.push({type:"\
|
|
99
|
+
null"}),n.nullOnEmpty===!0&&l.push({const:""});let d=X(ur(a,l));if(n.defaultTo!==void 0&&i.applyDefaults)if(typeof n.defaultTo!=
|
|
100
100
|
"function"){let f=e._normalizeDefault(n,n.defaultTo,{fieldPath:t,currentObject:{},containerKey:t,objectBeforeCast:{},options:{},
|
|
101
|
-
settings:e._buildOperationSettings(o,i,{})});if(Object.keys(f.errors).length>0){let
|
|
102
|
-
`defaultTo for "${t}" is invalid (${
|
|
103
|
-
d}function ot(e,t={}){let n=pr(t),{operationName:r,operation:o}=
|
|
104
|
-
s=Y(n),c=rt(e,n,r,o,i,{root:!0}),a={$schema:
|
|
105
|
-
definitions),a}function it(e){return e!==null&&(typeof e=="object"||typeof e=="function")&&typeof e.then=="function"}function
|
|
106
|
-
|
|
101
|
+
settings:e._buildOperationSettings(o,i,{})});if(Object.keys(f.errors).length>0){let m=Object.values(f.errors)[0];throw new Error(
|
|
102
|
+
`defaultTo for "${t}" is invalid (${m.code}).`)}d.default=f.value}else u.defaults={providedByFunction:!0};return d[j]=u,
|
|
103
|
+
d}function ot(e,t={}){let n=pr(t),{operationName:r,operation:o}=mr(e,n),i=n.additionalProperties===void 0?!1:n.additionalProperties,
|
|
104
|
+
s=Y(n),c=rt(e,n,r,o,i,{root:!0}),a={$schema:nr,...nt(c,n)};return Object.keys(s.definitions).length>0&&(a.definitions=s.
|
|
105
|
+
definitions),a}function it(e){return e!==null&&(typeof e=="object"||typeof e=="function")&&typeof e.then=="function"}function _e(e){return e instanceof
|
|
106
|
+
x}function wr(){return{self:!1,children:{}}}function st(e){return Object.keys(e.children).length>0}function N(e,t){return`${e}\
|
|
107
107
|
.${String(t)}`}function dt(e,t){return e===""?String(t):N(e,t)}function at(e,t){if(e===t)return"";let n=`${t}.`;return e.
|
|
108
|
-
startsWith(n)?e.slice(n.length):null}function
|
|
109
|
-
field:o})}return n}function
|
|
110
|
-
r.length;i++){let s=r[i];Object.hasOwn(o,s)||
|
|
108
|
+
startsWith(n)?e.slice(n.length):null}function k(e,t){let n={};for(let r of Object.values(e)){let o=N(t,r.field);p(n,o,{...r,
|
|
109
|
+
field:o})}return n}function we(e){return fe(e,"validatePath")}function ct(e){let t={};for(let n of e){let r=we(n),o=t;for(let i=0;i<
|
|
110
|
+
r.length;i++){let s=r[i];Object.hasOwn(o,s)||p(o,s,wr()),i===r.length-1&&(o[s].self=!0),o=o[s].children}}return t}function Tr(e,t){
|
|
111
111
|
let n=e;for(let r of t){if(n==null||typeof n!="object"||!Object.hasOwn(n,r))return;n=n[r]}return n}function Q(e){return e===
|
|
112
112
|
null?!0:Array.isArray(e)||E(e)?Object.keys(e).length>0:e!==void 0}function ut(e){return[...e].sort((t,n)=>{let r=/^[0-9]+$/.
|
|
113
113
|
test(t),o=/^[0-9]+$/.test(n);return r&&o?Number(t)-Number(n):r?-1:o?1:t.localeCompare(n)})}function _r(e){return/^[0-9]+$/.
|
|
114
|
-
test(e)}function
|
|
114
|
+
test(e)}function Ar(e,t=new WeakMap){if(t.has(e))return t.get(e);let n=Object.create(x.prototype);return t.set(e,n),n.structure=
|
|
115
115
|
null,n.types=e.types,n.validators=e.validators,n.operations=e.operations,n.structure=ee(Z(e.structure,t)),n._installOperationMethods(),
|
|
116
|
-
Object.freeze(n)}function Z(e,t=new WeakMap){if(e===null||typeof e!="object")return e;if(
|
|
116
|
+
Object.freeze(n)}function Z(e,t=new WeakMap){if(e===null||typeof e!="object")return e;if(_e(e))return Ar(e,t);if(e instanceof
|
|
117
117
|
Date)return new Date(e.getTime());if(e instanceof RegExp){let r=new RegExp(e.source,e.flags);return r.lastIndex=e.lastIndex,
|
|
118
118
|
r}if(t.has(e))return t.get(e);if(Array.isArray(e)){let r=[];t.set(e,r);for(let o of e)r.push(Z(o,t));return r}if(!E(e))return e;
|
|
119
|
-
let n={};t.set(e,n);for(let[r,o]of Object.entries(e))
|
|
120
|
-
"object"||t.has(e)||
|
|
121
|
-
e))ee(e[n],t);return Object.freeze(e)}function Oe(e){return ee(Z(e))}function
|
|
119
|
+
let n={};t.set(e,n);for(let[r,o]of Object.entries(e))p(n,r,Z(o,t));return n}function ee(e,t=new WeakSet){if(e===null||typeof e!=
|
|
120
|
+
"object"||t.has(e)||_e(e))return e;if(t.add(e),Array.isArray(e))for(let n of e)ee(n,t);else for(let n of Reflect.ownKeys(
|
|
121
|
+
e))ee(e[n],t);return Object.freeze(e)}function Oe(e){return ee(Z(e))}function Te(e,t,n=""){if(!_e(e)||!Array.isArray(t)||
|
|
122
122
|
t.length<1)return null;let[r,...o]=t;if(!Object.hasOwn(e.structure,r))return null;let i=e.structure[r];if(o.length<1)return i;
|
|
123
|
-
let s=dt(n,r);return
|
|
124
|
-
kind!=="nested"?null:
|
|
125
|
-
let[i,...s]=n;if(!_r(i))return null;let c=N(r,i);return o.kind==="schema"?s.length<1?null:
|
|
126
|
-
definition:
|
|
123
|
+
let s=dt(n,r);return mt(e,i,o,s)}function mt(e,t,n,r){if(t?.type==="object"){let o=e._resolveObjectFieldMode(r,t);return o.
|
|
124
|
+
kind!=="nested"?null:Te(o.schema,n,r)}if(t?.type==="array"){let o=e._resolveArrayItemsConfig(r,t);if(!o||n.length<1)return null;
|
|
125
|
+
let[i,...s]=n;if(!_r(i))return null;let c=N(r,i);return o.kind==="schema"?s.length<1?null:Te(o.schema,s,c):s.length<1?o.
|
|
126
|
+
definition:mt(e,o.definition,s,c)}return null}function M(e,t){let n={...e};if(Array.isArray(e.skipFields)){let r=e.skipFields.
|
|
127
127
|
map(o=>at(o,t)).filter(o=>o!==null&&o!=="");r.length>0?n.skipFields=r:delete n.skipFields}if(E(e.skipParams)){let r={};for(let[
|
|
128
|
-
o,i]of Object.entries(e.skipParams)){let s=at(o,t);s===null||s===""||
|
|
129
|
-
skipParams}return n}var
|
|
128
|
+
o,i]of Object.entries(e.skipParams)){let s=at(o,t);s===null||s===""||p(r,s,i)}Object.keys(r).length>0?n.skipParams=r:delete n.
|
|
129
|
+
skipParams}return n}var jr=Object.freeze({create:Object.freeze({targetFields:"schema",enforceRequired:!0,applyDefaults:!0,
|
|
130
130
|
outputFields:"validated",rejectExplicitUndefined:!0}),replace:Object.freeze({targetFields:"schema",enforceRequired:!0,applyDefaults:!0,
|
|
131
131
|
outputFields:"validated",rejectExplicitUndefined:!0}),patch:Object.freeze({targetFields:"input",enforceRequired:!1,applyDefaults:!1,
|
|
132
132
|
outputFields:"input",rejectExplicitUndefined:!0})});function lt(e,t,n,r){let o=t[n];if(!r.includes(o))throw new Error(`O\
|
|
133
133
|
peration "${e}" must define ${n} as one of: ${r.join(", ")}.`)}function Ee(e,t,n,r=!0){let o=t[n];if(!(o===void 0&&!r)&&
|
|
134
|
-
typeof o!="boolean")throw new Error(`Operation "${e}" must define ${n} as a boolean.`)}function
|
|
134
|
+
typeof o!="boolean")throw new Error(`Operation "${e}" must define ${n} as a boolean.`)}function Ir(e,t){if(typeof t!="ob\
|
|
135
135
|
ject"||t===null||Array.isArray(t))throw new Error(`Operation "${e}" must be an object.`);return lt(e,t,"targetFields",["\
|
|
136
136
|
schema","input"]),Ee(e,t,"enforceRequired"),Ee(e,t,"applyDefaults"),lt(e,t,"outputFields",["validated","input"]),Ee(e,t,
|
|
137
137
|
"rejectExplicitUndefined",!1),Object.freeze({targetFields:t.targetFields,enforceRequired:t.enforceRequired,applyDefaults:t.
|
|
138
138
|
applyDefaults,outputFields:t.outputFields,rejectExplicitUndefined:t.rejectExplicitUndefined===void 0?!0:t.rejectExplicitUndefined})}
|
|
139
139
|
function Rr(e={}){if(typeof e!="object"||e===null||Array.isArray(e))throw new Error("Schema operations must be an object\
|
|
140
|
-
.");let t=Object.create(null);for(let[n,r]of Object.entries(
|
|
141
|
-
return Object.freeze(t)}function ft(e){let t=Object.create(null);for(let[n,r]of Object.entries(e))
|
|
142
|
-
freeze(t)}function
|
|
140
|
+
.");let t=Object.create(null);for(let[n,r]of Object.entries(jr))p(t,n,r);for(let[n,r]of Object.entries(e))p(t,n,Ir(n,r));
|
|
141
|
+
return Object.freeze(t)}function ft(e){let t=Object.create(null);for(let[n,r]of Object.entries(e))p(t,n,r);return Object.
|
|
142
|
+
freeze(t)}function Nr(e){let t={...e};return delete t.operation,delete t.mode,t}var x=class{constructor(t,n,r,o={}){this.
|
|
143
143
|
structure=t,this.types=ft(n),this.validators=ft(r),this.operations=Rr(o),this._installOperationMethods()}_typeError(t){return this.
|
|
144
144
|
_paramError(t,"TYPE_CAST_FAILED","Value could not be cast to the required type.")}_paramError(t,n,r,o={}){let i=new Error(
|
|
145
145
|
r);return i.errorObject={field:t,code:n,message:r,params:o},i}_paramToBeSkipped(t,n,r){return typeof n!="object"||n===null?
|
|
146
146
|
!1:!!(Array.isArray(n[r])&&n[r].includes(t))}_fieldToBeSkipped(t,n){return Array.isArray(n.skipFields)&&n.skipFields.includes(
|
|
147
|
-
t)}_mergeErrors(t,n){for(let[r,o]of Object.entries(n))
|
|
147
|
+
t)}_mergeErrors(t,n){for(let[r,o]of Object.entries(n))p(t,r,o)}_singleErrorMap(t){let n={};return p(n,t.field,t),n}_assertSupportedOptions(t={}){
|
|
148
148
|
if(Object.hasOwn(t,"onlyObjectValues"))throw new Error("Unsupported validation option `onlyObjectValues`. Call `patch()`\
|
|
149
149
|
directly.");if(Object.hasOwn(t,"mode"))throw new Error("Unsupported validation option `mode`. Call `validateWith()` or \
|
|
150
150
|
an operation method directly.");if(Object.hasOwn(t,"operation"))throw new Error("Unsupported validation option `operatio\
|
|
@@ -155,87 +155,87 @@ rejectExplicitUndefined,defaultedFields:new Set,isFieldPresent:o=>Object.hasOwn(
|
|
|
155
155
|
n))throw new Error(`${t}() expects a plain object input.`)}_resolvePathValidationRequest(t={}){let n=t.operation??t.mode??
|
|
156
156
|
"patch";if(Object.hasOwn(t,"operation")&&Object.hasOwn(t,"mode")&&t.operation!==t.mode)throw new Error("Path validation \
|
|
157
157
|
options `operation` and `mode` must match when both are provided.");if(!Object.hasOwn(this.operations,n))throw new Error(
|
|
158
|
-
`Unknown operation "${n}".`);let r=this.operations[n];return{operationName:n,operation:r,validationOptions:
|
|
158
|
+
`Unknown operation "${n}".`);let r=this.operations[n];return{operationName:n,operation:r,validationOptions:Nr(t)}}_buildOperationResult(t,n,r){
|
|
159
159
|
let o={};for(let i of r.outputFieldNames){if(!Object.hasOwn(this.structure,i))continue;let s=r.isFieldPresent(i);(n[i]!==
|
|
160
|
-
void 0||s&&t[i]===null||r.defaultedFields.has(i))&&(!s&&!r.defaultedFields.has(i)||
|
|
161
|
-
return G(t,n)}_resolveArrayItemsConfig(t,n){return
|
|
160
|
+
void 0||s&&t[i]===null||r.defaultedFields.has(i))&&(!s&&!r.defaultedFields.has(i)||p(o,i,n[i]))}return o}_resolveObjectFieldMode(t,n){
|
|
161
|
+
return G(t,n)}_resolveArrayItemsConfig(t,n){return J(t,n)}_resolveObjectValuesConfig(t,n){return V(t,n)}_buildArrayItemSettings(t,n){
|
|
162
162
|
return t.type==="object"&&Object.hasOwn(t,"schema")?{...n,operationName:"replace",operation:this.operations.replace}:n}_castValue(t,n,r,o,i,s,c,a){
|
|
163
163
|
let u=t.nullable===!0||c.nullable===!0,l=t.nullOnEmpty===!0||c.nullOnEmpty===!0;if(!Object.hasOwn(this.types,t.type))throw new Error(
|
|
164
|
-
`No casting function for type: ${t.type}`);let d=this.types[t.type];if(n===null)return u?(
|
|
164
|
+
`No casting function for type: ${t.type}`);let d=this.types[t.type];if(n===null)return u?(p(o,i,null),{errors:{},shouldContinue:!1}):
|
|
165
165
|
{errors:this._singleErrorMap({field:r,code:"NOT_NULLABLE",message:"Field cannot be null",params:{}}),shouldContinue:!1};
|
|
166
|
-
if(n===""&&l)return
|
|
166
|
+
if(n===""&&l)return p(o,i,null),{errors:{},shouldContinue:!1};let f={schema:this,definition:t,value:n,fieldName:r,object:o,
|
|
167
167
|
objectBeforeCast:s,valueBeforeCast:n,options:c,mode:a.operationName,operation:a.operationName,fieldPresent:!0,computedOptions:{
|
|
168
|
-
nullable:u||l,nullOnEmpty:l},throwTypeError:()=>{throw this._typeError(r)},throwParamError:(
|
|
169
|
-
r,
|
|
170
|
-
i,
|
|
168
|
+
nullable:u||l,nullOnEmpty:l},throwTypeError:()=>{throw this._typeError(r)},throwParamError:(m,h,S)=>{throw this._paramError(
|
|
169
|
+
r,m,h,S)}};try{let m=d(f);if(it(m))throw new Error(`Type handler for "${t.type}" must be synchronous.`);m!==void 0&&(p(o,
|
|
170
|
+
i,m),f.value=m)}catch(m){if(m.errorObject)return{errors:this._singleErrorMap(m.errorObject),shouldContinue:!1};throw m}return{
|
|
171
171
|
errors:{},context:f,shouldContinue:!0}}_runFieldValidators(t,n,r,o,i,s){for(let c of Object.keys(t)){if(c==="type"||this.
|
|
172
172
|
_paramToBeSkipped(c,s.skipParams,n)||!Object.hasOwn(this.validators,c))continue;let a=this.validators[c];try{i.parameterName=
|
|
173
173
|
c,i.parameterValue=t[c];let u=a(i);if(it(u))throw new Error(`Validator handler for "${c}" must be synchronous.`);u!==void 0&&
|
|
174
|
-
(
|
|
174
|
+
(p(r,o,u),i.value=u)}catch(u){if(u.errorObject)return this._singleErrorMap(u.errorObject);throw u}}return{}}_normalizeAndValidateValue(t,n,r,o,i,s,c,a){
|
|
175
175
|
let u=this._castValue(t,n,r,o,i,s,c,a);if(Object.keys(u.errors).length>0)return u.errors;if(!u.shouldContinue)return{};let{
|
|
176
176
|
context:l}=u,d=this._validateNestedValue(t,r,o,i,c,a);return Object.keys(d).length>0?d:(l.value=o[i],this._runFieldValidators(
|
|
177
177
|
t,r,o,i,l,c))}_normalizeDefault(t,n,{fieldPath:r,currentObject:o,containerKey:i,objectBeforeCast:s,options:c,settings:a}){
|
|
178
|
-
let u={...o};return
|
|
178
|
+
let u={...o};return p(u,i,n),{errors:this._normalizeAndValidateValue(t,n,r,u,i,s,c,a),value:u[i]}}_validateNestedValue(t,n,r,o,i,s){
|
|
179
179
|
if(t.type==="object"){let a=this._resolveObjectFieldMode(n,t);return a.kind==="nested"?this._validateNestedObjectSchema(
|
|
180
180
|
a,n,r,o,i,s):a.kind==="map"?this._validateObjectValues(n,r,o,a.valuesConfig,i,s):{}}if(t.type!=="array")return{};let c=this.
|
|
181
181
|
_resolveArrayItemsConfig(n,t);return c?this._validateArrayItems(n,r,o,c,i,s):{}}_validateNestedObjectSchema(t,n,r,o,i,s){
|
|
182
182
|
let c=r[o],a=t.allowAdditionalProperties?this._extractKnownObjectFields(c,t.schema):c,u=t.schema._validateWithOperation(
|
|
183
|
-
s.operationName,s.operation,a,
|
|
184
|
-
c,t.schema,u.validatedObject):u.validatedObject),
|
|
185
|
-
entries(t))Object.hasOwn(n.structure,o)&&
|
|
186
|
-
keys(t)){if(!Object.hasOwn(n.structure,i)){
|
|
187
|
-
r))Object.hasOwn(o,i)||
|
|
183
|
+
s.operationName,s.operation,a,M(i,n));return p(r,o,t.allowAdditionalProperties?this._mergeKnownAndPassthroughObjectFields(
|
|
184
|
+
c,t.schema,u.validatedObject):u.validatedObject),k(u.errors,n)}_extractKnownObjectFields(t,n){let r={};for(let[o,i]of Object.
|
|
185
|
+
entries(t))Object.hasOwn(n.structure,o)&&p(r,o,i);return r}_mergeKnownAndPassthroughObjectFields(t,n,r){let o={};for(let i of Object.
|
|
186
|
+
keys(t)){if(!Object.hasOwn(n.structure,i)){p(o,i,t[i]);continue}Object.hasOwn(r,i)&&p(o,i,r[i])}for(let[i,s]of Object.entries(
|
|
187
|
+
r))Object.hasOwn(o,i)||p(o,i,s);return o}_validateObjectValues(t,n,r,o,i,s){let c=n[r],a={...c},u={};p(n,r,a);for(let l of Object.
|
|
188
188
|
keys(c)){let d=N(t,l);if(this._fieldToBeSkipped(d,i))continue;let f=a[l];if(f===void 0){s.rejectExplicitUndefined?this._mergeErrors(
|
|
189
189
|
u,this._singleErrorMap(this._typeError(d).errorObject)):delete a[l];continue}if(o.kind==="schema"){let h=o.schema._validateWithOperation(
|
|
190
|
-
"replace",o.schema.operations.replace,f,
|
|
191
|
-
_normalizeAndValidateValue(o.definition,f,d,a,l,c,i,this._buildArrayItemSettings(o.definition,s));this._mergeErrors(u,
|
|
192
|
-
return u}_validateArrayItems(t,n,r,o,i,s){let c=n[r],a=c.slice(),u={};
|
|
190
|
+
"replace",o.schema.operations.replace,f,M(i,d));p(a,l,h.validatedObject),this._mergeErrors(u,k(h.errors,d));continue}let m=this.
|
|
191
|
+
_normalizeAndValidateValue(o.definition,f,d,a,l,c,i,this._buildArrayItemSettings(o.definition,s));this._mergeErrors(u,m)}
|
|
192
|
+
return u}_validateArrayItems(t,n,r,o,i,s){let c=n[r],a=c.slice(),u={};p(n,r,a);for(let l=0;l<a.length;l++){let d=N(t,l);
|
|
193
193
|
if(this._fieldToBeSkipped(d,i))continue;if(!Object.hasOwn(c,l)||a[l]===void 0){s.rejectExplicitUndefined?this._mergeErrors(
|
|
194
|
-
u,this._singleErrorMap(this._typeError(d).errorObject)):delete a[l];continue}if(o.kind==="schema"){let
|
|
195
|
-
"replace",o.schema.operations.replace,a[l],
|
|
194
|
+
u,this._singleErrorMap(this._typeError(d).errorObject)):delete a[l];continue}if(o.kind==="schema"){let m=o.schema._validateWithOperation(
|
|
195
|
+
"replace",o.schema.operations.replace,a[l],M(i,d));p(a,l,m.validatedObject),this._mergeErrors(u,k(m.errors,d));continue}
|
|
196
196
|
let f=this._normalizeAndValidateValue(o.definition,a[l],d,a,l,c,i,this._buildArrayItemSettings(o.definition,s));this._mergeErrors(
|
|
197
197
|
u,f)}return u}_validateField(t,n,r,o,i){if(!Object.hasOwn(this.structure,t))return{};let s=this.structure[t];if(this._fieldToBeSkipped(
|
|
198
198
|
t,o))return{};let c=i.isFieldPresent(t),a=n[t],u=a===void 0;return i.enforceRequired&&s.required&&(!c||u)&&!this._paramToBeSkipped(
|
|
199
199
|
"required",o.skipParams,t)?this._singleErrorMap({field:t,code:"REQUIRED",message:"Field is required",params:{}}):c?u?i.rejectExplicitUndefined?
|
|
200
200
|
this._singleErrorMap(this._typeError(t).errorObject):{}:this._normalizeAndValidateValue(s,a,t,r,t,n,o,i):{}}_validateWithOperation(t,n,r,o){
|
|
201
201
|
this._assertSupportedOptions(o);let i={},s={...r},c=this._buildOperationSettings(t,n,r);for(let a of Object.keys(r))Object.
|
|
202
|
-
hasOwn(this.structure,a)||
|
|
202
|
+
hasOwn(this.structure,a)||p(i,a,{field:a,code:"FIELD_NOT_ALLOWED",message:"Field not allowed",params:{}});for(let a of c.
|
|
203
203
|
targetFieldNames){let u=this._validateField(a,r,s,o,c);this._mergeErrors(i,u)}if(c.applyDefaults){for(let a of Object.keys(
|
|
204
204
|
this.structure))if(!c.isFieldPresent(a)&&this.structure[a].defaultTo!==void 0){let u=this.structure[a],l=typeof u.defaultTo==
|
|
205
205
|
"function"?u.defaultTo():u.defaultTo,d=this._normalizeDefault(u,l,{fieldPath:a,currentObject:s,containerKey:a,objectBeforeCast:r,
|
|
206
|
-
options:o,settings:c});if(this._mergeErrors(i,d.errors),Object.keys(d.errors).length>0)continue;
|
|
206
|
+
options:o,settings:c});if(this._mergeErrors(i,d.errors),Object.keys(d.errors).length>0)continue;p(s,a,d.value),c.defaultedFields.
|
|
207
207
|
add(a)}}return{validatedObject:this._buildOperationResult(r,s,c),errors:i}}_validateSelectedTree(t,n,r,o,i=""){let s={},
|
|
208
208
|
c={};for(let a of ut(Object.keys(t))){let u=dt(i,a);if(!Object.hasOwn(this.structure,a))throw new Error(`Unknown schema \
|
|
209
209
|
path "${u}".`);let l=this._validateSelectedField(a,t[a],n,c,r,o,u);this._mergeErrors(s,l)}return{validatedObject:c,errors:s}}_validateSelectedField(t,n,r,o,i,s,c){
|
|
210
210
|
if(!Object.hasOwn(this.structure,t))return{};let a=this.structure[t],u=n.self===!0,l=st(n);if(this._fieldToBeSkipped(c,i))
|
|
211
|
-
return{};let d=Object.hasOwn(r,t),f=r[t],
|
|
212
|
-
red",i.skipParams,c)&&this._mergeErrors(
|
|
213
|
-
u&&s.applyDefaults&&a.defaultTo!==void 0){let
|
|
214
|
-
a,
|
|
215
|
-
Object.keys(A.errors).length===0&&
|
|
216
|
-
this._typeError(c).errorObject):{};let h={[t]:f};if(u){let
|
|
217
|
-
hasOwn(h,t)&&h[t]!==void 0?
|
|
218
|
-
if(Object.keys(S.errors).length>0)return S.errors;if(!S.shouldContinue)return{};let
|
|
219
|
-
a,n.children,c,h,t,i,s);return Q(h[t])&&
|
|
211
|
+
return{};let d=Object.hasOwn(r,t),f=r[t],m={};if(!d){if(u&&s.enforceRequired&&a.required&&!this._paramToBeSkipped("requi\
|
|
212
|
+
red",i.skipParams,c)&&this._mergeErrors(m,this._singleErrorMap({field:c,code:"REQUIRED",message:"Field is required",params:{}})),
|
|
213
|
+
u&&s.applyDefaults&&a.defaultTo!==void 0){let T=typeof a.defaultTo=="function"?a.defaultTo():a.defaultTo,A=this._normalizeDefault(
|
|
214
|
+
a,T,{fieldPath:c,currentObject:o,containerKey:t,objectBeforeCast:r,options:i,settings:s});this._mergeErrors(m,A.errors),
|
|
215
|
+
Object.keys(A.errors).length===0&&p(o,t,A.value)}return m}if(f===void 0)return u&&s.rejectExplicitUndefined?this._singleErrorMap(
|
|
216
|
+
this._typeError(c).errorObject):{};let h={[t]:f};if(u){let T=this._normalizeAndValidateValue(a,f,c,h,t,r,i,s);return Object.
|
|
217
|
+
hasOwn(h,t)&&h[t]!==void 0?p(o,t,h[t]):h[t]===null&&p(o,t,null),T}if(!l)return{};let S=this._castValue(a,f,c,h,t,r,i,s);
|
|
218
|
+
if(Object.keys(S.errors).length>0)return S.errors;if(!S.shouldContinue)return{};let z=this._validateSelectedDescendants(
|
|
219
|
+
a,n.children,c,h,t,i,s);return Q(h[t])&&p(o,t,h[t]),z}_validateSelectedDescendants(t,n,r,o,i,s,c){if(t.type==="object"){
|
|
220
220
|
let a=this._resolveObjectFieldMode(r,t);if(a.kind!=="nested")throw new Error(`Schema path "${r}" does not support nested\
|
|
221
|
-
field selection.`);let u=o[i];if(!E(u))return{};let l=a.schema._validateSelectedTree(n,u,
|
|
222
|
-
return
|
|
221
|
+
field selection.`);let u=o[i];if(!E(u))return{};let l=a.schema._validateSelectedTree(n,u,M(s,r),{...c,defaultedFields:new Set});
|
|
222
|
+
return p(o,i,l.validatedObject),k(l.errors,r)}if(t.type==="array"){let a=this._resolveArrayItemsConfig(r,t);if(!a)throw new Error(
|
|
223
223
|
`Schema path "${r}" does not define array items for nested selection.`);return this._validateSelectedArrayItems(r,o,i,a,
|
|
224
224
|
n,s,c)}throw new Error(`Schema path "${r}" does not support nested field selection.`)}_validateSelectedArrayItems(t,n,r,o,i,s,c){
|
|
225
|
-
let a=[],u=n[r],l={};
|
|
226
|
-
t,d)}" is invalid because array segments must use numeric indexes.`);let f=Number(d),
|
|
227
|
-
h);if(this._fieldToBeSkipped(
|
|
228
|
-
errorObject);continue}let
|
|
229
|
-
if(o.kind==="schema"){if(S){let se=o.schema._validateWithOperation("replace",o.schema.operations.replace,
|
|
230
|
-
validatedObject)&&
|
|
231
|
-
h.children,
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
A);if(Object.keys(ie.errors).length>0){this._mergeErrors(l,ie.errors);continue}if(!ie.shouldContinue)continue;let
|
|
236
|
-
_validateSelectedDescendants(o.definition,h.children,
|
|
225
|
+
let a=[],u=n[r],l={};p(n,r,a);for(let d of ut(Object.keys(i))){if(!/^[0-9]+$/.test(d))throw new Error(`Schema path "${N(
|
|
226
|
+
t,d)}" is invalid because array segments must use numeric indexes.`);let f=Number(d),m=N(t,f),h=i[d],S=h.self===!0,z=st(
|
|
227
|
+
h);if(this._fieldToBeSkipped(m,s))continue;if(!Object.hasOwn(u,f)){S&&c.rejectExplicitUndefined&&p(l,m,this._typeError(m).
|
|
228
|
+
errorObject);continue}let T=u[f];if(T===void 0){S&&c.rejectExplicitUndefined&&p(l,m,this._typeError(m).errorObject);continue}
|
|
229
|
+
if(o.kind==="schema"){if(S){let se=o.schema._validateWithOperation("replace",o.schema.operations.replace,T,M(s,m));Q(se.
|
|
230
|
+
validatedObject)&&p(a,f,se.validatedObject),this._mergeErrors(l,k(se.errors,m));continue}if(!z)continue;let F=o.schema._validateSelectedTree(
|
|
231
|
+
h.children,T,M(s,m),{...c,operationName:"replace",operation:o.schema.operations.replace,defaultedFields:new Set});Q(F.validatedObject)&&
|
|
232
|
+
p(a,f,F.validatedObject),this._mergeErrors(l,k(F.errors,m));continue}let A=this._buildArrayItemSettings(o.definition,c),
|
|
233
|
+
_=[T];if(S){let F=this._normalizeAndValidateValue(o.definition,T,m,_,0,u,s,A);Object.hasOwn(_,0)&&_[0]!==void 0?p(a,f,_[0]):
|
|
234
|
+
_[0]===null&&p(a,f,null),this._mergeErrors(l,F);continue}if(!z)continue;let ie=this._castValue(o.definition,T,m,_,0,u,s,
|
|
235
|
+
A);if(Object.keys(ie.errors).length>0){this._mergeErrors(l,ie.errors);continue}if(!ie.shouldContinue)continue;let Vt=this.
|
|
236
|
+
_validateSelectedDescendants(o.definition,h.children,m,_,0,s,A);Q(_[0])&&p(a,f,_[0]),this._mergeErrors(l,Vt)}return l}validateWith(t,n,r={}){
|
|
237
237
|
if(!Object.hasOwn(this.operations,t))throw new Error(`Unknown operation "${t}".`);let o=this.operations[t];return this._assertPlainObjectInput(
|
|
238
|
-
t,n),this._validateWithOperation(t,o,n,r)}validateAt(t,n,r={}){this._assertPlainObjectInput("validateAt",n);let o=
|
|
238
|
+
t,n),this._validateWithOperation(t,o,n,r)}validateAt(t,n,r={}){this._assertPlainObjectInput("validateAt",n);let o=we(t),
|
|
239
239
|
{operationName:i,operation:s,validationOptions:c}=this._resolvePathValidationRequest(r),a=this._validateSelectedTree(ct(
|
|
240
240
|
[t]),n,c,this._buildOperationSettings(i,s,n));return{validatedValue:Tr(a.validatedObject,o),errors:a.errors}}validatePaths(t,n,r={}){
|
|
241
241
|
if(this._assertPlainObjectInput("validatePaths",n),!Array.isArray(t)||t.length===0)throw new Error("validatePaths() expe\
|
|
@@ -244,11 +244,11 @@ r);return this._validateSelectedTree(ct(t),n,s,this._buildOperationSettings(o,i,
|
|
|
244
244
|
keys(this.operations)){if(t in this)throw new Error(`Operation name "${t}" is reserved and cannot be used as a schema me\
|
|
245
245
|
thod.`);this[t]=(n,r={})=>this.validateWith(t,n,r)}}toJsonSchema(t={}){return ot(this,t)}getFieldDefinitions(){return Oe(
|
|
246
246
|
this.structure)}getFieldDefinition(t){if(typeof t!="string"||t.trim()==="")throw new Error("Field path must be a non-emp\
|
|
247
|
-
ty string.");let n=
|
|
247
|
+
ty string.");let n=Te(this,we(t.trim()));return n===null?null:Oe(n)}getFieldMessages(t){let n=this.getFieldDefinition(t);
|
|
248
248
|
return!n||typeof n.messages!="object"||n.messages===null?Object.freeze({}):Oe(n.messages)}cleanup(t,n){let r={};for(let o of Object.
|
|
249
|
-
keys(t))Object.hasOwn(this.structure,o)&&this.structure[o][n]&&
|
|
250
|
-
{"":e},"",e)),a=!c;for(;c<i.length;)a=!0,s[c]=
|
|
251
|
-
d;let f=r.call(this,l,d);switch(typeof f){case
|
|
249
|
+
keys(t))Object.hasOwn(this.structure,o)&&this.structure[o][n]&&p(r,o,t[o]);return r}};var{parse:Uo,stringify:Pr}=JSON,{keys:Ho}=Object,vr=String,Cr="string";var pt="object",zr=(e,t)=>t;var ht=(e,t,n)=>{let r=vr(t.push(n)-1);return e.set(n,r),r};var yt=(e,t,n)=>{let r=t&&typeof t===pt?(l,d)=>l===""||-1<t.indexOf(l)?d:void 0:t||zr,o=new Map,i=[],s=[],c=+ht(o,i,r.call(
|
|
250
|
+
{"":e},"",e)),a=!c;for(;c<i.length;)a=!0,s[c]=Pr(i[c++],u,n);return"["+s.join(",")+"]";function u(l,d){if(a)return a=!a,
|
|
251
|
+
d;let f=r.call(this,l,d);switch(typeof f){case pt:if(f===null)return f;case Cr:return o.get(f)||ht(o,i,f)}return f}};var $r=new Set(["true","1","yes","y","on"]),kr=new Set(["false","0","no","n","off"]);function Mr(e){return e!==null&&(typeof e==
|
|
252
252
|
"object"||typeof e=="function")&&typeof e.then=="function"}function gt(e){if(typeof e=="number")return Number.isFinite(e)?
|
|
253
253
|
e:null;if(typeof e=="bigint"){let t=Number(e);return Number.isSafeInteger(t)?t:null}if(typeof e=="string"){let t=e.trim();
|
|
254
254
|
if(t==="")return null;let n=Number(t);return Number.isFinite(n)?n:null}return null}function Ae(e,t){if(Object.is(e,t))return!0;
|
|
@@ -256,7 +256,7 @@ if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();if(e in
|
|
|
256
256
|
source===t.source&&e.flags===t.flags;if(Array.isArray(e)||Array.isArray(t)){if(!Array.isArray(e)||!Array.isArray(t)||e.length!==
|
|
257
257
|
t.length)return!1;for(let o=0;o<e.length;o++)if(!Ae(e[o],t[o]))return!1;return!0}if(e===null||t===null||typeof e!="objec\
|
|
258
258
|
t"||typeof t!="object"||Object.getPrototypeOf(e)!==Object.getPrototypeOf(t))return!1;let n=Object.keys(e),r=Object.keys(
|
|
259
|
-
t);if(n.length!==r.length)return!1;for(let o of n)if(!Object.hasOwn(t,o)||!Ae(e[o],t[o]))return!1;return!0}var
|
|
259
|
+
t);if(n.length!==r.length)return!1;for(let o of n)if(!Object.hasOwn(t,o)||!Ae(e[o],t[o]))return!1;return!0}var xr={install(e){
|
|
260
260
|
let{addType:t,addValidator:n}=e;t("none",r=>r.value),t("file",r=>{let o=r.value;o==null&&r.throwTypeError();let i=typeof o;
|
|
261
261
|
if(i==="string"||i==="number"||i==="boolean"){let s=o.toString();return r.definition.noTrim?s:s.trim()}r.throwTypeError()}),
|
|
262
262
|
t("string",r=>{let o=r.value;if(o==null)return"";let i=typeof o;if(i==="string"||i==="number"||i==="boolean"){let s=o.toString();
|
|
@@ -271,17 +271,17 @@ r.value)}catch{try{return yt(r.value)}catch{r.throwTypeError()}}}),t("boolean",r
|
|
|
271
271
|
value;if(typeof r.value=="number"){if(r.value===1)return!0;if(r.value===0)return!1;r.throwTypeError()}if(typeof r.value==
|
|
272
272
|
"bigint"){if(r.value===1n)return!0;if(r.value===0n)return!1;r.throwTypeError()}if(typeof r.value=="string"){let o=String(
|
|
273
273
|
r.definition.stringFalseWhen||"false").trim().toLowerCase(),i=String(r.definition.stringTrueWhen||"true").trim().toLowerCase(),
|
|
274
|
-
s=r.value.trim().toLowerCase(),c=new Set([...
|
|
274
|
+
s=r.value.trim().toLowerCase(),c=new Set([...kr,o]),a=new Set([...$r,i]);if(c.has(s))return!1;if(a.has(s))return!0}r.throwTypeError()}),
|
|
275
275
|
t("id",r=>{if(typeof r.value=="number"){if(Number.isSafeInteger(r.value)&&r.value>0)return r.value;r.throwTypeError()}if(typeof r.
|
|
276
276
|
value=="bigint"){if(r.value>0n&&r.value<=BigInt(Number.MAX_SAFE_INTEGER))return Number(r.value);r.throwTypeError()}if(typeof r.
|
|
277
277
|
value=="string"){let o=r.value.trim();/^[1-9][0-9]*$/.test(o)||r.throwTypeError();let i=Number(o);return Number.isSafeInteger(
|
|
278
278
|
i)||r.throwTypeError(),i}r.throwTypeError()}),n("minLength",r=>{r.value!==void 0&&r.definition.type==="string"&&r.value.
|
|
279
279
|
toString&&r.value.toString().length<r.parameterValue&&r.throwParamError("MIN_LENGTH",`Length must be at least ${r.parameterValue}\
|
|
280
|
-
characters.`,{min:r.parameterValue,actual:r.value.toString().length})}),n("min",r=>{r.value!==void 0
|
|
280
|
+
characters.`,{min:r.parameterValue,actual:r.value.toString().length})}),n("min",r=>{r.value!==void 0&&L(r.definition)&&
|
|
281
281
|
typeof r.value=="number"&&r.value<r.parameterValue&&r.throwParamError("MIN_VALUE",`Value must be at least ${r.parameterValue}\
|
|
282
282
|
.`,{min:r.parameterValue,actual:r.value})}),n("maxLength",r=>{r.value!==void 0&&r.definition.type==="string"&&r.value.toString&&
|
|
283
283
|
r.value.toString().length>r.parameterValue&&r.throwParamError("MAX_LENGTH",`Length must be no more than ${r.parameterValue}\
|
|
284
|
-
characters.`,{max:r.parameterValue,actual:r.value.toString().length})}),n("max",r=>{r.value!==void 0
|
|
284
|
+
characters.`,{max:r.parameterValue,actual:r.value.toString().length})}),n("max",r=>{r.value!==void 0&&L(r.definition)&&
|
|
285
285
|
typeof r.value=="number"&&r.value>r.parameterValue&&r.throwParamError("MAX_VALUE",`Value must be no more than ${r.parameterValue}\
|
|
286
286
|
.`,{max:r.parameterValue,actual:r.value})}),n("enum",r=>{if(!Array.isArray(r.parameterValue))throw new Error(`Enum for ${r.
|
|
287
287
|
fieldName} must be an array.`);r.parameterValue.some(i=>Ae(i,r.value))||r.throwParamError("ENUM_VALUE","Value must match\
|
|
@@ -301,145 +301,165 @@ ed character range.",{max:r.parameterValue,actual:String(r.valueBeforeCast).leng
|
|
|
301
301
|
typeof r.value=="string"&&r.value===""&&r.throwParamError("NOT_EMPTY","Field cannot be empty.")}),n("required",()=>{}),n(
|
|
302
302
|
"unsigned",()=>{}),n("precision",()=>{}),n("scale",()=>{}),n("temporalPrecision",r=>{if(r.definition.type!=="time"&&r.definition.
|
|
303
303
|
type!=="dateTime")throw new Error(`temporalPrecision can only be used on time or dateTime fields (${r.fieldName}).`)}),n(
|
|
304
|
-
"nullable",()=>{}),n("nullOnEmpty",()=>{}),n("defaultTo",()=>{})}},St=
|
|
305
|
-
unction")throw new Error(`Type handler for '${t}' must be a function.`);
|
|
306
|
-
on")throw new Error(`Validator handler for '${t}' must be a function.`);
|
|
307
|
-
for(let[n,r]of Object.entries(e))
|
|
308
|
-
gin must have an install method.");e.install(t)}function bt(e,t,n){Et.set(e,t),
|
|
309
|
-
freeze({getTypes:()=>t,getValidators:()=>n}),enumerable:!1,configurable:!1,writable:!1})}function
|
|
310
|
-
"object"&&typeof e!="function")return null;let t=Et.get(e),n=
|
|
304
|
+
"nullable",()=>{}),n("nullOnEmpty",()=>{}),n("defaultTo",()=>{})}},St=xr;var Et=new WeakMap,wt=new WeakMap,Tt=Symbol.for("json-rest-schema.registry-metadata");function Dr(e,t,n){if(typeof n!="f\
|
|
305
|
+
unction")throw new Error(`Type handler for '${t}' must be a function.`);p(e,t,n)}function Fr(e,t,n){if(typeof n!="functi\
|
|
306
|
+
on")throw new Error(`Validator handler for '${t}' must be a function.`);p(e,t,n)}function te(e={}){let t=Object.create(null);
|
|
307
|
+
for(let[n,r]of Object.entries(e))p(t,n,r);return t}function Vr(e,t){if(typeof e.install!="function")throw new Error("Plu\
|
|
308
|
+
gin must have an install method.");e.install(t)}function bt(e,t,n){Et.set(e,t),wt.set(e,n),Object.defineProperty(e,Tt,{value:Object.
|
|
309
|
+
freeze({getTypes:()=>t,getValidators:()=>n}),enumerable:!1,configurable:!1,writable:!1})}function qr(e){if(!e||typeof e!=
|
|
310
|
+
"object"&&typeof e!="function")return null;let t=Et.get(e),n=wt.get(e);if(t&&n)return{types:t,validators:n};let r=e[Tt];
|
|
311
311
|
return r&&typeof r.getTypes=="function"&&typeof r.getValidators=="function"?{types:r.getTypes(),validators:r.getValidators()}:
|
|
312
312
|
typeof e=="object"&&e.types&&typeof e.types=="object"&&e.validators&&typeof e.validators=="object"&&typeof e.create=="fu\
|
|
313
313
|
nction"&&typeof e.replace=="function"&&typeof e.patch=="function"&&typeof e.toJsonSchema=="function"?{types:e.types,validators:e.
|
|
314
|
-
validators}:null}function
|
|
315
|
-
for(let[r,o]of Object.entries(t)){if(Object.hasOwn(e,r)&&!
|
|
316
|
-
conflicting ${n} "${r}".`);
|
|
317
|
-
t)};let o=Object.create(null),i=Object.create(null);for(let s of r){let c=
|
|
314
|
+
validators}:null}function Br(e){return e.length===1&&Array.isArray(e[0])?e[0]:e}function Ur(e,t){return e===t}function Ot(e,t,n){
|
|
315
|
+
for(let[r,o]of Object.entries(t)){if(Object.hasOwn(e,r)&&!Ur(e[r],o))throw new Error(`Cannot merge schema factories with\
|
|
316
|
+
conflicting ${n} "${r}".`);p(e,r,o)}}function Hr(e,t,n){let r=Br(n).filter(Boolean);if(r.length<1)return{types:te(e),validators:te(
|
|
317
|
+
t)};let o=Object.create(null),i=Object.create(null);for(let s of r){let c=qr(s);if(!c)throw new Error("Factory sources m\
|
|
318
318
|
ust be schema instances or schema factories created by json-rest-schema.");Ot(o,c.types,"type"),Ot(i,c.validators,"valid\
|
|
319
|
-
ator")}return{types:o,validators:i}}function
|
|
320
|
-
let a=new
|
|
321
|
-
|
|
322
|
-
{types:c.types,validators:c.validators,installCore:!1})},n&&i.use(St),i}var y=
|
|
323
|
-
e))O(e[n],t);return Object.freeze(e)}var
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
319
|
+
ator")}return{types:o,validators:i}}function _t({types:e={},validators:t={},installCore:n=!0}={}){let r=te(e),o=te(t),i=(s,c={})=>{
|
|
320
|
+
let a=new x(s,r,o,c.operations);return bt(a,r,o),a};return bt(i,r,o),i.addType=(s,c)=>{Dr(r,s,c)},i.addValidator=(s,c)=>{
|
|
321
|
+
Fr(o,s,c)},i.use=s=>{Vr(s,{addType:i.addType,addValidator:i.addValidator})},i.createFactory=(...s)=>{let c=Hr(r,o,s);return _t(
|
|
322
|
+
{types:c.types,validators:c.validators,installCore:!1})},n&&i.use(St),i}var y=_t({installCore:!0});function O(e,t=new WeakSet){if(!e||typeof e!="object"||t.has(e))return e;t.add(e);for(let n of Object.getOwnPropertyNames(
|
|
323
|
+
e))O(e[n],t);return Object.freeze(e)}var Kr=new Set(["create","replace","patch"]),mi=Object.freeze({REQUIRED:{messageKey:"required",code:"kernel.validation.f\
|
|
324
|
+
ield.required"},TYPE_CAST_FAILED:{messageKey:"default",code:"kernel.validation.field.typeCastFailed"},NOT_NULLABLE:{messageKey:"\
|
|
325
|
+
default",code:"kernel.validation.field.notNullable"},MIN_LENGTH:{messageKey:"minLength",code:"kernel.validation.field.mi\
|
|
326
|
+
nLength"},MAX_LENGTH:{messageKey:"maxLength",code:"kernel.validation.field.maxLength"},MIN_VALUE:{messageKey:"min",code:"\
|
|
327
|
+
kernel.validation.field.minValue"},MAX_VALUE:{messageKey:"max",code:"kernel.validation.field.maxValue"},PATTERN:{messageKey:"\
|
|
328
|
+
pattern",code:"kernel.validation.field.pattern"},ENUM_VALUE:{messageKey:"enum",code:"kernel.validation.field.enumValue"},
|
|
329
|
+
FIELD_NOT_ALLOWED:{messageKey:"additionalProperties",code:"kernel.validation.field.notAllowed"},CUSTOM_VALIDATOR_FAILED:{
|
|
330
|
+
messageKey:"validator",code:""},STRICT_BOOLEAN:{messageKey:"default",code:"kernel.validation.field.strictBoolean"},RANGE_EXCEEDED:{
|
|
331
|
+
messageKey:"default",code:"kernel.validation.field.rangeExceeded"},NOT_EMPTY:{messageKey:"default",code:"kernel.validati\
|
|
332
|
+
on.field.notEmpty"}}),pi=Object.freeze({code:"kernel.validation.invalid",message:"Invalid value."});function U(e){return!!e&&
|
|
333
|
+
typeof e=="object"&&typeof e.create=="function"&&typeof e.replace=="function"&&typeof e.patch=="function"&&typeof e.toJsonSchema==
|
|
334
|
+
"function"}function jt(e=null,{defaultMode:t="create",context:n="schema definition.mode"}={}){let r=b(e),o=g(t).toLowerCase()||"cre\
|
|
335
|
+
ate",i=Object.prototype.hasOwnProperty.call(r,"mode")?g(r.mode).toLowerCase():"";if(!i)return o;if(!Kr.has(i))throw new TypeError(
|
|
336
|
+
`${n} must be one of: create, replace, patch.`);return i}function Gr(e){return!!e&&typeof e=="object"&&!Array.isArray(e)&&(Object.prototype.hasOwnProperty.call(e,"schema")||Object.
|
|
337
|
+
prototype.hasOwnProperty.call(e,"mode"))}function I(e,{context:t="schema definition",defaultMode:n=""}={}){if(e==null)return null;
|
|
338
|
+
if(!Gr(e))throw new TypeError(`${t} must be a schema definition object.`);let r=b(e);if(!Object.prototype.hasOwnProperty.
|
|
332
339
|
call(r,"schema"))throw new TypeError(`${t}.schema is required.`);if(!U(r.schema))throw new TypeError(`${t}.schema must b\
|
|
333
|
-
e a json-rest-schema schema instance.`);let o={schema:r.schema},i=g(n).toLowerCase();return o.mode=
|
|
334
|
-
"patch",context:`${t}.mode`}),Object.freeze(o)}function
|
|
335
|
-
items:t.schema},nextCursor:{type:"string",required:!1,nullable:!0,minLength:1}}),mode:"replace"})}var
|
|
336
|
-
mode:"patch"});var
|
|
337
|
-
{...
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
340
|
+
e a json-rest-schema schema instance.`);let o={schema:r.schema},i=g(n).toLowerCase();return o.mode=jt(r,{defaultMode:i||
|
|
341
|
+
"patch",context:`${t}.mode`}),Object.freeze(o)}function D(e){let t=I(e,{context:"cursor list item",defaultMode:"replace"});return O({schema:y({items:{type:"array",required:!0,
|
|
342
|
+
items:t.schema},nextCursor:{type:"string",required:!1,nullable:!0,minLength:1}}),mode:"replace"})}var Wr=y({cursor:{type:"id",required:!1},limit:{type:"number",required:!1,min:1,unsigned:!0}}),Xr=Object.freeze({schema:Wr,
|
|
343
|
+
mode:"patch"});var It=Object.freeze({type:"string",pattern:"^(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d)?$",minLength:5}),Yr=Object.freeze(
|
|
344
|
+
{...It,nullable:!0});var Mi=new Map([{keyword:"required",code:"kernel.validation.required"},{keyword:"type",code:"kernel.validation.type"},{keyword:"\
|
|
345
|
+
minLength",code:"kernel.validation.minLength"},{keyword:"maxLength",code:"kernel.validation.maxLength"},{keyword:"minimu\
|
|
346
|
+
m",code:"kernel.validation.minimum"},{keyword:"maximum",code:"kernel.validation.maximum"},{keyword:"exclusiveMinimum",code:"\
|
|
347
|
+
kernel.validation.exclusiveMinimum"},{keyword:"exclusiveMaximum",code:"kernel.validation.exclusiveMaximum"},{keyword:"mu\
|
|
348
|
+
ltipleOf",code:"kernel.validation.multipleOf"},{keyword:"pattern",code:"kernel.validation.pattern"},{keyword:"format",code:"\
|
|
349
|
+
kernel.validation.format"},{keyword:"enum",code:"kernel.validation.enum"},{keyword:"const",code:"kernel.validation.const"},
|
|
350
|
+
{keyword:"minItems",code:"kernel.validation.minItems"},{keyword:"maxItems",code:"kernel.validation.maxItems"},{keyword:"\
|
|
351
|
+
additionalItems",code:"kernel.validation.additionalItems"},{keyword:"uniqueItems",code:"kernel.validation.uniqueItems"},
|
|
352
|
+
{keyword:"minProperties",code:"kernel.validation.minProperties"},{keyword:"maxProperties",code:"kernel.validation.maxPro\
|
|
353
|
+
perties"},{keyword:"additionalProperties",code:"kernel.validation.additionalProperties"},{keyword:"propertyNames",code:"\
|
|
354
|
+
kernel.validation.propertyNames"},{keyword:"oneOf",code:"kernel.validation.oneOf"},{keyword:"anyOf",code:"kernel.validat\
|
|
355
|
+
ion.anyOf"},{keyword:"not",code:"kernel.validation.not"},{keyword:"if",code:"kernel.validation.if"}].map(({keyword:e,code:t})=>[
|
|
356
|
+
e,t]));var w="^[1-9][0-9]*$",je=O({type:"string",minLength:1,pattern:w}),Zr=O({...je,nullable:!0}),en=O({schema:y({recordId:{...je,
|
|
357
|
+
required:!0,messages:{pattern:{code:"kernel.validation.recordIdInvalid",message:"Record id must be a canonical positive \
|
|
358
|
+
integer string."}}}}),mode:"patch"});var tn=Object.freeze(["body","query","params","input","output"]);function P(e,t="patch",{context:n="schema definition"}={}){
|
|
359
|
+
return I({schema:e,mode:t},{context:n,defaultMode:"patch"})}function Ie(e,{context:t="schema definition",defaultMode:n="\
|
|
360
|
+
patch"}={}){if(e==null)return e;let r=U(e)?{schema:e,mode:n}:e;return I(r,{context:t,defaultMode:n})}function rn(e,t={}){
|
|
341
361
|
let n=g(e).toLowerCase();if(n==="output")return"replace";if(n!=="body")return"patch";let r=g(t?.method).toUpperCase();return r===
|
|
342
|
-
"POST"?"create":r==="PUT"?"replace":"patch"}function
|
|
362
|
+
"POST"?"create":r==="PUT"?"replace":"patch"}function nn(e,t=null,n=null){if(!t||typeof t!="object"||Array.isArray(t))throw new TypeError(
|
|
343
363
|
`defineResource operations.${e} must be an object.`);let r=b(t),o={...r};n&&typeof n=="object"&&!Array.isArray(n)&&!Object.
|
|
344
|
-
hasOwn(r,"messages")&&(o.messages=n);for(let i of
|
|
345
|
-
defineResource operations.${e}.${i}`,defaultMode:s})}return O(o)}function
|
|
346
|
-
entries(n)){let s=g(o);s&&(r[s]=
|
|
364
|
+
hasOwn(r,"messages")&&(o.messages=n);for(let i of tn){if(!Object.hasOwn(r,i))continue;let s=rn(i,r);o[i]=Ie(r[i],{context:`\
|
|
365
|
+
defineResource operations.${e}.${i}`,defaultMode:s})}return O(o)}function on(e=null,t=null){let n=b(e),r={};for(let[o,i]of Object.
|
|
366
|
+
entries(n)){let s=g(o);s&&(r[s]=nn(s,i,t))}return Object.freeze(r)}function sn(e,{context:t="defineResource resource.nam\
|
|
347
367
|
espace"}={}){let n=g(e);if(!n)throw new TypeError(`${t} requires a non-empty namespace.`);return n}function re(e={}){let t=b(
|
|
348
|
-
e),n=Object.hasOwn(t,"messages")?b(t.messages):null;return O({...t,namespace:
|
|
349
|
-
t.operations,n)})}var
|
|
350
|
-
|
|
351
|
-
maxLength:
|
|
352
|
-
|
|
353
|
-
minLength:1,maxLength:128},conversationId:{type:"string",required:!1,minLength:1,pattern:
|
|
354
|
-
minLength:1,maxLength:
|
|
355
|
-
schema:
|
|
356
|
-
minLength:1,maxLength:32}}),Pe=y({id:{type:"string",required:!0,minLength:1,pattern:
|
|
357
|
-
nullable:!0,minLength:1,pattern:
|
|
358
|
-
minLength:1,pattern:
|
|
368
|
+
e),n=Object.hasOwn(t,"messages")?b(t.messages):null;return O({...t,namespace:sn(t.namespace),...n?{messages:n}:{},operations:on(
|
|
369
|
+
t.operations,n)})}var Re=8e3,Rt=20,un=200,Nt=500,Ne={type:"array",required:!1,maxItems:10,items:{type:"string",minLength:1,maxLength:256}},
|
|
370
|
+
ln=y({attachmentIds:Ne,role:{type:"string",required:!0,enum:["user","assistant"]},content:{type:"string",required:!0,minLength:1,
|
|
371
|
+
maxLength:Re}}),fn=y({locale:{type:"string",required:!1,maxLength:64},timezone:{type:"string",required:!1,maxLength:64}}),
|
|
372
|
+
dn=y({attachmentIds:Ne,integrationId:{type:"string",required:!1,minLength:1,maxLength:128},messageId:{type:"string",required:!0,
|
|
373
|
+
minLength:1,maxLength:128},conversationId:{type:"string",required:!1,minLength:1,pattern:w},input:{type:"string",required:!0,
|
|
374
|
+
minLength:1,maxLength:Re},history:{type:"array",required:!1,maxItems:Rt,items:ln},clientContext:{type:"object",required:!1,
|
|
375
|
+
schema:fn}}),mn=y({cursor:{type:"id",required:!1},limit:{type:"number",required:!1,min:1,max:un},status:{type:"string",required:!1,
|
|
376
|
+
minLength:1,maxLength:32}}),Pe=y({id:{type:"string",required:!0,minLength:1,pattern:w},workspaceId:{type:"string",required:!0,
|
|
377
|
+
nullable:!0,minLength:1,pattern:w},title:{type:"string",required:!0},createdByUserId:{type:"string",required:!0,nullable:!0,
|
|
378
|
+
minLength:1,pattern:w},status:{type:"string",required:!0},provider:{type:"string",required:!0},model:{type:"string",required:!0},
|
|
359
379
|
surfaceId:{type:"string",required:!0},startedAt:{type:"string",required:!0,minLength:1},endedAt:{type:"string",required:!0,
|
|
360
380
|
nullable:!0,minLength:1},messageCount:{type:"integer",required:!0,min:0},metadata:{type:"object",required:!0,additionalProperties:!0},
|
|
361
381
|
createdAt:{type:"string",required:!0,minLength:1},updatedAt:{type:"string",required:!0,minLength:1}}),pn=y({id:{type:"st\
|
|
362
|
-
ring",required:!0,minLength:1,pattern:
|
|
363
|
-
string",required:!0,nullable:!0,minLength:1,pattern:
|
|
382
|
+
ring",required:!0,minLength:1,pattern:w},conversationId:{type:"string",required:!0,minLength:1,pattern:w},workspaceId:{type:"\
|
|
383
|
+
string",required:!0,nullable:!0,minLength:1,pattern:w},seq:{type:"integer",required:!0,min:1},role:{type:"string",required:!0,
|
|
364
384
|
minLength:1},kind:{type:"string",required:!0,minLength:1},clientMessageSid:{type:"string",required:!0},actorUserId:{type:"\
|
|
365
|
-
string",required:!0,nullable:!0,minLength:1,pattern:
|
|
366
|
-
string",required:!0,minLength:1},metadata:{type:"object",required:!0,additionalProperties:!0}}),
|
|
367
|
-
id",required:!0}}),
|
|
385
|
+
string",required:!0,nullable:!0,minLength:1,pattern:w},contentText:{type:"string",required:!0,nullable:!0},createdAt:{type:"\
|
|
386
|
+
string",required:!0,minLength:1},metadata:{type:"object",required:!0,additionalProperties:!0}}),hn=y({conversationId:{type:"\
|
|
387
|
+
id",required:!0}}),yn=y({page:{type:"number",required:!1,min:1},pageSize:{type:"number",required:!1,min:1,max:Nt}}),gn=y(
|
|
368
388
|
{page:{type:"integer",required:!0,min:1},pageSize:{type:"integer",required:!0,min:1},total:{type:"integer",required:!0,min:0},
|
|
369
389
|
totalPages:{type:"integer",required:!0,min:1},conversation:{type:"object",required:!0,schema:Pe},entries:{type:"array",required:!0,
|
|
370
|
-
items:pn}}),
|
|
371
|
-
method:"GET",query:
|
|
372
|
-
operations,i!==!0&&Object.assign(s,i),n[r]=s}return n}function
|
|
373
|
-
context:t="requireCrudNamespace"}={}){let n=
|
|
374
|
-
function
|
|
375
|
-
h","delete"]),
|
|
390
|
+
items:pn}}),Sn=P(Pe,"replace"),bn=re({namespace:"assistant",operations:{chatStream:{method:"POST",body:dn},conversationsList:{
|
|
391
|
+
method:"GET",query:mn,output:D(P(Pe,"replace"))},conversationMessagesList:{method:"GET",params:hn,query:yn,output:gn}}});function Pt(e={},t=""){let n={};for(let[r,o]of Object.entries(e)){let i=o?.operations?.[t];if(!i)continue;let s={...o};delete s.
|
|
392
|
+
operations,i!==!0&&Object.assign(s,i),n[r]=s}return n}function On(e=""){return g(e).toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"")}function ve(e,{
|
|
393
|
+
context:t="requireCrudNamespace"}={}){let n=On(e);if(!n)throw new TypeError(`${t} requires a non-empty namespace.`);return n}
|
|
394
|
+
function vt(e=""){return`${ve(e,{context:"resolveCrudRecordChangedEvent"}).replace(/-/g,"_")}.record.changed`}var En=Object.freeze(["list","view","create","patch","delete"]),Ct=Object.freeze(["list","view","create","replace","patc\
|
|
395
|
+
h","delete"]),wn=O({list:{method:"GET",outputKind:"list",includeRealtimeEvent:!0},view:{method:"GET",outputKind:"record"},
|
|
376
396
|
create:{method:"POST",outputKind:"record",bodyOperation:"create",bodyMode:"create",explicitBodyKeys:["createBody","body"]},
|
|
377
397
|
replace:{method:"PUT",outputKind:"record",bodyOperation:"replace",bodyMode:"replace",explicitBodyKeys:["replaceBody","bo\
|
|
378
398
|
dy","createBody"]},patch:{method:"PATCH",outputKind:"record",bodyOperation:"patch",bodyMode:"patch",explicitBodyKeys:["p\
|
|
379
|
-
atchBody","body"]},delete:{method:"DELETE",outputKind:"delete"}});function
|
|
380
|
-
pattern:
|
|
399
|
+
atchBody","body"]},delete:{method:"DELETE",outputKind:"delete"}});function zt(){return{type:"string",required:!0,minLength:1,
|
|
400
|
+
pattern:w}}function Tn(e={}){return g(e?.contract?.lookup?.containerKey)}function Ce(e={},t="output"){return Pt(e?.schema,
|
|
381
401
|
t)}function _n(e={}){let t=Ce(e,"output");if(Object.keys(t).length<1)throw new Error("defineCrudResource derived output \
|
|
382
|
-
requires explicit crud.output or at least one schema field with operations.output.");let n={id:
|
|
383
|
-
(n[r]={type:"object",required:!1}),P(y(n),"replace",{context:"defineCrudResource derived output"})}function
|
|
402
|
+
requires explicit crud.output or at least one schema field with operations.output.");let n={id:zt(),...t},r=Tn(e);return r&&
|
|
403
|
+
(n[r]={type:"object",required:!1}),P(y(n),"replace",{context:"defineCrudResource derived output"})}function An(e={},t="p\
|
|
384
404
|
atch",n="patch"){let r=Ce(e,t);if(t==="replace"&&Object.keys(r).length===0&&(r=Ce(e,"create")),Object.keys(r).length<1){
|
|
385
405
|
let o=t==="replace"?"operations.replace or operations.create":`operations.${t}`;throw new Error(`defineCrudResource deri\
|
|
386
406
|
ved ${t} body requires explicit crud.${t}Body or at least one schema field with ${o}.`)}return P(y(r),n,{context:`define\
|
|
387
|
-
CrudResource derived ${t} body`})}function
|
|
388
|
-
defineCrudResource delete output"})}function
|
|
389
|
-
includes(n))return n;throw new Error(`${t} must be one of: ${
|
|
390
|
-
let t=
|
|
391
|
-
let t=Array.isArray(e?.crudOperations)?e.crudOperations:
|
|
392
|
-
dResource crudOperations"});r.has(i)||(r.add(i),n.push(i))}return n}function
|
|
407
|
+
CrudResource derived ${t} body`})}function jn(){return P(y({id:zt(),deleted:{type:"boolean",required:!0}}),"replace",{context:"\
|
|
408
|
+
defineCrudResource delete output"})}function In(e="",{context:t="crud operation name"}={}){let n=g(e).toLowerCase();if(Ct.
|
|
409
|
+
includes(n))return n;throw new Error(`${t} must be one of: ${Ct.join(", ")}. Received: ${JSON.stringify(e)}.`)}function Rn(e=""){
|
|
410
|
+
let t=wn[e];if(t)return t;throw new Error(`createCrudOperationDefinition received unsupported operation "${e}".`)}function Nn(e={}){
|
|
411
|
+
let t=Array.isArray(e?.crudOperations)?e.crudOperations:En,n=[],r=new Set;for(let o of t){let i=In(o,{context:"defineCru\
|
|
412
|
+
dResource crudOperations"});r.has(i)||(r.add(i),n.push(i))}return n}function Pn(e={},t=[]){for(let n of Array.isArray(t)?
|
|
393
413
|
t:[])if(Object.hasOwn(e,n)&&e[n]!=null)return e[n];return null}function H(e={},t=[],{context:n="defineCrudResource schem\
|
|
394
|
-
a definition",defaultMode:r="patch"}={}){let o=
|
|
414
|
+
a definition",defaultMode:r="patch"}={}){let o=Pn(e,t);return o==null?null:Ie(o,{context:n,defaultMode:r})}function vn(e,t={}){
|
|
395
415
|
let n=H(t,["listOutput"],{context:"defineCrudResource crud.listOutput",defaultMode:"replace"});if(n)return n;let r=H(t,[
|
|
396
|
-
"listItemOutput"],{context:"defineCrudResource crud.listItemOutput",defaultMode:"replace"});return r?
|
|
416
|
+
"listItemOutput"],{context:"defineCrudResource crud.listItemOutput",defaultMode:"replace"});return r?D(r):D(e())}function Cn(e={},t={}){
|
|
397
417
|
let n=null,r=!1;return function(){return r||(n=H(t,["output"],{context:"defineCrudResource crud.output",defaultMode:"rep\
|
|
398
|
-
lace"})||_n(e),r=!0),n}}function
|
|
399
|
-
bodyOperation}.body`,defaultMode:e.bodyMode});return r||
|
|
400
|
-
"list")return
|
|
401
|
-
defineCrudResource operations.delete.output",defaultMode:"replace"})||
|
|
418
|
+
lace"})||_n(e),r=!0),n}}function zn(e,t={},n={}){let r=H(n,e.explicitBodyKeys,{context:`defineCrudResource operations.${e.
|
|
419
|
+
bodyOperation}.body`,defaultMode:e.bodyMode});return r||An(t,e.bodyOperation,e.bodyMode)}function Ln(e,t,n={}){if(e.outputKind===
|
|
420
|
+
"list")return vn(t,n);if(e.outputKind==="record")return t();if(e.outputKind==="delete")return H(n,["deleteOutput"],{context:"\
|
|
421
|
+
defineCrudResource operations.delete.output",defaultMode:"replace"})||jn();throw new Error(`resolveCrudOutputDefinition \
|
|
402
422
|
received unsupported output kind "${e.outputKind}".`)}function $n(e,{namespace:t="",resource:n={},crudConfig:r={},resolveRecordOutputDefinition:o}={}){
|
|
403
|
-
let i=Rn(e),s={method:i.method};return i.includeRealtimeEvent&&(s.realtime={events:[
|
|
404
|
-
i,n,r)),s.output=
|
|
405
|
-
space"}),n=b(e?.crud),r=
|
|
423
|
+
let i=Rn(e),s={method:i.method};return i.includeRealtimeEvent&&(s.realtime={events:[vt(t)]}),i.bodyOperation&&(s.body=zn(
|
|
424
|
+
i,n,r)),s.output=Ln(i,o,r),s}function kn(e={}){let t=ve(e?.namespace,{context:"createDefaultCrudOperations resource.name\
|
|
425
|
+
space"}),n=b(e?.crud),r=Cn(e,n),o={};for(let i of Nn(e))o[i]=$n(i,{namespace:t,resource:e,crudConfig:n,resolveRecordOutputDefinition:r});
|
|
406
426
|
return o}function Mn(e,t){let n=b(e),r=b(t),o={...b(n.realtime),...b(r.realtime)};return{...n,...r,...Object.keys(o).length>
|
|
407
|
-
0?{realtime:o}:{}}}function
|
|
408
|
-
i,s]of Object.entries(r))Object.hasOwn(o,i)||(o[i]=s);return o}function
|
|
409
|
-
return re({...o,operations:
|
|
410
|
-
minLength:1,maxLength:160},workspaceId:{type:"string",required:!0,nullable:!0,minLength:1,pattern:
|
|
411
|
-
ect",required:!0,schema:y({systemPrompt:{type:"string",required:!0,maxLength:ne}})}}),
|
|
427
|
+
0?{realtime:o}:{}}}function xn(e={},t={}){let n=b(e),r=b(t),o={};for(let[i,s]of Object.entries(n))o[i]=Mn(s,r[i]);for(let[
|
|
428
|
+
i,s]of Object.entries(r))Object.hasOwn(o,i)||(o[i]=s);return o}function Lt(e={}){let t=b(e),{crud:n,crudOperations:r,...o}=t;
|
|
429
|
+
return re({...o,operations:xn(kn(t),o.operations)})}var ne=12e3,Dn=y({targetSurfaceId:{type:"string",required:!0,minLength:1,maxLength:64},scopeKey:{type:"string",required:!0,
|
|
430
|
+
minLength:1,maxLength:160},workspaceId:{type:"string",required:!0,nullable:!0,minLength:1,pattern:w},settings:{type:"obj\
|
|
431
|
+
ect",required:!0,schema:y({systemPrompt:{type:"string",required:!0,maxLength:ne}})}}),Fn=y({systemPrompt:{type:"string",
|
|
412
432
|
required:!1,maxLength:ne,messages:{maxLength:`Assistant system prompt must be at most ${ne} characters.`,default:"Assist\
|
|
413
|
-
ant system prompt must be valid text."}}}),
|
|
414
|
-
patchBody:
|
|
415
|
-
istant-settings"}),
|
|
416
|
-
{kind:"jsonapi-resource",responseType:"assistant-conversation-messages",responseKind:"record"});var
|
|
417
|
-
t)?{}:t}catch{return{}}}var
|
|
433
|
+
ant system prompt must be valid text."}}}),Vn=Lt({namespace:"assistantConfig",crudOperations:["view","patch"],crud:{output:Dn,
|
|
434
|
+
patchBody:Fn}});var $t=O({kind:"jsonapi-resource",responseType:"assistant-settings",responseKind:"record"}),qn=O({...$t,requestType:"ass\
|
|
435
|
+
istant-settings"}),Bn=O({kind:"jsonapi-resource",responseType:"assistant-conversations",responseKind:"collection"}),Un=O(
|
|
436
|
+
{kind:"jsonapi-resource",responseType:"assistant-conversation-messages",responseKind:"record"});var Hn=Object.freeze({settingsChanged:"assistant.settings.changed"});var kt=Object.freeze(["active","completed","failed","aborted"]),Hs=new Set(kt);function oe(e){if(e==null)return{};try{let t=typeof e=="string"?JSON.parse(e):e;return!t||typeof t!="object"||Array.isArray(
|
|
437
|
+
t)?{}:t}catch{return{}}}var Ys=Object.freeze([/^(?:let me|i(?:'|’)ll|i will|i(?:'|’)m going to|i am going to)\s+(?:(?:first|now|quickly)\s+)*(?:analy[sz]e|call|check|confirm|do|execute|fetch|find|inspect|investigate|load|look up|open|prepare|query|read|retrieve|review|run|search|summarize|test|try|use|verify)\b/iu,
|
|
418
438
|
/^(?:analy[sz]ing|calling|checking|confirming|executing|fetching|finding|inspecting|investigating|loading|looking up|opening|preparing|querying|reading|retrieving|reviewing|running|searching|summarizing|testing|trying|using|verifying)\b/iu,
|
|
419
|
-
/^(?:one moment|please wait)\b/iu]);function
|
|
420
|
-
function
|
|
421
|
-
e)?null:JSON.stringify(e)}function
|
|
422
|
-
"":t.toISOString()}function
|
|
423
|
-
t_messages",turnRequestsTable:"assistant_turn_requests"});function
|
|
439
|
+
/^(?:one moment|please wait)\b/iu]);function ze(e){return K(e,{fallback:null})}function Mt(e){return Jn(e,{fallback:null})}function v(e){return K(e,{fallback:null})}
|
|
440
|
+
function Le(e,t,n){let r=ze(n);return r?e.where(t,r):e.whereNull(t)}function $e(e){return!e||typeof e!="object"||Array.isArray(
|
|
441
|
+
e)?null:JSON.stringify(e)}function xt(e){if(!e)return"";let t=e instanceof Date?e:new Date(e);return Number.isNaN(t.getTime())?
|
|
442
|
+
"":t.toISOString()}function Dt(e){return Kn(e,{fallback:""})||""}var C=Object.freeze({configTable:"assistant_config",conversationsTable:"assistant_conversations",messagesTable:"assistan\
|
|
443
|
+
t_messages",turnRequestsTable:"assistant_turn_requests"});function Ft(e={}){return{id:ke(e.id,{fallback:""}),conversationId:ke(e.conversation_id,{fallback:""}),workspaceId:Mt(e.workspace_id),
|
|
424
444
|
seq:Number(e.seq),role:String(e.role||""),kind:String(e.kind||"chat"),clientMessageSid:String(e.client_message_sid||""),
|
|
425
|
-
actorUserId:e.actor_user_id==null?null:
|
|
426
|
-
e.content_text),metadata:oe(e.metadata_json),createdAt:
|
|
445
|
+
actorUserId:e.actor_user_id==null?null:ke(e.actor_user_id,{fallback:null}),contentText:e.content_text==null?null:String(
|
|
446
|
+
e.content_text),metadata:oe(e.metadata_json),createdAt:xt(e.created_at)}}function Xn(e={},{defaultPage:t=1,defaultPageSize:n=200,
|
|
427
447
|
maxPageSize:r=500}={}){let o=Number(e.page),i=Number(e.pageSize),s=Number.isInteger(o)&&o>0?o:t,c=Number.isInteger(i)&&i>
|
|
428
|
-
0?Math.max(1,Math.min(r,i)):n;return{page:s,pageSize:c}}async function
|
|
429
|
-
max({maxSeq:"seq"}).first(),r=Number(n?.maxSeq||0);return!Number.isInteger(r)||r<0?1:r+1}function
|
|
430
|
-
"function")throw new Error("createMessagesRepository requires knex client.");let t=
|
|
431
|
-
a);if(!l)return null;let f=await(u?.trx||e)(C.messagesTable).where({id:l}).first();return f?
|
|
432
|
-
let l=u?.trx||e,d=
|
|
433
|
-
a.seq),
|
|
434
|
-
workspaceId),seq:
|
|
435
|
-
actor_user_id:
|
|
436
|
-
created_at:a.createdAt?new Date(a.createdAt):new Date}),S=
|
|
437
|
-
ot resolve inserted id.");return n(S,{trx:l})}async function o(a,{workspaceId:u=null}={},l={}){let d=
|
|
438
|
-
let
|
|
439
|
-
S=Number(h?.total||0);return Number.isFinite(S)&&S>0?S:0}async function i(a,u={},l={}){let d=
|
|
440
|
-
trx||e,
|
|
441
|
-
hasOwn(u,"metadata")&&(
|
|
442
|
-
|
|
443
|
-
pageSize:S}=
|
|
444
|
-
"seq","asc").orderBy("id","asc").limit(S).offset(
|
|
445
|
-
findById:n,create:r,updateById:i,countByConversationScope:o,listByConversationScope:s,transaction:c})}export{
|
|
448
|
+
0?Math.max(1,Math.min(r,i)):n;return{page:s,pageSize:c}}async function Yn(e,t){let n=await e(C.messagesTable).where({conversation_id:t}).
|
|
449
|
+
max({maxSeq:"seq"}).first(),r=Number(n?.maxSeq||0);return!Number.isInteger(r)||r<0?1:r+1}function Fa(e){if(!e||typeof e!=
|
|
450
|
+
"function")throw new Error("createMessagesRepository requires knex client.");let t=Gn(e);async function n(a,u={}){let l=v(
|
|
451
|
+
a);if(!l)return null;let f=await(u?.trx||e)(C.messagesTable).where({id:l}).first();return f?Ft(f):null}async function r(a={},u={}){
|
|
452
|
+
let l=u?.trx||e,d=v(a.conversationId);if(!d)throw new TypeError("messagesRepository.create requires conversationId.");let f=Number(
|
|
453
|
+
a.seq),m=Number.isInteger(f)&&f>0?f:await Yn(l,d),h=await l(C.messagesTable).insert({conversation_id:d,workspace_id:ze(a.
|
|
454
|
+
workspaceId),seq:m,role:g(a.role).toLowerCase(),kind:g(a.kind).toLowerCase()||"chat",client_message_sid:g(a.clientMessageSid),
|
|
455
|
+
actor_user_id:v(a.actorUserId),content_text:a.contentText==null?null:String(a.contentText),metadata_json:$e(a.metadata),
|
|
456
|
+
created_at:a.createdAt?new Date(a.createdAt):new Date}),S=Dt(h);if(!S)throw new Error("messagesRepository.create could n\
|
|
457
|
+
ot resolve inserted id.");return n(S,{trx:l})}async function o(a,{workspaceId:u=null}={},l={}){let d=v(a);if(!d)return 0;
|
|
458
|
+
let m=(l?.trx||e)(C.messagesTable).where({conversation_id:d});Le(m,"workspace_id",u);let h=await m.count({total:"*"}).first(),
|
|
459
|
+
S=Number(h?.total||0);return Number.isFinite(S)&&S>0?S:0}async function i(a,u={},l={}){let d=v(a);if(!d)return null;let f=l?.
|
|
460
|
+
trx||e,m={};return Object.hasOwn(u,"contentText")&&(m.content_text=u.contentText==null?null:String(u.contentText)),Object.
|
|
461
|
+
hasOwn(u,"metadata")&&(m.metadata_json=$e(u.metadata)),Object.keys(m).length&&await f(C.messagesTable).where({id:d}).update(
|
|
462
|
+
m),n(d,{trx:f})}async function s(a,{workspaceId:u=null}={},l={},d={}){let f=v(a);if(!f)return[];let m=d?.trx||e,{page:h,
|
|
463
|
+
pageSize:S}=Xn(l),z=(h-1)*S,T=m(C.messagesTable).where({conversation_id:f});return Le(T,"workspace_id",u),(await T.orderBy(
|
|
464
|
+
"seq","asc").orderBy("id","asc").limit(S).offset(z)).map(Ft)}async function c(a){return Wn(e,a)}return Object.freeze({withTransaction:t,
|
|
465
|
+
findById:n,create:r,updateById:i,countByConversationScope:o,listByConversationScope:s,transaction:c})}export{Fa as createRepository};
|