@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,355 +1,465 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
this.
|
|
1
|
+
import { HCS } from "./standards-sdk.es2.js";
|
|
2
|
+
import { isSSREnvironment } from "./standards-sdk.es117.js";
|
|
3
|
+
class ResourceManager {
|
|
4
|
+
constructor(networkType, logger, hcs, options = {}) {
|
|
5
|
+
this.cache = /* @__PURE__ */ new Map();
|
|
6
|
+
this.currentCacheSize = 0;
|
|
7
|
+
this.supportedImageTypes = /* @__PURE__ */ new Set([
|
|
8
|
+
"image/png",
|
|
9
|
+
"image/jpeg",
|
|
10
|
+
"image/jpg",
|
|
11
|
+
"image/gif",
|
|
12
|
+
"image/svg+xml",
|
|
13
|
+
"image/webp"
|
|
14
|
+
]);
|
|
15
|
+
this.dangerousJSPatterns = [
|
|
16
|
+
/eval\s*\(/g,
|
|
17
|
+
/Function\s*\(/g,
|
|
18
|
+
/setTimeout\s*\(\s*["'].*["']/g,
|
|
19
|
+
/setInterval\s*\(\s*["'].*["']/g,
|
|
20
|
+
/document\.write/g,
|
|
21
|
+
/innerHTML\s*=/g,
|
|
22
|
+
/outerHTML\s*=/g
|
|
23
|
+
];
|
|
24
|
+
this.dangerousCSSPatterns = [
|
|
25
|
+
/javascript\s*:/gi,
|
|
26
|
+
/@import.*url\s*\(\s*["']?javascript:/gi,
|
|
27
|
+
/expression\s*\(/gi,
|
|
28
|
+
/behavior\s*:/gi
|
|
29
|
+
];
|
|
6
30
|
this.logger = logger;
|
|
7
|
-
this.
|
|
31
|
+
this.hcs = hcs || new HCS();
|
|
32
|
+
this.options = {
|
|
33
|
+
cacheTTL: options.cacheTTL || 3e5,
|
|
34
|
+
maxCacheSize: options.maxCacheSize || 50 * 1024 * 1024,
|
|
35
|
+
maxResourceSize: options.maxResourceSize || 5 * 1024 * 1024
|
|
36
|
+
};
|
|
8
37
|
}
|
|
9
38
|
/**
|
|
10
|
-
*
|
|
39
|
+
* Load CSS resource from HCS-3
|
|
11
40
|
*/
|
|
12
|
-
async
|
|
13
|
-
this.logger.debug("
|
|
14
|
-
templateLength: template.length,
|
|
15
|
-
context: JSON.stringify(context, null, 2),
|
|
16
|
-
attributesType: context.attributes ? typeof context.attributes : "undefined",
|
|
17
|
-
contextKeys: Object.keys(context)
|
|
18
|
-
});
|
|
41
|
+
async loadCSS(topicId) {
|
|
42
|
+
this.logger.debug("Loading CSS resource", { topicId });
|
|
19
43
|
try {
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
compiled = await this.compileTemplate(template);
|
|
24
|
-
this.templateCache.set(cacheKey, compiled);
|
|
44
|
+
const resource = await this.loadResource(topicId);
|
|
45
|
+
if (resource.contentType !== "text/css") {
|
|
46
|
+
throw new Error(`Expected CSS resource, got ${resource.contentType}`);
|
|
25
47
|
}
|
|
26
|
-
const
|
|
27
|
-
this.
|
|
28
|
-
|
|
48
|
+
const content = resource.content;
|
|
49
|
+
const sanitized = this.sanitizeCSS(content);
|
|
50
|
+
this.logger.debug("CSS resource loaded successfully", {
|
|
51
|
+
topicId,
|
|
52
|
+
size: content.length,
|
|
53
|
+
sanitized: sanitized.length !== content.length
|
|
29
54
|
});
|
|
30
|
-
return
|
|
55
|
+
return sanitized;
|
|
31
56
|
} catch (error) {
|
|
32
|
-
this.logger.error("
|
|
57
|
+
this.logger.error("Failed to load CSS resource", { topicId, error });
|
|
33
58
|
throw new Error(
|
|
34
|
-
`
|
|
59
|
+
`Failed to load CSS resource: ${error instanceof Error ? error.message : "Unknown error"}`
|
|
35
60
|
);
|
|
36
61
|
}
|
|
37
62
|
}
|
|
38
63
|
/**
|
|
39
|
-
*
|
|
64
|
+
* Load JavaScript resource from HCS-3
|
|
40
65
|
*/
|
|
41
|
-
async
|
|
42
|
-
this.logger.debug("
|
|
43
|
-
name,
|
|
44
|
-
templateLength: template.length
|
|
45
|
-
});
|
|
66
|
+
async loadJS(topicId) {
|
|
67
|
+
this.logger.debug("Loading JavaScript resource", { topicId });
|
|
46
68
|
try {
|
|
47
|
-
const
|
|
48
|
-
|
|
49
|
-
|
|
69
|
+
const resource = await this.loadResource(topicId);
|
|
70
|
+
if (!resource.contentType.includes("javascript") && !resource.contentType.includes("ecmascript")) {
|
|
71
|
+
throw new Error(
|
|
72
|
+
`Expected JavaScript resource, got ${resource.contentType}`
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
const content = resource.content;
|
|
76
|
+
if (content.length > this.options.maxResourceSize) {
|
|
77
|
+
throw new Error("JavaScript resource too large");
|
|
78
|
+
}
|
|
79
|
+
const sanitized = this.sanitizeJavaScript(content);
|
|
80
|
+
this.logger.debug("JavaScript resource loaded successfully", {
|
|
81
|
+
topicId,
|
|
82
|
+
size: content.length,
|
|
83
|
+
sanitized: sanitized.length !== content.length
|
|
84
|
+
});
|
|
85
|
+
return sanitized;
|
|
50
86
|
} catch (error) {
|
|
51
|
-
this.logger.error("
|
|
87
|
+
this.logger.error("Failed to load JavaScript resource", {
|
|
88
|
+
topicId,
|
|
89
|
+
error
|
|
90
|
+
});
|
|
52
91
|
throw new Error(
|
|
53
|
-
`
|
|
92
|
+
`Failed to load JavaScript resource: ${error instanceof Error ? error.message : "Unknown error"}`
|
|
54
93
|
);
|
|
55
94
|
}
|
|
56
95
|
}
|
|
57
96
|
/**
|
|
58
|
-
*
|
|
97
|
+
* Load image resource from HCS-3 as Blob
|
|
59
98
|
*/
|
|
60
|
-
async
|
|
61
|
-
|
|
62
|
-
if (!compiled) {
|
|
63
|
-
throw new Error(`Precompiled template '${name}' not found`);
|
|
64
|
-
}
|
|
65
|
-
this.logger.debug("Rendering precompiled template", { name });
|
|
99
|
+
async loadImage(topicId) {
|
|
100
|
+
this.logger.debug("Loading image resource", { topicId });
|
|
66
101
|
try {
|
|
67
|
-
const
|
|
68
|
-
this.
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
102
|
+
const resource = await this.loadResource(topicId);
|
|
103
|
+
if (!this.supportedImageTypes.has(resource.contentType)) {
|
|
104
|
+
throw new Error(`Unsupported image format: ${resource.contentType}`);
|
|
105
|
+
}
|
|
106
|
+
const content = resource.content;
|
|
107
|
+
const view = new Uint8Array(content);
|
|
108
|
+
const blob = new Blob([view.buffer], { type: resource.contentType });
|
|
109
|
+
this.logger.debug("Image resource loaded successfully", {
|
|
110
|
+
topicId,
|
|
111
|
+
size: content.length,
|
|
112
|
+
type: resource.contentType
|
|
74
113
|
});
|
|
114
|
+
return blob;
|
|
115
|
+
} catch (error) {
|
|
116
|
+
this.logger.error("Failed to load image resource", { topicId, error });
|
|
75
117
|
throw new Error(
|
|
76
|
-
`
|
|
118
|
+
`Failed to load image resource: ${error instanceof Error ? error.message : "Unknown error"}`
|
|
77
119
|
);
|
|
78
120
|
}
|
|
79
121
|
}
|
|
80
122
|
/**
|
|
81
|
-
*
|
|
123
|
+
* Load template resource from HCS-3
|
|
82
124
|
*/
|
|
83
|
-
|
|
84
|
-
this.
|
|
85
|
-
|
|
125
|
+
async loadTemplate(topicId) {
|
|
126
|
+
this.logger.debug("Loading template resource", { topicId });
|
|
127
|
+
try {
|
|
128
|
+
const resource = await this.loadResource(topicId);
|
|
129
|
+
const content = resource.content;
|
|
130
|
+
this.validateTemplateSyntax(content);
|
|
131
|
+
const sanitized = this.sanitizeTemplate(content);
|
|
132
|
+
this.logger.debug("Template resource loaded successfully", {
|
|
133
|
+
topicId,
|
|
134
|
+
size: content.length
|
|
135
|
+
});
|
|
136
|
+
return sanitized;
|
|
137
|
+
} catch (error) {
|
|
138
|
+
this.logger.error("Failed to load template resource", { topicId, error });
|
|
139
|
+
throw new Error(
|
|
140
|
+
`Failed to load template resource: ${error instanceof Error ? error.message : "Unknown error"}`
|
|
141
|
+
);
|
|
142
|
+
}
|
|
86
143
|
}
|
|
87
144
|
/**
|
|
88
|
-
*
|
|
145
|
+
* Load resource with integrity verification
|
|
89
146
|
*/
|
|
90
|
-
|
|
91
|
-
this.
|
|
92
|
-
|
|
147
|
+
async loadWithIntegrityCheck(topicId, expectedHash) {
|
|
148
|
+
this.logger.debug("Loading resource with integrity check", {
|
|
149
|
+
topicId,
|
|
150
|
+
expectedHash
|
|
151
|
+
});
|
|
152
|
+
try {
|
|
153
|
+
const resource = await this.loadResource(topicId);
|
|
154
|
+
const verified = await this.verifyIntegrity(
|
|
155
|
+
resource.content,
|
|
156
|
+
expectedHash
|
|
157
|
+
);
|
|
158
|
+
if (!verified) {
|
|
159
|
+
throw new Error("Resource integrity verification failed");
|
|
160
|
+
}
|
|
161
|
+
this.logger.debug("Resource integrity verified", { topicId });
|
|
162
|
+
return {
|
|
163
|
+
content: resource.content,
|
|
164
|
+
verified,
|
|
165
|
+
contentType: resource.contentType
|
|
166
|
+
};
|
|
167
|
+
} catch (error) {
|
|
168
|
+
this.logger.error("Resource integrity check failed", { topicId, error });
|
|
169
|
+
throw error;
|
|
170
|
+
}
|
|
93
171
|
}
|
|
94
172
|
/**
|
|
95
|
-
*
|
|
173
|
+
* Verify content integrity using SHA-256 hash
|
|
96
174
|
*/
|
|
97
|
-
|
|
98
|
-
|
|
175
|
+
async verifyIntegrity(content, expectedHash) {
|
|
176
|
+
try {
|
|
177
|
+
if (isSSREnvironment()) {
|
|
178
|
+
this.logger.warn("Integrity verification skipped in SSR environment");
|
|
179
|
+
return true;
|
|
180
|
+
}
|
|
181
|
+
const webCrypto = globalThis.crypto;
|
|
182
|
+
if (typeof webCrypto === "undefined" || !webCrypto.subtle) {
|
|
183
|
+
this.logger.warn(
|
|
184
|
+
"WebCrypto not available, skipping integrity verification"
|
|
185
|
+
);
|
|
186
|
+
return true;
|
|
187
|
+
}
|
|
188
|
+
const buffer = typeof content === "string" ? new TextEncoder().encode(content) : content;
|
|
189
|
+
const bytes = buffer instanceof Uint8Array ? buffer : new Uint8Array(buffer);
|
|
190
|
+
const copy = new Uint8Array(bytes);
|
|
191
|
+
const hashBuffer = await webCrypto.subtle.digest("SHA-256", copy.buffer);
|
|
192
|
+
const hashArray = Array.from(new Uint8Array(hashBuffer));
|
|
193
|
+
const actualHash = hashArray.map((b) => b.toString(16).padStart(2, "0")).join("");
|
|
194
|
+
return actualHash === expectedHash.toLowerCase();
|
|
195
|
+
} catch (error) {
|
|
196
|
+
this.logger.error("Error verifying integrity", { error });
|
|
197
|
+
return false;
|
|
198
|
+
}
|
|
99
199
|
}
|
|
100
200
|
/**
|
|
101
|
-
*
|
|
201
|
+
* Load multiple dependencies in correct order
|
|
102
202
|
*/
|
|
103
|
-
async
|
|
104
|
-
this.
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
203
|
+
async loadDependencies(dependencies) {
|
|
204
|
+
this.logger.debug("Loading dependencies", { count: dependencies.length });
|
|
205
|
+
try {
|
|
206
|
+
this.detectCircularDependencies(dependencies);
|
|
207
|
+
const sorted = this.topologicalSort(dependencies);
|
|
208
|
+
const results = [];
|
|
209
|
+
for (const dep of sorted) {
|
|
210
|
+
let content;
|
|
211
|
+
switch (dep.type) {
|
|
212
|
+
case "css":
|
|
213
|
+
content = await this.loadCSS(dep.topicId);
|
|
214
|
+
break;
|
|
215
|
+
case "js":
|
|
216
|
+
content = await this.loadJS(dep.topicId);
|
|
217
|
+
break;
|
|
218
|
+
case "template":
|
|
219
|
+
content = await this.loadTemplate(dep.topicId);
|
|
220
|
+
break;
|
|
221
|
+
case "image":
|
|
222
|
+
const blob = await this.loadImage(dep.topicId);
|
|
223
|
+
content = new Uint8Array(await blob.arrayBuffer());
|
|
224
|
+
break;
|
|
225
|
+
default:
|
|
226
|
+
throw new Error(`Unsupported dependency type: ${dep.type}`);
|
|
227
|
+
}
|
|
228
|
+
results.push({
|
|
229
|
+
topicId: dep.topicId,
|
|
230
|
+
content,
|
|
231
|
+
contentType: this.getContentTypeForType(dep.type),
|
|
232
|
+
type: dep.type
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
this.logger.debug("Dependencies loaded successfully", {
|
|
236
|
+
count: results.length
|
|
237
|
+
});
|
|
238
|
+
return results;
|
|
239
|
+
} catch (error) {
|
|
240
|
+
this.logger.error("Failed to load dependencies", { error });
|
|
241
|
+
throw error;
|
|
242
|
+
}
|
|
111
243
|
}
|
|
112
244
|
/**
|
|
113
|
-
*
|
|
245
|
+
* Clear resource cache
|
|
114
246
|
*/
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
result = this.processConditionals(result, context);
|
|
120
|
-
result = this.processVariables(result, context);
|
|
121
|
-
return result;
|
|
247
|
+
clearCache() {
|
|
248
|
+
this.cache.clear();
|
|
249
|
+
this.currentCacheSize = 0;
|
|
250
|
+
this.logger.debug("Resource cache cleared");
|
|
122
251
|
}
|
|
123
252
|
/**
|
|
124
|
-
*
|
|
253
|
+
* Get current cache size for testing
|
|
125
254
|
*/
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
const nestedIfElseRegex = /\{\{#if\s+([^}]+)\}\}((?:[^{]|\{(?!\{)|\{\{(?!#if|\{#else|\{\/if))*?)\{\{#if\s+([^}]+)\}\}((?:[^{]|\{(?!\{)|\{\{(?!#if|#else|\/if))*?)\{\{else\}\}((?:[^{]|\{(?!\{)|\{\{(?!#if|#else|\/if))*?)\{\{\/if\}\}((?:[^{]|\{(?!\{)|\{\{(?!\/if))*?)\{\{\/if\}\}/gs;
|
|
129
|
-
result = result.replace(
|
|
130
|
-
nestedIfElseRegex,
|
|
131
|
-
(match, outerCondition, beforeInner, innerCondition, innerTrue, innerFalse, afterInner) => {
|
|
132
|
-
const outerValue = this.evaluateCondition(outerCondition, context);
|
|
133
|
-
if (!outerValue) return "";
|
|
134
|
-
const innerValue = this.evaluateCondition(innerCondition, context);
|
|
135
|
-
const innerResult = innerValue ? innerTrue : innerFalse;
|
|
136
|
-
return beforeInner + innerResult + afterInner;
|
|
137
|
-
}
|
|
138
|
-
);
|
|
139
|
-
const ifElseRegex = /\{\{#if\s+([^}]+)\}\}((?:[^{]|\{(?!\{)|\{\{(?!else|\/if))*?)\{\{else\}\}((?:[^{]|\{(?!\{)|\{\{(?!\/if))*?)\{\{\/if\}\}/gs;
|
|
140
|
-
result = result.replace(
|
|
141
|
-
ifElseRegex,
|
|
142
|
-
(match, condition, trueBranch, falseBranch) => {
|
|
143
|
-
const conditionValue = this.evaluateCondition(condition, context);
|
|
144
|
-
return conditionValue ? trueBranch : falseBranch;
|
|
145
|
-
}
|
|
146
|
-
);
|
|
147
|
-
const ifRegex = /\{\{#if\s+([^}]+)\}\}((?:[^{]|\{(?!\{)|\{\{(?!\/if))*?)\{\{\/if\}\}/gs;
|
|
148
|
-
result = result.replace(ifRegex, (match, condition, content) => {
|
|
149
|
-
const conditionValue = this.evaluateCondition(condition, context);
|
|
150
|
-
return conditionValue ? content : "";
|
|
151
|
-
});
|
|
152
|
-
const unlessRegex = /\{\{#unless\s+([^}]+)\}\}((?:[^{]|\{(?!\{)|\{\{(?!\/unless))*?)\{\{\/unless\}\}/gs;
|
|
153
|
-
result = result.replace(unlessRegex, (match, condition, content) => {
|
|
154
|
-
const conditionValue = this.evaluateCondition(condition, context);
|
|
155
|
-
return !conditionValue ? content : "";
|
|
156
|
-
});
|
|
157
|
-
return result;
|
|
255
|
+
getCacheSize() {
|
|
256
|
+
return this.currentCacheSize;
|
|
158
257
|
}
|
|
159
258
|
/**
|
|
160
|
-
*
|
|
259
|
+
* Load resource with caching
|
|
161
260
|
*/
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
);
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
itemContent = itemContent.replace(
|
|
187
|
-
/\{\{\.\.\/([^}]+)\}\}/g,
|
|
188
|
-
(parentMatch, parentPath) => {
|
|
189
|
-
const parentValue = this.getNestedValue(parentPath, context);
|
|
190
|
-
return this.escapeHtml(String(parentValue || ""));
|
|
191
|
-
}
|
|
192
|
-
);
|
|
193
|
-
loopResult += itemContent;
|
|
194
|
-
});
|
|
195
|
-
} else if (typeof items === "object") {
|
|
196
|
-
for (const [key, value] of Object.entries(items)) {
|
|
197
|
-
let itemContent = content;
|
|
198
|
-
itemContent = itemContent.replace(
|
|
199
|
-
/\{\{@key\}\}/g,
|
|
200
|
-
this.escapeHtml(key)
|
|
201
|
-
);
|
|
202
|
-
itemContent = itemContent.replace(
|
|
203
|
-
/\{\{this\}\}/g,
|
|
204
|
-
this.escapeHtml(String(value))
|
|
205
|
-
);
|
|
206
|
-
loopResult += itemContent;
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
return loopResult;
|
|
210
|
-
});
|
|
211
|
-
return result;
|
|
261
|
+
async loadResource(topicId) {
|
|
262
|
+
const cached = this.getFromCache(topicId);
|
|
263
|
+
if (cached) {
|
|
264
|
+
this.logger.debug("Resource loaded from cache", { topicId });
|
|
265
|
+
return cached;
|
|
266
|
+
}
|
|
267
|
+
const blob = await this.hcs.retrieveHCS1Data(topicId);
|
|
268
|
+
const contentType = blob.type || "application/octet-stream";
|
|
269
|
+
let content;
|
|
270
|
+
if (contentType.startsWith("text/") || contentType.includes("javascript") || contentType.includes("json")) {
|
|
271
|
+
content = await blob.text();
|
|
272
|
+
} else {
|
|
273
|
+
content = new Uint8Array(await blob.arrayBuffer());
|
|
274
|
+
}
|
|
275
|
+
const resource = {
|
|
276
|
+
content,
|
|
277
|
+
contentType,
|
|
278
|
+
size: blob.size
|
|
279
|
+
};
|
|
280
|
+
this.addToCache(topicId, resource);
|
|
281
|
+
return resource;
|
|
212
282
|
}
|
|
213
283
|
/**
|
|
214
|
-
*
|
|
284
|
+
* Get resource from cache if valid
|
|
215
285
|
*/
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
return
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
result = result.replace(doubleRegex, (match, variable) => {
|
|
225
|
-
const trimmed = variable.trim();
|
|
226
|
-
if (trimmed.startsWith("#") || trimmed.startsWith("/") || trimmed.startsWith("else")) {
|
|
227
|
-
return match;
|
|
228
|
-
}
|
|
229
|
-
const value = this.getNestedValue(trimmed, context);
|
|
230
|
-
if (value === 0 || value === false) {
|
|
231
|
-
return this.escapeHtml(String(value));
|
|
232
|
-
}
|
|
233
|
-
return this.escapeHtml(String(value || ""));
|
|
234
|
-
});
|
|
235
|
-
return result;
|
|
286
|
+
getFromCache(topicId) {
|
|
287
|
+
const entry = this.cache.get(topicId);
|
|
288
|
+
if (!entry) return null;
|
|
289
|
+
if (Date.now() - entry.timestamp > this.options.cacheTTL) {
|
|
290
|
+
this.removeFromCache(topicId);
|
|
291
|
+
return null;
|
|
292
|
+
}
|
|
293
|
+
return entry.data;
|
|
236
294
|
}
|
|
237
295
|
/**
|
|
238
|
-
*
|
|
296
|
+
* Add resource to cache with size management
|
|
239
297
|
*/
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
for (const [helperName, helperFunc] of this.helpers) {
|
|
249
|
-
const helperRegex = new RegExp(
|
|
250
|
-
`\\{\\{${helperName}\\s+([^}]+)\\}\\}`,
|
|
251
|
-
"g"
|
|
252
|
-
);
|
|
253
|
-
result = result.replace(helperRegex, (match, args) => {
|
|
254
|
-
try {
|
|
255
|
-
const argValue = this.getNestedValue(args.trim(), context);
|
|
256
|
-
return this.escapeHtml(helperFunc.call(context, argValue));
|
|
257
|
-
} catch (error) {
|
|
258
|
-
this.logger.warn("Helper execution failed", { helperName, error });
|
|
259
|
-
return "";
|
|
260
|
-
}
|
|
261
|
-
});
|
|
298
|
+
addToCache(topicId, resource) {
|
|
299
|
+
const size = typeof resource.content === "string" ? resource.content.length : resource.content.byteLength;
|
|
300
|
+
if (size > this.options.maxCacheSize / 2) {
|
|
301
|
+
this.logger.warn("Resource too large for cache", { topicId, size });
|
|
302
|
+
return;
|
|
303
|
+
}
|
|
304
|
+
while (this.currentCacheSize + size > this.options.maxCacheSize && this.cache.size > 0) {
|
|
305
|
+
this.evictOldestEntry();
|
|
262
306
|
}
|
|
263
|
-
|
|
307
|
+
const entry = {
|
|
308
|
+
data: resource,
|
|
309
|
+
timestamp: Date.now(),
|
|
310
|
+
size
|
|
311
|
+
};
|
|
312
|
+
this.cache.set(topicId, entry);
|
|
313
|
+
this.currentCacheSize += size;
|
|
314
|
+
this.logger.debug("Resource added to cache", {
|
|
315
|
+
topicId,
|
|
316
|
+
size,
|
|
317
|
+
totalCacheSize: this.currentCacheSize
|
|
318
|
+
});
|
|
264
319
|
}
|
|
265
320
|
/**
|
|
266
|
-
*
|
|
321
|
+
* Remove resource from cache
|
|
267
322
|
*/
|
|
268
|
-
|
|
269
|
-
const
|
|
270
|
-
|
|
323
|
+
removeFromCache(topicId) {
|
|
324
|
+
const entry = this.cache.get(topicId);
|
|
325
|
+
if (entry) {
|
|
326
|
+
this.cache.delete(topicId);
|
|
327
|
+
this.currentCacheSize -= entry.size;
|
|
328
|
+
}
|
|
271
329
|
}
|
|
272
330
|
/**
|
|
273
|
-
*
|
|
331
|
+
* Evict oldest cache entry
|
|
274
332
|
*/
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
333
|
+
evictOldestEntry() {
|
|
334
|
+
let oldest = null;
|
|
335
|
+
let oldestTime = Date.now();
|
|
336
|
+
for (const [topicId, entry] of this.cache) {
|
|
337
|
+
if (entry.timestamp < oldestTime) {
|
|
338
|
+
oldestTime = entry.timestamp;
|
|
339
|
+
oldest = topicId;
|
|
282
340
|
}
|
|
283
|
-
current = current[key];
|
|
284
341
|
}
|
|
285
|
-
|
|
342
|
+
if (oldest) {
|
|
343
|
+
this.removeFromCache(oldest);
|
|
344
|
+
this.logger.debug("Evicted oldest cache entry", { topicId: oldest });
|
|
345
|
+
}
|
|
286
346
|
}
|
|
287
347
|
/**
|
|
288
|
-
* Sanitize
|
|
348
|
+
* Sanitize CSS content
|
|
289
349
|
*/
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
const
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
seen.add(obj);
|
|
297
|
-
if (Array.isArray(obj)) {
|
|
298
|
-
return obj.map(sanitize);
|
|
299
|
-
}
|
|
300
|
-
const sanitized = {};
|
|
301
|
-
for (const [key, value] of Object.entries(obj)) {
|
|
302
|
-
sanitized[key] = sanitize(value);
|
|
303
|
-
}
|
|
304
|
-
return sanitized;
|
|
305
|
-
};
|
|
306
|
-
return sanitize(context);
|
|
350
|
+
sanitizeCSS(css) {
|
|
351
|
+
let sanitized = css;
|
|
352
|
+
for (const pattern of this.dangerousCSSPatterns) {
|
|
353
|
+
sanitized = sanitized.replace(pattern, "");
|
|
354
|
+
}
|
|
355
|
+
return sanitized;
|
|
307
356
|
}
|
|
308
357
|
/**
|
|
309
|
-
*
|
|
358
|
+
* Sanitize JavaScript content
|
|
310
359
|
*/
|
|
311
|
-
|
|
312
|
-
|
|
360
|
+
sanitizeJavaScript(js) {
|
|
361
|
+
let sanitized = js;
|
|
362
|
+
for (const pattern of this.dangerousJSPatterns) {
|
|
363
|
+
sanitized = sanitized.replace(pattern, "");
|
|
364
|
+
}
|
|
365
|
+
return sanitized;
|
|
313
366
|
}
|
|
314
367
|
/**
|
|
315
|
-
* Sanitize
|
|
368
|
+
* Sanitize template content
|
|
316
369
|
*/
|
|
317
|
-
|
|
318
|
-
return
|
|
370
|
+
sanitizeTemplate(template) {
|
|
371
|
+
return template.replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi, "").replace(/on\w+\s*=\s*["'][^"']*["']/gi, "").replace(/javascript\s*:/gi, "");
|
|
319
372
|
}
|
|
320
373
|
/**
|
|
321
374
|
* Validate template syntax
|
|
322
375
|
*/
|
|
323
|
-
|
|
376
|
+
validateTemplateSyntax(template) {
|
|
377
|
+
const openBraces = (template.match(/\{\{/g) || []).length;
|
|
378
|
+
const closeBraces = (template.match(/\}\}/g) || []).length;
|
|
379
|
+
if (openBraces !== closeBraces) {
|
|
380
|
+
throw new Error("Invalid template syntax: unmatched braces");
|
|
381
|
+
}
|
|
324
382
|
const openBlocks = (template.match(/\{\{#\w+/g) || []).length;
|
|
325
383
|
const closeBlocks = (template.match(/\{\{\/\w+/g) || []).length;
|
|
326
384
|
if (openBlocks !== closeBlocks) {
|
|
327
385
|
throw new Error("Invalid template syntax: unclosed block helpers");
|
|
328
386
|
}
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
387
|
+
}
|
|
388
|
+
/**
|
|
389
|
+
* Detect circular dependencies
|
|
390
|
+
*/
|
|
391
|
+
detectCircularDependencies(dependencies) {
|
|
392
|
+
const dependencyMap = /* @__PURE__ */ new Map();
|
|
393
|
+
for (const dep of dependencies) {
|
|
394
|
+
dependencyMap.set(dep.topicId, dep.depends || []);
|
|
395
|
+
}
|
|
396
|
+
const visited = /* @__PURE__ */ new Set();
|
|
397
|
+
const visiting = /* @__PURE__ */ new Set();
|
|
398
|
+
const visit = (topicId) => {
|
|
399
|
+
if (visiting.has(topicId)) {
|
|
400
|
+
throw new Error("Circular dependency detected");
|
|
401
|
+
}
|
|
402
|
+
if (visited.has(topicId)) return;
|
|
403
|
+
visiting.add(topicId);
|
|
404
|
+
const deps = dependencyMap.get(topicId) || [];
|
|
405
|
+
for (const dep of deps) {
|
|
406
|
+
visit(dep);
|
|
407
|
+
}
|
|
408
|
+
visiting.delete(topicId);
|
|
409
|
+
visited.add(topicId);
|
|
410
|
+
};
|
|
411
|
+
for (const dep of dependencies) {
|
|
412
|
+
visit(dep.topicId);
|
|
332
413
|
}
|
|
333
414
|
}
|
|
334
415
|
/**
|
|
335
|
-
*
|
|
416
|
+
* Topological sort of dependencies
|
|
336
417
|
*/
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
418
|
+
topologicalSort(dependencies) {
|
|
419
|
+
const dependencyMap = /* @__PURE__ */ new Map();
|
|
420
|
+
const dependsMap = /* @__PURE__ */ new Map();
|
|
421
|
+
for (const dep of dependencies) {
|
|
422
|
+
dependencyMap.set(dep.topicId, dep);
|
|
423
|
+
dependsMap.set(dep.topicId, dep.depends || []);
|
|
343
424
|
}
|
|
344
|
-
|
|
425
|
+
const sorted = [];
|
|
426
|
+
const visited = /* @__PURE__ */ new Set();
|
|
427
|
+
const visit = (topicId) => {
|
|
428
|
+
if (visited.has(topicId)) return;
|
|
429
|
+
const deps = dependsMap.get(topicId) || [];
|
|
430
|
+
for (const dep of deps) {
|
|
431
|
+
visit(dep);
|
|
432
|
+
}
|
|
433
|
+
visited.add(topicId);
|
|
434
|
+
const depObj = dependencyMap.get(topicId);
|
|
435
|
+
if (depObj) {
|
|
436
|
+
sorted.push(depObj);
|
|
437
|
+
}
|
|
438
|
+
};
|
|
439
|
+
for (const dep of dependencies) {
|
|
440
|
+
visit(dep.topicId);
|
|
441
|
+
}
|
|
442
|
+
return sorted;
|
|
345
443
|
}
|
|
346
444
|
/**
|
|
347
|
-
*
|
|
445
|
+
* Get content type for dependency type
|
|
348
446
|
*/
|
|
349
|
-
|
|
447
|
+
getContentTypeForType(type) {
|
|
448
|
+
switch (type) {
|
|
449
|
+
case "css":
|
|
450
|
+
return "text/css";
|
|
451
|
+
case "js":
|
|
452
|
+
return "application/javascript";
|
|
453
|
+
case "template":
|
|
454
|
+
return "text/html";
|
|
455
|
+
case "image":
|
|
456
|
+
return "image/*";
|
|
457
|
+
default:
|
|
458
|
+
return "application/octet-stream";
|
|
459
|
+
}
|
|
350
460
|
}
|
|
351
461
|
}
|
|
352
462
|
export {
|
|
353
|
-
|
|
463
|
+
ResourceManager
|
|
354
464
|
};
|
|
355
465
|
//# sourceMappingURL=standards-sdk.es46.js.map
|