@ixo/editor 6.32.1 → 6.34.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.
- package/dist/BidConfig-YLGSEIOS.js +154 -0
- package/dist/BidConfig-YLGSEIOS.js.map +1 -0
- package/dist/BidFlowDetail-TJCJBJZZ.js +365 -0
- package/dist/BidFlowDetail-TJCJBJZZ.js.map +1 -0
- package/dist/CalendarEventCreateConfig-J2LU6LJO.js +155 -0
- package/dist/CalendarEventCreateConfig-J2LU6LJO.js.map +1 -0
- package/dist/CalendarEventCreateFlowDetail-ZWHZWDOK.js +174 -0
- package/dist/CalendarEventCreateFlowDetail-ZWHZWDOK.js.map +1 -0
- package/dist/CalendarEventListConfig-GQNNF4ZB.js +116 -0
- package/dist/CalendarEventListConfig-GQNNF4ZB.js.map +1 -0
- package/dist/CalendarEventListFlowDetail-SSRTOXIX.js +58 -0
- package/dist/CalendarEventListFlowDetail-SSRTOXIX.js.map +1 -0
- package/dist/CalendarEventUpdateConfig-KACZA6GH.js +133 -0
- package/dist/CalendarEventUpdateConfig-KACZA6GH.js.map +1 -0
- package/dist/CalendarEventUpdateFlowDetail-CD6NHHOU.js +155 -0
- package/dist/CalendarEventUpdateFlowDetail-CD6NHHOU.js.map +1 -0
- package/dist/ClaimConfig-3HKPGK55.js +200 -0
- package/dist/ClaimConfig-3HKPGK55.js.map +1 -0
- package/dist/ClaimFlowDetail-UVEQMEI5.js +641 -0
- package/dist/ClaimFlowDetail-UVEQMEI5.js.map +1 -0
- package/dist/CollectionLifecycleConfig-LCCGZ3CJ.js +149 -0
- package/dist/CollectionLifecycleConfig-LCCGZ3CJ.js.map +1 -0
- package/dist/CollectionLifecycleFlowDetail-WFCSVIIG.js +647 -0
- package/dist/CollectionLifecycleFlowDetail-WFCSVIIG.js.map +1 -0
- package/dist/CollectionUsersConfig-RI2X3YY2.js +271 -0
- package/dist/CollectionUsersConfig-RI2X3YY2.js.map +1 -0
- package/dist/CollectionUsersFlowDetail-ZLCJBWHG.js +1276 -0
- package/dist/CollectionUsersFlowDetail-ZLCJBWHG.js.map +1 -0
- package/dist/CredentialStoreConfig-G66AQDGZ.js +75 -0
- package/dist/CredentialStoreConfig-G66AQDGZ.js.map +1 -0
- package/dist/CredentialStoreFlowDetail-FL7QAM3S.js +99 -0
- package/dist/CredentialStoreFlowDetail-FL7QAM3S.js.map +1 -0
- package/dist/DesignPodConfig-LJ7H2CZ6.js +8 -0
- package/dist/DesignPodConfig-LJ7H2CZ6.js.map +1 -0
- package/dist/DesignPodFlowDetail-JHJWGNVY.js +309 -0
- package/dist/DesignPodFlowDetail-JHJWGNVY.js.map +1 -0
- package/dist/DomainCardPreviewConfig-Q3X5M4WF.js +37 -0
- package/dist/DomainCardPreviewConfig-Q3X5M4WF.js.map +1 -0
- package/dist/DomainCardPreviewFlowDetail-Y2FE7O5Z.js +131 -0
- package/dist/DomainCardPreviewFlowDetail-Y2FE7O5Z.js.map +1 -0
- package/dist/DomainIndexerLookupConfig-N4VONQUY.js +41 -0
- package/dist/DomainIndexerLookupConfig-N4VONQUY.js.map +1 -0
- package/dist/DomainIndexerLookupFlowDetail-GJ7WWK7I.js +70 -0
- package/dist/DomainIndexerLookupFlowDetail-GJ7WWK7I.js.map +1 -0
- package/dist/DomainSignConfig-XFIXROVK.js +47 -0
- package/dist/DomainSignConfig-XFIXROVK.js.map +1 -0
- package/dist/DomainSignFlowDetail-BXZ6JBPR.js +206 -0
- package/dist/DomainSignFlowDetail-BXZ6JBPR.js.map +1 -0
- package/dist/DomainSingleSelectionConfig-ZNKIXB4P.js +101 -0
- package/dist/DomainSingleSelectionConfig-ZNKIXB4P.js.map +1 -0
- package/dist/DomainSingleSelectionFlowDetail-HWTQXSLA.js +147 -0
- package/dist/DomainSingleSelectionFlowDetail-HWTQXSLA.js.map +1 -0
- package/dist/EmailSendConfig-YEGZ5Q77.js +215 -0
- package/dist/EmailSendConfig-YEGZ5Q77.js.map +1 -0
- package/dist/EntityCreateOracleConfig-UZ6ZIMP5.js +150 -0
- package/dist/EntityCreateOracleConfig-UZ6ZIMP5.js.map +1 -0
- package/dist/EntityCreateOracleFlowDetail-H2X7CPYU.js +120 -0
- package/dist/EntityCreateOracleFlowDetail-H2X7CPYU.js.map +1 -0
- package/dist/EntitySingleSelectionConfig-DL57KNKM.js +30 -0
- package/dist/EntitySingleSelectionConfig-DL57KNKM.js.map +1 -0
- package/dist/EntitySingleSelectionFlowDetail-GFQGX3GA.js +118 -0
- package/dist/EntitySingleSelectionFlowDetail-GFQGX3GA.js.map +1 -0
- package/dist/EntityTransferConfig-JVZ3H35B.js +62 -0
- package/dist/EntityTransferConfig-JVZ3H35B.js.map +1 -0
- package/dist/EntityTransferFlowDetail-XEXM34XB.js +132 -0
- package/dist/EntityTransferFlowDetail-XEXM34XB.js.map +1 -0
- package/dist/EvalEngineConfig-CHC4IRN3.js +464 -0
- package/dist/EvalEngineConfig-CHC4IRN3.js.map +1 -0
- package/dist/EvalEngineFlowDetail-PUFRNO4U.js +4291 -0
- package/dist/EvalEngineFlowDetail-PUFRNO4U.js.map +1 -0
- package/dist/EvaluateBidConfig-OE4CM43G.js +151 -0
- package/dist/EvaluateBidConfig-OE4CM43G.js.map +1 -0
- package/dist/EvaluateBidFlowDetail-2S2N4YTW.js +564 -0
- package/dist/EvaluateBidFlowDetail-2S2N4YTW.js.map +1 -0
- package/dist/EvaluateClaimConfig-3D4F5LHU.js +297 -0
- package/dist/EvaluateClaimConfig-3D4F5LHU.js.map +1 -0
- package/dist/EvaluateClaimFlowDetail-QYR7PJRD.js +2237 -0
- package/dist/EvaluateClaimFlowDetail-QYR7PJRD.js.map +1 -0
- package/dist/FormSubmitConfig-UFZYMLUN.js +59 -0
- package/dist/FormSubmitConfig-UFZYMLUN.js.map +1 -0
- package/dist/FormSubmitFlowDetail-IAHDJS6P.js +169 -0
- package/dist/FormSubmitFlowDetail-IAHDJS6P.js.map +1 -0
- package/dist/GovernanceAuthzExecFlowDetail-SQBGU5BX.js +166 -0
- package/dist/GovernanceAuthzExecFlowDetail-SQBGU5BX.js.map +1 -0
- package/dist/GovernanceAuthzGrantFlowDetail-DZPNLANT.js +88 -0
- package/dist/GovernanceAuthzGrantFlowDetail-DZPNLANT.js.map +1 -0
- package/dist/GovernanceAuthzRevokeFlowDetail-3JZ4IUJG.js +88 -0
- package/dist/GovernanceAuthzRevokeFlowDetail-3JZ4IUJG.js.map +1 -0
- package/dist/GovernanceChainVoteFlowDetail-475UDNG6.js +83 -0
- package/dist/GovernanceChainVoteFlowDetail-475UDNG6.js.map +1 -0
- package/dist/GovernanceConfigConfig-V3WM4WBP.js +30 -0
- package/dist/GovernanceConfigConfig-V3WM4WBP.js.map +1 -0
- package/dist/GovernanceConfigFlowDetail-SQ5PPDRX.js +267 -0
- package/dist/GovernanceConfigFlowDetail-SQ5PPDRX.js.map +1 -0
- package/dist/GovernanceContractExecuteFlowDetail-H2ZV6W2E.js +113 -0
- package/dist/GovernanceContractExecuteFlowDetail-H2ZV6W2E.js.map +1 -0
- package/dist/GovernanceContractInstantiateFlowDetail-YJJMGM54.js +144 -0
- package/dist/GovernanceContractInstantiateFlowDetail-YJJMGM54.js.map +1 -0
- package/dist/GovernanceContractManageCw20FlowDetail-OCBMW3YJ.js +72 -0
- package/dist/GovernanceContractManageCw20FlowDetail-OCBMW3YJ.js.map +1 -0
- package/dist/GovernanceContractMigrateFlowDetail-JDNIKTT3.js +104 -0
- package/dist/GovernanceContractMigrateFlowDetail-JDNIKTT3.js.map +1 -0
- package/dist/GovernanceContractUpdateAdminFlowDetail-SZBOAOCC.js +68 -0
- package/dist/GovernanceContractUpdateAdminFlowDetail-SZBOAOCC.js.map +1 -0
- package/dist/GovernanceCustomMessageFlowDetail-CXD4ZATO.js +78 -0
- package/dist/GovernanceCustomMessageFlowDetail-CXD4ZATO.js.map +1 -0
- package/dist/GovernanceDaoAcceptToMarketplaceFlowDetail-Q6ZBNY7Z.js +98 -0
- package/dist/GovernanceDaoAcceptToMarketplaceFlowDetail-Q6ZBNY7Z.js.map +1 -0
- package/dist/GovernanceDaoAdminExecFlowDetail-JAEAY2US.js +94 -0
- package/dist/GovernanceDaoAdminExecFlowDetail-JAEAY2US.js.map +1 -0
- package/dist/GovernanceDaoCreateEntityFlowDetail-7RVNTVAB.js +96 -0
- package/dist/GovernanceDaoCreateEntityFlowDetail-7RVNTVAB.js.map +1 -0
- package/dist/GovernanceDaoJoinFlowDetail-XYCTCNHO.js +68 -0
- package/dist/GovernanceDaoJoinFlowDetail-XYCTCNHO.js.map +1 -0
- package/dist/GovernanceDaoManageStorageFlowDetail-LMLYLYYC.js +93 -0
- package/dist/GovernanceDaoManageStorageFlowDetail-LMLYLYYC.js.map +1 -0
- package/dist/GovernanceDaoManageSubDaosFlowDetail-YUFQ67JN.js +84 -0
- package/dist/GovernanceDaoManageSubDaosFlowDetail-YUFQ67JN.js.map +1 -0
- package/dist/GovernanceDaoUpdateInfoFlowDetail-G5FIBY4L.js +104 -0
- package/dist/GovernanceDaoUpdateInfoFlowDetail-G5FIBY4L.js.map +1 -0
- package/dist/GovernanceMemberProposalConfig-IGPXEFDB.js +42 -0
- package/dist/GovernanceMemberProposalConfig-IGPXEFDB.js.map +1 -0
- package/dist/GovernanceMemberProposalFlowDetail-T3VURONF.js +240 -0
- package/dist/GovernanceMemberProposalFlowDetail-T3VURONF.js.map +1 -0
- package/dist/GovernanceNftBurnFlowDetail-AG4I2O7H.js +69 -0
- package/dist/GovernanceNftBurnFlowDetail-AG4I2O7H.js.map +1 -0
- package/dist/GovernanceNftManageCollectionsFlowDetail-UAAGO3Q6.js +71 -0
- package/dist/GovernanceNftManageCollectionsFlowDetail-UAAGO3Q6.js.map +1 -0
- package/dist/GovernanceNftTransferFlowDetail-KXM7DTOV.js +130 -0
- package/dist/GovernanceNftTransferFlowDetail-KXM7DTOV.js.map +1 -0
- package/dist/GovernanceSettingsProposalConfig-4SLJTBLW.js +42 -0
- package/dist/GovernanceSettingsProposalConfig-4SLJTBLW.js.map +1 -0
- package/dist/GovernanceSettingsProposalFlowDetail-VFZPSCLR.js +165 -0
- package/dist/GovernanceSettingsProposalFlowDetail-VFZPSCLR.js.map +1 -0
- package/dist/GovernanceStakingStakeFlowDetail-ULLJ7FLM.js +123 -0
- package/dist/GovernanceStakingStakeFlowDetail-ULLJ7FLM.js.map +1 -0
- package/dist/GovernanceStakingStakeToGroupFlowDetail-CSPKJA3H.js +84 -0
- package/dist/GovernanceStakingStakeToGroupFlowDetail-CSPKJA3H.js.map +1 -0
- package/dist/GovernanceSubmissionConfigProposalFlowDetail-MZCPSZF2.js +111 -0
- package/dist/GovernanceSubmissionConfigProposalFlowDetail-MZCPSZF2.js.map +1 -0
- package/dist/GovernanceTransactionMintFlowDetail-Y2WRAODH.js +66 -0
- package/dist/GovernanceTransactionMintFlowDetail-Y2WRAODH.js.map +1 -0
- package/dist/GovernanceTransactionPerformTokenSwapFlowDetail-GEK6PMMI.js +133 -0
- package/dist/GovernanceTransactionPerformTokenSwapFlowDetail-GEK6PMMI.js.map +1 -0
- package/dist/GovernanceTransactionSendFundsConfig-VBKMLSF3.js +42 -0
- package/dist/GovernanceTransactionSendFundsConfig-VBKMLSF3.js.map +1 -0
- package/dist/GovernanceTransactionSendFundsFlowDetail-5TZB64VL.js +182 -0
- package/dist/GovernanceTransactionSendFundsFlowDetail-5TZB64VL.js.map +1 -0
- package/dist/GovernanceTransactionSendGroupTokenFlowDetail-EGOWVZM2.js +155 -0
- package/dist/GovernanceTransactionSendGroupTokenFlowDetail-EGOWVZM2.js.map +1 -0
- package/dist/GovernanceTransactionWithdrawTokenSwapFlowDetail-6XWVO5O6.js +56 -0
- package/dist/GovernanceTransactionWithdrawTokenSwapFlowDetail-6XWVO5O6.js.map +1 -0
- package/dist/GovernanceValidatorActionsFlowDetail-ZMLPAFUB.js +117 -0
- package/dist/GovernanceValidatorActionsFlowDetail-ZMLPAFUB.js.map +1 -0
- package/dist/HarvestConfig-AIGOGBFR.js +56 -0
- package/dist/HarvestConfig-AIGOGBFR.js.map +1 -0
- package/dist/HarvestFlowDetail-X3RUH3X3.js +131 -0
- package/dist/HarvestFlowDetail-X3RUH3X3.js.map +1 -0
- package/dist/HttpRequestConfig-OQEJIIJY.js +194 -0
- package/dist/HttpRequestConfig-OQEJIIJY.js.map +1 -0
- package/dist/HttpRequestFlowDetail-JVLV533Z.js +116 -0
- package/dist/HttpRequestFlowDetail-JVLV533Z.js.map +1 -0
- package/dist/IdentityCreateConfig-ZBUOJ6AL.js +94 -0
- package/dist/IdentityCreateConfig-ZBUOJ6AL.js.map +1 -0
- package/dist/IdentityCreateFlowDetail-WGKO43IH.js +83 -0
- package/dist/IdentityCreateFlowDetail-WGKO43IH.js.map +1 -0
- package/dist/IidCreateConfig-RRV2DYXI.js +75 -0
- package/dist/IidCreateConfig-RRV2DYXI.js.map +1 -0
- package/dist/IidCreateFlowDetail-6M32S6XS.js +57 -0
- package/dist/IidCreateFlowDetail-6M32S6XS.js.map +1 -0
- package/dist/KycVerifyConfig-VCG65K5K.js +65 -0
- package/dist/KycVerifyConfig-VCG65K5K.js.map +1 -0
- package/dist/KycVerifyFlowDetail-EWOMXSD3.js +421 -0
- package/dist/KycVerifyFlowDetail-EWOMXSD3.js.map +1 -0
- package/dist/ListDomainFlowsConfig-3JZEPTOJ.js +37 -0
- package/dist/ListDomainFlowsConfig-3JZEPTOJ.js.map +1 -0
- package/dist/ListDomainFlowsFlowDetail-XX5AXDZZ.js +257 -0
- package/dist/ListDomainFlowsFlowDetail-XX5AXDZZ.js.map +1 -0
- package/dist/LoadBatchesConfig-IMODIWRT.js +38 -0
- package/dist/LoadBatchesConfig-IMODIWRT.js.map +1 -0
- package/dist/LoadBatchesFlowDetail-GB24T76O.js +101 -0
- package/dist/LoadBatchesFlowDetail-GB24T76O.js.map +1 -0
- package/dist/MatrixDmConfig-NBII27CS.js +120 -0
- package/dist/MatrixDmConfig-NBII27CS.js.map +1 -0
- package/dist/MatrixRegisterConfig-N2U4FBYF.js +62 -0
- package/dist/MatrixRegisterConfig-N2U4FBYF.js.map +1 -0
- package/dist/MatrixRegisterFlowDetail-D5YNL5QX.js +86 -0
- package/dist/MatrixRegisterFlowDetail-D5YNL5QX.js.map +1 -0
- package/dist/MemberMultiSelectConfig-E7WUB2WD.js +30 -0
- package/dist/MemberMultiSelectConfig-E7WUB2WD.js.map +1 -0
- package/dist/MemberMultiSelectFlowDetail-6C4ZMSDR.js +392 -0
- package/dist/MemberMultiSelectFlowDetail-6C4ZMSDR.js.map +1 -0
- package/dist/OracleConfig-R7TDTTKN.js +56 -0
- package/dist/OracleConfig-R7TDTTKN.js.map +1 -0
- package/dist/OracleConfigureOracleConfig-QFF74X3N.js +198 -0
- package/dist/OracleConfigureOracleConfig-QFF74X3N.js.map +1 -0
- package/dist/OracleConfigureOracleFlowDetail-73BHAN76.js +255 -0
- package/dist/OracleConfigureOracleFlowDetail-73BHAN76.js.map +1 -0
- package/dist/OracleContractConfig-PHY5L7W2.js +38 -0
- package/dist/OracleContractConfig-PHY5L7W2.js.map +1 -0
- package/dist/OracleContractFlowDetail-M3PM4AU4.js +78 -0
- package/dist/OracleContractFlowDetail-M3PM4AU4.js.map +1 -0
- package/dist/OracleDeployConfig-QBG76ATZ.js +10 -0
- package/dist/OracleDeployConfig-QBG76ATZ.js.map +1 -0
- package/dist/OracleDeployFlowDetail-WKTMD2AD.js +231 -0
- package/dist/OracleDeployFlowDetail-WKTMD2AD.js.map +1 -0
- package/dist/OracleDeploySetupConfig-75XPGFJQ.js +10 -0
- package/dist/OracleDeploySetupConfig-75XPGFJQ.js.map +1 -0
- package/dist/OracleDeploySetupFlowDetail-R3BQ7EAU.js +165 -0
- package/dist/OracleDeploySetupFlowDetail-R3BQ7EAU.js.map +1 -0
- package/dist/OracleDeployStartConfig-NA6GZ4VQ.js +10 -0
- package/dist/OracleDeployStartConfig-NA6GZ4VQ.js.map +1 -0
- package/dist/OracleDeployStartFlowDetail-EL3CMDMG.js +89 -0
- package/dist/OracleDeployStartFlowDetail-EL3CMDMG.js.map +1 -0
- package/dist/OracleFlowDetail-5JCJK3GH.js +76 -0
- package/dist/OracleFlowDetail-5JCJK3GH.js.map +1 -0
- package/dist/OraclePromptConfig-YBRESISH.js +39 -0
- package/dist/OraclePromptConfig-YBRESISH.js.map +1 -0
- package/dist/OraclePromptFlowDetail-O3XNK7HY.js +112 -0
- package/dist/OraclePromptFlowDetail-O3XNK7HY.js.map +1 -0
- package/dist/OracleStoreConfigConfig-TUZWTJMA.js +134 -0
- package/dist/OracleStoreConfigConfig-TUZWTJMA.js.map +1 -0
- package/dist/OracleStoreConfigFlowDetail-Q6AUUSUL.js +99 -0
- package/dist/OracleStoreConfigFlowDetail-Q6AUUSUL.js.map +1 -0
- package/dist/OracleStoreSecretsAndConfigConfig-SZPYEK7U.js +198 -0
- package/dist/OracleStoreSecretsAndConfigConfig-SZPYEK7U.js.map +1 -0
- package/dist/OracleStoreSecretsAndConfigFlowDetail-BFV2EHLT.js +220 -0
- package/dist/OracleStoreSecretsAndConfigFlowDetail-BFV2EHLT.js.map +1 -0
- package/dist/OracleStoreSecretsConfig-PQMF7LFT.js +191 -0
- package/dist/OracleStoreSecretsConfig-PQMF7LFT.js.map +1 -0
- package/dist/OracleStoreSecretsFlowDetail-DNNOPHVA.js +197 -0
- package/dist/OracleStoreSecretsFlowDetail-DNNOPHVA.js.map +1 -0
- package/dist/ProposalCreateConfig-U5IHZNT7.js +161 -0
- package/dist/ProposalCreateConfig-U5IHZNT7.js.map +1 -0
- package/dist/ProposalCreateFlowDetail-4VZZPAWH.js +235 -0
- package/dist/ProposalCreateFlowDetail-4VZZPAWH.js.map +1 -0
- package/dist/ProposalVoteConfig-MH4MU7SL.js +150 -0
- package/dist/ProposalVoteConfig-MH4MU7SL.js.map +1 -0
- package/dist/ProposalVoteFlowDetail-IJJ3OHAB.js +280 -0
- package/dist/ProposalVoteFlowDetail-IJJ3OHAB.js.map +1 -0
- package/dist/ProtocolSelectConfig-S5U3P6K7.js +48 -0
- package/dist/ProtocolSelectConfig-S5U3P6K7.js.map +1 -0
- package/dist/ProtocolSelectFlowDetail-XBSJIEIH.js +116 -0
- package/dist/ProtocolSelectFlowDetail-XBSJIEIH.js.map +1 -0
- package/dist/RetireConfig-MV37WWZ6.js +59 -0
- package/dist/RetireConfig-MV37WWZ6.js.map +1 -0
- package/dist/RetireFlowDetail-VZ5O4SXI.js +147 -0
- package/dist/RetireFlowDetail-VZ5O4SXI.js.map +1 -0
- package/dist/SandboxProvisionConfig-ZGG4IRHM.js +46 -0
- package/dist/SandboxProvisionConfig-ZGG4IRHM.js.map +1 -0
- package/dist/SandboxProvisionFlowDetail-RUY64INV.js +79 -0
- package/dist/SandboxProvisionFlowDetail-RUY64INV.js.map +1 -0
- package/dist/WalletFundConfig-CMM3EP3B.js +117 -0
- package/dist/WalletFundConfig-CMM3EP3B.js.map +1 -0
- package/dist/WalletFundFlowDetail-TXWCZA4K.js +279 -0
- package/dist/WalletFundFlowDetail-TXWCZA4K.js.map +1 -0
- package/dist/WalletGenerateAndFundConfig-364RSEND.js +10 -0
- package/dist/WalletGenerateAndFundConfig-364RSEND.js.map +1 -0
- package/dist/WalletGenerateAndFundFlowDetail-C2LZW3NO.js +54 -0
- package/dist/WalletGenerateAndFundFlowDetail-C2LZW3NO.js.map +1 -0
- package/dist/WalletGenerateConfig-YYLCS65G.js +10 -0
- package/dist/WalletGenerateConfig-YYLCS65G.js.map +1 -0
- package/dist/WalletGenerateFlowDetail-CQCNDGJA.js +53 -0
- package/dist/WalletGenerateFlowDetail-CQCNDGJA.js.map +1 -0
- package/dist/XeroContactCreateConfig-OWG5PA3B.js +102 -0
- package/dist/XeroContactCreateConfig-OWG5PA3B.js.map +1 -0
- package/dist/XeroContactCreateFlowDetail-6MAINCF6.js +127 -0
- package/dist/XeroContactCreateFlowDetail-6MAINCF6.js.map +1 -0
- package/dist/XeroInvoiceCreateConfig-O74RUSZM.js +403 -0
- package/dist/XeroInvoiceCreateConfig-O74RUSZM.js.map +1 -0
- package/dist/XeroInvoiceCreateFlowDetail-UL7KS6CZ.js +631 -0
- package/dist/XeroInvoiceCreateFlowDetail-UL7KS6CZ.js.map +1 -0
- package/dist/XeroInvoiceListConfig-UR3GONBJ.js +113 -0
- package/dist/XeroInvoiceListConfig-UR3GONBJ.js.map +1 -0
- package/dist/XeroInvoiceListFlowDetail-LYHODWH6.js +58 -0
- package/dist/XeroInvoiceListFlowDetail-LYHODWH6.js.map +1 -0
- package/dist/XeroPaymentCreateConfig-RPMAIK6E.js +116 -0
- package/dist/XeroPaymentCreateConfig-RPMAIK6E.js.map +1 -0
- package/dist/XeroPaymentCreateFlowDetail-CF35MVIM.js +573 -0
- package/dist/XeroPaymentCreateFlowDetail-CF35MVIM.js.map +1 -0
- package/dist/action-manifest.json +2091 -393
- package/dist/chunk-2GAYKKTL.js +9 -0
- package/dist/chunk-2GAYKKTL.js.map +1 -0
- package/dist/chunk-2WPEATI7.js +315 -0
- package/dist/chunk-2WPEATI7.js.map +1 -0
- package/dist/chunk-3O42FYT3.js +3333 -0
- package/dist/chunk-3O42FYT3.js.map +1 -0
- package/dist/chunk-3TUYY4HK.js +20 -0
- package/dist/chunk-3TUYY4HK.js.map +1 -0
- package/dist/chunk-3XSLBJYI.js +554 -0
- package/dist/chunk-3XSLBJYI.js.map +1 -0
- package/dist/chunk-4DGCCXD6.js +710 -0
- package/dist/chunk-4DGCCXD6.js.map +1 -0
- package/dist/chunk-4NAFQF6V.js +11 -0
- package/dist/chunk-4NAFQF6V.js.map +1 -0
- package/dist/chunk-4PONO4US.js +799 -0
- package/dist/chunk-4PONO4US.js.map +1 -0
- package/dist/chunk-4TMOIK5M.js +21 -0
- package/dist/chunk-4TMOIK5M.js.map +1 -0
- package/dist/chunk-5IH3VC5I.js +102 -0
- package/dist/chunk-5IH3VC5I.js.map +1 -0
- package/dist/chunk-5NTKDOP6.js +89 -0
- package/dist/chunk-5NTKDOP6.js.map +1 -0
- package/dist/chunk-5O2SFRGU.js +18 -0
- package/dist/chunk-5O2SFRGU.js.map +1 -0
- package/dist/chunk-632JLECF.js +55 -0
- package/dist/chunk-632JLECF.js.map +1 -0
- package/dist/chunk-676HDB7K.js +95 -0
- package/dist/chunk-676HDB7K.js.map +1 -0
- package/dist/chunk-6ESTNTSH.js +223 -0
- package/dist/chunk-6ESTNTSH.js.map +1 -0
- package/dist/chunk-6GKJR52N.js +15 -0
- package/dist/chunk-6GKJR52N.js.map +1 -0
- package/dist/chunk-6L4ZIKYU.js +23 -0
- package/dist/chunk-6L4ZIKYU.js.map +1 -0
- package/dist/chunk-76YX5R4L.js +11 -0
- package/dist/chunk-76YX5R4L.js.map +1 -0
- package/dist/chunk-7J3GFMN3.js +32 -0
- package/dist/chunk-7J3GFMN3.js.map +1 -0
- package/dist/chunk-7LSARC2G.js +102 -0
- package/dist/chunk-7LSARC2G.js.map +1 -0
- package/dist/chunk-7W7UUUIE.js +609 -0
- package/dist/chunk-7W7UUUIE.js.map +1 -0
- package/dist/chunk-7ZLW7H37.js +21 -0
- package/dist/chunk-7ZLW7H37.js.map +1 -0
- package/dist/chunk-AAZHI22G.js +18 -0
- package/dist/chunk-AAZHI22G.js.map +1 -0
- package/dist/chunk-ACNE455I.js +76 -0
- package/dist/chunk-ACNE455I.js.map +1 -0
- package/dist/chunk-BKLSSLPZ.js +27 -0
- package/dist/chunk-BKLSSLPZ.js.map +1 -0
- package/dist/chunk-BZ7UPUTY.js +417 -0
- package/dist/chunk-BZ7UPUTY.js.map +1 -0
- package/dist/chunk-CGFAICUE.js +28 -0
- package/dist/chunk-CGFAICUE.js.map +1 -0
- package/dist/chunk-CMCEWQ3C.js +19 -0
- package/dist/chunk-CMCEWQ3C.js.map +1 -0
- package/dist/chunk-CP4UV436.js +41 -0
- package/dist/chunk-CP4UV436.js.map +1 -0
- package/dist/chunk-D2CQPNQG.js +27508 -0
- package/dist/chunk-D2CQPNQG.js.map +1 -0
- package/dist/chunk-DIQRZP7Z.js +51 -0
- package/dist/chunk-DIQRZP7Z.js.map +1 -0
- package/dist/chunk-EBFFDDAS.js +13 -0
- package/dist/chunk-EBFFDDAS.js.map +1 -0
- package/dist/chunk-EGVS23DR.js +85 -0
- package/dist/chunk-EGVS23DR.js.map +1 -0
- package/dist/chunk-EKBQ7K4N.js +15 -0
- package/dist/chunk-EKBQ7K4N.js.map +1 -0
- package/dist/chunk-EKQCZRAN.js +24 -0
- package/dist/chunk-EKQCZRAN.js.map +1 -0
- package/dist/chunk-EYKZIZ5J.js +48 -0
- package/dist/chunk-EYKZIZ5J.js.map +1 -0
- package/dist/{chunk-NEOPTPDF.js → chunk-F4PTFXZH.js} +11554 -22046
- package/dist/chunk-F4PTFXZH.js.map +1 -0
- package/dist/chunk-FFYZXA75.js +58 -0
- package/dist/chunk-FFYZXA75.js.map +1 -0
- package/dist/chunk-GFGDHPZ2.js +22 -0
- package/dist/chunk-GFGDHPZ2.js.map +1 -0
- package/dist/chunk-GR3CDFID.js +18 -0
- package/dist/chunk-GR3CDFID.js.map +1 -0
- package/dist/chunk-GR4SIU32.js +104 -0
- package/dist/chunk-GR4SIU32.js.map +1 -0
- package/dist/chunk-H5E46IIS.js +18 -0
- package/dist/chunk-H5E46IIS.js.map +1 -0
- package/dist/chunk-HFHVAMZL.js +22 -0
- package/dist/chunk-HFHVAMZL.js.map +1 -0
- package/dist/chunk-HRRI4BLF.js +4456 -0
- package/dist/chunk-HRRI4BLF.js.map +1 -0
- package/dist/chunk-HT6L7A5M.js +12 -0
- package/dist/chunk-HT6L7A5M.js.map +1 -0
- package/dist/chunk-I2FPFISM.js +301 -0
- package/dist/chunk-I2FPFISM.js.map +1 -0
- package/dist/chunk-IADAQJDH.js +28 -0
- package/dist/chunk-IADAQJDH.js.map +1 -0
- package/dist/chunk-IBOBCMQQ.js +99 -0
- package/dist/chunk-IBOBCMQQ.js.map +1 -0
- package/dist/chunk-IFWKRCFF.js +56 -0
- package/dist/chunk-IFWKRCFF.js.map +1 -0
- package/dist/chunk-IH4T7V4C.js +40 -0
- package/dist/chunk-IH4T7V4C.js.map +1 -0
- package/dist/chunk-IIIZZ4E4.js +1679 -0
- package/dist/chunk-IIIZZ4E4.js.map +1 -0
- package/dist/chunk-ILSFU3WD.js +83 -0
- package/dist/chunk-ILSFU3WD.js.map +1 -0
- package/dist/chunk-IX3VBV3L.js +43 -0
- package/dist/chunk-IX3VBV3L.js.map +1 -0
- package/dist/chunk-JBBFSORW.js +846 -0
- package/dist/chunk-JBBFSORW.js.map +1 -0
- package/dist/chunk-JIDTNKKL.js +1183 -0
- package/dist/chunk-JIDTNKKL.js.map +1 -0
- package/dist/chunk-JSPE6NGZ.js +22 -0
- package/dist/chunk-JSPE6NGZ.js.map +1 -0
- package/dist/chunk-JVROGQ7Q.js +150 -0
- package/dist/chunk-JVROGQ7Q.js.map +1 -0
- package/dist/chunk-K4WUMWNJ.js +32 -0
- package/dist/chunk-K4WUMWNJ.js.map +1 -0
- package/dist/chunk-K74XQ4Q5.js +11 -0
- package/dist/chunk-K74XQ4Q5.js.map +1 -0
- package/dist/chunk-KLLMJ4U3.js +22 -0
- package/dist/chunk-KLLMJ4U3.js.map +1 -0
- package/dist/chunk-LTKVCJ2E.js +27 -0
- package/dist/chunk-LTKVCJ2E.js.map +1 -0
- package/dist/chunk-M36DJTFZ.js +34 -0
- package/dist/chunk-M36DJTFZ.js.map +1 -0
- package/dist/chunk-MHM52LCJ.js +154 -0
- package/dist/chunk-MHM52LCJ.js.map +1 -0
- package/dist/chunk-MQCDMHRZ.js +59 -0
- package/dist/chunk-MQCDMHRZ.js.map +1 -0
- package/dist/chunk-N3ORMGAI.js +348 -0
- package/dist/chunk-N3ORMGAI.js.map +1 -0
- package/dist/chunk-NCSGIRRQ.js +28 -0
- package/dist/chunk-NCSGIRRQ.js.map +1 -0
- package/dist/chunk-NIXT2SBH.js +1423 -0
- package/dist/chunk-NIXT2SBH.js.map +1 -0
- package/dist/chunk-NJAII6CO.js +148 -0
- package/dist/chunk-NJAII6CO.js.map +1 -0
- package/dist/chunk-NKE4TL43.js +92 -0
- package/dist/chunk-NKE4TL43.js.map +1 -0
- package/dist/chunk-NZ7AXA7B.js +1 -0
- package/dist/chunk-NZ7AXA7B.js.map +1 -0
- package/dist/chunk-OCAYEGI2.js +26 -0
- package/dist/chunk-OCAYEGI2.js.map +1 -0
- package/dist/chunk-OMLI45ER.js +90 -0
- package/dist/chunk-OMLI45ER.js.map +1 -0
- package/dist/chunk-P7OBLJAG.js +88 -0
- package/dist/chunk-P7OBLJAG.js.map +1 -0
- package/dist/chunk-PAY3CBWL.js +2321 -0
- package/dist/chunk-PAY3CBWL.js.map +1 -0
- package/dist/chunk-PFF6VY35.js +257 -0
- package/dist/chunk-PFF6VY35.js.map +1 -0
- package/dist/chunk-PYNDJDWZ.js +1758 -0
- package/dist/chunk-PYNDJDWZ.js.map +1 -0
- package/dist/chunk-QDQ6UMMN.js +53 -0
- package/dist/chunk-QDQ6UMMN.js.map +1 -0
- package/dist/chunk-QGT3G2XG.js +24 -0
- package/dist/chunk-QGT3G2XG.js.map +1 -0
- package/dist/chunk-QZYCJ2GZ.js +55 -0
- package/dist/chunk-QZYCJ2GZ.js.map +1 -0
- package/dist/chunk-REZ7RFSA.js +124 -0
- package/dist/chunk-REZ7RFSA.js.map +1 -0
- package/dist/chunk-RRYBAE6E.js +2449 -0
- package/dist/chunk-RRYBAE6E.js.map +1 -0
- package/dist/chunk-RWUZOB62.js +34 -0
- package/dist/chunk-RWUZOB62.js.map +1 -0
- package/dist/chunk-SB5UCPZH.js +116 -0
- package/dist/chunk-SB5UCPZH.js.map +1 -0
- package/dist/chunk-SEJJ7CRI.js +99 -0
- package/dist/chunk-SEJJ7CRI.js.map +1 -0
- package/dist/chunk-SHBFGRPV.js +45 -0
- package/dist/chunk-SHBFGRPV.js.map +1 -0
- package/dist/chunk-SOFJ4GC5.js +45 -0
- package/dist/chunk-SOFJ4GC5.js.map +1 -0
- package/dist/chunk-STH2HPZK.js +44 -0
- package/dist/chunk-STH2HPZK.js.map +1 -0
- package/dist/chunk-TK3JNKME.js +28 -0
- package/dist/chunk-TK3JNKME.js.map +1 -0
- package/dist/chunk-TMONHFE3.js +46 -0
- package/dist/chunk-TMONHFE3.js.map +1 -0
- package/dist/chunk-TR4KO3AG.js +44 -0
- package/dist/chunk-TR4KO3AG.js.map +1 -0
- package/dist/chunk-TS2LNBF2.js +68 -0
- package/dist/chunk-TS2LNBF2.js.map +1 -0
- package/dist/chunk-UZUMBFPP.js +26 -0
- package/dist/chunk-UZUMBFPP.js.map +1 -0
- package/dist/chunk-VRZ5LMOW.js +176 -0
- package/dist/chunk-VRZ5LMOW.js.map +1 -0
- package/dist/chunk-WLGGY6Z6.js +75 -0
- package/dist/chunk-WLGGY6Z6.js.map +1 -0
- package/dist/chunk-WO7V6ZNC.js +11 -0
- package/dist/chunk-WO7V6ZNC.js.map +1 -0
- package/dist/chunk-WXSENSRP.js +64 -0
- package/dist/chunk-WXSENSRP.js.map +1 -0
- package/dist/chunk-XEKBZ2SA.js +19 -0
- package/dist/chunk-XEKBZ2SA.js.map +1 -0
- package/dist/chunk-XPBKU3JX.js +61 -0
- package/dist/chunk-XPBKU3JX.js.map +1 -0
- package/dist/chunk-XRYXBXWH.js +24 -0
- package/dist/chunk-XRYXBXWH.js.map +1 -0
- package/dist/chunk-XVA7QRVH.js +22 -0
- package/dist/chunk-XVA7QRVH.js.map +1 -0
- package/dist/chunk-YCTHHBSS.js +37 -0
- package/dist/chunk-YCTHHBSS.js.map +1 -0
- package/dist/chunk-YHPWD5NE.js +70 -0
- package/dist/chunk-YHPWD5NE.js.map +1 -0
- package/dist/chunk-YLNEKJQ5.js +126 -0
- package/dist/chunk-YLNEKJQ5.js.map +1 -0
- package/dist/chunk-YN4CEKCF.js +73 -0
- package/dist/chunk-YN4CEKCF.js.map +1 -0
- package/dist/chunk-YYNMESIF.js +17 -0
- package/dist/chunk-YYNMESIF.js.map +1 -0
- package/dist/chunk-Z6PRMCV6.js +1 -0
- package/dist/chunk-Z6PRMCV6.js.map +1 -0
- package/dist/chunk-ZDNW6VQG.js +11 -0
- package/dist/chunk-ZDNW6VQG.js.map +1 -0
- package/dist/chunk-ZP4D73DO.js +36 -0
- package/dist/chunk-ZP4D73DO.js.map +1 -0
- package/dist/chunk-ZUATADUV.js +26 -0
- package/dist/chunk-ZUATADUV.js.map +1 -0
- package/dist/{connections-1NtNQrsY.d.ts → connections-CEcurtWI.d.ts} +74 -9
- package/dist/core/index.cjs +14041 -6973
- package/dist/core/index.cjs.map +1 -1
- package/dist/core/index.d.ts +422 -138
- package/dist/core/index.js +425 -183
- package/dist/core/index.js.map +1 -1
- package/dist/flow-vnext/index.cjs +2842 -0
- package/dist/flow-vnext/index.cjs.map +1 -0
- package/dist/flow-vnext/index.d.ts +3 -0
- package/dist/flow-vnext/index.js +119 -0
- package/dist/flow-vnext/index.js.map +1 -0
- package/dist/{graphql-client-Bn0tN049.d.ts → graphql-client-B2tREsx6.d.ts} +3 -1
- package/dist/index-b9xxXGFs.d.ts +1230 -0
- package/dist/index.d.ts +5 -3
- package/dist/index.js +202 -37
- package/dist/index.js.map +1 -1
- package/dist/legacy-BpgIqaQ5.d.ts +14 -0
- package/dist/mantine/index.d.ts +7 -4
- package/dist/mantine/index.js +84 -30
- package/dist/mantine/index.js.map +1 -1
- package/dist/{runtime-BFwvCQDF.d.ts → types-Dqk5MTfW.d.ts} +6096 -5386
- package/package.json +12 -2
- package/dist/chunk-5JF23UP3.js +0 -59687
- package/dist/chunk-5JF23UP3.js.map +0 -1
- package/dist/chunk-A4CWC4AG.js +0 -374
- package/dist/chunk-A4CWC4AG.js.map +0 -1
- package/dist/chunk-NEOPTPDF.js.map +0 -1
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// src/mantine/blocks/action/actionTypes/oraclePrompt/types.ts
|
|
2
|
+
function parseOraclePromptInputs(json) {
|
|
3
|
+
try {
|
|
4
|
+
const parsed = typeof json === "string" ? JSON.parse(json) : json;
|
|
5
|
+
return {
|
|
6
|
+
prompt: typeof parsed?.prompt === "string" ? parsed.prompt : ""
|
|
7
|
+
};
|
|
8
|
+
} catch {
|
|
9
|
+
return { prompt: "" };
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
function serializeOraclePromptInputs(inputs) {
|
|
13
|
+
return JSON.stringify({ prompt: inputs.prompt });
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export {
|
|
17
|
+
parseOraclePromptInputs,
|
|
18
|
+
serializeOraclePromptInputs
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=chunk-3TUYY4HK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/mantine/blocks/action/actionTypes/oraclePrompt/types.ts"],"sourcesContent":["export interface OraclePromptInputs {\n prompt: string;\n}\n\nexport function parseOraclePromptInputs(json: string): OraclePromptInputs {\n try {\n const parsed = typeof json === 'string' ? JSON.parse(json) : json;\n return {\n prompt: typeof parsed?.prompt === 'string' ? parsed.prompt : '',\n };\n } catch {\n return { prompt: '' };\n }\n}\n\nexport function serializeOraclePromptInputs(inputs: OraclePromptInputs): string {\n return JSON.stringify({ prompt: inputs.prompt });\n}\n"],"mappings":";AAIO,SAAS,wBAAwB,MAAkC;AACxE,MAAI;AACF,UAAM,SAAS,OAAO,SAAS,WAAW,KAAK,MAAM,IAAI,IAAI;AAC7D,WAAO;AAAA,MACL,QAAQ,OAAO,QAAQ,WAAW,WAAW,OAAO,SAAS;AAAA,IAC/D;AAAA,EACF,QAAQ;AACN,WAAO,EAAE,QAAQ,GAAG;AAAA,EACtB;AACF;AAEO,SAAS,4BAA4B,QAAoC;AAC9E,SAAO,KAAK,UAAU,EAAE,QAAQ,OAAO,OAAO,CAAC;AACjD;","names":[]}
|
|
@@ -0,0 +1,554 @@
|
|
|
1
|
+
import {
|
|
2
|
+
addFlowNode,
|
|
3
|
+
auditFlowProjections,
|
|
4
|
+
readFlowDocument,
|
|
5
|
+
removeFlowNode,
|
|
6
|
+
reorderFlowNodes,
|
|
7
|
+
repairFlowProjections,
|
|
8
|
+
setBlockProps
|
|
9
|
+
} from "./chunk-3O42FYT3.js";
|
|
10
|
+
import {
|
|
11
|
+
readFlowConnections
|
|
12
|
+
} from "./chunk-F4PTFXZH.js";
|
|
13
|
+
import {
|
|
14
|
+
canonicalizeJson,
|
|
15
|
+
deepFreezeJson,
|
|
16
|
+
digestCanonicalJson,
|
|
17
|
+
signFlowDefinitionRevision
|
|
18
|
+
} from "./chunk-RRYBAE6E.js";
|
|
19
|
+
import {
|
|
20
|
+
isYMapLike
|
|
21
|
+
} from "./chunk-NCSGIRRQ.js";
|
|
22
|
+
|
|
23
|
+
// src/core/lib/flowCompiler/draftRepository.ts
|
|
24
|
+
import * as Y from "yjs";
|
|
25
|
+
var FlowDraftCommandError = class extends Error {
|
|
26
|
+
constructor(code, message, details) {
|
|
27
|
+
super(message);
|
|
28
|
+
this.code = code;
|
|
29
|
+
this.details = details;
|
|
30
|
+
this.name = "FlowDraftCommandError";
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
var COMMANDS_MAP = "qi.flow.draftCommands";
|
|
34
|
+
var DRAFT_CONTROL_MAP = "qi.flow.draftControl";
|
|
35
|
+
var LEGACY_COMMAND_REVISION_KEY = "legacyCommandRevision";
|
|
36
|
+
var RESERVED_META_KEYS = /* @__PURE__ */ new Set(["draftRevision", "draftSchemaVersion", "draftUpdatedAt"]);
|
|
37
|
+
function currentRevision(yDoc) {
|
|
38
|
+
const meta = yDoc.getMap("qi.flow.meta");
|
|
39
|
+
if (meta.get("draftSchemaVersion") === 1) return Number(meta.get("draftRevision") ?? 0);
|
|
40
|
+
return Number(yDoc.getMap(DRAFT_CONTROL_MAP).get(LEGACY_COMMAND_REVISION_KEY) ?? 0);
|
|
41
|
+
}
|
|
42
|
+
function fingerprint(command) {
|
|
43
|
+
return canonicalizeJson(command);
|
|
44
|
+
}
|
|
45
|
+
function advanceCommandRevision(yDoc) {
|
|
46
|
+
const meta = yDoc.getMap("qi.flow.meta");
|
|
47
|
+
const next = currentRevision(yDoc) + 1;
|
|
48
|
+
if (meta.get("draftSchemaVersion") !== 1) {
|
|
49
|
+
yDoc.getMap(DRAFT_CONTROL_MAP).set(LEGACY_COMMAND_REVISION_KEY, next);
|
|
50
|
+
return next;
|
|
51
|
+
}
|
|
52
|
+
meta.set("draftRevision", next);
|
|
53
|
+
meta.set("draftUpdatedAt", (/* @__PURE__ */ new Date()).toISOString());
|
|
54
|
+
return next;
|
|
55
|
+
}
|
|
56
|
+
function setMeta(yDoc, values) {
|
|
57
|
+
const meta = yDoc.getMap("qi.flow.meta");
|
|
58
|
+
for (const [key, value] of Object.entries(values)) {
|
|
59
|
+
if (value === null) meta.delete(key);
|
|
60
|
+
else meta.set(key, value);
|
|
61
|
+
}
|
|
62
|
+
advanceCommandRevision(yDoc);
|
|
63
|
+
}
|
|
64
|
+
function createYjsFlowDefinitionDraftRepository(yDoc) {
|
|
65
|
+
const repository = {
|
|
66
|
+
read: () => ({ revision: currentRevision(yDoc), document: readFlowDocument(yDoc) }),
|
|
67
|
+
apply: (command) => {
|
|
68
|
+
if (command.kind !== "qi.flow.draft-command" || command.schemaVersion !== "1.0" || !command.commandId || !command.actorDid) {
|
|
69
|
+
throw new FlowDraftCommandError("INVALID_COMMAND", "A versioned command id and actor are required");
|
|
70
|
+
}
|
|
71
|
+
if (command.operation.kind === "set-meta") {
|
|
72
|
+
const reservedKeys = Object.keys(command.operation.values).filter((key) => RESERVED_META_KEYS.has(key));
|
|
73
|
+
if (reservedKeys.length > 0) {
|
|
74
|
+
throw new FlowDraftCommandError("INVALID_COMMAND", `Flow metadata keys are reserved for draft bookkeeping: ${reservedKeys.sort().join(", ")}`, {
|
|
75
|
+
reservedKeys: reservedKeys.sort()
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
const commands = yDoc.getMap(COMMANDS_MAP);
|
|
80
|
+
const commandFingerprint = fingerprint(command);
|
|
81
|
+
const existing = commands.get(command.commandId);
|
|
82
|
+
if (existing) {
|
|
83
|
+
if (existing.fingerprint !== commandFingerprint) {
|
|
84
|
+
throw new FlowDraftCommandError("IDEMPOTENCY_CONFLICT", `Draft command ${command.commandId} was reused with different content`);
|
|
85
|
+
}
|
|
86
|
+
return { ...existing.result, outcome: "duplicate" };
|
|
87
|
+
}
|
|
88
|
+
const beforeRevision = currentRevision(yDoc);
|
|
89
|
+
if (command.expectedRevision !== beforeRevision) {
|
|
90
|
+
throw new FlowDraftCommandError("REVISION_CONFLICT", `Expected draft revision ${command.expectedRevision}, found ${beforeRevision}`);
|
|
91
|
+
}
|
|
92
|
+
let nodeId;
|
|
93
|
+
let blockId;
|
|
94
|
+
yDoc.transact(() => {
|
|
95
|
+
const operation = command.operation;
|
|
96
|
+
if (operation.kind === "add-step") {
|
|
97
|
+
const added = addFlowNode(yDoc, {
|
|
98
|
+
type: operation.actionType,
|
|
99
|
+
nodeId: operation.nodeId,
|
|
100
|
+
blockId: operation.blockId,
|
|
101
|
+
afterNodeId: operation.afterNodeId,
|
|
102
|
+
title: operation.title,
|
|
103
|
+
props: operation.props
|
|
104
|
+
});
|
|
105
|
+
if (!added) throw new FlowDraftCommandError("INVALID_COMMAND", "Action type or requested Flow step identity is unavailable");
|
|
106
|
+
nodeId = added.nodeId;
|
|
107
|
+
blockId = added.blockId;
|
|
108
|
+
} else if (operation.kind === "update-step-props") {
|
|
109
|
+
if (!setBlockProps(yDoc, operation.blockId, operation.props)) {
|
|
110
|
+
throw new FlowDraftCommandError("INVALID_COMMAND", `Unknown Flow block: ${operation.blockId}`);
|
|
111
|
+
}
|
|
112
|
+
blockId = operation.blockId;
|
|
113
|
+
} else if (operation.kind === "remove-step") {
|
|
114
|
+
const removed = removeFlowNode(yDoc, operation.nodeId);
|
|
115
|
+
if (!removed.ok) {
|
|
116
|
+
throw new FlowDraftCommandError("REFERENCED_STEP", `Flow step ${operation.nodeId} is still referenced`, { referencedBy: removed.referencedBy });
|
|
117
|
+
}
|
|
118
|
+
nodeId = operation.nodeId;
|
|
119
|
+
} else if (operation.kind === "reorder-steps") {
|
|
120
|
+
if (!reorderFlowNodes(yDoc, operation.order)) throw new FlowDraftCommandError("INVALID_COMMAND", "Step order must be a complete permutation");
|
|
121
|
+
} else {
|
|
122
|
+
setMeta(yDoc, operation.values);
|
|
123
|
+
}
|
|
124
|
+
const afterOperationRevision = currentRevision(yDoc);
|
|
125
|
+
if (afterOperationRevision === beforeRevision) advanceCommandRevision(yDoc);
|
|
126
|
+
const result = {
|
|
127
|
+
outcome: "applied",
|
|
128
|
+
commandId: command.commandId,
|
|
129
|
+
revision: currentRevision(yDoc),
|
|
130
|
+
...nodeId ? { nodeId } : {},
|
|
131
|
+
...blockId ? { blockId } : {}
|
|
132
|
+
};
|
|
133
|
+
commands.set(command.commandId, { fingerprint: commandFingerprint, result });
|
|
134
|
+
});
|
|
135
|
+
const stored = commands.get(command.commandId);
|
|
136
|
+
if (!stored) throw new FlowDraftCommandError("INVALID_COMMAND", "Draft command did not commit");
|
|
137
|
+
return { ...stored.result };
|
|
138
|
+
},
|
|
139
|
+
applyBatch: (commands) => {
|
|
140
|
+
if (commands.length === 0) return [];
|
|
141
|
+
const beforeVector = Y.encodeStateVector(yDoc);
|
|
142
|
+
const stagedDoc = new Y.Doc();
|
|
143
|
+
try {
|
|
144
|
+
Y.applyUpdate(stagedDoc, Y.encodeStateAsUpdate(yDoc));
|
|
145
|
+
const stagedRepository = createYjsFlowDefinitionDraftRepository(stagedDoc);
|
|
146
|
+
const results = commands.map((command) => stagedRepository.apply(command));
|
|
147
|
+
const update = Y.encodeStateAsUpdate(stagedDoc, beforeVector);
|
|
148
|
+
yDoc.transact(() => Y.applyUpdate(yDoc, update), "flow-draft-command-batch");
|
|
149
|
+
return results;
|
|
150
|
+
} finally {
|
|
151
|
+
stagedDoc.destroy();
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
auditProjections: () => auditFlowProjections(yDoc),
|
|
155
|
+
repairProjections: () => repairFlowProjections(yDoc)
|
|
156
|
+
};
|
|
157
|
+
return repository;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// src/core/lib/flowCompiler/participants.ts
|
|
161
|
+
import * as Y2 from "yjs";
|
|
162
|
+
var FLOW_PARTICIPANTS_MAP_KEY = "qi.flow.participants";
|
|
163
|
+
function readFlowParticipants(yDoc) {
|
|
164
|
+
const participants = [];
|
|
165
|
+
getParticipantsMap(yDoc).forEach((value) => {
|
|
166
|
+
const participant = toParticipant(value);
|
|
167
|
+
if (participant) participants.push(participant);
|
|
168
|
+
});
|
|
169
|
+
return participants.sort((a, b) => {
|
|
170
|
+
const aAt = a.addedAt ?? Number.POSITIVE_INFINITY;
|
|
171
|
+
const bAt = b.addedAt ?? Number.POSITIVE_INFINITY;
|
|
172
|
+
if (aAt !== bAt) return aAt < bAt ? -1 : 1;
|
|
173
|
+
return compareUserIds(a.userId, b.userId);
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
function upsertFlowParticipant(yDoc, participant) {
|
|
177
|
+
const userId = participant.userId;
|
|
178
|
+
if (typeof userId !== "string" || userId.length === 0) return;
|
|
179
|
+
yDoc.transact(() => {
|
|
180
|
+
const entry = ensureEntry(getParticipantsMap(yDoc), userId);
|
|
181
|
+
entry.set("userId", userId);
|
|
182
|
+
entry.set("powerLevel", toPowerLevel(participant.powerLevel));
|
|
183
|
+
mergeOptionalString(entry, "displayName", participant.displayName);
|
|
184
|
+
mergeOptionalString(entry, "avatarUrl", participant.avatarUrl);
|
|
185
|
+
mergeRequirements(entry, participant.requires);
|
|
186
|
+
mergeSteps(entry, participant.steps);
|
|
187
|
+
const addedAt = toTimestamp(entry.get("addedAt")) ?? toTimestamp(participant.addedAt);
|
|
188
|
+
if (addedAt !== void 0) entry.set("addedAt", addedAt);
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
function removeFlowParticipant(yDoc, userId) {
|
|
192
|
+
yDoc.transact(() => {
|
|
193
|
+
const map = getParticipantsMap(yDoc);
|
|
194
|
+
if (map.has(userId)) map.delete(userId);
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
function setFlowParticipantPowerLevel(yDoc, userId, powerLevel) {
|
|
198
|
+
yDoc.transact(() => {
|
|
199
|
+
const entry = getParticipantsMap(yDoc).get(userId);
|
|
200
|
+
if (isYMapLike(entry)) entry.set("powerLevel", toPowerLevel(powerLevel));
|
|
201
|
+
});
|
|
202
|
+
}
|
|
203
|
+
function setFlowParticipantRequirements(yDoc, userId, requires) {
|
|
204
|
+
yDoc.transact(() => {
|
|
205
|
+
const entry = getParticipantsMap(yDoc).get(userId);
|
|
206
|
+
if (isYMapLike(entry)) mergeRequirements(entry, requires ?? []);
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
function setFlowParticipantSteps(yDoc, userId, steps) {
|
|
210
|
+
yDoc.transact(() => {
|
|
211
|
+
const entry = getParticipantsMap(yDoc).get(userId);
|
|
212
|
+
if (isYMapLike(entry)) mergeSteps(entry, steps ?? []);
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
function getParticipantsMap(yDoc) {
|
|
216
|
+
return yDoc.getMap(FLOW_PARTICIPANTS_MAP_KEY);
|
|
217
|
+
}
|
|
218
|
+
function ensureEntry(map, userId) {
|
|
219
|
+
const existing = map.get(userId);
|
|
220
|
+
if (isYMapLike(existing)) return existing;
|
|
221
|
+
const created = new Y2.Map();
|
|
222
|
+
map.set(userId, created);
|
|
223
|
+
return created;
|
|
224
|
+
}
|
|
225
|
+
function toParticipant(value) {
|
|
226
|
+
if (!isYMapLike(value)) return void 0;
|
|
227
|
+
const userId = value.get("userId");
|
|
228
|
+
if (typeof userId !== "string" || userId.length === 0) return void 0;
|
|
229
|
+
const participant = { userId, powerLevel: toPowerLevel(value.get("powerLevel")) };
|
|
230
|
+
const displayName = toNonEmptyString(value.get("displayName"));
|
|
231
|
+
if (displayName !== void 0) participant.displayName = displayName;
|
|
232
|
+
const avatarUrl = toNonEmptyString(value.get("avatarUrl"));
|
|
233
|
+
if (avatarUrl !== void 0) participant.avatarUrl = avatarUrl;
|
|
234
|
+
const requires = toRequirements(value.get("requires"));
|
|
235
|
+
if (requires.length > 0) participant.requires = requires;
|
|
236
|
+
const steps = toRequirements(value.get("steps"));
|
|
237
|
+
if (steps.length > 0) participant.steps = steps;
|
|
238
|
+
const addedAt = toTimestamp(value.get("addedAt"));
|
|
239
|
+
if (addedAt !== void 0) participant.addedAt = addedAt;
|
|
240
|
+
return participant;
|
|
241
|
+
}
|
|
242
|
+
function toPowerLevel(value) {
|
|
243
|
+
const numeric = typeof value === "string" ? Number(value) : value;
|
|
244
|
+
return typeof numeric === "number" && Number.isFinite(numeric) ? Math.trunc(numeric) : 0;
|
|
245
|
+
}
|
|
246
|
+
function toTimestamp(value) {
|
|
247
|
+
const numeric = typeof value === "string" ? Number(value) : value;
|
|
248
|
+
return typeof numeric === "number" && Number.isFinite(numeric) ? Math.trunc(numeric) : void 0;
|
|
249
|
+
}
|
|
250
|
+
function toNonEmptyString(value) {
|
|
251
|
+
return typeof value === "string" && value.length > 0 ? value : void 0;
|
|
252
|
+
}
|
|
253
|
+
function toRequirements(value) {
|
|
254
|
+
if (!Array.isArray(value)) return [];
|
|
255
|
+
const requires = [];
|
|
256
|
+
for (const entry of value) {
|
|
257
|
+
if (typeof entry !== "string" || entry.length === 0) continue;
|
|
258
|
+
if (!requires.includes(entry)) requires.push(entry);
|
|
259
|
+
}
|
|
260
|
+
return requires;
|
|
261
|
+
}
|
|
262
|
+
function mergeOptionalString(entry, key, value) {
|
|
263
|
+
if (value === void 0) return;
|
|
264
|
+
if (value.length === 0) entry.delete(key);
|
|
265
|
+
else entry.set(key, value);
|
|
266
|
+
}
|
|
267
|
+
function mergeRequirements(entry, value) {
|
|
268
|
+
if (value === void 0) return;
|
|
269
|
+
const requires = toRequirements(value);
|
|
270
|
+
if (requires.length === 0) entry.delete("requires");
|
|
271
|
+
else entry.set("requires", requires);
|
|
272
|
+
}
|
|
273
|
+
function mergeSteps(entry, value) {
|
|
274
|
+
if (value === void 0) return;
|
|
275
|
+
const steps = toRequirements(value);
|
|
276
|
+
if (steps.length === 0) entry.delete("steps");
|
|
277
|
+
else entry.set("steps", steps);
|
|
278
|
+
}
|
|
279
|
+
function compareUserIds(a, b) {
|
|
280
|
+
if (a === b) return 0;
|
|
281
|
+
return a < b ? -1 : 1;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
// src/core/lib/flowCompiler/publication.ts
|
|
285
|
+
var FlowDefinitionPublicationError = class extends Error {
|
|
286
|
+
constructor(code, message) {
|
|
287
|
+
super(message);
|
|
288
|
+
this.code = code;
|
|
289
|
+
this.name = "FlowDefinitionPublicationError";
|
|
290
|
+
}
|
|
291
|
+
};
|
|
292
|
+
function parseObject(value, field) {
|
|
293
|
+
if (!value) return {};
|
|
294
|
+
try {
|
|
295
|
+
const parsed = JSON.parse(value);
|
|
296
|
+
if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) return parsed;
|
|
297
|
+
} catch (error) {
|
|
298
|
+
throw new FlowDefinitionPublicationError("INVALID_CONFIGURATION", `Flow step ${field} is not valid JSON: ${error instanceof Error ? error.message : String(error)}`);
|
|
299
|
+
}
|
|
300
|
+
throw new FlowDefinitionPublicationError("INVALID_CONFIGURATION", `Flow step ${field} must be a JSON object`);
|
|
301
|
+
}
|
|
302
|
+
function parseConditions(value) {
|
|
303
|
+
if (!value) return [];
|
|
304
|
+
const parsed = parseObject(value, "conditions");
|
|
305
|
+
if (!Array.isArray(parsed.conditions)) throw new FlowDefinitionPublicationError("INVALID_CONFIGURATION", "Flow step conditions must contain an array");
|
|
306
|
+
if (parsed.conditions.some((condition) => !condition || typeof condition !== "object" || Array.isArray(condition))) {
|
|
307
|
+
throw new FlowDefinitionPublicationError("INVALID_CONFIGURATION", "Every Flow step condition must be a JSON object");
|
|
308
|
+
}
|
|
309
|
+
return parsed.conditions;
|
|
310
|
+
}
|
|
311
|
+
function participantRequirement(participant) {
|
|
312
|
+
return {
|
|
313
|
+
userId: participant.userId,
|
|
314
|
+
powerLevel: participant.powerLevel,
|
|
315
|
+
...participant.displayName ? { displayName: participant.displayName } : {},
|
|
316
|
+
...participant.avatarUrl ? { avatarUrl: participant.avatarUrl } : {},
|
|
317
|
+
...participant.requires ? { requires: [...participant.requires] } : {},
|
|
318
|
+
...participant.addedAt !== void 0 ? { addedAt: participant.addedAt } : {}
|
|
319
|
+
};
|
|
320
|
+
}
|
|
321
|
+
function connectionRequirement(connection) {
|
|
322
|
+
return {
|
|
323
|
+
toolkit: connection.toolkit,
|
|
324
|
+
...connection.label ? { label: connection.label } : {},
|
|
325
|
+
...connection.optional ? { optional: true } : {},
|
|
326
|
+
...connection.agent !== void 0 ? { agent: connection.agent } : {},
|
|
327
|
+
requires: [...connection.requires],
|
|
328
|
+
...connection.addedAt !== void 0 ? { addedAt: connection.addedAt } : {}
|
|
329
|
+
};
|
|
330
|
+
}
|
|
331
|
+
function parseTrigger(value, triggerMode) {
|
|
332
|
+
let trigger = {};
|
|
333
|
+
if (value) {
|
|
334
|
+
try {
|
|
335
|
+
const parsed = JSON.parse(value);
|
|
336
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
|
|
337
|
+
throw new FlowDefinitionPublicationError("INVALID_TRIGGER", "Flow trigger must be a JSON object");
|
|
338
|
+
}
|
|
339
|
+
trigger = parsed;
|
|
340
|
+
} catch (error) {
|
|
341
|
+
if (error instanceof FlowDefinitionPublicationError) throw error;
|
|
342
|
+
throw new FlowDefinitionPublicationError("INVALID_TRIGGER", "Flow trigger is not valid JSON");
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
const type = String(trigger.type ?? triggerMode ?? "manual");
|
|
346
|
+
if (type === "manual") return { kind: "manual" };
|
|
347
|
+
if (type === "flow.start") return { kind: "flow.start" };
|
|
348
|
+
if (type === "topic.request") {
|
|
349
|
+
if (typeof trigger.requestKind !== "string" || trigger.requestKind.trim().length === 0) {
|
|
350
|
+
throw new FlowDefinitionPublicationError("INVALID_TRIGGER", "topic.request requires requestKind");
|
|
351
|
+
}
|
|
352
|
+
return { kind: "topic.request", requestKind: trigger.requestKind };
|
|
353
|
+
}
|
|
354
|
+
if (type === "block.event") {
|
|
355
|
+
if (typeof trigger.sourceBlockId !== "string" || typeof trigger.eventName !== "string") {
|
|
356
|
+
throw new FlowDefinitionPublicationError("INVALID_TRIGGER", "block.event requires sourceBlockId and eventName");
|
|
357
|
+
}
|
|
358
|
+
return { kind: "step.event", sourceBlockId: trigger.sourceBlockId, eventName: trigger.eventName };
|
|
359
|
+
}
|
|
360
|
+
if (type === "block.event.all") {
|
|
361
|
+
if (!Array.isArray(trigger.sources)) throw new FlowDefinitionPublicationError("INVALID_TRIGGER", "block.event.all requires sources");
|
|
362
|
+
const sources = trigger.sources.map((source) => {
|
|
363
|
+
if (!source || typeof source !== "object") throw new FlowDefinitionPublicationError("INVALID_TRIGGER", "Invalid block.event.all source");
|
|
364
|
+
const candidate = source;
|
|
365
|
+
if (typeof candidate.sourceBlockId !== "string" || typeof candidate.eventName !== "string" || typeof candidate.alias !== "string") {
|
|
366
|
+
throw new FlowDefinitionPublicationError("INVALID_TRIGGER", "Every block.event.all source requires sourceBlockId, eventName, and alias");
|
|
367
|
+
}
|
|
368
|
+
return {
|
|
369
|
+
sourceBlockId: candidate.sourceBlockId,
|
|
370
|
+
eventName: candidate.eventName,
|
|
371
|
+
alias: candidate.alias,
|
|
372
|
+
...candidate.optional === true ? { optional: true } : {}
|
|
373
|
+
};
|
|
374
|
+
});
|
|
375
|
+
return { kind: "step.event.all", sources };
|
|
376
|
+
}
|
|
377
|
+
if (type === "schedule") {
|
|
378
|
+
if (typeof trigger.scheduleRef !== "string" || trigger.scheduleRef.trim().length === 0) {
|
|
379
|
+
throw new FlowDefinitionPublicationError("INVALID_TRIGGER", "schedule requires scheduleRef");
|
|
380
|
+
}
|
|
381
|
+
if (trigger.scheduleRevision !== void 0 && (!Number.isInteger(trigger.scheduleRevision) || Number(trigger.scheduleRevision) < 1)) {
|
|
382
|
+
throw new FlowDefinitionPublicationError("INVALID_TRIGGER", "scheduleRevision must be an integer greater than zero");
|
|
383
|
+
}
|
|
384
|
+
return {
|
|
385
|
+
kind: "schedule",
|
|
386
|
+
scheduleRef: trigger.scheduleRef,
|
|
387
|
+
...typeof trigger.scheduleRevision === "number" ? { scheduleRevision: trigger.scheduleRevision } : {}
|
|
388
|
+
};
|
|
389
|
+
}
|
|
390
|
+
throw new FlowDefinitionPublicationError("INVALID_TRIGGER", `Unsupported Flow trigger: ${type}`);
|
|
391
|
+
}
|
|
392
|
+
function actorFromProps(props) {
|
|
393
|
+
const actor = {};
|
|
394
|
+
if (props.authorisedActors) {
|
|
395
|
+
let actors;
|
|
396
|
+
try {
|
|
397
|
+
actors = JSON.parse(props.authorisedActors);
|
|
398
|
+
} catch (error) {
|
|
399
|
+
throw new FlowDefinitionPublicationError("INVALID_CONFIGURATION", `Flow step authorisedActors is not valid JSON: ${error instanceof Error ? error.message : String(error)}`);
|
|
400
|
+
}
|
|
401
|
+
if (!Array.isArray(actors) || actors.some((actorDid) => typeof actorDid !== "string")) {
|
|
402
|
+
throw new FlowDefinitionPublicationError("INVALID_CONFIGURATION", "Flow step authorisedActors must be an array of DID strings");
|
|
403
|
+
}
|
|
404
|
+
actor.authorisedActors = actors;
|
|
405
|
+
}
|
|
406
|
+
if (props.parentCapability) actor.parentCapability = props.parentCapability;
|
|
407
|
+
return actor;
|
|
408
|
+
}
|
|
409
|
+
function ttlMsFromProps(props) {
|
|
410
|
+
const raw = props.ttlMs ?? props.ttl;
|
|
411
|
+
if (!raw) return void 0;
|
|
412
|
+
const numeric = Number(raw);
|
|
413
|
+
if (!Number.isFinite(numeric) || numeric < 0) {
|
|
414
|
+
throw new FlowDefinitionPublicationError("INVALID_CONFIGURATION", "Flow step ttlMs must be a non-negative number");
|
|
415
|
+
}
|
|
416
|
+
return numeric;
|
|
417
|
+
}
|
|
418
|
+
function isPositiveDuration(value) {
|
|
419
|
+
const match = /^P(?:(\d+)D)?(?:T(?:(\d+)H)?(?:(\d+)M)?)?$/u.exec(value);
|
|
420
|
+
return Boolean(match && match.slice(1).some((part) => Number(part ?? 0) > 0));
|
|
421
|
+
}
|
|
422
|
+
function ttlConstraintsFromProps(props) {
|
|
423
|
+
const ttl = {};
|
|
424
|
+
if (props.ttlAbsoluteDueDate) {
|
|
425
|
+
if (!Number.isFinite(Date.parse(props.ttlAbsoluteDueDate))) {
|
|
426
|
+
throw new FlowDefinitionPublicationError("INVALID_CONFIGURATION", "Flow step ttlAbsoluteDueDate must be a valid ISO 8601 date");
|
|
427
|
+
}
|
|
428
|
+
ttl.absoluteDueDate = props.ttlAbsoluteDueDate;
|
|
429
|
+
}
|
|
430
|
+
for (const [prop, field] of [
|
|
431
|
+
["ttlFromEnablement", "fromEnablement"],
|
|
432
|
+
["ttlFromCommitment", "fromCommitment"]
|
|
433
|
+
]) {
|
|
434
|
+
const value = props[prop];
|
|
435
|
+
if (!value) continue;
|
|
436
|
+
if (!isPositiveDuration(value)) {
|
|
437
|
+
throw new FlowDefinitionPublicationError("INVALID_CONFIGURATION", `Flow step ${prop} must be a positive ISO 8601 day/hour/minute duration`);
|
|
438
|
+
}
|
|
439
|
+
ttl[field] = value;
|
|
440
|
+
}
|
|
441
|
+
return Object.keys(ttl).length > 0 ? ttl : void 0;
|
|
442
|
+
}
|
|
443
|
+
function toStep(node, action) {
|
|
444
|
+
const ttlMs = ttlMsFromProps(node.props);
|
|
445
|
+
const ttl = ttlConstraintsFromProps(node.props);
|
|
446
|
+
return {
|
|
447
|
+
stepId: node.nodeId,
|
|
448
|
+
blockId: node.blockId,
|
|
449
|
+
title: node.title,
|
|
450
|
+
...node.description ? { description: node.description } : {},
|
|
451
|
+
action,
|
|
452
|
+
resource: node.with,
|
|
453
|
+
configuration: { ...node.props },
|
|
454
|
+
inputs: parseObject(node.props.inputs, "inputs"),
|
|
455
|
+
trigger: parseTrigger(node.props.trigger, node.props.triggerMode),
|
|
456
|
+
conditions: parseConditions(node.props.conditions),
|
|
457
|
+
actor: actorFromProps(node.props),
|
|
458
|
+
...ttlMs !== void 0 ? { ttlMs } : {},
|
|
459
|
+
...ttl ? { ttl } : {}
|
|
460
|
+
};
|
|
461
|
+
}
|
|
462
|
+
async function publishFlowDefinitionRevision(params) {
|
|
463
|
+
const expectedParent = params.expectedParent ? deepFreezeJson(JSON.parse(canonicalizeJson(params.expectedParent))) : void 0;
|
|
464
|
+
if (params.yDoc.getMap("qi.flow.meta").get("draftSchemaVersion") !== 1) {
|
|
465
|
+
throw new FlowDefinitionPublicationError("NOT_VNEXT_DRAFT", "Legacy Flow documents must be explicitly republished before vNext publication");
|
|
466
|
+
}
|
|
467
|
+
const document = readFlowDocument(params.yDoc);
|
|
468
|
+
if (!document || document.nodes.length === 0) throw new FlowDefinitionPublicationError("EMPTY_FLOW", "A Flow definition requires at least one step");
|
|
469
|
+
const steps = document.nodes.map((node) => {
|
|
470
|
+
const actionType = node.props.actionType;
|
|
471
|
+
const action = actionType ? params.actionContracts[actionType] : void 0;
|
|
472
|
+
if (!action) throw new FlowDefinitionPublicationError("MISSING_ACTION_CONTRACT", `No pinned Action contract for ${actionType || node.nodeId}`);
|
|
473
|
+
if (action.type !== actionType || action.can !== node.can) {
|
|
474
|
+
throw new FlowDefinitionPublicationError("MISSING_ACTION_CONTRACT", `Pinned Action contract does not match ${actionType} (${node.can})`);
|
|
475
|
+
}
|
|
476
|
+
if (action.manifestDigest !== params.actionManifestDigest) {
|
|
477
|
+
throw new FlowDefinitionPublicationError("MISSING_ACTION_CONTRACT", `Action ${action.type} is not pinned to the publication manifest`);
|
|
478
|
+
}
|
|
479
|
+
return toStep(node, action);
|
|
480
|
+
});
|
|
481
|
+
const signed = await signFlowDefinitionRevision(
|
|
482
|
+
{
|
|
483
|
+
kind: "qi.flow.definition-revision",
|
|
484
|
+
schemaVersion: "1.0",
|
|
485
|
+
ref: { flowId: params.flowId, revision: params.revision },
|
|
486
|
+
...expectedParent ? { parent: expectedParent } : {},
|
|
487
|
+
publishedAt: params.publishedAt,
|
|
488
|
+
publishedBy: params.publishedBy,
|
|
489
|
+
actionManifestDigest: params.actionManifestDigest,
|
|
490
|
+
title: document.meta.title,
|
|
491
|
+
...document.meta.goal ? { goal: document.meta.goal } : {},
|
|
492
|
+
steps,
|
|
493
|
+
participantRequirements: readFlowParticipants(params.yDoc).map(participantRequirement),
|
|
494
|
+
connectionRequirements: readFlowConnections(params.yDoc).map(connectionRequirement),
|
|
495
|
+
...params.source ? { source: params.source } : {}
|
|
496
|
+
},
|
|
497
|
+
params.signer
|
|
498
|
+
);
|
|
499
|
+
const ref = { ...signed.ref, digest: signed.integrity.digest.value };
|
|
500
|
+
const outcome = await params.repository.publish(signed, expectedParent);
|
|
501
|
+
if (outcome === "parent_conflict") throw new FlowDefinitionPublicationError("PARENT_CONFLICT", "Flow definition head changed before publication");
|
|
502
|
+
return { outcome, ref, revision: signed };
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
// src/core/lib/flowCompiler/draftProposal.ts
|
|
506
|
+
function canonicalSnapshot(value) {
|
|
507
|
+
return deepFreezeJson(JSON.parse(canonicalizeJson(value)));
|
|
508
|
+
}
|
|
509
|
+
async function createFlowDraftProposal(payload) {
|
|
510
|
+
const snapshot = canonicalSnapshot(payload);
|
|
511
|
+
if (!snapshot.proposalId || !snapshot.proposedBy || snapshot.operations.length === 0) throw new Error("Flow draft proposal identity, proposer, and operations are required");
|
|
512
|
+
return deepFreezeJson({ ...snapshot, proposalDigest: await digestCanonicalJson(snapshot) });
|
|
513
|
+
}
|
|
514
|
+
async function applyApprovedFlowDraftProposal(repository, proposal, approval) {
|
|
515
|
+
const proposalSnapshot = canonicalSnapshot(proposal);
|
|
516
|
+
const approvalSnapshot = canonicalSnapshot(approval);
|
|
517
|
+
const { proposalDigest, ...proposalPayload } = proposalSnapshot;
|
|
518
|
+
const actualProposalDigest = await digestCanonicalJson(proposalPayload);
|
|
519
|
+
if (approvalSnapshot.kind !== "qi.flow.draft-proposal-approval" || approvalSnapshot.schemaVersion !== "1.0" || approvalSnapshot.proposalId !== proposalSnapshot.proposalId || approvalSnapshot.proposalDigest !== proposalDigest || actualProposalDigest !== proposalDigest || !approvalSnapshot.approvedBy || !approvalSnapshot.approvalReference) {
|
|
520
|
+
throw new Error("Flow draft proposal requires an approval for its exact digest");
|
|
521
|
+
}
|
|
522
|
+
const approvedRevision = repository.read().revision;
|
|
523
|
+
if (approvedRevision !== proposalSnapshot.baseRevision) {
|
|
524
|
+
throw new Error(`Flow draft proposal was approved for revision ${proposalSnapshot.baseRevision}, but the draft is now revision ${approvedRevision}`);
|
|
525
|
+
}
|
|
526
|
+
const commands = proposalSnapshot.operations.map(
|
|
527
|
+
(operation, index) => ({
|
|
528
|
+
kind: "qi.flow.draft-command",
|
|
529
|
+
schemaVersion: "1.0",
|
|
530
|
+
commandId: `${proposalSnapshot.proposalId}:${index}`,
|
|
531
|
+
expectedRevision: proposalSnapshot.baseRevision + index,
|
|
532
|
+
actorDid: approvalSnapshot.approvedBy,
|
|
533
|
+
operation
|
|
534
|
+
})
|
|
535
|
+
);
|
|
536
|
+
return repository.applyBatch(commands);
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
export {
|
|
540
|
+
FlowDraftCommandError,
|
|
541
|
+
createYjsFlowDefinitionDraftRepository,
|
|
542
|
+
FLOW_PARTICIPANTS_MAP_KEY,
|
|
543
|
+
readFlowParticipants,
|
|
544
|
+
upsertFlowParticipant,
|
|
545
|
+
removeFlowParticipant,
|
|
546
|
+
setFlowParticipantPowerLevel,
|
|
547
|
+
setFlowParticipantRequirements,
|
|
548
|
+
setFlowParticipantSteps,
|
|
549
|
+
FlowDefinitionPublicationError,
|
|
550
|
+
publishFlowDefinitionRevision,
|
|
551
|
+
createFlowDraftProposal,
|
|
552
|
+
applyApprovedFlowDraftProposal
|
|
553
|
+
};
|
|
554
|
+
//# sourceMappingURL=chunk-3XSLBJYI.js.map
|