openxiangda-contracts 2.81.0 → 2.82.0

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.
@@ -1,9 +1,9 @@
1
- "use strict";var uc=Object.create;var xn=Object.defineProperty;var fc=Object.getOwnPropertyDescriptor;var pc=Object.getOwnPropertyNames;var mc=Object.getPrototypeOf,gc=Object.prototype.hasOwnProperty;var _c=(e,t)=>{for(var o in t)xn(e,o,{get:t[o],enumerable:!0})},ls=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of pc(t))!gc.call(e,r)&&r!==o&&xn(e,r,{get:()=>t[r],enumerable:!(n=fc(t,r))||n.enumerable});return e};var Ac=(e,t,o)=>(o=e!=null?uc(mc(e)):{},ls(t||!e||!e.__esModule?xn(o,"default",{value:e,enumerable:!0}):o,e)),Ec=e=>ls(xn({},"__esModule",{value:!0}),e);var $p={};_c($p,{APPLICATION_AGENT_LIMITS_V2:()=>Ur,AuthenticatedPublicReadContractError:()=>Vt,DATA_AUDIT_METADATA_FIELDS:()=>Zt,DATA_BUSINESS_COMMAND_INTENT_MAX_BYTES:()=>Q_,DATA_BUSINESS_COMMAND_RESOLUTION_SCHEMA:()=>jd,DATA_BUSINESS_COMMAND_SCHEMA:()=>Qf,DATA_EVENT_TYPES_V2:()=>Uo,DATA_FORM_DRAFT_MAX_BYTES:()=>Oc,DATA_RESOURCE_MAX_FIELDS:()=>Un,DATA_SUBTABLE_DEFAULT_TOTAL_ROWS:()=>jn,DATA_SUBTABLE_MAX_ROWS:()=>$e,DATA_SUBTABLE_MAX_TOTAL_ROWS:()=>it,DATA_SYSTEM_SORT_FIELD_CODES:()=>Ns,DATA_TRANSACTION_MAX_BYTES:()=>bc,DATA_TRANSACTION_MAX_OPERATIONS:()=>pr,DATA_TRANSACTION_RECORD_SET_MAX_RECORDS:()=>nA,DATE_EVENT_RESERVED_DATA_FIELDS_V2:()=>_u,DEVELOPMENT_BACKEND_CONNECTION_TTL_SECONDS:()=>fA,DEVELOPMENT_BACKEND_ENDPOINT_PATTERN:()=>mp,DEVELOPMENT_BACKEND_FEATURE:()=>up,DEVELOPMENT_BACKEND_INVOCATION_FEATURE:()=>pp,DEVELOPMENT_BACKEND_INVOCATION_MAX_REQUEST_BYTES:()=>aA,DEVELOPMENT_BACKEND_INVOCATION_MAX_RESPONSE_BYTES:()=>dA,DEVELOPMENT_BACKEND_INVOCATION_SCHEMA:()=>Kd,DEVELOPMENT_BACKEND_MAX_INFLIGHT:()=>uA,DEVELOPMENT_BACKEND_MAX_REQUEST_BYTES:()=>lA,DEVELOPMENT_BACKEND_MAX_RESPONSE_BYTES:()=>cA,DEVELOPMENT_BACKEND_SCHEMA:()=>fp,DEVELOPMENT_CONFIGURATION_ENDPOINT:()=>ap,DEVELOPMENT_CONFIGURATION_FEATURE:()=>sp,DEVELOPMENT_CONFIGURATION_MANIFEST_SCHEMA:()=>Xi,DEVELOPMENT_CONFIGURATION_SCHEMA:()=>Md,DateEventProjectionV2Error:()=>bn,DevelopmentConfigurationContractError:()=>Qo,FIELD_VALUE_SCHEMAS:()=>Bs,ManagedConcurrencyContractError:()=>vt,NATIVE_ARTIFACT_CAPACITY_V2:()=>se,NATIVE_CONFIGURATION_VALIDATOR_DIGEST:()=>Lp,NATIVE_CONTRACT_CAPACITY_V2:()=>M,NATIVE_DATA_POLICY_EXPRESSION_MAX_CLAUSES:()=>Vm,NATIVE_DATA_POLICY_EXPRESSION_MAX_DEPTH:()=>Pm,NATIVE_DATA_POLICY_EXPRESSION_MAX_GROUP_ITEMS:()=>Lm,NATIVE_DATA_POLICY_EXPRESSION_MAX_LEAVES:()=>$m,NATIVE_DATA_POLICY_EXPRESSION_MAX_OCCURRENCES:()=>Fm,NATIVE_DATA_QUERY_OPERATORS_V2:()=>Ts,NATIVE_HIGH_DENSITY_ARTIFACT_CAPACITY_V2:()=>It,NATIVE_ROLE_MEMBERSHIP_BATCH_MAX_BYTES:()=>G_,NATIVE_ROLE_MEMBERSHIP_BATCH_MAX_ITEMS:()=>q_,NATIVE_UNIQUE_KEY_MAX_BYTES:()=>qm,NATIVE_UNIQUE_KEY_NORMALIZERS:()=>oi,NativeApplicationAgentContractError:()=>Eo,NativeConfigurationCompilerError:()=>Mo,NativeDataFieldContractV2Error:()=>_e,NativeDataPolicyExpressionV2Error:()=>$t,NativeDecimalLifecycleContractError:()=>dt,NativeEventActionContractError:()=>To,NativeParentReadPolicyError:()=>fe,NativeRoleMembershipBatchInputError:()=>Yo,NativeScopeSourceFieldPathV2Error:()=>ao,NativeUniqueKeyContractError:()=>Ft,OPENXIANGDA_NATIVE_DATA_FIELD_TYPES_V2:()=>Os,OPENXIANGDA_NATIVE_DATA_SURFACE_KEYS_V2:()=>Me,OPENXIANGDA_NATIVE_DRAFT_STATE_KEYS_V2:()=>Qn,OPENXIANGDA_NATIVE_SYSTEM_FIELDS_V2:()=>Hn,OPENXIANGDA_NATIVE_SYSTEM_FIELD_MAP_V2:()=>at,RICH_TEXT_POLICY_V2:()=>yp,USER_CANDIDATE_MAX_SELECTIONS:()=>Wp,USER_CANDIDATE_SCOPE_FIELD_TYPES:()=>ps,UserCandidateContractError:()=>He,WORKFLOW_APPROVAL_EMPTY_PROVIDERS:()=>Ai,WORKFLOW_APPROVED_DELEGATION_MAX_BYTES:()=>Eg,WORKFLOW_APPROVED_DELEGATION_MAX_REQUESTS:()=>Ag,WORKFLOW_AUTOMATIC_CC_DEFAULT_RECIPIENTS:()=>Na,WORKFLOW_AUTOMATIC_CC_MAX_RECIPIENTS:()=>Ra,WORKFLOW_AUTOMATIC_CC_PROVIDERS:()=>wa,WORKFLOW_BUSINESS_STEP_EVENT:()=>yo,WORKFLOW_BUSINESS_STEP_EVENTS:()=>xl,WORKFLOW_BUSINESS_STEP_FACTS_KEY:()=>Wl,WORKFLOW_BUSINESS_STEP_MAX_BYTES:()=>bo,WORKFLOW_BUSINESS_STEP_MAX_RECEIPT_BYTES:()=>ea,WORKFLOW_CONFIGURABLE_OPERATIONS:()=>qe,WORKFLOW_CONFIGURABLE_PROVIDERS:()=>Do,WORKFLOW_EVENT_TYPES_V2:()=>Mt,WORKFLOW_LAUNCH_MAX_INPUTS:()=>fr,WORKFLOW_LAUNCH_PREFLIGHT_PROVIDERS:()=>Pa,WORKFLOW_PARALLEL_MAX_BRANCHES:()=>ca,WORKFLOW_PARALLEL_MIN_BRANCHES:()=>da,WORKFLOW_PLATFORM_NOTIFY_CAPABILITY:()=>Vl,WORKFLOW_PLATFORM_NOTIFY_HANDLER:()=>Hs,WORKFLOW_PLATFORM_NOTIFY_INPUT_SCHEMA:()=>Ys,WORKFLOW_PLATFORM_NOTIFY_OUTPUT_SCHEMA:()=>Xs,WORKFLOW_REJECTION_NOTIFICATION_MAX_BYTES:()=>fg,WORKFLOW_REJECTION_NOTIFICATION_SCHEMA:()=>ka,WORKFLOW_ROLE_UNION_MAX_ROLES:()=>og,WORKFLOW_ROUTING_MAX_BYTES:()=>Tg,WORKFLOW_ROUTING_MAX_MATCHED_RULES:()=>wg,WORKFLOW_ROUTING_MAX_RULES:()=>Rg,WORKFLOW_SOURCE_BUNDLE_MAX_BYTES:()=>rc,WORKFLOW_SOURCE_BUNDLE_SCHEMA:()=>oc,WORKFLOW_STEP_DATA_COMMAND_SCHEMA:()=>Gf,WORKFLOW_STEP_DATA_RESOLUTION_SCHEMA:()=>Dd,WORKFLOW_TASK_PAGE_DEFINITION_MAX_BYTES:()=>xa,WORKFLOW_TASK_PAGE_MAX_BYTES:()=>Lo,WORKFLOW_TASK_PAGE_MAX_FIELDS:()=>Fa,WORKFLOW_TASK_SUBTABLE_MAX_ROWS:()=>Si,WORKFLOW_TASK_SUBTABLE_MAX_TOTAL_ROWS:()=>Ti,WorkflowTaskPageError:()=>ve,applyWorkflowTaskPageValues:()=>Ua,applyWorkflowTaskSubtableRows:()=>Iu,assertApplicationAgentInstructionPathV2:()=>zs,assertDevelopmentConfigurationManifest:()=>Bd,assertDevelopmentConfigurationResult:()=>lp,assertNativeRoleMembershipBatchInput:()=>Jf,assertWorkflowNativeStageGuard:()=>Hl,assertWorkflowNativeStagePolicy:()=>ei,assertWorkflowNativeStageSourceGuard:()=>Yl,assertWorkflowOwnedSubjectCreate:()=>Sn,assertWorkflowOwnedSubjectCreateResources:()=>$i,buildResourceWhere:()=>nc,canonicalDataBusinessIntent:()=>ep,classifyWorkflowAdoption:()=>Op,classifyWorkflowSourceDeployment:()=>Tp,compileAdvancedWhere:()=>Fn,compileApplicationAgentsV2:()=>Mr,compileNativeApplicationConfiguration:()=>Qu,compileNativeEventAction:()=>si,compileNativeEventCapturePlansV2:()=>Ad,compileRequiredPlatformCapabilitiesV3:()=>_d,compileWorkflowBusinessStepHandlers:()=>Oo,createDevelopmentConfigurationManifest:()=>dp,createWorkflowHumanNode:()=>Hd,dataOwnedRowLimit:()=>Yt,dateEventProjectionEnvelopeSchemaV2:()=>Au,dateEventProjectionFieldsV2:()=>wi,departmentReferenceValueSchema:()=>po,developmentBackendBase64Bytes:()=>qd,developmentBackendInvocationHeadersValid:()=>zd,developmentBackendInvocationRequestValid:()=>Ip,developmentBackendInvocationRevision:()=>_p,developmentBackendOperationMatches:()=>Gd,developmentConfigurationKey:()=>cp,editWorkflowDesignerDefinition:()=>Xd,evaluateWorkflowExpression:()=>Sp,evaluateWorkflowTaskPageExpression:()=>Ge,fieldValueSchemaForDefinition:()=>nn,formatWorkflowCompletionDeadline:()=>du,formatWorkflowExpression:()=>An,formatWorkflowSupervisorChain:()=>Kl,generatedCrudCapabilityOperations:()=>Fi,hasDataAuditReadPolicy:()=>Ir,hasNativeParentReadPolicy:()=>No,inspectWorkflowParallel:()=>ke,isDataAuditMetadataField:()=>Ye,isDataOwnedRowLimit:()=>Tt,isDataSystemSortField:()=>Qt,isDataTransactionActorAuthorityGuard:()=>np,isDataTransactionRecordSetMatchGuard:()=>ip,isNativeDataQueryOperatorV2:()=>Lc,isNativeMultiValueFieldV2:()=>Xt,isWorkflowPlatformNotify:()=>te,isWorkflowRejectionNotificationSnapshot:()=>cu,matchesDataActorAuthorityMembership:()=>op,materializeNativeDataQueryPathTypesV2:()=>Tl,nativeAgentFieldHintSchemaV2:()=>jr,nativeAgentFieldSelectorV2:()=>Js,nativeDataPolicyExpressionLeavesV2:()=>ft,nativeDataPolicyExpressionToCnfV2:()=>Xr,nativeDataQueryPathPlanV2:()=>Cl,nativeFieldAggregatePlanV2:()=>Mc,nativeFieldColumnDefinitionV2:()=>ol,nativeFieldDefaultSqlV2:()=>rl,nativeFieldHasDefaultV2:()=>sl,nativeFieldIndexStatementsV2:()=>ll,nativeFieldRequiresCreateInputV2:()=>Ue,nativeFieldSequenceGrantStatementsV2:()=>cl,nativeFieldSequenceOwnershipStatementsV2:()=>dl,nativeFieldSequenceStatementsV2:()=>al,nativeFieldSupportsFilterV2:()=>Nr,nativeFieldSupportsOperatorV2:()=>Wc,nativeFieldSupportsSearchV2:()=>Xn,nativeFieldSupportsSortV2:()=>Dt,nativeOperatorsForFieldV2:()=>hr,nativePhysicalFieldV2:()=>Fs,nativePhysicalFieldsV2:()=>nl,nativePhysicalObjectNameV2:()=>Ke,nativeScopeSourceFieldValueV2:()=>Al,nativeScopeSourceGrantPathSupportedV2:()=>$r,nativeScopeSourceSubjectPathSupportedV2:()=>co,nativeSubtableConstraintStatementsV2:()=>ul,nativeUniqueKeysContractVersion:()=>ii,nativeUniqueKeysJsonSchema:()=>Zl,normalizeDataMutationGrants:()=>ho,normalizeWorkflowOwnedSubjectCreate:()=>Su,parseDataBusinessCommandResolution:()=>tp,parseDataFieldUserCandidates:()=>Ht,parseDecimalReservationLifecycle:()=>ro,parseNativeDataFieldsV2:()=>Ct,parseNativeDataResourceInvariantsV2:()=>Er,parseNativeParentReadPolicy:()=>fa,parseNativeUniqueKeys:()=>ri,parseWorkflowStepDataResolution:()=>zf,projectDataResourceView:()=>mo,projectNativeDataResourceViewV2:()=>to,projectWorkflowGraph:()=>En,projectWorkflowNodePolicy:()=>_i,pruneWorkflowCanvasBindings:()=>bp,quoteNativeIdentifierV2:()=>ue,refreshWorkflowTaskPageFacts:()=>yu,requiresAggregateOwnedSubtableCapacity:()=>Bn,requiresDateTimeMinutePrecision:()=>zn,requiresDevelopmentBackendCredential:()=>gp,requiresExtendedArtifactCapacity:()=>Dn,requiresExtendedConfigurationBytes:()=>xo,requiresExtendedDeclarationCapacity:()=>Fo,requiresExtendedFieldCapacity:()=>Mn,requiresExtendedOwnedSubtableCapacity:()=>Kn,requiresExtendedRoleCapacity:()=>Vo,requiresHighDensityArtifactCapacity:()=>kn,requiresOwnedSubtableMinimumRows:()=>Jn,requiresUserCandidateLaunchScope:()=>Wn,requiresWorkflowRoleInputSelection:()=>gi,requiresWorkflowRoleUnion:()=>pi,resolveNativeParentReadBinding:()=>gn,resolveNativeScopeSourceFieldPathV2:()=>Pt,resolveWorkflowCommandHandler:()=>uu,resolveWorkflowUserCandidates:()=>_s,resourceReferenceValueSchema:()=>Fr,selectWorkflowAssignmentRoutingRules:()=>Tu,serializedDataBytes:()=>hc,userCandidateScopeValue:()=>yc,userReferenceValueSchema:()=>uo,validateAuthenticatedPublicRead:()=>ti,validateDecimalReservationLifecycles:()=>Pr,validateManagedConcurrency:()=>Sr,validateNativeDataDraftStateV2:()=>wr,validateNativeDataResourceReferencesV2:()=>Ar,validateNativeDataResourceSurfaceV2:()=>eo,validateNativeParentReadPolicies:()=>Zr,validateUserCandidateReferences:()=>lr,validateWorkflowAdministration:()=>ko,validateWorkflowApprovalEmptyPolicy:()=>vo,validateWorkflowApprovedDelegation:()=>Ni,validateWorkflowAssignmentRoutingBindings:()=>Pi,validateWorkflowAssignmentRoutingPolicy:()=>Cn,validateWorkflowAssignmentRoutingRules:()=>Ru,validateWorkflowAuthoringSteps:()=>sa,validateWorkflowAutomaticCc:()=>So,validateWorkflowBusinessStepHandlerContract:()=>Ul,validateWorkflowBusinessStepRequest:()=>jl,validateWorkflowBusinessStepResult:()=>oa,validateWorkflowBusinessStepSchema:()=>lt,validateWorkflowBusinessStepSubscriptions:()=>zr,validateWorkflowBusinessSteps:()=>sn,validateWorkflowCanvasBinding:()=>ts,validateWorkflowCanvasHuman:()=>es,validateWorkflowCommandHandlers:()=>Oi,validateWorkflowCompletionDeadlines:()=>Ii,validateWorkflowCorrections:()=>Ri,validateWorkflowDesignerCapabilities:()=>ns,validateWorkflowDesignerDocument:()=>nr,validateWorkflowHandlingNodes:()=>pn,validateWorkflowInitiatorApprovalPolicy:()=>Wt,validateWorkflowInstanceCommandPolicies:()=>di,validateWorkflowLaunchPreflight:()=>Po,validateWorkflowNodeConfigurationPatch:()=>su,validateWorkflowParallel:()=>fn,validateWorkflowPlatformNotify:()=>on,validateWorkflowReadability:()=>li,validateWorkflowRejectionNotification:()=>bi,validateWorkflowReminders:()=>cn,validateWorkflowReturnEligibility:()=>Zi,validateWorkflowReturnPolicies:()=>ln,validateWorkflowRoleInputSelection:()=>mi,validateWorkflowRoleUnion:()=>In,validateWorkflowSourceBundle:()=>sc,validateWorkflowSupervisorChainBinding:()=>an,validateWorkflowSupervisorChains:()=>dn,validateWorkflowTaskPages:()=>Rn,validateWorkflowUserCandidateBindings:()=>ur,workflowApprovalCanSkip:()=>au,workflowApprovedDelegationRequests:()=>mu,workflowAssignmentRoutingFacts:()=>wu,workflowAssignmentRoutingPolicySchema:()=>vi,workflowAssignmentRoutingSemantic:()=>qa,workflowAuthoringCatalog:()=>$n,workflowBindingAllowsEmptyUsers:()=>Ei,workflowBindingRoleCodes:()=>fi,workflowBindingSchema:()=>lc,workflowBusinessCommandInvocationSchema:()=>lu,workflowBusinessStepFactSchema:()=>ut,workflowBusinessStepHandlerDigest:()=>Zf,workflowBusinessStepInput:()=>Ml,workflowBusinessStepPath:()=>ra,workflowBusinessStepReceiptSignatureSuffix:()=>Xf,workflowBusinessStepValueMatches:()=>rn,workflowCanvasBindingKey:()=>Jt,workflowDefinitionSchema:()=>cc,workflowDelegationMutationRequestSchema:()=>Wd,workflowDesignerTargets:()=>Vn,workflowDesignerVariables:()=>hp,workflowExpressionPaths:()=>xt,workflowForwardTargets:()=>un,workflowHumanOperations:()=>Qi,workflowInitiatorApprovalCanComplete:()=>ou,workflowInstanceCommandDeadlineError:()=>tu,workflowInstanceTerminateCapabilityAllowed:()=>Ql,workflowInstanceWithdrawalReasonRequired:()=>eu,workflowNativeStagePolicySchema:()=>Xl,workflowNodeAllowedOperations:()=>gt,workflowNotificationBinding:()=>Fl,workflowOperationCommentRequired:()=>Ta,workflowOperationMinimumOpinion:()=>_t,workflowOperationOpinion:()=>et,workflowOperationReasonRequired:()=>Ca,workflowOwnedSubjectCreateSchema:()=>Cu,workflowPolicyTimestamp:()=>ai,workflowPositionActive:()=>zl,workflowProducedEventTypes:()=>Wo,workflowReturnEligibility:()=>Jd,workflowReturnTargetPolicy:()=>ql,workflowReturnTargets:()=>De,workflowRoleCodesSchema:()=>ui,workflowSourceDigestEqual:()=>je,workflowSourceImportDrift:()=>Cp,workflowSourceReferences:()=>ic,workflowSourceStatus:()=>wp,workflowTaskPageFieldState:()=>Di,workflowTaskPageReplayCoversInvalidation:()=>bu,workflowTaskSaveEnabled:()=>iu,workflowTaskSubtableRows:()=>Eu,workflowVariableLabel:()=>Oa});module.exports=Ec($p);var us=require("node:crypto");function Ic(e){if(!e||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function ar(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,r)=>ar(n,`${t}[${r}]`)).join(",")}]`;if(Ic(e))return`{${Object.keys(e).filter(r=>e[r]!==void 0).sort((r,i)=>r===i?0:r<i?-1:1).map(r=>`${JSON.stringify(r)}:${ar(e[r],`${t}.${r}`)}`).join(",")}}`;let o=e instanceof Date?"Date":e?.constructor?.name||typeof e;throw new TypeError(`Value is not JSON serializable: ${t} (${o})`)}function oe(e){return ar(e,"$")}function ee(e){return(0,us.createHash)("sha256").update(oe(e)).digest("hex")}var Wp=200,ps=["text.short","uuid","option.single","resource-ref.single"],dr=/^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$/,ms=/^[A-Za-z][A-Za-z0-9_]{0,62}$/,gs=new Set(["__proto__","prototype","constructor"]),cr=e=>!!e&&typeof e=="object"&&!Array.isArray(e)&&[Object.prototype,null].includes(Object.getPrototypeOf(e)),fs=(e,t)=>Object.keys(e).every(o=>t.includes(o)),wt=(e,t)=>typeof e=="string"&&e.length>0&&e.trim()===e&&e.length<=t,He=class extends Error{constructor(o,n){super(`${o}: ${n}`);this.code=o;this.pointer=n}code;pointer};function ie(e,t){throw new He(e,t)}function Ht(e,t,o){if(e===void 0)return;["user.single","user.multiple"].includes(t)||ie("DATA_USER_CANDIDATES_FIELD_TYPE_INVALID",o),(!cr(e)||!fs(e,["kind","roleCode","scope","pageSize"])||e.kind!=="app-role"||!wt(e.roleCode,128)||!dr.test(String(e.roleCode)))&&ie("DATA_USER_CANDIDATES_SOURCE_INVALID",o),e.pageSize!==void 0&&(!Number.isSafeInteger(e.pageSize)||Number(e.pageSize)<1||Number(e.pageSize)>50)&&ie("DATA_USER_CANDIDATES_PAGE_SIZE_INVALID",`${o}/pageSize`);let n;if(e.scope!==void 0){let r=e.scope;(!cr(r)||!fs(r,["dimensionCode","operation","field","value","creation"])||!wt(r.dimensionCode,128)||!dr.test(String(r.dimensionCode))||!wt(r.operation,64)||!dr.test(String(r.operation))||Object.hasOwn(r,"field")===Object.hasOwn(r,"value"))&&ie("DATA_USER_CANDIDATES_SCOPE_INVALID",`${o}/scope`),r.creation!==void 0&&(r.creation!=="prospective"||!Object.hasOwn(r,"field"))&&ie("DATA_USER_CANDIDATES_SCOPE_INVALID",`${o}/scope/creation`),Object.hasOwn(r,"field")?((!wt(r.field,63)||!ms.test(String(r.field))||gs.has(String(r.field)))&&ie("DATA_USER_CANDIDATES_SCOPE_FIELD_INVALID",`${o}/scope/field`),n={dimensionCode:String(r.dimensionCode),operation:String(r.operation),field:String(r.field),...r.creation==="prospective"?{creation:"prospective"}:{}}):(wt(r.value,255)||ie("DATA_USER_CANDIDATES_SCOPE_VALUE_INVALID",`${o}/scope/value`),n={dimensionCode:String(r.dimensionCode),operation:String(r.operation),value:String(r.value)})}return{kind:"app-role",roleCode:String(e.roleCode),...n?{scope:n}:{},...e.pageSize===void 0?{}:{pageSize:Number(e.pageSize)}}}function Wn(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(r=>r.code===n.field)?.type==="resource-ref.single")}))}function lr(e,t,o,n){for(let[r,i]of e.entries()){let a=`${n}/${r}/userCandidates`,s=Ht(i.userCandidates,i.type,a);if(s&&(t.has(s.roleCode)||ie("DATA_USER_CANDIDATES_ROLE_UNDECLARED",`${a}/roleCode`),s.scope&&!o.has(s.scope.dimensionCode)&&ie("DATA_USER_CANDIDATES_DIMENSION_UNDECLARED",`${a}/scope/dimensionCode`),s.scope?.field)){let d=e.find(c=>c.code===s.scope.field);(!d||!ps.some(c=>c===d.type))&&ie("DATA_USER_CANDIDATES_SCOPE_FIELD_INVALID",`${a}/scope/field`)}}}function _s(e,t,o,n){let r=e.subject.factProjection,i=typeof t.inputPath=="string"&&Object.entries(r).some(([c,l])=>(t.inputPath===c||t.inputPath.startsWith(`${c}.`))&&o.get(l)?.userCandidates!==void 0);if(t.candidateField===void 0&&!i)return;(t.provider!=="form_field_users"||!t.candidateField||!ms.test(t.candidateField)||gs.has(t.candidateField)||!t.inputPath||r[t.inputPath]!==t.candidateField)&&ie("WORKFLOW_USER_CANDIDATES_FIELD_BINDING_REQUIRED",n),(t.roleCode!==void 0||t.scope!==void 0||t.routing!==void 0)&&ie("WORKFLOW_USER_CANDIDATES_SOURCE_OVERRIDE_FORBIDDEN",n);let a=o.get(t.candidateField),s=a&&Ht(a.userCandidates,a.type,`${n}/candidateField`);s||ie("WORKFLOW_USER_CANDIDATES_FIELD_UNDECLARED",`${n}/candidateField`);let d;if(s.scope?.field){let c=Object.entries(r).filter(([,l])=>l===s.scope.field).map(([l])=>l);c.length!==1&&ie("WORKFLOW_USER_CANDIDATES_SCOPE_PROJECTION_REQUIRED",n),d=c[0]}return{fieldCode:a.code,inputPath:t.inputPath,source:s,...d?{scopeInputPath:d}:{}}}function ur(e,t,o,n,r=new Map){for(let[i,a]of Object.entries(t.bindings))_s(e,a,o,`${n}/${i}`);for(let[i,a]of Object.entries(e.taskPages||{})){let s=new Set(a.fields.filter(d=>d.readonly!==!0).map(d=>d.code));for(let d of a.fields){let c=o.get(d.code)?.userCandidates?.scope;if(s.has(d.code)&&c?.field&&s.has(c.field)&&ie("WORKFLOW_USER_CANDIDATES_SCOPE_WRITE_FORBIDDEN",`${n}/taskPages/${i}/${d.code}`),!s.has(d.code)||!d.subtable)continue;let l=o.get(d.code)?.subtable?.resourceCode,f=l?r.get(l):void 0;d.subtable.fields.some(p=>p.readonly!==!0&&f?.get(p.code)?.userCandidates)&&ie("WORKFLOW_USER_CANDIDATES_OWNED_FIELD_UNSUPPORTED",`${n}/taskPages/${i}/${d.code}`)}}}function yc(e,t){if(!e.scope)return;let o=e.scope.field?t[e.scope.field]:e.scope.value,n=cr(o)?o.value:o;return wt(n,255)||ie("DATA_USER_CANDIDATES_SCOPE_VALUE_REQUIRED",e.scope.field||"scope"),String(n)}var Un=200,fr=205;function Mn(e,t=[]){return e.some(o=>o.schema.fields.length>100)||t.some(o=>Object.values(o.definition.taskPages||{}).some(n=>(n.fields?.length??0)>64)||[o.launch?.submission?.create,o.launch?.submission?.existing].some(n=>Object.keys(n?.inputs||{}).length>64))}var $e=500,jn=500,it=1e3,pr=2*it+16,bc=2*1024*1024,Oc=2*1024*1024;function Tt(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>=1&&e<=it}function Yt(e){if(e.ownedRowLimit===void 0)return jn;if(!Tt(e.ownedRowLimit))throw new Error("NATIVE_DATA_OWNED_ROW_LIMIT_INVALID");return e.ownedRowLimit}function Bn(e){return e.some(t=>(t.schema.ownedRowLimit??jn)>jn)}function Kn(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,r)=>n+r,0)>400})}function hc(e){try{return new TextEncoder().encode(JSON.stringify(e)).byteLength}catch{return 1/0}}var bs=/^[A-Za-z][A-Za-z0-9_]{0,62}$/,_r=/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/,Os=["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 zn(e){return e.some(t=>t.schema.fields.some(o=>(o.type==="datetime"||o.type==="datetime-range")&&o.timePrecision==="minute"))}function Jn(e){return e.some(t=>t.schema.fields.some(o=>o.type==="subtable"&&(o.subtable?.minRows??0)>0))}var Nc=new Set(Os),hs=new Set(["option.multiple","cascade.multiple","user.multiple","department.multiple","resource-ref.multiple","file","image","subtable"]),As=new Set(["option.single","option.multiple","cascade.single","cascade.multiple"]),Es=new Set(["resource-ref.single","resource-ref.multiple"]),Hn=[{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}],at=new Map(Hn.map(e=>[e.code,e])),_e=class extends Error{constructor(o,n){super(o);this.code=o;this.pointer=n;this.name="NativeDataFieldContractV2Error"}code;pointer};function Xt(e){return hs.has(e)}function Ue(e,t={}){return e.type!=="serial-number"&&t.system!==!0&&e.nullable===!1&&(!Xt(e.type)||t.requiredHint===!0)}function Ct(e,t,o=500){Array.isArray(e)||v("NATIVE_ARRAY_REQUIRED",t),e.length===0&&v("NATIVE_DATA_FIELDS_REQUIRED",t),e.length>o&&v("NATIVE_ARRAY_LIMIT_EXCEEDED",t);let n=new Set;return e.map((r,i)=>{let a=`${t}/${i}`,s=Ne(r,a);Te(s,["code","type","nullable","indexed","options","source","userCandidates","maxLength","precision","scale","exactDecimal","min","max","rangeBoundary","timePrecision","file","serial","subtable"],a);let d=Ce(s.code,`${a}/code`,63);bs.test(d)||v("NATIVE_FIELD_CODE_INVALID",`${a}/code`),n.has(d)&&v("NATIVE_DATA_FIELD_DUPLICATE",`${a}/code`),n.add(d);let c=Ce(s.type,`${a}/type`,32);Nc.has(c)||v("NATIVE_DATA_FIELD_TYPE_INVALID",`${a}/type`);let l=c,f=gr(s.nullable,`${a}/nullable`),p=gr(s.indexed,`${a}/indexed`);f===!0&&hs.has(l)&&v("NATIVE_DATA_MULTI_FIELD_NULLABLE_INVALID",`${a}/nullable`);let m=Tc(s.options,l,a),E=Cc(s.source,l,a),A=Ht(s.userCandidates,l,`${a}/userCandidates`),O=Sc(s,l,a),y=gr(s.exactDecimal,`${a}/exactDecimal`);y!==void 0&&l!=="number.decimal"&&v("NATIVE_DATA_FIELD_EXACT_DECIMAL_TYPE_INVALID",`${a}/exactDecimal`);let _=Rc(s.rangeBoundary,l,a),b=Dc(s.file,l,a),h=kc(s.serial,l,a),u=vc(s.subtable,l,a);return{code:d,type:l,...f===void 0?{}:{nullable:f},...p===void 0?{}:{indexed:p},...m?{options:m}:{},...E?{source:E}:{},...A?{userCandidates:A}:{},...O,...y===void 0?{}:{exactDecimal:y},..._?{rangeBoundary:_}:{},...b?{file:b}:{},...h?{serial:h}:{},...u?{subtable:u}:{}}})}function Rc(e,t,o){let n=`${o}/rangeBoundary`;if(!(t==="date-range"||t==="datetime-range")){e!==void 0&&v("NATIVE_DATA_FIELD_RANGE_BOUNDARY_TYPE_INVALID",n);return}return e!=="closed"&&e!=="half-open"&&v("NATIVE_DATA_FIELD_RANGE_BOUNDARY_REQUIRED",n),e}function Ar(e,t){Array.isArray(e)||v("NATIVE_ARRAY_REQUIRED",t);let o=new Map;e.forEach((n,r)=>{let i=`${t}/${r}`,a=Ne(n,i),s=Ce(a.code,`${i}/code`,64);(!_r.test(s)||o.has(s))&&v("NATIVE_RESOURCE_CODE_INVALID",`${i}/code`);let d=Ne(a.schema,`${i}/schema`);d.ownedRowLimit!==void 0&&!Tt(d.ownedRowLimit)&&v("NATIVE_DATA_OWNED_ROW_LIMIT_INVALID",`${i}/schema/ownedRowLimit`),o.set(s,{pointer:i,ownedRowLimit:Yt(d),fields:Ct(d.fields,`${i}/schema/fields`)})});for(let[n,r]of o){let i=new Map(r.fields.map(s=>[s.code,s]));r.fields.filter(s=>s.type==="subtable").reduce((s,d)=>s+(d.subtable?.maxRows??20),0)>r.ownedRowLimit&&v("NATIVE_DATA_FIELD_SUBTABLE_AGGREGATE_MAX_ROWS_EXCEEDED",`${r.pointer}/schema/fields`),r.fields.forEach((s,d)=>{let c=`${r.pointer}/schema/fields/${d}`;if(s.source&&wc(s.source,i,o,`${c}/source`),s.subtable){let l=o.get(s.subtable.resourceCode);(!l||s.subtable.resourceCode===n)&&v("NATIVE_DATA_FIELD_SUBTABLE_TARGET_MISSING",`${c}/subtable/resourceCode`);let f=l.fields.find(m=>m.code===s.subtable?.foreignKey);(!f||f.type!=="uuid"||f.nullable!==!1)&&v("NATIVE_DATA_FIELD_SUBTABLE_FOREIGN_KEY_INVALID",`${c}/subtable/foreignKey`);let p=l.fields.find(m=>m.code===s.subtable?.orderField);(!p||p.type!=="number.integer"||p.nullable!==!1)&&v("NATIVE_DATA_FIELD_SUBTABLE_ORDER_FIELD_INVALID",`${c}/subtable/orderField`)}})}}function Er(e,t,o){if(e===void 0)return[];(!Array.isArray(e)||e.length>20)&&v("NATIVE_DATA_RESOURCE_INVARIANTS_INVALID",o);let n=new Map(t.map(i=>[i.code,i])),r=new Set;return e.map((i,a)=>{let s=`${o}/${a}`,d=Ne(i,s);Te(d,["code","message","expression"],s);let c=Ce(d.code,`${s}/code`,128);(!/^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/.test(c)||r.has(c))&&v("NATIVE_DATA_RESOURCE_INVARIANT_CODE_INVALID",`${s}/code`),r.add(c);let l=Gn(d.message,`${s}/message`,500);l!==void 0&&l.length===0&&v("NATIVE_DATA_RESOURCE_INVARIANT_MESSAGE_INVALID",`${s}/message`);let f=Ne(d.expression,`${s}/expression`);if(f.kind==="nonBlankTextWhenOption"){Te(f,["kind","optionField","optionValue","textField"],`${s}/expression`);let _=Ve(f.optionField,`${s}/expression/optionField`),b=Ve(f.textField,`${s}/expression/textField`),h=Ce(f.optionValue,`${s}/expression/optionValue`,128),u=n.get(_),I=n.get(b);return(!u||!I)&&v("NATIVE_DATA_RESOURCE_INVARIANT_FIELD_UNKNOWN",`${s}/expression`),(u.type!=="option.single"||!["text.short","text.long"].includes(I.type)||!u.options?.some(R=>R.value===h))&&v("NATIVE_DATA_RESOURCE_INVARIANT_FIELD_TYPES_INVALID",`${s}/expression`),{code:c,...l===void 0?{}:{message:l},expression:{kind:"nonBlankTextWhenOption",optionField:_,optionValue:h,textField:b}}}Te(f,["leftField","operator","rightField"],`${s}/expression`);let p=Ve(f.leftField,`${s}/expression/leftField`),m=Ve(f.rightField,`${s}/expression/rightField`),E=n.get(p),A=n.get(m);(!E||!A)&&v("NATIVE_DATA_RESOURCE_INVARIANT_FIELD_UNKNOWN",`${s}/expression`),E.type===A.type||["number.integer","number.decimal"].includes(E.type)&&["number.integer","number.decimal"].includes(A.type)||v("NATIVE_DATA_RESOURCE_INVARIANT_FIELD_TYPES_INVALID",`${s}/expression`);let y=String(f.operator);return["eq","neq","gt","gte","lt","lte"].includes(y)||v("NATIVE_DATA_RESOURCE_INVARIANT_OPERATOR_INVALID",`${s}/expression/operator`),!["eq","neq"].includes(y)&&!["number.integer","number.decimal","date","time","datetime","text.short","text.long","text.rich","serial-number","uuid"].includes(E.type)&&v("NATIVE_DATA_RESOURCE_INVARIANT_FIELD_TYPES_INVALID",`${s}/expression`),{code:c,...l===void 0?{}:{message:l},expression:{leftField:p,operator:y,rightField:m}}})}function wc(e,t,o,n){let r=o.get(e.resourceCode);r||v("NATIVE_DATA_FIELD_SOURCE_TARGET_MISSING",`${n}/resourceCode`);let i=new Map(r.fields.map(s=>[s.code,s])),a=i.get(e.labelField);(!a||!["text.short","text.long"].includes(a.type))&&v("NATIVE_DATA_FIELD_SOURCE_LABEL_INVALID",`${n}/labelField`);for(let s of["searchFields","descriptionFields","snapshotFields"])for(let d of e[s]||[])i.has(d)||v("NATIVE_DATA_FIELD_SOURCE_FIELD_MISSING",`${n}/${s}`);for(let[s,d]of(e.filterWhere||[]).entries())i.has(d.field)||v("NATIVE_DATA_FIELD_SOURCE_FILTER_FIELD_MISSING",`${n}/filterWhere/${s}/field`);for(let[s,d]of(e.filters||[]).entries())i.has(d.field)||v("NATIVE_DATA_FIELD_SOURCE_FILTER_FIELD_MISSING",`${n}/filters/${s}/field`),"binding"in d&&!t.has(d.binding.field)&&v("NATIVE_DATA_FIELD_SOURCE_BINDING_FIELD_MISSING",`${n}/filters/${s}/binding/field`)}function Tc(e,t,o){let n=`${o}/options`;if(e===void 0){As.has(t)&&v("NATIVE_DATA_FIELD_OPTIONS_REQUIRED",n);return}(!As.has(t)||!Array.isArray(e))&&v("NATIVE_DATA_FIELD_OPTIONS_TYPE_INVALID",n),(e.length<1||e.length>100)&&v("NATIVE_DATA_FIELD_OPTIONS_INVALID",n);let r=0,i=(a,s,d)=>{d>5&&v("NATIVE_DATA_FIELD_OPTIONS_DEPTH_EXCEEDED",s);let c=new Set;return a.map((l,f)=>{r+=1,r>1e3&&v("NATIVE_DATA_FIELD_OPTIONS_COUNT_EXCEEDED",n);let p=`${s}/${f}`,m=Ne(l,p);Te(m,["label","value","description","color","children"],p);let E=Ce(m.label,`${p}/label`,500),A=Ce(m.value,`${p}/value`,500);c.has(A)&&v("NATIVE_DATA_FIELD_OPTION_VALUE_DUPLICATE",`${p}/value`),c.add(A);let O=Gn(m.description,`${p}/description`,2e3),y=Gn(m.color,`${p}/color`,64),_;return m.children!==void 0&&((!t.startsWith("cascade.")||!Array.isArray(m.children))&&v("NATIVE_DATA_FIELD_OPTION_CHILDREN_INVALID",`${p}/children`),(m.children.length<1||m.children.length>100)&&v("NATIVE_DATA_FIELD_OPTION_CHILDREN_INVALID",`${p}/children`),_=i(m.children,`${p}/children`,d+1)),{label:E,value:A,...O===void 0?{}:{description:O},...y===void 0?{}:{color:y},..._?{children:_}:{}}})};return i(e,n,1)}function Cc(e,t,o){let n=`${o}/source`;if(e===void 0){Es.has(t)&&v("NATIVE_DATA_FIELD_SOURCE_REQUIRED",n);return}Es.has(t)||v("NATIVE_DATA_FIELD_SOURCE_TYPE_INVALID",n);let r=Ne(e,n);Te(r,["kind","resourceCode","labelField","searchFields","descriptionFields","snapshotFields","filters","filterWhere","pageSize","loadMode","clearOnBindingChange"],n),r.kind!=="resource"&&v("NATIVE_DATA_FIELD_SOURCE_KIND_INVALID",`${n}/kind`);let i=Ce(r.resourceCode,`${n}/resourceCode`,64);_r.test(i)||v("NATIVE_RESOURCE_CODE_INVALID",`${n}/resourceCode`);let a=Ve(r.labelField,`${n}/labelField`),s=mr(r.searchFields,`${n}/searchFields`,10),d=mr(r.descriptionFields,`${n}/descriptionFields`,10),c=mr(r.snapshotFields,`${n}/snapshotFields`,50),l=st(r.pageSize,`${n}/pageSize`,1,100),f;r.loadMode!==void 0&&(["search","all"].includes(String(r.loadMode))||v("NATIVE_DATA_FIELD_SOURCE_LOAD_MODE_INVALID",`${n}/loadMode`),f=r.loadMode);let p=Is(r.filters,`${n}/filters`),m=Is(r.filterWhere,`${n}/filterWhere`,!1);return r.clearOnBindingChange!==void 0&&typeof r.clearOnBindingChange!="boolean"&&v("NATIVE_DATA_FIELD_SOURCE_BINDING_RESET_INVALID",`${n}/clearOnBindingChange`),{kind:"resource",resourceCode:i,labelField:a,...s?{searchFields:s}:{},...d?{descriptionFields:d}:{},...c?{snapshotFields:c}:{},...p?{filters:p}:{},...m?{filterWhere:m}:{},...l===void 0?{}:{pageSize:l},...f?{loadMode:f}:{},...r.clearOnBindingChange===void 0?{}:{clearOnBindingChange:r.clearOnBindingChange}}}function Is(e,t,o=!0){if(e!==void 0)return(!Array.isArray(e)||e.length>20)&&v("NATIVE_DATA_FIELD_SOURCE_FILTERS_INVALID",t),e.map((n,r)=>{let i=`${t}/${r}`,a=Ne(n,i),s=Object.prototype.hasOwnProperty.call(a,"value"),d=Object.prototype.hasOwnProperty.call(a,"binding");Te(a,s?["field","operator","value"]:["field","operator","binding"],i),(s===d||d&&!o)&&v("NATIVE_DATA_FIELD_SOURCE_FILTER_VALUE_INVALID",i);let c=Ve(a.field,`${i}/field`);["eq","in"].includes(String(a.operator))||v("NATIVE_DATA_FIELD_SOURCE_FILTER_OPERATOR_INVALID",`${i}/operator`);let l=a.operator;if(s)return{field:c,operator:l,value:a.value};let f=Ne(a.binding,`${i}/binding`);return Te(f,["kind","field"],`${i}/binding`),f.kind!=="field"&&v("NATIVE_DATA_FIELD_SOURCE_BINDING_KIND_INVALID",`${i}/binding/kind`),{field:c,operator:l,binding:{kind:"field",field:Ve(f.field,`${i}/binding/field`)}}})}function Sc(e,t,o){let n={};if(e.maxLength!==void 0&&(["text.short","text.long","text.rich"].includes(t)||v("NATIVE_DATA_FIELD_MAX_LENGTH_TYPE_INVALID",`${o}/maxLength`),n.maxLength=qn(e.maxLength,`${o}/maxLength`,1,1e6)),(e.precision!==void 0||e.scale!==void 0)&&((t!=="number.decimal"||e.precision===void 0)&&v("NATIVE_DATA_FIELD_DECIMAL_CONFIG_INVALID",o),n.precision=qn(e.precision,`${o}/precision`,1,1e3),n.scale=e.scale===void 0?0:qn(e.scale,`${o}/scale`,0,n.precision)),e.min!==void 0||e.max!==void 0){["number.integer","number.decimal"].includes(t)||v("NATIVE_DATA_FIELD_NUMERIC_BOUNDS_TYPE_INVALID",o);let r=ys(e.min,`${o}/min`),i=ys(e.max,`${o}/max`);t==="number.integer"&&[r,i].some(a=>a!==void 0&&!Number.isSafeInteger(a))&&v("NATIVE_DATA_FIELD_NUMERIC_BOUNDS_INVALID",o),r!==void 0&&i!==void 0&&r>i&&v("NATIVE_DATA_FIELD_NUMERIC_BOUNDS_INVALID",o),r!==void 0&&(n.min=r),i!==void 0&&(n.max=i)}return e.timePrecision!==void 0&&((!["time","datetime","datetime-range"].includes(t)||!["minute","second"].includes(e.timePrecision))&&v("NATIVE_DATA_FIELD_TIME_PRECISION_INVALID",`${o}/timePrecision`),n.timePrecision=e.timePrecision),n}function Dc(e,t,o){if(e===void 0)return;let n=`${o}/file`;["file","image","signature"].includes(t)||v("NATIVE_DATA_FIELD_FILE_TYPE_INVALID",n);let r=Ne(e,n);Te(r,["maxCount","maxSizeMb","accept"],n);let i=st(r.maxCount,`${n}/maxCount`,1,100);t==="signature"&&i!==void 0&&i!==1&&v("NATIVE_DATA_FIELD_SIGNATURE_COUNT_INVALID",`${n}/maxCount`);let a=st(r.maxSizeMb,`${n}/maxSizeMb`,1,1024),s;return r.accept!==void 0&&((!Array.isArray(r.accept)||r.accept.length>50)&&v("NATIVE_DATA_FIELD_FILE_ACCEPT_INVALID",`${n}/accept`),s=r.accept.map((d,c)=>Ce(d,`${n}/accept/${c}`,255)),new Set(s).size!==s.length&&v("NATIVE_DATA_FIELD_FILE_ACCEPT_INVALID",`${n}/accept`)),{...i===void 0?{}:{maxCount:i},...a===void 0?{}:{maxSizeMb:a},...s===void 0?{}:{accept:s}}}function kc(e,t,o){let n=`${o}/serial`;if(e===void 0){t==="serial-number"&&v("NATIVE_DATA_FIELD_SERIAL_REQUIRED",n);return}t!=="serial-number"&&v("NATIVE_DATA_FIELD_SERIAL_TYPE_INVALID",n);let r=Ne(e,n);Te(r,["prefix","digits","start"],n);let i=Gn(r.prefix,`${n}/prefix`,64),a=st(r.digits,`${n}/digits`,1,32),s=st(r.start,`${n}/start`,0,Number.MAX_SAFE_INTEGER);return{...i===void 0?{}:{prefix:i},...a===void 0?{}:{digits:a},...s===void 0?{}:{start:s}}}function vc(e,t,o){let n=`${o}/subtable`;if(e===void 0){t==="subtable"&&v("NATIVE_DATA_FIELD_SUBTABLE_REQUIRED",n);return}t!=="subtable"&&v("NATIVE_DATA_FIELD_SUBTABLE_TYPE_INVALID",n);let r=Ne(e,n);Te(r,["resourceCode","foreignKey","orderField","minRows","maxRows"],n);let i=Ce(r.resourceCode,`${n}/resourceCode`,64);_r.test(i)||v("NATIVE_RESOURCE_CODE_INVALID",`${n}/resourceCode`);let a=Ve(r.foreignKey,`${n}/foreignKey`),s=Ve(r.orderField,`${n}/orderField`);s===a&&v("NATIVE_DATA_FIELD_SUBTABLE_ORDER_FIELD_INVALID",`${n}/orderField`);let d=st(r.maxRows,`${n}/maxRows`,1,$e),c=st(r.minRows,`${n}/minRows`,0,$e);return(c??0)>(d??20)&&v("NATIVE_DATA_FIELD_SUBTABLE_MIN_ROWS_INVALID",`${n}/minRows`),{resourceCode:i,foreignKey:a,orderField:s,...c===void 0?{}:{minRows:c},...d===void 0?{}:{maxRows:d}}}function mr(e,t,o){if(e===void 0)return;(!Array.isArray(e)||e.length>o)&&v("NATIVE_DATA_FIELD_SOURCE_FIELDS_INVALID",t);let n=e.map((r,i)=>Ve(r,`${t}/${i}`));return new Set(n).size!==n.length&&v("NATIVE_DATA_FIELD_SOURCE_FIELDS_INVALID",t),n}function Ve(e,t){let o=Ce(e,t,63);return bs.test(o)||v("NATIVE_FIELD_CODE_INVALID",t),o}function Ne(e,t){return(!e||typeof e!="object"||Array.isArray(e))&&v("NATIVE_OBJECT_REQUIRED",t),e}function Te(e,t,o){let n=new Set(t);for(let r of Object.keys(e))n.has(r)||v("NATIVE_PROPERTY_UNKNOWN",`${o}/${r}`)}function Ce(e,t,o){return(typeof e!="string"||e.length===0||e.length>o)&&v("NATIVE_STRING_INVALID",t),e}function Gn(e,t,o){if(e!==void 0)return(typeof e!="string"||e.length>o)&&v("NATIVE_STRING_INVALID",t),e}function gr(e,t){if(e!==void 0)return typeof e!="boolean"&&v("NATIVE_BOOLEAN_REQUIRED",t),e}function st(e,t,o,n){if(e!==void 0)return qn(e,t,o,n)}function ys(e,t){if(e!==void 0)return(typeof e!="number"||!Number.isFinite(e))&&v("NATIVE_NUMBER_REQUIRED",t),e}function qn(e,t,o,n){return(!Number.isSafeInteger(e)||Number(e)<o||Number(e)>n)&&v("NATIVE_INTEGER_OUT_OF_RANGE",t),Number(e)}function v(e,t){throw new _e(e,t)}var Zt=["created_by","updated_by","created_at","updated_at"];function Ye(e){return Zt.includes(e)}function Ir(e){return Zt.some(t=>Object.prototype.hasOwnProperty.call(e.fieldPolicies||{},t))}var Ns=Hn.map(e=>e.code);function Qt(e){return Ns.includes(e)}var Ts=["eq","neq","gt","gte","lt","lte","contains","startsWith","endsWith","in","between","has","hasAny","hasAll","overlaps","containedBy","jsonContains","isEmpty","isNotEmpty"],Pc=new Set(Ts);function Lc(e){return Pc.has(String(e))}var yr=["eq","neq","contains","startsWith","endsWith","in","isEmpty","isNotEmpty"],en=["eq","neq","gt","gte","lt","lte","between","in","isEmpty"],$c=["eq","neq","in","isEmpty"],Yn=["eq","neq","in","isEmpty","isNotEmpty"],St=["has","hasAny","hasAll","isEmpty","isNotEmpty"],Rs=["overlaps","contains","containedBy","isEmpty"],br=["jsonContains","isEmpty","isNotEmpty"],Or=["isEmpty","isNotEmpty"],Vc={"text.short":yr,"text.long":yr,"text.rich":yr,"number.integer":en,"number.decimal":en,boolean:$c,date:en,time:en,datetime:en,"date-range":Rs,"datetime-range":Rs,"option.single":Yn,"option.multiple":St,"cascade.single":St,"cascade.multiple":St,"user.single":Yn,"user.multiple":St,"department.single":Yn,"department.multiple":St,"resource-ref.single":Yn,"resource-ref.multiple":St,file:Or,image:Or,signature:Or,address:br,location:br,uuid:["eq","neq","in","isEmpty"],json:br,"serial-number":["eq","neq","in","contains","startsWith"],subtable:[]},Fc=new Set(["text.short","text.long","text.rich","option.single","user.single","department.single","resource-ref.single","serial-number"]),xc=new Set(["option.multiple","cascade.single","cascade.multiple","user.multiple","department.multiple","resource-ref.multiple","file","image","signature","address","location","json","subtable"]);function hr(e){return Vc[e]}function Wc(e,t){return hr(e).includes(t)}function Xn(e){return Fc.has(e)}function Dt(e){return!xc.has(e)}function Nr(e){return hr(e).length>0}var ws=new Set(["number.integer","number.decimal"]),Cs=new Set(["text.short","text.long","number.integer","number.decimal","date","time","datetime","serial-number"]),jc=new Set([...Cs,"boolean","uuid"]),Uc=new Set(["option.single","user.single","department.single","resource-ref.single"]);function Mc(e,t){return t==="sum"||t==="avg"?ws.has(e)?{valueExpression:"column",numericResult:!0}:null:t==="min"||t==="max"?Cs.has(e)?{valueExpression:"column",numericResult:ws.has(e)}:null:Uc.has(e)?{valueExpression:"snapshot-value",numericResult:!0}:jc.has(e)?{valueExpression:"column",numericResult:!0}:null}var Qn=["version","maxBytes","fields"];function wr(e,t){if(e===void 0)return;let o=Rr(e,t);Ss(o,Qn,t);let n=Zn(o.version,`${t}/version`,1,1e6),r=Zn(o.maxBytes,`${t}/maxBytes`,2,196608);(!n||!r)&&ge("NATIVE_DATA_DRAFT_STATE_SCHEMA_INVALID",t);let i=Rr(o.fields,`${t}/fields`),a=Object.entries(i);(!a.length||a.length>50)&&ge("NATIVE_DATA_DRAFT_STATE_FIELDS_INVALID",`${t}/fields`);for(let[s,d]of a){let c=`${t}/fields/${s}`;/^[A-Za-z][A-Za-z0-9_]{0,62}$/.test(s)||ge("NATIVE_DATA_DRAFT_STATE_FIELD_CODE_INVALID",c);let l=Rr(d,c),f=Ds(l.type,`${c}/type`,32),p=f==="string"?["type","required","maxLength","enum"]:f==="json.object"?["type","required","maxBytes"]:["type","required"];if(["string","number","integer","boolean","json.object"].includes(f)||ge("NATIVE_DATA_DRAFT_STATE_FIELD_TYPE_INVALID",`${c}/type`),Ss(l,p,c),Kc(l.required,`${c}/required`),f==="string"){let m=Zn(l.maxLength,`${c}/maxLength`,1,196608);m||ge("NATIVE_DATA_DRAFT_STATE_FIELD_INVALID",c),l.enum!==void 0&&Bc(l.enum,`${c}/enum`,100,!1).some(A=>A.length>m)&&ge("NATIVE_DATA_DRAFT_STATE_FIELD_INVALID",`${c}/enum`)}else if(f==="json.object"){let m=Zn(l.maxBytes,`${c}/maxBytes`,2,65536);(!m||m>r)&&ge("NATIVE_DATA_DRAFT_STATE_FIELD_INVALID",c)}}}function Bc(e,t,o,n){(!Array.isArray(e)||!n&&e.length===0||e.length>o)&&ge("NATIVE_DATA_SURFACE_STRING_ARRAY_INVALID",t);let r=e.map((i,a)=>Ds(i,`${t}/${a}`,255));return new Set(r).size!==r.length&&ge("NATIVE_DATA_SURFACE_STRING_ARRAY_INVALID",t),r}function Rr(e,t){return(!e||typeof e!="object"||Array.isArray(e))&&ge("NATIVE_OBJECT_REQUIRED",t),e}function Ss(e,t,o){let n=new Set(t);for(let r of Object.keys(e))n.has(r)||ge("NATIVE_PROPERTY_UNKNOWN",`${o}/${r}`)}function Ds(e,t,o){return(typeof e!="string"||e.length===0||e.length>o)&&ge("NATIVE_STRING_INVALID",t),e}function Kc(e,t){e!==void 0&&typeof e!="boolean"&&ge("NATIVE_BOOLEAN_REQUIRED",t)}function Zn(e,t,o,n){return(!Number.isSafeInteger(e)||Number(e)<o||Number(e)>n)&&ge("NATIVE_INTEGER_INVALID",t),Number(e)}function ge(e,t){throw new _e(e,t)}var qc=500,Me={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:Qn,mobile:["enabled"]},Gc={"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 eo(e,t,o){if(e===void 0)return;let n=le(e,o);Fe(n,Me.surface,o);let r=n.mutationOwner===void 0?"native":Be(n.mutationOwner,`${o}/mutationOwner`,16);["native","action","readonly","workflow","queued-command"].includes(r)||j("NATIVE_DATA_SURFACE_MUTATION_OWNER_INVALID",`${o}/mutationOwner`);let i=n.generated===void 0?{}:le(n.generated,`${o}/generated`);Fe(i,Me.generated,`${o}/generated`);for(let d of Me.generated)Cr(i[d],`${o}/generated/${d}`);if(r!=="native")for(let d of["create","update","delete"])i[d]===!0&&j("NATIVE_DATA_SURFACE_MUTATION_OWNER_CONFLICT",`${o}/generated/${d}`);let a=new Map(t.map(d=>[d.code,d])),s=le(n.fields,`${o}/fields`);for(let d of Object.keys(s))a.has(d)||j("NATIVE_DATA_SURFACE_FIELD_MISSING",`${o}/fields/${d}`);for(let d of t)Object.prototype.hasOwnProperty.call(s,d.code)||j("NATIVE_DATA_SURFACE_FIELD_REQUIRED",`${o}/fields/${d.code}`),Jc(s[d.code],d,`${o}/fields/${d.code}`);for(let d of["create","update"]){let c=i[d]??r==="native",l=t.some(f=>{let p=le(s[f.code],`${o}/fields/${f.code}`);return vs(f,p,d)});c&&!l&&j("NATIVE_DATA_SURFACE_WRITABLE_FIELDS_REQUIRED",`${o}/generated/${d}`)}if(Hc(n.list,a,`${o}/list`),ks(n.form,a,`${o}/form`,"form"),ks(n.detail,a,`${o}/detail`,"detail"),n.mobile!==void 0){let d=le(n.mobile,`${o}/mobile`);Fe(d,Me.mobile,`${o}/mobile`),Cr(d.enabled,`${o}/mobile/enabled`)}zc(n,t,o)}function to(e,t){let o=e.views?.find(r=>r.code===t);o||j("NATIVE_DATA_VIEW_NOT_FOUND",`/surface/views/${t}`);let n=new Map((o.sections||[]).flatMap(r=>r.fields.map(i=>[i,r.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(([r,i])=>{let a={...i};delete a.section;let s=n.get(r);return[r,{...a,...s?{section:s}:{},list:o.list.fieldOrder.includes(r)}]}))}}function zc(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((r,i)=>{let a=`${o}/views/${i}`,s=le(r,a);Fe(s,["code","name","generated","list","form","detail","mobile","sections"],a);let d=Be(s.code,`${a}/code`,64);(!/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/.test(d)||n.has(d))&&j("NATIVE_DATA_VIEW_CODE_INVALID",`${a}/code`),n.add(d),Be(s.name,`${a}/name`,255),le(s.generated,`${a}/generated`),le(s.mobile,`${a}/mobile`);for(let l of["list","detail","create","update","delete"])typeof s.generated[l]!="boolean"&&j("NATIVE_DATA_VIEW_OPERATION_INVALID",`${a}/generated/${l}`);typeof s.mobile.enabled!="boolean"&&j("NATIVE_DATA_VIEW_MOBILE_INVALID",`${a}/mobile/enabled`);for(let l of["list","form","detail"]){let f=le(s[l],`${a}/${l}`),p=kt(f.fieldOrder,`${a}/${l}/fieldOrder`,500,!0);for(let m of p){let E=e.fields[m];(!E||(E.hidden??E.system)===!0)&&j("NATIVE_DATA_VIEW_FIELD_INVALID",`${a}/${l}/fieldOrder`)}}if(s.sections!==void 0){(!Array.isArray(s.sections)||s.sections.length>100)&&j("NATIVE_DATA_VIEW_SECTIONS_INVALID",`${a}/sections`);let l=new Set;s.sections.forEach((f,p)=>{let m=`${a}/sections/${p}`,E=le(f,m);Fe(E,["title","fields"],m),Be(E.title,`${m}/title`,255);for(let A of kt(E.fields,`${m}/fields`,100,!0)){let O=e.fields[A];(!O||(O.hidden??O.system)===!0||l.has(A))&&j("NATIVE_DATA_VIEW_FIELD_INVALID",`${m}/fields`),l.add(A)}})}let c=to(e,d);if(eo(c,t,a),s.generated.create!==!1&&(e.mutationOwner||"native")==="native")for(let l of t)Ue(l,e.fields[l.code])&&vs(l,e.fields[l.code],"create")&&!s.form.fieldOrder.includes(l.code)&&j("NATIVE_DATA_VIEW_CREATE_REQUIRED_FIELD_MISSING",`${a}/form/fieldOrder`)})}function vs(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 Jc(e,t,o){let n=le(e,o);Fe(n,Me.field,o),Be(n.label,`${o}/label`,500),n.type!==t.type&&j("NATIVE_DATA_SURFACE_FIELD_TYPE_MISMATCH",`${o}/type`);let r=Be(n.widget,`${o}/widget`,64);Gc[t.type].includes(r)||j("NATIVE_DATA_SURFACE_WIDGET_INCOMPATIBLE",`${o}/widget`),Zc(n.section,`${o}/section`,255);for(let i of["requiredHint","system","hidden","list","searchable","sortable"])Cr(n[i],`${o}/${i}`);n.searchable===!0&&!Xn(t.type)&&j("NATIVE_DATA_SURFACE_SEARCH_UNSUPPORTED",`${o}/searchable`),n.sortable===!0&&!Dt(t.type)&&j("NATIVE_DATA_SURFACE_SORT_UNSUPPORTED",`${o}/sortable`);for(let i of["readCapabilities","createCapabilities","updateCapabilities"])kt(n[i],`${o}/${i}`,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 i=Array.isArray(n.accept)?n.accept:[n.accept];kt(i,`${o}/accept`,50,!1)}for(let i of["maxLength","precision","scale","exactDecimal","min","max","rangeBoundary","options","source","userCandidates","timePrecision","serial","subtable"])Yc(n,t,i,o);Xc(n,t,o)}function Hc(e,t,o){if(e===void 0)return;let n=le(e,o);if(Fe(n,Me.list,o),n.actions!==void 0){let r=le(n.actions,`${o}/actions`);Fe(r,["import","export"],`${o}/actions`);for(let i of["import","export"])r[i]!==void 0&&typeof r[i]!="boolean"&&j("NATIVE_DATA_SURFACE_LIST_ACTION_INVALID",`${o}/actions/${i}`)}if(n.fieldOrder!==void 0)for(let r of kt(n.fieldOrder,`${o}/fieldOrder`,500,!0))t.has(r)||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[r,i]of[["searchableFields",Xn],["filterFields",Nr]]){if(n[r]===void 0)continue;let a=kt(n[r],`${o}/${r}`,100,!0);for(let s of a){let d=t.get(s);(!d||!i(d.type))&&j("NATIVE_DATA_SURFACE_LIST_FIELD_INVALID",`${o}/${r}`)}}if(n.defaultSort!==void 0){let r=le(n.defaultSort,`${o}/defaultSort`);Fe(r,Me.defaultSort,`${o}/defaultSort`);let i=Be(r.field,`${o}/defaultSort/field`,63),a=t.get(i);!Qt(i)&&(!a||!Dt(a.type))&&j("NATIVE_DATA_SURFACE_SORT_UNSUPPORTED",`${o}/defaultSort/field`),r.order!==void 0&&!["asc","desc"].includes(r.order)&&j("NATIVE_DATA_SURFACE_SORT_ORDER_INVALID",`${o}/defaultSort/order`)}}function ks(e,t,o,n){if(e===void 0)return;let r=le(e,o);if(Fe(r,Me[n],o),r.layout!==void 0&&!["flat","sections"].includes(r.layout)&&j("NATIVE_DATA_SURFACE_LAYOUT_INVALID",`${o}/layout`),r.fieldOrder!==void 0){let i=`${o}/fieldOrder`;(!Array.isArray(r.fieldOrder)||r.fieldOrder.length>t.size||r.fieldOrder.length>qc)&&j("NATIVE_DATA_SURFACE_FIELD_ORDER_INVALID",i);let a=r.fieldOrder.map((s,d)=>Be(s,`${i}/${d}`,63));new Set(a).size!==a.length&&j("NATIVE_DATA_SURFACE_FIELD_ORDER_INVALID",i),a.forEach((s,d)=>{t.has(s)||j("NATIVE_DATA_SURFACE_FIELD_ORDER_FIELD_MISSING",`${i}/${d}`)})}n==="form"&&wr(r.draftState,`${o}/draftState`)}function Yc(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}`),oe(e[o])!==oe(t[o])&&j("NATIVE_DATA_SURFACE_FIELD_PROJECTION_MISMATCH",`${n}/${o}`))}function Xc(e,t,o){let n=t.file||{},r={...e.maxCount===void 0?{}:{maxCount:e.maxCount},...e.maxSizeMb===void 0?{}:{maxSizeMb:e.maxSizeMb},...e.accept===void 0?{}:{accept:Tr(e.accept)}};for(let i of["maxCount","maxSizeMb","accept"]){if(r[i]===void 0&&n[i]===void 0)continue;(r[i]===void 0||n[i]===void 0)&&j("NATIVE_DATA_SURFACE_FIELD_PROJECTION_MISMATCH",`${o}/${i}`);let a=i==="accept"?Tr(r[i]):r[i],s=i==="accept"?Tr(n[i]):n[i];oe(a)!==oe(s)&&j("NATIVE_DATA_SURFACE_FIELD_PROJECTION_MISMATCH",`${o}/${i}`)}}function Tr(e){return(Array.isArray(e)?[...e]:[e]).sort((t,o)=>{let n=String(t),r=String(o);return n===r?0:n<r?-1:1})}function kt(e,t,o,n){(!Array.isArray(e)||!n&&e.length===0||e.length>o)&&j("NATIVE_DATA_SURFACE_STRING_ARRAY_INVALID",t);let r=e.map((i,a)=>Be(i,`${t}/${a}`,255));return new Set(r).size!==r.length&&j("NATIVE_DATA_SURFACE_STRING_ARRAY_INVALID",t),r}function le(e,t){return(!e||typeof e!="object"||Array.isArray(e))&&j("NATIVE_OBJECT_REQUIRED",t),e}function Fe(e,t,o){let n=new Set(t);for(let r of Object.keys(e))n.has(r)||j("NATIVE_PROPERTY_UNKNOWN",`${o}/${r}`)}function Be(e,t,o){return(typeof e!="string"||e.length===0||e.length>o)&&j("NATIVE_STRING_INVALID",t),e}function Zc(e,t,o){e!==void 0&&(typeof e!="string"||e.length>o)&&j("NATIVE_STRING_INVALID",t)}function Cr(e,t){e!==void 0&&typeof e!="boolean"&&j("NATIVE_BOOLEAN_REQUIRED",t)}function j(e,t){throw new _e(e,t)}var vt=class extends Error{constructor(o,n){super(`${o}: ${n}`);this.pointer=o;this.reason=n}pointer;reason;code="NATIVE_MANAGED_CONCURRENCY_INVALID"};function Sr(e,t,o){if(e===void 0)return;let n=(_,b)=>{throw new vt(_,b)},r=(_,b,h)=>((!_||typeof _!="object"||Array.isArray(_)||Object.keys(_).some(u=>!h.includes(u)))&&n(b,"object contains unsupported properties"),_),i=(_,b,h,u)=>{(!Number.isSafeInteger(_)||_<b||_>h)&&n(u,`expected integer ${b}..${h}`)},a=(_,b)=>{(typeof _!="string"||!/^[a-z][a-z0-9_-]{0,63}$/.test(_))&&n(b,"invalid code")},s=(_,b,h)=>((!Array.isArray(_)||_.length>b)&&n(h,"array exceeds bound"),_),d=(_,b)=>{let h=t.find(u=>u.code===_);return h||n(b,"unknown resource"),h},c=(_,b,h)=>{let u=_.schema.fields.find(I=>I.code===b);return!u&&b!=="id"&&n(h,"unknown field"),u},l=(_,b,h=!1)=>{r(_,b,Object.keys(_||{})),Object.keys(_).length>8&&n(b,"at most eight parameters");for(let[u,I]of Object.entries(_))if(a(u,b),r(I,b,["type","values","minimum","maximum","minLength","maxLength"]),I.type==="uuid")Object.keys(I).length!==1&&n(b,"uuid has no options");else if(h&&I.type==="boolean")r(I,b,["type"]);else if(h&&I.type==="string"&&I.values===void 0)r(I,b,["type","minLength","maxLength"]),i(I.maxLength,1,256,b),I.minLength!==void 0&&i(I.minLength,0,I.maxLength,b);else if(I.type==="string"){r(I,b,["type","values"]);let R=s(I.values,100,b);(!R.length||R.some(w=>typeof w!="string"||w.length>128)||new Set(R).size!==R.length)&&n(b,"finite string values required")}else I.type==="integer"?(r(I,b,["type","minimum","maximum"]),i(I.minimum,0,1e6,b),i(I.maximum,I.minimum,I.minimum+1e3,b)):n(b,"unsupported parameter type")},f=(_,b,h,u=!1)=>{r(_,h,["from","key","value"]),!(_.from==="input"&&Object.keys(_).length===2&&Object.hasOwn(b,_.key))&&((_.from==="actor"||u&&_.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(h,"invalid binding"))},p=(_,b,h)=>{f(_,b,h),!(_.from==="input"&&b[_.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(h,"record and allocation identifiers require a UUID binding"))},m=(_,b,h)=>{f(_,b,h),!(_.from==="input"&&b[_.key].type==="integer"&&b[_.key].minimum>=1)&&(_.from==="literal"&&Number.isSafeInteger(_.value)&&_.value>=1||n(h,"expectedRevision requires a positive integer binding"))},E="/data/concurrency";JSON.stringify(e).length>131072&&n(E,"declaration exceeds 128 KiB");let A=r(e,E,["version","admission","reads","quotas","commands"]);A.version!==1&&n(E,"unsupported version"),r(A.admission,E,["perSecond","burst","maxInFlight"]),i(A.admission.perSecond,1,1e3,E),i(A.admission.burst,1,1e3,E),i(A.admission.maxInFlight,1,1e3,E);let O=(_,b)=>{let h=new Set;for(let u of _)a(u?.code,b),h.has(u.code)&&n(b,"duplicate code"),h.add(u.code)};O(s(A.reads,32,E),E),O(s(A.quotas,16,E),E),O(s(A.commands,32,E),E);for(let _ of A.reads){let b=`${E}/reads/${_.code}`;r(_,b,["code","resourceCode","parameters","select","where","limit","scope","freshSeconds","staleSeconds","maxKeys","sourcePerSecond","dependencies"]);let h=d(_.resourceCode,b);l(_.parameters,b),["subject","application"].includes(_.scope)||n(b,"invalid cache scope"),_.scope==="application"&&h.dataPolicyCode&&n(b,"shared cache cannot bypass a row policy");let u=s(_.select,32,b);u.length||n(b,"select required"),u.forEach(R=>c(h,R,b));let I=s(_.dependencies,64,b);I.forEach(R=>c(h,R,b));for(let R of s(_.where||[],8,b))r(R,b,["field","value"]),c(h,R.field,b),f(R.value,_.parameters,b),_.scope==="application"&&R.value.from==="actor"&&n(b,"actor requires subject cache"),I.includes(R.field)||n(b,"filter dependency missing");u.some(R=>!I.includes(R))&&n(b,"selected field dependency missing"),i(_.limit,1,100,b),i(_.freshSeconds,1,300,b),i(_.staleSeconds,0,300,b),i(_.maxKeys,1,1e4,b),i(_.sourcePerSecond,1,20,b)}for(let _ of A.quotas){let b=`${E}/quotas/${_.code}`;r(_,b,["code","sourceResource","capacityField","allocationResource","allocationField","reservationSeconds"]);let h=d(_.sourceResource,b),u=d(_.allocationResource,b);c(h,_.capacityField,b)?.type!=="number.integer"&&n(b,"capacity must be an integer"),(c(u,_.allocationField,b)?.type!=="uuid"||c(u,_.allocationField,b)?.nullable!==!1)&&n(b,"allocation reference must be a uuid"),u.surface?.mutationOwner!=="queued-command"&&n(b,"allocation model must be command owned"),_.reservationSeconds!==void 0&&i(_.reservationSeconds,10,86400,b)}new Set(A.quotas.map(_=>_.allocationResource)).size!==A.quotas.length&&n(E,"an allocation model has exactly one pool owner");for(let _ of A.commands){let b=`${E}/commands/${_.code}`;r(_,b,["code","mode","intake","execution","capability","parameters","resourceKey","admission","deadlineSeconds","guards","operations","quota"]),_.mode!==void 0&&!["permit","durable"].includes(_.mode)&&n(b,"unsupported mode");let h=_.mode==="durable";if(l(_.parameters,b,h),f(_.resourceKey,_.parameters,b),o.some(u=>u.code===_.capability)||n(b,"command capability must be declared"),r(_.admission,b,["perSecond","burst","maxInFlight","maxQueue","maxWaitSeconds","permitSeconds"]),i(_.admission.perSecond,1,A.admission.perSecond,b),i(_.admission.burst,1,A.admission.burst,b),i(_.admission.maxInFlight,1,A.admission.maxInFlight,b),i(_.admission.maxQueue,1,1e4,b),i(_.admission.maxWaitSeconds,1,3600,b),(!h||_.admission.permitSeconds!==void 0)&&i(_.admission.permitSeconds,5,60,b),i(_.deadlineSeconds,10,3600,b),h){(_.operations!==void 0||_.guards!==void 0||_.quota!==void 0)&&n(b,"backend-plan does not accept static operations, guards or quota"),r(_.intake,b,["perSecond","burst","maxInFlight"]);for(let R of["perSecond","burst","maxInFlight"])i(_.intake[R],1,1e3,b);let u=r(_.execution,b,["kind","handlerCode","timeoutMs","resources","directory"]);u.kind!=="backend-plan"&&n(b,"durable requires backend-plan"),a(u.handlerCode,b),i(u.timeoutMs,100,3e4,b);let I=s(u.resources,32,b);I.length||n(b,"execution resources required"),new Set(I.map(R=>R.resourceCode)).size!==I.length&&n(b,"duplicate execution resource");for(let R of I){r(R,b,["resourceCode","readFields","writeOperations","writeFields"]);let w=d(R.resourceCode,b);for(let S of["readFields","writeFields"]){let L=s(R[S],64,b);new Set(L).size!==L.length&&n(b,"duplicate field"),L.forEach(V=>{S==="readFields"&&at.has(V)||c(w,V,b)})}let T=s(R.writeOperations,3,b);(new Set(T).size!==T.length||T.some(S=>!["create","update","increment"].includes(S)))&&n(b,"unsupported execution operation"),R.writeFields.some(S=>["id","revision","created_by","updated_by","created_at","updated_at"].includes(S))&&n(b,"record metadata is platform owned"),!T.length&&R.writeFields.length&&n(b,"write fields require an operation"),T.length&&!R.writeFields.length&&n(b,"write operations require fields"),A.quotas.some(S=>S.allocationResource===R.resourceCode)&&T.length&&n(b,"allocation references remain owned by their pool command")}if(u.directory!==void 0){r(u.directory,b,["mode","fields"]),u.directory.mode!=="current-initiator"&&n(b,"only current initiator allowed");let R=s(u.directory.fields,5,b);(!R.length||new Set(R).size!==R.length||R.some(w=>!["displayName","employeeNumber","primaryDepartment","departments","phone"].includes(w)))&&n(b,"unsupported directory fields")}continue}(_.execution!==void 0||_.intake!==void 0)&&n(b,"execution and intake require durable mode");for(let u of s(_.guards||[],8,b)){r(u,b,["resourceCode","id","conditions"]);let I=d(u.resourceCode,b);p(u.id,_.parameters,b);for(let R of s(u.conditions,16,b)){r(R,b,["kind","field","operator","value"]);let w=c(I,R.field,b);["eq","neq","lt","lte","gt","gte"].includes(R.operator)||n(b,"unsupported guard"),R.kind==="database-now"?(w?.type!=="datetime"||!["lt","lte","gt","gte"].includes(R.operator)||R.value!==void 0)&&n(b,"database-now requires datetime and an ordering operator"):(R.kind!==void 0&&R.kind!=="value"&&n(b,"unsupported condition kind"),f(R.value,_.parameters,b))}}for(let u of s(_.operations,8,b)){r(u,b,["operation","resourceCode","id","expectedRevision","data"]);let I=d(u.resourceCode,b);I.surface?.mutationOwner!=="queued-command"&&n(b,"command mutations require command owned models");let R=A.quotas.find(w=>w.allocationResource===u.resourceCode);R&&(u.operation==="create"?_.quota?.action!=="allocate"||_.quota.pool!==R.code:Object.hasOwn(u.data||{},R.allocationField))&&n(b,"allocation references are owned by their pool command"),["create","update"].includes(u.operation)||n(b,"unsupported operation"),u.operation==="update"?(p(u.id,_.parameters,b),m(u.expectedRevision,_.parameters,b)):(u.id!==void 0||u.expectedRevision!==void 0)&&n(b,"create has no caller supplied id/revision"),r(u.data,b,Object.keys(u.data||{})),Object.keys(u.data).length>32&&n(b,"too many fields");for(let[w,T]of Object.entries(u.data))w==="id"&&n(b,"record identifiers are platform owned"),c(I,w,b),f(T,_.parameters,b,_.quota?.action==="allocate")}if(_.quota){let u=r(_.quota,b,["pool","action","units","mode","allocation"]),I=A.quotas.find(R=>R.code===u.pool);I||n(b,"unknown quota pool"),p(_.resourceKey,_.parameters,b),u.action==="allocate"?(r(u,b,["pool","action","units","mode"]),i(u.units,1,1e3,b),(!["committed","reserved"].includes(u.mode)||u.mode==="reserved"&&!I.reservationSeconds)&&n(b,"invalid allocation mode"),(_.operations.length!==1||_.operations[0].operation!=="create"||_.operations[0].resourceCode!==I.allocationResource||_.operations[0].data[I.allocationField]?.from!=="allocation")&&n(b,"allocation must atomically create its bound business record")):["confirm","release"].includes(u.action)?(r(u,b,["pool","action","allocation"]),p(u.allocation,_.parameters,b),_.operations.length&&n(b,"lifecycle owns allocation state; business reference remains immutable")):n(b,"invalid quota action")}else _.operations.length||n(b,"operations required")}let y=A.commands.filter(_=>_.mode==="durable").map(_=>_.execution.handlerCode);return new Set(y).size!==y.length&&n(E,"handler code must be unique"),JSON.parse(JSON.stringify(A))}var dt=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"},vr=["parentTransitions","childTransitions","fulfilledChildStatuses","lockedParentStatuses"],Ps=["amountFieldCode","currencyFieldCode","relationFieldCode","parentFieldCode","rootFieldCode","statusFieldCode","parentRelationValue","childRelationValue"],oo=e=>!!(e&&typeof e=="object"&&!Array.isArray(e)),no=e=>Array.isArray(e)?e.filter(oo):[],xe=(e,t)=>{throw new dt(e,t)},Dr=e=>typeof e=="string"&&/^[A-Za-z0-9._:-]{1,128}$/.test(e),kr=(e,t)=>e<t?-1:e>t?1:0;function ro(e,t="/decimalReservationLifecycle"){if(e===void 0)return;if(!oo(e)||Object.keys(e).some(r=>!vr.includes(r))||vr.some(r=>!Object.prototype.hasOwnProperty.call(e,r)))return xe(t,"\u5FC5\u987B\u5B8C\u6574\u58F0\u660E\u56DB\u9879\u89C4\u5219\uFF0C\u4E0D\u80FD\u5305\u542B\u672A\u77E5\u5C5E\u6027");let o=r=>{let i=e[r];if(!Array.isArray(i)||i.length>64)return xe(`${t}/${r}`,"\u72B6\u6001\u8FB9\u6700\u591A 64 \u6761");let a=new Set;return i.map((s,d)=>{let c=`${t}/${r}/${d}`;if(!oo(s)||Object.keys(s).some(f=>f!=="from"&&f!=="to")||!Dr(s.from)||!Dr(s.to)||s.from===s.to)return xe(c,"\u72B6\u6001\u8FB9\u5FC5\u987B\u5305\u542B\u4E0D\u540C\u7684\u6709\u6548 from/to");let l=JSON.stringify([s.from,s.to]);return a.has(l)?xe(c,"\u72B6\u6001\u8FB9\u4E0D\u80FD\u91CD\u590D"):(a.add(l),{from:s.from,to:s.to})}).sort((s,d)=>kr(s.from,d.from)||kr(s.to,d.to))},n=r=>{let i=e[r];return!Array.isArray(i)||i.length<1||i.length>16||i.some(a=>!Dr(a))||new Set(i).size!==i.length?xe(`${t}/${r}`,"\u72B6\u6001\u96C6\u5408\u5FC5\u987B\u5305\u542B 1 \u5230 16 \u4E2A\u4E0D\u91CD\u590D\u7684\u6709\u6548\u72B6\u6001"):[...i].sort(kr)};return{parentTransitions:o("parentTransitions"),childTransitions:o("childTransitions"),fulfilledChildStatuses:n("fulfilledChildStatuses"),lockedParentStatuses:n("lockedParentStatuses")}}function Pr(e,t,o="/config/data/resources"){no(e).forEach((n,r)=>{let i=`${o}/${r}/decimalReservationLifecycle`,a=ro(n.decimalReservationLifecycle,i);if(!a)return;let s=no(t).map(f=>f.platformAccess?.decimalReservation).filter(f=>oo(f)&&f.resourceCode===n.code),d=s.find(f=>f.mode==="reserve");if(!d)return xe(i,"\u9700\u8981\u540C\u8D44\u6E90\u5DF2\u58F0\u660E\u7684 reserve \u52A8\u4F5C\u6620\u5C04");if(Ps.some(f=>typeof d[f]!="string")||s.some(f=>Ps.some(p=>f[p]!==d[p])))return xe(i,"\u540C\u8D44\u6E90\u989D\u5EA6\u52A8\u4F5C\u7684\u5B57\u6BB5\u6620\u5C04\u5FC5\u987B\u4E00\u81F4");let c=no(n.schema?.fields).find(f=>f.code===d.statusFieldCode);if(c?.type!=="option.single")return xe(i,"\u989D\u5EA6\u72B6\u6001\u5B57\u6BB5\u5FC5\u987B\u4E3A option.single");let l=new Set(no(c.options).map(f=>f.value));for(let f of vr)if((f==="parentTransitions"||f==="childTransitions"?a[f].flatMap(m=>[m.from,m.to]):a[f]).some(m=>!l.has(m)))return xe(`${i}/${f}`,"\u72B6\u6001\u5FC5\u987B\u6765\u81EA\u989D\u5EA6\u72B6\u6001\u5B57\u6BB5\u7684\u9009\u9879");if(s.some(f=>f.mode==="reserve"&&Array.isArray(f.eligibleParentStatuses)&&f.eligibleParentStatuses.some(p=>a.lockedParentStatuses.includes(String(p)))))return xe(`${i}/lockedParentStatuses`,"\u9501\u5B9A\u7236\u72B6\u6001\u4E0D\u80FD\u5141\u8BB8\u65B0\u9884\u7559")})}var $s=require("crypto");var Lr=new Set(["option.single","user.single","department.single","resource-ref.single"]),Qc=new Set(["option.multiple","cascade.single","cascade.multiple","user.multiple","department.multiple","resource-ref.multiple","address","location","json"]),Vs=new Set(["option.multiple","cascade.single","cascade.multiple","user.multiple","department.multiple","resource-ref.multiple","file","image"]),el=new Set(["option.single","user.single","department.single","resource-ref.single","signature","address","location"]),tl=new Set([...Lr,...Vs,"signature","address","location","json"]);function nl(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=>Fs(n,o.has(n.code))).sort((n,r)=>n.code.localeCompare(r.code))}function Fs(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:pl(e),index:fl(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 ol(e,t){if(t.type==="subtable")return null;let o=ue(t.code),n=xs(e,t),r=[n?` DEFAULT ${n}`:"",ml(o,t),il(o,t)].join("");return`${o} ${t.storage}${r}`}function rl(e,t){return xs(e,t)}function il(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 sl(e){return e.type==="serial-number"||Xt(e.type)&&e.type!=="subtable"}function al(e,t){return t.filter(o=>o.type==="serial-number").map(o=>{let n=so(e,o.code),r=o.serial?.start??1;return`CREATE SEQUENCE IF NOT EXISTS ${n} AS bigint MINVALUE ${r} START WITH ${r} CACHE 1`})}function dl(e,t){let o=io(e);return t.filter(n=>n.type==="serial-number").map(n=>`ALTER SEQUENCE ${so(e,n.code)} OWNED BY ${o}.${ue(n.code)}`)}function cl(e,t){return t.filter(o=>o.type==="serial-number").map(o=>`GRANT USAGE, SELECT ON SEQUENCE ${so(e,o.code)} TO "openxiangda_data_api"`)}function ll(e,t){let o=io(e),n=[];for(let r of t){if(r.type==="subtable")continue;let i=ue(r.code),a=ue(Ke("idx",e,r.code,r.index));switch(r.index){case"btree":n.push(`CREATE INDEX IF NOT EXISTS ${a} ON ${o} (${i})`);break;case"btree-snapshot-expressions":{let s=ue(Ke("idx",e,r.code,"snapshot-value")),d=ue(Ke("idx",e,r.code,"snapshot-label"));n.push(`CREATE INDEX IF NOT EXISTS ${s} ON ${o} ((${i} ->> 'value'))`,`CREATE INDEX IF NOT EXISTS ${d} ON ${o} ((${i} ->> 'label'))`);break}case"gin-jsonb-path":n.push(`CREATE INDEX IF NOT EXISTS ${a} ON ${o} USING GIN (${i} jsonb_path_ops)`);break;case"gist-range":n.push(`CREATE INDEX IF NOT EXISTS ${a} ON ${o} USING GIST (${i})`);break;case"gin-trigram":{let s=Lr.has(r.type)?`((${i} ->> 'label')) gin_trgm_ops`:`${i} gin_trgm_ops`;n.push(`CREATE INDEX IF NOT EXISTS ${a} ON ${o} USING GIN (${s})`);break}case"none":break}if(r.type==="serial-number"){let s=ue(Ke("uidx",e,r.code,"serial"));n.push(`CREATE UNIQUE INDEX IF NOT EXISTS ${s} ON ${o} (${i})`)}}return n}function ul(e,t,o,n){let r=io(e),i=io(t),a=ue(Ke("uidx",e,"environment_id","subtable-parent")),s=ue(Ke("idx",t,o,n,"subtable-child")),d=ue(Ke("fk",t,o,e)),c=ue(o),l=ue(n);return[`CREATE UNIQUE INDEX IF NOT EXISTS ${a} ON ${r} ("tenant_id", "app_code", "environment_key", "id")`,`CREATE INDEX IF NOT EXISTS ${s} ON ${i} ("tenant_id", "app_code", "environment_key", ${c}, ${l}, "id")`,`DO $native_subtable$ BEGIN
1
+ "use strict";var Dc=Object.create;var qn=Object.defineProperty;var kc=Object.getOwnPropertyDescriptor;var Lc=Object.getOwnPropertyNames;var vc=Object.getPrototypeOf,Pc=Object.prototype.hasOwnProperty;var $c=(e,t)=>{for(var o in t)qn(e,o,{get:t[o],enumerable:!0})},Ns=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Lc(t))!Pc.call(e,r)&&r!==o&&qn(e,r,{get:()=>t[r],enumerable:!(n=kc(t,r))||n.enumerable});return e};var Fc=(e,t,o)=>(o=e!=null?Dc(vc(e)):{},Ns(t||!e||!e.__esModule?qn(o,"default",{value:e,enumerable:!0}):o,e)),Vc=e=>Ns(qn({},"__esModule",{value:!0}),e);var im={};$c(im,{APPLICATION_AGENT_LIMITS_V2:()=>Qr,AuthenticatedPublicReadContractError:()=>Bt,DATA_AUDIT_METADATA_FIELDS:()=>sn,DATA_BUSINESS_COMMAND_INTENT_MAX_BYTES:()=>hA,DATA_BUSINESS_COMMAND_RESOLUTION_SCHEMA:()=>ec,DATA_BUSINESS_COMMAND_SCHEMA:()=>Ep,DATA_EVENT_TYPES_V2:()=>Jo,DATA_FORM_DRAFT_MAX_BYTES:()=>Uc,DATA_RESOURCE_MAX_FIELDS:()=>Jn,DATA_SUBTABLE_DEFAULT_TOTAL_ROWS:()=>zn,DATA_SUBTABLE_MAX_ROWS:()=>Ve,DATA_SUBTABLE_MAX_TOTAL_ROWS:()=>at,DATA_SYSTEM_SORT_FIELD_CODES:()=>Ws,DATA_TRANSACTION_MAX_BYTES:()=>jc,DATA_TRANSACTION_MAX_OPERATIONS:()=>Rr,DATA_TRANSACTION_RECORD_SET_MAX_RECORDS:()=>wA,DATE_EVENT_RESERVED_DATA_FIELDS_V2:()=>$u,DEVELOPMENT_BACKEND_CONNECTION_TTL_SECONDS:()=>FA,DEVELOPMENT_BACKEND_ENDPOINT_PATTERN:()=>vp,DEVELOPMENT_BACKEND_FEATURE:()=>Dp,DEVELOPMENT_BACKEND_INVOCATION_FEATURE:()=>Lp,DEVELOPMENT_BACKEND_INVOCATION_MAX_REQUEST_BYTES:()=>kA,DEVELOPMENT_BACKEND_INVOCATION_MAX_RESPONSE_BYTES:()=>LA,DEVELOPMENT_BACKEND_INVOCATION_SCHEMA:()=>rc,DEVELOPMENT_BACKEND_MAX_INFLIGHT:()=>$A,DEVELOPMENT_BACKEND_MAX_REQUEST_BYTES:()=>PA,DEVELOPMENT_BACKEND_MAX_RESPONSE_BYTES:()=>vA,DEVELOPMENT_BACKEND_SCHEMA:()=>kp,DEVELOPMENT_CONFIGURATION_ENDPOINT:()=>wp,DEVELOPMENT_CONFIGURATION_FEATURE:()=>Rp,DEVELOPMENT_CONFIGURATION_MANIFEST_SCHEMA:()=>ds,DEVELOPMENT_CONFIGURATION_SCHEMA:()=>nc,DateEventProjectionV2Error:()=>Rn,DevelopmentConfigurationContractError:()=>sr,FIELD_VALUE_SCHEMAS:()=>oa,ManagedConcurrencyContractError:()=>xt,NATIVE_ARTIFACT_CAPACITY_V2:()=>se,NATIVE_CONFIGURATION_VALIDATOR_DIGEST:()=>rm,NATIVE_CONTRACT_CAPACITY_V2:()=>M,NATIVE_DATA_POLICY_EXPRESSION_MAX_CLAUSES:()=>sg,NATIVE_DATA_POLICY_EXPRESSION_MAX_DEPTH:()=>og,NATIVE_DATA_POLICY_EXPRESSION_MAX_GROUP_ITEMS:()=>rg,NATIVE_DATA_POLICY_EXPRESSION_MAX_LEAVES:()=>ig,NATIVE_DATA_POLICY_EXPRESSION_MAX_OCCURRENCES:()=>ag,NATIVE_DATA_QUERY_OPERATORS_V2:()=>Us,NATIVE_HIGH_DENSITY_ARTIFACT_CAPACITY_V2:()=>wt,NATIVE_ROLE_MEMBERSHIP_BATCH_MAX_BYTES:()=>_A,NATIVE_ROLE_MEMBERSHIP_BATCH_MAX_ITEMS:()=>gA,NATIVE_UNIQUE_KEY_MAX_BYTES:()=>gg,NATIVE_UNIQUE_KEY_NORMALIZERS:()=>gi,NativeApplicationAgentContractError:()=>Ro,NativeConfigurationCompilerError:()=>Ho,NativeDataFieldContractV2Error:()=>Ae,NativeDataPolicyExpressionV2Error:()=>Mt,NativeDecimalLifecycleContractError:()=>lt,NativeEventActionContractError:()=>Po,NativeParentReadPolicyError:()=>fe,NativeRoleMembershipBatchInputError:()=>or,NativeScopeSourceFieldPathV2Error:()=>go,NativeUniqueKeyContractError:()=>Kt,OPENXIANGDA_NATIVE_DATA_FIELD_TYPES_V2:()=>Fs,OPENXIANGDA_NATIVE_DATA_SURFACE_KEYS_V2:()=>Ke,OPENXIANGDA_NATIVE_DRAFT_STATE_KEYS_V2:()=>so,OPENXIANGDA_NATIVE_SYSTEM_FIELDS_V2:()=>no,OPENXIANGDA_NATIVE_SYSTEM_FIELD_MAP_V2:()=>ct,RICH_TEXT_POLICY_V2:()=>xp,USER_CANDIDATE_MAX_SELECTIONS:()=>cm,USER_CANDIDATE_SCOPE_FIELD_TYPES:()=>Ts,UserCandidateContractError:()=>Xe,WORKFLOW_APPROVAL_EMPTY_PROVIDERS:()=>Ci,WORKFLOW_APPROVED_DELEGATION_MAX_BYTES:()=>Mg,WORKFLOW_APPROVED_DELEGATION_MAX_REQUESTS:()=>Ug,WORKFLOW_AUTOMATIC_CC_DEFAULT_RECIPIENTS:()=>Wa,WORKFLOW_AUTOMATIC_CC_MAX_RECIPIENTS:()=>xa,WORKFLOW_AUTOMATIC_CC_PROVIDERS:()=>ja,WORKFLOW_BUSINESS_STEP_EVENT:()=>To,WORKFLOW_BUSINESS_STEP_EVENTS:()=>ou,WORKFLOW_BUSINESS_STEP_FACTS_KEY:()=>ru,WORKFLOW_BUSINESS_STEP_MAX_BYTES:()=>Co,WORKFLOW_BUSINESS_STEP_MAX_RECEIPT_BYTES:()=>ma,WORKFLOW_CONDITIONAL_ASSIGNMENT_LEAF_PROVIDERS:()=>mr,WORKFLOW_CONDITIONAL_ASSIGNMENT_MAX_BYTES:()=>Cc,WORKFLOW_CONDITIONAL_ASSIGNMENT_MAX_CASES:()=>hs,WORKFLOW_CONFIGURABLE_OPERATIONS:()=>ze,WORKFLOW_CONFIGURABLE_PROVIDERS:()=>Vo,WORKFLOW_EVENT_TYPES_V2:()=>Ht,WORKFLOW_LAUNCH_MAX_INPUTS:()=>Nr,WORKFLOW_LAUNCH_PREFLIGHT_PROVIDERS:()=>za,WORKFLOW_PARALLEL_MAX_BRANCHES:()=>ha,WORKFLOW_PARALLEL_MIN_BRANCHES:()=>Oa,WORKFLOW_PLATFORM_NOTIFY_CAPABILITY:()=>tu,WORKFLOW_PLATFORM_NOTIFY_HANDLER:()=>ca,WORKFLOW_PLATFORM_NOTIFY_INPUT_SCHEMA:()=>la,WORKFLOW_PLATFORM_NOTIFY_OUTPUT_SCHEMA:()=>ua,WORKFLOW_REJECTION_NOTIFICATION_MAX_BYTES:()=>Fg,WORKFLOW_REJECTION_NOTIFICATION_SCHEMA:()=>qa,WORKFLOW_ROLE_UNION_MAX_ROLES:()=>Tg,WORKFLOW_ROUTING_MAX_BYTES:()=>Xg,WORKFLOW_ROUTING_MAX_MATCHED_RULES:()=>Yg,WORKFLOW_ROUTING_MAX_RULES:()=>Hg,WORKFLOW_SOURCE_BUNDLE_MAX_BYTES:()=>Ec,WORKFLOW_SOURCE_BUNDLE_SCHEMA:()=>Ac,WORKFLOW_STEP_DATA_COMMAND_SCHEMA:()=>up,WORKFLOW_STEP_DATA_RESOLUTION_SCHEMA:()=>Kd,WORKFLOW_TASK_PAGE_DEFINITION_MAX_BYTES:()=>Za,WORKFLOW_TASK_PAGE_MAX_BYTES:()=>Uo,WORKFLOW_TASK_PAGE_MAX_FIELDS:()=>Xa,WORKFLOW_TASK_SUBTABLE_MAX_ROWS:()=>ji,WORKFLOW_TASK_SUBTABLE_MAX_TOTAL_ROWS:()=>Wi,WorkflowTaskPageError:()=>ve,applyWorkflowTaskPageValues:()=>td,applyWorkflowTaskSubtableRows:()=>Wu,assertApplicationAgentInstructionPathV2:()=>aa,assertDevelopmentConfigurationManifest:()=>oc,assertDevelopmentConfigurationResult:()=>Sp,assertNativeRoleMembershipBatchInput:()=>pp,assertWorkflowNativeStageGuard:()=>mu,assertWorkflowNativeStagePolicy:()=>fi,assertWorkflowNativeStageSourceGuard:()=>gu,assertWorkflowOwnedSubjectCreate:()=>Ln,assertWorkflowOwnedSubjectCreateResources:()=>Gi,buildResourceWhere:()=>_c,canonicalDataBusinessIntent:()=>Ip,classifyWorkflowAdoption:()=>Up,classifyWorkflowSourceDeployment:()=>Gp,compileAdvancedWhere:()=>jn,compileApplicationAgentsV2:()=>ei,compileNativeApplicationConfiguration:()=>If,compileNativeEventAction:()=>Ei,compileNativeEventCapturePlansV2:()=>kd,compileRequiredPlatformCapabilitiesV3:()=>Dd,compileWorkflowBusinessStepHandlers:()=>So,createDevelopmentConfigurationManifest:()=>Tp,createWorkflowHumanNode:()=>cc,dataOwnedRowLimit:()=>on,dateEventProjectionEnvelopeSchemaV2:()=>Fu,dateEventProjectionFieldsV2:()=>Vi,departmentReferenceValueSchema:()=>yo,developmentBackendBase64Bytes:()=>ic,developmentBackendInvocationHeadersValid:()=>ac,developmentBackendInvocationRequestValid:()=>Wp,developmentBackendInvocationRevision:()=>$p,developmentBackendOperationMatches:()=>sc,developmentConfigurationKey:()=>Cp,editWorkflowDesignerDefinition:()=>uc,evaluateWorkflowExpression:()=>As,evaluateWorkflowTaskPageExpression:()=>Je,fieldValueSchemaForDefinition:()=>ln,formatWorkflowCompletionDeadline:()=>Tu,formatWorkflowExpression:()=>bn,formatWorkflowSupervisorChain:()=>cu,generatedCrudCapabilityOperations:()=>Ji,hasDataAuditReadPolicy:()=>kr,hasNativeParentReadPolicy:()=>ko,inspectWorkflowParallel:()=>Le,isDataAuditMetadataField:()=>Ze,isDataOwnedRowLimit:()=>Pt,isDataSystemSortField:()=>an,isDataTransactionActorAuthorityGuard:()=>bp,isDataTransactionRecordSetMatchGuard:()=>Np,isNativeDataQueryOperatorV2:()=>Qc,isNativeMultiValueFieldV2:()=>rn,isWorkflowPlatformNotify:()=>te,isWorkflowRejectionNotificationSnapshot:()=>Cu,matchesDataActorAuthorityMembership:()=>Op,materializeNativeDataQueryPathTypesV2:()=>Gl,nativeAgentFieldHintSchemaV2:()=>Zr,nativeAgentFieldSelectorV2:()=>da,nativeDataPolicyExpressionLeavesV2:()=>At,nativeDataPolicyExpressionToCnfV2:()=>ci,nativeDataQueryPathPlanV2:()=>zl,nativeFieldAggregatePlanV2:()=>al,nativeFieldColumnDefinitionV2:()=>Ol,nativeFieldDefaultSqlV2:()=>hl,nativeFieldHasDefaultV2:()=>Rl,nativeFieldIndexStatementsV2:()=>Sl,nativeFieldRequiresCreateInputV2:()=>Be,nativeFieldSequenceGrantStatementsV2:()=>Cl,nativeFieldSequenceOwnershipStatementsV2:()=>Tl,nativeFieldSequenceStatementsV2:()=>wl,nativeFieldSupportsFilterV2:()=>Fr,nativeFieldSupportsOperatorV2:()=>rl,nativeFieldSupportsSearchV2:()=>ro,nativeFieldSupportsSortV2:()=>Vt,nativeOperatorsForFieldV2:()=>$r,nativePhysicalFieldV2:()=>Xs,nativePhysicalFieldsV2:()=>bl,nativePhysicalObjectNameV2:()=>Ge,nativeScopeSourceFieldValueV2:()=>Fl,nativeScopeSourceGrantPathSupportedV2:()=>zr,nativeScopeSourceSubjectPathSupportedV2:()=>_o,nativeSubtableConstraintStatementsV2:()=>Dl,nativeUniqueKeysContractVersion:()=>Ai,nativeUniqueKeysJsonSchema:()=>Au,normalizeDataMutationGrants:()=>Do,normalizeWorkflowOwnedSubjectCreate:()=>Ju,parseDataBusinessCommandResolution:()=>yp,parseDataFieldUserCandidates:()=>nn,parseDecimalReservationLifecycle:()=>fo,parseNativeDataFieldsV2:()=>$t,parseNativeDataResourceInvariantsV2:()=>Dr,parseNativeParentReadPolicy:()=>wa,parseNativeUniqueKeys:()=>_i,parseWorkflowStepDataResolution:()=>fp,projectDataResourceView:()=>bo,projectNativeDataResourceViewV2:()=>co,projectWorkflowGraph:()=>On,projectWorkflowNodePolicy:()=>Ti,pruneWorkflowCanvasBindings:()=>jp,quoteNativeIdentifierV2:()=>ue,refreshWorkflowTaskPageFacts:()=>xu,requiresAggregateOwnedSubtableCapacity:()=>Yn,requiresDateTimeMinutePrecision:()=>eo,requiresDevelopmentBackendCredential:()=>Pp,requiresExtendedArtifactCapacity:()=>vn,requiresExtendedConfigurationBytes:()=>qo,requiresExtendedDeclarationCapacity:()=>Ko,requiresExtendedFieldCapacity:()=>Hn,requiresExtendedOwnedSubtableCapacity:()=>Xn,requiresExtendedRoleCapacity:()=>Bo,requiresHighDensityArtifactCapacity:()=>Pn,requiresOwnedSubtableMinimumRows:()=>to,requiresUserCandidateLaunchScope:()=>Gn,requiresWorkflowRoleInputSelection:()=>wi,requiresWorkflowRoleUnion:()=>Ri,resolveNativeParentReadBinding:()=>In,resolveNativeScopeSourceFieldPathV2:()=>jt,resolveWorkflowCommandHandler:()=>Du,resolveWorkflowUserCandidates:()=>Ds,resourceReferenceValueSchema:()=>Hr,selectWorkflowAssignmentRoutingRules:()=>Gu,selectWorkflowConditionalAssignment:()=>om,serializedDataBytes:()=>Mc,userCandidateScopeValue:()=>xc,userReferenceValueSchema:()=>Eo,validateAuthenticatedPublicRead:()=>pi,validateDecimalReservationLifecycles:()=>qr,validateManagedConcurrency:()=>Ur,validateNativeDataDraftStateV2:()=>Wr,validateNativeDataResourceReferencesV2:()=>Sr,validateNativeDataResourceSurfaceV2:()=>ao,validateNativeParentReadPolicies:()=>li,validateUserCandidateReferences:()=>Or,validateWorkflowAdministration:()=>Wo,validateWorkflowApprovalEmptyPolicy:()=>xo,validateWorkflowApprovedDelegation:()=>$i,validateWorkflowAssignmentRoutingBindings:()=>Ki,validateWorkflowAssignmentRoutingPolicy:()=>Rt,validateWorkflowAssignmentRoutingRules:()=>Ku,validateWorkflowAuthoringSteps:()=>ya,validateWorkflowAutomaticCc:()=>Fo,validateWorkflowBusinessStepHandlerContract:()=>su,validateWorkflowBusinessStepRequest:()=>iu,validateWorkflowBusinessStepResult:()=>Aa,validateWorkflowBusinessStepSchema:()=>pt,validateWorkflowBusinessStepSubscriptions:()=>ii,validateWorkflowBusinessSteps:()=>fn,validateWorkflowCanvasBinding:()=>fs,validateWorkflowCanvasHuman:()=>us,validateWorkflowCommandHandlers:()=>vi,validateWorkflowCompletionDeadlines:()=>Di,validateWorkflowConditionalAssignment:()=>nm,validateWorkflowConditionalAssignmentShape:()=>_r,validateWorkflowCorrections:()=>Fi,validateWorkflowDesignerCapabilities:()=>ps,validateWorkflowDesignerDocument:()=>cr,validateWorkflowHandlingNodes:()=>An,validateWorkflowInitiatorApprovalPolicy:()=>Gt,validateWorkflowInstanceCommandPolicies:()=>yi,validateWorkflowLaunchPreflight:()=>jo,validateWorkflowNodeConfigurationPatch:()=>Ru,validateWorkflowParallel:()=>_n,validateWorkflowPlatformNotify:()=>un,validateWorkflowReadability:()=>Oi,validateWorkflowRejectionNotification:()=>Li,validateWorkflowReminders:()=>pn,validateWorkflowReturnEligibility:()=>cs,validateWorkflowReturnPolicies:()=>mn,validateWorkflowRoleInputSelection:()=>hn,validateWorkflowRoleUnion:()=>It,validateWorkflowSourceBundle:()=>yc,validateWorkflowSupervisorChainBinding:()=>gt,validateWorkflowSupervisorChains:()=>_t,validateWorkflowTaskPages:()=>Sn,validateWorkflowUserCandidateBindings:()=>hr,workflowApprovalCanSkip:()=>wu,workflowApprovedDelegationRequests:()=>vu,workflowAssignmentLeaves:()=>Os,workflowAssignmentRoutingFacts:()=>qu,workflowAssignmentRoutingPolicySchema:()=>Bi,workflowAssignmentRoutingSemantic:()=>id,workflowAuthoringCatalog:()=>Wn,workflowBindingAllowsEmptyUsers:()=>Si,workflowBindingRoleCodes:()=>Ni,workflowBindingSchema:()=>fr,workflowBusinessCommandInvocationSchema:()=>Su,workflowBusinessStepFactSchema:()=>mt,workflowBusinessStepHandlerDigest:()=>Ap,workflowBusinessStepInput:()=>au,workflowBusinessStepPath:()=>Ea,workflowBusinessStepReceiptSignatureSuffix:()=>_p,workflowBusinessStepValueMatches:()=>ft,workflowCanvasBindingKey:()=>tn,workflowConditionalAssignmentFact:()=>Kn,workflowConditionalAssignmentSchema:()=>Zp,workflowDefinitionSchema:()=>hc,workflowDelegationMutationRequestSchema:()=>Qd,workflowDesignerTargets:()=>xn,workflowDesignerVariables:()=>Mp,workflowExpressionPaths:()=>qt,workflowForwardTargets:()=>gn,workflowHumanOperations:()=>ls,workflowInitiatorApprovalCanComplete:()=>Ou,workflowInstanceCommandDeadlineError:()=>yu,workflowInstanceTerminateCapabilityAllowed:()=>Eu,workflowInstanceWithdrawalReasonRequired:()=>Iu,workflowNativeStagePolicySchema:()=>_u,workflowNodeAllowedOperations:()=>bt,workflowNotificationBinding:()=>nu,workflowOperationCommentRequired:()=>Ua,workflowOperationMinimumOpinion:()=>Ot,workflowOperationOpinion:()=>nt,workflowOperationReasonRequired:()=>Ma,workflowOwnedSubjectCreateSchema:()=>zu,workflowPolicyTimestamp:()=>Ii,workflowPositionActive:()=>fu,workflowProducedEventTypes:()=>Go,workflowReturnEligibility:()=>dc,workflowReturnTargetPolicy:()=>lu,workflowReturnTargets:()=>ke,workflowRoleCodesSchema:()=>hi,workflowSourceDigestEqual:()=>Me,workflowSourceImportDrift:()=>zp,workflowSourceReferences:()=>Ic,workflowSourceStatus:()=>qp,workflowTaskPageFieldState:()=>Ui,workflowTaskPageReplayCoversInvalidation:()=>ju,workflowTaskSaveEnabled:()=>Nu,workflowTaskSubtableRows:()=>Vu,workflowVariableLabel:()=>Fa});module.exports=Vc(im);var Rs=require("node:crypto");function Wc(e){if(!e||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function Ir(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,r)=>Ir(n,`${t}[${r}]`)).join(",")}]`;if(Wc(e))return`{${Object.keys(e).filter(r=>e[r]!==void 0).sort((r,i)=>r===i?0:r<i?-1:1).map(r=>`${JSON.stringify(r)}:${Ir(e[r],`${t}.${r}`)}`).join(",")}}`;let o=e instanceof Date?"Date":e?.constructor?.name||typeof e;throw new TypeError(`Value is not JSON serializable: ${t} (${o})`)}function oe(e){return Ir(e,"$")}function ee(e){return(0,Rs.createHash)("sha256").update(oe(e)).digest("hex")}var cm=200,Ts=["text.short","uuid","option.single","resource-ref.single"],yr=/^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$/,Cs=/^[A-Za-z][A-Za-z0-9_]{0,62}$/,Ss=new Set(["__proto__","prototype","constructor"]),br=e=>!!e&&typeof e=="object"&&!Array.isArray(e)&&[Object.prototype,null].includes(Object.getPrototypeOf(e)),ws=(e,t)=>Object.keys(e).every(o=>t.includes(o)),vt=(e,t)=>typeof e=="string"&&e.length>0&&e.trim()===e&&e.length<=t,Xe=class extends Error{constructor(o,n){super(`${o}: ${n}`);this.code=o;this.pointer=n}code;pointer};function ie(e,t){throw new Xe(e,t)}function nn(e,t,o){if(e===void 0)return;["user.single","user.multiple"].includes(t)||ie("DATA_USER_CANDIDATES_FIELD_TYPE_INVALID",o),(!br(e)||!ws(e,["kind","roleCode","scope","pageSize"])||e.kind!=="app-role"||!vt(e.roleCode,128)||!yr.test(String(e.roleCode)))&&ie("DATA_USER_CANDIDATES_SOURCE_INVALID",o),e.pageSize!==void 0&&(!Number.isSafeInteger(e.pageSize)||Number(e.pageSize)<1||Number(e.pageSize)>50)&&ie("DATA_USER_CANDIDATES_PAGE_SIZE_INVALID",`${o}/pageSize`);let n;if(e.scope!==void 0){let r=e.scope;(!br(r)||!ws(r,["dimensionCode","operation","field","value","creation"])||!vt(r.dimensionCode,128)||!yr.test(String(r.dimensionCode))||!vt(r.operation,64)||!yr.test(String(r.operation))||Object.hasOwn(r,"field")===Object.hasOwn(r,"value"))&&ie("DATA_USER_CANDIDATES_SCOPE_INVALID",`${o}/scope`),r.creation!==void 0&&(r.creation!=="prospective"||!Object.hasOwn(r,"field"))&&ie("DATA_USER_CANDIDATES_SCOPE_INVALID",`${o}/scope/creation`),Object.hasOwn(r,"field")?((!vt(r.field,63)||!Cs.test(String(r.field))||Ss.has(String(r.field)))&&ie("DATA_USER_CANDIDATES_SCOPE_FIELD_INVALID",`${o}/scope/field`),n={dimensionCode:String(r.dimensionCode),operation:String(r.operation),field:String(r.field),...r.creation==="prospective"?{creation:"prospective"}:{}}):(vt(r.value,255)||ie("DATA_USER_CANDIDATES_SCOPE_VALUE_INVALID",`${o}/scope/value`),n={dimensionCode:String(r.dimensionCode),operation:String(r.operation),value:String(r.value)})}return{kind:"app-role",roleCode:String(e.roleCode),...n?{scope:n}:{},...e.pageSize===void 0?{}:{pageSize:Number(e.pageSize)}}}function Gn(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(r=>r.code===n.field)?.type==="resource-ref.single")}))}function Or(e,t,o,n){for(let[r,i]of e.entries()){let a=`${n}/${r}/userCandidates`,s=nn(i.userCandidates,i.type,a);if(s&&(t.has(s.roleCode)||ie("DATA_USER_CANDIDATES_ROLE_UNDECLARED",`${a}/roleCode`),s.scope&&!o.has(s.scope.dimensionCode)&&ie("DATA_USER_CANDIDATES_DIMENSION_UNDECLARED",`${a}/scope/dimensionCode`),s.scope?.field)){let d=e.find(c=>c.code===s.scope.field);(!d||!Ts.some(c=>c===d.type))&&ie("DATA_USER_CANDIDATES_SCOPE_FIELD_INVALID",`${a}/scope/field`)}}}function Ds(e,t,o,n){let r=e.subject.factProjection,i=typeof t.inputPath=="string"&&Object.entries(r).some(([c,l])=>(t.inputPath===c||t.inputPath.startsWith(`${c}.`))&&o.get(l)?.userCandidates!==void 0);if(t.candidateField===void 0&&!i)return;(t.provider!=="form_field_users"||!t.candidateField||!Cs.test(t.candidateField)||Ss.has(t.candidateField)||!t.inputPath||r[t.inputPath]!==t.candidateField)&&ie("WORKFLOW_USER_CANDIDATES_FIELD_BINDING_REQUIRED",n),(t.roleCode!==void 0||t.scope!==void 0||t.routing!==void 0)&&ie("WORKFLOW_USER_CANDIDATES_SOURCE_OVERRIDE_FORBIDDEN",n);let a=o.get(t.candidateField),s=a&&nn(a.userCandidates,a.type,`${n}/candidateField`);s||ie("WORKFLOW_USER_CANDIDATES_FIELD_UNDECLARED",`${n}/candidateField`);let d;if(s.scope?.field){let c=Object.entries(r).filter(([,l])=>l===s.scope.field).map(([l])=>l);c.length!==1&&ie("WORKFLOW_USER_CANDIDATES_SCOPE_PROJECTION_REQUIRED",n),d=c[0]}return{fieldCode:a.code,inputPath:t.inputPath,source:s,...d?{scopeInputPath:d}:{}}}function hr(e,t,o,n,r=new Map){for(let[i,a]of Object.entries(t.bindings))Ds(e,a,o,`${n}/${i}`);for(let[i,a]of Object.entries(e.taskPages||{})){let s=new Set(a.fields.filter(d=>d.readonly!==!0).map(d=>d.code));for(let d of a.fields){let c=o.get(d.code)?.userCandidates?.scope;if(s.has(d.code)&&c?.field&&s.has(c.field)&&ie("WORKFLOW_USER_CANDIDATES_SCOPE_WRITE_FORBIDDEN",`${n}/taskPages/${i}/${d.code}`),!s.has(d.code)||!d.subtable)continue;let l=o.get(d.code)?.subtable?.resourceCode,u=l?r.get(l):void 0;d.subtable.fields.some(p=>p.readonly!==!0&&u?.get(p.code)?.userCandidates)&&ie("WORKFLOW_USER_CANDIDATES_OWNED_FIELD_UNSUPPORTED",`${n}/taskPages/${i}/${d.code}`)}}}function xc(e,t){if(!e.scope)return;let o=e.scope.field?t[e.scope.field]:e.scope.value,n=br(o)?o.value:o;return vt(n,255)||ie("DATA_USER_CANDIDATES_SCOPE_VALUE_REQUIRED",e.scope.field||"scope"),String(n)}var Jn=200,Nr=205;function Hn(e,t=[]){return e.some(o=>o.schema.fields.length>100)||t.some(o=>Object.values(o.definition.taskPages||{}).some(n=>(n.fields?.length??0)>64)||[o.launch?.submission?.create,o.launch?.submission?.existing].some(n=>Object.keys(n?.inputs||{}).length>64))}var Ve=500,zn=500,at=1e3,Rr=2*at+16,jc=2*1024*1024,Uc=2*1024*1024;function Pt(e){return typeof e=="number"&&Number.isSafeInteger(e)&&e>=1&&e<=at}function on(e){if(e.ownedRowLimit===void 0)return zn;if(!Pt(e.ownedRowLimit))throw new Error("NATIVE_DATA_OWNED_ROW_LIMIT_INVALID");return e.ownedRowLimit}function Yn(e){return e.some(t=>(t.schema.ownedRowLimit??zn)>zn)}function Xn(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,r)=>n+r,0)>400})}function Mc(e){try{return new TextEncoder().encode(JSON.stringify(e)).byteLength}catch{return 1/0}}var $s=/^[A-Za-z][A-Za-z0-9_]{0,62}$/,Cr=/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/,Fs=["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 eo(e){return e.some(t=>t.schema.fields.some(o=>(o.type==="datetime"||o.type==="datetime-range")&&o.timePrecision==="minute"))}function to(e){return e.some(t=>t.schema.fields.some(o=>o.type==="subtable"&&(o.subtable?.minRows??0)>0))}var Bc=new Set(Fs),Vs=new Set(["option.multiple","cascade.multiple","user.multiple","department.multiple","resource-ref.multiple","file","image","subtable"]),ks=new Set(["option.single","option.multiple","cascade.single","cascade.multiple"]),Ls=new Set(["resource-ref.single","resource-ref.multiple"]),no=[{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}],ct=new Map(no.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 rn(e){return Vs.has(e)}function Be(e,t={}){return e.type!=="serial-number"&&t.system!==!0&&e.nullable===!1&&(!rn(e.type)||t.requiredHint===!0)}function $t(e,t,o=500){Array.isArray(e)||L("NATIVE_ARRAY_REQUIRED",t),e.length===0&&L("NATIVE_DATA_FIELDS_REQUIRED",t),e.length>o&&L("NATIVE_ARRAY_LIMIT_EXCEEDED",t);let n=new Set;return e.map((r,i)=>{let a=`${t}/${i}`,s=Re(r,a);Ce(s,["code","type","nullable","indexed","options","source","userCandidates","maxLength","precision","scale","exactDecimal","min","max","rangeBoundary","timePrecision","file","serial","subtable"],a);let d=Se(s.code,`${a}/code`,63);$s.test(d)||L("NATIVE_FIELD_CODE_INVALID",`${a}/code`),n.has(d)&&L("NATIVE_DATA_FIELD_DUPLICATE",`${a}/code`),n.add(d);let c=Se(s.type,`${a}/type`,32);Bc.has(c)||L("NATIVE_DATA_FIELD_TYPE_INVALID",`${a}/type`);let l=c,u=Tr(s.nullable,`${a}/nullable`),p=Tr(s.indexed,`${a}/indexed`);u===!0&&Vs.has(l)&&L("NATIVE_DATA_MULTI_FIELD_NULLABLE_INVALID",`${a}/nullable`);let m=Gc(s.options,l,a),E=zc(s.source,l,a),A=nn(s.userCandidates,l,`${a}/userCandidates`),O=Jc(s,l,a),y=Tr(s.exactDecimal,`${a}/exactDecimal`);y!==void 0&&l!=="number.decimal"&&L("NATIVE_DATA_FIELD_EXACT_DECIMAL_TYPE_INVALID",`${a}/exactDecimal`);let _=Kc(s.rangeBoundary,l,a),b=Hc(s.file,l,a),h=Yc(s.serial,l,a),f=Xc(s.subtable,l,a);return{code:d,type:l,...u===void 0?{}:{nullable:u},...p===void 0?{}:{indexed:p},...m?{options:m}:{},...E?{source:E}:{},...A?{userCandidates:A}:{},...O,...y===void 0?{}:{exactDecimal:y},..._?{rangeBoundary:_}:{},...b?{file:b}:{},...h?{serial:h}:{},...f?{subtable:f}:{}}})}function Kc(e,t,o){let n=`${o}/rangeBoundary`;if(!(t==="date-range"||t==="datetime-range")){e!==void 0&&L("NATIVE_DATA_FIELD_RANGE_BOUNDARY_TYPE_INVALID",n);return}return e!=="closed"&&e!=="half-open"&&L("NATIVE_DATA_FIELD_RANGE_BOUNDARY_REQUIRED",n),e}function Sr(e,t){Array.isArray(e)||L("NATIVE_ARRAY_REQUIRED",t);let o=new Map;e.forEach((n,r)=>{let i=`${t}/${r}`,a=Re(n,i),s=Se(a.code,`${i}/code`,64);(!Cr.test(s)||o.has(s))&&L("NATIVE_RESOURCE_CODE_INVALID",`${i}/code`);let d=Re(a.schema,`${i}/schema`);d.ownedRowLimit!==void 0&&!Pt(d.ownedRowLimit)&&L("NATIVE_DATA_OWNED_ROW_LIMIT_INVALID",`${i}/schema/ownedRowLimit`),o.set(s,{pointer:i,ownedRowLimit:on(d),fields:$t(d.fields,`${i}/schema/fields`)})});for(let[n,r]of o){let i=new Map(r.fields.map(s=>[s.code,s]));r.fields.filter(s=>s.type==="subtable").reduce((s,d)=>s+(d.subtable?.maxRows??20),0)>r.ownedRowLimit&&L("NATIVE_DATA_FIELD_SUBTABLE_AGGREGATE_MAX_ROWS_EXCEEDED",`${r.pointer}/schema/fields`),r.fields.forEach((s,d)=>{let c=`${r.pointer}/schema/fields/${d}`;if(s.source&&qc(s.source,i,o,`${c}/source`),s.subtable){let l=o.get(s.subtable.resourceCode);(!l||s.subtable.resourceCode===n)&&L("NATIVE_DATA_FIELD_SUBTABLE_TARGET_MISSING",`${c}/subtable/resourceCode`);let u=l.fields.find(m=>m.code===s.subtable?.foreignKey);(!u||u.type!=="uuid"||u.nullable!==!1)&&L("NATIVE_DATA_FIELD_SUBTABLE_FOREIGN_KEY_INVALID",`${c}/subtable/foreignKey`);let p=l.fields.find(m=>m.code===s.subtable?.orderField);(!p||p.type!=="number.integer"||p.nullable!==!1)&&L("NATIVE_DATA_FIELD_SUBTABLE_ORDER_FIELD_INVALID",`${c}/subtable/orderField`)}})}}function Dr(e,t,o){if(e===void 0)return[];(!Array.isArray(e)||e.length>20)&&L("NATIVE_DATA_RESOURCE_INVARIANTS_INVALID",o);let n=new Map(t.map(i=>[i.code,i])),r=new Set;return e.map((i,a)=>{let s=`${o}/${a}`,d=Re(i,s);Ce(d,["code","message","expression"],s);let c=Se(d.code,`${s}/code`,128);(!/^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/.test(c)||r.has(c))&&L("NATIVE_DATA_RESOURCE_INVARIANT_CODE_INVALID",`${s}/code`),r.add(c);let l=Qn(d.message,`${s}/message`,500);l!==void 0&&l.length===0&&L("NATIVE_DATA_RESOURCE_INVARIANT_MESSAGE_INVALID",`${s}/message`);let u=Re(d.expression,`${s}/expression`);if(u.kind==="nonBlankTextWhenOption"){Ce(u,["kind","optionField","optionValue","textField"],`${s}/expression`);let _=We(u.optionField,`${s}/expression/optionField`),b=We(u.textField,`${s}/expression/textField`),h=Se(u.optionValue,`${s}/expression/optionValue`,128),f=n.get(_),I=n.get(b);return(!f||!I)&&L("NATIVE_DATA_RESOURCE_INVARIANT_FIELD_UNKNOWN",`${s}/expression`),(f.type!=="option.single"||!["text.short","text.long"].includes(I.type)||!f.options?.some(R=>R.value===h))&&L("NATIVE_DATA_RESOURCE_INVARIANT_FIELD_TYPES_INVALID",`${s}/expression`),{code:c,...l===void 0?{}:{message:l},expression:{kind:"nonBlankTextWhenOption",optionField:_,optionValue:h,textField:b}}}Ce(u,["leftField","operator","rightField"],`${s}/expression`);let p=We(u.leftField,`${s}/expression/leftField`),m=We(u.rightField,`${s}/expression/rightField`),E=n.get(p),A=n.get(m);(!E||!A)&&L("NATIVE_DATA_RESOURCE_INVARIANT_FIELD_UNKNOWN",`${s}/expression`),E.type===A.type||["number.integer","number.decimal"].includes(E.type)&&["number.integer","number.decimal"].includes(A.type)||L("NATIVE_DATA_RESOURCE_INVARIANT_FIELD_TYPES_INVALID",`${s}/expression`);let y=String(u.operator);return["eq","neq","gt","gte","lt","lte"].includes(y)||L("NATIVE_DATA_RESOURCE_INVARIANT_OPERATOR_INVALID",`${s}/expression/operator`),!["eq","neq"].includes(y)&&!["number.integer","number.decimal","date","time","datetime","text.short","text.long","text.rich","serial-number","uuid"].includes(E.type)&&L("NATIVE_DATA_RESOURCE_INVARIANT_FIELD_TYPES_INVALID",`${s}/expression`),{code:c,...l===void 0?{}:{message:l},expression:{leftField:p,operator:y,rightField:m}}})}function qc(e,t,o,n){let r=o.get(e.resourceCode);r||L("NATIVE_DATA_FIELD_SOURCE_TARGET_MISSING",`${n}/resourceCode`);let i=new Map(r.fields.map(s=>[s.code,s])),a=i.get(e.labelField);(!a||!["text.short","text.long"].includes(a.type))&&L("NATIVE_DATA_FIELD_SOURCE_LABEL_INVALID",`${n}/labelField`);for(let s of["searchFields","descriptionFields","snapshotFields"])for(let d of e[s]||[])i.has(d)||L("NATIVE_DATA_FIELD_SOURCE_FIELD_MISSING",`${n}/${s}`);for(let[s,d]of(e.filterWhere||[]).entries())i.has(d.field)||L("NATIVE_DATA_FIELD_SOURCE_FILTER_FIELD_MISSING",`${n}/filterWhere/${s}/field`);for(let[s,d]of(e.filters||[]).entries())i.has(d.field)||L("NATIVE_DATA_FIELD_SOURCE_FILTER_FIELD_MISSING",`${n}/filters/${s}/field`),"binding"in d&&!t.has(d.binding.field)&&L("NATIVE_DATA_FIELD_SOURCE_BINDING_FIELD_MISSING",`${n}/filters/${s}/binding/field`)}function Gc(e,t,o){let n=`${o}/options`;if(e===void 0){ks.has(t)&&L("NATIVE_DATA_FIELD_OPTIONS_REQUIRED",n);return}(!ks.has(t)||!Array.isArray(e))&&L("NATIVE_DATA_FIELD_OPTIONS_TYPE_INVALID",n),(e.length<1||e.length>100)&&L("NATIVE_DATA_FIELD_OPTIONS_INVALID",n);let r=0,i=(a,s,d)=>{d>5&&L("NATIVE_DATA_FIELD_OPTIONS_DEPTH_EXCEEDED",s);let c=new Set;return a.map((l,u)=>{r+=1,r>1e3&&L("NATIVE_DATA_FIELD_OPTIONS_COUNT_EXCEEDED",n);let p=`${s}/${u}`,m=Re(l,p);Ce(m,["label","value","description","color","children"],p);let E=Se(m.label,`${p}/label`,500),A=Se(m.value,`${p}/value`,500);c.has(A)&&L("NATIVE_DATA_FIELD_OPTION_VALUE_DUPLICATE",`${p}/value`),c.add(A);let O=Qn(m.description,`${p}/description`,2e3),y=Qn(m.color,`${p}/color`,64),_;return m.children!==void 0&&((!t.startsWith("cascade.")||!Array.isArray(m.children))&&L("NATIVE_DATA_FIELD_OPTION_CHILDREN_INVALID",`${p}/children`),(m.children.length<1||m.children.length>100)&&L("NATIVE_DATA_FIELD_OPTION_CHILDREN_INVALID",`${p}/children`),_=i(m.children,`${p}/children`,d+1)),{label:E,value:A,...O===void 0?{}:{description:O},...y===void 0?{}:{color:y},..._?{children:_}:{}}})};return i(e,n,1)}function zc(e,t,o){let n=`${o}/source`;if(e===void 0){Ls.has(t)&&L("NATIVE_DATA_FIELD_SOURCE_REQUIRED",n);return}Ls.has(t)||L("NATIVE_DATA_FIELD_SOURCE_TYPE_INVALID",n);let r=Re(e,n);Ce(r,["kind","resourceCode","labelField","searchFields","descriptionFields","snapshotFields","filters","filterWhere","pageSize","loadMode","clearOnBindingChange"],n),r.kind!=="resource"&&L("NATIVE_DATA_FIELD_SOURCE_KIND_INVALID",`${n}/kind`);let i=Se(r.resourceCode,`${n}/resourceCode`,64);Cr.test(i)||L("NATIVE_RESOURCE_CODE_INVALID",`${n}/resourceCode`);let a=We(r.labelField,`${n}/labelField`),s=wr(r.searchFields,`${n}/searchFields`,10),d=wr(r.descriptionFields,`${n}/descriptionFields`,10),c=wr(r.snapshotFields,`${n}/snapshotFields`,50),l=dt(r.pageSize,`${n}/pageSize`,1,100),u;r.loadMode!==void 0&&(["search","all"].includes(String(r.loadMode))||L("NATIVE_DATA_FIELD_SOURCE_LOAD_MODE_INVALID",`${n}/loadMode`),u=r.loadMode);let p=vs(r.filters,`${n}/filters`),m=vs(r.filterWhere,`${n}/filterWhere`,!1);return r.clearOnBindingChange!==void 0&&typeof r.clearOnBindingChange!="boolean"&&L("NATIVE_DATA_FIELD_SOURCE_BINDING_RESET_INVALID",`${n}/clearOnBindingChange`),{kind:"resource",resourceCode:i,labelField:a,...s?{searchFields:s}:{},...d?{descriptionFields:d}:{},...c?{snapshotFields:c}:{},...p?{filters:p}:{},...m?{filterWhere:m}:{},...l===void 0?{}:{pageSize:l},...u?{loadMode:u}:{},...r.clearOnBindingChange===void 0?{}:{clearOnBindingChange:r.clearOnBindingChange}}}function vs(e,t,o=!0){if(e!==void 0)return(!Array.isArray(e)||e.length>20)&&L("NATIVE_DATA_FIELD_SOURCE_FILTERS_INVALID",t),e.map((n,r)=>{let i=`${t}/${r}`,a=Re(n,i),s=Object.prototype.hasOwnProperty.call(a,"value"),d=Object.prototype.hasOwnProperty.call(a,"binding");Ce(a,s?["field","operator","value"]:["field","operator","binding"],i),(s===d||d&&!o)&&L("NATIVE_DATA_FIELD_SOURCE_FILTER_VALUE_INVALID",i);let c=We(a.field,`${i}/field`);["eq","in"].includes(String(a.operator))||L("NATIVE_DATA_FIELD_SOURCE_FILTER_OPERATOR_INVALID",`${i}/operator`);let l=a.operator;if(s)return{field:c,operator:l,value:a.value};let u=Re(a.binding,`${i}/binding`);return Ce(u,["kind","field"],`${i}/binding`),u.kind!=="field"&&L("NATIVE_DATA_FIELD_SOURCE_BINDING_KIND_INVALID",`${i}/binding/kind`),{field:c,operator:l,binding:{kind:"field",field:We(u.field,`${i}/binding/field`)}}})}function Jc(e,t,o){let n={};if(e.maxLength!==void 0&&(["text.short","text.long","text.rich"].includes(t)||L("NATIVE_DATA_FIELD_MAX_LENGTH_TYPE_INVALID",`${o}/maxLength`),n.maxLength=Zn(e.maxLength,`${o}/maxLength`,1,1e6)),(e.precision!==void 0||e.scale!==void 0)&&((t!=="number.decimal"||e.precision===void 0)&&L("NATIVE_DATA_FIELD_DECIMAL_CONFIG_INVALID",o),n.precision=Zn(e.precision,`${o}/precision`,1,1e3),n.scale=e.scale===void 0?0:Zn(e.scale,`${o}/scale`,0,n.precision)),e.min!==void 0||e.max!==void 0){["number.integer","number.decimal"].includes(t)||L("NATIVE_DATA_FIELD_NUMERIC_BOUNDS_TYPE_INVALID",o);let r=Ps(e.min,`${o}/min`),i=Ps(e.max,`${o}/max`);t==="number.integer"&&[r,i].some(a=>a!==void 0&&!Number.isSafeInteger(a))&&L("NATIVE_DATA_FIELD_NUMERIC_BOUNDS_INVALID",o),r!==void 0&&i!==void 0&&r>i&&L("NATIVE_DATA_FIELD_NUMERIC_BOUNDS_INVALID",o),r!==void 0&&(n.min=r),i!==void 0&&(n.max=i)}return e.timePrecision!==void 0&&((!["time","datetime","datetime-range"].includes(t)||!["minute","second"].includes(e.timePrecision))&&L("NATIVE_DATA_FIELD_TIME_PRECISION_INVALID",`${o}/timePrecision`),n.timePrecision=e.timePrecision),n}function Hc(e,t,o){if(e===void 0)return;let n=`${o}/file`;["file","image","signature"].includes(t)||L("NATIVE_DATA_FIELD_FILE_TYPE_INVALID",n);let r=Re(e,n);Ce(r,["maxCount","maxSizeMb","accept"],n);let i=dt(r.maxCount,`${n}/maxCount`,1,100);t==="signature"&&i!==void 0&&i!==1&&L("NATIVE_DATA_FIELD_SIGNATURE_COUNT_INVALID",`${n}/maxCount`);let a=dt(r.maxSizeMb,`${n}/maxSizeMb`,1,1024),s;return r.accept!==void 0&&((!Array.isArray(r.accept)||r.accept.length>50)&&L("NATIVE_DATA_FIELD_FILE_ACCEPT_INVALID",`${n}/accept`),s=r.accept.map((d,c)=>Se(d,`${n}/accept/${c}`,255)),new Set(s).size!==s.length&&L("NATIVE_DATA_FIELD_FILE_ACCEPT_INVALID",`${n}/accept`)),{...i===void 0?{}:{maxCount:i},...a===void 0?{}:{maxSizeMb:a},...s===void 0?{}:{accept:s}}}function Yc(e,t,o){let n=`${o}/serial`;if(e===void 0){t==="serial-number"&&L("NATIVE_DATA_FIELD_SERIAL_REQUIRED",n);return}t!=="serial-number"&&L("NATIVE_DATA_FIELD_SERIAL_TYPE_INVALID",n);let r=Re(e,n);Ce(r,["prefix","digits","start"],n);let i=Qn(r.prefix,`${n}/prefix`,64),a=dt(r.digits,`${n}/digits`,1,32),s=dt(r.start,`${n}/start`,0,Number.MAX_SAFE_INTEGER);return{...i===void 0?{}:{prefix:i},...a===void 0?{}:{digits:a},...s===void 0?{}:{start:s}}}function Xc(e,t,o){let n=`${o}/subtable`;if(e===void 0){t==="subtable"&&L("NATIVE_DATA_FIELD_SUBTABLE_REQUIRED",n);return}t!=="subtable"&&L("NATIVE_DATA_FIELD_SUBTABLE_TYPE_INVALID",n);let r=Re(e,n);Ce(r,["resourceCode","foreignKey","orderField","minRows","maxRows"],n);let i=Se(r.resourceCode,`${n}/resourceCode`,64);Cr.test(i)||L("NATIVE_RESOURCE_CODE_INVALID",`${n}/resourceCode`);let a=We(r.foreignKey,`${n}/foreignKey`),s=We(r.orderField,`${n}/orderField`);s===a&&L("NATIVE_DATA_FIELD_SUBTABLE_ORDER_FIELD_INVALID",`${n}/orderField`);let d=dt(r.maxRows,`${n}/maxRows`,1,Ve),c=dt(r.minRows,`${n}/minRows`,0,Ve);return(c??0)>(d??20)&&L("NATIVE_DATA_FIELD_SUBTABLE_MIN_ROWS_INVALID",`${n}/minRows`),{resourceCode:i,foreignKey:a,orderField:s,...c===void 0?{}:{minRows:c},...d===void 0?{}:{maxRows:d}}}function wr(e,t,o){if(e===void 0)return;(!Array.isArray(e)||e.length>o)&&L("NATIVE_DATA_FIELD_SOURCE_FIELDS_INVALID",t);let n=e.map((r,i)=>We(r,`${t}/${i}`));return new Set(n).size!==n.length&&L("NATIVE_DATA_FIELD_SOURCE_FIELDS_INVALID",t),n}function We(e,t){let o=Se(e,t,63);return $s.test(o)||L("NATIVE_FIELD_CODE_INVALID",t),o}function Re(e,t){return(!e||typeof e!="object"||Array.isArray(e))&&L("NATIVE_OBJECT_REQUIRED",t),e}function Ce(e,t,o){let n=new Set(t);for(let r of Object.keys(e))n.has(r)||L("NATIVE_PROPERTY_UNKNOWN",`${o}/${r}`)}function Se(e,t,o){return(typeof e!="string"||e.length===0||e.length>o)&&L("NATIVE_STRING_INVALID",t),e}function Qn(e,t,o){if(e!==void 0)return(typeof e!="string"||e.length>o)&&L("NATIVE_STRING_INVALID",t),e}function Tr(e,t){if(e!==void 0)return typeof e!="boolean"&&L("NATIVE_BOOLEAN_REQUIRED",t),e}function dt(e,t,o,n){if(e!==void 0)return Zn(e,t,o,n)}function Ps(e,t){if(e!==void 0)return(typeof e!="number"||!Number.isFinite(e))&&L("NATIVE_NUMBER_REQUIRED",t),e}function Zn(e,t,o,n){return(!Number.isSafeInteger(e)||Number(e)<o||Number(e)>n)&&L("NATIVE_INTEGER_OUT_OF_RANGE",t),Number(e)}function L(e,t){throw new Ae(e,t)}var sn=["created_by","updated_by","created_at","updated_at"];function Ze(e){return sn.includes(e)}function kr(e){return sn.some(t=>Object.prototype.hasOwnProperty.call(e.fieldPolicies||{},t))}var Ws=no.map(e=>e.code);function an(e){return Ws.includes(e)}var Us=["eq","neq","gt","gte","lt","lte","contains","startsWith","endsWith","in","between","has","hasAny","hasAll","overlaps","containedBy","jsonContains","isEmpty","isNotEmpty"],Zc=new Set(Us);function Qc(e){return Zc.has(String(e))}var Lr=["eq","neq","contains","startsWith","endsWith","in","isEmpty","isNotEmpty"],dn=["eq","neq","gt","gte","lt","lte","between","in","isEmpty"],el=["eq","neq","in","isEmpty"],oo=["eq","neq","in","isEmpty","isNotEmpty"],Ft=["has","hasAny","hasAll","isEmpty","isNotEmpty"],xs=["overlaps","contains","containedBy","isEmpty"],vr=["jsonContains","isEmpty","isNotEmpty"],Pr=["isEmpty","isNotEmpty"],tl={"text.short":Lr,"text.long":Lr,"text.rich":Lr,"number.integer":dn,"number.decimal":dn,boolean:el,date:dn,time:dn,datetime:dn,"date-range":xs,"datetime-range":xs,"option.single":oo,"option.multiple":Ft,"cascade.single":Ft,"cascade.multiple":Ft,"user.single":oo,"user.multiple":Ft,"department.single":oo,"department.multiple":Ft,"resource-ref.single":oo,"resource-ref.multiple":Ft,file:Pr,image:Pr,signature:Pr,address:vr,location:vr,uuid:["eq","neq","in","isEmpty"],json:vr,"serial-number":["eq","neq","in","contains","startsWith"],subtable:[]},nl=new Set(["text.short","text.long","text.rich","option.single","user.single","department.single","resource-ref.single","serial-number"]),ol=new Set(["option.multiple","cascade.single","cascade.multiple","user.multiple","department.multiple","resource-ref.multiple","file","image","signature","address","location","json","subtable"]);function $r(e){return tl[e]}function rl(e,t){return $r(e).includes(t)}function ro(e){return nl.has(e)}function Vt(e){return!ol.has(e)}function Fr(e){return $r(e).length>0}var js=new Set(["number.integer","number.decimal"]),Ms=new Set(["text.short","text.long","number.integer","number.decimal","date","time","datetime","serial-number"]),il=new Set([...Ms,"boolean","uuid"]),sl=new Set(["option.single","user.single","department.single","resource-ref.single"]);function al(e,t){return t==="sum"||t==="avg"?js.has(e)?{valueExpression:"column",numericResult:!0}:null:t==="min"||t==="max"?Ms.has(e)?{valueExpression:"column",numericResult:js.has(e)}:null:sl.has(e)?{valueExpression:"snapshot-value",numericResult:!0}:il.has(e)?{valueExpression:"column",numericResult:!0}:null}var so=["version","maxBytes","fields"];function Wr(e,t){if(e===void 0)return;let o=Vr(e,t);Bs(o,so,t);let n=io(o.version,`${t}/version`,1,1e6),r=io(o.maxBytes,`${t}/maxBytes`,2,196608);(!n||!r)&&ge("NATIVE_DATA_DRAFT_STATE_SCHEMA_INVALID",t);let i=Vr(o.fields,`${t}/fields`),a=Object.entries(i);(!a.length||a.length>50)&&ge("NATIVE_DATA_DRAFT_STATE_FIELDS_INVALID",`${t}/fields`);for(let[s,d]of a){let c=`${t}/fields/${s}`;/^[A-Za-z][A-Za-z0-9_]{0,62}$/.test(s)||ge("NATIVE_DATA_DRAFT_STATE_FIELD_CODE_INVALID",c);let l=Vr(d,c),u=Ks(l.type,`${c}/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)||ge("NATIVE_DATA_DRAFT_STATE_FIELD_TYPE_INVALID",`${c}/type`),Bs(l,p,c),cl(l.required,`${c}/required`),u==="string"){let m=io(l.maxLength,`${c}/maxLength`,1,196608);m||ge("NATIVE_DATA_DRAFT_STATE_FIELD_INVALID",c),l.enum!==void 0&&dl(l.enum,`${c}/enum`,100,!1).some(A=>A.length>m)&&ge("NATIVE_DATA_DRAFT_STATE_FIELD_INVALID",`${c}/enum`)}else if(u==="json.object"){let m=io(l.maxBytes,`${c}/maxBytes`,2,65536);(!m||m>r)&&ge("NATIVE_DATA_DRAFT_STATE_FIELD_INVALID",c)}}}function dl(e,t,o,n){(!Array.isArray(e)||!n&&e.length===0||e.length>o)&&ge("NATIVE_DATA_SURFACE_STRING_ARRAY_INVALID",t);let r=e.map((i,a)=>Ks(i,`${t}/${a}`,255));return new Set(r).size!==r.length&&ge("NATIVE_DATA_SURFACE_STRING_ARRAY_INVALID",t),r}function Vr(e,t){return(!e||typeof e!="object"||Array.isArray(e))&&ge("NATIVE_OBJECT_REQUIRED",t),e}function Bs(e,t,o){let n=new Set(t);for(let r of Object.keys(e))n.has(r)||ge("NATIVE_PROPERTY_UNKNOWN",`${o}/${r}`)}function Ks(e,t,o){return(typeof e!="string"||e.length===0||e.length>o)&&ge("NATIVE_STRING_INVALID",t),e}function cl(e,t){e!==void 0&&typeof e!="boolean"&&ge("NATIVE_BOOLEAN_REQUIRED",t)}function io(e,t,o,n){return(!Number.isSafeInteger(e)||Number(e)<o||Number(e)>n)&&ge("NATIVE_INTEGER_INVALID",t),Number(e)}function ge(e,t){throw new Ae(e,t)}var ll=500,Ke={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:so,mobile:["enabled"]},ul={"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 ao(e,t,o){if(e===void 0)return;let n=le(e,o);xe(n,Ke.surface,o);let r=n.mutationOwner===void 0?"native":qe(n.mutationOwner,`${o}/mutationOwner`,16);["native","action","readonly","workflow","queued-command"].includes(r)||j("NATIVE_DATA_SURFACE_MUTATION_OWNER_INVALID",`${o}/mutationOwner`);let i=n.generated===void 0?{}:le(n.generated,`${o}/generated`);xe(i,Ke.generated,`${o}/generated`);for(let d of Ke.generated)jr(i[d],`${o}/generated/${d}`);if(r!=="native")for(let d of["create","update","delete"])i[d]===!0&&j("NATIVE_DATA_SURFACE_MUTATION_OWNER_CONFLICT",`${o}/generated/${d}`);let a=new Map(t.map(d=>[d.code,d])),s=le(n.fields,`${o}/fields`);for(let d of Object.keys(s))a.has(d)||j("NATIVE_DATA_SURFACE_FIELD_MISSING",`${o}/fields/${d}`);for(let d of t)Object.prototype.hasOwnProperty.call(s,d.code)||j("NATIVE_DATA_SURFACE_FIELD_REQUIRED",`${o}/fields/${d.code}`),pl(s[d.code],d,`${o}/fields/${d.code}`);for(let d of["create","update"]){let c=i[d]??r==="native",l=t.some(u=>{let p=le(s[u.code],`${o}/fields/${u.code}`);return Gs(u,p,d)});c&&!l&&j("NATIVE_DATA_SURFACE_WRITABLE_FIELDS_REQUIRED",`${o}/generated/${d}`)}if(ml(n.list,a,`${o}/list`),qs(n.form,a,`${o}/form`,"form"),qs(n.detail,a,`${o}/detail`,"detail"),n.mobile!==void 0){let d=le(n.mobile,`${o}/mobile`);xe(d,Ke.mobile,`${o}/mobile`),jr(d.enabled,`${o}/mobile/enabled`)}fl(n,t,o)}function co(e,t){let o=e.views?.find(r=>r.code===t);o||j("NATIVE_DATA_VIEW_NOT_FOUND",`/surface/views/${t}`);let n=new Map((o.sections||[]).flatMap(r=>r.fields.map(i=>[i,r.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(([r,i])=>{let a={...i};delete a.section;let s=n.get(r);return[r,{...a,...s?{section:s}:{},list:o.list.fieldOrder.includes(r)}]}))}}function fl(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((r,i)=>{let a=`${o}/views/${i}`,s=le(r,a);xe(s,["code","name","generated","list","form","detail","mobile","sections"],a);let d=qe(s.code,`${a}/code`,64);(!/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/.test(d)||n.has(d))&&j("NATIVE_DATA_VIEW_CODE_INVALID",`${a}/code`),n.add(d),qe(s.name,`${a}/name`,255),le(s.generated,`${a}/generated`),le(s.mobile,`${a}/mobile`);for(let l of["list","detail","create","update","delete"])typeof s.generated[l]!="boolean"&&j("NATIVE_DATA_VIEW_OPERATION_INVALID",`${a}/generated/${l}`);typeof s.mobile.enabled!="boolean"&&j("NATIVE_DATA_VIEW_MOBILE_INVALID",`${a}/mobile/enabled`);for(let l of["list","form","detail"]){let u=le(s[l],`${a}/${l}`),p=Wt(u.fieldOrder,`${a}/${l}/fieldOrder`,500,!0);for(let m of p){let E=e.fields[m];(!E||(E.hidden??E.system)===!0)&&j("NATIVE_DATA_VIEW_FIELD_INVALID",`${a}/${l}/fieldOrder`)}}if(s.sections!==void 0){(!Array.isArray(s.sections)||s.sections.length>100)&&j("NATIVE_DATA_VIEW_SECTIONS_INVALID",`${a}/sections`);let l=new Set;s.sections.forEach((u,p)=>{let m=`${a}/sections/${p}`,E=le(u,m);xe(E,["title","fields"],m),qe(E.title,`${m}/title`,255);for(let A of Wt(E.fields,`${m}/fields`,100,!0)){let O=e.fields[A];(!O||(O.hidden??O.system)===!0||l.has(A))&&j("NATIVE_DATA_VIEW_FIELD_INVALID",`${m}/fields`),l.add(A)}})}let c=co(e,d);if(ao(c,t,a),s.generated.create!==!1&&(e.mutationOwner||"native")==="native")for(let l of t)Be(l,e.fields[l.code])&&Gs(l,e.fields[l.code],"create")&&!s.form.fieldOrder.includes(l.code)&&j("NATIVE_DATA_VIEW_CREATE_REQUIRED_FIELD_MISSING",`${a}/form/fieldOrder`)})}function Gs(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 pl(e,t,o){let n=le(e,o);xe(n,Ke.field,o),qe(n.label,`${o}/label`,500),n.type!==t.type&&j("NATIVE_DATA_SURFACE_FIELD_TYPE_MISMATCH",`${o}/type`);let r=qe(n.widget,`${o}/widget`,64);ul[t.type].includes(r)||j("NATIVE_DATA_SURFACE_WIDGET_INCOMPATIBLE",`${o}/widget`),Al(n.section,`${o}/section`,255);for(let i of["requiredHint","system","hidden","list","searchable","sortable"])jr(n[i],`${o}/${i}`);n.searchable===!0&&!ro(t.type)&&j("NATIVE_DATA_SURFACE_SEARCH_UNSUPPORTED",`${o}/searchable`),n.sortable===!0&&!Vt(t.type)&&j("NATIVE_DATA_SURFACE_SORT_UNSUPPORTED",`${o}/sortable`);for(let i of["readCapabilities","createCapabilities","updateCapabilities"])Wt(n[i],`${o}/${i}`,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 i=Array.isArray(n.accept)?n.accept:[n.accept];Wt(i,`${o}/accept`,50,!1)}for(let i of["maxLength","precision","scale","exactDecimal","min","max","rangeBoundary","options","source","userCandidates","timePrecision","serial","subtable"])gl(n,t,i,o);_l(n,t,o)}function ml(e,t,o){if(e===void 0)return;let n=le(e,o);if(xe(n,Ke.list,o),n.actions!==void 0){let r=le(n.actions,`${o}/actions`);xe(r,["import","export"],`${o}/actions`);for(let i of["import","export"])r[i]!==void 0&&typeof r[i]!="boolean"&&j("NATIVE_DATA_SURFACE_LIST_ACTION_INVALID",`${o}/actions/${i}`)}if(n.fieldOrder!==void 0)for(let r of Wt(n.fieldOrder,`${o}/fieldOrder`,500,!0))t.has(r)||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[r,i]of[["searchableFields",ro],["filterFields",Fr]]){if(n[r]===void 0)continue;let a=Wt(n[r],`${o}/${r}`,100,!0);for(let s of a){let d=t.get(s);(!d||!i(d.type))&&j("NATIVE_DATA_SURFACE_LIST_FIELD_INVALID",`${o}/${r}`)}}if(n.defaultSort!==void 0){let r=le(n.defaultSort,`${o}/defaultSort`);xe(r,Ke.defaultSort,`${o}/defaultSort`);let i=qe(r.field,`${o}/defaultSort/field`,63),a=t.get(i);!an(i)&&(!a||!Vt(a.type))&&j("NATIVE_DATA_SURFACE_SORT_UNSUPPORTED",`${o}/defaultSort/field`),r.order!==void 0&&!["asc","desc"].includes(r.order)&&j("NATIVE_DATA_SURFACE_SORT_ORDER_INVALID",`${o}/defaultSort/order`)}}function qs(e,t,o,n){if(e===void 0)return;let r=le(e,o);if(xe(r,Ke[n],o),r.layout!==void 0&&!["flat","sections"].includes(r.layout)&&j("NATIVE_DATA_SURFACE_LAYOUT_INVALID",`${o}/layout`),r.fieldOrder!==void 0){let i=`${o}/fieldOrder`;(!Array.isArray(r.fieldOrder)||r.fieldOrder.length>t.size||r.fieldOrder.length>ll)&&j("NATIVE_DATA_SURFACE_FIELD_ORDER_INVALID",i);let a=r.fieldOrder.map((s,d)=>qe(s,`${i}/${d}`,63));new Set(a).size!==a.length&&j("NATIVE_DATA_SURFACE_FIELD_ORDER_INVALID",i),a.forEach((s,d)=>{t.has(s)||j("NATIVE_DATA_SURFACE_FIELD_ORDER_FIELD_MISSING",`${i}/${d}`)})}n==="form"&&Wr(r.draftState,`${o}/draftState`)}function gl(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}`),oe(e[o])!==oe(t[o])&&j("NATIVE_DATA_SURFACE_FIELD_PROJECTION_MISMATCH",`${n}/${o}`))}function _l(e,t,o){let n=t.file||{},r={...e.maxCount===void 0?{}:{maxCount:e.maxCount},...e.maxSizeMb===void 0?{}:{maxSizeMb:e.maxSizeMb},...e.accept===void 0?{}:{accept:xr(e.accept)}};for(let i of["maxCount","maxSizeMb","accept"]){if(r[i]===void 0&&n[i]===void 0)continue;(r[i]===void 0||n[i]===void 0)&&j("NATIVE_DATA_SURFACE_FIELD_PROJECTION_MISMATCH",`${o}/${i}`);let a=i==="accept"?xr(r[i]):r[i],s=i==="accept"?xr(n[i]):n[i];oe(a)!==oe(s)&&j("NATIVE_DATA_SURFACE_FIELD_PROJECTION_MISMATCH",`${o}/${i}`)}}function xr(e){return(Array.isArray(e)?[...e]:[e]).sort((t,o)=>{let n=String(t),r=String(o);return n===r?0:n<r?-1:1})}function Wt(e,t,o,n){(!Array.isArray(e)||!n&&e.length===0||e.length>o)&&j("NATIVE_DATA_SURFACE_STRING_ARRAY_INVALID",t);let r=e.map((i,a)=>qe(i,`${t}/${a}`,255));return new Set(r).size!==r.length&&j("NATIVE_DATA_SURFACE_STRING_ARRAY_INVALID",t),r}function le(e,t){return(!e||typeof e!="object"||Array.isArray(e))&&j("NATIVE_OBJECT_REQUIRED",t),e}function xe(e,t,o){let n=new Set(t);for(let r of Object.keys(e))n.has(r)||j("NATIVE_PROPERTY_UNKNOWN",`${o}/${r}`)}function qe(e,t,o){return(typeof e!="string"||e.length===0||e.length>o)&&j("NATIVE_STRING_INVALID",t),e}function Al(e,t,o){e!==void 0&&(typeof e!="string"||e.length>o)&&j("NATIVE_STRING_INVALID",t)}function jr(e,t){e!==void 0&&typeof e!="boolean"&&j("NATIVE_BOOLEAN_REQUIRED",t)}function j(e,t){throw new Ae(e,t)}var xt=class extends Error{constructor(o,n){super(`${o}: ${n}`);this.pointer=o;this.reason=n}pointer;reason;code="NATIVE_MANAGED_CONCURRENCY_INVALID"};function Ur(e,t,o){if(e===void 0)return;let n=(_,b)=>{throw new xt(_,b)},r=(_,b,h)=>((!_||typeof _!="object"||Array.isArray(_)||Object.keys(_).some(f=>!h.includes(f)))&&n(b,"object contains unsupported properties"),_),i=(_,b,h,f)=>{(!Number.isSafeInteger(_)||_<b||_>h)&&n(f,`expected integer ${b}..${h}`)},a=(_,b)=>{(typeof _!="string"||!/^[a-z][a-z0-9_-]{0,63}$/.test(_))&&n(b,"invalid code")},s=(_,b,h)=>((!Array.isArray(_)||_.length>b)&&n(h,"array exceeds bound"),_),d=(_,b)=>{let h=t.find(f=>f.code===_);return h||n(b,"unknown resource"),h},c=(_,b,h)=>{let f=_.schema.fields.find(I=>I.code===b);return!f&&b!=="id"&&n(h,"unknown field"),f},l=(_,b,h=!1)=>{r(_,b,Object.keys(_||{})),Object.keys(_).length>8&&n(b,"at most eight parameters");for(let[f,I]of Object.entries(_))if(a(f,b),r(I,b,["type","values","minimum","maximum","minLength","maxLength"]),I.type==="uuid")Object.keys(I).length!==1&&n(b,"uuid has no options");else if(h&&I.type==="boolean")r(I,b,["type"]);else if(h&&I.type==="string"&&I.values===void 0)r(I,b,["type","minLength","maxLength"]),i(I.maxLength,1,256,b),I.minLength!==void 0&&i(I.minLength,0,I.maxLength,b);else if(I.type==="string"){r(I,b,["type","values"]);let R=s(I.values,100,b);(!R.length||R.some(w=>typeof w!="string"||w.length>128)||new Set(R).size!==R.length)&&n(b,"finite string values required")}else I.type==="integer"?(r(I,b,["type","minimum","maximum"]),i(I.minimum,0,1e6,b),i(I.maximum,I.minimum,I.minimum+1e3,b)):n(b,"unsupported parameter type")},u=(_,b,h,f=!1)=>{r(_,h,["from","key","value"]),!(_.from==="input"&&Object.keys(_).length===2&&Object.hasOwn(b,_.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(h,"invalid binding"))},p=(_,b,h)=>{u(_,b,h),!(_.from==="input"&&b[_.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(h,"record and allocation identifiers require a UUID binding"))},m=(_,b,h)=>{u(_,b,h),!(_.from==="input"&&b[_.key].type==="integer"&&b[_.key].minimum>=1)&&(_.from==="literal"&&Number.isSafeInteger(_.value)&&_.value>=1||n(h,"expectedRevision requires a positive integer binding"))},E="/data/concurrency";JSON.stringify(e).length>131072&&n(E,"declaration exceeds 128 KiB");let A=r(e,E,["version","admission","reads","quotas","commands"]);A.version!==1&&n(E,"unsupported version"),r(A.admission,E,["perSecond","burst","maxInFlight"]),i(A.admission.perSecond,1,1e3,E),i(A.admission.burst,1,1e3,E),i(A.admission.maxInFlight,1,1e3,E);let O=(_,b)=>{let h=new Set;for(let f of _)a(f?.code,b),h.has(f.code)&&n(b,"duplicate code"),h.add(f.code)};O(s(A.reads,32,E),E),O(s(A.quotas,16,E),E),O(s(A.commands,32,E),E);for(let _ of A.reads){let b=`${E}/reads/${_.code}`;r(_,b,["code","resourceCode","parameters","select","where","limit","scope","freshSeconds","staleSeconds","maxKeys","sourcePerSecond","dependencies"]);let h=d(_.resourceCode,b);l(_.parameters,b),["subject","application"].includes(_.scope)||n(b,"invalid cache scope"),_.scope==="application"&&h.dataPolicyCode&&n(b,"shared cache cannot bypass a row policy");let f=s(_.select,32,b);f.length||n(b,"select required"),f.forEach(R=>c(h,R,b));let I=s(_.dependencies,64,b);I.forEach(R=>c(h,R,b));for(let R of s(_.where||[],8,b))r(R,b,["field","value"]),c(h,R.field,b),u(R.value,_.parameters,b),_.scope==="application"&&R.value.from==="actor"&&n(b,"actor requires subject cache"),I.includes(R.field)||n(b,"filter dependency missing");f.some(R=>!I.includes(R))&&n(b,"selected field dependency missing"),i(_.limit,1,100,b),i(_.freshSeconds,1,300,b),i(_.staleSeconds,0,300,b),i(_.maxKeys,1,1e4,b),i(_.sourcePerSecond,1,20,b)}for(let _ of A.quotas){let b=`${E}/quotas/${_.code}`;r(_,b,["code","sourceResource","capacityField","allocationResource","allocationField","reservationSeconds"]);let h=d(_.sourceResource,b),f=d(_.allocationResource,b);c(h,_.capacityField,b)?.type!=="number.integer"&&n(b,"capacity must be an integer"),(c(f,_.allocationField,b)?.type!=="uuid"||c(f,_.allocationField,b)?.nullable!==!1)&&n(b,"allocation reference must be a uuid"),f.surface?.mutationOwner!=="queued-command"&&n(b,"allocation model must be command owned"),_.reservationSeconds!==void 0&&i(_.reservationSeconds,10,86400,b)}new Set(A.quotas.map(_=>_.allocationResource)).size!==A.quotas.length&&n(E,"an allocation model has exactly one pool owner");for(let _ of A.commands){let b=`${E}/commands/${_.code}`;r(_,b,["code","mode","intake","execution","capability","parameters","resourceKey","admission","deadlineSeconds","guards","operations","quota"]),_.mode!==void 0&&!["permit","durable"].includes(_.mode)&&n(b,"unsupported mode");let h=_.mode==="durable";if(l(_.parameters,b,h),u(_.resourceKey,_.parameters,b),o.some(f=>f.code===_.capability)||n(b,"command capability must be declared"),r(_.admission,b,["perSecond","burst","maxInFlight","maxQueue","maxWaitSeconds","permitSeconds"]),i(_.admission.perSecond,1,A.admission.perSecond,b),i(_.admission.burst,1,A.admission.burst,b),i(_.admission.maxInFlight,1,A.admission.maxInFlight,b),i(_.admission.maxQueue,1,1e4,b),i(_.admission.maxWaitSeconds,1,3600,b),(!h||_.admission.permitSeconds!==void 0)&&i(_.admission.permitSeconds,5,60,b),i(_.deadlineSeconds,10,3600,b),h){(_.operations!==void 0||_.guards!==void 0||_.quota!==void 0)&&n(b,"backend-plan does not accept static operations, guards or quota"),r(_.intake,b,["perSecond","burst","maxInFlight"]);for(let R of["perSecond","burst","maxInFlight"])i(_.intake[R],1,1e3,b);let f=r(_.execution,b,["kind","handlerCode","timeoutMs","resources","directory"]);f.kind!=="backend-plan"&&n(b,"durable requires backend-plan"),a(f.handlerCode,b),i(f.timeoutMs,100,3e4,b);let I=s(f.resources,32,b);I.length||n(b,"execution resources required"),new Set(I.map(R=>R.resourceCode)).size!==I.length&&n(b,"duplicate execution resource");for(let R of I){r(R,b,["resourceCode","readFields","writeOperations","writeFields"]);let w=d(R.resourceCode,b);for(let S of["readFields","writeFields"]){let P=s(R[S],64,b);new Set(P).size!==P.length&&n(b,"duplicate field"),P.forEach(F=>{S==="readFields"&&ct.has(F)||c(w,F,b)})}let T=s(R.writeOperations,3,b);(new Set(T).size!==T.length||T.some(S=>!["create","update","increment"].includes(S)))&&n(b,"unsupported execution operation"),R.writeFields.some(S=>["id","revision","created_by","updated_by","created_at","updated_at"].includes(S))&&n(b,"record metadata is platform owned"),!T.length&&R.writeFields.length&&n(b,"write fields require an operation"),T.length&&!R.writeFields.length&&n(b,"write operations require fields"),A.quotas.some(S=>S.allocationResource===R.resourceCode)&&T.length&&n(b,"allocation references remain owned by their pool command")}if(f.directory!==void 0){r(f.directory,b,["mode","fields"]),f.directory.mode!=="current-initiator"&&n(b,"only current initiator allowed");let R=s(f.directory.fields,5,b);(!R.length||new Set(R).size!==R.length||R.some(w=>!["displayName","employeeNumber","primaryDepartment","departments","phone"].includes(w)))&&n(b,"unsupported directory fields")}continue}(_.execution!==void 0||_.intake!==void 0)&&n(b,"execution and intake require durable mode");for(let f of s(_.guards||[],8,b)){r(f,b,["resourceCode","id","conditions"]);let I=d(f.resourceCode,b);p(f.id,_.parameters,b);for(let R of s(f.conditions,16,b)){r(R,b,["kind","field","operator","value"]);let w=c(I,R.field,b);["eq","neq","lt","lte","gt","gte"].includes(R.operator)||n(b,"unsupported guard"),R.kind==="database-now"?(w?.type!=="datetime"||!["lt","lte","gt","gte"].includes(R.operator)||R.value!==void 0)&&n(b,"database-now requires datetime and an ordering operator"):(R.kind!==void 0&&R.kind!=="value"&&n(b,"unsupported condition kind"),u(R.value,_.parameters,b))}}for(let f of s(_.operations,8,b)){r(f,b,["operation","resourceCode","id","expectedRevision","data"]);let I=d(f.resourceCode,b);I.surface?.mutationOwner!=="queued-command"&&n(b,"command mutations require command owned models");let R=A.quotas.find(w=>w.allocationResource===f.resourceCode);R&&(f.operation==="create"?_.quota?.action!=="allocate"||_.quota.pool!==R.code:Object.hasOwn(f.data||{},R.allocationField))&&n(b,"allocation references are owned by their pool command"),["create","update"].includes(f.operation)||n(b,"unsupported operation"),f.operation==="update"?(p(f.id,_.parameters,b),m(f.expectedRevision,_.parameters,b)):(f.id!==void 0||f.expectedRevision!==void 0)&&n(b,"create has no caller supplied id/revision"),r(f.data,b,Object.keys(f.data||{})),Object.keys(f.data).length>32&&n(b,"too many fields");for(let[w,T]of Object.entries(f.data))w==="id"&&n(b,"record identifiers are platform owned"),c(I,w,b),u(T,_.parameters,b,_.quota?.action==="allocate")}if(_.quota){let f=r(_.quota,b,["pool","action","units","mode","allocation"]),I=A.quotas.find(R=>R.code===f.pool);I||n(b,"unknown quota pool"),p(_.resourceKey,_.parameters,b),f.action==="allocate"?(r(f,b,["pool","action","units","mode"]),i(f.units,1,1e3,b),(!["committed","reserved"].includes(f.mode)||f.mode==="reserved"&&!I.reservationSeconds)&&n(b,"invalid allocation mode"),(_.operations.length!==1||_.operations[0].operation!=="create"||_.operations[0].resourceCode!==I.allocationResource||_.operations[0].data[I.allocationField]?.from!=="allocation")&&n(b,"allocation must atomically create its bound business record")):["confirm","release"].includes(f.action)?(r(f,b,["pool","action","allocation"]),p(f.allocation,_.parameters,b),_.operations.length&&n(b,"lifecycle owns allocation state; business reference remains immutable")):n(b,"invalid quota action")}else _.operations.length||n(b,"operations required")}let y=A.commands.filter(_=>_.mode==="durable").map(_=>_.execution.handlerCode);return new Set(y).size!==y.length&&n(E,"handler code must be unique"),JSON.parse(JSON.stringify(A))}var lt=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"},Kr=["parentTransitions","childTransitions","fulfilledChildStatuses","lockedParentStatuses"],zs=["amountFieldCode","currencyFieldCode","relationFieldCode","parentFieldCode","rootFieldCode","statusFieldCode","parentRelationValue","childRelationValue"],uo=e=>!!(e&&typeof e=="object"&&!Array.isArray(e)),lo=e=>Array.isArray(e)?e.filter(uo):[],je=(e,t)=>{throw new lt(e,t)},Mr=e=>typeof e=="string"&&/^[A-Za-z0-9._:-]{1,128}$/.test(e),Br=(e,t)=>e<t?-1:e>t?1:0;function fo(e,t="/decimalReservationLifecycle"){if(e===void 0)return;if(!uo(e)||Object.keys(e).some(r=>!Kr.includes(r))||Kr.some(r=>!Object.prototype.hasOwnProperty.call(e,r)))return je(t,"\u5FC5\u987B\u5B8C\u6574\u58F0\u660E\u56DB\u9879\u89C4\u5219\uFF0C\u4E0D\u80FD\u5305\u542B\u672A\u77E5\u5C5E\u6027");let o=r=>{let i=e[r];if(!Array.isArray(i)||i.length>64)return je(`${t}/${r}`,"\u72B6\u6001\u8FB9\u6700\u591A 64 \u6761");let a=new Set;return i.map((s,d)=>{let c=`${t}/${r}/${d}`;if(!uo(s)||Object.keys(s).some(u=>u!=="from"&&u!=="to")||!Mr(s.from)||!Mr(s.to)||s.from===s.to)return je(c,"\u72B6\u6001\u8FB9\u5FC5\u987B\u5305\u542B\u4E0D\u540C\u7684\u6709\u6548 from/to");let l=JSON.stringify([s.from,s.to]);return a.has(l)?je(c,"\u72B6\u6001\u8FB9\u4E0D\u80FD\u91CD\u590D"):(a.add(l),{from:s.from,to:s.to})}).sort((s,d)=>Br(s.from,d.from)||Br(s.to,d.to))},n=r=>{let i=e[r];return!Array.isArray(i)||i.length<1||i.length>16||i.some(a=>!Mr(a))||new Set(i).size!==i.length?je(`${t}/${r}`,"\u72B6\u6001\u96C6\u5408\u5FC5\u987B\u5305\u542B 1 \u5230 16 \u4E2A\u4E0D\u91CD\u590D\u7684\u6709\u6548\u72B6\u6001"):[...i].sort(Br)};return{parentTransitions:o("parentTransitions"),childTransitions:o("childTransitions"),fulfilledChildStatuses:n("fulfilledChildStatuses"),lockedParentStatuses:n("lockedParentStatuses")}}function qr(e,t,o="/config/data/resources"){lo(e).forEach((n,r)=>{let i=`${o}/${r}/decimalReservationLifecycle`,a=fo(n.decimalReservationLifecycle,i);if(!a)return;let s=lo(t).map(u=>u.platformAccess?.decimalReservation).filter(u=>uo(u)&&u.resourceCode===n.code),d=s.find(u=>u.mode==="reserve");if(!d)return je(i,"\u9700\u8981\u540C\u8D44\u6E90\u5DF2\u58F0\u660E\u7684 reserve \u52A8\u4F5C\u6620\u5C04");if(zs.some(u=>typeof d[u]!="string")||s.some(u=>zs.some(p=>u[p]!==d[p])))return je(i,"\u540C\u8D44\u6E90\u989D\u5EA6\u52A8\u4F5C\u7684\u5B57\u6BB5\u6620\u5C04\u5FC5\u987B\u4E00\u81F4");let c=lo(n.schema?.fields).find(u=>u.code===d.statusFieldCode);if(c?.type!=="option.single")return je(i,"\u989D\u5EA6\u72B6\u6001\u5B57\u6BB5\u5FC5\u987B\u4E3A option.single");let l=new Set(lo(c.options).map(u=>u.value));for(let u of Kr)if((u==="parentTransitions"||u==="childTransitions"?a[u].flatMap(m=>[m.from,m.to]):a[u]).some(m=>!l.has(m)))return je(`${i}/${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=>a.lockedParentStatuses.includes(String(p)))))return je(`${i}/lockedParentStatuses`,"\u9501\u5B9A\u7236\u72B6\u6001\u4E0D\u80FD\u5141\u8BB8\u65B0\u9884\u7559")})}var Hs=require("crypto");var Gr=new Set(["option.single","user.single","department.single","resource-ref.single"]),El=new Set(["option.multiple","cascade.single","cascade.multiple","user.multiple","department.multiple","resource-ref.multiple","address","location","json"]),Ys=new Set(["option.multiple","cascade.single","cascade.multiple","user.multiple","department.multiple","resource-ref.multiple","file","image"]),Il=new Set(["option.single","user.single","department.single","resource-ref.single","signature","address","location"]),yl=new Set([...Gr,...Ys,"signature","address","location","json"]);function bl(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=>Xs(n,o.has(n.code))).sort((n,r)=>n.code.localeCompare(r.code))}function Xs(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:Ll(e),index:kl(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 Ol(e,t){if(t.type==="subtable")return null;let o=ue(t.code),n=Zs(e,t),r=[n?` DEFAULT ${n}`:"",vl(o,t),Nl(o,t)].join("");return`${o} ${t.storage}${r}`}function hl(e,t){return Zs(e,t)}function Nl(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 Rl(e){return e.type==="serial-number"||rn(e.type)&&e.type!=="subtable"}function wl(e,t){return t.filter(o=>o.type==="serial-number").map(o=>{let n=mo(e,o.code),r=o.serial?.start??1;return`CREATE SEQUENCE IF NOT EXISTS ${n} AS bigint MINVALUE ${r} START WITH ${r} CACHE 1`})}function Tl(e,t){let o=po(e);return t.filter(n=>n.type==="serial-number").map(n=>`ALTER SEQUENCE ${mo(e,n.code)} OWNED BY ${o}.${ue(n.code)}`)}function Cl(e,t){return t.filter(o=>o.type==="serial-number").map(o=>`GRANT USAGE, SELECT ON SEQUENCE ${mo(e,o.code)} TO "openxiangda_data_api"`)}function Sl(e,t){let o=po(e),n=[];for(let r of t){if(r.type==="subtable")continue;let i=ue(r.code),a=ue(Ge("idx",e,r.code,r.index));switch(r.index){case"btree":n.push(`CREATE INDEX IF NOT EXISTS ${a} ON ${o} (${i})`);break;case"btree-snapshot-expressions":{let s=ue(Ge("idx",e,r.code,"snapshot-value")),d=ue(Ge("idx",e,r.code,"snapshot-label"));n.push(`CREATE INDEX IF NOT EXISTS ${s} ON ${o} ((${i} ->> 'value'))`,`CREATE INDEX IF NOT EXISTS ${d} ON ${o} ((${i} ->> 'label'))`);break}case"gin-jsonb-path":n.push(`CREATE INDEX IF NOT EXISTS ${a} ON ${o} USING GIN (${i} jsonb_path_ops)`);break;case"gist-range":n.push(`CREATE INDEX IF NOT EXISTS ${a} ON ${o} USING GIST (${i})`);break;case"gin-trigram":{let s=Gr.has(r.type)?`((${i} ->> 'label')) gin_trgm_ops`:`${i} gin_trgm_ops`;n.push(`CREATE INDEX IF NOT EXISTS ${a} ON ${o} USING GIN (${s})`);break}case"none":break}if(r.type==="serial-number"){let s=ue(Ge("uidx",e,r.code,"serial"));n.push(`CREATE UNIQUE INDEX IF NOT EXISTS ${s} ON ${o} (${i})`)}}return n}function Dl(e,t,o,n){let r=po(e),i=po(t),a=ue(Ge("uidx",e,"environment_id","subtable-parent")),s=ue(Ge("idx",t,o,n,"subtable-child")),d=ue(Ge("fk",t,o,e)),c=ue(o),l=ue(n);return[`CREATE UNIQUE INDEX IF NOT EXISTS ${a} ON ${r} ("tenant_id", "app_code", "environment_key", "id")`,`CREATE INDEX IF NOT EXISTS ${s} ON ${i} ("tenant_id", "app_code", "environment_key", ${c}, ${l}, "id")`,`DO $native_subtable$ BEGIN
2
2
  ALTER TABLE ${i}
3
3
  ADD CONSTRAINT ${d}
4
4
  FOREIGN KEY ("tenant_id", "app_code", "environment_key", ${c})
5
5
  REFERENCES ${r} ("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 Ke(e,...t){return`${e}_${(0,$s.createHash)("sha256").update(t.join(":")).digest("hex").slice(0,32)}`}function ue(e){if(!/^[A-Za-z_][A-Za-z0-9_]{0,62}$/.test(e))throw new Error("OPENXIANGDA_NATIVE_IDENTIFIER_INVALID");return`"${e}"`}function fl(e,t){return e.type==="subtable"?"none":t?"gin-trigram":e.indexed?["date-range","datetime-range"].includes(e.type)?"gist-range":Lr.has(e.type)?"btree-snapshot-expressions":Qc.has(e.type)?"gin-jsonb-path":"btree":"none"}function pl(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 tl.has(e.type),"jsonb"}}function xs(e,t){if(Xt(t.type)&&t.type!=="subtable")return"'[]'::jsonb";if(t.type!=="serial-number")return"";let o=Ls(t.serial?.prefix||""),n=t.serial?.digits??6;return`(${o} || lpad(nextval(${Ls(so(e,t.code))})::text, ${n}, '0'))`}function ml(e,t){return Vs.has(t.type)?` CHECK (${e} IS NULL OR jsonb_typeof(${e}) = 'array')`:el.has(t.type)?` CHECK (${e} IS NULL OR jsonb_typeof(${e}) = 'object')`:""}function io(e){return`"app_data".${ue(e)}`}function so(e,t){let o=Ke("seq",e,t);return`"app_data".${ue(o)}`}function Ls(e){return`'${e.replace(/'/g,"''")}'`}var Ws=new Set(["option.single","option.multiple","user.single","user.multiple","department.single","department.multiple","resource-ref.single","resource-ref.multiple"]),gl=new Set([...Ws,"cascade.single","cascade.multiple","file","image","signature","address","location","json"]),js=/^[A-Za-z][A-Za-z0-9_]{0,62}$/,_l=new Set(["__proto__","prototype","constructor"]),ao=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 Pt(e,t){let o=Us(e);if(!o)return null;let n=t.get(o[0]);if(!n)return null;let r=o.slice(1).join(".")||void 0;return{field:n,...r?{valuePath:r}:{}}}function co(e){return!!(e&&e.field.type==="user.single"&&e.valuePath==="value")}function $r(e,t,o){if(!e||!t||!El(e))return!1;let{field:n,valuePath:r}=e;if(!r)return t.valueType==="uuid"?n.type==="uuid":["text.short","text.long","serial-number"].includes(n.type);if(r==="value")return!(t.valueSourceResourceCode&&n.type.startsWith("resource-ref.")&&n.source?.resourceCode!==t.valueSourceResourceCode);let i=r.slice(9),s=o.get(n.source?.resourceCode||"")?.get(i)?.type;return t.valueType==="uuid"?s==="uuid":["text.short","text.long","serial-number"].includes(s||"")}function Al(e,t){let o=Us(t);if(!o)throw new ao(String(t||""));let n=e;for(let r of o){if(!n||typeof n!="object"||!Object.prototype.hasOwnProperty.call(n,r))return;n=n[r]}return n}function El(e){let{field:t,valuePath:o}=e;if(!o)return!gl.has(t.type);if(o==="value")return Ws.has(t.type);if(!o.startsWith("snapshot."))return!1;let n=o.slice(9);return js.test(n)&&t.type.startsWith("resource-ref.")&&!!t.source?.snapshotFields?.includes(n)}function Us(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=>!js.test(o)||_l.has(o))||t.length===2&&t[1]!=="value"||t.length===3&&t[1]!=="snapshot"?null:t}var Il=new Set(["option.single","user.single","department.single","resource-ref.single"]),yl=new Set(["text.short","text.long","text.rich","number.integer","number.decimal","boolean","date","time","datetime","uuid","serial-number"]),bl=new Set(["value","label","description","color"]),Ol=new Set(["avatarUrl","employeeNo","title","mobile","email"]),hl=new Set(["fullPath","parent.value","parent.label"]),Nl=new Set(["country.value","country.label","province.value","province.label","city.value","city.label","district.value","district.label","street.value","street.label","detail","fullAddress"]),Rl=new Set(["longitude","latitude","accuracy"]),wl=new Set(["address","name","province","city","district","source"]);function Tl(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 r=Sl(n,t);if(!Object.keys(r).length)return n;let i={...n};return Object.defineProperty(i,"queryPathTypes",{configurable:!1,enumerable:!1,writable:!1,value:Object.freeze(r)}),i})}}))}function Cl(e,t){if(Il.has(e.type)&&bl.has(t)||e.type==="user.single"&&Ol.has(t)||e.type==="department.single"&&hl.has(t))return tn(t);if(e.type==="resource-ref.single"){let o=e.queryPathTypes?.[t];return o?{parts:t.split("."),type:o}:null}if(e.type==="address"&&Nl.has(t))return tn(t);if(e.type==="location"){if(Rl.has(t))return{parts:[t],type:"number.decimal"};if(wl.has(t))return tn(t);if(t==="capturedAt")return{parts:[t],type:"datetime"}}return null}function Sl(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 r=o.get(n);return r?[[`snapshot.${n}`,yl.has(r.type)?r.type:"json"]]:[]})):{}}function tn(e){return{parts:e.split("."),type:"text.short"}}var fo={type:"string",minLength:1},Re={type:"object",additionalProperties:!1,required:["label","value"],properties:{label:{type:"string",minLength:1,maxLength:500},value:{type:"string",minLength:1,maxLength:500},description:{type:"string",maxLength:2e3},color:{type:"string",maxLength:64}}},po={type:"object",additionalProperties:!1,required:["label","value"],properties:{...Re.properties,fullPath:{type:"string",maxLength:4e3},path:{type:"array",maxItems:20,items:Re},parent:Re}},uo={type:"object",additionalProperties:!1,required:["label","value"],properties:{...Re.properties,avatarUrl:{type:"string",maxLength:4e3},employeeNo:{type:"string",maxLength:200},title:{type:"string",maxLength:500},mobile:{type:"string",maxLength:100},email:{type:"string",maxLength:500},departments:{type:"array",maxItems:20,items:po}}},Fr={type:"object",additionalProperties:!1,required:["label","value","resourceCode"],properties:{...Re.properties,resourceCode:{type:"string",pattern:"^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"},snapshot:{type:"object",maxProperties:50,additionalProperties:!0}}},lo={type:"object",additionalProperties:!1,required:["schemaVersion","id","name","size","contentType"],properties:{schemaVersion:{const:"openxiangda.data-file-ref/v2"},id:fo,name:{type:"string",minLength:1,maxLength:1e3},size:{type:"integer",minimum:0},contentType:{type:"string",minLength:1,maxLength:500}}},Dl={type:"object",additionalProperties:!1,required:["id","name","size","contentType"],properties:{id:fo,name:{type:"string",minLength:1,maxLength:1e3},size:{type:"integer",minimum:0},contentType:{type:"string",minLength:1,maxLength:500}}},Ms={type:"object",additionalProperties:!1,required:["start","end"],properties:{start:fo,end:fo}},Vr={type:"array",maxItems:100,items:Re},kl={longitude:{type:"number",minimum:-180,maximum:180},latitude:{type:"number",minimum:-90,maximum:90},address:{type:"string",maxLength:8e3},name:{type:"string",maxLength:2e3},province:{type:"string",maxLength:500},city:{type:"string",maxLength:500},district:{type:"string",maxLength:500},accuracy:{type:"number",minimum:0},source:{enum:["browser","dingTalk"]},capturedAt:{type:"string",format:"date-time"}},Bs={"text.short":{type:"string",maxLength:1e6},"text.long":{type:"string",maxLength:1e6},"text.rich":{type:"string",maxLength:1e6},"number.integer":{type:"integer"},"number.decimal":{type:"number"},boolean:{type:"boolean"},date:{type:"string",pattern:"^\\d{4}-\\d{2}-\\d{2}$"},time:{type:"string",pattern:"^(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d)?$"},datetime:{type:"string",format:"date-time"},"date-range":Ms,"datetime-range":Ms,"option.single":Re,"option.multiple":Vr,"cascade.single":Vr,"cascade.multiple":{type:"array",maxItems:100,items:Vr},"user.single":uo,"user.multiple":{type:"array",maxItems:100,items:uo},"department.single":po,"department.multiple":{type:"array",maxItems:100,items:po},"resource-ref.single":Fr,"resource-ref.multiple":{type:"array",maxItems:100,items:Fr},image:{type:"array",maxItems:100,items:{...lo,required:[...lo.required,"width","height","thumbnailUrl","previewUrl"],properties:{...lo.properties,width:{type:"integer",minimum:1},height:{type:"integer",minimum:1},thumbnailUrl:{type:"string",maxLength:4e3},previewUrl:{type:"string",maxLength:4e3}}}},signature:{type:"object",additionalProperties:!1,required:["file","signedAt","hash"],properties:{file:Dl,signer:uo,signedAt:{type:"string",format:"date-time"},points:{type:"array",maxItems:2e4,items:{type:"object",additionalProperties:!1,required:["x","y","t"],properties:{x:{type:"number"},y:{type:"number"},t:{type:"number"}}}},hash:{type:"string",pattern:"^[0-9a-f]{64}$"}}},address:{type:"object",additionalProperties:!1,properties:{country:Re,province:Re,city:Re,district:Re,street:Re,detail:{type:"string",maxLength:4e3},fullAddress:{type:"string",maxLength:8e3}}},location:{type:"object",additionalProperties:!1,required:["source","longitude","latitude"],properties:kl},uuid:{type:"string",format:"uuid"},json:{},file:{type:"array",maxItems:100,items:lo},"serial-number":{type:"string",minLength:1,maxLength:255},subtable:{type:"array",maxItems:$e,items:{type:"object",additionalProperties:!0}}};function nn(e){if(e.type==="number.decimal"&&e.exactDecimal===!0){let r=e.precision,i=e.scale;if(typeof r=="number"&&typeof i=="number"&&Number.isInteger(r)&&Number.isInteger(i)&&r>=1&&i>=0&&i<=r){let a=Math.max(1,r-i),s=i>0?`(?:\\.[0-9]{1,${i}})?`:"";return{type:"string",pattern:`^-?(?:0|[1-9][0-9]{0,${a-1}})${s}$`,maxLength:a+(i>0?i+1:0)+1}}return{type:"string",pattern:"^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"}}let t=JSON.parse(JSON.stringify(Bs[e.type]));if(e.type!=="date-range"&&e.type!=="datetime-range")return t;if(!["closed","half-open"].includes(String(e.rangeBoundary)))throw new Error("DATA_RESOURCE_FIELD_RANGE_BOUNDARY_REQUIRED");let o=e.rangeBoundary;t["x-openxiangda-range-boundary"]=o;let n=e.type==="date-range"?{type:"string",pattern:"^\\d{4}-\\d{2}-\\d{2}$"}:{type:"string",format:"date-time"};return t.properties={start:n,end:n},t.description=o==="closed"?"Closed interval: start <= end; both start and end are included.":"Half-open interval: start < end; start is included and end is excluded.",t}function mo(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(s=>[s,a.title]))),{views:r,...i}=e;return{...i,generated:o.generated,list:o.list,form:o.form,detail:o.detail,mobile:o.mobile,fields:Object.fromEntries(Object.entries(e.fields).map(([a,s])=>{let{section:d,...c}=s,l=n.get(a);return[a,{...c,...l?{section:l}:{},list:o.list.fieldOrder?.includes(a)??!1}]}))}}var Ur=Object.freeze({agents:20,tasks:20,fields:20,instructions:16e3,instructionBytes:64e3,arrayItems:50,pages:10}),Eo=class extends Error{constructor(o,n,r){super(`${o}: ${n}: ${r}`);this.code=o;this.pointer=n;this.name="NativeApplicationAgentContractError"}code;pointer};function q(e,t,o){throw new Eo(`NATIVE_APPLICATION_AGENT_${e}`,t,o)}function xr(e,t){return(!e||typeof e!="object"||Array.isArray(e))&&q("OBJECT_REQUIRED",t,"\u9700\u8981\u5BF9\u8C61"),e}function Wr(e,t,o){for(let n of Object.keys(e))t.includes(n)||q("PROPERTY_UNSUPPORTED",`${o}/${n}`,"\u672A\u77E5\u5C5E\u6027")}function Xe(e,t,o){return(typeof e!="string"||!e.trim()||e.length>t)&&q("TEXT_INVALID",o,`\u9700\u8981\u975E\u7A7A\u5B57\u7B26\u4E32\uFF0C\u6700\u591A ${t} \u5B57\u7B26`),e}function go(e,t){let o=Xe(e,100,t);return/^[a-z][a-z0-9]*(?:[-.][a-z0-9]+)*$/.test(o)||q("CODE_INVALID",t,"\u9700\u8981\u7A33\u5B9A\u7F16\u7801"),o}function _o(e,t,o,n){if(e===void 0)return[];(!Array.isArray(e)||e.length>t)&&q("ARRAY_LIMIT",n,`\u6700\u591A ${t} \u9879`);let r=e.map((i,a)=>Xe(i,o,`${n}/${a}`));return new Set(r).size!==r.length&&q("DUPLICATE",n,"\u4E0D\u80FD\u91CD\u590D"),r}function zs(e,t="/agents/instructions/file"){let o=Xe(e,500,t),n=o.split("/");return(!/\.(md|txt)$/i.test(o)||n.some(r=>!r||r.startsWith(".")||/[\\:\p{Cc}]/u.test(r)||/^(?:\.\.?|AGENTS\.md|CLAUDE\.md|SKILL\.md|credentials.*|secrets?.*|.*\.pem|.*\.key)$/i.test(r)))&&q("INSTRUCTION_PATH_INVALID",t,"\u9700\u8981\u5DE5\u4F5C\u533A\u5185\u7684\u666E\u901A md/txt \u6587\u4EF6\uFF0C\u4E0D\u80FD\u5F15\u7528\u534F\u4F5C\u8BF4\u660E\u6216\u51ED\u636E"),o}function vl(e,t,o){if(typeof e=="string")return Xe(e,Ur.instructions,t);let n=xr(e,t);Wr(n,["file"],t);let r=zs(n.file,`${t}/file`);return o||q("INSTRUCTIONS_NOT_INLINED",t,"\u6587\u4EF6\u6307\u4EE4\u5FC5\u987B\u5148\u7531\u5DE5\u4F5C\u533A\u52A0\u8F7D\u5668\u5185\u8054"),{file:r}}var Ao={type:"object",additionalProperties:!1,required:["label"],properties:{label:{type:"string",minLength:1,maxLength:500}}},Pl=/^(option|user|department|resource-ref)\.(single|multiple)$/,Ll=new Set(["file","image","signature","subtable","text.rich","json","serial-number"]);function Js(e,t,o){if(t.type.startsWith("user."))return{selector:{owner:t.userCandidates?"user-candidates":"directory"}};if(t.type.startsWith("department."))return{selector:{owner:"directory"}};if(t.type.startsWith("resource-ref."))return{selector:{owner:"field-source"}};if(t.type.startsWith("option.")||t.type.startsWith("cascade."))return{selector:{owner:"options"}};if(!["text.short","uuid"].includes(t.type))return{};let n=o?.dataPolicies?.find(s=>s.code===e.dataPolicyCode&&s.resourceCode===e.code),r=[...n?.rules||[]],i=n?.readExpression?[n.readExpression]:[];for(;i.length;){let s=i.shift();r.length+i.length>2e3&&q("SELECTOR_POLICY_LIMIT",`/data/resources/${e.code}`,"\u8303\u56F4\u8DEF\u7531\u8D85\u8FC7\u89C4\u5219\u9884\u7B97"),s?.allOf?i.push(...s.allOf):s?.anyOf?i.push(...s.anyOf):r.push(s)}let a=new Set(r.flatMap(s=>s&&"dimensionCode"in s&&s.field===t.code&&o?.scopeDimensions?.some(d=>d.code===s.dimensionCode&&d.valueSource)?[s.dimensionCode]:[]));return a.size===1?{selector:{owner:"scope",dimensionCode:[...a][0]}}:a.size>1?{ambiguousScope:!0}:{}}function jr(e,t=!1,o){if(o?.ambiguousScope)return;if(o?.selector?.owner==="scope")return!t&&e.nullable!==!1?{anyOf:[Ao,{type:"null"}]}:Ao;if(Pl.test(e.type)){let r=e.type.endsWith(".multiple")?{type:"array",minItems:t?1:0,maxItems:50,items:Ao}:Ao;return!t&&e.nullable!==!1?{anyOf:[r,{type:"null"}]}:r}if(!["text.short","text.long","number.integer","number.decimal","boolean","date","time","datetime"].includes(e.type))return;let n=nn(e);return e.type==="datetime"&&(n={...n,pattern:"(?:Z|[+-]\\d{2}:\\d{2})$"}),t&&["number.integer","number.decimal","date","datetime"].includes(e.type)?{oneOf:[n,{type:"object",additionalProperties:!1,minProperties:1,properties:{from:n,to:n}}]}:!t&&e.nullable!==!1?{anyOf:[n,{type:"null"}]}:n}function Se(e,t=[]){return{type:"object",additionalProperties:!1,properties:e,...t.length?{required:t}:{}}}function Ks(e,t){return[...((t.source||e.surface?.fields[t.code]?.source)?.filters||[]).flatMap(n=>"binding"in n?[n.binding.field]:[]),...t.userCandidates?.scope?.field?[t.userCandidates.scope.field]:[]]}var qs={type:"object",additionalProperties:!1,required:["handle"],properties:{handle:{type:"string",minLength:1,maxLength:80}}},Gs={type:"object",additionalProperties:!1,properties:{columns:{type:"array",maxItems:500,items:Se({code:{type:"string"},label:{type:"string"}},["code","label"])},items:{type:"array",maxItems:100,items:Se({handle:{type:"string"},title:{type:"string"},fields:{type:"array",maxItems:500,items:Se({code:{type:"string"},label:{type:"string"},value:{type:"string"}},["code","label","value"])}},["handle","fields"])},more:{type:"boolean"},total:{type:"integer",minimum:0},continuation:{type:"string",maxLength:80},summary:{type:"string"},filter_ambiguous:{type:"boolean"},field:{type:"string",maxLength:100},labels:{type:"array",maxItems:20,items:Se({label:{type:"string"},description:{type:"string"}},["label"])}}};function $l(e,t,o,n,r,i){let a=n.find(h=>h&&typeof h=="object"&&h.code===o.resource&&h.status!=="retired");(!a?.surface||!a.surface.fields||!Array.isArray(a.schema?.fields)||a.schema.fields.some(h=>!h||typeof h.code!="string"||typeof h.type!="string"))&&q("RESOURCE_UNAVAILABLE",`${r}/resource`,"\u9700\u8981\u5F53\u524D\u6A21\u578B\u53CA\u6807\u51C6\u89C6\u56FE");try{Ct(a.schema.fields,`${r}/resource/schema/fields`)}catch(h){if(!(h instanceof _e))throw h;q("RESOURCE_SCHEMA_INVALID",`${r}/resource`,h.message)}a.surface.views!==void 0&&!Array.isArray(a.surface.views)&&q("VIEW_UNKNOWN",`${r}/view`,"\u9700\u8981\u5DF2\u9A8C\u8BC1\u7684\u6807\u51C6\u89C6\u56FE"),!a.surface.views?.some(h=>h.code===o.view)&&!(o.view==="default"&&!a.surface.views?.length)&&q("VIEW_UNKNOWN",`${r}/view`,"\u89C6\u56FE\u4E0D\u5B58\u5728");let s=o.view==="default"&&!a.surface.views?.length?a.surface:mo(a.surface,o.view),d=new Map(a.schema.fields.map(h=>[h.code,h])),c=new Map(a.schema.fields.map(h=>[h.code,Js(a,h,i)])),l=h=>[...new Set(h)].flatMap(u=>{let I=d.get(u),R=c.get(u);if(!I||!R)return[];let w=!!I.userCandidates?.scope?.field;return[{field:u,...R.selector?{selector:R.selector}:{},create:o.kind==="form"&&o.action==="create"&&!w,update:o.kind==="form"&&o.action==="update",filter:o.kind==="view"&&(o.filters??s.list?.filterFields??[]).includes(u)&&!R.ambiguousScope,output:R.ambiguousScope?"page":R.selector?"label":"value",...R.ambiguousScope?{reason:"multiple-scope-dimensions"}:w?{reason:"saved-scope-required"}:{}}]}),f={code:`${e}.agent.${t}.${o.code}`,appCode:e,name:o.name||`${a.name}${o.kind==="view"?"\u67E5\u8BE2":o.action==="create"?"\u65B0\u589E":"\u4FEE\u6539"}`.slice(0,80),description:o.description||`\u901A\u8FC7${a.name}\u7684${o.view}\u6807\u51C6\u89C6\u56FE${o.kind==="view"?"\u67E5\u8BE2":"\u586B\u5199"}\uFF0C\u9075\u5B88\u5F53\u524D\u7528\u6237\u6743\u9650`,kind:"nativeTask",resources:[a.code],limits:{timeoutMs:1e4},agent:{visibility:"task",...o.examples?.length?{examples:[...o.examples]}:{}}};if(o.kind==="view"){s.generated?.list===!1&&q("LIST_DISABLED",r,"\u8BE5\u89C6\u56FE\u672A\u751F\u6210\u5217\u8868");let h=o.filters??s.list?.filterFields??[];h.some(T=>!s.list?.filterFields?.includes(T))&&q("FILTER_WIDENING",`${r}/filters`,"\u4EFB\u52A1\u53EA\u80FD\u7F29\u5C0F\u89C6\u56FE\u7B5B\u9009\u5B57\u6BB5");let u=h.filter(T=>!c.get(T)?.ambiguousScope),I=Object.fromEntries(u.map(T=>{let S=d.get(T),L=S&&jr(S,!0,c.get(T));return L||q("FILTER_TYPE_UNSUPPORTED",`${r}/filters`,`\u5B57\u6BB5 ${T} \u6682\u4E0D\u652F\u6301\u6A21\u578B\u7B5B\u9009\u63D0\u793A`),[T,L]})),R=(s.list?.fieldOrder||[]).filter(T=>a.surface.fields[T]?.sortable);s.list?.defaultSort&&!R.includes(s.list.defaultSort.field)&&R.push(s.list.defaultSort.field);let w=Se({...s.list?.searchableFields?.length?{keyword:{type:"string",maxLength:200}}:{},...u.length?{filters:Se(I)}:{},...R.length?{sort:Se({field:{enum:R},order:{enum:["asc","desc"]}},["field"])}:{},limit:{type:"integer",minimum:1,maximum:100},continue:{type:"string",minLength:1,maxLength:80},record:qs});return{...f,operation:"query",inputSchema:{type:"object"},outputSchema:Gs,authorization:{capabilities:[a.capabilities.read]},risk:"read",confirmation:"none",idempotency:"none",concurrency:"none",sideEffects:[],limits:{...f.limits,maxRows:100},binding:{kind:"native-view",resourceCode:a.code,viewCode:o.view,filterFields:u},agent:{...f.agent,nativeTask:{contractVersion:2,agentCode:t,taskCode:o.code,hintSchema:w,coverage:l([...h,...s.list?.fieldOrder||[],...s.detail?.fieldOrder||[]])}}}}((a.surface.mutationOwner||"native")!=="native"||s.generated?.[o.action]===!1)&&q("MUTATION_NOT_NATIVE",r,"\u53EA\u80FD\u7ED1\u5B9A\u5DF2\u751F\u6210\u7684\u666E\u901A\u539F\u751F create/update");let p=o.fields;p.length||q("FIELDS_REQUIRED",`${r}/fields`,"\u9700\u8981\u81F3\u5C11\u4E00\u4E2A\u8868\u5355\u5B57\u6BB5");for(let h of p){let u=d.get(h),I=a.surface.fields[h];(!u||!s.form?.fieldOrder?.includes(h)||!I||I.system||I.hidden||Ye(h)||Qt(h)||Ll.has(u.type))&&q("FORM_FIELD_UNSUPPORTED",`${r}/fields`,`\u5B57\u6BB5 ${h} \u4E0D\u5C5E\u4E8E\u53EF\u7F16\u8F91\u7684\u6807\u51C6\u5355\u63A7\u4EF6\u8868\u5355`),(!Array.isArray(I[`${o.action}Capabilities`])||I[`${o.action}Capabilities`].length===0)&&q("FORM_FIELD_UNWRITABLE",`${r}/fields`,`\u5B57\u6BB5 ${h} \u672A\u63D0\u4F9B ${o.action} \u6743\u9650`),o.action==="create"&&u.userCandidates?.scope?.field&&q("CANDIDATE_CREATE_OWNER_REQUIRED",`${r}/fields`,`\u4EFB\u52A1 ${o.code} \u5B57\u6BB5 ${h} (user-candidates) \u7684\u8303\u56F4\u53D6\u81EA\u8BB0\u5F55\u5B57\u6BB5\uFF0C\u65B0\u5EFA\u9700\u901A\u8FC7\u6D41\u7A0B\u53D1\u8D77\u6216 Nest \u4E1A\u52A1\u64CD\u4F5C\u529E\u7406`)}let m=new Set(p);if(o.action==="create"){for(let h of a.schema.fields)Ue(h,a.surface.fields[h.code])&&!m.has(h.code)&&q("CREATE_FIELD_REQUIRED",`${r}/fields`,`\u5FC5\u987B\u5305\u542B\u65B0\u589E\u5FC5\u586B\u5B57\u6BB5 ${h.code}`);for(let h of p)for(let u of Ks(a,d.get(h)))m.has(u)||q("CREATE_BINDING_REQUIRED",`${r}/fields`,`${h} \u4F9D\u8D56 ${u}\uFF0C\u5FC5\u987B\u5305\u542B\u7ED1\u5B9A\u5B57\u6BB5`)}else for(let h of a.schema.fields)Ks(a,h).some(u=>m.has(u))&&!m.has(h.code)&&q("UPDATE_DEPENDENT_REQUIRED",`${r}/fields`,`\u4FEE\u6539\u7ED1\u5B9A\u5B57\u6BB5\u65F6\u5FC5\u987B\u5305\u542B\u4F9D\u8D56\u9009\u62E9\u5668 ${h.code}`);let E=p.map(h=>d.get(h)),A=o.action==="create"?E.filter(h=>Ue(h,a.surface.fields[h.code])).map(h=>h.code):[],O=Se(Object.fromEntries(E.map(h=>[h.code,h.nullable===!1?nn(h):{anyOf:[nn(h),{type:"null"}]}])),A),y=Object.fromEntries(E.flatMap(h=>{let u=jr(h,!1,c.get(h.code));return u?[[h.code,u]]:[]})),_={kind:"native-form",resourceCode:a.code,viewCode:o.view,action:o.action,fields:[...p]},b=Se({data:O,...o.action==="update"?{id:{type:"string",format:"uuid"},expectedRevision:{type:"integer",minimum:1}}:{}},["data",...o.action==="update"?["id","expectedRevision"]:[]]);return{...f,operation:o.action,inputSchema:b,outputSchema:Gs,authorization:{capabilities:[a.capabilities[o.action]]},risk:"write",confirmation:o.confirmation||"required",idempotency:"required",concurrency:o.action==="update"?"revision":"none",sideEffects:[`${a.code}:${o.action}`],reconcile:{kind:"platform-transaction"},binding:_,agent:{...f.agent,nativeTask:{contractVersion:2,agentCode:t,taskCode:o.code,hintSchema:Se({data:Se(y),...o.action==="update"?{record:qs}:{}}),coverage:l(p),form:{contractVersion:2,action:o.action,title:f.name,submitLabel:"\u63D0\u4EA4",resource:a.code,view:o.view,fields:E.map(h=>({path:h.code,label:a.surface.fields[h.code].label,fieldType:h.type,required:Ue(h,a.surface.fields[h.code]),source:{resource:a.code,field:h.code},...c.get(h.code)?.selector?{selector:c.get(h.code).selector}:{}}))}}}}}function Mr(e,t,o,n={}){let r={schemaVersion:"openxiangda.application-agent-definitions/v2",appCode:e,agents:[]},i=[];if(t===void 0)return{definitions:r,capabilities:i};Array.isArray(o)||q("RESOURCES_INVALID","/data/resources","\u9700\u8981\u5DF2\u9A8C\u8BC1\u7684\u6A21\u578B\u5217\u8868"),(!Array.isArray(t)||t.length>Ur.agents)&&q("AGENT_LIMIT","/agents","\u6700\u591A 20 \u4E2A\u52A9\u624B");let a=new Set;for(let s=0;s<t.length;s++){let d=`/agents/${s}`,c=xr(t[s],d);Wr(c,["code","name","purpose","instructions","starters","tasks"],d);let l=go(c.code,`${d}/code`);a.has(l)&&q("CODE_DUPLICATE",`${d}/code`,"\u52A9\u624B\u4EE3\u7801\u91CD\u590D"),a.add(l);let f=Xe(c.name,80,`${d}/name`),p=Xe(c.purpose,1e3,`${d}/purpose`),m=vl(c.instructions,`${d}/instructions`,n.allowInstructionFiles===!0),E=_o(c.starters,12,160,`${d}/starters`);(!Array.isArray(c.tasks)||c.tasks.length<1||c.tasks.length>20)&&q("TASK_LIMIT",`${d}/tasks`,"\u9700\u8981 1\u201320 \u4E2A\u4EFB\u52A1");let A=new Set,O=c.tasks.map((_,b)=>{let h=`${d}/tasks/${b}`,u=xr(_,h);["view","form"].includes(u.kind)||q("TASK_KIND_INVALID",`${h}/kind`,"\u53EA\u652F\u6301 view/form"),Wr(u,["code","kind","name","description","resource","view","examples",...u.kind==="view"?["filters"]:["action","fields","confirmation"]],h);let I=go(u.code,`${h}/code`);return A.has(I)&&q("TASK_CODE_DUPLICATE",`${h}/code`,"\u4EFB\u52A1\u4EE3\u7801\u91CD\u590D"),A.add(I),go(u.resource,`${h}/resource`),go(u.view,`${h}/view`),u.name!==void 0&&Xe(u.name,80,`${h}/name`),u.description!==void 0&&Xe(u.description,1e3,`${h}/description`),_o(u.examples,12,160,`${h}/examples`),u.kind==="view"?_o(u.filters,20,100,`${h}/filters`):(["create","update"].includes(u.action)||q("FORM_ACTION_INVALID",`${h}/action`,"\u53EA\u652F\u6301 create/update"),u.confirmation!==void 0&&!["none","required"].includes(u.confirmation)&&q("CONFIRMATION_INVALID",`${h}/confirmation`,"\u786E\u8BA4\u7B56\u7565\u65E0\u6548"),Array.isArray(u.fields)||q("FIELDS_REQUIRED",`${h}/fields`,"\u9700\u8981\u5B57\u6BB5\u5217\u8868"),_o(u.fields,20,100,`${h}/fields`)),$l(e,l,u,o,h,n.authz)}),y={code:l,name:f,purpose:p,instructions:typeof m=="string"?m:"",starters:E,tasks:O.map(_=>({code:_.agent.nativeTask.taskCode,capabilityCode:_.code}))};r.agents.push({...y,digest:ee({...y,capabilities:O})}),i.push(...O)}return r.agents.sort((s,d)=>s.code<d.code?-1:s.code>d.code?1:0),i.sort((s,d)=>s.code<d.code?-1:s.code>d.code?1:0),{definitions:r,capabilities:i}}var Hs="platform-notify-v1",Vl="platform.notify",Ys={type:"object",additionalProperties:!1,properties:{text:{type:"string",minLength:1,maxLength:2048}},required:["text"]},Xs={type:"object",additionalProperties:!1,properties:{}},Br=e=>!!e&&typeof e=="object"&&!Array.isArray(e),Io=e=>JSON.stringify(e,(t,o)=>Br(o)?Object.fromEntries(Object.keys(o).sort().map(n=>[n,o[n]])):o);function te(e){return e?.kind==="action"&&e.handler?.code===Hs&&e.notification!==void 0}function Fl(e){return{...e.notification.recipients,min:1,max:50,delegatable:!1}}function on(e){let t=[];for(let[o,n]of Object.entries(e?.nodes||{})){if(n?.notification===void 0)continue;(!te(n)||n.handler.version!==1||n.handler.mode!=="reconciled-effect"||n.handler.dataTransaction!==void 0||Io(n.inputSchema)!==Io(Ys)||Io(n.outputSchema)!==Io(Xs))&&t.push(`WORKFLOW_NOTIFY_PRESET_INVALID:${o}`),n.inputs?.text?.source==="literal"&&(typeof n.inputs.text.value!="string"||!n.inputs.text.value.trim())&&t.push(`WORKFLOW_NOTIFY_TEXT_INVALID:${o}`);let r=n.notification,i=r?.recipients;if(!Br(r)||Object.keys(r).some(s=>!["template","recipients"].includes(s))||r.template!=="workflow_message"||!Br(i)){t.push(`WORKFLOW_NOTIFY_RECIPIENT_INVALID:${o}`);continue}let a=Object.keys(i);i.provider==="initiator"?a.length!==1&&t.push(`WORKFLOW_NOTIFY_RECIPIENT_INVALID:${o}`):i.provider==="fixed_users"?(a.some(s=>!["provider","users"].includes(s))||!Array.isArray(i.users)||i.users.length<1||i.users.length>50||new Set(i.users).size!==i.users.length||i.users.some(s=>typeof s!="string"||!s.trim()||s.length>255))&&t.push(`WORKFLOW_NOTIFY_RECIPIENT_INVALID:${o}`):i.provider==="app_role"?(a.some(s=>!["provider","roleCode"].includes(s))||typeof i.roleCode!="string"||!/^[A-Za-z][A-Za-z0-9_.-]{0,127}$/.test(i.roleCode))&&t.push(`WORKFLOW_NOTIFY_RECIPIENT_INVALID:${o}`):i.provider==="form_field_users"?(a.some(s=>!["provider","inputPath"].includes(s))||typeof i.inputPath!="string"||!/^[A-Za-z][A-Za-z0-9_]*(\.[A-Za-z][A-Za-z0-9_]*)*$/.test(i.inputPath)||i.inputPath.length>256||i.inputPath.split(".").length>8||i.inputPath.split(".").some(s=>["prototype","constructor","__proto__"].includes(s)))&&t.push(`WORKFLOW_NOTIFY_RECIPIENT_INVALID:${o}`):t.push(`WORKFLOW_NOTIFY_RECIPIENT_INVALID:${o}`)}return t}var yo="openxiangda.workflow.step.requested.v2",xl=[yo,"openxiangda.workflow.step.result_received.v2","openxiangda.workflow.step.completed.v2","openxiangda.workflow.step.continuation_failed.v2"],bo=16384,ea=2048,Wl="steps",Gr=/^[A-Za-z][A-Za-z0-9_-]{0,127}$/,ta=/^[A-Za-z][A-Za-z0-9_]{0,62}$/,ct=new Set(["__proto__","prototype","constructor"]),G=e=>!!e&&typeof e=="object"&&!Array.isArray(e)&&[Object.prototype,null].includes(Object.getPrototypeOf(e)),na=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((i,a)=>Lt(i,t[a],o+1));if(!G(e)||!G(t))return!1;let n=Object.keys(e).filter(i=>e[i]!==void 0),r=Object.keys(t).filter(i=>t[i]!==void 0);return n.length===r.length&&n.every(i=>Object.hasOwn(t,i)&&Lt(e[i],t[i],o+1))};function Kr(e,t){let o=0,n=(r,i)=>++o>1e4||i>8?!1:r===null||typeof r=="boolean"||typeof r=="string"?!0:typeof r=="number"?Number.isFinite(r):Array.isArray(r)?r.length<=200&&r.every(a=>n(a,i+1)):G(r)&&Object.keys(r).length<=32&&Object.keys(r).every(a=>!ct.has(a))&&Object.values(r).every(a=>n(a,i+1));return na(e)<=t&&n(e,0)}function oa(e){return!G(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&&G(e.output)&&Kr(e.output,bo)&&(e.receipt===void 0||G(e.receipt)&&Kr(e.receipt,ea))}function jl(e){return G(e)&&Object.keys(e).every(t=>["executionId","nodeId","handlerCode","handlerVersion","mode","dataTransaction","input","inputDigest","expectedFactRevision"].includes(t))&&typeof e.nodeId=="string"&&Gr.test(e.nodeId)&&!ct.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)&&(e.dataTransaction===void 0||e.dataTransaction===!0&&e.mode==="reconciled-effect")&&oa({executionId:e.executionId,handlerVersion:e.handlerVersion,inputDigest:e.inputDigest,expectedFactRevision:e.expectedFactRevision,output:e.input})}function rn(e,t,o=bo){if(!Kr(t,o))return!1;let n=1e4,r=(i,a,s)=>{if(--n<0||s>8||!G(i))return!1;let d=a===null?"null":Array.isArray(a)?"array":typeof a=="number"&&Number.isSafeInteger(a)?"integer":typeof a,c=Array.isArray(i.type)?i.type:[i.type];if(!c.includes(d)&&!(d==="integer"&&c.includes("number"))||i.enum!==void 0&&(!Array.isArray(i.enum)||!i.enum.some(l=>Lt(l,a)))||Object.hasOwn(i,"const")&&!Lt(i.const,a))return!1;if(typeof a=="number")return Number.isFinite(a)&&(i.minimum===void 0||a>=i.minimum)&&(i.maximum===void 0||a<=i.maximum);if(typeof a=="string"){let l=Array.from(a).length;return(i.minLength===void 0||l>=i.minLength)&&(i.maxLength===void 0||l<=i.maxLength)}return Array.isArray(a)?a.length<=i.maxItems&&(i.minItems===void 0||a.length>=i.minItems)&&a.every(l=>r(i.items,l,s+1)):G(a)?!G(i.properties)||Object.keys(a).some(l=>ct.has(l)||!Object.hasOwn(i.properties,l))||(Array.isArray(i.required)?i.required:[]).some(l=>!Object.hasOwn(a,l))||i.minProperties!==void 0&&Object.keys(a).length<i.minProperties||i.maxProperties!==void 0&&Object.keys(a).length>i.maxProperties?!1:Object.entries(a).every(([l,f])=>r(i.properties[l],f,s+1)):a===null||typeof a=="boolean"};return r(e,t,0)}function ra(e){return typeof e=="string"&&e.length<=256&&e.split(".").length<=8&&e.split(".").every(t=>Gr.test(t)&&!ct.has(t))}function lt(e){let t=0,o=(n,r)=>{if(!G(n)||r>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 i=Array.isArray(n.type)?n.type:[n.type];if(!i.length||i.length>2||i.some(s=>!["object","array","string","integer","number","boolean","null"].includes(s))||i.length>1&&(!i.includes("null")||new Set(i).size!==i.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,d]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]>d))return!1;for(let[s,d]of[["minimum","maximum"],["minItems","maxItems"],["minLength","maxLength"],["minProperties","maxProperties"]])if(n[s]!==void 0&&n[d]!==void 0&&n[s]>n[d])return!1;if(["properties","required","additionalProperties","maxProperties","minProperties"].some(s=>n[s]!==void 0)&&!i.includes("object")||["items","maxItems","minItems"].some(s=>n[s]!==void 0)&&!i.includes("array")||["maxLength","minLength"].some(s=>n[s]!==void 0)&&!i.includes("string")||["minimum","maximum"].some(s=>n[s]!==void 0)&&!i.some(s=>s==="integer"||s==="number")||n.enum!==void 0&&(!Array.isArray(n.enum)||!n.enum.length||n.enum.length>100)||i.includes("object")&&(!G(n.properties)||n.additionalProperties!==!1||Object.keys(n.properties).length>32||Object.keys(n.properties).some(s=>!ta.test(s)||ct.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,r+1)))||i.includes("array")&&(!Number.isSafeInteger(n.maxItems)||!o(n.items,r+1)))return!1;let a={...n};return delete a.enum,delete a.const,!(n.enum!==void 0&&(!n.enum.every(s=>rn(a,s))||n.enum.some((s,d)=>n.enum.slice(0,d).some(c=>Lt(s,c))))||Object.hasOwn(n,"const")&&!rn(a,n.const))};return G(e)&&e.type==="object"&&na(e)<=bo&&o(e,0)}function ut(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 ia(e,t){let o=e;for(let n of t.split(".")){if(!G(o?.properties)||!Object.hasOwn(o.properties,n))return;o=o.properties[n]}return G(o)?o:void 0}var Zs=(e,t)=>!!ia(e,t);function Ul(e){return G(e)&&Object.keys(e).every(t=>["version","mode","dataTransaction","inputSchema","outputSchema"].includes(t))&&Number.isSafeInteger(e.version)&&e.version>=1&&e.version<=1e6&&["pure","reconciled-effect"].includes(e.mode)&&(e.dataTransaction===void 0||e.dataTransaction===!0&&e.mode==="reconciled-effect")&&lt(e.inputSchema)&&lt(e.outputSchema)}function Qs(e){return e.kind==="approval"?[e.onApprove,e.onReject]:e.kind==="parallel"?[...Array.isArray(e.branches)?e.branches.map(t=>t.target):[],e.join]:e.kind==="join"?[e.next]:e.kind==="condition"?[...Array.isArray(e.branches)?e.branches.map(t=>t.target):[],e.otherwise]:e.kind==="cc"||e.kind==="action"||e.kind==="handle"?[e.next]:[]}function qr(e,t=0){return!G(e)||t>16?[]:e.op==="path"?typeof e.path=="string"?[e.path]:[]:["left","right","value"].flatMap(o=>qr(e[o],t+1)).concat(Array.isArray(e.values)?e.values.flatMap(o=>qr(o,t+1)):[])}function sa(e){if(e.authoring===void 0)return[];let t=e.authoring;if(!G(t)||Object.keys(t).some(r=>r!=="businessSteps")||t.businessSteps!==void 0&&(!Array.isArray(t.businessSteps)||t.businessSteps.length>100))return["WORKFLOW_AUTHORING_CATALOG_INVALID"];let o=[],n=new Set;for(let r of t.businessSteps||[]){let i=r?.handler;(!G(r)||Object.keys(r).some(a=>!["title","handler","inputSchema","outputSchema"].includes(a))||typeof r.title!="string"||!r.title.trim()||r.title.length>160||!G(i)||Object.keys(i).some(a=>!["code","version","mode","dataTransaction"].includes(a))||!Number.isSafeInteger(i.version)||i.version<1||i.version>1e6||!/^[a-z][a-z0-9-]{0,100}$/.test(i.code||"")||!i.code.endsWith(`-v${i.version}`)||!["pure","reconciled-effect"].includes(i.mode)||i.dataTransaction!==void 0&&(i.dataTransaction!==!0||i.mode!=="reconciled-effect")||!lt(r.inputSchema)||!lt(r.outputSchema)||n.has(i.code))&&o.push("WORKFLOW_AUTHORING_STEP_INVALID"),i?.code&&n.add(i.code)}return o}function sn(e,t){if(!G(e)||!G(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 r=[...on(e),...sa(e)];Object.hasOwn(e.inputSchema?.properties||{},"steps")&&r.push("WORKFLOW_STEP_FACT_NAMESPACE_RESERVED");let i=ut(e);for(let[s,d]of n){(Object.keys(d).some(f=>!["id","kind","title","next","handler","inputSchema","outputSchema","inputs",...te(d)?["notification"]:[]].includes(f))||d.id!==s||!Gr.test(s)||ct.has(s)||typeof d.title!="string"||!d.title.trim()||d.title.length>255||typeof d.next!="string"||!Object.hasOwn(o,d.next))&&r.push(`WORKFLOW_STEP_NODE_INVALID:${s}`);let c=d.handler;(!G(c)||Object.keys(c).some(f=>!["code","version","mode","dataTransaction"].includes(f))||!Number.isSafeInteger(c.version)||c.version<1||c.version>1e6||!/^[a-z][a-z0-9-]{0,100}$/.test(c.code||"")||!String(c.code).endsWith(`-v${c.version}`)||!["pure","reconciled-effect"].includes(c.mode)||c.dataTransaction!==void 0&&(c.dataTransaction!==!0||c.mode!=="reconciled-effect"))&&r.push(`WORKFLOW_STEP_HANDLER_INVALID:${s}`);let l=lt(d.inputSchema);if((!l||!lt(d.outputSchema))&&r.push(`WORKFLOW_STEP_SCHEMA_INVALID:${s}`),!G(d.inputs)||Object.keys(d.inputs).length>32){r.push(`WORKFLOW_STEP_INPUTS_INVALID:${s}`);continue}for(let f of Array.isArray(d.inputSchema?.required)?d.inputSchema.required:[])Object.hasOwn(d.inputs,f)||r.push(`WORKFLOW_STEP_INPUT_REQUIRED:${s}:${f}`);for(let[f,p]of Object.entries(d.inputs)){if(!ta.test(f)||ct.has(f)||!Object.hasOwn(d.inputSchema?.properties||{},f)||!G(p)){r.push(`WORKFLOW_STEP_INPUT_INVALID:${s}:${f}`);continue}if(p.source==="literal")(!l||Object.keys(p).some(m=>!["source","value"].includes(m))||!Object.hasOwn(p,"value")||!rn(d.inputSchema.properties[f],p.value))&&r.push(`WORKFLOW_STEP_LITERAL_INVALID:${s}:${f}`);else if(p.source!=="fact"||Object.keys(p).some(m=>!["source","path"].includes(m))||!ra(p.path)||!Zs(i,p.path))r.push(`WORKFLOW_STEP_FACT_PATH_INVALID:${s}:${f}`);else if(l){let m=ia(i,p.path),E=d.inputSchema.properties[f],A=Array.isArray(m.type)?m.type:[m.type],O=Array.isArray(E.type)?E.type:[E.type];A.some(y=>!O.includes(y)&&!(y==="integer"&&O.includes("number")))&&r.push(`WORKFLOW_STEP_FACT_TYPE_MISMATCH:${s}:${f}`)}}}let a=(s,d)=>{let c=new Set,l=[e.startAt||""];for(;l.length&&c.size<=200;){let f=l.shift();if(!(f===d||c.has(f)||!o[f])){if(f===s)return!0;c.add(f),l.push(...Qs(o[f]))}}return!1};for(let[s,d]of Object.entries(o)){if(!G(d))continue;let c=d.kind==="action"?Object.values(d.inputs||{}).flatMap(f=>f?.source==="fact"?[f.path]:[]):(Array.isArray(d.branches)?d.branches:[]).flatMap(f=>qr(f?.when)),l=t?.bindings?.[d.binding];l&&c.push(...[l.inputPath,l.departmentIdFrom,l.resourceIdFrom,l.scope?.valueFrom].filter(f=>typeof f=="string"));for(let f of c.filter(p=>typeof p=="string"&&p.startsWith("steps."))){let p=f.split(".")[1];(o[p]?.kind!=="action"||p===s||!Zs(i,f)||a(s,p))&&r.push(`WORKFLOW_STEP_OUTPUT_NOT_AVAILABLE:${s}:${f}`)}}if(t)for(let[,s]of n.filter(([,d])=>!te(d))){let d=new Set,c=[s.next];for(;c.length&&d.size<=200;){let l=c.shift();if(d.has(l)||!G(o[l]))continue;d.add(l);let f=o[l];if(!(f.kind==="action"||f.kind==="end")){if(f.kind==="approval"){let p=t.bindings?.[f.binding];p&&["application_provider","initiator_select"].includes(p.provider)&&r.push(`WORKFLOW_STEP_NEXT_PROVIDER_REQUIRES_PREPARED_RESULT:${l}`);continue}c.push(...Qs(f))}}}return[...new Set(r)]}function Ml(e,t){let o={};for(let[n,r]of Object.entries(e.inputs)){let i=r.source==="literal"?r.value:r.path.split(".").reduce((a,s)=>G(a)&&Object.hasOwn(a,s)?a[s]:void 0,t);i!==void 0&&(o[n]=i)}if(!rn(e.inputSchema,o))throw new Error("WORKFLOW_STEP_INPUT_SCHEMA_INVALID");return o}function zr(e,t,o){let n=Oo(e),r=[];Object.keys(n).length&&!o&&r.push("WORKFLOW_STEP_BACKEND_REQUIRED");for(let i of Object.keys(n)){let a=t.find(s=>s.code===i);(!a||a.execution||a.action||!Array.isArray(a.eventTypes)||a.eventTypes.length!==1||a.eventTypes[0]!==yo||!G(a.filter)||Object.keys(a.filter).length!==1||!G(a.filter.workflowStep)||Object.keys(a.filter.workflowStep).length!==1||a.filter.workflowStep.handlerCode!==i||!G(a.payload)||a.payload.includeChanges!==!1||!Array.isArray(a.payload.fields)||a.payload.fields.length)&&r.push(`WORKFLOW_STEP_SUBSCRIPTION_INVALID:${i}`)}for(let i of t)(i.eventTypes?.includes(yo)&&!n[i.code]||i.filter?.workflowStep&&!n[i.code])&&r.push(`WORKFLOW_STEP_HANDLER_NOT_DECLARED:${i.code}`);return r}function Oo(e){let t={};for(let o of e){let n=sn(o);if(n.length)throw new Error(n.join("; "));for(let r of[...Object.values(o.nodes||{}),...o.authoring?.businessSteps||[]]){if(!r.handler||te(r))continue;let i={version:r.handler.version,mode:r.handler.mode,...r.handler.dataTransaction?{dataTransaction:!0}:{},inputSchema:r.inputSchema,outputSchema:r.outputSchema},a=t[r.handler.code];if(a&&!Lt(a,i))throw new Error(`WORKFLOW_STEP_HANDLER_CONTRACT_CONFLICT:${r.handler.code}`);t[r.handler.code]=i}}return t}var Jr=e=>!!e&&typeof e=="object"&&!Array.isArray(e),Bl=e=>typeof e=="string"&&e.length<=255&&e.split(".").length<=8&&/^[A-Za-z][A-Za-z0-9_-]*(\.[A-Za-z][A-Za-z0-9_-]*)*$/.test(e)&&!e.split(".").some(t=>["__proto__","prototype","constructor"].includes(t));function an(e){if(e?.provider!=="supervisor_chain")return e&&["from","until","continuous","missing"].some(n=>e[n]!==void 0)?["WORKFLOW_SUPERVISOR_CHAIN_PROVIDER_INVALID"]:[];let t=e.from,o=e.until;return!Jr(e)||Object.keys(e).some(n=>!["provider","from","until","continuous","missing","min","max","delegatable"].includes(n))||!(t==="initiator"||Jr(t)&&Object.keys(t).length===1&&Bl(t.field))||!(o==="top"||Jr(o)&&Object.keys(o).length===1&&(Number.isInteger(o.level)&&o.level>=1&&o.level<=20||typeof o.roleCode=="string"&&/^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$/.test(o.roleCode)&&o.roleCode.length<=128))||e.continuous!==void 0&&typeof e.continuous!="boolean"||e.missing!==void 0&&!["skip_level","block"].includes(e.missing)?["WORKFLOW_SUPERVISOR_CHAIN_BINDING_INVALID"]:[]}function dn(e,t){let o=[];for(let[n,r]of Object.entries(t?.bindings||{}))o.push(...an(r).map(i=>`${i}:${n}`));for(let[n,r]of Object.entries(e?.nodes||{})){let i=t?.bindings?.[r?.binding];if(!(i?.provider!=="supervisor_chain"||an(i).length))if(["approval","handle"].includes(r.kind)||o.push(`WORKFLOW_SUPERVISOR_CHAIN_HUMAN_REQUIRED:${n}`),i.continuous!==!1&&r.mode!=="sequence"&&o.push(`WORKFLOW_SUPERVISOR_CHAIN_SEQUENCE_REQUIRED:${n}`),i.from==="initiator")(!e.organizationContext?.department||e.organizationContext.department.source==="none")&&o.push(`WORKFLOW_SUPERVISOR_CHAIN_DEPARTMENT_CONTEXT_REQUIRED:${n}`);else{let a=ut(e);for(let d of i.from.field.split("."))a=a?.properties?.[d];let s=Array.isArray(a?.type)?a.type.filter(d=>d!=="null")[0]:a?.type;(!a||!["string","array","object"].includes(s))&&o.push(`WORKFLOW_SUPERVISOR_CHAIN_USER_FACT_REQUIRED:${n}`)}}return o}function Kl(e){let t=e.from==="initiator"?"\u7533\u8BF7\u4EBA":`\u6210\u5458\u53D8\u91CF ${e.from.field}`,o=e.until==="top"?"\u6700\u4E0A\u7EA7":"level"in e.until?`\u7B2C ${e.until.level} \u7EA7`:`\u89D2\u8272 ${e.until.roleCode}`;return`${t}\u7684\u4E3B\u7BA1\u94FE \xB7 \u81F3${o} \xB7 ${e.continuous!==!1?"\u9010\u7EA7\u529E\u7406":"\u4EC5\u7EC8\u70B9\u529E\u7406"}`}function cn(e){let t=[];for(let[o,n]of Object.entries(e?.nodes||{})){if(n?.reminders===void 0)continue;let r=n.reminders;(!["approval","handle","correction"].includes(n.kind)||!r||typeof r!="object"||Array.isArray(r)||Object.keys(r).length!==4||Object.keys(r).some(i=>!["afterSeconds","everySeconds","max","to"].includes(i))||!Number.isInteger(r.afterSeconds)||r.afterSeconds<1||r.afterSeconds>2592e3||!Number.isInteger(r.everySeconds)||r.everySeconds<1||r.everySeconds>2592e3||!Number.isInteger(r.max)||r.max<1||r.max>10||!Array.isArray(r.to)||r.to.length!==1||r.to[0]!=="handlers")&&t.push(`WORKFLOW_REMINDERS_INVALID:${o}`)}return t}function De(e){return e.returnPolicy?Array.isArray(e.returnPolicy.targets)?e.returnPolicy.targets.filter(t=>typeof t?.nodeId=="string").map(t=>t.nodeId):[]:Array.isArray(e.returnTargets)?[...e.returnTargets]:[]}function ql(e,t,o){if(t.returnPolicy)return Array.isArray(t.returnPolicy.targets)?t.returnPolicy.targets.find(n=>n.nodeId===o):void 0;if(t.returnTargets?.includes(o))return{nodeId:o,routes:e.nodes[o]?.kind==="correction"?["replay"]:["replay","resume"],defaultRoute:"replay"}}function ln(e){let t=[];for(let[o,n]of Object.entries(e?.nodes||{})){let r=n?.returnPolicy;if(r===void 0)continue;if(!["approval","handle"].includes(n.kind)||!r||typeof r!="object"||Array.isArray(r)||Object.keys(r).some(a=>a!=="targets")||!Array.isArray(r.targets)||r.targets.length>20){t.push(`WORKFLOW_RETURN_POLICY_INVALID:${o}`);continue}let i=new Set;for(let a of r.targets)(!a||typeof a!="object"||Object.keys(a).some(s=>!["nodeId","routes","defaultRoute"].includes(s))||typeof a.nodeId!="string"||a.nodeId===o||i.has(a.nodeId)||!["approval","handle","correction"].includes(e.nodes?.[a.nodeId]?.kind))&&t.push(`WORKFLOW_RETURN_TARGET_INVALID:${o}`),a?.nodeId&&i.add(a.nodeId),(!Array.isArray(a?.routes)||a.routes.length<1||a.routes.length>2||new Set(a.routes).size!==a.routes.length||a.routes.some(s=>!["replay","resume"].includes(s))||!a.routes.includes(a.defaultRoute))&&t.push(`WORKFLOW_RETURN_ROUTES_INVALID:${o}`);n.returnTargets&&(n.returnTargets.length!==i.size||n.returnTargets.some(a=>!i.has(a)))&&t.push(`WORKFLOW_RETURN_TARGETS_CONFLICT:${o}`)}return t}var da=2,ca=8,Hr=e=>!!e&&typeof e=="object"&&!Array.isArray(e),Gl=e=>typeof e=="string"&&/^[A-Za-z][A-Za-z0-9_-]{0,127}$/.test(e),aa=(e,t)=>e===t||e.startsWith(`${t}.`)||t.startsWith(`${e}.`);function un(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==="parallel"?[...(Array.isArray(e.branches)?e.branches:[]).map(t=>t?.target),e.join]:"next"in e?[e.next]:[]}function ke(e){let t=[],o=[];if(!Hr(e?.nodes))return{regions:o,errors:["WORKFLOW_PARALLEL_DOCUMENT_INVALID"]};let n=e.nodes;if(!Object.values(n).some(a=>a?.kind==="parallel"||a?.kind==="join"))return{regions:o,errors:t};if(Object.keys(n).length>200)return{regions:o,errors:["WORKFLOW_PARALLEL_NODE_LIMIT"]};let r=new Map,i=new Set;for(let a of Object.values(n)){if(a?.kind!=="parallel")continue;let s=n[a.join];if(s?.kind!=="join"||s.parallel!==a.id||i.has(a.join)){t.push(`WORKFLOW_PARALLEL_PAIR_INVALID:${a.id}`);continue}if(i.add(s.id),n[s.next]||t.push(`WORKFLOW_PARALLEL_TARGET_MISSING:${s.id}`),!Array.isArray(a.branches)||a.branches.length<da||a.branches.length>ca){t.push(`WORKFLOW_PARALLEL_BRANCH_LIMIT:${a.id}`);continue}let d={parallelNodeId:a.id,joinNodeId:s.id,branches:[]},c=new Set,l=new Set;for(let f of a.branches){if(!Hr(f)||!Gl(f.id)||typeof f.title!="string"||!f.title.trim()||f.title.length>255||c.has(f.id)){t.push(`WORKFLOW_PARALLEL_BRANCH_INVALID:${a.id}`);continue}c.add(f.id);let p=new Set,m=new Set,E=new Set,A=y=>{if(y===s.id)return;let _=n[y];if(!_){t.push(`WORKFLOW_PARALLEL_TARGET_MISSING:${a.id}:${y}`);return}if(_.kind==="end"){_.outcome!=="rejected"?t.push(`WORKFLOW_PARALLEL_BRANCH_END_INVALID:${a.id}:${f.id}:${y}`):l.add(y);return}if(_.kind==="parallel"||_.kind==="join"){t.push(`WORKFLOW_PARALLEL_NESTING_FORBIDDEN:${a.id}:${y}`);return}if(m.has(y)){t.push(`WORKFLOW_PARALLEL_CYCLE:${a.id}:${y}`);return}if(E.has(y))return;p.add(y),m.add(y);let b=un(_);b.length||t.push(`WORKFLOW_PARALLEL_BRANCH_DANGLING:${a.id}:${y}`);for(let h of b)A(h);m.delete(y),E.add(y)};A(f.target);let O=new Set;for(let y of p){r.get(y)?t.push(`WORKFLOW_PARALLEL_BODY_OVERLAP:${a.id}:${f.id}:${y}`):r.set(y,{parallel:a.id,branch:f.id});let b=n[y];if(b.kind==="approval"||b.kind==="handle")for(let h of e.taskPages?.[b.taskPageCode||""]?.fields||[]){let u=b.fieldPolicy?.fields?.[h.code]||b.fieldPolicy?.default||"readonly";h.readonly!==!0&&(u==="edit"||u==="edit_required")&&O.add(h.code)}}d.branches.push({id:f.id,target:f.target,nodeIds:[...p].sort(),writableFields:[...O].sort()})}l.size>1&&t.push(`WORKFLOW_PARALLEL_REJECT_END_NOT_SHARED:${a.id}`),o.push(d)}for(let a of Object.values(n))a?.kind==="join"&&!i.has(a.id)&&t.push(`WORKFLOW_PARALLEL_JOIN_ORPHAN:${a.id}`);r.has(e.startAt)&&t.push(`WORKFLOW_PARALLEL_EXTERNAL_ENTRY:${e.startAt}`);for(let[a,s]of Object.entries(n))if(Hr(s)){for(let d of un(s)){let c=r.get(d),l=r.get(a),f=c&&n[c.parallel],p=f?.kind==="parallel"&&a===f.id&&f.branches.some(m=>m.id===c.branch&&m.target===d);if(c&&!p&&(!l||l.parallel!==c.parallel||l.branch!==c.branch)&&t.push(`WORKFLOW_PARALLEL_EXTERNAL_ENTRY:${a}:${d}`),n[d]?.kind==="join"&&s.kind!=="parallel"){let m=n[d];(!l||l.parallel!==m.parallel)&&t.push(`WORKFLOW_PARALLEL_EXTERNAL_JOIN:${a}:${d}`)}}if(s.kind==="approval"||s.kind==="handle"){let d=r.get(a);for(let c of De(s)){let l=r.get(c);d&&(!l||l.parallel!==d.parallel||l.branch!==d.branch)&&t.push(`WORKFLOW_PARALLEL_RETURN_CROSSES_BRANCH:${a}:${c}`),!d&&l&&t.push(`WORKFLOW_PARALLEL_RETURN_ENTERS_BRANCH:${a}:${c}`)}}}for(let a of o)for(let s of a.branches){let d=a.branches.filter(l=>l.id!==s.id);for(let l of s.writableFields)d.some(f=>f.writableFields.includes(l))&&t.push(`WORKFLOW_PARALLEL_SHARED_WRITABLE_FIELD:${a.parallelNodeId}:${l}`);let c=d.flatMap(l=>[...Object.entries(e.subject?.factProjection||{}).filter(([,f])=>l.writableFields.some(p=>aa(p,f))).map(([f])=>f),...l.nodeIds.filter(f=>n[f]?.kind==="action").map(f=>`steps.${f}`)]);for(let l of s.nodeIds){let f=n[l];if(f.kind==="action")for(let p of Object.values(f.inputs||{}))p.source==="fact"&&c.some(m=>aa(m,p.path))&&t.push(`WORKFLOW_PARALLEL_SIBLING_INPUT:${l}:${p.path}`)}}return{regions:o,errors:[...new Set(t)]}}function fn(e){return ke(e).errors}function zl(e){if(!["running","returned"].includes(e.status))return!1;if(!e.forkVisitId&&!e.branchId)return e.currentNodeId===e.nodeId;let t=e.fork;return!!t&&e.forkVisitId===t.forkVisitId&&e.branchId===t.branchId&&t.status==="active"&&e.currentNodeId===t.parallelNodeId&&t.activation.includes(e.branchId)&&!t.arrived.includes(e.branchId)&&e.activeToken}function pn(e){let t=[];for(let[o,n]of Object.entries(e?.nodes||{})){if(n?.kind!=="handle"){n?.allowedOperations?.includes("complete")&&t.push(`WORKFLOW_HANDLE_COMMAND_ONLY:${o}`);continue}(!n.next||!e.nodes?.[n.next])&&t.push(`WORKFLOW_HANDLE_TARGET_MISSING:${o}`),(["onApprove","onReject","initiatorApprovalPolicy","completionDeadline"].some(r=>r in n)||n.emptyPolicy==="skip")&&t.push(`WORKFLOW_HANDLE_APPROVAL_POLICY_FORBIDDEN:${o}`),(!Array.isArray(n.allowedOperations)||!n.allowedOperations.includes("complete")||n.allowedOperations.some(r=>!["complete","save_form","transfer","delegate","return"].includes(r)))&&t.push(`WORKFLOW_HANDLE_OPERATIONS_INVALID:${o}`),(!Array.isArray(n.requiredOperations)||!n.requiredOperations.includes("complete"))&&t.push(`WORKFLOW_HANDLE_COMPLETE_REQUIRED:${o}`)}return t}function ho(e,t){let o=()=>{throw Object.assign(new Error("DATA_MUTATION_GRANT_INVALID"),{code:"DATA_MUTATION_GRANT_INVALID"})};if(!Array.isArray(e)||e.length<1||e.length>32)return o();let n=new Set;return e.map(i=>!i||typeof i!="object"||Array.isArray(i)||Object.keys(i).some(a=>!["resourceCode","operations","fieldCodes","maxOperations","allowRuntimeWorker"].includes(a))||typeof i.resourceCode!="string"||!/^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$/.test(i.resourceCode)||i.allowRuntimeWorker!==void 0&&i.allowRuntimeWorker!==!0||n.has(i.resourceCode)||t&&!t.has(i.resourceCode)||!Array.isArray(i.operations)||i.operations.length<1||i.operations.length>4||new Set(i.operations).size!==i.operations.length||i.operations.some(a=>!["create","update","delete","increment"].includes(a))||!Array.isArray(i.fieldCodes)||i.fieldCodes.length>128||new Set(i.fieldCodes).size!==i.fieldCodes.length||i.operations.some(a=>a!=="delete")&&!i.fieldCodes.length||i.fieldCodes.some(a=>typeof a!="string"||!/^[A-Za-z][A-Za-z0-9_]{0,62}$/.test(a)||t&&!t.get(i.resourceCode)?.has(a))||!Number.isSafeInteger(i.maxOperations)||i.maxOperations<1||i.maxOperations>1e3?o():(n.add(i.resourceCode),{resourceCode:i.resourceCode,operations:[...i.operations].sort(),fieldCodes:[...i.fieldCodes].sort(),maxOperations:i.maxOperations,...i.allowRuntimeWorker?{allowRuntimeWorker:!0}:{}})).sort((i,a)=>i.resourceCode.localeCompare(a.resourceCode))}var Pm=5,Lm=20,$m=50,Vm=50,Fm=100,$t=class extends Error{constructor(o,n){super(o);this.code=o;this.pointer=n;this.name="NativeDataPolicyExpressionV2Error"}code;pointer};function ft(e,t){let o=[],n=(r,i,a)=>{a>5&&mn("NATIVE_DATA_POLICY_EXPRESSION_DEPTH_EXCEEDED",i);let s=la(r,i),d=["allOf","anyOf"].filter(f=>f in s);if(d.length===0){o.push({rule:s,pointer:i}),o.length>50&&mn("NATIVE_DATA_POLICY_EXPRESSION_LEAVES_EXCEEDED",i);return}let c=d[0],l=s[c];(d.length!==1||Object.keys(s).length!==1||!Array.isArray(l)||l.length<1||l.length>20)&&mn("NATIVE_DATA_POLICY_EXPRESSION_GROUP_INVALID",i),l.forEach((f,p)=>n(f,`${i}/${c}/${p}`,a+1))};return n(e,t,1),o}function Xr(e,t){ft(e,t);let o=(n,r)=>{let i=la(n,r);if(Array.isArray(i.allOf))return Yr(i.allOf.flatMap((a,s)=>o(a,`${r}/allOf/${s}`)),r);if(Array.isArray(i.anyOf)){let a=[[]];return i.anyOf.forEach((s,d)=>{let c=o(s,`${r}/anyOf/${d}`);a=Yr(a.flatMap(l=>c.map(f=>[...l,...f])),r)}),a}return[[i]]};return Yr(o(e,t),t)}function Yr(e,t){let o=e.reduce((n,r)=>n+r.length,0);return(e.length>50||o>100)&&mn("NATIVE_DATA_POLICY_EXPRESSION_EXPANSION_EXCEEDED",t),e}function la(e,t){return(!e||typeof e!="object"||Array.isArray(e))&&mn("NATIVE_DATA_POLICY_EXPRESSION_NODE_INVALID",t),e}function mn(e,t){throw new $t(e,t)}var fe=class extends Error{constructor(o,n){super(`${o}: ${n}`);this.code=o;this.pointer=n}code;pointer},Jl=/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/,ua=/^[A-Za-z_][A-Za-z0-9_]{0,127}$/;function fa(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new fe("NATIVE_PARENT_READ_INVALID",t);let o=e;if(Object.keys(o).some(n=>!["resourceCode","subtableFieldCode"].includes(n))||typeof o.resourceCode!="string"||o.resourceCode.length>64||!Jl.test(o.resourceCode)||typeof o.subtableFieldCode!="string"||!ua.test(o.subtableFieldCode))throw new fe("NATIVE_PARENT_READ_INVALID",t);return{resourceCode:o.resourceCode,subtableFieldCode:o.subtableFieldCode}}function pa(e,t){return[...(Array.isArray(e.rules)?e.rules:[]).map((o,n)=>({rule:o,pointer:`${t}/rules/${n}`,base:!0})),...e.readExpression===void 0?[]:ft(e.readExpression,`${t}/readExpression`).map(o=>({...o,base:!1}))]}function gn(e,t,o,n){let r=fa(o,n),i=e.find(m=>m.code===r.resourceCode),a=e.find(m=>m.code===t),d=(Array.isArray(i?.schema?.fields)?i.schema.fields:[]).find(m=>m.code===r.subtableFieldCode);if(!i||!a||i.code===a.code||d?.type!=="subtable"||d.subtable?.resourceCode!==t)throw new fe("NATIVE_PARENT_READ_BINDING_INVALID",n);if(e.flatMap(m=>(Array.isArray(m.schema?.fields)?m.schema.fields:[]).filter(E=>E.type==="subtable"&&E.subtable?.resourceCode===t).map(E=>({resource:m,field:E}))).length!==1)throw new fe("NATIVE_PARENT_READ_PARENT_AMBIGUOUS",n);let l=d.subtable.foreignKey,p=(Array.isArray(a.schema?.fields)?a.schema.fields:[]).find(m=>m.code===l);if(typeof l!="string"||!ua.test(l)||p?.type!=="uuid")throw new fe("NATIVE_PARENT_READ_FOREIGN_KEY_INVALID",n);return{...r,childResourceCode:t,foreignKey:l,...d.subtable.orderField?{orderField:d.subtable.orderField}:{}}}function Zr(e,t,o="/config/authz/dataPolicies"){let n=new Map;for(let[r,i]of t.entries())for(let a of pa(i,`${o}/${r}`)){if(a.rule.parentRead===void 0)continue;if(Object.keys(a.rule).some(l=>!["parentRead","roleCodes"].includes(l)))throw new fe("NATIVE_PARENT_READ_RULE_KEYS_INVALID",a.pointer);if(a.base&&(i.operations?.length!==1||i.operations[0]!=="read"))throw new fe("NATIVE_PARENT_READ_READ_ONLY",a.pointer);if(e.find(l=>l.code===i.resourceCode)?.dataPolicyCode!==i.code)throw new fe("NATIVE_PARENT_READ_POLICY_BINDING_INVALID",a.pointer);let d=gn(e,i.resourceCode,a.rule.parentRead,`${a.pointer}/parentRead`),c=n.get(i.resourceCode);if(c&&c!==d.resourceCode)throw new fe("NATIVE_PARENT_READ_PARENT_AMBIGUOUS",a.pointer);n.set(i.resourceCode,d.resourceCode)}for(let[r,i]of n)if(n.has(i))throw new fe("NATIVE_PARENT_READ_MULTI_HOP_FORBIDDEN",`${o}/${t.findIndex(a=>a.resourceCode===r)}`)}function No(e){return pa(e,"/dataPolicy").some(t=>t.rule.parentRead!==void 0)}var _a=e=>!!e&&typeof e=="object"&&!Array.isArray(e),Aa=(e,t)=>Object.keys(e).length===t.length&&Object.keys(e).every(o=>t.includes(o)),ma=e=>typeof e=="string"&&/^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$/.test(e)&&e.length<=100,ga=e=>typeof e=="string"&&/^[a-f0-9]{8}(-[a-f0-9]{4}){3}-[a-f0-9]{12}$/i.test(e);function Qr(e){throw new Error(`OPENXIANGDA_WORKFLOW_STAGE_${e}`)}function ei(e){(!_a(e)||!Aa(e,["workflowCode","resourceCode","actor","runningNodeIds","allowedStatuses"])||!ma(e.workflowCode)||!ma(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)&&Qr("POLICY_INVALID")}function Hl(e){(!_a(e)||!Aa(e,["instanceId","subjectRecordId","expectedInstanceSequence"])||!ga(e.instanceId)||!ga(e.subjectRecordId)||!Number.isSafeInteger(e.expectedInstanceSequence)||e.expectedInstanceSequence<0)&&Qr("GUARD_INVALID")}function Yl(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(r=>r.kind==="value"&&r.field==="revision"&&r.operator==="eq"&&Number.isSafeInteger(r.value)&&Number(r.value)>0))||Qr("SOURCE_GUARD_REQUIRED")}var Xl={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 Vt=class extends Error{constructor(o,n){super(o);this.code=o;this.pointer=n}code;pointer},Ae=e=>e&&typeof e=="object"&&!Array.isArray(e)?e:{},Ea=(e,t)=>e===t||e==="*"||e.endsWith(":*")&&t.startsWith(e.slice(0,-1));function ti(e){let{policy:t,resource:o,baselineRoleCode:n,baselineCapabilities:r,pointer:i}=e,a=A=>A===void 0||A===!0||Array.isArray(A)&&A.length>0&&A.every(O=>typeof O=="string"&&O.length>0&&!e.baselineDeniedCapabilities?.some(y=>Ea(y,O))&&r.some(y=>Ea(y,O))),s=(A,O="")=>{throw new Vt(A,`${i}/publicRead${O}`)},d=Ae(t.publicRead);(!t.publicRead||Object.keys(d).length!==1||!Object.hasOwn(d,"fields")||!Array.isArray(d.fields)||d.fields.length<1||d.fields.length>1e3||d.fields.some(A=>typeof A!="string"||!/^[A-Za-z][A-Za-z0-9_]{0,62}$/.test(A))||new Set(d.fields).size!==d.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||!a([Ae(o.capabilities).read]))&&s("AUTHENTICATED_PUBLIC_READ_BASELINE_OR_RESOURCE_INVALID");let c=Ae(o),l=Ae(c.schema).fields;(!Array.isArray(l)||!l.length)&&s("AUTHENTICATED_PUBLIC_READ_RESOURCE_FIELDS_MISSING");let f=new Map(l.map(A=>[String(Ae(A).code),Ae(A)])),p=new Set(d.fields),m=Ae(c.fieldPolicies);for(let A of p){let O=Ae(f.get(A));(!f.has(A)||O.system===!0||Ae(Ae(c.surface).fields)[A]?.system===!0||at.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}`),a(Ae(m[A]).read)||s("AUTHENTICATED_PUBLIC_READ_FIELD_NOT_BASELINE_READABLE",`/fields/${A}`)}let E=[...f.keys()].filter(A=>!p.has(A));for(let A of E)a(Ae(m[A]).read)&&s("AUTHENTICATED_PUBLIC_READ_PRIVATE_FIELD_ACCESSIBLE",`/fields/${A}`);E.length&&Zt.some(A=>a(Ae(m[A]).read))&&s("AUTHENTICATED_PUBLIC_READ_PRIVATE_HISTORY_ACCESSIBLE")}var oi=["exact-v1","nfkc-space-v1","nfkc-upper-ascii-v1"],qm=256,Ft=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"},ni=e=>!!(e&&typeof e=="object"&&!Array.isArray(e)),de=(e,t)=>{throw new Ft(e,t)},Ro=(e,t)=>e<t?-1:e>t?1:0,_n=(e,t,o)=>{Object.keys(e).some(n=>!t.includes(n))&&de(o,"\u4E0D\u652F\u6301\u672A\u77E5\u5C5E\u6027")};function ri(e,t,o="/uniqueKeys"){if(e===void 0)return;if(!Array.isArray(e)||e.length>8)return de(o,"\u6BCF\u8D44\u6E90\u6700\u591A 8 \u6761\u89C4\u5219");let n=new Map(t.map(i=>[i.code,i])),r=new Set;return e.map((i,a)=>{let s=`${o}/${a}`;if(!ni(i))return de(s,"\u89C4\u5219\u5FC5\u987B\u662F\u5BF9\u8C61");if(_n(i,["code","fields","when"],s),typeof i.code!="string"||!/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/.test(i.code)||i.code.length>20||r.has(i.code))return de(`${s}/code`,"\u9700\u8981\u4E0D\u91CD\u590D\u4E14\u4E0D\u8D85\u8FC7 20 \u5B57\u7B26\u7684 lower-kebab-case \u6807\u8BC6");if(r.add(i.code),!Array.isArray(i.fields)||i.fields.length<1||i.fields.length>4)return de(`${s}/fields`,"\u5FC5\u987B\u9009\u62E9 1 \u5230 4 \u4E2A\u5B57\u6BB5");let d=new Set,c=i.fields.map((m,E)=>{let A=`${s}/fields/${E}`;if(!ni(m))return de(A,"\u5B57\u6BB5\u5FC5\u987B\u662F\u5BF9\u8C61");_n(m,["fieldCode","normalizer"],A);let O=n.get(m.fieldCode);if(!O||!["text.short","uuid","option.single","resource-ref.single","user.single"].includes(O.type)||d.has(m.fieldCode))return de(`${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");d.add(m.fieldCode);let y=m.normalizer===void 0?"exact-v1":m.normalizer;return!oi.includes(y)||O.type!=="text.short"&&y!=="exact-v1"?de(`${A}/normalizer`,"\u5F52\u4E00\u5316\u65B9\u5F0F\u4E0D\u652F\u6301\u6216\u4E0E\u5B57\u6BB5\u7C7B\u578B\u4E0D\u7B26"):{fieldCode:O.code,normalizer:y}}).sort((m,E)=>Ro(m.fieldCode,E.fieldCode)),l=i.when===void 0?[]:i.when;if(!Array.isArray(l)||l.length>4)return de(`${s}/when`,"\u6700\u591A 4 \u4E2A\u5408\u53D6\u6761\u4EF6");let f=new Set,p=l.map((m,E)=>{let A=`${s}/when/${E}`;if(!ni(m))return de(A,"\u6761\u4EF6\u5FC5\u987B\u662F\u5BF9\u8C61");let O=n.get(m.fieldCode);if(!O)return de(`${A}/fieldCode`,"\u5B57\u6BB5\u4E0D\u5B58\u5728");let y;if(m.operator==="empty"||m.operator==="nonempty"){if(_n(m,["fieldCode","operator"],A),O.type!=="text.short")return de(A,"\u7A7A\u503C\u6761\u4EF6\u4EC5\u652F\u6301\u77ED\u6587\u672C");y={fieldCode:O.code,operator:m.operator}}else if(m.operator==="in"||m.operator==="notIn"){_n(m,["fieldCode","operator","values"],A);let b=new Set((O.options??[]).map(h=>h.value));if(O.type!=="option.single"||!Array.isArray(m.values)||m.values.length<1||m.values.length>16||m.values.some(h=>typeof h!="string"||h.length<1||h.length>128||!b.has(h))||new Set(m.values).size!==m.values.length)return de(A,"\u96C6\u5408\u6761\u4EF6\u9700\u8981 1 \u5230 16 \u4E2A\u4E0D\u91CD\u590D\u7684\u5DF2\u58F0\u660E\u5355\u9009\u503C");y={fieldCode:O.code,operator:m.operator,values:[...m.values].sort(Ro)}}else if(m.operator==="eq"||m.operator==="ne"){if(_n(m,["fieldCode","operator","value"],A),O.type!=="boolean"||typeof m.value!="boolean")return de(A,"\u7B49\u503C\u6761\u4EF6\u4EC5\u652F\u6301\u5E03\u5C14\u5B57\u6BB5\u548C\u5E03\u5C14\u503C");y={fieldCode:O.code,operator:m.operator,value:m.value}}else return de(`${A}/operator`,"\u53EA\u652F\u6301 empty\u3001nonempty\u3001in\u3001notIn \u548C\u5E03\u5C14 eq\u3001ne");let _=JSON.stringify(y);return f.has(_)?de(A,"\u6761\u4EF6\u4E0D\u80FD\u91CD\u590D"):(f.add(_),y)}).sort((m,E)=>Ro(JSON.stringify(m),JSON.stringify(E)));return{code:i.code,fields:c,when:p}}).sort((i,a)=>Ro(i.code,a.code))}function ii(e,t){let o=new Set(e.filter(n=>n.type==="user.single").map(n=>n.code));return t?.some(n=>n.fields.some(r=>o.has(r.fieldCode))||n.when?.some(r=>r.operator==="eq"||r.operator==="ne"))?"1.1.0":"1.0.0"}var wo={type:"string",pattern:"^[A-Za-z_][A-Za-z0-9_]{0,62}$"},Zl={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:wo,normalizer:{enum:[...oi]}}}},when:{type:"array",maxItems:4,uniqueItems:!0,items:{oneOf:[{type:"object",additionalProperties:!1,required:["fieldCode","operator"],properties:{fieldCode:wo,operator:{enum:["empty","nonempty"]}}},{type:"object",additionalProperties:!1,required:["fieldCode","operator","values"],properties:{fieldCode:wo,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:wo,operator:{enum:["eq","ne"]},value:{type:"boolean"}}}]}}}}};var Ia={"openxiangda.workflow.instance.completed.v2":"commit","openxiangda.workflow.instance.rejected.v2":"release","openxiangda.workflow.instance.withdrawn.v2":"release"};function ya(e,t){let o=()=>{throw new Error("NATIVE_EVENT_DECIMAL_RESERVATION_INVALID")},n=p=>!p||typeof p!="object"||Array.isArray(p)?o():p,r=n(e);if(Object.keys(r).some(p=>!["resourceCode","workflowCode","outcomes"].includes(p))||typeof r.resourceCode!="string"||!/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/.test(r.resourceCode)||typeof r.workflowCode!="string"||!/^[A-Za-z0-9._:-]{1,128}$/.test(r.workflowCode)||t.execution!==void 0||!Array.isArray(r.outcomes)||!r.outcomes.length||r.outcomes.length>3)return o();let i=t.resources.find(p=>p.code===r.resourceCode),a=t.reservations.find(p=>p.mode==="reserve"&&p.resourceCode===r.resourceCode),s=t.workflows.find(p=>p.code===r.workflowCode);if(!i||!a||!s||s.resourceCode!==i.code)return o();let d=i.fields.find(p=>p.code===a.statusFieldCode);if(d?.type!=="option.single")return o();let c=new Set(d.options?.map(p=>p.value)),l=new Set,f=r.outcomes.map(p=>{let m=n(p),E=m.eventType;return Object.keys(m).some(A=>!["eventType","mode","eligibleChildStatuses"].includes(A))||typeof E!="string"||!Object.prototype.hasOwnProperty.call(Ia,E)||!t.eventTypes.includes(E)||l.has(E)||m.mode!==Ia[E]||!Array.isArray(m.eligibleChildStatuses)||!m.eligibleChildStatuses.length||m.eligibleChildStatuses.length>16||new Set(m.eligibleChildStatuses).size!==m.eligibleChildStatuses.length||m.eligibleChildStatuses.some(A=>typeof A!="string"||!/^[A-Za-z0-9._:-]{1,128}$/.test(A)||!c.has(A))?o():(l.add(E),{eventType:E,mode:m.mode,eligibleChildStatuses:[...m.eligibleChildStatuses].sort()})}).sort((p,m)=>p.eventType.localeCompare(m.eventType));return{resourceCode:r.resourceCode,workflowCode:r.workflowCode,outcomes:f}}function ba(e,t){let o=n=>Array.isArray(n)?n.filter(r=>r&&typeof r=="object"&&!Array.isArray(r)):[];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(r=>({code:r.code,type:r.type,options:o(r.options).map(i=>({value:i.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 To=class extends Error{constructor(o,n){super(n);this.pointer=o}pointer;code="NATIVE_EVENT_ACTION_INVALID"};function si(e,t,o="/events/subscriptions"){if(e.execution===void 0)return;let n=(A,O)=>{throw new To(`${o}${A}`,O)},r=(A,O,y)=>((!A||typeof A!="object"||Array.isArray(A)||Object.keys(A).some(_=>!y.includes(_)))&&n(O,"Invalid action object or unsupported property"),A),i=r(e.execution,"/execution",["kind","version","operations"]);(i.kind!=="native-data"||i.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 a=e.filter?.resourceCodes;(!Array.isArray(a)||!a.length||a.length>20)&&n("/filter/resourceCodes","Native actions require explicit source resources");let s=new Map(t.map(A=>[A.code,A])),d=a.map(A=>{let O=s.get(A);return O||n("/filter/resourceCodes","Unknown source resource"),new Set((O.schema?.fields||[]).map(y=>y.code))}),c=new Set(e.payload?.fields||[]),l=e.payload?.includeChanges===!0,f=(A,O)=>{let y=r(A,O,["source","path","value"]);if(y.source==="literal"){(!Object.hasOwn(y,"value")||Object.hasOwn(y,"path"))&&n(O,"Literal binding requires only value");let u;try{u=JSON.stringify(y.value)}catch{n(O,"Literal must be JSON")}return(u===void 0||Buffer.byteLength(u)>65536)&&n(O,"Literal is too large or not JSON"),{source:"literal",value:JSON.parse(u)}}(y.source!=="event"||typeof y.path!="string"||Object.hasOwn(y,"value"))&&n(O,"Expected a literal or event binding");let _=y.path.split(".");(_.length>8||_.some(u=>!/^[A-Za-z0-9_-]+$/.test(u)||["__proto__","prototype","constructor"].includes(u)))&&n(O,"Invalid event path");let b=/^data\.projection\.([A-Za-z][A-Za-z0-9_]{0,62})$/.exec(y.path),h=/^data\.changes\.([A-Za-z][A-Za-z0-9_]{0,62})\.(before|after)$/.exec(y.path);if(b||h){let u=(b||h)[1];d.some(I=>!I.has(u))&&n(O,"Source field must exist on every filtered resource"),c.add(u),h&&(l=!0)}else["id","time","type","subject","data.recordId","data.revision","data.operation","data.resourceCode"].includes(y.path)||n(O,"Event path is not part of the data event contract");return{source:"event",path:y.path}};(!Array.isArray(i.operations)||i.operations.length<1||i.operations.length>16)&&n("/execution/operations","Expected 1 to 16 operations");let p={},m=i.operations.map((A,O)=>{let y=`/execution/operations/${O}`,_=r(A,y,["operation","resourceCode","data","id","expectedRevision"]);["create","update","delete"].includes(_.operation)||n(y,"Unsupported Native operation");let b=s.get(_.resourceCode);b||n(y,"Unknown action target resource");let h=new Map((b.schema?.fields||[]).map(I=>[I.code,I])),u=_.data===void 0?{}:r(_.data,`${y}/data`,[...h.keys()]);return Object.keys(u).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(u).some(I=>h.get(I)?.type==="serial-number")&&n(y,"Generated fields cannot be assigned"),p[_.resourceCode]=ee(b),{operation:_.operation,resourceCode:_.resourceCode,..._.operation==="create"?{}:{id:f(_.id,`${y}/id`),expectedRevision:f(_.expectedRevision,`${y}/expectedRevision`)},..._.operation==="delete"?{}:{data:Object.fromEntries(Object.entries(u).map(([I,R])=>[I,f(R,`${y}/data/${I}`)]))}}});(c.size>32||[...c].some(A=>d.some(O=>!O.has(A))))&&n("/payload/fields","Payload must contain at most 32 declared source fields");let E={kind:"native-data",version:1,operations:m,resourceDigests:p};return Buffer.byteLength(JSON.stringify(E))>65536&&n("/execution","Action plan exceeds 64 KiB"),{execution:{...E,digest:ee(E)},payload:{includeChanges:l,fields:[...c].sort()}}}function Ze(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function di(e,t){if(e?.instanceCommands===void 0)return[];let o=Ze(e.instanceCommands);if(!o||!Object.keys(o).length||Object.keys(o).some(r=>!["withdraw","terminate"].includes(r)))return["WORKFLOW_INSTANCE_COMMAND_POLICIES_INVALID"];let n=[];for(let[r,i]of Object.entries(o)){let a=Ze(i),s=r==="withdraw"?["beforeFact","reasonRequired"]:["beforeFact","capability"];if(!a||!Object.keys(a).length||Object.keys(a).some(d=>!s.includes(d))||Object.hasOwn(a,"reasonRequired")&&typeof a.reasonRequired!="boolean"){n.push(`WORKFLOW_INSTANCE_COMMAND_POLICY_INVALID:${r}`);continue}if(r==="terminate"){let d=a.capability;(typeof d!="string"||d.length>255||!/^app:[a-z][a-z0-9]*(?:-[a-z0-9]+)*:[A-Za-z0-9:._-]+$/.test(d)||t&&(!d.startsWith(`app:${t.appCode}:`)||!t.capabilities.includes(d)))&&n.push("WORKFLOW_INSTANCE_TERMINATE_CAPABILITY_INVALID")}if(Object.hasOwn(a,"beforeFact")){let d=a.beforeFact,c=Ze(e.inputSchema),l=Ze(Ze(c?.properties)?.[d]),f=Ze(Ze(e.subject)?.factProjection)?.[d],p=t?.fields.get(f);(typeof d!="string"||!/^[A-Za-z][A-Za-z0-9_]{0,62}$/.test(d)||!Array.isArray(c?.required)||!c.required.includes(d)||l?.type!=="string"||l?.format!=="date-time"||typeof f!="string"||t&&(p?.type!=="datetime"||p.nullable===!0))&&n.push(`WORKFLOW_INSTANCE_COMMAND_DEADLINE_FACT_INVALID:${r}`)}}return n}function Ql(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 eu(e){return e?.withdraw?.reasonRequired!==!1}function ai(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,r,i,a,s]=t,d=t[8],c=new Date(Date.UTC(Number(o),Number(n),0)).getUTCDate();if(Number(n)<1||Number(n)>12||Number(r)<1||Number(r)>c||Number(i)>23||Number(a)>59||Number(s)>59||d!=="Z"&&(Number(d.slice(1,3))>23||Number(d.slice(4))>59))return null;let l=Date.parse(e);return Number.isFinite(l)?l:null}function tu(e,t,o,n){let r=e?.[t];if(!r||r.beforeFact===void 0)return null;let i=r.beforeFact,a=Ze(o),s=i&&a&&Object.hasOwn(a,i)?ai(a[i]):null,d=n instanceof Date?n.getTime():ai(n);return s===null||d===null||!Number.isFinite(d)?"WORKFLOW_V2_CANCELLATION_DEADLINE_INVALID":d<s?null:"WORKFLOW_V2_CANCELLATION_DEADLINE_PASSED"}var Ee=e=>e&&typeof e=="object"&&!Array.isArray(e)?e:{},pt=(e,t)=>typeof e=="string"&&!!e.trim()&&e.length<=t,nu=/^[A-Za-z][A-Za-z0-9_-]*(?:\.[A-Za-z][A-Za-z0-9_-]*){0,15}$/,ci=e=>typeof e=="string"&&e.length<=256&&nu.test(e)&&!e.split(".").some(t=>["__proto__","prototype","constructor"].includes(t));function Co(e,t){let o=Ee(e),n=!0;for(let r of t.split(".")){n&&=Array.isArray(o.required)&&o.required.includes(r);let i=Ee(o.properties)[r];if(!i||typeof i!="object")return null;o=Ee(i)}return{schema:o,required:n}}function xt(e){let t=new Set,o=[],n=2048,r=(i,a)=>{if(--n<0||a>20){o.push("WORKFLOW_EXPRESSION_BUDGET_EXCEEDED");return}let s=Ee(i);if(s.op==="path")ci(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 d of s.values){if(n<0)break;r(d,a+1)}else s.op==="not"||s.op==="exists"?r(s.value,a+1):["eq","neq","gt","gte","lt","lte","in","contains"].includes(String(s.op))?(r(s.left,a+1),r(s.right,a+1)):o.push("WORKFLOW_EXPRESSION_OPERATOR_INVALID")}};return r(e,0),{paths:[...t],errors:[...new Set(o)]}}function li(e){if(e?.readability===void 0)return[];let t=[],o=ut(e),n=Ee(e.readability);(Object.keys(n).some(s=>!["variables","logic"].includes(s))||!Object.keys(n).length)&&t.push("WORKFLOW_READABILITY_INVALID");let r=Ee(n.variables);n.variables!==void 0&&(typeof n.variables!="object"||Array.isArray(n.variables)||n.variables===null)&&t.push("WORKFLOW_VARIABLES_INVALID"),Object.keys(r).length>128&&t.push("WORKFLOW_VARIABLE_LIMIT_EXCEEDED");for(let[s,d]of Object.entries(r)){let c=Ee(d);(!ci(s)||!Co(o,s))&&t.push(`WORKFLOW_VARIABLE_SOURCE_UNKNOWN:${s}`),(!pt(c.label,160)||Object.keys(c).some(l=>!["label","unit","description"].includes(l))||c.unit!==void 0&&!pt(c.unit,32)||c.description!==void 0&&!pt(c.description,2e3))&&t.push(`WORKFLOW_VARIABLE_METADATA_INVALID:${s}`)}let i=n.logic===void 0?[]:n.logic;(!Array.isArray(i)||i.length>32)&&t.push("WORKFLOW_LOGIC_LIMIT_INVALID");let a=new Set;for(let s of Array.isArray(i)?i.slice(0,32):[]){let d=Ee(s),c=String(d.code||"");e.approvedDelegation&&c==="kernel-approved-delegation"&&t.push("WORKFLOW_LOGIC_PLATFORM_CODE_RESERVED"),(!/^[a-z][a-z0-9-]{2,63}$/.test(c)||a.has(c)||!pt(d.title,160)||!pt(d.description,4e3)||Object.keys(d).some(l=>!["code","title","description","phase","nodeId","inputPaths","outputPaths","source"].includes(l)))&&t.push(`WORKFLOW_LOGIC_METADATA_INVALID:${c}`),a.add(c),(!["submission","node_input","completion"].includes(String(d.phase))||d.phase==="node_input"&&!Ee(e.nodes)[String(d.nodeId)]||d.phase!=="node_input"&&d.nodeId!==void 0)&&t.push(`WORKFLOW_LOGIC_ANCHOR_INVALID:${c}`);for(let l of["inputPaths","outputPaths"]){let f=d[l];if(!(l==="outputPaths"&&f===void 0))if(!Array.isArray(f)||f.length>32||new Set(f).size!==f.length)t.push(`WORKFLOW_LOGIC_PATHS_INVALID:${c}:${l}`);else for(let p of f)(!ci(p)||!Co(o,p))&&t.push(`WORKFLOW_LOGIC_SOURCE_UNKNOWN:${c}:${String(p)}`)}if(d.source!==void 0){let l=Ee(d.source);(!pt(l.path,256)||String(l.path).startsWith("/")||String(l.path).includes("..")||String(l.path).includes("://")||!/^sha256:[a-f0-9]{64}$/.test(String(l.digest))||l.symbol!==void 0&&!pt(l.symbol,160)||Object.keys(l).some(f=>!["path","symbol","digest"].includes(f)))&&t.push(`WORKFLOW_LOGIC_SOURCE_REFERENCE_INVALID:${c}`)}}for(let s of Object.values(Ee(e.nodes))){let d=Ee(s),c=Array.isArray(d.branches)?d.branches:[];for(let l of c){if(!l.when)continue;let f=xt(l.when);t.push(...f.errors.map(p=>`${p}:${d.id}`));for(let p of f.paths)Co(o,p)||t.push(`WORKFLOW_VARIABLE_SOURCE_UNKNOWN:${d.id}:${p}`)}}return[...new Set(t)]}function En(e,t){let o=ut(e),n=ke(e).regions,r=[],i=new Map,a=[];for(let l of Object.values(e.nodes)){if(l.kind==="approval")for(let[f,p,m]of[["approve",l.onApprove,"\u540C\u610F"],["reject",l.onReject,"\u62D2\u7EDD"]])p&&r.push({id:`${l.id}:${f}`,from:l.id,to:p,kind:f,label:m,variablePaths:[]});if(l.kind==="approval"||l.kind==="handle")for(let f of new Set(De(l)))e.nodes[f]?.kind==="correction"&&r.push({id:`${l.id}:return:${f}`,from:l.id,to:f,kind:"return",label:"\u9000\u56DE\u53D1\u8D77\u4EBA\u8865\u6B63",variablePaths:[]});if(l.kind==="parallel")for(let[f,p]of(l.branches||[]).entries()){let m=p.when?xt(p.when):{paths:[],errors:[]};for(let E of m.paths)i.has(E)||i.set(E,new Set),i.get(E).add(l.id);r.push({id:`${l.id}:parallel:${p.id}`,from:l.id,to:p.target,kind:"branch",parallelBranch:!0,label:p.title||`\u5206\u652F ${f+1}`,priority:f+1,...p.when?{expression:p.when}:{},variablePaths:m.paths})}if(l.kind==="join"&&l.next&&r.push({id:`${l.id}:next`,from:l.id,to:l.next,kind:"next",label:"\u5168\u90E8\u5206\u652F\u5B8C\u6210\u540E\u7EE7\u7EED",variablePaths:[]}),l.kind==="handle"&&l.next&&r.push({id:`${l.id}:next`,from:l.id,to:l.next,kind:"next",label:"\u529E\u7406\u5B8C\u6210",variablePaths:[]}),l.kind==="correction"&&l.next&&r.push({id:`${l.id}:resubmit`,from:l.id,to:l.next,kind:"resubmit",label:"\u91CD\u65B0\u63D0\u4EA4\uFF0C\u6309\u9000\u56DE\u8BBE\u7F6E\u7EE7\u7EED",variablePaths:[]}),l.kind==="cc"&&l.next&&r.push({id:`${l.id}:next`,from:l.id,to:l.next,kind:"next",label:"\u6284\u9001\u540E\u7EE7\u7EED",variablePaths:[]}),l.kind==="action"&&l.next){let f=Object.values(l.inputs||{}).flatMap(p=>p.source==="fact"?[p.path]:[]);for(let p of f)i.has(p)||i.set(p,new Set),i.get(p).add(l.id);r.push({id:`${l.id}:next`,from:l.id,to:l.next,kind:"next",label:te(l)?"\u53D1\u9001\u540E\u7EE7\u7EED":"\u6210\u529F\u56DE\u6267\u540E\u7EE7\u7EED",variablePaths:f})}if(l.kind==="condition"){for(let[f,p]of(l.branches||[]).entries()){let m=xt(p.when);for(let E of m.paths)i.has(E)||i.set(E,new Set),i.get(E).add(l.id);r.push({id:`${l.id}:branch:${f}`,from:l.id,to:p.target,kind:"branch",label:p.label||`\u6761\u4EF6 ${f+1}`,priority:f+1,expression:p.when,variablePaths:m.paths}),a.push(...m.errors.map(E=>({code:E,path:l.id})))}l.otherwise&&r.push({id:`${l.id}:default`,from:l.id,to:l.otherwise,kind:"default",label:"\u5747\u4E0D\u6EE1\u8DB3\u65F6",variablePaths:[]})}}let s=[...e.readability?.logic||[]];if(e.approvedDelegation){let l=e.approvedDelegation,f=l.confirmer==="initiator"?"\u7533\u8BF7\u4EBA\u672C\u4EBA":"\u6240\u9009\u4EE3\u7406\u4EBA";s.push({code:"kernel-approved-delegation",title:"\u6279\u51C6\u540E\u6574\u6279\u6388\u6743\u4EE3\u7406",phase:"completion",inputPaths:[l.requestsField],description:`\u6279\u51C6\u65F6\u6838\u9A8C${f}\u5728\u5F53\u524D\u9000\u56DE\u5468\u671F\u5B8C\u6210\u201C${e.nodes[l.confirmationNodeId]?.title||l.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${l.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 c=[...new Set([...i.keys(),...Object.keys(e.readability?.variables||{}),...s.flatMap(l=>[...l.inputPaths,...l.outputPaths||[]])])].slice(0,128).map(l=>{let f=Co(o,l),p=e.readability?.variables?.[l],m=l.split("."),E=e.subject?.factProjection[m[0]],A=m[0]==="steps"?e.nodes[m[1]]:void 0;return f||a.push({code:"WORKFLOW_VARIABLE_SOURCE_UNKNOWN",path:l}),{path:l,label:p?.label||String(f?.schema.title||l),type:String(f?.schema.type||"unknown"),...p,required:f?.required||!1,usedBy:[...i.get(l)||[]],source:f&&A?.handler?{kind:"step_output",nodeId:A.id,handlerCode:A.handler.code,handlerVersion:A.handler.version}:f&&E&&e.subject?{kind:"subject_field",resourceCode:e.subject.resourceCode,fieldPath:[E,...m.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(l=>({id:l.id,kind:l.kind,title:l.title||l.id,...l.kind==="parallel"?{parallel:{joinNodeId:l.join,branchNodeIds:n.find(f=>f.parallelNodeId===l.id)?.branches.flatMap(f=>f.nodeIds)||[],branchCount:l.branches?.length||0}}:{},...l.binding?{binding:l.binding}:{},...l.mode?{mode:l.mode}:{},...l.outcome?{outcome:l.outcome}:{},...l.kind==="cc"?{emptyPolicy:l.emptyPolicy,notify:l.notify!==!1}:{},...l.kind==="approval"?{emptyPolicy:l.emptyPolicy||"block",initiatorApprovalPolicy:l.initiatorApprovalPolicy||"manual",...l.completionDeadline?{completionDeadline:{...l.completionDeadline}}:{}}:{},...te(l)?{presentation:"notification"}:{},...l.kind==="action"&&l.handler&&!te(l)?{businessStep:{handler:l.handler,inputs:l.inputs||{},outputPaths:Object.keys(Ee(l.outputSchema).properties||{}).map(f=>`steps.${l.id}.${f}`)}}:{}})),edges:r,variables:c,logic:s,diagnostics:a}}function Oa(e,t=[]){let o=r=>{let i=t.find(a=>a.path===r)?.label;return i&&i!==r?i:void 0},n=o(e);if(n)return n;for(let r=e.lastIndexOf(".");r>0;r=e.lastIndexOf(".",r-1)){let i=o(e.slice(0,r));if(!i)continue;let a=e.slice(r+1);return a==="value"?`${i}\uFF08\u503C\uFF09`:a==="label"?`${i}\uFF08\u663E\u793A\u540D\u79F0\uFF09`:`${i}.${a}`}return e}function An(e,t=[],o=0){if(!e||o>20)return"\u65E0\u6CD5\u8BC6\u522B\u7684\u6761\u4EF6";if(e.op==="path")return Oa(e.path,t);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${An(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${An(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"},r=e.left.op==="path"?e.left.path:void 0,i=r&&e.right.op==="literal"&&typeof e.right.value=="number"?t.find(a=>a.path===r)?.unit:void 0;return`${An(e.left,t,o+1)} ${n[e.op]} ${An(e.right,t,o+1)}${i?` ${i}`:""}`}function ha(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&&ha(n.fields,t+1)}return o.readonly===!0})}function Wt(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"||!ha(e.taskPages?.[n.taskPageCode]?.fields))||[n.fieldPolicy?.default,...Object.values(n.fieldPolicy?.fields||{})].some(r=>r==="edit"||r==="edit_required"))&&t.push(`WORKFLOW_INITIATOR_APPROVAL_INPUT_REQUIRED:${o}`),(n.operationPolicy?.approve?.opinion==="required"||n.operationPolicy?.approve?.commentRequired===!0)&&t.push(`WORKFLOW_INITIATOR_APPROVAL_COMMENT_REQUIRED:${o}`))}return t}function ou(e,t,o,n,r){return e.kind==="approval"&&e.initiatorApprovalPolicy==="auto_approve"&&Wt({nodes:{node:e},...r?{taskPages:r}:{}}).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 og=8,ui={type:"array",minItems:2,maxItems:8,uniqueItems:!0,items:{type:"string",maxLength:128,pattern:"^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$"}};function In(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,r=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(i=>["__proto__","prototype","constructor"].includes(i))&&o.value===void 0;if(!o||typeof o!="object"||Array.isArray(o)||Object.keys(o).some(i=>!["dimension","value","valueFrom"].includes(i))||typeof o.dimension!="string"||!/^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$/.test(o.dimension)||!n&&!r)return["WORKFLOW_V2_BINDING_ROLE_UNION_SCOPE_INVALID"]}else if(e.scope!==void 0)return["WORKFLOW_V2_BINDING_ROLE_UNION_SCOPE_INVALID"];return[]}function fi(e){return e.roleCodes?[...e.roleCodes]:e.roleCode?[e.roleCode]:typeof e.until=="object"&&e.until.roleCode?[e.until.roleCode]:[]}function pi(e){return e.some(t=>Object.values(t.binding.bindings).some(o=>o.roleCodes!==void 0))}function mi(e){if(e.selectedInputPath===void 0)return[];let t=e.selectedInputPath;return!["app_role","app_role_in_scope"].includes(e.provider||"")||e.candidateField!==void 0||e.inputPath!==void 0||e.routing!==void 0||e.roleCode===void 0&&e.roleCodes===void 0||typeof t!="string"||t.length>255||!/^[A-Za-z][A-Za-z0-9_-]*(?:\.[A-Za-z][A-Za-z0-9_-]*)*$/.test(t)||t.split(".").some(o=>["__proto__","constructor","prototype"].includes(o))?["WORKFLOW_V2_ROLE_INPUT_SELECTION_INVALID"]:[]}function gi(e){return e.some(t=>Object.values(t.binding.bindings).some(o=>o.selectedInputPath!==void 0))}var Na=20,Ra=200,wa=["fixed_users","initiator","input_users","form_field_users","app_role","app_role_in_scope","previous_node_actor"];function So(e,t){let o=[];for(let[n,r]of Object.entries(e?.nodes||{})){if(r?.kind!=="cc"||((Object.keys(r).some(d=>!["id","kind","title","binding","next","emptyPolicy","notify","administration"].includes(d))||typeof r.title!="string"||!r.title.trim()||r.title.length>255||typeof r.binding!="string"||!r.binding.trim()||r.binding.length>255||typeof r.next!="string"||!r.next.trim()||!e.nodes?.[r.next]||!["block","skip"].includes(r.emptyPolicy)||r.notify!==void 0&&typeof r.notify!="boolean")&&o.push(`WORKFLOW_CC_NODE_INVALID:${n}`),!t))continue;let i=t.bindings?.[r.binding];if(!i){o.push(`WORKFLOW_CC_BINDING_NOT_FOUND:${n}`);continue}wa.includes(i.provider)||o.push(`WORKFLOW_CC_PROVIDER_INVALID:${n}`);let a=i.min??1,s=i.max??20;(!Number.isSafeInteger(a)||!Number.isSafeInteger(s)||a<1||s<a||s>200||i.provider==="fixed_users"&&(!Array.isArray(i.users)||!i.users.length||i.users.length>s))&&o.push(`WORKFLOW_CC_RECIPIENT_LIMIT_INVALID:${n}`)}return[...new Set(o)]}var qe=["complete","approve","reject","save_form","return","transfer","delegate","add_assignee"],Do=["fixed_users","app_role","app_role_in_scope"],ru=["single","any","all","sequence"],Qe=e=>!!e&&typeof e=="object"&&!Array.isArray(e),mt=(e,t)=>Object.keys(e).every(o=>t.includes(o)),yn=(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 gt(e){return e.allowedOperations||(e.kind==="handle"?["complete","save_form","return","transfer","delegate"]:qe.filter(t=>t!=="complete")).filter(t=>t!=="save_form"||!!e.taskPageCode)}function Ta(e,t){return t?.opinion!==void 0?t.opinion==="required":t?.commentRequired??e==="reject"}function Ca(e,t){return["transfer","delegate","add_assignee","return"].includes(e)?t?.opinion!==void 0?t.opinion==="required":t?.reasonRequired!==!1:!0}var jt=["none","optional","required"];function et(e,t){return e==="save_form"?"none":t?.opinion?t.opinion:(["complete","approve","reject"].includes(e)?Ta(e,t):Ca(e,t))?"required":"optional"}function _t(e,t){return t?.minimumOpinion??(et(e,t)==="required"?"required":"none")}function iu(e){return e.hasTaskPage&&(e.operationModel==null||e.operationModel==="configured-v1"&&e.allowedOperations?.includes("save_form")===!0)}function Sa(e,t,o={},n=!1){let r=["label","commentRequired","reasonRequired","opinion"];if(!Qe(e)||!Object.keys(e).length||!mt(e,n?[...r,"enabled"]:[...r,"minimumOpinion"])||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"||t==="approve"&&!e.enabled)||e.opinion!==void 0&&(!jt.includes(e.opinion)||t==="save_form")||e.minimumOpinion!==void 0&&(!jt.includes(e.minimumOpinion)||t==="save_form")||e.commentRequired!==void 0&&(typeof e.commentRequired!="boolean"||!["complete","approve","reject"].includes(t))||e.reasonRequired!==void 0&&(typeof e.reasonRequired!="boolean"||!["transfer","delegate","add_assignee","return"].includes(t))||e.opinion!==void 0&&[e.commentRequired,e.reasonRequired].some(i=>i!==void 0&&i!==(e.opinion==="required")))return!1;if(n&&(e.opinion!==void 0||e.commentRequired!==void 0||e.reasonRequired!==void 0)){let i=e.opinion??(e.commentRequired??e.reasonRequired?"required":"optional");if(jt.indexOf(i)<jt.indexOf(_t(t,o)))return!1}return!(!n&&e.minimumOpinion!==void 0&&jt.indexOf(et(t,e))<jt.indexOf(e.minimumOpinion))}function ko(e,t){let o=[];for(let[n,r]of Object.entries(e?.nodes||{})){if(!Qe(r))continue;let i=r.administration,a=r.operationPolicy;if(r.kind==="approval"||r.kind==="handle"){let d=gt(r);d.includes(r.kind==="handle"?"complete":"approve")||o.push(`WORKFLOW_NODE_FORWARD_OPERATION_REQUIRED:${n}`),d.includes("save_form")&&!r.taskPageCode&&o.push(`WORKFLOW_NODE_SAVE_PAGE_REQUIRED:${n}`),r.requiredOperations!==void 0&&(!yn(r.requiredOperations,qe,8)||r.requiredOperations.some(c=>!d.includes(c)))&&o.push(`WORKFLOW_NODE_REQUIRED_OPERATIONS_INVALID:${n}`)}if(r.kind==="cc"){(a!==void 0||i!==void 0&&(!Qe(i)||!mt(i,["assigneeProviders"])))&&o.push(`WORKFLOW_NODE_ADMINISTRATION_INVALID:${n}`),i?.assigneeProviders!==void 0&&!yn(i.assigneeProviders,Do,3)&&o.push(`WORKFLOW_NODE_ADMINISTRATION_PROVIDERS_INVALID:${n}`),i?.assigneeProviders?.includes("app_role_in_scope")&&t&&!t.bindings[r.binding||""]?.scope&&o.push(`WORKFLOW_NODE_ADMINISTRATION_SCOPE_REQUIRED:${n}`);continue}if(!["approval","handle"].includes(r.kind)){(i!==void 0||a!==void 0)&&o.push(`WORKFLOW_NODE_ADMINISTRATION_APPROVAL_REQUIRED:${n}`);continue}if(a!==void 0&&(!Qe(a)||Object.keys(a).length>8||Object.entries(a).some(([d,c])=>!qe.includes(d)||!gt(r).includes(d)||!Sa(c,d)))&&o.push(`WORKFLOW_NODE_OPERATION_POLICY_INVALID:${n}`),i===void 0)continue;if(!Qe(i)||!mt(i,["modes","assigneeProviders","operations"])){o.push(`WORKFLOW_NODE_ADMINISTRATION_INVALID:${n}`);continue}i.modes!==void 0&&(!yn(i.modes,ru,4)||!i.modes.includes(r.mode))&&o.push(`WORKFLOW_NODE_ADMINISTRATION_MODES_INVALID:${n}`),i.assigneeProviders!==void 0&&!yn(i.assigneeProviders,Do,3)&&o.push(`WORKFLOW_NODE_ADMINISTRATION_PROVIDERS_INVALID:${n}`);let s=t?.bindings[r.binding||""];s&&Array.isArray(i.assigneeProviders)&&i.assigneeProviders.includes("app_role_in_scope")&&!s.scope&&o.push(`WORKFLOW_NODE_ADMINISTRATION_SCOPE_REQUIRED:${n}`),i.operations!==void 0&&(!yn(i.operations,qe,8)||i.operations.some(d=>!gt(r).includes(d)))&&o.push(`WORKFLOW_NODE_ADMINISTRATION_OPERATIONS_INVALID:${n}`)}return o}function su(e,t,o,n){let r=[];if(!e||!Qe(o)||!Object.keys(o).length||!mt(o,["title","description","assignee","mode","operations"]))return["WORKFLOW_V2_NODE_CONFIGURATION_PATCH_INVALID"];let i=o;!i.assignee&&t?.provider==="supervisor_chain"&&t.continuous!==!1&&(i.mode||e.mode)!=="sequence"&&r.push("WORKFLOW_SUPERVISOR_CHAIN_SEQUENCE_REQUIRED"),Object.entries(i.operations||{}).some(([s,d])=>d?.enabled===!1&&e.requiredOperations?.includes(s))&&r.push("WORKFLOW_V2_NODE_CONFIGURATION_REQUIRED_OPERATION");for(let s of["title","description"])i[s]!==void 0&&(typeof i[s]!="string"||i[s].length>(s==="title"?255:1e3)||s==="title"&&!i[s].trim())&&r.push("WORKFLOW_V2_NODE_CONFIGURATION_PATCH_INVALID");let a=e.administration;if(i.mode!==void 0&&(!["approval","handle"].includes(e.kind)||!a?.modes?.includes(i.mode))&&r.push("WORKFLOW_V2_NODE_CONFIGURATION_MODE_READONLY"),i.operations!==void 0&&(!["approval","handle"].includes(e.kind)||!Qe(i.operations)||!Object.keys(i.operations).length||Object.keys(i.operations).length>8||Object.entries(i.operations).some(([s,d])=>!a?.operations?.includes(s)||!gt(e).includes(s)||!Sa(d,s,e.operationPolicy?.[s],!0)))&&r.push("WORKFLOW_V2_NODE_CONFIGURATION_OPERATION_INVALID"),i.assignee!==void 0){let s=i.assignee,d=a?.assigneeProviders||((e.kind==="approval"||e.kind==="handle")&&t&&Do.includes(t.provider)?[t.provider]:[]);if(t?.selectedInputPath&&!["app_role","app_role_in_scope"].includes(s?.provider||"")&&r.push("WORKFLOW_V2_NODE_CONFIGURATION_PROVIDER_READONLY"),!Qe(s)||!["approval","handle","cc"].includes(e.kind)||!d.includes(s.provider)||s.provider==="app_role_in_scope"&&!t?.scope)r.push("WORKFLOW_V2_NODE_CONFIGURATION_PROVIDER_READONLY");else if(s.provider==="fixed_users"){let c=e.kind==="cc"?t?.min??1:e.emptyPolicy==="skip"?0:1,l=e.kind==="cc"?Math.min(t?.max??20,200):200;(!mt(s,["provider","users"])||!Array.isArray(s.users)||s.users.length<c||s.users.length>l||new Set(s.users).size!==s.users.length||s.users.some(f=>typeof f!="string"||!f.trim()||f.length>255))&&r.push("WORKFLOW_V2_NODE_CONFIGURATION_USERS_INVALID")}else s.roleCodes!==void 0?(!mt(s,["provider","roleCodes"])||In({...s,...s.provider==="app_role_in_scope"?{scope:t?.scope}:{}}).length)&&r.push("WORKFLOW_V2_NODE_CONFIGURATION_ROLE_INVALID"):(!mt(s,["provider","roleCode"])||typeof s.roleCode!="string"||!/^[a-z][a-z0-9_-]{0,127}$/.test(s.roleCode))&&r.push("WORKFLOW_V2_NODE_CONFIGURATION_ROLE_INVALID")}return r.push(...Wt({nodes:{node:{...e,operationPolicy:_i(e,i).operationPolicy}},...n?{taskPages:n}:{}})),e.completionDeadline&&_i(e,i).operationPolicy.approve?.commentRequired===!0&&r.push("WORKFLOW_COMPLETION_DEADLINE_INPUT_REQUIRED:node"),r}function _i(e,t){let o=Object.fromEntries(gt(e).flatMap(n=>{let r=n,i=t?.operations?.[r],a={...e.operationPolicy?.[r],...i?.label!==void 0?{label:i.label}:{},...i?.commentRequired!==void 0?{commentRequired:i.commentRequired}:{},...i?.reasonRequired!==void 0?{reasonRequired:i.reasonRequired}:{},...i?.opinion!==void 0?{opinion:i.opinion}:{}};return i?.opinion===void 0&&(i?.commentRequired!==void 0||i?.reasonRequired!==void 0)&&a.opinion!==void 0&&(a.opinion=i.commentRequired??i.reasonRequired?"required":"optional"),a.opinion!==void 0&&(["complete","approve","reject"].includes(r)&&(a.commentRequired=a.opinion==="required"),["transfer","delegate","add_assignee","return"].includes(r)&&(a.reasonRequired=a.opinion==="required")),Object.keys(a).length?[[r,a]]:[]}));return{mode:t?.mode||e.mode,initiatorApprovalPolicy:e.initiatorApprovalPolicy||"manual",allowedOperations:gt(e).filter(n=>t?.operations?.[n]?.enabled!==!1),operationPolicy:o,fieldPolicy:{default:e.fieldPolicy?.default||"readonly",fields:{...e.fieldPolicy?.fields}}}}var Ai=["supervisor_chain","fixed_users","input_users","form_field_users","app_role","app_role_in_scope"];function vo(e,t){let o=[];for(let[n,r]of Object.entries(e?.nodes||{}))r.kind==="cc"||r.emptyPolicy===void 0||(r.kind!=="approval"||!["block","skip"].includes(r.emptyPolicy)?o.push(`WORKFLOW_APPROVAL_EMPTY_POLICY_INVALID:${n}`):r.emptyPolicy==="skip"&&t&&!Ai.includes(t.bindings?.[r.binding||""]?.provider)&&o.push(`WORKFLOW_APPROVAL_EMPTY_PROVIDER_UNSUPPORTED:${n}`));return o}function au(e,t){return e.kind==="approval"&&e.emptyPolicy==="skip"&&t?.emptyResult==="no_candidates"&&Ai.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 Ei(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 Da(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||Da(o.subtable.fields,t+1)))}function du(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 Ii(e){let t=[];for(let[o,n]of Object.entries(e?.nodes||{})){if(!n||typeof n!="object"||n.completionDeadline===void 0)continue;let r=n.completionDeadline;if(n.kind!=="approval"||!r||typeof r!="object"||Array.isArray(r)||Object.keys(r).length!==2||Object.keys(r).some(a=>!["afterSeconds","action"].includes(a))||r.action!=="approve"||!Number.isInteger(r.afterSeconds)||r.afterSeconds<1||r.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 i=n.taskPageCode?e.taskPages?.[n.taskPageCode]:void 0;(n.taskPageCode&&(!i||Da(i.fields))||[n.fieldPolicy?.default,...Object.values(n.fieldPolicy?.fields||{})].includes("edit_required")||n.operationPolicy?.approve?.opinion==="required"||n.operationPolicy?.approve?.commentRequired===!0||e.commandHandlers?.approve!==void 0)&&t.push(`WORKFLOW_COMPLETION_DEADLINE_INPUT_REQUIRED:${o}`)}return t}var ka="openxiangda.workflow-rejection-notification/v1",fg=4096;function va(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function Ut(e,t){return typeof e=="string"&&e.trim().length>0&&e.length<=t}function yi(e,t){return Object.keys(e).sort().join(",")===t.sort().join(",")}function bi(e){let t=e?.rejectionNotification;return t===void 0?[]:!va(t)||!yi(t,["recipient","title","summary"])||t.recipient!=="record_last_modifier"||!Ut(t.title,160)||!Ut(t.summary,500)?["WORKFLOW_REJECTION_NOTIFICATION_INVALID"]:Ut(e.subject?.resourceCode,63)?[]:["WORKFLOW_REJECTION_NOTIFICATION_SUBJECT_REQUIRED"]}function cu(e){if(!va(e)||e.schemaVersion!==ka||e.recipient!=="record_last_modifier"||!Ut(e.title,160)||!Ut(e.summary,500))return!1;let t=["schemaVersion","recipient","title","summary","status","sourceRevision"];if(e.status==="ready"){if(!yi(e,[...t,"userId"])||!Ut(e.userId,255)||!Number.isSafeInteger(e.sourceRevision)||Number(e.sourceRevision)<1)return!1}else if(e.status==="skipped"){if(!yi(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 Oi(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(r=>!["approve","reject","withdraw","resubmit"].includes(r)))return["WORKFLOW_BUSINESS_COMMAND_HANDLERS_INVALID"];let n=[];o.resubmit&&!Object.values(e.nodes||{}).some(r=>r.kind==="correction")&&n.push("WORKFLOW_BUSINESS_CORRECTION_REQUIRED");for(let[r,i]of Object.entries(o)){if(!i||typeof i!="object"||Array.isArray(i)||Object.keys(i).some(s=>!["operationCode","transitionPolicy","derivedSubjectFields"].includes(s))||i.transitionPolicy!==void 0&&(r!=="approve"||i.transitionPolicy!=="workflow")||!/^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$/.test(i.operationCode||"")){n.push("WORKFLOW_BUSINESS_COMMAND_HANDLER_INVALID");continue}if(i.derivedSubjectFields!==void 0){let s=i.derivedSubjectFields,d=new Set(Object.values(e.subject?.factProjection||{}));(r!=="resubmit"||!Array.isArray(s)||s.length<1||s.length>32||new Set(s).size!==s.length||s.some(c=>typeof c!="string"||!/^[A-Za-z][A-Za-z0-9_]{0,62}$/.test(c)||!d.has(c)||at.has(c)||["createdBy","updatedBy","createdAt","updatedAt"].includes(c)||Object.values(e.taskPages||{}).some(l=>l.fields?.some(f=>f.code===c&&f.readonly!==!0))))&&n.push("WORKFLOW_CORRECTION_DERIVED_SUBJECT_FIELDS_INVALID")}if(!t)continue;let a=t.find(s=>s.code===i.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(r))&&n.push("WORKFLOW_BUSINESS_COMMAND_OPERATION_INVALID")}return["approve","reject","withdraw"].some(r=>Object.hasOwn(o,r))&&Object.values(e.nodes||{}).some(r=>r.kind==="approval"&&(r.emptyPolicy==="skip"||r.initiatorApprovalPolicy==="auto_approve"))&&n.push("WORKFLOW_BUSINESS_COMMAND_AUTOMATIC_DECISION_FORBIDDEN"),[...new Set(n)]}var lu={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}}};function uu(e,t,o){if(!(t==="resubmit"&&o===!1))return e.commandHandlers?.[t]}var Pa=["fixed_users","initiator","app_role","app_role_in_scope"],fu=e=>!!e&&typeof e=="object"&&!Array.isArray(e);function Po(e,t){let o=e?.launchPreflight;if(o===void 0)return[];if(!fu(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(r=>typeof r!="string"||!/^[A-Za-z][A-Za-z0-9_-]{0,127}$/.test(r)))return["WORKFLOW_LAUNCH_PREFLIGHT_INVALID"];let n=[];for(let r of o.requiredApprovalNodes){let i=e.nodes?.[r];if(!i||i.kind!=="approval"){n.push(`WORKFLOW_LAUNCH_PREFLIGHT_NODE_INVALID:${r}`);continue}if(!t)continue;let a=t.bindings?.[i.binding||""];(!a||!Pa.includes(a.provider)||a.candidateField!==void 0)&&n.push(`WORKFLOW_LAUNCH_PREFLIGHT_PROVIDER_UNSUPPORTED:${r}`)}return n}var hi=e=>!!e&&typeof e=="object"&&!Array.isArray(e),pu=/^[A-Za-z][A-Za-z0-9_]{0,62}$/,$a=/^[A-Za-z][A-Za-z0-9_-]{0,127}$/,La=/^membership:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,Ag=500,Eg=262144;function Ni(e){if(e?.approvedDelegation===void 0)return[];let t=e.approvedDelegation;if(!hi(t)||Object.keys(t).some(d=>!["confirmationNodeId","confirmer","requestsField","maxRequests"].includes(d))||!$a.test(t.confirmationNodeId||"")||!["initiator","delegate"].includes(t.confirmer)||!pu.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(d=>d!=="single")||n.allowedOperations?.some(d=>["transfer","delegate","add_assignee","admin_override"].includes(d)))&&o.push("WORKFLOW_APPROVED_DELEGATION_CONFIRMATION_INVALID");let r=e.inputSchema?.properties?.[t.requestsField];(!r||r.type!=="array"||!Number.isSafeInteger(r.maxItems)||r.maxItems<1||r.maxItems>t.maxRequests||!r.items||r.items.type!=="object"||r.items.additionalProperties!==!1||!e.subject?.factProjection?.[t.requestsField])&&o.push("WORKFLOW_APPROVED_DELEGATION_REQUEST_SCHEMA_INVALID"),Object.values(e.nodes||{}).some(d=>d.kind==="end"&&d.outcome==="approved")||o.push("WORKFLOW_APPROVED_DELEGATION_APPROVED_END_REQUIRED");let a=[e.startAt],s=new Set;for(;a.length;){let d=a.pop();if(d===t.confirmationNodeId||s.has(d))continue;s.add(d);let c=e.nodes?.[d];c&&(c.kind==="end"&&c.outcome==="approved"&&o.push("WORKFLOW_APPROVED_DELEGATION_CONFIRMATION_BYPASS"),c.kind==="approval"&&a.push(c.onApprove,c.onReject),c.kind==="condition"&&a.push(c.otherwise,...(c.branches||[]).map(l=>l.target)),(c.kind==="cc"||c.kind==="action")&&a.push(c.next))}return[...new Set(o)]}function mu(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 r=["key","delegatorRoleSubjectKey","delegatorRoleSubjectRevision","delegate","delegateRoleSubjectKey","expectedDelegateRevision","workflowCode","nodeId","validFrom","validTo","reason"],i=(d,c)=>typeof d=="string"&&d.trim().length>0&&d.length<=c,a=d=>{if(typeof d!="string")return!1;let c=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)(?:\.\d{1,3})?(?:Z|[+-](\d\d):(\d\d))$/.exec(d);if(!c)return!1;let[,l,f,p,m,E,A,O,y]=c,_=Number(l),b=Number(f),h=Number(p),I=[31,_%4===0&&(_%100!==0||_%400===0)?29:28,31,30,31,30,31,31,30,31,30,31];return b>=1&&b<=12&&h>=1&&h<=I[b-1]&&Number(m)<=23&&Number(E)<=59&&Number(A)<=59&&(O===void 0||Number(O)<=23&&Number(y)<=59)&&Number.isFinite(Date.parse(d))},s=o.map(d=>hi(d)?((Object.keys(d).some(c=>!r.includes(c))||!i(d.delegatorRoleSubjectKey,255)||!La.test(d.delegatorRoleSubjectKey)||!i(d.delegateRoleSubjectKey,255)||!La.test(d.delegateRoleSubjectKey)||!Number.isSafeInteger(d.delegatorRoleSubjectRevision)||d.delegatorRoleSubjectRevision<1||!Number.isSafeInteger(d.expectedDelegateRevision)||d.expectedDelegateRevision<1||!hi(d.delegate)||Object.keys(d.delegate).some(c=>!["value","label"].includes(c))||!i(d.delegate.value,255)||!i(d.delegate.label,200)||!(d.workflowCode===null||i(d.workflowCode,128)&&$a.test(d.workflowCode))||!(d.nodeId===null||i(d.nodeId,128)&&/^[A-Za-z0-9._:-]{1,128}$/.test(d.nodeId)&&d.workflowCode)||!a(d.validFrom)||!a(d.validTo)||Date.parse(d.validFrom)>=Date.parse(d.validTo)||!i(d.reason,4e3)||d.key!==void 0&&!i(d.key,128))&&n(),{...d,delegate:{value:d.delegate.value,label:d.delegate.label},validFrom:new Date(d.validFrom).toISOString(),validTo:new Date(d.validTo).toISOString()}):n());return e.confirmer==="delegate"&&new Set(s.map(d=>d.delegate.value)).size!==1&&n(),s}var gu=e=>!!e&&typeof e=="object"&&!Array.isArray(e)&&[null,Object.prototype].includes(Object.getPrototypeOf(e));function Ri(e){let t=e?.nodes||{},o=Object.values(t).filter(s=>s?.kind==="correction");if(!o.length)return[];let n=[],r=s=>s?.kind==="approval"?[s.onApprove,s.onReject]:s?.kind==="condition"?[...(Array.isArray(s.branches)?s.branches:[]).map(d=>d.target),s.otherwise]:s?.kind==="action"||s?.kind==="cc"||s?.kind==="handle"?[s.next]:[],i=new Set,a=[e.startAt];for(;a.length;){let s=a.pop();i.has(s)||(i.add(s),a.push(...r(t[s])))}for(let s of o){(!gu(s)||Object.keys(s).some(c=>!["id","kind","title","taskPageCode","next","reminders"].includes(c))||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"),(i.has(s.id)||Object.values(t).some(c=>r(c).includes(s.id)))&&n.push("WORKFLOW_CORRECTION_FORWARD_ENTRY_FORBIDDEN"),Object.values(t).some(c=>(c?.kind==="approval"||c?.kind==="handle")&&i.has(c.id)&&De(c).includes(s.id))||n.push("WORKFLOW_CORRECTION_RETURN_SOURCE_REQUIRED");let d=e.taskPages?.[s.taskPageCode];!d||!Array.isArray(d.fields)?n.push("WORKFLOW_CORRECTION_PAGE_REQUIRED"):d.fields.some(c=>c?.subtable&&Object.values(e.subject?.factProjection||{}).some(l=>l===c.code||l.startsWith(`${c.code}.`)))&&n.push("WORKFLOW_CORRECTION_OWNED_FACTS_UNSUPPORTED")}return[...new Set(n)]}var bn=class extends Error{constructor(o){super(o);this.code=o}code},_u=["projection","triggerCode","resourceCode","recordId","recordRevision","field","dueAt"];function wi(e,t,o){let n=i=>{throw new bn(i)};t.length>100&&n("DATE_TRIGGER_PROJECTION_LIMIT");let r=new Set;for(let i of t){let a=i.filter?.resourceCodes||[];if(Array.isArray(a)||n("DATE_TRIGGER_PROJECTION_INVALID"),a.length&&!a.includes(e))continue;let s=i.payload?.fields||[];(!Array.isArray(s)||s.length>32)&&n("DATE_TRIGGER_PROJECTION_LIMIT");for(let d of s)(typeof d!="string"||!/^[A-Za-z_][A-Za-z0-9_]{0,62}$/.test(d)||["__proto__","constructor","prototype"].includes(d))&&n("DATE_TRIGGER_PROJECTION_FIELD_INVALID"),r.add(d)}if(r.size>64&&n("DATE_TRIGGER_PROJECTION_LIMIT"),o!==void 0){let i=o?.schema?.fields??o?.fields;Array.isArray(i)||n("DATE_TRIGGER_PROJECTION_RESOURCE_INVALID");let a=new Map(i.map(s=>[s.code,s]));for(let s of r){let d=a.get(s);d||n("DATE_TRIGGER_PROJECTION_FIELD_UNKNOWN"),d.type==="subtable"&&n("DATE_TRIGGER_PROJECTION_SUBTABLE_FORBIDDEN"),o.fieldPolicies?.[s]?.mask==="omit"&&n("DATE_TRIGGER_PROJECTION_FIELD_SENSITIVE")}}return[...r].sort()}function Au(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 bn("DATE_TRIGGER_PROJECTION_SCHEMA_INVALID");return{...e,properties:{...e.properties,projection:{}}}}var Fa=200,Lo=1024*1024,xa=65536,Si=$e,Ti=it,At=new Set(["__proto__","prototype","constructor"]),Wa=/^[A-Za-z][A-Za-z0-9_-]{0,63}$/,hn=/^[A-Za-z][A-Za-z0-9_]{0,62}$/,Va=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/,pe=e=>!!e&&typeof e=="object"&&!Array.isArray(e)&&[null,Object.prototype].includes(Object.getPrototypeOf(e)),ze=(e,t)=>pe(e)&&Object.keys(e).every(o=>t.includes(o)&&!At.has(o)),$o=e=>{try{return new TextEncoder().encode(JSON.stringify(e)).length}catch{return 1/0}},ja=e=>e==null||typeof e=="string"&&!e.trim()||Array.isArray(e)&&e.length===0;function tt(e,t){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t))return e.length===t.length&&e.every((n,r)=>tt(n,t[r]));if(!pe(e)||!pe(t))return!1;let o=Object.keys(e);return o.length===Object.keys(t).length&&o.every(n=>Object.hasOwn(t,n)&&tt(e[n],t[n]))}function Ci(e,t){let o=t.split(".");if(!(o.some(n=>!Wa.test(n)||At.has(n))||o.length>12))return o.reduce((n,r)=>pe(n)&&Object.hasOwn(n,r)?n[r]:void 0,e)}function Ge(e,t){switch(e.op){case"literal":return e.value;case"path":return Ci({values:t},e.path);case"and":return e.values.every(o=>!!Ge(o,t));case"or":return e.values.some(o=>!!Ge(o,t));case"not":return!Ge(e.value,t);case"exists":return!ja(Ge(e.value,t));default:{let o=Ge(e.left,t),n=Ge(e.right,t);return e.op==="eq"?tt(o,n):e.op==="neq"?!tt(o,n):e.op==="in"?Array.isArray(n)&&n.some(r=>tt(r,o)):e.op==="contains"?Array.isArray(o)?o.some(r=>tt(r,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 On(e,t,o=0,n={nodes:0}){if(o>8||++n.nodes>64||!pe(e))return!1;if(e.op==="literal")return ze(e,["op","value"])&&Object.hasOwn(e,"value")&&$o(e.value)<=4096&&Nn(e.value);if(e.op==="path"){if(!ze(e,["op","path"])||typeof e.path!="string")return!1;let r=e.path.split(".");return r[0]==="values"&&r.length>=2&&r.length<=8&&t.has(r[1])&&r.every(i=>hn.test(i)&&!At.has(i))}return["not","exists"].includes(e.op)?ze(e,["op","value"])&&On(e.value,t,o+1,n):["and","or"].includes(e.op)?ze(e,["op","values"])&&Array.isArray(e.values)&&e.values.length>0&&e.values.length<=16&&e.values.every(r=>On(r,t,o+1,n)):["eq","neq","gt","gte","lt","lte","in","contains"].includes(e.op)&&ze(e,["op","left","right"])&&On(e.left,t,o+1,n)&&On(e.right,t,o+1,n)}function Rn(e,t,o,n=Ti){let r=[],i=e.taskPages;if(i!==void 0&&(!pe(i)||Object.keys(i).length===0||Object.keys(i).length>16||$o(i)>xa))return["WORKFLOW_TASK_PAGES_INVALID"];for(let[a,s]of Object.entries(i||{})){let d=`taskPages.${a}`;if(!Wa.test(a)||At.has(a)||!ze(s,["title","fields"])||typeof s.title!="string"||!s.title.trim()||s.title.length>160||!Array.isArray(s.fields)||!s.fields.length||s.fields.length>Fa){r.push(`WORKFLOW_TASK_PAGE_INVALID:${d}`);continue}let c=new Set(s.fields.map(p=>p?.code));c.size!==s.fields.length&&r.push(`WORKFLOW_TASK_PAGE_DUPLICATE_FIELD:${d}`);let l=0,f=new Set;for(let p of s.fields){if(!ze(p,["code","readonly","required","visibleWhen","requiredWhen","subtable"])||!hn.test(p.code)||At.has(p.code)||["readonly","required"].some(m=>p[m]!==void 0&&typeof p[m]!="boolean")||p.readonly&&(p.required||p.requiredWhen)){r.push(`WORKFLOW_TASK_PAGE_FIELD_INVALID:${d}`);continue}for(let m of["visibleWhen","requiredWhen"])p[m]!==void 0&&!On(p[m],c)&&r.push(`WORKFLOW_TASK_PAGE_EXPRESSION_INVALID:${d}.${p.code}.${m}`);if(t){let m=t.get(p.code);if((!m||m.system||m.hidden||m.type==="serial-number"||!p.readonly&&m.widget==="readonly"||!p.readonly&&m.type==="subtable"&&!p.subtable||p.subtable&&m.type!=="subtable")&&r.push(`WORKFLOW_TASK_PAGE_RESOURCE_FIELD_INVALID:${d}.${p.code}`),p.subtable&&m?.subtable){let E=m.subtable;l+=E.maxRows??20,(f.has(E.resourceCode)||!Number.isSafeInteger(E.maxRows??20)||(E.maxRows??20)<1||(E.maxRows??20)>Si||!hn.test(E.foreignKey)||!hn.test(E.orderField)||E.foreignKey===E.orderField)&&r.push(`WORKFLOW_TASK_SUBTABLE_RELATION_INVALID:${d}.${p.code}`),f.add(E.resourceCode);let A=o?.get(E.resourceCode);o&&(!A||!["uuid","resource-ref.single"].includes(A.get(E.foreignKey)?.type||"")||A.get(E.orderField)?.type!=="number.integer")&&r.push(`WORKFLOW_TASK_SUBTABLE_RELATION_INVALID:${d}.${p.code}`);for(let O of Array.isArray(p.subtable.fields)?p.subtable.fields:[]){if(!O||typeof O.code!="string")continue;let y=A?.get(O.code);(O.code===E.foreignKey||O.code===E.orderField||A&&(!y||y.system||y.hidden||y.type==="subtable"||!O.readonly&&(y.widget==="readonly"||y.type==="serial-number")))&&r.push(`WORKFLOW_TASK_SUBTABLE_FIELD_UNSUPPORTED:${d}.${p.code}.${O.code}`)}}else p.subtable&&t&&r.push(`WORKFLOW_TASK_SUBTABLE_RELATION_INVALID:${d}.${p.code}`)}p.subtable&&(p.readonly||!ze(p.subtable,["fields","create","delete","reorder"])||["create","delete","reorder"].some(m=>p.subtable?.[m]!==void 0&&typeof p.subtable[m]!="boolean")||!Array.isArray(p.subtable.fields)||p.subtable.fields.some(m=>m?.subtable)?r.push(`WORKFLOW_TASK_SUBTABLE_PAGE_INVALID:${d}.${p.code}`):r.push(...Rn({taskPages:{child:{title:"\u5B50\u884C",fields:p.subtable.fields}}},o?.get(t?.get(p.code)?.subtable?.resourceCode||"")).map(m=>`${m}:${d}.${p.code}`)))}(l>Math.min(n,Ti)||l<0||!Number.isSafeInteger(l)||!Number.isSafeInteger(n)||n<1)&&r.push(`WORKFLOW_TASK_SUBTABLE_BUDGET_EXCEEDED:${d}`)}for(let[a,s]of Object.entries(e.nodes||{}))pe(s)&&s.taskPageCode!==void 0&&(!["approval","handle","correction"].includes(s.kind)||typeof s.taskPageCode!="string"||!pe(i)||!Object.hasOwn(i,s.taskPageCode)?r.push(`WORKFLOW_TASK_PAGE_NOT_FOUND:${a}`):Array.isArray(i[s.taskPageCode]?.fields)&&i[s.taskPageCode].fields.some(d=>d&&(s.fieldPolicy?.fields?.[d.code]||s.fieldPolicy?.default)==="hidden")&&r.push(`WORKFLOW_TASK_PAGE_FIELD_HIDDEN:${a}`));return r}function Di(e,t){return e.fields.map(o=>({code:o.code,visible:o.visibleWhen===void 0||!!Ge(o.visibleWhen,t),readonly:o.readonly===!0,required:o.required===!0||o.requiredWhen!==void 0&&!!Ge(o.requiredWhen,t)}))}var ve=class extends Error{constructor(o,n){super(o);this.code=o;this.field=n}code;field;rowIndex;childField};function Eu(e,t){return t.map(o=>({key:String(o.id),id:String(o.id),revision:Number(o.revision),state:"persisted",values:Object.fromEntries(Di({title:"\u5B50\u884C",fields:e.fields},o).filter(n=>n.visible&&!n.readonly).map(n=>[n.code,o[n.code]??null]))}))}function Iu(e,t,o,n,r,i=!0,a=0){let s=e.subtable,d=m=>{throw new ve(m,e.code)};if(!s||!Number.isSafeInteger(t)||t<1||t>Si||!Number.isSafeInteger(a)||a<0||a>t||!Array.isArray(n)||n.length>2*t||$o(n)>Lo||!Nn(n))return d("WORKFLOW_TASK_SUBTABLE_VALUES_INVALID");let c=new Map(o.map(m=>[String(m.id),m])),l=new Set,f=new Set,p=[];for(let m of n){if(!ze(m,["key","state","id","revision","values"])||typeof m.key!="string"||!Va.test(m.key)||l.has(m.key)||!["created","persisted","deleted"].includes(m.state)||!pe(m.values))return d("WORKFLOW_TASK_SUBTABLE_ROW_INVALID");if(l.add(m.key),m.state==="created"){if(!s.create||m.id!==void 0||m.revision!==void 0||c.has(m.key))return d("WORKFLOW_TASK_SUBTABLE_CREATE_FORBIDDEN")}else{if(typeof m.id!="string"||m.id!==m.key||!Va.test(m.id)||f.has(m.id)||!Number.isSafeInteger(m.revision)||m.revision<1||!c.has(m.id))return d("WORKFLOW_TASK_SUBTABLE_SCOPE_CONFLICT");if(f.add(m.id),i&&Number(c.get(m.id).revision)!==m.revision)return d("WORKFLOW_TASK_SUBTABLE_REVISION_CONFLICT")}if(m.state==="deleted"){if(!s.delete||Object.keys(m.values).length)return d("WORKFLOW_TASK_SUBTABLE_DELETE_FORBIDDEN");continue}try{Ua({title:e.code,fields:s.fields},m.id?c.get(m.id):{},m.values,r)}catch(E){if(!(E instanceof ve))throw E;let A=new ve(E.code,e.code);throw A.rowIndex=p.length,E.field!==void 0&&(A.childField=E.field),A}p.push(m)}if(f.size!==c.size)return d("WORKFLOW_TASK_SUBTABLE_SCOPE_CONFLICT");if(p.length>t)return d("WORKFLOW_TASK_SUBTABLE_MAX_ROWS_EXCEEDED");if(r&&p.length<a)return d("WORKFLOW_TASK_SUBTABLE_MIN_ROWS_NOT_MET");if(!s.reorder){let m=o.filter(A=>p.some(O=>O.id===String(A.id))).map(A=>String(A.id)),E=p.filter(A=>A.state==="persisted").map(A=>A.id);if(!tt(m,E)||p.some((A,O)=>A.state==="created"&&p.slice(O+1).some(y=>y.state==="persisted")))return d("WORKFLOW_TASK_SUBTABLE_REORDER_FORBIDDEN")}return n}function Nn(e,t={members:0},o=0){return++t.members>5e4||o>12?!1:e===null||typeof e=="boolean"?!0:typeof e=="string"?e.length<=Lo:typeof e=="number"?Number.isFinite(e):Array.isArray(e)?e.length<=1e3&&e.every(n=>Nn(n,t,o+1)):pe(e)&&Object.entries(e).every(([n,r])=>!At.has(n)&&Nn(r,t,o+1))}function Ua(e,t,o,n){if(!pe(o)||$o(o)>Lo||!Nn(o))throw new ve("WORKFLOW_TASK_FORM_VALUES_INVALID");let r={...t,...o},i=new Map(Di(e,r).map(a=>[a.code,a]));for(let a of Object.keys(o)){let s=i.get(a);if(!s||s.readonly||!s.visible)throw new ve("WORKFLOW_TASK_FORM_FIELD_NOT_EDITABLE",a)}if(n)for(let a of i.values()){let s=r[a.code],d=e.fields.find(c=>c.code===a.code)?.subtable&&Array.isArray(s)?s.every(c=>pe(c)&&c.state==="deleted"):ja(s);if(a.visible&&!a.readonly&&a.required&&d)throw new ve("WORKFLOW_TASK_FORM_REQUIRED",a.code)}return r}function yu(e,t,o){let n=JSON.parse(JSON.stringify(t));for(let[a,s]of Object.entries(e.subject?.factProjection||{})){let d=a.split(".");if(!d.length||d.length>12||a.length>128||d[0]==="steps"||d.some(l=>!hn.test(l)||At.has(l)))throw new ve("WORKFLOW_TASK_FORM_FACT_PROJECTION_INVALID");if(!Object.hasOwn(o,s))throw new ve("WORKFLOW_TASK_FORM_FACT_FIELD_MISSING",s);let c=n;for(let l of d.slice(0,-1))c=c[l]=pe(c[l])?c[l]:{};c[d.at(-1)]=o[s]===void 0?void 0:JSON.parse(JSON.stringify(o[s]))}let r=new Set,i=Object.values(e.nodes||{}).filter(a=>a.kind==="action");for(let a=0;a<=i.length;a++){let s=!1;for(let d of i)pe(n.steps)&&Object.hasOwn(n.steps,d.id)&&Object.values(d.inputs||{}).some(c=>c.source==="fact"&&!tt(Ci(t,c.path),Ci(n,c.path)))&&(delete n.steps[d.id],r.add(d.id),s=!0);if(!s)break}return{facts:n,invalidatedNodeIds:[...r].sort()}}function bu(e,t,o){let n=e.nodes||{};for(let r of o){let i=new Set,a=new Map,s=d=>{if(d===r)return!0;if(a.has(d))return a.get(d);if(i.has(d)||i.size>200)return!1;let c=n[d];if(!pe(c)||c.kind==="end")return!1;i.add(d);let l=c.kind==="approval"?[c.onApprove]:c.kind==="condition"?[...(c.branches||[]).map(p=>p.target),c.otherwise]:[c.next],f=l.length>0&&l.every(p=>typeof p=="string"&&s(p));return i.delete(d),a.set(d,f),f};if(!s(t))return!1}return!0}var Rg=256,wg=64,Tg=262144,Ou=/^[a-z][a-z0-9_-]{0,127}$/,hu=/^[A-Za-z][A-Za-z0-9_]*(?:\.[A-Za-z][A-Za-z0-9_]*)*$/,Ba=new Set(["__proto__","prototype","constructor"]),We=e=>!!e&&typeof e=="object"&&!Array.isArray(e),Tn=(e,t)=>Object.keys(e).every(o=>t.includes(o)),Et=(e,t)=>typeof e=="string"&&e.trim().length>0&&e.length<=t&&!/[\u0000-\u001f\u007f]/.test(e),Je=e=>typeof e=="string"&&Ou.test(e)&&!Ba.has(e),Ka=e=>typeof e=="string"&&e.length<=255&&hu.test(e)&&!e.split(".").some(t=>Ba.has(t)),Nu=e=>We(e)&&Tn(e,["dimension","valueFrom","value"])&&Je(e.dimension)&&(Et(e.value,255)&&e.valueFrom===void 0||Ka(e.valueFrom)&&e.value===void 0),Ma=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)),wn={type:"string",pattern:"^[a-z][a-z0-9_-]{0,127}$"},ki={type:"string",minLength:1,maxLength:128},vi={type:"object",additionalProperties:!1,required:["policyCode","title","strategy","dimensions","sources"],properties:{policyCode:wn,title:ki,strategy:{enum:["replace_then_append","replace_only"]},dimensions:{type:"object",maxProperties:8,propertyNames:wn,additionalProperties:{type:"object",additionalProperties:!1,required:["title","valueFrom"],properties:{title:ki,valueFrom:{type:"string",minLength:1,maxLength:255}}}},sources:{type:"object",minProperties:1,maxProperties:16,propertyNames:wn,additionalProperties:{type:"object",additionalProperties:!1,required:["title","provider","roleCode"],properties:{title:ki,provider:{enum:["app_role","app_role_in_scope"]},roleCode:wn,scope:{type:"object",additionalProperties:!1,required:["dimension"],properties:{dimension:wn,value:{type:"string",minLength:1,maxLength:255},valueFrom:{type:"string",minLength:1,maxLength:255}}}}}}}};function Cn(e){if(!We(e)||!Tn(e,["policyCode","title","strategy","dimensions","sources"])||!Je(e.policyCode)||!Et(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])=>!Je(o)||!We(n)||!Tn(n,["title","valueFrom"])||!Et(n.title,128)||!Ka(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])=>!Je(o)||!We(n)||!Tn(n,["title","provider","roleCode","scope"])||!Et(n.title,128)||!Je(n.roleCode)||!["app_role","app_role_in_scope"].includes(n.provider)||(n.provider==="app_role_in_scope"?!Nu(n.scope):n.scope!==void 0)))&&t.push("WORKFLOW_V2_ROUTING_SOURCES_INVALID"),t}function Ru(e,t){if(Cn(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 r of t){if(!We(r)||!Tn(r,["ruleCode","title","enabled","workflowCode","nodeId","matches","sourceCode","effect","priority","validFrom","validTo"])||!Je(r.ruleCode)||!Et(r.title,128)||typeof r.enabled!="boolean"||!Je(r.sourceCode)||!Object.hasOwn(e.sources,r.sourceCode)||!["append","replace"].includes(r.effect)||!Number.isSafeInteger(r.priority)||r.priority<-1e3||r.priority>1e3||r.workflowCode!==void 0&&!Je(r.workflowCode)||r.nodeId!==void 0&&(!Je(r.nodeId)||r.workflowCode===void 0)||r.validFrom!==void 0&&!Ma(r.validFrom)||r.validTo!==void 0&&!Ma(r.validTo)||r.validFrom&&r.validTo&&Date.parse(r.validFrom)>=Date.parse(r.validTo)){o.push("WORKFLOW_V2_ROUTING_RULE_INVALID");continue}n.has(r.ruleCode)&&o.push(`WORKFLOW_V2_ROUTING_RULE_DUPLICATE:${r.ruleCode}`),n.add(r.ruleCode),(!We(r.matches)||Object.entries(r.matches).some(([i,a])=>!Object.hasOwn(e.dimensions,i)||!Array.isArray(a)||a.length<1||a.length>64||new Set(a).size!==a.length||a.some(s=>!Et(s,255))))&&o.push(`WORKFLOW_V2_ROUTING_MATCH_INVALID:${r.ruleCode}`)}return[...new Set(o)]}function qa(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 Pi(e){let t=[],o=new Map;for(let n of e)for(let[r,i]of Object.entries(n.bindings||{})){if(!We(i)||i.routing===void 0)continue;let a=Cn(i.routing);if(a.length){t.push(...a.map(c=>`${c}:${r}`));continue}let s=qa(i.routing),d=o.get(i.routing.policyCode);d&&d!==s&&t.push(`WORKFLOW_V2_ROUTING_POLICY_CONFLICT:${i.routing.policyCode}`),o.set(i.routing.policyCode,s)}return[...new Set(t)]}function wu(e,t){let o={};for(let[n,r]of Object.entries(e.dimensions)){let i=t;for(let a of r.valueFrom.split("."))i=We(i)&&Object.hasOwn(i,a)?i[a]:void 0;if(!(typeof i=="string"&&Et(i,255)||typeof i=="number"&&Number.isFinite(i)||typeof i=="boolean"))throw new Error(`WORKFLOW_V2_ROUTING_FACT_REQUIRED:${n}`);o[n]=String(i)}return o}function Tu(e,t,o){let n=t.filter(c=>c.enabled&&(!c.validFrom||Date.parse(c.validFrom)<=o.at)&&(!c.validTo||Date.parse(c.validTo)>o.at)&&(!c.workflowCode||c.workflowCode===o.workflowCode)&&(!c.nodeId||c.nodeId===o.nodeId)&&Object.entries(c.matches).every(([l,f])=>f.includes(o.facts[l])));if(n.length>64)throw new Error("WORKFLOW_V2_ROUTING_MATCH_LIMIT_EXCEEDED");let r=(c,l)=>l.priority-c.priority||+!!c.workflowCode-+!!l.workflowCode||+!!c.nodeId-+!!l.nodeId||(c.ruleCode<l.ruleCode?-1:c.ruleCode>l.ruleCode?1:0),i=n.filter(c=>c.effect==="replace").sort(r);if(i.length>1&&i[0].priority===i[1].priority)throw new Error("WORKFLOW_V2_ROUTING_REPLACE_CONFLICT");let a=i[0],s=a&&e.strategy==="replace_only"?[]:n.filter(c=>c.effect==="append").sort(r),d=[...a?[a]:[],...s];return{matched:n.sort(r),replacement:a,applied:d,ignored:n.filter(c=>!d.includes(c))}}var Li="^[A-Za-z][A-Za-z0-9_]{0,62}$",Ga="^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$",Cu={type:"object",additionalProperties:!1,required:["mode","resourceCode","subtables"],properties:{mode:{const:"create"},resourceCode:{type:"string",maxLength:64,pattern:Ga},subtables:{type:"array",minItems:1,maxItems:16,items:{type:"object",additionalProperties:!1,required:["fieldCode","fieldCodes"],properties:{fieldCode:{type:"string",pattern:Li},fieldCodes:{type:"array",minItems:1,maxItems:200,uniqueItems:!0,items:{type:"string",pattern:Li}}}}}}};function Sn(e){let t=n=>!!(n&&typeof n=="object"&&!Array.isArray(n)),o=n=>typeof n=="string"&&new RegExp(Li).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(Ga).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(r=>!["fieldCode","fieldCodes"].includes(r))||!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(r=>!o(r)))||new Set(e.subtables.map(n=>n.fieldCode)).size!==e.subtables.length)throw new Error("WORKFLOW_OWNED_SUBJECT_CREATE_INVALID")}function Su(e){return Sn(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 $i(e,t,o){Sn(e);let n=s=>{throw new Error(`WORKFLOW_OWNED_SUBJECT_${s}`)},r=t.get(e.resourceCode);r||n("RESOURCE_MISSING");let i=new Set,a=0;for(let s of e.subtables){let d=r.get(s.fieldCode),c=d?.subtable,l=t.get(c?.resourceCode);(d?.type!=="subtable"||!l||c.resourceCode===e.resourceCode||i.has(c.resourceCode))&&n("RELATION_INVALID"),i.add(c.resourceCode);let f=c.maxRows??20;(!Number.isSafeInteger(f)||f<1||f>$e)&&n("BUDGET_EXCEEDED"),a+=f;for(let p of s.fieldCodes){let m=l.get(p);(!m||["serial-number","subtable"].includes(m.type)||[c.foreignKey,c.orderField].includes(p))&&n("FIELD_INVALID"),["file","image","signature","text.rich"].includes(m.type)&&!o.some(E=>E.resourceCode===c.resourceCode&&E.fieldCodes.includes(p)&&E.intents.includes("create"))&&n("FILE_ACCESS_REQUIRED")}}a>it&&n("BUDGET_EXCEEDED")}var Go=Ac(require("crypto"),1);var za="native-4",Vi="2.0.0-alpha.5",Ja={"application-native-2":"1.0.0","application.extended-declaration-capacity":"1.0.0","application.extended-role-capacity":"1.0.0","application.extended-artifact-capacity":"1.0.0","application.high-density-artifact-capacity":"1.0.0","application.extended-configuration-bytes":"1.0.0","application.development-configuration":"2.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.rich-text":"1.0.0","data-api-v2":"1.1.0","data.service-mutations":"1.0.0","data.extended-owned-subtable-capacity":"1.0.0","data.aggregate-owned-subtable-capacity":"1.0.0","data.extended-field-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.field-source-contexts":"1.0.0","application.source-agents":"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.selected-departments":"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.approval-business-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.parent-read-policy":"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.role-input-selection":"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.correction-derived-subject-facts":"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.platform-notify":"1.0.0","workflow.reminders":"1.0.0","workflow.supervisor-chain":"1.0.0","workflow.return-policy":"1.0.0","workflow.handling-nodes":"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","workflow.step-data-transaction":"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 M=Object.freeze({perspectives:100,resources:512,dataPolicies:512,roles:512,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 Vo(e){return(e.authz?.roles?.length||0)>256}function Fo(e){let t=(Array.isArray(e.agents)?e.agents:[]).reduce((o,n)=>o+(Array.isArray(n?.tasks)?n.tasks.length:0),0)+(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 se=Object.freeze({legacyConfigBytes:4194304,configBytes:8388608,contractBytes:8388608,depth:40,stringBytes:1048576,legacyNodes:1e5,extendedNodes:25e4}),It=Object.freeze({nodes:5e5});function xo(e){return Buffer.byteLength(oe(e),"utf8")>se.legacyConfigBytes}function Ha(e,t){let o=0,n=[[e][Symbol.iterator]()];for(;n.length;){let r=n[n.length-1].next();if(r.done){n.pop();continue}if(++o>t)return!0;if(Array.isArray(r.value))n.push(r.value.values());else if(r.value&&typeof r.value=="object"){let i=r.value;n.push((function*(){for(let a of Object.keys(i))i[a]!==void 0&&(yield i[a])})())}}return!1}function Dn(e){return Ha(e,se.legacyNodes)}function kn(e){return Ha(e,se.extendedNodes)}var Mt=["openxiangda.workflow.task.reminded.v2","openxiangda.workflow.node.notified.v2","openxiangda.workflow.node.skipped.v2","openxiangda.workflow.step.requested.v2","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"];function Wo(e){let t=e.flatMap(n=>Object.values(n.definition.nodes)),o=t.some(n=>n.kind==="action"&&!te(n));return Mt.filter(n=>n==="openxiangda.workflow.task.reminded.v2"?t.some(r=>r.reminders):n==="openxiangda.workflow.node.notified.v2"?t.some(te):n==="openxiangda.workflow.node.skipped.v2"?t.some(r=>r.kind==="approval"&&r.emptyPolicy==="skip"):n.startsWith("openxiangda.workflow.step.")?o:!0)}var Du="openxiangda.config-bundle/v3",pd="openxiangda.contract-bundle/v3",Ya="openxiangda.native-configuration-projection/v1",vn=za,ku=/^[a-f0-9]{64}$/,vu=/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/,Pu=/^app:[a-z][a-z0-9]*(?:-[a-z0-9]+)*:[A-Za-z0-9:._*-]+$/,Lu=/^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$/,$u=/^[a-z][a-z0-9]*(?:[-.][a-z0-9]+)*$/,Vu=/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/,Fu=/^[A-Za-z][A-Za-z0-9_]{0,62}$/,Xa=/^[A-Za-z][A-Za-z0-9_]{0,127}$/,xu=/^[a-z][a-z0-9]*(?:[-_][a-z0-9]+)*$/,Wu=/^[A-Z][A-Z0-9_]*$/,ju=/^[a-z][a-z0-9-]{2,63}$/,Uu=/^[A-Za-z][A-Za-z0-9_-]{0,127}$/,Mu=/^[A-Za-z][A-Za-z0-9_.]{0,127}$/,Bu=16,Ku=2*1024,qu=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"]),Gu=new Set(["overview","database","operations","workflow","members","calendar","document","folder","settings"]),zu=new Set(["complete","save_form","approve","reject","return","transfer","delegate","add_assignee","resubmit","withdraw","terminate","admin_reassign","admin_override","retry_resolution"]),Ju=se.configBytes,Hu=se.contractBytes,Yu=se.depth,Wi=se.stringBytes,Xu="openxiangda.event-handler-manifest/v2",md="openxiangda.application-route-manifest/v3",Za=64,gd=new Set(["id","revision","created_by","updated_by","created_at","updated_at"]),Uo=["openxiangda.data.record.created.v2","openxiangda.data.record.updated.v2","openxiangda.data.record.deleted.v2"],Zu=new Set(Mt),Mo=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(([r,i])=>[r,String(i).slice(0,128)]))}};function Qu(e){let t=D(e.appCode,"/appCode",128);vu.test(t)||g("NATIVE_CONFIG_APP_CODE_INVALID","/appCode");let o=Ui(e.expectedConfigDigest,"/expectedConfigDigest"),n=Ui(e.expectedContractDigest,"/expectedContractDigest"),r=ld(e.configBytes,Ju,"/configBytes","NATIVE_CONFIG_ARTIFACT_TOO_LARGE"),i=ld(e.contractBytes,Hu,"/contractBytes","NATIVE_CONTRACT_ARTIFACT_TOO_LARGE");ud(r,o,"/configBytes","NATIVE_CONFIG_DIGEST_MISMATCH"),ud(i,n,"/contractBytes","NATIVE_CONTRACT_DIGEST_MISMATCH");let a=cd(r,"/configBytes","NATIVE_CONFIG_JSON_INVALID","NATIVE_CONFIG_NOT_CANONICAL"),s=cd(i,"/contractBytes","NATIVE_CONTRACT_JSON_INVALID","NATIVE_CONTRACT_NOT_CANONICAL");jo(a,"/config",It.nodes),jo(s,"/contracts",It.nodes),kn(a)||jo(s,"/contracts",se.extendedNodes),Dn(a)||jo(s,"/contracts",se.legacyNodes);let d=a,c=s;tf(d,t),nf(c,t,o);let l=of(d,o,c.generatorVersion);Kf(l,c,d),oe(l)!==oe(c)&&g("NATIVE_CONTRACT_CLOSURE_MISMATCH",Mi(l,c,"/contracts"));let f={authz:{appCode:t,...d.authz,perspectives:d.perspectives,capabilityCatalog:l.capabilities},data:{appCode:t,resources:d.data.resources,resourceContracts:l.resources,...l.concurrency?{concurrency:l.concurrency}:{},...l.subjectReadSurfaces?{subjectReadSurfaces:l.subjectReadSurfaces}:{}},events:{appCode:t,...d.events,consumers:l.eventConsumers,producers:l.eventProducers,handlerManifest:l.eventHandlerManifest,eventTypes:l.eventTypes,capturePlans:Ad({resources:d.data.resources,dataPolicies:d.authz.dataPolicies,subscriptions:l.eventConsumers,capturePolicies:d.events.capturePolicies})},workflows:{appCode:t,...d.workflows,contracts:l.workflows},runtime:{appCode:t,requirements:d.runtime,backend:d.backend,frontend:d.frontend},contracts:l},p={authz:Bt(f.authz),data:Bt(f.data),events:Bt(f.events),workflows:Bt(f.workflows),runtime:Bt(f.runtime),contracts:Bt(f.contracts)},m={configDigest:o,contractDigest:n,generatorVersion:c.generatorVersion},E=_d(d),A={schemaVersion:Ya,compilerContractVersion:vn,appCode:t,source:m,projections:p,requiredPlatformCapabilities:E,aggregateDigest:ee({schemaVersion:Ya,compilerContractVersion:vn,appCode:t,source:m,requiredPlatformCapabilities:E,projectionDigests:Object.fromEntries(Object.entries(p).map(([O,y])=>[O,y.digest]))})};return Sd(A)}function Qa(e,t){let o=e.subject,n=t.find(i=>i.code===o?.resourceCode),r=new Set(Object.values(o?.factProjection||{}));return!!n?.schema?.fields?.some(i=>i.type==="subtable"&&r.has(i.code))}function _d(e){let t=e.authz.roles,o=e.data.resources,n=e.backend.operations,r=n.filter(u=>u.platformAccess?.directory?.mode==="current-initiator"&&u.platformAccess.directory.fields.includes("phone")),i=(e.data.concurrency?.commands||[]).filter(u=>u.execution?.directory?.mode==="current-initiator"&&u.execution.directory.fields.includes("phone")),a=t.some(u=>u.capabilities.some(I=>I.endsWith(":directory:read")))||o.some(u=>u.schema.fields.some(I=>["user.single","user.multiple","department.single","department.multiple"].includes(I.type)))||n.some(u=>u.platformAccess?.directory||u.platformAccess?.selectedDepartments),s=!!(e.events.subscriptions.length||e.events.timers.length||e.events.dateTriggers.length||e.events.schemas.length),d=n.some(u=>u.platformAccess?.managedFiles||u.platformAccess?.managedFileCopies)||e.events.subscriptions.some(u=>u.platformAccess?.managedFileCopies),c=e.workflows.definitions.some(u=>u.definition.rejectionNotification!==void 0)||n.some(u=>u.platformAccess?.notification)||e.events.subscriptions.some(u=>u.platformAccess?.notification),l=(u,I,R=!1)=>{let w=o.find(T=>T.code===u.definition.subject?.resourceCode)?.schema.fields||[];return Object.values(u.definition.taskPages||{}).some(T=>T.fields.some(S=>{if(S.readonly)return!1;let L=w.find(J=>J.code===S.code);if(!R&&L&&I.includes(L.type))return!0;if(!S.subtable||!L?.subtable)return!1;let V=o.find(J=>J.code===L.subtable.resourceCode)?.schema.fields||[];return S.subtable.fields.some(J=>!J.readonly&&V.some(ne=>ne.code===J.code&&I.includes(ne.type)))}))},f=e.workflows.definitions.filter(u=>l(u,["file","image","signature","text.rich"])),p=e.workflows.definitions.filter(u=>l(u,["signature","text.rich"])),m=e.workflows.definitions.filter(u=>l(u,["file","image","signature","text.rich"],!0)),E=e.workflows.definitions.filter(u=>u.launch.mode==="standalone"||u.launch.mode==="hidden-handoff"),A=n.some(u=>u.platformAccess?.workflow)||E.length>0,O=E.filter(u=>{let I=u.launch.submission;if(!I)return!1;let R=o.find(w=>w.code===u.definition.subject.resourceCode);return[I.create,I.existing].some(w=>w&&Object.values(w.inputs).some(T=>T.source==="field"&&R?.schema.fields.some(S=>S.code===T.fieldCode&&S.type.startsWith("resource-ref.")&&S.source)))}),y={resources:o},_={perspectives:e.perspectives,authz:e.authz},b={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(u=>({code:u.code,method:u.method,path:u.path,capability:u.capability,platformAccess:u.platformAccess||null,...u.browser?{browser:u.browser}:{},ai:u.ai||null}))}};return[...Vo(e)?[{code:"application.extended-role-capacity",declaration:{roles:e.authz.roles.length,maximum:M.roles}}]:[],...xo(e)?[{code:"application.extended-configuration-bytes",declaration:{legacyConfigBytes:se.legacyConfigBytes,configBytes:se.configBytes}}]:[],...Dn(e)?[{code:"application.extended-artifact-capacity",declaration:se}]:[],...kn(e)?[{code:"application.high-density-artifact-capacity",declaration:It}]:[],...e.agents?.length?[{code:"application.source-agents",declaration:e.agents}]:[],...Fo(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((u,I)=>u+I.items.length,0)}}]:[],...o.some(u=>u.uniqueKeys?.length)?[{code:"data.unique-keys",declaration:o.filter(u=>u.uniqueKeys?.length).map(u=>({code:u.code,uniqueKeys:u.uniqueKeys}))}]:[],...e.data.concurrency?[{code:"data.managed-concurrency",declaration:e.data.concurrency}]:[],...e.data.concurrency?.commands.some(u=>u.mode==="durable")?[{code:"data.managed-concurrency.durable",declaration:e.data.concurrency}]:[],...o.some(u=>u.decimalReservationLifecycle)?[{code:"data.decimal-reservation-lifecycle",declaration:o.filter(u=>u.decimalReservationLifecycle).map(u=>({code:u.code,decimalReservationLifecycle:u.decimalReservationLifecycle}))}]:[],...n.some(u=>u.platformAccess?.dataCommands)?[{code:"data.business-commands",declaration:n.filter(u=>u.platformAccess?.dataCommands)}]:[],...e.authz.dataPolicies.some(No)?[{code:"data.parent-read-policy",declaration:e.authz.dataPolicies.filter(No)}]:[],...e.authz.dataPolicies.some(u=>u.publicRead)?[{code:"data.authenticated-public-projection",declaration:e.authz.dataPolicies.filter(u=>u.publicRead)}]:[],...n.some(u=>u.platformAccess?.roleAssertions?.actorAuthority)?[{code:"data.transaction-actor-authority",declaration:n.filter(u=>u.platformAccess?.roleAssertions?.actorAuthority)}]:[],...n.some(u=>u.platformAccess?.workflowStage)?[{code:"workflow.native-stage-guard",declaration:n.filter(u=>u.platformAccess?.workflowStage)}]:[],...n.some(u=>u.platformAccess?.recordEdit)?[{code:"data.record-edit",declaration:n.filter(u=>u.platformAccess?.recordEdit)}]:[],...n.some(u=>u.platformAccess?.decimalReservation)||e.events.subscriptions.some(u=>u.platformAccess?.decimalReservation)?[{code:"data.decimal-reservations",declaration:[...n.filter(u=>u.platformAccess?.decimalReservation).map(u=>({code:u.code,decimalReservation:u.platformAccess.decimalReservation})),...e.events.subscriptions.filter(u=>u.platformAccess?.decimalReservation).map(u=>({subscriptionCode:u.code,decimalReservation:u.platformAccess.decimalReservation}))]}]:[],{code:"application-native-2",declaration:b},{code:"authz.native-batch-explain",declaration:_},{code:"authz.native-management",declaration:_},{code:"deployment.durable-runs",declaration:b.backend},{code:"deployment.platform-executor",declaration:b.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(u=>u.recordComments!==void 0)?[{code:"data.record-comments",declaration:y}]:[],...o.some(u=>u.recordDeletion!==void 0)?[{code:"data.workflow-record-deletion",declaration:y}]:[],...o.some(u=>u.recordPrint!==void 0)?[{code:"data.record-print",declaration:y}]:[],...o.some(u=>u.workflowHistory!==void 0)?[{code:"workflow.record-history-read",declaration:y}]:[],...o.some(Ir)?[{code:"data.audit-read-access",declaration:y}]:[],...o.some(u=>u.schema.fields.some(I=>/^(resource-ref|user|department)\.(single|multiple)$/.test(I.type)))||e.authz.scopeDimensions.some(u=>u.valueSource)?[{code:"data.field-source-contexts",declaration:{resources:o.map(u=>({code:u.code,fields:u.schema.fields.filter(I=>/^(resource-ref|user|department)\.(single|multiple)$/.test(I.type))})),dimensions:e.authz.scopeDimensions.filter(u=>u.valueSource)}}]:[],...a?[{code:"directory-v2",declaration:{roles:t.map(u=>({code:u.code,capabilities:u.capabilities.filter(I=>I.endsWith(":directory:read"))})),resources:o.map(u=>({code:u.code,fields:u.schema.fields.filter(I=>["user.single","user.multiple","department.single","department.multiple"].includes(I.type))})),operations:n.filter(u=>u.platformAccess?.directory).map(u=>({code:u.code,directory:u.platformAccess.directory}))}}]:[],...n.some(u=>u.platformAccess?.selectedDepartments)?[{code:"directory.selected-departments",declaration:n.filter(u=>u.platformAccess?.selectedDepartments).map(u=>({code:u.code,selectedDepartments:u.platformAccess.selectedDepartments}))}]:[],...n.some(u=>u.platformAccess?.directory?.mode==="selected-user")?[{code:"directory.selected-user",declaration:n.filter(u=>u.platformAccess?.directory?.mode==="selected-user").map(u=>({code:u.code,directory:u.platformAccess.directory}))}]:[],...r.length||i.length?[{code:"directory.current-initiator-phone",declaration:{operations:r.map(u=>({code:u.code,directory:u.platformAccess.directory})),commands:i.map(u=>({code:u.code,directory:u.execution.directory}))}}]:[],...e.data.resources.some(u=>u.schema.fields.some(I=>I.type==="text.rich"))?[{code:"data.rich-text",declaration:{policyVersion:"rich-text-html/1"}}]:[],...d?[{code:"data.managed-files",declaration:{operations:n.filter(u=>u.platformAccess?.managedFiles||u.platformAccess?.managedFileCopies).map(u=>({code:u.code,...u.platformAccess?.managedFiles?{managedFiles:u.platformAccess.managedFiles}:{},...u.platformAccess?.managedFileCopies?{managedFileCopies:u.platformAccess.managedFileCopies}:{}})),subscriptions:e.events.subscriptions.filter(u=>u.platformAccess?.managedFileCopies).map(u=>({code:u.code,managedFileCopies:u.platformAccess.managedFileCopies}))}}]:[],...e.events.subscriptions.some(u=>u.execution)?[{code:"events.native-data-actions",declaration:e.events.subscriptions.filter(u=>u.execution)}]:[],...e.events.capturePolicies?.length?[{code:"events.capture-policy",declaration:e.events.capturePolicies}]:[],...e.events.dateTriggers.some(u=>wi(u.resourceCode,e.events.subscriptions.filter(I=>I.eventTypes.includes(u.eventType)),e.data.resources.find(I=>I.code===u.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}]:[],...Kn(e.data.resources)?[{code:"data.extended-owned-subtable-capacity",declaration:e.data.resources.filter(u=>Kn([u]))}]:[],...Mn(e.data.resources,e.workflows?.definitions||[])?[{code:"data.extended-field-capacity",declaration:{resources:e.data.resources.filter(u=>u.schema.fields.length>100),workflows:(e.workflows?.definitions||[]).filter(u=>Mn([],[u]))}}]:[],...Bn(e.data.resources)?[{code:"data.aggregate-owned-subtable-capacity",declaration:e.data.resources.filter(u=>Bn([u]))}]:[],...e.data.resources.some(u=>u.schema.fields.some(I=>I.userCandidates!==void 0))?[{code:"data.user-candidates",declaration:e.data.resources.filter(u=>u.schema.fields.some(I=>I.userCandidates!==void 0))}]:[],...gi(e.workflows.bindings)?[{code:"workflow.role-input-selection",declaration:e.workflows.bindings.filter(u=>Object.values(u.binding.bindings).some(I=>I.selectedInputPath!==void 0))}]:[],...pi(e.workflows.bindings)?[{code:"workflow.role-union",declaration:e.workflows.bindings.filter(u=>Object.values(u.binding.bindings).some(I=>I.roleCodes!==void 0))}]:[],...e.backend.operations.some(u=>u.platformAccess?.ownedSubject)?[{code:"workflow.named-owned-create",declaration:e.backend.operations.filter(u=>u.platformAccess?.ownedSubject)}]:[],...Wn(e.data.resources)?[{code:"data.user-candidate-launch-scope",declaration:e.data.resources.filter(u=>Wn([u]))}]:[],...Jn(e.data.resources)?[{code:"data.subtable-minimum-rows",declaration:e.data.resources.filter(u=>Jn([u]))}]:[],...zn(e.data.resources)?[{code:"data.datetime-minute-precision",declaration:e.data.resources.filter(u=>zn([u]))}]:[],...e.workflows.activations.length?[{code:"workflow-kernel-v2",declaration:e.workflows},{code:"workflow.fresh-command-token",declaration:e.workflows}]:[],...e.workflows.definitions.some(u=>u.definition.instanceCommands!==void 0)?[{code:"workflow.instance-cancellation-policy",declaration:e.workflows.definitions.filter(u=>u.definition.instanceCommands!==void 0)}]:[],...e.workflows.definitions.some(u=>u.definition.instanceCommands?.withdraw?.reasonRequired===!1)?[{code:"workflow.optional-withdrawal-reason",declaration:e.workflows.definitions.filter(u=>u.definition.instanceCommands?.withdraw?.reasonRequired===!1)}]:[],...e.workflows.definitions.some(u=>u.definition.rejectionNotification!==void 0)?[{code:"workflow.rejection-notification",declaration:e.workflows.definitions.filter(u=>u.definition.rejectionNotification!==void 0)}]:[],...e.workflows.definitions.some(u=>u.definition.commandHandlers!==void 0)||n.some(u=>u.platformAccess?.workflow?.businessCommands)?[{code:"workflow.business-data-command",declaration:{definitions:e.workflows.definitions.filter(u=>u.definition.commandHandlers!==void 0),operations:n.filter(u=>u.platformAccess?.workflow?.businessCommands)}}]:[],...e.workflows.definitions.some(u=>u.definition.commandHandlers?.approve?.transitionPolicy==="workflow")?[{code:"workflow.approval-business-command",declaration:e.workflows.definitions.filter(u=>u.definition.commandHandlers?.approve?.transitionPolicy==="workflow")}]:[],...e.workflows.definitions.some(u=>u.definition.commandHandlers?.resubmit)||n.some(u=>u.platformAccess?.workflow?.businessCommands?.includes("resubmit"))?[{code:"workflow.correction-business-command",declaration:{definitions:e.workflows.definitions.filter(u=>u.definition.commandHandlers?.resubmit),operations:n.filter(u=>u.platformAccess?.workflow?.businessCommands?.includes("resubmit"))}}]:[],...e.workflows.definitions.some(u=>u.definition.launchPreflight!==void 0)?[{code:"workflow.launch-preflight",declaration:e.workflows.definitions.filter(u=>u.definition.launchPreflight!==void 0)}]:[],...e.workflows.definitions.some(u=>u.definition.commandHandlers?.resubmit?.derivedSubjectFields!==void 0)?[{code:"workflow.correction-derived-subject-facts",declaration:e.workflows.definitions.filter(u=>u.definition.commandHandlers?.resubmit?.derivedSubjectFields!==void 0)}]:[],...e.workflows.definitions.some(u=>u.definition.approvedDelegation!==void 0)?[{code:"workflow.approved-delegation",declaration:e.workflows.definitions.filter(u=>u.definition.approvedDelegation!==void 0)}]:[],...e.workflows.definitions.some(u=>Qa(u.definition,e.data.resources))?[{code:"workflow.owned-initial-facts",declaration:e.workflows.definitions.filter(u=>Qa(u.definition,e.data.resources))}]:[],...e.workflows.definitions.some(u=>Object.values(u.definition.nodes).some(I=>I.kind==="correction"))?[{code:"workflow.initiator-correction",declaration:e.workflows.definitions.filter(u=>Object.values(u.definition.nodes).some(I=>I.kind==="correction"))}]:[],...e.workflows.definitions.some(u=>Object.values(u.definition.nodes).some(I=>I.operationPolicy?.reject?.commentRequired===!1))?[{code:"workflow.optional-rejection-comment",declaration:e.workflows.definitions.filter(u=>Object.values(u.definition.nodes).some(I=>I.operationPolicy?.reject?.commentRequired===!1))}]:[],...e.workflows.definitions.some(u=>Object.values(u.definition.nodes).some(I=>Object.values(I.operationPolicy||{}).some(R=>R.reasonRequired===!1)))?[{code:"workflow.optional-operation-reason",declaration:e.workflows.definitions.filter(u=>Object.values(u.definition.nodes).some(I=>Object.values(I.operationPolicy||{}).some(R=>R.reasonRequired===!1)))}]:[],...O.length?[{code:"workflow.named-input-sources",declaration:O}]:[],...e.workflows.definitions.some(u=>Object.values(u.definition.nodes).some(I=>I.administration!==void 0||I.operationPolicy!==void 0))?[{code:"workflow.node-administration",declaration:e.workflows.definitions.filter(u=>Object.values(u.definition.nodes).some(I=>I.administration!==void 0||I.operationPolicy!==void 0))}]:[],...e.workflows.definitions.some(u=>Object.values(u.definition.nodes).some(I=>I.kind==="approval"&&I.emptyPolicy!==void 0))?[{code:"workflow.approval-empty-policy",declaration:e.workflows.definitions.filter(u=>Object.values(u.definition.nodes).some(I=>I.kind==="approval"&&I.emptyPolicy!==void 0))}]:[],...e.workflows.bindings.some(u=>Object.values(u.binding.bindings).some(I=>I.provider==="supervisor_chain"))?[{code:"workflow.supervisor-chain",declaration:e.workflows.bindings.filter(u=>Object.values(u.binding.bindings).some(I=>I.provider==="supervisor_chain"))}]:[],...e.workflows.definitions.some(u=>Object.values(u.definition.nodes).some(I=>I.reminders))?[{code:"workflow.reminders",declaration:e.workflows.definitions.filter(u=>Object.values(u.definition.nodes).some(I=>I.reminders))}]:[],...e.workflows.definitions.some(u=>Object.values(u.definition.nodes).some(I=>te(I)))?[{code:"workflow.platform-notify",declaration:e.workflows.definitions.filter(u=>Object.values(u.definition.nodes).some(I=>te(I)))}]:[],...e.workflows.definitions.some(u=>Object.values(u.definition.nodes).some(I=>I.returnPolicy!==void 0))?[{code:"workflow.return-policy",declaration:e.workflows.definitions.filter(u=>Object.values(u.definition.nodes).some(I=>I.returnPolicy!==void 0))}]:[],...e.workflows.definitions.some(u=>Object.values(u.definition.nodes).some(I=>I.kind==="handle"))?[{code:"workflow.handling-nodes",declaration:e.workflows.definitions.filter(u=>Object.values(u.definition.nodes).some(I=>I.kind==="handle"))}]:[],...e.workflows.definitions.some(u=>Object.values(u.definition.nodes).some(I=>I.completionDeadline!==void 0))?[{code:"workflow.completion-deadline",declaration:e.workflows.definitions.filter(u=>Object.values(u.definition.nodes).some(I=>I.completionDeadline!==void 0))}]:[],...e.workflows.definitions.some(u=>Object.values(u.definition.nodes).some(I=>I.initiatorApprovalPolicy!==void 0))?[{code:"workflow.initiator-approval-policy",declaration:e.workflows.definitions.filter(u=>Object.values(u.definition.nodes).some(I=>I.initiatorApprovalPolicy!==void 0))}]:[],...e.workflows.definitions.some(u=>Object.values(u.definition.nodes).some(I=>I.kind==="cc"))?[{code:"workflow.automatic-cc",declaration:e.workflows.definitions.filter(u=>Object.values(u.definition.nodes).some(I=>I.kind==="cc"))}]:[],...e.workflows.definitions.some(u=>u.definition.taskPages!==void 0)?["workflow.task-page-submit","workflow.task-private-drafts"].map(u=>({code:u,declaration:e.workflows.definitions.filter(I=>I.definition.taskPages!==void 0)})):[],...f.length?[{code:"workflow.task-managed-files",declaration:f}]:[],...m.length?[{code:"workflow.task-owned-files",declaration:m}]:[],...p.length?[{code:"workflow.task-rich-fields",declaration:p}]:[],...e.workflows.definitions.some(u=>Object.values(u.definition.taskPages||{}).some(I=>I.fields.some(R=>R.subtable)))?[{code:"workflow.task-owned-subtables",declaration:e.workflows.definitions.filter(u=>Object.values(u.definition.taskPages||{}).some(I=>I.fields.some(R=>R.subtable)))}]:[],...e.workflows.definitions.some(u=>u.definition.authoring?.businessSteps?.length||Object.values(u.definition.nodes).some(I=>I.kind==="action"&&!te(I)))?[{code:"workflow.durable-business-step",declaration:e.workflows.definitions.filter(u=>u.definition.authoring?.businessSteps?.length||Object.values(u.definition.nodes).some(I=>I.kind==="action"&&!te(I)))}]:[],...e.workflows.definitions.some(u=>[...Object.values(u.definition.nodes),...u.definition.authoring?.businessSteps||[]].some(I=>I.handler?.dataTransaction))?[{code:"workflow.step-data-transaction",declaration:e.workflows.definitions.filter(u=>[...Object.values(u.definition.nodes),...u.definition.authoring?.businessSteps||[]].some(I=>I.handler?.dataTransaction))}]:[],...e.workflows.bindings.some(u=>Object.values(u.binding.bindings).some(I=>I.routing!==void 0))?[{code:"workflow.assignment-routing",declaration:e.workflows.bindings.filter(u=>Object.values(u.binding.bindings).some(I=>I.routing!==void 0))}]:[],...A?[{code:"business-process.durable-command",declaration:{operations:n.filter(u=>u.platformAccess?.workflow).map(u=>({code:u.code,workflow:u.platformAccess.workflow})),definitions:E,activations:e.workflows.activations.filter(u=>E.some(I=>I.definition.code===u.workflowCode))}}]:[],...n.some(u=>u.platformAccess?.dataMutations)||e.events.subscriptions.some(u=>u.platformAccess?.dataMutations)?[{code:"data.service-mutations",declaration:{operations:n.filter(u=>u.platformAccess?.dataMutations).map(u=>({code:u.code,grants:u.platformAccess.dataMutations})),subscriptions:e.events.subscriptions.filter(u=>u.platformAccess?.dataMutations).map(u=>({code:u.code,grants:u.platformAccess.dataMutations}))}}]:[],...c?[{code:"notification-hub-v2",declaration:{...e.workflows.definitions.some(u=>u.definition.rejectionNotification!==void 0)?{rejectionNotifications:e.workflows.definitions.filter(u=>u.definition.rejectionNotification!==void 0)}:{},operations:n.filter(u=>u.platformAccess?.notification).map(u=>({code:u.code,notification:u.platformAccess.notification})),subscriptions:e.events.subscriptions.filter(u=>u.platformAccess?.notification).map(u=>({code:u.code,notification:u.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:u,declaration:I})=>({code:u,contractVersion:u==="data.unique-keys"?o.some(R=>ii(R.schema.fields,R.uniqueKeys)==="1.1.0")?"1.1.0":"1.0.0":Ja[u],usageDigest:`sha256:${ee(I)}`})).sort((u,I)=>u.code===I.code?0:u.code<I.code?-1:1)}function Ad(e){let t=new Map,o=new Set(e.resources.map(i=>String(i.code)));for(let[i,a]of k(e.capturePolicies===void 0?[]:e.capturePolicies,"/capturePlan/capturePolicies",100).entries()){let s=`/capturePlan/capturePolicies/${i}`,d=N(a,s);C(d,["resourceCode","mode"],s);let c=Z(d.resourceCode,`${s}/resourceCode`);o.has(c)||g("NATIVE_EVENT_CAPTURE_RESOURCE_NOT_FOUND",s,{resourceCode:c}),t.has(c)&&g("NATIVE_EVENT_CAPTURE_POLICY_DUPLICATE",s,{resourceCode:c}),d.mode!=="all"&&d.mode!=="subscribed"&&g("NATIVE_EVENT_CAPTURE_MODE_INVALID",`${s}/mode`),t.set(c,d.mode)}let n=new Map(e.dataPolicies.map((i,a)=>{let s=N(i,`/capturePlan/dataPolicies/${a}`);return[String(s.code),s]})),r=e.subscriptions.map((i,a)=>N(i,`/capturePlan/subscriptions/${a}`));return e.resources.map((i,a)=>{let s=`/capturePlan/resources/${a}`,d=N(i,s),c=Z(d.code,`${s}/code`),l=d.schema?N(d.schema,`${s}/schema`):d,f=new Set(k(l.fields||[],`${s}/schema/fields`,500).map((I,R)=>z(N(I,`${s}/schema/fields/${R}`).code,`${s}/schema/fields/${R}/code`))),p=d.dataPolicyCode?$(d.dataPolicyCode,`${s}/dataPolicyCode`):null,m=p?n.get(p):void 0;p&&!m&&g("NATIVE_EVENT_CAPTURE_AUTHZ_POLICY_NOT_FOUND",s,{resourceCode:c,dataPolicyCode:p});let E=new Set;for(let I of m?.rules||[])E.add(I.parentRead?gn(e.resources,c,I.parentRead,`${s}/parentRead`).foreignKey:String(I.field));if(m?.readExpression)for(let I of ft(m.readExpression,`${s}/readExpression`))E.add(I.rule.parentRead?gn(e.resources,c,I.rule.parentRead,`${s}/parentRead`).foreignKey:String(I.rule.field));let A=new Set,O=new Set,y=new Set;for(let[I,R]of r.entries()){let w=k(R.eventTypes,`/capturePlan/subscriptions/${I}/eventTypes`,20).map(String);if(!w.some(V=>V.startsWith("openxiangda.data.")))continue;let T=N(R.filter||{},`/capturePlan/subscriptions/${I}/filter`),S=Array.isArray(T.resourceCodes)?T.resourceCodes.map(String):[];if(S.length&&!S.includes(c))continue;for(let V of w)Uo.includes(V)&&y.add(V);for(let V of ef(T,`/capturePlan/subscriptions/${I}/filter`))A.add(V);let L=N(R.payload||{},`/capturePlan/subscriptions/${I}/payload`);for(let V of k(L.fields||[],`/capturePlan/subscriptions/${I}/payload/fields`,32))O.add(z(V,`/capturePlan/subscriptions/${I}/payload/fields`))}let _=new Set([...A,...O]),b=new Set([..._,...E]);b.size>Za&&g("NATIVE_EVENT_CAPTURE_FIELDS_LIMIT",s,{resourceCode:c,maximum:Za});for(let I of b)!f.has(I)&&!(E.has(I)&&gd.has(I))&&g("NATIVE_EVENT_CAPTURE_FIELD_NOT_FOUND",s,{resourceCode:c,field:I});let h=N(d.fieldPolicies||{},`${s}/fieldPolicies`);for(let I of _)h[I]?.mask==="omit"&&g("NATIVE_EVENT_CAPTURE_FIELD_SENSITIVE",s,{resourceCode:c,field:I});let u={resourceCode:c,...t.get(c)==="subscribed"?{capturedEventTypes:[...y].sort()}:{},filterFields:[...A].sort(),projectionFields:[...O].sort(),authorizationFields:[...E].sort(),captureFields:[...b].sort()};return{...u,digest:ee(u)}}).sort((i,a)=>i.resourceCode.localeCompare(a.resourceCode))}function ef(e,t){let o=new Set;for(let[a,s]of k(e.changes||[],`${t}/changes`,16).entries()){let d=N(s,`${t}/changes/${a}`);o.add(z(d.field,`${t}/changes/${a}/field`))}let n=N(e.changedFields||{},`${t}/changedFields`);for(let a of["anyOf","allOf","noneOf"])for(let[s,d]of k(n[a]||[],`${t}/changedFields/${a}`,32).entries())o.add(z(d,`${t}/changedFields/${a}/${s}`));let r=0,i=(a,s,d)=>{d>3&&g("NATIVE_EVENT_FILTER_DEPTH_LIMIT",s);let c=N(a,s);if(c.change){let f=N(c.change,`${s}/change`);o.add(z(f.field,`${s}/change/field`)),r+=1;return}if(c.not){i(c.not,`${s}/not`,d+1);return}let l=c.all?"all":c.any?"any":null;l||g("NATIVE_EVENT_FILTER_CONDITION_INVALID",s);for(let[f,p]of k(c[l],`${s}/${l}`,16).entries())i(p,`${s}/${l}/${f}`,d+1)};return e.where&&i(e.where,`${t}/where`,1),r+=Array.isArray(e.changes)?e.changes.length:0,r>16&&g("NATIVE_EVENT_FILTER_ATOM_LIMIT",t),[...o].sort()}function tf(e,t){C(e,["schemaVersion","compilerContractVersion","appCode","perspectives","authz","backend","data","events","workflows","frontend","runtime"],"/config",["agents"]),Mr(t,e.agents,e.data?.resources||[],{authz:e.authz}),x(e.schemaVersion,Du,"/config/schemaVersion"),x(e.compilerContractVersion,vn,"/config/compilerContractVersion"),x(e.appCode,t,"/config/appCode"),k(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"]),k(o.capabilities,"/config/authz/capabilities",M.capabilities),k(o.roles,"/config/authz/roles",M.roles),k(o.scopeDimensions,"/config/authz/scopeDimensions",100),k(o.scopeSources,"/config/authz/scopeSources",100),k(o.roleMembershipSources,"/config/authz/roleMembershipSources",100),k(o.relationshipGrantSources,"/config/authz/relationshipGrantSources",100),k(o.dataPolicies,"/config/authz/dataPolicies",M.dataPolicies),k(o.authorizationTransitions,"/config/authz/authorizationTransitions",100);let n=N(e.backend,"/config/backend");C(n,["secrets","operations"],"/config/backend"),k(n.secrets,"/config/backend/secrets",100),k(n.operations,"/config/backend/operations",500),xf(n.secrets);let r=N(e.data,"/config/data");C(r,["resources"],"/config/data",["resourceDetailRoutes","subjectReadSurfaces","concurrency"]),k(r.resources,"/config/data/resources",M.resources),r.subjectReadSurfaces!==void 0&&k(r.subjectReadSurfaces,"/config/data/subjectReadSurfaces",M.subjectReadSurfaces),r.resourceDetailRoutes!==void 0&&k(r.resourceDetailRoutes,"/config/data/resourceDetailRoutes",100);let i=N(e.events,"/config/events");C(i,["schemas","subscriptions","timers","dateTriggers"],"/config/events",["capturePolicies"]),k(i.schemas,"/config/events/schemas",100),k(i.subscriptions,"/config/events/subscriptions",100),k(i.timers,"/config/events/timers",100),k(i.dateTriggers,"/config/events/dateTriggers",100);let a=N(e.workflows,"/config/workflows");C(a,["definitions","bindings","activations","providers","editableParameters"],"/config/workflows"),k(a.definitions,"/config/workflows/definitions",M.workflows),k(a.bindings,"/config/workflows/bindings",M.workflows),k(a.activations,"/config/workflows/activations",M.workflows),k(a.providers,"/config/workflows/providers",100),k(a.editableParameters,"/config/workflows/editableParameters",100);let s=N(e.frontend,"/config/frontend");C(s,["routes","user","admin","devicePolicy"],"/config/frontend",["authentication","publicAccess"]),k(s.routes,"/config/frontend/routes",M.routes);let d=N(s.user,"/config/frontend/user");C(d,["applicationTodoCenter"],"/config/frontend/user"),Gt(d.applicationTodoCenter,"/config/frontend/user/applicationTodoCenter"),Bi(s.devicePolicy,"/config/frontend/devicePolicy"),Object.prototype.hasOwnProperty.call(s,"authentication")&&Id(s.authentication,s.routes,e,"/config/frontend/authentication"),Object.prototype.hasOwnProperty.call(s,"publicAccess")&&If(s.publicAccess,e,"/config/frontend/publicAccess");let c=N(s.admin,"/config/frontend/admin");C(c,["navigation"],"/config/frontend/admin",["access"]),c.access!==void 0&&Jo(c.access,"/config/frontend/admin/access",e.appCode),hf(c.navigation,"/config/frontend/admin/navigation");let l=N(e.runtime,"/config/runtime");C(l,["protocolCapabilities","health"],"/config/runtime"),F(l.protocolCapabilities,"/config/runtime/protocolCapabilities",100),C(N(l.health,"/config/runtime/health"),["livePath","readyPath","versionPath"],"/config/runtime/health"),x(l.health.livePath,"/__platform/health","/config/runtime/health/livePath"),x(l.health.readyPath,"/__platform/ready","/config/runtime/health/readyPath"),x(l.health.versionPath,"/__platform/version","/config/runtime/health/versionPath")}function nf(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"]),x(e.schemaVersion,pd,"/contracts/schemaVersion"),x(e.compilerContractVersion,vn,"/contracts/compilerContractVersion"),D(e.generatorVersion,"/contracts/generatorVersion",128),x(e.appCode,t,"/contracts/appCode"),x(e.configDigest,o,"/contracts/configDigest"),k(e.perspectives,"/contracts/perspectives",M.perspectives),k(e.resources,"/contracts/resources",M.resources),e.subjectReadSurfaces!==void 0&&k(e.subjectReadSurfaces,"/contracts/subjectReadSurfaces",M.subjectReadSurfaces),k(e.capabilities,"/contracts/capabilities",M.capabilities),k(e.operations,"/contracts/operations",M.operations),k(e.eventConsumers,"/contracts/eventConsumers",M.eventConsumers),k(e.eventProducers,"/contracts/eventProducers",M.eventProducers),k(e.eventSchemas,"/contracts/eventSchemas",M.eventSchemas),N(e.eventHandlerManifest,"/contracts/eventHandlerManifest"),F(e.eventTypes,"/contracts/eventTypes",M.eventTypes),k(e.workflows,"/contracts/workflows",M.workflows),k(e.routes,"/contracts/routes",M.routes),Object.prototype.hasOwnProperty.call(e,"authentication")&&_f(e.authentication,"/contracts/authentication"),Object.prototype.hasOwnProperty.call(e,"publicAccess")&&yf(e.publicAccess,"/contracts/publicAccess"),Object.prototype.hasOwnProperty.call(e,"adminAccess")&&Jo(e.adminAccess,"/contracts/adminAccess",t),Sf(e.routeManifest,"/contracts/routeManifest",t),wf(e.adminPages,"/contracts/adminPages"),Tf(e.adminNavigation,"/contracts/adminNavigation")}function of(e,t,o){let n=af(e);Lf(e,n),Vf(e),$f(e),Wf(e);let r=e.events.schemas.map((_,b)=>{let h=`/config/events/schemas/${b}`,u=N(_,h),I=D(u.eventType,`${h}/eventType`,255);return I.startsWith("openxiangda.")&&g("NATIVE_EVENT_SCHEMA_RESERVED",`${h}/eventType`,{eventType:I}),x(u.schemaDigest,ee(N(u.jsonSchema,`${h}/jsonSchema`)),`${h}/schemaDigest`),u}),i=new Set([...Uo,...Mt,...r.map(_=>String(_.eventType))]),a=new Map(e.data.resources.map(_=>[String(_.code),new Map(_.schema.fields.map(b=>[String(b.code),String(b.type)]))])),s=re(e.events.subscriptions.map((_,b)=>{let h=`/config/events/subscriptions/${b}`,u=N(_,h),I=F(u.eventTypes,`${h}/eventTypes`,20);I.forEach((S,L)=>{i.has(S)||g("NATIVE_EVENT_TYPE_NOT_REGISTERED",`${h}/eventTypes/${L}`,{eventType:S})});let R=si(u,e.data.resources,h),w=sf(u.delivery,I,`${h}/delivery`),T=rf(u.platformAccess,`${h}/platformAccess`,a,e,u);return{code:$(u.code,`${h}/code`),endpointPath:Pe(u.endpointPath,`${h}/endpointPath`),eventTypes:I,filter:N(u.filter,`${h}/filter`),payload:R?.payload||N(u.payload,`${h}/payload`),...R?{execution:R.execution}:{},...T?{platformAccess:T}:{},delivery:w}}),_=>_.code),d=new Map(r.map(_=>[String(_.eventType),String(_.dataSchemaVersion)])),c=re([...e.data.resources.flatMap(_=>Uo.map(b=>({code:`data:${_.code}:${b}`,source:"data",eventType:b,dataSchemaVersion:"2.0.0",resourceCode:_.code}))),...r.map(_=>({code:`app:${_.eventType}`,source:"app",eventType:_.eventType,dataSchemaVersion:_.dataSchemaVersion})),...e.events.timers.map(_=>({code:_.code,source:"timer",eventType:_.eventType,dataSchemaVersion:d.get(String(_.eventType))||"2.0.0"})),...e.events.dateTriggers.map(_=>({code:_.code,source:"date",eventType:_.eventType,dataSchemaVersion:d.get(String(_.eventType))||"2.0.0",resourceCode:_.resourceCode,field:_.field})),...e.workflows.activations.length?Wo(e.workflows.definitions).map(_=>({code:`workflow:${_}`,source:"workflow",eventType:_,dataSchemaVersion:"2.0.0"})):[]],_=>`${_.source}:${_.code}:${_.eventType}`),l=B([...s.flatMap(_=>_.eventTypes),...c.map(_=>String(_.eventType))]);Rf(e);let f=Od(e),p;try{p=Sr(e.data.concurrency,e.data.resources,n)}catch(_){throw _ instanceof vt&&g(_.code,_.pointer,{reason:_.reason}),_}p?.commands.some(_=>_.mode==="durable")&&e.backend?.enabled===!1&&g("NATIVE_MANAGED_CONCURRENCY_INVALID","/data/concurrency",{reason:"durable commands require backend runtime"});let m=cf(e,n),E=Ed(e),A=e.workflows.definitions.map(_=>_.definition),O=Oo(A),y=zr(A,s,!0);y.length&&g(y[0],"/config/events/subscriptions");try{Pr(e.data.resources,E)}catch(_){throw _ instanceof dt&&g(_.code,_.pointer,{reason:_.reason}),_}return{schemaVersion:pd,compilerContractVersion:vn,generatorVersion:o,appCode:e.appCode,configDigest:t,perspectives:e.perspectives,resources:df(e),...m.length?{subjectReadSurfaces:m}:{},...p?{concurrency:p}:{},capabilities:re(n,_=>_.code),operations:E,eventConsumers:s,eventProducers:c,eventSchemas:r,eventHandlerManifest:{schemaVersion:Xu,appCode:e.appCode,handlers:s.filter(_=>!_.execution).map(_=>({code:_.code,endpointPath:_.endpointPath,eventTypes:_.eventTypes,dataSchemaVersions:B(_.eventTypes.map(b=>b.startsWith("openxiangda.")?"2.0.0":d.get(b)||"2.0.0")),maxBodyBytes:65536,receiptProtocolVersion:2,...O[_.code]?{workflowStep:O[_.code]}:{}}))},eventTypes:l,workflows:Rd(e),routes:zo(e),...Object.prototype.hasOwnProperty.call(e.frontend,"authentication")?{authentication:Af(e)}:{},...Object.prototype.hasOwnProperty.call(e.frontend,"publicAccess")?{publicAccess:bf(e)}:{},...e.frontend.admin.access?{adminAccess:e.frontend.admin.access}:{},routeManifest:vf(e),adminPages:f,adminNavigation:Of(e)}}function rf(e,t,o,n,r){if(e===void 0)return;let i=N(e,t);C(i,["notification","managedFileCopies","decimalReservation","dataMutations"],t,!0);let a={};if(i.dataMutations!==void 0)try{a.dataMutations=ho(i.dataMutations,o)}catch{g("NATIVE_EVENT_DATA_MUTATIONS_INVALID",`${t}/dataMutations`)}if(i.decimalReservation!==void 0)try{a.decimalReservation=ya(i.decimalReservation,ba(n,r))}catch{g("NATIVE_EVENT_DECIMAL_RESERVATION_INVALID",`${t}/decimalReservation`)}if(i.notification!==void 0){let s=N(i.notification,`${t}/notification`);C(s,["mode"],`${t}/notification`),x(s.mode,"business-standard",`${t}/notification/mode`),a.notification={mode:"business-standard"}}if(i.managedFileCopies!==void 0){let s=k(i.managedFileCopies,`${t}/managedFileCopies`,16);s.length||g("NATIVE_EVENT_MANAGED_FILE_COPIES_REQUIRED",`${t}/managedFileCopies`);let d=new Set;a.managedFileCopies=re(s.map((c,l)=>{let f=`${t}/managedFileCopies/${l}`,p=N(c,f);C(p,["mode","sourceResourceCode","sourceFieldCodes","targetResourceCode","targetFieldCodes"],f),x(p.mode,"copy",`${f}/mode`);let m=Z(p.sourceResourceCode,`${f}/sourceResourceCode`),E=Z(p.targetResourceCode,`${f}/targetResourceCode`),A=o.get(m),O=o.get(E);(!A||!O)&&g("NATIVE_EVENT_MANAGED_FILE_COPY_RESOURCE_INVALID",f);let y=F(p.sourceFieldCodes,`${f}/sourceFieldCodes`,16),_=F(p.targetFieldCodes,`${f}/targetFieldCodes`,16);(!y.length||y.length!==_.length)&&g("NATIVE_EVENT_MANAGED_FILE_COPY_FIELDS_INVALID",f),y.forEach((h,u)=>{let I=A.get(h),R=O.get(_[u]);(!["file","image","text.rich"].includes(String(I))||I!==R)&&g("NATIVE_EVENT_MANAGED_FILE_COPY_FIELD_INVALID",`${f}/sourceFieldCodes/${u}`)});let b=`${m}:${y.join(",")}=>${E}:${_.join(",")}`;return d.has(b)&&g("NATIVE_EVENT_MANAGED_FILE_COPY_DUPLICATE",f),d.add(b),{mode:"copy",sourceResourceCode:m,sourceFieldCodes:B(y),targetResourceCode:E,targetFieldCodes:B(_)}}),c=>`${c.sourceResourceCode}:${c.sourceFieldCodes.join(",")}=>${c.targetResourceCode}:${c.targetFieldCodes.join(",")}`)}return Object.keys(a).length||g("NATIVE_EVENT_PLATFORM_ACCESS_EMPTY",t),a}function sf(e,t,o){let n=N(e,o);C(n,["timeoutMs","maxAttempts","initialBackoffMs","maxBackoffMs","ordering","concurrency"],o),ce(n.timeoutMs,`${o}/timeoutMs`,1e3,3e4),ce(n.maxAttempts,`${o}/maxAttempts`,1,12);let r=ce(n.initialBackoffMs,`${o}/initialBackoffMs`,1e3,3e5);ce(n.maxBackoffMs,`${o}/maxBackoffMs`,r,18e5),ce(n.concurrency,`${o}/concurrency`,1,50);let i=D(n.ordering,`${o}/ordering`,32);return["none","record","workflow-instance"].includes(i)||g("NATIVE_EVENT_DELIVERY_ORDERING_INVALID",`${o}/ordering`),i==="workflow-instance"&&t.some(a=>!Zu.has(a))&&g("NATIVE_EVENT_WORKFLOW_ORDERING_REQUIRES_WORKFLOW_FACTS",`${o}/ordering`),n}function af(e){let t=new Map;for(let i of Cd(e.appCode))t.set(i.code,i);for(let[i,a]of e.authz.capabilities.entries()){let s=`/config/authz/capabilities/${i}`,d=N(a,s);C(d,["code","kind","name","description"],s,!0);let c=Ie(d.code,`${s}/code`,e.appCode);t.has(c)&&g("NATIVE_CAPABILITY_DUPLICATE",`${s}/code`),["backend","ui"].includes(d.kind)||g("NATIVE_CAPABILITY_KIND_INVALID",`${s}/kind`);let l={code:c,kind:d.kind,name:D(d.name,`${s}/name`,255),source:"explicit",...d.description===void 0?{}:{description:qi(d.description,`${s}/description`,2e3)}};t.set(c,l)}let o=e.data.resources.map((i,a)=>({pointer:`/config/data/resources/${a}`,resource:yt(i,`/config/data/resources/${a}`,e.appCode)}));for(let{pointer:i,resource:a}of o){let s={read:`\u8BFB\u53D6${a.name}`,create:`\u65B0\u5EFA${a.name}`,update:`\u66F4\u65B0${a.name}`,delete:`\u5220\u9664${a.name}`};for(let d of["read","create","update","delete"]){let c=Ie(a.capabilities[d],`${i}/capabilities/${d}`,e.appCode);t.has(c)&&g("NATIVE_CAPABILITY_DUPLICATE",`${i}/capabilities/${d}`),t.set(c,{code:c,kind:"data",name:s[d],source:"data"})}}let n=new Set(t.keys()),r=new Map;for(let{pointer:i,resource:a}of o)for(let[s,d]of Object.entries(a.fieldPolicies)){if(Ye(s))continue;let c=N(d,`${i}/fieldPolicies/${s}`);for(let l of["read","create","update"])if(Array.isArray(c[l]))for(let f of F(c[l],`${i}/fieldPolicies/${s}/${l}`,2e3)){if(Ie(f,`${i}/fieldPolicies/${s}/${l}`,e.appCode),n.has(f))continue;let p=r.get(f);p&&p!==a.code&&g("NATIVE_CAPABILITY_DUPLICATE",`${i}/fieldPolicies/${s}/${l}`),r.set(f,a.code),!t.has(f)&&t.set(f,{code:f,kind:"data",name:`${a.name}.${s}.${l}`,source:"data"})}}return[...t.values()]}function df(e){let t=lf(e);return re(e.data.resources.map((o,n)=>{let r=yt(o,`/config/data/resources/${n}`,e.appCode),i=t.get(r.code);return{code:r.code,schemaDigest:ee(r.schema),fields:re(r.schema.fields.map(a=>({code:a.code,type:a.type})),a=>a.code),...i?{detailRouteCode:i}:{}}}),o=>o.code)}function cf(e,t){if(e.data.subjectReadSurfaces===void 0)return[];let o=k(e.data.subjectReadSurfaces,"/config/data/subjectReadSurfaces",M.subjectReadSurfaces),n=new Set(t.map(a=>String(a.code))),r=new Map(e.data.resources.map((a,s)=>{let d=`/config/data/resources/${s}`,c=yt(a,d,e.appCode);return[String(c.code),{resource:c,fields:new Map(k(N(c.schema,`${d}/schema`).fields,`${d}/schema/fields`,500).map(l=>{let f=N(l,`${d}/schema/fields`);return[String(f.code),f]}))}]})),i=new Set;return re(o.map((a,s)=>{let d=`/config/data/subjectReadSurfaces/${s}`,c=N(a,d);C(c,["code","name","capability","subject","relations"],d);let l=$(c.code,`${d}/code`);i.has(l)&&g("NATIVE_SUBJECT_READ_SURFACE_CODE_DUPLICATE",`${d}/code`),i.add(l);let f=Ie(c.capability,`${d}/capability`,e.appCode);n.has(f)||g("NATIVE_SUBJECT_READ_SURFACE_CAPABILITY_NOT_DECLARED",`${d}/capability`);let p=N(c.subject,`${d}/subject`);C(p,["resourceCode","fields"],`${d}/subject`);let m=Z(p.resourceCode,`${d}/subject/resourceCode`),E=r.get(m);E||g("NATIVE_SUBJECT_READ_SURFACE_RESOURCE_NOT_DECLARED",`${d}/subject/resourceCode`);let A=F(p.fields,`${d}/subject/fields`,100).map((h,u)=>z(h,`${d}/subject/fields/${u}`));A.length||g("NATIVE_SUBJECT_READ_SURFACE_FIELDS_REQUIRED",`${d}/subject/fields`);for(let[h,u]of A.entries()){let I=E.fields.get(u);(!I||I.type==="subtable")&&g("NATIVE_SUBJECT_READ_SURFACE_FIELD_INVALID",`${d}/subject/fields/${h}`)}let O=k(c.relations,`${d}/relations`,8);O.length||g("NATIVE_SUBJECT_READ_SURFACE_RELATIONS_REQUIRED",`${d}/relations`);let y=new Set,_=0,b=re(O.map((h,u)=>{let I=`${d}/relations/${u}`,R=N(h,I);C(R,["code","resourceCode","foreignKeyField","fields","limit"],I,["order"]);let w=$(R.code,`${I}/code`);y.has(w)&&g("NATIVE_SUBJECT_READ_SURFACE_RELATION_CODE_DUPLICATE",`${I}/code`),y.add(w);let T=Z(R.resourceCode,`${I}/resourceCode`),S=r.get(T);S||g("NATIVE_SUBJECT_READ_SURFACE_RESOURCE_NOT_DECLARED",`${I}/resourceCode`);let L=z(R.foreignKeyField,`${I}/foreignKeyField`),V=S.fields.get(L),J=N(V?.source||{},`${I}/foreignKeyField/source`);(!V||!["uuid","resource-ref.single"].includes(String(V.type))||V.type==="resource-ref.single"&&(J.kind!=="resource"||J.resourceCode!==m))&&g("NATIVE_SUBJECT_READ_SURFACE_RELATION_INVALID",`${I}/foreignKeyField`);let ne=F(R.fields,`${I}/fields`,100).map((ae,P)=>z(ae,`${I}/fields/${P}`));ne.length||g("NATIVE_SUBJECT_READ_SURFACE_FIELDS_REQUIRED",`${I}/fields`);for(let[ae,P]of ne.entries()){let U=S.fields.get(P);(!U||U.type==="subtable")&&g("NATIVE_SUBJECT_READ_SURFACE_FIELD_INVALID",`${I}/fields/${ae}`)}let Q=k(R.order||[],`${I}/order`,10).map((ae,P)=>{let U=`${I}/order/${P}`,W=N(ae,U);C(W,["field","direction"],U);let H=z(W.field,`${U}/field`),Y=S.fields.get(H);return(!gd.has(H)&&!Y||Y?.type==="subtable"||Y&&!Dt(Y.type))&&g("NATIVE_SUBJECT_READ_SURFACE_ORDER_FIELD_INVALID",`${U}/field`),["asc","desc"].includes(String(W.direction))||g("NATIVE_SUBJECT_READ_SURFACE_ORDER_DIRECTION_INVALID",`${U}/direction`),{field:H,direction:W.direction}}),Oe=ce(R.limit,`${I}/limit`,1,100);return _+=Oe,{code:w,resourceCode:T,foreignKeyField:L,fields:B(ne),...Q.length?{order:Q}:{},limit:Oe}}),h=>h.code);return _>400&&g("NATIVE_SUBJECT_READ_SURFACE_ROW_LIMIT_EXCEEDED",`${d}/relations`),{code:l,name:D(c.name,`${d}/name`,255),capability:f,subject:{resourceCode:m,fields:B(A)},relations:b}}),a=>a.code)}function lf(e){let t=e.data.resourceDetailRoutes===void 0?[]:k(e.data.resourceDetailRoutes,"/config/data/resourceDetailRoutes",100),o=new Map(e.data.resources.map((i,a)=>{let s=`/config/data/resources/${a}`,d=yt(i,s,e.appCode);return[d.code,d]})),n=new Map(zo(e).map(i=>[String(i.code),i])),r=new Map;for(let[i,a]of t.entries()){let s=`/config/data/resourceDetailRoutes/${i}`,d=N(a,s);C(d,["resourceCode","desktop","mobile"],s);let c=Z(d.resourceCode,`${s}/resourceCode`);r.has(c)&&g("NATIVE_DATA_RESOURCE_DETAIL_ROUTE_DUPLICATE",`${s}/resourceCode`);let l=o.get(c);l||g("NATIVE_DATA_RESOURCE_DETAIL_ROUTE_RESOURCE_MISSING",`${s}/resourceCode`);let f=$(d.desktop,`${s}/desktop`),p=$(d.mobile,`${s}/mobile`);f===p&&g("NATIVE_DATA_RESOURCE_DETAIL_ROUTE_INVALID",s);let m=String(l.capabilities.read);for(let[E,A]of[["desktop",f],["mobile",p]]){let O=`${s}/${E}`,y=n.get(A);y||g("NATIVE_DATA_RESOURCE_DETAIL_ROUTE_REFERENCE_MISSING",O),y.surface!=="user"&&g("NATIVE_DATA_RESOURCE_DETAIL_ROUTE_SURFACE_INVALID",O);let _=Pe(y.path,`${O}/path`),b=[..._.matchAll(/:([A-Za-z][A-Za-z0-9_]*)/g)],h=E==="mobile"?!_.startsWith("/m/"):_==="/m"||_.startsWith("/m/");(_.includes("*")||_.includes("?")||_.includes("#")||_.split("/").includes("..")||b.length!==1||h)&&g("NATIVE_DATA_RESOURCE_DETAIL_ROUTE_PATH_INVALID",O);let u=Array.isArray(y.access?.allOf)?y.access.allOf:[];y.capability!==m&&!u.includes(m)&&g("NATIVE_DATA_RESOURCE_DETAIL_ROUTE_CAPABILITY_INVALID",O)}r.set(c,{desktop:f,mobile:p})}return r}function Ed(e){let t=new Map(e.data.resources.map((a,s)=>{let d=`/config/data/resources/${s}`,c=yt(a,d,e.appCode);return[c.code,new Map(c.schema.fields.map(l=>[String(l.code),l]))]})),o=new Map(e.data.resources.map((a,s)=>{let d=`/config/data/resources/${s}`,c=yt(a,d,e.appCode);return[c.code,new Map(c.schema.fields.map(l=>[String(l.code),String(l.type)]))]})),n=new Set(o.keys()),r=new Set(e.workflows.activations.map((a,s)=>Ho(N(a,`/config/workflows/activations/${s}`).workflowCode,`/config/workflows/activations/${s}/workflowCode`))),i=new Map;return re(e.backend.operations.map((a,s)=>{let d=`/config/backend/operations/${s}`,c=N(a,d);C(c,["code","method","path","capability","requestSchema","responseSchema","description","platformAccess","browser","ai"],d,!0);let l=D(c.method,`${d}/method`,16);["GET","POST","PUT","PATCH","DELETE"].includes(l)||g("NATIVE_OPERATION_METHOD_INVALID",`${d}/method`);let f=$(c.code,`${d}/code`);mf(c.ai,d,f,l,n);let p=pf(c.platformAccess,`${d}/platformAccess`,o,t,r,new Set(e.authz.roles.map(E=>String(E.code))));if(p?.workflowStage){let E=p.workflowStage,A=e.workflows.definitions.find(O=>O.definition.code===E.workflowCode);(!A||A.definition.subject?.resourceCode!==E.resourceCode||E.runningNodeIds.some(O=>!A.definition.nodes[O]))&&g("NATIVE_WORKFLOW_STAGE_NODE_INVALID",`${d}/platformAccess/workflowStage/runningNodeIds`)}if(p?.recordEdit){let E=e.data.resources.find(A=>A.code===p.recordEdit.resourceCode);E?.surface?.mutationOwner!=="action"&&g("NATIVE_RECORD_EDIT_ACTION_OWNER_REQUIRED",`${d}/platformAccess/recordEdit`);for(let A of p.recordEdit.fieldCodes)(!E.fieldPolicies?.[A]?.update?.length||E.surface?.fields?.[A]?.system===!0)&&g("NATIVE_RECORD_EDIT_FIELD_INVALID",`${d}/platformAccess/recordEdit/fieldCodes`)}if(p?.decimalReservation){let E=p.decimalReservation,A=String(E.resourceCode),O=JSON.stringify([E.amountFieldCode,E.currencyFieldCode,E.relationFieldCode,E.parentFieldCode,E.rootFieldCode,E.statusFieldCode,E.parentRelationValue,E.childRelationValue]),y=i.get(A);y&&y!==O&&g("NATIVE_DECIMAL_RESERVATION_MAPPING_CONFLICT",`${d}/platformAccess/decimalReservation`),i.set(A,O)}let m=uf(c.browser,`${d}/browser`,l,c.requestSchema,c.responseSchema,o,t,e.data.subjectReadSurfaces||[]);return{code:f,method:l,path:Pe(c.path,`${d}/path`),requiredCapability:Ie(c.capability,`${d}/capability`,e.appCode),requestSchemaDigest:ee(N(c.requestSchema,`${d}/requestSchema`)),responseSchemaDigest:ee(N(c.responseSchema,`${d}/responseSchema`)),...c.description===void 0?{}:{description:qi(c.description,`${d}/description`,2e3)},...p?{platformAccess:p}:{},...m?{browser:m}:{}}}),a=>a.code)}function uf(e,t,o,n,r,i,a,s){if(e===void 0)return null;let d=N(e,t);C(d,["exposure","behavior","idempotency","subject"],t,["refreshTargets","fileIntent"]),x(d.exposure,"authenticated",`${t}/exposure`);let c=D(d.behavior,`${t}/behavior`,32);["read","controlled"].includes(c)||g("NATIVE_OPERATION_BROWSER_BEHAVIOR_INVALID",`${t}/behavior`);let l=D(d.idempotency,`${t}/idempotency`,32);(!["none","required"].includes(l)||c==="controlled"&&l!=="required"||c==="read"&&l!=="none")&&g("NATIVE_OPERATION_BROWSER_IDEMPOTENCY_INVALID",`${t}/idempotency`);let f=N(d.subject,`${t}/subject`);C(f,["resourceCode","inputField"],`${t}/subject`);let p=Z(f.resourceCode,`${t}/subject/resourceCode`);i.has(p)||g("NATIVE_OPERATION_BROWSER_SUBJECT_RESOURCE_NOT_DECLARED",`${t}/subject/resourceCode`);let m=z(f.inputField,`${t}/subject/inputField`),E=N(n,`${t}/requestSchema`),A=N(r,`${t}/responseSchema`);(E.type!=="object"||E.additionalProperties!==!1||A.type!=="object"||A.additionalProperties!==!1)&&g("NATIVE_OPERATION_BROWSER_SCHEMA_ROOT_INVALID",`${t}/requestSchema`);let O=N(E.properties,`${t}/requestSchema/properties`),y=new Set(E.required===void 0?[]:F(E.required,`${t}/requestSchema/required`,200));(!(m in O)||!y.has(m))&&g("NATIVE_OPERATION_BROWSER_SUBJECT_INPUT_INVALID",`${t}/subject/inputField`);let _=N(O[m],`${t}/requestSchema/properties/${m}`);(_.type!=="string"||_.format!=="uuid")&&g("NATIVE_OPERATION_BROWSER_SUBJECT_INPUT_INVALID",`${t}/subject/inputField`);let b=new Map((Array.isArray(s)?s:[]).map((w,T)=>{let S=N(w,`/config/data/subjectReadSurfaces/${T}`);return[String(S.code),String(N(S.subject,`/config/data/subjectReadSurfaces/${T}/subject`).resourceCode)]})),h=d.refreshTargets===void 0?[]:k(d.refreshTargets,`${t}/refreshTargets`,16),u=new Set,I=re(h.map((w,T)=>{let S=`${t}/refreshTargets/${T}`,L=N(w,S);C(L,["kind","code"],S),x(L.kind,"subject-surface",`${S}/kind`);let V=$(L.code,`${S}/code`);return(u.has(V)||!b.has(V)||b.get(V)!==p)&&g("NATIVE_OPERATION_BROWSER_REFRESH_TARGET_INVALID",`${S}/code`),u.add(V),{kind:"subject-surface",code:V}}),w=>`${w.kind}:${w.code}`),R=ff(d.fileIntent,`${t}/fileIntent`,o,c,l,p,O,y,a);return{exposure:"authenticated",behavior:c,idempotency:l,subject:{resourceCode:p,inputField:m},...I.length?{refreshTargets:I}:{},...R?{fileIntent:R}:{}}}function ff(e,t,o,n,r,i,a,s,d){if(e===void 0)return null;let c=N(e,t);C(c,["recordResourceCode","recordIdInputField","relationField","fileNameField","contentTypeField","sizeField","purposes","maxTtlSeconds","maxBytes"],t),(o!=="GET"||n!=="read"||r!=="none")&&g("NATIVE_OPERATION_FILE_INTENT_BEHAVIOR_INVALID",t);let l=Z(c.recordResourceCode,`${t}/recordResourceCode`),f=d.get(l);f||g("NATIVE_OPERATION_FILE_INTENT_RESOURCE_NOT_DECLARED",`${t}/recordResourceCode`);let p=z(c.recordIdInputField,`${t}/recordIdInputField`),m=N(a[p],`${t}/recordIdInputField`);(!s.has(p)||m.type!=="string"||m.format!=="uuid")&&g("NATIVE_OPERATION_FILE_INTENT_RECORD_INPUT_INVALID",`${t}/recordIdInputField`);let E=z(c.relationField,`${t}/relationField`),A=f.get(E);(!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||"")!==i))&&g("NATIVE_OPERATION_FILE_INTENT_RELATION_INVALID",`${t}/relationField`);let O=[["fileNameField",["text.short","text.long"]],["contentTypeField",["text.short","text.long"]],["sizeField",["number.integer"]]],y={};for(let[u,I]of O){let R=z(c[u],`${t}/${u}`);I.includes(String(f.get(R)?.type))||g("NATIVE_OPERATION_FILE_INTENT_METADATA_INVALID",`${t}/${u}`),y[u]=R}let _=re(F(c.purposes,`${t}/purposes`,2),u=>u);(!_.length||_.some(u=>!["preview","download"].includes(u)))&&g("NATIVE_OPERATION_FILE_INTENT_PURPOSE_INVALID",`${t}/purposes`);let b=Number(c.maxTtlSeconds);(!Number.isSafeInteger(b)||b<1||b>300)&&g("NATIVE_OPERATION_FILE_INTENT_TTL_INVALID",`${t}/maxTtlSeconds`);let h=Number(c.maxBytes);return(!Number.isSafeInteger(h)||h<1||h>104857600)&&g("NATIVE_OPERATION_FILE_INTENT_SIZE_INVALID",`${t}/maxBytes`),{recordResourceCode:l,recordIdInputField:p,relationField:E,fileNameField:y.fileNameField,contentTypeField:y.contentTypeField,sizeField:y.sizeField,purposes:_,maxTtlSeconds:b,maxBytes:h}}function pf(e,t,o,n,r,i){if(e===void 0)return null;let a=N(e,t);C(a,["directory","selectedDepartments","managedFiles","managedFileCopies","notification","workflow","roleAssertions","decimalReservation","dataCommands","recordEdit","ownedSubject","workflowStage","dataMutations"],t,!0),Object.keys(a).length===0&&g("NATIVE_OPERATION_PLATFORM_ACCESS_EMPTY",t);let s={};if(a.dataMutations!==void 0)try{s.dataMutations=ho(a.dataMutations,n)}catch{g("NATIVE_OPERATION_DATA_MUTATIONS_INVALID",`${t}/dataMutations`)}if(a.dataCommands!==void 0){let d=N(a.dataCommands,`${t}/dataCommands`);C(d,["mode"],`${t}/dataCommands`),x(d.mode,"recoverable-native",`${t}/dataCommands/mode`),s.dataCommands={mode:"recoverable-native"}}if(a.workflowStage!==void 0){try{ei(a.workflowStage)}catch{g("NATIVE_WORKFLOW_STAGE_DECLARATION_INVALID",`${t}/workflowStage`)}let d=a.workflowStage;(!s.dataCommands||a.decimalReservation!==void 0||!o.has(d.resourceCode)||!r.has(d.workflowCode)||!a.workflow?.codes?.includes(d.workflowCode))&&g("NATIVE_WORKFLOW_STAGE_DECLARATION_INVALID",`${t}/workflowStage`),s.workflowStage={...d,runningNodeIds:B([...d.runningNodeIds]),allowedStatuses:B([...d.allowedStatuses])}}if(a.recordEdit!==void 0){let d=`${t}/recordEdit`,c=N(a.recordEdit,d);C(c,["resourceCode","fieldCodes"],d);let l=Z(c.resourceCode,`${d}/resourceCode`),f=n.get(l),p=F(c.fieldCodes,`${d}/fieldCodes`,200);(!f||!p.length||!s.dataCommands)&&g("NATIVE_RECORD_EDIT_DECLARATION_INVALID",d);for(let m of p){let E=f.get(m);(!E||E.type==="serial-number"||E.type==="subtable")&&g("NATIVE_RECORD_EDIT_FIELD_INVALID",`${d}/fieldCodes`)}s.recordEdit={resourceCode:l,fieldCodes:B(p)}}if(a.roleAssertions!==void 0){let d=N(a.roleAssertions,`${t}/roleAssertions`);C(d,["roleCodes","actorAuthority"],`${t}/roleAssertions`,!0),d.actorAuthority!==void 0&&x(d.actorAuthority,!0,`${t}/roleAssertions/actorAuthority`);let c=F(d.roleCodes,`${t}/roleAssertions/roleCodes`,20);c.length||g("NATIVE_OPERATION_ROLE_ASSERTIONS_REQUIRED",`${t}/roleAssertions/roleCodes`),c.forEach((l,f)=>{i.has(l)||g("NATIVE_ROLE_REFERENCE_MISSING",`${t}/roleAssertions/roleCodes/${f}`)}),s.roleAssertions={roleCodes:B(c),...d.actorAuthority===!0?{actorAuthority:!0}:{}}}if(a.directory!==void 0){let d=N(a.directory,`${t}/directory`);C(d,["mode","fields"],`${t}/directory`),["current-initiator","selected-user"].includes(String(d.mode))||g("NATIVE_OPERATION_DIRECTORY_MODE_INVALID",`${t}/directory/mode`);let c=new Set(["displayName","employeeNumber","primaryDepartment","departments",...d.mode==="current-initiator"?["phone"]:[]]),l=F(d.fields,`${t}/directory/fields`,c.size);(!l.length||l.some(f=>!c.has(f)))&&g("NATIVE_OPERATION_DIRECTORY_FIELDS_INVALID",`${t}/directory/fields`),s.directory={mode:String(d.mode),fields:B(l)}}if(a.selectedDepartments!==void 0){let d=`${t}/selectedDepartments`,c=N(a.selectedDepartments,d);C(c,["fields","maxIds"],d);let l=F(c.fields,`${d}/fields`,4);(!l.includes("name")||l.some(f=>!["name","path","parent","fullPath"].includes(f))||!Number.isSafeInteger(c.maxIds)||c.maxIds<1||c.maxIds>50)&&g("NATIVE_OPERATION_SELECTED_DEPARTMENTS_INVALID",d),s.selectedDepartments={fields:B(l),maxIds:c.maxIds}}if(a.managedFiles!==void 0){let d=k(a.managedFiles,`${t}/managedFiles`,16);d.length||g("NATIVE_OPERATION_MANAGED_FILES_REQUIRED",`${t}/managedFiles`);let c=new Set;s.managedFiles=re(d.map((l,f)=>{let p=`${t}/managedFiles/${f}`,m=N(l,p);C(m,["resourceCode","fieldCodes","intents"],p);let E=Z(m.resourceCode,`${p}/resourceCode`);(c.has(E)||!o.has(E))&&g("NATIVE_OPERATION_MANAGED_FILE_RESOURCE_INVALID",`${p}/resourceCode`),c.add(E);let A=F(m.fieldCodes,`${p}/fieldCodes`,16);(!A.length||A.some(y=>!["file","image","signature","text.rich"].includes(String(o.get(E)?.get(y)||""))))&&g("NATIVE_OPERATION_MANAGED_FILE_FIELD_INVALID",`${p}/fieldCodes`);let O=F(m.intents,`${p}/intents`,2);return(!O.length||O.some(y=>!["create","update"].includes(y)))&&g("NATIVE_OPERATION_MANAGED_FILE_INTENT_INVALID",`${p}/intents`),{resourceCode:E,fieldCodes:B(A),intents:B(O)}}),l=>l.resourceCode)}if(a.managedFileCopies!==void 0){let d=k(a.managedFileCopies,`${t}/managedFileCopies`,16);d.length||g("NATIVE_OPERATION_MANAGED_FILE_COPIES_REQUIRED",`${t}/managedFileCopies`);let c=new Set;s.managedFileCopies=re(d.map((l,f)=>{let p=`${t}/managedFileCopies/${f}`,m=N(l,p);C(m,["mode","sourceResourceCode","sourceFieldCodes","targetResourceCode","targetFieldCodes"],p),x(m.mode,"copy",`${p}/mode`);let E=Z(m.sourceResourceCode,`${p}/sourceResourceCode`),A=Z(m.targetResourceCode,`${p}/targetResourceCode`),O=o.get(E),y=o.get(A);(!O||!y)&&g("NATIVE_OPERATION_MANAGED_FILE_COPY_RESOURCE_INVALID",p);let _=F(m.sourceFieldCodes,`${p}/sourceFieldCodes`,16),b=F(m.targetFieldCodes,`${p}/targetFieldCodes`,16);(!_.length||_.length!==b.length)&&g("NATIVE_OPERATION_MANAGED_FILE_COPY_FIELDS_INVALID",p),_.forEach((u,I)=>{let R=O.get(u),w=y.get(b[I]);(!["file","image","text.rich"].includes(String(R))||R!==w)&&g("NATIVE_OPERATION_MANAGED_FILE_COPY_FIELD_INVALID",`${p}/sourceFieldCodes/${I}`)});let h=`${E}:${_.join(",")}=>${A}:${b.join(",")}`;return c.has(h)&&g("NATIVE_OPERATION_MANAGED_FILE_COPY_DUPLICATE",p),c.add(h),{mode:"copy",sourceResourceCode:E,sourceFieldCodes:B(_),targetResourceCode:A,targetFieldCodes:B(b)}}),l=>`${l.sourceResourceCode}:${l.sourceFieldCodes.join(",")}=>${l.targetResourceCode}:${l.targetFieldCodes.join(",")}`)}if(a.notification!==void 0){let d=N(a.notification,`${t}/notification`);C(d,["mode"],`${t}/notification`),d.mode!=="business-standard"&&g("NATIVE_OPERATION_NOTIFICATION_MODE_INVALID",`${t}/notification/mode`),s.notification={mode:"business-standard"}}if(a.workflow!==void 0){let d=N(a.workflow,`${t}/workflow`);C(d,["codes"],`${t}/workflow`,["businessCommands"]);let c=F(d.codes,`${t}/workflow/codes`,16);(!c.length||c.some(f=>!r.has(f)))&&g("NATIVE_OPERATION_WORKFLOW_CODE_INVALID",`${t}/workflow/codes`);let l=d.businessCommands===void 0?void 0:F(d.businessCommands,`${t}/workflow/businessCommands`,4);l&&(!l.length||l.some(f=>!["approve","reject","withdraw","resubmit"].includes(f)))&&g("NATIVE_OPERATION_WORKFLOW_BUSINESS_COMMAND_INVALID",`${t}/workflow/businessCommands`),s.workflow={codes:B(c),...l?{businessCommands:B(l)}:{}}}if(a.ownedSubject!==void 0){let d=`${t}/ownedSubject`,c=a.ownedSubject;try{Sn(c)}catch{g("NATIVE_WORKFLOW_OWNED_SUBJECT_INVALID",d)}(!s.workflow||a.decimalReservation!==void 0)&&g("NATIVE_WORKFLOW_OWNED_SUBJECT_INVALID",d);try{$i(c,n,s.managedFiles||[])}catch(l){g(`NATIVE_${l.message}`,d)}s.ownedSubject={mode:"create",resourceCode:c.resourceCode,subtables:re(c.subtables.map(l=>({fieldCode:l.fieldCode,fieldCodes:B([...l.fieldCodes])})),l=>l.fieldCode)}}if(a.decimalReservation!==void 0){let d=`${t}/decimalReservation`,c=N(a.decimalReservation,d);C(c,["mode","resourceCode","amountFieldCode","currencyFieldCode","relationFieldCode","parentFieldCode","rootFieldCode","statusFieldCode","parentRelationValue","childRelationValue","eligibleParentStatuses","eligibleChildStatuses"],d);let l=D(c.mode,`${d}/mode`,16);["reserve","commit","release"].includes(l)||g("NATIVE_DECIMAL_RESERVATION_MODE_INVALID",`${d}/mode`);let f=Z(c.resourceCode,`${d}/resourceCode`),p=n.get(f);p||g("NATIVE_DECIMAL_RESERVATION_RESOURCE_MISSING",`${d}/resourceCode`);let E=Object.fromEntries(["amountFieldCode","currencyFieldCode","relationFieldCode","parentFieldCode","rootFieldCode","statusFieldCode"].map(u=>[u,z(c[u],`${d}/${u}`)])),A=u=>p.get(E[u]),O=u=>new Set((A(u)?.options||[]).map(I=>String(I.value))),y=$(c.parentRelationValue,`${d}/parentRelationValue`),_=$(c.childRelationValue,`${d}/childRelationValue`),b=F(c.eligibleParentStatuses,`${d}/eligibleParentStatuses`,16),h=F(c.eligibleChildStatuses,`${d}/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!==f||A("rootFieldCode")?.type!=="uuid"||A("statusFieldCode")?.type!=="option.single"||y===_||!O("relationFieldCode").has(y)||!O("relationFieldCode").has(_)||!b.length||!h.length||b.some(u=>!O("statusFieldCode").has(u))||h.some(u=>!O("statusFieldCode").has(u)))&&g("NATIVE_DECIMAL_RESERVATION_FIELD_INVALID",d),s.decimalReservation={mode:l,resourceCode:f,...E,parentRelationValue:y,childRelationValue:_,eligibleParentStatuses:B(b),eligibleChildStatuses:B(h)}}return s}function mf(e,t,o,n,r){if(e===void 0)return;let i=`${t}/ai`,a=N(e,i);$u.test(o)||g("NATIVE_OPERATION_AI_CODE_INVALID",`${t}/code`),C(a,["name","description","risk","resources","sideEffects","concurrency","timeoutMs"],i,!0),D(a.name,`${i}/name`,Wi),D(a.description,`${i}/description`,Wi);let s=D(a.risk,`${i}/risk`,16);["read","write","destructive","external"].includes(s)||g("NATIVE_OPERATION_AI_RISK_INVALID",`${i}/risk`),s==="read"!=(n==="GET")&&g("NATIVE_OPERATION_AI_METHOD_RISK_MISMATCH",`${i}/risk`),n==="DELETE"&&!["destructive","external"].includes(s)&&g("NATIVE_OPERATION_AI_METHOD_RISK_MISMATCH",`${i}/risk`);let d=F(a.resources,`${i}/resources`,16);d.length===0&&g("NATIVE_OPERATION_AI_RESOURCE_REQUIRED",`${i}/resources`),d.forEach((l,f)=>{let p=Z(l,`${i}/resources/${f}`);r.has(p)||g("NATIVE_OPERATION_AI_RESOURCE_MISSING",`${i}/resources/${f}`)});let c=F(a.sideEffects,`${i}/sideEffects`,20);(s==="read"&&c.length!==0||s!=="read"&&c.length===0)&&g("NATIVE_OPERATION_AI_SIDE_EFFECT_INVALID",`${i}/sideEffects`),a.concurrency!==void 0&&!["none","revision"].includes(D(a.concurrency,`${i}/concurrency`,16))&&g("NATIVE_OPERATION_AI_CONCURRENCY_INVALID",`${i}/concurrency`),a.timeoutMs!==void 0&&ce(a.timeoutMs,`${i}/timeoutMs`,100,3e4)}function Bo(e){return(e.replace(/\/{2,}/g,"/").replace(/\/$/,"")||"/").split("/").map(o=>o.startsWith(":")?":":o.includes("*")?"*":o).join("/")}function gf(e,t){let o=N(e,t),n=D(o.type,`${t}/type`,32),r=["code","type","label","presentation","required"],i=n==="sso"?[...r,"provider"]:n==="dingtalk"?[...r,"flow"]:r;C(o,i,t);let a=$(o.code,`${t}/code`),s=D(o.label,`${t}/label`,255),d=D(o.presentation,`${t}/presentation`,16);["primary","secondary"].includes(d)||g("NATIVE_APPLICATION_AUTH_METHOD_PRESENTATION_INVALID",`${t}/presentation`);let c=Gt(o.required,`${t}/required`);return["sso","password","dingtalk"].includes(n)||g("NATIVE_APPLICATION_AUTH_METHOD_TYPE_INVALID",`${t}/type`),n==="sso"&&o.provider!=="tenant-default"&&g("NATIVE_APPLICATION_AUTH_SSO_PROVIDER_INVALID",`${t}/provider`),n==="dingtalk"&&!["auto","jsapi","oauth"].includes(D(o.flow,`${t}/flow`,16))&&g("NATIVE_APPLICATION_AUTH_DINGTALK_FLOW_INVALID",`${t}/flow`),{code:a,type:n,label:s,presentation:d,required:c,...n==="sso"?{provider:"tenant-default"}:{},...n==="dingtalk"?{flow:o.flow}:{}}}function ed(e,t,o){let n=N(e,o);C(n,["routeCode","path","defaultRouteCode"],o);let r=$(n.routeCode,`${o}/routeCode`),i=Pe(n.path,`${o}/path`),a=t==="desktop"?"/login":"/m/login";return(i!==a||/[:*?#\\]/.test(i))&&g("NATIVE_APPLICATION_AUTH_SURFACE_PATH_INVALID",`${o}/path`,{device:t,expectedPath:a}),{routeCode:r,path:i,defaultRouteCode:$(n.defaultRouteCode,`${o}/defaultRouteCode`)}}function Id(e,t,o,n){if(e===null)return;let r=N(e,n);C(r,["accountMode","registration","methods","surfaces"],n),x(r.accountMode,"existing-platform-users-only",`${n}/accountMode`);let i=N(r.registration,`${n}/registration`);C(i,["mode"],`${n}/registration`),x(i.mode,"reject",`${n}/registration/mode`);let a=k(r.methods,`${n}/methods`,8);a.length===0&&g("NATIVE_APPLICATION_AUTH_METHOD_REQUIRED",`${n}/methods`);let s=a.map((y,_)=>gf(y,`${n}/methods/${_}`)),d=new Set,c=new Set;for(let[y,_]of s.entries())d.has(_.code)&&g("NATIVE_APPLICATION_AUTH_METHOD_CODE_DUPLICATE",`${n}/methods/${y}/code`),c.has(_.type)&&g("NATIVE_APPLICATION_AUTH_METHOD_TYPE_DUPLICATE",`${n}/methods/${y}/type`),d.add(_.code),c.add(_.type);s.filter(y=>y.presentation==="primary").length!==1&&g("NATIVE_APPLICATION_AUTH_PRIMARY_METHOD_INVALID",`${n}/methods`);let l=N(r.surfaces,`${n}/surfaces`);C(l,["desktop","mobile"],`${n}/surfaces`);let f=ed(l.desktop,"desktop",`${n}/surfaces/desktop`),p=ed(l.mobile,"mobile",`${n}/surfaces/mobile`);f.routeCode===p.routeCode&&g("NATIVE_APPLICATION_AUTH_SURFACE_CODE_DUPLICATE",`${n}/surfaces/mobile/routeCode`);let m=k(t,"/config/frontend/routes",M.routes),E=new Map;for(let[y,_]of m.entries()){let b=N(_,`/config/frontend/routes/${y}`);E.set(String(b.code||""),b)}let A=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",f],["mobile",p]]){E.has(_.routeCode)&&g("NATIVE_APPLICATION_AUTH_SURFACE_CODE_CONFLICT",`${n}/surfaces/${y}/routeCode`);let b=/^user\.([a-z][a-z0-9-]{0,62})\.(records|submit)$/.exec(String(_.defaultRouteCode||"")),h=E.get(_.defaultRouteCode),u=String(h?.path||"");if(b&&A.has(b[1])){let R=b[2]==="records"?`/my/${b[1]}`:`/my/${b[1]}/submit`;h={surface:"user",path:y==="mobile"?`/m${R}`:R},u=String(h.path)}let I=y==="desktop"?u==="/m"||u.startsWith("/m/"):!(u==="/m"||u.startsWith("/m/"));(!h||h.surface!=="user"||/[:*]/.test(u)||I)&&g("NATIVE_APPLICATION_AUTH_DEFAULT_ROUTE_INVALID",`${n}/surfaces/${y}/defaultRouteCode`)}let O=yd(o).filter(y=>!y.owner.startsWith("authentication:"));for(let[y,_]of[["desktop",f],["mobile",p]]){let b=O.find(h=>Bo(h.path)===Bo(_.path));b&&g("NATIVE_APPLICATION_AUTH_SURFACE_PATH_CONFLICT",`${n}/surfaces/${y}/path`,{owner:b.owner})}}function _f(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),r=N(n.surfaces,`${t}/surfaces`),i={...n,surfaces:{...r,desktop:{...N(r.desktop,`${t}/surfaces/desktop`),defaultRouteCode:"auth-desktop-default"},mobile:{...N(r.mobile,`${t}/surfaces/mobile`),defaultRouteCode:"auth-mobile-default"}}};Id(i,o.frontend.routes,{...o,frontend:{...o.frontend,authentication:i}},t)}function Af(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 Ef=new Set(["draft.read","draft.update","validate","create","own.list","own.read","public.list","public.read"]);function If(e,t,o){let n=N(e,o);C(n,["policies"],o);let r=k(n.policies,`${o}/policies`,16);r.length<1&&g("NATIVE_PUBLIC_POLICY_REQUIRED",o);let i=new Map(t.frontend.routes.map(c=>[c.code,c])),a=new Map(t.data.resources.map(c=>[c.code,c])),s=new Set,d=new Set(r.map(c=>String(c?.code||"")));r.forEach((c,l)=>{let f=`${o}/policies/${l}`,p=N(c,f);C(p,["code","routeCode","mode","resourceCode","operations","fields"],f,["requiredFields","ownRecordFields","publicRecordFields","publicFilters","serverGeneratedFields","schedule","publicSubtableFields","draft","validations"]);let m=$(p.code,`${f}/code`);s.has(m)&&g("NATIVE_PUBLIC_POLICY_DUPLICATE",`${f}/code`);let E=$(p.routeCode,`${f}/routeCode`),A=i.get(E);(!A||A.surface!=="user"||A.capability!==void 0||A.access!==void 0||/[:*]/.test(String(A.path)))&&g("NATIVE_PUBLIC_ROUTE_INVALID",`${f}/routeCode`),x(p.mode,"anonymous",`${f}/mode`);let O=Z(p.resourceCode,`${f}/resourceCode`),y=a.get(O);y||g("NATIVE_PUBLIC_RESOURCE_MISSING",`${f}/resourceCode`);let _=new Map(y.schema.fields.map(P=>[String(P.code),String(P.type)])),b=F(p.operations,`${f}/operations`,8);(b.length<1||b.some(P=>!Ef.has(P)))&&g("NATIVE_PUBLIC_OPERATION_INVALID",`${f}/operations`),b.includes("draft.read")!==b.includes("draft.update")&&g("NATIVE_PUBLIC_DRAFT_OPERATION_INCOMPLETE",`${f}/operations`);let h=F(p.fields,`${f}/fields`,64);(h.length<1||h.some(P=>!_.has(P)))&&g("NATIVE_PUBLIC_FIELD_INVALID",`${f}/fields`);for(let P of["requiredFields","ownRecordFields","publicRecordFields"]){if(!Object.prototype.hasOwnProperty.call(p,P))continue;F(p[P],`${f}/${P}`,64).some(W=>!h.includes(W))&&g("NATIVE_PUBLIC_FIELD_SCOPE_INVALID",`${f}/${P}`)}let u=Object.prototype.hasOwnProperty.call(p,"serverGeneratedFields")?k(p.serverGeneratedFields,`${f}/serverGeneratedFields`,16):[],I=new Set;u.forEach((P,U)=>{let W=`${f}/serverGeneratedFields/${U}`,H=N(P,W);C(H,["field","kind"],W);let Y=z(H.field,`${W}/field`);(I.has(Y)||!_.has(Y)||h.includes(Y)||_.get(Y)!=="text.short"&&_.get(Y)!=="text.long")&&g("NATIVE_PUBLIC_SERVER_GENERATED_FIELD_INVALID",`${W}/field`),x(H.kind,"random-token",`${W}/kind`),I.add(Y)});let R=Object.prototype.hasOwnProperty.call(p,"schedule")?N(p.schedule,`${f}/schedule`):null;if(R){let P=["campusPolicyCode","rulePolicyCode","campusField","ruleCampusField","ruleWeekdaysField","ruleOpenAtField","ruleCloseAtField","ruleSlotMinutesField","ruleAdvanceHoursField","ruleAdvanceDaysField","campusEnabledField","ruleEnabledField","dateField","timeField"];C(R,P,`${f}/schedule`);for(let U of["campusPolicyCode","rulePolicyCode"])$(R[U],`${f}/schedule/${U}`);for(let U of P.filter(W=>!["campusPolicyCode","rulePolicyCode"].includes(W)))z(R[U],`${f}/schedule/${U}`);for(let U of[R.campusField,R.dateField,R.timeField])h.includes(String(U))||g("NATIVE_PUBLIC_SCHEDULE_FIELD_INVALID",`${f}/schedule`);(!d.has(String(R.campusPolicyCode))||!d.has(String(R.rulePolicyCode)))&&g("NATIVE_PUBLIC_SCHEDULE_POLICY_INVALID",`${f}/schedule`)}let w=Object.prototype.hasOwnProperty.call(p,"publicFilters")?k(p.publicFilters,`${f}/publicFilters`,16):[],T=new Set;w.forEach((P,U)=>{let W=`${f}/publicFilters/${U}`,H=N(P,W);C(H,["field","operator","value"],W);let Y=z(H.field,`${W}/field`);T.has(Y)&&g("NATIVE_PUBLIC_FILTER_DUPLICATE",`${W}/field`),h.includes(Y)||g("NATIVE_PUBLIC_FILTER_FIELD_INVALID",`${W}/field`),x(H.operator,"eq",`${W}/operator`),["boolean","text.short","text.long","number.integer","number.decimal","date","time"].includes(_.get(Y)||"")||g("NATIVE_PUBLIC_FILTER_FIELD_INVALID",`${W}/field`),H.value!==null&&typeof H.value!="string"&&typeof H.value!="number"&&typeof H.value!="boolean"&&g("NATIVE_PUBLIC_FILTER_VALUE_INVALID",`${W}/value`),T.add(Y)});let S=Object.prototype.hasOwnProperty.call(p,"publicSubtableFields")?N(p.publicSubtableFields,`${f}/publicSubtableFields`):null;if(S){Object.keys(S).length>64&&g("NATIVE_PUBLIC_SUBTABLE_FIELDS_INVALID",`${f}/publicSubtableFields`);for(let[P,U]of Object.entries(S)){let W=y.schema.fields.find(X=>String(X.code)===P),H=String(W?.subtable?.resourceCode||""),Y=a.get(H),he=new Map((Y?.schema?.fields||[]).map(X=>[String(X.code),String(X.type)])),Le=F(U,`${f}/publicSubtableFields/${P}`,64);(!h.includes(P)||_.get(P)!=="subtable"||!Y||Le.length<1||Le.some(X=>!he.has(X))||Le.some(X=>he.get(X)==="subtable")||Le.some(X=>he.get(X)==="signature"))&&g("NATIVE_PUBLIC_SUBTABLE_FIELDS_INVALID",`${f}/publicSubtableFields/${P}`)}}if(b.some(P=>P.startsWith("public."))){Object.prototype.hasOwnProperty.call(p,"publicRecordFields")||g("NATIVE_PUBLIC_RECORD_FIELDS_REQUIRED",`${f}/publicRecordFields`);let P=F(p.publicRecordFields,`${f}/publicRecordFields`,64);(P.length<1||P.some(U=>!h.includes(U))||P.some(U=>_.get(U)==="signature"||_.get(U)==="subtable"&&!S?.[U]))&&g("NATIVE_PUBLIC_RECORD_FIELDS_INVALID",`${f}/publicRecordFields`)}let L=Object.prototype.hasOwnProperty.call(p,"requiredFields")?F(p.requiredFields,`${f}/requiredFields`,64):[],V=y.surface||{},J=V.fields||{},ne=String(V.mutationOwner||"native")==="native"&&V.generated?.create!==!1,Q=y.schema.fields.filter(P=>Ue(P,J[P.code])).map(P=>String(P.code));if(b.includes("create")&&!ne&&g("NATIVE_PUBLIC_CREATE_FIELDS_INCOMPLETE",`${f}/fields`),b.includes("create")&&!Object.prototype.hasOwnProperty.call(p,"draft")&&g("NATIVE_PUBLIC_DRAFT_REQUIRED",`${f}/draft`),b.includes("create"))for(let P of Q){let U=h.includes(P)?L.includes(P)?null:"requiredFields":"fields";U&&g("NATIVE_PUBLIC_CREATE_FIELDS_INCOMPLETE",`${f}/${U}`,{resourceCode:Z,fieldCode:P})}if(Object.prototype.hasOwnProperty.call(p,"draft")){let P=N(p.draft,`${f}/draft`);C(P,["enabled","inactivityTtlSeconds","maxBytes"],`${f}/draft`),x(P.enabled,!0,`${f}/draft/enabled`),ce(P.inactivityTtlSeconds,`${f}/draft/inactivityTtlSeconds`,3600,7776e3),ce(P.maxBytes,`${f}/draft/maxBytes`,4096,262144)}else b.includes("draft.read")&&g("NATIVE_PUBLIC_DRAFT_REQUIRED",`${f}/draft`);let Oe=Object.prototype.hasOwnProperty.call(p,"validations")?k(p.validations,`${f}/validations`,16):[],ae=new Set;Oe.forEach((P,U)=>{let W=`${f}/validations/${U}`,H=N(P,W);C(H,["code","kind","fields","result"],W);let Y=$(H.code,`${W}/code`);ae.has(Y)&&g("NATIVE_PUBLIC_VALIDATION_DUPLICATE",`${W}/code`),x(H.kind,"duplicate",`${W}/kind`),x(H.result,"availability",`${W}/result`);let he=F(H.fields,`${W}/fields`,8);(he.length<1||he.some(Le=>!h.includes(Le))||he.some(Le=>["file","subtable"].includes(_.get(Le)||"")))&&g("NATIVE_PUBLIC_VALIDATION_FIELD_INVALID",`${W}/fields`),ae.add(Y)}),s.add(m)})}function yf(e,t){let o=N(e,t);C(o,["policies"],t),k(o.policies,`${t}/policies`,16).length<1&&g("NATIVE_PUBLIC_POLICY_REQUIRED",t)}function bf(e){return{policies:re(e.frontend.publicAccess.policies.map(t=>({code:t.code,routeCode:t.routeCode,mode:t.mode,resourceCode:t.resourceCode,operations:B(t.operations),fields:B(t.fields),...t.requiredFields?{requiredFields:B(t.requiredFields)}:{},...t.ownRecordFields?{ownRecordFields:B(t.ownRecordFields)}:{},...t.publicRecordFields?{publicRecordFields:B(t.publicRecordFields)}:{},...t.publicFilters?{publicFilters:t.publicFilters.map(o=>({field:o.field,operator:o.operator,value:o.value})).sort((o,n)=>we(o.field,n.field))}:{},...t.publicSubtableFields?{publicSubtableFields:Object.fromEntries(Object.entries(t.publicSubtableFields).sort(([o],[n])=>o.localeCompare(n)).map(([o,n])=>[o,B(Array.isArray(n)?n.map(String):[])]))}:{},...t.serverGeneratedFields?{serverGeneratedFields:t.serverGeneratedFields.map(o=>({field:o.field,kind:o.kind})).sort((o,n)=>we(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:re(t.validations.map(o=>({code:o.code,kind:o.kind,fields:B(o.fields),result:o.result})),o=>o.code)}:{}})),t=>t.code)}}function yd(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=bd(o),r=`/admin/resources/${o.code}`,i=[["list",r],["detail",`${r}/:id`],["create",`${r}/new`],["update",`${r}/:id/edit`]];for(let[a,s]of i)n[a]&&t.push({owner:`resource:${o.code}:${a}`,path:s},{owner:`resource:${o.code}:${a}: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 zo(e){let t=new Map(yd(e).map(o=>[Bo(o.path),o]));return re(e.frontend.routes.map((o,n)=>{let r=`/config/frontend/routes/${n}`,i=N(o,r);C(i,["code","path","label","surface","parentCode","capability","access","pinned","tabPersistence","keepAlive"],r,!0),["admin","user"].includes(i.surface)||g("NATIVE_ROUTE_SURFACE_INVALID",`${r}/surface`);let a=Pe(i.path,`${r}/path`);i.surface==="admin"&&a!=="/admin"&&!a.startsWith("/admin/")&&g("NATIVE_ADMIN_ROUTE_PATH_INVALID",`${r}/path`),i.surface==="user"&&(a==="/admin"||a.startsWith("/admin/"))&&g("NATIVE_USER_ROUTE_PATH_RESERVED",`${r}/path`);let s=Bo(a),d=t.get(s);d&&g("NATIVE_ROUTE_PATH_CONFLICT",`${r}/path`,{path:a,owner:d.owner}),t.set(s,{owner:`frontend:${String(i.code||n)}`,path:a});let c=/[:*]/.test(a),l=Ki(i,r,e.appCode),f=i.pinned===void 0?void 0:Gt(i.pinned,`${r}/pinned`),p=i.tabPersistence===void 0?c?"none":"session":D(i.tabPersistence,`${r}/tabPersistence`,16),m=i.keepAlive===void 0?"none":D(i.keepAlive,`${r}/keepAlive`,16);return["session","none"].includes(p)||g("NATIVE_ROUTE_TAB_PERSISTENCE_INVALID",`${r}/tabPersistence`),["none","memory"].includes(m)||g("NATIVE_ROUTE_KEEP_ALIVE_INVALID",`${r}/keepAlive`),c&&f===!0&&g("NATIVE_DYNAMIC_ROUTE_PINNED_FORBIDDEN",`${r}/pinned`),c&&p==="session"&&g("NATIVE_DYNAMIC_ROUTE_TAB_PERSISTENCE_FORBIDDEN",`${r}/tabPersistence`),c&&m==="memory"&&g("NATIVE_DYNAMIC_ROUTE_KEEP_ALIVE_FORBIDDEN",`${r}/keepAlive`),{code:$(i.code,`${r}/code`),path:a,label:D(i.label,`${r}/label`,255),surface:i.surface,...i.parentCode===void 0?{}:{parentCode:$(i.parentCode,`${r}/parentCode`)},...l,...f===void 0?{}:{pinned:f},tabPersistence:p,keepAlive:m}}),o=>o.code)}function bd(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"),r=o==="native";return{list:n.list??!0,detail:n.detail??!0,create:n.create??r,update:n.update??r,delete:n.delete??r}}function Od(e){let t=[];for(let o of re(e.data.resources,n=>n.code).flatMap(n=>[{resource:n,viewCode:void 0},...(n.surface?.views||[]).map(r=>({viewCode:r.code,resource:{...n,name:r.name,surface:to(n.surface,r.code)}}))])){let{resource:n,viewCode:r}=o,i=`/admin/resources/${n.code}${r?`/views/${r}`:""}`,a=bd(n),s=[{operation:"list",kind:"resource-list",path:`${i}`,label:n.name,capability:n.capabilities.read,navigationEligible:!0},{operation:"detail",kind:"resource-detail",path:`${i}/:id`,label:`${n.name}\u8BE6\u60C5`,capability:n.capabilities.read,navigationEligible:!1},{operation:"create",kind:"resource-create",path:`${i}/new`,label:`\u65B0\u589E${n.name}`,capability:n.capabilities.create,navigationEligible:!1},{operation:"update",kind:"resource-update",path:`${i}/:id/edit`,label:`\u7F16\u8F91${n.name}`,capability:n.capabilities.update,navigationEligible:!1}];for(let d of s)a[d.operation]&&t.push({code:`resource:${n.code}${r?`:view:${r}`:""}:${d.operation}`,kind:d.kind,path:d.path,label:d.label,navigationEligible:d.navigationEligible,capability:d.capability,resourceCode:n.code,...r?{viewCode:r}:{}})}for(let o of zo(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)=>we(o.code,n.code))}function hd(e){return e.kind==="resource"?`resource:${e.resourceCode}${e.viewCode?`:view:${e.viewCode}`:""}:list`:`operation:${e.routeCode}`}function Of(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,r)=>({pageCode:hd(n.page),...n.label===void 0?{}:{label:n.label},...n.icon===void 0?{}:{icon:n.icon},order:n.order??r})).sort((n,r)=>n.order-r.order||we(n.pageCode,r.pageCode))})).sort((t,o)=>t.order-o.order||we(t.code,o.code))}function hf(e,t){let o=k(e,t,M.adminNavigationGroups);o.reduce((r,i)=>r+(Array.isArray(i?.items)?i.items.length:0),0)>M.adminNavigationItems&&g("NATIVE_ARRAY_LIMIT_EXCEEDED",t);let n=0;o.forEach((r,i)=>{let a=`${t}/${i}`,s=N(r,a);C(s,["code","label","icon","order","items"],a,!0),$(s.code,`${a}/code`),D(s.label,`${a}/label`,255),Ko(s.icon,`${a}/icon`),id(s.order,`${a}/order`);let d=k(s.items,`${a}/items`,500);d.length===0&&g("NATIVE_ADMIN_GROUP_ORPHANED",`${a}/items`),n+=d.length,n>M.adminNavigationItems&&g("NATIVE_ARRAY_LIMIT_EXCEEDED",t),d.forEach((c,l)=>{let f=`${a}/items/${l}`,p=N(c,f);C(p,["page","label","icon","order"],f,!0),Nf(p.page,`${f}/page`),p.label!==void 0&&D(p.label,`${f}/label`,255),Ko(p.icon,`${f}/icon`),id(p.order,`${f}/order`)})})}function Nf(e,t){let o=N(e,t),n=D(o.kind,`${t}/kind`,64);if(n==="resource"){C(o,["kind","resourceCode"],t,["viewCode"]),o.viewCode!==void 0&&$(o.viewCode,`${t}/viewCode`),Z(o.resourceCode,`${t}/resourceCode`);return}if(n==="operation"){C(o,["kind","routeCode"],t),$(o.routeCode,`${t}/routeCode`);return}g("NATIVE_ADMIN_PAGE_REFERENCE_KIND_INVALID",`${t}/kind`)}function Rf(e){let t=new Map(Od(e).map(r=>[String(r.code),r])),o=new Set,n=new Set;e.frontend.admin.navigation.forEach((r,i)=>{let a=`/config/frontend/admin/navigation/${i}`;o.has(r.code)&&g("NATIVE_ADMIN_GROUP_DUPLICATE",`${a}/code`),o.add(r.code),r.label===r.code&&g("NATIVE_ADMIN_USER_LABEL_REQUIRED",`${a}/label`),r.items.forEach((s,d)=>{let c=`${a}/items/${d}`,l=hd(s.page),f=t.get(l);(!f||f.navigationEligible!==!0)&&g("NATIVE_ADMIN_PAGE_NOT_FOUND",`${c}/page`),n.has(l)&&g("NATIVE_ADMIN_PAGE_DUPLICATE",`${c}/page`),n.add(l);let p=s.page.resourceCode||s.page.routeCode||s.page.workflowCode||l,m=s.label||f.label;(!m||m===p||m===l)&&g("NATIVE_ADMIN_USER_LABEL_REQUIRED",`${c}/label`)})})}function wf(e,t){let o=k(e,t,M.adminPages),n=new Set;o.forEach((r,i)=>{let a=`${t}/${i}`,s=N(r,a);C(s,["code","kind","path","label","navigationEligible","capability","access","resourceCode","viewCode","routeCode"],a,!0);let d=D(s.code,`${a}/code`,255);n.has(d)&&g("NATIVE_ADMIN_PAGE_DUPLICATE",`${a}/code`),n.add(d);let c=D(s.kind,`${a}/kind`,64);if(["resource-list","resource-detail","resource-create","resource-update","operation"].includes(c)||g("NATIVE_ADMIN_PAGE_KIND_INVALID",`${a}/kind`),Pe(s.path,`${a}/path`),D(s.label,`${a}/label`,255),Gt(s.navigationEligible,`${a}/navigationEligible`),s.capability!==void 0&&s.access!==void 0&&g("NATIVE_ROUTE_ACCESS_CONFLICT",`${a}/access`),s.capability!==void 0&&D(s.capability,`${a}/capability`,255),s.access!==void 0){let l=N(s.access,`${a}/access`);C(l,["allOf","anyOf"],`${a}/access`,!0);for(let f of["allOf","anyOf"])l[f]!==void 0&&F(l[f],`${a}/access/${f}`,50)}for(let l of["resourceCode","viewCode","routeCode"])s[l]!==void 0&&$(s[l],`${a}/${l}`)})}function Tf(e,t){let o=k(e,t,M.adminNavigationGroups);o.reduce((r,i)=>r+(Array.isArray(i?.items)?i.items.length:0),0)>M.adminNavigationItems&&g("NATIVE_ARRAY_LIMIT_EXCEEDED",t);let n=0;o.forEach((r,i)=>{let a=`${t}/${i}`,s=N(r,a);C(s,["code","label","icon","order","items"],a,!0),$(s.code,`${a}/code`),D(s.label,`${a}/label`,255),Ko(s.icon,`${a}/icon`),ce(s.order,`${a}/order`,-1e4,1e4);let d=k(s.items,`${a}/items`,500);d.length===0&&g("NATIVE_ADMIN_GROUP_ORPHANED",`${a}/items`),n+=d.length,n>M.adminNavigationItems&&g("NATIVE_ARRAY_LIMIT_EXCEEDED",t),d.forEach((c,l)=>{let f=`${a}/items/${l}`,p=N(c,f);C(p,["pageCode","label","icon","order"],f,!0),D(p.pageCode,`${f}/pageCode`,255),p.label!==void 0&&D(p.label,`${f}/label`,255),Ko(p.icon,`${f}/icon`),ce(p.order,`${f}/order`,-1e4,1e4)})})}var Cf=new Set(["application-todo-center","workflow-work-center","workflow-launch","workflow-task","workflow-instance","resource-records","resource-submit"]);function Sf(e,t,o){let n=N(e,t);C(n,["schemaVersion","appCode","devicePolicy","rootEntry","authentication","routes","digest"],t),x(n.schemaVersion,md,`${t}/schemaVersion`),x(n.appCode,o,`${t}/appCode`),Bi(n.devicePolicy,`${t}/devicePolicy`),Df(n.rootEntry,`${t}/rootEntry`),kf(n.authentication,`${t}/authentication`),Ui(n.digest,`${t}/digest`);let r=k(n.routes,`${t}/routes`,M.routes),i=new Set;r.forEach((a,s)=>{let d=`${t}/routes/${s}`,c=N(a,d),l=c.kind==="resource-records"||c.kind==="resource-submit";C(c,["code","kind","desktop","mobile"],d,["workflowCode",...l?["resourceCode"]:[]]);let f=D(c.code,`${d}/code`,255);i.has(f)&&g("NATIVE_ROUTE_MANIFEST_DUPLICATE",`${d}/code`),i.add(f);let p=D(c.kind,`${d}/kind`,64);if(Cf.has(p)||g("NATIVE_ROUTE_MANIFEST_KIND_INVALID",`${d}/kind`),c.workflowCode!==void 0&&$(c.workflowCode,`${d}/workflowCode`),l){let A=Z(c.resourceCode,`${d}/resourceCode`);x(f,`user.${A}.${c.kind==="resource-records"?"records":"submit"}`,`${d}/code`)}else c.resourceCode!==void 0&&g("NATIVE_PROPERTY_UNKNOWN",`${d}/resourceCode`);let m=nd(c.desktop,`${d}/desktop`,o),E=nd(c.mobile,`${d}/mobile`,o);m.surface!=="user"&&g("NATIVE_ROUTE_MANIFEST_DESKTOP_SURFACE_INVALID",`${d}/desktop/surface`),E.surface!=="user"&&g("NATIVE_ROUTE_MANIFEST_MOBILE_SURFACE_INVALID",`${d}/mobile/surface`),m.routeCode===E.routeCode&&g("NATIVE_ROUTE_MANIFEST_PAIR_DUPLICATE",d)}),x(n.digest,ee({schemaVersion:n.schemaVersion,appCode:n.appCode,devicePolicy:n.devicePolicy,rootEntry:n.rootEntry,authentication:n.authentication,routes:n.routes}),`${t}/digest`)}function Bi(e,t){let o=N(e,t);C(o,["kind","mobileMaxWidthPx","desktopMinWidthPx"],t),x(o.kind,"viewport-family",`${t}/kind`);let n=ce(o.mobileMaxWidthPx,`${t}/mobileMaxWidthPx`,320,1600),r=ce(o.desktopMinWidthPx,`${t}/desktopMinWidthPx`,320,1600);return r!==n+1&&g("NATIVE_FRONTEND_DEVICE_POLICY_INVALID",t),{kind:"viewport-family",mobileMaxWidthPx:n,desktopMinWidthPx:r}}function Df(e,t){let o=N(e,t);C(o,["code","desktop","mobile"],t);let n=$(o.code,`${t}/code`),r=ji(o.desktop,`${t}/desktop`),i=ji(o.mobile,`${t}/mobile`);return(r===i||i==="/"||!i.startsWith("/m/"))&&g("NATIVE_ROUTE_MANIFEST_ROOT_ENTRY_INVALID",t),r.startsWith("/m/")&&g("NATIVE_ROUTE_MANIFEST_ROOT_ENTRY_INVALID",`${t}/desktop`),{code:n,desktop:r,mobile:i}}function kf(e,t){let o=N(e,t);C(o,["desktop","mobile"],t);let n=td(o.desktop,`${t}/desktop`,!1),r=td(o.mobile,`${t}/mobile`,!0);return(n.routeCode===r.routeCode||n.path===r.path)&&g("NATIVE_ROUTE_MANIFEST_AUTHENTICATION_DUPLICATE",t),{desktop:n,mobile:r}}function td(e,t,o){let n=N(e,t);C(n,["routeCode","path"],t);let r=$(n.routeCode,`${t}/routeCode`),i=ji(n.path,`${t}/path`);return(o?!i.startsWith("/m/"):i.startsWith("/m/"))&&g("NATIVE_ROUTE_MANIFEST_AUTHENTICATION_PATH_INVALID",`${t}/path`),{routeCode:r,path:i}}function ji(e,t){let o=Pe(e,t);return/[:*?#\\\\]/.test(o)&&g("NATIVE_ROUTE_MANIFEST_STATIC_PATH_INVALID",t),o}function nd(e,t,o){let n=N(e,t);C(n,["routeCode","path","surface","pathParams","requiresAuthentication"],t,["capability","access"]),$(n.routeCode,`${t}/routeCode`);let r=Pe(n.path,`${t}/path`),i=D(n.surface,`${t}/surface`,16);["admin","user"].includes(i)||g("NATIVE_ROUTE_SURFACE_INVALID",`${t}/surface`);let a=F(n.pathParams,`${t}/pathParams`,8);return a.forEach((s,d)=>{(!/^[A-Za-z][A-Za-z0-9_]*$/.test(s)||s.length>64)&&g("NATIVE_ROUTE_PATH_PARAM_INVALID",`${t}/pathParams/${d}`)}),oe(a)!==oe(Nd(r))&&g("NATIVE_ROUTE_PATH_PARAMS_MISMATCH",`${t}/pathParams`),Ki(n,t,o),n.requiresAuthentication!==!0&&g("NATIVE_ROUTE_AUTHENTICATION_REQUIRED",`${t}/requiresAuthentication`),n}function Nd(e){return B([...e.matchAll(/:([A-Za-z][A-Za-z0-9_]*)/g)].map(t=>t[1]))}function od(e,t,o,n){return{routeCode:e,path:t,surface:o,pathParams:Nd(t),...n?.capability?{capability:n.capability}:{},...n?.access?{access:n.access}:{},requiresAuthentication:!0}}function rd(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 vf(e){let t=e.appCode,o=[],n=(m,E,A,O,y,_,b)=>{o.push({code:m,kind:E,...y?{workflowCode:y}:{},...b?{resourceCode:b}:{},desktop:od(rd(E,"desktop",y,b),A,"user",_),mobile:od(rd(E,"mobile",y,b),O,"user",_)})};e.frontend.user.applicationTodoCenter===!0&&n("application:todo-center","application-todo-center","/todos","/m/todos");let r=Rd(e);r.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 m of r){if(!["standalone","hidden-handoff"].includes(m.launch.mode))continue;let E=B([m.launch.submission?.create?.requiredCapability,m.launch.submission?.existing?.requiredCapability].filter(A=>!!A));n(`workflow:${m.code}:launch`,"workflow-launch","/workflows/:workflowCode/start","/m/workflows/:workflowCode/start",m.code,E.length===1?{capability:E[0]}:E.length>1?{access:{anyOf:E}}:void 0)}let i=o.sort((m,E)=>we(String(m.code),String(E.code))),a=zo(e),s=m=>{let E=m==="mobile"?"/m/":"/",A=a.filter(y=>y.surface==="user"&&!/[:*?#\\\\]/.test(y.path)&&y.path===E).sort((y,_)=>we(y.code,_.code))[0];if(A)return{code:A.code,path:A.path};let O=a.filter(y=>y.surface==="user"&&!/[:*?#\\\\]/.test(y.path)&&(m==="mobile"?y.path.startsWith("/m/"):!y.path.startsWith("/m/"))).sort((y,_)=>we(y.code,_.code))[0];return O?{code:O.code,path:O.path}:{code:m==="mobile"?"application-root-mobile":"application-root",path:E}},d=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"}},c=Bi(e.frontend.devicePolicy,"/config/frontend/devicePolicy"),l=s("desktop"),f=s("mobile"),p={schemaVersion:md,appCode:t,devicePolicy:c,rootEntry:{code:l.code,desktop:l.path,mobile:f.path},authentication:d,routes:i};return{...p,digest:ee(p)}}function Ko(e,t){if(e===void 0)return;let o=D(e,t,32);Gu.has(o)||g("NATIVE_ADMIN_ICON_INVALID",t)}function id(e,t){e!==void 0&&ce(e,t,-1e4,1e4)}function Ki(e,t,o){return e.capability!==void 0&&e.access!==void 0&&g("NATIVE_ROUTE_ACCESS_CONFLICT",`${t}/access`),e.capability!==void 0?{capability:Ie(e.capability,`${t}/capability`,o)}:e.access===void 0?{}:{access:Jo(e.access,`${t}/access`,o)}}function Jo(e,t,o){let n=N(e,t);C(n,["allOf","anyOf"],t,!0);let r=n.allOf===void 0?void 0:B(F(n.allOf,`${t}/allOf`,50).map((a,s)=>Ie(a,`${t}/allOf/${s}`,o))),i=n.anyOf===void 0?void 0:B(F(n.anyOf,`${t}/anyOf`,50).map((a,s)=>Ie(a,`${t}/anyOf/${s}`,o)));return(r?.length||0)+(i?.length||0)===0&&g("NATIVE_ROUTE_ACCESS_EMPTY",t),{...r===void 0?{}:{allOf:r},...i===void 0?{}:{anyOf:i}}}function Rd(e){let t=new Map(Ed(e).map(r=>[String(r.code),r])),o=e.workflows.definitions.map((r,i)=>{let a=`/config/workflows/definitions/${i}`,s=N(r,a);C(s,["version","definition","launch"],a,["detailRouteCode"]);let d=N(s.definition,`${a}/definition`),c=s.detailRouteCode===void 0?void 0:Td(s.detailRouteCode,`${a}/detailRouteCode`);return{code:$(d.code,`${a}/definition/code`),title:D(d.title,`${a}/definition/title`,255),version:qt(s.version,`${a}/version`),launch:Pf(e,d,s.launch,`${a}/launch`,t),...c?{detailRouteCode:c}:{},definition:d}});return B(o.map(r=>r.code)).map(r=>{let i=o.filter(c=>c.code===r),a=e.workflows.activations.find(c=>c.workflowCode===r)?.definitionVersion,s=i.find(c=>c.version===a)||[...i].sort((c,l)=>l.version-c.version)[0],d=new Set;for(let c of i){let l=N(c.definition.nodes,"/config/workflows/definitions/nodes");for(let f of Object.values(l)){let p=N(f,"/config/workflows/definitions/nodes/*");if(!(p.kind!=="approval"&&p.kind!=="handle"))for(let m of F(p.allowedOperations||[],"/config/workflows/definitions/nodes/*/allowedOperations",20))d.add(m)}}return{code:r,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.${r}.submit`}:{},...s.detailRouteCode?{detailRouteCode:s.detailRouteCode}:{},definitionVersions:fd(i.map(c=>c.version)),bindingVersions:fd(e.workflows.bindings.map((c,l)=>{let f=`/config/workflows/bindings/${l}`,p=N(c,f),m=N(p.binding,`${f}/binding`);return{code:$(m.workflowCode,`${f}/binding/workflowCode`),version:qt(p.version,`${f}/version`)}}).filter(c=>c.code===r).map(c=>c.version)),providerCodes:B(e.workflows.providers.map((c,l)=>$(N(c,`/config/workflows/providers/${l}`).code,`/config/workflows/providers/${l}/code`))),allowedOperations:[...d].sort(we),editableParameterCodes:B(e.workflows.editableParameters.map((c,l)=>{let f=`/config/workflows/editableParameters/${l}`,p=N(c,f);return{code:$(p.code,`${f}/code`),workflowCode:$(p.workflowCode,`${f}/workflowCode`)}}).filter(c=>c.workflowCode===r).map(c=>c.code))}})}function wd(e,t){let o=N(e,t);C(o,["mode"],t,["submission"]);let n=D(o.mode,`${t}/mode`,32);return["standalone","custom-page","hidden-handoff","work-center-only"].includes(n)||g("NATIVE_WORKFLOW_LAUNCH_MODE_INVALID",`${t}/mode`),{mode:n,...o.submission===void 0?{}:{submission:N(o.submission,`${t}/submission`)}}}function Pf(e,t,o,n,r){let i=wd(o,n);if(!i.submission)return{mode:i.mode};["standalone","hidden-handoff"].includes(i.mode)||g("NATIVE_WORKFLOW_NAMED_OPERATION_SUBMISSION_INVALID",`${n}/submission`);let a=N(i.submission,`${n}/submission`);C(a,["kind"],`${n}/submission`,["create","existing","context"]),x(a.kind,"named-operation",`${n}/submission/kind`);let s=n.endsWith("/launch")?n.slice(0,-7):n,d=N(t.subject,`${s}/definition/subject`),c=Z(d.resourceCode,`${s}/definition/subject/resourceCode`),l=e.data.resources.findIndex(I=>I.code===c),f=e.data.resources[l];(l<0||!f)&&g("NATIVE_WORKFLOW_SUBJECT_RESOURCE_MISSING",`${s}/definition/subject/resourceCode`);let p=new Set(N(f.schema,`/config/data/resources/${l}/schema`).fields.map(I=>String(I.code))),m=new Map(e.backend.operations.map(I=>[String(I.code),I])),E=(I,R)=>{let w=`${n}/submission/${R}`,T=N(I,w);C(T,["operationCode","inputs","output"],w);let S=$(T.operationCode,`${w}/operationCode`),L=m.get(S),V=r.get(S),J=V?.platformAccess?.workflow?.codes;(!L||!V||V.method!=="POST"||!Array.isArray(J)||!J.includes(t.code))&&g("NATIVE_WORKFLOW_NAMED_OPERATION_INVALID",w);let ne=N(L.requestSchema,`${w}/operation/requestSchema`),Q=N(ne.properties,`${w}/operation/requestSchema/properties`),Oe=new Set(ne.required===void 0?[]:F(ne.required,`${w}/operation/requestSchema/required`,205)),ae=N(T.inputs,`${w}/inputs`),P=Object.entries(ae);(!P.length||P.length>205)&&g("NATIVE_WORKFLOW_NAMED_OPERATION_INPUT_INVALID",`${w}/inputs`);let U=new Set,W=new Map,H={},Y=V.platformAccess?.ownedSubject;Y&&(R!=="create"||Y.resourceCode!==c)&&g("NATIVE_WORKFLOW_OWNED_SUBJECT_LAUNCH_MISMATCH",w);for(let[X,Nt]of P){(!Xa.test(X)||!Object.prototype.hasOwnProperty.call(Q,X))&&g("NATIVE_WORKFLOW_NAMED_OPERATION_INPUT_INVALID",`${w}/inputs/${X}`);let ot=`${w}/inputs/${X}`,ir=N(Nt,ot),rt=D(ir.source,`${ot}/source`,32);if(["field","idempotency-key","current-user-reference","subject-id","subject-revision","requested-at"].includes(rt)||g("NATIVE_WORKFLOW_NAMED_OPERATION_INPUT_INVALID",ot),C(ir,["source"],ot,rt==="field"?["fieldCode"]:!1),W.set(rt,(W.get(rt)||0)+1),rt==="field"){let Rt=z(ir.fieldCode,`${ot}/fieldCode`);(U.has(Rt)||!p.has(Rt))&&g("NATIVE_WORKFLOW_NAMED_OPERATION_INPUT_INVALID",`${ot}/fieldCode`),U.add(Rt),f.schema.fields.find(sr=>sr.code===Rt)?.type==="subtable"&&(!Y||!Y.subtables.some(sr=>sr.fieldCode===Rt))&&g("NATIVE_WORKFLOW_OWNED_SUBJECT_LAUNCH_REQUIRED",ot),H[X]={source:rt,fieldCode:Rt}}else H[X]={source:rt}}([...Oe].some(X=>!(X in ae))||(W.get("idempotency-key")||0)!==1||!P.some(([X,Nt])=>N(Nt,`${w}/inputs/${X}`).source==="idempotency-key"&&Oe.has(X))||R==="create"&&((W.get("subject-id")||0)>0||(W.get("subject-revision")||0)>0)||R==="existing"&&((W.get("subject-id")||0)!==1||(W.get("subject-revision")||0)!==1))&&g("NATIVE_WORKFLOW_NAMED_OPERATION_INPUT_INVALID",`${w}/inputs`);let he=N(T.output,`${w}/output`);C(he,["subjectId"],`${w}/output`,["subjectRevision","processCommand"]);let Le=N(N(L.responseSchema,`${w}/operation/responseSchema`).properties,`${w}/operation/responseSchema/properties`);for(let X of["subjectId","subjectRevision","processCommand"]){if(he[X]===void 0)continue;let Nt=D(he[X],`${w}/output/${X}`,128);(!Xa.test(Nt)||!Object.prototype.hasOwnProperty.call(Le,Nt))&&g("NATIVE_WORKFLOW_NAMED_OPERATION_OUTPUT_INVALID",`${w}/output/${X}`)}return{operationCode:S,method:"POST",path:V.path,requiredCapability:V.requiredCapability,requestSchemaDigest:V.requestSchemaDigest,responseSchemaDigest:V.responseSchemaDigest,inputs:H,output:{...he},fieldCodes:U}},A=a.create===void 0?void 0:E(a.create,"create"),O=a.existing===void 0?void 0:E(a.existing,"existing");!A&&!O&&g("NATIVE_WORKFLOW_NAMED_OPERATION_SUBMISSION_INVALID",`${n}/submission`);let y=new Set([...A?.fieldCodes||[],...O?.fieldCodes||[]]),_=a.context===void 0?[]:k(a.context,`${n}/submission/context`,16),b=new Set,h=_.map((I,R)=>{let w=`${n}/submission/context/${R}`,T=N(I,w);C(T,["queryParameter","fieldCode"],w);let S=D(T.queryParameter,`${w}/queryParameter`,64),L=z(T.fieldCode,`${w}/fieldCode`);return(!/^[A-Za-z][A-Za-z0-9]{0,63}$/.test(S)||b.has(S)||!y.has(L))&&g("NATIVE_WORKFLOW_LAUNCH_CONTEXT_INVALID",w),b.add(S),{queryParameter:S,fieldCode:L}}),u=I=>{let{fieldCodes:R,...w}=I;return w};return{mode:i.mode,submission:{kind:"named-operation",...A?{create:u(A)}:{},...O?{existing:u(O)}:{},context:h}}}function Td(e,t){let o=N(e,t);C(o,["desktop","mobile"],t);let n=$(o.desktop,`${t}/desktop`),r=$(o.mobile,`${t}/mobile`);return n===r&&g("NATIVE_WORKFLOW_DETAIL_ROUTE_DUPLICATE",t),{desktop:n,mobile:r}}function Lf(e,t){let o=new Set(t.map(l=>l.code)),n=new Map;e.data.resources.forEach((l,f)=>{let p=`/config/data/resources/${f}`,m=N(l,p);if(m.recordDeletion!==void 0){let O=`${p}/recordDeletion/delete`;for(let y of m.recordDeletion.delete)Ie(y,O,e.appCode),o.has(y)||g("NATIVE_CAPABILITY_REFERENCE_MISSING",O)}if(m.recordComments!==void 0)for(let O of["read","create"]){let y=`${p}/recordComments/${O}`;for(let _ of m.recordComments[O])Ie(_,y,e.appCode),o.has(_)||g("NATIVE_CAPABILITY_REFERENCE_MISSING",y)}if(m.recordPrint!==void 0){let O=`${p}/recordPrint/read`;for(let y of m.recordPrint.read)Ie(y,O,e.appCode),o.has(y)||g("NATIVE_CAPABILITY_REFERENCE_MISSING",O)}if(m.workflowHistory!==void 0){let O=`${p}/workflowHistory/read`;for(let y of m.workflowHistory.read)Ie(y,O,e.appCode),o.has(y)||g("NATIVE_CAPABILITY_REFERENCE_MISSING",O)}for(let[O,y]of Object.entries(m.fieldPolicies||{})){if(!Ye(O))continue;let _=`${p}/fieldPolicies/${O}/read`,b=N(y,`${p}/fieldPolicies/${O}`);for(let h of F(b.read||[],_,2e3))o.has(h)||g("NATIVE_CAPABILITY_REFERENCE_MISSING",_)}let E=m.surface===void 0?{}:N(m.surface,`${p}/surface`);if(["native","queued-command"].includes(E.mutationOwner||"native"))return;let A=N(m.capabilities,`${p}/capabilities`);for(let O of["create","update","delete"])O==="delete"&&Array.isArray(m.recordDeletion?.delete)&&m.recordDeletion.delete.length>0||n.set(String(A[O]),O)});let r=new Set;for(let[l,f]of e.authz.roles.entries()){let p=`/config/authz/roles/${l}`,m=N(f,p);C(m,["code","name","description","capabilities"],p,!0);let E=$(m.code,`${p}/code`);r.has(E)&&g("NATIVE_ROLE_DUPLICATE",`${p}/code`),r.add(E),D(m.name,`${p}/name`,255);let A=F(m.capabilities,`${p}/capabilities`,2e3);for(let[O,y]of A.entries())n.has(y)&&g("NATIVE_DATA_SURFACE_MUTATION_GRANT_FORBIDDEN",`${p}/capabilities/${O}`,{operation:n.get(y)}),o.has(y)||g("NATIVE_CAPABILITY_REFERENCE_MISSING",`${p}/capabilities`)}let i=e.authz.authenticatedUserRoleCode===void 0?"":$(e.authz.authenticatedUserRoleCode,"/config/authz/authenticatedUserRoleCode");i&&!r.has(i)&&g("NATIVE_AUTHENTICATED_USER_ROLE_REFERENCE_MISSING","/config/authz/authenticatedUserRoleCode");let a=new Set,s=0;for(let[l,f]of e.perspectives.entries()){let p=`/config/perspectives/${l}`,m=N(f,p);C(m,["code","name","description","roleCodes","capabilityCodes","default"],p,!0);let E=$(m.code,`${p}/code`);a.has(E)&&g("NATIVE_PERSPECTIVE_DUPLICATE",`${p}/code`),a.add(E),D(m.name,`${p}/name`,255);let A=F(m.roleCodes,`${p}/roleCodes`,20);A.length<1&&g("NATIVE_PERSPECTIVE_ROLE_REQUIRED",`${p}/roleCodes`),A.forEach((_,b)=>{r.has(_)||g("NATIVE_PERSPECTIVE_ROLE_MISSING",`${p}/roleCodes/${b}`)});let O=B(e.authz.roles.filter(_=>A.includes(_.code)).flatMap(_=>_.capabilities)),y=F(m.capabilityCodes,`${p}/capabilityCodes`,2e3);oe(O)!==oe(y)&&g("NATIVE_PERSPECTIVE_CAPABILITY_PROJECTION_MISMATCH",`${p}/capabilityCodes`),m.default===!0?s+=1:m.default!==void 0&&g("NATIVE_PERSPECTIVE_DEFAULT_INVALID",`${p}/default`)}s>1&&g("NATIVE_PERSPECTIVE_DEFAULT_DUPLICATE","/config/perspectives");for(let[l,f]of e.backend.operations.entries()){let p=N(f,`/config/backend/operations/${l}`);o.has(p.capability)||g("NATIVE_CAPABILITY_REFERENCE_MISSING",`/config/backend/operations/${l}/capability`)}let d=new Set,c=new Set;for(let[l,f]of e.frontend.routes.entries()){let p=`/config/frontend/routes/${l}`,m=N(f,p),E=$(m.code,`${p}/code`);d.has(E)&&g("NATIVE_ROUTE_DUPLICATE",`${p}/code`),d.add(E);let A=Pe(m.path,`${p}/path`);c.has(A)&&g("NATIVE_ROUTE_PATH_DUPLICATE",`${p}/path`),c.add(A);let O=Ki(m,p,e.appCode);O.capability&&!o.has(O.capability)&&g("NATIVE_CAPABILITY_REFERENCE_MISSING",`${p}/capability`);let y=m.access===void 0?void 0:N(m.access,`${p}/access`);for(let _ of["allOf","anyOf"]){let b=y?.[_]===void 0?[]:k(y[_],`${p}/access/${_}`,50);for(let[h,u]of b.entries()){let I=Ie(u,`${p}/access/${_}/${h}`,e.appCode);o.has(I)||g("NATIVE_CAPABILITY_REFERENCE_MISSING",`${p}/access/${_}/${h}`)}}}if(e.frontend.admin.access!==void 0){let l=Jo(e.frontend.admin.access,"/config/frontend/admin/access",e.appCode);for(let f of["allOf","anyOf"])for(let[p,m]of(l[f]||[]).entries())o.has(m)||g("NATIVE_CAPABILITY_REFERENCE_MISSING",`/config/frontend/admin/access/${f}/${p}`)}for(let[l,f]of e.frontend.routes.entries()){let p=N(f,`/config/frontend/routes/${l}`);p.parentCode&&!d.has(p.parentCode)&&g("NATIVE_ROUTE_PARENT_MISSING",`/config/frontend/routes/${l}/parentCode`)}}function $f(e){let t=new Set(e.authz.roles.map(c=>String(c.code))),o=e.authz.authenticatedUserRoleCode===void 0?"":$(e.authz.authenticatedUserRoleCode,"/config/authz/authenticatedUserRoleCode"),n=new Map(e.authz.scopeDimensions.map(c=>[String(c.code),{valueType:c.valueType==="uuid"?"uuid":"string",...c.valueSource?.resourceCode?{valueSourceResourceCode:String(c.valueSource.resourceCode)}:{}}])),r=new Set(n.keys()),i=new Map(e.data.resources.map((c,l)=>{let f=yt(c,`/config/data/resources/${l}`,e.appCode);return[f.code,new Map(f.schema.fields.map(p=>[String(p.code),p]))]}));for(let[c,l]of e.authz.scopeDimensions.entries()){let f=`/config/authz/scopeDimensions/${c}`,p=N(l,f);if(C(p,["code","name","resourceCode","valueType","hierarchyMode","valueSource"],f,!0),p.valueSource===void 0)continue;let m=N(p.valueSource,`${f}/valueSource`);C(m,["kind","resourceCode","labelField","enabledField"],`${f}/valueSource`,!0),m.kind!=="native_resource"&&g("NATIVE_SCOPE_VALUE_SOURCE_KIND_INVALID",`${f}/valueSource/kind`),p.valueType!=="uuid"&&g("NATIVE_SCOPE_VALUE_SOURCE_TYPE_INVALID",`${f}/valueType`);let E=Z(m.resourceCode,`${f}/valueSource/resourceCode`),A=i.get(E);A||g("NATIVE_SCOPE_VALUE_SOURCE_RESOURCE_MISSING",`${f}/valueSource/resourceCode`);let O=z(m.labelField,`${f}/valueSource/labelField`);if(["text.short","text.long"].includes(String(A.get(O)?.type||""))||g("NATIVE_SCOPE_VALUE_SOURCE_LABEL_FIELD_INVALID",`${f}/valueSource/labelField`),m.enabledField!==void 0){let y=z(m.enabledField,`${f}/valueSource/enabledField`);A.get(y)?.type!=="boolean"&&g("NATIVE_SCOPE_VALUE_SOURCE_ENABLED_FIELD_INVALID",`${f}/valueSource/enabledField`)}}let a=new Set,s=new Set;for(let[c,l]of e.authz.scopeSources.entries()){let f=`/config/authz/scopeSources/${c}`,p=N(l,f);C(p,["code","name","resourceCode","subject","grants","operationField","enabledField","effectiveFromField","effectiveToField","failureMode"],f,!0);let m=$(p.code,`${f}/code`);a.has(m)&&g("NATIVE_SCOPE_SOURCE_DUPLICATE",`${f}/code`),a.add(m),D(p.name,`${f}/name`,255);let E=Z(p.resourceCode,`${f}/resourceCode`),A=i.get(E);A||g("NATIVE_SCOPE_SOURCE_RESOURCE_MISSING",`${f}/resourceCode`);let O=N(p.subject,`${f}/subject`),y=D(O.type,`${f}/subject/type`,32);C(O,y==="role_membership"?["type","userIdField","roleCode"]:["type","userIdField"],`${f}/subject`),["user","role_membership"].includes(y)||g("NATIVE_SCOPE_SOURCE_SUBJECT_INVALID",`${f}/subject/type`);let _=Pt(O.userIdField,A);co(_)||g("NATIVE_SCOPE_SOURCE_SUBJECT_PATH_INVALID",`${f}/subject/userIdField`),y==="role_membership"&&!t.has(String(O.roleCode))&&g("NATIVE_ROLE_REFERENCE_MISSING",`${f}/subject/roleCode`);let b=new Set;for(let[h,u]of k(p.grants,`${f}/grants`,100).entries()){let I=`${f}/grants/${h}`,R=N(u,I);C(R,["dimensionCode","valueField","parentValueField"],I,!0);let w=$(R.dimensionCode,`${I}/dimensionCode`);(!r.has(w)||b.has(w))&&g("NATIVE_SCOPE_SOURCE_DIMENSION_INVALID",`${I}/dimensionCode`),b.add(w),p.failureMode==="last_known_good"&&s.add(w);for(let T of["valueField","parentValueField"]){if(R[T]===void 0)continue;let S=Pt(R[T],A);$r(S,n.get(w),i)||g("NATIVE_SCOPE_SOURCE_GRANT_PATH_INVALID",`${I}/${T}`)}}b.size===0&&g("NATIVE_SCOPE_SOURCE_GRANT_REQUIRED",`${f}/grants`),["strict","last_known_good"].includes(p.failureMode)||g("NATIVE_SCOPE_SOURCE_FAILURE_MODE_INVALID",`${f}/failureMode`);for(let h of["operationField","enabledField","effectiveFromField","effectiveToField"]){if(p[h]===void 0)continue;let u=z(p[h],`${f}/${h}`);A.has(u)||g("NATIVE_SCOPE_SOURCE_FIELD_MISSING",`${f}/${h}`)}}Ff(e,t,i,o);let d=new Set;for(let[c,l]of e.authz.dataPolicies.entries()){let f=`/config/authz/dataPolicies/${c}`,p=N(l,f);C(p,["code","name","resourceCode","unrestrictedRoleCodes","publicRead","operations","matchMode","rules","readExpression","writeBoundary"],f,!0);let m=$(p.code,`${f}/code`);d.has(m)&&g("NATIVE_DATA_POLICY_DUPLICATE",`${f}/code`),d.add(m);let E=p.readExpression!==void 0,A=F(p.operations||[],`${f}/operations`,4);p.operations!==void 0&&(A.length===0||A.some(u=>!["read","create","update","delete"].includes(u)))&&g("NATIVE_DATA_POLICY_OPERATIONS_INVALID",`${f}/operations`),["AND","OR"].includes(p.matchMode)||g("NATIVE_DATA_POLICY_MATCH_MODE_INVALID",`${f}/matchMode`),E&&p.operations!==void 0&&g("NATIVE_DATA_POLICY_READ_EXPRESSION_OPERATIONS_FORBIDDEN",`${f}/operations`);let O=e.data.resources.find(u=>u.dataPolicyCode===m),y=p.resourceCode||O?.code,_=y?i.get(Z(y,`${f}/resourceCode`)):void 0;if(E&&!_&&g("NATIVE_DATA_POLICY_RESOURCE_MISSING",`${f}/resourceCode`),p.publicRead!==void 0){try{let u=e.authz.roles.find(I=>I.code===o);ti({policy:p,resource:e.data.resources.find(I=>I.code===y),baselineRoleCode:o,baselineCapabilities:u?.capabilities||[],baselineDeniedCapabilities:u?.deniedCapabilities||[],pointer:f})}catch(u){if(!(u instanceof Vt))throw u;g(u.code,u.pointer)}(p.unrestrictedRoleCodes||[]).includes(o)||g("AUTHENTICATED_PUBLIC_READ_CANONICAL_BASELINE_MISSING",`${f}/unrestrictedRoleCodes`)}else o&&(p.unrestrictedRoleCodes||[]).includes(o)&&g("NATIVE_DATA_POLICY_BASELINE_UNRESTRICTED",`${f}/unrestrictedRoleCodes`);let b=F(p.unrestrictedRoleCodes||[],`${f}/unrestrictedRoleCodes`,100);p.unrestrictedRoleCodes!==void 0&&b.length===0&&g("NATIVE_DATA_POLICY_UNRESTRICTED_ROLES_INVALID",`${f}/unrestrictedRoleCodes`);for(let u of b)t.has(u)||g("NATIVE_ROLE_REFERENCE_MISSING",`${f}/unrestrictedRoleCodes`);let h;try{let u=k(p.rules,`${f}/rules`,100).map((I,R)=>({rule:N(I,`${f}/rules/${R}`),pointer:`${f}/rules/${R}`}));u.length===0?(!E||p.matchMode!=="AND"||p.writeBoundary!=="capability_only")&&g("NATIVE_DATA_POLICY_WRITE_BOUNDARY_REQUIRED",f):p.writeBoundary!==void 0&&g("NATIVE_DATA_POLICY_WRITE_BOUNDARY_INVALID",`${f}/writeBoundary`),h=[...u],E&&(h.push(...ft(p.readExpression,`${f}/readExpression`)),Xr(p.readExpression,`${f}/readExpression`))}catch(u){throw u instanceof $t&&g(u.code,u.pointer),u}for(let{rule:u,pointer:I}of h){if(C(u,["parentRead","subject","dimensionCode","relationCode","resourceCode","field","roleCodes","operation","valuePath","emptyMatchesAll","operator","value","operand"],I,!0),u.parentRead!==void 0){for(let Q of F(u.roleCodes||[],`${I}/roleCodes`,100))t.has(Q)||g("NATIVE_ROLE_REFERENCE_MISSING",`${I}/roleCodes`);continue}let R=z(u.field,`${I}/field`),w=_?.get(R);E&&!w&&g("NATIVE_DATA_POLICY_FIELD_MISSING",`${I}/field`);for(let Q of F(u.roleCodes||[],`${I}/roleCodes`,100))t.has(Q)||g("NATIVE_ROLE_REFERENCE_MISSING",`${I}/roleCodes`);let T=String(u.operator||""),S=u.operand==="db_now",L=["is_null","is_not_null"].includes(T),V=["eq","not_eq","in","not_in"].includes(T),J=!S&&(u.operator!==void 0||u.value!==void 0);if([u.subject==="current_user"?"current_user":"",typeof u.dimensionCode=="string"?"dimension":"",typeof u.relationCode=="string"?"relationship":"",J?"constant":"",S?"db_now":""].filter(Boolean).length!==1&&g("NATIVE_DATA_POLICY_RULE_SOURCE_INVALID",I),u.subject!==void 0&&u.subject!=="current_user"&&g("NATIVE_DATA_POLICY_SUBJECT_INVALID",`${I}/subject`),J){if(!V&&!L&&g("NATIVE_DATA_POLICY_OPERATOR_INVALID",`${I}/operator`),["in","not_in"].includes(T)){let Q=k(u.value,`${I}/value`,100).map((Oe,ae)=>D(Oe,`${I}/value/${ae}`,2048));(Q.length===0||new Set(Q).size!==Q.length)&&g("NATIVE_DATA_POLICY_VALUE_INVALID",`${I}/value`)}else["eq","not_eq"].includes(T)?D(u.value,`${I}/value`,2048):(u.value!==void 0||u.operand!==void 0)&&g("NATIVE_DATA_POLICY_VALUE_INVALID",`${I}/value`);for(let Q of["operation","valuePath","emptyMatchesAll","resourceCode","operand"])u[Q]!==void 0&&g("NATIVE_DATA_POLICY_CONSTANT_RULE_INVALID",`${I}/${Q}`)}if(S){(!["lt","lte","gt","gte"].includes(T)||u.value!==void 0||w?.type!=="datetime")&&g("NATIVE_DATA_POLICY_DB_NOW_INVALID",I);for(let Q of["operation","valuePath","emptyMatchesAll","resourceCode","value"])u[Q]!==void 0&&g("NATIVE_DATA_POLICY_DB_NOW_INVALID",`${I}/${Q}`)}u.dimensionCode&&!r.has(u.dimensionCode)&&g("NATIVE_SCOPE_DIMENSION_MISSING",`${I}/dimensionCode`),s.has(String(u.dimensionCode||""))&&u.operation!=="read"&&g("NATIVE_SCOPE_SOURCE_LAST_KNOWN_GOOD_UNSAFE",`${I}/operation`)}}try{Zr(e.data.resources,e.authz.dataPolicies)}catch(c){throw c instanceof fe&&g(c.code,c.pointer),c}for(let[c,l]of e.data.resources.entries()){let f=N(l,`/config/data/resources/${c}`);f.dataPolicyCode&&!d.has(f.dataPolicyCode)&&g("NATIVE_DATA_POLICY_REFERENCE_MISSING",`/config/data/resources/${c}/dataPolicyCode`)}}function Vf(e){try{Ar(e.data.resources,"/config/data/resources"),e.data.resources.forEach((t,o)=>lr(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 _e||t instanceof He)&&g(t.code,t.pointer),t}}function Ff(e,t,o,n){let r=new Set;for(let[i,a]of e.authz.roleMembershipSources.entries()){let s=`/config/authz/roleMembershipSources/${i}`,d=N(a,s);C(d,["code","name","resourceCode","userIdField","roleCode","enabledField","effectiveFromField","effectiveToField","failureMode"],s,!0);let c=$(d.code,`${s}/code`);c.length>100&&g("NATIVE_AUTHORIZATION_PROJECTION_SOURCE_CODE_INVALID",`${s}/code`),r.has(c)&&g("NATIVE_AUTHORIZATION_PROJECTION_SOURCE_DUPLICATE",`${s}/code`),r.add(c),D(d.name,`${s}/name`,255);let l=sd(d.resourceCode,`${s}/resourceCode`,o);ad(d.userIdField,`${s}/userIdField`,l),t.has(String(d.roleCode||""))||g("NATIVE_ROLE_REFERENCE_MISSING",`${s}/roleCode`),n&&d.roleCode===n&&g("NATIVE_AUTHENTICATED_USER_ROLE_SOURCE_CONFLICT",`${s}/roleCode`),dd(d,s,l)}for(let[i,a]of e.authz.relationshipGrantSources.entries()){let s=`/config/authz/relationshipGrantSources/${i}`,d=N(a,s);C(d,["code","name","resourceCode","subject","relationCode","targetResourceCode","resourceIdField","operations","enabledField","effectiveFromField","effectiveToField","failureMode"],s,!0);let c=$(d.code,`${s}/code`);c.length>100&&g("NATIVE_AUTHORIZATION_PROJECTION_SOURCE_CODE_INVALID",`${s}/code`),r.has(c)&&g("NATIVE_AUTHORIZATION_PROJECTION_SOURCE_DUPLICATE",`${s}/code`),r.add(c),D(d.name,`${s}/name`,255);let l=sd(d.resourceCode,`${s}/resourceCode`,o),f=N(d.subject,`${s}/subject`),p=D(f.type,`${s}/subject/type`,32);C(f,p==="role_membership"?["type","userIdField","roleCode"]:["type","userIdField"],`${s}/subject`),["user","role_membership"].includes(p)||g("NATIVE_AUTHORIZATION_PROJECTION_SUBJECT_INVALID",`${s}/subject/type`),ad(f.userIdField,`${s}/subject/userIdField`,l),p==="role_membership"&&!t.has(String(f.roleCode||""))&&g("NATIVE_ROLE_REFERENCE_MISSING",`${s}/subject/roleCode`),$(d.relationCode,`${s}/relationCode`);let m=Z(d.targetResourceCode,`${s}/targetResourceCode`);o.has(m)||g("NATIVE_AUTHORIZATION_PROJECTION_TARGET_RESOURCE_MISSING",`${s}/targetResourceCode`);let E=Pt(d.resourceIdField,l),A=E?.field.type==="resource-ref.single"&&E.valuePath==="value"&&E.field.source?.resourceCode===m;(d.resourceIdField==="id"?m!==String(d.resourceCode):!A)&&g("NATIVE_AUTHORIZATION_PROJECTION_RESOURCE_ID_FIELD_INVALID",`${s}/resourceIdField`);let O=F(d.operations,`${s}/operations`,20);(O.length===0||O.some(y=>y.length>64||!/^[A-Za-z0-9][A-Za-z0-9:._*-]{0,63}$/.test(y)))&&g("NATIVE_AUTHORIZATION_PROJECTION_OPERATIONS_INVALID",`${s}/operations`),dd(d,s,l)}}function sd(e,t,o){let n=Z(e,t),r=o.get(n);return r||g("NATIVE_AUTHORIZATION_PROJECTION_RESOURCE_MISSING",t),r}function ad(e,t,o){let n=Pt(e,o);co(n)||g("NATIVE_AUTHORIZATION_PROJECTION_USER_FIELD_INVALID",t)}function dd(e,t,o){if(e.failureMode!=="strict"&&g("NATIVE_AUTHORIZATION_PROJECTION_FAILURE_MODE_INVALID",`${t}/failureMode`),e.enabledField!==void 0){let n=z(e.enabledField,`${t}/enabledField`);o.get(n)?.type!=="boolean"&&g("NATIVE_AUTHORIZATION_PROJECTION_ENABLED_FIELD_INVALID",`${t}/enabledField`)}for(let n of["effectiveFromField","effectiveToField"]){if(e[n]===void 0)continue;let r=z(e[n],`${t}/${n}`);["date","datetime"].includes(String(o.get(r)?.type))||g("NATIVE_AUTHORIZATION_PROJECTION_EFFECTIVE_FIELD_INVALID",`${t}/${n}`)}}function xf(e){let t=new Set,o=new Set;e.forEach((n,r)=>{let i=`/config/backend/secrets/${r}`,a=N(n,i);C(a,["name","env","description","required","exposure"],i,!0);let s=D(a.name,`${i}/name`,128),d=D(a.env,`${i}/env`,128);xu.test(s)||g("NATIVE_SECRET_NAME_INVALID",`${i}/name`),(!Wu.test(d)||d.startsWith("OPENXIANGDA_")||["NODE_ENV","PORT"].includes(d))&&g("NATIVE_SECRET_ENV_INVALID",`${i}/env`),t.has(s)&&g("NATIVE_SECRET_NAME_DUPLICATE",`${i}/name`),o.has(d)&&g("NATIVE_SECRET_ENV_DUPLICATE",`${i}/env`),t.add(s),o.add(d),x(a.exposure,"active_only",`${i}/exposure`),a.required!==void 0&&Gt(a.required,`${i}/required`),a.description!==void 0&&qi(a.description,`${i}/description`,2e3)})}function Wf(e){let t=new Set,o=new Map,n=new Map(e.data.resources.map(m=>[String(m.code),m])),r=new Map(e.frontend.routes.map((m,E)=>{let A=N(m,`/config/frontend/routes/${E}`);return[$(A.code,`/config/frontend/routes/${E}/code`),A]}));for(let[m,E]of e.workflows.definitions.entries()){let A=`/config/workflows/definitions/${m}`,O=N(E,A);if(C(O,["version","definition","launch"],A,["detailRouteCode"]),wd(O.launch,`${A}/launch`),O.detailRouteCode!==void 0){let S=Td(O.detailRouteCode,`${A}/detailRouteCode`);for(let[L,V,J]of[["desktop",S.desktop,["admin","user"]],["mobile",S.mobile,["user"]]]){let ne=`${A}/detailRouteCode/${L}`,Q=r.get(V);Q||g("NATIVE_WORKFLOW_DETAIL_ROUTE_MISSING",ne),J.some(P=>P===Q.surface)||g("NATIVE_WORKFLOW_DETAIL_ROUTE_SURFACE_INVALID",ne);let Oe=Pe(Q.path,ne),ae=[...Oe.matchAll(/:([A-Za-z][A-Za-z0-9_]*)/g)].map(P=>P[1]);(Oe.includes("*")||ae.length!==1||ae[0]!=="instanceId")&&g("NATIVE_WORKFLOW_DETAIL_ROUTE_PATH_INVALID",ne)}}let y=N(O.definition,`${A}/definition`),_=`${y.code}:${qt(O.version,`${A}/version`)}`;t.has(_)&&g("NATIVE_WORKFLOW_DEFINITION_DUPLICATE",A),t.add(_),Uf(y,`${A}/definition`);let b=Po(y);b.length&&g(b[0],`${A}/definition/launchPreflight`);let h=Ni(y);h.length&&g(h[0],`${A}/definition/approvedDelegation`);let u=Oi(y,e.backend.operations);u.length&&g(u[0],`${A}/definition/commandHandlers`),jf(y.subject,n,`${A}/definition/subject`);let I=y.commandHandlers?.resubmit?.derivedSubjectFields||[],R=n.get(y.subject.resourceCode);for(let S of I){let L=R?.schema.fields.find(V=>V.code===S);(!L||L.system===!0||R?.surface?.fields?.[S]?.system===!0)&&g("WORKFLOW_CORRECTION_DERIVED_SUBJECT_FIELDS_INVALID",`${A}/definition/commandHandlers/resubmit/derivedSubjectFields`)}let w=Rn(y,new Map((n.get(y.subject.resourceCode)?.schema.fields||[]).map(S=>[S.code,{...n.get(y.subject.resourceCode)?.surface?.fields?.[S.code],...S,system:["id","revision","createdAt","updatedAt","createdBy","updatedBy"].includes(S.code)}])),new Map([...n].map(([S,L])=>[S,new Map(L.schema.fields.map(V=>[V.code,{...L.surface?.fields?.[V.code],...V,system:["id","revision","createdAt","updatedAt","createdBy","updatedBy"].includes(V.code)}]))])),Yt(n.get(y.subject.resourceCode)?.schema||{}));w.length&&g(w[0],`${A}/definition/taskPages`);let T=di(y,{appCode:e.appCode,capabilities:e.authz.capabilities.map(S=>S.code),fields:new Map((n.get(y.subject.resourceCode)?.schema.fields||[]).map(S=>[S.code,S]))});T.length&&g("NATIVE_WORKFLOW_INSTANCE_COMMAND_POLICY_INVALID",`${A}/definition/instanceCommands`,{errors:T}),y.title===y.code&&g("NATIVE_WORKFLOW_USER_TITLE_REQUIRED",`${A}/definition/title`),o.set(_,y)}let i=new Set,a=new Map;for(let[m,E]of e.workflows.bindings.entries()){let A=N(E,`/config/workflows/bindings/${m}`),O=N(A.binding,`/config/workflows/bindings/${m}/binding`),y=`${O.workflowCode}:${qt(A.version,`/config/workflows/bindings/${m}/version`)}`;i.has(y)&&g("NATIVE_WORKFLOW_BINDING_DUPLICATE",`/config/workflows/bindings/${m}`),i.add(y),Mf(O,`/config/workflows/bindings/${m}/binding`),a.set(y,O)}let s=new Set,d=new Map;for(let[m,E]of e.workflows.activations.entries()){let A=`/config/workflows/activations/${m}`,O=N(E,A);C(O,["workflowCode","definitionVersion","bindingVersion","acceptedCommandDeactivationPolicy"],A,["environmentKey","sourceBase"]);let y=$(O.workflowCode,`${A}/workflowCode`);if(s.has(y)&&g("NATIVE_WORKFLOW_ACTIVATION_DUPLICATE",A),s.add(y),O.sourceBase!==void 0){let w=N(O.sourceBase,`${A}/sourceBase`);C(w,["definitionDigest","bindingDigest"],`${A}/sourceBase`);for(let T of["definitionDigest","bindingDigest"])/^(sha256:)?[a-f0-9]{64}$/.test(String(w[T]||""))||g("NATIVE_WORKFLOW_SOURCE_BASE_INVALID",`${A}/sourceBase/${T}`)}let _=`${y}:${qt(O.definitionVersion,`${A}/definitionVersion`)}`,b=`${y}:${qt(O.bindingVersion,`${A}/bindingVersion`)}`;t.has(_)||g("NATIVE_WORKFLOW_DEFINITION_REFERENCE_MISSING",`${A}/definitionVersion`),i.has(b)||g("NATIVE_WORKFLOW_BINDING_REFERENCE_MISSING",`${A}/bindingVersion`);let h=o.get(_),u=a.get(b),I=Po(h,u);I.length&&g(I[0],A);let R=ko(h,u);R.length&&g(R[0],A),(!["finish-pinned","cancel-on-deactivate"].includes(O.acceptedCommandDeactivationPolicy)||O.acceptedCommandDeactivationPolicy!==h.acceptedCommandDeactivationPolicy)&&g("NATIVE_WORKFLOW_COMMAND_DEACTIVATION_POLICY_MISMATCH",`${A}/acceptedCommandDeactivationPolicy`),Bf(h,u,`/config/workflows/activations/${m}`);try{let w=n.get(h.subject.resourceCode)?.schema.fields||[];ur(h,u,new Map(w.map(T=>[T.code,T])),`${A}/bindings`,new Map([...n].map(([T,S])=>[T,new Map(S.schema.fields.map(L=>[L.code,L]))])))}catch(w){throw w instanceof He&&g(w.code,w.pointer),w}d.set(y,u)}let c=Pi([...d.values()]);c.length&&g(c[0],"/config/workflows/activations");let l=new Set;e.workflows.providers.forEach((m,E)=>{let A=`/config/workflows/providers/${E}`,O=N(m,A);C(O,["code","endpointPath","timeoutMs"],A,!0);let y=$(O.code,`${A}/code`);l.has(y)&&g("NATIVE_WORKFLOW_PROVIDER_DUPLICATE",`${A}/code`),l.add(y),Pe(O.endpointPath,`${A}/endpointPath`),O.timeoutMs!==void 0&&ce(O.timeoutMs,`${A}/timeoutMs`,100,1e4)});for(let[m,E]of d.entries())for(let[A,O]of Object.entries(N(E.bindings,"/config/workflows/bindings/*/binding/bindings"))){let y=N(O,`/config/workflows/${m}/bindings/${A}`);y.provider==="application_provider"&&!l.has(y.providerCode)&&g("NATIVE_WORKFLOW_PROVIDER_REFERENCE_MISSING",`/config/workflows/${m}/bindings/${A}/providerCode`)}let f=new Set(e.authz.roles.map(m=>m.code)),p=new Set;e.workflows.editableParameters.forEach((m,E)=>{let A=`/config/workflows/editableParameters/${E}`,O=N(m,A);C(O,["code","workflowCode","bindingKey","label","valueType","required","allowedRoleCodes","allowedProviderCodes","maxItems"],A,!0);let y=$(O.code,`${A}/code`);p.has(y)&&g("NATIVE_WORKFLOW_EDITABLE_PARAMETER_DUPLICATE",`${A}/code`),p.add(y);let _=Ho(O.workflowCode,`${A}/workflowCode`),b=qo(O.bindingKey,`${A}/bindingKey`),h=d.get(_);(!h||!N(h.bindings,`${A}/bindingKey`)[b])&&g("NATIVE_WORKFLOW_EDITABLE_BINDING_MISSING",`${A}/bindingKey`),D(O.label,`${A}/label`,255),["role_code","user_ids","provider_code"].includes(O.valueType)||g("NATIVE_WORKFLOW_EDITABLE_VALUE_TYPE_INVALID",`${A}/valueType`);for(let u of F(O.allowedRoleCodes||[],`${A}/allowedRoleCodes`,100))f.has(u)||g("NATIVE_ROLE_REFERENCE_MISSING",`${A}/allowedRoleCodes`);for(let u of F(O.allowedProviderCodes||[],`${A}/allowedProviderCodes`,100))l.has(u)||g("NATIVE_WORKFLOW_PROVIDER_REFERENCE_MISSING",`${A}/allowedProviderCodes`);O.required!==void 0&&Gt(O.required,`${A}/required`),O.maxItems!==void 0&&ce(O.maxItems,`${A}/maxItems`,1,200)})}function jf(e,t,o){let n=N(e,o);C(n,["resourceCode","factProjection"],o,["summaryFields"]);let r=Z(n.resourceCode,`${o}/resourceCode`),i=t.get(r);i||g("NATIVE_WORKFLOW_SUBJECT_RESOURCE_MISSING",`${o}/resourceCode`);let a=new Set(k(N(i.schema,`${o}/resourceCode`).fields,`${o}/resourceCode`,500).map((c,l)=>z(N(c,`${o}/resourceCode/${l}`).code,`${o}/resourceCode/${l}`))),s=N(n.factProjection,`${o}/factProjection`),d=Object.entries(s);(d.length<1||d.length>64)&&g("NATIVE_WORKFLOW_SUBJECT_FACT_PROJECTION_INVALID",`${o}/factProjection`);for(let[c,l]of d){Mu.test(c)||g("NATIVE_WORKFLOW_SUBJECT_FACT_KEY_INVALID",`${o}/factProjection/${c}`);let f=z(l,`${o}/factProjection/${c}`);a.has(f)||g("NATIVE_WORKFLOW_SUBJECT_FIELD_MISSING",`${o}/factProjection/${c}`)}if(n.summaryFields!==void 0){let c=F(n.summaryFields,`${o}/summaryFields`,Bu).map((E,A)=>z(E,`${o}/summaryFields/${A}`)),l=t.get(r),f=l.surface&&typeof l.surface=="object"&&!Array.isArray(l.surface)?l.surface:{},p=f.fields&&typeof f.fields=="object"&&!Array.isArray(f.fields)?f.fields:{},m=new Map(k(N(l.schema,`${o}/resourceCode`).fields,`${o}/resourceCode`,500).map((E,A)=>{let O=N(E,`${o}/resourceCode/${A}`);return[String(O.code),O]}));for(let[E,A]of c.entries()){let O=m.get(A),y=p[A],_=String(O?.type||""),b=O?.maxLength;(!O||O.system===!0||y&&typeof y=="object"&&!Array.isArray(y)&&y.system===!0||["id","revision","created_by","updated_by","created_at","updated_at"].includes(A)||!qu.has(_)||_==="text.long"&&typeof b=="number"&&Number.isFinite(b)&&b>Ku)&&g("NATIVE_WORKFLOW_SUBJECT_SUMMARY_FIELDS_INVALID",`${o}/summaryFields/${E}`)}}}function Uf(e,t){C(e,["schemaVersion","code","title","subject","acceptedCommandDeactivationPolicy","startAt","inputSchema","nodes"],t,["authoring","organizationContext","instanceCommands","readability","taskPages","rejectionNotification","commandHandlers","launchPreflight","approvedDelegation"]),x(e.schemaVersion,"openxiangda.workflow-definition/v2",`${t}/schemaVersion`),Ho(e.code,`${t}/code`),D(e.title,`${t}/title`,255),["finish-pinned","cancel-on-deactivate"].includes(e.acceptedCommandDeactivationPolicy)||g("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)&&g("NATIVE_WORKFLOW_NODE_COUNT_INVALID",`${t}/nodes`);let r=D(e.startAt,`${t}/startAt`,128),i=li(e);i.length&&g(i[0],`${t}/readability`);let a=ko(e);a.length&&g(a[0],`${t}/nodes`);let s=vo(e);s.length&&g(s[0],`${t}/nodes`);let d=Wt(e);d.length&&g(d[0],`${t}/nodes`);let c=Ii(e);c.length&&g(c[0],`${t}/nodes`);let l=bi(e);l.length&&g(l[0],`${t}/rejectionNotification`);let f=So(e);f.length&&g(f[0],`${t}/nodes`);let p=Rn(e);p.length&&g(p[0],`${t}/taskPages`);let m=ln(e);m.length&&g(m[0],`${t}/nodes`);let E=cn(e);E.length&&g(E[0],`${t}/nodes`);let A=pn(e);A.length&&g(A[0],`${t}/nodes`);let O=fn(e);O.length&&g(O[0],`${t}/nodes`);let y=sn(e);y.length&&g(y[0],`${t}/nodes`),o[r]||g("NATIVE_WORKFLOW_START_NODE_MISSING",`${t}/startAt`);let _=new Map;for(let[I,R]of Object.entries(o)){let w=`${t}/nodes/${I}`,T=N(R,w);x(T.id,I,`${w}/id`),["approval","handle","condition","end","cc","action","correction","parallel","join"].includes(T.kind)||g("NATIVE_WORKFLOW_NODE_KIND_INVALID",`${w}/kind`);let S=[];if(T.kind==="approval"||T.kind==="handle"){D(T.title,`${w}/title`,255),qo(T.binding,`${w}/binding`),["single","any","all","sequence"].includes(T.mode)||g("NATIVE_WORKFLOW_APPROVAL_MODE_INVALID",`${w}/mode`),T.kind==="handle"?S.push(D(T.next,`${w}/next`,128)):S.push(D(T.onApprove,`${w}/onApprove`,128),D(T.onReject,`${w}/onReject`,128));for(let L of F(T.returnTargets||[],`${w}/returnTargets`,200))o[L]||g("NATIVE_WORKFLOW_TARGET_MISSING",`${w}/returnTargets`);for(let L of F(T.allowedOperations||[],`${w}/allowedOperations`,20))zu.has(L)||g("NATIVE_WORKFLOW_OPERATION_INVALID",`${w}/allowedOperations`)}else if(T.kind==="correction"){let L=Ri(e);L.length&&g(L[0],w)}else if(T.kind==="action")S.push(D(T.next,`${w}/next`,128));else if(T.kind==="cc")D(T.title,`${w}/title`,255),qo(T.binding,`${w}/binding`),S.push(D(T.next,`${w}/next`,128));else if(T.kind==="parallel"){D(T.title,`${w}/title`,255),S.push(D(T.join,`${w}/join`,128));for(let[L,V]of k(T.branches,`${w}/branches`,8).entries()){let J=N(V,`${w}/branches/${L}`);J.when!==void 0&&Kt(J.when,`${w}/branches/${L}/when`,0),S.push(D(J.target,`${w}/branches/${L}/target`,128))}}else if(T.kind==="join")D(T.title,`${w}/title`,255),S.push(D(T.next,`${w}/next`,128));else if(T.kind==="condition"){let L=k(T.branches,`${w}/branches`,100);L.length===0&&g("NATIVE_WORKFLOW_BRANCH_REQUIRED",`${w}/branches`),L.forEach((V,J)=>{let ne=N(V,`${w}/branches/${J}`);Kt(ne.when,`${w}/branches/${J}/when`,0),S.push(D(ne.target,`${w}/branches/${J}/target`,128))}),S.push(D(T.otherwise,`${w}/otherwise`,128))}else D(T.title,`${w}/title`,255),D(T.outcome,`${w}/outcome`,128);for(let L of S)o[L]||g("NATIVE_WORKFLOW_TARGET_MISSING",w);_.set(I,S)}let b=new Set,h=new Set,u=I=>{if(h.has(I)&&g("NATIVE_WORKFLOW_CYCLE_FORBIDDEN",`${t}/nodes/${I}`),!b.has(I)){b.add(I),h.add(I);for(let R of _.get(I)||[])u(R);h.delete(I)}};u(r);for(let I of[...b]){let R=o[I];if(R?.kind==="approval"||R?.kind==="handle")for(let w of De(R))o[w]?.kind==="correction"&&b.add(w)}b.size!==n.length&&g("NATIVE_WORKFLOW_NODE_UNREACHABLE",`${t}/nodes`)}function Kt(e,t,o){o>20&&g("NATIVE_WORKFLOW_EXPRESSION_DEPTH_EXCEEDED",t);let n=N(e,t),r=D(n.op,`${t}/op`,16);if(r!=="literal"){if(r==="path"){let i=D(n.path,`${t}/path`,255);(!/^[A-Za-z][A-Za-z0-9_.-]{0,254}$/.test(i)||i.split(".").some(a=>["__proto__","constructor","prototype"].includes(a)))&&g("NATIVE_WORKFLOW_EXPRESSION_PATH_INVALID",`${t}/path`);return}if(["eq","neq","gt","gte","lt","lte","in","contains"].includes(r)){Kt(n.left,`${t}/left`,o+1),Kt(n.right,`${t}/right`,o+1);return}if(["and","or"].includes(r)){let i=k(n.values,`${t}/values`,100);i.length===0&&g("NATIVE_WORKFLOW_EXPRESSION_EMPTY",`${t}/values`),i.forEach((a,s)=>Kt(a,`${t}/values/${s}`,o+1));return}if(["not","exists"].includes(r)){Kt(n.value,`${t}/value`,o+1);return}g("NATIVE_WORKFLOW_EXPRESSION_OPERATOR_INVALID",`${t}/op`)}}function Mf(e,t){x(e.schemaVersion,"openxiangda.workflow-binding/v2",`${t}/schemaVersion`),Ho(e.workflowCode,`${t}/workflowCode`);let o=N(e.bindings,`${t}/bindings`);Object.keys(o).length>200&&g("NATIVE_WORKFLOW_BINDING_LIMIT_EXCEEDED",`${t}/bindings`);for(let[n,r]of Object.entries(o)){qo(n,`${t}/bindings/${n}`);let i=N(r,`${t}/bindings/${n}`),a=an(i);a.length&&g(a[0],`${t}/bindings/${n}`);let s=mi(i);s.length&&g(s[0],`${t}/bindings/${n}/selectedInputPath`);let d=In(i);d.length&&g(d[0],`${t}/bindings/${n}/roleCodes`);let c=D(i.provider,`${t}/bindings/${n}/provider`,64);if(["fixed_users","initiator","input_users","form_field_users","department_supervisor","supervisor_chain","app_role","app_role_in_scope","business_relation","previous_node_actor","initiator_select","application_provider"].includes(c)||g("NATIVE_WORKFLOW_BINDING_PROVIDER_INVALID",`${t}/bindings/${n}/provider`),c==="fixed_users"&&(Array.isArray(i.users)||g("NATIVE_WORKFLOW_BINDING_USERS_REQUIRED",`${t}/bindings/${n}/users`),k(i.users,`${t}/bindings/${n}/users`,200)),["input_users","form_field_users"].includes(c)&&D(i.inputPath,`${t}/bindings/${n}/inputPath`,255),["app_role","app_role_in_scope","initiator_select"].includes(c)&&i.roleCodes===void 0&&$(i.roleCode,`${t}/bindings/${n}/roleCode`),c==="department_supervisor"&&D(i.departmentIdFrom,`${t}/bindings/${n}/departmentIdFrom`,255),c==="application_provider"&&$(i.providerCode,`${t}/bindings/${n}/providerCode`),i.routing!==void 0){let l=Cn(i.routing);l.length&&g(l[0],`${t}/bindings/${n}/routing`)}}}function Bf(e,t,o){let n=dn(e,t);n.length&&g(n[0],o),x(t.workflowCode,e.code,`${o}/workflowCode`);let r=N(t.bindings,`${o}/bindings`);for(let[d,c]of Object.entries(r))c.provider==="fixed_users"&&!c.users.length&&!Ei(e,d)&&g("NATIVE_WORKFLOW_BINDING_USERS_REQUIRED",`${o}/bindings/${d}/users`);let i=vo(e,t);i.length&&g(i[0],o);let a=So(e,t);a.length&&g(a[0],o);let s=sn(e,t);s.length&&g(s[0],o);for(let[d,c]of Object.entries(N(e.nodes,`${o}/nodes`))){let l=N(c,`${o}/nodes/${d}`);["approval","handle","cc"].includes(l.kind)&&!r[l.binding]&&g("NATIVE_WORKFLOW_BINDING_REFERENCE_MISSING",`${o}/nodes/${d}/binding`)}}function Kf(e,t,o){let n=N(t.routeManifest,"/contracts/routeManifest"),r=N(e.routeManifest,"/contracts/routeManifest"),i=new Map;for(let l of k(o.data?.resources,"/config/data/resources",M.resources)){let f=N(l,"/config/data/resources");i.set(String(f.code||""),f)}let a=new Set(k(r.routes,"/contracts/routeManifest/routes",M.routes).map(l=>String(N(l,"/contracts/routeManifest/routes").code||""))),s=[];for(let l of k(n.routes,"/contracts/routeManifest/routes",M.routes)){let f=N(l,"/contracts/routeManifest/routes"),p=String(f.kind||"");if(p!=="resource-records"&&p!=="resource-submit")continue;let m=String(f.resourceCode||""),E=i.get(m);E||g("NATIVE_ROUTE_MANIFEST_RESOURCE_UNKNOWN","/contracts/routeManifest/routes");let O=`user.${m}.${p==="resource-records"?"records":"submit"}`;x(String(f.code||""),O,"/contracts/routeManifest/routes/code");let y=p==="resource-records"?"read":"create",_=String(N(E.capabilities,"/config/data/resources/capabilities")[y]||"");for(let b of["desktop","mobile"]){let h=N(f[b],`/contracts/routeManifest/routes/${b}`),u=b==="mobile"?"/m/my/":"/my/",I=p==="resource-records"?`${u}${m}`:`${u}${m}/submit`;x(String(h.path||""),I,`/contracts/routeManifest/routes/${b}/path`),x(String(h.capability||""),_,`/contracts/routeManifest/routes/${b}/capability`),x(String(h.routeCode||""),`${O}.${b}`,`/contracts/routeManifest/routes/${b}/routeCode`)}(a.has(O)||s.some(b=>String(b.code)===O))&&g("NATIVE_ROUTE_MANIFEST_DUPLICATE","/contracts/routeManifest/routes/code"),s.push(f)}if(!s.length)return;r.routes=k([...r.routes,...s],"/contracts/routeManifest/routes",1e3).sort((l,f)=>we(String(N(l,"x").code||""),String(N(f,"x").code||"")));let d=String(N(n.rootEntry,"x").code||"");if(s.find(l=>String(l.code)===d&&l.kind==="resource-records")){let l=N(n.rootEntry,"x");r.rootEntry={code:d,desktop:String(l.desktop||""),mobile:String(l.mobile||"")}}r.digest=ee({schemaVersion:r.schemaVersion,appCode:r.appCode,devicePolicy:r.devicePolicy,rootEntry:r.rootEntry,authentication:r.authentication,routes:r.routes})}function yt(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),x(n.schemaVersion,"openxiangda.data-resource/v2",`${t}/schemaVersion`),x(n.appCode,o,`${t}/appCode`);let r=Z(n.code,`${t}/code`),i=D(n.name,`${t}/name`,255),a=N(n.schema,`${t}/schema`);C(a,["fields","ownedRowLimit"],`${t}/schema`,!0),a.ownedRowLimit!==void 0&&!Tt(a.ownedRowLimit)&&g("NATIVE_DATA_OWNED_ROW_LIMIT_INVALID",`${t}/schema/ownedRowLimit`);let s,d,c,l;try{c=ro(n.decimalReservationLifecycle,`${t}/decimalReservationLifecycle`),s=Ct(a.fields,`${t}/schema/fields`),l=ri(n.uniqueKeys,s,`${t}/uniqueKeys`),d=Er(n.invariants,s,`${t}/invariants`),eo(n.surface,s,`${t}/surface`)}catch(E){throw(E instanceof _e||E instanceof He||E instanceof dt||E instanceof Ft)&&g(E.code,E.pointer),E}if(n.recordComments!==void 0){let E=N(n.recordComments,`${t}/recordComments`);C(E,["read","create"],`${t}/recordComments`);for(let A of["read","create"]){let O=E[A];(!Array.isArray(O)||O.length>20||O.some(y=>typeof y!="string"||!y.trim())||new Set(O).size!==O.length)&&g("NATIVE_RECORD_COMMENTS_POLICY_INVALID",`${t}/recordComments/${A}`)}}if(n.recordDeletion!==void 0){let E=N(n.recordDeletion,`${t}/recordDeletion`);C(E,["delete"],`${t}/recordDeletion`);let A=E.delete;(!Array.isArray(A)||A.length>20||A.some(O=>typeof O!="string"||!O.trim())||new Set(A).size!==A.length)&&g("NATIVE_RECORD_DELETION_DELETE_INVALID",`${t}/recordDeletion/delete`)}if(n.recordPrint!==void 0){let E=N(n.recordPrint,`${t}/recordPrint`);C(E,["read"],`${t}/recordPrint`);let A=E.read;(!Array.isArray(A)||A.length>20||A.some(O=>typeof O!="string"||!O.trim())||new Set(A).size!==A.length)&&g("NATIVE_RECORD_PRINT_READ_INVALID",`${t}/recordPrint/read`)}if(n.workflowHistory!==void 0){let E=N(n.workflowHistory,`${t}/workflowHistory`);C(E,["read"],`${t}/workflowHistory`);let A=E.read;(!Array.isArray(A)||A.length>20||A.some(O=>typeof O!="string"||!O.trim())||new Set(A).size!==A.length)&&g("NATIVE_WORKFLOW_HISTORY_READ_INVALID",`${t}/workflowHistory/read`)}let f=new Set(s.map(E=>E.code)),p=N(n.capabilities,`${t}/capabilities`);C(p,["read","create","update","delete"],`${t}/capabilities`);let m=N(n.fieldPolicies,`${t}/fieldPolicies`);for(let[E,A]of Object.entries(m)){!f.has(E)&&!Ye(E)&&g("NATIVE_DATA_FIELD_POLICY_FIELD_MISSING",`${t}/fieldPolicies/${E}`);let O=`${t}/fieldPolicies/${E}`,y=N(A,O);Ye(E)&&(C(y,["read"],O,!0),(!Array.isArray(y.read)||y.read.length>20||y.read.some(_=>typeof _!="string"||!_.trim())||new Set(y.read).size!==y.read.length)&&g("NATIVE_DATA_AUDIT_READ_POLICY_INVALID",`${O}/read`)),C(y,["read","create","update","mask"],O,!0),y.mask!==void 0&&!["omit","null"].includes(y.mask)&&g("NATIVE_DATA_FIELD_POLICY_MASK_INVALID",`${O}/mask`)}return{...n,code:r,name:i,schema:{fields:s,...a.ownedRowLimit!==void 0?{ownedRowLimit:a.ownedRowLimit}:{}},...n.invariants===void 0?{}:{invariants:d},...c?{decimalReservationLifecycle:c}:{},...l!==void 0?{uniqueKeys:l}:{},capabilities:p,fieldPolicies:m}}function Cd(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 cd(e,t,o,n){let r=e.toString("utf8"),i;try{i=JSON.parse(r)}catch{g(o,t)}let a=N(i,t);return oe(a)!==r&&g(n,t),a}function jo(e,t,o){let n=0,r=(i,a,s)=>{if(n+=1,n>o&&g("NATIVE_ARTIFACT_NODE_LIMIT_EXCEEDED",a),s>Yu&&g("NATIVE_ARTIFACT_DEPTH_LIMIT_EXCEEDED",a),typeof i=="string"){Buffer.byteLength(i)>Wi&&g("NATIVE_ARTIFACT_STRING_LIMIT_EXCEEDED",a);return}if(Array.isArray(i)){i.forEach((d,c)=>r(d,`${a}/${c}`,s+1));return}if(!(!i||typeof i!="object"))for(let[d,c]of Object.entries(i))["__proto__","prototype","constructor"].includes(d)&&g("NATIVE_ARTIFACT_DANGEROUS_KEY",`${a}/${d}`),qf(d)&&g("NATIVE_ARTIFACT_RUNTIME_FIELD_FORBIDDEN",`${a}/${d}`),r(c,`${a}/${d}`,s+1)};r(e,t,0)}function qf(e){return["environmentKey","environmentId","secretValue","ciphertext","oauthClient","oauthClientId","oauthClientSecret","signingSecret","kubernetesNamespace","nodePort","productionUrl"].includes(e)}function Bt(e){return{value:e,digest:ee(e)}}function ld(e,t,o,n){typeof e!="string"&&!Buffer.isBuffer(e)&&!(e instanceof Uint8Array)&&g("NATIVE_ARTIFACT_BYTES_REQUIRED",o);let r=Buffer.isBuffer(e)?e:Buffer.from(e);return r.byteLength===0&&g("NATIVE_ARTIFACT_EMPTY",o),r.byteLength>t&&g(n,o),r}function ud(e,t,o,n){let r=Go.createHash("sha256").update(e).digest("hex");Go.timingSafeEqual(Buffer.from(r),Buffer.from(t))||g(n,o)}function N(e,t){return(!e||typeof e!="object"||Array.isArray(e))&&g("NATIVE_OBJECT_REQUIRED",t),e}function k(e,t,o){return Array.isArray(e)||g("NATIVE_ARRAY_REQUIRED",t),e.length>o&&g("NATIVE_ARRAY_LIMIT_EXCEEDED",t),e}function F(e,t,o){let n=k(e,t,o).map((r,i)=>D(r,`${t}/${i}`,255));return new Set(n).size!==n.length&&g("NATIVE_ARRAY_DUPLICATE",t),n}function D(e,t,o){return(typeof e!="string"||e.length===0||e.length>o)&&g("NATIVE_STRING_INVALID",t),e}function qi(e,t,o){return(typeof e!="string"||e.length>o)&&g("NATIVE_STRING_INVALID",t),e}function $(e,t){let o=D(e,t,128);return Lu.test(o)||g("NATIVE_CODE_INVALID",t),o}function Z(e,t){let o=D(e,t,64);return Vu.test(o)||g("NATIVE_RESOURCE_CODE_INVALID",t),o}function z(e,t){let o=D(e,t,63);return Fu.test(o)||g("NATIVE_FIELD_CODE_INVALID",t),o}function Ho(e,t){let o=D(e,t,128);return ju.test(o)||g("NATIVE_WORKFLOW_CODE_INVALID",t),o}function qo(e,t){let o=D(e,t,128);return Uu.test(o)||g("NATIVE_WORKFLOW_BINDING_CODE_INVALID",t),o}function Ie(e,t,o){let n=D(e,t,255);return Pu.test(n)||g("NATIVE_CAPABILITY_CODE_INVALID",t),!n.startsWith(`app:${o}:`)&&!Cd(o).some(r=>r.code===n)&&g("NATIVE_CAPABILITY_APP_MISMATCH",t),n}function Pe(e,t){let o=D(e,t,2048);return(!o.startsWith("/")||o.startsWith("//")||o.includes("..")||o.includes("?")||o.includes("#"))&&g("NATIVE_ABSOLUTE_PATH_INVALID",t),o}function qt(e,t){return(!Number.isInteger(e)||Number(e)<1)&&g("NATIVE_POSITIVE_INTEGER_REQUIRED",t),Number(e)}function ce(e,t,o,n){return(!Number.isInteger(e)||Number(e)<o||Number(e)>n)&&g("NATIVE_INTEGER_OUT_OF_RANGE",t),Number(e)}function Gt(e,t){return typeof e!="boolean"&&g("NATIVE_BOOLEAN_REQUIRED",t),e}function Ui(e,t){let o=D(e,t,64).toLowerCase();return ku.test(o)||g("NATIVE_DIGEST_INVALID",t),o}function x(e,t,o){e!==t&&g("NATIVE_VALUE_MISMATCH",o)}function C(e,t,o,n=!1){let r=new Set([...t,...Array.isArray(n)?n:[]]);for(let i of Object.keys(e))r.has(i)||g("NATIVE_PROPERTY_UNKNOWN",`${o}/${i}`);if(n!==!0)for(let i of t)Object.prototype.hasOwnProperty.call(e,i)||g("NATIVE_PROPERTY_REQUIRED",`${o}/${i}`)}function re(e,t){return[...e].sort((o,n)=>we(t(o),t(n)))}function B(e){return[...new Set(e)].sort(we)}function fd(e){return[...new Set(e)].sort((t,o)=>t-o)}function we(e,t){return e===t?0:e<t?-1:1}function Sd(e){return!e||typeof e!="object"||Object.isFrozen(e)||(Object.freeze(e),Object.values(e).forEach(t=>Sd(t))),e}function Mi(e,t,o){if(xi(e,t))return o;if(Array.isArray(e)&&Array.isArray(t)){let n=Math.max(e.length,t.length);for(let r=0;r<n;r+=1)if(!xi(e[r],t[r]))return Mi(e[r],t[r],`${o}/${r}`)}if(e&&t&&typeof e=="object"&&typeof t=="object"&&!Array.isArray(e)&&!Array.isArray(t)){let n=B([...Object.keys(e),...Object.keys(t)]);for(let r of n){let i=e[r],a=t[r];if(!xi(i,a))return Mi(i,a,`${o}/${r}`)}}return o}function xi(e,t){return e===void 0||t===void 0?e===t:oe(e)===oe(t)}function g(e,t,o={}){throw new Mo(e,t,o)}var Gf="openxiangda.workflow-step-data-command/v1",Dd="openxiangda.workflow-step-data-resolution/v1";function zf(e,t,o=!1){let n=s=>!!s&&typeof s=="object"&&!Array.isArray(s),r=s=>typeof s=="string"&&/^[a-f0-9]{8}(-[a-f0-9]{4}){3}-[a-f0-9]{12}$/i.test(s),i=()=>{throw new Error("WORKFLOW_STEP_DATA_RESPONSE_INVALID")};if(!n(e)||e.schemaVersion!==Dd||e.executionId!==t||Object.keys(e).some(s=>!["schemaVersion","executionId","outcome","transaction"].includes(s)))return i();if(e.outcome==="not_observed"&&!Object.hasOwn(e,"transaction")&&!o)return e;let a=e.transaction;if(e.outcome!=="committed"||!n(a)||a.schemaVersion!=="openxiangda.data-transaction-result/v2"||a.idempotencyKey!==`workflow-step:${t}`||typeof a.replayed!="boolean"||!Array.isArray(a.items)||a.items.length<1||a.items.length>pr||a.evaluatedAt!==void 0&&(typeof a.evaluatedAt!="string"||!Number.isFinite(Date.parse(a.evaluatedAt))))return i();for(let[s,d]of a.items.entries()){if(!n(d)||d.index!==s)return i();if(d.operation==="emitEvent"){if(typeof d.eventType!="string"||!d.eventType||!r(d.eventId))return i()}else if(!["create","update","delete","increment"].includes(d.operation)||typeof d.resourceCode!="string"||!d.resourceCode||!r(d.id)||!Number.isSafeInteger(d.revision)||d.revision<1)return i()}return e}var q_=50,G_=131072,Yo=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 Jf(e){let t=f=>{throw new Yo(f)},o=(f,p)=>((!f||typeof f!="object"||Array.isArray(f))&&t(p),f),n=(f,p,m)=>{for(let E of Object.keys(f))p.includes(E)||t(`${m}/${E}`)},r=(f,p,m)=>((typeof f!="string"||!f.trim()||f.length>p)&&t(m),f),i=(f,p)=>{let m=r(f,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(m)||t(p),m.toLowerCase()},a=o(e,""),s;try{s=new TextEncoder().encode(JSON.stringify(a)).byteLength}catch{t("")}s>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 d=new Set,c=new Set,l;for(let[f,p]of a.items.entries()){let m=`/items/${f}`,E=o(p,m);["create","update","revoke"].includes(String(E.operation))||t(`${m}/operation`),l??=E.operation,l!==E.operation&&t(`${m}/operation`),n(E,["operation","operationId","reason",...l==="create"?["userId","roleCode"]:["membershipId","expectedRevision"],...l!=="revoke"?["scopeGrants","validFrom","validTo"]:[]],m);let A=i(E.operationId,`${m}/operationId`);d.has(A)&&t(`${m}/operationId`),d.add(A),r(E.reason,1e3,`${m}/reason`);let O;if(l==="create"){let y=r(E.userId,255,`${m}/userId`),_=r(E.roleCode,128,`${m}/roleCode`);/^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/.test(_)||t(`${m}/roleCode`),O=JSON.stringify([y,_])}else O=i(E.membershipId,`${m}/membershipId`),(!Number.isSafeInteger(E.expectedRevision)||Number(E.expectedRevision)<1)&&t(`${m}/expectedRevision`);c.has(O)&&t(m),c.add(O),E.scopeGrants!==void 0&&(!Array.isArray(E.scopeGrants)||E.scopeGrants.length>100)&&t(`${m}/scopeGrants`);for(let y of["validFrom","validTo"])E[y]!==void 0&&E[y]!==null&&r(E[y],64,`${m}/${y}`)}}var Ld="openxiangda.workflow-delegation-administration/v2",$d="openxiangda.workflow-delegation-mutation/v2",kd="openxiangda.workflow-delegation-preview/v2";var Pn={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}$"},ye={type:"string",minLength:1,maxLength:255},bt={type:"string",format:"date-time"},zt={type:"integer",minimum:1},Hf={anyOf:[bt,{type:"null"}]},Gi={anyOf:[ye,{type:"null"}]},Vd={anyOf:[{type:"string",pattern:"^[A-Za-z0-9._:-]{1,128}$"},{type:"null"}]},Xo={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}$"},Fd={const:"future-assignments-only"},zi={schemaVersion:{const:Ld},id:Pn,appCode:ye,environmentKey:ye,workflowCode:Gi,nodeId:Vd,delegatorUserId:ye,delegateUserId:ye,delegatorRoleSubjectKey:Xo,delegateRoleSubjectKey:Xo,validFrom:bt,validTo:bt,status:{enum:["active","revoked","expired"]},reason:{type:"string",minLength:1,maxLength:4e3},createdBy:ye,createdAt:bt,revokedAt:Hf,revision:zt,roleCode:ye,roleName:ye,delegatorDisplayName:ye,delegateDisplayName:ye,delegatorRoleSubjectRevision:zt,delegateRoleSubjectRevision:zt,effectiveState:{enum:["active","scheduled","expired","revoked","ineligible"]},evaluatedAt:bt,issues:{type:"array",maxItems:20,uniqueItems:!0,items:ye},canRevoke:{type:"boolean"},revokedBy:Gi,revokeReason:{type:["string","null"],maxLength:4e3},taskPolicy:Fd},Ji={type:"object",additionalProperties:!1,required:Object.keys(zi).filter(e=>e!=="nodeId"),properties:zi},J_={$id:Ld,...Ji},xd={schemaVersion:{const:$d},operationId:Pn,environmentKey:{enum:["preproduction","production"]},reason:{type:"string",minLength:1,maxLength:2e3,pattern:"\\S"}},vd={...xd,operation:{const:"create"},workflowCode:Gi,nodeId:Vd,delegatorRoleSubjectKey:Xo,expectedDelegatorRevision:zt,delegateUserId:ye,delegateRoleSubjectKey:Xo,expectedDelegateRevision:zt,validFrom:bt,validTo:bt},Pd={...xd,operation:{const:"revoke"},delegationId:Pn,expectedRevision:zt},Wd={$id:$d,type:"object",oneOf:[{type:"object",additionalProperties:!1,required:Object.keys(vd).filter(e=>e!=="nodeId"),properties:vd,if:{required:["nodeId"],properties:{nodeId:{type:"string"}}},then:{properties:{workflowCode:ye}}},{type:"object",additionalProperties:!1,required:Object.keys(Pd),properties:Pd}]},Yf={type:"string",pattern:"^[0-9a-f]{64}$"},H_={$id:kd,type:"object",additionalProperties:!1,required:["schemaVersion","operationId","operation","requestDigest","before","after","taskPolicy"],properties:{schemaVersion:{const:kd},operationId:Pn,operation:{enum:["create","revoke"]},requestDigest:Yf,before:{anyOf:[Ji,{type:"null"}]},after:{...Ji,properties:{...zi,id:{anyOf:[Pn,{type:"null"}]}}},taskPolicy:Fd}};function Xf(e){return e===void 0?"":`
9
- ${ee(e)}`}function Zf(e,t){let o=e.handlers.find(n=>n.code===t);return ee(o?.workflowStep?o:e)}var Qf="openxiangda.data-business-command/v1",jd="openxiangda.data-business-command-resolution/v1",Q_=65536;function ep(e){let t=0,o=0,n=new Set,r=new TextEncoder,i=()=>{throw new Error("OPENXIANGDA_DATA_COMMAND_INTENT_INVALID")},a=d=>(o+=r.encode(d).byteLength,o>65536&&i(),d),s=(d,c)=>{if(++t>1e4||c>32)return i();if(d===null||typeof d=="string"||typeof d=="boolean")return a(JSON.stringify(d));if(typeof d=="number")return Number.isFinite(d)?a(JSON.stringify(d)):i();if(!d||typeof d!="object"||n.has(d)||Object.getOwnPropertySymbols(d).length)return i();n.add(d);let l;if(Array.isArray(d))return Object.keys(d).length!==d.length?i():(l=a("[")+d.map((p,m)=>(m?a(","):"")+s(p,c+1)).join("")+a("]"),n.delete(d),l);let f=Object.getPrototypeOf(d);return f!==Object.prototype&&f!==null?i():(l=a("{")+Object.keys(d).sort().map((p,m)=>(m?a(","):"")+a(JSON.stringify(p))+a(":")+s(d[p],c+1)).join("")+a("}"),n.delete(d),l)};return!e||typeof e!="object"||Array.isArray(e)?i():s(e,0)}function tp(e,t,o=!1){let n=e,r=()=>{throw new Error("OPENXIANGDA_DATA_COMMAND_RESPONSE_INVALID")};if(!n||typeof n!="object"||n.schemaVersion!==jd)return r();for(let d of["appCode","environmentKey","operationCode","idempotencyKey","intentDigest"])if(n[d]!==t[d])return r();if(typeof n.observedAt!="string"||!Number.isFinite(Date.parse(n.observedAt)))return r();if(n.outcome==="not_observed"&&n.receipt===null&&!o)return n;if(n.outcome!=="committed"||!n.receipt)return r();let i=n.receipt,a=d=>typeof d=="string"&&/^[a-f0-9]{8}(-[a-f0-9]{4}){3}-[a-f0-9]{12}$/i.test(d);if(!a(i.id)||!a(i.appVersionId)||!Number.isSafeInteger(i.environmentHeadRevision)||i.environmentHeadRevision<1||typeof i.completedAt!="string"||!Number.isFinite(Date.parse(i.completedAt)))return r();let s=i.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 r();for(let[d,c]of s.items.entries()){if(!c||c.index!==d)return r();if(c.operation==="emitEvent"){if(!a(c.eventId)||typeof c.eventType!="string"||!c.eventType)return r()}else if(!["create","update","delete","increment"].includes(c.operation)||!a(c.id)||typeof c.resourceCode!="string"||!c.resourceCode||!Number.isSafeInteger(c.revision)||c.revision<1)return r()}return n}var Ud=/^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$/,Zo=e=>!!e&&typeof e=="object"&&!Array.isArray(e),Ln=(e,t)=>typeof e=="string"&&e.length<=t&&e.trim().length>0&&e===e.trim(),Hi=(e,t,o=[])=>t.every(n=>Object.hasOwn(e,n))&&Object.keys(e).every(n=>[...t,...o].includes(n));function np(e){if(!Zo(e)||!Hi(e,["kind","errorCode","anyOf"],["allowAppSuperAdmin"])||e.kind!=="actor-authority"||!Ln(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(!Zo(o)||!Hi(o,["roleCode"],["scope"])||!Ln(o.roleCode,100)||!Ud.test(o.roleCode))return!1;if(Object.hasOwn(o,"scope")){let i=o.scope;if(!Zo(i)||!Hi(i,["dimensionCode","value","operation"])||!Ln(i.dimensionCode,100)||!Ud.test(i.dimensionCode)||!Ln(i.value,255)||!Ln(i.operation,64)||!/^[A-Za-z0-9*][A-Za-z0-9*._:-]*$/.test(i.operation))return!1}let n=o.scope,r=JSON.stringify([o.roleCode,n?.dimensionCode,n?.value,n?.operation]);return t.has(r)?!1:(t.add(r),!0)})}function op(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 r=e.scope;return n.some(i=>Zo(i)&&i.dimensionCode===r.dimensionCode&&Array.isArray(i.values)&&i.values.includes(r.value)&&(i.operations===void 0||i.operations===null||Array.isArray(i.operations)&&(!i.operations.length||i.operations.includes("*")||i.operations.includes(r.operation))))}var nA=500,rp=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,Yi=e=>!!e&&typeof e=="object"&&!Array.isArray(e);function ip(e){if(!Yi(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")&&!Yi(e.where))return!1;let t=new Set;return e.records.every(o=>{if(!Yi(o)||Object.keys(o).length!==2||typeof o.id!="string"||!rp.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)})}var Md="openxiangda.development-configuration/v2",Xi="openxiangda.development-configuration-manifest/v1",sp="application.development-configuration",ap="/openxiangda-api/v2/applications/{appCode}/dev-sessions/configuration",Qo=class extends Error{constructor(o,n){super(o);this.code=o;this.pointer=n;this.data={pointer:n}}code;pointer;status=400;data};function nt(e){throw new Qo("OPENXIANGDA_CONNECTED_DEV_CONFIGURATION_INVALID",e)}function Bd(e){(!e||typeof e!="object"||Array.isArray(e))&&nt("/packageManifest");let t=e,o=["schemaVersion","appCode","version","configDigest","contractDigest","source","toolchain","artifacts"];(Object.keys(t).some(r=>!o.includes(r))||t.schemaVersion!==Xi||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}`)&&nt("/packageManifest"),(!t.source||typeof t.source!="object"||Array.isArray(t.source)||Object.keys(t.source).some(r=>!["repository","commit","dirty"].includes(r))||![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")&&nt("/packageManifest/source"),(!t.toolchain||Object.keys(t.toolchain).some(r=>!["version","contractVersion"].includes(r))||typeof t.toolchain.version!="string"||!/^[A-Za-z0-9][A-Za-z0-9.+_-]{0,127}$/.test(t.toolchain.version)||t.toolchain.contractVersion!==Vi)&&nt("/packageManifest/toolchain");let n=[{kind:"config",digest:t.configDigest,mediaType:"application/json"},{kind:"contracts",digest:t.contractDigest,mediaType:"application/json"}];return oe(t.artifacts)!==oe(n)&&nt("/packageManifest/artifacts"),t}function dp(e,t){return Bd({schemaVersion:Xi,appCode:e,version:`development-${t.configDigest}`,configDigest:t.configDigest,contractDigest:t.contractDigest,source:{...t.source},toolchain:{version:t.toolchainVersion,contractVersion:Vi},artifacts:[{kind:"config",digest:t.configDigest,mediaType:"application/json"},{kind:"contracts",digest:t.contractDigest,mediaType:"application/json"}]})}function cp(e,t,o){return(!Number.isSafeInteger(t)||t<1)&&nt("/expectedHeadRevision"),`development:${ee({manifest:e,expectedHeadRevision:t,...o?{actorUserId:o}:{}})}`}function lp(e,t,o){(!e||typeof e!="object"||Array.isArray(e))&&nt("/result");let n=e,r=["schemaVersion","appCode","environmentKey","environmentId","appVersionId","configurationRunId","headRevision","publishedAppVersionId","selection","configDigest","contractDigest","reused","runtimeArtifactsDeployed","backendEventsAvailable"],i=/^[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(a=>!r.includes(a))||n.schemaVersion!==Md||n.appCode!==t||n.environmentKey!=="preproduction"||n.configDigest!==o.configDigest||n.contractDigest!==o.contractDigest||!i.test(n.environmentId)||!i.test(n.appVersionId)||!i.test(n.publishedAppVersionId)||n.appVersionId===n.publishedAppVersionId||n.selection!=="session"||!i.test(n.configurationRunId)||typeof n.reused!="boolean"||!Number.isSafeInteger(n.headRevision)||n.headRevision<1||n.headRevision!==o.expectedHeadRevision||n.runtimeArtifactsDeployed!==!1||n.backendEventsAvailable!==!1)&&nt("/result"),n}var up="application.development-backend-events",fp="openxiangda.development-backend/v1",pp="application.development-backend-invocations",Kd="openxiangda.development-backend-invocation/v1",aA=262144,dA=1048576,cA=131072,lA=131072,uA=8,fA=45,mp=/^\/__platform\/events\/[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/;function gp(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 _p(e){return`connected-development:${e}`}function qd(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 Gd(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("/"),r=String(o.path||"").split("/");return n.length!==r.length?!1:n.every((i,a)=>{if(a===0)return r[a]==="";let s;try{s=decodeURIComponent(i)}catch{return!1}return!s||[".",".."].includes(s)||/[\/\\\s\u0000-\u001f\u007f]/.test(s)?!1:/^:[A-Za-z][A-Za-z0-9_]*$/.test(r[a]||"")||i===r[a]})}var Ap=/^(?: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|dev-selection))$/i,Ep=/^(?:content-type|content-disposition|cache-control|etag|last-modified|retry-after)$/i;function zd(e,t=!1){if(!e||typeof e!="object"||Array.isArray(e))return!1;let o=Object.entries(e),n=o.map(([r])=>r.toLowerCase());return o.length<=24&&new Set(n).size===n.length&&o.every(([r,i])=>(t?Ep:Ap).test(r)&&typeof i=="string"&&i.length<=8192&&!/[\r\n\u0000]/.test(i))}function Ip(e){let t=qd(e.body);return e.schemaVersion===Kd&&!!e.operation&&typeof e.operation.code=="string"&&e.operation.code.length<=128&&e.operation.code.length>0&&Gd(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&&zd(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 yp=Object.freeze({version:"rich-text-html/1",maxBytes:1048576,maxNodes:25e3,maxDepth:128,maxImages:20,imageMaxBytes:10485760,maxVideos:4,videoMaxBytes:104857600,imageTypes:["image/png","image/jpeg","image/webp","image/gif"],videoTypes:["video/mp4","video/webm"],fonts:["Arial","Verdana","Tahoma","Times New Roman","Courier New","\u5B8B\u4F53","\u5FAE\u8F6F\u96C5\u9ED1","SimSun","Microsoft YaHei","sans-serif","serif","monospace"]});function Jd(e,t,o){let n=e.nodes,r=n[t],i=n[o];if(!r||!["approval","handle"].includes(r.kind)||!i||!["approval","handle","correction"].includes(i.kind)||t===o)return{allowed:!1,reason:"\u4E0D\u662F\u53EF\u9000\u56DE\u7684\u529E\u7406\u8282\u70B9"};let a=ke(e).regions;for(let c of a){let l=c.branches.find(p=>p.nodeIds.includes(t)),f=c.branches.find(p=>p.nodeIds.includes(o));if(l?.id!==f?.id&&(l||f))return{allowed:!1,reason:"\u5E76\u884C\u5206\u652F\u5185\u53EA\u80FD\u9000\u56DE\u672C\u5206\u652F\u7684\u8282\u70B9\uFF0C\u4E0D\u80FD\u8DE8\u8D8A\u6C47\u5408\u8FB9\u754C"}}let s=[o],d=new Set;for(;s.length;){let c=s.shift();if(c===t)return{allowed:!0};if(d.has(c))continue;d.add(c);let l=n[c];l&&s.push(...un(l).filter(f=>!d.has(f)))}return{allowed:!1,reason:"\u8BE5\u8282\u70B9\u4E0D\u5728\u672C\u8282\u70B9\u4E4B\u524D\u7684\u53EF\u8FBE\u6D41\u8F6C\u8DEF\u5F84\u4E0A"}}function Zi(e){return Object.values(e.nodes||{}).flatMap(t=>t.kind==="approval"||t.kind==="handle"?De(t).filter(o=>!Jd(e,t.id,o).allowed).map(o=>`WORKFLOW_RETURN_TARGET_UNREACHABLE:${t.id}:${o}`):[])}var Jt=e=>`canvas_${e}`,Qi=(e,t)=>[...e==="approval"?["approve","reject"]:["complete"],...t?["save_form"]:[],"return","transfer","delegate",...e==="approval"?["add_assignee"]:[]];function $n(e,t,o="",n=""){let r=new Map;for(let i of[...Object.values(e.nodes),...e.authoring?.businessSteps||[]])!("handler"in i)||te(i)||r.set(`${i.handler.code}@${i.handler.version}`,{title:i.title,handler:i.handler,inputSchema:i.inputSchema,outputSchema:i.outputSchema});return{appVersionId:o,digest:n,taskPages:e.taskPages||{},steps:[...r.values()],peopleSources:t.bindings}}function Hd(e,t,o,n,r,i={},a=n){let s=Jt(e);if(t==="cc")return{id:e,kind:t,title:o,next:n,binding:s,emptyPolicy:"block",notify:!0,administration:{assigneeProviders:["fixed_users","app_role"]}};let d=r?i[r]:void 0,c=Qi(t,!!d),l={id:e,title:o,binding:s,mode:"single",allowedOperations:c,requiredOperations:[t==="approval"?"approve":"complete"],administration:{modes:["single","any","all","sequence"],assigneeProviders:["fixed_users","app_role"],operations:c},fieldPolicy:{default:"readonly",fields:Object.fromEntries((d?.fields||[]).map(f=>[f.code,f.readonly?"readonly":f.required?"edit_required":"edit"]))},operationPolicy:{...t==="approval"?{approve:{opinion:"optional",minimumOpinion:"optional"},reject:{opinion:"required",minimumOpinion:"required"}}:{complete:{opinion:"optional",minimumOpinion:"optional"}},return:{opinion:"required",minimumOpinion:"required"},transfer:{opinion:"required",minimumOpinion:"required"},delegate:{opinion:"required",minimumOpinion:"required"},...t==="approval"?{add_assignee:{opinion:"required",minimumOpinion:"required"}}:{}},...d?{taskPageCode:r}:{}};return t==="approval"?{...l,kind:t,onApprove:n,onReject:a}:{...l,kind:t,next:n}}var er=(e,t)=>{let o=n=>Array.isArray(n)?n.map(o):n&&typeof n=="object"?Object.fromEntries(Object.keys(n).sort().filter(r=>n[r]!==void 0).map(r=>[r,o(n[r])])):n;return JSON.stringify(o(e))===JSON.stringify(o(t))};function es(e,t){if(!["approval","handle","cc"].includes(e.kind)||!("binding"in e)||e.binding!==Jt(e.id))return["WORKFLOW_DESIGNER_CANVAS_BINDING_REQUIRED"];if(e.kind==="cc")return er(e.administration,{assigneeProviders:["fixed_users","app_role"]})?[]:["WORKFLOW_DESIGNER_CODE_OWNED:administration"];if(e.kind!=="approval"&&e.kind!=="handle")return[];let o=Hd(e.id,e.kind,e.title,"",e.taskPageCode,t.taskPages),n=[];for(let a of["administration","requiredOperations"])er(e[a],o[a])||n.push(`WORKFLOW_DESIGNER_CODE_OWNED:${e.id}.${a}`);e.taskPageCode&&!t.taskPages[e.taskPageCode]&&n.push(`WORKFLOW_DESIGNER_PAGE_UNRELEASED:${e.id}`);let r=o.fieldPolicy;e.fieldPolicy?.default&&e.fieldPolicy.default!=="readonly"&&n.push(`WORKFLOW_DESIGNER_FIELD_CEILING:${e.id}`);for(let[a,s]of Object.entries(e.fieldPolicy?.fields||{}))(!(a in r.fields)||!["readonly","edit","edit_required"].includes(s)||["edit","edit_required"].includes(s)&&r.fields[a]==="readonly")&&n.push(`WORKFLOW_DESIGNER_FIELD_CEILING:${e.id}.${a}`);let i=Qi(e.kind,!!e.taskPageCode);(e.allowedOperations||i).some(a=>!i.includes(a))&&n.push(`WORKFLOW_DESIGNER_OPERATION_NOT_ALLOWED:${e.id}`);for(let[a,s]of Object.entries(e.operationPolicy||{})){let d=o.operationPolicy?.[a];(!i.includes(a)||!er(s.minimumOpinion,d?.minimumOpinion)||["none","optional","required"].indexOf(et(a,s))<["none","optional","required"].indexOf(_t(a,d)))&&n.push(`WORKFLOW_DESIGNER_OPINION_MINIMUM:${e.id}.${a}`)}return n}function ts(e,t,o=!1){if(Object.values(t.peopleSources).some(r=>er(r,e)))return[];let n=Object.keys(e);if(e.provider==="fixed_users"&&n.every(r=>["provider","users"].includes(r))&&Array.isArray(e.users)&&e.users.length<=200&&(o||e.users.length>0)&&new Set(e.users).size===e.users.length&&e.users.every(r=>typeof r=="string"&&!!r.trim()&&r.length<=255))return[];if(e.provider==="app_role"&&n.every(r=>["provider","roleCode","roleCodes"].includes(r))){let r=e.roleCodes||(e.roleCode?[e.roleCode]:[]);if(!(e.roleCode&&e.roleCodes)&&(o||r.length>0)&&r.length<=8&&new Set(r).size===r.length&&r.every(i=>/^[a-z][a-z0-9_-]{0,127}$/.test(i)))return[]}return["WORKFLOW_DESIGNER_BINDING_UNRELEASED"]}function bp(e,t,o){return{...t,bindings:Object.fromEntries(Object.entries(t.bindings).filter(([n])=>Object.hasOwn(o.bindings,n)||!n.startsWith("canvas_")||Object.values(e.nodes).some(r=>"binding"in r&&r.binding===n)))}}var me=e=>!!e&&typeof e=="object"&&!Array.isArray(e),tr=e=>Array.isArray(e)?e.map(tr):me(e)?Object.fromEntries(Object.keys(e).sort().map(t=>[t,tr(e[t])])):e,be=(e,t)=>JSON.stringify(tr(e))===JSON.stringify(tr(t));function Vn(e){return e.kind==="approval"?[e.onApprove,e.onReject]:e.kind==="parallel"?[...(e.branches||[]).map(t=>t.target),e.join]:e.kind==="condition"?[...(e.branches||[]).map(t=>t.target),e.otherwise]:"next"in e?[e.next]:[]}function ns(e,t,o,n,r={}){let i=[...cn(t),...dn(t,n)];if(!me(t)||!me(t.nodes)||!me(n?.bindings))return["WORKFLOW_DESIGNER_DOCUMENT_INVALID"];let a=new Set(["title","startAt","nodes","readability"]);for(let c of new Set([...Object.keys(e),...Object.keys(t)]))!a.has(c)&&!be(e[c],t[c])&&i.push(`WORKFLOW_DESIGNER_CODE_OWNED:${c}`);(o.workflowCode!==n.workflowCode||o.schemaVersion!==n.schemaVersion)&&i.push("WORKFLOW_DESIGNER_BINDING_IDENTITY");let s=r.catalog||$n(e,o),d=s.steps;for(let[c,l]of Object.entries(t.nodes)){if(!me(l)||l.id!==c||!["approval","handle","condition","cc","action","correction","end","parallel","join"].includes(l.kind)){i.push(`WORKFLOW_DESIGNER_NODE_INVALID:${c}`);continue}"taskPageCode"in l&&l.taskPageCode&&!s.taskPages[l.taskPageCode]&&i.push(`WORKFLOW_DESIGNER_PAGE_UNRELEASED:${c}`),l.kind==="action"&&!te(l)&&!d.some(p=>be(p.handler,l.handler)&&be(p.inputSchema,l.inputSchema)&&be(p.outputSchema,l.outputSchema))&&i.push(`WORKFLOW_DESIGNER_STEP_UNRELEASED:${c}`),["approval","handle"].includes(l.kind)&&"allowedOperations"in l&&l.allowedOperations&&(!Array.isArray(l.allowedOperations)||!l.allowedOperations.includes(l.kind==="handle"?"complete":"approve"))&&i.push(`WORKFLOW_DESIGNER_REQUIRED_ACTION:${c}.approve`);let f=e.nodes[c]||(l.kind==="approval"||l.kind==="handle"?Object.values(e.nodes).find(p=>{if(p.kind!==l.kind||!["approval","handle"].includes(p.kind)||!["fieldPolicy","administration","requiredOperations","taskPageCode"].every(A=>be(p[A],l[A])))return!1;let m=p;if(l.mode!==m.mode&&!m.administration?.modes?.includes(l.mode))return!1;let E=["none","optional","required"];return Object.entries(m.operationPolicy||{}).every(([A,O])=>{let y=l.operationPolicy?.[A];return be(O?.minimumOpinion,y?.minimumOpinion)&&E.indexOf(et(A,y))>=E.indexOf(_t(A,O))})}):void 0);if(!f&&["approval","handle","cc"].includes(l.kind)&&("binding"in l&&l.binding!==Jt(c)?i.push(`WORKFLOW_DESIGNER_APPROVAL_TEMPLATE_REQUIRED:${c}`):i.push(...es(l,s).map(p=>`${p}:${c}`))),(f?.kind==="approval"||f?.kind==="handle")&&(l.kind==="approval"||l.kind==="handle")){l.mode!==f.mode&&!f.administration?.modes?.includes(l.mode)&&i.push(`WORKFLOW_DESIGNER_MODE_NOT_ALLOWED:${c}`);for(let p of["requiredOperations","fieldPolicy","administration"])be(f[p],l[p])||i.push(`WORKFLOW_DESIGNER_CODE_OWNED:${c}.${p}`);for(let p of f.requiredOperations||[])l.allowedOperations&&!l.allowedOperations.includes(p)&&i.push(`WORKFLOW_DESIGNER_REQUIRED_ACTION:${c}.${p}`);for(let[p,m]of Object.entries(f.operationPolicy||{})){let E=l.operationPolicy?.[p],A=["none","optional","required"];(!be(m?.minimumOpinion,E?.minimumOpinion)||A.indexOf(et(p,E))<A.indexOf(_t(p,m)))&&i.push(`WORKFLOW_DESIGNER_CODE_OWNED:${c}.${p}.minimumOpinion`)}}"binding"in l&&!n.bindings[l.binding]&&i.push(`WORKFLOW_DESIGNER_BINDING_MISSING:${c}`)}be(e.readability?.logic,t.readability?.logic)||i.push("WORKFLOW_DESIGNER_CODE_OWNED:readability.logic");for(let[c,l]of Object.entries(n.bindings)){let f=o.bindings[c],p=Object.values(t.nodes).find(m=>"binding"in m&&m.binding===c&&c===Jt(m.id));!f&&p?i.push(...ts(l,s,r.allowIncomplete).map(m=>`${m}:${c}`)):!f&&!Object.values(o.bindings).some(m=>be(m,l))&&i.push(`WORKFLOW_DESIGNER_BINDING_UNRELEASED:${c}`),f&&!be(f,l)&&i.push(`WORKFLOW_DESIGNER_BINDING_CODE_OWNED:${c}`)}return i.push(...nr(t)),[...new Set(i)]}function Xd(e,t){if(t.type==="insert_parallel"){if(e.nodes[t.joinId]||t.joinId===t.id||t.branches.length<2||t.branches.length>8)throw new Error("WORKFLOW_DESIGNER_PARALLEL_INSERT_INVALID");let r=Xd(e,{type:"insert",from:t.from,target:t.target,node:{id:t.id,kind:"parallel",title:t.title,join:t.joinId,branches:t.branches.map(i=>({...i,target:t.joinId}))},...t.edge===void 0?{}:{edge:t.edge}});return r.nodes[t.joinId]={id:t.joinId,kind:"join",title:"\u5168\u90E8\u5B8C\u6210\u540E\u7EE7\u7EED",parallel:t.id,next:t.target},r}let o=structuredClone(e),n=(r,i,a)=>{if(r.kind==="approval")r.onApprove===i&&(r.onApprove=a),r.onReject===i&&(r.onReject=a);else if(r.kind==="condition"){for(let s of r.branches)s.target===i&&(s.target=a);r.otherwise===i&&(r.otherwise=a)}else if(r.kind==="parallel")for(let s of r.branches)s.target===i&&(s.target=a);else"next"in r&&r.next===i&&(r.next=a)};if(t.type==="insert"){let r=o.nodes[t.from];if(!r||o.nodes[t.node.id]||!Vn(r).includes(t.target)||!o.nodes[t.target])throw new Error("WORKFLOW_DESIGNER_INSERT_INVALID");if(o.nodes[t.node.id]=structuredClone(t.node),r.kind==="approval"){let i=t.edge==="reject"?"onReject":"onApprove";if(r[i]!==t.target)throw new Error("WORKFLOW_DESIGNER_INSERT_EDGE_INVALID");r[i]=t.node.id}else if(r.kind==="parallel"){if(typeof t.edge!="number"||r.branches[t.edge]?.target!==t.target)throw new Error("WORKFLOW_DESIGNER_INSERT_EDGE_INVALID");r.branches[t.edge].target=t.node.id}else if(r.kind==="condition")if(typeof t.edge=="number"&&r.branches[t.edge]?.target===t.target)r.branches[t.edge].target=t.node.id;else if(t.edge==="default"&&r.otherwise===t.target)r.otherwise=t.node.id;else throw new Error("WORKFLOW_DESIGNER_INSERT_EDGE_INVALID");else if("next"in r)r.next=t.node.id;else throw new Error("WORKFLOW_DESIGNER_INSERT_EDGE_INVALID")}else if(t.type==="remove_parallel_branch"){let r=o.nodes[t.nodeId];if(r?.kind!=="parallel"||r.branches.length<=2)throw new Error("WORKFLOW_PARALLEL_BRANCH_LIMIT");let a=ke(o).regions.find(s=>s.parallelNodeId===r.id)?.branches.find(s=>s.id===t.branchId);if(!a)throw new Error("WORKFLOW_DESIGNER_PARALLEL_BRANCH_MISSING");r.branches=r.branches.filter(s=>s.id!==t.branchId);for(let s of a.nodeIds)delete o.nodes[s]}else if(t.type==="remove"){let r=o.nodes[t.nodeId];if(r?.kind==="parallel"){let a=o.nodes[r.join],s=ke(o).regions.find(c=>c.parallelNodeId===r.id);if(a?.kind!=="join"||!s)throw new Error("WORKFLOW_DESIGNER_PARALLEL_PAIR_INVALID");let d=new Set([r.id,a.id,...s.branches.flatMap(c=>c.nodeIds)]);for(let c of Object.values(o.nodes))if(!d.has(c.id))for(let l of d)n(c,l,a.next);for(let c of d)delete o.nodes[c];return o.startAt===r.id&&(o.startAt=a.next),o}let i=t.reconnectTo||(r?.kind==="approval"?r.onApprove:r&&"next"in r?r.next:void 0);if(!r||!i||i===r.id||!o.nodes[i]||r.kind==="end"||r.kind==="correction"||r.kind==="join")throw new Error("WORKFLOW_DESIGNER_REMOVE_INVALID");for(let a of Object.values(o.nodes))n(a,r.id,i),(a.kind==="approval"||a.kind==="handle")&&a.returnTargets&&(a.returnTargets=a.returnTargets.filter(s=>s!==r.id)),(a.kind==="approval"||a.kind==="handle")&&a.returnPolicy&&(a.returnPolicy.targets=a.returnPolicy.targets.filter(s=>s.nodeId!==r.id));o.startAt===r.id&&(o.startAt=i),delete o.nodes[r.id]}else{let r=o.nodes[t.nodeId];if(!r)throw new Error("WORKFLOW_DESIGNER_NODE_MISSING");if(t.type==="node"){if("id"in t.patch||"kind"in t.patch)throw new Error("WORKFLOW_DESIGNER_NODE_ID_IMMUTABLE");Object.assign(r,t.patch)}else{if(r.kind!=="condition"||t.index<0||t.index>r.branches.length)throw new Error("WORKFLOW_DESIGNER_BRANCH_INVALID");r.branches[t.index]={when:structuredClone(t.when),target:t.target,...t.label?{label:t.label}:{}}}}return o}var Yd=(e,t)=>t.split(".").reduce((o,n)=>me(o)&&Object.hasOwn(o,n)?o[n]:void 0,e),Zd=(e,t)=>t.includes(",")?t.split(",").some(o=>Zd(e,o)):t==="unknown"?!0:t==="null"?e===null:t==="number"||t==="integer"?typeof e=="number"&&Number.isFinite(e)&&(t!=="integer"||Number.isInteger(e)):t==="array"?Array.isArray(e):t==="object"?me(e):typeof e===t;function Op(e,t,o){if(o.held)return{outcome:"held",reason:"\u5DF2\u6307\u5B9A\u4FDD\u7559\u5728\u539F\u7248\u672C"};let n=o.activeNodeIds?.length?o.activeNodeIds:o.currentNodeId?[o.currentNodeId]:[];if(!n.length)return{outcome:"excepted",reason:"\u5F53\u524D\u8FD0\u884C\u4F4D\u7F6E\u65E0\u6CD5\u786E\u5B9A"};if(n.some(s=>!t.nodes[s]))return{outcome:"excepted",reason:"\u5F53\u524D\u8282\u70B9\u5DF2\u88AB\u5220\u9664"};if(n.some(s=>e.nodes[s]?.kind!==t.nodes[s]?.kind))return{outcome:"excepted",reason:"\u5F53\u524D\u8282\u70B9\u7C7B\u578B\u5DF2\u6539\u53D8"};if((o.returnTargetNodeIds||[]).some(s=>!t.nodes[s]))return{outcome:"excepted",reason:"\u6B63\u5728\u9000\u56DE\u7684\u76EE\u6807\u8282\u70B9\u5DF2\u88AB\u5220\u9664"};if(!be(e.subject,t.subject)||!be(e.inputSchema,t.inputSchema))return{outcome:"excepted",reason:"\u7533\u8BF7\u6570\u636E\u6216\u53D8\u91CF\u5B9A\u4E49\u5DF2\u6539\u53D8\uFF0C\u9700\u8981\u660E\u786E\u7684\u6570\u636E\u8F6C\u6362"};if(o.forkNodeId){let s=e.nodes[o.forkNodeId],d=t.nodes[o.forkNodeId];if(s?.kind!=="parallel"||d?.kind!=="parallel"||s.join!==d.join)return{outcome:"excepted",reason:"\u6B63\u5728\u8FD0\u884C\u7684\u5E76\u884C\u5206\u652F\u6216\u6C47\u5408\u70B9\u5DF2\u6539\u53D8"};let c=ke(e).regions.find(f=>f.parallelNodeId===s.id),l=ke(t).regions.find(f=>f.parallelNodeId===d.id);for(let f of o.unarrivedBranchIds||[]){let p=l?.branches.find(m=>m.id===f);if(!p||n.some(m=>c?.branches.find(E=>E.id===f)?.nodeIds.includes(m)&&!p.nodeIds.includes(m)))return{outcome:"excepted",reason:"\u5C1A\u672A\u5B8C\u6210\u7684\u5E76\u884C\u5206\u652F\u6216\u5176\u5F53\u524D\u8282\u70B9\u5DF2\u6539\u53D8"}}}if(o.businessStepPending)return{outcome:"deferred",reason:"\u4E1A\u52A1\u6B65\u9AA4\u6267\u884C\u4E2D\uFF0C\u5B8C\u6210\u540E\u81EA\u52A8\u66F4\u65B0"};let r=new Set,i=[...n];for(;i.length;){let s=i.pop();r.has(s)||(r.add(s),i.push(...Vn(t.nodes[s]||{}).filter(d=>!!t.nodes[d])))}let a=En(t,"preview");for(let s of Object.values(t.nodes)){if(!r.has(s.id))continue;let d=s.kind==="condition"?s.branches.map(c=>c.when):s.kind==="action"?Object.values(s.inputs).filter(c=>c.source==="fact").map(c=>({op:"path",path:c.path})):[];for(let c of d)for(let l of xt(c).paths){let f=a.variables.find(m=>m.path===l),p=Yd(o.facts,l);if(p===void 0&&f?.source.kind==="step_output"&&r.has(f.source.nodeId)&&!n.includes(f.source.nodeId)){let m=new Set,E=[...n];for(;E.length;){let A=E.pop();A===f.source.nodeId||m.has(A)||(m.add(A),E.push(...Vn(t.nodes[A]||{}).filter(O=>!!t.nodes[O])))}if(!m.has(s.id))continue}if(!(p===void 0&&f&&!f.required&&(f.source.kind!=="step_output"||me(Yd(o.facts,`steps.${f.source.nodeId}`))))&&(p===void 0||f&&!Zd(p,f.type)))return{outcome:"excepted",reason:`\u540E\u7EED\u6761\u4EF6\u9700\u8981\u7684\u6570\u636E\u5728\u8BE5\u7533\u8BF7\u4E2D\u4E0D\u5B58\u5728\u6216\u7C7B\u578B\u4E0D\u517C\u5BB9\uFF1A${f?.label||l}`}}}return{outcome:"eligible"}}function nr(e){if(!me(e?.nodes))return["WORKFLOW_DESIGNER_DOCUMENT_INVALID"];let t=[];t.push(...fn(e),...pn(e),...ln(e),...Zi(e),...on(e));let o=Object.values(e.nodes);if(o.length>200||!o.length)return["WORKFLOW_DESIGNER_NODE_LIMIT"];for(let c of o)!me(c)||!["approval","handle","condition","cc","action","correction","end","parallel","join"].includes(c.kind)?t.push("WORKFLOW_DESIGNER_NODE_INVALID"):c.kind==="condition"&&(!Array.isArray(c.branches)||!c.branches.length||c.branches.length>32||c.branches.some(l=>!me(l)||!me(l.when)||typeof l.target!="string"))&&t.push(`WORKFLOW_DESIGNER_BRANCH_INVALID:${c.id}`);if(t.length)return[...new Set(t)];let n=En(e,"draft").variables,r=0,i=(c,l,f=0)=>{if(!me(c)||f>16||++r>4096)return t.push(`WORKFLOW_DESIGNER_EXPRESSION_LIMIT:${l}`),"invalid";if(c.op==="literal"){let p=c.value;return p===null?"null":Array.isArray(p)?"array":typeof p=="object"?"object":typeof p}if(c.op==="path"){let p=n.find(E=>E.path===c.path);(!p||p.type==="unknown")&&t.push(`WORKFLOW_DESIGNER_VARIABLE_UNKNOWN:${l}:${c.path}`);let m=p?.type.split(",").find(E=>E!=="null")||p?.type||"unknown";return m==="integer"?"number":m}if(c.op==="and"||c.op==="or"){if(!Array.isArray(c.values)||c.values.length<1||c.values.length>32)return t.push(`WORKFLOW_DESIGNER_CONDITION_GROUP:${l}`),"invalid";for(let p of c.values)i(p,l,f+1)!=="boolean"&&t.push(`WORKFLOW_DESIGNER_CONDITION_BOOLEAN:${l}`)}else if(c.op==="not"||c.op==="exists"){let p=i(c.value,l,f+1);c.op==="not"&&p!=="boolean"&&t.push(`WORKFLOW_DESIGNER_CONDITION_BOOLEAN:${l}`)}else if(["eq","neq","gt","gte","lt","lte","in","contains"].includes(c.op)&&"left"in c){let p=i(c.left,l,f+1),m=i(c.right,l,f+1);(c.op==="in"?m==="array":c.op==="contains"?p==="array"||p==="string"&&m==="string":["gt","gte","lt","lte"].includes(c.op)?p===m&&["number","string"].includes(p):p===m||p==="null"||m==="null")||t.push(`WORKFLOW_DESIGNER_CONDITION_TYPE:${l}`)}else t.push(`WORKFLOW_DESIGNER_CONDITION_OPERATOR:${l}`);return"boolean"},a=new Set,s=new Set,d=c=>{if(s.has(c)){t.push(`WORKFLOW_DESIGNER_CYCLE:${c}`);return}if(a.has(c))return;let l=e.nodes[c];if(!l){t.push(`WORKFLOW_DESIGNER_TARGET_MISSING:${c}`);return}s.add(c);for(let f of Vn(l))d(f);s.delete(c),a.add(c)};for(let c of o){if((!/^[a-z][a-z0-9_-]{0,127}$/.test(c.id)||e.nodes[c.id]!==c)&&t.push(`WORKFLOW_DESIGNER_NODE_ID:${c.id}`),c.kind==="parallel")for(let l of c.branches)l.when&&i(l.when,c.id)!=="boolean"&&t.push(`WORKFLOW_DESIGNER_CONDITION_BOOLEAN:${c.id}`);if(c.kind==="condition"){(!c.branches.length||c.branches.length>32)&&t.push(`WORKFLOW_DESIGNER_BRANCH_LIMIT:${c.id}`);for(let l of c.branches)i(l.when,c.id)!=="boolean"&&t.push(`WORKFLOW_DESIGNER_CONDITION_BOOLEAN:${c.id}`)}}d(e.startAt);for(let c of o)!a.has(c.id)&&c.kind!=="correction"&&t.push(`WORKFLOW_DESIGNER_UNREACHABLE:${c.id}`);return[...new Set(t)]}function hp(e){let t={...e.readability?.variables},o=(n,r="",i=0)=>{if(!(i>8||!me(n)))if(n.type==="object"&&me(n.properties))for(let[a,s]of Object.entries(n.properties))o(s,r?`${r}.${a}`:a,i+1);else r&&(t[r]||={label:String(n.title||r)})};o(e.inputSchema);for(let n of Object.values(e.nodes))n.kind==="action"&&o(n.outputSchema,`steps.${n.id}`);return En({...e,readability:{...e.readability,variables:t}},"draft").variables.filter(n=>n.type!=="unknown")}function or(e,t){return(t?(Array.isArray(e)?e:[]).filter(Array.isArray):[Array.isArray(e)?e.filter(n=>!Array.isArray(n)):[]]).map(n=>n[n.length-1]?.value).filter(n=>!!n)}var Qd=["province","city","district","street"];function ec(e){for(let t=Qd.length-1;t>=0;t-=1){let o=Qd[t],n=o?e?.[o]:void 0;if(o&&n?.value)return{path:`${o}.value`,value:n.value}}}function os(e){return!!(e&&typeof e=="object"&&!Array.isArray(e)&&"value"in e)}function rs(e){return os(e)?String(e.value):e}function tc(e){return(Array.isArray(e)?e:[e]).map(rs)}function nc(e,t,o){let n=new Set(Object.keys(t.fields)),r=a=>{if(!n.has(a))throw new Error(`OPENXIANGDA_RESOURCE_QUERY_FIELD_NOT_DECLARED:${e}:${a}`);return a},i=o.where?[Fn(e,t,o.where)]:[];if(o.createdBy!==void 0&&o.createdBy!==""&&i.push({field:"created_by",operator:"eq",value:o.createdBy}),o.keyword?.trim()){let a=(t.list?.searchableFields||[]).filter(s=>n.has(s));a.length&&i.push({or:a.map(s=>({field:r(s),operator:"contains",value:o.keyword.trim()}))})}for(let[a,s]of Object.entries(o.filters||{})){if(s==null||s===""||Array.isArray(s)&&s.length===0||!n.has(a))continue;let d=t.fields[a];if(d)if(d.type==="json")i.push({field:a,operator:"jsonContains",value:s});else if(d.type==="address"){let c=ec(s);c&&i.push({field:a,operator:"jsonContains",path:c.path,value:c.value})}else if(d.type==="cascade.single"||d.type==="cascade.multiple"){let c=or(s,d.type==="cascade.multiple");c.length&&i.push({field:a,operator:d.type==="cascade.multiple"?"hasAny":"has",value:d.type==="cascade.multiple"?c:c[0]})}else if((d.type==="date-range"||d.type==="datetime-range")&&s!==null&&typeof s=="object"&&!Array.isArray(s)){let c=s;c.start!==void 0&&c.end!==void 0&&i.push({field:a,operator:"overlaps",value:{start:c.start,end:c.end}})}else if(Array.isArray(s)&&s.length===2&&["date","datetime","number","money","percent"].includes(d.widget))s[0]!==void 0&&s[0]!==null&&s[0]!==""&&i.push({field:a,operator:"gte",value:s[0]}),s[1]!==void 0&&s[1]!==null&&s[1]!==""&&i.push({field:a,operator:"lte",value:s[1]});else if(d.type==="option.multiple"||d.type==="user.multiple"||d.type==="department.multiple"||d.type==="resource-ref.multiple")i.push({field:a,operator:"hasAny",value:tc(s)});else{let[c]=tc(s);i.push({field:a,operator:"eq",value:c})}}return i.length?{and:i}:void 0}function Fn(e,t,o){if("and"in o)return{and:o.and.map(a=>Fn(e,t,a))};if("or"in o)return{or:o.or.map(a=>Fn(e,t,a))};if("not"in o)return{not:Fn(e,t,o.not)};if(o.path!==void 0)return o;if(o.operator==="isEmpty"||o.operator==="isNotEmpty")return{field:o.field,operator:o.operator};let n=t.fields[o.field];if(o.operator==="has"){let a=n?.type==="cascade.single"&&Array.isArray(o.value)&&o.value.length>0&&o.value.every(os);return{...o,value:a?or(o.value,!1)[0]:rs(o.value)}}if(["in","between","hasAny","hasAll"].includes(o.operator)){if(!Array.isArray(o.value))return o;let a=n?.type==="cascade.multiple"&&["hasAny","hasAll"].includes(o.operator)&&o.value.length>0&&o.value.every(s=>Array.isArray(s)&&s.length>0&&s.every(os));return{...o,value:a?or(o.value,!0):o.value.map(rs)}}let r=nc(e,t,{page:1,pageSize:20,filters:{[o.field]:o.value}}),i=r&&"and"in r?r.and[0]:void 0;return i&&"field"in i?{...i,operator:o.operator}:o}var oc="openxiangda.workflow-source-bundle/v1",rc=3*1024*1024,je=(e,t)=>e.replace(/^sha256:/,"")===t.replace(/^sha256:/,""),ht=(e,t)=>je(e.definitionDigest,t.definitionDigest)&&je(e.bindingDigest,t.bindingDigest),rr=e=>!!e&&typeof e=="object"&&!Array.isArray(e),Ot=(e,t)=>rr(e)&&Object.keys(e).every(o=>t.includes(o)&&!["__proto__","constructor","prototype"].includes(o)),is=e=>typeof e=="string"&&/^[A-Za-z][A-Za-z0-9_-]{0,127}$/.test(e),Np=e=>typeof e=="string"&&/^(sha256:)?[a-f0-9]{64}$/.test(e);function ic(e,t,o){let n=new Set(Object.values(e.nodes).flatMap(i=>"taskPageCode"in i&&i.taskPageCode?[i.taskPageCode]:[])),r=new Map;for(let i of Object.values(e.nodes))i.kind==="action"&&r.set(`${i.handler.code}@${i.handler.version}`,{code:i.handler.code,version:i.handler.version,digest:o({handler:i.handler,inputSchema:i.inputSchema,outputSchema:i.outputSchema})});return{taskPages:[...n].sort().map(i=>({code:i,digest:o(e.taskPages?.[i])})),steps:[...r.values()].sort((i,a)=>i.code.localeCompare(a.code)||i.version-a.version),bindingKeys:Object.keys(t.bindings).sort(),roles:[...new Set(Object.values(t.bindings).flatMap(fi))].sort()}}function sc(e,t){try{return Rp(e,t)}catch{return["WORKFLOW_BUNDLE_CORRUPT"]}}function Rp(e,t){let o=[];if(!Ot(e,["schemaVersion","appCode","workflowCode","origin","definition","binding","references","handling"])||e.schemaVersion!==oc||!is(e.appCode)||!is(e.workflowCode))return["WORKFLOW_BUNDLE_CORRUPT"];if(new TextEncoder().encode(JSON.stringify(e)).length>rc)return["WORKFLOW_BUNDLE_TOO_LARGE"];let n=e,r=n.origin;if(!Ot(r,["environmentKey","headRevision","definitionVersion","bindingVersion","definitionDigest","bindingDigest","handlingDigest","catalogDigest"])||!["preproduction","production"].includes(r.environmentKey)||![r.headRevision,r.definitionVersion,r.bindingVersion].every(i=>Number.isSafeInteger(i)&&i>=1)||![r.definitionDigest,r.bindingDigest,r.handlingDigest,r.catalogDigest].every(Np))return["WORKFLOW_BUNDLE_CORRUPT"];if(!rr(n.definition?.nodes)||!rr(n.binding?.bindings)||n.definition.code!==n.workflowCode||n.binding.workflowCode!==n.workflowCode)return["WORKFLOW_BUNDLE_CORRUPT"];if(nr(n.definition).length&&o.push("WORKFLOW_BUNDLE_DEFINITION_INVALID"),(!je(t(n.definition),r.definitionDigest)||!je(t(n.binding),r.bindingDigest)||!je(t(n.handling),r.handlingDigest)||!je(t(n.references),r.catalogDigest))&&o.push("WORKFLOW_BUNDLE_CORRUPT"),je(t(ic(n.definition,n.binding,t)),t(n.references))||o.push("WORKFLOW_BUNDLE_CATALOG_CORRUPT"),!rr(n.handling)||Object.keys(n.handling).length>200)o.push("WORKFLOW_BUNDLE_HANDLING_INVALID");else for(let[i,a]of Object.entries(n.handling)){if(!n.definition.nodes[i]||!Ot(a,["mode","operations","assignee"])){o.push("WORKFLOW_BUNDLE_HANDLING_INVALID");continue}if(a.mode!==void 0&&!["single","any","all","sequence"].includes(a.mode)&&o.push("WORKFLOW_BUNDLE_HANDLING_INVALID"),a.operations!==void 0){let d=["complete","approve","reject","save_form","return","transfer","delegate","add_assignee"];if(!Ot(a.operations,d))o.push("WORKFLOW_BUNDLE_HANDLING_INVALID");else for(let c of Object.values(a.operations))(!Ot(c,["enabled","label","opinion","commentRequired","reasonRequired"])||c.enabled!==void 0&&typeof c.enabled!="boolean"||c.commentRequired!==void 0&&typeof c.commentRequired!="boolean"||c.reasonRequired!==void 0&&typeof c.reasonRequired!="boolean"||c.label!==void 0&&(typeof c.label!="string"||!c.label.trim()||c.label.length>255)||c.opinion!==void 0&&!["none","optional","required"].includes(c.opinion))&&o.push("WORKFLOW_BUNDLE_HANDLING_INVALID")}let s=a.assignee;s&&(s.kind==="named_people"?!Ot(s,["kind","count"])||!Number.isSafeInteger(s.count)||s.count<0||s.count>200:s.kind!=="roles"||!Ot(s,["kind","roleCodes"])||!Array.isArray(s.roleCodes)||s.roleCodes.length>200||!s.roleCodes.every(is))&&o.push("WORKFLOW_BUNDLE_HANDLING_INVALID")}return[...new Set(o)]}function wp(e){if(!e.head)return"not_active";if(ht(e.declared,e.head))return"in_sync";let t=e.base||e.activeDeclaration;return t&&ht(t,e.head)?"ahead":!t||ht(e.declared,t)?"behind":"diverged"}function Tp(e){return e.head?ht(e.declared,e.head)?"reuse":e.activeDeclaration&&ht(e.declared,e.activeDeclaration)?"preserve":e.base&&ht(e.base,e.head)||e.activeDeclaration&&ht(e.activeDeclaration,e.head)?"advance":"diverged":"advance"}function Cp(e,t,o,n){let r=sc(o,n);if(r.length)return r;r.push(...ns(e,o.definition,t,o.binding).map(a=>`WORKFLOW_IMPORT_CODE_OWNED_DRIFT:${a}`));for(let a of o.references.taskPages)(!e.taskPages?.[a.code]||!je(n(e.taskPages[a.code]),a.digest))&&r.push(`WORKFLOW_IMPORT_CODE_OWNED_DRIFT:taskPage:${a.code}`);let i=$n(e,t).steps.map(a=>({code:a.handler.code,version:a.handler.version,digest:n({handler:a.handler,inputSchema:a.inputSchema,outputSchema:a.outputSchema})}));for(let a of o.references.steps)i.some(s=>s.code===a.code&&s.version===a.version&&je(s.digest,a.digest))||r.push(`WORKFLOW_IMPORT_CODE_OWNED_DRIFT:step:${a.code}@${a.version}`);return[...new Set(r)]}function Sp(e,t){let o=1024,n=(r,i=0)=>{if(--o<0||i>32)throw new Error("WORKFLOW_V2_EXPRESSION_LIMIT");let a=s=>n(s,i+1);switch(r?.op){case"literal":return r.value;case"path":{if(!/^[A-Za-z][A-Za-z0-9_.]{0,254}$/.test(r.path||"")||r.path.split(".").some(s=>["__proto__","prototype","constructor"].includes(s)))throw new Error("WORKFLOW_V2_EXPRESSION_PATH_INVALID");return r.path.split(".").reduce((s,d)=>!s||typeof s!="object"||Array.isArray(s)||!Object.hasOwn(s,d)?void 0:s[d],t)}case"eq":return a(r.left)===a(r.right);case"neq":return a(r.left)!==a(r.right);case"gt":case"gte":case"lt":case"lte":{let s=a(r.left),d=a(r.right);if(s===void 0||d===void 0)return!1;let c=s===d?0:s>d?1:-1;return r.op==="gt"?c>0:r.op==="gte"?c>=0:r.op==="lt"?c<0:c<=0}case"in":{let s=a(r.left),d=a(r.right);return Array.isArray(d)&&d.includes(s)}case"contains":{let s=a(r.left),d=a(r.right);return Array.isArray(s)?s.includes(d):typeof s=="string"&&s.includes(String(d))}case"and":return r.values.every(s=>!!a(s));case"or":return r.values.some(s=>!!a(s));case"not":return!a(r.value);case"exists":{let s=a(r.value);return s!=null}default:throw new Error("WORKFLOW_V2_EXPRESSION_OPERATOR_INVALID")}};return n(e)}var ss="openxiangda.workflow-definition/v2",as="openxiangda.workflow-binding/v2";var K={type:"string",minLength:1},dc={type:"string",pattern:"^[A-Za-z][A-Za-z0-9_]{0,62}$"},cs={type:"object",required:["op"],properties:{op:{enum:["literal","path","eq","neq","gt","gte","lt","lte","in","contains","and","or","not","exists"]},value:{},path:{type:"string",pattern:"^[A-Za-z][A-Za-z0-9_.]{0,254}$"},left:{type:"object"},right:{type:"object"},values:{type:"array",minItems:1,items:{type:"object"}}}},kp={type:"object",additionalProperties:!1,required:["id","kind","title","binding","next","emptyPolicy"],properties:{id:K,kind:{const:"cc"},title:K,binding:K,next:K,emptyPolicy:{enum:["block","skip"]},notify:{type:"boolean"},administration:{type:"object",additionalProperties:!1,properties:{assigneeProviders:{type:"array",minItems:1,maxItems:3,uniqueItems:!0,items:{enum:["fixed_users","app_role","app_role_in_scope"]}}}}}},ds={type:"object",additionalProperties:!1,required:["afterSeconds","everySeconds","max","to"],properties:{afterSeconds:{type:"integer",minimum:1,maximum:2592e3},everySeconds:{type:"integer",minimum:1,maximum:2592e3},max:{type:"integer",minimum:1,maximum:10},to:{type:"array",minItems:1,maxItems:1,items:{const:"handlers"}}}},vp={type:"object",additionalProperties:!1,required:["id","kind","title","next","handler","inputSchema","outputSchema","inputs"],properties:{id:K,kind:{const:"action"},title:K,next:K,handler:{type:"object",additionalProperties:!1,required:["code","version","mode"],properties:{code:{type:"string",pattern:"^[a-z][a-z0-9-]{0,100}$"},version:{type:"integer",minimum:1,maximum:1e6},mode:{enum:["pure","reconciled-effect"]},dataTransaction:{const:!0}},allOf:[{if:{required:["dataTransaction"]},then:{properties:{mode:{const:"reconciled-effect"}}}}]},notification:{type:"object",additionalProperties:!1,required:["template","recipients"],properties:{template:{const:"workflow_message"},recipients:{oneOf:[{type:"object",additionalProperties:!1,required:["provider"],properties:{provider:{const:"initiator"}}},{type:"object",additionalProperties:!1,required:["provider","users"],properties:{provider:{const:"fixed_users"},users:{type:"array",minItems:1,maxItems:50,uniqueItems:!0,items:{type:"string",minLength:1,maxLength:255}}}},{type:"object",additionalProperties:!1,required:["provider","roleCode"],properties:{provider:{const:"app_role"},roleCode:K}},{type:"object",additionalProperties:!1,required:["provider","inputPath"],properties:{provider:{const:"form_field_users"},inputPath:K}}]}}},inputSchema:{type:"object"},outputSchema:{type:"object"},inputs:{type:"object",maxProperties:32,additionalProperties:{oneOf:[{type:"object",additionalProperties:!1,required:["source","path"],properties:{source:{const:"fact"},path:{type:"string",minLength:1,maxLength:256}}},{type:"object",additionalProperties:!1,required:["source","value"],properties:{source:{const:"literal"},value:{}}}]}}}},ac={type:"object",additionalProperties:!1,required:["targets"],properties:{targets:{type:"array",maxItems:20,items:{type:"object",additionalProperties:!1,required:["nodeId","routes","defaultRoute"],properties:{nodeId:K,routes:{type:"array",minItems:1,maxItems:2,uniqueItems:!0,items:{enum:["replay","resume"]}},defaultRoute:{enum:["replay","resume"]}}}}}},Pp={oneOf:[{type:"object",additionalProperties:!1,required:["id","kind","title","binding","mode","next","allowedOperations","requiredOperations"],properties:{id:K,kind:{const:"handle"},title:K,reminders:ds,binding:K,mode:{enum:["single","any","all","sequence"]},next:K,emptyPolicy:{const:"block"},taskPageCode:{type:"string",pattern:"^[A-Za-z][A-Za-z0-9_-]{0,63}$"},allowedOperations:{type:"array",uniqueItems:!0,items:{enum:["complete","save_form","return","transfer","delegate"]}},requiredOperations:{type:"array",uniqueItems:!0,items:{enum:["complete","save_form","return","transfer","delegate"]}},returnPolicy:ac,returnTargets:{type:"array",items:K,uniqueItems:!0},operationPolicy:{type:"object",additionalProperties:!1,properties:Object.fromEntries(["complete","save_form","return","transfer","delegate"].map(e=>[e,{type:"object",additionalProperties:!1,minProperties:1,properties:{label:{type:"string",minLength:1,maxLength:40},...e!=="save_form"?{opinion:{enum:["none","optional","required"]},minimumOpinion:{enum:["none","optional","required"]}}:{},...e==="complete"?{commentRequired:{type:"boolean"}}:{},...["return","transfer","delegate"].includes(e)?{reasonRequired:{type:"boolean"}}:{}}}]))},administration:{type:"object",additionalProperties:!1,properties:{modes:{type:"array",uniqueItems:!0,minItems:1,maxItems:4,items:{enum:["single","any","all","sequence"]}},assigneeProviders:{type:"array",uniqueItems:!0,minItems:1,maxItems:3,items:{enum:["fixed_users","app_role","app_role_in_scope"]}},operations:{type:"array",uniqueItems:!0,minItems:1,maxItems:5,items:{enum:["complete","save_form","return","transfer","delegate"]}}}},fieldPolicy:{type:"object",additionalProperties:!1,properties:{default:{enum:["hidden","readonly","edit","edit_required"]},fields:{type:"object",additionalProperties:{enum:["hidden","readonly","edit","edit_required"]}}}}}},{type:"object",additionalProperties:!1,required:["id","kind","title","binding","mode","onApprove","onReject"],properties:{id:K,kind:{const:"approval"},reminders:ds,title:K,binding:K,mode:{enum:["single","any","all","sequence"]},emptyPolicy:{enum:["block","skip"]},initiatorApprovalPolicy:{enum:["manual","auto_approve"]},completionDeadline:{type:"object",additionalProperties:!1,required:["afterSeconds","action"],properties:{afterSeconds:{type:"integer",minimum:1,maximum:2592e3},action:{const:"approve"}}},onApprove:K,onReject:K,taskPageCode:{type:"string",pattern:"^[A-Za-z][A-Za-z0-9_-]{0,63}$"},operationPolicy:{type:"object",additionalProperties:!1,properties:Object.fromEntries(qe.map(e=>[e,{type:"object",additionalProperties:!1,minProperties:1,properties:{label:{type:"string",minLength:1,maxLength:40,pattern:"^(?!.*[\\u0000-\\u001f\\u007f])(?=.*\\S).*$"},...e!=="save_form"?{opinion:{enum:["none","optional","required"]},minimumOpinion:{enum:["none","optional","required"]}}:{},...["complete","approve","reject"].includes(e)?{commentRequired:{type:"boolean"}}:{},...["transfer","delegate","add_assignee","return"].includes(e)?{reasonRequired:{type:"boolean"}}:{}}}]))},administration:{type:"object",additionalProperties:!1,properties:{modes:{type:"array",minItems:1,maxItems:4,uniqueItems:!0,items:{enum:["single","any","all","sequence"]}},assigneeProviders:{type:"array",minItems:1,maxItems:3,uniqueItems:!0,items:{enum:["fixed_users","app_role","app_role_in_scope"]}},operations:{type:"array",minItems:1,maxItems:8,uniqueItems:!0,items:{enum:[...qe]}}}},requiredOperations:{type:"array",minItems:1,maxItems:7,uniqueItems:!0,items:{enum:[...qe]}},allowedOperations:{type:"array",uniqueItems:!0,items:{enum:["approve","reject","return","transfer","delegate","add_assignee","resubmit","save_form","admin_reassign","admin_override"]}},returnPolicy:ac,returnTargets:{type:"array",uniqueItems:!0,items:K},fieldPolicy:{type:"object",additionalProperties:!1,properties:{default:{enum:["hidden","readonly","edit","edit_required"]},fields:{type:"object",additionalProperties:{enum:["hidden","readonly","edit","edit_required"]}}}}}},{type:"object",additionalProperties:!1,required:["id","kind","branches","otherwise"],properties:{id:K,kind:{const:"condition"},title:{type:"string"},branches:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["when","target"],properties:{when:cs,target:K,label:{type:"string"}}}},otherwise:K}},{type:"object",additionalProperties:!1,required:["id","kind","title","outcome"],properties:{id:K,kind:{const:"end"},title:K,outcome:K}},kp,vp,{type:"object",additionalProperties:!1,required:["id","kind","title","taskPageCode","next"],properties:{id:K,kind:{const:"correction"},title:K,reminders:ds,taskPageCode:{type:"string",pattern:"^[A-Za-z][A-Za-z0-9_-]{0,63}$"},next:K}}]},cc={$id:ss,type:"object",additionalProperties:!1,required:["schemaVersion","code","title","acceptedCommandDeactivationPolicy","subject","startAt","inputSchema","nodes"],properties:{schemaVersion:{const:ss},authoring:{type:"object",additionalProperties:!1,properties:{businessSteps:{type:"array",maxItems:100,items:{type:"object",additionalProperties:!1,required:["title","handler","inputSchema","outputSchema"],properties:{title:{type:"string",minLength:1,maxLength:160},handler:{type:"object",additionalProperties:!1,required:["code","version","mode"],properties:{code:{type:"string",pattern:"^[a-z][a-z0-9_-]{0,127}$"},version:{type:"integer",minimum:1},mode:{enum:["pure","reconciled-effect"]},dataTransaction:{const:!0}}},inputSchema:{type:"object"},outputSchema:{type:"object"}}}}}},code:{type:"string",pattern:"^[A-Za-z][A-Za-z0-9_-]{0,127}$"},title:K,launchPreflight:{type:"object",additionalProperties:!1,required:["requiredApprovalNodes"],properties:{requiredApprovalNodes:{type:"array",minItems:1,maxItems:20,uniqueItems:!0,items:{type:"string",pattern:"^[A-Za-z][A-Za-z0-9_-]{0,127}$"}}}},approvedDelegation:{type:"object",additionalProperties:!1,required:["confirmationNodeId","confirmer","requestsField","maxRequests"],properties:{confirmationNodeId:{type:"string",pattern:"^[A-Za-z][A-Za-z0-9_-]{0,127}$"},confirmer:{enum:["initiator","delegate"]},requestsField:{type:"string",pattern:"^[A-Za-z][A-Za-z0-9_]{0,62}$"},maxRequests:{type:"integer",minimum:1,maximum:500}}},commandHandlers:{type:"object",additionalProperties:!1,minProperties:1,properties:Object.fromEntries(["approve","reject","withdraw","resubmit"].map(e=>[e,{type:"object",additionalProperties:!1,required:["operationCode"],properties:{operationCode:{type:"string",pattern:"^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$"},...e==="approve"?{transitionPolicy:{const:"workflow"}}:{},...e==="resubmit"?{derivedSubjectFields:{type:"array",minItems:1,maxItems:32,uniqueItems:!0,items:{type:"string",pattern:"^[A-Za-z][A-Za-z0-9_]{0,62}$"}}}:{}}}]))},taskPages:{type:"object",minProperties:1,maxProperties:16,propertyNames:{pattern:"^[A-Za-z][A-Za-z0-9_-]{0,63}$"},additionalProperties:{type:"object",additionalProperties:!1,required:["title","fields"],properties:{title:{type:"string",minLength:1,maxLength:160},fields:{type:"array",minItems:1,maxItems:200,items:{type:"object",additionalProperties:!1,required:["code"],properties:{code:{type:"string",pattern:"^[A-Za-z][A-Za-z0-9_]{0,62}$"},readonly:{type:"boolean"},required:{type:"boolean"},visibleWhen:cs,requiredWhen:cs}}}}}},acceptedCommandDeactivationPolicy:{enum:["finish-pinned","cancel-on-deactivate"]},rejectionNotification:{type:"object",additionalProperties:!1,required:["recipient","title","summary"],properties:{recipient:{const:"record_last_modifier"},title:{type:"string",minLength:1,maxLength:160,pattern:"\\S"},summary:{type:"string",minLength:1,maxLength:500,pattern:"\\S"}}},instanceCommands:{type:"object",additionalProperties:!1,minProperties:1,properties:{withdraw:{type:"object",additionalProperties:!1,minProperties:1,properties:{beforeFact:{type:"string",pattern:"^[A-Za-z][A-Za-z0-9_]{0,62}$"},reasonRequired:{type:"boolean"}}},terminate:{type:"object",additionalProperties:!1,required:["capability"],properties:{capability:{type:"string",maxLength:255,pattern:"^app:[a-z][a-z0-9]*(?:-[a-z0-9]+)*:[A-Za-z0-9:._-]+$"},beforeFact:{type:"string",pattern:"^[A-Za-z][A-Za-z0-9_]{0,62}$"}}}}},subject:{type:"object",additionalProperties:!1,required:["resourceCode","factProjection","summaryFields"],properties:{resourceCode:{type:"string",pattern:"^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"},factProjection:{type:"object",minProperties:1,maxProperties:64,propertyNames:{pattern:"^[A-Za-z][A-Za-z0-9_.]{0,127}$"},additionalProperties:{type:"string",pattern:"^[A-Za-z][A-Za-z0-9_]{0,62}$"}},summaryFields:{type:"array",maxItems:16,uniqueItems:!0,items:dc}}},startAt:K,inputSchema:{type:"object",required:["type","additionalProperties"],properties:{type:{const:"object"},additionalProperties:{const:!1}}},organizationContext:{type:"object",additionalProperties:!1,properties:{department:{type:"object",additionalProperties:!1,required:["source"],properties:{source:{enum:["none","user_primary_department","choose_if_multiple","always_choose","fixed","from_input","from_role_scope"]},required:{type:"boolean"},value:{type:"string"},path:{type:"string"},dimension:{type:"string"}}}}},nodes:{type:"object",minProperties:1,maxProperties:200,additionalProperties:Pp}}},lc={$id:as,type:"object",additionalProperties:!1,required:["schemaVersion","workflowCode","bindings"],properties:{schemaVersion:{const:as},workflowCode:K,bindings:{type:"object",maxProperties:200,additionalProperties:{type:"object",additionalProperties:!1,required:["provider"],allOf:[{if:{required:["roleCodes"]},then:{properties:{provider:{enum:["app_role","app_role_in_scope"]}},not:{anyOf:[{required:["roleCode"]},{required:["candidateField"]}]}}},{if:{required:["candidateField"]},then:{required:["inputPath"],properties:{provider:{const:"form_field_users"}},not:{anyOf:[{required:["roleCode"]},{required:["scope"]},{required:["routing"]}]}}},{if:{required:["selectedInputPath"]},then:{properties:{provider:{enum:["app_role","app_role_in_scope"]}},anyOf:[{required:["roleCode"]},{required:["roleCodes"]}],not:{anyOf:[{required:["candidateField"]},{required:["inputPath"]},{required:["routing"]}]}}}],properties:{provider:{enum:["fixed_users","initiator","input_users","form_field_users","department_supervisor","supervisor_chain","app_role","app_role_in_scope","business_relation","previous_node_actor","initiator_select","application_provider"]},users:{type:"array",uniqueItems:!0,items:K},inputPath:{type:"string"},selectedInputPath:{type:"string",maxLength:255,pattern:"^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z][A-Za-z0-9_-]*)*$"},candidateField:dc,from:{oneOf:[{const:"initiator"},{type:"object",additionalProperties:!1,required:["field"],properties:{field:{type:"string",maxLength:255}}}]},until:{oneOf:[{const:"top"},{type:"object",additionalProperties:!1,required:["level"],properties:{level:{type:"integer",minimum:1,maximum:20}}},{type:"object",additionalProperties:!1,required:["roleCode"],properties:{roleCode:K}}]},continuous:{type:"boolean"},missing:{enum:["skip_level","block"]},departmentIdFrom:{type:"string"},level:{type:"integer",minimum:1,maximum:20},fallbackToAncestorSupervisor:{type:"boolean"},roleCode:{type:"string"},roleCodes:ui,scope:{type:"object",additionalProperties:!1,required:["dimension"],properties:{dimension:K,valueFrom:{type:"string"},value:{type:"string"}}},relationCode:{type:"string"},resourceCode:{type:"string"},resourceIdFrom:{type:"string"},providerCode:{type:"string"},min:{type:"integer",minimum:1,maximum:200},max:{type:"integer",minimum:1,maximum:200},delegatable:{type:"boolean"},routing:vi}}}}};var Lp="41650e0d9b0e64714328985956d88ff9af1cac04027723bbbe625d2d90baf6a2";0&&(module.exports={APPLICATION_AGENT_LIMITS_V2,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_RESOURCE_MAX_FIELDS,DATA_SUBTABLE_DEFAULT_TOTAL_ROWS,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,FIELD_VALUE_SCHEMAS,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_HIGH_DENSITY_ARTIFACT_CAPACITY_V2,NATIVE_ROLE_MEMBERSHIP_BATCH_MAX_BYTES,NATIVE_ROLE_MEMBERSHIP_BATCH_MAX_ITEMS,NATIVE_UNIQUE_KEY_MAX_BYTES,NATIVE_UNIQUE_KEY_NORMALIZERS,NativeApplicationAgentContractError,NativeConfigurationCompilerError,NativeDataFieldContractV2Error,NativeDataPolicyExpressionV2Error,NativeDecimalLifecycleContractError,NativeEventActionContractError,NativeParentReadPolicyError,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,RICH_TEXT_POLICY_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_DEFAULT_RECIPIENTS,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_MAX_INPUTS,WORKFLOW_LAUNCH_PREFLIGHT_PROVIDERS,WORKFLOW_PARALLEL_MAX_BRANCHES,WORKFLOW_PARALLEL_MIN_BRANCHES,WORKFLOW_PLATFORM_NOTIFY_CAPABILITY,WORKFLOW_PLATFORM_NOTIFY_HANDLER,WORKFLOW_PLATFORM_NOTIFY_INPUT_SCHEMA,WORKFLOW_PLATFORM_NOTIFY_OUTPUT_SCHEMA,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_SOURCE_BUNDLE_MAX_BYTES,WORKFLOW_SOURCE_BUNDLE_SCHEMA,WORKFLOW_STEP_DATA_COMMAND_SCHEMA,WORKFLOW_STEP_DATA_RESOLUTION_SCHEMA,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,assertApplicationAgentInstructionPathV2,assertDevelopmentConfigurationManifest,assertDevelopmentConfigurationResult,assertNativeRoleMembershipBatchInput,assertWorkflowNativeStageGuard,assertWorkflowNativeStagePolicy,assertWorkflowNativeStageSourceGuard,assertWorkflowOwnedSubjectCreate,assertWorkflowOwnedSubjectCreateResources,buildResourceWhere,canonicalDataBusinessIntent,classifyWorkflowAdoption,classifyWorkflowSourceDeployment,compileAdvancedWhere,compileApplicationAgentsV2,compileNativeApplicationConfiguration,compileNativeEventAction,compileNativeEventCapturePlansV2,compileRequiredPlatformCapabilitiesV3,compileWorkflowBusinessStepHandlers,createDevelopmentConfigurationManifest,createWorkflowHumanNode,dataOwnedRowLimit,dateEventProjectionEnvelopeSchemaV2,dateEventProjectionFieldsV2,departmentReferenceValueSchema,developmentBackendBase64Bytes,developmentBackendInvocationHeadersValid,developmentBackendInvocationRequestValid,developmentBackendInvocationRevision,developmentBackendOperationMatches,developmentConfigurationKey,editWorkflowDesignerDefinition,evaluateWorkflowExpression,evaluateWorkflowTaskPageExpression,fieldValueSchemaForDefinition,formatWorkflowCompletionDeadline,formatWorkflowExpression,formatWorkflowSupervisorChain,generatedCrudCapabilityOperations,hasDataAuditReadPolicy,hasNativeParentReadPolicy,inspectWorkflowParallel,isDataAuditMetadataField,isDataOwnedRowLimit,isDataSystemSortField,isDataTransactionActorAuthorityGuard,isDataTransactionRecordSetMatchGuard,isNativeDataQueryOperatorV2,isNativeMultiValueFieldV2,isWorkflowPlatformNotify,isWorkflowRejectionNotificationSnapshot,matchesDataActorAuthorityMembership,materializeNativeDataQueryPathTypesV2,nativeAgentFieldHintSchemaV2,nativeAgentFieldSelectorV2,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,normalizeDataMutationGrants,normalizeWorkflowOwnedSubjectCreate,parseDataBusinessCommandResolution,parseDataFieldUserCandidates,parseDecimalReservationLifecycle,parseNativeDataFieldsV2,parseNativeDataResourceInvariantsV2,parseNativeParentReadPolicy,parseNativeUniqueKeys,parseWorkflowStepDataResolution,projectDataResourceView,projectNativeDataResourceViewV2,projectWorkflowGraph,projectWorkflowNodePolicy,pruneWorkflowCanvasBindings,quoteNativeIdentifierV2,refreshWorkflowTaskPageFacts,requiresAggregateOwnedSubtableCapacity,requiresDateTimeMinutePrecision,requiresDevelopmentBackendCredential,requiresExtendedArtifactCapacity,requiresExtendedConfigurationBytes,requiresExtendedDeclarationCapacity,requiresExtendedFieldCapacity,requiresExtendedOwnedSubtableCapacity,requiresExtendedRoleCapacity,requiresHighDensityArtifactCapacity,requiresOwnedSubtableMinimumRows,requiresUserCandidateLaunchScope,requiresWorkflowRoleInputSelection,requiresWorkflowRoleUnion,resolveNativeParentReadBinding,resolveNativeScopeSourceFieldPathV2,resolveWorkflowCommandHandler,resolveWorkflowUserCandidates,resourceReferenceValueSchema,selectWorkflowAssignmentRoutingRules,serializedDataBytes,userCandidateScopeValue,userReferenceValueSchema,validateAuthenticatedPublicRead,validateDecimalReservationLifecycles,validateManagedConcurrency,validateNativeDataDraftStateV2,validateNativeDataResourceReferencesV2,validateNativeDataResourceSurfaceV2,validateNativeParentReadPolicies,validateUserCandidateReferences,validateWorkflowAdministration,validateWorkflowApprovalEmptyPolicy,validateWorkflowApprovedDelegation,validateWorkflowAssignmentRoutingBindings,validateWorkflowAssignmentRoutingPolicy,validateWorkflowAssignmentRoutingRules,validateWorkflowAuthoringSteps,validateWorkflowAutomaticCc,validateWorkflowBusinessStepHandlerContract,validateWorkflowBusinessStepRequest,validateWorkflowBusinessStepResult,validateWorkflowBusinessStepSchema,validateWorkflowBusinessStepSubscriptions,validateWorkflowBusinessSteps,validateWorkflowCanvasBinding,validateWorkflowCanvasHuman,validateWorkflowCommandHandlers,validateWorkflowCompletionDeadlines,validateWorkflowCorrections,validateWorkflowDesignerCapabilities,validateWorkflowDesignerDocument,validateWorkflowHandlingNodes,validateWorkflowInitiatorApprovalPolicy,validateWorkflowInstanceCommandPolicies,validateWorkflowLaunchPreflight,validateWorkflowNodeConfigurationPatch,validateWorkflowParallel,validateWorkflowPlatformNotify,validateWorkflowReadability,validateWorkflowRejectionNotification,validateWorkflowReminders,validateWorkflowReturnEligibility,validateWorkflowReturnPolicies,validateWorkflowRoleInputSelection,validateWorkflowRoleUnion,validateWorkflowSourceBundle,validateWorkflowSupervisorChainBinding,validateWorkflowSupervisorChains,validateWorkflowTaskPages,validateWorkflowUserCandidateBindings,workflowApprovalCanSkip,workflowApprovedDelegationRequests,workflowAssignmentRoutingFacts,workflowAssignmentRoutingPolicySchema,workflowAssignmentRoutingSemantic,workflowAuthoringCatalog,workflowBindingAllowsEmptyUsers,workflowBindingRoleCodes,workflowBindingSchema,workflowBusinessCommandInvocationSchema,workflowBusinessStepFactSchema,workflowBusinessStepHandlerDigest,workflowBusinessStepInput,workflowBusinessStepPath,workflowBusinessStepReceiptSignatureSuffix,workflowBusinessStepValueMatches,workflowCanvasBindingKey,workflowDefinitionSchema,workflowDelegationMutationRequestSchema,workflowDesignerTargets,workflowDesignerVariables,workflowExpressionPaths,workflowForwardTargets,workflowHumanOperations,workflowInitiatorApprovalCanComplete,workflowInstanceCommandDeadlineError,workflowInstanceTerminateCapabilityAllowed,workflowInstanceWithdrawalReasonRequired,workflowNativeStagePolicySchema,workflowNodeAllowedOperations,workflowNotificationBinding,workflowOperationCommentRequired,workflowOperationMinimumOpinion,workflowOperationOpinion,workflowOperationReasonRequired,workflowOwnedSubjectCreateSchema,workflowPolicyTimestamp,workflowPositionActive,workflowProducedEventTypes,workflowReturnEligibility,workflowReturnTargetPolicy,workflowReturnTargets,workflowRoleCodesSchema,workflowSourceDigestEqual,workflowSourceImportDrift,workflowSourceReferences,workflowSourceStatus,workflowTaskPageFieldState,workflowTaskPageReplayCoversInvalidation,workflowTaskSaveEnabled,workflowTaskSubtableRows,workflowVariableLabel});
8
+ END $native_subtable$`]}function Ge(e,...t){return`${e}_${(0,Hs.createHash)("sha256").update(t.join(":")).digest("hex").slice(0,32)}`}function ue(e){if(!/^[A-Za-z_][A-Za-z0-9_]{0,62}$/.test(e))throw new Error("OPENXIANGDA_NATIVE_IDENTIFIER_INVALID");return`"${e}"`}function kl(e,t){return e.type==="subtable"?"none":t?"gin-trigram":e.indexed?["date-range","datetime-range"].includes(e.type)?"gist-range":Gr.has(e.type)?"btree-snapshot-expressions":El.has(e.type)?"gin-jsonb-path":"btree":"none"}function Ll(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 yl.has(e.type),"jsonb"}}function Zs(e,t){if(rn(t.type)&&t.type!=="subtable")return"'[]'::jsonb";if(t.type!=="serial-number")return"";let o=Js(t.serial?.prefix||""),n=t.serial?.digits??6;return`(${o} || lpad(nextval(${Js(mo(e,t.code))})::text, ${n}, '0'))`}function vl(e,t){return Ys.has(t.type)?` CHECK (${e} IS NULL OR jsonb_typeof(${e}) = 'array')`:Il.has(t.type)?` CHECK (${e} IS NULL OR jsonb_typeof(${e}) = 'object')`:""}function po(e){return`"app_data".${ue(e)}`}function mo(e,t){let o=Ge("seq",e,t);return`"app_data".${ue(o)}`}function Js(e){return`'${e.replace(/'/g,"''")}'`}var Qs=new Set(["option.single","option.multiple","user.single","user.multiple","department.single","department.multiple","resource-ref.single","resource-ref.multiple"]),Pl=new Set([...Qs,"cascade.single","cascade.multiple","file","image","signature","address","location","json"]),ea=/^[A-Za-z][A-Za-z0-9_]{0,62}$/,$l=new Set(["__proto__","prototype","constructor"]),go=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 jt(e,t){let o=ta(e);if(!o)return null;let n=t.get(o[0]);if(!n)return null;let r=o.slice(1).join(".")||void 0;return{field:n,...r?{valuePath:r}:{}}}function _o(e){return!!(e&&e.field.type==="user.single"&&e.valuePath==="value")}function zr(e,t,o){if(!e||!t||!Vl(e))return!1;let{field:n,valuePath:r}=e;if(!r)return t.valueType==="uuid"?n.type==="uuid":["text.short","text.long","serial-number"].includes(n.type);if(r==="value")return!(t.valueSourceResourceCode&&n.type.startsWith("resource-ref.")&&n.source?.resourceCode!==t.valueSourceResourceCode);let i=r.slice(9),s=o.get(n.source?.resourceCode||"")?.get(i)?.type;return t.valueType==="uuid"?s==="uuid":["text.short","text.long","serial-number"].includes(s||"")}function Fl(e,t){let o=ta(t);if(!o)throw new go(String(t||""));let n=e;for(let r of o){if(!n||typeof n!="object"||!Object.prototype.hasOwnProperty.call(n,r))return;n=n[r]}return n}function Vl(e){let{field:t,valuePath:o}=e;if(!o)return!Pl.has(t.type);if(o==="value")return Qs.has(t.type);if(!o.startsWith("snapshot."))return!1;let n=o.slice(9);return ea.test(n)&&t.type.startsWith("resource-ref.")&&!!t.source?.snapshotFields?.includes(n)}function ta(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=>!ea.test(o)||$l.has(o))||t.length===2&&t[1]!=="value"||t.length===3&&t[1]!=="snapshot"?null:t}var Wl=new Set(["option.single","user.single","department.single","resource-ref.single"]),xl=new Set(["text.short","text.long","text.rich","number.integer","number.decimal","boolean","date","time","datetime","uuid","serial-number"]),jl=new Set(["value","label","description","color"]),Ul=new Set(["avatarUrl","employeeNo","title","mobile","email"]),Ml=new Set(["fullPath","parent.value","parent.label"]),Bl=new Set(["country.value","country.label","province.value","province.label","city.value","city.label","district.value","district.label","street.value","street.label","detail","fullAddress"]),Kl=new Set(["longitude","latitude","accuracy"]),ql=new Set(["address","name","province","city","district","source"]);function Gl(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 r=Jl(n,t);if(!Object.keys(r).length)return n;let i={...n};return Object.defineProperty(i,"queryPathTypes",{configurable:!1,enumerable:!1,writable:!1,value:Object.freeze(r)}),i})}}))}function zl(e,t){if(Wl.has(e.type)&&jl.has(t)||e.type==="user.single"&&Ul.has(t)||e.type==="department.single"&&Ml.has(t))return cn(t);if(e.type==="resource-ref.single"){let o=e.queryPathTypes?.[t];return o?{parts:t.split("."),type:o}:null}if(e.type==="address"&&Bl.has(t))return cn(t);if(e.type==="location"){if(Kl.has(t))return{parts:[t],type:"number.decimal"};if(ql.has(t))return cn(t);if(t==="capturedAt")return{parts:[t],type:"datetime"}}return null}function Jl(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 r=o.get(n);return r?[[`snapshot.${n}`,xl.has(r.type)?r.type:"json"]]:[]})):{}}function cn(e){return{parts:e.split("."),type:"text.short"}}var Io={type:"string",minLength:1},we={type:"object",additionalProperties:!1,required:["label","value"],properties:{label:{type:"string",minLength:1,maxLength:500},value:{type:"string",minLength:1,maxLength:500},description:{type:"string",maxLength:2e3},color:{type:"string",maxLength:64}}},yo={type:"object",additionalProperties:!1,required:["label","value"],properties:{...we.properties,fullPath:{type:"string",maxLength:4e3},path:{type:"array",maxItems:20,items:we},parent:we}},Eo={type:"object",additionalProperties:!1,required:["label","value"],properties:{...we.properties,avatarUrl:{type:"string",maxLength:4e3},employeeNo:{type:"string",maxLength:200},title:{type:"string",maxLength:500},mobile:{type:"string",maxLength:100},email:{type:"string",maxLength:500},departments:{type:"array",maxItems:20,items:yo}}},Hr={type:"object",additionalProperties:!1,required:["label","value","resourceCode"],properties:{...we.properties,resourceCode:{type:"string",pattern:"^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"},snapshot:{type:"object",maxProperties:50,additionalProperties:!0}}},Ao={type:"object",additionalProperties:!1,required:["schemaVersion","id","name","size","contentType"],properties:{schemaVersion:{const:"openxiangda.data-file-ref/v2"},id:Io,name:{type:"string",minLength:1,maxLength:1e3},size:{type:"integer",minimum:0},contentType:{type:"string",minLength:1,maxLength:500}}},Hl={type:"object",additionalProperties:!1,required:["id","name","size","contentType"],properties:{id:Io,name:{type:"string",minLength:1,maxLength:1e3},size:{type:"integer",minimum:0},contentType:{type:"string",minLength:1,maxLength:500}}},na={type:"object",additionalProperties:!1,required:["start","end"],properties:{start:Io,end:Io}},Jr={type:"array",maxItems:100,items:we},Yl={longitude:{type:"number",minimum:-180,maximum:180},latitude:{type:"number",minimum:-90,maximum:90},address:{type:"string",maxLength:8e3},name:{type:"string",maxLength:2e3},province:{type:"string",maxLength:500},city:{type:"string",maxLength:500},district:{type:"string",maxLength:500},accuracy:{type:"number",minimum:0},source:{enum:["browser","dingTalk"]},capturedAt:{type:"string",format:"date-time"}},oa={"text.short":{type:"string",maxLength:1e6},"text.long":{type:"string",maxLength:1e6},"text.rich":{type:"string",maxLength:1e6},"number.integer":{type:"integer"},"number.decimal":{type:"number"},boolean:{type:"boolean"},date:{type:"string",pattern:"^\\d{4}-\\d{2}-\\d{2}$"},time:{type:"string",pattern:"^(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d)?$"},datetime:{type:"string",format:"date-time"},"date-range":na,"datetime-range":na,"option.single":we,"option.multiple":Jr,"cascade.single":Jr,"cascade.multiple":{type:"array",maxItems:100,items:Jr},"user.single":Eo,"user.multiple":{type:"array",maxItems:100,items:Eo},"department.single":yo,"department.multiple":{type:"array",maxItems:100,items:yo},"resource-ref.single":Hr,"resource-ref.multiple":{type:"array",maxItems:100,items:Hr},image:{type:"array",maxItems:100,items:{...Ao,required:[...Ao.required,"width","height","thumbnailUrl","previewUrl"],properties:{...Ao.properties,width:{type:"integer",minimum:1},height:{type:"integer",minimum:1},thumbnailUrl:{type:"string",maxLength:4e3},previewUrl:{type:"string",maxLength:4e3}}}},signature:{type:"object",additionalProperties:!1,required:["file","signedAt","hash"],properties:{file:Hl,signer:Eo,signedAt:{type:"string",format:"date-time"},points:{type:"array",maxItems:2e4,items:{type:"object",additionalProperties:!1,required:["x","y","t"],properties:{x:{type:"number"},y:{type:"number"},t:{type:"number"}}}},hash:{type:"string",pattern:"^[0-9a-f]{64}$"}}},address:{type:"object",additionalProperties:!1,properties:{country:we,province:we,city:we,district:we,street:we,detail:{type:"string",maxLength:4e3},fullAddress:{type:"string",maxLength:8e3}}},location:{type:"object",additionalProperties:!1,required:["source","longitude","latitude"],properties:Yl},uuid:{type:"string",format:"uuid"},json:{},file:{type:"array",maxItems:100,items:Ao},"serial-number":{type:"string",minLength:1,maxLength:255},subtable:{type:"array",maxItems:Ve,items:{type:"object",additionalProperties:!0}}};function ln(e){if(e.type==="number.decimal"&&e.exactDecimal===!0){let r=e.precision,i=e.scale;if(typeof r=="number"&&typeof i=="number"&&Number.isInteger(r)&&Number.isInteger(i)&&r>=1&&i>=0&&i<=r){let a=Math.max(1,r-i),s=i>0?`(?:\\.[0-9]{1,${i}})?`:"";return{type:"string",pattern:`^-?(?:0|[1-9][0-9]{0,${a-1}})${s}$`,maxLength:a+(i>0?i+1:0)+1}}return{type:"string",pattern:"^-?(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?$"}}let t=JSON.parse(JSON.stringify(oa[e.type]));if(e.type!=="date-range"&&e.type!=="datetime-range")return t;if(!["closed","half-open"].includes(String(e.rangeBoundary)))throw new Error("DATA_RESOURCE_FIELD_RANGE_BOUNDARY_REQUIRED");let o=e.rangeBoundary;t["x-openxiangda-range-boundary"]=o;let n=e.type==="date-range"?{type:"string",pattern:"^\\d{4}-\\d{2}-\\d{2}$"}:{type:"string",format:"date-time"};return t.properties={start:n,end:n},t.description=o==="closed"?"Closed interval: start <= end; both start and end are included.":"Half-open interval: start < end; start is included and end is excluded.",t}function bo(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(s=>[s,a.title]))),{views:r,...i}=e;return{...i,generated:o.generated,list:o.list,form:o.form,detail:o.detail,mobile:o.mobile,fields:Object.fromEntries(Object.entries(e.fields).map(([a,s])=>{let{section:d,...c}=s,l=n.get(a);return[a,{...c,...l?{section:l}:{},list:o.list.fieldOrder?.includes(a)??!1}]}))}}var Qr=Object.freeze({agents:20,tasks:20,fields:20,instructions:16e3,instructionBytes:64e3,arrayItems:50,pages:10}),Ro=class extends Error{constructor(o,n,r){super(`${o}: ${n}: ${r}`);this.code=o;this.pointer=n;this.name="NativeApplicationAgentContractError"}code;pointer};function q(e,t,o){throw new Ro(`NATIVE_APPLICATION_AGENT_${e}`,t,o)}function Yr(e,t){return(!e||typeof e!="object"||Array.isArray(e))&&q("OBJECT_REQUIRED",t,"\u9700\u8981\u5BF9\u8C61"),e}function Xr(e,t,o){for(let n of Object.keys(e))t.includes(n)||q("PROPERTY_UNSUPPORTED",`${o}/${n}`,"\u672A\u77E5\u5C5E\u6027")}function Qe(e,t,o){return(typeof e!="string"||!e.trim()||e.length>t)&&q("TEXT_INVALID",o,`\u9700\u8981\u975E\u7A7A\u5B57\u7B26\u4E32\uFF0C\u6700\u591A ${t} \u5B57\u7B26`),e}function Oo(e,t){let o=Qe(e,100,t);return/^[a-z][a-z0-9]*(?:[-.][a-z0-9]+)*$/.test(o)||q("CODE_INVALID",t,"\u9700\u8981\u7A33\u5B9A\u7F16\u7801"),o}function ho(e,t,o,n){if(e===void 0)return[];(!Array.isArray(e)||e.length>t)&&q("ARRAY_LIMIT",n,`\u6700\u591A ${t} \u9879`);let r=e.map((i,a)=>Qe(i,o,`${n}/${a}`));return new Set(r).size!==r.length&&q("DUPLICATE",n,"\u4E0D\u80FD\u91CD\u590D"),r}function aa(e,t="/agents/instructions/file"){let o=Qe(e,500,t),n=o.split("/");return(!/\.(md|txt)$/i.test(o)||n.some(r=>!r||r.startsWith(".")||/[\\:\p{Cc}]/u.test(r)||/^(?:\.\.?|AGENTS\.md|CLAUDE\.md|SKILL\.md|credentials.*|secrets?.*|.*\.pem|.*\.key)$/i.test(r)))&&q("INSTRUCTION_PATH_INVALID",t,"\u9700\u8981\u5DE5\u4F5C\u533A\u5185\u7684\u666E\u901A md/txt \u6587\u4EF6\uFF0C\u4E0D\u80FD\u5F15\u7528\u534F\u4F5C\u8BF4\u660E\u6216\u51ED\u636E"),o}function Xl(e,t,o){if(typeof e=="string")return Qe(e,Qr.instructions,t);let n=Yr(e,t);Xr(n,["file"],t);let r=aa(n.file,`${t}/file`);return o||q("INSTRUCTIONS_NOT_INLINED",t,"\u6587\u4EF6\u6307\u4EE4\u5FC5\u987B\u5148\u7531\u5DE5\u4F5C\u533A\u52A0\u8F7D\u5668\u5185\u8054"),{file:r}}var No={type:"object",additionalProperties:!1,required:["label"],properties:{label:{type:"string",minLength:1,maxLength:500}}},Zl=/^(option|user|department|resource-ref)\.(single|multiple)$/,Ql=new Set(["file","image","signature","subtable","text.rich","json","serial-number"]);function da(e,t,o){if(t.type.startsWith("user."))return{selector:{owner:t.userCandidates?"user-candidates":"directory"}};if(t.type.startsWith("department."))return{selector:{owner:"directory"}};if(t.type.startsWith("resource-ref."))return{selector:{owner:"field-source"}};if(t.type.startsWith("option.")||t.type.startsWith("cascade."))return{selector:{owner:"options"}};if(!["text.short","uuid"].includes(t.type))return{};let n=o?.dataPolicies?.find(s=>s.code===e.dataPolicyCode&&s.resourceCode===e.code),r=[...n?.rules||[]],i=n?.readExpression?[n.readExpression]:[];for(;i.length;){let s=i.shift();r.length+i.length>2e3&&q("SELECTOR_POLICY_LIMIT",`/data/resources/${e.code}`,"\u8303\u56F4\u8DEF\u7531\u8D85\u8FC7\u89C4\u5219\u9884\u7B97"),s?.allOf?i.push(...s.allOf):s?.anyOf?i.push(...s.anyOf):r.push(s)}let a=new Set(r.flatMap(s=>s&&"dimensionCode"in s&&s.field===t.code&&o?.scopeDimensions?.some(d=>d.code===s.dimensionCode&&d.valueSource)?[s.dimensionCode]:[]));return a.size===1?{selector:{owner:"scope",dimensionCode:[...a][0]}}:a.size>1?{ambiguousScope:!0}:{}}function Zr(e,t=!1,o){if(o?.ambiguousScope)return;if(o?.selector?.owner==="scope")return!t&&e.nullable!==!1?{anyOf:[No,{type:"null"}]}:No;if(Zl.test(e.type)){let r=e.type.endsWith(".multiple")?{type:"array",minItems:t?1:0,maxItems:50,items:No}:No;return!t&&e.nullable!==!1?{anyOf:[r,{type:"null"}]}:r}if(!["text.short","text.long","number.integer","number.decimal","boolean","date","time","datetime"].includes(e.type))return;let n=ln(e);return e.type==="datetime"&&(n={...n,pattern:"(?:Z|[+-]\\d{2}:\\d{2})$"}),t&&["number.integer","number.decimal","date","datetime"].includes(e.type)?{oneOf:[n,{type:"object",additionalProperties:!1,minProperties:1,properties:{from:n,to:n}}]}:!t&&e.nullable!==!1?{anyOf:[n,{type:"null"}]}:n}function De(e,t=[]){return{type:"object",additionalProperties:!1,properties:e,...t.length?{required:t}:{}}}function ra(e,t){return[...((t.source||e.surface?.fields[t.code]?.source)?.filters||[]).flatMap(n=>"binding"in n?[n.binding.field]:[]),...t.userCandidates?.scope?.field?[t.userCandidates.scope.field]:[]]}var ia={type:"object",additionalProperties:!1,required:["handle"],properties:{handle:{type:"string",minLength:1,maxLength:80}}},sa={type:"object",additionalProperties:!1,properties:{columns:{type:"array",maxItems:500,items:De({code:{type:"string"},label:{type:"string"}},["code","label"])},items:{type:"array",maxItems:100,items:De({handle:{type:"string"},title:{type:"string"},fields:{type:"array",maxItems:500,items:De({code:{type:"string"},label:{type:"string"},value:{type:"string"}},["code","label","value"])}},["handle","fields"])},more:{type:"boolean"},total:{type:"integer",minimum:0},continuation:{type:"string",maxLength:80},summary:{type:"string"},filter_ambiguous:{type:"boolean"},field:{type:"string",maxLength:100},labels:{type:"array",maxItems:20,items:De({label:{type:"string"},description:{type:"string"}},["label"])}}};function eu(e,t,o,n,r,i){let a=n.find(h=>h&&typeof h=="object"&&h.code===o.resource&&h.status!=="retired");(!a?.surface||!a.surface.fields||!Array.isArray(a.schema?.fields)||a.schema.fields.some(h=>!h||typeof h.code!="string"||typeof h.type!="string"))&&q("RESOURCE_UNAVAILABLE",`${r}/resource`,"\u9700\u8981\u5F53\u524D\u6A21\u578B\u53CA\u6807\u51C6\u89C6\u56FE");try{$t(a.schema.fields,`${r}/resource/schema/fields`)}catch(h){if(!(h instanceof Ae))throw h;q("RESOURCE_SCHEMA_INVALID",`${r}/resource`,h.message)}a.surface.views!==void 0&&!Array.isArray(a.surface.views)&&q("VIEW_UNKNOWN",`${r}/view`,"\u9700\u8981\u5DF2\u9A8C\u8BC1\u7684\u6807\u51C6\u89C6\u56FE"),!a.surface.views?.some(h=>h.code===o.view)&&!(o.view==="default"&&!a.surface.views?.length)&&q("VIEW_UNKNOWN",`${r}/view`,"\u89C6\u56FE\u4E0D\u5B58\u5728");let s=o.view==="default"&&!a.surface.views?.length?a.surface:bo(a.surface,o.view),d=new Map(a.schema.fields.map(h=>[h.code,h])),c=new Map(a.schema.fields.map(h=>[h.code,da(a,h,i)])),l=h=>[...new Set(h)].flatMap(f=>{let I=d.get(f),R=c.get(f);if(!I||!R)return[];let w=!!I.userCandidates?.scope?.field;return[{field:f,...R.selector?{selector:R.selector}:{},create:o.kind==="form"&&o.action==="create"&&!w,update:o.kind==="form"&&o.action==="update",filter:o.kind==="view"&&(o.filters??s.list?.filterFields??[]).includes(f)&&!R.ambiguousScope,output:R.ambiguousScope?"page":R.selector?"label":"value",...R.ambiguousScope?{reason:"multiple-scope-dimensions"}:w?{reason:"saved-scope-required"}:{}}]}),u={code:`${e}.agent.${t}.${o.code}`,appCode:e,name:o.name||`${a.name}${o.kind==="view"?"\u67E5\u8BE2":o.action==="create"?"\u65B0\u589E":"\u4FEE\u6539"}`.slice(0,80),description:o.description||`\u901A\u8FC7${a.name}\u7684${o.view}\u6807\u51C6\u89C6\u56FE${o.kind==="view"?"\u67E5\u8BE2":"\u586B\u5199"}\uFF0C\u9075\u5B88\u5F53\u524D\u7528\u6237\u6743\u9650`,kind:"nativeTask",resources:[a.code],limits:{timeoutMs:1e4},agent:{visibility:"task",...o.examples?.length?{examples:[...o.examples]}:{}}};if(o.kind==="view"){s.generated?.list===!1&&q("LIST_DISABLED",r,"\u8BE5\u89C6\u56FE\u672A\u751F\u6210\u5217\u8868");let h=o.filters??s.list?.filterFields??[];h.some(T=>!s.list?.filterFields?.includes(T))&&q("FILTER_WIDENING",`${r}/filters`,"\u4EFB\u52A1\u53EA\u80FD\u7F29\u5C0F\u89C6\u56FE\u7B5B\u9009\u5B57\u6BB5");let f=h.filter(T=>!c.get(T)?.ambiguousScope),I=Object.fromEntries(f.map(T=>{let S=d.get(T),P=S&&Zr(S,!0,c.get(T));return P||q("FILTER_TYPE_UNSUPPORTED",`${r}/filters`,`\u5B57\u6BB5 ${T} \u6682\u4E0D\u652F\u6301\u6A21\u578B\u7B5B\u9009\u63D0\u793A`),[T,P]})),R=(s.list?.fieldOrder||[]).filter(T=>a.surface.fields[T]?.sortable);s.list?.defaultSort&&!R.includes(s.list.defaultSort.field)&&R.push(s.list.defaultSort.field);let w=De({...s.list?.searchableFields?.length?{keyword:{type:"string",maxLength:200}}:{},...f.length?{filters:De(I)}:{},...R.length?{sort:De({field:{enum:R},order:{enum:["asc","desc"]}},["field"])}:{},limit:{type:"integer",minimum:1,maximum:100},continue:{type:"string",minLength:1,maxLength:80},record:ia});return{...u,operation:"query",inputSchema:{type:"object"},outputSchema:sa,authorization:{capabilities:[a.capabilities.read]},risk:"read",confirmation:"none",idempotency:"none",concurrency:"none",sideEffects:[],limits:{...u.limits,maxRows:100},binding:{kind:"native-view",resourceCode:a.code,viewCode:o.view,filterFields:f},agent:{...u.agent,nativeTask:{contractVersion:2,agentCode:t,taskCode:o.code,hintSchema:w,coverage:l([...h,...s.list?.fieldOrder||[],...s.detail?.fieldOrder||[]])}}}}((a.surface.mutationOwner||"native")!=="native"||s.generated?.[o.action]===!1)&&q("MUTATION_NOT_NATIVE",r,"\u53EA\u80FD\u7ED1\u5B9A\u5DF2\u751F\u6210\u7684\u666E\u901A\u539F\u751F create/update");let p=o.fields;p.length||q("FIELDS_REQUIRED",`${r}/fields`,"\u9700\u8981\u81F3\u5C11\u4E00\u4E2A\u8868\u5355\u5B57\u6BB5");for(let h of p){let f=d.get(h),I=a.surface.fields[h];(!f||!s.form?.fieldOrder?.includes(h)||!I||I.system||I.hidden||Ze(h)||an(h)||Ql.has(f.type))&&q("FORM_FIELD_UNSUPPORTED",`${r}/fields`,`\u5B57\u6BB5 ${h} \u4E0D\u5C5E\u4E8E\u53EF\u7F16\u8F91\u7684\u6807\u51C6\u5355\u63A7\u4EF6\u8868\u5355`),(!Array.isArray(I[`${o.action}Capabilities`])||I[`${o.action}Capabilities`].length===0)&&q("FORM_FIELD_UNWRITABLE",`${r}/fields`,`\u5B57\u6BB5 ${h} \u672A\u63D0\u4F9B ${o.action} \u6743\u9650`),o.action==="create"&&f.userCandidates?.scope?.field&&q("CANDIDATE_CREATE_OWNER_REQUIRED",`${r}/fields`,`\u4EFB\u52A1 ${o.code} \u5B57\u6BB5 ${h} (user-candidates) \u7684\u8303\u56F4\u53D6\u81EA\u8BB0\u5F55\u5B57\u6BB5\uFF0C\u65B0\u5EFA\u9700\u901A\u8FC7\u6D41\u7A0B\u53D1\u8D77\u6216 Nest \u4E1A\u52A1\u64CD\u4F5C\u529E\u7406`)}let m=new Set(p);if(o.action==="create"){for(let h of a.schema.fields)Be(h,a.surface.fields[h.code])&&!m.has(h.code)&&q("CREATE_FIELD_REQUIRED",`${r}/fields`,`\u5FC5\u987B\u5305\u542B\u65B0\u589E\u5FC5\u586B\u5B57\u6BB5 ${h.code}`);for(let h of p)for(let f of ra(a,d.get(h)))m.has(f)||q("CREATE_BINDING_REQUIRED",`${r}/fields`,`${h} \u4F9D\u8D56 ${f}\uFF0C\u5FC5\u987B\u5305\u542B\u7ED1\u5B9A\u5B57\u6BB5`)}else for(let h of a.schema.fields)ra(a,h).some(f=>m.has(f))&&!m.has(h.code)&&q("UPDATE_DEPENDENT_REQUIRED",`${r}/fields`,`\u4FEE\u6539\u7ED1\u5B9A\u5B57\u6BB5\u65F6\u5FC5\u987B\u5305\u542B\u4F9D\u8D56\u9009\u62E9\u5668 ${h.code}`);let E=p.map(h=>d.get(h)),A=o.action==="create"?E.filter(h=>Be(h,a.surface.fields[h.code])).map(h=>h.code):[],O=De(Object.fromEntries(E.map(h=>[h.code,h.nullable===!1?ln(h):{anyOf:[ln(h),{type:"null"}]}])),A),y=Object.fromEntries(E.flatMap(h=>{let f=Zr(h,!1,c.get(h.code));return f?[[h.code,f]]:[]})),_={kind:"native-form",resourceCode:a.code,viewCode:o.view,action:o.action,fields:[...p]},b=De({data:O,...o.action==="update"?{id:{type:"string",format:"uuid"},expectedRevision:{type:"integer",minimum:1}}:{}},["data",...o.action==="update"?["id","expectedRevision"]:[]]);return{...u,operation:o.action,inputSchema:b,outputSchema:sa,authorization:{capabilities:[a.capabilities[o.action]]},risk:"write",confirmation:o.confirmation||"required",idempotency:"required",concurrency:o.action==="update"?"revision":"none",sideEffects:[`${a.code}:${o.action}`],reconcile:{kind:"platform-transaction"},binding:_,agent:{...u.agent,nativeTask:{contractVersion:2,agentCode:t,taskCode:o.code,hintSchema:De({data:De(y),...o.action==="update"?{record:ia}:{}}),coverage:l(p),form:{contractVersion:2,action:o.action,title:u.name,submitLabel:"\u63D0\u4EA4",resource:a.code,view:o.view,fields:E.map(h=>({path:h.code,label:a.surface.fields[h.code].label,fieldType:h.type,required:Be(h,a.surface.fields[h.code]),source:{resource:a.code,field:h.code},...c.get(h.code)?.selector?{selector:c.get(h.code).selector}:{}}))}}}}}function ei(e,t,o,n={}){let r={schemaVersion:"openxiangda.application-agent-definitions/v2",appCode:e,agents:[]},i=[];if(t===void 0)return{definitions:r,capabilities:i};Array.isArray(o)||q("RESOURCES_INVALID","/data/resources","\u9700\u8981\u5DF2\u9A8C\u8BC1\u7684\u6A21\u578B\u5217\u8868"),(!Array.isArray(t)||t.length>Qr.agents)&&q("AGENT_LIMIT","/agents","\u6700\u591A 20 \u4E2A\u52A9\u624B");let a=new Set;for(let s=0;s<t.length;s++){let d=`/agents/${s}`,c=Yr(t[s],d);Xr(c,["code","name","purpose","instructions","starters","tasks"],d);let l=Oo(c.code,`${d}/code`);a.has(l)&&q("CODE_DUPLICATE",`${d}/code`,"\u52A9\u624B\u4EE3\u7801\u91CD\u590D"),a.add(l);let u=Qe(c.name,80,`${d}/name`),p=Qe(c.purpose,1e3,`${d}/purpose`),m=Xl(c.instructions,`${d}/instructions`,n.allowInstructionFiles===!0),E=ho(c.starters,12,160,`${d}/starters`);(!Array.isArray(c.tasks)||c.tasks.length<1||c.tasks.length>20)&&q("TASK_LIMIT",`${d}/tasks`,"\u9700\u8981 1\u201320 \u4E2A\u4EFB\u52A1");let A=new Set,O=c.tasks.map((_,b)=>{let h=`${d}/tasks/${b}`,f=Yr(_,h);["view","form"].includes(f.kind)||q("TASK_KIND_INVALID",`${h}/kind`,"\u53EA\u652F\u6301 view/form"),Xr(f,["code","kind","name","description","resource","view","examples",...f.kind==="view"?["filters"]:["action","fields","confirmation"]],h);let I=Oo(f.code,`${h}/code`);return A.has(I)&&q("TASK_CODE_DUPLICATE",`${h}/code`,"\u4EFB\u52A1\u4EE3\u7801\u91CD\u590D"),A.add(I),Oo(f.resource,`${h}/resource`),Oo(f.view,`${h}/view`),f.name!==void 0&&Qe(f.name,80,`${h}/name`),f.description!==void 0&&Qe(f.description,1e3,`${h}/description`),ho(f.examples,12,160,`${h}/examples`),f.kind==="view"?ho(f.filters,20,100,`${h}/filters`):(["create","update"].includes(f.action)||q("FORM_ACTION_INVALID",`${h}/action`,"\u53EA\u652F\u6301 create/update"),f.confirmation!==void 0&&!["none","required"].includes(f.confirmation)&&q("CONFIRMATION_INVALID",`${h}/confirmation`,"\u786E\u8BA4\u7B56\u7565\u65E0\u6548"),Array.isArray(f.fields)||q("FIELDS_REQUIRED",`${h}/fields`,"\u9700\u8981\u5B57\u6BB5\u5217\u8868"),ho(f.fields,20,100,`${h}/fields`)),eu(e,l,f,o,h,n.authz)}),y={code:l,name:u,purpose:p,instructions:typeof m=="string"?m:"",starters:E,tasks:O.map(_=>({code:_.agent.nativeTask.taskCode,capabilityCode:_.code}))};r.agents.push({...y,digest:ee({...y,capabilities:O})}),i.push(...O)}return r.agents.sort((s,d)=>s.code<d.code?-1:s.code>d.code?1:0),i.sort((s,d)=>s.code<d.code?-1:s.code>d.code?1:0),{definitions:r,capabilities:i}}var ca="platform-notify-v1",tu="platform.notify",la={type:"object",additionalProperties:!1,properties:{text:{type:"string",minLength:1,maxLength:2048}},required:["text"]},ua={type:"object",additionalProperties:!1,properties:{}},ti=e=>!!e&&typeof e=="object"&&!Array.isArray(e),wo=e=>JSON.stringify(e,(t,o)=>ti(o)?Object.fromEntries(Object.keys(o).sort().map(n=>[n,o[n]])):o);function te(e){return e?.kind==="action"&&e.handler?.code===ca&&e.notification!==void 0}function nu(e){return{...e.notification.recipients,min:1,max:50,delegatable:!1}}function un(e){let t=[];for(let[o,n]of Object.entries(e?.nodes||{})){if(n?.notification===void 0)continue;(!te(n)||n.handler.version!==1||n.handler.mode!=="reconciled-effect"||n.handler.dataTransaction!==void 0||wo(n.inputSchema)!==wo(la)||wo(n.outputSchema)!==wo(ua))&&t.push(`WORKFLOW_NOTIFY_PRESET_INVALID:${o}`),n.inputs?.text?.source==="literal"&&(typeof n.inputs.text.value!="string"||!n.inputs.text.value.trim())&&t.push(`WORKFLOW_NOTIFY_TEXT_INVALID:${o}`);let r=n.notification,i=r?.recipients;if(!ti(r)||Object.keys(r).some(s=>!["template","recipients"].includes(s))||r.template!=="workflow_message"||!ti(i)){t.push(`WORKFLOW_NOTIFY_RECIPIENT_INVALID:${o}`);continue}let a=Object.keys(i);i.provider==="initiator"?a.length!==1&&t.push(`WORKFLOW_NOTIFY_RECIPIENT_INVALID:${o}`):i.provider==="fixed_users"?(a.some(s=>!["provider","users"].includes(s))||!Array.isArray(i.users)||i.users.length<1||i.users.length>50||new Set(i.users).size!==i.users.length||i.users.some(s=>typeof s!="string"||!s.trim()||s.length>255))&&t.push(`WORKFLOW_NOTIFY_RECIPIENT_INVALID:${o}`):i.provider==="app_role"?(a.some(s=>!["provider","roleCode"].includes(s))||typeof i.roleCode!="string"||!/^[A-Za-z][A-Za-z0-9_.-]{0,127}$/.test(i.roleCode))&&t.push(`WORKFLOW_NOTIFY_RECIPIENT_INVALID:${o}`):i.provider==="form_field_users"?(a.some(s=>!["provider","inputPath"].includes(s))||typeof i.inputPath!="string"||!/^[A-Za-z][A-Za-z0-9_]*(\.[A-Za-z][A-Za-z0-9_]*)*$/.test(i.inputPath)||i.inputPath.length>256||i.inputPath.split(".").length>8||i.inputPath.split(".").some(s=>["prototype","constructor","__proto__"].includes(s)))&&t.push(`WORKFLOW_NOTIFY_RECIPIENT_INVALID:${o}`):t.push(`WORKFLOW_NOTIFY_RECIPIENT_INVALID:${o}`)}return t}var To="openxiangda.workflow.step.requested.v2",ou=[To,"openxiangda.workflow.step.result_received.v2","openxiangda.workflow.step.completed.v2","openxiangda.workflow.step.continuation_failed.v2"],Co=16384,ma=2048,ru="steps",ri=/^[A-Za-z][A-Za-z0-9_-]{0,127}$/,ga=/^[A-Za-z][A-Za-z0-9_]{0,62}$/,ut=new Set(["__proto__","prototype","constructor"]),G=e=>!!e&&typeof e=="object"&&!Array.isArray(e)&&[Object.prototype,null].includes(Object.getPrototypeOf(e)),_a=e=>{try{let t=JSON.stringify(e);return t===void 0?1/0:new TextEncoder().encode(t).length}catch{return 1/0}},Ut=(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((i,a)=>Ut(i,t[a],o+1));if(!G(e)||!G(t))return!1;let n=Object.keys(e).filter(i=>e[i]!==void 0),r=Object.keys(t).filter(i=>t[i]!==void 0);return n.length===r.length&&n.every(i=>Object.hasOwn(t,i)&&Ut(e[i],t[i],o+1))};function ni(e,t){let o=0,n=(r,i)=>++o>1e4||i>8?!1:r===null||typeof r=="boolean"||typeof r=="string"?!0:typeof r=="number"?Number.isFinite(r):Array.isArray(r)?r.length<=200&&r.every(a=>n(a,i+1)):G(r)&&Object.keys(r).length<=32&&Object.keys(r).every(a=>!ut.has(a))&&Object.values(r).every(a=>n(a,i+1));return _a(e)<=t&&n(e,0)}function Aa(e){return!G(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&&G(e.output)&&ni(e.output,Co)&&(e.receipt===void 0||G(e.receipt)&&ni(e.receipt,ma))}function iu(e){return G(e)&&Object.keys(e).every(t=>["executionId","nodeId","handlerCode","handlerVersion","mode","dataTransaction","input","inputDigest","expectedFactRevision"].includes(t))&&typeof e.nodeId=="string"&&ri.test(e.nodeId)&&!ut.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)&&(e.dataTransaction===void 0||e.dataTransaction===!0&&e.mode==="reconciled-effect")&&Aa({executionId:e.executionId,handlerVersion:e.handlerVersion,inputDigest:e.inputDigest,expectedFactRevision:e.expectedFactRevision,output:e.input})}function ft(e,t,o=Co){if(!ni(t,o))return!1;let n=1e4,r=(i,a,s)=>{if(--n<0||s>8||!G(i))return!1;let d=a===null?"null":Array.isArray(a)?"array":typeof a=="number"&&Number.isSafeInteger(a)?"integer":typeof a,c=Array.isArray(i.type)?i.type:[i.type];if(!c.includes(d)&&!(d==="integer"&&c.includes("number"))||i.enum!==void 0&&(!Array.isArray(i.enum)||!i.enum.some(l=>Ut(l,a)))||Object.hasOwn(i,"const")&&!Ut(i.const,a))return!1;if(typeof a=="number")return Number.isFinite(a)&&(i.minimum===void 0||a>=i.minimum)&&(i.maximum===void 0||a<=i.maximum);if(typeof a=="string"){let l=Array.from(a).length;return(i.minLength===void 0||l>=i.minLength)&&(i.maxLength===void 0||l<=i.maxLength)}return Array.isArray(a)?a.length<=i.maxItems&&(i.minItems===void 0||a.length>=i.minItems)&&a.every(l=>r(i.items,l,s+1)):G(a)?!G(i.properties)||Object.keys(a).some(l=>ut.has(l)||!Object.hasOwn(i.properties,l))||(Array.isArray(i.required)?i.required:[]).some(l=>!Object.hasOwn(a,l))||i.minProperties!==void 0&&Object.keys(a).length<i.minProperties||i.maxProperties!==void 0&&Object.keys(a).length>i.maxProperties?!1:Object.entries(a).every(([l,u])=>r(i.properties[l],u,s+1)):a===null||typeof a=="boolean"};return r(e,t,0)}function Ea(e){return typeof e=="string"&&e.length<=256&&e.split(".").length<=8&&e.split(".").every(t=>ri.test(t)&&!ut.has(t))}function pt(e){let t=0,o=(n,r)=>{if(!G(n)||r>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 i=Array.isArray(n.type)?n.type:[n.type];if(!i.length||i.length>2||i.some(s=>!["object","array","string","integer","number","boolean","null"].includes(s))||i.length>1&&(!i.includes("null")||new Set(i).size!==i.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,d]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]>d))return!1;for(let[s,d]of[["minimum","maximum"],["minItems","maxItems"],["minLength","maxLength"],["minProperties","maxProperties"]])if(n[s]!==void 0&&n[d]!==void 0&&n[s]>n[d])return!1;if(["properties","required","additionalProperties","maxProperties","minProperties"].some(s=>n[s]!==void 0)&&!i.includes("object")||["items","maxItems","minItems"].some(s=>n[s]!==void 0)&&!i.includes("array")||["maxLength","minLength"].some(s=>n[s]!==void 0)&&!i.includes("string")||["minimum","maximum"].some(s=>n[s]!==void 0)&&!i.some(s=>s==="integer"||s==="number")||n.enum!==void 0&&(!Array.isArray(n.enum)||!n.enum.length||n.enum.length>100)||i.includes("object")&&(!G(n.properties)||n.additionalProperties!==!1||Object.keys(n.properties).length>32||Object.keys(n.properties).some(s=>!ga.test(s)||ut.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,r+1)))||i.includes("array")&&(!Number.isSafeInteger(n.maxItems)||!o(n.items,r+1)))return!1;let a={...n};return delete a.enum,delete a.const,!(n.enum!==void 0&&(!n.enum.every(s=>ft(a,s))||n.enum.some((s,d)=>n.enum.slice(0,d).some(c=>Ut(s,c))))||Object.hasOwn(n,"const")&&!ft(a,n.const))};return G(e)&&e.type==="object"&&_a(e)<=Co&&o(e,0)}function mt(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 Ia(e,t){let o=e;for(let n of t.split(".")){if(!G(o?.properties)||!Object.hasOwn(o.properties,n))return;o=o.properties[n]}return G(o)?o:void 0}var fa=(e,t)=>!!Ia(e,t);function su(e){return G(e)&&Object.keys(e).every(t=>["version","mode","dataTransaction","inputSchema","outputSchema"].includes(t))&&Number.isSafeInteger(e.version)&&e.version>=1&&e.version<=1e6&&["pure","reconciled-effect"].includes(e.mode)&&(e.dataTransaction===void 0||e.dataTransaction===!0&&e.mode==="reconciled-effect")&&pt(e.inputSchema)&&pt(e.outputSchema)}function pa(e){return e.kind==="approval"?[e.onApprove,e.onReject]:e.kind==="parallel"?[...Array.isArray(e.branches)?e.branches.map(t=>t.target):[],e.join]:e.kind==="join"?[e.next]:e.kind==="condition"?[...Array.isArray(e.branches)?e.branches.map(t=>t.target):[],e.otherwise]:e.kind==="cc"||e.kind==="action"||e.kind==="handle"?[e.next]:[]}function oi(e,t=0){return!G(e)||t>16?[]:e.op==="path"?typeof e.path=="string"?[e.path]:[]:["left","right","value"].flatMap(o=>oi(e[o],t+1)).concat(Array.isArray(e.values)?e.values.flatMap(o=>oi(o,t+1)):[])}function ya(e){if(e.authoring===void 0)return[];let t=e.authoring;if(!G(t)||Object.keys(t).some(r=>r!=="businessSteps")||t.businessSteps!==void 0&&(!Array.isArray(t.businessSteps)||t.businessSteps.length>100))return["WORKFLOW_AUTHORING_CATALOG_INVALID"];let o=[],n=new Set;for(let r of t.businessSteps||[]){let i=r?.handler;(!G(r)||Object.keys(r).some(a=>!["title","handler","inputSchema","outputSchema"].includes(a))||typeof r.title!="string"||!r.title.trim()||r.title.length>160||!G(i)||Object.keys(i).some(a=>!["code","version","mode","dataTransaction"].includes(a))||!Number.isSafeInteger(i.version)||i.version<1||i.version>1e6||!/^[a-z][a-z0-9-]{0,100}$/.test(i.code||"")||!i.code.endsWith(`-v${i.version}`)||!["pure","reconciled-effect"].includes(i.mode)||i.dataTransaction!==void 0&&(i.dataTransaction!==!0||i.mode!=="reconciled-effect")||!pt(r.inputSchema)||!pt(r.outputSchema)||n.has(i.code))&&o.push("WORKFLOW_AUTHORING_STEP_INVALID"),i?.code&&n.add(i.code)}return o}function fn(e,t){if(!G(e)||!G(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 r=[...un(e),...ya(e)];Object.hasOwn(e.inputSchema?.properties||{},"steps")&&r.push("WORKFLOW_STEP_FACT_NAMESPACE_RESERVED");let i=mt(e);for(let[s,d]of n){(Object.keys(d).some(u=>!["id","kind","title","next","handler","inputSchema","outputSchema","inputs",...te(d)?["notification"]:[]].includes(u))||d.id!==s||!ri.test(s)||ut.has(s)||typeof d.title!="string"||!d.title.trim()||d.title.length>255||typeof d.next!="string"||!Object.hasOwn(o,d.next))&&r.push(`WORKFLOW_STEP_NODE_INVALID:${s}`);let c=d.handler;(!G(c)||Object.keys(c).some(u=>!["code","version","mode","dataTransaction"].includes(u))||!Number.isSafeInteger(c.version)||c.version<1||c.version>1e6||!/^[a-z][a-z0-9-]{0,100}$/.test(c.code||"")||!String(c.code).endsWith(`-v${c.version}`)||!["pure","reconciled-effect"].includes(c.mode)||c.dataTransaction!==void 0&&(c.dataTransaction!==!0||c.mode!=="reconciled-effect"))&&r.push(`WORKFLOW_STEP_HANDLER_INVALID:${s}`);let l=pt(d.inputSchema);if((!l||!pt(d.outputSchema))&&r.push(`WORKFLOW_STEP_SCHEMA_INVALID:${s}`),!G(d.inputs)||Object.keys(d.inputs).length>32){r.push(`WORKFLOW_STEP_INPUTS_INVALID:${s}`);continue}for(let u of Array.isArray(d.inputSchema?.required)?d.inputSchema.required:[])Object.hasOwn(d.inputs,u)||r.push(`WORKFLOW_STEP_INPUT_REQUIRED:${s}:${u}`);for(let[u,p]of Object.entries(d.inputs)){if(!ga.test(u)||ut.has(u)||!Object.hasOwn(d.inputSchema?.properties||{},u)||!G(p)){r.push(`WORKFLOW_STEP_INPUT_INVALID:${s}:${u}`);continue}if(p.source==="literal")(!l||Object.keys(p).some(m=>!["source","value"].includes(m))||!Object.hasOwn(p,"value")||!ft(d.inputSchema.properties[u],p.value))&&r.push(`WORKFLOW_STEP_LITERAL_INVALID:${s}:${u}`);else if(p.source!=="fact"||Object.keys(p).some(m=>!["source","path"].includes(m))||!Ea(p.path)||!fa(i,p.path))r.push(`WORKFLOW_STEP_FACT_PATH_INVALID:${s}:${u}`);else if(l){let m=Ia(i,p.path),E=d.inputSchema.properties[u],A=Array.isArray(m.type)?m.type:[m.type],O=Array.isArray(E.type)?E.type:[E.type];A.some(y=>!O.includes(y)&&!(y==="integer"&&O.includes("number")))&&r.push(`WORKFLOW_STEP_FACT_TYPE_MISMATCH:${s}:${u}`)}}}let a=(s,d)=>{let c=new Set,l=[e.startAt||""];for(;l.length&&c.size<=200;){let u=l.shift();if(!(u===d||c.has(u)||!o[u])){if(u===s)return!0;c.add(u),l.push(...pa(o[u]))}}return!1};for(let[s,d]of Object.entries(o)){if(!G(d))continue;let c=d.kind==="action"?Object.values(d.inputs||{}).flatMap(u=>u?.source==="fact"?[u.path]:[]):(Array.isArray(d.branches)?d.branches:[]).flatMap(u=>oi(u?.when)),l=t?.bindings?.[d.binding];l&&c.push(...[l.inputPath,l.departmentIdFrom,l.resourceIdFrom,l.scope?.valueFrom].filter(u=>typeof u=="string"));for(let u of c.filter(p=>typeof p=="string"&&p.startsWith("steps."))){let p=u.split(".")[1];(o[p]?.kind!=="action"||p===s||!fa(i,u)||a(s,p))&&r.push(`WORKFLOW_STEP_OUTPUT_NOT_AVAILABLE:${s}:${u}`)}}if(t)for(let[,s]of n.filter(([,d])=>!te(d))){let d=new Set,c=[s.next];for(;c.length&&d.size<=200;){let l=c.shift();if(d.has(l)||!G(o[l]))continue;d.add(l);let u=o[l];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)&&r.push(`WORKFLOW_STEP_NEXT_PROVIDER_REQUIRES_PREPARED_RESULT:${l}`);continue}c.push(...pa(u))}}}return[...new Set(r)]}function au(e,t){let o={};for(let[n,r]of Object.entries(e.inputs)){let i=r.source==="literal"?r.value:r.path.split(".").reduce((a,s)=>G(a)&&Object.hasOwn(a,s)?a[s]:void 0,t);i!==void 0&&(o[n]=i)}if(!ft(e.inputSchema,o))throw new Error("WORKFLOW_STEP_INPUT_SCHEMA_INVALID");return o}function ii(e,t,o){let n=So(e),r=[];Object.keys(n).length&&!o&&r.push("WORKFLOW_STEP_BACKEND_REQUIRED");for(let i of Object.keys(n)){let a=t.find(s=>s.code===i);(!a||a.execution||a.action||!Array.isArray(a.eventTypes)||a.eventTypes.length!==1||a.eventTypes[0]!==To||!G(a.filter)||Object.keys(a.filter).length!==1||!G(a.filter.workflowStep)||Object.keys(a.filter.workflowStep).length!==1||a.filter.workflowStep.handlerCode!==i||!G(a.payload)||a.payload.includeChanges!==!1||!Array.isArray(a.payload.fields)||a.payload.fields.length)&&r.push(`WORKFLOW_STEP_SUBSCRIPTION_INVALID:${i}`)}for(let i of t)(i.eventTypes?.includes(To)&&!n[i.code]||i.filter?.workflowStep&&!n[i.code])&&r.push(`WORKFLOW_STEP_HANDLER_NOT_DECLARED:${i.code}`);return r}function So(e){let t={};for(let o of e){let n=fn(o);if(n.length)throw new Error(n.join("; "));for(let r of[...Object.values(o.nodes||{}),...o.authoring?.businessSteps||[]]){if(!r.handler||te(r))continue;let i={version:r.handler.version,mode:r.handler.mode,...r.handler.dataTransaction?{dataTransaction:!0}:{},inputSchema:r.inputSchema,outputSchema:r.outputSchema},a=t[r.handler.code];if(a&&!Ut(a,i))throw new Error(`WORKFLOW_STEP_HANDLER_CONTRACT_CONFLICT:${r.handler.code}`);t[r.handler.code]=i}}return t}var si=e=>!!e&&typeof e=="object"&&!Array.isArray(e),du=e=>typeof e=="string"&&e.length<=255&&e.split(".").length<=8&&/^[A-Za-z][A-Za-z0-9_-]*(\.[A-Za-z][A-Za-z0-9_-]*)*$/.test(e)&&!e.split(".").some(t=>["__proto__","prototype","constructor"].includes(t));function gt(e){if(e?.provider!=="supervisor_chain")return e&&["from","until","continuous","missing"].some(n=>e[n]!==void 0)?["WORKFLOW_SUPERVISOR_CHAIN_PROVIDER_INVALID"]:[];let t=e.from,o=e.until;return!si(e)||Object.keys(e).some(n=>!["provider","from","until","continuous","missing","min","max","delegatable"].includes(n))||!(t==="initiator"||si(t)&&Object.keys(t).length===1&&du(t.field))||!(o==="top"||si(o)&&Object.keys(o).length===1&&(Number.isInteger(o.level)&&o.level>=1&&o.level<=20||typeof o.roleCode=="string"&&/^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$/.test(o.roleCode)&&o.roleCode.length<=128))||e.continuous!==void 0&&typeof e.continuous!="boolean"||e.missing!==void 0&&!["skip_level","block"].includes(e.missing)?["WORKFLOW_SUPERVISOR_CHAIN_BINDING_INVALID"]:[]}function _t(e,t){let o=[];for(let[n,r]of Object.entries(t?.bindings||{}))o.push(...gt(r).map(i=>`${i}:${n}`));for(let[n,r]of Object.entries(e?.nodes||{})){let i=t?.bindings?.[r?.binding];if(!(i?.provider!=="supervisor_chain"||gt(i).length))if(["approval","handle"].includes(r.kind)||o.push(`WORKFLOW_SUPERVISOR_CHAIN_HUMAN_REQUIRED:${n}`),i.continuous!==!1&&r.mode!=="sequence"&&o.push(`WORKFLOW_SUPERVISOR_CHAIN_SEQUENCE_REQUIRED:${n}`),i.from==="initiator")(!e.organizationContext?.department||e.organizationContext.department.source==="none")&&o.push(`WORKFLOW_SUPERVISOR_CHAIN_DEPARTMENT_CONTEXT_REQUIRED:${n}`);else{let a=mt(e);for(let d of i.from.field.split("."))a=a?.properties?.[d];let s=Array.isArray(a?.type)?a.type.filter(d=>d!=="null")[0]:a?.type;(!a||!["string","array","object"].includes(s))&&o.push(`WORKFLOW_SUPERVISOR_CHAIN_USER_FACT_REQUIRED:${n}`)}}return o}function cu(e){let t=e.from==="initiator"?"\u7533\u8BF7\u4EBA":`\u6210\u5458\u53D8\u91CF ${e.from.field}`,o=e.until==="top"?"\u6700\u4E0A\u7EA7":"level"in e.until?`\u7B2C ${e.until.level} \u7EA7`:`\u89D2\u8272 ${e.until.roleCode}`;return`${t}\u7684\u4E3B\u7BA1\u94FE \xB7 \u81F3${o} \xB7 ${e.continuous!==!1?"\u9010\u7EA7\u529E\u7406":"\u4EC5\u7EC8\u70B9\u529E\u7406"}`}function pn(e){let t=[];for(let[o,n]of Object.entries(e?.nodes||{})){if(n?.reminders===void 0)continue;let r=n.reminders;(!["approval","handle","correction"].includes(n.kind)||!r||typeof r!="object"||Array.isArray(r)||Object.keys(r).length!==4||Object.keys(r).some(i=>!["afterSeconds","everySeconds","max","to"].includes(i))||!Number.isInteger(r.afterSeconds)||r.afterSeconds<1||r.afterSeconds>2592e3||!Number.isInteger(r.everySeconds)||r.everySeconds<1||r.everySeconds>2592e3||!Number.isInteger(r.max)||r.max<1||r.max>10||!Array.isArray(r.to)||r.to.length!==1||r.to[0]!=="handlers")&&t.push(`WORKFLOW_REMINDERS_INVALID:${o}`)}return t}function ke(e){return e.returnPolicy?Array.isArray(e.returnPolicy.targets)?e.returnPolicy.targets.filter(t=>typeof t?.nodeId=="string").map(t=>t.nodeId):[]:Array.isArray(e.returnTargets)?[...e.returnTargets]:[]}function lu(e,t,o){if(t.returnPolicy)return Array.isArray(t.returnPolicy.targets)?t.returnPolicy.targets.find(n=>n.nodeId===o):void 0;if(t.returnTargets?.includes(o))return{nodeId:o,routes:e.nodes[o]?.kind==="correction"?["replay"]:["replay","resume"],defaultRoute:"replay"}}function mn(e){let t=[];for(let[o,n]of Object.entries(e?.nodes||{})){let r=n?.returnPolicy;if(r===void 0)continue;if(!["approval","handle"].includes(n.kind)||!r||typeof r!="object"||Array.isArray(r)||Object.keys(r).some(a=>a!=="targets")||!Array.isArray(r.targets)||r.targets.length>20){t.push(`WORKFLOW_RETURN_POLICY_INVALID:${o}`);continue}let i=new Set;for(let a of r.targets)(!a||typeof a!="object"||Object.keys(a).some(s=>!["nodeId","routes","defaultRoute"].includes(s))||typeof a.nodeId!="string"||a.nodeId===o||i.has(a.nodeId)||!["approval","handle","correction"].includes(e.nodes?.[a.nodeId]?.kind))&&t.push(`WORKFLOW_RETURN_TARGET_INVALID:${o}`),a?.nodeId&&i.add(a.nodeId),(!Array.isArray(a?.routes)||a.routes.length<1||a.routes.length>2||new Set(a.routes).size!==a.routes.length||a.routes.some(s=>!["replay","resume"].includes(s))||!a.routes.includes(a.defaultRoute))&&t.push(`WORKFLOW_RETURN_ROUTES_INVALID:${o}`);n.returnTargets&&(n.returnTargets.length!==i.size||n.returnTargets.some(a=>!i.has(a)))&&t.push(`WORKFLOW_RETURN_TARGETS_CONFLICT:${o}`)}return t}var Oa=2,ha=8,ai=e=>!!e&&typeof e=="object"&&!Array.isArray(e),uu=e=>typeof e=="string"&&/^[A-Za-z][A-Za-z0-9_-]{0,127}$/.test(e),ba=(e,t)=>e===t||e.startsWith(`${t}.`)||t.startsWith(`${e}.`);function gn(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==="parallel"?[...(Array.isArray(e.branches)?e.branches:[]).map(t=>t?.target),e.join]:"next"in e?[e.next]:[]}function Le(e){let t=[],o=[];if(!ai(e?.nodes))return{regions:o,errors:["WORKFLOW_PARALLEL_DOCUMENT_INVALID"]};let n=e.nodes;if(!Object.values(n).some(a=>a?.kind==="parallel"||a?.kind==="join"))return{regions:o,errors:t};if(Object.keys(n).length>200)return{regions:o,errors:["WORKFLOW_PARALLEL_NODE_LIMIT"]};let r=new Map,i=new Set;for(let a of Object.values(n)){if(a?.kind!=="parallel")continue;let s=n[a.join];if(s?.kind!=="join"||s.parallel!==a.id||i.has(a.join)){t.push(`WORKFLOW_PARALLEL_PAIR_INVALID:${a.id}`);continue}if(i.add(s.id),n[s.next]||t.push(`WORKFLOW_PARALLEL_TARGET_MISSING:${s.id}`),!Array.isArray(a.branches)||a.branches.length<Oa||a.branches.length>ha){t.push(`WORKFLOW_PARALLEL_BRANCH_LIMIT:${a.id}`);continue}let d={parallelNodeId:a.id,joinNodeId:s.id,branches:[]},c=new Set,l=new Set;for(let u of a.branches){if(!ai(u)||!uu(u.id)||typeof u.title!="string"||!u.title.trim()||u.title.length>255||c.has(u.id)){t.push(`WORKFLOW_PARALLEL_BRANCH_INVALID:${a.id}`);continue}c.add(u.id);let p=new Set,m=new Set,E=new Set,A=y=>{if(y===s.id)return;let _=n[y];if(!_){t.push(`WORKFLOW_PARALLEL_TARGET_MISSING:${a.id}:${y}`);return}if(_.kind==="end"){_.outcome!=="rejected"?t.push(`WORKFLOW_PARALLEL_BRANCH_END_INVALID:${a.id}:${u.id}:${y}`):l.add(y);return}if(_.kind==="parallel"||_.kind==="join"){t.push(`WORKFLOW_PARALLEL_NESTING_FORBIDDEN:${a.id}:${y}`);return}if(m.has(y)){t.push(`WORKFLOW_PARALLEL_CYCLE:${a.id}:${y}`);return}if(E.has(y))return;p.add(y),m.add(y);let b=gn(_);b.length||t.push(`WORKFLOW_PARALLEL_BRANCH_DANGLING:${a.id}:${y}`);for(let h of b)A(h);m.delete(y),E.add(y)};A(u.target);let O=new Set;for(let y of p){r.get(y)?t.push(`WORKFLOW_PARALLEL_BODY_OVERLAP:${a.id}:${u.id}:${y}`):r.set(y,{parallel:a.id,branch:u.id});let b=n[y];if(b.kind==="approval"||b.kind==="handle")for(let h of e.taskPages?.[b.taskPageCode||""]?.fields||[]){let f=b.fieldPolicy?.fields?.[h.code]||b.fieldPolicy?.default||"readonly";h.readonly!==!0&&(f==="edit"||f==="edit_required")&&O.add(h.code)}}d.branches.push({id:u.id,target:u.target,nodeIds:[...p].sort(),writableFields:[...O].sort()})}l.size>1&&t.push(`WORKFLOW_PARALLEL_REJECT_END_NOT_SHARED:${a.id}`),o.push(d)}for(let a of Object.values(n))a?.kind==="join"&&!i.has(a.id)&&t.push(`WORKFLOW_PARALLEL_JOIN_ORPHAN:${a.id}`);r.has(e.startAt)&&t.push(`WORKFLOW_PARALLEL_EXTERNAL_ENTRY:${e.startAt}`);for(let[a,s]of Object.entries(n))if(ai(s)){for(let d of gn(s)){let c=r.get(d),l=r.get(a),u=c&&n[c.parallel],p=u?.kind==="parallel"&&a===u.id&&u.branches.some(m=>m.id===c.branch&&m.target===d);if(c&&!p&&(!l||l.parallel!==c.parallel||l.branch!==c.branch)&&t.push(`WORKFLOW_PARALLEL_EXTERNAL_ENTRY:${a}:${d}`),n[d]?.kind==="join"&&s.kind!=="parallel"){let m=n[d];(!l||l.parallel!==m.parallel)&&t.push(`WORKFLOW_PARALLEL_EXTERNAL_JOIN:${a}:${d}`)}}if(s.kind==="approval"||s.kind==="handle"){let d=r.get(a);for(let c of ke(s)){let l=r.get(c);d&&(!l||l.parallel!==d.parallel||l.branch!==d.branch)&&t.push(`WORKFLOW_PARALLEL_RETURN_CROSSES_BRANCH:${a}:${c}`),!d&&l&&t.push(`WORKFLOW_PARALLEL_RETURN_ENTERS_BRANCH:${a}:${c}`)}}}for(let a of o)for(let s of a.branches){let d=a.branches.filter(l=>l.id!==s.id);for(let l of s.writableFields)d.some(u=>u.writableFields.includes(l))&&t.push(`WORKFLOW_PARALLEL_SHARED_WRITABLE_FIELD:${a.parallelNodeId}:${l}`);let c=d.flatMap(l=>[...Object.entries(e.subject?.factProjection||{}).filter(([,u])=>l.writableFields.some(p=>ba(p,u))).map(([u])=>u),...l.nodeIds.filter(u=>n[u]?.kind==="action").map(u=>`steps.${u}`)]);for(let l of s.nodeIds){let u=n[l];if(u.kind==="action")for(let p of Object.values(u.inputs||{}))p.source==="fact"&&c.some(m=>ba(m,p.path))&&t.push(`WORKFLOW_PARALLEL_SIBLING_INPUT:${l}:${p.path}`)}}return{regions:o,errors:[...new Set(t)]}}function _n(e){return Le(e).errors}function fu(e){if(!["running","returned"].includes(e.status))return!1;if(!e.forkVisitId&&!e.branchId)return e.currentNodeId===e.nodeId;let t=e.fork;return!!t&&e.forkVisitId===t.forkVisitId&&e.branchId===t.branchId&&t.status==="active"&&e.currentNodeId===t.parallelNodeId&&t.activation.includes(e.branchId)&&!t.arrived.includes(e.branchId)&&e.activeToken}function An(e){let t=[];for(let[o,n]of Object.entries(e?.nodes||{})){if(n?.kind!=="handle"){n?.allowedOperations?.includes("complete")&&t.push(`WORKFLOW_HANDLE_COMMAND_ONLY:${o}`);continue}(!n.next||!e.nodes?.[n.next])&&t.push(`WORKFLOW_HANDLE_TARGET_MISSING:${o}`),(["onApprove","onReject","initiatorApprovalPolicy","completionDeadline"].some(r=>r in n)||n.emptyPolicy==="skip")&&t.push(`WORKFLOW_HANDLE_APPROVAL_POLICY_FORBIDDEN:${o}`),(!Array.isArray(n.allowedOperations)||!n.allowedOperations.includes("complete")||n.allowedOperations.some(r=>!["complete","save_form","transfer","delegate","return"].includes(r)))&&t.push(`WORKFLOW_HANDLE_OPERATIONS_INVALID:${o}`),(!Array.isArray(n.requiredOperations)||!n.requiredOperations.includes("complete"))&&t.push(`WORKFLOW_HANDLE_COMPLETE_REQUIRED:${o}`)}return t}function Do(e,t){let o=()=>{throw Object.assign(new Error("DATA_MUTATION_GRANT_INVALID"),{code:"DATA_MUTATION_GRANT_INVALID"})};if(!Array.isArray(e)||e.length<1||e.length>32)return o();let n=new Set;return e.map(i=>!i||typeof i!="object"||Array.isArray(i)||Object.keys(i).some(a=>!["resourceCode","operations","fieldCodes","maxOperations","allowRuntimeWorker"].includes(a))||typeof i.resourceCode!="string"||!/^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$/.test(i.resourceCode)||i.allowRuntimeWorker!==void 0&&i.allowRuntimeWorker!==!0||n.has(i.resourceCode)||t&&!t.has(i.resourceCode)||!Array.isArray(i.operations)||i.operations.length<1||i.operations.length>4||new Set(i.operations).size!==i.operations.length||i.operations.some(a=>!["create","update","delete","increment"].includes(a))||!Array.isArray(i.fieldCodes)||i.fieldCodes.length>128||new Set(i.fieldCodes).size!==i.fieldCodes.length||i.operations.some(a=>a!=="delete")&&!i.fieldCodes.length||i.fieldCodes.some(a=>typeof a!="string"||!/^[A-Za-z][A-Za-z0-9_]{0,62}$/.test(a)||t&&!t.get(i.resourceCode)?.has(a))||!Number.isSafeInteger(i.maxOperations)||i.maxOperations<1||i.maxOperations>1e3?o():(n.add(i.resourceCode),{resourceCode:i.resourceCode,operations:[...i.operations].sort(),fieldCodes:[...i.fieldCodes].sort(),maxOperations:i.maxOperations,...i.allowRuntimeWorker?{allowRuntimeWorker:!0}:{}})).sort((i,a)=>i.resourceCode.localeCompare(a.resourceCode))}var og=5,rg=20,ig=50,sg=50,ag=100,Mt=class extends Error{constructor(o,n){super(o);this.code=o;this.pointer=n;this.name="NativeDataPolicyExpressionV2Error"}code;pointer};function At(e,t){let o=[],n=(r,i,a)=>{a>5&&En("NATIVE_DATA_POLICY_EXPRESSION_DEPTH_EXCEEDED",i);let s=Na(r,i),d=["allOf","anyOf"].filter(u=>u in s);if(d.length===0){o.push({rule:s,pointer:i}),o.length>50&&En("NATIVE_DATA_POLICY_EXPRESSION_LEAVES_EXCEEDED",i);return}let c=d[0],l=s[c];(d.length!==1||Object.keys(s).length!==1||!Array.isArray(l)||l.length<1||l.length>20)&&En("NATIVE_DATA_POLICY_EXPRESSION_GROUP_INVALID",i),l.forEach((u,p)=>n(u,`${i}/${c}/${p}`,a+1))};return n(e,t,1),o}function ci(e,t){At(e,t);let o=(n,r)=>{let i=Na(n,r);if(Array.isArray(i.allOf))return di(i.allOf.flatMap((a,s)=>o(a,`${r}/allOf/${s}`)),r);if(Array.isArray(i.anyOf)){let a=[[]];return i.anyOf.forEach((s,d)=>{let c=o(s,`${r}/anyOf/${d}`);a=di(a.flatMap(l=>c.map(u=>[...l,...u])),r)}),a}return[[i]]};return di(o(e,t),t)}function di(e,t){let o=e.reduce((n,r)=>n+r.length,0);return(e.length>50||o>100)&&En("NATIVE_DATA_POLICY_EXPRESSION_EXPANSION_EXCEEDED",t),e}function Na(e,t){return(!e||typeof e!="object"||Array.isArray(e))&&En("NATIVE_DATA_POLICY_EXPRESSION_NODE_INVALID",t),e}function En(e,t){throw new Mt(e,t)}var fe=class extends Error{constructor(o,n){super(`${o}: ${n}`);this.code=o;this.pointer=n}code;pointer},pu=/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/,Ra=/^[A-Za-z_][A-Za-z0-9_]{0,127}$/;function wa(e,t){if(!e||typeof e!="object"||Array.isArray(e))throw new fe("NATIVE_PARENT_READ_INVALID",t);let o=e;if(Object.keys(o).some(n=>!["resourceCode","subtableFieldCode"].includes(n))||typeof o.resourceCode!="string"||o.resourceCode.length>64||!pu.test(o.resourceCode)||typeof o.subtableFieldCode!="string"||!Ra.test(o.subtableFieldCode))throw new fe("NATIVE_PARENT_READ_INVALID",t);return{resourceCode:o.resourceCode,subtableFieldCode:o.subtableFieldCode}}function Ta(e,t){return[...(Array.isArray(e.rules)?e.rules:[]).map((o,n)=>({rule:o,pointer:`${t}/rules/${n}`,base:!0})),...e.readExpression===void 0?[]:At(e.readExpression,`${t}/readExpression`).map(o=>({...o,base:!1}))]}function In(e,t,o,n){let r=wa(o,n),i=e.find(m=>m.code===r.resourceCode),a=e.find(m=>m.code===t),d=(Array.isArray(i?.schema?.fields)?i.schema.fields:[]).find(m=>m.code===r.subtableFieldCode);if(!i||!a||i.code===a.code||d?.type!=="subtable"||d.subtable?.resourceCode!==t)throw new fe("NATIVE_PARENT_READ_BINDING_INVALID",n);if(e.flatMap(m=>(Array.isArray(m.schema?.fields)?m.schema.fields:[]).filter(E=>E.type==="subtable"&&E.subtable?.resourceCode===t).map(E=>({resource:m,field:E}))).length!==1)throw new fe("NATIVE_PARENT_READ_PARENT_AMBIGUOUS",n);let l=d.subtable.foreignKey,p=(Array.isArray(a.schema?.fields)?a.schema.fields:[]).find(m=>m.code===l);if(typeof l!="string"||!Ra.test(l)||p?.type!=="uuid")throw new fe("NATIVE_PARENT_READ_FOREIGN_KEY_INVALID",n);return{...r,childResourceCode:t,foreignKey:l,...d.subtable.orderField?{orderField:d.subtable.orderField}:{}}}function li(e,t,o="/config/authz/dataPolicies"){let n=new Map;for(let[r,i]of t.entries())for(let a of Ta(i,`${o}/${r}`)){if(a.rule.parentRead===void 0)continue;if(Object.keys(a.rule).some(l=>!["parentRead","roleCodes"].includes(l)))throw new fe("NATIVE_PARENT_READ_RULE_KEYS_INVALID",a.pointer);if(a.base&&(i.operations?.length!==1||i.operations[0]!=="read"))throw new fe("NATIVE_PARENT_READ_READ_ONLY",a.pointer);if(e.find(l=>l.code===i.resourceCode)?.dataPolicyCode!==i.code)throw new fe("NATIVE_PARENT_READ_POLICY_BINDING_INVALID",a.pointer);let d=In(e,i.resourceCode,a.rule.parentRead,`${a.pointer}/parentRead`),c=n.get(i.resourceCode);if(c&&c!==d.resourceCode)throw new fe("NATIVE_PARENT_READ_PARENT_AMBIGUOUS",a.pointer);n.set(i.resourceCode,d.resourceCode)}for(let[r,i]of n)if(n.has(i))throw new fe("NATIVE_PARENT_READ_MULTI_HOP_FORBIDDEN",`${o}/${t.findIndex(a=>a.resourceCode===r)}`)}function ko(e){return Ta(e,"/dataPolicy").some(t=>t.rule.parentRead!==void 0)}var Da=e=>!!e&&typeof e=="object"&&!Array.isArray(e),ka=(e,t)=>Object.keys(e).length===t.length&&Object.keys(e).every(o=>t.includes(o)),Ca=e=>typeof e=="string"&&/^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$/.test(e)&&e.length<=100,Sa=e=>typeof e=="string"&&/^[a-f0-9]{8}(-[a-f0-9]{4}){3}-[a-f0-9]{12}$/i.test(e);function ui(e){throw new Error(`OPENXIANGDA_WORKFLOW_STAGE_${e}`)}function fi(e){(!Da(e)||!ka(e,["workflowCode","resourceCode","actor","runningNodeIds","allowedStatuses"])||!Ca(e.workflowCode)||!Ca(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)&&ui("POLICY_INVALID")}function mu(e){(!Da(e)||!ka(e,["instanceId","subjectRecordId","expectedInstanceSequence"])||!Sa(e.instanceId)||!Sa(e.subjectRecordId)||!Number.isSafeInteger(e.expectedInstanceSequence)||e.expectedInstanceSequence<0)&&ui("GUARD_INVALID")}function gu(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(r=>r.kind==="value"&&r.field==="revision"&&r.operator==="eq"&&Number.isSafeInteger(r.value)&&Number(r.value)>0))||ui("SOURCE_GUARD_REQUIRED")}var _u={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 Bt=class extends Error{constructor(o,n){super(o);this.code=o;this.pointer=n}code;pointer},Ee=e=>e&&typeof e=="object"&&!Array.isArray(e)?e:{},La=(e,t)=>e===t||e==="*"||e.endsWith(":*")&&t.startsWith(e.slice(0,-1));function pi(e){let{policy:t,resource:o,baselineRoleCode:n,baselineCapabilities:r,pointer:i}=e,a=A=>A===void 0||A===!0||Array.isArray(A)&&A.length>0&&A.every(O=>typeof O=="string"&&O.length>0&&!e.baselineDeniedCapabilities?.some(y=>La(y,O))&&r.some(y=>La(y,O))),s=(A,O="")=>{throw new Bt(A,`${i}/publicRead${O}`)},d=Ee(t.publicRead);(!t.publicRead||Object.keys(d).length!==1||!Object.hasOwn(d,"fields")||!Array.isArray(d.fields)||d.fields.length<1||d.fields.length>1e3||d.fields.some(A=>typeof A!="string"||!/^[A-Za-z][A-Za-z0-9_]{0,62}$/.test(A))||new Set(d.fields).size!==d.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||!a([Ee(o.capabilities).read]))&&s("AUTHENTICATED_PUBLIC_READ_BASELINE_OR_RESOURCE_INVALID");let c=Ee(o),l=Ee(c.schema).fields;(!Array.isArray(l)||!l.length)&&s("AUTHENTICATED_PUBLIC_READ_RESOURCE_FIELDS_MISSING");let u=new Map(l.map(A=>[String(Ee(A).code),Ee(A)])),p=new Set(d.fields),m=Ee(c.fieldPolicies);for(let A of p){let O=Ee(u.get(A));(!u.has(A)||O.system===!0||Ee(Ee(c.surface).fields)[A]?.system===!0||ct.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}`),a(Ee(m[A]).read)||s("AUTHENTICATED_PUBLIC_READ_FIELD_NOT_BASELINE_READABLE",`/fields/${A}`)}let E=[...u.keys()].filter(A=>!p.has(A));for(let A of E)a(Ee(m[A]).read)&&s("AUTHENTICATED_PUBLIC_READ_PRIVATE_FIELD_ACCESSIBLE",`/fields/${A}`);E.length&&sn.some(A=>a(Ee(m[A]).read))&&s("AUTHENTICATED_PUBLIC_READ_PRIVATE_HISTORY_ACCESSIBLE")}var gi=["exact-v1","nfkc-space-v1","nfkc-upper-ascii-v1"],gg=256,Kt=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"},mi=e=>!!(e&&typeof e=="object"&&!Array.isArray(e)),de=(e,t)=>{throw new Kt(e,t)},Lo=(e,t)=>e<t?-1:e>t?1:0,yn=(e,t,o)=>{Object.keys(e).some(n=>!t.includes(n))&&de(o,"\u4E0D\u652F\u6301\u672A\u77E5\u5C5E\u6027")};function _i(e,t,o="/uniqueKeys"){if(e===void 0)return;if(!Array.isArray(e)||e.length>8)return de(o,"\u6BCF\u8D44\u6E90\u6700\u591A 8 \u6761\u89C4\u5219");let n=new Map(t.map(i=>[i.code,i])),r=new Set;return e.map((i,a)=>{let s=`${o}/${a}`;if(!mi(i))return de(s,"\u89C4\u5219\u5FC5\u987B\u662F\u5BF9\u8C61");if(yn(i,["code","fields","when"],s),typeof i.code!="string"||!/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/.test(i.code)||i.code.length>20||r.has(i.code))return de(`${s}/code`,"\u9700\u8981\u4E0D\u91CD\u590D\u4E14\u4E0D\u8D85\u8FC7 20 \u5B57\u7B26\u7684 lower-kebab-case \u6807\u8BC6");if(r.add(i.code),!Array.isArray(i.fields)||i.fields.length<1||i.fields.length>4)return de(`${s}/fields`,"\u5FC5\u987B\u9009\u62E9 1 \u5230 4 \u4E2A\u5B57\u6BB5");let d=new Set,c=i.fields.map((m,E)=>{let A=`${s}/fields/${E}`;if(!mi(m))return de(A,"\u5B57\u6BB5\u5FC5\u987B\u662F\u5BF9\u8C61");yn(m,["fieldCode","normalizer"],A);let O=n.get(m.fieldCode);if(!O||!["text.short","uuid","option.single","resource-ref.single","user.single"].includes(O.type)||d.has(m.fieldCode))return de(`${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");d.add(m.fieldCode);let y=m.normalizer===void 0?"exact-v1":m.normalizer;return!gi.includes(y)||O.type!=="text.short"&&y!=="exact-v1"?de(`${A}/normalizer`,"\u5F52\u4E00\u5316\u65B9\u5F0F\u4E0D\u652F\u6301\u6216\u4E0E\u5B57\u6BB5\u7C7B\u578B\u4E0D\u7B26"):{fieldCode:O.code,normalizer:y}}).sort((m,E)=>Lo(m.fieldCode,E.fieldCode)),l=i.when===void 0?[]:i.when;if(!Array.isArray(l)||l.length>4)return de(`${s}/when`,"\u6700\u591A 4 \u4E2A\u5408\u53D6\u6761\u4EF6");let u=new Set,p=l.map((m,E)=>{let A=`${s}/when/${E}`;if(!mi(m))return de(A,"\u6761\u4EF6\u5FC5\u987B\u662F\u5BF9\u8C61");let O=n.get(m.fieldCode);if(!O)return de(`${A}/fieldCode`,"\u5B57\u6BB5\u4E0D\u5B58\u5728");let y;if(m.operator==="empty"||m.operator==="nonempty"){if(yn(m,["fieldCode","operator"],A),O.type!=="text.short")return de(A,"\u7A7A\u503C\u6761\u4EF6\u4EC5\u652F\u6301\u77ED\u6587\u672C");y={fieldCode:O.code,operator:m.operator}}else if(m.operator==="in"||m.operator==="notIn"){yn(m,["fieldCode","operator","values"],A);let b=new Set((O.options??[]).map(h=>h.value));if(O.type!=="option.single"||!Array.isArray(m.values)||m.values.length<1||m.values.length>16||m.values.some(h=>typeof h!="string"||h.length<1||h.length>128||!b.has(h))||new Set(m.values).size!==m.values.length)return de(A,"\u96C6\u5408\u6761\u4EF6\u9700\u8981 1 \u5230 16 \u4E2A\u4E0D\u91CD\u590D\u7684\u5DF2\u58F0\u660E\u5355\u9009\u503C");y={fieldCode:O.code,operator:m.operator,values:[...m.values].sort(Lo)}}else if(m.operator==="eq"||m.operator==="ne"){if(yn(m,["fieldCode","operator","value"],A),O.type!=="boolean"||typeof m.value!="boolean")return de(A,"\u7B49\u503C\u6761\u4EF6\u4EC5\u652F\u6301\u5E03\u5C14\u5B57\u6BB5\u548C\u5E03\u5C14\u503C");y={fieldCode:O.code,operator:m.operator,value:m.value}}else return de(`${A}/operator`,"\u53EA\u652F\u6301 empty\u3001nonempty\u3001in\u3001notIn \u548C\u5E03\u5C14 eq\u3001ne");let _=JSON.stringify(y);return u.has(_)?de(A,"\u6761\u4EF6\u4E0D\u80FD\u91CD\u590D"):(u.add(_),y)}).sort((m,E)=>Lo(JSON.stringify(m),JSON.stringify(E)));return{code:i.code,fields:c,when:p}}).sort((i,a)=>Lo(i.code,a.code))}function Ai(e,t){let o=new Set(e.filter(n=>n.type==="user.single").map(n=>n.code));return t?.some(n=>n.fields.some(r=>o.has(r.fieldCode))||n.when?.some(r=>r.operator==="eq"||r.operator==="ne"))?"1.1.0":"1.0.0"}var vo={type:"string",pattern:"^[A-Za-z_][A-Za-z0-9_]{0,62}$"},Au={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:vo,normalizer:{enum:[...gi]}}}},when:{type:"array",maxItems:4,uniqueItems:!0,items:{oneOf:[{type:"object",additionalProperties:!1,required:["fieldCode","operator"],properties:{fieldCode:vo,operator:{enum:["empty","nonempty"]}}},{type:"object",additionalProperties:!1,required:["fieldCode","operator","values"],properties:{fieldCode:vo,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:vo,operator:{enum:["eq","ne"]},value:{type:"boolean"}}}]}}}}};var va={"openxiangda.workflow.instance.completed.v2":"commit","openxiangda.workflow.instance.rejected.v2":"release","openxiangda.workflow.instance.withdrawn.v2":"release"};function Pa(e,t){let o=()=>{throw new Error("NATIVE_EVENT_DECIMAL_RESERVATION_INVALID")},n=p=>!p||typeof p!="object"||Array.isArray(p)?o():p,r=n(e);if(Object.keys(r).some(p=>!["resourceCode","workflowCode","outcomes"].includes(p))||typeof r.resourceCode!="string"||!/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/.test(r.resourceCode)||typeof r.workflowCode!="string"||!/^[A-Za-z0-9._:-]{1,128}$/.test(r.workflowCode)||t.execution!==void 0||!Array.isArray(r.outcomes)||!r.outcomes.length||r.outcomes.length>3)return o();let i=t.resources.find(p=>p.code===r.resourceCode),a=t.reservations.find(p=>p.mode==="reserve"&&p.resourceCode===r.resourceCode),s=t.workflows.find(p=>p.code===r.workflowCode);if(!i||!a||!s||s.resourceCode!==i.code)return o();let d=i.fields.find(p=>p.code===a.statusFieldCode);if(d?.type!=="option.single")return o();let c=new Set(d.options?.map(p=>p.value)),l=new Set,u=r.outcomes.map(p=>{let m=n(p),E=m.eventType;return Object.keys(m).some(A=>!["eventType","mode","eligibleChildStatuses"].includes(A))||typeof E!="string"||!Object.prototype.hasOwnProperty.call(va,E)||!t.eventTypes.includes(E)||l.has(E)||m.mode!==va[E]||!Array.isArray(m.eligibleChildStatuses)||!m.eligibleChildStatuses.length||m.eligibleChildStatuses.length>16||new Set(m.eligibleChildStatuses).size!==m.eligibleChildStatuses.length||m.eligibleChildStatuses.some(A=>typeof A!="string"||!/^[A-Za-z0-9._:-]{1,128}$/.test(A)||!c.has(A))?o():(l.add(E),{eventType:E,mode:m.mode,eligibleChildStatuses:[...m.eligibleChildStatuses].sort()})}).sort((p,m)=>p.eventType.localeCompare(m.eventType));return{resourceCode:r.resourceCode,workflowCode:r.workflowCode,outcomes:u}}function $a(e,t){let o=n=>Array.isArray(n)?n.filter(r=>r&&typeof r=="object"&&!Array.isArray(r)):[];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(r=>({code:r.code,type:r.type,options:o(r.options).map(i=>({value:i.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 Po=class extends Error{constructor(o,n){super(n);this.pointer=o}pointer;code="NATIVE_EVENT_ACTION_INVALID"};function Ei(e,t,o="/events/subscriptions"){if(e.execution===void 0)return;let n=(A,O)=>{throw new Po(`${o}${A}`,O)},r=(A,O,y)=>((!A||typeof A!="object"||Array.isArray(A)||Object.keys(A).some(_=>!y.includes(_)))&&n(O,"Invalid action object or unsupported property"),A),i=r(e.execution,"/execution",["kind","version","operations"]);(i.kind!=="native-data"||i.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 a=e.filter?.resourceCodes;(!Array.isArray(a)||!a.length||a.length>20)&&n("/filter/resourceCodes","Native actions require explicit source resources");let s=new Map(t.map(A=>[A.code,A])),d=a.map(A=>{let O=s.get(A);return O||n("/filter/resourceCodes","Unknown source resource"),new Set((O.schema?.fields||[]).map(y=>y.code))}),c=new Set(e.payload?.fields||[]),l=e.payload?.includeChanges===!0,u=(A,O)=>{let y=r(A,O,["source","path","value"]);if(y.source==="literal"){(!Object.hasOwn(y,"value")||Object.hasOwn(y,"path"))&&n(O,"Literal binding requires only value");let f;try{f=JSON.stringify(y.value)}catch{n(O,"Literal must be JSON")}return(f===void 0||Buffer.byteLength(f)>65536)&&n(O,"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(O,"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(O,"Invalid event path");let b=/^data\.projection\.([A-Za-z][A-Za-z0-9_]{0,62})$/.exec(y.path),h=/^data\.changes\.([A-Za-z][A-Za-z0-9_]{0,62})\.(before|after)$/.exec(y.path);if(b||h){let f=(b||h)[1];d.some(I=>!I.has(f))&&n(O,"Source field must exist on every filtered resource"),c.add(f),h&&(l=!0)}else["id","time","type","subject","data.recordId","data.revision","data.operation","data.resourceCode"].includes(y.path)||n(O,"Event path is not part of the data event contract");return{source:"event",path:y.path}};(!Array.isArray(i.operations)||i.operations.length<1||i.operations.length>16)&&n("/execution/operations","Expected 1 to 16 operations");let p={},m=i.operations.map((A,O)=>{let y=`/execution/operations/${O}`,_=r(A,y,["operation","resourceCode","data","id","expectedRevision"]);["create","update","delete"].includes(_.operation)||n(y,"Unsupported Native operation");let b=s.get(_.resourceCode);b||n(y,"Unknown action target resource");let h=new Map((b.schema?.fields||[]).map(I=>[I.code,I])),f=_.data===void 0?{}:r(_.data,`${y}/data`,[...h.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(I=>h.get(I)?.type==="serial-number")&&n(y,"Generated fields cannot be assigned"),p[_.resourceCode]=ee(b),{operation:_.operation,resourceCode:_.resourceCode,..._.operation==="create"?{}:{id:u(_.id,`${y}/id`),expectedRevision:u(_.expectedRevision,`${y}/expectedRevision`)},..._.operation==="delete"?{}:{data:Object.fromEntries(Object.entries(f).map(([I,R])=>[I,u(R,`${y}/data/${I}`)]))}}});(c.size>32||[...c].some(A=>d.some(O=>!O.has(A))))&&n("/payload/fields","Payload must contain at most 32 declared source fields");let E={kind:"native-data",version:1,operations:m,resourceDigests:p};return Buffer.byteLength(JSON.stringify(E))>65536&&n("/execution","Action plan exceeds 64 KiB"),{execution:{...E,digest:ee(E)},payload:{includeChanges:l,fields:[...c].sort()}}}function et(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)?e:void 0}function yi(e,t){if(e?.instanceCommands===void 0)return[];let o=et(e.instanceCommands);if(!o||!Object.keys(o).length||Object.keys(o).some(r=>!["withdraw","terminate"].includes(r)))return["WORKFLOW_INSTANCE_COMMAND_POLICIES_INVALID"];let n=[];for(let[r,i]of Object.entries(o)){let a=et(i),s=r==="withdraw"?["beforeFact","reasonRequired"]:["beforeFact","capability"];if(!a||!Object.keys(a).length||Object.keys(a).some(d=>!s.includes(d))||Object.hasOwn(a,"reasonRequired")&&typeof a.reasonRequired!="boolean"){n.push(`WORKFLOW_INSTANCE_COMMAND_POLICY_INVALID:${r}`);continue}if(r==="terminate"){let d=a.capability;(typeof d!="string"||d.length>255||!/^app:[a-z][a-z0-9]*(?:-[a-z0-9]+)*:[A-Za-z0-9:._-]+$/.test(d)||t&&(!d.startsWith(`app:${t.appCode}:`)||!t.capabilities.includes(d)))&&n.push("WORKFLOW_INSTANCE_TERMINATE_CAPABILITY_INVALID")}if(Object.hasOwn(a,"beforeFact")){let d=a.beforeFact,c=et(e.inputSchema),l=et(et(c?.properties)?.[d]),u=et(et(e.subject)?.factProjection)?.[d],p=t?.fields.get(u);(typeof d!="string"||!/^[A-Za-z][A-Za-z0-9_]{0,62}$/.test(d)||!Array.isArray(c?.required)||!c.required.includes(d)||l?.type!=="string"||l?.format!=="date-time"||typeof u!="string"||t&&(p?.type!=="datetime"||p.nullable===!0))&&n.push(`WORKFLOW_INSTANCE_COMMAND_DEADLINE_FACT_INVALID:${r}`)}}return n}function Eu(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 Iu(e){return e?.withdraw?.reasonRequired!==!1}function Ii(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,r,i,a,s]=t,d=t[8],c=new Date(Date.UTC(Number(o),Number(n),0)).getUTCDate();if(Number(n)<1||Number(n)>12||Number(r)<1||Number(r)>c||Number(i)>23||Number(a)>59||Number(s)>59||d!=="Z"&&(Number(d.slice(1,3))>23||Number(d.slice(4))>59))return null;let l=Date.parse(e);return Number.isFinite(l)?l:null}function yu(e,t,o,n){let r=e?.[t];if(!r||r.beforeFact===void 0)return null;let i=r.beforeFact,a=et(o),s=i&&a&&Object.hasOwn(a,i)?Ii(a[i]):null,d=n instanceof Date?n.getTime():Ii(n);return s===null||d===null||!Number.isFinite(d)?"WORKFLOW_V2_CANCELLATION_DEADLINE_INVALID":d<s?null:"WORKFLOW_V2_CANCELLATION_DEADLINE_PASSED"}var Ie=e=>e&&typeof e=="object"&&!Array.isArray(e)?e:{},Et=(e,t)=>typeof e=="string"&&!!e.trim()&&e.length<=t,bu=/^[A-Za-z][A-Za-z0-9_-]*(?:\.[A-Za-z][A-Za-z0-9_-]*){0,15}$/,bi=e=>typeof e=="string"&&e.length<=256&&bu.test(e)&&!e.split(".").some(t=>["__proto__","prototype","constructor"].includes(t));function $o(e,t){let o=Ie(e),n=!0;for(let r of t.split(".")){n&&=Array.isArray(o.required)&&o.required.includes(r);let i=Ie(o.properties)[r];if(!i||typeof i!="object")return null;o=Ie(i)}return{schema:o,required:n}}function qt(e){let t=new Set,o=[],n=2048,r=(i,a)=>{if(--n<0||a>20){o.push("WORKFLOW_EXPRESSION_BUDGET_EXCEEDED");return}let s=Ie(i);if(s.op==="path")bi(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 d of s.values){if(n<0)break;r(d,a+1)}else s.op==="not"||s.op==="exists"?r(s.value,a+1):["eq","neq","gt","gte","lt","lte","in","contains"].includes(String(s.op))?(r(s.left,a+1),r(s.right,a+1)):o.push("WORKFLOW_EXPRESSION_OPERATOR_INVALID")}};return r(e,0),{paths:[...t],errors:[...new Set(o)]}}function Oi(e){if(e?.readability===void 0)return[];let t=[],o=mt(e),n=Ie(e.readability);(Object.keys(n).some(s=>!["variables","logic"].includes(s))||!Object.keys(n).length)&&t.push("WORKFLOW_READABILITY_INVALID");let r=Ie(n.variables);n.variables!==void 0&&(typeof n.variables!="object"||Array.isArray(n.variables)||n.variables===null)&&t.push("WORKFLOW_VARIABLES_INVALID"),Object.keys(r).length>128&&t.push("WORKFLOW_VARIABLE_LIMIT_EXCEEDED");for(let[s,d]of Object.entries(r)){let c=Ie(d);(!bi(s)||!$o(o,s))&&t.push(`WORKFLOW_VARIABLE_SOURCE_UNKNOWN:${s}`),(!Et(c.label,160)||Object.keys(c).some(l=>!["label","unit","description"].includes(l))||c.unit!==void 0&&!Et(c.unit,32)||c.description!==void 0&&!Et(c.description,2e3))&&t.push(`WORKFLOW_VARIABLE_METADATA_INVALID:${s}`)}let i=n.logic===void 0?[]:n.logic;(!Array.isArray(i)||i.length>32)&&t.push("WORKFLOW_LOGIC_LIMIT_INVALID");let a=new Set;for(let s of Array.isArray(i)?i.slice(0,32):[]){let d=Ie(s),c=String(d.code||"");e.approvedDelegation&&c==="kernel-approved-delegation"&&t.push("WORKFLOW_LOGIC_PLATFORM_CODE_RESERVED"),(!/^[a-z][a-z0-9-]{2,63}$/.test(c)||a.has(c)||!Et(d.title,160)||!Et(d.description,4e3)||Object.keys(d).some(l=>!["code","title","description","phase","nodeId","inputPaths","outputPaths","source"].includes(l)))&&t.push(`WORKFLOW_LOGIC_METADATA_INVALID:${c}`),a.add(c),(!["submission","node_input","completion"].includes(String(d.phase))||d.phase==="node_input"&&!Ie(e.nodes)[String(d.nodeId)]||d.phase!=="node_input"&&d.nodeId!==void 0)&&t.push(`WORKFLOW_LOGIC_ANCHOR_INVALID:${c}`);for(let l of["inputPaths","outputPaths"]){let u=d[l];if(!(l==="outputPaths"&&u===void 0))if(!Array.isArray(u)||u.length>32||new Set(u).size!==u.length)t.push(`WORKFLOW_LOGIC_PATHS_INVALID:${c}:${l}`);else for(let p of u)(!bi(p)||!$o(o,p))&&t.push(`WORKFLOW_LOGIC_SOURCE_UNKNOWN:${c}:${String(p)}`)}if(d.source!==void 0){let l=Ie(d.source);(!Et(l.path,256)||String(l.path).startsWith("/")||String(l.path).includes("..")||String(l.path).includes("://")||!/^sha256:[a-f0-9]{64}$/.test(String(l.digest))||l.symbol!==void 0&&!Et(l.symbol,160)||Object.keys(l).some(u=>!["path","symbol","digest"].includes(u)))&&t.push(`WORKFLOW_LOGIC_SOURCE_REFERENCE_INVALID:${c}`)}}for(let s of Object.values(Ie(e.nodes))){let d=Ie(s),c=Array.isArray(d.branches)?d.branches:[];for(let l of c){if(!l.when)continue;let u=qt(l.when);t.push(...u.errors.map(p=>`${p}:${d.id}`));for(let p of u.paths)$o(o,p)||t.push(`WORKFLOW_VARIABLE_SOURCE_UNKNOWN:${d.id}:${p}`)}}return[...new Set(t)]}function On(e,t){let o=mt(e),n=Le(e).regions,r=[],i=new Map,a=[];for(let l of Object.values(e.nodes)){if(l.kind==="approval")for(let[u,p,m]of[["approve",l.onApprove,"\u540C\u610F"],["reject",l.onReject,"\u62D2\u7EDD"]])p&&r.push({id:`${l.id}:${u}`,from:l.id,to:p,kind:u,label:m,variablePaths:[]});if(l.kind==="approval"||l.kind==="handle")for(let u of new Set(ke(l)))e.nodes[u]?.kind==="correction"&&r.push({id:`${l.id}:return:${u}`,from:l.id,to:u,kind:"return",label:"\u9000\u56DE\u53D1\u8D77\u4EBA\u8865\u6B63",variablePaths:[]});if(l.kind==="parallel")for(let[u,p]of(l.branches||[]).entries()){let m=p.when?qt(p.when):{paths:[],errors:[]};for(let E of m.paths)i.has(E)||i.set(E,new Set),i.get(E).add(l.id);r.push({id:`${l.id}:parallel:${p.id}`,from:l.id,to:p.target,kind:"branch",parallelBranch:!0,label:p.title||`\u5206\u652F ${u+1}`,priority:u+1,...p.when?{expression:p.when}:{},variablePaths:m.paths})}if(l.kind==="join"&&l.next&&r.push({id:`${l.id}:next`,from:l.id,to:l.next,kind:"next",label:"\u5168\u90E8\u5206\u652F\u5B8C\u6210\u540E\u7EE7\u7EED",variablePaths:[]}),l.kind==="handle"&&l.next&&r.push({id:`${l.id}:next`,from:l.id,to:l.next,kind:"next",label:"\u529E\u7406\u5B8C\u6210",variablePaths:[]}),l.kind==="correction"&&l.next&&r.push({id:`${l.id}:resubmit`,from:l.id,to:l.next,kind:"resubmit",label:"\u91CD\u65B0\u63D0\u4EA4\uFF0C\u6309\u9000\u56DE\u8BBE\u7F6E\u7EE7\u7EED",variablePaths:[]}),l.kind==="cc"&&l.next&&r.push({id:`${l.id}:next`,from:l.id,to:l.next,kind:"next",label:"\u6284\u9001\u540E\u7EE7\u7EED",variablePaths:[]}),l.kind==="action"&&l.next){let u=Object.values(l.inputs||{}).flatMap(p=>p.source==="fact"?[p.path]:[]);for(let p of u)i.has(p)||i.set(p,new Set),i.get(p).add(l.id);r.push({id:`${l.id}:next`,from:l.id,to:l.next,kind:"next",label:te(l)?"\u53D1\u9001\u540E\u7EE7\u7EED":"\u6210\u529F\u56DE\u6267\u540E\u7EE7\u7EED",variablePaths:u})}if(l.kind==="condition"){for(let[u,p]of(l.branches||[]).entries()){let m=qt(p.when);for(let E of m.paths)i.has(E)||i.set(E,new Set),i.get(E).add(l.id);r.push({id:`${l.id}:branch:${u}`,from:l.id,to:p.target,kind:"branch",label:p.label||`\u6761\u4EF6 ${u+1}`,priority:u+1,expression:p.when,variablePaths:m.paths}),a.push(...m.errors.map(E=>({code:E,path:l.id})))}l.otherwise&&r.push({id:`${l.id}:default`,from:l.id,to:l.otherwise,kind:"default",label:"\u5747\u4E0D\u6EE1\u8DB3\u65F6",variablePaths:[]})}}let s=[...e.readability?.logic||[]];if(e.approvedDelegation){let l=e.approvedDelegation,u=l.confirmer==="initiator"?"\u7533\u8BF7\u4EBA\u672C\u4EBA":"\u6240\u9009\u4EE3\u7406\u4EBA";s.push({code:"kernel-approved-delegation",title:"\u6279\u51C6\u540E\u6574\u6279\u6388\u6743\u4EE3\u7406",phase:"completion",inputPaths:[l.requestsField],description:`\u6279\u51C6\u65F6\u6838\u9A8C${u}\u5728\u5F53\u524D\u9000\u56DE\u5468\u671F\u5B8C\u6210\u201C${e.nodes[l.confirmationNodeId]?.title||l.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${l.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 c=[...new Set([...i.keys(),...Object.keys(e.readability?.variables||{}),...s.flatMap(l=>[...l.inputPaths,...l.outputPaths||[]])])].slice(0,128).map(l=>{let u=$o(o,l),p=e.readability?.variables?.[l],m=l.split("."),E=e.subject?.factProjection[m[0]],A=m[0]==="steps"?e.nodes[m[1]]:void 0;return u||a.push({code:"WORKFLOW_VARIABLE_SOURCE_UNKNOWN",path:l}),{path:l,label:p?.label||String(u?.schema.title||l),type:String(u?.schema.type||"unknown"),...p,required:u?.required||!1,usedBy:[...i.get(l)||[]],source:u&&A?.handler?{kind:"step_output",nodeId:A.id,handlerCode:A.handler.code,handlerVersion:A.handler.version}:u&&E&&e.subject?{kind:"subject_field",resourceCode:e.subject.resourceCode,fieldPath:[E,...m.slice(1)].join(".")}:{kind:u?"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(l=>({id:l.id,kind:l.kind,title:l.title||l.id,...l.kind==="parallel"?{parallel:{joinNodeId:l.join,branchNodeIds:n.find(u=>u.parallelNodeId===l.id)?.branches.flatMap(u=>u.nodeIds)||[],branchCount:l.branches?.length||0}}:{},...l.binding?{binding:l.binding}:{},...l.mode?{mode:l.mode}:{},...l.outcome?{outcome:l.outcome}:{},...l.kind==="cc"?{emptyPolicy:l.emptyPolicy,notify:l.notify!==!1}:{},...l.kind==="approval"?{emptyPolicy:l.emptyPolicy||"block",initiatorApprovalPolicy:l.initiatorApprovalPolicy||"manual",...l.completionDeadline?{completionDeadline:{...l.completionDeadline}}:{}}:{},...te(l)?{presentation:"notification"}:{},...l.kind==="action"&&l.handler&&!te(l)?{businessStep:{handler:l.handler,inputs:l.inputs||{},outputPaths:Object.keys(Ie(l.outputSchema).properties||{}).map(u=>`steps.${l.id}.${u}`)}}:{}})),edges:r,variables:c,logic:s,diagnostics:a}}function Fa(e,t=[]){let o=r=>{let i=t.find(a=>a.path===r)?.label;return i&&i!==r?i:void 0},n=o(e);if(n)return n;for(let r=e.lastIndexOf(".");r>0;r=e.lastIndexOf(".",r-1)){let i=o(e.slice(0,r));if(!i)continue;let a=e.slice(r+1);return a==="value"?`${i}\uFF08\u503C\uFF09`:a==="label"?`${i}\uFF08\u663E\u793A\u540D\u79F0\uFF09`:`${i}.${a}`}return e}function bn(e,t=[],o=0){if(!e||o>20)return"\u65E0\u6CD5\u8BC6\u522B\u7684\u6761\u4EF6";if(e.op==="path")return Fa(e.path,t);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${bn(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${bn(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"},r=e.left.op==="path"?e.left.path:void 0,i=r&&e.right.op==="literal"&&typeof e.right.value=="number"?t.find(a=>a.path===r)?.unit:void 0;return`${bn(e.left,t,o+1)} ${n[e.op]} ${bn(e.right,t,o+1)}${i?` ${i}`:""}`}function Va(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&&Va(n.fields,t+1)}return o.readonly===!0})}function Gt(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"||!Va(e.taskPages?.[n.taskPageCode]?.fields))||[n.fieldPolicy?.default,...Object.values(n.fieldPolicy?.fields||{})].some(r=>r==="edit"||r==="edit_required"))&&t.push(`WORKFLOW_INITIATOR_APPROVAL_INPUT_REQUIRED:${o}`),(n.operationPolicy?.approve?.opinion==="required"||n.operationPolicy?.approve?.commentRequired===!0)&&t.push(`WORKFLOW_INITIATOR_APPROVAL_COMMENT_REQUIRED:${o}`))}return t}function Ou(e,t,o,n,r){return e.kind==="approval"&&e.initiatorApprovalPolicy==="auto_approve"&&Gt({nodes:{node:e},...r?{taskPages:r}:{}}).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 Tg=8,hi={type:"array",minItems:2,maxItems:8,uniqueItems:!0,items:{type:"string",maxLength:128,pattern:"^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$"}};function It(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,r=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(i=>["__proto__","prototype","constructor"].includes(i))&&o.value===void 0;if(!o||typeof o!="object"||Array.isArray(o)||Object.keys(o).some(i=>!["dimension","value","valueFrom"].includes(i))||typeof o.dimension!="string"||!/^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$/.test(o.dimension)||!n&&!r)return["WORKFLOW_V2_BINDING_ROLE_UNION_SCOPE_INVALID"]}else if(e.scope!==void 0)return["WORKFLOW_V2_BINDING_ROLE_UNION_SCOPE_INVALID"];return[]}function Ni(e){return e.roleCodes?[...e.roleCodes]:e.roleCode?[e.roleCode]:typeof e.until=="object"&&e.until.roleCode?[e.until.roleCode]:[]}function Ri(e){return e.some(t=>Object.values(t.binding.bindings).some(o=>o.roleCodes!==void 0))}function hn(e){if(e.selectedInputPath===void 0)return[];let t=e.selectedInputPath;return!["app_role","app_role_in_scope"].includes(e.provider||"")||e.candidateField!==void 0||e.inputPath!==void 0||e.routing!==void 0||e.roleCode===void 0&&e.roleCodes===void 0||typeof t!="string"||t.length>255||!/^[A-Za-z][A-Za-z0-9_-]*(?:\.[A-Za-z][A-Za-z0-9_-]*)*$/.test(t)||t.split(".").some(o=>["__proto__","constructor","prototype"].includes(o))?["WORKFLOW_V2_ROLE_INPUT_SELECTION_INVALID"]:[]}function wi(e){return e.some(t=>Object.values(t.binding.bindings).some(o=>o.selectedInputPath!==void 0))}var Wa=20,xa=200,ja=["fixed_users","initiator","input_users","form_field_users","app_role","app_role_in_scope","previous_node_actor"];function Fo(e,t){let o=[];for(let[n,r]of Object.entries(e?.nodes||{})){if(r?.kind!=="cc"||((Object.keys(r).some(d=>!["id","kind","title","binding","next","emptyPolicy","notify","administration"].includes(d))||typeof r.title!="string"||!r.title.trim()||r.title.length>255||typeof r.binding!="string"||!r.binding.trim()||r.binding.length>255||typeof r.next!="string"||!r.next.trim()||!e.nodes?.[r.next]||!["block","skip"].includes(r.emptyPolicy)||r.notify!==void 0&&typeof r.notify!="boolean")&&o.push(`WORKFLOW_CC_NODE_INVALID:${n}`),!t))continue;let i=t.bindings?.[r.binding];if(!i){o.push(`WORKFLOW_CC_BINDING_NOT_FOUND:${n}`);continue}ja.includes(i.provider)||o.push(`WORKFLOW_CC_PROVIDER_INVALID:${n}`);let a=i.min??1,s=i.max??20;(!Number.isSafeInteger(a)||!Number.isSafeInteger(s)||a<1||s<a||s>200||i.provider==="fixed_users"&&(!Array.isArray(i.users)||!i.users.length||i.users.length>s))&&o.push(`WORKFLOW_CC_RECIPIENT_LIMIT_INVALID:${n}`)}return[...new Set(o)]}var ze=["complete","approve","reject","save_form","return","transfer","delegate","add_assignee"],Vo=["fixed_users","app_role","app_role_in_scope"],hu=["single","any","all","sequence"],tt=e=>!!e&&typeof e=="object"&&!Array.isArray(e),yt=(e,t)=>Object.keys(e).every(o=>t.includes(o)),Nn=(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 bt(e){return e.allowedOperations||(e.kind==="handle"?["complete","save_form","return","transfer","delegate"]:ze.filter(t=>t!=="complete")).filter(t=>t!=="save_form"||!!e.taskPageCode)}function Ua(e,t){return t?.opinion!==void 0?t.opinion==="required":t?.commentRequired??e==="reject"}function Ma(e,t){return["transfer","delegate","add_assignee","return"].includes(e)?t?.opinion!==void 0?t.opinion==="required":t?.reasonRequired!==!1:!0}var zt=["none","optional","required"];function nt(e,t){return e==="save_form"?"none":t?.opinion?t.opinion:(["complete","approve","reject"].includes(e)?Ua(e,t):Ma(e,t))?"required":"optional"}function Ot(e,t){return t?.minimumOpinion??(nt(e,t)==="required"?"required":"none")}function Nu(e){return e.hasTaskPage&&(e.operationModel==null||e.operationModel==="configured-v1"&&e.allowedOperations?.includes("save_form")===!0)}function Ba(e,t,o={},n=!1){let r=["label","commentRequired","reasonRequired","opinion"];if(!tt(e)||!Object.keys(e).length||!yt(e,n?[...r,"enabled"]:[...r,"minimumOpinion"])||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"||t==="approve"&&!e.enabled)||e.opinion!==void 0&&(!zt.includes(e.opinion)||t==="save_form")||e.minimumOpinion!==void 0&&(!zt.includes(e.minimumOpinion)||t==="save_form")||e.commentRequired!==void 0&&(typeof e.commentRequired!="boolean"||!["complete","approve","reject"].includes(t))||e.reasonRequired!==void 0&&(typeof e.reasonRequired!="boolean"||!["transfer","delegate","add_assignee","return"].includes(t))||e.opinion!==void 0&&[e.commentRequired,e.reasonRequired].some(i=>i!==void 0&&i!==(e.opinion==="required")))return!1;if(n&&(e.opinion!==void 0||e.commentRequired!==void 0||e.reasonRequired!==void 0)){let i=e.opinion??(e.commentRequired??e.reasonRequired?"required":"optional");if(zt.indexOf(i)<zt.indexOf(Ot(t,o)))return!1}return!(!n&&e.minimumOpinion!==void 0&&zt.indexOf(nt(t,e))<zt.indexOf(e.minimumOpinion))}function Wo(e,t){let o=[];for(let[n,r]of Object.entries(e?.nodes||{})){if(!tt(r))continue;let i=r.administration,a=r.operationPolicy;if(r.kind==="approval"||r.kind==="handle"){let d=bt(r);d.includes(r.kind==="handle"?"complete":"approve")||o.push(`WORKFLOW_NODE_FORWARD_OPERATION_REQUIRED:${n}`),d.includes("save_form")&&!r.taskPageCode&&o.push(`WORKFLOW_NODE_SAVE_PAGE_REQUIRED:${n}`),r.requiredOperations!==void 0&&(!Nn(r.requiredOperations,ze,8)||r.requiredOperations.some(c=>!d.includes(c)))&&o.push(`WORKFLOW_NODE_REQUIRED_OPERATIONS_INVALID:${n}`)}if(r.kind==="cc"){(a!==void 0||i!==void 0&&(!tt(i)||!yt(i,["assigneeProviders"])))&&o.push(`WORKFLOW_NODE_ADMINISTRATION_INVALID:${n}`),i?.assigneeProviders!==void 0&&!Nn(i.assigneeProviders,Vo,3)&&o.push(`WORKFLOW_NODE_ADMINISTRATION_PROVIDERS_INVALID:${n}`),i?.assigneeProviders?.includes("app_role_in_scope")&&t&&!t.bindings[r.binding||""]?.scope&&o.push(`WORKFLOW_NODE_ADMINISTRATION_SCOPE_REQUIRED:${n}`);continue}if(!["approval","handle"].includes(r.kind)){(i!==void 0||a!==void 0)&&o.push(`WORKFLOW_NODE_ADMINISTRATION_APPROVAL_REQUIRED:${n}`);continue}if(a!==void 0&&(!tt(a)||Object.keys(a).length>8||Object.entries(a).some(([d,c])=>!ze.includes(d)||!bt(r).includes(d)||!Ba(c,d)))&&o.push(`WORKFLOW_NODE_OPERATION_POLICY_INVALID:${n}`),i===void 0)continue;if(!tt(i)||!yt(i,["modes","assigneeProviders","operations"])){o.push(`WORKFLOW_NODE_ADMINISTRATION_INVALID:${n}`);continue}i.modes!==void 0&&(!Nn(i.modes,hu,4)||!i.modes.includes(r.mode))&&o.push(`WORKFLOW_NODE_ADMINISTRATION_MODES_INVALID:${n}`),i.assigneeProviders!==void 0&&!Nn(i.assigneeProviders,Vo,3)&&o.push(`WORKFLOW_NODE_ADMINISTRATION_PROVIDERS_INVALID:${n}`);let s=t?.bindings[r.binding||""];s&&Array.isArray(i.assigneeProviders)&&i.assigneeProviders.includes("app_role_in_scope")&&!s.scope&&o.push(`WORKFLOW_NODE_ADMINISTRATION_SCOPE_REQUIRED:${n}`),i.operations!==void 0&&(!Nn(i.operations,ze,8)||i.operations.some(d=>!bt(r).includes(d)))&&o.push(`WORKFLOW_NODE_ADMINISTRATION_OPERATIONS_INVALID:${n}`)}return o}function Ru(e,t,o,n){let r=[];if(!e||!tt(o)||!Object.keys(o).length||!yt(o,["title","description","assignee","mode","operations"]))return["WORKFLOW_V2_NODE_CONFIGURATION_PATCH_INVALID"];let i=o;!i.assignee&&t?.provider==="supervisor_chain"&&t.continuous!==!1&&(i.mode||e.mode)!=="sequence"&&r.push("WORKFLOW_SUPERVISOR_CHAIN_SEQUENCE_REQUIRED"),Object.entries(i.operations||{}).some(([s,d])=>d?.enabled===!1&&e.requiredOperations?.includes(s))&&r.push("WORKFLOW_V2_NODE_CONFIGURATION_REQUIRED_OPERATION");for(let s of["title","description"])i[s]!==void 0&&(typeof i[s]!="string"||i[s].length>(s==="title"?255:1e3)||s==="title"&&!i[s].trim())&&r.push("WORKFLOW_V2_NODE_CONFIGURATION_PATCH_INVALID");let a=e.administration;if(i.mode!==void 0&&(!["approval","handle"].includes(e.kind)||!a?.modes?.includes(i.mode))&&r.push("WORKFLOW_V2_NODE_CONFIGURATION_MODE_READONLY"),i.operations!==void 0&&(!["approval","handle"].includes(e.kind)||!tt(i.operations)||!Object.keys(i.operations).length||Object.keys(i.operations).length>8||Object.entries(i.operations).some(([s,d])=>!a?.operations?.includes(s)||!bt(e).includes(s)||!Ba(d,s,e.operationPolicy?.[s],!0)))&&r.push("WORKFLOW_V2_NODE_CONFIGURATION_OPERATION_INVALID"),i.assignee!==void 0){let s=i.assignee,d=a?.assigneeProviders||((e.kind==="approval"||e.kind==="handle")&&t&&Vo.includes(t.provider)?[t.provider]:[]);if(t?.selectedInputPath&&!["app_role","app_role_in_scope"].includes(s?.provider||"")&&r.push("WORKFLOW_V2_NODE_CONFIGURATION_PROVIDER_READONLY"),!tt(s)||!["approval","handle","cc"].includes(e.kind)||!d.includes(s.provider)||s.provider==="app_role_in_scope"&&!t?.scope)r.push("WORKFLOW_V2_NODE_CONFIGURATION_PROVIDER_READONLY");else if(s.provider==="fixed_users"){let c=e.kind==="cc"?t?.min??1:e.emptyPolicy==="skip"?0:1,l=e.kind==="cc"?Math.min(t?.max??20,200):200;(!yt(s,["provider","users"])||!Array.isArray(s.users)||s.users.length<c||s.users.length>l||new Set(s.users).size!==s.users.length||s.users.some(u=>typeof u!="string"||!u.trim()||u.length>255))&&r.push("WORKFLOW_V2_NODE_CONFIGURATION_USERS_INVALID")}else s.roleCodes!==void 0?(!yt(s,["provider","roleCodes"])||It({...s,...s.provider==="app_role_in_scope"?{scope:t?.scope}:{}}).length)&&r.push("WORKFLOW_V2_NODE_CONFIGURATION_ROLE_INVALID"):(!yt(s,["provider","roleCode"])||typeof s.roleCode!="string"||!/^[a-z][a-z0-9_-]{0,127}$/.test(s.roleCode))&&r.push("WORKFLOW_V2_NODE_CONFIGURATION_ROLE_INVALID")}return r.push(...Gt({nodes:{node:{...e,operationPolicy:Ti(e,i).operationPolicy}},...n?{taskPages:n}:{}})),e.completionDeadline&&Ti(e,i).operationPolicy.approve?.commentRequired===!0&&r.push("WORKFLOW_COMPLETION_DEADLINE_INPUT_REQUIRED:node"),r}function Ti(e,t){let o=Object.fromEntries(bt(e).flatMap(n=>{let r=n,i=t?.operations?.[r],a={...e.operationPolicy?.[r],...i?.label!==void 0?{label:i.label}:{},...i?.commentRequired!==void 0?{commentRequired:i.commentRequired}:{},...i?.reasonRequired!==void 0?{reasonRequired:i.reasonRequired}:{},...i?.opinion!==void 0?{opinion:i.opinion}:{}};return i?.opinion===void 0&&(i?.commentRequired!==void 0||i?.reasonRequired!==void 0)&&a.opinion!==void 0&&(a.opinion=i.commentRequired??i.reasonRequired?"required":"optional"),a.opinion!==void 0&&(["complete","approve","reject"].includes(r)&&(a.commentRequired=a.opinion==="required"),["transfer","delegate","add_assignee","return"].includes(r)&&(a.reasonRequired=a.opinion==="required")),Object.keys(a).length?[[r,a]]:[]}));return{mode:t?.mode||e.mode,initiatorApprovalPolicy:e.initiatorApprovalPolicy||"manual",allowedOperations:bt(e).filter(n=>t?.operations?.[n]?.enabled!==!1),operationPolicy:o,fieldPolicy:{default:e.fieldPolicy?.default||"readonly",fields:{...e.fieldPolicy?.fields}}}}var Ci=["supervisor_chain","fixed_users","input_users","form_field_users","app_role","app_role_in_scope"];function xo(e,t){let o=[];for(let[n,r]of Object.entries(e?.nodes||{}))r.kind==="cc"||r.emptyPolicy===void 0||(r.kind!=="approval"||!["block","skip"].includes(r.emptyPolicy)?o.push(`WORKFLOW_APPROVAL_EMPTY_POLICY_INVALID:${n}`):r.emptyPolicy==="skip"&&t&&!Ci.includes(t.bindings?.[r.binding||""]?.provider)&&o.push(`WORKFLOW_APPROVAL_EMPTY_PROVIDER_UNSUPPORTED:${n}`));return o}function wu(e,t){return e.kind==="approval"&&e.emptyPolicy==="skip"&&t?.emptyResult==="no_candidates"&&Ci.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 Si(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 Ka(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||Ka(o.subtable.fields,t+1)))}function Tu(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 Di(e){let t=[];for(let[o,n]of Object.entries(e?.nodes||{})){if(!n||typeof n!="object"||n.completionDeadline===void 0)continue;let r=n.completionDeadline;if(n.kind!=="approval"||!r||typeof r!="object"||Array.isArray(r)||Object.keys(r).length!==2||Object.keys(r).some(a=>!["afterSeconds","action"].includes(a))||r.action!=="approve"||!Number.isInteger(r.afterSeconds)||r.afterSeconds<1||r.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 i=n.taskPageCode?e.taskPages?.[n.taskPageCode]:void 0;(n.taskPageCode&&(!i||Ka(i.fields))||[n.fieldPolicy?.default,...Object.values(n.fieldPolicy?.fields||{})].includes("edit_required")||n.operationPolicy?.approve?.opinion==="required"||n.operationPolicy?.approve?.commentRequired===!0||e.commandHandlers?.approve!==void 0)&&t.push(`WORKFLOW_COMPLETION_DEADLINE_INPUT_REQUIRED:${o}`)}return t}var qa="openxiangda.workflow-rejection-notification/v1",Fg=4096;function Ga(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function Jt(e,t){return typeof e=="string"&&e.trim().length>0&&e.length<=t}function ki(e,t){return Object.keys(e).sort().join(",")===t.sort().join(",")}function Li(e){let t=e?.rejectionNotification;return t===void 0?[]:!Ga(t)||!ki(t,["recipient","title","summary"])||t.recipient!=="record_last_modifier"||!Jt(t.title,160)||!Jt(t.summary,500)?["WORKFLOW_REJECTION_NOTIFICATION_INVALID"]:Jt(e.subject?.resourceCode,63)?[]:["WORKFLOW_REJECTION_NOTIFICATION_SUBJECT_REQUIRED"]}function Cu(e){if(!Ga(e)||e.schemaVersion!==qa||e.recipient!=="record_last_modifier"||!Jt(e.title,160)||!Jt(e.summary,500))return!1;let t=["schemaVersion","recipient","title","summary","status","sourceRevision"];if(e.status==="ready"){if(!ki(e,[...t,"userId"])||!Jt(e.userId,255)||!Number.isSafeInteger(e.sourceRevision)||Number(e.sourceRevision)<1)return!1}else if(e.status==="skipped"){if(!ki(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 vi(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(r=>!["approve","reject","withdraw","resubmit"].includes(r)))return["WORKFLOW_BUSINESS_COMMAND_HANDLERS_INVALID"];let n=[];o.resubmit&&!Object.values(e.nodes||{}).some(r=>r.kind==="correction")&&n.push("WORKFLOW_BUSINESS_CORRECTION_REQUIRED");for(let[r,i]of Object.entries(o)){if(!i||typeof i!="object"||Array.isArray(i)||Object.keys(i).some(s=>!["operationCode","transitionPolicy","derivedSubjectFields"].includes(s))||i.transitionPolicy!==void 0&&(r!=="approve"||i.transitionPolicy!=="workflow")||!/^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$/.test(i.operationCode||"")){n.push("WORKFLOW_BUSINESS_COMMAND_HANDLER_INVALID");continue}if(i.derivedSubjectFields!==void 0){let s=i.derivedSubjectFields,d=new Set(Object.values(e.subject?.factProjection||{}));(r!=="resubmit"||!Array.isArray(s)||s.length<1||s.length>32||new Set(s).size!==s.length||s.some(c=>typeof c!="string"||!/^[A-Za-z][A-Za-z0-9_]{0,62}$/.test(c)||!d.has(c)||ct.has(c)||["createdBy","updatedBy","createdAt","updatedAt"].includes(c)||Object.values(e.taskPages||{}).some(l=>l.fields?.some(u=>u.code===c&&u.readonly!==!0))))&&n.push("WORKFLOW_CORRECTION_DERIVED_SUBJECT_FIELDS_INVALID")}if(!t)continue;let a=t.find(s=>s.code===i.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(r))&&n.push("WORKFLOW_BUSINESS_COMMAND_OPERATION_INVALID")}return["approve","reject","withdraw"].some(r=>Object.hasOwn(o,r))&&Object.values(e.nodes||{}).some(r=>r.kind==="approval"&&(r.emptyPolicy==="skip"||r.initiatorApprovalPolicy==="auto_approve"))&&n.push("WORKFLOW_BUSINESS_COMMAND_AUTOMATIC_DECISION_FORBIDDEN"),[...new Set(n)]}var Su={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}}};function Du(e,t,o){if(!(t==="resubmit"&&o===!1))return e.commandHandlers?.[t]}var za=["fixed_users","initiator","app_role","app_role_in_scope"],ku=e=>!!e&&typeof e=="object"&&!Array.isArray(e);function jo(e,t){let o=e?.launchPreflight;if(o===void 0)return[];if(!ku(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(r=>typeof r!="string"||!/^[A-Za-z][A-Za-z0-9_-]{0,127}$/.test(r)))return["WORKFLOW_LAUNCH_PREFLIGHT_INVALID"];let n=[];for(let r of o.requiredApprovalNodes){let i=e.nodes?.[r];if(!i||i.kind!=="approval"){n.push(`WORKFLOW_LAUNCH_PREFLIGHT_NODE_INVALID:${r}`);continue}if(!t)continue;let a=t.bindings?.[i.binding||""];(!a||!za.includes(a.provider)||a.candidateField!==void 0)&&n.push(`WORKFLOW_LAUNCH_PREFLIGHT_PROVIDER_UNSUPPORTED:${r}`)}return n}var Pi=e=>!!e&&typeof e=="object"&&!Array.isArray(e),Lu=/^[A-Za-z][A-Za-z0-9_]{0,62}$/,Ha=/^[A-Za-z][A-Za-z0-9_-]{0,127}$/,Ja=/^membership:[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,Ug=500,Mg=262144;function $i(e){if(e?.approvedDelegation===void 0)return[];let t=e.approvedDelegation;if(!Pi(t)||Object.keys(t).some(d=>!["confirmationNodeId","confirmer","requestsField","maxRequests"].includes(d))||!Ha.test(t.confirmationNodeId||"")||!["initiator","delegate"].includes(t.confirmer)||!Lu.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(d=>d!=="single")||n.allowedOperations?.some(d=>["transfer","delegate","add_assignee","admin_override"].includes(d)))&&o.push("WORKFLOW_APPROVED_DELEGATION_CONFIRMATION_INVALID");let r=e.inputSchema?.properties?.[t.requestsField];(!r||r.type!=="array"||!Number.isSafeInteger(r.maxItems)||r.maxItems<1||r.maxItems>t.maxRequests||!r.items||r.items.type!=="object"||r.items.additionalProperties!==!1||!e.subject?.factProjection?.[t.requestsField])&&o.push("WORKFLOW_APPROVED_DELEGATION_REQUEST_SCHEMA_INVALID"),Object.values(e.nodes||{}).some(d=>d.kind==="end"&&d.outcome==="approved")||o.push("WORKFLOW_APPROVED_DELEGATION_APPROVED_END_REQUIRED");let a=[e.startAt],s=new Set;for(;a.length;){let d=a.pop();if(d===t.confirmationNodeId||s.has(d))continue;s.add(d);let c=e.nodes?.[d];c&&(c.kind==="end"&&c.outcome==="approved"&&o.push("WORKFLOW_APPROVED_DELEGATION_CONFIRMATION_BYPASS"),c.kind==="approval"&&a.push(c.onApprove,c.onReject),c.kind==="condition"&&a.push(c.otherwise,...(c.branches||[]).map(l=>l.target)),(c.kind==="cc"||c.kind==="action")&&a.push(c.next))}return[...new Set(o)]}function vu(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 r=["key","delegatorRoleSubjectKey","delegatorRoleSubjectRevision","delegate","delegateRoleSubjectKey","expectedDelegateRevision","workflowCode","nodeId","validFrom","validTo","reason"],i=(d,c)=>typeof d=="string"&&d.trim().length>0&&d.length<=c,a=d=>{if(typeof d!="string")return!1;let c=/^(\d{4})-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)(?:\.\d{1,3})?(?:Z|[+-](\d\d):(\d\d))$/.exec(d);if(!c)return!1;let[,l,u,p,m,E,A,O,y]=c,_=Number(l),b=Number(u),h=Number(p),I=[31,_%4===0&&(_%100!==0||_%400===0)?29:28,31,30,31,30,31,31,30,31,30,31];return b>=1&&b<=12&&h>=1&&h<=I[b-1]&&Number(m)<=23&&Number(E)<=59&&Number(A)<=59&&(O===void 0||Number(O)<=23&&Number(y)<=59)&&Number.isFinite(Date.parse(d))},s=o.map(d=>Pi(d)?((Object.keys(d).some(c=>!r.includes(c))||!i(d.delegatorRoleSubjectKey,255)||!Ja.test(d.delegatorRoleSubjectKey)||!i(d.delegateRoleSubjectKey,255)||!Ja.test(d.delegateRoleSubjectKey)||!Number.isSafeInteger(d.delegatorRoleSubjectRevision)||d.delegatorRoleSubjectRevision<1||!Number.isSafeInteger(d.expectedDelegateRevision)||d.expectedDelegateRevision<1||!Pi(d.delegate)||Object.keys(d.delegate).some(c=>!["value","label"].includes(c))||!i(d.delegate.value,255)||!i(d.delegate.label,200)||!(d.workflowCode===null||i(d.workflowCode,128)&&Ha.test(d.workflowCode))||!(d.nodeId===null||i(d.nodeId,128)&&/^[A-Za-z0-9._:-]{1,128}$/.test(d.nodeId)&&d.workflowCode)||!a(d.validFrom)||!a(d.validTo)||Date.parse(d.validFrom)>=Date.parse(d.validTo)||!i(d.reason,4e3)||d.key!==void 0&&!i(d.key,128))&&n(),{...d,delegate:{value:d.delegate.value,label:d.delegate.label},validFrom:new Date(d.validFrom).toISOString(),validTo:new Date(d.validTo).toISOString()}):n());return e.confirmer==="delegate"&&new Set(s.map(d=>d.delegate.value)).size!==1&&n(),s}var Pu=e=>!!e&&typeof e=="object"&&!Array.isArray(e)&&[null,Object.prototype].includes(Object.getPrototypeOf(e));function Fi(e){let t=e?.nodes||{},o=Object.values(t).filter(s=>s?.kind==="correction");if(!o.length)return[];let n=[],r=s=>s?.kind==="approval"?[s.onApprove,s.onReject]:s?.kind==="condition"?[...(Array.isArray(s.branches)?s.branches:[]).map(d=>d.target),s.otherwise]:s?.kind==="action"||s?.kind==="cc"||s?.kind==="handle"?[s.next]:[],i=new Set,a=[e.startAt];for(;a.length;){let s=a.pop();i.has(s)||(i.add(s),a.push(...r(t[s])))}for(let s of o){(!Pu(s)||Object.keys(s).some(c=>!["id","kind","title","taskPageCode","next","reminders"].includes(c))||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"),(i.has(s.id)||Object.values(t).some(c=>r(c).includes(s.id)))&&n.push("WORKFLOW_CORRECTION_FORWARD_ENTRY_FORBIDDEN"),Object.values(t).some(c=>(c?.kind==="approval"||c?.kind==="handle")&&i.has(c.id)&&ke(c).includes(s.id))||n.push("WORKFLOW_CORRECTION_RETURN_SOURCE_REQUIRED");let d=e.taskPages?.[s.taskPageCode];!d||!Array.isArray(d.fields)?n.push("WORKFLOW_CORRECTION_PAGE_REQUIRED"):d.fields.some(c=>c?.subtable&&Object.values(e.subject?.factProjection||{}).some(l=>l===c.code||l.startsWith(`${c.code}.`)))&&n.push("WORKFLOW_CORRECTION_OWNED_FACTS_UNSUPPORTED")}return[...new Set(n)]}var Rn=class extends Error{constructor(o){super(o);this.code=o}code},$u=["projection","triggerCode","resourceCode","recordId","recordRevision","field","dueAt"];function Vi(e,t,o){let n=i=>{throw new Rn(i)};t.length>100&&n("DATE_TRIGGER_PROJECTION_LIMIT");let r=new Set;for(let i of t){let a=i.filter?.resourceCodes||[];if(Array.isArray(a)||n("DATE_TRIGGER_PROJECTION_INVALID"),a.length&&!a.includes(e))continue;let s=i.payload?.fields||[];(!Array.isArray(s)||s.length>32)&&n("DATE_TRIGGER_PROJECTION_LIMIT");for(let d of s)(typeof d!="string"||!/^[A-Za-z_][A-Za-z0-9_]{0,62}$/.test(d)||["__proto__","constructor","prototype"].includes(d))&&n("DATE_TRIGGER_PROJECTION_FIELD_INVALID"),r.add(d)}if(r.size>64&&n("DATE_TRIGGER_PROJECTION_LIMIT"),o!==void 0){let i=o?.schema?.fields??o?.fields;Array.isArray(i)||n("DATE_TRIGGER_PROJECTION_RESOURCE_INVALID");let a=new Map(i.map(s=>[s.code,s]));for(let s of r){let d=a.get(s);d||n("DATE_TRIGGER_PROJECTION_FIELD_UNKNOWN"),d.type==="subtable"&&n("DATE_TRIGGER_PROJECTION_SUBTABLE_FORBIDDEN"),o.fieldPolicies?.[s]?.mask==="omit"&&n("DATE_TRIGGER_PROJECTION_FIELD_SENSITIVE")}}return[...r].sort()}function Fu(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 Rn("DATE_TRIGGER_PROJECTION_SCHEMA_INVALID");return{...e,properties:{...e.properties,projection:{}}}}var Xa=200,Uo=1024*1024,Za=65536,ji=Ve,Wi=at,ht=new Set(["__proto__","prototype","constructor"]),Qa=/^[A-Za-z][A-Za-z0-9_-]{0,63}$/,Tn=/^[A-Za-z][A-Za-z0-9_]{0,62}$/,Ya=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/,pe=e=>!!e&&typeof e=="object"&&!Array.isArray(e)&&[null,Object.prototype].includes(Object.getPrototypeOf(e)),He=(e,t)=>pe(e)&&Object.keys(e).every(o=>t.includes(o)&&!ht.has(o)),Mo=e=>{try{return new TextEncoder().encode(JSON.stringify(e)).length}catch{return 1/0}},ed=e=>e==null||typeof e=="string"&&!e.trim()||Array.isArray(e)&&e.length===0;function ot(e,t){if(e===t)return!0;if(Array.isArray(e)&&Array.isArray(t))return e.length===t.length&&e.every((n,r)=>ot(n,t[r]));if(!pe(e)||!pe(t))return!1;let o=Object.keys(e);return o.length===Object.keys(t).length&&o.every(n=>Object.hasOwn(t,n)&&ot(e[n],t[n]))}function xi(e,t){let o=t.split(".");if(!(o.some(n=>!Qa.test(n)||ht.has(n))||o.length>12))return o.reduce((n,r)=>pe(n)&&Object.hasOwn(n,r)?n[r]:void 0,e)}function Je(e,t){switch(e.op){case"literal":return e.value;case"path":return xi({values:t},e.path);case"and":return e.values.every(o=>!!Je(o,t));case"or":return e.values.some(o=>!!Je(o,t));case"not":return!Je(e.value,t);case"exists":return!ed(Je(e.value,t));default:{let o=Je(e.left,t),n=Je(e.right,t);return e.op==="eq"?ot(o,n):e.op==="neq"?!ot(o,n):e.op==="in"?Array.isArray(n)&&n.some(r=>ot(r,o)):e.op==="contains"?Array.isArray(o)?o.some(r=>ot(r,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 wn(e,t,o=0,n={nodes:0}){if(o>8||++n.nodes>64||!pe(e))return!1;if(e.op==="literal")return He(e,["op","value"])&&Object.hasOwn(e,"value")&&Mo(e.value)<=4096&&Cn(e.value);if(e.op==="path"){if(!He(e,["op","path"])||typeof e.path!="string")return!1;let r=e.path.split(".");return r[0]==="values"&&r.length>=2&&r.length<=8&&t.has(r[1])&&r.every(i=>Tn.test(i)&&!ht.has(i))}return["not","exists"].includes(e.op)?He(e,["op","value"])&&wn(e.value,t,o+1,n):["and","or"].includes(e.op)?He(e,["op","values"])&&Array.isArray(e.values)&&e.values.length>0&&e.values.length<=16&&e.values.every(r=>wn(r,t,o+1,n)):["eq","neq","gt","gte","lt","lte","in","contains"].includes(e.op)&&He(e,["op","left","right"])&&wn(e.left,t,o+1,n)&&wn(e.right,t,o+1,n)}function Sn(e,t,o,n=Wi){let r=[],i=e.taskPages;if(i!==void 0&&(!pe(i)||Object.keys(i).length===0||Object.keys(i).length>16||Mo(i)>Za))return["WORKFLOW_TASK_PAGES_INVALID"];for(let[a,s]of Object.entries(i||{})){let d=`taskPages.${a}`;if(!Qa.test(a)||ht.has(a)||!He(s,["title","fields"])||typeof s.title!="string"||!s.title.trim()||s.title.length>160||!Array.isArray(s.fields)||!s.fields.length||s.fields.length>Xa){r.push(`WORKFLOW_TASK_PAGE_INVALID:${d}`);continue}let c=new Set(s.fields.map(p=>p?.code));c.size!==s.fields.length&&r.push(`WORKFLOW_TASK_PAGE_DUPLICATE_FIELD:${d}`);let l=0,u=new Set;for(let p of s.fields){if(!He(p,["code","readonly","required","visibleWhen","requiredWhen","subtable"])||!Tn.test(p.code)||ht.has(p.code)||["readonly","required"].some(m=>p[m]!==void 0&&typeof p[m]!="boolean")||p.readonly&&(p.required||p.requiredWhen)){r.push(`WORKFLOW_TASK_PAGE_FIELD_INVALID:${d}`);continue}for(let m of["visibleWhen","requiredWhen"])p[m]!==void 0&&!wn(p[m],c)&&r.push(`WORKFLOW_TASK_PAGE_EXPRESSION_INVALID:${d}.${p.code}.${m}`);if(t){let m=t.get(p.code);if((!m||m.system||m.hidden||m.type==="serial-number"||!p.readonly&&m.widget==="readonly"||!p.readonly&&m.type==="subtable"&&!p.subtable||p.subtable&&m.type!=="subtable")&&r.push(`WORKFLOW_TASK_PAGE_RESOURCE_FIELD_INVALID:${d}.${p.code}`),p.subtable&&m?.subtable){let E=m.subtable;l+=E.maxRows??20,(u.has(E.resourceCode)||!Number.isSafeInteger(E.maxRows??20)||(E.maxRows??20)<1||(E.maxRows??20)>ji||!Tn.test(E.foreignKey)||!Tn.test(E.orderField)||E.foreignKey===E.orderField)&&r.push(`WORKFLOW_TASK_SUBTABLE_RELATION_INVALID:${d}.${p.code}`),u.add(E.resourceCode);let A=o?.get(E.resourceCode);o&&(!A||!["uuid","resource-ref.single"].includes(A.get(E.foreignKey)?.type||"")||A.get(E.orderField)?.type!=="number.integer")&&r.push(`WORKFLOW_TASK_SUBTABLE_RELATION_INVALID:${d}.${p.code}`);for(let O of Array.isArray(p.subtable.fields)?p.subtable.fields:[]){if(!O||typeof O.code!="string")continue;let y=A?.get(O.code);(O.code===E.foreignKey||O.code===E.orderField||A&&(!y||y.system||y.hidden||y.type==="subtable"||!O.readonly&&(y.widget==="readonly"||y.type==="serial-number")))&&r.push(`WORKFLOW_TASK_SUBTABLE_FIELD_UNSUPPORTED:${d}.${p.code}.${O.code}`)}}else p.subtable&&t&&r.push(`WORKFLOW_TASK_SUBTABLE_RELATION_INVALID:${d}.${p.code}`)}p.subtable&&(p.readonly||!He(p.subtable,["fields","create","delete","reorder"])||["create","delete","reorder"].some(m=>p.subtable?.[m]!==void 0&&typeof p.subtable[m]!="boolean")||!Array.isArray(p.subtable.fields)||p.subtable.fields.some(m=>m?.subtable)?r.push(`WORKFLOW_TASK_SUBTABLE_PAGE_INVALID:${d}.${p.code}`):r.push(...Sn({taskPages:{child:{title:"\u5B50\u884C",fields:p.subtable.fields}}},o?.get(t?.get(p.code)?.subtable?.resourceCode||"")).map(m=>`${m}:${d}.${p.code}`)))}(l>Math.min(n,Wi)||l<0||!Number.isSafeInteger(l)||!Number.isSafeInteger(n)||n<1)&&r.push(`WORKFLOW_TASK_SUBTABLE_BUDGET_EXCEEDED:${d}`)}for(let[a,s]of Object.entries(e.nodes||{}))pe(s)&&s.taskPageCode!==void 0&&(!["approval","handle","correction"].includes(s.kind)||typeof s.taskPageCode!="string"||!pe(i)||!Object.hasOwn(i,s.taskPageCode)?r.push(`WORKFLOW_TASK_PAGE_NOT_FOUND:${a}`):Array.isArray(i[s.taskPageCode]?.fields)&&i[s.taskPageCode].fields.some(d=>d&&(s.fieldPolicy?.fields?.[d.code]||s.fieldPolicy?.default)==="hidden")&&r.push(`WORKFLOW_TASK_PAGE_FIELD_HIDDEN:${a}`));return r}function Ui(e,t){return e.fields.map(o=>({code:o.code,visible:o.visibleWhen===void 0||!!Je(o.visibleWhen,t),readonly:o.readonly===!0,required:o.required===!0||o.requiredWhen!==void 0&&!!Je(o.requiredWhen,t)}))}var ve=class extends Error{constructor(o,n){super(o);this.code=o;this.field=n}code;field;rowIndex;childField};function Vu(e,t){return t.map(o=>({key:String(o.id),id:String(o.id),revision:Number(o.revision),state:"persisted",values:Object.fromEntries(Ui({title:"\u5B50\u884C",fields:e.fields},o).filter(n=>n.visible&&!n.readonly).map(n=>[n.code,o[n.code]??null]))}))}function Wu(e,t,o,n,r,i=!0,a=0){let s=e.subtable,d=m=>{throw new ve(m,e.code)};if(!s||!Number.isSafeInteger(t)||t<1||t>ji||!Number.isSafeInteger(a)||a<0||a>t||!Array.isArray(n)||n.length>2*t||Mo(n)>Uo||!Cn(n))return d("WORKFLOW_TASK_SUBTABLE_VALUES_INVALID");let c=new Map(o.map(m=>[String(m.id),m])),l=new Set,u=new Set,p=[];for(let m of n){if(!He(m,["key","state","id","revision","values"])||typeof m.key!="string"||!Ya.test(m.key)||l.has(m.key)||!["created","persisted","deleted"].includes(m.state)||!pe(m.values))return d("WORKFLOW_TASK_SUBTABLE_ROW_INVALID");if(l.add(m.key),m.state==="created"){if(!s.create||m.id!==void 0||m.revision!==void 0||c.has(m.key))return d("WORKFLOW_TASK_SUBTABLE_CREATE_FORBIDDEN")}else{if(typeof m.id!="string"||m.id!==m.key||!Ya.test(m.id)||u.has(m.id)||!Number.isSafeInteger(m.revision)||m.revision<1||!c.has(m.id))return d("WORKFLOW_TASK_SUBTABLE_SCOPE_CONFLICT");if(u.add(m.id),i&&Number(c.get(m.id).revision)!==m.revision)return d("WORKFLOW_TASK_SUBTABLE_REVISION_CONFLICT")}if(m.state==="deleted"){if(!s.delete||Object.keys(m.values).length)return d("WORKFLOW_TASK_SUBTABLE_DELETE_FORBIDDEN");continue}try{td({title:e.code,fields:s.fields},m.id?c.get(m.id):{},m.values,r)}catch(E){if(!(E instanceof ve))throw E;let A=new ve(E.code,e.code);throw A.rowIndex=p.length,E.field!==void 0&&(A.childField=E.field),A}p.push(m)}if(u.size!==c.size)return d("WORKFLOW_TASK_SUBTABLE_SCOPE_CONFLICT");if(p.length>t)return d("WORKFLOW_TASK_SUBTABLE_MAX_ROWS_EXCEEDED");if(r&&p.length<a)return d("WORKFLOW_TASK_SUBTABLE_MIN_ROWS_NOT_MET");if(!s.reorder){let m=o.filter(A=>p.some(O=>O.id===String(A.id))).map(A=>String(A.id)),E=p.filter(A=>A.state==="persisted").map(A=>A.id);if(!ot(m,E)||p.some((A,O)=>A.state==="created"&&p.slice(O+1).some(y=>y.state==="persisted")))return d("WORKFLOW_TASK_SUBTABLE_REORDER_FORBIDDEN")}return n}function Cn(e,t={members:0},o=0){return++t.members>5e4||o>12?!1:e===null||typeof e=="boolean"?!0:typeof e=="string"?e.length<=Uo:typeof e=="number"?Number.isFinite(e):Array.isArray(e)?e.length<=1e3&&e.every(n=>Cn(n,t,o+1)):pe(e)&&Object.entries(e).every(([n,r])=>!ht.has(n)&&Cn(r,t,o+1))}function td(e,t,o,n){if(!pe(o)||Mo(o)>Uo||!Cn(o))throw new ve("WORKFLOW_TASK_FORM_VALUES_INVALID");let r={...t,...o},i=new Map(Ui(e,r).map(a=>[a.code,a]));for(let a of Object.keys(o)){let s=i.get(a);if(!s||s.readonly||!s.visible)throw new ve("WORKFLOW_TASK_FORM_FIELD_NOT_EDITABLE",a)}if(n)for(let a of i.values()){let s=r[a.code],d=e.fields.find(c=>c.code===a.code)?.subtable&&Array.isArray(s)?s.every(c=>pe(c)&&c.state==="deleted"):ed(s);if(a.visible&&!a.readonly&&a.required&&d)throw new ve("WORKFLOW_TASK_FORM_REQUIRED",a.code)}return r}function xu(e,t,o){let n=JSON.parse(JSON.stringify(t));for(let[a,s]of Object.entries(e.subject?.factProjection||{})){let d=a.split(".");if(!d.length||d.length>12||a.length>128||d[0]==="steps"||d.some(l=>!Tn.test(l)||ht.has(l)))throw new ve("WORKFLOW_TASK_FORM_FACT_PROJECTION_INVALID");if(!Object.hasOwn(o,s))throw new ve("WORKFLOW_TASK_FORM_FACT_FIELD_MISSING",s);let c=n;for(let l of d.slice(0,-1))c=c[l]=pe(c[l])?c[l]:{};c[d.at(-1)]=o[s]===void 0?void 0:JSON.parse(JSON.stringify(o[s]))}let r=new Set,i=Object.values(e.nodes||{}).filter(a=>a.kind==="action");for(let a=0;a<=i.length;a++){let s=!1;for(let d of i)pe(n.steps)&&Object.hasOwn(n.steps,d.id)&&Object.values(d.inputs||{}).some(c=>c.source==="fact"&&!ot(xi(t,c.path),xi(n,c.path)))&&(delete n.steps[d.id],r.add(d.id),s=!0);if(!s)break}return{facts:n,invalidatedNodeIds:[...r].sort()}}function ju(e,t,o){let n=e.nodes||{};for(let r of o){let i=new Set,a=new Map,s=d=>{if(d===r)return!0;if(a.has(d))return a.get(d);if(i.has(d)||i.size>200)return!1;let c=n[d];if(!pe(c)||c.kind==="end")return!1;i.add(d);let l=c.kind==="approval"?[c.onApprove]:c.kind==="condition"?[...(c.branches||[]).map(p=>p.target),c.otherwise]:[c.next],u=l.length>0&&l.every(p=>typeof p=="string"&&s(p));return i.delete(d),a.set(d,u),u};if(!s(t))return!1}return!0}var Hg=256,Yg=64,Xg=262144,Uu=/^[a-z][a-z0-9_-]{0,127}$/,Mu=/^[A-Za-z][A-Za-z0-9_]*(?:\.[A-Za-z][A-Za-z0-9_]*)*$/,od=new Set(["__proto__","prototype","constructor"]),Ue=e=>!!e&&typeof e=="object"&&!Array.isArray(e),kn=(e,t)=>Object.keys(e).every(o=>t.includes(o)),Nt=(e,t)=>typeof e=="string"&&e.trim().length>0&&e.length<=t&&!/[\u0000-\u001f\u007f]/.test(e),Ye=e=>typeof e=="string"&&Uu.test(e)&&!od.has(e),rd=e=>typeof e=="string"&&e.length<=255&&Mu.test(e)&&!e.split(".").some(t=>od.has(t)),Bu=e=>Ue(e)&&kn(e,["dimension","valueFrom","value"])&&Ye(e.dimension)&&(Nt(e.value,255)&&e.valueFrom===void 0||rd(e.valueFrom)&&e.value===void 0),nd=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)),Dn={type:"string",pattern:"^[a-z][a-z0-9_-]{0,127}$"},Mi={type:"string",minLength:1,maxLength:128},Bi={type:"object",additionalProperties:!1,required:["policyCode","title","strategy","dimensions","sources"],properties:{policyCode:Dn,title:Mi,strategy:{enum:["replace_then_append","replace_only"]},dimensions:{type:"object",maxProperties:8,propertyNames:Dn,additionalProperties:{type:"object",additionalProperties:!1,required:["title","valueFrom"],properties:{title:Mi,valueFrom:{type:"string",minLength:1,maxLength:255}}}},sources:{type:"object",minProperties:1,maxProperties:16,propertyNames:Dn,additionalProperties:{type:"object",additionalProperties:!1,required:["title","provider","roleCode"],properties:{title:Mi,provider:{enum:["app_role","app_role_in_scope"]},roleCode:Dn,scope:{type:"object",additionalProperties:!1,required:["dimension"],properties:{dimension:Dn,value:{type:"string",minLength:1,maxLength:255},valueFrom:{type:"string",minLength:1,maxLength:255}}}}}}}};function Rt(e){if(!Ue(e)||!kn(e,["policyCode","title","strategy","dimensions","sources"])||!Ye(e.policyCode)||!Nt(e.title,128)||!["replace_then_append","replace_only"].includes(e.strategy))return["WORKFLOW_V2_ROUTING_POLICY_INVALID"];let t=[];return(!Ue(e.dimensions)||Object.keys(e.dimensions).length>8||Object.entries(e.dimensions).some(([o,n])=>!Ye(o)||!Ue(n)||!kn(n,["title","valueFrom"])||!Nt(n.title,128)||!rd(n.valueFrom)))&&t.push("WORKFLOW_V2_ROUTING_DIMENSIONS_INVALID"),(!Ue(e.sources)||Object.keys(e.sources).length<1||Object.keys(e.sources).length>16||Object.entries(e.sources).some(([o,n])=>!Ye(o)||!Ue(n)||!kn(n,["title","provider","roleCode","scope"])||!Nt(n.title,128)||!Ye(n.roleCode)||!["app_role","app_role_in_scope"].includes(n.provider)||(n.provider==="app_role_in_scope"?!Bu(n.scope):n.scope!==void 0)))&&t.push("WORKFLOW_V2_ROUTING_SOURCES_INVALID"),t}function Ku(e,t){if(Rt(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 r of t){if(!Ue(r)||!kn(r,["ruleCode","title","enabled","workflowCode","nodeId","matches","sourceCode","effect","priority","validFrom","validTo"])||!Ye(r.ruleCode)||!Nt(r.title,128)||typeof r.enabled!="boolean"||!Ye(r.sourceCode)||!Object.hasOwn(e.sources,r.sourceCode)||!["append","replace"].includes(r.effect)||!Number.isSafeInteger(r.priority)||r.priority<-1e3||r.priority>1e3||r.workflowCode!==void 0&&!Ye(r.workflowCode)||r.nodeId!==void 0&&(!Ye(r.nodeId)||r.workflowCode===void 0)||r.validFrom!==void 0&&!nd(r.validFrom)||r.validTo!==void 0&&!nd(r.validTo)||r.validFrom&&r.validTo&&Date.parse(r.validFrom)>=Date.parse(r.validTo)){o.push("WORKFLOW_V2_ROUTING_RULE_INVALID");continue}n.has(r.ruleCode)&&o.push(`WORKFLOW_V2_ROUTING_RULE_DUPLICATE:${r.ruleCode}`),n.add(r.ruleCode),(!Ue(r.matches)||Object.entries(r.matches).some(([i,a])=>!Object.hasOwn(e.dimensions,i)||!Array.isArray(a)||a.length<1||a.length>64||new Set(a).size!==a.length||a.some(s=>!Nt(s,255))))&&o.push(`WORKFLOW_V2_ROUTING_MATCH_INVALID:${r.ruleCode}`)}return[...new Set(o)]}function id(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 Ki(e){let t=[],o=new Map;for(let n of e)for(let[r,i]of Object.entries(n.bindings||{})){if(!Ue(i)||i.routing===void 0)continue;let a=Rt(i.routing);if(a.length){t.push(...a.map(c=>`${c}:${r}`));continue}let s=id(i.routing),d=o.get(i.routing.policyCode);d&&d!==s&&t.push(`WORKFLOW_V2_ROUTING_POLICY_CONFLICT:${i.routing.policyCode}`),o.set(i.routing.policyCode,s)}return[...new Set(t)]}function qu(e,t){let o={};for(let[n,r]of Object.entries(e.dimensions)){let i=t;for(let a of r.valueFrom.split("."))i=Ue(i)&&Object.hasOwn(i,a)?i[a]:void 0;if(!(typeof i=="string"&&Nt(i,255)||typeof i=="number"&&Number.isFinite(i)||typeof i=="boolean"))throw new Error(`WORKFLOW_V2_ROUTING_FACT_REQUIRED:${n}`);o[n]=String(i)}return o}function Gu(e,t,o){let n=t.filter(c=>c.enabled&&(!c.validFrom||Date.parse(c.validFrom)<=o.at)&&(!c.validTo||Date.parse(c.validTo)>o.at)&&(!c.workflowCode||c.workflowCode===o.workflowCode)&&(!c.nodeId||c.nodeId===o.nodeId)&&Object.entries(c.matches).every(([l,u])=>u.includes(o.facts[l])));if(n.length>64)throw new Error("WORKFLOW_V2_ROUTING_MATCH_LIMIT_EXCEEDED");let r=(c,l)=>l.priority-c.priority||+!!c.workflowCode-+!!l.workflowCode||+!!c.nodeId-+!!l.nodeId||(c.ruleCode<l.ruleCode?-1:c.ruleCode>l.ruleCode?1:0),i=n.filter(c=>c.effect==="replace").sort(r);if(i.length>1&&i[0].priority===i[1].priority)throw new Error("WORKFLOW_V2_ROUTING_REPLACE_CONFLICT");let a=i[0],s=a&&e.strategy==="replace_only"?[]:n.filter(c=>c.effect==="append").sort(r),d=[...a?[a]:[],...s];return{matched:n.sort(r),replacement:a,applied:d,ignored:n.filter(c=>!d.includes(c))}}var qi="^[A-Za-z][A-Za-z0-9_]{0,62}$",sd="^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$",zu={type:"object",additionalProperties:!1,required:["mode","resourceCode","subtables"],properties:{mode:{const:"create"},resourceCode:{type:"string",maxLength:64,pattern:sd},subtables:{type:"array",minItems:1,maxItems:16,items:{type:"object",additionalProperties:!1,required:["fieldCode","fieldCodes"],properties:{fieldCode:{type:"string",pattern:qi},fieldCodes:{type:"array",minItems:1,maxItems:200,uniqueItems:!0,items:{type:"string",pattern:qi}}}}}}};function Ln(e){let t=n=>!!(n&&typeof n=="object"&&!Array.isArray(n)),o=n=>typeof n=="string"&&new RegExp(qi).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(sd).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(r=>!["fieldCode","fieldCodes"].includes(r))||!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(r=>!o(r)))||new Set(e.subtables.map(n=>n.fieldCode)).size!==e.subtables.length)throw new Error("WORKFLOW_OWNED_SUBJECT_CREATE_INVALID")}function Ju(e){return Ln(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 Gi(e,t,o){Ln(e);let n=s=>{throw new Error(`WORKFLOW_OWNED_SUBJECT_${s}`)},r=t.get(e.resourceCode);r||n("RESOURCE_MISSING");let i=new Set,a=0;for(let s of e.subtables){let d=r.get(s.fieldCode),c=d?.subtable,l=t.get(c?.resourceCode);(d?.type!=="subtable"||!l||c.resourceCode===e.resourceCode||i.has(c.resourceCode))&&n("RELATION_INVALID"),i.add(c.resourceCode);let u=c.maxRows??20;(!Number.isSafeInteger(u)||u<1||u>Ve)&&n("BUDGET_EXCEEDED"),a+=u;for(let p of s.fieldCodes){let m=l.get(p);(!m||["serial-number","subtable"].includes(m.type)||[c.foreignKey,c.orderField].includes(p))&&n("FIELD_INVALID"),["file","image","signature","text.rich"].includes(m.type)&&!o.some(E=>E.resourceCode===c.resourceCode&&E.fieldCodes.includes(p)&&E.intents.includes("create"))&&n("FILE_ACCESS_REQUIRED")}}a>at&&n("BUDGET_EXCEEDED")}var Qo=Fc(require("crypto"),1);var ad="native-4",zi="2.0.0-alpha.5",dd={"application-native-2":"1.0.0","application.extended-declaration-capacity":"1.0.0","application.extended-role-capacity":"1.0.0","application.extended-artifact-capacity":"1.0.0","application.high-density-artifact-capacity":"1.0.0","application.extended-configuration-bytes":"1.0.0","application.development-configuration":"2.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.rich-text":"1.0.0","data-api-v2":"1.1.0","data.service-mutations":"1.0.0","data.extended-owned-subtable-capacity":"1.0.0","data.aggregate-owned-subtable-capacity":"1.0.0","data.extended-field-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.field-source-contexts":"1.0.0","application.source-agents":"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.selected-departments":"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.approval-business-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.parent-read-policy":"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.role-input-selection":"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.correction-derived-subject-facts":"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.platform-notify":"1.0.0","workflow.reminders":"1.0.0","workflow.supervisor-chain":"1.0.0","workflow.return-policy":"1.0.0","workflow.handling-nodes":"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","workflow.step-data-transaction":"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 M=Object.freeze({perspectives:100,resources:512,dataPolicies:512,roles:512,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 Ji(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 Bo(e){return(e.authz?.roles?.length||0)>256}function Ko(e){let t=(Array.isArray(e.agents)?e.agents:[]).reduce((o,n)=>o+(Array.isArray(n?.tasks)?n.tasks.length:0),0)+(e.data?.resources||[]).filter(o=>o.status!=="retired").reduce((o,n)=>o+Ji(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 se=Object.freeze({legacyConfigBytes:4194304,configBytes:8388608,contractBytes:8388608,depth:40,stringBytes:1048576,legacyNodes:1e5,extendedNodes:25e4}),wt=Object.freeze({nodes:5e5});function qo(e){return Buffer.byteLength(oe(e),"utf8")>se.legacyConfigBytes}function cd(e,t){let o=0,n=[[e][Symbol.iterator]()];for(;n.length;){let r=n[n.length-1].next();if(r.done){n.pop();continue}if(++o>t)return!0;if(Array.isArray(r.value))n.push(r.value.values());else if(r.value&&typeof r.value=="object"){let i=r.value;n.push((function*(){for(let a of Object.keys(i))i[a]!==void 0&&(yield i[a])})())}}return!1}function vn(e){return cd(e,se.legacyNodes)}function Pn(e){return cd(e,se.extendedNodes)}var Ht=["openxiangda.workflow.task.reminded.v2","openxiangda.workflow.node.notified.v2","openxiangda.workflow.node.skipped.v2","openxiangda.workflow.step.requested.v2","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"];function Go(e){let t=e.flatMap(n=>Object.values(n.definition.nodes)),o=t.some(n=>n.kind==="action"&&!te(n));return Ht.filter(n=>n==="openxiangda.workflow.task.reminded.v2"?t.some(r=>r.reminders):n==="openxiangda.workflow.node.notified.v2"?t.some(te):n==="openxiangda.workflow.node.skipped.v2"?t.some(r=>r.kind==="approval"&&r.emptyPolicy==="skip"):n.startsWith("openxiangda.workflow.step.")?o:!0)}var Hu="openxiangda.config-bundle/v3",Td="openxiangda.contract-bundle/v3",ld="openxiangda.native-configuration-projection/v1",$n=ad,Yu=/^[a-f0-9]{64}$/,Xu=/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/,Zu=/^app:[a-z][a-z0-9]*(?:-[a-z0-9]+)*:[A-Za-z0-9:._*-]+$/,Qu=/^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$/,ef=/^[a-z][a-z0-9]*(?:[-.][a-z0-9]+)*$/,tf=/^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/,nf=/^[A-Za-z][A-Za-z0-9_]{0,62}$/,ud=/^[A-Za-z][A-Za-z0-9_]{0,127}$/,of=/^[a-z][a-z0-9]*(?:[-_][a-z0-9]+)*$/,rf=/^[A-Z][A-Z0-9_]*$/,sf=/^[a-z][a-z0-9-]{2,63}$/,af=/^[A-Za-z][A-Za-z0-9_-]{0,127}$/,df=/^[A-Za-z][A-Za-z0-9_.]{0,127}$/,cf=16,lf=2*1024,uf=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"]),ff=new Set(["overview","database","operations","workflow","members","calendar","document","folder","settings"]),pf=new Set(["complete","save_form","approve","reject","return","transfer","delegate","add_assignee","resubmit","withdraw","terminate","admin_reassign","admin_override","retry_resolution"]),mf=se.configBytes,gf=se.contractBytes,_f=se.depth,Yi=se.stringBytes,Af="openxiangda.event-handler-manifest/v2",Cd="openxiangda.application-route-manifest/v3",fd=64,Sd=new Set(["id","revision","created_by","updated_by","created_at","updated_at"]),Jo=["openxiangda.data.record.created.v2","openxiangda.data.record.updated.v2","openxiangda.data.record.deleted.v2"],Ef=new Set(Ht),Ho=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(([r,i])=>[r,String(i).slice(0,128)]))}};function If(e){let t=D(e.appCode,"/appCode",128);Xu.test(t)||g("NATIVE_CONFIG_APP_CODE_INVALID","/appCode");let o=Zi(e.expectedConfigDigest,"/expectedConfigDigest"),n=Zi(e.expectedContractDigest,"/expectedContractDigest"),r=Nd(e.configBytes,mf,"/configBytes","NATIVE_CONFIG_ARTIFACT_TOO_LARGE"),i=Nd(e.contractBytes,gf,"/contractBytes","NATIVE_CONTRACT_ARTIFACT_TOO_LARGE");Rd(r,o,"/configBytes","NATIVE_CONFIG_DIGEST_MISMATCH"),Rd(i,n,"/contractBytes","NATIVE_CONTRACT_DIGEST_MISMATCH");let a=hd(r,"/configBytes","NATIVE_CONFIG_JSON_INVALID","NATIVE_CONFIG_NOT_CANONICAL"),s=hd(i,"/contractBytes","NATIVE_CONTRACT_JSON_INVALID","NATIVE_CONTRACT_NOT_CANONICAL");zo(a,"/config",wt.nodes),zo(s,"/contracts",wt.nodes),Pn(a)||zo(s,"/contracts",se.extendedNodes),vn(a)||zo(s,"/contracts",se.legacyNodes);let d=a,c=s;bf(d,t),Of(c,t,o);let l=hf(d,o,c.generatorVersion);cp(l,c,d),oe(l)!==oe(c)&&g("NATIVE_CONTRACT_CLOSURE_MISMATCH",Qi(l,c,"/contracts"));let u={authz:{appCode:t,...d.authz,perspectives:d.perspectives,capabilityCatalog:l.capabilities},data:{appCode:t,resources:d.data.resources,resourceContracts:l.resources,...l.concurrency?{concurrency:l.concurrency}:{},...l.subjectReadSurfaces?{subjectReadSurfaces:l.subjectReadSurfaces}:{}},events:{appCode:t,...d.events,consumers:l.eventConsumers,producers:l.eventProducers,handlerManifest:l.eventHandlerManifest,eventTypes:l.eventTypes,capturePlans:kd({resources:d.data.resources,dataPolicies:d.authz.dataPolicies,subscriptions:l.eventConsumers,capturePolicies:d.events.capturePolicies})},workflows:{appCode:t,...d.workflows,contracts:l.workflows},runtime:{appCode:t,requirements:d.runtime,backend:d.backend,frontend:d.frontend},contracts:l},p={authz:Yt(u.authz),data:Yt(u.data),events:Yt(u.events),workflows:Yt(u.workflows),runtime:Yt(u.runtime),contracts:Yt(u.contracts)},m={configDigest:o,contractDigest:n,generatorVersion:c.generatorVersion},E=Dd(d),A={schemaVersion:ld,compilerContractVersion:$n,appCode:t,source:m,projections:p,requiredPlatformCapabilities:E,aggregateDigest:ee({schemaVersion:ld,compilerContractVersion:$n,appCode:t,source:m,requiredPlatformCapabilities:E,projectionDigests:Object.fromEntries(Object.entries(p).map(([O,y])=>[O,y.digest]))})};return Bd(A)}function pd(e,t){let o=e.subject,n=t.find(i=>i.code===o?.resourceCode),r=new Set(Object.values(o?.factProjection||{}));return!!n?.schema?.fields?.some(i=>i.type==="subtable"&&r.has(i.code))}function Dd(e){let t=e.authz.roles,o=e.data.resources,n=e.backend.operations,r=n.filter(f=>f.platformAccess?.directory?.mode==="current-initiator"&&f.platformAccess.directory.fields.includes("phone")),i=(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(I=>I.endsWith(":directory:read")))||o.some(f=>f.schema.fields.some(I=>["user.single","user.multiple","department.single","department.multiple"].includes(I.type)))||n.some(f=>f.platformAccess?.directory||f.platformAccess?.selectedDepartments),s=!!(e.events.subscriptions.length||e.events.timers.length||e.events.dateTriggers.length||e.events.schemas.length),d=n.some(f=>f.platformAccess?.managedFiles||f.platformAccess?.managedFileCopies)||e.events.subscriptions.some(f=>f.platformAccess?.managedFileCopies),c=e.workflows.definitions.some(f=>f.definition.rejectionNotification!==void 0)||n.some(f=>f.platformAccess?.notification)||e.events.subscriptions.some(f=>f.platformAccess?.notification),l=(f,I,R=!1)=>{let w=o.find(T=>T.code===f.definition.subject?.resourceCode)?.schema.fields||[];return Object.values(f.definition.taskPages||{}).some(T=>T.fields.some(S=>{if(S.readonly)return!1;let P=w.find(J=>J.code===S.code);if(!R&&P&&I.includes(P.type))return!0;if(!S.subtable||!P?.subtable)return!1;let F=o.find(J=>J.code===P.subtable.resourceCode)?.schema.fields||[];return S.subtable.fields.some(J=>!J.readonly&&F.some(ne=>ne.code===J.code&&I.includes(ne.type)))}))},u=e.workflows.definitions.filter(f=>l(f,["file","image","signature","text.rich"])),p=e.workflows.definitions.filter(f=>l(f,["signature","text.rich"])),m=e.workflows.definitions.filter(f=>l(f,["file","image","signature","text.rich"],!0)),E=e.workflows.definitions.filter(f=>f.launch.mode==="standalone"||f.launch.mode==="hidden-handoff"),A=n.some(f=>f.platformAccess?.workflow)||E.length>0,O=E.filter(f=>{let I=f.launch.submission;if(!I)return!1;let R=o.find(w=>w.code===f.definition.subject.resourceCode);return[I.create,I.existing].some(w=>w&&Object.values(w.inputs).some(T=>T.source==="field"&&R?.schema.fields.some(S=>S.code===T.fieldCode&&S.type.startsWith("resource-ref.")&&S.source)))}),y={resources:o},_={perspectives:e.perspectives,authz:e.authz},b={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[...Bo(e)?[{code:"application.extended-role-capacity",declaration:{roles:e.authz.roles.length,maximum:M.roles}}]:[],...qo(e)?[{code:"application.extended-configuration-bytes",declaration:{legacyConfigBytes:se.legacyConfigBytes,configBytes:se.configBytes}}]:[],...vn(e)?[{code:"application.extended-artifact-capacity",declaration:se}]:[],...Pn(e)?[{code:"application.high-density-artifact-capacity",declaration:wt}]:[],...e.agents?.length?[{code:"application.source-agents",declaration:e.agents}]:[],...Ko(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((f,I)=>f+I.items.length,0)}}]:[],...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)}]:[],...e.authz.dataPolicies.some(ko)?[{code:"data.parent-read-policy",declaration:e.authz.dataPolicies.filter(ko)}]:[],...e.authz.dataPolicies.some(f=>f.publicRead)?[{code:"data.authenticated-public-projection",declaration:e.authz.dataPolicies.filter(f=>f.publicRead)}]:[],...n.some(f=>f.platformAccess?.roleAssertions?.actorAuthority)?[{code:"data.transaction-actor-authority",declaration:n.filter(f=>f.platformAccess?.roleAssertions?.actorAuthority)}]:[],...n.some(f=>f.platformAccess?.workflowStage)?[{code:"workflow.native-stage-guard",declaration:n.filter(f=>f.platformAccess?.workflowStage)}]:[],...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:b},{code:"authz.native-batch-explain",declaration:_},{code:"authz.native-management",declaration:_},{code:"deployment.durable-runs",declaration:b.backend},{code:"deployment.platform-executor",declaration:b.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(kr)?[{code:"data.audit-read-access",declaration:y}]:[],...o.some(f=>f.schema.fields.some(I=>/^(resource-ref|user|department)\.(single|multiple)$/.test(I.type)))||e.authz.scopeDimensions.some(f=>f.valueSource)?[{code:"data.field-source-contexts",declaration:{resources:o.map(f=>({code:f.code,fields:f.schema.fields.filter(I=>/^(resource-ref|user|department)\.(single|multiple)$/.test(I.type))})),dimensions:e.authz.scopeDimensions.filter(f=>f.valueSource)}}]:[],...a?[{code:"directory-v2",declaration:{roles:t.map(f=>({code:f.code,capabilities:f.capabilities.filter(I=>I.endsWith(":directory:read"))})),resources:o.map(f=>({code:f.code,fields:f.schema.fields.filter(I=>["user.single","user.multiple","department.single","department.multiple"].includes(I.type))})),operations:n.filter(f=>f.platformAccess?.directory).map(f=>({code:f.code,directory:f.platformAccess.directory}))}}]:[],...n.some(f=>f.platformAccess?.selectedDepartments)?[{code:"directory.selected-departments",declaration:n.filter(f=>f.platformAccess?.selectedDepartments).map(f=>({code:f.code,selectedDepartments:f.platformAccess.selectedDepartments}))}]:[],...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}))}]:[],...r.length||i.length?[{code:"directory.current-initiator-phone",declaration:{operations:r.map(f=>({code:f.code,directory:f.platformAccess.directory})),commands:i.map(f=>({code:f.code,directory:f.execution.directory}))}}]:[],...e.data.resources.some(f=>f.schema.fields.some(I=>I.type==="text.rich"))?[{code:"data.rich-text",declaration:{policyVersion:"rich-text-html/1"}}]:[],...d?[{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}]:[],...e.events.dateTriggers.some(f=>Vi(f.resourceCode,e.events.subscriptions.filter(I=>I.eventTypes.includes(f.eventType)),e.data.resources.find(I=>I.code===f.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}]:[],...Xn(e.data.resources)?[{code:"data.extended-owned-subtable-capacity",declaration:e.data.resources.filter(f=>Xn([f]))}]:[],...Hn(e.data.resources,e.workflows?.definitions||[])?[{code:"data.extended-field-capacity",declaration:{resources:e.data.resources.filter(f=>f.schema.fields.length>100),workflows:(e.workflows?.definitions||[]).filter(f=>Hn([],[f]))}}]:[],...Yn(e.data.resources)?[{code:"data.aggregate-owned-subtable-capacity",declaration:e.data.resources.filter(f=>Yn([f]))}]:[],...e.data.resources.some(f=>f.schema.fields.some(I=>I.userCandidates!==void 0))?[{code:"data.user-candidates",declaration:e.data.resources.filter(f=>f.schema.fields.some(I=>I.userCandidates!==void 0))}]:[],...wi(e.workflows.bindings)?[{code:"workflow.role-input-selection",declaration:e.workflows.bindings.filter(f=>Object.values(f.binding.bindings).some(I=>I.selectedInputPath!==void 0))}]:[],...Ri(e.workflows.bindings)?[{code:"workflow.role-union",declaration:e.workflows.bindings.filter(f=>Object.values(f.binding.bindings).some(I=>I.roleCodes!==void 0))}]:[],...e.backend.operations.some(f=>f.platformAccess?.ownedSubject)?[{code:"workflow.named-owned-create",declaration:e.backend.operations.filter(f=>f.platformAccess?.ownedSubject)}]:[],...Gn(e.data.resources)?[{code:"data.user-candidate-launch-scope",declaration:e.data.resources.filter(f=>Gn([f]))}]:[],...to(e.data.resources)?[{code:"data.subtable-minimum-rows",declaration:e.data.resources.filter(f=>to([f]))}]:[],...eo(e.data.resources)?[{code:"data.datetime-minute-precision",declaration:e.data.resources.filter(f=>eo([f]))}]:[],...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.commandHandlers?.approve?.transitionPolicy==="workflow")?[{code:"workflow.approval-business-command",declaration:e.workflows.definitions.filter(f=>f.definition.commandHandlers?.approve?.transitionPolicy==="workflow")}]:[],...e.workflows.definitions.some(f=>f.definition.commandHandlers?.resubmit)||n.some(f=>f.platformAccess?.workflow?.businessCommands?.includes("resubmit"))?[{code:"workflow.correction-business-command",declaration:{definitions:e.workflows.definitions.filter(f=>f.definition.commandHandlers?.resubmit),operations:n.filter(f=>f.platformAccess?.workflow?.businessCommands?.includes("resubmit"))}}]:[],...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=>f.definition.commandHandlers?.resubmit?.derivedSubjectFields!==void 0)?[{code:"workflow.correction-derived-subject-facts",declaration:e.workflows.definitions.filter(f=>f.definition.commandHandlers?.resubmit?.derivedSubjectFields!==void 0)}]:[],...e.workflows.definitions.some(f=>f.definition.approvedDelegation!==void 0)?[{code:"workflow.approved-delegation",declaration:e.workflows.definitions.filter(f=>f.definition.approvedDelegation!==void 0)}]:[],...e.workflows.definitions.some(f=>pd(f.definition,e.data.resources))?[{code:"workflow.owned-initial-facts",declaration:e.workflows.definitions.filter(f=>pd(f.definition,e.data.resources))}]:[],...e.workflows.definitions.some(f=>Object.values(f.definition.nodes).some(I=>I.kind==="correction"))?[{code:"workflow.initiator-correction",declaration:e.workflows.definitions.filter(f=>Object.values(f.definition.nodes).some(I=>I.kind==="correction"))}]:[],...e.workflows.definitions.some(f=>Object.values(f.definition.nodes).some(I=>I.operationPolicy?.reject?.commentRequired===!1))?[{code:"workflow.optional-rejection-comment",declaration:e.workflows.definitions.filter(f=>Object.values(f.definition.nodes).some(I=>I.operationPolicy?.reject?.commentRequired===!1))}]:[],...e.workflows.definitions.some(f=>Object.values(f.definition.nodes).some(I=>Object.values(I.operationPolicy||{}).some(R=>R.reasonRequired===!1)))?[{code:"workflow.optional-operation-reason",declaration:e.workflows.definitions.filter(f=>Object.values(f.definition.nodes).some(I=>Object.values(I.operationPolicy||{}).some(R=>R.reasonRequired===!1)))}]:[],...O.length?[{code:"workflow.named-input-sources",declaration:O}]:[],...e.workflows.definitions.some(f=>Object.values(f.definition.nodes).some(I=>I.administration!==void 0||I.operationPolicy!==void 0))?[{code:"workflow.node-administration",declaration:e.workflows.definitions.filter(f=>Object.values(f.definition.nodes).some(I=>I.administration!==void 0||I.operationPolicy!==void 0))}]:[],...e.workflows.definitions.some(f=>Object.values(f.definition.nodes).some(I=>I.kind==="approval"&&I.emptyPolicy!==void 0))?[{code:"workflow.approval-empty-policy",declaration:e.workflows.definitions.filter(f=>Object.values(f.definition.nodes).some(I=>I.kind==="approval"&&I.emptyPolicy!==void 0))}]:[],...e.workflows.bindings.some(f=>Object.values(f.binding.bindings).some(I=>I.provider==="supervisor_chain"))?[{code:"workflow.supervisor-chain",declaration:e.workflows.bindings.filter(f=>Object.values(f.binding.bindings).some(I=>I.provider==="supervisor_chain"))}]:[],...e.workflows.definitions.some(f=>Object.values(f.definition.nodes).some(I=>I.reminders))?[{code:"workflow.reminders",declaration:e.workflows.definitions.filter(f=>Object.values(f.definition.nodes).some(I=>I.reminders))}]:[],...e.workflows.definitions.some(f=>Object.values(f.definition.nodes).some(I=>te(I)))?[{code:"workflow.platform-notify",declaration:e.workflows.definitions.filter(f=>Object.values(f.definition.nodes).some(I=>te(I)))}]:[],...e.workflows.definitions.some(f=>Object.values(f.definition.nodes).some(I=>I.returnPolicy!==void 0))?[{code:"workflow.return-policy",declaration:e.workflows.definitions.filter(f=>Object.values(f.definition.nodes).some(I=>I.returnPolicy!==void 0))}]:[],...e.workflows.definitions.some(f=>Object.values(f.definition.nodes).some(I=>I.kind==="handle"))?[{code:"workflow.handling-nodes",declaration:e.workflows.definitions.filter(f=>Object.values(f.definition.nodes).some(I=>I.kind==="handle"))}]:[],...e.workflows.definitions.some(f=>Object.values(f.definition.nodes).some(I=>I.completionDeadline!==void 0))?[{code:"workflow.completion-deadline",declaration:e.workflows.definitions.filter(f=>Object.values(f.definition.nodes).some(I=>I.completionDeadline!==void 0))}]:[],...e.workflows.definitions.some(f=>Object.values(f.definition.nodes).some(I=>I.initiatorApprovalPolicy!==void 0))?[{code:"workflow.initiator-approval-policy",declaration:e.workflows.definitions.filter(f=>Object.values(f.definition.nodes).some(I=>I.initiatorApprovalPolicy!==void 0))}]:[],...e.workflows.definitions.some(f=>Object.values(f.definition.nodes).some(I=>I.kind==="cc"))?[{code:"workflow.automatic-cc",declaration:e.workflows.definitions.filter(f=>Object.values(f.definition.nodes).some(I=>I.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(I=>I.definition.taskPages!==void 0)})):[],...u.length?[{code:"workflow.task-managed-files",declaration:u}]:[],...m.length?[{code:"workflow.task-owned-files",declaration:m}]:[],...p.length?[{code:"workflow.task-rich-fields",declaration:p}]:[],...e.workflows.definitions.some(f=>Object.values(f.definition.taskPages||{}).some(I=>I.fields.some(R=>R.subtable)))?[{code:"workflow.task-owned-subtables",declaration:e.workflows.definitions.filter(f=>Object.values(f.definition.taskPages||{}).some(I=>I.fields.some(R=>R.subtable)))}]:[],...e.workflows.definitions.some(f=>f.definition.authoring?.businessSteps?.length||Object.values(f.definition.nodes).some(I=>I.kind==="action"&&!te(I)))?[{code:"workflow.durable-business-step",declaration:e.workflows.definitions.filter(f=>f.definition.authoring?.businessSteps?.length||Object.values(f.definition.nodes).some(I=>I.kind==="action"&&!te(I)))}]:[],...e.workflows.definitions.some(f=>[...Object.values(f.definition.nodes),...f.definition.authoring?.businessSteps||[]].some(I=>I.handler?.dataTransaction))?[{code:"workflow.step-data-transaction",declaration:e.workflows.definitions.filter(f=>[...Object.values(f.definition.nodes),...f.definition.authoring?.businessSteps||[]].some(I=>I.handler?.dataTransaction))}]:[],...e.workflows.bindings.some(f=>Object.values(f.binding.bindings).some(I=>I.routing!==void 0))?[{code:"workflow.assignment-routing",declaration:e.workflows.bindings.filter(f=>Object.values(f.binding.bindings).some(I=>I.routing!==void 0))}]:[],...A?[{code:"business-process.durable-command",declaration:{operations:n.filter(f=>f.platformAccess?.workflow).map(f=>({code:f.code,workflow:f.platformAccess.workflow})),definitions:E,activations:e.workflows.activations.filter(f=>E.some(I=>I.definition.code===f.workflowCode))}}]:[],...n.some(f=>f.platformAccess?.dataMutations)||e.events.subscriptions.some(f=>f.platformAccess?.dataMutations)?[{code:"data.service-mutations",declaration:{operations:n.filter(f=>f.platformAccess?.dataMutations).map(f=>({code:f.code,grants:f.platformAccess.dataMutations})),subscriptions:e.events.subscriptions.filter(f=>f.platformAccess?.dataMutations).map(f=>({code:f.code,grants:f.platformAccess.dataMutations}))}}]:[],...c?[{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:I})=>({code:f,contractVersion:f==="data.unique-keys"?o.some(R=>Ai(R.schema.fields,R.uniqueKeys)==="1.1.0")?"1.1.0":"1.0.0":dd[f],usageDigest:`sha256:${ee(I)}`})).sort((f,I)=>f.code===I.code?0:f.code<I.code?-1:1)}function kd(e){let t=new Map,o=new Set(e.resources.map(i=>String(i.code)));for(let[i,a]of k(e.capturePolicies===void 0?[]:e.capturePolicies,"/capturePlan/capturePolicies",100).entries()){let s=`/capturePlan/capturePolicies/${i}`,d=N(a,s);C(d,["resourceCode","mode"],s);let c=Z(d.resourceCode,`${s}/resourceCode`);o.has(c)||g("NATIVE_EVENT_CAPTURE_RESOURCE_NOT_FOUND",s,{resourceCode:c}),t.has(c)&&g("NATIVE_EVENT_CAPTURE_POLICY_DUPLICATE",s,{resourceCode:c}),d.mode!=="all"&&d.mode!=="subscribed"&&g("NATIVE_EVENT_CAPTURE_MODE_INVALID",`${s}/mode`),t.set(c,d.mode)}let n=new Map(e.dataPolicies.map((i,a)=>{let s=N(i,`/capturePlan/dataPolicies/${a}`);return[String(s.code),s]})),r=e.subscriptions.map((i,a)=>N(i,`/capturePlan/subscriptions/${a}`));return e.resources.map((i,a)=>{let s=`/capturePlan/resources/${a}`,d=N(i,s),c=Z(d.code,`${s}/code`),l=d.schema?N(d.schema,`${s}/schema`):d,u=new Set(k(l.fields||[],`${s}/schema/fields`,500).map((I,R)=>z(N(I,`${s}/schema/fields/${R}`).code,`${s}/schema/fields/${R}/code`))),p=d.dataPolicyCode?$(d.dataPolicyCode,`${s}/dataPolicyCode`):null,m=p?n.get(p):void 0;p&&!m&&g("NATIVE_EVENT_CAPTURE_AUTHZ_POLICY_NOT_FOUND",s,{resourceCode:c,dataPolicyCode:p});let E=new Set;for(let I of m?.rules||[])E.add(I.parentRead?In(e.resources,c,I.parentRead,`${s}/parentRead`).foreignKey:String(I.field));if(m?.readExpression)for(let I of At(m.readExpression,`${s}/readExpression`))E.add(I.rule.parentRead?In(e.resources,c,I.rule.parentRead,`${s}/parentRead`).foreignKey:String(I.rule.field));let A=new Set,O=new Set,y=new Set;for(let[I,R]of r.entries()){let w=k(R.eventTypes,`/capturePlan/subscriptions/${I}/eventTypes`,20).map(String);if(!w.some(F=>F.startsWith("openxiangda.data.")))continue;let T=N(R.filter||{},`/capturePlan/subscriptions/${I}/filter`),S=Array.isArray(T.resourceCodes)?T.resourceCodes.map(String):[];if(S.length&&!S.includes(c))continue;for(let F of w)Jo.includes(F)&&y.add(F);for(let F of yf(T,`/capturePlan/subscriptions/${I}/filter`))A.add(F);let P=N(R.payload||{},`/capturePlan/subscriptions/${I}/payload`);for(let F of k(P.fields||[],`/capturePlan/subscriptions/${I}/payload/fields`,32))O.add(z(F,`/capturePlan/subscriptions/${I}/payload/fields`))}let _=new Set([...A,...O]),b=new Set([..._,...E]);b.size>fd&&g("NATIVE_EVENT_CAPTURE_FIELDS_LIMIT",s,{resourceCode:c,maximum:fd});for(let I of b)!u.has(I)&&!(E.has(I)&&Sd.has(I))&&g("NATIVE_EVENT_CAPTURE_FIELD_NOT_FOUND",s,{resourceCode:c,field:I});let h=N(d.fieldPolicies||{},`${s}/fieldPolicies`);for(let I of _)h[I]?.mask==="omit"&&g("NATIVE_EVENT_CAPTURE_FIELD_SENSITIVE",s,{resourceCode:c,field:I});let f={resourceCode:c,...t.get(c)==="subscribed"?{capturedEventTypes:[...y].sort()}:{},filterFields:[...A].sort(),projectionFields:[...O].sort(),authorizationFields:[...E].sort(),captureFields:[...b].sort()};return{...f,digest:ee(f)}}).sort((i,a)=>i.resourceCode.localeCompare(a.resourceCode))}function yf(e,t){let o=new Set;for(let[a,s]of k(e.changes||[],`${t}/changes`,16).entries()){let d=N(s,`${t}/changes/${a}`);o.add(z(d.field,`${t}/changes/${a}/field`))}let n=N(e.changedFields||{},`${t}/changedFields`);for(let a of["anyOf","allOf","noneOf"])for(let[s,d]of k(n[a]||[],`${t}/changedFields/${a}`,32).entries())o.add(z(d,`${t}/changedFields/${a}/${s}`));let r=0,i=(a,s,d)=>{d>3&&g("NATIVE_EVENT_FILTER_DEPTH_LIMIT",s);let c=N(a,s);if(c.change){let u=N(c.change,`${s}/change`);o.add(z(u.field,`${s}/change/field`)),r+=1;return}if(c.not){i(c.not,`${s}/not`,d+1);return}let l=c.all?"all":c.any?"any":null;l||g("NATIVE_EVENT_FILTER_CONDITION_INVALID",s);for(let[u,p]of k(c[l],`${s}/${l}`,16).entries())i(p,`${s}/${l}/${u}`,d+1)};return e.where&&i(e.where,`${t}/where`,1),r+=Array.isArray(e.changes)?e.changes.length:0,r>16&&g("NATIVE_EVENT_FILTER_ATOM_LIMIT",t),[...o].sort()}function bf(e,t){C(e,["schemaVersion","compilerContractVersion","appCode","perspectives","authz","backend","data","events","workflows","frontend","runtime"],"/config",["agents"]),ei(t,e.agents,e.data?.resources||[],{authz:e.authz}),W(e.schemaVersion,Hu,"/config/schemaVersion"),W(e.compilerContractVersion,$n,"/config/compilerContractVersion"),W(e.appCode,t,"/config/appCode"),k(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"]),k(o.capabilities,"/config/authz/capabilities",M.capabilities),k(o.roles,"/config/authz/roles",M.roles),k(o.scopeDimensions,"/config/authz/scopeDimensions",100),k(o.scopeSources,"/config/authz/scopeSources",100),k(o.roleMembershipSources,"/config/authz/roleMembershipSources",100),k(o.relationshipGrantSources,"/config/authz/relationshipGrantSources",100),k(o.dataPolicies,"/config/authz/dataPolicies",M.dataPolicies),k(o.authorizationTransitions,"/config/authz/authorizationTransitions",100);let n=N(e.backend,"/config/backend");C(n,["secrets","operations"],"/config/backend"),k(n.secrets,"/config/backend/secrets",100),k(n.operations,"/config/backend/operations",500),op(n.secrets);let r=N(e.data,"/config/data");C(r,["resources"],"/config/data",["resourceDetailRoutes","subjectReadSurfaces","concurrency"]),k(r.resources,"/config/data/resources",M.resources),r.subjectReadSurfaces!==void 0&&k(r.subjectReadSurfaces,"/config/data/subjectReadSurfaces",M.subjectReadSurfaces),r.resourceDetailRoutes!==void 0&&k(r.resourceDetailRoutes,"/config/data/resourceDetailRoutes",100);let i=N(e.events,"/config/events");C(i,["schemas","subscriptions","timers","dateTriggers"],"/config/events",["capturePolicies"]),k(i.schemas,"/config/events/schemas",100),k(i.subscriptions,"/config/events/subscriptions",100),k(i.timers,"/config/events/timers",100),k(i.dateTriggers,"/config/events/dateTriggers",100);let a=N(e.workflows,"/config/workflows");C(a,["definitions","bindings","activations","providers","editableParameters"],"/config/workflows"),k(a.definitions,"/config/workflows/definitions",M.workflows),k(a.bindings,"/config/workflows/bindings",M.workflows),k(a.activations,"/config/workflows/activations",M.workflows),k(a.providers,"/config/workflows/providers",100),k(a.editableParameters,"/config/workflows/editableParameters",100);let s=N(e.frontend,"/config/frontend");C(s,["routes","user","admin","devicePolicy"],"/config/frontend",["authentication","publicAccess"]),k(s.routes,"/config/frontend/routes",M.routes);let d=N(s.user,"/config/frontend/user");C(d,["applicationTodoCenter"],"/config/frontend/user"),Qt(d.applicationTodoCenter,"/config/frontend/user/applicationTodoCenter"),es(s.devicePolicy,"/config/frontend/devicePolicy"),Object.prototype.hasOwnProperty.call(s,"authentication")&&vd(s.authentication,s.routes,e,"/config/frontend/authentication"),Object.prototype.hasOwnProperty.call(s,"publicAccess")&&Wf(s.publicAccess,e,"/config/frontend/publicAccess");let c=N(s.admin,"/config/frontend/admin");C(c,["navigation"],"/config/frontend/admin",["access"]),c.access!==void 0&&tr(c.access,"/config/frontend/admin/access",e.appCode),Mf(c.navigation,"/config/frontend/admin/navigation");let l=N(e.runtime,"/config/runtime");C(l,["protocolCapabilities","health"],"/config/runtime"),V(l.protocolCapabilities,"/config/runtime/protocolCapabilities",100),C(N(l.health,"/config/runtime/health"),["livePath","readyPath","versionPath"],"/config/runtime/health"),W(l.health.livePath,"/__platform/health","/config/runtime/health/livePath"),W(l.health.readyPath,"/__platform/ready","/config/runtime/health/readyPath"),W(l.health.versionPath,"/__platform/version","/config/runtime/health/versionPath")}function Of(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"]),W(e.schemaVersion,Td,"/contracts/schemaVersion"),W(e.compilerContractVersion,$n,"/contracts/compilerContractVersion"),D(e.generatorVersion,"/contracts/generatorVersion",128),W(e.appCode,t,"/contracts/appCode"),W(e.configDigest,o,"/contracts/configDigest"),k(e.perspectives,"/contracts/perspectives",M.perspectives),k(e.resources,"/contracts/resources",M.resources),e.subjectReadSurfaces!==void 0&&k(e.subjectReadSurfaces,"/contracts/subjectReadSurfaces",M.subjectReadSurfaces),k(e.capabilities,"/contracts/capabilities",M.capabilities),k(e.operations,"/contracts/operations",M.operations),k(e.eventConsumers,"/contracts/eventConsumers",M.eventConsumers),k(e.eventProducers,"/contracts/eventProducers",M.eventProducers),k(e.eventSchemas,"/contracts/eventSchemas",M.eventSchemas),N(e.eventHandlerManifest,"/contracts/eventHandlerManifest"),V(e.eventTypes,"/contracts/eventTypes",M.eventTypes),k(e.workflows,"/contracts/workflows",M.workflows),k(e.routes,"/contracts/routes",M.routes),Object.prototype.hasOwnProperty.call(e,"authentication")&&$f(e.authentication,"/contracts/authentication"),Object.prototype.hasOwnProperty.call(e,"publicAccess")&&xf(e.publicAccess,"/contracts/publicAccess"),Object.prototype.hasOwnProperty.call(e,"adminAccess")&&tr(e.adminAccess,"/contracts/adminAccess",t),Jf(e.routeManifest,"/contracts/routeManifest",t),qf(e.adminPages,"/contracts/adminPages"),Gf(e.adminNavigation,"/contracts/adminNavigation")}function hf(e,t,o){let n=wf(e);Qf(e,n),tp(e),ep(e),rp(e);let r=e.events.schemas.map((_,b)=>{let h=`/config/events/schemas/${b}`,f=N(_,h),I=D(f.eventType,`${h}/eventType`,255);return I.startsWith("openxiangda.")&&g("NATIVE_EVENT_SCHEMA_RESERVED",`${h}/eventType`,{eventType:I}),W(f.schemaDigest,ee(N(f.jsonSchema,`${h}/jsonSchema`)),`${h}/schemaDigest`),f}),i=new Set([...Jo,...Ht,...r.map(_=>String(_.eventType))]),a=new Map(e.data.resources.map(_=>[String(_.code),new Map(_.schema.fields.map(b=>[String(b.code),String(b.type)]))])),s=re(e.events.subscriptions.map((_,b)=>{let h=`/config/events/subscriptions/${b}`,f=N(_,h),I=V(f.eventTypes,`${h}/eventTypes`,20);I.forEach((S,P)=>{i.has(S)||g("NATIVE_EVENT_TYPE_NOT_REGISTERED",`${h}/eventTypes/${P}`,{eventType:S})});let R=Ei(f,e.data.resources,h),w=Rf(f.delivery,I,`${h}/delivery`),T=Nf(f.platformAccess,`${h}/platformAccess`,a,e,f);return{code:$(f.code,`${h}/code`),endpointPath:Pe(f.endpointPath,`${h}/endpointPath`),eventTypes:I,filter:N(f.filter,`${h}/filter`),payload:R?.payload||N(f.payload,`${h}/payload`),...R?{execution:R.execution}:{},...T?{platformAccess:T}:{},delivery:w}}),_=>_.code),d=new Map(r.map(_=>[String(_.eventType),String(_.dataSchemaVersion)])),c=re([...e.data.resources.flatMap(_=>Jo.map(b=>({code:`data:${_.code}:${b}`,source:"data",eventType:b,dataSchemaVersion:"2.0.0",resourceCode:_.code}))),...r.map(_=>({code:`app:${_.eventType}`,source:"app",eventType:_.eventType,dataSchemaVersion:_.dataSchemaVersion})),...e.events.timers.map(_=>({code:_.code,source:"timer",eventType:_.eventType,dataSchemaVersion:d.get(String(_.eventType))||"2.0.0"})),...e.events.dateTriggers.map(_=>({code:_.code,source:"date",eventType:_.eventType,dataSchemaVersion:d.get(String(_.eventType))||"2.0.0",resourceCode:_.resourceCode,field:_.field})),...e.workflows.activations.length?Go(e.workflows.definitions).map(_=>({code:`workflow:${_}`,source:"workflow",eventType:_,dataSchemaVersion:"2.0.0"})):[]],_=>`${_.source}:${_.code}:${_.eventType}`),l=B([...s.flatMap(_=>_.eventTypes),...c.map(_=>String(_.eventType))]);Kf(e);let u=Fd(e),p;try{p=Ur(e.data.concurrency,e.data.resources,n)}catch(_){throw _ instanceof xt&&g(_.code,_.pointer,{reason:_.reason}),_}p?.commands.some(_=>_.mode==="durable")&&e.backend?.enabled===!1&&g("NATIVE_MANAGED_CONCURRENCY_INVALID","/data/concurrency",{reason:"durable commands require backend runtime"});let m=Cf(e,n),E=Ld(e),A=e.workflows.definitions.map(_=>_.definition),O=So(A),y=ii(A,s,!0);y.length&&g(y[0],"/config/events/subscriptions");try{qr(e.data.resources,E)}catch(_){throw _ instanceof lt&&g(_.code,_.pointer,{reason:_.reason}),_}return{schemaVersion:Td,compilerContractVersion:$n,generatorVersion:o,appCode:e.appCode,configDigest:t,perspectives:e.perspectives,resources:Tf(e),...m.length?{subjectReadSurfaces:m}:{},...p?{concurrency:p}:{},capabilities:re(n,_=>_.code),operations:E,eventConsumers:s,eventProducers:c,eventSchemas:r,eventHandlerManifest:{schemaVersion:Af,appCode:e.appCode,handlers:s.filter(_=>!_.execution).map(_=>({code:_.code,endpointPath:_.endpointPath,eventTypes:_.eventTypes,dataSchemaVersions:B(_.eventTypes.map(b=>b.startsWith("openxiangda.")?"2.0.0":d.get(b)||"2.0.0")),maxBodyBytes:65536,receiptProtocolVersion:2,...O[_.code]?{workflowStep:O[_.code]}:{}}))},eventTypes:l,workflows:xd(e),routes:er(e),...Object.prototype.hasOwnProperty.call(e.frontend,"authentication")?{authentication:Ff(e)}:{},...Object.prototype.hasOwnProperty.call(e.frontend,"publicAccess")?{publicAccess:jf(e)}:{},...e.frontend.admin.access?{adminAccess:e.frontend.admin.access}:{},routeManifest:Xf(e),adminPages:u,adminNavigation:Uf(e)}}function Nf(e,t,o,n,r){if(e===void 0)return;let i=N(e,t);C(i,["notification","managedFileCopies","decimalReservation","dataMutations"],t,!0);let a={};if(i.dataMutations!==void 0)try{a.dataMutations=Do(i.dataMutations,o)}catch{g("NATIVE_EVENT_DATA_MUTATIONS_INVALID",`${t}/dataMutations`)}if(i.decimalReservation!==void 0)try{a.decimalReservation=Pa(i.decimalReservation,$a(n,r))}catch{g("NATIVE_EVENT_DECIMAL_RESERVATION_INVALID",`${t}/decimalReservation`)}if(i.notification!==void 0){let s=N(i.notification,`${t}/notification`);C(s,["mode"],`${t}/notification`),W(s.mode,"business-standard",`${t}/notification/mode`),a.notification={mode:"business-standard"}}if(i.managedFileCopies!==void 0){let s=k(i.managedFileCopies,`${t}/managedFileCopies`,16);s.length||g("NATIVE_EVENT_MANAGED_FILE_COPIES_REQUIRED",`${t}/managedFileCopies`);let d=new Set;a.managedFileCopies=re(s.map((c,l)=>{let u=`${t}/managedFileCopies/${l}`,p=N(c,u);C(p,["mode","sourceResourceCode","sourceFieldCodes","targetResourceCode","targetFieldCodes"],u),W(p.mode,"copy",`${u}/mode`);let m=Z(p.sourceResourceCode,`${u}/sourceResourceCode`),E=Z(p.targetResourceCode,`${u}/targetResourceCode`),A=o.get(m),O=o.get(E);(!A||!O)&&g("NATIVE_EVENT_MANAGED_FILE_COPY_RESOURCE_INVALID",u);let y=V(p.sourceFieldCodes,`${u}/sourceFieldCodes`,16),_=V(p.targetFieldCodes,`${u}/targetFieldCodes`,16);(!y.length||y.length!==_.length)&&g("NATIVE_EVENT_MANAGED_FILE_COPY_FIELDS_INVALID",u),y.forEach((h,f)=>{let I=A.get(h),R=O.get(_[f]);(!["file","image","text.rich"].includes(String(I))||I!==R)&&g("NATIVE_EVENT_MANAGED_FILE_COPY_FIELD_INVALID",`${u}/sourceFieldCodes/${f}`)});let b=`${m}:${y.join(",")}=>${E}:${_.join(",")}`;return d.has(b)&&g("NATIVE_EVENT_MANAGED_FILE_COPY_DUPLICATE",u),d.add(b),{mode:"copy",sourceResourceCode:m,sourceFieldCodes:B(y),targetResourceCode:E,targetFieldCodes:B(_)}}),c=>`${c.sourceResourceCode}:${c.sourceFieldCodes.join(",")}=>${c.targetResourceCode}:${c.targetFieldCodes.join(",")}`)}return Object.keys(a).length||g("NATIVE_EVENT_PLATFORM_ACCESS_EMPTY",t),a}function Rf(e,t,o){let n=N(e,o);C(n,["timeoutMs","maxAttempts","initialBackoffMs","maxBackoffMs","ordering","concurrency"],o),ce(n.timeoutMs,`${o}/timeoutMs`,1e3,3e4),ce(n.maxAttempts,`${o}/maxAttempts`,1,12);let r=ce(n.initialBackoffMs,`${o}/initialBackoffMs`,1e3,3e5);ce(n.maxBackoffMs,`${o}/maxBackoffMs`,r,18e5),ce(n.concurrency,`${o}/concurrency`,1,50);let i=D(n.ordering,`${o}/ordering`,32);return["none","record","workflow-instance"].includes(i)||g("NATIVE_EVENT_DELIVERY_ORDERING_INVALID",`${o}/ordering`),i==="workflow-instance"&&t.some(a=>!Ef.has(a))&&g("NATIVE_EVENT_WORKFLOW_ORDERING_REQUIRES_WORKFLOW_FACTS",`${o}/ordering`),n}function wf(e){let t=new Map;for(let i of Md(e.appCode))t.set(i.code,i);for(let[i,a]of e.authz.capabilities.entries()){let s=`/config/authz/capabilities/${i}`,d=N(a,s);C(d,["code","kind","name","description"],s,!0);let c=ye(d.code,`${s}/code`,e.appCode);t.has(c)&&g("NATIVE_CAPABILITY_DUPLICATE",`${s}/code`),["backend","ui"].includes(d.kind)||g("NATIVE_CAPABILITY_KIND_INVALID",`${s}/kind`);let l={code:c,kind:d.kind,name:D(d.name,`${s}/name`,255),source:"explicit",...d.description===void 0?{}:{description:ns(d.description,`${s}/description`,2e3)}};t.set(c,l)}let o=e.data.resources.map((i,a)=>({pointer:`/config/data/resources/${a}`,resource:Tt(i,`/config/data/resources/${a}`,e.appCode)}));for(let{pointer:i,resource:a}of o){let s={read:`\u8BFB\u53D6${a.name}`,create:`\u65B0\u5EFA${a.name}`,update:`\u66F4\u65B0${a.name}`,delete:`\u5220\u9664${a.name}`};for(let d of["read","create","update","delete"]){let c=ye(a.capabilities[d],`${i}/capabilities/${d}`,e.appCode);t.has(c)&&g("NATIVE_CAPABILITY_DUPLICATE",`${i}/capabilities/${d}`),t.set(c,{code:c,kind:"data",name:s[d],source:"data"})}}let n=new Set(t.keys()),r=new Map;for(let{pointer:i,resource:a}of o)for(let[s,d]of Object.entries(a.fieldPolicies)){if(Ze(s))continue;let c=N(d,`${i}/fieldPolicies/${s}`);for(let l of["read","create","update"])if(Array.isArray(c[l]))for(let u of V(c[l],`${i}/fieldPolicies/${s}/${l}`,2e3)){if(ye(u,`${i}/fieldPolicies/${s}/${l}`,e.appCode),n.has(u))continue;let p=r.get(u);p&&p!==a.code&&g("NATIVE_CAPABILITY_DUPLICATE",`${i}/fieldPolicies/${s}/${l}`),r.set(u,a.code),!t.has(u)&&t.set(u,{code:u,kind:"data",name:`${a.name}.${s}.${l}`,source:"data"})}}return[...t.values()]}function Tf(e){let t=Sf(e);return re(e.data.resources.map((o,n)=>{let r=Tt(o,`/config/data/resources/${n}`,e.appCode),i=t.get(r.code);return{code:r.code,schemaDigest:ee(r.schema),fields:re(r.schema.fields.map(a=>({code:a.code,type:a.type})),a=>a.code),...i?{detailRouteCode:i}:{}}}),o=>o.code)}function Cf(e,t){if(e.data.subjectReadSurfaces===void 0)return[];let o=k(e.data.subjectReadSurfaces,"/config/data/subjectReadSurfaces",M.subjectReadSurfaces),n=new Set(t.map(a=>String(a.code))),r=new Map(e.data.resources.map((a,s)=>{let d=`/config/data/resources/${s}`,c=Tt(a,d,e.appCode);return[String(c.code),{resource:c,fields:new Map(k(N(c.schema,`${d}/schema`).fields,`${d}/schema/fields`,500).map(l=>{let u=N(l,`${d}/schema/fields`);return[String(u.code),u]}))}]})),i=new Set;return re(o.map((a,s)=>{let d=`/config/data/subjectReadSurfaces/${s}`,c=N(a,d);C(c,["code","name","capability","subject","relations"],d);let l=$(c.code,`${d}/code`);i.has(l)&&g("NATIVE_SUBJECT_READ_SURFACE_CODE_DUPLICATE",`${d}/code`),i.add(l);let u=ye(c.capability,`${d}/capability`,e.appCode);n.has(u)||g("NATIVE_SUBJECT_READ_SURFACE_CAPABILITY_NOT_DECLARED",`${d}/capability`);let p=N(c.subject,`${d}/subject`);C(p,["resourceCode","fields"],`${d}/subject`);let m=Z(p.resourceCode,`${d}/subject/resourceCode`),E=r.get(m);E||g("NATIVE_SUBJECT_READ_SURFACE_RESOURCE_NOT_DECLARED",`${d}/subject/resourceCode`);let A=V(p.fields,`${d}/subject/fields`,100).map((h,f)=>z(h,`${d}/subject/fields/${f}`));A.length||g("NATIVE_SUBJECT_READ_SURFACE_FIELDS_REQUIRED",`${d}/subject/fields`);for(let[h,f]of A.entries()){let I=E.fields.get(f);(!I||I.type==="subtable")&&g("NATIVE_SUBJECT_READ_SURFACE_FIELD_INVALID",`${d}/subject/fields/${h}`)}let O=k(c.relations,`${d}/relations`,8);O.length||g("NATIVE_SUBJECT_READ_SURFACE_RELATIONS_REQUIRED",`${d}/relations`);let y=new Set,_=0,b=re(O.map((h,f)=>{let I=`${d}/relations/${f}`,R=N(h,I);C(R,["code","resourceCode","foreignKeyField","fields","limit"],I,["order"]);let w=$(R.code,`${I}/code`);y.has(w)&&g("NATIVE_SUBJECT_READ_SURFACE_RELATION_CODE_DUPLICATE",`${I}/code`),y.add(w);let T=Z(R.resourceCode,`${I}/resourceCode`),S=r.get(T);S||g("NATIVE_SUBJECT_READ_SURFACE_RESOURCE_NOT_DECLARED",`${I}/resourceCode`);let P=z(R.foreignKeyField,`${I}/foreignKeyField`),F=S.fields.get(P),J=N(F?.source||{},`${I}/foreignKeyField/source`);(!F||!["uuid","resource-ref.single"].includes(String(F.type))||F.type==="resource-ref.single"&&(J.kind!=="resource"||J.resourceCode!==m))&&g("NATIVE_SUBJECT_READ_SURFACE_RELATION_INVALID",`${I}/foreignKeyField`);let ne=V(R.fields,`${I}/fields`,100).map((ae,v)=>z(ae,`${I}/fields/${v}`));ne.length||g("NATIVE_SUBJECT_READ_SURFACE_FIELDS_REQUIRED",`${I}/fields`);for(let[ae,v]of ne.entries()){let U=S.fields.get(v);(!U||U.type==="subtable")&&g("NATIVE_SUBJECT_READ_SURFACE_FIELD_INVALID",`${I}/fields/${ae}`)}let Q=k(R.order||[],`${I}/order`,10).map((ae,v)=>{let U=`${I}/order/${v}`,x=N(ae,U);C(x,["field","direction"],U);let H=z(x.field,`${U}/field`),Y=S.fields.get(H);return(!Sd.has(H)&&!Y||Y?.type==="subtable"||Y&&!Vt(Y.type))&&g("NATIVE_SUBJECT_READ_SURFACE_ORDER_FIELD_INVALID",`${U}/field`),["asc","desc"].includes(String(x.direction))||g("NATIVE_SUBJECT_READ_SURFACE_ORDER_DIRECTION_INVALID",`${U}/direction`),{field:H,direction:x.direction}}),he=ce(R.limit,`${I}/limit`,1,100);return _+=he,{code:w,resourceCode:T,foreignKeyField:P,fields:B(ne),...Q.length?{order:Q}:{},limit:he}}),h=>h.code);return _>400&&g("NATIVE_SUBJECT_READ_SURFACE_ROW_LIMIT_EXCEEDED",`${d}/relations`),{code:l,name:D(c.name,`${d}/name`,255),capability:u,subject:{resourceCode:m,fields:B(A)},relations:b}}),a=>a.code)}function Sf(e){let t=e.data.resourceDetailRoutes===void 0?[]:k(e.data.resourceDetailRoutes,"/config/data/resourceDetailRoutes",100),o=new Map(e.data.resources.map((i,a)=>{let s=`/config/data/resources/${a}`,d=Tt(i,s,e.appCode);return[d.code,d]})),n=new Map(er(e).map(i=>[String(i.code),i])),r=new Map;for(let[i,a]of t.entries()){let s=`/config/data/resourceDetailRoutes/${i}`,d=N(a,s);C(d,["resourceCode","desktop","mobile"],s);let c=Z(d.resourceCode,`${s}/resourceCode`);r.has(c)&&g("NATIVE_DATA_RESOURCE_DETAIL_ROUTE_DUPLICATE",`${s}/resourceCode`);let l=o.get(c);l||g("NATIVE_DATA_RESOURCE_DETAIL_ROUTE_RESOURCE_MISSING",`${s}/resourceCode`);let u=$(d.desktop,`${s}/desktop`),p=$(d.mobile,`${s}/mobile`);u===p&&g("NATIVE_DATA_RESOURCE_DETAIL_ROUTE_INVALID",s);let m=String(l.capabilities.read);for(let[E,A]of[["desktop",u],["mobile",p]]){let O=`${s}/${E}`,y=n.get(A);y||g("NATIVE_DATA_RESOURCE_DETAIL_ROUTE_REFERENCE_MISSING",O),y.surface!=="user"&&g("NATIVE_DATA_RESOURCE_DETAIL_ROUTE_SURFACE_INVALID",O);let _=Pe(y.path,`${O}/path`),b=[..._.matchAll(/:([A-Za-z][A-Za-z0-9_]*)/g)],h=E==="mobile"?!_.startsWith("/m/"):_==="/m"||_.startsWith("/m/");(_.includes("*")||_.includes("?")||_.includes("#")||_.split("/").includes("..")||b.length!==1||h)&&g("NATIVE_DATA_RESOURCE_DETAIL_ROUTE_PATH_INVALID",O);let f=Array.isArray(y.access?.allOf)?y.access.allOf:[];y.capability!==m&&!f.includes(m)&&g("NATIVE_DATA_RESOURCE_DETAIL_ROUTE_CAPABILITY_INVALID",O)}r.set(c,{desktop:u,mobile:p})}return r}function Ld(e){let t=new Map(e.data.resources.map((a,s)=>{let d=`/config/data/resources/${s}`,c=Tt(a,d,e.appCode);return[c.code,new Map(c.schema.fields.map(l=>[String(l.code),l]))]})),o=new Map(e.data.resources.map((a,s)=>{let d=`/config/data/resources/${s}`,c=Tt(a,d,e.appCode);return[c.code,new Map(c.schema.fields.map(l=>[String(l.code),String(l.type)]))]})),n=new Set(o.keys()),r=new Set(e.workflows.activations.map((a,s)=>nr(N(a,`/config/workflows/activations/${s}`).workflowCode,`/config/workflows/activations/${s}/workflowCode`))),i=new Map;return re(e.backend.operations.map((a,s)=>{let d=`/config/backend/operations/${s}`,c=N(a,d);C(c,["code","method","path","capability","requestSchema","responseSchema","description","platformAccess","browser","ai"],d,!0);let l=D(c.method,`${d}/method`,16);["GET","POST","PUT","PATCH","DELETE"].includes(l)||g("NATIVE_OPERATION_METHOD_INVALID",`${d}/method`);let u=$(c.code,`${d}/code`);vf(c.ai,d,u,l,n);let p=Lf(c.platformAccess,`${d}/platformAccess`,o,t,r,new Set(e.authz.roles.map(E=>String(E.code))));if(p?.workflowStage){let E=p.workflowStage,A=e.workflows.definitions.find(O=>O.definition.code===E.workflowCode);(!A||A.definition.subject?.resourceCode!==E.resourceCode||E.runningNodeIds.some(O=>!A.definition.nodes[O]))&&g("NATIVE_WORKFLOW_STAGE_NODE_INVALID",`${d}/platformAccess/workflowStage/runningNodeIds`)}if(p?.recordEdit){let E=e.data.resources.find(A=>A.code===p.recordEdit.resourceCode);E?.surface?.mutationOwner!=="action"&&g("NATIVE_RECORD_EDIT_ACTION_OWNER_REQUIRED",`${d}/platformAccess/recordEdit`);for(let A of p.recordEdit.fieldCodes)(!E.fieldPolicies?.[A]?.update?.length||E.surface?.fields?.[A]?.system===!0)&&g("NATIVE_RECORD_EDIT_FIELD_INVALID",`${d}/platformAccess/recordEdit/fieldCodes`)}if(p?.decimalReservation){let E=p.decimalReservation,A=String(E.resourceCode),O=JSON.stringify([E.amountFieldCode,E.currencyFieldCode,E.relationFieldCode,E.parentFieldCode,E.rootFieldCode,E.statusFieldCode,E.parentRelationValue,E.childRelationValue]),y=i.get(A);y&&y!==O&&g("NATIVE_DECIMAL_RESERVATION_MAPPING_CONFLICT",`${d}/platformAccess/decimalReservation`),i.set(A,O)}let m=Df(c.browser,`${d}/browser`,l,c.requestSchema,c.responseSchema,o,t,e.data.subjectReadSurfaces||[]);return{code:u,method:l,path:Pe(c.path,`${d}/path`),requiredCapability:ye(c.capability,`${d}/capability`,e.appCode),requestSchemaDigest:ee(N(c.requestSchema,`${d}/requestSchema`)),responseSchemaDigest:ee(N(c.responseSchema,`${d}/responseSchema`)),...c.description===void 0?{}:{description:ns(c.description,`${d}/description`,2e3)},...p?{platformAccess:p}:{},...m?{browser:m}:{}}}),a=>a.code)}function Df(e,t,o,n,r,i,a,s){if(e===void 0)return null;let d=N(e,t);C(d,["exposure","behavior","idempotency","subject"],t,["refreshTargets","fileIntent"]),W(d.exposure,"authenticated",`${t}/exposure`);let c=D(d.behavior,`${t}/behavior`,32);["read","controlled"].includes(c)||g("NATIVE_OPERATION_BROWSER_BEHAVIOR_INVALID",`${t}/behavior`);let l=D(d.idempotency,`${t}/idempotency`,32);(!["none","required"].includes(l)||c==="controlled"&&l!=="required"||c==="read"&&l!=="none")&&g("NATIVE_OPERATION_BROWSER_IDEMPOTENCY_INVALID",`${t}/idempotency`);let u=N(d.subject,`${t}/subject`);C(u,["resourceCode","inputField"],`${t}/subject`);let p=Z(u.resourceCode,`${t}/subject/resourceCode`);i.has(p)||g("NATIVE_OPERATION_BROWSER_SUBJECT_RESOURCE_NOT_DECLARED",`${t}/subject/resourceCode`);let m=z(u.inputField,`${t}/subject/inputField`),E=N(n,`${t}/requestSchema`),A=N(r,`${t}/responseSchema`);(E.type!=="object"||E.additionalProperties!==!1||A.type!=="object"||A.additionalProperties!==!1)&&g("NATIVE_OPERATION_BROWSER_SCHEMA_ROOT_INVALID",`${t}/requestSchema`);let O=N(E.properties,`${t}/requestSchema/properties`),y=new Set(E.required===void 0?[]:V(E.required,`${t}/requestSchema/required`,200));(!(m in O)||!y.has(m))&&g("NATIVE_OPERATION_BROWSER_SUBJECT_INPUT_INVALID",`${t}/subject/inputField`);let _=N(O[m],`${t}/requestSchema/properties/${m}`);(_.type!=="string"||_.format!=="uuid")&&g("NATIVE_OPERATION_BROWSER_SUBJECT_INPUT_INVALID",`${t}/subject/inputField`);let b=new Map((Array.isArray(s)?s:[]).map((w,T)=>{let S=N(w,`/config/data/subjectReadSurfaces/${T}`);return[String(S.code),String(N(S.subject,`/config/data/subjectReadSurfaces/${T}/subject`).resourceCode)]})),h=d.refreshTargets===void 0?[]:k(d.refreshTargets,`${t}/refreshTargets`,16),f=new Set,I=re(h.map((w,T)=>{let S=`${t}/refreshTargets/${T}`,P=N(w,S);C(P,["kind","code"],S),W(P.kind,"subject-surface",`${S}/kind`);let F=$(P.code,`${S}/code`);return(f.has(F)||!b.has(F)||b.get(F)!==p)&&g("NATIVE_OPERATION_BROWSER_REFRESH_TARGET_INVALID",`${S}/code`),f.add(F),{kind:"subject-surface",code:F}}),w=>`${w.kind}:${w.code}`),R=kf(d.fileIntent,`${t}/fileIntent`,o,c,l,p,O,y,a);return{exposure:"authenticated",behavior:c,idempotency:l,subject:{resourceCode:p,inputField:m},...I.length?{refreshTargets:I}:{},...R?{fileIntent:R}:{}}}function kf(e,t,o,n,r,i,a,s,d){if(e===void 0)return null;let c=N(e,t);C(c,["recordResourceCode","recordIdInputField","relationField","fileNameField","contentTypeField","sizeField","purposes","maxTtlSeconds","maxBytes"],t),(o!=="GET"||n!=="read"||r!=="none")&&g("NATIVE_OPERATION_FILE_INTENT_BEHAVIOR_INVALID",t);let l=Z(c.recordResourceCode,`${t}/recordResourceCode`),u=d.get(l);u||g("NATIVE_OPERATION_FILE_INTENT_RESOURCE_NOT_DECLARED",`${t}/recordResourceCode`);let p=z(c.recordIdInputField,`${t}/recordIdInputField`),m=N(a[p],`${t}/recordIdInputField`);(!s.has(p)||m.type!=="string"||m.format!=="uuid")&&g("NATIVE_OPERATION_FILE_INTENT_RECORD_INPUT_INVALID",`${t}/recordIdInputField`);let E=z(c.relationField,`${t}/relationField`),A=u.get(E);(!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||"")!==i))&&g("NATIVE_OPERATION_FILE_INTENT_RELATION_INVALID",`${t}/relationField`);let O=[["fileNameField",["text.short","text.long"]],["contentTypeField",["text.short","text.long"]],["sizeField",["number.integer"]]],y={};for(let[f,I]of O){let R=z(c[f],`${t}/${f}`);I.includes(String(u.get(R)?.type))||g("NATIVE_OPERATION_FILE_INTENT_METADATA_INVALID",`${t}/${f}`),y[f]=R}let _=re(V(c.purposes,`${t}/purposes`,2),f=>f);(!_.length||_.some(f=>!["preview","download"].includes(f)))&&g("NATIVE_OPERATION_FILE_INTENT_PURPOSE_INVALID",`${t}/purposes`);let b=Number(c.maxTtlSeconds);(!Number.isSafeInteger(b)||b<1||b>300)&&g("NATIVE_OPERATION_FILE_INTENT_TTL_INVALID",`${t}/maxTtlSeconds`);let h=Number(c.maxBytes);return(!Number.isSafeInteger(h)||h<1||h>104857600)&&g("NATIVE_OPERATION_FILE_INTENT_SIZE_INVALID",`${t}/maxBytes`),{recordResourceCode:l,recordIdInputField:p,relationField:E,fileNameField:y.fileNameField,contentTypeField:y.contentTypeField,sizeField:y.sizeField,purposes:_,maxTtlSeconds:b,maxBytes:h}}function Lf(e,t,o,n,r,i){if(e===void 0)return null;let a=N(e,t);C(a,["directory","selectedDepartments","managedFiles","managedFileCopies","notification","workflow","roleAssertions","decimalReservation","dataCommands","recordEdit","ownedSubject","workflowStage","dataMutations"],t,!0),Object.keys(a).length===0&&g("NATIVE_OPERATION_PLATFORM_ACCESS_EMPTY",t);let s={};if(a.dataMutations!==void 0)try{s.dataMutations=Do(a.dataMutations,n)}catch{g("NATIVE_OPERATION_DATA_MUTATIONS_INVALID",`${t}/dataMutations`)}if(a.dataCommands!==void 0){let d=N(a.dataCommands,`${t}/dataCommands`);C(d,["mode"],`${t}/dataCommands`),W(d.mode,"recoverable-native",`${t}/dataCommands/mode`),s.dataCommands={mode:"recoverable-native"}}if(a.workflowStage!==void 0){try{fi(a.workflowStage)}catch{g("NATIVE_WORKFLOW_STAGE_DECLARATION_INVALID",`${t}/workflowStage`)}let d=a.workflowStage;(!s.dataCommands||a.decimalReservation!==void 0||!o.has(d.resourceCode)||!r.has(d.workflowCode)||!a.workflow?.codes?.includes(d.workflowCode))&&g("NATIVE_WORKFLOW_STAGE_DECLARATION_INVALID",`${t}/workflowStage`),s.workflowStage={...d,runningNodeIds:B([...d.runningNodeIds]),allowedStatuses:B([...d.allowedStatuses])}}if(a.recordEdit!==void 0){let d=`${t}/recordEdit`,c=N(a.recordEdit,d);C(c,["resourceCode","fieldCodes"],d);let l=Z(c.resourceCode,`${d}/resourceCode`),u=n.get(l),p=V(c.fieldCodes,`${d}/fieldCodes`,200);(!u||!p.length||!s.dataCommands)&&g("NATIVE_RECORD_EDIT_DECLARATION_INVALID",d);for(let m of p){let E=u.get(m);(!E||E.type==="serial-number"||E.type==="subtable")&&g("NATIVE_RECORD_EDIT_FIELD_INVALID",`${d}/fieldCodes`)}s.recordEdit={resourceCode:l,fieldCodes:B(p)}}if(a.roleAssertions!==void 0){let d=N(a.roleAssertions,`${t}/roleAssertions`);C(d,["roleCodes","actorAuthority"],`${t}/roleAssertions`,!0),d.actorAuthority!==void 0&&W(d.actorAuthority,!0,`${t}/roleAssertions/actorAuthority`);let c=V(d.roleCodes,`${t}/roleAssertions/roleCodes`,20);c.length||g("NATIVE_OPERATION_ROLE_ASSERTIONS_REQUIRED",`${t}/roleAssertions/roleCodes`),c.forEach((l,u)=>{i.has(l)||g("NATIVE_ROLE_REFERENCE_MISSING",`${t}/roleAssertions/roleCodes/${u}`)}),s.roleAssertions={roleCodes:B(c),...d.actorAuthority===!0?{actorAuthority:!0}:{}}}if(a.directory!==void 0){let d=N(a.directory,`${t}/directory`);C(d,["mode","fields"],`${t}/directory`),["current-initiator","selected-user"].includes(String(d.mode))||g("NATIVE_OPERATION_DIRECTORY_MODE_INVALID",`${t}/directory/mode`);let c=new Set(["displayName","employeeNumber","primaryDepartment","departments",...d.mode==="current-initiator"?["phone"]:[]]),l=V(d.fields,`${t}/directory/fields`,c.size);(!l.length||l.some(u=>!c.has(u)))&&g("NATIVE_OPERATION_DIRECTORY_FIELDS_INVALID",`${t}/directory/fields`),s.directory={mode:String(d.mode),fields:B(l)}}if(a.selectedDepartments!==void 0){let d=`${t}/selectedDepartments`,c=N(a.selectedDepartments,d);C(c,["fields","maxIds"],d);let l=V(c.fields,`${d}/fields`,4);(!l.includes("name")||l.some(u=>!["name","path","parent","fullPath"].includes(u))||!Number.isSafeInteger(c.maxIds)||c.maxIds<1||c.maxIds>50)&&g("NATIVE_OPERATION_SELECTED_DEPARTMENTS_INVALID",d),s.selectedDepartments={fields:B(l),maxIds:c.maxIds}}if(a.managedFiles!==void 0){let d=k(a.managedFiles,`${t}/managedFiles`,16);d.length||g("NATIVE_OPERATION_MANAGED_FILES_REQUIRED",`${t}/managedFiles`);let c=new Set;s.managedFiles=re(d.map((l,u)=>{let p=`${t}/managedFiles/${u}`,m=N(l,p);C(m,["resourceCode","fieldCodes","intents"],p);let E=Z(m.resourceCode,`${p}/resourceCode`);(c.has(E)||!o.has(E))&&g("NATIVE_OPERATION_MANAGED_FILE_RESOURCE_INVALID",`${p}/resourceCode`),c.add(E);let A=V(m.fieldCodes,`${p}/fieldCodes`,16);(!A.length||A.some(y=>!["file","image","signature","text.rich"].includes(String(o.get(E)?.get(y)||""))))&&g("NATIVE_OPERATION_MANAGED_FILE_FIELD_INVALID",`${p}/fieldCodes`);let O=V(m.intents,`${p}/intents`,2);return(!O.length||O.some(y=>!["create","update"].includes(y)))&&g("NATIVE_OPERATION_MANAGED_FILE_INTENT_INVALID",`${p}/intents`),{resourceCode:E,fieldCodes:B(A),intents:B(O)}}),l=>l.resourceCode)}if(a.managedFileCopies!==void 0){let d=k(a.managedFileCopies,`${t}/managedFileCopies`,16);d.length||g("NATIVE_OPERATION_MANAGED_FILE_COPIES_REQUIRED",`${t}/managedFileCopies`);let c=new Set;s.managedFileCopies=re(d.map((l,u)=>{let p=`${t}/managedFileCopies/${u}`,m=N(l,p);C(m,["mode","sourceResourceCode","sourceFieldCodes","targetResourceCode","targetFieldCodes"],p),W(m.mode,"copy",`${p}/mode`);let E=Z(m.sourceResourceCode,`${p}/sourceResourceCode`),A=Z(m.targetResourceCode,`${p}/targetResourceCode`),O=o.get(E),y=o.get(A);(!O||!y)&&g("NATIVE_OPERATION_MANAGED_FILE_COPY_RESOURCE_INVALID",p);let _=V(m.sourceFieldCodes,`${p}/sourceFieldCodes`,16),b=V(m.targetFieldCodes,`${p}/targetFieldCodes`,16);(!_.length||_.length!==b.length)&&g("NATIVE_OPERATION_MANAGED_FILE_COPY_FIELDS_INVALID",p),_.forEach((f,I)=>{let R=O.get(f),w=y.get(b[I]);(!["file","image","text.rich"].includes(String(R))||R!==w)&&g("NATIVE_OPERATION_MANAGED_FILE_COPY_FIELD_INVALID",`${p}/sourceFieldCodes/${I}`)});let h=`${E}:${_.join(",")}=>${A}:${b.join(",")}`;return c.has(h)&&g("NATIVE_OPERATION_MANAGED_FILE_COPY_DUPLICATE",p),c.add(h),{mode:"copy",sourceResourceCode:E,sourceFieldCodes:B(_),targetResourceCode:A,targetFieldCodes:B(b)}}),l=>`${l.sourceResourceCode}:${l.sourceFieldCodes.join(",")}=>${l.targetResourceCode}:${l.targetFieldCodes.join(",")}`)}if(a.notification!==void 0){let d=N(a.notification,`${t}/notification`);C(d,["mode"],`${t}/notification`),d.mode!=="business-standard"&&g("NATIVE_OPERATION_NOTIFICATION_MODE_INVALID",`${t}/notification/mode`),s.notification={mode:"business-standard"}}if(a.workflow!==void 0){let d=N(a.workflow,`${t}/workflow`);C(d,["codes"],`${t}/workflow`,["businessCommands"]);let c=V(d.codes,`${t}/workflow/codes`,16);(!c.length||c.some(u=>!r.has(u)))&&g("NATIVE_OPERATION_WORKFLOW_CODE_INVALID",`${t}/workflow/codes`);let l=d.businessCommands===void 0?void 0:V(d.businessCommands,`${t}/workflow/businessCommands`,4);l&&(!l.length||l.some(u=>!["approve","reject","withdraw","resubmit"].includes(u)))&&g("NATIVE_OPERATION_WORKFLOW_BUSINESS_COMMAND_INVALID",`${t}/workflow/businessCommands`),s.workflow={codes:B(c),...l?{businessCommands:B(l)}:{}}}if(a.ownedSubject!==void 0){let d=`${t}/ownedSubject`,c=a.ownedSubject;try{Ln(c)}catch{g("NATIVE_WORKFLOW_OWNED_SUBJECT_INVALID",d)}(!s.workflow||a.decimalReservation!==void 0)&&g("NATIVE_WORKFLOW_OWNED_SUBJECT_INVALID",d);try{Gi(c,n,s.managedFiles||[])}catch(l){g(`NATIVE_${l.message}`,d)}s.ownedSubject={mode:"create",resourceCode:c.resourceCode,subtables:re(c.subtables.map(l=>({fieldCode:l.fieldCode,fieldCodes:B([...l.fieldCodes])})),l=>l.fieldCode)}}if(a.decimalReservation!==void 0){let d=`${t}/decimalReservation`,c=N(a.decimalReservation,d);C(c,["mode","resourceCode","amountFieldCode","currencyFieldCode","relationFieldCode","parentFieldCode","rootFieldCode","statusFieldCode","parentRelationValue","childRelationValue","eligibleParentStatuses","eligibleChildStatuses"],d);let l=D(c.mode,`${d}/mode`,16);["reserve","commit","release"].includes(l)||g("NATIVE_DECIMAL_RESERVATION_MODE_INVALID",`${d}/mode`);let u=Z(c.resourceCode,`${d}/resourceCode`),p=n.get(u);p||g("NATIVE_DECIMAL_RESERVATION_RESOURCE_MISSING",`${d}/resourceCode`);let E=Object.fromEntries(["amountFieldCode","currencyFieldCode","relationFieldCode","parentFieldCode","rootFieldCode","statusFieldCode"].map(f=>[f,z(c[f],`${d}/${f}`)])),A=f=>p.get(E[f]),O=f=>new Set((A(f)?.options||[]).map(I=>String(I.value))),y=$(c.parentRelationValue,`${d}/parentRelationValue`),_=$(c.childRelationValue,`${d}/childRelationValue`),b=V(c.eligibleParentStatuses,`${d}/eligibleParentStatuses`,16),h=V(c.eligibleChildStatuses,`${d}/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"||y===_||!O("relationFieldCode").has(y)||!O("relationFieldCode").has(_)||!b.length||!h.length||b.some(f=>!O("statusFieldCode").has(f))||h.some(f=>!O("statusFieldCode").has(f)))&&g("NATIVE_DECIMAL_RESERVATION_FIELD_INVALID",d),s.decimalReservation={mode:l,resourceCode:u,...E,parentRelationValue:y,childRelationValue:_,eligibleParentStatuses:B(b),eligibleChildStatuses:B(h)}}return s}function vf(e,t,o,n,r){if(e===void 0)return;let i=`${t}/ai`,a=N(e,i);ef.test(o)||g("NATIVE_OPERATION_AI_CODE_INVALID",`${t}/code`),C(a,["name","description","risk","resources","sideEffects","concurrency","timeoutMs"],i,!0),D(a.name,`${i}/name`,Yi),D(a.description,`${i}/description`,Yi);let s=D(a.risk,`${i}/risk`,16);["read","write","destructive","external"].includes(s)||g("NATIVE_OPERATION_AI_RISK_INVALID",`${i}/risk`),s==="read"!=(n==="GET")&&g("NATIVE_OPERATION_AI_METHOD_RISK_MISMATCH",`${i}/risk`),n==="DELETE"&&!["destructive","external"].includes(s)&&g("NATIVE_OPERATION_AI_METHOD_RISK_MISMATCH",`${i}/risk`);let d=V(a.resources,`${i}/resources`,16);d.length===0&&g("NATIVE_OPERATION_AI_RESOURCE_REQUIRED",`${i}/resources`),d.forEach((l,u)=>{let p=Z(l,`${i}/resources/${u}`);r.has(p)||g("NATIVE_OPERATION_AI_RESOURCE_MISSING",`${i}/resources/${u}`)});let c=V(a.sideEffects,`${i}/sideEffects`,20);(s==="read"&&c.length!==0||s!=="read"&&c.length===0)&&g("NATIVE_OPERATION_AI_SIDE_EFFECT_INVALID",`${i}/sideEffects`),a.concurrency!==void 0&&!["none","revision"].includes(D(a.concurrency,`${i}/concurrency`,16))&&g("NATIVE_OPERATION_AI_CONCURRENCY_INVALID",`${i}/concurrency`),a.timeoutMs!==void 0&&ce(a.timeoutMs,`${i}/timeoutMs`,100,3e4)}function Yo(e){return(e.replace(/\/{2,}/g,"/").replace(/\/$/,"")||"/").split("/").map(o=>o.startsWith(":")?":":o.includes("*")?"*":o).join("/")}function Pf(e,t){let o=N(e,t),n=D(o.type,`${t}/type`,32),r=["code","type","label","presentation","required"],i=n==="sso"?[...r,"provider"]:n==="dingtalk"?[...r,"flow"]:r;C(o,i,t);let a=$(o.code,`${t}/code`),s=D(o.label,`${t}/label`,255),d=D(o.presentation,`${t}/presentation`,16);["primary","secondary"].includes(d)||g("NATIVE_APPLICATION_AUTH_METHOD_PRESENTATION_INVALID",`${t}/presentation`);let c=Qt(o.required,`${t}/required`);return["sso","password","dingtalk"].includes(n)||g("NATIVE_APPLICATION_AUTH_METHOD_TYPE_INVALID",`${t}/type`),n==="sso"&&o.provider!=="tenant-default"&&g("NATIVE_APPLICATION_AUTH_SSO_PROVIDER_INVALID",`${t}/provider`),n==="dingtalk"&&!["auto","jsapi","oauth"].includes(D(o.flow,`${t}/flow`,16))&&g("NATIVE_APPLICATION_AUTH_DINGTALK_FLOW_INVALID",`${t}/flow`),{code:a,type:n,label:s,presentation:d,required:c,...n==="sso"?{provider:"tenant-default"}:{},...n==="dingtalk"?{flow:o.flow}:{}}}function md(e,t,o){let n=N(e,o);C(n,["routeCode","path","defaultRouteCode"],o);let r=$(n.routeCode,`${o}/routeCode`),i=Pe(n.path,`${o}/path`),a=t==="desktop"?"/login":"/m/login";return(i!==a||/[:*?#\\]/.test(i))&&g("NATIVE_APPLICATION_AUTH_SURFACE_PATH_INVALID",`${o}/path`,{device:t,expectedPath:a}),{routeCode:r,path:i,defaultRouteCode:$(n.defaultRouteCode,`${o}/defaultRouteCode`)}}function vd(e,t,o,n){if(e===null)return;let r=N(e,n);C(r,["accountMode","registration","methods","surfaces"],n),W(r.accountMode,"existing-platform-users-only",`${n}/accountMode`);let i=N(r.registration,`${n}/registration`);C(i,["mode"],`${n}/registration`),W(i.mode,"reject",`${n}/registration/mode`);let a=k(r.methods,`${n}/methods`,8);a.length===0&&g("NATIVE_APPLICATION_AUTH_METHOD_REQUIRED",`${n}/methods`);let s=a.map((y,_)=>Pf(y,`${n}/methods/${_}`)),d=new Set,c=new Set;for(let[y,_]of s.entries())d.has(_.code)&&g("NATIVE_APPLICATION_AUTH_METHOD_CODE_DUPLICATE",`${n}/methods/${y}/code`),c.has(_.type)&&g("NATIVE_APPLICATION_AUTH_METHOD_TYPE_DUPLICATE",`${n}/methods/${y}/type`),d.add(_.code),c.add(_.type);s.filter(y=>y.presentation==="primary").length!==1&&g("NATIVE_APPLICATION_AUTH_PRIMARY_METHOD_INVALID",`${n}/methods`);let l=N(r.surfaces,`${n}/surfaces`);C(l,["desktop","mobile"],`${n}/surfaces`);let u=md(l.desktop,"desktop",`${n}/surfaces/desktop`),p=md(l.mobile,"mobile",`${n}/surfaces/mobile`);u.routeCode===p.routeCode&&g("NATIVE_APPLICATION_AUTH_SURFACE_CODE_DUPLICATE",`${n}/surfaces/mobile/routeCode`);let m=k(t,"/config/frontend/routes",M.routes),E=new Map;for(let[y,_]of m.entries()){let b=N(_,`/config/frontend/routes/${y}`);E.set(String(b.code||""),b)}let A=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",u],["mobile",p]]){E.has(_.routeCode)&&g("NATIVE_APPLICATION_AUTH_SURFACE_CODE_CONFLICT",`${n}/surfaces/${y}/routeCode`);let b=/^user\.([a-z][a-z0-9-]{0,62})\.(records|submit)$/.exec(String(_.defaultRouteCode||"")),h=E.get(_.defaultRouteCode),f=String(h?.path||"");if(b&&A.has(b[1])){let R=b[2]==="records"?`/my/${b[1]}`:`/my/${b[1]}/submit`;h={surface:"user",path:y==="mobile"?`/m${R}`:R},f=String(h.path)}let I=y==="desktop"?f==="/m"||f.startsWith("/m/"):!(f==="/m"||f.startsWith("/m/"));(!h||h.surface!=="user"||/[:*]/.test(f)||I)&&g("NATIVE_APPLICATION_AUTH_DEFAULT_ROUTE_INVALID",`${n}/surfaces/${y}/defaultRouteCode`)}let O=Pd(o).filter(y=>!y.owner.startsWith("authentication:"));for(let[y,_]of[["desktop",u],["mobile",p]]){let b=O.find(h=>Yo(h.path)===Yo(_.path));b&&g("NATIVE_APPLICATION_AUTH_SURFACE_PATH_CONFLICT",`${n}/surfaces/${y}/path`,{owner:b.owner})}}function $f(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),r=N(n.surfaces,`${t}/surfaces`),i={...n,surfaces:{...r,desktop:{...N(r.desktop,`${t}/surfaces/desktop`),defaultRouteCode:"auth-desktop-default"},mobile:{...N(r.mobile,`${t}/surfaces/mobile`),defaultRouteCode:"auth-mobile-default"}}};vd(i,o.frontend.routes,{...o,frontend:{...o.frontend,authentication:i}},t)}function Ff(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 Vf=new Set(["draft.read","draft.update","validate","create","own.list","own.read","public.list","public.read"]);function Wf(e,t,o){let n=N(e,o);C(n,["policies"],o);let r=k(n.policies,`${o}/policies`,16);r.length<1&&g("NATIVE_PUBLIC_POLICY_REQUIRED",o);let i=new Map(t.frontend.routes.map(c=>[c.code,c])),a=new Map(t.data.resources.map(c=>[c.code,c])),s=new Set,d=new Set(r.map(c=>String(c?.code||"")));r.forEach((c,l)=>{let u=`${o}/policies/${l}`,p=N(c,u);C(p,["code","routeCode","mode","resourceCode","operations","fields"],u,["requiredFields","ownRecordFields","publicRecordFields","publicFilters","serverGeneratedFields","schedule","publicSubtableFields","draft","validations"]);let m=$(p.code,`${u}/code`);s.has(m)&&g("NATIVE_PUBLIC_POLICY_DUPLICATE",`${u}/code`);let E=$(p.routeCode,`${u}/routeCode`),A=i.get(E);(!A||A.surface!=="user"||A.capability!==void 0||A.access!==void 0||/[:*]/.test(String(A.path)))&&g("NATIVE_PUBLIC_ROUTE_INVALID",`${u}/routeCode`),W(p.mode,"anonymous",`${u}/mode`);let O=Z(p.resourceCode,`${u}/resourceCode`),y=a.get(O);y||g("NATIVE_PUBLIC_RESOURCE_MISSING",`${u}/resourceCode`);let _=new Map(y.schema.fields.map(v=>[String(v.code),String(v.type)])),b=V(p.operations,`${u}/operations`,8);(b.length<1||b.some(v=>!Vf.has(v)))&&g("NATIVE_PUBLIC_OPERATION_INVALID",`${u}/operations`),b.includes("draft.read")!==b.includes("draft.update")&&g("NATIVE_PUBLIC_DRAFT_OPERATION_INCOMPLETE",`${u}/operations`);let h=V(p.fields,`${u}/fields`,64);(h.length<1||h.some(v=>!_.has(v)))&&g("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=>!h.includes(x))&&g("NATIVE_PUBLIC_FIELD_SCOPE_INVALID",`${u}/${v}`)}let f=Object.prototype.hasOwnProperty.call(p,"serverGeneratedFields")?k(p.serverGeneratedFields,`${u}/serverGeneratedFields`,16):[],I=new Set;f.forEach((v,U)=>{let x=`${u}/serverGeneratedFields/${U}`,H=N(v,x);C(H,["field","kind"],x);let Y=z(H.field,`${x}/field`);(I.has(Y)||!_.has(Y)||h.includes(Y)||_.get(Y)!=="text.short"&&_.get(Y)!=="text.long")&&g("NATIVE_PUBLIC_SERVER_GENERATED_FIELD_INVALID",`${x}/field`),W(H.kind,"random-token",`${x}/kind`),I.add(Y)});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 U of["campusPolicyCode","rulePolicyCode"])$(R[U],`${u}/schedule/${U}`);for(let U of v.filter(x=>!["campusPolicyCode","rulePolicyCode"].includes(x)))z(R[U],`${u}/schedule/${U}`);for(let U of[R.campusField,R.dateField,R.timeField])h.includes(String(U))||g("NATIVE_PUBLIC_SCHEDULE_FIELD_INVALID",`${u}/schedule`);(!d.has(String(R.campusPolicyCode))||!d.has(String(R.rulePolicyCode)))&&g("NATIVE_PUBLIC_SCHEDULE_POLICY_INVALID",`${u}/schedule`)}let w=Object.prototype.hasOwnProperty.call(p,"publicFilters")?k(p.publicFilters,`${u}/publicFilters`,16):[],T=new Set;w.forEach((v,U)=>{let x=`${u}/publicFilters/${U}`,H=N(v,x);C(H,["field","operator","value"],x);let Y=z(H.field,`${x}/field`);T.has(Y)&&g("NATIVE_PUBLIC_FILTER_DUPLICATE",`${x}/field`),h.includes(Y)||g("NATIVE_PUBLIC_FILTER_FIELD_INVALID",`${x}/field`),W(H.operator,"eq",`${x}/operator`),["boolean","text.short","text.long","number.integer","number.decimal","date","time"].includes(_.get(Y)||"")||g("NATIVE_PUBLIC_FILTER_FIELD_INVALID",`${x}/field`),H.value!==null&&typeof H.value!="string"&&typeof H.value!="number"&&typeof H.value!="boolean"&&g("NATIVE_PUBLIC_FILTER_VALUE_INVALID",`${x}/value`),T.add(Y)});let S=Object.prototype.hasOwnProperty.call(p,"publicSubtableFields")?N(p.publicSubtableFields,`${u}/publicSubtableFields`):null;if(S){Object.keys(S).length>64&&g("NATIVE_PUBLIC_SUBTABLE_FIELDS_INVALID",`${u}/publicSubtableFields`);for(let[v,U]of Object.entries(S)){let x=y.schema.fields.find(X=>String(X.code)===v),H=String(x?.subtable?.resourceCode||""),Y=a.get(H),Ne=new Map((Y?.schema?.fields||[]).map(X=>[String(X.code),String(X.type)])),Fe=V(U,`${u}/publicSubtableFields/${v}`,64);(!h.includes(v)||_.get(v)!=="subtable"||!Y||Fe.length<1||Fe.some(X=>!Ne.has(X))||Fe.some(X=>Ne.get(X)==="subtable")||Fe.some(X=>Ne.get(X)==="signature"))&&g("NATIVE_PUBLIC_SUBTABLE_FIELDS_INVALID",`${u}/publicSubtableFields/${v}`)}}if(b.some(v=>v.startsWith("public."))){Object.prototype.hasOwnProperty.call(p,"publicRecordFields")||g("NATIVE_PUBLIC_RECORD_FIELDS_REQUIRED",`${u}/publicRecordFields`);let v=V(p.publicRecordFields,`${u}/publicRecordFields`,64);(v.length<1||v.some(U=>!h.includes(U))||v.some(U=>_.get(U)==="signature"||_.get(U)==="subtable"&&!S?.[U]))&&g("NATIVE_PUBLIC_RECORD_FIELDS_INVALID",`${u}/publicRecordFields`)}let P=Object.prototype.hasOwnProperty.call(p,"requiredFields")?V(p.requiredFields,`${u}/requiredFields`,64):[],F=y.surface||{},J=F.fields||{},ne=String(F.mutationOwner||"native")==="native"&&F.generated?.create!==!1,Q=y.schema.fields.filter(v=>Be(v,J[v.code])).map(v=>String(v.code));if(b.includes("create")&&!ne&&g("NATIVE_PUBLIC_CREATE_FIELDS_INCOMPLETE",`${u}/fields`),b.includes("create")&&!Object.prototype.hasOwnProperty.call(p,"draft")&&g("NATIVE_PUBLIC_DRAFT_REQUIRED",`${u}/draft`),b.includes("create"))for(let v of Q){let U=h.includes(v)?P.includes(v)?null:"requiredFields":"fields";U&&g("NATIVE_PUBLIC_CREATE_FIELDS_INCOMPLETE",`${u}/${U}`,{resourceCode:Z,fieldCode:v})}if(Object.prototype.hasOwnProperty.call(p,"draft")){let v=N(p.draft,`${u}/draft`);C(v,["enabled","inactivityTtlSeconds","maxBytes"],`${u}/draft`),W(v.enabled,!0,`${u}/draft/enabled`),ce(v.inactivityTtlSeconds,`${u}/draft/inactivityTtlSeconds`,3600,7776e3),ce(v.maxBytes,`${u}/draft/maxBytes`,4096,262144)}else b.includes("draft.read")&&g("NATIVE_PUBLIC_DRAFT_REQUIRED",`${u}/draft`);let he=Object.prototype.hasOwnProperty.call(p,"validations")?k(p.validations,`${u}/validations`,16):[],ae=new Set;he.forEach((v,U)=>{let x=`${u}/validations/${U}`,H=N(v,x);C(H,["code","kind","fields","result"],x);let Y=$(H.code,`${x}/code`);ae.has(Y)&&g("NATIVE_PUBLIC_VALIDATION_DUPLICATE",`${x}/code`),W(H.kind,"duplicate",`${x}/kind`),W(H.result,"availability",`${x}/result`);let Ne=V(H.fields,`${x}/fields`,8);(Ne.length<1||Ne.some(Fe=>!h.includes(Fe))||Ne.some(Fe=>["file","subtable"].includes(_.get(Fe)||"")))&&g("NATIVE_PUBLIC_VALIDATION_FIELD_INVALID",`${x}/fields`),ae.add(Y)}),s.add(m)})}function xf(e,t){let o=N(e,t);C(o,["policies"],t),k(o.policies,`${t}/policies`,16).length<1&&g("NATIVE_PUBLIC_POLICY_REQUIRED",t)}function jf(e){return{policies:re(e.frontend.publicAccess.policies.map(t=>({code:t.code,routeCode:t.routeCode,mode:t.mode,resourceCode:t.resourceCode,operations:B(t.operations),fields:B(t.fields),...t.requiredFields?{requiredFields:B(t.requiredFields)}:{},...t.ownRecordFields?{ownRecordFields:B(t.ownRecordFields)}:{},...t.publicRecordFields?{publicRecordFields:B(t.publicRecordFields)}:{},...t.publicFilters?{publicFilters:t.publicFilters.map(o=>({field:o.field,operator:o.operator,value:o.value})).sort((o,n)=>Te(o.field,n.field))}:{},...t.publicSubtableFields?{publicSubtableFields:Object.fromEntries(Object.entries(t.publicSubtableFields).sort(([o],[n])=>o.localeCompare(n)).map(([o,n])=>[o,B(Array.isArray(n)?n.map(String):[])]))}:{},...t.serverGeneratedFields?{serverGeneratedFields:t.serverGeneratedFields.map(o=>({field:o.field,kind:o.kind})).sort((o,n)=>Te(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:re(t.validations.map(o=>({code:o.code,kind:o.kind,fields:B(o.fields),result:o.result})),o=>o.code)}:{}})),t=>t.code)}}function Pd(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=$d(o),r=`/admin/resources/${o.code}`,i=[["list",r],["detail",`${r}/:id`],["create",`${r}/new`],["update",`${r}/:id/edit`]];for(let[a,s]of i)n[a]&&t.push({owner:`resource:${o.code}:${a}`,path:s},{owner:`resource:${o.code}:${a}: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 er(e){let t=new Map(Pd(e).map(o=>[Yo(o.path),o]));return re(e.frontend.routes.map((o,n)=>{let r=`/config/frontend/routes/${n}`,i=N(o,r);C(i,["code","path","label","surface","parentCode","capability","access","pinned","tabPersistence","keepAlive"],r,!0),["admin","user"].includes(i.surface)||g("NATIVE_ROUTE_SURFACE_INVALID",`${r}/surface`);let a=Pe(i.path,`${r}/path`);i.surface==="admin"&&a!=="/admin"&&!a.startsWith("/admin/")&&g("NATIVE_ADMIN_ROUTE_PATH_INVALID",`${r}/path`),i.surface==="user"&&(a==="/admin"||a.startsWith("/admin/"))&&g("NATIVE_USER_ROUTE_PATH_RESERVED",`${r}/path`);let s=Yo(a),d=t.get(s);d&&g("NATIVE_ROUTE_PATH_CONFLICT",`${r}/path`,{path:a,owner:d.owner}),t.set(s,{owner:`frontend:${String(i.code||n)}`,path:a});let c=/[:*]/.test(a),l=ts(i,r,e.appCode),u=i.pinned===void 0?void 0:Qt(i.pinned,`${r}/pinned`),p=i.tabPersistence===void 0?c?"none":"session":D(i.tabPersistence,`${r}/tabPersistence`,16),m=i.keepAlive===void 0?"none":D(i.keepAlive,`${r}/keepAlive`,16);return["session","none"].includes(p)||g("NATIVE_ROUTE_TAB_PERSISTENCE_INVALID",`${r}/tabPersistence`),["none","memory"].includes(m)||g("NATIVE_ROUTE_KEEP_ALIVE_INVALID",`${r}/keepAlive`),c&&u===!0&&g("NATIVE_DYNAMIC_ROUTE_PINNED_FORBIDDEN",`${r}/pinned`),c&&p==="session"&&g("NATIVE_DYNAMIC_ROUTE_TAB_PERSISTENCE_FORBIDDEN",`${r}/tabPersistence`),c&&m==="memory"&&g("NATIVE_DYNAMIC_ROUTE_KEEP_ALIVE_FORBIDDEN",`${r}/keepAlive`),{code:$(i.code,`${r}/code`),path:a,label:D(i.label,`${r}/label`,255),surface:i.surface,...i.parentCode===void 0?{}:{parentCode:$(i.parentCode,`${r}/parentCode`)},...l,...u===void 0?{}:{pinned:u},tabPersistence:p,keepAlive:m}}),o=>o.code)}function $d(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"),r=o==="native";return{list:n.list??!0,detail:n.detail??!0,create:n.create??r,update:n.update??r,delete:n.delete??r}}function Fd(e){let t=[];for(let o of re(e.data.resources,n=>n.code).flatMap(n=>[{resource:n,viewCode:void 0},...(n.surface?.views||[]).map(r=>({viewCode:r.code,resource:{...n,name:r.name,surface:co(n.surface,r.code)}}))])){let{resource:n,viewCode:r}=o,i=`/admin/resources/${n.code}${r?`/views/${r}`:""}`,a=$d(n),s=[{operation:"list",kind:"resource-list",path:`${i}`,label:n.name,capability:n.capabilities.read,navigationEligible:!0},{operation:"detail",kind:"resource-detail",path:`${i}/:id`,label:`${n.name}\u8BE6\u60C5`,capability:n.capabilities.read,navigationEligible:!1},{operation:"create",kind:"resource-create",path:`${i}/new`,label:`\u65B0\u589E${n.name}`,capability:n.capabilities.create,navigationEligible:!1},{operation:"update",kind:"resource-update",path:`${i}/:id/edit`,label:`\u7F16\u8F91${n.name}`,capability:n.capabilities.update,navigationEligible:!1}];for(let d of s)a[d.operation]&&t.push({code:`resource:${n.code}${r?`:view:${r}`:""}:${d.operation}`,kind:d.kind,path:d.path,label:d.label,navigationEligible:d.navigationEligible,capability:d.capability,resourceCode:n.code,...r?{viewCode:r}:{}})}for(let o of er(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)=>Te(o.code,n.code))}function Vd(e){return e.kind==="resource"?`resource:${e.resourceCode}${e.viewCode?`:view:${e.viewCode}`:""}:list`:`operation:${e.routeCode}`}function Uf(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,r)=>({pageCode:Vd(n.page),...n.label===void 0?{}:{label:n.label},...n.icon===void 0?{}:{icon:n.icon},order:n.order??r})).sort((n,r)=>n.order-r.order||Te(n.pageCode,r.pageCode))})).sort((t,o)=>t.order-o.order||Te(t.code,o.code))}function Mf(e,t){let o=k(e,t,M.adminNavigationGroups);o.reduce((r,i)=>r+(Array.isArray(i?.items)?i.items.length:0),0)>M.adminNavigationItems&&g("NATIVE_ARRAY_LIMIT_EXCEEDED",t);let n=0;o.forEach((r,i)=>{let a=`${t}/${i}`,s=N(r,a);C(s,["code","label","icon","order","items"],a,!0),$(s.code,`${a}/code`),D(s.label,`${a}/label`,255),Xo(s.icon,`${a}/icon`),Id(s.order,`${a}/order`);let d=k(s.items,`${a}/items`,500);d.length===0&&g("NATIVE_ADMIN_GROUP_ORPHANED",`${a}/items`),n+=d.length,n>M.adminNavigationItems&&g("NATIVE_ARRAY_LIMIT_EXCEEDED",t),d.forEach((c,l)=>{let u=`${a}/items/${l}`,p=N(c,u);C(p,["page","label","icon","order"],u,!0),Bf(p.page,`${u}/page`),p.label!==void 0&&D(p.label,`${u}/label`,255),Xo(p.icon,`${u}/icon`),Id(p.order,`${u}/order`)})})}function Bf(e,t){let o=N(e,t),n=D(o.kind,`${t}/kind`,64);if(n==="resource"){C(o,["kind","resourceCode"],t,["viewCode"]),o.viewCode!==void 0&&$(o.viewCode,`${t}/viewCode`),Z(o.resourceCode,`${t}/resourceCode`);return}if(n==="operation"){C(o,["kind","routeCode"],t),$(o.routeCode,`${t}/routeCode`);return}g("NATIVE_ADMIN_PAGE_REFERENCE_KIND_INVALID",`${t}/kind`)}function Kf(e){let t=new Map(Fd(e).map(r=>[String(r.code),r])),o=new Set,n=new Set;e.frontend.admin.navigation.forEach((r,i)=>{let a=`/config/frontend/admin/navigation/${i}`;o.has(r.code)&&g("NATIVE_ADMIN_GROUP_DUPLICATE",`${a}/code`),o.add(r.code),r.label===r.code&&g("NATIVE_ADMIN_USER_LABEL_REQUIRED",`${a}/label`),r.items.forEach((s,d)=>{let c=`${a}/items/${d}`,l=Vd(s.page),u=t.get(l);(!u||u.navigationEligible!==!0)&&g("NATIVE_ADMIN_PAGE_NOT_FOUND",`${c}/page`),n.has(l)&&g("NATIVE_ADMIN_PAGE_DUPLICATE",`${c}/page`),n.add(l);let p=s.page.resourceCode||s.page.routeCode||s.page.workflowCode||l,m=s.label||u.label;(!m||m===p||m===l)&&g("NATIVE_ADMIN_USER_LABEL_REQUIRED",`${c}/label`)})})}function qf(e,t){let o=k(e,t,M.adminPages),n=new Set;o.forEach((r,i)=>{let a=`${t}/${i}`,s=N(r,a);C(s,["code","kind","path","label","navigationEligible","capability","access","resourceCode","viewCode","routeCode"],a,!0);let d=D(s.code,`${a}/code`,255);n.has(d)&&g("NATIVE_ADMIN_PAGE_DUPLICATE",`${a}/code`),n.add(d);let c=D(s.kind,`${a}/kind`,64);if(["resource-list","resource-detail","resource-create","resource-update","operation"].includes(c)||g("NATIVE_ADMIN_PAGE_KIND_INVALID",`${a}/kind`),Pe(s.path,`${a}/path`),D(s.label,`${a}/label`,255),Qt(s.navigationEligible,`${a}/navigationEligible`),s.capability!==void 0&&s.access!==void 0&&g("NATIVE_ROUTE_ACCESS_CONFLICT",`${a}/access`),s.capability!==void 0&&D(s.capability,`${a}/capability`,255),s.access!==void 0){let l=N(s.access,`${a}/access`);C(l,["allOf","anyOf"],`${a}/access`,!0);for(let u of["allOf","anyOf"])l[u]!==void 0&&V(l[u],`${a}/access/${u}`,50)}for(let l of["resourceCode","viewCode","routeCode"])s[l]!==void 0&&$(s[l],`${a}/${l}`)})}function Gf(e,t){let o=k(e,t,M.adminNavigationGroups);o.reduce((r,i)=>r+(Array.isArray(i?.items)?i.items.length:0),0)>M.adminNavigationItems&&g("NATIVE_ARRAY_LIMIT_EXCEEDED",t);let n=0;o.forEach((r,i)=>{let a=`${t}/${i}`,s=N(r,a);C(s,["code","label","icon","order","items"],a,!0),$(s.code,`${a}/code`),D(s.label,`${a}/label`,255),Xo(s.icon,`${a}/icon`),ce(s.order,`${a}/order`,-1e4,1e4);let d=k(s.items,`${a}/items`,500);d.length===0&&g("NATIVE_ADMIN_GROUP_ORPHANED",`${a}/items`),n+=d.length,n>M.adminNavigationItems&&g("NATIVE_ARRAY_LIMIT_EXCEEDED",t),d.forEach((c,l)=>{let u=`${a}/items/${l}`,p=N(c,u);C(p,["pageCode","label","icon","order"],u,!0),D(p.pageCode,`${u}/pageCode`,255),p.label!==void 0&&D(p.label,`${u}/label`,255),Xo(p.icon,`${u}/icon`),ce(p.order,`${u}/order`,-1e4,1e4)})})}var zf=new Set(["application-todo-center","workflow-work-center","workflow-launch","workflow-task","workflow-instance","resource-records","resource-submit"]);function Jf(e,t,o){let n=N(e,t);C(n,["schemaVersion","appCode","devicePolicy","rootEntry","authentication","routes","digest"],t),W(n.schemaVersion,Cd,`${t}/schemaVersion`),W(n.appCode,o,`${t}/appCode`),es(n.devicePolicy,`${t}/devicePolicy`),Hf(n.rootEntry,`${t}/rootEntry`),Yf(n.authentication,`${t}/authentication`),Zi(n.digest,`${t}/digest`);let r=k(n.routes,`${t}/routes`,M.routes),i=new Set;r.forEach((a,s)=>{let d=`${t}/routes/${s}`,c=N(a,d),l=c.kind==="resource-records"||c.kind==="resource-submit";C(c,["code","kind","desktop","mobile"],d,["workflowCode",...l?["resourceCode"]:[]]);let u=D(c.code,`${d}/code`,255);i.has(u)&&g("NATIVE_ROUTE_MANIFEST_DUPLICATE",`${d}/code`),i.add(u);let p=D(c.kind,`${d}/kind`,64);if(zf.has(p)||g("NATIVE_ROUTE_MANIFEST_KIND_INVALID",`${d}/kind`),c.workflowCode!==void 0&&$(c.workflowCode,`${d}/workflowCode`),l){let A=Z(c.resourceCode,`${d}/resourceCode`);W(u,`user.${A}.${c.kind==="resource-records"?"records":"submit"}`,`${d}/code`)}else c.resourceCode!==void 0&&g("NATIVE_PROPERTY_UNKNOWN",`${d}/resourceCode`);let m=_d(c.desktop,`${d}/desktop`,o),E=_d(c.mobile,`${d}/mobile`,o);m.surface!=="user"&&g("NATIVE_ROUTE_MANIFEST_DESKTOP_SURFACE_INVALID",`${d}/desktop/surface`),E.surface!=="user"&&g("NATIVE_ROUTE_MANIFEST_MOBILE_SURFACE_INVALID",`${d}/mobile/surface`),m.routeCode===E.routeCode&&g("NATIVE_ROUTE_MANIFEST_PAIR_DUPLICATE",d)}),W(n.digest,ee({schemaVersion:n.schemaVersion,appCode:n.appCode,devicePolicy:n.devicePolicy,rootEntry:n.rootEntry,authentication:n.authentication,routes:n.routes}),`${t}/digest`)}function es(e,t){let o=N(e,t);C(o,["kind","mobileMaxWidthPx","desktopMinWidthPx"],t),W(o.kind,"viewport-family",`${t}/kind`);let n=ce(o.mobileMaxWidthPx,`${t}/mobileMaxWidthPx`,320,1600),r=ce(o.desktopMinWidthPx,`${t}/desktopMinWidthPx`,320,1600);return r!==n+1&&g("NATIVE_FRONTEND_DEVICE_POLICY_INVALID",t),{kind:"viewport-family",mobileMaxWidthPx:n,desktopMinWidthPx:r}}function Hf(e,t){let o=N(e,t);C(o,["code","desktop","mobile"],t);let n=$(o.code,`${t}/code`),r=Xi(o.desktop,`${t}/desktop`),i=Xi(o.mobile,`${t}/mobile`);return(r===i||i==="/"||!i.startsWith("/m/"))&&g("NATIVE_ROUTE_MANIFEST_ROOT_ENTRY_INVALID",t),r.startsWith("/m/")&&g("NATIVE_ROUTE_MANIFEST_ROOT_ENTRY_INVALID",`${t}/desktop`),{code:n,desktop:r,mobile:i}}function Yf(e,t){let o=N(e,t);C(o,["desktop","mobile"],t);let n=gd(o.desktop,`${t}/desktop`,!1),r=gd(o.mobile,`${t}/mobile`,!0);return(n.routeCode===r.routeCode||n.path===r.path)&&g("NATIVE_ROUTE_MANIFEST_AUTHENTICATION_DUPLICATE",t),{desktop:n,mobile:r}}function gd(e,t,o){let n=N(e,t);C(n,["routeCode","path"],t);let r=$(n.routeCode,`${t}/routeCode`),i=Xi(n.path,`${t}/path`);return(o?!i.startsWith("/m/"):i.startsWith("/m/"))&&g("NATIVE_ROUTE_MANIFEST_AUTHENTICATION_PATH_INVALID",`${t}/path`),{routeCode:r,path:i}}function Xi(e,t){let o=Pe(e,t);return/[:*?#\\\\]/.test(o)&&g("NATIVE_ROUTE_MANIFEST_STATIC_PATH_INVALID",t),o}function _d(e,t,o){let n=N(e,t);C(n,["routeCode","path","surface","pathParams","requiresAuthentication"],t,["capability","access"]),$(n.routeCode,`${t}/routeCode`);let r=Pe(n.path,`${t}/path`),i=D(n.surface,`${t}/surface`,16);["admin","user"].includes(i)||g("NATIVE_ROUTE_SURFACE_INVALID",`${t}/surface`);let a=V(n.pathParams,`${t}/pathParams`,8);return a.forEach((s,d)=>{(!/^[A-Za-z][A-Za-z0-9_]*$/.test(s)||s.length>64)&&g("NATIVE_ROUTE_PATH_PARAM_INVALID",`${t}/pathParams/${d}`)}),oe(a)!==oe(Wd(r))&&g("NATIVE_ROUTE_PATH_PARAMS_MISMATCH",`${t}/pathParams`),ts(n,t,o),n.requiresAuthentication!==!0&&g("NATIVE_ROUTE_AUTHENTICATION_REQUIRED",`${t}/requiresAuthentication`),n}function Wd(e){return B([...e.matchAll(/:([A-Za-z][A-Za-z0-9_]*)/g)].map(t=>t[1]))}function Ad(e,t,o,n){return{routeCode:e,path:t,surface:o,pathParams:Wd(t),...n?.capability?{capability:n.capability}:{},...n?.access?{access:n.access}:{},requiresAuthentication:!0}}function Ed(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 Xf(e){let t=e.appCode,o=[],n=(m,E,A,O,y,_,b)=>{o.push({code:m,kind:E,...y?{workflowCode:y}:{},...b?{resourceCode:b}:{},desktop:Ad(Ed(E,"desktop",y,b),A,"user",_),mobile:Ad(Ed(E,"mobile",y,b),O,"user",_)})};e.frontend.user.applicationTodoCenter===!0&&n("application:todo-center","application-todo-center","/todos","/m/todos");let r=xd(e);r.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 m of r){if(!["standalone","hidden-handoff"].includes(m.launch.mode))continue;let E=B([m.launch.submission?.create?.requiredCapability,m.launch.submission?.existing?.requiredCapability].filter(A=>!!A));n(`workflow:${m.code}:launch`,"workflow-launch","/workflows/:workflowCode/start","/m/workflows/:workflowCode/start",m.code,E.length===1?{capability:E[0]}:E.length>1?{access:{anyOf:E}}:void 0)}let i=o.sort((m,E)=>Te(String(m.code),String(E.code))),a=er(e),s=m=>{let E=m==="mobile"?"/m/":"/",A=a.filter(y=>y.surface==="user"&&!/[:*?#\\\\]/.test(y.path)&&y.path===E).sort((y,_)=>Te(y.code,_.code))[0];if(A)return{code:A.code,path:A.path};let O=a.filter(y=>y.surface==="user"&&!/[:*?#\\\\]/.test(y.path)&&(m==="mobile"?y.path.startsWith("/m/"):!y.path.startsWith("/m/"))).sort((y,_)=>Te(y.code,_.code))[0];return O?{code:O.code,path:O.path}:{code:m==="mobile"?"application-root-mobile":"application-root",path:E}},d=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"}},c=es(e.frontend.devicePolicy,"/config/frontend/devicePolicy"),l=s("desktop"),u=s("mobile"),p={schemaVersion:Cd,appCode:t,devicePolicy:c,rootEntry:{code:l.code,desktop:l.path,mobile:u.path},authentication:d,routes:i};return{...p,digest:ee(p)}}function Xo(e,t){if(e===void 0)return;let o=D(e,t,32);ff.has(o)||g("NATIVE_ADMIN_ICON_INVALID",t)}function Id(e,t){e!==void 0&&ce(e,t,-1e4,1e4)}function ts(e,t,o){return e.capability!==void 0&&e.access!==void 0&&g("NATIVE_ROUTE_ACCESS_CONFLICT",`${t}/access`),e.capability!==void 0?{capability:ye(e.capability,`${t}/capability`,o)}:e.access===void 0?{}:{access:tr(e.access,`${t}/access`,o)}}function tr(e,t,o){let n=N(e,t);C(n,["allOf","anyOf"],t,!0);let r=n.allOf===void 0?void 0:B(V(n.allOf,`${t}/allOf`,50).map((a,s)=>ye(a,`${t}/allOf/${s}`,o))),i=n.anyOf===void 0?void 0:B(V(n.anyOf,`${t}/anyOf`,50).map((a,s)=>ye(a,`${t}/anyOf/${s}`,o)));return(r?.length||0)+(i?.length||0)===0&&g("NATIVE_ROUTE_ACCESS_EMPTY",t),{...r===void 0?{}:{allOf:r},...i===void 0?{}:{anyOf:i}}}function xd(e){let t=new Map(Ld(e).map(r=>[String(r.code),r])),o=e.workflows.definitions.map((r,i)=>{let a=`/config/workflows/definitions/${i}`,s=N(r,a);C(s,["version","definition","launch"],a,["detailRouteCode"]);let d=N(s.definition,`${a}/definition`),c=s.detailRouteCode===void 0?void 0:Ud(s.detailRouteCode,`${a}/detailRouteCode`);return{code:$(d.code,`${a}/definition/code`),title:D(d.title,`${a}/definition/title`,255),version:Zt(s.version,`${a}/version`),launch:Zf(e,d,s.launch,`${a}/launch`,t),...c?{detailRouteCode:c}:{},definition:d}});return B(o.map(r=>r.code)).map(r=>{let i=o.filter(c=>c.code===r),a=e.workflows.activations.find(c=>c.workflowCode===r)?.definitionVersion,s=i.find(c=>c.version===a)||[...i].sort((c,l)=>l.version-c.version)[0],d=new Set;for(let c of i){let l=N(c.definition.nodes,"/config/workflows/definitions/nodes");for(let u of Object.values(l)){let p=N(u,"/config/workflows/definitions/nodes/*");if(!(p.kind!=="approval"&&p.kind!=="handle"))for(let m of V(p.allowedOperations||[],"/config/workflows/definitions/nodes/*/allowedOperations",20))d.add(m)}}return{code:r,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.${r}.submit`}:{},...s.detailRouteCode?{detailRouteCode:s.detailRouteCode}:{},definitionVersions:wd(i.map(c=>c.version)),bindingVersions:wd(e.workflows.bindings.map((c,l)=>{let u=`/config/workflows/bindings/${l}`,p=N(c,u),m=N(p.binding,`${u}/binding`);return{code:$(m.workflowCode,`${u}/binding/workflowCode`),version:Zt(p.version,`${u}/version`)}}).filter(c=>c.code===r).map(c=>c.version)),providerCodes:B(e.workflows.providers.map((c,l)=>$(N(c,`/config/workflows/providers/${l}`).code,`/config/workflows/providers/${l}/code`))),allowedOperations:[...d].sort(Te),editableParameterCodes:B(e.workflows.editableParameters.map((c,l)=>{let u=`/config/workflows/editableParameters/${l}`,p=N(c,u);return{code:$(p.code,`${u}/code`),workflowCode:$(p.workflowCode,`${u}/workflowCode`)}}).filter(c=>c.workflowCode===r).map(c=>c.code))}})}function jd(e,t){let o=N(e,t);C(o,["mode"],t,["submission"]);let n=D(o.mode,`${t}/mode`,32);return["standalone","custom-page","hidden-handoff","work-center-only"].includes(n)||g("NATIVE_WORKFLOW_LAUNCH_MODE_INVALID",`${t}/mode`),{mode:n,...o.submission===void 0?{}:{submission:N(o.submission,`${t}/submission`)}}}function Zf(e,t,o,n,r){let i=jd(o,n);if(!i.submission)return{mode:i.mode};["standalone","hidden-handoff"].includes(i.mode)||g("NATIVE_WORKFLOW_NAMED_OPERATION_SUBMISSION_INVALID",`${n}/submission`);let a=N(i.submission,`${n}/submission`);C(a,["kind"],`${n}/submission`,["create","existing","context"]),W(a.kind,"named-operation",`${n}/submission/kind`);let s=n.endsWith("/launch")?n.slice(0,-7):n,d=N(t.subject,`${s}/definition/subject`),c=Z(d.resourceCode,`${s}/definition/subject/resourceCode`),l=e.data.resources.findIndex(I=>I.code===c),u=e.data.resources[l];(l<0||!u)&&g("NATIVE_WORKFLOW_SUBJECT_RESOURCE_MISSING",`${s}/definition/subject/resourceCode`);let p=new Set(N(u.schema,`/config/data/resources/${l}/schema`).fields.map(I=>String(I.code))),m=new Map(e.backend.operations.map(I=>[String(I.code),I])),E=(I,R)=>{let w=`${n}/submission/${R}`,T=N(I,w);C(T,["operationCode","inputs","output"],w);let S=$(T.operationCode,`${w}/operationCode`),P=m.get(S),F=r.get(S),J=F?.platformAccess?.workflow?.codes;(!P||!F||F.method!=="POST"||!Array.isArray(J)||!J.includes(t.code))&&g("NATIVE_WORKFLOW_NAMED_OPERATION_INVALID",w);let ne=N(P.requestSchema,`${w}/operation/requestSchema`),Q=N(ne.properties,`${w}/operation/requestSchema/properties`),he=new Set(ne.required===void 0?[]:V(ne.required,`${w}/operation/requestSchema/required`,205)),ae=N(T.inputs,`${w}/inputs`),v=Object.entries(ae);(!v.length||v.length>205)&&g("NATIVE_WORKFLOW_NAMED_OPERATION_INPUT_INVALID",`${w}/inputs`);let U=new Set,x=new Map,H={},Y=F.platformAccess?.ownedSubject;Y&&(R!=="create"||Y.resourceCode!==c)&&g("NATIVE_WORKFLOW_OWNED_SUBJECT_LAUNCH_MISMATCH",w);for(let[X,kt]of v){(!ud.test(X)||!Object.prototype.hasOwnProperty.call(Q,X))&&g("NATIVE_WORKFLOW_NAMED_OPERATION_INPUT_INVALID",`${w}/inputs/${X}`);let it=`${w}/inputs/${X}`,Ar=N(kt,it),st=D(Ar.source,`${it}/source`,32);if(["field","idempotency-key","current-user-reference","subject-id","subject-revision","requested-at"].includes(st)||g("NATIVE_WORKFLOW_NAMED_OPERATION_INPUT_INVALID",it),C(Ar,["source"],it,st==="field"?["fieldCode"]:!1),x.set(st,(x.get(st)||0)+1),st==="field"){let Lt=z(Ar.fieldCode,`${it}/fieldCode`);(U.has(Lt)||!p.has(Lt))&&g("NATIVE_WORKFLOW_NAMED_OPERATION_INPUT_INVALID",`${it}/fieldCode`),U.add(Lt),u.schema.fields.find(Er=>Er.code===Lt)?.type==="subtable"&&(!Y||!Y.subtables.some(Er=>Er.fieldCode===Lt))&&g("NATIVE_WORKFLOW_OWNED_SUBJECT_LAUNCH_REQUIRED",it),H[X]={source:st,fieldCode:Lt}}else H[X]={source:st}}([...he].some(X=>!(X in ae))||(x.get("idempotency-key")||0)!==1||!v.some(([X,kt])=>N(kt,`${w}/inputs/${X}`).source==="idempotency-key"&&he.has(X))||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))&&g("NATIVE_WORKFLOW_NAMED_OPERATION_INPUT_INVALID",`${w}/inputs`);let Ne=N(T.output,`${w}/output`);C(Ne,["subjectId"],`${w}/output`,["subjectRevision","processCommand"]);let Fe=N(N(P.responseSchema,`${w}/operation/responseSchema`).properties,`${w}/operation/responseSchema/properties`);for(let X of["subjectId","subjectRevision","processCommand"]){if(Ne[X]===void 0)continue;let kt=D(Ne[X],`${w}/output/${X}`,128);(!ud.test(kt)||!Object.prototype.hasOwnProperty.call(Fe,kt))&&g("NATIVE_WORKFLOW_NAMED_OPERATION_OUTPUT_INVALID",`${w}/output/${X}`)}return{operationCode:S,method:"POST",path:F.path,requiredCapability:F.requiredCapability,requestSchemaDigest:F.requestSchemaDigest,responseSchemaDigest:F.responseSchemaDigest,inputs:H,output:{...Ne},fieldCodes:U}},A=a.create===void 0?void 0:E(a.create,"create"),O=a.existing===void 0?void 0:E(a.existing,"existing");!A&&!O&&g("NATIVE_WORKFLOW_NAMED_OPERATION_SUBMISSION_INVALID",`${n}/submission`);let y=new Set([...A?.fieldCodes||[],...O?.fieldCodes||[]]),_=a.context===void 0?[]:k(a.context,`${n}/submission/context`,16),b=new Set,h=_.map((I,R)=>{let w=`${n}/submission/context/${R}`,T=N(I,w);C(T,["queryParameter","fieldCode"],w);let S=D(T.queryParameter,`${w}/queryParameter`,64),P=z(T.fieldCode,`${w}/fieldCode`);return(!/^[A-Za-z][A-Za-z0-9]{0,63}$/.test(S)||b.has(S)||!y.has(P))&&g("NATIVE_WORKFLOW_LAUNCH_CONTEXT_INVALID",w),b.add(S),{queryParameter:S,fieldCode:P}}),f=I=>{let{fieldCodes:R,...w}=I;return w};return{mode:i.mode,submission:{kind:"named-operation",...A?{create:f(A)}:{},...O?{existing:f(O)}:{},context:h}}}function Ud(e,t){let o=N(e,t);C(o,["desktop","mobile"],t);let n=$(o.desktop,`${t}/desktop`),r=$(o.mobile,`${t}/mobile`);return n===r&&g("NATIVE_WORKFLOW_DETAIL_ROUTE_DUPLICATE",t),{desktop:n,mobile:r}}function Qf(e,t){let o=new Set(t.map(l=>l.code)),n=new Map;e.data.resources.forEach((l,u)=>{let p=`/config/data/resources/${u}`,m=N(l,p);if(m.recordDeletion!==void 0){let O=`${p}/recordDeletion/delete`;for(let y of m.recordDeletion.delete)ye(y,O,e.appCode),o.has(y)||g("NATIVE_CAPABILITY_REFERENCE_MISSING",O)}if(m.recordComments!==void 0)for(let O of["read","create"]){let y=`${p}/recordComments/${O}`;for(let _ of m.recordComments[O])ye(_,y,e.appCode),o.has(_)||g("NATIVE_CAPABILITY_REFERENCE_MISSING",y)}if(m.recordPrint!==void 0){let O=`${p}/recordPrint/read`;for(let y of m.recordPrint.read)ye(y,O,e.appCode),o.has(y)||g("NATIVE_CAPABILITY_REFERENCE_MISSING",O)}if(m.workflowHistory!==void 0){let O=`${p}/workflowHistory/read`;for(let y of m.workflowHistory.read)ye(y,O,e.appCode),o.has(y)||g("NATIVE_CAPABILITY_REFERENCE_MISSING",O)}for(let[O,y]of Object.entries(m.fieldPolicies||{})){if(!Ze(O))continue;let _=`${p}/fieldPolicies/${O}/read`,b=N(y,`${p}/fieldPolicies/${O}`);for(let h of V(b.read||[],_,2e3))o.has(h)||g("NATIVE_CAPABILITY_REFERENCE_MISSING",_)}let E=m.surface===void 0?{}:N(m.surface,`${p}/surface`);if(["native","queued-command"].includes(E.mutationOwner||"native"))return;let A=N(m.capabilities,`${p}/capabilities`);for(let O of["create","update","delete"])O==="delete"&&Array.isArray(m.recordDeletion?.delete)&&m.recordDeletion.delete.length>0||n.set(String(A[O]),O)});let r=new Set;for(let[l,u]of e.authz.roles.entries()){let p=`/config/authz/roles/${l}`,m=N(u,p);C(m,["code","name","description","capabilities"],p,!0);let E=$(m.code,`${p}/code`);r.has(E)&&g("NATIVE_ROLE_DUPLICATE",`${p}/code`),r.add(E),D(m.name,`${p}/name`,255);let A=V(m.capabilities,`${p}/capabilities`,2e3);for(let[O,y]of A.entries())n.has(y)&&g("NATIVE_DATA_SURFACE_MUTATION_GRANT_FORBIDDEN",`${p}/capabilities/${O}`,{operation:n.get(y)}),o.has(y)||g("NATIVE_CAPABILITY_REFERENCE_MISSING",`${p}/capabilities`)}let i=e.authz.authenticatedUserRoleCode===void 0?"":$(e.authz.authenticatedUserRoleCode,"/config/authz/authenticatedUserRoleCode");i&&!r.has(i)&&g("NATIVE_AUTHENTICATED_USER_ROLE_REFERENCE_MISSING","/config/authz/authenticatedUserRoleCode");let a=new Set,s=0;for(let[l,u]of e.perspectives.entries()){let p=`/config/perspectives/${l}`,m=N(u,p);C(m,["code","name","description","roleCodes","capabilityCodes","default"],p,!0);let E=$(m.code,`${p}/code`);a.has(E)&&g("NATIVE_PERSPECTIVE_DUPLICATE",`${p}/code`),a.add(E),D(m.name,`${p}/name`,255);let A=V(m.roleCodes,`${p}/roleCodes`,20);A.length<1&&g("NATIVE_PERSPECTIVE_ROLE_REQUIRED",`${p}/roleCodes`),A.forEach((_,b)=>{r.has(_)||g("NATIVE_PERSPECTIVE_ROLE_MISSING",`${p}/roleCodes/${b}`)});let O=B(e.authz.roles.filter(_=>A.includes(_.code)).flatMap(_=>_.capabilities)),y=V(m.capabilityCodes,`${p}/capabilityCodes`,2e3);oe(O)!==oe(y)&&g("NATIVE_PERSPECTIVE_CAPABILITY_PROJECTION_MISMATCH",`${p}/capabilityCodes`),m.default===!0?s+=1:m.default!==void 0&&g("NATIVE_PERSPECTIVE_DEFAULT_INVALID",`${p}/default`)}s>1&&g("NATIVE_PERSPECTIVE_DEFAULT_DUPLICATE","/config/perspectives");for(let[l,u]of e.backend.operations.entries()){let p=N(u,`/config/backend/operations/${l}`);o.has(p.capability)||g("NATIVE_CAPABILITY_REFERENCE_MISSING",`/config/backend/operations/${l}/capability`)}let d=new Set,c=new Set;for(let[l,u]of e.frontend.routes.entries()){let p=`/config/frontend/routes/${l}`,m=N(u,p),E=$(m.code,`${p}/code`);d.has(E)&&g("NATIVE_ROUTE_DUPLICATE",`${p}/code`),d.add(E);let A=Pe(m.path,`${p}/path`);c.has(A)&&g("NATIVE_ROUTE_PATH_DUPLICATE",`${p}/path`),c.add(A);let O=ts(m,p,e.appCode);O.capability&&!o.has(O.capability)&&g("NATIVE_CAPABILITY_REFERENCE_MISSING",`${p}/capability`);let y=m.access===void 0?void 0:N(m.access,`${p}/access`);for(let _ of["allOf","anyOf"]){let b=y?.[_]===void 0?[]:k(y[_],`${p}/access/${_}`,50);for(let[h,f]of b.entries()){let I=ye(f,`${p}/access/${_}/${h}`,e.appCode);o.has(I)||g("NATIVE_CAPABILITY_REFERENCE_MISSING",`${p}/access/${_}/${h}`)}}}if(e.frontend.admin.access!==void 0){let l=tr(e.frontend.admin.access,"/config/frontend/admin/access",e.appCode);for(let u of["allOf","anyOf"])for(let[p,m]of(l[u]||[]).entries())o.has(m)||g("NATIVE_CAPABILITY_REFERENCE_MISSING",`/config/frontend/admin/access/${u}/${p}`)}for(let[l,u]of e.frontend.routes.entries()){let p=N(u,`/config/frontend/routes/${l}`);p.parentCode&&!d.has(p.parentCode)&&g("NATIVE_ROUTE_PARENT_MISSING",`/config/frontend/routes/${l}/parentCode`)}}function ep(e){let t=new Set(e.authz.roles.map(c=>String(c.code))),o=e.authz.authenticatedUserRoleCode===void 0?"":$(e.authz.authenticatedUserRoleCode,"/config/authz/authenticatedUserRoleCode"),n=new Map(e.authz.scopeDimensions.map(c=>[String(c.code),{valueType:c.valueType==="uuid"?"uuid":"string",...c.valueSource?.resourceCode?{valueSourceResourceCode:String(c.valueSource.resourceCode)}:{}}])),r=new Set(n.keys()),i=new Map(e.data.resources.map((c,l)=>{let u=Tt(c,`/config/data/resources/${l}`,e.appCode);return[u.code,new Map(u.schema.fields.map(p=>[String(p.code),p]))]}));for(let[c,l]of e.authz.scopeDimensions.entries()){let u=`/config/authz/scopeDimensions/${c}`,p=N(l,u);if(C(p,["code","name","resourceCode","valueType","hierarchyMode","valueSource"],u,!0),p.valueSource===void 0)continue;let m=N(p.valueSource,`${u}/valueSource`);C(m,["kind","resourceCode","labelField","enabledField"],`${u}/valueSource`,!0),m.kind!=="native_resource"&&g("NATIVE_SCOPE_VALUE_SOURCE_KIND_INVALID",`${u}/valueSource/kind`),p.valueType!=="uuid"&&g("NATIVE_SCOPE_VALUE_SOURCE_TYPE_INVALID",`${u}/valueType`);let E=Z(m.resourceCode,`${u}/valueSource/resourceCode`),A=i.get(E);A||g("NATIVE_SCOPE_VALUE_SOURCE_RESOURCE_MISSING",`${u}/valueSource/resourceCode`);let O=z(m.labelField,`${u}/valueSource/labelField`);if(["text.short","text.long"].includes(String(A.get(O)?.type||""))||g("NATIVE_SCOPE_VALUE_SOURCE_LABEL_FIELD_INVALID",`${u}/valueSource/labelField`),m.enabledField!==void 0){let y=z(m.enabledField,`${u}/valueSource/enabledField`);A.get(y)?.type!=="boolean"&&g("NATIVE_SCOPE_VALUE_SOURCE_ENABLED_FIELD_INVALID",`${u}/valueSource/enabledField`)}}let a=new Set,s=new Set;for(let[c,l]of e.authz.scopeSources.entries()){let u=`/config/authz/scopeSources/${c}`,p=N(l,u);C(p,["code","name","resourceCode","subject","grants","operationField","enabledField","effectiveFromField","effectiveToField","failureMode"],u,!0);let m=$(p.code,`${u}/code`);a.has(m)&&g("NATIVE_SCOPE_SOURCE_DUPLICATE",`${u}/code`),a.add(m),D(p.name,`${u}/name`,255);let E=Z(p.resourceCode,`${u}/resourceCode`),A=i.get(E);A||g("NATIVE_SCOPE_SOURCE_RESOURCE_MISSING",`${u}/resourceCode`);let O=N(p.subject,`${u}/subject`),y=D(O.type,`${u}/subject/type`,32);C(O,y==="role_membership"?["type","userIdField","roleCode"]:["type","userIdField"],`${u}/subject`),["user","role_membership"].includes(y)||g("NATIVE_SCOPE_SOURCE_SUBJECT_INVALID",`${u}/subject/type`);let _=jt(O.userIdField,A);_o(_)||g("NATIVE_SCOPE_SOURCE_SUBJECT_PATH_INVALID",`${u}/subject/userIdField`),y==="role_membership"&&!t.has(String(O.roleCode))&&g("NATIVE_ROLE_REFERENCE_MISSING",`${u}/subject/roleCode`);let b=new Set;for(let[h,f]of k(p.grants,`${u}/grants`,100).entries()){let I=`${u}/grants/${h}`,R=N(f,I);C(R,["dimensionCode","valueField","parentValueField"],I,!0);let w=$(R.dimensionCode,`${I}/dimensionCode`);(!r.has(w)||b.has(w))&&g("NATIVE_SCOPE_SOURCE_DIMENSION_INVALID",`${I}/dimensionCode`),b.add(w),p.failureMode==="last_known_good"&&s.add(w);for(let T of["valueField","parentValueField"]){if(R[T]===void 0)continue;let S=jt(R[T],A);zr(S,n.get(w),i)||g("NATIVE_SCOPE_SOURCE_GRANT_PATH_INVALID",`${I}/${T}`)}}b.size===0&&g("NATIVE_SCOPE_SOURCE_GRANT_REQUIRED",`${u}/grants`),["strict","last_known_good"].includes(p.failureMode)||g("NATIVE_SCOPE_SOURCE_FAILURE_MODE_INVALID",`${u}/failureMode`);for(let h of["operationField","enabledField","effectiveFromField","effectiveToField"]){if(p[h]===void 0)continue;let f=z(p[h],`${u}/${h}`);A.has(f)||g("NATIVE_SCOPE_SOURCE_FIELD_MISSING",`${u}/${h}`)}}np(e,t,i,o);let d=new Set;for(let[c,l]of e.authz.dataPolicies.entries()){let u=`/config/authz/dataPolicies/${c}`,p=N(l,u);C(p,["code","name","resourceCode","unrestrictedRoleCodes","publicRead","operations","matchMode","rules","readExpression","writeBoundary"],u,!0);let m=$(p.code,`${u}/code`);d.has(m)&&g("NATIVE_DATA_POLICY_DUPLICATE",`${u}/code`),d.add(m);let E=p.readExpression!==void 0,A=V(p.operations||[],`${u}/operations`,4);p.operations!==void 0&&(A.length===0||A.some(f=>!["read","create","update","delete"].includes(f)))&&g("NATIVE_DATA_POLICY_OPERATIONS_INVALID",`${u}/operations`),["AND","OR"].includes(p.matchMode)||g("NATIVE_DATA_POLICY_MATCH_MODE_INVALID",`${u}/matchMode`),E&&p.operations!==void 0&&g("NATIVE_DATA_POLICY_READ_EXPRESSION_OPERATIONS_FORBIDDEN",`${u}/operations`);let O=e.data.resources.find(f=>f.dataPolicyCode===m),y=p.resourceCode||O?.code,_=y?i.get(Z(y,`${u}/resourceCode`)):void 0;if(E&&!_&&g("NATIVE_DATA_POLICY_RESOURCE_MISSING",`${u}/resourceCode`),p.publicRead!==void 0){try{let f=e.authz.roles.find(I=>I.code===o);pi({policy:p,resource:e.data.resources.find(I=>I.code===y),baselineRoleCode:o,baselineCapabilities:f?.capabilities||[],baselineDeniedCapabilities:f?.deniedCapabilities||[],pointer:u})}catch(f){if(!(f instanceof Bt))throw f;g(f.code,f.pointer)}(p.unrestrictedRoleCodes||[]).includes(o)||g("AUTHENTICATED_PUBLIC_READ_CANONICAL_BASELINE_MISSING",`${u}/unrestrictedRoleCodes`)}else o&&(p.unrestrictedRoleCodes||[]).includes(o)&&g("NATIVE_DATA_POLICY_BASELINE_UNRESTRICTED",`${u}/unrestrictedRoleCodes`);let b=V(p.unrestrictedRoleCodes||[],`${u}/unrestrictedRoleCodes`,100);p.unrestrictedRoleCodes!==void 0&&b.length===0&&g("NATIVE_DATA_POLICY_UNRESTRICTED_ROLES_INVALID",`${u}/unrestrictedRoleCodes`);for(let f of b)t.has(f)||g("NATIVE_ROLE_REFERENCE_MISSING",`${u}/unrestrictedRoleCodes`);let h;try{let f=k(p.rules,`${u}/rules`,100).map((I,R)=>({rule:N(I,`${u}/rules/${R}`),pointer:`${u}/rules/${R}`}));f.length===0?(!E||p.matchMode!=="AND"||p.writeBoundary!=="capability_only")&&g("NATIVE_DATA_POLICY_WRITE_BOUNDARY_REQUIRED",u):p.writeBoundary!==void 0&&g("NATIVE_DATA_POLICY_WRITE_BOUNDARY_INVALID",`${u}/writeBoundary`),h=[...f],E&&(h.push(...At(p.readExpression,`${u}/readExpression`)),ci(p.readExpression,`${u}/readExpression`))}catch(f){throw f instanceof Mt&&g(f.code,f.pointer),f}for(let{rule:f,pointer:I}of h){if(C(f,["parentRead","subject","dimensionCode","relationCode","resourceCode","field","roleCodes","operation","valuePath","emptyMatchesAll","operator","value","operand"],I,!0),f.parentRead!==void 0){for(let Q of V(f.roleCodes||[],`${I}/roleCodes`,100))t.has(Q)||g("NATIVE_ROLE_REFERENCE_MISSING",`${I}/roleCodes`);continue}let R=z(f.field,`${I}/field`),w=_?.get(R);E&&!w&&g("NATIVE_DATA_POLICY_FIELD_MISSING",`${I}/field`);for(let Q of V(f.roleCodes||[],`${I}/roleCodes`,100))t.has(Q)||g("NATIVE_ROLE_REFERENCE_MISSING",`${I}/roleCodes`);let T=String(f.operator||""),S=f.operand==="db_now",P=["is_null","is_not_null"].includes(T),F=["eq","not_eq","in","not_in"].includes(T),J=!S&&(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":"",J?"constant":"",S?"db_now":""].filter(Boolean).length!==1&&g("NATIVE_DATA_POLICY_RULE_SOURCE_INVALID",I),f.subject!==void 0&&f.subject!=="current_user"&&g("NATIVE_DATA_POLICY_SUBJECT_INVALID",`${I}/subject`),J){if(!F&&!P&&g("NATIVE_DATA_POLICY_OPERATOR_INVALID",`${I}/operator`),["in","not_in"].includes(T)){let Q=k(f.value,`${I}/value`,100).map((he,ae)=>D(he,`${I}/value/${ae}`,2048));(Q.length===0||new Set(Q).size!==Q.length)&&g("NATIVE_DATA_POLICY_VALUE_INVALID",`${I}/value`)}else["eq","not_eq"].includes(T)?D(f.value,`${I}/value`,2048):(f.value!==void 0||f.operand!==void 0)&&g("NATIVE_DATA_POLICY_VALUE_INVALID",`${I}/value`);for(let Q of["operation","valuePath","emptyMatchesAll","resourceCode","operand"])f[Q]!==void 0&&g("NATIVE_DATA_POLICY_CONSTANT_RULE_INVALID",`${I}/${Q}`)}if(S){(!["lt","lte","gt","gte"].includes(T)||f.value!==void 0||w?.type!=="datetime")&&g("NATIVE_DATA_POLICY_DB_NOW_INVALID",I);for(let Q of["operation","valuePath","emptyMatchesAll","resourceCode","value"])f[Q]!==void 0&&g("NATIVE_DATA_POLICY_DB_NOW_INVALID",`${I}/${Q}`)}f.dimensionCode&&!r.has(f.dimensionCode)&&g("NATIVE_SCOPE_DIMENSION_MISSING",`${I}/dimensionCode`),s.has(String(f.dimensionCode||""))&&f.operation!=="read"&&g("NATIVE_SCOPE_SOURCE_LAST_KNOWN_GOOD_UNSAFE",`${I}/operation`)}}try{li(e.data.resources,e.authz.dataPolicies)}catch(c){throw c instanceof fe&&g(c.code,c.pointer),c}for(let[c,l]of e.data.resources.entries()){let u=N(l,`/config/data/resources/${c}`);u.dataPolicyCode&&!d.has(u.dataPolicyCode)&&g("NATIVE_DATA_POLICY_REFERENCE_MISSING",`/config/data/resources/${c}/dataPolicyCode`)}}function tp(e){try{Sr(e.data.resources,"/config/data/resources"),e.data.resources.forEach((t,o)=>Or(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 Xe)&&g(t.code,t.pointer),t}}function np(e,t,o,n){let r=new Set;for(let[i,a]of e.authz.roleMembershipSources.entries()){let s=`/config/authz/roleMembershipSources/${i}`,d=N(a,s);C(d,["code","name","resourceCode","userIdField","roleCode","enabledField","effectiveFromField","effectiveToField","failureMode"],s,!0);let c=$(d.code,`${s}/code`);c.length>100&&g("NATIVE_AUTHORIZATION_PROJECTION_SOURCE_CODE_INVALID",`${s}/code`),r.has(c)&&g("NATIVE_AUTHORIZATION_PROJECTION_SOURCE_DUPLICATE",`${s}/code`),r.add(c),D(d.name,`${s}/name`,255);let l=yd(d.resourceCode,`${s}/resourceCode`,o);bd(d.userIdField,`${s}/userIdField`,l),t.has(String(d.roleCode||""))||g("NATIVE_ROLE_REFERENCE_MISSING",`${s}/roleCode`),n&&d.roleCode===n&&g("NATIVE_AUTHENTICATED_USER_ROLE_SOURCE_CONFLICT",`${s}/roleCode`),Od(d,s,l)}for(let[i,a]of e.authz.relationshipGrantSources.entries()){let s=`/config/authz/relationshipGrantSources/${i}`,d=N(a,s);C(d,["code","name","resourceCode","subject","relationCode","targetResourceCode","resourceIdField","operations","enabledField","effectiveFromField","effectiveToField","failureMode"],s,!0);let c=$(d.code,`${s}/code`);c.length>100&&g("NATIVE_AUTHORIZATION_PROJECTION_SOURCE_CODE_INVALID",`${s}/code`),r.has(c)&&g("NATIVE_AUTHORIZATION_PROJECTION_SOURCE_DUPLICATE",`${s}/code`),r.add(c),D(d.name,`${s}/name`,255);let l=yd(d.resourceCode,`${s}/resourceCode`,o),u=N(d.subject,`${s}/subject`),p=D(u.type,`${s}/subject/type`,32);C(u,p==="role_membership"?["type","userIdField","roleCode"]:["type","userIdField"],`${s}/subject`),["user","role_membership"].includes(p)||g("NATIVE_AUTHORIZATION_PROJECTION_SUBJECT_INVALID",`${s}/subject/type`),bd(u.userIdField,`${s}/subject/userIdField`,l),p==="role_membership"&&!t.has(String(u.roleCode||""))&&g("NATIVE_ROLE_REFERENCE_MISSING",`${s}/subject/roleCode`),$(d.relationCode,`${s}/relationCode`);let m=Z(d.targetResourceCode,`${s}/targetResourceCode`);o.has(m)||g("NATIVE_AUTHORIZATION_PROJECTION_TARGET_RESOURCE_MISSING",`${s}/targetResourceCode`);let E=jt(d.resourceIdField,l),A=E?.field.type==="resource-ref.single"&&E.valuePath==="value"&&E.field.source?.resourceCode===m;(d.resourceIdField==="id"?m!==String(d.resourceCode):!A)&&g("NATIVE_AUTHORIZATION_PROJECTION_RESOURCE_ID_FIELD_INVALID",`${s}/resourceIdField`);let O=V(d.operations,`${s}/operations`,20);(O.length===0||O.some(y=>y.length>64||!/^[A-Za-z0-9][A-Za-z0-9:._*-]{0,63}$/.test(y)))&&g("NATIVE_AUTHORIZATION_PROJECTION_OPERATIONS_INVALID",`${s}/operations`),Od(d,s,l)}}function yd(e,t,o){let n=Z(e,t),r=o.get(n);return r||g("NATIVE_AUTHORIZATION_PROJECTION_RESOURCE_MISSING",t),r}function bd(e,t,o){let n=jt(e,o);_o(n)||g("NATIVE_AUTHORIZATION_PROJECTION_USER_FIELD_INVALID",t)}function Od(e,t,o){if(e.failureMode!=="strict"&&g("NATIVE_AUTHORIZATION_PROJECTION_FAILURE_MODE_INVALID",`${t}/failureMode`),e.enabledField!==void 0){let n=z(e.enabledField,`${t}/enabledField`);o.get(n)?.type!=="boolean"&&g("NATIVE_AUTHORIZATION_PROJECTION_ENABLED_FIELD_INVALID",`${t}/enabledField`)}for(let n of["effectiveFromField","effectiveToField"]){if(e[n]===void 0)continue;let r=z(e[n],`${t}/${n}`);["date","datetime"].includes(String(o.get(r)?.type))||g("NATIVE_AUTHORIZATION_PROJECTION_EFFECTIVE_FIELD_INVALID",`${t}/${n}`)}}function op(e){let t=new Set,o=new Set;e.forEach((n,r)=>{let i=`/config/backend/secrets/${r}`,a=N(n,i);C(a,["name","env","description","required","exposure"],i,!0);let s=D(a.name,`${i}/name`,128),d=D(a.env,`${i}/env`,128);of.test(s)||g("NATIVE_SECRET_NAME_INVALID",`${i}/name`),(!rf.test(d)||d.startsWith("OPENXIANGDA_")||["NODE_ENV","PORT"].includes(d))&&g("NATIVE_SECRET_ENV_INVALID",`${i}/env`),t.has(s)&&g("NATIVE_SECRET_NAME_DUPLICATE",`${i}/name`),o.has(d)&&g("NATIVE_SECRET_ENV_DUPLICATE",`${i}/env`),t.add(s),o.add(d),W(a.exposure,"active_only",`${i}/exposure`),a.required!==void 0&&Qt(a.required,`${i}/required`),a.description!==void 0&&ns(a.description,`${i}/description`,2e3)})}function rp(e){let t=new Set,o=new Map,n=new Map(e.data.resources.map(m=>[String(m.code),m])),r=new Map(e.frontend.routes.map((m,E)=>{let A=N(m,`/config/frontend/routes/${E}`);return[$(A.code,`/config/frontend/routes/${E}/code`),A]}));for(let[m,E]of e.workflows.definitions.entries()){let A=`/config/workflows/definitions/${m}`,O=N(E,A);if(C(O,["version","definition","launch"],A,["detailRouteCode"]),jd(O.launch,`${A}/launch`),O.detailRouteCode!==void 0){let S=Ud(O.detailRouteCode,`${A}/detailRouteCode`);for(let[P,F,J]of[["desktop",S.desktop,["admin","user"]],["mobile",S.mobile,["user"]]]){let ne=`${A}/detailRouteCode/${P}`,Q=r.get(F);Q||g("NATIVE_WORKFLOW_DETAIL_ROUTE_MISSING",ne),J.some(v=>v===Q.surface)||g("NATIVE_WORKFLOW_DETAIL_ROUTE_SURFACE_INVALID",ne);let he=Pe(Q.path,ne),ae=[...he.matchAll(/:([A-Za-z][A-Za-z0-9_]*)/g)].map(v=>v[1]);(he.includes("*")||ae.length!==1||ae[0]!=="instanceId")&&g("NATIVE_WORKFLOW_DETAIL_ROUTE_PATH_INVALID",ne)}}let y=N(O.definition,`${A}/definition`),_=`${y.code}:${Zt(O.version,`${A}/version`)}`;t.has(_)&&g("NATIVE_WORKFLOW_DEFINITION_DUPLICATE",A),t.add(_),sp(y,`${A}/definition`);let b=jo(y);b.length&&g(b[0],`${A}/definition/launchPreflight`);let h=$i(y);h.length&&g(h[0],`${A}/definition/approvedDelegation`);let f=vi(y,e.backend.operations);f.length&&g(f[0],`${A}/definition/commandHandlers`),ip(y.subject,n,`${A}/definition/subject`);let I=y.commandHandlers?.resubmit?.derivedSubjectFields||[],R=n.get(y.subject.resourceCode);for(let S of I){let P=R?.schema.fields.find(F=>F.code===S);(!P||P.system===!0||R?.surface?.fields?.[S]?.system===!0)&&g("WORKFLOW_CORRECTION_DERIVED_SUBJECT_FIELDS_INVALID",`${A}/definition/commandHandlers/resubmit/derivedSubjectFields`)}let w=Sn(y,new Map((n.get(y.subject.resourceCode)?.schema.fields||[]).map(S=>[S.code,{...n.get(y.subject.resourceCode)?.surface?.fields?.[S.code],...S,system:["id","revision","createdAt","updatedAt","createdBy","updatedBy"].includes(S.code)}])),new Map([...n].map(([S,P])=>[S,new Map(P.schema.fields.map(F=>[F.code,{...P.surface?.fields?.[F.code],...F,system:["id","revision","createdAt","updatedAt","createdBy","updatedBy"].includes(F.code)}]))])),on(n.get(y.subject.resourceCode)?.schema||{}));w.length&&g(w[0],`${A}/definition/taskPages`);let T=yi(y,{appCode:e.appCode,capabilities:e.authz.capabilities.map(S=>S.code),fields:new Map((n.get(y.subject.resourceCode)?.schema.fields||[]).map(S=>[S.code,S]))});T.length&&g("NATIVE_WORKFLOW_INSTANCE_COMMAND_POLICY_INVALID",`${A}/definition/instanceCommands`,{errors:T}),y.title===y.code&&g("NATIVE_WORKFLOW_USER_TITLE_REQUIRED",`${A}/definition/title`),o.set(_,y)}let i=new Set,a=new Map;for(let[m,E]of e.workflows.bindings.entries()){let A=N(E,`/config/workflows/bindings/${m}`),O=N(A.binding,`/config/workflows/bindings/${m}/binding`),y=`${O.workflowCode}:${Zt(A.version,`/config/workflows/bindings/${m}/version`)}`;i.has(y)&&g("NATIVE_WORKFLOW_BINDING_DUPLICATE",`/config/workflows/bindings/${m}`),i.add(y),ap(O,`/config/workflows/bindings/${m}/binding`),a.set(y,O)}let s=new Set,d=new Map;for(let[m,E]of e.workflows.activations.entries()){let A=`/config/workflows/activations/${m}`,O=N(E,A);C(O,["workflowCode","definitionVersion","bindingVersion","acceptedCommandDeactivationPolicy"],A,["environmentKey","sourceBase"]);let y=$(O.workflowCode,`${A}/workflowCode`);if(s.has(y)&&g("NATIVE_WORKFLOW_ACTIVATION_DUPLICATE",A),s.add(y),O.sourceBase!==void 0){let w=N(O.sourceBase,`${A}/sourceBase`);C(w,["definitionDigest","bindingDigest"],`${A}/sourceBase`);for(let T of["definitionDigest","bindingDigest"])/^(sha256:)?[a-f0-9]{64}$/.test(String(w[T]||""))||g("NATIVE_WORKFLOW_SOURCE_BASE_INVALID",`${A}/sourceBase/${T}`)}let _=`${y}:${Zt(O.definitionVersion,`${A}/definitionVersion`)}`,b=`${y}:${Zt(O.bindingVersion,`${A}/bindingVersion`)}`;t.has(_)||g("NATIVE_WORKFLOW_DEFINITION_REFERENCE_MISSING",`${A}/definitionVersion`),i.has(b)||g("NATIVE_WORKFLOW_BINDING_REFERENCE_MISSING",`${A}/bindingVersion`);let h=o.get(_),f=a.get(b),I=jo(h,f);I.length&&g(I[0],A);let R=Wo(h,f);R.length&&g(R[0],A),(!["finish-pinned","cancel-on-deactivate"].includes(O.acceptedCommandDeactivationPolicy)||O.acceptedCommandDeactivationPolicy!==h.acceptedCommandDeactivationPolicy)&&g("NATIVE_WORKFLOW_COMMAND_DEACTIVATION_POLICY_MISMATCH",`${A}/acceptedCommandDeactivationPolicy`),dp(h,f,`/config/workflows/activations/${m}`);try{let w=n.get(h.subject.resourceCode)?.schema.fields||[];hr(h,f,new Map(w.map(T=>[T.code,T])),`${A}/bindings`,new Map([...n].map(([T,S])=>[T,new Map(S.schema.fields.map(P=>[P.code,P]))])))}catch(w){throw w instanceof Xe&&g(w.code,w.pointer),w}d.set(y,f)}let c=Ki([...d.values()]);c.length&&g(c[0],"/config/workflows/activations");let l=new Set;e.workflows.providers.forEach((m,E)=>{let A=`/config/workflows/providers/${E}`,O=N(m,A);C(O,["code","endpointPath","timeoutMs"],A,!0);let y=$(O.code,`${A}/code`);l.has(y)&&g("NATIVE_WORKFLOW_PROVIDER_DUPLICATE",`${A}/code`),l.add(y),Pe(O.endpointPath,`${A}/endpointPath`),O.timeoutMs!==void 0&&ce(O.timeoutMs,`${A}/timeoutMs`,100,1e4)});for(let[m,E]of d.entries())for(let[A,O]of Object.entries(N(E.bindings,"/config/workflows/bindings/*/binding/bindings"))){let y=N(O,`/config/workflows/${m}/bindings/${A}`);y.provider==="application_provider"&&!l.has(y.providerCode)&&g("NATIVE_WORKFLOW_PROVIDER_REFERENCE_MISSING",`/config/workflows/${m}/bindings/${A}/providerCode`)}let u=new Set(e.authz.roles.map(m=>m.code)),p=new Set;e.workflows.editableParameters.forEach((m,E)=>{let A=`/config/workflows/editableParameters/${E}`,O=N(m,A);C(O,["code","workflowCode","bindingKey","label","valueType","required","allowedRoleCodes","allowedProviderCodes","maxItems"],A,!0);let y=$(O.code,`${A}/code`);p.has(y)&&g("NATIVE_WORKFLOW_EDITABLE_PARAMETER_DUPLICATE",`${A}/code`),p.add(y);let _=nr(O.workflowCode,`${A}/workflowCode`),b=Zo(O.bindingKey,`${A}/bindingKey`),h=d.get(_);(!h||!N(h.bindings,`${A}/bindingKey`)[b])&&g("NATIVE_WORKFLOW_EDITABLE_BINDING_MISSING",`${A}/bindingKey`),D(O.label,`${A}/label`,255),["role_code","user_ids","provider_code"].includes(O.valueType)||g("NATIVE_WORKFLOW_EDITABLE_VALUE_TYPE_INVALID",`${A}/valueType`);for(let f of V(O.allowedRoleCodes||[],`${A}/allowedRoleCodes`,100))u.has(f)||g("NATIVE_ROLE_REFERENCE_MISSING",`${A}/allowedRoleCodes`);for(let f of V(O.allowedProviderCodes||[],`${A}/allowedProviderCodes`,100))l.has(f)||g("NATIVE_WORKFLOW_PROVIDER_REFERENCE_MISSING",`${A}/allowedProviderCodes`);O.required!==void 0&&Qt(O.required,`${A}/required`),O.maxItems!==void 0&&ce(O.maxItems,`${A}/maxItems`,1,200)})}function ip(e,t,o){let n=N(e,o);C(n,["resourceCode","factProjection"],o,["summaryFields"]);let r=Z(n.resourceCode,`${o}/resourceCode`),i=t.get(r);i||g("NATIVE_WORKFLOW_SUBJECT_RESOURCE_MISSING",`${o}/resourceCode`);let a=new Set(k(N(i.schema,`${o}/resourceCode`).fields,`${o}/resourceCode`,500).map((c,l)=>z(N(c,`${o}/resourceCode/${l}`).code,`${o}/resourceCode/${l}`))),s=N(n.factProjection,`${o}/factProjection`),d=Object.entries(s);(d.length<1||d.length>64)&&g("NATIVE_WORKFLOW_SUBJECT_FACT_PROJECTION_INVALID",`${o}/factProjection`);for(let[c,l]of d){df.test(c)||g("NATIVE_WORKFLOW_SUBJECT_FACT_KEY_INVALID",`${o}/factProjection/${c}`);let u=z(l,`${o}/factProjection/${c}`);a.has(u)||g("NATIVE_WORKFLOW_SUBJECT_FIELD_MISSING",`${o}/factProjection/${c}`)}if(n.summaryFields!==void 0){let c=V(n.summaryFields,`${o}/summaryFields`,cf).map((E,A)=>z(E,`${o}/summaryFields/${A}`)),l=t.get(r),u=l.surface&&typeof l.surface=="object"&&!Array.isArray(l.surface)?l.surface:{},p=u.fields&&typeof u.fields=="object"&&!Array.isArray(u.fields)?u.fields:{},m=new Map(k(N(l.schema,`${o}/resourceCode`).fields,`${o}/resourceCode`,500).map((E,A)=>{let O=N(E,`${o}/resourceCode/${A}`);return[String(O.code),O]}));for(let[E,A]of c.entries()){let O=m.get(A),y=p[A],_=String(O?.type||""),b=O?.maxLength;(!O||O.system===!0||y&&typeof y=="object"&&!Array.isArray(y)&&y.system===!0||["id","revision","created_by","updated_by","created_at","updated_at"].includes(A)||!uf.has(_)||_==="text.long"&&typeof b=="number"&&Number.isFinite(b)&&b>lf)&&g("NATIVE_WORKFLOW_SUBJECT_SUMMARY_FIELDS_INVALID",`${o}/summaryFields/${E}`)}}}function sp(e,t){C(e,["schemaVersion","code","title","subject","acceptedCommandDeactivationPolicy","startAt","inputSchema","nodes"],t,["authoring","organizationContext","instanceCommands","readability","taskPages","rejectionNotification","commandHandlers","launchPreflight","approvedDelegation"]),W(e.schemaVersion,"openxiangda.workflow-definition/v2",`${t}/schemaVersion`),nr(e.code,`${t}/code`),D(e.title,`${t}/title`,255),["finish-pinned","cancel-on-deactivate"].includes(e.acceptedCommandDeactivationPolicy)||g("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)&&g("NATIVE_WORKFLOW_NODE_COUNT_INVALID",`${t}/nodes`);let r=D(e.startAt,`${t}/startAt`,128),i=Oi(e);i.length&&g(i[0],`${t}/readability`);let a=Wo(e);a.length&&g(a[0],`${t}/nodes`);let s=xo(e);s.length&&g(s[0],`${t}/nodes`);let d=Gt(e);d.length&&g(d[0],`${t}/nodes`);let c=Di(e);c.length&&g(c[0],`${t}/nodes`);let l=Li(e);l.length&&g(l[0],`${t}/rejectionNotification`);let u=Fo(e);u.length&&g(u[0],`${t}/nodes`);let p=Sn(e);p.length&&g(p[0],`${t}/taskPages`);let m=mn(e);m.length&&g(m[0],`${t}/nodes`);let E=pn(e);E.length&&g(E[0],`${t}/nodes`);let A=An(e);A.length&&g(A[0],`${t}/nodes`);let O=_n(e);O.length&&g(O[0],`${t}/nodes`);let y=fn(e);y.length&&g(y[0],`${t}/nodes`),o[r]||g("NATIVE_WORKFLOW_START_NODE_MISSING",`${t}/startAt`);let _=new Map;for(let[I,R]of Object.entries(o)){let w=`${t}/nodes/${I}`,T=N(R,w);W(T.id,I,`${w}/id`),["approval","handle","condition","end","cc","action","correction","parallel","join"].includes(T.kind)||g("NATIVE_WORKFLOW_NODE_KIND_INVALID",`${w}/kind`);let S=[];if(T.kind==="approval"||T.kind==="handle"){D(T.title,`${w}/title`,255),Zo(T.binding,`${w}/binding`),["single","any","all","sequence"].includes(T.mode)||g("NATIVE_WORKFLOW_APPROVAL_MODE_INVALID",`${w}/mode`),T.kind==="handle"?S.push(D(T.next,`${w}/next`,128)):S.push(D(T.onApprove,`${w}/onApprove`,128),D(T.onReject,`${w}/onReject`,128));for(let P of V(T.returnTargets||[],`${w}/returnTargets`,200))o[P]||g("NATIVE_WORKFLOW_TARGET_MISSING",`${w}/returnTargets`);for(let P of V(T.allowedOperations||[],`${w}/allowedOperations`,20))pf.has(P)||g("NATIVE_WORKFLOW_OPERATION_INVALID",`${w}/allowedOperations`)}else if(T.kind==="correction"){let P=Fi(e);P.length&&g(P[0],w)}else if(T.kind==="action")S.push(D(T.next,`${w}/next`,128));else if(T.kind==="cc")D(T.title,`${w}/title`,255),Zo(T.binding,`${w}/binding`),S.push(D(T.next,`${w}/next`,128));else if(T.kind==="parallel"){D(T.title,`${w}/title`,255),S.push(D(T.join,`${w}/join`,128));for(let[P,F]of k(T.branches,`${w}/branches`,8).entries()){let J=N(F,`${w}/branches/${P}`);J.when!==void 0&&Xt(J.when,`${w}/branches/${P}/when`,0),S.push(D(J.target,`${w}/branches/${P}/target`,128))}}else if(T.kind==="join")D(T.title,`${w}/title`,255),S.push(D(T.next,`${w}/next`,128));else if(T.kind==="condition"){let P=k(T.branches,`${w}/branches`,100);P.length===0&&g("NATIVE_WORKFLOW_BRANCH_REQUIRED",`${w}/branches`),P.forEach((F,J)=>{let ne=N(F,`${w}/branches/${J}`);Xt(ne.when,`${w}/branches/${J}/when`,0),S.push(D(ne.target,`${w}/branches/${J}/target`,128))}),S.push(D(T.otherwise,`${w}/otherwise`,128))}else D(T.title,`${w}/title`,255),D(T.outcome,`${w}/outcome`,128);for(let P of S)o[P]||g("NATIVE_WORKFLOW_TARGET_MISSING",w);_.set(I,S)}let b=new Set,h=new Set,f=I=>{if(h.has(I)&&g("NATIVE_WORKFLOW_CYCLE_FORBIDDEN",`${t}/nodes/${I}`),!b.has(I)){b.add(I),h.add(I);for(let R of _.get(I)||[])f(R);h.delete(I)}};f(r);for(let I of[...b]){let R=o[I];if(R?.kind==="approval"||R?.kind==="handle")for(let w of ke(R))o[w]?.kind==="correction"&&b.add(w)}b.size!==n.length&&g("NATIVE_WORKFLOW_NODE_UNREACHABLE",`${t}/nodes`)}function Xt(e,t,o){o>20&&g("NATIVE_WORKFLOW_EXPRESSION_DEPTH_EXCEEDED",t);let n=N(e,t),r=D(n.op,`${t}/op`,16);if(r!=="literal"){if(r==="path"){let i=D(n.path,`${t}/path`,255);(!/^[A-Za-z][A-Za-z0-9_.-]{0,254}$/.test(i)||i.split(".").some(a=>["__proto__","constructor","prototype"].includes(a)))&&g("NATIVE_WORKFLOW_EXPRESSION_PATH_INVALID",`${t}/path`);return}if(["eq","neq","gt","gte","lt","lte","in","contains"].includes(r)){Xt(n.left,`${t}/left`,o+1),Xt(n.right,`${t}/right`,o+1);return}if(["and","or"].includes(r)){let i=k(n.values,`${t}/values`,100);i.length===0&&g("NATIVE_WORKFLOW_EXPRESSION_EMPTY",`${t}/values`),i.forEach((a,s)=>Xt(a,`${t}/values/${s}`,o+1));return}if(["not","exists"].includes(r)){Xt(n.value,`${t}/value`,o+1);return}g("NATIVE_WORKFLOW_EXPRESSION_OPERATOR_INVALID",`${t}/op`)}}function ap(e,t){W(e.schemaVersion,"openxiangda.workflow-binding/v2",`${t}/schemaVersion`),nr(e.workflowCode,`${t}/workflowCode`);let o=N(e.bindings,`${t}/bindings`);Object.keys(o).length>200&&g("NATIVE_WORKFLOW_BINDING_LIMIT_EXCEEDED",`${t}/bindings`);for(let[n,r]of Object.entries(o)){Zo(n,`${t}/bindings/${n}`);let i=N(r,`${t}/bindings/${n}`),a=gt(i);a.length&&g(a[0],`${t}/bindings/${n}`);let s=hn(i);s.length&&g(s[0],`${t}/bindings/${n}/selectedInputPath`);let d=It(i);d.length&&g(d[0],`${t}/bindings/${n}/roleCodes`);let c=D(i.provider,`${t}/bindings/${n}/provider`,64);if(["fixed_users","initiator","input_users","form_field_users","department_supervisor","supervisor_chain","app_role","app_role_in_scope","business_relation","previous_node_actor","initiator_select","application_provider"].includes(c)||g("NATIVE_WORKFLOW_BINDING_PROVIDER_INVALID",`${t}/bindings/${n}/provider`),c==="fixed_users"&&(Array.isArray(i.users)||g("NATIVE_WORKFLOW_BINDING_USERS_REQUIRED",`${t}/bindings/${n}/users`),k(i.users,`${t}/bindings/${n}/users`,200)),["input_users","form_field_users"].includes(c)&&D(i.inputPath,`${t}/bindings/${n}/inputPath`,255),["app_role","app_role_in_scope","initiator_select"].includes(c)&&i.roleCodes===void 0&&$(i.roleCode,`${t}/bindings/${n}/roleCode`),c==="department_supervisor"&&D(i.departmentIdFrom,`${t}/bindings/${n}/departmentIdFrom`,255),c==="application_provider"&&$(i.providerCode,`${t}/bindings/${n}/providerCode`),i.routing!==void 0){let l=Rt(i.routing);l.length&&g(l[0],`${t}/bindings/${n}/routing`)}}}function dp(e,t,o){let n=_t(e,t);n.length&&g(n[0],o),W(t.workflowCode,e.code,`${o}/workflowCode`);let r=N(t.bindings,`${o}/bindings`);for(let[d,c]of Object.entries(r))c.provider==="fixed_users"&&!c.users.length&&!Si(e,d)&&g("NATIVE_WORKFLOW_BINDING_USERS_REQUIRED",`${o}/bindings/${d}/users`);let i=xo(e,t);i.length&&g(i[0],o);let a=Fo(e,t);a.length&&g(a[0],o);let s=fn(e,t);s.length&&g(s[0],o);for(let[d,c]of Object.entries(N(e.nodes,`${o}/nodes`))){let l=N(c,`${o}/nodes/${d}`);["approval","handle","cc"].includes(l.kind)&&!r[l.binding]&&g("NATIVE_WORKFLOW_BINDING_REFERENCE_MISSING",`${o}/nodes/${d}/binding`)}}function cp(e,t,o){let n=N(t.routeManifest,"/contracts/routeManifest"),r=N(e.routeManifest,"/contracts/routeManifest"),i=new Map;for(let l of k(o.data?.resources,"/config/data/resources",M.resources)){let u=N(l,"/config/data/resources");i.set(String(u.code||""),u)}let a=new Set(k(r.routes,"/contracts/routeManifest/routes",M.routes).map(l=>String(N(l,"/contracts/routeManifest/routes").code||""))),s=[];for(let l of k(n.routes,"/contracts/routeManifest/routes",M.routes)){let u=N(l,"/contracts/routeManifest/routes"),p=String(u.kind||"");if(p!=="resource-records"&&p!=="resource-submit")continue;let m=String(u.resourceCode||""),E=i.get(m);E||g("NATIVE_ROUTE_MANIFEST_RESOURCE_UNKNOWN","/contracts/routeManifest/routes");let O=`user.${m}.${p==="resource-records"?"records":"submit"}`;W(String(u.code||""),O,"/contracts/routeManifest/routes/code");let y=p==="resource-records"?"read":"create",_=String(N(E.capabilities,"/config/data/resources/capabilities")[y]||"");for(let b of["desktop","mobile"]){let h=N(u[b],`/contracts/routeManifest/routes/${b}`),f=b==="mobile"?"/m/my/":"/my/",I=p==="resource-records"?`${f}${m}`:`${f}${m}/submit`;W(String(h.path||""),I,`/contracts/routeManifest/routes/${b}/path`),W(String(h.capability||""),_,`/contracts/routeManifest/routes/${b}/capability`),W(String(h.routeCode||""),`${O}.${b}`,`/contracts/routeManifest/routes/${b}/routeCode`)}(a.has(O)||s.some(b=>String(b.code)===O))&&g("NATIVE_ROUTE_MANIFEST_DUPLICATE","/contracts/routeManifest/routes/code"),s.push(u)}if(!s.length)return;r.routes=k([...r.routes,...s],"/contracts/routeManifest/routes",1e3).sort((l,u)=>Te(String(N(l,"x").code||""),String(N(u,"x").code||"")));let d=String(N(n.rootEntry,"x").code||"");if(s.find(l=>String(l.code)===d&&l.kind==="resource-records")){let l=N(n.rootEntry,"x");r.rootEntry={code:d,desktop:String(l.desktop||""),mobile:String(l.mobile||"")}}r.digest=ee({schemaVersion:r.schemaVersion,appCode:r.appCode,devicePolicy:r.devicePolicy,rootEntry:r.rootEntry,authentication:r.authentication,routes:r.routes})}function Tt(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),W(n.schemaVersion,"openxiangda.data-resource/v2",`${t}/schemaVersion`),W(n.appCode,o,`${t}/appCode`);let r=Z(n.code,`${t}/code`),i=D(n.name,`${t}/name`,255),a=N(n.schema,`${t}/schema`);C(a,["fields","ownedRowLimit"],`${t}/schema`,!0),a.ownedRowLimit!==void 0&&!Pt(a.ownedRowLimit)&&g("NATIVE_DATA_OWNED_ROW_LIMIT_INVALID",`${t}/schema/ownedRowLimit`);let s,d,c,l;try{c=fo(n.decimalReservationLifecycle,`${t}/decimalReservationLifecycle`),s=$t(a.fields,`${t}/schema/fields`),l=_i(n.uniqueKeys,s,`${t}/uniqueKeys`),d=Dr(n.invariants,s,`${t}/invariants`),ao(n.surface,s,`${t}/surface`)}catch(E){throw(E instanceof Ae||E instanceof Xe||E instanceof lt||E instanceof Kt)&&g(E.code,E.pointer),E}if(n.recordComments!==void 0){let E=N(n.recordComments,`${t}/recordComments`);C(E,["read","create"],`${t}/recordComments`);for(let A of["read","create"]){let O=E[A];(!Array.isArray(O)||O.length>20||O.some(y=>typeof y!="string"||!y.trim())||new Set(O).size!==O.length)&&g("NATIVE_RECORD_COMMENTS_POLICY_INVALID",`${t}/recordComments/${A}`)}}if(n.recordDeletion!==void 0){let E=N(n.recordDeletion,`${t}/recordDeletion`);C(E,["delete"],`${t}/recordDeletion`);let A=E.delete;(!Array.isArray(A)||A.length>20||A.some(O=>typeof O!="string"||!O.trim())||new Set(A).size!==A.length)&&g("NATIVE_RECORD_DELETION_DELETE_INVALID",`${t}/recordDeletion/delete`)}if(n.recordPrint!==void 0){let E=N(n.recordPrint,`${t}/recordPrint`);C(E,["read"],`${t}/recordPrint`);let A=E.read;(!Array.isArray(A)||A.length>20||A.some(O=>typeof O!="string"||!O.trim())||new Set(A).size!==A.length)&&g("NATIVE_RECORD_PRINT_READ_INVALID",`${t}/recordPrint/read`)}if(n.workflowHistory!==void 0){let E=N(n.workflowHistory,`${t}/workflowHistory`);C(E,["read"],`${t}/workflowHistory`);let A=E.read;(!Array.isArray(A)||A.length>20||A.some(O=>typeof O!="string"||!O.trim())||new Set(A).size!==A.length)&&g("NATIVE_WORKFLOW_HISTORY_READ_INVALID",`${t}/workflowHistory/read`)}let u=new Set(s.map(E=>E.code)),p=N(n.capabilities,`${t}/capabilities`);C(p,["read","create","update","delete"],`${t}/capabilities`);let m=N(n.fieldPolicies,`${t}/fieldPolicies`);for(let[E,A]of Object.entries(m)){!u.has(E)&&!Ze(E)&&g("NATIVE_DATA_FIELD_POLICY_FIELD_MISSING",`${t}/fieldPolicies/${E}`);let O=`${t}/fieldPolicies/${E}`,y=N(A,O);Ze(E)&&(C(y,["read"],O,!0),(!Array.isArray(y.read)||y.read.length>20||y.read.some(_=>typeof _!="string"||!_.trim())||new Set(y.read).size!==y.read.length)&&g("NATIVE_DATA_AUDIT_READ_POLICY_INVALID",`${O}/read`)),C(y,["read","create","update","mask"],O,!0),y.mask!==void 0&&!["omit","null"].includes(y.mask)&&g("NATIVE_DATA_FIELD_POLICY_MASK_INVALID",`${O}/mask`)}return{...n,code:r,name:i,schema:{fields:s,...a.ownedRowLimit!==void 0?{ownedRowLimit:a.ownedRowLimit}:{}},...n.invariants===void 0?{}:{invariants:d},...c?{decimalReservationLifecycle:c}:{},...l!==void 0?{uniqueKeys:l}:{},capabilities:p,fieldPolicies:m}}function Md(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 hd(e,t,o,n){let r=e.toString("utf8"),i;try{i=JSON.parse(r)}catch{g(o,t)}let a=N(i,t);return oe(a)!==r&&g(n,t),a}function zo(e,t,o){let n=0,r=(i,a,s)=>{if(n+=1,n>o&&g("NATIVE_ARTIFACT_NODE_LIMIT_EXCEEDED",a),s>_f&&g("NATIVE_ARTIFACT_DEPTH_LIMIT_EXCEEDED",a),typeof i=="string"){Buffer.byteLength(i)>Yi&&g("NATIVE_ARTIFACT_STRING_LIMIT_EXCEEDED",a);return}if(Array.isArray(i)){i.forEach((d,c)=>r(d,`${a}/${c}`,s+1));return}if(!(!i||typeof i!="object"))for(let[d,c]of Object.entries(i))["__proto__","prototype","constructor"].includes(d)&&g("NATIVE_ARTIFACT_DANGEROUS_KEY",`${a}/${d}`),lp(d)&&g("NATIVE_ARTIFACT_RUNTIME_FIELD_FORBIDDEN",`${a}/${d}`),r(c,`${a}/${d}`,s+1)};r(e,t,0)}function lp(e){return["environmentKey","environmentId","secretValue","ciphertext","oauthClient","oauthClientId","oauthClientSecret","signingSecret","kubernetesNamespace","nodePort","productionUrl"].includes(e)}function Yt(e){return{value:e,digest:ee(e)}}function Nd(e,t,o,n){typeof e!="string"&&!Buffer.isBuffer(e)&&!(e instanceof Uint8Array)&&g("NATIVE_ARTIFACT_BYTES_REQUIRED",o);let r=Buffer.isBuffer(e)?e:Buffer.from(e);return r.byteLength===0&&g("NATIVE_ARTIFACT_EMPTY",o),r.byteLength>t&&g(n,o),r}function Rd(e,t,o,n){let r=Qo.createHash("sha256").update(e).digest("hex");Qo.timingSafeEqual(Buffer.from(r),Buffer.from(t))||g(n,o)}function N(e,t){return(!e||typeof e!="object"||Array.isArray(e))&&g("NATIVE_OBJECT_REQUIRED",t),e}function k(e,t,o){return Array.isArray(e)||g("NATIVE_ARRAY_REQUIRED",t),e.length>o&&g("NATIVE_ARRAY_LIMIT_EXCEEDED",t),e}function V(e,t,o){let n=k(e,t,o).map((r,i)=>D(r,`${t}/${i}`,255));return new Set(n).size!==n.length&&g("NATIVE_ARRAY_DUPLICATE",t),n}function D(e,t,o){return(typeof e!="string"||e.length===0||e.length>o)&&g("NATIVE_STRING_INVALID",t),e}function ns(e,t,o){return(typeof e!="string"||e.length>o)&&g("NATIVE_STRING_INVALID",t),e}function $(e,t){let o=D(e,t,128);return Qu.test(o)||g("NATIVE_CODE_INVALID",t),o}function Z(e,t){let o=D(e,t,64);return tf.test(o)||g("NATIVE_RESOURCE_CODE_INVALID",t),o}function z(e,t){let o=D(e,t,63);return nf.test(o)||g("NATIVE_FIELD_CODE_INVALID",t),o}function nr(e,t){let o=D(e,t,128);return sf.test(o)||g("NATIVE_WORKFLOW_CODE_INVALID",t),o}function Zo(e,t){let o=D(e,t,128);return af.test(o)||g("NATIVE_WORKFLOW_BINDING_CODE_INVALID",t),o}function ye(e,t,o){let n=D(e,t,255);return Zu.test(n)||g("NATIVE_CAPABILITY_CODE_INVALID",t),!n.startsWith(`app:${o}:`)&&!Md(o).some(r=>r.code===n)&&g("NATIVE_CAPABILITY_APP_MISMATCH",t),n}function Pe(e,t){let o=D(e,t,2048);return(!o.startsWith("/")||o.startsWith("//")||o.includes("..")||o.includes("?")||o.includes("#"))&&g("NATIVE_ABSOLUTE_PATH_INVALID",t),o}function Zt(e,t){return(!Number.isInteger(e)||Number(e)<1)&&g("NATIVE_POSITIVE_INTEGER_REQUIRED",t),Number(e)}function ce(e,t,o,n){return(!Number.isInteger(e)||Number(e)<o||Number(e)>n)&&g("NATIVE_INTEGER_OUT_OF_RANGE",t),Number(e)}function Qt(e,t){return typeof e!="boolean"&&g("NATIVE_BOOLEAN_REQUIRED",t),e}function Zi(e,t){let o=D(e,t,64).toLowerCase();return Yu.test(o)||g("NATIVE_DIGEST_INVALID",t),o}function W(e,t,o){e!==t&&g("NATIVE_VALUE_MISMATCH",o)}function C(e,t,o,n=!1){let r=new Set([...t,...Array.isArray(n)?n:[]]);for(let i of Object.keys(e))r.has(i)||g("NATIVE_PROPERTY_UNKNOWN",`${o}/${i}`);if(n!==!0)for(let i of t)Object.prototype.hasOwnProperty.call(e,i)||g("NATIVE_PROPERTY_REQUIRED",`${o}/${i}`)}function re(e,t){return[...e].sort((o,n)=>Te(t(o),t(n)))}function B(e){return[...new Set(e)].sort(Te)}function wd(e){return[...new Set(e)].sort((t,o)=>t-o)}function Te(e,t){return e===t?0:e<t?-1:1}function Bd(e){return!e||typeof e!="object"||Object.isFrozen(e)||(Object.freeze(e),Object.values(e).forEach(t=>Bd(t))),e}function Qi(e,t,o){if(Hi(e,t))return o;if(Array.isArray(e)&&Array.isArray(t)){let n=Math.max(e.length,t.length);for(let r=0;r<n;r+=1)if(!Hi(e[r],t[r]))return Qi(e[r],t[r],`${o}/${r}`)}if(e&&t&&typeof e=="object"&&typeof t=="object"&&!Array.isArray(e)&&!Array.isArray(t)){let n=B([...Object.keys(e),...Object.keys(t)]);for(let r of n){let i=e[r],a=t[r];if(!Hi(i,a))return Qi(i,a,`${o}/${r}`)}}return o}function Hi(e,t){return e===void 0||t===void 0?e===t:oe(e)===oe(t)}function g(e,t,o={}){throw new Ho(e,t,o)}var up="openxiangda.workflow-step-data-command/v1",Kd="openxiangda.workflow-step-data-resolution/v1";function fp(e,t,o=!1){let n=s=>!!s&&typeof s=="object"&&!Array.isArray(s),r=s=>typeof s=="string"&&/^[a-f0-9]{8}(-[a-f0-9]{4}){3}-[a-f0-9]{12}$/i.test(s),i=()=>{throw new Error("WORKFLOW_STEP_DATA_RESPONSE_INVALID")};if(!n(e)||e.schemaVersion!==Kd||e.executionId!==t||Object.keys(e).some(s=>!["schemaVersion","executionId","outcome","transaction"].includes(s)))return i();if(e.outcome==="not_observed"&&!Object.hasOwn(e,"transaction")&&!o)return e;let a=e.transaction;if(e.outcome!=="committed"||!n(a)||a.schemaVersion!=="openxiangda.data-transaction-result/v2"||a.idempotencyKey!==`workflow-step:${t}`||typeof a.replayed!="boolean"||!Array.isArray(a.items)||a.items.length<1||a.items.length>Rr||a.evaluatedAt!==void 0&&(typeof a.evaluatedAt!="string"||!Number.isFinite(Date.parse(a.evaluatedAt))))return i();for(let[s,d]of a.items.entries()){if(!n(d)||d.index!==s)return i();if(d.operation==="emitEvent"){if(typeof d.eventType!="string"||!d.eventType||!r(d.eventId))return i()}else if(!["create","update","delete","increment"].includes(d.operation)||typeof d.resourceCode!="string"||!d.resourceCode||!r(d.id)||!Number.isSafeInteger(d.revision)||d.revision<1)return i()}return e}var gA=50,_A=131072,or=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 pp(e){let t=u=>{throw new or(u)},o=(u,p)=>((!u||typeof u!="object"||Array.isArray(u))&&t(p),u),n=(u,p,m)=>{for(let E of Object.keys(u))p.includes(E)||t(`${m}/${E}`)},r=(u,p,m)=>((typeof u!="string"||!u.trim()||u.length>p)&&t(m),u),i=(u,p)=>{let m=r(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(m)||t(p),m.toLowerCase()},a=o(e,""),s;try{s=new TextEncoder().encode(JSON.stringify(a)).byteLength}catch{t("")}s>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 d=new Set,c=new Set,l;for(let[u,p]of a.items.entries()){let m=`/items/${u}`,E=o(p,m);["create","update","revoke"].includes(String(E.operation))||t(`${m}/operation`),l??=E.operation,l!==E.operation&&t(`${m}/operation`),n(E,["operation","operationId","reason",...l==="create"?["userId","roleCode"]:["membershipId","expectedRevision"],...l!=="revoke"?["scopeGrants","validFrom","validTo"]:[]],m);let A=i(E.operationId,`${m}/operationId`);d.has(A)&&t(`${m}/operationId`),d.add(A),r(E.reason,1e3,`${m}/reason`);let O;if(l==="create"){let y=r(E.userId,255,`${m}/userId`),_=r(E.roleCode,128,`${m}/roleCode`);/^[a-z][a-z0-9]*(?:[._-][a-z0-9]+)*$/.test(_)||t(`${m}/roleCode`),O=JSON.stringify([y,_])}else O=i(E.membershipId,`${m}/membershipId`),(!Number.isSafeInteger(E.expectedRevision)||Number(E.expectedRevision)<1)&&t(`${m}/expectedRevision`);c.has(O)&&t(m),c.add(O),E.scopeGrants!==void 0&&(!Array.isArray(E.scopeGrants)||E.scopeGrants.length>100)&&t(`${m}/scopeGrants`);for(let y of["validFrom","validTo"])E[y]!==void 0&&E[y]!==null&&r(E[y],64,`${m}/${y}`)}}var Jd="openxiangda.workflow-delegation-administration/v2",Hd="openxiangda.workflow-delegation-mutation/v2",qd="openxiangda.workflow-delegation-preview/v2";var Fn={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}$"},be={type:"string",minLength:1,maxLength:255},Ct={type:"string",format:"date-time"},en={type:"integer",minimum:1},mp={anyOf:[Ct,{type:"null"}]},os={anyOf:[be,{type:"null"}]},Yd={anyOf:[{type:"string",pattern:"^[A-Za-z0-9._:-]{1,128}$"},{type:"null"}]},rr={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}$"},Xd={const:"future-assignments-only"},rs={schemaVersion:{const:Jd},id:Fn,appCode:be,environmentKey:be,workflowCode:os,nodeId:Yd,delegatorUserId:be,delegateUserId:be,delegatorRoleSubjectKey:rr,delegateRoleSubjectKey:rr,validFrom:Ct,validTo:Ct,status:{enum:["active","revoked","expired"]},reason:{type:"string",minLength:1,maxLength:4e3},createdBy:be,createdAt:Ct,revokedAt:mp,revision:en,roleCode:be,roleName:be,delegatorDisplayName:be,delegateDisplayName:be,delegatorRoleSubjectRevision:en,delegateRoleSubjectRevision:en,effectiveState:{enum:["active","scheduled","expired","revoked","ineligible"]},evaluatedAt:Ct,issues:{type:"array",maxItems:20,uniqueItems:!0,items:be},canRevoke:{type:"boolean"},revokedBy:os,revokeReason:{type:["string","null"],maxLength:4e3},taskPolicy:Xd},is={type:"object",additionalProperties:!1,required:Object.keys(rs).filter(e=>e!=="nodeId"),properties:rs},EA={$id:Jd,...is},Zd={schemaVersion:{const:Hd},operationId:Fn,environmentKey:{enum:["preproduction","production"]},reason:{type:"string",minLength:1,maxLength:2e3,pattern:"\\S"}},Gd={...Zd,operation:{const:"create"},workflowCode:os,nodeId:Yd,delegatorRoleSubjectKey:rr,expectedDelegatorRevision:en,delegateUserId:be,delegateRoleSubjectKey:rr,expectedDelegateRevision:en,validFrom:Ct,validTo:Ct},zd={...Zd,operation:{const:"revoke"},delegationId:Fn,expectedRevision:en},Qd={$id:Hd,type:"object",oneOf:[{type:"object",additionalProperties:!1,required:Object.keys(Gd).filter(e=>e!=="nodeId"),properties:Gd,if:{required:["nodeId"],properties:{nodeId:{type:"string"}}},then:{properties:{workflowCode:be}}},{type:"object",additionalProperties:!1,required:Object.keys(zd),properties:zd}]},gp={type:"string",pattern:"^[0-9a-f]{64}$"},IA={$id:qd,type:"object",additionalProperties:!1,required:["schemaVersion","operationId","operation","requestDigest","before","after","taskPolicy"],properties:{schemaVersion:{const:qd},operationId:Fn,operation:{enum:["create","revoke"]},requestDigest:gp,before:{anyOf:[is,{type:"null"}]},after:{...is,properties:{...rs,id:{anyOf:[Fn,{type:"null"}]}}},taskPolicy:Xd}};function _p(e){return e===void 0?"":`
9
+ ${ee(e)}`}function Ap(e,t){let o=e.handlers.find(n=>n.code===t);return ee(o?.workflowStep?o:e)}var Ep="openxiangda.data-business-command/v1",ec="openxiangda.data-business-command-resolution/v1",hA=65536;function Ip(e){let t=0,o=0,n=new Set,r=new TextEncoder,i=()=>{throw new Error("OPENXIANGDA_DATA_COMMAND_INTENT_INVALID")},a=d=>(o+=r.encode(d).byteLength,o>65536&&i(),d),s=(d,c)=>{if(++t>1e4||c>32)return i();if(d===null||typeof d=="string"||typeof d=="boolean")return a(JSON.stringify(d));if(typeof d=="number")return Number.isFinite(d)?a(JSON.stringify(d)):i();if(!d||typeof d!="object"||n.has(d)||Object.getOwnPropertySymbols(d).length)return i();n.add(d);let l;if(Array.isArray(d))return Object.keys(d).length!==d.length?i():(l=a("[")+d.map((p,m)=>(m?a(","):"")+s(p,c+1)).join("")+a("]"),n.delete(d),l);let u=Object.getPrototypeOf(d);return u!==Object.prototype&&u!==null?i():(l=a("{")+Object.keys(d).sort().map((p,m)=>(m?a(","):"")+a(JSON.stringify(p))+a(":")+s(d[p],c+1)).join("")+a("}"),n.delete(d),l)};return!e||typeof e!="object"||Array.isArray(e)?i():s(e,0)}function yp(e,t,o=!1){let n=e,r=()=>{throw new Error("OPENXIANGDA_DATA_COMMAND_RESPONSE_INVALID")};if(!n||typeof n!="object"||n.schemaVersion!==ec)return r();for(let d of["appCode","environmentKey","operationCode","idempotencyKey","intentDigest"])if(n[d]!==t[d])return r();if(typeof n.observedAt!="string"||!Number.isFinite(Date.parse(n.observedAt)))return r();if(n.outcome==="not_observed"&&n.receipt===null&&!o)return n;if(n.outcome!=="committed"||!n.receipt)return r();let i=n.receipt,a=d=>typeof d=="string"&&/^[a-f0-9]{8}(-[a-f0-9]{4}){3}-[a-f0-9]{12}$/i.test(d);if(!a(i.id)||!a(i.appVersionId)||!Number.isSafeInteger(i.environmentHeadRevision)||i.environmentHeadRevision<1||typeof i.completedAt!="string"||!Number.isFinite(Date.parse(i.completedAt)))return r();let s=i.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 r();for(let[d,c]of s.items.entries()){if(!c||c.index!==d)return r();if(c.operation==="emitEvent"){if(!a(c.eventId)||typeof c.eventType!="string"||!c.eventType)return r()}else if(!["create","update","delete","increment"].includes(c.operation)||!a(c.id)||typeof c.resourceCode!="string"||!c.resourceCode||!Number.isSafeInteger(c.revision)||c.revision<1)return r()}return n}var tc=/^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$/,ir=e=>!!e&&typeof e=="object"&&!Array.isArray(e),Vn=(e,t)=>typeof e=="string"&&e.length<=t&&e.trim().length>0&&e===e.trim(),ss=(e,t,o=[])=>t.every(n=>Object.hasOwn(e,n))&&Object.keys(e).every(n=>[...t,...o].includes(n));function bp(e){if(!ir(e)||!ss(e,["kind","errorCode","anyOf"],["allowAppSuperAdmin"])||e.kind!=="actor-authority"||!Vn(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(!ir(o)||!ss(o,["roleCode"],["scope"])||!Vn(o.roleCode,100)||!tc.test(o.roleCode))return!1;if(Object.hasOwn(o,"scope")){let i=o.scope;if(!ir(i)||!ss(i,["dimensionCode","value","operation"])||!Vn(i.dimensionCode,100)||!tc.test(i.dimensionCode)||!Vn(i.value,255)||!Vn(i.operation,64)||!/^[A-Za-z0-9*][A-Za-z0-9*._:-]*$/.test(i.operation))return!1}let n=o.scope,r=JSON.stringify([o.roleCode,n?.dimensionCode,n?.value,n?.operation]);return t.has(r)?!1:(t.add(r),!0)})}function Op(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 r=e.scope;return n.some(i=>ir(i)&&i.dimensionCode===r.dimensionCode&&Array.isArray(i.values)&&i.values.includes(r.value)&&(i.operations===void 0||i.operations===null||Array.isArray(i.operations)&&(!i.operations.length||i.operations.includes("*")||i.operations.includes(r.operation))))}var wA=500,hp=/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,as=e=>!!e&&typeof e=="object"&&!Array.isArray(e);function Np(e){if(!as(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")&&!as(e.where))return!1;let t=new Set;return e.records.every(o=>{if(!as(o)||Object.keys(o).length!==2||typeof o.id!="string"||!hp.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)})}var nc="openxiangda.development-configuration/v2",ds="openxiangda.development-configuration-manifest/v1",Rp="application.development-configuration",wp="/openxiangda-api/v2/applications/{appCode}/dev-sessions/configuration",sr=class extends Error{constructor(o,n){super(o);this.code=o;this.pointer=n;this.data={pointer:n}}code;pointer;status=400;data};function rt(e){throw new sr("OPENXIANGDA_CONNECTED_DEV_CONFIGURATION_INVALID",e)}function oc(e){(!e||typeof e!="object"||Array.isArray(e))&&rt("/packageManifest");let t=e,o=["schemaVersion","appCode","version","configDigest","contractDigest","source","toolchain","artifacts"];(Object.keys(t).some(r=>!o.includes(r))||t.schemaVersion!==ds||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}`)&&rt("/packageManifest"),(!t.source||typeof t.source!="object"||Array.isArray(t.source)||Object.keys(t.source).some(r=>!["repository","commit","dirty"].includes(r))||![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")&&rt("/packageManifest/source"),(!t.toolchain||Object.keys(t.toolchain).some(r=>!["version","contractVersion"].includes(r))||typeof t.toolchain.version!="string"||!/^[A-Za-z0-9][A-Za-z0-9.+_-]{0,127}$/.test(t.toolchain.version)||t.toolchain.contractVersion!==zi)&&rt("/packageManifest/toolchain");let n=[{kind:"config",digest:t.configDigest,mediaType:"application/json"},{kind:"contracts",digest:t.contractDigest,mediaType:"application/json"}];return oe(t.artifacts)!==oe(n)&&rt("/packageManifest/artifacts"),t}function Tp(e,t){return oc({schemaVersion:ds,appCode:e,version:`development-${t.configDigest}`,configDigest:t.configDigest,contractDigest:t.contractDigest,source:{...t.source},toolchain:{version:t.toolchainVersion,contractVersion:zi},artifacts:[{kind:"config",digest:t.configDigest,mediaType:"application/json"},{kind:"contracts",digest:t.contractDigest,mediaType:"application/json"}]})}function Cp(e,t,o){return(!Number.isSafeInteger(t)||t<1)&&rt("/expectedHeadRevision"),`development:${ee({manifest:e,expectedHeadRevision:t,...o?{actorUserId:o}:{}})}`}function Sp(e,t,o){(!e||typeof e!="object"||Array.isArray(e))&&rt("/result");let n=e,r=["schemaVersion","appCode","environmentKey","environmentId","appVersionId","configurationRunId","headRevision","publishedAppVersionId","selection","configDigest","contractDigest","reused","runtimeArtifactsDeployed","backendEventsAvailable"],i=/^[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(a=>!r.includes(a))||n.schemaVersion!==nc||n.appCode!==t||n.environmentKey!=="preproduction"||n.configDigest!==o.configDigest||n.contractDigest!==o.contractDigest||!i.test(n.environmentId)||!i.test(n.appVersionId)||!i.test(n.publishedAppVersionId)||n.appVersionId===n.publishedAppVersionId||n.selection!=="session"||!i.test(n.configurationRunId)||typeof n.reused!="boolean"||!Number.isSafeInteger(n.headRevision)||n.headRevision<1||n.headRevision!==o.expectedHeadRevision||n.runtimeArtifactsDeployed!==!1||n.backendEventsAvailable!==!1)&&rt("/result"),n}var Dp="application.development-backend-events",kp="openxiangda.development-backend/v1",Lp="application.development-backend-invocations",rc="openxiangda.development-backend-invocation/v1",kA=262144,LA=1048576,vA=131072,PA=131072,$A=8,FA=45,vp=/^\/__platform\/events\/[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/;function Pp(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 $p(e){return`connected-development:${e}`}function ic(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 sc(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("/"),r=String(o.path||"").split("/");return n.length!==r.length?!1:n.every((i,a)=>{if(a===0)return r[a]==="";let s;try{s=decodeURIComponent(i)}catch{return!1}return!s||[".",".."].includes(s)||/[\/\\\s\u0000-\u001f\u007f]/.test(s)?!1:/^:[A-Za-z][A-Za-z0-9_]*$/.test(r[a]||"")||i===r[a]})}var Fp=/^(?: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|dev-selection))$/i,Vp=/^(?:content-type|content-disposition|cache-control|etag|last-modified|retry-after)$/i;function ac(e,t=!1){if(!e||typeof e!="object"||Array.isArray(e))return!1;let o=Object.entries(e),n=o.map(([r])=>r.toLowerCase());return o.length<=24&&new Set(n).size===n.length&&o.every(([r,i])=>(t?Vp:Fp).test(r)&&typeof i=="string"&&i.length<=8192&&!/[\r\n\u0000]/.test(i))}function Wp(e){let t=ic(e.body);return e.schemaVersion===rc&&!!e.operation&&typeof e.operation.code=="string"&&e.operation.code.length<=128&&e.operation.code.length>0&&sc(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&&ac(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 xp=Object.freeze({version:"rich-text-html/1",maxBytes:1048576,maxNodes:25e3,maxDepth:128,maxImages:20,imageMaxBytes:10485760,maxVideos:4,videoMaxBytes:104857600,imageTypes:["image/png","image/jpeg","image/webp","image/gif"],videoTypes:["video/mp4","video/webm"],fonts:["Arial","Verdana","Tahoma","Times New Roman","Courier New","\u5B8B\u4F53","\u5FAE\u8F6F\u96C5\u9ED1","SimSun","Microsoft YaHei","sans-serif","serif","monospace"]});function dc(e,t,o){let n=e.nodes,r=n[t],i=n[o];if(!r||!["approval","handle"].includes(r.kind)||!i||!["approval","handle","correction"].includes(i.kind)||t===o)return{allowed:!1,reason:"\u4E0D\u662F\u53EF\u9000\u56DE\u7684\u529E\u7406\u8282\u70B9"};let a=Le(e).regions;for(let c of a){let l=c.branches.find(p=>p.nodeIds.includes(t)),u=c.branches.find(p=>p.nodeIds.includes(o));if(l?.id!==u?.id&&(l||u))return{allowed:!1,reason:"\u5E76\u884C\u5206\u652F\u5185\u53EA\u80FD\u9000\u56DE\u672C\u5206\u652F\u7684\u8282\u70B9\uFF0C\u4E0D\u80FD\u8DE8\u8D8A\u6C47\u5408\u8FB9\u754C"}}let s=[o],d=new Set;for(;s.length;){let c=s.shift();if(c===t)return{allowed:!0};if(d.has(c))continue;d.add(c);let l=n[c];l&&s.push(...gn(l).filter(u=>!d.has(u)))}return{allowed:!1,reason:"\u8BE5\u8282\u70B9\u4E0D\u5728\u672C\u8282\u70B9\u4E4B\u524D\u7684\u53EF\u8FBE\u6D41\u8F6C\u8DEF\u5F84\u4E0A"}}function cs(e){return Object.values(e.nodes||{}).flatMap(t=>t.kind==="approval"||t.kind==="handle"?ke(t).filter(o=>!dc(e,t.id,o).allowed).map(o=>`WORKFLOW_RETURN_TARGET_UNREACHABLE:${t.id}:${o}`):[])}var tn=e=>`canvas_${e}`,ls=(e,t)=>[...e==="approval"?["approve","reject"]:["complete"],...t?["save_form"]:[],"return","transfer","delegate",...e==="approval"?["add_assignee"]:[]];function Wn(e,t,o="",n=""){let r=new Map;for(let i of[...Object.values(e.nodes),...e.authoring?.businessSteps||[]])!("handler"in i)||te(i)||r.set(`${i.handler.code}@${i.handler.version}`,{title:i.title,handler:i.handler,inputSchema:i.inputSchema,outputSchema:i.outputSchema});return{appVersionId:o,digest:n,taskPages:e.taskPages||{},steps:[...r.values()],peopleSources:t.bindings}}function cc(e,t,o,n,r,i={},a=n){let s=tn(e);if(t==="cc")return{id:e,kind:t,title:o,next:n,binding:s,emptyPolicy:"block",notify:!0,administration:{assigneeProviders:["fixed_users","app_role"]}};let d=r?i[r]:void 0,c=ls(t,!!d),l={id:e,title:o,binding:s,mode:"single",allowedOperations:c,requiredOperations:[t==="approval"?"approve":"complete"],administration:{modes:["single","any","all","sequence"],assigneeProviders:["fixed_users","app_role"],operations:c},fieldPolicy:{default:"readonly",fields:Object.fromEntries((d?.fields||[]).map(u=>[u.code,u.readonly?"readonly":u.required?"edit_required":"edit"]))},operationPolicy:{...t==="approval"?{approve:{opinion:"optional",minimumOpinion:"optional"},reject:{opinion:"required",minimumOpinion:"required"}}:{complete:{opinion:"optional",minimumOpinion:"optional"}},return:{opinion:"required",minimumOpinion:"required"},transfer:{opinion:"required",minimumOpinion:"required"},delegate:{opinion:"required",minimumOpinion:"required"},...t==="approval"?{add_assignee:{opinion:"required",minimumOpinion:"required"}}:{}},...d?{taskPageCode:r}:{}};return t==="approval"?{...l,kind:t,onApprove:n,onReject:a}:{...l,kind:t,next:n}}var ar=(e,t)=>{let o=n=>Array.isArray(n)?n.map(o):n&&typeof n=="object"?Object.fromEntries(Object.keys(n).sort().filter(r=>n[r]!==void 0).map(r=>[r,o(n[r])])):n;return JSON.stringify(o(e))===JSON.stringify(o(t))};function us(e,t){if(!["approval","handle","cc"].includes(e.kind)||!("binding"in e)||e.binding!==tn(e.id))return["WORKFLOW_DESIGNER_CANVAS_BINDING_REQUIRED"];if(e.kind==="cc")return ar(e.administration,{assigneeProviders:["fixed_users","app_role"]})?[]:["WORKFLOW_DESIGNER_CODE_OWNED:administration"];if(e.kind!=="approval"&&e.kind!=="handle")return[];let o=cc(e.id,e.kind,e.title,"",e.taskPageCode,t.taskPages),n=[];for(let a of["administration","requiredOperations"])ar(e[a],o[a])||n.push(`WORKFLOW_DESIGNER_CODE_OWNED:${e.id}.${a}`);e.taskPageCode&&!t.taskPages[e.taskPageCode]&&n.push(`WORKFLOW_DESIGNER_PAGE_UNRELEASED:${e.id}`);let r=o.fieldPolicy;e.fieldPolicy?.default&&e.fieldPolicy.default!=="readonly"&&n.push(`WORKFLOW_DESIGNER_FIELD_CEILING:${e.id}`);for(let[a,s]of Object.entries(e.fieldPolicy?.fields||{}))(!(a in r.fields)||!["readonly","edit","edit_required"].includes(s)||["edit","edit_required"].includes(s)&&r.fields[a]==="readonly")&&n.push(`WORKFLOW_DESIGNER_FIELD_CEILING:${e.id}.${a}`);let i=ls(e.kind,!!e.taskPageCode);(e.allowedOperations||i).some(a=>!i.includes(a))&&n.push(`WORKFLOW_DESIGNER_OPERATION_NOT_ALLOWED:${e.id}`);for(let[a,s]of Object.entries(e.operationPolicy||{})){let d=o.operationPolicy?.[a];(!i.includes(a)||!ar(s.minimumOpinion,d?.minimumOpinion)||["none","optional","required"].indexOf(nt(a,s))<["none","optional","required"].indexOf(Ot(a,d)))&&n.push(`WORKFLOW_DESIGNER_OPINION_MINIMUM:${e.id}.${a}`)}return n}function fs(e,t,o=!1){if(Object.values(t.peopleSources).some(r=>ar(r,e)))return[];let n=Object.keys(e);if(e.provider==="fixed_users"&&n.every(r=>["provider","users"].includes(r))&&Array.isArray(e.users)&&e.users.length<=200&&(o||e.users.length>0)&&new Set(e.users).size===e.users.length&&e.users.every(r=>typeof r=="string"&&!!r.trim()&&r.length<=255))return[];if(e.provider==="app_role"&&n.every(r=>["provider","roleCode","roleCodes"].includes(r))){let r=e.roleCodes||(e.roleCode?[e.roleCode]:[]);if(!(e.roleCode&&e.roleCodes)&&(o||r.length>0)&&r.length<=8&&new Set(r).size===r.length&&r.every(i=>/^[a-z][a-z0-9_-]{0,127}$/.test(i)))return[]}return["WORKFLOW_DESIGNER_BINDING_UNRELEASED"]}function jp(e,t,o){return{...t,bindings:Object.fromEntries(Object.entries(t.bindings).filter(([n])=>Object.hasOwn(o.bindings,n)||!n.startsWith("canvas_")||Object.values(e.nodes).some(r=>"binding"in r&&r.binding===n)))}}var me=e=>!!e&&typeof e=="object"&&!Array.isArray(e),dr=e=>Array.isArray(e)?e.map(dr):me(e)?Object.fromEntries(Object.keys(e).sort().map(t=>[t,dr(e[t])])):e,Oe=(e,t)=>JSON.stringify(dr(e))===JSON.stringify(dr(t));function xn(e){return e.kind==="approval"?[e.onApprove,e.onReject]:e.kind==="parallel"?[...(e.branches||[]).map(t=>t.target),e.join]:e.kind==="condition"?[...(e.branches||[]).map(t=>t.target),e.otherwise]:"next"in e?[e.next]:[]}function ps(e,t,o,n,r={}){let i=[...pn(t),..._t(t,n)];if(!me(t)||!me(t.nodes)||!me(n?.bindings))return["WORKFLOW_DESIGNER_DOCUMENT_INVALID"];let a=new Set(["title","startAt","nodes","readability"]);for(let c of new Set([...Object.keys(e),...Object.keys(t)]))!a.has(c)&&!Oe(e[c],t[c])&&i.push(`WORKFLOW_DESIGNER_CODE_OWNED:${c}`);(o.workflowCode!==n.workflowCode||o.schemaVersion!==n.schemaVersion)&&i.push("WORKFLOW_DESIGNER_BINDING_IDENTITY");let s=r.catalog||Wn(e,o),d=s.steps;for(let[c,l]of Object.entries(t.nodes)){if(!me(l)||l.id!==c||!["approval","handle","condition","cc","action","correction","end","parallel","join"].includes(l.kind)){i.push(`WORKFLOW_DESIGNER_NODE_INVALID:${c}`);continue}"taskPageCode"in l&&l.taskPageCode&&!s.taskPages[l.taskPageCode]&&i.push(`WORKFLOW_DESIGNER_PAGE_UNRELEASED:${c}`),l.kind==="action"&&!te(l)&&!d.some(p=>Oe(p.handler,l.handler)&&Oe(p.inputSchema,l.inputSchema)&&Oe(p.outputSchema,l.outputSchema))&&i.push(`WORKFLOW_DESIGNER_STEP_UNRELEASED:${c}`),["approval","handle"].includes(l.kind)&&"allowedOperations"in l&&l.allowedOperations&&(!Array.isArray(l.allowedOperations)||!l.allowedOperations.includes(l.kind==="handle"?"complete":"approve"))&&i.push(`WORKFLOW_DESIGNER_REQUIRED_ACTION:${c}.approve`);let u=e.nodes[c]||(l.kind==="approval"||l.kind==="handle"?Object.values(e.nodes).find(p=>{if(p.kind!==l.kind||!["approval","handle"].includes(p.kind)||!["fieldPolicy","administration","requiredOperations","taskPageCode"].every(A=>Oe(p[A],l[A])))return!1;let m=p;if(l.mode!==m.mode&&!m.administration?.modes?.includes(l.mode))return!1;let E=["none","optional","required"];return Object.entries(m.operationPolicy||{}).every(([A,O])=>{let y=l.operationPolicy?.[A];return Oe(O?.minimumOpinion,y?.minimumOpinion)&&E.indexOf(nt(A,y))>=E.indexOf(Ot(A,O))})}):void 0);if(!u&&["approval","handle","cc"].includes(l.kind)&&("binding"in l&&l.binding!==tn(c)?i.push(`WORKFLOW_DESIGNER_APPROVAL_TEMPLATE_REQUIRED:${c}`):i.push(...us(l,s).map(p=>`${p}:${c}`))),(u?.kind==="approval"||u?.kind==="handle")&&(l.kind==="approval"||l.kind==="handle")){l.mode!==u.mode&&!u.administration?.modes?.includes(l.mode)&&i.push(`WORKFLOW_DESIGNER_MODE_NOT_ALLOWED:${c}`);for(let p of["requiredOperations","fieldPolicy","administration"])Oe(u[p],l[p])||i.push(`WORKFLOW_DESIGNER_CODE_OWNED:${c}.${p}`);for(let p of u.requiredOperations||[])l.allowedOperations&&!l.allowedOperations.includes(p)&&i.push(`WORKFLOW_DESIGNER_REQUIRED_ACTION:${c}.${p}`);for(let[p,m]of Object.entries(u.operationPolicy||{})){let E=l.operationPolicy?.[p],A=["none","optional","required"];(!Oe(m?.minimumOpinion,E?.minimumOpinion)||A.indexOf(nt(p,E))<A.indexOf(Ot(p,m)))&&i.push(`WORKFLOW_DESIGNER_CODE_OWNED:${c}.${p}.minimumOpinion`)}}"binding"in l&&!n.bindings[l.binding]&&i.push(`WORKFLOW_DESIGNER_BINDING_MISSING:${c}`)}Oe(e.readability?.logic,t.readability?.logic)||i.push("WORKFLOW_DESIGNER_CODE_OWNED:readability.logic");for(let[c,l]of Object.entries(n.bindings)){let u=o.bindings[c],p=Object.values(t.nodes).find(m=>"binding"in m&&m.binding===c&&c===tn(m.id));!u&&p?i.push(...fs(l,s,r.allowIncomplete).map(m=>`${m}:${c}`)):!u&&!Object.values(o.bindings).some(m=>Oe(m,l))&&i.push(`WORKFLOW_DESIGNER_BINDING_UNRELEASED:${c}`),u&&!Oe(u,l)&&i.push(`WORKFLOW_DESIGNER_BINDING_CODE_OWNED:${c}`)}return i.push(...cr(t)),[...new Set(i)]}function uc(e,t){if(t.type==="insert_parallel"){if(e.nodes[t.joinId]||t.joinId===t.id||t.branches.length<2||t.branches.length>8)throw new Error("WORKFLOW_DESIGNER_PARALLEL_INSERT_INVALID");let r=uc(e,{type:"insert",from:t.from,target:t.target,node:{id:t.id,kind:"parallel",title:t.title,join:t.joinId,branches:t.branches.map(i=>({...i,target:t.joinId}))},...t.edge===void 0?{}:{edge:t.edge}});return r.nodes[t.joinId]={id:t.joinId,kind:"join",title:"\u5168\u90E8\u5B8C\u6210\u540E\u7EE7\u7EED",parallel:t.id,next:t.target},r}let o=structuredClone(e),n=(r,i,a)=>{if(r.kind==="approval")r.onApprove===i&&(r.onApprove=a),r.onReject===i&&(r.onReject=a);else if(r.kind==="condition"){for(let s of r.branches)s.target===i&&(s.target=a);r.otherwise===i&&(r.otherwise=a)}else if(r.kind==="parallel")for(let s of r.branches)s.target===i&&(s.target=a);else"next"in r&&r.next===i&&(r.next=a)};if(t.type==="insert"){let r=o.nodes[t.from];if(!r||o.nodes[t.node.id]||!xn(r).includes(t.target)||!o.nodes[t.target])throw new Error("WORKFLOW_DESIGNER_INSERT_INVALID");if(o.nodes[t.node.id]=structuredClone(t.node),r.kind==="approval"){let i=t.edge==="reject"?"onReject":"onApprove";if(r[i]!==t.target)throw new Error("WORKFLOW_DESIGNER_INSERT_EDGE_INVALID");r[i]=t.node.id}else if(r.kind==="parallel"){if(typeof t.edge!="number"||r.branches[t.edge]?.target!==t.target)throw new Error("WORKFLOW_DESIGNER_INSERT_EDGE_INVALID");r.branches[t.edge].target=t.node.id}else if(r.kind==="condition")if(typeof t.edge=="number"&&r.branches[t.edge]?.target===t.target)r.branches[t.edge].target=t.node.id;else if(t.edge==="default"&&r.otherwise===t.target)r.otherwise=t.node.id;else throw new Error("WORKFLOW_DESIGNER_INSERT_EDGE_INVALID");else if("next"in r)r.next=t.node.id;else throw new Error("WORKFLOW_DESIGNER_INSERT_EDGE_INVALID")}else if(t.type==="remove_parallel_branch"){let r=o.nodes[t.nodeId];if(r?.kind!=="parallel"||r.branches.length<=2)throw new Error("WORKFLOW_PARALLEL_BRANCH_LIMIT");let a=Le(o).regions.find(s=>s.parallelNodeId===r.id)?.branches.find(s=>s.id===t.branchId);if(!a)throw new Error("WORKFLOW_DESIGNER_PARALLEL_BRANCH_MISSING");r.branches=r.branches.filter(s=>s.id!==t.branchId);for(let s of a.nodeIds)delete o.nodes[s]}else if(t.type==="remove"){let r=o.nodes[t.nodeId];if(r?.kind==="parallel"){let a=o.nodes[r.join],s=Le(o).regions.find(c=>c.parallelNodeId===r.id);if(a?.kind!=="join"||!s)throw new Error("WORKFLOW_DESIGNER_PARALLEL_PAIR_INVALID");let d=new Set([r.id,a.id,...s.branches.flatMap(c=>c.nodeIds)]);for(let c of Object.values(o.nodes))if(!d.has(c.id))for(let l of d)n(c,l,a.next);for(let c of d)delete o.nodes[c];return o.startAt===r.id&&(o.startAt=a.next),o}let i=t.reconnectTo||(r?.kind==="approval"?r.onApprove:r&&"next"in r?r.next:void 0);if(!r||!i||i===r.id||!o.nodes[i]||r.kind==="end"||r.kind==="correction"||r.kind==="join")throw new Error("WORKFLOW_DESIGNER_REMOVE_INVALID");for(let a of Object.values(o.nodes))n(a,r.id,i),(a.kind==="approval"||a.kind==="handle")&&a.returnTargets&&(a.returnTargets=a.returnTargets.filter(s=>s!==r.id)),(a.kind==="approval"||a.kind==="handle")&&a.returnPolicy&&(a.returnPolicy.targets=a.returnPolicy.targets.filter(s=>s.nodeId!==r.id));o.startAt===r.id&&(o.startAt=i),delete o.nodes[r.id]}else{let r=o.nodes[t.nodeId];if(!r)throw new Error("WORKFLOW_DESIGNER_NODE_MISSING");if(t.type==="node"){if("id"in t.patch||"kind"in t.patch)throw new Error("WORKFLOW_DESIGNER_NODE_ID_IMMUTABLE");Object.assign(r,t.patch)}else{if(r.kind!=="condition"||t.index<0||t.index>r.branches.length)throw new Error("WORKFLOW_DESIGNER_BRANCH_INVALID");r.branches[t.index]={when:structuredClone(t.when),target:t.target,...t.label?{label:t.label}:{}}}}return o}var lc=(e,t)=>t.split(".").reduce((o,n)=>me(o)&&Object.hasOwn(o,n)?o[n]:void 0,e),fc=(e,t)=>t.includes(",")?t.split(",").some(o=>fc(e,o)):t==="unknown"?!0:t==="null"?e===null:t==="number"||t==="integer"?typeof e=="number"&&Number.isFinite(e)&&(t!=="integer"||Number.isInteger(e)):t==="array"?Array.isArray(e):t==="object"?me(e):typeof e===t;function Up(e,t,o){if(o.held)return{outcome:"held",reason:"\u5DF2\u6307\u5B9A\u4FDD\u7559\u5728\u539F\u7248\u672C"};let n=o.activeNodeIds?.length?o.activeNodeIds:o.currentNodeId?[o.currentNodeId]:[];if(!n.length)return{outcome:"excepted",reason:"\u5F53\u524D\u8FD0\u884C\u4F4D\u7F6E\u65E0\u6CD5\u786E\u5B9A"};if(n.some(s=>!t.nodes[s]))return{outcome:"excepted",reason:"\u5F53\u524D\u8282\u70B9\u5DF2\u88AB\u5220\u9664"};if(n.some(s=>e.nodes[s]?.kind!==t.nodes[s]?.kind))return{outcome:"excepted",reason:"\u5F53\u524D\u8282\u70B9\u7C7B\u578B\u5DF2\u6539\u53D8"};if((o.returnTargetNodeIds||[]).some(s=>!t.nodes[s]))return{outcome:"excepted",reason:"\u6B63\u5728\u9000\u56DE\u7684\u76EE\u6807\u8282\u70B9\u5DF2\u88AB\u5220\u9664"};if(!Oe(e.subject,t.subject)||!Oe(e.inputSchema,t.inputSchema))return{outcome:"excepted",reason:"\u7533\u8BF7\u6570\u636E\u6216\u53D8\u91CF\u5B9A\u4E49\u5DF2\u6539\u53D8\uFF0C\u9700\u8981\u660E\u786E\u7684\u6570\u636E\u8F6C\u6362"};if(o.forkNodeId){let s=e.nodes[o.forkNodeId],d=t.nodes[o.forkNodeId];if(s?.kind!=="parallel"||d?.kind!=="parallel"||s.join!==d.join)return{outcome:"excepted",reason:"\u6B63\u5728\u8FD0\u884C\u7684\u5E76\u884C\u5206\u652F\u6216\u6C47\u5408\u70B9\u5DF2\u6539\u53D8"};let c=Le(e).regions.find(u=>u.parallelNodeId===s.id),l=Le(t).regions.find(u=>u.parallelNodeId===d.id);for(let u of o.unarrivedBranchIds||[]){let p=l?.branches.find(m=>m.id===u);if(!p||n.some(m=>c?.branches.find(E=>E.id===u)?.nodeIds.includes(m)&&!p.nodeIds.includes(m)))return{outcome:"excepted",reason:"\u5C1A\u672A\u5B8C\u6210\u7684\u5E76\u884C\u5206\u652F\u6216\u5176\u5F53\u524D\u8282\u70B9\u5DF2\u6539\u53D8"}}}if(o.businessStepPending)return{outcome:"deferred",reason:"\u4E1A\u52A1\u6B65\u9AA4\u6267\u884C\u4E2D\uFF0C\u5B8C\u6210\u540E\u81EA\u52A8\u66F4\u65B0"};let r=new Set,i=[...n];for(;i.length;){let s=i.pop();r.has(s)||(r.add(s),i.push(...xn(t.nodes[s]||{}).filter(d=>!!t.nodes[d])))}let a=On(t,"preview");for(let s of Object.values(t.nodes)){if(!r.has(s.id))continue;let d=s.kind==="condition"?s.branches.map(c=>c.when):s.kind==="action"?Object.values(s.inputs).filter(c=>c.source==="fact").map(c=>({op:"path",path:c.path})):[];for(let c of d)for(let l of qt(c).paths){let u=a.variables.find(m=>m.path===l),p=lc(o.facts,l);if(p===void 0&&u?.source.kind==="step_output"&&r.has(u.source.nodeId)&&!n.includes(u.source.nodeId)){let m=new Set,E=[...n];for(;E.length;){let A=E.pop();A===u.source.nodeId||m.has(A)||(m.add(A),E.push(...xn(t.nodes[A]||{}).filter(O=>!!t.nodes[O])))}if(!m.has(s.id))continue}if(!(p===void 0&&u&&!u.required&&(u.source.kind!=="step_output"||me(lc(o.facts,`steps.${u.source.nodeId}`))))&&(p===void 0||u&&!fc(p,u.type)))return{outcome:"excepted",reason:`\u540E\u7EED\u6761\u4EF6\u9700\u8981\u7684\u6570\u636E\u5728\u8BE5\u7533\u8BF7\u4E2D\u4E0D\u5B58\u5728\u6216\u7C7B\u578B\u4E0D\u517C\u5BB9\uFF1A${u?.label||l}`}}}return{outcome:"eligible"}}function cr(e){if(!me(e?.nodes))return["WORKFLOW_DESIGNER_DOCUMENT_INVALID"];let t=[];t.push(..._n(e),...An(e),...mn(e),...cs(e),...un(e));let o=Object.values(e.nodes);if(o.length>200||!o.length)return["WORKFLOW_DESIGNER_NODE_LIMIT"];for(let c of o)!me(c)||!["approval","handle","condition","cc","action","correction","end","parallel","join"].includes(c.kind)?t.push("WORKFLOW_DESIGNER_NODE_INVALID"):c.kind==="condition"&&(!Array.isArray(c.branches)||!c.branches.length||c.branches.length>32||c.branches.some(l=>!me(l)||!me(l.when)||typeof l.target!="string"))&&t.push(`WORKFLOW_DESIGNER_BRANCH_INVALID:${c.id}`);if(t.length)return[...new Set(t)];let n=On(e,"draft").variables,r=0,i=(c,l,u=0)=>{if(!me(c)||u>16||++r>4096)return t.push(`WORKFLOW_DESIGNER_EXPRESSION_LIMIT:${l}`),"invalid";if(c.op==="literal"){let p=c.value;return p===null?"null":Array.isArray(p)?"array":typeof p=="object"?"object":typeof p}if(c.op==="path"){let p=n.find(E=>E.path===c.path);(!p||p.type==="unknown")&&t.push(`WORKFLOW_DESIGNER_VARIABLE_UNKNOWN:${l}:${c.path}`);let m=p?.type.split(",").find(E=>E!=="null")||p?.type||"unknown";return m==="integer"?"number":m}if(c.op==="and"||c.op==="or"){if(!Array.isArray(c.values)||c.values.length<1||c.values.length>32)return t.push(`WORKFLOW_DESIGNER_CONDITION_GROUP:${l}`),"invalid";for(let p of c.values)i(p,l,u+1)!=="boolean"&&t.push(`WORKFLOW_DESIGNER_CONDITION_BOOLEAN:${l}`)}else if(c.op==="not"||c.op==="exists"){let p=i(c.value,l,u+1);c.op==="not"&&p!=="boolean"&&t.push(`WORKFLOW_DESIGNER_CONDITION_BOOLEAN:${l}`)}else if(["eq","neq","gt","gte","lt","lte","in","contains"].includes(c.op)&&"left"in c){let p=i(c.left,l,u+1),m=i(c.right,l,u+1);(c.op==="in"?m==="array":c.op==="contains"?p==="array"||p==="string"&&m==="string":["gt","gte","lt","lte"].includes(c.op)?p===m&&["number","string"].includes(p):p===m||p==="null"||m==="null")||t.push(`WORKFLOW_DESIGNER_CONDITION_TYPE:${l}`)}else t.push(`WORKFLOW_DESIGNER_CONDITION_OPERATOR:${l}`);return"boolean"},a=new Set,s=new Set,d=c=>{if(s.has(c)){t.push(`WORKFLOW_DESIGNER_CYCLE:${c}`);return}if(a.has(c))return;let l=e.nodes[c];if(!l){t.push(`WORKFLOW_DESIGNER_TARGET_MISSING:${c}`);return}s.add(c);for(let u of xn(l))d(u);s.delete(c),a.add(c)};for(let c of o){if((!/^[a-z][a-z0-9_-]{0,127}$/.test(c.id)||e.nodes[c.id]!==c)&&t.push(`WORKFLOW_DESIGNER_NODE_ID:${c.id}`),c.kind==="parallel")for(let l of c.branches)l.when&&i(l.when,c.id)!=="boolean"&&t.push(`WORKFLOW_DESIGNER_CONDITION_BOOLEAN:${c.id}`);if(c.kind==="condition"){(!c.branches.length||c.branches.length>32)&&t.push(`WORKFLOW_DESIGNER_BRANCH_LIMIT:${c.id}`);for(let l of c.branches)i(l.when,c.id)!=="boolean"&&t.push(`WORKFLOW_DESIGNER_CONDITION_BOOLEAN:${c.id}`)}}d(e.startAt);for(let c of o)!a.has(c.id)&&c.kind!=="correction"&&t.push(`WORKFLOW_DESIGNER_UNREACHABLE:${c.id}`);return[...new Set(t)]}function Mp(e){let t={...e.readability?.variables},o=(n,r="",i=0)=>{if(!(i>8||!me(n)))if(n.type==="object"&&me(n.properties))for(let[a,s]of Object.entries(n.properties))o(s,r?`${r}.${a}`:a,i+1);else r&&(t[r]||={label:String(n.title||r)})};o(e.inputSchema);for(let n of Object.values(e.nodes))n.kind==="action"&&o(n.outputSchema,`steps.${n.id}`);return On({...e,readability:{...e.readability,variables:t}},"draft").variables.filter(n=>n.type!=="unknown")}function lr(e,t){return(t?(Array.isArray(e)?e:[]).filter(Array.isArray):[Array.isArray(e)?e.filter(n=>!Array.isArray(n)):[]]).map(n=>n[n.length-1]?.value).filter(n=>!!n)}var pc=["province","city","district","street"];function mc(e){for(let t=pc.length-1;t>=0;t-=1){let o=pc[t],n=o?e?.[o]:void 0;if(o&&n?.value)return{path:`${o}.value`,value:n.value}}}function ms(e){return!!(e&&typeof e=="object"&&!Array.isArray(e)&&"value"in e)}function gs(e){return ms(e)?String(e.value):e}function gc(e){return(Array.isArray(e)?e:[e]).map(gs)}function _c(e,t,o){let n=new Set(Object.keys(t.fields)),r=a=>{if(!n.has(a))throw new Error(`OPENXIANGDA_RESOURCE_QUERY_FIELD_NOT_DECLARED:${e}:${a}`);return a},i=o.where?[jn(e,t,o.where)]:[];if(o.createdBy!==void 0&&o.createdBy!==""&&i.push({field:"created_by",operator:"eq",value:o.createdBy}),o.keyword?.trim()){let a=(t.list?.searchableFields||[]).filter(s=>n.has(s));a.length&&i.push({or:a.map(s=>({field:r(s),operator:"contains",value:o.keyword.trim()}))})}for(let[a,s]of Object.entries(o.filters||{})){if(s==null||s===""||Array.isArray(s)&&s.length===0||!n.has(a))continue;let d=t.fields[a];if(d)if(d.type==="json")i.push({field:a,operator:"jsonContains",value:s});else if(d.type==="address"){let c=mc(s);c&&i.push({field:a,operator:"jsonContains",path:c.path,value:c.value})}else if(d.type==="cascade.single"||d.type==="cascade.multiple"){let c=lr(s,d.type==="cascade.multiple");c.length&&i.push({field:a,operator:d.type==="cascade.multiple"?"hasAny":"has",value:d.type==="cascade.multiple"?c:c[0]})}else if((d.type==="date-range"||d.type==="datetime-range")&&s!==null&&typeof s=="object"&&!Array.isArray(s)){let c=s;c.start!==void 0&&c.end!==void 0&&i.push({field:a,operator:"overlaps",value:{start:c.start,end:c.end}})}else if(Array.isArray(s)&&s.length===2&&["date","datetime","number","money","percent"].includes(d.widget))s[0]!==void 0&&s[0]!==null&&s[0]!==""&&i.push({field:a,operator:"gte",value:s[0]}),s[1]!==void 0&&s[1]!==null&&s[1]!==""&&i.push({field:a,operator:"lte",value:s[1]});else if(d.type==="option.multiple"||d.type==="user.multiple"||d.type==="department.multiple"||d.type==="resource-ref.multiple")i.push({field:a,operator:"hasAny",value:gc(s)});else{let[c]=gc(s);i.push({field:a,operator:"eq",value:c})}}return i.length?{and:i}:void 0}function jn(e,t,o){if("and"in o)return{and:o.and.map(a=>jn(e,t,a))};if("or"in o)return{or:o.or.map(a=>jn(e,t,a))};if("not"in o)return{not:jn(e,t,o.not)};if(o.path!==void 0)return o;if(o.operator==="isEmpty"||o.operator==="isNotEmpty")return{field:o.field,operator:o.operator};let n=t.fields[o.field];if(o.operator==="has"){let a=n?.type==="cascade.single"&&Array.isArray(o.value)&&o.value.length>0&&o.value.every(ms);return{...o,value:a?lr(o.value,!1)[0]:gs(o.value)}}if(["in","between","hasAny","hasAll"].includes(o.operator)){if(!Array.isArray(o.value))return o;let a=n?.type==="cascade.multiple"&&["hasAny","hasAll"].includes(o.operator)&&o.value.length>0&&o.value.every(s=>Array.isArray(s)&&s.length>0&&s.every(ms));return{...o,value:a?lr(o.value,!0):o.value.map(gs)}}let r=_c(e,t,{page:1,pageSize:20,filters:{[o.field]:o.value}}),i=r&&"and"in r?r.and[0]:void 0;return i&&"field"in i?{...i,operator:o.operator}:o}var Ac="openxiangda.workflow-source-bundle/v1",Ec=3*1024*1024,Me=(e,t)=>e.replace(/^sha256:/,"")===t.replace(/^sha256:/,""),Dt=(e,t)=>Me(e.definitionDigest,t.definitionDigest)&&Me(e.bindingDigest,t.bindingDigest),ur=e=>!!e&&typeof e=="object"&&!Array.isArray(e),St=(e,t)=>ur(e)&&Object.keys(e).every(o=>t.includes(o)&&!["__proto__","constructor","prototype"].includes(o)),_s=e=>typeof e=="string"&&/^[A-Za-z][A-Za-z0-9_-]{0,127}$/.test(e),Bp=e=>typeof e=="string"&&/^(sha256:)?[a-f0-9]{64}$/.test(e);function Ic(e,t,o){let n=new Set(Object.values(e.nodes).flatMap(i=>"taskPageCode"in i&&i.taskPageCode?[i.taskPageCode]:[])),r=new Map;for(let i of Object.values(e.nodes))i.kind==="action"&&r.set(`${i.handler.code}@${i.handler.version}`,{code:i.handler.code,version:i.handler.version,digest:o({handler:i.handler,inputSchema:i.inputSchema,outputSchema:i.outputSchema})});return{taskPages:[...n].sort().map(i=>({code:i,digest:o(e.taskPages?.[i])})),steps:[...r.values()].sort((i,a)=>i.code.localeCompare(a.code)||i.version-a.version),bindingKeys:Object.keys(t.bindings).sort(),roles:[...new Set(Object.values(t.bindings).flatMap(Ni))].sort()}}function yc(e,t){try{return Kp(e,t)}catch{return["WORKFLOW_BUNDLE_CORRUPT"]}}function Kp(e,t){let o=[];if(!St(e,["schemaVersion","appCode","workflowCode","origin","definition","binding","references","handling"])||e.schemaVersion!==Ac||!_s(e.appCode)||!_s(e.workflowCode))return["WORKFLOW_BUNDLE_CORRUPT"];if(new TextEncoder().encode(JSON.stringify(e)).length>Ec)return["WORKFLOW_BUNDLE_TOO_LARGE"];let n=e,r=n.origin;if(!St(r,["environmentKey","headRevision","definitionVersion","bindingVersion","definitionDigest","bindingDigest","handlingDigest","catalogDigest"])||!["preproduction","production"].includes(r.environmentKey)||![r.headRevision,r.definitionVersion,r.bindingVersion].every(i=>Number.isSafeInteger(i)&&i>=1)||![r.definitionDigest,r.bindingDigest,r.handlingDigest,r.catalogDigest].every(Bp))return["WORKFLOW_BUNDLE_CORRUPT"];if(!ur(n.definition?.nodes)||!ur(n.binding?.bindings)||n.definition.code!==n.workflowCode||n.binding.workflowCode!==n.workflowCode)return["WORKFLOW_BUNDLE_CORRUPT"];if(cr(n.definition).length&&o.push("WORKFLOW_BUNDLE_DEFINITION_INVALID"),(!Me(t(n.definition),r.definitionDigest)||!Me(t(n.binding),r.bindingDigest)||!Me(t(n.handling),r.handlingDigest)||!Me(t(n.references),r.catalogDigest))&&o.push("WORKFLOW_BUNDLE_CORRUPT"),Me(t(Ic(n.definition,n.binding,t)),t(n.references))||o.push("WORKFLOW_BUNDLE_CATALOG_CORRUPT"),!ur(n.handling)||Object.keys(n.handling).length>200)o.push("WORKFLOW_BUNDLE_HANDLING_INVALID");else for(let[i,a]of Object.entries(n.handling)){if(!n.definition.nodes[i]||!St(a,["mode","operations","assignee"])){o.push("WORKFLOW_BUNDLE_HANDLING_INVALID");continue}if(a.mode!==void 0&&!["single","any","all","sequence"].includes(a.mode)&&o.push("WORKFLOW_BUNDLE_HANDLING_INVALID"),a.operations!==void 0){let d=["complete","approve","reject","save_form","return","transfer","delegate","add_assignee"];if(!St(a.operations,d))o.push("WORKFLOW_BUNDLE_HANDLING_INVALID");else for(let c of Object.values(a.operations))(!St(c,["enabled","label","opinion","commentRequired","reasonRequired"])||c.enabled!==void 0&&typeof c.enabled!="boolean"||c.commentRequired!==void 0&&typeof c.commentRequired!="boolean"||c.reasonRequired!==void 0&&typeof c.reasonRequired!="boolean"||c.label!==void 0&&(typeof c.label!="string"||!c.label.trim()||c.label.length>255)||c.opinion!==void 0&&!["none","optional","required"].includes(c.opinion))&&o.push("WORKFLOW_BUNDLE_HANDLING_INVALID")}let s=a.assignee;s&&(s.kind==="named_people"?!St(s,["kind","count"])||!Number.isSafeInteger(s.count)||s.count<0||s.count>200:s.kind!=="roles"||!St(s,["kind","roleCodes"])||!Array.isArray(s.roleCodes)||s.roleCodes.length>200||!s.roleCodes.every(_s))&&o.push("WORKFLOW_BUNDLE_HANDLING_INVALID")}return[...new Set(o)]}function qp(e){if(!e.head)return"not_active";if(Dt(e.declared,e.head))return"in_sync";let t=e.base||e.activeDeclaration;return t&&Dt(t,e.head)?"ahead":!t||Dt(e.declared,t)?"behind":"diverged"}function Gp(e){return e.head?Dt(e.declared,e.head)?"reuse":e.activeDeclaration&&Dt(e.declared,e.activeDeclaration)?"preserve":e.base&&Dt(e.base,e.head)||e.activeDeclaration&&Dt(e.activeDeclaration,e.head)?"advance":"diverged":"advance"}function zp(e,t,o,n){let r=yc(o,n);if(r.length)return r;r.push(...ps(e,o.definition,t,o.binding).map(a=>`WORKFLOW_IMPORT_CODE_OWNED_DRIFT:${a}`));for(let a of o.references.taskPages)(!e.taskPages?.[a.code]||!Me(n(e.taskPages[a.code]),a.digest))&&r.push(`WORKFLOW_IMPORT_CODE_OWNED_DRIFT:taskPage:${a.code}`);let i=Wn(e,t).steps.map(a=>({code:a.handler.code,version:a.handler.version,digest:n({handler:a.handler,inputSchema:a.inputSchema,outputSchema:a.outputSchema})}));for(let a of o.references.steps)i.some(s=>s.code===a.code&&s.version===a.version&&Me(s.digest,a.digest))||r.push(`WORKFLOW_IMPORT_CODE_OWNED_DRIFT:step:${a.code}@${a.version}`);return[...new Set(r)]}function As(e,t,o={}){let n=1024,r=()=>{throw new Error("WORKFLOW_V2_EXPRESSION_TYPE_INVALID")},i=d=>d===null||["string","number","boolean"].includes(typeof d),a=d=>o.strict?typeof d=="boolean"?d:r():!!d,s=(d,c=0,l=!1)=>{if(--n<0||c>32)throw new Error("WORKFLOW_V2_EXPRESSION_LIMIT");let u=p=>s(p,c+1);switch(d?.op){case"literal":return o.strict&&typeof d.value=="number"&&!Number.isFinite(d.value)&&r(),d.value;case"path":{if(!/^[A-Za-z][A-Za-z0-9_.]{0,254}$/.test(d.path||"")||d.path.split(".").some(m=>["__proto__","prototype","constructor"].includes(m)))throw new Error("WORKFLOW_V2_EXPRESSION_PATH_INVALID");let p=d.path.split(".").reduce((m,E)=>!m||typeof m!="object"||Array.isArray(m)||!Object.hasOwn(m,E)?void 0:m[E],t);if(o.strict){if(p===void 0&&(!l||o.requiredForPath?.(d.path)))throw new Error("WORKFLOW_V2_EXPRESSION_FACT_MISSING");let m=o.schemaForPath?.(d.path);(!m||p!==void 0&&!ft(m,p))&&r()}return o.onPathRead?.(d.path,p),p}case"eq":case"neq":{let p=u(d.left),m=u(d.right);return o.strict&&(!i(p)||!i(m)||p!==null&&m!==null&&typeof p!=typeof m)&&r(),d.op==="eq"?p===m:p!==m}case"gt":case"gte":case"lt":case"lte":{let p=u(d.left),m=u(d.right);if(p===void 0||m===void 0)return!1;o.strict&&(typeof p!=typeof m||!["string","number"].includes(typeof p)||typeof p=="number"&&(!Number.isFinite(p)||!Number.isFinite(m)))&&r();let E=p===m?0:p>m?1:-1;return d.op==="gt"?E>0:d.op==="gte"?E>=0:d.op==="lt"?E<0:E<=0}case"in":{let p=u(d.left),m=u(d.right);return o.strict&&(!i(p)||!Array.isArray(m)||m.some(E=>!i(E)||typeof E!=typeof p))&&r(),Array.isArray(m)&&m.includes(p)}case"contains":{let p=u(d.left),m=u(d.right);return o.strict&&!(typeof p=="string"&&typeof m=="string"||Array.isArray(p)&&i(m)&&p.every(E=>i(E)&&typeof E==typeof m))&&r(),Array.isArray(p)?p.includes(m):typeof p=="string"&&p.includes(String(m))}case"and":return d.values.every(p=>a(u(p)));case"or":return d.values.some(p=>a(u(p)));case"not":return!a(u(d.value));case"exists":{let p=s(d.value,c+1,o.strict&&d.value.op==="path");return p!=null}default:throw new Error("WORKFLOW_V2_EXPRESSION_OPERATOR_INVALID")}};return s(e)}var Es="openxiangda.workflow-definition/v2",Is="openxiangda.workflow-binding/v2";var K={type:"string",minLength:1},Oc={type:"string",pattern:"^[A-Za-z][A-Za-z0-9_]{0,62}$"},Un={type:"object",required:["op"],properties:{op:{enum:["literal","path","eq","neq","gt","gte","lt","lte","in","contains","and","or","not","exists"]},value:{},path:{type:"string",pattern:"^[A-Za-z][A-Za-z0-9_.]{0,254}$"},left:{type:"object"},right:{type:"object"},values:{type:"array",minItems:1,items:{type:"object"}}}},Hp={type:"object",additionalProperties:!1,required:["id","kind","title","binding","next","emptyPolicy"],properties:{id:K,kind:{const:"cc"},title:K,binding:K,next:K,emptyPolicy:{enum:["block","skip"]},notify:{type:"boolean"},administration:{type:"object",additionalProperties:!1,properties:{assigneeProviders:{type:"array",minItems:1,maxItems:3,uniqueItems:!0,items:{enum:["fixed_users","app_role","app_role_in_scope"]}}}}}},ys={type:"object",additionalProperties:!1,required:["afterSeconds","everySeconds","max","to"],properties:{afterSeconds:{type:"integer",minimum:1,maximum:2592e3},everySeconds:{type:"integer",minimum:1,maximum:2592e3},max:{type:"integer",minimum:1,maximum:10},to:{type:"array",minItems:1,maxItems:1,items:{const:"handlers"}}}},Yp={type:"object",additionalProperties:!1,required:["id","kind","title","next","handler","inputSchema","outputSchema","inputs"],properties:{id:K,kind:{const:"action"},title:K,next:K,handler:{type:"object",additionalProperties:!1,required:["code","version","mode"],properties:{code:{type:"string",pattern:"^[a-z][a-z0-9-]{0,100}$"},version:{type:"integer",minimum:1,maximum:1e6},mode:{enum:["pure","reconciled-effect"]},dataTransaction:{const:!0}},allOf:[{if:{required:["dataTransaction"]},then:{properties:{mode:{const:"reconciled-effect"}}}}]},notification:{type:"object",additionalProperties:!1,required:["template","recipients"],properties:{template:{const:"workflow_message"},recipients:{oneOf:[{type:"object",additionalProperties:!1,required:["provider"],properties:{provider:{const:"initiator"}}},{type:"object",additionalProperties:!1,required:["provider","users"],properties:{provider:{const:"fixed_users"},users:{type:"array",minItems:1,maxItems:50,uniqueItems:!0,items:{type:"string",minLength:1,maxLength:255}}}},{type:"object",additionalProperties:!1,required:["provider","roleCode"],properties:{provider:{const:"app_role"},roleCode:K}},{type:"object",additionalProperties:!1,required:["provider","inputPath"],properties:{provider:{const:"form_field_users"},inputPath:K}}]}}},inputSchema:{type:"object"},outputSchema:{type:"object"},inputs:{type:"object",maxProperties:32,additionalProperties:{oneOf:[{type:"object",additionalProperties:!1,required:["source","path"],properties:{source:{const:"fact"},path:{type:"string",minLength:1,maxLength:256}}},{type:"object",additionalProperties:!1,required:["source","value"],properties:{source:{const:"literal"},value:{}}}]}}}},bc={type:"object",additionalProperties:!1,required:["targets"],properties:{targets:{type:"array",maxItems:20,items:{type:"object",additionalProperties:!1,required:["nodeId","routes","defaultRoute"],properties:{nodeId:K,routes:{type:"array",minItems:1,maxItems:2,uniqueItems:!0,items:{enum:["replay","resume"]}},defaultRoute:{enum:["replay","resume"]}}}}}},Xp={oneOf:[{type:"object",additionalProperties:!1,required:["id","kind","title","binding","mode","next","allowedOperations","requiredOperations"],properties:{id:K,kind:{const:"handle"},title:K,reminders:ys,binding:K,mode:{enum:["single","any","all","sequence"]},next:K,emptyPolicy:{const:"block"},taskPageCode:{type:"string",pattern:"^[A-Za-z][A-Za-z0-9_-]{0,63}$"},allowedOperations:{type:"array",uniqueItems:!0,items:{enum:["complete","save_form","return","transfer","delegate"]}},requiredOperations:{type:"array",uniqueItems:!0,items:{enum:["complete","save_form","return","transfer","delegate"]}},returnPolicy:bc,returnTargets:{type:"array",items:K,uniqueItems:!0},operationPolicy:{type:"object",additionalProperties:!1,properties:Object.fromEntries(["complete","save_form","return","transfer","delegate"].map(e=>[e,{type:"object",additionalProperties:!1,minProperties:1,properties:{label:{type:"string",minLength:1,maxLength:40},...e!=="save_form"?{opinion:{enum:["none","optional","required"]},minimumOpinion:{enum:["none","optional","required"]}}:{},...e==="complete"?{commentRequired:{type:"boolean"}}:{},...["return","transfer","delegate"].includes(e)?{reasonRequired:{type:"boolean"}}:{}}}]))},administration:{type:"object",additionalProperties:!1,properties:{modes:{type:"array",uniqueItems:!0,minItems:1,maxItems:4,items:{enum:["single","any","all","sequence"]}},assigneeProviders:{type:"array",uniqueItems:!0,minItems:1,maxItems:3,items:{enum:["fixed_users","app_role","app_role_in_scope"]}},operations:{type:"array",uniqueItems:!0,minItems:1,maxItems:5,items:{enum:["complete","save_form","return","transfer","delegate"]}}}},fieldPolicy:{type:"object",additionalProperties:!1,properties:{default:{enum:["hidden","readonly","edit","edit_required"]},fields:{type:"object",additionalProperties:{enum:["hidden","readonly","edit","edit_required"]}}}}}},{type:"object",additionalProperties:!1,required:["id","kind","title","binding","mode","onApprove","onReject"],properties:{id:K,kind:{const:"approval"},reminders:ys,title:K,binding:K,mode:{enum:["single","any","all","sequence"]},emptyPolicy:{enum:["block","skip"]},initiatorApprovalPolicy:{enum:["manual","auto_approve"]},completionDeadline:{type:"object",additionalProperties:!1,required:["afterSeconds","action"],properties:{afterSeconds:{type:"integer",minimum:1,maximum:2592e3},action:{const:"approve"}}},onApprove:K,onReject:K,taskPageCode:{type:"string",pattern:"^[A-Za-z][A-Za-z0-9_-]{0,63}$"},operationPolicy:{type:"object",additionalProperties:!1,properties:Object.fromEntries(ze.map(e=>[e,{type:"object",additionalProperties:!1,minProperties:1,properties:{label:{type:"string",minLength:1,maxLength:40,pattern:"^(?!.*[\\u0000-\\u001f\\u007f])(?=.*\\S).*$"},...e!=="save_form"?{opinion:{enum:["none","optional","required"]},minimumOpinion:{enum:["none","optional","required"]}}:{},...["complete","approve","reject"].includes(e)?{commentRequired:{type:"boolean"}}:{},...["transfer","delegate","add_assignee","return"].includes(e)?{reasonRequired:{type:"boolean"}}:{}}}]))},administration:{type:"object",additionalProperties:!1,properties:{modes:{type:"array",minItems:1,maxItems:4,uniqueItems:!0,items:{enum:["single","any","all","sequence"]}},assigneeProviders:{type:"array",minItems:1,maxItems:3,uniqueItems:!0,items:{enum:["fixed_users","app_role","app_role_in_scope"]}},operations:{type:"array",minItems:1,maxItems:8,uniqueItems:!0,items:{enum:[...ze]}}}},requiredOperations:{type:"array",minItems:1,maxItems:7,uniqueItems:!0,items:{enum:[...ze]}},allowedOperations:{type:"array",uniqueItems:!0,items:{enum:["approve","reject","return","transfer","delegate","add_assignee","resubmit","save_form","admin_reassign","admin_override"]}},returnPolicy:bc,returnTargets:{type:"array",uniqueItems:!0,items:K},fieldPolicy:{type:"object",additionalProperties:!1,properties:{default:{enum:["hidden","readonly","edit","edit_required"]},fields:{type:"object",additionalProperties:{enum:["hidden","readonly","edit","edit_required"]}}}}}},{type:"object",additionalProperties:!1,required:["id","kind","branches","otherwise"],properties:{id:K,kind:{const:"condition"},title:{type:"string"},branches:{type:"array",minItems:1,items:{type:"object",additionalProperties:!1,required:["when","target"],properties:{when:Un,target:K,label:{type:"string"}}}},otherwise:K}},{type:"object",additionalProperties:!1,required:["id","kind","title","outcome"],properties:{id:K,kind:{const:"end"},title:K,outcome:K}},Hp,Yp,{type:"object",additionalProperties:!1,required:["id","kind","title","taskPageCode","next"],properties:{id:K,kind:{const:"correction"},title:K,reminders:ys,taskPageCode:{type:"string",pattern:"^[A-Za-z][A-Za-z0-9_-]{0,63}$"},next:K}}]},hc={$id:Es,type:"object",additionalProperties:!1,required:["schemaVersion","code","title","acceptedCommandDeactivationPolicy","subject","startAt","inputSchema","nodes"],properties:{schemaVersion:{const:Es},authoring:{type:"object",additionalProperties:!1,properties:{businessSteps:{type:"array",maxItems:100,items:{type:"object",additionalProperties:!1,required:["title","handler","inputSchema","outputSchema"],properties:{title:{type:"string",minLength:1,maxLength:160},handler:{type:"object",additionalProperties:!1,required:["code","version","mode"],properties:{code:{type:"string",pattern:"^[a-z][a-z0-9_-]{0,127}$"},version:{type:"integer",minimum:1},mode:{enum:["pure","reconciled-effect"]},dataTransaction:{const:!0}}},inputSchema:{type:"object"},outputSchema:{type:"object"}}}}}},code:{type:"string",pattern:"^[A-Za-z][A-Za-z0-9_-]{0,127}$"},title:K,launchPreflight:{type:"object",additionalProperties:!1,required:["requiredApprovalNodes"],properties:{requiredApprovalNodes:{type:"array",minItems:1,maxItems:20,uniqueItems:!0,items:{type:"string",pattern:"^[A-Za-z][A-Za-z0-9_-]{0,127}$"}}}},approvedDelegation:{type:"object",additionalProperties:!1,required:["confirmationNodeId","confirmer","requestsField","maxRequests"],properties:{confirmationNodeId:{type:"string",pattern:"^[A-Za-z][A-Za-z0-9_-]{0,127}$"},confirmer:{enum:["initiator","delegate"]},requestsField:{type:"string",pattern:"^[A-Za-z][A-Za-z0-9_]{0,62}$"},maxRequests:{type:"integer",minimum:1,maximum:500}}},commandHandlers:{type:"object",additionalProperties:!1,minProperties:1,properties:Object.fromEntries(["approve","reject","withdraw","resubmit"].map(e=>[e,{type:"object",additionalProperties:!1,required:["operationCode"],properties:{operationCode:{type:"string",pattern:"^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$"},...e==="approve"?{transitionPolicy:{const:"workflow"}}:{},...e==="resubmit"?{derivedSubjectFields:{type:"array",minItems:1,maxItems:32,uniqueItems:!0,items:{type:"string",pattern:"^[A-Za-z][A-Za-z0-9_]{0,62}$"}}}:{}}}]))},taskPages:{type:"object",minProperties:1,maxProperties:16,propertyNames:{pattern:"^[A-Za-z][A-Za-z0-9_-]{0,63}$"},additionalProperties:{type:"object",additionalProperties:!1,required:["title","fields"],properties:{title:{type:"string",minLength:1,maxLength:160},fields:{type:"array",minItems:1,maxItems:200,items:{type:"object",additionalProperties:!1,required:["code"],properties:{code:{type:"string",pattern:"^[A-Za-z][A-Za-z0-9_]{0,62}$"},readonly:{type:"boolean"},required:{type:"boolean"},visibleWhen:Un,requiredWhen:Un}}}}}},acceptedCommandDeactivationPolicy:{enum:["finish-pinned","cancel-on-deactivate"]},rejectionNotification:{type:"object",additionalProperties:!1,required:["recipient","title","summary"],properties:{recipient:{const:"record_last_modifier"},title:{type:"string",minLength:1,maxLength:160,pattern:"\\S"},summary:{type:"string",minLength:1,maxLength:500,pattern:"\\S"}}},instanceCommands:{type:"object",additionalProperties:!1,minProperties:1,properties:{withdraw:{type:"object",additionalProperties:!1,minProperties:1,properties:{beforeFact:{type:"string",pattern:"^[A-Za-z][A-Za-z0-9_]{0,62}$"},reasonRequired:{type:"boolean"}}},terminate:{type:"object",additionalProperties:!1,required:["capability"],properties:{capability:{type:"string",maxLength:255,pattern:"^app:[a-z][a-z0-9]*(?:-[a-z0-9]+)*:[A-Za-z0-9:._-]+$"},beforeFact:{type:"string",pattern:"^[A-Za-z][A-Za-z0-9_]{0,62}$"}}}}},subject:{type:"object",additionalProperties:!1,required:["resourceCode","factProjection","summaryFields"],properties:{resourceCode:{type:"string",pattern:"^[a-z][a-z0-9]*(?:-[a-z0-9]+)*$"},factProjection:{type:"object",minProperties:1,maxProperties:64,propertyNames:{pattern:"^[A-Za-z][A-Za-z0-9_.]{0,127}$"},additionalProperties:{type:"string",pattern:"^[A-Za-z][A-Za-z0-9_]{0,62}$"}},summaryFields:{type:"array",maxItems:16,uniqueItems:!0,items:Oc}}},startAt:K,inputSchema:{type:"object",required:["type","additionalProperties"],properties:{type:{const:"object"},additionalProperties:{const:!1}}},organizationContext:{type:"object",additionalProperties:!1,properties:{department:{type:"object",additionalProperties:!1,required:["source"],properties:{source:{enum:["none","user_primary_department","choose_if_multiple","always_choose","fixed","from_input","from_role_scope"]},required:{type:"boolean"},value:{type:"string"},path:{type:"string"},dimension:{type:"string"}}}}},nodes:{type:"object",minProperties:1,maxProperties:200,additionalProperties:Xp}}},fr={$id:Is,type:"object",additionalProperties:!1,required:["schemaVersion","workflowCode","bindings"],properties:{schemaVersion:{const:Is},workflowCode:K,bindings:{type:"object",maxProperties:200,additionalProperties:{type:"object",additionalProperties:!1,required:["provider"],allOf:[{if:{required:["roleCodes"]},then:{properties:{provider:{enum:["app_role","app_role_in_scope"]}},not:{anyOf:[{required:["roleCode"]},{required:["candidateField"]}]}}},{if:{required:["candidateField"]},then:{required:["inputPath"],properties:{provider:{const:"form_field_users"}},not:{anyOf:[{required:["roleCode"]},{required:["scope"]},{required:["routing"]}]}}},{if:{required:["selectedInputPath"]},then:{properties:{provider:{enum:["app_role","app_role_in_scope"]}},anyOf:[{required:["roleCode"]},{required:["roleCodes"]}],not:{anyOf:[{required:["candidateField"]},{required:["inputPath"]},{required:["routing"]}]}}}],properties:{provider:{enum:["fixed_users","initiator","input_users","form_field_users","department_supervisor","supervisor_chain","app_role","app_role_in_scope","business_relation","previous_node_actor","initiator_select","application_provider"]},users:{type:"array",uniqueItems:!0,items:K},inputPath:{type:"string"},selectedInputPath:{type:"string",maxLength:255,pattern:"^[A-Za-z][A-Za-z0-9_-]*(?:\\.[A-Za-z][A-Za-z0-9_-]*)*$"},candidateField:Oc,from:{oneOf:[{const:"initiator"},{type:"object",additionalProperties:!1,required:["field"],properties:{field:{type:"string",maxLength:255}}}]},until:{oneOf:[{const:"top"},{type:"object",additionalProperties:!1,required:["level"],properties:{level:{type:"integer",minimum:1,maximum:20}}},{type:"object",additionalProperties:!1,required:["roleCode"],properties:{roleCode:K}}]},continuous:{type:"boolean"},missing:{enum:["skip_level","block"]},departmentIdFrom:{type:"string"},level:{type:"integer",minimum:1,maximum:20},fallbackToAncestorSupervisor:{type:"boolean"},roleCode:{type:"string"},roleCodes:hi,scope:{type:"object",additionalProperties:!1,required:["dimension"],properties:{dimension:K,valueFrom:{type:"string"},value:{type:"string"}}},relationCode:{type:"string"},resourceCode:{type:"string"},resourceIdFrom:{type:"string"},providerCode:{type:"string"},min:{type:"integer",minimum:1,maximum:200},max:{type:"integer",minimum:1,maximum:200},delegatable:{type:"boolean"},routing:Bi}}}}};var hs=20,Cc=16384,mr=["fixed_users","app_role","app_role_in_scope","supervisor_chain","form_field_users","input_users","initiator","previous_node_actor","business_relation"],Mn=fr.properties.bindings.additionalProperties,Zp={type:"object",additionalProperties:!1,required:["provider","cases","otherwise"],properties:{provider:{const:"conditional"},cases:{type:"array",minItems:1,maxItems:hs,items:{type:"object",additionalProperties:!1,required:["when","assignee"],properties:{label:{type:"string",minLength:1,maxLength:160},when:Un,assignee:{...Mn,properties:{...Mn.properties,provider:{enum:mr}}}}}},otherwise:{...Mn,properties:{...Mn.properties,provider:{enum:mr}}}}},$e=e=>!!e&&typeof e=="object"&&!Array.isArray(e)&&[Object.prototype,null].includes(Object.getPrototypeOf(e)),_e=(e,t)=>Object.keys(e).every(o=>t.includes(o)),bs=(e,t)=>typeof e=="string"&&!!e.trim()&&e.length<=t&&!/[\u0000-\u001f\u007f]/.test(e),Bn=e=>typeof e=="string"&&/^[A-Za-z][A-Za-z0-9_.]{0,254}$/.test(e)&&e.split(".").every(t=>!!t&&!["__proto__","prototype","constructor"].includes(t)),pr=e=>typeof e=="string"&&e.length<=128&&/^[a-z][a-z0-9]*(?:[-_.][a-z0-9]+)*$/.test(e);function Qp(e){let t=4096,o=(n,r)=>--t<0||r>24?!1:n===null||["string","boolean"].includes(typeof n)?!0:typeof n=="number"?Number.isFinite(n):Array.isArray(n)?n.length<=200&&n.every(i=>o(i,r+1)):$e(n)&&Object.keys(n).every(i=>!["__proto__","prototype","constructor"].includes(i)&&Object.getOwnPropertyDescriptor(n,i)?.get===void 0&&o(n[i],r+1));try{return o(e,0)&&new TextEncoder().encode(JSON.stringify(e)).length<=Cc}catch{return!1}}var Nc=e=>{let t=o=>Array.isArray(o)?o.map(t):$e(o)?Object.fromEntries(Object.keys(o).sort().map(n=>[n,t(o[n])])):o;return JSON.stringify(t(e))};function Rc(e){if(!$e(e)||!mr.includes(e.provider)||!_e(e,Object.keys(Mn.properties)))return["WORKFLOW_CONDITIONAL_LEAF_INVALID"];let t=[...gt(e),...It(e),...hn(e)];return _e(e,["provider","min","max","delegatable",...{fixed_users:["users"],app_role:["roleCode","roleCodes","selectedInputPath","routing"],app_role_in_scope:["roleCode","roleCodes","scope","selectedInputPath","routing"],supervisor_chain:["from","until","continuous","missing"],form_field_users:["inputPath","candidateField"],input_users:["inputPath"],initiator:[],previous_node_actor:[],business_relation:["relationCode","resourceCode","resourceIdFrom"]}[e.provider]])||t.push("WORKFLOW_CONDITIONAL_LEAF_FIELDS_INVALID"),e.routing!==void 0&&t.push(...Rt(e.routing)),(["min","max"].some(n=>e[n]!==void 0&&(!Number.isInteger(e[n])||e[n]<1||e[n]>200))||(e.min??1)>(e.max??200)||e.delegatable!==void 0&&typeof e.delegatable!="boolean")&&t.push("WORKFLOW_CONDITIONAL_LEAF_BOUNDS_INVALID"),e.provider==="fixed_users"&&(!Array.isArray(e.users)||!e.users.length||e.users.length>200||new Set(e.users).size!==e.users.length||e.users.some(n=>!bs(n,255)))&&t.push("WORKFLOW_CONDITIONAL_USERS_INVALID"),["app_role","app_role_in_scope"].includes(e.provider)&&e.roleCodes===void 0&&!pr(e.roleCode)&&t.push("WORKFLOW_CONDITIONAL_ROLE_INVALID"),e.provider==="app_role_in_scope"&&(!$e(e.scope)||!_e(e.scope,["dimension","value","valueFrom"])||!pr(e.scope.dimension)||!(bs(e.scope.value,255)&&e.scope.valueFrom===void 0||Bn(e.scope.valueFrom)&&e.scope.value===void 0))&&t.push("WORKFLOW_CONDITIONAL_SCOPE_INVALID"),["input_users","form_field_users"].includes(e.provider)&&!Bn(e.inputPath)&&t.push("WORKFLOW_CONDITIONAL_INPUT_PATH_INVALID"),e.provider==="business_relation"&&(!pr(e.relationCode)||!pr(e.resourceCode)||!Bn(e.resourceIdFrom))&&t.push("WORKFLOW_CONDITIONAL_RELATION_INVALID"),t}function Os(e){if(e.provider!=="conditional")return[e];if(_r(e).length)throw new Error("WORKFLOW_CONDITIONAL_BINDING_INVALID");return[...e.cases.map(t=>t.assignee),e.otherwise]}function Sc(e,t=0,o={remaining:1024}){if(--o.remaining<0||t>20)return["WORKFLOW_CONDITIONAL_EXPRESSION_LIMIT"];if(!$e(e))return["WORKFLOW_CONDITIONAL_EXPRESSION_INVALID"];let n=r=>Sc(r,t+1,o);return e.op==="literal"?_e(e,["op","value"])&&Object.hasOwn(e,"value")?[]:["WORKFLOW_CONDITIONAL_EXPRESSION_INVALID"]:e.op==="path"?_e(e,["op","path"])&&Bn(e.path)?[]:["WORKFLOW_CONDITIONAL_PATH_INVALID"]:["and","or"].includes(e.op)?_e(e,["op","values"])&&Array.isArray(e.values)&&e.values.length>0&&e.values.length<=128?e.values.flatMap(n):["WORKFLOW_CONDITIONAL_EXPRESSION_INVALID"]:e.op==="exists"?_e(e,["op","value"])&&$e(e.value)&&e.value.op==="path"?n(e.value):["WORKFLOW_CONDITIONAL_EXISTS_PATH_REQUIRED"]:e.op==="not"?_e(e,["op","value"])?n(e.value):["WORKFLOW_CONDITIONAL_EXPRESSION_INVALID"]:["eq","neq","gt","gte","lt","lte","in","contains"].includes(e.op)&&_e(e,["op","left","right"])?[...n(e.left),...n(e.right)]:["WORKFLOW_CONDITIONAL_EXPRESSION_INVALID"]}function _r(e){if(!Qp(e))return["WORKFLOW_CONDITIONAL_BINDING_LIMIT"];if(!$e(e)||e.provider!=="conditional"||!_e(e,["provider","cases","otherwise"])||!Array.isArray(e.cases)||e.cases.length<1||e.cases.length>hs)return["WORKFLOW_CONDITIONAL_BINDING_INVALID"];let t=[];for(let[o,n]of e.cases.entries()){if(!$e(n)||!_e(n,["label","when","assignee"])||n.label!==void 0&&!bs(n.label,160)){t.push(`WORKFLOW_CONDITIONAL_CASE_INVALID:${o}`);continue}t.push(...Sc(n.when).map(r=>`${r}:${o}`),...Rc(n.assignee).map(r=>`${r}:${o}`))}return t.push(...Rc(e.otherwise).map(o=>`${o}:otherwise`)),[...new Set(t)]}function em(e){switch(e.kind){case"approval":return[e.onApprove,e.onReject];case"parallel":return[...e.branches.map(t=>t.target),e.join];case"condition":return[...e.branches.map(t=>t.target),e.otherwise];case"handle":case"cc":case"action":case"join":return[e.next];default:return[]}}function wc(e,t,o){let n=new Set,r=[e.startAt];for(;r.length&&n.size<200;){let i=r.shift(),a=e.nodes[i];if(!(i===o||n.has(i)||!a)){if(i===t)return!0;n.add(i),r.push(...em(a))}}return!1}function Kn(e,t,o){if(!Bn(o)||Object.keys(e.nodes).length>200||!e.nodes[t]||!wc(e,t))return;let n=e.inputSchema,r=o.split("."),i=!0;if(r[0]==="steps"){let a=r[1],s=e.nodes[a];if(s?.kind!=="action"||a===t||wc(e,t,a)||(n=s.outputSchema,r=r.slice(2),!r.length))return}for(let a of r)if(i&&=Array.isArray(n?.required)&&n.required.includes(a),n=$e(n?.properties)&&Object.hasOwn(n.properties,a)?n.properties[a]:void 0,!$e(n))return;return{schema:n,required:i}}var Tc=e=>[...new Set((Array.isArray(e.type)?e.type:[e.type]).map(t=>t==="integer"?"number":typeof t=="string"?t:"unknown"))];function gr(e,t,o,n,r=!1){let i=c=>gr(c,t,o,n),a=()=>{n.push("WORKFLOW_CONDITIONAL_OPERAND_TYPE_INVALID")},s=c=>c.types.every(l=>["string","number","boolean","null"].includes(l)),d=c=>c.types.length===1&&c.types[0]==="boolean";switch(e.op){case"path":{let c=Kn(t,o,e.path);return c?(!r&&!c.required&&n.push(`WORKFLOW_CONDITIONAL_FACT_OPTIONAL:${e.path}`),{types:Tc(c.schema),...$e(c.schema.items)?{itemTypes:Tc(c.schema.items)}:{}}):(n.push(`WORKFLOW_CONDITIONAL_FACT_UNAVAILABLE:${e.path}`),{types:["unknown"]})}case"literal":{let c=e.value;return{types:[c===null?"null":Array.isArray(c)?"array":typeof c],...Array.isArray(c)?{itemTypes:[...new Set(c.map(l=>l===null?"null":typeof l))]}:{}}}case"exists":return gr(e.value,t,o,n,!0),{types:["boolean"]};case"not":return d(i(e.value))||a(),{types:["boolean"]};case"and":case"or":for(let c of e.values)d(i(c))||a();return{types:["boolean"]};default:{let c=i(e.left),l=i(e.right);if(["eq","neq"].includes(e.op))(!s(c)||!s(l)||!c.types.some(u=>l.types.includes(u)))&&a();else if(["gt","gte","lt","lte"].includes(e.op))(c.types.length!==1||l.types.length!==1||c.types[0]!==l.types[0]||!["number","string"].includes(c.types[0]))&&a();else{let u=e.op==="in"?l:c,p=e.op==="in"?c:l;!(e.op==="contains"&&c.types.length===1&&l.types.length===1&&c.types[0]==="string"&&l.types[0]==="string")&&!(u.types.length===1&&u.types[0]==="array"&&s(p)&&u.itemTypes&&u.itemTypes.every(E=>["string","number","boolean","null"].includes(E)&&p.types.includes(E)))&&a()}return{types:["boolean"]}}}}function tm(e,t){return t.standardProviders.includes(e.provider)?e.provider==="fixed_users"?_e(e,["provider","users"]):e.provider==="app_role"?_e(e,["provider","roleCode","roleCodes"]):e.provider==="app_role_in_scope"&&_e(e,["provider","roleCode","roleCodes","scope"])&&!!e.scope&&!!t.scopeDimensions?.includes(e.scope.dimension):!1}function nm(e,t){let o=_r(e);if(o.length)return o;let n=e,r=t.definition.nodes[t.nodeId];if(!r||r.kind!=="approval"&&r.kind!=="handle")return["WORKFLOW_CONDITIONAL_HUMAN_REQUIRED"];let i=[],a=t.frozenDefault?Os(t.frozenDefault):[],s=Object.values(t.releasedSources);for(let[d,c]of Os(n).entries()){!tm(c,t)&&![...a,...s].some(u=>Nc(u)===Nc(c))&&i.push(`WORKFLOW_CONDITIONAL_LEAF_UNRELEASED:${d}`),c.provider==="supervisor_chain"&&i.push(..._t(t.definition,{bindings:{[r.binding]:c}}));let l=[c.inputPath,c.selectedInputPath,c.resourceIdFrom,c.scope?.valueFrom,...typeof c.from=="object"?[c.from.field]:[],...Object.values(c.routing?.dimensions||{}).map(u=>u.valueFrom),...Object.values(c.routing?.sources||{}).map(u=>u.scope?.valueFrom)].filter(u=>typeof u=="string");for(let u of l)Kn(t.definition,t.nodeId,u)||i.push(`WORKFLOW_CONDITIONAL_LEAF_FACT_UNAVAILABLE:${d}:${u}`)}for(let[d,c]of n.cases.entries()){let l=[],u=gr(c.when,t.definition,t.nodeId,l);(u.types.length!==1||u.types[0]!=="boolean")&&l.push("WORKFLOW_CONDITIONAL_BOOLEAN_REQUIRED"),i.push(...l.map(p=>`${p}:${d}`))}return[...new Set(i)]}function om(e,t,o,n){let r=_r(e);if(r.length)throw new Error(r[0]);let i=t.nodes[o];if(!i||!["approval","handle"].includes(i.kind))throw new Error("WORKFLOW_CONDITIONAL_HUMAN_REQUIRED");for(let d of e.cases){let c=[],l=gr(d.when,t,o,c);if((l.types.length!==1||l.types[0]!=="boolean")&&c.push("WORKFLOW_CONDITIONAL_BOOLEAN_REQUIRED"),c.length)throw new Error(c[0])}let a=[],s={strict:!0,schemaForPath:d=>Kn(t,o,d)?.schema,requiredForPath:d=>Kn(t,o,d)?.required===!0,onPathRead:(d,c)=>{a.push({path:d,present:c!==void 0,...c!==void 0?{value:c}:{}})}};for(let[d,c]of e.cases.entries()){let l=As(c.when,n,s);if(typeof l!="boolean")throw new Error("WORKFLOW_CONDITIONAL_BOOLEAN_REQUIRED");if(l)return{assignee:c.assignee,matched:d,...c.label!==void 0?{label:c.label}:{},factReads:a}}return{assignee:e.otherwise,matched:"otherwise",factReads:a}}var rm="ebe3b5209f438c5c6eb6c3634d72e266a87b310504577c2df90093389da61f5f";0&&(module.exports={APPLICATION_AGENT_LIMITS_V2,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_RESOURCE_MAX_FIELDS,DATA_SUBTABLE_DEFAULT_TOTAL_ROWS,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,FIELD_VALUE_SCHEMAS,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_HIGH_DENSITY_ARTIFACT_CAPACITY_V2,NATIVE_ROLE_MEMBERSHIP_BATCH_MAX_BYTES,NATIVE_ROLE_MEMBERSHIP_BATCH_MAX_ITEMS,NATIVE_UNIQUE_KEY_MAX_BYTES,NATIVE_UNIQUE_KEY_NORMALIZERS,NativeApplicationAgentContractError,NativeConfigurationCompilerError,NativeDataFieldContractV2Error,NativeDataPolicyExpressionV2Error,NativeDecimalLifecycleContractError,NativeEventActionContractError,NativeParentReadPolicyError,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,RICH_TEXT_POLICY_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_DEFAULT_RECIPIENTS,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_CONDITIONAL_ASSIGNMENT_LEAF_PROVIDERS,WORKFLOW_CONDITIONAL_ASSIGNMENT_MAX_BYTES,WORKFLOW_CONDITIONAL_ASSIGNMENT_MAX_CASES,WORKFLOW_CONFIGURABLE_OPERATIONS,WORKFLOW_CONFIGURABLE_PROVIDERS,WORKFLOW_EVENT_TYPES_V2,WORKFLOW_LAUNCH_MAX_INPUTS,WORKFLOW_LAUNCH_PREFLIGHT_PROVIDERS,WORKFLOW_PARALLEL_MAX_BRANCHES,WORKFLOW_PARALLEL_MIN_BRANCHES,WORKFLOW_PLATFORM_NOTIFY_CAPABILITY,WORKFLOW_PLATFORM_NOTIFY_HANDLER,WORKFLOW_PLATFORM_NOTIFY_INPUT_SCHEMA,WORKFLOW_PLATFORM_NOTIFY_OUTPUT_SCHEMA,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_SOURCE_BUNDLE_MAX_BYTES,WORKFLOW_SOURCE_BUNDLE_SCHEMA,WORKFLOW_STEP_DATA_COMMAND_SCHEMA,WORKFLOW_STEP_DATA_RESOLUTION_SCHEMA,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,assertApplicationAgentInstructionPathV2,assertDevelopmentConfigurationManifest,assertDevelopmentConfigurationResult,assertNativeRoleMembershipBatchInput,assertWorkflowNativeStageGuard,assertWorkflowNativeStagePolicy,assertWorkflowNativeStageSourceGuard,assertWorkflowOwnedSubjectCreate,assertWorkflowOwnedSubjectCreateResources,buildResourceWhere,canonicalDataBusinessIntent,classifyWorkflowAdoption,classifyWorkflowSourceDeployment,compileAdvancedWhere,compileApplicationAgentsV2,compileNativeApplicationConfiguration,compileNativeEventAction,compileNativeEventCapturePlansV2,compileRequiredPlatformCapabilitiesV3,compileWorkflowBusinessStepHandlers,createDevelopmentConfigurationManifest,createWorkflowHumanNode,dataOwnedRowLimit,dateEventProjectionEnvelopeSchemaV2,dateEventProjectionFieldsV2,departmentReferenceValueSchema,developmentBackendBase64Bytes,developmentBackendInvocationHeadersValid,developmentBackendInvocationRequestValid,developmentBackendInvocationRevision,developmentBackendOperationMatches,developmentConfigurationKey,editWorkflowDesignerDefinition,evaluateWorkflowExpression,evaluateWorkflowTaskPageExpression,fieldValueSchemaForDefinition,formatWorkflowCompletionDeadline,formatWorkflowExpression,formatWorkflowSupervisorChain,generatedCrudCapabilityOperations,hasDataAuditReadPolicy,hasNativeParentReadPolicy,inspectWorkflowParallel,isDataAuditMetadataField,isDataOwnedRowLimit,isDataSystemSortField,isDataTransactionActorAuthorityGuard,isDataTransactionRecordSetMatchGuard,isNativeDataQueryOperatorV2,isNativeMultiValueFieldV2,isWorkflowPlatformNotify,isWorkflowRejectionNotificationSnapshot,matchesDataActorAuthorityMembership,materializeNativeDataQueryPathTypesV2,nativeAgentFieldHintSchemaV2,nativeAgentFieldSelectorV2,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,normalizeDataMutationGrants,normalizeWorkflowOwnedSubjectCreate,parseDataBusinessCommandResolution,parseDataFieldUserCandidates,parseDecimalReservationLifecycle,parseNativeDataFieldsV2,parseNativeDataResourceInvariantsV2,parseNativeParentReadPolicy,parseNativeUniqueKeys,parseWorkflowStepDataResolution,projectDataResourceView,projectNativeDataResourceViewV2,projectWorkflowGraph,projectWorkflowNodePolicy,pruneWorkflowCanvasBindings,quoteNativeIdentifierV2,refreshWorkflowTaskPageFacts,requiresAggregateOwnedSubtableCapacity,requiresDateTimeMinutePrecision,requiresDevelopmentBackendCredential,requiresExtendedArtifactCapacity,requiresExtendedConfigurationBytes,requiresExtendedDeclarationCapacity,requiresExtendedFieldCapacity,requiresExtendedOwnedSubtableCapacity,requiresExtendedRoleCapacity,requiresHighDensityArtifactCapacity,requiresOwnedSubtableMinimumRows,requiresUserCandidateLaunchScope,requiresWorkflowRoleInputSelection,requiresWorkflowRoleUnion,resolveNativeParentReadBinding,resolveNativeScopeSourceFieldPathV2,resolveWorkflowCommandHandler,resolveWorkflowUserCandidates,resourceReferenceValueSchema,selectWorkflowAssignmentRoutingRules,selectWorkflowConditionalAssignment,serializedDataBytes,userCandidateScopeValue,userReferenceValueSchema,validateAuthenticatedPublicRead,validateDecimalReservationLifecycles,validateManagedConcurrency,validateNativeDataDraftStateV2,validateNativeDataResourceReferencesV2,validateNativeDataResourceSurfaceV2,validateNativeParentReadPolicies,validateUserCandidateReferences,validateWorkflowAdministration,validateWorkflowApprovalEmptyPolicy,validateWorkflowApprovedDelegation,validateWorkflowAssignmentRoutingBindings,validateWorkflowAssignmentRoutingPolicy,validateWorkflowAssignmentRoutingRules,validateWorkflowAuthoringSteps,validateWorkflowAutomaticCc,validateWorkflowBusinessStepHandlerContract,validateWorkflowBusinessStepRequest,validateWorkflowBusinessStepResult,validateWorkflowBusinessStepSchema,validateWorkflowBusinessStepSubscriptions,validateWorkflowBusinessSteps,validateWorkflowCanvasBinding,validateWorkflowCanvasHuman,validateWorkflowCommandHandlers,validateWorkflowCompletionDeadlines,validateWorkflowConditionalAssignment,validateWorkflowConditionalAssignmentShape,validateWorkflowCorrections,validateWorkflowDesignerCapabilities,validateWorkflowDesignerDocument,validateWorkflowHandlingNodes,validateWorkflowInitiatorApprovalPolicy,validateWorkflowInstanceCommandPolicies,validateWorkflowLaunchPreflight,validateWorkflowNodeConfigurationPatch,validateWorkflowParallel,validateWorkflowPlatformNotify,validateWorkflowReadability,validateWorkflowRejectionNotification,validateWorkflowReminders,validateWorkflowReturnEligibility,validateWorkflowReturnPolicies,validateWorkflowRoleInputSelection,validateWorkflowRoleUnion,validateWorkflowSourceBundle,validateWorkflowSupervisorChainBinding,validateWorkflowSupervisorChains,validateWorkflowTaskPages,validateWorkflowUserCandidateBindings,workflowApprovalCanSkip,workflowApprovedDelegationRequests,workflowAssignmentLeaves,workflowAssignmentRoutingFacts,workflowAssignmentRoutingPolicySchema,workflowAssignmentRoutingSemantic,workflowAuthoringCatalog,workflowBindingAllowsEmptyUsers,workflowBindingRoleCodes,workflowBindingSchema,workflowBusinessCommandInvocationSchema,workflowBusinessStepFactSchema,workflowBusinessStepHandlerDigest,workflowBusinessStepInput,workflowBusinessStepPath,workflowBusinessStepReceiptSignatureSuffix,workflowBusinessStepValueMatches,workflowCanvasBindingKey,workflowConditionalAssignmentFact,workflowConditionalAssignmentSchema,workflowDefinitionSchema,workflowDelegationMutationRequestSchema,workflowDesignerTargets,workflowDesignerVariables,workflowExpressionPaths,workflowForwardTargets,workflowHumanOperations,workflowInitiatorApprovalCanComplete,workflowInstanceCommandDeadlineError,workflowInstanceTerminateCapabilityAllowed,workflowInstanceWithdrawalReasonRequired,workflowNativeStagePolicySchema,workflowNodeAllowedOperations,workflowNotificationBinding,workflowOperationCommentRequired,workflowOperationMinimumOpinion,workflowOperationOpinion,workflowOperationReasonRequired,workflowOwnedSubjectCreateSchema,workflowPolicyTimestamp,workflowPositionActive,workflowProducedEventTypes,workflowReturnEligibility,workflowReturnTargetPolicy,workflowReturnTargets,workflowRoleCodesSchema,workflowSourceDigestEqual,workflowSourceImportDrift,workflowSourceReferences,workflowSourceStatus,workflowTaskPageFieldState,workflowTaskPageReplayCoversInvalidation,workflowTaskSaveEnabled,workflowTaskSubtableRows,workflowVariableLabel});