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.
Files changed (150) hide show
  1. package/bin/run.js +1734 -1687
  2. package/bin/server.js +75 -75
  3. package/bin/upgrade-state.js +4539 -4471
  4. package/dist/assets/GithubBrowserTabs-BwpiRS2u.js +1 -0
  5. package/dist/assets/{LocalDatabaseServer-6VzPWZxG.js → LocalDatabaseServer-u_Ky7bNS.js} +1 -1
  6. package/dist/assets/{Vibe64AuthSettingsButton-TLwqAxDo.js → Vibe64AuthSettingsButton-BCwswT1G.js} +1 -1
  7. package/dist/assets/{Vibe64DashboardShell-B4dQ-oHD.js → Vibe64DashboardShell-CWlgrR2B.js} +1 -1
  8. package/dist/assets/{Vibe64DatabaseWorkspace-Bh5WIPOj.js → Vibe64DatabaseWorkspace-Dhs8_H0P.js} +1 -1
  9. package/dist/assets/Vibe64OutputControls-Dn548CZa.js +8 -0
  10. package/dist/assets/{Vibe64RepositoryWorkspace-idDg94lc.js → Vibe64RepositoryWorkspace-C-8S4JUF.js} +1 -1
  11. package/dist/assets/{Vibe64SessionFiles-Z9zxosyl.js → Vibe64SessionFiles-Cx6J7DDN.js} +2 -3
  12. package/dist/assets/{Vibe64UiStoryboardView-CrCDWMdR.js → Vibe64UiStoryboardView-DHyhJiWS.js} +1 -1
  13. package/dist/assets/{Vibe64UnavailableSessions-TqsxvGSf.js → Vibe64UnavailableSessions-Da4RxIhA.js} +1 -1
  14. package/dist/assets/{_sessionId_-7F1VGOou.js → _sessionId_-DCpgDPSI.js} +1 -1
  15. package/dist/assets/_slug_-BbEWp01a.js +25 -0
  16. package/dist/assets/{_slug_-B16mTWjj.css → _slug_-DerKOisL.css} +1 -1
  17. package/dist/assets/{access-Cx9RH95J.js → access-D4di2sCr.js} +1 -1
  18. package/dist/assets/{app-DPx4KKOa.js → app-Adr9Iz8p.js} +1 -1
  19. package/dist/assets/asyncModuleRecovery-DJsn5NrL.js +1 -0
  20. package/dist/assets/{changes-DYsuQLFW.js → changes-3Dd1O8Lu.js} +1 -1
  21. package/dist/assets/client-BAXHGUOC.js +1 -0
  22. package/dist/assets/{client-BYsDPxR3.js → client-CCZIu6yc.js} +1 -1
  23. package/dist/assets/{conversation-3ln-WnbL.css → conversation-CSDHdGDb.css} +1 -1
  24. package/dist/assets/conversation-DG9lp25w.js +8 -0
  25. package/dist/assets/conversation-ErAO1CmH.js +13 -0
  26. package/dist/assets/{dashboard-CWswAbYP.js → dashboard-0tCzDYCX.js} +1 -1
  27. package/dist/assets/english-definitions-DeiQ-jTT.js +1 -0
  28. package/dist/assets/env-DsyQ2MFX.js +1 -0
  29. package/dist/assets/{health-C0f6s-G1.js → health-DyTXU-nb.js} +1 -1
  30. package/dist/assets/{history-BQjETNB9.js → history-BXGAdPMI.js} +1 -1
  31. package/dist/assets/{incoming-COpY201m.js → incoming-yajkdGBY.js} +1 -1
  32. package/dist/assets/{index-MWACm8Pp.css → index-B-dukXUB.css} +1 -1
  33. package/dist/assets/index-CGz4Yow6.js +136 -0
  34. package/dist/assets/{integrations-BBkvNRHu.js → integrations-BMrXET36.js} +10 -2
  35. package/dist/assets/issues-kc1XBZCK.js +1 -0
  36. package/dist/assets/{learning-B8_wHoe1.js → learning-CIE5ghYv.js} +1 -1
  37. package/dist/assets/linkPath-Ch9eft18.js +1 -0
  38. package/dist/assets/{placement-DXvgK433.js → placement-BNmlke_j.js} +1 -1
  39. package/dist/assets/placement-DYM3JJ-F.js +1 -0
  40. package/dist/assets/publish-DTh6amqi.js +3 -0
  41. package/dist/assets/pull-requests-CbfGSSIh.js +1 -0
  42. package/dist/assets/{repository-BNPt7UWc.js → repository-BstMh-bG.js} +1 -1
  43. package/dist/assets/settings-Bf8C6dls.js +1 -0
  44. package/dist/assets/{studioGateApi-BVdclhPL.js → studioGateApi-mkX1eOTX.js} +1 -1
  45. package/dist/assets/{studioUrls-CGKCbM_d.js → studioUrls-B0-GdWh8.js} +1 -1
  46. package/dist/assets/useArchivedVibe64Sessions-DIOpfUxD.js +1 -0
  47. package/dist/assets/useCommand-CVuya6vG.js +1 -0
  48. package/dist/assets/useEndpointResource-7-YDfAxX.js +1 -0
  49. package/dist/assets/usePaths-Y6UuQxmI.js +1 -0
  50. package/dist/assets/{useUiFeedback-B51xtCAK.js → useUiFeedback-Bd3rao6E.js} +1 -1
  51. package/dist/assets/useVibe64ConversationLog-ChJOU2SD.js +1 -0
  52. package/dist/assets/{useVibe64DatabaseTools-BE_yXZFn.js → useVibe64DatabaseTools-DKV-TeNJ.js} +1 -1
  53. package/dist/assets/{useVibe64ProjectScope-D7b8n1gx.js → useVibe64ProjectScope-DXjsKKhl.js} +1 -1
  54. package/dist/assets/useVibe64SessionData-BkIHUrP5.js +1 -0
  55. package/dist/assets/useVibe64SessionSelection-N8wX5oqo.js +1 -0
  56. package/dist/assets/{useVibe64SystemGraph-CDDcsye4.js → useVibe64SystemGraph-Db_eD-X8.js} +1 -1
  57. package/dist/assets/{useVibe64Terminal-Zr3Mig2L.js → useVibe64Terminal-B9EWJ9Ba.js} +2 -2
  58. package/dist/assets/vibe64ProjectScope.local-l5_-E6pq.js +1 -0
  59. package/dist/assets/vibe64RepositoryRealtime-CHT4-6VN.js +1 -0
  60. package/dist/assets/vibe64SessionFocus-CS6Ex53G.js +1 -0
  61. package/dist/assets/vibe64SessionFocus-CSm4YJQD.css +1 -0
  62. package/dist/assets/vibe64SessionRequestConfig-xIx-5jxQ.js +1 -0
  63. package/dist/index.html +26 -22
  64. package/docs/colleague-usage/ai-accounts.md +6 -2
  65. package/docs/colleague-usage/ai-balance-and-allowance.md +15 -2
  66. package/docs/colleague-usage/coding-agent-failures.md +2 -1
  67. package/docs/colleague-usage/coding-agent-goals.md +8 -3
  68. package/docs/colleague-usage/coding-agents.md +16 -0
  69. package/docs/colleague-usage/github-work.md +14 -0
  70. package/docs/colleague-usage/preview-browser-checks.md +5 -3
  71. package/docs/colleague-usage/project-setup.md +6 -3
  72. package/docs/colleague-usage/running-vibe64-on-your-computer.md +3 -1
  73. package/docs/colleague-usage/sessions.md +35 -7
  74. package/docs/colleague-usage/starter-apps.md +3 -0
  75. package/docs/colleague-usage/temporary-chat-context.md +2 -1
  76. package/docs/colleague-usage/temporary-chats.md +17 -5
  77. package/node_modules/@jskit-ai/assistant-core/CHANGELOG.md +539 -0
  78. package/node_modules/@jskit-ai/assistant-core/locales/en.json +383 -0
  79. package/node_modules/@jskit-ai/assistant-core/package.json +3 -2
  80. package/node_modules/@jskit-ai/assistant-runtime/CHANGELOG.md +138 -0
  81. package/node_modules/@jskit-ai/assistant-runtime/README.md +2 -1
  82. package/node_modules/@jskit-ai/assistant-runtime/locales/en.json +137 -0
  83. package/node_modules/@jskit-ai/assistant-runtime/package.json +3 -2
  84. package/node_modules/@jskit-ai/assistant-runtime/src/server/repositories/assistantConfigRepository.js +223 -203
  85. package/node_modules/@jskit-ai/assistant-runtime/src/server/repositories/conversationsRepository.js +286 -266
  86. package/node_modules/@jskit-ai/assistant-runtime/src/server/repositories/messagesRepository.js +270 -250
  87. package/node_modules/@jskit-ai/assistant-voice/locales/en.json +182 -0
  88. package/node_modules/@jskit-ai/assistant-voice/package.json +3 -2
  89. package/node_modules/@jskit-ai/connector-google-calendar/CHANGELOG.md +83 -0
  90. package/node_modules/@jskit-ai/connector-google-calendar/locales/en.json +91 -0
  91. package/node_modules/@jskit-ai/connector-google-calendar/package.json +4 -3
  92. package/node_modules/@jskit-ai/connectors-catalog/CHANGELOG.md +1722 -0
  93. package/node_modules/@jskit-ai/connectors-catalog/README.md +11 -0
  94. package/node_modules/@jskit-ai/connectors-catalog/locales/en.json +3139 -0
  95. package/node_modules/@jskit-ai/connectors-catalog/package.json +5 -4
  96. package/node_modules/@jskit-ai/connectors-core/CHANGELOG.md +183 -0
  97. package/node_modules/@jskit-ai/connectors-core/locales/en.json +92 -0
  98. package/node_modules/@jskit-ai/connectors-core/package.json +3 -2
  99. package/node_modules/@jskit-ai/http-runtime/CHANGELOG.md +31 -0
  100. package/node_modules/@jskit-ai/http-runtime/locales/en.json +14 -0
  101. package/node_modules/@jskit-ai/http-runtime/package.json +3 -2
  102. package/node_modules/@jskit-ai/kernel/CHANGELOG.md +182 -0
  103. package/node_modules/@jskit-ai/kernel/locales/en.json +94 -0
  104. package/node_modules/@jskit-ai/kernel/package.json +6 -2
  105. package/node_modules/@jskit-ai/payments-core/CHANGELOG.md +128 -0
  106. package/node_modules/@jskit-ai/payments-core/locales/en.json +77 -0
  107. package/node_modules/@jskit-ai/payments-core/package.json +3 -2
  108. package/node_modules/@jskit-ai/realtime/CHANGELOG.md +20 -0
  109. package/node_modules/@jskit-ai/realtime/locales/en.json +14 -0
  110. package/node_modules/@jskit-ai/realtime/package.json +3 -2
  111. package/node_modules/@jskit-ai/resource-core/package.json +1 -1
  112. package/node_modules/@jskit-ai/resource-crud-core/package.json +1 -1
  113. package/node_modules/@jskit-ai/uploads-runtime/CHANGELOG.md +35 -0
  114. package/node_modules/@jskit-ai/uploads-runtime/locales/en.json +15 -0
  115. package/node_modules/@jskit-ai/uploads-runtime/package.json +3 -2
  116. package/node_modules/@local/vibe64-execution/src/host/execHelper.js +49 -48
  117. package/node_modules/@local/vibe64-execution/src/server/gitTurnCheckpointCommand.js +1327 -0
  118. package/node_modules/@local/vibe64-genesis/bin/vibe64-genesis-host-context +430 -390
  119. package/node_modules/@local/vibe64-genesis/src/server/index.js +45 -45
  120. package/node_modules/@local/vibe64-genesis/src/server/promptContext.js +119 -119
  121. package/node_modules/@local/vibe64-runtime/src/server/codexAppServerProcess.js +57 -57
  122. package/node_modules/@local/vibe64-sessions/package.json +2 -1
  123. package/node_modules/@local/vibe64-terminals/src/server/opencodeSessionEnvironmentPlugin.js +195 -175
  124. package/node_modules/@local/vibe64-terminals/src/server/sessionWorkOperationCommand.js +1385 -1362
  125. package/package.json +15 -15
  126. package/server.bundle.mjs +44206 -42825
  127. package/dist/assets/GithubBrowserTabs-D-Z3TlA8.js +0 -1
  128. package/dist/assets/Vibe64OutputControls-DtybwgL3.js +0 -8
  129. package/dist/assets/_slug_-Bq84T_Iv.js +0 -24
  130. package/dist/assets/conversation-Bn7wpATa.js +0 -2
  131. package/dist/assets/conversation-CNcCrV-R.js +0 -16
  132. package/dist/assets/definitions-CEbi4qae.js +0 -1
  133. package/dist/assets/env-X7EOFLtl.js +0 -1
  134. package/dist/assets/index-CBo1BEk6.js +0 -138
  135. package/dist/assets/issues-BiSiUd5o.js +0 -1
  136. package/dist/assets/placement-B5T1LR7m.js +0 -1
  137. package/dist/assets/publish-CeLZE2AG.js +0 -3
  138. package/dist/assets/pull-requests-pTdQOT7i.js +0 -1
  139. package/dist/assets/settings-lecRzZ-r.js +0 -1
  140. package/dist/assets/useArchivedVibe64Sessions-DHYRnyJD.js +0 -1
  141. package/dist/assets/useCommand-Epd2yHhQ.js +0 -1
  142. package/dist/assets/useEndpointResource-DBRQISI_.js +0 -1
  143. package/dist/assets/usePaths-DdAnjVDj.js +0 -1
  144. package/dist/assets/useVibe64ConversationLog-DboM3tYN.js +0 -1
  145. package/dist/assets/useVibe64SessionData-CreWtQAO.js +0 -1
  146. package/dist/assets/useVibe64SessionSelection-CDaX4uwY.js +0 -1
  147. package/dist/assets/vibe64ProjectScope.local-BxTBYuRg.js +0 -1
  148. package/dist/assets/vibe64RepositoryRealtime-C-J0I5jY.js +0 -1
  149. package/dist/assets/vibe64SessionFocus-DSW5Irm6.css +0 -1
  150. package/dist/assets/vibe64SessionFocus-DzqbVq60.js +0 -1
@@ -1,10 +1,10 @@
1
1
  import { createRequire as __vibe64CreateRequire } from 'node:module';const require=__vibe64CreateRequire(import.meta.url);
2
- import{createWithTransaction as Kn,normalizeDbRecordId as Me,runInTransaction as Gn}from"@jskit-ai/database-runtime/shared/repositoryOptions";var Yn=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 J(e,{
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 Hn}from"@jskit-ai/database-runtime/shared";import{normalizeDbRecordId as Jn}from"@jskit-ai/database-runtime/shared/repositoryOptions";var Ut=Object.freeze(["assistant"]);var De=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"}),wo=new Set(Object.values(De));function E(e){if(e===null||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||
6
- Ht(t)}function Ht(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 K(e,t){if(!Object.hasOwn(t,"items"))return null;
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 $(e){return e?.type==="number"||e?.type==="integer"||e?.type==="epochMilliseconds"||e?.type==="epochSeconds"}var ue="^(?:0|-?[1-9]\\d*)$",Fe="\\d{4}",xe="0[1-9]|1[0-2]",ke="0[1-9]|[12]\\d|3[01]",Ve="[01]\\d|2[0-3]",L="[0-5]\\d",W=`\
19
- (?:${Ve}):${L}`,qe=`(?:Z|[+-](?:${Ve}):${L})`,Be=`(${Fe})-(${xe})-(${ke})`,Ue=`${Fe}-(?:${xe})-(?:${ke})`,He=`^${Ue}$`,Jt=new RegExp(
20
- `^${Be}$`),Kt=new RegExp(`^${W}(?::${L}(?:\\.(\\d+))?)?$`),Gt=new RegExp(`^${Be}T${W}:${L}(?:\\.(\\d+))?${qe}$`),Wt=new RegExp(
21
- ue),Xt=[31,28,31,30,31,30,31,31,30,31,30,31];function Yt(e){return e%4===0&&(e%100!==0||e%400===0)}function Qt(e,t){return t===
22
- 2?Yt(e)?29:28:Xt[t-1]}function Je(e,t,n){let r=Number(e),o=Number(t),i=Number(n);return o>=1&&o<=12&&i>=1&&i<=Qt(r,o)}function q(e,t){
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 Ke(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&&Je(t[1],t[2],t[3])}function We(e,t){if(typeof e!="string")return!1;let n=Kt.
26
- exec(e);return n!==null&&Ke(n[1],t)}function Xe(e,t){if(typeof e!="string")return!1;let n=Gt.exec(e);return n===null?!1:
27
- Je(n[1],n[2],n[3])&&Ke(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}(?::${L}${Ye(n)})?$`}function Ze(e,t){let n=q(e,t);return`^${Ue}T${W}:${L}${Ye(n)}${qe}$`}function le(e,t){
29
- let n;if(typeof e=="number")n=e;else if(typeof e=="string"&&Wt.test(e))n=Number(e);else return null;return!Number.isSafeInteger(
30
- n)||n<-t||n>t?null:n===0?0:n}var Zt=new Set(["__proto__","prototype","constructor"]);function m(e,t,n){Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0})}function er(e,t){if(Zt.
31
- has(e))throw new Error(`${t}() received unsafe path segment "${e}".`)}function tr(e){return typeof e!="string"?e:e.replace(
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?tr(e):e;if(typeof o!="string"||o.trim()===""){if(r&&o==="")return[];throw new Error(`${t}() expects a non-empty \
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)er(s,t);return i}var rr="http://json-schema.org/draft-07/schema#",j="x-json-rest-schema",de=["object","array","string","number","boolean"],
36
- pe=Symbol("json-rest-schema.exportContext"),nr=["true","1","yes","y","on"],or=["false","0","no","n","off"];function et(e){
37
- return{anyOf:[{type:"integer",minimum:-e,maximum:e},{type:"string",pattern:ue}]}}function I(e,t){return{[j]:{[e]:t}}}var ir={
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([...nr,String(e.stringTrueWhen||"true").trim().toLowerCase()]),n=new Set([...or,String(e.stringFalseWhen||
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]*$"})},sr={minLength:({definition:e,parameterValue:t})=>e.
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})=>$(e)?{minimum:t}:null,max:({definition:e,parameterValue:t})=>$(e)?{maximum:t}:null,pattern:({
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
- I("transforms",{uppercase:!0}):null,lowercase:({parameterValue:e})=>e?I("transforms",{lowercase:!0}):null,length:({parameterValue:e})=>I(
51
- "transforms",{length:e}),unsigned:({parameterValue:e})=>e?I("metadata",{unsigned:!0}):null,precision:({parameterValue:e})=>I(
52
- "metadata",{precision:e}),scale:({parameterValue:e})=>I("metadata",{scale:e}),temporalPrecision:({parameterValue:e})=>I(
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 ar(e,t){if(!t||typeof t!="object"||Array.isArray(t))throw new Error(
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 cr(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 ur(e,t){
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=ir[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 lr(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=sr[t];if(o)return o;throw new Error(
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 fr(e,t={}){if(t.mode!==void 0&&t.operation!==void 0){
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 dr(e,t={}){if(t.operationName!==
69
- void 0&&t.operationDescriptor!==void 0)return{operationName:t.operationName,operation:t.operationDescriptor};let n=fr(e,
70
- t);return{operationName:n,operation:e.operations[n]}}function pr(e={}){let t={...e};return Object.defineProperty(t,pe,{value:{
71
- definitions:{},nodes:[],nextDefinitionId:1,rootNode:null},enumerable:!1}),t}function Y(e={}){return e[pe]?e[pe]:{definitions:{},
72
- nodes:[],nextDefinitionId:1,rootNode:null}}function mr(e){return String(e).replace(/[^a-zA-Z0-9]+/g,"_").replace(/^_+|_+$/g,
73
- "")||"operation"}function me(e){return E(e)&&Object.keys(e).length===1&&typeof e.$ref=="string"}function X(e){return me(
74
- e)?{allOf:[e]}:e}function hr(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 yr(e,t){let n=mr(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=hr(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:yr(s,n),pointer:i?"#":null};return i?s.rootNode=a:
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=gr(e.schema,t,e.operationName,e.operation,e.additionalProperties);return e.status="built",e.pointer==="#"?r:(n.
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 gr(e,t,n,r,o=!1){
83
- let i={},s=[];for(let[a,u]of Object.entries(e.structure))m(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 Sr(e,t,n,r,o,i){
85
- let s=K(t,n);if(!s)return null;if(s.kind==="schema")return{...X(Se(s.schema,r,"replace",s.schema.operations.replace,!1)),
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 br(e,t,n,r,o,i){let s=V(t,n);if(!s)return null;if(s.kind==="schem\
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 Or(e,t,n,r,o,i){if(n.type==="object"){let c=G(t,n);if(c.kind==="nested")return B(Se(c.schema,
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:br(e,t,n,r,o,i)})}let s=ur(e,n)({schema:e,fieldName:t,definition:n,
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=Sr(e,t,n,r,o,i);if(c)return B({...s,items:c},{referenceBacked:me(
95
- s)})}return B(s,{referenceBacked:me(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=Or(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 p=lr(e,f,t);if(!p)continue;let h=p({...s,parameterName:f,
98
- parameterValue:n[f],fieldSchema:{...a}});h&&ar(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(cr(a,l));if(n.defaultTo!==void 0&&i.applyDefaults)if(typeof n.defaultTo!=
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 p=Object.values(f.errors)[0];throw new Error(
102
- `defaultTo for "${t}" is invalid (${p.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}=dr(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:rr,...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 we(e){return e instanceof
106
- F}function Er(){return{self:!1,children:{}}}function st(e){return Object.keys(e.children).length>0}function N(e,t){return`${e}\
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 M(e,t){let n={};for(let r of Object.values(e)){let o=N(t,r.field);m(n,o,{...r,
109
- field:o})}return n}function Te(e){return fe(e,"validatePath")}function ct(e){let t={};for(let n of e){let r=Te(n),o=t;for(let i=0;i<
110
- r.length;i++){let s=r[i];Object.hasOwn(o,s)||m(o,s,Er()),i===r.length-1&&(o[s].self=!0),o=o[s].children}}return t}function Tr(e,t){
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 wr(e,t=new WeakMap){if(t.has(e))return t.get(e);let n=Object.create(F.prototype);return t.set(e,n),n.structure=
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(we(e))return wr(e,t);if(e instanceof
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))m(n,r,Z(o,t));return n}function ee(e,t=new WeakSet){if(e===null||typeof e!=
120
- "object"||t.has(e)||we(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 _e(e,t,n=""){if(!we(e)||!Array.isArray(t)||
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 pt(e,i,o,s)}function pt(e,t,n,r){if(t?.type==="object"){let o=e._resolveObjectFieldMode(r,t);return o.
124
- kind!=="nested"?null:_e(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:_e(o.schema,s,c):s.length<1?o.
126
- definition:pt(e,o.definition,s,c)}return null}function D(e,t){let n={...e};if(Array.isArray(e.skipFields)){let r=e.skipFields.
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===""||m(r,s,i)}Object.keys(r).length>0?n.skipParams=r:delete n.
129
- skipParams}return n}var Ar=Object.freeze({create:Object.freeze({targetFields:"schema",enforceRequired:!0,applyDefaults:!0,
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 jr(e,t){if(typeof t!="ob\
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(Ar))m(t,n,r);for(let[n,r]of Object.entries(e))m(t,n,jr(n,r));
141
- return Object.freeze(t)}function ft(e){let t=Object.create(null);for(let[n,r]of Object.entries(e))m(t,n,r);return Object.
142
- freeze(t)}function Ir(e){let t={...e};return delete t.operation,delete t.mode,t}var F=class{constructor(t,n,r,o={}){this.
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))m(t,r,o)}_singleErrorMap(t){let n={};return m(n,t.field,t),n}_assertSupportedOptions(t={}){
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:Ir(t)}}_buildOperationResult(t,n,r){
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)||m(o,i,n[i]))}return o}_resolveObjectFieldMode(t,n){
161
- return G(t,n)}_resolveArrayItemsConfig(t,n){return K(t,n)}_resolveObjectValuesConfig(t,n){return V(t,n)}_buildArrayItemSettings(t,n){
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?(m(o,i,null),{errors:{},shouldContinue:!1}):
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 m(o,i,null),{errors:{},shouldContinue:!1};let f={schema:this,definition:t,value:n,fieldName:r,object:o,
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:(p,h,S)=>{throw this._paramError(
169
- r,p,h,S)}};try{let p=d(f);if(it(p))throw new Error(`Type handler for "${t.type}" must be synchronous.`);p!==void 0&&(m(o,
170
- i,p),f.value=p)}catch(p){if(p.errorObject)return{errors:this._singleErrorMap(p.errorObject),shouldContinue:!1};throw p}return{
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
- (m(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){
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 m(u,i,n),{errors:this._normalizeAndValidateValue(t,n,r,u,i,s,c,a),value:u[i]}}_validateNestedValue(t,n,r,o,i,s){
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,D(i,n));return m(r,o,t.allowAdditionalProperties?this._mergeKnownAndPassthroughObjectFields(
184
- c,t.schema,u.validatedObject):u.validatedObject),M(u.errors,n)}_extractKnownObjectFields(t,n){let r={};for(let[o,i]of Object.
185
- entries(t))Object.hasOwn(n.structure,o)&&m(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)){m(o,i,t[i]);continue}Object.hasOwn(r,i)&&m(o,i,r[i])}for(let[i,s]of Object.entries(
187
- r))Object.hasOwn(o,i)||m(o,i,s);return o}_validateObjectValues(t,n,r,o,i,s){let c=n[r],a={...c},u={};m(n,r,a);for(let l of Object.
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,D(i,d));m(a,l,h.validatedObject),this._mergeErrors(u,M(h.errors,d));continue}let p=this.
191
- _normalizeAndValidateValue(o.definition,f,d,a,l,c,i,this._buildArrayItemSettings(o.definition,s));this._mergeErrors(u,p)}
192
- return u}_validateArrayItems(t,n,r,o,i,s){let c=n[r],a=c.slice(),u={};m(n,r,a);for(let l=0;l<a.length;l++){let d=N(t,l);
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 p=o.schema._validateWithOperation(
195
- "replace",o.schema.operations.replace,a[l],D(i,d));m(a,l,p.validatedObject),this._mergeErrors(u,M(p.errors,d));continue}
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)||m(i,a,{field:a,code:"FIELD_NOT_ALLOWED",message:"Field not allowed",params:{}});for(let a of c.
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;m(s,a,d.value),c.defaultedFields.
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],p={};if(!d){if(u&&s.enforceRequired&&a.required&&!this._paramToBeSkipped("requi\
212
- red",i.skipParams,c)&&this._mergeErrors(p,this._singleErrorMap({field:c,code:"REQUIRED",message:"Field is required",params:{}})),
213
- u&&s.applyDefaults&&a.defaultTo!==void 0){let _=typeof a.defaultTo=="function"?a.defaultTo():a.defaultTo,A=this._normalizeDefault(
214
- a,_,{fieldPath:c,currentObject:o,containerKey:t,objectBeforeCast:r,options:i,settings:s});this._mergeErrors(p,A.errors),
215
- Object.keys(A.errors).length===0&&m(o,t,A.value)}return p}if(f===void 0)return u&&s.rejectExplicitUndefined?this._singleErrorMap(
216
- this._typeError(c).errorObject):{};let h={[t]:f};if(u){let _=this._normalizeAndValidateValue(a,f,c,h,t,r,i,s);return Object.
217
- hasOwn(h,t)&&h[t]!==void 0?m(o,t,h[t]):h[t]===null&&m(o,t,null),_}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 v=this._validateSelectedDescendants(
219
- a,n.children,c,h,t,i,s);return Q(h[t])&&m(o,t,h[t]),v}_validateSelectedDescendants(t,n,r,o,i,s,c){if(t.type==="object"){
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,D(s,r),{...c,defaultedFields:new Set});
222
- return m(o,i,l.validatedObject),M(l.errors,r)}if(t.type==="array"){let a=this._resolveArrayItemsConfig(r,t);if(!a)throw new Error(
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={};m(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),p=N(t,f),h=i[d],S=h.self===!0,v=st(
227
- h);if(this._fieldToBeSkipped(p,s))continue;if(!Object.hasOwn(u,f)){S&&c.rejectExplicitUndefined&&m(l,p,this._typeError(p).
228
- errorObject);continue}let _=u[f];if(_===void 0){S&&c.rejectExplicitUndefined&&m(l,p,this._typeError(p).errorObject);continue}
229
- if(o.kind==="schema"){if(S){let se=o.schema._validateWithOperation("replace",o.schema.operations.replace,_,D(s,p));Q(se.
230
- validatedObject)&&m(a,f,se.validatedObject),this._mergeErrors(l,M(se.errors,p));continue}if(!v)continue;let k=o.schema._validateSelectedTree(
231
- h.children,_,D(s,p),{...c,operationName:"replace",operation:o.schema.operations.replace,defaultedFields:new Set});Q(k.validatedObject)&&
232
- m(a,f,k.validatedObject),this._mergeErrors(l,M(k.errors,p));continue}let A=this._buildArrayItemSettings(o.definition,c),
233
- w=[_];if(S){let k=this._normalizeAndValidateValue(o.definition,_,p,w,0,u,s,A);Object.hasOwn(w,0)&&w[0]!==void 0?m(a,f,w[0]):
234
- w[0]===null&&m(a,f,null),this._mergeErrors(l,k);continue}if(!v)continue;let ie=this._castValue(o.definition,_,p,w,0,u,s,
235
- A);if(Object.keys(ie.errors).length>0){this._mergeErrors(l,ie.errors);continue}if(!ie.shouldContinue)continue;let kt=this.
236
- _validateSelectedDescendants(o.definition,h.children,p,w,0,s,A);Q(w[0])&&m(a,f,w[0]),this._mergeErrors(l,kt)}return l}validateWith(t,n,r={}){
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=Te(t),
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=_e(this,Te(t.trim()));return n===null?null:Oe(n)}getFieldMessages(t){let n=this.getFieldDefinition(t);
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]&&m(r,o,t[o]);return r}};var{parse:Bo,stringify:Nr}=JSON,{keys:Uo}=Object,Pr=String,zr="string";var mt="object",Cr=(e,t)=>t;var ht=(e,t,n)=>{let r=Pr(t.push(n)-1);return e.set(n,r),r};var yt=(e,t,n)=>{let r=t&&typeof t===mt?(l,d)=>l===""||-1<t.indexOf(l)?d:void 0:t||Cr,o=new Map,i=[],s=[],c=+ht(o,i,r.call(
250
- {"":e},"",e)),a=!c;for(;c<i.length;)a=!0,s[c]=Nr(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 mt:if(f===null)return f;case zr:return o.get(f)||ht(o,i,f)}return f}};var $r=new Set(["true","1","yes","y","on"]),Lr=new Set(["false","0","no","n","off"]);function Mr(e){return e!==null&&(typeof e==
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 Dr={install(e){
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([...Lr,o]),a=new Set([...$r,i]);if(c.has(s))return!1;if(a.has(s))return!0}r.throwTypeError()}),
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&&$(r.definition)&&
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&&$(r.definition)&&
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=Dr;var Et=new WeakMap,Tt=new WeakMap,_t=Symbol.for("json-rest-schema.registry-metadata");function Fr(e,t,n){if(typeof n!="f\
305
- unction")throw new Error(`Type handler for '${t}' must be a function.`);m(e,t,n)}function xr(e,t,n){if(typeof n!="functi\
306
- on")throw new Error(`Validator handler for '${t}' must be a function.`);m(e,t,n)}function te(e={}){let t=Object.create(null);
307
- for(let[n,r]of Object.entries(e))m(t,n,r);return t}function kr(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),Tt.set(e,n),Object.defineProperty(e,_t,{value:Object.
309
- freeze({getTypes:()=>t,getValidators:()=>n}),enumerable:!1,configurable:!1,writable:!1})}function Vr(e){if(!e||typeof e!=
310
- "object"&&typeof e!="function")return null;let t=Et.get(e),n=Tt.get(e);if(t&&n)return{types:t,validators:n};let r=e[_t];
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 qr(e){return e.length===1&&Array.isArray(e[0])?e[0]:e}function Br(e,t){return e===t}function Ot(e,t,n){
315
- for(let[r,o]of Object.entries(t)){if(Object.hasOwn(e,r)&&!Br(e[r],o))throw new Error(`Cannot merge schema factories with\
316
- conflicting ${n} "${r}".`);m(e,r,o)}}function Ur(e,t,n){let r=qr(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=Vr(s);if(!c)throw new Error("Factory sources m\
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 wt({types:e={},validators:t={},installCore:n=!0}={}){let r=te(e),o=te(t),i=(s,c={})=>{
320
- let a=new F(s,r,o,c.operations);return bt(a,r,o),a};return bt(i,r,o),i.addType=(s,c)=>{Fr(r,s,c)},i.addValidator=(s,c)=>{
321
- xr(o,s,c)},i.use=s=>{kr(s,{addType:i.addType,addValidator:i.addValidator})},i.createFactory=(...s)=>{let c=Ur(r,o,s);return wt(
322
- {types:c.types,validators:c.validators,installCore:!1})},n&&i.use(St),i}var y=wt({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 Hr=new Set(["create","replace","patch"]),di=Object.freeze({REQUIRED:"required",TYPE_CAST_FAILED:"default",NOT_NULLABLE:"\
324
- default",MIN_LENGTH:"minLength",MAX_LENGTH:"maxLength",MIN_VALUE:"min",MAX_VALUE:"max",PATTERN:"pattern",ENUM_VALUE:"enu\
325
- m",FIELD_NOT_ALLOWED:"additionalProperties",CUSTOM_VALIDATOR_FAILED:"default"});function U(e){return!!e&&typeof e=="obje\
326
- ct"&&typeof e.create=="function"&&typeof e.replace=="function"&&typeof e.patch=="function"&&typeof e.toJsonSchema=="func\
327
- tion"}function At(e=null,{defaultMode:t="create",context:n="schema definition.mode"}={}){let r=b(e),o=g(t).toLowerCase()||"cre\
328
- ate",i=Object.prototype.hasOwnProperty.call(r,"mode")?g(r.mode).toLowerCase():"";if(!i)return o;if(!Hr.has(i))throw new TypeError(
329
- `${n} must be one of: create, replace, patch.`);return i}function Kr(e){return!!e&&typeof e=="object"&&!Array.isArray(e)&&(Object.prototype.hasOwnProperty.call(e,"schema")||Object.
330
- prototype.hasOwnProperty.call(e,"mode"))}function R(e,{context:t="schema definition",defaultMode:n=""}={}){if(e==null)return null;
331
- if(!Kr(e))throw new TypeError(`${t} must be a schema definition object.`);let r=b(e);if(!Object.prototype.hasOwnProperty.
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=At(r,{defaultMode:i||
334
- "patch",context:`${t}.mode`}),Object.freeze(o)}function x(e){let t=R(e,{context:"cursor list item",defaultMode:"replace"});return O({schema:y({items:{type:"array",required:!0,
335
- items:t.schema},nextCursor:{type:"string",required:!1,nullable:!0,minLength:1}}),mode:"replace"})}var Gr=y({cursor:{type:"id",required:!1},limit:{type:"number",required:!1,min:1,unsigned:!0}}),Wr=Object.freeze({schema:Gr,
336
- mode:"patch"});var jt=Object.freeze({type:"string",pattern:"^(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d)?$",minLength:5}),Xr=Object.freeze(
337
- {...jt,nullable:!0});var T="^[1-9][0-9]*$",je=O({type:"string",minLength:1,pattern:T}),Qr=O({...je,nullable:!0}),Zr=O({schema:y({recordId:{...je,
338
- required:!0,messages:{pattern:"Record id must be a canonical positive integer string."}}}),mode:"patch"});var en=Object.freeze(["body","query","params","input","output"]);function P(e,t="patch",{context:n="schema definition"}={}){
339
- return R({schema:e,mode:t},{context:n,defaultMode:"patch"})}function Re(e,{context:t="schema definition",defaultMode:n="\
340
- patch"}={}){if(e==null)return e;let r=U(e)?{schema:e,mode:n}:e;return R(r,{context:t,defaultMode:n})}function tn(e,t={}){
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 rn(e,t=null,n=null){if(!t||typeof t!="object"||Array.isArray(t))throw new TypeError(
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 en){if(!Object.hasOwn(r,i))continue;let s=tn(i,r);o[i]=Re(r[i],{context:`\
345
- defineResource operations.${e}.${i}`,defaultMode:s})}return O(o)}function nn(e=null,t=null){let n=b(e),r={};for(let[o,i]of Object.
346
- entries(n)){let s=g(o);s&&(r[s]=rn(s,i,t))}return Object.freeze(r)}function on(e,{context:t="defineResource resource.nam\
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:on(t.namespace),...n?{messages:n}:{},operations:nn(
349
- t.operations,n)})}var Ie=8e3,Rt=20,cn=200,It=500,Ne={type:"array",required:!1,maxItems:10,items:{type:"string",minLength:1,maxLength:256}},
350
- un=y({attachmentIds:Ne,role:{type:"string",required:!0,enum:["user","assistant"]},content:{type:"string",required:!0,minLength:1,
351
- maxLength:Ie}}),ln=y({locale:{type:"string",required:!1,maxLength:64},timezone:{type:"string",required:!1,maxLength:64}}),
352
- fn=y({attachmentIds:Ne,integrationId:{type:"string",required:!1,minLength:1,maxLength:128},messageId:{type:"string",required:!0,
353
- minLength:1,maxLength:128},conversationId:{type:"string",required:!1,minLength:1,pattern:T},input:{type:"string",required:!0,
354
- minLength:1,maxLength:Ie},history:{type:"array",required:!1,maxItems:Rt,items:un},clientContext:{type:"object",required:!1,
355
- schema:ln}}),dn=y({cursor:{type:"id",required:!1},limit:{type:"number",required:!1,min:1,max:cn},status:{type:"string",required:!1,
356
- minLength:1,maxLength:32}}),Pe=y({id:{type:"string",required:!0,minLength:1,pattern:T},workspaceId:{type:"string",required:!0,
357
- nullable:!0,minLength:1,pattern:T},title:{type:"string",required:!0},createdByUserId:{type:"string",required:!0,nullable:!0,
358
- minLength:1,pattern:T},status:{type:"string",required:!0},provider:{type:"string",required:!0},model:{type:"string",required:!0},
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:T},conversationId:{type:"string",required:!0,minLength:1,pattern:T},workspaceId:{type:"\
363
- string",required:!0,nullable:!0,minLength:1,pattern:T},seq:{type:"integer",required:!0,min:1},role:{type:"string",required:!0,
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:T},contentText:{type:"string",required:!0,nullable:!0},createdAt:{type:"\
366
- string",required:!0,minLength:1},metadata:{type:"object",required:!0,additionalProperties:!0}}),mn=y({conversationId:{type:"\
367
- id",required:!0}}),hn=y({page:{type:"number",required:!1,min:1},pageSize:{type:"number",required:!1,min:1,max:It}}),yn=y(
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}}),gn=P(Pe,"replace"),Sn=re({namespace:"assistant",operations:{chatStream:{method:"POST",body:fn},conversationsList:{
371
- method:"GET",query:dn,output:x(P(Pe,"replace"))},conversationMessagesList:{method:"GET",params:mn,query:hn,output:yn}}});function Nt(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.
372
- operations,i!==!0&&Object.assign(s,i),n[r]=s}return n}function bn(e=""){return g(e).toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"")}function ze(e,{
373
- context:t="requireCrudNamespace"}={}){let n=bn(e);if(!n)throw new TypeError(`${t} requires a non-empty namespace.`);return n}
374
- function Pt(e=""){return`${ze(e,{context:"resolveCrudRecordChangedEvent"}).replace(/-/g,"_")}.record.changed`}var On=Object.freeze(["list","view","create","patch","delete"]),zt=Object.freeze(["list","view","create","replace","patc\
375
- h","delete"]),En=O({list:{method:"GET",outputKind:"list",includeRealtimeEvent:!0},view:{method:"GET",outputKind:"record"},
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 Ct(){return{type:"string",required:!0,minLength:1,
380
- pattern:T}}function Tn(e={}){return g(e?.contract?.lookup?.containerKey)}function Ce(e={},t="output"){return Nt(e?.schema,
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:Ct(),...t},r=Tn(e);return r&&
383
- (n[r]={type:"object",required:!1}),P(y(n),"replace",{context:"defineCrudResource derived output"})}function wn(e={},t="p\
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 An(){return P(y({id:Ct(),deleted:{type:"boolean",required:!0}}),"replace",{context:"\
388
- defineCrudResource delete output"})}function jn(e="",{context:t="crud operation name"}={}){let n=g(e).toLowerCase();if(zt.
389
- includes(n))return n;throw new Error(`${t} must be one of: ${zt.join(", ")}. Received: ${JSON.stringify(e)}.`)}function Rn(e=""){
390
- let t=En[e];if(t)return t;throw new Error(`createCrudOperationDefinition received unsupported operation "${e}".`)}function In(e={}){
391
- let t=Array.isArray(e?.crudOperations)?e.crudOperations:On,n=[],r=new Set;for(let o of t){let i=jn(o,{context:"defineCru\
392
- dResource crudOperations"});r.has(i)||(r.add(i),n.push(i))}return n}function Nn(e={},t=[]){for(let n of Array.isArray(t)?
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=Nn(e,t);return o==null?null:Re(o,{context:n,defaultMode:r})}function Pn(e,t={}){
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?x(r):x(e())}function zn(e={},t={}){
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 Cn(e,t={},n={}){let r=H(n,e.explicitBodyKeys,{context:`defineCrudResource operations.${e.
399
- bodyOperation}.body`,defaultMode:e.bodyMode});return r||wn(t,e.bodyOperation,e.bodyMode)}function vn(e,t,n={}){if(e.outputKind===
400
- "list")return Pn(t,n);if(e.outputKind==="record")return t();if(e.outputKind==="delete")return H(n,["deleteOutput"],{context:"\
401
- defineCrudResource operations.delete.output",defaultMode:"replace"})||An();throw new Error(`resolveCrudOutputDefinition \
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:[Pt(t)]}),i.bodyOperation&&(s.body=Cn(
404
- i,n,r)),s.output=vn(i,o,r),s}function Ln(e={}){let t=ze(e?.namespace,{context:"createDefaultCrudOperations resource.name\
405
- space"}),n=b(e?.crud),r=zn(e,n),o={};for(let i of In(e))o[i]=$n(i,{namespace:t,resource:e,crudConfig:n,resolveRecordOutputDefinition: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 Dn(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[
408
- i,s]of Object.entries(r))Object.hasOwn(o,i)||(o[i]=s);return o}function vt(e={}){let t=b(e),{crud:n,crudOperations:r,...o}=t;
409
- return re({...o,operations:Dn(Ln(t),o.operations)})}var ne=12e3,Fn=y({targetSurfaceId:{type:"string",required:!0,minLength:1,maxLength:64},scopeKey:{type:"string",required:!0,
410
- minLength:1,maxLength:160},workspaceId:{type:"string",required:!0,nullable:!0,minLength:1,pattern:T},settings:{type:"obj\
411
- ect",required:!0,schema:y({systemPrompt:{type:"string",required:!0,maxLength:ne}})}}),xn=y({systemPrompt:{type:"string",
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."}}}),kn=vt({namespace:"assistantConfig",crudOperations:["view","patch"],crud:{output:Fn,
414
- patchBody:xn}});var $t=O({kind:"jsonapi-resource",responseType:"assistant-settings",responseKind:"record"}),Vn=O({...$t,requestType:"ass\
415
- istant-settings"}),qn=O({kind:"jsonapi-resource",responseType:"assistant-conversations",responseKind:"collection"}),Bn=O(
416
- {kind:"jsonapi-resource",responseType:"assistant-conversation-messages",responseKind:"record"});var Un=Object.freeze({settingsChanged:"assistant.settings.changed"});var Lt=Object.freeze(["active","completed","failed","aborted"]),Ms=new Set(Lt);function oe(e){if(e==null)return{};try{let t=typeof e=="string"?JSON.parse(e):e;return!t||typeof t!="object"||Array.isArray(
417
- t)?{}:t}catch{return{}}}var qs=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,
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 ve(e){return J(e,{fallback:null})}function Mt(e){return Jn(e,{fallback:null})}function z(e){return J(e,{fallback:null})}
420
- function $e(e,t,n){let r=ve(n);return r?e.where(t,r):e.whereNull(t)}function Le(e){return!e||typeof e!="object"||Array.isArray(
421
- e)?null:JSON.stringify(e)}function Dt(e){if(!e)return"";let t=e instanceof Date?e:new Date(e);return Number.isNaN(t.getTime())?
422
- "":t.toISOString()}function Ft(e){return Hn(e,{fallback:""})||""}var C=Object.freeze({configTable:"assistant_config",conversationsTable:"assistant_conversations",messagesTable:"assistan\
423
- t_messages",turnRequestsTable:"assistant_turn_requests"});function xt(e={}){return{id:Me(e.id,{fallback:""}),conversationId:Me(e.conversation_id,{fallback:""}),workspaceId:Mt(e.workspace_id),
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:Me(e.actor_user_id,{fallback:null}),contentText:e.content_text==null?null:String(
426
- e.content_text),metadata:oe(e.metadata_json),createdAt:Dt(e.created_at)}}function Wn(e={},{defaultPage:t=1,defaultPageSize:n=200,
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 Xn(e,t){let n=await e(C.messagesTable).where({conversation_id:t}).
429
- max({maxSeq:"seq"}).first(),r=Number(n?.maxSeq||0);return!Number.isInteger(r)||r<0?1:r+1}function za(e){if(!e||typeof e!=
430
- "function")throw new Error("createMessagesRepository requires knex client.");let t=Kn(e);async function n(a,u={}){let l=z(
431
- a);if(!l)return null;let f=await(u?.trx||e)(C.messagesTable).where({id:l}).first();return f?xt(f):null}async function r(a={},u={}){
432
- let l=u?.trx||e,d=z(a.conversationId);if(!d)throw new TypeError("messagesRepository.create requires conversationId.");let f=Number(
433
- a.seq),p=Number.isInteger(f)&&f>0?f:await Xn(l,d),h=await l(C.messagesTable).insert({conversation_id:d,workspace_id:ve(a.
434
- workspaceId),seq:p,role:g(a.role).toLowerCase(),kind:g(a.kind).toLowerCase()||"chat",client_message_sid:g(a.clientMessageSid),
435
- actor_user_id:z(a.actorUserId),content_text:a.contentText==null?null:String(a.contentText),metadata_json:Le(a.metadata),
436
- created_at:a.createdAt?new Date(a.createdAt):new Date}),S=Ft(h);if(!S)throw new Error("messagesRepository.create could n\
437
- ot resolve inserted id.");return n(S,{trx:l})}async function o(a,{workspaceId:u=null}={},l={}){let d=z(a);if(!d)return 0;
438
- let p=(l?.trx||e)(C.messagesTable).where({conversation_id:d});$e(p,"workspace_id",u);let h=await p.count({total:"*"}).first(),
439
- S=Number(h?.total||0);return Number.isFinite(S)&&S>0?S:0}async function i(a,u={},l={}){let d=z(a);if(!d)return null;let f=l?.
440
- trx||e,p={};return Object.hasOwn(u,"contentText")&&(p.content_text=u.contentText==null?null:String(u.contentText)),Object.
441
- hasOwn(u,"metadata")&&(p.metadata_json=Le(u.metadata)),Object.keys(p).length&&await f(C.messagesTable).where({id:d}).update(
442
- p),n(d,{trx:f})}async function s(a,{workspaceId:u=null}={},l={},d={}){let f=z(a);if(!f)return[];let p=d?.trx||e,{page:h,
443
- pageSize:S}=Wn(l),v=(h-1)*S,_=p(C.messagesTable).where({conversation_id:f});return $e(_,"workspace_id",u),(await _.orderBy(
444
- "seq","asc").orderBy("id","asc").limit(S).offset(v)).map(xt)}async function c(a){return Gn(e,a)}return Object.freeze({withTransaction:t,
445
- findById:n,create:r,updateById:i,countByConversationScope:o,listByConversationScope:s,transaction:c})}export{za as createRepository};
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};