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,13 +1,13 @@
1
1
  import { createRequire as __vibe64CreateRequire } from 'node:module';const require=__vibe64CreateRequire(import.meta.url);
2
- import{applyForUpdate as Ut,createWithTransaction as Zn,normalizeDbRecordId as qe,runInTransaction as eo}from"@jskit-ai/database-runtime/shared/repositoryOptions";var ro=Object.freeze(["none","pending","committed","rolledBack","unknown"]);function y(e,{fallback:t=""}={}){return String(e||"").trim()||t}function g(e,{fallback:t={}}={}){return!e||typeof e!="object"||Array.isArray(e)?{...t}:e}function fe(e,{fallback:t=null}={}){if(e==null)return t;let n=String(e).trim();return/^[1-9][0-9]*$/.test(n)?n:t}function Y(e,{
2
+ import{applyForUpdate as Ht,createWithTransaction as eo,normalizeDbRecordId as qe,runInTransaction as to}from"@jskit-ai/database-runtime/shared/repositoryOptions";var no=Object.freeze(["none","pending","committed","rolledBack","unknown"]);function y(e,{fallback:t=""}={}){return String(e||"").trim()||t}function S(e,{fallback:t={}}={}){return!e||typeof e!="object"||Array.isArray(e)?{...t}:e}function fe(e,{fallback:t=null}={}){if(e==null)return t;let n=String(e).trim();return/^[1-9][0-9]*$/.test(n)?n:t}function Y(e,{
3
3
  fallback:t=null}={}){return e==null?t:typeof e=="string"?fe(e,{fallback:t}):typeof e=="number"?!Number.isSafeInteger(e)||
4
- e<1?t:fe(e,{fallback:t}):typeof e=="bigint"?e<1n?t:fe(e,{fallback:t}):t}function M(e){return String(e||"").trim().toLowerCase()}import{resolveInsertedRecordId as Yn}from"@jskit-ai/database-runtime/shared";import{normalizeDbRecordId as Qn}from"@jskit-ai/database-runtime/shared/repositoryOptions";var Xt=Object.freeze(["assistant"]);var Be=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"}),No=new Set(Object.values(Be));function _(e){if(e===null||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||
6
- Yt(t)}function Yt(e){return e!==null&&typeof e=="object"&&Object.getPrototypeOf(e)===null&&Reflect.ownKeys(e).length===0}function de(e){return e!==null&&typeof e=="object"&&_(e.structure)&&_(e.operations)&&typeof e.validateWith=="function"&&
4
+ e<1?t:fe(e,{fallback:t}):typeof e=="bigint"?e<1n?t:fe(e,{fallback:t}):t}function k(e){return String(e||"").trim().toLowerCase()}import{resolveInsertedRecordId as Qn}from"@jskit-ai/database-runtime/shared";import{normalizeDbRecordId as Zn}from"@jskit-ai/database-runtime/shared/repositoryOptions";var Yt=Object.freeze(["assistant"]);var Be=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"}),Po=new Set(Object.values(Be));function T(e){if(e===null||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null||
6
+ Qt(t)}function Qt(e){return e!==null&&typeof e=="object"&&Object.getPrototypeOf(e)===null&&Reflect.ownKeys(e).length===0}function de(e){return e!==null&&typeof e=="object"&&T(e.structure)&&T(e.operations)&&typeof e.validateWith=="function"&&
7
7
  typeof e.toJsonSchema=="function"&&typeof e.cleanup=="function"}function Q(e,t){if(!Object.hasOwn(t,"items"))return null;
8
- let{items:n}=t;if(de(n))return{kind:"schema",schema:n};if(!_(n)||typeof n.type!="string")throw new Error(`Array field "${e}\
8
+ let{items:n}=t;if(de(n))return{kind:"schema",schema:n};if(!T(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 U(e,t){
10
- if(!Object.hasOwn(t,"values"))return null;let{values:n}=t;if(de(n))return{kind:"schema",schema:n};if(!_(n)||typeof n.type!=
10
+ if(!Object.hasOwn(t,"values"))return null;let{values:n}=t;if(de(n))return{kind:"schema",schema:n};if(!T(n)||typeof n.type!=
11
11
  "string")throw new Error(`Object field "${e}" must define values as either a Schema instance or a field definition objec\
12
12
  t.`);return{kind:"definition",definition:n}}function Z(e,t){let n=Object.hasOwn(t,"schema"),r=Object.hasOwn(t,"values"),
13
13
  o=Object.hasOwn(t,"additionalProperties");if(n&&r)throw new Error(`Object field "${e}" cannot define both schema and val\
@@ -15,36 +15,36 @@ 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(!de(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:U(
18
- e,t)}:t.additionalProperties===!0?{kind:"opaque"}:{kind:"plain"}}function D(e){return e?.type==="number"||e?.type==="integer"||e?.type==="epochMilliseconds"||e?.type==="epochSeconds"}var pe="^(?:0|-?[1-9]\\d*)$",Ue="\\d{4}",He="0[1-9]|1[0-2]",Je="0[1-9]|[12]\\d|3[01]",Ke="[01]\\d|2[0-3]",F="[0-5]\\d",ee=`\
19
- (?:${Ke}):${F}`,Ge=`(?:Z|[+-](?:${Ke}):${F})`,We=`(${Ue})-(${He})-(${Je})`,Xe=`${Ue}-(?:${He})-(?:${Je})`,Ye=`^${Xe}$`,Qt=new RegExp(
20
- `^${We}$`),Zt=new RegExp(`^${ee}(?::${F}(?:\\.(\\d+))?)?$`),er=new RegExp(`^${We}T${ee}:${F}(?:\\.(\\d+))?${Ge}$`),tr=new RegExp(
21
- pe),rr=[31,28,31,30,31,30,31,31,30,31,30,31];function nr(e){return e%4===0&&(e%100!==0||e%400===0)}function or(e,t){return t===
22
- 2?nr(e)?29:28:rr[t-1]}function Qe(e,t,n){let r=Number(e),o=Number(t),i=Number(n);return o>=1&&o<=12&&i>=1&&i<=or(r,o)}function H(e,t){
18
+ e,t)}:t.additionalProperties===!0?{kind:"opaque"}:{kind:"plain"}}function M(e){return e?.type==="number"||e?.type==="integer"||e?.type==="epochMilliseconds"||e?.type==="epochSeconds"}var me="^(?:0|-?[1-9]\\d*)$",Ue="\\d{4}",He="0[1-9]|1[0-2]",Ke="0[1-9]|[12]\\d|3[01]",Je="[01]\\d|2[0-3]",D="[0-5]\\d",ee=`\
19
+ (?:${Je}):${D}`,Ge=`(?:Z|[+-](?:${Je}):${D})`,We=`(${Ue})-(${He})-(${Ke})`,Xe=`${Ue}-(?:${He})-(?:${Ke})`,Ye=`^${Xe}$`,Zt=new RegExp(
20
+ `^${We}$`),er=new RegExp(`^${ee}(?::${D}(?:\\.(\\d+))?)?$`),tr=new RegExp(`^${We}T${ee}:${D}(?:\\.(\\d+))?${Ge}$`),rr=new RegExp(
21
+ me),nr=[31,28,31,30,31,30,31,31,30,31,30,31];function or(e){return e%4===0&&(e%100!==0||e%400===0)}function ir(e,t){return t===
22
+ 2?or(e)?29:28:nr[t-1]}function Qe(e,t,n){let r=Number(e),o=Number(t),i=Number(n);return o>=1&&o<=12&&i>=1&&i<=ir(r,o)}function H(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
24
  be a non-negative integer.`);return n}}function Ze(e,t){return e===void 0?!0:t===void 0||e.length<=t}function et(e){if(typeof e!=
25
- "string")return!1;let t=Qt.exec(e);return t!==null&&Qe(t[1],t[2],t[3])}function tt(e,t){if(typeof e!="string")return!1;let n=Zt.
26
- exec(e);return n!==null&&Ze(n[1],t)}function rt(e,t){if(typeof e!="string")return!1;let n=er.exec(e);return n===null?!1:
25
+ "string")return!1;let t=Zt.exec(e);return t!==null&&Qe(t[1],t[2],t[3])}function tt(e,t){if(typeof e!="string")return!1;let n=er.
26
+ exec(e);return n!==null&&Ze(n[1],t)}function rt(e,t){if(typeof e!="string")return!1;let n=tr.exec(e);return n===null?!1:
27
27
  Qe(n[1],n[2],n[3])&&Ze(n[4],t)}function nt(e){return e===void 0?"(?:\\.\\d+)?":e===0?"":`(?:\\.\\d{1,${e}})?`}function ot(e,t){
28
- let n=H(e,t);return`^${ee}(?::${F}${nt(n)})?$`}function it(e,t){let n=H(e,t);return`^${Xe}T${ee}:${F}${nt(n)}${Ge}$`}function me(e,t){
29
- let n;if(typeof e=="number")n=e;else if(typeof e=="string"&&tr.test(e))n=Number(e);else return null;return!Number.isSafeInteger(
30
- n)||n<-t||n>t?null:n===0?0:n}var ir=new Set(["__proto__","prototype","constructor"]);function m(e,t,n){Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0})}function sr(e,t){if(ir.
31
- has(e))throw new Error(`${t}() received unsafe path segment "${e}".`)}function ar(e){return typeof e!="string"?e:e.replace(
28
+ let n=H(e,t);return`^${ee}(?::${D}${nt(n)})?$`}function it(e,t){let n=H(e,t);return`^${Xe}T${ee}:${D}${nt(n)}${Ge}$`}function pe(e,t){
29
+ let n;if(typeof e=="number")n=e;else if(typeof e=="string"&&rr.test(e))n=Number(e);else return null;return!Number.isSafeInteger(
30
+ n)||n<-t||n>t?null:n===0?0:n}var sr=new Set(["__proto__","prototype","constructor"]);function p(e,t,n){Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0})}function ar(e,t){if(sr.
31
+ has(e))throw new Error(`${t}() received unsafe path segment "${e}".`)}function cr(e){return typeof e!="string"?e:e.replace(
32
32
  /\[(.+?)\]/g,".$1").replace(/^\.+/,"").replace(/\.+/g,".").replace(/\.$/,"")}function he(e,t,{normalize:n=!1,allowEmpty:r=!1}={}){
33
- let o=n?ar(e):e;if(typeof o!="string"||o.trim()===""){if(r&&o==="")return[];throw new Error(`${t}() expects a non-empty \
33
+ let o=n?cr(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)sr(s,t);return i}var cr="http://json-schema.org/draft-07/schema#",N="x-json-rest-schema",ye=["object","array","string","number","boolean"],
36
- Se=Symbol("json-rest-schema.exportContext"),ur=["true","1","yes","y","on"],lr=["false","0","no","n","off"];function st(e){
37
- return{anyOf:[{type:"integer",minimum:-e,maximum:e},{type:"string",pattern:pe}]}}function C(e,t){return{[N]:{[e]:t}}}var fr={
35
+ for(let s of i)ar(s,t);return i}var ur="http://json-schema.org/draft-07/schema#",N="x-json-rest-schema",ye=["object","array","string","number","boolean"],
36
+ ge=Symbol("json-rest-schema.exportContext"),lr=["true","1","yes","y","on"],fr=["false","0","no","n","off"];function st(e){
37
+ return{anyOf:[{type:"integer",minimum:-e,maximum:e},{type:"string",pattern:me}]}}function C(e,t){return{[N]:{[e]:t}}}var dr={
38
38
  none:()=>({type:ye}),blob:()=>({type:ye}),serialize:()=>({type:ye}),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:()=>st(864e13),epochSeconds:()=>st(864e10),dateTime:({definition:e,fieldName:t})=>({
41
41
  type:"string",format:"date-time",pattern:it(e,t)}),date:()=>({type:"string",format:"date",pattern:Ye}),time:({definition:e,
42
42
  fieldName:t})=>({type:"string",pattern:ot(e,t)}),boolean:({definition:e})=>{if(e.strictBoolean===!0)return{type:"boolean"};
43
- let t=new Set([...ur,String(e.stringTrueWhen||"true").trim().toLowerCase()]),n=new Set([...lr,String(e.stringFalseWhen||
43
+ let t=new Set([...lr,String(e.stringTrueWhen||"true").trim().toLowerCase()]),n=new Set([...fr,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]*$"})},dr={minLength:({definition:e,parameterValue:t})=>e.
45
+ id:()=>({type:["integer","string"],minimum:1,pattern:"^[1-9][0-9]*$"})},mr={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})=>D(e)?{minimum:t}:null,max:({definition:e,parameterValue:t})=>D(e)?{maximum:t}:null,pattern:({
47
+ definition:e,parameterValue:t})=>M(e)?{minimum:t}:null,max:({definition:e,parameterValue:t})=>M(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
50
  C("transforms",{uppercase:!0}):null,lowercase:({parameterValue:e})=>e?C("transforms",{lowercase:!0}):null,length:({parameterValue:e})=>C(
@@ -54,234 +54,234 @@ C("transforms",{uppercase:!0}):null,lowercase:({parameterValue:e})=>e?C("transfo
54
54
  function Ee(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
55
  isArray(r)&&!Array.isArray(o)){Ee(o,r);continue}e[n]=r}}function pr(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===N&&e[n]&&typeof e[n]=="ob\
57
- ject"&&typeof t[n]=="object"&&!Array.isArray(e[n])&&!Array.isArray(t[n])){Ee(e[n],t[n]);continue}e[n]=t[n]}}function mr(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 hr(e,t){
57
+ ject"&&typeof t[n]=="object"&&!Array.isArray(e[n])&&!Array.isArray(t[n])){Ee(e[n],t[n]);continue}e[n]=t[n]}}function hr(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 yr(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=fr[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 yr(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=dr[t];if(o)return o;throw new Error(
60
+ toJsonSchema=="function")return n.toJsonSchema;let r=dr[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 gr(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=mr[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 at(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
65
  rt mode '${e}'. Expected 'create', 'replace', or 'patch'.`)}function Sr(e,t={}){if(t.mode!==void 0&&t.operation!==void 0){
66
66
  let n=at(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 at(t.mode)}function gr(e,t={}){if(t.operationName!==
68
+ own JSON Schema export operation '${t.operation}'.`);return t.operation}return at(t.mode)}function Or(e,t={}){if(t.operationName!==
69
69
  void 0&&t.operationDescriptor!==void 0)return{operationName:t.operationName,operation:t.operationDescriptor};let n=Sr(e,
70
- t);return{operationName:n,operation:e.operations[n]}}function br(e={}){let t={...e};return Object.defineProperty(t,Se,{value:{
71
- definitions:{},nodes:[],nextDefinitionId:1,rootNode:null},enumerable:!1}),t}function re(e={}){return e[Se]?e[Se]:{definitions:{},
72
- nodes:[],nextDefinitionId:1,rootNode:null}}function Or(e){return String(e).replace(/[^a-zA-Z0-9]+/g,"_").replace(/^_+|_+$/g,
73
- "")||"operation"}function ge(e){return _(e)&&Object.keys(e).length===1&&typeof e.$ref=="string"}function te(e){return ge(
74
- e)?{allOf:[e]}:e}function Er(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 Tr(e,t){let n=Or(t),r=`SchemaNode_${e.nextDefinitionId}_${n}`;return e.nextDefinitionId+=1,r}function ct(e,t,n,r,o,{
76
- root:i=!1}={}){let s=re(t),c=Er(s,e,n,r,o);if(c)return i&&(c.pointer="#",s.rootNode=c),c;let a={schema:e,operationName:n,
70
+ t);return{operationName:n,operation:e.operations[n]}}function br(e={}){let t={...e};return Object.defineProperty(t,ge,{value:{
71
+ definitions:{},nodes:[],nextDefinitionId:1,rootNode:null},enumerable:!1}),t}function re(e={}){return e[ge]?e[ge]:{definitions:{},
72
+ nodes:[],nextDefinitionId:1,rootNode:null}}function Er(e){return String(e).replace(/[^a-zA-Z0-9]+/g,"_").replace(/^_+|_+$/g,
73
+ "")||"operation"}function Se(e){return T(e)&&Object.keys(e).length===1&&typeof e.$ref=="string"}function te(e){return Se(
74
+ e)?{allOf:[e]}:e}function wr(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 Tr(e,t){let n=Er(t),r=`SchemaNode_${e.nextDefinitionId}_${n}`;return e.nextDefinitionId+=1,r}function ct(e,t,n,r,o,{
76
+ root:i=!1}={}){let s=re(t),c=wr(s,e,n,r,o);if(c)return i&&(c.pointer="#",s.rootNode=c),c;let a={schema:e,operationName:n,
77
77
  operation:r,additionalProperties:o,status:"new",definitionName:i?null:Tr(s,n),pointer:i?"#":null};return i?s.rootNode=a:
78
78
  a.pointer=`#/definitions/${a.definitionName}`,s.nodes.push(a),a}function ut(e,t){if(e.status==="built")return{$ref:e.pointer};
79
79
  if(e.status==="building")return{$ref:e.pointer};let n=re(t);e.status="building",e.pointer!=="#"&&(n.definitions[e.definitionName]=
80
80
  {});let r=_r(e.schema,t,e.operationName,e.operation,e.additionalProperties);return e.status="built",e.pointer==="#"?r:(n.
81
- definitions[e.definitionName]=r,{$ref:e.pointer})}function Te(e,t,n,r,o=!1){let i=re(t),s=ct(e,t,n,r,o);return i.rootNode===
82
- s?{$ref:"#"}:ut(s,t)}function J(e,{referenceBacked:t=!1}={}){return{schema:e,referenceBacked:t}}function _r(e,t,n,r,o=!1){
83
- let i={},s=[];for(let[a,u]of Object.entries(e.structure))m(i,a,_e(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 wr(e,t,n,r,o,i){
85
- let s=Q(t,n);if(!s)return null;if(s.kind==="schema")return{...te(Te(s.schema,r,"replace",s.schema.operations.replace,!1)),
81
+ definitions[e.definitionName]=r,{$ref:e.pointer})}function we(e,t,n,r,o=!1){let i=re(t),s=ct(e,t,n,r,o);return i.rootNode===
82
+ s?{$ref:"#"}:ut(s,t)}function K(e,{referenceBacked:t=!1}={}){return{schema:e,referenceBacked:t}}function _r(e,t,n,r,o=!1){
83
+ let i={},s=[];for(let[a,u]of Object.entries(e.structure))p(i,a,Te(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 Ar(e,t,n,r,o,i){
85
+ let s=Q(t,n);if(!s)return null;if(s.kind==="schema")return{...te(we(s.schema,r,"replace",s.schema.operations.replace,!1)),
86
86
  [N]:{castType:"object"}};let c=n.items.type==="object"&&Object.hasOwn(n.items,"schema")?"replace":o,a=c==="replace"?e.operations.
87
- replace:i;return _e(e,`${t}[]`,n.items,r,c,a)}function Ar(e,t,n,r,o,i){let s=U(t,n);if(!s)return null;if(s.kind==="schem\
88
- a")return{...te(Te(s.schema,r,"replace",s.schema.operations.replace,!1)),[N]:{castType:"object"}};let c=s.definition.type===
89
- "object"&&Object.hasOwn(s.definition,"schema")?"replace":o,a=c==="replace"?e.operations.replace:i;return _e(e,`${t}.*`,s.
90
- definition,r,c,a)}function jr(e,t,n,r,o,i){if(n.type==="object"){let c=Z(t,n);if(c.kind==="nested")return J(Te(c.schema,
91
- r,o,i,c.allowAdditionalProperties===!0),{referenceBacked:!0});if(c.kind==="opaque")return J({type:"object",additionalProperties:!0});
92
- if(c.kind==="map")return J({type:"object",additionalProperties:Ar(e,t,n,r,o,i)})}let s=hr(e,n)({schema:e,fieldName:t,definition:n,
87
+ replace:i;return Te(e,`${t}[]`,n.items,r,c,a)}function jr(e,t,n,r,o,i){let s=U(t,n);if(!s)return null;if(s.kind==="schem\
88
+ a")return{...te(we(s.schema,r,"replace",s.schema.operations.replace,!1)),[N]:{castType:"object"}};let c=s.definition.type===
89
+ "object"&&Object.hasOwn(s.definition,"schema")?"replace":o,a=c==="replace"?e.operations.replace:i;return Te(e,`${t}.*`,s.
90
+ definition,r,c,a)}function Ir(e,t,n,r,o,i){if(n.type==="object"){let c=Z(t,n);if(c.kind==="nested")return K(we(c.schema,
91
+ r,o,i,c.allowAdditionalProperties===!0),{referenceBacked:!0});if(c.kind==="opaque")return K({type:"object",additionalProperties:!0});
92
+ if(c.kind==="map")return K({type:"object",additionalProperties:jr(e,t,n,r,o,i)})}let s=yr(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=wr(e,t,n,r,o,i);if(c)return J({...s,items:c},{referenceBacked:ge(
95
- s)})}return J(s,{referenceBacked:ge(s)})}function _e(e,t,n,r,o,i){let s={schema:e,fieldName:t,definition:n,operation:o,mode:o,
96
- options:r},c=jr(e,t,n,r,o,i),a=c.referenceBacked?te(c.schema):{...c.schema},u={castType:n.type};for(let d of Object.keys(
97
- n)){if(d==="type"||!Object.hasOwn(e.validators,d))continue;let f=yr(e,d,t);if(!f)continue;let h=f({...s,parameterName:d,
94
+ ' returned an invalid JSON Schema fragment.`);if(n.type==="array"){let c=Ar(e,t,n,r,o,i);if(c)return K({...s,items:c},{referenceBacked:Se(
95
+ s)})}return K(s,{referenceBacked:Se(s)})}function Te(e,t,n,r,o,i){let s={schema:e,fieldName:t,definition:n,operation:o,mode:o,
96
+ options:r},c=Ir(e,t,n,r,o,i),a=c.referenceBacked?te(c.schema):{...c.schema},u={castType:n.type};for(let d of Object.keys(
97
+ n)){if(d==="type"||!Object.hasOwn(e.validators,d))continue;let f=gr(e,d,t);if(!f)continue;let h=f({...s,parameterName:d,
98
98
  parameterValue:n[d],fieldSchema:{...a}});h&&pr(a,h)}a[N]&&(Ee(u,a[N]),delete a[N]);let l=[];n.nullable===!0&&l.push({type:"\
99
- null"}),n.nullOnEmpty===!0&&l.push({const:""});let p=te(mr(a,l));if(n.defaultTo!==void 0&&i.applyDefaults)if(typeof n.defaultTo!=
99
+ null"}),n.nullOnEmpty===!0&&l.push({const:""});let m=te(hr(a,l));if(n.defaultTo!==void 0&&i.applyDefaults)if(typeof n.defaultTo!=
100
100
  "function"){let d=e._normalizeDefault(n,n.defaultTo,{fieldPath:t,currentObject:{},containerKey:t,objectBeforeCast:{},options:{},
101
101
  settings:e._buildOperationSettings(o,i,{})});if(Object.keys(d.errors).length>0){let f=Object.values(d.errors)[0];throw new Error(
102
- `defaultTo for "${t}" is invalid (${f.code}).`)}p.default=d.value}else u.defaults={providedByFunction:!0};return p[N]=u,
103
- p}function lt(e,t={}){let n=br(t),{operationName:r,operation:o}=gr(e,n),i=n.additionalProperties===void 0?!1:n.additionalProperties,
104
- s=re(n),c=ct(e,n,r,o,i,{root:!0}),a={$schema:cr,...ut(c,n)};return Object.keys(s.definitions).length>0&&(a.definitions=s.
102
+ `defaultTo for "${t}" is invalid (${f.code}).`)}m.default=d.value}else u.defaults={providedByFunction:!0};return m[N]=u,
103
+ m}function lt(e,t={}){let n=br(t),{operationName:r,operation:o}=Or(e,n),i=n.additionalProperties===void 0?!1:n.additionalProperties,
104
+ s=re(n),c=ct(e,n,r,o,i,{root:!0}),a={$schema:ur,...ut(c,n)};return Object.keys(s.definitions).length>0&&(a.definitions=s.
105
105
  definitions),a}function ft(e){return e!==null&&(typeof e=="object"||typeof e=="function")&&typeof e.then=="function"}function Re(e){return e instanceof
106
- k}function Ir(){return{self:!1,children:{}}}function dt(e){return Object.keys(e.children).length>0}function v(e,t){return`${e}\
107
- .${String(t)}`}function gt(e,t){return e===""?String(t):v(e,t)}function pt(e,t){if(e===t)return"";let n=`${t}.`;return e.
108
- startsWith(n)?e.slice(n.length):null}function x(e,t){let n={};for(let r of Object.values(e)){let o=v(t,r.field);m(n,o,{...r,
109
- field:o})}return n}function je(e){return he(e,"validatePath")}function mt(e){let t={};for(let n of e){let r=je(n),o=t;for(let i=0;i<
110
- r.length;i++){let s=r[i];Object.hasOwn(o,s)||m(o,s,Ir()),i===r.length-1&&(o[s].self=!0),o=o[s].children}}return t}function Rr(e,t){
106
+ V}function Rr(){return{self:!1,children:{}}}function dt(e){return Object.keys(e.children).length>0}function z(e,t){return`${e}\
107
+ .${String(t)}`}function St(e,t){return e===""?String(t):z(e,t)}function mt(e,t){if(e===t)return"";let n=`${t}.`;return e.
108
+ startsWith(n)?e.slice(n.length):null}function F(e,t){let n={};for(let r of Object.values(e)){let o=z(t,r.field);p(n,o,{...r,
109
+ field:o})}return n}function je(e){return he(e,"validatePath")}function pt(e){let t={};for(let n of e){let r=je(n),o=t;for(let i=0;i<
110
+ r.length;i++){let s=r[i];Object.hasOwn(o,s)||p(o,s,Rr()),i===r.length-1&&(o[s].self=!0),o=o[s].children}}return t}function Nr(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 ne(e){return e===
112
- null?!0:Array.isArray(e)||_(e)?Object.keys(e).length>0:e!==void 0}function ht(e){return[...e].sort((t,n)=>{let r=/^[0-9]+$/.
113
- test(t),o=/^[0-9]+$/.test(n);return r&&o?Number(t)-Number(n):r?-1:o?1:t.localeCompare(n)})}function Nr(e){return/^[0-9]+$/.
114
- test(e)}function Pr(e,t=new WeakMap){if(t.has(e))return t.get(e);let n=Object.create(k.prototype);return t.set(e,n),n.structure=
112
+ null?!0:Array.isArray(e)||T(e)?Object.keys(e).length>0:e!==void 0}function ht(e){return[...e].sort((t,n)=>{let r=/^[0-9]+$/.
113
+ test(t),o=/^[0-9]+$/.test(n);return r&&o?Number(t)-Number(n):r?-1:o?1:t.localeCompare(n)})}function Pr(e){return/^[0-9]+$/.
114
+ test(e)}function vr(e,t=new WeakMap){if(t.has(e))return t.get(e);let n=Object.create(V.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=ie(oe(e.structure,t)),n._installOperationMethods(),
116
- Object.freeze(n)}function oe(e,t=new WeakMap){if(e===null||typeof e!="object")return e;if(Re(e))return Pr(e,t);if(e instanceof
116
+ Object.freeze(n)}function oe(e,t=new WeakMap){if(e===null||typeof e!="object")return e;if(Re(e))return vr(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
- 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(oe(o,t));return r}if(!_(e))
119
- return e;let n={};t.set(e,n);for(let[r,o]of Object.entries(e))m(n,r,oe(o,t));return n}function ie(e,t=new WeakSet){if(e===
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(oe(o,t));return r}if(!T(e))
119
+ return e;let n={};t.set(e,n);for(let[r,o]of Object.entries(e))p(n,r,oe(o,t));return n}function ie(e,t=new WeakSet){if(e===
120
120
  null||typeof e!="object"||t.has(e)||Re(e))return e;if(t.add(e),Array.isArray(e))for(let n of e)ie(n,t);else for(let n of Reflect.
121
- ownKeys(e))ie(e[n],t);return Object.freeze(e)}function we(e){return ie(oe(e))}function Ie(e,t,n=""){if(!Re(e)||!Array.isArray(
121
+ ownKeys(e))ie(e[n],t);return Object.freeze(e)}function _e(e){return ie(oe(e))}function Ie(e,t,n=""){if(!Re(e)||!Array.isArray(
122
122
  t)||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)
123
- return i;let s=gt(n,r);return bt(e,i,o,s)}function bt(e,t,n,r){if(t?.type==="object"){let o=e._resolveObjectFieldMode(r,
123
+ return i;let s=St(n,r);return Ot(e,i,o,s)}function Ot(e,t,n,r){if(t?.type==="object"){let o=e._resolveObjectFieldMode(r,
124
124
  t);return o.kind!=="nested"?null:Ie(o.schema,n,r)}if(t?.type==="array"){let o=e._resolveArrayItemsConfig(r,t);if(!o||n.length<
125
- 1)return null;let[i,...s]=n;if(!Nr(i))return null;let c=v(r,i);return o.kind==="schema"?s.length<1?null:Ie(o.schema,s,c):
126
- s.length<1?o.definition:bt(e,o.definition,s,c)}return null}function V(e,t){let n={...e};if(Array.isArray(e.skipFields)){
127
- let r=e.skipFields.map(o=>pt(o,t)).filter(o=>o!==null&&o!=="");r.length>0?n.skipFields=r:delete n.skipFields}if(_(e.skipParams)){
128
- let r={};for(let[o,i]of Object.entries(e.skipParams)){let s=pt(o,t);s===null||s===""||m(r,s,i)}Object.keys(r).length>0?n.
129
- skipParams=r:delete n.skipParams}return n}var zr=Object.freeze({create:Object.freeze({targetFields:"schema",enforceRequired:!0,
125
+ 1)return null;let[i,...s]=n;if(!Pr(i))return null;let c=z(r,i);return o.kind==="schema"?s.length<1?null:Ie(o.schema,s,c):
126
+ s.length<1?o.definition:Ot(e,o.definition,s,c)}return null}function x(e,t){let n={...e};if(Array.isArray(e.skipFields)){
127
+ let r=e.skipFields.map(o=>mt(o,t)).filter(o=>o!==null&&o!=="");r.length>0?n.skipFields=r:delete n.skipFields}if(T(e.skipParams)){
128
+ let r={};for(let[o,i]of Object.entries(e.skipParams)){let s=mt(o,t);s===null||s===""||p(r,s,i)}Object.keys(r).length>0?n.
129
+ skipParams=r:delete n.skipParams}return n}var Cr=Object.freeze({create:Object.freeze({targetFields:"schema",enforceRequired:!0,
130
130
  applyDefaults:!0,outputFields:"validated",rejectExplicitUndefined:!0}),replace:Object.freeze({targetFields:"schema",enforceRequired:!0,
131
131
  applyDefaults:!0,outputFields:"validated",rejectExplicitUndefined:!0}),patch:Object.freeze({targetFields:"input",enforceRequired:!1,
132
132
  applyDefaults:!1,outputFields:"input",rejectExplicitUndefined:!0})});function yt(e,t,n,r){let o=t[n];if(!r.includes(o))throw new Error(
133
133
  `Operation "${e}" must define ${n} as one of: ${r.join(", ")}.`)}function Ae(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 Cr(e,t){if(typeof t!="ob\
134
+ typeof o!="boolean")throw new Error(`Operation "${e}" must define ${n} as a boolean.`)}function zr(e,t){if(typeof t!="ob\
135
135
  ject"||t===null||Array.isArray(t))throw new Error(`Operation "${e}" must be an object.`);return yt(e,t,"targetFields",["\
136
136
  schema","input"]),Ae(e,t,"enforceRequired"),Ae(e,t,"applyDefaults"),yt(e,t,"outputFields",["validated","input"]),Ae(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
- function vr(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(zr))m(t,n,r);for(let[n,r]of Object.entries(e))m(t,n,Cr(n,r));
141
- return Object.freeze(t)}function St(e){let t=Object.create(null);for(let[n,r]of Object.entries(e))m(t,n,r);return Object.
142
- freeze(t)}function $r(e){let t={...e};return delete t.operation,delete t.mode,t}var k=class{constructor(t,n,r,o={}){this.
143
- structure=t,this.types=St(n),this.validators=St(r),this.operations=vr(o),this._installOperationMethods()}_typeError(t){return this.
139
+ function Lr(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(Cr))p(t,n,r);for(let[n,r]of Object.entries(e))p(t,n,zr(n,r));
141
+ return Object.freeze(t)}function gt(e){let t=Object.create(null);for(let[n,r]of Object.entries(e))p(t,n,r);return Object.
142
+ freeze(t)}function $r(e){let t={...e};return delete t.operation,delete t.mode,t}var V=class{constructor(t,n,r,o={}){this.
143
+ structure=t,this.types=gt(n),this.validators=gt(r),this.operations=Lr(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\
151
151
  n`. Call `validateWith()` or an operation method directly.")}_buildOperationSettings(t,n,r){return{operationName:t,operation:n,
152
152
  targetFieldNames:n.targetFields==="input"?Object.keys(r):Object.keys(this.structure),outputFieldNames:n.outputFields==="\
153
153
  input"?Object.keys(r):Object.keys(this.structure),enforceRequired:n.enforceRequired,applyDefaults:n.applyDefaults,rejectExplicitUndefined:n.
154
- rejectExplicitUndefined,defaultedFields:new Set,isFieldPresent:o=>Object.hasOwn(r,o)}}_assertPlainObjectInput(t,n){if(!_(
154
+ rejectExplicitUndefined,defaultedFields:new Set,isFieldPresent:o=>Object.hasOwn(r,o)}}_assertPlainObjectInput(t,n){if(!T(
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
158
  `Unknown operation "${n}".`);let r=this.operations[n];return{operationName:n,operation:r,validationOptions:$r(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){
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
161
  return Z(t,n)}_resolveArrayItemsConfig(t,n){return Q(t,n)}_resolveObjectValuesConfig(t,n){return U(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 p=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 m=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 d={schema:this,definition:t,value:n,fieldName:r,object:o,
166
+ if(n===""&&l)return p(o,i,null),{errors:{},shouldContinue:!1};let d={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
168
  nullable:u||l,nullOnEmpty:l},throwTypeError:()=>{throw this._typeError(r)},throwParamError:(f,h,E)=>{throw this._paramError(
169
- r,f,h,E)}};try{let f=p(d);if(ft(f))throw new Error(`Type handler for "${t.type}" must be synchronous.`);f!==void 0&&(m(o,
169
+ r,f,h,E)}};try{let f=m(d);if(ft(f))throw new Error(`Type handler for "${t.type}" must be synchronous.`);f!==void 0&&(p(o,
170
170
  i,f),d.value=f)}catch(f){if(f.errorObject)return{errors:this._singleErrorMap(f.errorObject),shouldContinue:!1};throw f}return{
171
171
  errors:{},context:d,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(ft(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
- context:l}=u,p=this._validateNestedValue(t,r,o,i,c,a);return Object.keys(p).length>0?p:(l.value=o[i],this._runFieldValidators(
176
+ context:l}=u,m=this._validateNestedValue(t,r,o,i,c,a);return Object.keys(m).length>0?m:(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,V(i,n));return m(r,o,t.allowAdditionalProperties?this._mergeKnownAndPassthroughObjectFields(
184
- c,t.schema,u.validatedObject):u.validatedObject),x(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.
188
- keys(c)){let p=v(t,l);if(this._fieldToBeSkipped(p,i))continue;let d=a[l];if(d===void 0){s.rejectExplicitUndefined?this._mergeErrors(
189
- u,this._singleErrorMap(this._typeError(p).errorObject)):delete a[l];continue}if(o.kind==="schema"){let h=o.schema._validateWithOperation(
190
- "replace",o.schema.operations.replace,d,V(i,p));m(a,l,h.validatedObject),this._mergeErrors(u,x(h.errors,p));continue}let f=this.
191
- _normalizeAndValidateValue(o.definition,d,p,a,l,c,i,this._buildArrayItemSettings(o.definition,s));this._mergeErrors(u,f)}
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 p=v(t,l);
193
- if(this._fieldToBeSkipped(p,i))continue;if(!Object.hasOwn(c,l)||a[l]===void 0){s.rejectExplicitUndefined?this._mergeErrors(
194
- u,this._singleErrorMap(this._typeError(p).errorObject)):delete a[l];continue}if(o.kind==="schema"){let f=o.schema._validateWithOperation(
195
- "replace",o.schema.operations.replace,a[l],V(i,p));m(a,l,f.validatedObject),this._mergeErrors(u,x(f.errors,p));continue}
196
- let d=this._normalizeAndValidateValue(o.definition,a[l],p,a,l,c,i,this._buildArrayItemSettings(o.definition,s));this._mergeErrors(
183
+ s.operationName,s.operation,a,x(i,n));return p(r,o,t.allowAdditionalProperties?this._mergeKnownAndPassthroughObjectFields(
184
+ c,t.schema,u.validatedObject):u.validatedObject),F(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
+ keys(c)){let m=z(t,l);if(this._fieldToBeSkipped(m,i))continue;let d=a[l];if(d===void 0){s.rejectExplicitUndefined?this._mergeErrors(
189
+ u,this._singleErrorMap(this._typeError(m).errorObject)):delete a[l];continue}if(o.kind==="schema"){let h=o.schema._validateWithOperation(
190
+ "replace",o.schema.operations.replace,d,x(i,m));p(a,l,h.validatedObject),this._mergeErrors(u,F(h.errors,m));continue}let f=this.
191
+ _normalizeAndValidateValue(o.definition,d,m,a,l,c,i,this._buildArrayItemSettings(o.definition,s));this._mergeErrors(u,f)}
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 m=z(t,l);
193
+ if(this._fieldToBeSkipped(m,i))continue;if(!Object.hasOwn(c,l)||a[l]===void 0){s.rejectExplicitUndefined?this._mergeErrors(
194
+ u,this._singleErrorMap(this._typeError(m).errorObject)):delete a[l];continue}if(o.kind==="schema"){let f=o.schema._validateWithOperation(
195
+ "replace",o.schema.operations.replace,a[l],x(i,m));p(a,l,f.validatedObject),this._mergeErrors(u,F(f.errors,m));continue}
196
+ let d=this._normalizeAndValidateValue(o.definition,a[l],m,a,l,c,i,this._buildArrayItemSettings(o.definition,s));this._mergeErrors(
197
197
  u,d)}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
- "function"?u.defaultTo():u.defaultTo,p=this._normalizeDefault(u,l,{fieldPath:a,currentObject:s,containerKey:a,objectBeforeCast:r,
206
- options:o,settings:c});if(this._mergeErrors(i,p.errors),Object.keys(p.errors).length>0)continue;m(s,a,p.value),c.defaultedFields.
205
+ "function"?u.defaultTo():u.defaultTo,m=this._normalizeDefault(u,l,{fieldPath:a,currentObject:s,containerKey:a,objectBeforeCast:r,
206
+ options:o,settings:c});if(this._mergeErrors(i,m.errors),Object.keys(m.errors).length>0)continue;p(s,a,m.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
- c={};for(let a of ht(Object.keys(t))){let u=gt(i,a);if(!Object.hasOwn(this.structure,a))throw new Error(`Unknown schema \
208
+ c={};for(let a of ht(Object.keys(t))){let u=St(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=dt(n);if(this._fieldToBeSkipped(c,i))
211
- return{};let p=Object.hasOwn(r,t),d=r[t],f={};if(!p){if(u&&s.enforceRequired&&a.required&&!this._paramToBeSkipped("requi\
211
+ return{};let m=Object.hasOwn(r,t),d=r[t],f={};if(!m){if(u&&s.enforceRequired&&a.required&&!this._paramToBeSkipped("requi\
212
212
  red",i.skipParams,c)&&this._mergeErrors(f,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(f,A.errors),
215
- Object.keys(A.errors).length===0&&m(o,t,A.value)}return f}if(d===void 0)return u&&s.rejectExplicitUndefined?this._singleErrorMap(
216
- this._typeError(c).errorObject):{};let h={[t]:d};if(u){let T=this._normalizeAndValidateValue(a,d,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),T}if(!l)return{};let E=this._castValue(a,d,c,h,t,r,i,s);
213
+ u&&s.applyDefaults&&a.defaultTo!==void 0){let w=typeof a.defaultTo=="function"?a.defaultTo():a.defaultTo,A=this._normalizeDefault(
214
+ a,w,{fieldPath:c,currentObject:o,containerKey:t,objectBeforeCast:r,options:i,settings:s});this._mergeErrors(f,A.errors),
215
+ Object.keys(A.errors).length===0&&p(o,t,A.value)}return f}if(d===void 0)return u&&s.rejectExplicitUndefined?this._singleErrorMap(
216
+ this._typeError(c).errorObject):{};let h={[t]:d};if(u){let w=this._normalizeAndValidateValue(a,d,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),w}if(!l)return{};let E=this._castValue(a,d,c,h,t,r,i,s);
218
218
  if(Object.keys(E.errors).length>0)return E.errors;if(!E.shouldContinue)return{};let j=this._validateSelectedDescendants(
219
- a,n.children,c,h,t,i,s);return ne(h[t])&&m(o,t,h[t]),j}_validateSelectedDescendants(t,n,r,o,i,s,c){if(t.type==="object"){
219
+ a,n.children,c,h,t,i,s);return ne(h[t])&&p(o,t,h[t]),j}_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(!_(u))return{};let l=a.schema._validateSelectedTree(n,u,V(s,r),{...c,defaultedFields:new Set});
222
- return m(o,i,l.validatedObject),x(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(!T(u))return{};let l=a.schema._validateSelectedTree(n,u,x(s,r),{...c,defaultedFields:new Set});
222
+ return p(o,i,l.validatedObject),F(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 p of ht(Object.keys(i))){if(!/^[0-9]+$/.test(p))throw new Error(`Schema path "${v(
226
- t,p)}" is invalid because array segments must use numeric indexes.`);let d=Number(p),f=v(t,d),h=i[p],E=h.self===!0,j=dt(
227
- h);if(this._fieldToBeSkipped(f,s))continue;if(!Object.hasOwn(u,d)){E&&c.rejectExplicitUndefined&&m(l,f,this._typeError(f).
228
- errorObject);continue}let T=u[d];if(T===void 0){E&&c.rejectExplicitUndefined&&m(l,f,this._typeError(f).errorObject);continue}
229
- if(o.kind==="schema"){if(E){let R=o.schema._validateWithOperation("replace",o.schema.operations.replace,T,V(s,f));ne(R.validatedObject)&&
230
- m(a,d,R.validatedObject),this._mergeErrors(l,x(R.errors,f));continue}if(!j)continue;let I=o.schema._validateSelectedTree(
231
- h.children,T,V(s,f),{...c,operationName:"replace",operation:o.schema.operations.replace,defaultedFields:new Set});ne(I.validatedObject)&&
232
- m(a,d,I.validatedObject),this._mergeErrors(l,x(I.errors,f));continue}let A=this._buildArrayItemSettings(o.definition,c),
233
- O=[T];if(E){let I=this._normalizeAndValidateValue(o.definition,T,f,O,0,u,s,A);Object.hasOwn(O,0)&&O[0]!==void 0?m(a,d,O[0]):
234
- O[0]===null&&m(a,d,null),this._mergeErrors(l,I);continue}if(!j)continue;let L=this._castValue(o.definition,T,f,O,0,u,s,A);
235
- if(Object.keys(L.errors).length>0){this._mergeErrors(l,L.errors);continue}if(!L.shouldContinue)continue;let B=this._validateSelectedDescendants(
236
- o.definition,h.children,f,O,0,s,A);ne(O[0])&&m(a,d,O[0]),this._mergeErrors(l,B)}return l}validateWith(t,n,r={}){if(!Object.
225
+ let a=[],u=n[r],l={};p(n,r,a);for(let m of ht(Object.keys(i))){if(!/^[0-9]+$/.test(m))throw new Error(`Schema path "${z(
226
+ t,m)}" is invalid because array segments must use numeric indexes.`);let d=Number(m),f=z(t,d),h=i[m],E=h.self===!0,j=dt(
227
+ h);if(this._fieldToBeSkipped(f,s))continue;if(!Object.hasOwn(u,d)){E&&c.rejectExplicitUndefined&&p(l,f,this._typeError(f).
228
+ errorObject);continue}let w=u[d];if(w===void 0){E&&c.rejectExplicitUndefined&&p(l,f,this._typeError(f).errorObject);continue}
229
+ if(o.kind==="schema"){if(E){let R=o.schema._validateWithOperation("replace",o.schema.operations.replace,w,x(s,f));ne(R.validatedObject)&&
230
+ p(a,d,R.validatedObject),this._mergeErrors(l,F(R.errors,f));continue}if(!j)continue;let I=o.schema._validateSelectedTree(
231
+ h.children,w,x(s,f),{...c,operationName:"replace",operation:o.schema.operations.replace,defaultedFields:new Set});ne(I.validatedObject)&&
232
+ p(a,d,I.validatedObject),this._mergeErrors(l,F(I.errors,f));continue}let A=this._buildArrayItemSettings(o.definition,c),
233
+ b=[w];if(E){let I=this._normalizeAndValidateValue(o.definition,w,f,b,0,u,s,A);Object.hasOwn(b,0)&&b[0]!==void 0?p(a,d,b[0]):
234
+ b[0]===null&&p(a,d,null),this._mergeErrors(l,I);continue}if(!j)continue;let $=this._castValue(o.definition,w,f,b,0,u,s,A);
235
+ if(Object.keys($.errors).length>0){this._mergeErrors(l,$.errors);continue}if(!$.shouldContinue)continue;let B=this._validateSelectedDescendants(
236
+ o.definition,h.children,f,b,0,s,A);ne(b[0])&&p(a,d,b[0]),this._mergeErrors(l,B)}return l}validateWith(t,n,r={}){if(!Object.
237
237
  hasOwn(this.operations,t))throw new Error(`Unknown operation "${t}".`);let o=this.operations[t];return this._assertPlainObjectInput(
238
238
  t,n),this._validateWithOperation(t,o,n,r)}validateAt(t,n,r={}){this._assertPlainObjectInput("validateAt",n);let o=je(t),
239
- {operationName:i,operation:s,validationOptions:c}=this._resolvePathValidationRequest(r),a=this._validateSelectedTree(mt(
240
- [t]),n,c,this._buildOperationSettings(i,s,n));return{validatedValue:Rr(a.validatedObject,o),errors:a.errors}}validatePaths(t,n,r={}){
239
+ {operationName:i,operation:s,validationOptions:c}=this._resolvePathValidationRequest(r),a=this._validateSelectedTree(pt(
240
+ [t]),n,c,this._buildOperationSettings(i,s,n));return{validatedValue:Nr(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\
242
242
  cts a non-empty array of schema paths.");let{operationName:o,operation:i,validationOptions:s}=this._resolvePathValidationRequest(
243
- r);return this._validateSelectedTree(mt(t),n,s,this._buildOperationSettings(o,i,n))}_installOperationMethods(){for(let t of Object.
243
+ r);return this._validateSelectedTree(pt(t),n,s,this._buildOperationSettings(o,i,n))}_installOperationMethods(){for(let t of Object.
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
- thod.`);this[t]=(n,r={})=>this.validateWith(t,n,r)}}toJsonSchema(t={}){return lt(this,t)}getFieldDefinitions(){return we(
245
+ thod.`);this[t]=(n,r={})=>this.validateWith(t,n,r)}}toJsonSchema(t={}){return lt(this,t)}getFieldDefinitions(){return _e(
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=Ie(this,je(t.trim()));return n===null?null:we(n)}getFieldMessages(t){let n=this.getFieldDefinition(t);
248
- return!n||typeof n.messages!="object"||n.messages===null?Object.freeze({}):we(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:Go,stringify:Lr}=JSON,{keys:Wo}=Object,Mr=String,Dr="string";var Ot="object",Fr=(e,t)=>t;var Et=(e,t,n)=>{let r=Mr(t.push(n)-1);return e.set(n,r),r};var Tt=(e,t,n)=>{let r=t&&typeof t===Ot?(l,p)=>l===""||-1<t.indexOf(l)?p:void 0:t||Fr,o=new Map,i=[],s=[],c=+Et(o,i,r.call(
250
- {"":e},"",e)),a=!c;for(;c<i.length;)a=!0,s[c]=Lr(i[c++],u,n);return"["+s.join(",")+"]";function u(l,p){if(a)return a=!a,
251
- p;let d=r.call(this,l,p);switch(typeof d){case Ot:if(d===null)return d;case Dr:return o.get(d)||Et(o,i,d)}return d}};var Vr=new Set(["true","1","yes","y","on"]),kr=new Set(["false","0","no","n","off"]);function qr(e){return e!==null&&(typeof e==
252
- "object"||typeof e=="function")&&typeof e.then=="function"}function _t(e){if(typeof e=="number")return Number.isFinite(e)?
247
+ ty string.");let n=Ie(this,je(t.trim()));return n===null?null:_e(n)}getFieldMessages(t){let n=this.getFieldDefinition(t);
248
+ return!n||typeof n.messages!="object"||n.messages===null?Object.freeze({}):_e(n.messages)}cleanup(t,n){let r={};for(let o of Object.
249
+ keys(t))Object.hasOwn(this.structure,o)&&this.structure[o][n]&&p(r,o,t[o]);return r}};var{parse:Wo,stringify:kr}=JSON,{keys:Xo}=Object,Mr=String,Dr="string";var bt="object",Fr=(e,t)=>t;var Et=(e,t,n)=>{let r=Mr(t.push(n)-1);return e.set(n,r),r};var wt=(e,t,n)=>{let r=t&&typeof t===bt?(l,m)=>l===""||-1<t.indexOf(l)?m:void 0:t||Fr,o=new Map,i=[],s=[],c=+Et(o,i,r.call(
250
+ {"":e},"",e)),a=!c;for(;c<i.length;)a=!0,s[c]=kr(i[c++],u,n);return"["+s.join(",")+"]";function u(l,m){if(a)return a=!a,
251
+ m;let d=r.call(this,l,m);switch(typeof d){case bt:if(d===null)return d;case Dr:return o.get(d)||Et(o,i,d)}return d}};var Vr=new Set(["true","1","yes","y","on"]),qr=new Set(["false","0","no","n","off"]);function Br(e){return e!==null&&(typeof e==
252
+ "object"||typeof e=="function")&&typeof e.then=="function"}function Tt(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 Ne(e,t){if(Object.is(e,t))return!0;
255
255
  if(e instanceof Date&&t instanceof Date)return e.getTime()===t.getTime();if(e instanceof RegExp&&t instanceof RegExp)return e.
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(!Ne(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)||!Ne(e[o],t[o]))return!1;return!0}var Br={install(e){
259
+ t);if(n.length!==r.length)return!1;for(let o of n)if(!Object.hasOwn(t,o)||!Ne(e[o],t[o]))return!1;return!0}var Ur={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();
263
- return r.definition.noTrim?s:s.trim()}r.throwTypeError()}),t("blob",r=>r.value),t("number",r=>{let o=_t(r.value);return o===
264
- null&&r.throwTypeError(),o}),t("integer",r=>{let o=_t(r.value);return(o===null||!Number.isInteger(o))&&r.throwTypeError(),
265
- o}),t("epochMilliseconds",r=>{let o=me(r.value,864e13);return o===null&&r.throwTypeError(),o}),t("epochSeconds",r=>{let o=me(
263
+ return r.definition.noTrim?s:s.trim()}r.throwTypeError()}),t("blob",r=>r.value),t("number",r=>{let o=Tt(r.value);return o===
264
+ null&&r.throwTypeError(),o}),t("integer",r=>{let o=Tt(r.value);return(o===null||!Number.isInteger(o))&&r.throwTypeError(),
265
+ o}),t("epochMilliseconds",r=>{let o=pe(r.value,864e13);return o===null&&r.throwTypeError(),o}),t("epochSeconds",r=>{let o=pe(
266
266
  r.value,864e10);return o===null&&r.throwTypeError(),o}),t("dateTime",r=>{let o=H(r.definition,r.fieldName);return rt(r.value,
267
267
  o)||r.throwTypeError(),r.value}),t("date",r=>(et(r.value)||r.throwTypeError(),r.value)),t("time",r=>{let o=H(r.definition,
268
268
  r.fieldName);return tt(r.value,o)||r.throwTypeError(),r.value}),t("array",r=>r.definition.type==="array"&&!Array.isArray(
269
- r.value)?[r.value]:r.value),t("object",r=>(_(r.value)||r.throwTypeError(),r.value)),t("serialize",r=>{try{return JSON.stringify(
270
- r.value)}catch{try{return Tt(r.value)}catch{r.throwTypeError()}}}),t("boolean",r=>{if(typeof r.value=="boolean")return r.
269
+ r.value)?[r.value]:r.value),t("object",r=>(T(r.value)||r.throwTypeError(),r.value)),t("serialize",r=>{try{return JSON.stringify(
270
+ r.value)}catch{try{return wt(r.value)}catch{r.throwTypeError()}}}),t("boolean",r=>{if(typeof r.value=="boolean")return 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([...kr,o]),a=new Set([...Vr,i]);if(c.has(s))return!1;if(a.has(s))return!0}r.throwTypeError()}),
274
+ s=r.value.trim().toLowerCase(),c=new Set([...qr,o]),a=new Set([...Vr,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&&D(r.definition)&&
280
+ characters.`,{min:r.parameterValue,actual:r.value.toString().length})}),n("min",r=>{r.value!==void 0&&M(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&&D(r.definition)&&
284
+ characters.`,{max:r.parameterValue,actual:r.value.toString().length})}),n("max",r=>{r.value!==void 0&&M(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=>Ne(i,r.value))||r.throwParamError("ENUM_VALUE","Value must match\
@@ -292,7 +292,7 @@ r.throwParamError("PATTERN","Value does not match the required pattern.",{patter
292
292
  parameterValue){if(r.definition.type!=="boolean")throw new Error(`strictBoolean can only be used on boolean fields (${r.
293
293
  fieldName}).`);typeof r.valueBeforeCast!="boolean"&&r.throwParamError("STRICT_BOOLEAN","Value must be a boolean.")}}),n(
294
294
  "validator",r=>{if(typeof r.parameterValue!="function")throw new Error(`Validator for ${r.fieldName} must be a function.`);
295
- let o=r.parameterValue(r.value,r.object,r);if(qr(o))throw new Error(`Custom validator for "${r.fieldName}" must be synch\
295
+ let o=r.parameterValue(r.value,r.object,r);if(Br(o))throw new Error(`Custom validator for "${r.fieldName}" must be synch\
296
296
  ronous.`);typeof o=="string"&&r.throwParamError("CUSTOM_VALIDATOR_FAILED",o)}),n("uppercase",r=>{if(typeof r.value=="str\
297
297
  ing")return r.value.toUpperCase()}),n("lowercase",r=>{if(typeof r.value=="string")return r.value.toLowerCase()}),n("leng\
298
298
  th",r=>{if(typeof r.value=="string")return r.value.substr(0,r.parameterValue);Number.isInteger(Number(r.valueBeforeCast))&&
@@ -301,152 +301,172 @@ 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",()=>{})}},wt=Br;var It=new WeakMap,Rt=new WeakMap,Nt=Symbol.for("json-rest-schema.registry-metadata");function Ur(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 Hr(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 se(e={}){let t=Object.create(null);
307
- for(let[n,r]of Object.entries(e))m(t,n,r);return t}function Jr(e,t){if(typeof e.install!="function")throw new Error("Plu\
304
+ "nullable",()=>{}),n("nullOnEmpty",()=>{}),n("defaultTo",()=>{})}},_t=Ur;var It=new WeakMap,Rt=new WeakMap,Nt=Symbol.for("json-rest-schema.registry-metadata");function Hr(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 Kr(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 se(e={}){let t=Object.create(null);
307
+ for(let[n,r]of Object.entries(e))p(t,n,r);return t}function Jr(e,t){if(typeof e.install!="function")throw new Error("Plu\
308
308
  gin must have an install method.");e.install(t)}function At(e,t,n){It.set(e,t),Rt.set(e,n),Object.defineProperty(e,Nt,{value:Object.
309
- freeze({getTypes:()=>t,getValidators:()=>n}),enumerable:!1,configurable:!1,writable:!1})}function Kr(e){if(!e||typeof e!=
309
+ freeze({getTypes:()=>t,getValidators:()=>n}),enumerable:!1,configurable:!1,writable:!1})}function Gr(e){if(!e||typeof e!=
310
310
  "object"&&typeof e!="function")return null;let t=It.get(e),n=Rt.get(e);if(t&&n)return{types:t,validators:n};let r=e[Nt];
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 Gr(e){return e.length===1&&Array.isArray(e[0])?e[0]:e}function Wr(e,t){return e===t}function jt(e,t,n){
315
- for(let[r,o]of Object.entries(t)){if(Object.hasOwn(e,r)&&!Wr(e[r],o))throw new Error(`Cannot merge schema factories with\
316
- conflicting ${n} "${r}".`);m(e,r,o)}}function Xr(e,t,n){let r=Gr(n).filter(Boolean);if(r.length<1)return{types:se(e),validators:se(
317
- t)};let o=Object.create(null),i=Object.create(null);for(let s of r){let c=Kr(s);if(!c)throw new Error("Factory sources m\
314
+ validators}:null}function Wr(e){return e.length===1&&Array.isArray(e[0])?e[0]:e}function Xr(e,t){return e===t}function jt(e,t,n){
315
+ for(let[r,o]of Object.entries(t)){if(Object.hasOwn(e,r)&&!Xr(e[r],o))throw new Error(`Cannot merge schema factories with\
316
+ conflicting ${n} "${r}".`);p(e,r,o)}}function Yr(e,t,n){let r=Wr(n).filter(Boolean);if(r.length<1)return{types:se(e),validators:se(
317
+ t)};let o=Object.create(null),i=Object.create(null);for(let s of r){let c=Gr(s);if(!c)throw new Error("Factory sources m\
318
318
  ust be schema instances or schema factories created by json-rest-schema.");jt(o,c.types,"type"),jt(i,c.validators,"valid\
319
319
  ator")}return{types:o,validators:i}}function Pt({types:e={},validators:t={},installCore:n=!0}={}){let r=se(e),o=se(t),i=(s,c={})=>{
320
- let a=new k(s,r,o,c.operations);return At(a,r,o),a};return At(i,r,o),i.addType=(s,c)=>{Ur(r,s,c)},i.addValidator=(s,c)=>{
321
- Hr(o,s,c)},i.use=s=>{Jr(s,{addType:i.addType,addValidator:i.addValidator})},i.createFactory=(...s)=>{let c=Xr(r,o,s);return Pt(
322
- {types:c.types,validators:c.validators,installCore:!1})},n&&i.use(wt),i}var S=Pt({installCore:!0});function b(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))b(e[n],t);return Object.freeze(e)}var Yr=new Set(["create","replace","patch"]),Si=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 K(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 zt(e=null,{defaultMode:t="create",context:n="schema definition.mode"}={}){let r=g(e),o=y(t).toLowerCase()||"cre\
328
- ate",i=Object.prototype.hasOwnProperty.call(r,"mode")?y(r.mode).toLowerCase():"";if(!i)return o;if(!Yr.has(i))throw new TypeError(
329
- `${n} must be one of: create, replace, patch.`);return i}function Zr(e){return!!e&&typeof e=="object"&&!Array.isArray(e)&&(Object.prototype.hasOwnProperty.call(e,"schema")||Object.
320
+ let a=new V(s,r,o,c.operations);return At(a,r,o),a};return At(i,r,o),i.addType=(s,c)=>{Hr(r,s,c)},i.addValidator=(s,c)=>{
321
+ Kr(o,s,c)},i.use=s=>{Jr(s,{addType:i.addType,addValidator:i.addValidator})},i.createFactory=(...s)=>{let c=Yr(r,o,s);return Pt(
322
+ {types:c.types,validators:c.validators,installCore:!1})},n&&i.use(_t),i}var g=Pt({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 Qr=new Set(["create","replace","patch"]),Si=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"}}),Oi=Object.freeze({code:"kernel.validation.invalid",message:"Invalid value."});function J(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 Ct(e=null,{defaultMode:t="create",context:n="schema definition.mode"}={}){let r=S(e),o=y(t).toLowerCase()||"cre\
335
+ ate",i=Object.prototype.hasOwnProperty.call(r,"mode")?y(r.mode).toLowerCase():"";if(!i)return o;if(!Qr.has(i))throw new TypeError(
336
+ `${n} must be one of: create, replace, patch.`);return i}function en(e){return!!e&&typeof e=="object"&&!Array.isArray(e)&&(Object.prototype.hasOwnProperty.call(e,"schema")||Object.
330
337
  prototype.hasOwnProperty.call(e,"mode"))}function P(e,{context:t="schema definition",defaultMode:n=""}={}){if(e==null)return null;
331
- if(!Zr(e))throw new TypeError(`${t} must be a schema definition object.`);let r=g(e);if(!Object.prototype.hasOwnProperty.
332
- call(r,"schema"))throw new TypeError(`${t}.schema is required.`);if(!K(r.schema))throw new TypeError(`${t}.schema must b\
333
- e a json-rest-schema schema instance.`);let o={schema:r.schema},i=y(n).toLowerCase();return o.mode=zt(r,{defaultMode:i||
334
- "patch",context:`${t}.mode`}),Object.freeze(o)}function q(e){let t=P(e,{context:"cursor list item",defaultMode:"replace"});return b({schema:S({items:{type:"array",required:!0,
335
- items:t.schema},nextCursor:{type:"string",required:!1,nullable:!0,minLength:1}}),mode:"replace"})}var en=S({cursor:{type:"id",required:!1},limit:{type:"number",required:!1,min:1,unsigned:!0}}),tn=Object.freeze({schema:en,
336
- mode:"patch"});var Ct=Object.freeze({type:"string",pattern:"^(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d)?$",minLength:5}),rn=Object.freeze(
337
- {...Ct,nullable:!0});var w="^[1-9][0-9]*$",Pe=b({type:"string",minLength:1,pattern:w}),on=b({...Pe,nullable:!0}),sn=b({schema:S({recordId:{...Pe,
338
- required:!0,messages:{pattern:"Record id must be a canonical positive integer string."}}}),mode:"patch"});var an=Object.freeze(["body","query","params","input","output"]);function $(e,t="patch",{context:n="schema definition"}={}){
339
- return P({schema:e,mode:t},{context:n,defaultMode:"patch"})}function ze(e,{context:t="schema definition",defaultMode:n="\
340
- patch"}={}){if(e==null)return e;let r=K(e)?{schema:e,mode:n}:e;return P(r,{context:t,defaultMode:n})}function cn(e,t={}){
338
+ if(!en(e))throw new TypeError(`${t} must be a schema definition object.`);let r=S(e);if(!Object.prototype.hasOwnProperty.
339
+ call(r,"schema"))throw new TypeError(`${t}.schema is required.`);if(!J(r.schema))throw new TypeError(`${t}.schema must b\
340
+ e a json-rest-schema schema instance.`);let o={schema:r.schema},i=y(n).toLowerCase();return o.mode=Ct(r,{defaultMode:i||
341
+ "patch",context:`${t}.mode`}),Object.freeze(o)}function q(e){let t=P(e,{context:"cursor list item",defaultMode:"replace"});return O({schema:g({items:{type:"array",required:!0,
342
+ items:t.schema},nextCursor:{type:"string",required:!1,nullable:!0,minLength:1}}),mode:"replace"})}var tn=g({cursor:{type:"id",required:!1},limit:{type:"number",required:!1,min:1,unsigned:!0}}),rn=Object.freeze({schema:tn,
343
+ mode:"patch"});var zt=Object.freeze({type:"string",pattern:"^(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d)?$",minLength:5}),nn=Object.freeze(
344
+ {...zt,nullable:!0});var qi=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 _="^[1-9][0-9]*$",Pe=O({type:"string",minLength:1,pattern:_}),sn=O({...Pe,nullable:!0}),an=O({schema:g({recordId:{...Pe,
357
+ required:!0,messages:{pattern:{code:"kernel.validation.recordIdInvalid",message:"Record id must be a canonical positive \
358
+ integer string."}}}}),mode:"patch"});var cn=Object.freeze(["body","query","params","input","output"]);function L(e,t="patch",{context:n="schema definition"}={}){
359
+ return P({schema:e,mode:t},{context:n,defaultMode:"patch"})}function ve(e,{context:t="schema definition",defaultMode:n="\
360
+ patch"}={}){if(e==null)return e;let r=J(e)?{schema:e,mode:n}:e;return P(r,{context:t,defaultMode:n})}function un(e,t={}){
341
361
  let n=y(e).toLowerCase();if(n==="output")return"replace";if(n!=="body")return"patch";let r=y(t?.method).toUpperCase();return r===
342
- "POST"?"create":r==="PUT"?"replace":"patch"}function un(e,t=null,n=null){if(!t||typeof t!="object"||Array.isArray(t))throw new TypeError(
343
- `defineResource operations.${e} must be an object.`);let r=g(t),o={...r};n&&typeof n=="object"&&!Array.isArray(n)&&!Object.
344
- hasOwn(r,"messages")&&(o.messages=n);for(let i of an){if(!Object.hasOwn(r,i))continue;let s=cn(i,r);o[i]=ze(r[i],{context:`\
345
- defineResource operations.${e}.${i}`,defaultMode:s})}return b(o)}function ln(e=null,t=null){let n=g(e),r={};for(let[o,i]of Object.
346
- entries(n)){let s=y(o);s&&(r[s]=un(s,i,t))}return Object.freeze(r)}function fn(e,{context:t="defineResource resource.nam\
347
- espace"}={}){let n=y(e);if(!n)throw new TypeError(`${t} requires a non-empty namespace.`);return n}function ae(e={}){let t=g(
348
- e),n=Object.hasOwn(t,"messages")?g(t.messages):null;return b({...t,namespace:fn(t.namespace),...n?{messages:n}:{},operations:ln(
349
- t.operations,n)})}var Ce=8e3,vt=20,mn=200,$t=500,ve={type:"array",required:!1,maxItems:10,items:{type:"string",minLength:1,maxLength:256}},
350
- hn=S({attachmentIds:ve,role:{type:"string",required:!0,enum:["user","assistant"]},content:{type:"string",required:!0,minLength:1,
351
- maxLength:Ce}}),yn=S({locale:{type:"string",required:!1,maxLength:64},timezone:{type:"string",required:!1,maxLength:64}}),
352
- Sn=S({attachmentIds:ve,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:w},input:{type:"string",required:!0,
354
- minLength:1,maxLength:Ce},history:{type:"array",required:!1,maxItems:vt,items:hn},clientContext:{type:"object",required:!1,
355
- schema:yn}}),gn=S({cursor:{type:"id",required:!1},limit:{type:"number",required:!1,min:1,max:mn},status:{type:"string",required:!1,
356
- minLength:1,maxLength:32}}),$e=S({id:{type:"string",required:!0,minLength:1,pattern:w},workspaceId:{type:"string",required:!0,
357
- nullable:!0,minLength:1,pattern:w},title:{type:"string",required:!0},createdByUserId:{type:"string",required:!0,nullable:!0,
358
- minLength:1,pattern:w},status:{type:"string",required:!0},provider:{type:"string",required:!0},model:{type:"string",required:!0},
362
+ "POST"?"create":r==="PUT"?"replace":"patch"}function ln(e,t=null,n=null){if(!t||typeof t!="object"||Array.isArray(t))throw new TypeError(
363
+ `defineResource operations.${e} must be an object.`);let r=S(t),o={...r};n&&typeof n=="object"&&!Array.isArray(n)&&!Object.
364
+ hasOwn(r,"messages")&&(o.messages=n);for(let i of cn){if(!Object.hasOwn(r,i))continue;let s=un(i,r);o[i]=ve(r[i],{context:`\
365
+ defineResource operations.${e}.${i}`,defaultMode:s})}return O(o)}function fn(e=null,t=null){let n=S(e),r={};for(let[o,i]of Object.
366
+ entries(n)){let s=y(o);s&&(r[s]=ln(s,i,t))}return Object.freeze(r)}function dn(e,{context:t="defineResource resource.nam\
367
+ espace"}={}){let n=y(e);if(!n)throw new TypeError(`${t} requires a non-empty namespace.`);return n}function ae(e={}){let t=S(
368
+ e),n=Object.hasOwn(t,"messages")?S(t.messages):null;return O({...t,namespace:dn(t.namespace),...n?{messages:n}:{},operations:fn(
369
+ t.operations,n)})}var Ce=8e3,Lt=20,hn=200,$t=500,ze={type:"array",required:!1,maxItems:10,items:{type:"string",minLength:1,maxLength:256}},
370
+ yn=g({attachmentIds:ze,role:{type:"string",required:!0,enum:["user","assistant"]},content:{type:"string",required:!0,minLength:1,
371
+ maxLength:Ce}}),gn=g({locale:{type:"string",required:!1,maxLength:64},timezone:{type:"string",required:!1,maxLength:64}}),
372
+ Sn=g({attachmentIds:ze,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:_},input:{type:"string",required:!0,
374
+ minLength:1,maxLength:Ce},history:{type:"array",required:!1,maxItems:Lt,items:yn},clientContext:{type:"object",required:!1,
375
+ schema:gn}}),On=g({cursor:{type:"id",required:!1},limit:{type:"number",required:!1,min:1,max:hn},status:{type:"string",required:!1,
376
+ minLength:1,maxLength:32}}),Le=g({id:{type:"string",required:!0,minLength:1,pattern:_},workspaceId:{type:"string",required:!0,
377
+ nullable:!0,minLength:1,pattern:_},title:{type:"string",required:!0},createdByUserId:{type:"string",required:!0,nullable:!0,
378
+ minLength:1,pattern:_},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
- createdAt:{type:"string",required:!0,minLength:1},updatedAt:{type:"string",required:!0,minLength:1}}),bn=S({id:{type:"st\
362
- ring",required:!0,minLength:1,pattern:w},conversationId:{type:"string",required:!0,minLength:1,pattern:w},workspaceId:{type:"\
363
- string",required:!0,nullable:!0,minLength:1,pattern:w},seq:{type:"integer",required:!0,min:1},role:{type:"string",required:!0,
381
+ createdAt:{type:"string",required:!0,minLength:1},updatedAt:{type:"string",required:!0,minLength:1}}),bn=g({id:{type:"st\
382
+ ring",required:!0,minLength:1,pattern:_},conversationId:{type:"string",required:!0,minLength:1,pattern:_},workspaceId:{type:"\
383
+ string",required:!0,nullable:!0,minLength:1,pattern:_},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:w},contentText:{type:"string",required:!0,nullable:!0},createdAt:{type:"\
366
- string",required:!0,minLength:1},metadata:{type:"object",required:!0,additionalProperties:!0}}),On=S({conversationId:{type:"\
367
- id",required:!0}}),En=S({page:{type:"number",required:!1,min:1},pageSize:{type:"number",required:!1,min:1,max:$t}}),Tn=S(
385
+ string",required:!0,nullable:!0,minLength:1,pattern:_},contentText:{type:"string",required:!0,nullable:!0},createdAt:{type:"\
386
+ string",required:!0,minLength:1},metadata:{type:"object",required:!0,additionalProperties:!0}}),En=g({conversationId:{type:"\
387
+ id",required:!0}}),wn=g({page:{type:"number",required:!1,min:1},pageSize:{type:"number",required:!1,min:1,max:$t}}),Tn=g(
368
388
  {page:{type:"integer",required:!0,min:1},pageSize:{type:"integer",required:!0,min:1},total:{type:"integer",required:!0,min:0},
369
- totalPages:{type:"integer",required:!0,min:1},conversation:{type:"object",required:!0,schema:$e},entries:{type:"array",required:!0,
370
- items:bn}}),_n=$($e,"replace"),wn=ae({namespace:"assistant",operations:{chatStream:{method:"POST",body:Sn},conversationsList:{
371
- method:"GET",query:gn,output:q($($e,"replace"))},conversationMessagesList:{method:"GET",params:On,query:En,output:Tn}}});function Lt(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 An(e=""){return y(e).toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"")}function Le(e,{
373
- context:t="requireCrudNamespace"}={}){let n=An(e);if(!n)throw new TypeError(`${t} requires a non-empty namespace.`);return n}
374
- function Mt(e=""){return`${Le(e,{context:"resolveCrudRecordChangedEvent"}).replace(/-/g,"_")}.record.changed`}var jn=Object.freeze(["list","view","create","patch","delete"]),Dt=Object.freeze(["list","view","create","replace","patc\
375
- h","delete"]),In=b({list:{method:"GET",outputKind:"list",includeRealtimeEvent:!0},view:{method:"GET",outputKind:"record"},
389
+ totalPages:{type:"integer",required:!0,min:1},conversation:{type:"object",required:!0,schema:Le},entries:{type:"array",required:!0,
390
+ items:bn}}),_n=L(Le,"replace"),An=ae({namespace:"assistant",operations:{chatStream:{method:"POST",body:Sn},conversationsList:{
391
+ method:"GET",query:On,output:q(L(Le,"replace"))},conversationMessagesList:{method:"GET",params:En,query:wn,output:Tn}}});function kt(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 jn(e=""){return y(e).toLowerCase().replace(/[^a-z0-9-]+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"")}function $e(e,{
393
+ context:t="requireCrudNamespace"}={}){let n=jn(e);if(!n)throw new TypeError(`${t} requires a non-empty namespace.`);return n}
394
+ function Mt(e=""){return`${$e(e,{context:"resolveCrudRecordChangedEvent"}).replace(/-/g,"_")}.record.changed`}var In=Object.freeze(["list","view","create","patch","delete"]),Dt=Object.freeze(["list","view","create","replace","patc\
395
+ h","delete"]),Rn=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
399
  atchBody","body"]},delete:{method:"DELETE",outputKind:"delete"}});function Ft(){return{type:"string",required:!0,minLength:1,
380
- pattern:w}}function Rn(e={}){return y(e?.contract?.lookup?.containerKey)}function Me(e={},t="output"){return Lt(e?.schema,
381
- t)}function Nn(e={}){let t=Me(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:Ft(),...t},r=Rn(e);return r&&
383
- (n[r]={type:"object",required:!1}),$(S(n),"replace",{context:"defineCrudResource derived output"})}function Pn(e={},t="p\
384
- atch",n="patch"){let r=Me(e,t);if(t==="replace"&&Object.keys(r).length===0&&(r=Me(e,"create")),Object.keys(r).length<1){
400
+ pattern:_}}function Nn(e={}){return y(e?.contract?.lookup?.containerKey)}function ke(e={},t="output"){return kt(e?.schema,
401
+ t)}function Pn(e={}){let t=ke(e,"output");if(Object.keys(t).length<1)throw new Error("defineCrudResource derived output \
402
+ requires explicit crud.output or at least one schema field with operations.output.");let n={id:Ft(),...t},r=Nn(e);return r&&
403
+ (n[r]={type:"object",required:!1}),L(g(n),"replace",{context:"defineCrudResource derived output"})}function vn(e={},t="p\
404
+ atch",n="patch"){let r=ke(e,t);if(t==="replace"&&Object.keys(r).length===0&&(r=ke(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
- ved ${t} body requires explicit crud.${t}Body or at least one schema field with ${o}.`)}return $(S(r),n,{context:`define\
387
- CrudResource derived ${t} body`})}function zn(){return $(S({id:Ft(),deleted:{type:"boolean",required:!0}}),"replace",{context:"\
388
- defineCrudResource delete output"})}function Cn(e="",{context:t="crud operation name"}={}){let n=y(e).toLowerCase();if(Dt.
389
- includes(n))return n;throw new Error(`${t} must be one of: ${Dt.join(", ")}. Received: ${JSON.stringify(e)}.`)}function vn(e=""){
390
- let t=In[e];if(t)return t;throw new Error(`createCrudOperationDefinition received unsupported operation "${e}".`)}function $n(e={}){
391
- let t=Array.isArray(e?.crudOperations)?e.crudOperations:jn,n=[],r=new Set;for(let o of t){let i=Cn(o,{context:"defineCru\
392
- dResource crudOperations"});r.has(i)||(r.add(i),n.push(i))}return n}function Ln(e={},t=[]){for(let n of Array.isArray(t)?
406
+ ved ${t} body requires explicit crud.${t}Body or at least one schema field with ${o}.`)}return L(g(r),n,{context:`define\
407
+ CrudResource derived ${t} body`})}function Cn(){return L(g({id:Ft(),deleted:{type:"boolean",required:!0}}),"replace",{context:"\
408
+ defineCrudResource delete output"})}function zn(e="",{context:t="crud operation name"}={}){let n=y(e).toLowerCase();if(Dt.
409
+ includes(n))return n;throw new Error(`${t} must be one of: ${Dt.join(", ")}. Received: ${JSON.stringify(e)}.`)}function Ln(e=""){
410
+ let t=Rn[e];if(t)return t;throw new Error(`createCrudOperationDefinition received unsupported operation "${e}".`)}function $n(e={}){
411
+ let t=Array.isArray(e?.crudOperations)?e.crudOperations:In,n=[],r=new Set;for(let o of t){let i=zn(o,{context:"defineCru\
412
+ dResource crudOperations"});r.has(i)||(r.add(i),n.push(i))}return n}function kn(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 G(e={},t=[],{context:n="defineCrudResource schem\
394
- a definition",defaultMode:r="patch"}={}){let o=Ln(e,t);return o==null?null:ze(o,{context:n,defaultMode:r})}function Mn(e,t={}){
414
+ a definition",defaultMode:r="patch"}={}){let o=kn(e,t);return o==null?null:ve(o,{context:n,defaultMode:r})}function Mn(e,t={}){
395
415
  let n=G(t,["listOutput"],{context:"defineCrudResource crud.listOutput",defaultMode:"replace"});if(n)return n;let r=G(t,[
396
416
  "listItemOutput"],{context:"defineCrudResource crud.listItemOutput",defaultMode:"replace"});return r?q(r):q(e())}function Dn(e={},t={}){
397
417
  let n=null,r=!1;return function(){return r||(n=G(t,["output"],{context:"defineCrudResource crud.output",defaultMode:"rep\
398
- lace"})||Nn(e),r=!0),n}}function Fn(e,t={},n={}){let r=G(n,e.explicitBodyKeys,{context:`defineCrudResource operations.${e.
399
- bodyOperation}.body`,defaultMode:e.bodyMode});return r||Pn(t,e.bodyOperation,e.bodyMode)}function xn(e,t,n={}){if(e.outputKind===
418
+ lace"})||Pn(e),r=!0),n}}function Fn(e,t={},n={}){let r=G(n,e.explicitBodyKeys,{context:`defineCrudResource operations.${e.
419
+ bodyOperation}.body`,defaultMode:e.bodyMode});return r||vn(t,e.bodyOperation,e.bodyMode)}function xn(e,t,n={}){if(e.outputKind===
400
420
  "list")return Mn(t,n);if(e.outputKind==="record")return t();if(e.outputKind==="delete")return G(n,["deleteOutput"],{context:"\
401
- defineCrudResource operations.delete.output",defaultMode:"replace"})||zn();throw new Error(`resolveCrudOutputDefinition \
421
+ defineCrudResource operations.delete.output",defaultMode:"replace"})||Cn();throw new Error(`resolveCrudOutputDefinition \
402
422
  received unsupported output kind "${e.outputKind}".`)}function Vn(e,{namespace:t="",resource:n={},crudConfig:r={},resolveRecordOutputDefinition:o}={}){
403
- let i=vn(e),s={method:i.method};return i.includeRealtimeEvent&&(s.realtime={events:[Mt(t)]}),i.bodyOperation&&(s.body=Fn(
404
- i,n,r)),s.output=xn(i,o,r),s}function kn(e={}){let t=Le(e?.namespace,{context:"createDefaultCrudOperations resource.name\
405
- space"}),n=g(e?.crud),r=Dn(e,n),o={};for(let i of $n(e))o[i]=Vn(i,{namespace:t,resource:e,crudConfig:n,resolveRecordOutputDefinition:r});
406
- return o}function qn(e,t){let n=g(e),r=g(t),o={...g(n.realtime),...g(r.realtime)};return{...n,...r,...Object.keys(o).length>
407
- 0?{realtime:o}:{}}}function Bn(e={},t={}){let n=g(e),r=g(t),o={};for(let[i,s]of Object.entries(n))o[i]=qn(s,r[i]);for(let[
408
- i,s]of Object.entries(r))Object.hasOwn(o,i)||(o[i]=s);return o}function xt(e={}){let t=g(e),{crud:n,crudOperations:r,...o}=t;
409
- return ae({...o,operations:Bn(kn(t),o.operations)})}var ce=12e3,Un=S({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:w},settings:{type:"obj\
411
- ect",required:!0,schema:S({systemPrompt:{type:"string",required:!0,maxLength:ce}})}}),Hn=S({systemPrompt:{type:"string",
423
+ let i=Ln(e),s={method:i.method};return i.includeRealtimeEvent&&(s.realtime={events:[Mt(t)]}),i.bodyOperation&&(s.body=Fn(
424
+ i,n,r)),s.output=xn(i,o,r),s}function qn(e={}){let t=$e(e?.namespace,{context:"createDefaultCrudOperations resource.name\
425
+ space"}),n=S(e?.crud),r=Dn(e,n),o={};for(let i of $n(e))o[i]=Vn(i,{namespace:t,resource:e,crudConfig:n,resolveRecordOutputDefinition:r});
426
+ return o}function Bn(e,t){let n=S(e),r=S(t),o={...S(n.realtime),...S(r.realtime)};return{...n,...r,...Object.keys(o).length>
427
+ 0?{realtime:o}:{}}}function Un(e={},t={}){let n=S(e),r=S(t),o={};for(let[i,s]of Object.entries(n))o[i]=Bn(s,r[i]);for(let[
428
+ i,s]of Object.entries(r))Object.hasOwn(o,i)||(o[i]=s);return o}function xt(e={}){let t=S(e),{crud:n,crudOperations:r,...o}=t;
429
+ return ae({...o,operations:Un(qn(t),o.operations)})}var ce=12e3,Hn=g({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:_},settings:{type:"obj\
431
+ ect",required:!0,schema:g({systemPrompt:{type:"string",required:!0,maxLength:ce}})}}),Kn=g({systemPrompt:{type:"string",
412
432
  required:!1,maxLength:ce,messages:{maxLength:`Assistant system prompt must be at most ${ce} characters.`,default:"Assist\
413
- ant system prompt must be valid text."}}}),Jn=xt({namespace:"assistantConfig",crudOperations:["view","patch"],crud:{output:Un,
414
- patchBody:Hn}});var Vt=b({kind:"jsonapi-resource",responseType:"assistant-settings",responseKind:"record"}),Kn=b({...Vt,requestType:"ass\
415
- istant-settings"}),Gn=b({kind:"jsonapi-resource",responseType:"assistant-conversations",responseKind:"collection"}),Wn=b(
416
- {kind:"jsonapi-resource",responseType:"assistant-conversation-messages",responseKind:"record"});var Xn=Object.freeze({settingsChanged:"assistant.settings.changed"});var kt=Object.freeze(["active","completed","failed","aborted"]),ks=new Set(kt);function ue(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 Ks=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."}}}),Jn=xt({namespace:"assistantConfig",crudOperations:["view","patch"],crud:{output:Hn,
434
+ patchBody:Kn}});var Vt=O({kind:"jsonapi-resource",responseType:"assistant-settings",responseKind:"record"}),Gn=O({...Vt,requestType:"ass\
435
+ istant-settings"}),Wn=O({kind:"jsonapi-resource",responseType:"assistant-conversations",responseKind:"collection"}),Xn=O(
436
+ {kind:"jsonapi-resource",responseType:"assistant-conversation-messages",responseKind:"record"});var Yn=Object.freeze({settingsChanged:"assistant.settings.changed"});var qt=Object.freeze(["active","completed","failed","aborted"]),Xs=new Set(qt);function ue(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 ra=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 De(e){return Y(e,{fallback:null})}function qt(e){return Qn(e,{fallback:null})}function z(e){return Y(e,{fallback:null})}
420
- function Fe(e,t,n){let r=De(n);return r?e.where(t,r):e.whereNull(t)}function xe(e){return!e||typeof e!="object"||Array.isArray(
439
+ /^(?:one moment|please wait)\b/iu]);function Me(e){return Y(e,{fallback:null})}function Bt(e){return Zn(e,{fallback:null})}function v(e){return Y(e,{fallback:null})}
440
+ function De(e,t,n){let r=Me(n);return r?e.where(t,r):e.whereNull(t)}function Fe(e){return!e||typeof e!="object"||Array.isArray(
421
441
  e)?null:JSON.stringify(e)}function W(e){if(!e)return"";let t=e instanceof Date?e:new Date(e);return Number.isNaN(t.getTime())?
422
- "":t.toISOString()}function Bt(e){return Yn(e,{fallback:""})||""}var X=Object.freeze({configTable:"assistant_config",conversationsTable:"assistant_conversations",messagesTable:"assistan\
423
- t_messages",turnRequestsTable:"assistant_turn_requests"}),le="New conversation";function Ht(e){let t=M(e);if(!t)throw new TypeError("conversationsRepository requires surfaceId.");return t}function Ve(e={}){
424
- return{id:qe(e.id,{fallback:""}),workspaceId:qt(e.workspace_id),title:String(e.title||le),createdByUserId:e.created_by_user_id==
442
+ "":t.toISOString()}function Ut(e){return Qn(e,{fallback:""})||""}var X=Object.freeze({configTable:"assistant_config",conversationsTable:"assistant_conversations",messagesTable:"assistan\
443
+ t_messages",turnRequestsTable:"assistant_turn_requests"}),le="New conversation";function Kt(e){let t=k(e);if(!t)throw new TypeError("conversationsRepository requires surfaceId.");return t}function xe(e={}){
444
+ return{id:qe(e.id,{fallback:""}),workspaceId:Bt(e.workspace_id),title:String(e.title||le),createdByUserId:e.created_by_user_id==
425
445
  null?null:qe(e.created_by_user_id,{fallback:null}),status:String(e.status||"active"),provider:String(e.provider||""),model:String(
426
446
  e.model||""),surfaceId:String(e.surface_id||""),startedAt:W(e.started_at),endedAt:e.ended_at?W(e.ended_at):null,messageCount:Number(
427
- e.message_count||0),metadata:ue(e.metadata_json),createdAt:W(e.created_at),updatedAt:W(e.updated_at)}}function to(e={},{
428
- defaultLimit:t=20,maxLimit:n=200}={}){let r=z(e.cursor)||"",o=Number(e.limit),i=Number.isInteger(o)&&o>0?Math.max(1,Math.
429
- min(n,o)):t;return{cursor:r,limit:i}}function ke(e){return e(`${X.conversationsTable} as c`).select("c.*")}function Da(e){
430
- if(!e||typeof e!="function")throw new Error("createConversationsRepository requires knex client.");let t=Zn(e);async function n(a,u={}){
431
- let l=z(a);if(!l)return null;let p=u?.trx||e;if(u.forUpdate===!0){if(!u.trx)throw new TypeError("Locking a conversation \
432
- requires its database transaction.");await p(X.conversationsTable).where({id:l}).update({id:l})}let d=ke(p).where("c.id",
433
- l),f=await Ut(d,u).first();return f?Ve(f):null}async function r(a,{workspaceId:u=null,actorUserId:l=null,surfaceId:p=""}={},d={}){
434
- let f=z(a),h=z(l),E=M(p);if(!f||!h||!E)return null;let j=d?.trx||e;d.forUpdate===!0&&await n(f,d);let T=ke(j).where("c.i\
435
- d",f).where("c.created_by_user_id",h).where("c.surface_id",E);Fe(T,"c.workspace_id",u);let A=await Ut(T,d).first();return A?
436
- Ve(A):null}async function o(a={},u={}){let l=u?.trx||e,p=new Date,d=Ht(a.surfaceId),f=await l(X.conversationsTable).insert(
437
- {workspace_id:De(a.workspaceId),created_by_user_id:z(a.createdByUserId),title:y(a.title)||le,status:y(a.status).toLowerCase()||
438
- "active",provider:y(a.provider),model:y(a.model),surface_id:d,message_count:Math.max(0,Number(a.messageCount||0)),metadata_json:xe(
439
- a.metadata),started_at:a.startedAt?new Date(a.startedAt):p,ended_at:a.endedAt?new Date(a.endedAt):null,created_at:p,updated_at:p}),
440
- h=Bt(f);if(!h)throw new Error("conversationsRepository.create could not resolve inserted id.");return n(h,{trx:l})}async function i(a,u={},l={}){
441
- let p=z(a);if(!p)return null;let d=l?.trx||e,f={};return Object.hasOwn(u,"title")&&(f.title=y(u.title)||le),Object.hasOwn(
447
+ e.message_count||0),metadata:ue(e.metadata_json),createdAt:W(e.created_at),updatedAt:W(e.updated_at)}}function ro(e={},{
448
+ defaultLimit:t=20,maxLimit:n=200}={}){let r=v(e.cursor)||"",o=Number(e.limit),i=Number.isInteger(o)&&o>0?Math.max(1,Math.
449
+ min(n,o)):t;return{cursor:r,limit:i}}function Ve(e){return e(`${X.conversationsTable} as c`).select("c.*")}function Ka(e){
450
+ if(!e||typeof e!="function")throw new Error("createConversationsRepository requires knex client.");let t=eo(e);async function n(a,u={}){
451
+ let l=v(a);if(!l)return null;let m=u?.trx||e;if(u.forUpdate===!0){if(!u.trx)throw new TypeError("Locking a conversation \
452
+ requires its database transaction.");await m(X.conversationsTable).where({id:l}).update({id:l})}let d=Ve(m).where("c.id",
453
+ l),f=await Ht(d,u).first();return f?xe(f):null}async function r(a,{workspaceId:u=null,actorUserId:l=null,surfaceId:m=""}={},d={}){
454
+ let f=v(a),h=v(l),E=k(m);if(!f||!h||!E)return null;let j=d?.trx||e;d.forUpdate===!0&&await n(f,d);let w=Ve(j).where("c.i\
455
+ d",f).where("c.created_by_user_id",h).where("c.surface_id",E);De(w,"c.workspace_id",u);let A=await Ht(w,d).first();return A?
456
+ xe(A):null}async function o(a={},u={}){let l=u?.trx||e,m=new Date,d=Kt(a.surfaceId),f=await l(X.conversationsTable).insert(
457
+ {workspace_id:Me(a.workspaceId),created_by_user_id:v(a.createdByUserId),title:y(a.title)||le,status:y(a.status).toLowerCase()||
458
+ "active",provider:y(a.provider),model:y(a.model),surface_id:d,message_count:Math.max(0,Number(a.messageCount||0)),metadata_json:Fe(
459
+ a.metadata),started_at:a.startedAt?new Date(a.startedAt):m,ended_at:a.endedAt?new Date(a.endedAt):null,created_at:m,updated_at:m}),
460
+ h=Ut(f);if(!h)throw new Error("conversationsRepository.create could not resolve inserted id.");return n(h,{trx:l})}async function i(a,u={},l={}){
461
+ let m=v(a);if(!m)return null;let d=l?.trx||e,f={};return Object.hasOwn(u,"title")&&(f.title=y(u.title)||le),Object.hasOwn(
442
462
  u,"status")&&(f.status=y(u.status).toLowerCase()||"active"),Object.hasOwn(u,"provider")&&(f.provider=y(u.provider)),Object.
443
- hasOwn(u,"model")&&(f.model=y(u.model)),Object.hasOwn(u,"surfaceId")&&(f.surface_id=Ht(u.surfaceId)),Object.hasOwn(u,"me\
463
+ hasOwn(u,"model")&&(f.model=y(u.model)),Object.hasOwn(u,"surfaceId")&&(f.surface_id=Kt(u.surfaceId)),Object.hasOwn(u,"me\
444
464
  ssageCount")&&(f.message_count=Math.max(0,Number(u.messageCount||0))),Object.hasOwn(u,"endedAt")&&(f.ended_at=u.endedAt?
445
- new Date(u.endedAt):null),Object.hasOwn(u,"metadata")&&(f.metadata_json=xe(u.metadata)),Object.keys(f).length>0&&(f.updated_at=
446
- new Date,await d(X.conversationsTable).where({id:p}).update(f)),n(p,{trx:d})}async function s({workspaceId:a=null,actorUserId:u=null,
447
- surfaceId:l="",pagination:p={},filters:d={}}={},f={}){let h=z(u),E=M(l);if(!h||!E)return{items:[],nextCursor:null};let j=f?.
448
- trx||e,{cursor:T,limit:A}=to(p),O=ke(j).where("c.created_by_user_id",h).where("c.surface_id",E);O=Fe(O,"c.workspace_id",
449
- a);let L=y(d.status).toLowerCase();L&&(O=O.where("c.status",L)),T&&(O=O.where("c.id","<",T));let B=await O.orderBy("c.id",
450
- "desc").limit(A+1),I=B.length>A,R=I?B.slice(0,A):B,Jt=R.map(Ve),Kt=I&&R.length>0?qe(R[R.length-1].id,{fallback:null}):null;
451
- return{items:Jt,nextCursor:Kt}}async function c(a){return eo(e,a)}return Object.freeze({withTransaction:t,findById:n,findByIdForActorScope:r,
452
- create:o,updateById:i,listForActorScope:s,transaction:c})}export{Da as createRepository};
465
+ new Date(u.endedAt):null),Object.hasOwn(u,"metadata")&&(f.metadata_json=Fe(u.metadata)),Object.keys(f).length>0&&(f.updated_at=
466
+ new Date,await d(X.conversationsTable).where({id:m}).update(f)),n(m,{trx:d})}async function s({workspaceId:a=null,actorUserId:u=null,
467
+ surfaceId:l="",pagination:m={},filters:d={}}={},f={}){let h=v(u),E=k(l);if(!h||!E)return{items:[],nextCursor:null};let j=f?.
468
+ trx||e,{cursor:w,limit:A}=ro(m),b=Ve(j).where("c.created_by_user_id",h).where("c.surface_id",E);b=De(b,"c.workspace_id",
469
+ a);let $=y(d.status).toLowerCase();$&&(b=b.where("c.status",$)),w&&(b=b.where("c.id","<",w));let B=await b.orderBy("c.id",
470
+ "desc").limit(A+1),I=B.length>A,R=I?B.slice(0,A):B,Jt=R.map(xe),Gt=I&&R.length>0?qe(R[R.length-1].id,{fallback:null}):null;
471
+ return{items:Jt,nextCursor:Gt}}async function c(a){return to(e,a)}return Object.freeze({withTransaction:t,findById:n,findByIdForActorScope:r,
472
+ create:o,updateById:i,listForActorScope:s,transaction:c})}export{Ka as createRepository};