@hashgraphonline/standards-sdk 0.1.143 → 0.1.144-feat-solana-register.canary.5001619.81
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/cjs/hcs-10/base-client.d.ts.map +1 -1
- package/dist/cjs/hcs-10/sdk.d.ts +8 -0
- package/dist/cjs/hcs-10/sdk.d.ts.map +1 -1
- package/dist/cjs/hcs-11/client.d.ts +2 -2
- package/dist/cjs/hcs-11/client.d.ts.map +1 -1
- package/dist/cjs/hcs-11/person-builder.d.ts +1 -0
- package/dist/cjs/hcs-11/person-builder.d.ts.map +1 -1
- package/dist/cjs/hcs-11/types.d.ts +1 -0
- package/dist/cjs/hcs-11/types.d.ts.map +1 -1
- package/dist/cjs/hcs-12/rendering/resource-manager.d.ts.map +1 -1
- package/dist/cjs/hcs-12/validation/schemas.d.ts +8 -8
- package/dist/cjs/hcs-14/issuers/hiero.d.ts.map +1 -1
- package/dist/cjs/hcs-15/browser.d.ts +2 -0
- package/dist/cjs/hcs-15/browser.d.ts.map +1 -1
- package/dist/cjs/hcs-15/sdk.d.ts +7 -1
- package/dist/cjs/hcs-15/sdk.d.ts.map +1 -1
- package/dist/cjs/hcs-15/tx.d.ts +4 -0
- package/dist/cjs/hcs-15/tx.d.ts.map +1 -1
- package/dist/cjs/hcs-15/types.d.ts +16 -1
- package/dist/cjs/hcs-15/types.d.ts.map +1 -1
- package/dist/cjs/hcs-16/browser.d.ts +11 -2
- package/dist/cjs/hcs-16/browser.d.ts.map +1 -1
- package/dist/cjs/hcs-16/sdk.d.ts +62 -1
- package/dist/cjs/hcs-16/sdk.d.ts.map +1 -1
- package/dist/cjs/hcs-16/tx.d.ts +21 -3
- package/dist/cjs/hcs-16/tx.d.ts.map +1 -1
- package/dist/cjs/hcs-17/base-client.d.ts +1 -0
- package/dist/cjs/hcs-17/base-client.d.ts.map +1 -1
- package/dist/cjs/hcs-17/sdk.d.ts.map +1 -1
- package/dist/cjs/hcs-17/tx.d.ts +2 -0
- package/dist/cjs/hcs-17/tx.d.ts.map +1 -1
- package/dist/cjs/hcs-17/types.d.ts +4 -0
- package/dist/cjs/hcs-17/types.d.ts.map +1 -1
- package/dist/cjs/hcs-21/types.d.ts +75 -75
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/client/adapters.d.ts +20 -0
- package/dist/cjs/services/registry-broker/client/adapters.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/agents.d.ts +16 -0
- package/dist/cjs/services/registry-broker/client/agents.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/base-client.d.ts +70 -0
- package/dist/cjs/services/registry-broker/client/base-client.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/chat-history.d.ts +23 -0
- package/dist/cjs/services/registry-broker/client/chat-history.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/chat.d.ts +33 -0
- package/dist/cjs/services/registry-broker/client/chat.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/credits.d.ts +40 -0
- package/dist/cjs/services/registry-broker/client/credits.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/encrypted-chat-manager.d.ts +35 -0
- package/dist/cjs/services/registry-broker/client/encrypted-chat-manager.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/encryption.d.ts +33 -0
- package/dist/cjs/services/registry-broker/client/encryption.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/errors.d.ts +19 -0
- package/dist/cjs/services/registry-broker/client/errors.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/feedback.d.ts +2 -0
- package/dist/cjs/services/registry-broker/client/feedback.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/ledger-auth.d.ts +10 -0
- package/dist/cjs/services/registry-broker/client/ledger-auth.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/search.d.ts +19 -0
- package/dist/cjs/services/registry-broker/client/search.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/utils.d.ts +21 -0
- package/dist/cjs/services/registry-broker/client/utils.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client.d.ts +2 -205
- package/dist/cjs/services/registry-broker/client.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/private-key-signer.d.ts +1 -0
- package/dist/cjs/services/registry-broker/private-key-signer.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/schemas.d.ts +2509 -816
- package/dist/cjs/services/registry-broker/schemas.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/types.d.ts +64 -2
- package/dist/cjs/services/registry-broker/types.d.ts.map +1 -1
- package/dist/cjs/standards-sdk.cjs +3 -3
- package/dist/cjs/standards-sdk.cjs.map +1 -1
- package/dist/cjs/utils/crypto-abstraction.d.ts.map +1 -1
- package/dist/cjs/utils/crypto-env.d.ts.map +1 -1
- package/dist/cjs/utils/dynamic-import.d.ts +5 -1
- package/dist/cjs/utils/dynamic-import.d.ts.map +1 -1
- package/dist/cjs/utils/hash-adapter.d.ts.map +1 -1
- package/dist/es/hcs-10/base-client.d.ts.map +1 -1
- package/dist/es/hcs-10/sdk.d.ts +8 -0
- package/dist/es/hcs-10/sdk.d.ts.map +1 -1
- package/dist/es/hcs-11/client.d.ts +2 -2
- package/dist/es/hcs-11/client.d.ts.map +1 -1
- package/dist/es/hcs-11/person-builder.d.ts +1 -0
- package/dist/es/hcs-11/person-builder.d.ts.map +1 -1
- package/dist/es/hcs-11/types.d.ts +1 -0
- package/dist/es/hcs-11/types.d.ts.map +1 -1
- package/dist/es/hcs-12/rendering/resource-manager.d.ts.map +1 -1
- package/dist/es/hcs-12/validation/schemas.d.ts +8 -8
- package/dist/es/hcs-14/issuers/hiero.d.ts.map +1 -1
- package/dist/es/hcs-15/browser.d.ts +2 -0
- package/dist/es/hcs-15/browser.d.ts.map +1 -1
- package/dist/es/hcs-15/sdk.d.ts +7 -1
- package/dist/es/hcs-15/sdk.d.ts.map +1 -1
- package/dist/es/hcs-15/tx.d.ts +4 -0
- package/dist/es/hcs-15/tx.d.ts.map +1 -1
- package/dist/es/hcs-15/types.d.ts +16 -1
- package/dist/es/hcs-15/types.d.ts.map +1 -1
- package/dist/es/hcs-16/browser.d.ts +11 -2
- package/dist/es/hcs-16/browser.d.ts.map +1 -1
- package/dist/es/hcs-16/sdk.d.ts +62 -1
- package/dist/es/hcs-16/sdk.d.ts.map +1 -1
- package/dist/es/hcs-16/tx.d.ts +21 -3
- package/dist/es/hcs-16/tx.d.ts.map +1 -1
- package/dist/es/hcs-17/base-client.d.ts +1 -0
- package/dist/es/hcs-17/base-client.d.ts.map +1 -1
- package/dist/es/hcs-17/sdk.d.ts.map +1 -1
- package/dist/es/hcs-17/tx.d.ts +2 -0
- package/dist/es/hcs-17/tx.d.ts.map +1 -1
- package/dist/es/hcs-17/types.d.ts +4 -0
- package/dist/es/hcs-17/types.d.ts.map +1 -1
- package/dist/es/hcs-21/types.d.ts +75 -75
- package/dist/es/index.d.ts.map +1 -1
- package/dist/es/services/registry-broker/client/adapters.d.ts +20 -0
- package/dist/es/services/registry-broker/client/adapters.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/agents.d.ts +16 -0
- package/dist/es/services/registry-broker/client/agents.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/base-client.d.ts +70 -0
- package/dist/es/services/registry-broker/client/base-client.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/chat-history.d.ts +23 -0
- package/dist/es/services/registry-broker/client/chat-history.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/chat.d.ts +33 -0
- package/dist/es/services/registry-broker/client/chat.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/credits.d.ts +40 -0
- package/dist/es/services/registry-broker/client/credits.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/encrypted-chat-manager.d.ts +35 -0
- package/dist/es/services/registry-broker/client/encrypted-chat-manager.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/encryption.d.ts +33 -0
- package/dist/es/services/registry-broker/client/encryption.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/errors.d.ts +19 -0
- package/dist/es/services/registry-broker/client/errors.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/feedback.d.ts +2 -0
- package/dist/es/services/registry-broker/client/feedback.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/ledger-auth.d.ts +10 -0
- package/dist/es/services/registry-broker/client/ledger-auth.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/search.d.ts +19 -0
- package/dist/es/services/registry-broker/client/search.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/utils.d.ts +21 -0
- package/dist/es/services/registry-broker/client/utils.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client.d.ts +2 -205
- package/dist/es/services/registry-broker/client.d.ts.map +1 -1
- package/dist/es/services/registry-broker/private-key-signer.d.ts +1 -0
- package/dist/es/services/registry-broker/private-key-signer.d.ts.map +1 -1
- package/dist/es/services/registry-broker/schemas.d.ts +2509 -816
- package/dist/es/services/registry-broker/schemas.d.ts.map +1 -1
- package/dist/es/services/registry-broker/types.d.ts +64 -2
- package/dist/es/services/registry-broker/types.d.ts.map +1 -1
- package/dist/es/standards-sdk.es.js +148 -133
- package/dist/es/standards-sdk.es.js.map +1 -1
- package/dist/es/standards-sdk.es10.js +70 -90
- package/dist/es/standards-sdk.es10.js.map +1 -1
- package/dist/es/standards-sdk.es100.js +229 -26
- package/dist/es/standards-sdk.es100.js.map +1 -1
- package/dist/es/standards-sdk.es101.js +109 -228
- package/dist/es/standards-sdk.es101.js.map +1 -1
- package/dist/es/standards-sdk.es102.js +15 -94
- package/dist/es/standards-sdk.es102.js.map +1 -1
- package/dist/es/standards-sdk.es103.js +80 -30
- package/dist/es/standards-sdk.es103.js.map +1 -1
- package/dist/es/standards-sdk.es104.js +27 -80
- package/dist/es/standards-sdk.es104.js.map +1 -1
- package/dist/es/standards-sdk.es105.js +136 -25
- package/dist/es/standards-sdk.es105.js.map +1 -1
- package/dist/es/standards-sdk.es106.js +27 -140
- package/dist/es/standards-sdk.es106.js.map +1 -1
- package/dist/es/standards-sdk.es107.js +20 -27
- package/dist/es/standards-sdk.es107.js.map +1 -1
- package/dist/es/standards-sdk.es108.js +156 -18
- package/dist/es/standards-sdk.es108.js.map +1 -1
- package/dist/es/standards-sdk.es109.js +198 -148
- package/dist/es/standards-sdk.es109.js.map +1 -1
- package/dist/es/standards-sdk.es11.js +121 -45
- package/dist/es/standards-sdk.es11.js.map +1 -1
- package/dist/es/standards-sdk.es110.js +747 -160
- package/dist/es/standards-sdk.es110.js.map +1 -1
- package/dist/es/standards-sdk.es111.js +9 -786
- package/dist/es/standards-sdk.es111.js.map +1 -1
- package/dist/es/standards-sdk.es112.js +567 -13
- package/dist/es/standards-sdk.es112.js.map +1 -1
- package/dist/es/standards-sdk.es113.js +576 -541
- package/dist/es/standards-sdk.es113.js.map +1 -1
- package/dist/es/standards-sdk.es114.js +12 -601
- package/dist/es/standards-sdk.es114.js.map +1 -1
- package/dist/es/standards-sdk.es115.js +2 -13
- package/dist/es/standards-sdk.es115.js.map +1 -1
- package/dist/es/standards-sdk.es116.js +87 -2
- package/dist/es/standards-sdk.es116.js.map +1 -1
- package/dist/es/standards-sdk.es117.js +37 -80
- package/dist/es/standards-sdk.es117.js.map +1 -1
- package/dist/es/standards-sdk.es118.js +2 -39
- package/dist/es/standards-sdk.es118.js.map +1 -1
- package/dist/es/standards-sdk.es119.js +231 -2
- package/dist/es/standards-sdk.es119.js.map +1 -1
- package/dist/es/standards-sdk.es12.js +60 -159
- package/dist/es/standards-sdk.es12.js.map +1 -1
- package/dist/es/standards-sdk.es120.js +1110 -193
- package/dist/es/standards-sdk.es120.js.map +1 -1
- package/dist/es/standards-sdk.es121.js +225 -1059
- package/dist/es/standards-sdk.es121.js.map +1 -1
- package/dist/es/standards-sdk.es122.js +419 -303
- package/dist/es/standards-sdk.es122.js.map +1 -1
- package/dist/es/standards-sdk.es123.js +351 -418
- package/dist/es/standards-sdk.es123.js.map +1 -1
- package/dist/es/standards-sdk.es124.js +872 -347
- package/dist/es/standards-sdk.es124.js.map +1 -1
- package/dist/es/standards-sdk.es125.js +182 -854
- package/dist/es/standards-sdk.es125.js.map +1 -1
- package/dist/es/standards-sdk.es126.js +1512 -153
- package/dist/es/standards-sdk.es126.js.map +1 -1
- package/dist/es/standards-sdk.es127.js +157 -1547
- package/dist/es/standards-sdk.es127.js.map +1 -1
- package/dist/es/standards-sdk.es128.js +184 -2190
- package/dist/es/standards-sdk.es128.js.map +1 -1
- package/dist/es/standards-sdk.es129.js +100 -63
- package/dist/es/standards-sdk.es129.js.map +1 -1
- package/dist/es/standards-sdk.es13.js +200 -60
- package/dist/es/standards-sdk.es13.js.map +1 -1
- package/dist/es/standards-sdk.es130.js +112 -78
- package/dist/es/standards-sdk.es130.js.map +1 -1
- package/dist/es/standards-sdk.es131.js +232 -144
- package/dist/es/standards-sdk.es131.js.map +1 -1
- package/dist/es/standards-sdk.es132.js +181 -8
- package/dist/es/standards-sdk.es132.js.map +1 -1
- package/dist/es/standards-sdk.es133.js +118 -82
- package/dist/es/standards-sdk.es133.js.map +1 -1
- package/dist/es/standards-sdk.es134.js +322 -61
- package/dist/es/standards-sdk.es134.js.map +1 -1
- package/dist/es/standards-sdk.es135.js +464 -28
- package/dist/es/standards-sdk.es135.js.map +1 -1
- package/dist/es/standards-sdk.es136.js +14 -135
- package/dist/es/standards-sdk.es136.js.map +1 -1
- package/dist/es/standards-sdk.es137.js +78 -39
- package/dist/es/standards-sdk.es137.js.map +1 -1
- package/dist/es/standards-sdk.es138.js +85 -764
- package/dist/es/standards-sdk.es138.js.map +1 -1
- package/dist/es/standards-sdk.es139.js +135 -12250
- package/dist/es/standards-sdk.es139.js.map +1 -1
- package/dist/es/standards-sdk.es14.js +149 -178
- package/dist/es/standards-sdk.es14.js.map +1 -1
- package/dist/es/standards-sdk.es140.js +7 -56
- package/dist/es/standards-sdk.es140.js.map +1 -1
- package/dist/es/standards-sdk.es141.js +72 -68
- package/dist/es/standards-sdk.es141.js.map +1 -1
- package/dist/es/standards-sdk.es142.js +61 -13
- package/dist/es/standards-sdk.es142.js.map +1 -1
- package/dist/es/standards-sdk.es143.js +30 -172
- package/dist/es/standards-sdk.es143.js.map +1 -1
- package/dist/es/standards-sdk.es144.js +34 -322
- package/dist/es/standards-sdk.es144.js.map +1 -1
- package/dist/es/standards-sdk.es145.js +28 -346
- package/dist/es/standards-sdk.es145.js.map +1 -1
- package/dist/es/standards-sdk.es146.js +112 -427
- package/dist/es/standards-sdk.es146.js.map +1 -1
- package/dist/es/standards-sdk.es147.js +40 -329
- package/dist/es/standards-sdk.es147.js.map +1 -1
- package/dist/es/standards-sdk.es148.js +958 -76
- package/dist/es/standards-sdk.es148.js.map +1 -1
- package/dist/es/standards-sdk.es149.js +12292 -0
- package/dist/es/standards-sdk.es149.js.map +1 -0
- package/dist/es/standards-sdk.es15.js +152 -151
- package/dist/es/standards-sdk.es15.js.map +1 -1
- package/dist/es/standards-sdk.es150.js +59 -0
- package/dist/es/standards-sdk.es150.js.map +1 -0
- package/dist/es/standards-sdk.es151.js +87 -0
- package/dist/es/standards-sdk.es151.js.map +1 -0
- package/dist/es/standards-sdk.es152.js +20 -0
- package/dist/es/standards-sdk.es152.js.map +1 -0
- package/dist/es/standards-sdk.es153.js +175 -0
- package/dist/es/standards-sdk.es153.js.map +1 -0
- package/dist/es/standards-sdk.es154.js +325 -0
- package/dist/es/standards-sdk.es154.js.map +1 -0
- package/dist/es/standards-sdk.es155.js +349 -0
- package/dist/es/standards-sdk.es155.js.map +1 -0
- package/dist/es/standards-sdk.es156.js +456 -0
- package/dist/es/standards-sdk.es156.js.map +1 -0
- package/dist/es/standards-sdk.es157.js +334 -0
- package/dist/es/standards-sdk.es157.js.map +1 -0
- package/dist/es/standards-sdk.es158.js +79 -0
- package/dist/es/standards-sdk.es158.js.map +1 -0
- package/dist/es/standards-sdk.es159.js +242 -0
- package/dist/es/standards-sdk.es159.js.map +1 -0
- package/dist/es/standards-sdk.es16.js +917 -136
- package/dist/es/standards-sdk.es16.js.map +1 -1
- package/dist/es/standards-sdk.es160.js +247 -0
- package/dist/es/standards-sdk.es160.js.map +1 -0
- package/dist/es/standards-sdk.es17.js +23 -938
- package/dist/es/standards-sdk.es17.js.map +1 -1
- package/dist/es/standards-sdk.es18.js +2422 -24
- package/dist/es/standards-sdk.es18.js.map +1 -1
- package/dist/es/standards-sdk.es19.js +826 -2075
- package/dist/es/standards-sdk.es19.js.map +1 -1
- package/dist/es/standards-sdk.es2.js +654 -189
- package/dist/es/standards-sdk.es2.js.map +1 -1
- package/dist/es/standards-sdk.es20.js +205 -1086
- package/dist/es/standards-sdk.es20.js.map +1 -1
- package/dist/es/standards-sdk.es21.js +858 -221
- package/dist/es/standards-sdk.es21.js.map +1 -1
- package/dist/es/standards-sdk.es22.js +179 -903
- package/dist/es/standards-sdk.es22.js.map +1 -1
- package/dist/es/standards-sdk.es23.js +164 -179
- package/dist/es/standards-sdk.es23.js.map +1 -1
- package/dist/es/standards-sdk.es24.js +62 -118
- package/dist/es/standards-sdk.es24.js.map +1 -1
- package/dist/es/standards-sdk.es25.js +377 -52
- package/dist/es/standards-sdk.es25.js.map +1 -1
- package/dist/es/standards-sdk.es26.js +36 -394
- package/dist/es/standards-sdk.es26.js.map +1 -1
- package/dist/es/standards-sdk.es27.js +901 -50
- package/dist/es/standards-sdk.es27.js.map +1 -1
- package/dist/es/standards-sdk.es28.js +134 -897
- package/dist/es/standards-sdk.es28.js.map +1 -1
- package/dist/es/standards-sdk.es29.js +7 -134
- package/dist/es/standards-sdk.es29.js.map +1 -1
- package/dist/es/standards-sdk.es3.js +63 -680
- package/dist/es/standards-sdk.es3.js.map +1 -1
- package/dist/es/standards-sdk.es30.js +344 -7
- package/dist/es/standards-sdk.es30.js.map +1 -1
- package/dist/es/standards-sdk.es31.js +302 -287
- package/dist/es/standards-sdk.es31.js.map +1 -1
- package/dist/es/standards-sdk.es32.js +94 -322
- package/dist/es/standards-sdk.es32.js.map +1 -1
- package/dist/es/standards-sdk.es33.js +458 -101
- package/dist/es/standards-sdk.es33.js.map +1 -1
- package/dist/es/standards-sdk.es34.js +132 -451
- package/dist/es/standards-sdk.es34.js.map +1 -1
- package/dist/es/standards-sdk.es35.js +216 -130
- package/dist/es/standards-sdk.es35.js.map +1 -1
- package/dist/es/standards-sdk.es36.js +274 -191
- package/dist/es/standards-sdk.es36.js.map +1 -1
- package/dist/es/standards-sdk.es37.js +148 -87
- package/dist/es/standards-sdk.es37.js.map +1 -1
- package/dist/es/standards-sdk.es38.js +183 -320
- package/dist/es/standards-sdk.es38.js.map +1 -1
- package/dist/es/standards-sdk.es39.js +238 -161
- package/dist/es/standards-sdk.es39.js.map +1 -1
- package/dist/es/standards-sdk.es4.js +425 -63
- package/dist/es/standards-sdk.es4.js.map +1 -1
- package/dist/es/standards-sdk.es40.js +136 -254
- package/dist/es/standards-sdk.es40.js.map +1 -1
- package/dist/es/standards-sdk.es41.js +225 -176
- package/dist/es/standards-sdk.es41.js.map +1 -1
- package/dist/es/standards-sdk.es42.js +199 -261
- package/dist/es/standards-sdk.es42.js.map +1 -1
- package/dist/es/standards-sdk.es43.js +237 -199
- package/dist/es/standards-sdk.es43.js.map +1 -1
- package/dist/es/standards-sdk.es44.js +209 -201
- package/dist/es/standards-sdk.es44.js.map +1 -1
- package/dist/es/standards-sdk.es45.js +305 -201
- package/dist/es/standards-sdk.es45.js.map +1 -1
- package/dist/es/standards-sdk.es46.js +371 -261
- package/dist/es/standards-sdk.es46.js.map +1 -1
- package/dist/es/standards-sdk.es47.js +316 -371
- package/dist/es/standards-sdk.es47.js.map +1 -1
- package/dist/es/standards-sdk.es48.js +404 -336
- package/dist/es/standards-sdk.es48.js.map +1 -1
- package/dist/es/standards-sdk.es49.js +83 -449
- package/dist/es/standards-sdk.es49.js.map +1 -1
- package/dist/es/standards-sdk.es5.js +232 -354
- package/dist/es/standards-sdk.es5.js.map +1 -1
- package/dist/es/standards-sdk.es50.js +179 -89
- package/dist/es/standards-sdk.es50.js.map +1 -1
- package/dist/es/standards-sdk.es51.js +231 -165
- package/dist/es/standards-sdk.es51.js.map +1 -1
- package/dist/es/standards-sdk.es52.js +25 -262
- package/dist/es/standards-sdk.es52.js.map +1 -1
- package/dist/es/standards-sdk.es53.js +56 -26
- package/dist/es/standards-sdk.es53.js.map +1 -1
- package/dist/es/standards-sdk.es54.js +12 -57
- package/dist/es/standards-sdk.es54.js.map +1 -1
- package/dist/es/standards-sdk.es55.js +49 -12
- package/dist/es/standards-sdk.es55.js.map +1 -1
- package/dist/es/standards-sdk.es56.js +115 -43
- package/dist/es/standards-sdk.es56.js.map +1 -1
- package/dist/es/standards-sdk.es57.js +42 -115
- package/dist/es/standards-sdk.es57.js.map +1 -1
- package/dist/es/standards-sdk.es58.js +52 -43
- package/dist/es/standards-sdk.es58.js.map +1 -1
- package/dist/es/standards-sdk.es59.js +36 -50
- package/dist/es/standards-sdk.es59.js.map +1 -1
- package/dist/es/standards-sdk.es6.js +125 -246
- package/dist/es/standards-sdk.es6.js.map +1 -1
- package/dist/es/standards-sdk.es60.js +207 -39
- package/dist/es/standards-sdk.es60.js.map +1 -1
- package/dist/es/standards-sdk.es61.js +24 -195
- package/dist/es/standards-sdk.es61.js.map +1 -1
- package/dist/es/standards-sdk.es62.js +87 -25
- package/dist/es/standards-sdk.es62.js.map +1 -1
- package/dist/es/standards-sdk.es63.js +3 -51
- package/dist/es/standards-sdk.es63.js.map +1 -1
- package/dist/es/standards-sdk.es64.js +100 -3
- package/dist/es/standards-sdk.es64.js.map +1 -1
- package/dist/es/standards-sdk.es65.js +61 -62
- package/dist/es/standards-sdk.es65.js.map +1 -1
- package/dist/es/standards-sdk.es66.js +17 -98
- package/dist/es/standards-sdk.es66.js.map +1 -1
- package/dist/es/standards-sdk.es67.js +77 -19
- package/dist/es/standards-sdk.es67.js.map +1 -1
- package/dist/es/standards-sdk.es68.js +458 -77
- package/dist/es/standards-sdk.es68.js.map +1 -1
- package/dist/es/standards-sdk.es69.js +106 -240
- package/dist/es/standards-sdk.es69.js.map +1 -1
- package/dist/es/standards-sdk.es7.js +28 -183
- package/dist/es/standards-sdk.es7.js.map +1 -1
- package/dist/es/standards-sdk.es70.js +170 -286
- package/dist/es/standards-sdk.es70.js.map +1 -1
- package/dist/es/standards-sdk.es71.js +71 -207
- package/dist/es/standards-sdk.es71.js.map +1 -1
- package/dist/es/standards-sdk.es72.js +71 -72
- package/dist/es/standards-sdk.es72.js.map +1 -1
- package/dist/es/standards-sdk.es73.js +143 -71
- package/dist/es/standards-sdk.es73.js.map +1 -1
- package/dist/es/standards-sdk.es74.js +62 -136
- package/dist/es/standards-sdk.es74.js.map +1 -1
- package/dist/es/standards-sdk.es75.js +380 -45
- package/dist/es/standards-sdk.es75.js.map +1 -1
- package/dist/es/standards-sdk.es76.js +222 -130
- package/dist/es/standards-sdk.es76.js.map +1 -1
- package/dist/es/standards-sdk.es77.js +320 -444
- package/dist/es/standards-sdk.es77.js.map +1 -1
- package/dist/es/standards-sdk.es78.js +88 -364
- package/dist/es/standards-sdk.es78.js.map +1 -1
- package/dist/es/standards-sdk.es79.js +125 -89
- package/dist/es/standards-sdk.es79.js.map +1 -1
- package/dist/es/standards-sdk.es8.js +80 -29
- package/dist/es/standards-sdk.es8.js.map +1 -1
- package/dist/es/standards-sdk.es80.js +8 -125
- package/dist/es/standards-sdk.es80.js.map +1 -1
- package/dist/es/standards-sdk.es81.js +45 -6
- package/dist/es/standards-sdk.es81.js.map +1 -1
- package/dist/es/standards-sdk.es82.js +98 -44
- package/dist/es/standards-sdk.es82.js.map +1 -1
- package/dist/es/standards-sdk.es83.js +331 -84
- package/dist/es/standards-sdk.es83.js.map +1 -1
- package/dist/es/standards-sdk.es84.js +93 -160
- package/dist/es/standards-sdk.es84.js.map +1 -1
- package/dist/es/standards-sdk.es85.js +55 -275
- package/dist/es/standards-sdk.es85.js.map +1 -1
- package/dist/es/standards-sdk.es86.js +43 -55
- package/dist/es/standards-sdk.es86.js.map +1 -1
- package/dist/es/standards-sdk.es87.js +145 -22
- package/dist/es/standards-sdk.es87.js.map +1 -1
- package/dist/es/standards-sdk.es88.js +34 -47
- package/dist/es/standards-sdk.es88.js.map +1 -1
- package/dist/es/standards-sdk.es89.js +22 -57
- package/dist/es/standards-sdk.es89.js.map +1 -1
- package/dist/es/standards-sdk.es9.js +104 -80
- package/dist/es/standards-sdk.es9.js.map +1 -1
- package/dist/es/standards-sdk.es90.js +23 -28
- package/dist/es/standards-sdk.es90.js.map +1 -1
- package/dist/es/standards-sdk.es91.js +238 -23
- package/dist/es/standards-sdk.es91.js.map +1 -1
- package/dist/es/standards-sdk.es92.js +265 -152
- package/dist/es/standards-sdk.es92.js.map +1 -1
- package/dist/es/standards-sdk.es93.js +95 -68
- package/dist/es/standards-sdk.es93.js.map +1 -1
- package/dist/es/standards-sdk.es94.js +124 -136
- package/dist/es/standards-sdk.es94.js.map +1 -1
- package/dist/es/standards-sdk.es95.js +42 -138
- package/dist/es/standards-sdk.es95.js.map +1 -1
- package/dist/es/standards-sdk.es96.js +259 -42
- package/dist/es/standards-sdk.es96.js.map +1 -1
- package/dist/es/standards-sdk.es97.js +82 -243
- package/dist/es/standards-sdk.es97.js.map +1 -1
- package/dist/es/standards-sdk.es98.js +48 -47
- package/dist/es/standards-sdk.es98.js.map +1 -1
- package/dist/es/standards-sdk.es99.js +29 -100
- package/dist/es/standards-sdk.es99.js.map +1 -1
- package/dist/es/utils/crypto-abstraction.d.ts.map +1 -1
- package/dist/es/utils/crypto-env.d.ts.map +1 -1
- package/dist/es/utils/dynamic-import.d.ts +5 -1
- package/dist/es/utils/dynamic-import.d.ts.map +1 -1
- package/dist/es/utils/hash-adapter.d.ts.map +1 -1
- package/package.json +16 -16
- package/dist/cjs/patches/topic-autorenew-patch.d.ts +0 -2
- package/dist/cjs/patches/topic-autorenew-patch.d.ts.map +0 -1
- package/dist/es/patches/topic-autorenew-patch.d.ts +0 -2
- package/dist/es/patches/topic-autorenew-patch.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es38.js","sources":["../../src/hcs-12/browser.ts"],"sourcesContent":["import {\n TopicCreateTransaction,\n TopicMessageSubmitTransaction,\n TopicId,\n TransactionId,\n PrivateKey,\n PublicKey,\n KeyList,\n AccountId,\n} from '@hashgraph/sdk';\nimport type { DAppSigner } from '@hashgraph/hedera-wallet-connect';\nimport { HashinalsWalletConnectSDK } from '@hashgraphonline/hashinal-wc';\nimport { HCS12BaseClient, HCS12Config } from './base-client';\nimport {\n ActionRegistry,\n BlockLoader,\n AssemblyRegistry,\n HashLinksRegistry,\n} from './registries';\nimport {\n RegistryType,\n ActionRegistration,\n AssemblyRegistration,\n AssemblyAddBlock,\n AssemblyAddAction,\n AssemblyUpdate,\n BlockDefinition,\n} from './types';\nimport { ActionBuilder, AssemblyBuilder, BlockBuilder } from './builders';\nimport { InscriptionSDK } from '@kiloscribe/inscription-sdk';\nimport type { RetrievedInscriptionResult } from '../inscribe/types';\nimport * as mime from 'mime-types';\nimport { inscribeWithSigner } from '../inscribe/inscriber';\n\n/**\n * Configuration for HCS-12 browser client\n */\nexport interface HCS12BrowserClientConfig extends HCS12Config {\n /** HashConnect Wallet Connect SDK instance */\n hwc: HashinalsWalletConnectSDK;\n}\n\n/**\n * HCS-12 browser client for client-side HashLinks operations\n */\nexport class HCS12BrowserClient extends HCS12BaseClient {\n private hwc: HashinalsWalletConnectSDK;\n private accountId?: string;\n\n constructor(config: HCS12BrowserClientConfig) {\n super(config);\n\n this.hwc = config.hwc;\n\n this.updateAccountFromWallet();\n\n this.logger.info('HCS-12 Browser Client initialized', {\n network: config.network,\n accountId: this.accountId,\n });\n }\n\n /**\n * Update account ID from wallet connect session\n */\n private async updateAccountFromWallet(): Promise<void> {\n try {\n const { accountId } = await this.getAccountAndSigner();\n this.accountId = accountId;\n } catch (error) {\n this.logger.warn('No active wallet connection');\n }\n }\n\n /**\n * Get account and signer from wallet connect\n */\n async getAccountAndSigner(): Promise<{\n accountId: string;\n signer: DAppSigner;\n }> {\n const accountInfo = this?.hwc?.getAccountInfo();\n const accountId = accountInfo?.accountId?.toString();\n const signer = this?.hwc?.dAppConnector?.signers?.find(s => {\n return s.getAccountId().toString() === accountId;\n });\n\n if (!signer || !accountId) {\n this.logger.error('Failed to find signer', {\n accountId,\n signers: this?.hwc?.dAppConnector?.signers,\n accountInfo,\n });\n throw new Error('Failed to find signer or account');\n }\n\n return { accountId, signer };\n }\n\n /**\n * Get operator account ID (throws in browser)\n */\n getOperatorAccountId(): string {\n throw new Error('Browser client does not have operator account');\n }\n\n /**\n * Get operator private key (throws in browser)\n */\n getOperatorPrivateKey(): string {\n throw new Error('Browser client does not have operator private key');\n }\n\n /**\n * Initialize registries with optional existing topic IDs\n */\n initializeRegistries(topicIds?: {\n action?: string;\n assembly?: string;\n hashlinks?: string;\n }): void {\n super.initializeRegistries(topicIds);\n\n this._actionRegistry = new ActionRegistry(\n this.network,\n this.logger,\n this.actionRegistryTopicId,\n this,\n );\n\n this._blockLoader = new BlockLoader(this.network, this.logger, this);\n\n this._assemblyRegistry = new AssemblyRegistry(\n this.network,\n this.logger,\n this._assemblyRegistryTopicId,\n this,\n );\n\n this._hashLinksRegistry = new HashLinksRegistry(\n this.network,\n this.logger,\n this._hashLinksRegistryTopicId,\n this,\n );\n\n this.logger.info('Registries initialized with signer', {\n actionTopicId: this.actionRegistryTopicId,\n assemblyTopicId: this._assemblyRegistryTopicId,\n hashLinksTopicId: this._hashLinksRegistryTopicId,\n });\n }\n\n /**\n * Create a new HCS topic for a registry\n */\n async createRegistryTopic(\n registryType: RegistryType,\n adminKey?: boolean | PublicKey | KeyList,\n submitKey?: boolean | PublicKey | KeyList,\n ): Promise<string> {\n const { accountId, signer } = await this.getAccountAndSigner();\n\n const memos: Record<RegistryType, string> = {\n [RegistryType.ACTION]: 'hcs-12:1:60:0',\n [RegistryType.ASSEMBLY]: 'hcs-12:1:60:2',\n [RegistryType.HASHLINKS]: 'hcs-12:1:60:3',\n };\n const memo = memos[registryType];\n\n this.logger.info('Creating registry topic via wallet', {\n registryType: RegistryType[registryType],\n memo,\n accountId,\n });\n\n const transaction = new TopicCreateTransaction()\n .setTopicMemo(memo)\n .setTransactionId(TransactionId.generate(accountId));\n\n if (adminKey) {\n if (typeof adminKey === 'boolean' && adminKey) {\n const publicKey = await signer.getAccountKey();\n transaction.setAdminKey(publicKey);\n transaction.setAutoRenewAccountId(AccountId.fromString(accountId));\n } else if (adminKey instanceof PublicKey || adminKey instanceof KeyList) {\n transaction.setAdminKey(adminKey);\n transaction.setAutoRenewAccountId(AccountId.fromString(accountId));\n }\n }\n\n if (submitKey) {\n if (typeof submitKey === 'boolean' && submitKey) {\n const publicKey = await signer.getAccountKey();\n transaction.setSubmitKey(publicKey);\n } else if (\n submitKey instanceof PublicKey ||\n submitKey instanceof KeyList\n ) {\n transaction.setSubmitKey(submitKey);\n }\n }\n\n const signedTx = await transaction.freezeWithSigner(signer);\n const txResponse = await signedTx.executeWithSigner(signer);\n const receipt = await txResponse.getReceiptWithSigner(signer);\n\n if (!receipt.topicId) {\n throw new Error('Failed to create topic: topicId is null');\n }\n\n const topicId = receipt.topicId.toString();\n this.logger.info('Registry topic created via wallet', {\n topicId,\n registryType: RegistryType[registryType],\n });\n\n switch (registryType) {\n case RegistryType.ACTION:\n this.actionRegistryTopicId = topicId;\n break;\n case RegistryType.ASSEMBLY:\n this._assemblyRegistryTopicId = topicId;\n break;\n case RegistryType.HASHLINKS:\n break;\n }\n\n return topicId;\n }\n\n /**\n * Create a new assembly topic\n */\n async createAssemblyTopic(): Promise<string> {\n this.logger.info('Creating new assembly topic');\n const topicId = await this.createRegistryTopic(RegistryType.ASSEMBLY);\n return topicId;\n }\n\n /**\n * Register an assembly on its own topic\n */\n async registerAssemblyDirect(\n assemblyTopicId: string,\n registration: AssemblyRegistration,\n ): Promise<{ transactionId: string; sequenceNumber?: number }> {\n this.logger.info('Registering assembly', {\n topicId: assemblyTopicId,\n name: registration.name,\n version: registration.version,\n });\n\n return this._submitMessage(assemblyTopicId, JSON.stringify(registration));\n }\n\n /**\n * Add a block to an assembly\n */\n async addBlockToAssembly(\n assemblyTopicId: string,\n block: AssemblyAddBlock,\n ): Promise<{ transactionId: string; sequenceNumber?: number }> {\n this.logger.info('Adding block to assembly', {\n assemblyTopicId,\n blockTopicId: block.block_t_id,\n });\n\n return this._submitMessage(assemblyTopicId, JSON.stringify(block));\n }\n\n /**\n * Add an action to an assembly\n */\n async addActionToAssembly(\n assemblyTopicId: string,\n action: AssemblyAddAction,\n ): Promise<{ transactionId: string; sequenceNumber?: number }> {\n this.logger.info('Adding action to assembly', {\n assemblyTopicId,\n actionTopicId: action.t_id,\n alias: action.alias,\n });\n\n return this._submitMessage(assemblyTopicId, JSON.stringify(action));\n }\n\n /**\n * Update assembly metadata\n */\n async updateAssembly(\n assemblyTopicId: string,\n update: AssemblyUpdate,\n ): Promise<{ transactionId: string; sequenceNumber?: number }> {\n this.logger.info('Updating assembly', {\n assemblyTopicId,\n update,\n });\n\n return this._submitMessage(assemblyTopicId, JSON.stringify(update));\n }\n\n /**\n * Store a block (definition and template) via HCS-1\n */\n async storeBlock(\n template: string,\n definition: BlockDefinition,\n ): Promise<{ definitionTopicId: string; templateTopicId: string }> {\n if (!this.blockLoader) {\n throw new Error('Block loader not initialized');\n }\n\n return this.blockLoader.storeBlock(template, definition);\n }\n\n /**\n * Submit a message to an HCS topic\n * @deprecated Use operation-specific methods instead\n */\n async submitMessage(\n topicId: string,\n message: string,\n submitKey?: PrivateKey,\n ): Promise<{ transactionId: string; sequenceNumber?: number }> {\n this.logger.warn(\n 'submitMessage is deprecated. Use operation-specific methods instead.',\n );\n return this._submitMessage(topicId, message, submitKey);\n }\n\n /**\n * Internal method to submit a message to an HCS topic\n */\n private async _submitMessage(\n topicId: string,\n message: string,\n submitKey?: PrivateKey,\n ): Promise<{ transactionId: string; sequenceNumber?: number }> {\n const { accountId, signer } = await this.getAccountAndSigner();\n\n this.logger.debug('Submitting message to topic via wallet', {\n topicId,\n messageLength: message.length,\n accountId,\n });\n\n const transaction = new TopicMessageSubmitTransaction()\n .setTopicId(TopicId.fromString(topicId))\n .setMessage(message)\n .setTransactionId(TransactionId.generate(accountId));\n\n if (submitKey) {\n this.logger.warn(\n 'Submit key parameter ignored in browser client - using wallet signer',\n );\n }\n\n const signedTx = await transaction.freezeWithSigner(signer);\n const txResponse = await signedTx.executeWithSigner(signer);\n const receipt = await txResponse.getReceiptWithSigner(signer);\n\n this.logger.info('Message submitted successfully via wallet', {\n topicId,\n transactionId: txResponse.transactionId.toString(),\n sequenceNumber: receipt.topicSequenceNumber?.toString(),\n });\n\n return {\n transactionId: txResponse.transactionId.toString(),\n sequenceNumber: receipt.topicSequenceNumber\n ? Number(receipt.topicSequenceNumber)\n : undefined,\n };\n }\n\n /**\n * Get the HashConnect instance\n */\n getHashConnect(): HashinalsWalletConnectSDK {\n return this.hwc;\n }\n\n /**\n * Get connected account ID\n */\n getAccountId(): string | undefined {\n return this.accountId;\n }\n\n /**\n * Check if wallet is connected\n */\n async isConnected(): Promise<boolean> {\n try {\n await this.getAccountAndSigner();\n return true;\n } catch {\n return false;\n }\n }\n\n /**\n * Inscribe a file using HCS-1 via wallet signer (browser)\n */\n async inscribeFile(\n buffer: Buffer,\n fileName: string,\n options?: {\n progressCallback?: (progress: unknown) => void;\n waitMaxAttempts?: number;\n waitIntervalMs?: number;\n },\n ): Promise<RetrievedInscriptionResult> {\n const { accountId, signer } = await this.getAccountAndSigner();\n\n this.logger.info('Inscribing file via HCS-1 (browser)', { fileName });\n\n const mimeType = mime.lookup(fileName) || 'application/octet-stream';\n\n const sdk = await InscriptionSDK.createWithAuth({\n type: 'client',\n accountId,\n signer,\n network: this.network as 'testnet' | 'mainnet',\n });\n\n const inscriptionOptions = {\n mode: 'file' as const,\n waitForConfirmation: true,\n waitMaxAttempts: options?.waitMaxAttempts || 30,\n waitIntervalMs: options?.waitIntervalMs || 4000,\n progressCallback: options?.progressCallback,\n logging: {\n level: this.logger.getLevel ? this.logger.getLevel() : 'info',\n },\n network: this.network as 'testnet' | 'mainnet',\n };\n\n const response = await inscribeWithSigner(\n {\n type: 'buffer',\n buffer,\n fileName,\n mimeType,\n },\n signer,\n inscriptionOptions,\n sdk,\n );\n\n if (!response.confirmed || !response.inscription) {\n throw new Error('Inscription failed to confirm');\n }\n\n return response.inscription;\n }\n\n /**\n * Register an action built with ActionBuilder\n */\n async registerAction(builder: ActionBuilder): Promise<ActionBuilder> {\n const registration = builder.build();\n\n if (!this._actionRegistry) {\n throw new Error('Action registry not initialized');\n }\n\n const result = await this._submitMessage(\n this.actionRegistryTopicId,\n JSON.stringify(registration),\n );\n\n this.logger.info('Action registered (browser)', {\n topicId: registration.t_id,\n transactionId: result.transactionId,\n });\n\n return builder;\n }\n\n /**\n * Register a block built with BlockBuilder\n */\n async registerBlock(builder: BlockBuilder): Promise<BlockBuilder> {\n const templateBuffer = builder.getTemplate();\n\n if (templateBuffer) {\n const templateResult = await this.inscribeFile(\n templateBuffer,\n `${builder.getName() || 'block'}-template.html`,\n );\n builder.setTemplateTopicId(templateResult.topic_id);\n }\n\n const definition = builder.build();\n\n if (!definition.template_t_id) {\n throw new Error(\n 'Block must have either a template buffer (via setTemplate) or template_t_id',\n );\n }\n\n const definitionResult = await this.inscribeFile(\n Buffer.from(JSON.stringify(definition, null, 2)),\n `${definition.name}-definition.json`,\n );\n\n this.logger.info('Block registered (browser)', {\n name: definition.name,\n definitionTopicId: definitionResult.topic_id,\n templateTopicId: definition.template_t_id,\n });\n\n builder.setTopicId(definitionResult.topic_id);\n return builder;\n }\n\n async createAssembly(): Promise<string>;\n async createAssembly(builder: AssemblyBuilder): Promise<string>;\n\n /**\n * Create an assembly using AssemblyBuilder and wallet signer\n */\n async createAssembly(builder?: AssemblyBuilder): Promise<string> {\n if (!builder) {\n return this.createAssemblyTopic();\n }\n\n const registration = builder.build();\n\n const assemblyTopicId = await this.createAssemblyTopic();\n\n await this.registerAssemblyDirect(assemblyTopicId, registration);\n\n const operations = builder.getOperations();\n for (const operation of operations) {\n switch (operation.op) {\n case 'add-block':\n await this.addBlockToAssembly(assemblyTopicId, operation);\n break;\n case 'add-action':\n await this.addActionToAssembly(assemblyTopicId, operation);\n break;\n case 'update':\n await this.updateAssembly(assemblyTopicId, operation);\n break;\n }\n }\n\n this.logger.info('Assembly created (browser)', {\n topicId: assemblyTopicId,\n name: registration.name,\n version: registration.version,\n operations: operations.length,\n });\n\n return assemblyTopicId;\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"standards-sdk.es38.js","sources":["../../src/hcs-12/builders/action-builder.ts"],"sourcesContent":["/**\n * ActionBuilder utility for creating HCS-12 action registrations\n */\n\nimport { Logger } from '../../utils/logger';\nimport { getCryptoAdapter } from '../../utils/crypto-abstraction';\nimport { isSSREnvironment } from '../../utils/crypto-env';\nimport {\n ActionRegistration,\n SourceVerification,\n ValidationRule,\n ModuleInfo,\n} from '../types';\n\nexport interface BuildOptions {\n validate?: boolean;\n}\n\n/**\n * Builder for creating action registrations with validation\n */\nexport class ActionBuilder {\n private logger: Logger;\n private registration: Partial<ActionRegistration>;\n private alias?: string;\n private cryptoAdapter = getCryptoAdapter();\n\n constructor(logger: Logger) {\n this.logger = logger;\n this.registration = {\n p: 'hcs-12',\n op: 'register',\n };\n }\n\n /**\n * Set HCS-1 topic ID for WASM storage\n */\n setTopicId(topicId: string): ActionBuilder {\n if (!this.isValidTopicId(topicId)) {\n throw new Error('Invalid topic ID format');\n }\n this.registration.t_id = topicId;\n return this;\n }\n\n /**\n * Set alias for this action in the assembly\n */\n setAlias(alias: string): ActionBuilder {\n this.alias = alias;\n return this;\n }\n\n /**\n * Set INFO hash\n */\n setHash(hash: string): ActionBuilder {\n if (!this.isValidHash(hash)) {\n throw new Error('Invalid hash format');\n }\n this.registration.hash = hash;\n return this;\n }\n\n /**\n * Set WASM hash\n */\n setWasmHash(hash: string): ActionBuilder {\n if (!this.isValidHash(hash)) {\n throw new Error('Invalid hash format');\n }\n this.registration.wasm_hash = hash;\n return this;\n }\n\n /**\n * Set optional INFO topic ID\n */\n setInfoTopicId(topicId: string): ActionBuilder {\n if (!this.isValidTopicId(topicId)) {\n throw new Error('Invalid topic ID format');\n }\n this.registration.info_t_id = topicId;\n return this;\n }\n\n /**\n * Set JavaScript wrapper topic ID\n */\n setJsTopicId(topicId: string): ActionBuilder {\n if (!this.isValidTopicId(topicId)) {\n throw new Error('Invalid topic ID format');\n }\n this.registration.js_t_id = topicId;\n return this;\n }\n\n /**\n * Set JavaScript wrapper hash\n */\n setJsHash(hash: string): ActionBuilder {\n if (!this.isValidHash(hash)) {\n throw new Error('Invalid hash format');\n }\n this.registration.js_hash = hash;\n return this;\n }\n\n /**\n * Set interface version (wasm-bindgen version)\n */\n setInterfaceVersion(version: string): ActionBuilder {\n if (!this.isValidVersion(version)) {\n throw new Error('Invalid version format');\n }\n this.registration.interface_version = version;\n return this;\n }\n\n /**\n * Add validation rule for an action\n */\n addValidationRule(action: string, rule: ValidationRule): ActionBuilder {\n if (!this.registration.validation_rules) {\n this.registration.validation_rules = {};\n }\n this.registration.validation_rules[action] = rule;\n return this;\n }\n\n /**\n * Set source verification data\n */\n setSourceVerification(verification: SourceVerification): ActionBuilder {\n if (!this.isValidTopicId(verification.source_t_id)) {\n throw new Error('Invalid source topic ID');\n }\n if (!this.isValidHash(verification.source_hash)) {\n throw new Error('Invalid source hash');\n }\n if (verification.target !== 'wasm32-unknown-unknown') {\n throw new Error('Invalid compilation target');\n }\n this.registration.source_verification = verification;\n return this;\n }\n\n /**\n * Build the action registration\n */\n build(options: BuildOptions = { validate: true }): ActionRegistration {\n if (options.validate !== false) {\n this.validate();\n }\n\n return { ...this.registration } as ActionRegistration;\n }\n\n /**\n * Reset the builder\n */\n reset(): ActionBuilder {\n this.registration = {\n p: 'hcs-12',\n op: 'register',\n };\n this.alias = undefined;\n return this;\n }\n\n /**\n * Get the alias\n */\n getAlias(): string {\n if (!this.alias) {\n throw new Error('Action alias not set');\n }\n return this.alias;\n }\n\n /**\n * Get the topic ID\n */\n getTopicId(): string {\n if (!this.registration.t_id) {\n throw new Error('Action topic ID not set');\n }\n return this.registration.t_id;\n }\n\n /**\n * Generate WASM hash from binary data\n */\n async generateWasmHash(wasmData: Uint8Array): Promise<string> {\n if (isSSREnvironment()) {\n return this.createSSRSafeHash(wasmData, 'wasm');\n }\n\n const hasher = this.cryptoAdapter.createHash('sha256');\n const result = hasher.update(Buffer.from(wasmData)).digest('hex');\n const hash = result instanceof Promise ? await result : result;\n return typeof hash === 'string' ? hash : hash.toString('hex');\n }\n\n /**\n * Generate INFO hash from module info\n */\n async generateInfoHash(info: ModuleInfo): Promise<string> {\n const infoJson = JSON.stringify(info, Object.keys(info).sort());\n\n if (isSSREnvironment()) {\n return this.createSSRSafeHash(Buffer.from(infoJson), 'info');\n }\n\n const hasher = this.cryptoAdapter.createHash('sha256');\n const result = hasher.update(Buffer.from(infoJson)).digest('hex');\n const hash = result instanceof Promise ? await result : result;\n return typeof hash === 'string' ? hash : hash.toString('hex');\n }\n\n /**\n * Calculate hash for any data\n */\n async calculateHash(data: Uint8Array | Buffer | string): Promise<string> {\n const buffer =\n typeof data === 'string'\n ? Buffer.from(data)\n : data instanceof Uint8Array\n ? Buffer.from(data)\n : data;\n\n if (isSSREnvironment()) {\n return this.createSSRSafeHash(buffer, 'data');\n }\n\n const hasher = this.cryptoAdapter.createHash('sha256');\n const result = hasher.update(buffer).digest('hex');\n const hash = result instanceof Promise ? await result : result;\n return typeof hash === 'string' ? hash : hash.toString('hex');\n }\n\n /**\n * Create SSR-safe hash\n */\n private createSSRSafeHash(data: Buffer | Uint8Array, type: string): string {\n const buffer = data instanceof Uint8Array ? Buffer.from(data) : data;\n let hash = 0;\n\n for (let i = 0; i < Math.min(buffer.length, 256); i++) {\n hash = ((hash << 5) - hash + buffer[i]) & 0xffffffff;\n }\n\n return `ssr-${type}-${buffer.length}-${Math.abs(hash).toString(16).padStart(8, '0')}`;\n }\n\n /**\n * Create registration from WASM and INFO data\n */\n async createFromWasmAndInfo(\n topicId: string,\n wasmData: Uint8Array,\n info: ModuleInfo,\n ): Promise<ActionRegistration> {\n const wasmHash = await this.generateWasmHash(wasmData);\n const infoHash = await this.generateInfoHash(info);\n\n const jsTopicId = this.registration.js_t_id;\n const jsHash = this.registration.js_hash;\n const interfaceVersion = this.registration.interface_version;\n\n this.reset().setTopicId(topicId).setHash(infoHash).setWasmHash(wasmHash);\n\n if (jsTopicId) this.setJsTopicId(jsTopicId);\n if (jsHash) this.setJsHash(jsHash);\n if (interfaceVersion) this.setInterfaceVersion(interfaceVersion);\n\n return this.build();\n }\n\n /**\n * Check if registration is complete\n */\n isComplete(registration: Partial<ActionRegistration>): boolean {\n return !!(\n registration.p === 'hcs-12' &&\n registration.op === 'register' &&\n registration.t_id &&\n registration.hash &&\n registration.wasm_hash\n );\n }\n\n /**\n * Validate the current registration\n */\n private validate(): void {\n if (!this.registration.t_id) {\n throw new Error('Topic ID is required');\n }\n if (!this.registration.hash) {\n throw new Error('INFO hash is required');\n }\n if (!this.registration.wasm_hash) {\n throw new Error('WASM hash is required');\n }\n }\n\n /**\n * Validate topic ID format\n */\n private isValidTopicId(topicId: string): boolean {\n return /^\\d+\\.\\d+\\.\\d+$/.test(topicId);\n }\n\n /**\n * Validate hash format\n */\n private isValidHash(hash: string): boolean {\n return /^[a-f0-9]{64}$/.test(hash);\n }\n\n /**\n * Validate semantic version format\n */\n private isValidVersion(version: string): boolean {\n return /^\\d+\\.\\d+\\.\\d+$/.test(version);\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,125 +1,171 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
class ActionBuilder {
|
|
1
|
+
import { Logger } from "./standards-sdk.es105.js";
|
|
2
|
+
class AssemblyBuilder {
|
|
4
3
|
constructor(logger) {
|
|
5
|
-
this.cryptoAdapter = getCryptoAdapter();
|
|
6
|
-
this.logger = logger;
|
|
7
4
|
this.registration = {
|
|
8
5
|
p: "hcs-12",
|
|
9
6
|
op: "register"
|
|
10
7
|
};
|
|
8
|
+
this.operations = [];
|
|
9
|
+
this.updateFields = {
|
|
10
|
+
p: "hcs-12",
|
|
11
|
+
op: "update"
|
|
12
|
+
};
|
|
13
|
+
this.logger = logger || new Logger({ module: "AssemblyBuilder" });
|
|
11
14
|
}
|
|
12
15
|
/**
|
|
13
|
-
* Set
|
|
16
|
+
* Set assembly name
|
|
14
17
|
*/
|
|
15
|
-
|
|
16
|
-
if (!this.
|
|
17
|
-
throw new Error("Invalid
|
|
18
|
+
setName(name) {
|
|
19
|
+
if (!this.isValidName(name)) {
|
|
20
|
+
throw new Error("Invalid assembly name format");
|
|
18
21
|
}
|
|
19
|
-
this.registration.
|
|
22
|
+
this.registration.name = name;
|
|
20
23
|
return this;
|
|
21
24
|
}
|
|
22
25
|
/**
|
|
23
|
-
* Set
|
|
26
|
+
* Set assembly version
|
|
24
27
|
*/
|
|
25
|
-
|
|
26
|
-
this.
|
|
28
|
+
setVersion(version) {
|
|
29
|
+
if (!this.isValidSemver(version)) {
|
|
30
|
+
throw new Error("Invalid semantic version");
|
|
31
|
+
}
|
|
32
|
+
this.registration.version = version;
|
|
27
33
|
return this;
|
|
28
34
|
}
|
|
29
35
|
/**
|
|
30
|
-
* Set
|
|
36
|
+
* Set assembly description
|
|
31
37
|
*/
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
38
|
+
setDescription(description) {
|
|
39
|
+
this.registration.description = description;
|
|
40
|
+
if (this.updateFields) {
|
|
41
|
+
this.updateFields.description = description;
|
|
35
42
|
}
|
|
36
|
-
this.registration.hash = hash;
|
|
37
43
|
return this;
|
|
38
44
|
}
|
|
39
45
|
/**
|
|
40
|
-
* Set
|
|
46
|
+
* Set assembly tags
|
|
41
47
|
*/
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
48
|
+
setTags(tags) {
|
|
49
|
+
this.registration.tags = tags;
|
|
50
|
+
if (this.updateFields) {
|
|
51
|
+
this.updateFields.tags = tags;
|
|
45
52
|
}
|
|
46
|
-
this.registration.wasm_hash = hash;
|
|
47
53
|
return this;
|
|
48
54
|
}
|
|
49
55
|
/**
|
|
50
|
-
*
|
|
56
|
+
* Add a single tag
|
|
51
57
|
*/
|
|
52
|
-
|
|
53
|
-
if (!this.
|
|
54
|
-
|
|
58
|
+
addTag(tag) {
|
|
59
|
+
if (!this.registration.tags) {
|
|
60
|
+
this.registration.tags = [];
|
|
61
|
+
}
|
|
62
|
+
if (!this.updateFields.tags) {
|
|
63
|
+
this.updateFields.tags = [];
|
|
55
64
|
}
|
|
56
|
-
this.registration.
|
|
65
|
+
this.registration.tags.push(tag);
|
|
66
|
+
this.updateFields.tags.push(tag);
|
|
57
67
|
return this;
|
|
58
68
|
}
|
|
59
69
|
/**
|
|
60
|
-
* Set
|
|
70
|
+
* Set assembly author
|
|
61
71
|
*/
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
throw new Error("Invalid topic ID format");
|
|
65
|
-
}
|
|
66
|
-
this.registration.js_t_id = topicId;
|
|
72
|
+
setAuthor(author) {
|
|
73
|
+
this.registration.author = author;
|
|
67
74
|
return this;
|
|
68
75
|
}
|
|
69
76
|
/**
|
|
70
|
-
*
|
|
77
|
+
* Add an action to the assembly
|
|
71
78
|
*/
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
79
|
+
addAction(builder) {
|
|
80
|
+
const topicId = builder.getTopicId();
|
|
81
|
+
const alias = builder.getAlias();
|
|
82
|
+
if (!this.isValidAlias(alias)) {
|
|
83
|
+
throw new Error("Invalid alias format");
|
|
75
84
|
}
|
|
76
|
-
|
|
85
|
+
const operation = {
|
|
86
|
+
p: "hcs-12",
|
|
87
|
+
op: "add-action",
|
|
88
|
+
t_id: topicId,
|
|
89
|
+
alias
|
|
90
|
+
};
|
|
91
|
+
this.operations.push(operation);
|
|
77
92
|
return this;
|
|
78
93
|
}
|
|
79
94
|
/**
|
|
80
|
-
*
|
|
95
|
+
* Add a block to the assembly
|
|
96
|
+
* The block must already be registered and have a topic ID
|
|
81
97
|
*/
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
98
|
+
addBlock(builder) {
|
|
99
|
+
const blockTopicId = builder.getTopicId();
|
|
100
|
+
if (!this.isValidTopicId(blockTopicId)) {
|
|
101
|
+
throw new Error(`Invalid block topic ID: ${blockTopicId}`);
|
|
85
102
|
}
|
|
86
|
-
|
|
103
|
+
const definition = builder.build();
|
|
104
|
+
const actions = builder.getActions();
|
|
105
|
+
const attributes = this.extractDefaultAttributes(definition.attributes);
|
|
106
|
+
if (actions && Object.keys(actions).length > 0) {
|
|
107
|
+
for (const [name, topicId] of Object.entries(actions)) {
|
|
108
|
+
if (!this.isValidTopicId(topicId)) {
|
|
109
|
+
throw new Error(`Invalid action topic ID for "${name}": ${topicId}`);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
const operation = {
|
|
114
|
+
p: "hcs-12",
|
|
115
|
+
op: "add-block",
|
|
116
|
+
block_t_id: blockTopicId,
|
|
117
|
+
...Object.keys(actions).length > 0 && { actions },
|
|
118
|
+
attributes
|
|
119
|
+
};
|
|
120
|
+
this.operations.push(operation);
|
|
87
121
|
return this;
|
|
88
122
|
}
|
|
89
123
|
/**
|
|
90
|
-
*
|
|
124
|
+
* Update assembly metadata
|
|
91
125
|
*/
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
126
|
+
updateMetadata(description, tags) {
|
|
127
|
+
const operation = {
|
|
128
|
+
p: "hcs-12",
|
|
129
|
+
op: "update",
|
|
130
|
+
description,
|
|
131
|
+
tags
|
|
132
|
+
};
|
|
133
|
+
this.operations.push(operation);
|
|
97
134
|
return this;
|
|
98
135
|
}
|
|
99
136
|
/**
|
|
100
|
-
*
|
|
137
|
+
* Build the assembly registration
|
|
101
138
|
*/
|
|
102
|
-
|
|
103
|
-
if (!this.
|
|
104
|
-
throw new Error("
|
|
105
|
-
}
|
|
106
|
-
if (!this.isValidHash(verification.source_hash)) {
|
|
107
|
-
throw new Error("Invalid source hash");
|
|
139
|
+
build() {
|
|
140
|
+
if (!this.registration.name) {
|
|
141
|
+
throw new Error("Assembly name is required");
|
|
108
142
|
}
|
|
109
|
-
if (
|
|
110
|
-
throw new Error("
|
|
143
|
+
if (!this.registration.version) {
|
|
144
|
+
throw new Error("Assembly version is required");
|
|
111
145
|
}
|
|
112
|
-
this.registration
|
|
113
|
-
return this;
|
|
146
|
+
return { ...this.registration };
|
|
114
147
|
}
|
|
115
148
|
/**
|
|
116
|
-
* Build
|
|
149
|
+
* Build an update operation
|
|
117
150
|
*/
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
151
|
+
buildUpdate() {
|
|
152
|
+
const update = {
|
|
153
|
+
p: "hcs-12",
|
|
154
|
+
op: "update"
|
|
155
|
+
};
|
|
156
|
+
if (this.updateFields.description !== void 0) {
|
|
157
|
+
update.description = this.updateFields.description;
|
|
121
158
|
}
|
|
122
|
-
|
|
159
|
+
if (this.updateFields.tags !== void 0) {
|
|
160
|
+
update.tags = this.updateFields.tags;
|
|
161
|
+
}
|
|
162
|
+
return update;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Build all operations
|
|
166
|
+
*/
|
|
167
|
+
buildOperations() {
|
|
168
|
+
return [...this.operations];
|
|
123
169
|
}
|
|
124
170
|
/**
|
|
125
171
|
* Reset the builder
|
|
@@ -129,131 +175,162 @@ class ActionBuilder {
|
|
|
129
175
|
p: "hcs-12",
|
|
130
176
|
op: "register"
|
|
131
177
|
};
|
|
132
|
-
this.
|
|
178
|
+
this.operations = [];
|
|
179
|
+
this.updateFields = {
|
|
180
|
+
p: "hcs-12",
|
|
181
|
+
op: "update"
|
|
182
|
+
};
|
|
133
183
|
return this;
|
|
134
184
|
}
|
|
135
185
|
/**
|
|
136
|
-
* Get the
|
|
137
|
-
*/
|
|
138
|
-
getAlias() {
|
|
139
|
-
if (!this.alias) {
|
|
140
|
-
throw new Error("Action alias not set");
|
|
141
|
-
}
|
|
142
|
-
return this.alias;
|
|
143
|
-
}
|
|
144
|
-
/**
|
|
145
|
-
* Get the topic ID
|
|
186
|
+
* Get the registration message
|
|
146
187
|
*/
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
throw new Error("Action topic ID not set");
|
|
150
|
-
}
|
|
151
|
-
return this.registration.t_id;
|
|
188
|
+
getRegistration() {
|
|
189
|
+
return this.build();
|
|
152
190
|
}
|
|
153
191
|
/**
|
|
154
|
-
*
|
|
192
|
+
* Get all operations
|
|
155
193
|
*/
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
return this.createSSRSafeHash(wasmData, "wasm");
|
|
159
|
-
}
|
|
160
|
-
const hasher = this.cryptoAdapter.createHash("sha256");
|
|
161
|
-
const result = hasher.update(Buffer.from(wasmData)).digest("hex");
|
|
162
|
-
const hash = result instanceof Promise ? await result : result;
|
|
163
|
-
return typeof hash === "string" ? hash : hash.toString("hex");
|
|
194
|
+
getOperations() {
|
|
195
|
+
return this.buildOperations();
|
|
164
196
|
}
|
|
165
197
|
/**
|
|
166
|
-
*
|
|
198
|
+
* Build the complete assembly definition for preview
|
|
167
199
|
*/
|
|
168
|
-
|
|
169
|
-
const
|
|
170
|
-
|
|
171
|
-
|
|
200
|
+
buildPreview() {
|
|
201
|
+
const actions = [];
|
|
202
|
+
const blocks = [];
|
|
203
|
+
for (const operation of this.operations) {
|
|
204
|
+
switch (operation.op) {
|
|
205
|
+
case "add-action":
|
|
206
|
+
actions.push({
|
|
207
|
+
t_id: operation.t_id,
|
|
208
|
+
alias: operation.alias,
|
|
209
|
+
config: operation.config,
|
|
210
|
+
data: operation.data
|
|
211
|
+
});
|
|
212
|
+
break;
|
|
213
|
+
case "add-block":
|
|
214
|
+
blocks.push({
|
|
215
|
+
block_t_id: operation.block_t_id,
|
|
216
|
+
actions: operation.actions,
|
|
217
|
+
attributes: operation.attributes,
|
|
218
|
+
children: operation.children,
|
|
219
|
+
data: operation.data
|
|
220
|
+
});
|
|
221
|
+
break;
|
|
222
|
+
case "update":
|
|
223
|
+
if (operation.description) {
|
|
224
|
+
this.registration.description = operation.description;
|
|
225
|
+
}
|
|
226
|
+
if (operation.tags) {
|
|
227
|
+
this.registration.tags = operation.tags;
|
|
228
|
+
}
|
|
229
|
+
break;
|
|
230
|
+
}
|
|
172
231
|
}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
232
|
+
return {
|
|
233
|
+
topicId: "",
|
|
234
|
+
name: this.registration.name,
|
|
235
|
+
version: this.registration.version,
|
|
236
|
+
description: this.registration.description,
|
|
237
|
+
tags: this.registration.tags,
|
|
238
|
+
author: this.registration.author,
|
|
239
|
+
actions,
|
|
240
|
+
blocks,
|
|
241
|
+
created: (/* @__PURE__ */ new Date()).toISOString(),
|
|
242
|
+
updated: (/* @__PURE__ */ new Date()).toISOString()
|
|
243
|
+
};
|
|
177
244
|
}
|
|
178
245
|
/**
|
|
179
|
-
*
|
|
246
|
+
* Validate the assembly configuration
|
|
180
247
|
*/
|
|
181
|
-
|
|
182
|
-
const
|
|
183
|
-
if (
|
|
184
|
-
|
|
248
|
+
validate() {
|
|
249
|
+
const errors = [];
|
|
250
|
+
if (!this.registration.name) {
|
|
251
|
+
errors.push("Assembly name is required");
|
|
185
252
|
}
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
const hash = result instanceof Promise ? await result : result;
|
|
189
|
-
return typeof hash === "string" ? hash : hash.toString("hex");
|
|
190
|
-
}
|
|
191
|
-
/**
|
|
192
|
-
* Create SSR-safe hash
|
|
193
|
-
*/
|
|
194
|
-
createSSRSafeHash(data, type) {
|
|
195
|
-
const buffer = data instanceof Uint8Array ? Buffer.from(data) : data;
|
|
196
|
-
let hash = 0;
|
|
197
|
-
for (let i = 0; i < Math.min(buffer.length, 256); i++) {
|
|
198
|
-
hash = (hash << 5) - hash + buffer[i] & 4294967295;
|
|
253
|
+
if (!this.registration.version) {
|
|
254
|
+
errors.push("Assembly version is required");
|
|
199
255
|
}
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
/**
|
|
203
|
-
* Create registration from WASM and INFO data
|
|
204
|
-
*/
|
|
205
|
-
async createFromWasmAndInfo(topicId, wasmData, info) {
|
|
206
|
-
const wasmHash = await this.generateWasmHash(wasmData);
|
|
207
|
-
const infoHash = await this.generateInfoHash(info);
|
|
208
|
-
const jsTopicId = this.registration.js_t_id;
|
|
209
|
-
const jsHash = this.registration.js_hash;
|
|
210
|
-
const interfaceVersion = this.registration.interface_version;
|
|
211
|
-
this.reset().setTopicId(topicId).setHash(infoHash).setWasmHash(wasmHash);
|
|
212
|
-
if (jsTopicId) this.setJsTopicId(jsTopicId);
|
|
213
|
-
if (jsHash) this.setJsHash(jsHash);
|
|
214
|
-
if (interfaceVersion) this.setInterfaceVersion(interfaceVersion);
|
|
215
|
-
return this.build();
|
|
216
|
-
}
|
|
217
|
-
/**
|
|
218
|
-
* Check if registration is complete
|
|
219
|
-
*/
|
|
220
|
-
isComplete(registration) {
|
|
221
|
-
return !!(registration.p === "hcs-12" && registration.op === "register" && registration.t_id && registration.hash && registration.wasm_hash);
|
|
222
|
-
}
|
|
223
|
-
/**
|
|
224
|
-
* Validate the current registration
|
|
225
|
-
*/
|
|
226
|
-
validate() {
|
|
227
|
-
if (!this.registration.t_id) {
|
|
228
|
-
throw new Error("Topic ID is required");
|
|
256
|
+
if (this.registration.version && !this.isValidSemver(this.registration.version)) {
|
|
257
|
+
errors.push("Invalid semantic version format");
|
|
229
258
|
}
|
|
230
|
-
|
|
231
|
-
|
|
259
|
+
const aliases = /* @__PURE__ */ new Set();
|
|
260
|
+
for (const operation of this.operations) {
|
|
261
|
+
if (operation.op === "add-action") {
|
|
262
|
+
if (aliases.has(operation.alias)) {
|
|
263
|
+
errors.push(`Duplicate alias: ${operation.alias}`);
|
|
264
|
+
} else {
|
|
265
|
+
aliases.add(operation.alias);
|
|
266
|
+
}
|
|
267
|
+
if (!this.isValidTopicId(operation.t_id)) {
|
|
268
|
+
errors.push(
|
|
269
|
+
`Invalid topic ID for ${operation.alias}: ${operation.t_id}`
|
|
270
|
+
);
|
|
271
|
+
}
|
|
272
|
+
if (!this.isValidAlias(operation.alias)) {
|
|
273
|
+
errors.push(`Invalid alias format: ${operation.alias}`);
|
|
274
|
+
}
|
|
275
|
+
} else if (operation.op === "add-block") {
|
|
276
|
+
if (!this.isValidTopicId(operation.block_t_id)) {
|
|
277
|
+
errors.push(`Invalid block topic ID: ${operation.block_t_id}`);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
232
280
|
}
|
|
233
|
-
|
|
234
|
-
|
|
281
|
+
const actionAliases = /* @__PURE__ */ new Set();
|
|
282
|
+
const blockOperations = this.operations.filter(
|
|
283
|
+
(op) => op.op === "add-action"
|
|
284
|
+
);
|
|
285
|
+
blockOperations.forEach((op) => actionAliases.add(op.alias));
|
|
286
|
+
for (const operation of this.operations) {
|
|
287
|
+
if (operation.op === "add-block" && operation.actions) {
|
|
288
|
+
for (const [actionKey, actionTopicId] of Object.entries(
|
|
289
|
+
operation.actions
|
|
290
|
+
)) {
|
|
291
|
+
if (!this.isValidTopicId(actionTopicId)) {
|
|
292
|
+
errors.push(
|
|
293
|
+
`Block ${operation.block_t_id} has invalid action topic ID for key ${actionKey}: ${actionTopicId}`
|
|
294
|
+
);
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
}
|
|
235
298
|
}
|
|
299
|
+
return {
|
|
300
|
+
valid: errors.length === 0,
|
|
301
|
+
errors
|
|
302
|
+
};
|
|
236
303
|
}
|
|
237
304
|
/**
|
|
238
|
-
*
|
|
305
|
+
* Helper validation methods
|
|
239
306
|
*/
|
|
307
|
+
isValidSemver(version) {
|
|
308
|
+
return /^\d+\.\d+\.\d+(-[\w\.\+]+)?$/.test(version);
|
|
309
|
+
}
|
|
240
310
|
isValidTopicId(topicId) {
|
|
241
311
|
return /^\d+\.\d+\.\d+$/.test(topicId);
|
|
242
312
|
}
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
return /^[a-
|
|
313
|
+
isValidAlias(alias) {
|
|
314
|
+
return /^[a-zA-Z][a-zA-Z0-9_-]*$/.test(alias) && alias.length >= 2 && alias.length <= 50;
|
|
315
|
+
}
|
|
316
|
+
isValidName(name) {
|
|
317
|
+
return /^[a-z0-9-]+$/.test(name) && name.length >= 2 && name.length <= 100;
|
|
248
318
|
}
|
|
249
319
|
/**
|
|
250
|
-
*
|
|
320
|
+
* Extract default values from block attributes
|
|
251
321
|
*/
|
|
252
|
-
|
|
253
|
-
|
|
322
|
+
extractDefaultAttributes(attributes) {
|
|
323
|
+
if (!attributes) return {};
|
|
324
|
+
const defaults = {};
|
|
325
|
+
for (const [key, attr] of Object.entries(attributes)) {
|
|
326
|
+
if (attr && typeof attr === "object" && "default" in attr) {
|
|
327
|
+
defaults[key] = attr.default;
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
return defaults;
|
|
254
331
|
}
|
|
255
332
|
}
|
|
256
333
|
export {
|
|
257
|
-
|
|
334
|
+
AssemblyBuilder
|
|
258
335
|
};
|
|
259
336
|
//# sourceMappingURL=standards-sdk.es39.js.map
|