@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,1758 @@
|
|
|
1
|
+
import {
|
|
2
|
+
doneWhenCompleted,
|
|
3
|
+
getAction,
|
|
4
|
+
registerAction
|
|
5
|
+
} from "./chunk-IIIZZ4E4.js";
|
|
6
|
+
import {
|
|
7
|
+
warnOnce
|
|
8
|
+
} from "./chunk-HT6L7A5M.js";
|
|
9
|
+
|
|
10
|
+
// src/core/lib/actionRegistry/inputRequirements.ts
|
|
11
|
+
function isBlankInputValue(value) {
|
|
12
|
+
if (value == null) return true;
|
|
13
|
+
if (typeof value === "string") return value.trim().length === 0;
|
|
14
|
+
if (Array.isArray(value)) return value.length === 0;
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
function parseMaybeJsonObject(value) {
|
|
18
|
+
if (value && typeof value === "object" && !Array.isArray(value)) return value;
|
|
19
|
+
if (typeof value === "string" && value.trim()) {
|
|
20
|
+
try {
|
|
21
|
+
const parsed = JSON.parse(value);
|
|
22
|
+
if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) return parsed;
|
|
23
|
+
} catch {
|
|
24
|
+
return void 0;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return void 0;
|
|
28
|
+
}
|
|
29
|
+
function dedupe(values) {
|
|
30
|
+
return Array.from(new Set(values.filter((value) => typeof value === "string" && value.length > 0)));
|
|
31
|
+
}
|
|
32
|
+
function getMissingActionInputs(actionType, inputs) {
|
|
33
|
+
if (!actionType) return [];
|
|
34
|
+
const action = getAction(actionType);
|
|
35
|
+
if (!action) return [];
|
|
36
|
+
const merged = inputs ?? {};
|
|
37
|
+
if (action.getMissingInputs) {
|
|
38
|
+
try {
|
|
39
|
+
return dedupe(action.getMissingInputs(merged) || []);
|
|
40
|
+
} catch (error) {
|
|
41
|
+
warnOnce(
|
|
42
|
+
`missing-inputs:${action.type}`,
|
|
43
|
+
`[flow-config] action ${action.type}: getMissingInputs threw (${error instanceof Error ? error.message : String(error)}); reporting no missing inputs`
|
|
44
|
+
);
|
|
45
|
+
return [];
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
const schema = action.inputSchema;
|
|
49
|
+
const required = Array.isArray(schema?.required) ? schema.required.filter((name) => typeof name === "string") : [];
|
|
50
|
+
return dedupe(required.filter((name) => isBlankInputValue(merged[name])));
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// src/core/lib/domainCard/transformSurveyToCredentialSubject.ts
|
|
54
|
+
function extractPanelDynamicItems(surveyData, panelName, itemMapper) {
|
|
55
|
+
const items = surveyData[panelName];
|
|
56
|
+
if (!Array.isArray(items)) return [];
|
|
57
|
+
return items.map(itemMapper).filter((item) => item !== null);
|
|
58
|
+
}
|
|
59
|
+
function parseCommaSeparated(value) {
|
|
60
|
+
if (!value || typeof value !== "string") return [];
|
|
61
|
+
return value.split(",").map((s) => s.trim()).filter(Boolean);
|
|
62
|
+
}
|
|
63
|
+
function parseLanguageCodes(value) {
|
|
64
|
+
return parseCommaSeparated(value);
|
|
65
|
+
}
|
|
66
|
+
function buildImageObject(url) {
|
|
67
|
+
if (!url) return null;
|
|
68
|
+
return {
|
|
69
|
+
type: "schema:ImageObject",
|
|
70
|
+
id: url,
|
|
71
|
+
contentUrl: url
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
function transformSurveyToCredentialSubject(surveyData, entityDid) {
|
|
75
|
+
const types = [];
|
|
76
|
+
if (surveyData["type_1"]) types.push(`ixo:${surveyData["type_1"]}`);
|
|
77
|
+
if (surveyData["type_2"]) types.push(surveyData["type_2"]);
|
|
78
|
+
const additionalType = [];
|
|
79
|
+
if (surveyData["daoType"]) additionalType.push(surveyData["daoType"]);
|
|
80
|
+
const alternateNames = extractPanelDynamicItems(surveyData, "pannel_schema:alternateName", (item) => item["schema:alternateName"] || null);
|
|
81
|
+
const sameAsUrls = extractPanelDynamicItems(surveyData, "schema:sameAs", (item) => item["schema:sameAs.url"] || null);
|
|
82
|
+
const logoUrl = surveyData["ixo:imageLogo_url"] || surveyData["ixo:imageLogo"]?.[0]?.content;
|
|
83
|
+
const logo = buildImageObject(logoUrl);
|
|
84
|
+
const profileImageUrl = surveyData["ixo:imageProfile_url"] || surveyData["ixo:imageProfile"]?.[0]?.content;
|
|
85
|
+
const profileImage = buildImageObject(profileImageUrl);
|
|
86
|
+
const keywords = parseCommaSeparated(surveyData["schema:keywords"]);
|
|
87
|
+
const knowsAbout = extractPanelDynamicItems(surveyData, "pannel_ixo:knowsAbout", (item) => item["ixo:knowsAbout"] || null);
|
|
88
|
+
const hasAddressData = surveyData["schema:streetAddress"] || surveyData["schema:addressLocality"] || surveyData["schema:addressRegion"] || surveyData["schema:postalCode"] || surveyData["schema:addressCountry"];
|
|
89
|
+
const address = hasAddressData ? {
|
|
90
|
+
type: "schema:PostalAddress",
|
|
91
|
+
streetAddress: surveyData["schema:streetAddress"] || void 0,
|
|
92
|
+
addressLocality: surveyData["schema:addressLocality"] || void 0,
|
|
93
|
+
addressRegion: surveyData["schema:addressRegion"] || void 0,
|
|
94
|
+
postalCode: surveyData["schema:postalCode"] || void 0,
|
|
95
|
+
addressCountry: surveyData["schema:addressCountry"] || void 0
|
|
96
|
+
} : void 0;
|
|
97
|
+
const areaServed = surveyData["schema:AdministrativeArea"] ? {
|
|
98
|
+
type: "schema:AdministrativeArea",
|
|
99
|
+
name: surveyData["schema:AdministrativeArea"]
|
|
100
|
+
} : void 0;
|
|
101
|
+
const contactPoints = extractPanelDynamicItems(surveyData, "pannel:schema_contactPoint", (item) => {
|
|
102
|
+
if (!item["schema:contactType"] && !item["schema:email"] && !item["schema:telephone"]) return null;
|
|
103
|
+
return {
|
|
104
|
+
type: "schema:ContactPoint",
|
|
105
|
+
contactType: item["schema:contactType"] || "general",
|
|
106
|
+
email: item["schema:email"] || void 0,
|
|
107
|
+
telephone: item["schema:telephone"] || void 0,
|
|
108
|
+
availableLanguage: parseLanguageCodes(item["schema:availableLanguage"])
|
|
109
|
+
};
|
|
110
|
+
});
|
|
111
|
+
const hasParts = extractPanelDynamicItems(surveyData, "schema:hasPart", (item) => {
|
|
112
|
+
if (!item["schema:hasPart.name"] && !item["schema:hasPart.id"]) return null;
|
|
113
|
+
return {
|
|
114
|
+
type: "schema:CreativeWork",
|
|
115
|
+
id: item["schema:hasPart.id"] || void 0,
|
|
116
|
+
name: item["schema:hasPart.name"] || void 0,
|
|
117
|
+
description: item["schema:hasPart.description"] || void 0,
|
|
118
|
+
url: item["schema:hasPart.url"] || void 0,
|
|
119
|
+
creator: item["schema:hasPart.creator.name"] ? {
|
|
120
|
+
type: "schema:Organization",
|
|
121
|
+
name: item["schema:hasPart.creator.name"]
|
|
122
|
+
} : void 0
|
|
123
|
+
};
|
|
124
|
+
});
|
|
125
|
+
const subjectOf = extractPanelDynamicItems(surveyData, "schema:subjectOf", (item) => {
|
|
126
|
+
if (!item["schema:subjectOf.name"]) return null;
|
|
127
|
+
return {
|
|
128
|
+
type: "schema:CreativeWork",
|
|
129
|
+
name: item["schema:subjectOf.name"],
|
|
130
|
+
url: item["schema:subjectOf.url"] || void 0,
|
|
131
|
+
author: item["schema:subjectOf.author.name"] ? {
|
|
132
|
+
type: "schema:Organisation",
|
|
133
|
+
name: item["schema:subjectOf.author.name"]
|
|
134
|
+
} : void 0
|
|
135
|
+
};
|
|
136
|
+
});
|
|
137
|
+
const composition = hasParts.length > 0 || subjectOf.length > 0 ? {
|
|
138
|
+
type: "schema:Collection",
|
|
139
|
+
hasPart: hasParts.length > 0 ? hasParts : void 0,
|
|
140
|
+
subjectOf: subjectOf.length > 0 ? subjectOf : void 0
|
|
141
|
+
} : void 0;
|
|
142
|
+
const makesOffer = extractPanelDynamicItems(surveyData, "schema:makesOffer", (item) => {
|
|
143
|
+
if (!item["schema:itemOffered.name"]) return null;
|
|
144
|
+
return {
|
|
145
|
+
type: "schema:Offer",
|
|
146
|
+
itemOffered: {
|
|
147
|
+
type: item["schema:itemOffered.type"] === "service" ? "schema:Service" : "schema:Product",
|
|
148
|
+
name: item["schema:itemOffered.name"] || void 0,
|
|
149
|
+
description: item["schema:itemOffered.description"] || void 0,
|
|
150
|
+
url: item["schema:itemOffered.url"] || void 0
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
});
|
|
154
|
+
const memberOf = extractPanelDynamicItems(surveyData, "schema:memberOf", (item) => {
|
|
155
|
+
if (!item["schema:memberOf.name"]) return null;
|
|
156
|
+
return {
|
|
157
|
+
type: "schema:Organization",
|
|
158
|
+
name: item["schema:memberOf.name"]
|
|
159
|
+
};
|
|
160
|
+
});
|
|
161
|
+
const wasAssociatedWith = extractPanelDynamicItems(surveyData, "schema:wasAssociatedWith", (item) => {
|
|
162
|
+
if (!item["schema:wasAssociatedWith.name"]) return null;
|
|
163
|
+
return {
|
|
164
|
+
type: "schema:Organization",
|
|
165
|
+
name: item["schema:wasAssociatedWith.name"],
|
|
166
|
+
url: item["schema:wasAssociatedWith.url"] || void 0
|
|
167
|
+
};
|
|
168
|
+
});
|
|
169
|
+
const funding = extractPanelDynamicItems(surveyData, "schema:funding", (item) => {
|
|
170
|
+
if (!item["schema:funder.name"]) return null;
|
|
171
|
+
return {
|
|
172
|
+
type: "schema:MonetaryGrant",
|
|
173
|
+
funder: {
|
|
174
|
+
type: "schema:Organization",
|
|
175
|
+
name: item["schema:funder.name"]
|
|
176
|
+
},
|
|
177
|
+
amount: item["schema:amount.value"] || item["schema:amount.currency"] ? {
|
|
178
|
+
type: "schema:MonetaryAmount",
|
|
179
|
+
currency: item["schema:amount.currency"] || "USD",
|
|
180
|
+
value: item["schema:amount.value"] || "0"
|
|
181
|
+
} : void 0
|
|
182
|
+
};
|
|
183
|
+
});
|
|
184
|
+
const relationships = memberOf.length > 0 || wasAssociatedWith.length > 0 || funding.length > 0 ? {
|
|
185
|
+
memberOf: memberOf.length > 0 ? memberOf : void 0,
|
|
186
|
+
"prov:wasAssociatedWith": wasAssociatedWith.length > 0 ? wasAssociatedWith : void 0,
|
|
187
|
+
funding: funding.length > 0 ? funding : void 0
|
|
188
|
+
} : void 0;
|
|
189
|
+
const agents = extractPanelDynamicItems(surveyData, "ixo:agentCard", (item) => {
|
|
190
|
+
if (!item["ixo:agentCard.name"] && !item["ixo:agentCard.id"]) return null;
|
|
191
|
+
return {
|
|
192
|
+
type: "ixo:AgentCard",
|
|
193
|
+
id: item["ixo:agentCard.id"] || void 0,
|
|
194
|
+
name: item["ixo:agentCard.name"] || void 0,
|
|
195
|
+
description: item["ixo:agentCard.description"] || void 0
|
|
196
|
+
};
|
|
197
|
+
});
|
|
198
|
+
const credentials = extractPanelDynamicItems(surveyData, "ixo:verifiableCredential", (item) => {
|
|
199
|
+
if (!item["schema:Name"] && !item["schema:ID"]) return null;
|
|
200
|
+
return {
|
|
201
|
+
type: "VerifiableCredential",
|
|
202
|
+
id: item["schema:ID"] || void 0,
|
|
203
|
+
name: item["schema:Name"] || void 0,
|
|
204
|
+
description: item["schema:description"] || void 0
|
|
205
|
+
};
|
|
206
|
+
});
|
|
207
|
+
const attributes = extractPanelDynamicItems(surveyData, "ixo:attribute", (item) => {
|
|
208
|
+
if (!item["schema:name_2"]) return null;
|
|
209
|
+
return {
|
|
210
|
+
"@type": "ixo:Attribute",
|
|
211
|
+
"@id": item["schema:ID_2"] || `attribute:${item["schema:name_2"].replace(/\s+/g, "_").toLowerCase()}`,
|
|
212
|
+
name: item["schema:name_2"],
|
|
213
|
+
value: item["schema:description_2"] || ""
|
|
214
|
+
};
|
|
215
|
+
});
|
|
216
|
+
const projects = extractPanelDynamicItems(surveyData, "pannel_proj:project", (item) => {
|
|
217
|
+
if (!item["proj:project.name"]) return null;
|
|
218
|
+
const objectives = extractPanelDynamicItems(item, "proj:project.hadObjective", (objItem) => objItem["proj:hadObjective"] || null);
|
|
219
|
+
const projectFunding = extractPanelDynamicItems(item, "proj:wasFundedThrough", (fundItem) => ({
|
|
220
|
+
type: "proj:FundingAssociation",
|
|
221
|
+
moneyAmount: fundItem["proj:moneyAmount"] || void 0,
|
|
222
|
+
moneyCurrency: fundItem["proj:moneyCurrency"] || void 0,
|
|
223
|
+
agent: fundItem["prov.agent.name"] || fundItem["prov:agent.id"] ? {
|
|
224
|
+
type: "prov:Agent",
|
|
225
|
+
id: fundItem["prov:agent.id"] || void 0,
|
|
226
|
+
name: fundItem["prov.agent.name"] || void 0
|
|
227
|
+
} : void 0
|
|
228
|
+
}));
|
|
229
|
+
return {
|
|
230
|
+
type: "proj:Project",
|
|
231
|
+
name: item["proj:project.name"],
|
|
232
|
+
description: item["proj:project.description"] || void 0,
|
|
233
|
+
hadObjective: objectives.length > 0 ? objectives : void 0,
|
|
234
|
+
plannedStart: item["proj:plannedStart"] || void 0,
|
|
235
|
+
plannedEnd: item["proj:plannedEnd"] || void 0,
|
|
236
|
+
wasFundedThrough: projectFunding.length > 0 ? projectFunding : void 0
|
|
237
|
+
};
|
|
238
|
+
});
|
|
239
|
+
const project = projects.length > 0 ? projects[0] : void 0;
|
|
240
|
+
const seedQueries = extractPanelDynamicItems(surveyData, "ixo:ResearchProfile", (item) => item["ixo:seedQueries"] || null);
|
|
241
|
+
const citations = extractPanelDynamicItems(surveyData, "schema:creativeWork", (item) => {
|
|
242
|
+
if (!item["schema:creativeWork.name"]) return null;
|
|
243
|
+
return {
|
|
244
|
+
type: "schema:CreativeWork",
|
|
245
|
+
name: item["schema:creativeWork.name"],
|
|
246
|
+
url: item["schema:creativeWork.url"] || void 0,
|
|
247
|
+
publisher: item["schema:creativeWork.publisher"] || void 0,
|
|
248
|
+
datePublished: item["schema:creativeWork.datePublished"] || void 0
|
|
249
|
+
};
|
|
250
|
+
});
|
|
251
|
+
const researchProfile = seedQueries.length > 0 || citations.length > 0 ? {
|
|
252
|
+
type: "ixo:ResearchProfile",
|
|
253
|
+
"ixo:seedQueries": seedQueries.length > 0 ? seedQueries : void 0,
|
|
254
|
+
citation: citations.length > 0 ? citations : void 0,
|
|
255
|
+
dateModified: (/* @__PURE__ */ new Date()).toISOString()
|
|
256
|
+
} : void 0;
|
|
257
|
+
const credentialSubject = {
|
|
258
|
+
id: entityDid,
|
|
259
|
+
type: types.length > 0 ? types : ["ixo:dao"],
|
|
260
|
+
name: surveyData["schema:name"] || "",
|
|
261
|
+
description: surveyData["schema.description"] || ""
|
|
262
|
+
};
|
|
263
|
+
if (additionalType.length > 0) credentialSubject.additionalType = additionalType;
|
|
264
|
+
if (alternateNames.length > 0) credentialSubject.alternateName = alternateNames;
|
|
265
|
+
if (surveyData["schema:url"]) credentialSubject.url = surveyData["schema:url"];
|
|
266
|
+
if (sameAsUrls.length > 0) credentialSubject.sameAs = sameAsUrls;
|
|
267
|
+
if (logo) credentialSubject.logo = logo;
|
|
268
|
+
if (profileImage) credentialSubject.image = [profileImage];
|
|
269
|
+
if (keywords.length > 0) credentialSubject.keywords = keywords;
|
|
270
|
+
if (knowsAbout.length > 0) credentialSubject.knowsAbout = knowsAbout;
|
|
271
|
+
if (address) credentialSubject.address = address;
|
|
272
|
+
if (areaServed) credentialSubject.areaServed = areaServed;
|
|
273
|
+
if (contactPoints.length > 0) credentialSubject.contactPoint = contactPoints;
|
|
274
|
+
if (composition) credentialSubject.composition = composition;
|
|
275
|
+
if (makesOffer.length > 0) credentialSubject.makesOffer = makesOffer;
|
|
276
|
+
if (relationships) credentialSubject.relationships = relationships;
|
|
277
|
+
if (agents.length > 0) credentialSubject.agents = agents;
|
|
278
|
+
if (credentials.length > 0) credentialSubject.credentials = credentials;
|
|
279
|
+
if (attributes.length > 0) credentialSubject.attributes = attributes;
|
|
280
|
+
if (project) credentialSubject.project = project;
|
|
281
|
+
if (researchProfile) credentialSubject.researchProfile = researchProfile;
|
|
282
|
+
return credentialSubject;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
// src/core/lib/domainCard/buildVerifiableCredential.ts
|
|
286
|
+
var DOMAIN_CARD_CONTEXT = [
|
|
287
|
+
"https://w3id.org/ixo/context/v1",
|
|
288
|
+
{
|
|
289
|
+
schema: "https://schema.org/",
|
|
290
|
+
ixo: "https://w3id.org/ixo/vocab/v1",
|
|
291
|
+
prov: "http://www.w3.org/ns/prov#",
|
|
292
|
+
proj: "http://www.w3.org/ns/project#",
|
|
293
|
+
id: "@id",
|
|
294
|
+
type: "@type",
|
|
295
|
+
"@protected": true
|
|
296
|
+
}
|
|
297
|
+
];
|
|
298
|
+
var DOMAIN_CARD_SCHEMA = {
|
|
299
|
+
id: "https://w3id.org/ixo/protocol/schema/v1#domainCard",
|
|
300
|
+
type: "JsonSchema"
|
|
301
|
+
};
|
|
302
|
+
function toISOString(dateInput, fallback = /* @__PURE__ */ new Date()) {
|
|
303
|
+
if (!dateInput) {
|
|
304
|
+
return fallback.toISOString();
|
|
305
|
+
}
|
|
306
|
+
if (dateInput instanceof Date) {
|
|
307
|
+
return dateInput.toISOString();
|
|
308
|
+
}
|
|
309
|
+
if (/^\d{4}-\d{2}-\d{2}$/.test(dateInput)) {
|
|
310
|
+
return (/* @__PURE__ */ new Date(dateInput + "T00:00:00.000Z")).toISOString();
|
|
311
|
+
}
|
|
312
|
+
if (/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}$/.test(dateInput)) {
|
|
313
|
+
return (/* @__PURE__ */ new Date(dateInput + ":00.000Z")).toISOString();
|
|
314
|
+
}
|
|
315
|
+
const parsed = new Date(dateInput);
|
|
316
|
+
if (!isNaN(parsed.getTime())) {
|
|
317
|
+
return parsed.toISOString();
|
|
318
|
+
}
|
|
319
|
+
return fallback.toISOString();
|
|
320
|
+
}
|
|
321
|
+
function getDefaultValidUntil(validFrom) {
|
|
322
|
+
const fromDate = new Date(validFrom);
|
|
323
|
+
const untilDate = new Date(fromDate);
|
|
324
|
+
untilDate.setFullYear(untilDate.getFullYear() + 5);
|
|
325
|
+
return untilDate.toISOString();
|
|
326
|
+
}
|
|
327
|
+
function buildVerifiableCredential(params) {
|
|
328
|
+
const { entityDid, issuerDid, credentialSubject, validFrom, validUntil } = params;
|
|
329
|
+
const validFromISO = toISOString(validFrom);
|
|
330
|
+
const validUntilISO = validUntil ? toISOString(validUntil) : getDefaultValidUntil(validFromISO);
|
|
331
|
+
return {
|
|
332
|
+
"@context": DOMAIN_CARD_CONTEXT,
|
|
333
|
+
id: `${entityDid}#dmn`,
|
|
334
|
+
type: ["VerifiableCredential", "ixo:DomainCard"],
|
|
335
|
+
issuer: {
|
|
336
|
+
id: issuerDid
|
|
337
|
+
},
|
|
338
|
+
validFrom: validFromISO,
|
|
339
|
+
validUntil: validUntilISO,
|
|
340
|
+
credentialSchema: DOMAIN_CARD_SCHEMA,
|
|
341
|
+
credentialSubject: {
|
|
342
|
+
...credentialSubject,
|
|
343
|
+
// Ensure the subject ID matches the entity DID
|
|
344
|
+
id: entityDid
|
|
345
|
+
}
|
|
346
|
+
};
|
|
347
|
+
}
|
|
348
|
+
function buildDomainCardLinkedResource(params) {
|
|
349
|
+
return {
|
|
350
|
+
id: `${params.entityDid}#dmn`,
|
|
351
|
+
type: "domainCard",
|
|
352
|
+
proof: params.cid,
|
|
353
|
+
right: "",
|
|
354
|
+
encrypted: "false",
|
|
355
|
+
mediaType: "application/json",
|
|
356
|
+
description: params.description || "Domain Card",
|
|
357
|
+
serviceEndpoint: params.serviceEndpoint
|
|
358
|
+
};
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
// src/core/lib/domainCard/extractSurveyAnswersTemplate.ts
|
|
362
|
+
function extractFieldsFromElements(elements, fields) {
|
|
363
|
+
for (const element of elements) {
|
|
364
|
+
if (element.type === "panel" && element.elements) {
|
|
365
|
+
extractFieldsFromElements(element.elements, fields);
|
|
366
|
+
continue;
|
|
367
|
+
}
|
|
368
|
+
if (element.type === "paneldynamic" && element.name) {
|
|
369
|
+
fields[element.name] = [];
|
|
370
|
+
if (element.templateElements) {
|
|
371
|
+
extractFieldsFromElements(element.templateElements, fields);
|
|
372
|
+
}
|
|
373
|
+
continue;
|
|
374
|
+
}
|
|
375
|
+
if (element.name && element.type !== "panel") {
|
|
376
|
+
switch (element.type) {
|
|
377
|
+
case "boolean":
|
|
378
|
+
fields[element.name] = false;
|
|
379
|
+
break;
|
|
380
|
+
case "checkbox":
|
|
381
|
+
fields[element.name] = [];
|
|
382
|
+
break;
|
|
383
|
+
case "file":
|
|
384
|
+
fields[element.name] = [];
|
|
385
|
+
break;
|
|
386
|
+
default:
|
|
387
|
+
fields[element.name] = "";
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
if (element.elements) {
|
|
391
|
+
extractFieldsFromElements(element.elements, fields);
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
function extractSurveyAnswersTemplate(surveyDef) {
|
|
396
|
+
const fields = {};
|
|
397
|
+
for (const page of surveyDef.pages) {
|
|
398
|
+
extractFieldsFromElements(page.elements, fields);
|
|
399
|
+
}
|
|
400
|
+
return fields;
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
// src/core/lib/domainCard/buildLinkedEntityResource.ts
|
|
404
|
+
function parseLinkedEntities(entitiesString) {
|
|
405
|
+
if (!entitiesString || entitiesString === "[]") return [];
|
|
406
|
+
try {
|
|
407
|
+
return JSON.parse(entitiesString);
|
|
408
|
+
} catch {
|
|
409
|
+
return [];
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
function buildGovernanceGroupLinkedEntities(linkedEntities) {
|
|
413
|
+
return linkedEntities.filter((entity) => entity.type === "governanceGroup" && entity.coreAddress).map((entity) => ({
|
|
414
|
+
id: `{id}#${entity.coreAddress}`,
|
|
415
|
+
type: "group",
|
|
416
|
+
relationship: "governs",
|
|
417
|
+
service: ""
|
|
418
|
+
}));
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
// src/core/lib/domainCard/defaultSurvey.ts
|
|
422
|
+
var tempDomainCreatorSurvey = {
|
|
423
|
+
title: "Domain Card Creation",
|
|
424
|
+
description: "This survey collects structured information required to create a Domain Card Verifiable Credential in compliance with W3C standards.",
|
|
425
|
+
pages: [
|
|
426
|
+
{
|
|
427
|
+
name: "domainDetails",
|
|
428
|
+
title: "Domain Information",
|
|
429
|
+
description: "Provide identifying and descriptive information about the domain entity represented by this credential.",
|
|
430
|
+
elements: [
|
|
431
|
+
{
|
|
432
|
+
type: "boolean",
|
|
433
|
+
name: "ixo:advancedDomainSettings",
|
|
434
|
+
title: "Show Advanced Options",
|
|
435
|
+
defaultValue: "false"
|
|
436
|
+
},
|
|
437
|
+
{
|
|
438
|
+
type: "dropdown",
|
|
439
|
+
name: "type_1",
|
|
440
|
+
visible: false,
|
|
441
|
+
title: "Domain Type (Primary)",
|
|
442
|
+
defaultValue: "dao",
|
|
443
|
+
choices: [
|
|
444
|
+
{
|
|
445
|
+
value: "dao",
|
|
446
|
+
text: "DAO"
|
|
447
|
+
},
|
|
448
|
+
{
|
|
449
|
+
value: "protocol",
|
|
450
|
+
text: "Protocol"
|
|
451
|
+
}
|
|
452
|
+
]
|
|
453
|
+
},
|
|
454
|
+
{
|
|
455
|
+
type: "dropdown",
|
|
456
|
+
name: "type_2",
|
|
457
|
+
title: "Domain Type ",
|
|
458
|
+
isRequired: true,
|
|
459
|
+
choicesByUrl: {
|
|
460
|
+
url: "https://test.studio.ixo.earth/api/survey-choices?url=https://raw.githubusercontent.com/ixofoundation/ns/refs/heads/GraemeLeightonIXO-patch-4/protocol/entities/v1/index.json&path=entities.dao.types",
|
|
461
|
+
valueName: "Value",
|
|
462
|
+
titleName: "Text"
|
|
463
|
+
}
|
|
464
|
+
},
|
|
465
|
+
{
|
|
466
|
+
type: "dropdown",
|
|
467
|
+
name: "daoType",
|
|
468
|
+
title: "DAO Type",
|
|
469
|
+
isRequired: true,
|
|
470
|
+
choicesByUrl: {
|
|
471
|
+
url: "https://test.studio.ixo.earth/api/survey-choices?url=https://raw.githubusercontent.com/ixofoundation/ns/refs/heads/GraemeLeightonIXO-patch-4/protocol/tags/v1/index.json&path=daoType",
|
|
472
|
+
valueName: "Value",
|
|
473
|
+
titleName: "Text"
|
|
474
|
+
}
|
|
475
|
+
},
|
|
476
|
+
{
|
|
477
|
+
type: "text",
|
|
478
|
+
name: "schema:validFrom",
|
|
479
|
+
title: "Valid From",
|
|
480
|
+
defaultValueExpression: "today()",
|
|
481
|
+
isRequired: true,
|
|
482
|
+
inputType: "date"
|
|
483
|
+
},
|
|
484
|
+
{
|
|
485
|
+
type: "text",
|
|
486
|
+
name: "schema:validUntil",
|
|
487
|
+
title: "Vaid Untill",
|
|
488
|
+
defaultValueExpression: "today()",
|
|
489
|
+
isRequired: true,
|
|
490
|
+
inputType: "date"
|
|
491
|
+
},
|
|
492
|
+
{
|
|
493
|
+
type: "text",
|
|
494
|
+
name: "schema:name",
|
|
495
|
+
title: "Domain Name",
|
|
496
|
+
description: "The official name of the domain.",
|
|
497
|
+
isRequired: true
|
|
498
|
+
},
|
|
499
|
+
{
|
|
500
|
+
type: "paneldynamic",
|
|
501
|
+
name: "pannel_schema:alternateName",
|
|
502
|
+
title: "Alternate Names",
|
|
503
|
+
templateElements: [
|
|
504
|
+
{
|
|
505
|
+
type: "text",
|
|
506
|
+
name: "schema:alternateName",
|
|
507
|
+
title: "Alternate Name"
|
|
508
|
+
}
|
|
509
|
+
]
|
|
510
|
+
},
|
|
511
|
+
{
|
|
512
|
+
type: "text",
|
|
513
|
+
name: "schema:url",
|
|
514
|
+
title: "URL",
|
|
515
|
+
description: "Primary URL for the domain",
|
|
516
|
+
inputType: "url"
|
|
517
|
+
},
|
|
518
|
+
{
|
|
519
|
+
type: "paneldynamic",
|
|
520
|
+
name: "schema:sameAs",
|
|
521
|
+
title: "Additional URLs",
|
|
522
|
+
description: "Additional URLs associated with the domain (Twitter, Github, Medium)",
|
|
523
|
+
templateElements: [
|
|
524
|
+
{
|
|
525
|
+
type: "text",
|
|
526
|
+
name: "schema:sameAs.url",
|
|
527
|
+
title: "URL",
|
|
528
|
+
inputType: "url"
|
|
529
|
+
}
|
|
530
|
+
]
|
|
531
|
+
},
|
|
532
|
+
{
|
|
533
|
+
type: "comment",
|
|
534
|
+
name: "schema.description",
|
|
535
|
+
title: "Canonical Description",
|
|
536
|
+
description: "A concise, one-paragraph description of the domain.",
|
|
537
|
+
isRequired: true
|
|
538
|
+
},
|
|
539
|
+
{
|
|
540
|
+
type: "panel",
|
|
541
|
+
name: "pannel_schema:media",
|
|
542
|
+
title: "Domain Images",
|
|
543
|
+
elements: [
|
|
544
|
+
{
|
|
545
|
+
type: "text",
|
|
546
|
+
name: "ixo:imageProfile_url",
|
|
547
|
+
title: "Profile Image URL",
|
|
548
|
+
inputType: "url"
|
|
549
|
+
},
|
|
550
|
+
{
|
|
551
|
+
type: "file",
|
|
552
|
+
name: "ixo:imageProfile",
|
|
553
|
+
title: "Profile Image"
|
|
554
|
+
},
|
|
555
|
+
{
|
|
556
|
+
type: "text",
|
|
557
|
+
name: "ixo:imageLogo_url",
|
|
558
|
+
title: "Logo URL",
|
|
559
|
+
inputType: "url"
|
|
560
|
+
},
|
|
561
|
+
{
|
|
562
|
+
type: "file",
|
|
563
|
+
name: "ixo:imageLogo",
|
|
564
|
+
title: "Logo"
|
|
565
|
+
}
|
|
566
|
+
]
|
|
567
|
+
},
|
|
568
|
+
{
|
|
569
|
+
type: "comment",
|
|
570
|
+
name: "schema:keywords",
|
|
571
|
+
title: "Keywords",
|
|
572
|
+
description: "List of comma separated keywords describing the domain\u2019s focus areas."
|
|
573
|
+
},
|
|
574
|
+
{
|
|
575
|
+
type: "paneldynamic",
|
|
576
|
+
name: "pannel_ixo:knowsAbout",
|
|
577
|
+
title: "Topics /Primary Knowledge Areas",
|
|
578
|
+
description: "Subjects or fields the domain is knowledgeable in.",
|
|
579
|
+
templateElements: [
|
|
580
|
+
{
|
|
581
|
+
type: "text",
|
|
582
|
+
name: "ixo:knowsAbout",
|
|
583
|
+
title: "Knows About"
|
|
584
|
+
}
|
|
585
|
+
]
|
|
586
|
+
}
|
|
587
|
+
]
|
|
588
|
+
},
|
|
589
|
+
{
|
|
590
|
+
name: "contactAndLocation",
|
|
591
|
+
visibleIf: "{ixo:advancedDomainSettings} = true",
|
|
592
|
+
title: "Contact & Location",
|
|
593
|
+
description: "Provide address and contact information for the domain.",
|
|
594
|
+
elements: [
|
|
595
|
+
{
|
|
596
|
+
type: "panel",
|
|
597
|
+
name: "schema:address",
|
|
598
|
+
title: "Postal Address",
|
|
599
|
+
elements: [
|
|
600
|
+
{
|
|
601
|
+
type: "text",
|
|
602
|
+
name: "schema:streetAddress",
|
|
603
|
+
title: "Street Address"
|
|
604
|
+
},
|
|
605
|
+
{
|
|
606
|
+
type: "text",
|
|
607
|
+
name: "schema:addressLocality",
|
|
608
|
+
title: "City"
|
|
609
|
+
},
|
|
610
|
+
{
|
|
611
|
+
type: "text",
|
|
612
|
+
name: "schema:addressRegion",
|
|
613
|
+
title: "Region/State"
|
|
614
|
+
},
|
|
615
|
+
{
|
|
616
|
+
type: "text",
|
|
617
|
+
name: "schema:postalCode",
|
|
618
|
+
title: "Postal Code"
|
|
619
|
+
},
|
|
620
|
+
{
|
|
621
|
+
type: "text",
|
|
622
|
+
name: "schema:addressCountry",
|
|
623
|
+
title: "Country"
|
|
624
|
+
}
|
|
625
|
+
]
|
|
626
|
+
},
|
|
627
|
+
{
|
|
628
|
+
type: "text",
|
|
629
|
+
name: "schema:AdministrativeArea",
|
|
630
|
+
title: "Area Served"
|
|
631
|
+
},
|
|
632
|
+
{
|
|
633
|
+
type: "paneldynamic",
|
|
634
|
+
name: "pannel:schema_contactPoint",
|
|
635
|
+
title: "Contact Points",
|
|
636
|
+
description: "List available contact methods for support, business, or technical inquiries.",
|
|
637
|
+
templateElements: [
|
|
638
|
+
{
|
|
639
|
+
type: "text",
|
|
640
|
+
name: "schema:contactType",
|
|
641
|
+
title: "Contact Type",
|
|
642
|
+
description: "Example: General, Support, Sales"
|
|
643
|
+
},
|
|
644
|
+
{
|
|
645
|
+
type: "text",
|
|
646
|
+
name: "schema:email",
|
|
647
|
+
title: "Email Address",
|
|
648
|
+
inputType: "email"
|
|
649
|
+
},
|
|
650
|
+
{
|
|
651
|
+
type: "text",
|
|
652
|
+
name: "schema:telephone",
|
|
653
|
+
title: "Telephone ",
|
|
654
|
+
inputType: "tel"
|
|
655
|
+
},
|
|
656
|
+
{
|
|
657
|
+
type: "text",
|
|
658
|
+
name: "schema:availableLanguage",
|
|
659
|
+
title: "Languages Supported",
|
|
660
|
+
description: "Comma separated two letter language code (English = en)"
|
|
661
|
+
}
|
|
662
|
+
]
|
|
663
|
+
}
|
|
664
|
+
]
|
|
665
|
+
},
|
|
666
|
+
{
|
|
667
|
+
name: "composition",
|
|
668
|
+
visibleIf: "{ixo:advancedDomainSettings} = true",
|
|
669
|
+
title: "Composition",
|
|
670
|
+
elements: [
|
|
671
|
+
{
|
|
672
|
+
type: "paneldynamic",
|
|
673
|
+
name: "schema:hasPart",
|
|
674
|
+
title: "Domain Components",
|
|
675
|
+
description: "Describes the specific items, documents, linked domains, or components that belong to this domain.",
|
|
676
|
+
templateElements: [
|
|
677
|
+
{
|
|
678
|
+
type: "text",
|
|
679
|
+
name: "schema:hasPart.id",
|
|
680
|
+
title: "Identifier",
|
|
681
|
+
description: "URI or URL "
|
|
682
|
+
},
|
|
683
|
+
{
|
|
684
|
+
type: "text",
|
|
685
|
+
name: "schema:hasPart.name",
|
|
686
|
+
title: "Name"
|
|
687
|
+
},
|
|
688
|
+
{
|
|
689
|
+
type: "text",
|
|
690
|
+
name: "schema:hasPart.description",
|
|
691
|
+
title: "Description"
|
|
692
|
+
},
|
|
693
|
+
{
|
|
694
|
+
type: "text",
|
|
695
|
+
name: "schema:hasPart.url",
|
|
696
|
+
title: "URL",
|
|
697
|
+
description: "If different to the identifier",
|
|
698
|
+
inputType: "url"
|
|
699
|
+
},
|
|
700
|
+
{
|
|
701
|
+
type: "text",
|
|
702
|
+
name: "schema:hasPart.creator.name",
|
|
703
|
+
title: "Creator",
|
|
704
|
+
description: "Component creator (Organisation Name)"
|
|
705
|
+
}
|
|
706
|
+
]
|
|
707
|
+
},
|
|
708
|
+
{
|
|
709
|
+
type: "paneldynamic",
|
|
710
|
+
name: "schema:subjectOf",
|
|
711
|
+
title: "Publications",
|
|
712
|
+
description: "Publications produced by the domain or where the domain is the subject.",
|
|
713
|
+
templateElements: [
|
|
714
|
+
{
|
|
715
|
+
type: "text",
|
|
716
|
+
name: "schema:subjectOf.name",
|
|
717
|
+
title: "Publication Title"
|
|
718
|
+
},
|
|
719
|
+
{
|
|
720
|
+
type: "text",
|
|
721
|
+
name: "schema:subjectOf.url",
|
|
722
|
+
title: "URL"
|
|
723
|
+
},
|
|
724
|
+
{
|
|
725
|
+
type: "text",
|
|
726
|
+
name: "schema:subjectOf.author.name",
|
|
727
|
+
title: "Author"
|
|
728
|
+
}
|
|
729
|
+
]
|
|
730
|
+
},
|
|
731
|
+
{
|
|
732
|
+
type: "paneldynamic",
|
|
733
|
+
name: "schema:makesOffer",
|
|
734
|
+
title: "Offers (Product and/or Services)",
|
|
735
|
+
templateElements: [
|
|
736
|
+
{
|
|
737
|
+
type: "dropdown",
|
|
738
|
+
name: "schema:itemOffered.type",
|
|
739
|
+
title: "Catagory",
|
|
740
|
+
choices: [
|
|
741
|
+
{
|
|
742
|
+
value: "product",
|
|
743
|
+
text: "Product"
|
|
744
|
+
},
|
|
745
|
+
{
|
|
746
|
+
value: "service",
|
|
747
|
+
text: "Service"
|
|
748
|
+
}
|
|
749
|
+
]
|
|
750
|
+
},
|
|
751
|
+
{
|
|
752
|
+
type: "text",
|
|
753
|
+
name: "schema:itemOffered.name",
|
|
754
|
+
title: "Name"
|
|
755
|
+
},
|
|
756
|
+
{
|
|
757
|
+
type: "text",
|
|
758
|
+
name: "schema:itemOffered.description",
|
|
759
|
+
title: "Description"
|
|
760
|
+
},
|
|
761
|
+
{
|
|
762
|
+
type: "text",
|
|
763
|
+
name: "schema:itemOffered.url",
|
|
764
|
+
title: "URL",
|
|
765
|
+
inputType: "url"
|
|
766
|
+
}
|
|
767
|
+
]
|
|
768
|
+
}
|
|
769
|
+
]
|
|
770
|
+
},
|
|
771
|
+
{
|
|
772
|
+
name: "relationshipsAndOffers",
|
|
773
|
+
visibleIf: "{ixo:advancedDomainSettings} = true",
|
|
774
|
+
title: "Relationships & Funding",
|
|
775
|
+
description: "Describe the domain\u2019s relationships with other organizations and its software or service offerings.",
|
|
776
|
+
elements: [
|
|
777
|
+
{
|
|
778
|
+
type: "paneldynamic",
|
|
779
|
+
name: "schema:memberOf",
|
|
780
|
+
title: "Memberships",
|
|
781
|
+
templateElements: [
|
|
782
|
+
{
|
|
783
|
+
type: "text",
|
|
784
|
+
name: "schema:memberOf.name",
|
|
785
|
+
title: "Organization Name"
|
|
786
|
+
}
|
|
787
|
+
]
|
|
788
|
+
},
|
|
789
|
+
{
|
|
790
|
+
type: "paneldynamic",
|
|
791
|
+
name: "schema:wasAssociatedWith",
|
|
792
|
+
title: "Partner/Associated Organizations",
|
|
793
|
+
templateElements: [
|
|
794
|
+
{
|
|
795
|
+
type: "text",
|
|
796
|
+
name: "schema:wasAssociatedWith.name",
|
|
797
|
+
title: "Organization Name"
|
|
798
|
+
},
|
|
799
|
+
{
|
|
800
|
+
type: "text",
|
|
801
|
+
name: "schema:wasAssociatedWith.url",
|
|
802
|
+
title: "URL"
|
|
803
|
+
}
|
|
804
|
+
]
|
|
805
|
+
},
|
|
806
|
+
{
|
|
807
|
+
type: "paneldynamic",
|
|
808
|
+
name: "schema:funding",
|
|
809
|
+
title: "Funding Sources",
|
|
810
|
+
templateElements: [
|
|
811
|
+
{
|
|
812
|
+
type: "text",
|
|
813
|
+
name: "schema:funder.name",
|
|
814
|
+
title: "Funder Organization"
|
|
815
|
+
},
|
|
816
|
+
{
|
|
817
|
+
type: "text",
|
|
818
|
+
name: "schema:amount.currency",
|
|
819
|
+
title: "Currency Code"
|
|
820
|
+
},
|
|
821
|
+
{
|
|
822
|
+
type: "text",
|
|
823
|
+
name: "schema:amount.value",
|
|
824
|
+
title: "Funding Amount"
|
|
825
|
+
}
|
|
826
|
+
]
|
|
827
|
+
}
|
|
828
|
+
]
|
|
829
|
+
},
|
|
830
|
+
{
|
|
831
|
+
name: "events",
|
|
832
|
+
visibleIf: "{ixo:advancedDomainSettings} = true",
|
|
833
|
+
title: "Events",
|
|
834
|
+
elements: [
|
|
835
|
+
{
|
|
836
|
+
type: "paneldynamic",
|
|
837
|
+
name: "schema:event",
|
|
838
|
+
title: "Event",
|
|
839
|
+
templateElements: [
|
|
840
|
+
{
|
|
841
|
+
type: "text",
|
|
842
|
+
name: "schema:event.name",
|
|
843
|
+
title: "Name"
|
|
844
|
+
},
|
|
845
|
+
{
|
|
846
|
+
type: "text",
|
|
847
|
+
name: "schema:startDate",
|
|
848
|
+
title: "Start Date"
|
|
849
|
+
},
|
|
850
|
+
{
|
|
851
|
+
type: "text",
|
|
852
|
+
name: "schema:endDate",
|
|
853
|
+
title: "End Date"
|
|
854
|
+
},
|
|
855
|
+
{
|
|
856
|
+
type: "text",
|
|
857
|
+
name: "schema:event.location",
|
|
858
|
+
title: "Location Name"
|
|
859
|
+
},
|
|
860
|
+
{
|
|
861
|
+
type: "panel",
|
|
862
|
+
name: "schema:event.address",
|
|
863
|
+
title: "Postal Address",
|
|
864
|
+
elements: [
|
|
865
|
+
{
|
|
866
|
+
type: "text",
|
|
867
|
+
name: "schema:event.streetAddress",
|
|
868
|
+
title: "Street Address"
|
|
869
|
+
},
|
|
870
|
+
{
|
|
871
|
+
type: "text",
|
|
872
|
+
name: "schema:event.addressLocality",
|
|
873
|
+
title: "City"
|
|
874
|
+
},
|
|
875
|
+
{
|
|
876
|
+
type: "text",
|
|
877
|
+
name: "schema:event.addressRegion",
|
|
878
|
+
title: "Region/State"
|
|
879
|
+
},
|
|
880
|
+
{
|
|
881
|
+
type: "text",
|
|
882
|
+
name: "schema:event.postalCode",
|
|
883
|
+
title: "Postal Code"
|
|
884
|
+
},
|
|
885
|
+
{
|
|
886
|
+
type: "text",
|
|
887
|
+
name: "schema:event.addressCountry",
|
|
888
|
+
title: "Country"
|
|
889
|
+
}
|
|
890
|
+
]
|
|
891
|
+
}
|
|
892
|
+
]
|
|
893
|
+
}
|
|
894
|
+
]
|
|
895
|
+
},
|
|
896
|
+
{
|
|
897
|
+
name: "agentsCredentialsAndAttributes",
|
|
898
|
+
visibleIf: "{ixo:advancedDomainSettings} = true",
|
|
899
|
+
title: "Agents, Credentials, and Attributes",
|
|
900
|
+
elements: [
|
|
901
|
+
{
|
|
902
|
+
type: "paneldynamic",
|
|
903
|
+
name: "ixo:agentCard",
|
|
904
|
+
title: "Agents",
|
|
905
|
+
templateElements: [
|
|
906
|
+
{
|
|
907
|
+
type: "text",
|
|
908
|
+
name: "ixo:agentCard.id",
|
|
909
|
+
title: "Agent ID"
|
|
910
|
+
},
|
|
911
|
+
{
|
|
912
|
+
type: "text",
|
|
913
|
+
name: "ixo:agentCard.name",
|
|
914
|
+
title: "Name"
|
|
915
|
+
},
|
|
916
|
+
{
|
|
917
|
+
type: "text",
|
|
918
|
+
name: "ixo:agentCard.description",
|
|
919
|
+
title: "Description"
|
|
920
|
+
}
|
|
921
|
+
]
|
|
922
|
+
},
|
|
923
|
+
{
|
|
924
|
+
type: "paneldynamic",
|
|
925
|
+
name: "ixo:verifiableCredential",
|
|
926
|
+
title: "Credentials",
|
|
927
|
+
templateElements: [
|
|
928
|
+
{
|
|
929
|
+
type: "text",
|
|
930
|
+
name: "schema:ID",
|
|
931
|
+
title: "Credential ID"
|
|
932
|
+
},
|
|
933
|
+
{
|
|
934
|
+
type: "text",
|
|
935
|
+
name: "schema:Name",
|
|
936
|
+
title: "Name"
|
|
937
|
+
},
|
|
938
|
+
{
|
|
939
|
+
type: "text",
|
|
940
|
+
name: "schema:description",
|
|
941
|
+
title: "Description"
|
|
942
|
+
}
|
|
943
|
+
]
|
|
944
|
+
},
|
|
945
|
+
{
|
|
946
|
+
type: "paneldynamic",
|
|
947
|
+
name: "ixo:attribute",
|
|
948
|
+
title: "Attributes",
|
|
949
|
+
templateElements: [
|
|
950
|
+
{
|
|
951
|
+
type: "text",
|
|
952
|
+
name: "schema:ID_2",
|
|
953
|
+
title: "Attribute ID"
|
|
954
|
+
},
|
|
955
|
+
{
|
|
956
|
+
type: "text",
|
|
957
|
+
name: "schema:name_2",
|
|
958
|
+
title: "Name"
|
|
959
|
+
},
|
|
960
|
+
{
|
|
961
|
+
type: "text",
|
|
962
|
+
name: "schema:description_2",
|
|
963
|
+
title: "Description"
|
|
964
|
+
}
|
|
965
|
+
]
|
|
966
|
+
}
|
|
967
|
+
]
|
|
968
|
+
},
|
|
969
|
+
{
|
|
970
|
+
name: "project",
|
|
971
|
+
visibleIf: "{ixo:advancedDomainSettings} = true",
|
|
972
|
+
title: "Project Information",
|
|
973
|
+
description: "Provide details about the related project(s), including objectives, sponsors, and deliverables.",
|
|
974
|
+
elements: [
|
|
975
|
+
{
|
|
976
|
+
type: "paneldynamic",
|
|
977
|
+
name: "pannel_proj:project",
|
|
978
|
+
title: "Projects",
|
|
979
|
+
templateElements: [
|
|
980
|
+
{
|
|
981
|
+
type: "text",
|
|
982
|
+
name: "proj:project.name",
|
|
983
|
+
title: "Project Title"
|
|
984
|
+
},
|
|
985
|
+
{
|
|
986
|
+
type: "comment",
|
|
987
|
+
name: "proj:project.description",
|
|
988
|
+
title: "Project Mission",
|
|
989
|
+
description: "High-level purpose or mission statement of the project."
|
|
990
|
+
},
|
|
991
|
+
{
|
|
992
|
+
type: "paneldynamic",
|
|
993
|
+
name: "proj:project.hadObjective",
|
|
994
|
+
title: "Project Objectives",
|
|
995
|
+
templateElements: [
|
|
996
|
+
{
|
|
997
|
+
type: "comment",
|
|
998
|
+
name: "proj:hadObjective",
|
|
999
|
+
title: "Project Objective"
|
|
1000
|
+
}
|
|
1001
|
+
]
|
|
1002
|
+
},
|
|
1003
|
+
{
|
|
1004
|
+
type: "text",
|
|
1005
|
+
name: "proj:plannedStart",
|
|
1006
|
+
title: "Planned Start Date",
|
|
1007
|
+
inputType: "datetime-local"
|
|
1008
|
+
},
|
|
1009
|
+
{
|
|
1010
|
+
type: "text",
|
|
1011
|
+
name: "proj:plannedEnd",
|
|
1012
|
+
title: "Planned End Date",
|
|
1013
|
+
inputType: "datetime-local"
|
|
1014
|
+
},
|
|
1015
|
+
{
|
|
1016
|
+
type: "paneldynamic",
|
|
1017
|
+
name: "proj:wasFundedThrough",
|
|
1018
|
+
title: "Project Funding",
|
|
1019
|
+
templateElements: [
|
|
1020
|
+
{
|
|
1021
|
+
type: "text",
|
|
1022
|
+
name: "proj:moneyAmount",
|
|
1023
|
+
title: "Funding Amount"
|
|
1024
|
+
},
|
|
1025
|
+
{
|
|
1026
|
+
type: "text",
|
|
1027
|
+
name: "proj:moneyCurrency",
|
|
1028
|
+
title: "Funding Currency"
|
|
1029
|
+
},
|
|
1030
|
+
{
|
|
1031
|
+
type: "text",
|
|
1032
|
+
name: "prov.agent.name",
|
|
1033
|
+
title: "Funder Name"
|
|
1034
|
+
},
|
|
1035
|
+
{
|
|
1036
|
+
type: "text",
|
|
1037
|
+
name: "prov:agent.id",
|
|
1038
|
+
title: "Funder URL",
|
|
1039
|
+
inputType: "url"
|
|
1040
|
+
}
|
|
1041
|
+
]
|
|
1042
|
+
}
|
|
1043
|
+
]
|
|
1044
|
+
}
|
|
1045
|
+
]
|
|
1046
|
+
},
|
|
1047
|
+
{
|
|
1048
|
+
name: "researchProfile",
|
|
1049
|
+
title: "Research Profile",
|
|
1050
|
+
description: "Provide information about the research profile associated with the domain.",
|
|
1051
|
+
elements: [
|
|
1052
|
+
{
|
|
1053
|
+
type: "paneldynamic",
|
|
1054
|
+
name: "ixo:ResearchProfile",
|
|
1055
|
+
title: "Seed Queries",
|
|
1056
|
+
templateElements: [
|
|
1057
|
+
{
|
|
1058
|
+
type: "comment",
|
|
1059
|
+
name: "ixo:seedQueries",
|
|
1060
|
+
title: "Seed Query",
|
|
1061
|
+
description: "Seed keywords or queries that define the research scope."
|
|
1062
|
+
}
|
|
1063
|
+
]
|
|
1064
|
+
},
|
|
1065
|
+
{
|
|
1066
|
+
type: "paneldynamic",
|
|
1067
|
+
name: "schema:creativeWork",
|
|
1068
|
+
title: "Citations",
|
|
1069
|
+
templateElements: [
|
|
1070
|
+
{
|
|
1071
|
+
type: "text",
|
|
1072
|
+
name: "schema:creativeWork.name",
|
|
1073
|
+
title: "Citation Title"
|
|
1074
|
+
},
|
|
1075
|
+
{
|
|
1076
|
+
type: "text",
|
|
1077
|
+
name: "schema:creativeWork.url",
|
|
1078
|
+
title: "Citation URL"
|
|
1079
|
+
},
|
|
1080
|
+
{
|
|
1081
|
+
type: "text",
|
|
1082
|
+
name: "schema:creativeWork.publisher",
|
|
1083
|
+
title: "Publisher"
|
|
1084
|
+
},
|
|
1085
|
+
{
|
|
1086
|
+
type: "text",
|
|
1087
|
+
name: "schema:creativeWork.datePublished",
|
|
1088
|
+
title: "Date Published",
|
|
1089
|
+
inputType: "datetime-local"
|
|
1090
|
+
}
|
|
1091
|
+
]
|
|
1092
|
+
}
|
|
1093
|
+
]
|
|
1094
|
+
}
|
|
1095
|
+
],
|
|
1096
|
+
showPageTitles: false,
|
|
1097
|
+
showQuestionNumbers: "on",
|
|
1098
|
+
showProgressBar: true,
|
|
1099
|
+
progressBarLocation: "top"
|
|
1100
|
+
};
|
|
1101
|
+
|
|
1102
|
+
// src/core/lib/actionRegistry/actions/domainSign.ts
|
|
1103
|
+
function resolveEntityTypeFromSchema(schemaType) {
|
|
1104
|
+
const normalized = schemaType.replace(/^schema:/i, "").toLowerCase();
|
|
1105
|
+
const schemaToEntity = {
|
|
1106
|
+
organization: "dao/pod",
|
|
1107
|
+
nonprofit: "dao/pod",
|
|
1108
|
+
corporation: "dao/pod",
|
|
1109
|
+
governmentorganization: "dao/pod"
|
|
1110
|
+
};
|
|
1111
|
+
if (schemaToEntity[normalized]) return schemaToEntity[normalized];
|
|
1112
|
+
const allowed = /* @__PURE__ */ new Set(["dao/pod", "protocol", "oracle", "investment", "project", "asset"]);
|
|
1113
|
+
return allowed.has(normalized) ? normalized : "dao/pod";
|
|
1114
|
+
}
|
|
1115
|
+
function parseJsonInput(value) {
|
|
1116
|
+
if (!value) return null;
|
|
1117
|
+
if (typeof value === "object" && !Array.isArray(value)) return value;
|
|
1118
|
+
if (typeof value === "string") {
|
|
1119
|
+
try {
|
|
1120
|
+
const parsed = JSON.parse(value);
|
|
1121
|
+
return parsed && typeof parsed === "object" ? parsed : null;
|
|
1122
|
+
} catch {
|
|
1123
|
+
return null;
|
|
1124
|
+
}
|
|
1125
|
+
}
|
|
1126
|
+
return null;
|
|
1127
|
+
}
|
|
1128
|
+
function parseContextInput(value) {
|
|
1129
|
+
let raw = value;
|
|
1130
|
+
if (typeof value === "string") {
|
|
1131
|
+
try {
|
|
1132
|
+
raw = JSON.parse(value);
|
|
1133
|
+
} catch {
|
|
1134
|
+
raw = [];
|
|
1135
|
+
}
|
|
1136
|
+
}
|
|
1137
|
+
if (!Array.isArray(raw)) return [];
|
|
1138
|
+
return raw.map((entry) => {
|
|
1139
|
+
if (!entry || typeof entry !== "object") return null;
|
|
1140
|
+
const key = String(entry.key || "").trim();
|
|
1141
|
+
const val = String(entry.val || "").trim();
|
|
1142
|
+
return key && val ? { key, val } : null;
|
|
1143
|
+
}).filter((entry) => entry !== null);
|
|
1144
|
+
}
|
|
1145
|
+
function getSelectedProtocolTemplates(flowTemplateConfig) {
|
|
1146
|
+
const raw = flowTemplateConfig?.selectedTemplates;
|
|
1147
|
+
if (!Array.isArray(raw)) return [];
|
|
1148
|
+
return raw.map((item) => {
|
|
1149
|
+
if (!item || typeof item !== "object") return null;
|
|
1150
|
+
const record = item;
|
|
1151
|
+
const protocolDid = String(record.protocolDid || "").trim();
|
|
1152
|
+
const sourceRoomId = String(record.sourceRoomId || "").trim();
|
|
1153
|
+
if (!protocolDid || !sourceRoomId) return null;
|
|
1154
|
+
const sourceLabel = String(record.sourceLabel || record.label || "").trim();
|
|
1155
|
+
return {
|
|
1156
|
+
protocolDid,
|
|
1157
|
+
sourceRoomId,
|
|
1158
|
+
...sourceLabel ? { sourceLabel } : {}
|
|
1159
|
+
};
|
|
1160
|
+
}).filter((item) => item !== null);
|
|
1161
|
+
}
|
|
1162
|
+
function groupTemplatesByProtocol(templates) {
|
|
1163
|
+
const grouped = /* @__PURE__ */ new Map();
|
|
1164
|
+
for (const template of templates) {
|
|
1165
|
+
const existing = grouped.get(template.protocolDid) || [];
|
|
1166
|
+
existing.push({
|
|
1167
|
+
sourceRoomId: template.sourceRoomId,
|
|
1168
|
+
...template.sourceLabel ? { sourceLabel: template.sourceLabel } : {}
|
|
1169
|
+
});
|
|
1170
|
+
grouped.set(template.protocolDid, existing);
|
|
1171
|
+
}
|
|
1172
|
+
return grouped;
|
|
1173
|
+
}
|
|
1174
|
+
var DOMAIN_SIGN_CACHE_KEY = "domainSign";
|
|
1175
|
+
function getDomainSignCheckpointKey(inputs, ctx) {
|
|
1176
|
+
return String(ctx.pendingInvocation?.id || inputs.pendingInvocationId || inputs.invocationId || "manual");
|
|
1177
|
+
}
|
|
1178
|
+
function readDomainSignCheckpoint(ctx, key) {
|
|
1179
|
+
const cache = ctx.runtime?.get?.(ctx.nodeId)?.cache;
|
|
1180
|
+
const bucket = cache?.[DOMAIN_SIGN_CACHE_KEY];
|
|
1181
|
+
if (!bucket || typeof bucket !== "object") return void 0;
|
|
1182
|
+
const checkpoint = bucket[key];
|
|
1183
|
+
return checkpoint && typeof checkpoint === "object" ? checkpoint : void 0;
|
|
1184
|
+
}
|
|
1185
|
+
function writeDomainSignCheckpoint(ctx, key, checkpoint) {
|
|
1186
|
+
if (!ctx.runtime?.get || !ctx.runtime?.update || !ctx.nodeId) return;
|
|
1187
|
+
const current = ctx.runtime.get(ctx.nodeId) || {};
|
|
1188
|
+
const cache = current.cache && typeof current.cache === "object" ? current.cache : {};
|
|
1189
|
+
const bucket = cache[DOMAIN_SIGN_CACHE_KEY] && typeof cache[DOMAIN_SIGN_CACHE_KEY] === "object" ? cache[DOMAIN_SIGN_CACHE_KEY] : {};
|
|
1190
|
+
ctx.runtime.update(ctx.nodeId, {
|
|
1191
|
+
cache: {
|
|
1192
|
+
...cache,
|
|
1193
|
+
[DOMAIN_SIGN_CACHE_KEY]: {
|
|
1194
|
+
...bucket,
|
|
1195
|
+
[key]: checkpoint
|
|
1196
|
+
}
|
|
1197
|
+
}
|
|
1198
|
+
});
|
|
1199
|
+
}
|
|
1200
|
+
function buildCompletedDomainSignResult(output) {
|
|
1201
|
+
const payload = {
|
|
1202
|
+
entityDid: output.entityDid,
|
|
1203
|
+
governanceGroupCoreAddress: output.governanceGroupCoreAddress || "",
|
|
1204
|
+
transactionHash: output.transactionHash || "",
|
|
1205
|
+
linkedResourceTransactionHash: output.linkedResourceTransactionHash || "",
|
|
1206
|
+
...output.parentLinkedEntityTransactionHash ? { parentLinkedEntityTransactionHash: output.parentLinkedEntityTransactionHash } : {}
|
|
1207
|
+
};
|
|
1208
|
+
return {
|
|
1209
|
+
output,
|
|
1210
|
+
events: [
|
|
1211
|
+
{
|
|
1212
|
+
name: "created",
|
|
1213
|
+
payload
|
|
1214
|
+
}
|
|
1215
|
+
]
|
|
1216
|
+
};
|
|
1217
|
+
}
|
|
1218
|
+
function readDidInput(value) {
|
|
1219
|
+
if (typeof value !== "string") return "";
|
|
1220
|
+
const did = value.trim();
|
|
1221
|
+
if (!did || did === "null" || did === "undefined") return "";
|
|
1222
|
+
return did.startsWith("did:") ? did : "";
|
|
1223
|
+
}
|
|
1224
|
+
function getSelectedParentEntityDid(inputs) {
|
|
1225
|
+
if (inputs.skipped === true || inputs.parentSkipped === true) return "";
|
|
1226
|
+
return readDidInput(inputs.selectedEntityDid) || readDidInput(inputs.parentDid) || readDidInput(inputs.parentDID);
|
|
1227
|
+
}
|
|
1228
|
+
var MAX_PIN_ATTEMPTS = 3;
|
|
1229
|
+
function isInvalidPinError(err) {
|
|
1230
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
1231
|
+
return /invalid pin|could not decrypt mnemonic/i.test(msg);
|
|
1232
|
+
}
|
|
1233
|
+
function parseDuration(raw) {
|
|
1234
|
+
const seconds = parseInt(raw, 10) || 0;
|
|
1235
|
+
if (seconds % (7 * 86400) === 0) return { amount: seconds / (7 * 86400), unit: "weeks" };
|
|
1236
|
+
if (seconds % 86400 === 0) return { amount: seconds / 86400, unit: "days" };
|
|
1237
|
+
if (seconds % 3600 === 0) return { amount: seconds / 3600, unit: "hours" };
|
|
1238
|
+
if (seconds % 60 === 0) return { amount: seconds / 60, unit: "minutes" };
|
|
1239
|
+
return { amount: seconds, unit: "seconds" };
|
|
1240
|
+
}
|
|
1241
|
+
function buildGroupConfig(groupType, governance, memberConfig) {
|
|
1242
|
+
const duration = parseDuration(governance.votingPeriod || "604800s");
|
|
1243
|
+
const thresholdNum = parseFloat(governance.threshold || "0.51");
|
|
1244
|
+
const quorumNum = parseFloat(governance.quorum);
|
|
1245
|
+
const unstakingDuration = governance.unstakingDuration ? parseDuration(governance.unstakingDuration) : null;
|
|
1246
|
+
const baseConfig = {
|
|
1247
|
+
proposalDurationAmount: duration.amount,
|
|
1248
|
+
proposalDurationUnit: duration.unit,
|
|
1249
|
+
proposalSubmissionPolicy: "members",
|
|
1250
|
+
voteSwitching: false
|
|
1251
|
+
};
|
|
1252
|
+
const decisionPolicy = {
|
|
1253
|
+
passingThreshold: "percentage",
|
|
1254
|
+
passingThresholdPercentage: Math.round(thresholdNum * 100),
|
|
1255
|
+
...Number.isFinite(quorumNum) && quorumNum > 0 ? { quorum: "percentage", quorumPercentage: Math.round(quorumNum * 100) } : {}
|
|
1256
|
+
};
|
|
1257
|
+
if (groupType === "multisig") {
|
|
1258
|
+
const members2 = memberConfig?.members || [];
|
|
1259
|
+
return {
|
|
1260
|
+
...baseConfig,
|
|
1261
|
+
threshold: memberConfig?.multisigThreshold || 1,
|
|
1262
|
+
membershipCategory: [{ members: members2.map((m) => m.did) }]
|
|
1263
|
+
};
|
|
1264
|
+
}
|
|
1265
|
+
if (groupType === "nftStaking") {
|
|
1266
|
+
return {
|
|
1267
|
+
...baseConfig,
|
|
1268
|
+
...decisionPolicy,
|
|
1269
|
+
nftContractAddress: memberConfig?.nftContractAddress || "",
|
|
1270
|
+
...unstakingDuration ? { unstakingDurationAmount: unstakingDuration.amount, unstakingDurationUnit: unstakingDuration.unit } : {}
|
|
1271
|
+
};
|
|
1272
|
+
}
|
|
1273
|
+
if (groupType === "tokenStaking") {
|
|
1274
|
+
const tokenConfig = memberConfig?.tokenConfig || {};
|
|
1275
|
+
return {
|
|
1276
|
+
...baseConfig,
|
|
1277
|
+
...decisionPolicy,
|
|
1278
|
+
isExistingToken: Boolean(tokenConfig.isExistingToken),
|
|
1279
|
+
tokenAddress: tokenConfig.tokenAddress || "",
|
|
1280
|
+
tokenName: tokenConfig.tokenName || "",
|
|
1281
|
+
tokenSymbol: tokenConfig.tokenSymbol || "",
|
|
1282
|
+
tokenSupply: tokenConfig.tokenSupply || 0,
|
|
1283
|
+
distributionCategory: tokenConfig.distributionCategory || [],
|
|
1284
|
+
...unstakingDuration ? { unstakingDurationAmount: unstakingDuration.amount, unstakingDurationUnit: unstakingDuration.unit } : {}
|
|
1285
|
+
};
|
|
1286
|
+
}
|
|
1287
|
+
const members = memberConfig?.members || [];
|
|
1288
|
+
const byRole = /* @__PURE__ */ new Map();
|
|
1289
|
+
for (const m of members) {
|
|
1290
|
+
const role = m.role || "member";
|
|
1291
|
+
const existing = byRole.get(role);
|
|
1292
|
+
if (existing) {
|
|
1293
|
+
existing.dids.push(m.did);
|
|
1294
|
+
} else {
|
|
1295
|
+
byRole.set(role, { dids: [m.did], weight: m.votingPower || 1 });
|
|
1296
|
+
}
|
|
1297
|
+
}
|
|
1298
|
+
return {
|
|
1299
|
+
...baseConfig,
|
|
1300
|
+
...decisionPolicy,
|
|
1301
|
+
membershipCategory: Array.from(byRole.entries()).map(([role, { dids, weight }]) => ({
|
|
1302
|
+
categoryName: role,
|
|
1303
|
+
members: dids.map((did) => ({ memberAddress: did })),
|
|
1304
|
+
weightPerMember: weight
|
|
1305
|
+
}))
|
|
1306
|
+
};
|
|
1307
|
+
}
|
|
1308
|
+
registerAction({
|
|
1309
|
+
type: "qi/domain.sign",
|
|
1310
|
+
can: "domain/sign",
|
|
1311
|
+
sideEffect: true,
|
|
1312
|
+
proof: { fields: ["entityDid"] },
|
|
1313
|
+
done: doneWhenCompleted,
|
|
1314
|
+
defaultRequiresConfirmation: true,
|
|
1315
|
+
requiredCapability: "flow/block/execute",
|
|
1316
|
+
eligibleForEventTrigger: true,
|
|
1317
|
+
inputSchema: {
|
|
1318
|
+
type: "object",
|
|
1319
|
+
required: ["domainCardData"],
|
|
1320
|
+
properties: {
|
|
1321
|
+
domainCardData: {
|
|
1322
|
+
type: "object",
|
|
1323
|
+
description: "Domain card envelope (object or JSON string) with credentialSubject.name; signed and used to create the domain."
|
|
1324
|
+
},
|
|
1325
|
+
entityType: { type: "string", description: "Optional on-chain entity type; defaults from the credential type or dao/pod." },
|
|
1326
|
+
governanceConfig: { type: "object", description: "Optional governance group config (object or JSON string) used to create a governance group." },
|
|
1327
|
+
memberConfig: { type: "object", description: "Optional member config (object or JSON string) for the governance group." },
|
|
1328
|
+
flowTemplateConfig: { type: "object", description: "Optional flow template config (object or JSON string) with selected protocol templates." },
|
|
1329
|
+
context: { type: "array", description: "Optional context entries (array of { key, val } or JSON string) attached to the domain." },
|
|
1330
|
+
selectedEntityDid: { type: "string", description: "Optional parent entity DID to link the new POD to." },
|
|
1331
|
+
parentDid: { type: "string", description: "Optional parent entity DID (alternate field)." },
|
|
1332
|
+
parentDID: { type: "string", description: "Optional parent entity DID (alternate field)." },
|
|
1333
|
+
skipped: { type: "boolean", description: "Optional flag that skips parent entity linking." },
|
|
1334
|
+
parentSkipped: { type: "boolean", description: "Optional flag that skips parent entity linking." },
|
|
1335
|
+
pendingInvocationId: { type: "string", description: "Optional invocation ID used as the checkpoint key for resumable runs." },
|
|
1336
|
+
invocationId: { type: "string", description: "Optional invocation ID used as the checkpoint key for resumable runs." }
|
|
1337
|
+
}
|
|
1338
|
+
},
|
|
1339
|
+
outputSchema: [
|
|
1340
|
+
{ path: "entityDid", displayName: "Entity DID", type: "string", description: "The DID of the newly created domain entity" },
|
|
1341
|
+
{
|
|
1342
|
+
path: "governanceGroupCoreAddress",
|
|
1343
|
+
displayName: "Governance Group Core Address",
|
|
1344
|
+
type: "string",
|
|
1345
|
+
description: "The core address of the created governance group, when one was created"
|
|
1346
|
+
},
|
|
1347
|
+
{ path: "transactionHash", displayName: "Transaction Hash", type: "string", description: "The on-chain transaction hash for domain creation" },
|
|
1348
|
+
{
|
|
1349
|
+
path: "linkedResourceTransactionHash",
|
|
1350
|
+
displayName: "Linked Resource Transaction Hash",
|
|
1351
|
+
type: "string",
|
|
1352
|
+
description: "The on-chain transaction hash for adding the domain card linked resource"
|
|
1353
|
+
},
|
|
1354
|
+
{
|
|
1355
|
+
path: "parentEntityDid",
|
|
1356
|
+
displayName: "Parent Entity DID",
|
|
1357
|
+
type: "string",
|
|
1358
|
+
description: "The selected parent entity DID that was updated with the new POD linked entity"
|
|
1359
|
+
},
|
|
1360
|
+
{
|
|
1361
|
+
path: "parentLinkedEntityTransactionHash",
|
|
1362
|
+
displayName: "Parent Linked Entity Transaction Hash",
|
|
1363
|
+
type: "string",
|
|
1364
|
+
description: "The on-chain transaction hash for linking the new POD to the selected parent entity"
|
|
1365
|
+
},
|
|
1366
|
+
{
|
|
1367
|
+
path: "flowTemplateConfig",
|
|
1368
|
+
displayName: "Flow Template Config",
|
|
1369
|
+
type: "object",
|
|
1370
|
+
description: "Selected protocol templates captured before POD creation"
|
|
1371
|
+
},
|
|
1372
|
+
{
|
|
1373
|
+
path: "domainSpaces",
|
|
1374
|
+
displayName: "Domain Spaces",
|
|
1375
|
+
type: "object",
|
|
1376
|
+
description: "Matrix space structure sourced for the new domain"
|
|
1377
|
+
},
|
|
1378
|
+
{
|
|
1379
|
+
path: "protocolTemplateImports",
|
|
1380
|
+
displayName: "Protocol Template Imports",
|
|
1381
|
+
type: "array",
|
|
1382
|
+
description: "Import results for selected protocol templates"
|
|
1383
|
+
}
|
|
1384
|
+
],
|
|
1385
|
+
events: [
|
|
1386
|
+
{
|
|
1387
|
+
name: "created",
|
|
1388
|
+
displayName: "Domain Created",
|
|
1389
|
+
description: "Fires after the domain entity is successfully created on-chain.",
|
|
1390
|
+
payloadSchema: [
|
|
1391
|
+
{ path: "entityDid", displayName: "Entity DID", type: "string", description: "DID of the newly created domain" },
|
|
1392
|
+
{
|
|
1393
|
+
path: "governanceGroupCoreAddress",
|
|
1394
|
+
displayName: "Governance Group Core Address",
|
|
1395
|
+
type: "string",
|
|
1396
|
+
description: "Core address of the created governance group, when present"
|
|
1397
|
+
},
|
|
1398
|
+
{ path: "transactionHash", displayName: "Transaction Hash", type: "string", description: "On-chain transaction hash" },
|
|
1399
|
+
{
|
|
1400
|
+
path: "linkedResourceTransactionHash",
|
|
1401
|
+
displayName: "Linked Resource Transaction Hash",
|
|
1402
|
+
type: "string",
|
|
1403
|
+
description: "On-chain transaction hash for adding the domain card linked resource"
|
|
1404
|
+
},
|
|
1405
|
+
{
|
|
1406
|
+
path: "parentLinkedEntityTransactionHash",
|
|
1407
|
+
displayName: "Parent Linked Entity Transaction Hash",
|
|
1408
|
+
type: "string",
|
|
1409
|
+
description: "On-chain transaction hash for linking the new POD to the selected parent entity"
|
|
1410
|
+
}
|
|
1411
|
+
],
|
|
1412
|
+
pendingDisplayFields: ["entityDid", "governanceGroupCoreAddress"]
|
|
1413
|
+
}
|
|
1414
|
+
],
|
|
1415
|
+
// Mirrors run(): the card envelope (object or JSON string) must carry
|
|
1416
|
+
// credentialSubject.name before signing can start.
|
|
1417
|
+
getMissingInputs: (inputs) => {
|
|
1418
|
+
const card = parseMaybeJsonObject(inputs.domainCardData);
|
|
1419
|
+
if (!card) return ["domainCardData"];
|
|
1420
|
+
const subject = card.credentialSubject;
|
|
1421
|
+
return subject && String(subject.name || "").trim() ? [] : ["domainCardData.credentialSubject.name"];
|
|
1422
|
+
},
|
|
1423
|
+
run: async (inputs, ctx) => {
|
|
1424
|
+
const handlers = ctx.handlers || {};
|
|
1425
|
+
let domainCardData;
|
|
1426
|
+
if (typeof inputs.domainCardData === "string") {
|
|
1427
|
+
try {
|
|
1428
|
+
domainCardData = JSON.parse(inputs.domainCardData);
|
|
1429
|
+
} catch {
|
|
1430
|
+
throw new Error("domainCardData must be valid JSON");
|
|
1431
|
+
}
|
|
1432
|
+
} else if (inputs.domainCardData && typeof inputs.domainCardData === "object") {
|
|
1433
|
+
domainCardData = inputs.domainCardData;
|
|
1434
|
+
} else {
|
|
1435
|
+
throw new Error("domainCardData is required");
|
|
1436
|
+
}
|
|
1437
|
+
if (!domainCardData?.credentialSubject?.name) {
|
|
1438
|
+
throw new Error("domainCardData is missing or invalid (credentialSubject.name required)");
|
|
1439
|
+
}
|
|
1440
|
+
const entityType = String(inputs.entityType || "").trim() || (domainCardData.credentialSubject?.type?.[0] ? resolveEntityTypeFromSchema(domainCardData.credentialSubject.type[0]) : "dao/pod");
|
|
1441
|
+
const validFrom = domainCardData.validFrom || (/* @__PURE__ */ new Date()).toISOString();
|
|
1442
|
+
const validUntil = domainCardData.validUntil || (() => {
|
|
1443
|
+
const d = /* @__PURE__ */ new Date();
|
|
1444
|
+
d.setFullYear(d.getFullYear() + 100);
|
|
1445
|
+
return d.toISOString();
|
|
1446
|
+
})();
|
|
1447
|
+
const govConfig = parseJsonInput(inputs.governanceConfig);
|
|
1448
|
+
const memberConfig = parseJsonInput(inputs.memberConfig);
|
|
1449
|
+
const flowTemplateConfig = parseJsonInput(inputs.flowTemplateConfig);
|
|
1450
|
+
const context = parseContextInput(inputs.context);
|
|
1451
|
+
const selectedParentEntityDid = getSelectedParentEntityDid(inputs);
|
|
1452
|
+
const selectedProtocolTemplates = getSelectedProtocolTemplates(flowTemplateConfig);
|
|
1453
|
+
const checkpointKey = getDomainSignCheckpointKey(inputs, ctx);
|
|
1454
|
+
let checkpoint = readDomainSignCheckpoint(ctx, checkpointKey) || {
|
|
1455
|
+
invocationId: checkpointKey,
|
|
1456
|
+
status: "running",
|
|
1457
|
+
updatedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
1458
|
+
completedSteps: {}
|
|
1459
|
+
};
|
|
1460
|
+
if (checkpoint.status === "completed" && checkpoint.output) {
|
|
1461
|
+
return buildCompletedDomainSignResult(checkpoint.output);
|
|
1462
|
+
}
|
|
1463
|
+
if (!ctx.handlers) {
|
|
1464
|
+
throw new Error("Handlers not available");
|
|
1465
|
+
}
|
|
1466
|
+
if (typeof handlers.requestPin !== "function") throw new Error("requestPin handler not available");
|
|
1467
|
+
if (typeof handlers.signCredential !== "function") throw new Error("signCredential handler not implemented");
|
|
1468
|
+
if (!ctx.services.domainVfs) throw new Error("entity VFS domain persistence service not available");
|
|
1469
|
+
if (typeof handlers.createDomain !== "function") throw new Error("createDomain handler not implemented");
|
|
1470
|
+
if (typeof handlers.createAddLinkedResourceMessage !== "function") throw new Error("createAddLinkedResourceMessage handler not implemented");
|
|
1471
|
+
if (typeof handlers.executeTransaction !== "function") throw new Error("executeTransaction handler not implemented");
|
|
1472
|
+
const { requestPin, signCredential } = handlers;
|
|
1473
|
+
const domainVfs = ctx.services.domainVfs;
|
|
1474
|
+
const saveCheckpoint = (updates) => {
|
|
1475
|
+
checkpoint = {
|
|
1476
|
+
...checkpoint,
|
|
1477
|
+
...updates,
|
|
1478
|
+
invocationId: checkpointKey,
|
|
1479
|
+
updatedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
1480
|
+
completedSteps: {
|
|
1481
|
+
...checkpoint.completedSteps || {},
|
|
1482
|
+
...updates.completedSteps || {}
|
|
1483
|
+
}
|
|
1484
|
+
};
|
|
1485
|
+
writeDomainSignCheckpoint(ctx, checkpointKey, checkpoint);
|
|
1486
|
+
return checkpoint;
|
|
1487
|
+
};
|
|
1488
|
+
saveCheckpoint({
|
|
1489
|
+
status: "running",
|
|
1490
|
+
error: void 0,
|
|
1491
|
+
flowTemplateConfig
|
|
1492
|
+
});
|
|
1493
|
+
try {
|
|
1494
|
+
let governanceGroupLinkedEntities = checkpoint.governanceGroupLinkedEntities || [];
|
|
1495
|
+
let governanceGroupCoreAddress = checkpoint.governanceGroupCoreAddress || "";
|
|
1496
|
+
if (govConfig && handlers.createGovernanceGroup && !checkpoint.completedSteps?.createGovernanceGroup) {
|
|
1497
|
+
const groupType = govConfig.groupType;
|
|
1498
|
+
const governance = govConfig.governance || {};
|
|
1499
|
+
const config = buildGroupConfig(groupType, governance, memberConfig);
|
|
1500
|
+
const groupResult = await handlers.createGovernanceGroup({
|
|
1501
|
+
groupType,
|
|
1502
|
+
name: govConfig.groupName || domainCardData.credentialSubject?.name || "Governance Group",
|
|
1503
|
+
config
|
|
1504
|
+
});
|
|
1505
|
+
governanceGroupCoreAddress = groupResult.coreAddress;
|
|
1506
|
+
governanceGroupLinkedEntities = [
|
|
1507
|
+
{
|
|
1508
|
+
id: `{id}#${governanceGroupCoreAddress}`,
|
|
1509
|
+
type: "group",
|
|
1510
|
+
relationship: "governs",
|
|
1511
|
+
service: ""
|
|
1512
|
+
}
|
|
1513
|
+
];
|
|
1514
|
+
saveCheckpoint({
|
|
1515
|
+
governanceGroupCoreAddress,
|
|
1516
|
+
governanceGroupLinkedEntities,
|
|
1517
|
+
completedSteps: { createGovernanceGroup: true }
|
|
1518
|
+
});
|
|
1519
|
+
} else if (!govConfig) {
|
|
1520
|
+
saveCheckpoint({ completedSteps: { createGovernanceGroup: true } });
|
|
1521
|
+
}
|
|
1522
|
+
const issuerDid = handlers.getEntityDid?.() || handlers.getCurrentUser?.()?.address;
|
|
1523
|
+
if (!issuerDid) throw new Error("Unable to determine issuer DID");
|
|
1524
|
+
const signAndUploadDomainCard = async (entityDid) => {
|
|
1525
|
+
const credentialSubject = {
|
|
1526
|
+
...domainCardData.credentialSubject,
|
|
1527
|
+
id: entityDid
|
|
1528
|
+
};
|
|
1529
|
+
const unsignedCredential = buildVerifiableCredential({
|
|
1530
|
+
entityDid,
|
|
1531
|
+
issuerDid,
|
|
1532
|
+
credentialSubject,
|
|
1533
|
+
validFrom,
|
|
1534
|
+
validUntil
|
|
1535
|
+
});
|
|
1536
|
+
let signedCredential;
|
|
1537
|
+
for (let attempt = 1; attempt <= MAX_PIN_ATTEMPTS; attempt++) {
|
|
1538
|
+
const pin = await requestPin({
|
|
1539
|
+
title: "Sign Domain Card",
|
|
1540
|
+
description: attempt === 1 ? "Enter your PIN to sign the Domain Card credential" : "Incorrect PIN. Re-enter your PIN to sign the Domain Card credential.",
|
|
1541
|
+
submitText: "Sign"
|
|
1542
|
+
});
|
|
1543
|
+
if (!pin) throw new Error("PIN entry cancelled");
|
|
1544
|
+
try {
|
|
1545
|
+
({ signedCredential } = await signCredential({
|
|
1546
|
+
issuerDid,
|
|
1547
|
+
issuerType: "user",
|
|
1548
|
+
credential: unsignedCredential,
|
|
1549
|
+
pin
|
|
1550
|
+
}));
|
|
1551
|
+
break;
|
|
1552
|
+
} catch (signError) {
|
|
1553
|
+
if (isInvalidPinError(signError) && attempt < MAX_PIN_ATTEMPTS) continue;
|
|
1554
|
+
throw signError;
|
|
1555
|
+
}
|
|
1556
|
+
}
|
|
1557
|
+
if (!signedCredential) throw new Error("Failed to sign credential");
|
|
1558
|
+
const domainMarkdown = [
|
|
1559
|
+
"---",
|
|
1560
|
+
`id: ${entityDid}`,
|
|
1561
|
+
`name: ${JSON.stringify(domainCardData.credentialSubject?.name || "Domain")}`,
|
|
1562
|
+
"private: true",
|
|
1563
|
+
"access: UCAN",
|
|
1564
|
+
"---",
|
|
1565
|
+
"",
|
|
1566
|
+
`# ${domainCardData.credentialSubject?.name || "Domain"}`,
|
|
1567
|
+
"",
|
|
1568
|
+
"This private domain package is stored in the entity VFS.",
|
|
1569
|
+
""
|
|
1570
|
+
].join("\n");
|
|
1571
|
+
const persisted = await domainVfs.persistDomainPackage({
|
|
1572
|
+
entityDid,
|
|
1573
|
+
name: domainCardData.credentialSubject?.name || "Domain",
|
|
1574
|
+
signedCredential,
|
|
1575
|
+
domainMarkdown
|
|
1576
|
+
});
|
|
1577
|
+
return {
|
|
1578
|
+
...buildDomainCardLinkedResource({
|
|
1579
|
+
entityDid,
|
|
1580
|
+
cid: persisted.credentialCid,
|
|
1581
|
+
serviceEndpoint: persisted.credentialServiceEndpoint,
|
|
1582
|
+
description: `Domain Card for ${domainCardData.credentialSubject?.name || "Domain"}`
|
|
1583
|
+
}),
|
|
1584
|
+
id: "{id}#dmn"
|
|
1585
|
+
};
|
|
1586
|
+
};
|
|
1587
|
+
const endDate = domainCardData.endDate || validUntil;
|
|
1588
|
+
let newEntityDid = checkpoint.entityDid || "";
|
|
1589
|
+
let transactionHash = checkpoint.transactionHash || "";
|
|
1590
|
+
let linkedResourceTransactionHash = checkpoint.linkedResourceTransactionHash || "";
|
|
1591
|
+
const parentEntityDid = checkpoint.parentEntityDid || selectedParentEntityDid;
|
|
1592
|
+
let parentLinkedEntity = checkpoint.parentLinkedEntity;
|
|
1593
|
+
let parentLinkedEntityTransactionHash = checkpoint.parentLinkedEntityTransactionHash || "";
|
|
1594
|
+
let domainCardLinkedResource = checkpoint.domainCardLinkedResource;
|
|
1595
|
+
if (!checkpoint.completedSteps?.createDomain || !newEntityDid || !transactionHash) {
|
|
1596
|
+
const createResult = await handlers.createDomain({
|
|
1597
|
+
entityType,
|
|
1598
|
+
context: context.length > 0 ? context : void 0,
|
|
1599
|
+
linkedResource: [],
|
|
1600
|
+
linkedEntity: governanceGroupLinkedEntities.length > 0 ? governanceGroupLinkedEntities : void 0,
|
|
1601
|
+
startDate: validFrom,
|
|
1602
|
+
endDate
|
|
1603
|
+
});
|
|
1604
|
+
newEntityDid = createResult.entityDid;
|
|
1605
|
+
transactionHash = createResult.transactionHash;
|
|
1606
|
+
saveCheckpoint({
|
|
1607
|
+
entityDid: newEntityDid,
|
|
1608
|
+
transactionHash,
|
|
1609
|
+
completedSteps: { createDomain: true }
|
|
1610
|
+
});
|
|
1611
|
+
}
|
|
1612
|
+
if (!checkpoint.completedSteps?.signAndUploadDomainCard || !domainCardLinkedResource) {
|
|
1613
|
+
domainCardLinkedResource = await signAndUploadDomainCard(newEntityDid);
|
|
1614
|
+
saveCheckpoint({
|
|
1615
|
+
domainCardLinkedResource,
|
|
1616
|
+
completedSteps: { signAndUploadDomainCard: true }
|
|
1617
|
+
});
|
|
1618
|
+
}
|
|
1619
|
+
if (!checkpoint.completedSteps?.addLinkedResource || !linkedResourceTransactionHash) {
|
|
1620
|
+
const addLinkedResourceMessage = await handlers.createAddLinkedResourceMessage({
|
|
1621
|
+
entityDid: newEntityDid,
|
|
1622
|
+
linkedResource: domainCardLinkedResource
|
|
1623
|
+
});
|
|
1624
|
+
const addLinkedResourceResult = await handlers.executeTransaction({
|
|
1625
|
+
messages: [addLinkedResourceMessage],
|
|
1626
|
+
memo: ""
|
|
1627
|
+
});
|
|
1628
|
+
linkedResourceTransactionHash = String(addLinkedResourceResult?.transactionHash || "");
|
|
1629
|
+
if (!linkedResourceTransactionHash) {
|
|
1630
|
+
throw new Error("Linked resource transaction completed but no transaction hash received");
|
|
1631
|
+
}
|
|
1632
|
+
saveCheckpoint({
|
|
1633
|
+
linkedResourceTransactionHash,
|
|
1634
|
+
completedSteps: { addLinkedResource: true }
|
|
1635
|
+
});
|
|
1636
|
+
}
|
|
1637
|
+
if (parentEntityDid && (!checkpoint.completedSteps?.addParentLinkedEntity || !parentLinkedEntityTransactionHash)) {
|
|
1638
|
+
if (typeof handlers.createAddLinkedEntityMessage !== "function") {
|
|
1639
|
+
throw new Error("createAddLinkedEntityMessage handler not implemented");
|
|
1640
|
+
}
|
|
1641
|
+
parentLinkedEntity = parentLinkedEntity || {
|
|
1642
|
+
id: newEntityDid,
|
|
1643
|
+
type: entityType,
|
|
1644
|
+
relationship: "manages",
|
|
1645
|
+
service: ""
|
|
1646
|
+
};
|
|
1647
|
+
const addParentLinkedEntityMessage = await handlers.createAddLinkedEntityMessage({
|
|
1648
|
+
entityDid: parentEntityDid,
|
|
1649
|
+
linkedEntity: parentLinkedEntity
|
|
1650
|
+
});
|
|
1651
|
+
const addParentLinkedEntityResult = await handlers.executeTransaction({
|
|
1652
|
+
messages: [addParentLinkedEntityMessage],
|
|
1653
|
+
memo: ""
|
|
1654
|
+
});
|
|
1655
|
+
parentLinkedEntityTransactionHash = String(addParentLinkedEntityResult?.transactionHash || "");
|
|
1656
|
+
if (!parentLinkedEntityTransactionHash) {
|
|
1657
|
+
throw new Error("Parent linked entity transaction completed but no transaction hash received");
|
|
1658
|
+
}
|
|
1659
|
+
saveCheckpoint({
|
|
1660
|
+
parentEntityDid,
|
|
1661
|
+
parentLinkedEntity,
|
|
1662
|
+
parentLinkedEntityTransactionHash,
|
|
1663
|
+
completedSteps: { addParentLinkedEntity: true }
|
|
1664
|
+
});
|
|
1665
|
+
} else if (!parentEntityDid) {
|
|
1666
|
+
saveCheckpoint({ completedSteps: { addParentLinkedEntity: true } });
|
|
1667
|
+
}
|
|
1668
|
+
let domainSpaces = checkpoint.domainSpaces;
|
|
1669
|
+
let protocolTemplateImports = checkpoint.protocolTemplateImports || [];
|
|
1670
|
+
if (handlers.sourceDomainSpaces && (!checkpoint.completedSteps?.sourceDomainSpaces || !domainSpaces)) {
|
|
1671
|
+
domainSpaces = await handlers.sourceDomainSpaces({ entityDid: newEntityDid });
|
|
1672
|
+
if (!domainSpaces?.success) {
|
|
1673
|
+
throw new Error("Domain spaces could not be sourced for the newly created domain");
|
|
1674
|
+
}
|
|
1675
|
+
saveCheckpoint({
|
|
1676
|
+
domainSpaces,
|
|
1677
|
+
completedSteps: { sourceDomainSpaces: true }
|
|
1678
|
+
});
|
|
1679
|
+
} else if (!handlers.sourceDomainSpaces) {
|
|
1680
|
+
saveCheckpoint({ completedSteps: { sourceDomainSpaces: true } });
|
|
1681
|
+
}
|
|
1682
|
+
if (selectedProtocolTemplates.length > 0 && !checkpoint.completedSteps?.importTemplates) {
|
|
1683
|
+
if (!handlers.sourceDomainSpaces) {
|
|
1684
|
+
throw new Error("sourceDomainSpaces handler is required to import selected protocol templates");
|
|
1685
|
+
}
|
|
1686
|
+
if (!handlers.importProtocolTemplatesToSpace) {
|
|
1687
|
+
throw new Error("importProtocolTemplatesToSpace handler is required to import selected protocol templates");
|
|
1688
|
+
}
|
|
1689
|
+
const targetFlowsSubspaceId = domainSpaces?.subspaces?.["domain flows"]?.space_id;
|
|
1690
|
+
if (!targetFlowsSubspaceId) {
|
|
1691
|
+
throw new Error("Domain flows subspace was not returned by sourceDomainSpaces");
|
|
1692
|
+
}
|
|
1693
|
+
const groupedTemplates = groupTemplatesByProtocol(selectedProtocolTemplates);
|
|
1694
|
+
protocolTemplateImports = await Promise.all(
|
|
1695
|
+
Array.from(groupedTemplates.entries()).map(async ([protocolDid, templates]) => {
|
|
1696
|
+
const result = await handlers.importProtocolTemplatesToSpace({
|
|
1697
|
+
protocolDid,
|
|
1698
|
+
entityDid: newEntityDid,
|
|
1699
|
+
targetFlowsSubspaceId,
|
|
1700
|
+
templates
|
|
1701
|
+
});
|
|
1702
|
+
return { protocolDid, imported: result.imported };
|
|
1703
|
+
})
|
|
1704
|
+
);
|
|
1705
|
+
saveCheckpoint({
|
|
1706
|
+
protocolTemplateImports,
|
|
1707
|
+
completedSteps: { importTemplates: true }
|
|
1708
|
+
});
|
|
1709
|
+
} else if (selectedProtocolTemplates.length === 0) {
|
|
1710
|
+
saveCheckpoint({
|
|
1711
|
+
protocolTemplateImports,
|
|
1712
|
+
completedSteps: { importTemplates: true }
|
|
1713
|
+
});
|
|
1714
|
+
}
|
|
1715
|
+
const output = {
|
|
1716
|
+
entityDid: newEntityDid,
|
|
1717
|
+
governanceGroupCoreAddress,
|
|
1718
|
+
linkedEntities: governanceGroupLinkedEntities,
|
|
1719
|
+
linkedResources: [domainCardLinkedResource],
|
|
1720
|
+
parentEntityDid,
|
|
1721
|
+
parentLinkedEntity,
|
|
1722
|
+
flowTemplateConfig,
|
|
1723
|
+
domainSpaces,
|
|
1724
|
+
protocolTemplateImports,
|
|
1725
|
+
transactionHash,
|
|
1726
|
+
linkedResourceTransactionHash,
|
|
1727
|
+
parentLinkedEntityTransactionHash
|
|
1728
|
+
};
|
|
1729
|
+
saveCheckpoint({
|
|
1730
|
+
status: "completed",
|
|
1731
|
+
output
|
|
1732
|
+
});
|
|
1733
|
+
return buildCompletedDomainSignResult(output);
|
|
1734
|
+
} catch (error) {
|
|
1735
|
+
const message = error instanceof Error ? error.message : "Domain sign failed";
|
|
1736
|
+
saveCheckpoint({
|
|
1737
|
+
status: "failed",
|
|
1738
|
+
error: message
|
|
1739
|
+
});
|
|
1740
|
+
throw error;
|
|
1741
|
+
}
|
|
1742
|
+
}
|
|
1743
|
+
});
|
|
1744
|
+
|
|
1745
|
+
export {
|
|
1746
|
+
isBlankInputValue,
|
|
1747
|
+
parseMaybeJsonObject,
|
|
1748
|
+
getMissingActionInputs,
|
|
1749
|
+
transformSurveyToCredentialSubject,
|
|
1750
|
+
buildVerifiableCredential,
|
|
1751
|
+
buildDomainCardLinkedResource,
|
|
1752
|
+
extractSurveyAnswersTemplate,
|
|
1753
|
+
parseLinkedEntities,
|
|
1754
|
+
buildGovernanceGroupLinkedEntities,
|
|
1755
|
+
tempDomainCreatorSurvey,
|
|
1756
|
+
resolveEntityTypeFromSchema
|
|
1757
|
+
};
|
|
1758
|
+
//# sourceMappingURL=chunk-PYNDJDWZ.js.map
|