@hashgraphonline/standards-sdk 0.1.185 → 0.1.187
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/README.md +3 -0
- package/dist/browser/hcs-25/adapters/acp.d.ts +20 -0
- package/dist/browser/hcs-25/adapters/acp.d.ts.map +1 -0
- package/dist/browser/hcs-25/adapters/agentverse.d.ts +34 -0
- package/dist/browser/hcs-25/adapters/agentverse.d.ts.map +1 -0
- package/dist/browser/hcs-25/adapters/availability.d.ts +22 -0
- package/dist/browser/hcs-25/adapters/availability.d.ts.map +1 -0
- package/dist/browser/hcs-25/adapters/connectivity.d.ts +25 -0
- package/dist/browser/hcs-25/adapters/connectivity.d.ts.map +1 -0
- package/dist/browser/hcs-25/adapters/erc8004-feedback.d.ts +19 -0
- package/dist/browser/hcs-25/adapters/erc8004-feedback.d.ts.map +1 -0
- package/dist/browser/hcs-25/adapters/ethos.d.ts +21 -0
- package/dist/browser/hcs-25/adapters/ethos.d.ts.map +1 -0
- package/dist/browser/hcs-25/adapters/index.d.ts +21 -0
- package/dist/browser/hcs-25/adapters/index.d.ts.map +1 -0
- package/dist/browser/hcs-25/adapters/model-evals.d.ts +61 -0
- package/dist/browser/hcs-25/adapters/model-evals.d.ts.map +1 -0
- package/dist/browser/hcs-25/adapters/normalization.d.ts +20 -0
- package/dist/browser/hcs-25/adapters/normalization.d.ts.map +1 -0
- package/dist/browser/hcs-25/adapters/oss-popularity.d.ts +22 -0
- package/dist/browser/hcs-25/adapters/oss-popularity.d.ts.map +1 -0
- package/dist/browser/hcs-25/adapters/output-verification.d.ts +27 -0
- package/dist/browser/hcs-25/adapters/output-verification.d.ts.map +1 -0
- package/dist/browser/hcs-25/adapters/simple-evals.d.ts +14 -0
- package/dist/browser/hcs-25/adapters/simple-evals.d.ts.map +1 -0
- package/dist/browser/hcs-25/adapters/x402.d.ts +18 -0
- package/dist/browser/hcs-25/adapters/x402.d.ts.map +1 -0
- package/dist/browser/hcs-25/identifiers.d.ts +2 -2
- package/dist/browser/hcs-25/identifiers.d.ts.map +1 -1
- package/dist/browser/hcs-25/index.d.ts +2 -0
- package/dist/browser/hcs-25/index.d.ts.map +1 -1
- package/dist/browser/hcs-25/scoring.d.ts.map +1 -1
- package/dist/browser/hcs-25/signals/index.d.ts +20 -0
- package/dist/browser/hcs-25/signals/index.d.ts.map +1 -0
- package/dist/browser/hcs-25/signals/marketplace.d.ts +296 -0
- package/dist/browser/hcs-25/signals/marketplace.d.ts.map +1 -0
- package/dist/browser/hcs-25/signals/metadata.d.ts +40 -0
- package/dist/browser/hcs-25/signals/metadata.d.ts.map +1 -0
- package/dist/browser/hcs-25/signals/model-evals.d.ts +127 -0
- package/dist/browser/hcs-25/signals/model-evals.d.ts.map +1 -0
- package/dist/browser/hcs-25/signals/operational.d.ts +757 -0
- package/dist/browser/hcs-25/signals/operational.d.ts.map +1 -0
- package/dist/browser/hcs-25/signals/simple-evals.d.ts +156 -0
- package/dist/browser/hcs-25/signals/simple-evals.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/adapters/acp.d.ts +20 -0
- package/dist/browser-root/hcs-25/adapters/acp.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/adapters/agentverse.d.ts +34 -0
- package/dist/browser-root/hcs-25/adapters/agentverse.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/adapters/availability.d.ts +22 -0
- package/dist/browser-root/hcs-25/adapters/availability.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/adapters/connectivity.d.ts +25 -0
- package/dist/browser-root/hcs-25/adapters/connectivity.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/adapters/erc8004-feedback.d.ts +19 -0
- package/dist/browser-root/hcs-25/adapters/erc8004-feedback.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/adapters/ethos.d.ts +21 -0
- package/dist/browser-root/hcs-25/adapters/ethos.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/adapters/index.d.ts +21 -0
- package/dist/browser-root/hcs-25/adapters/index.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/adapters/model-evals.d.ts +61 -0
- package/dist/browser-root/hcs-25/adapters/model-evals.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/adapters/normalization.d.ts +20 -0
- package/dist/browser-root/hcs-25/adapters/normalization.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/adapters/oss-popularity.d.ts +22 -0
- package/dist/browser-root/hcs-25/adapters/oss-popularity.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/adapters/output-verification.d.ts +27 -0
- package/dist/browser-root/hcs-25/adapters/output-verification.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/adapters/simple-evals.d.ts +14 -0
- package/dist/browser-root/hcs-25/adapters/simple-evals.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/adapters/x402.d.ts +18 -0
- package/dist/browser-root/hcs-25/adapters/x402.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/identifiers.d.ts +2 -2
- package/dist/browser-root/hcs-25/identifiers.d.ts.map +1 -1
- package/dist/browser-root/hcs-25/index.d.ts +2 -0
- package/dist/browser-root/hcs-25/index.d.ts.map +1 -1
- package/dist/browser-root/hcs-25/scoring.d.ts.map +1 -1
- package/dist/browser-root/hcs-25/signals/index.d.ts +20 -0
- package/dist/browser-root/hcs-25/signals/index.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/signals/marketplace.d.ts +296 -0
- package/dist/browser-root/hcs-25/signals/marketplace.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/signals/metadata.d.ts +40 -0
- package/dist/browser-root/hcs-25/signals/metadata.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/signals/model-evals.d.ts +127 -0
- package/dist/browser-root/hcs-25/signals/model-evals.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/signals/operational.d.ts +757 -0
- package/dist/browser-root/hcs-25/signals/operational.d.ts.map +1 -0
- package/dist/browser-root/hcs-25/signals/simple-evals.d.ts +156 -0
- package/dist/browser-root/hcs-25/signals/simple-evals.d.ts.map +1 -0
- package/dist/cjs/hcs-25/adapters/acp.d.ts +20 -0
- package/dist/cjs/hcs-25/adapters/acp.d.ts.map +1 -0
- package/dist/cjs/hcs-25/adapters/agentverse.d.ts +34 -0
- package/dist/cjs/hcs-25/adapters/agentverse.d.ts.map +1 -0
- package/dist/cjs/hcs-25/adapters/availability.d.ts +22 -0
- package/dist/cjs/hcs-25/adapters/availability.d.ts.map +1 -0
- package/dist/cjs/hcs-25/adapters/connectivity.d.ts +25 -0
- package/dist/cjs/hcs-25/adapters/connectivity.d.ts.map +1 -0
- package/dist/cjs/hcs-25/adapters/erc8004-feedback.d.ts +19 -0
- package/dist/cjs/hcs-25/adapters/erc8004-feedback.d.ts.map +1 -0
- package/dist/cjs/hcs-25/adapters/ethos.d.ts +21 -0
- package/dist/cjs/hcs-25/adapters/ethos.d.ts.map +1 -0
- package/dist/cjs/hcs-25/adapters/index.d.ts +21 -0
- package/dist/cjs/hcs-25/adapters/index.d.ts.map +1 -0
- package/dist/cjs/hcs-25/adapters/model-evals.d.ts +61 -0
- package/dist/cjs/hcs-25/adapters/model-evals.d.ts.map +1 -0
- package/dist/cjs/hcs-25/adapters/normalization.d.ts +20 -0
- package/dist/cjs/hcs-25/adapters/normalization.d.ts.map +1 -0
- package/dist/cjs/hcs-25/adapters/oss-popularity.d.ts +22 -0
- package/dist/cjs/hcs-25/adapters/oss-popularity.d.ts.map +1 -0
- package/dist/cjs/hcs-25/adapters/output-verification.d.ts +27 -0
- package/dist/cjs/hcs-25/adapters/output-verification.d.ts.map +1 -0
- package/dist/cjs/hcs-25/adapters/simple-evals.d.ts +14 -0
- package/dist/cjs/hcs-25/adapters/simple-evals.d.ts.map +1 -0
- package/dist/cjs/hcs-25/adapters/x402.d.ts +18 -0
- package/dist/cjs/hcs-25/adapters/x402.d.ts.map +1 -0
- package/dist/cjs/hcs-25/identifiers.d.ts +2 -2
- package/dist/cjs/hcs-25/identifiers.d.ts.map +1 -1
- package/dist/cjs/hcs-25/index.d.ts +2 -0
- package/dist/cjs/hcs-25/index.d.ts.map +1 -1
- package/dist/cjs/hcs-25/scoring.d.ts.map +1 -1
- package/dist/cjs/hcs-25/signals/index.d.ts +20 -0
- package/dist/cjs/hcs-25/signals/index.d.ts.map +1 -0
- package/dist/cjs/hcs-25/signals/marketplace.d.ts +296 -0
- package/dist/cjs/hcs-25/signals/marketplace.d.ts.map +1 -0
- package/dist/cjs/hcs-25/signals/metadata.d.ts +40 -0
- package/dist/cjs/hcs-25/signals/metadata.d.ts.map +1 -0
- package/dist/cjs/hcs-25/signals/model-evals.d.ts +127 -0
- package/dist/cjs/hcs-25/signals/model-evals.d.ts.map +1 -0
- package/dist/cjs/hcs-25/signals/operational.d.ts +757 -0
- package/dist/cjs/hcs-25/signals/operational.d.ts.map +1 -0
- package/dist/cjs/hcs-25/signals/simple-evals.d.ts +156 -0
- package/dist/cjs/hcs-25/signals/simple-evals.d.ts.map +1 -0
- package/dist/cjs/standards-sdk.cjs +2 -2
- package/dist/cjs/standards-sdk.cjs.map +1 -1
- package/dist/es/hcs-25/adapters/acp.d.ts +20 -0
- package/dist/es/hcs-25/adapters/acp.d.ts.map +1 -0
- package/dist/es/hcs-25/adapters/agentverse.d.ts +34 -0
- package/dist/es/hcs-25/adapters/agentverse.d.ts.map +1 -0
- package/dist/es/hcs-25/adapters/availability.d.ts +22 -0
- package/dist/es/hcs-25/adapters/availability.d.ts.map +1 -0
- package/dist/es/hcs-25/adapters/connectivity.d.ts +25 -0
- package/dist/es/hcs-25/adapters/connectivity.d.ts.map +1 -0
- package/dist/es/hcs-25/adapters/erc8004-feedback.d.ts +19 -0
- package/dist/es/hcs-25/adapters/erc8004-feedback.d.ts.map +1 -0
- package/dist/es/hcs-25/adapters/ethos.d.ts +21 -0
- package/dist/es/hcs-25/adapters/ethos.d.ts.map +1 -0
- package/dist/es/hcs-25/adapters/index.d.ts +21 -0
- package/dist/es/hcs-25/adapters/index.d.ts.map +1 -0
- package/dist/es/hcs-25/adapters/model-evals.d.ts +61 -0
- package/dist/es/hcs-25/adapters/model-evals.d.ts.map +1 -0
- package/dist/es/hcs-25/adapters/normalization.d.ts +20 -0
- package/dist/es/hcs-25/adapters/normalization.d.ts.map +1 -0
- package/dist/es/hcs-25/adapters/oss-popularity.d.ts +22 -0
- package/dist/es/hcs-25/adapters/oss-popularity.d.ts.map +1 -0
- package/dist/es/hcs-25/adapters/output-verification.d.ts +27 -0
- package/dist/es/hcs-25/adapters/output-verification.d.ts.map +1 -0
- package/dist/es/hcs-25/adapters/simple-evals.d.ts +14 -0
- package/dist/es/hcs-25/adapters/simple-evals.d.ts.map +1 -0
- package/dist/es/hcs-25/adapters/x402.d.ts +18 -0
- package/dist/es/hcs-25/adapters/x402.d.ts.map +1 -0
- package/dist/es/hcs-25/identifiers.d.ts +2 -2
- package/dist/es/hcs-25/identifiers.d.ts.map +1 -1
- package/dist/es/hcs-25/index.d.ts +2 -0
- package/dist/es/hcs-25/index.d.ts.map +1 -1
- package/dist/es/hcs-25/scoring.d.ts.map +1 -1
- package/dist/es/hcs-25/signals/index.d.ts +20 -0
- package/dist/es/hcs-25/signals/index.d.ts.map +1 -0
- package/dist/es/hcs-25/signals/marketplace.d.ts +296 -0
- package/dist/es/hcs-25/signals/marketplace.d.ts.map +1 -0
- package/dist/es/hcs-25/signals/metadata.d.ts +40 -0
- package/dist/es/hcs-25/signals/metadata.d.ts.map +1 -0
- package/dist/es/hcs-25/signals/model-evals.d.ts +127 -0
- package/dist/es/hcs-25/signals/model-evals.d.ts.map +1 -0
- package/dist/es/hcs-25/signals/operational.d.ts +757 -0
- package/dist/es/hcs-25/signals/operational.d.ts.map +1 -0
- package/dist/es/hcs-25/signals/simple-evals.d.ts +156 -0
- package/dist/es/hcs-25/signals/simple-evals.d.ts.map +1 -0
- package/dist/es/standards-sdk.es.js +109 -40
- package/dist/es/standards-sdk.es.js.map +1 -1
- package/dist/es/standards-sdk.es101.js +2 -2
- package/dist/es/standards-sdk.es103.js +2 -2
- package/dist/es/standards-sdk.es104.js +1 -1
- package/dist/es/standards-sdk.es106.js +1 -1
- package/dist/es/standards-sdk.es108.js +2 -2
- package/dist/es/standards-sdk.es11.js +1 -1
- package/dist/es/standards-sdk.es110.js +1 -1
- package/dist/es/standards-sdk.es111.js +2 -2
- package/dist/es/standards-sdk.es115.js +3 -3
- package/dist/es/standards-sdk.es116.js +4 -4
- package/dist/es/standards-sdk.es117.js +1 -1
- package/dist/es/standards-sdk.es117.js.map +1 -1
- package/dist/es/standards-sdk.es119.js +10 -9
- package/dist/es/standards-sdk.es119.js.map +1 -1
- package/dist/es/standards-sdk.es12.js +1 -1
- package/dist/es/standards-sdk.es120.js +225 -251
- package/dist/es/standards-sdk.es120.js.map +1 -1
- package/dist/es/standards-sdk.es121.js +50 -477
- package/dist/es/standards-sdk.es121.js.map +1 -1
- package/dist/es/standards-sdk.es122.js +244 -97
- package/dist/es/standards-sdk.es122.js.map +1 -1
- package/dist/es/standards-sdk.es123.js +451 -133
- package/dist/es/standards-sdk.es123.js.map +1 -1
- package/dist/es/standards-sdk.es124.js +98 -27
- package/dist/es/standards-sdk.es124.js.map +1 -1
- package/dist/es/standards-sdk.es125.js +156 -8
- package/dist/es/standards-sdk.es125.js.map +1 -1
- package/dist/es/standards-sdk.es126.js +29 -177
- package/dist/es/standards-sdk.es126.js.map +1 -1
- package/dist/es/standards-sdk.es127.js +10 -27
- package/dist/es/standards-sdk.es127.js.map +1 -1
- package/dist/es/standards-sdk.es128.js +179 -19
- package/dist/es/standards-sdk.es128.js.map +1 -1
- package/dist/es/standards-sdk.es129.js +27 -158
- package/dist/es/standards-sdk.es129.js.map +1 -1
- package/dist/es/standards-sdk.es13.js +1 -1
- package/dist/es/standards-sdk.es130.js +16 -195
- package/dist/es/standards-sdk.es130.js.map +1 -1
- package/dist/es/standards-sdk.es131.js +133 -763
- package/dist/es/standards-sdk.es131.js.map +1 -1
- package/dist/es/standards-sdk.es132.js +198 -10
- package/dist/es/standards-sdk.es132.js.map +1 -1
- package/dist/es/standards-sdk.es133.js +762 -539
- package/dist/es/standards-sdk.es133.js.map +1 -1
- package/dist/es/standards-sdk.es134.js +10 -623
- package/dist/es/standards-sdk.es134.js.map +1 -1
- package/dist/es/standards-sdk.es135.js +567 -13
- package/dist/es/standards-sdk.es135.js.map +1 -1
- package/dist/es/standards-sdk.es136.js +626 -2
- package/dist/es/standards-sdk.es136.js.map +1 -1
- package/dist/es/standards-sdk.es137.js +12 -86
- package/dist/es/standards-sdk.es137.js.map +1 -1
- package/dist/es/standards-sdk.es138.js +2 -40
- package/dist/es/standards-sdk.es138.js.map +1 -1
- package/dist/es/standards-sdk.es139.js +87 -2
- package/dist/es/standards-sdk.es139.js.map +1 -1
- package/dist/es/standards-sdk.es14.js +1 -1
- package/dist/es/standards-sdk.es140.js +37 -232
- package/dist/es/standards-sdk.es140.js.map +1 -1
- package/dist/es/standards-sdk.es141.js +2 -1140
- package/dist/es/standards-sdk.es141.js.map +1 -1
- package/dist/es/standards-sdk.es142.js +213 -284
- package/dist/es/standards-sdk.es142.js.map +1 -1
- package/dist/es/standards-sdk.es143.js +1138 -420
- package/dist/es/standards-sdk.es143.js.map +1 -1
- package/dist/es/standards-sdk.es144.js +301 -350
- package/dist/es/standards-sdk.es144.js.map +1 -1
- package/dist/es/standards-sdk.es145.js +417 -1117
- package/dist/es/standards-sdk.es145.js.map +1 -1
- package/dist/es/standards-sdk.es146.js +348 -201
- package/dist/es/standards-sdk.es146.js.map +1 -1
- package/dist/es/standards-sdk.es147.js +1035 -1480
- package/dist/es/standards-sdk.es147.js.map +1 -1
- package/dist/es/standards-sdk.es148.js +181 -1130
- package/dist/es/standards-sdk.es148.js.map +1 -1
- package/dist/es/standards-sdk.es149.js +1564 -14
- package/dist/es/standards-sdk.es149.js.map +1 -1
- package/dist/es/standards-sdk.es15.js +1 -1
- package/dist/es/standards-sdk.es150.js +1122 -224
- package/dist/es/standards-sdk.es150.js.map +1 -1
- package/dist/es/standards-sdk.es151.js +17 -4
- package/dist/es/standards-sdk.es151.js.map +1 -1
- package/dist/es/standards-sdk.es152.js +252 -74
- package/dist/es/standards-sdk.es152.js.map +1 -1
- package/dist/es/standards-sdk.es153.js +4 -87
- package/dist/es/standards-sdk.es153.js.map +1 -1
- package/dist/es/standards-sdk.es154.js +73 -52
- package/dist/es/standards-sdk.es154.js.map +1 -1
- package/dist/es/standards-sdk.es155.js +86 -2546
- package/dist/es/standards-sdk.es155.js.map +1 -1
- package/dist/es/standards-sdk.es156.js +53 -152
- package/dist/es/standards-sdk.es156.js.map +1 -1
- package/dist/es/standards-sdk.es157.js +2547 -7
- package/dist/es/standards-sdk.es157.js.map +1 -1
- package/dist/es/standards-sdk.es158.js +138 -65
- package/dist/es/standards-sdk.es158.js.map +1 -1
- package/dist/es/standards-sdk.es159.js +7 -65
- package/dist/es/standards-sdk.es159.js.map +1 -1
- package/dist/es/standards-sdk.es16.js +4 -4
- package/dist/es/standards-sdk.es160.js +86 -30
- package/dist/es/standards-sdk.es160.js.map +1 -1
- package/dist/es/standards-sdk.es161.js +65 -34
- package/dist/es/standards-sdk.es161.js.map +1 -1
- package/dist/es/standards-sdk.es162.js +194 -48
- package/dist/es/standards-sdk.es162.js.map +1 -1
- package/dist/es/standards-sdk.es163.js +17 -12473
- package/dist/es/standards-sdk.es163.js.map +1 -1
- package/dist/es/standards-sdk.es164.js +53 -133
- package/dist/es/standards-sdk.es164.js.map +1 -1
- package/dist/es/standards-sdk.es165.js +91 -38
- package/dist/es/standards-sdk.es165.js.map +1 -1
- package/dist/es/standards-sdk.es166.js +47 -15
- package/dist/es/standards-sdk.es166.js.map +1 -1
- package/dist/es/standards-sdk.es167.js +201 -53
- package/dist/es/standards-sdk.es167.js.map +1 -1
- package/dist/es/standards-sdk.es168.js +53 -108
- package/dist/es/standards-sdk.es168.js.map +1 -1
- package/dist/es/standards-sdk.es169.js +47 -79
- package/dist/es/standards-sdk.es169.js.map +1 -1
- package/dist/es/standards-sdk.es170.js +48 -192
- package/dist/es/standards-sdk.es170.js.map +1 -1
- package/dist/es/standards-sdk.es171.js +47 -670
- package/dist/es/standards-sdk.es171.js.map +1 -1
- package/dist/es/standards-sdk.es172.js +110 -61
- package/dist/es/standards-sdk.es172.js.map +1 -1
- package/dist/es/standards-sdk.es173.js +51 -169
- package/dist/es/standards-sdk.es173.js.map +1 -1
- package/dist/es/standards-sdk.es174.js +39 -317
- package/dist/es/standards-sdk.es174.js.map +1 -1
- package/dist/es/standards-sdk.es175.js +72 -346
- package/dist/es/standards-sdk.es175.js.map +1 -1
- package/dist/es/standards-sdk.es176.js +68 -453
- package/dist/es/standards-sdk.es176.js.map +1 -1
- package/dist/es/standards-sdk.es177.js +44 -331
- package/dist/es/standards-sdk.es177.js.map +1 -1
- package/dist/es/standards-sdk.es178.js +31 -71
- package/dist/es/standards-sdk.es178.js.map +1 -1
- package/dist/es/standards-sdk.es179.js +30 -139
- package/dist/es/standards-sdk.es179.js.map +1 -1
- package/dist/es/standards-sdk.es18.js +11 -11
- package/dist/es/standards-sdk.es180.js +34 -517
- package/dist/es/standards-sdk.es180.js.map +1 -1
- package/dist/es/standards-sdk.es181.js +48 -259
- package/dist/es/standards-sdk.es181.js.map +1 -1
- package/dist/es/standards-sdk.es182.js +127 -185
- package/dist/es/standards-sdk.es182.js.map +1 -1
- package/dist/es/standards-sdk.es183.js +36 -113
- package/dist/es/standards-sdk.es183.js.map +1 -1
- package/dist/es/standards-sdk.es184.js +12464 -134
- package/dist/es/standards-sdk.es184.js.map +1 -1
- package/dist/es/standards-sdk.es185.js +629 -141
- package/dist/es/standards-sdk.es185.js.map +1 -1
- package/dist/es/standards-sdk.es186.js +83 -656
- package/dist/es/standards-sdk.es186.js.map +1 -1
- package/dist/es/standards-sdk.es187.js +61 -173
- package/dist/es/standards-sdk.es187.js.map +1 -1
- package/dist/es/standards-sdk.es188.js +49 -228
- package/dist/es/standards-sdk.es188.js.map +1 -1
- package/dist/es/standards-sdk.es189.js +68 -226
- package/dist/es/standards-sdk.es189.js.map +1 -1
- package/dist/es/standards-sdk.es19.js +8 -8
- package/dist/es/standards-sdk.es190.js +203 -0
- package/dist/es/standards-sdk.es190.js.map +1 -0
- package/dist/es/standards-sdk.es191.js +175 -0
- package/dist/es/standards-sdk.es191.js.map +1 -0
- package/dist/es/standards-sdk.es192.js +325 -0
- package/dist/es/standards-sdk.es192.js.map +1 -0
- package/dist/es/standards-sdk.es193.js +349 -0
- package/dist/es/standards-sdk.es193.js.map +1 -0
- package/dist/es/standards-sdk.es194.js +456 -0
- package/dist/es/standards-sdk.es194.js.map +1 -0
- package/dist/es/standards-sdk.es195.js +334 -0
- package/dist/es/standards-sdk.es195.js.map +1 -0
- package/dist/es/standards-sdk.es196.js +79 -0
- package/dist/es/standards-sdk.es196.js.map +1 -0
- package/dist/es/standards-sdk.es197.js +20 -0
- package/dist/es/standards-sdk.es197.js.map +1 -0
- package/dist/es/standards-sdk.es198.js +142 -0
- package/dist/es/standards-sdk.es198.js.map +1 -0
- package/dist/es/standards-sdk.es199.js +520 -0
- package/dist/es/standards-sdk.es199.js.map +1 -0
- package/dist/es/standards-sdk.es2.js +2 -2
- package/dist/es/standards-sdk.es20.js +1 -1
- package/dist/es/standards-sdk.es200.js +262 -0
- package/dist/es/standards-sdk.es200.js.map +1 -0
- package/dist/es/standards-sdk.es201.js +199 -0
- package/dist/es/standards-sdk.es201.js.map +1 -0
- package/dist/es/standards-sdk.es202.js +122 -0
- package/dist/es/standards-sdk.es202.js.map +1 -0
- package/dist/es/standards-sdk.es203.js +155 -0
- package/dist/es/standards-sdk.es203.js.map +1 -0
- package/dist/es/standards-sdk.es204.js +187 -0
- package/dist/es/standards-sdk.es204.js.map +1 -0
- package/dist/es/standards-sdk.es205.js +687 -0
- package/dist/es/standards-sdk.es205.js.map +1 -0
- package/dist/es/standards-sdk.es206.js +188 -0
- package/dist/es/standards-sdk.es206.js.map +1 -0
- package/dist/es/standards-sdk.es207.js +238 -0
- package/dist/es/standards-sdk.es207.js.map +1 -0
- package/dist/es/standards-sdk.es208.js +242 -0
- package/dist/es/standards-sdk.es208.js.map +1 -0
- package/dist/es/standards-sdk.es21.js +1 -1
- package/dist/es/standards-sdk.es22.js +1 -1
- package/dist/es/standards-sdk.es23.js +1 -1
- package/dist/es/standards-sdk.es24.js +1 -1
- package/dist/es/standards-sdk.es25.js +1 -1
- package/dist/es/standards-sdk.es26.js +1 -1
- package/dist/es/standards-sdk.es27.js +11 -11
- package/dist/es/standards-sdk.es30.js +2 -2
- package/dist/es/standards-sdk.es31.js +4 -4
- package/dist/es/standards-sdk.es32.js +1 -1
- package/dist/es/standards-sdk.es35.js +5 -5
- package/dist/es/standards-sdk.es36.js +4 -4
- package/dist/es/standards-sdk.es37.js +2 -2
- package/dist/es/standards-sdk.es38.js +2 -2
- package/dist/es/standards-sdk.es39.js +1 -1
- package/dist/es/standards-sdk.es4.js +2 -2
- package/dist/es/standards-sdk.es40.js +1 -1
- package/dist/es/standards-sdk.es41.js +2 -2
- package/dist/es/standards-sdk.es46.js +1 -1
- package/dist/es/standards-sdk.es5.js +2 -2
- package/dist/es/standards-sdk.es51.js +1 -1
- package/dist/es/standards-sdk.es53.js +1 -1
- package/dist/es/standards-sdk.es56.js +2 -2
- package/dist/es/standards-sdk.es59.js +1 -1
- package/dist/es/standards-sdk.es6.js +2 -2
- package/dist/es/standards-sdk.es60.js +1 -1
- package/dist/es/standards-sdk.es62.js +1 -1
- package/dist/es/standards-sdk.es63.js +2 -2
- package/dist/es/standards-sdk.es64.js +1 -1
- package/dist/es/standards-sdk.es65.js +1 -1
- package/dist/es/standards-sdk.es66.js +1 -1
- package/dist/es/standards-sdk.es67.js +6 -6
- package/dist/es/standards-sdk.es69.js +1 -1
- package/dist/es/standards-sdk.es7.js +1 -1
- package/dist/es/standards-sdk.es71.js +2 -2
- package/dist/es/standards-sdk.es72.js +3 -3
- package/dist/es/standards-sdk.es75.js +5 -5
- package/dist/es/standards-sdk.es76.js +3 -3
- package/dist/es/standards-sdk.es77.js +2 -2
- package/dist/es/standards-sdk.es78.js +1 -1
- package/dist/es/standards-sdk.es81.js +2 -2
- package/dist/es/standards-sdk.es83.js +2 -2
- package/dist/es/standards-sdk.es84.js +3 -3
- package/dist/es/standards-sdk.es85.js +1 -1
- package/dist/es/standards-sdk.es88.js +1 -1
- package/dist/es/standards-sdk.es89.js +2 -2
- package/dist/es/standards-sdk.es9.js +2 -2
- package/dist/es/standards-sdk.es90.js +4 -4
- package/dist/es/standards-sdk.es94.js +3 -3
- package/dist/es/standards-sdk.es96.js +2 -2
- package/dist/es/standards-sdk.es98.js +1 -1
- package/dist/es/standards-sdk.es99.js +3 -3
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es186.js","sources":["../../src/services/registry-broker/client/guard.ts"],"sourcesContent":["import type {\n GuardAlertPreferences,\n GuardAlertPreferencesUpdate,\n GuardAbomResponse,\n GuardArtifactTimelineResponse,\n GuardBalanceResponse,\n GuardFeedResponse,\n GuardOverviewResponse,\n GuardPolicy,\n GuardDeviceListResponse,\n GuardExceptionListResponse,\n GuardExceptionUpsert,\n GuardInventoryDiffResponse,\n GuardInventoryResponse,\n GuardPainSignalAggregateResponse,\n GuardPainSignalIngestItem,\n GuardPainSignalListResponse,\n GuardPreflightRequest,\n GuardPreflightVerdictResponse,\n GuardReceiptExportResponse,\n GuardReceiptHistoryResponse,\n GuardReceiptSyncPayload,\n GuardReceiptSyncResponse,\n GuardRevocationResponse,\n GuardSessionResponse,\n GuardTeamPolicyPack,\n GuardTeamPolicyPackUpdate,\n GuardTrustByHashResponse,\n GuardTrustResolveQuery,\n GuardTrustResolveResponse,\n GuardWatchlistResponse,\n GuardWatchlistLookupResponse,\n GuardWatchlistUpsert,\n JsonValue,\n} from '../types';\nimport {\n guardAlertPreferencesSchema,\n guardAbomResponseSchema,\n guardArtifactTimelineResponseSchema,\n guardBalanceResponseSchema,\n guardFeedResponseSchema,\n guardOverviewResponseSchema,\n guardPolicySchema,\n guardDeviceListResponseSchema,\n guardExceptionListResponseSchema,\n guardInventoryDiffResponseSchema,\n guardInventoryResponseSchema,\n guardPainSignalListResponseSchema,\n guardPainSignalAggregateResponseSchema,\n guardPreflightVerdictResponseSchema,\n guardReceiptExportResponseSchema,\n guardReceiptHistoryResponseSchema,\n guardReceiptSyncResponseSchema,\n guardRevocationResponseSchema,\n guardSessionResponseSchema,\n guardTeamPolicyPackSchema,\n guardTrustByHashResponseSchema,\n guardTrustResolveResponseSchema,\n guardWatchlistLookupResponseSchema,\n guardWatchlistResponseSchema,\n} from '../schemas';\nimport type { RegistryBrokerClient, RequestConfig } from './base-client';\nimport { RegistryBrokerError } from './errors';\n\nfunction isStatusError(error: unknown): error is { status: number } {\n if (error instanceof RegistryBrokerError) {\n return true;\n }\n if (typeof error !== 'object' || error === null || !('status' in error)) {\n return false;\n }\n return typeof Reflect.get(error, 'status') === 'number';\n}\n\nfunction toPortalCanonicalGuardPath(path: string): string {\n const segments = path.split('/');\n const findPatternStart = (\n size: number,\n matcher: (startIndex: number) => boolean,\n ): number => {\n for (\n let startIndex = segments.length - size;\n startIndex >= 0;\n startIndex -= 1\n ) {\n if (matcher(startIndex)) {\n return startIndex;\n }\n }\n return -1;\n };\n\n const replaceAt = (startIndex: number, consumed: number): string =>\n [\n ...segments.slice(0, startIndex),\n 'api',\n 'guard',\n ...segments.slice(startIndex + consumed),\n ].join('/');\n\n const registryStart = findPatternStart(\n 4,\n startIndex =>\n segments[startIndex] === 'registry' &&\n segments[startIndex + 1] === 'api' &&\n /^v\\d+$/.test(segments[startIndex + 2] ?? '') &&\n segments[startIndex + 3] === 'guard',\n );\n if (registryStart >= 0) {\n return replaceAt(registryStart, 4);\n }\n\n const apiVersionStart = findPatternStart(\n 3,\n startIndex =>\n segments[startIndex] === 'api' &&\n /^v\\d+$/.test(segments[startIndex + 1] ?? '') &&\n segments[startIndex + 2] === 'guard',\n );\n if (apiVersionStart >= 0) {\n return replaceAt(apiVersionStart, 3);\n }\n\n for (let index = segments.length - 1; index >= 0; index -= 1) {\n if (segments[index] === 'guard' && segments[index - 1] !== 'api') {\n return [\n ...segments.slice(0, index),\n 'api',\n 'guard',\n ...segments.slice(index + 1),\n ].join('/');\n }\n }\n return path;\n}\n\nfunction buildPortalCanonicalGuardUrl(baseUrl: string, path: string): string {\n const target = new URL(path, 'https://guard.local');\n const normalizedBasePath = (() => {\n try {\n const base = new URL(baseUrl);\n return base.pathname.replace(/\\/+$/, '');\n } catch {\n return baseUrl.replace(/\\/+$/, '');\n }\n })();\n const requestedPath = `${normalizedBasePath}${target.pathname}`;\n const canonicalPath = toPortalCanonicalGuardPath(requestedPath);\n const canonicalRelativePath = `${canonicalPath}${target.search}`;\n try {\n const base = new URL(baseUrl);\n return `${base.origin}${canonicalRelativePath}`;\n } catch {\n return canonicalRelativePath;\n }\n}\n\nasync function requestPortalFirstJson<T extends JsonValue>(\n client: RegistryBrokerClient,\n path: string,\n init: RequestConfig,\n): Promise<T> {\n try {\n return await client.requestJson<T>(path, init);\n } catch (error) {\n if (\n isStatusError(error) &&\n (error.status === 404 || error.status === 501)\n ) {\n return client.requestAbsoluteJson<T>(\n buildPortalCanonicalGuardUrl(client.baseUrl, path),\n init,\n );\n }\n throw error;\n }\n}\n\nexport async function getGuardSession(\n client: RegistryBrokerClient,\n): Promise<GuardSessionResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/auth/session',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardSessionResponseSchema,\n 'guard session response',\n );\n}\n\nexport async function getGuardEntitlements(\n client: RegistryBrokerClient,\n): Promise<GuardSessionResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/entitlements',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardSessionResponseSchema,\n 'guard entitlements response',\n );\n}\n\nexport async function getGuardBillingBalance(\n client: RegistryBrokerClient,\n): Promise<GuardBalanceResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/billing/balance',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardBalanceResponseSchema,\n 'guard billing balance response',\n );\n}\n\nexport async function getGuardFeed(\n client: RegistryBrokerClient,\n limit?: number,\n): Promise<GuardFeedResponse> {\n const params = new URLSearchParams();\n if (\n typeof limit === 'number' &&\n Number.isFinite(limit) &&\n Math.trunc(limit) > 0\n ) {\n params.set('limit', String(Math.trunc(limit)));\n }\n const query = params.toString();\n const suffix = query ? `?${query}` : '';\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n `/guard/feed${suffix}`,\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardFeedResponseSchema,\n 'guard feed response',\n );\n}\n\nexport async function getGuardOverview(\n client: RegistryBrokerClient,\n): Promise<GuardOverviewResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/overview',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardOverviewResponseSchema,\n 'guard overview response',\n );\n}\n\nexport async function getGuardTrustByHash(\n client: RegistryBrokerClient,\n sha256: string,\n): Promise<GuardTrustByHashResponse> {\n const normalizedHash = sha256.trim();\n if (!normalizedHash) {\n throw new Error('sha256 is required');\n }\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n `/guard/trust/by-hash/${encodeURIComponent(normalizedHash)}`,\n { method: 'GET' },\n );\n return client.parseWithSchema(\n raw,\n guardTrustByHashResponseSchema,\n 'guard trust by hash response',\n );\n}\n\nexport async function resolveGuardTrust(\n client: RegistryBrokerClient,\n query: GuardTrustResolveQuery,\n): Promise<GuardTrustResolveResponse> {\n const params = new URLSearchParams();\n if (query.ecosystem?.trim()) {\n params.set('ecosystem', query.ecosystem.trim());\n }\n if (query.name?.trim()) {\n params.set('name', query.name.trim());\n }\n if (query.version?.trim()) {\n params.set('version', query.version.trim());\n }\n const suffix = params.size > 0 ? `?${params.toString()}` : '';\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n `/guard/trust/resolve${suffix}`,\n { method: 'GET' },\n );\n return client.parseWithSchema(\n raw,\n guardTrustResolveResponseSchema,\n 'guard trust resolve response',\n );\n}\n\nexport async function getGuardRevocations(\n client: RegistryBrokerClient,\n): Promise<GuardRevocationResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/revocations',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardRevocationResponseSchema,\n 'guard revocations response',\n );\n}\n\nexport async function fetchGuardAdvisories(\n client: RegistryBrokerClient,\n): Promise<GuardRevocationResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/advisories',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardRevocationResponseSchema,\n 'guard advisories response',\n );\n}\n\nexport async function fetchGuardPolicy(\n client: RegistryBrokerClient,\n): Promise<GuardPolicy> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/policy/fetch',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardPolicySchema,\n 'guard policy response',\n );\n}\n\nexport async function getGuardInventory(\n client: RegistryBrokerClient,\n): Promise<GuardInventoryResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/inventory',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardInventoryResponseSchema,\n 'guard inventory response',\n );\n}\n\nexport async function getGuardReceiptHistory(\n client: RegistryBrokerClient,\n): Promise<GuardReceiptHistoryResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/history',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardReceiptHistoryResponseSchema,\n 'guard receipt history response',\n );\n}\n\nexport async function getGuardArtifactTimeline(\n client: RegistryBrokerClient,\n artifactId: string,\n): Promise<GuardArtifactTimelineResponse> {\n const normalizedArtifactId = artifactId.trim();\n if (!normalizedArtifactId) {\n throw new Error('artifactId is required');\n }\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n `/guard/history/${encodeURIComponent(normalizedArtifactId)}`,\n { method: 'GET' },\n );\n return client.parseWithSchema(\n raw,\n guardArtifactTimelineResponseSchema,\n 'guard artifact timeline response',\n );\n}\n\nexport async function exportGuardAbom(\n client: RegistryBrokerClient,\n): Promise<GuardAbomResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(client, '/guard/abom', {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n guardAbomResponseSchema,\n 'guard abom response',\n );\n}\n\nexport async function exportGuardArtifactAbom(\n client: RegistryBrokerClient,\n artifactId: string,\n): Promise<GuardAbomResponse> {\n const normalizedArtifactId = artifactId.trim();\n if (!normalizedArtifactId) {\n throw new Error('artifactId is required');\n }\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n `/guard/abom/${encodeURIComponent(normalizedArtifactId)}`,\n { method: 'GET' },\n );\n return client.parseWithSchema(\n raw,\n guardAbomResponseSchema,\n 'guard artifact abom response',\n );\n}\n\nexport async function exportGuardReceipts(\n client: RegistryBrokerClient,\n): Promise<GuardReceiptExportResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/receipts/export',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardReceiptExportResponseSchema,\n 'guard receipt export response',\n );\n}\n\nexport async function getGuardInventoryDiff(\n client: RegistryBrokerClient,\n): Promise<GuardInventoryDiffResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/inventory/diff',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardInventoryDiffResponseSchema,\n 'guard inventory diff response',\n );\n}\n\nexport async function getGuardDevices(\n client: RegistryBrokerClient,\n): Promise<GuardDeviceListResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/devices',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardDeviceListResponseSchema,\n 'guard devices response',\n );\n}\n\nexport async function getGuardAlertPreferences(\n client: RegistryBrokerClient,\n): Promise<GuardAlertPreferences> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/alerts/preferences',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardAlertPreferencesSchema,\n 'guard alert preferences response',\n );\n}\n\nexport async function updateGuardAlertPreferences(\n client: RegistryBrokerClient,\n payload: GuardAlertPreferencesUpdate,\n): Promise<GuardAlertPreferences> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/alerts/preferences',\n {\n method: 'PUT',\n body: payload,\n },\n );\n return client.parseWithSchema(\n raw,\n guardAlertPreferencesSchema,\n 'guard alert preferences response',\n );\n}\n\nexport async function getGuardExceptions(\n client: RegistryBrokerClient,\n): Promise<GuardExceptionListResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/exceptions',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardExceptionListResponseSchema,\n 'guard exceptions response',\n );\n}\n\nexport async function getGuardWatchlist(\n client: RegistryBrokerClient,\n): Promise<GuardWatchlistResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/watchlist',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardWatchlistResponseSchema,\n 'guard watchlist response',\n );\n}\n\nexport async function lookupGuardWatchlist(\n client: RegistryBrokerClient,\n payload: GuardPreflightRequest,\n): Promise<GuardWatchlistLookupResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/watchlist/lookup',\n {\n method: 'POST',\n body: payload,\n },\n );\n return client.parseWithSchema(\n raw,\n guardWatchlistLookupResponseSchema,\n 'guard watchlist lookup response',\n );\n}\n\nexport async function getGuardPainSignals(\n client: RegistryBrokerClient,\n): Promise<GuardPainSignalListResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/signals/pain',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardPainSignalListResponseSchema,\n 'guard pain signals response',\n );\n}\n\nexport async function getGuardAggregatedPainSignals(\n client: RegistryBrokerClient,\n): Promise<GuardPainSignalAggregateResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/signals/pain/aggregate',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardPainSignalAggregateResponseSchema,\n 'guard aggregated pain signals response',\n );\n}\n\nasync function getGuardPreflightVerdict(\n client: RegistryBrokerClient,\n path: '/guard/verdict/pre-install' | '/guard/verdict/pre-execution',\n payload: GuardPreflightRequest,\n): Promise<GuardPreflightVerdictResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(client, path, {\n method: 'POST',\n body: payload,\n });\n return client.parseWithSchema(\n raw,\n guardPreflightVerdictResponseSchema,\n 'guard preflight verdict response',\n );\n}\n\nexport async function getGuardPreInstallVerdict(\n client: RegistryBrokerClient,\n payload: GuardPreflightRequest,\n): Promise<GuardPreflightVerdictResponse> {\n return getGuardPreflightVerdict(\n client,\n '/guard/verdict/pre-install',\n payload,\n );\n}\n\nexport async function getGuardPreExecutionVerdict(\n client: RegistryBrokerClient,\n payload: GuardPreflightRequest,\n): Promise<GuardPreflightVerdictResponse> {\n return getGuardPreflightVerdict(\n client,\n '/guard/verdict/pre-execution',\n payload,\n );\n}\n\nexport async function ingestGuardPainSignals(\n client: RegistryBrokerClient,\n items: GuardPainSignalIngestItem[],\n): Promise<GuardPainSignalListResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/signals/pain',\n {\n method: 'POST',\n body: { items },\n },\n );\n return client.parseWithSchema(\n raw,\n guardPainSignalListResponseSchema,\n 'guard pain signals response',\n );\n}\n\nexport async function submitGuardReceipts(\n client: RegistryBrokerClient,\n payload: GuardReceiptSyncPayload,\n): Promise<GuardReceiptSyncResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/receipts/submit',\n {\n method: 'POST',\n body: payload,\n },\n );\n return client.parseWithSchema(\n raw,\n guardReceiptSyncResponseSchema,\n 'guard receipt submit response',\n );\n}\n\nexport async function addGuardWatchlistItem(\n client: RegistryBrokerClient,\n payload: GuardWatchlistUpsert,\n): Promise<GuardWatchlistResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/watchlist',\n {\n method: 'POST',\n body: payload,\n },\n );\n return client.parseWithSchema(\n raw,\n guardWatchlistResponseSchema,\n 'guard watchlist response',\n );\n}\n\nexport async function removeGuardWatchlistItem(\n client: RegistryBrokerClient,\n artifactId: string,\n): Promise<GuardWatchlistResponse> {\n const normalizedArtifactId = artifactId.trim();\n if (!normalizedArtifactId) {\n throw new Error('artifactId is required');\n }\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n `/guard/watchlist/${encodeURIComponent(normalizedArtifactId)}`,\n { method: 'DELETE' },\n );\n return client.parseWithSchema(\n raw,\n guardWatchlistResponseSchema,\n 'guard watchlist response',\n );\n}\n\nexport async function addGuardException(\n client: RegistryBrokerClient,\n payload: GuardExceptionUpsert,\n): Promise<GuardExceptionListResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/exceptions',\n {\n method: 'POST',\n body: payload,\n },\n );\n return client.parseWithSchema(\n raw,\n guardExceptionListResponseSchema,\n 'guard exceptions response',\n );\n}\n\nexport async function requestGuardException(\n client: RegistryBrokerClient,\n payload: GuardExceptionUpsert,\n): Promise<GuardExceptionListResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/exceptions/request',\n {\n method: 'POST',\n body: payload,\n },\n );\n return client.parseWithSchema(\n raw,\n guardExceptionListResponseSchema,\n 'guard exception request response',\n );\n}\n\nexport async function syncGuardInventory(\n client: RegistryBrokerClient,\n payload: GuardReceiptSyncPayload,\n): Promise<GuardReceiptSyncResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/inventory/sync',\n {\n method: 'POST',\n body: payload,\n },\n );\n return client.parseWithSchema(\n raw,\n guardReceiptSyncResponseSchema,\n 'guard inventory sync response',\n );\n}\n\nexport async function removeGuardException(\n client: RegistryBrokerClient,\n exceptionId: string,\n): Promise<GuardExceptionListResponse> {\n const normalizedExceptionId = exceptionId.trim();\n if (!normalizedExceptionId) {\n throw new Error('exceptionId is required');\n }\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n `/guard/exceptions/${encodeURIComponent(normalizedExceptionId)}`,\n { method: 'DELETE' },\n );\n return client.parseWithSchema(\n raw,\n guardExceptionListResponseSchema,\n 'guard exceptions response',\n );\n}\n\nexport async function getGuardTeamPolicyPack(\n client: RegistryBrokerClient,\n): Promise<GuardTeamPolicyPack> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/team/policy-pack',\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n guardTeamPolicyPackSchema,\n 'guard team policy pack response',\n );\n}\n\nexport async function updateGuardTeamPolicyPack(\n client: RegistryBrokerClient,\n payload: GuardTeamPolicyPackUpdate,\n): Promise<GuardTeamPolicyPack> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/team/policy-pack',\n {\n method: 'PUT',\n body: payload,\n },\n );\n return client.parseWithSchema(\n raw,\n guardTeamPolicyPackSchema,\n 'guard team policy pack response',\n );\n}\n\nexport async function syncGuardReceipts(\n client: RegistryBrokerClient,\n payload: GuardReceiptSyncPayload,\n): Promise<GuardReceiptSyncResponse> {\n const raw = await requestPortalFirstJson<JsonValue>(\n client,\n '/guard/receipts/sync',\n {\n method: 'POST',\n body: payload,\n },\n );\n return client.parseWithSchema(\n raw,\n guardReceiptSyncResponseSchema,\n 'guard receipt sync response',\n );\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"standards-sdk.es186.js","sources":["../../src/utils/dynamic-import.ts"],"sourcesContent":["import { isBrowser } from './is-browser';\n\nlet nodeRequire: NodeRequire | null | undefined;\n\nconst isNodeRuntime = (): boolean =>\n typeof process !== 'undefined' && Boolean(process.versions?.node);\n\ntype NodeModuleNamespace = {\n createRequire: (path: string | URL) => NodeRequire;\n};\n\ntype BuiltinModuleLoader = <TModule>(name: string) => TModule | undefined;\n\nfunction resolveBuiltinModuleLoader(): BuiltinModuleLoader | undefined {\n if (typeof process === 'undefined') {\n return undefined;\n }\n\n return (\n process as typeof process & {\n getBuiltinModule?: BuiltinModuleLoader;\n }\n ).getBuiltinModule;\n}\n\nfunction getNodeRequireSync(): NodeRequire | null {\n try {\n const builtinModuleLoader = resolveBuiltinModuleLoader();\n const moduleNamespace = builtinModuleLoader?.('module') as\n | Partial<NodeModuleNamespace>\n | undefined;\n if (typeof moduleNamespace?.createRequire === 'function') {\n const requireFromModule = moduleNamespace.createRequire(import.meta.url);\n if (typeof requireFromModule.resolve === 'function') {\n return requireFromModule;\n }\n }\n\n const globalObject =\n typeof global !== 'undefined'\n ? (global as typeof globalThis)\n : globalThis;\n const runtimeRequire =\n globalObject.process?.mainModule?.require ??\n (globalObject as { require?: NodeRequire }).require ??\n Function('return typeof require === \"function\" ? require : undefined;')();\n\n if (\n typeof runtimeRequire === 'function' &&\n typeof (runtimeRequire as NodeRequire).resolve === 'function'\n ) {\n return runtimeRequire as NodeRequire;\n }\n } catch {\n return null;\n }\n\n return null;\n}\n\nfunction isModuleNotFound(specifier: string, error: unknown): boolean {\n if (!error || typeof error !== 'object') {\n return false;\n }\n const code = Reflect.get(error, 'code');\n const message = Reflect.get(error, 'message');\n const messageText = typeof message === 'string' ? message : '';\n\n if (typeof code === 'string' && code.includes('MODULE_NOT_FOUND')) {\n return messageText.includes(specifier);\n }\n\n if (messageText) {\n const lowered = messageText.toLowerCase();\n if (\n lowered.includes('cannot find module') ||\n lowered.includes('module not found') ||\n lowered.includes('cannot find package')\n ) {\n return lowered.includes(specifier.toLowerCase());\n }\n }\n\n return false;\n}\n\nasync function resolveNodeRequire(): Promise<NodeRequire | null> {\n if (nodeRequire !== undefined) {\n return nodeRequire;\n }\n\n if (isBrowser && !isNodeRuntime()) {\n nodeRequire = null;\n return nodeRequire;\n }\n\n try {\n nodeRequire = getNodeRequireSync();\n } catch {\n nodeRequire = null;\n }\n\n return nodeRequire;\n}\n\nasync function dynamicImport<T>(specifier: string): Promise<T | null> {\n try {\n return (await import(/* webpackIgnore: true */ specifier)) as T;\n } catch (error) {\n if (isModuleNotFound(specifier, error)) {\n return null;\n }\n throw error as Error;\n }\n}\n\ntype OptionalImportOptions = {\n preferImport?: boolean;\n};\n\nexport async function optionalImport<T>(\n specifier: string,\n options: OptionalImportOptions = {},\n): Promise<T | null> {\n if (isBrowser && !isNodeRuntime()) {\n return dynamicImport<T>(specifier);\n }\n\n if (!options.preferImport) {\n const requireFn = await resolveNodeRequire();\n if (requireFn) {\n try {\n return requireFn(specifier) as T;\n } catch (error) {\n if (!isModuleNotFound(specifier, error)) {\n throw error as Error;\n }\n }\n }\n }\n\n return dynamicImport<T>(specifier);\n}\n\nexport function optionalImportSync<T>(specifier: string): T | null {\n if (isBrowser && !isNodeRuntime()) {\n return null;\n }\n\n try {\n const requireFn = getNodeRequireSync();\n if (requireFn) {\n return requireFn(specifier) as T;\n }\n } catch (error) {\n if (!isModuleNotFound(specifier, error)) {\n throw error as Error;\n }\n }\n\n return null;\n}\n"],"names":[],"mappings":";AAEA,IAAI;AAEJ,MAAM,gBAAgB,MACpB,OAAO,YAAY,eAAe,QAAQ,QAAQ,UAAU,IAAI;AAQlE,SAAS,6BAA8D;AACrE,MAAI,OAAO,YAAY,aAAa;AAClC,WAAO;AAAA,EACT;AAEA,SACE,QAGA;AACJ;AAEA,SAAS,qBAAyC;AAChD,MAAI;AACF,UAAM,sBAAsB,2BAAA;AAC5B,UAAM,kBAAkB,sBAAsB,QAAQ;AAGtD,QAAI,OAAO,iBAAiB,kBAAkB,YAAY;AACxD,YAAM,oBAAoB,gBAAgB,cAAc,YAAY,GAAG;AACvE,UAAI,OAAO,kBAAkB,YAAY,YAAY;AACnD,eAAO;AAAA,MACT;AAAA,IACF;AAEA,UAAM,eACJ,OAAO,WAAW,cACb,SACD;AACN,UAAM,iBACJ,aAAa,SAAS,YAAY,WACjC,aAA2C,WAC5C,SAAS,6DAA6D,EAAA;AAExE,QACE,OAAO,mBAAmB,cAC1B,OAAQ,eAA+B,YAAY,YACnD;AACA,aAAO;AAAA,IACT;AAAA,EACF,QAAQ;AACN,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEA,SAAS,iBAAiB,WAAmB,OAAyB;AACpE,MAAI,CAAC,SAAS,OAAO,UAAU,UAAU;AACvC,WAAO;AAAA,EACT;AACA,QAAM,OAAO,QAAQ,IAAI,OAAO,MAAM;AACtC,QAAM,UAAU,QAAQ,IAAI,OAAO,SAAS;AAC5C,QAAM,cAAc,OAAO,YAAY,WAAW,UAAU;AAE5D,MAAI,OAAO,SAAS,YAAY,KAAK,SAAS,kBAAkB,GAAG;AACjE,WAAO,YAAY,SAAS,SAAS;AAAA,EACvC;AAEA,MAAI,aAAa;AACf,UAAM,UAAU,YAAY,YAAA;AAC5B,QACE,QAAQ,SAAS,oBAAoB,KACrC,QAAQ,SAAS,kBAAkB,KACnC,QAAQ,SAAS,qBAAqB,GACtC;AACA,aAAO,QAAQ,SAAS,UAAU,YAAA,CAAa;AAAA,IACjD;AAAA,EACF;AAEA,SAAO;AACT;AAEA,eAAe,qBAAkD;AAC/D,MAAI,gBAAgB,QAAW;AAC7B,WAAO;AAAA,EACT;AAEA,MAAI,aAAa,CAAC,iBAAiB;AACjC,kBAAc;AACd,WAAO;AAAA,EACT;AAEA,MAAI;AACF,kBAAc,mBAAA;AAAA,EAChB,QAAQ;AACN,kBAAc;AAAA,EAChB;AAEA,SAAO;AACT;AAEA,eAAe,cAAiB,WAAsC;AACpE,MAAI;AACF,WAAQ,MAAM;AAAA;AAAA,MAAiC;AAAA;AAAA,EACjD,SAAS,OAAO;AACd,QAAI,iBAAiB,WAAW,KAAK,GAAG;AACtC,aAAO;AAAA,IACT;AACA,UAAM;AAAA,EACR;AACF;AAMA,eAAsB,eACpB,WACA,UAAiC,IACd;AACnB,MAAI,aAAa,CAAC,iBAAiB;AACjC,WAAO,cAAiB,SAAS;AAAA,EACnC;AAEA,MAAI,CAAC,QAAQ,cAAc;AACzB,UAAM,YAAY,MAAM,mBAAA;AACxB,QAAI,WAAW;AACb,UAAI;AACF,eAAO,UAAU,SAAS;AAAA,MAC5B,SAAS,OAAO;AACd,YAAI,CAAC,iBAAiB,WAAW,KAAK,GAAG;AACvC,gBAAM;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,SAAO,cAAiB,SAAS;AACnC;AAEO,SAAS,mBAAsB,WAA6B;AACjE,MAAI,aAAa,CAAC,iBAAiB;AACjC,WAAO;AAAA,EACT;AAEA,MAAI;AACF,UAAM,YAAY,mBAAA;AAClB,QAAI,WAAW;AACb,aAAO,UAAU,SAAS;AAAA,IAC5B;AAAA,EACF,SAAS,OAAO;AACd,QAAI,CAAC,iBAAiB,WAAW,KAAK,GAAG;AACvC,YAAM;AAAA,IACR;AAAA,EACF;AAEA,SAAO;AACT;"}
|
|
@@ -1,188 +1,76 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
try {
|
|
7
|
-
const viem = await import("viem/accounts");
|
|
8
|
-
return viem.privateKeyToAccount(privateKey);
|
|
9
|
-
} catch (error) {
|
|
10
|
-
const err = new Error(
|
|
11
|
-
'EVM ledger authentication requires the optional dependency "viem". Install it to use evmPrivateKey flows.'
|
|
12
|
-
);
|
|
13
|
-
err.cause = error;
|
|
14
|
-
throw err;
|
|
1
|
+
import BigNumber from "bignumber.js";
|
|
2
|
+
const TINYBAR_DIVISOR = 1e8;
|
|
3
|
+
function safePositiveTransfers(transfers) {
|
|
4
|
+
if (!Array.isArray(transfers)) {
|
|
5
|
+
return [];
|
|
15
6
|
}
|
|
7
|
+
return transfers.filter(
|
|
8
|
+
(transfer) => typeof transfer.amount === "number" && transfer.amount > 0
|
|
9
|
+
).map((transfer) => ({
|
|
10
|
+
account: transfer.account,
|
|
11
|
+
amountTinybar: transfer.amount
|
|
12
|
+
}));
|
|
16
13
|
}
|
|
17
|
-
|
|
18
|
-
if (
|
|
19
|
-
|
|
20
|
-
if (!result || typeof result.signature !== "string" || result.signature.length === 0) {
|
|
21
|
-
throw new Error("Custom ledger signer failed to produce a signature.");
|
|
22
|
-
}
|
|
23
|
-
return result;
|
|
24
|
-
}
|
|
25
|
-
if (!options.signer || typeof options.signer.sign !== "function") {
|
|
26
|
-
throw new Error(
|
|
27
|
-
"Ledger authentication requires a Hedera Signer or custom sign function."
|
|
28
|
-
);
|
|
29
|
-
}
|
|
30
|
-
const payload = Buffer.from(message, "utf8");
|
|
31
|
-
const signatures = await options.signer.sign([payload]);
|
|
32
|
-
const signatureEntry = signatures?.[0];
|
|
33
|
-
if (!signatureEntry) {
|
|
34
|
-
throw new Error("Signer did not return any signatures.");
|
|
14
|
+
function resolvePayerDebitTinybar(transfers, payerAccountId) {
|
|
15
|
+
if (!Array.isArray(transfers)) {
|
|
16
|
+
return null;
|
|
35
17
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
if (accountKey && typeof accountKey.toString === "function") {
|
|
42
|
-
derivedPublicKey = accountKey.toString();
|
|
43
|
-
}
|
|
18
|
+
const payerDebit = transfers.find(
|
|
19
|
+
(transfer) => transfer.account === payerAccountId && typeof transfer.amount === "number" && transfer.amount < 0
|
|
20
|
+
);
|
|
21
|
+
if (!payerDebit || typeof payerDebit.amount !== "number") {
|
|
22
|
+
return null;
|
|
44
23
|
}
|
|
45
|
-
return
|
|
46
|
-
signature: Buffer.from(signatureEntry.signature).toString("base64"),
|
|
47
|
-
signatureKind: "raw",
|
|
48
|
-
publicKey: derivedPublicKey
|
|
49
|
-
};
|
|
24
|
+
return Math.abs(payerDebit.amount);
|
|
50
25
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
const network = resolvedNetwork.kind === "hedera" ? resolvedNetwork.hederaNetwork ?? resolvedNetwork.canonical : resolvedNetwork.canonical;
|
|
54
|
-
const raw = await client.requestJson("/auth/ledger/challenge", {
|
|
55
|
-
method: "POST",
|
|
56
|
-
headers: { "content-type": "application/json" },
|
|
57
|
-
body: {
|
|
58
|
-
accountId: payload.accountId,
|
|
59
|
-
network
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
return client.parseWithSchema(
|
|
63
|
-
raw,
|
|
64
|
-
ledgerChallengeResponseSchema,
|
|
65
|
-
"ledger challenge response"
|
|
66
|
-
);
|
|
26
|
+
function toHbarString(tinybar) {
|
|
27
|
+
return new BigNumber(tinybar).dividedBy(TINYBAR_DIVISOR).toFixed();
|
|
67
28
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
const body = {
|
|
72
|
-
challengeId: payload.challengeId,
|
|
73
|
-
accountId: payload.accountId,
|
|
74
|
-
network,
|
|
75
|
-
signature: payload.signature
|
|
76
|
-
};
|
|
77
|
-
if (payload.signatureKind) {
|
|
78
|
-
body.signatureKind = payload.signatureKind;
|
|
79
|
-
}
|
|
80
|
-
if (payload.publicKey) {
|
|
81
|
-
body.publicKey = payload.publicKey;
|
|
29
|
+
function fallbackFeeTinybar(chargedTxFee) {
|
|
30
|
+
if (typeof chargedTxFee !== "number" || !Number.isFinite(chargedTxFee)) {
|
|
31
|
+
return null;
|
|
82
32
|
}
|
|
83
|
-
if (
|
|
84
|
-
|
|
33
|
+
if (chargedTxFee <= 0) {
|
|
34
|
+
return null;
|
|
85
35
|
}
|
|
86
|
-
|
|
87
|
-
method: "POST",
|
|
88
|
-
headers: { "content-type": "application/json" },
|
|
89
|
-
body
|
|
90
|
-
});
|
|
91
|
-
const result = client.parseWithSchema(
|
|
92
|
-
raw,
|
|
93
|
-
ledgerVerifyResponseSchema,
|
|
94
|
-
"ledger verification response"
|
|
95
|
-
);
|
|
96
|
-
client.setLedgerApiKey(result.key);
|
|
97
|
-
return result;
|
|
98
|
-
}
|
|
99
|
-
async function authenticateWithLedger(client, options) {
|
|
100
|
-
const challenge = await client.createLedgerChallenge({
|
|
101
|
-
accountId: options.accountId,
|
|
102
|
-
network: options.network
|
|
103
|
-
});
|
|
104
|
-
const signed = await resolveLedgerAuthSignature(challenge.message, options);
|
|
105
|
-
const verification = await client.verifyLedgerChallenge({
|
|
106
|
-
challengeId: challenge.challengeId,
|
|
107
|
-
accountId: options.accountId,
|
|
108
|
-
network: options.network,
|
|
109
|
-
signature: signed.signature,
|
|
110
|
-
signatureKind: signed.signatureKind,
|
|
111
|
-
publicKey: signed.publicKey,
|
|
112
|
-
expiresInMinutes: options.expiresInMinutes
|
|
113
|
-
});
|
|
114
|
-
return verification;
|
|
36
|
+
return chargedTxFee;
|
|
115
37
|
}
|
|
116
|
-
|
|
117
|
-
const {
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
hederaPrivateKey,
|
|
123
|
-
evmPrivateKey,
|
|
124
|
-
expiresInMinutes,
|
|
125
|
-
setAccountHeader = true,
|
|
126
|
-
label,
|
|
127
|
-
logger
|
|
128
|
-
} = options;
|
|
129
|
-
const resolvedNetwork = canonicalizeLedgerNetwork(network);
|
|
130
|
-
const labelSuffix = label ? ` for ${label}` : "";
|
|
131
|
-
const networkPayload = resolvedNetwork.canonical;
|
|
132
|
-
const authOptions = {
|
|
133
|
-
accountId,
|
|
134
|
-
network: networkPayload,
|
|
135
|
-
expiresInMinutes
|
|
136
|
-
};
|
|
137
|
-
if (sign) {
|
|
138
|
-
authOptions.sign = sign;
|
|
139
|
-
} else if (signer) {
|
|
140
|
-
authOptions.signer = signer;
|
|
141
|
-
} else if (hederaPrivateKey) {
|
|
142
|
-
if (resolvedNetwork.kind !== "hedera" || !resolvedNetwork.hederaNetwork) {
|
|
143
|
-
throw new Error(
|
|
144
|
-
"hederaPrivateKey can only be used with hedera:mainnet or hedera:testnet networks."
|
|
145
|
-
);
|
|
146
|
-
}
|
|
147
|
-
authOptions.signer = await createPrivateKeySignerAsync({
|
|
148
|
-
accountId,
|
|
149
|
-
privateKey: hederaPrivateKey,
|
|
150
|
-
network: resolvedNetwork.hederaNetwork
|
|
151
|
-
});
|
|
152
|
-
} else if (evmPrivateKey) {
|
|
153
|
-
if (resolvedNetwork.kind !== "evm") {
|
|
154
|
-
throw new Error(
|
|
155
|
-
"evmPrivateKey can only be used with CAIP-2 EVM networks (eip155:<chainId>)."
|
|
156
|
-
);
|
|
157
|
-
}
|
|
158
|
-
const formattedKey = evmPrivateKey.startsWith("0x") ? evmPrivateKey : `0x${evmPrivateKey}`;
|
|
159
|
-
const account = await loadViemAccount(formattedKey);
|
|
160
|
-
authOptions.sign = async (message) => ({
|
|
161
|
-
signature: await account.signMessage({ message }),
|
|
162
|
-
signatureKind: "evm",
|
|
163
|
-
publicKey: account.publicKey
|
|
164
|
-
});
|
|
165
|
-
} else {
|
|
166
|
-
throw new Error(
|
|
167
|
-
"Provide a signer, sign function, hederaPrivateKey, or evmPrivateKey to authenticate with the ledger."
|
|
168
|
-
);
|
|
169
|
-
}
|
|
170
|
-
logger?.info?.(
|
|
171
|
-
`Authenticating ledger account ${accountId} (${resolvedNetwork.canonical})${labelSuffix}...`
|
|
38
|
+
function computeInscriptionCostSummary(params) {
|
|
39
|
+
const { txn, payerAccountId } = params;
|
|
40
|
+
const positiveTransfers = safePositiveTransfers(txn.transfers);
|
|
41
|
+
const payerDebitTinybar = resolvePayerDebitTinybar(
|
|
42
|
+
txn.transfers,
|
|
43
|
+
payerAccountId
|
|
172
44
|
);
|
|
173
|
-
const
|
|
174
|
-
|
|
175
|
-
|
|
45
|
+
const transferOutflowTinybar = payerDebitTinybar ?? positiveTransfers.reduce((sum, t) => sum + t.amountTinybar, 0);
|
|
46
|
+
const chargedFeeTinybar = fallbackFeeTinybar(txn.charged_tx_fee);
|
|
47
|
+
const resolvedTotalTinybar = transferOutflowTinybar > 0 ? transferOutflowTinybar : chargedFeeTinybar;
|
|
48
|
+
if (!resolvedTotalTinybar || resolvedTotalTinybar <= 0) {
|
|
49
|
+
return null;
|
|
176
50
|
}
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
51
|
+
const totalCostHbar = toHbarString(resolvedTotalTinybar);
|
|
52
|
+
const breakdownTransfers = positiveTransfers.length > 0 ? positiveTransfers.map((transfer) => ({
|
|
53
|
+
to: transfer.account,
|
|
54
|
+
amount: toHbarString(transfer.amountTinybar),
|
|
55
|
+
description: `HBAR transfer from ${payerAccountId}`
|
|
56
|
+
})) : [
|
|
57
|
+
{
|
|
58
|
+
to: "Hedera network",
|
|
59
|
+
amount: totalCostHbar,
|
|
60
|
+
description: `Transaction fee debited from ${payerAccountId}`
|
|
61
|
+
}
|
|
62
|
+
];
|
|
63
|
+
return {
|
|
64
|
+
totalTinybar: resolvedTotalTinybar,
|
|
65
|
+
summary: {
|
|
66
|
+
totalCostHbar,
|
|
67
|
+
breakdown: {
|
|
68
|
+
transfers: breakdownTransfers
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
};
|
|
181
72
|
}
|
|
182
73
|
export {
|
|
183
|
-
|
|
184
|
-
authenticateWithLedgerCredentials,
|
|
185
|
-
createLedgerChallenge,
|
|
186
|
-
verifyLedgerChallenge
|
|
74
|
+
computeInscriptionCostSummary
|
|
187
75
|
};
|
|
188
76
|
//# sourceMappingURL=standards-sdk.es187.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es187.js","sources":["../../src/services/registry-broker/client/ledger-auth.ts"],"sourcesContent":["import { Buffer } from 'buffer';\nimport type { SignerSignature } from '@hashgraph/sdk';\nimport type {\n JsonObject,\n JsonValue,\n LedgerAuthenticationOptions,\n LedgerAuthenticationSignerResult,\n LedgerChallengeRequest,\n LedgerChallengeResponse,\n LedgerCredentialAuthOptions,\n LedgerVerifyRequest,\n LedgerVerifyResponse,\n} from '../types';\nimport {\n ledgerChallengeResponseSchema,\n ledgerVerifyResponseSchema,\n} from '../schemas';\nimport { canonicalizeLedgerNetwork } from '../ledger-network';\nimport { createPrivateKeySignerAsync } from '../private-key-signer';\nimport type { RegistryBrokerClient } from './base-client';\n\nasync function loadViemAccount(privateKey: `0x${string}`): Promise<{\n publicKey: string;\n signMessage: (input: { message: string }) => Promise<string>;\n}> {\n try {\n const viem = await import('viem/accounts');\n return viem.privateKeyToAccount(privateKey);\n } catch (error) {\n const err = new Error(\n 'EVM ledger authentication requires the optional dependency \"viem\". Install it to use evmPrivateKey flows.',\n );\n (err as { cause?: unknown }).cause = error;\n throw err;\n }\n}\n\nasync function resolveLedgerAuthSignature(\n message: string,\n options: LedgerAuthenticationOptions,\n): Promise<LedgerAuthenticationSignerResult> {\n if (typeof options.sign === 'function') {\n const result = await options.sign(message);\n if (\n !result ||\n typeof result.signature !== 'string' ||\n result.signature.length === 0\n ) {\n throw new Error('Custom ledger signer failed to produce a signature.');\n }\n return result;\n }\n\n if (!options.signer || typeof options.signer.sign !== 'function') {\n throw new Error(\n 'Ledger authentication requires a Hedera Signer or custom sign function.',\n );\n }\n\n const payload = Buffer.from(message, 'utf8');\n const signatures: SignerSignature[] = await options.signer.sign([payload]);\n const signatureEntry = signatures?.[0];\n if (!signatureEntry) {\n throw new Error('Signer did not return any signatures.');\n }\n\n let derivedPublicKey: string | undefined;\n if (signatureEntry.publicKey) {\n derivedPublicKey = signatureEntry.publicKey.toString();\n } else if (typeof options.signer.getAccountKey === 'function') {\n const accountKey = await options.signer.getAccountKey();\n if (accountKey && typeof accountKey.toString === 'function') {\n derivedPublicKey = accountKey.toString();\n }\n }\n\n return {\n signature: Buffer.from(signatureEntry.signature).toString('base64'),\n signatureKind: 'raw',\n publicKey: derivedPublicKey,\n };\n}\n\nexport async function createLedgerChallenge(\n client: RegistryBrokerClient,\n payload: LedgerChallengeRequest,\n): Promise<LedgerChallengeResponse> {\n const resolvedNetwork = canonicalizeLedgerNetwork(payload.network);\n const network =\n resolvedNetwork.kind === 'hedera'\n ? (resolvedNetwork.hederaNetwork ?? resolvedNetwork.canonical)\n : resolvedNetwork.canonical;\n const raw = await client.requestJson<JsonValue>('/auth/ledger/challenge', {\n method: 'POST',\n headers: { 'content-type': 'application/json' },\n body: {\n accountId: payload.accountId,\n network,\n },\n });\n\n return client.parseWithSchema(\n raw,\n ledgerChallengeResponseSchema,\n 'ledger challenge response',\n );\n}\n\nexport async function verifyLedgerChallenge(\n client: RegistryBrokerClient,\n payload: LedgerVerifyRequest,\n): Promise<LedgerVerifyResponse> {\n const resolvedNetwork = canonicalizeLedgerNetwork(payload.network);\n const network =\n resolvedNetwork.kind === 'hedera'\n ? (resolvedNetwork.hederaNetwork ?? resolvedNetwork.canonical)\n : resolvedNetwork.canonical;\n const body: JsonObject = {\n challengeId: payload.challengeId,\n accountId: payload.accountId,\n network,\n signature: payload.signature,\n };\n\n if (payload.signatureKind) {\n body.signatureKind = payload.signatureKind;\n }\n if (payload.publicKey) {\n body.publicKey = payload.publicKey;\n }\n if (typeof payload.expiresInMinutes === 'number') {\n body.expiresInMinutes = payload.expiresInMinutes;\n }\n\n const raw = await client.requestJson<JsonValue>('/auth/ledger/verify', {\n method: 'POST',\n headers: { 'content-type': 'application/json' },\n body,\n });\n\n const result = client.parseWithSchema(\n raw,\n ledgerVerifyResponseSchema,\n 'ledger verification response',\n );\n\n client.setLedgerApiKey(result.key);\n return result;\n}\n\nexport async function authenticateWithLedger(\n client: RegistryBrokerClient,\n options: LedgerAuthenticationOptions,\n): Promise<LedgerVerifyResponse> {\n const challenge = await client.createLedgerChallenge({\n accountId: options.accountId,\n network: options.network,\n });\n const signed = await resolveLedgerAuthSignature(challenge.message, options);\n const verification = await client.verifyLedgerChallenge({\n challengeId: challenge.challengeId,\n accountId: options.accountId,\n network: options.network,\n signature: signed.signature,\n signatureKind: signed.signatureKind,\n publicKey: signed.publicKey,\n expiresInMinutes: options.expiresInMinutes,\n });\n return verification;\n}\n\nexport async function authenticateWithLedgerCredentials(\n client: RegistryBrokerClient,\n options: LedgerCredentialAuthOptions,\n): Promise<LedgerVerifyResponse> {\n const {\n accountId,\n network,\n signer,\n sign,\n hederaPrivateKey,\n evmPrivateKey,\n expiresInMinutes,\n setAccountHeader = true,\n label,\n logger,\n } = options;\n\n const resolvedNetwork = canonicalizeLedgerNetwork(network);\n const labelSuffix = label ? ` for ${label}` : '';\n\n const networkPayload = resolvedNetwork.canonical;\n\n const authOptions: LedgerAuthenticationOptions = {\n accountId,\n network: networkPayload,\n expiresInMinutes,\n };\n\n if (sign) {\n authOptions.sign = sign;\n } else if (signer) {\n authOptions.signer = signer;\n } else if (hederaPrivateKey) {\n if (resolvedNetwork.kind !== 'hedera' || !resolvedNetwork.hederaNetwork) {\n throw new Error(\n 'hederaPrivateKey can only be used with hedera:mainnet or hedera:testnet networks.',\n );\n }\n authOptions.signer = await createPrivateKeySignerAsync({\n accountId,\n privateKey: hederaPrivateKey,\n network: resolvedNetwork.hederaNetwork,\n });\n } else if (evmPrivateKey) {\n if (resolvedNetwork.kind !== 'evm') {\n throw new Error(\n 'evmPrivateKey can only be used with CAIP-2 EVM networks (eip155:<chainId>).',\n );\n }\n const formattedKey = evmPrivateKey.startsWith('0x')\n ? (evmPrivateKey as `0x${string}`)\n : (`0x${evmPrivateKey}` as `0x${string}`);\n const account = await loadViemAccount(formattedKey);\n authOptions.sign = async message => ({\n signature: await account.signMessage({ message }),\n signatureKind: 'evm',\n publicKey: account.publicKey,\n });\n } else {\n throw new Error(\n 'Provide a signer, sign function, hederaPrivateKey, or evmPrivateKey to authenticate with the ledger.',\n );\n }\n\n logger?.info?.(\n `Authenticating ledger account ${accountId} (${resolvedNetwork.canonical})${labelSuffix}...`,\n );\n const verification = await client.authenticateWithLedger(authOptions);\n if (setAccountHeader) {\n client.setDefaultHeader('x-account-id', verification.accountId);\n }\n logger?.info?.(\n `Ledger authentication complete${labelSuffix}. Issued key prefix: ${verification.apiKey.prefix}…${verification.apiKey.lastFour}`,\n );\n return verification;\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"standards-sdk.es187.js","sources":["../../src/inscribe/inscription-cost.ts"],"sourcesContent":["import BigNumber from 'bignumber.js';\nimport { Transaction } from '../services/types';\nimport { QuoteResult, InscriptionCostSummary } from './types';\n\nconst TINYBAR_DIVISOR = 100000000;\n\ntype MirrorNodeTransactionLike = Pick<\n Transaction,\n 'charged_tx_fee' | 'transfers'\n>;\n\ntype CostTransfer = QuoteResult['breakdown']['transfers'][number];\n\nfunction safePositiveTransfers(\n transfers: Transaction['transfers'] | undefined,\n): Array<{ account: string; amountTinybar: number }> {\n if (!Array.isArray(transfers)) {\n return [];\n }\n\n return transfers\n .filter(\n transfer => typeof transfer.amount === 'number' && transfer.amount > 0,\n )\n .map(transfer => ({\n account: transfer.account,\n amountTinybar: transfer.amount,\n }));\n}\n\nfunction resolvePayerDebitTinybar(\n transfers: Transaction['transfers'] | undefined,\n payerAccountId: string,\n): number | null {\n if (!Array.isArray(transfers)) {\n return null;\n }\n\n const payerDebit = transfers.find(\n transfer =>\n transfer.account === payerAccountId &&\n typeof transfer.amount === 'number' &&\n transfer.amount < 0,\n );\n\n if (!payerDebit || typeof payerDebit.amount !== 'number') {\n return null;\n }\n\n return Math.abs(payerDebit.amount);\n}\n\nfunction toHbarString(tinybar: number): string {\n return new BigNumber(tinybar).dividedBy(TINYBAR_DIVISOR).toFixed();\n}\n\nfunction fallbackFeeTinybar(chargedTxFee: unknown): number | null {\n if (typeof chargedTxFee !== 'number' || !Number.isFinite(chargedTxFee)) {\n return null;\n }\n if (chargedTxFee <= 0) {\n return null;\n }\n return chargedTxFee;\n}\n\nexport function computeInscriptionCostSummary(params: {\n txn: MirrorNodeTransactionLike;\n payerAccountId: string;\n}): { summary: InscriptionCostSummary; totalTinybar: number } | null {\n const { txn, payerAccountId } = params;\n\n const positiveTransfers = safePositiveTransfers(txn.transfers);\n const payerDebitTinybar = resolvePayerDebitTinybar(\n txn.transfers,\n payerAccountId,\n );\n\n const transferOutflowTinybar =\n payerDebitTinybar ??\n positiveTransfers.reduce((sum, t) => sum + t.amountTinybar, 0);\n const chargedFeeTinybar = fallbackFeeTinybar(txn.charged_tx_fee);\n\n const resolvedTotalTinybar =\n transferOutflowTinybar > 0 ? transferOutflowTinybar : chargedFeeTinybar;\n\n if (!resolvedTotalTinybar || resolvedTotalTinybar <= 0) {\n return null;\n }\n\n const totalCostHbar = toHbarString(resolvedTotalTinybar);\n\n const breakdownTransfers: CostTransfer[] =\n positiveTransfers.length > 0\n ? positiveTransfers.map(transfer => ({\n to: transfer.account,\n amount: toHbarString(transfer.amountTinybar),\n description: `HBAR transfer from ${payerAccountId}`,\n }))\n : [\n {\n to: 'Hedera network',\n amount: totalCostHbar,\n description: `Transaction fee debited from ${payerAccountId}`,\n },\n ];\n\n return {\n totalTinybar: resolvedTotalTinybar,\n summary: {\n totalCostHbar,\n breakdown: {\n transfers: breakdownTransfers,\n },\n },\n };\n}\n"],"names":[],"mappings":";AAIA,MAAM,kBAAkB;AASxB,SAAS,sBACP,WACmD;AACnD,MAAI,CAAC,MAAM,QAAQ,SAAS,GAAG;AAC7B,WAAO,CAAA;AAAA,EACT;AAEA,SAAO,UACJ;AAAA,IACC,cAAY,OAAO,SAAS,WAAW,YAAY,SAAS,SAAS;AAAA,EAAA,EAEtE,IAAI,CAAA,cAAa;AAAA,IAChB,SAAS,SAAS;AAAA,IAClB,eAAe,SAAS;AAAA,EAAA,EACxB;AACN;AAEA,SAAS,yBACP,WACA,gBACe;AACf,MAAI,CAAC,MAAM,QAAQ,SAAS,GAAG;AAC7B,WAAO;AAAA,EACT;AAEA,QAAM,aAAa,UAAU;AAAA,IAC3B,CAAA,aACE,SAAS,YAAY,kBACrB,OAAO,SAAS,WAAW,YAC3B,SAAS,SAAS;AAAA,EAAA;AAGtB,MAAI,CAAC,cAAc,OAAO,WAAW,WAAW,UAAU;AACxD,WAAO;AAAA,EACT;AAEA,SAAO,KAAK,IAAI,WAAW,MAAM;AACnC;AAEA,SAAS,aAAa,SAAyB;AAC7C,SAAO,IAAI,UAAU,OAAO,EAAE,UAAU,eAAe,EAAE,QAAA;AAC3D;AAEA,SAAS,mBAAmB,cAAsC;AAChE,MAAI,OAAO,iBAAiB,YAAY,CAAC,OAAO,SAAS,YAAY,GAAG;AACtE,WAAO;AAAA,EACT;AACA,MAAI,gBAAgB,GAAG;AACrB,WAAO;AAAA,EACT;AACA,SAAO;AACT;AAEO,SAAS,8BAA8B,QAGuB;AACnE,QAAM,EAAE,KAAK,eAAA,IAAmB;AAEhC,QAAM,oBAAoB,sBAAsB,IAAI,SAAS;AAC7D,QAAM,oBAAoB;AAAA,IACxB,IAAI;AAAA,IACJ;AAAA,EAAA;AAGF,QAAM,yBACJ,qBACA,kBAAkB,OAAO,CAAC,KAAK,MAAM,MAAM,EAAE,eAAe,CAAC;AAC/D,QAAM,oBAAoB,mBAAmB,IAAI,cAAc;AAE/D,QAAM,uBACJ,yBAAyB,IAAI,yBAAyB;AAExD,MAAI,CAAC,wBAAwB,wBAAwB,GAAG;AACtD,WAAO;AAAA,EACT;AAEA,QAAM,gBAAgB,aAAa,oBAAoB;AAEvD,QAAM,qBACJ,kBAAkB,SAAS,IACvB,kBAAkB,IAAI,CAAA,cAAa;AAAA,IACjC,IAAI,SAAS;AAAA,IACb,QAAQ,aAAa,SAAS,aAAa;AAAA,IAC3C,aAAa,sBAAsB,cAAc;AAAA,EAAA,EACjD,IACF;AAAA,IACE;AAAA,MACE,IAAI;AAAA,MACJ,QAAQ;AAAA,MACR,aAAa,gCAAgC,cAAc;AAAA,IAAA;AAAA,EAC7D;AAGR,SAAO;AAAA,IACL,cAAc;AAAA,IACd,SAAS;AAAA,MACP;AAAA,MACA,WAAW;AAAA,QACT,WAAW;AAAA,MAAA;AAAA,IACb;AAAA,EACF;AAEJ;"}
|