@hashgraphonline/standards-sdk 0.1.144 → 0.1.145
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-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/index.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/client/base-client.d.ts +14 -1
- package/dist/cjs/services/registry-broker/client/base-client.d.ts.map +1 -1
- 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/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 +998 -577
- package/dist/cjs/services/registry-broker/schemas.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/types.d.ts +20 -1
- package/dist/cjs/services/registry-broker/types.d.ts.map +1 -1
- package/dist/cjs/standards-sdk.cjs +2 -2
- 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-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/index.d.ts.map +1 -1
- package/dist/es/services/registry-broker/client/base-client.d.ts +14 -1
- package/dist/es/services/registry-broker/client/base-client.d.ts.map +1 -1
- 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/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 +998 -577
- package/dist/es/services/registry-broker/schemas.d.ts.map +1 -1
- package/dist/es/services/registry-broker/types.d.ts +20 -1
- package/dist/es/services/registry-broker/types.d.ts.map +1 -1
- package/dist/es/standards-sdk.es.js +141 -135
- 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 -166
- 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 +192 -162
- package/dist/es/standards-sdk.es128.js.map +1 -1
- package/dist/es/standards-sdk.es129.js +61 -164
- 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 +102 -85
- package/dist/es/standards-sdk.es130.js.map +1 -1
- package/dist/es/standards-sdk.es131.js +222 -96
- package/dist/es/standards-sdk.es131.js.map +1 -1
- package/dist/es/standards-sdk.es132.js +153 -220
- package/dist/es/standards-sdk.es132.js.map +1 -1
- package/dist/es/standards-sdk.es133.js +104 -162
- package/dist/es/standards-sdk.es133.js.map +1 -1
- package/dist/es/standards-sdk.es134.js +296 -92
- package/dist/es/standards-sdk.es134.js.map +1 -1
- package/dist/es/standards-sdk.es135.js +432 -294
- package/dist/es/standards-sdk.es135.js.map +1 -1
- package/dist/es/standards-sdk.es136.js +14 -363
- package/dist/es/standards-sdk.es136.js.map +1 -1
- package/dist/es/standards-sdk.es137.js +79 -15
- package/dist/es/standards-sdk.es137.js.map +1 -1
- package/dist/es/standards-sdk.es138.js +79 -59
- package/dist/es/standards-sdk.es138.js.map +1 -1
- package/dist/es/standards-sdk.es139.js +152 -80
- 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 -159
- package/dist/es/standards-sdk.es140.js.map +1 -1
- package/dist/es/standards-sdk.es141.js +86 -7
- package/dist/es/standards-sdk.es141.js.map +1 -1
- package/dist/es/standards-sdk.es142.js +44 -65
- package/dist/es/standards-sdk.es142.js.map +1 -1
- package/dist/es/standards-sdk.es143.js +30 -65
- package/dist/es/standards-sdk.es143.js.map +1 -1
- package/dist/es/standards-sdk.es144.js +34 -28
- package/dist/es/standards-sdk.es144.js.map +1 -1
- package/dist/es/standards-sdk.es145.js +28 -138
- package/dist/es/standards-sdk.es145.js.map +1 -1
- package/dist/es/standards-sdk.es146.js +133 -37
- package/dist/es/standards-sdk.es146.js.map +1 -1
- package/dist/es/standards-sdk.es147.js +34 -12281
- package/dist/es/standards-sdk.es147.js.map +1 -1
- package/dist/es/standards-sdk.es148.js +12284 -12
- package/dist/es/standards-sdk.es148.js.map +1 -1
- package/dist/es/standards-sdk.es149.js +958 -56
- package/dist/es/standards-sdk.es149.js.map +1 -1
- 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 +48 -74
- package/dist/es/standards-sdk.es150.js.map +1 -1
- package/dist/es/standards-sdk.es151.js +72 -160
- package/dist/es/standards-sdk.es151.js.map +1 -1
- package/dist/es/standards-sdk.es152.js +13 -318
- package/dist/es/standards-sdk.es152.js.map +1 -1
- package/dist/es/standards-sdk.es153.js +120 -294
- package/dist/es/standards-sdk.es153.js.map +1 -1
- package/dist/es/standards-sdk.es154.js +191 -322
- package/dist/es/standards-sdk.es154.js.map +1 -1
- package/dist/es/standards-sdk.es155.js +294 -279
- package/dist/es/standards-sdk.es155.js.map +1 -1
- package/dist/es/standards-sdk.es156.js +440 -63
- package/dist/es/standards-sdk.es156.js.map +1 -1
- package/dist/es/standards-sdk.es157.js +331 -871
- package/dist/es/standards-sdk.es157.js.map +1 -1
- package/dist/es/standards-sdk.es158.js +68 -231
- package/dist/es/standards-sdk.es158.js.map +1 -1
- package/dist/es/standards-sdk.es159.js +218 -223
- package/dist/es/standards-sdk.es159.js.map +1 -1
- 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 -944
- 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 +817 -2071
- 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 -1091
- 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 -902
- 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 +273 -195
- 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 -200
- 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 -370
- 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 +8 -7
- 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,267 +1,205 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
}
|
|
178
|
-
return `ssr-wasm-${wasmData.length}-${Math.abs(hash).toString(16).padStart(8, "0")}`;
|
|
179
|
-
}
|
|
180
|
-
/**
|
|
181
|
-
* Validate WASM magic number
|
|
182
|
-
*/
|
|
183
|
-
validateMagicNumber(data) {
|
|
184
|
-
return data.length >= 4 && data[0] === 0 && data[1] === 97 && data[2] === 115 && data[3] === 109;
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* Get WASM version
|
|
188
|
-
*/
|
|
189
|
-
getWasmVersion(data) {
|
|
190
|
-
if (data.length < 8) return 0;
|
|
191
|
-
return data[4] | data[5] << 8 | data[6] << 16 | data[7] << 24;
|
|
192
|
-
}
|
|
193
|
-
/**
|
|
194
|
-
* Parse WASM module (simplified for testing)
|
|
195
|
-
*/
|
|
196
|
-
async parseModule(data) {
|
|
197
|
-
const textData = data.slice(8);
|
|
198
|
-
const dataStr = new TextDecoder("utf-8", { fatal: false }).decode(textData);
|
|
199
|
-
const exports = [];
|
|
200
|
-
if (dataStr.includes("INFO")) exports.push("INFO");
|
|
201
|
-
if (dataStr.includes("POST")) exports.push("POST");
|
|
202
|
-
if (dataStr.includes("GET")) exports.push("GET");
|
|
203
|
-
if (exports.length === 0 && data.length > 8) {
|
|
204
|
-
exports.push("INFO", "POST", "GET");
|
|
205
|
-
}
|
|
206
|
-
const imports = [];
|
|
207
|
-
const importParts = dataStr.split("import:");
|
|
208
|
-
for (let i = 1; i < importParts.length; i++) {
|
|
209
|
-
const part = importParts[i];
|
|
210
|
-
const match = part.match(
|
|
211
|
-
/^([a-zA-Z_]+[a-zA-Z0-9_]*)\.([a-zA-Z_]+[a-zA-Z0-9_]*)/
|
|
212
|
-
);
|
|
213
|
-
if (match) {
|
|
214
|
-
imports.push({
|
|
215
|
-
module: match[1],
|
|
216
|
-
name: match[2],
|
|
217
|
-
type: "function"
|
|
218
|
-
});
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
let initial = 1;
|
|
222
|
-
let maximum = 16;
|
|
223
|
-
const memMatch = dataStr.match(/memory:(\d+)(?:-(\d+))?/);
|
|
224
|
-
if (memMatch) {
|
|
225
|
-
initial = parseInt(memMatch[1]);
|
|
226
|
-
if (memMatch[2]) maximum = parseInt(memMatch[2]);
|
|
227
|
-
}
|
|
228
|
-
let functionCount = 10;
|
|
229
|
-
const funcMatch = dataStr.match(/functions:(\d+)/);
|
|
230
|
-
if (funcMatch) {
|
|
231
|
-
functionCount = parseInt(funcMatch[1]);
|
|
232
|
-
}
|
|
233
|
-
const hasStartFunction = dataStr.includes("start:true");
|
|
234
|
-
return {
|
|
235
|
-
exports,
|
|
236
|
-
imports,
|
|
237
|
-
memory: { initial, maximum },
|
|
238
|
-
functionCount,
|
|
239
|
-
hasStartFunction,
|
|
240
|
-
exportSignatures: {
|
|
241
|
-
INFO: { type: "function", params: [], results: ["i32"] },
|
|
242
|
-
POST: {
|
|
243
|
-
type: "function",
|
|
244
|
-
params: ["i32", "i32", "i32", "i32"],
|
|
245
|
-
results: ["i32"]
|
|
246
|
-
},
|
|
247
|
-
GET: {
|
|
248
|
-
type: "function",
|
|
249
|
-
params: ["i32", "i32", "i32"],
|
|
250
|
-
results: ["i32"]
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
};
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
const baseRegistrationSchema = z.object({
|
|
3
|
+
p: z.literal("hcs-12")
|
|
4
|
+
});
|
|
5
|
+
const hederaAddressSchema = z.string().regex(/^\d+\.\d+\.\d+$/, "Invalid Hedera address format");
|
|
6
|
+
const sha256HashSchema = z.string().regex(/^[a-f0-9]{64}$/, "Invalid SHA-256 hash format");
|
|
7
|
+
const sourceStructureSchema = z.object({
|
|
8
|
+
format: z.enum(["tar.gz", "zip", "car"]),
|
|
9
|
+
root_manifest: z.string(),
|
|
10
|
+
includes_lockfile: z.boolean(),
|
|
11
|
+
workspace_members: z.array(z.string()).optional()
|
|
12
|
+
});
|
|
13
|
+
const sourceVerificationSchema = z.object({
|
|
14
|
+
source_t_id: hederaAddressSchema,
|
|
15
|
+
source_hash: sha256HashSchema,
|
|
16
|
+
compiler_version: z.string(),
|
|
17
|
+
cargo_version: z.string(),
|
|
18
|
+
target: z.literal("wasm32-unknown-unknown"),
|
|
19
|
+
profile: z.string(),
|
|
20
|
+
build_flags: z.array(z.string()),
|
|
21
|
+
lockfile_hash: sha256HashSchema,
|
|
22
|
+
source_structure: sourceStructureSchema
|
|
23
|
+
});
|
|
24
|
+
const validationRuleSchema = z.lazy(
|
|
25
|
+
() => z.object({
|
|
26
|
+
type: z.string().optional(),
|
|
27
|
+
required: z.array(z.string()).optional(),
|
|
28
|
+
properties: z.record(validationRuleSchema).optional(),
|
|
29
|
+
pattern: z.string().optional(),
|
|
30
|
+
minimum: z.number().optional(),
|
|
31
|
+
maximum: z.number().optional(),
|
|
32
|
+
regex: z.string().optional(),
|
|
33
|
+
min: z.number().optional(),
|
|
34
|
+
max: z.number().optional(),
|
|
35
|
+
length: z.number().optional(),
|
|
36
|
+
email: z.boolean().optional(),
|
|
37
|
+
url: z.boolean().optional(),
|
|
38
|
+
uuid: z.boolean().optional(),
|
|
39
|
+
cuid: z.boolean().optional(),
|
|
40
|
+
cuid2: z.boolean().optional(),
|
|
41
|
+
ulid: z.boolean().optional(),
|
|
42
|
+
datetime: z.boolean().optional(),
|
|
43
|
+
ip: z.boolean().optional(),
|
|
44
|
+
startsWith: z.string().optional(),
|
|
45
|
+
endsWith: z.string().optional(),
|
|
46
|
+
includes: z.string().optional(),
|
|
47
|
+
gt: z.number().optional(),
|
|
48
|
+
gte: z.number().optional(),
|
|
49
|
+
lt: z.number().optional(),
|
|
50
|
+
lte: z.number().optional(),
|
|
51
|
+
int: z.boolean().optional(),
|
|
52
|
+
positive: z.boolean().optional(),
|
|
53
|
+
nonnegative: z.boolean().optional(),
|
|
54
|
+
negative: z.boolean().optional(),
|
|
55
|
+
nonpositive: z.boolean().optional(),
|
|
56
|
+
multipleOf: z.number().optional(),
|
|
57
|
+
finite: z.boolean().optional(),
|
|
58
|
+
safe: z.boolean().optional(),
|
|
59
|
+
nonempty: z.boolean().optional(),
|
|
60
|
+
literal: z.union([z.string(), z.number(), z.boolean()]).optional(),
|
|
61
|
+
enum: z.array(z.string()).optional(),
|
|
62
|
+
nullable: z.boolean().optional(),
|
|
63
|
+
nullish: z.boolean().optional(),
|
|
64
|
+
optional: z.boolean().optional(),
|
|
65
|
+
element: z.any().optional(),
|
|
66
|
+
shape: z.record(z.any()).optional(),
|
|
67
|
+
strict: z.boolean().optional(),
|
|
68
|
+
passthrough: z.boolean().optional(),
|
|
69
|
+
catchall: z.any().optional()
|
|
70
|
+
})
|
|
71
|
+
);
|
|
72
|
+
const actionRegistrationSchema = z.object({
|
|
73
|
+
p: z.literal("hcs-12"),
|
|
74
|
+
op: z.literal("register"),
|
|
75
|
+
t_id: hederaAddressSchema,
|
|
76
|
+
hash: sha256HashSchema,
|
|
77
|
+
wasm_hash: sha256HashSchema,
|
|
78
|
+
js_t_id: hederaAddressSchema.optional(),
|
|
79
|
+
js_hash: sha256HashSchema.optional(),
|
|
80
|
+
interface_version: z.string().regex(/^\d+\.\d+\.\d+$/, "Invalid version format").optional(),
|
|
81
|
+
info_t_id: hederaAddressSchema.optional(),
|
|
82
|
+
source_verification: sourceVerificationSchema.optional(),
|
|
83
|
+
previous_version: z.string().optional(),
|
|
84
|
+
migration_notes: z.string().optional(),
|
|
85
|
+
validation_rules: z.record(validationRuleSchema).optional(),
|
|
86
|
+
m: z.string().optional()
|
|
87
|
+
});
|
|
88
|
+
const blockRegistrationSchema = z.object({
|
|
89
|
+
p: z.literal("hcs-12"),
|
|
90
|
+
op: z.enum(["register", "template"]),
|
|
91
|
+
name: z.string(),
|
|
92
|
+
version: z.string().regex(/^\d+\.\d+\.\d+$/, "Invalid semver format"),
|
|
93
|
+
data: z.union([z.any(), z.string()]).optional(),
|
|
94
|
+
t_id: hederaAddressSchema.optional()
|
|
95
|
+
});
|
|
96
|
+
z.enum([
|
|
97
|
+
"register",
|
|
98
|
+
"add-action",
|
|
99
|
+
"add-block",
|
|
100
|
+
"update"
|
|
101
|
+
]);
|
|
102
|
+
const assemblyRegisterSchema = baseRegistrationSchema.extend({
|
|
103
|
+
op: z.literal("register"),
|
|
104
|
+
name: z.string(),
|
|
105
|
+
version: z.string().regex(/^\d+\.\d+\.\d+$/, "Invalid semver format"),
|
|
106
|
+
description: z.string().optional(),
|
|
107
|
+
tags: z.array(z.string()).optional(),
|
|
108
|
+
author: z.string().optional()
|
|
109
|
+
});
|
|
110
|
+
const assemblyAddActionSchema = baseRegistrationSchema.extend({
|
|
111
|
+
op: z.literal("add-action"),
|
|
112
|
+
t_id: hederaAddressSchema,
|
|
113
|
+
alias: z.string(),
|
|
114
|
+
config: z.any().optional(),
|
|
115
|
+
data: hederaAddressSchema.optional()
|
|
116
|
+
});
|
|
117
|
+
const assemblyAddBlockSchema = baseRegistrationSchema.extend({
|
|
118
|
+
op: z.literal("add-block"),
|
|
119
|
+
block_t_id: hederaAddressSchema,
|
|
120
|
+
actions: z.record(z.string(), hederaAddressSchema).optional(),
|
|
121
|
+
attributes: z.record(z.any()).optional(),
|
|
122
|
+
children: z.array(z.string()).optional(),
|
|
123
|
+
data: hederaAddressSchema.optional()
|
|
124
|
+
});
|
|
125
|
+
const assemblyUpdateSchema = baseRegistrationSchema.extend({
|
|
126
|
+
op: z.literal("update"),
|
|
127
|
+
description: z.string().optional(),
|
|
128
|
+
tags: z.array(z.string()).optional()
|
|
129
|
+
});
|
|
130
|
+
z.object({
|
|
131
|
+
type: z.enum(["vertical", "horizontal", "grid"]),
|
|
132
|
+
responsive: z.boolean().optional(),
|
|
133
|
+
containerClass: z.string().optional()
|
|
134
|
+
});
|
|
135
|
+
z.object({
|
|
136
|
+
source_t_id: hederaAddressSchema,
|
|
137
|
+
source_hash: sha256HashSchema,
|
|
138
|
+
description: z.string().optional()
|
|
139
|
+
});
|
|
140
|
+
const assemblyMessageSchema = z.discriminatedUnion("op", [
|
|
141
|
+
assemblyRegisterSchema,
|
|
142
|
+
assemblyAddActionSchema,
|
|
143
|
+
assemblyAddBlockSchema,
|
|
144
|
+
assemblyUpdateSchema
|
|
145
|
+
]);
|
|
146
|
+
const assemblyRegistrationSchema = assemblyRegisterSchema;
|
|
147
|
+
const hashLinksRegistrationSchema = baseRegistrationSchema.extend({
|
|
148
|
+
op: z.literal("register"),
|
|
149
|
+
t_id: hederaAddressSchema,
|
|
150
|
+
name: z.string().max(100, "Name must be 100 characters or less"),
|
|
151
|
+
description: z.string().max(500, "Description must be 500 characters or less").optional(),
|
|
152
|
+
tags: z.array(z.string()).max(10, "Maximum 10 tags allowed").optional(),
|
|
153
|
+
category: z.string().optional(),
|
|
154
|
+
featured: z.boolean().optional(),
|
|
155
|
+
icon: z.string().optional(),
|
|
156
|
+
author: z.string().optional(),
|
|
157
|
+
website: z.string().url().optional()
|
|
158
|
+
});
|
|
159
|
+
function validateActionRegistration(data) {
|
|
160
|
+
return actionRegistrationSchema.parse(data);
|
|
161
|
+
}
|
|
162
|
+
function validateBlockRegistration(data) {
|
|
163
|
+
return blockRegistrationSchema.parse(data);
|
|
164
|
+
}
|
|
165
|
+
function validateAssemblyMessage(data) {
|
|
166
|
+
return assemblyMessageSchema.parse(data);
|
|
167
|
+
}
|
|
168
|
+
function validateAssemblyRegistration(data) {
|
|
169
|
+
return assemblyRegistrationSchema.parse(data);
|
|
170
|
+
}
|
|
171
|
+
function validateHashLinksRegistration(data) {
|
|
172
|
+
return hashLinksRegistrationSchema.parse(data);
|
|
173
|
+
}
|
|
174
|
+
function safeValidate(schema, data) {
|
|
175
|
+
const result = schema.safeParse(data);
|
|
176
|
+
if (result.success) {
|
|
177
|
+
return { success: true, data: result.data };
|
|
254
178
|
}
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
return suspiciousPatterns.some((pattern) => dataStr.includes(pattern));
|
|
179
|
+
return { success: false, errors: result.error };
|
|
180
|
+
}
|
|
181
|
+
function validateWithSchema(data, schema) {
|
|
182
|
+
const result = schema.safeParse(data);
|
|
183
|
+
if (result.success) {
|
|
184
|
+
return { isValid: true, errors: [], data: result.data };
|
|
262
185
|
}
|
|
186
|
+
return {
|
|
187
|
+
isValid: false,
|
|
188
|
+
errors: result.error.errors.map((e) => `${e.path.join(".")}: ${e.message}`)
|
|
189
|
+
};
|
|
263
190
|
}
|
|
264
191
|
export {
|
|
265
|
-
|
|
192
|
+
actionRegistrationSchema,
|
|
193
|
+
assemblyMessageSchema,
|
|
194
|
+
assemblyRegistrationSchema,
|
|
195
|
+
blockRegistrationSchema,
|
|
196
|
+
hashLinksRegistrationSchema,
|
|
197
|
+
safeValidate,
|
|
198
|
+
validateActionRegistration,
|
|
199
|
+
validateAssemblyMessage,
|
|
200
|
+
validateAssemblyRegistration,
|
|
201
|
+
validateBlockRegistration,
|
|
202
|
+
validateHashLinksRegistration,
|
|
203
|
+
validateWithSchema
|
|
266
204
|
};
|
|
267
205
|
//# sourceMappingURL=standards-sdk.es42.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es42.js","sources":["../../src/hcs-12/validation/wasm-validator.ts"],"sourcesContent":["/**\n * WASM Validator for HCS-12 HashLinks\n *\n * Validates WebAssembly modules for security, compatibility, and HashLink requirements.\n */\n\nimport { Logger } from '../../utils/logger';\nimport { getCryptoAdapter } from '../../utils/crypto-abstraction';\nimport { isSSREnvironment } from '../../utils/crypto-env';\nimport { ModuleInfo } from '../types';\n\nexport interface WasmValidationResult {\n isValid: boolean;\n errors: string[];\n warnings: string[];\n version?: number;\n exports?: string[];\n imports?: ImportInfo[];\n memoryRequirements?: MemoryRequirements;\n exportSignatures?: Record<string, ExportSignature>;\n moduleInfo?: ModuleInfo;\n}\n\nexport interface ImportInfo {\n module: string;\n name: string;\n type: string;\n}\n\nexport interface MemoryRequirements {\n initial: number;\n maximum?: number;\n}\n\nexport interface ExportSignature {\n type: string;\n params: string[];\n results: string[];\n}\n\n/**\n * Validator for WASM modules\n */\nexport class WasmValidator {\n private logger: Logger;\n private cryptoAdapter = getCryptoAdapter();\n\n private readonly REQUIRED_EXPORTS = ['INFO', 'POST', 'GET'];\n\n private readonly ALLOWED_IMPORTS = new Set([\n 'env.console_log',\n 'env.get_network',\n 'env.submit_hcs_message',\n 'env.memory',\n ]);\n\n private readonly MAX_INITIAL_MEMORY = 256;\n\n private readonly WARN_MODULE_SIZE = 1 * 1024 * 1024;\n\n private readonly MAX_MODULE_SIZE = 5 * 1024 * 1024;\n\n constructor(logger: Logger) {\n this.logger = logger;\n }\n\n /**\n * Validate a WASM module\n */\n async validate(wasmData: Uint8Array): Promise<WasmValidationResult> {\n const errors: string[] = [];\n const warnings: string[] = [];\n const result: WasmValidationResult = {\n isValid: true,\n errors,\n warnings,\n };\n\n try {\n if (wasmData.length > this.WARN_MODULE_SIZE) {\n warnings.push(\n `Large module size: ${(wasmData.length / 1024 / 1024).toFixed(2)} MB`,\n );\n }\n if (wasmData.length > this.MAX_MODULE_SIZE) {\n errors.push('Module size exceeds maximum allowed');\n result.isValid = false;\n }\n\n if (!this.validateMagicNumber(wasmData)) {\n errors.push('Invalid WASM magic number');\n result.isValid = false;\n return result;\n }\n\n const version = this.getWasmVersion(wasmData);\n result.version = version;\n if (version !== 1) {\n errors.push(`Unsupported WASM version: ${version}`);\n result.isValid = false;\n return result;\n }\n\n const moduleInfo = await this.parseModule(wasmData);\n\n result.exports = moduleInfo.exports;\n for (const required of this.REQUIRED_EXPORTS) {\n if (!moduleInfo.exports.includes(required)) {\n errors.push(`Missing required export: ${required}`);\n result.isValid = false;\n }\n }\n\n result.imports = moduleInfo.imports;\n for (const imp of moduleInfo.imports) {\n const importName = `${imp.module}.${imp.name}`;\n if (!this.ALLOWED_IMPORTS.has(importName)) {\n errors.push(`Disallowed import: ${importName}`);\n result.isValid = false;\n }\n }\n\n if (moduleInfo.memory) {\n result.memoryRequirements = moduleInfo.memory;\n if (moduleInfo.memory.initial > this.MAX_INITIAL_MEMORY) {\n errors.push(\n `Excessive initial memory: ${moduleInfo.memory.initial} pages`,\n );\n result.isValid = false;\n }\n }\n\n if (moduleInfo.hasStartFunction) {\n warnings.push('Module has start function - may execute code on load');\n }\n\n if (moduleInfo.functionCount > 100) {\n warnings.push(`High function count: ${moduleInfo.functionCount}`);\n }\n\n if (this.hasSuspiciousPatterns(wasmData)) {\n warnings.push('Potentially unsafe operation detected');\n }\n\n result.exportSignatures = moduleInfo.exportSignatures;\n } catch (error) {\n this.logger.error('WASM validation failed', { error });\n errors.push(\n `Validation error: ${error instanceof Error ? error.message : 'Unknown error'}`,\n );\n result.isValid = false;\n }\n\n return result;\n }\n\n /**\n * Validate INFO function return\n */\n async validateInfoFunction(\n infoFunc: () => Promise<string> | string,\n ): Promise<WasmValidationResult> {\n const errors: string[] = [];\n const warnings: string[] = [];\n\n try {\n const infoStr = await infoFunc();\n const info = JSON.parse(infoStr);\n\n if (!info.name || !info.version || !info.hashlinks_version) {\n errors.push('INFO missing required fields');\n return {\n isValid: false,\n errors,\n warnings,\n };\n }\n\n return {\n isValid: true,\n errors,\n warnings,\n moduleInfo: info,\n };\n } catch (error) {\n errors.push('INFO function returned invalid JSON');\n return {\n isValid: false,\n errors,\n warnings,\n };\n }\n }\n\n /**\n * Validate action parameter schemas\n */\n async validateActionSchemas(moduleInfo: any): Promise<WasmValidationResult> {\n const errors: string[] = [];\n const warnings: string[] = [];\n\n if (moduleInfo.validation_rules) {\n for (const [action, rule] of Object.entries(\n moduleInfo.validation_rules,\n )) {\n if (typeof rule !== 'object') {\n errors.push(`Invalid validation rule for action: ${action}`);\n }\n }\n }\n\n return {\n isValid: errors.length === 0,\n errors,\n warnings,\n };\n }\n\n /**\n * Extract metadata from WASM\n */\n async extractMetadata(wasmData: Uint8Array): Promise<any> {\n return {\n size: wasmData.length,\n hash: await this.calculateHash(wasmData),\n producers: { language: ['Unknown'] },\n };\n }\n\n /**\n * Calculate WASM hash\n */\n async calculateHash(wasmData: Uint8Array): Promise<string> {\n if (isSSREnvironment()) {\n return this.createSSRSafeHash(wasmData);\n }\n\n const hasher = this.cryptoAdapter.createHash('sha256');\n const result = hasher.update(Buffer.from(wasmData)).digest('hex');\n const hash = result instanceof Promise ? await result : result;\n return typeof hash === 'string' ? hash : hash.toString('hex');\n }\n\n /**\n * Create SSR-safe hash for WASM data\n */\n private createSSRSafeHash(wasmData: Uint8Array): string {\n let hash = 0;\n for (let i = 0; i < Math.min(wasmData.length, 1024); i++) {\n hash = ((hash << 5) - hash + wasmData[i]) & 0xffffffff;\n }\n return `ssr-wasm-${wasmData.length}-${Math.abs(hash).toString(16).padStart(8, '0')}`;\n }\n\n /**\n * Validate WASM magic number\n */\n private validateMagicNumber(data: Uint8Array): boolean {\n return (\n data.length >= 4 &&\n data[0] === 0x00 &&\n data[1] === 0x61 &&\n data[2] === 0x73 &&\n data[3] === 0x6d\n );\n }\n\n /**\n * Get WASM version\n */\n private getWasmVersion(data: Uint8Array): number {\n if (data.length < 8) return 0;\n return data[4] | (data[5] << 8) | (data[6] << 16) | (data[7] << 24);\n }\n\n /**\n * Parse WASM module (simplified for testing)\n */\n private async parseModule(data: Uint8Array): Promise<any> {\n const textData = data.slice(8);\n const dataStr = new TextDecoder('utf-8', { fatal: false }).decode(textData);\n\n const exports: string[] = [];\n if (dataStr.includes('INFO')) exports.push('INFO');\n if (dataStr.includes('POST')) exports.push('POST');\n if (dataStr.includes('GET')) exports.push('GET');\n\n if (exports.length === 0 && data.length > 8) {\n exports.push('INFO', 'POST', 'GET');\n }\n\n const imports: ImportInfo[] = [];\n const importParts = dataStr.split('import:');\n for (let i = 1; i < importParts.length; i++) {\n const part = importParts[i];\n const match = part.match(\n /^([a-zA-Z_]+[a-zA-Z0-9_]*)\\.([a-zA-Z_]+[a-zA-Z0-9_]*)/,\n );\n if (match) {\n imports.push({\n module: match[1],\n name: match[2],\n type: 'function',\n });\n }\n }\n\n let initial = 1;\n let maximum = 16;\n const memMatch = dataStr.match(/memory:(\\d+)(?:-(\\d+))?/);\n if (memMatch) {\n initial = parseInt(memMatch[1]);\n if (memMatch[2]) maximum = parseInt(memMatch[2]);\n }\n\n let functionCount = 10;\n const funcMatch = dataStr.match(/functions:(\\d+)/);\n if (funcMatch) {\n functionCount = parseInt(funcMatch[1]);\n }\n\n const hasStartFunction = dataStr.includes('start:true');\n\n return {\n exports,\n imports,\n memory: { initial, maximum },\n functionCount,\n hasStartFunction,\n exportSignatures: {\n INFO: { type: 'function', params: [], results: ['i32'] },\n POST: {\n type: 'function',\n params: ['i32', 'i32', 'i32', 'i32'],\n results: ['i32'],\n },\n GET: {\n type: 'function',\n params: ['i32', 'i32', 'i32'],\n results: ['i32'],\n },\n },\n };\n }\n\n /**\n * Check for suspicious patterns\n */\n private hasSuspiciousPatterns(data: Uint8Array): boolean {\n const dataStr = new TextDecoder('utf-8', { fatal: false }).decode(data);\n const suspiciousPatterns = ['eval', '__proto__', 'constructor'];\n\n return suspiciousPatterns.some(pattern => dataStr.includes(pattern));\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"standards-sdk.es42.js","sources":["../../src/hcs-12/validation/schemas.ts"],"sourcesContent":["/**\n * Zod validation schemas for HCS-12 registries\n *\n * Provides comprehensive validation for all HCS-12 registration types\n * following the standard specification exactly.\n */\n\nimport { z } from 'zod';\n\n/**\n * Common HCS-12 protocol fields\n */\nconst baseRegistrationSchema = z.object({\n p: z.literal('hcs-12'),\n});\n\n/**\n * Hedera address format validation\n */\nconst hederaAddressSchema = z\n .string()\n .regex(/^\\d+\\.\\d+\\.\\d+$/, 'Invalid Hedera address format');\n\n/**\n * SHA-256 hash format validation\n */\nconst sha256HashSchema = z\n .string()\n .regex(/^[a-f0-9]{64}$/, 'Invalid SHA-256 hash format');\n\n/**\n * Source structure schema\n */\nconst sourceStructureSchema = z.object({\n format: z.enum(['tar.gz', 'zip', 'car']),\n root_manifest: z.string(),\n includes_lockfile: z.boolean(),\n workspace_members: z.array(z.string()).optional(),\n});\n\n/**\n * Source verification schema\n */\nconst sourceVerificationSchema = z.object({\n source_t_id: hederaAddressSchema,\n source_hash: sha256HashSchema,\n compiler_version: z.string(),\n cargo_version: z.string(),\n target: z.literal('wasm32-unknown-unknown'),\n profile: z.string(),\n build_flags: z.array(z.string()),\n lockfile_hash: sha256HashSchema,\n source_structure: sourceStructureSchema,\n});\n\n/**\n * Validation rule schema (mirrors Zod API)\n */\nconst validationRuleSchema: z.ZodType<any> = z.lazy(() =>\n z.object({\n type: z.string().optional(),\n required: z.array(z.string()).optional(),\n properties: z.record(validationRuleSchema).optional(),\n pattern: z.string().optional(),\n minimum: z.number().optional(),\n maximum: z.number().optional(),\n\n regex: z.string().optional(),\n min: z.number().optional(),\n max: z.number().optional(),\n length: z.number().optional(),\n email: z.boolean().optional(),\n url: z.boolean().optional(),\n uuid: z.boolean().optional(),\n cuid: z.boolean().optional(),\n cuid2: z.boolean().optional(),\n ulid: z.boolean().optional(),\n datetime: z.boolean().optional(),\n ip: z.boolean().optional(),\n startsWith: z.string().optional(),\n endsWith: z.string().optional(),\n includes: z.string().optional(),\n\n gt: z.number().optional(),\n gte: z.number().optional(),\n lt: z.number().optional(),\n lte: z.number().optional(),\n int: z.boolean().optional(),\n positive: z.boolean().optional(),\n nonnegative: z.boolean().optional(),\n negative: z.boolean().optional(),\n nonpositive: z.boolean().optional(),\n multipleOf: z.number().optional(),\n finite: z.boolean().optional(),\n safe: z.boolean().optional(),\n\n nonempty: z.boolean().optional(),\n\n literal: z.union([z.string(), z.number(), z.boolean()]).optional(),\n enum: z.array(z.string()).optional(),\n nullable: z.boolean().optional(),\n nullish: z.boolean().optional(),\n optional: z.boolean().optional(),\n\n element: z.any().optional(),\n shape: z.record(z.any()).optional(),\n strict: z.boolean().optional(),\n passthrough: z.boolean().optional(),\n catchall: z.any().optional(),\n }),\n);\n\n/**\n * Action registration schema - follows HCS-12 spec exactly\n */\nexport const actionRegistrationSchema = z.object({\n p: z.literal('hcs-12'),\n op: z.literal('register'),\n t_id: hederaAddressSchema,\n hash: sha256HashSchema,\n wasm_hash: sha256HashSchema,\n js_t_id: hederaAddressSchema.optional(),\n js_hash: sha256HashSchema.optional(),\n interface_version: z\n .string()\n .regex(/^\\d+\\.\\d+\\.\\d+$/, 'Invalid version format')\n .optional(),\n info_t_id: hederaAddressSchema.optional(),\n source_verification: sourceVerificationSchema.optional(),\n previous_version: z.string().optional(),\n migration_notes: z.string().optional(),\n validation_rules: z.record(validationRuleSchema).optional(),\n m: z.string().optional(),\n});\n\n/**\n * Block registration schema - follows HCS-12 spec exactly\n */\nexport const blockRegistrationSchema = z.object({\n p: z.literal('hcs-12'),\n op: z.enum(['register', 'template']),\n name: z.string(),\n version: z.string().regex(/^\\d+\\.\\d+\\.\\d+$/, 'Invalid semver format'),\n data: z.union([z.any(), z.string()]).optional(),\n t_id: hederaAddressSchema.optional(),\n});\n\n/**\n * Assembly operations\n */\nconst assemblyOperationSchema = z.enum([\n 'register',\n 'add-action',\n 'add-block',\n 'update',\n]);\n\n/**\n * Assembly registration schema\n */\nconst assemblyRegisterSchema = baseRegistrationSchema.extend({\n op: z.literal('register'),\n name: z.string(),\n version: z.string().regex(/^\\d+\\.\\d+\\.\\d+$/, 'Invalid semver format'),\n description: z.string().optional(),\n tags: z.array(z.string()).optional(),\n author: z.string().optional(),\n});\n\n/**\n * Assembly add-action schema\n */\nconst assemblyAddActionSchema = baseRegistrationSchema.extend({\n op: z.literal('add-action'),\n t_id: hederaAddressSchema,\n alias: z.string(),\n config: z.any().optional(),\n data: hederaAddressSchema.optional(),\n});\n\n/**\n * Assembly add-block schema\n */\nconst assemblyAddBlockSchema = baseRegistrationSchema.extend({\n op: z.literal('add-block'),\n block_t_id: hederaAddressSchema,\n actions: z.record(z.string(), hederaAddressSchema).optional(),\n attributes: z.record(z.any()).optional(),\n children: z.array(z.string()).optional(),\n data: hederaAddressSchema.optional(),\n});\n\n/**\n * Assembly update schema\n */\nconst assemblyUpdateSchema = baseRegistrationSchema.extend({\n op: z.literal('update'),\n description: z.string().optional(),\n tags: z.array(z.string()).optional(),\n});\n\n/**\n * Assembly layout schema\n */\nconst assemblyLayoutSchema = z.object({\n type: z.enum(['vertical', 'horizontal', 'grid']),\n responsive: z.boolean().optional(),\n containerClass: z.string().optional(),\n});\n\n/**\n * Assembly source verification schema\n */\nconst assemblySourceVerificationSchema = z.object({\n source_t_id: hederaAddressSchema,\n source_hash: sha256HashSchema,\n description: z.string().optional(),\n});\n\n/**\n * Assembly message schema - union of all operation types\n */\nexport const assemblyMessageSchema = z.discriminatedUnion('op', [\n assemblyRegisterSchema,\n assemblyAddActionSchema,\n assemblyAddBlockSchema,\n assemblyUpdateSchema,\n]);\n\n/**\n * Legacy assembly registration schema for backwards compatibility\n */\nexport const assemblyRegistrationSchema = assemblyRegisterSchema;\n\n/**\n * HashLinks registration schema - for global directory\n */\nexport const hashLinksRegistrationSchema = baseRegistrationSchema.extend({\n op: z.literal('register'),\n t_id: hederaAddressSchema,\n name: z.string().max(100, 'Name must be 100 characters or less'),\n description: z\n .string()\n .max(500, 'Description must be 500 characters or less')\n .optional(),\n tags: z.array(z.string()).max(10, 'Maximum 10 tags allowed').optional(),\n category: z.string().optional(),\n featured: z.boolean().optional(),\n icon: z.string().optional(),\n author: z.string().optional(),\n website: z.string().url().optional(),\n});\n\n/**\n * Validate action registration\n */\nexport function validateActionRegistration(\n data: unknown,\n): z.infer<typeof actionRegistrationSchema> {\n return actionRegistrationSchema.parse(data);\n}\n\n/**\n * Validate block registration\n */\nexport function validateBlockRegistration(\n data: unknown,\n): z.infer<typeof blockRegistrationSchema> {\n return blockRegistrationSchema.parse(data);\n}\n\n/**\n * Validate assembly message (any operation type)\n */\nexport function validateAssemblyMessage(\n data: unknown,\n): z.infer<typeof assemblyMessageSchema> {\n return assemblyMessageSchema.parse(data);\n}\n\n/**\n * Validate assembly registration\n */\nexport function validateAssemblyRegistration(\n data: unknown,\n): z.infer<typeof assemblyRegistrationSchema> {\n return assemblyRegistrationSchema.parse(data);\n}\n\n/**\n * Validate HashLinks registration\n */\nexport function validateHashLinksRegistration(\n data: unknown,\n): z.infer<typeof hashLinksRegistrationSchema> {\n return hashLinksRegistrationSchema.parse(data);\n}\n\n/**\n * Type-safe validation with error details\n */\nexport function safeValidate<T>(\n schema: z.ZodSchema<T>,\n data: unknown,\n): { success: true; data: T } | { success: false; errors: z.ZodError } {\n const result = schema.safeParse(data);\n if (result.success) {\n return { success: true, data: result.data };\n }\n return { success: false, errors: result.error };\n}\n\n/**\n * Validate data against a schema and return validation result\n */\nexport function validateWithSchema<T>(\n data: unknown,\n schema: z.ZodSchema<T>,\n): { isValid: boolean; errors: string[]; data?: T } {\n const result = schema.safeParse(data);\n if (result.success) {\n return { isValid: true, errors: [], data: result.data };\n }\n return {\n isValid: false,\n errors: result.error.errors.map(e => `${e.path.join('.')}: ${e.message}`),\n };\n}\n"],"names":[],"mappings":"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"}
|