@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.es5.js","sources":["../../src/hcs-6/sdk.ts"],"sourcesContent":["import { HCS6BaseClient } from './base-client';\nimport {\n HCS6ClientConfig,\n HCS6CreateHashinalOptions,\n HCS6CreateHashinalResponse,\n HCS6RegisterOptions,\n HCS6RegisterEntryOptions,\n HCS6TopicRegistrationResponse,\n HCS6RegistryOperationResponse,\n HCS6QueryRegistryOptions,\n HCS6TopicRegistry,\n HCS6Message,\n HCS6RegistryType,\n HCS6MintOptions,\n HCS6InscribeAndMintOptions,\n HCS6MintResponse,\n buildHcs6Hrl,\n} from './types';\nimport {\n Client,\n TopicCreateTransaction,\n TopicMessageSubmitTransaction,\n PrivateKey,\n TopicId,\n TransactionReceipt,\n AccountId,\n PublicKey,\n TokenMintTransaction,\n TokenId,\n} from '@hashgraph/sdk';\nimport { NetworkType } from '../utils/types';\nimport { buildHcs6CreateRegistryTx } from './tx';\nimport {\n NodeOperatorResolver,\n createNodeOperatorContext,\n type NodeOperatorContext,\n} from '../common/node-operator-resolver';\nimport {\n inscribe,\n type InscriptionInput,\n type InscriptionOptions,\n} from '../inscribe/inscriber';\n\nexport interface SDKHCS6ClientConfig extends HCS6ClientConfig {\n operatorId: string | AccountId;\n operatorKey: string | PrivateKey;\n keyType?: 'ed25519' | 'ecdsa';\n}\n\nexport class HCS6Client extends HCS6BaseClient {\n private client: Client;\n private operatorId: AccountId;\n private operatorCtx: NodeOperatorContext;\n\n constructor(config: SDKHCS6ClientConfig) {\n super({\n network: config.network,\n logLevel: config.logLevel,\n silent: config.silent,\n mirrorNodeUrl: config.mirrorNodeUrl,\n logger: config.logger,\n });\n\n this.operatorId =\n typeof config.operatorId === 'string'\n ? AccountId.fromString(config.operatorId)\n : config.operatorId;\n\n this.operatorCtx = createNodeOperatorContext({\n network: this.network,\n operatorId: this.operatorId,\n operatorKey: config.operatorKey,\n keyType: config.keyType,\n mirrorNode: this.mirrorNode,\n logger: this.logger,\n client: this.createClient(config.network),\n });\n this.client = this.operatorCtx.client;\n }\n\n private async ensureInitialized(): Promise<void> {\n await this.operatorCtx.ensureInitialized();\n }\n\n private createClient(network: NetworkType): Client {\n if (network === 'mainnet') {\n return Client.forMainnet();\n } else {\n return Client.forTestnet();\n }\n }\n\n public close(): void {\n this.logger.info('HCS-6 client closed.');\n }\n\n public getKeyType(): 'ed25519' | 'ecdsa' {\n return this.operatorCtx.keyType;\n }\n\n public getOperatorKey(): PrivateKey {\n return this.operatorCtx.operatorKey;\n }\n\n public async submitMessage(\n topicId: string,\n payload: HCS6Message,\n ): Promise<TransactionReceipt> {\n return this.submitMessageWithKey(topicId, payload, undefined);\n }\n\n public async submitMessageWithKey(\n topicId: string,\n payload: HCS6Message,\n submitKey?: string | PrivateKey,\n ): Promise<TransactionReceipt> {\n const { valid, errors } = this.validateMessage(payload);\n if (!valid) {\n throw new Error(`Invalid HCS-6 message: ${errors.join(', ')}`);\n }\n\n let tx = new TopicMessageSubmitTransaction()\n .setTopicId(TopicId.fromString(topicId))\n .setMessage(JSON.stringify(payload));\n\n if (!submitKey) {\n const txResponse = await tx.execute(this.client);\n return await txResponse.getReceipt(this.client);\n }\n const privateKey =\n typeof submitKey === 'string'\n ? PrivateKey.fromString(submitKey)\n : submitKey;\n const frozen = await tx.freezeWith(this.client);\n await frozen.sign(privateKey);\n const resp = await frozen.execute(this.client);\n return await resp.getReceipt(this.client);\n }\n\n public async registerEntryWithKey(\n registryTopicId: string,\n options: HCS6RegisterEntryOptions,\n submitKey?: string | PrivateKey,\n ): Promise<HCS6RegistryOperationResponse> {\n try {\n const payload: HCS6Message = this.createRegisterMessage(\n options.targetTopicId,\n options.memo,\n );\n const receipt = await this.submitMessageWithKey(\n registryTopicId,\n payload,\n submitKey,\n );\n const sequenceNumber = (\n receipt as TransactionReceipt\n ).topicSequenceNumber?.toNumber();\n return { success: true, receipt, sequenceNumber };\n } catch (error) {\n this.logger.error(`Failed to register HCS-6 entry: ${error}`);\n return { success: false, error: String(error) };\n }\n }\n\n public async createRegistry(\n options: { ttl?: number; submitKey?: string | boolean | PrivateKey } = {},\n ): Promise<HCS6TopicRegistrationResponse> {\n try {\n await this.ensureInitialized();\n const ttl = options.ttl ?? 86400;\n if (!(ttl >= 3600)) {\n throw new Error('TTL must be at least 3600 seconds (1 hour)');\n }\n let submitKeyPublic: PublicKey | undefined;\n let submitKeyPrivate: PrivateKey | undefined;\n if (options.submitKey) {\n if (typeof options.submitKey === 'string') {\n try {\n submitKeyPublic = PublicKey.fromString(options.submitKey);\n } catch {\n const keyBytes = Buffer.from(\n options.submitKey.replace(/^0x/i, ''),\n 'hex',\n );\n submitKeyPublic =\n this.operatorCtx.keyType === 'ed25519'\n ? PublicKey.fromBytesED25519(keyBytes)\n : PublicKey.fromBytesECDSA(keyBytes);\n }\n } else if (typeof options.submitKey === 'boolean') {\n submitKeyPublic = this.operatorCtx.operatorKey.publicKey;\n } else {\n submitKeyPublic = options.submitKey.publicKey;\n submitKeyPrivate = options.submitKey;\n }\n }\n\n let transaction = buildHcs6CreateRegistryTx({\n ttl,\n submitKey: submitKeyPublic,\n adminKey: this.operatorCtx.operatorKey.publicKey,\n operatorPublicKey: this.operatorCtx.operatorKey.publicKey,\n });\n\n const frozenTx = await transaction.freezeWith(this.client);\n if (submitKeyPrivate) {\n await frozenTx.sign(submitKeyPrivate);\n }\n const txResponse = await frozenTx.execute(this.client);\n const receipt = await txResponse.getReceipt(this.client);\n const topicId = receipt.topicId;\n if (!topicId) {\n throw new Error(\n 'Failed to create HCS-6 registry: No topic ID in receipt',\n );\n }\n return {\n success: true,\n topicId: topicId.toString(),\n transactionId: txResponse.transactionId.toString(),\n };\n } catch (error) {\n this.logger.error(`Failed to create HCS-6 registry: ${error}`);\n return {\n success: false,\n error: `Failed to create HCS-6 registry: ${error}`,\n };\n }\n }\n\n public async registerEntry(\n registryTopicId: string,\n options: HCS6RegisterEntryOptions,\n ): Promise<HCS6RegistryOperationResponse> {\n await this.ensureInitialized();\n return this.registerEntryWithKey(registryTopicId, options, undefined);\n }\n\n public async getRegistry(\n topicId: string,\n options: HCS6QueryRegistryOptions = {},\n ): Promise<HCS6TopicRegistry> {\n await this.ensureInitialized();\n const topicInfo = await this.mirrorNode.getTopicInfo(topicId);\n const memo = topicInfo.memo || '';\n const match = memo.match(/^hcs-6:(\\d):(\\d+)$/);\n if (!match) {\n throw new Error(\n `Topic ${topicId} is not an HCS-6 registry (invalid memo format)`,\n );\n }\n const ttl = parseInt(match[2]);\n const regType = parseInt(match[1]) as HCS6RegistryType;\n const messages = await this.mirrorNode.getTopicMessages(topicId, {\n sequenceNumber:\n options.skip && options.skip > 0 ? `gt:${options.skip}` : undefined,\n limit: options.limit ?? 100,\n order: options.order ?? 'asc',\n });\n const entries = messages\n .map(m => {\n try {\n const decoded = m as unknown as HCS6Message & {\n consensus_timestamp?: string;\n sequence_number: number;\n payer?: string;\n };\n const { valid } = this.validateMessage(\n decoded as unknown as HCS6Message,\n );\n if (!valid) return null;\n return {\n topicId,\n sequence: decoded.sequence_number,\n timestamp: decoded.consensus_timestamp || '',\n payer: decoded.payer || '',\n message: decoded as unknown as HCS6Message,\n consensus_timestamp: decoded.consensus_timestamp || '',\n registry_type: regType,\n };\n } catch {\n return null;\n }\n })\n .filter(\n (\n v,\n ): v is {\n topicId: string;\n sequence: number;\n timestamp: string;\n payer: string;\n message: HCS6Message;\n consensus_timestamp: string;\n registry_type: HCS6RegistryType;\n } => Boolean(v),\n );\n const latest = entries.length > 0 ? entries[entries.length - 1] : undefined;\n return {\n topicId,\n registryType: regType,\n ttl,\n entries,\n latestEntry: latest,\n };\n }\n\n public async mint(options: HCS6MintOptions): Promise<HCS6MintResponse> {\n try {\n await this.ensureInitialized();\n if (!options.metadataTopicId) {\n return {\n success: false,\n error: 'metadataTopicId is required for mint()',\n };\n }\n const metadata = buildHcs6Hrl(options.metadataTopicId);\n let tx = new TokenMintTransaction()\n .setTokenId(TokenId.fromString(options.tokenId))\n .setMetadata([Buffer.from(metadata)]);\n const frozen = await tx.freezeWith(this.client);\n\n if (options.supplyKey) {\n const resolver = new NodeOperatorResolver({\n mirrorNode: this.mirrorNode,\n logger: this.logger,\n });\n const privKey =\n typeof options.supplyKey === 'string'\n ? await resolver.resolveSupplyKey(\n options.tokenId,\n options.supplyKey,\n this.operatorCtx.keyType,\n )\n : options.supplyKey;\n await frozen.sign(privKey);\n }\n\n const resp = await frozen.execute(this.client);\n const receipt = await resp.getReceipt(this.client);\n const serial =\n receipt.serials && receipt.serials[0]\n ? Number(receipt.serials[0].toString())\n : undefined;\n return {\n success: true,\n serialNumber: serial,\n transactionId: resp.transactionId?.toString?.(),\n metadata,\n };\n } catch (e) {\n return { success: false, error: String(e) };\n }\n }\n\n public async inscribeAndMint(\n options: HCS6InscribeAndMintOptions,\n ): Promise<HCS6MintResponse> {\n try {\n await this.ensureInitialized();\n const inscribeOptions: InscriptionOptions = {\n ...(options.inscriptionOptions as InscriptionOptions | undefined),\n mode: 'hashinal',\n waitForConfirmation: true,\n };\n const result = await inscribe(\n options.inscriptionInput as InscriptionInput,\n {\n accountId: this.operatorId.toString(),\n privateKey: this.operatorCtx.operatorKey,\n network: this.network,\n },\n inscribeOptions,\n );\n if (!result.confirmed || !result.inscription) {\n return { success: false, error: 'Failed to inscribe content' };\n }\n const topicId =\n result.inscription.jsonTopicId || result.inscription.topic_id;\n if (!topicId) {\n return { success: false, error: 'No topic ID from inscription' };\n }\n return await this.mint({\n tokenId: options.tokenId,\n metadataTopicId: topicId,\n supplyKey: options.supplyKey,\n memo: options.memo,\n });\n } catch (e) {\n return { success: false, error: String(e) };\n }\n }\n\n public async createHashinal(\n options: HCS6CreateHashinalOptions,\n ): Promise<HCS6CreateHashinalResponse> {\n try {\n await this.ensureInitialized();\n\n let registryTopicId: string;\n let registryTransactionId: string | undefined;\n\n if (options.registryTopicId) {\n registryTopicId = options.registryTopicId;\n const topicInfo = await this.mirrorNode.getTopicInfo(registryTopicId);\n const memo = topicInfo.memo || '';\n if (!/^hcs-6:\\d:\\d+$/.test(memo)) {\n throw new Error(\n `Topic ${registryTopicId} is not a valid HCS-6 registry`,\n );\n }\n } else {\n const res = await this.createRegistry({\n ttl: options.ttl,\n submitKey: true,\n });\n if (!res.success || !res.topicId) {\n throw new Error(res.error || 'Failed to create HCS-6 registry');\n }\n registryTopicId = res.topicId;\n registryTransactionId = res.transactionId;\n }\n\n const inscriptionBuffer = Buffer.from(JSON.stringify(options.metadata));\n const inscribeOptions: InscriptionOptions = {\n ...(options.inscriptionOptions as InscriptionOptions | undefined),\n mode: 'hashinal',\n metadata: options.metadata,\n waitForConfirmation: true,\n };\n\n const result = await inscribe(\n {\n type: 'buffer',\n buffer: inscriptionBuffer,\n fileName: 'metadata.json',\n mimeType: 'application/json',\n },\n {\n accountId: this.operatorId.toString(),\n privateKey: this.operatorCtx.operatorKey,\n network: this.network,\n },\n inscribeOptions,\n );\n\n if (!result.confirmed || !result.inscription) {\n throw new Error('Failed to inscribe metadata');\n }\n const topicId =\n result.inscription.jsonTopicId || result.inscription.topic_id;\n if (!topicId) {\n throw new Error('No inscription topic ID available');\n }\n\n const reg = await this.registerEntryWithKey(\n registryTopicId,\n {\n targetTopicId: topicId,\n memo: options.memo || 'Dynamic hashinal registration',\n },\n options.submitKey,\n );\n if (!reg.success) {\n throw new Error(reg.error || 'Failed to register entry');\n }\n\n return {\n success: true,\n registryTopicId,\n inscriptionTopicId: topicId,\n transactionId: registryTransactionId,\n };\n } catch (e) {\n return { success: false, error: String(e) };\n }\n }\n\n public async register(\n options: HCS6RegisterOptions,\n ): Promise<HCS6CreateHashinalResponse> {\n try {\n await this.ensureInitialized();\n\n let registryTopicId: string;\n let registryTransactionId: string | undefined;\n\n if (options.registryTopicId) {\n registryTopicId = options.registryTopicId;\n const topicInfo = await this.mirrorNode.getTopicInfo(registryTopicId);\n const memo = topicInfo.memo || '';\n if (!/^hcs-6:\\d:\\d+$/.test(memo)) {\n throw new Error(\n `Topic ${registryTopicId} is not a valid HCS-6 registry`,\n );\n }\n } else {\n const res = await this.createRegistry({\n ttl: options.ttl,\n submitKey: true,\n });\n if (!res.success || !res.topicId) {\n throw new Error(res.error || 'Failed to create HCS-6 registry');\n }\n registryTopicId = res.topicId;\n registryTransactionId = res.transactionId;\n }\n\n let inscriptionInput: InscriptionInput;\n if (options.data?.base64) {\n const buffer = Buffer.from(options.data.base64, 'base64');\n inscriptionInput = {\n type: 'buffer',\n buffer,\n fileName: `data.${options.data.mimeType?.split('/')[1] || 'bin'}`,\n mimeType: options.data.mimeType || 'application/octet-stream',\n };\n } else if (options.data?.url) {\n inscriptionInput = { type: 'url', url: options.data.url };\n } else {\n inscriptionInput = {\n type: 'buffer',\n buffer: Buffer.from(JSON.stringify(options.metadata)),\n fileName: 'metadata.json',\n mimeType: 'application/json',\n };\n }\n\n const inscribeOptions: InscriptionOptions = {\n ...(options.inscriptionOptions as InscriptionOptions | undefined),\n mode: 'hashinal',\n metadata: options.metadata,\n waitForConfirmation: true,\n };\n\n const result = await inscribe(\n inscriptionInput,\n {\n accountId: this.operatorId.toString(),\n privateKey: this.operatorCtx.operatorKey,\n network: this.network,\n },\n inscribeOptions,\n );\n if (!result.confirmed || !result.inscription) {\n throw new Error('Failed to inscribe data');\n }\n const topicId =\n result.inscription.jsonTopicId || result.inscription.topic_id;\n if (!topicId) {\n throw new Error('No inscription topic ID available');\n }\n\n const reg = await this.registerEntryWithKey(\n registryTopicId,\n {\n targetTopicId: topicId,\n memo: options.memo || 'Dynamic hashinal registration',\n },\n options.submitKey,\n );\n if (!reg.success) {\n throw new Error(reg.error || 'Failed to register entry');\n }\n\n return {\n success: true,\n registryTopicId,\n inscriptionTopicId: topicId,\n transactionId: registryTransactionId,\n };\n } catch (e) {\n return { success: false, error: String(e) };\n }\n }\n}\n"],"names":[],"mappings":";;;;;;AAiDO,MAAM,mBAAmB,eAAe;AAAA,EAK7C,YAAY,QAA6B;AACvC,UAAM;AAAA,MACJ,SAAS,OAAO;AAAA,MAChB,UAAU,OAAO;AAAA,MACjB,QAAQ,OAAO;AAAA,MACf,eAAe,OAAO;AAAA,MACtB,QAAQ,OAAO;AAAA,IAAA,CAChB;AAED,SAAK,aACH,OAAO,OAAO,eAAe,WACzB,UAAU,WAAW,OAAO,UAAU,IACtC,OAAO;AAEb,SAAK,cAAc,0BAA0B;AAAA,MAC3C,SAAS,KAAK;AAAA,MACd,YAAY,KAAK;AAAA,MACjB,aAAa,OAAO;AAAA,MACpB,SAAS,OAAO;AAAA,MAChB,YAAY,KAAK;AAAA,MACjB,QAAQ,KAAK;AAAA,MACb,QAAQ,KAAK,aAAa,OAAO,OAAO;AAAA,IAAA,CACzC;AACD,SAAK,SAAS,KAAK,YAAY;AAAA,EACjC;AAAA,EAEA,MAAc,oBAAmC;AAC/C,UAAM,KAAK,YAAY,kBAAA;AAAA,EACzB;AAAA,EAEQ,aAAa,SAA8B;AACjD,QAAI,YAAY,WAAW;AACzB,aAAO,OAAO,WAAA;AAAA,IAChB,OAAO;AACL,aAAO,OAAO,WAAA;AAAA,IAChB;AAAA,EACF;AAAA,EAEO,QAAc;AACnB,SAAK,OAAO,KAAK,sBAAsB;AAAA,EACzC;AAAA,EAEO,aAAkC;AACvC,WAAO,KAAK,YAAY;AAAA,EAC1B;AAAA,EAEO,iBAA6B;AAClC,WAAO,KAAK,YAAY;AAAA,EAC1B;AAAA,EAEA,MAAa,cACX,SACA,SAC6B;AAC7B,WAAO,KAAK,qBAAqB,SAAS,SAAS,MAAS;AAAA,EAC9D;AAAA,EAEA,MAAa,qBACX,SACA,SACA,WAC6B;AAC7B,UAAM,EAAE,OAAO,OAAA,IAAW,KAAK,gBAAgB,OAAO;AACtD,QAAI,CAAC,OAAO;AACV,YAAM,IAAI,MAAM,0BAA0B,OAAO,KAAK,IAAI,CAAC,EAAE;AAAA,IAC/D;AAEA,QAAI,KAAK,IAAI,gCACV,WAAW,QAAQ,WAAW,OAAO,CAAC,EACtC,WAAW,KAAK,UAAU,OAAO,CAAC;AAErC,QAAI,CAAC,WAAW;AACd,YAAM,aAAa,MAAM,GAAG,QAAQ,KAAK,MAAM;AAC/C,aAAO,MAAM,WAAW,WAAW,KAAK,MAAM;AAAA,IAChD;AACA,UAAM,aACJ,OAAO,cAAc,WACjB,WAAW,WAAW,SAAS,IAC/B;AACN,UAAM,SAAS,MAAM,GAAG,WAAW,KAAK,MAAM;AAC9C,UAAM,OAAO,KAAK,UAAU;AAC5B,UAAM,OAAO,MAAM,OAAO,QAAQ,KAAK,MAAM;AAC7C,WAAO,MAAM,KAAK,WAAW,KAAK,MAAM;AAAA,EAC1C;AAAA,EAEA,MAAa,qBACX,iBACA,SACA,WACwC;AACxC,QAAI;AACF,YAAM,UAAuB,KAAK;AAAA,QAChC,QAAQ;AAAA,QACR,QAAQ;AAAA,MAAA;AAEV,YAAM,UAAU,MAAM,KAAK;AAAA,QACzB;AAAA,QACA;AAAA,QACA;AAAA,MAAA;AAEF,YAAM,iBACJ,QACA,qBAAqB,SAAA;AACvB,aAAO,EAAE,SAAS,MAAM,SAAS,eAAA;AAAA,IACnC,SAAS,OAAO;AACd,WAAK,OAAO,MAAM,mCAAmC,KAAK,EAAE;AAC5D,aAAO,EAAE,SAAS,OAAO,OAAO,OAAO,KAAK,EAAA;AAAA,IAC9C;AAAA,EACF;AAAA,EAEA,MAAa,eACX,UAAuE,IAC/B;AACxC,QAAI;AACF,YAAM,KAAK,kBAAA;AACX,YAAM,MAAM,QAAQ,OAAO;AAC3B,UAAI,EAAE,OAAO,OAAO;AAClB,cAAM,IAAI,MAAM,4CAA4C;AAAA,MAC9D;AACA,UAAI;AACJ,UAAI;AACJ,UAAI,QAAQ,WAAW;AACrB,YAAI,OAAO,QAAQ,cAAc,UAAU;AACzC,cAAI;AACF,8BAAkB,UAAU,WAAW,QAAQ,SAAS;AAAA,UAC1D,QAAQ;AACN,kBAAM,WAAW,OAAO;AAAA,cACtB,QAAQ,UAAU,QAAQ,QAAQ,EAAE;AAAA,cACpC;AAAA,YAAA;AAEF,8BACE,KAAK,YAAY,YAAY,YACzB,UAAU,iBAAiB,QAAQ,IACnC,UAAU,eAAe,QAAQ;AAAA,UACzC;AAAA,QACF,WAAW,OAAO,QAAQ,cAAc,WAAW;AACjD,4BAAkB,KAAK,YAAY,YAAY;AAAA,QACjD,OAAO;AACL,4BAAkB,QAAQ,UAAU;AACpC,6BAAmB,QAAQ;AAAA,QAC7B;AAAA,MACF;AAEA,UAAI,cAAc,0BAA0B;AAAA,QAC1C;AAAA,QACA,WAAW;AAAA,QACX,UAAU,KAAK,YAAY,YAAY;AAAA,QACvC,mBAAmB,KAAK,YAAY,YAAY;AAAA,MAAA,CACjD;AAED,YAAM,WAAW,MAAM,YAAY,WAAW,KAAK,MAAM;AACzD,UAAI,kBAAkB;AACpB,cAAM,SAAS,KAAK,gBAAgB;AAAA,MACtC;AACA,YAAM,aAAa,MAAM,SAAS,QAAQ,KAAK,MAAM;AACrD,YAAM,UAAU,MAAM,WAAW,WAAW,KAAK,MAAM;AACvD,YAAM,UAAU,QAAQ;AACxB,UAAI,CAAC,SAAS;AACZ,cAAM,IAAI;AAAA,UACR;AAAA,QAAA;AAAA,MAEJ;AACA,aAAO;AAAA,QACL,SAAS;AAAA,QACT,SAAS,QAAQ,SAAA;AAAA,QACjB,eAAe,WAAW,cAAc,SAAA;AAAA,MAAS;AAAA,IAErD,SAAS,OAAO;AACd,WAAK,OAAO,MAAM,oCAAoC,KAAK,EAAE;AAC7D,aAAO;AAAA,QACL,SAAS;AAAA,QACT,OAAO,oCAAoC,KAAK;AAAA,MAAA;AAAA,IAEpD;AAAA,EACF;AAAA,EAEA,MAAa,cACX,iBACA,SACwC;AACxC,UAAM,KAAK,kBAAA;AACX,WAAO,KAAK,qBAAqB,iBAAiB,SAAS,MAAS;AAAA,EACtE;AAAA,EAEA,MAAa,YACX,SACA,UAAoC,IACR;AAC5B,UAAM,KAAK,kBAAA;AACX,UAAM,YAAY,MAAM,KAAK,WAAW,aAAa,OAAO;AAC5D,UAAM,OAAO,UAAU,QAAQ;AAC/B,UAAM,QAAQ,KAAK,MAAM,oBAAoB;AAC7C,QAAI,CAAC,OAAO;AACV,YAAM,IAAI;AAAA,QACR,SAAS,OAAO;AAAA,MAAA;AAAA,IAEpB;AACA,UAAM,MAAM,SAAS,MAAM,CAAC,CAAC;AAC7B,UAAM,UAAU,SAAS,MAAM,CAAC,CAAC;AACjC,UAAM,WAAW,MAAM,KAAK,WAAW,iBAAiB,SAAS;AAAA,MAC/D,gBACE,QAAQ,QAAQ,QAAQ,OAAO,IAAI,MAAM,QAAQ,IAAI,KAAK;AAAA,MAC5D,OAAO,QAAQ,SAAS;AAAA,MACxB,OAAO,QAAQ,SAAS;AAAA,IAAA,CACzB;AACD,UAAM,UAAU,SACb,IAAI,CAAA,MAAK;AACR,UAAI;AACF,cAAM,UAAU;AAKhB,cAAM,EAAE,UAAU,KAAK;AAAA,UACrB;AAAA,QAAA;AAEF,YAAI,CAAC,MAAO,QAAO;AACnB,eAAO;AAAA,UACL;AAAA,UACA,UAAU,QAAQ;AAAA,UAClB,WAAW,QAAQ,uBAAuB;AAAA,UAC1C,OAAO,QAAQ,SAAS;AAAA,UACxB,SAAS;AAAA,UACT,qBAAqB,QAAQ,uBAAuB;AAAA,UACpD,eAAe;AAAA,QAAA;AAAA,MAEnB,QAAQ;AACN,eAAO;AAAA,MACT;AAAA,IACF,CAAC,EACA;AAAA,MACC,CACE,MASG,QAAQ,CAAC;AAAA,IAAA;AAElB,UAAM,SAAS,QAAQ,SAAS,IAAI,QAAQ,QAAQ,SAAS,CAAC,IAAI;AAClE,WAAO;AAAA,MACL;AAAA,MACA,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA,aAAa;AAAA,IAAA;AAAA,EAEjB;AAAA,EAEA,MAAa,KAAK,SAAqD;AACrE,QAAI;AACF,YAAM,KAAK,kBAAA;AACX,UAAI,CAAC,QAAQ,iBAAiB;AAC5B,eAAO;AAAA,UACL,SAAS;AAAA,UACT,OAAO;AAAA,QAAA;AAAA,MAEX;AACA,YAAM,WAAW,aAAa,QAAQ,eAAe;AACrD,UAAI,KAAK,IAAI,qBAAA,EACV,WAAW,QAAQ,WAAW,QAAQ,OAAO,CAAC,EAC9C,YAAY,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC;AACtC,YAAM,SAAS,MAAM,GAAG,WAAW,KAAK,MAAM;AAE9C,UAAI,QAAQ,WAAW;AACrB,cAAM,WAAW,IAAI,qBAAqB;AAAA,UACxC,YAAY,KAAK;AAAA,UACjB,QAAQ,KAAK;AAAA,QAAA,CACd;AACD,cAAM,UACJ,OAAO,QAAQ,cAAc,WACzB,MAAM,SAAS;AAAA,UACb,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR,KAAK,YAAY;AAAA,QAAA,IAEnB,QAAQ;AACd,cAAM,OAAO,KAAK,OAAO;AAAA,MAC3B;AAEA,YAAM,OAAO,MAAM,OAAO,QAAQ,KAAK,MAAM;AAC7C,YAAM,UAAU,MAAM,KAAK,WAAW,KAAK,MAAM;AACjD,YAAM,SACJ,QAAQ,WAAW,QAAQ,QAAQ,CAAC,IAChC,OAAO,QAAQ,QAAQ,CAAC,EAAE,SAAA,CAAU,IACpC;AACN,aAAO;AAAA,QACL,SAAS;AAAA,QACT,cAAc;AAAA,QACd,eAAe,KAAK,eAAe,WAAA;AAAA,QACnC;AAAA,MAAA;AAAA,IAEJ,SAAS,GAAG;AACV,aAAO,EAAE,SAAS,OAAO,OAAO,OAAO,CAAC,EAAA;AAAA,IAC1C;AAAA,EACF;AAAA,EAEA,MAAa,gBACX,SAC2B;AAC3B,QAAI;AACF,YAAM,KAAK,kBAAA;AACX,YAAM,kBAAsC;AAAA,QAC1C,GAAI,QAAQ;AAAA,QACZ,MAAM;AAAA,QACN,qBAAqB;AAAA,MAAA;AAEvB,YAAM,SAAS,MAAM;AAAA,QACnB,QAAQ;AAAA,QACR;AAAA,UACE,WAAW,KAAK,WAAW,SAAA;AAAA,UAC3B,YAAY,KAAK,YAAY;AAAA,UAC7B,SAAS,KAAK;AAAA,QAAA;AAAA,QAEhB;AAAA,MAAA;AAEF,UAAI,CAAC,OAAO,aAAa,CAAC,OAAO,aAAa;AAC5C,eAAO,EAAE,SAAS,OAAO,OAAO,6BAAA;AAAA,MAClC;AACA,YAAM,UACJ,OAAO,YAAY,eAAe,OAAO,YAAY;AACvD,UAAI,CAAC,SAAS;AACZ,eAAO,EAAE,SAAS,OAAO,OAAO,+BAAA;AAAA,MAClC;AACA,aAAO,MAAM,KAAK,KAAK;AAAA,QACrB,SAAS,QAAQ;AAAA,QACjB,iBAAiB;AAAA,QACjB,WAAW,QAAQ;AAAA,QACnB,MAAM,QAAQ;AAAA,MAAA,CACf;AAAA,IACH,SAAS,GAAG;AACV,aAAO,EAAE,SAAS,OAAO,OAAO,OAAO,CAAC,EAAA;AAAA,IAC1C;AAAA,EACF;AAAA,EAEA,MAAa,eACX,SACqC;AACrC,QAAI;AACF,YAAM,KAAK,kBAAA;AAEX,UAAI;AACJ,UAAI;AAEJ,UAAI,QAAQ,iBAAiB;AAC3B,0BAAkB,QAAQ;AAC1B,cAAM,YAAY,MAAM,KAAK,WAAW,aAAa,eAAe;AACpE,cAAM,OAAO,UAAU,QAAQ;AAC/B,YAAI,CAAC,iBAAiB,KAAK,IAAI,GAAG;AAChC,gBAAM,IAAI;AAAA,YACR,SAAS,eAAe;AAAA,UAAA;AAAA,QAE5B;AAAA,MACF,OAAO;AACL,cAAM,MAAM,MAAM,KAAK,eAAe;AAAA,UACpC,KAAK,QAAQ;AAAA,UACb,WAAW;AAAA,QAAA,CACZ;AACD,YAAI,CAAC,IAAI,WAAW,CAAC,IAAI,SAAS;AAChC,gBAAM,IAAI,MAAM,IAAI,SAAS,iCAAiC;AAAA,QAChE;AACA,0BAAkB,IAAI;AACtB,gCAAwB,IAAI;AAAA,MAC9B;AAEA,YAAM,oBAAoB,OAAO,KAAK,KAAK,UAAU,QAAQ,QAAQ,CAAC;AACtE,YAAM,kBAAsC;AAAA,QAC1C,GAAI,QAAQ;AAAA,QACZ,MAAM;AAAA,QACN,UAAU,QAAQ;AAAA,QAClB,qBAAqB;AAAA,MAAA;AAGvB,YAAM,SAAS,MAAM;AAAA,QACnB;AAAA,UACE,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,UAAU;AAAA,UACV,UAAU;AAAA,QAAA;AAAA,QAEZ;AAAA,UACE,WAAW,KAAK,WAAW,SAAA;AAAA,UAC3B,YAAY,KAAK,YAAY;AAAA,UAC7B,SAAS,KAAK;AAAA,QAAA;AAAA,QAEhB;AAAA,MAAA;AAGF,UAAI,CAAC,OAAO,aAAa,CAAC,OAAO,aAAa;AAC5C,cAAM,IAAI,MAAM,6BAA6B;AAAA,MAC/C;AACA,YAAM,UACJ,OAAO,YAAY,eAAe,OAAO,YAAY;AACvD,UAAI,CAAC,SAAS;AACZ,cAAM,IAAI,MAAM,mCAAmC;AAAA,MACrD;AAEA,YAAM,MAAM,MAAM,KAAK;AAAA,QACrB;AAAA,QACA;AAAA,UACE,eAAe;AAAA,UACf,MAAM,QAAQ,QAAQ;AAAA,QAAA;AAAA,QAExB,QAAQ;AAAA,MAAA;AAEV,UAAI,CAAC,IAAI,SAAS;AAChB,cAAM,IAAI,MAAM,IAAI,SAAS,0BAA0B;AAAA,MACzD;AAEA,aAAO;AAAA,QACL,SAAS;AAAA,QACT;AAAA,QACA,oBAAoB;AAAA,QACpB,eAAe;AAAA,MAAA;AAAA,IAEnB,SAAS,GAAG;AACV,aAAO,EAAE,SAAS,OAAO,OAAO,OAAO,CAAC,EAAA;AAAA,IAC1C;AAAA,EACF;AAAA,EAEA,MAAa,SACX,SACqC;AACrC,QAAI;AACF,YAAM,KAAK,kBAAA;AAEX,UAAI;AACJ,UAAI;AAEJ,UAAI,QAAQ,iBAAiB;AAC3B,0BAAkB,QAAQ;AAC1B,cAAM,YAAY,MAAM,KAAK,WAAW,aAAa,eAAe;AACpE,cAAM,OAAO,UAAU,QAAQ;AAC/B,YAAI,CAAC,iBAAiB,KAAK,IAAI,GAAG;AAChC,gBAAM,IAAI;AAAA,YACR,SAAS,eAAe;AAAA,UAAA;AAAA,QAE5B;AAAA,MACF,OAAO;AACL,cAAM,MAAM,MAAM,KAAK,eAAe;AAAA,UACpC,KAAK,QAAQ;AAAA,UACb,WAAW;AAAA,QAAA,CACZ;AACD,YAAI,CAAC,IAAI,WAAW,CAAC,IAAI,SAAS;AAChC,gBAAM,IAAI,MAAM,IAAI,SAAS,iCAAiC;AAAA,QAChE;AACA,0BAAkB,IAAI;AACtB,gCAAwB,IAAI;AAAA,MAC9B;AAEA,UAAI;AACJ,UAAI,QAAQ,MAAM,QAAQ;AACxB,cAAM,SAAS,OAAO,KAAK,QAAQ,KAAK,QAAQ,QAAQ;AACxD,2BAAmB;AAAA,UACjB,MAAM;AAAA,UACN;AAAA,UACA,UAAU,QAAQ,QAAQ,KAAK,UAAU,MAAM,GAAG,EAAE,CAAC,KAAK,KAAK;AAAA,UAC/D,UAAU,QAAQ,KAAK,YAAY;AAAA,QAAA;AAAA,MAEvC,WAAW,QAAQ,MAAM,KAAK;AAC5B,2BAAmB,EAAE,MAAM,OAAO,KAAK,QAAQ,KAAK,IAAA;AAAA,MACtD,OAAO;AACL,2BAAmB;AAAA,UACjB,MAAM;AAAA,UACN,QAAQ,OAAO,KAAK,KAAK,UAAU,QAAQ,QAAQ,CAAC;AAAA,UACpD,UAAU;AAAA,UACV,UAAU;AAAA,QAAA;AAAA,MAEd;AAEA,YAAM,kBAAsC;AAAA,QAC1C,GAAI,QAAQ;AAAA,QACZ,MAAM;AAAA,QACN,UAAU,QAAQ;AAAA,QAClB,qBAAqB;AAAA,MAAA;AAGvB,YAAM,SAAS,MAAM;AAAA,QACnB;AAAA,QACA;AAAA,UACE,WAAW,KAAK,WAAW,SAAA;AAAA,UAC3B,YAAY,KAAK,YAAY;AAAA,UAC7B,SAAS,KAAK;AAAA,QAAA;AAAA,QAEhB;AAAA,MAAA;AAEF,UAAI,CAAC,OAAO,aAAa,CAAC,OAAO,aAAa;AAC5C,cAAM,IAAI,MAAM,yBAAyB;AAAA,MAC3C;AACA,YAAM,UACJ,OAAO,YAAY,eAAe,OAAO,YAAY;AACvD,UAAI,CAAC,SAAS;AACZ,cAAM,IAAI,MAAM,mCAAmC;AAAA,MACrD;AAEA,YAAM,MAAM,MAAM,KAAK;AAAA,QACrB;AAAA,QACA;AAAA,UACE,eAAe;AAAA,UACf,MAAM,QAAQ,QAAQ;AAAA,QAAA;AAAA,QAExB,QAAQ;AAAA,MAAA;AAEV,UAAI,CAAC,IAAI,SAAS;AAChB,cAAM,IAAI,MAAM,IAAI,SAAS,0BAA0B;AAAA,MACzD;AAEA,aAAO;AAAA,QACL,SAAS;AAAA,QACT;AAAA,QACA,oBAAoB;AAAA,QACpB,eAAe;AAAA,MAAA;AAAA,IAEnB,SAAS,GAAG;AACV,aAAO,EAAE,SAAS,OAAO,OAAO,OAAO,CAAC,EAAA;AAAA,IAC1C;AAAA,EACF;AACF;"}
|
|
1
|
+
{"version":3,"file":"standards-sdk.es5.js","sources":["../../src/hcs-6/browser.ts"],"sourcesContent":["import { HCS6BaseClient } from './base-client';\nimport {\n HCS6ClientConfig,\n HCS6Message,\n HCS6TopicRegistrationResponse,\n HCS6RegistryOperationResponse,\n HCS6TopicRegistry,\n HCS6CreateRegistryOptions,\n HCS6RegisterEntryOptions,\n HCS6QueryRegistryOptions,\n HCS6CreateHashinalOptions,\n HCS6CreateHashinalResponse,\n HCS6RegisterOptions,\n HCS6RegistryType,\n} from './types';\nimport type { DAppSigner } from '@hashgraph/hedera-wallet-connect';\nimport { HashinalsWalletConnectSDK } from '@hashgraphonline/hashinal-wc';\nimport { TransactionReceipt } from '@hashgraph/sdk';\nimport {\n inscribeWithSigner,\n type InscriptionInput,\n type InscriptionOptions,\n type InscriptionResponse,\n} from '../inscribe/inscriber';\nimport { getTopicId as getInscriptionTopicId } from '../utils/topic-id-utils';\n\n/**\n * Browser client configuration for HCS-6\n */\nexport interface BrowserHCS6ClientConfig extends HCS6ClientConfig {\n hwc: HashinalsWalletConnectSDK;\n signer?: DAppSigner;\n}\n\n/**\n * Browser client for HCS-6 operations\n * This client is designed to work in browser environments where direct key management is not available\n */\nexport class HCS6BrowserClient extends HCS6BaseClient {\n private hwc: HashinalsWalletConnectSDK;\n private signer?: DAppSigner;\n /**\n * Create a new HCS-6 browser client\n * @param config Client configuration\n */\n constructor(config: BrowserHCS6ClientConfig) {\n super(config);\n this.hwc = config.hwc;\n this.signer = config.signer;\n }\n\n private ensureConnected(): string {\n const info = this.hwc.getAccountInfo();\n const accountId = info?.accountId;\n if (!accountId) {\n throw new Error(\n 'No active wallet connection: wallet integration required to perform write operations',\n );\n }\n return accountId;\n }\n\n public getSigner(): DAppSigner {\n const explicit = this.signer;\n if (explicit) {\n return explicit;\n }\n this.ensureConnected();\n const dc = this.hwc.dAppConnector;\n const signer = dc?.signers?.[0];\n if (!signer) {\n throw new Error('No active wallet signer');\n }\n return signer;\n }\n\n /**\n * Create a new HCS-6 registry topic (for dynamic hashinals)\n * Note: In browser environment, this would typically be called through a wallet or proxy service\n * @param options Registry creation options\n * @returns Promise resolving to the transaction result\n */\n async createRegistry(\n options: HCS6CreateRegistryOptions,\n ): Promise<HCS6TopicRegistrationResponse> {\n try {\n this.ensureConnected();\n const ttl = options?.ttl ?? 86400;\n const memo = this.generateRegistryMemo(ttl);\n const topicId = await this.hwc.createTopic(memo);\n this.logger.info(\n `Created HCS-6 registry topic via wallet: ${topicId} (TTL ${ttl})`,\n );\n return { success: true, topicId };\n } catch (error) {\n this.logger.error(`Failed to create HCS-6 registry: ${error}`);\n return { success: false, error: String(error) };\n }\n }\n\n /**\n * Register a new dynamic hashinal update in the registry\n * Note: In browser environment, this would typically be called through a wallet or proxy service\n * @param registryTopicId The topic ID of the HCS-6 registry\n * @param options Registration options\n * @returns Promise resolving to the operation result\n */\n async registerEntry(\n registryTopicId: string,\n options: HCS6RegisterEntryOptions,\n ): Promise<HCS6RegistryOperationResponse> {\n try {\n const valid = await this.validateHCS6Topic(registryTopicId);\n if (!valid) {\n throw new Error(\n `Topic ${registryTopicId} is not a valid HCS-6 registry`,\n );\n }\n\n const message = this.createRegisterMessage(\n options.targetTopicId,\n options.memo,\n );\n const receipt = await this.submitMessage(registryTopicId, message);\n const seqField = receipt.topicSequenceNumber as\n | number\n | { low: number }\n | undefined;\n const sequenceNumber =\n typeof seqField === 'number' ? seqField : seqField?.low;\n return { success: true, receipt, sequenceNumber };\n } catch (error) {\n this.logger.error(`Failed to register HCS-6 entry: ${error}`);\n return { success: false, error: String(error) };\n }\n }\n\n /**\n * Get the latest entry from a HCS-6 registry (non-indexed, so only latest matters)\n * @param topicId The topic ID of the registry\n * @param options Query options\n * @returns Promise resolving to the registry information\n */\n async getRegistry(\n topicId: string,\n options: HCS6QueryRegistryOptions = {},\n ): Promise<HCS6TopicRegistry> {\n try {\n const topicInfo = await this.mirrorNode.getTopicInfo(topicId);\n this.logger.debug(\n `Retrieved topic info for HCS-6 ${topicId}: ${JSON.stringify(topicInfo)}`,\n );\n\n const memoInfo = this.parseRegistryTypeFromMemo(topicInfo.memo);\n\n if (!memoInfo) {\n throw new Error(\n `Topic ${topicId} is not an HCS-6 registry (invalid memo format)`,\n );\n }\n\n this.logger.debug(\n `Retrieving messages for HCS-6 topic ${topicId} with limit ${options.limit ?? 100}`,\n );\n const rawMessagesResult = (await this.mirrorNode.getTopicMessages(\n topicId,\n {\n sequenceNumber:\n options.skip && options.skip > 0 ? `gt:${options.skip}` : undefined,\n limit: options.limit ?? 100,\n order: options.order ?? 'asc',\n },\n )) as unknown as Array<{\n message?: string;\n sequence_number: number;\n consensus_timestamp: string;\n payer_account_id: string;\n }>;\n\n const rawMessages = options.limit\n ? rawMessagesResult.slice(0, options.limit)\n : rawMessagesResult;\n\n this.logger.debug(\n `Retrieved ${rawMessagesResult.length} messages, using ${rawMessages.length} after applying limit.`,\n );\n\n return this.parseRegistryEntries(\n topicId,\n rawMessages,\n memoInfo.registryType,\n memoInfo.ttl,\n );\n } catch (error) {\n this.logger.error(`Failed to get HCS-6 registry: ${error}`);\n throw error;\n }\n }\n\n /**\n * Submit a message to a HCS-6 topic\n * Note: In browser environment, this would typically be called through a wallet or proxy service\n * @param topicId The topic ID to submit to\n * @param payload The message payload\n * @returns Promise resolving to the transaction receipt\n */\n async submitMessage(\n topicId: string,\n payload: HCS6Message,\n ): Promise<TransactionReceipt> {\n this.ensureConnected();\n const { valid, errors } = this.validateMessage(payload);\n if (!valid) {\n throw new Error(`Invalid HCS-6 message: ${errors.join(', ')}`);\n }\n const receipt = await this.hwc.submitMessageToTopic(\n topicId,\n JSON.stringify(payload),\n );\n return receipt;\n }\n\n /**\n * Create a complete dynamic hashinal with inscription and registry\n * Note: In browser environment, this would typically be called through a wallet or proxy service\n * @param options Options for creating the dynamic hashinal\n * @returns Promise resolving to the creation response\n */\n async createHashinal(\n options: HCS6CreateHashinalOptions,\n ): Promise<HCS6CreateHashinalResponse> {\n try {\n if (!this.signer) {\n return {\n success: false,\n error: 'No signer configured for browser createHashinal',\n };\n }\n\n const inscriptionOptions: InscriptionOptions = {\n ...(options.inscriptionOptions as InscriptionOptions | undefined),\n mode: 'hashinal',\n metadata: options.metadata,\n waitForConfirmation: true,\n network: this.network,\n };\n\n const input: InscriptionInput = {\n type: 'buffer',\n buffer: Buffer.from(JSON.stringify(options.metadata)),\n fileName: 'metadata.json',\n mimeType: 'application/json',\n };\n\n const res: InscriptionResponse = await inscribeWithSigner(\n input,\n this.signer,\n inscriptionOptions,\n );\n const inscriptionTopicId =\n res.inscription?.jsonTopicId || getInscriptionTopicId(res.inscription);\n if (!inscriptionTopicId) {\n return { success: false, error: 'Failed to inscribe metadata' };\n }\n\n let registryTopicId = options.registryTopicId;\n if (!registryTopicId) {\n const reg = await this.createRegistry({ ttl: options.ttl });\n if (!reg.success || !reg.topicId)\n return { success: false, error: reg.error };\n registryTopicId = reg.topicId;\n }\n\n const regRes = await this.registerEntry(registryTopicId, {\n targetTopicId: inscriptionTopicId,\n memo: options.memo || 'Initial dynamic hashinal registration',\n });\n if (!regRes.success) return { success: false, error: regRes.error };\n\n return {\n success: true,\n registryTopicId,\n inscriptionTopicId,\n };\n } catch (error) {\n this.logger.error(`Failed to create dynamic hashinal: ${error}`);\n return { success: false, error: String(error) };\n }\n }\n\n /**\n * Register a dynamic hashinal with combined inscription and registry creation\n * Note: In browser environment, this would typically be called through a wallet or proxy service\n * @param options Options for registering the dynamic hashinal\n * @returns Promise resolving to the creation response\n */\n async register(\n options: HCS6RegisterOptions,\n ): Promise<HCS6CreateHashinalResponse> {\n try {\n if (!this.signer) {\n return {\n success: false,\n error: 'No signer configured for browser register',\n };\n }\n\n let input: InscriptionInput;\n if (options.data?.base64) {\n input = {\n type: 'buffer',\n buffer: Buffer.from(options.data.base64, 'base64'),\n fileName: 'data.' + (options.data.mimeType?.split('/')[1] || 'bin'),\n mimeType: options.data.mimeType || 'application/octet-stream',\n };\n } else if (options.data?.url) {\n input = { type: 'url', url: options.data.url };\n } else {\n input = {\n type: 'buffer',\n buffer: Buffer.from(JSON.stringify(options.metadata)),\n fileName: 'metadata.json',\n mimeType: 'application/json',\n };\n }\n\n const inscriptionOptions: InscriptionOptions = {\n ...(options.inscriptionOptions as InscriptionOptions | undefined),\n mode: 'hashinal',\n metadata: options.metadata,\n waitForConfirmation: true,\n network: this.network,\n };\n\n const res: InscriptionResponse = await inscribeWithSigner(\n input,\n this.signer,\n inscriptionOptions,\n );\n const inscriptionTopicId =\n res.inscription?.jsonTopicId || getInscriptionTopicId(res.inscription);\n if (!inscriptionTopicId)\n return { success: false, error: 'Failed to inscribe data' };\n\n let registryTopicId = options.registryTopicId;\n if (!registryTopicId) {\n const reg = await this.createRegistry({ ttl: options.ttl });\n if (!reg.success || !reg.topicId)\n return { success: false, error: reg.error };\n registryTopicId = reg.topicId;\n }\n\n const regRes = await this.registerEntry(registryTopicId, {\n targetTopicId: inscriptionTopicId,\n memo: options.memo || 'Dynamic hashinal registration',\n });\n if (!regRes.success) return { success: false, error: regRes.error };\n\n return {\n success: true,\n registryTopicId,\n inscriptionTopicId,\n };\n } catch (error) {\n this.logger.error(`Failed to register dynamic hashinal: ${error}`);\n return { success: false, error: String(error) };\n }\n }\n\n /**\n * Validate that a topic is a valid HCS-6 registry\n * @param topicId The topic ID to validate\n * @returns Promise resolving to true if valid, false otherwise\n */\n async validateHCS6Topic(topicId: string): Promise<boolean> {\n try {\n const topicInfo = await this.mirrorNode.getTopicInfo(topicId);\n const memoInfo = this.parseRegistryTypeFromMemo(topicInfo.memo);\n\n if (!memoInfo) {\n this.logger.warn(\n `Topic ${topicId} is not a valid HCS-6 registry (invalid memo format)`,\n );\n return false;\n }\n\n if (memoInfo.registryType !== HCS6RegistryType.NON_INDEXED) {\n this.logger.warn(\n `Topic ${topicId} is not a valid HCS-6 registry (must be non-indexed)`,\n );\n return false;\n }\n\n return true;\n } catch (error) {\n this.logger.error(`Error validating HCS-6 topic ${topicId}: ${error}`);\n return false;\n }\n }\n}\n"],"names":["getInscriptionTopicId"],"mappings":"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"}
|
|
@@ -1,111 +1,201 @@
|
|
|
1
|
-
class
|
|
2
|
-
constructor(logger) {
|
|
1
|
+
class HashLinkResolver {
|
|
2
|
+
constructor(logger, blockLoader, hrlResolver, network) {
|
|
3
3
|
this.logger = logger;
|
|
4
|
+
this.blockLoader = blockLoader;
|
|
5
|
+
this.hrlResolver = hrlResolver;
|
|
6
|
+
this.network = network;
|
|
7
|
+
this.cache = /* @__PURE__ */ new Map();
|
|
8
|
+
this.renderStack = /* @__PURE__ */ new Set();
|
|
4
9
|
}
|
|
5
10
|
/**
|
|
6
|
-
*
|
|
11
|
+
* Resolve a HashLink reference to a block
|
|
7
12
|
*/
|
|
8
|
-
async
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
if (attributesMatch) {
|
|
24
|
-
try {
|
|
25
|
-
const attrString = attributesMatch[2];
|
|
26
|
-
attributes = JSON.parse(attrString);
|
|
27
|
-
} catch (e) {
|
|
28
|
-
this.logger.warn("Failed to parse data-attributes", {
|
|
29
|
-
uri,
|
|
30
|
-
attributes: attributesMatch[2],
|
|
31
|
-
error: e.message
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
const actionsMatch = otherAttributes.match(
|
|
36
|
-
/data-actions=(['"])((?:(?!\1).)*)\1/s
|
|
37
|
-
);
|
|
38
|
-
let actions;
|
|
39
|
-
if (actionsMatch) {
|
|
40
|
-
try {
|
|
41
|
-
const actionsString = actionsMatch[2];
|
|
42
|
-
actions = JSON.parse(actionsString);
|
|
43
|
-
} catch (e) {
|
|
44
|
-
this.logger.warn("Failed to parse data-actions", {
|
|
45
|
-
uri,
|
|
46
|
-
actions: actionsMatch[2],
|
|
47
|
-
error: e.message
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
const loadingMatch = otherAttributes.match(
|
|
52
|
-
/data-loading=['"]([^'"]+)['"]/
|
|
53
|
-
);
|
|
54
|
-
const loading = loadingMatch?.[1] || "eager";
|
|
55
|
-
references.push({
|
|
56
|
-
element: tagName,
|
|
57
|
-
uri,
|
|
58
|
-
...parsed,
|
|
59
|
-
attributes,
|
|
60
|
-
actions,
|
|
61
|
-
loading,
|
|
62
|
-
placeholder: fullMatch
|
|
63
|
-
});
|
|
64
|
-
this.logger.debug("Found HashLink reference", { uri, parsed });
|
|
65
|
-
} catch (error) {
|
|
66
|
-
this.logger.error("Failed to parse HashLink URI", {
|
|
67
|
-
uri,
|
|
68
|
-
error: error.message
|
|
69
|
-
});
|
|
13
|
+
async resolveReference(ref, context) {
|
|
14
|
+
this.logger.debug("Resolving HashLink reference", {
|
|
15
|
+
uri: ref.uri,
|
|
16
|
+
protocol: ref.protocol
|
|
17
|
+
});
|
|
18
|
+
try {
|
|
19
|
+
switch (ref.protocol) {
|
|
20
|
+
case "12":
|
|
21
|
+
return await this.resolveHCS12Block(ref, context);
|
|
22
|
+
case "1":
|
|
23
|
+
return await this.resolveHCS1Block(ref, context);
|
|
24
|
+
case "2":
|
|
25
|
+
return await this.resolveHCS2Block(ref, context);
|
|
26
|
+
default:
|
|
27
|
+
throw new Error(`Unsupported HashLink protocol: ${ref.protocol}`);
|
|
70
28
|
}
|
|
29
|
+
} catch (error) {
|
|
30
|
+
this.logger.error("Failed to resolve HashLink", {
|
|
31
|
+
uri: ref.uri,
|
|
32
|
+
error: error.message
|
|
33
|
+
});
|
|
34
|
+
return {
|
|
35
|
+
blockId: ref.reference,
|
|
36
|
+
definition: null,
|
|
37
|
+
template: null,
|
|
38
|
+
attributes: {},
|
|
39
|
+
actions: {},
|
|
40
|
+
error: error.message
|
|
41
|
+
};
|
|
71
42
|
}
|
|
72
|
-
return references;
|
|
73
43
|
}
|
|
74
44
|
/**
|
|
75
|
-
*
|
|
45
|
+
* Resolve HCS-12 block by topic ID
|
|
76
46
|
*/
|
|
77
|
-
|
|
78
|
-
const
|
|
79
|
-
if (
|
|
80
|
-
|
|
47
|
+
async resolveHCS12Block(ref, context) {
|
|
48
|
+
const blockId = ref.reference;
|
|
49
|
+
if (this.renderStack.has(blockId)) {
|
|
50
|
+
return {
|
|
51
|
+
blockId,
|
|
52
|
+
definition: null,
|
|
53
|
+
template: null,
|
|
54
|
+
attributes: {},
|
|
55
|
+
actions: {},
|
|
56
|
+
error: "Circular reference detected"
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
const cacheKey = this.getCacheKey(blockId, ref.attributes, ref.actions);
|
|
60
|
+
if (this.cache.has(cacheKey)) {
|
|
61
|
+
return this.cache.get(cacheKey);
|
|
62
|
+
}
|
|
63
|
+
try {
|
|
64
|
+
const blockData = await this.blockLoader.loadBlock(blockId);
|
|
65
|
+
if (!blockData || !blockData.definition) {
|
|
66
|
+
throw new Error(`Block not found: ${blockId}`);
|
|
67
|
+
}
|
|
68
|
+
const mergedAttributes = {
|
|
69
|
+
...this.extractDefaults(blockData.definition),
|
|
70
|
+
...context.attributes,
|
|
71
|
+
...ref.attributes
|
|
72
|
+
};
|
|
73
|
+
const mergedActions = {
|
|
74
|
+
...context.actions,
|
|
75
|
+
...ref.actions
|
|
76
|
+
};
|
|
77
|
+
const resolved = {
|
|
78
|
+
blockId,
|
|
79
|
+
definition: blockData.definition,
|
|
80
|
+
template: blockData.template,
|
|
81
|
+
attributes: mergedAttributes,
|
|
82
|
+
actions: mergedActions
|
|
83
|
+
};
|
|
84
|
+
this.cache.set(cacheKey, resolved);
|
|
85
|
+
return resolved;
|
|
86
|
+
} catch (error) {
|
|
87
|
+
this.renderStack.delete(blockId);
|
|
88
|
+
throw new Error(
|
|
89
|
+
`Failed to load HCS-12 block ${blockId}: ${error.message}`
|
|
90
|
+
);
|
|
81
91
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Resolve HCS-1 topic as potential block
|
|
95
|
+
*/
|
|
96
|
+
async resolveHCS1Block(ref, context) {
|
|
97
|
+
const topicId = ref.reference;
|
|
98
|
+
try {
|
|
99
|
+
const blockData = await this.blockLoader.loadBlock(topicId);
|
|
100
|
+
if (blockData && blockData.definition) {
|
|
101
|
+
return {
|
|
102
|
+
blockId: topicId,
|
|
103
|
+
definition: blockData.definition,
|
|
104
|
+
template: blockData.template,
|
|
105
|
+
attributes: {
|
|
106
|
+
...this.extractDefaults(blockData.definition),
|
|
107
|
+
...ref.attributes
|
|
108
|
+
},
|
|
109
|
+
actions: ref.actions || {}
|
|
110
|
+
};
|
|
88
111
|
}
|
|
112
|
+
const content = await this.hrlResolver.resolve(topicId, {
|
|
113
|
+
network: this.network
|
|
114
|
+
});
|
|
115
|
+
return {
|
|
116
|
+
blockId: topicId,
|
|
117
|
+
definition: null,
|
|
118
|
+
template: content.content,
|
|
119
|
+
attributes: ref.attributes || {},
|
|
120
|
+
actions: ref.actions || {}
|
|
121
|
+
};
|
|
122
|
+
} catch (error) {
|
|
123
|
+
throw new Error(
|
|
124
|
+
`Failed to load HCS-1 content ${topicId}: ${error.message}`
|
|
125
|
+
);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Resolve HCS-2 registry entry
|
|
130
|
+
*/
|
|
131
|
+
async resolveHCS2Block(ref, context) {
|
|
132
|
+
if (!ref.registryId || !ref.entryName) {
|
|
133
|
+
throw new Error(
|
|
134
|
+
"Invalid HCS-2 reference: missing registry ID or entry name"
|
|
135
|
+
);
|
|
136
|
+
}
|
|
137
|
+
try {
|
|
138
|
+
const registryUri = `hcs://2/${ref.registryId}`;
|
|
139
|
+
const registryContent = await this.hrlResolver.resolve(registryUri, {
|
|
140
|
+
network: this.network
|
|
141
|
+
});
|
|
142
|
+
this.logger.warn("HCS-2 registry lookup not fully implemented", {
|
|
143
|
+
registryId: ref.registryId,
|
|
144
|
+
entryName: ref.entryName
|
|
145
|
+
});
|
|
89
146
|
return {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
147
|
+
blockId: `${ref.registryId}/${ref.entryName}`,
|
|
148
|
+
definition: null,
|
|
149
|
+
template: `<!-- HCS-2 lookup not implemented: ${ref.uri} -->`,
|
|
150
|
+
attributes: ref.attributes || {},
|
|
151
|
+
actions: ref.actions || {}
|
|
94
152
|
};
|
|
153
|
+
} catch (error) {
|
|
154
|
+
throw new Error(`Failed to resolve HCS-2 entry: ${error.message}`);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Extract default attribute values from block definition
|
|
159
|
+
*/
|
|
160
|
+
extractDefaults(definition) {
|
|
161
|
+
const defaults = {};
|
|
162
|
+
if (definition.attributes) {
|
|
163
|
+
Object.entries(definition.attributes).forEach(([key, attr]) => {
|
|
164
|
+
if (attr && typeof attr === "object" && "default" in attr) {
|
|
165
|
+
defaults[key] = attr.default;
|
|
166
|
+
}
|
|
167
|
+
});
|
|
95
168
|
}
|
|
96
|
-
return
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
169
|
+
return defaults;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Get cache key for resolved block
|
|
173
|
+
*/
|
|
174
|
+
getCacheKey(blockId, attributes, actions) {
|
|
175
|
+
const attrHash = attributes ? JSON.stringify(attributes) : "";
|
|
176
|
+
const actionHash = actions ? JSON.stringify(actions) : "";
|
|
177
|
+
return `${blockId}:${attrHash}:${actionHash}`;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Add block to render stack (for circular reference detection)
|
|
181
|
+
*/
|
|
182
|
+
pushRenderStack(blockId) {
|
|
183
|
+
this.renderStack.add(blockId);
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Remove block from render stack
|
|
187
|
+
*/
|
|
188
|
+
popRenderStack(blockId) {
|
|
189
|
+
this.renderStack.delete(blockId);
|
|
100
190
|
}
|
|
101
191
|
/**
|
|
102
|
-
*
|
|
192
|
+
* Clear cache
|
|
103
193
|
*/
|
|
104
|
-
|
|
105
|
-
|
|
194
|
+
clearCache() {
|
|
195
|
+
this.cache.clear();
|
|
106
196
|
}
|
|
107
197
|
}
|
|
108
198
|
export {
|
|
109
|
-
|
|
199
|
+
HashLinkResolver
|
|
110
200
|
};
|
|
111
201
|
//# sourceMappingURL=standards-sdk.es50.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es50.js","sources":["../../src/hcs-12/rendering/hashlink-scanner.ts"],"sourcesContent":["/**\n * HashLink Scanner for Template-Based Block Composition\n *\n * Scans HTML templates for data-hashlink attributes and extracts references\n */\n\nimport { Logger } from '../../utils/logger';\n\nexport interface ScannedHashLink {\n element: string;\n uri: string;\n protocol: string;\n reference: string;\n registryId?: string;\n entryName?: string;\n attributes?: Record<string, any>;\n actions?: Record<string, string>;\n loading?: 'eager' | 'lazy';\n placeholder: string;\n}\n\nexport class HashLinkScanner {\n private logger: Logger;\n\n constructor(logger: Logger) {\n this.logger = logger;\n }\n\n /**\n * Scan template for data-hashlink elements\n */\n async scanTemplate(html: string): Promise<ScannedHashLink[]> {\n const references: ScannedHashLink[] = [];\n\n const hashLinkRegex = /<([^>]+)\\s+data-hashlink=[\"']([^\"']+)[\"']([^>]*)>/gs;\n\n let match;\n while ((match = hashLinkRegex.exec(html)) !== null) {\n const fullMatch = match[0];\n const tagName = match[1].split(/\\s+/)[0];\n const uri = match[2];\n const otherAttributes = match[3];\n\n try {\n const parsed = this.parseHashLinkURI(uri);\n\n const attributesMatch = otherAttributes.match(\n /data-attributes=(['\"])((?:(?!\\1).)*)\\1/s,\n );\n let attributes: Record<string, any> | undefined;\n if (attributesMatch) {\n try {\n const attrString = attributesMatch[2];\n attributes = JSON.parse(attrString);\n } catch (e) {\n this.logger.warn('Failed to parse data-attributes', {\n uri,\n attributes: attributesMatch[2],\n error: e.message,\n });\n }\n }\n\n const actionsMatch = otherAttributes.match(\n /data-actions=(['\"])((?:(?!\\1).)*)\\1/s,\n );\n let actions: Record<string, string> | undefined;\n if (actionsMatch) {\n try {\n const actionsString = actionsMatch[2];\n actions = JSON.parse(actionsString);\n } catch (e) {\n this.logger.warn('Failed to parse data-actions', {\n uri,\n actions: actionsMatch[2],\n error: e.message,\n });\n }\n }\n\n const loadingMatch = otherAttributes.match(\n /data-loading=['\"]([^'\"]+)['\"]/,\n );\n const loading = (loadingMatch?.[1] as 'lazy' | 'eager') || 'eager';\n\n references.push({\n element: tagName,\n uri,\n ...parsed,\n attributes,\n actions,\n loading,\n placeholder: fullMatch,\n });\n\n this.logger.debug('Found HashLink reference', { uri, parsed });\n } catch (error) {\n this.logger.error('Failed to parse HashLink URI', {\n uri,\n error: error.message,\n });\n }\n }\n\n return references;\n }\n\n /**\n * Parse HashLink URI into components\n */\n parseHashLinkURI(uri: string): {\n protocol: string;\n reference: string;\n registryId?: string;\n entryName?: string;\n } {\n const uriMatch = uri.match(/^hcs:\\/\\/(\\d+)\\/(.+)$/);\n if (!uriMatch) {\n throw new Error(`Invalid HashLink URI format: ${uri}`);\n }\n\n const protocol = uriMatch[1];\n const referencePath = uriMatch[2];\n\n if (protocol === '2') {\n const parts = referencePath.split('/');\n if (parts.length !== 2) {\n throw new Error(`Invalid HCS-2 reference format: ${referencePath}`);\n }\n return {\n protocol,\n reference: referencePath,\n registryId: parts[0],\n entryName: parts[1],\n };\n }\n\n return {\n protocol,\n reference: referencePath,\n };\n }\n\n /**\n * Create a unique placeholder for replacement\n */\n createPlaceholder(ref: ScannedHashLink, index: number): string {\n return `<!-- HASHLINK_PLACEHOLDER_${index}_${ref.uri.replace(/[^a-zA-Z0-9]/g, '_')} -->`;\n }\n}\n"],"names":[],"mappings":"AAqBO,MAAM,gBAAgB;AAAA,EAG3B,YAAY,QAAgB;AAC1B,SAAK,SAAS;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,aAAa,MAA0C;AAC3D,UAAM,aAAgC,CAAA;AAEtC,UAAM,gBAAgB;AAEtB,QAAI;AACJ,YAAQ,QAAQ,cAAc,KAAK,IAAI,OAAO,MAAM;AAClD,YAAM,YAAY,MAAM,CAAC;AACzB,YAAM,UAAU,MAAM,CAAC,EAAE,MAAM,KAAK,EAAE,CAAC;AACvC,YAAM,MAAM,MAAM,CAAC;AACnB,YAAM,kBAAkB,MAAM,CAAC;AAE/B,UAAI;AACF,cAAM,SAAS,KAAK,iBAAiB,GAAG;AAExC,cAAM,kBAAkB,gBAAgB;AAAA,UACtC;AAAA,QAAA;AAEF,YAAI;AACJ,YAAI,iBAAiB;AACnB,cAAI;AACF,kBAAM,aAAa,gBAAgB,CAAC;AACpC,yBAAa,KAAK,MAAM,UAAU;AAAA,UACpC,SAAS,GAAG;AACV,iBAAK,OAAO,KAAK,mCAAmC;AAAA,cAClD;AAAA,cACA,YAAY,gBAAgB,CAAC;AAAA,cAC7B,OAAO,EAAE;AAAA,YAAA,CACV;AAAA,UACH;AAAA,QACF;AAEA,cAAM,eAAe,gBAAgB;AAAA,UACnC;AAAA,QAAA;AAEF,YAAI;AACJ,YAAI,cAAc;AAChB,cAAI;AACF,kBAAM,gBAAgB,aAAa,CAAC;AACpC,sBAAU,KAAK,MAAM,aAAa;AAAA,UACpC,SAAS,GAAG;AACV,iBAAK,OAAO,KAAK,gCAAgC;AAAA,cAC/C;AAAA,cACA,SAAS,aAAa,CAAC;AAAA,cACvB,OAAO,EAAE;AAAA,YAAA,CACV;AAAA,UACH;AAAA,QACF;AAEA,cAAM,eAAe,gBAAgB;AAAA,UACnC;AAAA,QAAA;AAEF,cAAM,UAAW,eAAe,CAAC,KAA0B;AAE3D,mBAAW,KAAK;AAAA,UACd,SAAS;AAAA,UACT;AAAA,UACA,GAAG;AAAA,UACH;AAAA,UACA;AAAA,UACA;AAAA,UACA,aAAa;AAAA,QAAA,CACd;AAED,aAAK,OAAO,MAAM,4BAA4B,EAAE,KAAK,QAAQ;AAAA,MAC/D,SAAS,OAAO;AACd,aAAK,OAAO,MAAM,gCAAgC;AAAA,UAChD;AAAA,UACA,OAAO,MAAM;AAAA,QAAA,CACd;AAAA,MACH;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,iBAAiB,KAKf;AACA,UAAM,WAAW,IAAI,MAAM,uBAAuB;AAClD,QAAI,CAAC,UAAU;AACb,YAAM,IAAI,MAAM,gCAAgC,GAAG,EAAE;AAAA,IACvD;AAEA,UAAM,WAAW,SAAS,CAAC;AAC3B,UAAM,gBAAgB,SAAS,CAAC;AAEhC,QAAI,aAAa,KAAK;AACpB,YAAM,QAAQ,cAAc,MAAM,GAAG;AACrC,UAAI,MAAM,WAAW,GAAG;AACtB,cAAM,IAAI,MAAM,mCAAmC,aAAa,EAAE;AAAA,MACpE;AACA,aAAO;AAAA,QACL;AAAA,QACA,WAAW;AAAA,QACX,YAAY,MAAM,CAAC;AAAA,QACnB,WAAW,MAAM,CAAC;AAAA,MAAA;AAAA,IAEtB;AAEA,WAAO;AAAA,MACL;AAAA,MACA,WAAW;AAAA,IAAA;AAAA,EAEf;AAAA;AAAA;AAAA;AAAA,EAKA,kBAAkB,KAAsB,OAAuB;AAC7D,WAAO,6BAA6B,KAAK,IAAI,IAAI,IAAI,QAAQ,iBAAiB,GAAG,CAAC;AAAA,EACpF;AACF;"}
|
|
1
|
+
{"version":3,"file":"standards-sdk.es50.js","sources":["../../src/hcs-12/rendering/hashlink-resolver.ts"],"sourcesContent":["/**\n * HashLink Resolver for Template-Based Block Composition\n *\n * Resolves HashLink references to actual blocks and handles loading\n */\n\nimport { Logger } from '../../utils/logger';\nimport { ScannedHashLink } from './hashlink-scanner';\nimport { BlockDefinition } from '../types';\nimport { BlockLoader } from '../registries/block-loader';\nimport { HRLResolver } from '../../utils/hrl-resolver';\nimport { NetworkType } from '../../utils/types';\n\nexport interface RenderContext {\n blockId: string;\n depth: number;\n parentContext?: RenderContext;\n attributes: Record<string, any>;\n actions: Record<string, string>;\n assembly?: any;\n maxDepth?: number;\n}\n\nexport interface ResolvedHashLinkBlock {\n blockId: string;\n definition: BlockDefinition | null;\n template: string | null;\n attributes: Record<string, any>;\n actions: Record<string, string>;\n error?: string;\n}\n\nexport class HashLinkResolver {\n private logger: Logger;\n private blockLoader: BlockLoader;\n private hrlResolver: HRLResolver;\n private network: NetworkType;\n private cache: Map<string, ResolvedHashLinkBlock>;\n private renderStack: Set<string>;\n\n constructor(\n logger: Logger,\n blockLoader: BlockLoader,\n hrlResolver: HRLResolver,\n network: NetworkType,\n ) {\n this.logger = logger;\n this.blockLoader = blockLoader;\n this.hrlResolver = hrlResolver;\n this.network = network;\n this.cache = new Map();\n this.renderStack = new Set();\n }\n\n /**\n * Resolve a HashLink reference to a block\n */\n async resolveReference(\n ref: ScannedHashLink,\n context: RenderContext,\n ): Promise<ResolvedHashLinkBlock> {\n this.logger.debug('Resolving HashLink reference', {\n uri: ref.uri,\n protocol: ref.protocol,\n });\n\n try {\n switch (ref.protocol) {\n case '12':\n return await this.resolveHCS12Block(ref, context);\n\n case '1':\n return await this.resolveHCS1Block(ref, context);\n\n case '2':\n return await this.resolveHCS2Block(ref, context);\n\n default:\n throw new Error(`Unsupported HashLink protocol: ${ref.protocol}`);\n }\n } catch (error) {\n this.logger.error('Failed to resolve HashLink', {\n uri: ref.uri,\n error: error.message,\n });\n\n return {\n blockId: ref.reference,\n definition: null,\n template: null,\n attributes: {},\n actions: {},\n error: error.message,\n };\n }\n }\n\n /**\n * Resolve HCS-12 block by topic ID\n */\n private async resolveHCS12Block(\n ref: ScannedHashLink,\n context: RenderContext,\n ): Promise<ResolvedHashLinkBlock> {\n const blockId = ref.reference;\n\n if (this.renderStack.has(blockId)) {\n return {\n blockId,\n definition: null,\n template: null,\n attributes: {},\n actions: {},\n error: 'Circular reference detected',\n };\n }\n\n const cacheKey = this.getCacheKey(blockId, ref.attributes, ref.actions);\n if (this.cache.has(cacheKey)) {\n return this.cache.get(cacheKey)!;\n }\n\n try {\n const blockData = await this.blockLoader.loadBlock(blockId);\n\n if (!blockData || !blockData.definition) {\n throw new Error(`Block not found: ${blockId}`);\n }\n\n const mergedAttributes = {\n ...this.extractDefaults(blockData.definition),\n ...context.attributes,\n ...ref.attributes,\n };\n\n const mergedActions = {\n ...context.actions,\n ...ref.actions,\n };\n\n const resolved: ResolvedHashLinkBlock = {\n blockId,\n definition: blockData.definition,\n template: blockData.template,\n attributes: mergedAttributes,\n actions: mergedActions,\n };\n\n this.cache.set(cacheKey, resolved);\n\n return resolved;\n } catch (error) {\n this.renderStack.delete(blockId);\n throw new Error(\n `Failed to load HCS-12 block ${blockId}: ${error.message}`,\n );\n }\n }\n\n /**\n * Resolve HCS-1 topic as potential block\n */\n private async resolveHCS1Block(\n ref: ScannedHashLink,\n context: RenderContext,\n ): Promise<ResolvedHashLinkBlock> {\n const topicId = ref.reference;\n\n try {\n const blockData = await this.blockLoader.loadBlock(topicId);\n\n if (blockData && blockData.definition) {\n return {\n blockId: topicId,\n definition: blockData.definition,\n template: blockData.template,\n attributes: {\n ...this.extractDefaults(blockData.definition),\n ...ref.attributes,\n },\n actions: ref.actions || {},\n };\n }\n\n const content = await this.hrlResolver.resolve(topicId, {\n network: this.network,\n });\n\n return {\n blockId: topicId,\n definition: null,\n template: content.content as string,\n attributes: ref.attributes || {},\n actions: ref.actions || {},\n };\n } catch (error) {\n throw new Error(\n `Failed to load HCS-1 content ${topicId}: ${error.message}`,\n );\n }\n }\n\n /**\n * Resolve HCS-2 registry entry\n */\n private async resolveHCS2Block(\n ref: ScannedHashLink,\n context: RenderContext,\n ): Promise<ResolvedHashLinkBlock> {\n if (!ref.registryId || !ref.entryName) {\n throw new Error(\n 'Invalid HCS-2 reference: missing registry ID or entry name',\n );\n }\n\n try {\n const registryUri = `hcs://2/${ref.registryId}`;\n const registryContent = await this.hrlResolver.resolve(registryUri, {\n network: this.network,\n });\n\n this.logger.warn('HCS-2 registry lookup not fully implemented', {\n registryId: ref.registryId,\n entryName: ref.entryName,\n });\n\n return {\n blockId: `${ref.registryId}/${ref.entryName}`,\n definition: null,\n template: `<!-- HCS-2 lookup not implemented: ${ref.uri} -->`,\n attributes: ref.attributes || {},\n actions: ref.actions || {},\n };\n } catch (error) {\n throw new Error(`Failed to resolve HCS-2 entry: ${error.message}`);\n }\n }\n\n /**\n * Extract default attribute values from block definition\n */\n private extractDefaults(definition: BlockDefinition): Record<string, any> {\n const defaults: Record<string, any> = {};\n\n if (definition.attributes) {\n Object.entries(definition.attributes).forEach(([key, attr]) => {\n if (attr && typeof attr === 'object' && 'default' in attr) {\n defaults[key] = attr.default;\n }\n });\n }\n\n return defaults;\n }\n\n /**\n * Get cache key for resolved block\n */\n private getCacheKey(\n blockId: string,\n attributes?: Record<string, any>,\n actions?: Record<string, string>,\n ): string {\n const attrHash = attributes ? JSON.stringify(attributes) : '';\n const actionHash = actions ? JSON.stringify(actions) : '';\n return `${blockId}:${attrHash}:${actionHash}`;\n }\n\n /**\n * Add block to render stack (for circular reference detection)\n */\n pushRenderStack(blockId: string): void {\n this.renderStack.add(blockId);\n }\n\n /**\n * Remove block from render stack\n */\n popRenderStack(blockId: string): void {\n this.renderStack.delete(blockId);\n }\n\n /**\n * Clear cache\n */\n clearCache(): void {\n this.cache.clear();\n }\n}\n"],"names":[],"mappings":"AAgCO,MAAM,iBAAiB;AAAA,EAQ5B,YACE,QACA,aACA,aACA,SACA;AACA,SAAK,SAAS;AACd,SAAK,cAAc;AACnB,SAAK,cAAc;AACnB,SAAK,UAAU;AACf,SAAK,4BAAY,IAAA;AACjB,SAAK,kCAAkB,IAAA;AAAA,EACzB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,iBACJ,KACA,SACgC;AAChC,SAAK,OAAO,MAAM,gCAAgC;AAAA,MAChD,KAAK,IAAI;AAAA,MACT,UAAU,IAAI;AAAA,IAAA,CACf;AAED,QAAI;AACF,cAAQ,IAAI,UAAA;AAAA,QACV,KAAK;AACH,iBAAO,MAAM,KAAK,kBAAkB,KAAK,OAAO;AAAA,QAElD,KAAK;AACH,iBAAO,MAAM,KAAK,iBAAiB,KAAK,OAAO;AAAA,QAEjD,KAAK;AACH,iBAAO,MAAM,KAAK,iBAAiB,KAAK,OAAO;AAAA,QAEjD;AACE,gBAAM,IAAI,MAAM,kCAAkC,IAAI,QAAQ,EAAE;AAAA,MAAA;AAAA,IAEtE,SAAS,OAAO;AACd,WAAK,OAAO,MAAM,8BAA8B;AAAA,QAC9C,KAAK,IAAI;AAAA,QACT,OAAO,MAAM;AAAA,MAAA,CACd;AAED,aAAO;AAAA,QACL,SAAS,IAAI;AAAA,QACb,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,YAAY,CAAA;AAAA,QACZ,SAAS,CAAA;AAAA,QACT,OAAO,MAAM;AAAA,MAAA;AAAA,IAEjB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAc,kBACZ,KACA,SACgC;AAChC,UAAM,UAAU,IAAI;AAEpB,QAAI,KAAK,YAAY,IAAI,OAAO,GAAG;AACjC,aAAO;AAAA,QACL;AAAA,QACA,YAAY;AAAA,QACZ,UAAU;AAAA,QACV,YAAY,CAAA;AAAA,QACZ,SAAS,CAAA;AAAA,QACT,OAAO;AAAA,MAAA;AAAA,IAEX;AAEA,UAAM,WAAW,KAAK,YAAY,SAAS,IAAI,YAAY,IAAI,OAAO;AACtE,QAAI,KAAK,MAAM,IAAI,QAAQ,GAAG;AAC5B,aAAO,KAAK,MAAM,IAAI,QAAQ;AAAA,IAChC;AAEA,QAAI;AACF,YAAM,YAAY,MAAM,KAAK,YAAY,UAAU,OAAO;AAE1D,UAAI,CAAC,aAAa,CAAC,UAAU,YAAY;AACvC,cAAM,IAAI,MAAM,oBAAoB,OAAO,EAAE;AAAA,MAC/C;AAEA,YAAM,mBAAmB;AAAA,QACvB,GAAG,KAAK,gBAAgB,UAAU,UAAU;AAAA,QAC5C,GAAG,QAAQ;AAAA,QACX,GAAG,IAAI;AAAA,MAAA;AAGT,YAAM,gBAAgB;AAAA,QACpB,GAAG,QAAQ;AAAA,QACX,GAAG,IAAI;AAAA,MAAA;AAGT,YAAM,WAAkC;AAAA,QACtC;AAAA,QACA,YAAY,UAAU;AAAA,QACtB,UAAU,UAAU;AAAA,QACpB,YAAY;AAAA,QACZ,SAAS;AAAA,MAAA;AAGX,WAAK,MAAM,IAAI,UAAU,QAAQ;AAEjC,aAAO;AAAA,IACT,SAAS,OAAO;AACd,WAAK,YAAY,OAAO,OAAO;AAC/B,YAAM,IAAI;AAAA,QACR,+BAA+B,OAAO,KAAK,MAAM,OAAO;AAAA,MAAA;AAAA,IAE5D;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAc,iBACZ,KACA,SACgC;AAChC,UAAM,UAAU,IAAI;AAEpB,QAAI;AACF,YAAM,YAAY,MAAM,KAAK,YAAY,UAAU,OAAO;AAE1D,UAAI,aAAa,UAAU,YAAY;AACrC,eAAO;AAAA,UACL,SAAS;AAAA,UACT,YAAY,UAAU;AAAA,UACtB,UAAU,UAAU;AAAA,UACpB,YAAY;AAAA,YACV,GAAG,KAAK,gBAAgB,UAAU,UAAU;AAAA,YAC5C,GAAG,IAAI;AAAA,UAAA;AAAA,UAET,SAAS,IAAI,WAAW,CAAA;AAAA,QAAC;AAAA,MAE7B;AAEA,YAAM,UAAU,MAAM,KAAK,YAAY,QAAQ,SAAS;AAAA,QACtD,SAAS,KAAK;AAAA,MAAA,CACf;AAED,aAAO;AAAA,QACL,SAAS;AAAA,QACT,YAAY;AAAA,QACZ,UAAU,QAAQ;AAAA,QAClB,YAAY,IAAI,cAAc,CAAA;AAAA,QAC9B,SAAS,IAAI,WAAW,CAAA;AAAA,MAAC;AAAA,IAE7B,SAAS,OAAO;AACd,YAAM,IAAI;AAAA,QACR,gCAAgC,OAAO,KAAK,MAAM,OAAO;AAAA,MAAA;AAAA,IAE7D;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAc,iBACZ,KACA,SACgC;AAChC,QAAI,CAAC,IAAI,cAAc,CAAC,IAAI,WAAW;AACrC,YAAM,IAAI;AAAA,QACR;AAAA,MAAA;AAAA,IAEJ;AAEA,QAAI;AACF,YAAM,cAAc,WAAW,IAAI,UAAU;AAC7C,YAAM,kBAAkB,MAAM,KAAK,YAAY,QAAQ,aAAa;AAAA,QAClE,SAAS,KAAK;AAAA,MAAA,CACf;AAED,WAAK,OAAO,KAAK,+CAA+C;AAAA,QAC9D,YAAY,IAAI;AAAA,QAChB,WAAW,IAAI;AAAA,MAAA,CAChB;AAED,aAAO;AAAA,QACL,SAAS,GAAG,IAAI,UAAU,IAAI,IAAI,SAAS;AAAA,QAC3C,YAAY;AAAA,QACZ,UAAU,sCAAsC,IAAI,GAAG;AAAA,QACvD,YAAY,IAAI,cAAc,CAAA;AAAA,QAC9B,SAAS,IAAI,WAAW,CAAA;AAAA,MAAC;AAAA,IAE7B,SAAS,OAAO;AACd,YAAM,IAAI,MAAM,kCAAkC,MAAM,OAAO,EAAE;AAAA,IACnE;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKQ,gBAAgB,YAAkD;AACxE,UAAM,WAAgC,CAAA;AAEtC,QAAI,WAAW,YAAY;AACzB,aAAO,QAAQ,WAAW,UAAU,EAAE,QAAQ,CAAC,CAAC,KAAK,IAAI,MAAM;AAC7D,YAAI,QAAQ,OAAO,SAAS,YAAY,aAAa,MAAM;AACzD,mBAAS,GAAG,IAAI,KAAK;AAAA,QACvB;AAAA,MACF,CAAC;AAAA,IACH;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKQ,YACN,SACA,YACA,SACQ;AACR,UAAM,WAAW,aAAa,KAAK,UAAU,UAAU,IAAI;AAC3D,UAAM,aAAa,UAAU,KAAK,UAAU,OAAO,IAAI;AACvD,WAAO,GAAG,OAAO,IAAI,QAAQ,IAAI,UAAU;AAAA,EAC7C;AAAA;AAAA;AAAA;AAAA,EAKA,gBAAgB,SAAuB;AACrC,SAAK,YAAY,IAAI,OAAO;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA,EAKA,eAAe,SAAuB;AACpC,SAAK,YAAY,OAAO,OAAO;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA,EAKA,aAAmB;AACjB,SAAK,MAAM,MAAA;AAAA,EACb;AACF;"}
|