@hashgraphonline/standards-sdk 0.1.143 → 0.1.144-feat-solana-register.canary.d5edcec.80
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/hcs-10/base-client.d.ts.map +1 -1
- package/dist/cjs/hcs-10/sdk.d.ts +8 -0
- package/dist/cjs/hcs-10/sdk.d.ts.map +1 -1
- package/dist/cjs/hcs-11/client.d.ts +2 -2
- package/dist/cjs/hcs-11/client.d.ts.map +1 -1
- package/dist/cjs/hcs-11/person-builder.d.ts +1 -0
- package/dist/cjs/hcs-11/person-builder.d.ts.map +1 -1
- package/dist/cjs/hcs-11/types.d.ts +1 -0
- package/dist/cjs/hcs-11/types.d.ts.map +1 -1
- package/dist/cjs/hcs-12/rendering/resource-manager.d.ts.map +1 -1
- package/dist/cjs/hcs-12/validation/schemas.d.ts +8 -8
- package/dist/cjs/hcs-14/issuers/hiero.d.ts.map +1 -1
- package/dist/cjs/hcs-15/browser.d.ts +2 -0
- package/dist/cjs/hcs-15/browser.d.ts.map +1 -1
- package/dist/cjs/hcs-15/sdk.d.ts +7 -1
- package/dist/cjs/hcs-15/sdk.d.ts.map +1 -1
- package/dist/cjs/hcs-15/tx.d.ts +4 -0
- package/dist/cjs/hcs-15/tx.d.ts.map +1 -1
- package/dist/cjs/hcs-15/types.d.ts +16 -1
- package/dist/cjs/hcs-15/types.d.ts.map +1 -1
- package/dist/cjs/hcs-16/browser.d.ts +11 -2
- package/dist/cjs/hcs-16/browser.d.ts.map +1 -1
- package/dist/cjs/hcs-16/sdk.d.ts +62 -1
- package/dist/cjs/hcs-16/sdk.d.ts.map +1 -1
- package/dist/cjs/hcs-16/tx.d.ts +21 -3
- package/dist/cjs/hcs-16/tx.d.ts.map +1 -1
- package/dist/cjs/hcs-17/base-client.d.ts +1 -0
- package/dist/cjs/hcs-17/base-client.d.ts.map +1 -1
- package/dist/cjs/hcs-17/sdk.d.ts.map +1 -1
- package/dist/cjs/hcs-17/tx.d.ts +2 -0
- package/dist/cjs/hcs-17/tx.d.ts.map +1 -1
- package/dist/cjs/hcs-17/types.d.ts +4 -0
- package/dist/cjs/hcs-17/types.d.ts.map +1 -1
- package/dist/cjs/hcs-21/types.d.ts +75 -75
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/client/adapters.d.ts +20 -0
- package/dist/cjs/services/registry-broker/client/adapters.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/agents.d.ts +16 -0
- package/dist/cjs/services/registry-broker/client/agents.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/base-client.d.ts +70 -0
- package/dist/cjs/services/registry-broker/client/base-client.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/chat-history.d.ts +23 -0
- package/dist/cjs/services/registry-broker/client/chat-history.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/chat.d.ts +33 -0
- package/dist/cjs/services/registry-broker/client/chat.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/credits.d.ts +40 -0
- package/dist/cjs/services/registry-broker/client/credits.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/encrypted-chat-manager.d.ts +35 -0
- package/dist/cjs/services/registry-broker/client/encrypted-chat-manager.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/encryption.d.ts +33 -0
- package/dist/cjs/services/registry-broker/client/encryption.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/errors.d.ts +19 -0
- package/dist/cjs/services/registry-broker/client/errors.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/feedback.d.ts +2 -0
- package/dist/cjs/services/registry-broker/client/feedback.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/ledger-auth.d.ts +10 -0
- package/dist/cjs/services/registry-broker/client/ledger-auth.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/search.d.ts +19 -0
- package/dist/cjs/services/registry-broker/client/search.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client/utils.d.ts +21 -0
- package/dist/cjs/services/registry-broker/client/utils.d.ts.map +1 -0
- package/dist/cjs/services/registry-broker/client.d.ts +2 -205
- package/dist/cjs/services/registry-broker/client.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/private-key-signer.d.ts +1 -0
- package/dist/cjs/services/registry-broker/private-key-signer.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/schemas.d.ts +2509 -816
- package/dist/cjs/services/registry-broker/schemas.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/types.d.ts +64 -2
- package/dist/cjs/services/registry-broker/types.d.ts.map +1 -1
- package/dist/cjs/standards-sdk.cjs +3 -3
- package/dist/cjs/standards-sdk.cjs.map +1 -1
- package/dist/cjs/utils/crypto-abstraction.d.ts.map +1 -1
- package/dist/cjs/utils/crypto-env.d.ts.map +1 -1
- package/dist/cjs/utils/dynamic-import.d.ts +5 -1
- package/dist/cjs/utils/dynamic-import.d.ts.map +1 -1
- package/dist/cjs/utils/hash-adapter.d.ts.map +1 -1
- package/dist/es/hcs-10/base-client.d.ts.map +1 -1
- package/dist/es/hcs-10/sdk.d.ts +8 -0
- package/dist/es/hcs-10/sdk.d.ts.map +1 -1
- package/dist/es/hcs-11/client.d.ts +2 -2
- package/dist/es/hcs-11/client.d.ts.map +1 -1
- package/dist/es/hcs-11/person-builder.d.ts +1 -0
- package/dist/es/hcs-11/person-builder.d.ts.map +1 -1
- package/dist/es/hcs-11/types.d.ts +1 -0
- package/dist/es/hcs-11/types.d.ts.map +1 -1
- package/dist/es/hcs-12/rendering/resource-manager.d.ts.map +1 -1
- package/dist/es/hcs-12/validation/schemas.d.ts +8 -8
- package/dist/es/hcs-14/issuers/hiero.d.ts.map +1 -1
- package/dist/es/hcs-15/browser.d.ts +2 -0
- package/dist/es/hcs-15/browser.d.ts.map +1 -1
- package/dist/es/hcs-15/sdk.d.ts +7 -1
- package/dist/es/hcs-15/sdk.d.ts.map +1 -1
- package/dist/es/hcs-15/tx.d.ts +4 -0
- package/dist/es/hcs-15/tx.d.ts.map +1 -1
- package/dist/es/hcs-15/types.d.ts +16 -1
- package/dist/es/hcs-15/types.d.ts.map +1 -1
- package/dist/es/hcs-16/browser.d.ts +11 -2
- package/dist/es/hcs-16/browser.d.ts.map +1 -1
- package/dist/es/hcs-16/sdk.d.ts +62 -1
- package/dist/es/hcs-16/sdk.d.ts.map +1 -1
- package/dist/es/hcs-16/tx.d.ts +21 -3
- package/dist/es/hcs-16/tx.d.ts.map +1 -1
- package/dist/es/hcs-17/base-client.d.ts +1 -0
- package/dist/es/hcs-17/base-client.d.ts.map +1 -1
- package/dist/es/hcs-17/sdk.d.ts.map +1 -1
- package/dist/es/hcs-17/tx.d.ts +2 -0
- package/dist/es/hcs-17/tx.d.ts.map +1 -1
- package/dist/es/hcs-17/types.d.ts +4 -0
- package/dist/es/hcs-17/types.d.ts.map +1 -1
- package/dist/es/hcs-21/types.d.ts +75 -75
- package/dist/es/index.d.ts.map +1 -1
- package/dist/es/services/registry-broker/client/adapters.d.ts +20 -0
- package/dist/es/services/registry-broker/client/adapters.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/agents.d.ts +16 -0
- package/dist/es/services/registry-broker/client/agents.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/base-client.d.ts +70 -0
- package/dist/es/services/registry-broker/client/base-client.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/chat-history.d.ts +23 -0
- package/dist/es/services/registry-broker/client/chat-history.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/chat.d.ts +33 -0
- package/dist/es/services/registry-broker/client/chat.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/credits.d.ts +40 -0
- package/dist/es/services/registry-broker/client/credits.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/encrypted-chat-manager.d.ts +35 -0
- package/dist/es/services/registry-broker/client/encrypted-chat-manager.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/encryption.d.ts +33 -0
- package/dist/es/services/registry-broker/client/encryption.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/errors.d.ts +19 -0
- package/dist/es/services/registry-broker/client/errors.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/feedback.d.ts +2 -0
- package/dist/es/services/registry-broker/client/feedback.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/ledger-auth.d.ts +10 -0
- package/dist/es/services/registry-broker/client/ledger-auth.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/search.d.ts +19 -0
- package/dist/es/services/registry-broker/client/search.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client/utils.d.ts +21 -0
- package/dist/es/services/registry-broker/client/utils.d.ts.map +1 -0
- package/dist/es/services/registry-broker/client.d.ts +2 -205
- package/dist/es/services/registry-broker/client.d.ts.map +1 -1
- package/dist/es/services/registry-broker/private-key-signer.d.ts +1 -0
- package/dist/es/services/registry-broker/private-key-signer.d.ts.map +1 -1
- package/dist/es/services/registry-broker/schemas.d.ts +2509 -816
- package/dist/es/services/registry-broker/schemas.d.ts.map +1 -1
- package/dist/es/services/registry-broker/types.d.ts +64 -2
- package/dist/es/services/registry-broker/types.d.ts.map +1 -1
- package/dist/es/standards-sdk.es.js +148 -133
- package/dist/es/standards-sdk.es.js.map +1 -1
- package/dist/es/standards-sdk.es10.js +70 -90
- package/dist/es/standards-sdk.es10.js.map +1 -1
- package/dist/es/standards-sdk.es100.js +229 -26
- package/dist/es/standards-sdk.es100.js.map +1 -1
- package/dist/es/standards-sdk.es101.js +109 -228
- package/dist/es/standards-sdk.es101.js.map +1 -1
- package/dist/es/standards-sdk.es102.js +15 -94
- package/dist/es/standards-sdk.es102.js.map +1 -1
- package/dist/es/standards-sdk.es103.js +80 -30
- package/dist/es/standards-sdk.es103.js.map +1 -1
- package/dist/es/standards-sdk.es104.js +27 -80
- package/dist/es/standards-sdk.es104.js.map +1 -1
- package/dist/es/standards-sdk.es105.js +136 -25
- package/dist/es/standards-sdk.es105.js.map +1 -1
- package/dist/es/standards-sdk.es106.js +27 -140
- package/dist/es/standards-sdk.es106.js.map +1 -1
- package/dist/es/standards-sdk.es107.js +20 -27
- package/dist/es/standards-sdk.es107.js.map +1 -1
- package/dist/es/standards-sdk.es108.js +156 -18
- package/dist/es/standards-sdk.es108.js.map +1 -1
- package/dist/es/standards-sdk.es109.js +198 -148
- package/dist/es/standards-sdk.es109.js.map +1 -1
- package/dist/es/standards-sdk.es11.js +121 -45
- package/dist/es/standards-sdk.es11.js.map +1 -1
- package/dist/es/standards-sdk.es110.js +747 -160
- package/dist/es/standards-sdk.es110.js.map +1 -1
- package/dist/es/standards-sdk.es111.js +9 -786
- package/dist/es/standards-sdk.es111.js.map +1 -1
- package/dist/es/standards-sdk.es112.js +567 -13
- package/dist/es/standards-sdk.es112.js.map +1 -1
- package/dist/es/standards-sdk.es113.js +576 -541
- package/dist/es/standards-sdk.es113.js.map +1 -1
- package/dist/es/standards-sdk.es114.js +12 -601
- package/dist/es/standards-sdk.es114.js.map +1 -1
- package/dist/es/standards-sdk.es115.js +2 -13
- package/dist/es/standards-sdk.es115.js.map +1 -1
- package/dist/es/standards-sdk.es116.js +87 -2
- package/dist/es/standards-sdk.es116.js.map +1 -1
- package/dist/es/standards-sdk.es117.js +37 -80
- package/dist/es/standards-sdk.es117.js.map +1 -1
- package/dist/es/standards-sdk.es118.js +2 -39
- package/dist/es/standards-sdk.es118.js.map +1 -1
- package/dist/es/standards-sdk.es119.js +231 -2
- package/dist/es/standards-sdk.es119.js.map +1 -1
- package/dist/es/standards-sdk.es12.js +60 -159
- package/dist/es/standards-sdk.es12.js.map +1 -1
- package/dist/es/standards-sdk.es120.js +1110 -193
- package/dist/es/standards-sdk.es120.js.map +1 -1
- package/dist/es/standards-sdk.es121.js +225 -1059
- package/dist/es/standards-sdk.es121.js.map +1 -1
- package/dist/es/standards-sdk.es122.js +419 -303
- package/dist/es/standards-sdk.es122.js.map +1 -1
- package/dist/es/standards-sdk.es123.js +351 -418
- package/dist/es/standards-sdk.es123.js.map +1 -1
- package/dist/es/standards-sdk.es124.js +872 -347
- package/dist/es/standards-sdk.es124.js.map +1 -1
- package/dist/es/standards-sdk.es125.js +182 -854
- package/dist/es/standards-sdk.es125.js.map +1 -1
- package/dist/es/standards-sdk.es126.js +1512 -153
- package/dist/es/standards-sdk.es126.js.map +1 -1
- package/dist/es/standards-sdk.es127.js +157 -1547
- package/dist/es/standards-sdk.es127.js.map +1 -1
- package/dist/es/standards-sdk.es128.js +184 -2190
- package/dist/es/standards-sdk.es128.js.map +1 -1
- package/dist/es/standards-sdk.es129.js +100 -63
- package/dist/es/standards-sdk.es129.js.map +1 -1
- package/dist/es/standards-sdk.es13.js +200 -60
- package/dist/es/standards-sdk.es13.js.map +1 -1
- package/dist/es/standards-sdk.es130.js +112 -78
- package/dist/es/standards-sdk.es130.js.map +1 -1
- package/dist/es/standards-sdk.es131.js +232 -144
- package/dist/es/standards-sdk.es131.js.map +1 -1
- package/dist/es/standards-sdk.es132.js +181 -8
- package/dist/es/standards-sdk.es132.js.map +1 -1
- package/dist/es/standards-sdk.es133.js +118 -82
- package/dist/es/standards-sdk.es133.js.map +1 -1
- package/dist/es/standards-sdk.es134.js +322 -61
- package/dist/es/standards-sdk.es134.js.map +1 -1
- package/dist/es/standards-sdk.es135.js +464 -28
- package/dist/es/standards-sdk.es135.js.map +1 -1
- package/dist/es/standards-sdk.es136.js +14 -135
- package/dist/es/standards-sdk.es136.js.map +1 -1
- package/dist/es/standards-sdk.es137.js +78 -39
- package/dist/es/standards-sdk.es137.js.map +1 -1
- package/dist/es/standards-sdk.es138.js +85 -764
- package/dist/es/standards-sdk.es138.js.map +1 -1
- package/dist/es/standards-sdk.es139.js +135 -12250
- package/dist/es/standards-sdk.es139.js.map +1 -1
- package/dist/es/standards-sdk.es14.js +149 -178
- package/dist/es/standards-sdk.es14.js.map +1 -1
- package/dist/es/standards-sdk.es140.js +7 -56
- package/dist/es/standards-sdk.es140.js.map +1 -1
- package/dist/es/standards-sdk.es141.js +72 -68
- package/dist/es/standards-sdk.es141.js.map +1 -1
- package/dist/es/standards-sdk.es142.js +61 -13
- package/dist/es/standards-sdk.es142.js.map +1 -1
- package/dist/es/standards-sdk.es143.js +30 -172
- package/dist/es/standards-sdk.es143.js.map +1 -1
- package/dist/es/standards-sdk.es144.js +34 -322
- package/dist/es/standards-sdk.es144.js.map +1 -1
- package/dist/es/standards-sdk.es145.js +28 -346
- package/dist/es/standards-sdk.es145.js.map +1 -1
- package/dist/es/standards-sdk.es146.js +112 -427
- package/dist/es/standards-sdk.es146.js.map +1 -1
- package/dist/es/standards-sdk.es147.js +40 -329
- package/dist/es/standards-sdk.es147.js.map +1 -1
- package/dist/es/standards-sdk.es148.js +12279 -66
- package/dist/es/standards-sdk.es148.js.map +1 -1
- package/dist/es/standards-sdk.es149.js +961 -0
- package/dist/es/standards-sdk.es149.js.map +1 -0
- package/dist/es/standards-sdk.es15.js +152 -151
- package/dist/es/standards-sdk.es15.js.map +1 -1
- package/dist/es/standards-sdk.es150.js +20 -0
- package/dist/es/standards-sdk.es150.js.map +1 -0
- package/dist/es/standards-sdk.es151.js +59 -0
- package/dist/es/standards-sdk.es151.js.map +1 -0
- package/dist/es/standards-sdk.es152.js +87 -0
- package/dist/es/standards-sdk.es152.js.map +1 -0
- package/dist/es/standards-sdk.es153.js +175 -0
- package/dist/es/standards-sdk.es153.js.map +1 -0
- package/dist/es/standards-sdk.es154.js +325 -0
- package/dist/es/standards-sdk.es154.js.map +1 -0
- package/dist/es/standards-sdk.es155.js +349 -0
- package/dist/es/standards-sdk.es155.js.map +1 -0
- package/dist/es/standards-sdk.es156.js +456 -0
- package/dist/es/standards-sdk.es156.js.map +1 -0
- package/dist/es/standards-sdk.es157.js +334 -0
- package/dist/es/standards-sdk.es157.js.map +1 -0
- package/dist/es/standards-sdk.es158.js +79 -0
- package/dist/es/standards-sdk.es158.js.map +1 -0
- package/dist/es/standards-sdk.es159.js +242 -0
- package/dist/es/standards-sdk.es159.js.map +1 -0
- package/dist/es/standards-sdk.es16.js +917 -136
- package/dist/es/standards-sdk.es16.js.map +1 -1
- package/dist/es/standards-sdk.es160.js +247 -0
- package/dist/es/standards-sdk.es160.js.map +1 -0
- package/dist/es/standards-sdk.es17.js +23 -938
- package/dist/es/standards-sdk.es17.js.map +1 -1
- package/dist/es/standards-sdk.es18.js +2422 -24
- package/dist/es/standards-sdk.es18.js.map +1 -1
- package/dist/es/standards-sdk.es19.js +826 -2075
- package/dist/es/standards-sdk.es19.js.map +1 -1
- package/dist/es/standards-sdk.es2.js +654 -189
- package/dist/es/standards-sdk.es2.js.map +1 -1
- package/dist/es/standards-sdk.es20.js +205 -1086
- package/dist/es/standards-sdk.es20.js.map +1 -1
- package/dist/es/standards-sdk.es21.js +858 -221
- package/dist/es/standards-sdk.es21.js.map +1 -1
- package/dist/es/standards-sdk.es22.js +179 -903
- package/dist/es/standards-sdk.es22.js.map +1 -1
- package/dist/es/standards-sdk.es23.js +164 -179
- package/dist/es/standards-sdk.es23.js.map +1 -1
- package/dist/es/standards-sdk.es24.js +62 -118
- package/dist/es/standards-sdk.es24.js.map +1 -1
- package/dist/es/standards-sdk.es25.js +377 -52
- package/dist/es/standards-sdk.es25.js.map +1 -1
- package/dist/es/standards-sdk.es26.js +36 -394
- package/dist/es/standards-sdk.es26.js.map +1 -1
- package/dist/es/standards-sdk.es27.js +901 -50
- package/dist/es/standards-sdk.es27.js.map +1 -1
- package/dist/es/standards-sdk.es28.js +134 -897
- package/dist/es/standards-sdk.es28.js.map +1 -1
- package/dist/es/standards-sdk.es29.js +7 -134
- package/dist/es/standards-sdk.es29.js.map +1 -1
- package/dist/es/standards-sdk.es3.js +63 -680
- package/dist/es/standards-sdk.es3.js.map +1 -1
- package/dist/es/standards-sdk.es30.js +344 -7
- package/dist/es/standards-sdk.es30.js.map +1 -1
- package/dist/es/standards-sdk.es31.js +302 -287
- package/dist/es/standards-sdk.es31.js.map +1 -1
- package/dist/es/standards-sdk.es32.js +94 -322
- package/dist/es/standards-sdk.es32.js.map +1 -1
- package/dist/es/standards-sdk.es33.js +458 -101
- package/dist/es/standards-sdk.es33.js.map +1 -1
- package/dist/es/standards-sdk.es34.js +132 -451
- package/dist/es/standards-sdk.es34.js.map +1 -1
- package/dist/es/standards-sdk.es35.js +216 -130
- package/dist/es/standards-sdk.es35.js.map +1 -1
- package/dist/es/standards-sdk.es36.js +274 -191
- package/dist/es/standards-sdk.es36.js.map +1 -1
- package/dist/es/standards-sdk.es37.js +148 -87
- package/dist/es/standards-sdk.es37.js.map +1 -1
- package/dist/es/standards-sdk.es38.js +183 -320
- package/dist/es/standards-sdk.es38.js.map +1 -1
- package/dist/es/standards-sdk.es39.js +238 -161
- package/dist/es/standards-sdk.es39.js.map +1 -1
- package/dist/es/standards-sdk.es4.js +425 -63
- package/dist/es/standards-sdk.es4.js.map +1 -1
- package/dist/es/standards-sdk.es40.js +136 -254
- package/dist/es/standards-sdk.es40.js.map +1 -1
- package/dist/es/standards-sdk.es41.js +225 -176
- package/dist/es/standards-sdk.es41.js.map +1 -1
- package/dist/es/standards-sdk.es42.js +199 -261
- package/dist/es/standards-sdk.es42.js.map +1 -1
- package/dist/es/standards-sdk.es43.js +237 -199
- package/dist/es/standards-sdk.es43.js.map +1 -1
- package/dist/es/standards-sdk.es44.js +209 -201
- package/dist/es/standards-sdk.es44.js.map +1 -1
- package/dist/es/standards-sdk.es45.js +305 -201
- package/dist/es/standards-sdk.es45.js.map +1 -1
- package/dist/es/standards-sdk.es46.js +371 -261
- package/dist/es/standards-sdk.es46.js.map +1 -1
- package/dist/es/standards-sdk.es47.js +316 -371
- package/dist/es/standards-sdk.es47.js.map +1 -1
- package/dist/es/standards-sdk.es48.js +404 -336
- package/dist/es/standards-sdk.es48.js.map +1 -1
- package/dist/es/standards-sdk.es49.js +83 -449
- package/dist/es/standards-sdk.es49.js.map +1 -1
- package/dist/es/standards-sdk.es5.js +232 -354
- package/dist/es/standards-sdk.es5.js.map +1 -1
- package/dist/es/standards-sdk.es50.js +179 -89
- package/dist/es/standards-sdk.es50.js.map +1 -1
- package/dist/es/standards-sdk.es51.js +231 -165
- package/dist/es/standards-sdk.es51.js.map +1 -1
- package/dist/es/standards-sdk.es52.js +25 -262
- package/dist/es/standards-sdk.es52.js.map +1 -1
- package/dist/es/standards-sdk.es53.js +56 -26
- package/dist/es/standards-sdk.es53.js.map +1 -1
- package/dist/es/standards-sdk.es54.js +12 -57
- package/dist/es/standards-sdk.es54.js.map +1 -1
- package/dist/es/standards-sdk.es55.js +49 -12
- package/dist/es/standards-sdk.es55.js.map +1 -1
- package/dist/es/standards-sdk.es56.js +115 -43
- package/dist/es/standards-sdk.es56.js.map +1 -1
- package/dist/es/standards-sdk.es57.js +42 -115
- package/dist/es/standards-sdk.es57.js.map +1 -1
- package/dist/es/standards-sdk.es58.js +52 -43
- package/dist/es/standards-sdk.es58.js.map +1 -1
- package/dist/es/standards-sdk.es59.js +36 -50
- package/dist/es/standards-sdk.es59.js.map +1 -1
- package/dist/es/standards-sdk.es6.js +125 -246
- package/dist/es/standards-sdk.es6.js.map +1 -1
- package/dist/es/standards-sdk.es60.js +207 -39
- package/dist/es/standards-sdk.es60.js.map +1 -1
- package/dist/es/standards-sdk.es61.js +24 -195
- package/dist/es/standards-sdk.es61.js.map +1 -1
- package/dist/es/standards-sdk.es62.js +87 -25
- package/dist/es/standards-sdk.es62.js.map +1 -1
- package/dist/es/standards-sdk.es63.js +3 -51
- package/dist/es/standards-sdk.es63.js.map +1 -1
- package/dist/es/standards-sdk.es64.js +100 -3
- package/dist/es/standards-sdk.es64.js.map +1 -1
- package/dist/es/standards-sdk.es65.js +61 -62
- package/dist/es/standards-sdk.es65.js.map +1 -1
- package/dist/es/standards-sdk.es66.js +17 -98
- package/dist/es/standards-sdk.es66.js.map +1 -1
- package/dist/es/standards-sdk.es67.js +77 -19
- package/dist/es/standards-sdk.es67.js.map +1 -1
- package/dist/es/standards-sdk.es68.js +458 -77
- package/dist/es/standards-sdk.es68.js.map +1 -1
- package/dist/es/standards-sdk.es69.js +106 -240
- package/dist/es/standards-sdk.es69.js.map +1 -1
- package/dist/es/standards-sdk.es7.js +28 -183
- package/dist/es/standards-sdk.es7.js.map +1 -1
- package/dist/es/standards-sdk.es70.js +170 -286
- package/dist/es/standards-sdk.es70.js.map +1 -1
- package/dist/es/standards-sdk.es71.js +71 -207
- package/dist/es/standards-sdk.es71.js.map +1 -1
- package/dist/es/standards-sdk.es72.js +71 -72
- package/dist/es/standards-sdk.es72.js.map +1 -1
- package/dist/es/standards-sdk.es73.js +143 -71
- package/dist/es/standards-sdk.es73.js.map +1 -1
- package/dist/es/standards-sdk.es74.js +62 -136
- package/dist/es/standards-sdk.es74.js.map +1 -1
- package/dist/es/standards-sdk.es75.js +380 -45
- package/dist/es/standards-sdk.es75.js.map +1 -1
- package/dist/es/standards-sdk.es76.js +222 -130
- package/dist/es/standards-sdk.es76.js.map +1 -1
- package/dist/es/standards-sdk.es77.js +320 -444
- package/dist/es/standards-sdk.es77.js.map +1 -1
- package/dist/es/standards-sdk.es78.js +88 -364
- package/dist/es/standards-sdk.es78.js.map +1 -1
- package/dist/es/standards-sdk.es79.js +125 -89
- package/dist/es/standards-sdk.es79.js.map +1 -1
- package/dist/es/standards-sdk.es8.js +80 -29
- package/dist/es/standards-sdk.es8.js.map +1 -1
- package/dist/es/standards-sdk.es80.js +8 -125
- package/dist/es/standards-sdk.es80.js.map +1 -1
- package/dist/es/standards-sdk.es81.js +45 -6
- package/dist/es/standards-sdk.es81.js.map +1 -1
- package/dist/es/standards-sdk.es82.js +98 -44
- package/dist/es/standards-sdk.es82.js.map +1 -1
- package/dist/es/standards-sdk.es83.js +331 -84
- package/dist/es/standards-sdk.es83.js.map +1 -1
- package/dist/es/standards-sdk.es84.js +93 -160
- package/dist/es/standards-sdk.es84.js.map +1 -1
- package/dist/es/standards-sdk.es85.js +55 -275
- package/dist/es/standards-sdk.es85.js.map +1 -1
- package/dist/es/standards-sdk.es86.js +43 -55
- package/dist/es/standards-sdk.es86.js.map +1 -1
- package/dist/es/standards-sdk.es87.js +145 -22
- package/dist/es/standards-sdk.es87.js.map +1 -1
- package/dist/es/standards-sdk.es88.js +34 -47
- package/dist/es/standards-sdk.es88.js.map +1 -1
- package/dist/es/standards-sdk.es89.js +22 -57
- package/dist/es/standards-sdk.es89.js.map +1 -1
- package/dist/es/standards-sdk.es9.js +104 -80
- package/dist/es/standards-sdk.es9.js.map +1 -1
- package/dist/es/standards-sdk.es90.js +23 -28
- package/dist/es/standards-sdk.es90.js.map +1 -1
- package/dist/es/standards-sdk.es91.js +238 -23
- package/dist/es/standards-sdk.es91.js.map +1 -1
- package/dist/es/standards-sdk.es92.js +265 -152
- package/dist/es/standards-sdk.es92.js.map +1 -1
- package/dist/es/standards-sdk.es93.js +95 -68
- package/dist/es/standards-sdk.es93.js.map +1 -1
- package/dist/es/standards-sdk.es94.js +124 -136
- package/dist/es/standards-sdk.es94.js.map +1 -1
- package/dist/es/standards-sdk.es95.js +42 -138
- package/dist/es/standards-sdk.es95.js.map +1 -1
- package/dist/es/standards-sdk.es96.js +259 -42
- package/dist/es/standards-sdk.es96.js.map +1 -1
- package/dist/es/standards-sdk.es97.js +82 -243
- package/dist/es/standards-sdk.es97.js.map +1 -1
- package/dist/es/standards-sdk.es98.js +48 -47
- package/dist/es/standards-sdk.es98.js.map +1 -1
- package/dist/es/standards-sdk.es99.js +29 -100
- package/dist/es/standards-sdk.es99.js.map +1 -1
- package/dist/es/utils/crypto-abstraction.d.ts.map +1 -1
- package/dist/es/utils/crypto-env.d.ts.map +1 -1
- package/dist/es/utils/dynamic-import.d.ts +5 -1
- package/dist/es/utils/dynamic-import.d.ts.map +1 -1
- package/dist/es/utils/hash-adapter.d.ts.map +1 -1
- package/package.json +15 -16
- package/dist/cjs/patches/topic-autorenew-patch.d.ts +0 -2
- package/dist/cjs/patches/topic-autorenew-patch.d.ts.map +0 -1
- package/dist/es/patches/topic-autorenew-patch.d.ts +0 -2
- package/dist/es/patches/topic-autorenew-patch.d.ts.map +0 -1
|
@@ -1,243 +1,251 @@
|
|
|
1
|
-
class
|
|
2
|
-
constructor(logger
|
|
3
|
-
this.cache = /* @__PURE__ */ new Map();
|
|
1
|
+
class GutenbergBridge {
|
|
2
|
+
constructor(logger) {
|
|
4
3
|
this.logger = logger;
|
|
5
|
-
this.assemblyRegistry = assemblyRegistry;
|
|
6
|
-
this.actionRegistry = actionRegistry;
|
|
7
|
-
this.blockLoader = blockLoader;
|
|
8
4
|
}
|
|
9
5
|
/**
|
|
10
|
-
*
|
|
6
|
+
* Convert HashLinks BlockDefinition to Gutenberg block format
|
|
11
7
|
*/
|
|
12
|
-
|
|
13
|
-
this.logger.debug("
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
8
|
+
convertToGutenberg(blockDefinition) {
|
|
9
|
+
this.logger.debug("Converting BlockDefinition to Gutenberg format", {
|
|
10
|
+
name: blockDefinition.name
|
|
11
|
+
});
|
|
12
|
+
if (!blockDefinition || !blockDefinition.name) {
|
|
13
|
+
throw new Error("Invalid block definition: missing name");
|
|
18
14
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
topicId,
|
|
33
|
-
name: assemblyState.name,
|
|
34
|
-
version: assemblyState.version,
|
|
35
|
-
actionsCount: assemblyState.actions?.length || 0,
|
|
36
|
-
blocksCount: assemblyState.blocks?.length || 0
|
|
37
|
-
});
|
|
38
|
-
return assembly;
|
|
39
|
-
} catch (error) {
|
|
40
|
-
this.logger.error("Failed to load assembly", { topicId, error });
|
|
41
|
-
throw new Error(
|
|
42
|
-
`Failed to load assembly: ${error instanceof Error ? error.message : "Unknown error"}`
|
|
43
|
-
);
|
|
15
|
+
const gutenbergBlock = {
|
|
16
|
+
apiVersion: blockDefinition.apiVersion,
|
|
17
|
+
name: blockDefinition.name,
|
|
18
|
+
title: blockDefinition.title,
|
|
19
|
+
category: blockDefinition.category,
|
|
20
|
+
icon: blockDefinition.icon,
|
|
21
|
+
description: blockDefinition.description,
|
|
22
|
+
keywords: blockDefinition.keywords,
|
|
23
|
+
attributes: blockDefinition.attributes,
|
|
24
|
+
supports: blockDefinition.supports
|
|
25
|
+
};
|
|
26
|
+
if (!gutenbergBlock.attributes) {
|
|
27
|
+
gutenbergBlock.attributes = {};
|
|
44
28
|
}
|
|
29
|
+
if (!gutenbergBlock.supports) {
|
|
30
|
+
gutenbergBlock.supports = {};
|
|
31
|
+
}
|
|
32
|
+
this.logger.debug("Converted to Gutenberg format", {
|
|
33
|
+
name: gutenbergBlock.name,
|
|
34
|
+
attributeCount: Object.keys(gutenbergBlock.attributes).length
|
|
35
|
+
});
|
|
36
|
+
return gutenbergBlock;
|
|
45
37
|
}
|
|
46
38
|
/**
|
|
47
|
-
*
|
|
39
|
+
* Parse Gutenberg block to HashLinks BlockDefinition format
|
|
48
40
|
*/
|
|
49
|
-
|
|
50
|
-
this.logger.debug("
|
|
51
|
-
name:
|
|
41
|
+
parseFromGutenberg(gutenbergBlock) {
|
|
42
|
+
this.logger.debug("Parsing Gutenberg block to BlockDefinition", {
|
|
43
|
+
name: gutenbergBlock.name
|
|
52
44
|
});
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
state: assemblyState,
|
|
56
|
-
actions: [],
|
|
57
|
-
blocks: []
|
|
58
|
-
};
|
|
59
|
-
if (assemblyState.actions) {
|
|
60
|
-
for (const actionRef of assemblyState.actions) {
|
|
61
|
-
try {
|
|
62
|
-
const actionDefinition = await this.resolveActionReference(actionRef);
|
|
63
|
-
assembly.actions.push({
|
|
64
|
-
alias: actionRef.alias,
|
|
65
|
-
t_id: actionRef.t_id,
|
|
66
|
-
definition: actionDefinition,
|
|
67
|
-
config: actionRef.config
|
|
68
|
-
});
|
|
69
|
-
} catch (error) {
|
|
70
|
-
this.logger.warn("Failed to resolve action reference", {
|
|
71
|
-
t_id: actionRef.t_id,
|
|
72
|
-
alias: actionRef.alias,
|
|
73
|
-
error
|
|
74
|
-
});
|
|
75
|
-
assembly.actions.push({
|
|
76
|
-
alias: actionRef.alias,
|
|
77
|
-
t_id: actionRef.t_id,
|
|
78
|
-
definition: null,
|
|
79
|
-
config: actionRef.config,
|
|
80
|
-
error: error instanceof Error ? error.message : "Unknown error"
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
}
|
|
45
|
+
if (!gutenbergBlock || !gutenbergBlock.name) {
|
|
46
|
+
throw new Error("Invalid Gutenberg block: missing name");
|
|
84
47
|
}
|
|
85
|
-
if (
|
|
86
|
-
|
|
87
|
-
try {
|
|
88
|
-
const { definition, template } = await this.resolveBlockReference(blockRef);
|
|
89
|
-
assembly.blocks.push({
|
|
90
|
-
block_t_id: blockRef.block_t_id,
|
|
91
|
-
definition,
|
|
92
|
-
template,
|
|
93
|
-
attributes: blockRef.attributes,
|
|
94
|
-
actions: blockRef.actions,
|
|
95
|
-
children: blockRef.children
|
|
96
|
-
});
|
|
97
|
-
} catch (error) {
|
|
98
|
-
this.logger.warn("Failed to resolve block reference", {
|
|
99
|
-
block_t_id: blockRef.block_t_id,
|
|
100
|
-
error
|
|
101
|
-
});
|
|
102
|
-
assembly.blocks.push({
|
|
103
|
-
block_t_id: blockRef.block_t_id,
|
|
104
|
-
definition: null,
|
|
105
|
-
attributes: blockRef.attributes,
|
|
106
|
-
actions: blockRef.actions,
|
|
107
|
-
children: blockRef.children,
|
|
108
|
-
error: error instanceof Error ? error.message : "Unknown error"
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
}
|
|
48
|
+
if (!gutenbergBlock.title) {
|
|
49
|
+
throw new Error("Invalid Gutenberg block: missing title");
|
|
112
50
|
}
|
|
113
|
-
|
|
51
|
+
const blockDefinition = {
|
|
52
|
+
apiVersion: gutenbergBlock.apiVersion || 3,
|
|
53
|
+
name: gutenbergBlock.name,
|
|
54
|
+
title: gutenbergBlock.title,
|
|
55
|
+
category: gutenbergBlock.category || "common",
|
|
56
|
+
template_t_id: "",
|
|
57
|
+
icon: gutenbergBlock.icon,
|
|
58
|
+
description: gutenbergBlock.description,
|
|
59
|
+
keywords: gutenbergBlock.keywords,
|
|
60
|
+
attributes: gutenbergBlock.attributes || {},
|
|
61
|
+
supports: gutenbergBlock.supports || {}
|
|
62
|
+
};
|
|
63
|
+
this.logger.debug("Parsed from Gutenberg format", {
|
|
64
|
+
name: blockDefinition.name
|
|
65
|
+
});
|
|
66
|
+
return blockDefinition;
|
|
114
67
|
}
|
|
115
68
|
/**
|
|
116
|
-
* Validate
|
|
69
|
+
* Validate block structure for Gutenberg compatibility
|
|
117
70
|
*/
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
topicId: assembly.topicId
|
|
71
|
+
validateBlockStructure(blockRegistration) {
|
|
72
|
+
this.logger.debug("Validating block structure", {
|
|
73
|
+
name: blockRegistration.name
|
|
122
74
|
});
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
errors.push("Assembly must have a version");
|
|
128
|
-
}
|
|
129
|
-
if (assembly.state.blocks) {
|
|
130
|
-
for (const block of assembly.state.blocks) {
|
|
131
|
-
if (block.actions) {
|
|
132
|
-
for (const [actionKey, actionTopicId] of Object.entries(
|
|
133
|
-
block.actions
|
|
134
|
-
)) {
|
|
135
|
-
const actionExists = assembly.state.actions?.some(
|
|
136
|
-
(a) => a.t_id === actionTopicId
|
|
137
|
-
);
|
|
138
|
-
if (!actionExists) {
|
|
139
|
-
errors.push(
|
|
140
|
-
`Block ${block.block_t_id} references non-existent action: ${actionTopicId} for key ${actionKey}`
|
|
141
|
-
);
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
}
|
|
145
|
-
if (block.children) {
|
|
146
|
-
for (const childTopicId of block.children) {
|
|
147
|
-
const childExists = assembly.state.blocks?.some(
|
|
148
|
-
(b) => b.block_t_id === childTopicId
|
|
149
|
-
);
|
|
150
|
-
if (!childExists) {
|
|
151
|
-
errors.push(
|
|
152
|
-
`Block ${block.block_t_id} references non-existent child block: ${childTopicId}`
|
|
153
|
-
);
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
for (const action of assembly.actions) {
|
|
160
|
-
if (action.error) {
|
|
161
|
-
errors.push(
|
|
162
|
-
`Action ${action.alias} has resolution error: ${action.error}`
|
|
163
|
-
);
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
for (const block of assembly.blocks) {
|
|
167
|
-
if (block.error) {
|
|
168
|
-
errors.push(
|
|
169
|
-
`Block ${block.block_t_id} has resolution error: ${block.error}`
|
|
170
|
-
);
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
return {
|
|
174
|
-
valid: errors.length === 0,
|
|
175
|
-
errors
|
|
75
|
+
const result = {
|
|
76
|
+
isValid: true,
|
|
77
|
+
errors: [],
|
|
78
|
+
warnings: []
|
|
176
79
|
};
|
|
80
|
+
this.validateBasicStructure(blockRegistration, result);
|
|
81
|
+
this.validateBlockName(blockRegistration, result);
|
|
82
|
+
this.validateAttributes(blockRegistration, result);
|
|
83
|
+
this.validateSupports(blockRegistration, result);
|
|
84
|
+
this.validateParentChild(blockRegistration, result);
|
|
85
|
+
result.isValid = result.errors.filter(
|
|
86
|
+
(e) => e.severity === "critical" || e.severity === "high"
|
|
87
|
+
).length === 0;
|
|
88
|
+
this.logger.debug("Block structure validation completed", {
|
|
89
|
+
name: blockRegistration.name,
|
|
90
|
+
isValid: result.isValid,
|
|
91
|
+
errorCount: result.errors.length,
|
|
92
|
+
warningCount: result.warnings.length
|
|
93
|
+
});
|
|
94
|
+
return result;
|
|
177
95
|
}
|
|
178
96
|
/**
|
|
179
|
-
*
|
|
97
|
+
* Validate basic block structure
|
|
180
98
|
*/
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
99
|
+
validateBasicStructure(blockRegistration, result) {
|
|
100
|
+
if (!blockRegistration.name || blockRegistration.name.trim() === "") {
|
|
101
|
+
result.errors.push({
|
|
102
|
+
code: "MISSING_NAME",
|
|
103
|
+
message: "Block name cannot be empty",
|
|
104
|
+
field: "name",
|
|
105
|
+
severity: "critical"
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
if (blockRegistration) {
|
|
109
|
+
if (!blockRegistration.title) {
|
|
110
|
+
result.errors.push({
|
|
111
|
+
code: "MISSING_TITLE",
|
|
112
|
+
message: "Block title is required",
|
|
113
|
+
field: "data.title",
|
|
114
|
+
severity: "high"
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
if (!blockRegistration.description) {
|
|
118
|
+
result.warnings.push({
|
|
119
|
+
code: "MISSING_DESCRIPTION",
|
|
120
|
+
message: "Block description improves usability",
|
|
121
|
+
field: "data.description",
|
|
122
|
+
impact: "usability"
|
|
191
123
|
});
|
|
192
124
|
}
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
125
|
+
}
|
|
126
|
+
if (!blockRegistration) {
|
|
127
|
+
result.errors.push({
|
|
128
|
+
code: "MISSING_BLOCK_JSON",
|
|
129
|
+
message: "data is required for Gutenberg compatibility",
|
|
130
|
+
field: "data",
|
|
131
|
+
severity: "critical"
|
|
198
132
|
});
|
|
199
|
-
throw new Error(
|
|
200
|
-
`Failed to load and resolve assembly: ${error instanceof Error ? error.message : "Unknown error"}`
|
|
201
|
-
);
|
|
202
133
|
}
|
|
203
134
|
}
|
|
204
135
|
/**
|
|
205
|
-
*
|
|
136
|
+
* Validate block name format
|
|
206
137
|
*/
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
138
|
+
validateBlockName(blockRegistration, result) {
|
|
139
|
+
if (!blockRegistration.name) return;
|
|
140
|
+
const namePattern = /^[a-z0-9-]+\/[a-z0-9-]+$/;
|
|
141
|
+
if (!namePattern.test(blockRegistration.name)) {
|
|
142
|
+
result.errors.push({
|
|
143
|
+
code: "INVALID_BLOCK_NAME",
|
|
144
|
+
message: "Block name must follow namespace/block-name format (lowercase, hyphens only)",
|
|
145
|
+
field: "name",
|
|
146
|
+
severity: "high"
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
if (blockRegistration && blockRegistration.name) {
|
|
150
|
+
result.warnings.push({
|
|
151
|
+
code: "NAME_MISMATCH",
|
|
152
|
+
message: "Block name should match data.name",
|
|
153
|
+
field: "name",
|
|
154
|
+
impact: "functionality"
|
|
155
|
+
});
|
|
211
156
|
}
|
|
212
|
-
return action;
|
|
213
|
-
}
|
|
214
|
-
/**
|
|
215
|
-
* Resolve block reference by fetching from HCS-1
|
|
216
|
-
*/
|
|
217
|
-
async resolveBlockReference(blockRef) {
|
|
218
|
-
return await this.blockLoader.loadBlock(blockRef.block_t_id);
|
|
219
157
|
}
|
|
220
158
|
/**
|
|
221
|
-
*
|
|
159
|
+
* Validate block attributes
|
|
222
160
|
*/
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
161
|
+
validateAttributes(blockRegistration, result) {
|
|
162
|
+
if (!blockRegistration || !blockRegistration.attributes) return;
|
|
163
|
+
const attributes = blockRegistration.attributes;
|
|
164
|
+
const validTypes = ["string", "number", "boolean", "array", "object"];
|
|
165
|
+
for (const [attrName, attrDef] of Object.entries(attributes)) {
|
|
166
|
+
if (!attrDef.type) {
|
|
167
|
+
result.errors.push({
|
|
168
|
+
code: "MISSING_ATTRIBUTE_TYPE",
|
|
169
|
+
message: `Attribute '${attrName}' must specify a type`,
|
|
170
|
+
field: `attributes.${attrName}.type`,
|
|
171
|
+
severity: "medium"
|
|
172
|
+
});
|
|
173
|
+
continue;
|
|
174
|
+
}
|
|
175
|
+
if (!validTypes.includes(attrDef.type)) {
|
|
176
|
+
result.errors.push({
|
|
177
|
+
code: "INVALID_ATTRIBUTE_TYPE",
|
|
178
|
+
message: `Attribute '${attrName}' has invalid type '${attrDef.type}'`,
|
|
179
|
+
field: `attributes.${attrName}.type`,
|
|
180
|
+
severity: "high"
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
if (attrDef.enum && attrDef.default && !attrDef.enum.includes(attrDef.default)) {
|
|
184
|
+
result.warnings.push({
|
|
185
|
+
code: "DEFAULT_NOT_IN_ENUM",
|
|
186
|
+
message: `Attribute '${attrName}' default value not in enum`,
|
|
187
|
+
field: `attributes.${attrName}.default`,
|
|
188
|
+
impact: "functionality"
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
}
|
|
226
192
|
}
|
|
227
193
|
/**
|
|
228
|
-
*
|
|
194
|
+
* Validate block supports
|
|
229
195
|
*/
|
|
230
|
-
|
|
231
|
-
|
|
196
|
+
validateSupports(blockRegistration, result) {
|
|
197
|
+
if (!blockRegistration || !blockRegistration.supports) return;
|
|
198
|
+
const supports = blockRegistration.supports;
|
|
199
|
+
if (supports.align !== void 0) {
|
|
200
|
+
if (typeof supports.align === "boolean") ;
|
|
201
|
+
else if (Array.isArray(supports.align)) {
|
|
202
|
+
const validAlignments = ["left", "center", "right", "wide", "full"];
|
|
203
|
+
const invalidAlignments = supports.align.filter(
|
|
204
|
+
(align) => !validAlignments.includes(align)
|
|
205
|
+
);
|
|
206
|
+
if (invalidAlignments.length > 0) {
|
|
207
|
+
result.warnings.push({
|
|
208
|
+
code: "INVALID_ALIGNMENT",
|
|
209
|
+
message: `Invalid alignment values: ${invalidAlignments.join(", ")}`,
|
|
210
|
+
field: "supports.align",
|
|
211
|
+
impact: "functionality"
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
}
|
|
232
216
|
}
|
|
233
217
|
/**
|
|
234
|
-
*
|
|
218
|
+
* Validate parent/child relationships
|
|
235
219
|
*/
|
|
236
|
-
|
|
237
|
-
|
|
220
|
+
validateParentChild(blockRegistration, result) {
|
|
221
|
+
if (!blockRegistration) return;
|
|
222
|
+
if (blockRegistration.parent) {
|
|
223
|
+
result.warnings.push({
|
|
224
|
+
code: "REQUIRES_PARENT",
|
|
225
|
+
message: "Block requires a specific parent block",
|
|
226
|
+
field: "parent",
|
|
227
|
+
impact: "usability"
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
if (blockRegistration.provides && Object.keys(blockRegistration.provides).length > 0) {
|
|
231
|
+
result.warnings.push({
|
|
232
|
+
code: "PROVIDES_CONTEXT",
|
|
233
|
+
message: "Block provides context to child blocks",
|
|
234
|
+
field: "provides",
|
|
235
|
+
impact: "functionality"
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
if (blockRegistration.usesContext && blockRegistration.usesContext.length > 0) {
|
|
239
|
+
result.warnings.push({
|
|
240
|
+
code: "USES_CONTEXT",
|
|
241
|
+
message: "Block depends on context from parent blocks",
|
|
242
|
+
field: "usesContext",
|
|
243
|
+
impact: "functionality"
|
|
244
|
+
});
|
|
245
|
+
}
|
|
238
246
|
}
|
|
239
247
|
}
|
|
240
248
|
export {
|
|
241
|
-
|
|
249
|
+
GutenbergBridge
|
|
242
250
|
};
|
|
243
251
|
//# sourceMappingURL=standards-sdk.es44.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es44.js","sources":["../../src/hcs-12/assembly/assembly-engine.ts"],"sourcesContent":["/**\n * Assembly Engine for HCS-12 HashLinks\n *\n * Handles loading, reference resolution, and validation of HashLink assemblies\n * using the new incremental assembly approach with caching and error handling.\n */\n\nimport { ILogger, Logger } from '../../utils/logger';\nimport {\n AssemblyState,\n AssemblyAction,\n AssemblyBlock,\n ActionRegistration,\n BlockDefinition,\n AssemblyRegistration,\n} from '../types';\nimport { AssemblyRegistry } from '../registries/assembly-registry';\nimport { ActionRegistry } from '../registries/action-registry';\nimport { BlockLoader } from '../registries/block-loader';\n\nexport interface Assembly {\n topicId: string;\n state: AssemblyState;\n actions: ResolvedAction[];\n blocks: ResolvedBlock[];\n dependencies?: ResolvedDependency[];\n}\n\nexport interface ResolvedAction {\n alias: string;\n t_id: string;\n definition: ActionRegistration | null;\n config?: any;\n error?: string;\n}\n\nexport interface ResolvedBlock {\n block_t_id: string;\n definition: BlockDefinition | null;\n template?: string;\n attributes?: Record<string, any>;\n actions?: Record<string, string>;\n children?: string[];\n error?: string;\n}\n\nexport interface ResolvedDependency {\n name: string;\n version: string;\n registry?: string;\n definition: AssemblyRegistration | null;\n error?: string;\n}\n\nexport class AssemblyEngine {\n private logger: ILogger;\n private cache: Map<string, Assembly> = new Map();\n private assemblyRegistry: AssemblyRegistry;\n private actionRegistry: ActionRegistry;\n private blockLoader: BlockLoader;\n\n constructor(\n logger: ILogger,\n assemblyRegistry: AssemblyRegistry,\n actionRegistry: ActionRegistry,\n blockLoader: BlockLoader,\n ) {\n this.logger = logger;\n this.assemblyRegistry = assemblyRegistry;\n this.actionRegistry = actionRegistry;\n this.blockLoader = blockLoader;\n }\n\n /**\n * Load assembly state from topic and resolve all references\n */\n async loadAssembly(topicId: string): Promise<Assembly> {\n this.logger.debug('Loading assembly', { topicId });\n\n const cached = this.cache.get(topicId);\n if (cached) {\n this.logger.debug('Assembly loaded from cache', { topicId });\n return cached;\n }\n\n try {\n const assemblyState =\n await this.assemblyRegistry.getAssemblyState(topicId);\n if (!assemblyState) {\n throw new Error(`Assembly not found: ${topicId}`);\n }\n\n const assembly: Assembly = {\n topicId,\n state: assemblyState,\n actions: [],\n blocks: [],\n };\n\n this.cache.set(topicId, assembly);\n\n this.logger.debug('Assembly loaded successfully', {\n topicId,\n name: assemblyState.name,\n version: assemblyState.version,\n actionsCount: assemblyState.actions?.length || 0,\n blocksCount: assemblyState.blocks?.length || 0,\n });\n\n return assembly;\n } catch (error) {\n this.logger.error('Failed to load assembly', { topicId, error });\n throw new Error(\n `Failed to load assembly: ${error instanceof Error ? error.message : 'Unknown error'}`,\n );\n }\n }\n\n /**\n * Resolve all references in an assembly state\n */\n async resolveReferences(assemblyState: AssemblyState): Promise<Assembly> {\n this.logger.debug('Resolving assembly references', {\n name: assemblyState.name,\n });\n\n const assembly: Assembly = {\n topicId: assemblyState.topicId,\n state: assemblyState,\n actions: [],\n blocks: [],\n };\n\n if (assemblyState.actions) {\n for (const actionRef of assemblyState.actions) {\n try {\n const actionDefinition = await this.resolveActionReference(actionRef);\n assembly.actions.push({\n alias: actionRef.alias,\n t_id: actionRef.t_id,\n definition: actionDefinition,\n config: actionRef.config,\n });\n } catch (error) {\n this.logger.warn('Failed to resolve action reference', {\n t_id: actionRef.t_id,\n alias: actionRef.alias,\n error,\n });\n assembly.actions.push({\n alias: actionRef.alias,\n t_id: actionRef.t_id,\n definition: null,\n config: actionRef.config,\n error: error instanceof Error ? error.message : 'Unknown error',\n });\n }\n }\n }\n\n if (assemblyState.blocks) {\n for (const blockRef of assemblyState.blocks) {\n try {\n const { definition, template } =\n await this.resolveBlockReference(blockRef);\n assembly.blocks.push({\n block_t_id: blockRef.block_t_id,\n definition,\n template,\n attributes: blockRef.attributes,\n actions: blockRef.actions,\n children: blockRef.children,\n });\n } catch (error) {\n this.logger.warn('Failed to resolve block reference', {\n block_t_id: blockRef.block_t_id,\n error,\n });\n assembly.blocks.push({\n block_t_id: blockRef.block_t_id,\n definition: null,\n attributes: blockRef.attributes,\n actions: blockRef.actions,\n children: blockRef.children,\n error: error instanceof Error ? error.message : 'Unknown error',\n });\n }\n }\n }\n\n return assembly;\n }\n\n /**\n * Validate that an assembly can be composed without errors\n */\n validateComposition(assembly: Assembly): {\n valid: boolean;\n errors: string[];\n } {\n const errors: string[] = [];\n\n this.logger.debug('Validating assembly composition', {\n topicId: assembly.topicId,\n });\n\n if (!assembly.state.name) {\n errors.push('Assembly must have a name');\n }\n\n if (!assembly.state.version) {\n errors.push('Assembly must have a version');\n }\n\n if (assembly.state.blocks) {\n for (const block of assembly.state.blocks) {\n if (block.actions) {\n for (const [actionKey, actionTopicId] of Object.entries(\n block.actions,\n )) {\n const actionExists = assembly.state.actions?.some(\n a => a.t_id === actionTopicId,\n );\n if (!actionExists) {\n errors.push(\n `Block ${block.block_t_id} references non-existent action: ${actionTopicId} for key ${actionKey}`,\n );\n }\n }\n }\n\n if (block.children) {\n for (const childTopicId of block.children) {\n const childExists = assembly.state.blocks?.some(\n b => b.block_t_id === childTopicId,\n );\n if (!childExists) {\n errors.push(\n `Block ${block.block_t_id} references non-existent child block: ${childTopicId}`,\n );\n }\n }\n }\n }\n }\n\n for (const action of assembly.actions) {\n if (action.error) {\n errors.push(\n `Action ${action.alias} has resolution error: ${action.error}`,\n );\n }\n }\n\n for (const block of assembly.blocks) {\n if (block.error) {\n errors.push(\n `Block ${block.block_t_id} has resolution error: ${block.error}`,\n );\n }\n }\n\n return {\n valid: errors.length === 0,\n errors,\n };\n }\n\n /**\n * Load and resolve assembly with full validation\n */\n async loadAndResolveAssembly(topicId: string): Promise<Assembly> {\n this.logger.debug('Loading and resolving assembly', { topicId });\n\n try {\n const assembly = await this.loadAssembly(topicId);\n const resolved = await this.resolveReferences(assembly.state);\n\n const validation = this.validateComposition(resolved);\n if (!validation.valid) {\n this.logger.warn('Assembly validation failed', {\n topicId,\n errors: validation.errors,\n });\n }\n\n return resolved;\n } catch (error) {\n this.logger.error('Failed to load and resolve assembly', {\n topicId,\n error,\n });\n throw new Error(\n `Failed to load and resolve assembly: ${error instanceof Error ? error.message : 'Unknown error'}`,\n );\n }\n }\n\n /**\n * Resolve action reference by fetching from action registry\n */\n private async resolveActionReference(\n actionRef: AssemblyAction,\n ): Promise<ActionRegistration> {\n const action = await this.actionRegistry.getActionByTopicId(actionRef.t_id);\n if (!action) {\n throw new Error(`Action not found at topic: ${actionRef.t_id}`);\n }\n return action;\n }\n\n /**\n * Resolve block reference by fetching from HCS-1\n */\n private async resolveBlockReference(\n blockRef: AssemblyBlock,\n ): Promise<{ definition: BlockDefinition; template: string }> {\n return await this.blockLoader.loadBlock(blockRef.block_t_id);\n }\n\n /**\n * Clear assembly cache\n */\n clearCache(): void {\n this.cache.clear();\n this.logger.debug('Assembly cache cleared');\n }\n\n /**\n * Get cached assembly\n */\n getCachedAssembly(topicId: string): Assembly | undefined {\n return this.cache.get(topicId);\n }\n\n /**\n * Check if assembly is cached\n */\n isAssemblyCached(topicId: string): boolean {\n return this.cache.has(topicId);\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"standards-sdk.es44.js","sources":["../../src/hcs-12/rendering/gutenberg-bridge.ts"],"sourcesContent":["/**\n * Gutenberg Bridge for HCS-12 HashLinks\n *\n * Provides conversion between HashLinks block definitions and WordPress\n * Gutenberg block format, enabling seamless integration with Gutenberg editors.\n */\n\nimport { Logger } from '../../utils/logger';\nimport {\n BlockDefinition,\n GutenbergBlockType,\n BlockAttribute,\n BlockSupports,\n} from '../types';\n\nexport interface GutenbergValidationResult {\n isValid: boolean;\n errors: GutenbergValidationError[];\n warnings: ValidationWarning[];\n}\n\nexport interface GutenbergValidationError {\n code: string;\n message: string;\n field?: string;\n severity: 'critical' | 'high' | 'medium' | 'low';\n}\n\nexport interface ValidationWarning {\n code: string;\n message: string;\n field?: string;\n impact: 'functionality' | 'usability' | 'performance';\n}\n\n/**\n * Bridge between HashLinks and Gutenberg block formats\n */\nexport class GutenbergBridge {\n private logger: Logger;\n\n constructor(logger: Logger) {\n this.logger = logger;\n }\n\n /**\n * Convert HashLinks BlockDefinition to Gutenberg block format\n */\n convertToGutenberg(blockDefinition: BlockDefinition): GutenbergBlockType {\n this.logger.debug('Converting BlockDefinition to Gutenberg format', {\n name: blockDefinition.name,\n });\n\n if (!blockDefinition || !blockDefinition.name) {\n throw new Error('Invalid block definition: missing name');\n }\n\n const gutenbergBlock: GutenbergBlockType = {\n apiVersion: blockDefinition.apiVersion,\n name: blockDefinition.name,\n title: blockDefinition.title,\n category: blockDefinition.category,\n icon: blockDefinition.icon,\n description: blockDefinition.description,\n keywords: blockDefinition.keywords,\n attributes: blockDefinition.attributes,\n supports: blockDefinition.supports,\n };\n\n if (!gutenbergBlock.attributes) {\n gutenbergBlock.attributes = {};\n }\n\n if (!gutenbergBlock.supports) {\n gutenbergBlock.supports = {};\n }\n\n this.logger.debug('Converted to Gutenberg format', {\n name: gutenbergBlock.name,\n attributeCount: Object.keys(gutenbergBlock.attributes).length,\n });\n\n return gutenbergBlock;\n }\n\n /**\n * Parse Gutenberg block to HashLinks BlockDefinition format\n */\n parseFromGutenberg(gutenbergBlock: GutenbergBlockType): BlockDefinition {\n this.logger.debug('Parsing Gutenberg block to BlockDefinition', {\n name: gutenbergBlock.name,\n });\n\n if (!gutenbergBlock || !gutenbergBlock.name) {\n throw new Error('Invalid Gutenberg block: missing name');\n }\n\n if (!gutenbergBlock.title) {\n throw new Error('Invalid Gutenberg block: missing title');\n }\n\n const blockDefinition: BlockDefinition = {\n apiVersion: gutenbergBlock.apiVersion || 3,\n name: gutenbergBlock.name,\n title: gutenbergBlock.title,\n category: gutenbergBlock.category || 'common',\n template_t_id: '',\n icon: gutenbergBlock.icon,\n description: gutenbergBlock.description,\n keywords: gutenbergBlock.keywords,\n attributes: gutenbergBlock.attributes || {},\n supports: gutenbergBlock.supports || {},\n };\n\n this.logger.debug('Parsed from Gutenberg format', {\n name: blockDefinition.name,\n });\n\n return blockDefinition;\n }\n\n /**\n * Validate block structure for Gutenberg compatibility\n */\n validateBlockStructure(\n blockRegistration: BlockDefinition,\n ): GutenbergValidationResult {\n this.logger.debug('Validating block structure', {\n name: blockRegistration.name,\n });\n\n const result: GutenbergValidationResult = {\n isValid: true,\n errors: [],\n warnings: [],\n };\n\n this.validateBasicStructure(blockRegistration, result);\n\n this.validateBlockName(blockRegistration, result);\n\n this.validateAttributes(blockRegistration, result);\n\n this.validateSupports(blockRegistration, result);\n\n this.validateParentChild(blockRegistration, result);\n\n result.isValid =\n result.errors.filter(\n e => e.severity === 'critical' || e.severity === 'high',\n ).length === 0;\n\n this.logger.debug('Block structure validation completed', {\n name: blockRegistration.name,\n isValid: result.isValid,\n errorCount: result.errors.length,\n warningCount: result.warnings.length,\n });\n\n return result;\n }\n\n /**\n * Validate basic block structure\n */\n private validateBasicStructure(\n blockRegistration: BlockDefinition,\n result: GutenbergValidationResult,\n ): void {\n if (!blockRegistration.name || blockRegistration.name.trim() === '') {\n result.errors.push({\n code: 'MISSING_NAME',\n message: 'Block name cannot be empty',\n field: 'name',\n severity: 'critical',\n });\n }\n\n if (blockRegistration) {\n if (!blockRegistration.title) {\n result.errors.push({\n code: 'MISSING_TITLE',\n message: 'Block title is required',\n field: 'data.title',\n severity: 'high',\n });\n }\n\n if (!blockRegistration.description) {\n result.warnings.push({\n code: 'MISSING_DESCRIPTION',\n message: 'Block description improves usability',\n field: 'data.description',\n impact: 'usability',\n });\n }\n }\n\n if (!blockRegistration) {\n result.errors.push({\n code: 'MISSING_BLOCK_JSON',\n message: 'data is required for Gutenberg compatibility',\n field: 'data',\n severity: 'critical',\n });\n }\n }\n\n /**\n * Validate block name format\n */\n private validateBlockName(\n blockRegistration: BlockDefinition,\n result: GutenbergValidationResult,\n ): void {\n if (!blockRegistration.name) return;\n\n const namePattern = /^[a-z0-9-]+\\/[a-z0-9-]+$/;\n if (!namePattern.test(blockRegistration.name)) {\n result.errors.push({\n code: 'INVALID_BLOCK_NAME',\n message:\n 'Block name must follow namespace/block-name format (lowercase, hyphens only)',\n field: 'name',\n severity: 'high',\n });\n }\n\n if (blockRegistration && blockRegistration.name) {\n result.warnings.push({\n code: 'NAME_MISMATCH',\n message: 'Block name should match data.name',\n field: 'name',\n impact: 'functionality',\n });\n }\n }\n\n /**\n * Validate block attributes\n */\n private validateAttributes(\n blockRegistration: BlockDefinition,\n result: GutenbergValidationResult,\n ): void {\n if (!blockRegistration || !blockRegistration.attributes) return;\n\n const attributes = blockRegistration.attributes;\n const validTypes = ['string', 'number', 'boolean', 'array', 'object'];\n\n for (const [attrName, attrDef] of Object.entries(attributes)) {\n if (!attrDef.type) {\n result.errors.push({\n code: 'MISSING_ATTRIBUTE_TYPE',\n message: `Attribute '${attrName}' must specify a type`,\n field: `attributes.${attrName}.type`,\n severity: 'medium',\n });\n continue;\n }\n\n if (!validTypes.includes(attrDef.type)) {\n result.errors.push({\n code: 'INVALID_ATTRIBUTE_TYPE',\n message: `Attribute '${attrName}' has invalid type '${attrDef.type}'`,\n field: `attributes.${attrName}.type`,\n severity: 'high',\n });\n }\n\n if (\n attrDef.enum &&\n attrDef.default &&\n !attrDef.enum.includes(attrDef.default)\n ) {\n result.warnings.push({\n code: 'DEFAULT_NOT_IN_ENUM',\n message: `Attribute '${attrName}' default value not in enum`,\n field: `attributes.${attrName}.default`,\n impact: 'functionality',\n });\n }\n }\n }\n\n /**\n * Validate block supports\n */\n private validateSupports(\n blockRegistration: BlockDefinition,\n result: GutenbergValidationResult,\n ): void {\n if (!blockRegistration || !blockRegistration.supports) return;\n\n const supports = blockRegistration.supports;\n\n if (supports.align !== undefined) {\n if (typeof supports.align === 'boolean') {\n } else if (Array.isArray(supports.align)) {\n const validAlignments = ['left', 'center', 'right', 'wide', 'full'];\n const invalidAlignments = supports.align.filter(\n align => !validAlignments.includes(align),\n );\n if (invalidAlignments.length > 0) {\n result.warnings.push({\n code: 'INVALID_ALIGNMENT',\n message: `Invalid alignment values: ${invalidAlignments.join(', ')}`,\n field: 'supports.align',\n impact: 'functionality',\n });\n }\n }\n }\n }\n\n /**\n * Validate parent/child relationships\n */\n private validateParentChild(\n blockRegistration: BlockDefinition,\n result: GutenbergValidationResult,\n ): void {\n if (!blockRegistration) return;\n\n if (blockRegistration.parent) {\n result.warnings.push({\n code: 'REQUIRES_PARENT',\n message: 'Block requires a specific parent block',\n field: 'parent',\n impact: 'usability',\n });\n }\n\n if (\n blockRegistration.provides &&\n Object.keys(blockRegistration.provides).length > 0\n ) {\n result.warnings.push({\n code: 'PROVIDES_CONTEXT',\n message: 'Block provides context to child blocks',\n field: 'provides',\n impact: 'functionality',\n });\n }\n\n if (\n blockRegistration.usesContext &&\n blockRegistration.usesContext.length > 0\n ) {\n result.warnings.push({\n code: 'USES_CONTEXT',\n message: 'Block depends on context from parent blocks',\n field: 'usesContext',\n impact: 'functionality',\n });\n }\n }\n}\n"],"names":[],"mappings":"AAsCO,MAAM,gBAAgB;AAAA,EAG3B,YAAY,QAAgB;AAC1B,SAAK,SAAS;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,mBAAmB,iBAAsD;AACvE,SAAK,OAAO,MAAM,kDAAkD;AAAA,MAClE,MAAM,gBAAgB;AAAA,IAAA,CACvB;AAED,QAAI,CAAC,mBAAmB,CAAC,gBAAgB,MAAM;AAC7C,YAAM,IAAI,MAAM,wCAAwC;AAAA,IAC1D;AAEA,UAAM,iBAAqC;AAAA,MACzC,YAAY,gBAAgB;AAAA,MAC5B,MAAM,gBAAgB;AAAA,MACtB,OAAO,gBAAgB;AAAA,MACvB,UAAU,gBAAgB;AAAA,MAC1B,MAAM,gBAAgB;AAAA,MACtB,aAAa,gBAAgB;AAAA,MAC7B,UAAU,gBAAgB;AAAA,MAC1B,YAAY,gBAAgB;AAAA,MAC5B,UAAU,gBAAgB;AAAA,IAAA;AAG5B,QAAI,CAAC,eAAe,YAAY;AAC9B,qBAAe,aAAa,CAAA;AAAA,IAC9B;AAEA,QAAI,CAAC,eAAe,UAAU;AAC5B,qBAAe,WAAW,CAAA;AAAA,IAC5B;AAEA,SAAK,OAAO,MAAM,iCAAiC;AAAA,MACjD,MAAM,eAAe;AAAA,MACrB,gBAAgB,OAAO,KAAK,eAAe,UAAU,EAAE;AAAA,IAAA,CACxD;AAED,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,mBAAmB,gBAAqD;AACtE,SAAK,OAAO,MAAM,8CAA8C;AAAA,MAC9D,MAAM,eAAe;AAAA,IAAA,CACtB;AAED,QAAI,CAAC,kBAAkB,CAAC,eAAe,MAAM;AAC3C,YAAM,IAAI,MAAM,uCAAuC;AAAA,IACzD;AAEA,QAAI,CAAC,eAAe,OAAO;AACzB,YAAM,IAAI,MAAM,wCAAwC;AAAA,IAC1D;AAEA,UAAM,kBAAmC;AAAA,MACvC,YAAY,eAAe,cAAc;AAAA,MACzC,MAAM,eAAe;AAAA,MACrB,OAAO,eAAe;AAAA,MACtB,UAAU,eAAe,YAAY;AAAA,MACrC,eAAe;AAAA,MACf,MAAM,eAAe;AAAA,MACrB,aAAa,eAAe;AAAA,MAC5B,UAAU,eAAe;AAAA,MACzB,YAAY,eAAe,cAAc,CAAA;AAAA,MACzC,UAAU,eAAe,YAAY,CAAA;AAAA,IAAC;AAGxC,SAAK,OAAO,MAAM,gCAAgC;AAAA,MAChD,MAAM,gBAAgB;AAAA,IAAA,CACvB;AAED,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,uBACE,mBAC2B;AAC3B,SAAK,OAAO,MAAM,8BAA8B;AAAA,MAC9C,MAAM,kBAAkB;AAAA,IAAA,CACzB;AAED,UAAM,SAAoC;AAAA,MACxC,SAAS;AAAA,MACT,QAAQ,CAAA;AAAA,MACR,UAAU,CAAA;AAAA,IAAC;AAGb,SAAK,uBAAuB,mBAAmB,MAAM;AAErD,SAAK,kBAAkB,mBAAmB,MAAM;AAEhD,SAAK,mBAAmB,mBAAmB,MAAM;AAEjD,SAAK,iBAAiB,mBAAmB,MAAM;AAE/C,SAAK,oBAAoB,mBAAmB,MAAM;AAElD,WAAO,UACL,OAAO,OAAO;AAAA,MACZ,CAAA,MAAK,EAAE,aAAa,cAAc,EAAE,aAAa;AAAA,IAAA,EACjD,WAAW;AAEf,SAAK,OAAO,MAAM,wCAAwC;AAAA,MACxD,MAAM,kBAAkB;AAAA,MACxB,SAAS,OAAO;AAAA,MAChB,YAAY,OAAO,OAAO;AAAA,MAC1B,cAAc,OAAO,SAAS;AAAA,IAAA,CAC/B;AAED,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKQ,uBACN,mBACA,QACM;AACN,QAAI,CAAC,kBAAkB,QAAQ,kBAAkB,KAAK,KAAA,MAAW,IAAI;AACnE,aAAO,OAAO,KAAK;AAAA,QACjB,MAAM;AAAA,QACN,SAAS;AAAA,QACT,OAAO;AAAA,QACP,UAAU;AAAA,MAAA,CACX;AAAA,IACH;AAEA,QAAI,mBAAmB;AACrB,UAAI,CAAC,kBAAkB,OAAO;AAC5B,eAAO,OAAO,KAAK;AAAA,UACjB,MAAM;AAAA,UACN,SAAS;AAAA,UACT,OAAO;AAAA,UACP,UAAU;AAAA,QAAA,CACX;AAAA,MACH;AAEA,UAAI,CAAC,kBAAkB,aAAa;AAClC,eAAO,SAAS,KAAK;AAAA,UACnB,MAAM;AAAA,UACN,SAAS;AAAA,UACT,OAAO;AAAA,UACP,QAAQ;AAAA,QAAA,CACT;AAAA,MACH;AAAA,IACF;AAEA,QAAI,CAAC,mBAAmB;AACtB,aAAO,OAAO,KAAK;AAAA,QACjB,MAAM;AAAA,QACN,SAAS;AAAA,QACT,OAAO;AAAA,QACP,UAAU;AAAA,MAAA,CACX;AAAA,IACH;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKQ,kBACN,mBACA,QACM;AACN,QAAI,CAAC,kBAAkB,KAAM;AAE7B,UAAM,cAAc;AACpB,QAAI,CAAC,YAAY,KAAK,kBAAkB,IAAI,GAAG;AAC7C,aAAO,OAAO,KAAK;AAAA,QACjB,MAAM;AAAA,QACN,SACE;AAAA,QACF,OAAO;AAAA,QACP,UAAU;AAAA,MAAA,CACX;AAAA,IACH;AAEA,QAAI,qBAAqB,kBAAkB,MAAM;AAC/C,aAAO,SAAS,KAAK;AAAA,QACnB,MAAM;AAAA,QACN,SAAS;AAAA,QACT,OAAO;AAAA,QACP,QAAQ;AAAA,MAAA,CACT;AAAA,IACH;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKQ,mBACN,mBACA,QACM;AACN,QAAI,CAAC,qBAAqB,CAAC,kBAAkB,WAAY;AAEzD,UAAM,aAAa,kBAAkB;AACrC,UAAM,aAAa,CAAC,UAAU,UAAU,WAAW,SAAS,QAAQ;AAEpE,eAAW,CAAC,UAAU,OAAO,KAAK,OAAO,QAAQ,UAAU,GAAG;AAC5D,UAAI,CAAC,QAAQ,MAAM;AACjB,eAAO,OAAO,KAAK;AAAA,UACjB,MAAM;AAAA,UACN,SAAS,cAAc,QAAQ;AAAA,UAC/B,OAAO,cAAc,QAAQ;AAAA,UAC7B,UAAU;AAAA,QAAA,CACX;AACD;AAAA,MACF;AAEA,UAAI,CAAC,WAAW,SAAS,QAAQ,IAAI,GAAG;AACtC,eAAO,OAAO,KAAK;AAAA,UACjB,MAAM;AAAA,UACN,SAAS,cAAc,QAAQ,uBAAuB,QAAQ,IAAI;AAAA,UAClE,OAAO,cAAc,QAAQ;AAAA,UAC7B,UAAU;AAAA,QAAA,CACX;AAAA,MACH;AAEA,UACE,QAAQ,QACR,QAAQ,WACR,CAAC,QAAQ,KAAK,SAAS,QAAQ,OAAO,GACtC;AACA,eAAO,SAAS,KAAK;AAAA,UACnB,MAAM;AAAA,UACN,SAAS,cAAc,QAAQ;AAAA,UAC/B,OAAO,cAAc,QAAQ;AAAA,UAC7B,QAAQ;AAAA,QAAA,CACT;AAAA,MACH;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKQ,iBACN,mBACA,QACM;AACN,QAAI,CAAC,qBAAqB,CAAC,kBAAkB,SAAU;AAEvD,UAAM,WAAW,kBAAkB;AAEnC,QAAI,SAAS,UAAU,QAAW;AAChC,UAAI,OAAO,SAAS,UAAU,UAAW;AAAA,eAC9B,MAAM,QAAQ,SAAS,KAAK,GAAG;AACxC,cAAM,kBAAkB,CAAC,QAAQ,UAAU,SAAS,QAAQ,MAAM;AAClE,cAAM,oBAAoB,SAAS,MAAM;AAAA,UACvC,CAAA,UAAS,CAAC,gBAAgB,SAAS,KAAK;AAAA,QAAA;AAE1C,YAAI,kBAAkB,SAAS,GAAG;AAChC,iBAAO,SAAS,KAAK;AAAA,YACnB,MAAM;AAAA,YACN,SAAS,6BAA6B,kBAAkB,KAAK,IAAI,CAAC;AAAA,YAClE,OAAO;AAAA,YACP,QAAQ;AAAA,UAAA,CACT;AAAA,QACH;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKQ,oBACN,mBACA,QACM;AACN,QAAI,CAAC,kBAAmB;AAExB,QAAI,kBAAkB,QAAQ;AAC5B,aAAO,SAAS,KAAK;AAAA,QACnB,MAAM;AAAA,QACN,SAAS;AAAA,QACT,OAAO;AAAA,QACP,QAAQ;AAAA,MAAA,CACT;AAAA,IACH;AAEA,QACE,kBAAkB,YAClB,OAAO,KAAK,kBAAkB,QAAQ,EAAE,SAAS,GACjD;AACA,aAAO,SAAS,KAAK;AAAA,QACnB,MAAM;AAAA,QACN,SAAS;AAAA,QACT,OAAO;AAAA,QACP,QAAQ;AAAA,MAAA,CACT;AAAA,IACH;AAEA,QACE,kBAAkB,eAClB,kBAAkB,YAAY,SAAS,GACvC;AACA,aAAO,SAAS,KAAK;AAAA,QACnB,MAAM;AAAA,QACN,SAAS;AAAA,QACT,OAAO;AAAA,QACP,QAAQ;AAAA,MAAA,CACT;AAAA,IACH;AAAA,EACF;AACF;"}
|