@antseed/node 0.2.106 → 0.2.108
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/billing/index.d.ts +2 -0
- package/dist/billing/index.d.ts.map +1 -0
- package/dist/billing/index.js +2 -0
- package/dist/billing/index.js.map +1 -0
- package/dist/billing/unit.d.ts +3 -0
- package/dist/billing/unit.d.ts.map +1 -0
- package/dist/billing/unit.js +3 -0
- package/dist/billing/unit.js.map +1 -0
- package/dist/buyer-request-handler.d.ts +1 -54
- package/dist/buyer-request-handler.d.ts.map +1 -1
- package/dist/buyer-request-handler.js +2 -379
- package/dist/buyer-request-handler.js.map +1 -1
- package/dist/discovery/announcer.d.ts +7 -1
- package/dist/discovery/announcer.d.ts.map +1 -1
- package/dist/discovery/announcer.js +84 -33
- package/dist/discovery/announcer.js.map +1 -1
- package/dist/discovery/http-metadata-resolver.d.ts +4 -0
- package/dist/discovery/http-metadata-resolver.d.ts.map +1 -1
- package/dist/discovery/http-metadata-resolver.js +42 -2
- package/dist/discovery/http-metadata-resolver.js.map +1 -1
- package/dist/discovery/index.d.ts +1 -1
- package/dist/discovery/index.d.ts.map +1 -1
- package/dist/discovery/index.js +1 -1
- package/dist/discovery/index.js.map +1 -1
- package/dist/discovery/metadata-codec.d.ts +4 -4
- package/dist/discovery/metadata-codec.d.ts.map +1 -1
- package/dist/discovery/metadata-codec.js +339 -23
- package/dist/discovery/metadata-codec.js.map +1 -1
- package/dist/discovery/metadata-validator.d.ts +7 -3
- package/dist/discovery/metadata-validator.d.ts.map +1 -1
- package/dist/discovery/metadata-validator.js +139 -8
- package/dist/discovery/metadata-validator.js.map +1 -1
- package/dist/discovery/peer-lookup.d.ts +1 -0
- package/dist/discovery/peer-lookup.d.ts.map +1 -1
- package/dist/discovery/peer-lookup.js +23 -5
- package/dist/discovery/peer-lookup.js.map +1 -1
- package/dist/discovery/peer-metadata.d.ts +2 -90
- package/dist/discovery/peer-metadata.d.ts.map +1 -1
- package/dist/discovery/peer-metadata.js +3 -11
- package/dist/discovery/peer-metadata.js.map +1 -1
- package/dist/discovery/seller-address-resolver.d.ts +1 -49
- package/dist/discovery/seller-address-resolver.d.ts.map +1 -1
- package/dist/discovery/seller-address-resolver.js +2 -114
- package/dist/discovery/seller-address-resolver.js.map +1 -1
- package/dist/errors.d.ts +2 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +2 -0
- package/dist/errors.js.map +1 -0
- package/dist/health/model-health-checker.d.ts +6 -5
- package/dist/health/model-health-checker.d.ts.map +1 -1
- package/dist/health/model-health-checker.js +22 -10
- package/dist/health/model-health-checker.js.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/interfaces/seller-provider.d.ts +6 -0
- package/dist/interfaces/seller-provider.d.ts.map +1 -1
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +34 -5
- package/dist/node.js.map +1 -1
- package/dist/p2p/connection-auth.d.ts +3 -8
- package/dist/p2p/connection-auth.d.ts.map +1 -1
- package/dist/p2p/connection-auth.js +4 -6
- package/dist/p2p/connection-auth.js.map +1 -1
- package/dist/p2p/connection-manager.d.ts +3 -1
- package/dist/p2p/connection-manager.d.ts.map +1 -1
- package/dist/p2p/connection-manager.js.map +1 -1
- package/dist/p2p/identity.d.ts +1 -21
- package/dist/p2p/identity.d.ts.map +1 -1
- package/dist/p2p/identity.js +3 -62
- package/dist/p2p/identity.js.map +1 -1
- package/dist/p2p/message-protocol.d.ts +1 -49
- package/dist/p2p/message-protocol.d.ts.map +1 -1
- package/dist/p2p/message-protocol.js +2 -125
- package/dist/p2p/message-protocol.js.map +1 -1
- package/dist/p2p/payment-codec.d.ts +1 -21
- package/dist/p2p/payment-codec.d.ts.map +1 -1
- package/dist/p2p/payment-codec.js +2 -220
- package/dist/p2p/payment-codec.js.map +1 -1
- package/dist/p2p/payment-mux.d.ts +1 -51
- package/dist/p2p/payment-mux.d.ts.map +1 -1
- package/dist/p2p/payment-mux.js +2 -159
- package/dist/p2p/payment-mux.js.map +1 -1
- package/dist/payments/buyer-free-usage-manager.d.ts +1 -43
- package/dist/payments/buyer-free-usage-manager.d.ts.map +1 -1
- package/dist/payments/buyer-free-usage-manager.js +2 -298
- package/dist/payments/buyer-free-usage-manager.js.map +1 -1
- package/dist/payments/buyer-payment-manager.d.ts +1 -277
- package/dist/payments/buyer-payment-manager.d.ts.map +1 -1
- package/dist/payments/buyer-payment-manager.js +2 -1039
- package/dist/payments/buyer-payment-manager.js.map +1 -1
- package/dist/payments/buyer-payment-negotiator.d.ts +1 -130
- package/dist/payments/buyer-payment-negotiator.d.ts.map +1 -1
- package/dist/payments/buyer-payment-negotiator.js +2 -950
- package/dist/payments/buyer-payment-negotiator.js.map +1 -1
- package/dist/payments/chain-config.d.ts.map +1 -1
- package/dist/payments/chain-config.js +13 -2
- package/dist/payments/chain-config.js.map +1 -1
- package/dist/payments/channel-session-state.d.ts +1 -13
- package/dist/payments/channel-session-state.d.ts.map +1 -1
- package/dist/payments/channel-session-state.js +2 -25
- package/dist/payments/channel-session-state.js.map +1 -1
- package/dist/payments/channel-store.d.ts +2 -51
- package/dist/payments/channel-store.d.ts.map +1 -1
- package/dist/payments/channel-store.js +3 -14
- package/dist/payments/channel-store.js.map +1 -1
- package/dist/payments/channel-usage-accounting.d.ts +1 -17
- package/dist/payments/channel-usage-accounting.d.ts.map +1 -1
- package/dist/payments/channel-usage-accounting.js +2 -65
- package/dist/payments/channel-usage-accounting.js.map +1 -1
- package/dist/payments/evm/base-evm-client.d.ts +1 -26
- package/dist/payments/evm/base-evm-client.d.ts.map +1 -1
- package/dist/payments/evm/base-evm-client.js +2 -115
- package/dist/payments/evm/base-evm-client.js.map +1 -1
- package/dist/payments/evm/channels-client.d.ts +1 -85
- package/dist/payments/evm/channels-client.d.ts.map +1 -1
- package/dist/payments/evm/channels-client.js +2 -193
- package/dist/payments/evm/channels-client.js.map +1 -1
- package/dist/payments/evm/deposits-client.d.ts +1 -29
- package/dist/payments/evm/deposits-client.d.ts.map +1 -1
- package/dist/payments/evm/deposits-client.js +2 -67
- package/dist/payments/evm/deposits-client.js.map +1 -1
- package/dist/payments/evm/signatures.d.ts +1 -203
- package/dist/payments/evm/signatures.d.ts.map +1 -1
- package/dist/payments/evm/signatures.js +2 -236
- package/dist/payments/evm/signatures.js.map +1 -1
- package/dist/payments/evm/subpool-client.d.ts +32 -0
- package/dist/payments/evm/subpool-client.d.ts.map +1 -0
- package/dist/payments/evm/subpool-client.js +158 -0
- package/dist/payments/evm/subpool-client.js.map +1 -0
- package/dist/payments/index.d.ts +1 -1
- package/dist/payments/index.d.ts.map +1 -1
- package/dist/payments/index.js +1 -1
- package/dist/payments/index.js.map +1 -1
- package/dist/payments/pricing.d.ts +1 -26
- package/dist/payments/pricing.d.ts.map +1 -1
- package/dist/payments/pricing.js +2 -36
- package/dist/payments/pricing.js.map +1 -1
- package/dist/payments/usdc-utils.d.ts +1 -8
- package/dist/payments/usdc-utils.d.ts.map +1 -1
- package/dist/payments/usdc-utils.js +2 -16
- package/dist/payments/usdc-utils.js.map +1 -1
- package/dist/proxy/proxy-mux.d.ts +1 -69
- package/dist/proxy/proxy-mux.d.ts.map +1 -1
- package/dist/proxy/proxy-mux.js +2 -346
- package/dist/proxy/proxy-mux.js.map +1 -1
- package/dist/proxy/request-codec.d.ts +1 -41
- package/dist/proxy/request-codec.d.ts.map +1 -1
- package/dist/proxy/request-codec.js +2 -280
- package/dist/proxy/request-codec.js.map +1 -1
- package/dist/seller-request-handler.d.ts +10 -3
- package/dist/seller-request-handler.d.ts.map +1 -1
- package/dist/seller-request-handler.js +112 -17
- package/dist/seller-request-handler.js.map +1 -1
- package/dist/types/billing.d.ts +2 -0
- package/dist/types/billing.d.ts.map +1 -0
- package/dist/types/billing.js +2 -0
- package/dist/types/billing.js.map +1 -0
- package/dist/types/capability.d.ts +1 -25
- package/dist/types/capability.d.ts.map +1 -1
- package/dist/types/capability.js +2 -1
- package/dist/types/capability.js.map +1 -1
- package/dist/types/connection.d.ts +1 -26
- package/dist/types/connection.d.ts.map +1 -1
- package/dist/types/connection.js +2 -10
- package/dist/types/connection.js.map +1 -1
- package/dist/types/http.d.ts +1 -39
- package/dist/types/http.d.ts.map +1 -1
- package/dist/types/http.js +2 -16
- package/dist/types/http.js.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/peer.d.ts +9 -31
- package/dist/types/peer.d.ts.map +1 -1
- package/dist/types/peer.js +2 -14
- package/dist/types/peer.js.map +1 -1
- package/dist/types/protocol.d.ts +1 -306
- package/dist/types/protocol.d.ts.map +1 -1
- package/dist/types/protocol.js +2 -81
- package/dist/types/protocol.js.map +1 -1
- package/dist/types/service-api.d.ts +1 -5
- package/dist/types/service-api.d.ts.map +1 -1
- package/dist/types/service-api.js +2 -12
- package/dist/types/service-api.js.map +1 -1
- package/dist/utils/debug.d.ts +1 -5
- package/dist/utils/debug.d.ts.map +1 -1
- package/dist/utils/debug.js +2 -52
- package/dist/utils/debug.js.map +1 -1
- package/dist/utils/hex.d.ts +1 -2
- package/dist/utils/hex.d.ts.map +1 -1
- package/dist/utils/hex.js +2 -14
- package/dist/utils/hex.js.map +1 -1
- package/dist/utils/json-codec.d.ts +1 -9
- package/dist/utils/json-codec.d.ts.map +1 -1
- package/dist/utils/json-codec.js +2 -51
- package/dist/utils/json-codec.js.map +1 -1
- package/dist/utils/response-usage.d.ts +1 -9
- package/dist/utils/response-usage.d.ts.map +1 -1
- package/dist/utils/response-usage.js +2 -39
- package/dist/utils/response-usage.js.map +1 -1
- package/dist/verification/codec.d.ts +1 -3
- package/dist/verification/codec.d.ts.map +1 -1
- package/dist/verification/codec.js +2 -37
- package/dist/verification/codec.js.map +1 -1
- package/dist/verification/response-auth.d.ts +1 -30
- package/dist/verification/response-auth.d.ts.map +1 -1
- package/dist/verification/response-auth.js +2 -110
- package/dist/verification/response-auth.js.map +1 -1
- package/dist/verification/verification-mux.d.ts +1 -19
- package/dist/verification/verification-mux.d.ts.map +1 -1
- package/dist/verification/verification-mux.js +2 -99
- package/dist/verification/verification-mux.js.map +1 -1
- package/package.json +4 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subpool-client.js","sourceRoot":"","sources":["../../../src/payments/evm/subpool-client.ts"],"names":[],"mappings":"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"}
|
package/dist/payments/index.d.ts
CHANGED
|
@@ -30,7 +30,7 @@ export { BuyerPaymentNegotiator } from './buyer-payment-negotiator.js';
|
|
|
30
30
|
export type { BuyerNegotiatorConfig, Handle402Result, NegotiationEmitter } from './buyer-payment-negotiator.js';
|
|
31
31
|
export { SellerPaymentManager, DEFAULT_MIN_SETTLE_DELTA_STR } from './seller-payment-manager.js';
|
|
32
32
|
export type { SellerPaymentConfig } from './seller-payment-manager.js';
|
|
33
|
-
export { computeCostUsdc, estimateCostFromBytes, estimateTokensFromBytes } from './pricing.js';
|
|
33
|
+
export { computeCostUsdc, estimateCostFromBytes, estimateTokensFromBytes, isFreeUnitBillingModel, validateUnitBillingModelV1, } from './pricing.js';
|
|
34
34
|
export type { ServicePricing } from './pricing.js';
|
|
35
35
|
export { checkSellerReadiness, checkBuyerReadiness } from './readiness.js';
|
|
36
36
|
export type { ReadinessCheck } from './readiness.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/payments/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/payments/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,aAAa,EACb,OAAO,EACP,UAAU,EACV,eAAe,EACf,WAAW,EACX,aAAa,EACb,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,YAAY,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGvF,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,YAAY,EAAE,oBAAoB,EAAE,WAAW,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAGnH,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGnH,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,YAAY,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGrE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,4BAA4B,EAC5B,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EAChB,2BAA2B,EAC3B,gBAAgB,EAChB,yBAAyB,EACzB,yBAAyB,EACzB,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,2BAA2B,EAC3B,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,YAAY,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGxE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,YAAY,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAG7F,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAC9F,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGhH,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,YAAY,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAG3F,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,YAAY,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,YAAY,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAG5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,YAAY,EAAE,qBAAqB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGhH,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AACjG,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAGvE,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAGnD,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC3E,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/payments/index.js
CHANGED
|
@@ -29,7 +29,7 @@ export { BuyerPaymentNegotiator } from './buyer-payment-negotiator.js';
|
|
|
29
29
|
// Seller payment manager
|
|
30
30
|
export { SellerPaymentManager, DEFAULT_MIN_SETTLE_DELTA_STR } from './seller-payment-manager.js';
|
|
31
31
|
// Pricing utilities
|
|
32
|
-
export { computeCostUsdc, estimateCostFromBytes, estimateTokensFromBytes } from './pricing.js';
|
|
32
|
+
export { computeCostUsdc, estimateCostFromBytes, estimateTokensFromBytes, isFreeUnitBillingModel, validateUnitBillingModelV1, } from './pricing.js';
|
|
33
33
|
// Readiness checks
|
|
34
34
|
export { checkSellerReadiness, checkBuyerReadiness } from './readiness.js';
|
|
35
35
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/payments/index.ts"],"names":[],"mappings":"AAWA,+CAA+C;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,kBAAkB;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,oDAAoD;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,6CAA6C;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,8CAA8C;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAG7D,8CAA8C;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,wDAAwD;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,4BAA4B,EAC5B,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EAChB,2BAA2B,EAC3B,gBAAgB,EAChB,yBAAyB,EACzB,yBAAyB,EACzB,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,qBAAqB,CAAC;AAa7B,aAAa;AACb,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAG7D,YAAY;AACZ,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAG5D,sBAAsB;AACtB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAG9F,wBAAwB;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGjE,sBAAsB;AACtB,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAGxE,4EAA4E;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAGvE,yBAAyB;AACzB,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAGjG,oBAAoB;AACpB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/payments/index.ts"],"names":[],"mappings":"AAWA,+CAA+C;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,kBAAkB;AAClB,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,oDAAoD;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,6CAA6C;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,8CAA8C;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAG7D,8CAA8C;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,wDAAwD;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,4BAA4B,EAC5B,uBAAuB,EACvB,oBAAoB,EACpB,gBAAgB,EAChB,2BAA2B,EAC3B,gBAAgB,EAChB,yBAAyB,EACzB,yBAAyB,EACzB,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,qBAAqB,CAAC;AAa7B,aAAa;AACb,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAG7D,YAAY;AACZ,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAG5D,sBAAsB;AACtB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAG9F,wBAAwB;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGjE,sBAAsB;AACtB,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAGxE,4EAA4E;AAC5E,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAGvE,yBAAyB;AACzB,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,6BAA6B,CAAC;AAGjG,oBAAoB;AACpB,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,cAAc,CAAC;AAGtB,mBAAmB;AACnB,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,27 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export interface ServicePricing {
|
|
3
|
-
inputUsdPerMillion: number;
|
|
4
|
-
outputUsdPerMillion: number;
|
|
5
|
-
/** Price per million cached input tokens. Defaults to inputUsdPerMillion (no discount) if not set. */
|
|
6
|
-
cachedInputUsdPerMillion?: number;
|
|
7
|
-
}
|
|
8
|
-
/** Estimate token count from raw bytes using tokenx (~95-98% accuracy). */
|
|
9
|
-
export declare function estimateTokensFromBytes(bytes: Uint8Array): number;
|
|
10
|
-
/** Estimate token count from a string using tokenx. */
|
|
11
|
-
export declare function estimateTokensFromText(text: string): number;
|
|
12
|
-
/**
|
|
13
|
-
* Compute USDC cost in base units (6 decimals) from token counts and pricing.
|
|
14
|
-
* freshInputTokens and cachedInputTokens are independent counts (never overlapping),
|
|
15
|
-
* so they are additive — no subtraction needed. This handles both OpenAI (where the
|
|
16
|
-
* extraction layer splits prompt_tokens) and Anthropic (where input_tokens is fresh-only).
|
|
17
|
-
*/
|
|
18
|
-
export declare function computeCostUsdc(freshInputTokens: number, outputTokens: number, pricing: ServicePricing, cachedInputTokens?: number): bigint;
|
|
19
|
-
/**
|
|
20
|
-
* Estimate USDC cost from raw content bytes using tokenx token estimation.
|
|
21
|
-
*/
|
|
22
|
-
export declare function estimateCostFromBytes(inputBytes: Uint8Array, outputBytes: Uint8Array, pricing: ServicePricing): {
|
|
23
|
-
cost: bigint;
|
|
24
|
-
inputTokens: number;
|
|
25
|
-
outputTokens: number;
|
|
26
|
-
};
|
|
1
|
+
export * from '@antseed/buyer-core/pricing';
|
|
27
2
|
//# sourceMappingURL=pricing.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../../src/payments/pricing.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pricing.d.ts","sourceRoot":"","sources":["../../src/payments/pricing.ts"],"names":[],"mappings":"AACA,cAAc,6BAA6B,CAAC"}
|
package/dist/payments/pricing.js
CHANGED
|
@@ -1,37 +1,3 @@
|
|
|
1
|
-
//
|
|
2
|
-
|
|
3
|
-
const textDecoder = new TextDecoder();
|
|
4
|
-
/** Estimate token count from raw bytes using tokenx (~95-98% accuracy). */
|
|
5
|
-
export function estimateTokensFromBytes(bytes) {
|
|
6
|
-
const text = textDecoder.decode(bytes);
|
|
7
|
-
return estimateTokenCount(text);
|
|
8
|
-
}
|
|
9
|
-
/** Estimate token count from a string using tokenx. */
|
|
10
|
-
export function estimateTokensFromText(text) {
|
|
11
|
-
return estimateTokenCount(text);
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Compute USDC cost in base units (6 decimals) from token counts and pricing.
|
|
15
|
-
* freshInputTokens and cachedInputTokens are independent counts (never overlapping),
|
|
16
|
-
* so they are additive — no subtraction needed. This handles both OpenAI (where the
|
|
17
|
-
* extraction layer splits prompt_tokens) and Anthropic (where input_tokens is fresh-only).
|
|
18
|
-
*/
|
|
19
|
-
export function computeCostUsdc(freshInputTokens, outputTokens, pricing, cachedInputTokens = 0) {
|
|
20
|
-
const cachedPrice = pricing.cachedInputUsdPerMillion ?? pricing.inputUsdPerMillion;
|
|
21
|
-
const freshCost = freshInputTokens * pricing.inputUsdPerMillion;
|
|
22
|
-
const cachedCost = cachedInputTokens * cachedPrice;
|
|
23
|
-
const outputCost = outputTokens * pricing.outputUsdPerMillion;
|
|
24
|
-
const costUsd = (freshCost + cachedCost + outputCost) / 1_000_000;
|
|
25
|
-
const costBaseUnits = Math.max(0, Math.round(costUsd * 1_000_000));
|
|
26
|
-
return BigInt(costBaseUnits);
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Estimate USDC cost from raw content bytes using tokenx token estimation.
|
|
30
|
-
*/
|
|
31
|
-
export function estimateCostFromBytes(inputBytes, outputBytes, pricing) {
|
|
32
|
-
const inputTokens = estimateTokensFromBytes(inputBytes);
|
|
33
|
-
const outputTokens = estimateTokensFromBytes(outputBytes);
|
|
34
|
-
const cost = computeCostUsdc(inputTokens, outputTokens, pricing);
|
|
35
|
-
return { cost, inputTokens, outputTokens };
|
|
36
|
-
}
|
|
1
|
+
// Moved to @antseed/buyer-core; re-exported for compatibility.
|
|
2
|
+
export * from '@antseed/buyer-core/pricing';
|
|
37
3
|
//# sourceMappingURL=pricing.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pricing.js","sourceRoot":"","sources":["../../src/payments/pricing.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"pricing.js","sourceRoot":"","sources":["../../src/payments/pricing.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,cAAc,6BAA6B,CAAC"}
|
|
@@ -1,9 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
* Shared USDC formatting and parsing utilities.
|
|
3
|
-
* USDC uses 6 decimal places (1 USDC = 1,000,000 base units).
|
|
4
|
-
*/
|
|
5
|
-
/** Format USDC base units (bigint) to human-readable string (e.g., "10.5"). */
|
|
6
|
-
export declare function formatUsdc(baseUnits: bigint): string;
|
|
7
|
-
/** Parse a decimal USDC string to base units (6 decimals) without floating-point. */
|
|
8
|
-
export declare function parseUsdc(s: string): bigint;
|
|
1
|
+
export * from '@antseed/buyer-core/usdc-utils';
|
|
9
2
|
//# sourceMappingURL=usdc-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usdc-utils.d.ts","sourceRoot":"","sources":["../../src/payments/usdc-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"usdc-utils.d.ts","sourceRoot":"","sources":["../../src/payments/usdc-utils.ts"],"names":[],"mappings":"AACA,cAAc,gCAAgC,CAAC"}
|
|
@@ -1,17 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
*
|
|
3
|
-
* USDC uses 6 decimal places (1 USDC = 1,000,000 base units).
|
|
4
|
-
*/
|
|
5
|
-
/** Format USDC base units (bigint) to human-readable string (e.g., "10.5"). */
|
|
6
|
-
export function formatUsdc(baseUnits) {
|
|
7
|
-
const whole = baseUnits / 1000000n;
|
|
8
|
-
const frac = (baseUnits % 1000000n).toString().padStart(6, '0').replace(/0+$/, '') || '0';
|
|
9
|
-
return `${whole}.${frac}`;
|
|
10
|
-
}
|
|
11
|
-
/** Parse a decimal USDC string to base units (6 decimals) without floating-point. */
|
|
12
|
-
export function parseUsdc(s) {
|
|
13
|
-
const [whole = '0', frac = ''] = s.split('.');
|
|
14
|
-
const fracPadded = frac.slice(0, 6).padEnd(6, '0');
|
|
15
|
-
return BigInt(whole) * 1000000n + BigInt(fracPadded);
|
|
16
|
-
}
|
|
1
|
+
// Moved to @antseed/buyer-core; re-exported for compatibility.
|
|
2
|
+
export * from '@antseed/buyer-core/usdc-utils';
|
|
17
3
|
//# sourceMappingURL=usdc-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usdc-utils.js","sourceRoot":"","sources":["../../src/payments/usdc-utils.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"usdc-utils.js","sourceRoot":"","sources":["../../src/payments/usdc-utils.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,cAAc,gCAAgC,CAAC"}
|
|
@@ -1,70 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
import type { PeerConnection } from "../p2p/connection-manager.js";
|
|
3
|
-
import type { SerializedHttpRequest, SerializedHttpResponse, SerializedHttpResponseChunk } from "../types/http.js";
|
|
4
|
-
type ResponseHandler = (response: SerializedHttpResponse, metadata: {
|
|
5
|
-
streamingStart: boolean;
|
|
6
|
-
}) => void;
|
|
7
|
-
type ChunkHandler = (chunk: SerializedHttpResponseChunk) => void;
|
|
8
|
-
type RequestHandler = (request: SerializedHttpRequest) => void | Promise<void>;
|
|
9
|
-
/** Per-request upload size cap, total budget, and stall timeout. */
|
|
10
|
-
export interface ProxyMuxUploadLimits {
|
|
11
|
-
/** Max body bytes for a single upload. Default: 64 MiB. Buyer receives 413 on violation. */
|
|
12
|
-
maxUploadBodyBytes?: number;
|
|
13
|
-
/** Max bytes across ALL concurrent in-progress uploads. Default: 256 MiB. */
|
|
14
|
-
maxTotalPendingUploadBytes?: number;
|
|
15
|
-
/** Max ms between the header frame and HttpRequestEnd. Default: 120_000 ms. */
|
|
16
|
-
uploadTimeoutMs?: number;
|
|
17
|
-
}
|
|
18
|
-
export declare const DEFAULT_MAX_UPLOAD_BODY_BYTES: number;
|
|
19
|
-
/**
|
|
20
|
-
* Request/response multiplexer over DataChannel.
|
|
21
|
-
* Handles both buyer-side and seller-side proxy communication.
|
|
22
|
-
*/
|
|
23
|
-
export declare class ProxyMux {
|
|
24
|
-
private readonly _connection;
|
|
25
|
-
private _messageIdCounter;
|
|
26
|
-
private readonly _responseHandlers;
|
|
27
|
-
private readonly _chunkHandlers;
|
|
28
|
-
private _requestHandler;
|
|
29
|
-
private readonly _pendingUploads;
|
|
30
|
-
private _totalPendingUploadBytes;
|
|
31
|
-
private readonly _maxUploadBodyBytes;
|
|
32
|
-
private readonly _maxTotalPendingUploadBytes;
|
|
33
|
-
private readonly _uploadTimeoutMs;
|
|
34
|
-
constructor(connection: PeerConnection, uploadLimits?: ProxyMuxUploadLimits);
|
|
35
|
-
/** Buyer side: send a proxy request and register response/chunk handlers. */
|
|
36
|
-
sendProxyRequest(request: SerializedHttpRequest, onResponse: ResponseHandler, onChunk: ChunkHandler): void;
|
|
37
|
-
/** Buyer side: split a large request body into HttpRequest + HttpRequestChunk* + HttpRequestEnd. */
|
|
38
|
-
private _sendChunkedRequest;
|
|
39
|
-
/** Buyer side: cancel handlers for an in-flight request. */
|
|
40
|
-
cancelProxyRequest(requestId: string): void;
|
|
41
|
-
/** Seller side: register a handler for incoming proxy requests. */
|
|
42
|
-
onProxyRequest(handler: RequestHandler): void;
|
|
43
|
-
/** Seller side: send a complete proxy response. */
|
|
44
|
-
sendProxyResponse(response: SerializedHttpResponse): void;
|
|
45
|
-
/** Seller side: send a proxy response chunk. */
|
|
46
|
-
sendProxyChunk(chunk: SerializedHttpResponseChunk): void;
|
|
47
|
-
/** Route an incoming frame to the correct handler based on message type. */
|
|
48
|
-
handleFrame(frame: FramedMessage): Promise<void>;
|
|
49
|
-
/** Number of in-flight requests (buyer side). */
|
|
50
|
-
activeRequestCount(): number;
|
|
51
|
-
/** Number of in-progress chunked uploads buffered on the seller side. */
|
|
52
|
-
pendingUploadCount(): number;
|
|
53
|
-
/** Total bytes currently buffered across all in-progress uploads. */
|
|
54
|
-
pendingUploadBytes(): number;
|
|
55
|
-
/**
|
|
56
|
-
* Seller side: abort and discard all buffered chunked-upload state.
|
|
57
|
-
* Call on connection close or session end to prevent memory leaks.
|
|
58
|
-
* Zeros all buffered chunk data before discarding.
|
|
59
|
-
*/
|
|
60
|
-
abortPendingUploads(): void;
|
|
61
|
-
/**
|
|
62
|
-
* Abort a single in-progress upload, zero its buffers, and send an error
|
|
63
|
-
* response to the buyer.
|
|
64
|
-
*/
|
|
65
|
-
private _abortUpload;
|
|
66
|
-
private _safeSendFrame;
|
|
67
|
-
private _nextMessageId;
|
|
68
|
-
}
|
|
69
|
-
export {};
|
|
1
|
+
export * from '@antseed/buyer-core/proxy-mux';
|
|
70
2
|
//# sourceMappingURL=proxy-mux.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxy-mux.d.ts","sourceRoot":"","sources":["../../src/proxy/proxy-mux.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"proxy-mux.d.ts","sourceRoot":"","sources":["../../src/proxy/proxy-mux.ts"],"names":[],"mappings":"AACA,cAAc,+BAA+B,CAAC"}
|
package/dist/proxy/proxy-mux.js
CHANGED
|
@@ -1,347 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import { encodeHttpRequest, decodeHttpRequest, encodeHttpResponse, decodeHttpResponse, encodeHttpResponseChunk, decodeHttpResponseChunk, encodeHttpRequestChunk, decodeHttpRequestChunk, } from "./request-codec.js";
|
|
4
|
-
import { ANTSEED_STREAMING_RESPONSE_HEADER, ANTSEED_UPLOAD_CHUNK_HEADER, ANTSEED_UPLOAD_THRESHOLD_BYTES, ANTSEED_UPLOAD_CHUNK_SIZE, } from "../types/http.js";
|
|
5
|
-
import { debugLog } from "../utils/debug.js";
|
|
6
|
-
// Codex-style /v1/responses requests can include large repository context.
|
|
7
|
-
// Raising the per-request cap to 64 MiB accommodates those requests while the
|
|
8
|
-
// separate 256 MiB aggregate pending-upload budget continues to bound seller
|
|
9
|
-
// memory exposure across concurrent uploads.
|
|
10
|
-
export const DEFAULT_MAX_UPLOAD_BODY_BYTES = 64 * 1024 * 1024; // 64 MiB
|
|
11
|
-
const DEFAULT_MAX_TOTAL_PENDING_BYTES = 256 * 1024 * 1024; // 256 MiB
|
|
12
|
-
const DEFAULT_UPLOAD_TIMEOUT_MS = 120_000; // 2 min
|
|
13
|
-
/**
|
|
14
|
-
* Request/response multiplexer over DataChannel.
|
|
15
|
-
* Handles both buyer-side and seller-side proxy communication.
|
|
16
|
-
*/
|
|
17
|
-
export class ProxyMux {
|
|
18
|
-
_connection;
|
|
19
|
-
_messageIdCounter = 0;
|
|
20
|
-
// Buyer side: pending requests awaiting responses
|
|
21
|
-
_responseHandlers = new Map();
|
|
22
|
-
_chunkHandlers = new Map();
|
|
23
|
-
// Seller side: handler for incoming proxy requests
|
|
24
|
-
_requestHandler = null;
|
|
25
|
-
// Seller side: in-progress chunked uploads with size tracking and timeouts
|
|
26
|
-
_pendingUploads = new Map();
|
|
27
|
-
_totalPendingUploadBytes = 0;
|
|
28
|
-
_maxUploadBodyBytes;
|
|
29
|
-
_maxTotalPendingUploadBytes;
|
|
30
|
-
_uploadTimeoutMs;
|
|
31
|
-
constructor(connection, uploadLimits) {
|
|
32
|
-
this._connection = connection;
|
|
33
|
-
this._maxUploadBodyBytes = uploadLimits?.maxUploadBodyBytes ?? DEFAULT_MAX_UPLOAD_BODY_BYTES;
|
|
34
|
-
this._maxTotalPendingUploadBytes = uploadLimits?.maxTotalPendingUploadBytes ?? DEFAULT_MAX_TOTAL_PENDING_BYTES;
|
|
35
|
-
this._uploadTimeoutMs = uploadLimits?.uploadTimeoutMs ?? DEFAULT_UPLOAD_TIMEOUT_MS;
|
|
36
|
-
}
|
|
37
|
-
/** Buyer side: send a proxy request and register response/chunk handlers. */
|
|
38
|
-
sendProxyRequest(request, onResponse, onChunk) {
|
|
39
|
-
const useChunkedUpload = request.body.length > ANTSEED_UPLOAD_THRESHOLD_BYTES;
|
|
40
|
-
debugLog(`[ProxyMux] send request reqId=${request.requestId.slice(0, 8)} bytes=${request.body.length} chunked=${useChunkedUpload ? "true" : "false"}`);
|
|
41
|
-
this._responseHandlers.set(request.requestId, onResponse);
|
|
42
|
-
this._chunkHandlers.set(request.requestId, onChunk);
|
|
43
|
-
if (useChunkedUpload) {
|
|
44
|
-
this._sendChunkedRequest(request);
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
const payload = encodeHttpRequest(request);
|
|
48
|
-
this._connection.send(encodeFrame({
|
|
49
|
-
type: MessageType.HttpRequest,
|
|
50
|
-
messageId: this._nextMessageId(),
|
|
51
|
-
payload,
|
|
52
|
-
}));
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
/** Buyer side: split a large request body into HttpRequest + HttpRequestChunk* + HttpRequestEnd. */
|
|
56
|
-
_sendChunkedRequest(request) {
|
|
57
|
-
// Header frame: metadata only, empty body, upload marker
|
|
58
|
-
const headerRequest = {
|
|
59
|
-
...request,
|
|
60
|
-
headers: { ...request.headers, [ANTSEED_UPLOAD_CHUNK_HEADER]: 'chunked' },
|
|
61
|
-
body: new Uint8Array(0),
|
|
62
|
-
};
|
|
63
|
-
this._connection.send(encodeFrame({
|
|
64
|
-
type: MessageType.HttpRequest,
|
|
65
|
-
messageId: this._nextMessageId(),
|
|
66
|
-
payload: encodeHttpRequest(headerRequest),
|
|
67
|
-
}));
|
|
68
|
-
// Stream body in ANTSEED_UPLOAD_CHUNK_SIZE slices
|
|
69
|
-
const body = request.body;
|
|
70
|
-
let offset = 0;
|
|
71
|
-
while (offset < body.length) {
|
|
72
|
-
const end = Math.min(offset + ANTSEED_UPLOAD_CHUNK_SIZE, body.length);
|
|
73
|
-
const isLast = end >= body.length;
|
|
74
|
-
const payload = encodeHttpRequestChunk({
|
|
75
|
-
requestId: request.requestId,
|
|
76
|
-
data: body.slice(offset, end),
|
|
77
|
-
done: isLast,
|
|
78
|
-
});
|
|
79
|
-
this._connection.send(encodeFrame({
|
|
80
|
-
type: isLast ? MessageType.HttpRequestEnd : MessageType.HttpRequestChunk,
|
|
81
|
-
messageId: this._nextMessageId(),
|
|
82
|
-
payload,
|
|
83
|
-
}));
|
|
84
|
-
offset = end;
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
/** Buyer side: cancel handlers for an in-flight request. */
|
|
88
|
-
cancelProxyRequest(requestId) {
|
|
89
|
-
debugLog(`[ProxyMux] cancel request reqId=${requestId.slice(0, 8)}`);
|
|
90
|
-
this._responseHandlers.delete(requestId);
|
|
91
|
-
this._chunkHandlers.delete(requestId);
|
|
92
|
-
}
|
|
93
|
-
/** Seller side: register a handler for incoming proxy requests. */
|
|
94
|
-
onProxyRequest(handler) {
|
|
95
|
-
this._requestHandler = handler;
|
|
96
|
-
}
|
|
97
|
-
/** Seller side: send a complete proxy response. */
|
|
98
|
-
sendProxyResponse(response) {
|
|
99
|
-
const payload = encodeHttpResponse(response);
|
|
100
|
-
const frame = encodeFrame({
|
|
101
|
-
type: MessageType.HttpResponse,
|
|
102
|
-
messageId: this._nextMessageId(),
|
|
103
|
-
payload,
|
|
104
|
-
});
|
|
105
|
-
this._safeSendFrame(frame, 'response', response.requestId);
|
|
106
|
-
}
|
|
107
|
-
/** Seller side: send a proxy response chunk. */
|
|
108
|
-
sendProxyChunk(chunk) {
|
|
109
|
-
const type = chunk.done
|
|
110
|
-
? MessageType.HttpResponseEnd
|
|
111
|
-
: MessageType.HttpResponseChunk;
|
|
112
|
-
const payload = encodeHttpResponseChunk(chunk);
|
|
113
|
-
const frame = encodeFrame({
|
|
114
|
-
type,
|
|
115
|
-
messageId: this._nextMessageId(),
|
|
116
|
-
payload,
|
|
117
|
-
});
|
|
118
|
-
this._safeSendFrame(frame, chunk.done ? 'response-end' : 'response-chunk', chunk.requestId);
|
|
119
|
-
}
|
|
120
|
-
/** Route an incoming frame to the correct handler based on message type. */
|
|
121
|
-
async handleFrame(frame) {
|
|
122
|
-
try {
|
|
123
|
-
debugLog(`[ProxyMux] handleFrame type=${frame.type} (0x${frame.type.toString(16)}) payloadLen=${frame.payload?.length ?? 0}`);
|
|
124
|
-
switch (frame.type) {
|
|
125
|
-
case MessageType.HttpRequest: {
|
|
126
|
-
// Seller side: incoming request from buyer
|
|
127
|
-
const request = decodeHttpRequest(frame.payload);
|
|
128
|
-
debugLog(`[ProxyMux] recv request reqId=${request.requestId.slice(0, 8)} chunked=${request.headers[ANTSEED_UPLOAD_CHUNK_HEADER] === 'chunked' ? "true" : "false"} bodyBytes=${request.body?.length ?? 0} bodyType=${typeof request.body}`);
|
|
129
|
-
if (request.headers[ANTSEED_UPLOAD_CHUNK_HEADER] === 'chunked') {
|
|
130
|
-
// Body will arrive via HttpRequestChunk/HttpRequestEnd — start buffering.
|
|
131
|
-
// If a duplicate header frame arrives for the same requestId, evict the
|
|
132
|
-
// existing entry first to prevent timer leaks and accounting drift.
|
|
133
|
-
const existing = this._pendingUploads.get(request.requestId);
|
|
134
|
-
if (existing) {
|
|
135
|
-
clearTimeout(existing.timer);
|
|
136
|
-
this._totalPendingUploadBytes -= existing.byteCount;
|
|
137
|
-
for (const c of existing.chunks)
|
|
138
|
-
c.fill(0);
|
|
139
|
-
}
|
|
140
|
-
const timer = setTimeout(() => this._abortUpload(request.requestId, 408, 'Upload timed out'), this._uploadTimeoutMs);
|
|
141
|
-
this._pendingUploads.set(request.requestId, {
|
|
142
|
-
headerReq: request,
|
|
143
|
-
chunks: [],
|
|
144
|
-
byteCount: 0,
|
|
145
|
-
timer,
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
else if (this._requestHandler) {
|
|
149
|
-
await this._requestHandler(request);
|
|
150
|
-
}
|
|
151
|
-
break;
|
|
152
|
-
}
|
|
153
|
-
case MessageType.HttpRequestChunk: {
|
|
154
|
-
// Seller side: non-final body chunk of a chunked upload
|
|
155
|
-
const chunk = decodeHttpRequestChunk(frame.payload);
|
|
156
|
-
const entry = this._pendingUploads.get(chunk.requestId);
|
|
157
|
-
if (!entry || chunk.data.length === 0)
|
|
158
|
-
break;
|
|
159
|
-
debugLog(`[ProxyMux] recv request chunk reqId=${chunk.requestId.slice(0, 8)} bytes=${chunk.data.length} pending=${entry.byteCount + chunk.data.length}`);
|
|
160
|
-
// Per-request size guard
|
|
161
|
-
if (entry.byteCount + chunk.data.length > this._maxUploadBodyBytes) {
|
|
162
|
-
this._abortUpload(chunk.requestId, 413, 'Upload body exceeds per-request limit');
|
|
163
|
-
break;
|
|
164
|
-
}
|
|
165
|
-
// Global budget guard
|
|
166
|
-
if (this._totalPendingUploadBytes + chunk.data.length > this._maxTotalPendingUploadBytes) {
|
|
167
|
-
this._abortUpload(chunk.requestId, 413, 'Server upload capacity exceeded');
|
|
168
|
-
break;
|
|
169
|
-
}
|
|
170
|
-
entry.chunks.push(chunk.data);
|
|
171
|
-
entry.byteCount += chunk.data.length;
|
|
172
|
-
this._totalPendingUploadBytes += chunk.data.length;
|
|
173
|
-
break;
|
|
174
|
-
}
|
|
175
|
-
case MessageType.HttpRequestEnd: {
|
|
176
|
-
// Seller side: final body chunk — reassemble, zero intermediates, dispatch
|
|
177
|
-
const chunk = decodeHttpRequestChunk(frame.payload);
|
|
178
|
-
const entry = this._pendingUploads.get(chunk.requestId);
|
|
179
|
-
if (!entry)
|
|
180
|
-
break;
|
|
181
|
-
debugLog(`[ProxyMux] recv request end reqId=${chunk.requestId.slice(0, 8)} finalBytes=${chunk.data.length} pendingBefore=${entry.byteCount}`);
|
|
182
|
-
// Check final chunk against limits
|
|
183
|
-
const finalLen = chunk.data.length;
|
|
184
|
-
if (finalLen > 0) {
|
|
185
|
-
if (entry.byteCount + finalLen > this._maxUploadBodyBytes) {
|
|
186
|
-
this._abortUpload(chunk.requestId, 413, 'Upload body exceeds per-request limit');
|
|
187
|
-
break;
|
|
188
|
-
}
|
|
189
|
-
if (this._totalPendingUploadBytes + finalLen > this._maxTotalPendingUploadBytes) {
|
|
190
|
-
this._abortUpload(chunk.requestId, 413, 'Server upload capacity exceeded');
|
|
191
|
-
break;
|
|
192
|
-
}
|
|
193
|
-
entry.chunks.push(chunk.data);
|
|
194
|
-
entry.byteCount += finalLen;
|
|
195
|
-
this._totalPendingUploadBytes += finalLen;
|
|
196
|
-
}
|
|
197
|
-
// Clean up tracking state
|
|
198
|
-
clearTimeout(entry.timer);
|
|
199
|
-
this._pendingUploads.delete(chunk.requestId);
|
|
200
|
-
this._totalPendingUploadBytes -= entry.byteCount;
|
|
201
|
-
if (this._requestHandler) {
|
|
202
|
-
const body = _concatChunks(entry.chunks);
|
|
203
|
-
// Zero intermediates — reduces the window for sensitive data in RAM
|
|
204
|
-
for (const c of entry.chunks)
|
|
205
|
-
c.fill(0);
|
|
206
|
-
entry.chunks.length = 0;
|
|
207
|
-
const { [ANTSEED_UPLOAD_CHUNK_HEADER]: _marker, ...cleanHeaders } = entry.headerReq.headers;
|
|
208
|
-
await this._requestHandler({ ...entry.headerReq, headers: cleanHeaders, body });
|
|
209
|
-
}
|
|
210
|
-
break;
|
|
211
|
-
}
|
|
212
|
-
case MessageType.HttpResponse: {
|
|
213
|
-
// Buyer side: response from seller (start frame for streams).
|
|
214
|
-
const response = decodeHttpResponse(frame.payload);
|
|
215
|
-
debugLog(`[ProxyMux] recv response reqId=${response.requestId.slice(0, 8)} status=${response.statusCode} bytes=${response.body?.length ?? 0} streamingStart=${response.headers[ANTSEED_STREAMING_RESPONSE_HEADER] === '1' ? "true" : "false"}`);
|
|
216
|
-
const handler = this._responseHandlers.get(response.requestId);
|
|
217
|
-
if (handler) {
|
|
218
|
-
const streamingStart = response.headers[ANTSEED_STREAMING_RESPONSE_HEADER] === '1';
|
|
219
|
-
if (!streamingStart) {
|
|
220
|
-
this._responseHandlers.delete(response.requestId);
|
|
221
|
-
this._chunkHandlers.delete(response.requestId);
|
|
222
|
-
}
|
|
223
|
-
handler(response, { streamingStart });
|
|
224
|
-
}
|
|
225
|
-
break;
|
|
226
|
-
}
|
|
227
|
-
case MessageType.HttpResponseChunk: {
|
|
228
|
-
// Buyer side: streaming chunk from seller
|
|
229
|
-
const chunk = decodeHttpResponseChunk(frame.payload);
|
|
230
|
-
debugLog(`[ProxyMux] recv response chunk reqId=${chunk.requestId.slice(0, 8)} bytes=${chunk.data.length} done=${chunk.done ? "true" : "false"}`);
|
|
231
|
-
const chunkHandler = this._chunkHandlers.get(chunk.requestId);
|
|
232
|
-
if (chunkHandler) {
|
|
233
|
-
chunkHandler(chunk);
|
|
234
|
-
}
|
|
235
|
-
break;
|
|
236
|
-
}
|
|
237
|
-
case MessageType.HttpResponseEnd: {
|
|
238
|
-
// Buyer side: final chunk (done=true) from seller
|
|
239
|
-
const endChunk = decodeHttpResponseChunk(frame.payload);
|
|
240
|
-
debugLog(`[ProxyMux] recv response end reqId=${endChunk.requestId.slice(0, 8)} bytes=${endChunk.data.length}`);
|
|
241
|
-
const endHandler = this._chunkHandlers.get(endChunk.requestId);
|
|
242
|
-
if (endHandler) {
|
|
243
|
-
endHandler(endChunk);
|
|
244
|
-
this._responseHandlers.delete(endChunk.requestId);
|
|
245
|
-
this._chunkHandlers.delete(endChunk.requestId);
|
|
246
|
-
}
|
|
247
|
-
break;
|
|
248
|
-
}
|
|
249
|
-
case MessageType.HttpResponseError: {
|
|
250
|
-
// Buyer side: error response from seller
|
|
251
|
-
const errorResponse = decodeHttpResponse(frame.payload);
|
|
252
|
-
const errorHandler = this._responseHandlers.get(errorResponse.requestId);
|
|
253
|
-
if (errorHandler) {
|
|
254
|
-
this._responseHandlers.delete(errorResponse.requestId);
|
|
255
|
-
this._chunkHandlers.delete(errorResponse.requestId);
|
|
256
|
-
errorHandler(errorResponse, { streamingStart: false });
|
|
257
|
-
}
|
|
258
|
-
break;
|
|
259
|
-
}
|
|
260
|
-
default:
|
|
261
|
-
// Unknown message type — ignore
|
|
262
|
-
break;
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
catch (err) {
|
|
266
|
-
const message = err instanceof Error ? err.message : String(err);
|
|
267
|
-
throw new Error(`Failed to handle proxy frame type ${frame.type}: ${message}`);
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
/** Number of in-flight requests (buyer side). */
|
|
271
|
-
activeRequestCount() {
|
|
272
|
-
return this._responseHandlers.size;
|
|
273
|
-
}
|
|
274
|
-
/** Number of in-progress chunked uploads buffered on the seller side. */
|
|
275
|
-
pendingUploadCount() {
|
|
276
|
-
return this._pendingUploads.size;
|
|
277
|
-
}
|
|
278
|
-
/** Total bytes currently buffered across all in-progress uploads. */
|
|
279
|
-
pendingUploadBytes() {
|
|
280
|
-
return this._totalPendingUploadBytes;
|
|
281
|
-
}
|
|
282
|
-
/**
|
|
283
|
-
* Seller side: abort and discard all buffered chunked-upload state.
|
|
284
|
-
* Call on connection close or session end to prevent memory leaks.
|
|
285
|
-
* Zeros all buffered chunk data before discarding.
|
|
286
|
-
*/
|
|
287
|
-
abortPendingUploads() {
|
|
288
|
-
for (const entry of this._pendingUploads.values()) {
|
|
289
|
-
clearTimeout(entry.timer);
|
|
290
|
-
for (const c of entry.chunks)
|
|
291
|
-
c.fill(0);
|
|
292
|
-
}
|
|
293
|
-
this._pendingUploads.clear();
|
|
294
|
-
this._totalPendingUploadBytes = 0;
|
|
295
|
-
}
|
|
296
|
-
/**
|
|
297
|
-
* Abort a single in-progress upload, zero its buffers, and send an error
|
|
298
|
-
* response to the buyer.
|
|
299
|
-
*/
|
|
300
|
-
_abortUpload(requestId, statusCode, reason) {
|
|
301
|
-
const entry = this._pendingUploads.get(requestId);
|
|
302
|
-
if (!entry)
|
|
303
|
-
return;
|
|
304
|
-
clearTimeout(entry.timer);
|
|
305
|
-
this._totalPendingUploadBytes -= entry.byteCount;
|
|
306
|
-
for (const c of entry.chunks)
|
|
307
|
-
c.fill(0);
|
|
308
|
-
this._pendingUploads.delete(requestId);
|
|
309
|
-
this.sendProxyResponse({
|
|
310
|
-
requestId,
|
|
311
|
-
statusCode,
|
|
312
|
-
headers: {
|
|
313
|
-
'content-type': 'text/plain',
|
|
314
|
-
...(statusCode === 413 ? { 'x-antseed-max-upload-body-bytes': String(this._maxUploadBodyBytes) } : {}),
|
|
315
|
-
},
|
|
316
|
-
body: new TextEncoder().encode(reason),
|
|
317
|
-
});
|
|
318
|
-
}
|
|
319
|
-
_safeSendFrame(frame, kind, requestId) {
|
|
320
|
-
try {
|
|
321
|
-
this._connection.send(frame);
|
|
322
|
-
}
|
|
323
|
-
catch (err) {
|
|
324
|
-
debugLog(`[ProxyMux] drop ${kind} reqId=${requestId.slice(0, 8)} because connection closed: ${err instanceof Error ? err.message : err}`);
|
|
325
|
-
}
|
|
326
|
-
}
|
|
327
|
-
_nextMessageId() {
|
|
328
|
-
const id = this._messageIdCounter;
|
|
329
|
-
this._messageIdCounter = (this._messageIdCounter + 1) & 0xFFFFFFFF;
|
|
330
|
-
return id;
|
|
331
|
-
}
|
|
332
|
-
}
|
|
333
|
-
function _concatChunks(chunks) {
|
|
334
|
-
if (chunks.length === 0)
|
|
335
|
-
return new Uint8Array(0);
|
|
336
|
-
if (chunks.length === 1)
|
|
337
|
-
return chunks[0].slice();
|
|
338
|
-
const total = chunks.reduce((n, c) => n + c.length, 0);
|
|
339
|
-
const out = new Uint8Array(total);
|
|
340
|
-
let offset = 0;
|
|
341
|
-
for (const c of chunks) {
|
|
342
|
-
out.set(c, offset);
|
|
343
|
-
offset += c.length;
|
|
344
|
-
}
|
|
345
|
-
return out;
|
|
346
|
-
}
|
|
1
|
+
// Moved to @antseed/buyer-core; re-exported for compatibility.
|
|
2
|
+
export * from '@antseed/buyer-core/proxy-mux';
|
|
347
3
|
//# sourceMappingURL=proxy-mux.js.map
|