openxiangda-contracts 2.63.0 → 2.69.1

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 (144) hide show
  1. package/dist/ai.d.ts +1 -1
  2. package/dist/ai.d.ts.map +1 -1
  3. package/dist/ai.js +4 -3
  4. package/dist/ai.js.map +1 -1
  5. package/dist/browser.d.ts +6 -0
  6. package/dist/browser.d.ts.map +1 -1
  7. package/dist/browser.js +6 -0
  8. package/dist/browser.js.map +1 -1
  9. package/dist/concurrency.d.ts +1 -1
  10. package/dist/concurrency.d.ts.map +1 -1
  11. package/dist/data-field-validation.js +7 -2
  12. package/dist/data-field-validation.js.map +1 -1
  13. package/dist/field-value-schemas.d.ts +1 -1
  14. package/dist/index.d.ts +10 -0
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +10 -0
  17. package/dist/index.js.map +1 -1
  18. package/dist/native-compiler/actor-authority.d.ts +11 -0
  19. package/dist/native-compiler/actor-authority.d.ts.map +1 -0
  20. package/dist/native-compiler/actor-authority.js +56 -0
  21. package/dist/native-compiler/actor-authority.js.map +1 -0
  22. package/dist/native-compiler/artifact-capacity.d.ts +12 -0
  23. package/dist/native-compiler/artifact-capacity.d.ts.map +1 -0
  24. package/dist/native-compiler/artifact-capacity.js +34 -0
  25. package/dist/native-compiler/artifact-capacity.js.map +1 -0
  26. package/dist/native-compiler/authenticated-public-read.d.ts +18 -0
  27. package/dist/native-compiler/authenticated-public-read.d.ts.map +1 -0
  28. package/dist/native-compiler/authenticated-public-read.js +79 -0
  29. package/dist/native-compiler/authenticated-public-read.js.map +1 -0
  30. package/dist/native-compiler/compiler.d.ts +2 -21
  31. package/dist/native-compiler/compiler.d.ts.map +1 -1
  32. package/dist/native-compiler/compiler.js +203 -46
  33. package/dist/native-compiler/compiler.js.map +1 -1
  34. package/dist/native-compiler/data-business-command.d.ts +3 -1
  35. package/dist/native-compiler/data-business-command.d.ts.map +1 -1
  36. package/dist/native-compiler/data-business-command.js.map +1 -1
  37. package/dist/native-compiler/data-capacity.d.ts +14 -3
  38. package/dist/native-compiler/data-capacity.d.ts.map +1 -1
  39. package/dist/native-compiler/data-capacity.js +11 -3
  40. package/dist/native-compiler/data-capacity.js.map +1 -1
  41. package/dist/native-compiler/data-field.d.ts +22 -0
  42. package/dist/native-compiler/data-field.d.ts.map +1 -1
  43. package/dist/native-compiler/data-field.js +19 -2
  44. package/dist/native-compiler/data-field.js.map +1 -1
  45. package/dist/native-compiler/date-event-projection.d.ts +13 -0
  46. package/dist/native-compiler/date-event-projection.d.ts.map +1 -0
  47. package/dist/native-compiler/date-event-projection.js +71 -0
  48. package/dist/native-compiler/date-event-projection.js.map +1 -0
  49. package/dist/native-compiler/declaration-capacity.d.ts +60 -0
  50. package/dist/native-compiler/declaration-capacity.d.ts.map +1 -0
  51. package/dist/native-compiler/declaration-capacity.js +32 -0
  52. package/dist/native-compiler/declaration-capacity.js.map +1 -0
  53. package/dist/native-compiler/development-backend.d.ts +84 -0
  54. package/dist/native-compiler/development-backend.d.ts.map +1 -0
  55. package/dist/native-compiler/development-backend.js +77 -0
  56. package/dist/native-compiler/development-backend.js.map +1 -0
  57. package/dist/native-compiler/development-configuration.d.ts +65 -0
  58. package/dist/native-compiler/development-configuration.d.ts.map +1 -0
  59. package/dist/native-compiler/development-configuration.js +143 -0
  60. package/dist/native-compiler/development-configuration.js.map +1 -0
  61. package/dist/native-compiler/index.cjs +6 -6
  62. package/dist/native-compiler/index.d.ts +13 -0
  63. package/dist/native-compiler/index.d.ts.map +1 -1
  64. package/dist/native-compiler/index.js +6 -6
  65. package/dist/native-compiler/record-set-guard.d.ts +5 -0
  66. package/dist/native-compiler/record-set-guard.d.ts.map +1 -0
  67. package/dist/native-compiler/record-set-guard.js +27 -0
  68. package/dist/native-compiler/record-set-guard.js.map +1 -0
  69. package/dist/native-compiler/user-candidates.d.ts +9 -1
  70. package/dist/native-compiler/user-candidates.d.ts.map +1 -1
  71. package/dist/native-compiler/user-candidates.js +14 -1
  72. package/dist/native-compiler/user-candidates.js.map +1 -1
  73. package/dist/native-compiler/workflow-approved-delegation.d.ts +39 -0
  74. package/dist/native-compiler/workflow-approved-delegation.d.ts.map +1 -0
  75. package/dist/native-compiler/workflow-approved-delegation.js +94 -0
  76. package/dist/native-compiler/workflow-approved-delegation.js.map +1 -0
  77. package/dist/native-compiler/workflow-business-command.d.ts +2 -2
  78. package/dist/native-compiler/workflow-business-command.d.ts.map +1 -1
  79. package/dist/native-compiler/workflow-business-command.js +8 -4
  80. package/dist/native-compiler/workflow-business-command.js.map +1 -1
  81. package/dist/native-compiler/workflow-completion-deadline.d.ts +41 -0
  82. package/dist/native-compiler/workflow-completion-deadline.d.ts.map +1 -0
  83. package/dist/native-compiler/workflow-completion-deadline.js +40 -0
  84. package/dist/native-compiler/workflow-completion-deadline.js.map +1 -0
  85. package/dist/native-compiler/workflow-correction.d.ts +16 -0
  86. package/dist/native-compiler/workflow-correction.d.ts.map +1 -0
  87. package/dist/native-compiler/workflow-correction.js +42 -0
  88. package/dist/native-compiler/workflow-correction.js.map +1 -0
  89. package/dist/native-compiler/workflow-delegation-administration.d.ts +73 -0
  90. package/dist/native-compiler/workflow-delegation-administration.d.ts.map +1 -1
  91. package/dist/native-compiler/workflow-delegation-administration.js +6 -4
  92. package/dist/native-compiler/workflow-delegation-administration.js.map +1 -1
  93. package/dist/native-compiler/workflow-graph.d.ts +13 -2
  94. package/dist/native-compiler/workflow-graph.d.ts.map +1 -1
  95. package/dist/native-compiler/workflow-graph.js +20 -4
  96. package/dist/native-compiler/workflow-graph.js.map +1 -1
  97. package/dist/native-compiler/workflow-initiator-approval.d.ts +5 -1
  98. package/dist/native-compiler/workflow-initiator-approval.d.ts.map +1 -1
  99. package/dist/native-compiler/workflow-initiator-approval.js +18 -3
  100. package/dist/native-compiler/workflow-initiator-approval.js.map +1 -1
  101. package/dist/native-compiler/workflow-native-stage.d.ts +69 -0
  102. package/dist/native-compiler/workflow-native-stage.d.ts.map +1 -0
  103. package/dist/native-compiler/workflow-native-stage.js +42 -0
  104. package/dist/native-compiler/workflow-native-stage.js.map +1 -0
  105. package/dist/native-compiler/workflow-node-administration.d.ts +5 -1
  106. package/dist/native-compiler/workflow-node-administration.d.ts.map +1 -1
  107. package/dist/native-compiler/workflow-node-administration.js +17 -4
  108. package/dist/native-compiler/workflow-node-administration.js.map +1 -1
  109. package/dist/native-compiler/workflow-owned-subject.d.ts +60 -0
  110. package/dist/native-compiler/workflow-owned-subject.d.ts.map +1 -0
  111. package/dist/native-compiler/workflow-owned-subject.js +69 -0
  112. package/dist/native-compiler/workflow-owned-subject.js.map +1 -0
  113. package/dist/native-compiler/workflow-role-union.d.ts +31 -0
  114. package/dist/native-compiler/workflow-role-union.d.ts.map +1 -0
  115. package/dist/native-compiler/workflow-role-union.js +38 -0
  116. package/dist/native-compiler/workflow-role-union.js.map +1 -0
  117. package/dist/native-compiler/workflow-task-page.d.ts +10 -3
  118. package/dist/native-compiler/workflow-task-page.d.ts.map +1 -1
  119. package/dist/native-compiler/workflow-task-page.js +5 -3
  120. package/dist/native-compiler/workflow-task-page.js.map +1 -1
  121. package/dist/native-version.d.ts +20 -0
  122. package/dist/native-version.d.ts.map +1 -1
  123. package/dist/native-version.js +20 -0
  124. package/dist/native-version.js.map +1 -1
  125. package/dist/native.d.ts +9 -0
  126. package/dist/native.d.ts.map +1 -1
  127. package/dist/native.js.map +1 -1
  128. package/dist/references.d.ts +2 -0
  129. package/dist/references.d.ts.map +1 -1
  130. package/dist/schemas.d.ts +1708 -80
  131. package/dist/schemas.d.ts.map +1 -1
  132. package/dist/schemas.js +147 -27
  133. package/dist/schemas.js.map +1 -1
  134. package/dist/surface.d.ts +1 -0
  135. package/dist/surface.d.ts.map +1 -1
  136. package/dist/surface.js.map +1 -1
  137. package/dist/types.d.ts +87 -7
  138. package/dist/types.d.ts.map +1 -1
  139. package/dist/types.js +2 -2
  140. package/dist/types.js.map +1 -1
  141. package/dist/validation.d.ts.map +1 -1
  142. package/dist/validation.js +26 -0
  143. package/dist/validation.js.map +1 -1
  144. package/package.json +1 -1
@@ -1,9 +1,9 @@
1
- "use strict";var qs=Object.create;var vt=Object.defineProperty;var Js=Object.getOwnPropertyDescriptor;var Gs=Object.getOwnPropertyNames;var zs=Object.getPrototypeOf,Hs=Object.prototype.hasOwnProperty;var Ys=(e,t)=>{for(var o in t)vt(e,o,{get:t[o],enumerable:!0})},Jo=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of Gs(t))!Hs.call(e,i)&&i!==o&&vt(e,i,{get:()=>t[i],enumerable:!(n=Js(t,i))||n.enumerable});return e};var Xs=(e,t,o)=>(o=e!=null?qs(zs(e)):{},Jo(t||!e||!e.__esModule?vt(o,"default",{value:e,enumerable:!0}):o,e)),Qs=e=>Jo(vt({},"__esModule",{value:!0}),e);var cd={};Ys(cd,{DATA_AUDIT_METADATA_FIELDS:()=>Mn,DATA_BUSINESS_COMMAND_INTENT_MAX_BYTES:()=>iu,DATA_BUSINESS_COMMAND_RESOLUTION_SCHEMA:()=>Bs,DATA_BUSINESS_COMMAND_SCHEMA:()=>id,DATA_EVENT_TYPES_V2:()=>En,DATA_FORM_DRAFT_MAX_BYTES:()=>_d,DATA_SUBTABLE_MAX_ROWS:()=>Lt,DATA_SUBTABLE_MAX_TOTAL_ROWS:()=>xt,DATA_SYSTEM_SORT_FIELD_CODES:()=>si,DATA_TRANSACTION_MAX_BYTES:()=>md,DATA_TRANSACTION_MAX_OPERATIONS:()=>pd,ManagedConcurrencyContractError:()=>Qe,NATIVE_CONFIGURATION_VALIDATOR_DIGEST:()=>ad,NATIVE_CONTRACT_CAPACITY_V2:()=>X,NATIVE_DATA_POLICY_EXPRESSION_MAX_CLAUSES:()=>Al,NATIVE_DATA_POLICY_EXPRESSION_MAX_DEPTH:()=>ml,NATIVE_DATA_POLICY_EXPRESSION_MAX_GROUP_ITEMS:()=>_l,NATIVE_DATA_POLICY_EXPRESSION_MAX_LEAVES:()=>gl,NATIVE_DATA_POLICY_EXPRESSION_MAX_OCCURRENCES:()=>El,NATIVE_DATA_QUERY_OPERATORS_V2:()=>ci,NATIVE_ROLE_MEMBERSHIP_BATCH_MAX_BYTES:()=>Xl,NATIVE_ROLE_MEMBERSHIP_BATCH_MAX_ITEMS:()=>Yl,NATIVE_UNIQUE_KEY_MAX_BYTES:()=>Md,NATIVE_UNIQUE_KEY_NORMALIZERS:()=>co,NativeConfigurationCompilerError:()=>yn,NativeDataFieldContractV2Error:()=>Ae,NativeDataPolicyExpressionV2Error:()=>at,NativeDecimalLifecycleContractError:()=>xe,NativeEventActionContractError:()=>sn,NativeRoleMembershipBatchInputError:()=>Sn,NativeScopeSourceFieldPathV2Error:()=>en,NativeUniqueKeyContractError:()=>et,OPENXIANGDA_NATIVE_DATA_FIELD_TYPES_V2:()=>oi,OPENXIANGDA_NATIVE_DATA_SURFACE_KEYS_V2:()=>Ce,OPENXIANGDA_NATIVE_DRAFT_STATE_KEYS_V2:()=>Jt,OPENXIANGDA_NATIVE_SYSTEM_FIELDS_V2:()=>Ut,OPENXIANGDA_NATIVE_SYSTEM_FIELD_MAP_V2:()=>jn,USER_CANDIDATE_MAX_SELECTIONS:()=>ud,USER_CANDIDATE_SCOPE_FIELD_TYPES:()=>Ho,UserCandidateContractError:()=>Ve,WORKFLOW_APPROVAL_EMPTY_PROVIDERS:()=>Oo,WORKFLOW_AUTOMATIC_CC_MAX_RECIPIENTS:()=>el,WORKFLOW_AUTOMATIC_CC_PROVIDERS:()=>Li,WORKFLOW_BUSINESS_STEP_EVENT:()=>tt,WORKFLOW_BUSINESS_STEP_EVENTS:()=>Ao,WORKFLOW_BUSINESS_STEP_FACTS_KEY:()=>pa,WORKFLOW_BUSINESS_STEP_MAX_BYTES:()=>rn,WORKFLOW_BUSINESS_STEP_MAX_RECEIPT_BYTES:()=>Si,WORKFLOW_CONFIGURABLE_OPERATIONS:()=>ln,WORKFLOW_CONFIGURABLE_PROVIDERS:()=>un,WORKFLOW_EVENT_TYPES_V2:()=>In,WORKFLOW_LAUNCH_PREFLIGHT_PROVIDERS:()=>Wi,WORKFLOW_REJECTION_NOTIFICATION_MAX_BYTES:()=>ol,WORKFLOW_REJECTION_NOTIFICATION_SCHEMA:()=>xi,WORKFLOW_ROUTING_MAX_BYTES:()=>ul,WORKFLOW_ROUTING_MAX_MATCHED_RULES:()=>ll,WORKFLOW_ROUTING_MAX_RULES:()=>dl,WORKFLOW_TASK_PAGE_DEFINITION_MAX_BYTES:()=>Bi,WORKFLOW_TASK_PAGE_MAX_BYTES:()=>gn,WORKFLOW_TASK_PAGE_MAX_FIELDS:()=>Mi,WORKFLOW_TASK_SUBTABLE_MAX_ROWS:()=>wo,WORKFLOW_TASK_SUBTABLE_MAX_TOTAL_ROWS:()=>Ki,WorkflowTaskPageError:()=>Ie,applyWorkflowTaskPageValues:()=>Gi,applyWorkflowTaskSubtableRows:()=>Ca,assertNativeRoleMembershipBatchInput:()=>Zc,canonicalDataBusinessIntent:()=>sd,compileNativeApplicationConfiguration:()=>ac,compileNativeEventAction:()=>fo,compileNativeEventCapturePlansV2:()=>Ns,compileRequiredPlatformCapabilitiesV3:()=>bs,compileWorkflowBusinessStepHandlers:()=>an,evaluateWorkflowTaskPageExpression:()=>De,formatWorkflowExpression:()=>Nt,hasDataAuditReadPolicy:()=>Bn,isDataAuditMetadataField:()=>ze,isDataSystemSortField:()=>Kn,isNativeDataQueryOperatorV2:()=>pr,isNativeMultiValueFieldV2:()=>pt,isWorkflowRejectionNotificationSnapshot:()=>Oa,materializeNativeDataQueryPathTypesV2:()=>ra,nativeDataPolicyExpressionLeavesV2:()=>$t,nativeDataPolicyExpressionToCnfV2:()=>Po,nativeDataQueryPathPlanV2:()=>aa,nativeFieldAggregatePlanV2:()=>br,nativeFieldColumnDefinitionV2:()=>vr,nativeFieldDefaultSqlV2:()=>Lr,nativeFieldHasDefaultV2:()=>jr,nativeFieldIndexStatementsV2:()=>Br,nativeFieldRequiresCreateInputV2:()=>mt,nativeFieldSequenceGrantStatementsV2:()=>Mr,nativeFieldSequenceOwnershipStatementsV2:()=>Ur,nativeFieldSequenceStatementsV2:()=>Wr,nativeFieldSupportsFilterV2:()=>Hn,nativeFieldSupportsOperatorV2:()=>Er,nativeFieldSupportsSearchV2:()=>Kt,nativeFieldSupportsSortV2:()=>Ye,nativeOperatorsForFieldV2:()=>zn,nativePhysicalFieldV2:()=>Ei,nativePhysicalFieldsV2:()=>Fr,nativePhysicalObjectNameV2:()=>we,nativeScopeSourceFieldValueV2:()=>Yr,nativeScopeSourceGrantPathSupportedV2:()=>ro,nativeScopeSourceSubjectPathSupportedV2:()=>tn,nativeSubtableConstraintStatementsV2:()=>Kr,nativeUniqueKeysContractVersion:()=>uo,nativeUniqueKeysJsonSchema:()=>da,parseDataBusinessCommandResolution:()=>rd,parseDataFieldUserCandidates:()=>ft,parseDecimalReservationLifecycle:()=>Xt,parseNativeDataFieldsV2:()=>Mt,parseNativeDataResourceInvariantsV2:()=>Un,parseNativeUniqueKeys:()=>lo,projectDataResourceView:()=>Ks,projectNativeDataResourceViewV2:()=>zt,projectWorkflowGraph:()=>Ea,projectWorkflowNodePolicy:()=>vi,quoteNativeIdentifierV2:()=>ae,refreshWorkflowTaskPageFacts:()=>Sa,resolveNativeScopeSourceFieldPathV2:()=>Ze,resolveWorkflowUserCandidates:()=>Qo,selectWorkflowAssignmentRoutingRules:()=>va,serializedDataBytes:()=>tr,userCandidateScopeValue:()=>er,validateDecimalReservationLifecycles:()=>io,validateManagedConcurrency:()=>eo,validateNativeDataDraftStateV2:()=>Xn,validateNativeDataResourceReferencesV2:()=>Wn,validateNativeDataResourceSurfaceV2:()=>Gt,validateUserCandidateReferences:()=>Pn,validateWorkflowAdministration:()=>fn,validateWorkflowApprovalEmptyPolicy:()=>mn,validateWorkflowAssignmentRoutingBindings:()=>ko,validateWorkflowAssignmentRoutingPolicy:()=>wt,validateWorkflowAssignmentRoutingRules:()=>Pa,validateWorkflowAutomaticCc:()=>pn,validateWorkflowBusinessStepHandlerContract:()=>_a,validateWorkflowBusinessStepRequest:()=>ma,validateWorkflowBusinessStepResult:()=>$i,validateWorkflowBusinessStepSchema:()=>It,validateWorkflowBusinessStepSubscriptions:()=>Io,validateWorkflowBusinessSteps:()=>bt,validateWorkflowCommandHandlers:()=>Co,validateWorkflowInitiatorApprovalPolicy:()=>ot,validateWorkflowInstanceCommandPolicies:()=>mo,validateWorkflowLaunchPreflight:()=>_n,validateWorkflowNodeConfigurationPatch:()=>ba,validateWorkflowReadability:()=>No,validateWorkflowRejectionNotification:()=>Ro,validateWorkflowTaskPages:()=>Rt,validateWorkflowUserCandidateBindings:()=>Fn,workflowApprovalCanSkip:()=>Na,workflowAssignmentRoutingFacts:()=>Fa,workflowAssignmentRoutingPolicySchema:()=>Va,workflowAssignmentRoutingSemantic:()=>Xi,workflowBindingAllowsEmptyUsers:()=>To,workflowBusinessCommandInvocationSchema:()=>Ta,workflowBusinessStepFactSchema:()=>yt,workflowBusinessStepHandlerDigest:()=>od,workflowBusinessStepInput:()=>ga,workflowBusinessStepPath:()=>ki,workflowBusinessStepReceiptSignatureSuffix:()=>nd,workflowBusinessStepValueMatches:()=>Et,workflowDelegationMutationRequestSchema:()=>Ms,workflowExpressionPaths:()=>bo,workflowInitiatorApprovalCanComplete:()=>Ia,workflowInstanceCommandDeadlineError:()=>fa,workflowInstanceTerminateCapabilityAllowed:()=>la,workflowInstanceWithdrawalReasonRequired:()=>ua,workflowNodeAllowedOperations:()=>st,workflowOperationCommentRequired:()=>Pi,workflowPolicyTimestamp:()=>po,workflowTaskPageFieldState:()=>Do,workflowTaskPageReplayCoversInvalidation:()=>wa,workflowTaskSubtableRows:()=>Ra});module.exports=Qs(cd);var Go=require("node:crypto");function Zs(e){if(!e||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function $n(e,t){if(e===null)return"null";if(typeof e=="string"||typeof e=="boolean")return JSON.stringify(e);if(typeof e=="number"){if(!Number.isFinite(e))throw new TypeError(`JSON number must be finite: ${t}`);return JSON.stringify(e)}if(Array.isArray(e))return`[${e.map((n,i)=>$n(n,`${t}[${i}]`)).join(",")}]`;if(Zs(e))return`{${Object.keys(e).filter(i=>e[i]!==void 0).sort((i,s)=>i===s?0:i<s?-1:1).map(i=>`${JSON.stringify(i)}:${$n(e[i],`${t}.${i}`)}`).join(",")}}`;let o=e instanceof Date?"Date":e?.constructor?.name||typeof e;throw new TypeError(`Value is not JSON serializable: ${t} (${o})`)}function ne(e){return $n(e,"$")}function Q(e){return(0,Go.createHash)("sha256").update(ne(e)).digest("hex")}var ud=200,Ho=["text.short","uuid","option.single"],kn=/^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$/,Yo=/^[A-Za-z][A-Za-z0-9_]{0,62}$/,Xo=new Set(["__proto__","prototype","constructor"]),Vn=e=>!!e&&typeof e=="object"&&!Array.isArray(e)&&[Object.prototype,null].includes(Object.getPrototypeOf(e)),zo=(e,t)=>Object.keys(e).every(o=>t.includes(o)),Je=(e,t)=>typeof e=="string"&&e.length>0&&e.trim()===e&&e.length<=t,Ve=class extends Error{constructor(o,n){super(`${o}: ${n}`);this.code=o;this.pointer=n}code;pointer};function oe(e,t){throw new Ve(e,t)}function ft(e,t,o){if(e===void 0)return;["user.single","user.multiple"].includes(t)||oe("DATA_USER_CANDIDATES_FIELD_TYPE_INVALID",o),(!Vn(e)||!zo(e,["kind","roleCode","scope","pageSize"])||e.kind!=="app-role"||!Je(e.roleCode,128)||!kn.test(String(e.roleCode)))&&oe("DATA_USER_CANDIDATES_SOURCE_INVALID",o),e.pageSize!==void 0&&(!Number.isSafeInteger(e.pageSize)||Number(e.pageSize)<1||Number(e.pageSize)>50)&&oe("DATA_USER_CANDIDATES_PAGE_SIZE_INVALID",`${o}/pageSize`);let n;if(e.scope!==void 0){let i=e.scope;(!Vn(i)||!zo(i,["dimensionCode","operation","field","value"])||!Je(i.dimensionCode,128)||!kn.test(String(i.dimensionCode))||!Je(i.operation,64)||!kn.test(String(i.operation))||Object.hasOwn(i,"field")===Object.hasOwn(i,"value"))&&oe("DATA_USER_CANDIDATES_SCOPE_INVALID",`${o}/scope`),Object.hasOwn(i,"field")?((!Je(i.field,63)||!Yo.test(String(i.field))||Xo.has(String(i.field)))&&oe("DATA_USER_CANDIDATES_SCOPE_FIELD_INVALID",`${o}/scope/field`),n={dimensionCode:String(i.dimensionCode),operation:String(i.operation),field:String(i.field)}):(Je(i.value,255)||oe("DATA_USER_CANDIDATES_SCOPE_VALUE_INVALID",`${o}/scope/value`),n={dimensionCode:String(i.dimensionCode),operation:String(i.operation),value:String(i.value)})}return{kind:"app-role",roleCode:String(e.roleCode),...n?{scope:n}:{},...e.pageSize===void 0?{}:{pageSize:Number(e.pageSize)}}}function Pn(e,t,o,n){for(let[i,s]of e.entries()){let a=`${n}/${i}/userCandidates`,r=ft(s.userCandidates,s.type,a);if(r&&(t.has(r.roleCode)||oe("DATA_USER_CANDIDATES_ROLE_UNDECLARED",`${a}/roleCode`),r.scope&&!o.has(r.scope.dimensionCode)&&oe("DATA_USER_CANDIDATES_DIMENSION_UNDECLARED",`${a}/scope/dimensionCode`),r.scope?.field)){let c=e.find(l=>l.code===r.scope.field);(!c||!Ho.some(l=>l===c.type))&&oe("DATA_USER_CANDIDATES_SCOPE_FIELD_INVALID",`${a}/scope/field`)}}}function Qo(e,t,o,n){let i=e.subject.factProjection,s=typeof t.inputPath=="string"&&Object.entries(i).some(([l,p])=>(t.inputPath===l||t.inputPath.startsWith(`${l}.`))&&o.get(p)?.userCandidates!==void 0);if(t.candidateField===void 0&&!s)return;(t.provider!=="form_field_users"||!t.candidateField||!Yo.test(t.candidateField)||Xo.has(t.candidateField)||!t.inputPath||i[t.inputPath]!==t.candidateField)&&oe("WORKFLOW_USER_CANDIDATES_FIELD_BINDING_REQUIRED",n),(t.roleCode!==void 0||t.scope!==void 0||t.routing!==void 0)&&oe("WORKFLOW_USER_CANDIDATES_SOURCE_OVERRIDE_FORBIDDEN",n);let a=o.get(t.candidateField),r=a&&ft(a.userCandidates,a.type,`${n}/candidateField`);r||oe("WORKFLOW_USER_CANDIDATES_FIELD_UNDECLARED",`${n}/candidateField`);let c;if(r.scope?.field){let l=Object.entries(i).filter(([,p])=>p===r.scope.field).map(([p])=>p);l.length!==1&&oe("WORKFLOW_USER_CANDIDATES_SCOPE_PROJECTION_REQUIRED",n),c=l[0]}return{fieldCode:a.code,inputPath:t.inputPath,source:r,...c?{scopeInputPath:c}:{}}}function Fn(e,t,o,n,i=new Map){for(let[s,a]of Object.entries(t.bindings))Qo(e,a,o,`${n}/${s}`);for(let[s,a]of Object.entries(e.taskPages||{})){let r=new Set(a.fields.filter(c=>c.readonly!==!0).map(c=>c.code));for(let c of a.fields){let l=o.get(c.code)?.userCandidates?.scope;if(r.has(c.code)&&l?.field&&r.has(l.field)&&oe("WORKFLOW_USER_CANDIDATES_SCOPE_WRITE_FORBIDDEN",`${n}/taskPages/${s}/${c.code}`),!r.has(c.code)||!c.subtable)continue;let p=o.get(c.code)?.subtable?.resourceCode,d=p?i.get(p):void 0;c.subtable.fields.some(u=>u.readonly!==!0&&d?.get(u.code)?.userCandidates)&&oe("WORKFLOW_USER_CANDIDATES_OWNED_FIELD_UNSUPPORTED",`${n}/taskPages/${s}/${c.code}`)}}}function er(e,t){if(!e.scope)return;let o=e.scope.field?t[e.scope.field]:e.scope.value,n=Vn(o)?o.value:o;return Je(n,255)||oe("DATA_USER_CANDIDATES_SCOPE_VALUE_REQUIRED",e.scope.field||"scope"),String(n)}var Lt=100,xt=400,pd=1e3,md=2097152,_d=2097152;function tr(e){try{return new TextEncoder().encode(JSON.stringify(e)).byteLength}catch{return 1/0}}var ni=/^[A-Za-z][A-Za-z0-9_]{0,62}$/,xn=/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/,oi=["text.short","text.long","text.rich","number.integer","number.decimal","boolean","date","time","datetime","date-range","datetime-range","option.single","option.multiple","cascade.single","cascade.multiple","user.single","user.multiple","department.single","department.multiple","resource-ref.single","resource-ref.multiple","image","signature","address","location","uuid","json","file","serial-number","subtable"],nr=new Set(oi),ii=new Set(["option.multiple","cascade.multiple","user.multiple","department.multiple","resource-ref.multiple","file","image","subtable"]),Zo=new Set(["option.single","option.multiple","cascade.single","cascade.multiple"]),ei=new Set(["resource-ref.single","resource-ref.multiple"]),Ut=[{code:"id",type:"uuid",nullable:!1},{code:"revision",type:"number.integer",nullable:!1},{code:"created_by",type:"text.short",nullable:!1},{code:"updated_by",type:"text.short",nullable:!1},{code:"created_at",type:"datetime",nullable:!1},{code:"updated_at",type:"datetime",nullable:!1}],jn=new Map(Ut.map(e=>[e.code,e])),Ae=class extends Error{constructor(o,n){super(o);this.code=o;this.pointer=n;this.name="NativeDataFieldContractV2Error"}code;pointer};function pt(e){return ii.has(e)}function mt(e,t={}){return e.type!=="serial-number"&&t.system!==!0&&e.nullable===!1&&(!pt(e.type)||t.requiredHint===!0)}function Mt(e,t,o=500){Array.isArray(e)||D("NATIVE_ARRAY_REQUIRED",t),e.length===0&&D("NATIVE_DATA_FIELDS_REQUIRED",t),e.length>o&&D("NATIVE_ARRAY_LIMIT_EXCEEDED",t);let n=new Set;return e.map((i,s)=>{let a=`${t}/${s}`,r=pe(i,a);ge(r,["code","type","nullable","indexed","options","source","userCandidates","maxLength","precision","scale","exactDecimal","min","max","rangeBoundary","timePrecision","file","serial","subtable"],a);let c=Ee(r.code,`${a}/code`,63);ni.test(c)||D("NATIVE_FIELD_CODE_INVALID",`${a}/code`),n.has(c)&&D("NATIVE_DATA_FIELD_DUPLICATE",`${a}/code`),n.add(c);let l=Ee(r.type,`${a}/type`,32);nr.has(l)||D("NATIVE_DATA_FIELD_TYPE_INVALID",`${a}/type`);let p=l,d=Ln(r.nullable,`${a}/nullable`),u=Ln(r.indexed,`${a}/indexed`);d===!0&&ii.has(p)&&D("NATIVE_DATA_MULTI_FIELD_NULLABLE_INVALID",`${a}/nullable`);let g=sr(r.options,p,a),I=rr(r.source,p,a),E=ft(r.userCandidates,p,`${a}/userCandidates`),N=cr(r,p,a),y=Ln(r.exactDecimal,`${a}/exactDecimal`);y!==void 0&&p!=="number.decimal"&&D("NATIVE_DATA_FIELD_EXACT_DECIMAL_TYPE_INVALID",`${a}/exactDecimal`);let _=or(r.rangeBoundary,p,a),A=dr(r.file,p,a),T=lr(r.serial,p,a),f=ur(r.subtable,p,a);return{code:c,type:p,...d===void 0?{}:{nullable:d},...u===void 0?{}:{indexed:u},...g?{options:g}:{},...I?{source:I}:{},...E?{userCandidates:E}:{},...N,...y===void 0?{}:{exactDecimal:y},..._?{rangeBoundary:_}:{},...A?{file:A}:{},...T?{serial:T}:{},...f?{subtable:f}:{}}})}function or(e,t,o){let n=`${o}/rangeBoundary`;if(!(t==="date-range"||t==="datetime-range")){e!==void 0&&D("NATIVE_DATA_FIELD_RANGE_BOUNDARY_TYPE_INVALID",n);return}return e!=="closed"&&e!=="half-open"&&D("NATIVE_DATA_FIELD_RANGE_BOUNDARY_REQUIRED",n),e}function Wn(e,t){Array.isArray(e)||D("NATIVE_ARRAY_REQUIRED",t);let o=new Map;e.forEach((n,i)=>{let s=`${t}/${i}`,a=pe(n,s),r=Ee(a.code,`${s}/code`,64);(!xn.test(r)||o.has(r))&&D("NATIVE_RESOURCE_CODE_INVALID",`${s}/code`);let c=pe(a.schema,`${s}/schema`);o.set(r,{pointer:s,fields:Mt(c.fields,`${s}/schema/fields`)})});for(let[n,i]of o){let s=new Map(i.fields.map(r=>[r.code,r]));i.fields.filter(r=>r.type==="subtable").reduce((r,c)=>r+(c.subtable?.maxRows??20),0)>400&&D("NATIVE_DATA_FIELD_SUBTABLE_AGGREGATE_MAX_ROWS_EXCEEDED",`${i.pointer}/schema/fields`),i.fields.forEach((r,c)=>{let l=`${i.pointer}/schema/fields/${c}`;if(r.source&&ir(r.source,s,o,`${l}/source`),r.subtable){let p=o.get(r.subtable.resourceCode);(!p||r.subtable.resourceCode===n)&&D("NATIVE_DATA_FIELD_SUBTABLE_TARGET_MISSING",`${l}/subtable/resourceCode`);let d=p.fields.find(g=>g.code===r.subtable?.foreignKey);(!d||d.type!=="uuid"||d.nullable!==!1)&&D("NATIVE_DATA_FIELD_SUBTABLE_FOREIGN_KEY_INVALID",`${l}/subtable/foreignKey`);let u=p.fields.find(g=>g.code===r.subtable?.orderField);(!u||u.type!=="number.integer"||u.nullable!==!1)&&D("NATIVE_DATA_FIELD_SUBTABLE_ORDER_FIELD_INVALID",`${l}/subtable/orderField`)}})}}function Un(e,t,o){if(e===void 0)return[];(!Array.isArray(e)||e.length>20)&&D("NATIVE_DATA_RESOURCE_INVARIANTS_INVALID",o);let n=new Map(t.map(s=>[s.code,s])),i=new Set;return e.map((s,a)=>{let r=`${o}/${a}`,c=pe(s,r);ge(c,["code","message","expression"],r);let l=Ee(c.code,`${r}/code`,128);(!/^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/.test(l)||i.has(l))&&D("NATIVE_DATA_RESOURCE_INVARIANT_CODE_INVALID",`${r}/code`),i.add(l);let p=Wt(c.message,`${r}/message`,500);p!==void 0&&p.length===0&&D("NATIVE_DATA_RESOURCE_INVARIANT_MESSAGE_INVALID",`${r}/message`);let d=pe(c.expression,`${r}/expression`);if(d.kind==="nonBlankTextWhenOption"){ge(d,["kind","optionField","optionValue","textField"],`${r}/expression`);let _=be(d.optionField,`${r}/expression/optionField`),A=be(d.textField,`${r}/expression/textField`),T=Ee(d.optionValue,`${r}/expression/optionValue`,128),f=n.get(_),b=n.get(A);return(!f||!b)&&D("NATIVE_DATA_RESOURCE_INVARIANT_FIELD_UNKNOWN",`${r}/expression`),(f.type!=="option.single"||!["text.short","text.long"].includes(b.type)||!f.options?.some(h=>h.value===T))&&D("NATIVE_DATA_RESOURCE_INVARIANT_FIELD_TYPES_INVALID",`${r}/expression`),{code:l,...p===void 0?{}:{message:p},expression:{kind:"nonBlankTextWhenOption",optionField:_,optionValue:T,textField:A}}}ge(d,["leftField","operator","rightField"],`${r}/expression`);let u=be(d.leftField,`${r}/expression/leftField`),g=be(d.rightField,`${r}/expression/rightField`),I=n.get(u),E=n.get(g);(!I||!E)&&D("NATIVE_DATA_RESOURCE_INVARIANT_FIELD_UNKNOWN",`${r}/expression`),I.type===E.type||["number.integer","number.decimal"].includes(I.type)&&["number.integer","number.decimal"].includes(E.type)||D("NATIVE_DATA_RESOURCE_INVARIANT_FIELD_TYPES_INVALID",`${r}/expression`);let y=String(d.operator);return["eq","neq","gt","gte","lt","lte"].includes(y)||D("NATIVE_DATA_RESOURCE_INVARIANT_OPERATOR_INVALID",`${r}/expression/operator`),!["eq","neq"].includes(y)&&!["number.integer","number.decimal","date","time","datetime","text.short","text.long","text.rich","serial-number","uuid"].includes(I.type)&&D("NATIVE_DATA_RESOURCE_INVARIANT_FIELD_TYPES_INVALID",`${r}/expression`),{code:l,...p===void 0?{}:{message:p},expression:{leftField:u,operator:y,rightField:g}}})}function ir(e,t,o,n){let i=o.get(e.resourceCode);i||D("NATIVE_DATA_FIELD_SOURCE_TARGET_MISSING",`${n}/resourceCode`);let s=new Map(i.fields.map(r=>[r.code,r])),a=s.get(e.labelField);(!a||!["text.short","text.long"].includes(a.type))&&D("NATIVE_DATA_FIELD_SOURCE_LABEL_INVALID",`${n}/labelField`);for(let r of["searchFields","descriptionFields","snapshotFields"])for(let c of e[r]||[])s.has(c)||D("NATIVE_DATA_FIELD_SOURCE_FIELD_MISSING",`${n}/${r}`);for(let[r,c]of(e.filters||[]).entries())s.has(c.field)||D("NATIVE_DATA_FIELD_SOURCE_FILTER_FIELD_MISSING",`${n}/filters/${r}/field`),"binding"in c&&!t.has(c.binding.field)&&D("NATIVE_DATA_FIELD_SOURCE_BINDING_FIELD_MISSING",`${n}/filters/${r}/binding/field`)}function sr(e,t,o){let n=`${o}/options`;if(e===void 0){Zo.has(t)&&D("NATIVE_DATA_FIELD_OPTIONS_REQUIRED",n);return}(!Zo.has(t)||!Array.isArray(e))&&D("NATIVE_DATA_FIELD_OPTIONS_TYPE_INVALID",n),(e.length<1||e.length>100)&&D("NATIVE_DATA_FIELD_OPTIONS_INVALID",n);let i=0,s=(a,r,c)=>{c>5&&D("NATIVE_DATA_FIELD_OPTIONS_DEPTH_EXCEEDED",r);let l=new Set;return a.map((p,d)=>{i+=1,i>1e3&&D("NATIVE_DATA_FIELD_OPTIONS_COUNT_EXCEEDED",n);let u=`${r}/${d}`,g=pe(p,u);ge(g,["label","value","description","color","children"],u);let I=Ee(g.label,`${u}/label`,500),E=Ee(g.value,`${u}/value`,500);l.has(E)&&D("NATIVE_DATA_FIELD_OPTION_VALUE_DUPLICATE",`${u}/value`),l.add(E);let N=Wt(g.description,`${u}/description`,2e3),y=Wt(g.color,`${u}/color`,64),_;return g.children!==void 0&&((!t.startsWith("cascade.")||!Array.isArray(g.children))&&D("NATIVE_DATA_FIELD_OPTION_CHILDREN_INVALID",`${u}/children`),(g.children.length<1||g.children.length>100)&&D("NATIVE_DATA_FIELD_OPTION_CHILDREN_INVALID",`${u}/children`),_=s(g.children,`${u}/children`,c+1)),{label:I,value:E,...N===void 0?{}:{description:N},...y===void 0?{}:{color:y},..._?{children:_}:{}}})};return s(e,n,1)}function rr(e,t,o){let n=`${o}/source`;if(e===void 0){ei.has(t)&&D("NATIVE_DATA_FIELD_SOURCE_REQUIRED",n);return}ei.has(t)||D("NATIVE_DATA_FIELD_SOURCE_TYPE_INVALID",n);let i=pe(e,n);ge(i,["kind","resourceCode","labelField","searchFields","descriptionFields","snapshotFields","filters","pageSize","loadMode"],n),i.kind!=="resource"&&D("NATIVE_DATA_FIELD_SOURCE_KIND_INVALID",`${n}/kind`);let s=Ee(i.resourceCode,`${n}/resourceCode`,64);xn.test(s)||D("NATIVE_RESOURCE_CODE_INVALID",`${n}/resourceCode`);let a=be(i.labelField,`${n}/labelField`),r=vn(i.searchFields,`${n}/searchFields`,10),c=vn(i.descriptionFields,`${n}/descriptionFields`,10),l=vn(i.snapshotFields,`${n}/snapshotFields`,50),p=Ge(i.pageSize,`${n}/pageSize`,1,100),d;i.loadMode!==void 0&&(["search","all"].includes(String(i.loadMode))||D("NATIVE_DATA_FIELD_SOURCE_LOAD_MODE_INVALID",`${n}/loadMode`),d=i.loadMode);let u=ar(i.filters,`${n}/filters`);return{kind:"resource",resourceCode:s,labelField:a,...r?{searchFields:r}:{},...c?{descriptionFields:c}:{},...l?{snapshotFields:l}:{},...u?{filters:u}:{},...p===void 0?{}:{pageSize:p},...d?{loadMode:d}:{}}}function ar(e,t){if(e!==void 0)return(!Array.isArray(e)||e.length>20)&&D("NATIVE_DATA_FIELD_SOURCE_FILTERS_INVALID",t),e.map((o,n)=>{let i=`${t}/${n}`,s=pe(o,i),a=Object.prototype.hasOwnProperty.call(s,"value"),r=Object.prototype.hasOwnProperty.call(s,"binding");ge(s,a?["field","operator","value"]:["field","operator","binding"],i),a===r&&D("NATIVE_DATA_FIELD_SOURCE_FILTER_VALUE_INVALID",i);let c=be(s.field,`${i}/field`);["eq","in"].includes(String(s.operator))||D("NATIVE_DATA_FIELD_SOURCE_FILTER_OPERATOR_INVALID",`${i}/operator`);let l=s.operator;if(a)return{field:c,operator:l,value:s.value};let p=pe(s.binding,`${i}/binding`);return ge(p,["kind","field"],`${i}/binding`),p.kind!=="field"&&D("NATIVE_DATA_FIELD_SOURCE_BINDING_KIND_INVALID",`${i}/binding/kind`),{field:c,operator:l,binding:{kind:"field",field:be(p.field,`${i}/binding/field`)}}})}function cr(e,t,o){let n={};if(e.maxLength!==void 0&&(["text.short","text.long","text.rich"].includes(t)||D("NATIVE_DATA_FIELD_MAX_LENGTH_TYPE_INVALID",`${o}/maxLength`),n.maxLength=jt(e.maxLength,`${o}/maxLength`,1,1e6)),(e.precision!==void 0||e.scale!==void 0)&&((t!=="number.decimal"||e.precision===void 0)&&D("NATIVE_DATA_FIELD_DECIMAL_CONFIG_INVALID",o),n.precision=jt(e.precision,`${o}/precision`,1,1e3),n.scale=e.scale===void 0?0:jt(e.scale,`${o}/scale`,0,n.precision)),e.min!==void 0||e.max!==void 0){["number.integer","number.decimal"].includes(t)||D("NATIVE_DATA_FIELD_NUMERIC_BOUNDS_TYPE_INVALID",o);let i=ti(e.min,`${o}/min`),s=ti(e.max,`${o}/max`);t==="number.integer"&&[i,s].some(a=>a!==void 0&&!Number.isSafeInteger(a))&&D("NATIVE_DATA_FIELD_NUMERIC_BOUNDS_INVALID",o),i!==void 0&&s!==void 0&&i>s&&D("NATIVE_DATA_FIELD_NUMERIC_BOUNDS_INVALID",o),i!==void 0&&(n.min=i),s!==void 0&&(n.max=s)}return e.timePrecision!==void 0&&((t!=="time"||!["minute","second"].includes(e.timePrecision))&&D("NATIVE_DATA_FIELD_TIME_PRECISION_INVALID",`${o}/timePrecision`),n.timePrecision=e.timePrecision),n}function dr(e,t,o){if(e===void 0)return;let n=`${o}/file`;["file","image","signature"].includes(t)||D("NATIVE_DATA_FIELD_FILE_TYPE_INVALID",n);let i=pe(e,n);ge(i,["maxCount","maxSizeMb","accept"],n);let s=Ge(i.maxCount,`${n}/maxCount`,1,100);t==="signature"&&s!==void 0&&s!==1&&D("NATIVE_DATA_FIELD_SIGNATURE_COUNT_INVALID",`${n}/maxCount`);let a=Ge(i.maxSizeMb,`${n}/maxSizeMb`,1,1024),r;return i.accept!==void 0&&((!Array.isArray(i.accept)||i.accept.length>50)&&D("NATIVE_DATA_FIELD_FILE_ACCEPT_INVALID",`${n}/accept`),r=i.accept.map((c,l)=>Ee(c,`${n}/accept/${l}`,255)),new Set(r).size!==r.length&&D("NATIVE_DATA_FIELD_FILE_ACCEPT_INVALID",`${n}/accept`)),{...s===void 0?{}:{maxCount:s},...a===void 0?{}:{maxSizeMb:a},...r===void 0?{}:{accept:r}}}function lr(e,t,o){let n=`${o}/serial`;if(e===void 0){t==="serial-number"&&D("NATIVE_DATA_FIELD_SERIAL_REQUIRED",n);return}t!=="serial-number"&&D("NATIVE_DATA_FIELD_SERIAL_TYPE_INVALID",n);let i=pe(e,n);ge(i,["prefix","digits","start"],n);let s=Wt(i.prefix,`${n}/prefix`,64),a=Ge(i.digits,`${n}/digits`,1,32),r=Ge(i.start,`${n}/start`,0,Number.MAX_SAFE_INTEGER);return{...s===void 0?{}:{prefix:s},...a===void 0?{}:{digits:a},...r===void 0?{}:{start:r}}}function ur(e,t,o){let n=`${o}/subtable`;if(e===void 0){t==="subtable"&&D("NATIVE_DATA_FIELD_SUBTABLE_REQUIRED",n);return}t!=="subtable"&&D("NATIVE_DATA_FIELD_SUBTABLE_TYPE_INVALID",n);let i=pe(e,n);ge(i,["resourceCode","foreignKey","orderField","maxRows"],n);let s=Ee(i.resourceCode,`${n}/resourceCode`,64);xn.test(s)||D("NATIVE_RESOURCE_CODE_INVALID",`${n}/resourceCode`);let a=be(i.foreignKey,`${n}/foreignKey`),r=be(i.orderField,`${n}/orderField`);r===a&&D("NATIVE_DATA_FIELD_SUBTABLE_ORDER_FIELD_INVALID",`${n}/orderField`);let c=Ge(i.maxRows,`${n}/maxRows`,1,100);return{resourceCode:s,foreignKey:a,orderField:r,...c===void 0?{}:{maxRows:c}}}function vn(e,t,o){if(e===void 0)return;(!Array.isArray(e)||e.length>o)&&D("NATIVE_DATA_FIELD_SOURCE_FIELDS_INVALID",t);let n=e.map((i,s)=>be(i,`${t}/${s}`));return new Set(n).size!==n.length&&D("NATIVE_DATA_FIELD_SOURCE_FIELDS_INVALID",t),n}function be(e,t){let o=Ee(e,t,63);return ni.test(o)||D("NATIVE_FIELD_CODE_INVALID",t),o}function pe(e,t){return(!e||typeof e!="object"||Array.isArray(e))&&D("NATIVE_OBJECT_REQUIRED",t),e}function ge(e,t,o){let n=new Set(t);for(let i of Object.keys(e))n.has(i)||D("NATIVE_PROPERTY_UNKNOWN",`${o}/${i}`)}function Ee(e,t,o){return(typeof e!="string"||e.length===0||e.length>o)&&D("NATIVE_STRING_INVALID",t),e}function Wt(e,t,o){if(e!==void 0)return(typeof e!="string"||e.length>o)&&D("NATIVE_STRING_INVALID",t),e}function Ln(e,t){if(e!==void 0)return typeof e!="boolean"&&D("NATIVE_BOOLEAN_REQUIRED",t),e}function Ge(e,t,o,n){if(e!==void 0)return jt(e,t,o,n)}function ti(e,t){if(e!==void 0)return(typeof e!="number"||!Number.isFinite(e))&&D("NATIVE_NUMBER_REQUIRED",t),e}function jt(e,t,o,n){return(!Number.isSafeInteger(e)||Number(e)<o||Number(e)>n)&&D("NATIVE_INTEGER_OUT_OF_RANGE",t),Number(e)}function D(e,t){throw new Ae(e,t)}var Mn=["created_by","updated_by","created_at","updated_at"];function ze(e){return Mn.includes(e)}function Bn(e){return Mn.some(t=>Object.prototype.hasOwnProperty.call(e.fieldPolicies||{},t))}var si=Ut.map(e=>e.code);function Kn(e){return si.includes(e)}var ci=["eq","neq","gt","gte","lt","lte","contains","startsWith","endsWith","in","between","has","hasAny","hasAll","overlaps","containedBy","jsonContains","isEmpty","isNotEmpty"],fr=new Set(ci);function pr(e){return fr.has(String(e))}var qn=["eq","neq","contains","startsWith","endsWith","in","isEmpty","isNotEmpty"],_t=["eq","neq","gt","gte","lt","lte","between","in","isEmpty"],mr=["eq","neq","in","isEmpty"],Bt=["eq","neq","in","isEmpty","isNotEmpty"],He=["has","hasAny","hasAll","isEmpty","isNotEmpty"],ri=["overlaps","contains","containedBy","isEmpty"],Jn=["jsonContains","isEmpty","isNotEmpty"],Gn=["isEmpty","isNotEmpty"],_r={"text.short":qn,"text.long":qn,"text.rich":qn,"number.integer":_t,"number.decimal":_t,boolean:mr,date:_t,time:_t,datetime:_t,"date-range":ri,"datetime-range":ri,"option.single":Bt,"option.multiple":He,"cascade.single":He,"cascade.multiple":He,"user.single":Bt,"user.multiple":He,"department.single":Bt,"department.multiple":He,"resource-ref.single":Bt,"resource-ref.multiple":He,file:Gn,image:Gn,signature:Gn,address:Jn,location:Jn,uuid:["eq","neq","in","isEmpty"],json:Jn,"serial-number":["eq","neq","in","contains","startsWith"],subtable:[]},gr=new Set(["text.short","text.long","text.rich","option.single","user.single","department.single","resource-ref.single","serial-number"]),Ar=new Set(["option.multiple","cascade.single","cascade.multiple","user.multiple","department.multiple","resource-ref.multiple","file","image","signature","address","location","json","subtable"]);function zn(e){return _r[e]}function Er(e,t){return zn(e).includes(t)}function Kt(e){return gr.has(e)}function Ye(e){return!Ar.has(e)}function Hn(e){return zn(e).length>0}var ai=new Set(["number.integer","number.decimal"]),di=new Set(["text.short","text.long","number.integer","number.decimal","date","time","datetime","serial-number"]),Ir=new Set([...di,"boolean","uuid"]),yr=new Set(["option.single","user.single","department.single","resource-ref.single"]);function br(e,t){return t==="sum"||t==="avg"?ai.has(e)?{valueExpression:"column",numericResult:!0}:null:t==="min"||t==="max"?di.has(e)?{valueExpression:"column",numericResult:ai.has(e)}:null:yr.has(e)?{valueExpression:"snapshot-value",numericResult:!0}:Ir.has(e)?{valueExpression:"column",numericResult:!0}:null}var Jt=["version","maxBytes","fields"];function Xn(e,t){if(e===void 0)return;let o=Yn(e,t);li(o,Jt,t);let n=qt(o.version,`${t}/version`,1,1e6),i=qt(o.maxBytes,`${t}/maxBytes`,2,196608);(!n||!i)&&de("NATIVE_DATA_DRAFT_STATE_SCHEMA_INVALID",t);let s=Yn(o.fields,`${t}/fields`),a=Object.entries(s);(!a.length||a.length>50)&&de("NATIVE_DATA_DRAFT_STATE_FIELDS_INVALID",`${t}/fields`);for(let[r,c]of a){let l=`${t}/fields/${r}`;/^[A-Za-z][A-Za-z0-9_]{0,62}$/.test(r)||de("NATIVE_DATA_DRAFT_STATE_FIELD_CODE_INVALID",l);let p=Yn(c,l),d=ui(p.type,`${l}/type`,32),u=d==="string"?["type","required","maxLength","enum"]:d==="json.object"?["type","required","maxBytes"]:["type","required"];if(["string","number","integer","boolean","json.object"].includes(d)||de("NATIVE_DATA_DRAFT_STATE_FIELD_TYPE_INVALID",`${l}/type`),li(p,u,l),Or(p.required,`${l}/required`),d==="string"){let g=qt(p.maxLength,`${l}/maxLength`,1,196608);g||de("NATIVE_DATA_DRAFT_STATE_FIELD_INVALID",l),p.enum!==void 0&&Nr(p.enum,`${l}/enum`,100,!1).some(E=>E.length>g)&&de("NATIVE_DATA_DRAFT_STATE_FIELD_INVALID",`${l}/enum`)}else if(d==="json.object"){let g=qt(p.maxBytes,`${l}/maxBytes`,2,65536);(!g||g>i)&&de("NATIVE_DATA_DRAFT_STATE_FIELD_INVALID",l)}}}function Nr(e,t,o,n){(!Array.isArray(e)||!n&&e.length===0||e.length>o)&&de("NATIVE_DATA_SURFACE_STRING_ARRAY_INVALID",t);let i=e.map((s,a)=>ui(s,`${t}/${a}`,255));return new Set(i).size!==i.length&&de("NATIVE_DATA_SURFACE_STRING_ARRAY_INVALID",t),i}function Yn(e,t){return(!e||typeof e!="object"||Array.isArray(e))&&de("NATIVE_OBJECT_REQUIRED",t),e}function li(e,t,o){let n=new Set(t);for(let i of Object.keys(e))n.has(i)||de("NATIVE_PROPERTY_UNKNOWN",`${o}/${i}`)}function ui(e,t,o){return(typeof e!="string"||e.length===0||e.length>o)&&de("NATIVE_STRING_INVALID",t),e}function Or(e,t){e!==void 0&&typeof e!="boolean"&&de("NATIVE_BOOLEAN_REQUIRED",t)}function qt(e,t,o,n){return(!Number.isSafeInteger(e)||Number(e)<o||Number(e)>n)&&de("NATIVE_INTEGER_INVALID",t),Number(e)}function de(e,t){throw new Ae(e,t)}var Tr=500,Ce={surface:["mutationOwner","generated","fields","list","form","detail","mobile","views"],generated:["list","detail","create","update","delete"],field:["label","type","widget","section","requiredHint","system","hidden","readCapabilities","createCapabilities","updateCapabilities","maxLength","precision","scale","exactDecimal","min","max","rangeBoundary","maxCount","maxSizeMb","accept","options","list","searchable","sortable","source","userCandidates","timePrecision","serial","subtable"],list:["actions","fieldOrder","defaultPageSize","searchableFields","filterFields","defaultSort"],defaultSort:["field","order"],form:["layout","fieldOrder","draftState"],detail:["layout","fieldOrder"],layout:["layout","fieldOrder","draftState"],draftState:Jt,mobile:["enabled"]},hr={"text.short":["text","email","phone"],"text.long":["textarea"],"text.rich":["rich-text"],"number.integer":["number","rating"],"number.decimal":["number","money","percent"],boolean:["switch"],date:["date"],time:["time"],datetime:["datetime"],"date-range":["date-range"],"datetime-range":["datetime-range"],"option.single":["select","radio"],"option.multiple":["multi-select","checkbox"],"cascade.single":["cascade"],"cascade.multiple":["cascade"],"user.single":["directory-user"],"user.multiple":["directory-user"],"department.single":["directory-department","scope"],"department.multiple":["directory-department","scope"],"resource-ref.single":["select","radio","resource"],"resource-ref.multiple":["multi-select","checkbox","resource"],file:["attachment"],image:["image"],signature:["signature"],address:["address"],location:["location"],uuid:["readonly"],json:["json"],"serial-number":["readonly"],subtable:["subtable"]};function Gt(e,t,o){if(e===void 0)return;let n=re(e,o);Ne(n,Ce.surface,o);let i=n.mutationOwner===void 0?"native":Se(n.mutationOwner,`${o}/mutationOwner`,16);["native","action","readonly","workflow","queued-command"].includes(i)||j("NATIVE_DATA_SURFACE_MUTATION_OWNER_INVALID",`${o}/mutationOwner`);let s=n.generated===void 0?{}:re(n.generated,`${o}/generated`);Ne(s,Ce.generated,`${o}/generated`);for(let c of Ce.generated)Zn(s[c],`${o}/generated/${c}`);if(i!=="native")for(let c of["create","update","delete"])s[c]===!0&&j("NATIVE_DATA_SURFACE_MUTATION_OWNER_CONFLICT",`${o}/generated/${c}`);let a=new Map(t.map(c=>[c.code,c])),r=re(n.fields,`${o}/fields`);for(let c of Object.keys(r))a.has(c)||j("NATIVE_DATA_SURFACE_FIELD_MISSING",`${o}/fields/${c}`);for(let c of t)Object.prototype.hasOwnProperty.call(r,c.code)||j("NATIVE_DATA_SURFACE_FIELD_REQUIRED",`${o}/fields/${c.code}`),Cr(r[c.code],c,`${o}/fields/${c.code}`);for(let c of["create","update"]){let l=s[c]??i==="native",p=t.some(d=>{let u=re(r[d.code],`${o}/fields/${d.code}`);return pi(d,u,c)});l&&!p&&j("NATIVE_DATA_SURFACE_WRITABLE_FIELDS_REQUIRED",`${o}/generated/${c}`)}if(Sr(n.list,a,`${o}/list`),fi(n.form,a,`${o}/form`,"form"),fi(n.detail,a,`${o}/detail`,"detail"),n.mobile!==void 0){let c=re(n.mobile,`${o}/mobile`);Ne(c,Ce.mobile,`${o}/mobile`),Zn(c.enabled,`${o}/mobile/enabled`)}Rr(n,t,o)}function zt(e,t){let o=e.views?.find(i=>i.code===t);o||j("NATIVE_DATA_VIEW_NOT_FOUND",`/surface/views/${t}`);let n=new Map((o.sections||[]).flatMap(i=>i.fields.map(s=>[s,i.title])));return{mutationOwner:e.mutationOwner||"native",generated:o.generated,list:o.list,form:o.form,detail:o.detail,mobile:o.mobile,fields:Object.fromEntries(Object.entries(e.fields).map(([i,s])=>{let a={...s};delete a.section;let r=n.get(i);return[i,{...a,...r?{section:r}:{},list:o.list.fieldOrder.includes(i)}]}))}}function Rr(e,t,o){if(e.views===void 0)return;(!Array.isArray(e.views)||e.views.length>20)&&j("NATIVE_DATA_VIEWS_LIMIT_INVALID",`${o}/views`);let n=new Set;e.views.forEach((i,s)=>{let a=`${o}/views/${s}`,r=re(i,a);Ne(r,["code","name","generated","list","form","detail","mobile","sections"],a);let c=Se(r.code,`${a}/code`,64);(!/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/.test(c)||n.has(c))&&j("NATIVE_DATA_VIEW_CODE_INVALID",`${a}/code`),n.add(c),Se(r.name,`${a}/name`,255),re(r.generated,`${a}/generated`),re(r.mobile,`${a}/mobile`);for(let p of["list","detail","create","update","delete"])typeof r.generated[p]!="boolean"&&j("NATIVE_DATA_VIEW_OPERATION_INVALID",`${a}/generated/${p}`);typeof r.mobile.enabled!="boolean"&&j("NATIVE_DATA_VIEW_MOBILE_INVALID",`${a}/mobile/enabled`);for(let p of["list","form","detail"]){let d=re(r[p],`${a}/${p}`),u=Xe(d.fieldOrder,`${a}/${p}/fieldOrder`,500,!0);for(let g of u){let I=e.fields[g];(!I||(I.hidden??I.system)===!0)&&j("NATIVE_DATA_VIEW_FIELD_INVALID",`${a}/${p}/fieldOrder`)}}if(r.sections!==void 0){(!Array.isArray(r.sections)||r.sections.length>100)&&j("NATIVE_DATA_VIEW_SECTIONS_INVALID",`${a}/sections`);let p=new Set;r.sections.forEach((d,u)=>{let g=`${a}/sections/${u}`,I=re(d,g);Ne(I,["title","fields"],g),Se(I.title,`${g}/title`,255);for(let E of Xe(I.fields,`${g}/fields`,100,!0)){let N=e.fields[E];(!N||(N.hidden??N.system)===!0||p.has(E))&&j("NATIVE_DATA_VIEW_FIELD_INVALID",`${g}/fields`),p.add(E)}})}let l=zt(e,c);if(Gt(l,t,a),r.generated.create!==!1&&(e.mutationOwner||"native")==="native")for(let p of t)mt(p,e.fields[p.code])&&pi(p,e.fields[p.code],"create")&&!r.form.fieldOrder.includes(p.code)&&j("NATIVE_DATA_VIEW_CREATE_REQUIRED_FIELD_MISSING",`${a}/form/fieldOrder`)})}function pi(e,t,o){if(e.type==="serial-number"||t.system===!0)return!1;let n=t[`${o}Capabilities`];return Array.isArray(n)&&n.length>0}function Cr(e,t,o){let n=re(e,o);Ne(n,Ce.field,o),Se(n.label,`${o}/label`,500),n.type!==t.type&&j("NATIVE_DATA_SURFACE_FIELD_TYPE_MISMATCH",`${o}/type`);let i=Se(n.widget,`${o}/widget`,64);hr[t.type].includes(i)||j("NATIVE_DATA_SURFACE_WIDGET_INCOMPATIBLE",`${o}/widget`),$r(n.section,`${o}/section`,255);for(let s of["requiredHint","system","hidden","list","searchable","sortable"])Zn(n[s],`${o}/${s}`);n.searchable===!0&&!Kt(t.type)&&j("NATIVE_DATA_SURFACE_SEARCH_UNSUPPORTED",`${o}/searchable`),n.sortable===!0&&!Ye(t.type)&&j("NATIVE_DATA_SURFACE_SORT_UNSUPPORTED",`${o}/sortable`);for(let s of["readCapabilities","createCapabilities","updateCapabilities"])Xe(n[s],`${o}/${s}`,100,!0);if(n.maxCount!==void 0&&(!Number.isSafeInteger(n.maxCount)||Number(n.maxCount)<1||Number(n.maxCount)>100)&&j("NATIVE_DATA_SURFACE_MAX_COUNT_INVALID",`${o}/maxCount`),n.maxSizeMb!==void 0&&(!Number.isSafeInteger(n.maxSizeMb)||Number(n.maxSizeMb)<1||Number(n.maxSizeMb)>1024)&&j("NATIVE_DATA_SURFACE_MAX_SIZE_INVALID",`${o}/maxSizeMb`),n.accept!==void 0){let s=Array.isArray(n.accept)?n.accept:[n.accept];Xe(s,`${o}/accept`,50,!1)}for(let s of["maxLength","precision","scale","exactDecimal","min","max","rangeBoundary","options","source","userCandidates","timePrecision","serial","subtable"])wr(n,t,s,o);Dr(n,t,o)}function Sr(e,t,o){if(e===void 0)return;let n=re(e,o);if(Ne(n,Ce.list,o),n.actions!==void 0){let i=re(n.actions,`${o}/actions`);Ne(i,["import","export"],`${o}/actions`);for(let s of["import","export"])i[s]!==void 0&&typeof i[s]!="boolean"&&j("NATIVE_DATA_SURFACE_LIST_ACTION_INVALID",`${o}/actions/${s}`)}if(n.fieldOrder!==void 0)for(let i of Xe(n.fieldOrder,`${o}/fieldOrder`,500,!0))t.has(i)||j("NATIVE_DATA_SURFACE_LIST_FIELD_INVALID",`${o}/fieldOrder`);n.defaultPageSize!==void 0&&(!Number.isSafeInteger(n.defaultPageSize)||Number(n.defaultPageSize)<1||Number(n.defaultPageSize)>200)&&j("NATIVE_DATA_SURFACE_PAGE_SIZE_INVALID",`${o}/defaultPageSize`);for(let[i,s]of[["searchableFields",Kt],["filterFields",Hn]]){if(n[i]===void 0)continue;let a=Xe(n[i],`${o}/${i}`,100,!0);for(let r of a){let c=t.get(r);(!c||!s(c.type))&&j("NATIVE_DATA_SURFACE_LIST_FIELD_INVALID",`${o}/${i}`)}}if(n.defaultSort!==void 0){let i=re(n.defaultSort,`${o}/defaultSort`);Ne(i,Ce.defaultSort,`${o}/defaultSort`);let s=Se(i.field,`${o}/defaultSort/field`,63),a=t.get(s);!Kn(s)&&(!a||!Ye(a.type))&&j("NATIVE_DATA_SURFACE_SORT_UNSUPPORTED",`${o}/defaultSort/field`),i.order!==void 0&&!["asc","desc"].includes(i.order)&&j("NATIVE_DATA_SURFACE_SORT_ORDER_INVALID",`${o}/defaultSort/order`)}}function fi(e,t,o,n){if(e===void 0)return;let i=re(e,o);if(Ne(i,Ce[n],o),i.layout!==void 0&&!["flat","sections"].includes(i.layout)&&j("NATIVE_DATA_SURFACE_LAYOUT_INVALID",`${o}/layout`),i.fieldOrder!==void 0){let s=`${o}/fieldOrder`;(!Array.isArray(i.fieldOrder)||i.fieldOrder.length>t.size||i.fieldOrder.length>Tr)&&j("NATIVE_DATA_SURFACE_FIELD_ORDER_INVALID",s);let a=i.fieldOrder.map((r,c)=>Se(r,`${s}/${c}`,63));new Set(a).size!==a.length&&j("NATIVE_DATA_SURFACE_FIELD_ORDER_INVALID",s),a.forEach((r,c)=>{t.has(r)||j("NATIVE_DATA_SURFACE_FIELD_ORDER_FIELD_MISSING",`${s}/${c}`)})}n==="form"&&Xn(i.draftState,`${o}/draftState`)}function wr(e,t,o,n){e[o]===void 0&&t[o]===void 0||((e[o]===void 0||t[o]===void 0)&&j("NATIVE_DATA_SURFACE_FIELD_PROJECTION_MISMATCH",`${n}/${o}`),ne(e[o])!==ne(t[o])&&j("NATIVE_DATA_SURFACE_FIELD_PROJECTION_MISMATCH",`${n}/${o}`))}function Dr(e,t,o){let n=t.file||{},i={...e.maxCount===void 0?{}:{maxCount:e.maxCount},...e.maxSizeMb===void 0?{}:{maxSizeMb:e.maxSizeMb},...e.accept===void 0?{}:{accept:Qn(e.accept)}};for(let s of["maxCount","maxSizeMb","accept"]){if(i[s]===void 0&&n[s]===void 0)continue;(i[s]===void 0||n[s]===void 0)&&j("NATIVE_DATA_SURFACE_FIELD_PROJECTION_MISMATCH",`${o}/${s}`);let a=s==="accept"?Qn(i[s]):i[s],r=s==="accept"?Qn(n[s]):n[s];ne(a)!==ne(r)&&j("NATIVE_DATA_SURFACE_FIELD_PROJECTION_MISMATCH",`${o}/${s}`)}}function Qn(e){return(Array.isArray(e)?[...e]:[e]).sort((t,o)=>{let n=String(t),i=String(o);return n===i?0:n<i?-1:1})}function Xe(e,t,o,n){(!Array.isArray(e)||!n&&e.length===0||e.length>o)&&j("NATIVE_DATA_SURFACE_STRING_ARRAY_INVALID",t);let i=e.map((s,a)=>Se(s,`${t}/${a}`,255));return new Set(i).size!==i.length&&j("NATIVE_DATA_SURFACE_STRING_ARRAY_INVALID",t),i}function re(e,t){return(!e||typeof e!="object"||Array.isArray(e))&&j("NATIVE_OBJECT_REQUIRED",t),e}function Ne(e,t,o){let n=new Set(t);for(let i of Object.keys(e))n.has(i)||j("NATIVE_PROPERTY_UNKNOWN",`${o}/${i}`)}function Se(e,t,o){return(typeof e!="string"||e.length===0||e.length>o)&&j("NATIVE_STRING_INVALID",t),e}function $r(e,t,o){e!==void 0&&(typeof e!="string"||e.length>o)&&j("NATIVE_STRING_INVALID",t)}function Zn(e,t){e!==void 0&&typeof e!="boolean"&&j("NATIVE_BOOLEAN_REQUIRED",t)}function j(e,t){throw new Ae(e,t)}var Qe=class extends Error{constructor(o,n){super(`${o}: ${n}`);this.pointer=o;this.reason=n}pointer;reason;code="NATIVE_MANAGED_CONCURRENCY_INVALID"};function eo(e,t,o){if(e===void 0)return;let n=(_,A)=>{throw new Qe(_,A)},i=(_,A,T)=>((!_||typeof _!="object"||Array.isArray(_)||Object.keys(_).some(f=>!T.includes(f)))&&n(A,"object contains unsupported properties"),_),s=(_,A,T,f)=>{(!Number.isSafeInteger(_)||_<A||_>T)&&n(f,`expected integer ${A}..${T}`)},a=(_,A)=>{(typeof _!="string"||!/^[a-z][a-z0-9_-]{0,63}$/.test(_))&&n(A,"invalid code")},r=(_,A,T)=>((!Array.isArray(_)||_.length>A)&&n(T,"array exceeds bound"),_),c=(_,A)=>{let T=t.find(f=>f.code===_);return T||n(A,"unknown resource"),T},l=(_,A,T)=>{let f=_.schema.fields.find(b=>b.code===A);return!f&&A!=="id"&&n(T,"unknown field"),f},p=(_,A,T=!1)=>{i(_,A,Object.keys(_||{})),Object.keys(_).length>8&&n(A,"at most eight parameters");for(let[f,b]of Object.entries(_))if(a(f,A),i(b,A,["type","values","minimum","maximum","minLength","maxLength"]),b.type==="uuid")Object.keys(b).length!==1&&n(A,"uuid has no options");else if(T&&b.type==="boolean")i(b,A,["type"]);else if(T&&b.type==="string"&&b.values===void 0)i(b,A,["type","minLength","maxLength"]),s(b.maxLength,1,256,A),b.minLength!==void 0&&s(b.minLength,0,b.maxLength,A);else if(b.type==="string"){i(b,A,["type","values"]);let h=r(b.values,100,A);(!h.length||h.some(C=>typeof C!="string"||C.length>128)||new Set(h).size!==h.length)&&n(A,"finite string values required")}else b.type==="integer"?(i(b,A,["type","minimum","maximum"]),s(b.minimum,0,1e6,A),s(b.maximum,b.minimum,b.minimum+1e3,A)):n(A,"unsupported parameter type")},d=(_,A,T,f=!1)=>{i(_,T,["from","key","value"]),!(_.from==="input"&&Object.keys(_).length===2&&Object.hasOwn(A,_.key))&&((_.from==="actor"||f&&_.from==="allocation")&&Object.keys(_).length===1||_.from==="literal"&&Object.keys(_).length===2&&Object.hasOwn(_,"value")&&(_.value===null||["string","boolean"].includes(typeof _.value)||typeof _.value=="number"&&Number.isFinite(_.value))&&JSON.stringify(_.value).length<=512||n(T,"invalid binding"))},u=(_,A,T)=>{d(_,A,T),!(_.from==="input"&&A[_.key].type==="uuid")&&(_.from==="literal"&&typeof _.value=="string"&&/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(_.value)||n(T,"record and allocation identifiers require a UUID binding"))},g=(_,A,T)=>{d(_,A,T),!(_.from==="input"&&A[_.key].type==="integer"&&A[_.key].minimum>=1)&&(_.from==="literal"&&Number.isSafeInteger(_.value)&&_.value>=1||n(T,"expectedRevision requires a positive integer binding"))},I="/data/concurrency";JSON.stringify(e).length>131072&&n(I,"declaration exceeds 128 KiB");let E=i(e,I,["version","admission","reads","quotas","commands"]);E.version!==1&&n(I,"unsupported version"),i(E.admission,I,["perSecond","burst","maxInFlight"]),s(E.admission.perSecond,1,1e3,I),s(E.admission.burst,1,1e3,I),s(E.admission.maxInFlight,1,1e3,I);let N=(_,A)=>{let T=new Set;for(let f of _)a(f?.code,A),T.has(f.code)&&n(A,"duplicate code"),T.add(f.code)};N(r(E.reads,32,I),I),N(r(E.quotas,16,I),I),N(r(E.commands,32,I),I);for(let _ of E.reads){let A=`${I}/reads/${_.code}`;i(_,A,["code","resourceCode","parameters","select","where","limit","scope","freshSeconds","staleSeconds","maxKeys","sourcePerSecond","dependencies"]);let T=c(_.resourceCode,A);p(_.parameters,A),["subject","application"].includes(_.scope)||n(A,"invalid cache scope"),_.scope==="application"&&T.dataPolicyCode&&n(A,"shared cache cannot bypass a row policy");let f=r(_.select,32,A);f.length||n(A,"select required"),f.forEach(h=>l(T,h,A));let b=r(_.dependencies,64,A);b.forEach(h=>l(T,h,A));for(let h of r(_.where||[],8,A))i(h,A,["field","value"]),l(T,h.field,A),d(h.value,_.parameters,A),_.scope==="application"&&h.value.from==="actor"&&n(A,"actor requires subject cache"),b.includes(h.field)||n(A,"filter dependency missing");f.some(h=>!b.includes(h))&&n(A,"selected field dependency missing"),s(_.limit,1,100,A),s(_.freshSeconds,1,300,A),s(_.staleSeconds,0,300,A),s(_.maxKeys,1,1e4,A),s(_.sourcePerSecond,1,20,A)}for(let _ of E.quotas){let A=`${I}/quotas/${_.code}`;i(_,A,["code","sourceResource","capacityField","allocationResource","allocationField","reservationSeconds"]);let T=c(_.sourceResource,A),f=c(_.allocationResource,A);l(T,_.capacityField,A)?.type!=="number.integer"&&n(A,"capacity must be an integer"),(l(f,_.allocationField,A)?.type!=="uuid"||l(f,_.allocationField,A)?.nullable!==!1)&&n(A,"allocation reference must be a uuid"),f.surface?.mutationOwner!=="queued-command"&&n(A,"allocation model must be command owned"),_.reservationSeconds!==void 0&&s(_.reservationSeconds,10,86400,A)}new Set(E.quotas.map(_=>_.allocationResource)).size!==E.quotas.length&&n(I,"an allocation model has exactly one pool owner");for(let _ of E.commands){let A=`${I}/commands/${_.code}`;i(_,A,["code","mode","intake","execution","capability","parameters","resourceKey","admission","deadlineSeconds","guards","operations","quota"]),_.mode!==void 0&&!["permit","durable"].includes(_.mode)&&n(A,"unsupported mode");let T=_.mode==="durable";if(p(_.parameters,A,T),d(_.resourceKey,_.parameters,A),o.some(f=>f.code===_.capability)||n(A,"command capability must be declared"),i(_.admission,A,["perSecond","burst","maxInFlight","maxQueue","maxWaitSeconds","permitSeconds"]),s(_.admission.perSecond,1,E.admission.perSecond,A),s(_.admission.burst,1,E.admission.burst,A),s(_.admission.maxInFlight,1,E.admission.maxInFlight,A),s(_.admission.maxQueue,1,1e4,A),s(_.admission.maxWaitSeconds,1,3600,A),(!T||_.admission.permitSeconds!==void 0)&&s(_.admission.permitSeconds,5,60,A),s(_.deadlineSeconds,10,3600,A),T){(_.operations!==void 0||_.guards!==void 0||_.quota!==void 0)&&n(A,"backend-plan does not accept static operations, guards or quota"),i(_.intake,A,["perSecond","burst","maxInFlight"]);for(let h of["perSecond","burst","maxInFlight"])s(_.intake[h],1,1e3,A);let f=i(_.execution,A,["kind","handlerCode","timeoutMs","resources","directory"]);f.kind!=="backend-plan"&&n(A,"durable requires backend-plan"),a(f.handlerCode,A),s(f.timeoutMs,100,3e4,A);let b=r(f.resources,32,A);b.length||n(A,"execution resources required"),new Set(b.map(h=>h.resourceCode)).size!==b.length&&n(A,"duplicate execution resource");for(let h of b){i(h,A,["resourceCode","readFields","writeOperations","writeFields"]);let C=c(h.resourceCode,A);for(let k of["readFields","writeFields"]){let W=r(h[k],64,A);new Set(W).size!==W.length&&n(A,"duplicate field"),W.forEach(v=>{k==="readFields"&&jn.has(v)||l(C,v,A)})}let $=r(h.writeOperations,3,A);(new Set($).size!==$.length||$.some(k=>!["create","update","increment"].includes(k)))&&n(A,"unsupported execution operation"),h.writeFields.some(k=>["id","revision","created_by","updated_by","created_at","updated_at"].includes(k))&&n(A,"record metadata is platform owned"),!$.length&&h.writeFields.length&&n(A,"write fields require an operation"),$.length&&!h.writeFields.length&&n(A,"write operations require fields"),E.quotas.some(k=>k.allocationResource===h.resourceCode)&&$.length&&n(A,"allocation references remain owned by their pool command")}if(f.directory!==void 0){i(f.directory,A,["mode","fields"]),f.directory.mode!=="current-initiator"&&n(A,"only current initiator allowed");let h=r(f.directory.fields,5,A);(!h.length||new Set(h).size!==h.length||h.some(C=>!["displayName","employeeNumber","primaryDepartment","departments","phone"].includes(C)))&&n(A,"unsupported directory fields")}continue}(_.execution!==void 0||_.intake!==void 0)&&n(A,"execution and intake require durable mode");for(let f of r(_.guards||[],8,A)){i(f,A,["resourceCode","id","conditions"]);let b=c(f.resourceCode,A);u(f.id,_.parameters,A);for(let h of r(f.conditions,16,A)){i(h,A,["kind","field","operator","value"]);let C=l(b,h.field,A);["eq","neq","lt","lte","gt","gte"].includes(h.operator)||n(A,"unsupported guard"),h.kind==="database-now"?(C?.type!=="datetime"||!["lt","lte","gt","gte"].includes(h.operator)||h.value!==void 0)&&n(A,"database-now requires datetime and an ordering operator"):(h.kind!==void 0&&h.kind!=="value"&&n(A,"unsupported condition kind"),d(h.value,_.parameters,A))}}for(let f of r(_.operations,8,A)){i(f,A,["operation","resourceCode","id","expectedRevision","data"]);let b=c(f.resourceCode,A);b.surface?.mutationOwner!=="queued-command"&&n(A,"command mutations require command owned models");let h=E.quotas.find(C=>C.allocationResource===f.resourceCode);h&&(f.operation==="create"?_.quota?.action!=="allocate"||_.quota.pool!==h.code:Object.hasOwn(f.data||{},h.allocationField))&&n(A,"allocation references are owned by their pool command"),["create","update"].includes(f.operation)||n(A,"unsupported operation"),f.operation==="update"?(u(f.id,_.parameters,A),g(f.expectedRevision,_.parameters,A)):(f.id!==void 0||f.expectedRevision!==void 0)&&n(A,"create has no caller supplied id/revision"),i(f.data,A,Object.keys(f.data||{})),Object.keys(f.data).length>32&&n(A,"too many fields");for(let[C,$]of Object.entries(f.data))C==="id"&&n(A,"record identifiers are platform owned"),l(b,C,A),d($,_.parameters,A,_.quota?.action==="allocate")}if(_.quota){let f=i(_.quota,A,["pool","action","units","mode","allocation"]),b=E.quotas.find(h=>h.code===f.pool);b||n(A,"unknown quota pool"),u(_.resourceKey,_.parameters,A),f.action==="allocate"?(i(f,A,["pool","action","units","mode"]),s(f.units,1,1e3,A),(!["committed","reserved"].includes(f.mode)||f.mode==="reserved"&&!b.reservationSeconds)&&n(A,"invalid allocation mode"),(_.operations.length!==1||_.operations[0].operation!=="create"||_.operations[0].resourceCode!==b.allocationResource||_.operations[0].data[b.allocationField]?.from!=="allocation")&&n(A,"allocation must atomically create its bound business record")):["confirm","release"].includes(f.action)?(i(f,A,["pool","action","allocation"]),u(f.allocation,_.parameters,A),_.operations.length&&n(A,"lifecycle owns allocation state; business reference remains immutable")):n(A,"invalid quota action")}else _.operations.length||n(A,"operations required")}let y=E.commands.filter(_=>_.mode==="durable").map(_=>_.execution.handlerCode);return new Set(y).size!==y.length&&n(I,"handler code must be unique"),JSON.parse(JSON.stringify(E))}var xe=class extends Error{constructor(o,n){super(`\u91D1\u989D\u751F\u547D\u5468\u671F\u58F0\u660E\u65E0\u6548\uFF1A${n}\uFF08${o}\uFF09`);this.pointer=o;this.reason=n}pointer;reason;code="NATIVE_DECIMAL_LIFECYCLE_INVALID"},oo=["parentTransitions","childTransitions","fulfilledChildStatuses","lockedParentStatuses"],mi=["amountFieldCode","currencyFieldCode","relationFieldCode","parentFieldCode","rootFieldCode","statusFieldCode","parentRelationValue","childRelationValue"],Yt=e=>!!(e&&typeof e=="object"&&!Array.isArray(e)),Ht=e=>Array.isArray(e)?e.filter(Yt):[],Oe=(e,t)=>{throw new xe(e,t)},to=e=>typeof e=="string"&&/^[A-Za-z0-9._:-]{1,128}$/.test(e),no=(e,t)=>e<t?-1:e>t?1:0;function Xt(e,t="/decimalReservationLifecycle"){if(e===void 0)return;if(!Yt(e)||Object.keys(e).some(i=>!oo.includes(i))||oo.some(i=>!Object.prototype.hasOwnProperty.call(e,i)))return Oe(t,"\u5FC5\u987B\u5B8C\u6574\u58F0\u660E\u56DB\u9879\u89C4\u5219\uFF0C\u4E0D\u80FD\u5305\u542B\u672A\u77E5\u5C5E\u6027");let o=i=>{let s=e[i];if(!Array.isArray(s)||s.length>64)return Oe(`${t}/${i}`,"\u72B6\u6001\u8FB9\u6700\u591A 64 \u6761");let a=new Set;return s.map((r,c)=>{let l=`${t}/${i}/${c}`;if(!Yt(r)||Object.keys(r).some(d=>d!=="from"&&d!=="to")||!to(r.from)||!to(r.to)||r.from===r.to)return Oe(l,"\u72B6\u6001\u8FB9\u5FC5\u987B\u5305\u542B\u4E0D\u540C\u7684\u6709\u6548 from/to");let p=JSON.stringify([r.from,r.to]);return a.has(p)?Oe(l,"\u72B6\u6001\u8FB9\u4E0D\u80FD\u91CD\u590D"):(a.add(p),{from:r.from,to:r.to})}).sort((r,c)=>no(r.from,c.from)||no(r.to,c.to))},n=i=>{let s=e[i];return!Array.isArray(s)||s.length<1||s.length>16||s.some(a=>!to(a))||new Set(s).size!==s.length?Oe(`${t}/${i}`,"\u72B6\u6001\u96C6\u5408\u5FC5\u987B\u5305\u542B 1 \u5230 16 \u4E2A\u4E0D\u91CD\u590D\u7684\u6709\u6548\u72B6\u6001"):[...s].sort(no)};return{parentTransitions:o("parentTransitions"),childTransitions:o("childTransitions"),fulfilledChildStatuses:n("fulfilledChildStatuses"),lockedParentStatuses:n("lockedParentStatuses")}}function io(e,t,o="/config/data/resources"){Ht(e).forEach((n,i)=>{let s=`${o}/${i}/decimalReservationLifecycle`,a=Xt(n.decimalReservationLifecycle,s);if(!a)return;let r=Ht(t).map(d=>d.platformAccess?.decimalReservation).filter(d=>Yt(d)&&d.resourceCode===n.code),c=r.find(d=>d.mode==="reserve");if(!c)return Oe(s,"\u9700\u8981\u540C\u8D44\u6E90\u5DF2\u58F0\u660E\u7684 reserve \u52A8\u4F5C\u6620\u5C04");if(mi.some(d=>typeof c[d]!="string")||r.some(d=>mi.some(u=>d[u]!==c[u])))return Oe(s,"\u540C\u8D44\u6E90\u989D\u5EA6\u52A8\u4F5C\u7684\u5B57\u6BB5\u6620\u5C04\u5FC5\u987B\u4E00\u81F4");let l=Ht(n.schema?.fields).find(d=>d.code===c.statusFieldCode);if(l?.type!=="option.single")return Oe(s,"\u989D\u5EA6\u72B6\u6001\u5B57\u6BB5\u5FC5\u987B\u4E3A option.single");let p=new Set(Ht(l.options).map(d=>d.value));for(let d of oo)if((d==="parentTransitions"||d==="childTransitions"?a[d].flatMap(g=>[g.from,g.to]):a[d]).some(g=>!p.has(g)))return Oe(`${s}/${d}`,"\u72B6\u6001\u5FC5\u987B\u6765\u81EA\u989D\u5EA6\u72B6\u6001\u5B57\u6BB5\u7684\u9009\u9879");if(r.some(d=>d.mode==="reserve"&&Array.isArray(d.eligibleParentStatuses)&&d.eligibleParentStatuses.some(u=>a.lockedParentStatuses.includes(String(u)))))return Oe(`${s}/lockedParentStatuses`,"\u9501\u5B9A\u7236\u72B6\u6001\u4E0D\u80FD\u5141\u8BB8\u65B0\u9884\u7559")})}var gi=require("crypto");var so=new Set(["option.single","user.single","department.single","resource-ref.single"]),kr=new Set(["option.multiple","cascade.single","cascade.multiple","user.multiple","department.multiple","resource-ref.multiple","address","location","json"]),Ai=new Set(["option.multiple","cascade.single","cascade.multiple","user.multiple","department.multiple","resource-ref.multiple","file","image"]),Vr=new Set(["option.single","user.single","department.single","resource-ref.single","signature","address","location"]),Pr=new Set([...so,...Ai,"signature","address","location","json"]);function Fr(e,t){let o=new Set([...Array.isArray(t?.list?.searchableFields)?t.list.searchableFields:[],...Object.entries(t?.fields||{}).filter(([,n])=>n?.searchable===!0).map(([n])=>n)]);return e.map(n=>Ei(n,o.has(n.code))).sort((n,i)=>n.code.localeCompare(i.code))}function Ei(e,t=!1){let o=e.type==="date-range"||e.type==="datetime-range";if(o&&e.rangeBoundary!=="closed"&&e.rangeBoundary!=="half-open")throw new Error("OPENXIANGDA_NATIVE_DATA_RANGE_BOUNDARY_INVALID");return{code:e.code,type:e.type,nullable:!0,indexed:e.indexed===!0,storage:Jr(e),index:qr(e,t),...o?{rangeBoundary:e.rangeBoundary}:{},...e.type==="serial-number"?{serial:{prefix:e.serial?.prefix||"",digits:e.serial?.digits??6,start:e.serial?.start??1}}:{},...e.type==="subtable"&&e.subtable?{subtable:{resourceCode:e.subtable.resourceCode,foreignKey:e.subtable.foreignKey,orderField:e.subtable.orderField,maxRows:e.subtable.maxRows??20}}:{}}}function vr(e,t){if(t.type==="subtable")return null;let o=ae(t.code),n=Ii(e,t),i=[n?` DEFAULT ${n}`:"",Gr(o,t),xr(o,t)].join("");return`${o} ${t.storage}${i}`}function Lr(e,t){return Ii(e,t)}function xr(e,t){if(t.type!=="date-range"&&t.type!=="datetime-range")return"";if(t.rangeBoundary!=="closed"&&t.rangeBoundary!=="half-open")throw new Error("OPENXIANGDA_NATIVE_DATA_RANGE_BOUNDARY_INVALID");let o=t.type==="datetime-range"&&t.rangeBoundary==="closed";return` CHECK (${e} IS NULL OR (NOT isempty(${e}) AND lower(${e}) IS NOT NULL AND upper(${e}) IS NOT NULL AND lower_inc(${e}) AND ${o?"":"NOT "}upper_inc(${e})))`}function jr(e){return e.type==="serial-number"||pt(e.type)&&e.type!=="subtable"}function Wr(e,t){return t.filter(o=>o.type==="serial-number").map(o=>{let n=Zt(e,o.code),i=o.serial?.start??1;return`CREATE SEQUENCE IF NOT EXISTS ${n} AS bigint MINVALUE ${i} START WITH ${i} CACHE 1`})}function Ur(e,t){let o=Qt(e);return t.filter(n=>n.type==="serial-number").map(n=>`ALTER SEQUENCE ${Zt(e,n.code)} OWNED BY ${o}.${ae(n.code)}`)}function Mr(e,t){return t.filter(o=>o.type==="serial-number").map(o=>`GRANT USAGE, SELECT ON SEQUENCE ${Zt(e,o.code)} TO "openxiangda_data_api"`)}function Br(e,t){let o=Qt(e),n=[];for(let i of t){if(i.type==="subtable")continue;let s=ae(i.code),a=ae(we("idx",e,i.code,i.index));switch(i.index){case"btree":n.push(`CREATE INDEX IF NOT EXISTS ${a} ON ${o} (${s})`);break;case"btree-snapshot-expressions":{let r=ae(we("idx",e,i.code,"snapshot-value")),c=ae(we("idx",e,i.code,"snapshot-label"));n.push(`CREATE INDEX IF NOT EXISTS ${r} ON ${o} ((${s} ->> 'value'))`,`CREATE INDEX IF NOT EXISTS ${c} ON ${o} ((${s} ->> 'label'))`);break}case"gin-jsonb-path":n.push(`CREATE INDEX IF NOT EXISTS ${a} ON ${o} USING GIN (${s} jsonb_path_ops)`);break;case"gist-range":n.push(`CREATE INDEX IF NOT EXISTS ${a} ON ${o} USING GIST (${s})`);break;case"gin-trigram":{let r=so.has(i.type)?`((${s} ->> 'label')) gin_trgm_ops`:`${s} gin_trgm_ops`;n.push(`CREATE INDEX IF NOT EXISTS ${a} ON ${o} USING GIN (${r})`);break}case"none":break}if(i.type==="serial-number"){let r=ae(we("uidx",e,i.code,"serial"));n.push(`CREATE UNIQUE INDEX IF NOT EXISTS ${r} ON ${o} (${s})`)}}return n}function Kr(e,t,o,n){let i=Qt(e),s=Qt(t),a=ae(we("uidx",e,"environment_id","subtable-parent")),r=ae(we("idx",t,o,n,"subtable-child")),c=ae(we("fk",t,o,e)),l=ae(o),p=ae(n);return[`CREATE UNIQUE INDEX IF NOT EXISTS ${a} ON ${i} ("tenant_id", "app_code", "environment_key", "id")`,`CREATE INDEX IF NOT EXISTS ${r} ON ${s} ("tenant_id", "app_code", "environment_key", ${l}, ${p}, "id")`,`DO $native_subtable$ BEGIN
2
- ALTER TABLE ${s}
3
- ADD CONSTRAINT ${c}
4
- FOREIGN KEY ("tenant_id", "app_code", "environment_key", ${l})
1
+ "use strict";var Gs=Object.create;var Yt=Object.defineProperty;var qs=Object.getOwnPropertyDescriptor;var zs=Object.getOwnPropertyNames;var Js=Object.getPrototypeOf,Hs=Object.prototype.hasOwnProperty;var Ys=(e,t)=>{for(var o in t)Yt(e,o,{get:t[o],enumerable:!0})},wi=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of zs(t))!Hs.call(e,i)&&i!==o&&Yt(e,i,{get:()=>t[i],enumerable:!(n=qs(t,i))||n.enumerable});return e};var Xs=(e,t,o)=>(o=e!=null?Gs(Js(e)):{},wi(t||!e||!e.__esModule?Yt(o,"default",{value:e,enumerable:!0}):o,e)),Zs=e=>wi(Yt({},"__esModule",{value:!0}),e);var xl={};Ys(xl,{AuthenticatedPublicReadContractError:()=>at,DATA_AUDIT_METADATA_FIELDS:()=>Tt,DATA_BUSINESS_COMMAND_INTENT_MAX_BYTES:()=>fp,DATA_BUSINESS_COMMAND_RESOLUTION_SCHEMA:()=>Ls,DATA_BUSINESS_COMMAND_SCHEMA:()=>gl,DATA_EVENT_TYPES_V2:()=>Vn,DATA_FORM_DRAFT_MAX_BYTES:()=>ql,DATA_SUBTABLE_MAX_ROWS:()=>yt,DATA_SUBTABLE_MAX_TOTAL_ROWS:()=>et,DATA_SYSTEM_SORT_FIELD_CODES:()=>Ui,DATA_TRANSACTION_MAX_BYTES:()=>Gl,DATA_TRANSACTION_MAX_OPERATIONS:()=>Kl,DATA_TRANSACTION_RECORD_SET_MAX_RECORDS:()=>_p,DATE_EVENT_RESERVED_DATA_FIELDS_V2:()=>Vc,DEVELOPMENT_BACKEND_CONNECTION_TTL_SECONDS:()=>Cp,DEVELOPMENT_BACKEND_ENDPOINT_PATTERN:()=>kl,DEVELOPMENT_BACKEND_FEATURE:()=>wl,DEVELOPMENT_BACKEND_INVOCATION_FEATURE:()=>Dl,DEVELOPMENT_BACKEND_INVOCATION_MAX_REQUEST_BYTES:()=>bp,DEVELOPMENT_BACKEND_INVOCATION_MAX_RESPONSE_BYTES:()=>Op,DEVELOPMENT_BACKEND_INVOCATION_SCHEMA:()=>Us,DEVELOPMENT_BACKEND_MAX_INFLIGHT:()=>Rp,DEVELOPMENT_BACKEND_MAX_REQUEST_BYTES:()=>Tp,DEVELOPMENT_BACKEND_MAX_RESPONSE_BYTES:()=>Np,DEVELOPMENT_BACKEND_SCHEMA:()=>Sl,DEVELOPMENT_CONFIGURATION_ENDPOINT:()=>Tl,DEVELOPMENT_CONFIGURATION_FEATURE:()=>Nl,DEVELOPMENT_CONFIGURATION_MANIFEST_SCHEMA:()=>hi,DEVELOPMENT_CONFIGURATION_SCHEMA:()=>js,DateEventProjectionV2Error:()=>Pt,DevelopmentConfigurationContractError:()=>Jn,ManagedConcurrencyContractError:()=>rt,NATIVE_ARTIFACT_CAPACITY_V2:()=>Ae,NATIVE_CONFIGURATION_VALIDATOR_DIGEST:()=>Fl,NATIVE_CONTRACT_CAPACITY_V2:()=>B,NATIVE_DATA_POLICY_EXPRESSION_MAX_CLAUSES:()=>lf,NATIVE_DATA_POLICY_EXPRESSION_MAX_DEPTH:()=>af,NATIVE_DATA_POLICY_EXPRESSION_MAX_GROUP_ITEMS:()=>cf,NATIVE_DATA_POLICY_EXPRESSION_MAX_LEAVES:()=>df,NATIVE_DATA_POLICY_EXPRESSION_MAX_OCCURRENCES:()=>uf,NATIVE_DATA_QUERY_OPERATORS_V2:()=>Ki,NATIVE_ROLE_MEMBERSHIP_BATCH_MAX_BYTES:()=>rp,NATIVE_ROLE_MEMBERSHIP_BATCH_MAX_ITEMS:()=>ip,NATIVE_UNIQUE_KEY_MAX_BYTES:()=>Nu,NATIVE_UNIQUE_KEY_NORMALIZERS:()=>Do,NativeConfigurationCompilerError:()=>Fn,NativeDataFieldContractV2Error:()=>ye,NativeDataPolicyExpressionV2Error:()=>mt,NativeDecimalLifecycleContractError:()=>Be,NativeEventActionContractError:()=>bn,NativeRoleMembershipBatchInputError:()=>Gn,NativeScopeSourceFieldPathV2Error:()=>An,NativeUniqueKeyContractError:()=>ct,OPENXIANGDA_NATIVE_DATA_FIELD_TYPES_V2:()=>ji,OPENXIANGDA_NATIVE_DATA_SURFACE_KEYS_V2:()=>Se,OPENXIANGDA_NATIVE_DRAFT_STATE_KEYS_V2:()=>dn,OPENXIANGDA_NATIVE_SYSTEM_FIELDS_V2:()=>on,OPENXIANGDA_NATIVE_SYSTEM_FIELD_MAP_V2:()=>bt,USER_CANDIDATE_MAX_SELECTIONS:()=>Ml,USER_CANDIDATE_SCOPE_FIELD_TYPES:()=>ki,UserCandidateContractError:()=>Ve,WORKFLOW_APPROVAL_EMPTY_PROVIDERS:()=>qo,WORKFLOW_APPROVED_DELEGATION_MAX_BYTES:()=>zu,WORKFLOW_APPROVED_DELEGATION_MAX_REQUESTS:()=>qu,WORKFLOW_AUTOMATIC_CC_MAX_RECIPIENTS:()=>xu,WORKFLOW_AUTOMATIC_CC_PROVIDERS:()=>Rr,WORKFLOW_BUSINESS_STEP_EVENT:()=>dt,WORKFLOW_BUSINESS_STEP_EVENTS:()=>xo,WORKFLOW_BUSINESS_STEP_FACTS_KEY:()=>gc,WORKFLOW_BUSINESS_STEP_MAX_BYTES:()=>On,WORKFLOW_BUSINESS_STEP_MAX_RECEIPT_BYTES:()=>_r,WORKFLOW_CONFIGURABLE_OPERATIONS:()=>Cn,WORKFLOW_CONFIGURABLE_PROVIDERS:()=>hn,WORKFLOW_EVENT_TYPES_V2:()=>Ln,WORKFLOW_LAUNCH_PREFLIGHT_PROVIDERS:()=>Sr,WORKFLOW_REJECTION_NOTIFICATION_MAX_BYTES:()=>Mu,WORKFLOW_REJECTION_NOTIFICATION_SCHEMA:()=>hr,WORKFLOW_ROLE_UNION_MAX_ROLES:()=>vu,WORKFLOW_ROUTING_MAX_BYTES:()=>tf,WORKFLOW_ROUTING_MAX_MATCHED_RULES:()=>ef,WORKFLOW_ROUTING_MAX_RULES:()=>Qu,WORKFLOW_TASK_PAGE_DEFINITION_MAX_BYTES:()=>Pr,WORKFLOW_TASK_PAGE_MAX_BYTES:()=>$n,WORKFLOW_TASK_PAGE_MAX_FIELDS:()=>vr,WORKFLOW_TASK_SUBTABLE_MAX_ROWS:()=>oi,WORKFLOW_TASK_SUBTABLE_MAX_TOTAL_ROWS:()=>Vr,WorkflowTaskPageError:()=>Oe,applyWorkflowTaskPageValues:()=>xr,applyWorkflowTaskSubtableRows:()=>xc,assertDevelopmentConfigurationManifest:()=>Ws,assertDevelopmentConfigurationResult:()=>hl,assertNativeRoleMembershipBatchInput:()=>ul,assertWorkflowNativeStageGuard:()=>dc,assertWorkflowNativeStagePolicy:()=>ho,assertWorkflowNativeStageSourceGuard:()=>lc,assertWorkflowOwnedSubjectCreate:()=>Mt,assertWorkflowOwnedSubjectCreateResources:()=>ci,canonicalDataBusinessIntent:()=>Al,compileNativeApplicationConfiguration:()=>Id,compileNativeEventAction:()=>vo,compileNativeEventCapturePlansV2:()=>ms,compileRequiredPlatformCapabilitiesV3:()=>ps,compileWorkflowBusinessStepHandlers:()=>Nn,createDevelopmentConfigurationManifest:()=>Rl,dateEventProjectionEnvelopeSchemaV2:()=>Lc,dateEventProjectionFieldsV2:()=>ti,developmentBackendBase64Bytes:()=>Ms,developmentBackendInvocationHeadersValid:()=>Ks,developmentBackendInvocationRequestValid:()=>Ll,developmentBackendInvocationRevision:()=>vl,developmentBackendOperationMatches:()=>Bs,developmentConfigurationKey:()=>Cl,evaluateWorkflowTaskPageExpression:()=>$e,formatWorkflowCompletionDeadline:()=>wc,formatWorkflowExpression:()=>$t,generatedCrudCapabilityOperations:()=>fi,hasDataAuditReadPolicy:()=>ao,isDataAuditMetadataField:()=>tt,isDataSystemSortField:()=>co,isDataTransactionActorAuthorityGuard:()=>Il,isDataTransactionRecordSetMatchGuard:()=>Ol,isNativeDataQueryOperatorV2:()=>pa,isNativeMultiValueFieldV2:()=>Ot,isWorkflowRejectionNotificationSnapshot:()=>Sc,matchesDataActorAuthorityMembership:()=>yl,materializeNativeDataQueryPathTypesV2:()=>sc,nativeDataPolicyExpressionLeavesV2:()=>Kt,nativeDataPolicyExpressionToCnfV2:()=>ui,nativeDataQueryPathPlanV2:()=>ac,nativeFieldAggregatePlanV2:()=>ba,nativeFieldColumnDefinitionV2:()=>La,nativeFieldDefaultSqlV2:()=>Fa,nativeFieldHasDefaultV2:()=>ja,nativeFieldIndexStatementsV2:()=>Ba,nativeFieldRequiresCreateInputV2:()=>Nt,nativeFieldSequenceGrantStatementsV2:()=>Ma,nativeFieldSequenceOwnershipStatementsV2:()=>Ua,nativeFieldSequenceStatementsV2:()=>Wa,nativeFieldSupportsFilterV2:()=>mo,nativeFieldSupportsOperatorV2:()=>Ea,nativeFieldSupportsSearchV2:()=>an,nativeFieldSupportsSortV2:()=>ot,nativeOperatorsForFieldV2:()=>po,nativePhysicalFieldV2:()=>er,nativePhysicalFieldsV2:()=>Va,nativePhysicalObjectNameV2:()=>ke,nativeScopeSourceFieldValueV2:()=>Ya,nativeScopeSourceGrantPathSupportedV2:()=>Ro,nativeScopeSourceSubjectPathSupportedV2:()=>En,nativeSubtableConstraintStatementsV2:()=>Ka,nativeUniqueKeysContractVersion:()=>$o,nativeUniqueKeysJsonSchema:()=>fc,normalizeWorkflowOwnedSubjectCreate:()=>Hc,parseDataBusinessCommandResolution:()=>El,parseDataFieldUserCandidates:()=>It,parseDecimalReservationLifecycle:()=>mn,parseNativeDataFieldsV2:()=>rn,parseNativeDataResourceInvariantsV2:()=>so,parseNativeUniqueKeys:()=>ko,projectDataResourceView:()=>xs,projectNativeDataResourceViewV2:()=>un,projectWorkflowGraph:()=>bc,projectWorkflowNodePolicy:()=>Go,quoteNativeIdentifierV2:()=>se,refreshWorkflowTaskPageFacts:()=>jc,requiresDateTimeMinutePrecision:()=>tn,requiresDevelopmentBackendCredential:()=>$l,requiresExtendedArtifactCapacity:()=>Gt,requiresExtendedDeclarationCapacity:()=>Pn,requiresExtendedOwnedSubtableCapacity:()=>Zt,requiresOwnedSubtableMinimumRows:()=>nn,requiresUserCandidateLaunchScope:()=>Xt,requiresWorkflowRoleUnion:()=>Ko,resolveNativeScopeSourceFieldPathV2:()=>st,resolveWorkflowUserCandidates:()=>Pi,selectWorkflowAssignmentRoutingRules:()=>zc,serializedDataBytes:()=>ta,userCandidateScopeValue:()=>ea,validateAuthenticatedPublicRead:()=>wo,validateDecimalReservationLifecycles:()=>No,validateManagedConcurrency:()=>Io,validateNativeDataDraftStateV2:()=>go,validateNativeDataResourceReferencesV2:()=>ro,validateNativeDataResourceSurfaceV2:()=>ln,validateUserCandidateReferences:()=>eo,validateWorkflowAdministration:()=>wn,validateWorkflowApprovalEmptyPolicy:()=>Dn,validateWorkflowApprovedDelegation:()=>Qo,validateWorkflowAssignmentRoutingBindings:()=>si,validateWorkflowAssignmentRoutingPolicy:()=>Ut,validateWorkflowAssignmentRoutingRules:()=>Gc,validateWorkflowAutomaticCc:()=>Sn,validateWorkflowBusinessStepHandlerContract:()=>Ec,validateWorkflowBusinessStepRequest:()=>Ac,validateWorkflowBusinessStepResult:()=>Er,validateWorkflowBusinessStepSchema:()=>St,validateWorkflowBusinessStepSubscriptions:()=>Wo,validateWorkflowBusinessSteps:()=>kt,validateWorkflowCommandHandlers:()=>Xo,validateWorkflowCompletionDeadlines:()=>Jo,validateWorkflowCorrections:()=>ei,validateWorkflowInitiatorApprovalPolicy:()=>ut,validateWorkflowInstanceCommandPolicies:()=>Vo,validateWorkflowLaunchPreflight:()=>kn,validateWorkflowNodeConfigurationPatch:()=>Cc,validateWorkflowReadability:()=>Bo,validateWorkflowRejectionNotification:()=>Yo,validateWorkflowRoleUnion:()=>vt,validateWorkflowTaskPages:()=>xt,validateWorkflowUserCandidateBindings:()=>to,workflowApprovalCanSkip:()=>hc,workflowApprovedDelegationRequests:()=>vc,workflowAssignmentRoutingFacts:()=>qc,workflowAssignmentRoutingPolicySchema:()=>Kc,workflowAssignmentRoutingSemantic:()=>Mr,workflowBindingAllowsEmptyUsers:()=>zo,workflowBindingRoleCodes:()=>Tc,workflowBusinessCommandInvocationSchema:()=>Dc,workflowBusinessStepFactSchema:()=>Dt,workflowBusinessStepHandlerDigest:()=>_l,workflowBusinessStepInput:()=>Ic,workflowBusinessStepPath:()=>Ir,workflowBusinessStepReceiptSignatureSuffix:()=>ml,workflowBusinessStepValueMatches:()=>wt,workflowDelegationMutationRequestSchema:()=>Vs,workflowExpressionPaths:()=>Mo,workflowInitiatorApprovalCanComplete:()=>Oc,workflowInstanceCommandDeadlineError:()=>_c,workflowInstanceTerminateCapabilityAllowed:()=>pc,workflowInstanceWithdrawalReasonRequired:()=>mc,workflowNativeStagePolicySchema:()=>uc,workflowNodeAllowedOperations:()=>ft,workflowOperationCommentRequired:()=>Or,workflowOperationReasonRequired:()=>Nr,workflowOwnedSubjectCreateSchema:()=>Jc,workflowPolicyTimestamp:()=>Po,workflowRoleCodesSchema:()=>Nc,workflowTaskPageFieldState:()=>ii,workflowTaskPageReplayCoversInvalidation:()=>Wc,workflowTaskSubtableRows:()=>Fc});module.exports=Zs(xl);var Si=require("node:crypto");function Qs(e){if(!e||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function Xn(e,t){if(e===null)return"null";if(typeof e=="string"||typeof e=="boolean")return JSON.stringify(e);if(typeof e=="number"){if(!Number.isFinite(e))throw new TypeError(`JSON number must be finite: ${t}`);return JSON.stringify(e)}if(Array.isArray(e))return`[${e.map((n,i)=>Xn(n,`${t}[${i}]`)).join(",")}]`;if(Qs(e))return`{${Object.keys(e).filter(i=>e[i]!==void 0).sort((i,r)=>i===r?0:i<r?-1:1).map(i=>`${JSON.stringify(i)}:${Xn(e[i],`${t}.${i}`)}`).join(",")}}`;let o=e instanceof Date?"Date":e?.constructor?.name||typeof e;throw new TypeError(`Value is not JSON serializable: ${t} (${o})`)}function Q(e){return Xn(e,"$")}function Z(e){return(0,Si.createHash)("sha256").update(Q(e)).digest("hex")}var Ml=200,ki=["text.short","uuid","option.single","resource-ref.single"],Zn=/^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$/,$i=/^[A-Za-z][A-Za-z0-9_]{0,62}$/,vi=new Set(["__proto__","prototype","constructor"]),Qn=e=>!!e&&typeof e=="object"&&!Array.isArray(e)&&[Object.prototype,null].includes(Object.getPrototypeOf(e)),Di=(e,t)=>Object.keys(e).every(o=>t.includes(o)),Qe=(e,t)=>typeof e=="string"&&e.length>0&&e.trim()===e&&e.length<=t,Ve=class extends Error{constructor(o,n){super(`${o}: ${n}`);this.code=o;this.pointer=n}code;pointer};function te(e,t){throw new Ve(e,t)}function It(e,t,o){if(e===void 0)return;["user.single","user.multiple"].includes(t)||te("DATA_USER_CANDIDATES_FIELD_TYPE_INVALID",o),(!Qn(e)||!Di(e,["kind","roleCode","scope","pageSize"])||e.kind!=="app-role"||!Qe(e.roleCode,128)||!Zn.test(String(e.roleCode)))&&te("DATA_USER_CANDIDATES_SOURCE_INVALID",o),e.pageSize!==void 0&&(!Number.isSafeInteger(e.pageSize)||Number(e.pageSize)<1||Number(e.pageSize)>50)&&te("DATA_USER_CANDIDATES_PAGE_SIZE_INVALID",`${o}/pageSize`);let n;if(e.scope!==void 0){let i=e.scope;(!Qn(i)||!Di(i,["dimensionCode","operation","field","value","creation"])||!Qe(i.dimensionCode,128)||!Zn.test(String(i.dimensionCode))||!Qe(i.operation,64)||!Zn.test(String(i.operation))||Object.hasOwn(i,"field")===Object.hasOwn(i,"value"))&&te("DATA_USER_CANDIDATES_SCOPE_INVALID",`${o}/scope`),i.creation!==void 0&&(i.creation!=="prospective"||!Object.hasOwn(i,"field"))&&te("DATA_USER_CANDIDATES_SCOPE_INVALID",`${o}/scope/creation`),Object.hasOwn(i,"field")?((!Qe(i.field,63)||!$i.test(String(i.field))||vi.has(String(i.field)))&&te("DATA_USER_CANDIDATES_SCOPE_FIELD_INVALID",`${o}/scope/field`),n={dimensionCode:String(i.dimensionCode),operation:String(i.operation),field:String(i.field),...i.creation==="prospective"?{creation:"prospective"}:{}}):(Qe(i.value,255)||te("DATA_USER_CANDIDATES_SCOPE_VALUE_INVALID",`${o}/scope/value`),n={dimensionCode:String(i.dimensionCode),operation:String(i.operation),value:String(i.value)})}return{kind:"app-role",roleCode:String(e.roleCode),...n?{scope:n}:{},...e.pageSize===void 0?{}:{pageSize:Number(e.pageSize)}}}function Xt(e){return e.some(t=>t.schema.fields.some(o=>{let n=o.userCandidates?.scope;return n?.creation==="prospective"||!!(n?.field&&t.schema.fields.find(i=>i.code===n.field)?.type==="resource-ref.single")}))}function eo(e,t,o,n){for(let[i,r]of e.entries()){let c=`${n}/${i}/userCandidates`,s=It(r.userCandidates,r.type,c);if(s&&(t.has(s.roleCode)||te("DATA_USER_CANDIDATES_ROLE_UNDECLARED",`${c}/roleCode`),s.scope&&!o.has(s.scope.dimensionCode)&&te("DATA_USER_CANDIDATES_DIMENSION_UNDECLARED",`${c}/scope/dimensionCode`),s.scope?.field)){let a=e.find(d=>d.code===s.scope.field);(!a||!ki.some(d=>d===a.type))&&te("DATA_USER_CANDIDATES_SCOPE_FIELD_INVALID",`${c}/scope/field`)}}}function Pi(e,t,o,n){let i=e.subject.factProjection,r=typeof t.inputPath=="string"&&Object.entries(i).some(([d,f])=>(t.inputPath===d||t.inputPath.startsWith(`${d}.`))&&o.get(f)?.userCandidates!==void 0);if(t.candidateField===void 0&&!r)return;(t.provider!=="form_field_users"||!t.candidateField||!$i.test(t.candidateField)||vi.has(t.candidateField)||!t.inputPath||i[t.inputPath]!==t.candidateField)&&te("WORKFLOW_USER_CANDIDATES_FIELD_BINDING_REQUIRED",n),(t.roleCode!==void 0||t.scope!==void 0||t.routing!==void 0)&&te("WORKFLOW_USER_CANDIDATES_SOURCE_OVERRIDE_FORBIDDEN",n);let c=o.get(t.candidateField),s=c&&It(c.userCandidates,c.type,`${n}/candidateField`);s||te("WORKFLOW_USER_CANDIDATES_FIELD_UNDECLARED",`${n}/candidateField`);let a;if(s.scope?.field){let d=Object.entries(i).filter(([,f])=>f===s.scope.field).map(([f])=>f);d.length!==1&&te("WORKFLOW_USER_CANDIDATES_SCOPE_PROJECTION_REQUIRED",n),a=d[0]}return{fieldCode:c.code,inputPath:t.inputPath,source:s,...a?{scopeInputPath:a}:{}}}function to(e,t,o,n,i=new Map){for(let[r,c]of Object.entries(t.bindings))Pi(e,c,o,`${n}/${r}`);for(let[r,c]of Object.entries(e.taskPages||{})){let s=new Set(c.fields.filter(a=>a.readonly!==!0).map(a=>a.code));for(let a of c.fields){let d=o.get(a.code)?.userCandidates?.scope;if(s.has(a.code)&&d?.field&&s.has(d.field)&&te("WORKFLOW_USER_CANDIDATES_SCOPE_WRITE_FORBIDDEN",`${n}/taskPages/${r}/${a.code}`),!s.has(a.code)||!a.subtable)continue;let f=o.get(a.code)?.subtable?.resourceCode,u=f?i.get(f):void 0;a.subtable.fields.some(p=>p.readonly!==!0&&u?.get(p.code)?.userCandidates)&&te("WORKFLOW_USER_CANDIDATES_OWNED_FIELD_UNSUPPORTED",`${n}/taskPages/${r}/${a.code}`)}}}function ea(e,t){if(!e.scope)return;let o=e.scope.field?t[e.scope.field]:e.scope.value,n=Qn(o)?o.value:o;return Qe(n,255)||te("DATA_USER_CANDIDATES_SCOPE_VALUE_REQUIRED",e.scope.field||"scope"),String(n)}var yt=500,et=500,Kl=1016,Gl=2097152,ql=2097152;function Zt(e){return e.some(t=>{let o=t.schema.fields.filter(n=>n.type==="subtable").map(n=>n.subtable?.maxRows??20);return o.some(n=>n>100)||o.reduce((n,i)=>n+i,0)>400})}function ta(e){try{return new TextEncoder().encode(JSON.stringify(e)).byteLength}catch{return 1/0}}var xi=/^[A-Za-z][A-Za-z0-9_]{0,62}$/,io=/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/,ji=["text.short","text.long","text.rich","number.integer","number.decimal","boolean","date","time","datetime","date-range","datetime-range","option.single","option.multiple","cascade.single","cascade.multiple","user.single","user.multiple","department.single","department.multiple","resource-ref.single","resource-ref.multiple","image","signature","address","location","uuid","json","file","serial-number","subtable"];function tn(e){return e.some(t=>t.schema.fields.some(o=>(o.type==="datetime"||o.type==="datetime-range")&&o.timePrecision==="minute"))}function nn(e){return e.some(t=>t.schema.fields.some(o=>o.type==="subtable"&&(o.subtable?.minRows??0)>0))}var na=new Set(ji),Wi=new Set(["option.multiple","cascade.multiple","user.multiple","department.multiple","resource-ref.multiple","file","image","subtable"]),Vi=new Set(["option.single","option.multiple","cascade.single","cascade.multiple"]),Li=new Set(["resource-ref.single","resource-ref.multiple"]),on=[{code:"id",type:"uuid",nullable:!1},{code:"revision",type:"number.integer",nullable:!1},{code:"created_by",type:"text.short",nullable:!1},{code:"updated_by",type:"text.short",nullable:!1},{code:"created_at",type:"datetime",nullable:!1},{code:"updated_at",type:"datetime",nullable:!1}],bt=new Map(on.map(e=>[e.code,e])),ye=class extends Error{constructor(o,n){super(o);this.code=o;this.pointer=n;this.name="NativeDataFieldContractV2Error"}code;pointer};function Ot(e){return Wi.has(e)}function Nt(e,t={}){return e.type!=="serial-number"&&t.system!==!0&&e.nullable===!1&&(!Ot(e.type)||t.requiredHint===!0)}function rn(e,t,o=500){Array.isArray(e)||D("NATIVE_ARRAY_REQUIRED",t),e.length===0&&D("NATIVE_DATA_FIELDS_REQUIRED",t),e.length>o&&D("NATIVE_ARRAY_LIMIT_EXCEEDED",t);let n=new Set;return e.map((i,r)=>{let c=`${t}/${r}`,s=ge(i,c);Ie(s,["code","type","nullable","indexed","options","source","userCandidates","maxLength","precision","scale","exactDecimal","min","max","rangeBoundary","timePrecision","file","serial","subtable"],c);let a=be(s.code,`${c}/code`,63);xi.test(a)||D("NATIVE_FIELD_CODE_INVALID",`${c}/code`),n.has(a)&&D("NATIVE_DATA_FIELD_DUPLICATE",`${c}/code`),n.add(a);let d=be(s.type,`${c}/type`,32);na.has(d)||D("NATIVE_DATA_FIELD_TYPE_INVALID",`${c}/type`);let f=d,u=oo(s.nullable,`${c}/nullable`),p=oo(s.indexed,`${c}/indexed`);u===!0&&Wi.has(f)&&D("NATIVE_DATA_MULTI_FIELD_NULLABLE_INVALID",`${c}/nullable`);let g=ra(s.options,f,c),I=sa(s.source,f,c),A=It(s.userCandidates,f,`${c}/userCandidates`),O=ca(s,f,c),b=oo(s.exactDecimal,`${c}/exactDecimal`);b!==void 0&&f!=="number.decimal"&&D("NATIVE_DATA_FIELD_EXACT_DECIMAL_TYPE_INVALID",`${c}/exactDecimal`);let _=oa(s.rangeBoundary,f,c),E=da(s.file,f,c),T=la(s.serial,f,c),l=ua(s.subtable,f,c);return{code:a,type:f,...u===void 0?{}:{nullable:u},...p===void 0?{}:{indexed:p},...g?{options:g}:{},...I?{source:I}:{},...A?{userCandidates:A}:{},...O,...b===void 0?{}:{exactDecimal:b},..._?{rangeBoundary:_}:{},...E?{file:E}:{},...T?{serial:T}:{},...l?{subtable:l}:{}}})}function oa(e,t,o){let n=`${o}/rangeBoundary`;if(!(t==="date-range"||t==="datetime-range")){e!==void 0&&D("NATIVE_DATA_FIELD_RANGE_BOUNDARY_TYPE_INVALID",n);return}return e!=="closed"&&e!=="half-open"&&D("NATIVE_DATA_FIELD_RANGE_BOUNDARY_REQUIRED",n),e}function ro(e,t){Array.isArray(e)||D("NATIVE_ARRAY_REQUIRED",t);let o=new Map;e.forEach((n,i)=>{let r=`${t}/${i}`,c=ge(n,r),s=be(c.code,`${r}/code`,64);(!io.test(s)||o.has(s))&&D("NATIVE_RESOURCE_CODE_INVALID",`${r}/code`);let a=ge(c.schema,`${r}/schema`);o.set(s,{pointer:r,fields:rn(a.fields,`${r}/schema/fields`)})});for(let[n,i]of o){let r=new Map(i.fields.map(s=>[s.code,s]));i.fields.filter(s=>s.type==="subtable").reduce((s,a)=>s+(a.subtable?.maxRows??20),0)>500&&D("NATIVE_DATA_FIELD_SUBTABLE_AGGREGATE_MAX_ROWS_EXCEEDED",`${i.pointer}/schema/fields`),i.fields.forEach((s,a)=>{let d=`${i.pointer}/schema/fields/${a}`;if(s.source&&ia(s.source,r,o,`${d}/source`),s.subtable){let f=o.get(s.subtable.resourceCode);(!f||s.subtable.resourceCode===n)&&D("NATIVE_DATA_FIELD_SUBTABLE_TARGET_MISSING",`${d}/subtable/resourceCode`);let u=f.fields.find(g=>g.code===s.subtable?.foreignKey);(!u||u.type!=="uuid"||u.nullable!==!1)&&D("NATIVE_DATA_FIELD_SUBTABLE_FOREIGN_KEY_INVALID",`${d}/subtable/foreignKey`);let p=f.fields.find(g=>g.code===s.subtable?.orderField);(!p||p.type!=="number.integer"||p.nullable!==!1)&&D("NATIVE_DATA_FIELD_SUBTABLE_ORDER_FIELD_INVALID",`${d}/subtable/orderField`)}})}}function so(e,t,o){if(e===void 0)return[];(!Array.isArray(e)||e.length>20)&&D("NATIVE_DATA_RESOURCE_INVARIANTS_INVALID",o);let n=new Map(t.map(r=>[r.code,r])),i=new Set;return e.map((r,c)=>{let s=`${o}/${c}`,a=ge(r,s);Ie(a,["code","message","expression"],s);let d=be(a.code,`${s}/code`,128);(!/^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/.test(d)||i.has(d))&&D("NATIVE_DATA_RESOURCE_INVARIANT_CODE_INVALID",`${s}/code`),i.add(d);let f=en(a.message,`${s}/message`,500);f!==void 0&&f.length===0&&D("NATIVE_DATA_RESOURCE_INVARIANT_MESSAGE_INVALID",`${s}/message`);let u=ge(a.expression,`${s}/expression`);if(u.kind==="nonBlankTextWhenOption"){Ie(u,["kind","optionField","optionValue","textField"],`${s}/expression`);let _=Re(u.optionField,`${s}/expression/optionField`),E=Re(u.textField,`${s}/expression/textField`),T=be(u.optionValue,`${s}/expression/optionValue`,128),l=n.get(_),y=n.get(E);return(!l||!y)&&D("NATIVE_DATA_RESOURCE_INVARIANT_FIELD_UNKNOWN",`${s}/expression`),(l.type!=="option.single"||!["text.short","text.long"].includes(y.type)||!l.options?.some(R=>R.value===T))&&D("NATIVE_DATA_RESOURCE_INVARIANT_FIELD_TYPES_INVALID",`${s}/expression`),{code:d,...f===void 0?{}:{message:f},expression:{kind:"nonBlankTextWhenOption",optionField:_,optionValue:T,textField:E}}}Ie(u,["leftField","operator","rightField"],`${s}/expression`);let p=Re(u.leftField,`${s}/expression/leftField`),g=Re(u.rightField,`${s}/expression/rightField`),I=n.get(p),A=n.get(g);(!I||!A)&&D("NATIVE_DATA_RESOURCE_INVARIANT_FIELD_UNKNOWN",`${s}/expression`),I.type===A.type||["number.integer","number.decimal"].includes(I.type)&&["number.integer","number.decimal"].includes(A.type)||D("NATIVE_DATA_RESOURCE_INVARIANT_FIELD_TYPES_INVALID",`${s}/expression`);let b=String(u.operator);return["eq","neq","gt","gte","lt","lte"].includes(b)||D("NATIVE_DATA_RESOURCE_INVARIANT_OPERATOR_INVALID",`${s}/expression/operator`),!["eq","neq"].includes(b)&&!["number.integer","number.decimal","date","time","datetime","text.short","text.long","text.rich","serial-number","uuid"].includes(I.type)&&D("NATIVE_DATA_RESOURCE_INVARIANT_FIELD_TYPES_INVALID",`${s}/expression`),{code:d,...f===void 0?{}:{message:f},expression:{leftField:p,operator:b,rightField:g}}})}function ia(e,t,o,n){let i=o.get(e.resourceCode);i||D("NATIVE_DATA_FIELD_SOURCE_TARGET_MISSING",`${n}/resourceCode`);let r=new Map(i.fields.map(s=>[s.code,s])),c=r.get(e.labelField);(!c||!["text.short","text.long"].includes(c.type))&&D("NATIVE_DATA_FIELD_SOURCE_LABEL_INVALID",`${n}/labelField`);for(let s of["searchFields","descriptionFields","snapshotFields"])for(let a of e[s]||[])r.has(a)||D("NATIVE_DATA_FIELD_SOURCE_FIELD_MISSING",`${n}/${s}`);for(let[s,a]of(e.filters||[]).entries())r.has(a.field)||D("NATIVE_DATA_FIELD_SOURCE_FILTER_FIELD_MISSING",`${n}/filters/${s}/field`),"binding"in a&&!t.has(a.binding.field)&&D("NATIVE_DATA_FIELD_SOURCE_BINDING_FIELD_MISSING",`${n}/filters/${s}/binding/field`)}function ra(e,t,o){let n=`${o}/options`;if(e===void 0){Vi.has(t)&&D("NATIVE_DATA_FIELD_OPTIONS_REQUIRED",n);return}(!Vi.has(t)||!Array.isArray(e))&&D("NATIVE_DATA_FIELD_OPTIONS_TYPE_INVALID",n),(e.length<1||e.length>100)&&D("NATIVE_DATA_FIELD_OPTIONS_INVALID",n);let i=0,r=(c,s,a)=>{a>5&&D("NATIVE_DATA_FIELD_OPTIONS_DEPTH_EXCEEDED",s);let d=new Set;return c.map((f,u)=>{i+=1,i>1e3&&D("NATIVE_DATA_FIELD_OPTIONS_COUNT_EXCEEDED",n);let p=`${s}/${u}`,g=ge(f,p);Ie(g,["label","value","description","color","children"],p);let I=be(g.label,`${p}/label`,500),A=be(g.value,`${p}/value`,500);d.has(A)&&D("NATIVE_DATA_FIELD_OPTION_VALUE_DUPLICATE",`${p}/value`),d.add(A);let O=en(g.description,`${p}/description`,2e3),b=en(g.color,`${p}/color`,64),_;return g.children!==void 0&&((!t.startsWith("cascade.")||!Array.isArray(g.children))&&D("NATIVE_DATA_FIELD_OPTION_CHILDREN_INVALID",`${p}/children`),(g.children.length<1||g.children.length>100)&&D("NATIVE_DATA_FIELD_OPTION_CHILDREN_INVALID",`${p}/children`),_=r(g.children,`${p}/children`,a+1)),{label:I,value:A,...O===void 0?{}:{description:O},...b===void 0?{}:{color:b},..._?{children:_}:{}}})};return r(e,n,1)}function sa(e,t,o){let n=`${o}/source`;if(e===void 0){Li.has(t)&&D("NATIVE_DATA_FIELD_SOURCE_REQUIRED",n);return}Li.has(t)||D("NATIVE_DATA_FIELD_SOURCE_TYPE_INVALID",n);let i=ge(e,n);Ie(i,["kind","resourceCode","labelField","searchFields","descriptionFields","snapshotFields","filters","pageSize","loadMode","clearOnBindingChange"],n),i.kind!=="resource"&&D("NATIVE_DATA_FIELD_SOURCE_KIND_INVALID",`${n}/kind`);let r=be(i.resourceCode,`${n}/resourceCode`,64);io.test(r)||D("NATIVE_RESOURCE_CODE_INVALID",`${n}/resourceCode`);let c=Re(i.labelField,`${n}/labelField`),s=no(i.searchFields,`${n}/searchFields`,10),a=no(i.descriptionFields,`${n}/descriptionFields`,10),d=no(i.snapshotFields,`${n}/snapshotFields`,50),f=Me(i.pageSize,`${n}/pageSize`,1,100),u;i.loadMode!==void 0&&(["search","all"].includes(String(i.loadMode))||D("NATIVE_DATA_FIELD_SOURCE_LOAD_MODE_INVALID",`${n}/loadMode`),u=i.loadMode);let p=aa(i.filters,`${n}/filters`);return i.clearOnBindingChange!==void 0&&typeof i.clearOnBindingChange!="boolean"&&D("NATIVE_DATA_FIELD_SOURCE_BINDING_RESET_INVALID",`${n}/clearOnBindingChange`),{kind:"resource",resourceCode:r,labelField:c,...s?{searchFields:s}:{},...a?{descriptionFields:a}:{},...d?{snapshotFields:d}:{},...p?{filters:p}:{},...f===void 0?{}:{pageSize:f},...u?{loadMode:u}:{},...i.clearOnBindingChange===void 0?{}:{clearOnBindingChange:i.clearOnBindingChange}}}function aa(e,t){if(e!==void 0)return(!Array.isArray(e)||e.length>20)&&D("NATIVE_DATA_FIELD_SOURCE_FILTERS_INVALID",t),e.map((o,n)=>{let i=`${t}/${n}`,r=ge(o,i),c=Object.prototype.hasOwnProperty.call(r,"value"),s=Object.prototype.hasOwnProperty.call(r,"binding");Ie(r,c?["field","operator","value"]:["field","operator","binding"],i),c===s&&D("NATIVE_DATA_FIELD_SOURCE_FILTER_VALUE_INVALID",i);let a=Re(r.field,`${i}/field`);["eq","in"].includes(String(r.operator))||D("NATIVE_DATA_FIELD_SOURCE_FILTER_OPERATOR_INVALID",`${i}/operator`);let d=r.operator;if(c)return{field:a,operator:d,value:r.value};let f=ge(r.binding,`${i}/binding`);return Ie(f,["kind","field"],`${i}/binding`),f.kind!=="field"&&D("NATIVE_DATA_FIELD_SOURCE_BINDING_KIND_INVALID",`${i}/binding/kind`),{field:a,operator:d,binding:{kind:"field",field:Re(f.field,`${i}/binding/field`)}}})}function ca(e,t,o){let n={};if(e.maxLength!==void 0&&(["text.short","text.long","text.rich"].includes(t)||D("NATIVE_DATA_FIELD_MAX_LENGTH_TYPE_INVALID",`${o}/maxLength`),n.maxLength=Qt(e.maxLength,`${o}/maxLength`,1,1e6)),(e.precision!==void 0||e.scale!==void 0)&&((t!=="number.decimal"||e.precision===void 0)&&D("NATIVE_DATA_FIELD_DECIMAL_CONFIG_INVALID",o),n.precision=Qt(e.precision,`${o}/precision`,1,1e3),n.scale=e.scale===void 0?0:Qt(e.scale,`${o}/scale`,0,n.precision)),e.min!==void 0||e.max!==void 0){["number.integer","number.decimal"].includes(t)||D("NATIVE_DATA_FIELD_NUMERIC_BOUNDS_TYPE_INVALID",o);let i=Fi(e.min,`${o}/min`),r=Fi(e.max,`${o}/max`);t==="number.integer"&&[i,r].some(c=>c!==void 0&&!Number.isSafeInteger(c))&&D("NATIVE_DATA_FIELD_NUMERIC_BOUNDS_INVALID",o),i!==void 0&&r!==void 0&&i>r&&D("NATIVE_DATA_FIELD_NUMERIC_BOUNDS_INVALID",o),i!==void 0&&(n.min=i),r!==void 0&&(n.max=r)}return e.timePrecision!==void 0&&((!["time","datetime","datetime-range"].includes(t)||!["minute","second"].includes(e.timePrecision))&&D("NATIVE_DATA_FIELD_TIME_PRECISION_INVALID",`${o}/timePrecision`),n.timePrecision=e.timePrecision),n}function da(e,t,o){if(e===void 0)return;let n=`${o}/file`;["file","image","signature"].includes(t)||D("NATIVE_DATA_FIELD_FILE_TYPE_INVALID",n);let i=ge(e,n);Ie(i,["maxCount","maxSizeMb","accept"],n);let r=Me(i.maxCount,`${n}/maxCount`,1,100);t==="signature"&&r!==void 0&&r!==1&&D("NATIVE_DATA_FIELD_SIGNATURE_COUNT_INVALID",`${n}/maxCount`);let c=Me(i.maxSizeMb,`${n}/maxSizeMb`,1,1024),s;return i.accept!==void 0&&((!Array.isArray(i.accept)||i.accept.length>50)&&D("NATIVE_DATA_FIELD_FILE_ACCEPT_INVALID",`${n}/accept`),s=i.accept.map((a,d)=>be(a,`${n}/accept/${d}`,255)),new Set(s).size!==s.length&&D("NATIVE_DATA_FIELD_FILE_ACCEPT_INVALID",`${n}/accept`)),{...r===void 0?{}:{maxCount:r},...c===void 0?{}:{maxSizeMb:c},...s===void 0?{}:{accept:s}}}function la(e,t,o){let n=`${o}/serial`;if(e===void 0){t==="serial-number"&&D("NATIVE_DATA_FIELD_SERIAL_REQUIRED",n);return}t!=="serial-number"&&D("NATIVE_DATA_FIELD_SERIAL_TYPE_INVALID",n);let i=ge(e,n);Ie(i,["prefix","digits","start"],n);let r=en(i.prefix,`${n}/prefix`,64),c=Me(i.digits,`${n}/digits`,1,32),s=Me(i.start,`${n}/start`,0,Number.MAX_SAFE_INTEGER);return{...r===void 0?{}:{prefix:r},...c===void 0?{}:{digits:c},...s===void 0?{}:{start:s}}}function ua(e,t,o){let n=`${o}/subtable`;if(e===void 0){t==="subtable"&&D("NATIVE_DATA_FIELD_SUBTABLE_REQUIRED",n);return}t!=="subtable"&&D("NATIVE_DATA_FIELD_SUBTABLE_TYPE_INVALID",n);let i=ge(e,n);Ie(i,["resourceCode","foreignKey","orderField","minRows","maxRows"],n);let r=be(i.resourceCode,`${n}/resourceCode`,64);io.test(r)||D("NATIVE_RESOURCE_CODE_INVALID",`${n}/resourceCode`);let c=Re(i.foreignKey,`${n}/foreignKey`),s=Re(i.orderField,`${n}/orderField`);s===c&&D("NATIVE_DATA_FIELD_SUBTABLE_ORDER_FIELD_INVALID",`${n}/orderField`);let a=Me(i.maxRows,`${n}/maxRows`,1,500),d=Me(i.minRows,`${n}/minRows`,0,500);return(d??0)>(a??20)&&D("NATIVE_DATA_FIELD_SUBTABLE_MIN_ROWS_INVALID",`${n}/minRows`),{resourceCode:r,foreignKey:c,orderField:s,...d===void 0?{}:{minRows:d},...a===void 0?{}:{maxRows:a}}}function no(e,t,o){if(e===void 0)return;(!Array.isArray(e)||e.length>o)&&D("NATIVE_DATA_FIELD_SOURCE_FIELDS_INVALID",t);let n=e.map((i,r)=>Re(i,`${t}/${r}`));return new Set(n).size!==n.length&&D("NATIVE_DATA_FIELD_SOURCE_FIELDS_INVALID",t),n}function Re(e,t){let o=be(e,t,63);return xi.test(o)||D("NATIVE_FIELD_CODE_INVALID",t),o}function ge(e,t){return(!e||typeof e!="object"||Array.isArray(e))&&D("NATIVE_OBJECT_REQUIRED",t),e}function Ie(e,t,o){let n=new Set(t);for(let i of Object.keys(e))n.has(i)||D("NATIVE_PROPERTY_UNKNOWN",`${o}/${i}`)}function be(e,t,o){return(typeof e!="string"||e.length===0||e.length>o)&&D("NATIVE_STRING_INVALID",t),e}function en(e,t,o){if(e!==void 0)return(typeof e!="string"||e.length>o)&&D("NATIVE_STRING_INVALID",t),e}function oo(e,t){if(e!==void 0)return typeof e!="boolean"&&D("NATIVE_BOOLEAN_REQUIRED",t),e}function Me(e,t,o,n){if(e!==void 0)return Qt(e,t,o,n)}function Fi(e,t){if(e!==void 0)return(typeof e!="number"||!Number.isFinite(e))&&D("NATIVE_NUMBER_REQUIRED",t),e}function Qt(e,t,o,n){return(!Number.isSafeInteger(e)||Number(e)<o||Number(e)>n)&&D("NATIVE_INTEGER_OUT_OF_RANGE",t),Number(e)}function D(e,t){throw new ye(e,t)}var Tt=["created_by","updated_by","created_at","updated_at"];function tt(e){return Tt.includes(e)}function ao(e){return Tt.some(t=>Object.prototype.hasOwnProperty.call(e.fieldPolicies||{},t))}var Ui=on.map(e=>e.code);function co(e){return Ui.includes(e)}var Ki=["eq","neq","gt","gte","lt","lte","contains","startsWith","endsWith","in","between","has","hasAny","hasAll","overlaps","containedBy","jsonContains","isEmpty","isNotEmpty"],fa=new Set(Ki);function pa(e){return fa.has(String(e))}var lo=["eq","neq","contains","startsWith","endsWith","in","isEmpty","isNotEmpty"],Rt=["eq","neq","gt","gte","lt","lte","between","in","isEmpty"],ma=["eq","neq","in","isEmpty"],sn=["eq","neq","in","isEmpty","isNotEmpty"],nt=["has","hasAny","hasAll","isEmpty","isNotEmpty"],Mi=["overlaps","contains","containedBy","isEmpty"],uo=["jsonContains","isEmpty","isNotEmpty"],fo=["isEmpty","isNotEmpty"],_a={"text.short":lo,"text.long":lo,"text.rich":lo,"number.integer":Rt,"number.decimal":Rt,boolean:ma,date:Rt,time:Rt,datetime:Rt,"date-range":Mi,"datetime-range":Mi,"option.single":sn,"option.multiple":nt,"cascade.single":nt,"cascade.multiple":nt,"user.single":sn,"user.multiple":nt,"department.single":sn,"department.multiple":nt,"resource-ref.single":sn,"resource-ref.multiple":nt,file:fo,image:fo,signature:fo,address:uo,location:uo,uuid:["eq","neq","in","isEmpty"],json:uo,"serial-number":["eq","neq","in","contains","startsWith"],subtable:[]},ga=new Set(["text.short","text.long","text.rich","option.single","user.single","department.single","resource-ref.single","serial-number"]),Aa=new Set(["option.multiple","cascade.single","cascade.multiple","user.multiple","department.multiple","resource-ref.multiple","file","image","signature","address","location","json","subtable"]);function po(e){return _a[e]}function Ea(e,t){return po(e).includes(t)}function an(e){return ga.has(e)}function ot(e){return!Aa.has(e)}function mo(e){return po(e).length>0}var Bi=new Set(["number.integer","number.decimal"]),Gi=new Set(["text.short","text.long","number.integer","number.decimal","date","time","datetime","serial-number"]),Ia=new Set([...Gi,"boolean","uuid"]),ya=new Set(["option.single","user.single","department.single","resource-ref.single"]);function ba(e,t){return t==="sum"||t==="avg"?Bi.has(e)?{valueExpression:"column",numericResult:!0}:null:t==="min"||t==="max"?Gi.has(e)?{valueExpression:"column",numericResult:Bi.has(e)}:null:ya.has(e)?{valueExpression:"snapshot-value",numericResult:!0}:Ia.has(e)?{valueExpression:"column",numericResult:!0}:null}var dn=["version","maxBytes","fields"];function go(e,t){if(e===void 0)return;let o=_o(e,t);qi(o,dn,t);let n=cn(o.version,`${t}/version`,1,1e6),i=cn(o.maxBytes,`${t}/maxBytes`,2,196608);(!n||!i)&&ce("NATIVE_DATA_DRAFT_STATE_SCHEMA_INVALID",t);let r=_o(o.fields,`${t}/fields`),c=Object.entries(r);(!c.length||c.length>50)&&ce("NATIVE_DATA_DRAFT_STATE_FIELDS_INVALID",`${t}/fields`);for(let[s,a]of c){let d=`${t}/fields/${s}`;/^[A-Za-z][A-Za-z0-9_]{0,62}$/.test(s)||ce("NATIVE_DATA_DRAFT_STATE_FIELD_CODE_INVALID",d);let f=_o(a,d),u=zi(f.type,`${d}/type`,32),p=u==="string"?["type","required","maxLength","enum"]:u==="json.object"?["type","required","maxBytes"]:["type","required"];if(["string","number","integer","boolean","json.object"].includes(u)||ce("NATIVE_DATA_DRAFT_STATE_FIELD_TYPE_INVALID",`${d}/type`),qi(f,p,d),Na(f.required,`${d}/required`),u==="string"){let g=cn(f.maxLength,`${d}/maxLength`,1,196608);g||ce("NATIVE_DATA_DRAFT_STATE_FIELD_INVALID",d),f.enum!==void 0&&Oa(f.enum,`${d}/enum`,100,!1).some(A=>A.length>g)&&ce("NATIVE_DATA_DRAFT_STATE_FIELD_INVALID",`${d}/enum`)}else if(u==="json.object"){let g=cn(f.maxBytes,`${d}/maxBytes`,2,65536);(!g||g>i)&&ce("NATIVE_DATA_DRAFT_STATE_FIELD_INVALID",d)}}}function Oa(e,t,o,n){(!Array.isArray(e)||!n&&e.length===0||e.length>o)&&ce("NATIVE_DATA_SURFACE_STRING_ARRAY_INVALID",t);let i=e.map((r,c)=>zi(r,`${t}/${c}`,255));return new Set(i).size!==i.length&&ce("NATIVE_DATA_SURFACE_STRING_ARRAY_INVALID",t),i}function _o(e,t){return(!e||typeof e!="object"||Array.isArray(e))&&ce("NATIVE_OBJECT_REQUIRED",t),e}function qi(e,t,o){let n=new Set(t);for(let i of Object.keys(e))n.has(i)||ce("NATIVE_PROPERTY_UNKNOWN",`${o}/${i}`)}function zi(e,t,o){return(typeof e!="string"||e.length===0||e.length>o)&&ce("NATIVE_STRING_INVALID",t),e}function Na(e,t){e!==void 0&&typeof e!="boolean"&&ce("NATIVE_BOOLEAN_REQUIRED",t)}function cn(e,t,o,n){return(!Number.isSafeInteger(e)||Number(e)<o||Number(e)>n)&&ce("NATIVE_INTEGER_INVALID",t),Number(e)}function ce(e,t){throw new ye(e,t)}var Ta=500,Se={surface:["mutationOwner","generated","fields","list","form","detail","mobile","views"],generated:["list","detail","create","update","delete"],field:["label","type","widget","section","requiredHint","system","hidden","readCapabilities","createCapabilities","updateCapabilities","maxLength","precision","scale","exactDecimal","min","max","rangeBoundary","maxCount","maxSizeMb","accept","options","list","searchable","sortable","source","userCandidates","timePrecision","serial","subtable"],list:["actions","fieldOrder","defaultPageSize","searchableFields","filterFields","defaultSort"],defaultSort:["field","order"],form:["layout","fieldOrder","draftState"],detail:["layout","fieldOrder"],layout:["layout","fieldOrder","draftState"],draftState:dn,mobile:["enabled"]},Ra={"text.short":["text","email","phone"],"text.long":["textarea"],"text.rich":["rich-text"],"number.integer":["number","rating"],"number.decimal":["number","money","percent"],boolean:["switch"],date:["date"],time:["time"],datetime:["datetime"],"date-range":["date-range"],"datetime-range":["datetime-range"],"option.single":["select","radio"],"option.multiple":["multi-select","checkbox"],"cascade.single":["cascade"],"cascade.multiple":["cascade"],"user.single":["directory-user"],"user.multiple":["directory-user"],"department.single":["directory-department","scope"],"department.multiple":["directory-department","scope"],"resource-ref.single":["select","radio","resource"],"resource-ref.multiple":["multi-select","checkbox","resource"],file:["attachment"],image:["image"],signature:["signature"],address:["address"],location:["location"],uuid:["readonly"],json:["json"],"serial-number":["readonly"],subtable:["subtable"]};function ln(e,t,o){if(e===void 0)return;let n=re(e,o);Ce(n,Se.surface,o);let i=n.mutationOwner===void 0?"native":De(n.mutationOwner,`${o}/mutationOwner`,16);["native","action","readonly","workflow","queued-command"].includes(i)||j("NATIVE_DATA_SURFACE_MUTATION_OWNER_INVALID",`${o}/mutationOwner`);let r=n.generated===void 0?{}:re(n.generated,`${o}/generated`);Ce(r,Se.generated,`${o}/generated`);for(let a of Se.generated)Eo(r[a],`${o}/generated/${a}`);if(i!=="native")for(let a of["create","update","delete"])r[a]===!0&&j("NATIVE_DATA_SURFACE_MUTATION_OWNER_CONFLICT",`${o}/generated/${a}`);let c=new Map(t.map(a=>[a.code,a])),s=re(n.fields,`${o}/fields`);for(let a of Object.keys(s))c.has(a)||j("NATIVE_DATA_SURFACE_FIELD_MISSING",`${o}/fields/${a}`);for(let a of t)Object.prototype.hasOwnProperty.call(s,a.code)||j("NATIVE_DATA_SURFACE_FIELD_REQUIRED",`${o}/fields/${a.code}`),ha(s[a.code],a,`${o}/fields/${a.code}`);for(let a of["create","update"]){let d=r[a]??i==="native",f=t.some(u=>{let p=re(s[u.code],`${o}/fields/${u.code}`);return Hi(u,p,a)});d&&!f&&j("NATIVE_DATA_SURFACE_WRITABLE_FIELDS_REQUIRED",`${o}/generated/${a}`)}if(wa(n.list,c,`${o}/list`),Ji(n.form,c,`${o}/form`,"form"),Ji(n.detail,c,`${o}/detail`,"detail"),n.mobile!==void 0){let a=re(n.mobile,`${o}/mobile`);Ce(a,Se.mobile,`${o}/mobile`),Eo(a.enabled,`${o}/mobile/enabled`)}Ca(n,t,o)}function un(e,t){let o=e.views?.find(i=>i.code===t);o||j("NATIVE_DATA_VIEW_NOT_FOUND",`/surface/views/${t}`);let n=new Map((o.sections||[]).flatMap(i=>i.fields.map(r=>[r,i.title])));return{mutationOwner:e.mutationOwner||"native",generated:o.generated,list:o.list,form:o.form,detail:o.detail,mobile:o.mobile,fields:Object.fromEntries(Object.entries(e.fields).map(([i,r])=>{let c={...r};delete c.section;let s=n.get(i);return[i,{...c,...s?{section:s}:{},list:o.list.fieldOrder.includes(i)}]}))}}function Ca(e,t,o){if(e.views===void 0)return;(!Array.isArray(e.views)||e.views.length>20)&&j("NATIVE_DATA_VIEWS_LIMIT_INVALID",`${o}/views`);let n=new Set;e.views.forEach((i,r)=>{let c=`${o}/views/${r}`,s=re(i,c);Ce(s,["code","name","generated","list","form","detail","mobile","sections"],c);let a=De(s.code,`${c}/code`,64);(!/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/.test(a)||n.has(a))&&j("NATIVE_DATA_VIEW_CODE_INVALID",`${c}/code`),n.add(a),De(s.name,`${c}/name`,255),re(s.generated,`${c}/generated`),re(s.mobile,`${c}/mobile`);for(let f of["list","detail","create","update","delete"])typeof s.generated[f]!="boolean"&&j("NATIVE_DATA_VIEW_OPERATION_INVALID",`${c}/generated/${f}`);typeof s.mobile.enabled!="boolean"&&j("NATIVE_DATA_VIEW_MOBILE_INVALID",`${c}/mobile/enabled`);for(let f of["list","form","detail"]){let u=re(s[f],`${c}/${f}`),p=it(u.fieldOrder,`${c}/${f}/fieldOrder`,500,!0);for(let g of p){let I=e.fields[g];(!I||(I.hidden??I.system)===!0)&&j("NATIVE_DATA_VIEW_FIELD_INVALID",`${c}/${f}/fieldOrder`)}}if(s.sections!==void 0){(!Array.isArray(s.sections)||s.sections.length>100)&&j("NATIVE_DATA_VIEW_SECTIONS_INVALID",`${c}/sections`);let f=new Set;s.sections.forEach((u,p)=>{let g=`${c}/sections/${p}`,I=re(u,g);Ce(I,["title","fields"],g),De(I.title,`${g}/title`,255);for(let A of it(I.fields,`${g}/fields`,100,!0)){let O=e.fields[A];(!O||(O.hidden??O.system)===!0||f.has(A))&&j("NATIVE_DATA_VIEW_FIELD_INVALID",`${g}/fields`),f.add(A)}})}let d=un(e,a);if(ln(d,t,c),s.generated.create!==!1&&(e.mutationOwner||"native")==="native")for(let f of t)Nt(f,e.fields[f.code])&&Hi(f,e.fields[f.code],"create")&&!s.form.fieldOrder.includes(f.code)&&j("NATIVE_DATA_VIEW_CREATE_REQUIRED_FIELD_MISSING",`${c}/form/fieldOrder`)})}function Hi(e,t,o){if(e.type==="serial-number"||t.system===!0)return!1;let n=t[`${o}Capabilities`];return Array.isArray(n)&&n.length>0}function ha(e,t,o){let n=re(e,o);Ce(n,Se.field,o),De(n.label,`${o}/label`,500),n.type!==t.type&&j("NATIVE_DATA_SURFACE_FIELD_TYPE_MISMATCH",`${o}/type`);let i=De(n.widget,`${o}/widget`,64);Ra[t.type].includes(i)||j("NATIVE_DATA_SURFACE_WIDGET_INCOMPATIBLE",`${o}/widget`),ka(n.section,`${o}/section`,255);for(let r of["requiredHint","system","hidden","list","searchable","sortable"])Eo(n[r],`${o}/${r}`);n.searchable===!0&&!an(t.type)&&j("NATIVE_DATA_SURFACE_SEARCH_UNSUPPORTED",`${o}/searchable`),n.sortable===!0&&!ot(t.type)&&j("NATIVE_DATA_SURFACE_SORT_UNSUPPORTED",`${o}/sortable`);for(let r of["readCapabilities","createCapabilities","updateCapabilities"])it(n[r],`${o}/${r}`,100,!0);if(n.maxCount!==void 0&&(!Number.isSafeInteger(n.maxCount)||Number(n.maxCount)<1||Number(n.maxCount)>100)&&j("NATIVE_DATA_SURFACE_MAX_COUNT_INVALID",`${o}/maxCount`),n.maxSizeMb!==void 0&&(!Number.isSafeInteger(n.maxSizeMb)||Number(n.maxSizeMb)<1||Number(n.maxSizeMb)>1024)&&j("NATIVE_DATA_SURFACE_MAX_SIZE_INVALID",`${o}/maxSizeMb`),n.accept!==void 0){let r=Array.isArray(n.accept)?n.accept:[n.accept];it(r,`${o}/accept`,50,!1)}for(let r of["maxLength","precision","scale","exactDecimal","min","max","rangeBoundary","options","source","userCandidates","timePrecision","serial","subtable"])Sa(n,t,r,o);Da(n,t,o)}function wa(e,t,o){if(e===void 0)return;let n=re(e,o);if(Ce(n,Se.list,o),n.actions!==void 0){let i=re(n.actions,`${o}/actions`);Ce(i,["import","export"],`${o}/actions`);for(let r of["import","export"])i[r]!==void 0&&typeof i[r]!="boolean"&&j("NATIVE_DATA_SURFACE_LIST_ACTION_INVALID",`${o}/actions/${r}`)}if(n.fieldOrder!==void 0)for(let i of it(n.fieldOrder,`${o}/fieldOrder`,500,!0))t.has(i)||j("NATIVE_DATA_SURFACE_LIST_FIELD_INVALID",`${o}/fieldOrder`);n.defaultPageSize!==void 0&&(!Number.isSafeInteger(n.defaultPageSize)||Number(n.defaultPageSize)<1||Number(n.defaultPageSize)>200)&&j("NATIVE_DATA_SURFACE_PAGE_SIZE_INVALID",`${o}/defaultPageSize`);for(let[i,r]of[["searchableFields",an],["filterFields",mo]]){if(n[i]===void 0)continue;let c=it(n[i],`${o}/${i}`,100,!0);for(let s of c){let a=t.get(s);(!a||!r(a.type))&&j("NATIVE_DATA_SURFACE_LIST_FIELD_INVALID",`${o}/${i}`)}}if(n.defaultSort!==void 0){let i=re(n.defaultSort,`${o}/defaultSort`);Ce(i,Se.defaultSort,`${o}/defaultSort`);let r=De(i.field,`${o}/defaultSort/field`,63),c=t.get(r);!co(r)&&(!c||!ot(c.type))&&j("NATIVE_DATA_SURFACE_SORT_UNSUPPORTED",`${o}/defaultSort/field`),i.order!==void 0&&!["asc","desc"].includes(i.order)&&j("NATIVE_DATA_SURFACE_SORT_ORDER_INVALID",`${o}/defaultSort/order`)}}function Ji(e,t,o,n){if(e===void 0)return;let i=re(e,o);if(Ce(i,Se[n],o),i.layout!==void 0&&!["flat","sections"].includes(i.layout)&&j("NATIVE_DATA_SURFACE_LAYOUT_INVALID",`${o}/layout`),i.fieldOrder!==void 0){let r=`${o}/fieldOrder`;(!Array.isArray(i.fieldOrder)||i.fieldOrder.length>t.size||i.fieldOrder.length>Ta)&&j("NATIVE_DATA_SURFACE_FIELD_ORDER_INVALID",r);let c=i.fieldOrder.map((s,a)=>De(s,`${r}/${a}`,63));new Set(c).size!==c.length&&j("NATIVE_DATA_SURFACE_FIELD_ORDER_INVALID",r),c.forEach((s,a)=>{t.has(s)||j("NATIVE_DATA_SURFACE_FIELD_ORDER_FIELD_MISSING",`${r}/${a}`)})}n==="form"&&go(i.draftState,`${o}/draftState`)}function Sa(e,t,o,n){e[o]===void 0&&t[o]===void 0||((e[o]===void 0||t[o]===void 0)&&j("NATIVE_DATA_SURFACE_FIELD_PROJECTION_MISMATCH",`${n}/${o}`),Q(e[o])!==Q(t[o])&&j("NATIVE_DATA_SURFACE_FIELD_PROJECTION_MISMATCH",`${n}/${o}`))}function Da(e,t,o){let n=t.file||{},i={...e.maxCount===void 0?{}:{maxCount:e.maxCount},...e.maxSizeMb===void 0?{}:{maxSizeMb:e.maxSizeMb},...e.accept===void 0?{}:{accept:Ao(e.accept)}};for(let r of["maxCount","maxSizeMb","accept"]){if(i[r]===void 0&&n[r]===void 0)continue;(i[r]===void 0||n[r]===void 0)&&j("NATIVE_DATA_SURFACE_FIELD_PROJECTION_MISMATCH",`${o}/${r}`);let c=r==="accept"?Ao(i[r]):i[r],s=r==="accept"?Ao(n[r]):n[r];Q(c)!==Q(s)&&j("NATIVE_DATA_SURFACE_FIELD_PROJECTION_MISMATCH",`${o}/${r}`)}}function Ao(e){return(Array.isArray(e)?[...e]:[e]).sort((t,o)=>{let n=String(t),i=String(o);return n===i?0:n<i?-1:1})}function it(e,t,o,n){(!Array.isArray(e)||!n&&e.length===0||e.length>o)&&j("NATIVE_DATA_SURFACE_STRING_ARRAY_INVALID",t);let i=e.map((r,c)=>De(r,`${t}/${c}`,255));return new Set(i).size!==i.length&&j("NATIVE_DATA_SURFACE_STRING_ARRAY_INVALID",t),i}function re(e,t){return(!e||typeof e!="object"||Array.isArray(e))&&j("NATIVE_OBJECT_REQUIRED",t),e}function Ce(e,t,o){let n=new Set(t);for(let i of Object.keys(e))n.has(i)||j("NATIVE_PROPERTY_UNKNOWN",`${o}/${i}`)}function De(e,t,o){return(typeof e!="string"||e.length===0||e.length>o)&&j("NATIVE_STRING_INVALID",t),e}function ka(e,t,o){e!==void 0&&(typeof e!="string"||e.length>o)&&j("NATIVE_STRING_INVALID",t)}function Eo(e,t){e!==void 0&&typeof e!="boolean"&&j("NATIVE_BOOLEAN_REQUIRED",t)}function j(e,t){throw new ye(e,t)}var rt=class extends Error{constructor(o,n){super(`${o}: ${n}`);this.pointer=o;this.reason=n}pointer;reason;code="NATIVE_MANAGED_CONCURRENCY_INVALID"};function Io(e,t,o){if(e===void 0)return;let n=(_,E)=>{throw new rt(_,E)},i=(_,E,T)=>((!_||typeof _!="object"||Array.isArray(_)||Object.keys(_).some(l=>!T.includes(l)))&&n(E,"object contains unsupported properties"),_),r=(_,E,T,l)=>{(!Number.isSafeInteger(_)||_<E||_>T)&&n(l,`expected integer ${E}..${T}`)},c=(_,E)=>{(typeof _!="string"||!/^[a-z][a-z0-9_-]{0,63}$/.test(_))&&n(E,"invalid code")},s=(_,E,T)=>((!Array.isArray(_)||_.length>E)&&n(T,"array exceeds bound"),_),a=(_,E)=>{let T=t.find(l=>l.code===_);return T||n(E,"unknown resource"),T},d=(_,E,T)=>{let l=_.schema.fields.find(y=>y.code===E);return!l&&E!=="id"&&n(T,"unknown field"),l},f=(_,E,T=!1)=>{i(_,E,Object.keys(_||{})),Object.keys(_).length>8&&n(E,"at most eight parameters");for(let[l,y]of Object.entries(_))if(c(l,E),i(y,E,["type","values","minimum","maximum","minLength","maxLength"]),y.type==="uuid")Object.keys(y).length!==1&&n(E,"uuid has no options");else if(T&&y.type==="boolean")i(y,E,["type"]);else if(T&&y.type==="string"&&y.values===void 0)i(y,E,["type","minLength","maxLength"]),r(y.maxLength,1,256,E),y.minLength!==void 0&&r(y.minLength,0,y.maxLength,E);else if(y.type==="string"){i(y,E,["type","values"]);let R=s(y.values,100,E);(!R.length||R.some(h=>typeof h!="string"||h.length>128)||new Set(R).size!==R.length)&&n(E,"finite string values required")}else y.type==="integer"?(i(y,E,["type","minimum","maximum"]),r(y.minimum,0,1e6,E),r(y.maximum,y.minimum,y.minimum+1e3,E)):n(E,"unsupported parameter type")},u=(_,E,T,l=!1)=>{i(_,T,["from","key","value"]),!(_.from==="input"&&Object.keys(_).length===2&&Object.hasOwn(E,_.key))&&((_.from==="actor"||l&&_.from==="allocation")&&Object.keys(_).length===1||_.from==="literal"&&Object.keys(_).length===2&&Object.hasOwn(_,"value")&&(_.value===null||["string","boolean"].includes(typeof _.value)||typeof _.value=="number"&&Number.isFinite(_.value))&&JSON.stringify(_.value).length<=512||n(T,"invalid binding"))},p=(_,E,T)=>{u(_,E,T),!(_.from==="input"&&E[_.key].type==="uuid")&&(_.from==="literal"&&typeof _.value=="string"&&/^[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(_.value)||n(T,"record and allocation identifiers require a UUID binding"))},g=(_,E,T)=>{u(_,E,T),!(_.from==="input"&&E[_.key].type==="integer"&&E[_.key].minimum>=1)&&(_.from==="literal"&&Number.isSafeInteger(_.value)&&_.value>=1||n(T,"expectedRevision requires a positive integer binding"))},I="/data/concurrency";JSON.stringify(e).length>131072&&n(I,"declaration exceeds 128 KiB");let A=i(e,I,["version","admission","reads","quotas","commands"]);A.version!==1&&n(I,"unsupported version"),i(A.admission,I,["perSecond","burst","maxInFlight"]),r(A.admission.perSecond,1,1e3,I),r(A.admission.burst,1,1e3,I),r(A.admission.maxInFlight,1,1e3,I);let O=(_,E)=>{let T=new Set;for(let l of _)c(l?.code,E),T.has(l.code)&&n(E,"duplicate code"),T.add(l.code)};O(s(A.reads,32,I),I),O(s(A.quotas,16,I),I),O(s(A.commands,32,I),I);for(let _ of A.reads){let E=`${I}/reads/${_.code}`;i(_,E,["code","resourceCode","parameters","select","where","limit","scope","freshSeconds","staleSeconds","maxKeys","sourcePerSecond","dependencies"]);let T=a(_.resourceCode,E);f(_.parameters,E),["subject","application"].includes(_.scope)||n(E,"invalid cache scope"),_.scope==="application"&&T.dataPolicyCode&&n(E,"shared cache cannot bypass a row policy");let l=s(_.select,32,E);l.length||n(E,"select required"),l.forEach(R=>d(T,R,E));let y=s(_.dependencies,64,E);y.forEach(R=>d(T,R,E));for(let R of s(_.where||[],8,E))i(R,E,["field","value"]),d(T,R.field,E),u(R.value,_.parameters,E),_.scope==="application"&&R.value.from==="actor"&&n(E,"actor requires subject cache"),y.includes(R.field)||n(E,"filter dependency missing");l.some(R=>!y.includes(R))&&n(E,"selected field dependency missing"),r(_.limit,1,100,E),r(_.freshSeconds,1,300,E),r(_.staleSeconds,0,300,E),r(_.maxKeys,1,1e4,E),r(_.sourcePerSecond,1,20,E)}for(let _ of A.quotas){let E=`${I}/quotas/${_.code}`;i(_,E,["code","sourceResource","capacityField","allocationResource","allocationField","reservationSeconds"]);let T=a(_.sourceResource,E),l=a(_.allocationResource,E);d(T,_.capacityField,E)?.type!=="number.integer"&&n(E,"capacity must be an integer"),(d(l,_.allocationField,E)?.type!=="uuid"||d(l,_.allocationField,E)?.nullable!==!1)&&n(E,"allocation reference must be a uuid"),l.surface?.mutationOwner!=="queued-command"&&n(E,"allocation model must be command owned"),_.reservationSeconds!==void 0&&r(_.reservationSeconds,10,86400,E)}new Set(A.quotas.map(_=>_.allocationResource)).size!==A.quotas.length&&n(I,"an allocation model has exactly one pool owner");for(let _ of A.commands){let E=`${I}/commands/${_.code}`;i(_,E,["code","mode","intake","execution","capability","parameters","resourceKey","admission","deadlineSeconds","guards","operations","quota"]),_.mode!==void 0&&!["permit","durable"].includes(_.mode)&&n(E,"unsupported mode");let T=_.mode==="durable";if(f(_.parameters,E,T),u(_.resourceKey,_.parameters,E),o.some(l=>l.code===_.capability)||n(E,"command capability must be declared"),i(_.admission,E,["perSecond","burst","maxInFlight","maxQueue","maxWaitSeconds","permitSeconds"]),r(_.admission.perSecond,1,A.admission.perSecond,E),r(_.admission.burst,1,A.admission.burst,E),r(_.admission.maxInFlight,1,A.admission.maxInFlight,E),r(_.admission.maxQueue,1,1e4,E),r(_.admission.maxWaitSeconds,1,3600,E),(!T||_.admission.permitSeconds!==void 0)&&r(_.admission.permitSeconds,5,60,E),r(_.deadlineSeconds,10,3600,E),T){(_.operations!==void 0||_.guards!==void 0||_.quota!==void 0)&&n(E,"backend-plan does not accept static operations, guards or quota"),i(_.intake,E,["perSecond","burst","maxInFlight"]);for(let R of["perSecond","burst","maxInFlight"])r(_.intake[R],1,1e3,E);let l=i(_.execution,E,["kind","handlerCode","timeoutMs","resources","directory"]);l.kind!=="backend-plan"&&n(E,"durable requires backend-plan"),c(l.handlerCode,E),r(l.timeoutMs,100,3e4,E);let y=s(l.resources,32,E);y.length||n(E,"execution resources required"),new Set(y.map(R=>R.resourceCode)).size!==y.length&&n(E,"duplicate execution resource");for(let R of y){i(R,E,["resourceCode","readFields","writeOperations","writeFields"]);let h=a(R.resourceCode,E);for(let k of["readFields","writeFields"]){let M=s(R[k],64,E);new Set(M).size!==M.length&&n(E,"duplicate field"),M.forEach(L=>{k==="readFields"&&bt.has(L)||d(h,L,E)})}let $=s(R.writeOperations,3,E);(new Set($).size!==$.length||$.some(k=>!["create","update","increment"].includes(k)))&&n(E,"unsupported execution operation"),R.writeFields.some(k=>["id","revision","created_by","updated_by","created_at","updated_at"].includes(k))&&n(E,"record metadata is platform owned"),!$.length&&R.writeFields.length&&n(E,"write fields require an operation"),$.length&&!R.writeFields.length&&n(E,"write operations require fields"),A.quotas.some(k=>k.allocationResource===R.resourceCode)&&$.length&&n(E,"allocation references remain owned by their pool command")}if(l.directory!==void 0){i(l.directory,E,["mode","fields"]),l.directory.mode!=="current-initiator"&&n(E,"only current initiator allowed");let R=s(l.directory.fields,5,E);(!R.length||new Set(R).size!==R.length||R.some(h=>!["displayName","employeeNumber","primaryDepartment","departments","phone"].includes(h)))&&n(E,"unsupported directory fields")}continue}(_.execution!==void 0||_.intake!==void 0)&&n(E,"execution and intake require durable mode");for(let l of s(_.guards||[],8,E)){i(l,E,["resourceCode","id","conditions"]);let y=a(l.resourceCode,E);p(l.id,_.parameters,E);for(let R of s(l.conditions,16,E)){i(R,E,["kind","field","operator","value"]);let h=d(y,R.field,E);["eq","neq","lt","lte","gt","gte"].includes(R.operator)||n(E,"unsupported guard"),R.kind==="database-now"?(h?.type!=="datetime"||!["lt","lte","gt","gte"].includes(R.operator)||R.value!==void 0)&&n(E,"database-now requires datetime and an ordering operator"):(R.kind!==void 0&&R.kind!=="value"&&n(E,"unsupported condition kind"),u(R.value,_.parameters,E))}}for(let l of s(_.operations,8,E)){i(l,E,["operation","resourceCode","id","expectedRevision","data"]);let y=a(l.resourceCode,E);y.surface?.mutationOwner!=="queued-command"&&n(E,"command mutations require command owned models");let R=A.quotas.find(h=>h.allocationResource===l.resourceCode);R&&(l.operation==="create"?_.quota?.action!=="allocate"||_.quota.pool!==R.code:Object.hasOwn(l.data||{},R.allocationField))&&n(E,"allocation references are owned by their pool command"),["create","update"].includes(l.operation)||n(E,"unsupported operation"),l.operation==="update"?(p(l.id,_.parameters,E),g(l.expectedRevision,_.parameters,E)):(l.id!==void 0||l.expectedRevision!==void 0)&&n(E,"create has no caller supplied id/revision"),i(l.data,E,Object.keys(l.data||{})),Object.keys(l.data).length>32&&n(E,"too many fields");for(let[h,$]of Object.entries(l.data))h==="id"&&n(E,"record identifiers are platform owned"),d(y,h,E),u($,_.parameters,E,_.quota?.action==="allocate")}if(_.quota){let l=i(_.quota,E,["pool","action","units","mode","allocation"]),y=A.quotas.find(R=>R.code===l.pool);y||n(E,"unknown quota pool"),p(_.resourceKey,_.parameters,E),l.action==="allocate"?(i(l,E,["pool","action","units","mode"]),r(l.units,1,1e3,E),(!["committed","reserved"].includes(l.mode)||l.mode==="reserved"&&!y.reservationSeconds)&&n(E,"invalid allocation mode"),(_.operations.length!==1||_.operations[0].operation!=="create"||_.operations[0].resourceCode!==y.allocationResource||_.operations[0].data[y.allocationField]?.from!=="allocation")&&n(E,"allocation must atomically create its bound business record")):["confirm","release"].includes(l.action)?(i(l,E,["pool","action","allocation"]),p(l.allocation,_.parameters,E),_.operations.length&&n(E,"lifecycle owns allocation state; business reference remains immutable")):n(E,"invalid quota action")}else _.operations.length||n(E,"operations required")}let b=A.commands.filter(_=>_.mode==="durable").map(_=>_.execution.handlerCode);return new Set(b).size!==b.length&&n(I,"handler code must be unique"),JSON.parse(JSON.stringify(A))}var Be=class extends Error{constructor(o,n){super(`\u91D1\u989D\u751F\u547D\u5468\u671F\u58F0\u660E\u65E0\u6548\uFF1A${n}\uFF08${o}\uFF09`);this.pointer=o;this.reason=n}pointer;reason;code="NATIVE_DECIMAL_LIFECYCLE_INVALID"},Oo=["parentTransitions","childTransitions","fulfilledChildStatuses","lockedParentStatuses"],Yi=["amountFieldCode","currencyFieldCode","relationFieldCode","parentFieldCode","rootFieldCode","statusFieldCode","parentRelationValue","childRelationValue"],pn=e=>!!(e&&typeof e=="object"&&!Array.isArray(e)),fn=e=>Array.isArray(e)?e.filter(pn):[],he=(e,t)=>{throw new Be(e,t)},yo=e=>typeof e=="string"&&/^[A-Za-z0-9._:-]{1,128}$/.test(e),bo=(e,t)=>e<t?-1:e>t?1:0;function mn(e,t="/decimalReservationLifecycle"){if(e===void 0)return;if(!pn(e)||Object.keys(e).some(i=>!Oo.includes(i))||Oo.some(i=>!Object.prototype.hasOwnProperty.call(e,i)))return he(t,"\u5FC5\u987B\u5B8C\u6574\u58F0\u660E\u56DB\u9879\u89C4\u5219\uFF0C\u4E0D\u80FD\u5305\u542B\u672A\u77E5\u5C5E\u6027");let o=i=>{let r=e[i];if(!Array.isArray(r)||r.length>64)return he(`${t}/${i}`,"\u72B6\u6001\u8FB9\u6700\u591A 64 \u6761");let c=new Set;return r.map((s,a)=>{let d=`${t}/${i}/${a}`;if(!pn(s)||Object.keys(s).some(u=>u!=="from"&&u!=="to")||!yo(s.from)||!yo(s.to)||s.from===s.to)return he(d,"\u72B6\u6001\u8FB9\u5FC5\u987B\u5305\u542B\u4E0D\u540C\u7684\u6709\u6548 from/to");let f=JSON.stringify([s.from,s.to]);return c.has(f)?he(d,"\u72B6\u6001\u8FB9\u4E0D\u80FD\u91CD\u590D"):(c.add(f),{from:s.from,to:s.to})}).sort((s,a)=>bo(s.from,a.from)||bo(s.to,a.to))},n=i=>{let r=e[i];return!Array.isArray(r)||r.length<1||r.length>16||r.some(c=>!yo(c))||new Set(r).size!==r.length?he(`${t}/${i}`,"\u72B6\u6001\u96C6\u5408\u5FC5\u987B\u5305\u542B 1 \u5230 16 \u4E2A\u4E0D\u91CD\u590D\u7684\u6709\u6548\u72B6\u6001"):[...r].sort(bo)};return{parentTransitions:o("parentTransitions"),childTransitions:o("childTransitions"),fulfilledChildStatuses:n("fulfilledChildStatuses"),lockedParentStatuses:n("lockedParentStatuses")}}function No(e,t,o="/config/data/resources"){fn(e).forEach((n,i)=>{let r=`${o}/${i}/decimalReservationLifecycle`,c=mn(n.decimalReservationLifecycle,r);if(!c)return;let s=fn(t).map(u=>u.platformAccess?.decimalReservation).filter(u=>pn(u)&&u.resourceCode===n.code),a=s.find(u=>u.mode==="reserve");if(!a)return he(r,"\u9700\u8981\u540C\u8D44\u6E90\u5DF2\u58F0\u660E\u7684 reserve \u52A8\u4F5C\u6620\u5C04");if(Yi.some(u=>typeof a[u]!="string")||s.some(u=>Yi.some(p=>u[p]!==a[p])))return he(r,"\u540C\u8D44\u6E90\u989D\u5EA6\u52A8\u4F5C\u7684\u5B57\u6BB5\u6620\u5C04\u5FC5\u987B\u4E00\u81F4");let d=fn(n.schema?.fields).find(u=>u.code===a.statusFieldCode);if(d?.type!=="option.single")return he(r,"\u989D\u5EA6\u72B6\u6001\u5B57\u6BB5\u5FC5\u987B\u4E3A option.single");let f=new Set(fn(d.options).map(u=>u.value));for(let u of Oo)if((u==="parentTransitions"||u==="childTransitions"?c[u].flatMap(g=>[g.from,g.to]):c[u]).some(g=>!f.has(g)))return he(`${r}/${u}`,"\u72B6\u6001\u5FC5\u987B\u6765\u81EA\u989D\u5EA6\u72B6\u6001\u5B57\u6BB5\u7684\u9009\u9879");if(s.some(u=>u.mode==="reserve"&&Array.isArray(u.eligibleParentStatuses)&&u.eligibleParentStatuses.some(p=>c.lockedParentStatuses.includes(String(p)))))return he(`${r}/lockedParentStatuses`,"\u9501\u5B9A\u7236\u72B6\u6001\u4E0D\u80FD\u5141\u8BB8\u65B0\u9884\u7559")})}var Zi=require("crypto");var To=new Set(["option.single","user.single","department.single","resource-ref.single"]),$a=new Set(["option.multiple","cascade.single","cascade.multiple","user.multiple","department.multiple","resource-ref.multiple","address","location","json"]),Qi=new Set(["option.multiple","cascade.single","cascade.multiple","user.multiple","department.multiple","resource-ref.multiple","file","image"]),va=new Set(["option.single","user.single","department.single","resource-ref.single","signature","address","location"]),Pa=new Set([...To,...Qi,"signature","address","location","json"]);function Va(e,t){let o=new Set([...Array.isArray(t?.list?.searchableFields)?t.list.searchableFields:[],...Object.entries(t?.fields||{}).filter(([,n])=>n?.searchable===!0).map(([n])=>n)]);return e.map(n=>er(n,o.has(n.code))).sort((n,i)=>n.code.localeCompare(i.code))}function er(e,t=!1){let o=e.type==="date-range"||e.type==="datetime-range";if(o&&e.rangeBoundary!=="closed"&&e.rangeBoundary!=="half-open")throw new Error("OPENXIANGDA_NATIVE_DATA_RANGE_BOUNDARY_INVALID");return{code:e.code,type:e.type,nullable:!0,indexed:e.indexed===!0,storage:qa(e),index:Ga(e,t),...o?{rangeBoundary:e.rangeBoundary}:{},...e.type==="serial-number"?{serial:{prefix:e.serial?.prefix||"",digits:e.serial?.digits??6,start:e.serial?.start??1}}:{},...e.type==="subtable"&&e.subtable?{subtable:{resourceCode:e.subtable.resourceCode,foreignKey:e.subtable.foreignKey,orderField:e.subtable.orderField,maxRows:e.subtable.maxRows??20}}:{}}}function La(e,t){if(t.type==="subtable")return null;let o=se(t.code),n=tr(e,t),i=[n?` DEFAULT ${n}`:"",za(o,t),xa(o,t)].join("");return`${o} ${t.storage}${i}`}function Fa(e,t){return tr(e,t)}function xa(e,t){if(t.type!=="date-range"&&t.type!=="datetime-range")return"";if(t.rangeBoundary!=="closed"&&t.rangeBoundary!=="half-open")throw new Error("OPENXIANGDA_NATIVE_DATA_RANGE_BOUNDARY_INVALID");let o=t.type==="datetime-range"&&t.rangeBoundary==="closed";return` CHECK (${e} IS NULL OR (NOT isempty(${e}) AND lower(${e}) IS NOT NULL AND upper(${e}) IS NOT NULL AND lower_inc(${e}) AND ${o?"":"NOT "}upper_inc(${e})))`}function ja(e){return e.type==="serial-number"||Ot(e.type)&&e.type!=="subtable"}function Wa(e,t){return t.filter(o=>o.type==="serial-number").map(o=>{let n=gn(e,o.code),i=o.serial?.start??1;return`CREATE SEQUENCE IF NOT EXISTS ${n} AS bigint MINVALUE ${i} START WITH ${i} CACHE 1`})}function Ua(e,t){let o=_n(e);return t.filter(n=>n.type==="serial-number").map(n=>`ALTER SEQUENCE ${gn(e,n.code)} OWNED BY ${o}.${se(n.code)}`)}function Ma(e,t){return t.filter(o=>o.type==="serial-number").map(o=>`GRANT USAGE, SELECT ON SEQUENCE ${gn(e,o.code)} TO "openxiangda_data_api"`)}function Ba(e,t){let o=_n(e),n=[];for(let i of t){if(i.type==="subtable")continue;let r=se(i.code),c=se(ke("idx",e,i.code,i.index));switch(i.index){case"btree":n.push(`CREATE INDEX IF NOT EXISTS ${c} ON ${o} (${r})`);break;case"btree-snapshot-expressions":{let s=se(ke("idx",e,i.code,"snapshot-value")),a=se(ke("idx",e,i.code,"snapshot-label"));n.push(`CREATE INDEX IF NOT EXISTS ${s} ON ${o} ((${r} ->> 'value'))`,`CREATE INDEX IF NOT EXISTS ${a} ON ${o} ((${r} ->> 'label'))`);break}case"gin-jsonb-path":n.push(`CREATE INDEX IF NOT EXISTS ${c} ON ${o} USING GIN (${r} jsonb_path_ops)`);break;case"gist-range":n.push(`CREATE INDEX IF NOT EXISTS ${c} ON ${o} USING GIST (${r})`);break;case"gin-trigram":{let s=To.has(i.type)?`((${r} ->> 'label')) gin_trgm_ops`:`${r} gin_trgm_ops`;n.push(`CREATE INDEX IF NOT EXISTS ${c} ON ${o} USING GIN (${s})`);break}case"none":break}if(i.type==="serial-number"){let s=se(ke("uidx",e,i.code,"serial"));n.push(`CREATE UNIQUE INDEX IF NOT EXISTS ${s} ON ${o} (${r})`)}}return n}function Ka(e,t,o,n){let i=_n(e),r=_n(t),c=se(ke("uidx",e,"environment_id","subtable-parent")),s=se(ke("idx",t,o,n,"subtable-child")),a=se(ke("fk",t,o,e)),d=se(o),f=se(n);return[`CREATE UNIQUE INDEX IF NOT EXISTS ${c} ON ${i} ("tenant_id", "app_code", "environment_key", "id")`,`CREATE INDEX IF NOT EXISTS ${s} ON ${r} ("tenant_id", "app_code", "environment_key", ${d}, ${f}, "id")`,`DO $native_subtable$ BEGIN
2
+ ALTER TABLE ${r}
3
+ ADD CONSTRAINT ${a}
4
+ FOREIGN KEY ("tenant_id", "app_code", "environment_key", ${d})
5
5
  REFERENCES ${i} ("tenant_id", "app_code", "environment_key", "id")
6
6
  ON DELETE CASCADE;
7
7
  EXCEPTION WHEN duplicate_object THEN NULL;
8
- END $native_subtable$`]}function we(e,...t){return`${e}_${(0,gi.createHash)("sha256").update(t.join(":")).digest("hex").slice(0,32)}`}function ae(e){if(!/^[A-Za-z_][A-Za-z0-9_]{0,62}$/.test(e))throw new Error("OPENXIANGDA_NATIVE_IDENTIFIER_INVALID");return`"${e}"`}function qr(e,t){return e.type==="subtable"?"none":t?"gin-trigram":e.indexed?["date-range","datetime-range"].includes(e.type)?"gist-range":so.has(e.type)?"btree-snapshot-expressions":kr.has(e.type)?"gin-jsonb-path":"btree":"none"}function Jr(e){switch(e.type){case"text.short":return`varchar(${e.maxLength??255})`;case"text.long":case"text.rich":return"text";case"number.integer":return"bigint";case"number.decimal":return`numeric(${e.precision??38},${e.scale??10})`;case"boolean":return"boolean";case"date":return"date";case"time":return"time(0)";case"datetime":return"timestamptz";case"date-range":return"daterange";case"datetime-range":return"tstzrange";case"uuid":return"uuid";case"serial-number":return"varchar(255)";case"subtable":return"child-resource";default:return Pr.has(e.type),"jsonb"}}function Ii(e,t){if(pt(t.type)&&t.type!=="subtable")return"'[]'::jsonb";if(t.type!=="serial-number")return"";let o=_i(t.serial?.prefix||""),n=t.serial?.digits??6;return`(${o} || lpad(nextval(${_i(Zt(e,t.code))})::text, ${n}, '0'))`}function Gr(e,t){return Ai.has(t.type)?` CHECK (${e} IS NULL OR jsonb_typeof(${e}) = 'array')`:Vr.has(t.type)?` CHECK (${e} IS NULL OR jsonb_typeof(${e}) = 'object')`:""}function Qt(e){return`"app_data".${ae(e)}`}function Zt(e,t){let o=we("seq",e,t);return`"app_data".${ae(o)}`}function _i(e){return`'${e.replace(/'/g,"''")}'`}var yi=new Set(["option.single","option.multiple","user.single","user.multiple","department.single","department.multiple","resource-ref.single","resource-ref.multiple"]),zr=new Set([...yi,"cascade.single","cascade.multiple","file","image","signature","address","location","json"]),bi=/^[A-Za-z][A-Za-z0-9_]{0,62}$/,Hr=new Set(["__proto__","prototype","constructor"]),en=class extends Error{constructor(o){super("OPENXIANGDA_SCOPE_PROJECTION_FIELD_PATH_INVALID");this.path=o;this.name="NativeScopeSourceFieldPathV2Error"}path;code="OPENXIANGDA_SCOPE_PROJECTION_FIELD_PATH_INVALID"};function Ze(e,t){let o=Ni(e);if(!o)return null;let n=t.get(o[0]);if(!n)return null;let i=o.slice(1).join(".")||void 0;return{field:n,...i?{valuePath:i}:{}}}function tn(e){return!!(e&&e.field.type==="user.single"&&e.valuePath==="value")}function ro(e,t,o){if(!e||!t||!Xr(e))return!1;let{field:n,valuePath:i}=e;if(!i)return t.valueType==="uuid"?n.type==="uuid":["text.short","text.long","serial-number"].includes(n.type);if(i==="value")return!(t.valueSourceResourceCode&&n.type.startsWith("resource-ref.")&&n.source?.resourceCode!==t.valueSourceResourceCode);let s=i.slice(9),r=o.get(n.source?.resourceCode||"")?.get(s)?.type;return t.valueType==="uuid"?r==="uuid":["text.short","text.long","serial-number"].includes(r||"")}function Yr(e,t){let o=Ni(t);if(!o)throw new en(String(t||""));let n=e;for(let i of o){if(!n||typeof n!="object"||!Object.prototype.hasOwnProperty.call(n,i))return;n=n[i]}return n}function Xr(e){let{field:t,valuePath:o}=e;if(!o)return!zr.has(t.type);if(o==="value")return yi.has(t.type);if(!o.startsWith("snapshot."))return!1;let n=o.slice(9);return bi.test(n)&&t.type.startsWith("resource-ref.")&&!!t.source?.snapshotFields?.includes(n)}function Ni(e){if(typeof e!="string"||e.length===0||e.length>192)return null;let t=e.split(".");return![1,2,3].includes(t.length)||t.some(o=>!bi.test(o)||Hr.has(o))||t.length===2&&t[1]!=="value"||t.length===3&&t[1]!=="snapshot"?null:t}var Qr=new Set(["option.single","user.single","department.single","resource-ref.single"]),Zr=new Set(["text.short","text.long","text.rich","number.integer","number.decimal","boolean","date","time","datetime","uuid","serial-number"]),ea=new Set(["value","label","description","color"]),ta=new Set(["avatarUrl","employeeNo","title","mobile","email"]),na=new Set(["fullPath","parent.value","parent.label"]),oa=new Set(["country.value","country.label","province.value","province.label","city.value","city.label","district.value","district.label","street.value","street.label","detail","fullAddress"]),ia=new Set(["longitude","latitude","accuracy"]),sa=new Set(["address","name","province","city","district","source"]);function ra(e){let t=new Map(e.map(o=>[o.code,new Map(o.schema.fields.map(n=>[n.code,n]))]));return e.map(o=>({...o,schema:{...o.schema,fields:o.schema.fields.map(n=>{let i=ca(n,t);if(!Object.keys(i).length)return n;let s={...n};return Object.defineProperty(s,"queryPathTypes",{configurable:!1,enumerable:!1,writable:!1,value:Object.freeze(i)}),s})}}))}function aa(e,t){if(Qr.has(e.type)&&ea.has(t)||e.type==="user.single"&&ta.has(t)||e.type==="department.single"&&na.has(t))return gt(t);if(e.type==="resource-ref.single"){let o=e.queryPathTypes?.[t];return o?{parts:t.split("."),type:o}:null}if(e.type==="address"&&oa.has(t))return gt(t);if(e.type==="location"){if(ia.has(t))return{parts:[t],type:"number.decimal"};if(sa.has(t))return gt(t);if(t==="capturedAt")return{parts:[t],type:"datetime"}}return null}function ca(e,t){if(e.type!=="resource-ref.single"||!e.source)return{};let o=t.get(e.source.resourceCode);return o?Object.fromEntries((e.source.snapshotFields||[]).flatMap(n=>{let i=o.get(n);return i?[[`snapshot.${n}`,Zr.has(i.type)?i.type:"json"]]:[]})):{}}function gt(e){return{parts:e.split("."),type:"text.short"}}var co=["exact-v1","nfkc-space-v1","nfkc-upper-ascii-v1"],Md=256,et=class extends Error{constructor(o,n){super(`\u6761\u4EF6\u552F\u4E00\u952E\u58F0\u660E\u65E0\u6548\uFF1A${n}\uFF08${o}\uFF09`);this.pointer=o;this.reason=n}pointer;reason;code="NATIVE_UNIQUE_KEY_INVALID"},ao=e=>!!(e&&typeof e=="object"&&!Array.isArray(e)),ie=(e,t)=>{throw new et(e,t)},nn=(e,t)=>e<t?-1:e>t?1:0,At=(e,t,o)=>{Object.keys(e).some(n=>!t.includes(n))&&ie(o,"\u4E0D\u652F\u6301\u672A\u77E5\u5C5E\u6027")};function lo(e,t,o="/uniqueKeys"){if(e===void 0)return;if(!Array.isArray(e)||e.length>8)return ie(o,"\u6BCF\u8D44\u6E90\u6700\u591A 8 \u6761\u89C4\u5219");let n=new Map(t.map(s=>[s.code,s])),i=new Set;return e.map((s,a)=>{let r=`${o}/${a}`;if(!ao(s))return ie(r,"\u89C4\u5219\u5FC5\u987B\u662F\u5BF9\u8C61");if(At(s,["code","fields","when"],r),typeof s.code!="string"||!/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/.test(s.code)||s.code.length>20||i.has(s.code))return ie(`${r}/code`,"\u9700\u8981\u4E0D\u91CD\u590D\u4E14\u4E0D\u8D85\u8FC7 20 \u5B57\u7B26\u7684 lower-kebab-case \u6807\u8BC6");if(i.add(s.code),!Array.isArray(s.fields)||s.fields.length<1||s.fields.length>4)return ie(`${r}/fields`,"\u5FC5\u987B\u9009\u62E9 1 \u5230 4 \u4E2A\u5B57\u6BB5");let c=new Set,l=s.fields.map((g,I)=>{let E=`${r}/fields/${I}`;if(!ao(g))return ie(E,"\u5B57\u6BB5\u5FC5\u987B\u662F\u5BF9\u8C61");At(g,["fieldCode","normalizer"],E);let N=n.get(g.fieldCode);if(!N||!["text.short","uuid","option.single","resource-ref.single","user.single"].includes(N.type)||c.has(g.fieldCode))return ie(`${E}/fieldCode`,"\u9700\u8981\u4E0D\u91CD\u590D\u7684\u77ED\u6587\u672C\u3001UUID\u3001\u5355\u9009\u3001\u5355\u8BB0\u5F55\u5F15\u7528\u6216\u5355\u4EBA\u5B57\u6BB5");c.add(g.fieldCode);let y=g.normalizer===void 0?"exact-v1":g.normalizer;return!co.includes(y)||N.type!=="text.short"&&y!=="exact-v1"?ie(`${E}/normalizer`,"\u5F52\u4E00\u5316\u65B9\u5F0F\u4E0D\u652F\u6301\u6216\u4E0E\u5B57\u6BB5\u7C7B\u578B\u4E0D\u7B26"):{fieldCode:N.code,normalizer:y}}).sort((g,I)=>nn(g.fieldCode,I.fieldCode)),p=s.when===void 0?[]:s.when;if(!Array.isArray(p)||p.length>4)return ie(`${r}/when`,"\u6700\u591A 4 \u4E2A\u5408\u53D6\u6761\u4EF6");let d=new Set,u=p.map((g,I)=>{let E=`${r}/when/${I}`;if(!ao(g))return ie(E,"\u6761\u4EF6\u5FC5\u987B\u662F\u5BF9\u8C61");let N=n.get(g.fieldCode);if(!N)return ie(`${E}/fieldCode`,"\u5B57\u6BB5\u4E0D\u5B58\u5728");let y;if(g.operator==="empty"||g.operator==="nonempty"){if(At(g,["fieldCode","operator"],E),N.type!=="text.short")return ie(E,"\u7A7A\u503C\u6761\u4EF6\u4EC5\u652F\u6301\u77ED\u6587\u672C");y={fieldCode:N.code,operator:g.operator}}else if(g.operator==="in"||g.operator==="notIn"){At(g,["fieldCode","operator","values"],E);let A=new Set((N.options??[]).map(T=>T.value));if(N.type!=="option.single"||!Array.isArray(g.values)||g.values.length<1||g.values.length>16||g.values.some(T=>typeof T!="string"||T.length<1||T.length>128||!A.has(T))||new Set(g.values).size!==g.values.length)return ie(E,"\u96C6\u5408\u6761\u4EF6\u9700\u8981 1 \u5230 16 \u4E2A\u4E0D\u91CD\u590D\u7684\u5DF2\u58F0\u660E\u5355\u9009\u503C");y={fieldCode:N.code,operator:g.operator,values:[...g.values].sort(nn)}}else if(g.operator==="eq"||g.operator==="ne"){if(At(g,["fieldCode","operator","value"],E),N.type!=="boolean"||typeof g.value!="boolean")return ie(E,"\u7B49\u503C\u6761\u4EF6\u4EC5\u652F\u6301\u5E03\u5C14\u5B57\u6BB5\u548C\u5E03\u5C14\u503C");y={fieldCode:N.code,operator:g.operator,value:g.value}}else return ie(`${E}/operator`,"\u53EA\u652F\u6301 empty\u3001nonempty\u3001in\u3001notIn \u548C\u5E03\u5C14 eq\u3001ne");let _=JSON.stringify(y);return d.has(_)?ie(E,"\u6761\u4EF6\u4E0D\u80FD\u91CD\u590D"):(d.add(_),y)}).sort((g,I)=>nn(JSON.stringify(g),JSON.stringify(I)));return{code:s.code,fields:l,when:u}}).sort((s,a)=>nn(s.code,a.code))}function uo(e,t){let o=new Set(e.filter(n=>n.type==="user.single").map(n=>n.code));return t?.some(n=>n.fields.some(i=>o.has(i.fieldCode))||n.when?.some(i=>i.operator==="eq"||i.operator==="ne"))?"1.1.0":"1.0.0"}var on={type:"string",pattern:"^[A-Za-z_][A-Za-z0-9_]{0,62}$"},da={type:"array",maxItems:8,items:{type:"object",additionalProperties:!1,required:["code","fields"],properties:{code:{type:"string",maxLength:20,pattern:"^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"},fields:{type:"array",minItems:1,maxItems:4,uniqueItems:!0,items:{type:"object",additionalProperties:!1,required:["fieldCode"],properties:{fieldCode:on,normalizer:{enum:[...co]}}}},when:{type:"array",maxItems:4,uniqueItems:!0,items:{oneOf:[{type:"object",additionalProperties:!1,required:["fieldCode","operator"],properties:{fieldCode:on,operator:{enum:["empty","nonempty"]}}},{type:"object",additionalProperties:!1,required:["fieldCode","operator","values"],properties:{fieldCode:on,operator:{enum:["in","notIn"]},values:{type:"array",minItems:1,maxItems:16,uniqueItems:!0,items:{type:"string",minLength:1,maxLength:128}}}},{type:"object",additionalProperties:!1,required:["fieldCode","operator","value"],properties:{fieldCode:on,operator:{enum:["eq","ne"]},value:{type:"boolean"}}}]}}}}};var Oi={"openxiangda.workflow.instance.completed.v2":"commit","openxiangda.workflow.instance.rejected.v2":"release","openxiangda.workflow.instance.withdrawn.v2":"release"};function Ti(e,t){let o=()=>{throw new Error("NATIVE_EVENT_DECIMAL_RESERVATION_INVALID")},n=u=>!u||typeof u!="object"||Array.isArray(u)?o():u,i=n(e);if(Object.keys(i).some(u=>!["resourceCode","workflowCode","outcomes"].includes(u))||typeof i.resourceCode!="string"||!/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/.test(i.resourceCode)||typeof i.workflowCode!="string"||!/^[A-Za-z0-9._:-]{1,128}$/.test(i.workflowCode)||t.execution!==void 0||!Array.isArray(i.outcomes)||!i.outcomes.length||i.outcomes.length>3)return o();let s=t.resources.find(u=>u.code===i.resourceCode),a=t.reservations.find(u=>u.mode==="reserve"&&u.resourceCode===i.resourceCode),r=t.workflows.find(u=>u.code===i.workflowCode);if(!s||!a||!r||r.resourceCode!==s.code)return o();let c=s.fields.find(u=>u.code===a.statusFieldCode);if(c?.type!=="option.single")return o();let l=new Set(c.options?.map(u=>u.value)),p=new Set,d=i.outcomes.map(u=>{let g=n(u),I=g.eventType;return Object.keys(g).some(E=>!["eventType","mode","eligibleChildStatuses"].includes(E))||typeof I!="string"||!Object.prototype.hasOwnProperty.call(Oi,I)||!t.eventTypes.includes(I)||p.has(I)||g.mode!==Oi[I]||!Array.isArray(g.eligibleChildStatuses)||!g.eligibleChildStatuses.length||g.eligibleChildStatuses.length>16||new Set(g.eligibleChildStatuses).size!==g.eligibleChildStatuses.length||g.eligibleChildStatuses.some(E=>typeof E!="string"||!/^[A-Za-z0-9._:-]{1,128}$/.test(E)||!l.has(E))?o():(p.add(I),{eventType:I,mode:g.mode,eligibleChildStatuses:[...g.eligibleChildStatuses].sort()})}).sort((u,g)=>u.eventType.localeCompare(g.eventType));return{resourceCode:i.resourceCode,workflowCode:i.workflowCode,outcomes:d}}function hi(e,t){let o=n=>Array.isArray(n)?n.filter(i=>i&&typeof i=="object"&&!Array.isArray(i)):[];return{eventTypes:Array.isArray(t.eventTypes)?t.eventTypes:[],execution:t.execution,resources:o(e.data?.resources).map(n=>({code:n.code,fields:o(n.schema?.fields).map(i=>({code:i.code,type:i.type,options:o(i.options).map(s=>({value:s.value}))}))})),reservations:o(e.backend?.operations).flatMap(n=>n.platformAccess?.decimalReservation?[n.platformAccess.decimalReservation]:[]),workflows:o(e.workflows?.definitions).map(n=>({code:n.definition?.code,resourceCode:n.definition?.subject?.resourceCode}))}}var sn=class extends Error{constructor(o,n){super(n);this.pointer=o}pointer;code="NATIVE_EVENT_ACTION_INVALID"};function fo(e,t,o="/events/subscriptions"){if(e.execution===void 0)return;let n=(E,N)=>{throw new sn(`${o}${E}`,N)},i=(E,N,y)=>((!E||typeof E!="object"||Array.isArray(E)||Object.keys(E).some(_=>!y.includes(_)))&&n(N,"Invalid action object or unsupported property"),E),s=i(e.execution,"/execution",["kind","version","operations"]);(s.kind!=="native-data"||s.version!==1)&&n("/execution","Expected native-data version 1"),e.platformAccess&&n("/platformAccess","Native actions do not use application runtime capabilities"),(!Array.isArray(e.eventTypes)||!e.eventTypes.length||e.eventTypes.some(E=>!/^openxiangda\.data\.record\.(created|updated|deleted)\.v2$/.test(E)))&&n("/eventTypes","Native data actions require declared data events");let a=e.filter?.resourceCodes;(!Array.isArray(a)||!a.length||a.length>20)&&n("/filter/resourceCodes","Native actions require explicit source resources");let r=new Map(t.map(E=>[E.code,E])),c=a.map(E=>{let N=r.get(E);return N||n("/filter/resourceCodes","Unknown source resource"),new Set((N.schema?.fields||[]).map(y=>y.code))}),l=new Set(e.payload?.fields||[]),p=e.payload?.includeChanges===!0,d=(E,N)=>{let y=i(E,N,["source","path","value"]);if(y.source==="literal"){(!Object.hasOwn(y,"value")||Object.hasOwn(y,"path"))&&n(N,"Literal binding requires only value");let f;try{f=JSON.stringify(y.value)}catch{n(N,"Literal must be JSON")}return(f===void 0||Buffer.byteLength(f)>65536)&&n(N,"Literal is too large or not JSON"),{source:"literal",value:JSON.parse(f)}}(y.source!=="event"||typeof y.path!="string"||Object.hasOwn(y,"value"))&&n(N,"Expected a literal or event binding");let _=y.path.split(".");(_.length>8||_.some(f=>!/^[A-Za-z0-9_-]+$/.test(f)||["__proto__","prototype","constructor"].includes(f)))&&n(N,"Invalid event path");let A=/^data\.projection\.([A-Za-z][A-Za-z0-9_]{0,62})$/.exec(y.path),T=/^data\.changes\.([A-Za-z][A-Za-z0-9_]{0,62})\.(before|after)$/.exec(y.path);if(A||T){let f=(A||T)[1];c.some(b=>!b.has(f))&&n(N,"Source field must exist on every filtered resource"),l.add(f),T&&(p=!0)}else["id","time","type","subject","data.recordId","data.revision","data.operation","data.resourceCode"].includes(y.path)||n(N,"Event path is not part of the data event contract");return{source:"event",path:y.path}};(!Array.isArray(s.operations)||s.operations.length<1||s.operations.length>16)&&n("/execution/operations","Expected 1 to 16 operations");let u={},g=s.operations.map((E,N)=>{let y=`/execution/operations/${N}`,_=i(E,y,["operation","resourceCode","data","id","expectedRevision"]);["create","update","delete"].includes(_.operation)||n(y,"Unsupported Native operation");let A=r.get(_.resourceCode);A||n(y,"Unknown action target resource");let T=new Map((A.schema?.fields||[]).map(b=>[b.code,b])),f=_.data===void 0?{}:i(_.data,`${y}/data`,[...T.keys()]);return Object.keys(f).length>32&&n(y,"Maximum 32 mapped fields per operation"),_.operation==="create"&&(_.id!==void 0||_.expectedRevision!==void 0)&&n(y,"Create does not accept id or expectedRevision"),_.operation==="delete"&&_.data!==void 0&&n(y,"Delete does not accept data"),Object.keys(f).some(b=>T.get(b)?.type==="serial-number")&&n(y,"Generated fields cannot be assigned"),u[_.resourceCode]=Q(A),{operation:_.operation,resourceCode:_.resourceCode,..._.operation==="create"?{}:{id:d(_.id,`${y}/id`),expectedRevision:d(_.expectedRevision,`${y}/expectedRevision`)},..._.operation==="delete"?{}:{data:Object.fromEntries(Object.entries(f).map(([b,h])=>[b,d(h,`${y}/data/${b}`)]))}}});(l.size>32||[...l].some(E=>c.some(N=>!N.has(E))))&&n("/payload/fields","Payload must contain at most 32 declared source fields");let I={kind:"native-data",version:1,operations:g,resourceDigests:u};return Buffer.byteLength(JSON.stringify(I))>65536&&n("/execution","Action plan exceeds 64 KiB"),{execution:{...I,digest:Q(I)},payload:{includeChanges:p,fields:[...l].sort()}}}function Pe(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function mo(e,t){if(e?.instanceCommands===void 0)return[];let o=Pe(e.instanceCommands);if(!o||!Object.keys(o).length||Object.keys(o).some(i=>!["withdraw","terminate"].includes(i)))return["WORKFLOW_INSTANCE_COMMAND_POLICIES_INVALID"];let n=[];for(let[i,s]of Object.entries(o)){let a=Pe(s),r=i==="withdraw"?["beforeFact","reasonRequired"]:["beforeFact","capability"];if(!a||!Object.keys(a).length||Object.keys(a).some(c=>!r.includes(c))||Object.hasOwn(a,"reasonRequired")&&typeof a.reasonRequired!="boolean"){n.push(`WORKFLOW_INSTANCE_COMMAND_POLICY_INVALID:${i}`);continue}if(i==="terminate"){let c=a.capability;(typeof c!="string"||c.length>255||!/^app:[a-z][a-z0-9]*(?:-[a-z0-9]+)*:[A-Za-z0-9:._-]+$/.test(c)||t&&(!c.startsWith(`app:${t.appCode}:`)||!t.capabilities.includes(c)))&&n.push("WORKFLOW_INSTANCE_TERMINATE_CAPABILITY_INVALID")}if(Object.hasOwn(a,"beforeFact")){let c=a.beforeFact,l=Pe(e.inputSchema),p=Pe(Pe(l?.properties)?.[c]),d=Pe(Pe(e.subject)?.factProjection)?.[c],u=t?.fields.get(d);(typeof c!="string"||!/^[A-Za-z][A-Za-z0-9_]{0,62}$/.test(c)||!Array.isArray(l?.required)||!l.required.includes(c)||p?.type!=="string"||p?.format!=="date-time"||typeof d!="string"||t&&(u?.type!=="datetime"||u.nullable===!0))&&n.push(`WORKFLOW_INSTANCE_COMMAND_DEADLINE_FACT_INVALID:${i}`)}}return n}function la(e,t){let o=e?.terminate?.capability;return typeof o=="string"&&/^app:[a-z][a-z0-9]*(?:-[a-z0-9]+)*:[A-Za-z0-9:._-]+$/.test(o)&&t.includes(o)}function ua(e){return e?.withdraw?.reasonRequired!==!1}function po(e){if(typeof e!="string")return null;let t=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.(\d{1,3}))?(Z|[+-]\d{2}:\d{2})$/.exec(e);if(!t)return null;let[,o,n,i,s,a,r]=t,c=t[8],l=new Date(Date.UTC(Number(o),Number(n),0)).getUTCDate();if(Number(n)<1||Number(n)>12||Number(i)<1||Number(i)>l||Number(s)>23||Number(a)>59||Number(r)>59||c!=="Z"&&(Number(c.slice(1,3))>23||Number(c.slice(4))>59))return null;let p=Date.parse(e);return Number.isFinite(p)?p:null}function fa(e,t,o,n){let i=e?.[t];if(!i||i.beforeFact===void 0)return null;let s=i.beforeFact,a=Pe(o),r=s&&a&&Object.hasOwn(a,s)?po(a[s]):null,c=n instanceof Date?n.getTime():po(n);return r===null||c===null||!Number.isFinite(c)?"WORKFLOW_V2_CANCELLATION_DEADLINE_INVALID":c<r?null:"WORKFLOW_V2_CANCELLATION_DEADLINE_PASSED"}var tt="openxiangda.workflow.step.requested.v2",Ao=[tt,"openxiangda.workflow.step.result_received.v2","openxiangda.workflow.step.completed.v2","openxiangda.workflow.step.continuation_failed.v2"],rn=16384,Si=2048,pa="steps",Eo=/^[A-Za-z][A-Za-z0-9_-]{0,127}$/,wi=/^[A-Za-z][A-Za-z0-9_]{0,62}$/,je=new Set(["__proto__","prototype","constructor"]),B=e=>!!e&&typeof e=="object"&&!Array.isArray(e)&&[Object.prototype,null].includes(Object.getPrototypeOf(e)),Di=e=>{try{let t=JSON.stringify(e);return t===void 0?1/0:new TextEncoder().encode(t).length}catch{return 1/0}},nt=(e,t,o=0)=>{if(o>32)return!1;if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t))return e.length===t.length&&e.every((s,a)=>nt(s,t[a],o+1));if(!B(e)||!B(t))return!1;let n=Object.keys(e).filter(s=>e[s]!==void 0),i=Object.keys(t).filter(s=>t[s]!==void 0);return n.length===i.length&&n.every(s=>Object.hasOwn(t,s)&&nt(e[s],t[s],o+1))};function _o(e,t){let o=0,n=(i,s)=>++o>1e4||s>8?!1:i===null||typeof i=="boolean"||typeof i=="string"?!0:typeof i=="number"?Number.isFinite(i):Array.isArray(i)?i.length<=200&&i.every(a=>n(a,s+1)):B(i)&&Object.keys(i).length<=32&&Object.keys(i).every(a=>!je.has(a))&&Object.values(i).every(a=>n(a,s+1));return Di(e)<=t&&n(e,0)}function $i(e){return!B(e)||Object.keys(e).some(t=>!["executionId","handlerVersion","inputDigest","expectedFactRevision","output","receipt"].includes(t))?!1:/^[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$/i.test(e.executionId||"")&&Number.isSafeInteger(e.handlerVersion)&&e.handlerVersion>=1&&e.handlerVersion<=1e6&&/^[a-f0-9]{64}$/.test(e.inputDigest||"")&&Number.isSafeInteger(e.expectedFactRevision)&&e.expectedFactRevision>=0&&B(e.output)&&_o(e.output,rn)&&(e.receipt===void 0||B(e.receipt)&&_o(e.receipt,Si))}function ma(e){return B(e)&&Object.keys(e).every(t=>["executionId","nodeId","handlerCode","handlerVersion","mode","input","inputDigest","expectedFactRevision"].includes(t))&&typeof e.nodeId=="string"&&Eo.test(e.nodeId)&&!je.has(e.nodeId)&&typeof e.handlerCode=="string"&&/^[a-z][a-z0-9-]{0,100}$/.test(e.handlerCode)&&e.handlerCode.endsWith(`-v${e.handlerVersion}`)&&["pure","reconciled-effect"].includes(e.mode)&&$i({executionId:e.executionId,handlerVersion:e.handlerVersion,inputDigest:e.inputDigest,expectedFactRevision:e.expectedFactRevision,output:e.input})}function Et(e,t,o=rn){if(!_o(t,o))return!1;let n=1e4,i=(s,a,r)=>{if(--n<0||r>8||!B(s))return!1;let c=a===null?"null":Array.isArray(a)?"array":typeof a=="number"&&Number.isSafeInteger(a)?"integer":typeof a,l=Array.isArray(s.type)?s.type:[s.type];if(!l.includes(c)&&!(c==="integer"&&l.includes("number"))||s.enum!==void 0&&(!Array.isArray(s.enum)||!s.enum.some(p=>nt(p,a)))||Object.hasOwn(s,"const")&&!nt(s.const,a))return!1;if(typeof a=="number")return Number.isFinite(a)&&(s.minimum===void 0||a>=s.minimum)&&(s.maximum===void 0||a<=s.maximum);if(typeof a=="string"){let p=Array.from(a).length;return(s.minLength===void 0||p>=s.minLength)&&(s.maxLength===void 0||p<=s.maxLength)}return Array.isArray(a)?a.length<=s.maxItems&&(s.minItems===void 0||a.length>=s.minItems)&&a.every(p=>i(s.items,p,r+1)):B(a)?!B(s.properties)||Object.keys(a).some(p=>je.has(p)||!Object.hasOwn(s.properties,p))||(Array.isArray(s.required)?s.required:[]).some(p=>!Object.hasOwn(a,p))||s.minProperties!==void 0&&Object.keys(a).length<s.minProperties||s.maxProperties!==void 0&&Object.keys(a).length>s.maxProperties?!1:Object.entries(a).every(([p,d])=>i(s.properties[p],d,r+1)):a===null||typeof a=="boolean"};return i(e,t,0)}function ki(e){return typeof e=="string"&&e.length<=256&&e.split(".").length<=8&&e.split(".").every(t=>Eo.test(t)&&!je.has(t))}function It(e){let t=0,o=(n,i)=>{if(!B(n)||i>6||++t>256||Object.keys(n).some(r=>!["type","title","description","properties","required","additionalProperties","items","maxItems","minItems","maxLength","minLength","minimum","maximum","enum","const","maxProperties","minProperties"].includes(r)))return!1;let s=Array.isArray(n.type)?n.type:[n.type];if(!s.length||s.length>2||s.some(r=>!["object","array","string","integer","number","boolean","null"].includes(r))||s.length>1&&(!s.includes("null")||new Set(s).size!==s.length))return!1;for(let r of["title","description"])if(n[r]!==void 0&&(typeof n[r]!="string"||n[r].length>2e3))return!1;for(let r of["minimum","maximum"])if(n[r]!==void 0&&(typeof n[r]!="number"||!Number.isFinite(n[r])))return!1;for(let[r,c]of[["maxItems",200],["minItems",200],["maxLength",16384],["minLength",16384],["maxProperties",32],["minProperties",32]])if(n[r]!==void 0&&(!Number.isSafeInteger(n[r])||n[r]<0||n[r]>c))return!1;for(let[r,c]of[["minimum","maximum"],["minItems","maxItems"],["minLength","maxLength"],["minProperties","maxProperties"]])if(n[r]!==void 0&&n[c]!==void 0&&n[r]>n[c])return!1;if(["properties","required","additionalProperties","maxProperties","minProperties"].some(r=>n[r]!==void 0)&&!s.includes("object")||["items","maxItems","minItems"].some(r=>n[r]!==void 0)&&!s.includes("array")||["maxLength","minLength"].some(r=>n[r]!==void 0)&&!s.includes("string")||["minimum","maximum"].some(r=>n[r]!==void 0)&&!s.some(r=>r==="integer"||r==="number")||n.enum!==void 0&&(!Array.isArray(n.enum)||!n.enum.length||n.enum.length>100)||s.includes("object")&&(!B(n.properties)||n.additionalProperties!==!1||Object.keys(n.properties).length>32||Object.keys(n.properties).some(r=>!wi.test(r)||je.has(r))||n.required!==void 0&&(!Array.isArray(n.required)||new Set(n.required).size!==n.required.length||n.required.some(r=>typeof r!="string"||!Object.hasOwn(n.properties,r)))||n.minProperties!==void 0&&n.minProperties>Object.keys(n.properties).length||n.maxProperties!==void 0&&n.maxProperties<(n.required?.length||0)||!Object.values(n.properties).every(r=>o(r,i+1)))||s.includes("array")&&(!Number.isSafeInteger(n.maxItems)||!o(n.items,i+1)))return!1;let a={...n};return delete a.enum,delete a.const,!(n.enum!==void 0&&(!n.enum.every(r=>Et(a,r))||n.enum.some((r,c)=>n.enum.slice(0,c).some(l=>nt(r,l))))||Object.hasOwn(n,"const")&&!Et(a,n.const))};return B(e)&&e.type==="object"&&Di(e)<=rn&&o(e,0)}function yt(e){let t=Object.fromEntries(Object.values(e.nodes||{}).filter(o=>o?.kind==="action").map(o=>[o.id,o.outputSchema]));return Object.keys(t).length?{...e.inputSchema,properties:{...e.inputSchema?.properties,steps:{type:"object",additionalProperties:!1,properties:t}}}:e.inputSchema||{}}function Vi(e,t){let o=e;for(let n of t.split(".")){if(!B(o?.properties)||!Object.hasOwn(o.properties,n))return;o=o.properties[n]}return B(o)?o:void 0}var Ri=(e,t)=>!!Vi(e,t);function _a(e){return B(e)&&Object.keys(e).every(t=>["version","mode","inputSchema","outputSchema"].includes(t))&&Number.isSafeInteger(e.version)&&e.version>=1&&e.version<=1e6&&["pure","reconciled-effect"].includes(e.mode)&&It(e.inputSchema)&&It(e.outputSchema)}function Ci(e){return e.kind==="approval"?[e.onApprove,e.onReject]:e.kind==="condition"?[...Array.isArray(e.branches)?e.branches.map(t=>t.target):[],e.otherwise]:e.kind==="cc"||e.kind==="action"?[e.next]:[]}function go(e,t=0){return!B(e)||t>16?[]:e.op==="path"?typeof e.path=="string"?[e.path]:[]:["left","right","value"].flatMap(o=>go(e[o],t+1)).concat(Array.isArray(e.values)?e.values.flatMap(o=>go(o,t+1)):[])}function bt(e,t){if(!B(e)||!B(e.nodes))return["WORKFLOW_STEP_DEFINITION_INVALID"];let o=e.nodes,n=Object.entries(o).filter(([,r])=>r?.kind==="action");if(!n.length)return[];let i=[];Object.hasOwn(e.inputSchema?.properties||{},"steps")&&i.push("WORKFLOW_STEP_FACT_NAMESPACE_RESERVED");let s=yt(e);for(let[r,c]of n){(Object.keys(c).some(d=>!["id","kind","title","next","handler","inputSchema","outputSchema","inputs"].includes(d))||c.id!==r||!Eo.test(r)||je.has(r)||typeof c.title!="string"||!c.title.trim()||c.title.length>255||typeof c.next!="string"||!Object.hasOwn(o,c.next))&&i.push(`WORKFLOW_STEP_NODE_INVALID:${r}`);let l=c.handler;(!B(l)||Object.keys(l).some(d=>!["code","version","mode"].includes(d))||!Number.isSafeInteger(l.version)||l.version<1||l.version>1e6||!/^[a-z][a-z0-9-]{0,100}$/.test(l.code||"")||!String(l.code).endsWith(`-v${l.version}`)||!["pure","reconciled-effect"].includes(l.mode))&&i.push(`WORKFLOW_STEP_HANDLER_INVALID:${r}`);let p=It(c.inputSchema);if((!p||!It(c.outputSchema))&&i.push(`WORKFLOW_STEP_SCHEMA_INVALID:${r}`),!B(c.inputs)||Object.keys(c.inputs).length>32){i.push(`WORKFLOW_STEP_INPUTS_INVALID:${r}`);continue}for(let d of Array.isArray(c.inputSchema?.required)?c.inputSchema.required:[])Object.hasOwn(c.inputs,d)||i.push(`WORKFLOW_STEP_INPUT_REQUIRED:${r}:${d}`);for(let[d,u]of Object.entries(c.inputs)){if(!wi.test(d)||je.has(d)||!Object.hasOwn(c.inputSchema?.properties||{},d)||!B(u)){i.push(`WORKFLOW_STEP_INPUT_INVALID:${r}:${d}`);continue}if(u.source==="literal")(!p||Object.keys(u).some(g=>!["source","value"].includes(g))||!Object.hasOwn(u,"value")||!Et(c.inputSchema.properties[d],u.value))&&i.push(`WORKFLOW_STEP_LITERAL_INVALID:${r}:${d}`);else if(u.source!=="fact"||Object.keys(u).some(g=>!["source","path"].includes(g))||!ki(u.path)||!Ri(s,u.path))i.push(`WORKFLOW_STEP_FACT_PATH_INVALID:${r}:${d}`);else if(p){let g=Vi(s,u.path),I=c.inputSchema.properties[d],E=Array.isArray(g.type)?g.type:[g.type],N=Array.isArray(I.type)?I.type:[I.type];E.some(y=>!N.includes(y)&&!(y==="integer"&&N.includes("number")))&&i.push(`WORKFLOW_STEP_FACT_TYPE_MISMATCH:${r}:${d}`)}}}let a=(r,c)=>{let l=new Set,p=[e.startAt||""];for(;p.length&&l.size<=200;){let d=p.shift();if(!(d===c||l.has(d)||!o[d])){if(d===r)return!0;l.add(d),p.push(...Ci(o[d]))}}return!1};for(let[r,c]of Object.entries(o)){if(!B(c))continue;let l=c.kind==="action"?Object.values(c.inputs||{}).flatMap(d=>d?.source==="fact"?[d.path]:[]):(Array.isArray(c.branches)?c.branches:[]).flatMap(d=>go(d?.when)),p=t?.bindings?.[c.binding];p&&l.push(...[p.inputPath,p.departmentIdFrom,p.resourceIdFrom,p.scope?.valueFrom].filter(d=>typeof d=="string"));for(let d of l.filter(u=>typeof u=="string"&&u.startsWith("steps."))){let u=d.split(".")[1];(o[u]?.kind!=="action"||u===r||!Ri(s,d)||a(r,u))&&i.push(`WORKFLOW_STEP_OUTPUT_NOT_AVAILABLE:${r}:${d}`)}}if(t)for(let[,r]of n){let c=new Set,l=[r.next];for(;l.length&&c.size<=200;){let p=l.shift();if(c.has(p)||!B(o[p]))continue;c.add(p);let d=o[p];if(!(d.kind==="action"||d.kind==="end")){if(d.kind==="approval"){let u=t.bindings?.[d.binding];u&&["application_provider","initiator_select"].includes(u.provider)&&i.push(`WORKFLOW_STEP_NEXT_PROVIDER_REQUIRES_PREPARED_RESULT:${p}`);continue}l.push(...Ci(d))}}}return[...new Set(i)]}function ga(e,t){let o={};for(let[n,i]of Object.entries(e.inputs)){let s=i.source==="literal"?i.value:i.path.split(".").reduce((a,r)=>B(a)&&Object.hasOwn(a,r)?a[r]:void 0,t);s!==void 0&&(o[n]=s)}if(!Et(e.inputSchema,o))throw new Error("WORKFLOW_STEP_INPUT_SCHEMA_INVALID");return o}function Io(e,t,o){let n=an(e),i=[];Object.keys(n).length&&!o&&i.push("WORKFLOW_STEP_BACKEND_REQUIRED");for(let s of Object.keys(n)){let a=t.find(r=>r.code===s);(!a||a.execution||a.action||!Array.isArray(a.eventTypes)||a.eventTypes.length!==1||a.eventTypes[0]!==tt||!B(a.filter)||Object.keys(a.filter).length!==1||!B(a.filter.workflowStep)||Object.keys(a.filter.workflowStep).length!==1||a.filter.workflowStep.handlerCode!==s||!B(a.payload)||a.payload.includeChanges!==!1||!Array.isArray(a.payload.fields)||a.payload.fields.length)&&i.push(`WORKFLOW_STEP_SUBSCRIPTION_INVALID:${s}`)}for(let s of t)(s.eventTypes?.includes(tt)&&!n[s.code]||s.filter?.workflowStep&&!n[s.code])&&i.push(`WORKFLOW_STEP_HANDLER_NOT_DECLARED:${s.code}`);return i}function an(e){let t={};for(let o of e){let n=bt(o);if(n.length)throw new Error(n.join("; "));for(let i of Object.values(o.nodes||{})){if(i.kind!=="action")continue;let s={version:i.handler.version,mode:i.handler.mode,inputSchema:i.inputSchema,outputSchema:i.outputSchema},a=t[i.handler.code];if(a&&!nt(a,s))throw new Error(`WORKFLOW_STEP_HANDLER_CONTRACT_CONFLICT:${i.handler.code}`);t[i.handler.code]=s}}return t}var ue=e=>e&&typeof e=="object"&&!Array.isArray(e)?e:{},We=(e,t)=>typeof e=="string"&&!!e.trim()&&e.length<=t,Aa=/^[A-Za-z][A-Za-z0-9_-]*(?:\.[A-Za-z][A-Za-z0-9_-]*){0,15}$/,yo=e=>typeof e=="string"&&e.length<=256&&Aa.test(e)&&!e.split(".").some(t=>["__proto__","prototype","constructor"].includes(t));function cn(e,t){let o=ue(e),n=!0;for(let i of t.split(".")){n&&=Array.isArray(o.required)&&o.required.includes(i);let s=ue(o.properties)[i];if(!s||typeof s!="object")return null;o=ue(s)}return{schema:o,required:n}}function bo(e){let t=new Set,o=[],n=2048,i=(s,a)=>{if(--n<0||a>20){o.push("WORKFLOW_EXPRESSION_BUDGET_EXCEEDED");return}let r=ue(s);if(r.op==="path")yo(r.path)?t.add(r.path):o.push("WORKFLOW_EXPRESSION_PATH_INVALID");else{if(r.op==="literal")return;if(r.op==="and"||r.op==="or")if(!Array.isArray(r.values)||!r.values.length||r.values.length>128)o.push("WORKFLOW_EXPRESSION_GROUP_INVALID");else for(let c of r.values){if(n<0)break;i(c,a+1)}else r.op==="not"||r.op==="exists"?i(r.value,a+1):["eq","neq","gt","gte","lt","lte","in","contains"].includes(String(r.op))?(i(r.left,a+1),i(r.right,a+1)):o.push("WORKFLOW_EXPRESSION_OPERATOR_INVALID")}};return i(e,0),{paths:[...t],errors:[...new Set(o)]}}function No(e){if(e?.readability===void 0)return[];let t=[],o=yt(e),n=ue(e.readability);(Object.keys(n).some(r=>!["variables","logic"].includes(r))||!Object.keys(n).length)&&t.push("WORKFLOW_READABILITY_INVALID");let i=ue(n.variables);n.variables!==void 0&&(typeof n.variables!="object"||Array.isArray(n.variables)||n.variables===null)&&t.push("WORKFLOW_VARIABLES_INVALID"),Object.keys(i).length>128&&t.push("WORKFLOW_VARIABLE_LIMIT_EXCEEDED");for(let[r,c]of Object.entries(i)){let l=ue(c);(!yo(r)||!cn(o,r))&&t.push(`WORKFLOW_VARIABLE_SOURCE_UNKNOWN:${r}`),(!We(l.label,160)||Object.keys(l).some(p=>!["label","unit","description"].includes(p))||l.unit!==void 0&&!We(l.unit,32)||l.description!==void 0&&!We(l.description,2e3))&&t.push(`WORKFLOW_VARIABLE_METADATA_INVALID:${r}`)}let s=n.logic===void 0?[]:n.logic;(!Array.isArray(s)||s.length>32)&&t.push("WORKFLOW_LOGIC_LIMIT_INVALID");let a=new Set;for(let r of Array.isArray(s)?s.slice(0,32):[]){let c=ue(r),l=String(c.code||"");(!/^[a-z][a-z0-9-]{2,63}$/.test(l)||a.has(l)||!We(c.title,160)||!We(c.description,4e3)||Object.keys(c).some(p=>!["code","title","description","phase","nodeId","inputPaths","outputPaths","source"].includes(p)))&&t.push(`WORKFLOW_LOGIC_METADATA_INVALID:${l}`),a.add(l),(!["submission","node_input","completion"].includes(String(c.phase))||c.phase==="node_input"&&!ue(e.nodes)[String(c.nodeId)]||c.phase!=="node_input"&&c.nodeId!==void 0)&&t.push(`WORKFLOW_LOGIC_ANCHOR_INVALID:${l}`);for(let p of["inputPaths","outputPaths"]){let d=c[p];if(!(p==="outputPaths"&&d===void 0))if(!Array.isArray(d)||d.length>32||new Set(d).size!==d.length)t.push(`WORKFLOW_LOGIC_PATHS_INVALID:${l}:${p}`);else for(let u of d)(!yo(u)||!cn(o,u))&&t.push(`WORKFLOW_LOGIC_SOURCE_UNKNOWN:${l}:${String(u)}`)}if(c.source!==void 0){let p=ue(c.source);(!We(p.path,256)||String(p.path).startsWith("/")||String(p.path).includes("..")||String(p.path).includes("://")||!/^sha256:[a-f0-9]{64}$/.test(String(p.digest))||p.symbol!==void 0&&!We(p.symbol,160)||Object.keys(p).some(d=>!["path","symbol","digest"].includes(d)))&&t.push(`WORKFLOW_LOGIC_SOURCE_REFERENCE_INVALID:${l}`)}}for(let r of Object.values(ue(e.nodes))){let c=ue(r),l=Array.isArray(c.branches)?c.branches:[];for(let p of l){let d=bo(p.when);t.push(...d.errors.map(u=>`${u}:${c.id}`));for(let u of d.paths)cn(o,u)||t.push(`WORKFLOW_VARIABLE_SOURCE_UNKNOWN:${c.id}:${u}`)}}return[...new Set(t)]}function Ea(e,t){let o=yt(e),n=[],i=new Map,s=[];for(let c of Object.values(e.nodes)){if(c.kind==="approval")for(let[l,p,d]of[["approve",c.onApprove,"\u540C\u610F"],["reject",c.onReject,"\u62D2\u7EDD"]])p&&n.push({id:`${c.id}:${l}`,from:c.id,to:p,kind:l,label:d,variablePaths:[]});if(c.kind==="cc"&&c.next&&n.push({id:`${c.id}:next`,from:c.id,to:c.next,kind:"next",label:"\u6284\u9001\u540E\u7EE7\u7EED",variablePaths:[]}),c.kind==="action"&&c.next){let l=Object.values(c.inputs||{}).flatMap(p=>p.source==="fact"?[p.path]:[]);for(let p of l)i.has(p)||i.set(p,new Set),i.get(p).add(c.id);n.push({id:`${c.id}:next`,from:c.id,to:c.next,kind:"next",label:"\u6210\u529F\u56DE\u6267\u540E\u7EE7\u7EED",variablePaths:l})}if(c.kind==="condition"){for(let[l,p]of(c.branches||[]).entries()){let d=bo(p.when);for(let u of d.paths)i.has(u)||i.set(u,new Set),i.get(u).add(c.id);n.push({id:`${c.id}:branch:${l}`,from:c.id,to:p.target,kind:"branch",label:p.label||`\u6761\u4EF6 ${l+1}`,priority:l+1,expression:p.when,variablePaths:d.paths}),s.push(...d.errors.map(u=>({code:u,path:c.id})))}c.otherwise&&n.push({id:`${c.id}:default`,from:c.id,to:c.otherwise,kind:"default",label:"\u5747\u4E0D\u6EE1\u8DB3\u65F6",variablePaths:[]})}}let r=[...new Set([...i.keys(),...Object.keys(e.readability?.variables||{}),...(e.readability?.logic||[]).flatMap(c=>[...c.inputPaths,...c.outputPaths||[]])])].slice(0,128).map(c=>{let l=cn(o,c),p=e.readability?.variables?.[c],d=c.split("."),u=e.subject?.factProjection[d[0]],g=d[0]==="steps"?e.nodes[d[1]]:void 0;return l||s.push({code:"WORKFLOW_VARIABLE_SOURCE_UNKNOWN",path:c}),{path:c,label:p?.label||String(l?.schema.title||c),type:String(l?.schema.type||"unknown"),...p,required:l?.required||!1,usedBy:[...i.get(c)||[]],source:l&&g?.handler?{kind:"step_output",nodeId:g.id,handlerCode:g.handler.code,handlerVersion:g.handler.version}:l&&u&&e.subject?{kind:"subject_field",resourceCode:e.subject.resourceCode,fieldPath:[u,...d.slice(1)].join(".")}:{kind:l?"input":"unknown"}}});return{schemaVersion:"openxiangda.workflow-graph/v2",workflowCode:e.code,definitionDigest:t,startAt:e.startAt,fixedTopology:!0,branchStrategy:"first_match",nodes:Object.values(e.nodes).map(c=>({id:c.id,kind:c.kind,title:c.title||c.id,...c.binding?{binding:c.binding}:{},...c.mode?{mode:c.mode}:{},...c.outcome?{outcome:c.outcome}:{},...c.kind==="cc"?{emptyPolicy:c.emptyPolicy,notify:c.notify!==!1}:{},...c.kind==="approval"?{emptyPolicy:c.emptyPolicy||"block",initiatorApprovalPolicy:c.initiatorApprovalPolicy||"manual"}:{},...c.kind==="action"&&c.handler?{businessStep:{handler:c.handler,inputs:c.inputs||{},outputPaths:Object.keys(ue(c.outputSchema).properties||{}).map(l=>`steps.${c.id}.${l}`)}}:{}})),edges:n,variables:r,logic:e.readability?.logic||[],diagnostics:s}}function Nt(e,t=[],o=0){if(!e||o>20)return"\u65E0\u6CD5\u8BC6\u522B\u7684\u6761\u4EF6";if(e.op==="path")return t.find(a=>a.path===e.path)?.label||e.path;if(e.op==="literal")return JSON.stringify(e.value)??"\u7F3A\u503C";if(e.op==="and"||e.op==="or")return e.values.slice(0,128).map(a=>`\uFF08${Nt(a,t,o+1)}\uFF09`).join(e.op==="and"?" \u4E14 ":" \u6216 ");if(e.op==="not"||e.op==="exists")return`${e.op==="not"?"\u4E0D\u6EE1\u8DB3":"\u5B58\u5728"}\uFF08${Nt(e.value,t,o+1)}\uFF09`;if(!("left"in e))return"\u65E0\u6CD5\u8BC6\u522B\u7684\u6761\u4EF6";let n={eq:"=",neq:"\u2260",gt:">",gte:"\u2265",lt:"<",lte:"\u2264",in:"\u5C5E\u4E8E",contains:"\u5305\u542B"},i=e.left.op==="path"?e.left.path:void 0,s=i&&e.right.op==="literal"&&typeof e.right.value=="number"?t.find(a=>a.path===i)?.unit:void 0;return`${Nt(e.left,t,o+1)} ${n[e.op]} ${Nt(e.right,t,o+1)}${s?` ${s}`:""}`}function ot(e){let t=[];for(let[o,n]of Object.entries(e?.nodes||{}))if(n.initiatorApprovalPolicy!==void 0){if(n.kind!=="approval"||!["manual","auto_approve"].includes(n.initiatorApprovalPolicy)){t.push(`WORKFLOW_INITIATOR_APPROVAL_POLICY_INVALID:${o}`);continue}n.initiatorApprovalPolicy==="auto_approve"&&((n.taskPageCode!==void 0||[n.fieldPolicy?.default,...Object.values(n.fieldPolicy?.fields||{})].some(i=>i==="edit"||i==="edit_required"))&&t.push(`WORKFLOW_INITIATOR_APPROVAL_INPUT_REQUIRED:${o}`),n.operationPolicy?.approve?.commentRequired===!0&&t.push(`WORKFLOW_INITIATOR_APPROVAL_COMMENT_REQUIRED:${o}`))}return t}function Ia(e,t,o,n){return e.kind==="approval"&&e.initiatorApprovalPolicy==="auto_approve"&&ot({nodes:{node:e}}).length===0&&t!=="return_review"&&!!o&&n.user_id===o&&n.status==="active"&&n.participant_kind==="primary"&&["resolution","resolution_retry"].includes(n.source||"")&&!n.source_participant_id&&!n.delegate_authorization_id}var ln=["approve","reject","return","transfer","delegate","add_assignee"],un=["fixed_users","app_role","app_role_in_scope"],ya=["single","any","all","sequence"],Fe=e=>!!e&&typeof e=="object"&&!Array.isArray(e),it=(e,t)=>Object.keys(e).every(o=>t.includes(o)),dn=(e,t,o)=>Array.isArray(e)&&e.length>0&&e.length<=o&&new Set(e).size===e.length&&e.every(n=>typeof n=="string"&&t.includes(n));function st(e){return e.allowedOperations||[...ln]}function Pi(e,t){return t?.commentRequired??e==="reject"}function Fi(e,t,o={},n=!1){return!(!Fe(e)||!Object.keys(e).length||!it(e,n?["enabled","label","commentRequired"]:["label","commentRequired"])||e.label!==void 0&&(typeof e.label!="string"||!e.label.trim()||e.label.length>40||/[\u0000-\u001f\u007f]/.test(e.label))||e.enabled!==void 0&&(typeof e.enabled!="boolean"||["approve","reject"].includes(t)&&!e.enabled)||e.commentRequired!==void 0&&(typeof e.commentRequired!="boolean"||!["approve","reject"].includes(t)||n&&Pi(t,o)&&!e.commentRequired))}function fn(e,t){let o=[];for(let[n,i]of Object.entries(e?.nodes||{})){if(!Fe(i))continue;let s=i.administration,a=i.operationPolicy;if(i.kind==="cc"){(a!==void 0||s!==void 0&&(!Fe(s)||!it(s,["assigneeProviders"])))&&o.push(`WORKFLOW_NODE_ADMINISTRATION_INVALID:${n}`),s?.assigneeProviders!==void 0&&!dn(s.assigneeProviders,un,3)&&o.push(`WORKFLOW_NODE_ADMINISTRATION_PROVIDERS_INVALID:${n}`),s?.assigneeProviders?.includes("app_role_in_scope")&&t&&!t.bindings[i.binding||""]?.scope&&o.push(`WORKFLOW_NODE_ADMINISTRATION_SCOPE_REQUIRED:${n}`);continue}if(i.kind!=="approval"){(s!==void 0||a!==void 0)&&o.push(`WORKFLOW_NODE_ADMINISTRATION_APPROVAL_REQUIRED:${n}`);continue}if(a!==void 0&&(!Fe(a)||Object.keys(a).length>8||Object.entries(a).some(([c,l])=>!ln.includes(c)||!st(i).includes(c)||!Fi(l,c)))&&o.push(`WORKFLOW_NODE_OPERATION_POLICY_INVALID:${n}`),s===void 0)continue;if(!Fe(s)||!it(s,["modes","assigneeProviders","operations"])){o.push(`WORKFLOW_NODE_ADMINISTRATION_INVALID:${n}`);continue}s.modes!==void 0&&(!dn(s.modes,ya,4)||!s.modes.includes(i.mode))&&o.push(`WORKFLOW_NODE_ADMINISTRATION_MODES_INVALID:${n}`),s.assigneeProviders!==void 0&&!dn(s.assigneeProviders,un,3)&&o.push(`WORKFLOW_NODE_ADMINISTRATION_PROVIDERS_INVALID:${n}`);let r=t?.bindings[i.binding||""];r&&Array.isArray(s.assigneeProviders)&&s.assigneeProviders.includes("app_role_in_scope")&&!r.scope&&o.push(`WORKFLOW_NODE_ADMINISTRATION_SCOPE_REQUIRED:${n}`),s.operations!==void 0&&(!dn(s.operations,ln,8)||s.operations.some(c=>!st(i).includes(c)))&&o.push(`WORKFLOW_NODE_ADMINISTRATION_OPERATIONS_INVALID:${n}`)}return o}function ba(e,t,o){let n=[];if(!e||!Fe(o)||!Object.keys(o).length||!it(o,["title","description","assignee","mode","operations"]))return["WORKFLOW_V2_NODE_CONFIGURATION_PATCH_INVALID"];let i=o;for(let a of["title","description"])i[a]!==void 0&&(typeof i[a]!="string"||i[a].length>(a==="title"?255:1e3)||a==="title"&&!i[a].trim())&&n.push("WORKFLOW_V2_NODE_CONFIGURATION_PATCH_INVALID");let s=e.administration;if(i.mode!==void 0&&(e.kind!=="approval"||!s?.modes?.includes(i.mode))&&n.push("WORKFLOW_V2_NODE_CONFIGURATION_MODE_READONLY"),i.operations!==void 0&&(e.kind!=="approval"||!Fe(i.operations)||!Object.keys(i.operations).length||Object.keys(i.operations).length>8||Object.entries(i.operations).some(([a,r])=>!s?.operations?.includes(a)||!st(e).includes(a)||!Fi(r,a,e.operationPolicy?.[a],!0)))&&n.push("WORKFLOW_V2_NODE_CONFIGURATION_OPERATION_INVALID"),i.assignee!==void 0){let a=i.assignee,r=s?.assigneeProviders||(e.kind==="approval"&&t&&un.includes(t.provider)?[t.provider]:[]);!Fe(a)||!["approval","cc"].includes(e.kind)||!r.includes(a.provider)||a.provider==="app_role_in_scope"&&!t?.scope?n.push("WORKFLOW_V2_NODE_CONFIGURATION_PROVIDER_READONLY"):a.provider==="fixed_users"?(!it(a,["provider","users"])||!Array.isArray(a.users)||a.users.length<1&&!(e.kind==="approval"&&e.emptyPolicy==="skip")||a.users.length>(e.kind==="cc"?20:200)||new Set(a.users).size!==a.users.length||a.users.some(c=>typeof c!="string"||!c.trim()||c.length>255))&&n.push("WORKFLOW_V2_NODE_CONFIGURATION_USERS_INVALID"):(!it(a,["provider","roleCode"])||typeof a.roleCode!="string"||!/^[a-z][a-z0-9_-]{0,127}$/.test(a.roleCode))&&n.push("WORKFLOW_V2_NODE_CONFIGURATION_ROLE_INVALID")}return n.push(...ot({nodes:{node:{...e,operationPolicy:vi(e,i).operationPolicy}}})),n}function vi(e,t){let o=Object.fromEntries(st(e).flatMap(n=>{let i=n,s=t?.operations?.[i],a={...e.operationPolicy?.[i],...s?.label!==void 0?{label:s.label}:{},...s?.commentRequired!==void 0?{commentRequired:s.commentRequired}:{}};return Object.keys(a).length?[[i,a]]:[]}));return{mode:t?.mode||e.mode,initiatorApprovalPolicy:e.initiatorApprovalPolicy||"manual",allowedOperations:st(e).filter(n=>t?.operations?.[n]?.enabled!==!1),operationPolicy:o,fieldPolicy:{default:e.fieldPolicy?.default||"readonly",fields:{...e.fieldPolicy?.fields}}}}var el=20,Li=["fixed_users","initiator","input_users","form_field_users","app_role","app_role_in_scope","previous_node_actor"];function pn(e,t){let o=[];for(let[n,i]of Object.entries(e?.nodes||{})){if(i?.kind!=="cc"||((Object.keys(i).some(c=>!["id","kind","title","binding","next","emptyPolicy","notify","administration"].includes(c))||typeof i.title!="string"||!i.title.trim()||i.title.length>255||typeof i.binding!="string"||!i.binding.trim()||i.binding.length>255||typeof i.next!="string"||!i.next.trim()||!e.nodes?.[i.next]||!["block","skip"].includes(i.emptyPolicy)||i.notify!==void 0&&typeof i.notify!="boolean")&&o.push(`WORKFLOW_CC_NODE_INVALID:${n}`),!t))continue;let s=t.bindings?.[i.binding];if(!s){o.push(`WORKFLOW_CC_BINDING_NOT_FOUND:${n}`);continue}Li.includes(s.provider)||o.push(`WORKFLOW_CC_PROVIDER_INVALID:${n}`);let a=s.min??1,r=s.max??20;(!Number.isSafeInteger(a)||!Number.isSafeInteger(r)||a<1||r<a||r>20||s.provider==="fixed_users"&&(!Array.isArray(s.users)||!s.users.length||s.users.length>r))&&o.push(`WORKFLOW_CC_RECIPIENT_LIMIT_INVALID:${n}`)}return[...new Set(o)]}var Oo=["fixed_users","input_users","form_field_users","app_role","app_role_in_scope"];function mn(e,t){let o=[];for(let[n,i]of Object.entries(e?.nodes||{}))i.kind==="cc"||i.emptyPolicy===void 0||(i.kind!=="approval"||!["block","skip"].includes(i.emptyPolicy)?o.push(`WORKFLOW_APPROVAL_EMPTY_POLICY_INVALID:${n}`):i.emptyPolicy==="skip"&&t&&!Oo.includes(t.bindings?.[i.binding||""]?.provider)&&o.push(`WORKFLOW_APPROVAL_EMPTY_PROVIDER_UNSUPPORTED:${n}`));return o}function Na(e,t){return e.kind==="approval"&&e.emptyPolicy==="skip"&&t?.emptyResult==="no_candidates"&&Oo.includes(t.provider)&&Array.isArray(t.candidates)&&t.candidates.length===0&&Array.isArray(t.selected)&&t.selected.length===0&&Array.isArray(t.warnings)&&t.warnings.length===0}function To(e,t){let o=Object.values(e.nodes||{}).filter(n=>n.binding===t);return o.length>0&&o.every(n=>n.kind==="approval"&&n.emptyPolicy==="skip")}var xi="openxiangda.workflow-rejection-notification/v1",ol=4096;function ji(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function rt(e,t){return typeof e=="string"&&e.trim().length>0&&e.length<=t}function ho(e,t){return Object.keys(e).sort().join(",")===t.sort().join(",")}function Ro(e){let t=e?.rejectionNotification;return t===void 0?[]:!ji(t)||!ho(t,["recipient","title","summary"])||t.recipient!=="record_last_modifier"||!rt(t.title,160)||!rt(t.summary,500)?["WORKFLOW_REJECTION_NOTIFICATION_INVALID"]:rt(e.subject?.resourceCode,63)?[]:["WORKFLOW_REJECTION_NOTIFICATION_SUBJECT_REQUIRED"]}function Oa(e){if(!ji(e)||e.schemaVersion!==xi||e.recipient!=="record_last_modifier"||!rt(e.title,160)||!rt(e.summary,500))return!1;let t=["schemaVersion","recipient","title","summary","status","sourceRevision"];if(e.status==="ready"){if(!ho(e,[...t,"userId"])||!rt(e.userId,255)||!Number.isSafeInteger(e.sourceRevision)||Number(e.sourceRevision)<1)return!1}else if(e.status==="skipped"){if(!ho(e,[...t,"reason"])||!["record_missing","modifier_missing","modifier_ineligible"].includes(String(e.reason))||(e.reason==="record_missing"?e.sourceRevision!==null:!Number.isSafeInteger(e.sourceRevision)||Number(e.sourceRevision)<1))return!1}else return!1;return new TextEncoder().encode(JSON.stringify(e)).byteLength<=4096}function Co(e,t){let o=e.commandHandlers;if(o===void 0)return[];if(!o||typeof o!="object"||Array.isArray(o)||!Object.keys(o).length||Object.keys(o).some(i=>!["approve","reject","withdraw"].includes(i)))return["WORKFLOW_BUSINESS_COMMAND_HANDLERS_INVALID"];let n=[];for(let[i,s]of Object.entries(o)){if(!s||typeof s!="object"||Array.isArray(s)||Object.keys(s).join(",")!=="operationCode"||!/^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$/.test(s.operationCode||"")){n.push("WORKFLOW_BUSINESS_COMMAND_HANDLER_INVALID");continue}if(!t)continue;let a=t.find(r=>r.code===s.operationCode);if(!a){n.push("WORKFLOW_BUSINESS_COMMAND_OPERATION_MISSING");continue}(a.method!=="POST"||a.browser?.exposure!=="authenticated"||a.browser.behavior!=="controlled"||a.browser.idempotency!=="required"||a.browser.fileIntent||a.browser.subject?.resourceCode!==e.subject?.resourceCode||a.browser.subject?.inputField!=="recordId"||!a.platformAccess?.workflow?.codes?.includes(e.code)||!a.platformAccess.workflow.businessCommands?.includes(i))&&n.push("WORKFLOW_BUSINESS_COMMAND_OPERATION_INVALID")}return Object.values(e.nodes||{}).some(i=>i.kind==="approval"&&(i.emptyPolicy==="skip"||i.initiatorApprovalPolicy==="auto_approve"))&&n.push("WORKFLOW_BUSINESS_COMMAND_AUTOMATIC_DECISION_FORBIDDEN"),[...new Set(n)]}var Ta={type:"object",additionalProperties:!1,required:["workflowCode","target","recordId","expectedRevision","commandToken","idempotencyKey","input"],properties:{workflowCode:{type:"string",pattern:"^[A-Za-z][A-Za-z0-9_-]{0,127}$"},target:{oneOf:[{type:"object",additionalProperties:!1,required:["kind","id","command"],properties:{kind:{const:"task"},id:{type:"string",format:"uuid"},command:{enum:["approve","reject"]}}},{type:"object",additionalProperties:!1,required:["kind","id","command"],properties:{kind:{const:"instance"},id:{type:"string",format:"uuid"},command:{const:"withdraw"}}}]},recordId:{type:"string",format:"uuid"},expectedRevision:{type:"integer",minimum:1},commandToken:{type:"string",pattern:"^[A-Za-z0-9_-]{43}$"},idempotencyKey:{type:"string",minLength:1,maxLength:128},input:{type:"object",maxProperties:64}}};var Wi=["fixed_users","initiator","app_role","app_role_in_scope"],ha=e=>!!e&&typeof e=="object"&&!Array.isArray(e);function _n(e,t){let o=e?.launchPreflight;if(o===void 0)return[];if(!ha(o)||Object.keys(o).join(",")!=="requiredApprovalNodes"||!Array.isArray(o.requiredApprovalNodes)||o.requiredApprovalNodes.length<1||o.requiredApprovalNodes.length>20||new Set(o.requiredApprovalNodes).size!==o.requiredApprovalNodes.length||o.requiredApprovalNodes.some(i=>typeof i!="string"||!/^[A-Za-z][A-Za-z0-9_-]{0,127}$/.test(i)))return["WORKFLOW_LAUNCH_PREFLIGHT_INVALID"];let n=[];for(let i of o.requiredApprovalNodes){let s=e.nodes?.[i];if(!s||s.kind!=="approval"){n.push(`WORKFLOW_LAUNCH_PREFLIGHT_NODE_INVALID:${i}`);continue}if(!t)continue;let a=t.bindings?.[s.binding||""];(!a||!Wi.includes(a.provider)||a.candidateField!==void 0)&&n.push(`WORKFLOW_LAUNCH_PREFLIGHT_PROVIDER_UNSUPPORTED:${i}`)}return n}var Mi=64,gn=1024*1024,Bi=65536,wo=100,Ki=400,Ue=new Set(["__proto__","prototype","constructor"]),qi=/^[A-Za-z][A-Za-z0-9_-]{0,63}$/,Tt=/^[A-Za-z][A-Za-z0-9_]{0,62}$/,Ui=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/,ce=e=>!!e&&typeof e=="object"&&!Array.isArray(e)&&[null,Object.prototype].includes(Object.getPrototypeOf(e)),$e=(e,t)=>ce(e)&&Object.keys(e).every(o=>t.includes(o)&&!Ue.has(o)),An=e=>{try{return new TextEncoder().encode(JSON.stringify(e)).length}catch{return 1/0}},Ji=e=>e==null||typeof e=="string"&&!e.trim()||Array.isArray(e)&&e.length===0;function ve(e,t){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t))return e.length===t.length&&e.every((n,i)=>ve(n,t[i]));if(!ce(e)||!ce(t))return!1;let o=Object.keys(e);return o.length===Object.keys(t).length&&o.every(n=>Object.hasOwn(t,n)&&ve(e[n],t[n]))}function So(e,t){let o=t.split(".");if(!(o.some(n=>!qi.test(n)||Ue.has(n))||o.length>12))return o.reduce((n,i)=>ce(n)&&Object.hasOwn(n,i)?n[i]:void 0,e)}function De(e,t){switch(e.op){case"literal":return e.value;case"path":return So({values:t},e.path);case"and":return e.values.every(o=>!!De(o,t));case"or":return e.values.some(o=>!!De(o,t));case"not":return!De(e.value,t);case"exists":return!Ji(De(e.value,t));default:{let o=De(e.left,t),n=De(e.right,t);return e.op==="eq"?ve(o,n):e.op==="neq"?!ve(o,n):e.op==="in"?Array.isArray(n)&&n.some(i=>ve(i,o)):e.op==="contains"?Array.isArray(o)?o.some(i=>ve(i,n)):typeof o=="string"&&typeof n=="string"&&o.includes(n):typeof o!="number"||typeof n!="number"||!Number.isFinite(o)||!Number.isFinite(n)?!1:e.op==="gt"?o>n:e.op==="gte"?o>=n:e.op==="lt"?o<n:o<=n}}}function Ot(e,t,o=0,n={nodes:0}){if(o>8||++n.nodes>64||!ce(e))return!1;if(e.op==="literal")return $e(e,["op","value"])&&Object.hasOwn(e,"value")&&An(e.value)<=4096&&ht(e.value);if(e.op==="path"){if(!$e(e,["op","path"])||typeof e.path!="string")return!1;let i=e.path.split(".");return i[0]==="values"&&i.length>=2&&i.length<=8&&t.has(i[1])&&i.every(s=>Tt.test(s)&&!Ue.has(s))}return["not","exists"].includes(e.op)?$e(e,["op","value"])&&Ot(e.value,t,o+1,n):["and","or"].includes(e.op)?$e(e,["op","values"])&&Array.isArray(e.values)&&e.values.length>0&&e.values.length<=16&&e.values.every(i=>Ot(i,t,o+1,n)):["eq","neq","gt","gte","lt","lte","in","contains"].includes(e.op)&&$e(e,["op","left","right"])&&Ot(e.left,t,o+1,n)&&Ot(e.right,t,o+1,n)}function Rt(e,t,o){let n=[],i=e.taskPages;if(i!==void 0&&(!ce(i)||Object.keys(i).length===0||Object.keys(i).length>16||An(i)>Bi))return["WORKFLOW_TASK_PAGES_INVALID"];for(let[s,a]of Object.entries(i||{})){let r=`taskPages.${s}`;if(!qi.test(s)||Ue.has(s)||!$e(a,["title","fields"])||typeof a.title!="string"||!a.title.trim()||a.title.length>160||!Array.isArray(a.fields)||!a.fields.length||a.fields.length>Mi){n.push(`WORKFLOW_TASK_PAGE_INVALID:${r}`);continue}let c=new Set(a.fields.map(d=>d?.code));c.size!==a.fields.length&&n.push(`WORKFLOW_TASK_PAGE_DUPLICATE_FIELD:${r}`);let l=0,p=new Set;for(let d of a.fields){if(!$e(d,["code","readonly","required","visibleWhen","requiredWhen","subtable"])||!Tt.test(d.code)||Ue.has(d.code)||["readonly","required"].some(u=>d[u]!==void 0&&typeof d[u]!="boolean")||d.readonly&&(d.required||d.requiredWhen)){n.push(`WORKFLOW_TASK_PAGE_FIELD_INVALID:${r}`);continue}for(let u of["visibleWhen","requiredWhen"])d[u]!==void 0&&!Ot(d[u],c)&&n.push(`WORKFLOW_TASK_PAGE_EXPRESSION_INVALID:${r}.${d.code}.${u}`);if(t){let u=t.get(d.code);if((!u||u.system||u.hidden||u.type==="serial-number"||!d.readonly&&u.widget==="readonly"||!d.readonly&&u.type==="subtable"&&!d.subtable||d.subtable&&u.type!=="subtable")&&n.push(`WORKFLOW_TASK_PAGE_RESOURCE_FIELD_INVALID:${r}.${d.code}`),d.subtable&&u?.subtable){let g=u.subtable;l+=g.maxRows??20,(p.has(g.resourceCode)||!Number.isSafeInteger(g.maxRows??20)||(g.maxRows??20)<1||(g.maxRows??20)>wo||!Tt.test(g.foreignKey)||!Tt.test(g.orderField)||g.foreignKey===g.orderField)&&n.push(`WORKFLOW_TASK_SUBTABLE_RELATION_INVALID:${r}.${d.code}`),p.add(g.resourceCode);let I=o?.get(g.resourceCode);o&&(!I||!["uuid","resource-ref.single"].includes(I.get(g.foreignKey)?.type||"")||I.get(g.orderField)?.type!=="number.integer")&&n.push(`WORKFLOW_TASK_SUBTABLE_RELATION_INVALID:${r}.${d.code}`);for(let E of Array.isArray(d.subtable.fields)?d.subtable.fields:[]){if(!E||typeof E.code!="string")continue;let N=I?.get(E.code);(E.code===g.foreignKey||E.code===g.orderField||I&&(!N||N.system||N.hidden||N.type==="subtable"||!E.readonly&&(N.widget==="readonly"||N.type==="serial-number")))&&n.push(`WORKFLOW_TASK_SUBTABLE_FIELD_UNSUPPORTED:${r}.${d.code}.${E.code}`)}}else d.subtable&&t&&n.push(`WORKFLOW_TASK_SUBTABLE_RELATION_INVALID:${r}.${d.code}`)}d.subtable&&(d.readonly||!$e(d.subtable,["fields","create","delete","reorder"])||["create","delete","reorder"].some(u=>d.subtable?.[u]!==void 0&&typeof d.subtable[u]!="boolean")||!Array.isArray(d.subtable.fields)||d.subtable.fields.some(u=>u?.subtable)?n.push(`WORKFLOW_TASK_SUBTABLE_PAGE_INVALID:${r}.${d.code}`):n.push(...Rt({taskPages:{child:{title:"\u5B50\u884C",fields:d.subtable.fields}}},o?.get(t?.get(d.code)?.subtable?.resourceCode||"")).map(u=>`${u}:${r}.${d.code}`)))}(l>Ki||l<0||!Number.isSafeInteger(l))&&n.push(`WORKFLOW_TASK_SUBTABLE_BUDGET_EXCEEDED:${r}`)}for(let[s,a]of Object.entries(e.nodes||{}))ce(a)&&a.taskPageCode!==void 0&&(a.kind!=="approval"||typeof a.taskPageCode!="string"||!ce(i)||!Object.hasOwn(i,a.taskPageCode)?n.push(`WORKFLOW_TASK_PAGE_NOT_FOUND:${s}`):Array.isArray(i[a.taskPageCode]?.fields)&&i[a.taskPageCode].fields.some(r=>r&&(a.fieldPolicy?.fields?.[r.code]||a.fieldPolicy?.default)==="hidden")&&n.push(`WORKFLOW_TASK_PAGE_FIELD_HIDDEN:${s}`));return n}function Do(e,t){return e.fields.map(o=>({code:o.code,visible:o.visibleWhen===void 0||!!De(o.visibleWhen,t),readonly:o.readonly===!0,required:o.required===!0||o.requiredWhen!==void 0&&!!De(o.requiredWhen,t)}))}var Ie=class extends Error{constructor(o,n){super(o);this.code=o;this.field=n}code;field;rowIndex;childField};function Ra(e,t){return t.map(o=>({key:String(o.id),id:String(o.id),revision:Number(o.revision),state:"persisted",values:Object.fromEntries(Do({title:"\u5B50\u884C",fields:e.fields},o).filter(n=>n.visible&&!n.readonly).map(n=>[n.code,o[n.code]??null]))}))}function Ca(e,t,o,n,i,s=!0){let a=e.subtable,r=u=>{throw new Ie(u,e.code)};if(!a||!Number.isSafeInteger(t)||t<1||t>wo||!Array.isArray(n)||n.length>2*t||An(n)>gn||!ht(n))return r("WORKFLOW_TASK_SUBTABLE_VALUES_INVALID");let c=new Map(o.map(u=>[String(u.id),u])),l=new Set,p=new Set,d=[];for(let u of n){if(!$e(u,["key","state","id","revision","values"])||typeof u.key!="string"||!Ui.test(u.key)||l.has(u.key)||!["created","persisted","deleted"].includes(u.state)||!ce(u.values))return r("WORKFLOW_TASK_SUBTABLE_ROW_INVALID");if(l.add(u.key),u.state==="created"){if(!a.create||u.id!==void 0||u.revision!==void 0||c.has(u.key))return r("WORKFLOW_TASK_SUBTABLE_CREATE_FORBIDDEN")}else{if(typeof u.id!="string"||u.id!==u.key||!Ui.test(u.id)||p.has(u.id)||!Number.isSafeInteger(u.revision)||u.revision<1||!c.has(u.id))return r("WORKFLOW_TASK_SUBTABLE_SCOPE_CONFLICT");if(p.add(u.id),s&&Number(c.get(u.id).revision)!==u.revision)return r("WORKFLOW_TASK_SUBTABLE_REVISION_CONFLICT")}if(u.state==="deleted"){if(!a.delete||Object.keys(u.values).length)return r("WORKFLOW_TASK_SUBTABLE_DELETE_FORBIDDEN");continue}try{Gi({title:e.code,fields:a.fields},u.id?c.get(u.id):{},u.values,i)}catch(g){if(!(g instanceof Ie))throw g;let I=new Ie(g.code,e.code);throw I.rowIndex=d.length,g.field!==void 0&&(I.childField=g.field),I}d.push(u)}if(p.size!==c.size)return r("WORKFLOW_TASK_SUBTABLE_SCOPE_CONFLICT");if(d.length>t)return r("WORKFLOW_TASK_SUBTABLE_MAX_ROWS_EXCEEDED");if(!a.reorder){let u=o.filter(I=>d.some(E=>E.id===String(I.id))).map(I=>String(I.id)),g=d.filter(I=>I.state==="persisted").map(I=>I.id);if(!ve(u,g)||d.some((I,E)=>I.state==="created"&&d.slice(E+1).some(N=>N.state==="persisted")))return r("WORKFLOW_TASK_SUBTABLE_REORDER_FORBIDDEN")}return n}function ht(e,t={members:0},o=0){return++t.members>5e4||o>12?!1:e===null||typeof e=="boolean"?!0:typeof e=="string"?e.length<=gn:typeof e=="number"?Number.isFinite(e):Array.isArray(e)?e.length<=1e3&&e.every(n=>ht(n,t,o+1)):ce(e)&&Object.entries(e).every(([n,i])=>!Ue.has(n)&&ht(i,t,o+1))}function Gi(e,t,o,n){if(!ce(o)||An(o)>gn||!ht(o))throw new Ie("WORKFLOW_TASK_FORM_VALUES_INVALID");let i={...t,...o},s=new Map(Do(e,i).map(a=>[a.code,a]));for(let a of Object.keys(o)){let r=s.get(a);if(!r||r.readonly||!r.visible)throw new Ie("WORKFLOW_TASK_FORM_FIELD_NOT_EDITABLE",a)}if(n)for(let a of s.values()){let r=i[a.code],c=e.fields.find(l=>l.code===a.code)?.subtable&&Array.isArray(r)?r.every(l=>ce(l)&&l.state==="deleted"):Ji(r);if(a.visible&&!a.readonly&&a.required&&c)throw new Ie("WORKFLOW_TASK_FORM_REQUIRED",a.code)}return i}function Sa(e,t,o){let n=JSON.parse(JSON.stringify(t));for(let[a,r]of Object.entries(e.subject?.factProjection||{})){let c=a.split(".");if(!c.length||c.length>12||a.length>128||c[0]==="steps"||c.some(p=>!Tt.test(p)||Ue.has(p)))throw new Ie("WORKFLOW_TASK_FORM_FACT_PROJECTION_INVALID");if(!Object.hasOwn(o,r))throw new Ie("WORKFLOW_TASK_FORM_FACT_FIELD_MISSING",r);let l=n;for(let p of c.slice(0,-1))l=l[p]=ce(l[p])?l[p]:{};l[c.at(-1)]=o[r]===void 0?void 0:JSON.parse(JSON.stringify(o[r]))}let i=new Set,s=Object.values(e.nodes||{}).filter(a=>a.kind==="action");for(let a=0;a<=s.length;a++){let r=!1;for(let c of s)ce(n.steps)&&Object.hasOwn(n.steps,c.id)&&Object.values(c.inputs||{}).some(l=>l.source==="fact"&&!ve(So(t,l.path),So(n,l.path)))&&(delete n.steps[c.id],i.add(c.id),r=!0);if(!r)break}return{facts:n,invalidatedNodeIds:[...i].sort()}}function wa(e,t,o){let n=e.nodes||{};for(let i of o){let s=new Set,a=new Map,r=c=>{if(c===i)return!0;if(a.has(c))return a.get(c);if(s.has(c)||s.size>200)return!1;let l=n[c];if(!ce(l)||l.kind==="end")return!1;s.add(c);let p=l.kind==="approval"?[l.onApprove]:l.kind==="condition"?[...(l.branches||[]).map(u=>u.target),l.otherwise]:[l.next],d=p.length>0&&p.every(u=>typeof u=="string"&&r(u));return s.delete(c),a.set(c,d),d};if(!r(t))return!1}return!0}var dl=256,ll=64,ul=262144,Da=/^[a-z][a-z0-9_-]{0,127}$/,$a=/^[A-Za-z][A-Za-z0-9_]*(?:\.[A-Za-z][A-Za-z0-9_]*)*$/,Hi=new Set(["__proto__","prototype","constructor"]),Te=e=>!!e&&typeof e=="object"&&!Array.isArray(e),St=(e,t)=>Object.keys(e).every(o=>t.includes(o)),Me=(e,t)=>typeof e=="string"&&e.trim().length>0&&e.length<=t&&!/[\u0000-\u001f\u007f]/.test(e),ke=e=>typeof e=="string"&&Da.test(e)&&!Hi.has(e),Yi=e=>typeof e=="string"&&e.length<=255&&$a.test(e)&&!e.split(".").some(t=>Hi.has(t)),ka=e=>Te(e)&&St(e,["dimension","valueFrom","value"])&&ke(e.dimension)&&(Me(e.value,255)&&e.valueFrom===void 0||Yi(e.valueFrom)&&e.value===void 0),zi=e=>typeof e=="string"&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?(?:Z|[+-]\d{2}:\d{2})$/.test(e)&&Number.isFinite(Date.parse(e)),Ct={type:"string",pattern:"^[a-z][a-z0-9_-]{0,127}$"},$o={type:"string",minLength:1,maxLength:128},Va={type:"object",additionalProperties:!1,required:["policyCode","title","strategy","dimensions","sources"],properties:{policyCode:Ct,title:$o,strategy:{enum:["replace_then_append","replace_only"]},dimensions:{type:"object",maxProperties:8,propertyNames:Ct,additionalProperties:{type:"object",additionalProperties:!1,required:["title","valueFrom"],properties:{title:$o,valueFrom:{type:"string",minLength:1,maxLength:255}}}},sources:{type:"object",minProperties:1,maxProperties:16,propertyNames:Ct,additionalProperties:{type:"object",additionalProperties:!1,required:["title","provider","roleCode"],properties:{title:$o,provider:{enum:["app_role","app_role_in_scope"]},roleCode:Ct,scope:{type:"object",additionalProperties:!1,required:["dimension"],properties:{dimension:Ct,value:{type:"string",minLength:1,maxLength:255},valueFrom:{type:"string",minLength:1,maxLength:255}}}}}}}};function wt(e){if(!Te(e)||!St(e,["policyCode","title","strategy","dimensions","sources"])||!ke(e.policyCode)||!Me(e.title,128)||!["replace_then_append","replace_only"].includes(e.strategy))return["WORKFLOW_V2_ROUTING_POLICY_INVALID"];let t=[];return(!Te(e.dimensions)||Object.keys(e.dimensions).length>8||Object.entries(e.dimensions).some(([o,n])=>!ke(o)||!Te(n)||!St(n,["title","valueFrom"])||!Me(n.title,128)||!Yi(n.valueFrom)))&&t.push("WORKFLOW_V2_ROUTING_DIMENSIONS_INVALID"),(!Te(e.sources)||Object.keys(e.sources).length<1||Object.keys(e.sources).length>16||Object.entries(e.sources).some(([o,n])=>!ke(o)||!Te(n)||!St(n,["title","provider","roleCode","scope"])||!Me(n.title,128)||!ke(n.roleCode)||!["app_role","app_role_in_scope"].includes(n.provider)||(n.provider==="app_role_in_scope"?!ka(n.scope):n.scope!==void 0)))&&t.push("WORKFLOW_V2_ROUTING_SOURCES_INVALID"),t}function Pa(e,t){if(wt(e).length)return["WORKFLOW_V2_ROUTING_POLICY_INVALID"];if(!Array.isArray(t)||t.length>256||new TextEncoder().encode(JSON.stringify(t)).length>262144)return["WORKFLOW_V2_ROUTING_RULE_LIMIT_EXCEEDED"];let o=[],n=new Set;for(let i of t){if(!Te(i)||!St(i,["ruleCode","title","enabled","workflowCode","nodeId","matches","sourceCode","effect","priority","validFrom","validTo"])||!ke(i.ruleCode)||!Me(i.title,128)||typeof i.enabled!="boolean"||!ke(i.sourceCode)||!Object.hasOwn(e.sources,i.sourceCode)||!["append","replace"].includes(i.effect)||!Number.isSafeInteger(i.priority)||i.priority<-1e3||i.priority>1e3||i.workflowCode!==void 0&&!ke(i.workflowCode)||i.nodeId!==void 0&&(!ke(i.nodeId)||i.workflowCode===void 0)||i.validFrom!==void 0&&!zi(i.validFrom)||i.validTo!==void 0&&!zi(i.validTo)||i.validFrom&&i.validTo&&Date.parse(i.validFrom)>=Date.parse(i.validTo)){o.push("WORKFLOW_V2_ROUTING_RULE_INVALID");continue}n.has(i.ruleCode)&&o.push(`WORKFLOW_V2_ROUTING_RULE_DUPLICATE:${i.ruleCode}`),n.add(i.ruleCode),(!Te(i.matches)||Object.entries(i.matches).some(([s,a])=>!Object.hasOwn(e.dimensions,s)||!Array.isArray(a)||a.length<1||a.length>64||new Set(a).size!==a.length||a.some(r=>!Me(r,255))))&&o.push(`WORKFLOW_V2_ROUTING_MATCH_INVALID:${i.ruleCode}`)}return[...new Set(o)]}function Xi(e){return JSON.stringify({policyCode:e.policyCode,strategy:e.strategy,dimensions:Object.entries(e.dimensions).sort(([t],[o])=>t<o?-1:t>o?1:0).map(([t,o])=>[t,o.valueFrom]),sources:Object.entries(e.sources).sort(([t],[o])=>t<o?-1:t>o?1:0).map(([t,o])=>[t,o.provider,o.roleCode,o.scope?.dimension??null,o.scope?.valueFrom??null,o.scope?.value??null])})}function ko(e){let t=[],o=new Map;for(let n of e)for(let[i,s]of Object.entries(n.bindings||{})){if(!Te(s)||s.routing===void 0)continue;let a=wt(s.routing);if(a.length){t.push(...a.map(l=>`${l}:${i}`));continue}let r=Xi(s.routing),c=o.get(s.routing.policyCode);c&&c!==r&&t.push(`WORKFLOW_V2_ROUTING_POLICY_CONFLICT:${s.routing.policyCode}`),o.set(s.routing.policyCode,r)}return[...new Set(t)]}function Fa(e,t){let o={};for(let[n,i]of Object.entries(e.dimensions)){let s=t;for(let a of i.valueFrom.split("."))s=Te(s)&&Object.hasOwn(s,a)?s[a]:void 0;if(!(typeof s=="string"&&Me(s,255)||typeof s=="number"&&Number.isFinite(s)||typeof s=="boolean"))throw new Error(`WORKFLOW_V2_ROUTING_FACT_REQUIRED:${n}`);o[n]=String(s)}return o}function va(e,t,o){let n=t.filter(l=>l.enabled&&(!l.validFrom||Date.parse(l.validFrom)<=o.at)&&(!l.validTo||Date.parse(l.validTo)>o.at)&&(!l.workflowCode||l.workflowCode===o.workflowCode)&&(!l.nodeId||l.nodeId===o.nodeId)&&Object.entries(l.matches).every(([p,d])=>d.includes(o.facts[p])));if(n.length>64)throw new Error("WORKFLOW_V2_ROUTING_MATCH_LIMIT_EXCEEDED");let i=(l,p)=>p.priority-l.priority||+!!l.workflowCode-+!!p.workflowCode||+!!l.nodeId-+!!p.nodeId||(l.ruleCode<p.ruleCode?-1:l.ruleCode>p.ruleCode?1:0),s=n.filter(l=>l.effect==="replace").sort(i);if(s.length>1&&s[0].priority===s[1].priority)throw new Error("WORKFLOW_V2_ROUTING_REPLACE_CONFLICT");let a=s[0],r=a&&e.strategy==="replace_only"?[]:n.filter(l=>l.effect==="append").sort(i),c=[...a?[a]:[],...r];return{matched:n.sort(i),replacement:a,applied:c,ignored:n.filter(l=>!c.includes(l))}}var Tn=Xs(require("crypto"),1);var Qi="native-4",Zi={"application-native-2":"1.0.0","authz.native-batch-explain":"1.0.0","authz.native-management":"1.0.0","authz.native-membership-batch":"1.0.0","deployment.durable-runs":"1.0.0","deployment.platform-executor":"1.0.0","environment.on-demand-production":"1.0.0","environment.runtime-lifecycle":"1.0.0","data-api-v2":"1.1.0","data.business-commands":"1.0.0","data.record-edit":"1.0.0","data.native-golden-crud":"1.0.0","data.audit-read-access":"1.0.0","data.managed-files":"1.1.0","data.decimal-reservations":"1.1.0","data.decimal-reservation-lifecycle":"1.0.0","data.unique-keys":"1.1.0","data.user-candidates":"1.0.0","data.managed-concurrency":"1.0.0","data.managed-concurrency.durable":"1.0.0","workflow.named-input-sources":"1.0.0","directory-v2":"1.0.0","directory.selected-user":"1.0.0","directory.current-initiator-phone":"1.0.0","events-v2":"1.0.0","events.durable-receipts":"1.0.0","events.capture-policy":"1.0.0","events.native-data-actions":"1.0.0","workflow-kernel-v2":"1.0.0","workflow.business-data-command":"1.0.0","workflow.launch-preflight":"1.0.0","workflow.optional-rejection-comment":"1.0.0","workflow.optional-withdrawal-reason":"1.0.0","data.record-print":"1.0.0","data.workflow-record-deletion":"1.0.0","data.record-comments":"1.0.0","workflow.record-history-read":"1.0.0","workflow.rejection-notification":"1.0.0","workflow.instance-cancellation-policy":"1.0.0","workflow.node-administration":"1.0.0","workflow.assignment-routing":"1.0.0","workflow.role-references":"1.0.0","workflow.delegation-management":"1.0.0","workflow.automatic-cc":"1.0.0","workflow.approval-empty-policy":"1.0.0","workflow.initiator-approval-policy":"1.0.0","workflow.task-page-submit":"1.0.0","workflow.task-private-drafts":"1.0.0","workflow.task-managed-files":"1.0.0","workflow.task-rich-fields":"1.0.0","workflow.task-owned-subtables":"1.0.0","workflow.task-owned-files":"1.0.0","workflow.durable-business-step":"1.0.0","business-process.durable-command":"1.1.0","workflow.fresh-command-token":"1.0.0","notification-hub-v2":"1.0.0","authentication.application-login-surface":"1.0.0","public-access.anonymous-owner-records":"1.0.0"};var ml=5,_l=20,gl=50,Al=50,El=100,at=class extends Error{constructor(o,n){super(o);this.code=o;this.pointer=n;this.name="NativeDataPolicyExpressionV2Error"}code;pointer};function $t(e,t){let o=[],n=(i,s,a)=>{a>5&&Dt("NATIVE_DATA_POLICY_EXPRESSION_DEPTH_EXCEEDED",s);let r=es(i,s),c=["allOf","anyOf"].filter(d=>d in r);if(c.length===0){o.push({rule:r,pointer:s}),o.length>50&&Dt("NATIVE_DATA_POLICY_EXPRESSION_LEAVES_EXCEEDED",s);return}let l=c[0],p=r[l];(c.length!==1||Object.keys(r).length!==1||!Array.isArray(p)||p.length<1||p.length>20)&&Dt("NATIVE_DATA_POLICY_EXPRESSION_GROUP_INVALID",s),p.forEach((d,u)=>n(d,`${s}/${l}/${u}`,a+1))};return n(e,t,1),o}function Po(e,t){$t(e,t);let o=(n,i)=>{let s=es(n,i);if(Array.isArray(s.allOf))return Vo(s.allOf.flatMap((a,r)=>o(a,`${i}/allOf/${r}`)),i);if(Array.isArray(s.anyOf)){let a=[[]];return s.anyOf.forEach((r,c)=>{let l=o(r,`${i}/anyOf/${c}`);a=Vo(a.flatMap(p=>l.map(d=>[...p,...d])),i)}),a}return[[s]]};return Vo(o(e,t),t)}function Vo(e,t){let o=e.reduce((n,i)=>n+i.length,0);return(e.length>50||o>100)&&Dt("NATIVE_DATA_POLICY_EXPRESSION_EXPANSION_EXCEEDED",t),e}function es(e,t){return(!e||typeof e!="object"||Array.isArray(e))&&Dt("NATIVE_DATA_POLICY_EXPRESSION_NODE_INVALID",t),e}function Dt(e,t){throw new at(e,t)}var La="openxiangda.config-bundle/v3",Es="openxiangda.contract-bundle/v3",ts="openxiangda.native-configuration-projection/v1",Vt=Qi,xa=/^[a-f0-9]{64}$/,ja=/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/,Wa=/^app:[a-z][a-z0-9]*(?:-[a-z0-9]+)*:[A-Za-z0-9:._*-]+$/,Ua=/^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$/,Ma=/^[a-z][a-z0-9]*(?:[-.][a-z0-9]+)*$/,Ba=/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/,Ka=/^[A-Za-z][A-Za-z0-9_]{0,62}$/,ns=/^[A-Za-z][A-Za-z0-9_]{0,127}$/,qa=/^[a-z][a-z0-9]*(?:[-_][a-z0-9]+)*$/,Ja=/^[A-Z][A-Z0-9_]*$/,Ga=/^[a-z][a-z0-9-]{2,63}$/,za=/^[A-Za-z][A-Za-z0-9_-]{0,127}$/,Ha=/^[A-Za-z][A-Za-z0-9_.]{0,127}$/,Ya=16,Xa=2*1024,Qa=new Set(["text.short","text.long","number.integer","number.decimal","boolean","date","time","datetime","option.single","option.multiple","cascade.single","cascade.multiple","user.single","user.multiple","department.single","department.multiple","resource-ref.single","resource-ref.multiple","uuid","serial-number"]),Za=new Set(["overview","database","operations","workflow","members","calendar","document","folder","settings"]),ec=new Set(["approve","reject","return","transfer","delegate","add_assignee","resubmit","withdraw","terminate","admin_reassign","admin_override","retry_resolution"]),tc=4*1024*1024,nc=8*1024*1024,oc=40,ic=1e5,vo=1024*1024,sc="openxiangda.event-handler-manifest/v2",Is="openxiangda.application-route-manifest/v3",os=64,ys=new Set(["id","revision","created_by","updated_by","created_at","updated_at"]),X=Object.freeze({perspectives:100,resources:100,subjectReadSurfaces:50,capabilities:2e3,operations:500,eventConsumers:100,eventProducers:1e3,eventSchemas:100,eventTypes:500,workflows:100,routes:500,adminPages:500,adminNavigationGroups:100,adminNavigationItems:500}),En=["openxiangda.data.record.created.v2","openxiangda.data.record.updated.v2","openxiangda.data.record.deleted.v2"],In=["openxiangda.workflow.node.skipped.v2",tt,"openxiangda.workflow.step.result_received.v2","openxiangda.workflow.step.completed.v2","openxiangda.workflow.step.continuation_failed.v2","openxiangda.workflow.instance.started.v2","openxiangda.workflow.instance.cc_added.v2","openxiangda.workflow.instance.completed.v2","openxiangda.workflow.instance.rejected.v2","openxiangda.workflow.instance.returned.v2","openxiangda.workflow.instance.resumed.v2","openxiangda.workflow.instance.withdrawn.v2","openxiangda.workflow.instance.terminated.v2","openxiangda.workflow.task.created.v2","openxiangda.workflow.task.assigned.v2","openxiangda.workflow.task.assignment_pending.v2","openxiangda.workflow.task.assignment_resolution_failed.v2","openxiangda.workflow.task.approved.v2","openxiangda.workflow.task.completed.v2","openxiangda.workflow.task.rejected.v2","openxiangda.workflow.task.returned.v2","openxiangda.workflow.task.resubmitted.v2","openxiangda.workflow.task.transferred.v2","openxiangda.workflow.task.reassigned.v2","openxiangda.workflow.task.delegated.v2","openxiangda.workflow.task.assignee_added.v2","openxiangda.workflow.task.cancelled.v2","openxiangda.workflow.participant.activated.v2","openxiangda.workflow.participant.completed.v2","openxiangda.workflow.participant.rejected.v2","openxiangda.workflow.participant.returned.v2","openxiangda.workflow.participant.transferred.v2","openxiangda.workflow.participant.reassigned.v2","openxiangda.workflow.participant.delegated.v2","openxiangda.workflow.participant.added.v2","openxiangda.workflow.participant.suspended.v2","openxiangda.workflow.participant.resumed.v2","openxiangda.workflow.participant.cancelled.v2"],rc=new Set(In),yn=class extends Error{code;pointer;identifiers;constructor(t,o,n={}){super(t),this.name="NativeConfigurationCompilerError",this.code=t,this.pointer=o,this.identifiers=Object.fromEntries(Object.entries(n).slice(0,8).map(([i,s])=>[i,String(s).slice(0,128)]))}};function ac(e){let t=S(e.appCode,"/appCode",128);ja.test(t)||m("NATIVE_CONFIG_APP_CODE_INVALID","/appCode");let o=xo(e.expectedConfigDigest,"/expectedConfigDigest"),n=xo(e.expectedContractDigest,"/expectedContractDigest"),i=_s(e.configBytes,tc,"/configBytes","NATIVE_CONFIG_ARTIFACT_TOO_LARGE"),s=_s(e.contractBytes,nc,"/contractBytes","NATIVE_CONTRACT_ARTIFACT_TOO_LARGE");gs(i,o,"/configBytes","NATIVE_CONFIG_DIGEST_MISMATCH"),gs(s,n,"/contractBytes","NATIVE_CONTRACT_DIGEST_MISMATCH");let a=ps(i,"/configBytes","NATIVE_CONFIG_JSON_INVALID","NATIVE_CONFIG_NOT_CANONICAL"),r=ps(s,"/contractBytes","NATIVE_CONTRACT_JSON_INVALID","NATIVE_CONTRACT_NOT_CANONICAL");ms(a,"/config"),ms(r,"/contracts");let c=a,l=r;dc(c,t),lc(l,t,o);let p=uc(c,o,l.generatorVersion);Xc(p,l,c),ne(p)!==ne(l)&&m("NATIVE_CONTRACT_CLOSURE_MISMATCH",jo(p,l,"/contracts"));let d={authz:{appCode:t,...c.authz,perspectives:c.perspectives,capabilityCatalog:p.capabilities},data:{appCode:t,resources:c.data.resources,resourceContracts:p.resources,...p.concurrency?{concurrency:p.concurrency}:{},...p.subjectReadSurfaces?{subjectReadSurfaces:p.subjectReadSurfaces}:{}},events:{appCode:t,...c.events,consumers:p.eventConsumers,producers:p.eventProducers,handlerManifest:p.eventHandlerManifest,eventTypes:p.eventTypes,capturePlans:Ns({resources:c.data.resources,dataPolicies:c.authz.dataPolicies,subscriptions:p.eventConsumers,capturePolicies:c.events.capturePolicies})},workflows:{appCode:t,...c.workflows,contracts:p.workflows},runtime:{appCode:t,requirements:c.runtime,backend:c.backend,frontend:c.frontend},contracts:p},u={authz:ct(d.authz),data:ct(d.data),events:ct(d.events),workflows:ct(d.workflows),runtime:ct(d.runtime),contracts:ct(d.contracts)},g={configDigest:o,contractDigest:n,generatorVersion:l.generatorVersion},I=bs(c),E={schemaVersion:ts,compilerContractVersion:Vt,appCode:t,source:g,projections:u,requiredPlatformCapabilities:I,aggregateDigest:Q({schemaVersion:ts,compilerContractVersion:Vt,appCode:t,source:g,requiredPlatformCapabilities:I,projectionDigests:Object.fromEntries(Object.entries(u).map(([N,y])=>[N,y.digest]))})};return Ps(E)}function bs(e){let t=e.authz.roles,o=e.data.resources,n=e.backend.operations,i=n.filter(f=>f.platformAccess?.directory?.mode==="current-initiator"&&f.platformAccess.directory.fields.includes("phone")),s=(e.data.concurrency?.commands||[]).filter(f=>f.execution?.directory?.mode==="current-initiator"&&f.execution.directory.fields.includes("phone")),a=t.some(f=>f.capabilities.some(b=>b.endsWith(":directory:read")))||o.some(f=>f.schema.fields.some(b=>["user.single","user.multiple","department.single","department.multiple"].includes(b.type)))||n.some(f=>f.platformAccess?.directory),r=!!(e.events.subscriptions.length||e.events.timers.length||e.events.dateTriggers.length||e.events.schemas.length),c=n.some(f=>f.platformAccess?.managedFiles||f.platformAccess?.managedFileCopies)||e.events.subscriptions.some(f=>f.platformAccess?.managedFileCopies),l=e.workflows.definitions.some(f=>f.definition.rejectionNotification!==void 0)||n.some(f=>f.platformAccess?.notification)||e.events.subscriptions.some(f=>f.platformAccess?.notification),p=(f,b,h=!1)=>{let C=o.find($=>$.code===f.definition.subject?.resourceCode)?.schema.fields||[];return Object.values(f.definition.taskPages||{}).some($=>$.fields.some(k=>{if(k.readonly)return!1;let W=C.find(Y=>Y.code===k.code);if(!h&&W&&b.includes(W.type))return!0;if(!k.subtable||!W?.subtable)return!1;let v=o.find(Y=>Y.code===W.subtable.resourceCode)?.schema.fields||[];return k.subtable.fields.some(Y=>!Y.readonly&&v.some(te=>te.code===Y.code&&b.includes(te.type)))}))},d=e.workflows.definitions.filter(f=>p(f,["file","image","signature","text.rich"])),u=e.workflows.definitions.filter(f=>p(f,["signature","text.rich"])),g=e.workflows.definitions.filter(f=>p(f,["file","image","signature","text.rich"],!0)),I=e.workflows.definitions.filter(f=>f.launch.mode==="standalone"||f.launch.mode==="hidden-handoff"),E=n.some(f=>f.platformAccess?.workflow)||I.length>0,N=I.filter(f=>{let b=f.launch.submission;if(!b)return!1;let h=o.find(C=>C.code===f.definition.subject.resourceCode);return[b.create,b.existing].some(C=>C&&Object.values(C.inputs).some($=>$.source==="field"&&h?.schema.fields.some(k=>k.code===$.fieldCode&&k.type.startsWith("resource-ref.")&&k.source)))}),y={resources:o},_={perspectives:e.perspectives,authz:e.authz},A={schemaVersion:e.schemaVersion,appCode:e.appCode,frontend:{routes:e.frontend.routes,user:e.frontend.user,admin:e.frontend.admin,devicePolicy:e.frontend.devicePolicy},backend:{operations:n.map(f=>({code:f.code,method:f.method,path:f.path,capability:f.capability,platformAccess:f.platformAccess||null,...f.browser?{browser:f.browser}:{},ai:f.ai||null}))}};return[...o.some(f=>f.uniqueKeys?.length)?[{code:"data.unique-keys",declaration:o.filter(f=>f.uniqueKeys?.length).map(f=>({code:f.code,uniqueKeys:f.uniqueKeys}))}]:[],...e.data.concurrency?[{code:"data.managed-concurrency",declaration:e.data.concurrency}]:[],...e.data.concurrency?.commands.some(f=>f.mode==="durable")?[{code:"data.managed-concurrency.durable",declaration:e.data.concurrency}]:[],...o.some(f=>f.decimalReservationLifecycle)?[{code:"data.decimal-reservation-lifecycle",declaration:o.filter(f=>f.decimalReservationLifecycle).map(f=>({code:f.code,decimalReservationLifecycle:f.decimalReservationLifecycle}))}]:[],...n.some(f=>f.platformAccess?.dataCommands)?[{code:"data.business-commands",declaration:n.filter(f=>f.platformAccess?.dataCommands)}]:[],...n.some(f=>f.platformAccess?.recordEdit)?[{code:"data.record-edit",declaration:n.filter(f=>f.platformAccess?.recordEdit)}]:[],...n.some(f=>f.platformAccess?.decimalReservation)||e.events.subscriptions.some(f=>f.platformAccess?.decimalReservation)?[{code:"data.decimal-reservations",declaration:[...n.filter(f=>f.platformAccess?.decimalReservation).map(f=>({code:f.code,decimalReservation:f.platformAccess.decimalReservation})),...e.events.subscriptions.filter(f=>f.platformAccess?.decimalReservation).map(f=>({subscriptionCode:f.code,decimalReservation:f.platformAccess.decimalReservation}))]}]:[],{code:"application-native-2",declaration:A},{code:"authz.native-batch-explain",declaration:_},{code:"authz.native-management",declaration:_},{code:"deployment.durable-runs",declaration:A.backend},{code:"deployment.platform-executor",declaration:A.backend},{code:"environment.on-demand-production",declaration:{environments:["preproduction","production"]}},{code:"environment.runtime-lifecycle",declaration:{environments:["preproduction","production"]}},...o.length?[{code:"data-api-v2",declaration:y},{code:"data.native-golden-crud",declaration:y}]:[],...o.some(f=>f.recordComments!==void 0)?[{code:"data.record-comments",declaration:y}]:[],...o.some(f=>f.recordDeletion!==void 0)?[{code:"data.workflow-record-deletion",declaration:y}]:[],...o.some(f=>f.recordPrint!==void 0)?[{code:"data.record-print",declaration:y}]:[],...o.some(f=>f.workflowHistory!==void 0)?[{code:"workflow.record-history-read",declaration:y}]:[],...o.some(Bn)?[{code:"data.audit-read-access",declaration:y}]:[],...a?[{code:"directory-v2",declaration:{roles:t.map(f=>({code:f.code,capabilities:f.capabilities.filter(b=>b.endsWith(":directory:read"))})),resources:o.map(f=>({code:f.code,fields:f.schema.fields.filter(b=>["user.single","user.multiple","department.single","department.multiple"].includes(b.type))})),operations:n.filter(f=>f.platformAccess?.directory).map(f=>({code:f.code,directory:f.platformAccess.directory}))}}]:[],...n.some(f=>f.platformAccess?.directory?.mode==="selected-user")?[{code:"directory.selected-user",declaration:n.filter(f=>f.platformAccess?.directory?.mode==="selected-user").map(f=>({code:f.code,directory:f.platformAccess.directory}))}]:[],...i.length||s.length?[{code:"directory.current-initiator-phone",declaration:{operations:i.map(f=>({code:f.code,directory:f.platformAccess.directory})),commands:s.map(f=>({code:f.code,directory:f.execution.directory}))}}]:[],...c?[{code:"data.managed-files",declaration:{operations:n.filter(f=>f.platformAccess?.managedFiles||f.platformAccess?.managedFileCopies).map(f=>({code:f.code,...f.platformAccess?.managedFiles?{managedFiles:f.platformAccess.managedFiles}:{},...f.platformAccess?.managedFileCopies?{managedFileCopies:f.platformAccess.managedFileCopies}:{}})),subscriptions:e.events.subscriptions.filter(f=>f.platformAccess?.managedFileCopies).map(f=>({code:f.code,managedFileCopies:f.platformAccess.managedFileCopies}))}}]:[],...e.events.subscriptions.some(f=>f.execution)?[{code:"events.native-data-actions",declaration:e.events.subscriptions.filter(f=>f.execution)}]:[],...e.events.capturePolicies?.length?[{code:"events.capture-policy",declaration:e.events.capturePolicies}]:[],...r?[{code:"events-v2",declaration:e.events},{code:"events.durable-receipts",declaration:e.events}]:[],...e.data.resources.some(f=>f.schema.fields.some(b=>b.userCandidates!==void 0))?[{code:"data.user-candidates",declaration:e.data.resources.filter(f=>f.schema.fields.some(b=>b.userCandidates!==void 0))}]:[],...e.workflows.activations.length?[{code:"workflow-kernel-v2",declaration:e.workflows},{code:"workflow.fresh-command-token",declaration:e.workflows}]:[],...e.workflows.definitions.some(f=>f.definition.instanceCommands!==void 0)?[{code:"workflow.instance-cancellation-policy",declaration:e.workflows.definitions.filter(f=>f.definition.instanceCommands!==void 0)}]:[],...e.workflows.definitions.some(f=>f.definition.instanceCommands?.withdraw?.reasonRequired===!1)?[{code:"workflow.optional-withdrawal-reason",declaration:e.workflows.definitions.filter(f=>f.definition.instanceCommands?.withdraw?.reasonRequired===!1)}]:[],...e.workflows.definitions.some(f=>f.definition.rejectionNotification!==void 0)?[{code:"workflow.rejection-notification",declaration:e.workflows.definitions.filter(f=>f.definition.rejectionNotification!==void 0)}]:[],...e.workflows.definitions.some(f=>f.definition.commandHandlers!==void 0)||n.some(f=>f.platformAccess?.workflow?.businessCommands)?[{code:"workflow.business-data-command",declaration:{definitions:e.workflows.definitions.filter(f=>f.definition.commandHandlers!==void 0),operations:n.filter(f=>f.platformAccess?.workflow?.businessCommands)}}]:[],...e.workflows.definitions.some(f=>f.definition.launchPreflight!==void 0)?[{code:"workflow.launch-preflight",declaration:e.workflows.definitions.filter(f=>f.definition.launchPreflight!==void 0)}]:[],...e.workflows.definitions.some(f=>Object.values(f.definition.nodes).some(b=>b.operationPolicy?.reject?.commentRequired===!1))?[{code:"workflow.optional-rejection-comment",declaration:e.workflows.definitions.filter(f=>Object.values(f.definition.nodes).some(b=>b.operationPolicy?.reject?.commentRequired===!1))}]:[],...N.length?[{code:"workflow.named-input-sources",declaration:N}]:[],...e.workflows.definitions.some(f=>Object.values(f.definition.nodes).some(b=>b.administration!==void 0||b.operationPolicy!==void 0))?[{code:"workflow.node-administration",declaration:e.workflows.definitions.filter(f=>Object.values(f.definition.nodes).some(b=>b.administration!==void 0||b.operationPolicy!==void 0))}]:[],...e.workflows.definitions.some(f=>Object.values(f.definition.nodes).some(b=>b.kind==="approval"&&b.emptyPolicy!==void 0))?[{code:"workflow.approval-empty-policy",declaration:e.workflows.definitions.filter(f=>Object.values(f.definition.nodes).some(b=>b.kind==="approval"&&b.emptyPolicy!==void 0))}]:[],...e.workflows.definitions.some(f=>Object.values(f.definition.nodes).some(b=>b.initiatorApprovalPolicy!==void 0))?[{code:"workflow.initiator-approval-policy",declaration:e.workflows.definitions.filter(f=>Object.values(f.definition.nodes).some(b=>b.initiatorApprovalPolicy!==void 0))}]:[],...e.workflows.definitions.some(f=>Object.values(f.definition.nodes).some(b=>b.kind==="cc"))?[{code:"workflow.automatic-cc",declaration:e.workflows.definitions.filter(f=>Object.values(f.definition.nodes).some(b=>b.kind==="cc"))}]:[],...e.workflows.definitions.some(f=>f.definition.taskPages!==void 0)?["workflow.task-page-submit","workflow.task-private-drafts"].map(f=>({code:f,declaration:e.workflows.definitions.filter(b=>b.definition.taskPages!==void 0)})):[],...d.length?[{code:"workflow.task-managed-files",declaration:d}]:[],...g.length?[{code:"workflow.task-owned-files",declaration:g}]:[],...u.length?[{code:"workflow.task-rich-fields",declaration:u}]:[],...e.workflows.definitions.some(f=>Object.values(f.definition.taskPages||{}).some(b=>b.fields.some(h=>h.subtable)))?[{code:"workflow.task-owned-subtables",declaration:e.workflows.definitions.filter(f=>Object.values(f.definition.taskPages||{}).some(b=>b.fields.some(h=>h.subtable)))}]:[],...e.workflows.definitions.some(f=>Object.values(f.definition.nodes).some(b=>b.kind==="action"))?[{code:"workflow.durable-business-step",declaration:e.workflows.definitions.filter(f=>Object.values(f.definition.nodes).some(b=>b.kind==="action"))}]:[],...e.workflows.bindings.some(f=>Object.values(f.binding.bindings).some(b=>b.routing!==void 0))?[{code:"workflow.assignment-routing",declaration:e.workflows.bindings.filter(f=>Object.values(f.binding.bindings).some(b=>b.routing!==void 0))}]:[],...E?[{code:"business-process.durable-command",declaration:{operations:n.filter(f=>f.platformAccess?.workflow).map(f=>({code:f.code,workflow:f.platformAccess.workflow})),definitions:I,activations:e.workflows.activations.filter(f=>I.some(b=>b.definition.code===f.workflowCode))}}]:[],...l?[{code:"notification-hub-v2",declaration:{...e.workflows.definitions.some(f=>f.definition.rejectionNotification!==void 0)?{rejectionNotifications:e.workflows.definitions.filter(f=>f.definition.rejectionNotification!==void 0)}:{},operations:n.filter(f=>f.platformAccess?.notification).map(f=>({code:f.code,notification:f.platformAccess.notification})),subscriptions:e.events.subscriptions.filter(f=>f.platformAccess?.notification).map(f=>({code:f.code,notification:f.platformAccess.notification}))}}]:[],...e.frontend.authentication?[{code:"authentication.application-login-surface",declaration:e.frontend.authentication}]:[],...e.frontend.publicAccess?[{code:"public-access.anonymous-owner-records",declaration:e.frontend.publicAccess}]:[]].map(({code:f,declaration:b})=>({code:f,contractVersion:f==="data.unique-keys"?o.some(h=>uo(h.schema.fields,h.uniqueKeys)==="1.1.0")?"1.1.0":"1.0.0":Zi[f],usageDigest:`sha256:${Q(b)}`})).sort((f,b)=>f.code===b.code?0:f.code<b.code?-1:1)}function Ns(e){let t=new Map,o=new Set(e.resources.map(s=>String(s.code)));for(let[s,a]of w(e.capturePolicies===void 0?[]:e.capturePolicies,"/capturePlan/capturePolicies",100).entries()){let r=`/capturePlan/capturePolicies/${s}`,c=O(a,r);R(c,["resourceCode","mode"],r);let l=G(c.resourceCode,`${r}/resourceCode`);o.has(l)||m("NATIVE_EVENT_CAPTURE_RESOURCE_NOT_FOUND",r,{resourceCode:l}),t.has(l)&&m("NATIVE_EVENT_CAPTURE_POLICY_DUPLICATE",r,{resourceCode:l}),c.mode!=="all"&&c.mode!=="subscribed"&&m("NATIVE_EVENT_CAPTURE_MODE_INVALID",`${r}/mode`),t.set(l,c.mode)}let n=new Map(e.dataPolicies.map((s,a)=>{let r=O(s,`/capturePlan/dataPolicies/${a}`);return[String(r.code),r]})),i=e.subscriptions.map((s,a)=>O(s,`/capturePlan/subscriptions/${a}`));return e.resources.map((s,a)=>{let r=`/capturePlan/resources/${a}`,c=O(s,r),l=G(c.code,`${r}/code`),p=c.schema?O(c.schema,`${r}/schema`):c,d=new Set(w(p.fields||[],`${r}/schema/fields`,500).map((b,h)=>K(O(b,`${r}/schema/fields/${h}`).code,`${r}/schema/fields/${h}/code`))),u=c.dataPolicyCode?P(c.dataPolicyCode,`${r}/dataPolicyCode`):null,g=u?n.get(u):void 0;u&&!g&&m("NATIVE_EVENT_CAPTURE_AUTHZ_POLICY_NOT_FOUND",r,{resourceCode:l,dataPolicyCode:u});let I=new Set;for(let b of g?.rules||[])I.add(String(b.field));if(g?.readExpression)for(let b of $t(g.readExpression,`${r}/readExpression`))I.add(String(b.rule.field));let E=new Set,N=new Set,y=new Set;for(let[b,h]of i.entries()){let C=w(h.eventTypes,`/capturePlan/subscriptions/${b}/eventTypes`,20).map(String);if(!C.some(v=>v.startsWith("openxiangda.data.")))continue;let $=O(h.filter||{},`/capturePlan/subscriptions/${b}/filter`),k=Array.isArray($.resourceCodes)?$.resourceCodes.map(String):[];if(k.length&&!k.includes(l))continue;for(let v of C)En.includes(v)&&y.add(v);for(let v of cc($,`/capturePlan/subscriptions/${b}/filter`))E.add(v);let W=O(h.payload||{},`/capturePlan/subscriptions/${b}/payload`);for(let v of w(W.fields||[],`/capturePlan/subscriptions/${b}/payload/fields`,32))N.add(K(v,`/capturePlan/subscriptions/${b}/payload/fields`))}let _=new Set([...E,...N]),A=new Set([..._,...I]);A.size>os&&m("NATIVE_EVENT_CAPTURE_FIELDS_LIMIT",r,{resourceCode:l,maximum:os});for(let b of A)!d.has(b)&&!(I.has(b)&&ys.has(b))&&m("NATIVE_EVENT_CAPTURE_FIELD_NOT_FOUND",r,{resourceCode:l,field:b});let T=O(c.fieldPolicies||{},`${r}/fieldPolicies`);for(let b of _)T[b]?.mask==="omit"&&m("NATIVE_EVENT_CAPTURE_FIELD_SENSITIVE",r,{resourceCode:l,field:b});let f={resourceCode:l,...t.get(l)==="subscribed"?{capturedEventTypes:[...y].sort()}:{},filterFields:[...E].sort(),projectionFields:[...N].sort(),authorizationFields:[...I].sort(),captureFields:[...A].sort()};return{...f,digest:Q(f)}}).sort((s,a)=>s.resourceCode.localeCompare(a.resourceCode))}function cc(e,t){let o=new Set;for(let[a,r]of w(e.changes||[],`${t}/changes`,16).entries()){let c=O(r,`${t}/changes/${a}`);o.add(K(c.field,`${t}/changes/${a}/field`))}let n=O(e.changedFields||{},`${t}/changedFields`);for(let a of["anyOf","allOf","noneOf"])for(let[r,c]of w(n[a]||[],`${t}/changedFields/${a}`,32).entries())o.add(K(c,`${t}/changedFields/${a}/${r}`));let i=0,s=(a,r,c)=>{c>3&&m("NATIVE_EVENT_FILTER_DEPTH_LIMIT",r);let l=O(a,r);if(l.change){let d=O(l.change,`${r}/change`);o.add(K(d.field,`${r}/change/field`)),i+=1;return}if(l.not){s(l.not,`${r}/not`,c+1);return}let p=l.all?"all":l.any?"any":null;p||m("NATIVE_EVENT_FILTER_CONDITION_INVALID",r);for(let[d,u]of w(l[p],`${r}/${p}`,16).entries())s(u,`${r}/${p}/${d}`,c+1)};return e.where&&s(e.where,`${t}/where`,1),i+=Array.isArray(e.changes)?e.changes.length:0,i>16&&m("NATIVE_EVENT_FILTER_ATOM_LIMIT",t),[...o].sort()}function dc(e,t){R(e,["schemaVersion","compilerContractVersion","appCode","perspectives","authz","backend","data","events","workflows","frontend","runtime"],"/config"),x(e.schemaVersion,La,"/config/schemaVersion"),x(e.compilerContractVersion,Vt,"/config/compilerContractVersion"),x(e.appCode,t,"/config/appCode"),w(e.perspectives,"/config/perspectives",100);let o=O(e.authz,"/config/authz");R(o,["capabilities","roles","scopeDimensions","scopeSources","roleMembershipSources","relationshipGrantSources","dataPolicies","authorizationTransitions"],"/config/authz",["authenticatedUserRoleCode"]),w(o.capabilities,"/config/authz/capabilities",2e3),w(o.roles,"/config/authz/roles",100),w(o.scopeDimensions,"/config/authz/scopeDimensions",100),w(o.scopeSources,"/config/authz/scopeSources",100),w(o.roleMembershipSources,"/config/authz/roleMembershipSources",100),w(o.relationshipGrantSources,"/config/authz/relationshipGrantSources",100),w(o.dataPolicies,"/config/authz/dataPolicies",100),w(o.authorizationTransitions,"/config/authz/authorizationTransitions",100);let n=O(e.backend,"/config/backend");R(n,["secrets","operations"],"/config/backend"),w(n.secrets,"/config/backend/secrets",100),w(n.operations,"/config/backend/operations",500),qc(n.secrets);let i=O(e.data,"/config/data");R(i,["resources"],"/config/data",["resourceDetailRoutes","subjectReadSurfaces","concurrency"]),w(i.resources,"/config/data/resources",100),i.subjectReadSurfaces!==void 0&&w(i.subjectReadSurfaces,"/config/data/subjectReadSurfaces",X.subjectReadSurfaces),i.resourceDetailRoutes!==void 0&&w(i.resourceDetailRoutes,"/config/data/resourceDetailRoutes",100);let s=O(e.events,"/config/events");R(s,["schemas","subscriptions","timers","dateTriggers"],"/config/events",["capturePolicies"]),w(s.schemas,"/config/events/schemas",100),w(s.subscriptions,"/config/events/subscriptions",100),w(s.timers,"/config/events/timers",100),w(s.dateTriggers,"/config/events/dateTriggers",100);let a=O(e.workflows,"/config/workflows");R(a,["definitions","bindings","activations","providers","editableParameters"],"/config/workflows"),w(a.definitions,"/config/workflows/definitions",100),w(a.bindings,"/config/workflows/bindings",100),w(a.activations,"/config/workflows/activations",100),w(a.providers,"/config/workflows/providers",100),w(a.editableParameters,"/config/workflows/editableParameters",100);let r=O(e.frontend,"/config/frontend");R(r,["routes","user","admin","devicePolicy"],"/config/frontend",["authentication","publicAccess"]),w(r.routes,"/config/frontend/routes",500);let c=O(r.user,"/config/frontend/user");R(c,["applicationTodoCenter"],"/config/frontend/user"),lt(c.applicationTodoCenter,"/config/frontend/user/applicationTodoCenter"),Wo(r.devicePolicy,"/config/frontend/devicePolicy"),Object.prototype.hasOwnProperty.call(r,"authentication")&&Ts(r.authentication,r.routes,e,"/config/frontend/authentication"),Object.prototype.hasOwnProperty.call(r,"publicAccess")&&Rc(r.publicAccess,e,"/config/frontend/publicAccess");let l=O(r.admin,"/config/frontend/admin");R(l,["navigation"],"/config/frontend/admin",["access"]),l.access!==void 0&&Rn(l.access,"/config/frontend/admin/access",e.appCode),Dc(l.navigation,"/config/frontend/admin/navigation");let p=O(e.runtime,"/config/runtime");R(p,["protocolCapabilities","health"],"/config/runtime"),F(p.protocolCapabilities,"/config/runtime/protocolCapabilities",100),R(O(p.health,"/config/runtime/health"),["livePath","readyPath","versionPath"],"/config/runtime/health"),x(p.health.livePath,"/__platform/health","/config/runtime/health/livePath"),x(p.health.readyPath,"/__platform/ready","/config/runtime/health/readyPath"),x(p.health.versionPath,"/__platform/version","/config/runtime/health/versionPath")}function lc(e,t,o){R(e,["schemaVersion","compilerContractVersion","generatorVersion","appCode","configDigest","perspectives","resources","capabilities","operations","eventConsumers","eventProducers","eventSchemas","eventHandlerManifest","eventTypes","workflows","routes","routeManifest","adminPages","adminNavigation"],"/contracts",["authentication","publicAccess","adminAccess","subjectReadSurfaces","concurrency"]),x(e.schemaVersion,Es,"/contracts/schemaVersion"),x(e.compilerContractVersion,Vt,"/contracts/compilerContractVersion"),S(e.generatorVersion,"/contracts/generatorVersion",128),x(e.appCode,t,"/contracts/appCode"),x(e.configDigest,o,"/contracts/configDigest"),w(e.perspectives,"/contracts/perspectives",X.perspectives),w(e.resources,"/contracts/resources",X.resources),e.subjectReadSurfaces!==void 0&&w(e.subjectReadSurfaces,"/contracts/subjectReadSurfaces",X.subjectReadSurfaces),w(e.capabilities,"/contracts/capabilities",X.capabilities),w(e.operations,"/contracts/operations",X.operations),w(e.eventConsumers,"/contracts/eventConsumers",X.eventConsumers),w(e.eventProducers,"/contracts/eventProducers",X.eventProducers),w(e.eventSchemas,"/contracts/eventSchemas",X.eventSchemas),O(e.eventHandlerManifest,"/contracts/eventHandlerManifest"),F(e.eventTypes,"/contracts/eventTypes",X.eventTypes),w(e.workflows,"/contracts/workflows",X.workflows),w(e.routes,"/contracts/routes",X.routes),Object.prototype.hasOwnProperty.call(e,"authentication")&&Oc(e.authentication,"/contracts/authentication"),Object.prototype.hasOwnProperty.call(e,"publicAccess")&&Cc(e.publicAccess,"/contracts/publicAccess"),Object.prototype.hasOwnProperty.call(e,"adminAccess")&&Rn(e.adminAccess,"/contracts/adminAccess",t),vc(e.routeManifest,"/contracts/routeManifest",t),Vc(e.adminPages,"/contracts/adminPages"),Pc(e.adminNavigation,"/contracts/adminNavigation")}function uc(e,t,o){let n=mc(e);Uc(e,n),Bc(e),Mc(e),Jc(e);let i=e.events.schemas.map((_,A)=>{let T=`/config/events/schemas/${A}`,f=O(_,T),b=S(f.eventType,`${T}/eventType`,255);return b.startsWith("openxiangda.")&&m("NATIVE_EVENT_SCHEMA_RESERVED",`${T}/eventType`,{eventType:b}),x(f.schemaDigest,Q(O(f.jsonSchema,`${T}/jsonSchema`)),`${T}/schemaDigest`),f}),s=new Set([...En,...In,...i.map(_=>String(_.eventType))]),a=new Map(e.data.resources.map(_=>[String(_.code),new Map(_.schema.fields.map(A=>[String(A.code),String(A.type)]))])),r=ee(e.events.subscriptions.map((_,A)=>{let T=`/config/events/subscriptions/${A}`,f=O(_,T),b=F(f.eventTypes,`${T}/eventTypes`,20);b.forEach((k,W)=>{s.has(k)||m("NATIVE_EVENT_TYPE_NOT_REGISTERED",`${T}/eventTypes/${W}`,{eventType:k})});let h=fo(f,e.data.resources,T),C=pc(f.delivery,b,`${T}/delivery`),$=fc(f.platformAccess,`${T}/platformAccess`,a,e,f);return{code:P(f.code,`${T}/code`),endpointPath:ye(f.endpointPath,`${T}/endpointPath`),eventTypes:b,filter:O(f.filter,`${T}/filter`),payload:h?.payload||O(f.payload,`${T}/payload`),...h?{execution:h.execution}:{},...$?{platformAccess:$}:{},delivery:C}}),_=>_.code),c=new Map(i.map(_=>[String(_.eventType),String(_.dataSchemaVersion)])),l=ee([...e.data.resources.flatMap(_=>En.map(A=>({code:`data:${_.code}:${A}`,source:"data",eventType:A,dataSchemaVersion:"2.0.0",resourceCode:_.code}))),...i.map(_=>({code:`app:${_.eventType}`,source:"app",eventType:_.eventType,dataSchemaVersion:_.dataSchemaVersion})),...e.events.timers.map(_=>({code:_.code,source:"timer",eventType:_.eventType,dataSchemaVersion:c.get(String(_.eventType))||"2.0.0"})),...e.events.dateTriggers.map(_=>({code:_.code,source:"date",eventType:_.eventType,dataSchemaVersion:c.get(String(_.eventType))||"2.0.0",resourceCode:_.resourceCode,field:_.field})),...e.workflows.activations.length?In.filter(_=>!Ao.includes(_)||e.workflows.definitions.some(A=>Object.values(A.definition.nodes).some(T=>T.kind==="action"))).filter(_=>_!=="openxiangda.workflow.node.skipped.v2"||e.workflows.definitions.some(A=>Object.values(A.definition.nodes).some(T=>T.kind==="approval"&&T.emptyPolicy==="skip"))).map(_=>({code:`workflow:${_}`,source:"workflow",eventType:_,dataSchemaVersion:"2.0.0"})):[]],_=>`${_.source}:${_.code}:${_.eventType}`),p=M([...r.flatMap(_=>_.eventTypes),...l.map(_=>String(_.eventType))]);kc(e);let d=Cs(e),u;try{u=eo(e.data.concurrency,e.data.resources,n)}catch(_){throw _ instanceof Qe&&m(_.code,_.pointer,{reason:_.reason}),_}u?.commands.some(_=>_.mode==="durable")&&e.backend?.enabled===!1&&m("NATIVE_MANAGED_CONCURRENCY_INVALID","/data/concurrency",{reason:"durable commands require backend runtime"});let g=gc(e,n),I=Os(e),E=e.workflows.definitions.map(_=>_.definition),N=an(E),y=Io(E,r,!0);y.length&&m(y[0],"/config/events/subscriptions");try{io(e.data.resources,I)}catch(_){throw _ instanceof xe&&m(_.code,_.pointer,{reason:_.reason}),_}return{schemaVersion:Es,compilerContractVersion:Vt,generatorVersion:o,appCode:e.appCode,configDigest:t,perspectives:e.perspectives,resources:_c(e),...g.length?{subjectReadSurfaces:g}:{},...u?{concurrency:u}:{},capabilities:ee(n,_=>_.code),operations:I,eventConsumers:r,eventProducers:l,eventSchemas:i,eventHandlerManifest:{schemaVersion:sc,appCode:e.appCode,handlers:r.filter(_=>!_.execution).map(_=>({code:_.code,endpointPath:_.endpointPath,eventTypes:_.eventTypes,dataSchemaVersions:M(_.eventTypes.map(A=>A.startsWith("openxiangda.")?"2.0.0":c.get(A)||"2.0.0")),maxBodyBytes:65536,receiptProtocolVersion:2,...N[_.code]?{workflowStep:N[_.code]}:{}}))},eventTypes:p,workflows:Ds(e),routes:hn(e),...Object.prototype.hasOwnProperty.call(e.frontend,"authentication")?{authentication:Tc(e)}:{},...Object.prototype.hasOwnProperty.call(e.frontend,"publicAccess")?{publicAccess:Sc(e)}:{},...e.frontend.admin.access?{adminAccess:e.frontend.admin.access}:{},routeManifest:jc(e),adminPages:d,adminNavigation:wc(e)}}function fc(e,t,o,n,i){if(e===void 0)return;let s=O(e,t);R(s,["notification","managedFileCopies","decimalReservation"],t,!0);let a={};if(s.decimalReservation!==void 0)try{a.decimalReservation=Ti(s.decimalReservation,hi(n,i))}catch{m("NATIVE_EVENT_DECIMAL_RESERVATION_INVALID",`${t}/decimalReservation`)}if(s.notification!==void 0){let r=O(s.notification,`${t}/notification`);R(r,["mode"],`${t}/notification`),x(r.mode,"business-standard",`${t}/notification/mode`),a.notification={mode:"business-standard"}}if(s.managedFileCopies!==void 0){let r=w(s.managedFileCopies,`${t}/managedFileCopies`,16);r.length||m("NATIVE_EVENT_MANAGED_FILE_COPIES_REQUIRED",`${t}/managedFileCopies`);let c=new Set;a.managedFileCopies=ee(r.map((l,p)=>{let d=`${t}/managedFileCopies/${p}`,u=O(l,d);R(u,["mode","sourceResourceCode","sourceFieldCodes","targetResourceCode","targetFieldCodes"],d),x(u.mode,"copy",`${d}/mode`);let g=G(u.sourceResourceCode,`${d}/sourceResourceCode`),I=G(u.targetResourceCode,`${d}/targetResourceCode`),E=o.get(g),N=o.get(I);(!E||!N)&&m("NATIVE_EVENT_MANAGED_FILE_COPY_RESOURCE_INVALID",d);let y=F(u.sourceFieldCodes,`${d}/sourceFieldCodes`,16),_=F(u.targetFieldCodes,`${d}/targetFieldCodes`,16);(!y.length||y.length!==_.length)&&m("NATIVE_EVENT_MANAGED_FILE_COPY_FIELDS_INVALID",d),y.forEach((T,f)=>{let b=E.get(T),h=N.get(_[f]);(!["file","image"].includes(String(b))||b!==h)&&m("NATIVE_EVENT_MANAGED_FILE_COPY_FIELD_INVALID",`${d}/sourceFieldCodes/${f}`)});let A=`${g}:${y.join(",")}=>${I}:${_.join(",")}`;return c.has(A)&&m("NATIVE_EVENT_MANAGED_FILE_COPY_DUPLICATE",d),c.add(A),{mode:"copy",sourceResourceCode:g,sourceFieldCodes:M(y),targetResourceCode:I,targetFieldCodes:M(_)}}),l=>`${l.sourceResourceCode}:${l.sourceFieldCodes.join(",")}=>${l.targetResourceCode}:${l.targetFieldCodes.join(",")}`)}return Object.keys(a).length||m("NATIVE_EVENT_PLATFORM_ACCESS_EMPTY",t),a}function pc(e,t,o){let n=O(e,o);R(n,["timeoutMs","maxAttempts","initialBackoffMs","maxBackoffMs","ordering","concurrency"],o),se(n.timeoutMs,`${o}/timeoutMs`,1e3,3e4),se(n.maxAttempts,`${o}/maxAttempts`,1,12);let i=se(n.initialBackoffMs,`${o}/initialBackoffMs`,1e3,3e5);se(n.maxBackoffMs,`${o}/maxBackoffMs`,i,18e5),se(n.concurrency,`${o}/concurrency`,1,50);let s=S(n.ordering,`${o}/ordering`,32);return["none","record","workflow-instance"].includes(s)||m("NATIVE_EVENT_DELIVERY_ORDERING_INVALID",`${o}/ordering`),s==="workflow-instance"&&t.some(a=>!rc.has(a))&&m("NATIVE_EVENT_WORKFLOW_ORDERING_REQUIRES_WORKFLOW_FACTS",`${o}/ordering`),n}function mc(e){let t=new Map;for(let s of Vs(e.appCode))t.set(s.code,s);for(let[s,a]of e.authz.capabilities.entries()){let r=`/config/authz/capabilities/${s}`,c=O(a,r);R(c,["code","kind","name","description"],r,!0);let l=fe(c.code,`${r}/code`,e.appCode);t.has(l)&&m("NATIVE_CAPABILITY_DUPLICATE",`${r}/code`),["backend","ui"].includes(c.kind)||m("NATIVE_CAPABILITY_KIND_INVALID",`${r}/kind`);let p={code:l,kind:c.kind,name:S(c.name,`${r}/name`,255),source:"explicit",...c.description===void 0?{}:{description:Mo(c.description,`${r}/description`,2e3)}};t.set(l,p)}let o=e.data.resources.map((s,a)=>({pointer:`/config/data/resources/${a}`,resource:Be(s,`/config/data/resources/${a}`,e.appCode)}));for(let{pointer:s,resource:a}of o){let r={read:`\u8BFB\u53D6${a.name}`,create:`\u65B0\u5EFA${a.name}`,update:`\u66F4\u65B0${a.name}`,delete:`\u5220\u9664${a.name}`};for(let c of["read","create","update","delete"]){let l=fe(a.capabilities[c],`${s}/capabilities/${c}`,e.appCode);t.has(l)&&m("NATIVE_CAPABILITY_DUPLICATE",`${s}/capabilities/${c}`),t.set(l,{code:l,kind:"data",name:r[c],source:"data"})}}let n=new Set(t.keys()),i=new Map;for(let{pointer:s,resource:a}of o)for(let[r,c]of Object.entries(a.fieldPolicies)){if(ze(r))continue;let l=O(c,`${s}/fieldPolicies/${r}`);for(let p of["read","create","update"])if(Array.isArray(l[p]))for(let d of F(l[p],`${s}/fieldPolicies/${r}/${p}`,2e3)){if(fe(d,`${s}/fieldPolicies/${r}/${p}`,e.appCode),n.has(d))continue;let u=i.get(d);u&&u!==a.code&&m("NATIVE_CAPABILITY_DUPLICATE",`${s}/fieldPolicies/${r}/${p}`),i.set(d,a.code),!t.has(d)&&t.set(d,{code:d,kind:"data",name:`${a.name}.${r}.${p}`,source:"data"})}}return[...t.values()]}function _c(e){let t=Ac(e);return ee(e.data.resources.map((o,n)=>{let i=Be(o,`/config/data/resources/${n}`,e.appCode),s=t.get(i.code);return{code:i.code,schemaDigest:Q(i.schema),fields:ee(i.schema.fields.map(a=>({code:a.code,type:a.type})),a=>a.code),...s?{detailRouteCode:s}:{}}}),o=>o.code)}function gc(e,t){if(e.data.subjectReadSurfaces===void 0)return[];let o=w(e.data.subjectReadSurfaces,"/config/data/subjectReadSurfaces",X.subjectReadSurfaces),n=new Set(t.map(a=>String(a.code))),i=new Map(e.data.resources.map((a,r)=>{let c=`/config/data/resources/${r}`,l=Be(a,c,e.appCode);return[String(l.code),{resource:l,fields:new Map(w(O(l.schema,`${c}/schema`).fields,`${c}/schema/fields`,500).map(p=>{let d=O(p,`${c}/schema/fields`);return[String(d.code),d]}))}]})),s=new Set;return ee(o.map((a,r)=>{let c=`/config/data/subjectReadSurfaces/${r}`,l=O(a,c);R(l,["code","name","capability","subject","relations"],c);let p=P(l.code,`${c}/code`);s.has(p)&&m("NATIVE_SUBJECT_READ_SURFACE_CODE_DUPLICATE",`${c}/code`),s.add(p);let d=fe(l.capability,`${c}/capability`,e.appCode);n.has(d)||m("NATIVE_SUBJECT_READ_SURFACE_CAPABILITY_NOT_DECLARED",`${c}/capability`);let u=O(l.subject,`${c}/subject`);R(u,["resourceCode","fields"],`${c}/subject`);let g=G(u.resourceCode,`${c}/subject/resourceCode`),I=i.get(g);I||m("NATIVE_SUBJECT_READ_SURFACE_RESOURCE_NOT_DECLARED",`${c}/subject/resourceCode`);let E=F(u.fields,`${c}/subject/fields`,100).map((T,f)=>K(T,`${c}/subject/fields/${f}`));E.length||m("NATIVE_SUBJECT_READ_SURFACE_FIELDS_REQUIRED",`${c}/subject/fields`);for(let[T,f]of E.entries()){let b=I.fields.get(f);(!b||b.type==="subtable")&&m("NATIVE_SUBJECT_READ_SURFACE_FIELD_INVALID",`${c}/subject/fields/${T}`)}let N=w(l.relations,`${c}/relations`,8);N.length||m("NATIVE_SUBJECT_READ_SURFACE_RELATIONS_REQUIRED",`${c}/relations`);let y=new Set,_=0,A=ee(N.map((T,f)=>{let b=`${c}/relations/${f}`,h=O(T,b);R(h,["code","resourceCode","foreignKeyField","fields","limit"],b,["order"]);let C=P(h.code,`${b}/code`);y.has(C)&&m("NATIVE_SUBJECT_READ_SURFACE_RELATION_CODE_DUPLICATE",`${b}/code`),y.add(C);let $=G(h.resourceCode,`${b}/resourceCode`),k=i.get($);k||m("NATIVE_SUBJECT_READ_SURFACE_RESOURCE_NOT_DECLARED",`${b}/resourceCode`);let W=K(h.foreignKeyField,`${b}/foreignKeyField`),v=k.fields.get(W),Y=O(v?.source||{},`${b}/foreignKeyField/source`);(!v||!["uuid","resource-ref.single"].includes(String(v.type))||v.type==="resource-ref.single"&&(Y.kind!=="resource"||Y.resourceCode!==g))&&m("NATIVE_SUBJECT_READ_SURFACE_RELATION_INVALID",`${b}/foreignKeyField`);let te=F(h.fields,`${b}/fields`,100).map((le,V)=>K(le,`${b}/fields/${V}`));te.length||m("NATIVE_SUBJECT_READ_SURFACE_FIELDS_REQUIRED",`${b}/fields`);for(let[le,V]of te.entries()){let U=k.fields.get(V);(!U||U.type==="subtable")&&m("NATIVE_SUBJECT_READ_SURFACE_FIELD_INVALID",`${b}/fields/${le}`)}let H=w(h.order||[],`${b}/order`,10).map((le,V)=>{let U=`${b}/order/${V}`,L=O(le,U);R(L,["field","direction"],U);let q=K(L.field,`${U}/field`),J=k.fields.get(q);return(!ys.has(q)&&!J||J?.type==="subtable"||J&&!Ye(J.type))&&m("NATIVE_SUBJECT_READ_SURFACE_ORDER_FIELD_INVALID",`${U}/field`),["asc","desc"].includes(String(L.direction))||m("NATIVE_SUBJECT_READ_SURFACE_ORDER_DIRECTION_INVALID",`${U}/direction`),{field:q,direction:L.direction}}),he=se(h.limit,`${b}/limit`,1,100);return _+=he,{code:C,resourceCode:$,foreignKeyField:W,fields:M(te),...H.length?{order:H}:{},limit:he}}),T=>T.code);return _>400&&m("NATIVE_SUBJECT_READ_SURFACE_ROW_LIMIT_EXCEEDED",`${c}/relations`),{code:p,name:S(l.name,`${c}/name`,255),capability:d,subject:{resourceCode:g,fields:M(E)},relations:A}}),a=>a.code)}function Ac(e){let t=e.data.resourceDetailRoutes===void 0?[]:w(e.data.resourceDetailRoutes,"/config/data/resourceDetailRoutes",100),o=new Map(e.data.resources.map((s,a)=>{let r=`/config/data/resources/${a}`,c=Be(s,r,e.appCode);return[c.code,c]})),n=new Map(hn(e).map(s=>[String(s.code),s])),i=new Map;for(let[s,a]of t.entries()){let r=`/config/data/resourceDetailRoutes/${s}`,c=O(a,r);R(c,["resourceCode","desktop","mobile"],r);let l=G(c.resourceCode,`${r}/resourceCode`);i.has(l)&&m("NATIVE_DATA_RESOURCE_DETAIL_ROUTE_DUPLICATE",`${r}/resourceCode`);let p=o.get(l);p||m("NATIVE_DATA_RESOURCE_DETAIL_ROUTE_RESOURCE_MISSING",`${r}/resourceCode`);let d=P(c.desktop,`${r}/desktop`),u=P(c.mobile,`${r}/mobile`);d===u&&m("NATIVE_DATA_RESOURCE_DETAIL_ROUTE_INVALID",r);let g=String(p.capabilities.read);for(let[I,E]of[["desktop",d],["mobile",u]]){let N=`${r}/${I}`,y=n.get(E);y||m("NATIVE_DATA_RESOURCE_DETAIL_ROUTE_REFERENCE_MISSING",N),y.surface!=="user"&&m("NATIVE_DATA_RESOURCE_DETAIL_ROUTE_SURFACE_INVALID",N);let _=ye(y.path,`${N}/path`),A=[..._.matchAll(/:([A-Za-z][A-Za-z0-9_]*)/g)],T=I==="mobile"?!_.startsWith("/m/"):_==="/m"||_.startsWith("/m/");(_.includes("*")||_.includes("?")||_.includes("#")||_.split("/").includes("..")||A.length!==1||T)&&m("NATIVE_DATA_RESOURCE_DETAIL_ROUTE_PATH_INVALID",N);let f=Array.isArray(y.access?.allOf)?y.access.allOf:[];y.capability!==g&&!f.includes(g)&&m("NATIVE_DATA_RESOURCE_DETAIL_ROUTE_CAPABILITY_INVALID",N)}i.set(l,{desktop:d,mobile:u})}return i}function Os(e){let t=new Map(e.data.resources.map((a,r)=>{let c=`/config/data/resources/${r}`,l=Be(a,c,e.appCode);return[l.code,new Map(l.schema.fields.map(p=>[String(p.code),p]))]})),o=new Map(e.data.resources.map((a,r)=>{let c=`/config/data/resources/${r}`,l=Be(a,c,e.appCode);return[l.code,new Map(l.schema.fields.map(p=>[String(p.code),String(p.type)]))]})),n=new Set(o.keys()),i=new Set(e.workflows.activations.map((a,r)=>Cn(O(a,`/config/workflows/activations/${r}`).workflowCode,`/config/workflows/activations/${r}/workflowCode`))),s=new Map;return ee(e.backend.operations.map((a,r)=>{let c=`/config/backend/operations/${r}`,l=O(a,c);R(l,["code","method","path","capability","requestSchema","responseSchema","description","platformAccess","browser","ai"],c,!0);let p=S(l.method,`${c}/method`,16);["GET","POST","PUT","PATCH","DELETE"].includes(p)||m("NATIVE_OPERATION_METHOD_INVALID",`${c}/method`);let d=P(l.code,`${c}/code`);bc(l.ai,c,d,p,n);let u=yc(l.platformAccess,`${c}/platformAccess`,o,t,i,new Set(e.authz.roles.map(I=>String(I.code))));if(u?.recordEdit){let I=e.data.resources.find(E=>E.code===u.recordEdit.resourceCode);I?.surface?.mutationOwner!=="action"&&m("NATIVE_RECORD_EDIT_ACTION_OWNER_REQUIRED",`${c}/platformAccess/recordEdit`);for(let E of u.recordEdit.fieldCodes)(!I.fieldPolicies?.[E]?.update?.length||I.surface?.fields?.[E]?.system===!0)&&m("NATIVE_RECORD_EDIT_FIELD_INVALID",`${c}/platformAccess/recordEdit/fieldCodes`)}if(u?.decimalReservation){let I=u.decimalReservation,E=String(I.resourceCode),N=JSON.stringify([I.amountFieldCode,I.currencyFieldCode,I.relationFieldCode,I.parentFieldCode,I.rootFieldCode,I.statusFieldCode,I.parentRelationValue,I.childRelationValue]),y=s.get(E);y&&y!==N&&m("NATIVE_DECIMAL_RESERVATION_MAPPING_CONFLICT",`${c}/platformAccess/decimalReservation`),s.set(E,N)}let g=Ec(l.browser,`${c}/browser`,p,l.requestSchema,l.responseSchema,o,t,e.data.subjectReadSurfaces||[]);return{code:d,method:p,path:ye(l.path,`${c}/path`),requiredCapability:fe(l.capability,`${c}/capability`,e.appCode),requestSchemaDigest:Q(O(l.requestSchema,`${c}/requestSchema`)),responseSchemaDigest:Q(O(l.responseSchema,`${c}/responseSchema`)),...l.description===void 0?{}:{description:Mo(l.description,`${c}/description`,2e3)},...u?{platformAccess:u}:{},...g?{browser:g}:{}}}),a=>a.code)}function Ec(e,t,o,n,i,s,a,r){if(e===void 0)return null;let c=O(e,t);R(c,["exposure","behavior","idempotency","subject"],t,["refreshTargets","fileIntent"]),x(c.exposure,"authenticated",`${t}/exposure`);let l=S(c.behavior,`${t}/behavior`,32);["read","controlled"].includes(l)||m("NATIVE_OPERATION_BROWSER_BEHAVIOR_INVALID",`${t}/behavior`);let p=S(c.idempotency,`${t}/idempotency`,32);(!["none","required"].includes(p)||l==="controlled"&&p!=="required"||l==="read"&&p!=="none")&&m("NATIVE_OPERATION_BROWSER_IDEMPOTENCY_INVALID",`${t}/idempotency`);let d=O(c.subject,`${t}/subject`);R(d,["resourceCode","inputField"],`${t}/subject`);let u=G(d.resourceCode,`${t}/subject/resourceCode`);s.has(u)||m("NATIVE_OPERATION_BROWSER_SUBJECT_RESOURCE_NOT_DECLARED",`${t}/subject/resourceCode`);let g=K(d.inputField,`${t}/subject/inputField`),I=O(n,`${t}/requestSchema`),E=O(i,`${t}/responseSchema`);(I.type!=="object"||I.additionalProperties!==!1||E.type!=="object"||E.additionalProperties!==!1)&&m("NATIVE_OPERATION_BROWSER_SCHEMA_ROOT_INVALID",`${t}/requestSchema`);let N=O(I.properties,`${t}/requestSchema/properties`),y=new Set(I.required===void 0?[]:F(I.required,`${t}/requestSchema/required`,200));(!(g in N)||!y.has(g))&&m("NATIVE_OPERATION_BROWSER_SUBJECT_INPUT_INVALID",`${t}/subject/inputField`);let _=O(N[g],`${t}/requestSchema/properties/${g}`);(_.type!=="string"||_.format!=="uuid")&&m("NATIVE_OPERATION_BROWSER_SUBJECT_INPUT_INVALID",`${t}/subject/inputField`);let A=new Map((Array.isArray(r)?r:[]).map((C,$)=>{let k=O(C,`/config/data/subjectReadSurfaces/${$}`);return[String(k.code),String(O(k.subject,`/config/data/subjectReadSurfaces/${$}/subject`).resourceCode)]})),T=c.refreshTargets===void 0?[]:w(c.refreshTargets,`${t}/refreshTargets`,16),f=new Set,b=ee(T.map((C,$)=>{let k=`${t}/refreshTargets/${$}`,W=O(C,k);R(W,["kind","code"],k),x(W.kind,"subject-surface",`${k}/kind`);let v=P(W.code,`${k}/code`);return(f.has(v)||!A.has(v)||A.get(v)!==u)&&m("NATIVE_OPERATION_BROWSER_REFRESH_TARGET_INVALID",`${k}/code`),f.add(v),{kind:"subject-surface",code:v}}),C=>`${C.kind}:${C.code}`),h=Ic(c.fileIntent,`${t}/fileIntent`,o,l,p,u,N,y,a);return{exposure:"authenticated",behavior:l,idempotency:p,subject:{resourceCode:u,inputField:g},...b.length?{refreshTargets:b}:{},...h?{fileIntent:h}:{}}}function Ic(e,t,o,n,i,s,a,r,c){if(e===void 0)return null;let l=O(e,t);R(l,["recordResourceCode","recordIdInputField","relationField","fileNameField","contentTypeField","sizeField","purposes","maxTtlSeconds","maxBytes"],t),(o!=="GET"||n!=="read"||i!=="none")&&m("NATIVE_OPERATION_FILE_INTENT_BEHAVIOR_INVALID",t);let p=G(l.recordResourceCode,`${t}/recordResourceCode`),d=c.get(p);d||m("NATIVE_OPERATION_FILE_INTENT_RESOURCE_NOT_DECLARED",`${t}/recordResourceCode`);let u=K(l.recordIdInputField,`${t}/recordIdInputField`),g=O(a[u],`${t}/recordIdInputField`);(!r.has(u)||g.type!=="string"||g.format!=="uuid")&&m("NATIVE_OPERATION_FILE_INTENT_RECORD_INPUT_INVALID",`${t}/recordIdInputField`);let I=K(l.relationField,`${t}/relationField`),E=d.get(I);(!E||!["uuid","resource-ref.single"].includes(String(E.type))||String(E.type)==="resource-ref.single"&&(String(O(E.source,`${t}/relationField`).kind||"")!=="resource"||String(O(E.source,`${t}/relationField`).resourceCode||"")!==s))&&m("NATIVE_OPERATION_FILE_INTENT_RELATION_INVALID",`${t}/relationField`);let N=[["fileNameField",["text.short","text.long"]],["contentTypeField",["text.short","text.long"]],["sizeField",["number.integer"]]],y={};for(let[f,b]of N){let h=K(l[f],`${t}/${f}`);b.includes(String(d.get(h)?.type))||m("NATIVE_OPERATION_FILE_INTENT_METADATA_INVALID",`${t}/${f}`),y[f]=h}let _=ee(F(l.purposes,`${t}/purposes`,2),f=>f);(!_.length||_.some(f=>!["preview","download"].includes(f)))&&m("NATIVE_OPERATION_FILE_INTENT_PURPOSE_INVALID",`${t}/purposes`);let A=Number(l.maxTtlSeconds);(!Number.isSafeInteger(A)||A<1||A>300)&&m("NATIVE_OPERATION_FILE_INTENT_TTL_INVALID",`${t}/maxTtlSeconds`);let T=Number(l.maxBytes);return(!Number.isSafeInteger(T)||T<1||T>104857600)&&m("NATIVE_OPERATION_FILE_INTENT_SIZE_INVALID",`${t}/maxBytes`),{recordResourceCode:p,recordIdInputField:u,relationField:I,fileNameField:y.fileNameField,contentTypeField:y.contentTypeField,sizeField:y.sizeField,purposes:_,maxTtlSeconds:A,maxBytes:T}}function yc(e,t,o,n,i,s){if(e===void 0)return null;let a=O(e,t);R(a,["directory","managedFiles","managedFileCopies","notification","workflow","roleAssertions","decimalReservation","dataCommands","recordEdit"],t,!0),Object.keys(a).length===0&&m("NATIVE_OPERATION_PLATFORM_ACCESS_EMPTY",t);let r={};if(a.dataCommands!==void 0){let c=O(a.dataCommands,`${t}/dataCommands`);R(c,["mode"],`${t}/dataCommands`),x(c.mode,"recoverable-native",`${t}/dataCommands/mode`),r.dataCommands={mode:"recoverable-native"}}if(a.recordEdit!==void 0){let c=`${t}/recordEdit`,l=O(a.recordEdit,c);R(l,["resourceCode","fieldCodes"],c);let p=G(l.resourceCode,`${c}/resourceCode`),d=n.get(p),u=F(l.fieldCodes,`${c}/fieldCodes`,200);(!d||!u.length||!r.dataCommands)&&m("NATIVE_RECORD_EDIT_DECLARATION_INVALID",c);for(let g of u){let I=d.get(g);(!I||I.type==="serial-number"||I.type==="subtable")&&m("NATIVE_RECORD_EDIT_FIELD_INVALID",`${c}/fieldCodes`)}r.recordEdit={resourceCode:p,fieldCodes:M(u)}}if(a.roleAssertions!==void 0){let c=O(a.roleAssertions,`${t}/roleAssertions`);R(c,["roleCodes"],`${t}/roleAssertions`);let l=F(c.roleCodes,`${t}/roleAssertions/roleCodes`,20);l.length||m("NATIVE_OPERATION_ROLE_ASSERTIONS_REQUIRED",`${t}/roleAssertions/roleCodes`),l.forEach((p,d)=>{s.has(p)||m("NATIVE_ROLE_REFERENCE_MISSING",`${t}/roleAssertions/roleCodes/${d}`)}),r.roleAssertions={roleCodes:M(l)}}if(a.directory!==void 0){let c=O(a.directory,`${t}/directory`);R(c,["mode","fields"],`${t}/directory`),["current-initiator","selected-user"].includes(String(c.mode))||m("NATIVE_OPERATION_DIRECTORY_MODE_INVALID",`${t}/directory/mode`);let l=new Set(["displayName","employeeNumber","primaryDepartment","departments",...c.mode==="current-initiator"?["phone"]:[]]),p=F(c.fields,`${t}/directory/fields`,l.size);(!p.length||p.some(d=>!l.has(d)))&&m("NATIVE_OPERATION_DIRECTORY_FIELDS_INVALID",`${t}/directory/fields`),r.directory={mode:String(c.mode),fields:M(p)}}if(a.managedFiles!==void 0){let c=w(a.managedFiles,`${t}/managedFiles`,16);c.length||m("NATIVE_OPERATION_MANAGED_FILES_REQUIRED",`${t}/managedFiles`);let l=new Set;r.managedFiles=ee(c.map((p,d)=>{let u=`${t}/managedFiles/${d}`,g=O(p,u);R(g,["resourceCode","fieldCodes","intents"],u);let I=G(g.resourceCode,`${u}/resourceCode`);(l.has(I)||!o.has(I))&&m("NATIVE_OPERATION_MANAGED_FILE_RESOURCE_INVALID",`${u}/resourceCode`),l.add(I);let E=F(g.fieldCodes,`${u}/fieldCodes`,16);(!E.length||E.some(y=>!["file","image","signature","text.rich"].includes(String(o.get(I)?.get(y)||""))))&&m("NATIVE_OPERATION_MANAGED_FILE_FIELD_INVALID",`${u}/fieldCodes`);let N=F(g.intents,`${u}/intents`,2);return(!N.length||N.some(y=>!["create","update"].includes(y)))&&m("NATIVE_OPERATION_MANAGED_FILE_INTENT_INVALID",`${u}/intents`),{resourceCode:I,fieldCodes:M(E),intents:M(N)}}),p=>p.resourceCode)}if(a.managedFileCopies!==void 0){let c=w(a.managedFileCopies,`${t}/managedFileCopies`,16);c.length||m("NATIVE_OPERATION_MANAGED_FILE_COPIES_REQUIRED",`${t}/managedFileCopies`);let l=new Set;r.managedFileCopies=ee(c.map((p,d)=>{let u=`${t}/managedFileCopies/${d}`,g=O(p,u);R(g,["mode","sourceResourceCode","sourceFieldCodes","targetResourceCode","targetFieldCodes"],u),x(g.mode,"copy",`${u}/mode`);let I=G(g.sourceResourceCode,`${u}/sourceResourceCode`),E=G(g.targetResourceCode,`${u}/targetResourceCode`),N=o.get(I),y=o.get(E);(!N||!y)&&m("NATIVE_OPERATION_MANAGED_FILE_COPY_RESOURCE_INVALID",u);let _=F(g.sourceFieldCodes,`${u}/sourceFieldCodes`,16),A=F(g.targetFieldCodes,`${u}/targetFieldCodes`,16);(!_.length||_.length!==A.length)&&m("NATIVE_OPERATION_MANAGED_FILE_COPY_FIELDS_INVALID",u),_.forEach((f,b)=>{let h=N.get(f),C=y.get(A[b]);(!["file","image"].includes(String(h))||h!==C)&&m("NATIVE_OPERATION_MANAGED_FILE_COPY_FIELD_INVALID",`${u}/sourceFieldCodes/${b}`)});let T=`${I}:${_.join(",")}=>${E}:${A.join(",")}`;return l.has(T)&&m("NATIVE_OPERATION_MANAGED_FILE_COPY_DUPLICATE",u),l.add(T),{mode:"copy",sourceResourceCode:I,sourceFieldCodes:M(_),targetResourceCode:E,targetFieldCodes:M(A)}}),p=>`${p.sourceResourceCode}:${p.sourceFieldCodes.join(",")}=>${p.targetResourceCode}:${p.targetFieldCodes.join(",")}`)}if(a.notification!==void 0){let c=O(a.notification,`${t}/notification`);R(c,["mode"],`${t}/notification`),c.mode!=="business-standard"&&m("NATIVE_OPERATION_NOTIFICATION_MODE_INVALID",`${t}/notification/mode`),r.notification={mode:"business-standard"}}if(a.workflow!==void 0){let c=O(a.workflow,`${t}/workflow`);R(c,["codes"],`${t}/workflow`,["businessCommands"]);let l=F(c.codes,`${t}/workflow/codes`,16);(!l.length||l.some(d=>!i.has(d)))&&m("NATIVE_OPERATION_WORKFLOW_CODE_INVALID",`${t}/workflow/codes`);let p=c.businessCommands===void 0?void 0:F(c.businessCommands,`${t}/workflow/businessCommands`,3);p&&(!p.length||p.some(d=>!["approve","reject","withdraw"].includes(d)))&&m("NATIVE_OPERATION_WORKFLOW_BUSINESS_COMMAND_INVALID",`${t}/workflow/businessCommands`),r.workflow={codes:M(l),...p?{businessCommands:M(p)}:{}}}if(a.decimalReservation!==void 0){let c=`${t}/decimalReservation`,l=O(a.decimalReservation,c);R(l,["mode","resourceCode","amountFieldCode","currencyFieldCode","relationFieldCode","parentFieldCode","rootFieldCode","statusFieldCode","parentRelationValue","childRelationValue","eligibleParentStatuses","eligibleChildStatuses"],c);let p=S(l.mode,`${c}/mode`,16);["reserve","commit","release"].includes(p)||m("NATIVE_DECIMAL_RESERVATION_MODE_INVALID",`${c}/mode`);let d=G(l.resourceCode,`${c}/resourceCode`),u=n.get(d);u||m("NATIVE_DECIMAL_RESERVATION_RESOURCE_MISSING",`${c}/resourceCode`);let I=Object.fromEntries(["amountFieldCode","currencyFieldCode","relationFieldCode","parentFieldCode","rootFieldCode","statusFieldCode"].map(f=>[f,K(l[f],`${c}/${f}`)])),E=f=>u.get(I[f]),N=f=>new Set((E(f)?.options||[]).map(b=>String(b.value))),y=P(l.parentRelationValue,`${c}/parentRelationValue`),_=P(l.childRelationValue,`${c}/childRelationValue`),A=F(l.eligibleParentStatuses,`${c}/eligibleParentStatuses`,16),T=F(l.eligibleChildStatuses,`${c}/eligibleChildStatuses`,16);(E("amountFieldCode")?.type!=="number.decimal"||E("amountFieldCode")?.exactDecimal!==!0||E("amountFieldCode")?.precision!==18||E("amountFieldCode")?.scale!==2||E("currencyFieldCode")?.type!=="option.single"||E("relationFieldCode")?.type!=="option.single"||E("parentFieldCode")?.type!=="resource-ref.single"||E("parentFieldCode")?.source?.resourceCode!==d||E("rootFieldCode")?.type!=="uuid"||E("statusFieldCode")?.type!=="option.single"||y===_||!N("relationFieldCode").has(y)||!N("relationFieldCode").has(_)||!A.length||!T.length||A.some(f=>!N("statusFieldCode").has(f))||T.some(f=>!N("statusFieldCode").has(f)))&&m("NATIVE_DECIMAL_RESERVATION_FIELD_INVALID",c),r.decimalReservation={mode:p,resourceCode:d,...I,parentRelationValue:y,childRelationValue:_,eligibleParentStatuses:M(A),eligibleChildStatuses:M(T)}}return r}function bc(e,t,o,n,i){if(e===void 0)return;let s=`${t}/ai`,a=O(e,s);Ma.test(o)||m("NATIVE_OPERATION_AI_CODE_INVALID",`${t}/code`),R(a,["name","description","risk","resources","sideEffects","concurrency","timeoutMs"],s,!0),S(a.name,`${s}/name`,vo),S(a.description,`${s}/description`,vo);let r=S(a.risk,`${s}/risk`,16);["read","write","destructive","external"].includes(r)||m("NATIVE_OPERATION_AI_RISK_INVALID",`${s}/risk`),r==="read"!=(n==="GET")&&m("NATIVE_OPERATION_AI_METHOD_RISK_MISMATCH",`${s}/risk`),n==="DELETE"&&!["destructive","external"].includes(r)&&m("NATIVE_OPERATION_AI_METHOD_RISK_MISMATCH",`${s}/risk`);let c=F(a.resources,`${s}/resources`,16);c.length===0&&m("NATIVE_OPERATION_AI_RESOURCE_REQUIRED",`${s}/resources`),c.forEach((p,d)=>{let u=G(p,`${s}/resources/${d}`);i.has(u)||m("NATIVE_OPERATION_AI_RESOURCE_MISSING",`${s}/resources/${d}`)});let l=F(a.sideEffects,`${s}/sideEffects`,20);(r==="read"&&l.length!==0||r!=="read"&&l.length===0)&&m("NATIVE_OPERATION_AI_SIDE_EFFECT_INVALID",`${s}/sideEffects`),a.concurrency!==void 0&&!["none","revision"].includes(S(a.concurrency,`${s}/concurrency`,16))&&m("NATIVE_OPERATION_AI_CONCURRENCY_INVALID",`${s}/concurrency`),a.timeoutMs!==void 0&&se(a.timeoutMs,`${s}/timeoutMs`,100,3e4)}function bn(e){return(e.replace(/\/{2,}/g,"/").replace(/\/$/,"")||"/").split("/").map(o=>o.startsWith(":")?":":o.includes("*")?"*":o).join("/")}function Nc(e,t){let o=O(e,t),n=S(o.type,`${t}/type`,32),i=["code","type","label","presentation","required"],s=n==="sso"?[...i,"provider"]:n==="dingtalk"?[...i,"flow"]:i;R(o,s,t);let a=P(o.code,`${t}/code`),r=S(o.label,`${t}/label`,255),c=S(o.presentation,`${t}/presentation`,16);["primary","secondary"].includes(c)||m("NATIVE_APPLICATION_AUTH_METHOD_PRESENTATION_INVALID",`${t}/presentation`);let l=lt(o.required,`${t}/required`);return["sso","password","dingtalk"].includes(n)||m("NATIVE_APPLICATION_AUTH_METHOD_TYPE_INVALID",`${t}/type`),n==="sso"&&o.provider!=="tenant-default"&&m("NATIVE_APPLICATION_AUTH_SSO_PROVIDER_INVALID",`${t}/provider`),n==="dingtalk"&&!["auto","jsapi","oauth"].includes(S(o.flow,`${t}/flow`,16))&&m("NATIVE_APPLICATION_AUTH_DINGTALK_FLOW_INVALID",`${t}/flow`),{code:a,type:n,label:r,presentation:c,required:l,...n==="sso"?{provider:"tenant-default"}:{},...n==="dingtalk"?{flow:o.flow}:{}}}function is(e,t,o){let n=O(e,o);R(n,["routeCode","path","defaultRouteCode"],o);let i=P(n.routeCode,`${o}/routeCode`),s=ye(n.path,`${o}/path`),a=t==="desktop"?"/login":"/m/login";return(s!==a||/[:*?#\\]/.test(s))&&m("NATIVE_APPLICATION_AUTH_SURFACE_PATH_INVALID",`${o}/path`,{device:t,expectedPath:a}),{routeCode:i,path:s,defaultRouteCode:P(n.defaultRouteCode,`${o}/defaultRouteCode`)}}function Ts(e,t,o,n){if(e===null)return;let i=O(e,n);R(i,["accountMode","registration","methods","surfaces"],n),x(i.accountMode,"existing-platform-users-only",`${n}/accountMode`);let s=O(i.registration,`${n}/registration`);R(s,["mode"],`${n}/registration`),x(s.mode,"reject",`${n}/registration/mode`);let a=w(i.methods,`${n}/methods`,8);a.length===0&&m("NATIVE_APPLICATION_AUTH_METHOD_REQUIRED",`${n}/methods`);let r=a.map((y,_)=>Nc(y,`${n}/methods/${_}`)),c=new Set,l=new Set;for(let[y,_]of r.entries())c.has(_.code)&&m("NATIVE_APPLICATION_AUTH_METHOD_CODE_DUPLICATE",`${n}/methods/${y}/code`),l.has(_.type)&&m("NATIVE_APPLICATION_AUTH_METHOD_TYPE_DUPLICATE",`${n}/methods/${y}/type`),c.add(_.code),l.add(_.type);r.filter(y=>y.presentation==="primary").length!==1&&m("NATIVE_APPLICATION_AUTH_PRIMARY_METHOD_INVALID",`${n}/methods`);let p=O(i.surfaces,`${n}/surfaces`);R(p,["desktop","mobile"],`${n}/surfaces`);let d=is(p.desktop,"desktop",`${n}/surfaces/desktop`),u=is(p.mobile,"mobile",`${n}/surfaces/mobile`);d.routeCode===u.routeCode&&m("NATIVE_APPLICATION_AUTH_SURFACE_CODE_DUPLICATE",`${n}/surfaces/mobile/routeCode`);let g=w(t,"/config/frontend/routes",500),I=new Map;for(let[y,_]of g.entries()){let A=O(_,`/config/frontend/routes/${y}`);I.set(String(A.code||""),A)}let E=new Set((Array.isArray(o.data?.resources)?o.data.resources:[]).map(y=>String(y.code||"")).filter(y=>/^[a-z][a-z0-9-]{0,62}$/.test(y)));for(let[y,_]of[["desktop",d],["mobile",u]]){I.has(_.routeCode)&&m("NATIVE_APPLICATION_AUTH_SURFACE_CODE_CONFLICT",`${n}/surfaces/${y}/routeCode`);let A=/^user\.([a-z][a-z0-9-]{0,62})\.(records|submit)$/.exec(String(_.defaultRouteCode||"")),T=I.get(_.defaultRouteCode),f=String(T?.path||"");if(A&&E.has(A[1])){let h=A[2]==="records"?`/my/${A[1]}`:`/my/${A[1]}/submit`;T={surface:"user",path:y==="mobile"?`/m${h}`:h},f=String(T.path)}let b=y==="desktop"?f==="/m"||f.startsWith("/m/"):!(f==="/m"||f.startsWith("/m/"));(!T||T.surface!=="user"||/[:*]/.test(f)||b)&&m("NATIVE_APPLICATION_AUTH_DEFAULT_ROUTE_INVALID",`${n}/surfaces/${y}/defaultRouteCode`)}let N=hs(o).filter(y=>!y.owner.startsWith("authentication:"));for(let[y,_]of[["desktop",d],["mobile",u]]){let A=N.find(T=>bn(T.path)===bn(_.path));A&&m("NATIVE_APPLICATION_AUTH_SURFACE_PATH_CONFLICT",`${n}/surfaces/${y}/path`,{owner:A.owner})}}function Oc(e,t){if(e===null)return;let o={data:{resources:[]},workflows:{definitions:[]},frontend:{routes:[{code:"auth-desktop-default",path:"/auth-desktop-default",surface:"user"},{code:"auth-mobile-default",path:"/m/auth-mobile-default",surface:"user"}],user:{applicationTodoCenter:!1},admin:{navigation:[]},authentication:e}},n=O(e,t),i=O(n.surfaces,`${t}/surfaces`),s={...n,surfaces:{...i,desktop:{...O(i.desktop,`${t}/surfaces/desktop`),defaultRouteCode:"auth-desktop-default"},mobile:{...O(i.mobile,`${t}/surfaces/mobile`),defaultRouteCode:"auth-mobile-default"}}};Ts(s,o.frontend.routes,{...o,frontend:{...o.frontend,authentication:s}},t)}function Tc(e){let t=e.frontend.authentication;return t===null?null:{accountMode:t.accountMode,registration:{mode:t.registration.mode},methods:t.methods.map(o=>({...o})),surfaces:{desktop:{...t.surfaces.desktop},mobile:{...t.surfaces.mobile}}}}var hc=new Set(["draft.read","draft.update","validate","create","own.list","own.read","public.list","public.read"]);function Rc(e,t,o){let n=O(e,o);R(n,["policies"],o);let i=w(n.policies,`${o}/policies`,16);i.length<1&&m("NATIVE_PUBLIC_POLICY_REQUIRED",o);let s=new Map(t.frontend.routes.map(l=>[l.code,l])),a=new Map(t.data.resources.map(l=>[l.code,l])),r=new Set,c=new Set(i.map(l=>String(l?.code||"")));i.forEach((l,p)=>{let d=`${o}/policies/${p}`,u=O(l,d);R(u,["code","routeCode","mode","resourceCode","operations","fields"],d,["requiredFields","ownRecordFields","publicRecordFields","publicFilters","serverGeneratedFields","schedule","publicSubtableFields","draft","validations"]);let g=P(u.code,`${d}/code`);r.has(g)&&m("NATIVE_PUBLIC_POLICY_DUPLICATE",`${d}/code`);let I=P(u.routeCode,`${d}/routeCode`),E=s.get(I);(!E||E.surface!=="user"||E.capability!==void 0||E.access!==void 0||/[:*]/.test(String(E.path)))&&m("NATIVE_PUBLIC_ROUTE_INVALID",`${d}/routeCode`),x(u.mode,"anonymous",`${d}/mode`);let N=G(u.resourceCode,`${d}/resourceCode`),y=a.get(N);y||m("NATIVE_PUBLIC_RESOURCE_MISSING",`${d}/resourceCode`);let _=new Map(y.schema.fields.map(V=>[String(V.code),String(V.type)])),A=F(u.operations,`${d}/operations`,8);(A.length<1||A.some(V=>!hc.has(V)))&&m("NATIVE_PUBLIC_OPERATION_INVALID",`${d}/operations`),A.includes("draft.read")!==A.includes("draft.update")&&m("NATIVE_PUBLIC_DRAFT_OPERATION_INCOMPLETE",`${d}/operations`);let T=F(u.fields,`${d}/fields`,64);(T.length<1||T.some(V=>!_.has(V)))&&m("NATIVE_PUBLIC_FIELD_INVALID",`${d}/fields`);for(let V of["requiredFields","ownRecordFields","publicRecordFields"]){if(!Object.prototype.hasOwnProperty.call(u,V))continue;F(u[V],`${d}/${V}`,64).some(L=>!T.includes(L))&&m("NATIVE_PUBLIC_FIELD_SCOPE_INVALID",`${d}/${V}`)}let f=Object.prototype.hasOwnProperty.call(u,"serverGeneratedFields")?w(u.serverGeneratedFields,`${d}/serverGeneratedFields`,16):[],b=new Set;f.forEach((V,U)=>{let L=`${d}/serverGeneratedFields/${U}`,q=O(V,L);R(q,["field","kind"],L);let J=K(q.field,`${L}/field`);(b.has(J)||!_.has(J)||T.includes(J)||_.get(J)!=="text.short"&&_.get(J)!=="text.long")&&m("NATIVE_PUBLIC_SERVER_GENERATED_FIELD_INVALID",`${L}/field`),x(q.kind,"random-token",`${L}/kind`),b.add(J)});let h=Object.prototype.hasOwnProperty.call(u,"schedule")?O(u.schedule,`${d}/schedule`):null;if(h){let V=["campusPolicyCode","rulePolicyCode","campusField","ruleCampusField","ruleWeekdaysField","ruleOpenAtField","ruleCloseAtField","ruleSlotMinutesField","ruleAdvanceHoursField","ruleAdvanceDaysField","campusEnabledField","ruleEnabledField","dateField","timeField"];R(h,V,`${d}/schedule`);for(let U of["campusPolicyCode","rulePolicyCode"])P(h[U],`${d}/schedule/${U}`);for(let U of V.filter(L=>!["campusPolicyCode","rulePolicyCode"].includes(L)))K(h[U],`${d}/schedule/${U}`);for(let U of[h.campusField,h.dateField,h.timeField])T.includes(String(U))||m("NATIVE_PUBLIC_SCHEDULE_FIELD_INVALID",`${d}/schedule`);(!c.has(String(h.campusPolicyCode))||!c.has(String(h.rulePolicyCode)))&&m("NATIVE_PUBLIC_SCHEDULE_POLICY_INVALID",`${d}/schedule`)}let C=Object.prototype.hasOwnProperty.call(u,"publicFilters")?w(u.publicFilters,`${d}/publicFilters`,16):[],$=new Set;C.forEach((V,U)=>{let L=`${d}/publicFilters/${U}`,q=O(V,L);R(q,["field","operator","value"],L);let J=K(q.field,`${L}/field`);$.has(J)&&m("NATIVE_PUBLIC_FILTER_DUPLICATE",`${L}/field`),T.includes(J)||m("NATIVE_PUBLIC_FILTER_FIELD_INVALID",`${L}/field`),x(q.operator,"eq",`${L}/operator`),["boolean","text.short","text.long","number.integer","number.decimal","date","time"].includes(_.get(J)||"")||m("NATIVE_PUBLIC_FILTER_FIELD_INVALID",`${L}/field`),q.value!==null&&typeof q.value!="string"&&typeof q.value!="number"&&typeof q.value!="boolean"&&m("NATIVE_PUBLIC_FILTER_VALUE_INVALID",`${L}/value`),$.add(J)});let k=Object.prototype.hasOwnProperty.call(u,"publicSubtableFields")?O(u.publicSubtableFields,`${d}/publicSubtableFields`):null;if(k){Object.keys(k).length>64&&m("NATIVE_PUBLIC_SUBTABLE_FIELDS_INVALID",`${d}/publicSubtableFields`);for(let[V,U]of Object.entries(k)){let L=y.schema.fields.find(Z=>String(Z.code)===V),q=String(L?.subtable?.resourceCode||""),J=a.get(q),Re=new Map((J?.schema?.fields||[]).map(Z=>[String(Z.code),String(Z.type)])),z=F(U,`${d}/publicSubtableFields/${V}`,64);(!T.includes(V)||_.get(V)!=="subtable"||!J||z.length<1||z.some(Z=>!Re.has(Z))||z.some(Z=>Re.get(Z)==="subtable")||z.some(Z=>Re.get(Z)==="signature"))&&m("NATIVE_PUBLIC_SUBTABLE_FIELDS_INVALID",`${d}/publicSubtableFields/${V}`)}}if(A.some(V=>V.startsWith("public."))){Object.prototype.hasOwnProperty.call(u,"publicRecordFields")||m("NATIVE_PUBLIC_RECORD_FIELDS_REQUIRED",`${d}/publicRecordFields`);let V=F(u.publicRecordFields,`${d}/publicRecordFields`,64);(V.length<1||V.some(U=>!T.includes(U))||V.some(U=>_.get(U)==="signature"||_.get(U)==="subtable"&&!k?.[U]))&&m("NATIVE_PUBLIC_RECORD_FIELDS_INVALID",`${d}/publicRecordFields`)}let W=Object.prototype.hasOwnProperty.call(u,"requiredFields")?F(u.requiredFields,`${d}/requiredFields`,64):[],v=y.surface||{},Y=v.fields||{},te=String(v.mutationOwner||"native")==="native"&&v.generated?.create!==!1,H=y.schema.fields.filter(V=>mt(V,Y[V.code])).map(V=>String(V.code));if(A.includes("create")&&!te&&m("NATIVE_PUBLIC_CREATE_FIELDS_INCOMPLETE",`${d}/fields`),A.includes("create")&&!Object.prototype.hasOwnProperty.call(u,"draft")&&m("NATIVE_PUBLIC_DRAFT_REQUIRED",`${d}/draft`),A.includes("create"))for(let V of H){let U=T.includes(V)?W.includes(V)?null:"requiredFields":"fields";U&&m("NATIVE_PUBLIC_CREATE_FIELDS_INCOMPLETE",`${d}/${U}`,{resourceCode:G,fieldCode:V})}if(Object.prototype.hasOwnProperty.call(u,"draft")){let V=O(u.draft,`${d}/draft`);R(V,["enabled","inactivityTtlSeconds","maxBytes"],`${d}/draft`),x(V.enabled,!0,`${d}/draft/enabled`),se(V.inactivityTtlSeconds,`${d}/draft/inactivityTtlSeconds`,3600,7776e3),se(V.maxBytes,`${d}/draft/maxBytes`,4096,262144)}else A.includes("draft.read")&&m("NATIVE_PUBLIC_DRAFT_REQUIRED",`${d}/draft`);let he=Object.prototype.hasOwnProperty.call(u,"validations")?w(u.validations,`${d}/validations`,16):[],le=new Set;he.forEach((V,U)=>{let L=`${d}/validations/${U}`,q=O(V,L);R(q,["code","kind","fields","result"],L);let J=P(q.code,`${L}/code`);le.has(J)&&m("NATIVE_PUBLIC_VALIDATION_DUPLICATE",`${L}/code`),x(q.kind,"duplicate",`${L}/kind`),x(q.result,"availability",`${L}/result`);let Re=F(q.fields,`${L}/fields`,8);(Re.length<1||Re.some(z=>!T.includes(z))||Re.some(z=>["file","subtable"].includes(_.get(z)||"")))&&m("NATIVE_PUBLIC_VALIDATION_FIELD_INVALID",`${L}/fields`),le.add(J)}),r.add(g)})}function Cc(e,t){let o=O(e,t);R(o,["policies"],t),w(o.policies,`${t}/policies`,16).length<1&&m("NATIVE_PUBLIC_POLICY_REQUIRED",t)}function Sc(e){return{policies:ee(e.frontend.publicAccess.policies.map(t=>({code:t.code,routeCode:t.routeCode,mode:t.mode,resourceCode:t.resourceCode,operations:M(t.operations),fields:M(t.fields),...t.requiredFields?{requiredFields:M(t.requiredFields)}:{},...t.ownRecordFields?{ownRecordFields:M(t.ownRecordFields)}:{},...t.publicRecordFields?{publicRecordFields:M(t.publicRecordFields)}:{},...t.publicFilters?{publicFilters:t.publicFilters.map(o=>({field:o.field,operator:o.operator,value:o.value})).sort((o,n)=>me(o.field,n.field))}:{},...t.publicSubtableFields?{publicSubtableFields:Object.fromEntries(Object.entries(t.publicSubtableFields).sort(([o],[n])=>o.localeCompare(n)).map(([o,n])=>[o,M(Array.isArray(n)?n.map(String):[])]))}:{},...t.serverGeneratedFields?{serverGeneratedFields:t.serverGeneratedFields.map(o=>({field:o.field,kind:o.kind})).sort((o,n)=>me(o.field,n.field))}:{},...t.schedule?{schedule:{campusPolicyCode:t.schedule.campusPolicyCode,rulePolicyCode:t.schedule.rulePolicyCode,campusField:t.schedule.campusField,ruleCampusField:t.schedule.ruleCampusField,ruleWeekdaysField:t.schedule.ruleWeekdaysField,ruleOpenAtField:t.schedule.ruleOpenAtField,ruleCloseAtField:t.schedule.ruleCloseAtField,ruleSlotMinutesField:t.schedule.ruleSlotMinutesField,ruleAdvanceHoursField:t.schedule.ruleAdvanceHoursField,ruleAdvanceDaysField:t.schedule.ruleAdvanceDaysField,campusEnabledField:t.schedule.campusEnabledField,ruleEnabledField:t.schedule.ruleEnabledField,dateField:t.schedule.dateField,timeField:t.schedule.timeField}}:{},...t.draft?{draft:{...t.draft}}:{},...t.validations?{validations:ee(t.validations.map(o=>({code:o.code,kind:o.kind,fields:M(o.fields),result:o.result})),o=>o.code)}:{}})),t=>t.code)}}function hs(e){let t=[{owner:"platform:admin-entry",path:"/"},{owner:"platform:admin-entry",path:"/admin"},{owner:"platform:file-preview",path:"/files/:resourceCode/:fileId/preview"}];e.frontend.authentication&&t.push({owner:"authentication:desktop",path:e.frontend.authentication.surfaces.desktop.path},{owner:"authentication:mobile",path:e.frontend.authentication.surfaces.mobile.path});for(let o of e.data.resources){let n=Rs(o),i=`/admin/resources/${o.code}`,s=[["list",i],["detail",`${i}/:id`],["create",`${i}/new`],["update",`${i}/:id/edit`]];for(let[a,r]of s)n[a]&&t.push({owner:`resource:${o.code}:${a}`,path:r},{owner:`resource:${o.code}:${a}:mobile`,path:`/m${r}`})}if(e.frontend.user.applicationTodoCenter===!0&&t.push({owner:"application:todo-center",path:"/todos"},{owner:"application:todo-center:mobile",path:"/m/todos"}),e.workflows.definitions.length>0){t.push({owner:"workflow:work-center",path:"/work-center"},{owner:"workflow:work-center:mobile",path:"/m/work-center"},{owner:"workflow:task",path:"/tasks/:taskId"},{owner:"workflow:task:mobile",path:"/m/tasks/:taskId"},{owner:"workflow:instance",path:"/workflows/:instanceId"},{owner:"workflow:instance:mobile",path:"/m/workflows/:instanceId"});let o=!1;for(let n of e.workflows.definitions)["standalone","hidden-handoff"].includes(n.launch.mode)&&(o=!0);o&&t.push({owner:"workflow:launch",path:"/workflows/:workflowCode/start"},{owner:"workflow:launch:mobile",path:"/m/workflows/:workflowCode/start"})}return t}function hn(e){let t=new Map(hs(e).map(o=>[bn(o.path),o]));return ee(e.frontend.routes.map((o,n)=>{let i=`/config/frontend/routes/${n}`,s=O(o,i);R(s,["code","path","label","surface","parentCode","capability","access","pinned","tabPersistence","keepAlive"],i,!0),["admin","user"].includes(s.surface)||m("NATIVE_ROUTE_SURFACE_INVALID",`${i}/surface`);let a=ye(s.path,`${i}/path`);s.surface==="admin"&&a!=="/admin"&&!a.startsWith("/admin/")&&m("NATIVE_ADMIN_ROUTE_PATH_INVALID",`${i}/path`),s.surface==="user"&&(a==="/admin"||a.startsWith("/admin/"))&&m("NATIVE_USER_ROUTE_PATH_RESERVED",`${i}/path`);let r=bn(a),c=t.get(r);c&&m("NATIVE_ROUTE_PATH_CONFLICT",`${i}/path`,{path:a,owner:c.owner}),t.set(r,{owner:`frontend:${String(s.code||n)}`,path:a});let l=/[:*]/.test(a),p=Uo(s,i,e.appCode),d=s.pinned===void 0?void 0:lt(s.pinned,`${i}/pinned`),u=s.tabPersistence===void 0?l?"none":"session":S(s.tabPersistence,`${i}/tabPersistence`,16),g=s.keepAlive===void 0?"none":S(s.keepAlive,`${i}/keepAlive`,16);return["session","none"].includes(u)||m("NATIVE_ROUTE_TAB_PERSISTENCE_INVALID",`${i}/tabPersistence`),["none","memory"].includes(g)||m("NATIVE_ROUTE_KEEP_ALIVE_INVALID",`${i}/keepAlive`),l&&d===!0&&m("NATIVE_DYNAMIC_ROUTE_PINNED_FORBIDDEN",`${i}/pinned`),l&&u==="session"&&m("NATIVE_DYNAMIC_ROUTE_TAB_PERSISTENCE_FORBIDDEN",`${i}/tabPersistence`),l&&g==="memory"&&m("NATIVE_DYNAMIC_ROUTE_KEEP_ALIVE_FORBIDDEN",`${i}/keepAlive`),{code:P(s.code,`${i}/code`),path:a,label:S(s.label,`${i}/label`,255),surface:s.surface,...s.parentCode===void 0?{}:{parentCode:P(s.parentCode,`${i}/parentCode`)},...p,...d===void 0?{}:{pinned:d},tabPersistence:u,keepAlive:g}}),o=>o.code)}function Rs(e){let t=e.surface===void 0?{}:O(e.surface,"/surface"),o=t.mutationOwner||"native",n=t.generated===void 0?{}:O(t.generated,"/surface/generated"),i=o==="native";return{list:n.list??!0,detail:n.detail??!0,create:n.create??i,update:n.update??i,delete:n.delete??i}}function Cs(e){let t=[];for(let o of ee(e.data.resources,n=>n.code).flatMap(n=>[{resource:n,viewCode:void 0},...(n.surface?.views||[]).map(i=>({viewCode:i.code,resource:{...n,name:i.name,surface:zt(n.surface,i.code)}}))])){let{resource:n,viewCode:i}=o,s=`/admin/resources/${n.code}${i?`/views/${i}`:""}`,a=Rs(n),r=[{operation:"list",kind:"resource-list",path:`${s}`,label:n.name,capability:n.capabilities.read,navigationEligible:!0},{operation:"detail",kind:"resource-detail",path:`${s}/:id`,label:`${n.name}\u8BE6\u60C5`,capability:n.capabilities.read,navigationEligible:!1},{operation:"create",kind:"resource-create",path:`${s}/new`,label:`\u65B0\u589E${n.name}`,capability:n.capabilities.create,navigationEligible:!1},{operation:"update",kind:"resource-update",path:`${s}/:id/edit`,label:`\u7F16\u8F91${n.name}`,capability:n.capabilities.update,navigationEligible:!1}];for(let c of r)a[c.operation]&&t.push({code:`resource:${n.code}${i?`:view:${i}`:""}:${c.operation}`,kind:c.kind,path:c.path,label:c.label,navigationEligible:c.navigationEligible,capability:c.capability,resourceCode:n.code,...i?{viewCode:i}:{}})}for(let o of hn(e))o.surface==="admin"&&t.push({code:`operation:${o.code}`,kind:"operation",path:o.path,label:o.label,navigationEligible:!/[:*]/.test(o.path),routeCode:o.code});return t.sort((o,n)=>me(o.code,n.code))}function Ss(e){return e.kind==="resource"?`resource:${e.resourceCode}${e.viewCode?`:view:${e.viewCode}`:""}:list`:`operation:${e.routeCode}`}function wc(e){return e.frontend.admin.navigation.map((t,o)=>({code:t.code,label:t.label,...t.icon===void 0?{}:{icon:t.icon},order:t.order??o,items:t.items.map((n,i)=>({pageCode:Ss(n.page),...n.label===void 0?{}:{label:n.label},...n.icon===void 0?{}:{icon:n.icon},order:n.order??i})).sort((n,i)=>n.order-i.order||me(n.pageCode,i.pageCode))})).sort((t,o)=>t.order-o.order||me(t.code,o.code))}function Dc(e,t){let o=w(e,t,X.adminNavigationGroups),n=0;o.forEach((i,s)=>{let a=`${t}/${s}`,r=O(i,a);R(r,["code","label","icon","order","items"],a,!0),P(r.code,`${a}/code`),S(r.label,`${a}/label`,255),Nn(r.icon,`${a}/icon`),ds(r.order,`${a}/order`);let c=w(r.items,`${a}/items`,500);c.length===0&&m("NATIVE_ADMIN_GROUP_ORPHANED",`${a}/items`),n+=c.length,n>X.adminNavigationItems&&m("NATIVE_ARRAY_LIMIT_EXCEEDED",t),c.forEach((l,p)=>{let d=`${a}/items/${p}`,u=O(l,d);R(u,["page","label","icon","order"],d,!0),$c(u.page,`${d}/page`),u.label!==void 0&&S(u.label,`${d}/label`,255),Nn(u.icon,`${d}/icon`),ds(u.order,`${d}/order`)})})}function $c(e,t){let o=O(e,t),n=S(o.kind,`${t}/kind`,64);if(n==="resource"){R(o,["kind","resourceCode"],t,["viewCode"]),o.viewCode!==void 0&&P(o.viewCode,`${t}/viewCode`),G(o.resourceCode,`${t}/resourceCode`);return}if(n==="operation"){R(o,["kind","routeCode"],t),P(o.routeCode,`${t}/routeCode`);return}m("NATIVE_ADMIN_PAGE_REFERENCE_KIND_INVALID",`${t}/kind`)}function kc(e){let t=new Map(Cs(e).map(i=>[String(i.code),i])),o=new Set,n=new Set;e.frontend.admin.navigation.forEach((i,s)=>{let a=`/config/frontend/admin/navigation/${s}`;o.has(i.code)&&m("NATIVE_ADMIN_GROUP_DUPLICATE",`${a}/code`),o.add(i.code),i.label===i.code&&m("NATIVE_ADMIN_USER_LABEL_REQUIRED",`${a}/label`),i.items.forEach((r,c)=>{let l=`${a}/items/${c}`,p=Ss(r.page),d=t.get(p);(!d||d.navigationEligible!==!0)&&m("NATIVE_ADMIN_PAGE_NOT_FOUND",`${l}/page`),n.has(p)&&m("NATIVE_ADMIN_PAGE_DUPLICATE",`${l}/page`),n.add(p);let u=r.page.resourceCode||r.page.routeCode||r.page.workflowCode||p,g=r.label||d.label;(!g||g===u||g===p)&&m("NATIVE_ADMIN_USER_LABEL_REQUIRED",`${l}/label`)})})}function Vc(e,t){let o=w(e,t,X.adminPages),n=new Set;o.forEach((i,s)=>{let a=`${t}/${s}`,r=O(i,a);R(r,["code","kind","path","label","navigationEligible","capability","access","resourceCode","viewCode","routeCode"],a,!0);let c=S(r.code,`${a}/code`,255);n.has(c)&&m("NATIVE_ADMIN_PAGE_DUPLICATE",`${a}/code`),n.add(c);let l=S(r.kind,`${a}/kind`,64);if(["resource-list","resource-detail","resource-create","resource-update","operation"].includes(l)||m("NATIVE_ADMIN_PAGE_KIND_INVALID",`${a}/kind`),ye(r.path,`${a}/path`),S(r.label,`${a}/label`,255),lt(r.navigationEligible,`${a}/navigationEligible`),r.capability!==void 0&&r.access!==void 0&&m("NATIVE_ROUTE_ACCESS_CONFLICT",`${a}/access`),r.capability!==void 0&&S(r.capability,`${a}/capability`,255),r.access!==void 0){let p=O(r.access,`${a}/access`);R(p,["allOf","anyOf"],`${a}/access`,!0);for(let d of["allOf","anyOf"])p[d]!==void 0&&F(p[d],`${a}/access/${d}`,50)}for(let p of["resourceCode","viewCode","routeCode"])r[p]!==void 0&&P(r[p],`${a}/${p}`)})}function Pc(e,t){let o=w(e,t,X.adminNavigationGroups),n=0;o.forEach((i,s)=>{let a=`${t}/${s}`,r=O(i,a);R(r,["code","label","icon","order","items"],a,!0),P(r.code,`${a}/code`),S(r.label,`${a}/label`,255),Nn(r.icon,`${a}/icon`),se(r.order,`${a}/order`,-1e4,1e4);let c=w(r.items,`${a}/items`,500);c.length===0&&m("NATIVE_ADMIN_GROUP_ORPHANED",`${a}/items`),n+=c.length,n>X.adminNavigationItems&&m("NATIVE_ARRAY_LIMIT_EXCEEDED",t),c.forEach((l,p)=>{let d=`${a}/items/${p}`,u=O(l,d);R(u,["pageCode","label","icon","order"],d,!0),S(u.pageCode,`${d}/pageCode`,255),u.label!==void 0&&S(u.label,`${d}/label`,255),Nn(u.icon,`${d}/icon`),se(u.order,`${d}/order`,-1e4,1e4)})})}var Fc=new Set(["application-todo-center","workflow-work-center","workflow-launch","workflow-task","workflow-instance","resource-records","resource-submit"]);function vc(e,t,o){let n=O(e,t);R(n,["schemaVersion","appCode","devicePolicy","rootEntry","authentication","routes","digest"],t),x(n.schemaVersion,Is,`${t}/schemaVersion`),x(n.appCode,o,`${t}/appCode`),Wo(n.devicePolicy,`${t}/devicePolicy`),Lc(n.rootEntry,`${t}/rootEntry`),xc(n.authentication,`${t}/authentication`),xo(n.digest,`${t}/digest`);let i=w(n.routes,`${t}/routes`,X.routes),s=new Set;i.forEach((a,r)=>{let c=`${t}/routes/${r}`,l=O(a,c),p=l.kind==="resource-records"||l.kind==="resource-submit";R(l,["code","kind","desktop","mobile"],c,["workflowCode",...p?["resourceCode"]:[]]);let d=S(l.code,`${c}/code`,255);s.has(d)&&m("NATIVE_ROUTE_MANIFEST_DUPLICATE",`${c}/code`),s.add(d);let u=S(l.kind,`${c}/kind`,64);if(Fc.has(u)||m("NATIVE_ROUTE_MANIFEST_KIND_INVALID",`${c}/kind`),l.workflowCode!==void 0&&P(l.workflowCode,`${c}/workflowCode`),p){let E=G(l.resourceCode,`${c}/resourceCode`);x(d,`user.${E}.${l.kind==="resource-records"?"records":"submit"}`,`${c}/code`)}else l.resourceCode!==void 0&&m("NATIVE_PROPERTY_UNKNOWN",`${c}/resourceCode`);let g=rs(l.desktop,`${c}/desktop`,o),I=rs(l.mobile,`${c}/mobile`,o);g.surface!=="user"&&m("NATIVE_ROUTE_MANIFEST_DESKTOP_SURFACE_INVALID",`${c}/desktop/surface`),I.surface!=="user"&&m("NATIVE_ROUTE_MANIFEST_MOBILE_SURFACE_INVALID",`${c}/mobile/surface`),g.routeCode===I.routeCode&&m("NATIVE_ROUTE_MANIFEST_PAIR_DUPLICATE",c)}),x(n.digest,Q({schemaVersion:n.schemaVersion,appCode:n.appCode,devicePolicy:n.devicePolicy,rootEntry:n.rootEntry,authentication:n.authentication,routes:n.routes}),`${t}/digest`)}function Wo(e,t){let o=O(e,t);R(o,["kind","mobileMaxWidthPx","desktopMinWidthPx"],t),x(o.kind,"viewport-family",`${t}/kind`);let n=se(o.mobileMaxWidthPx,`${t}/mobileMaxWidthPx`,320,1600),i=se(o.desktopMinWidthPx,`${t}/desktopMinWidthPx`,320,1600);return i!==n+1&&m("NATIVE_FRONTEND_DEVICE_POLICY_INVALID",t),{kind:"viewport-family",mobileMaxWidthPx:n,desktopMinWidthPx:i}}function Lc(e,t){let o=O(e,t);R(o,["code","desktop","mobile"],t);let n=P(o.code,`${t}/code`),i=Lo(o.desktop,`${t}/desktop`),s=Lo(o.mobile,`${t}/mobile`);return(i===s||s==="/"||!s.startsWith("/m/"))&&m("NATIVE_ROUTE_MANIFEST_ROOT_ENTRY_INVALID",t),i.startsWith("/m/")&&m("NATIVE_ROUTE_MANIFEST_ROOT_ENTRY_INVALID",`${t}/desktop`),{code:n,desktop:i,mobile:s}}function xc(e,t){let o=O(e,t);R(o,["desktop","mobile"],t);let n=ss(o.desktop,`${t}/desktop`,!1),i=ss(o.mobile,`${t}/mobile`,!0);return(n.routeCode===i.routeCode||n.path===i.path)&&m("NATIVE_ROUTE_MANIFEST_AUTHENTICATION_DUPLICATE",t),{desktop:n,mobile:i}}function ss(e,t,o){let n=O(e,t);R(n,["routeCode","path"],t);let i=P(n.routeCode,`${t}/routeCode`),s=Lo(n.path,`${t}/path`);return(o?!s.startsWith("/m/"):s.startsWith("/m/"))&&m("NATIVE_ROUTE_MANIFEST_AUTHENTICATION_PATH_INVALID",`${t}/path`),{routeCode:i,path:s}}function Lo(e,t){let o=ye(e,t);return/[:*?#\\\\]/.test(o)&&m("NATIVE_ROUTE_MANIFEST_STATIC_PATH_INVALID",t),o}function rs(e,t,o){let n=O(e,t);R(n,["routeCode","path","surface","pathParams","requiresAuthentication"],t,["capability","access"]),P(n.routeCode,`${t}/routeCode`);let i=ye(n.path,`${t}/path`),s=S(n.surface,`${t}/surface`,16);["admin","user"].includes(s)||m("NATIVE_ROUTE_SURFACE_INVALID",`${t}/surface`);let a=F(n.pathParams,`${t}/pathParams`,8);return a.forEach((r,c)=>{(!/^[A-Za-z][A-Za-z0-9_]*$/.test(r)||r.length>64)&&m("NATIVE_ROUTE_PATH_PARAM_INVALID",`${t}/pathParams/${c}`)}),ne(a)!==ne(ws(i))&&m("NATIVE_ROUTE_PATH_PARAMS_MISMATCH",`${t}/pathParams`),Uo(n,t,o),n.requiresAuthentication!==!0&&m("NATIVE_ROUTE_AUTHENTICATION_REQUIRED",`${t}/requiresAuthentication`),n}function ws(e){return M([...e.matchAll(/:([A-Za-z][A-Za-z0-9_]*)/g)].map(t=>t[1]))}function as(e,t,o,n){return{routeCode:e,path:t,surface:o,pathParams:ws(t),...n?.capability?{capability:n.capability}:{},...n?.access?{access:n.access}:{},requiresAuthentication:!0}}function cs(e,t,o,n){return e==="workflow-launch"?`workflow.${o}.launch.${t}`:e==="application-todo-center"?`application.todo-center.${t}`:e==="resource-records"?`user.${n}.records.${t}`:e==="resource-submit"?`user.${n}.submit.${t}`:`${e.replace(/-/g,".")}.${t}`}function jc(e){let t=e.appCode,o=[],n=(g,I,E,N,y,_,A)=>{o.push({code:g,kind:I,...y?{workflowCode:y}:{},...A?{resourceCode:A}:{},desktop:as(cs(I,"desktop",y,A),E,"user",_),mobile:as(cs(I,"mobile",y,A),N,"user",_)})};e.frontend.user.applicationTodoCenter===!0&&n("application:todo-center","application-todo-center","/todos","/m/todos");let i=Ds(e);i.length>0&&(n("workflow:work-center","workflow-work-center","/work-center","/m/work-center"),n("workflow:task","workflow-task","/tasks/:taskId","/m/tasks/:taskId"),n("workflow:instance","workflow-instance","/workflows/:instanceId","/m/workflows/:instanceId"));for(let g of i){if(!["standalone","hidden-handoff"].includes(g.launch.mode))continue;let I=M([g.launch.submission?.create?.requiredCapability,g.launch.submission?.existing?.requiredCapability].filter(E=>!!E));n(`workflow:${g.code}:launch`,"workflow-launch","/workflows/:workflowCode/start","/m/workflows/:workflowCode/start",g.code,I.length===1?{capability:I[0]}:I.length>1?{access:{anyOf:I}}:void 0)}let s=o.sort((g,I)=>me(String(g.code),String(I.code))),a=hn(e),r=g=>{let I=g==="mobile"?"/m/":"/",E=a.filter(y=>y.surface==="user"&&!/[:*?#\\\\]/.test(y.path)&&y.path===I).sort((y,_)=>me(y.code,_.code))[0];if(E)return{code:E.code,path:E.path};let N=a.filter(y=>y.surface==="user"&&!/[:*?#\\\\]/.test(y.path)&&(g==="mobile"?y.path.startsWith("/m/"):!y.path.startsWith("/m/"))).sort((y,_)=>me(y.code,_.code))[0];return N?{code:N.code,path:N.path}:{code:g==="mobile"?"application-root-mobile":"application-root",path:I}},c=e.frontend.authentication?{desktop:{routeCode:e.frontend.authentication.surfaces.desktop.routeCode,path:e.frontend.authentication.surfaces.desktop.path},mobile:{routeCode:e.frontend.authentication.surfaces.mobile.routeCode,path:e.frontend.authentication.surfaces.mobile.path}}:{desktop:{routeCode:"application-login",path:"/login"},mobile:{routeCode:"application-login-mobile",path:"/m/login"}},l=Wo(e.frontend.devicePolicy,"/config/frontend/devicePolicy"),p=r("desktop"),d=r("mobile"),u={schemaVersion:Is,appCode:t,devicePolicy:l,rootEntry:{code:p.code,desktop:p.path,mobile:d.path},authentication:c,routes:s};return{...u,digest:Q(u)}}function Nn(e,t){if(e===void 0)return;let o=S(e,t,32);Za.has(o)||m("NATIVE_ADMIN_ICON_INVALID",t)}function ds(e,t){e!==void 0&&se(e,t,-1e4,1e4)}function Uo(e,t,o){return e.capability!==void 0&&e.access!==void 0&&m("NATIVE_ROUTE_ACCESS_CONFLICT",`${t}/access`),e.capability!==void 0?{capability:fe(e.capability,`${t}/capability`,o)}:e.access===void 0?{}:{access:Rn(e.access,`${t}/access`,o)}}function Rn(e,t,o){let n=O(e,t);R(n,["allOf","anyOf"],t,!0);let i=n.allOf===void 0?void 0:M(F(n.allOf,`${t}/allOf`,50).map((a,r)=>fe(a,`${t}/allOf/${r}`,o))),s=n.anyOf===void 0?void 0:M(F(n.anyOf,`${t}/anyOf`,50).map((a,r)=>fe(a,`${t}/anyOf/${r}`,o)));return(i?.length||0)+(s?.length||0)===0&&m("NATIVE_ROUTE_ACCESS_EMPTY",t),{...i===void 0?{}:{allOf:i},...s===void 0?{}:{anyOf:s}}}function Ds(e){let t=new Map(Os(e).map(i=>[String(i.code),i])),o=e.workflows.definitions.map((i,s)=>{let a=`/config/workflows/definitions/${s}`,r=O(i,a);R(r,["version","definition","launch"],a,["detailRouteCode"]);let c=O(r.definition,`${a}/definition`),l=r.detailRouteCode===void 0?void 0:ks(r.detailRouteCode,`${a}/detailRouteCode`);return{code:P(c.code,`${a}/definition/code`),title:S(c.title,`${a}/definition/title`,255),version:dt(r.version,`${a}/version`),launch:Wc(e,c,r.launch,`${a}/launch`,t),...l?{detailRouteCode:l}:{},definition:c}});return M(o.map(i=>i.code)).map(i=>{let s=o.filter(l=>l.code===i),a=e.workflows.activations.find(l=>l.workflowCode===i)?.definitionVersion,r=s.find(l=>l.version===a)||[...s].sort((l,p)=>p.version-l.version)[0],c=new Set;for(let l of s){let p=O(l.definition.nodes,"/config/workflows/definitions/nodes");for(let d of Object.values(p)){let u=O(d,"/config/workflows/definitions/nodes/*");if(u.kind==="approval")for(let g of F(u.allowedOperations||[],"/config/workflows/definitions/nodes/*/allowedOperations",20))c.add(g)}}return{code:i,title:r.title,acceptedCommandDeactivationPolicy:r.definition.acceptedCommandDeactivationPolicy,subject:r.definition.subject,launch:r.launch,...["standalone","hidden-handoff"].includes(r.launch.mode)&&!r.launch.submission?{processOperationCode:`openxiangda.workflow.${i}.submit`}:{},...r.detailRouteCode?{detailRouteCode:r.detailRouteCode}:{},definitionVersions:As(s.map(l=>l.version)),bindingVersions:As(e.workflows.bindings.map((l,p)=>{let d=`/config/workflows/bindings/${p}`,u=O(l,d),g=O(u.binding,`${d}/binding`);return{code:P(g.workflowCode,`${d}/binding/workflowCode`),version:dt(u.version,`${d}/version`)}}).filter(l=>l.code===i).map(l=>l.version)),providerCodes:M(e.workflows.providers.map((l,p)=>P(O(l,`/config/workflows/providers/${p}`).code,`/config/workflows/providers/${p}/code`))),allowedOperations:[...c].sort(me),editableParameterCodes:M(e.workflows.editableParameters.map((l,p)=>{let d=`/config/workflows/editableParameters/${p}`,u=O(l,d);return{code:P(u.code,`${d}/code`),workflowCode:P(u.workflowCode,`${d}/workflowCode`)}}).filter(l=>l.workflowCode===i).map(l=>l.code))}})}function $s(e,t){let o=O(e,t);R(o,["mode"],t,["submission"]);let n=S(o.mode,`${t}/mode`,32);return["standalone","custom-page","hidden-handoff","work-center-only"].includes(n)||m("NATIVE_WORKFLOW_LAUNCH_MODE_INVALID",`${t}/mode`),{mode:n,...o.submission===void 0?{}:{submission:O(o.submission,`${t}/submission`)}}}function Wc(e,t,o,n,i){let s=$s(o,n);if(!s.submission)return{mode:s.mode};["standalone","hidden-handoff"].includes(s.mode)||m("NATIVE_WORKFLOW_NAMED_OPERATION_SUBMISSION_INVALID",`${n}/submission`);let a=O(s.submission,`${n}/submission`);R(a,["kind"],`${n}/submission`,["create","existing","context"]),x(a.kind,"named-operation",`${n}/submission/kind`);let r=n.endsWith("/launch")?n.slice(0,-7):n,c=O(t.subject,`${r}/definition/subject`),l=G(c.resourceCode,`${r}/definition/subject/resourceCode`),p=e.data.resources.findIndex(b=>b.code===l),d=e.data.resources[p];(p<0||!d)&&m("NATIVE_WORKFLOW_SUBJECT_RESOURCE_MISSING",`${r}/definition/subject/resourceCode`);let u=new Set(O(d.schema,`/config/data/resources/${p}/schema`).fields.map(b=>String(b.code))),g=new Map(e.backend.operations.map(b=>[String(b.code),b])),I=(b,h)=>{let C=`${n}/submission/${h}`,$=O(b,C);R($,["operationCode","inputs","output"],C);let k=P($.operationCode,`${C}/operationCode`),W=g.get(k),v=i.get(k),Y=v?.platformAccess?.workflow?.codes;(!W||!v||v.method!=="POST"||!Array.isArray(Y)||!Y.includes(t.code))&&m("NATIVE_WORKFLOW_NAMED_OPERATION_INVALID",C);let te=O(W.requestSchema,`${C}/operation/requestSchema`),H=O(te.properties,`${C}/operation/requestSchema/properties`),he=new Set(te.required===void 0?[]:F(te.required,`${C}/operation/requestSchema/required`,64)),le=O($.inputs,`${C}/inputs`),V=Object.entries(le);(!V.length||V.length>64)&&m("NATIVE_WORKFLOW_NAMED_OPERATION_INPUT_INVALID",`${C}/inputs`);let U=new Set,L=new Map,q={};for(let[z,Z]of V){(!ns.test(z)||!Object.prototype.hasOwnProperty.call(H,z))&&m("NATIVE_WORKFLOW_NAMED_OPERATION_INPUT_INVALID",`${C}/inputs/${z}`);let qe=`${C}/inputs/${z}`,Dn=O(Z,qe),Le=S(Dn.source,`${qe}/source`,32);if(["field","idempotency-key","current-user-reference","subject-id","subject-revision","requested-at"].includes(Le)||m("NATIVE_WORKFLOW_NAMED_OPERATION_INPUT_INVALID",qe),R(Dn,["source"],qe,Le==="field"?["fieldCode"]:!1),L.set(Le,(L.get(Le)||0)+1),Le==="field"){let Ft=K(Dn.fieldCode,`${qe}/fieldCode`);(U.has(Ft)||!u.has(Ft))&&m("NATIVE_WORKFLOW_NAMED_OPERATION_INPUT_INVALID",`${qe}/fieldCode`),U.add(Ft),q[z]={source:Le,fieldCode:Ft}}else q[z]={source:Le}}([...he].some(z=>!(z in le))||(L.get("idempotency-key")||0)!==1||!V.some(([z,Z])=>O(Z,`${C}/inputs/${z}`).source==="idempotency-key"&&he.has(z))||h==="create"&&((L.get("subject-id")||0)>0||(L.get("subject-revision")||0)>0)||h==="existing"&&((L.get("subject-id")||0)!==1||(L.get("subject-revision")||0)!==1))&&m("NATIVE_WORKFLOW_NAMED_OPERATION_INPUT_INVALID",`${C}/inputs`);let J=O($.output,`${C}/output`);R(J,["subjectId"],`${C}/output`,["subjectRevision","processCommand"]);let Re=O(O(W.responseSchema,`${C}/operation/responseSchema`).properties,`${C}/operation/responseSchema/properties`);for(let z of["subjectId","subjectRevision","processCommand"]){if(J[z]===void 0)continue;let Z=S(J[z],`${C}/output/${z}`,128);(!ns.test(Z)||!Object.prototype.hasOwnProperty.call(Re,Z))&&m("NATIVE_WORKFLOW_NAMED_OPERATION_OUTPUT_INVALID",`${C}/output/${z}`)}return{operationCode:k,method:"POST",path:v.path,requiredCapability:v.requiredCapability,requestSchemaDigest:v.requestSchemaDigest,responseSchemaDigest:v.responseSchemaDigest,inputs:q,output:{...J},fieldCodes:U}},E=a.create===void 0?void 0:I(a.create,"create"),N=a.existing===void 0?void 0:I(a.existing,"existing");!E&&!N&&m("NATIVE_WORKFLOW_NAMED_OPERATION_SUBMISSION_INVALID",`${n}/submission`);let y=new Set([...E?.fieldCodes||[],...N?.fieldCodes||[]]),_=a.context===void 0?[]:w(a.context,`${n}/submission/context`,16),A=new Set,T=_.map((b,h)=>{let C=`${n}/submission/context/${h}`,$=O(b,C);R($,["queryParameter","fieldCode"],C);let k=S($.queryParameter,`${C}/queryParameter`,64),W=K($.fieldCode,`${C}/fieldCode`);return(!/^[A-Za-z][A-Za-z0-9]{0,63}$/.test(k)||A.has(k)||!y.has(W))&&m("NATIVE_WORKFLOW_LAUNCH_CONTEXT_INVALID",C),A.add(k),{queryParameter:k,fieldCode:W}}),f=b=>{let{fieldCodes:h,...C}=b;return C};return{mode:s.mode,submission:{kind:"named-operation",...E?{create:f(E)}:{},...N?{existing:f(N)}:{},context:T}}}function ks(e,t){let o=O(e,t);R(o,["desktop","mobile"],t);let n=P(o.desktop,`${t}/desktop`),i=P(o.mobile,`${t}/mobile`);return n===i&&m("NATIVE_WORKFLOW_DETAIL_ROUTE_DUPLICATE",t),{desktop:n,mobile:i}}function Uc(e,t){let o=new Set(t.map(p=>p.code)),n=new Map;e.data.resources.forEach((p,d)=>{let u=`/config/data/resources/${d}`,g=O(p,u);if(g.recordDeletion!==void 0){let N=`${u}/recordDeletion/delete`;for(let y of g.recordDeletion.delete)fe(y,N,e.appCode),o.has(y)||m("NATIVE_CAPABILITY_REFERENCE_MISSING",N)}if(g.recordComments!==void 0)for(let N of["read","create"]){let y=`${u}/recordComments/${N}`;for(let _ of g.recordComments[N])fe(_,y,e.appCode),o.has(_)||m("NATIVE_CAPABILITY_REFERENCE_MISSING",y)}if(g.recordPrint!==void 0){let N=`${u}/recordPrint/read`;for(let y of g.recordPrint.read)fe(y,N,e.appCode),o.has(y)||m("NATIVE_CAPABILITY_REFERENCE_MISSING",N)}if(g.workflowHistory!==void 0){let N=`${u}/workflowHistory/read`;for(let y of g.workflowHistory.read)fe(y,N,e.appCode),o.has(y)||m("NATIVE_CAPABILITY_REFERENCE_MISSING",N)}for(let[N,y]of Object.entries(g.fieldPolicies||{})){if(!ze(N))continue;let _=`${u}/fieldPolicies/${N}/read`,A=O(y,`${u}/fieldPolicies/${N}`);for(let T of F(A.read||[],_,2e3))o.has(T)||m("NATIVE_CAPABILITY_REFERENCE_MISSING",_)}let I=g.surface===void 0?{}:O(g.surface,`${u}/surface`);if(["native","queued-command"].includes(I.mutationOwner||"native"))return;let E=O(g.capabilities,`${u}/capabilities`);for(let N of["create","update","delete"])N==="delete"&&Array.isArray(g.recordDeletion?.delete)&&g.recordDeletion.delete.length>0||n.set(String(E[N]),N)});let i=new Set;for(let[p,d]of e.authz.roles.entries()){let u=`/config/authz/roles/${p}`,g=O(d,u);R(g,["code","name","description","capabilities"],u,!0);let I=P(g.code,`${u}/code`);i.has(I)&&m("NATIVE_ROLE_DUPLICATE",`${u}/code`),i.add(I),S(g.name,`${u}/name`,255);let E=F(g.capabilities,`${u}/capabilities`,2e3);for(let[N,y]of E.entries())n.has(y)&&m("NATIVE_DATA_SURFACE_MUTATION_GRANT_FORBIDDEN",`${u}/capabilities/${N}`,{operation:n.get(y)}),o.has(y)||m("NATIVE_CAPABILITY_REFERENCE_MISSING",`${u}/capabilities`)}let s=e.authz.authenticatedUserRoleCode===void 0?"":P(e.authz.authenticatedUserRoleCode,"/config/authz/authenticatedUserRoleCode");s&&!i.has(s)&&m("NATIVE_AUTHENTICATED_USER_ROLE_REFERENCE_MISSING","/config/authz/authenticatedUserRoleCode");let a=new Set,r=0;for(let[p,d]of e.perspectives.entries()){let u=`/config/perspectives/${p}`,g=O(d,u);R(g,["code","name","description","roleCodes","capabilityCodes","default"],u,!0);let I=P(g.code,`${u}/code`);a.has(I)&&m("NATIVE_PERSPECTIVE_DUPLICATE",`${u}/code`),a.add(I),S(g.name,`${u}/name`,255);let E=F(g.roleCodes,`${u}/roleCodes`,20);E.length<1&&m("NATIVE_PERSPECTIVE_ROLE_REQUIRED",`${u}/roleCodes`),E.forEach((_,A)=>{i.has(_)||m("NATIVE_PERSPECTIVE_ROLE_MISSING",`${u}/roleCodes/${A}`)});let N=M(e.authz.roles.filter(_=>E.includes(_.code)).flatMap(_=>_.capabilities)),y=F(g.capabilityCodes,`${u}/capabilityCodes`,2e3);ne(N)!==ne(y)&&m("NATIVE_PERSPECTIVE_CAPABILITY_PROJECTION_MISMATCH",`${u}/capabilityCodes`),g.default===!0?r+=1:g.default!==void 0&&m("NATIVE_PERSPECTIVE_DEFAULT_INVALID",`${u}/default`)}r>1&&m("NATIVE_PERSPECTIVE_DEFAULT_DUPLICATE","/config/perspectives");for(let[p,d]of e.backend.operations.entries()){let u=O(d,`/config/backend/operations/${p}`);o.has(u.capability)||m("NATIVE_CAPABILITY_REFERENCE_MISSING",`/config/backend/operations/${p}/capability`)}let c=new Set,l=new Set;for(let[p,d]of e.frontend.routes.entries()){let u=`/config/frontend/routes/${p}`,g=O(d,u),I=P(g.code,`${u}/code`);c.has(I)&&m("NATIVE_ROUTE_DUPLICATE",`${u}/code`),c.add(I);let E=ye(g.path,`${u}/path`);l.has(E)&&m("NATIVE_ROUTE_PATH_DUPLICATE",`${u}/path`),l.add(E);let N=Uo(g,u,e.appCode);N.capability&&!o.has(N.capability)&&m("NATIVE_CAPABILITY_REFERENCE_MISSING",`${u}/capability`);let y=g.access===void 0?void 0:O(g.access,`${u}/access`);for(let _ of["allOf","anyOf"]){let A=y?.[_]===void 0?[]:w(y[_],`${u}/access/${_}`,50);for(let[T,f]of A.entries()){let b=fe(f,`${u}/access/${_}/${T}`,e.appCode);o.has(b)||m("NATIVE_CAPABILITY_REFERENCE_MISSING",`${u}/access/${_}/${T}`)}}}if(e.frontend.admin.access!==void 0){let p=Rn(e.frontend.admin.access,"/config/frontend/admin/access",e.appCode);for(let d of["allOf","anyOf"])for(let[u,g]of(p[d]||[]).entries())o.has(g)||m("NATIVE_CAPABILITY_REFERENCE_MISSING",`/config/frontend/admin/access/${d}/${u}`)}for(let[p,d]of e.frontend.routes.entries()){let u=O(d,`/config/frontend/routes/${p}`);u.parentCode&&!c.has(u.parentCode)&&m("NATIVE_ROUTE_PARENT_MISSING",`/config/frontend/routes/${p}/parentCode`)}}function Mc(e){let t=new Set(e.authz.roles.map(l=>String(l.code))),o=e.authz.authenticatedUserRoleCode===void 0?"":P(e.authz.authenticatedUserRoleCode,"/config/authz/authenticatedUserRoleCode"),n=new Map(e.authz.scopeDimensions.map(l=>[String(l.code),{valueType:l.valueType==="uuid"?"uuid":"string",...l.valueSource?.resourceCode?{valueSourceResourceCode:String(l.valueSource.resourceCode)}:{}}])),i=new Set(n.keys()),s=new Map(e.data.resources.map((l,p)=>{let d=Be(l,`/config/data/resources/${p}`,e.appCode);return[d.code,new Map(d.schema.fields.map(u=>[String(u.code),u]))]}));for(let[l,p]of e.authz.scopeDimensions.entries()){let d=`/config/authz/scopeDimensions/${l}`,u=O(p,d);if(R(u,["code","name","resourceCode","valueType","hierarchyMode","valueSource"],d,!0),u.valueSource===void 0)continue;let g=O(u.valueSource,`${d}/valueSource`);R(g,["kind","resourceCode","labelField","enabledField"],`${d}/valueSource`,!0),g.kind!=="native_resource"&&m("NATIVE_SCOPE_VALUE_SOURCE_KIND_INVALID",`${d}/valueSource/kind`),u.valueType!=="uuid"&&m("NATIVE_SCOPE_VALUE_SOURCE_TYPE_INVALID",`${d}/valueType`);let I=G(g.resourceCode,`${d}/valueSource/resourceCode`),E=s.get(I);E||m("NATIVE_SCOPE_VALUE_SOURCE_RESOURCE_MISSING",`${d}/valueSource/resourceCode`);let N=K(g.labelField,`${d}/valueSource/labelField`);if(["text.short","text.long"].includes(String(E.get(N)?.type||""))||m("NATIVE_SCOPE_VALUE_SOURCE_LABEL_FIELD_INVALID",`${d}/valueSource/labelField`),g.enabledField!==void 0){let y=K(g.enabledField,`${d}/valueSource/enabledField`);E.get(y)?.type!=="boolean"&&m("NATIVE_SCOPE_VALUE_SOURCE_ENABLED_FIELD_INVALID",`${d}/valueSource/enabledField`)}}let a=new Set,r=new Set;for(let[l,p]of e.authz.scopeSources.entries()){let d=`/config/authz/scopeSources/${l}`,u=O(p,d);R(u,["code","name","resourceCode","subject","grants","operationField","enabledField","effectiveFromField","effectiveToField","failureMode"],d,!0);let g=P(u.code,`${d}/code`);a.has(g)&&m("NATIVE_SCOPE_SOURCE_DUPLICATE",`${d}/code`),a.add(g),S(u.name,`${d}/name`,255);let I=G(u.resourceCode,`${d}/resourceCode`),E=s.get(I);E||m("NATIVE_SCOPE_SOURCE_RESOURCE_MISSING",`${d}/resourceCode`);let N=O(u.subject,`${d}/subject`),y=S(N.type,`${d}/subject/type`,32);R(N,y==="role_membership"?["type","userIdField","roleCode"]:["type","userIdField"],`${d}/subject`),["user","role_membership"].includes(y)||m("NATIVE_SCOPE_SOURCE_SUBJECT_INVALID",`${d}/subject/type`);let _=Ze(N.userIdField,E);tn(_)||m("NATIVE_SCOPE_SOURCE_SUBJECT_PATH_INVALID",`${d}/subject/userIdField`),y==="role_membership"&&!t.has(String(N.roleCode))&&m("NATIVE_ROLE_REFERENCE_MISSING",`${d}/subject/roleCode`);let A=new Set;for(let[T,f]of w(u.grants,`${d}/grants`,100).entries()){let b=`${d}/grants/${T}`,h=O(f,b);R(h,["dimensionCode","valueField","parentValueField"],b,!0);let C=P(h.dimensionCode,`${b}/dimensionCode`);(!i.has(C)||A.has(C))&&m("NATIVE_SCOPE_SOURCE_DIMENSION_INVALID",`${b}/dimensionCode`),A.add(C),u.failureMode==="last_known_good"&&r.add(C);for(let $ of["valueField","parentValueField"]){if(h[$]===void 0)continue;let k=Ze(h[$],E);ro(k,n.get(C),s)||m("NATIVE_SCOPE_SOURCE_GRANT_PATH_INVALID",`${b}/${$}`)}}A.size===0&&m("NATIVE_SCOPE_SOURCE_GRANT_REQUIRED",`${d}/grants`),["strict","last_known_good"].includes(u.failureMode)||m("NATIVE_SCOPE_SOURCE_FAILURE_MODE_INVALID",`${d}/failureMode`);for(let T of["operationField","enabledField","effectiveFromField","effectiveToField"]){if(u[T]===void 0)continue;let f=K(u[T],`${d}/${T}`);E.has(f)||m("NATIVE_SCOPE_SOURCE_FIELD_MISSING",`${d}/${T}`)}}Kc(e,t,s,o);let c=new Set;for(let[l,p]of e.authz.dataPolicies.entries()){let d=`/config/authz/dataPolicies/${l}`,u=O(p,d);R(u,["code","name","resourceCode","unrestrictedRoleCodes","operations","matchMode","rules","readExpression","writeBoundary"],d,!0);let g=P(u.code,`${d}/code`);c.has(g)&&m("NATIVE_DATA_POLICY_DUPLICATE",`${d}/code`),c.add(g);let I=u.readExpression!==void 0,E=F(u.operations||[],`${d}/operations`,4);u.operations!==void 0&&(E.length===0||E.some(f=>!["read","create","update","delete"].includes(f)))&&m("NATIVE_DATA_POLICY_OPERATIONS_INVALID",`${d}/operations`),["AND","OR"].includes(u.matchMode)||m("NATIVE_DATA_POLICY_MATCH_MODE_INVALID",`${d}/matchMode`),I&&u.operations!==void 0&&m("NATIVE_DATA_POLICY_READ_EXPRESSION_OPERATIONS_FORBIDDEN",`${d}/operations`);let N=e.data.resources.find(f=>f.dataPolicyCode===g),y=u.resourceCode||N?.code,_=y?s.get(G(y,`${d}/resourceCode`)):void 0;I&&!_&&m("NATIVE_DATA_POLICY_RESOURCE_MISSING",`${d}/resourceCode`);let A=F(u.unrestrictedRoleCodes||[],`${d}/unrestrictedRoleCodes`,100);u.unrestrictedRoleCodes!==void 0&&A.length===0&&m("NATIVE_DATA_POLICY_UNRESTRICTED_ROLES_INVALID",`${d}/unrestrictedRoleCodes`);for(let f of A)t.has(f)||m("NATIVE_ROLE_REFERENCE_MISSING",`${d}/unrestrictedRoleCodes`);let T;try{let f=w(u.rules,`${d}/rules`,100).map((b,h)=>({rule:O(b,`${d}/rules/${h}`),pointer:`${d}/rules/${h}`}));f.length===0?(!I||u.matchMode!=="AND"||u.writeBoundary!=="capability_only")&&m("NATIVE_DATA_POLICY_WRITE_BOUNDARY_REQUIRED",d):u.writeBoundary!==void 0&&m("NATIVE_DATA_POLICY_WRITE_BOUNDARY_INVALID",`${d}/writeBoundary`),T=[...f],I&&(T.push(...$t(u.readExpression,`${d}/readExpression`)),Po(u.readExpression,`${d}/readExpression`))}catch(f){throw f instanceof at&&m(f.code,f.pointer),f}for(let{rule:f,pointer:b}of T){R(f,["subject","dimensionCode","relationCode","resourceCode","field","roleCodes","operation","valuePath","emptyMatchesAll","operator","value","operand"],b,!0);let h=K(f.field,`${b}/field`),C=_?.get(h);I&&!C&&m("NATIVE_DATA_POLICY_FIELD_MISSING",`${b}/field`);for(let H of F(f.roleCodes||[],`${b}/roleCodes`,100))t.has(H)||m("NATIVE_ROLE_REFERENCE_MISSING",`${b}/roleCodes`);let $=String(f.operator||""),k=f.operand==="db_now",W=["is_null","is_not_null"].includes($),v=["eq","not_eq","in","not_in"].includes($),Y=!k&&(f.operator!==void 0||f.value!==void 0);if([f.subject==="current_user"?"current_user":"",typeof f.dimensionCode=="string"?"dimension":"",typeof f.relationCode=="string"?"relationship":"",Y?"constant":"",k?"db_now":""].filter(Boolean).length!==1&&m("NATIVE_DATA_POLICY_RULE_SOURCE_INVALID",b),f.subject!==void 0&&f.subject!=="current_user"&&m("NATIVE_DATA_POLICY_SUBJECT_INVALID",`${b}/subject`),Y){if(!v&&!W&&m("NATIVE_DATA_POLICY_OPERATOR_INVALID",`${b}/operator`),["in","not_in"].includes($)){let H=w(f.value,`${b}/value`,100).map((he,le)=>S(he,`${b}/value/${le}`,2048));(H.length===0||new Set(H).size!==H.length)&&m("NATIVE_DATA_POLICY_VALUE_INVALID",`${b}/value`)}else["eq","not_eq"].includes($)?S(f.value,`${b}/value`,2048):(f.value!==void 0||f.operand!==void 0)&&m("NATIVE_DATA_POLICY_VALUE_INVALID",`${b}/value`);for(let H of["operation","valuePath","emptyMatchesAll","resourceCode","operand"])f[H]!==void 0&&m("NATIVE_DATA_POLICY_CONSTANT_RULE_INVALID",`${b}/${H}`)}if(k){(!["lt","lte","gt","gte"].includes($)||f.value!==void 0||C?.type!=="datetime")&&m("NATIVE_DATA_POLICY_DB_NOW_INVALID",b);for(let H of["operation","valuePath","emptyMatchesAll","resourceCode","value"])f[H]!==void 0&&m("NATIVE_DATA_POLICY_DB_NOW_INVALID",`${b}/${H}`)}f.dimensionCode&&!i.has(f.dimensionCode)&&m("NATIVE_SCOPE_DIMENSION_MISSING",`${b}/dimensionCode`),r.has(String(f.dimensionCode||""))&&f.operation!=="read"&&m("NATIVE_SCOPE_SOURCE_LAST_KNOWN_GOOD_UNSAFE",`${b}/operation`)}}for(let[l,p]of e.data.resources.entries()){let d=O(p,`/config/data/resources/${l}`);d.dataPolicyCode&&!c.has(d.dataPolicyCode)&&m("NATIVE_DATA_POLICY_REFERENCE_MISSING",`/config/data/resources/${l}/dataPolicyCode`)}}function Bc(e){try{Wn(e.data.resources,"/config/data/resources"),e.data.resources.forEach((t,o)=>Pn(t.schema.fields,new Set(e.authz.roles.map(n=>n.code)),new Set(e.authz.scopeDimensions.map(n=>n.code)),`/config/data/resources/${o}/schema/fields`))}catch(t){throw(t instanceof Ae||t instanceof Ve)&&m(t.code,t.pointer),t}}function Kc(e,t,o,n){let i=new Set;for(let[s,a]of e.authz.roleMembershipSources.entries()){let r=`/config/authz/roleMembershipSources/${s}`,c=O(a,r);R(c,["code","name","resourceCode","userIdField","roleCode","enabledField","effectiveFromField","effectiveToField","failureMode"],r,!0);let l=P(c.code,`${r}/code`);l.length>100&&m("NATIVE_AUTHORIZATION_PROJECTION_SOURCE_CODE_INVALID",`${r}/code`),i.has(l)&&m("NATIVE_AUTHORIZATION_PROJECTION_SOURCE_DUPLICATE",`${r}/code`),i.add(l),S(c.name,`${r}/name`,255);let p=ls(c.resourceCode,`${r}/resourceCode`,o);us(c.userIdField,`${r}/userIdField`,p),t.has(String(c.roleCode||""))||m("NATIVE_ROLE_REFERENCE_MISSING",`${r}/roleCode`),n&&c.roleCode===n&&m("NATIVE_AUTHENTICATED_USER_ROLE_SOURCE_CONFLICT",`${r}/roleCode`),fs(c,r,p)}for(let[s,a]of e.authz.relationshipGrantSources.entries()){let r=`/config/authz/relationshipGrantSources/${s}`,c=O(a,r);R(c,["code","name","resourceCode","subject","relationCode","targetResourceCode","resourceIdField","operations","enabledField","effectiveFromField","effectiveToField","failureMode"],r,!0);let l=P(c.code,`${r}/code`);l.length>100&&m("NATIVE_AUTHORIZATION_PROJECTION_SOURCE_CODE_INVALID",`${r}/code`),i.has(l)&&m("NATIVE_AUTHORIZATION_PROJECTION_SOURCE_DUPLICATE",`${r}/code`),i.add(l),S(c.name,`${r}/name`,255);let p=ls(c.resourceCode,`${r}/resourceCode`,o),d=O(c.subject,`${r}/subject`),u=S(d.type,`${r}/subject/type`,32);R(d,u==="role_membership"?["type","userIdField","roleCode"]:["type","userIdField"],`${r}/subject`),["user","role_membership"].includes(u)||m("NATIVE_AUTHORIZATION_PROJECTION_SUBJECT_INVALID",`${r}/subject/type`),us(d.userIdField,`${r}/subject/userIdField`,p),u==="role_membership"&&!t.has(String(d.roleCode||""))&&m("NATIVE_ROLE_REFERENCE_MISSING",`${r}/subject/roleCode`),P(c.relationCode,`${r}/relationCode`);let g=G(c.targetResourceCode,`${r}/targetResourceCode`);o.has(g)||m("NATIVE_AUTHORIZATION_PROJECTION_TARGET_RESOURCE_MISSING",`${r}/targetResourceCode`);let I=Ze(c.resourceIdField,p),E=I?.field.type==="resource-ref.single"&&I.valuePath==="value"&&I.field.source?.resourceCode===g;(c.resourceIdField==="id"?g!==String(c.resourceCode):!E)&&m("NATIVE_AUTHORIZATION_PROJECTION_RESOURCE_ID_FIELD_INVALID",`${r}/resourceIdField`);let N=F(c.operations,`${r}/operations`,20);(N.length===0||N.some(y=>y.length>64||!/^[A-Za-z0-9][A-Za-z0-9:._*-]{0,63}$/.test(y)))&&m("NATIVE_AUTHORIZATION_PROJECTION_OPERATIONS_INVALID",`${r}/operations`),fs(c,r,p)}}function ls(e,t,o){let n=G(e,t),i=o.get(n);return i||m("NATIVE_AUTHORIZATION_PROJECTION_RESOURCE_MISSING",t),i}function us(e,t,o){let n=Ze(e,o);tn(n)||m("NATIVE_AUTHORIZATION_PROJECTION_USER_FIELD_INVALID",t)}function fs(e,t,o){if(e.failureMode!=="strict"&&m("NATIVE_AUTHORIZATION_PROJECTION_FAILURE_MODE_INVALID",`${t}/failureMode`),e.enabledField!==void 0){let n=K(e.enabledField,`${t}/enabledField`);o.get(n)?.type!=="boolean"&&m("NATIVE_AUTHORIZATION_PROJECTION_ENABLED_FIELD_INVALID",`${t}/enabledField`)}for(let n of["effectiveFromField","effectiveToField"]){if(e[n]===void 0)continue;let i=K(e[n],`${t}/${n}`);["date","datetime"].includes(String(o.get(i)?.type))||m("NATIVE_AUTHORIZATION_PROJECTION_EFFECTIVE_FIELD_INVALID",`${t}/${n}`)}}function qc(e){let t=new Set,o=new Set;e.forEach((n,i)=>{let s=`/config/backend/secrets/${i}`,a=O(n,s);R(a,["name","env","description","required","exposure"],s,!0);let r=S(a.name,`${s}/name`,128),c=S(a.env,`${s}/env`,128);qa.test(r)||m("NATIVE_SECRET_NAME_INVALID",`${s}/name`),(!Ja.test(c)||c.startsWith("OPENXIANGDA_")||["NODE_ENV","PORT"].includes(c))&&m("NATIVE_SECRET_ENV_INVALID",`${s}/env`),t.has(r)&&m("NATIVE_SECRET_NAME_DUPLICATE",`${s}/name`),o.has(c)&&m("NATIVE_SECRET_ENV_DUPLICATE",`${s}/env`),t.add(r),o.add(c),x(a.exposure,"active_only",`${s}/exposure`),a.required!==void 0&&lt(a.required,`${s}/required`),a.description!==void 0&&Mo(a.description,`${s}/description`,2e3)})}function Jc(e){let t=new Set,o=new Map,n=new Map(e.data.resources.map(g=>[String(g.code),g])),i=new Map(e.frontend.routes.map((g,I)=>{let E=O(g,`/config/frontend/routes/${I}`);return[P(E.code,`/config/frontend/routes/${I}/code`),E]}));for(let[g,I]of e.workflows.definitions.entries()){let E=`/config/workflows/definitions/${g}`,N=O(I,E);if(R(N,["version","definition","launch"],E,["detailRouteCode"]),$s(N.launch,`${E}/launch`),N.detailRouteCode!==void 0){let h=ks(N.detailRouteCode,`${E}/detailRouteCode`);for(let[C,$,k]of[["desktop",h.desktop,["admin","user"]],["mobile",h.mobile,["user"]]]){let W=`${E}/detailRouteCode/${C}`,v=i.get($);v||m("NATIVE_WORKFLOW_DETAIL_ROUTE_MISSING",W),k.some(H=>H===v.surface)||m("NATIVE_WORKFLOW_DETAIL_ROUTE_SURFACE_INVALID",W);let Y=ye(v.path,W),te=[...Y.matchAll(/:([A-Za-z][A-Za-z0-9_]*)/g)].map(H=>H[1]);(Y.includes("*")||te.length!==1||te[0]!=="instanceId")&&m("NATIVE_WORKFLOW_DETAIL_ROUTE_PATH_INVALID",W)}}let y=O(N.definition,`${E}/definition`),_=`${y.code}:${dt(N.version,`${E}/version`)}`;t.has(_)&&m("NATIVE_WORKFLOW_DEFINITION_DUPLICATE",E),t.add(_),zc(y,`${E}/definition`);let A=_n(y);A.length&&m(A[0],`${E}/definition/launchPreflight`);let T=Co(y,e.backend.operations);T.length&&m(T[0],`${E}/definition/commandHandlers`),Gc(y.subject,n,`${E}/definition/subject`);let f=Rt(y,new Map((n.get(y.subject.resourceCode)?.schema.fields||[]).map(h=>[h.code,{...n.get(y.subject.resourceCode)?.surface?.fields?.[h.code],...h,system:["id","revision","createdAt","updatedAt","createdBy","updatedBy"].includes(h.code)}])),new Map([...n].map(([h,C])=>[h,new Map(C.schema.fields.map($=>[$.code,{...C.surface?.fields?.[$.code],...$,system:["id","revision","createdAt","updatedAt","createdBy","updatedBy"].includes($.code)}]))])));f.length&&m(f[0],`${E}/definition/taskPages`);let b=mo(y,{appCode:e.appCode,capabilities:e.authz.capabilities.map(h=>h.code),fields:new Map((n.get(y.subject.resourceCode)?.schema.fields||[]).map(h=>[h.code,h]))});b.length&&m("NATIVE_WORKFLOW_INSTANCE_COMMAND_POLICY_INVALID",`${E}/definition/instanceCommands`,{errors:b}),y.title===y.code&&m("NATIVE_WORKFLOW_USER_TITLE_REQUIRED",`${E}/definition/title`),o.set(_,y)}let s=new Set,a=new Map;for(let[g,I]of e.workflows.bindings.entries()){let E=O(I,`/config/workflows/bindings/${g}`),N=O(E.binding,`/config/workflows/bindings/${g}/binding`),y=`${N.workflowCode}:${dt(E.version,`/config/workflows/bindings/${g}/version`)}`;s.has(y)&&m("NATIVE_WORKFLOW_BINDING_DUPLICATE",`/config/workflows/bindings/${g}`),s.add(y),Hc(N,`/config/workflows/bindings/${g}/binding`),a.set(y,N)}let r=new Set,c=new Map;for(let[g,I]of e.workflows.activations.entries()){let E=`/config/workflows/activations/${g}`,N=O(I,E);R(N,["workflowCode","definitionVersion","bindingVersion","acceptedCommandDeactivationPolicy"],E,["environmentKey"]);let y=P(N.workflowCode,`${E}/workflowCode`);r.has(y)&&m("NATIVE_WORKFLOW_ACTIVATION_DUPLICATE",E),r.add(y);let _=`${y}:${dt(N.definitionVersion,`${E}/definitionVersion`)}`,A=`${y}:${dt(N.bindingVersion,`${E}/bindingVersion`)}`;t.has(_)||m("NATIVE_WORKFLOW_DEFINITION_REFERENCE_MISSING",`${E}/definitionVersion`),s.has(A)||m("NATIVE_WORKFLOW_BINDING_REFERENCE_MISSING",`${E}/bindingVersion`);let T=o.get(_),f=a.get(A),b=_n(T,f);b.length&&m(b[0],E);let h=fn(T,f);h.length&&m(h[0],E),(!["finish-pinned","cancel-on-deactivate"].includes(N.acceptedCommandDeactivationPolicy)||N.acceptedCommandDeactivationPolicy!==T.acceptedCommandDeactivationPolicy)&&m("NATIVE_WORKFLOW_COMMAND_DEACTIVATION_POLICY_MISMATCH",`${E}/acceptedCommandDeactivationPolicy`),Yc(T,f,`/config/workflows/activations/${g}`);try{let C=n.get(T.subject.resourceCode)?.schema.fields||[];Fn(T,f,new Map(C.map($=>[$.code,$])),`${E}/bindings`,new Map([...n].map(([$,k])=>[$,new Map(k.schema.fields.map(W=>[W.code,W]))])))}catch(C){throw C instanceof Ve&&m(C.code,C.pointer),C}c.set(y,f)}let l=ko([...c.values()]);l.length&&m(l[0],"/config/workflows/activations");let p=new Set;e.workflows.providers.forEach((g,I)=>{let E=`/config/workflows/providers/${I}`,N=O(g,E);R(N,["code","endpointPath","timeoutMs"],E,!0);let y=P(N.code,`${E}/code`);p.has(y)&&m("NATIVE_WORKFLOW_PROVIDER_DUPLICATE",`${E}/code`),p.add(y),ye(N.endpointPath,`${E}/endpointPath`),N.timeoutMs!==void 0&&se(N.timeoutMs,`${E}/timeoutMs`,100,1e4)});for(let[g,I]of c.entries())for(let[E,N]of Object.entries(O(I.bindings,"/config/workflows/bindings/*/binding/bindings"))){let y=O(N,`/config/workflows/${g}/bindings/${E}`);y.provider==="application_provider"&&!p.has(y.providerCode)&&m("NATIVE_WORKFLOW_PROVIDER_REFERENCE_MISSING",`/config/workflows/${g}/bindings/${E}/providerCode`)}let d=new Set(e.authz.roles.map(g=>g.code)),u=new Set;e.workflows.editableParameters.forEach((g,I)=>{let E=`/config/workflows/editableParameters/${I}`,N=O(g,E);R(N,["code","workflowCode","bindingKey","label","valueType","required","allowedRoleCodes","allowedProviderCodes","maxItems"],E,!0);let y=P(N.code,`${E}/code`);u.has(y)&&m("NATIVE_WORKFLOW_EDITABLE_PARAMETER_DUPLICATE",`${E}/code`),u.add(y);let _=Cn(N.workflowCode,`${E}/workflowCode`),A=On(N.bindingKey,`${E}/bindingKey`),T=c.get(_);(!T||!O(T.bindings,`${E}/bindingKey`)[A])&&m("NATIVE_WORKFLOW_EDITABLE_BINDING_MISSING",`${E}/bindingKey`),S(N.label,`${E}/label`,255),["role_code","user_ids","provider_code"].includes(N.valueType)||m("NATIVE_WORKFLOW_EDITABLE_VALUE_TYPE_INVALID",`${E}/valueType`);for(let f of F(N.allowedRoleCodes||[],`${E}/allowedRoleCodes`,100))d.has(f)||m("NATIVE_ROLE_REFERENCE_MISSING",`${E}/allowedRoleCodes`);for(let f of F(N.allowedProviderCodes||[],`${E}/allowedProviderCodes`,100))p.has(f)||m("NATIVE_WORKFLOW_PROVIDER_REFERENCE_MISSING",`${E}/allowedProviderCodes`);N.required!==void 0&&lt(N.required,`${E}/required`),N.maxItems!==void 0&&se(N.maxItems,`${E}/maxItems`,1,200)})}function Gc(e,t,o){let n=O(e,o);R(n,["resourceCode","factProjection"],o,["summaryFields"]);let i=G(n.resourceCode,`${o}/resourceCode`),s=t.get(i);s||m("NATIVE_WORKFLOW_SUBJECT_RESOURCE_MISSING",`${o}/resourceCode`);let a=new Set(w(O(s.schema,`${o}/resourceCode`).fields,`${o}/resourceCode`,500).map((l,p)=>K(O(l,`${o}/resourceCode/${p}`).code,`${o}/resourceCode/${p}`))),r=O(n.factProjection,`${o}/factProjection`),c=Object.entries(r);(c.length<1||c.length>64)&&m("NATIVE_WORKFLOW_SUBJECT_FACT_PROJECTION_INVALID",`${o}/factProjection`);for(let[l,p]of c){Ha.test(l)||m("NATIVE_WORKFLOW_SUBJECT_FACT_KEY_INVALID",`${o}/factProjection/${l}`);let d=K(p,`${o}/factProjection/${l}`);a.has(d)||m("NATIVE_WORKFLOW_SUBJECT_FIELD_MISSING",`${o}/factProjection/${l}`)}if(n.summaryFields!==void 0){let l=F(n.summaryFields,`${o}/summaryFields`,Ya).map((I,E)=>K(I,`${o}/summaryFields/${E}`)),p=t.get(i),d=p.surface&&typeof p.surface=="object"&&!Array.isArray(p.surface)?p.surface:{},u=d.fields&&typeof d.fields=="object"&&!Array.isArray(d.fields)?d.fields:{},g=new Map(w(O(p.schema,`${o}/resourceCode`).fields,`${o}/resourceCode`,500).map((I,E)=>{let N=O(I,`${o}/resourceCode/${E}`);return[String(N.code),N]}));for(let[I,E]of l.entries()){let N=g.get(E),y=u[E],_=String(N?.type||""),A=N?.maxLength;(!N||N.system===!0||y&&typeof y=="object"&&!Array.isArray(y)&&y.system===!0||["id","revision","created_by","updated_by","created_at","updated_at"].includes(E)||!Qa.has(_)||_==="text.long"&&typeof A=="number"&&Number.isFinite(A)&&A>Xa)&&m("NATIVE_WORKFLOW_SUBJECT_SUMMARY_FIELDS_INVALID",`${o}/summaryFields/${I}`)}}}function zc(e,t){R(e,["schemaVersion","code","title","subject","acceptedCommandDeactivationPolicy","startAt","inputSchema","nodes"],t,["organizationContext","instanceCommands","readability","taskPages","rejectionNotification","commandHandlers","launchPreflight"]),x(e.schemaVersion,"openxiangda.workflow-definition/v2",`${t}/schemaVersion`),Cn(e.code,`${t}/code`),S(e.title,`${t}/title`,255),["finish-pinned","cancel-on-deactivate"].includes(e.acceptedCommandDeactivationPolicy)||m("NATIVE_WORKFLOW_COMMAND_DEACTIVATION_POLICY_REQUIRED",`${t}/acceptedCommandDeactivationPolicy`);let o=O(e.nodes,`${t}/nodes`),n=Object.keys(o);(n.length===0||n.length>200)&&m("NATIVE_WORKFLOW_NODE_COUNT_INVALID",`${t}/nodes`);let i=S(e.startAt,`${t}/startAt`,128),s=No(e);s.length&&m(s[0],`${t}/readability`);let a=fn(e);a.length&&m(a[0],`${t}/nodes`);let r=mn(e);r.length&&m(r[0],`${t}/nodes`);let c=ot(e);c.length&&m(c[0],`${t}/nodes`);let l=Ro(e);l.length&&m(l[0],`${t}/rejectionNotification`);let p=pn(e);p.length&&m(p[0],`${t}/nodes`);let d=Rt(e);d.length&&m(d[0],`${t}/taskPages`);let u=bt(e);u.length&&m(u[0],`${t}/nodes`),o[i]||m("NATIVE_WORKFLOW_START_NODE_MISSING",`${t}/startAt`);let g=new Map;for(let[y,_]of Object.entries(o)){let A=`${t}/nodes/${y}`,T=O(_,A);x(T.id,y,`${A}/id`),["approval","condition","end","cc","action"].includes(T.kind)||m("NATIVE_WORKFLOW_NODE_KIND_INVALID",`${A}/kind`);let f=[];if(T.kind==="approval"){S(T.title,`${A}/title`,255),On(T.binding,`${A}/binding`),["single","any","all","sequence"].includes(T.mode)||m("NATIVE_WORKFLOW_APPROVAL_MODE_INVALID",`${A}/mode`),f.push(S(T.onApprove,`${A}/onApprove`,128),S(T.onReject,`${A}/onReject`,128));for(let b of F(T.returnTargets||[],`${A}/returnTargets`,200))o[b]||m("NATIVE_WORKFLOW_TARGET_MISSING",`${A}/returnTargets`);for(let b of F(T.allowedOperations||[],`${A}/allowedOperations`,20))ec.has(b)||m("NATIVE_WORKFLOW_OPERATION_INVALID",`${A}/allowedOperations`)}else if(T.kind==="action")f.push(S(T.next,`${A}/next`,128));else if(T.kind==="cc")S(T.title,`${A}/title`,255),On(T.binding,`${A}/binding`),f.push(S(T.next,`${A}/next`,128));else if(T.kind==="condition"){let b=w(T.branches,`${A}/branches`,100);b.length===0&&m("NATIVE_WORKFLOW_BRANCH_REQUIRED",`${A}/branches`),b.forEach((h,C)=>{let $=O(h,`${A}/branches/${C}`);kt($.when,`${A}/branches/${C}/when`,0),f.push(S($.target,`${A}/branches/${C}/target`,128))}),f.push(S(T.otherwise,`${A}/otherwise`,128))}else S(T.title,`${A}/title`,255),S(T.outcome,`${A}/outcome`,128);for(let b of f)o[b]||m("NATIVE_WORKFLOW_TARGET_MISSING",A);g.set(y,f)}let I=new Set,E=new Set,N=y=>{if(E.has(y)&&m("NATIVE_WORKFLOW_CYCLE_FORBIDDEN",`${t}/nodes/${y}`),!I.has(y)){I.add(y),E.add(y);for(let _ of g.get(y)||[])N(_);E.delete(y)}};N(i),I.size!==n.length&&m("NATIVE_WORKFLOW_NODE_UNREACHABLE",`${t}/nodes`)}function kt(e,t,o){o>20&&m("NATIVE_WORKFLOW_EXPRESSION_DEPTH_EXCEEDED",t);let n=O(e,t),i=S(n.op,`${t}/op`,16);if(i!=="literal"){if(i==="path"){let s=S(n.path,`${t}/path`,255);(!/^[A-Za-z][A-Za-z0-9_.-]{0,254}$/.test(s)||s.split(".").some(a=>["__proto__","constructor","prototype"].includes(a)))&&m("NATIVE_WORKFLOW_EXPRESSION_PATH_INVALID",`${t}/path`);return}if(["eq","neq","gt","gte","lt","lte","in","contains"].includes(i)){kt(n.left,`${t}/left`,o+1),kt(n.right,`${t}/right`,o+1);return}if(["and","or"].includes(i)){let s=w(n.values,`${t}/values`,100);s.length===0&&m("NATIVE_WORKFLOW_EXPRESSION_EMPTY",`${t}/values`),s.forEach((a,r)=>kt(a,`${t}/values/${r}`,o+1));return}if(["not","exists"].includes(i)){kt(n.value,`${t}/value`,o+1);return}m("NATIVE_WORKFLOW_EXPRESSION_OPERATOR_INVALID",`${t}/op`)}}function Hc(e,t){x(e.schemaVersion,"openxiangda.workflow-binding/v2",`${t}/schemaVersion`),Cn(e.workflowCode,`${t}/workflowCode`);let o=O(e.bindings,`${t}/bindings`);Object.keys(o).length>200&&m("NATIVE_WORKFLOW_BINDING_LIMIT_EXCEEDED",`${t}/bindings`);for(let[n,i]of Object.entries(o)){On(n,`${t}/bindings/${n}`);let s=O(i,`${t}/bindings/${n}`),a=S(s.provider,`${t}/bindings/${n}/provider`,64);if(["fixed_users","initiator","input_users","form_field_users","department_supervisor","app_role","app_role_in_scope","business_relation","previous_node_actor","initiator_select","application_provider"].includes(a)||m("NATIVE_WORKFLOW_BINDING_PROVIDER_INVALID",`${t}/bindings/${n}/provider`),a==="fixed_users"&&(Array.isArray(s.users)||m("NATIVE_WORKFLOW_BINDING_USERS_REQUIRED",`${t}/bindings/${n}/users`),w(s.users,`${t}/bindings/${n}/users`,200)),["input_users","form_field_users"].includes(a)&&S(s.inputPath,`${t}/bindings/${n}/inputPath`,255),["app_role","app_role_in_scope","initiator_select"].includes(a)&&P(s.roleCode,`${t}/bindings/${n}/roleCode`),a==="department_supervisor"&&S(s.departmentIdFrom,`${t}/bindings/${n}/departmentIdFrom`,255),a==="application_provider"&&P(s.providerCode,`${t}/bindings/${n}/providerCode`),s.routing!==void 0){let r=wt(s.routing);r.length&&m(r[0],`${t}/bindings/${n}/routing`)}}}function Yc(e,t,o){x(t.workflowCode,e.code,`${o}/workflowCode`);let n=O(t.bindings,`${o}/bindings`);for(let[r,c]of Object.entries(n))c.provider==="fixed_users"&&!c.users.length&&!To(e,r)&&m("NATIVE_WORKFLOW_BINDING_USERS_REQUIRED",`${o}/bindings/${r}/users`);let i=mn(e,t);i.length&&m(i[0],o);let s=pn(e,t);s.length&&m(s[0],o);let a=bt(e,t);a.length&&m(a[0],o);for(let[r,c]of Object.entries(O(e.nodes,`${o}/nodes`))){let l=O(c,`${o}/nodes/${r}`);["approval","cc"].includes(l.kind)&&!n[l.binding]&&m("NATIVE_WORKFLOW_BINDING_REFERENCE_MISSING",`${o}/nodes/${r}/binding`)}}function Xc(e,t,o){let n=O(t.routeManifest,"/contracts/routeManifest"),i=O(e.routeManifest,"/contracts/routeManifest"),s=new Map;for(let p of w(o.data?.resources,"/config/data/resources",100)){let d=O(p,"/config/data/resources");s.set(String(d.code||""),d)}let a=new Set(w(i.routes,"/contracts/routeManifest/routes",1e3).map(p=>String(O(p,"/contracts/routeManifest/routes").code||""))),r=[];for(let p of w(n.routes,"/contracts/routeManifest/routes",1e3)){let d=O(p,"/contracts/routeManifest/routes"),u=String(d.kind||"");if(u!=="resource-records"&&u!=="resource-submit")continue;let g=String(d.resourceCode||""),I=s.get(g);I||m("NATIVE_ROUTE_MANIFEST_RESOURCE_UNKNOWN","/contracts/routeManifest/routes");let N=`user.${g}.${u==="resource-records"?"records":"submit"}`;x(String(d.code||""),N,"/contracts/routeManifest/routes/code");let y=u==="resource-records"?"read":"create",_=String(O(I.capabilities,"/config/data/resources/capabilities")[y]||"");for(let A of["desktop","mobile"]){let T=O(d[A],`/contracts/routeManifest/routes/${A}`),f=A==="mobile"?"/m/my/":"/my/",b=u==="resource-records"?`${f}${g}`:`${f}${g}/submit`;x(String(T.path||""),b,`/contracts/routeManifest/routes/${A}/path`),x(String(T.capability||""),_,`/contracts/routeManifest/routes/${A}/capability`),x(String(T.routeCode||""),`${N}.${A}`,`/contracts/routeManifest/routes/${A}/routeCode`)}(a.has(N)||r.some(A=>String(A.code)===N))&&m("NATIVE_ROUTE_MANIFEST_DUPLICATE","/contracts/routeManifest/routes/code"),r.push(d)}if(!r.length)return;i.routes=w([...i.routes,...r],"/contracts/routeManifest/routes",1e3).sort((p,d)=>me(String(O(p,"x").code||""),String(O(d,"x").code||"")));let c=String(O(n.rootEntry,"x").code||"");if(r.find(p=>String(p.code)===c&&p.kind==="resource-records")){let p=O(n.rootEntry,"x");i.rootEntry={code:c,desktop:String(p.desktop||""),mobile:String(p.mobile||"")}}i.digest=Q({schemaVersion:i.schemaVersion,appCode:i.appCode,devicePolicy:i.devicePolicy,rootEntry:i.rootEntry,authentication:i.authentication,routes:i.routes})}function Be(e,t,o){let n=O(e,t);R(n,["schemaVersion","appCode","code","name","schema","surface","invariants","decimalReservationLifecycle","uniqueKeys","workflowHistory","recordPrint","recordComments","recordDeletion","capabilities","dataPolicyCode","fieldPolicies"],t,!0),x(n.schemaVersion,"openxiangda.data-resource/v2",`${t}/schemaVersion`),x(n.appCode,o,`${t}/appCode`);let i=G(n.code,`${t}/code`),s=S(n.name,`${t}/name`,255),a=O(n.schema,`${t}/schema`);R(a,["fields"],`${t}/schema`);let r,c,l,p;try{l=Xt(n.decimalReservationLifecycle,`${t}/decimalReservationLifecycle`),r=Mt(a.fields,`${t}/schema/fields`),p=lo(n.uniqueKeys,r,`${t}/uniqueKeys`),c=Un(n.invariants,r,`${t}/invariants`),Gt(n.surface,r,`${t}/surface`)}catch(I){throw(I instanceof Ae||I instanceof Ve||I instanceof xe||I instanceof et)&&m(I.code,I.pointer),I}if(n.recordComments!==void 0){let I=O(n.recordComments,`${t}/recordComments`);R(I,["read","create"],`${t}/recordComments`);for(let E of["read","create"]){let N=I[E];(!Array.isArray(N)||N.length>20||N.some(y=>typeof y!="string"||!y.trim())||new Set(N).size!==N.length)&&m("NATIVE_RECORD_COMMENTS_POLICY_INVALID",`${t}/recordComments/${E}`)}}if(n.recordDeletion!==void 0){let I=O(n.recordDeletion,`${t}/recordDeletion`);R(I,["delete"],`${t}/recordDeletion`);let E=I.delete;(!Array.isArray(E)||E.length>20||E.some(N=>typeof N!="string"||!N.trim())||new Set(E).size!==E.length)&&m("NATIVE_RECORD_DELETION_DELETE_INVALID",`${t}/recordDeletion/delete`)}if(n.recordPrint!==void 0){let I=O(n.recordPrint,`${t}/recordPrint`);R(I,["read"],`${t}/recordPrint`);let E=I.read;(!Array.isArray(E)||E.length>20||E.some(N=>typeof N!="string"||!N.trim())||new Set(E).size!==E.length)&&m("NATIVE_RECORD_PRINT_READ_INVALID",`${t}/recordPrint/read`)}if(n.workflowHistory!==void 0){let I=O(n.workflowHistory,`${t}/workflowHistory`);R(I,["read"],`${t}/workflowHistory`);let E=I.read;(!Array.isArray(E)||E.length>20||E.some(N=>typeof N!="string"||!N.trim())||new Set(E).size!==E.length)&&m("NATIVE_WORKFLOW_HISTORY_READ_INVALID",`${t}/workflowHistory/read`)}let d=new Set(r.map(I=>I.code)),u=O(n.capabilities,`${t}/capabilities`);R(u,["read","create","update","delete"],`${t}/capabilities`);let g=O(n.fieldPolicies,`${t}/fieldPolicies`);for(let[I,E]of Object.entries(g)){!d.has(I)&&!ze(I)&&m("NATIVE_DATA_FIELD_POLICY_FIELD_MISSING",`${t}/fieldPolicies/${I}`);let N=`${t}/fieldPolicies/${I}`,y=O(E,N);ze(I)&&(R(y,["read"],N,!0),(!Array.isArray(y.read)||y.read.length>20||y.read.some(_=>typeof _!="string"||!_.trim())||new Set(y.read).size!==y.read.length)&&m("NATIVE_DATA_AUDIT_READ_POLICY_INVALID",`${N}/read`)),R(y,["read","create","update","mask"],N,!0),y.mask!==void 0&&!["omit","null"].includes(y.mask)&&m("NATIVE_DATA_FIELD_POLICY_MASK_INVALID",`${N}/mask`)}return{...n,code:i,name:s,schema:{fields:r},...n.invariants===void 0?{}:{invariants:c},...l?{decimalReservationLifecycle:l}:{},...p!==void 0?{uniqueKeys:p}:{},capabilities:u,fieldPolicies:g}}function Vs(e){return[{code:`app:${e}:directory:read`,kind:"platform",name:"\u8BFB\u53D6\u53D7\u9650\u7EC4\u7EC7\u76EE\u5F55",source:"platform"},...[["app:role:read","\u67E5\u770B\u89D2\u8272\u4E0E\u6388\u6743"],["app:role:define","\u5B9A\u4E49\u624B\u5DE5\u89D2\u8272"],["app:role:assign","\u5206\u914D\u89D2\u8272\u6210\u5458"],["app:role:grant-capability","\u6388\u4E88\u89D2\u8272\u80FD\u529B"],["app:scope-grant:manage","\u7BA1\u7406\u6570\u636E\u8303\u56F4"],["app:super-admin:manage","\u7BA1\u7406\u5E94\u7528\u6700\u9AD8\u7BA1\u7406\u5458"]].map(([t,o])=>({code:t,kind:"platform",name:o,source:"platform"}))]}function ps(e,t,o,n){let i=e.toString("utf8"),s;try{s=JSON.parse(i)}catch{m(o,t)}let a=O(s,t);return ne(a)!==i&&m(n,t),a}function ms(e,t){let o=0,n=(i,s,a)=>{if(o+=1,o>ic&&m("NATIVE_ARTIFACT_NODE_LIMIT_EXCEEDED",s),a>oc&&m("NATIVE_ARTIFACT_DEPTH_LIMIT_EXCEEDED",s),typeof i=="string"){Buffer.byteLength(i)>vo&&m("NATIVE_ARTIFACT_STRING_LIMIT_EXCEEDED",s);return}if(Array.isArray(i)){i.forEach((r,c)=>n(r,`${s}/${c}`,a+1));return}if(!(!i||typeof i!="object"))for(let[r,c]of Object.entries(i))["__proto__","prototype","constructor"].includes(r)&&m("NATIVE_ARTIFACT_DANGEROUS_KEY",`${s}/${r}`),Qc(r)&&m("NATIVE_ARTIFACT_RUNTIME_FIELD_FORBIDDEN",`${s}/${r}`),n(c,`${s}/${r}`,a+1)};n(e,t,0)}function Qc(e){return["environmentKey","environmentId","secretValue","ciphertext","oauthClient","oauthClientId","oauthClientSecret","signingSecret","kubernetesNamespace","nodePort","productionUrl"].includes(e)}function ct(e){return{value:e,digest:Q(e)}}function _s(e,t,o,n){typeof e!="string"&&!Buffer.isBuffer(e)&&!(e instanceof Uint8Array)&&m("NATIVE_ARTIFACT_BYTES_REQUIRED",o);let i=Buffer.isBuffer(e)?e:Buffer.from(e);return i.byteLength===0&&m("NATIVE_ARTIFACT_EMPTY",o),i.byteLength>t&&m(n,o),i}function gs(e,t,o,n){let i=Tn.createHash("sha256").update(e).digest("hex");Tn.timingSafeEqual(Buffer.from(i),Buffer.from(t))||m(n,o)}function O(e,t){return(!e||typeof e!="object"||Array.isArray(e))&&m("NATIVE_OBJECT_REQUIRED",t),e}function w(e,t,o){return Array.isArray(e)||m("NATIVE_ARRAY_REQUIRED",t),e.length>o&&m("NATIVE_ARRAY_LIMIT_EXCEEDED",t),e}function F(e,t,o){let n=w(e,t,o).map((i,s)=>S(i,`${t}/${s}`,255));return new Set(n).size!==n.length&&m("NATIVE_ARRAY_DUPLICATE",t),n}function S(e,t,o){return(typeof e!="string"||e.length===0||e.length>o)&&m("NATIVE_STRING_INVALID",t),e}function Mo(e,t,o){return(typeof e!="string"||e.length>o)&&m("NATIVE_STRING_INVALID",t),e}function P(e,t){let o=S(e,t,128);return Ua.test(o)||m("NATIVE_CODE_INVALID",t),o}function G(e,t){let o=S(e,t,64);return Ba.test(o)||m("NATIVE_RESOURCE_CODE_INVALID",t),o}function K(e,t){let o=S(e,t,63);return Ka.test(o)||m("NATIVE_FIELD_CODE_INVALID",t),o}function Cn(e,t){let o=S(e,t,128);return Ga.test(o)||m("NATIVE_WORKFLOW_CODE_INVALID",t),o}function On(e,t){let o=S(e,t,128);return za.test(o)||m("NATIVE_WORKFLOW_BINDING_CODE_INVALID",t),o}function fe(e,t,o){let n=S(e,t,255);return Wa.test(n)||m("NATIVE_CAPABILITY_CODE_INVALID",t),!n.startsWith(`app:${o}:`)&&!Vs(o).some(i=>i.code===n)&&m("NATIVE_CAPABILITY_APP_MISMATCH",t),n}function ye(e,t){let o=S(e,t,2048);return(!o.startsWith("/")||o.startsWith("//")||o.includes("..")||o.includes("?")||o.includes("#"))&&m("NATIVE_ABSOLUTE_PATH_INVALID",t),o}function dt(e,t){return(!Number.isInteger(e)||Number(e)<1)&&m("NATIVE_POSITIVE_INTEGER_REQUIRED",t),Number(e)}function se(e,t,o,n){return(!Number.isInteger(e)||Number(e)<o||Number(e)>n)&&m("NATIVE_INTEGER_OUT_OF_RANGE",t),Number(e)}function lt(e,t){return typeof e!="boolean"&&m("NATIVE_BOOLEAN_REQUIRED",t),e}function xo(e,t){let o=S(e,t,64).toLowerCase();return xa.test(o)||m("NATIVE_DIGEST_INVALID",t),o}function x(e,t,o){e!==t&&m("NATIVE_VALUE_MISMATCH",o)}function R(e,t,o,n=!1){let i=new Set([...t,...Array.isArray(n)?n:[]]);for(let s of Object.keys(e))i.has(s)||m("NATIVE_PROPERTY_UNKNOWN",`${o}/${s}`);if(n!==!0)for(let s of t)Object.prototype.hasOwnProperty.call(e,s)||m("NATIVE_PROPERTY_REQUIRED",`${o}/${s}`)}function ee(e,t){return[...e].sort((o,n)=>me(t(o),t(n)))}function M(e){return[...new Set(e)].sort(me)}function As(e){return[...new Set(e)].sort((t,o)=>t-o)}function me(e,t){return e===t?0:e<t?-1:1}function Ps(e){return!e||typeof e!="object"||Object.isFrozen(e)||(Object.freeze(e),Object.values(e).forEach(t=>Ps(t))),e}function jo(e,t,o){if(Fo(e,t))return o;if(Array.isArray(e)&&Array.isArray(t)){let n=Math.max(e.length,t.length);for(let i=0;i<n;i+=1)if(!Fo(e[i],t[i]))return jo(e[i],t[i],`${o}/${i}`)}if(e&&t&&typeof e=="object"&&typeof t=="object"&&!Array.isArray(e)&&!Array.isArray(t)){let n=M([...Object.keys(e),...Object.keys(t)]);for(let i of n){let s=e[i],a=t[i];if(!Fo(s,a))return jo(s,a,`${o}/${i}`)}}return o}function Fo(e,t){return e===void 0||t===void 0?e===t:ne(e)===ne(t)}function m(e,t,o={}){throw new yn(e,t,o)}var Yl=50,Xl=131072,Sn=class extends Error{constructor(o){super("OPENXIANGDA_NATIVE_AUTHZ_BATCH_INPUT_INVALID");this.pointer=o}pointer;code="OPENXIANGDA_NATIVE_AUTHZ_BATCH_INPUT_INVALID";status=400};function Zc(e){let t=d=>{throw new Sn(d)},o=(d,u)=>((!d||typeof d!="object"||Array.isArray(d))&&t(u),d),n=(d,u,g)=>{for(let I of Object.keys(d))u.includes(I)||t(`${g}/${I}`)},i=(d,u,g)=>((typeof d!="string"||!d.trim()||d.length>u)&&t(g),d),s=(d,u)=>{let g=i(d,36,u);return/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(g)||t(u),g.toLowerCase()},a=o(e,""),r;try{r=new TextEncoder().encode(JSON.stringify(a)).byteLength}catch{t("")}r>131072&&t(""),n(a,["schemaVersion","environmentKey","items"],""),a.schemaVersion!=="openxiangda.native-role-membership-batch-request/v2"&&t("/schemaVersion"),a.environmentKey!==void 0&&!["preproduction","production"].includes(String(a.environmentKey))&&t("/environmentKey"),(!Array.isArray(a.items)||a.items.length<1||a.items.length>50)&&t("/items");let c=new Set,l=new Set,p;for(let[d,u]of a.items.entries()){let g=`/items/${d}`,I=o(u,g);["create","update","revoke"].includes(String(I.operation))||t(`${g}/operation`),p??=I.operation,p!==I.operation&&t(`${g}/operation`),n(I,["operation","operationId","reason",...p==="create"?["userId","roleCode"]:["membershipId","expectedRevision"],...p!=="revoke"?["scopeGrants","validFrom","validTo"]:[]],g);let E=s(I.operationId,`${g}/operationId`);c.has(E)&&t(`${g}/operationId`),c.add(E),i(I.reason,1e3,`${g}/reason`);let N;if(p==="create"){let y=i(I.userId,255,`${g}/userId`),_=i(I.roleCode,128,`${g}/roleCode`);/^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/.test(_)||t(`${g}/roleCode`),N=JSON.stringify([y,_])}else N=s(I.membershipId,`${g}/membershipId`),(!Number.isSafeInteger(I.expectedRevision)||Number(I.expectedRevision)<1)&&t(`${g}/expectedRevision`);l.has(N)&&t(g),l.add(N),I.scopeGrants!==void 0&&(!Array.isArray(I.scopeGrants)||I.scopeGrants.length>100)&&t(`${g}/scopeGrants`);for(let y of["validFrom","validTo"])I[y]!==void 0&&I[y]!==null&&i(I[y],64,`${g}/${y}`)}}var xs="openxiangda.workflow-delegation-administration/v2",js="openxiangda.workflow-delegation-mutation/v2",Fs="openxiangda.workflow-delegation-preview/v2";var Pt={type:"string",format:"uuid",pattern:"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"},_e={type:"string",minLength:1,maxLength:255},Ke={type:"string",format:"date-time"},ut={type:"integer",minimum:1},ed={anyOf:[Ke,{type:"null"}]},Bo={anyOf:[_e,{type:"null"}]},wn={type:"string",pattern:"^membership:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"},Ws={const:"future-assignments-only"},Ko={schemaVersion:{const:xs},id:Pt,appCode:_e,environmentKey:_e,workflowCode:Bo,delegatorUserId:_e,delegateUserId:_e,delegatorRoleSubjectKey:wn,delegateRoleSubjectKey:wn,validFrom:Ke,validTo:Ke,status:{enum:["active","revoked","expired"]},reason:{type:"string",minLength:1,maxLength:4e3},createdBy:_e,createdAt:Ke,revokedAt:ed,revision:ut,roleCode:_e,roleName:_e,delegatorDisplayName:_e,delegateDisplayName:_e,delegatorRoleSubjectRevision:ut,delegateRoleSubjectRevision:ut,effectiveState:{enum:["active","scheduled","expired","revoked","ineligible"]},evaluatedAt:Ke,issues:{type:"array",maxItems:20,uniqueItems:!0,items:_e},canRevoke:{type:"boolean"},revokedBy:Bo,revokeReason:{type:["string","null"],maxLength:4e3},taskPolicy:Ws},qo={type:"object",additionalProperties:!1,required:Object.keys(Ko),properties:Ko},Zl={$id:xs,...qo},Us={schemaVersion:{const:js},operationId:Pt,environmentKey:{enum:["preproduction","production"]},reason:{type:"string",minLength:1,maxLength:2e3,pattern:"\\S"}},vs={...Us,operation:{const:"create"},workflowCode:Bo,delegatorRoleSubjectKey:wn,expectedDelegatorRevision:ut,delegateUserId:_e,delegateRoleSubjectKey:wn,expectedDelegateRevision:ut,validFrom:Ke,validTo:Ke},Ls={...Us,operation:{const:"revoke"},delegationId:Pt,expectedRevision:ut},Ms={$id:js,type:"object",oneOf:[{type:"object",additionalProperties:!1,required:Object.keys(vs),properties:vs},{type:"object",additionalProperties:!1,required:Object.keys(Ls),properties:Ls}]},td={type:"string",pattern:"^[0-9a-f]{64}$"},eu={$id:Fs,type:"object",additionalProperties:!1,required:["schemaVersion","operationId","operation","requestDigest","before","after","taskPolicy"],properties:{schemaVersion:{const:Fs},operationId:Pt,operation:{enum:["create","revoke"]},requestDigest:td,before:{anyOf:[qo,{type:"null"}]},after:{...qo,properties:{...Ko,id:{anyOf:[Pt,{type:"null"}]}}},taskPolicy:Ws}};function nd(e){return e===void 0?"":`
9
- ${Q(e)}`}function od(e,t){let o=e.handlers.find(n=>n.code===t);return Q(o?.workflowStep?o:e)}var id="openxiangda.data-business-command/v1",Bs="openxiangda.data-business-command-resolution/v1",iu=65536;function sd(e){let t=0,o=0,n=new Set,i=new TextEncoder,s=()=>{throw new Error("OPENXIANGDA_DATA_COMMAND_INTENT_INVALID")},a=c=>(o+=i.encode(c).byteLength,o>65536&&s(),c),r=(c,l)=>{if(++t>1e4||l>32)return s();if(c===null||typeof c=="string"||typeof c=="boolean")return a(JSON.stringify(c));if(typeof c=="number")return Number.isFinite(c)?a(JSON.stringify(c)):s();if(!c||typeof c!="object"||n.has(c)||Object.getOwnPropertySymbols(c).length)return s();n.add(c);let p;if(Array.isArray(c))return Object.keys(c).length!==c.length?s():(p=a("[")+c.map((u,g)=>(g?a(","):"")+r(u,l+1)).join("")+a("]"),n.delete(c),p);let d=Object.getPrototypeOf(c);return d!==Object.prototype&&d!==null?s():(p=a("{")+Object.keys(c).sort().map((u,g)=>(g?a(","):"")+a(JSON.stringify(u))+a(":")+r(c[u],l+1)).join("")+a("}"),n.delete(c),p)};return!e||typeof e!="object"||Array.isArray(e)?s():r(e,0)}function rd(e,t,o=!1){let n=e,i=()=>{throw new Error("OPENXIANGDA_DATA_COMMAND_RESPONSE_INVALID")};if(!n||typeof n!="object"||n.schemaVersion!==Bs)return i();for(let c of["appCode","environmentKey","operationCode","idempotencyKey","intentDigest"])if(n[c]!==t[c])return i();if(typeof n.observedAt!="string"||!Number.isFinite(Date.parse(n.observedAt)))return i();if(n.outcome==="not_observed"&&n.receipt===null&&!o)return n;if(n.outcome!=="committed"||!n.receipt)return i();let s=n.receipt,a=c=>typeof c=="string"&&/^[a-f0-9]{8}(-[a-f0-9]{4}){3}-[a-f0-9]{12}$/i.test(c);if(!a(s.id)||!a(s.appVersionId)||!Number.isSafeInteger(s.environmentHeadRevision)||s.environmentHeadRevision<1||typeof s.completedAt!="string"||!Number.isFinite(Date.parse(s.completedAt)))return i();let r=s.transaction;if(!r||r.schemaVersion!=="openxiangda.data-transaction-result/v2"||r.idempotencyKey!==t.idempotencyKey||typeof r.replayed!="boolean"||!Array.isArray(r.items)||!r.items.length||r.items.length>1e3)return i();for(let[c,l]of r.items.entries()){if(!l||l.index!==c)return i();if(l.operation==="emitEvent"){if(!a(l.eventId)||typeof l.eventType!="string"||!l.eventType)return i()}else if(!["create","update","delete","increment"].includes(l.operation)||!a(l.id)||typeof l.resourceCode!="string"||!l.resourceCode||!Number.isSafeInteger(l.revision)||l.revision<1)return i()}return n}function Ks(e,t){if(t===void 0)return e;let o=e.views?.find(a=>a.code===t);if(!o)throw new Error(`DATA_RESOURCE_VIEW_NOT_FOUND: ${t}`);let n=new Map(o.sections?.flatMap(a=>a.fields.map(r=>[r,a.title]))),{views:i,...s}=e;return{...s,generated:o.generated,list:o.list,form:o.form,detail:o.detail,mobile:o.mobile,fields:Object.fromEntries(Object.entries(e.fields).map(([a,r])=>{let{section:c,...l}=r,p=n.get(a);return[a,{...l,...p?{section:p}:{},list:o.list.fieldOrder?.includes(a)??!1}]}))}}var ad="4ac94b73641338f07a5a6c7ff5009ba37f9f7a005031a24c0ae740d0b54bfa59";0&&(module.exports={DATA_AUDIT_METADATA_FIELDS,DATA_BUSINESS_COMMAND_INTENT_MAX_BYTES,DATA_BUSINESS_COMMAND_RESOLUTION_SCHEMA,DATA_BUSINESS_COMMAND_SCHEMA,DATA_EVENT_TYPES_V2,DATA_FORM_DRAFT_MAX_BYTES,DATA_SUBTABLE_MAX_ROWS,DATA_SUBTABLE_MAX_TOTAL_ROWS,DATA_SYSTEM_SORT_FIELD_CODES,DATA_TRANSACTION_MAX_BYTES,DATA_TRANSACTION_MAX_OPERATIONS,ManagedConcurrencyContractError,NATIVE_CONFIGURATION_VALIDATOR_DIGEST,NATIVE_CONTRACT_CAPACITY_V2,NATIVE_DATA_POLICY_EXPRESSION_MAX_CLAUSES,NATIVE_DATA_POLICY_EXPRESSION_MAX_DEPTH,NATIVE_DATA_POLICY_EXPRESSION_MAX_GROUP_ITEMS,NATIVE_DATA_POLICY_EXPRESSION_MAX_LEAVES,NATIVE_DATA_POLICY_EXPRESSION_MAX_OCCURRENCES,NATIVE_DATA_QUERY_OPERATORS_V2,NATIVE_ROLE_MEMBERSHIP_BATCH_MAX_BYTES,NATIVE_ROLE_MEMBERSHIP_BATCH_MAX_ITEMS,NATIVE_UNIQUE_KEY_MAX_BYTES,NATIVE_UNIQUE_KEY_NORMALIZERS,NativeConfigurationCompilerError,NativeDataFieldContractV2Error,NativeDataPolicyExpressionV2Error,NativeDecimalLifecycleContractError,NativeEventActionContractError,NativeRoleMembershipBatchInputError,NativeScopeSourceFieldPathV2Error,NativeUniqueKeyContractError,OPENXIANGDA_NATIVE_DATA_FIELD_TYPES_V2,OPENXIANGDA_NATIVE_DATA_SURFACE_KEYS_V2,OPENXIANGDA_NATIVE_DRAFT_STATE_KEYS_V2,OPENXIANGDA_NATIVE_SYSTEM_FIELDS_V2,OPENXIANGDA_NATIVE_SYSTEM_FIELD_MAP_V2,USER_CANDIDATE_MAX_SELECTIONS,USER_CANDIDATE_SCOPE_FIELD_TYPES,UserCandidateContractError,WORKFLOW_APPROVAL_EMPTY_PROVIDERS,WORKFLOW_AUTOMATIC_CC_MAX_RECIPIENTS,WORKFLOW_AUTOMATIC_CC_PROVIDERS,WORKFLOW_BUSINESS_STEP_EVENT,WORKFLOW_BUSINESS_STEP_EVENTS,WORKFLOW_BUSINESS_STEP_FACTS_KEY,WORKFLOW_BUSINESS_STEP_MAX_BYTES,WORKFLOW_BUSINESS_STEP_MAX_RECEIPT_BYTES,WORKFLOW_CONFIGURABLE_OPERATIONS,WORKFLOW_CONFIGURABLE_PROVIDERS,WORKFLOW_EVENT_TYPES_V2,WORKFLOW_LAUNCH_PREFLIGHT_PROVIDERS,WORKFLOW_REJECTION_NOTIFICATION_MAX_BYTES,WORKFLOW_REJECTION_NOTIFICATION_SCHEMA,WORKFLOW_ROUTING_MAX_BYTES,WORKFLOW_ROUTING_MAX_MATCHED_RULES,WORKFLOW_ROUTING_MAX_RULES,WORKFLOW_TASK_PAGE_DEFINITION_MAX_BYTES,WORKFLOW_TASK_PAGE_MAX_BYTES,WORKFLOW_TASK_PAGE_MAX_FIELDS,WORKFLOW_TASK_SUBTABLE_MAX_ROWS,WORKFLOW_TASK_SUBTABLE_MAX_TOTAL_ROWS,WorkflowTaskPageError,applyWorkflowTaskPageValues,applyWorkflowTaskSubtableRows,assertNativeRoleMembershipBatchInput,canonicalDataBusinessIntent,compileNativeApplicationConfiguration,compileNativeEventAction,compileNativeEventCapturePlansV2,compileRequiredPlatformCapabilitiesV3,compileWorkflowBusinessStepHandlers,evaluateWorkflowTaskPageExpression,formatWorkflowExpression,hasDataAuditReadPolicy,isDataAuditMetadataField,isDataSystemSortField,isNativeDataQueryOperatorV2,isNativeMultiValueFieldV2,isWorkflowRejectionNotificationSnapshot,materializeNativeDataQueryPathTypesV2,nativeDataPolicyExpressionLeavesV2,nativeDataPolicyExpressionToCnfV2,nativeDataQueryPathPlanV2,nativeFieldAggregatePlanV2,nativeFieldColumnDefinitionV2,nativeFieldDefaultSqlV2,nativeFieldHasDefaultV2,nativeFieldIndexStatementsV2,nativeFieldRequiresCreateInputV2,nativeFieldSequenceGrantStatementsV2,nativeFieldSequenceOwnershipStatementsV2,nativeFieldSequenceStatementsV2,nativeFieldSupportsFilterV2,nativeFieldSupportsOperatorV2,nativeFieldSupportsSearchV2,nativeFieldSupportsSortV2,nativeOperatorsForFieldV2,nativePhysicalFieldV2,nativePhysicalFieldsV2,nativePhysicalObjectNameV2,nativeScopeSourceFieldValueV2,nativeScopeSourceGrantPathSupportedV2,nativeScopeSourceSubjectPathSupportedV2,nativeSubtableConstraintStatementsV2,nativeUniqueKeysContractVersion,nativeUniqueKeysJsonSchema,parseDataBusinessCommandResolution,parseDataFieldUserCandidates,parseDecimalReservationLifecycle,parseNativeDataFieldsV2,parseNativeDataResourceInvariantsV2,parseNativeUniqueKeys,projectDataResourceView,projectNativeDataResourceViewV2,projectWorkflowGraph,projectWorkflowNodePolicy,quoteNativeIdentifierV2,refreshWorkflowTaskPageFacts,resolveNativeScopeSourceFieldPathV2,resolveWorkflowUserCandidates,selectWorkflowAssignmentRoutingRules,serializedDataBytes,userCandidateScopeValue,validateDecimalReservationLifecycles,validateManagedConcurrency,validateNativeDataDraftStateV2,validateNativeDataResourceReferencesV2,validateNativeDataResourceSurfaceV2,validateUserCandidateReferences,validateWorkflowAdministration,validateWorkflowApprovalEmptyPolicy,validateWorkflowAssignmentRoutingBindings,validateWorkflowAssignmentRoutingPolicy,validateWorkflowAssignmentRoutingRules,validateWorkflowAutomaticCc,validateWorkflowBusinessStepHandlerContract,validateWorkflowBusinessStepRequest,validateWorkflowBusinessStepResult,validateWorkflowBusinessStepSchema,validateWorkflowBusinessStepSubscriptions,validateWorkflowBusinessSteps,validateWorkflowCommandHandlers,validateWorkflowInitiatorApprovalPolicy,validateWorkflowInstanceCommandPolicies,validateWorkflowLaunchPreflight,validateWorkflowNodeConfigurationPatch,validateWorkflowReadability,validateWorkflowRejectionNotification,validateWorkflowTaskPages,validateWorkflowUserCandidateBindings,workflowApprovalCanSkip,workflowAssignmentRoutingFacts,workflowAssignmentRoutingPolicySchema,workflowAssignmentRoutingSemantic,workflowBindingAllowsEmptyUsers,workflowBusinessCommandInvocationSchema,workflowBusinessStepFactSchema,workflowBusinessStepHandlerDigest,workflowBusinessStepInput,workflowBusinessStepPath,workflowBusinessStepReceiptSignatureSuffix,workflowBusinessStepValueMatches,workflowDelegationMutationRequestSchema,workflowExpressionPaths,workflowInitiatorApprovalCanComplete,workflowInstanceCommandDeadlineError,workflowInstanceTerminateCapabilityAllowed,workflowInstanceWithdrawalReasonRequired,workflowNodeAllowedOperations,workflowOperationCommentRequired,workflowPolicyTimestamp,workflowTaskPageFieldState,workflowTaskPageReplayCoversInvalidation,workflowTaskSubtableRows});
8
+ END $native_subtable$`]}function ke(e,...t){return`${e}_${(0,Zi.createHash)("sha256").update(t.join(":")).digest("hex").slice(0,32)}`}function se(e){if(!/^[A-Za-z_][A-Za-z0-9_]{0,62}$/.test(e))throw new Error("OPENXIANGDA_NATIVE_IDENTIFIER_INVALID");return`"${e}"`}function Ga(e,t){return e.type==="subtable"?"none":t?"gin-trigram":e.indexed?["date-range","datetime-range"].includes(e.type)?"gist-range":To.has(e.type)?"btree-snapshot-expressions":$a.has(e.type)?"gin-jsonb-path":"btree":"none"}function qa(e){switch(e.type){case"text.short":return`varchar(${e.maxLength??255})`;case"text.long":case"text.rich":return"text";case"number.integer":return"bigint";case"number.decimal":return`numeric(${e.precision??38},${e.scale??10})`;case"boolean":return"boolean";case"date":return"date";case"time":return"time(0)";case"datetime":return"timestamptz";case"date-range":return"daterange";case"datetime-range":return"tstzrange";case"uuid":return"uuid";case"serial-number":return"varchar(255)";case"subtable":return"child-resource";default:return Pa.has(e.type),"jsonb"}}function tr(e,t){if(Ot(t.type)&&t.type!=="subtable")return"'[]'::jsonb";if(t.type!=="serial-number")return"";let o=Xi(t.serial?.prefix||""),n=t.serial?.digits??6;return`(${o} || lpad(nextval(${Xi(gn(e,t.code))})::text, ${n}, '0'))`}function za(e,t){return Qi.has(t.type)?` CHECK (${e} IS NULL OR jsonb_typeof(${e}) = 'array')`:va.has(t.type)?` CHECK (${e} IS NULL OR jsonb_typeof(${e}) = 'object')`:""}function _n(e){return`"app_data".${se(e)}`}function gn(e,t){let o=ke("seq",e,t);return`"app_data".${se(o)}`}function Xi(e){return`'${e.replace(/'/g,"''")}'`}var nr=new Set(["option.single","option.multiple","user.single","user.multiple","department.single","department.multiple","resource-ref.single","resource-ref.multiple"]),Ja=new Set([...nr,"cascade.single","cascade.multiple","file","image","signature","address","location","json"]),or=/^[A-Za-z][A-Za-z0-9_]{0,62}$/,Ha=new Set(["__proto__","prototype","constructor"]),An=class extends Error{constructor(o){super("OPENXIANGDA_SCOPE_PROJECTION_FIELD_PATH_INVALID");this.path=o;this.name="NativeScopeSourceFieldPathV2Error"}path;code="OPENXIANGDA_SCOPE_PROJECTION_FIELD_PATH_INVALID"};function st(e,t){let o=ir(e);if(!o)return null;let n=t.get(o[0]);if(!n)return null;let i=o.slice(1).join(".")||void 0;return{field:n,...i?{valuePath:i}:{}}}function En(e){return!!(e&&e.field.type==="user.single"&&e.valuePath==="value")}function Ro(e,t,o){if(!e||!t||!Xa(e))return!1;let{field:n,valuePath:i}=e;if(!i)return t.valueType==="uuid"?n.type==="uuid":["text.short","text.long","serial-number"].includes(n.type);if(i==="value")return!(t.valueSourceResourceCode&&n.type.startsWith("resource-ref.")&&n.source?.resourceCode!==t.valueSourceResourceCode);let r=i.slice(9),s=o.get(n.source?.resourceCode||"")?.get(r)?.type;return t.valueType==="uuid"?s==="uuid":["text.short","text.long","serial-number"].includes(s||"")}function Ya(e,t){let o=ir(t);if(!o)throw new An(String(t||""));let n=e;for(let i of o){if(!n||typeof n!="object"||!Object.prototype.hasOwnProperty.call(n,i))return;n=n[i]}return n}function Xa(e){let{field:t,valuePath:o}=e;if(!o)return!Ja.has(t.type);if(o==="value")return nr.has(t.type);if(!o.startsWith("snapshot."))return!1;let n=o.slice(9);return or.test(n)&&t.type.startsWith("resource-ref.")&&!!t.source?.snapshotFields?.includes(n)}function ir(e){if(typeof e!="string"||e.length===0||e.length>192)return null;let t=e.split(".");return![1,2,3].includes(t.length)||t.some(o=>!or.test(o)||Ha.has(o))||t.length===2&&t[1]!=="value"||t.length===3&&t[1]!=="snapshot"?null:t}var Za=new Set(["option.single","user.single","department.single","resource-ref.single"]),Qa=new Set(["text.short","text.long","text.rich","number.integer","number.decimal","boolean","date","time","datetime","uuid","serial-number"]),ec=new Set(["value","label","description","color"]),tc=new Set(["avatarUrl","employeeNo","title","mobile","email"]),nc=new Set(["fullPath","parent.value","parent.label"]),oc=new Set(["country.value","country.label","province.value","province.label","city.value","city.label","district.value","district.label","street.value","street.label","detail","fullAddress"]),ic=new Set(["longitude","latitude","accuracy"]),rc=new Set(["address","name","province","city","district","source"]);function sc(e){let t=new Map(e.map(o=>[o.code,new Map(o.schema.fields.map(n=>[n.code,n]))]));return e.map(o=>({...o,schema:{...o.schema,fields:o.schema.fields.map(n=>{let i=cc(n,t);if(!Object.keys(i).length)return n;let r={...n};return Object.defineProperty(r,"queryPathTypes",{configurable:!1,enumerable:!1,writable:!1,value:Object.freeze(i)}),r})}}))}function ac(e,t){if(Za.has(e.type)&&ec.has(t)||e.type==="user.single"&&tc.has(t)||e.type==="department.single"&&nc.has(t))return Ct(t);if(e.type==="resource-ref.single"){let o=e.queryPathTypes?.[t];return o?{parts:t.split("."),type:o}:null}if(e.type==="address"&&oc.has(t))return Ct(t);if(e.type==="location"){if(ic.has(t))return{parts:[t],type:"number.decimal"};if(rc.has(t))return Ct(t);if(t==="capturedAt")return{parts:[t],type:"datetime"}}return null}function cc(e,t){if(e.type!=="resource-ref.single"||!e.source)return{};let o=t.get(e.source.resourceCode);return o?Object.fromEntries((e.source.snapshotFields||[]).flatMap(n=>{let i=o.get(n);return i?[[`snapshot.${n}`,Qa.has(i.type)?i.type:"json"]]:[]})):{}}function Ct(e){return{parts:e.split("."),type:"text.short"}}var ar=e=>!!e&&typeof e=="object"&&!Array.isArray(e),cr=(e,t)=>Object.keys(e).length===t.length&&Object.keys(e).every(o=>t.includes(o)),rr=e=>typeof e=="string"&&/^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$/.test(e)&&e.length<=100,sr=e=>typeof e=="string"&&/^[a-f0-9]{8}(-[a-f0-9]{4}){3}-[a-f0-9]{12}$/i.test(e);function Co(e){throw new Error(`OPENXIANGDA_WORKFLOW_STAGE_${e}`)}function ho(e){(!ar(e)||!cr(e,["workflowCode","resourceCode","actor","runningNodeIds","allowedStatuses"])||!rr(e.workflowCode)||!rr(e.resourceCode)||!["initiator","reader"].includes(String(e.actor))||!Array.isArray(e.runningNodeIds)||e.runningNodeIds.length>32||new Set(e.runningNodeIds).size!==e.runningNodeIds.length||e.runningNodeIds.some(t=>typeof t!="string"||!/^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$/.test(t))||!Array.isArray(e.allowedStatuses)||e.allowedStatuses.length>5||new Set(e.allowedStatuses).size!==e.allowedStatuses.length||e.allowedStatuses.some(t=>!["approved","rejected","cancelled","terminated","returned"].includes(t))||e.runningNodeIds.length+e.allowedStatuses.length===0)&&Co("POLICY_INVALID")}function dc(e){(!ar(e)||!cr(e,["instanceId","subjectRecordId","expectedInstanceSequence"])||!sr(e.instanceId)||!sr(e.subjectRecordId)||!Number.isSafeInteger(e.expectedInstanceSequence)||e.expectedInstanceSequence<0)&&Co("GUARD_INVALID")}function lc(e,t,o){o?.some(n=>(n.kind==="record-match"||n.kind==="record-assert")&&n.resourceCode===e.resourceCode&&n.id.toLowerCase()===t.subjectRecordId.toLowerCase()&&n.assertions.some(i=>i.kind==="value"&&i.field==="revision"&&i.operator==="eq"&&Number.isSafeInteger(i.value)&&Number(i.value)>0))||Co("SOURCE_GUARD_REQUIRED")}var uc={type:"object",additionalProperties:!1,required:["workflowCode","resourceCode","actor","runningNodeIds","allowedStatuses"],properties:{workflowCode:{type:"string",pattern:"^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$",maxLength:100},resourceCode:{type:"string",pattern:"^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$",maxLength:100},actor:{enum:["initiator","reader"]},runningNodeIds:{type:"array",maxItems:32,uniqueItems:!0,items:{type:"string",pattern:"^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"}},allowedStatuses:{type:"array",maxItems:5,uniqueItems:!0,items:{enum:["approved","rejected","cancelled","terminated","returned"]}}},anyOf:[{properties:{runningNodeIds:{minItems:1}}},{properties:{allowedStatuses:{minItems:1}}}]};var at=class extends Error{constructor(o,n){super(o);this.code=o;this.pointer=n}code;pointer},ue=e=>e&&typeof e=="object"&&!Array.isArray(e)?e:{},dr=(e,t)=>e===t||e==="*"||e.endsWith(":*")&&t.startsWith(e.slice(0,-1));function wo(e){let{policy:t,resource:o,baselineRoleCode:n,baselineCapabilities:i,pointer:r}=e,c=A=>A===void 0||A===!0||Array.isArray(A)&&A.length>0&&A.every(O=>typeof O=="string"&&O.length>0&&!e.baselineDeniedCapabilities?.some(b=>dr(b,O))&&i.some(b=>dr(b,O))),s=(A,O="")=>{throw new at(A,`${r}/publicRead${O}`)},a=ue(t.publicRead);(!t.publicRead||Object.keys(a).length!==1||!Object.hasOwn(a,"fields")||!Array.isArray(a.fields)||a.fields.length<1||a.fields.length>1e3||a.fields.some(A=>typeof A!="string"||!/^[A-Za-z][A-Za-z0-9_]{0,62}$/.test(A))||new Set(a.fields).size!==a.fields.length)&&s("AUTHENTICATED_PUBLIC_READ_FIELDS_INVALID","/fields"),(!Array.isArray(t.operations)||t.operations.length!==1||t.operations[0]!=="read"||t.readExpression!==void 0||t.writeBoundary!==void 0)&&s("AUTHENTICATED_PUBLIC_READ_POLICY_NOT_READ_ONLY"),(!n||!o||o.code!==t.resourceCode||o.dataPolicyCode!==t.code||!c([ue(o.capabilities).read]))&&s("AUTHENTICATED_PUBLIC_READ_BASELINE_OR_RESOURCE_INVALID");let d=ue(o),f=ue(d.schema).fields;(!Array.isArray(f)||!f.length)&&s("AUTHENTICATED_PUBLIC_READ_RESOURCE_FIELDS_MISSING");let u=new Map(f.map(A=>[String(ue(A).code),ue(A)])),p=new Set(a.fields),g=ue(d.fieldPolicies);for(let A of p){let O=ue(u.get(A));(!u.has(A)||O.system===!0||ue(ue(d.surface).fields)[A]?.system===!0||bt.has(A))&&s("AUTHENTICATED_PUBLIC_READ_FIELD_NOT_DECLARED",`/fields/${A}`),(O.type==="subtable"||O.subtable!==void 0)&&s("AUTHENTICATED_PUBLIC_READ_SUBTABLE_UNSUPPORTED",`/fields/${A}`),c(ue(g[A]).read)||s("AUTHENTICATED_PUBLIC_READ_FIELD_NOT_BASELINE_READABLE",`/fields/${A}`)}let I=[...u.keys()].filter(A=>!p.has(A));for(let A of I)c(ue(g[A]).read)&&s("AUTHENTICATED_PUBLIC_READ_PRIVATE_FIELD_ACCESSIBLE",`/fields/${A}`);I.length&&Tt.some(A=>c(ue(g[A]).read))&&s("AUTHENTICATED_PUBLIC_READ_PRIVATE_HISTORY_ACCESSIBLE")}var Do=["exact-v1","nfkc-space-v1","nfkc-upper-ascii-v1"],Nu=256,ct=class extends Error{constructor(o,n){super(`\u6761\u4EF6\u552F\u4E00\u952E\u58F0\u660E\u65E0\u6548\uFF1A${n}\uFF08${o}\uFF09`);this.pointer=o;this.reason=n}pointer;reason;code="NATIVE_UNIQUE_KEY_INVALID"},So=e=>!!(e&&typeof e=="object"&&!Array.isArray(e)),oe=(e,t)=>{throw new ct(e,t)},In=(e,t)=>e<t?-1:e>t?1:0,ht=(e,t,o)=>{Object.keys(e).some(n=>!t.includes(n))&&oe(o,"\u4E0D\u652F\u6301\u672A\u77E5\u5C5E\u6027")};function ko(e,t,o="/uniqueKeys"){if(e===void 0)return;if(!Array.isArray(e)||e.length>8)return oe(o,"\u6BCF\u8D44\u6E90\u6700\u591A 8 \u6761\u89C4\u5219");let n=new Map(t.map(r=>[r.code,r])),i=new Set;return e.map((r,c)=>{let s=`${o}/${c}`;if(!So(r))return oe(s,"\u89C4\u5219\u5FC5\u987B\u662F\u5BF9\u8C61");if(ht(r,["code","fields","when"],s),typeof r.code!="string"||!/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/.test(r.code)||r.code.length>20||i.has(r.code))return oe(`${s}/code`,"\u9700\u8981\u4E0D\u91CD\u590D\u4E14\u4E0D\u8D85\u8FC7 20 \u5B57\u7B26\u7684 lower-kebab-case \u6807\u8BC6");if(i.add(r.code),!Array.isArray(r.fields)||r.fields.length<1||r.fields.length>4)return oe(`${s}/fields`,"\u5FC5\u987B\u9009\u62E9 1 \u5230 4 \u4E2A\u5B57\u6BB5");let a=new Set,d=r.fields.map((g,I)=>{let A=`${s}/fields/${I}`;if(!So(g))return oe(A,"\u5B57\u6BB5\u5FC5\u987B\u662F\u5BF9\u8C61");ht(g,["fieldCode","normalizer"],A);let O=n.get(g.fieldCode);if(!O||!["text.short","uuid","option.single","resource-ref.single","user.single"].includes(O.type)||a.has(g.fieldCode))return oe(`${A}/fieldCode`,"\u9700\u8981\u4E0D\u91CD\u590D\u7684\u77ED\u6587\u672C\u3001UUID\u3001\u5355\u9009\u3001\u5355\u8BB0\u5F55\u5F15\u7528\u6216\u5355\u4EBA\u5B57\u6BB5");a.add(g.fieldCode);let b=g.normalizer===void 0?"exact-v1":g.normalizer;return!Do.includes(b)||O.type!=="text.short"&&b!=="exact-v1"?oe(`${A}/normalizer`,"\u5F52\u4E00\u5316\u65B9\u5F0F\u4E0D\u652F\u6301\u6216\u4E0E\u5B57\u6BB5\u7C7B\u578B\u4E0D\u7B26"):{fieldCode:O.code,normalizer:b}}).sort((g,I)=>In(g.fieldCode,I.fieldCode)),f=r.when===void 0?[]:r.when;if(!Array.isArray(f)||f.length>4)return oe(`${s}/when`,"\u6700\u591A 4 \u4E2A\u5408\u53D6\u6761\u4EF6");let u=new Set,p=f.map((g,I)=>{let A=`${s}/when/${I}`;if(!So(g))return oe(A,"\u6761\u4EF6\u5FC5\u987B\u662F\u5BF9\u8C61");let O=n.get(g.fieldCode);if(!O)return oe(`${A}/fieldCode`,"\u5B57\u6BB5\u4E0D\u5B58\u5728");let b;if(g.operator==="empty"||g.operator==="nonempty"){if(ht(g,["fieldCode","operator"],A),O.type!=="text.short")return oe(A,"\u7A7A\u503C\u6761\u4EF6\u4EC5\u652F\u6301\u77ED\u6587\u672C");b={fieldCode:O.code,operator:g.operator}}else if(g.operator==="in"||g.operator==="notIn"){ht(g,["fieldCode","operator","values"],A);let E=new Set((O.options??[]).map(T=>T.value));if(O.type!=="option.single"||!Array.isArray(g.values)||g.values.length<1||g.values.length>16||g.values.some(T=>typeof T!="string"||T.length<1||T.length>128||!E.has(T))||new Set(g.values).size!==g.values.length)return oe(A,"\u96C6\u5408\u6761\u4EF6\u9700\u8981 1 \u5230 16 \u4E2A\u4E0D\u91CD\u590D\u7684\u5DF2\u58F0\u660E\u5355\u9009\u503C");b={fieldCode:O.code,operator:g.operator,values:[...g.values].sort(In)}}else if(g.operator==="eq"||g.operator==="ne"){if(ht(g,["fieldCode","operator","value"],A),O.type!=="boolean"||typeof g.value!="boolean")return oe(A,"\u7B49\u503C\u6761\u4EF6\u4EC5\u652F\u6301\u5E03\u5C14\u5B57\u6BB5\u548C\u5E03\u5C14\u503C");b={fieldCode:O.code,operator:g.operator,value:g.value}}else return oe(`${A}/operator`,"\u53EA\u652F\u6301 empty\u3001nonempty\u3001in\u3001notIn \u548C\u5E03\u5C14 eq\u3001ne");let _=JSON.stringify(b);return u.has(_)?oe(A,"\u6761\u4EF6\u4E0D\u80FD\u91CD\u590D"):(u.add(_),b)}).sort((g,I)=>In(JSON.stringify(g),JSON.stringify(I)));return{code:r.code,fields:d,when:p}}).sort((r,c)=>In(r.code,c.code))}function $o(e,t){let o=new Set(e.filter(n=>n.type==="user.single").map(n=>n.code));return t?.some(n=>n.fields.some(i=>o.has(i.fieldCode))||n.when?.some(i=>i.operator==="eq"||i.operator==="ne"))?"1.1.0":"1.0.0"}var yn={type:"string",pattern:"^[A-Za-z_][A-Za-z0-9_]{0,62}$"},fc={type:"array",maxItems:8,items:{type:"object",additionalProperties:!1,required:["code","fields"],properties:{code:{type:"string",maxLength:20,pattern:"^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"},fields:{type:"array",minItems:1,maxItems:4,uniqueItems:!0,items:{type:"object",additionalProperties:!1,required:["fieldCode"],properties:{fieldCode:yn,normalizer:{enum:[...Do]}}}},when:{type:"array",maxItems:4,uniqueItems:!0,items:{oneOf:[{type:"object",additionalProperties:!1,required:["fieldCode","operator"],properties:{fieldCode:yn,operator:{enum:["empty","nonempty"]}}},{type:"object",additionalProperties:!1,required:["fieldCode","operator","values"],properties:{fieldCode:yn,operator:{enum:["in","notIn"]},values:{type:"array",minItems:1,maxItems:16,uniqueItems:!0,items:{type:"string",minLength:1,maxLength:128}}}},{type:"object",additionalProperties:!1,required:["fieldCode","operator","value"],properties:{fieldCode:yn,operator:{enum:["eq","ne"]},value:{type:"boolean"}}}]}}}}};var lr={"openxiangda.workflow.instance.completed.v2":"commit","openxiangda.workflow.instance.rejected.v2":"release","openxiangda.workflow.instance.withdrawn.v2":"release"};function ur(e,t){let o=()=>{throw new Error("NATIVE_EVENT_DECIMAL_RESERVATION_INVALID")},n=p=>!p||typeof p!="object"||Array.isArray(p)?o():p,i=n(e);if(Object.keys(i).some(p=>!["resourceCode","workflowCode","outcomes"].includes(p))||typeof i.resourceCode!="string"||!/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/.test(i.resourceCode)||typeof i.workflowCode!="string"||!/^[A-Za-z0-9._:-]{1,128}$/.test(i.workflowCode)||t.execution!==void 0||!Array.isArray(i.outcomes)||!i.outcomes.length||i.outcomes.length>3)return o();let r=t.resources.find(p=>p.code===i.resourceCode),c=t.reservations.find(p=>p.mode==="reserve"&&p.resourceCode===i.resourceCode),s=t.workflows.find(p=>p.code===i.workflowCode);if(!r||!c||!s||s.resourceCode!==r.code)return o();let a=r.fields.find(p=>p.code===c.statusFieldCode);if(a?.type!=="option.single")return o();let d=new Set(a.options?.map(p=>p.value)),f=new Set,u=i.outcomes.map(p=>{let g=n(p),I=g.eventType;return Object.keys(g).some(A=>!["eventType","mode","eligibleChildStatuses"].includes(A))||typeof I!="string"||!Object.prototype.hasOwnProperty.call(lr,I)||!t.eventTypes.includes(I)||f.has(I)||g.mode!==lr[I]||!Array.isArray(g.eligibleChildStatuses)||!g.eligibleChildStatuses.length||g.eligibleChildStatuses.length>16||new Set(g.eligibleChildStatuses).size!==g.eligibleChildStatuses.length||g.eligibleChildStatuses.some(A=>typeof A!="string"||!/^[A-Za-z0-9._:-]{1,128}$/.test(A)||!d.has(A))?o():(f.add(I),{eventType:I,mode:g.mode,eligibleChildStatuses:[...g.eligibleChildStatuses].sort()})}).sort((p,g)=>p.eventType.localeCompare(g.eventType));return{resourceCode:i.resourceCode,workflowCode:i.workflowCode,outcomes:u}}function fr(e,t){let o=n=>Array.isArray(n)?n.filter(i=>i&&typeof i=="object"&&!Array.isArray(i)):[];return{eventTypes:Array.isArray(t.eventTypes)?t.eventTypes:[],execution:t.execution,resources:o(e.data?.resources).map(n=>({code:n.code,fields:o(n.schema?.fields).map(i=>({code:i.code,type:i.type,options:o(i.options).map(r=>({value:r.value}))}))})),reservations:o(e.backend?.operations).flatMap(n=>n.platformAccess?.decimalReservation?[n.platformAccess.decimalReservation]:[]),workflows:o(e.workflows?.definitions).map(n=>({code:n.definition?.code,resourceCode:n.definition?.subject?.resourceCode}))}}var bn=class extends Error{constructor(o,n){super(n);this.pointer=o}pointer;code="NATIVE_EVENT_ACTION_INVALID"};function vo(e,t,o="/events/subscriptions"){if(e.execution===void 0)return;let n=(A,O)=>{throw new bn(`${o}${A}`,O)},i=(A,O,b)=>((!A||typeof A!="object"||Array.isArray(A)||Object.keys(A).some(_=>!b.includes(_)))&&n(O,"Invalid action object or unsupported property"),A),r=i(e.execution,"/execution",["kind","version","operations"]);(r.kind!=="native-data"||r.version!==1)&&n("/execution","Expected native-data version 1"),e.platformAccess&&n("/platformAccess","Native actions do not use application runtime capabilities"),(!Array.isArray(e.eventTypes)||!e.eventTypes.length||e.eventTypes.some(A=>!/^openxiangda\.data\.record\.(created|updated|deleted)\.v2$/.test(A)))&&n("/eventTypes","Native data actions require declared data events");let c=e.filter?.resourceCodes;(!Array.isArray(c)||!c.length||c.length>20)&&n("/filter/resourceCodes","Native actions require explicit source resources");let s=new Map(t.map(A=>[A.code,A])),a=c.map(A=>{let O=s.get(A);return O||n("/filter/resourceCodes","Unknown source resource"),new Set((O.schema?.fields||[]).map(b=>b.code))}),d=new Set(e.payload?.fields||[]),f=e.payload?.includeChanges===!0,u=(A,O)=>{let b=i(A,O,["source","path","value"]);if(b.source==="literal"){(!Object.hasOwn(b,"value")||Object.hasOwn(b,"path"))&&n(O,"Literal binding requires only value");let l;try{l=JSON.stringify(b.value)}catch{n(O,"Literal must be JSON")}return(l===void 0||Buffer.byteLength(l)>65536)&&n(O,"Literal is too large or not JSON"),{source:"literal",value:JSON.parse(l)}}(b.source!=="event"||typeof b.path!="string"||Object.hasOwn(b,"value"))&&n(O,"Expected a literal or event binding");let _=b.path.split(".");(_.length>8||_.some(l=>!/^[A-Za-z0-9_-]+$/.test(l)||["__proto__","prototype","constructor"].includes(l)))&&n(O,"Invalid event path");let E=/^data\.projection\.([A-Za-z][A-Za-z0-9_]{0,62})$/.exec(b.path),T=/^data\.changes\.([A-Za-z][A-Za-z0-9_]{0,62})\.(before|after)$/.exec(b.path);if(E||T){let l=(E||T)[1];a.some(y=>!y.has(l))&&n(O,"Source field must exist on every filtered resource"),d.add(l),T&&(f=!0)}else["id","time","type","subject","data.recordId","data.revision","data.operation","data.resourceCode"].includes(b.path)||n(O,"Event path is not part of the data event contract");return{source:"event",path:b.path}};(!Array.isArray(r.operations)||r.operations.length<1||r.operations.length>16)&&n("/execution/operations","Expected 1 to 16 operations");let p={},g=r.operations.map((A,O)=>{let b=`/execution/operations/${O}`,_=i(A,b,["operation","resourceCode","data","id","expectedRevision"]);["create","update","delete"].includes(_.operation)||n(b,"Unsupported Native operation");let E=s.get(_.resourceCode);E||n(b,"Unknown action target resource");let T=new Map((E.schema?.fields||[]).map(y=>[y.code,y])),l=_.data===void 0?{}:i(_.data,`${b}/data`,[...T.keys()]);return Object.keys(l).length>32&&n(b,"Maximum 32 mapped fields per operation"),_.operation==="create"&&(_.id!==void 0||_.expectedRevision!==void 0)&&n(b,"Create does not accept id or expectedRevision"),_.operation==="delete"&&_.data!==void 0&&n(b,"Delete does not accept data"),Object.keys(l).some(y=>T.get(y)?.type==="serial-number")&&n(b,"Generated fields cannot be assigned"),p[_.resourceCode]=Z(E),{operation:_.operation,resourceCode:_.resourceCode,..._.operation==="create"?{}:{id:u(_.id,`${b}/id`),expectedRevision:u(_.expectedRevision,`${b}/expectedRevision`)},..._.operation==="delete"?{}:{data:Object.fromEntries(Object.entries(l).map(([y,R])=>[y,u(R,`${b}/data/${y}`)]))}}});(d.size>32||[...d].some(A=>a.some(O=>!O.has(A))))&&n("/payload/fields","Payload must contain at most 32 declared source fields");let I={kind:"native-data",version:1,operations:g,resourceDigests:p};return Buffer.byteLength(JSON.stringify(I))>65536&&n("/execution","Action plan exceeds 64 KiB"),{execution:{...I,digest:Z(I)},payload:{includeChanges:f,fields:[...d].sort()}}}function Le(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function Vo(e,t){if(e?.instanceCommands===void 0)return[];let o=Le(e.instanceCommands);if(!o||!Object.keys(o).length||Object.keys(o).some(i=>!["withdraw","terminate"].includes(i)))return["WORKFLOW_INSTANCE_COMMAND_POLICIES_INVALID"];let n=[];for(let[i,r]of Object.entries(o)){let c=Le(r),s=i==="withdraw"?["beforeFact","reasonRequired"]:["beforeFact","capability"];if(!c||!Object.keys(c).length||Object.keys(c).some(a=>!s.includes(a))||Object.hasOwn(c,"reasonRequired")&&typeof c.reasonRequired!="boolean"){n.push(`WORKFLOW_INSTANCE_COMMAND_POLICY_INVALID:${i}`);continue}if(i==="terminate"){let a=c.capability;(typeof a!="string"||a.length>255||!/^app:[a-z][a-z0-9]*(?:-[a-z0-9]+)*:[A-Za-z0-9:._-]+$/.test(a)||t&&(!a.startsWith(`app:${t.appCode}:`)||!t.capabilities.includes(a)))&&n.push("WORKFLOW_INSTANCE_TERMINATE_CAPABILITY_INVALID")}if(Object.hasOwn(c,"beforeFact")){let a=c.beforeFact,d=Le(e.inputSchema),f=Le(Le(d?.properties)?.[a]),u=Le(Le(e.subject)?.factProjection)?.[a],p=t?.fields.get(u);(typeof a!="string"||!/^[A-Za-z][A-Za-z0-9_]{0,62}$/.test(a)||!Array.isArray(d?.required)||!d.required.includes(a)||f?.type!=="string"||f?.format!=="date-time"||typeof u!="string"||t&&(p?.type!=="datetime"||p.nullable===!0))&&n.push(`WORKFLOW_INSTANCE_COMMAND_DEADLINE_FACT_INVALID:${i}`)}}return n}function pc(e,t){let o=e?.terminate?.capability;return typeof o=="string"&&/^app:[a-z][a-z0-9]*(?:-[a-z0-9]+)*:[A-Za-z0-9:._-]+$/.test(o)&&t.includes(o)}function mc(e){return e?.withdraw?.reasonRequired!==!1}function Po(e){if(typeof e!="string")return null;let t=/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:\.(\d{1,3}))?(Z|[+-]\d{2}:\d{2})$/.exec(e);if(!t)return null;let[,o,n,i,r,c,s]=t,a=t[8],d=new Date(Date.UTC(Number(o),Number(n),0)).getUTCDate();if(Number(n)<1||Number(n)>12||Number(i)<1||Number(i)>d||Number(r)>23||Number(c)>59||Number(s)>59||a!=="Z"&&(Number(a.slice(1,3))>23||Number(a.slice(4))>59))return null;let f=Date.parse(e);return Number.isFinite(f)?f:null}function _c(e,t,o,n){let i=e?.[t];if(!i||i.beforeFact===void 0)return null;let r=i.beforeFact,c=Le(o),s=r&&c&&Object.hasOwn(c,r)?Po(c[r]):null,a=n instanceof Date?n.getTime():Po(n);return s===null||a===null||!Number.isFinite(a)?"WORKFLOW_V2_CANCELLATION_DEADLINE_INVALID":a<s?null:"WORKFLOW_V2_CANCELLATION_DEADLINE_PASSED"}var dt="openxiangda.workflow.step.requested.v2",xo=[dt,"openxiangda.workflow.step.result_received.v2","openxiangda.workflow.step.completed.v2","openxiangda.workflow.step.continuation_failed.v2"],On=16384,_r=2048,gc="steps",jo=/^[A-Za-z][A-Za-z0-9_-]{0,127}$/,gr=/^[A-Za-z][A-Za-z0-9_]{0,62}$/,Ke=new Set(["__proto__","prototype","constructor"]),K=e=>!!e&&typeof e=="object"&&!Array.isArray(e)&&[Object.prototype,null].includes(Object.getPrototypeOf(e)),Ar=e=>{try{let t=JSON.stringify(e);return t===void 0?1/0:new TextEncoder().encode(t).length}catch{return 1/0}},lt=(e,t,o=0)=>{if(o>32)return!1;if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t))return e.length===t.length&&e.every((r,c)=>lt(r,t[c],o+1));if(!K(e)||!K(t))return!1;let n=Object.keys(e).filter(r=>e[r]!==void 0),i=Object.keys(t).filter(r=>t[r]!==void 0);return n.length===i.length&&n.every(r=>Object.hasOwn(t,r)&&lt(e[r],t[r],o+1))};function Lo(e,t){let o=0,n=(i,r)=>++o>1e4||r>8?!1:i===null||typeof i=="boolean"||typeof i=="string"?!0:typeof i=="number"?Number.isFinite(i):Array.isArray(i)?i.length<=200&&i.every(c=>n(c,r+1)):K(i)&&Object.keys(i).length<=32&&Object.keys(i).every(c=>!Ke.has(c))&&Object.values(i).every(c=>n(c,r+1));return Ar(e)<=t&&n(e,0)}function Er(e){return!K(e)||Object.keys(e).some(t=>!["executionId","handlerVersion","inputDigest","expectedFactRevision","output","receipt"].includes(t))?!1:/^[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$/i.test(e.executionId||"")&&Number.isSafeInteger(e.handlerVersion)&&e.handlerVersion>=1&&e.handlerVersion<=1e6&&/^[a-f0-9]{64}$/.test(e.inputDigest||"")&&Number.isSafeInteger(e.expectedFactRevision)&&e.expectedFactRevision>=0&&K(e.output)&&Lo(e.output,On)&&(e.receipt===void 0||K(e.receipt)&&Lo(e.receipt,_r))}function Ac(e){return K(e)&&Object.keys(e).every(t=>["executionId","nodeId","handlerCode","handlerVersion","mode","input","inputDigest","expectedFactRevision"].includes(t))&&typeof e.nodeId=="string"&&jo.test(e.nodeId)&&!Ke.has(e.nodeId)&&typeof e.handlerCode=="string"&&/^[a-z][a-z0-9-]{0,100}$/.test(e.handlerCode)&&e.handlerCode.endsWith(`-v${e.handlerVersion}`)&&["pure","reconciled-effect"].includes(e.mode)&&Er({executionId:e.executionId,handlerVersion:e.handlerVersion,inputDigest:e.inputDigest,expectedFactRevision:e.expectedFactRevision,output:e.input})}function wt(e,t,o=On){if(!Lo(t,o))return!1;let n=1e4,i=(r,c,s)=>{if(--n<0||s>8||!K(r))return!1;let a=c===null?"null":Array.isArray(c)?"array":typeof c=="number"&&Number.isSafeInteger(c)?"integer":typeof c,d=Array.isArray(r.type)?r.type:[r.type];if(!d.includes(a)&&!(a==="integer"&&d.includes("number"))||r.enum!==void 0&&(!Array.isArray(r.enum)||!r.enum.some(f=>lt(f,c)))||Object.hasOwn(r,"const")&&!lt(r.const,c))return!1;if(typeof c=="number")return Number.isFinite(c)&&(r.minimum===void 0||c>=r.minimum)&&(r.maximum===void 0||c<=r.maximum);if(typeof c=="string"){let f=Array.from(c).length;return(r.minLength===void 0||f>=r.minLength)&&(r.maxLength===void 0||f<=r.maxLength)}return Array.isArray(c)?c.length<=r.maxItems&&(r.minItems===void 0||c.length>=r.minItems)&&c.every(f=>i(r.items,f,s+1)):K(c)?!K(r.properties)||Object.keys(c).some(f=>Ke.has(f)||!Object.hasOwn(r.properties,f))||(Array.isArray(r.required)?r.required:[]).some(f=>!Object.hasOwn(c,f))||r.minProperties!==void 0&&Object.keys(c).length<r.minProperties||r.maxProperties!==void 0&&Object.keys(c).length>r.maxProperties?!1:Object.entries(c).every(([f,u])=>i(r.properties[f],u,s+1)):c===null||typeof c=="boolean"};return i(e,t,0)}function Ir(e){return typeof e=="string"&&e.length<=256&&e.split(".").length<=8&&e.split(".").every(t=>jo.test(t)&&!Ke.has(t))}function St(e){let t=0,o=(n,i)=>{if(!K(n)||i>6||++t>256||Object.keys(n).some(s=>!["type","title","description","properties","required","additionalProperties","items","maxItems","minItems","maxLength","minLength","minimum","maximum","enum","const","maxProperties","minProperties"].includes(s)))return!1;let r=Array.isArray(n.type)?n.type:[n.type];if(!r.length||r.length>2||r.some(s=>!["object","array","string","integer","number","boolean","null"].includes(s))||r.length>1&&(!r.includes("null")||new Set(r).size!==r.length))return!1;for(let s of["title","description"])if(n[s]!==void 0&&(typeof n[s]!="string"||n[s].length>2e3))return!1;for(let s of["minimum","maximum"])if(n[s]!==void 0&&(typeof n[s]!="number"||!Number.isFinite(n[s])))return!1;for(let[s,a]of[["maxItems",200],["minItems",200],["maxLength",16384],["minLength",16384],["maxProperties",32],["minProperties",32]])if(n[s]!==void 0&&(!Number.isSafeInteger(n[s])||n[s]<0||n[s]>a))return!1;for(let[s,a]of[["minimum","maximum"],["minItems","maxItems"],["minLength","maxLength"],["minProperties","maxProperties"]])if(n[s]!==void 0&&n[a]!==void 0&&n[s]>n[a])return!1;if(["properties","required","additionalProperties","maxProperties","minProperties"].some(s=>n[s]!==void 0)&&!r.includes("object")||["items","maxItems","minItems"].some(s=>n[s]!==void 0)&&!r.includes("array")||["maxLength","minLength"].some(s=>n[s]!==void 0)&&!r.includes("string")||["minimum","maximum"].some(s=>n[s]!==void 0)&&!r.some(s=>s==="integer"||s==="number")||n.enum!==void 0&&(!Array.isArray(n.enum)||!n.enum.length||n.enum.length>100)||r.includes("object")&&(!K(n.properties)||n.additionalProperties!==!1||Object.keys(n.properties).length>32||Object.keys(n.properties).some(s=>!gr.test(s)||Ke.has(s))||n.required!==void 0&&(!Array.isArray(n.required)||new Set(n.required).size!==n.required.length||n.required.some(s=>typeof s!="string"||!Object.hasOwn(n.properties,s)))||n.minProperties!==void 0&&n.minProperties>Object.keys(n.properties).length||n.maxProperties!==void 0&&n.maxProperties<(n.required?.length||0)||!Object.values(n.properties).every(s=>o(s,i+1)))||r.includes("array")&&(!Number.isSafeInteger(n.maxItems)||!o(n.items,i+1)))return!1;let c={...n};return delete c.enum,delete c.const,!(n.enum!==void 0&&(!n.enum.every(s=>wt(c,s))||n.enum.some((s,a)=>n.enum.slice(0,a).some(d=>lt(s,d))))||Object.hasOwn(n,"const")&&!wt(c,n.const))};return K(e)&&e.type==="object"&&Ar(e)<=On&&o(e,0)}function Dt(e){let t=Object.fromEntries(Object.values(e.nodes||{}).filter(o=>o?.kind==="action").map(o=>[o.id,o.outputSchema]));return Object.keys(t).length?{...e.inputSchema,properties:{...e.inputSchema?.properties,steps:{type:"object",additionalProperties:!1,properties:t}}}:e.inputSchema||{}}function yr(e,t){let o=e;for(let n of t.split(".")){if(!K(o?.properties)||!Object.hasOwn(o.properties,n))return;o=o.properties[n]}return K(o)?o:void 0}var pr=(e,t)=>!!yr(e,t);function Ec(e){return K(e)&&Object.keys(e).every(t=>["version","mode","inputSchema","outputSchema"].includes(t))&&Number.isSafeInteger(e.version)&&e.version>=1&&e.version<=1e6&&["pure","reconciled-effect"].includes(e.mode)&&St(e.inputSchema)&&St(e.outputSchema)}function mr(e){return e.kind==="approval"?[e.onApprove,e.onReject]:e.kind==="condition"?[...Array.isArray(e.branches)?e.branches.map(t=>t.target):[],e.otherwise]:e.kind==="cc"||e.kind==="action"?[e.next]:[]}function Fo(e,t=0){return!K(e)||t>16?[]:e.op==="path"?typeof e.path=="string"?[e.path]:[]:["left","right","value"].flatMap(o=>Fo(e[o],t+1)).concat(Array.isArray(e.values)?e.values.flatMap(o=>Fo(o,t+1)):[])}function kt(e,t){if(!K(e)||!K(e.nodes))return["WORKFLOW_STEP_DEFINITION_INVALID"];let o=e.nodes,n=Object.entries(o).filter(([,s])=>s?.kind==="action");if(!n.length)return[];let i=[];Object.hasOwn(e.inputSchema?.properties||{},"steps")&&i.push("WORKFLOW_STEP_FACT_NAMESPACE_RESERVED");let r=Dt(e);for(let[s,a]of n){(Object.keys(a).some(u=>!["id","kind","title","next","handler","inputSchema","outputSchema","inputs"].includes(u))||a.id!==s||!jo.test(s)||Ke.has(s)||typeof a.title!="string"||!a.title.trim()||a.title.length>255||typeof a.next!="string"||!Object.hasOwn(o,a.next))&&i.push(`WORKFLOW_STEP_NODE_INVALID:${s}`);let d=a.handler;(!K(d)||Object.keys(d).some(u=>!["code","version","mode"].includes(u))||!Number.isSafeInteger(d.version)||d.version<1||d.version>1e6||!/^[a-z][a-z0-9-]{0,100}$/.test(d.code||"")||!String(d.code).endsWith(`-v${d.version}`)||!["pure","reconciled-effect"].includes(d.mode))&&i.push(`WORKFLOW_STEP_HANDLER_INVALID:${s}`);let f=St(a.inputSchema);if((!f||!St(a.outputSchema))&&i.push(`WORKFLOW_STEP_SCHEMA_INVALID:${s}`),!K(a.inputs)||Object.keys(a.inputs).length>32){i.push(`WORKFLOW_STEP_INPUTS_INVALID:${s}`);continue}for(let u of Array.isArray(a.inputSchema?.required)?a.inputSchema.required:[])Object.hasOwn(a.inputs,u)||i.push(`WORKFLOW_STEP_INPUT_REQUIRED:${s}:${u}`);for(let[u,p]of Object.entries(a.inputs)){if(!gr.test(u)||Ke.has(u)||!Object.hasOwn(a.inputSchema?.properties||{},u)||!K(p)){i.push(`WORKFLOW_STEP_INPUT_INVALID:${s}:${u}`);continue}if(p.source==="literal")(!f||Object.keys(p).some(g=>!["source","value"].includes(g))||!Object.hasOwn(p,"value")||!wt(a.inputSchema.properties[u],p.value))&&i.push(`WORKFLOW_STEP_LITERAL_INVALID:${s}:${u}`);else if(p.source!=="fact"||Object.keys(p).some(g=>!["source","path"].includes(g))||!Ir(p.path)||!pr(r,p.path))i.push(`WORKFLOW_STEP_FACT_PATH_INVALID:${s}:${u}`);else if(f){let g=yr(r,p.path),I=a.inputSchema.properties[u],A=Array.isArray(g.type)?g.type:[g.type],O=Array.isArray(I.type)?I.type:[I.type];A.some(b=>!O.includes(b)&&!(b==="integer"&&O.includes("number")))&&i.push(`WORKFLOW_STEP_FACT_TYPE_MISMATCH:${s}:${u}`)}}}let c=(s,a)=>{let d=new Set,f=[e.startAt||""];for(;f.length&&d.size<=200;){let u=f.shift();if(!(u===a||d.has(u)||!o[u])){if(u===s)return!0;d.add(u),f.push(...mr(o[u]))}}return!1};for(let[s,a]of Object.entries(o)){if(!K(a))continue;let d=a.kind==="action"?Object.values(a.inputs||{}).flatMap(u=>u?.source==="fact"?[u.path]:[]):(Array.isArray(a.branches)?a.branches:[]).flatMap(u=>Fo(u?.when)),f=t?.bindings?.[a.binding];f&&d.push(...[f.inputPath,f.departmentIdFrom,f.resourceIdFrom,f.scope?.valueFrom].filter(u=>typeof u=="string"));for(let u of d.filter(p=>typeof p=="string"&&p.startsWith("steps."))){let p=u.split(".")[1];(o[p]?.kind!=="action"||p===s||!pr(r,u)||c(s,p))&&i.push(`WORKFLOW_STEP_OUTPUT_NOT_AVAILABLE:${s}:${u}`)}}if(t)for(let[,s]of n){let a=new Set,d=[s.next];for(;d.length&&a.size<=200;){let f=d.shift();if(a.has(f)||!K(o[f]))continue;a.add(f);let u=o[f];if(!(u.kind==="action"||u.kind==="end")){if(u.kind==="approval"){let p=t.bindings?.[u.binding];p&&["application_provider","initiator_select"].includes(p.provider)&&i.push(`WORKFLOW_STEP_NEXT_PROVIDER_REQUIRES_PREPARED_RESULT:${f}`);continue}d.push(...mr(u))}}}return[...new Set(i)]}function Ic(e,t){let o={};for(let[n,i]of Object.entries(e.inputs)){let r=i.source==="literal"?i.value:i.path.split(".").reduce((c,s)=>K(c)&&Object.hasOwn(c,s)?c[s]:void 0,t);r!==void 0&&(o[n]=r)}if(!wt(e.inputSchema,o))throw new Error("WORKFLOW_STEP_INPUT_SCHEMA_INVALID");return o}function Wo(e,t,o){let n=Nn(e),i=[];Object.keys(n).length&&!o&&i.push("WORKFLOW_STEP_BACKEND_REQUIRED");for(let r of Object.keys(n)){let c=t.find(s=>s.code===r);(!c||c.execution||c.action||!Array.isArray(c.eventTypes)||c.eventTypes.length!==1||c.eventTypes[0]!==dt||!K(c.filter)||Object.keys(c.filter).length!==1||!K(c.filter.workflowStep)||Object.keys(c.filter.workflowStep).length!==1||c.filter.workflowStep.handlerCode!==r||!K(c.payload)||c.payload.includeChanges!==!1||!Array.isArray(c.payload.fields)||c.payload.fields.length)&&i.push(`WORKFLOW_STEP_SUBSCRIPTION_INVALID:${r}`)}for(let r of t)(r.eventTypes?.includes(dt)&&!n[r.code]||r.filter?.workflowStep&&!n[r.code])&&i.push(`WORKFLOW_STEP_HANDLER_NOT_DECLARED:${r.code}`);return i}function Nn(e){let t={};for(let o of e){let n=kt(o);if(n.length)throw new Error(n.join("; "));for(let i of Object.values(o.nodes||{})){if(i.kind!=="action")continue;let r={version:i.handler.version,mode:i.handler.mode,inputSchema:i.inputSchema,outputSchema:i.outputSchema},c=t[i.handler.code];if(c&&!lt(c,r))throw new Error(`WORKFLOW_STEP_HANDLER_CONTRACT_CONFLICT:${i.handler.code}`);t[i.handler.code]=r}}return t}var fe=e=>e&&typeof e=="object"&&!Array.isArray(e)?e:{},Ge=(e,t)=>typeof e=="string"&&!!e.trim()&&e.length<=t,yc=/^[A-Za-z][A-Za-z0-9_-]*(?:\.[A-Za-z][A-Za-z0-9_-]*){0,15}$/,Uo=e=>typeof e=="string"&&e.length<=256&&yc.test(e)&&!e.split(".").some(t=>["__proto__","prototype","constructor"].includes(t));function Tn(e,t){let o=fe(e),n=!0;for(let i of t.split(".")){n&&=Array.isArray(o.required)&&o.required.includes(i);let r=fe(o.properties)[i];if(!r||typeof r!="object")return null;o=fe(r)}return{schema:o,required:n}}function Mo(e){let t=new Set,o=[],n=2048,i=(r,c)=>{if(--n<0||c>20){o.push("WORKFLOW_EXPRESSION_BUDGET_EXCEEDED");return}let s=fe(r);if(s.op==="path")Uo(s.path)?t.add(s.path):o.push("WORKFLOW_EXPRESSION_PATH_INVALID");else{if(s.op==="literal")return;if(s.op==="and"||s.op==="or")if(!Array.isArray(s.values)||!s.values.length||s.values.length>128)o.push("WORKFLOW_EXPRESSION_GROUP_INVALID");else for(let a of s.values){if(n<0)break;i(a,c+1)}else s.op==="not"||s.op==="exists"?i(s.value,c+1):["eq","neq","gt","gte","lt","lte","in","contains"].includes(String(s.op))?(i(s.left,c+1),i(s.right,c+1)):o.push("WORKFLOW_EXPRESSION_OPERATOR_INVALID")}};return i(e,0),{paths:[...t],errors:[...new Set(o)]}}function Bo(e){if(e?.readability===void 0)return[];let t=[],o=Dt(e),n=fe(e.readability);(Object.keys(n).some(s=>!["variables","logic"].includes(s))||!Object.keys(n).length)&&t.push("WORKFLOW_READABILITY_INVALID");let i=fe(n.variables);n.variables!==void 0&&(typeof n.variables!="object"||Array.isArray(n.variables)||n.variables===null)&&t.push("WORKFLOW_VARIABLES_INVALID"),Object.keys(i).length>128&&t.push("WORKFLOW_VARIABLE_LIMIT_EXCEEDED");for(let[s,a]of Object.entries(i)){let d=fe(a);(!Uo(s)||!Tn(o,s))&&t.push(`WORKFLOW_VARIABLE_SOURCE_UNKNOWN:${s}`),(!Ge(d.label,160)||Object.keys(d).some(f=>!["label","unit","description"].includes(f))||d.unit!==void 0&&!Ge(d.unit,32)||d.description!==void 0&&!Ge(d.description,2e3))&&t.push(`WORKFLOW_VARIABLE_METADATA_INVALID:${s}`)}let r=n.logic===void 0?[]:n.logic;(!Array.isArray(r)||r.length>32)&&t.push("WORKFLOW_LOGIC_LIMIT_INVALID");let c=new Set;for(let s of Array.isArray(r)?r.slice(0,32):[]){let a=fe(s),d=String(a.code||"");e.approvedDelegation&&d==="kernel-approved-delegation"&&t.push("WORKFLOW_LOGIC_PLATFORM_CODE_RESERVED"),(!/^[a-z][a-z0-9-]{2,63}$/.test(d)||c.has(d)||!Ge(a.title,160)||!Ge(a.description,4e3)||Object.keys(a).some(f=>!["code","title","description","phase","nodeId","inputPaths","outputPaths","source"].includes(f)))&&t.push(`WORKFLOW_LOGIC_METADATA_INVALID:${d}`),c.add(d),(!["submission","node_input","completion"].includes(String(a.phase))||a.phase==="node_input"&&!fe(e.nodes)[String(a.nodeId)]||a.phase!=="node_input"&&a.nodeId!==void 0)&&t.push(`WORKFLOW_LOGIC_ANCHOR_INVALID:${d}`);for(let f of["inputPaths","outputPaths"]){let u=a[f];if(!(f==="outputPaths"&&u===void 0))if(!Array.isArray(u)||u.length>32||new Set(u).size!==u.length)t.push(`WORKFLOW_LOGIC_PATHS_INVALID:${d}:${f}`);else for(let p of u)(!Uo(p)||!Tn(o,p))&&t.push(`WORKFLOW_LOGIC_SOURCE_UNKNOWN:${d}:${String(p)}`)}if(a.source!==void 0){let f=fe(a.source);(!Ge(f.path,256)||String(f.path).startsWith("/")||String(f.path).includes("..")||String(f.path).includes("://")||!/^sha256:[a-f0-9]{64}$/.test(String(f.digest))||f.symbol!==void 0&&!Ge(f.symbol,160)||Object.keys(f).some(u=>!["path","symbol","digest"].includes(u)))&&t.push(`WORKFLOW_LOGIC_SOURCE_REFERENCE_INVALID:${d}`)}}for(let s of Object.values(fe(e.nodes))){let a=fe(s),d=Array.isArray(a.branches)?a.branches:[];for(let f of d){let u=Mo(f.when);t.push(...u.errors.map(p=>`${p}:${a.id}`));for(let p of u.paths)Tn(o,p)||t.push(`WORKFLOW_VARIABLE_SOURCE_UNKNOWN:${a.id}:${p}`)}}return[...new Set(t)]}function bc(e,t){let o=Dt(e),n=[],i=new Map,r=[];for(let d of Object.values(e.nodes)){if(d.kind==="approval")for(let[f,u,p]of[["approve",d.onApprove,"\u540C\u610F"],["reject",d.onReject,"\u62D2\u7EDD"]])u&&n.push({id:`${d.id}:${f}`,from:d.id,to:u,kind:f,label:p,variablePaths:[]});if(d.kind==="approval")for(let f of new Set(d.returnTargets||[]))e.nodes[f]?.kind==="correction"&&n.push({id:`${d.id}:return:${f}`,from:d.id,to:f,kind:"return",label:"\u9000\u56DE\u53D1\u8D77\u4EBA\u8865\u6B63",variablePaths:[]});if(d.kind==="correction"&&d.next&&n.push({id:`${d.id}:resubmit`,from:d.id,to:d.next,kind:"resubmit",label:"\u91CD\u65B0\u63D0\u4EA4\uFF0C\u4ECE\u8D77\u70B9\u91CD\u7B97",variablePaths:[]}),d.kind==="cc"&&d.next&&n.push({id:`${d.id}:next`,from:d.id,to:d.next,kind:"next",label:"\u6284\u9001\u540E\u7EE7\u7EED",variablePaths:[]}),d.kind==="action"&&d.next){let f=Object.values(d.inputs||{}).flatMap(u=>u.source==="fact"?[u.path]:[]);for(let u of f)i.has(u)||i.set(u,new Set),i.get(u).add(d.id);n.push({id:`${d.id}:next`,from:d.id,to:d.next,kind:"next",label:"\u6210\u529F\u56DE\u6267\u540E\u7EE7\u7EED",variablePaths:f})}if(d.kind==="condition"){for(let[f,u]of(d.branches||[]).entries()){let p=Mo(u.when);for(let g of p.paths)i.has(g)||i.set(g,new Set),i.get(g).add(d.id);n.push({id:`${d.id}:branch:${f}`,from:d.id,to:u.target,kind:"branch",label:u.label||`\u6761\u4EF6 ${f+1}`,priority:f+1,expression:u.when,variablePaths:p.paths}),r.push(...p.errors.map(g=>({code:g,path:d.id})))}d.otherwise&&n.push({id:`${d.id}:default`,from:d.id,to:d.otherwise,kind:"default",label:"\u5747\u4E0D\u6EE1\u8DB3\u65F6",variablePaths:[]})}}let c=[...e.readability?.logic||[]];if(e.approvedDelegation){let d=e.approvedDelegation,f=d.confirmer==="initiator"?"\u7533\u8BF7\u4EBA\u672C\u4EBA":"\u6240\u9009\u4EE3\u7406\u4EBA";c.push({code:"kernel-approved-delegation",title:"\u6279\u51C6\u540E\u6574\u6279\u6388\u6743\u4EE3\u7406",phase:"completion",inputPaths:[d.requestsField],description:`\u6279\u51C6\u65F6\u6838\u9A8C${f}\u5728\u5F53\u524D\u9000\u56DE\u5468\u671F\u5B8C\u6210\u201C${e.nodes[d.confirmationNodeId]?.title||d.confirmationNodeId}\u201D\u7684\u4EBA\u5DE5\u786E\u8BA4\uFF1B\u968F\u540E\u91CD\u65B0\u6838\u9A8C\u53CC\u65B9\u5F53\u524D\u8D26\u53F7\u3001\u804C\u8D23\u3001\u4FEE\u8BA2\u3001\u8303\u56F4\u4E0E\u5B8C\u6574\u6709\u6548\u671F\uFF0C\u6574\u6279\u6388\u6743\uFF08\u6700\u591A${d.maxRequests}\u884C\uFF09\u3002\u4EFB\u4E00\u884C\u5931\u8D25\uFF0C\u6279\u51C6\u4E0E\u5168\u90E8\u6388\u6743\u4E00\u8D77\u56DE\u6EDA\uFF1B\u539F\u547D\u4EE4\u6062\u590D\u4E0D\u91CD\u65B0\u6FC0\u6D3B\u5DF2\u64A4\u9500\u6388\u6743\u3002`})}let a=[...new Set([...i.keys(),...Object.keys(e.readability?.variables||{}),...c.flatMap(d=>[...d.inputPaths,...d.outputPaths||[]])])].slice(0,128).map(d=>{let f=Tn(o,d),u=e.readability?.variables?.[d],p=d.split("."),g=e.subject?.factProjection[p[0]],I=p[0]==="steps"?e.nodes[p[1]]:void 0;return f||r.push({code:"WORKFLOW_VARIABLE_SOURCE_UNKNOWN",path:d}),{path:d,label:u?.label||String(f?.schema.title||d),type:String(f?.schema.type||"unknown"),...u,required:f?.required||!1,usedBy:[...i.get(d)||[]],source:f&&I?.handler?{kind:"step_output",nodeId:I.id,handlerCode:I.handler.code,handlerVersion:I.handler.version}:f&&g&&e.subject?{kind:"subject_field",resourceCode:e.subject.resourceCode,fieldPath:[g,...p.slice(1)].join(".")}:{kind:f?"input":"unknown"}}});return{schemaVersion:"openxiangda.workflow-graph/v2",workflowCode:e.code,definitionDigest:t,startAt:e.startAt,fixedTopology:!0,branchStrategy:"first_match",nodes:Object.values(e.nodes).map(d=>({id:d.id,kind:d.kind,title:d.title||d.id,...d.binding?{binding:d.binding}:{},...d.mode?{mode:d.mode}:{},...d.outcome?{outcome:d.outcome}:{},...d.kind==="cc"?{emptyPolicy:d.emptyPolicy,notify:d.notify!==!1}:{},...d.kind==="approval"?{emptyPolicy:d.emptyPolicy||"block",initiatorApprovalPolicy:d.initiatorApprovalPolicy||"manual",...d.completionDeadline?{completionDeadline:{...d.completionDeadline}}:{}}:{},...d.kind==="action"&&d.handler?{businessStep:{handler:d.handler,inputs:d.inputs||{},outputPaths:Object.keys(fe(d.outputSchema).properties||{}).map(f=>`steps.${d.id}.${f}`)}}:{}})),edges:n,variables:a,logic:c,diagnostics:r}}function $t(e,t=[],o=0){if(!e||o>20)return"\u65E0\u6CD5\u8BC6\u522B\u7684\u6761\u4EF6";if(e.op==="path")return t.find(c=>c.path===e.path)?.label||e.path;if(e.op==="literal")return JSON.stringify(e.value)??"\u7F3A\u503C";if(e.op==="and"||e.op==="or")return e.values.slice(0,128).map(c=>`\uFF08${$t(c,t,o+1)}\uFF09`).join(e.op==="and"?" \u4E14 ":" \u6216 ");if(e.op==="not"||e.op==="exists")return`${e.op==="not"?"\u4E0D\u6EE1\u8DB3":"\u5B58\u5728"}\uFF08${$t(e.value,t,o+1)}\uFF09`;if(!("left"in e))return"\u65E0\u6CD5\u8BC6\u522B\u7684\u6761\u4EF6";let n={eq:"=",neq:"\u2260",gt:">",gte:"\u2265",lt:"<",lte:"\u2264",in:"\u5C5E\u4E8E",contains:"\u5305\u542B"},i=e.left.op==="path"?e.left.path:void 0,r=i&&e.right.op==="literal"&&typeof e.right.value=="number"?t.find(c=>c.path===i)?.unit:void 0;return`${$t(e.left,t,o+1)} ${n[e.op]} ${$t(e.right,t,o+1)}${r?` ${r}`:""}`}function br(e,t=0){return!Array.isArray(e)||e.length>64||t>1?!1:e.every(o=>{if(!o||typeof o!="object"||Array.isArray(o)||o.readonlyWhen!==void 0)return!1;if(o.subtable!==void 0){let n=o.subtable;return n&&n.create===!1&&n.delete===!1&&n.reorder===!1&&br(n.fields,t+1)}return o.readonly===!0})}function ut(e){let t=[];for(let[o,n]of Object.entries(e?.nodes||{}))if(n.initiatorApprovalPolicy!==void 0){if(n.kind!=="approval"||!["manual","auto_approve"].includes(n.initiatorApprovalPolicy)){t.push(`WORKFLOW_INITIATOR_APPROVAL_POLICY_INVALID:${o}`);continue}n.initiatorApprovalPolicy==="auto_approve"&&((n.taskPageCode!==void 0&&(typeof n.taskPageCode!="string"||!br(e.taskPages?.[n.taskPageCode]?.fields))||[n.fieldPolicy?.default,...Object.values(n.fieldPolicy?.fields||{})].some(i=>i==="edit"||i==="edit_required"))&&t.push(`WORKFLOW_INITIATOR_APPROVAL_INPUT_REQUIRED:${o}`),n.operationPolicy?.approve?.commentRequired===!0&&t.push(`WORKFLOW_INITIATOR_APPROVAL_COMMENT_REQUIRED:${o}`))}return t}function Oc(e,t,o,n,i){return e.kind==="approval"&&e.initiatorApprovalPolicy==="auto_approve"&&ut({nodes:{node:e},...i?{taskPages:i}:{}}).length===0&&t!=="return_review"&&!!o&&n.user_id===o&&n.status==="active"&&n.participant_kind==="primary"&&["resolution","resolution_retry"].includes(n.source||"")&&!n.source_participant_id&&!n.delegate_authorization_id}var vu=8,Nc={type:"array",minItems:2,maxItems:8,uniqueItems:!0,items:{type:"string",maxLength:128,pattern:"^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$"}};function vt(e){if(e.roleCodes===void 0)return[];let t=e.roleCodes;if(!["app_role","app_role_in_scope"].includes(e.provider||"")||e.roleCode!==void 0||e.candidateField!==void 0||!Array.isArray(t)||t.length<2||t.length>8||new Set(t).size!==t.length||t.some(o=>typeof o!="string"||o.length>128||!/^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$/.test(o)))return["WORKFLOW_V2_BINDING_ROLE_UNION_INVALID"];if(e.provider==="app_role_in_scope"){let o=e.scope,n=typeof o?.value=="string"&&o.value.length>0&&o.value.length<=255&&o.valueFrom===void 0,i=typeof o?.valueFrom=="string"&&o.valueFrom.length<=255&&/^[A-Za-z][A-Za-z0-9_-]*(?:\.[A-Za-z][A-Za-z0-9_-]*)*$/.test(o.valueFrom)&&!o.valueFrom.split(".").some(r=>["__proto__","prototype","constructor"].includes(r))&&o.value===void 0;if(!o||typeof o!="object"||Array.isArray(o)||Object.keys(o).some(r=>!["dimension","value","valueFrom"].includes(r))||typeof o.dimension!="string"||!/^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$/.test(o.dimension)||!n&&!i)return["WORKFLOW_V2_BINDING_ROLE_UNION_SCOPE_INVALID"]}else if(e.scope!==void 0)return["WORKFLOW_V2_BINDING_ROLE_UNION_SCOPE_INVALID"];return[]}function Tc(e){return e.roleCodes?[...e.roleCodes]:e.roleCode?[e.roleCode]:[]}function Ko(e){return e.some(t=>Object.values(t.binding.bindings).some(o=>o.roleCodes!==void 0))}var Cn=["approve","reject","return","transfer","delegate","add_assignee"],hn=["fixed_users","app_role","app_role_in_scope"],Rc=["single","any","all","sequence"],Fe=e=>!!e&&typeof e=="object"&&!Array.isArray(e),qe=(e,t)=>Object.keys(e).every(o=>t.includes(o)),Rn=(e,t,o)=>Array.isArray(e)&&e.length>0&&e.length<=o&&new Set(e).size===e.length&&e.every(n=>typeof n=="string"&&t.includes(n));function ft(e){return e.allowedOperations||[...Cn]}function Or(e,t){return t?.commentRequired??e==="reject"}function Nr(e,t){return!["transfer","delegate","add_assignee","return"].includes(e)||t?.reasonRequired!==!1}function Tr(e,t,o={},n=!1){return!(!Fe(e)||!Object.keys(e).length||!qe(e,n?["enabled","label","commentRequired","reasonRequired"]:["label","commentRequired","reasonRequired"])||e.label!==void 0&&(typeof e.label!="string"||!e.label.trim()||e.label.length>40||/[\u0000-\u001f\u007f]/.test(e.label))||e.enabled!==void 0&&(typeof e.enabled!="boolean"||["approve","reject"].includes(t)&&!e.enabled)||e.commentRequired!==void 0&&(typeof e.commentRequired!="boolean"||!["approve","reject"].includes(t)||n&&Or(t,o)&&!e.commentRequired)||e.reasonRequired!==void 0&&(typeof e.reasonRequired!="boolean"||!["transfer","delegate","add_assignee","return"].includes(t)||n&&Nr(t,o)&&!e.reasonRequired))}function wn(e,t){let o=[];for(let[n,i]of Object.entries(e?.nodes||{})){if(!Fe(i))continue;let r=i.administration,c=i.operationPolicy;if(i.kind==="cc"){(c!==void 0||r!==void 0&&(!Fe(r)||!qe(r,["assigneeProviders"])))&&o.push(`WORKFLOW_NODE_ADMINISTRATION_INVALID:${n}`),r?.assigneeProviders!==void 0&&!Rn(r.assigneeProviders,hn,3)&&o.push(`WORKFLOW_NODE_ADMINISTRATION_PROVIDERS_INVALID:${n}`),r?.assigneeProviders?.includes("app_role_in_scope")&&t&&!t.bindings[i.binding||""]?.scope&&o.push(`WORKFLOW_NODE_ADMINISTRATION_SCOPE_REQUIRED:${n}`);continue}if(i.kind!=="approval"){(r!==void 0||c!==void 0)&&o.push(`WORKFLOW_NODE_ADMINISTRATION_APPROVAL_REQUIRED:${n}`);continue}if(c!==void 0&&(!Fe(c)||Object.keys(c).length>8||Object.entries(c).some(([a,d])=>!Cn.includes(a)||!ft(i).includes(a)||!Tr(d,a)))&&o.push(`WORKFLOW_NODE_OPERATION_POLICY_INVALID:${n}`),r===void 0)continue;if(!Fe(r)||!qe(r,["modes","assigneeProviders","operations"])){o.push(`WORKFLOW_NODE_ADMINISTRATION_INVALID:${n}`);continue}r.modes!==void 0&&(!Rn(r.modes,Rc,4)||!r.modes.includes(i.mode))&&o.push(`WORKFLOW_NODE_ADMINISTRATION_MODES_INVALID:${n}`),r.assigneeProviders!==void 0&&!Rn(r.assigneeProviders,hn,3)&&o.push(`WORKFLOW_NODE_ADMINISTRATION_PROVIDERS_INVALID:${n}`);let s=t?.bindings[i.binding||""];s&&Array.isArray(r.assigneeProviders)&&r.assigneeProviders.includes("app_role_in_scope")&&!s.scope&&o.push(`WORKFLOW_NODE_ADMINISTRATION_SCOPE_REQUIRED:${n}`),r.operations!==void 0&&(!Rn(r.operations,Cn,8)||r.operations.some(a=>!ft(i).includes(a)))&&o.push(`WORKFLOW_NODE_ADMINISTRATION_OPERATIONS_INVALID:${n}`)}return o}function Cc(e,t,o,n){let i=[];if(!e||!Fe(o)||!Object.keys(o).length||!qe(o,["title","description","assignee","mode","operations"]))return["WORKFLOW_V2_NODE_CONFIGURATION_PATCH_INVALID"];let r=o;for(let s of["title","description"])r[s]!==void 0&&(typeof r[s]!="string"||r[s].length>(s==="title"?255:1e3)||s==="title"&&!r[s].trim())&&i.push("WORKFLOW_V2_NODE_CONFIGURATION_PATCH_INVALID");let c=e.administration;if(r.mode!==void 0&&(e.kind!=="approval"||!c?.modes?.includes(r.mode))&&i.push("WORKFLOW_V2_NODE_CONFIGURATION_MODE_READONLY"),r.operations!==void 0&&(e.kind!=="approval"||!Fe(r.operations)||!Object.keys(r.operations).length||Object.keys(r.operations).length>8||Object.entries(r.operations).some(([s,a])=>!c?.operations?.includes(s)||!ft(e).includes(s)||!Tr(a,s,e.operationPolicy?.[s],!0)))&&i.push("WORKFLOW_V2_NODE_CONFIGURATION_OPERATION_INVALID"),r.assignee!==void 0){let s=r.assignee,a=c?.assigneeProviders||(e.kind==="approval"&&t&&hn.includes(t.provider)?[t.provider]:[]);!Fe(s)||!["approval","cc"].includes(e.kind)||!a.includes(s.provider)||s.provider==="app_role_in_scope"&&!t?.scope?i.push("WORKFLOW_V2_NODE_CONFIGURATION_PROVIDER_READONLY"):s.provider==="fixed_users"?(!qe(s,["provider","users"])||!Array.isArray(s.users)||s.users.length<1&&!(e.kind==="approval"&&e.emptyPolicy==="skip")||s.users.length>(e.kind==="cc"?20:200)||new Set(s.users).size!==s.users.length||s.users.some(d=>typeof d!="string"||!d.trim()||d.length>255))&&i.push("WORKFLOW_V2_NODE_CONFIGURATION_USERS_INVALID"):s.roleCodes!==void 0?(!qe(s,["provider","roleCodes"])||vt({...s,...s.provider==="app_role_in_scope"?{scope:t?.scope}:{}}).length)&&i.push("WORKFLOW_V2_NODE_CONFIGURATION_ROLE_INVALID"):(!qe(s,["provider","roleCode"])||typeof s.roleCode!="string"||!/^[a-z][a-z0-9_-]{0,127}$/.test(s.roleCode))&&i.push("WORKFLOW_V2_NODE_CONFIGURATION_ROLE_INVALID")}return i.push(...ut({nodes:{node:{...e,operationPolicy:Go(e,r).operationPolicy}},...n?{taskPages:n}:{}})),e.completionDeadline&&Go(e,r).operationPolicy.approve?.commentRequired===!0&&i.push("WORKFLOW_COMPLETION_DEADLINE_INPUT_REQUIRED:node"),i}function Go(e,t){let o=Object.fromEntries(ft(e).flatMap(n=>{let i=n,r=t?.operations?.[i],c={...e.operationPolicy?.[i],...r?.label!==void 0?{label:r.label}:{},...r?.commentRequired!==void 0?{commentRequired:r.commentRequired}:{},...r?.reasonRequired!==void 0?{reasonRequired:r.reasonRequired}:{}};return Object.keys(c).length?[[i,c]]:[]}));return{mode:t?.mode||e.mode,initiatorApprovalPolicy:e.initiatorApprovalPolicy||"manual",allowedOperations:ft(e).filter(n=>t?.operations?.[n]?.enabled!==!1),operationPolicy:o,fieldPolicy:{default:e.fieldPolicy?.default||"readonly",fields:{...e.fieldPolicy?.fields}}}}var xu=20,Rr=["fixed_users","initiator","input_users","form_field_users","app_role","app_role_in_scope","previous_node_actor"];function Sn(e,t){let o=[];for(let[n,i]of Object.entries(e?.nodes||{})){if(i?.kind!=="cc"||((Object.keys(i).some(a=>!["id","kind","title","binding","next","emptyPolicy","notify","administration"].includes(a))||typeof i.title!="string"||!i.title.trim()||i.title.length>255||typeof i.binding!="string"||!i.binding.trim()||i.binding.length>255||typeof i.next!="string"||!i.next.trim()||!e.nodes?.[i.next]||!["block","skip"].includes(i.emptyPolicy)||i.notify!==void 0&&typeof i.notify!="boolean")&&o.push(`WORKFLOW_CC_NODE_INVALID:${n}`),!t))continue;let r=t.bindings?.[i.binding];if(!r){o.push(`WORKFLOW_CC_BINDING_NOT_FOUND:${n}`);continue}Rr.includes(r.provider)||o.push(`WORKFLOW_CC_PROVIDER_INVALID:${n}`);let c=r.min??1,s=r.max??20;(!Number.isSafeInteger(c)||!Number.isSafeInteger(s)||c<1||s<c||s>20||r.provider==="fixed_users"&&(!Array.isArray(r.users)||!r.users.length||r.users.length>s))&&o.push(`WORKFLOW_CC_RECIPIENT_LIMIT_INVALID:${n}`)}return[...new Set(o)]}var qo=["fixed_users","input_users","form_field_users","app_role","app_role_in_scope"];function Dn(e,t){let o=[];for(let[n,i]of Object.entries(e?.nodes||{}))i.kind==="cc"||i.emptyPolicy===void 0||(i.kind!=="approval"||!["block","skip"].includes(i.emptyPolicy)?o.push(`WORKFLOW_APPROVAL_EMPTY_POLICY_INVALID:${n}`):i.emptyPolicy==="skip"&&t&&!qo.includes(t.bindings?.[i.binding||""]?.provider)&&o.push(`WORKFLOW_APPROVAL_EMPTY_PROVIDER_UNSUPPORTED:${n}`));return o}function hc(e,t){return e.kind==="approval"&&e.emptyPolicy==="skip"&&t?.emptyResult==="no_candidates"&&qo.includes(t.provider)&&Array.isArray(t.candidates)&&t.candidates.length===0&&Array.isArray(t.selected)&&t.selected.length===0&&Array.isArray(t.warnings)&&t.warnings.length===0}function zo(e,t){let o=Object.values(e.nodes||{}).filter(n=>n.binding===t);return o.length>0&&o.every(n=>n.kind==="approval"&&n.emptyPolicy==="skip")}function Cr(e,t=0){return!Array.isArray(e)||e.length>64||t>1?!0:e.some(o=>!o||typeof o!="object"||Array.isArray(o)||o.required===!0||o.requiredWhen!==void 0||o.subtable!==void 0&&(!o.subtable||Cr(o.subtable.fields,t+1)))}function wc(e){let t=e.afterSeconds;return`\u8FDB\u5165\u540E ${t%86400===0?`${t/86400} \u5929`:t%3600===0?`${t/3600} \u5C0F\u65F6`:t%60===0?`${t/60} \u5206\u949F`:`${t} \u79D2`}\u672A\u5B8C\u6210\uFF0C\u81EA\u52A8\u540C\u610F`}function Jo(e){let t=[];for(let[o,n]of Object.entries(e?.nodes||{})){if(!n||typeof n!="object"||n.completionDeadline===void 0)continue;let i=n.completionDeadline;if(n.kind!=="approval"||!i||typeof i!="object"||Array.isArray(i)||Object.keys(i).length!==2||Object.keys(i).some(c=>!["afterSeconds","action"].includes(c))||i.action!=="approve"||!Number.isInteger(i.afterSeconds)||i.afterSeconds<1||i.afterSeconds>2592e3){t.push(`WORKFLOW_COMPLETION_DEADLINE_INVALID:${o}`);continue}n.allowedOperations&&!n.allowedOperations.includes("approve")&&t.push(`WORKFLOW_COMPLETION_DEADLINE_APPROVE_UNAVAILABLE:${o}`);let r=n.taskPageCode?e.taskPages?.[n.taskPageCode]:void 0;(n.taskPageCode&&(!r||Cr(r.fields))||[n.fieldPolicy?.default,...Object.values(n.fieldPolicy?.fields||{})].includes("edit_required")||n.operationPolicy?.approve?.commentRequired===!0||e.commandHandlers?.approve!==void 0)&&t.push(`WORKFLOW_COMPLETION_DEADLINE_INPUT_REQUIRED:${o}`)}return t}var hr="openxiangda.workflow-rejection-notification/v1",Mu=4096;function wr(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function pt(e,t){return typeof e=="string"&&e.trim().length>0&&e.length<=t}function Ho(e,t){return Object.keys(e).sort().join(",")===t.sort().join(",")}function Yo(e){let t=e?.rejectionNotification;return t===void 0?[]:!wr(t)||!Ho(t,["recipient","title","summary"])||t.recipient!=="record_last_modifier"||!pt(t.title,160)||!pt(t.summary,500)?["WORKFLOW_REJECTION_NOTIFICATION_INVALID"]:pt(e.subject?.resourceCode,63)?[]:["WORKFLOW_REJECTION_NOTIFICATION_SUBJECT_REQUIRED"]}function Sc(e){if(!wr(e)||e.schemaVersion!==hr||e.recipient!=="record_last_modifier"||!pt(e.title,160)||!pt(e.summary,500))return!1;let t=["schemaVersion","recipient","title","summary","status","sourceRevision"];if(e.status==="ready"){if(!Ho(e,[...t,"userId"])||!pt(e.userId,255)||!Number.isSafeInteger(e.sourceRevision)||Number(e.sourceRevision)<1)return!1}else if(e.status==="skipped"){if(!Ho(e,[...t,"reason"])||!["record_missing","modifier_missing","modifier_ineligible"].includes(String(e.reason))||(e.reason==="record_missing"?e.sourceRevision!==null:!Number.isSafeInteger(e.sourceRevision)||Number(e.sourceRevision)<1))return!1}else return!1;return new TextEncoder().encode(JSON.stringify(e)).byteLength<=4096}function Xo(e,t){let o=e.commandHandlers;if(o===void 0)return[];if(!o||typeof o!="object"||Array.isArray(o)||!Object.keys(o).length||Object.keys(o).some(i=>!["approve","reject","withdraw","resubmit"].includes(i)))return["WORKFLOW_BUSINESS_COMMAND_HANDLERS_INVALID"];let n=[];o.resubmit&&!Object.values(e.nodes||{}).some(i=>i.kind==="correction")&&n.push("WORKFLOW_BUSINESS_CORRECTION_REQUIRED");for(let[i,r]of Object.entries(o)){if(!r||typeof r!="object"||Array.isArray(r)||Object.keys(r).join(",")!=="operationCode"||!/^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$/.test(r.operationCode||"")){n.push("WORKFLOW_BUSINESS_COMMAND_HANDLER_INVALID");continue}if(!t)continue;let c=t.find(s=>s.code===r.operationCode);if(!c){n.push("WORKFLOW_BUSINESS_COMMAND_OPERATION_MISSING");continue}(c.method!=="POST"||c.browser?.exposure!=="authenticated"||c.browser.behavior!=="controlled"||c.browser.idempotency!=="required"||c.browser.fileIntent||c.browser.subject?.resourceCode!==e.subject?.resourceCode||c.browser.subject?.inputField!=="recordId"||!c.platformAccess?.workflow?.codes?.includes(e.code)||!c.platformAccess.workflow.businessCommands?.includes(i))&&n.push("WORKFLOW_BUSINESS_COMMAND_OPERATION_INVALID")}return["approve","reject","withdraw"].some(i=>Object.hasOwn(o,i))&&Object.values(e.nodes||{}).some(i=>i.kind==="approval"&&(i.emptyPolicy==="skip"||i.initiatorApprovalPolicy==="auto_approve"))&&n.push("WORKFLOW_BUSINESS_COMMAND_AUTOMATIC_DECISION_FORBIDDEN"),[...new Set(n)]}var Dc={type:"object",additionalProperties:!1,required:["workflowCode","target","recordId","expectedRevision","commandToken","idempotencyKey","input"],properties:{workflowCode:{type:"string",pattern:"^[A-Za-z][A-Za-z0-9_-]{0,127}$"},target:{oneOf:[{type:"object",additionalProperties:!1,required:["kind","id","command"],properties:{kind:{const:"task"},id:{type:"string",format:"uuid"},command:{enum:["approve","reject","resubmit"]}}},{type:"object",additionalProperties:!1,required:["kind","id","command"],properties:{kind:{const:"instance"},id:{type:"string",format:"uuid"},command:{const:"withdraw"}}}]},recordId:{type:"string",format:"uuid"},expectedRevision:{type:"integer",minimum:1},commandToken:{type:"string",pattern:"^[A-Za-z0-9_-]{43}$"},idempotencyKey:{type:"string",minLength:1,maxLength:128},input:{type:"object",maxProperties:64}}};var Sr=["fixed_users","initiator","app_role","app_role_in_scope"],kc=e=>!!e&&typeof e=="object"&&!Array.isArray(e);function kn(e,t){let o=e?.launchPreflight;if(o===void 0)return[];if(!kc(o)||Object.keys(o).join(",")!=="requiredApprovalNodes"||!Array.isArray(o.requiredApprovalNodes)||o.requiredApprovalNodes.length<1||o.requiredApprovalNodes.length>20||new Set(o.requiredApprovalNodes).size!==o.requiredApprovalNodes.length||o.requiredApprovalNodes.some(i=>typeof i!="string"||!/^[A-Za-z][A-Za-z0-9_-]{0,127}$/.test(i)))return["WORKFLOW_LAUNCH_PREFLIGHT_INVALID"];let n=[];for(let i of o.requiredApprovalNodes){let r=e.nodes?.[i];if(!r||r.kind!=="approval"){n.push(`WORKFLOW_LAUNCH_PREFLIGHT_NODE_INVALID:${i}`);continue}if(!t)continue;let c=t.bindings?.[r.binding||""];(!c||!Sr.includes(c.provider)||c.candidateField!==void 0)&&n.push(`WORKFLOW_LAUNCH_PREFLIGHT_PROVIDER_UNSUPPORTED:${i}`)}return n}var Zo=e=>!!e&&typeof e=="object"&&!Array.isArray(e),$c=/^[A-Za-z][A-Za-z0-9_]{0,62}$/,kr=/^[A-Za-z][A-Za-z0-9_-]{0,127}$/,Dr=/^membership:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,qu=500,zu=262144;function Qo(e){if(e?.approvedDelegation===void 0)return[];let t=e.approvedDelegation;if(!Zo(t)||Object.keys(t).some(a=>!["confirmationNodeId","confirmer","requestsField","maxRequests"].includes(a))||!kr.test(t.confirmationNodeId||"")||!["initiator","delegate"].includes(t.confirmer)||!$c.test(t.requestsField||"")||!Number.isSafeInteger(t.maxRequests)||t.maxRequests<1||t.maxRequests>500)return["WORKFLOW_APPROVED_DELEGATION_POLICY_INVALID"];let o=[],n=e.nodes?.[t.confirmationNodeId];(!n||n.kind!=="approval"||n.mode!=="single"||n.emptyPolicy==="skip"||n.initiatorApprovalPolicy==="auto_approve"||n.completionDeadline||n.administration?.assigneeProviders?.length||n.administration?.modes?.some(a=>a!=="single")||n.allowedOperations?.some(a=>["transfer","delegate","add_assignee","admin_override"].includes(a)))&&o.push("WORKFLOW_APPROVED_DELEGATION_CONFIRMATION_INVALID");let i=e.inputSchema?.properties?.[t.requestsField];(!i||i.type!=="array"||!Number.isSafeInteger(i.maxItems)||i.maxItems<1||i.maxItems>t.maxRequests||!i.items||i.items.type!=="object"||i.items.additionalProperties!==!1||!e.subject?.factProjection?.[t.requestsField])&&o.push("WORKFLOW_APPROVED_DELEGATION_REQUEST_SCHEMA_INVALID"),Object.values(e.nodes||{}).some(a=>a.kind==="end"&&a.outcome==="approved")||o.push("WORKFLOW_APPROVED_DELEGATION_APPROVED_END_REQUIRED");let c=[e.startAt],s=new Set;for(;c.length;){let a=c.pop();if(a===t.confirmationNodeId||s.has(a))continue;s.add(a);let d=e.nodes?.[a];d&&(d.kind==="end"&&d.outcome==="approved"&&o.push("WORKFLOW_APPROVED_DELEGATION_CONFIRMATION_BYPASS"),d.kind==="approval"&&c.push(d.onApprove,d.onReject),d.kind==="condition"&&c.push(d.otherwise,...(d.branches||[]).map(f=>f.target)),(d.kind==="cc"||d.kind==="action")&&c.push(d.next))}return[...new Set(o)]}function vc(e,t){let o=t?.data?.[e.requestsField],n=()=>{throw new Error("WORKFLOW_APPROVED_DELEGATION_REQUEST_INVALID")};(!Array.isArray(o)||!o.length||o.length>e.maxRequests||o.length>500||new TextEncoder().encode(JSON.stringify(o)).byteLength>262144)&&n();let i=["key","delegatorRoleSubjectKey","delegatorRoleSubjectRevision","delegate","delegateRoleSubjectKey","expectedDelegateRevision","workflowCode","nodeId","validFrom","validTo","reason"],r=(a,d)=>typeof a=="string"&&a.trim().length>0&&a.length<=d,c=a=>{if(typeof a!="string")return!1;let d=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)(?:\.\d{1,3})?(?:Z|[+-](\d\d):(\d\d))$/.exec(a);if(!d)return!1;let[,f,u,p,g,I,A,O,b]=d,_=Number(f),E=Number(u),T=Number(p),y=[31,_%4===0&&(_%100!==0||_%400===0)?29:28,31,30,31,30,31,31,30,31,30,31];return E>=1&&E<=12&&T>=1&&T<=y[E-1]&&Number(g)<=23&&Number(I)<=59&&Number(A)<=59&&(O===void 0||Number(O)<=23&&Number(b)<=59)&&Number.isFinite(Date.parse(a))},s=o.map(a=>Zo(a)?((Object.keys(a).some(d=>!i.includes(d))||!r(a.delegatorRoleSubjectKey,255)||!Dr.test(a.delegatorRoleSubjectKey)||!r(a.delegateRoleSubjectKey,255)||!Dr.test(a.delegateRoleSubjectKey)||!Number.isSafeInteger(a.delegatorRoleSubjectRevision)||a.delegatorRoleSubjectRevision<1||!Number.isSafeInteger(a.expectedDelegateRevision)||a.expectedDelegateRevision<1||!Zo(a.delegate)||Object.keys(a.delegate).some(d=>!["value","label"].includes(d))||!r(a.delegate.value,255)||!r(a.delegate.label,200)||!(a.workflowCode===null||r(a.workflowCode,128)&&kr.test(a.workflowCode))||!(a.nodeId===null||r(a.nodeId,128)&&/^[A-Za-z0-9._:-]{1,128}$/.test(a.nodeId)&&a.workflowCode)||!c(a.validFrom)||!c(a.validTo)||Date.parse(a.validFrom)>=Date.parse(a.validTo)||!r(a.reason,4e3)||a.key!==void 0&&!r(a.key,128))&&n(),{...a,delegate:{value:a.delegate.value,label:a.delegate.label},validFrom:new Date(a.validFrom).toISOString(),validTo:new Date(a.validTo).toISOString()}):n());return e.confirmer==="delegate"&&new Set(s.map(a=>a.delegate.value)).size!==1&&n(),s}var Pc=e=>!!e&&typeof e=="object"&&!Array.isArray(e)&&[null,Object.prototype].includes(Object.getPrototypeOf(e));function ei(e){let t=e?.nodes||{},o=Object.values(t).filter(s=>s?.kind==="correction");if(!o.length)return[];let n=[],i=s=>s?.kind==="approval"?[s.onApprove,s.onReject]:s?.kind==="condition"?[...(Array.isArray(s.branches)?s.branches:[]).map(a=>a.target),s.otherwise]:s?.kind==="action"||s?.kind==="cc"?[s.next]:[],r=new Set,c=[e.startAt];for(;c.length;){let s=c.pop();r.has(s)||(r.add(s),c.push(...i(t[s])))}for(let s of o){(!Pc(s)||Object.keys(s).some(d=>!["id","kind","title","taskPageCode","next"].includes(d))||typeof s.id!="string"||!/^[A-Za-z][A-Za-z0-9_-]{0,127}$/.test(s.id)||["__proto__","prototype","constructor"].includes(s.id)||t[s.id]!==s||typeof s.title!="string"||!s.title.trim()||s.title.length>255||typeof s.taskPageCode!="string"||!/^[A-Za-z][A-Za-z0-9_-]{0,63}$/.test(s.taskPageCode))&&n.push("WORKFLOW_CORRECTION_NODE_INVALID"),(s.next!==e.startAt||t[s.next]?.kind==="correction")&&n.push("WORKFLOW_CORRECTION_REPLAY_TARGET_INVALID"),(r.has(s.id)||Object.values(t).some(d=>i(d).includes(s.id)))&&n.push("WORKFLOW_CORRECTION_FORWARD_ENTRY_FORBIDDEN"),Object.values(t).some(d=>d?.kind==="approval"&&r.has(d.id)&&Array.isArray(d.returnTargets)&&d.returnTargets.includes(s.id))||n.push("WORKFLOW_CORRECTION_RETURN_SOURCE_REQUIRED");let a=e.taskPages?.[s.taskPageCode];!a||!Array.isArray(a.fields)?n.push("WORKFLOW_CORRECTION_PAGE_REQUIRED"):a.fields.some(d=>d?.subtable)&&n.push("WORKFLOW_CORRECTION_OWNED_FACTS_UNSUPPORTED")}return[...new Set(n)]}var Pt=class extends Error{constructor(o){super(o);this.code=o}code},Vc=["projection","triggerCode","resourceCode","recordId","recordRevision","field","dueAt"];function ti(e,t,o){let n=r=>{throw new Pt(r)};t.length>100&&n("DATE_TRIGGER_PROJECTION_LIMIT");let i=new Set;for(let r of t){let c=r.filter?.resourceCodes||[];if(Array.isArray(c)||n("DATE_TRIGGER_PROJECTION_INVALID"),c.length&&!c.includes(e))continue;let s=r.payload?.fields||[];(!Array.isArray(s)||s.length>32)&&n("DATE_TRIGGER_PROJECTION_LIMIT");for(let a of s)(typeof a!="string"||!/^[A-Za-z_][A-Za-z0-9_]{0,62}$/.test(a)||["__proto__","constructor","prototype"].includes(a))&&n("DATE_TRIGGER_PROJECTION_FIELD_INVALID"),i.add(a)}if(i.size>64&&n("DATE_TRIGGER_PROJECTION_LIMIT"),o!==void 0){let r=o?.schema?.fields??o?.fields;Array.isArray(r)||n("DATE_TRIGGER_PROJECTION_RESOURCE_INVALID");let c=new Map(r.map(s=>[s.code,s]));for(let s of i){let a=c.get(s);a||n("DATE_TRIGGER_PROJECTION_FIELD_UNKNOWN"),a.type==="subtable"&&n("DATE_TRIGGER_PROJECTION_SUBTABLE_FORBIDDEN"),o.fieldPolicies?.[s]?.mask==="omit"&&n("DATE_TRIGGER_PROJECTION_FIELD_SENSITIVE")}}return[...i].sort()}function Lc(e,t){if(!t.length)return e;let o=e?.properties?.projection;if(o?.type!=="object"||!o.properties||typeof o.properties!="object"||Array.isArray(o.properties)||o.additionalProperties!==!1||o.required!==void 0&&!Array.isArray(o.required)||t.some(n=>!Object.hasOwn(o.properties,n))||(o.required||[]).some(n=>!t.includes(n)))throw new Pt("DATE_TRIGGER_PROJECTION_SCHEMA_INVALID");return{...e,properties:{...e.properties,projection:{}}}}var vr=64,$n=1024*1024,Pr=65536,oi=500,Vr=500,ze=new Set(["__proto__","prototype","constructor"]),Lr=/^[A-Za-z][A-Za-z0-9_-]{0,63}$/,Lt=/^[A-Za-z][A-Za-z0-9_]{0,62}$/,$r=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/,ae=e=>!!e&&typeof e=="object"&&!Array.isArray(e)&&[null,Object.prototype].includes(Object.getPrototypeOf(e)),ve=(e,t)=>ae(e)&&Object.keys(e).every(o=>t.includes(o)&&!ze.has(o)),vn=e=>{try{return new TextEncoder().encode(JSON.stringify(e)).length}catch{return 1/0}},Fr=e=>e==null||typeof e=="string"&&!e.trim()||Array.isArray(e)&&e.length===0;function xe(e,t){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t))return e.length===t.length&&e.every((n,i)=>xe(n,t[i]));if(!ae(e)||!ae(t))return!1;let o=Object.keys(e);return o.length===Object.keys(t).length&&o.every(n=>Object.hasOwn(t,n)&&xe(e[n],t[n]))}function ni(e,t){let o=t.split(".");if(!(o.some(n=>!Lr.test(n)||ze.has(n))||o.length>12))return o.reduce((n,i)=>ae(n)&&Object.hasOwn(n,i)?n[i]:void 0,e)}function $e(e,t){switch(e.op){case"literal":return e.value;case"path":return ni({values:t},e.path);case"and":return e.values.every(o=>!!$e(o,t));case"or":return e.values.some(o=>!!$e(o,t));case"not":return!$e(e.value,t);case"exists":return!Fr($e(e.value,t));default:{let o=$e(e.left,t),n=$e(e.right,t);return e.op==="eq"?xe(o,n):e.op==="neq"?!xe(o,n):e.op==="in"?Array.isArray(n)&&n.some(i=>xe(i,o)):e.op==="contains"?Array.isArray(o)?o.some(i=>xe(i,n)):typeof o=="string"&&typeof n=="string"&&o.includes(n):typeof o!="number"||typeof n!="number"||!Number.isFinite(o)||!Number.isFinite(n)?!1:e.op==="gt"?o>n:e.op==="gte"?o>=n:e.op==="lt"?o<n:o<=n}}}function Vt(e,t,o=0,n={nodes:0}){if(o>8||++n.nodes>64||!ae(e))return!1;if(e.op==="literal")return ve(e,["op","value"])&&Object.hasOwn(e,"value")&&vn(e.value)<=4096&&Ft(e.value);if(e.op==="path"){if(!ve(e,["op","path"])||typeof e.path!="string")return!1;let i=e.path.split(".");return i[0]==="values"&&i.length>=2&&i.length<=8&&t.has(i[1])&&i.every(r=>Lt.test(r)&&!ze.has(r))}return["not","exists"].includes(e.op)?ve(e,["op","value"])&&Vt(e.value,t,o+1,n):["and","or"].includes(e.op)?ve(e,["op","values"])&&Array.isArray(e.values)&&e.values.length>0&&e.values.length<=16&&e.values.every(i=>Vt(i,t,o+1,n)):["eq","neq","gt","gte","lt","lte","in","contains"].includes(e.op)&&ve(e,["op","left","right"])&&Vt(e.left,t,o+1,n)&&Vt(e.right,t,o+1,n)}function xt(e,t,o){let n=[],i=e.taskPages;if(i!==void 0&&(!ae(i)||Object.keys(i).length===0||Object.keys(i).length>16||vn(i)>Pr))return["WORKFLOW_TASK_PAGES_INVALID"];for(let[r,c]of Object.entries(i||{})){let s=`taskPages.${r}`;if(!Lr.test(r)||ze.has(r)||!ve(c,["title","fields"])||typeof c.title!="string"||!c.title.trim()||c.title.length>160||!Array.isArray(c.fields)||!c.fields.length||c.fields.length>vr){n.push(`WORKFLOW_TASK_PAGE_INVALID:${s}`);continue}let a=new Set(c.fields.map(u=>u?.code));a.size!==c.fields.length&&n.push(`WORKFLOW_TASK_PAGE_DUPLICATE_FIELD:${s}`);let d=0,f=new Set;for(let u of c.fields){if(!ve(u,["code","readonly","required","visibleWhen","requiredWhen","subtable"])||!Lt.test(u.code)||ze.has(u.code)||["readonly","required"].some(p=>u[p]!==void 0&&typeof u[p]!="boolean")||u.readonly&&(u.required||u.requiredWhen)){n.push(`WORKFLOW_TASK_PAGE_FIELD_INVALID:${s}`);continue}for(let p of["visibleWhen","requiredWhen"])u[p]!==void 0&&!Vt(u[p],a)&&n.push(`WORKFLOW_TASK_PAGE_EXPRESSION_INVALID:${s}.${u.code}.${p}`);if(t){let p=t.get(u.code);if((!p||p.system||p.hidden||p.type==="serial-number"||!u.readonly&&p.widget==="readonly"||!u.readonly&&p.type==="subtable"&&!u.subtable||u.subtable&&p.type!=="subtable")&&n.push(`WORKFLOW_TASK_PAGE_RESOURCE_FIELD_INVALID:${s}.${u.code}`),u.subtable&&p?.subtable){let g=p.subtable;d+=g.maxRows??20,(f.has(g.resourceCode)||!Number.isSafeInteger(g.maxRows??20)||(g.maxRows??20)<1||(g.maxRows??20)>oi||!Lt.test(g.foreignKey)||!Lt.test(g.orderField)||g.foreignKey===g.orderField)&&n.push(`WORKFLOW_TASK_SUBTABLE_RELATION_INVALID:${s}.${u.code}`),f.add(g.resourceCode);let I=o?.get(g.resourceCode);o&&(!I||!["uuid","resource-ref.single"].includes(I.get(g.foreignKey)?.type||"")||I.get(g.orderField)?.type!=="number.integer")&&n.push(`WORKFLOW_TASK_SUBTABLE_RELATION_INVALID:${s}.${u.code}`);for(let A of Array.isArray(u.subtable.fields)?u.subtable.fields:[]){if(!A||typeof A.code!="string")continue;let O=I?.get(A.code);(A.code===g.foreignKey||A.code===g.orderField||I&&(!O||O.system||O.hidden||O.type==="subtable"||!A.readonly&&(O.widget==="readonly"||O.type==="serial-number")))&&n.push(`WORKFLOW_TASK_SUBTABLE_FIELD_UNSUPPORTED:${s}.${u.code}.${A.code}`)}}else u.subtable&&t&&n.push(`WORKFLOW_TASK_SUBTABLE_RELATION_INVALID:${s}.${u.code}`)}u.subtable&&(u.readonly||!ve(u.subtable,["fields","create","delete","reorder"])||["create","delete","reorder"].some(p=>u.subtable?.[p]!==void 0&&typeof u.subtable[p]!="boolean")||!Array.isArray(u.subtable.fields)||u.subtable.fields.some(p=>p?.subtable)?n.push(`WORKFLOW_TASK_SUBTABLE_PAGE_INVALID:${s}.${u.code}`):n.push(...xt({taskPages:{child:{title:"\u5B50\u884C",fields:u.subtable.fields}}},o?.get(t?.get(u.code)?.subtable?.resourceCode||"")).map(p=>`${p}:${s}.${u.code}`)))}(d>Vr||d<0||!Number.isSafeInteger(d))&&n.push(`WORKFLOW_TASK_SUBTABLE_BUDGET_EXCEEDED:${s}`)}for(let[r,c]of Object.entries(e.nodes||{}))ae(c)&&c.taskPageCode!==void 0&&(!["approval","correction"].includes(c.kind)||typeof c.taskPageCode!="string"||!ae(i)||!Object.hasOwn(i,c.taskPageCode)?n.push(`WORKFLOW_TASK_PAGE_NOT_FOUND:${r}`):Array.isArray(i[c.taskPageCode]?.fields)&&i[c.taskPageCode].fields.some(s=>s&&(c.fieldPolicy?.fields?.[s.code]||c.fieldPolicy?.default)==="hidden")&&n.push(`WORKFLOW_TASK_PAGE_FIELD_HIDDEN:${r}`));return n}function ii(e,t){return e.fields.map(o=>({code:o.code,visible:o.visibleWhen===void 0||!!$e(o.visibleWhen,t),readonly:o.readonly===!0,required:o.required===!0||o.requiredWhen!==void 0&&!!$e(o.requiredWhen,t)}))}var Oe=class extends Error{constructor(o,n){super(o);this.code=o;this.field=n}code;field;rowIndex;childField};function Fc(e,t){return t.map(o=>({key:String(o.id),id:String(o.id),revision:Number(o.revision),state:"persisted",values:Object.fromEntries(ii({title:"\u5B50\u884C",fields:e.fields},o).filter(n=>n.visible&&!n.readonly).map(n=>[n.code,o[n.code]??null]))}))}function xc(e,t,o,n,i,r=!0,c=0){let s=e.subtable,a=g=>{throw new Oe(g,e.code)};if(!s||!Number.isSafeInteger(t)||t<1||t>oi||!Number.isSafeInteger(c)||c<0||c>t||!Array.isArray(n)||n.length>2*t||vn(n)>$n||!Ft(n))return a("WORKFLOW_TASK_SUBTABLE_VALUES_INVALID");let d=new Map(o.map(g=>[String(g.id),g])),f=new Set,u=new Set,p=[];for(let g of n){if(!ve(g,["key","state","id","revision","values"])||typeof g.key!="string"||!$r.test(g.key)||f.has(g.key)||!["created","persisted","deleted"].includes(g.state)||!ae(g.values))return a("WORKFLOW_TASK_SUBTABLE_ROW_INVALID");if(f.add(g.key),g.state==="created"){if(!s.create||g.id!==void 0||g.revision!==void 0||d.has(g.key))return a("WORKFLOW_TASK_SUBTABLE_CREATE_FORBIDDEN")}else{if(typeof g.id!="string"||g.id!==g.key||!$r.test(g.id)||u.has(g.id)||!Number.isSafeInteger(g.revision)||g.revision<1||!d.has(g.id))return a("WORKFLOW_TASK_SUBTABLE_SCOPE_CONFLICT");if(u.add(g.id),r&&Number(d.get(g.id).revision)!==g.revision)return a("WORKFLOW_TASK_SUBTABLE_REVISION_CONFLICT")}if(g.state==="deleted"){if(!s.delete||Object.keys(g.values).length)return a("WORKFLOW_TASK_SUBTABLE_DELETE_FORBIDDEN");continue}try{xr({title:e.code,fields:s.fields},g.id?d.get(g.id):{},g.values,i)}catch(I){if(!(I instanceof Oe))throw I;let A=new Oe(I.code,e.code);throw A.rowIndex=p.length,I.field!==void 0&&(A.childField=I.field),A}p.push(g)}if(u.size!==d.size)return a("WORKFLOW_TASK_SUBTABLE_SCOPE_CONFLICT");if(p.length>t)return a("WORKFLOW_TASK_SUBTABLE_MAX_ROWS_EXCEEDED");if(i&&p.length<c)return a("WORKFLOW_TASK_SUBTABLE_MIN_ROWS_NOT_MET");if(!s.reorder){let g=o.filter(A=>p.some(O=>O.id===String(A.id))).map(A=>String(A.id)),I=p.filter(A=>A.state==="persisted").map(A=>A.id);if(!xe(g,I)||p.some((A,O)=>A.state==="created"&&p.slice(O+1).some(b=>b.state==="persisted")))return a("WORKFLOW_TASK_SUBTABLE_REORDER_FORBIDDEN")}return n}function Ft(e,t={members:0},o=0){return++t.members>5e4||o>12?!1:e===null||typeof e=="boolean"?!0:typeof e=="string"?e.length<=$n:typeof e=="number"?Number.isFinite(e):Array.isArray(e)?e.length<=1e3&&e.every(n=>Ft(n,t,o+1)):ae(e)&&Object.entries(e).every(([n,i])=>!ze.has(n)&&Ft(i,t,o+1))}function xr(e,t,o,n){if(!ae(o)||vn(o)>$n||!Ft(o))throw new Oe("WORKFLOW_TASK_FORM_VALUES_INVALID");let i={...t,...o},r=new Map(ii(e,i).map(c=>[c.code,c]));for(let c of Object.keys(o)){let s=r.get(c);if(!s||s.readonly||!s.visible)throw new Oe("WORKFLOW_TASK_FORM_FIELD_NOT_EDITABLE",c)}if(n)for(let c of r.values()){let s=i[c.code],a=e.fields.find(d=>d.code===c.code)?.subtable&&Array.isArray(s)?s.every(d=>ae(d)&&d.state==="deleted"):Fr(s);if(c.visible&&!c.readonly&&c.required&&a)throw new Oe("WORKFLOW_TASK_FORM_REQUIRED",c.code)}return i}function jc(e,t,o){let n=JSON.parse(JSON.stringify(t));for(let[c,s]of Object.entries(e.subject?.factProjection||{})){let a=c.split(".");if(!a.length||a.length>12||c.length>128||a[0]==="steps"||a.some(f=>!Lt.test(f)||ze.has(f)))throw new Oe("WORKFLOW_TASK_FORM_FACT_PROJECTION_INVALID");if(!Object.hasOwn(o,s))throw new Oe("WORKFLOW_TASK_FORM_FACT_FIELD_MISSING",s);let d=n;for(let f of a.slice(0,-1))d=d[f]=ae(d[f])?d[f]:{};d[a.at(-1)]=o[s]===void 0?void 0:JSON.parse(JSON.stringify(o[s]))}let i=new Set,r=Object.values(e.nodes||{}).filter(c=>c.kind==="action");for(let c=0;c<=r.length;c++){let s=!1;for(let a of r)ae(n.steps)&&Object.hasOwn(n.steps,a.id)&&Object.values(a.inputs||{}).some(d=>d.source==="fact"&&!xe(ni(t,d.path),ni(n,d.path)))&&(delete n.steps[a.id],i.add(a.id),s=!0);if(!s)break}return{facts:n,invalidatedNodeIds:[...i].sort()}}function Wc(e,t,o){let n=e.nodes||{};for(let i of o){let r=new Set,c=new Map,s=a=>{if(a===i)return!0;if(c.has(a))return c.get(a);if(r.has(a)||r.size>200)return!1;let d=n[a];if(!ae(d)||d.kind==="end")return!1;r.add(a);let f=d.kind==="approval"?[d.onApprove]:d.kind==="condition"?[...(d.branches||[]).map(p=>p.target),d.otherwise]:[d.next],u=f.length>0&&f.every(p=>typeof p=="string"&&s(p));return r.delete(a),c.set(a,u),u};if(!s(t))return!1}return!0}var Qu=256,ef=64,tf=262144,Uc=/^[a-z][a-z0-9_-]{0,127}$/,Mc=/^[A-Za-z][A-Za-z0-9_]*(?:\.[A-Za-z][A-Za-z0-9_]*)*$/,Wr=new Set(["__proto__","prototype","constructor"]),we=e=>!!e&&typeof e=="object"&&!Array.isArray(e),Wt=(e,t)=>Object.keys(e).every(o=>t.includes(o)),Je=(e,t)=>typeof e=="string"&&e.trim().length>0&&e.length<=t&&!/[\u0000-\u001f\u007f]/.test(e),Pe=e=>typeof e=="string"&&Uc.test(e)&&!Wr.has(e),Ur=e=>typeof e=="string"&&e.length<=255&&Mc.test(e)&&!e.split(".").some(t=>Wr.has(t)),Bc=e=>we(e)&&Wt(e,["dimension","valueFrom","value"])&&Pe(e.dimension)&&(Je(e.value,255)&&e.valueFrom===void 0||Ur(e.valueFrom)&&e.value===void 0),jr=e=>typeof e=="string"&&/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{1,3})?(?:Z|[+-]\d{2}:\d{2})$/.test(e)&&Number.isFinite(Date.parse(e)),jt={type:"string",pattern:"^[a-z][a-z0-9_-]{0,127}$"},ri={type:"string",minLength:1,maxLength:128},Kc={type:"object",additionalProperties:!1,required:["policyCode","title","strategy","dimensions","sources"],properties:{policyCode:jt,title:ri,strategy:{enum:["replace_then_append","replace_only"]},dimensions:{type:"object",maxProperties:8,propertyNames:jt,additionalProperties:{type:"object",additionalProperties:!1,required:["title","valueFrom"],properties:{title:ri,valueFrom:{type:"string",minLength:1,maxLength:255}}}},sources:{type:"object",minProperties:1,maxProperties:16,propertyNames:jt,additionalProperties:{type:"object",additionalProperties:!1,required:["title","provider","roleCode"],properties:{title:ri,provider:{enum:["app_role","app_role_in_scope"]},roleCode:jt,scope:{type:"object",additionalProperties:!1,required:["dimension"],properties:{dimension:jt,value:{type:"string",minLength:1,maxLength:255},valueFrom:{type:"string",minLength:1,maxLength:255}}}}}}}};function Ut(e){if(!we(e)||!Wt(e,["policyCode","title","strategy","dimensions","sources"])||!Pe(e.policyCode)||!Je(e.title,128)||!["replace_then_append","replace_only"].includes(e.strategy))return["WORKFLOW_V2_ROUTING_POLICY_INVALID"];let t=[];return(!we(e.dimensions)||Object.keys(e.dimensions).length>8||Object.entries(e.dimensions).some(([o,n])=>!Pe(o)||!we(n)||!Wt(n,["title","valueFrom"])||!Je(n.title,128)||!Ur(n.valueFrom)))&&t.push("WORKFLOW_V2_ROUTING_DIMENSIONS_INVALID"),(!we(e.sources)||Object.keys(e.sources).length<1||Object.keys(e.sources).length>16||Object.entries(e.sources).some(([o,n])=>!Pe(o)||!we(n)||!Wt(n,["title","provider","roleCode","scope"])||!Je(n.title,128)||!Pe(n.roleCode)||!["app_role","app_role_in_scope"].includes(n.provider)||(n.provider==="app_role_in_scope"?!Bc(n.scope):n.scope!==void 0)))&&t.push("WORKFLOW_V2_ROUTING_SOURCES_INVALID"),t}function Gc(e,t){if(Ut(e).length)return["WORKFLOW_V2_ROUTING_POLICY_INVALID"];if(!Array.isArray(t)||t.length>256||new TextEncoder().encode(JSON.stringify(t)).length>262144)return["WORKFLOW_V2_ROUTING_RULE_LIMIT_EXCEEDED"];let o=[],n=new Set;for(let i of t){if(!we(i)||!Wt(i,["ruleCode","title","enabled","workflowCode","nodeId","matches","sourceCode","effect","priority","validFrom","validTo"])||!Pe(i.ruleCode)||!Je(i.title,128)||typeof i.enabled!="boolean"||!Pe(i.sourceCode)||!Object.hasOwn(e.sources,i.sourceCode)||!["append","replace"].includes(i.effect)||!Number.isSafeInteger(i.priority)||i.priority<-1e3||i.priority>1e3||i.workflowCode!==void 0&&!Pe(i.workflowCode)||i.nodeId!==void 0&&(!Pe(i.nodeId)||i.workflowCode===void 0)||i.validFrom!==void 0&&!jr(i.validFrom)||i.validTo!==void 0&&!jr(i.validTo)||i.validFrom&&i.validTo&&Date.parse(i.validFrom)>=Date.parse(i.validTo)){o.push("WORKFLOW_V2_ROUTING_RULE_INVALID");continue}n.has(i.ruleCode)&&o.push(`WORKFLOW_V2_ROUTING_RULE_DUPLICATE:${i.ruleCode}`),n.add(i.ruleCode),(!we(i.matches)||Object.entries(i.matches).some(([r,c])=>!Object.hasOwn(e.dimensions,r)||!Array.isArray(c)||c.length<1||c.length>64||new Set(c).size!==c.length||c.some(s=>!Je(s,255))))&&o.push(`WORKFLOW_V2_ROUTING_MATCH_INVALID:${i.ruleCode}`)}return[...new Set(o)]}function Mr(e){return JSON.stringify({policyCode:e.policyCode,strategy:e.strategy,dimensions:Object.entries(e.dimensions).sort(([t],[o])=>t<o?-1:t>o?1:0).map(([t,o])=>[t,o.valueFrom]),sources:Object.entries(e.sources).sort(([t],[o])=>t<o?-1:t>o?1:0).map(([t,o])=>[t,o.provider,o.roleCode,o.scope?.dimension??null,o.scope?.valueFrom??null,o.scope?.value??null])})}function si(e){let t=[],o=new Map;for(let n of e)for(let[i,r]of Object.entries(n.bindings||{})){if(!we(r)||r.routing===void 0)continue;let c=Ut(r.routing);if(c.length){t.push(...c.map(d=>`${d}:${i}`));continue}let s=Mr(r.routing),a=o.get(r.routing.policyCode);a&&a!==s&&t.push(`WORKFLOW_V2_ROUTING_POLICY_CONFLICT:${r.routing.policyCode}`),o.set(r.routing.policyCode,s)}return[...new Set(t)]}function qc(e,t){let o={};for(let[n,i]of Object.entries(e.dimensions)){let r=t;for(let c of i.valueFrom.split("."))r=we(r)&&Object.hasOwn(r,c)?r[c]:void 0;if(!(typeof r=="string"&&Je(r,255)||typeof r=="number"&&Number.isFinite(r)||typeof r=="boolean"))throw new Error(`WORKFLOW_V2_ROUTING_FACT_REQUIRED:${n}`);o[n]=String(r)}return o}function zc(e,t,o){let n=t.filter(d=>d.enabled&&(!d.validFrom||Date.parse(d.validFrom)<=o.at)&&(!d.validTo||Date.parse(d.validTo)>o.at)&&(!d.workflowCode||d.workflowCode===o.workflowCode)&&(!d.nodeId||d.nodeId===o.nodeId)&&Object.entries(d.matches).every(([f,u])=>u.includes(o.facts[f])));if(n.length>64)throw new Error("WORKFLOW_V2_ROUTING_MATCH_LIMIT_EXCEEDED");let i=(d,f)=>f.priority-d.priority||+!!d.workflowCode-+!!f.workflowCode||+!!d.nodeId-+!!f.nodeId||(d.ruleCode<f.ruleCode?-1:d.ruleCode>f.ruleCode?1:0),r=n.filter(d=>d.effect==="replace").sort(i);if(r.length>1&&r[0].priority===r[1].priority)throw new Error("WORKFLOW_V2_ROUTING_REPLACE_CONFLICT");let c=r[0],s=c&&e.strategy==="replace_only"?[]:n.filter(d=>d.effect==="append").sort(i),a=[...c?[c]:[],...s];return{matched:n.sort(i),replacement:c,applied:a,ignored:n.filter(d=>!a.includes(d))}}var ai="^[A-Za-z][A-Za-z0-9_]{0,62}$",Br="^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$",Jc={type:"object",additionalProperties:!1,required:["mode","resourceCode","subtables"],properties:{mode:{const:"create"},resourceCode:{type:"string",maxLength:64,pattern:Br},subtables:{type:"array",minItems:1,maxItems:16,items:{type:"object",additionalProperties:!1,required:["fieldCode","fieldCodes"],properties:{fieldCode:{type:"string",pattern:ai},fieldCodes:{type:"array",minItems:1,maxItems:200,uniqueItems:!0,items:{type:"string",pattern:ai}}}}}}};function Mt(e){let t=n=>!!(n&&typeof n=="object"&&!Array.isArray(n)),o=n=>typeof n=="string"&&new RegExp(ai).test(n)&&!["__proto__","prototype","constructor"].includes(n);if(!t(e)||Object.keys(e).some(n=>!["mode","resourceCode","subtables"].includes(n))||e.mode!=="create"||typeof e.resourceCode!="string"||e.resourceCode.length>64||!new RegExp(Br).test(e.resourceCode)||!Array.isArray(e.subtables)||e.subtables.length<1||e.subtables.length>16||e.subtables.some(n=>!t(n)||Object.keys(n).some(i=>!["fieldCode","fieldCodes"].includes(i))||!o(n.fieldCode)||!Array.isArray(n.fieldCodes)||n.fieldCodes.length<1||n.fieldCodes.length>200||new Set(n.fieldCodes).size!==n.fieldCodes.length||n.fieldCodes.some(i=>!o(i)))||new Set(e.subtables.map(n=>n.fieldCode)).size!==e.subtables.length)throw new Error("WORKFLOW_OWNED_SUBJECT_CREATE_INVALID")}function Hc(e){return Mt(e),{mode:"create",resourceCode:e.resourceCode,subtables:e.subtables.map(t=>({fieldCode:t.fieldCode,fieldCodes:[...t.fieldCodes].sort()})).sort((t,o)=>t.fieldCode.localeCompare(o.fieldCode))}}function ci(e,t,o){Mt(e);let n=s=>{throw new Error(`WORKFLOW_OWNED_SUBJECT_${s}`)},i=t.get(e.resourceCode);i||n("RESOURCE_MISSING");let r=new Set,c=0;for(let s of e.subtables){let a=i.get(s.fieldCode),d=a?.subtable,f=t.get(d?.resourceCode);(a?.type!=="subtable"||!f||d.resourceCode===e.resourceCode||r.has(d.resourceCode))&&n("RELATION_INVALID"),r.add(d.resourceCode);let u=d.maxRows??20;(!Number.isSafeInteger(u)||u<1)&&n("BUDGET_EXCEEDED"),c+=u;for(let p of s.fieldCodes){let g=f.get(p);(!g||["serial-number","subtable"].includes(g.type)||[d.foreignKey,d.orderField].includes(p))&&n("FIELD_INVALID"),["file","image","signature","text.rich"].includes(g.type)&&!o.some(I=>I.resourceCode===d.resourceCode&&I.fieldCodes.includes(p)&&I.intents.includes("create"))&&n("FILE_ACCESS_REQUIRED")}}c>500&&n("BUDGET_EXCEEDED")}var Un=Xs(require("crypto"),1);var Kr="native-4",di="2.0.0-alpha.5",Gr={"application-native-2":"1.0.0","application.extended-declaration-capacity":"1.0.0","application.extended-artifact-capacity":"1.0.0","application.development-configuration":"1.0.0","authz.native-batch-explain":"1.0.0","authz.native-management":"1.0.0","authz.native-membership-batch":"1.0.0","deployment.durable-runs":"1.0.0","deployment.platform-executor":"1.0.0","environment.on-demand-production":"1.0.0","environment.runtime-lifecycle":"1.0.0","data-api-v2":"1.1.0","data.extended-owned-subtable-capacity":"1.0.0","data.business-commands":"1.0.0","data.record-edit":"1.0.0","data.native-golden-crud":"1.0.0","data.audit-read-access":"1.0.0","data.managed-files":"1.1.0","data.decimal-reservations":"1.1.0","data.decimal-reservation-lifecycle":"1.0.0","data.unique-keys":"1.1.0","data.user-candidates":"1.0.0","data.user-candidate-launch-scope":"1.0.0","data.datetime-minute-precision":"1.0.0","data.subtable-minimum-rows":"1.0.0","data.managed-concurrency":"1.0.0","data.managed-concurrency.durable":"1.0.0","workflow.named-input-sources":"1.0.0","workflow.approved-delegation":"1.0.0","directory-v2":"1.0.0","directory.selected-user":"1.0.0","directory.current-initiator-phone":"1.0.0","events-v2":"1.0.0","events.durable-receipts":"1.0.0","events.capture-policy":"1.0.0","events.date-source-projection":"1.0.0","events.native-data-actions":"1.0.0","workflow-kernel-v2":"1.0.0","workflow.business-data-command":"1.0.0","workflow.native-stage-guard":"1.0.0","workflow.launch-preflight":"1.0.0","workflow.optional-rejection-comment":"1.0.0","workflow.optional-operation-reason":"1.0.0","workflow.optional-withdrawal-reason":"1.0.0","data.transaction-actor-authority":"1.0.0","data.authenticated-public-projection":"1.0.0","data.record-print":"1.0.0","data.workflow-record-deletion":"1.0.0","data.record-comments":"1.0.0","workflow.record-history-read":"1.0.0","workflow.rejection-notification":"1.0.0","workflow.instance-cancellation-policy":"1.0.0","workflow.node-administration":"1.0.0","workflow.assignment-routing":"1.0.0","workflow.role-union":"1.0.0","workflow.named-owned-create":"1.0.0","workflow.owned-initial-facts":"1.0.0","workflow.initiator-correction":"1.0.0","workflow.correction-business-command":"1.0.0","workflow.role-references":"1.0.0","workflow.delegation-management":"1.0.0","workflow.automatic-cc":"1.0.0","workflow.approval-empty-policy":"1.0.0","workflow.initiator-approval-policy":"1.0.0","workflow.completion-deadline":"1.0.0","workflow.task-page-submit":"1.0.0","workflow.task-private-drafts":"1.0.0","workflow.task-managed-files":"1.0.0","workflow.task-rich-fields":"1.0.0","workflow.task-owned-subtables":"1.0.0","workflow.task-owned-files":"1.0.0","workflow.durable-business-step":"1.0.0","business-process.durable-command":"1.1.0","workflow.fresh-command-token":"1.0.0","notification-hub-v2":"1.0.0","authentication.application-login-surface":"1.0.0","public-access.anonymous-owner-records":"1.0.0"};var af=5,cf=20,df=50,lf=50,uf=100,mt=class extends Error{constructor(o,n){super(o);this.code=o;this.pointer=n;this.name="NativeDataPolicyExpressionV2Error"}code;pointer};function Kt(e,t){let o=[],n=(i,r,c)=>{c>5&&Bt("NATIVE_DATA_POLICY_EXPRESSION_DEPTH_EXCEEDED",r);let s=qr(i,r),a=["allOf","anyOf"].filter(u=>u in s);if(a.length===0){o.push({rule:s,pointer:r}),o.length>50&&Bt("NATIVE_DATA_POLICY_EXPRESSION_LEAVES_EXCEEDED",r);return}let d=a[0],f=s[d];(a.length!==1||Object.keys(s).length!==1||!Array.isArray(f)||f.length<1||f.length>20)&&Bt("NATIVE_DATA_POLICY_EXPRESSION_GROUP_INVALID",r),f.forEach((u,p)=>n(u,`${r}/${d}/${p}`,c+1))};return n(e,t,1),o}function ui(e,t){Kt(e,t);let o=(n,i)=>{let r=qr(n,i);if(Array.isArray(r.allOf))return li(r.allOf.flatMap((c,s)=>o(c,`${i}/allOf/${s}`)),i);if(Array.isArray(r.anyOf)){let c=[[]];return r.anyOf.forEach((s,a)=>{let d=o(s,`${i}/anyOf/${a}`);c=li(c.flatMap(f=>d.map(u=>[...f,...u])),i)}),c}return[[r]]};return li(o(e,t),t)}function li(e,t){let o=e.reduce((n,i)=>n+i.length,0);return(e.length>50||o>100)&&Bt("NATIVE_DATA_POLICY_EXPRESSION_EXPANSION_EXCEEDED",t),e}function qr(e,t){return(!e||typeof e!="object"||Array.isArray(e))&&Bt("NATIVE_DATA_POLICY_EXPRESSION_NODE_INVALID",t),e}function Bt(e,t){throw new mt(e,t)}var B=Object.freeze({perspectives:100,resources:512,dataPolicies:512,roles:256,subjectReadSurfaces:50,capabilities:4096,operations:500,eventConsumers:100,eventProducers:1e3,eventSchemas:100,eventTypes:500,workflows:512,routes:2048,adminPages:2048,adminNavigationGroups:100,adminNavigationItems:1024});function fi(e){let t=(e.surface?.mutationOwner||"native")==="native";return["query","get","create","update","delete"].filter(o=>{let n=e.surface?.generated;return o==="query"?n?.list??!0:o==="get"?n?.detail??!0:n?.[o]??t})}function Pn(e){let t=(e.data?.resources||[]).filter(o=>o.status!=="retired").reduce((o,n)=>o+fi(n).length,0)+(e.backend?.operations||[]).filter(o=>o.ai).length;return(e.data?.resources?.length||0)>100||(e.authz?.dataPolicies?.length||0)>100||(e.authz?.roles?.length||0)>100||(e.authz?.capabilities?.length||0)>2e3||[e.workflows?.definitions,e.workflows?.bindings,e.workflows?.activations].some(o=>(o?.length||0)>100)||(e.frontend?.routes?.length||0)>500||t>500||(e.frontend?.admin?.navigation||[]).reduce((o,n)=>o+n.items.length,0)>500}var Ae=Object.freeze({configBytes:4194304,contractBytes:8388608,depth:40,stringBytes:1048576,legacyNodes:1e5,extendedNodes:25e4});function Gt(e){let t=0,o=[[e][Symbol.iterator]()];for(;o.length;){let n=o[o.length-1].next();if(n.done){o.pop();continue}if(++t>Ae.legacyNodes)return!0;if(Array.isArray(n.value))o.push(n.value.values());else if(n.value&&typeof n.value=="object"){let i=n.value;o.push((function*(){for(let r of Object.keys(i))i[r]!==void 0&&(yield i[r])})())}}return!1}var Yc="openxiangda.config-bundle/v3",ls="openxiangda.contract-bundle/v3",zr="openxiangda.native-configuration-projection/v1",zt=Kr,Xc=/^[a-f0-9]{64}$/,Zc=/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/,Qc=/^app:[a-z][a-z0-9]*(?:-[a-z0-9]+)*:[A-Za-z0-9:._*-]+$/,ed=/^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$/,td=/^[a-z][a-z0-9]*(?:[-.][a-z0-9]+)*$/,nd=/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/,od=/^[A-Za-z][A-Za-z0-9_]{0,62}$/,Jr=/^[A-Za-z][A-Za-z0-9_]{0,127}$/,id=/^[a-z][a-z0-9]*(?:[-_][a-z0-9]+)*$/,rd=/^[A-Z][A-Z0-9_]*$/,sd=/^[a-z][a-z0-9-]{2,63}$/,ad=/^[A-Za-z][A-Za-z0-9_-]{0,127}$/,cd=/^[A-Za-z][A-Za-z0-9_.]{0,127}$/,dd=16,ld=2*1024,ud=new Set(["text.short","text.long","number.integer","number.decimal","boolean","date","time","datetime","option.single","option.multiple","cascade.single","cascade.multiple","user.single","user.multiple","department.single","department.multiple","resource-ref.single","resource-ref.multiple","uuid","serial-number"]),fd=new Set(["overview","database","operations","workflow","members","calendar","document","folder","settings"]),pd=new Set(["approve","reject","return","transfer","delegate","add_assignee","resubmit","withdraw","terminate","admin_reassign","admin_override","retry_resolution"]),md=Ae.configBytes,_d=Ae.contractBytes,gd=Ae.depth,_i=Ae.stringBytes,Ad="openxiangda.event-handler-manifest/v2",us="openxiangda.application-route-manifest/v3",Hr=64,fs=new Set(["id","revision","created_by","updated_by","created_at","updated_at"]),Vn=["openxiangda.data.record.created.v2","openxiangda.data.record.updated.v2","openxiangda.data.record.deleted.v2"],Ln=["openxiangda.workflow.node.skipped.v2",dt,"openxiangda.workflow.step.result_received.v2","openxiangda.workflow.step.completed.v2","openxiangda.workflow.step.continuation_failed.v2","openxiangda.workflow.instance.started.v2","openxiangda.workflow.instance.cc_added.v2","openxiangda.workflow.instance.completed.v2","openxiangda.workflow.instance.rejected.v2","openxiangda.workflow.instance.returned.v2","openxiangda.workflow.instance.resumed.v2","openxiangda.workflow.instance.withdrawn.v2","openxiangda.workflow.instance.terminated.v2","openxiangda.workflow.task.created.v2","openxiangda.workflow.task.assigned.v2","openxiangda.workflow.task.assignment_pending.v2","openxiangda.workflow.task.assignment_resolution_failed.v2","openxiangda.workflow.task.approved.v2","openxiangda.workflow.task.completed.v2","openxiangda.workflow.task.rejected.v2","openxiangda.workflow.task.returned.v2","openxiangda.workflow.task.resubmitted.v2","openxiangda.workflow.task.transferred.v2","openxiangda.workflow.task.reassigned.v2","openxiangda.workflow.task.delegated.v2","openxiangda.workflow.task.assignee_added.v2","openxiangda.workflow.task.cancelled.v2","openxiangda.workflow.participant.activated.v2","openxiangda.workflow.participant.completed.v2","openxiangda.workflow.participant.rejected.v2","openxiangda.workflow.participant.returned.v2","openxiangda.workflow.participant.transferred.v2","openxiangda.workflow.participant.reassigned.v2","openxiangda.workflow.participant.delegated.v2","openxiangda.workflow.participant.added.v2","openxiangda.workflow.participant.suspended.v2","openxiangda.workflow.participant.resumed.v2","openxiangda.workflow.participant.cancelled.v2"],Ed=new Set(Ln),Fn=class extends Error{code;pointer;identifiers;constructor(t,o,n={}){super(t),this.name="NativeConfigurationCompilerError",this.code=t,this.pointer=o,this.identifiers=Object.fromEntries(Object.entries(n).slice(0,8).map(([i,r])=>[i,String(r).slice(0,128)]))}};function Id(e){let t=w(e.appCode,"/appCode",128);Zc.test(t)||m("NATIVE_CONFIG_APP_CODE_INVALID","/appCode");let o=Ai(e.expectedConfigDigest,"/expectedConfigDigest"),n=Ai(e.expectedContractDigest,"/expectedContractDigest"),i=as(e.configBytes,md,"/configBytes","NATIVE_CONFIG_ARTIFACT_TOO_LARGE"),r=as(e.contractBytes,_d,"/contractBytes","NATIVE_CONTRACT_ARTIFACT_TOO_LARGE");cs(i,o,"/configBytes","NATIVE_CONFIG_DIGEST_MISMATCH"),cs(r,n,"/contractBytes","NATIVE_CONTRACT_DIGEST_MISMATCH");let c=ss(i,"/configBytes","NATIVE_CONFIG_JSON_INVALID","NATIVE_CONFIG_NOT_CANONICAL"),s=ss(r,"/contractBytes","NATIVE_CONTRACT_JSON_INVALID","NATIVE_CONTRACT_NOT_CANONICAL");pi(c,"/config",Ae.extendedNodes),pi(s,"/contracts",Ae.extendedNodes),Gt(c)||pi(s,"/contracts",Ae.legacyNodes);let a=c,d=s;bd(a,t),Od(d,t,o);let f=Nd(a,o,d.generatorVersion);dl(f,d,a),Q(f)!==Q(d)&&m("NATIVE_CONTRACT_CLOSURE_MISMATCH",Ei(f,d,"/contracts"));let u={authz:{appCode:t,...a.authz,perspectives:a.perspectives,capabilityCatalog:f.capabilities},data:{appCode:t,resources:a.data.resources,resourceContracts:f.resources,...f.concurrency?{concurrency:f.concurrency}:{},...f.subjectReadSurfaces?{subjectReadSurfaces:f.subjectReadSurfaces}:{}},events:{appCode:t,...a.events,consumers:f.eventConsumers,producers:f.eventProducers,handlerManifest:f.eventHandlerManifest,eventTypes:f.eventTypes,capturePlans:ms({resources:a.data.resources,dataPolicies:a.authz.dataPolicies,subscriptions:f.eventConsumers,capturePolicies:a.events.capturePolicies})},workflows:{appCode:t,...a.workflows,contracts:f.workflows},runtime:{appCode:t,requirements:a.runtime,backend:a.backend,frontend:a.frontend},contracts:f},p={authz:_t(u.authz),data:_t(u.data),events:_t(u.events),workflows:_t(u.workflows),runtime:_t(u.runtime),contracts:_t(u.contracts)},g={configDigest:o,contractDigest:n,generatorVersion:d.generatorVersion},I=ps(a),A={schemaVersion:zr,compilerContractVersion:zt,appCode:t,source:g,projections:p,requiredPlatformCapabilities:I,aggregateDigest:Z({schemaVersion:zr,compilerContractVersion:zt,appCode:t,source:g,requiredPlatformCapabilities:I,projectionDigests:Object.fromEntries(Object.entries(p).map(([O,b])=>[O,b.digest]))})};return Cs(A)}function Yr(e,t){let o=e.subject,n=t.find(r=>r.code===o?.resourceCode),i=new Set(Object.values(o?.factProjection||{}));return!!n?.schema?.fields?.some(r=>r.type==="subtable"&&i.has(r.code))}function ps(e){let t=e.authz.roles,o=e.data.resources,n=e.backend.operations,i=n.filter(l=>l.platformAccess?.directory?.mode==="current-initiator"&&l.platformAccess.directory.fields.includes("phone")),r=(e.data.concurrency?.commands||[]).filter(l=>l.execution?.directory?.mode==="current-initiator"&&l.execution.directory.fields.includes("phone")),c=t.some(l=>l.capabilities.some(y=>y.endsWith(":directory:read")))||o.some(l=>l.schema.fields.some(y=>["user.single","user.multiple","department.single","department.multiple"].includes(y.type)))||n.some(l=>l.platformAccess?.directory),s=!!(e.events.subscriptions.length||e.events.timers.length||e.events.dateTriggers.length||e.events.schemas.length),a=n.some(l=>l.platformAccess?.managedFiles||l.platformAccess?.managedFileCopies)||e.events.subscriptions.some(l=>l.platformAccess?.managedFileCopies),d=e.workflows.definitions.some(l=>l.definition.rejectionNotification!==void 0)||n.some(l=>l.platformAccess?.notification)||e.events.subscriptions.some(l=>l.platformAccess?.notification),f=(l,y,R=!1)=>{let h=o.find($=>$.code===l.definition.subject?.resourceCode)?.schema.fields||[];return Object.values(l.definition.taskPages||{}).some($=>$.fields.some(k=>{if(k.readonly)return!1;let M=h.find(Y=>Y.code===k.code);if(!R&&M&&y.includes(M.type))return!0;if(!k.subtable||!M?.subtable)return!1;let L=o.find(Y=>Y.code===M.subtable.resourceCode)?.schema.fields||[];return k.subtable.fields.some(Y=>!Y.readonly&&L.some(ne=>ne.code===Y.code&&y.includes(ne.type)))}))},u=e.workflows.definitions.filter(l=>f(l,["file","image","signature","text.rich"])),p=e.workflows.definitions.filter(l=>f(l,["signature","text.rich"])),g=e.workflows.definitions.filter(l=>f(l,["file","image","signature","text.rich"],!0)),I=e.workflows.definitions.filter(l=>l.launch.mode==="standalone"||l.launch.mode==="hidden-handoff"),A=n.some(l=>l.platformAccess?.workflow)||I.length>0,O=I.filter(l=>{let y=l.launch.submission;if(!y)return!1;let R=o.find(h=>h.code===l.definition.subject.resourceCode);return[y.create,y.existing].some(h=>h&&Object.values(h.inputs).some($=>$.source==="field"&&R?.schema.fields.some(k=>k.code===$.fieldCode&&k.type.startsWith("resource-ref.")&&k.source)))}),b={resources:o},_={perspectives:e.perspectives,authz:e.authz},E={schemaVersion:e.schemaVersion,appCode:e.appCode,frontend:{routes:e.frontend.routes,user:e.frontend.user,admin:e.frontend.admin,devicePolicy:e.frontend.devicePolicy},backend:{operations:n.map(l=>({code:l.code,method:l.method,path:l.path,capability:l.capability,platformAccess:l.platformAccess||null,...l.browser?{browser:l.browser}:{},ai:l.ai||null}))}};return[...Gt(e)?[{code:"application.extended-artifact-capacity",declaration:Ae}]:[],...Pn(e)?[{code:"application.extended-declaration-capacity",declaration:{resources:e.data.resources.length,policies:e.authz.dataPolicies.length,roles:e.authz.roles.length,capabilities:e.authz.capabilities.length,definitions:e.workflows.definitions.length,bindings:e.workflows.bindings.length,activations:e.workflows.activations.length,routes:e.frontend.routes.length,navigationItems:e.frontend.admin.navigation.reduce((l,y)=>l+y.items.length,0)}}]:[],...o.some(l=>l.uniqueKeys?.length)?[{code:"data.unique-keys",declaration:o.filter(l=>l.uniqueKeys?.length).map(l=>({code:l.code,uniqueKeys:l.uniqueKeys}))}]:[],...e.data.concurrency?[{code:"data.managed-concurrency",declaration:e.data.concurrency}]:[],...e.data.concurrency?.commands.some(l=>l.mode==="durable")?[{code:"data.managed-concurrency.durable",declaration:e.data.concurrency}]:[],...o.some(l=>l.decimalReservationLifecycle)?[{code:"data.decimal-reservation-lifecycle",declaration:o.filter(l=>l.decimalReservationLifecycle).map(l=>({code:l.code,decimalReservationLifecycle:l.decimalReservationLifecycle}))}]:[],...n.some(l=>l.platformAccess?.dataCommands)?[{code:"data.business-commands",declaration:n.filter(l=>l.platformAccess?.dataCommands)}]:[],...e.authz.dataPolicies.some(l=>l.publicRead)?[{code:"data.authenticated-public-projection",declaration:e.authz.dataPolicies.filter(l=>l.publicRead)}]:[],...n.some(l=>l.platformAccess?.roleAssertions?.actorAuthority)?[{code:"data.transaction-actor-authority",declaration:n.filter(l=>l.platformAccess?.roleAssertions?.actorAuthority)}]:[],...n.some(l=>l.platformAccess?.workflowStage)?[{code:"workflow.native-stage-guard",declaration:n.filter(l=>l.platformAccess?.workflowStage)}]:[],...n.some(l=>l.platformAccess?.recordEdit)?[{code:"data.record-edit",declaration:n.filter(l=>l.platformAccess?.recordEdit)}]:[],...n.some(l=>l.platformAccess?.decimalReservation)||e.events.subscriptions.some(l=>l.platformAccess?.decimalReservation)?[{code:"data.decimal-reservations",declaration:[...n.filter(l=>l.platformAccess?.decimalReservation).map(l=>({code:l.code,decimalReservation:l.platformAccess.decimalReservation})),...e.events.subscriptions.filter(l=>l.platformAccess?.decimalReservation).map(l=>({subscriptionCode:l.code,decimalReservation:l.platformAccess.decimalReservation}))]}]:[],{code:"application-native-2",declaration:E},{code:"authz.native-batch-explain",declaration:_},{code:"authz.native-management",declaration:_},{code:"deployment.durable-runs",declaration:E.backend},{code:"deployment.platform-executor",declaration:E.backend},{code:"environment.on-demand-production",declaration:{environments:["preproduction","production"]}},{code:"environment.runtime-lifecycle",declaration:{environments:["preproduction","production"]}},...o.length?[{code:"data-api-v2",declaration:b},{code:"data.native-golden-crud",declaration:b}]:[],...o.some(l=>l.recordComments!==void 0)?[{code:"data.record-comments",declaration:b}]:[],...o.some(l=>l.recordDeletion!==void 0)?[{code:"data.workflow-record-deletion",declaration:b}]:[],...o.some(l=>l.recordPrint!==void 0)?[{code:"data.record-print",declaration:b}]:[],...o.some(l=>l.workflowHistory!==void 0)?[{code:"workflow.record-history-read",declaration:b}]:[],...o.some(ao)?[{code:"data.audit-read-access",declaration:b}]:[],...c?[{code:"directory-v2",declaration:{roles:t.map(l=>({code:l.code,capabilities:l.capabilities.filter(y=>y.endsWith(":directory:read"))})),resources:o.map(l=>({code:l.code,fields:l.schema.fields.filter(y=>["user.single","user.multiple","department.single","department.multiple"].includes(y.type))})),operations:n.filter(l=>l.platformAccess?.directory).map(l=>({code:l.code,directory:l.platformAccess.directory}))}}]:[],...n.some(l=>l.platformAccess?.directory?.mode==="selected-user")?[{code:"directory.selected-user",declaration:n.filter(l=>l.platformAccess?.directory?.mode==="selected-user").map(l=>({code:l.code,directory:l.platformAccess.directory}))}]:[],...i.length||r.length?[{code:"directory.current-initiator-phone",declaration:{operations:i.map(l=>({code:l.code,directory:l.platformAccess.directory})),commands:r.map(l=>({code:l.code,directory:l.execution.directory}))}}]:[],...a?[{code:"data.managed-files",declaration:{operations:n.filter(l=>l.platformAccess?.managedFiles||l.platformAccess?.managedFileCopies).map(l=>({code:l.code,...l.platformAccess?.managedFiles?{managedFiles:l.platformAccess.managedFiles}:{},...l.platformAccess?.managedFileCopies?{managedFileCopies:l.platformAccess.managedFileCopies}:{}})),subscriptions:e.events.subscriptions.filter(l=>l.platformAccess?.managedFileCopies).map(l=>({code:l.code,managedFileCopies:l.platformAccess.managedFileCopies}))}}]:[],...e.events.subscriptions.some(l=>l.execution)?[{code:"events.native-data-actions",declaration:e.events.subscriptions.filter(l=>l.execution)}]:[],...e.events.capturePolicies?.length?[{code:"events.capture-policy",declaration:e.events.capturePolicies}]:[],...e.events.dateTriggers.some(l=>ti(l.resourceCode,e.events.subscriptions.filter(y=>y.eventTypes.includes(l.eventType)),e.data.resources.find(y=>y.code===l.resourceCode)).length>0)?[{code:"events.date-source-projection",declaration:{triggers:e.events.dateTriggers,subscriptions:e.events.subscriptions}}]:[],...s?[{code:"events-v2",declaration:e.events},{code:"events.durable-receipts",declaration:e.events}]:[],...Zt(e.data.resources)?[{code:"data.extended-owned-subtable-capacity",declaration:e.data.resources.filter(l=>Zt([l]))}]:[],...e.data.resources.some(l=>l.schema.fields.some(y=>y.userCandidates!==void 0))?[{code:"data.user-candidates",declaration:e.data.resources.filter(l=>l.schema.fields.some(y=>y.userCandidates!==void 0))}]:[],...Ko(e.workflows.bindings)?[{code:"workflow.role-union",declaration:e.workflows.bindings.filter(l=>Object.values(l.binding.bindings).some(y=>y.roleCodes!==void 0))}]:[],...e.backend.operations.some(l=>l.platformAccess?.ownedSubject)?[{code:"workflow.named-owned-create",declaration:e.backend.operations.filter(l=>l.platformAccess?.ownedSubject)}]:[],...Xt(e.data.resources)?[{code:"data.user-candidate-launch-scope",declaration:e.data.resources.filter(l=>Xt([l]))}]:[],...nn(e.data.resources)?[{code:"data.subtable-minimum-rows",declaration:e.data.resources.filter(l=>nn([l]))}]:[],...tn(e.data.resources)?[{code:"data.datetime-minute-precision",declaration:e.data.resources.filter(l=>tn([l]))}]:[],...e.workflows.activations.length?[{code:"workflow-kernel-v2",declaration:e.workflows},{code:"workflow.fresh-command-token",declaration:e.workflows}]:[],...e.workflows.definitions.some(l=>l.definition.instanceCommands!==void 0)?[{code:"workflow.instance-cancellation-policy",declaration:e.workflows.definitions.filter(l=>l.definition.instanceCommands!==void 0)}]:[],...e.workflows.definitions.some(l=>l.definition.instanceCommands?.withdraw?.reasonRequired===!1)?[{code:"workflow.optional-withdrawal-reason",declaration:e.workflows.definitions.filter(l=>l.definition.instanceCommands?.withdraw?.reasonRequired===!1)}]:[],...e.workflows.definitions.some(l=>l.definition.rejectionNotification!==void 0)?[{code:"workflow.rejection-notification",declaration:e.workflows.definitions.filter(l=>l.definition.rejectionNotification!==void 0)}]:[],...e.workflows.definitions.some(l=>l.definition.commandHandlers!==void 0)||n.some(l=>l.platformAccess?.workflow?.businessCommands)?[{code:"workflow.business-data-command",declaration:{definitions:e.workflows.definitions.filter(l=>l.definition.commandHandlers!==void 0),operations:n.filter(l=>l.platformAccess?.workflow?.businessCommands)}}]:[],...e.workflows.definitions.some(l=>l.definition.commandHandlers?.resubmit)||n.some(l=>l.platformAccess?.workflow?.businessCommands?.includes("resubmit"))?[{code:"workflow.correction-business-command",declaration:{definitions:e.workflows.definitions.filter(l=>l.definition.commandHandlers?.resubmit),operations:n.filter(l=>l.platformAccess?.workflow?.businessCommands?.includes("resubmit"))}}]:[],...e.workflows.definitions.some(l=>l.definition.launchPreflight!==void 0)?[{code:"workflow.launch-preflight",declaration:e.workflows.definitions.filter(l=>l.definition.launchPreflight!==void 0)}]:[],...e.workflows.definitions.some(l=>l.definition.approvedDelegation!==void 0)?[{code:"workflow.approved-delegation",declaration:e.workflows.definitions.filter(l=>l.definition.approvedDelegation!==void 0)}]:[],...e.workflows.definitions.some(l=>Yr(l.definition,e.data.resources))?[{code:"workflow.owned-initial-facts",declaration:e.workflows.definitions.filter(l=>Yr(l.definition,e.data.resources))}]:[],...e.workflows.definitions.some(l=>Object.values(l.definition.nodes).some(y=>y.kind==="correction"))?[{code:"workflow.initiator-correction",declaration:e.workflows.definitions.filter(l=>Object.values(l.definition.nodes).some(y=>y.kind==="correction"))}]:[],...e.workflows.definitions.some(l=>Object.values(l.definition.nodes).some(y=>y.operationPolicy?.reject?.commentRequired===!1))?[{code:"workflow.optional-rejection-comment",declaration:e.workflows.definitions.filter(l=>Object.values(l.definition.nodes).some(y=>y.operationPolicy?.reject?.commentRequired===!1))}]:[],...e.workflows.definitions.some(l=>Object.values(l.definition.nodes).some(y=>Object.values(y.operationPolicy||{}).some(R=>R.reasonRequired===!1)))?[{code:"workflow.optional-operation-reason",declaration:e.workflows.definitions.filter(l=>Object.values(l.definition.nodes).some(y=>Object.values(y.operationPolicy||{}).some(R=>R.reasonRequired===!1)))}]:[],...O.length?[{code:"workflow.named-input-sources",declaration:O}]:[],...e.workflows.definitions.some(l=>Object.values(l.definition.nodes).some(y=>y.administration!==void 0||y.operationPolicy!==void 0))?[{code:"workflow.node-administration",declaration:e.workflows.definitions.filter(l=>Object.values(l.definition.nodes).some(y=>y.administration!==void 0||y.operationPolicy!==void 0))}]:[],...e.workflows.definitions.some(l=>Object.values(l.definition.nodes).some(y=>y.kind==="approval"&&y.emptyPolicy!==void 0))?[{code:"workflow.approval-empty-policy",declaration:e.workflows.definitions.filter(l=>Object.values(l.definition.nodes).some(y=>y.kind==="approval"&&y.emptyPolicy!==void 0))}]:[],...e.workflows.definitions.some(l=>Object.values(l.definition.nodes).some(y=>y.completionDeadline!==void 0))?[{code:"workflow.completion-deadline",declaration:e.workflows.definitions.filter(l=>Object.values(l.definition.nodes).some(y=>y.completionDeadline!==void 0))}]:[],...e.workflows.definitions.some(l=>Object.values(l.definition.nodes).some(y=>y.initiatorApprovalPolicy!==void 0))?[{code:"workflow.initiator-approval-policy",declaration:e.workflows.definitions.filter(l=>Object.values(l.definition.nodes).some(y=>y.initiatorApprovalPolicy!==void 0))}]:[],...e.workflows.definitions.some(l=>Object.values(l.definition.nodes).some(y=>y.kind==="cc"))?[{code:"workflow.automatic-cc",declaration:e.workflows.definitions.filter(l=>Object.values(l.definition.nodes).some(y=>y.kind==="cc"))}]:[],...e.workflows.definitions.some(l=>l.definition.taskPages!==void 0)?["workflow.task-page-submit","workflow.task-private-drafts"].map(l=>({code:l,declaration:e.workflows.definitions.filter(y=>y.definition.taskPages!==void 0)})):[],...u.length?[{code:"workflow.task-managed-files",declaration:u}]:[],...g.length?[{code:"workflow.task-owned-files",declaration:g}]:[],...p.length?[{code:"workflow.task-rich-fields",declaration:p}]:[],...e.workflows.definitions.some(l=>Object.values(l.definition.taskPages||{}).some(y=>y.fields.some(R=>R.subtable)))?[{code:"workflow.task-owned-subtables",declaration:e.workflows.definitions.filter(l=>Object.values(l.definition.taskPages||{}).some(y=>y.fields.some(R=>R.subtable)))}]:[],...e.workflows.definitions.some(l=>Object.values(l.definition.nodes).some(y=>y.kind==="action"))?[{code:"workflow.durable-business-step",declaration:e.workflows.definitions.filter(l=>Object.values(l.definition.nodes).some(y=>y.kind==="action"))}]:[],...e.workflows.bindings.some(l=>Object.values(l.binding.bindings).some(y=>y.routing!==void 0))?[{code:"workflow.assignment-routing",declaration:e.workflows.bindings.filter(l=>Object.values(l.binding.bindings).some(y=>y.routing!==void 0))}]:[],...A?[{code:"business-process.durable-command",declaration:{operations:n.filter(l=>l.platformAccess?.workflow).map(l=>({code:l.code,workflow:l.platformAccess.workflow})),definitions:I,activations:e.workflows.activations.filter(l=>I.some(y=>y.definition.code===l.workflowCode))}}]:[],...d?[{code:"notification-hub-v2",declaration:{...e.workflows.definitions.some(l=>l.definition.rejectionNotification!==void 0)?{rejectionNotifications:e.workflows.definitions.filter(l=>l.definition.rejectionNotification!==void 0)}:{},operations:n.filter(l=>l.platformAccess?.notification).map(l=>({code:l.code,notification:l.platformAccess.notification})),subscriptions:e.events.subscriptions.filter(l=>l.platformAccess?.notification).map(l=>({code:l.code,notification:l.platformAccess.notification}))}}]:[],...e.frontend.authentication?[{code:"authentication.application-login-surface",declaration:e.frontend.authentication}]:[],...e.frontend.publicAccess?[{code:"public-access.anonymous-owner-records",declaration:e.frontend.publicAccess}]:[]].map(({code:l,declaration:y})=>({code:l,contractVersion:l==="data.unique-keys"?o.some(R=>$o(R.schema.fields,R.uniqueKeys)==="1.1.0")?"1.1.0":"1.0.0":Gr[l],usageDigest:`sha256:${Z(y)}`})).sort((l,y)=>l.code===y.code?0:l.code<y.code?-1:1)}function ms(e){let t=new Map,o=new Set(e.resources.map(r=>String(r.code)));for(let[r,c]of S(e.capturePolicies===void 0?[]:e.capturePolicies,"/capturePlan/capturePolicies",100).entries()){let s=`/capturePlan/capturePolicies/${r}`,a=N(c,s);C(a,["resourceCode","mode"],s);let d=H(a.resourceCode,`${s}/resourceCode`);o.has(d)||m("NATIVE_EVENT_CAPTURE_RESOURCE_NOT_FOUND",s,{resourceCode:d}),t.has(d)&&m("NATIVE_EVENT_CAPTURE_POLICY_DUPLICATE",s,{resourceCode:d}),a.mode!=="all"&&a.mode!=="subscribed"&&m("NATIVE_EVENT_CAPTURE_MODE_INVALID",`${s}/mode`),t.set(d,a.mode)}let n=new Map(e.dataPolicies.map((r,c)=>{let s=N(r,`/capturePlan/dataPolicies/${c}`);return[String(s.code),s]})),i=e.subscriptions.map((r,c)=>N(r,`/capturePlan/subscriptions/${c}`));return e.resources.map((r,c)=>{let s=`/capturePlan/resources/${c}`,a=N(r,s),d=H(a.code,`${s}/code`),f=a.schema?N(a.schema,`${s}/schema`):a,u=new Set(S(f.fields||[],`${s}/schema/fields`,500).map((y,R)=>G(N(y,`${s}/schema/fields/${R}`).code,`${s}/schema/fields/${R}/code`))),p=a.dataPolicyCode?P(a.dataPolicyCode,`${s}/dataPolicyCode`):null,g=p?n.get(p):void 0;p&&!g&&m("NATIVE_EVENT_CAPTURE_AUTHZ_POLICY_NOT_FOUND",s,{resourceCode:d,dataPolicyCode:p});let I=new Set;for(let y of g?.rules||[])I.add(String(y.field));if(g?.readExpression)for(let y of Kt(g.readExpression,`${s}/readExpression`))I.add(String(y.rule.field));let A=new Set,O=new Set,b=new Set;for(let[y,R]of i.entries()){let h=S(R.eventTypes,`/capturePlan/subscriptions/${y}/eventTypes`,20).map(String);if(!h.some(L=>L.startsWith("openxiangda.data.")))continue;let $=N(R.filter||{},`/capturePlan/subscriptions/${y}/filter`),k=Array.isArray($.resourceCodes)?$.resourceCodes.map(String):[];if(k.length&&!k.includes(d))continue;for(let L of h)Vn.includes(L)&&b.add(L);for(let L of yd($,`/capturePlan/subscriptions/${y}/filter`))A.add(L);let M=N(R.payload||{},`/capturePlan/subscriptions/${y}/payload`);for(let L of S(M.fields||[],`/capturePlan/subscriptions/${y}/payload/fields`,32))O.add(G(L,`/capturePlan/subscriptions/${y}/payload/fields`))}let _=new Set([...A,...O]),E=new Set([..._,...I]);E.size>Hr&&m("NATIVE_EVENT_CAPTURE_FIELDS_LIMIT",s,{resourceCode:d,maximum:Hr});for(let y of E)!u.has(y)&&!(I.has(y)&&fs.has(y))&&m("NATIVE_EVENT_CAPTURE_FIELD_NOT_FOUND",s,{resourceCode:d,field:y});let T=N(a.fieldPolicies||{},`${s}/fieldPolicies`);for(let y of _)T[y]?.mask==="omit"&&m("NATIVE_EVENT_CAPTURE_FIELD_SENSITIVE",s,{resourceCode:d,field:y});let l={resourceCode:d,...t.get(d)==="subscribed"?{capturedEventTypes:[...b].sort()}:{},filterFields:[...A].sort(),projectionFields:[...O].sort(),authorizationFields:[...I].sort(),captureFields:[...E].sort()};return{...l,digest:Z(l)}}).sort((r,c)=>r.resourceCode.localeCompare(c.resourceCode))}function yd(e,t){let o=new Set;for(let[c,s]of S(e.changes||[],`${t}/changes`,16).entries()){let a=N(s,`${t}/changes/${c}`);o.add(G(a.field,`${t}/changes/${c}/field`))}let n=N(e.changedFields||{},`${t}/changedFields`);for(let c of["anyOf","allOf","noneOf"])for(let[s,a]of S(n[c]||[],`${t}/changedFields/${c}`,32).entries())o.add(G(a,`${t}/changedFields/${c}/${s}`));let i=0,r=(c,s,a)=>{a>3&&m("NATIVE_EVENT_FILTER_DEPTH_LIMIT",s);let d=N(c,s);if(d.change){let u=N(d.change,`${s}/change`);o.add(G(u.field,`${s}/change/field`)),i+=1;return}if(d.not){r(d.not,`${s}/not`,a+1);return}let f=d.all?"all":d.any?"any":null;f||m("NATIVE_EVENT_FILTER_CONDITION_INVALID",s);for(let[u,p]of S(d[f],`${s}/${f}`,16).entries())r(p,`${s}/${f}/${u}`,a+1)};return e.where&&r(e.where,`${t}/where`,1),i+=Array.isArray(e.changes)?e.changes.length:0,i>16&&m("NATIVE_EVENT_FILTER_ATOM_LIMIT",t),[...o].sort()}function bd(e,t){C(e,["schemaVersion","compilerContractVersion","appCode","perspectives","authz","backend","data","events","workflows","frontend","runtime"],"/config"),F(e.schemaVersion,Yc,"/config/schemaVersion"),F(e.compilerContractVersion,zt,"/config/compilerContractVersion"),F(e.appCode,t,"/config/appCode"),S(e.perspectives,"/config/perspectives",100);let o=N(e.authz,"/config/authz");C(o,["capabilities","roles","scopeDimensions","scopeSources","roleMembershipSources","relationshipGrantSources","dataPolicies","authorizationTransitions"],"/config/authz",["authenticatedUserRoleCode"]),S(o.capabilities,"/config/authz/capabilities",B.capabilities),S(o.roles,"/config/authz/roles",B.roles),S(o.scopeDimensions,"/config/authz/scopeDimensions",100),S(o.scopeSources,"/config/authz/scopeSources",100),S(o.roleMembershipSources,"/config/authz/roleMembershipSources",100),S(o.relationshipGrantSources,"/config/authz/relationshipGrantSources",100),S(o.dataPolicies,"/config/authz/dataPolicies",B.dataPolicies),S(o.authorizationTransitions,"/config/authz/authorizationTransitions",100);let n=N(e.backend,"/config/backend");C(n,["secrets","operations"],"/config/backend"),S(n.secrets,"/config/backend/secrets",100),S(n.operations,"/config/backend/operations",500),ol(n.secrets);let i=N(e.data,"/config/data");C(i,["resources"],"/config/data",["resourceDetailRoutes","subjectReadSurfaces","concurrency"]),S(i.resources,"/config/data/resources",B.resources),i.subjectReadSurfaces!==void 0&&S(i.subjectReadSurfaces,"/config/data/subjectReadSurfaces",B.subjectReadSurfaces),i.resourceDetailRoutes!==void 0&&S(i.resourceDetailRoutes,"/config/data/resourceDetailRoutes",100);let r=N(e.events,"/config/events");C(r,["schemas","subscriptions","timers","dateTriggers"],"/config/events",["capturePolicies"]),S(r.schemas,"/config/events/schemas",100),S(r.subscriptions,"/config/events/subscriptions",100),S(r.timers,"/config/events/timers",100),S(r.dateTriggers,"/config/events/dateTriggers",100);let c=N(e.workflows,"/config/workflows");C(c,["definitions","bindings","activations","providers","editableParameters"],"/config/workflows"),S(c.definitions,"/config/workflows/definitions",B.workflows),S(c.bindings,"/config/workflows/bindings",B.workflows),S(c.activations,"/config/workflows/activations",B.workflows),S(c.providers,"/config/workflows/providers",100),S(c.editableParameters,"/config/workflows/editableParameters",100);let s=N(e.frontend,"/config/frontend");C(s,["routes","user","admin","devicePolicy"],"/config/frontend",["authentication","publicAccess"]),S(s.routes,"/config/frontend/routes",B.routes);let a=N(s.user,"/config/frontend/user");C(a,["applicationTodoCenter"],"/config/frontend/user"),At(a.applicationTodoCenter,"/config/frontend/user/applicationTodoCenter"),Ii(s.devicePolicy,"/config/frontend/devicePolicy"),Object.prototype.hasOwnProperty.call(s,"authentication")&&gs(s.authentication,s.routes,e,"/config/frontend/authentication"),Object.prototype.hasOwnProperty.call(s,"publicAccess")&&xd(s.publicAccess,e,"/config/frontend/publicAccess");let d=N(s.admin,"/config/frontend/admin");C(d,["navigation"],"/config/frontend/admin",["access"]),d.access!==void 0&&Bn(d.access,"/config/frontend/admin/access",e.appCode),Md(d.navigation,"/config/frontend/admin/navigation");let f=N(e.runtime,"/config/runtime");C(f,["protocolCapabilities","health"],"/config/runtime"),V(f.protocolCapabilities,"/config/runtime/protocolCapabilities",100),C(N(f.health,"/config/runtime/health"),["livePath","readyPath","versionPath"],"/config/runtime/health"),F(f.health.livePath,"/__platform/health","/config/runtime/health/livePath"),F(f.health.readyPath,"/__platform/ready","/config/runtime/health/readyPath"),F(f.health.versionPath,"/__platform/version","/config/runtime/health/versionPath")}function Od(e,t,o){C(e,["schemaVersion","compilerContractVersion","generatorVersion","appCode","configDigest","perspectives","resources","capabilities","operations","eventConsumers","eventProducers","eventSchemas","eventHandlerManifest","eventTypes","workflows","routes","routeManifest","adminPages","adminNavigation"],"/contracts",["authentication","publicAccess","adminAccess","subjectReadSurfaces","concurrency"]),F(e.schemaVersion,ls,"/contracts/schemaVersion"),F(e.compilerContractVersion,zt,"/contracts/compilerContractVersion"),w(e.generatorVersion,"/contracts/generatorVersion",128),F(e.appCode,t,"/contracts/appCode"),F(e.configDigest,o,"/contracts/configDigest"),S(e.perspectives,"/contracts/perspectives",B.perspectives),S(e.resources,"/contracts/resources",B.resources),e.subjectReadSurfaces!==void 0&&S(e.subjectReadSurfaces,"/contracts/subjectReadSurfaces",B.subjectReadSurfaces),S(e.capabilities,"/contracts/capabilities",B.capabilities),S(e.operations,"/contracts/operations",B.operations),S(e.eventConsumers,"/contracts/eventConsumers",B.eventConsumers),S(e.eventProducers,"/contracts/eventProducers",B.eventProducers),S(e.eventSchemas,"/contracts/eventSchemas",B.eventSchemas),N(e.eventHandlerManifest,"/contracts/eventHandlerManifest"),V(e.eventTypes,"/contracts/eventTypes",B.eventTypes),S(e.workflows,"/contracts/workflows",B.workflows),S(e.routes,"/contracts/routes",B.routes),Object.prototype.hasOwnProperty.call(e,"authentication")&&Vd(e.authentication,"/contracts/authentication"),Object.prototype.hasOwnProperty.call(e,"publicAccess")&&jd(e.publicAccess,"/contracts/publicAccess"),Object.prototype.hasOwnProperty.call(e,"adminAccess")&&Bn(e.adminAccess,"/contracts/adminAccess",t),Jd(e.routeManifest,"/contracts/routeManifest",t),Gd(e.adminPages,"/contracts/adminPages"),qd(e.adminNavigation,"/contracts/adminNavigation")}function Nd(e,t,o){let n=Cd(e);Qd(e,n),tl(e),el(e),il(e);let i=e.events.schemas.map((_,E)=>{let T=`/config/events/schemas/${E}`,l=N(_,T),y=w(l.eventType,`${T}/eventType`,255);return y.startsWith("openxiangda.")&&m("NATIVE_EVENT_SCHEMA_RESERVED",`${T}/eventType`,{eventType:y}),F(l.schemaDigest,Z(N(l.jsonSchema,`${T}/jsonSchema`)),`${T}/schemaDigest`),l}),r=new Set([...Vn,...Ln,...i.map(_=>String(_.eventType))]),c=new Map(e.data.resources.map(_=>[String(_.code),new Map(_.schema.fields.map(E=>[String(E.code),String(E.type)]))])),s=ee(e.events.subscriptions.map((_,E)=>{let T=`/config/events/subscriptions/${E}`,l=N(_,T),y=V(l.eventTypes,`${T}/eventTypes`,20);y.forEach((k,M)=>{r.has(k)||m("NATIVE_EVENT_TYPE_NOT_REGISTERED",`${T}/eventTypes/${M}`,{eventType:k})});let R=vo(l,e.data.resources,T),h=Rd(l.delivery,y,`${T}/delivery`),$=Td(l.platformAccess,`${T}/platformAccess`,c,e,l);return{code:P(l.code,`${T}/code`),endpointPath:Ne(l.endpointPath,`${T}/endpointPath`),eventTypes:y,filter:N(l.filter,`${T}/filter`),payload:R?.payload||N(l.payload,`${T}/payload`),...R?{execution:R.execution}:{},...$?{platformAccess:$}:{},delivery:h}}),_=>_.code),a=new Map(i.map(_=>[String(_.eventType),String(_.dataSchemaVersion)])),d=ee([...e.data.resources.flatMap(_=>Vn.map(E=>({code:`data:${_.code}:${E}`,source:"data",eventType:E,dataSchemaVersion:"2.0.0",resourceCode:_.code}))),...i.map(_=>({code:`app:${_.eventType}`,source:"app",eventType:_.eventType,dataSchemaVersion:_.dataSchemaVersion})),...e.events.timers.map(_=>({code:_.code,source:"timer",eventType:_.eventType,dataSchemaVersion:a.get(String(_.eventType))||"2.0.0"})),...e.events.dateTriggers.map(_=>({code:_.code,source:"date",eventType:_.eventType,dataSchemaVersion:a.get(String(_.eventType))||"2.0.0",resourceCode:_.resourceCode,field:_.field})),...e.workflows.activations.length?Ln.filter(_=>!xo.includes(_)||e.workflows.definitions.some(E=>Object.values(E.definition.nodes).some(T=>T.kind==="action"))).filter(_=>_!=="openxiangda.workflow.node.skipped.v2"||e.workflows.definitions.some(E=>Object.values(E.definition.nodes).some(T=>T.kind==="approval"&&T.emptyPolicy==="skip"))).map(_=>({code:`workflow:${_}`,source:"workflow",eventType:_,dataSchemaVersion:"2.0.0"})):[]],_=>`${_.source}:${_.code}:${_.eventType}`),f=U([...s.flatMap(_=>_.eventTypes),...d.map(_=>String(_.eventType))]);Kd(e);let u=Is(e),p;try{p=Io(e.data.concurrency,e.data.resources,n)}catch(_){throw _ instanceof rt&&m(_.code,_.pointer,{reason:_.reason}),_}p?.commands.some(_=>_.mode==="durable")&&e.backend?.enabled===!1&&m("NATIVE_MANAGED_CONCURRENCY_INVALID","/data/concurrency",{reason:"durable commands require backend runtime"});let g=wd(e,n),I=_s(e),A=e.workflows.definitions.map(_=>_.definition),O=Nn(A),b=Wo(A,s,!0);b.length&&m(b[0],"/config/events/subscriptions");try{No(e.data.resources,I)}catch(_){throw _ instanceof Be&&m(_.code,_.pointer,{reason:_.reason}),_}return{schemaVersion:ls,compilerContractVersion:zt,generatorVersion:o,appCode:e.appCode,configDigest:t,perspectives:e.perspectives,resources:hd(e),...g.length?{subjectReadSurfaces:g}:{},...p?{concurrency:p}:{},capabilities:ee(n,_=>_.code),operations:I,eventConsumers:s,eventProducers:d,eventSchemas:i,eventHandlerManifest:{schemaVersion:Ad,appCode:e.appCode,handlers:s.filter(_=>!_.execution).map(_=>({code:_.code,endpointPath:_.endpointPath,eventTypes:_.eventTypes,dataSchemaVersions:U(_.eventTypes.map(E=>E.startsWith("openxiangda.")?"2.0.0":a.get(E)||"2.0.0")),maxBodyBytes:65536,receiptProtocolVersion:2,...O[_.code]?{workflowStep:O[_.code]}:{}}))},eventTypes:f,workflows:Os(e),routes:Mn(e),...Object.prototype.hasOwnProperty.call(e.frontend,"authentication")?{authentication:Ld(e)}:{},...Object.prototype.hasOwnProperty.call(e.frontend,"publicAccess")?{publicAccess:Wd(e)}:{},...e.frontend.admin.access?{adminAccess:e.frontend.admin.access}:{},routeManifest:Xd(e),adminPages:u,adminNavigation:Ud(e)}}function Td(e,t,o,n,i){if(e===void 0)return;let r=N(e,t);C(r,["notification","managedFileCopies","decimalReservation"],t,!0);let c={};if(r.decimalReservation!==void 0)try{c.decimalReservation=ur(r.decimalReservation,fr(n,i))}catch{m("NATIVE_EVENT_DECIMAL_RESERVATION_INVALID",`${t}/decimalReservation`)}if(r.notification!==void 0){let s=N(r.notification,`${t}/notification`);C(s,["mode"],`${t}/notification`),F(s.mode,"business-standard",`${t}/notification/mode`),c.notification={mode:"business-standard"}}if(r.managedFileCopies!==void 0){let s=S(r.managedFileCopies,`${t}/managedFileCopies`,16);s.length||m("NATIVE_EVENT_MANAGED_FILE_COPIES_REQUIRED",`${t}/managedFileCopies`);let a=new Set;c.managedFileCopies=ee(s.map((d,f)=>{let u=`${t}/managedFileCopies/${f}`,p=N(d,u);C(p,["mode","sourceResourceCode","sourceFieldCodes","targetResourceCode","targetFieldCodes"],u),F(p.mode,"copy",`${u}/mode`);let g=H(p.sourceResourceCode,`${u}/sourceResourceCode`),I=H(p.targetResourceCode,`${u}/targetResourceCode`),A=o.get(g),O=o.get(I);(!A||!O)&&m("NATIVE_EVENT_MANAGED_FILE_COPY_RESOURCE_INVALID",u);let b=V(p.sourceFieldCodes,`${u}/sourceFieldCodes`,16),_=V(p.targetFieldCodes,`${u}/targetFieldCodes`,16);(!b.length||b.length!==_.length)&&m("NATIVE_EVENT_MANAGED_FILE_COPY_FIELDS_INVALID",u),b.forEach((T,l)=>{let y=A.get(T),R=O.get(_[l]);(!["file","image"].includes(String(y))||y!==R)&&m("NATIVE_EVENT_MANAGED_FILE_COPY_FIELD_INVALID",`${u}/sourceFieldCodes/${l}`)});let E=`${g}:${b.join(",")}=>${I}:${_.join(",")}`;return a.has(E)&&m("NATIVE_EVENT_MANAGED_FILE_COPY_DUPLICATE",u),a.add(E),{mode:"copy",sourceResourceCode:g,sourceFieldCodes:U(b),targetResourceCode:I,targetFieldCodes:U(_)}}),d=>`${d.sourceResourceCode}:${d.sourceFieldCodes.join(",")}=>${d.targetResourceCode}:${d.targetFieldCodes.join(",")}`)}return Object.keys(c).length||m("NATIVE_EVENT_PLATFORM_ACCESS_EMPTY",t),c}function Rd(e,t,o){let n=N(e,o);C(n,["timeoutMs","maxAttempts","initialBackoffMs","maxBackoffMs","ordering","concurrency"],o),ie(n.timeoutMs,`${o}/timeoutMs`,1e3,3e4),ie(n.maxAttempts,`${o}/maxAttempts`,1,12);let i=ie(n.initialBackoffMs,`${o}/initialBackoffMs`,1e3,3e5);ie(n.maxBackoffMs,`${o}/maxBackoffMs`,i,18e5),ie(n.concurrency,`${o}/concurrency`,1,50);let r=w(n.ordering,`${o}/ordering`,32);return["none","record","workflow-instance"].includes(r)||m("NATIVE_EVENT_DELIVERY_ORDERING_INVALID",`${o}/ordering`),r==="workflow-instance"&&t.some(c=>!Ed.has(c))&&m("NATIVE_EVENT_WORKFLOW_ORDERING_REQUIRES_WORKFLOW_FACTS",`${o}/ordering`),n}function Cd(e){let t=new Map;for(let r of Rs(e.appCode))t.set(r.code,r);for(let[r,c]of e.authz.capabilities.entries()){let s=`/config/authz/capabilities/${r}`,a=N(c,s);C(a,["code","kind","name","description"],s,!0);let d=pe(a.code,`${s}/code`,e.appCode);t.has(d)&&m("NATIVE_CAPABILITY_DUPLICATE",`${s}/code`),["backend","ui"].includes(a.kind)||m("NATIVE_CAPABILITY_KIND_INVALID",`${s}/kind`);let f={code:d,kind:a.kind,name:w(a.name,`${s}/name`,255),source:"explicit",...a.description===void 0?{}:{description:bi(a.description,`${s}/description`,2e3)}};t.set(d,f)}let o=e.data.resources.map((r,c)=>({pointer:`/config/data/resources/${c}`,resource:He(r,`/config/data/resources/${c}`,e.appCode)}));for(let{pointer:r,resource:c}of o){let s={read:`\u8BFB\u53D6${c.name}`,create:`\u65B0\u5EFA${c.name}`,update:`\u66F4\u65B0${c.name}`,delete:`\u5220\u9664${c.name}`};for(let a of["read","create","update","delete"]){let d=pe(c.capabilities[a],`${r}/capabilities/${a}`,e.appCode);t.has(d)&&m("NATIVE_CAPABILITY_DUPLICATE",`${r}/capabilities/${a}`),t.set(d,{code:d,kind:"data",name:s[a],source:"data"})}}let n=new Set(t.keys()),i=new Map;for(let{pointer:r,resource:c}of o)for(let[s,a]of Object.entries(c.fieldPolicies)){if(tt(s))continue;let d=N(a,`${r}/fieldPolicies/${s}`);for(let f of["read","create","update"])if(Array.isArray(d[f]))for(let u of V(d[f],`${r}/fieldPolicies/${s}/${f}`,2e3)){if(pe(u,`${r}/fieldPolicies/${s}/${f}`,e.appCode),n.has(u))continue;let p=i.get(u);p&&p!==c.code&&m("NATIVE_CAPABILITY_DUPLICATE",`${r}/fieldPolicies/${s}/${f}`),i.set(u,c.code),!t.has(u)&&t.set(u,{code:u,kind:"data",name:`${c.name}.${s}.${f}`,source:"data"})}}return[...t.values()]}function hd(e){let t=Sd(e);return ee(e.data.resources.map((o,n)=>{let i=He(o,`/config/data/resources/${n}`,e.appCode),r=t.get(i.code);return{code:i.code,schemaDigest:Z(i.schema),fields:ee(i.schema.fields.map(c=>({code:c.code,type:c.type})),c=>c.code),...r?{detailRouteCode:r}:{}}}),o=>o.code)}function wd(e,t){if(e.data.subjectReadSurfaces===void 0)return[];let o=S(e.data.subjectReadSurfaces,"/config/data/subjectReadSurfaces",B.subjectReadSurfaces),n=new Set(t.map(c=>String(c.code))),i=new Map(e.data.resources.map((c,s)=>{let a=`/config/data/resources/${s}`,d=He(c,a,e.appCode);return[String(d.code),{resource:d,fields:new Map(S(N(d.schema,`${a}/schema`).fields,`${a}/schema/fields`,500).map(f=>{let u=N(f,`${a}/schema/fields`);return[String(u.code),u]}))}]})),r=new Set;return ee(o.map((c,s)=>{let a=`/config/data/subjectReadSurfaces/${s}`,d=N(c,a);C(d,["code","name","capability","subject","relations"],a);let f=P(d.code,`${a}/code`);r.has(f)&&m("NATIVE_SUBJECT_READ_SURFACE_CODE_DUPLICATE",`${a}/code`),r.add(f);let u=pe(d.capability,`${a}/capability`,e.appCode);n.has(u)||m("NATIVE_SUBJECT_READ_SURFACE_CAPABILITY_NOT_DECLARED",`${a}/capability`);let p=N(d.subject,`${a}/subject`);C(p,["resourceCode","fields"],`${a}/subject`);let g=H(p.resourceCode,`${a}/subject/resourceCode`),I=i.get(g);I||m("NATIVE_SUBJECT_READ_SURFACE_RESOURCE_NOT_DECLARED",`${a}/subject/resourceCode`);let A=V(p.fields,`${a}/subject/fields`,100).map((T,l)=>G(T,`${a}/subject/fields/${l}`));A.length||m("NATIVE_SUBJECT_READ_SURFACE_FIELDS_REQUIRED",`${a}/subject/fields`);for(let[T,l]of A.entries()){let y=I.fields.get(l);(!y||y.type==="subtable")&&m("NATIVE_SUBJECT_READ_SURFACE_FIELD_INVALID",`${a}/subject/fields/${T}`)}let O=S(d.relations,`${a}/relations`,8);O.length||m("NATIVE_SUBJECT_READ_SURFACE_RELATIONS_REQUIRED",`${a}/relations`);let b=new Set,_=0,E=ee(O.map((T,l)=>{let y=`${a}/relations/${l}`,R=N(T,y);C(R,["code","resourceCode","foreignKeyField","fields","limit"],y,["order"]);let h=P(R.code,`${y}/code`);b.has(h)&&m("NATIVE_SUBJECT_READ_SURFACE_RELATION_CODE_DUPLICATE",`${y}/code`),b.add(h);let $=H(R.resourceCode,`${y}/resourceCode`),k=i.get($);k||m("NATIVE_SUBJECT_READ_SURFACE_RESOURCE_NOT_DECLARED",`${y}/resourceCode`);let M=G(R.foreignKeyField,`${y}/foreignKeyField`),L=k.fields.get(M),Y=N(L?.source||{},`${y}/foreignKeyField/source`);(!L||!["uuid","resource-ref.single"].includes(String(L.type))||L.type==="resource-ref.single"&&(Y.kind!=="resource"||Y.resourceCode!==g))&&m("NATIVE_SUBJECT_READ_SURFACE_RELATION_INVALID",`${y}/foreignKeyField`);let ne=V(R.fields,`${y}/fields`,100).map((le,v)=>G(le,`${y}/fields/${v}`));ne.length||m("NATIVE_SUBJECT_READ_SURFACE_FIELDS_REQUIRED",`${y}/fields`);for(let[le,v]of ne.entries()){let W=k.fields.get(v);(!W||W.type==="subtable")&&m("NATIVE_SUBJECT_READ_SURFACE_FIELD_INVALID",`${y}/fields/${le}`)}let X=S(R.order||[],`${y}/order`,10).map((le,v)=>{let W=`${y}/order/${v}`,x=N(le,W);C(x,["field","direction"],W);let q=G(x.field,`${W}/field`),z=k.fields.get(q);return(!fs.has(q)&&!z||z?.type==="subtable"||z&&!ot(z.type))&&m("NATIVE_SUBJECT_READ_SURFACE_ORDER_FIELD_INVALID",`${W}/field`),["asc","desc"].includes(String(x.direction))||m("NATIVE_SUBJECT_READ_SURFACE_ORDER_DIRECTION_INVALID",`${W}/direction`),{field:q,direction:x.direction}}),de=ie(R.limit,`${y}/limit`,1,100);return _+=de,{code:h,resourceCode:$,foreignKeyField:M,fields:U(ne),...X.length?{order:X}:{},limit:de}}),T=>T.code);return _>400&&m("NATIVE_SUBJECT_READ_SURFACE_ROW_LIMIT_EXCEEDED",`${a}/relations`),{code:f,name:w(d.name,`${a}/name`,255),capability:u,subject:{resourceCode:g,fields:U(A)},relations:E}}),c=>c.code)}function Sd(e){let t=e.data.resourceDetailRoutes===void 0?[]:S(e.data.resourceDetailRoutes,"/config/data/resourceDetailRoutes",100),o=new Map(e.data.resources.map((r,c)=>{let s=`/config/data/resources/${c}`,a=He(r,s,e.appCode);return[a.code,a]})),n=new Map(Mn(e).map(r=>[String(r.code),r])),i=new Map;for(let[r,c]of t.entries()){let s=`/config/data/resourceDetailRoutes/${r}`,a=N(c,s);C(a,["resourceCode","desktop","mobile"],s);let d=H(a.resourceCode,`${s}/resourceCode`);i.has(d)&&m("NATIVE_DATA_RESOURCE_DETAIL_ROUTE_DUPLICATE",`${s}/resourceCode`);let f=o.get(d);f||m("NATIVE_DATA_RESOURCE_DETAIL_ROUTE_RESOURCE_MISSING",`${s}/resourceCode`);let u=P(a.desktop,`${s}/desktop`),p=P(a.mobile,`${s}/mobile`);u===p&&m("NATIVE_DATA_RESOURCE_DETAIL_ROUTE_INVALID",s);let g=String(f.capabilities.read);for(let[I,A]of[["desktop",u],["mobile",p]]){let O=`${s}/${I}`,b=n.get(A);b||m("NATIVE_DATA_RESOURCE_DETAIL_ROUTE_REFERENCE_MISSING",O),b.surface!=="user"&&m("NATIVE_DATA_RESOURCE_DETAIL_ROUTE_SURFACE_INVALID",O);let _=Ne(b.path,`${O}/path`),E=[..._.matchAll(/:([A-Za-z][A-Za-z0-9_]*)/g)],T=I==="mobile"?!_.startsWith("/m/"):_==="/m"||_.startsWith("/m/");(_.includes("*")||_.includes("?")||_.includes("#")||_.split("/").includes("..")||E.length!==1||T)&&m("NATIVE_DATA_RESOURCE_DETAIL_ROUTE_PATH_INVALID",O);let l=Array.isArray(b.access?.allOf)?b.access.allOf:[];b.capability!==g&&!l.includes(g)&&m("NATIVE_DATA_RESOURCE_DETAIL_ROUTE_CAPABILITY_INVALID",O)}i.set(d,{desktop:u,mobile:p})}return i}function _s(e){let t=new Map(e.data.resources.map((c,s)=>{let a=`/config/data/resources/${s}`,d=He(c,a,e.appCode);return[d.code,new Map(d.schema.fields.map(f=>[String(f.code),f]))]})),o=new Map(e.data.resources.map((c,s)=>{let a=`/config/data/resources/${s}`,d=He(c,a,e.appCode);return[d.code,new Map(d.schema.fields.map(f=>[String(f.code),String(f.type)]))]})),n=new Set(o.keys()),i=new Set(e.workflows.activations.map((c,s)=>Kn(N(c,`/config/workflows/activations/${s}`).workflowCode,`/config/workflows/activations/${s}/workflowCode`))),r=new Map;return ee(e.backend.operations.map((c,s)=>{let a=`/config/backend/operations/${s}`,d=N(c,a);C(d,["code","method","path","capability","requestSchema","responseSchema","description","platformAccess","browser","ai"],a,!0);let f=w(d.method,`${a}/method`,16);["GET","POST","PUT","PATCH","DELETE"].includes(f)||m("NATIVE_OPERATION_METHOD_INVALID",`${a}/method`);let u=P(d.code,`${a}/code`);vd(d.ai,a,u,f,n);let p=$d(d.platformAccess,`${a}/platformAccess`,o,t,i,new Set(e.authz.roles.map(I=>String(I.code))));if(p?.workflowStage){let I=p.workflowStage,A=e.workflows.definitions.find(O=>O.definition.code===I.workflowCode);(!A||A.definition.subject?.resourceCode!==I.resourceCode||I.runningNodeIds.some(O=>!A.definition.nodes[O]))&&m("NATIVE_WORKFLOW_STAGE_NODE_INVALID",`${a}/platformAccess/workflowStage/runningNodeIds`)}if(p?.recordEdit){let I=e.data.resources.find(A=>A.code===p.recordEdit.resourceCode);I?.surface?.mutationOwner!=="action"&&m("NATIVE_RECORD_EDIT_ACTION_OWNER_REQUIRED",`${a}/platformAccess/recordEdit`);for(let A of p.recordEdit.fieldCodes)(!I.fieldPolicies?.[A]?.update?.length||I.surface?.fields?.[A]?.system===!0)&&m("NATIVE_RECORD_EDIT_FIELD_INVALID",`${a}/platformAccess/recordEdit/fieldCodes`)}if(p?.decimalReservation){let I=p.decimalReservation,A=String(I.resourceCode),O=JSON.stringify([I.amountFieldCode,I.currencyFieldCode,I.relationFieldCode,I.parentFieldCode,I.rootFieldCode,I.statusFieldCode,I.parentRelationValue,I.childRelationValue]),b=r.get(A);b&&b!==O&&m("NATIVE_DECIMAL_RESERVATION_MAPPING_CONFLICT",`${a}/platformAccess/decimalReservation`),r.set(A,O)}let g=Dd(d.browser,`${a}/browser`,f,d.requestSchema,d.responseSchema,o,t,e.data.subjectReadSurfaces||[]);return{code:u,method:f,path:Ne(d.path,`${a}/path`),requiredCapability:pe(d.capability,`${a}/capability`,e.appCode),requestSchemaDigest:Z(N(d.requestSchema,`${a}/requestSchema`)),responseSchemaDigest:Z(N(d.responseSchema,`${a}/responseSchema`)),...d.description===void 0?{}:{description:bi(d.description,`${a}/description`,2e3)},...p?{platformAccess:p}:{},...g?{browser:g}:{}}}),c=>c.code)}function Dd(e,t,o,n,i,r,c,s){if(e===void 0)return null;let a=N(e,t);C(a,["exposure","behavior","idempotency","subject"],t,["refreshTargets","fileIntent"]),F(a.exposure,"authenticated",`${t}/exposure`);let d=w(a.behavior,`${t}/behavior`,32);["read","controlled"].includes(d)||m("NATIVE_OPERATION_BROWSER_BEHAVIOR_INVALID",`${t}/behavior`);let f=w(a.idempotency,`${t}/idempotency`,32);(!["none","required"].includes(f)||d==="controlled"&&f!=="required"||d==="read"&&f!=="none")&&m("NATIVE_OPERATION_BROWSER_IDEMPOTENCY_INVALID",`${t}/idempotency`);let u=N(a.subject,`${t}/subject`);C(u,["resourceCode","inputField"],`${t}/subject`);let p=H(u.resourceCode,`${t}/subject/resourceCode`);r.has(p)||m("NATIVE_OPERATION_BROWSER_SUBJECT_RESOURCE_NOT_DECLARED",`${t}/subject/resourceCode`);let g=G(u.inputField,`${t}/subject/inputField`),I=N(n,`${t}/requestSchema`),A=N(i,`${t}/responseSchema`);(I.type!=="object"||I.additionalProperties!==!1||A.type!=="object"||A.additionalProperties!==!1)&&m("NATIVE_OPERATION_BROWSER_SCHEMA_ROOT_INVALID",`${t}/requestSchema`);let O=N(I.properties,`${t}/requestSchema/properties`),b=new Set(I.required===void 0?[]:V(I.required,`${t}/requestSchema/required`,200));(!(g in O)||!b.has(g))&&m("NATIVE_OPERATION_BROWSER_SUBJECT_INPUT_INVALID",`${t}/subject/inputField`);let _=N(O[g],`${t}/requestSchema/properties/${g}`);(_.type!=="string"||_.format!=="uuid")&&m("NATIVE_OPERATION_BROWSER_SUBJECT_INPUT_INVALID",`${t}/subject/inputField`);let E=new Map((Array.isArray(s)?s:[]).map((h,$)=>{let k=N(h,`/config/data/subjectReadSurfaces/${$}`);return[String(k.code),String(N(k.subject,`/config/data/subjectReadSurfaces/${$}/subject`).resourceCode)]})),T=a.refreshTargets===void 0?[]:S(a.refreshTargets,`${t}/refreshTargets`,16),l=new Set,y=ee(T.map((h,$)=>{let k=`${t}/refreshTargets/${$}`,M=N(h,k);C(M,["kind","code"],k),F(M.kind,"subject-surface",`${k}/kind`);let L=P(M.code,`${k}/code`);return(l.has(L)||!E.has(L)||E.get(L)!==p)&&m("NATIVE_OPERATION_BROWSER_REFRESH_TARGET_INVALID",`${k}/code`),l.add(L),{kind:"subject-surface",code:L}}),h=>`${h.kind}:${h.code}`),R=kd(a.fileIntent,`${t}/fileIntent`,o,d,f,p,O,b,c);return{exposure:"authenticated",behavior:d,idempotency:f,subject:{resourceCode:p,inputField:g},...y.length?{refreshTargets:y}:{},...R?{fileIntent:R}:{}}}function kd(e,t,o,n,i,r,c,s,a){if(e===void 0)return null;let d=N(e,t);C(d,["recordResourceCode","recordIdInputField","relationField","fileNameField","contentTypeField","sizeField","purposes","maxTtlSeconds","maxBytes"],t),(o!=="GET"||n!=="read"||i!=="none")&&m("NATIVE_OPERATION_FILE_INTENT_BEHAVIOR_INVALID",t);let f=H(d.recordResourceCode,`${t}/recordResourceCode`),u=a.get(f);u||m("NATIVE_OPERATION_FILE_INTENT_RESOURCE_NOT_DECLARED",`${t}/recordResourceCode`);let p=G(d.recordIdInputField,`${t}/recordIdInputField`),g=N(c[p],`${t}/recordIdInputField`);(!s.has(p)||g.type!=="string"||g.format!=="uuid")&&m("NATIVE_OPERATION_FILE_INTENT_RECORD_INPUT_INVALID",`${t}/recordIdInputField`);let I=G(d.relationField,`${t}/relationField`),A=u.get(I);(!A||!["uuid","resource-ref.single"].includes(String(A.type))||String(A.type)==="resource-ref.single"&&(String(N(A.source,`${t}/relationField`).kind||"")!=="resource"||String(N(A.source,`${t}/relationField`).resourceCode||"")!==r))&&m("NATIVE_OPERATION_FILE_INTENT_RELATION_INVALID",`${t}/relationField`);let O=[["fileNameField",["text.short","text.long"]],["contentTypeField",["text.short","text.long"]],["sizeField",["number.integer"]]],b={};for(let[l,y]of O){let R=G(d[l],`${t}/${l}`);y.includes(String(u.get(R)?.type))||m("NATIVE_OPERATION_FILE_INTENT_METADATA_INVALID",`${t}/${l}`),b[l]=R}let _=ee(V(d.purposes,`${t}/purposes`,2),l=>l);(!_.length||_.some(l=>!["preview","download"].includes(l)))&&m("NATIVE_OPERATION_FILE_INTENT_PURPOSE_INVALID",`${t}/purposes`);let E=Number(d.maxTtlSeconds);(!Number.isSafeInteger(E)||E<1||E>300)&&m("NATIVE_OPERATION_FILE_INTENT_TTL_INVALID",`${t}/maxTtlSeconds`);let T=Number(d.maxBytes);return(!Number.isSafeInteger(T)||T<1||T>104857600)&&m("NATIVE_OPERATION_FILE_INTENT_SIZE_INVALID",`${t}/maxBytes`),{recordResourceCode:f,recordIdInputField:p,relationField:I,fileNameField:b.fileNameField,contentTypeField:b.contentTypeField,sizeField:b.sizeField,purposes:_,maxTtlSeconds:E,maxBytes:T}}function $d(e,t,o,n,i,r){if(e===void 0)return null;let c=N(e,t);C(c,["directory","managedFiles","managedFileCopies","notification","workflow","roleAssertions","decimalReservation","dataCommands","recordEdit","ownedSubject","workflowStage"],t,!0),Object.keys(c).length===0&&m("NATIVE_OPERATION_PLATFORM_ACCESS_EMPTY",t);let s={};if(c.dataCommands!==void 0){let a=N(c.dataCommands,`${t}/dataCommands`);C(a,["mode"],`${t}/dataCommands`),F(a.mode,"recoverable-native",`${t}/dataCommands/mode`),s.dataCommands={mode:"recoverable-native"}}if(c.workflowStage!==void 0){try{ho(c.workflowStage)}catch{m("NATIVE_WORKFLOW_STAGE_DECLARATION_INVALID",`${t}/workflowStage`)}let a=c.workflowStage;(!s.dataCommands||c.decimalReservation!==void 0||!o.has(a.resourceCode)||!i.has(a.workflowCode)||!c.workflow?.codes?.includes(a.workflowCode))&&m("NATIVE_WORKFLOW_STAGE_DECLARATION_INVALID",`${t}/workflowStage`),s.workflowStage={...a,runningNodeIds:U([...a.runningNodeIds]),allowedStatuses:U([...a.allowedStatuses])}}if(c.recordEdit!==void 0){let a=`${t}/recordEdit`,d=N(c.recordEdit,a);C(d,["resourceCode","fieldCodes"],a);let f=H(d.resourceCode,`${a}/resourceCode`),u=n.get(f),p=V(d.fieldCodes,`${a}/fieldCodes`,200);(!u||!p.length||!s.dataCommands)&&m("NATIVE_RECORD_EDIT_DECLARATION_INVALID",a);for(let g of p){let I=u.get(g);(!I||I.type==="serial-number"||I.type==="subtable")&&m("NATIVE_RECORD_EDIT_FIELD_INVALID",`${a}/fieldCodes`)}s.recordEdit={resourceCode:f,fieldCodes:U(p)}}if(c.roleAssertions!==void 0){let a=N(c.roleAssertions,`${t}/roleAssertions`);C(a,["roleCodes","actorAuthority"],`${t}/roleAssertions`,!0),a.actorAuthority!==void 0&&F(a.actorAuthority,!0,`${t}/roleAssertions/actorAuthority`);let d=V(a.roleCodes,`${t}/roleAssertions/roleCodes`,20);d.length||m("NATIVE_OPERATION_ROLE_ASSERTIONS_REQUIRED",`${t}/roleAssertions/roleCodes`),d.forEach((f,u)=>{r.has(f)||m("NATIVE_ROLE_REFERENCE_MISSING",`${t}/roleAssertions/roleCodes/${u}`)}),s.roleAssertions={roleCodes:U(d),...a.actorAuthority===!0?{actorAuthority:!0}:{}}}if(c.directory!==void 0){let a=N(c.directory,`${t}/directory`);C(a,["mode","fields"],`${t}/directory`),["current-initiator","selected-user"].includes(String(a.mode))||m("NATIVE_OPERATION_DIRECTORY_MODE_INVALID",`${t}/directory/mode`);let d=new Set(["displayName","employeeNumber","primaryDepartment","departments",...a.mode==="current-initiator"?["phone"]:[]]),f=V(a.fields,`${t}/directory/fields`,d.size);(!f.length||f.some(u=>!d.has(u)))&&m("NATIVE_OPERATION_DIRECTORY_FIELDS_INVALID",`${t}/directory/fields`),s.directory={mode:String(a.mode),fields:U(f)}}if(c.managedFiles!==void 0){let a=S(c.managedFiles,`${t}/managedFiles`,16);a.length||m("NATIVE_OPERATION_MANAGED_FILES_REQUIRED",`${t}/managedFiles`);let d=new Set;s.managedFiles=ee(a.map((f,u)=>{let p=`${t}/managedFiles/${u}`,g=N(f,p);C(g,["resourceCode","fieldCodes","intents"],p);let I=H(g.resourceCode,`${p}/resourceCode`);(d.has(I)||!o.has(I))&&m("NATIVE_OPERATION_MANAGED_FILE_RESOURCE_INVALID",`${p}/resourceCode`),d.add(I);let A=V(g.fieldCodes,`${p}/fieldCodes`,16);(!A.length||A.some(b=>!["file","image","signature","text.rich"].includes(String(o.get(I)?.get(b)||""))))&&m("NATIVE_OPERATION_MANAGED_FILE_FIELD_INVALID",`${p}/fieldCodes`);let O=V(g.intents,`${p}/intents`,2);return(!O.length||O.some(b=>!["create","update"].includes(b)))&&m("NATIVE_OPERATION_MANAGED_FILE_INTENT_INVALID",`${p}/intents`),{resourceCode:I,fieldCodes:U(A),intents:U(O)}}),f=>f.resourceCode)}if(c.managedFileCopies!==void 0){let a=S(c.managedFileCopies,`${t}/managedFileCopies`,16);a.length||m("NATIVE_OPERATION_MANAGED_FILE_COPIES_REQUIRED",`${t}/managedFileCopies`);let d=new Set;s.managedFileCopies=ee(a.map((f,u)=>{let p=`${t}/managedFileCopies/${u}`,g=N(f,p);C(g,["mode","sourceResourceCode","sourceFieldCodes","targetResourceCode","targetFieldCodes"],p),F(g.mode,"copy",`${p}/mode`);let I=H(g.sourceResourceCode,`${p}/sourceResourceCode`),A=H(g.targetResourceCode,`${p}/targetResourceCode`),O=o.get(I),b=o.get(A);(!O||!b)&&m("NATIVE_OPERATION_MANAGED_FILE_COPY_RESOURCE_INVALID",p);let _=V(g.sourceFieldCodes,`${p}/sourceFieldCodes`,16),E=V(g.targetFieldCodes,`${p}/targetFieldCodes`,16);(!_.length||_.length!==E.length)&&m("NATIVE_OPERATION_MANAGED_FILE_COPY_FIELDS_INVALID",p),_.forEach((l,y)=>{let R=O.get(l),h=b.get(E[y]);(!["file","image"].includes(String(R))||R!==h)&&m("NATIVE_OPERATION_MANAGED_FILE_COPY_FIELD_INVALID",`${p}/sourceFieldCodes/${y}`)});let T=`${I}:${_.join(",")}=>${A}:${E.join(",")}`;return d.has(T)&&m("NATIVE_OPERATION_MANAGED_FILE_COPY_DUPLICATE",p),d.add(T),{mode:"copy",sourceResourceCode:I,sourceFieldCodes:U(_),targetResourceCode:A,targetFieldCodes:U(E)}}),f=>`${f.sourceResourceCode}:${f.sourceFieldCodes.join(",")}=>${f.targetResourceCode}:${f.targetFieldCodes.join(",")}`)}if(c.notification!==void 0){let a=N(c.notification,`${t}/notification`);C(a,["mode"],`${t}/notification`),a.mode!=="business-standard"&&m("NATIVE_OPERATION_NOTIFICATION_MODE_INVALID",`${t}/notification/mode`),s.notification={mode:"business-standard"}}if(c.workflow!==void 0){let a=N(c.workflow,`${t}/workflow`);C(a,["codes"],`${t}/workflow`,["businessCommands"]);let d=V(a.codes,`${t}/workflow/codes`,16);(!d.length||d.some(u=>!i.has(u)))&&m("NATIVE_OPERATION_WORKFLOW_CODE_INVALID",`${t}/workflow/codes`);let f=a.businessCommands===void 0?void 0:V(a.businessCommands,`${t}/workflow/businessCommands`,4);f&&(!f.length||f.some(u=>!["approve","reject","withdraw","resubmit"].includes(u)))&&m("NATIVE_OPERATION_WORKFLOW_BUSINESS_COMMAND_INVALID",`${t}/workflow/businessCommands`),s.workflow={codes:U(d),...f?{businessCommands:U(f)}:{}}}if(c.ownedSubject!==void 0){let a=`${t}/ownedSubject`,d=c.ownedSubject;try{Mt(d)}catch{m("NATIVE_WORKFLOW_OWNED_SUBJECT_INVALID",a)}(!s.workflow||c.decimalReservation!==void 0)&&m("NATIVE_WORKFLOW_OWNED_SUBJECT_INVALID",a);try{ci(d,n,s.managedFiles||[])}catch(f){m(`NATIVE_${f.message}`,a)}s.ownedSubject={mode:"create",resourceCode:d.resourceCode,subtables:ee(d.subtables.map(f=>({fieldCode:f.fieldCode,fieldCodes:U([...f.fieldCodes])})),f=>f.fieldCode)}}if(c.decimalReservation!==void 0){let a=`${t}/decimalReservation`,d=N(c.decimalReservation,a);C(d,["mode","resourceCode","amountFieldCode","currencyFieldCode","relationFieldCode","parentFieldCode","rootFieldCode","statusFieldCode","parentRelationValue","childRelationValue","eligibleParentStatuses","eligibleChildStatuses"],a);let f=w(d.mode,`${a}/mode`,16);["reserve","commit","release"].includes(f)||m("NATIVE_DECIMAL_RESERVATION_MODE_INVALID",`${a}/mode`);let u=H(d.resourceCode,`${a}/resourceCode`),p=n.get(u);p||m("NATIVE_DECIMAL_RESERVATION_RESOURCE_MISSING",`${a}/resourceCode`);let I=Object.fromEntries(["amountFieldCode","currencyFieldCode","relationFieldCode","parentFieldCode","rootFieldCode","statusFieldCode"].map(l=>[l,G(d[l],`${a}/${l}`)])),A=l=>p.get(I[l]),O=l=>new Set((A(l)?.options||[]).map(y=>String(y.value))),b=P(d.parentRelationValue,`${a}/parentRelationValue`),_=P(d.childRelationValue,`${a}/childRelationValue`),E=V(d.eligibleParentStatuses,`${a}/eligibleParentStatuses`,16),T=V(d.eligibleChildStatuses,`${a}/eligibleChildStatuses`,16);(A("amountFieldCode")?.type!=="number.decimal"||A("amountFieldCode")?.exactDecimal!==!0||A("amountFieldCode")?.precision!==18||A("amountFieldCode")?.scale!==2||A("currencyFieldCode")?.type!=="option.single"||A("relationFieldCode")?.type!=="option.single"||A("parentFieldCode")?.type!=="resource-ref.single"||A("parentFieldCode")?.source?.resourceCode!==u||A("rootFieldCode")?.type!=="uuid"||A("statusFieldCode")?.type!=="option.single"||b===_||!O("relationFieldCode").has(b)||!O("relationFieldCode").has(_)||!E.length||!T.length||E.some(l=>!O("statusFieldCode").has(l))||T.some(l=>!O("statusFieldCode").has(l)))&&m("NATIVE_DECIMAL_RESERVATION_FIELD_INVALID",a),s.decimalReservation={mode:f,resourceCode:u,...I,parentRelationValue:b,childRelationValue:_,eligibleParentStatuses:U(E),eligibleChildStatuses:U(T)}}return s}function vd(e,t,o,n,i){if(e===void 0)return;let r=`${t}/ai`,c=N(e,r);td.test(o)||m("NATIVE_OPERATION_AI_CODE_INVALID",`${t}/code`),C(c,["name","description","risk","resources","sideEffects","concurrency","timeoutMs"],r,!0),w(c.name,`${r}/name`,_i),w(c.description,`${r}/description`,_i);let s=w(c.risk,`${r}/risk`,16);["read","write","destructive","external"].includes(s)||m("NATIVE_OPERATION_AI_RISK_INVALID",`${r}/risk`),s==="read"!=(n==="GET")&&m("NATIVE_OPERATION_AI_METHOD_RISK_MISMATCH",`${r}/risk`),n==="DELETE"&&!["destructive","external"].includes(s)&&m("NATIVE_OPERATION_AI_METHOD_RISK_MISMATCH",`${r}/risk`);let a=V(c.resources,`${r}/resources`,16);a.length===0&&m("NATIVE_OPERATION_AI_RESOURCE_REQUIRED",`${r}/resources`),a.forEach((f,u)=>{let p=H(f,`${r}/resources/${u}`);i.has(p)||m("NATIVE_OPERATION_AI_RESOURCE_MISSING",`${r}/resources/${u}`)});let d=V(c.sideEffects,`${r}/sideEffects`,20);(s==="read"&&d.length!==0||s!=="read"&&d.length===0)&&m("NATIVE_OPERATION_AI_SIDE_EFFECT_INVALID",`${r}/sideEffects`),c.concurrency!==void 0&&!["none","revision"].includes(w(c.concurrency,`${r}/concurrency`,16))&&m("NATIVE_OPERATION_AI_CONCURRENCY_INVALID",`${r}/concurrency`),c.timeoutMs!==void 0&&ie(c.timeoutMs,`${r}/timeoutMs`,100,3e4)}function xn(e){return(e.replace(/\/{2,}/g,"/").replace(/\/$/,"")||"/").split("/").map(o=>o.startsWith(":")?":":o.includes("*")?"*":o).join("/")}function Pd(e,t){let o=N(e,t),n=w(o.type,`${t}/type`,32),i=["code","type","label","presentation","required"],r=n==="sso"?[...i,"provider"]:n==="dingtalk"?[...i,"flow"]:i;C(o,r,t);let c=P(o.code,`${t}/code`),s=w(o.label,`${t}/label`,255),a=w(o.presentation,`${t}/presentation`,16);["primary","secondary"].includes(a)||m("NATIVE_APPLICATION_AUTH_METHOD_PRESENTATION_INVALID",`${t}/presentation`);let d=At(o.required,`${t}/required`);return["sso","password","dingtalk"].includes(n)||m("NATIVE_APPLICATION_AUTH_METHOD_TYPE_INVALID",`${t}/type`),n==="sso"&&o.provider!=="tenant-default"&&m("NATIVE_APPLICATION_AUTH_SSO_PROVIDER_INVALID",`${t}/provider`),n==="dingtalk"&&!["auto","jsapi","oauth"].includes(w(o.flow,`${t}/flow`,16))&&m("NATIVE_APPLICATION_AUTH_DINGTALK_FLOW_INVALID",`${t}/flow`),{code:c,type:n,label:s,presentation:a,required:d,...n==="sso"?{provider:"tenant-default"}:{},...n==="dingtalk"?{flow:o.flow}:{}}}function Xr(e,t,o){let n=N(e,o);C(n,["routeCode","path","defaultRouteCode"],o);let i=P(n.routeCode,`${o}/routeCode`),r=Ne(n.path,`${o}/path`),c=t==="desktop"?"/login":"/m/login";return(r!==c||/[:*?#\\]/.test(r))&&m("NATIVE_APPLICATION_AUTH_SURFACE_PATH_INVALID",`${o}/path`,{device:t,expectedPath:c}),{routeCode:i,path:r,defaultRouteCode:P(n.defaultRouteCode,`${o}/defaultRouteCode`)}}function gs(e,t,o,n){if(e===null)return;let i=N(e,n);C(i,["accountMode","registration","methods","surfaces"],n),F(i.accountMode,"existing-platform-users-only",`${n}/accountMode`);let r=N(i.registration,`${n}/registration`);C(r,["mode"],`${n}/registration`),F(r.mode,"reject",`${n}/registration/mode`);let c=S(i.methods,`${n}/methods`,8);c.length===0&&m("NATIVE_APPLICATION_AUTH_METHOD_REQUIRED",`${n}/methods`);let s=c.map((b,_)=>Pd(b,`${n}/methods/${_}`)),a=new Set,d=new Set;for(let[b,_]of s.entries())a.has(_.code)&&m("NATIVE_APPLICATION_AUTH_METHOD_CODE_DUPLICATE",`${n}/methods/${b}/code`),d.has(_.type)&&m("NATIVE_APPLICATION_AUTH_METHOD_TYPE_DUPLICATE",`${n}/methods/${b}/type`),a.add(_.code),d.add(_.type);s.filter(b=>b.presentation==="primary").length!==1&&m("NATIVE_APPLICATION_AUTH_PRIMARY_METHOD_INVALID",`${n}/methods`);let f=N(i.surfaces,`${n}/surfaces`);C(f,["desktop","mobile"],`${n}/surfaces`);let u=Xr(f.desktop,"desktop",`${n}/surfaces/desktop`),p=Xr(f.mobile,"mobile",`${n}/surfaces/mobile`);u.routeCode===p.routeCode&&m("NATIVE_APPLICATION_AUTH_SURFACE_CODE_DUPLICATE",`${n}/surfaces/mobile/routeCode`);let g=S(t,"/config/frontend/routes",500),I=new Map;for(let[b,_]of g.entries()){let E=N(_,`/config/frontend/routes/${b}`);I.set(String(E.code||""),E)}let A=new Set((Array.isArray(o.data?.resources)?o.data.resources:[]).map(b=>String(b.code||"")).filter(b=>/^[a-z][a-z0-9-]{0,62}$/.test(b)));for(let[b,_]of[["desktop",u],["mobile",p]]){I.has(_.routeCode)&&m("NATIVE_APPLICATION_AUTH_SURFACE_CODE_CONFLICT",`${n}/surfaces/${b}/routeCode`);let E=/^user\.([a-z][a-z0-9-]{0,62})\.(records|submit)$/.exec(String(_.defaultRouteCode||"")),T=I.get(_.defaultRouteCode),l=String(T?.path||"");if(E&&A.has(E[1])){let R=E[2]==="records"?`/my/${E[1]}`:`/my/${E[1]}/submit`;T={surface:"user",path:b==="mobile"?`/m${R}`:R},l=String(T.path)}let y=b==="desktop"?l==="/m"||l.startsWith("/m/"):!(l==="/m"||l.startsWith("/m/"));(!T||T.surface!=="user"||/[:*]/.test(l)||y)&&m("NATIVE_APPLICATION_AUTH_DEFAULT_ROUTE_INVALID",`${n}/surfaces/${b}/defaultRouteCode`)}let O=As(o).filter(b=>!b.owner.startsWith("authentication:"));for(let[b,_]of[["desktop",u],["mobile",p]]){let E=O.find(T=>xn(T.path)===xn(_.path));E&&m("NATIVE_APPLICATION_AUTH_SURFACE_PATH_CONFLICT",`${n}/surfaces/${b}/path`,{owner:E.owner})}}function Vd(e,t){if(e===null)return;let o={data:{resources:[]},workflows:{definitions:[]},frontend:{routes:[{code:"auth-desktop-default",path:"/auth-desktop-default",surface:"user"},{code:"auth-mobile-default",path:"/m/auth-mobile-default",surface:"user"}],user:{applicationTodoCenter:!1},admin:{navigation:[]},authentication:e}},n=N(e,t),i=N(n.surfaces,`${t}/surfaces`),r={...n,surfaces:{...i,desktop:{...N(i.desktop,`${t}/surfaces/desktop`),defaultRouteCode:"auth-desktop-default"},mobile:{...N(i.mobile,`${t}/surfaces/mobile`),defaultRouteCode:"auth-mobile-default"}}};gs(r,o.frontend.routes,{...o,frontend:{...o.frontend,authentication:r}},t)}function Ld(e){let t=e.frontend.authentication;return t===null?null:{accountMode:t.accountMode,registration:{mode:t.registration.mode},methods:t.methods.map(o=>({...o})),surfaces:{desktop:{...t.surfaces.desktop},mobile:{...t.surfaces.mobile}}}}var Fd=new Set(["draft.read","draft.update","validate","create","own.list","own.read","public.list","public.read"]);function xd(e,t,o){let n=N(e,o);C(n,["policies"],o);let i=S(n.policies,`${o}/policies`,16);i.length<1&&m("NATIVE_PUBLIC_POLICY_REQUIRED",o);let r=new Map(t.frontend.routes.map(d=>[d.code,d])),c=new Map(t.data.resources.map(d=>[d.code,d])),s=new Set,a=new Set(i.map(d=>String(d?.code||"")));i.forEach((d,f)=>{let u=`${o}/policies/${f}`,p=N(d,u);C(p,["code","routeCode","mode","resourceCode","operations","fields"],u,["requiredFields","ownRecordFields","publicRecordFields","publicFilters","serverGeneratedFields","schedule","publicSubtableFields","draft","validations"]);let g=P(p.code,`${u}/code`);s.has(g)&&m("NATIVE_PUBLIC_POLICY_DUPLICATE",`${u}/code`);let I=P(p.routeCode,`${u}/routeCode`),A=r.get(I);(!A||A.surface!=="user"||A.capability!==void 0||A.access!==void 0||/[:*]/.test(String(A.path)))&&m("NATIVE_PUBLIC_ROUTE_INVALID",`${u}/routeCode`),F(p.mode,"anonymous",`${u}/mode`);let O=H(p.resourceCode,`${u}/resourceCode`),b=c.get(O);b||m("NATIVE_PUBLIC_RESOURCE_MISSING",`${u}/resourceCode`);let _=new Map(b.schema.fields.map(v=>[String(v.code),String(v.type)])),E=V(p.operations,`${u}/operations`,8);(E.length<1||E.some(v=>!Fd.has(v)))&&m("NATIVE_PUBLIC_OPERATION_INVALID",`${u}/operations`),E.includes("draft.read")!==E.includes("draft.update")&&m("NATIVE_PUBLIC_DRAFT_OPERATION_INCOMPLETE",`${u}/operations`);let T=V(p.fields,`${u}/fields`,64);(T.length<1||T.some(v=>!_.has(v)))&&m("NATIVE_PUBLIC_FIELD_INVALID",`${u}/fields`);for(let v of["requiredFields","ownRecordFields","publicRecordFields"]){if(!Object.prototype.hasOwnProperty.call(p,v))continue;V(p[v],`${u}/${v}`,64).some(x=>!T.includes(x))&&m("NATIVE_PUBLIC_FIELD_SCOPE_INVALID",`${u}/${v}`)}let l=Object.prototype.hasOwnProperty.call(p,"serverGeneratedFields")?S(p.serverGeneratedFields,`${u}/serverGeneratedFields`,16):[],y=new Set;l.forEach((v,W)=>{let x=`${u}/serverGeneratedFields/${W}`,q=N(v,x);C(q,["field","kind"],x);let z=G(q.field,`${x}/field`);(y.has(z)||!_.has(z)||T.includes(z)||_.get(z)!=="text.short"&&_.get(z)!=="text.long")&&m("NATIVE_PUBLIC_SERVER_GENERATED_FIELD_INVALID",`${x}/field`),F(q.kind,"random-token",`${x}/kind`),y.add(z)});let R=Object.prototype.hasOwnProperty.call(p,"schedule")?N(p.schedule,`${u}/schedule`):null;if(R){let v=["campusPolicyCode","rulePolicyCode","campusField","ruleCampusField","ruleWeekdaysField","ruleOpenAtField","ruleCloseAtField","ruleSlotMinutesField","ruleAdvanceHoursField","ruleAdvanceDaysField","campusEnabledField","ruleEnabledField","dateField","timeField"];C(R,v,`${u}/schedule`);for(let W of["campusPolicyCode","rulePolicyCode"])P(R[W],`${u}/schedule/${W}`);for(let W of v.filter(x=>!["campusPolicyCode","rulePolicyCode"].includes(x)))G(R[W],`${u}/schedule/${W}`);for(let W of[R.campusField,R.dateField,R.timeField])T.includes(String(W))||m("NATIVE_PUBLIC_SCHEDULE_FIELD_INVALID",`${u}/schedule`);(!a.has(String(R.campusPolicyCode))||!a.has(String(R.rulePolicyCode)))&&m("NATIVE_PUBLIC_SCHEDULE_POLICY_INVALID",`${u}/schedule`)}let h=Object.prototype.hasOwnProperty.call(p,"publicFilters")?S(p.publicFilters,`${u}/publicFilters`,16):[],$=new Set;h.forEach((v,W)=>{let x=`${u}/publicFilters/${W}`,q=N(v,x);C(q,["field","operator","value"],x);let z=G(q.field,`${x}/field`);$.has(z)&&m("NATIVE_PUBLIC_FILTER_DUPLICATE",`${x}/field`),T.includes(z)||m("NATIVE_PUBLIC_FILTER_FIELD_INVALID",`${x}/field`),F(q.operator,"eq",`${x}/operator`),["boolean","text.short","text.long","number.integer","number.decimal","date","time"].includes(_.get(z)||"")||m("NATIVE_PUBLIC_FILTER_FIELD_INVALID",`${x}/field`),q.value!==null&&typeof q.value!="string"&&typeof q.value!="number"&&typeof q.value!="boolean"&&m("NATIVE_PUBLIC_FILTER_VALUE_INVALID",`${x}/value`),$.add(z)});let k=Object.prototype.hasOwnProperty.call(p,"publicSubtableFields")?N(p.publicSubtableFields,`${u}/publicSubtableFields`):null;if(k){Object.keys(k).length>64&&m("NATIVE_PUBLIC_SUBTABLE_FIELDS_INVALID",`${u}/publicSubtableFields`);for(let[v,W]of Object.entries(k)){let x=b.schema.fields.find(J=>String(J.code)===v),q=String(x?.subtable?.resourceCode||""),z=c.get(q),_e=new Map((z?.schema?.fields||[]).map(J=>[String(J.code),String(J.type)])),Te=V(W,`${u}/publicSubtableFields/${v}`,64);(!T.includes(v)||_.get(v)!=="subtable"||!z||Te.length<1||Te.some(J=>!_e.has(J))||Te.some(J=>_e.get(J)==="subtable")||Te.some(J=>_e.get(J)==="signature"))&&m("NATIVE_PUBLIC_SUBTABLE_FIELDS_INVALID",`${u}/publicSubtableFields/${v}`)}}if(E.some(v=>v.startsWith("public."))){Object.prototype.hasOwnProperty.call(p,"publicRecordFields")||m("NATIVE_PUBLIC_RECORD_FIELDS_REQUIRED",`${u}/publicRecordFields`);let v=V(p.publicRecordFields,`${u}/publicRecordFields`,64);(v.length<1||v.some(W=>!T.includes(W))||v.some(W=>_.get(W)==="signature"||_.get(W)==="subtable"&&!k?.[W]))&&m("NATIVE_PUBLIC_RECORD_FIELDS_INVALID",`${u}/publicRecordFields`)}let M=Object.prototype.hasOwnProperty.call(p,"requiredFields")?V(p.requiredFields,`${u}/requiredFields`,64):[],L=b.surface||{},Y=L.fields||{},ne=String(L.mutationOwner||"native")==="native"&&L.generated?.create!==!1,X=b.schema.fields.filter(v=>Nt(v,Y[v.code])).map(v=>String(v.code));if(E.includes("create")&&!ne&&m("NATIVE_PUBLIC_CREATE_FIELDS_INCOMPLETE",`${u}/fields`),E.includes("create")&&!Object.prototype.hasOwnProperty.call(p,"draft")&&m("NATIVE_PUBLIC_DRAFT_REQUIRED",`${u}/draft`),E.includes("create"))for(let v of X){let W=T.includes(v)?M.includes(v)?null:"requiredFields":"fields";W&&m("NATIVE_PUBLIC_CREATE_FIELDS_INCOMPLETE",`${u}/${W}`,{resourceCode:H,fieldCode:v})}if(Object.prototype.hasOwnProperty.call(p,"draft")){let v=N(p.draft,`${u}/draft`);C(v,["enabled","inactivityTtlSeconds","maxBytes"],`${u}/draft`),F(v.enabled,!0,`${u}/draft/enabled`),ie(v.inactivityTtlSeconds,`${u}/draft/inactivityTtlSeconds`,3600,7776e3),ie(v.maxBytes,`${u}/draft/maxBytes`,4096,262144)}else E.includes("draft.read")&&m("NATIVE_PUBLIC_DRAFT_REQUIRED",`${u}/draft`);let de=Object.prototype.hasOwnProperty.call(p,"validations")?S(p.validations,`${u}/validations`,16):[],le=new Set;de.forEach((v,W)=>{let x=`${u}/validations/${W}`,q=N(v,x);C(q,["code","kind","fields","result"],x);let z=P(q.code,`${x}/code`);le.has(z)&&m("NATIVE_PUBLIC_VALIDATION_DUPLICATE",`${x}/code`),F(q.kind,"duplicate",`${x}/kind`),F(q.result,"availability",`${x}/result`);let _e=V(q.fields,`${x}/fields`,8);(_e.length<1||_e.some(Te=>!T.includes(Te))||_e.some(Te=>["file","subtable"].includes(_.get(Te)||"")))&&m("NATIVE_PUBLIC_VALIDATION_FIELD_INVALID",`${x}/fields`),le.add(z)}),s.add(g)})}function jd(e,t){let o=N(e,t);C(o,["policies"],t),S(o.policies,`${t}/policies`,16).length<1&&m("NATIVE_PUBLIC_POLICY_REQUIRED",t)}function Wd(e){return{policies:ee(e.frontend.publicAccess.policies.map(t=>({code:t.code,routeCode:t.routeCode,mode:t.mode,resourceCode:t.resourceCode,operations:U(t.operations),fields:U(t.fields),...t.requiredFields?{requiredFields:U(t.requiredFields)}:{},...t.ownRecordFields?{ownRecordFields:U(t.ownRecordFields)}:{},...t.publicRecordFields?{publicRecordFields:U(t.publicRecordFields)}:{},...t.publicFilters?{publicFilters:t.publicFilters.map(o=>({field:o.field,operator:o.operator,value:o.value})).sort((o,n)=>Ee(o.field,n.field))}:{},...t.publicSubtableFields?{publicSubtableFields:Object.fromEntries(Object.entries(t.publicSubtableFields).sort(([o],[n])=>o.localeCompare(n)).map(([o,n])=>[o,U(Array.isArray(n)?n.map(String):[])]))}:{},...t.serverGeneratedFields?{serverGeneratedFields:t.serverGeneratedFields.map(o=>({field:o.field,kind:o.kind})).sort((o,n)=>Ee(o.field,n.field))}:{},...t.schedule?{schedule:{campusPolicyCode:t.schedule.campusPolicyCode,rulePolicyCode:t.schedule.rulePolicyCode,campusField:t.schedule.campusField,ruleCampusField:t.schedule.ruleCampusField,ruleWeekdaysField:t.schedule.ruleWeekdaysField,ruleOpenAtField:t.schedule.ruleOpenAtField,ruleCloseAtField:t.schedule.ruleCloseAtField,ruleSlotMinutesField:t.schedule.ruleSlotMinutesField,ruleAdvanceHoursField:t.schedule.ruleAdvanceHoursField,ruleAdvanceDaysField:t.schedule.ruleAdvanceDaysField,campusEnabledField:t.schedule.campusEnabledField,ruleEnabledField:t.schedule.ruleEnabledField,dateField:t.schedule.dateField,timeField:t.schedule.timeField}}:{},...t.draft?{draft:{...t.draft}}:{},...t.validations?{validations:ee(t.validations.map(o=>({code:o.code,kind:o.kind,fields:U(o.fields),result:o.result})),o=>o.code)}:{}})),t=>t.code)}}function As(e){let t=[{owner:"platform:admin-entry",path:"/"},{owner:"platform:admin-entry",path:"/admin"},{owner:"platform:file-preview",path:"/files/:resourceCode/:fileId/preview"}];e.frontend.authentication&&t.push({owner:"authentication:desktop",path:e.frontend.authentication.surfaces.desktop.path},{owner:"authentication:mobile",path:e.frontend.authentication.surfaces.mobile.path});for(let o of e.data.resources){let n=Es(o),i=`/admin/resources/${o.code}`,r=[["list",i],["detail",`${i}/:id`],["create",`${i}/new`],["update",`${i}/:id/edit`]];for(let[c,s]of r)n[c]&&t.push({owner:`resource:${o.code}:${c}`,path:s},{owner:`resource:${o.code}:${c}:mobile`,path:`/m${s}`})}if(e.frontend.user.applicationTodoCenter===!0&&t.push({owner:"application:todo-center",path:"/todos"},{owner:"application:todo-center:mobile",path:"/m/todos"}),e.workflows.definitions.length>0){t.push({owner:"workflow:work-center",path:"/work-center"},{owner:"workflow:work-center:mobile",path:"/m/work-center"},{owner:"workflow:task",path:"/tasks/:taskId"},{owner:"workflow:task:mobile",path:"/m/tasks/:taskId"},{owner:"workflow:instance",path:"/workflows/:instanceId"},{owner:"workflow:instance:mobile",path:"/m/workflows/:instanceId"});let o=!1;for(let n of e.workflows.definitions)["standalone","hidden-handoff"].includes(n.launch.mode)&&(o=!0);o&&t.push({owner:"workflow:launch",path:"/workflows/:workflowCode/start"},{owner:"workflow:launch:mobile",path:"/m/workflows/:workflowCode/start"})}return t}function Mn(e){let t=new Map(As(e).map(o=>[xn(o.path),o]));return ee(e.frontend.routes.map((o,n)=>{let i=`/config/frontend/routes/${n}`,r=N(o,i);C(r,["code","path","label","surface","parentCode","capability","access","pinned","tabPersistence","keepAlive"],i,!0),["admin","user"].includes(r.surface)||m("NATIVE_ROUTE_SURFACE_INVALID",`${i}/surface`);let c=Ne(r.path,`${i}/path`);r.surface==="admin"&&c!=="/admin"&&!c.startsWith("/admin/")&&m("NATIVE_ADMIN_ROUTE_PATH_INVALID",`${i}/path`),r.surface==="user"&&(c==="/admin"||c.startsWith("/admin/"))&&m("NATIVE_USER_ROUTE_PATH_RESERVED",`${i}/path`);let s=xn(c),a=t.get(s);a&&m("NATIVE_ROUTE_PATH_CONFLICT",`${i}/path`,{path:c,owner:a.owner}),t.set(s,{owner:`frontend:${String(r.code||n)}`,path:c});let d=/[:*]/.test(c),f=yi(r,i,e.appCode),u=r.pinned===void 0?void 0:At(r.pinned,`${i}/pinned`),p=r.tabPersistence===void 0?d?"none":"session":w(r.tabPersistence,`${i}/tabPersistence`,16),g=r.keepAlive===void 0?"none":w(r.keepAlive,`${i}/keepAlive`,16);return["session","none"].includes(p)||m("NATIVE_ROUTE_TAB_PERSISTENCE_INVALID",`${i}/tabPersistence`),["none","memory"].includes(g)||m("NATIVE_ROUTE_KEEP_ALIVE_INVALID",`${i}/keepAlive`),d&&u===!0&&m("NATIVE_DYNAMIC_ROUTE_PINNED_FORBIDDEN",`${i}/pinned`),d&&p==="session"&&m("NATIVE_DYNAMIC_ROUTE_TAB_PERSISTENCE_FORBIDDEN",`${i}/tabPersistence`),d&&g==="memory"&&m("NATIVE_DYNAMIC_ROUTE_KEEP_ALIVE_FORBIDDEN",`${i}/keepAlive`),{code:P(r.code,`${i}/code`),path:c,label:w(r.label,`${i}/label`,255),surface:r.surface,...r.parentCode===void 0?{}:{parentCode:P(r.parentCode,`${i}/parentCode`)},...f,...u===void 0?{}:{pinned:u},tabPersistence:p,keepAlive:g}}),o=>o.code)}function Es(e){let t=e.surface===void 0?{}:N(e.surface,"/surface"),o=t.mutationOwner||"native",n=t.generated===void 0?{}:N(t.generated,"/surface/generated"),i=o==="native";return{list:n.list??!0,detail:n.detail??!0,create:n.create??i,update:n.update??i,delete:n.delete??i}}function Is(e){let t=[];for(let o of ee(e.data.resources,n=>n.code).flatMap(n=>[{resource:n,viewCode:void 0},...(n.surface?.views||[]).map(i=>({viewCode:i.code,resource:{...n,name:i.name,surface:un(n.surface,i.code)}}))])){let{resource:n,viewCode:i}=o,r=`/admin/resources/${n.code}${i?`/views/${i}`:""}`,c=Es(n),s=[{operation:"list",kind:"resource-list",path:`${r}`,label:n.name,capability:n.capabilities.read,navigationEligible:!0},{operation:"detail",kind:"resource-detail",path:`${r}/:id`,label:`${n.name}\u8BE6\u60C5`,capability:n.capabilities.read,navigationEligible:!1},{operation:"create",kind:"resource-create",path:`${r}/new`,label:`\u65B0\u589E${n.name}`,capability:n.capabilities.create,navigationEligible:!1},{operation:"update",kind:"resource-update",path:`${r}/:id/edit`,label:`\u7F16\u8F91${n.name}`,capability:n.capabilities.update,navigationEligible:!1}];for(let a of s)c[a.operation]&&t.push({code:`resource:${n.code}${i?`:view:${i}`:""}:${a.operation}`,kind:a.kind,path:a.path,label:a.label,navigationEligible:a.navigationEligible,capability:a.capability,resourceCode:n.code,...i?{viewCode:i}:{}})}for(let o of Mn(e))o.surface==="admin"&&t.push({code:`operation:${o.code}`,kind:"operation",path:o.path,label:o.label,navigationEligible:!/[:*]/.test(o.path),routeCode:o.code});return t.sort((o,n)=>Ee(o.code,n.code))}function ys(e){return e.kind==="resource"?`resource:${e.resourceCode}${e.viewCode?`:view:${e.viewCode}`:""}:list`:`operation:${e.routeCode}`}function Ud(e){return e.frontend.admin.navigation.map((t,o)=>({code:t.code,label:t.label,...t.icon===void 0?{}:{icon:t.icon},order:t.order??o,items:t.items.map((n,i)=>({pageCode:ys(n.page),...n.label===void 0?{}:{label:n.label},...n.icon===void 0?{}:{icon:n.icon},order:n.order??i})).sort((n,i)=>n.order-i.order||Ee(n.pageCode,i.pageCode))})).sort((t,o)=>t.order-o.order||Ee(t.code,o.code))}function Md(e,t){let o=S(e,t,B.adminNavigationGroups);o.reduce((i,r)=>i+(Array.isArray(r?.items)?r.items.length:0),0)>B.adminNavigationItems&&m("NATIVE_ARRAY_LIMIT_EXCEEDED",t);let n=0;o.forEach((i,r)=>{let c=`${t}/${r}`,s=N(i,c);C(s,["code","label","icon","order","items"],c,!0),P(s.code,`${c}/code`),w(s.label,`${c}/label`,255),jn(s.icon,`${c}/icon`),ns(s.order,`${c}/order`);let a=S(s.items,`${c}/items`,500);a.length===0&&m("NATIVE_ADMIN_GROUP_ORPHANED",`${c}/items`),n+=a.length,n>B.adminNavigationItems&&m("NATIVE_ARRAY_LIMIT_EXCEEDED",t),a.forEach((d,f)=>{let u=`${c}/items/${f}`,p=N(d,u);C(p,["page","label","icon","order"],u,!0),Bd(p.page,`${u}/page`),p.label!==void 0&&w(p.label,`${u}/label`,255),jn(p.icon,`${u}/icon`),ns(p.order,`${u}/order`)})})}function Bd(e,t){let o=N(e,t),n=w(o.kind,`${t}/kind`,64);if(n==="resource"){C(o,["kind","resourceCode"],t,["viewCode"]),o.viewCode!==void 0&&P(o.viewCode,`${t}/viewCode`),H(o.resourceCode,`${t}/resourceCode`);return}if(n==="operation"){C(o,["kind","routeCode"],t),P(o.routeCode,`${t}/routeCode`);return}m("NATIVE_ADMIN_PAGE_REFERENCE_KIND_INVALID",`${t}/kind`)}function Kd(e){let t=new Map(Is(e).map(i=>[String(i.code),i])),o=new Set,n=new Set;e.frontend.admin.navigation.forEach((i,r)=>{let c=`/config/frontend/admin/navigation/${r}`;o.has(i.code)&&m("NATIVE_ADMIN_GROUP_DUPLICATE",`${c}/code`),o.add(i.code),i.label===i.code&&m("NATIVE_ADMIN_USER_LABEL_REQUIRED",`${c}/label`),i.items.forEach((s,a)=>{let d=`${c}/items/${a}`,f=ys(s.page),u=t.get(f);(!u||u.navigationEligible!==!0)&&m("NATIVE_ADMIN_PAGE_NOT_FOUND",`${d}/page`),n.has(f)&&m("NATIVE_ADMIN_PAGE_DUPLICATE",`${d}/page`),n.add(f);let p=s.page.resourceCode||s.page.routeCode||s.page.workflowCode||f,g=s.label||u.label;(!g||g===p||g===f)&&m("NATIVE_ADMIN_USER_LABEL_REQUIRED",`${d}/label`)})})}function Gd(e,t){let o=S(e,t,B.adminPages),n=new Set;o.forEach((i,r)=>{let c=`${t}/${r}`,s=N(i,c);C(s,["code","kind","path","label","navigationEligible","capability","access","resourceCode","viewCode","routeCode"],c,!0);let a=w(s.code,`${c}/code`,255);n.has(a)&&m("NATIVE_ADMIN_PAGE_DUPLICATE",`${c}/code`),n.add(a);let d=w(s.kind,`${c}/kind`,64);if(["resource-list","resource-detail","resource-create","resource-update","operation"].includes(d)||m("NATIVE_ADMIN_PAGE_KIND_INVALID",`${c}/kind`),Ne(s.path,`${c}/path`),w(s.label,`${c}/label`,255),At(s.navigationEligible,`${c}/navigationEligible`),s.capability!==void 0&&s.access!==void 0&&m("NATIVE_ROUTE_ACCESS_CONFLICT",`${c}/access`),s.capability!==void 0&&w(s.capability,`${c}/capability`,255),s.access!==void 0){let f=N(s.access,`${c}/access`);C(f,["allOf","anyOf"],`${c}/access`,!0);for(let u of["allOf","anyOf"])f[u]!==void 0&&V(f[u],`${c}/access/${u}`,50)}for(let f of["resourceCode","viewCode","routeCode"])s[f]!==void 0&&P(s[f],`${c}/${f}`)})}function qd(e,t){let o=S(e,t,B.adminNavigationGroups);o.reduce((i,r)=>i+(Array.isArray(r?.items)?r.items.length:0),0)>B.adminNavigationItems&&m("NATIVE_ARRAY_LIMIT_EXCEEDED",t);let n=0;o.forEach((i,r)=>{let c=`${t}/${r}`,s=N(i,c);C(s,["code","label","icon","order","items"],c,!0),P(s.code,`${c}/code`),w(s.label,`${c}/label`,255),jn(s.icon,`${c}/icon`),ie(s.order,`${c}/order`,-1e4,1e4);let a=S(s.items,`${c}/items`,500);a.length===0&&m("NATIVE_ADMIN_GROUP_ORPHANED",`${c}/items`),n+=a.length,n>B.adminNavigationItems&&m("NATIVE_ARRAY_LIMIT_EXCEEDED",t),a.forEach((d,f)=>{let u=`${c}/items/${f}`,p=N(d,u);C(p,["pageCode","label","icon","order"],u,!0),w(p.pageCode,`${u}/pageCode`,255),p.label!==void 0&&w(p.label,`${u}/label`,255),jn(p.icon,`${u}/icon`),ie(p.order,`${u}/order`,-1e4,1e4)})})}var zd=new Set(["application-todo-center","workflow-work-center","workflow-launch","workflow-task","workflow-instance","resource-records","resource-submit"]);function Jd(e,t,o){let n=N(e,t);C(n,["schemaVersion","appCode","devicePolicy","rootEntry","authentication","routes","digest"],t),F(n.schemaVersion,us,`${t}/schemaVersion`),F(n.appCode,o,`${t}/appCode`),Ii(n.devicePolicy,`${t}/devicePolicy`),Hd(n.rootEntry,`${t}/rootEntry`),Yd(n.authentication,`${t}/authentication`),Ai(n.digest,`${t}/digest`);let i=S(n.routes,`${t}/routes`,B.routes),r=new Set;i.forEach((c,s)=>{let a=`${t}/routes/${s}`,d=N(c,a),f=d.kind==="resource-records"||d.kind==="resource-submit";C(d,["code","kind","desktop","mobile"],a,["workflowCode",...f?["resourceCode"]:[]]);let u=w(d.code,`${a}/code`,255);r.has(u)&&m("NATIVE_ROUTE_MANIFEST_DUPLICATE",`${a}/code`),r.add(u);let p=w(d.kind,`${a}/kind`,64);if(zd.has(p)||m("NATIVE_ROUTE_MANIFEST_KIND_INVALID",`${a}/kind`),d.workflowCode!==void 0&&P(d.workflowCode,`${a}/workflowCode`),f){let A=H(d.resourceCode,`${a}/resourceCode`);F(u,`user.${A}.${d.kind==="resource-records"?"records":"submit"}`,`${a}/code`)}else d.resourceCode!==void 0&&m("NATIVE_PROPERTY_UNKNOWN",`${a}/resourceCode`);let g=Qr(d.desktop,`${a}/desktop`,o),I=Qr(d.mobile,`${a}/mobile`,o);g.surface!=="user"&&m("NATIVE_ROUTE_MANIFEST_DESKTOP_SURFACE_INVALID",`${a}/desktop/surface`),I.surface!=="user"&&m("NATIVE_ROUTE_MANIFEST_MOBILE_SURFACE_INVALID",`${a}/mobile/surface`),g.routeCode===I.routeCode&&m("NATIVE_ROUTE_MANIFEST_PAIR_DUPLICATE",a)}),F(n.digest,Z({schemaVersion:n.schemaVersion,appCode:n.appCode,devicePolicy:n.devicePolicy,rootEntry:n.rootEntry,authentication:n.authentication,routes:n.routes}),`${t}/digest`)}function Ii(e,t){let o=N(e,t);C(o,["kind","mobileMaxWidthPx","desktopMinWidthPx"],t),F(o.kind,"viewport-family",`${t}/kind`);let n=ie(o.mobileMaxWidthPx,`${t}/mobileMaxWidthPx`,320,1600),i=ie(o.desktopMinWidthPx,`${t}/desktopMinWidthPx`,320,1600);return i!==n+1&&m("NATIVE_FRONTEND_DEVICE_POLICY_INVALID",t),{kind:"viewport-family",mobileMaxWidthPx:n,desktopMinWidthPx:i}}function Hd(e,t){let o=N(e,t);C(o,["code","desktop","mobile"],t);let n=P(o.code,`${t}/code`),i=gi(o.desktop,`${t}/desktop`),r=gi(o.mobile,`${t}/mobile`);return(i===r||r==="/"||!r.startsWith("/m/"))&&m("NATIVE_ROUTE_MANIFEST_ROOT_ENTRY_INVALID",t),i.startsWith("/m/")&&m("NATIVE_ROUTE_MANIFEST_ROOT_ENTRY_INVALID",`${t}/desktop`),{code:n,desktop:i,mobile:r}}function Yd(e,t){let o=N(e,t);C(o,["desktop","mobile"],t);let n=Zr(o.desktop,`${t}/desktop`,!1),i=Zr(o.mobile,`${t}/mobile`,!0);return(n.routeCode===i.routeCode||n.path===i.path)&&m("NATIVE_ROUTE_MANIFEST_AUTHENTICATION_DUPLICATE",t),{desktop:n,mobile:i}}function Zr(e,t,o){let n=N(e,t);C(n,["routeCode","path"],t);let i=P(n.routeCode,`${t}/routeCode`),r=gi(n.path,`${t}/path`);return(o?!r.startsWith("/m/"):r.startsWith("/m/"))&&m("NATIVE_ROUTE_MANIFEST_AUTHENTICATION_PATH_INVALID",`${t}/path`),{routeCode:i,path:r}}function gi(e,t){let o=Ne(e,t);return/[:*?#\\\\]/.test(o)&&m("NATIVE_ROUTE_MANIFEST_STATIC_PATH_INVALID",t),o}function Qr(e,t,o){let n=N(e,t);C(n,["routeCode","path","surface","pathParams","requiresAuthentication"],t,["capability","access"]),P(n.routeCode,`${t}/routeCode`);let i=Ne(n.path,`${t}/path`),r=w(n.surface,`${t}/surface`,16);["admin","user"].includes(r)||m("NATIVE_ROUTE_SURFACE_INVALID",`${t}/surface`);let c=V(n.pathParams,`${t}/pathParams`,8);return c.forEach((s,a)=>{(!/^[A-Za-z][A-Za-z0-9_]*$/.test(s)||s.length>64)&&m("NATIVE_ROUTE_PATH_PARAM_INVALID",`${t}/pathParams/${a}`)}),Q(c)!==Q(bs(i))&&m("NATIVE_ROUTE_PATH_PARAMS_MISMATCH",`${t}/pathParams`),yi(n,t,o),n.requiresAuthentication!==!0&&m("NATIVE_ROUTE_AUTHENTICATION_REQUIRED",`${t}/requiresAuthentication`),n}function bs(e){return U([...e.matchAll(/:([A-Za-z][A-Za-z0-9_]*)/g)].map(t=>t[1]))}function es(e,t,o,n){return{routeCode:e,path:t,surface:o,pathParams:bs(t),...n?.capability?{capability:n.capability}:{},...n?.access?{access:n.access}:{},requiresAuthentication:!0}}function ts(e,t,o,n){return e==="workflow-launch"?`workflow.${o}.launch.${t}`:e==="application-todo-center"?`application.todo-center.${t}`:e==="resource-records"?`user.${n}.records.${t}`:e==="resource-submit"?`user.${n}.submit.${t}`:`${e.replace(/-/g,".")}.${t}`}function Xd(e){let t=e.appCode,o=[],n=(g,I,A,O,b,_,E)=>{o.push({code:g,kind:I,...b?{workflowCode:b}:{},...E?{resourceCode:E}:{},desktop:es(ts(I,"desktop",b,E),A,"user",_),mobile:es(ts(I,"mobile",b,E),O,"user",_)})};e.frontend.user.applicationTodoCenter===!0&&n("application:todo-center","application-todo-center","/todos","/m/todos");let i=Os(e);i.length>0&&(n("workflow:work-center","workflow-work-center","/work-center","/m/work-center"),n("workflow:task","workflow-task","/tasks/:taskId","/m/tasks/:taskId"),n("workflow:instance","workflow-instance","/workflows/:instanceId","/m/workflows/:instanceId"));for(let g of i){if(!["standalone","hidden-handoff"].includes(g.launch.mode))continue;let I=U([g.launch.submission?.create?.requiredCapability,g.launch.submission?.existing?.requiredCapability].filter(A=>!!A));n(`workflow:${g.code}:launch`,"workflow-launch","/workflows/:workflowCode/start","/m/workflows/:workflowCode/start",g.code,I.length===1?{capability:I[0]}:I.length>1?{access:{anyOf:I}}:void 0)}let r=o.sort((g,I)=>Ee(String(g.code),String(I.code))),c=Mn(e),s=g=>{let I=g==="mobile"?"/m/":"/",A=c.filter(b=>b.surface==="user"&&!/[:*?#\\\\]/.test(b.path)&&b.path===I).sort((b,_)=>Ee(b.code,_.code))[0];if(A)return{code:A.code,path:A.path};let O=c.filter(b=>b.surface==="user"&&!/[:*?#\\\\]/.test(b.path)&&(g==="mobile"?b.path.startsWith("/m/"):!b.path.startsWith("/m/"))).sort((b,_)=>Ee(b.code,_.code))[0];return O?{code:O.code,path:O.path}:{code:g==="mobile"?"application-root-mobile":"application-root",path:I}},a=e.frontend.authentication?{desktop:{routeCode:e.frontend.authentication.surfaces.desktop.routeCode,path:e.frontend.authentication.surfaces.desktop.path},mobile:{routeCode:e.frontend.authentication.surfaces.mobile.routeCode,path:e.frontend.authentication.surfaces.mobile.path}}:{desktop:{routeCode:"application-login",path:"/login"},mobile:{routeCode:"application-login-mobile",path:"/m/login"}},d=Ii(e.frontend.devicePolicy,"/config/frontend/devicePolicy"),f=s("desktop"),u=s("mobile"),p={schemaVersion:us,appCode:t,devicePolicy:d,rootEntry:{code:f.code,desktop:f.path,mobile:u.path},authentication:a,routes:r};return{...p,digest:Z(p)}}function jn(e,t){if(e===void 0)return;let o=w(e,t,32);fd.has(o)||m("NATIVE_ADMIN_ICON_INVALID",t)}function ns(e,t){e!==void 0&&ie(e,t,-1e4,1e4)}function yi(e,t,o){return e.capability!==void 0&&e.access!==void 0&&m("NATIVE_ROUTE_ACCESS_CONFLICT",`${t}/access`),e.capability!==void 0?{capability:pe(e.capability,`${t}/capability`,o)}:e.access===void 0?{}:{access:Bn(e.access,`${t}/access`,o)}}function Bn(e,t,o){let n=N(e,t);C(n,["allOf","anyOf"],t,!0);let i=n.allOf===void 0?void 0:U(V(n.allOf,`${t}/allOf`,50).map((c,s)=>pe(c,`${t}/allOf/${s}`,o))),r=n.anyOf===void 0?void 0:U(V(n.anyOf,`${t}/anyOf`,50).map((c,s)=>pe(c,`${t}/anyOf/${s}`,o)));return(i?.length||0)+(r?.length||0)===0&&m("NATIVE_ROUTE_ACCESS_EMPTY",t),{...i===void 0?{}:{allOf:i},...r===void 0?{}:{anyOf:r}}}function Os(e){let t=new Map(_s(e).map(i=>[String(i.code),i])),o=e.workflows.definitions.map((i,r)=>{let c=`/config/workflows/definitions/${r}`,s=N(i,c);C(s,["version","definition","launch"],c,["detailRouteCode"]);let a=N(s.definition,`${c}/definition`),d=s.detailRouteCode===void 0?void 0:Ts(s.detailRouteCode,`${c}/detailRouteCode`);return{code:P(a.code,`${c}/definition/code`),title:w(a.title,`${c}/definition/title`,255),version:gt(s.version,`${c}/version`),launch:Zd(e,a,s.launch,`${c}/launch`,t),...d?{detailRouteCode:d}:{},definition:a}});return U(o.map(i=>i.code)).map(i=>{let r=o.filter(d=>d.code===i),c=e.workflows.activations.find(d=>d.workflowCode===i)?.definitionVersion,s=r.find(d=>d.version===c)||[...r].sort((d,f)=>f.version-d.version)[0],a=new Set;for(let d of r){let f=N(d.definition.nodes,"/config/workflows/definitions/nodes");for(let u of Object.values(f)){let p=N(u,"/config/workflows/definitions/nodes/*");if(p.kind==="approval")for(let g of V(p.allowedOperations||[],"/config/workflows/definitions/nodes/*/allowedOperations",20))a.add(g)}}return{code:i,title:s.title,acceptedCommandDeactivationPolicy:s.definition.acceptedCommandDeactivationPolicy,subject:s.definition.subject,launch:s.launch,...["standalone","hidden-handoff"].includes(s.launch.mode)&&!s.launch.submission?{processOperationCode:`openxiangda.workflow.${i}.submit`}:{},...s.detailRouteCode?{detailRouteCode:s.detailRouteCode}:{},definitionVersions:ds(r.map(d=>d.version)),bindingVersions:ds(e.workflows.bindings.map((d,f)=>{let u=`/config/workflows/bindings/${f}`,p=N(d,u),g=N(p.binding,`${u}/binding`);return{code:P(g.workflowCode,`${u}/binding/workflowCode`),version:gt(p.version,`${u}/version`)}}).filter(d=>d.code===i).map(d=>d.version)),providerCodes:U(e.workflows.providers.map((d,f)=>P(N(d,`/config/workflows/providers/${f}`).code,`/config/workflows/providers/${f}/code`))),allowedOperations:[...a].sort(Ee),editableParameterCodes:U(e.workflows.editableParameters.map((d,f)=>{let u=`/config/workflows/editableParameters/${f}`,p=N(d,u);return{code:P(p.code,`${u}/code`),workflowCode:P(p.workflowCode,`${u}/workflowCode`)}}).filter(d=>d.workflowCode===i).map(d=>d.code))}})}function Ns(e,t){let o=N(e,t);C(o,["mode"],t,["submission"]);let n=w(o.mode,`${t}/mode`,32);return["standalone","custom-page","hidden-handoff","work-center-only"].includes(n)||m("NATIVE_WORKFLOW_LAUNCH_MODE_INVALID",`${t}/mode`),{mode:n,...o.submission===void 0?{}:{submission:N(o.submission,`${t}/submission`)}}}function Zd(e,t,o,n,i){let r=Ns(o,n);if(!r.submission)return{mode:r.mode};["standalone","hidden-handoff"].includes(r.mode)||m("NATIVE_WORKFLOW_NAMED_OPERATION_SUBMISSION_INVALID",`${n}/submission`);let c=N(r.submission,`${n}/submission`);C(c,["kind"],`${n}/submission`,["create","existing","context"]),F(c.kind,"named-operation",`${n}/submission/kind`);let s=n.endsWith("/launch")?n.slice(0,-7):n,a=N(t.subject,`${s}/definition/subject`),d=H(a.resourceCode,`${s}/definition/subject/resourceCode`),f=e.data.resources.findIndex(y=>y.code===d),u=e.data.resources[f];(f<0||!u)&&m("NATIVE_WORKFLOW_SUBJECT_RESOURCE_MISSING",`${s}/definition/subject/resourceCode`);let p=new Set(N(u.schema,`/config/data/resources/${f}/schema`).fields.map(y=>String(y.code))),g=new Map(e.backend.operations.map(y=>[String(y.code),y])),I=(y,R)=>{let h=`${n}/submission/${R}`,$=N(y,h);C($,["operationCode","inputs","output"],h);let k=P($.operationCode,`${h}/operationCode`),M=g.get(k),L=i.get(k),Y=L?.platformAccess?.workflow?.codes;(!M||!L||L.method!=="POST"||!Array.isArray(Y)||!Y.includes(t.code))&&m("NATIVE_WORKFLOW_NAMED_OPERATION_INVALID",h);let ne=N(M.requestSchema,`${h}/operation/requestSchema`),X=N(ne.properties,`${h}/operation/requestSchema/properties`),de=new Set(ne.required===void 0?[]:V(ne.required,`${h}/operation/requestSchema/required`,64)),le=N($.inputs,`${h}/inputs`),v=Object.entries(le);(!v.length||v.length>64)&&m("NATIVE_WORKFLOW_NAMED_OPERATION_INPUT_INVALID",`${h}/inputs`);let W=new Set,x=new Map,q={},z=L.platformAccess?.ownedSubject;z&&(R!=="create"||z.resourceCode!==d)&&m("NATIVE_WORKFLOW_OWNED_SUBJECT_LAUNCH_MISMATCH",h);for(let[J,Xe]of v){(!Jr.test(J)||!Object.prototype.hasOwnProperty.call(X,J))&&m("NATIVE_WORKFLOW_NAMED_OPERATION_INPUT_INVALID",`${h}/inputs/${J}`);let We=`${h}/inputs/${J}`,Hn=N(Xe,We),Ue=w(Hn.source,`${We}/source`,32);if(["field","idempotency-key","current-user-reference","subject-id","subject-revision","requested-at"].includes(Ue)||m("NATIVE_WORKFLOW_NAMED_OPERATION_INPUT_INVALID",We),C(Hn,["source"],We,Ue==="field"?["fieldCode"]:!1),x.set(Ue,(x.get(Ue)||0)+1),Ue==="field"){let Ze=G(Hn.fieldCode,`${We}/fieldCode`);(W.has(Ze)||!p.has(Ze))&&m("NATIVE_WORKFLOW_NAMED_OPERATION_INPUT_INVALID",`${We}/fieldCode`),W.add(Ze),u.schema.fields.find(Yn=>Yn.code===Ze)?.type==="subtable"&&(!z||!z.subtables.some(Yn=>Yn.fieldCode===Ze))&&m("NATIVE_WORKFLOW_OWNED_SUBJECT_LAUNCH_REQUIRED",We),q[J]={source:Ue,fieldCode:Ze}}else q[J]={source:Ue}}([...de].some(J=>!(J in le))||(x.get("idempotency-key")||0)!==1||!v.some(([J,Xe])=>N(Xe,`${h}/inputs/${J}`).source==="idempotency-key"&&de.has(J))||R==="create"&&((x.get("subject-id")||0)>0||(x.get("subject-revision")||0)>0)||R==="existing"&&((x.get("subject-id")||0)!==1||(x.get("subject-revision")||0)!==1))&&m("NATIVE_WORKFLOW_NAMED_OPERATION_INPUT_INVALID",`${h}/inputs`);let _e=N($.output,`${h}/output`);C(_e,["subjectId"],`${h}/output`,["subjectRevision","processCommand"]);let Te=N(N(M.responseSchema,`${h}/operation/responseSchema`).properties,`${h}/operation/responseSchema/properties`);for(let J of["subjectId","subjectRevision","processCommand"]){if(_e[J]===void 0)continue;let Xe=w(_e[J],`${h}/output/${J}`,128);(!Jr.test(Xe)||!Object.prototype.hasOwnProperty.call(Te,Xe))&&m("NATIVE_WORKFLOW_NAMED_OPERATION_OUTPUT_INVALID",`${h}/output/${J}`)}return{operationCode:k,method:"POST",path:L.path,requiredCapability:L.requiredCapability,requestSchemaDigest:L.requestSchemaDigest,responseSchemaDigest:L.responseSchemaDigest,inputs:q,output:{..._e},fieldCodes:W}},A=c.create===void 0?void 0:I(c.create,"create"),O=c.existing===void 0?void 0:I(c.existing,"existing");!A&&!O&&m("NATIVE_WORKFLOW_NAMED_OPERATION_SUBMISSION_INVALID",`${n}/submission`);let b=new Set([...A?.fieldCodes||[],...O?.fieldCodes||[]]),_=c.context===void 0?[]:S(c.context,`${n}/submission/context`,16),E=new Set,T=_.map((y,R)=>{let h=`${n}/submission/context/${R}`,$=N(y,h);C($,["queryParameter","fieldCode"],h);let k=w($.queryParameter,`${h}/queryParameter`,64),M=G($.fieldCode,`${h}/fieldCode`);return(!/^[A-Za-z][A-Za-z0-9]{0,63}$/.test(k)||E.has(k)||!b.has(M))&&m("NATIVE_WORKFLOW_LAUNCH_CONTEXT_INVALID",h),E.add(k),{queryParameter:k,fieldCode:M}}),l=y=>{let{fieldCodes:R,...h}=y;return h};return{mode:r.mode,submission:{kind:"named-operation",...A?{create:l(A)}:{},...O?{existing:l(O)}:{},context:T}}}function Ts(e,t){let o=N(e,t);C(o,["desktop","mobile"],t);let n=P(o.desktop,`${t}/desktop`),i=P(o.mobile,`${t}/mobile`);return n===i&&m("NATIVE_WORKFLOW_DETAIL_ROUTE_DUPLICATE",t),{desktop:n,mobile:i}}function Qd(e,t){let o=new Set(t.map(f=>f.code)),n=new Map;e.data.resources.forEach((f,u)=>{let p=`/config/data/resources/${u}`,g=N(f,p);if(g.recordDeletion!==void 0){let O=`${p}/recordDeletion/delete`;for(let b of g.recordDeletion.delete)pe(b,O,e.appCode),o.has(b)||m("NATIVE_CAPABILITY_REFERENCE_MISSING",O)}if(g.recordComments!==void 0)for(let O of["read","create"]){let b=`${p}/recordComments/${O}`;for(let _ of g.recordComments[O])pe(_,b,e.appCode),o.has(_)||m("NATIVE_CAPABILITY_REFERENCE_MISSING",b)}if(g.recordPrint!==void 0){let O=`${p}/recordPrint/read`;for(let b of g.recordPrint.read)pe(b,O,e.appCode),o.has(b)||m("NATIVE_CAPABILITY_REFERENCE_MISSING",O)}if(g.workflowHistory!==void 0){let O=`${p}/workflowHistory/read`;for(let b of g.workflowHistory.read)pe(b,O,e.appCode),o.has(b)||m("NATIVE_CAPABILITY_REFERENCE_MISSING",O)}for(let[O,b]of Object.entries(g.fieldPolicies||{})){if(!tt(O))continue;let _=`${p}/fieldPolicies/${O}/read`,E=N(b,`${p}/fieldPolicies/${O}`);for(let T of V(E.read||[],_,2e3))o.has(T)||m("NATIVE_CAPABILITY_REFERENCE_MISSING",_)}let I=g.surface===void 0?{}:N(g.surface,`${p}/surface`);if(["native","queued-command"].includes(I.mutationOwner||"native"))return;let A=N(g.capabilities,`${p}/capabilities`);for(let O of["create","update","delete"])O==="delete"&&Array.isArray(g.recordDeletion?.delete)&&g.recordDeletion.delete.length>0||n.set(String(A[O]),O)});let i=new Set;for(let[f,u]of e.authz.roles.entries()){let p=`/config/authz/roles/${f}`,g=N(u,p);C(g,["code","name","description","capabilities"],p,!0);let I=P(g.code,`${p}/code`);i.has(I)&&m("NATIVE_ROLE_DUPLICATE",`${p}/code`),i.add(I),w(g.name,`${p}/name`,255);let A=V(g.capabilities,`${p}/capabilities`,2e3);for(let[O,b]of A.entries())n.has(b)&&m("NATIVE_DATA_SURFACE_MUTATION_GRANT_FORBIDDEN",`${p}/capabilities/${O}`,{operation:n.get(b)}),o.has(b)||m("NATIVE_CAPABILITY_REFERENCE_MISSING",`${p}/capabilities`)}let r=e.authz.authenticatedUserRoleCode===void 0?"":P(e.authz.authenticatedUserRoleCode,"/config/authz/authenticatedUserRoleCode");r&&!i.has(r)&&m("NATIVE_AUTHENTICATED_USER_ROLE_REFERENCE_MISSING","/config/authz/authenticatedUserRoleCode");let c=new Set,s=0;for(let[f,u]of e.perspectives.entries()){let p=`/config/perspectives/${f}`,g=N(u,p);C(g,["code","name","description","roleCodes","capabilityCodes","default"],p,!0);let I=P(g.code,`${p}/code`);c.has(I)&&m("NATIVE_PERSPECTIVE_DUPLICATE",`${p}/code`),c.add(I),w(g.name,`${p}/name`,255);let A=V(g.roleCodes,`${p}/roleCodes`,20);A.length<1&&m("NATIVE_PERSPECTIVE_ROLE_REQUIRED",`${p}/roleCodes`),A.forEach((_,E)=>{i.has(_)||m("NATIVE_PERSPECTIVE_ROLE_MISSING",`${p}/roleCodes/${E}`)});let O=U(e.authz.roles.filter(_=>A.includes(_.code)).flatMap(_=>_.capabilities)),b=V(g.capabilityCodes,`${p}/capabilityCodes`,2e3);Q(O)!==Q(b)&&m("NATIVE_PERSPECTIVE_CAPABILITY_PROJECTION_MISMATCH",`${p}/capabilityCodes`),g.default===!0?s+=1:g.default!==void 0&&m("NATIVE_PERSPECTIVE_DEFAULT_INVALID",`${p}/default`)}s>1&&m("NATIVE_PERSPECTIVE_DEFAULT_DUPLICATE","/config/perspectives");for(let[f,u]of e.backend.operations.entries()){let p=N(u,`/config/backend/operations/${f}`);o.has(p.capability)||m("NATIVE_CAPABILITY_REFERENCE_MISSING",`/config/backend/operations/${f}/capability`)}let a=new Set,d=new Set;for(let[f,u]of e.frontend.routes.entries()){let p=`/config/frontend/routes/${f}`,g=N(u,p),I=P(g.code,`${p}/code`);a.has(I)&&m("NATIVE_ROUTE_DUPLICATE",`${p}/code`),a.add(I);let A=Ne(g.path,`${p}/path`);d.has(A)&&m("NATIVE_ROUTE_PATH_DUPLICATE",`${p}/path`),d.add(A);let O=yi(g,p,e.appCode);O.capability&&!o.has(O.capability)&&m("NATIVE_CAPABILITY_REFERENCE_MISSING",`${p}/capability`);let b=g.access===void 0?void 0:N(g.access,`${p}/access`);for(let _ of["allOf","anyOf"]){let E=b?.[_]===void 0?[]:S(b[_],`${p}/access/${_}`,50);for(let[T,l]of E.entries()){let y=pe(l,`${p}/access/${_}/${T}`,e.appCode);o.has(y)||m("NATIVE_CAPABILITY_REFERENCE_MISSING",`${p}/access/${_}/${T}`)}}}if(e.frontend.admin.access!==void 0){let f=Bn(e.frontend.admin.access,"/config/frontend/admin/access",e.appCode);for(let u of["allOf","anyOf"])for(let[p,g]of(f[u]||[]).entries())o.has(g)||m("NATIVE_CAPABILITY_REFERENCE_MISSING",`/config/frontend/admin/access/${u}/${p}`)}for(let[f,u]of e.frontend.routes.entries()){let p=N(u,`/config/frontend/routes/${f}`);p.parentCode&&!a.has(p.parentCode)&&m("NATIVE_ROUTE_PARENT_MISSING",`/config/frontend/routes/${f}/parentCode`)}}function el(e){let t=new Set(e.authz.roles.map(d=>String(d.code))),o=e.authz.authenticatedUserRoleCode===void 0?"":P(e.authz.authenticatedUserRoleCode,"/config/authz/authenticatedUserRoleCode"),n=new Map(e.authz.scopeDimensions.map(d=>[String(d.code),{valueType:d.valueType==="uuid"?"uuid":"string",...d.valueSource?.resourceCode?{valueSourceResourceCode:String(d.valueSource.resourceCode)}:{}}])),i=new Set(n.keys()),r=new Map(e.data.resources.map((d,f)=>{let u=He(d,`/config/data/resources/${f}`,e.appCode);return[u.code,new Map(u.schema.fields.map(p=>[String(p.code),p]))]}));for(let[d,f]of e.authz.scopeDimensions.entries()){let u=`/config/authz/scopeDimensions/${d}`,p=N(f,u);if(C(p,["code","name","resourceCode","valueType","hierarchyMode","valueSource"],u,!0),p.valueSource===void 0)continue;let g=N(p.valueSource,`${u}/valueSource`);C(g,["kind","resourceCode","labelField","enabledField"],`${u}/valueSource`,!0),g.kind!=="native_resource"&&m("NATIVE_SCOPE_VALUE_SOURCE_KIND_INVALID",`${u}/valueSource/kind`),p.valueType!=="uuid"&&m("NATIVE_SCOPE_VALUE_SOURCE_TYPE_INVALID",`${u}/valueType`);let I=H(g.resourceCode,`${u}/valueSource/resourceCode`),A=r.get(I);A||m("NATIVE_SCOPE_VALUE_SOURCE_RESOURCE_MISSING",`${u}/valueSource/resourceCode`);let O=G(g.labelField,`${u}/valueSource/labelField`);if(["text.short","text.long"].includes(String(A.get(O)?.type||""))||m("NATIVE_SCOPE_VALUE_SOURCE_LABEL_FIELD_INVALID",`${u}/valueSource/labelField`),g.enabledField!==void 0){let b=G(g.enabledField,`${u}/valueSource/enabledField`);A.get(b)?.type!=="boolean"&&m("NATIVE_SCOPE_VALUE_SOURCE_ENABLED_FIELD_INVALID",`${u}/valueSource/enabledField`)}}let c=new Set,s=new Set;for(let[d,f]of e.authz.scopeSources.entries()){let u=`/config/authz/scopeSources/${d}`,p=N(f,u);C(p,["code","name","resourceCode","subject","grants","operationField","enabledField","effectiveFromField","effectiveToField","failureMode"],u,!0);let g=P(p.code,`${u}/code`);c.has(g)&&m("NATIVE_SCOPE_SOURCE_DUPLICATE",`${u}/code`),c.add(g),w(p.name,`${u}/name`,255);let I=H(p.resourceCode,`${u}/resourceCode`),A=r.get(I);A||m("NATIVE_SCOPE_SOURCE_RESOURCE_MISSING",`${u}/resourceCode`);let O=N(p.subject,`${u}/subject`),b=w(O.type,`${u}/subject/type`,32);C(O,b==="role_membership"?["type","userIdField","roleCode"]:["type","userIdField"],`${u}/subject`),["user","role_membership"].includes(b)||m("NATIVE_SCOPE_SOURCE_SUBJECT_INVALID",`${u}/subject/type`);let _=st(O.userIdField,A);En(_)||m("NATIVE_SCOPE_SOURCE_SUBJECT_PATH_INVALID",`${u}/subject/userIdField`),b==="role_membership"&&!t.has(String(O.roleCode))&&m("NATIVE_ROLE_REFERENCE_MISSING",`${u}/subject/roleCode`);let E=new Set;for(let[T,l]of S(p.grants,`${u}/grants`,100).entries()){let y=`${u}/grants/${T}`,R=N(l,y);C(R,["dimensionCode","valueField","parentValueField"],y,!0);let h=P(R.dimensionCode,`${y}/dimensionCode`);(!i.has(h)||E.has(h))&&m("NATIVE_SCOPE_SOURCE_DIMENSION_INVALID",`${y}/dimensionCode`),E.add(h),p.failureMode==="last_known_good"&&s.add(h);for(let $ of["valueField","parentValueField"]){if(R[$]===void 0)continue;let k=st(R[$],A);Ro(k,n.get(h),r)||m("NATIVE_SCOPE_SOURCE_GRANT_PATH_INVALID",`${y}/${$}`)}}E.size===0&&m("NATIVE_SCOPE_SOURCE_GRANT_REQUIRED",`${u}/grants`),["strict","last_known_good"].includes(p.failureMode)||m("NATIVE_SCOPE_SOURCE_FAILURE_MODE_INVALID",`${u}/failureMode`);for(let T of["operationField","enabledField","effectiveFromField","effectiveToField"]){if(p[T]===void 0)continue;let l=G(p[T],`${u}/${T}`);A.has(l)||m("NATIVE_SCOPE_SOURCE_FIELD_MISSING",`${u}/${T}`)}}nl(e,t,r,o);let a=new Set;for(let[d,f]of e.authz.dataPolicies.entries()){let u=`/config/authz/dataPolicies/${d}`,p=N(f,u);C(p,["code","name","resourceCode","unrestrictedRoleCodes","publicRead","operations","matchMode","rules","readExpression","writeBoundary"],u,!0);let g=P(p.code,`${u}/code`);a.has(g)&&m("NATIVE_DATA_POLICY_DUPLICATE",`${u}/code`),a.add(g);let I=p.readExpression!==void 0,A=V(p.operations||[],`${u}/operations`,4);p.operations!==void 0&&(A.length===0||A.some(l=>!["read","create","update","delete"].includes(l)))&&m("NATIVE_DATA_POLICY_OPERATIONS_INVALID",`${u}/operations`),["AND","OR"].includes(p.matchMode)||m("NATIVE_DATA_POLICY_MATCH_MODE_INVALID",`${u}/matchMode`),I&&p.operations!==void 0&&m("NATIVE_DATA_POLICY_READ_EXPRESSION_OPERATIONS_FORBIDDEN",`${u}/operations`);let O=e.data.resources.find(l=>l.dataPolicyCode===g),b=p.resourceCode||O?.code,_=b?r.get(H(b,`${u}/resourceCode`)):void 0;if(I&&!_&&m("NATIVE_DATA_POLICY_RESOURCE_MISSING",`${u}/resourceCode`),p.publicRead!==void 0){try{let l=e.authz.roles.find(y=>y.code===o);wo({policy:p,resource:e.data.resources.find(y=>y.code===b),baselineRoleCode:o,baselineCapabilities:l?.capabilities||[],baselineDeniedCapabilities:l?.deniedCapabilities||[],pointer:u})}catch(l){if(!(l instanceof at))throw l;m(l.code,l.pointer)}(p.unrestrictedRoleCodes||[]).includes(o)||m("AUTHENTICATED_PUBLIC_READ_CANONICAL_BASELINE_MISSING",`${u}/unrestrictedRoleCodes`)}else o&&(p.unrestrictedRoleCodes||[]).includes(o)&&m("NATIVE_DATA_POLICY_BASELINE_UNRESTRICTED",`${u}/unrestrictedRoleCodes`);let E=V(p.unrestrictedRoleCodes||[],`${u}/unrestrictedRoleCodes`,100);p.unrestrictedRoleCodes!==void 0&&E.length===0&&m("NATIVE_DATA_POLICY_UNRESTRICTED_ROLES_INVALID",`${u}/unrestrictedRoleCodes`);for(let l of E)t.has(l)||m("NATIVE_ROLE_REFERENCE_MISSING",`${u}/unrestrictedRoleCodes`);let T;try{let l=S(p.rules,`${u}/rules`,100).map((y,R)=>({rule:N(y,`${u}/rules/${R}`),pointer:`${u}/rules/${R}`}));l.length===0?(!I||p.matchMode!=="AND"||p.writeBoundary!=="capability_only")&&m("NATIVE_DATA_POLICY_WRITE_BOUNDARY_REQUIRED",u):p.writeBoundary!==void 0&&m("NATIVE_DATA_POLICY_WRITE_BOUNDARY_INVALID",`${u}/writeBoundary`),T=[...l],I&&(T.push(...Kt(p.readExpression,`${u}/readExpression`)),ui(p.readExpression,`${u}/readExpression`))}catch(l){throw l instanceof mt&&m(l.code,l.pointer),l}for(let{rule:l,pointer:y}of T){C(l,["subject","dimensionCode","relationCode","resourceCode","field","roleCodes","operation","valuePath","emptyMatchesAll","operator","value","operand"],y,!0);let R=G(l.field,`${y}/field`),h=_?.get(R);I&&!h&&m("NATIVE_DATA_POLICY_FIELD_MISSING",`${y}/field`);for(let X of V(l.roleCodes||[],`${y}/roleCodes`,100))t.has(X)||m("NATIVE_ROLE_REFERENCE_MISSING",`${y}/roleCodes`);let $=String(l.operator||""),k=l.operand==="db_now",M=["is_null","is_not_null"].includes($),L=["eq","not_eq","in","not_in"].includes($),Y=!k&&(l.operator!==void 0||l.value!==void 0);if([l.subject==="current_user"?"current_user":"",typeof l.dimensionCode=="string"?"dimension":"",typeof l.relationCode=="string"?"relationship":"",Y?"constant":"",k?"db_now":""].filter(Boolean).length!==1&&m("NATIVE_DATA_POLICY_RULE_SOURCE_INVALID",y),l.subject!==void 0&&l.subject!=="current_user"&&m("NATIVE_DATA_POLICY_SUBJECT_INVALID",`${y}/subject`),Y){if(!L&&!M&&m("NATIVE_DATA_POLICY_OPERATOR_INVALID",`${y}/operator`),["in","not_in"].includes($)){let X=S(l.value,`${y}/value`,100).map((de,le)=>w(de,`${y}/value/${le}`,2048));(X.length===0||new Set(X).size!==X.length)&&m("NATIVE_DATA_POLICY_VALUE_INVALID",`${y}/value`)}else["eq","not_eq"].includes($)?w(l.value,`${y}/value`,2048):(l.value!==void 0||l.operand!==void 0)&&m("NATIVE_DATA_POLICY_VALUE_INVALID",`${y}/value`);for(let X of["operation","valuePath","emptyMatchesAll","resourceCode","operand"])l[X]!==void 0&&m("NATIVE_DATA_POLICY_CONSTANT_RULE_INVALID",`${y}/${X}`)}if(k){(!["lt","lte","gt","gte"].includes($)||l.value!==void 0||h?.type!=="datetime")&&m("NATIVE_DATA_POLICY_DB_NOW_INVALID",y);for(let X of["operation","valuePath","emptyMatchesAll","resourceCode","value"])l[X]!==void 0&&m("NATIVE_DATA_POLICY_DB_NOW_INVALID",`${y}/${X}`)}l.dimensionCode&&!i.has(l.dimensionCode)&&m("NATIVE_SCOPE_DIMENSION_MISSING",`${y}/dimensionCode`),s.has(String(l.dimensionCode||""))&&l.operation!=="read"&&m("NATIVE_SCOPE_SOURCE_LAST_KNOWN_GOOD_UNSAFE",`${y}/operation`)}}for(let[d,f]of e.data.resources.entries()){let u=N(f,`/config/data/resources/${d}`);u.dataPolicyCode&&!a.has(u.dataPolicyCode)&&m("NATIVE_DATA_POLICY_REFERENCE_MISSING",`/config/data/resources/${d}/dataPolicyCode`)}}function tl(e){try{ro(e.data.resources,"/config/data/resources"),e.data.resources.forEach((t,o)=>eo(t.schema.fields,new Set(e.authz.roles.map(n=>n.code)),new Set(e.authz.scopeDimensions.map(n=>n.code)),`/config/data/resources/${o}/schema/fields`))}catch(t){throw(t instanceof ye||t instanceof Ve)&&m(t.code,t.pointer),t}}function nl(e,t,o,n){let i=new Set;for(let[r,c]of e.authz.roleMembershipSources.entries()){let s=`/config/authz/roleMembershipSources/${r}`,a=N(c,s);C(a,["code","name","resourceCode","userIdField","roleCode","enabledField","effectiveFromField","effectiveToField","failureMode"],s,!0);let d=P(a.code,`${s}/code`);d.length>100&&m("NATIVE_AUTHORIZATION_PROJECTION_SOURCE_CODE_INVALID",`${s}/code`),i.has(d)&&m("NATIVE_AUTHORIZATION_PROJECTION_SOURCE_DUPLICATE",`${s}/code`),i.add(d),w(a.name,`${s}/name`,255);let f=os(a.resourceCode,`${s}/resourceCode`,o);is(a.userIdField,`${s}/userIdField`,f),t.has(String(a.roleCode||""))||m("NATIVE_ROLE_REFERENCE_MISSING",`${s}/roleCode`),n&&a.roleCode===n&&m("NATIVE_AUTHENTICATED_USER_ROLE_SOURCE_CONFLICT",`${s}/roleCode`),rs(a,s,f)}for(let[r,c]of e.authz.relationshipGrantSources.entries()){let s=`/config/authz/relationshipGrantSources/${r}`,a=N(c,s);C(a,["code","name","resourceCode","subject","relationCode","targetResourceCode","resourceIdField","operations","enabledField","effectiveFromField","effectiveToField","failureMode"],s,!0);let d=P(a.code,`${s}/code`);d.length>100&&m("NATIVE_AUTHORIZATION_PROJECTION_SOURCE_CODE_INVALID",`${s}/code`),i.has(d)&&m("NATIVE_AUTHORIZATION_PROJECTION_SOURCE_DUPLICATE",`${s}/code`),i.add(d),w(a.name,`${s}/name`,255);let f=os(a.resourceCode,`${s}/resourceCode`,o),u=N(a.subject,`${s}/subject`),p=w(u.type,`${s}/subject/type`,32);C(u,p==="role_membership"?["type","userIdField","roleCode"]:["type","userIdField"],`${s}/subject`),["user","role_membership"].includes(p)||m("NATIVE_AUTHORIZATION_PROJECTION_SUBJECT_INVALID",`${s}/subject/type`),is(u.userIdField,`${s}/subject/userIdField`,f),p==="role_membership"&&!t.has(String(u.roleCode||""))&&m("NATIVE_ROLE_REFERENCE_MISSING",`${s}/subject/roleCode`),P(a.relationCode,`${s}/relationCode`);let g=H(a.targetResourceCode,`${s}/targetResourceCode`);o.has(g)||m("NATIVE_AUTHORIZATION_PROJECTION_TARGET_RESOURCE_MISSING",`${s}/targetResourceCode`);let I=st(a.resourceIdField,f),A=I?.field.type==="resource-ref.single"&&I.valuePath==="value"&&I.field.source?.resourceCode===g;(a.resourceIdField==="id"?g!==String(a.resourceCode):!A)&&m("NATIVE_AUTHORIZATION_PROJECTION_RESOURCE_ID_FIELD_INVALID",`${s}/resourceIdField`);let O=V(a.operations,`${s}/operations`,20);(O.length===0||O.some(b=>b.length>64||!/^[A-Za-z0-9][A-Za-z0-9:._*-]{0,63}$/.test(b)))&&m("NATIVE_AUTHORIZATION_PROJECTION_OPERATIONS_INVALID",`${s}/operations`),rs(a,s,f)}}function os(e,t,o){let n=H(e,t),i=o.get(n);return i||m("NATIVE_AUTHORIZATION_PROJECTION_RESOURCE_MISSING",t),i}function is(e,t,o){let n=st(e,o);En(n)||m("NATIVE_AUTHORIZATION_PROJECTION_USER_FIELD_INVALID",t)}function rs(e,t,o){if(e.failureMode!=="strict"&&m("NATIVE_AUTHORIZATION_PROJECTION_FAILURE_MODE_INVALID",`${t}/failureMode`),e.enabledField!==void 0){let n=G(e.enabledField,`${t}/enabledField`);o.get(n)?.type!=="boolean"&&m("NATIVE_AUTHORIZATION_PROJECTION_ENABLED_FIELD_INVALID",`${t}/enabledField`)}for(let n of["effectiveFromField","effectiveToField"]){if(e[n]===void 0)continue;let i=G(e[n],`${t}/${n}`);["date","datetime"].includes(String(o.get(i)?.type))||m("NATIVE_AUTHORIZATION_PROJECTION_EFFECTIVE_FIELD_INVALID",`${t}/${n}`)}}function ol(e){let t=new Set,o=new Set;e.forEach((n,i)=>{let r=`/config/backend/secrets/${i}`,c=N(n,r);C(c,["name","env","description","required","exposure"],r,!0);let s=w(c.name,`${r}/name`,128),a=w(c.env,`${r}/env`,128);id.test(s)||m("NATIVE_SECRET_NAME_INVALID",`${r}/name`),(!rd.test(a)||a.startsWith("OPENXIANGDA_")||["NODE_ENV","PORT"].includes(a))&&m("NATIVE_SECRET_ENV_INVALID",`${r}/env`),t.has(s)&&m("NATIVE_SECRET_NAME_DUPLICATE",`${r}/name`),o.has(a)&&m("NATIVE_SECRET_ENV_DUPLICATE",`${r}/env`),t.add(s),o.add(a),F(c.exposure,"active_only",`${r}/exposure`),c.required!==void 0&&At(c.required,`${r}/required`),c.description!==void 0&&bi(c.description,`${r}/description`,2e3)})}function il(e){let t=new Set,o=new Map,n=new Map(e.data.resources.map(g=>[String(g.code),g])),i=new Map(e.frontend.routes.map((g,I)=>{let A=N(g,`/config/frontend/routes/${I}`);return[P(A.code,`/config/frontend/routes/${I}/code`),A]}));for(let[g,I]of e.workflows.definitions.entries()){let A=`/config/workflows/definitions/${g}`,O=N(I,A);if(C(O,["version","definition","launch"],A,["detailRouteCode"]),Ns(O.launch,`${A}/launch`),O.detailRouteCode!==void 0){let h=Ts(O.detailRouteCode,`${A}/detailRouteCode`);for(let[$,k,M]of[["desktop",h.desktop,["admin","user"]],["mobile",h.mobile,["user"]]]){let L=`${A}/detailRouteCode/${$}`,Y=i.get(k);Y||m("NATIVE_WORKFLOW_DETAIL_ROUTE_MISSING",L),M.some(de=>de===Y.surface)||m("NATIVE_WORKFLOW_DETAIL_ROUTE_SURFACE_INVALID",L);let ne=Ne(Y.path,L),X=[...ne.matchAll(/:([A-Za-z][A-Za-z0-9_]*)/g)].map(de=>de[1]);(ne.includes("*")||X.length!==1||X[0]!=="instanceId")&&m("NATIVE_WORKFLOW_DETAIL_ROUTE_PATH_INVALID",L)}}let b=N(O.definition,`${A}/definition`),_=`${b.code}:${gt(O.version,`${A}/version`)}`;t.has(_)&&m("NATIVE_WORKFLOW_DEFINITION_DUPLICATE",A),t.add(_),sl(b,`${A}/definition`);let E=kn(b);E.length&&m(E[0],`${A}/definition/launchPreflight`);let T=Qo(b);T.length&&m(T[0],`${A}/definition/approvedDelegation`);let l=Xo(b,e.backend.operations);l.length&&m(l[0],`${A}/definition/commandHandlers`),rl(b.subject,n,`${A}/definition/subject`);let y=xt(b,new Map((n.get(b.subject.resourceCode)?.schema.fields||[]).map(h=>[h.code,{...n.get(b.subject.resourceCode)?.surface?.fields?.[h.code],...h,system:["id","revision","createdAt","updatedAt","createdBy","updatedBy"].includes(h.code)}])),new Map([...n].map(([h,$])=>[h,new Map($.schema.fields.map(k=>[k.code,{...$.surface?.fields?.[k.code],...k,system:["id","revision","createdAt","updatedAt","createdBy","updatedBy"].includes(k.code)}]))])));y.length&&m(y[0],`${A}/definition/taskPages`);let R=Vo(b,{appCode:e.appCode,capabilities:e.authz.capabilities.map(h=>h.code),fields:new Map((n.get(b.subject.resourceCode)?.schema.fields||[]).map(h=>[h.code,h]))});R.length&&m("NATIVE_WORKFLOW_INSTANCE_COMMAND_POLICY_INVALID",`${A}/definition/instanceCommands`,{errors:R}),b.title===b.code&&m("NATIVE_WORKFLOW_USER_TITLE_REQUIRED",`${A}/definition/title`),o.set(_,b)}let r=new Set,c=new Map;for(let[g,I]of e.workflows.bindings.entries()){let A=N(I,`/config/workflows/bindings/${g}`),O=N(A.binding,`/config/workflows/bindings/${g}/binding`),b=`${O.workflowCode}:${gt(A.version,`/config/workflows/bindings/${g}/version`)}`;r.has(b)&&m("NATIVE_WORKFLOW_BINDING_DUPLICATE",`/config/workflows/bindings/${g}`),r.add(b),al(O,`/config/workflows/bindings/${g}/binding`),c.set(b,O)}let s=new Set,a=new Map;for(let[g,I]of e.workflows.activations.entries()){let A=`/config/workflows/activations/${g}`,O=N(I,A);C(O,["workflowCode","definitionVersion","bindingVersion","acceptedCommandDeactivationPolicy"],A,["environmentKey"]);let b=P(O.workflowCode,`${A}/workflowCode`);s.has(b)&&m("NATIVE_WORKFLOW_ACTIVATION_DUPLICATE",A),s.add(b);let _=`${b}:${gt(O.definitionVersion,`${A}/definitionVersion`)}`,E=`${b}:${gt(O.bindingVersion,`${A}/bindingVersion`)}`;t.has(_)||m("NATIVE_WORKFLOW_DEFINITION_REFERENCE_MISSING",`${A}/definitionVersion`),r.has(E)||m("NATIVE_WORKFLOW_BINDING_REFERENCE_MISSING",`${A}/bindingVersion`);let T=o.get(_),l=c.get(E),y=kn(T,l);y.length&&m(y[0],A);let R=wn(T,l);R.length&&m(R[0],A),(!["finish-pinned","cancel-on-deactivate"].includes(O.acceptedCommandDeactivationPolicy)||O.acceptedCommandDeactivationPolicy!==T.acceptedCommandDeactivationPolicy)&&m("NATIVE_WORKFLOW_COMMAND_DEACTIVATION_POLICY_MISMATCH",`${A}/acceptedCommandDeactivationPolicy`),cl(T,l,`/config/workflows/activations/${g}`);try{let h=n.get(T.subject.resourceCode)?.schema.fields||[];to(T,l,new Map(h.map($=>[$.code,$])),`${A}/bindings`,new Map([...n].map(([$,k])=>[$,new Map(k.schema.fields.map(M=>[M.code,M]))])))}catch(h){throw h instanceof Ve&&m(h.code,h.pointer),h}a.set(b,l)}let d=si([...a.values()]);d.length&&m(d[0],"/config/workflows/activations");let f=new Set;e.workflows.providers.forEach((g,I)=>{let A=`/config/workflows/providers/${I}`,O=N(g,A);C(O,["code","endpointPath","timeoutMs"],A,!0);let b=P(O.code,`${A}/code`);f.has(b)&&m("NATIVE_WORKFLOW_PROVIDER_DUPLICATE",`${A}/code`),f.add(b),Ne(O.endpointPath,`${A}/endpointPath`),O.timeoutMs!==void 0&&ie(O.timeoutMs,`${A}/timeoutMs`,100,1e4)});for(let[g,I]of a.entries())for(let[A,O]of Object.entries(N(I.bindings,"/config/workflows/bindings/*/binding/bindings"))){let b=N(O,`/config/workflows/${g}/bindings/${A}`);b.provider==="application_provider"&&!f.has(b.providerCode)&&m("NATIVE_WORKFLOW_PROVIDER_REFERENCE_MISSING",`/config/workflows/${g}/bindings/${A}/providerCode`)}let u=new Set(e.authz.roles.map(g=>g.code)),p=new Set;e.workflows.editableParameters.forEach((g,I)=>{let A=`/config/workflows/editableParameters/${I}`,O=N(g,A);C(O,["code","workflowCode","bindingKey","label","valueType","required","allowedRoleCodes","allowedProviderCodes","maxItems"],A,!0);let b=P(O.code,`${A}/code`);p.has(b)&&m("NATIVE_WORKFLOW_EDITABLE_PARAMETER_DUPLICATE",`${A}/code`),p.add(b);let _=Kn(O.workflowCode,`${A}/workflowCode`),E=Wn(O.bindingKey,`${A}/bindingKey`),T=a.get(_);(!T||!N(T.bindings,`${A}/bindingKey`)[E])&&m("NATIVE_WORKFLOW_EDITABLE_BINDING_MISSING",`${A}/bindingKey`),w(O.label,`${A}/label`,255),["role_code","user_ids","provider_code"].includes(O.valueType)||m("NATIVE_WORKFLOW_EDITABLE_VALUE_TYPE_INVALID",`${A}/valueType`);for(let l of V(O.allowedRoleCodes||[],`${A}/allowedRoleCodes`,100))u.has(l)||m("NATIVE_ROLE_REFERENCE_MISSING",`${A}/allowedRoleCodes`);for(let l of V(O.allowedProviderCodes||[],`${A}/allowedProviderCodes`,100))f.has(l)||m("NATIVE_WORKFLOW_PROVIDER_REFERENCE_MISSING",`${A}/allowedProviderCodes`);O.required!==void 0&&At(O.required,`${A}/required`),O.maxItems!==void 0&&ie(O.maxItems,`${A}/maxItems`,1,200)})}function rl(e,t,o){let n=N(e,o);C(n,["resourceCode","factProjection"],o,["summaryFields"]);let i=H(n.resourceCode,`${o}/resourceCode`),r=t.get(i);r||m("NATIVE_WORKFLOW_SUBJECT_RESOURCE_MISSING",`${o}/resourceCode`);let c=new Set(S(N(r.schema,`${o}/resourceCode`).fields,`${o}/resourceCode`,500).map((d,f)=>G(N(d,`${o}/resourceCode/${f}`).code,`${o}/resourceCode/${f}`))),s=N(n.factProjection,`${o}/factProjection`),a=Object.entries(s);(a.length<1||a.length>64)&&m("NATIVE_WORKFLOW_SUBJECT_FACT_PROJECTION_INVALID",`${o}/factProjection`);for(let[d,f]of a){cd.test(d)||m("NATIVE_WORKFLOW_SUBJECT_FACT_KEY_INVALID",`${o}/factProjection/${d}`);let u=G(f,`${o}/factProjection/${d}`);c.has(u)||m("NATIVE_WORKFLOW_SUBJECT_FIELD_MISSING",`${o}/factProjection/${d}`)}if(n.summaryFields!==void 0){let d=V(n.summaryFields,`${o}/summaryFields`,dd).map((I,A)=>G(I,`${o}/summaryFields/${A}`)),f=t.get(i),u=f.surface&&typeof f.surface=="object"&&!Array.isArray(f.surface)?f.surface:{},p=u.fields&&typeof u.fields=="object"&&!Array.isArray(u.fields)?u.fields:{},g=new Map(S(N(f.schema,`${o}/resourceCode`).fields,`${o}/resourceCode`,500).map((I,A)=>{let O=N(I,`${o}/resourceCode/${A}`);return[String(O.code),O]}));for(let[I,A]of d.entries()){let O=g.get(A),b=p[A],_=String(O?.type||""),E=O?.maxLength;(!O||O.system===!0||b&&typeof b=="object"&&!Array.isArray(b)&&b.system===!0||["id","revision","created_by","updated_by","created_at","updated_at"].includes(A)||!ud.has(_)||_==="text.long"&&typeof E=="number"&&Number.isFinite(E)&&E>ld)&&m("NATIVE_WORKFLOW_SUBJECT_SUMMARY_FIELDS_INVALID",`${o}/summaryFields/${I}`)}}}function sl(e,t){C(e,["schemaVersion","code","title","subject","acceptedCommandDeactivationPolicy","startAt","inputSchema","nodes"],t,["organizationContext","instanceCommands","readability","taskPages","rejectionNotification","commandHandlers","launchPreflight","approvedDelegation"]),F(e.schemaVersion,"openxiangda.workflow-definition/v2",`${t}/schemaVersion`),Kn(e.code,`${t}/code`),w(e.title,`${t}/title`,255),["finish-pinned","cancel-on-deactivate"].includes(e.acceptedCommandDeactivationPolicy)||m("NATIVE_WORKFLOW_COMMAND_DEACTIVATION_POLICY_REQUIRED",`${t}/acceptedCommandDeactivationPolicy`);let o=N(e.nodes,`${t}/nodes`),n=Object.keys(o);(n.length===0||n.length>200)&&m("NATIVE_WORKFLOW_NODE_COUNT_INVALID",`${t}/nodes`);let i=w(e.startAt,`${t}/startAt`,128),r=Bo(e);r.length&&m(r[0],`${t}/readability`);let c=wn(e);c.length&&m(c[0],`${t}/nodes`);let s=Dn(e);s.length&&m(s[0],`${t}/nodes`);let a=ut(e);a.length&&m(a[0],`${t}/nodes`);let d=Jo(e);d.length&&m(d[0],`${t}/nodes`);let f=Yo(e);f.length&&m(f[0],`${t}/rejectionNotification`);let u=Sn(e);u.length&&m(u[0],`${t}/nodes`);let p=xt(e);p.length&&m(p[0],`${t}/taskPages`);let g=kt(e);g.length&&m(g[0],`${t}/nodes`),o[i]||m("NATIVE_WORKFLOW_START_NODE_MISSING",`${t}/startAt`);let I=new Map;for(let[_,E]of Object.entries(o)){let T=`${t}/nodes/${_}`,l=N(E,T);F(l.id,_,`${T}/id`),["approval","condition","end","cc","action","correction"].includes(l.kind)||m("NATIVE_WORKFLOW_NODE_KIND_INVALID",`${T}/kind`);let y=[];if(l.kind==="approval"){w(l.title,`${T}/title`,255),Wn(l.binding,`${T}/binding`),["single","any","all","sequence"].includes(l.mode)||m("NATIVE_WORKFLOW_APPROVAL_MODE_INVALID",`${T}/mode`),y.push(w(l.onApprove,`${T}/onApprove`,128),w(l.onReject,`${T}/onReject`,128));for(let R of V(l.returnTargets||[],`${T}/returnTargets`,200))o[R]||m("NATIVE_WORKFLOW_TARGET_MISSING",`${T}/returnTargets`);for(let R of V(l.allowedOperations||[],`${T}/allowedOperations`,20))pd.has(R)||m("NATIVE_WORKFLOW_OPERATION_INVALID",`${T}/allowedOperations`)}else if(l.kind==="correction"){let R=ei(e);R.length&&m(R[0],T)}else if(l.kind==="action")y.push(w(l.next,`${T}/next`,128));else if(l.kind==="cc")w(l.title,`${T}/title`,255),Wn(l.binding,`${T}/binding`),y.push(w(l.next,`${T}/next`,128));else if(l.kind==="condition"){let R=S(l.branches,`${T}/branches`,100);R.length===0&&m("NATIVE_WORKFLOW_BRANCH_REQUIRED",`${T}/branches`),R.forEach((h,$)=>{let k=N(h,`${T}/branches/${$}`);qt(k.when,`${T}/branches/${$}/when`,0),y.push(w(k.target,`${T}/branches/${$}/target`,128))}),y.push(w(l.otherwise,`${T}/otherwise`,128))}else w(l.title,`${T}/title`,255),w(l.outcome,`${T}/outcome`,128);for(let R of y)o[R]||m("NATIVE_WORKFLOW_TARGET_MISSING",T);I.set(_,y)}let A=new Set,O=new Set,b=_=>{if(O.has(_)&&m("NATIVE_WORKFLOW_CYCLE_FORBIDDEN",`${t}/nodes/${_}`),!A.has(_)){A.add(_),O.add(_);for(let E of I.get(_)||[])b(E);O.delete(_)}};b(i);for(let _ of[...A]){let E=o[_];if(E?.kind==="approval")for(let T of E.returnTargets||[])o[T]?.kind==="correction"&&A.add(T)}A.size!==n.length&&m("NATIVE_WORKFLOW_NODE_UNREACHABLE",`${t}/nodes`)}function qt(e,t,o){o>20&&m("NATIVE_WORKFLOW_EXPRESSION_DEPTH_EXCEEDED",t);let n=N(e,t),i=w(n.op,`${t}/op`,16);if(i!=="literal"){if(i==="path"){let r=w(n.path,`${t}/path`,255);(!/^[A-Za-z][A-Za-z0-9_.-]{0,254}$/.test(r)||r.split(".").some(c=>["__proto__","constructor","prototype"].includes(c)))&&m("NATIVE_WORKFLOW_EXPRESSION_PATH_INVALID",`${t}/path`);return}if(["eq","neq","gt","gte","lt","lte","in","contains"].includes(i)){qt(n.left,`${t}/left`,o+1),qt(n.right,`${t}/right`,o+1);return}if(["and","or"].includes(i)){let r=S(n.values,`${t}/values`,100);r.length===0&&m("NATIVE_WORKFLOW_EXPRESSION_EMPTY",`${t}/values`),r.forEach((c,s)=>qt(c,`${t}/values/${s}`,o+1));return}if(["not","exists"].includes(i)){qt(n.value,`${t}/value`,o+1);return}m("NATIVE_WORKFLOW_EXPRESSION_OPERATOR_INVALID",`${t}/op`)}}function al(e,t){F(e.schemaVersion,"openxiangda.workflow-binding/v2",`${t}/schemaVersion`),Kn(e.workflowCode,`${t}/workflowCode`);let o=N(e.bindings,`${t}/bindings`);Object.keys(o).length>200&&m("NATIVE_WORKFLOW_BINDING_LIMIT_EXCEEDED",`${t}/bindings`);for(let[n,i]of Object.entries(o)){Wn(n,`${t}/bindings/${n}`);let r=N(i,`${t}/bindings/${n}`),c=vt(r);c.length&&m(c[0],`${t}/bindings/${n}/roleCodes`);let s=w(r.provider,`${t}/bindings/${n}/provider`,64);if(["fixed_users","initiator","input_users","form_field_users","department_supervisor","app_role","app_role_in_scope","business_relation","previous_node_actor","initiator_select","application_provider"].includes(s)||m("NATIVE_WORKFLOW_BINDING_PROVIDER_INVALID",`${t}/bindings/${n}/provider`),s==="fixed_users"&&(Array.isArray(r.users)||m("NATIVE_WORKFLOW_BINDING_USERS_REQUIRED",`${t}/bindings/${n}/users`),S(r.users,`${t}/bindings/${n}/users`,200)),["input_users","form_field_users"].includes(s)&&w(r.inputPath,`${t}/bindings/${n}/inputPath`,255),["app_role","app_role_in_scope","initiator_select"].includes(s)&&r.roleCodes===void 0&&P(r.roleCode,`${t}/bindings/${n}/roleCode`),s==="department_supervisor"&&w(r.departmentIdFrom,`${t}/bindings/${n}/departmentIdFrom`,255),s==="application_provider"&&P(r.providerCode,`${t}/bindings/${n}/providerCode`),r.routing!==void 0){let a=Ut(r.routing);a.length&&m(a[0],`${t}/bindings/${n}/routing`)}}}function cl(e,t,o){F(t.workflowCode,e.code,`${o}/workflowCode`);let n=N(t.bindings,`${o}/bindings`);for(let[s,a]of Object.entries(n))a.provider==="fixed_users"&&!a.users.length&&!zo(e,s)&&m("NATIVE_WORKFLOW_BINDING_USERS_REQUIRED",`${o}/bindings/${s}/users`);let i=Dn(e,t);i.length&&m(i[0],o);let r=Sn(e,t);r.length&&m(r[0],o);let c=kt(e,t);c.length&&m(c[0],o);for(let[s,a]of Object.entries(N(e.nodes,`${o}/nodes`))){let d=N(a,`${o}/nodes/${s}`);["approval","cc"].includes(d.kind)&&!n[d.binding]&&m("NATIVE_WORKFLOW_BINDING_REFERENCE_MISSING",`${o}/nodes/${s}/binding`)}}function dl(e,t,o){let n=N(t.routeManifest,"/contracts/routeManifest"),i=N(e.routeManifest,"/contracts/routeManifest"),r=new Map;for(let f of S(o.data?.resources,"/config/data/resources",B.resources)){let u=N(f,"/config/data/resources");r.set(String(u.code||""),u)}let c=new Set(S(i.routes,"/contracts/routeManifest/routes",B.routes).map(f=>String(N(f,"/contracts/routeManifest/routes").code||""))),s=[];for(let f of S(n.routes,"/contracts/routeManifest/routes",B.routes)){let u=N(f,"/contracts/routeManifest/routes"),p=String(u.kind||"");if(p!=="resource-records"&&p!=="resource-submit")continue;let g=String(u.resourceCode||""),I=r.get(g);I||m("NATIVE_ROUTE_MANIFEST_RESOURCE_UNKNOWN","/contracts/routeManifest/routes");let O=`user.${g}.${p==="resource-records"?"records":"submit"}`;F(String(u.code||""),O,"/contracts/routeManifest/routes/code");let b=p==="resource-records"?"read":"create",_=String(N(I.capabilities,"/config/data/resources/capabilities")[b]||"");for(let E of["desktop","mobile"]){let T=N(u[E],`/contracts/routeManifest/routes/${E}`),l=E==="mobile"?"/m/my/":"/my/",y=p==="resource-records"?`${l}${g}`:`${l}${g}/submit`;F(String(T.path||""),y,`/contracts/routeManifest/routes/${E}/path`),F(String(T.capability||""),_,`/contracts/routeManifest/routes/${E}/capability`),F(String(T.routeCode||""),`${O}.${E}`,`/contracts/routeManifest/routes/${E}/routeCode`)}(c.has(O)||s.some(E=>String(E.code)===O))&&m("NATIVE_ROUTE_MANIFEST_DUPLICATE","/contracts/routeManifest/routes/code"),s.push(u)}if(!s.length)return;i.routes=S([...i.routes,...s],"/contracts/routeManifest/routes",1e3).sort((f,u)=>Ee(String(N(f,"x").code||""),String(N(u,"x").code||"")));let a=String(N(n.rootEntry,"x").code||"");if(s.find(f=>String(f.code)===a&&f.kind==="resource-records")){let f=N(n.rootEntry,"x");i.rootEntry={code:a,desktop:String(f.desktop||""),mobile:String(f.mobile||"")}}i.digest=Z({schemaVersion:i.schemaVersion,appCode:i.appCode,devicePolicy:i.devicePolicy,rootEntry:i.rootEntry,authentication:i.authentication,routes:i.routes})}function He(e,t,o){let n=N(e,t);C(n,["schemaVersion","appCode","code","name","schema","surface","invariants","decimalReservationLifecycle","uniqueKeys","workflowHistory","recordPrint","recordComments","recordDeletion","capabilities","dataPolicyCode","fieldPolicies"],t,!0),F(n.schemaVersion,"openxiangda.data-resource/v2",`${t}/schemaVersion`),F(n.appCode,o,`${t}/appCode`);let i=H(n.code,`${t}/code`),r=w(n.name,`${t}/name`,255),c=N(n.schema,`${t}/schema`);C(c,["fields"],`${t}/schema`);let s,a,d,f;try{d=mn(n.decimalReservationLifecycle,`${t}/decimalReservationLifecycle`),s=rn(c.fields,`${t}/schema/fields`),f=ko(n.uniqueKeys,s,`${t}/uniqueKeys`),a=so(n.invariants,s,`${t}/invariants`),ln(n.surface,s,`${t}/surface`)}catch(I){throw(I instanceof ye||I instanceof Ve||I instanceof Be||I instanceof ct)&&m(I.code,I.pointer),I}if(n.recordComments!==void 0){let I=N(n.recordComments,`${t}/recordComments`);C(I,["read","create"],`${t}/recordComments`);for(let A of["read","create"]){let O=I[A];(!Array.isArray(O)||O.length>20||O.some(b=>typeof b!="string"||!b.trim())||new Set(O).size!==O.length)&&m("NATIVE_RECORD_COMMENTS_POLICY_INVALID",`${t}/recordComments/${A}`)}}if(n.recordDeletion!==void 0){let I=N(n.recordDeletion,`${t}/recordDeletion`);C(I,["delete"],`${t}/recordDeletion`);let A=I.delete;(!Array.isArray(A)||A.length>20||A.some(O=>typeof O!="string"||!O.trim())||new Set(A).size!==A.length)&&m("NATIVE_RECORD_DELETION_DELETE_INVALID",`${t}/recordDeletion/delete`)}if(n.recordPrint!==void 0){let I=N(n.recordPrint,`${t}/recordPrint`);C(I,["read"],`${t}/recordPrint`);let A=I.read;(!Array.isArray(A)||A.length>20||A.some(O=>typeof O!="string"||!O.trim())||new Set(A).size!==A.length)&&m("NATIVE_RECORD_PRINT_READ_INVALID",`${t}/recordPrint/read`)}if(n.workflowHistory!==void 0){let I=N(n.workflowHistory,`${t}/workflowHistory`);C(I,["read"],`${t}/workflowHistory`);let A=I.read;(!Array.isArray(A)||A.length>20||A.some(O=>typeof O!="string"||!O.trim())||new Set(A).size!==A.length)&&m("NATIVE_WORKFLOW_HISTORY_READ_INVALID",`${t}/workflowHistory/read`)}let u=new Set(s.map(I=>I.code)),p=N(n.capabilities,`${t}/capabilities`);C(p,["read","create","update","delete"],`${t}/capabilities`);let g=N(n.fieldPolicies,`${t}/fieldPolicies`);for(let[I,A]of Object.entries(g)){!u.has(I)&&!tt(I)&&m("NATIVE_DATA_FIELD_POLICY_FIELD_MISSING",`${t}/fieldPolicies/${I}`);let O=`${t}/fieldPolicies/${I}`,b=N(A,O);tt(I)&&(C(b,["read"],O,!0),(!Array.isArray(b.read)||b.read.length>20||b.read.some(_=>typeof _!="string"||!_.trim())||new Set(b.read).size!==b.read.length)&&m("NATIVE_DATA_AUDIT_READ_POLICY_INVALID",`${O}/read`)),C(b,["read","create","update","mask"],O,!0),b.mask!==void 0&&!["omit","null"].includes(b.mask)&&m("NATIVE_DATA_FIELD_POLICY_MASK_INVALID",`${O}/mask`)}return{...n,code:i,name:r,schema:{fields:s},...n.invariants===void 0?{}:{invariants:a},...d?{decimalReservationLifecycle:d}:{},...f!==void 0?{uniqueKeys:f}:{},capabilities:p,fieldPolicies:g}}function Rs(e){return[{code:`app:${e}:directory:read`,kind:"platform",name:"\u8BFB\u53D6\u53D7\u9650\u7EC4\u7EC7\u76EE\u5F55",source:"platform"},...[["app:role:read","\u67E5\u770B\u89D2\u8272\u4E0E\u6388\u6743"],["app:role:define","\u5B9A\u4E49\u624B\u5DE5\u89D2\u8272"],["app:role:assign","\u5206\u914D\u89D2\u8272\u6210\u5458"],["app:role:grant-capability","\u6388\u4E88\u89D2\u8272\u80FD\u529B"],["app:scope-grant:manage","\u7BA1\u7406\u6570\u636E\u8303\u56F4"],["app:super-admin:manage","\u7BA1\u7406\u5E94\u7528\u6700\u9AD8\u7BA1\u7406\u5458"]].map(([t,o])=>({code:t,kind:"platform",name:o,source:"platform"}))]}function ss(e,t,o,n){let i=e.toString("utf8"),r;try{r=JSON.parse(i)}catch{m(o,t)}let c=N(r,t);return Q(c)!==i&&m(n,t),c}function pi(e,t,o){let n=0,i=(r,c,s)=>{if(n+=1,n>o&&m("NATIVE_ARTIFACT_NODE_LIMIT_EXCEEDED",c),s>gd&&m("NATIVE_ARTIFACT_DEPTH_LIMIT_EXCEEDED",c),typeof r=="string"){Buffer.byteLength(r)>_i&&m("NATIVE_ARTIFACT_STRING_LIMIT_EXCEEDED",c);return}if(Array.isArray(r)){r.forEach((a,d)=>i(a,`${c}/${d}`,s+1));return}if(!(!r||typeof r!="object"))for(let[a,d]of Object.entries(r))["__proto__","prototype","constructor"].includes(a)&&m("NATIVE_ARTIFACT_DANGEROUS_KEY",`${c}/${a}`),ll(a)&&m("NATIVE_ARTIFACT_RUNTIME_FIELD_FORBIDDEN",`${c}/${a}`),i(d,`${c}/${a}`,s+1)};i(e,t,0)}function ll(e){return["environmentKey","environmentId","secretValue","ciphertext","oauthClient","oauthClientId","oauthClientSecret","signingSecret","kubernetesNamespace","nodePort","productionUrl"].includes(e)}function _t(e){return{value:e,digest:Z(e)}}function as(e,t,o,n){typeof e!="string"&&!Buffer.isBuffer(e)&&!(e instanceof Uint8Array)&&m("NATIVE_ARTIFACT_BYTES_REQUIRED",o);let i=Buffer.isBuffer(e)?e:Buffer.from(e);return i.byteLength===0&&m("NATIVE_ARTIFACT_EMPTY",o),i.byteLength>t&&m(n,o),i}function cs(e,t,o,n){let i=Un.createHash("sha256").update(e).digest("hex");Un.timingSafeEqual(Buffer.from(i),Buffer.from(t))||m(n,o)}function N(e,t){return(!e||typeof e!="object"||Array.isArray(e))&&m("NATIVE_OBJECT_REQUIRED",t),e}function S(e,t,o){return Array.isArray(e)||m("NATIVE_ARRAY_REQUIRED",t),e.length>o&&m("NATIVE_ARRAY_LIMIT_EXCEEDED",t),e}function V(e,t,o){let n=S(e,t,o).map((i,r)=>w(i,`${t}/${r}`,255));return new Set(n).size!==n.length&&m("NATIVE_ARRAY_DUPLICATE",t),n}function w(e,t,o){return(typeof e!="string"||e.length===0||e.length>o)&&m("NATIVE_STRING_INVALID",t),e}function bi(e,t,o){return(typeof e!="string"||e.length>o)&&m("NATIVE_STRING_INVALID",t),e}function P(e,t){let o=w(e,t,128);return ed.test(o)||m("NATIVE_CODE_INVALID",t),o}function H(e,t){let o=w(e,t,64);return nd.test(o)||m("NATIVE_RESOURCE_CODE_INVALID",t),o}function G(e,t){let o=w(e,t,63);return od.test(o)||m("NATIVE_FIELD_CODE_INVALID",t),o}function Kn(e,t){let o=w(e,t,128);return sd.test(o)||m("NATIVE_WORKFLOW_CODE_INVALID",t),o}function Wn(e,t){let o=w(e,t,128);return ad.test(o)||m("NATIVE_WORKFLOW_BINDING_CODE_INVALID",t),o}function pe(e,t,o){let n=w(e,t,255);return Qc.test(n)||m("NATIVE_CAPABILITY_CODE_INVALID",t),!n.startsWith(`app:${o}:`)&&!Rs(o).some(i=>i.code===n)&&m("NATIVE_CAPABILITY_APP_MISMATCH",t),n}function Ne(e,t){let o=w(e,t,2048);return(!o.startsWith("/")||o.startsWith("//")||o.includes("..")||o.includes("?")||o.includes("#"))&&m("NATIVE_ABSOLUTE_PATH_INVALID",t),o}function gt(e,t){return(!Number.isInteger(e)||Number(e)<1)&&m("NATIVE_POSITIVE_INTEGER_REQUIRED",t),Number(e)}function ie(e,t,o,n){return(!Number.isInteger(e)||Number(e)<o||Number(e)>n)&&m("NATIVE_INTEGER_OUT_OF_RANGE",t),Number(e)}function At(e,t){return typeof e!="boolean"&&m("NATIVE_BOOLEAN_REQUIRED",t),e}function Ai(e,t){let o=w(e,t,64).toLowerCase();return Xc.test(o)||m("NATIVE_DIGEST_INVALID",t),o}function F(e,t,o){e!==t&&m("NATIVE_VALUE_MISMATCH",o)}function C(e,t,o,n=!1){let i=new Set([...t,...Array.isArray(n)?n:[]]);for(let r of Object.keys(e))i.has(r)||m("NATIVE_PROPERTY_UNKNOWN",`${o}/${r}`);if(n!==!0)for(let r of t)Object.prototype.hasOwnProperty.call(e,r)||m("NATIVE_PROPERTY_REQUIRED",`${o}/${r}`)}function ee(e,t){return[...e].sort((o,n)=>Ee(t(o),t(n)))}function U(e){return[...new Set(e)].sort(Ee)}function ds(e){return[...new Set(e)].sort((t,o)=>t-o)}function Ee(e,t){return e===t?0:e<t?-1:1}function Cs(e){return!e||typeof e!="object"||Object.isFrozen(e)||(Object.freeze(e),Object.values(e).forEach(t=>Cs(t))),e}function Ei(e,t,o){if(mi(e,t))return o;if(Array.isArray(e)&&Array.isArray(t)){let n=Math.max(e.length,t.length);for(let i=0;i<n;i+=1)if(!mi(e[i],t[i]))return Ei(e[i],t[i],`${o}/${i}`)}if(e&&t&&typeof e=="object"&&typeof t=="object"&&!Array.isArray(e)&&!Array.isArray(t)){let n=U([...Object.keys(e),...Object.keys(t)]);for(let i of n){let r=e[i],c=t[i];if(!mi(r,c))return Ei(r,c,`${o}/${i}`)}}return o}function mi(e,t){return e===void 0||t===void 0?e===t:Q(e)===Q(t)}function m(e,t,o={}){throw new Fn(e,t,o)}var ip=50,rp=131072,Gn=class extends Error{constructor(o){super("OPENXIANGDA_NATIVE_AUTHZ_BATCH_INPUT_INVALID");this.pointer=o}pointer;code="OPENXIANGDA_NATIVE_AUTHZ_BATCH_INPUT_INVALID";status=400};function ul(e){let t=u=>{throw new Gn(u)},o=(u,p)=>((!u||typeof u!="object"||Array.isArray(u))&&t(p),u),n=(u,p,g)=>{for(let I of Object.keys(u))p.includes(I)||t(`${g}/${I}`)},i=(u,p,g)=>((typeof u!="string"||!u.trim()||u.length>p)&&t(g),u),r=(u,p)=>{let g=i(u,36,p);return/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(g)||t(p),g.toLowerCase()},c=o(e,""),s;try{s=new TextEncoder().encode(JSON.stringify(c)).byteLength}catch{t("")}s>131072&&t(""),n(c,["schemaVersion","environmentKey","items"],""),c.schemaVersion!=="openxiangda.native-role-membership-batch-request/v2"&&t("/schemaVersion"),c.environmentKey!==void 0&&!["preproduction","production"].includes(String(c.environmentKey))&&t("/environmentKey"),(!Array.isArray(c.items)||c.items.length<1||c.items.length>50)&&t("/items");let a=new Set,d=new Set,f;for(let[u,p]of c.items.entries()){let g=`/items/${u}`,I=o(p,g);["create","update","revoke"].includes(String(I.operation))||t(`${g}/operation`),f??=I.operation,f!==I.operation&&t(`${g}/operation`),n(I,["operation","operationId","reason",...f==="create"?["userId","roleCode"]:["membershipId","expectedRevision"],...f!=="revoke"?["scopeGrants","validFrom","validTo"]:[]],g);let A=r(I.operationId,`${g}/operationId`);a.has(A)&&t(`${g}/operationId`),a.add(A),i(I.reason,1e3,`${g}/reason`);let O;if(f==="create"){let b=i(I.userId,255,`${g}/userId`),_=i(I.roleCode,128,`${g}/roleCode`);/^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/.test(_)||t(`${g}/roleCode`),O=JSON.stringify([b,_])}else O=r(I.membershipId,`${g}/membershipId`),(!Number.isSafeInteger(I.expectedRevision)||Number(I.expectedRevision)<1)&&t(`${g}/expectedRevision`);d.has(O)&&t(g),d.add(O),I.scopeGrants!==void 0&&(!Array.isArray(I.scopeGrants)||I.scopeGrants.length>100)&&t(`${g}/scopeGrants`);for(let b of["validFrom","validTo"])I[b]!==void 0&&I[b]!==null&&i(I[b],64,`${g}/${b}`)}}var Ds="openxiangda.workflow-delegation-administration/v2",ks="openxiangda.workflow-delegation-mutation/v2",hs="openxiangda.workflow-delegation-preview/v2";var Jt={type:"string",format:"uuid",pattern:"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"},me={type:"string",minLength:1,maxLength:255},Ye={type:"string",format:"date-time"},Et={type:"integer",minimum:1},fl={anyOf:[Ye,{type:"null"}]},Oi={anyOf:[me,{type:"null"}]},$s={anyOf:[{type:"string",pattern:"^[A-Za-z0-9._:-]{1,128}$"},{type:"null"}]},qn={type:"string",pattern:"^membership:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"},vs={const:"future-assignments-only"},Ni={schemaVersion:{const:Ds},id:Jt,appCode:me,environmentKey:me,workflowCode:Oi,nodeId:$s,delegatorUserId:me,delegateUserId:me,delegatorRoleSubjectKey:qn,delegateRoleSubjectKey:qn,validFrom:Ye,validTo:Ye,status:{enum:["active","revoked","expired"]},reason:{type:"string",minLength:1,maxLength:4e3},createdBy:me,createdAt:Ye,revokedAt:fl,revision:Et,roleCode:me,roleName:me,delegatorDisplayName:me,delegateDisplayName:me,delegatorRoleSubjectRevision:Et,delegateRoleSubjectRevision:Et,effectiveState:{enum:["active","scheduled","expired","revoked","ineligible"]},evaluatedAt:Ye,issues:{type:"array",maxItems:20,uniqueItems:!0,items:me},canRevoke:{type:"boolean"},revokedBy:Oi,revokeReason:{type:["string","null"],maxLength:4e3},taskPolicy:vs},Ti={type:"object",additionalProperties:!1,required:Object.keys(Ni).filter(e=>e!=="nodeId"),properties:Ni},ap={$id:Ds,...Ti},Ps={schemaVersion:{const:ks},operationId:Jt,environmentKey:{enum:["preproduction","production"]},reason:{type:"string",minLength:1,maxLength:2e3,pattern:"\\S"}},ws={...Ps,operation:{const:"create"},workflowCode:Oi,nodeId:$s,delegatorRoleSubjectKey:qn,expectedDelegatorRevision:Et,delegateUserId:me,delegateRoleSubjectKey:qn,expectedDelegateRevision:Et,validFrom:Ye,validTo:Ye},Ss={...Ps,operation:{const:"revoke"},delegationId:Jt,expectedRevision:Et},Vs={$id:ks,type:"object",oneOf:[{type:"object",additionalProperties:!1,required:Object.keys(ws).filter(e=>e!=="nodeId"),properties:ws,if:{required:["nodeId"],properties:{nodeId:{type:"string"}}},then:{properties:{workflowCode:me}}},{type:"object",additionalProperties:!1,required:Object.keys(Ss),properties:Ss}]},pl={type:"string",pattern:"^[0-9a-f]{64}$"},cp={$id:hs,type:"object",additionalProperties:!1,required:["schemaVersion","operationId","operation","requestDigest","before","after","taskPolicy"],properties:{schemaVersion:{const:hs},operationId:Jt,operation:{enum:["create","revoke"]},requestDigest:pl,before:{anyOf:[Ti,{type:"null"}]},after:{...Ti,properties:{...Ni,id:{anyOf:[Jt,{type:"null"}]}}},taskPolicy:vs}};function ml(e){return e===void 0?"":`
9
+ ${Z(e)}`}function _l(e,t){let o=e.handlers.find(n=>n.code===t);return Z(o?.workflowStep?o:e)}var gl="openxiangda.data-business-command/v1",Ls="openxiangda.data-business-command-resolution/v1",fp=65536;function Al(e){let t=0,o=0,n=new Set,i=new TextEncoder,r=()=>{throw new Error("OPENXIANGDA_DATA_COMMAND_INTENT_INVALID")},c=a=>(o+=i.encode(a).byteLength,o>65536&&r(),a),s=(a,d)=>{if(++t>1e4||d>32)return r();if(a===null||typeof a=="string"||typeof a=="boolean")return c(JSON.stringify(a));if(typeof a=="number")return Number.isFinite(a)?c(JSON.stringify(a)):r();if(!a||typeof a!="object"||n.has(a)||Object.getOwnPropertySymbols(a).length)return r();n.add(a);let f;if(Array.isArray(a))return Object.keys(a).length!==a.length?r():(f=c("[")+a.map((p,g)=>(g?c(","):"")+s(p,d+1)).join("")+c("]"),n.delete(a),f);let u=Object.getPrototypeOf(a);return u!==Object.prototype&&u!==null?r():(f=c("{")+Object.keys(a).sort().map((p,g)=>(g?c(","):"")+c(JSON.stringify(p))+c(":")+s(a[p],d+1)).join("")+c("}"),n.delete(a),f)};return!e||typeof e!="object"||Array.isArray(e)?r():s(e,0)}function El(e,t,o=!1){let n=e,i=()=>{throw new Error("OPENXIANGDA_DATA_COMMAND_RESPONSE_INVALID")};if(!n||typeof n!="object"||n.schemaVersion!==Ls)return i();for(let a of["appCode","environmentKey","operationCode","idempotencyKey","intentDigest"])if(n[a]!==t[a])return i();if(typeof n.observedAt!="string"||!Number.isFinite(Date.parse(n.observedAt)))return i();if(n.outcome==="not_observed"&&n.receipt===null&&!o)return n;if(n.outcome!=="committed"||!n.receipt)return i();let r=n.receipt,c=a=>typeof a=="string"&&/^[a-f0-9]{8}(-[a-f0-9]{4}){3}-[a-f0-9]{12}$/i.test(a);if(!c(r.id)||!c(r.appVersionId)||!Number.isSafeInteger(r.environmentHeadRevision)||r.environmentHeadRevision<1||typeof r.completedAt!="string"||!Number.isFinite(Date.parse(r.completedAt)))return i();let s=r.transaction;if(!s||s.schemaVersion!=="openxiangda.data-transaction-result/v2"||s.idempotencyKey!==t.idempotencyKey||typeof s.replayed!="boolean"||!Array.isArray(s.items)||!s.items.length||s.items.length>1e3)return i();for(let[a,d]of s.items.entries()){if(!d||d.index!==a)return i();if(d.operation==="emitEvent"){if(!c(d.eventId)||typeof d.eventType!="string"||!d.eventType)return i()}else if(!["create","update","delete","increment"].includes(d.operation)||!c(d.id)||typeof d.resourceCode!="string"||!d.resourceCode||!Number.isSafeInteger(d.revision)||d.revision<1)return i()}return n}var Fs=/^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$/,zn=e=>!!e&&typeof e=="object"&&!Array.isArray(e),Ht=(e,t)=>typeof e=="string"&&e.length<=t&&e.trim().length>0&&e===e.trim(),Ri=(e,t,o=[])=>t.every(n=>Object.hasOwn(e,n))&&Object.keys(e).every(n=>[...t,...o].includes(n));function Il(e){if(!zn(e)||!Ri(e,["kind","errorCode","anyOf"],["allowAppSuperAdmin"])||e.kind!=="actor-authority"||!Ht(e.errorCode,110)||!/^OPENXIANGDA_[A-Z0-9_]{1,96}$/.test(e.errorCode)||Object.hasOwn(e,"allowAppSuperAdmin")&&typeof e.allowAppSuperAdmin!="boolean"||!Array.isArray(e.anyOf)||e.anyOf.length<1||e.anyOf.length>20)return!1;let t=new Set;return e.anyOf.every(o=>{if(!zn(o)||!Ri(o,["roleCode"],["scope"])||!Ht(o.roleCode,100)||!Fs.test(o.roleCode))return!1;if(Object.hasOwn(o,"scope")){let r=o.scope;if(!zn(r)||!Ri(r,["dimensionCode","value","operation"])||!Ht(r.dimensionCode,100)||!Fs.test(r.dimensionCode)||!Ht(r.value,255)||!Ht(r.operation,64)||!/^[A-Za-z0-9*][A-Za-z0-9*._:-]*$/.test(r.operation))return!1}let n=o.scope,i=JSON.stringify([o.roleCode,n?.dimensionCode,n?.value,n?.operation]);return t.has(i)?!1:(t.add(i),!0)})}function yl(e,t,o){if(t.roleSource!=="package"||t.roleCode!==e.roleCode||!o||!t.capabilityCodes.includes(o))return!1;if(!e.scope)return!0;let n;try{n=JSON.parse(t.scopeGrantsJson)}catch{return!1}if(!Array.isArray(n))return!1;let i=e.scope;return n.some(r=>zn(r)&&r.dimensionCode===i.dimensionCode&&Array.isArray(r.values)&&r.values.includes(i.value)&&(r.operations===void 0||r.operations===null||Array.isArray(r.operations)&&(!r.operations.length||r.operations.includes("*")||r.operations.includes(i.operation))))}var _p=500,bl=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,Ci=e=>!!e&&typeof e=="object"&&!Array.isArray(e);function Ol(e){if(!Ci(e)||e.kind!=="record-set-match"||Object.keys(e).some(o=>!["kind","resourceCode","errorCode","records","where"].includes(o))||typeof e.resourceCode!="string"||e.resourceCode.length>64||!/^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$/.test(e.resourceCode)||typeof e.errorCode!="string"||!/^OPENXIANGDA_[A-Z0-9_]{1,96}$/.test(e.errorCode)||!Array.isArray(e.records)||!e.records.length||e.records.length>500||Object.hasOwn(e,"where")&&!Ci(e.where))return!1;let t=new Set;return e.records.every(o=>{if(!Ci(o)||Object.keys(o).length!==2||typeof o.id!="string"||!bl.test(o.id)||!Number.isSafeInteger(o.expectedRevision)||Number(o.expectedRevision)<1)return!1;let n=o.id.toLowerCase();return t.has(n)?!1:(t.add(n),!0)})}function xs(e,t){if(t===void 0)return e;let o=e.views?.find(c=>c.code===t);if(!o)throw new Error(`DATA_RESOURCE_VIEW_NOT_FOUND: ${t}`);let n=new Map(o.sections?.flatMap(c=>c.fields.map(s=>[s,c.title]))),{views:i,...r}=e;return{...r,generated:o.generated,list:o.list,form:o.form,detail:o.detail,mobile:o.mobile,fields:Object.fromEntries(Object.entries(e.fields).map(([c,s])=>{let{section:a,...d}=s,f=n.get(c);return[c,{...d,...f?{section:f}:{},list:o.list.fieldOrder?.includes(c)??!1}]}))}}var js="openxiangda.development-configuration/v1",hi="openxiangda.development-configuration-manifest/v1",Nl="application.development-configuration",Tl="/openxiangda-api/v2/applications/{appCode}/dev-sessions/configuration",Jn=class extends Error{constructor(o,n){super(o);this.code=o;this.pointer=n;this.data={pointer:n}}code;pointer;status=400;data};function je(e){throw new Jn("OPENXIANGDA_CONNECTED_DEV_CONFIGURATION_INVALID",e)}function Ws(e){(!e||typeof e!="object"||Array.isArray(e))&&je("/packageManifest");let t=e,o=["schemaVersion","appCode","version","configDigest","contractDigest","source","toolchain","artifacts"];(Object.keys(t).some(i=>!o.includes(i))||t.schemaVersion!==hi||typeof t.appCode!="string"||!/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/.test(t.appCode)||!/^[a-f0-9]{64}$/.test(t.configDigest)||!/^[a-f0-9]{64}$/.test(t.contractDigest)||t.version!==`development-${t.configDigest}`)&&je("/packageManifest"),(!t.source||typeof t.source!="object"||Array.isArray(t.source)||Object.keys(t.source).some(i=>!["repository","commit","dirty"].includes(i))||![null,"string"].includes(t.source.repository===null?null:typeof t.source.repository)||t.source.repository!==null&&(t.source.repository.length>1024||/[\r\n\0]/.test(t.source.repository))||t.source.commit!==null&&(typeof t.source.commit!="string"||!/^(?:[a-f0-9]{40}|[a-f0-9]{64})$/.test(t.source.commit))||typeof t.source.dirty!="boolean")&&je("/packageManifest/source"),(!t.toolchain||Object.keys(t.toolchain).some(i=>!["version","contractVersion"].includes(i))||typeof t.toolchain.version!="string"||!/^[A-Za-z0-9][A-Za-z0-9.+_-]{0,127}$/.test(t.toolchain.version)||t.toolchain.contractVersion!==di)&&je("/packageManifest/toolchain");let n=[{kind:"config",digest:t.configDigest,mediaType:"application/json"},{kind:"contracts",digest:t.contractDigest,mediaType:"application/json"}];return Q(t.artifacts)!==Q(n)&&je("/packageManifest/artifacts"),t}function Rl(e,t){return Ws({schemaVersion:hi,appCode:e,version:`development-${t.configDigest}`,configDigest:t.configDigest,contractDigest:t.contractDigest,source:{...t.source},toolchain:{version:t.toolchainVersion,contractVersion:di},artifacts:[{kind:"config",digest:t.configDigest,mediaType:"application/json"},{kind:"contracts",digest:t.contractDigest,mediaType:"application/json"}]})}function Cl(e,t){return(!Number.isSafeInteger(t)||t<1)&&je("/expectedHeadRevision"),`development:${Z({manifest:e,expectedHeadRevision:t})}`}function hl(e,t,o){(!e||typeof e!="object"||Array.isArray(e))&&je("/result");let n=e,i=["schemaVersion","appCode","environmentKey","environmentId","appVersionId","configurationRunId","headRevision","configDigest","contractDigest","reused","runtimeArtifactsDeployed","backendEventsAvailable"],r=/^[a-f0-9]{8}-[a-f0-9]{4}-[1-5][a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$/i;return(Object.keys(n).some(c=>!i.includes(c))||n.schemaVersion!==js||n.appCode!==t||n.environmentKey!=="preproduction"||n.configDigest!==o.configDigest||n.contractDigest!==o.contractDigest||!r.test(n.environmentId)||!r.test(n.appVersionId)||!r.test(n.configurationRunId)||typeof n.reused!="boolean"||!Number.isSafeInteger(n.headRevision)||n.headRevision<1||!n.reused&&n.headRevision!==o.expectedHeadRevision+1||n.runtimeArtifactsDeployed!==!1||n.backendEventsAvailable!==!1)&&je("/result"),n}var wl="application.development-backend-events",Sl="openxiangda.development-backend/v1",Dl="application.development-backend-invocations",Us="openxiangda.development-backend-invocation/v1",bp=262144,Op=1048576,Np=131072,Tp=131072,Rp=8,Cp=45,kl=/^\/__platform\/events\/[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/;function $l(e){return(e.backend?.operations?.length||0)>0||(e.workflows?.providers?.length||0)>0||(e.events?.subscriptions||[]).some(t=>t.execution?.kind!=="native-data")}function vl(e){return`connected-development:${e}`}function Ms(e){if(typeof e!="string"||e.length%4!==0||!/^[A-Za-z0-9+/]*={0,2}$/.test(e))return null;let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=e.endsWith("==")?2:e.endsWith("=")?1:0;return o&&t.indexOf(e[e.length-o-1])%(o===2?16:4)!==0?null:e.length/4*3-o}function Bs(e,t,o){if(!["GET","POST","PUT","PATCH","DELETE","HEAD","OPTIONS"].includes(e)||o.method!==e||typeof t!="string"||t.length>2048||!t.startsWith("/")||t.startsWith("//")||t.startsWith("/__platform")||/[\\?#\s\u0000-\u001f\u007f]/.test(t))return!1;let n=t.split("/"),i=String(o.path||"").split("/");return n.length!==i.length?!1:n.every((r,c)=>{if(c===0)return i[c]==="";let s;try{s=decodeURIComponent(r)}catch{return!1}return!s||[".",".."].includes(s)||/[\/\\\s\u0000-\u001f\u007f]/.test(s)?!1:/^:[A-Za-z][A-Za-z0-9_]*$/.test(i[c]||"")||r===i[c]})}var Pl=/^(?:authorization|content-type|content-length|accept|if-match|idempotency-key|x-request-id|x-openxiangda-(?:gateway-assertion|forwarded-by|perspective|csrf-token|mcp-bus-token))$/i,Vl=/^(?:content-type|content-disposition|cache-control|etag|last-modified|retry-after)$/i;function Ks(e,t=!1){if(!e||typeof e!="object"||Array.isArray(e))return!1;let o=Object.entries(e),n=o.map(([i])=>i.toLowerCase());return o.length<=24&&new Set(n).size===n.length&&o.every(([i,r])=>(t?Vl:Pl).test(i)&&typeof r=="string"&&r.length<=8192&&!/[\r\n\u0000]/.test(r))}function Ll(e){let t=Ms(e.body);return e.schemaVersion===Us&&!!e.operation&&typeof e.operation.code=="string"&&e.operation.code.length<=128&&e.operation.code.length>0&&Bs(e.method,e.endpointPath,e.operation)&&typeof e.canonicalQuery=="string"&&e.canonicalQuery.length<=8192&&!/[\s#\u0000-\u001f\u007f]/.test(e.canonicalQuery)&&t!==null&&t<=262144&&Ks(e.headers)&&Object.entries(e.headers).some(([o,n])=>o.toLowerCase()==="authorization"&&/^Bearer \S+$/.test(n))&&Object.entries(e.headers).some(([o,n])=>o.toLowerCase()==="x-openxiangda-gateway-assertion"&&!!n)}var Fl="919a7b93abe5228f92395be1312d7519e916231295267c0763ec64431e87f833";0&&(module.exports={AuthenticatedPublicReadContractError,DATA_AUDIT_METADATA_FIELDS,DATA_BUSINESS_COMMAND_INTENT_MAX_BYTES,DATA_BUSINESS_COMMAND_RESOLUTION_SCHEMA,DATA_BUSINESS_COMMAND_SCHEMA,DATA_EVENT_TYPES_V2,DATA_FORM_DRAFT_MAX_BYTES,DATA_SUBTABLE_MAX_ROWS,DATA_SUBTABLE_MAX_TOTAL_ROWS,DATA_SYSTEM_SORT_FIELD_CODES,DATA_TRANSACTION_MAX_BYTES,DATA_TRANSACTION_MAX_OPERATIONS,DATA_TRANSACTION_RECORD_SET_MAX_RECORDS,DATE_EVENT_RESERVED_DATA_FIELDS_V2,DEVELOPMENT_BACKEND_CONNECTION_TTL_SECONDS,DEVELOPMENT_BACKEND_ENDPOINT_PATTERN,DEVELOPMENT_BACKEND_FEATURE,DEVELOPMENT_BACKEND_INVOCATION_FEATURE,DEVELOPMENT_BACKEND_INVOCATION_MAX_REQUEST_BYTES,DEVELOPMENT_BACKEND_INVOCATION_MAX_RESPONSE_BYTES,DEVELOPMENT_BACKEND_INVOCATION_SCHEMA,DEVELOPMENT_BACKEND_MAX_INFLIGHT,DEVELOPMENT_BACKEND_MAX_REQUEST_BYTES,DEVELOPMENT_BACKEND_MAX_RESPONSE_BYTES,DEVELOPMENT_BACKEND_SCHEMA,DEVELOPMENT_CONFIGURATION_ENDPOINT,DEVELOPMENT_CONFIGURATION_FEATURE,DEVELOPMENT_CONFIGURATION_MANIFEST_SCHEMA,DEVELOPMENT_CONFIGURATION_SCHEMA,DateEventProjectionV2Error,DevelopmentConfigurationContractError,ManagedConcurrencyContractError,NATIVE_ARTIFACT_CAPACITY_V2,NATIVE_CONFIGURATION_VALIDATOR_DIGEST,NATIVE_CONTRACT_CAPACITY_V2,NATIVE_DATA_POLICY_EXPRESSION_MAX_CLAUSES,NATIVE_DATA_POLICY_EXPRESSION_MAX_DEPTH,NATIVE_DATA_POLICY_EXPRESSION_MAX_GROUP_ITEMS,NATIVE_DATA_POLICY_EXPRESSION_MAX_LEAVES,NATIVE_DATA_POLICY_EXPRESSION_MAX_OCCURRENCES,NATIVE_DATA_QUERY_OPERATORS_V2,NATIVE_ROLE_MEMBERSHIP_BATCH_MAX_BYTES,NATIVE_ROLE_MEMBERSHIP_BATCH_MAX_ITEMS,NATIVE_UNIQUE_KEY_MAX_BYTES,NATIVE_UNIQUE_KEY_NORMALIZERS,NativeConfigurationCompilerError,NativeDataFieldContractV2Error,NativeDataPolicyExpressionV2Error,NativeDecimalLifecycleContractError,NativeEventActionContractError,NativeRoleMembershipBatchInputError,NativeScopeSourceFieldPathV2Error,NativeUniqueKeyContractError,OPENXIANGDA_NATIVE_DATA_FIELD_TYPES_V2,OPENXIANGDA_NATIVE_DATA_SURFACE_KEYS_V2,OPENXIANGDA_NATIVE_DRAFT_STATE_KEYS_V2,OPENXIANGDA_NATIVE_SYSTEM_FIELDS_V2,OPENXIANGDA_NATIVE_SYSTEM_FIELD_MAP_V2,USER_CANDIDATE_MAX_SELECTIONS,USER_CANDIDATE_SCOPE_FIELD_TYPES,UserCandidateContractError,WORKFLOW_APPROVAL_EMPTY_PROVIDERS,WORKFLOW_APPROVED_DELEGATION_MAX_BYTES,WORKFLOW_APPROVED_DELEGATION_MAX_REQUESTS,WORKFLOW_AUTOMATIC_CC_MAX_RECIPIENTS,WORKFLOW_AUTOMATIC_CC_PROVIDERS,WORKFLOW_BUSINESS_STEP_EVENT,WORKFLOW_BUSINESS_STEP_EVENTS,WORKFLOW_BUSINESS_STEP_FACTS_KEY,WORKFLOW_BUSINESS_STEP_MAX_BYTES,WORKFLOW_BUSINESS_STEP_MAX_RECEIPT_BYTES,WORKFLOW_CONFIGURABLE_OPERATIONS,WORKFLOW_CONFIGURABLE_PROVIDERS,WORKFLOW_EVENT_TYPES_V2,WORKFLOW_LAUNCH_PREFLIGHT_PROVIDERS,WORKFLOW_REJECTION_NOTIFICATION_MAX_BYTES,WORKFLOW_REJECTION_NOTIFICATION_SCHEMA,WORKFLOW_ROLE_UNION_MAX_ROLES,WORKFLOW_ROUTING_MAX_BYTES,WORKFLOW_ROUTING_MAX_MATCHED_RULES,WORKFLOW_ROUTING_MAX_RULES,WORKFLOW_TASK_PAGE_DEFINITION_MAX_BYTES,WORKFLOW_TASK_PAGE_MAX_BYTES,WORKFLOW_TASK_PAGE_MAX_FIELDS,WORKFLOW_TASK_SUBTABLE_MAX_ROWS,WORKFLOW_TASK_SUBTABLE_MAX_TOTAL_ROWS,WorkflowTaskPageError,applyWorkflowTaskPageValues,applyWorkflowTaskSubtableRows,assertDevelopmentConfigurationManifest,assertDevelopmentConfigurationResult,assertNativeRoleMembershipBatchInput,assertWorkflowNativeStageGuard,assertWorkflowNativeStagePolicy,assertWorkflowNativeStageSourceGuard,assertWorkflowOwnedSubjectCreate,assertWorkflowOwnedSubjectCreateResources,canonicalDataBusinessIntent,compileNativeApplicationConfiguration,compileNativeEventAction,compileNativeEventCapturePlansV2,compileRequiredPlatformCapabilitiesV3,compileWorkflowBusinessStepHandlers,createDevelopmentConfigurationManifest,dateEventProjectionEnvelopeSchemaV2,dateEventProjectionFieldsV2,developmentBackendBase64Bytes,developmentBackendInvocationHeadersValid,developmentBackendInvocationRequestValid,developmentBackendInvocationRevision,developmentBackendOperationMatches,developmentConfigurationKey,evaluateWorkflowTaskPageExpression,formatWorkflowCompletionDeadline,formatWorkflowExpression,generatedCrudCapabilityOperations,hasDataAuditReadPolicy,isDataAuditMetadataField,isDataSystemSortField,isDataTransactionActorAuthorityGuard,isDataTransactionRecordSetMatchGuard,isNativeDataQueryOperatorV2,isNativeMultiValueFieldV2,isWorkflowRejectionNotificationSnapshot,matchesDataActorAuthorityMembership,materializeNativeDataQueryPathTypesV2,nativeDataPolicyExpressionLeavesV2,nativeDataPolicyExpressionToCnfV2,nativeDataQueryPathPlanV2,nativeFieldAggregatePlanV2,nativeFieldColumnDefinitionV2,nativeFieldDefaultSqlV2,nativeFieldHasDefaultV2,nativeFieldIndexStatementsV2,nativeFieldRequiresCreateInputV2,nativeFieldSequenceGrantStatementsV2,nativeFieldSequenceOwnershipStatementsV2,nativeFieldSequenceStatementsV2,nativeFieldSupportsFilterV2,nativeFieldSupportsOperatorV2,nativeFieldSupportsSearchV2,nativeFieldSupportsSortV2,nativeOperatorsForFieldV2,nativePhysicalFieldV2,nativePhysicalFieldsV2,nativePhysicalObjectNameV2,nativeScopeSourceFieldValueV2,nativeScopeSourceGrantPathSupportedV2,nativeScopeSourceSubjectPathSupportedV2,nativeSubtableConstraintStatementsV2,nativeUniqueKeysContractVersion,nativeUniqueKeysJsonSchema,normalizeWorkflowOwnedSubjectCreate,parseDataBusinessCommandResolution,parseDataFieldUserCandidates,parseDecimalReservationLifecycle,parseNativeDataFieldsV2,parseNativeDataResourceInvariantsV2,parseNativeUniqueKeys,projectDataResourceView,projectNativeDataResourceViewV2,projectWorkflowGraph,projectWorkflowNodePolicy,quoteNativeIdentifierV2,refreshWorkflowTaskPageFacts,requiresDateTimeMinutePrecision,requiresDevelopmentBackendCredential,requiresExtendedArtifactCapacity,requiresExtendedDeclarationCapacity,requiresExtendedOwnedSubtableCapacity,requiresOwnedSubtableMinimumRows,requiresUserCandidateLaunchScope,requiresWorkflowRoleUnion,resolveNativeScopeSourceFieldPathV2,resolveWorkflowUserCandidates,selectWorkflowAssignmentRoutingRules,serializedDataBytes,userCandidateScopeValue,validateAuthenticatedPublicRead,validateDecimalReservationLifecycles,validateManagedConcurrency,validateNativeDataDraftStateV2,validateNativeDataResourceReferencesV2,validateNativeDataResourceSurfaceV2,validateUserCandidateReferences,validateWorkflowAdministration,validateWorkflowApprovalEmptyPolicy,validateWorkflowApprovedDelegation,validateWorkflowAssignmentRoutingBindings,validateWorkflowAssignmentRoutingPolicy,validateWorkflowAssignmentRoutingRules,validateWorkflowAutomaticCc,validateWorkflowBusinessStepHandlerContract,validateWorkflowBusinessStepRequest,validateWorkflowBusinessStepResult,validateWorkflowBusinessStepSchema,validateWorkflowBusinessStepSubscriptions,validateWorkflowBusinessSteps,validateWorkflowCommandHandlers,validateWorkflowCompletionDeadlines,validateWorkflowCorrections,validateWorkflowInitiatorApprovalPolicy,validateWorkflowInstanceCommandPolicies,validateWorkflowLaunchPreflight,validateWorkflowNodeConfigurationPatch,validateWorkflowReadability,validateWorkflowRejectionNotification,validateWorkflowRoleUnion,validateWorkflowTaskPages,validateWorkflowUserCandidateBindings,workflowApprovalCanSkip,workflowApprovedDelegationRequests,workflowAssignmentRoutingFacts,workflowAssignmentRoutingPolicySchema,workflowAssignmentRoutingSemantic,workflowBindingAllowsEmptyUsers,workflowBindingRoleCodes,workflowBusinessCommandInvocationSchema,workflowBusinessStepFactSchema,workflowBusinessStepHandlerDigest,workflowBusinessStepInput,workflowBusinessStepPath,workflowBusinessStepReceiptSignatureSuffix,workflowBusinessStepValueMatches,workflowDelegationMutationRequestSchema,workflowExpressionPaths,workflowInitiatorApprovalCanComplete,workflowInstanceCommandDeadlineError,workflowInstanceTerminateCapabilityAllowed,workflowInstanceWithdrawalReasonRequired,workflowNativeStagePolicySchema,workflowNodeAllowedOperations,workflowOperationCommentRequired,workflowOperationReasonRequired,workflowOwnedSubjectCreateSchema,workflowPolicyTimestamp,workflowRoleCodesSchema,workflowTaskPageFieldState,workflowTaskPageReplayCoversInvalidation,workflowTaskSubtableRows});