@hashgraphonline/standards-sdk 0.1.143 → 0.1.144-feat-solana-register.canary.d5edcec.80
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 +12279 -66
- package/dist/es/standards-sdk.es148.js.map +1 -1
- package/dist/es/standards-sdk.es149.js +961 -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 +20 -0
- package/dist/es/standards-sdk.es150.js.map +1 -0
- package/dist/es/standards-sdk.es151.js +59 -0
- package/dist/es/standards-sdk.es151.js.map +1 -0
- package/dist/es/standards-sdk.es152.js +87 -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 +15 -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.es34.js","sources":["../../src/hcs-12/registries/assembly-registry.ts"],"sourcesContent":["/**\n * Assembly Registry Implementation for HCS-12\n *\n * Manages assembly topics where each topic represents one assembly.\n * Processes operations sequentially to build assembly state.\n */\n\nimport { ILogger, Logger } from '../../utils/logger';\nimport { NetworkType } from '../../utils/types';\nimport {\n RegistryType,\n AssemblyRegistryEntry,\n AssemblyState,\n AssemblyRegistration,\n AssemblyAddAction,\n AssemblyAddBlock,\n AssemblyUpdate,\n AssemblyMessage,\n AssemblyAction,\n AssemblyBlock,\n} from '../types';\nimport { BaseRegistry } from './base-registry';\nimport type { HCS12Client } from '../sdk';\nimport type { HCS12BrowserClient } from '../browser';\nimport { validateAssemblyMessage } from '../validation/schemas';\nimport { ZodError } from 'zod';\n\n/**\n * Registry for HashLink assemblies\n */\nexport class AssemblyRegistry extends BaseRegistry {\n private assemblyStates: Map<string, AssemblyState> = new Map();\n\n constructor(\n networkType: NetworkType,\n logger: ILogger,\n topicId?: string,\n client?: HCS12Client | HCS12BrowserClient,\n ) {\n super(networkType, logger, RegistryType.ASSEMBLY, topicId, client);\n }\n\n /**\n * Override getTopicMemo to indicate indexed registry\n */\n getTopicMemo(): string {\n const indexed = 0;\n const ttl = 60;\n const type = this.registryType;\n return `hcs-12:${indexed}:${ttl}:${type}`;\n }\n\n /**\n * Register a new assembly\n */\n async register(registration: AssemblyRegistration): Promise<string> {\n return this.submitMessage(registration);\n }\n\n /**\n * Create a new assembly topic\n */\n async createAssemblyTopic(): Promise<string> {\n const topicId = await this.createRegistryTopic();\n this.topicId = topicId;\n return topicId;\n }\n\n /**\n * Add an action to the assembly\n */\n async addAction(message: AssemblyAddAction): Promise<string> {\n return this.submitMessage(message);\n }\n\n /**\n * Add a block to the assembly\n */\n async addBlock(message: AssemblyAddBlock): Promise<string> {\n return this.submitMessage(message);\n }\n\n /**\n * Update assembly metadata\n */\n async update(message: AssemblyUpdate): Promise<string> {\n return this.submitMessage(message);\n }\n\n /**\n * Submit any assembly operation message\n */\n async submitMessage(message: AssemblyMessage): Promise<string> {\n this.validateMessage(message);\n\n if (!this.topicId) {\n throw new Error('Assembly topic ID not found');\n }\n\n if (!this.client) {\n throw new Error('Client not found');\n }\n\n this.logger.info('Submitting assembly message to HCS', {\n topicId: this.topicId,\n op: message.op,\n });\n\n const result = await this.client.submitMessage(\n this.topicId,\n JSON.stringify(message),\n );\n\n const sequenceNumber = result.sequenceNumber;\n if (!sequenceNumber) {\n throw new Error('No sequence number returned from submission');\n }\n\n const entry: AssemblyRegistryEntry = {\n id: sequenceNumber.toString(),\n sequenceNumber,\n timestamp: new Date().toISOString(),\n submitter:\n 'getHashConnect' in this.client\n ? (await (this.client as HCS12BrowserClient).getAccountAndSigner())\n .accountId\n : this.client.getOperatorAccountId(),\n data: message,\n };\n\n this.entries.set(entry.id, entry);\n\n await this.processMessage(entry);\n\n this.logger.info('Assembly message processed', {\n op: message.op,\n sequenceNumber,\n });\n\n return sequenceNumber.toString();\n }\n\n /**\n * Process a message to update assembly state\n */\n private async processMessage(entry: AssemblyRegistryEntry): Promise<void> {\n const message = entry.data as AssemblyMessage;\n\n if (!this.topicId) return;\n\n let state = this.assemblyStates.get(this.topicId);\n\n switch (message.op) {\n case 'register':\n const reg = message as AssemblyRegistration;\n state = {\n topicId: this.topicId,\n name: reg.name,\n version: reg.version,\n description: reg.description,\n tags: reg.tags,\n author: reg.author,\n actions: [],\n blocks: [],\n created: entry.timestamp,\n updated: entry.timestamp,\n };\n this.assemblyStates.set(this.topicId, state);\n break;\n\n case 'add-action':\n if (!state) {\n this.logger.warn('Cannot add action without assembly registration');\n return;\n }\n const addAction = message as AssemblyAddAction;\n const action: AssemblyAction = {\n t_id: addAction.t_id,\n alias: addAction.alias,\n config: addAction.config,\n data: addAction.data,\n };\n state.actions.push(action);\n state.updated = entry.timestamp;\n break;\n\n case 'add-block':\n if (!state) {\n this.logger.warn('Cannot add block without assembly registration');\n return;\n }\n const addBlock = message as AssemblyAddBlock;\n const block: AssemblyBlock = {\n block_t_id: addBlock.block_t_id,\n actions: addBlock.actions,\n attributes: addBlock.attributes,\n children: addBlock.children,\n data: addBlock.data,\n };\n state.blocks.push(block);\n state.updated = entry.timestamp;\n break;\n\n case 'update':\n if (!state) {\n this.logger.warn('Cannot update without assembly registration');\n return;\n }\n const update = message as AssemblyUpdate;\n if (update.description !== undefined) {\n state.description = update.description;\n }\n if (update.tags !== undefined) {\n state.tags = update.tags;\n }\n state.updated = entry.timestamp;\n break;\n }\n }\n\n /**\n * Get the current state of an assembly\n */\n async getAssemblyState(topicId?: string): Promise<AssemblyState | null> {\n const targetTopicId = topicId || this.topicId;\n if (!targetTopicId || !this.client) return null;\n\n let state = this.assemblyStates.get(targetTopicId);\n if (state) return state;\n\n if (targetTopicId === this.topicId && this.entries.size > 0) {\n this.logger.debug('Building state from existing entries', {\n topicId: targetTopicId,\n entriesCount: this.entries.size,\n });\n this.assemblyStates.clear();\n for (const entry of this.entries.values()) {\n this.processAssemblyMessage(targetTopicId, entry);\n }\n const builtState = this.assemblyStates.get(targetTopicId) || null;\n this.logger.debug('Built state from entries', {\n topicId: targetTopicId,\n hasState: !!builtState,\n name: builtState?.name,\n });\n return builtState;\n }\n\n this.logger.info('Syncing assembly state from topic', {\n topicId: targetTopicId,\n });\n\n try {\n const messages = await this.client.mirrorNode.getTopicMessagesByFilter(\n targetTopicId,\n {\n order: 'asc',\n limit: 1000,\n },\n );\n\n const messageArray = Array.isArray(messages) ? messages : [];\n\n this.logger.info('Processing assembly messages', {\n topicId: targetTopicId,\n messageCount: messageArray.length,\n });\n\n for (const msg of messageArray) {\n try {\n let data: any;\n\n if ((msg as any).message) {\n try {\n let messageContent: string;\n const isServerEnvironment = typeof window === 'undefined';\n\n if (isServerEnvironment) {\n messageContent = Buffer.from(\n (msg as any).message,\n 'base64',\n ).toString('utf-8');\n } else {\n messageContent = new TextDecoder().decode(\n Uint8Array.from(atob((msg as any).message), c =>\n c.charCodeAt(0),\n ),\n );\n }\n\n data = JSON.parse(messageContent);\n this.logger.debug('Successfully parsed message', {\n sequenceNumber: msg.sequence_number,\n op: data.op,\n p: data.p,\n });\n } catch (error) {\n this.logger.debug('Failed to decode/parse message', {\n sequenceNumber: msg.sequence_number,\n error,\n });\n continue;\n }\n } else {\n continue;\n }\n\n if (data.p !== 'hcs-12') {\n this.logger.debug('Skipping non-HCS-12 message', {\n sequenceNumber: msg.sequence_number,\n protocol: data.p,\n });\n continue;\n }\n\n const entry: AssemblyRegistryEntry = {\n id: msg.sequence_number.toString(),\n sequenceNumber: msg.sequence_number,\n timestamp: msg.consensus_timestamp || new Date().toISOString(),\n submitter: (msg as any).payer_account_id || 'unknown',\n data,\n };\n\n this.processAssemblyMessage(targetTopicId, entry);\n\n this.logger.debug('Processed message for assembly', {\n topicId: targetTopicId,\n sequenceNumber: entry.sequenceNumber,\n op: entry.data.op,\n });\n } catch (error) {\n this.logger.warn('Failed to parse assembly message', {\n sequenceNumber: msg.sequence_number,\n error,\n });\n }\n }\n\n const finalState = this.assemblyStates.get(targetTopicId) || null;\n this.logger.info('Assembly state after sync', {\n topicId: targetTopicId,\n hasState: !!finalState,\n name: finalState?.name,\n version: finalState?.version,\n actionsCount: finalState?.actions?.length || 0,\n blocksCount: finalState?.blocks?.length || 0,\n });\n return finalState;\n } catch (error) {\n this.logger.error('Failed to sync assembly state', {\n topicId: targetTopicId,\n error,\n });\n return null;\n }\n }\n\n /**\n * Process a message for a specific assembly topic\n */\n private processAssemblyMessage(\n topicId: string,\n entry: AssemblyRegistryEntry,\n ): void {\n const message = entry.data as AssemblyMessage;\n let state = this.assemblyStates.get(topicId);\n\n this.logger.debug('Processing assembly message', {\n topicId,\n op: message.op,\n hasState: !!state,\n });\n\n switch (message.op) {\n case 'register':\n const reg = message as AssemblyRegistration;\n state = {\n topicId: topicId,\n name: reg.name,\n version: reg.version,\n description: reg.description,\n tags: reg.tags,\n author: reg.author,\n actions: [],\n blocks: [],\n created: entry.timestamp,\n updated: entry.timestamp,\n };\n this.assemblyStates.set(topicId, state);\n this.logger.debug('Assembly registered', {\n topicId,\n name: reg.name,\n version: reg.version,\n });\n break;\n\n case 'add-action':\n if (!state) {\n this.logger.warn('Cannot add action without assembly registration');\n return;\n }\n const addAction = message as AssemblyAddAction;\n const action: AssemblyAction = {\n t_id: addAction.t_id,\n alias: addAction.alias,\n config: addAction.config,\n data: addAction.data,\n };\n state.actions.push(action);\n state.updated = entry.timestamp;\n break;\n\n case 'add-block':\n if (!state) {\n this.logger.warn('Cannot add block without assembly registration');\n return;\n }\n const addBlock = message as AssemblyAddBlock;\n const block: AssemblyBlock = {\n block_t_id: addBlock.block_t_id,\n actions: addBlock.actions,\n attributes: addBlock.attributes,\n children: addBlock.children,\n data: addBlock.data,\n };\n state.blocks.push(block);\n state.updated = entry.timestamp;\n break;\n\n case 'update':\n if (!state) {\n this.logger.warn('Cannot update without assembly registration');\n return;\n }\n const update = message as AssemblyUpdate;\n if (update.description !== undefined) {\n state.description = update.description;\n }\n if (update.tags !== undefined) {\n state.tags = update.tags;\n }\n state.updated = entry.timestamp;\n break;\n }\n }\n\n /**\n * Override sync to rebuild state from all messages\n */\n async sync(): Promise<void> {\n if (!this.topicId || !this.client) {\n this.logger.warn('Cannot sync without topic ID and client');\n return;\n }\n\n this.entries.clear();\n this.assemblyStates.delete(this.topicId);\n\n this.logger.info('Syncing assembly messages', {\n topicId: this.topicId,\n });\n\n try {\n const messages = await this.client.mirrorNode.getTopicMessagesByFilter(\n this.topicId,\n {\n order: 'asc',\n limit: 1000,\n },\n );\n\n const messageArray = Array.isArray(messages) ? messages : [];\n\n this.logger.info('Processing assembly messages', {\n topicId: this.topicId,\n messageCount: messageArray.length,\n });\n\n for (const msg of messageArray) {\n try {\n let data: any;\n\n if ((msg as any).message) {\n try {\n let messageContent: string;\n const isServerEnvironment = typeof window === 'undefined';\n\n if (isServerEnvironment) {\n messageContent = Buffer.from(\n (msg as any).message,\n 'base64',\n ).toString('utf-8');\n } else {\n messageContent = new TextDecoder().decode(\n Uint8Array.from(atob((msg as any).message), c =>\n c.charCodeAt(0),\n ),\n );\n }\n\n data = JSON.parse(messageContent);\n } catch (error) {\n this.logger.debug('Failed to decode/parse message in sync', {\n sequenceNumber: msg.sequence_number,\n error,\n });\n continue;\n }\n } else if ((msg as any).raw_content) {\n try {\n data = JSON.parse((msg as any).raw_content);\n } catch {\n continue;\n }\n } else {\n const msgAny = msg as any;\n if (msgAny.p && msgAny.op) {\n data = { ...msgAny };\n delete data.consensus_timestamp;\n delete data.sequence_number;\n delete data.payer_account_id;\n delete data.topic_id;\n delete data.running_hash;\n delete data.running_hash_version;\n delete data.chunk_info;\n delete data.created;\n delete data.payer;\n } else {\n continue;\n }\n }\n\n if (data.p !== 'hcs-12') {\n continue;\n }\n\n const entry: AssemblyRegistryEntry = {\n id: msg.sequence_number.toString(),\n sequenceNumber: msg.sequence_number,\n timestamp: msg.consensus_timestamp || new Date().toISOString(),\n submitter: (msg as any).payer_account_id || 'unknown',\n data,\n };\n\n this.entries.set(entry.id, entry);\n\n await this.processMessage(entry);\n\n this.logger.debug('Processed sync message', {\n sequenceNumber: entry.sequenceNumber,\n op: entry.data.op,\n });\n } catch (error) {\n this.logger.warn('Failed to parse assembly message', {\n sequenceNumber: msg.sequence_number,\n error,\n });\n }\n }\n\n this.logger.info('Assembly sync completed', {\n topicId: this.topicId,\n messageCount: messageArray.length,\n });\n } catch (error) {\n this.logger.error('Failed to sync assembly', { error });\n throw error;\n }\n }\n\n /**\n * Validate an assembly message\n */\n private validateMessage(message: AssemblyMessage): void {\n try {\n validateAssemblyMessage(message);\n } catch (error) {\n if (error instanceof ZodError) {\n const issues = error.errors.map(\n e => `${e.path.join('.')}: ${e.message}`,\n );\n throw new Error(`Assembly validation failed: ${issues.join('; ')}`);\n }\n throw error;\n }\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"standards-sdk.es34.js","sources":["../../src/hcs-12/registries/hashlinks-registry.ts"],"sourcesContent":["/**\n * HashLinks Registry for HCS-12\n *\n * Manages the global directory of HashLinks assemblies.\n * This registry provides discovery and cataloging of available HashLinks.\n */\n\nimport { ILogger } from '../../utils/logger';\nimport { BaseRegistry } from './base-registry';\nimport {\n RegistryType,\n HashLinksRegistration,\n AssemblyRegistryEntry,\n} from '../types';\nimport { hashLinksRegistrationSchema } from '../validation/schemas';\nimport { validateWithSchema } from '../validation';\nimport type { NetworkType } from '../../utils/types';\nimport type { HCS12Client } from '../sdk';\nimport type { HCS12BrowserClient } from '../browser';\n\n/**\n * Registry for managing HashLinks directory entries\n */\nexport class HashLinksRegistry extends BaseRegistry {\n constructor(\n networkType: NetworkType,\n logger: ILogger,\n topicId?: string,\n client?: HCS12Client | HCS12BrowserClient,\n ) {\n super(networkType, logger, RegistryType.HASHLINKS, topicId, client);\n }\n\n /**\n * Register a new HashLink in the global directory\n */\n async register(data: HashLinksRegistration): Promise<string> {\n this.validateRegistration(data);\n\n const id = `${this.topicId || 'local'}_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`;\n const entry: AssemblyRegistryEntry = {\n id,\n sequenceNumber: 0,\n timestamp: new Date().toISOString(),\n submitter:\n this.client && 'getHashConnect' in this.client\n ? 'browser'\n : this.client?.getOperatorAccountId() || 'local',\n data,\n };\n\n this.entries.set(id, entry);\n\n if (this.client && this.topicId) {\n try {\n const message = JSON.stringify(data);\n const result = await this.client.submitMessage(this.topicId, message);\n\n if (result.sequenceNumber) {\n entry.sequenceNumber = result.sequenceNumber;\n entry.id = result.sequenceNumber.toString();\n this.entries.delete(id);\n this.entries.set(entry.id, entry);\n }\n\n this.logger.info('HashLink submitted to HCS', {\n transactionId: result.transactionId,\n sequenceNumber: result.sequenceNumber,\n topicId: this.topicId,\n });\n\n return entry.id;\n } catch (error) {\n this.logger.error('Failed to submit HashLink to HCS', { error });\n\n this.entries.delete(id);\n throw error;\n }\n }\n\n this.logger.info('HashLink registered in directory', {\n id,\n name: data.name,\n assemblyTopicId: data.t_id,\n tags: data.tags,\n });\n\n return id;\n }\n\n /**\n * Search HashLinks by tags\n */\n async searchByTags(tags: string[]): Promise<HashLinksRegistration[]> {\n const entries = await this.listEntries();\n\n return entries\n .map(entry => entry.data as HashLinksRegistration)\n .filter(hashLink => {\n if (!hashLink.tags || hashLink.tags.length === 0) {\n return false;\n }\n return tags.some(tag => hashLink.tags?.includes(tag));\n });\n }\n\n /**\n * Search HashLinks by name (partial match)\n */\n async searchByName(searchTerm: string): Promise<HashLinksRegistration[]> {\n const entries = await this.listEntries();\n const lowerSearchTerm = searchTerm.toLowerCase();\n\n return entries\n .map(entry => entry.data as HashLinksRegistration)\n .filter(\n hashLink =>\n hashLink.name.toLowerCase().includes(lowerSearchTerm) ||\n (hashLink.description?.toLowerCase().includes(lowerSearchTerm) ??\n false),\n );\n }\n\n /**\n * Get featured HashLinks\n */\n async getFeatured(): Promise<HashLinksRegistration[]> {\n const entries = await this.listEntries();\n\n return entries\n .map(entry => entry.data as HashLinksRegistration)\n .filter(hashLink => hashLink.featured === true);\n }\n\n /**\n * Get HashLinks by category\n */\n async getByCategory(category: string): Promise<HashLinksRegistration[]> {\n const entries = await this.listEntries();\n\n return entries\n .map(entry => entry.data as HashLinksRegistration)\n .filter(hashLink => hashLink.category === category);\n }\n\n /**\n * Get all unique categories\n */\n async getCategories(): Promise<string[]> {\n const entries = await this.listEntries();\n const categories = new Set<string>();\n\n entries.forEach(entry => {\n const hashLink = entry.data as HashLinksRegistration;\n if (hashLink.category) {\n categories.add(hashLink.category);\n }\n });\n\n return Array.from(categories).sort();\n }\n\n /**\n * Get all unique tags\n */\n async getAllTags(): Promise<string[]> {\n const entries = await this.listEntries();\n const tags = new Set<string>();\n\n entries.forEach(entry => {\n const hashLink = entry.data as HashLinksRegistration;\n if (hashLink.tags) {\n hashLink.tags.forEach(tag => tags.add(tag));\n }\n });\n\n return Array.from(tags).sort();\n }\n\n /**\n * Validate HashLinks registration data\n */\n private validateRegistration(data: HashLinksRegistration): void {\n this.validateBaseRegistration(data);\n\n const validation = validateWithSchema(data, hashLinksRegistrationSchema);\n if (!validation.isValid) {\n throw new Error(\n `HashLinks validation failed: ${validation.errors.join(', ')}`,\n );\n }\n\n if (!data.t_id || !data.t_id.match(/^\\d+\\.\\d+\\.\\d+$/)) {\n throw new Error('Valid assembly topic ID (t_id) is required');\n }\n\n if (data.tags && data.tags.length > 10) {\n throw new Error('Maximum 10 tags allowed');\n }\n\n if (data.name.length > 100) {\n throw new Error('Name must be 100 characters or less');\n }\n\n if (data.description && data.description.length > 500) {\n throw new Error('Description must be 500 characters or less');\n }\n }\n\n /**\n * Get registry statistics with HashLinks-specific metrics\n */\n getStats(): {\n entryCount: number;\n lastSync?: string;\n topicId?: string;\n registryType: string;\n categories: number;\n totalTags: number;\n featuredCount: number;\n } {\n const baseStats = super.getStats();\n const entries = Array.from(this.entries.values());\n\n const categories = new Set<string>();\n const tags = new Set<string>();\n let featuredCount = 0;\n\n entries.forEach(entry => {\n const hashLink = entry.data as HashLinksRegistration;\n if (hashLink.category) {\n categories.add(hashLink.category);\n }\n if (hashLink.tags) {\n hashLink.tags.forEach(tag => tags.add(tag));\n }\n if (hashLink.featured) {\n featuredCount++;\n }\n });\n\n return {\n ...baseStats,\n categories: categories.size,\n totalTags: tags.size,\n featuredCount,\n };\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1,172 +1,258 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { Logger } from "./standards-sdk.es105.js";
|
|
2
|
+
import { HederaMirrorNode } from "./standards-sdk.es126.js";
|
|
3
|
+
import "./standards-sdk.es127.js";
|
|
4
|
+
import "./standards-sdk.es128.js";
|
|
5
|
+
import "./standards-sdk.es129.js";
|
|
6
|
+
import "./standards-sdk.es130.js";
|
|
7
|
+
import "./standards-sdk.es131.js";
|
|
8
|
+
import "./standards-sdk.es132.js";
|
|
9
|
+
import "./standards-sdk.es133.js";
|
|
10
|
+
import "./standards-sdk.es134.js";
|
|
11
|
+
import "buffer";
|
|
12
|
+
import "crypto";
|
|
13
|
+
import "@noble/curves/secp256k1.js";
|
|
14
|
+
import "zod";
|
|
15
|
+
import "./standards-sdk.es149.js";
|
|
16
|
+
import "./standards-sdk.es138.js";
|
|
17
|
+
import "./standards-sdk.es148.js";
|
|
18
|
+
import "@hashgraph/proto";
|
|
19
|
+
import "@hashgraph/sdk";
|
|
20
|
+
import "ethers";
|
|
21
|
+
import "./standards-sdk.es122.js";
|
|
22
|
+
import "file-type";
|
|
23
|
+
import "bignumber.js";
|
|
24
|
+
import "./standards-sdk.es42.js";
|
|
25
|
+
import { BlockLoader } from "./standards-sdk.es32.js";
|
|
26
|
+
import { AssemblyRegistry } from "./standards-sdk.es33.js";
|
|
27
|
+
import { AssemblyEngine } from "./standards-sdk.es43.js";
|
|
28
|
+
class HCS12BaseClient {
|
|
29
|
+
constructor(config) {
|
|
30
|
+
this.network = config.network;
|
|
31
|
+
this.logger = config.logger || Logger.getInstance({
|
|
32
|
+
level: config.logLevel || "info",
|
|
33
|
+
module: "HCS12-BaseClient",
|
|
34
|
+
prettyPrint: config.prettyPrint,
|
|
35
|
+
silent: config.silent
|
|
36
|
+
});
|
|
37
|
+
this.mirrorNode = new HederaMirrorNode(
|
|
38
|
+
config.network,
|
|
39
|
+
this.logger,
|
|
40
|
+
config.mirrorNode
|
|
41
|
+
);
|
|
7
42
|
}
|
|
8
43
|
/**
|
|
9
|
-
*
|
|
44
|
+
* Initialize registries with optional existing topic IDs
|
|
10
45
|
*/
|
|
11
|
-
|
|
12
|
-
this.
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
if (this.client && this.topicId) {
|
|
23
|
-
try {
|
|
24
|
-
const message = JSON.stringify(data);
|
|
25
|
-
const result = await this.client.submitMessage(this.topicId, message);
|
|
26
|
-
if (result.sequenceNumber) {
|
|
27
|
-
entry.sequenceNumber = result.sequenceNumber;
|
|
28
|
-
entry.id = result.sequenceNumber.toString();
|
|
29
|
-
this.entries.delete(id);
|
|
30
|
-
this.entries.set(entry.id, entry);
|
|
31
|
-
}
|
|
32
|
-
this.logger.info("HashLink submitted to HCS", {
|
|
33
|
-
transactionId: result.transactionId,
|
|
34
|
-
sequenceNumber: result.sequenceNumber,
|
|
35
|
-
topicId: this.topicId
|
|
36
|
-
});
|
|
37
|
-
return entry.id;
|
|
38
|
-
} catch (error) {
|
|
39
|
-
this.logger.error("Failed to submit HashLink to HCS", { error });
|
|
40
|
-
this.entries.delete(id);
|
|
41
|
-
throw error;
|
|
42
|
-
}
|
|
46
|
+
initializeRegistries(topicIds) {
|
|
47
|
+
this.actionRegistryTopicId = topicIds?.action;
|
|
48
|
+
this._assemblyRegistryTopicId = topicIds?.assembly;
|
|
49
|
+
this._hashLinksRegistryTopicId = topicIds?.hashlinks;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Register a new assembly in the assembly registry
|
|
53
|
+
*/
|
|
54
|
+
async registerAssembly(registration) {
|
|
55
|
+
if (!this._assemblyRegistry) {
|
|
56
|
+
throw new Error("Assembly registry not initialized");
|
|
43
57
|
}
|
|
44
|
-
this.
|
|
45
|
-
|
|
46
|
-
name: data.name,
|
|
47
|
-
assemblyTopicId: data.t_id,
|
|
48
|
-
tags: data.tags
|
|
49
|
-
});
|
|
50
|
-
return id;
|
|
58
|
+
const id = await this._assemblyRegistry.register(registration);
|
|
59
|
+
return { id };
|
|
51
60
|
}
|
|
52
61
|
/**
|
|
53
|
-
*
|
|
62
|
+
* Get action by hash
|
|
63
|
+
*/
|
|
64
|
+
async getAction(hash) {
|
|
65
|
+
if (!this._actionRegistry) {
|
|
66
|
+
throw new Error("Action registry not initialized");
|
|
67
|
+
}
|
|
68
|
+
return this._actionRegistry.getAction(hash);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Load block from HCS-1
|
|
54
72
|
*/
|
|
55
|
-
async
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
73
|
+
async loadBlock(blockTopicId) {
|
|
74
|
+
if (!this._blockLoader) {
|
|
75
|
+
this._blockLoader = new BlockLoader(
|
|
76
|
+
this.network,
|
|
77
|
+
this.logger,
|
|
78
|
+
this
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
return this._blockLoader.loadBlock(blockTopicId);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Get assembly by name and version
|
|
85
|
+
*/
|
|
86
|
+
async getAssembly(name, version) {
|
|
87
|
+
if (!this._assemblyRegistry) {
|
|
88
|
+
throw new Error("Assembly registry not initialized");
|
|
89
|
+
}
|
|
90
|
+
const entries = await this._assemblyRegistry.listEntries();
|
|
91
|
+
for (const entry of entries) {
|
|
92
|
+
const state = await this._assemblyRegistry.getAssemblyState(entry.id);
|
|
93
|
+
if (state && state.name === name && state.version === version) {
|
|
94
|
+
return state;
|
|
60
95
|
}
|
|
61
|
-
|
|
62
|
-
|
|
96
|
+
}
|
|
97
|
+
return null;
|
|
63
98
|
}
|
|
64
99
|
/**
|
|
65
|
-
*
|
|
100
|
+
* Load and resolve a complete assembly by topic ID
|
|
66
101
|
*/
|
|
67
|
-
async
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
102
|
+
async loadAssembly(topicId) {
|
|
103
|
+
if (this._actionRegistry) {
|
|
104
|
+
this.logger.info("Syncing action registry before loading assembly");
|
|
105
|
+
await this._actionRegistry.sync();
|
|
106
|
+
}
|
|
107
|
+
const assemblyRegistry = new AssemblyRegistry(
|
|
108
|
+
this.network,
|
|
109
|
+
this.logger,
|
|
110
|
+
topicId,
|
|
111
|
+
this
|
|
72
112
|
);
|
|
113
|
+
await assemblyRegistry.sync();
|
|
114
|
+
const assemblyEngine = new AssemblyEngine(
|
|
115
|
+
this.logger,
|
|
116
|
+
assemblyRegistry,
|
|
117
|
+
this._actionRegistry,
|
|
118
|
+
this._blockLoader
|
|
119
|
+
);
|
|
120
|
+
return assemblyEngine.loadAndResolveAssembly(topicId);
|
|
73
121
|
}
|
|
74
122
|
/**
|
|
75
|
-
* Get
|
|
123
|
+
* Get assembly state by topic ID (without resolving references)
|
|
76
124
|
*/
|
|
77
|
-
async
|
|
78
|
-
|
|
79
|
-
|
|
125
|
+
async getAssemblyState(topicId) {
|
|
126
|
+
if (!this._assemblyRegistry) {
|
|
127
|
+
throw new Error("Assembly registry not initialized");
|
|
128
|
+
}
|
|
129
|
+
return this._assemblyRegistry.getAssemblyState(topicId);
|
|
80
130
|
}
|
|
81
131
|
/**
|
|
82
|
-
*
|
|
132
|
+
* Ensure assembly engine is initialized
|
|
83
133
|
*/
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
134
|
+
ensureAssemblyEngine() {
|
|
135
|
+
if (!this._assemblyEngine) {
|
|
136
|
+
if (!this._actionRegistry || !this._blockLoader || !this._assemblyRegistry) {
|
|
137
|
+
throw new Error(
|
|
138
|
+
"Registries must be initialized before assembly engine"
|
|
139
|
+
);
|
|
140
|
+
}
|
|
141
|
+
this._assemblyEngine = new AssemblyEngine(
|
|
142
|
+
this.logger,
|
|
143
|
+
this._assemblyRegistry,
|
|
144
|
+
this._actionRegistry,
|
|
145
|
+
this._blockLoader
|
|
146
|
+
);
|
|
147
|
+
}
|
|
87
148
|
}
|
|
88
149
|
/**
|
|
89
|
-
*
|
|
150
|
+
* Register a new HashLink in the global directory
|
|
90
151
|
*/
|
|
91
|
-
async
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
152
|
+
async registerHashLink(registration) {
|
|
153
|
+
if (!this._hashLinksRegistry) {
|
|
154
|
+
throw new Error("HashLinks registry not initialized");
|
|
155
|
+
}
|
|
156
|
+
const id = await this._hashLinksRegistry.register(registration);
|
|
157
|
+
return { id };
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Search HashLinks by tags
|
|
161
|
+
*/
|
|
162
|
+
async searchHashLinksByTags(tags) {
|
|
163
|
+
if (!this._hashLinksRegistry) {
|
|
164
|
+
throw new Error("HashLinks registry not initialized");
|
|
165
|
+
}
|
|
166
|
+
return this._hashLinksRegistry.searchByTags(tags);
|
|
101
167
|
}
|
|
102
168
|
/**
|
|
103
|
-
*
|
|
169
|
+
* Search HashLinks by name
|
|
104
170
|
*/
|
|
105
|
-
async
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
if (hashLink.tags) {
|
|
111
|
-
hashLink.tags.forEach((tag) => tags.add(tag));
|
|
112
|
-
}
|
|
113
|
-
});
|
|
114
|
-
return Array.from(tags).sort();
|
|
171
|
+
async searchHashLinksByName(searchTerm) {
|
|
172
|
+
if (!this._hashLinksRegistry) {
|
|
173
|
+
throw new Error("HashLinks registry not initialized");
|
|
174
|
+
}
|
|
175
|
+
return this._hashLinksRegistry.searchByName(searchTerm);
|
|
115
176
|
}
|
|
116
177
|
/**
|
|
117
|
-
*
|
|
178
|
+
* Get featured HashLinks
|
|
118
179
|
*/
|
|
119
|
-
|
|
120
|
-
this.
|
|
121
|
-
|
|
122
|
-
if (!validation.isValid) {
|
|
123
|
-
throw new Error(
|
|
124
|
-
`HashLinks validation failed: ${validation.errors.join(", ")}`
|
|
125
|
-
);
|
|
180
|
+
async getFeaturedHashLinks() {
|
|
181
|
+
if (!this._hashLinksRegistry) {
|
|
182
|
+
throw new Error("HashLinks registry not initialized");
|
|
126
183
|
}
|
|
127
|
-
|
|
128
|
-
|
|
184
|
+
return this._hashLinksRegistry.getFeatured();
|
|
185
|
+
}
|
|
186
|
+
/**
|
|
187
|
+
* Get HashLinks by category
|
|
188
|
+
*/
|
|
189
|
+
async getHashLinksByCategory(category) {
|
|
190
|
+
if (!this._hashLinksRegistry) {
|
|
191
|
+
throw new Error("HashLinks registry not initialized");
|
|
129
192
|
}
|
|
130
|
-
|
|
131
|
-
|
|
193
|
+
return this._hashLinksRegistry.getByCategory(category);
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Sync all registries with the network
|
|
197
|
+
*/
|
|
198
|
+
async syncRegistries() {
|
|
199
|
+
const promises = [];
|
|
200
|
+
if (this._actionRegistry) {
|
|
201
|
+
promises.push(this._actionRegistry.sync());
|
|
132
202
|
}
|
|
133
|
-
if (
|
|
134
|
-
|
|
203
|
+
if (this._assemblyRegistry) {
|
|
204
|
+
promises.push(this._assemblyRegistry.sync());
|
|
135
205
|
}
|
|
136
|
-
if (
|
|
137
|
-
|
|
206
|
+
if (this._hashLinksRegistry) {
|
|
207
|
+
promises.push(this._hashLinksRegistry.sync());
|
|
138
208
|
}
|
|
209
|
+
await Promise.all(promises);
|
|
139
210
|
}
|
|
140
211
|
/**
|
|
141
|
-
* Get registry
|
|
212
|
+
* Get registry topic IDs
|
|
142
213
|
*/
|
|
143
|
-
|
|
144
|
-
const baseStats = super.getStats();
|
|
145
|
-
const entries = Array.from(this.entries.values());
|
|
146
|
-
const categories = /* @__PURE__ */ new Set();
|
|
147
|
-
const tags = /* @__PURE__ */ new Set();
|
|
148
|
-
let featuredCount = 0;
|
|
149
|
-
entries.forEach((entry) => {
|
|
150
|
-
const hashLink = entry.data;
|
|
151
|
-
if (hashLink.category) {
|
|
152
|
-
categories.add(hashLink.category);
|
|
153
|
-
}
|
|
154
|
-
if (hashLink.tags) {
|
|
155
|
-
hashLink.tags.forEach((tag) => tags.add(tag));
|
|
156
|
-
}
|
|
157
|
-
if (hashLink.featured) {
|
|
158
|
-
featuredCount++;
|
|
159
|
-
}
|
|
160
|
-
});
|
|
214
|
+
getRegistryTopicIds() {
|
|
161
215
|
return {
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
featuredCount
|
|
216
|
+
action: this.actionRegistryTopicId,
|
|
217
|
+
assembly: this._assemblyRegistryTopicId,
|
|
218
|
+
hashlinks: this._hashLinksRegistryTopicId
|
|
166
219
|
};
|
|
167
220
|
}
|
|
221
|
+
/**
|
|
222
|
+
* Clear all registry caches
|
|
223
|
+
*/
|
|
224
|
+
clearCaches() {
|
|
225
|
+
this._actionRegistry?.clearCache();
|
|
226
|
+
this._blockLoader?.clearCache();
|
|
227
|
+
this._assemblyRegistry?.clearCache();
|
|
228
|
+
this._hashLinksRegistry?.clearCache();
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Get the action registry instance
|
|
232
|
+
*/
|
|
233
|
+
get actionRegistry() {
|
|
234
|
+
return this._actionRegistry;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Get the block loader instance
|
|
238
|
+
*/
|
|
239
|
+
get blockLoader() {
|
|
240
|
+
return this._blockLoader;
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Get the assembly registry instance
|
|
244
|
+
*/
|
|
245
|
+
get assemblyRegistry() {
|
|
246
|
+
return this._assemblyRegistry;
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Get the HashLinks registry instance
|
|
250
|
+
*/
|
|
251
|
+
get hashLinksRegistry() {
|
|
252
|
+
return this._hashLinksRegistry;
|
|
253
|
+
}
|
|
168
254
|
}
|
|
169
255
|
export {
|
|
170
|
-
|
|
256
|
+
HCS12BaseClient
|
|
171
257
|
};
|
|
172
258
|
//# sourceMappingURL=standards-sdk.es35.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es35.js","sources":["../../src/hcs-12/registries/hashlinks-registry.ts"],"sourcesContent":["/**\n * HashLinks Registry for HCS-12\n *\n * Manages the global directory of HashLinks assemblies.\n * This registry provides discovery and cataloging of available HashLinks.\n */\n\nimport { ILogger } from '../../utils/logger';\nimport { BaseRegistry } from './base-registry';\nimport {\n RegistryType,\n HashLinksRegistration,\n AssemblyRegistryEntry,\n} from '../types';\nimport { hashLinksRegistrationSchema } from '../validation/schemas';\nimport { validateWithSchema } from '../validation';\nimport type { NetworkType } from '../../utils/types';\nimport type { HCS12Client } from '../sdk';\nimport type { HCS12BrowserClient } from '../browser';\n\n/**\n * Registry for managing HashLinks directory entries\n */\nexport class HashLinksRegistry extends BaseRegistry {\n constructor(\n networkType: NetworkType,\n logger: ILogger,\n topicId?: string,\n client?: HCS12Client | HCS12BrowserClient,\n ) {\n super(networkType, logger, RegistryType.HASHLINKS, topicId, client);\n }\n\n /**\n * Register a new HashLink in the global directory\n */\n async register(data: HashLinksRegistration): Promise<string> {\n this.validateRegistration(data);\n\n const id = `${this.topicId || 'local'}_${Date.now()}_${Math.random().toString(36).substring(2, 9)}`;\n const entry: AssemblyRegistryEntry = {\n id,\n sequenceNumber: 0,\n timestamp: new Date().toISOString(),\n submitter:\n this.client && 'getHashConnect' in this.client\n ? 'browser'\n : this.client?.getOperatorAccountId() || 'local',\n data,\n };\n\n this.entries.set(id, entry);\n\n if (this.client && this.topicId) {\n try {\n const message = JSON.stringify(data);\n const result = await this.client.submitMessage(this.topicId, message);\n\n if (result.sequenceNumber) {\n entry.sequenceNumber = result.sequenceNumber;\n entry.id = result.sequenceNumber.toString();\n this.entries.delete(id);\n this.entries.set(entry.id, entry);\n }\n\n this.logger.info('HashLink submitted to HCS', {\n transactionId: result.transactionId,\n sequenceNumber: result.sequenceNumber,\n topicId: this.topicId,\n });\n\n return entry.id;\n } catch (error) {\n this.logger.error('Failed to submit HashLink to HCS', { error });\n\n this.entries.delete(id);\n throw error;\n }\n }\n\n this.logger.info('HashLink registered in directory', {\n id,\n name: data.name,\n assemblyTopicId: data.t_id,\n tags: data.tags,\n });\n\n return id;\n }\n\n /**\n * Search HashLinks by tags\n */\n async searchByTags(tags: string[]): Promise<HashLinksRegistration[]> {\n const entries = await this.listEntries();\n\n return entries\n .map(entry => entry.data as HashLinksRegistration)\n .filter(hashLink => {\n if (!hashLink.tags || hashLink.tags.length === 0) {\n return false;\n }\n return tags.some(tag => hashLink.tags?.includes(tag));\n });\n }\n\n /**\n * Search HashLinks by name (partial match)\n */\n async searchByName(searchTerm: string): Promise<HashLinksRegistration[]> {\n const entries = await this.listEntries();\n const lowerSearchTerm = searchTerm.toLowerCase();\n\n return entries\n .map(entry => entry.data as HashLinksRegistration)\n .filter(\n hashLink =>\n hashLink.name.toLowerCase().includes(lowerSearchTerm) ||\n (hashLink.description?.toLowerCase().includes(lowerSearchTerm) ??\n false),\n );\n }\n\n /**\n * Get featured HashLinks\n */\n async getFeatured(): Promise<HashLinksRegistration[]> {\n const entries = await this.listEntries();\n\n return entries\n .map(entry => entry.data as HashLinksRegistration)\n .filter(hashLink => hashLink.featured === true);\n }\n\n /**\n * Get HashLinks by category\n */\n async getByCategory(category: string): Promise<HashLinksRegistration[]> {\n const entries = await this.listEntries();\n\n return entries\n .map(entry => entry.data as HashLinksRegistration)\n .filter(hashLink => hashLink.category === category);\n }\n\n /**\n * Get all unique categories\n */\n async getCategories(): Promise<string[]> {\n const entries = await this.listEntries();\n const categories = new Set<string>();\n\n entries.forEach(entry => {\n const hashLink = entry.data as HashLinksRegistration;\n if (hashLink.category) {\n categories.add(hashLink.category);\n }\n });\n\n return Array.from(categories).sort();\n }\n\n /**\n * Get all unique tags\n */\n async getAllTags(): Promise<string[]> {\n const entries = await this.listEntries();\n const tags = new Set<string>();\n\n entries.forEach(entry => {\n const hashLink = entry.data as HashLinksRegistration;\n if (hashLink.tags) {\n hashLink.tags.forEach(tag => tags.add(tag));\n }\n });\n\n return Array.from(tags).sort();\n }\n\n /**\n * Validate HashLinks registration data\n */\n private validateRegistration(data: HashLinksRegistration): void {\n this.validateBaseRegistration(data);\n\n const validation = validateWithSchema(data, hashLinksRegistrationSchema);\n if (!validation.isValid) {\n throw new Error(\n `HashLinks validation failed: ${validation.errors.join(', ')}`,\n );\n }\n\n if (!data.t_id || !data.t_id.match(/^\\d+\\.\\d+\\.\\d+$/)) {\n throw new Error('Valid assembly topic ID (t_id) is required');\n }\n\n if (data.tags && data.tags.length > 10) {\n throw new Error('Maximum 10 tags allowed');\n }\n\n if (data.name.length > 100) {\n throw new Error('Name must be 100 characters or less');\n }\n\n if (data.description && data.description.length > 500) {\n throw new Error('Description must be 500 characters or less');\n }\n }\n\n /**\n * Get registry statistics with HashLinks-specific metrics\n */\n getStats(): {\n entryCount: number;\n lastSync?: string;\n topicId?: string;\n registryType: string;\n categories: number;\n totalTags: number;\n featuredCount: number;\n } {\n const baseStats = super.getStats();\n const entries = Array.from(this.entries.values());\n\n const categories = new Set<string>();\n const tags = new Set<string>();\n let featuredCount = 0;\n\n entries.forEach(entry => {\n const hashLink = entry.data as HashLinksRegistration;\n if (hashLink.category) {\n categories.add(hashLink.category);\n }\n if (hashLink.tags) {\n hashLink.tags.forEach(tag => tags.add(tag));\n }\n if (hashLink.featured) {\n featuredCount++;\n }\n });\n\n return {\n ...baseStats,\n categories: categories.size,\n totalTags: tags.size,\n featuredCount,\n };\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"standards-sdk.es35.js","sources":["../../src/hcs-12/base-client.ts"],"sourcesContent":["import { ILogger, Logger, LogLevel } from '../utils/logger';\nimport { NetworkType } from '../utils/types';\nimport { HederaMirrorNode, MirrorNodeConfig } from '../services';\nimport { PrivateKey, PublicKey } from '@hashgraph/sdk';\nimport {\n ActionRegistry,\n BlockLoader,\n AssemblyRegistry,\n HashLinksRegistry,\n} from './registries';\nimport {\n ActionRegistration,\n BlockDefinition,\n AssemblyRegistration,\n HashLinksRegistration,\n RegistryType,\n AssemblyState,\n} from './types';\nimport { AssemblyEngine, Assembly } from './assembly';\n\n/**\n * Configuration for HCS-12 client\n */\nexport interface HCS12Config {\n /** The Hedera network to connect to */\n network: NetworkType;\n /** Custom logger instance (if not provided, one will be created) */\n logger?: ILogger;\n /** Log level for the client (ignored if logger is provided) */\n logLevel?: LogLevel;\n /** Whether to pretty print logs (ignored if logger is provided) */\n prettyPrint?: boolean;\n /** Custom mirror node configuration */\n mirrorNode?: MirrorNodeConfig;\n /** Whether to run logger in silent mode (ignored if logger is provided) */\n silent?: boolean;\n /** The key type to use for the operator */\n keyType?: 'ed25519' | 'ecdsa';\n}\n\n/**\n * Abstract base class for HCS-12 HashLinks clients\n */\nexport abstract class HCS12BaseClient {\n protected network: NetworkType;\n protected logger: ILogger;\n public mirrorNode: HederaMirrorNode;\n\n protected _actionRegistry?: ActionRegistry;\n protected _blockLoader?: BlockLoader;\n protected _assemblyRegistry?: AssemblyRegistry;\n protected _hashLinksRegistry?: HashLinksRegistry;\n protected _assemblyEngine?: AssemblyEngine;\n\n protected actionRegistryTopicId?: string;\n protected _assemblyRegistryTopicId?: string;\n protected _hashLinksRegistryTopicId?: string;\n\n constructor(config: HCS12Config) {\n this.network = config.network;\n\n this.logger =\n config.logger ||\n Logger.getInstance({\n level: config.logLevel || 'info',\n module: 'HCS12-BaseClient',\n prettyPrint: config.prettyPrint,\n silent: config.silent,\n });\n\n this.mirrorNode = new HederaMirrorNode(\n config.network,\n this.logger,\n config.mirrorNode,\n );\n }\n\n /**\n * Initialize registries with optional existing topic IDs\n */\n protected initializeRegistries(topicIds?: {\n action?: string;\n assembly?: string;\n hashlinks?: string;\n }): void {\n this.actionRegistryTopicId = topicIds?.action;\n this._assemblyRegistryTopicId = topicIds?.assembly;\n this._hashLinksRegistryTopicId = topicIds?.hashlinks;\n }\n\n /**\n * Create a new HCS topic for a registry\n */\n abstract createRegistryTopic(\n registryType: RegistryType,\n adminKey?: boolean | PublicKey,\n submitKey?: boolean | PublicKey,\n ): Promise<string>;\n\n /**\n * Submit a message to an HCS topic\n */\n abstract submitMessage(\n topicId: string,\n message: string,\n submitKey?: PrivateKey,\n ): Promise<{ transactionId: string; sequenceNumber?: number }>;\n\n /**\n * Register a new assembly in the assembly registry\n */\n async registerAssembly(\n registration: AssemblyRegistration,\n ): Promise<{ id: string; transactionId?: string }> {\n if (!this._assemblyRegistry) {\n throw new Error('Assembly registry not initialized');\n }\n\n const id = await this._assemblyRegistry.register(registration);\n return { id };\n }\n\n /**\n * Get action by hash\n */\n async getAction(hash: string): Promise<ActionRegistration | null> {\n if (!this._actionRegistry) {\n throw new Error('Action registry not initialized');\n }\n\n return this._actionRegistry.getAction(hash);\n }\n\n /**\n * Load block from HCS-1\n */\n async loadBlock(blockTopicId: string): Promise<{\n definition: BlockDefinition;\n template: string;\n }> {\n if (!this._blockLoader) {\n this._blockLoader = new BlockLoader(\n this.network,\n this.logger,\n this as any,\n );\n }\n\n return this._blockLoader.loadBlock(blockTopicId);\n }\n\n /**\n * Get assembly by name and version\n */\n async getAssembly(\n name: string,\n version: string,\n ): Promise<AssemblyState | null> {\n if (!this._assemblyRegistry) {\n throw new Error('Assembly registry not initialized');\n }\n\n const entries = await this._assemblyRegistry.listEntries();\n for (const entry of entries) {\n const state = await this._assemblyRegistry.getAssemblyState(entry.id);\n if (state && state.name === name && state.version === version) {\n return state;\n }\n }\n return null;\n }\n\n /**\n * Load and resolve a complete assembly by topic ID\n */\n async loadAssembly(topicId: string): Promise<Assembly> {\n if (this._actionRegistry) {\n this.logger.info('Syncing action registry before loading assembly');\n await this._actionRegistry.sync();\n }\n\n const assemblyRegistry = new AssemblyRegistry(\n this.network,\n this.logger,\n topicId,\n this as any,\n );\n\n await assemblyRegistry.sync();\n\n const assemblyEngine = new AssemblyEngine(\n this.logger,\n assemblyRegistry,\n this._actionRegistry!,\n this._blockLoader!,\n );\n\n return assemblyEngine.loadAndResolveAssembly(topicId);\n }\n\n /**\n * Get assembly state by topic ID (without resolving references)\n */\n async getAssemblyState(topicId: string): Promise<AssemblyState | null> {\n if (!this._assemblyRegistry) {\n throw new Error('Assembly registry not initialized');\n }\n return this._assemblyRegistry.getAssemblyState(topicId);\n }\n\n /**\n * Ensure assembly engine is initialized\n */\n protected ensureAssemblyEngine(): void {\n if (!this._assemblyEngine) {\n if (\n !this._actionRegistry ||\n !this._blockLoader ||\n !this._assemblyRegistry\n ) {\n throw new Error(\n 'Registries must be initialized before assembly engine',\n );\n }\n this._assemblyEngine = new AssemblyEngine(\n this.logger,\n this._assemblyRegistry,\n this._actionRegistry,\n this._blockLoader,\n );\n }\n }\n\n /**\n * Register a new HashLink in the global directory\n */\n async registerHashLink(\n registration: HashLinksRegistration,\n ): Promise<{ id: string; transactionId?: string }> {\n if (!this._hashLinksRegistry) {\n throw new Error('HashLinks registry not initialized');\n }\n\n const id = await this._hashLinksRegistry.register(registration);\n return { id };\n }\n\n /**\n * Search HashLinks by tags\n */\n async searchHashLinksByTags(\n tags: string[],\n ): Promise<HashLinksRegistration[]> {\n if (!this._hashLinksRegistry) {\n throw new Error('HashLinks registry not initialized');\n }\n\n return this._hashLinksRegistry.searchByTags(tags);\n }\n\n /**\n * Search HashLinks by name\n */\n async searchHashLinksByName(\n searchTerm: string,\n ): Promise<HashLinksRegistration[]> {\n if (!this._hashLinksRegistry) {\n throw new Error('HashLinks registry not initialized');\n }\n\n return this._hashLinksRegistry.searchByName(searchTerm);\n }\n\n /**\n * Get featured HashLinks\n */\n async getFeaturedHashLinks(): Promise<HashLinksRegistration[]> {\n if (!this._hashLinksRegistry) {\n throw new Error('HashLinks registry not initialized');\n }\n\n return this._hashLinksRegistry.getFeatured();\n }\n\n /**\n * Get HashLinks by category\n */\n async getHashLinksByCategory(\n category: string,\n ): Promise<HashLinksRegistration[]> {\n if (!this._hashLinksRegistry) {\n throw new Error('HashLinks registry not initialized');\n }\n\n return this._hashLinksRegistry.getByCategory(category);\n }\n\n /**\n * Sync all registries with the network\n */\n async syncRegistries(): Promise<void> {\n const promises: Promise<void>[] = [];\n\n if (this._actionRegistry) {\n promises.push(this._actionRegistry.sync());\n }\n if (this._assemblyRegistry) {\n promises.push(this._assemblyRegistry.sync());\n }\n if (this._hashLinksRegistry) {\n promises.push(this._hashLinksRegistry.sync());\n }\n\n await Promise.all(promises);\n }\n\n /**\n * Get registry topic IDs\n */\n getRegistryTopicIds(): {\n action?: string;\n assembly?: string;\n hashlinks?: string;\n } {\n return {\n action: this.actionRegistryTopicId,\n assembly: this._assemblyRegistryTopicId,\n hashlinks: this._hashLinksRegistryTopicId,\n };\n }\n\n /**\n * Clear all registry caches\n */\n clearCaches(): void {\n this._actionRegistry?.clearCache();\n this._blockLoader?.clearCache();\n this._assemblyRegistry?.clearCache();\n this._hashLinksRegistry?.clearCache();\n }\n\n /**\n * Get the action registry instance\n */\n get actionRegistry(): ActionRegistry | undefined {\n return this._actionRegistry;\n }\n\n /**\n * Get the block loader instance\n */\n get blockLoader(): BlockLoader | undefined {\n return this._blockLoader;\n }\n\n /**\n * Get the assembly registry instance\n */\n get assemblyRegistry(): AssemblyRegistry | undefined {\n return this._assemblyRegistry;\n }\n\n /**\n * Get the HashLinks registry instance\n */\n get hashLinksRegistry(): HashLinksRegistry | undefined {\n return this._hashLinksRegistry;\n }\n}\n"],"names":[],"mappings":"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"}
|