@chaoschain/sdk 0.2.2 → 0.2.3

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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../node_modules/delayed-stream/lib/delayed_stream.js","../node_modules/combined-stream/lib/combined_stream.js","../node_modules/mime-db/db.json","../node_modules/mime-db/index.js","../node_modules/mime-types/index.js","../node_modules/asynckit/lib/defer.js","../node_modules/asynckit/lib/async.js","../node_modules/asynckit/lib/abort.js","../node_modules/asynckit/lib/iterate.js","../node_modules/asynckit/lib/state.js","../node_modules/asynckit/lib/terminator.js","../node_modules/asynckit/parallel.js","../node_modules/asynckit/serialOrdered.js","../node_modules/asynckit/serial.js","../node_modules/asynckit/index.js","../node_modules/es-object-atoms/index.js","../node_modules/es-errors/index.js","../node_modules/es-errors/eval.js","../node_modules/es-errors/range.js","../node_modules/es-errors/ref.js","../node_modules/es-errors/syntax.js","../node_modules/es-errors/type.js","../node_modules/es-errors/uri.js","../node_modules/math-intrinsics/abs.js","../node_modules/math-intrinsics/floor.js","../node_modules/math-intrinsics/max.js","../node_modules/math-intrinsics/min.js","../node_modules/math-intrinsics/pow.js","../node_modules/math-intrinsics/round.js","../node_modules/math-intrinsics/isNaN.js","../node_modules/math-intrinsics/sign.js","../node_modules/gopd/gOPD.js","../node_modules/gopd/index.js","../node_modules/es-define-property/index.js","../node_modules/has-symbols/shams.js","../node_modules/has-symbols/index.js","../node_modules/get-proto/Reflect.getPrototypeOf.js","../node_modules/get-proto/Object.getPrototypeOf.js","../node_modules/function-bind/implementation.js","../node_modules/function-bind/index.js","../node_modules/call-bind-apply-helpers/functionCall.js","../node_modules/call-bind-apply-helpers/functionApply.js","../node_modules/call-bind-apply-helpers/reflectApply.js","../node_modules/call-bind-apply-helpers/actualApply.js","../node_modules/call-bind-apply-helpers/index.js","../node_modules/dunder-proto/get.js","../node_modules/get-proto/index.js","../node_modules/hasown/index.js","../node_modules/get-intrinsic/index.js","../node_modules/has-tostringtag/shams.js","../node_modules/es-set-tostringtag/index.js","../node_modules/form-data/lib/populate.js","../node_modules/form-data/lib/form_data.js","../src/WalletManager.ts","../src/types.ts","../src/utils/contracts.ts","../src/ChaosAgent.ts","../src/exceptions.ts","../src/X402PaymentManager.ts","../src/PaymentManager.ts","../src/X402Server.ts","../src/GoogleAP2Integration.ts","../src/A2AX402Extension.ts","../src/ProcessIntegrity.ts","../src/StorageBackends.ts","../src/MandateManager.ts","../src/utils/networks.ts","../src/GatewayClient.ts","../src/StudioClient.ts","../src/ChaosChainSDK.ts","../src/providers/storage/IPFSLocal.ts","../src/StudioManager.ts","../src/evidence.ts","../src/index.ts"],"names":["stream","charset","path","extension","isNaN","concatty","slicy","Empty","undefined","doEval","stringToPath","getBaseIntrinsic","require_shams","http","fs","crypto","FormData","ethers","NetworkConfig","PaymentMethod","AgentRole","ValidationStatus","WorkflowType","WorkflowState","axios","path3","fs3","privateKey","crypto2","jose","crypto3","createHash","getContractAddresses","classification","bids"],"mappings":"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","file":"index.cjs","sourcesContent":["var Stream = require('stream').Stream;\nvar util = require('util');\n\nmodule.exports = DelayedStream;\nfunction DelayedStream() {\n this.source = null;\n this.dataSize = 0;\n this.maxDataSize = 1024 * 1024;\n this.pauseStream = true;\n\n this._maxDataSizeExceeded = false;\n this._released = false;\n this._bufferedEvents = [];\n}\nutil.inherits(DelayedStream, Stream);\n\nDelayedStream.create = function(source, options) {\n var delayedStream = new this();\n\n options = options || {};\n for (var option in options) {\n delayedStream[option] = options[option];\n }\n\n delayedStream.source = source;\n\n var realEmit = source.emit;\n source.emit = function() {\n delayedStream._handleEmit(arguments);\n return realEmit.apply(source, arguments);\n };\n\n source.on('error', function() {});\n if (delayedStream.pauseStream) {\n source.pause();\n }\n\n return delayedStream;\n};\n\nObject.defineProperty(DelayedStream.prototype, 'readable', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this.source.readable;\n }\n});\n\nDelayedStream.prototype.setEncoding = function() {\n return this.source.setEncoding.apply(this.source, arguments);\n};\n\nDelayedStream.prototype.resume = function() {\n if (!this._released) {\n this.release();\n }\n\n this.source.resume();\n};\n\nDelayedStream.prototype.pause = function() {\n this.source.pause();\n};\n\nDelayedStream.prototype.release = function() {\n this._released = true;\n\n this._bufferedEvents.forEach(function(args) {\n this.emit.apply(this, args);\n }.bind(this));\n this._bufferedEvents = [];\n};\n\nDelayedStream.prototype.pipe = function() {\n var r = Stream.prototype.pipe.apply(this, arguments);\n this.resume();\n return r;\n};\n\nDelayedStream.prototype._handleEmit = function(args) {\n if (this._released) {\n this.emit.apply(this, args);\n return;\n }\n\n if (args[0] === 'data') {\n this.dataSize += args[1].length;\n this._checkIfMaxDataSizeExceeded();\n }\n\n this._bufferedEvents.push(args);\n};\n\nDelayedStream.prototype._checkIfMaxDataSizeExceeded = function() {\n if (this._maxDataSizeExceeded) {\n return;\n }\n\n if (this.dataSize <= this.maxDataSize) {\n return;\n }\n\n this._maxDataSizeExceeded = true;\n var message =\n 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.'\n this.emit('error', new Error(message));\n};\n","var util = require('util');\nvar Stream = require('stream').Stream;\nvar DelayedStream = require('delayed-stream');\n\nmodule.exports = CombinedStream;\nfunction CombinedStream() {\n this.writable = false;\n this.readable = true;\n this.dataSize = 0;\n this.maxDataSize = 2 * 1024 * 1024;\n this.pauseStreams = true;\n\n this._released = false;\n this._streams = [];\n this._currentStream = null;\n this._insideLoop = false;\n this._pendingNext = false;\n}\nutil.inherits(CombinedStream, Stream);\n\nCombinedStream.create = function(options) {\n var combinedStream = new this();\n\n options = options || {};\n for (var option in options) {\n combinedStream[option] = options[option];\n }\n\n return combinedStream;\n};\n\nCombinedStream.isStreamLike = function(stream) {\n return (typeof stream !== 'function')\n && (typeof stream !== 'string')\n && (typeof stream !== 'boolean')\n && (typeof stream !== 'number')\n && (!Buffer.isBuffer(stream));\n};\n\nCombinedStream.prototype.append = function(stream) {\n var isStreamLike = CombinedStream.isStreamLike(stream);\n\n if (isStreamLike) {\n if (!(stream instanceof DelayedStream)) {\n var newStream = DelayedStream.create(stream, {\n maxDataSize: Infinity,\n pauseStream: this.pauseStreams,\n });\n stream.on('data', this._checkDataSize.bind(this));\n stream = newStream;\n }\n\n this._handleErrors(stream);\n\n if (this.pauseStreams) {\n stream.pause();\n }\n }\n\n this._streams.push(stream);\n return this;\n};\n\nCombinedStream.prototype.pipe = function(dest, options) {\n Stream.prototype.pipe.call(this, dest, options);\n this.resume();\n return dest;\n};\n\nCombinedStream.prototype._getNext = function() {\n this._currentStream = null;\n\n if (this._insideLoop) {\n this._pendingNext = true;\n return; // defer call\n }\n\n this._insideLoop = true;\n try {\n do {\n this._pendingNext = false;\n this._realGetNext();\n } while (this._pendingNext);\n } finally {\n this._insideLoop = false;\n }\n};\n\nCombinedStream.prototype._realGetNext = function() {\n var stream = this._streams.shift();\n\n\n if (typeof stream == 'undefined') {\n this.end();\n return;\n }\n\n if (typeof stream !== 'function') {\n this._pipeNext(stream);\n return;\n }\n\n var getStream = stream;\n getStream(function(stream) {\n var isStreamLike = CombinedStream.isStreamLike(stream);\n if (isStreamLike) {\n stream.on('data', this._checkDataSize.bind(this));\n this._handleErrors(stream);\n }\n\n this._pipeNext(stream);\n }.bind(this));\n};\n\nCombinedStream.prototype._pipeNext = function(stream) {\n this._currentStream = stream;\n\n var isStreamLike = CombinedStream.isStreamLike(stream);\n if (isStreamLike) {\n stream.on('end', this._getNext.bind(this));\n stream.pipe(this, {end: false});\n return;\n }\n\n var value = stream;\n this.write(value);\n this._getNext();\n};\n\nCombinedStream.prototype._handleErrors = function(stream) {\n var self = this;\n stream.on('error', function(err) {\n self._emitError(err);\n });\n};\n\nCombinedStream.prototype.write = function(data) {\n this.emit('data', data);\n};\n\nCombinedStream.prototype.pause = function() {\n if (!this.pauseStreams) {\n return;\n }\n\n if(this.pauseStreams && this._currentStream && typeof(this._currentStream.pause) == 'function') this._currentStream.pause();\n this.emit('pause');\n};\n\nCombinedStream.prototype.resume = function() {\n if (!this._released) {\n this._released = true;\n this.writable = true;\n this._getNext();\n }\n\n if(this.pauseStreams && this._currentStream && typeof(this._currentStream.resume) == 'function') this._currentStream.resume();\n this.emit('resume');\n};\n\nCombinedStream.prototype.end = function() {\n this._reset();\n this.emit('end');\n};\n\nCombinedStream.prototype.destroy = function() {\n this._reset();\n this.emit('close');\n};\n\nCombinedStream.prototype._reset = function() {\n this.writable = false;\n this._streams = [];\n this._currentStream = null;\n};\n\nCombinedStream.prototype._checkDataSize = function() {\n this._updateDataSize();\n if (this.dataSize <= this.maxDataSize) {\n return;\n }\n\n var message =\n 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.';\n this._emitError(new Error(message));\n};\n\nCombinedStream.prototype._updateDataSize = function() {\n this.dataSize = 0;\n\n var self = this;\n this._streams.forEach(function(stream) {\n if (!stream.dataSize) {\n return;\n }\n\n self.dataSize += stream.dataSize;\n });\n\n if (this._currentStream && this._currentStream.dataSize) {\n this.dataSize += this._currentStream.dataSize;\n }\n};\n\nCombinedStream.prototype._emitError = function(err) {\n this._reset();\n this.emit('error', err);\n};\n","{\n \"application/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"application/3gpdash-qoe-report+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/3gpp-ims+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/3gpphal+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/3gpphalforms+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/a2l\": {\n \"source\": \"iana\"\n },\n \"application/ace+cbor\": {\n \"source\": \"iana\"\n },\n \"application/activemessage\": {\n \"source\": \"iana\"\n },\n \"application/activity+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-costmap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-costmapfilter+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-directory+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointcost+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointcostparams+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointprop+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-endpointpropparams+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-error+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-networkmap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-networkmapfilter+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-updatestreamcontrol+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/alto-updatestreamparams+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/aml\": {\n \"source\": \"iana\"\n },\n \"application/andrew-inset\": {\n \"source\": \"iana\",\n \"extensions\": [\"ez\"]\n },\n \"application/applefile\": {\n \"source\": \"iana\"\n },\n \"application/applixware\": {\n \"source\": \"apache\",\n \"extensions\": [\"aw\"]\n },\n \"application/at+jwt\": {\n \"source\": \"iana\"\n },\n \"application/atf\": {\n \"source\": \"iana\"\n },\n \"application/atfx\": {\n \"source\": \"iana\"\n },\n \"application/atom+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atom\"]\n },\n \"application/atomcat+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atomcat\"]\n },\n \"application/atomdeleted+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atomdeleted\"]\n },\n \"application/atomicmail\": {\n \"source\": \"iana\"\n },\n \"application/atomsvc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"atomsvc\"]\n },\n \"application/atsc-dwd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dwd\"]\n },\n \"application/atsc-dynamic-event-message\": {\n \"source\": \"iana\"\n },\n \"application/atsc-held+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"held\"]\n },\n \"application/atsc-rdt+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/atsc-rsat+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rsat\"]\n },\n \"application/atxml\": {\n \"source\": \"iana\"\n },\n \"application/auth-policy+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/bacnet-xdd+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/batch-smtp\": {\n \"source\": \"iana\"\n },\n \"application/bdoc\": {\n \"compressible\": false,\n \"extensions\": [\"bdoc\"]\n },\n \"application/beep+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/calendar+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/calendar+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xcs\"]\n },\n \"application/call-completion\": {\n \"source\": \"iana\"\n },\n \"application/cals-1840\": {\n \"source\": \"iana\"\n },\n \"application/captive+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cbor\": {\n \"source\": \"iana\"\n },\n \"application/cbor-seq\": {\n \"source\": \"iana\"\n },\n \"application/cccex\": {\n \"source\": \"iana\"\n },\n \"application/ccmp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ccxml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ccxml\"]\n },\n \"application/cdfx+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"cdfx\"]\n },\n \"application/cdmi-capability\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmia\"]\n },\n \"application/cdmi-container\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmic\"]\n },\n \"application/cdmi-domain\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmid\"]\n },\n \"application/cdmi-object\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmio\"]\n },\n \"application/cdmi-queue\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdmiq\"]\n },\n \"application/cdni\": {\n \"source\": \"iana\"\n },\n \"application/cea\": {\n \"source\": \"iana\"\n },\n \"application/cea-2018+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cellml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cfw\": {\n \"source\": \"iana\"\n },\n \"application/city+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/clr\": {\n \"source\": \"iana\"\n },\n \"application/clue+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/clue_info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cms\": {\n \"source\": \"iana\"\n },\n \"application/cnrp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/coap-group+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/coap-payload\": {\n \"source\": \"iana\"\n },\n \"application/commonground\": {\n \"source\": \"iana\"\n },\n \"application/conference-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cose\": {\n \"source\": \"iana\"\n },\n \"application/cose-key\": {\n \"source\": \"iana\"\n },\n \"application/cose-key-set\": {\n \"source\": \"iana\"\n },\n \"application/cpl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"cpl\"]\n },\n \"application/csrattrs\": {\n \"source\": \"iana\"\n },\n \"application/csta+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cstadata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/csvm+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/cu-seeme\": {\n \"source\": \"apache\",\n \"extensions\": [\"cu\"]\n },\n \"application/cwt\": {\n \"source\": \"iana\"\n },\n \"application/cybercash\": {\n \"source\": \"iana\"\n },\n \"application/dart\": {\n \"compressible\": true\n },\n \"application/dash+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpd\"]\n },\n \"application/dash-patch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpp\"]\n },\n \"application/dashdelta\": {\n \"source\": \"iana\"\n },\n \"application/davmount+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"davmount\"]\n },\n \"application/dca-rft\": {\n \"source\": \"iana\"\n },\n \"application/dcd\": {\n \"source\": \"iana\"\n },\n \"application/dec-dx\": {\n \"source\": \"iana\"\n },\n \"application/dialog-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dicom\": {\n \"source\": \"iana\"\n },\n \"application/dicom+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dicom+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dii\": {\n \"source\": \"iana\"\n },\n \"application/dit\": {\n \"source\": \"iana\"\n },\n \"application/dns\": {\n \"source\": \"iana\"\n },\n \"application/dns+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dns-message\": {\n \"source\": \"iana\"\n },\n \"application/docbook+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"dbk\"]\n },\n \"application/dots+cbor\": {\n \"source\": \"iana\"\n },\n \"application/dskpp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/dssc+der\": {\n \"source\": \"iana\",\n \"extensions\": [\"dssc\"]\n },\n \"application/dssc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xdssc\"]\n },\n \"application/dvcs\": {\n \"source\": \"iana\"\n },\n \"application/ecmascript\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"es\",\"ecma\"]\n },\n \"application/edi-consent\": {\n \"source\": \"iana\"\n },\n \"application/edi-x12\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/edifact\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/efi\": {\n \"source\": \"iana\"\n },\n \"application/elm+json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/elm+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.cap+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/emergencycalldata.comment+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.control+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.deviceinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.ecall.msd\": {\n \"source\": \"iana\"\n },\n \"application/emergencycalldata.providerinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.serviceinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.subscriberinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emergencycalldata.veds+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/emma+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"emma\"]\n },\n \"application/emotionml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"emotionml\"]\n },\n \"application/encaprtp\": {\n \"source\": \"iana\"\n },\n \"application/epp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/epub+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"epub\"]\n },\n \"application/eshop\": {\n \"source\": \"iana\"\n },\n \"application/exi\": {\n \"source\": \"iana\",\n \"extensions\": [\"exi\"]\n },\n \"application/expect-ct-report+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/express\": {\n \"source\": \"iana\",\n \"extensions\": [\"exp\"]\n },\n \"application/fastinfoset\": {\n \"source\": \"iana\"\n },\n \"application/fastsoap\": {\n \"source\": \"iana\"\n },\n \"application/fdt+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"fdt\"]\n },\n \"application/fhir+json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/fhir+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/fido.trusted-apps+json\": {\n \"compressible\": true\n },\n \"application/fits\": {\n \"source\": \"iana\"\n },\n \"application/flexfec\": {\n \"source\": \"iana\"\n },\n \"application/font-sfnt\": {\n \"source\": \"iana\"\n },\n \"application/font-tdpfr\": {\n \"source\": \"iana\",\n \"extensions\": [\"pfr\"]\n },\n \"application/font-woff\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/framework-attributes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/geo+json\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"geojson\"]\n },\n \"application/geo+json-seq\": {\n \"source\": \"iana\"\n },\n \"application/geopackage+sqlite3\": {\n \"source\": \"iana\"\n },\n \"application/geoxacml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/gltf-buffer\": {\n \"source\": \"iana\"\n },\n \"application/gml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"gml\"]\n },\n \"application/gpx+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"gpx\"]\n },\n \"application/gxf\": {\n \"source\": \"apache\",\n \"extensions\": [\"gxf\"]\n },\n \"application/gzip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"gz\"]\n },\n \"application/h224\": {\n \"source\": \"iana\"\n },\n \"application/held+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/hjson\": {\n \"extensions\": [\"hjson\"]\n },\n \"application/http\": {\n \"source\": \"iana\"\n },\n \"application/hyperstudio\": {\n \"source\": \"iana\",\n \"extensions\": [\"stk\"]\n },\n \"application/ibe-key-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ibe-pkg-reply+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ibe-pp-data\": {\n \"source\": \"iana\"\n },\n \"application/iges\": {\n \"source\": \"iana\"\n },\n \"application/im-iscomposing+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/index\": {\n \"source\": \"iana\"\n },\n \"application/index.cmd\": {\n \"source\": \"iana\"\n },\n \"application/index.obj\": {\n \"source\": \"iana\"\n },\n \"application/index.response\": {\n \"source\": \"iana\"\n },\n \"application/index.vnd\": {\n \"source\": \"iana\"\n },\n \"application/inkml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ink\",\"inkml\"]\n },\n \"application/iotp\": {\n \"source\": \"iana\"\n },\n \"application/ipfix\": {\n \"source\": \"iana\",\n \"extensions\": [\"ipfix\"]\n },\n \"application/ipp\": {\n \"source\": \"iana\"\n },\n \"application/isup\": {\n \"source\": \"iana\"\n },\n \"application/its+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"its\"]\n },\n \"application/java-archive\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"jar\",\"war\",\"ear\"]\n },\n \"application/java-serialized-object\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"ser\"]\n },\n \"application/java-vm\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"class\"]\n },\n \"application/javascript\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"js\",\"mjs\"]\n },\n \"application/jf2feed+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jose\": {\n \"source\": \"iana\"\n },\n \"application/jose+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jrd+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jscalendar+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"json\",\"map\"]\n },\n \"application/json-patch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/json-seq\": {\n \"source\": \"iana\"\n },\n \"application/json5\": {\n \"extensions\": [\"json5\"]\n },\n \"application/jsonml+json\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"jsonml\"]\n },\n \"application/jwk+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jwk-set+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/jwt\": {\n \"source\": \"iana\"\n },\n \"application/kpml-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/kpml-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/ld+json\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"jsonld\"]\n },\n \"application/lgr+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lgr\"]\n },\n \"application/link-format\": {\n \"source\": \"iana\"\n },\n \"application/load-control+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/lost+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lostxml\"]\n },\n \"application/lostsync+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/lpf+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/lxf\": {\n \"source\": \"iana\"\n },\n \"application/mac-binhex40\": {\n \"source\": \"iana\",\n \"extensions\": [\"hqx\"]\n },\n \"application/mac-compactpro\": {\n \"source\": \"apache\",\n \"extensions\": [\"cpt\"]\n },\n \"application/macwriteii\": {\n \"source\": \"iana\"\n },\n \"application/mads+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mads\"]\n },\n \"application/manifest+json\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"webmanifest\"]\n },\n \"application/marc\": {\n \"source\": \"iana\",\n \"extensions\": [\"mrc\"]\n },\n \"application/marcxml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mrcx\"]\n },\n \"application/mathematica\": {\n \"source\": \"iana\",\n \"extensions\": [\"ma\",\"nb\",\"mb\"]\n },\n \"application/mathml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mathml\"]\n },\n \"application/mathml-content+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mathml-presentation+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-associated-procedure-description+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-deregister+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-envelope+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-msk+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-msk-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-protection-description+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-reception-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-register+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-register-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-schedule+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbms-user-service-description+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mbox\": {\n \"source\": \"iana\",\n \"extensions\": [\"mbox\"]\n },\n \"application/media-policy-dataset+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpf\"]\n },\n \"application/media_control+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mediaservercontrol+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mscml\"]\n },\n \"application/merge-patch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/metalink+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"metalink\"]\n },\n \"application/metalink4+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"meta4\"]\n },\n \"application/mets+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mets\"]\n },\n \"application/mf4\": {\n \"source\": \"iana\"\n },\n \"application/mikey\": {\n \"source\": \"iana\"\n },\n \"application/mipc\": {\n \"source\": \"iana\"\n },\n \"application/missing-blocks+cbor-seq\": {\n \"source\": \"iana\"\n },\n \"application/mmt-aei+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"maei\"]\n },\n \"application/mmt-usd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"musd\"]\n },\n \"application/mods+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mods\"]\n },\n \"application/moss-keys\": {\n \"source\": \"iana\"\n },\n \"application/moss-signature\": {\n \"source\": \"iana\"\n },\n \"application/mosskey-data\": {\n \"source\": \"iana\"\n },\n \"application/mosskey-request\": {\n \"source\": \"iana\"\n },\n \"application/mp21\": {\n \"source\": \"iana\",\n \"extensions\": [\"m21\",\"mp21\"]\n },\n \"application/mp4\": {\n \"source\": \"iana\",\n \"extensions\": [\"mp4s\",\"m4p\"]\n },\n \"application/mpeg4-generic\": {\n \"source\": \"iana\"\n },\n \"application/mpeg4-iod\": {\n \"source\": \"iana\"\n },\n \"application/mpeg4-iod-xmt\": {\n \"source\": \"iana\"\n },\n \"application/mrb-consumer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/mrb-publish+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/msc-ivr+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/msc-mixer+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/msword\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"doc\",\"dot\"]\n },\n \"application/mud+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/multipart-core\": {\n \"source\": \"iana\"\n },\n \"application/mxf\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxf\"]\n },\n \"application/n-quads\": {\n \"source\": \"iana\",\n \"extensions\": [\"nq\"]\n },\n \"application/n-triples\": {\n \"source\": \"iana\",\n \"extensions\": [\"nt\"]\n },\n \"application/nasdata\": {\n \"source\": \"iana\"\n },\n \"application/news-checkgroups\": {\n \"source\": \"iana\",\n \"charset\": \"US-ASCII\"\n },\n \"application/news-groupinfo\": {\n \"source\": \"iana\",\n \"charset\": \"US-ASCII\"\n },\n \"application/news-transmission\": {\n \"source\": \"iana\"\n },\n \"application/nlsml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/node\": {\n \"source\": \"iana\",\n \"extensions\": [\"cjs\"]\n },\n \"application/nss\": {\n \"source\": \"iana\"\n },\n \"application/oauth-authz-req+jwt\": {\n \"source\": \"iana\"\n },\n \"application/oblivious-dns-message\": {\n \"source\": \"iana\"\n },\n \"application/ocsp-request\": {\n \"source\": \"iana\"\n },\n \"application/ocsp-response\": {\n \"source\": \"iana\"\n },\n \"application/octet-stream\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"bin\",\"dms\",\"lrf\",\"mar\",\"so\",\"dist\",\"distz\",\"pkg\",\"bpk\",\"dump\",\"elc\",\"deploy\",\"exe\",\"dll\",\"deb\",\"dmg\",\"iso\",\"img\",\"msi\",\"msp\",\"msm\",\"buffer\"]\n },\n \"application/oda\": {\n \"source\": \"iana\",\n \"extensions\": [\"oda\"]\n },\n \"application/odm+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/odx\": {\n \"source\": \"iana\"\n },\n \"application/oebps-package+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"opf\"]\n },\n \"application/ogg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ogx\"]\n },\n \"application/omdoc+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"omdoc\"]\n },\n \"application/onenote\": {\n \"source\": \"apache\",\n \"extensions\": [\"onetoc\",\"onetoc2\",\"onetmp\",\"onepkg\"]\n },\n \"application/opc-nodeset+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/oscore\": {\n \"source\": \"iana\"\n },\n \"application/oxps\": {\n \"source\": \"iana\",\n \"extensions\": [\"oxps\"]\n },\n \"application/p21\": {\n \"source\": \"iana\"\n },\n \"application/p21+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/p2p-overlay+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"relo\"]\n },\n \"application/parityfec\": {\n \"source\": \"iana\"\n },\n \"application/passport\": {\n \"source\": \"iana\"\n },\n \"application/patch-ops-error+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xer\"]\n },\n \"application/pdf\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"pdf\"]\n },\n \"application/pdx\": {\n \"source\": \"iana\"\n },\n \"application/pem-certificate-chain\": {\n \"source\": \"iana\"\n },\n \"application/pgp-encrypted\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"pgp\"]\n },\n \"application/pgp-keys\": {\n \"source\": \"iana\",\n \"extensions\": [\"asc\"]\n },\n \"application/pgp-signature\": {\n \"source\": \"iana\",\n \"extensions\": [\"asc\",\"sig\"]\n },\n \"application/pics-rules\": {\n \"source\": \"apache\",\n \"extensions\": [\"prf\"]\n },\n \"application/pidf+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/pidf-diff+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/pkcs10\": {\n \"source\": \"iana\",\n \"extensions\": [\"p10\"]\n },\n \"application/pkcs12\": {\n \"source\": \"iana\"\n },\n \"application/pkcs7-mime\": {\n \"source\": \"iana\",\n \"extensions\": [\"p7m\",\"p7c\"]\n },\n \"application/pkcs7-signature\": {\n \"source\": \"iana\",\n \"extensions\": [\"p7s\"]\n },\n \"application/pkcs8\": {\n \"source\": \"iana\",\n \"extensions\": [\"p8\"]\n },\n \"application/pkcs8-encrypted\": {\n \"source\": \"iana\"\n },\n \"application/pkix-attr-cert\": {\n \"source\": \"iana\",\n \"extensions\": [\"ac\"]\n },\n \"application/pkix-cert\": {\n \"source\": \"iana\",\n \"extensions\": [\"cer\"]\n },\n \"application/pkix-crl\": {\n \"source\": \"iana\",\n \"extensions\": [\"crl\"]\n },\n \"application/pkix-pkipath\": {\n \"source\": \"iana\",\n \"extensions\": [\"pkipath\"]\n },\n \"application/pkixcmp\": {\n \"source\": \"iana\",\n \"extensions\": [\"pki\"]\n },\n \"application/pls+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"pls\"]\n },\n \"application/poc-settings+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/postscript\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ai\",\"eps\",\"ps\"]\n },\n \"application/ppsp-tracker+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/problem+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/problem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/provenance+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"provx\"]\n },\n \"application/prs.alvestrand.titrax-sheet\": {\n \"source\": \"iana\"\n },\n \"application/prs.cww\": {\n \"source\": \"iana\",\n \"extensions\": [\"cww\"]\n },\n \"application/prs.cyn\": {\n \"source\": \"iana\",\n \"charset\": \"7-BIT\"\n },\n \"application/prs.hpub+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/prs.nprend\": {\n \"source\": \"iana\"\n },\n \"application/prs.plucker\": {\n \"source\": \"iana\"\n },\n \"application/prs.rdf-xml-crypt\": {\n \"source\": \"iana\"\n },\n \"application/prs.xsf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/pskc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"pskcxml\"]\n },\n \"application/pvd+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/qsig\": {\n \"source\": \"iana\"\n },\n \"application/raml+yaml\": {\n \"compressible\": true,\n \"extensions\": [\"raml\"]\n },\n \"application/raptorfec\": {\n \"source\": \"iana\"\n },\n \"application/rdap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/rdf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rdf\",\"owl\"]\n },\n \"application/reginfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rif\"]\n },\n \"application/relax-ng-compact-syntax\": {\n \"source\": \"iana\",\n \"extensions\": [\"rnc\"]\n },\n \"application/remote-printing\": {\n \"source\": \"iana\"\n },\n \"application/reputon+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/resource-lists+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rl\"]\n },\n \"application/resource-lists-diff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rld\"]\n },\n \"application/rfc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/riscos\": {\n \"source\": \"iana\"\n },\n \"application/rlmi+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/rls-services+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rs\"]\n },\n \"application/route-apd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rapd\"]\n },\n \"application/route-s-tsid+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sls\"]\n },\n \"application/route-usd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rusd\"]\n },\n \"application/rpki-ghostbusters\": {\n \"source\": \"iana\",\n \"extensions\": [\"gbr\"]\n },\n \"application/rpki-manifest\": {\n \"source\": \"iana\",\n \"extensions\": [\"mft\"]\n },\n \"application/rpki-publication\": {\n \"source\": \"iana\"\n },\n \"application/rpki-roa\": {\n \"source\": \"iana\",\n \"extensions\": [\"roa\"]\n },\n \"application/rpki-updown\": {\n \"source\": \"iana\"\n },\n \"application/rsd+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"rsd\"]\n },\n \"application/rss+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"rss\"]\n },\n \"application/rtf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rtf\"]\n },\n \"application/rtploopback\": {\n \"source\": \"iana\"\n },\n \"application/rtx\": {\n \"source\": \"iana\"\n },\n \"application/samlassertion+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/samlmetadata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sarif+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sarif-external-properties+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sbe\": {\n \"source\": \"iana\"\n },\n \"application/sbml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sbml\"]\n },\n \"application/scaip+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/scim+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/scvp-cv-request\": {\n \"source\": \"iana\",\n \"extensions\": [\"scq\"]\n },\n \"application/scvp-cv-response\": {\n \"source\": \"iana\",\n \"extensions\": [\"scs\"]\n },\n \"application/scvp-vp-request\": {\n \"source\": \"iana\",\n \"extensions\": [\"spq\"]\n },\n \"application/scvp-vp-response\": {\n \"source\": \"iana\",\n \"extensions\": [\"spp\"]\n },\n \"application/sdp\": {\n \"source\": \"iana\",\n \"extensions\": [\"sdp\"]\n },\n \"application/secevent+jwt\": {\n \"source\": \"iana\"\n },\n \"application/senml+cbor\": {\n \"source\": \"iana\"\n },\n \"application/senml+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/senml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"senmlx\"]\n },\n \"application/senml-etch+cbor\": {\n \"source\": \"iana\"\n },\n \"application/senml-etch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/senml-exi\": {\n \"source\": \"iana\"\n },\n \"application/sensml+cbor\": {\n \"source\": \"iana\"\n },\n \"application/sensml+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sensml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sensmlx\"]\n },\n \"application/sensml-exi\": {\n \"source\": \"iana\"\n },\n \"application/sep+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sep-exi\": {\n \"source\": \"iana\"\n },\n \"application/session-info\": {\n \"source\": \"iana\"\n },\n \"application/set-payment\": {\n \"source\": \"iana\"\n },\n \"application/set-payment-initiation\": {\n \"source\": \"iana\",\n \"extensions\": [\"setpay\"]\n },\n \"application/set-registration\": {\n \"source\": \"iana\"\n },\n \"application/set-registration-initiation\": {\n \"source\": \"iana\",\n \"extensions\": [\"setreg\"]\n },\n \"application/sgml\": {\n \"source\": \"iana\"\n },\n \"application/sgml-open-catalog\": {\n \"source\": \"iana\"\n },\n \"application/shf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"shf\"]\n },\n \"application/sieve\": {\n \"source\": \"iana\",\n \"extensions\": [\"siv\",\"sieve\"]\n },\n \"application/simple-filter+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/simple-message-summary\": {\n \"source\": \"iana\"\n },\n \"application/simplesymbolcontainer\": {\n \"source\": \"iana\"\n },\n \"application/sipc\": {\n \"source\": \"iana\"\n },\n \"application/slate\": {\n \"source\": \"iana\"\n },\n \"application/smil\": {\n \"source\": \"iana\"\n },\n \"application/smil+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"smi\",\"smil\"]\n },\n \"application/smpte336m\": {\n \"source\": \"iana\"\n },\n \"application/soap+fastinfoset\": {\n \"source\": \"iana\"\n },\n \"application/soap+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sparql-query\": {\n \"source\": \"iana\",\n \"extensions\": [\"rq\"]\n },\n \"application/sparql-results+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"srx\"]\n },\n \"application/spdx+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/spirits-event+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/sql\": {\n \"source\": \"iana\"\n },\n \"application/srgs\": {\n \"source\": \"iana\",\n \"extensions\": [\"gram\"]\n },\n \"application/srgs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"grxml\"]\n },\n \"application/sru+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sru\"]\n },\n \"application/ssdl+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"ssdl\"]\n },\n \"application/ssml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ssml\"]\n },\n \"application/stix+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/swid+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"swidtag\"]\n },\n \"application/tamp-apex-update\": {\n \"source\": \"iana\"\n },\n \"application/tamp-apex-update-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tamp-community-update\": {\n \"source\": \"iana\"\n },\n \"application/tamp-community-update-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tamp-error\": {\n \"source\": \"iana\"\n },\n \"application/tamp-sequence-adjust\": {\n \"source\": \"iana\"\n },\n \"application/tamp-sequence-adjust-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tamp-status-query\": {\n \"source\": \"iana\"\n },\n \"application/tamp-status-response\": {\n \"source\": \"iana\"\n },\n \"application/tamp-update\": {\n \"source\": \"iana\"\n },\n \"application/tamp-update-confirm\": {\n \"source\": \"iana\"\n },\n \"application/tar\": {\n \"compressible\": true\n },\n \"application/taxii+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/td+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/tei+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"tei\",\"teicorpus\"]\n },\n \"application/tetra_isi\": {\n \"source\": \"iana\"\n },\n \"application/thraud+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"tfi\"]\n },\n \"application/timestamp-query\": {\n \"source\": \"iana\"\n },\n \"application/timestamp-reply\": {\n \"source\": \"iana\"\n },\n \"application/timestamped-data\": {\n \"source\": \"iana\",\n \"extensions\": [\"tsd\"]\n },\n \"application/tlsrpt+gzip\": {\n \"source\": \"iana\"\n },\n \"application/tlsrpt+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/tnauthlist\": {\n \"source\": \"iana\"\n },\n \"application/token-introspection+jwt\": {\n \"source\": \"iana\"\n },\n \"application/toml\": {\n \"compressible\": true,\n \"extensions\": [\"toml\"]\n },\n \"application/trickle-ice-sdpfrag\": {\n \"source\": \"iana\"\n },\n \"application/trig\": {\n \"source\": \"iana\",\n \"extensions\": [\"trig\"]\n },\n \"application/ttml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ttml\"]\n },\n \"application/tve-trigger\": {\n \"source\": \"iana\"\n },\n \"application/tzif\": {\n \"source\": \"iana\"\n },\n \"application/tzif-leap\": {\n \"source\": \"iana\"\n },\n \"application/ubjson\": {\n \"compressible\": false,\n \"extensions\": [\"ubj\"]\n },\n \"application/ulpfec\": {\n \"source\": \"iana\"\n },\n \"application/urc-grpsheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/urc-ressheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rsheet\"]\n },\n \"application/urc-targetdesc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"td\"]\n },\n \"application/urc-uisocketdesc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vcard+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vcard+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vemmi\": {\n \"source\": \"iana\"\n },\n \"application/vividence.scriptfile\": {\n \"source\": \"apache\"\n },\n \"application/vnd.1000minds.decision-model+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"1km\"]\n },\n \"application/vnd.3gpp-prose+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp-prose-pc3ch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp-v2x-local-service-information\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.5gnas\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.access-transfer-events+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.bsf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.gmop+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.gtpc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.interworking-data\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.lpp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mc-signalling-ear\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mcdata-affiliation-command+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-payload\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mcdata-service-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-signalling\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.mcdata-ue-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcdata-user-profile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-affiliation-command+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-floor-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-location-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-mbms-usage-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-service-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-signed+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-ue-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-ue-init-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcptt-user-profile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-affiliation-command+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-affiliation-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-location-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-mbms-usage-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-service-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-transmission-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-ue-config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mcvideo-user-profile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.mid-call+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.ngap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.pfcp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.pic-bw-large\": {\n \"source\": \"iana\",\n \"extensions\": [\"plb\"]\n },\n \"application/vnd.3gpp.pic-bw-small\": {\n \"source\": \"iana\",\n \"extensions\": [\"psb\"]\n },\n \"application/vnd.3gpp.pic-bw-var\": {\n \"source\": \"iana\",\n \"extensions\": [\"pvb\"]\n },\n \"application/vnd.3gpp.s1ap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.sms\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp.sms+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.srvcc-ext+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.srvcc-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.state-and-event-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp.ussd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp2.bcmcsinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.3gpp2.sms\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3gpp2.tcap\": {\n \"source\": \"iana\",\n \"extensions\": [\"tcap\"]\n },\n \"application/vnd.3lightssoftware.imagescal\": {\n \"source\": \"iana\"\n },\n \"application/vnd.3m.post-it-notes\": {\n \"source\": \"iana\",\n \"extensions\": [\"pwn\"]\n },\n \"application/vnd.accpac.simply.aso\": {\n \"source\": \"iana\",\n \"extensions\": [\"aso\"]\n },\n \"application/vnd.accpac.simply.imp\": {\n \"source\": \"iana\",\n \"extensions\": [\"imp\"]\n },\n \"application/vnd.acucobol\": {\n \"source\": \"iana\",\n \"extensions\": [\"acu\"]\n },\n \"application/vnd.acucorp\": {\n \"source\": \"iana\",\n \"extensions\": [\"atc\",\"acutc\"]\n },\n \"application/vnd.adobe.air-application-installer-package+zip\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"air\"]\n },\n \"application/vnd.adobe.flash.movie\": {\n \"source\": \"iana\"\n },\n \"application/vnd.adobe.formscentral.fcdt\": {\n \"source\": \"iana\",\n \"extensions\": [\"fcdt\"]\n },\n \"application/vnd.adobe.fxp\": {\n \"source\": \"iana\",\n \"extensions\": [\"fxp\",\"fxpl\"]\n },\n \"application/vnd.adobe.partial-upload\": {\n \"source\": \"iana\"\n },\n \"application/vnd.adobe.xdp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xdp\"]\n },\n \"application/vnd.adobe.xfdf\": {\n \"source\": \"iana\",\n \"extensions\": [\"xfdf\"]\n },\n \"application/vnd.aether.imp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.afplinedata\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.afplinedata-pagedef\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.cmoca-cmresource\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.foca-charset\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.foca-codedfont\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.foca-codepage\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-cmtable\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-formdef\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-mediummap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-objectcontainer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-overlay\": {\n \"source\": \"iana\"\n },\n \"application/vnd.afpc.modca-pagesegment\": {\n \"source\": \"iana\"\n },\n \"application/vnd.age\": {\n \"source\": \"iana\",\n \"extensions\": [\"age\"]\n },\n \"application/vnd.ah-barcode\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ahead.space\": {\n \"source\": \"iana\",\n \"extensions\": [\"ahead\"]\n },\n \"application/vnd.airzip.filesecure.azf\": {\n \"source\": \"iana\",\n \"extensions\": [\"azf\"]\n },\n \"application/vnd.airzip.filesecure.azs\": {\n \"source\": \"iana\",\n \"extensions\": [\"azs\"]\n },\n \"application/vnd.amadeus+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.amazon.ebook\": {\n \"source\": \"apache\",\n \"extensions\": [\"azw\"]\n },\n \"application/vnd.amazon.mobi8-ebook\": {\n \"source\": \"iana\"\n },\n \"application/vnd.americandynamics.acc\": {\n \"source\": \"iana\",\n \"extensions\": [\"acc\"]\n },\n \"application/vnd.amiga.ami\": {\n \"source\": \"iana\",\n \"extensions\": [\"ami\"]\n },\n \"application/vnd.amundsen.maze+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.android.ota\": {\n \"source\": \"iana\"\n },\n \"application/vnd.android.package-archive\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"apk\"]\n },\n \"application/vnd.anki\": {\n \"source\": \"iana\"\n },\n \"application/vnd.anser-web-certificate-issue-initiation\": {\n \"source\": \"iana\",\n \"extensions\": [\"cii\"]\n },\n \"application/vnd.anser-web-funds-transfer-initiation\": {\n \"source\": \"apache\",\n \"extensions\": [\"fti\"]\n },\n \"application/vnd.antix.game-component\": {\n \"source\": \"iana\",\n \"extensions\": [\"atx\"]\n },\n \"application/vnd.apache.arrow.file\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.arrow.stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.thrift.binary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.thrift.compact\": {\n \"source\": \"iana\"\n },\n \"application/vnd.apache.thrift.json\": {\n \"source\": \"iana\"\n },\n \"application/vnd.api+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.aplextor.warrp+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.apothekende.reservation+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.apple.installer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mpkg\"]\n },\n \"application/vnd.apple.keynote\": {\n \"source\": \"iana\",\n \"extensions\": [\"key\"]\n },\n \"application/vnd.apple.mpegurl\": {\n \"source\": \"iana\",\n \"extensions\": [\"m3u8\"]\n },\n \"application/vnd.apple.numbers\": {\n \"source\": \"iana\",\n \"extensions\": [\"numbers\"]\n },\n \"application/vnd.apple.pages\": {\n \"source\": \"iana\",\n \"extensions\": [\"pages\"]\n },\n \"application/vnd.apple.pkpass\": {\n \"compressible\": false,\n \"extensions\": [\"pkpass\"]\n },\n \"application/vnd.arastra.swi\": {\n \"source\": \"iana\"\n },\n \"application/vnd.aristanetworks.swi\": {\n \"source\": \"iana\",\n \"extensions\": [\"swi\"]\n },\n \"application/vnd.artisan+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.artsquare\": {\n \"source\": \"iana\"\n },\n \"application/vnd.astraea-software.iota\": {\n \"source\": \"iana\",\n \"extensions\": [\"iota\"]\n },\n \"application/vnd.audiograph\": {\n \"source\": \"iana\",\n \"extensions\": [\"aep\"]\n },\n \"application/vnd.autopackage\": {\n \"source\": \"iana\"\n },\n \"application/vnd.avalon+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.avistar+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.balsamiq.bmml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"bmml\"]\n },\n \"application/vnd.balsamiq.bmpr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.banana-accounting\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bbf.usp.error\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bbf.usp.msg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bbf.usp.msg+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.bekitzur-stech+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.bint.med-content\": {\n \"source\": \"iana\"\n },\n \"application/vnd.biopax.rdf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.blink-idb-value-wrapper\": {\n \"source\": \"iana\"\n },\n \"application/vnd.blueice.multipass\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpm\"]\n },\n \"application/vnd.bluetooth.ep.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bluetooth.le.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bmi\": {\n \"source\": \"iana\",\n \"extensions\": [\"bmi\"]\n },\n \"application/vnd.bpf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.bpf3\": {\n \"source\": \"iana\"\n },\n \"application/vnd.businessobjects\": {\n \"source\": \"iana\",\n \"extensions\": [\"rep\"]\n },\n \"application/vnd.byu.uapi+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cab-jscript\": {\n \"source\": \"iana\"\n },\n \"application/vnd.canon-cpdl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.canon-lips\": {\n \"source\": \"iana\"\n },\n \"application/vnd.capasystems-pg+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cendio.thinlinc.clientconf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.century-systems.tcp_stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.chemdraw+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"cdxml\"]\n },\n \"application/vnd.chess-pgn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.chipnuts.karaoke-mmd\": {\n \"source\": \"iana\",\n \"extensions\": [\"mmd\"]\n },\n \"application/vnd.ciedi\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cinderella\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdy\"]\n },\n \"application/vnd.cirpack.isdn-ext\": {\n \"source\": \"iana\"\n },\n \"application/vnd.citationstyles.style+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"csl\"]\n },\n \"application/vnd.claymore\": {\n \"source\": \"iana\",\n \"extensions\": [\"cla\"]\n },\n \"application/vnd.cloanto.rp9\": {\n \"source\": \"iana\",\n \"extensions\": [\"rp9\"]\n },\n \"application/vnd.clonk.c4group\": {\n \"source\": \"iana\",\n \"extensions\": [\"c4g\",\"c4d\",\"c4f\",\"c4p\",\"c4u\"]\n },\n \"application/vnd.cluetrust.cartomobile-config\": {\n \"source\": \"iana\",\n \"extensions\": [\"c11amc\"]\n },\n \"application/vnd.cluetrust.cartomobile-config-pkg\": {\n \"source\": \"iana\",\n \"extensions\": [\"c11amz\"]\n },\n \"application/vnd.coffeescript\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.document\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.document-template\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.presentation\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.presentation-template\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.spreadsheet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collabio.xodocuments.spreadsheet-template\": {\n \"source\": \"iana\"\n },\n \"application/vnd.collection+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.collection.doc+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.collection.next+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.comicbook+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.comicbook-rar\": {\n \"source\": \"iana\"\n },\n \"application/vnd.commerce-battelle\": {\n \"source\": \"iana\"\n },\n \"application/vnd.commonspace\": {\n \"source\": \"iana\",\n \"extensions\": [\"csp\"]\n },\n \"application/vnd.contact.cmsg\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdbcmsg\"]\n },\n \"application/vnd.coreos.ignition+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cosmocaller\": {\n \"source\": \"iana\",\n \"extensions\": [\"cmc\"]\n },\n \"application/vnd.crick.clicker\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkx\"]\n },\n \"application/vnd.crick.clicker.keyboard\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkk\"]\n },\n \"application/vnd.crick.clicker.palette\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkp\"]\n },\n \"application/vnd.crick.clicker.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkt\"]\n },\n \"application/vnd.crick.clicker.wordbank\": {\n \"source\": \"iana\",\n \"extensions\": [\"clkw\"]\n },\n \"application/vnd.criticaltools.wbs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wbs\"]\n },\n \"application/vnd.cryptii.pipe+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.crypto-shade-file\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cryptomator.encrypted\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cryptomator.vault\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ctc-posml\": {\n \"source\": \"iana\",\n \"extensions\": [\"pml\"]\n },\n \"application/vnd.ctct.ws+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cups-pdf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cups-postscript\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cups-ppd\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppd\"]\n },\n \"application/vnd.cups-raster\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cups-raw\": {\n \"source\": \"iana\"\n },\n \"application/vnd.curl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.curl.car\": {\n \"source\": \"apache\",\n \"extensions\": [\"car\"]\n },\n \"application/vnd.curl.pcurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"pcurl\"]\n },\n \"application/vnd.cyan.dean.root+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cybank\": {\n \"source\": \"iana\"\n },\n \"application/vnd.cyclonedx+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.cyclonedx+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.d2l.coursepackage1p0+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.d3m-dataset\": {\n \"source\": \"iana\"\n },\n \"application/vnd.d3m-problem\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dart\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dart\"]\n },\n \"application/vnd.data-vision.rdz\": {\n \"source\": \"iana\",\n \"extensions\": [\"rdz\"]\n },\n \"application/vnd.datapackage+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dataresource+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dbf\": {\n \"source\": \"iana\",\n \"extensions\": [\"dbf\"]\n },\n \"application/vnd.debian.binary-package\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dece.data\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvf\",\"uvvf\",\"uvd\",\"uvvd\"]\n },\n \"application/vnd.dece.ttml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"uvt\",\"uvvt\"]\n },\n \"application/vnd.dece.unspecified\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvx\",\"uvvx\"]\n },\n \"application/vnd.dece.zip\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvz\",\"uvvz\"]\n },\n \"application/vnd.denovo.fcselayout-link\": {\n \"source\": \"iana\",\n \"extensions\": [\"fe_launch\"]\n },\n \"application/vnd.desmume.movie\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dir-bi.plate-dl-nosuffix\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dm.delegation+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dna\": {\n \"source\": \"iana\",\n \"extensions\": [\"dna\"]\n },\n \"application/vnd.document+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dolby.mlp\": {\n \"source\": \"apache\",\n \"extensions\": [\"mlp\"]\n },\n \"application/vnd.dolby.mobile.1\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dolby.mobile.2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.doremir.scorecloud-binary-document\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dpgraph\": {\n \"source\": \"iana\",\n \"extensions\": [\"dpg\"]\n },\n \"application/vnd.dreamfactory\": {\n \"source\": \"iana\",\n \"extensions\": [\"dfac\"]\n },\n \"application/vnd.drive+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ds-keypoint\": {\n \"source\": \"apache\",\n \"extensions\": [\"kpxx\"]\n },\n \"application/vnd.dtg.local\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dtg.local.flash\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dtg.local.html\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ait\": {\n \"source\": \"iana\",\n \"extensions\": [\"ait\"]\n },\n \"application/vnd.dvb.dvbisl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.dvbj\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.esgcontainer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcdftnotifaccess\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcesgaccess\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcesgaccess2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcesgpdd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.ipdcroaming\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.iptv.alfec-base\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.iptv.alfec-enhancement\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.notif-aggregate-root+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-container+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-generic+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-ia-msglist+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-ia-registration-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-ia-registration-response+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.notif-init+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.dvb.pfr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dvb.service\": {\n \"source\": \"iana\",\n \"extensions\": [\"svc\"]\n },\n \"application/vnd.dxr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.dynageo\": {\n \"source\": \"iana\",\n \"extensions\": [\"geo\"]\n },\n \"application/vnd.dzr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.easykaraoke.cdgdownload\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecdis-update\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecip.rlp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.eclipse.ditto+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ecowin.chart\": {\n \"source\": \"iana\",\n \"extensions\": [\"mag\"]\n },\n \"application/vnd.ecowin.filerequest\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.fileupdate\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.series\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.seriesrequest\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ecowin.seriesupdate\": {\n \"source\": \"iana\"\n },\n \"application/vnd.efi.img\": {\n \"source\": \"iana\"\n },\n \"application/vnd.efi.iso\": {\n \"source\": \"iana\"\n },\n \"application/vnd.emclient.accessrequest+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.enliven\": {\n \"source\": \"iana\",\n \"extensions\": [\"nml\"]\n },\n \"application/vnd.enphase.envoy\": {\n \"source\": \"iana\"\n },\n \"application/vnd.eprints.data+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.epson.esf\": {\n \"source\": \"iana\",\n \"extensions\": [\"esf\"]\n },\n \"application/vnd.epson.msf\": {\n \"source\": \"iana\",\n \"extensions\": [\"msf\"]\n },\n \"application/vnd.epson.quickanime\": {\n \"source\": \"iana\",\n \"extensions\": [\"qam\"]\n },\n \"application/vnd.epson.salt\": {\n \"source\": \"iana\",\n \"extensions\": [\"slt\"]\n },\n \"application/vnd.epson.ssf\": {\n \"source\": \"iana\",\n \"extensions\": [\"ssf\"]\n },\n \"application/vnd.ericsson.quickcall\": {\n \"source\": \"iana\"\n },\n \"application/vnd.espass-espass+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.eszigno3+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"es3\",\"et3\"]\n },\n \"application/vnd.etsi.aoc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.asic-e+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.etsi.asic-s+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.etsi.cug+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvcommand+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvdiscovery+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsad-bc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsad-cod+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsad-npvr+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvservice+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvsync+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.iptvueprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.mcid+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.mheg5\": {\n \"source\": \"iana\"\n },\n \"application/vnd.etsi.overload-control-policy-dataset+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.pstn+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.sci+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.simservs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.timestamp-token\": {\n \"source\": \"iana\"\n },\n \"application/vnd.etsi.tsl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.etsi.tsl.der\": {\n \"source\": \"iana\"\n },\n \"application/vnd.eu.kasparian.car+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.eudora.data\": {\n \"source\": \"iana\"\n },\n \"application/vnd.evolv.ecig.profile\": {\n \"source\": \"iana\"\n },\n \"application/vnd.evolv.ecig.settings\": {\n \"source\": \"iana\"\n },\n \"application/vnd.evolv.ecig.theme\": {\n \"source\": \"iana\"\n },\n \"application/vnd.exstream-empower+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.exstream-package\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ezpix-album\": {\n \"source\": \"iana\",\n \"extensions\": [\"ez2\"]\n },\n \"application/vnd.ezpix-package\": {\n \"source\": \"iana\",\n \"extensions\": [\"ez3\"]\n },\n \"application/vnd.f-secure.mobile\": {\n \"source\": \"iana\"\n },\n \"application/vnd.familysearch.gedcom+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.fastcopy-disk-image\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fdf\": {\n \"source\": \"iana\",\n \"extensions\": [\"fdf\"]\n },\n \"application/vnd.fdsn.mseed\": {\n \"source\": \"iana\",\n \"extensions\": [\"mseed\"]\n },\n \"application/vnd.fdsn.seed\": {\n \"source\": \"iana\",\n \"extensions\": [\"seed\",\"dataless\"]\n },\n \"application/vnd.ffsns\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ficlab.flb+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.filmit.zfc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fints\": {\n \"source\": \"iana\"\n },\n \"application/vnd.firemonkeys.cloudcell\": {\n \"source\": \"iana\"\n },\n \"application/vnd.flographit\": {\n \"source\": \"iana\",\n \"extensions\": [\"gph\"]\n },\n \"application/vnd.fluxtime.clip\": {\n \"source\": \"iana\",\n \"extensions\": [\"ftc\"]\n },\n \"application/vnd.font-fontforge-sfd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.framemaker\": {\n \"source\": \"iana\",\n \"extensions\": [\"fm\",\"frame\",\"maker\",\"book\"]\n },\n \"application/vnd.frogans.fnc\": {\n \"source\": \"iana\",\n \"extensions\": [\"fnc\"]\n },\n \"application/vnd.frogans.ltf\": {\n \"source\": \"iana\",\n \"extensions\": [\"ltf\"]\n },\n \"application/vnd.fsc.weblaunch\": {\n \"source\": \"iana\",\n \"extensions\": [\"fsc\"]\n },\n \"application/vnd.fujifilm.fb.docuworks\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujifilm.fb.docuworks.binder\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujifilm.fb.docuworks.container\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujifilm.fb.jfi+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.fujitsu.oasys\": {\n \"source\": \"iana\",\n \"extensions\": [\"oas\"]\n },\n \"application/vnd.fujitsu.oasys2\": {\n \"source\": \"iana\",\n \"extensions\": [\"oa2\"]\n },\n \"application/vnd.fujitsu.oasys3\": {\n \"source\": \"iana\",\n \"extensions\": [\"oa3\"]\n },\n \"application/vnd.fujitsu.oasysgp\": {\n \"source\": \"iana\",\n \"extensions\": [\"fg5\"]\n },\n \"application/vnd.fujitsu.oasysprs\": {\n \"source\": \"iana\",\n \"extensions\": [\"bh2\"]\n },\n \"application/vnd.fujixerox.art-ex\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujixerox.art4\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujixerox.ddd\": {\n \"source\": \"iana\",\n \"extensions\": [\"ddd\"]\n },\n \"application/vnd.fujixerox.docuworks\": {\n \"source\": \"iana\",\n \"extensions\": [\"xdw\"]\n },\n \"application/vnd.fujixerox.docuworks.binder\": {\n \"source\": \"iana\",\n \"extensions\": [\"xbd\"]\n },\n \"application/vnd.fujixerox.docuworks.container\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fujixerox.hbpl\": {\n \"source\": \"iana\"\n },\n \"application/vnd.fut-misnet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.futoin+cbor\": {\n \"source\": \"iana\"\n },\n \"application/vnd.futoin+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.fuzzysheet\": {\n \"source\": \"iana\",\n \"extensions\": [\"fzs\"]\n },\n \"application/vnd.genomatix.tuxedo\": {\n \"source\": \"iana\",\n \"extensions\": [\"txd\"]\n },\n \"application/vnd.gentics.grd+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.geo+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.geocube+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.geogebra.file\": {\n \"source\": \"iana\",\n \"extensions\": [\"ggb\"]\n },\n \"application/vnd.geogebra.slides\": {\n \"source\": \"iana\"\n },\n \"application/vnd.geogebra.tool\": {\n \"source\": \"iana\",\n \"extensions\": [\"ggt\"]\n },\n \"application/vnd.geometry-explorer\": {\n \"source\": \"iana\",\n \"extensions\": [\"gex\",\"gre\"]\n },\n \"application/vnd.geonext\": {\n \"source\": \"iana\",\n \"extensions\": [\"gxt\"]\n },\n \"application/vnd.geoplan\": {\n \"source\": \"iana\",\n \"extensions\": [\"g2w\"]\n },\n \"application/vnd.geospace\": {\n \"source\": \"iana\",\n \"extensions\": [\"g3w\"]\n },\n \"application/vnd.gerber\": {\n \"source\": \"iana\"\n },\n \"application/vnd.globalplatform.card-content-mgt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.globalplatform.card-content-mgt-response\": {\n \"source\": \"iana\"\n },\n \"application/vnd.gmx\": {\n \"source\": \"iana\",\n \"extensions\": [\"gmx\"]\n },\n \"application/vnd.google-apps.document\": {\n \"compressible\": false,\n \"extensions\": [\"gdoc\"]\n },\n \"application/vnd.google-apps.presentation\": {\n \"compressible\": false,\n \"extensions\": [\"gslides\"]\n },\n \"application/vnd.google-apps.spreadsheet\": {\n \"compressible\": false,\n \"extensions\": [\"gsheet\"]\n },\n \"application/vnd.google-earth.kml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"kml\"]\n },\n \"application/vnd.google-earth.kmz\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"kmz\"]\n },\n \"application/vnd.gov.sk.e-form+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.gov.sk.e-form+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.gov.sk.xmldatacontainer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.grafeq\": {\n \"source\": \"iana\",\n \"extensions\": [\"gqf\",\"gqs\"]\n },\n \"application/vnd.gridmp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.groove-account\": {\n \"source\": \"iana\",\n \"extensions\": [\"gac\"]\n },\n \"application/vnd.groove-help\": {\n \"source\": \"iana\",\n \"extensions\": [\"ghf\"]\n },\n \"application/vnd.groove-identity-message\": {\n \"source\": \"iana\",\n \"extensions\": [\"gim\"]\n },\n \"application/vnd.groove-injector\": {\n \"source\": \"iana\",\n \"extensions\": [\"grv\"]\n },\n \"application/vnd.groove-tool-message\": {\n \"source\": \"iana\",\n \"extensions\": [\"gtm\"]\n },\n \"application/vnd.groove-tool-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"tpl\"]\n },\n \"application/vnd.groove-vcard\": {\n \"source\": \"iana\",\n \"extensions\": [\"vcg\"]\n },\n \"application/vnd.hal+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hal+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"hal\"]\n },\n \"application/vnd.handheld-entertainment+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"zmm\"]\n },\n \"application/vnd.hbci\": {\n \"source\": \"iana\",\n \"extensions\": [\"hbci\"]\n },\n \"application/vnd.hc+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hcl-bireports\": {\n \"source\": \"iana\"\n },\n \"application/vnd.hdt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.heroku+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hhe.lesson-player\": {\n \"source\": \"iana\",\n \"extensions\": [\"les\"]\n },\n \"application/vnd.hl7cda+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.hl7v2+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.hp-hpgl\": {\n \"source\": \"iana\",\n \"extensions\": [\"hpgl\"]\n },\n \"application/vnd.hp-hpid\": {\n \"source\": \"iana\",\n \"extensions\": [\"hpid\"]\n },\n \"application/vnd.hp-hps\": {\n \"source\": \"iana\",\n \"extensions\": [\"hps\"]\n },\n \"application/vnd.hp-jlyt\": {\n \"source\": \"iana\",\n \"extensions\": [\"jlt\"]\n },\n \"application/vnd.hp-pcl\": {\n \"source\": \"iana\",\n \"extensions\": [\"pcl\"]\n },\n \"application/vnd.hp-pclxl\": {\n \"source\": \"iana\",\n \"extensions\": [\"pclxl\"]\n },\n \"application/vnd.httphone\": {\n \"source\": \"iana\"\n },\n \"application/vnd.hydrostatix.sof-data\": {\n \"source\": \"iana\",\n \"extensions\": [\"sfd-hdstx\"]\n },\n \"application/vnd.hyper+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hyper-item+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hyperdrive+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.hzn-3d-crossword\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ibm.afplinedata\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ibm.electronic-media\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ibm.minipay\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpy\"]\n },\n \"application/vnd.ibm.modcap\": {\n \"source\": \"iana\",\n \"extensions\": [\"afp\",\"listafp\",\"list3820\"]\n },\n \"application/vnd.ibm.rights-management\": {\n \"source\": \"iana\",\n \"extensions\": [\"irm\"]\n },\n \"application/vnd.ibm.secure-container\": {\n \"source\": \"iana\",\n \"extensions\": [\"sc\"]\n },\n \"application/vnd.iccprofile\": {\n \"source\": \"iana\",\n \"extensions\": [\"icc\",\"icm\"]\n },\n \"application/vnd.ieee.1905\": {\n \"source\": \"iana\"\n },\n \"application/vnd.igloader\": {\n \"source\": \"iana\",\n \"extensions\": [\"igl\"]\n },\n \"application/vnd.imagemeter.folder+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.imagemeter.image+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.immervision-ivp\": {\n \"source\": \"iana\",\n \"extensions\": [\"ivp\"]\n },\n \"application/vnd.immervision-ivu\": {\n \"source\": \"iana\",\n \"extensions\": [\"ivu\"]\n },\n \"application/vnd.ims.imsccv1p1\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ims.imsccv1p2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ims.imsccv1p3\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ims.lis.v2.result+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolconsumerprofile+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolproxy+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolproxy.id+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolsettings+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ims.lti.v2.toolsettings.simple+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.informedcontrol.rms+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.informix-visionary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.infotech.project\": {\n \"source\": \"iana\"\n },\n \"application/vnd.infotech.project+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.innopath.wamp.notification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.insors.igm\": {\n \"source\": \"iana\",\n \"extensions\": [\"igm\"]\n },\n \"application/vnd.intercon.formnet\": {\n \"source\": \"iana\",\n \"extensions\": [\"xpw\",\"xpx\"]\n },\n \"application/vnd.intergeo\": {\n \"source\": \"iana\",\n \"extensions\": [\"i2g\"]\n },\n \"application/vnd.intertrust.digibox\": {\n \"source\": \"iana\"\n },\n \"application/vnd.intertrust.nncp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.intu.qbo\": {\n \"source\": \"iana\",\n \"extensions\": [\"qbo\"]\n },\n \"application/vnd.intu.qfx\": {\n \"source\": \"iana\",\n \"extensions\": [\"qfx\"]\n },\n \"application/vnd.iptc.g2.catalogitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.conceptitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.knowledgeitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.newsitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.newsmessage+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.packageitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.iptc.g2.planningitem+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ipunplugged.rcprofile\": {\n \"source\": \"iana\",\n \"extensions\": [\"rcprofile\"]\n },\n \"application/vnd.irepository.package+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"irp\"]\n },\n \"application/vnd.is-xpr\": {\n \"source\": \"iana\",\n \"extensions\": [\"xpr\"]\n },\n \"application/vnd.isac.fcs\": {\n \"source\": \"iana\",\n \"extensions\": [\"fcs\"]\n },\n \"application/vnd.iso11783-10+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.jam\": {\n \"source\": \"iana\",\n \"extensions\": [\"jam\"]\n },\n \"application/vnd.japannet-directory-service\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-jpnstore-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-payment-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-registration\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-registration-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-setstore-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-verification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.japannet-verification-wakeup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.jcp.javame.midlet-rms\": {\n \"source\": \"iana\",\n \"extensions\": [\"rms\"]\n },\n \"application/vnd.jisp\": {\n \"source\": \"iana\",\n \"extensions\": [\"jisp\"]\n },\n \"application/vnd.joost.joda-archive\": {\n \"source\": \"iana\",\n \"extensions\": [\"joda\"]\n },\n \"application/vnd.jsk.isdn-ngn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.kahootz\": {\n \"source\": \"iana\",\n \"extensions\": [\"ktz\",\"ktr\"]\n },\n \"application/vnd.kde.karbon\": {\n \"source\": \"iana\",\n \"extensions\": [\"karbon\"]\n },\n \"application/vnd.kde.kchart\": {\n \"source\": \"iana\",\n \"extensions\": [\"chrt\"]\n },\n \"application/vnd.kde.kformula\": {\n \"source\": \"iana\",\n \"extensions\": [\"kfo\"]\n },\n \"application/vnd.kde.kivio\": {\n \"source\": \"iana\",\n \"extensions\": [\"flw\"]\n },\n \"application/vnd.kde.kontour\": {\n \"source\": \"iana\",\n \"extensions\": [\"kon\"]\n },\n \"application/vnd.kde.kpresenter\": {\n \"source\": \"iana\",\n \"extensions\": [\"kpr\",\"kpt\"]\n },\n \"application/vnd.kde.kspread\": {\n \"source\": \"iana\",\n \"extensions\": [\"ksp\"]\n },\n \"application/vnd.kde.kword\": {\n \"source\": \"iana\",\n \"extensions\": [\"kwd\",\"kwt\"]\n },\n \"application/vnd.kenameaapp\": {\n \"source\": \"iana\",\n \"extensions\": [\"htke\"]\n },\n \"application/vnd.kidspiration\": {\n \"source\": \"iana\",\n \"extensions\": [\"kia\"]\n },\n \"application/vnd.kinar\": {\n \"source\": \"iana\",\n \"extensions\": [\"kne\",\"knp\"]\n },\n \"application/vnd.koan\": {\n \"source\": \"iana\",\n \"extensions\": [\"skp\",\"skd\",\"skt\",\"skm\"]\n },\n \"application/vnd.kodak-descriptor\": {\n \"source\": \"iana\",\n \"extensions\": [\"sse\"]\n },\n \"application/vnd.las\": {\n \"source\": \"iana\"\n },\n \"application/vnd.las.las+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.las.las+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lasxml\"]\n },\n \"application/vnd.laszip\": {\n \"source\": \"iana\"\n },\n \"application/vnd.leap+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.liberty-request+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.llamagraphics.life-balance.desktop\": {\n \"source\": \"iana\",\n \"extensions\": [\"lbd\"]\n },\n \"application/vnd.llamagraphics.life-balance.exchange+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"lbe\"]\n },\n \"application/vnd.logipipe.circuit+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.loom\": {\n \"source\": \"iana\"\n },\n \"application/vnd.lotus-1-2-3\": {\n \"source\": \"iana\",\n \"extensions\": [\"123\"]\n },\n \"application/vnd.lotus-approach\": {\n \"source\": \"iana\",\n \"extensions\": [\"apr\"]\n },\n \"application/vnd.lotus-freelance\": {\n \"source\": \"iana\",\n \"extensions\": [\"pre\"]\n },\n \"application/vnd.lotus-notes\": {\n \"source\": \"iana\",\n \"extensions\": [\"nsf\"]\n },\n \"application/vnd.lotus-organizer\": {\n \"source\": \"iana\",\n \"extensions\": [\"org\"]\n },\n \"application/vnd.lotus-screencam\": {\n \"source\": \"iana\",\n \"extensions\": [\"scm\"]\n },\n \"application/vnd.lotus-wordpro\": {\n \"source\": \"iana\",\n \"extensions\": [\"lwp\"]\n },\n \"application/vnd.macports.portpkg\": {\n \"source\": \"iana\",\n \"extensions\": [\"portpkg\"]\n },\n \"application/vnd.mapbox-vector-tile\": {\n \"source\": \"iana\",\n \"extensions\": [\"mvt\"]\n },\n \"application/vnd.marlin.drm.actiontoken+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.marlin.drm.conftoken+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.marlin.drm.license+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.marlin.drm.mdcf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mason+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.maxar.archive.3tz+zip\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"application/vnd.maxmind.maxmind-db\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mcd\": {\n \"source\": \"iana\",\n \"extensions\": [\"mcd\"]\n },\n \"application/vnd.medcalcdata\": {\n \"source\": \"iana\",\n \"extensions\": [\"mc1\"]\n },\n \"application/vnd.mediastation.cdkey\": {\n \"source\": \"iana\",\n \"extensions\": [\"cdkey\"]\n },\n \"application/vnd.meridian-slingshot\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mfer\": {\n \"source\": \"iana\",\n \"extensions\": [\"mwf\"]\n },\n \"application/vnd.mfmp\": {\n \"source\": \"iana\",\n \"extensions\": [\"mfm\"]\n },\n \"application/vnd.micro+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.micrografx.flo\": {\n \"source\": \"iana\",\n \"extensions\": [\"flo\"]\n },\n \"application/vnd.micrografx.igx\": {\n \"source\": \"iana\",\n \"extensions\": [\"igx\"]\n },\n \"application/vnd.microsoft.portable-executable\": {\n \"source\": \"iana\"\n },\n \"application/vnd.microsoft.windows.thumbnail-cache\": {\n \"source\": \"iana\"\n },\n \"application/vnd.miele+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.mif\": {\n \"source\": \"iana\",\n \"extensions\": [\"mif\"]\n },\n \"application/vnd.minisoft-hp3000-save\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mitsubishi.misty-guard.trustweb\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mobius.daf\": {\n \"source\": \"iana\",\n \"extensions\": [\"daf\"]\n },\n \"application/vnd.mobius.dis\": {\n \"source\": \"iana\",\n \"extensions\": [\"dis\"]\n },\n \"application/vnd.mobius.mbk\": {\n \"source\": \"iana\",\n \"extensions\": [\"mbk\"]\n },\n \"application/vnd.mobius.mqy\": {\n \"source\": \"iana\",\n \"extensions\": [\"mqy\"]\n },\n \"application/vnd.mobius.msl\": {\n \"source\": \"iana\",\n \"extensions\": [\"msl\"]\n },\n \"application/vnd.mobius.plc\": {\n \"source\": \"iana\",\n \"extensions\": [\"plc\"]\n },\n \"application/vnd.mobius.txf\": {\n \"source\": \"iana\",\n \"extensions\": [\"txf\"]\n },\n \"application/vnd.mophun.application\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpn\"]\n },\n \"application/vnd.mophun.certificate\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpc\"]\n },\n \"application/vnd.motorola.flexsuite\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.adsi\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.fis\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.gotap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.kmr\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.ttc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.flexsuite.wem\": {\n \"source\": \"iana\"\n },\n \"application/vnd.motorola.iprm\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mozilla.xul+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xul\"]\n },\n \"application/vnd.ms-3mfdocument\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-artgalry\": {\n \"source\": \"iana\",\n \"extensions\": [\"cil\"]\n },\n \"application/vnd.ms-asf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-cab-compressed\": {\n \"source\": \"iana\",\n \"extensions\": [\"cab\"]\n },\n \"application/vnd.ms-color.iccprofile\": {\n \"source\": \"apache\"\n },\n \"application/vnd.ms-excel\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"xls\",\"xlm\",\"xla\",\"xlc\",\"xlt\",\"xlw\"]\n },\n \"application/vnd.ms-excel.addin.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xlam\"]\n },\n \"application/vnd.ms-excel.sheet.binary.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xlsb\"]\n },\n \"application/vnd.ms-excel.sheet.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xlsm\"]\n },\n \"application/vnd.ms-excel.template.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"xltm\"]\n },\n \"application/vnd.ms-fontobject\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"eot\"]\n },\n \"application/vnd.ms-htmlhelp\": {\n \"source\": \"iana\",\n \"extensions\": [\"chm\"]\n },\n \"application/vnd.ms-ims\": {\n \"source\": \"iana\",\n \"extensions\": [\"ims\"]\n },\n \"application/vnd.ms-lrm\": {\n \"source\": \"iana\",\n \"extensions\": [\"lrm\"]\n },\n \"application/vnd.ms-office.activex+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-officetheme\": {\n \"source\": \"iana\",\n \"extensions\": [\"thmx\"]\n },\n \"application/vnd.ms-opentype\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/vnd.ms-outlook\": {\n \"compressible\": false,\n \"extensions\": [\"msg\"]\n },\n \"application/vnd.ms-package.obfuscated-opentype\": {\n \"source\": \"apache\"\n },\n \"application/vnd.ms-pki.seccat\": {\n \"source\": \"apache\",\n \"extensions\": [\"cat\"]\n },\n \"application/vnd.ms-pki.stl\": {\n \"source\": \"apache\",\n \"extensions\": [\"stl\"]\n },\n \"application/vnd.ms-playready.initiator+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-powerpoint\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ppt\",\"pps\",\"pot\"]\n },\n \"application/vnd.ms-powerpoint.addin.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppam\"]\n },\n \"application/vnd.ms-powerpoint.presentation.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"pptm\"]\n },\n \"application/vnd.ms-powerpoint.slide.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"sldm\"]\n },\n \"application/vnd.ms-powerpoint.slideshow.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppsm\"]\n },\n \"application/vnd.ms-powerpoint.template.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"potm\"]\n },\n \"application/vnd.ms-printdevicecapabilities+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-printing.printticket+xml\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/vnd.ms-printschematicket+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ms-project\": {\n \"source\": \"iana\",\n \"extensions\": [\"mpp\",\"mpt\"]\n },\n \"application/vnd.ms-tnef\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.devicepairing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.nwprinting.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.printerpairing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-windows.wsd.oob\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.lic-chlg-req\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.lic-resp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.meter-chlg-req\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-wmdrm.meter-resp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ms-word.document.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"docm\"]\n },\n \"application/vnd.ms-word.template.macroenabled.12\": {\n \"source\": \"iana\",\n \"extensions\": [\"dotm\"]\n },\n \"application/vnd.ms-works\": {\n \"source\": \"iana\",\n \"extensions\": [\"wps\",\"wks\",\"wcm\",\"wdb\"]\n },\n \"application/vnd.ms-wpl\": {\n \"source\": \"iana\",\n \"extensions\": [\"wpl\"]\n },\n \"application/vnd.ms-xpsdocument\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"xps\"]\n },\n \"application/vnd.msa-disk-image\": {\n \"source\": \"iana\"\n },\n \"application/vnd.mseq\": {\n \"source\": \"iana\",\n \"extensions\": [\"mseq\"]\n },\n \"application/vnd.msign\": {\n \"source\": \"iana\"\n },\n \"application/vnd.multiad.creator\": {\n \"source\": \"iana\"\n },\n \"application/vnd.multiad.creator.cif\": {\n \"source\": \"iana\"\n },\n \"application/vnd.music-niff\": {\n \"source\": \"iana\"\n },\n \"application/vnd.musician\": {\n \"source\": \"iana\",\n \"extensions\": [\"mus\"]\n },\n \"application/vnd.muvee.style\": {\n \"source\": \"iana\",\n \"extensions\": [\"msty\"]\n },\n \"application/vnd.mynfc\": {\n \"source\": \"iana\",\n \"extensions\": [\"taglet\"]\n },\n \"application/vnd.nacamar.ybrid+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.ncd.control\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ncd.reference\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nearst.inv+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nebumind.line\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nervana\": {\n \"source\": \"iana\"\n },\n \"application/vnd.netfpx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.neurolanguage.nlu\": {\n \"source\": \"iana\",\n \"extensions\": [\"nlu\"]\n },\n \"application/vnd.nimn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nintendo.nitro.rom\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nintendo.snes.rom\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nitf\": {\n \"source\": \"iana\",\n \"extensions\": [\"ntf\",\"nitf\"]\n },\n \"application/vnd.noblenet-directory\": {\n \"source\": \"iana\",\n \"extensions\": [\"nnd\"]\n },\n \"application/vnd.noblenet-sealer\": {\n \"source\": \"iana\",\n \"extensions\": [\"nns\"]\n },\n \"application/vnd.noblenet-web\": {\n \"source\": \"iana\",\n \"extensions\": [\"nnw\"]\n },\n \"application/vnd.nokia.catalogs\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.conml+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.conml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.iptv.config+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.isds-radio-presets\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.landmark+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.landmark+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.landmarkcollection+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.n-gage.ac+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ac\"]\n },\n \"application/vnd.nokia.n-gage.data\": {\n \"source\": \"iana\",\n \"extensions\": [\"ngdat\"]\n },\n \"application/vnd.nokia.n-gage.symbian.install\": {\n \"source\": \"iana\",\n \"extensions\": [\"n-gage\"]\n },\n \"application/vnd.nokia.ncd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.pcd+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.nokia.pcd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.nokia.radio-preset\": {\n \"source\": \"iana\",\n \"extensions\": [\"rpst\"]\n },\n \"application/vnd.nokia.radio-presets\": {\n \"source\": \"iana\",\n \"extensions\": [\"rpss\"]\n },\n \"application/vnd.novadigm.edm\": {\n \"source\": \"iana\",\n \"extensions\": [\"edm\"]\n },\n \"application/vnd.novadigm.edx\": {\n \"source\": \"iana\",\n \"extensions\": [\"edx\"]\n },\n \"application/vnd.novadigm.ext\": {\n \"source\": \"iana\",\n \"extensions\": [\"ext\"]\n },\n \"application/vnd.ntt-local.content-share\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.file-transfer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.ogw_remote-access\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.sip-ta_remote\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ntt-local.sip-ta_tcp_stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oasis.opendocument.chart\": {\n \"source\": \"iana\",\n \"extensions\": [\"odc\"]\n },\n \"application/vnd.oasis.opendocument.chart-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"otc\"]\n },\n \"application/vnd.oasis.opendocument.database\": {\n \"source\": \"iana\",\n \"extensions\": [\"odb\"]\n },\n \"application/vnd.oasis.opendocument.formula\": {\n \"source\": \"iana\",\n \"extensions\": [\"odf\"]\n },\n \"application/vnd.oasis.opendocument.formula-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"odft\"]\n },\n \"application/vnd.oasis.opendocument.graphics\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"odg\"]\n },\n \"application/vnd.oasis.opendocument.graphics-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"otg\"]\n },\n \"application/vnd.oasis.opendocument.image\": {\n \"source\": \"iana\",\n \"extensions\": [\"odi\"]\n },\n \"application/vnd.oasis.opendocument.image-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"oti\"]\n },\n \"application/vnd.oasis.opendocument.presentation\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"odp\"]\n },\n \"application/vnd.oasis.opendocument.presentation-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"otp\"]\n },\n \"application/vnd.oasis.opendocument.spreadsheet\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ods\"]\n },\n \"application/vnd.oasis.opendocument.spreadsheet-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"ots\"]\n },\n \"application/vnd.oasis.opendocument.text\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"odt\"]\n },\n \"application/vnd.oasis.opendocument.text-master\": {\n \"source\": \"iana\",\n \"extensions\": [\"odm\"]\n },\n \"application/vnd.oasis.opendocument.text-template\": {\n \"source\": \"iana\",\n \"extensions\": [\"ott\"]\n },\n \"application/vnd.oasis.opendocument.text-web\": {\n \"source\": \"iana\",\n \"extensions\": [\"oth\"]\n },\n \"application/vnd.obn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ocf+cbor\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oci.image.manifest.v1+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oftn.l10n+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.contentaccessdownload+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.contentaccessstreaming+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.cspg-hexbinary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oipf.dae.svg+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.dae.xhtml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.mippvcontrolmessage+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.pae.gem\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oipf.spdiscovery+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.spdlist+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.ueprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oipf.userprofile+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.olpc-sugar\": {\n \"source\": \"iana\",\n \"extensions\": [\"xo\"]\n },\n \"application/vnd.oma-scws-config\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma-scws-http-request\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma-scws-http-response\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.associated-procedure-parameter+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.drm-trigger+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.imd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.ltkm\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.notification+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.provisioningtrigger\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.sgboot\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.sgdd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.sgdu\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.simple-symbol-container\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.bcast.smartcard-trigger+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.sprov+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.bcast.stkm\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.cab-address-book+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-feature-handler+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-pcc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-subs-invite+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.cab-user-prefs+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.dcd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.dcdc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.dd2+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dd2\"]\n },\n \"application/vnd.oma.drm.risd+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.group-usage-list+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.lwm2m+cbor\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.lwm2m+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.lwm2m+tlv\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.pal+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.detailed-progress-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.final-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.groups+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.invocation-descriptor+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.poc.optimized-progress-report+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.push\": {\n \"source\": \"iana\"\n },\n \"application/vnd.oma.scidm.messages+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oma.xcap-directory+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.omads-email+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.omads-file+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.omads-folder+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.omaloc-supl-init\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepager\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertamp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertamx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertat\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertatp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.onepagertatx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openblox.game+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"obgx\"]\n },\n \"application/vnd.openblox.game-binary\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openeye.oeb\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openofficeorg.extension\": {\n \"source\": \"apache\",\n \"extensions\": [\"oxt\"]\n },\n \"application/vnd.openstreetmap.data+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"osm\"]\n },\n \"application/vnd.opentimestamps.ots\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openxmlformats-officedocument.custom-properties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.customxmlproperties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawing+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.extended-properties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.comments+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"pptx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slide\": {\n \"source\": \"iana\",\n \"extensions\": [\"sldx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slide+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slideshow\": {\n \"source\": \"iana\",\n \"extensions\": [\"ppsx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.tags+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"potx\"]\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"xlsx\"]\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"xltx\"]\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.theme+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.themeoverride+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.vmldrawing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"docx\"]\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.template\": {\n \"source\": \"iana\",\n \"extensions\": [\"dotx\"]\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-package.core-properties+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.openxmlformats-package.relationships+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oracle.resource+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.orange.indata\": {\n \"source\": \"iana\"\n },\n \"application/vnd.osa.netdeploy\": {\n \"source\": \"iana\"\n },\n \"application/vnd.osgeo.mapguide.package\": {\n \"source\": \"iana\",\n \"extensions\": [\"mgp\"]\n },\n \"application/vnd.osgi.bundle\": {\n \"source\": \"iana\"\n },\n \"application/vnd.osgi.dp\": {\n \"source\": \"iana\",\n \"extensions\": [\"dp\"]\n },\n \"application/vnd.osgi.subsystem\": {\n \"source\": \"iana\",\n \"extensions\": [\"esa\"]\n },\n \"application/vnd.otps.ct-kip+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.oxli.countgraph\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pagerduty+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.palm\": {\n \"source\": \"iana\",\n \"extensions\": [\"pdb\",\"pqa\",\"oprc\"]\n },\n \"application/vnd.panoply\": {\n \"source\": \"iana\"\n },\n \"application/vnd.paos.xml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.patentdive\": {\n \"source\": \"iana\"\n },\n \"application/vnd.patientecommsdoc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pawaafile\": {\n \"source\": \"iana\",\n \"extensions\": [\"paw\"]\n },\n \"application/vnd.pcos\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pg.format\": {\n \"source\": \"iana\",\n \"extensions\": [\"str\"]\n },\n \"application/vnd.pg.osasli\": {\n \"source\": \"iana\",\n \"extensions\": [\"ei6\"]\n },\n \"application/vnd.piaccess.application-licence\": {\n \"source\": \"iana\"\n },\n \"application/vnd.picsel\": {\n \"source\": \"iana\",\n \"extensions\": [\"efif\"]\n },\n \"application/vnd.pmi.widget\": {\n \"source\": \"iana\",\n \"extensions\": [\"wg\"]\n },\n \"application/vnd.poc.group-advertisement+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.pocketlearn\": {\n \"source\": \"iana\",\n \"extensions\": [\"plf\"]\n },\n \"application/vnd.powerbuilder6\": {\n \"source\": \"iana\",\n \"extensions\": [\"pbd\"]\n },\n \"application/vnd.powerbuilder6-s\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder7\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder7-s\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder75\": {\n \"source\": \"iana\"\n },\n \"application/vnd.powerbuilder75-s\": {\n \"source\": \"iana\"\n },\n \"application/vnd.preminet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.previewsystems.box\": {\n \"source\": \"iana\",\n \"extensions\": [\"box\"]\n },\n \"application/vnd.proteus.magazine\": {\n \"source\": \"iana\",\n \"extensions\": [\"mgz\"]\n },\n \"application/vnd.psfs\": {\n \"source\": \"iana\"\n },\n \"application/vnd.publishare-delta-tree\": {\n \"source\": \"iana\",\n \"extensions\": [\"qps\"]\n },\n \"application/vnd.pvi.ptid1\": {\n \"source\": \"iana\",\n \"extensions\": [\"ptid\"]\n },\n \"application/vnd.pwg-multiplexed\": {\n \"source\": \"iana\"\n },\n \"application/vnd.pwg-xhtml-print+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.qualcomm.brew-app-res\": {\n \"source\": \"iana\"\n },\n \"application/vnd.quarantainenet\": {\n \"source\": \"iana\"\n },\n \"application/vnd.quark.quarkxpress\": {\n \"source\": \"iana\",\n \"extensions\": [\"qxd\",\"qxt\",\"qwd\",\"qwt\",\"qxl\",\"qxb\"]\n },\n \"application/vnd.quobject-quoxdocument\": {\n \"source\": \"iana\"\n },\n \"application/vnd.radisys.moml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-conf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-conn+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-dialog+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-audit-stream+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-conf+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-base+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-fax-detect+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-fax-sendrecv+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-group+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-speech+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.radisys.msml-dialog-transform+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.rainstor.data\": {\n \"source\": \"iana\"\n },\n \"application/vnd.rapid\": {\n \"source\": \"iana\"\n },\n \"application/vnd.rar\": {\n \"source\": \"iana\",\n \"extensions\": [\"rar\"]\n },\n \"application/vnd.realvnc.bed\": {\n \"source\": \"iana\",\n \"extensions\": [\"bed\"]\n },\n \"application/vnd.recordare.musicxml\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxl\"]\n },\n \"application/vnd.recordare.musicxml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"musicxml\"]\n },\n \"application/vnd.renlearn.rlprint\": {\n \"source\": \"iana\"\n },\n \"application/vnd.resilient.logic\": {\n \"source\": \"iana\"\n },\n \"application/vnd.restful+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.rig.cryptonote\": {\n \"source\": \"iana\",\n \"extensions\": [\"cryptonote\"]\n },\n \"application/vnd.rim.cod\": {\n \"source\": \"apache\",\n \"extensions\": [\"cod\"]\n },\n \"application/vnd.rn-realmedia\": {\n \"source\": \"apache\",\n \"extensions\": [\"rm\"]\n },\n \"application/vnd.rn-realmedia-vbr\": {\n \"source\": \"apache\",\n \"extensions\": [\"rmvb\"]\n },\n \"application/vnd.route66.link66+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"link66\"]\n },\n \"application/vnd.rs-274x\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ruckus.download\": {\n \"source\": \"iana\"\n },\n \"application/vnd.s3sms\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sailingtracker.track\": {\n \"source\": \"iana\",\n \"extensions\": [\"st\"]\n },\n \"application/vnd.sar\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sbm.cid\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sbm.mid2\": {\n \"source\": \"iana\"\n },\n \"application/vnd.scribus\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.3df\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.csf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.doc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.eml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.mht\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.net\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.ppt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.tiff\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealed.xls\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealedmedia.softseal.html\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sealedmedia.softseal.pdf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.seemail\": {\n \"source\": \"iana\",\n \"extensions\": [\"see\"]\n },\n \"application/vnd.seis+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.sema\": {\n \"source\": \"iana\",\n \"extensions\": [\"sema\"]\n },\n \"application/vnd.semd\": {\n \"source\": \"iana\",\n \"extensions\": [\"semd\"]\n },\n \"application/vnd.semf\": {\n \"source\": \"iana\",\n \"extensions\": [\"semf\"]\n },\n \"application/vnd.shade-save-file\": {\n \"source\": \"iana\"\n },\n \"application/vnd.shana.informed.formdata\": {\n \"source\": \"iana\",\n \"extensions\": [\"ifm\"]\n },\n \"application/vnd.shana.informed.formtemplate\": {\n \"source\": \"iana\",\n \"extensions\": [\"itp\"]\n },\n \"application/vnd.shana.informed.interchange\": {\n \"source\": \"iana\",\n \"extensions\": [\"iif\"]\n },\n \"application/vnd.shana.informed.package\": {\n \"source\": \"iana\",\n \"extensions\": [\"ipk\"]\n },\n \"application/vnd.shootproof+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.shopkick+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.shp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.shx\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sigrok.session\": {\n \"source\": \"iana\"\n },\n \"application/vnd.simtech-mindmapper\": {\n \"source\": \"iana\",\n \"extensions\": [\"twd\",\"twds\"]\n },\n \"application/vnd.siren+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.smaf\": {\n \"source\": \"iana\",\n \"extensions\": [\"mmf\"]\n },\n \"application/vnd.smart.notebook\": {\n \"source\": \"iana\"\n },\n \"application/vnd.smart.teacher\": {\n \"source\": \"iana\",\n \"extensions\": [\"teacher\"]\n },\n \"application/vnd.snesdev-page-table\": {\n \"source\": \"iana\"\n },\n \"application/vnd.software602.filler.form+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"fo\"]\n },\n \"application/vnd.software602.filler.form-xml-zip\": {\n \"source\": \"iana\"\n },\n \"application/vnd.solent.sdkm+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"sdkm\",\"sdkd\"]\n },\n \"application/vnd.spotfire.dxp\": {\n \"source\": \"iana\",\n \"extensions\": [\"dxp\"]\n },\n \"application/vnd.spotfire.sfs\": {\n \"source\": \"iana\",\n \"extensions\": [\"sfs\"]\n },\n \"application/vnd.sqlite3\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sss-cod\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sss-dtf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sss-ntf\": {\n \"source\": \"iana\"\n },\n \"application/vnd.stardivision.calc\": {\n \"source\": \"apache\",\n \"extensions\": [\"sdc\"]\n },\n \"application/vnd.stardivision.draw\": {\n \"source\": \"apache\",\n \"extensions\": [\"sda\"]\n },\n \"application/vnd.stardivision.impress\": {\n \"source\": \"apache\",\n \"extensions\": [\"sdd\"]\n },\n \"application/vnd.stardivision.math\": {\n \"source\": \"apache\",\n \"extensions\": [\"smf\"]\n },\n \"application/vnd.stardivision.writer\": {\n \"source\": \"apache\",\n \"extensions\": [\"sdw\",\"vor\"]\n },\n \"application/vnd.stardivision.writer-global\": {\n \"source\": \"apache\",\n \"extensions\": [\"sgl\"]\n },\n \"application/vnd.stepmania.package\": {\n \"source\": \"iana\",\n \"extensions\": [\"smzip\"]\n },\n \"application/vnd.stepmania.stepchart\": {\n \"source\": \"iana\",\n \"extensions\": [\"sm\"]\n },\n \"application/vnd.street-stream\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sun.wadl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wadl\"]\n },\n \"application/vnd.sun.xml.calc\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxc\"]\n },\n \"application/vnd.sun.xml.calc.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"stc\"]\n },\n \"application/vnd.sun.xml.draw\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxd\"]\n },\n \"application/vnd.sun.xml.draw.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"std\"]\n },\n \"application/vnd.sun.xml.impress\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxi\"]\n },\n \"application/vnd.sun.xml.impress.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"sti\"]\n },\n \"application/vnd.sun.xml.math\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxm\"]\n },\n \"application/vnd.sun.xml.writer\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxw\"]\n },\n \"application/vnd.sun.xml.writer.global\": {\n \"source\": \"apache\",\n \"extensions\": [\"sxg\"]\n },\n \"application/vnd.sun.xml.writer.template\": {\n \"source\": \"apache\",\n \"extensions\": [\"stw\"]\n },\n \"application/vnd.sus-calendar\": {\n \"source\": \"iana\",\n \"extensions\": [\"sus\",\"susp\"]\n },\n \"application/vnd.svd\": {\n \"source\": \"iana\",\n \"extensions\": [\"svd\"]\n },\n \"application/vnd.swiftview-ics\": {\n \"source\": \"iana\"\n },\n \"application/vnd.sycle+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.syft+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.symbian.install\": {\n \"source\": \"apache\",\n \"extensions\": [\"sis\",\"sisx\"]\n },\n \"application/vnd.syncml+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"xsm\"]\n },\n \"application/vnd.syncml.dm+wbxml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"bdm\"]\n },\n \"application/vnd.syncml.dm+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"xdm\"]\n },\n \"application/vnd.syncml.dm.notification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.syncml.dmddf+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.syncml.dmddf+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"ddf\"]\n },\n \"application/vnd.syncml.dmtnds+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.syncml.dmtnds+xml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true\n },\n \"application/vnd.syncml.ds.notification\": {\n \"source\": \"iana\"\n },\n \"application/vnd.tableschema+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.tao.intent-module-archive\": {\n \"source\": \"iana\",\n \"extensions\": [\"tao\"]\n },\n \"application/vnd.tcpdump.pcap\": {\n \"source\": \"iana\",\n \"extensions\": [\"pcap\",\"cap\",\"dmp\"]\n },\n \"application/vnd.think-cell.ppttc+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.tmd.mediaflex.api+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.tml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.tmobile-livetv\": {\n \"source\": \"iana\",\n \"extensions\": [\"tmo\"]\n },\n \"application/vnd.tri.onesource\": {\n \"source\": \"iana\"\n },\n \"application/vnd.trid.tpt\": {\n \"source\": \"iana\",\n \"extensions\": [\"tpt\"]\n },\n \"application/vnd.triscape.mxs\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxs\"]\n },\n \"application/vnd.trueapp\": {\n \"source\": \"iana\",\n \"extensions\": [\"tra\"]\n },\n \"application/vnd.truedoc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ubisoft.webplayer\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ufdl\": {\n \"source\": \"iana\",\n \"extensions\": [\"ufd\",\"ufdl\"]\n },\n \"application/vnd.uiq.theme\": {\n \"source\": \"iana\",\n \"extensions\": [\"utz\"]\n },\n \"application/vnd.umajin\": {\n \"source\": \"iana\",\n \"extensions\": [\"umj\"]\n },\n \"application/vnd.unity\": {\n \"source\": \"iana\",\n \"extensions\": [\"unityweb\"]\n },\n \"application/vnd.uoml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"uoml\"]\n },\n \"application/vnd.uplanet.alert\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.alert-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.bearer-choice\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.bearer-choice-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.cacheop\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.cacheop-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.channel\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.channel-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.list\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.list-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.listcmd\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.listcmd-wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uplanet.signal\": {\n \"source\": \"iana\"\n },\n \"application/vnd.uri-map\": {\n \"source\": \"iana\"\n },\n \"application/vnd.valve.source.material\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vcx\": {\n \"source\": \"iana\",\n \"extensions\": [\"vcx\"]\n },\n \"application/vnd.vd-study\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vectorworks\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vel+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.verimatrix.vcas\": {\n \"source\": \"iana\"\n },\n \"application/vnd.veritone.aion+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.veryant.thin\": {\n \"source\": \"iana\"\n },\n \"application/vnd.ves.encrypted\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vidsoft.vidconference\": {\n \"source\": \"iana\"\n },\n \"application/vnd.visio\": {\n \"source\": \"iana\",\n \"extensions\": [\"vsd\",\"vst\",\"vss\",\"vsw\"]\n },\n \"application/vnd.visionary\": {\n \"source\": \"iana\",\n \"extensions\": [\"vis\"]\n },\n \"application/vnd.vividence.scriptfile\": {\n \"source\": \"iana\"\n },\n \"application/vnd.vsf\": {\n \"source\": \"iana\",\n \"extensions\": [\"vsf\"]\n },\n \"application/vnd.wap.sic\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wap.slc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wap.wbxml\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"wbxml\"]\n },\n \"application/vnd.wap.wmlc\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmlc\"]\n },\n \"application/vnd.wap.wmlscriptc\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmlsc\"]\n },\n \"application/vnd.webturbo\": {\n \"source\": \"iana\",\n \"extensions\": [\"wtb\"]\n },\n \"application/vnd.wfa.dpp\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wfa.p2p\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wfa.wsc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.windows.devicepairing\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wmc\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wmf.bootstrap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wolfram.mathematica\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wolfram.mathematica.package\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wolfram.player\": {\n \"source\": \"iana\",\n \"extensions\": [\"nbp\"]\n },\n \"application/vnd.wordperfect\": {\n \"source\": \"iana\",\n \"extensions\": [\"wpd\"]\n },\n \"application/vnd.wqd\": {\n \"source\": \"iana\",\n \"extensions\": [\"wqd\"]\n },\n \"application/vnd.wrq-hp3000-labelled\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wt.stf\": {\n \"source\": \"iana\",\n \"extensions\": [\"stf\"]\n },\n \"application/vnd.wv.csp+wbxml\": {\n \"source\": \"iana\"\n },\n \"application/vnd.wv.csp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.wv.ssp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.xacml+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.xara\": {\n \"source\": \"iana\",\n \"extensions\": [\"xar\"]\n },\n \"application/vnd.xfdl\": {\n \"source\": \"iana\",\n \"extensions\": [\"xfdl\"]\n },\n \"application/vnd.xfdl.webform\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmi+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vnd.xmpie.cpkg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.dpkg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.plan\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.ppkg\": {\n \"source\": \"iana\"\n },\n \"application/vnd.xmpie.xlim\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yamaha.hv-dic\": {\n \"source\": \"iana\",\n \"extensions\": [\"hvd\"]\n },\n \"application/vnd.yamaha.hv-script\": {\n \"source\": \"iana\",\n \"extensions\": [\"hvs\"]\n },\n \"application/vnd.yamaha.hv-voice\": {\n \"source\": \"iana\",\n \"extensions\": [\"hvp\"]\n },\n \"application/vnd.yamaha.openscoreformat\": {\n \"source\": \"iana\",\n \"extensions\": [\"osf\"]\n },\n \"application/vnd.yamaha.openscoreformat.osfpvg+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"osfpvg\"]\n },\n \"application/vnd.yamaha.remote-setup\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yamaha.smaf-audio\": {\n \"source\": \"iana\",\n \"extensions\": [\"saf\"]\n },\n \"application/vnd.yamaha.smaf-phrase\": {\n \"source\": \"iana\",\n \"extensions\": [\"spf\"]\n },\n \"application/vnd.yamaha.through-ngn\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yamaha.tunnel-udpencap\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yaoweme\": {\n \"source\": \"iana\"\n },\n \"application/vnd.yellowriver-custom-menu\": {\n \"source\": \"iana\",\n \"extensions\": [\"cmp\"]\n },\n \"application/vnd.youtube.yt\": {\n \"source\": \"iana\"\n },\n \"application/vnd.zul\": {\n \"source\": \"iana\",\n \"extensions\": [\"zir\",\"zirz\"]\n },\n \"application/vnd.zzazz.deck+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"zaz\"]\n },\n \"application/voicexml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"vxml\"]\n },\n \"application/voucher-cms+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/vq-rtcpxr\": {\n \"source\": \"iana\"\n },\n \"application/wasm\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wasm\"]\n },\n \"application/watcherinfo+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wif\"]\n },\n \"application/webpush-options+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/whoispp-query\": {\n \"source\": \"iana\"\n },\n \"application/whoispp-response\": {\n \"source\": \"iana\"\n },\n \"application/widget\": {\n \"source\": \"iana\",\n \"extensions\": [\"wgt\"]\n },\n \"application/winhlp\": {\n \"source\": \"apache\",\n \"extensions\": [\"hlp\"]\n },\n \"application/wita\": {\n \"source\": \"iana\"\n },\n \"application/wordperfect5.1\": {\n \"source\": \"iana\"\n },\n \"application/wsdl+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wsdl\"]\n },\n \"application/wspolicy+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"wspolicy\"]\n },\n \"application/x-7z-compressed\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"7z\"]\n },\n \"application/x-abiword\": {\n \"source\": \"apache\",\n \"extensions\": [\"abw\"]\n },\n \"application/x-ace-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"ace\"]\n },\n \"application/x-amf\": {\n \"source\": \"apache\"\n },\n \"application/x-apple-diskimage\": {\n \"source\": \"apache\",\n \"extensions\": [\"dmg\"]\n },\n \"application/x-arj\": {\n \"compressible\": false,\n \"extensions\": [\"arj\"]\n },\n \"application/x-authorware-bin\": {\n \"source\": \"apache\",\n \"extensions\": [\"aab\",\"x32\",\"u32\",\"vox\"]\n },\n \"application/x-authorware-map\": {\n \"source\": \"apache\",\n \"extensions\": [\"aam\"]\n },\n \"application/x-authorware-seg\": {\n \"source\": \"apache\",\n \"extensions\": [\"aas\"]\n },\n \"application/x-bcpio\": {\n \"source\": \"apache\",\n \"extensions\": [\"bcpio\"]\n },\n \"application/x-bdoc\": {\n \"compressible\": false,\n \"extensions\": [\"bdoc\"]\n },\n \"application/x-bittorrent\": {\n \"source\": \"apache\",\n \"extensions\": [\"torrent\"]\n },\n \"application/x-blorb\": {\n \"source\": \"apache\",\n \"extensions\": [\"blb\",\"blorb\"]\n },\n \"application/x-bzip\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"bz\"]\n },\n \"application/x-bzip2\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"bz2\",\"boz\"]\n },\n \"application/x-cbr\": {\n \"source\": \"apache\",\n \"extensions\": [\"cbr\",\"cba\",\"cbt\",\"cbz\",\"cb7\"]\n },\n \"application/x-cdlink\": {\n \"source\": \"apache\",\n \"extensions\": [\"vcd\"]\n },\n \"application/x-cfs-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"cfs\"]\n },\n \"application/x-chat\": {\n \"source\": \"apache\",\n \"extensions\": [\"chat\"]\n },\n \"application/x-chess-pgn\": {\n \"source\": \"apache\",\n \"extensions\": [\"pgn\"]\n },\n \"application/x-chrome-extension\": {\n \"extensions\": [\"crx\"]\n },\n \"application/x-cocoa\": {\n \"source\": \"nginx\",\n \"extensions\": [\"cco\"]\n },\n \"application/x-compress\": {\n \"source\": \"apache\"\n },\n \"application/x-conference\": {\n \"source\": \"apache\",\n \"extensions\": [\"nsc\"]\n },\n \"application/x-cpio\": {\n \"source\": \"apache\",\n \"extensions\": [\"cpio\"]\n },\n \"application/x-csh\": {\n \"source\": \"apache\",\n \"extensions\": [\"csh\"]\n },\n \"application/x-deb\": {\n \"compressible\": false\n },\n \"application/x-debian-package\": {\n \"source\": \"apache\",\n \"extensions\": [\"deb\",\"udeb\"]\n },\n \"application/x-dgc-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"dgc\"]\n },\n \"application/x-director\": {\n \"source\": \"apache\",\n \"extensions\": [\"dir\",\"dcr\",\"dxr\",\"cst\",\"cct\",\"cxt\",\"w3d\",\"fgd\",\"swa\"]\n },\n \"application/x-doom\": {\n \"source\": \"apache\",\n \"extensions\": [\"wad\"]\n },\n \"application/x-dtbncx+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"ncx\"]\n },\n \"application/x-dtbook+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"dtb\"]\n },\n \"application/x-dtbresource+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"res\"]\n },\n \"application/x-dvi\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"dvi\"]\n },\n \"application/x-envoy\": {\n \"source\": \"apache\",\n \"extensions\": [\"evy\"]\n },\n \"application/x-eva\": {\n \"source\": \"apache\",\n \"extensions\": [\"eva\"]\n },\n \"application/x-font-bdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"bdf\"]\n },\n \"application/x-font-dos\": {\n \"source\": \"apache\"\n },\n \"application/x-font-framemaker\": {\n \"source\": \"apache\"\n },\n \"application/x-font-ghostscript\": {\n \"source\": \"apache\",\n \"extensions\": [\"gsf\"]\n },\n \"application/x-font-libgrx\": {\n \"source\": \"apache\"\n },\n \"application/x-font-linux-psf\": {\n \"source\": \"apache\",\n \"extensions\": [\"psf\"]\n },\n \"application/x-font-pcf\": {\n \"source\": \"apache\",\n \"extensions\": [\"pcf\"]\n },\n \"application/x-font-snf\": {\n \"source\": \"apache\",\n \"extensions\": [\"snf\"]\n },\n \"application/x-font-speedo\": {\n \"source\": \"apache\"\n },\n \"application/x-font-sunos-news\": {\n \"source\": \"apache\"\n },\n \"application/x-font-type1\": {\n \"source\": \"apache\",\n \"extensions\": [\"pfa\",\"pfb\",\"pfm\",\"afm\"]\n },\n \"application/x-font-vfont\": {\n \"source\": \"apache\"\n },\n \"application/x-freearc\": {\n \"source\": \"apache\",\n \"extensions\": [\"arc\"]\n },\n \"application/x-futuresplash\": {\n \"source\": \"apache\",\n \"extensions\": [\"spl\"]\n },\n \"application/x-gca-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"gca\"]\n },\n \"application/x-glulx\": {\n \"source\": \"apache\",\n \"extensions\": [\"ulx\"]\n },\n \"application/x-gnumeric\": {\n \"source\": \"apache\",\n \"extensions\": [\"gnumeric\"]\n },\n \"application/x-gramps-xml\": {\n \"source\": \"apache\",\n \"extensions\": [\"gramps\"]\n },\n \"application/x-gtar\": {\n \"source\": \"apache\",\n \"extensions\": [\"gtar\"]\n },\n \"application/x-gzip\": {\n \"source\": \"apache\"\n },\n \"application/x-hdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"hdf\"]\n },\n \"application/x-httpd-php\": {\n \"compressible\": true,\n \"extensions\": [\"php\"]\n },\n \"application/x-install-instructions\": {\n \"source\": \"apache\",\n \"extensions\": [\"install\"]\n },\n \"application/x-iso9660-image\": {\n \"source\": \"apache\",\n \"extensions\": [\"iso\"]\n },\n \"application/x-iwork-keynote-sffkey\": {\n \"extensions\": [\"key\"]\n },\n \"application/x-iwork-numbers-sffnumbers\": {\n \"extensions\": [\"numbers\"]\n },\n \"application/x-iwork-pages-sffpages\": {\n \"extensions\": [\"pages\"]\n },\n \"application/x-java-archive-diff\": {\n \"source\": \"nginx\",\n \"extensions\": [\"jardiff\"]\n },\n \"application/x-java-jnlp-file\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"jnlp\"]\n },\n \"application/x-javascript\": {\n \"compressible\": true\n },\n \"application/x-keepass2\": {\n \"extensions\": [\"kdbx\"]\n },\n \"application/x-latex\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"latex\"]\n },\n \"application/x-lua-bytecode\": {\n \"extensions\": [\"luac\"]\n },\n \"application/x-lzh-compressed\": {\n \"source\": \"apache\",\n \"extensions\": [\"lzh\",\"lha\"]\n },\n \"application/x-makeself\": {\n \"source\": \"nginx\",\n \"extensions\": [\"run\"]\n },\n \"application/x-mie\": {\n \"source\": \"apache\",\n \"extensions\": [\"mie\"]\n },\n \"application/x-mobipocket-ebook\": {\n \"source\": \"apache\",\n \"extensions\": [\"prc\",\"mobi\"]\n },\n \"application/x-mpegurl\": {\n \"compressible\": false\n },\n \"application/x-ms-application\": {\n \"source\": \"apache\",\n \"extensions\": [\"application\"]\n },\n \"application/x-ms-shortcut\": {\n \"source\": \"apache\",\n \"extensions\": [\"lnk\"]\n },\n \"application/x-ms-wmd\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmd\"]\n },\n \"application/x-ms-wmz\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmz\"]\n },\n \"application/x-ms-xbap\": {\n \"source\": \"apache\",\n \"extensions\": [\"xbap\"]\n },\n \"application/x-msaccess\": {\n \"source\": \"apache\",\n \"extensions\": [\"mdb\"]\n },\n \"application/x-msbinder\": {\n \"source\": \"apache\",\n \"extensions\": [\"obd\"]\n },\n \"application/x-mscardfile\": {\n \"source\": \"apache\",\n \"extensions\": [\"crd\"]\n },\n \"application/x-msclip\": {\n \"source\": \"apache\",\n \"extensions\": [\"clp\"]\n },\n \"application/x-msdos-program\": {\n \"extensions\": [\"exe\"]\n },\n \"application/x-msdownload\": {\n \"source\": \"apache\",\n \"extensions\": [\"exe\",\"dll\",\"com\",\"bat\",\"msi\"]\n },\n \"application/x-msmediaview\": {\n \"source\": \"apache\",\n \"extensions\": [\"mvb\",\"m13\",\"m14\"]\n },\n \"application/x-msmetafile\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmf\",\"wmz\",\"emf\",\"emz\"]\n },\n \"application/x-msmoney\": {\n \"source\": \"apache\",\n \"extensions\": [\"mny\"]\n },\n \"application/x-mspublisher\": {\n \"source\": \"apache\",\n \"extensions\": [\"pub\"]\n },\n \"application/x-msschedule\": {\n \"source\": \"apache\",\n \"extensions\": [\"scd\"]\n },\n \"application/x-msterminal\": {\n \"source\": \"apache\",\n \"extensions\": [\"trm\"]\n },\n \"application/x-mswrite\": {\n \"source\": \"apache\",\n \"extensions\": [\"wri\"]\n },\n \"application/x-netcdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"nc\",\"cdf\"]\n },\n \"application/x-ns-proxy-autoconfig\": {\n \"compressible\": true,\n \"extensions\": [\"pac\"]\n },\n \"application/x-nzb\": {\n \"source\": \"apache\",\n \"extensions\": [\"nzb\"]\n },\n \"application/x-perl\": {\n \"source\": \"nginx\",\n \"extensions\": [\"pl\",\"pm\"]\n },\n \"application/x-pilot\": {\n \"source\": \"nginx\",\n \"extensions\": [\"prc\",\"pdb\"]\n },\n \"application/x-pkcs12\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"p12\",\"pfx\"]\n },\n \"application/x-pkcs7-certificates\": {\n \"source\": \"apache\",\n \"extensions\": [\"p7b\",\"spc\"]\n },\n \"application/x-pkcs7-certreqresp\": {\n \"source\": \"apache\",\n \"extensions\": [\"p7r\"]\n },\n \"application/x-pki-message\": {\n \"source\": \"iana\"\n },\n \"application/x-rar-compressed\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"rar\"]\n },\n \"application/x-redhat-package-manager\": {\n \"source\": \"nginx\",\n \"extensions\": [\"rpm\"]\n },\n \"application/x-research-info-systems\": {\n \"source\": \"apache\",\n \"extensions\": [\"ris\"]\n },\n \"application/x-sea\": {\n \"source\": \"nginx\",\n \"extensions\": [\"sea\"]\n },\n \"application/x-sh\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"sh\"]\n },\n \"application/x-shar\": {\n \"source\": \"apache\",\n \"extensions\": [\"shar\"]\n },\n \"application/x-shockwave-flash\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"swf\"]\n },\n \"application/x-silverlight-app\": {\n \"source\": \"apache\",\n \"extensions\": [\"xap\"]\n },\n \"application/x-sql\": {\n \"source\": \"apache\",\n \"extensions\": [\"sql\"]\n },\n \"application/x-stuffit\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"sit\"]\n },\n \"application/x-stuffitx\": {\n \"source\": \"apache\",\n \"extensions\": [\"sitx\"]\n },\n \"application/x-subrip\": {\n \"source\": \"apache\",\n \"extensions\": [\"srt\"]\n },\n \"application/x-sv4cpio\": {\n \"source\": \"apache\",\n \"extensions\": [\"sv4cpio\"]\n },\n \"application/x-sv4crc\": {\n \"source\": \"apache\",\n \"extensions\": [\"sv4crc\"]\n },\n \"application/x-t3vm-image\": {\n \"source\": \"apache\",\n \"extensions\": [\"t3\"]\n },\n \"application/x-tads\": {\n \"source\": \"apache\",\n \"extensions\": [\"gam\"]\n },\n \"application/x-tar\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"tar\"]\n },\n \"application/x-tcl\": {\n \"source\": \"apache\",\n \"extensions\": [\"tcl\",\"tk\"]\n },\n \"application/x-tex\": {\n \"source\": \"apache\",\n \"extensions\": [\"tex\"]\n },\n \"application/x-tex-tfm\": {\n \"source\": \"apache\",\n \"extensions\": [\"tfm\"]\n },\n \"application/x-texinfo\": {\n \"source\": \"apache\",\n \"extensions\": [\"texinfo\",\"texi\"]\n },\n \"application/x-tgif\": {\n \"source\": \"apache\",\n \"extensions\": [\"obj\"]\n },\n \"application/x-ustar\": {\n \"source\": \"apache\",\n \"extensions\": [\"ustar\"]\n },\n \"application/x-virtualbox-hdd\": {\n \"compressible\": true,\n \"extensions\": [\"hdd\"]\n },\n \"application/x-virtualbox-ova\": {\n \"compressible\": true,\n \"extensions\": [\"ova\"]\n },\n \"application/x-virtualbox-ovf\": {\n \"compressible\": true,\n \"extensions\": [\"ovf\"]\n },\n \"application/x-virtualbox-vbox\": {\n \"compressible\": true,\n \"extensions\": [\"vbox\"]\n },\n \"application/x-virtualbox-vbox-extpack\": {\n \"compressible\": false,\n \"extensions\": [\"vbox-extpack\"]\n },\n \"application/x-virtualbox-vdi\": {\n \"compressible\": true,\n \"extensions\": [\"vdi\"]\n },\n \"application/x-virtualbox-vhd\": {\n \"compressible\": true,\n \"extensions\": [\"vhd\"]\n },\n \"application/x-virtualbox-vmdk\": {\n \"compressible\": true,\n \"extensions\": [\"vmdk\"]\n },\n \"application/x-wais-source\": {\n \"source\": \"apache\",\n \"extensions\": [\"src\"]\n },\n \"application/x-web-app-manifest+json\": {\n \"compressible\": true,\n \"extensions\": [\"webapp\"]\n },\n \"application/x-www-form-urlencoded\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/x-x509-ca-cert\": {\n \"source\": \"iana\",\n \"extensions\": [\"der\",\"crt\",\"pem\"]\n },\n \"application/x-x509-ca-ra-cert\": {\n \"source\": \"iana\"\n },\n \"application/x-x509-next-ca-cert\": {\n \"source\": \"iana\"\n },\n \"application/x-xfig\": {\n \"source\": \"apache\",\n \"extensions\": [\"fig\"]\n },\n \"application/x-xliff+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xlf\"]\n },\n \"application/x-xpinstall\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"xpi\"]\n },\n \"application/x-xz\": {\n \"source\": \"apache\",\n \"extensions\": [\"xz\"]\n },\n \"application/x-zmachine\": {\n \"source\": \"apache\",\n \"extensions\": [\"z1\",\"z2\",\"z3\",\"z4\",\"z5\",\"z6\",\"z7\",\"z8\"]\n },\n \"application/x400-bp\": {\n \"source\": \"iana\"\n },\n \"application/xacml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xaml+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xaml\"]\n },\n \"application/xcap-att+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xav\"]\n },\n \"application/xcap-caps+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xca\"]\n },\n \"application/xcap-diff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xdf\"]\n },\n \"application/xcap-el+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xel\"]\n },\n \"application/xcap-error+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xcap-ns+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xns\"]\n },\n \"application/xcon-conference-info+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xcon-conference-info-diff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xenc+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xenc\"]\n },\n \"application/xhtml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xhtml\",\"xht\"]\n },\n \"application/xhtml-voice+xml\": {\n \"source\": \"apache\",\n \"compressible\": true\n },\n \"application/xliff+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xlf\"]\n },\n \"application/xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xml\",\"xsl\",\"xsd\",\"rng\"]\n },\n \"application/xml-dtd\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dtd\"]\n },\n \"application/xml-external-parsed-entity\": {\n \"source\": \"iana\"\n },\n \"application/xml-patch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xmpp+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/xop+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xop\"]\n },\n \"application/xproc+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xpl\"]\n },\n \"application/xslt+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xsl\",\"xslt\"]\n },\n \"application/xspf+xml\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"xspf\"]\n },\n \"application/xv+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"mxml\",\"xhvml\",\"xvml\",\"xvm\"]\n },\n \"application/yang\": {\n \"source\": \"iana\",\n \"extensions\": [\"yang\"]\n },\n \"application/yang-data+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yang-data+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yang-patch+json\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yang-patch+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"application/yin+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"yin\"]\n },\n \"application/zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"zip\"]\n },\n \"application/zlib\": {\n \"source\": \"iana\"\n },\n \"application/zstd\": {\n \"source\": \"iana\"\n },\n \"audio/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"audio/32kadpcm\": {\n \"source\": \"iana\"\n },\n \"audio/3gpp\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"3gpp\"]\n },\n \"audio/3gpp2\": {\n \"source\": \"iana\"\n },\n \"audio/aac\": {\n \"source\": \"iana\"\n },\n \"audio/ac3\": {\n \"source\": \"iana\"\n },\n \"audio/adpcm\": {\n \"source\": \"apache\",\n \"extensions\": [\"adp\"]\n },\n \"audio/amr\": {\n \"source\": \"iana\",\n \"extensions\": [\"amr\"]\n },\n \"audio/amr-wb\": {\n \"source\": \"iana\"\n },\n \"audio/amr-wb+\": {\n \"source\": \"iana\"\n },\n \"audio/aptx\": {\n \"source\": \"iana\"\n },\n \"audio/asc\": {\n \"source\": \"iana\"\n },\n \"audio/atrac-advanced-lossless\": {\n \"source\": \"iana\"\n },\n \"audio/atrac-x\": {\n \"source\": \"iana\"\n },\n \"audio/atrac3\": {\n \"source\": \"iana\"\n },\n \"audio/basic\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"au\",\"snd\"]\n },\n \"audio/bv16\": {\n \"source\": \"iana\"\n },\n \"audio/bv32\": {\n \"source\": \"iana\"\n },\n \"audio/clearmode\": {\n \"source\": \"iana\"\n },\n \"audio/cn\": {\n \"source\": \"iana\"\n },\n \"audio/dat12\": {\n \"source\": \"iana\"\n },\n \"audio/dls\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es201108\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es202050\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es202211\": {\n \"source\": \"iana\"\n },\n \"audio/dsr-es202212\": {\n \"source\": \"iana\"\n },\n \"audio/dv\": {\n \"source\": \"iana\"\n },\n \"audio/dvi4\": {\n \"source\": \"iana\"\n },\n \"audio/eac3\": {\n \"source\": \"iana\"\n },\n \"audio/encaprtp\": {\n \"source\": \"iana\"\n },\n \"audio/evrc\": {\n \"source\": \"iana\"\n },\n \"audio/evrc-qcp\": {\n \"source\": \"iana\"\n },\n \"audio/evrc0\": {\n \"source\": \"iana\"\n },\n \"audio/evrc1\": {\n \"source\": \"iana\"\n },\n \"audio/evrcb\": {\n \"source\": \"iana\"\n },\n \"audio/evrcb0\": {\n \"source\": \"iana\"\n },\n \"audio/evrcb1\": {\n \"source\": \"iana\"\n },\n \"audio/evrcnw\": {\n \"source\": \"iana\"\n },\n \"audio/evrcnw0\": {\n \"source\": \"iana\"\n },\n \"audio/evrcnw1\": {\n \"source\": \"iana\"\n },\n \"audio/evrcwb\": {\n \"source\": \"iana\"\n },\n \"audio/evrcwb0\": {\n \"source\": \"iana\"\n },\n \"audio/evrcwb1\": {\n \"source\": \"iana\"\n },\n \"audio/evs\": {\n \"source\": \"iana\"\n },\n \"audio/flexfec\": {\n \"source\": \"iana\"\n },\n \"audio/fwdred\": {\n \"source\": \"iana\"\n },\n \"audio/g711-0\": {\n \"source\": \"iana\"\n },\n \"audio/g719\": {\n \"source\": \"iana\"\n },\n \"audio/g722\": {\n \"source\": \"iana\"\n },\n \"audio/g7221\": {\n \"source\": \"iana\"\n },\n \"audio/g723\": {\n \"source\": \"iana\"\n },\n \"audio/g726-16\": {\n \"source\": \"iana\"\n },\n \"audio/g726-24\": {\n \"source\": \"iana\"\n },\n \"audio/g726-32\": {\n \"source\": \"iana\"\n },\n \"audio/g726-40\": {\n \"source\": \"iana\"\n },\n \"audio/g728\": {\n \"source\": \"iana\"\n },\n \"audio/g729\": {\n \"source\": \"iana\"\n },\n \"audio/g7291\": {\n \"source\": \"iana\"\n },\n \"audio/g729d\": {\n \"source\": \"iana\"\n },\n \"audio/g729e\": {\n \"source\": \"iana\"\n },\n \"audio/gsm\": {\n \"source\": \"iana\"\n },\n \"audio/gsm-efr\": {\n \"source\": \"iana\"\n },\n \"audio/gsm-hr-08\": {\n \"source\": \"iana\"\n },\n \"audio/ilbc\": {\n \"source\": \"iana\"\n },\n \"audio/ip-mr_v2.5\": {\n \"source\": \"iana\"\n },\n \"audio/isac\": {\n \"source\": \"apache\"\n },\n \"audio/l16\": {\n \"source\": \"iana\"\n },\n \"audio/l20\": {\n \"source\": \"iana\"\n },\n \"audio/l24\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"audio/l8\": {\n \"source\": \"iana\"\n },\n \"audio/lpc\": {\n \"source\": \"iana\"\n },\n \"audio/melp\": {\n \"source\": \"iana\"\n },\n \"audio/melp1200\": {\n \"source\": \"iana\"\n },\n \"audio/melp2400\": {\n \"source\": \"iana\"\n },\n \"audio/melp600\": {\n \"source\": \"iana\"\n },\n \"audio/mhas\": {\n \"source\": \"iana\"\n },\n \"audio/midi\": {\n \"source\": \"apache\",\n \"extensions\": [\"mid\",\"midi\",\"kar\",\"rmi\"]\n },\n \"audio/mobile-xmf\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxmf\"]\n },\n \"audio/mp3\": {\n \"compressible\": false,\n \"extensions\": [\"mp3\"]\n },\n \"audio/mp4\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"m4a\",\"mp4a\"]\n },\n \"audio/mp4a-latm\": {\n \"source\": \"iana\"\n },\n \"audio/mpa\": {\n \"source\": \"iana\"\n },\n \"audio/mpa-robust\": {\n \"source\": \"iana\"\n },\n \"audio/mpeg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"mpga\",\"mp2\",\"mp2a\",\"mp3\",\"m2a\",\"m3a\"]\n },\n \"audio/mpeg4-generic\": {\n \"source\": \"iana\"\n },\n \"audio/musepack\": {\n \"source\": \"apache\"\n },\n \"audio/ogg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"oga\",\"ogg\",\"spx\",\"opus\"]\n },\n \"audio/opus\": {\n \"source\": \"iana\"\n },\n \"audio/parityfec\": {\n \"source\": \"iana\"\n },\n \"audio/pcma\": {\n \"source\": \"iana\"\n },\n \"audio/pcma-wb\": {\n \"source\": \"iana\"\n },\n \"audio/pcmu\": {\n \"source\": \"iana\"\n },\n \"audio/pcmu-wb\": {\n \"source\": \"iana\"\n },\n \"audio/prs.sid\": {\n \"source\": \"iana\"\n },\n \"audio/qcelp\": {\n \"source\": \"iana\"\n },\n \"audio/raptorfec\": {\n \"source\": \"iana\"\n },\n \"audio/red\": {\n \"source\": \"iana\"\n },\n \"audio/rtp-enc-aescm128\": {\n \"source\": \"iana\"\n },\n \"audio/rtp-midi\": {\n \"source\": \"iana\"\n },\n \"audio/rtploopback\": {\n \"source\": \"iana\"\n },\n \"audio/rtx\": {\n \"source\": \"iana\"\n },\n \"audio/s3m\": {\n \"source\": \"apache\",\n \"extensions\": [\"s3m\"]\n },\n \"audio/scip\": {\n \"source\": \"iana\"\n },\n \"audio/silk\": {\n \"source\": \"apache\",\n \"extensions\": [\"sil\"]\n },\n \"audio/smv\": {\n \"source\": \"iana\"\n },\n \"audio/smv-qcp\": {\n \"source\": \"iana\"\n },\n \"audio/smv0\": {\n \"source\": \"iana\"\n },\n \"audio/sofa\": {\n \"source\": \"iana\"\n },\n \"audio/sp-midi\": {\n \"source\": \"iana\"\n },\n \"audio/speex\": {\n \"source\": \"iana\"\n },\n \"audio/t140c\": {\n \"source\": \"iana\"\n },\n \"audio/t38\": {\n \"source\": \"iana\"\n },\n \"audio/telephone-event\": {\n \"source\": \"iana\"\n },\n \"audio/tetra_acelp\": {\n \"source\": \"iana\"\n },\n \"audio/tetra_acelp_bb\": {\n \"source\": \"iana\"\n },\n \"audio/tone\": {\n \"source\": \"iana\"\n },\n \"audio/tsvcis\": {\n \"source\": \"iana\"\n },\n \"audio/uemclip\": {\n \"source\": \"iana\"\n },\n \"audio/ulpfec\": {\n \"source\": \"iana\"\n },\n \"audio/usac\": {\n \"source\": \"iana\"\n },\n \"audio/vdvi\": {\n \"source\": \"iana\"\n },\n \"audio/vmr-wb\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.3gpp.iufp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.4sb\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.audiokoz\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.celp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cisco.nse\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cmles.radio-events\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cns.anp1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.cns.inf1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dece.audio\": {\n \"source\": \"iana\",\n \"extensions\": [\"uva\",\"uvva\"]\n },\n \"audio/vnd.digital-winds\": {\n \"source\": \"iana\",\n \"extensions\": [\"eol\"]\n },\n \"audio/vnd.dlna.adts\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.heaac.1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.heaac.2\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.mlp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.mps\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pl2\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pl2x\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pl2z\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dolby.pulse.1\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dra\": {\n \"source\": \"iana\",\n \"extensions\": [\"dra\"]\n },\n \"audio/vnd.dts\": {\n \"source\": \"iana\",\n \"extensions\": [\"dts\"]\n },\n \"audio/vnd.dts.hd\": {\n \"source\": \"iana\",\n \"extensions\": [\"dtshd\"]\n },\n \"audio/vnd.dts.uhd\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.dvb.file\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.everad.plj\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.hns.audio\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.lucent.voice\": {\n \"source\": \"iana\",\n \"extensions\": [\"lvp\"]\n },\n \"audio/vnd.ms-playready.media.pya\": {\n \"source\": \"iana\",\n \"extensions\": [\"pya\"]\n },\n \"audio/vnd.nokia.mobile-xmf\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.nortel.vbk\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.nuera.ecelp4800\": {\n \"source\": \"iana\",\n \"extensions\": [\"ecelp4800\"]\n },\n \"audio/vnd.nuera.ecelp7470\": {\n \"source\": \"iana\",\n \"extensions\": [\"ecelp7470\"]\n },\n \"audio/vnd.nuera.ecelp9600\": {\n \"source\": \"iana\",\n \"extensions\": [\"ecelp9600\"]\n },\n \"audio/vnd.octel.sbc\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.presonus.multitrack\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.qcelp\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.rhetorex.32kadpcm\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.rip\": {\n \"source\": \"iana\",\n \"extensions\": [\"rip\"]\n },\n \"audio/vnd.rn-realaudio\": {\n \"compressible\": false\n },\n \"audio/vnd.sealedmedia.softseal.mpeg\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.vmx.cvsd\": {\n \"source\": \"iana\"\n },\n \"audio/vnd.wave\": {\n \"compressible\": false\n },\n \"audio/vorbis\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"audio/vorbis-config\": {\n \"source\": \"iana\"\n },\n \"audio/wav\": {\n \"compressible\": false,\n \"extensions\": [\"wav\"]\n },\n \"audio/wave\": {\n \"compressible\": false,\n \"extensions\": [\"wav\"]\n },\n \"audio/webm\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"weba\"]\n },\n \"audio/x-aac\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"aac\"]\n },\n \"audio/x-aiff\": {\n \"source\": \"apache\",\n \"extensions\": [\"aif\",\"aiff\",\"aifc\"]\n },\n \"audio/x-caf\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"caf\"]\n },\n \"audio/x-flac\": {\n \"source\": \"apache\",\n \"extensions\": [\"flac\"]\n },\n \"audio/x-m4a\": {\n \"source\": \"nginx\",\n \"extensions\": [\"m4a\"]\n },\n \"audio/x-matroska\": {\n \"source\": \"apache\",\n \"extensions\": [\"mka\"]\n },\n \"audio/x-mpegurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"m3u\"]\n },\n \"audio/x-ms-wax\": {\n \"source\": \"apache\",\n \"extensions\": [\"wax\"]\n },\n \"audio/x-ms-wma\": {\n \"source\": \"apache\",\n \"extensions\": [\"wma\"]\n },\n \"audio/x-pn-realaudio\": {\n \"source\": \"apache\",\n \"extensions\": [\"ram\",\"ra\"]\n },\n \"audio/x-pn-realaudio-plugin\": {\n \"source\": \"apache\",\n \"extensions\": [\"rmp\"]\n },\n \"audio/x-realaudio\": {\n \"source\": \"nginx\",\n \"extensions\": [\"ra\"]\n },\n \"audio/x-tta\": {\n \"source\": \"apache\"\n },\n \"audio/x-wav\": {\n \"source\": \"apache\",\n \"extensions\": [\"wav\"]\n },\n \"audio/xm\": {\n \"source\": \"apache\",\n \"extensions\": [\"xm\"]\n },\n \"chemical/x-cdx\": {\n \"source\": \"apache\",\n \"extensions\": [\"cdx\"]\n },\n \"chemical/x-cif\": {\n \"source\": \"apache\",\n \"extensions\": [\"cif\"]\n },\n \"chemical/x-cmdf\": {\n \"source\": \"apache\",\n \"extensions\": [\"cmdf\"]\n },\n \"chemical/x-cml\": {\n \"source\": \"apache\",\n \"extensions\": [\"cml\"]\n },\n \"chemical/x-csml\": {\n \"source\": \"apache\",\n \"extensions\": [\"csml\"]\n },\n \"chemical/x-pdb\": {\n \"source\": \"apache\"\n },\n \"chemical/x-xyz\": {\n \"source\": \"apache\",\n \"extensions\": [\"xyz\"]\n },\n \"font/collection\": {\n \"source\": \"iana\",\n \"extensions\": [\"ttc\"]\n },\n \"font/otf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"otf\"]\n },\n \"font/sfnt\": {\n \"source\": \"iana\"\n },\n \"font/ttf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ttf\"]\n },\n \"font/woff\": {\n \"source\": \"iana\",\n \"extensions\": [\"woff\"]\n },\n \"font/woff2\": {\n \"source\": \"iana\",\n \"extensions\": [\"woff2\"]\n },\n \"image/aces\": {\n \"source\": \"iana\",\n \"extensions\": [\"exr\"]\n },\n \"image/apng\": {\n \"compressible\": false,\n \"extensions\": [\"apng\"]\n },\n \"image/avci\": {\n \"source\": \"iana\",\n \"extensions\": [\"avci\"]\n },\n \"image/avcs\": {\n \"source\": \"iana\",\n \"extensions\": [\"avcs\"]\n },\n \"image/avif\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"avif\"]\n },\n \"image/bmp\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"bmp\"]\n },\n \"image/cgm\": {\n \"source\": \"iana\",\n \"extensions\": [\"cgm\"]\n },\n \"image/dicom-rle\": {\n \"source\": \"iana\",\n \"extensions\": [\"drle\"]\n },\n \"image/emf\": {\n \"source\": \"iana\",\n \"extensions\": [\"emf\"]\n },\n \"image/fits\": {\n \"source\": \"iana\",\n \"extensions\": [\"fits\"]\n },\n \"image/g3fax\": {\n \"source\": \"iana\",\n \"extensions\": [\"g3\"]\n },\n \"image/gif\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"gif\"]\n },\n \"image/heic\": {\n \"source\": \"iana\",\n \"extensions\": [\"heic\"]\n },\n \"image/heic-sequence\": {\n \"source\": \"iana\",\n \"extensions\": [\"heics\"]\n },\n \"image/heif\": {\n \"source\": \"iana\",\n \"extensions\": [\"heif\"]\n },\n \"image/heif-sequence\": {\n \"source\": \"iana\",\n \"extensions\": [\"heifs\"]\n },\n \"image/hej2k\": {\n \"source\": \"iana\",\n \"extensions\": [\"hej2\"]\n },\n \"image/hsj2\": {\n \"source\": \"iana\",\n \"extensions\": [\"hsj2\"]\n },\n \"image/ief\": {\n \"source\": \"iana\",\n \"extensions\": [\"ief\"]\n },\n \"image/jls\": {\n \"source\": \"iana\",\n \"extensions\": [\"jls\"]\n },\n \"image/jp2\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jp2\",\"jpg2\"]\n },\n \"image/jpeg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jpeg\",\"jpg\",\"jpe\"]\n },\n \"image/jph\": {\n \"source\": \"iana\",\n \"extensions\": [\"jph\"]\n },\n \"image/jphc\": {\n \"source\": \"iana\",\n \"extensions\": [\"jhc\"]\n },\n \"image/jpm\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jpm\"]\n },\n \"image/jpx\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"jpx\",\"jpf\"]\n },\n \"image/jxr\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxr\"]\n },\n \"image/jxra\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxra\"]\n },\n \"image/jxrs\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxrs\"]\n },\n \"image/jxs\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxs\"]\n },\n \"image/jxsc\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxsc\"]\n },\n \"image/jxsi\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxsi\"]\n },\n \"image/jxss\": {\n \"source\": \"iana\",\n \"extensions\": [\"jxss\"]\n },\n \"image/ktx\": {\n \"source\": \"iana\",\n \"extensions\": [\"ktx\"]\n },\n \"image/ktx2\": {\n \"source\": \"iana\",\n \"extensions\": [\"ktx2\"]\n },\n \"image/naplps\": {\n \"source\": \"iana\"\n },\n \"image/pjpeg\": {\n \"compressible\": false\n },\n \"image/png\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"png\"]\n },\n \"image/prs.btif\": {\n \"source\": \"iana\",\n \"extensions\": [\"btif\"]\n },\n \"image/prs.pti\": {\n \"source\": \"iana\",\n \"extensions\": [\"pti\"]\n },\n \"image/pwg-raster\": {\n \"source\": \"iana\"\n },\n \"image/sgi\": {\n \"source\": \"apache\",\n \"extensions\": [\"sgi\"]\n },\n \"image/svg+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"svg\",\"svgz\"]\n },\n \"image/t38\": {\n \"source\": \"iana\",\n \"extensions\": [\"t38\"]\n },\n \"image/tiff\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"tif\",\"tiff\"]\n },\n \"image/tiff-fx\": {\n \"source\": \"iana\",\n \"extensions\": [\"tfx\"]\n },\n \"image/vnd.adobe.photoshop\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"psd\"]\n },\n \"image/vnd.airzip.accelerator.azv\": {\n \"source\": \"iana\",\n \"extensions\": [\"azv\"]\n },\n \"image/vnd.cns.inf2\": {\n \"source\": \"iana\"\n },\n \"image/vnd.dece.graphic\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvi\",\"uvvi\",\"uvg\",\"uvvg\"]\n },\n \"image/vnd.djvu\": {\n \"source\": \"iana\",\n \"extensions\": [\"djvu\",\"djv\"]\n },\n \"image/vnd.dvb.subtitle\": {\n \"source\": \"iana\",\n \"extensions\": [\"sub\"]\n },\n \"image/vnd.dwg\": {\n \"source\": \"iana\",\n \"extensions\": [\"dwg\"]\n },\n \"image/vnd.dxf\": {\n \"source\": \"iana\",\n \"extensions\": [\"dxf\"]\n },\n \"image/vnd.fastbidsheet\": {\n \"source\": \"iana\",\n \"extensions\": [\"fbs\"]\n },\n \"image/vnd.fpx\": {\n \"source\": \"iana\",\n \"extensions\": [\"fpx\"]\n },\n \"image/vnd.fst\": {\n \"source\": \"iana\",\n \"extensions\": [\"fst\"]\n },\n \"image/vnd.fujixerox.edmics-mmr\": {\n \"source\": \"iana\",\n \"extensions\": [\"mmr\"]\n },\n \"image/vnd.fujixerox.edmics-rlc\": {\n \"source\": \"iana\",\n \"extensions\": [\"rlc\"]\n },\n \"image/vnd.globalgraphics.pgb\": {\n \"source\": \"iana\"\n },\n \"image/vnd.microsoft.icon\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"ico\"]\n },\n \"image/vnd.mix\": {\n \"source\": \"iana\"\n },\n \"image/vnd.mozilla.apng\": {\n \"source\": \"iana\"\n },\n \"image/vnd.ms-dds\": {\n \"compressible\": true,\n \"extensions\": [\"dds\"]\n },\n \"image/vnd.ms-modi\": {\n \"source\": \"iana\",\n \"extensions\": [\"mdi\"]\n },\n \"image/vnd.ms-photo\": {\n \"source\": \"apache\",\n \"extensions\": [\"wdp\"]\n },\n \"image/vnd.net-fpx\": {\n \"source\": \"iana\",\n \"extensions\": [\"npx\"]\n },\n \"image/vnd.pco.b16\": {\n \"source\": \"iana\",\n \"extensions\": [\"b16\"]\n },\n \"image/vnd.radiance\": {\n \"source\": \"iana\"\n },\n \"image/vnd.sealed.png\": {\n \"source\": \"iana\"\n },\n \"image/vnd.sealedmedia.softseal.gif\": {\n \"source\": \"iana\"\n },\n \"image/vnd.sealedmedia.softseal.jpg\": {\n \"source\": \"iana\"\n },\n \"image/vnd.svf\": {\n \"source\": \"iana\"\n },\n \"image/vnd.tencent.tap\": {\n \"source\": \"iana\",\n \"extensions\": [\"tap\"]\n },\n \"image/vnd.valve.source.texture\": {\n \"source\": \"iana\",\n \"extensions\": [\"vtf\"]\n },\n \"image/vnd.wap.wbmp\": {\n \"source\": \"iana\",\n \"extensions\": [\"wbmp\"]\n },\n \"image/vnd.xiff\": {\n \"source\": \"iana\",\n \"extensions\": [\"xif\"]\n },\n \"image/vnd.zbrush.pcx\": {\n \"source\": \"iana\",\n \"extensions\": [\"pcx\"]\n },\n \"image/webp\": {\n \"source\": \"apache\",\n \"extensions\": [\"webp\"]\n },\n \"image/wmf\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmf\"]\n },\n \"image/x-3ds\": {\n \"source\": \"apache\",\n \"extensions\": [\"3ds\"]\n },\n \"image/x-cmu-raster\": {\n \"source\": \"apache\",\n \"extensions\": [\"ras\"]\n },\n \"image/x-cmx\": {\n \"source\": \"apache\",\n \"extensions\": [\"cmx\"]\n },\n \"image/x-freehand\": {\n \"source\": \"apache\",\n \"extensions\": [\"fh\",\"fhc\",\"fh4\",\"fh5\",\"fh7\"]\n },\n \"image/x-icon\": {\n \"source\": \"apache\",\n \"compressible\": true,\n \"extensions\": [\"ico\"]\n },\n \"image/x-jng\": {\n \"source\": \"nginx\",\n \"extensions\": [\"jng\"]\n },\n \"image/x-mrsid-image\": {\n \"source\": \"apache\",\n \"extensions\": [\"sid\"]\n },\n \"image/x-ms-bmp\": {\n \"source\": \"nginx\",\n \"compressible\": true,\n \"extensions\": [\"bmp\"]\n },\n \"image/x-pcx\": {\n \"source\": \"apache\",\n \"extensions\": [\"pcx\"]\n },\n \"image/x-pict\": {\n \"source\": \"apache\",\n \"extensions\": [\"pic\",\"pct\"]\n },\n \"image/x-portable-anymap\": {\n \"source\": \"apache\",\n \"extensions\": [\"pnm\"]\n },\n \"image/x-portable-bitmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"pbm\"]\n },\n \"image/x-portable-graymap\": {\n \"source\": \"apache\",\n \"extensions\": [\"pgm\"]\n },\n \"image/x-portable-pixmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"ppm\"]\n },\n \"image/x-rgb\": {\n \"source\": \"apache\",\n \"extensions\": [\"rgb\"]\n },\n \"image/x-tga\": {\n \"source\": \"apache\",\n \"extensions\": [\"tga\"]\n },\n \"image/x-xbitmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"xbm\"]\n },\n \"image/x-xcf\": {\n \"compressible\": false\n },\n \"image/x-xpixmap\": {\n \"source\": \"apache\",\n \"extensions\": [\"xpm\"]\n },\n \"image/x-xwindowdump\": {\n \"source\": \"apache\",\n \"extensions\": [\"xwd\"]\n },\n \"message/cpim\": {\n \"source\": \"iana\"\n },\n \"message/delivery-status\": {\n \"source\": \"iana\"\n },\n \"message/disposition-notification\": {\n \"source\": \"iana\",\n \"extensions\": [\n \"disposition-notification\"\n ]\n },\n \"message/external-body\": {\n \"source\": \"iana\"\n },\n \"message/feedback-report\": {\n \"source\": \"iana\"\n },\n \"message/global\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8msg\"]\n },\n \"message/global-delivery-status\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8dsn\"]\n },\n \"message/global-disposition-notification\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8mdn\"]\n },\n \"message/global-headers\": {\n \"source\": \"iana\",\n \"extensions\": [\"u8hdr\"]\n },\n \"message/http\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"message/imdn+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"message/news\": {\n \"source\": \"iana\"\n },\n \"message/partial\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"message/rfc822\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"eml\",\"mime\"]\n },\n \"message/s-http\": {\n \"source\": \"iana\"\n },\n \"message/sip\": {\n \"source\": \"iana\"\n },\n \"message/sipfrag\": {\n \"source\": \"iana\"\n },\n \"message/tracking-status\": {\n \"source\": \"iana\"\n },\n \"message/vnd.si.simp\": {\n \"source\": \"iana\"\n },\n \"message/vnd.wfa.wsc\": {\n \"source\": \"iana\",\n \"extensions\": [\"wsc\"]\n },\n \"model/3mf\": {\n \"source\": \"iana\",\n \"extensions\": [\"3mf\"]\n },\n \"model/e57\": {\n \"source\": \"iana\"\n },\n \"model/gltf+json\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"gltf\"]\n },\n \"model/gltf-binary\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"glb\"]\n },\n \"model/iges\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"igs\",\"iges\"]\n },\n \"model/mesh\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"msh\",\"mesh\",\"silo\"]\n },\n \"model/mtl\": {\n \"source\": \"iana\",\n \"extensions\": [\"mtl\"]\n },\n \"model/obj\": {\n \"source\": \"iana\",\n \"extensions\": [\"obj\"]\n },\n \"model/step\": {\n \"source\": \"iana\"\n },\n \"model/step+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"stpx\"]\n },\n \"model/step+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"stpz\"]\n },\n \"model/step-xml+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"stpxz\"]\n },\n \"model/stl\": {\n \"source\": \"iana\",\n \"extensions\": [\"stl\"]\n },\n \"model/vnd.collada+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"dae\"]\n },\n \"model/vnd.dwf\": {\n \"source\": \"iana\",\n \"extensions\": [\"dwf\"]\n },\n \"model/vnd.flatland.3dml\": {\n \"source\": \"iana\"\n },\n \"model/vnd.gdl\": {\n \"source\": \"iana\",\n \"extensions\": [\"gdl\"]\n },\n \"model/vnd.gs-gdl\": {\n \"source\": \"apache\"\n },\n \"model/vnd.gs.gdl\": {\n \"source\": \"iana\"\n },\n \"model/vnd.gtw\": {\n \"source\": \"iana\",\n \"extensions\": [\"gtw\"]\n },\n \"model/vnd.moml+xml\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"model/vnd.mts\": {\n \"source\": \"iana\",\n \"extensions\": [\"mts\"]\n },\n \"model/vnd.opengex\": {\n \"source\": \"iana\",\n \"extensions\": [\"ogex\"]\n },\n \"model/vnd.parasolid.transmit.binary\": {\n \"source\": \"iana\",\n \"extensions\": [\"x_b\"]\n },\n \"model/vnd.parasolid.transmit.text\": {\n \"source\": \"iana\",\n \"extensions\": [\"x_t\"]\n },\n \"model/vnd.pytha.pyox\": {\n \"source\": \"iana\"\n },\n \"model/vnd.rosette.annotated-data-model\": {\n \"source\": \"iana\"\n },\n \"model/vnd.sap.vds\": {\n \"source\": \"iana\",\n \"extensions\": [\"vds\"]\n },\n \"model/vnd.usdz+zip\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"usdz\"]\n },\n \"model/vnd.valve.source.compiled-map\": {\n \"source\": \"iana\",\n \"extensions\": [\"bsp\"]\n },\n \"model/vnd.vtu\": {\n \"source\": \"iana\",\n \"extensions\": [\"vtu\"]\n },\n \"model/vrml\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"wrl\",\"vrml\"]\n },\n \"model/x3d+binary\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"x3db\",\"x3dbz\"]\n },\n \"model/x3d+fastinfoset\": {\n \"source\": \"iana\",\n \"extensions\": [\"x3db\"]\n },\n \"model/x3d+vrml\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"x3dv\",\"x3dvz\"]\n },\n \"model/x3d+xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"x3d\",\"x3dz\"]\n },\n \"model/x3d-vrml\": {\n \"source\": \"iana\",\n \"extensions\": [\"x3dv\"]\n },\n \"multipart/alternative\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/appledouble\": {\n \"source\": \"iana\"\n },\n \"multipart/byteranges\": {\n \"source\": \"iana\"\n },\n \"multipart/digest\": {\n \"source\": \"iana\"\n },\n \"multipart/encrypted\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/form-data\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/header-set\": {\n \"source\": \"iana\"\n },\n \"multipart/mixed\": {\n \"source\": \"iana\"\n },\n \"multipart/multilingual\": {\n \"source\": \"iana\"\n },\n \"multipart/parallel\": {\n \"source\": \"iana\"\n },\n \"multipart/related\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/report\": {\n \"source\": \"iana\"\n },\n \"multipart/signed\": {\n \"source\": \"iana\",\n \"compressible\": false\n },\n \"multipart/vnd.bint.med-plus\": {\n \"source\": \"iana\"\n },\n \"multipart/voice-message\": {\n \"source\": \"iana\"\n },\n \"multipart/x-mixed-replace\": {\n \"source\": \"iana\"\n },\n \"text/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"text/cache-manifest\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"appcache\",\"manifest\"]\n },\n \"text/calendar\": {\n \"source\": \"iana\",\n \"extensions\": [\"ics\",\"ifb\"]\n },\n \"text/calender\": {\n \"compressible\": true\n },\n \"text/cmd\": {\n \"compressible\": true\n },\n \"text/coffeescript\": {\n \"extensions\": [\"coffee\",\"litcoffee\"]\n },\n \"text/cql\": {\n \"source\": \"iana\"\n },\n \"text/cql-expression\": {\n \"source\": \"iana\"\n },\n \"text/cql-identifier\": {\n \"source\": \"iana\"\n },\n \"text/css\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"css\"]\n },\n \"text/csv\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"csv\"]\n },\n \"text/csv-schema\": {\n \"source\": \"iana\"\n },\n \"text/directory\": {\n \"source\": \"iana\"\n },\n \"text/dns\": {\n \"source\": \"iana\"\n },\n \"text/ecmascript\": {\n \"source\": \"iana\"\n },\n \"text/encaprtp\": {\n \"source\": \"iana\"\n },\n \"text/enriched\": {\n \"source\": \"iana\"\n },\n \"text/fhirpath\": {\n \"source\": \"iana\"\n },\n \"text/flexfec\": {\n \"source\": \"iana\"\n },\n \"text/fwdred\": {\n \"source\": \"iana\"\n },\n \"text/gff3\": {\n \"source\": \"iana\"\n },\n \"text/grammar-ref-list\": {\n \"source\": \"iana\"\n },\n \"text/html\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"html\",\"htm\",\"shtml\"]\n },\n \"text/jade\": {\n \"extensions\": [\"jade\"]\n },\n \"text/javascript\": {\n \"source\": \"iana\",\n \"compressible\": true\n },\n \"text/jcr-cnd\": {\n \"source\": \"iana\"\n },\n \"text/jsx\": {\n \"compressible\": true,\n \"extensions\": [\"jsx\"]\n },\n \"text/less\": {\n \"compressible\": true,\n \"extensions\": [\"less\"]\n },\n \"text/markdown\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"markdown\",\"md\"]\n },\n \"text/mathml\": {\n \"source\": \"nginx\",\n \"extensions\": [\"mml\"]\n },\n \"text/mdx\": {\n \"compressible\": true,\n \"extensions\": [\"mdx\"]\n },\n \"text/mizar\": {\n \"source\": \"iana\"\n },\n \"text/n3\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"n3\"]\n },\n \"text/parameters\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/parityfec\": {\n \"source\": \"iana\"\n },\n \"text/plain\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"txt\",\"text\",\"conf\",\"def\",\"list\",\"log\",\"in\",\"ini\"]\n },\n \"text/provenance-notation\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/prs.fallenstein.rst\": {\n \"source\": \"iana\"\n },\n \"text/prs.lines.tag\": {\n \"source\": \"iana\",\n \"extensions\": [\"dsc\"]\n },\n \"text/prs.prop.logic\": {\n \"source\": \"iana\"\n },\n \"text/raptorfec\": {\n \"source\": \"iana\"\n },\n \"text/red\": {\n \"source\": \"iana\"\n },\n \"text/rfc822-headers\": {\n \"source\": \"iana\"\n },\n \"text/richtext\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rtx\"]\n },\n \"text/rtf\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"rtf\"]\n },\n \"text/rtp-enc-aescm128\": {\n \"source\": \"iana\"\n },\n \"text/rtploopback\": {\n \"source\": \"iana\"\n },\n \"text/rtx\": {\n \"source\": \"iana\"\n },\n \"text/sgml\": {\n \"source\": \"iana\",\n \"extensions\": [\"sgml\",\"sgm\"]\n },\n \"text/shaclc\": {\n \"source\": \"iana\"\n },\n \"text/shex\": {\n \"source\": \"iana\",\n \"extensions\": [\"shex\"]\n },\n \"text/slim\": {\n \"extensions\": [\"slim\",\"slm\"]\n },\n \"text/spdx\": {\n \"source\": \"iana\",\n \"extensions\": [\"spdx\"]\n },\n \"text/strings\": {\n \"source\": \"iana\"\n },\n \"text/stylus\": {\n \"extensions\": [\"stylus\",\"styl\"]\n },\n \"text/t140\": {\n \"source\": \"iana\"\n },\n \"text/tab-separated-values\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"tsv\"]\n },\n \"text/troff\": {\n \"source\": \"iana\",\n \"extensions\": [\"t\",\"tr\",\"roff\",\"man\",\"me\",\"ms\"]\n },\n \"text/turtle\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"ttl\"]\n },\n \"text/ulpfec\": {\n \"source\": \"iana\"\n },\n \"text/uri-list\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"uri\",\"uris\",\"urls\"]\n },\n \"text/vcard\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"vcard\"]\n },\n \"text/vnd.a\": {\n \"source\": \"iana\"\n },\n \"text/vnd.abc\": {\n \"source\": \"iana\"\n },\n \"text/vnd.ascii-art\": {\n \"source\": \"iana\"\n },\n \"text/vnd.curl\": {\n \"source\": \"iana\",\n \"extensions\": [\"curl\"]\n },\n \"text/vnd.curl.dcurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"dcurl\"]\n },\n \"text/vnd.curl.mcurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"mcurl\"]\n },\n \"text/vnd.curl.scurl\": {\n \"source\": \"apache\",\n \"extensions\": [\"scurl\"]\n },\n \"text/vnd.debian.copyright\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/vnd.dmclientscript\": {\n \"source\": \"iana\"\n },\n \"text/vnd.dvb.subtitle\": {\n \"source\": \"iana\",\n \"extensions\": [\"sub\"]\n },\n \"text/vnd.esmertec.theme-descriptor\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/vnd.familysearch.gedcom\": {\n \"source\": \"iana\",\n \"extensions\": [\"ged\"]\n },\n \"text/vnd.ficlab.flt\": {\n \"source\": \"iana\"\n },\n \"text/vnd.fly\": {\n \"source\": \"iana\",\n \"extensions\": [\"fly\"]\n },\n \"text/vnd.fmi.flexstor\": {\n \"source\": \"iana\",\n \"extensions\": [\"flx\"]\n },\n \"text/vnd.gml\": {\n \"source\": \"iana\"\n },\n \"text/vnd.graphviz\": {\n \"source\": \"iana\",\n \"extensions\": [\"gv\"]\n },\n \"text/vnd.hans\": {\n \"source\": \"iana\"\n },\n \"text/vnd.hgl\": {\n \"source\": \"iana\"\n },\n \"text/vnd.in3d.3dml\": {\n \"source\": \"iana\",\n \"extensions\": [\"3dml\"]\n },\n \"text/vnd.in3d.spot\": {\n \"source\": \"iana\",\n \"extensions\": [\"spot\"]\n },\n \"text/vnd.iptc.newsml\": {\n \"source\": \"iana\"\n },\n \"text/vnd.iptc.nitf\": {\n \"source\": \"iana\"\n },\n \"text/vnd.latex-z\": {\n \"source\": \"iana\"\n },\n \"text/vnd.motorola.reflex\": {\n \"source\": \"iana\"\n },\n \"text/vnd.ms-mediapackage\": {\n \"source\": \"iana\"\n },\n \"text/vnd.net2phone.commcenter.command\": {\n \"source\": \"iana\"\n },\n \"text/vnd.radisys.msml-basic-layout\": {\n \"source\": \"iana\"\n },\n \"text/vnd.senx.warpscript\": {\n \"source\": \"iana\"\n },\n \"text/vnd.si.uricatalogue\": {\n \"source\": \"iana\"\n },\n \"text/vnd.sosi\": {\n \"source\": \"iana\"\n },\n \"text/vnd.sun.j2me.app-descriptor\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"extensions\": [\"jad\"]\n },\n \"text/vnd.trolltech.linguist\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\"\n },\n \"text/vnd.wap.si\": {\n \"source\": \"iana\"\n },\n \"text/vnd.wap.sl\": {\n \"source\": \"iana\"\n },\n \"text/vnd.wap.wml\": {\n \"source\": \"iana\",\n \"extensions\": [\"wml\"]\n },\n \"text/vnd.wap.wmlscript\": {\n \"source\": \"iana\",\n \"extensions\": [\"wmls\"]\n },\n \"text/vtt\": {\n \"source\": \"iana\",\n \"charset\": \"UTF-8\",\n \"compressible\": true,\n \"extensions\": [\"vtt\"]\n },\n \"text/x-asm\": {\n \"source\": \"apache\",\n \"extensions\": [\"s\",\"asm\"]\n },\n \"text/x-c\": {\n \"source\": \"apache\",\n \"extensions\": [\"c\",\"cc\",\"cxx\",\"cpp\",\"h\",\"hh\",\"dic\"]\n },\n \"text/x-component\": {\n \"source\": \"nginx\",\n \"extensions\": [\"htc\"]\n },\n \"text/x-fortran\": {\n \"source\": \"apache\",\n \"extensions\": [\"f\",\"for\",\"f77\",\"f90\"]\n },\n \"text/x-gwt-rpc\": {\n \"compressible\": true\n },\n \"text/x-handlebars-template\": {\n \"extensions\": [\"hbs\"]\n },\n \"text/x-java-source\": {\n \"source\": \"apache\",\n \"extensions\": [\"java\"]\n },\n \"text/x-jquery-tmpl\": {\n \"compressible\": true\n },\n \"text/x-lua\": {\n \"extensions\": [\"lua\"]\n },\n \"text/x-markdown\": {\n \"compressible\": true,\n \"extensions\": [\"mkd\"]\n },\n \"text/x-nfo\": {\n \"source\": \"apache\",\n \"extensions\": [\"nfo\"]\n },\n \"text/x-opml\": {\n \"source\": \"apache\",\n \"extensions\": [\"opml\"]\n },\n \"text/x-org\": {\n \"compressible\": true,\n \"extensions\": [\"org\"]\n },\n \"text/x-pascal\": {\n \"source\": \"apache\",\n \"extensions\": [\"p\",\"pas\"]\n },\n \"text/x-processing\": {\n \"compressible\": true,\n \"extensions\": [\"pde\"]\n },\n \"text/x-sass\": {\n \"extensions\": [\"sass\"]\n },\n \"text/x-scss\": {\n \"extensions\": [\"scss\"]\n },\n \"text/x-setext\": {\n \"source\": \"apache\",\n \"extensions\": [\"etx\"]\n },\n \"text/x-sfv\": {\n \"source\": \"apache\",\n \"extensions\": [\"sfv\"]\n },\n \"text/x-suse-ymp\": {\n \"compressible\": true,\n \"extensions\": [\"ymp\"]\n },\n \"text/x-uuencode\": {\n \"source\": \"apache\",\n \"extensions\": [\"uu\"]\n },\n \"text/x-vcalendar\": {\n \"source\": \"apache\",\n \"extensions\": [\"vcs\"]\n },\n \"text/x-vcard\": {\n \"source\": \"apache\",\n \"extensions\": [\"vcf\"]\n },\n \"text/xml\": {\n \"source\": \"iana\",\n \"compressible\": true,\n \"extensions\": [\"xml\"]\n },\n \"text/xml-external-parsed-entity\": {\n \"source\": \"iana\"\n },\n \"text/yaml\": {\n \"compressible\": true,\n \"extensions\": [\"yaml\",\"yml\"]\n },\n \"video/1d-interleaved-parityfec\": {\n \"source\": \"iana\"\n },\n \"video/3gpp\": {\n \"source\": \"iana\",\n \"extensions\": [\"3gp\",\"3gpp\"]\n },\n \"video/3gpp-tt\": {\n \"source\": \"iana\"\n },\n \"video/3gpp2\": {\n \"source\": \"iana\",\n \"extensions\": [\"3g2\"]\n },\n \"video/av1\": {\n \"source\": \"iana\"\n },\n \"video/bmpeg\": {\n \"source\": \"iana\"\n },\n \"video/bt656\": {\n \"source\": \"iana\"\n },\n \"video/celb\": {\n \"source\": \"iana\"\n },\n \"video/dv\": {\n \"source\": \"iana\"\n },\n \"video/encaprtp\": {\n \"source\": \"iana\"\n },\n \"video/ffv1\": {\n \"source\": \"iana\"\n },\n \"video/flexfec\": {\n \"source\": \"iana\"\n },\n \"video/h261\": {\n \"source\": \"iana\",\n \"extensions\": [\"h261\"]\n },\n \"video/h263\": {\n \"source\": \"iana\",\n \"extensions\": [\"h263\"]\n },\n \"video/h263-1998\": {\n \"source\": \"iana\"\n },\n \"video/h263-2000\": {\n \"source\": \"iana\"\n },\n \"video/h264\": {\n \"source\": \"iana\",\n \"extensions\": [\"h264\"]\n },\n \"video/h264-rcdo\": {\n \"source\": \"iana\"\n },\n \"video/h264-svc\": {\n \"source\": \"iana\"\n },\n \"video/h265\": {\n \"source\": \"iana\"\n },\n \"video/iso.segment\": {\n \"source\": \"iana\",\n \"extensions\": [\"m4s\"]\n },\n \"video/jpeg\": {\n \"source\": \"iana\",\n \"extensions\": [\"jpgv\"]\n },\n \"video/jpeg2000\": {\n \"source\": \"iana\"\n },\n \"video/jpm\": {\n \"source\": \"apache\",\n \"extensions\": [\"jpm\",\"jpgm\"]\n },\n \"video/jxsv\": {\n \"source\": \"iana\"\n },\n \"video/mj2\": {\n \"source\": \"iana\",\n \"extensions\": [\"mj2\",\"mjp2\"]\n },\n \"video/mp1s\": {\n \"source\": \"iana\"\n },\n \"video/mp2p\": {\n \"source\": \"iana\"\n },\n \"video/mp2t\": {\n \"source\": \"iana\",\n \"extensions\": [\"ts\"]\n },\n \"video/mp4\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"mp4\",\"mp4v\",\"mpg4\"]\n },\n \"video/mp4v-es\": {\n \"source\": \"iana\"\n },\n \"video/mpeg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"mpeg\",\"mpg\",\"mpe\",\"m1v\",\"m2v\"]\n },\n \"video/mpeg4-generic\": {\n \"source\": \"iana\"\n },\n \"video/mpv\": {\n \"source\": \"iana\"\n },\n \"video/nv\": {\n \"source\": \"iana\"\n },\n \"video/ogg\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"ogv\"]\n },\n \"video/parityfec\": {\n \"source\": \"iana\"\n },\n \"video/pointer\": {\n \"source\": \"iana\"\n },\n \"video/quicktime\": {\n \"source\": \"iana\",\n \"compressible\": false,\n \"extensions\": [\"qt\",\"mov\"]\n },\n \"video/raptorfec\": {\n \"source\": \"iana\"\n },\n \"video/raw\": {\n \"source\": \"iana\"\n },\n \"video/rtp-enc-aescm128\": {\n \"source\": \"iana\"\n },\n \"video/rtploopback\": {\n \"source\": \"iana\"\n },\n \"video/rtx\": {\n \"source\": \"iana\"\n },\n \"video/scip\": {\n \"source\": \"iana\"\n },\n \"video/smpte291\": {\n \"source\": \"iana\"\n },\n \"video/smpte292m\": {\n \"source\": \"iana\"\n },\n \"video/ulpfec\": {\n \"source\": \"iana\"\n },\n \"video/vc1\": {\n \"source\": \"iana\"\n },\n \"video/vc2\": {\n \"source\": \"iana\"\n },\n \"video/vnd.cctv\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dece.hd\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvh\",\"uvvh\"]\n },\n \"video/vnd.dece.mobile\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvm\",\"uvvm\"]\n },\n \"video/vnd.dece.mp4\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dece.pd\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvp\",\"uvvp\"]\n },\n \"video/vnd.dece.sd\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvs\",\"uvvs\"]\n },\n \"video/vnd.dece.video\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvv\",\"uvvv\"]\n },\n \"video/vnd.directv.mpeg\": {\n \"source\": \"iana\"\n },\n \"video/vnd.directv.mpeg-tts\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dlna.mpeg-tts\": {\n \"source\": \"iana\"\n },\n \"video/vnd.dvb.file\": {\n \"source\": \"iana\",\n \"extensions\": [\"dvb\"]\n },\n \"video/vnd.fvt\": {\n \"source\": \"iana\",\n \"extensions\": [\"fvt\"]\n },\n \"video/vnd.hns.video\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.1dparityfec-1010\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.1dparityfec-2005\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.2dparityfec-1010\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.2dparityfec-2005\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.ttsavc\": {\n \"source\": \"iana\"\n },\n \"video/vnd.iptvforum.ttsmpeg2\": {\n \"source\": \"iana\"\n },\n \"video/vnd.motorola.video\": {\n \"source\": \"iana\"\n },\n \"video/vnd.motorola.videop\": {\n \"source\": \"iana\"\n },\n \"video/vnd.mpegurl\": {\n \"source\": \"iana\",\n \"extensions\": [\"mxu\",\"m4u\"]\n },\n \"video/vnd.ms-playready.media.pyv\": {\n \"source\": \"iana\",\n \"extensions\": [\"pyv\"]\n },\n \"video/vnd.nokia.interleaved-multimedia\": {\n \"source\": \"iana\"\n },\n \"video/vnd.nokia.mp4vr\": {\n \"source\": \"iana\"\n },\n \"video/vnd.nokia.videovoip\": {\n \"source\": \"iana\"\n },\n \"video/vnd.objectvideo\": {\n \"source\": \"iana\"\n },\n \"video/vnd.radgamettools.bink\": {\n \"source\": \"iana\"\n },\n \"video/vnd.radgamettools.smacker\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealed.mpeg1\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealed.mpeg4\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealed.swf\": {\n \"source\": \"iana\"\n },\n \"video/vnd.sealedmedia.softseal.mov\": {\n \"source\": \"iana\"\n },\n \"video/vnd.uvvu.mp4\": {\n \"source\": \"iana\",\n \"extensions\": [\"uvu\",\"uvvu\"]\n },\n \"video/vnd.vivo\": {\n \"source\": \"iana\",\n \"extensions\": [\"viv\"]\n },\n \"video/vnd.youtube.yt\": {\n \"source\": \"iana\"\n },\n \"video/vp8\": {\n \"source\": \"iana\"\n },\n \"video/vp9\": {\n \"source\": \"iana\"\n },\n \"video/webm\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"webm\"]\n },\n \"video/x-f4v\": {\n \"source\": \"apache\",\n \"extensions\": [\"f4v\"]\n },\n \"video/x-fli\": {\n \"source\": \"apache\",\n \"extensions\": [\"fli\"]\n },\n \"video/x-flv\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"flv\"]\n },\n \"video/x-m4v\": {\n \"source\": \"apache\",\n \"extensions\": [\"m4v\"]\n },\n \"video/x-matroska\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"mkv\",\"mk3d\",\"mks\"]\n },\n \"video/x-mng\": {\n \"source\": \"apache\",\n \"extensions\": [\"mng\"]\n },\n \"video/x-ms-asf\": {\n \"source\": \"apache\",\n \"extensions\": [\"asf\",\"asx\"]\n },\n \"video/x-ms-vob\": {\n \"source\": \"apache\",\n \"extensions\": [\"vob\"]\n },\n \"video/x-ms-wm\": {\n \"source\": \"apache\",\n \"extensions\": [\"wm\"]\n },\n \"video/x-ms-wmv\": {\n \"source\": \"apache\",\n \"compressible\": false,\n \"extensions\": [\"wmv\"]\n },\n \"video/x-ms-wmx\": {\n \"source\": \"apache\",\n \"extensions\": [\"wmx\"]\n },\n \"video/x-ms-wvx\": {\n \"source\": \"apache\",\n \"extensions\": [\"wvx\"]\n },\n \"video/x-msvideo\": {\n \"source\": \"apache\",\n \"extensions\": [\"avi\"]\n },\n \"video/x-sgi-movie\": {\n \"source\": \"apache\",\n \"extensions\": [\"movie\"]\n },\n \"video/x-smv\": {\n \"source\": \"apache\",\n \"extensions\": [\"smv\"]\n },\n \"x-conference/x-cooltalk\": {\n \"source\": \"apache\",\n \"extensions\": [\"ice\"]\n },\n \"x-shader/x-fragment\": {\n \"compressible\": true\n },\n \"x-shader/x-vertex\": {\n \"compressible\": true\n }\n}\n","/*!\n * mime-db\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015-2022 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n/**\n * Module exports.\n */\n\nmodule.exports = require('./db.json')\n","/*!\n * mime-types\n * Copyright(c) 2014 Jonathan Ong\n * Copyright(c) 2015 Douglas Christopher Wilson\n * MIT Licensed\n */\n\n'use strict'\n\n/**\n * Module dependencies.\n * @private\n */\n\nvar db = require('mime-db')\nvar extname = require('path').extname\n\n/**\n * Module variables.\n * @private\n */\n\nvar EXTRACT_TYPE_REGEXP = /^\\s*([^;\\s]*)(?:;|\\s|$)/\nvar TEXT_TYPE_REGEXP = /^text\\//i\n\n/**\n * Module exports.\n * @public\n */\n\nexports.charset = charset\nexports.charsets = { lookup: charset }\nexports.contentType = contentType\nexports.extension = extension\nexports.extensions = Object.create(null)\nexports.lookup = lookup\nexports.types = Object.create(null)\n\n// Populate the extensions/types maps\npopulateMaps(exports.extensions, exports.types)\n\n/**\n * Get the default charset for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction charset (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n var mime = match && db[match[1].toLowerCase()]\n\n if (mime && mime.charset) {\n return mime.charset\n }\n\n // default text/* to utf-8\n if (match && TEXT_TYPE_REGEXP.test(match[1])) {\n return 'UTF-8'\n }\n\n return false\n}\n\n/**\n * Create a full Content-Type header given a MIME type or extension.\n *\n * @param {string} str\n * @return {boolean|string}\n */\n\nfunction contentType (str) {\n // TODO: should this even be in this module?\n if (!str || typeof str !== 'string') {\n return false\n }\n\n var mime = str.indexOf('/') === -1\n ? exports.lookup(str)\n : str\n\n if (!mime) {\n return false\n }\n\n // TODO: use content-type or other module\n if (mime.indexOf('charset') === -1) {\n var charset = exports.charset(mime)\n if (charset) mime += '; charset=' + charset.toLowerCase()\n }\n\n return mime\n}\n\n/**\n * Get the default extension for a MIME type.\n *\n * @param {string} type\n * @return {boolean|string}\n */\n\nfunction extension (type) {\n if (!type || typeof type !== 'string') {\n return false\n }\n\n // TODO: use media-typer\n var match = EXTRACT_TYPE_REGEXP.exec(type)\n\n // get extensions\n var exts = match && exports.extensions[match[1].toLowerCase()]\n\n if (!exts || !exts.length) {\n return false\n }\n\n return exts[0]\n}\n\n/**\n * Lookup the MIME type for a file path/extension.\n *\n * @param {string} path\n * @return {boolean|string}\n */\n\nfunction lookup (path) {\n if (!path || typeof path !== 'string') {\n return false\n }\n\n // get the extension (\"ext\" or \".ext\" or full path)\n var extension = extname('x.' + path)\n .toLowerCase()\n .substr(1)\n\n if (!extension) {\n return false\n }\n\n return exports.types[extension] || false\n}\n\n/**\n * Populate the extensions and types maps.\n * @private\n */\n\nfunction populateMaps (extensions, types) {\n // source preference (least -> most)\n var preference = ['nginx', 'apache', undefined, 'iana']\n\n Object.keys(db).forEach(function forEachMimeType (type) {\n var mime = db[type]\n var exts = mime.extensions\n\n if (!exts || !exts.length) {\n return\n }\n\n // mime -> extensions\n extensions[type] = exts\n\n // extension -> mime\n for (var i = 0; i < exts.length; i++) {\n var extension = exts[i]\n\n if (types[extension]) {\n var from = preference.indexOf(db[types[extension]].source)\n var to = preference.indexOf(mime.source)\n\n if (types[extension] !== 'application/octet-stream' &&\n (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) {\n // skip the remapping\n continue\n }\n }\n\n // set the extension -> mime\n types[extension] = type\n }\n })\n}\n","module.exports = defer;\n\n/**\n * Runs provided function on next iteration of the event loop\n *\n * @param {function} fn - function to run\n */\nfunction defer(fn)\n{\n var nextTick = typeof setImmediate == 'function'\n ? setImmediate\n : (\n typeof process == 'object' && typeof process.nextTick == 'function'\n ? process.nextTick\n : null\n );\n\n if (nextTick)\n {\n nextTick(fn);\n }\n else\n {\n setTimeout(fn, 0);\n }\n}\n","var defer = require('./defer.js');\n\n// API\nmodule.exports = async;\n\n/**\n * Runs provided callback asynchronously\n * even if callback itself is not\n *\n * @param {function} callback - callback to invoke\n * @returns {function} - augmented callback\n */\nfunction async(callback)\n{\n var isAsync = false;\n\n // check if async happened\n defer(function() { isAsync = true; });\n\n return function async_callback(err, result)\n {\n if (isAsync)\n {\n callback(err, result);\n }\n else\n {\n defer(function nextTick_callback()\n {\n callback(err, result);\n });\n }\n };\n}\n","// API\nmodule.exports = abort;\n\n/**\n * Aborts leftover active jobs\n *\n * @param {object} state - current state object\n */\nfunction abort(state)\n{\n Object.keys(state.jobs).forEach(clean.bind(state));\n\n // reset leftover jobs\n state.jobs = {};\n}\n\n/**\n * Cleans up leftover job by invoking abort function for the provided job id\n *\n * @this state\n * @param {string|number} key - job id to abort\n */\nfunction clean(key)\n{\n if (typeof this.jobs[key] == 'function')\n {\n this.jobs[key]();\n }\n}\n","var async = require('./async.js')\n , abort = require('./abort.js')\n ;\n\n// API\nmodule.exports = iterate;\n\n/**\n * Iterates over each job object\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {object} state - current job status\n * @param {function} callback - invoked when all elements processed\n */\nfunction iterate(list, iterator, state, callback)\n{\n // store current index\n var key = state['keyedList'] ? state['keyedList'][state.index] : state.index;\n\n state.jobs[key] = runJob(iterator, key, list[key], function(error, output)\n {\n // don't repeat yourself\n // skip secondary callbacks\n if (!(key in state.jobs))\n {\n return;\n }\n\n // clean up jobs\n delete state.jobs[key];\n\n if (error)\n {\n // don't process rest of the results\n // stop still active jobs\n // and reset the list\n abort(state);\n }\n else\n {\n state.results[key] = output;\n }\n\n // return salvaged results\n callback(error, state.results);\n });\n}\n\n/**\n * Runs iterator over provided job element\n *\n * @param {function} iterator - iterator to invoke\n * @param {string|number} key - key/index of the element in the list of jobs\n * @param {mixed} item - job description\n * @param {function} callback - invoked after iterator is done with the job\n * @returns {function|mixed} - job abort function or something else\n */\nfunction runJob(iterator, key, item, callback)\n{\n var aborter;\n\n // allow shortcut if iterator expects only two arguments\n if (iterator.length == 2)\n {\n aborter = iterator(item, async(callback));\n }\n // otherwise go with full three arguments\n else\n {\n aborter = iterator(item, key, async(callback));\n }\n\n return aborter;\n}\n","// API\nmodule.exports = state;\n\n/**\n * Creates initial state object\n * for iteration over list\n *\n * @param {array|object} list - list to iterate over\n * @param {function|null} sortMethod - function to use for keys sort,\n * or `null` to keep them as is\n * @returns {object} - initial state object\n */\nfunction state(list, sortMethod)\n{\n var isNamedList = !Array.isArray(list)\n , initState =\n {\n index : 0,\n keyedList: isNamedList || sortMethod ? Object.keys(list) : null,\n jobs : {},\n results : isNamedList ? {} : [],\n size : isNamedList ? Object.keys(list).length : list.length\n }\n ;\n\n if (sortMethod)\n {\n // sort array keys based on it's values\n // sort object's keys just on own merit\n initState.keyedList.sort(isNamedList ? sortMethod : function(a, b)\n {\n return sortMethod(list[a], list[b]);\n });\n }\n\n return initState;\n}\n","var abort = require('./abort.js')\n , async = require('./async.js')\n ;\n\n// API\nmodule.exports = terminator;\n\n/**\n * Terminates jobs in the attached state context\n *\n * @this AsyncKitState#\n * @param {function} callback - final callback to invoke after termination\n */\nfunction terminator(callback)\n{\n if (!Object.keys(this.jobs).length)\n {\n return;\n }\n\n // fast forward iteration index\n this.index = this.size;\n\n // abort jobs\n abort(this);\n\n // send back results we have so far\n async(callback)(null, this.results);\n}\n","var iterate = require('./lib/iterate.js')\n , initState = require('./lib/state.js')\n , terminator = require('./lib/terminator.js')\n ;\n\n// Public API\nmodule.exports = parallel;\n\n/**\n * Runs iterator over provided array elements in parallel\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction parallel(list, iterator, callback)\n{\n var state = initState(list);\n\n while (state.index < (state['keyedList'] || list).length)\n {\n iterate(list, iterator, state, function(error, result)\n {\n if (error)\n {\n callback(error, result);\n return;\n }\n\n // looks like it's the last one\n if (Object.keys(state.jobs).length === 0)\n {\n callback(null, state.results);\n return;\n }\n });\n\n state.index++;\n }\n\n return terminator.bind(state, callback);\n}\n","var iterate = require('./lib/iterate.js')\n , initState = require('./lib/state.js')\n , terminator = require('./lib/terminator.js')\n ;\n\n// Public API\nmodule.exports = serialOrdered;\n// sorting helpers\nmodule.exports.ascending = ascending;\nmodule.exports.descending = descending;\n\n/**\n * Runs iterator over provided sorted array elements in series\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} sortMethod - custom sort function\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction serialOrdered(list, iterator, sortMethod, callback)\n{\n var state = initState(list, sortMethod);\n\n iterate(list, iterator, state, function iteratorHandler(error, result)\n {\n if (error)\n {\n callback(error, result);\n return;\n }\n\n state.index++;\n\n // are we there yet?\n if (state.index < (state['keyedList'] || list).length)\n {\n iterate(list, iterator, state, iteratorHandler);\n return;\n }\n\n // done here\n callback(null, state.results);\n });\n\n return terminator.bind(state, callback);\n}\n\n/*\n * -- Sort methods\n */\n\n/**\n * sort helper to sort array elements in ascending order\n *\n * @param {mixed} a - an item to compare\n * @param {mixed} b - an item to compare\n * @returns {number} - comparison result\n */\nfunction ascending(a, b)\n{\n return a < b ? -1 : a > b ? 1 : 0;\n}\n\n/**\n * sort helper to sort array elements in descending order\n *\n * @param {mixed} a - an item to compare\n * @param {mixed} b - an item to compare\n * @returns {number} - comparison result\n */\nfunction descending(a, b)\n{\n return -1 * ascending(a, b);\n}\n","var serialOrdered = require('./serialOrdered.js');\n\n// Public API\nmodule.exports = serial;\n\n/**\n * Runs iterator over provided array elements in series\n *\n * @param {array|object} list - array or object (named list) to iterate over\n * @param {function} iterator - iterator to run\n * @param {function} callback - invoked when all elements processed\n * @returns {function} - jobs terminator\n */\nfunction serial(list, iterator, callback)\n{\n return serialOrdered(list, iterator, null, callback);\n}\n","module.exports =\n{\n parallel : require('./parallel.js'),\n serial : require('./serial.js'),\n serialOrdered : require('./serialOrdered.js')\n};\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Object;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","'use strict';\n\n/** @type {import('./abs')} */\nmodule.exports = Math.abs;\n","'use strict';\n\n/** @type {import('./floor')} */\nmodule.exports = Math.floor;\n","'use strict';\n\n/** @type {import('./max')} */\nmodule.exports = Math.max;\n","'use strict';\n\n/** @type {import('./min')} */\nmodule.exports = Math.min;\n","'use strict';\n\n/** @type {import('./pow')} */\nmodule.exports = Math.pow;\n","'use strict';\n\n/** @type {import('./round')} */\nmodule.exports = Math.round;\n","'use strict';\n\n/** @type {import('./isNaN')} */\nmodule.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n","'use strict';\n\nvar $isNaN = require('./isNaN');\n\n/** @type {import('./sign')} */\nmodule.exports = function sign(number) {\n\tif ($isNaN(number) || number === 0) {\n\t\treturn number;\n\t}\n\treturn number < 0 ? -1 : +1;\n};\n","'use strict';\n\n/** @type {import('./gOPD')} */\nmodule.exports = Object.getOwnPropertyDescriptor;\n","'use strict';\n\n/** @type {import('.')} */\nvar $gOPD = require('./gOPD');\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\n/** @type {import('.')} */\nvar $defineProperty = Object.defineProperty || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","'use strict';\n\n/** @type {import('./shams')} */\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\t/** @type {{ [k in symbol]?: unknown }} */\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (var _ in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {PropertyDescriptor} */ (Object.getOwnPropertyDescriptor(obj, sym));\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/** @type {import('./Reflect.getPrototypeOf')} */\nmodule.exports = (typeof Reflect !== 'undefined' && Reflect.getPrototypeOf) || null;\n","'use strict';\n\nvar $Object = require('es-object-atoms');\n\n/** @type {import('./Object.getPrototypeOf')} */\nmodule.exports = $Object.getPrototypeOf || null;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\n/** @type {import('./functionCall')} */\nmodule.exports = Function.prototype.call;\n","'use strict';\n\n/** @type {import('./functionApply')} */\nmodule.exports = Function.prototype.apply;\n","'use strict';\n\n/** @type {import('./reflectApply')} */\nmodule.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply;\n","'use strict';\n\nvar bind = require('function-bind');\n\nvar $apply = require('./functionApply');\nvar $call = require('./functionCall');\nvar $reflectApply = require('./reflectApply');\n\n/** @type {import('./actualApply')} */\nmodule.exports = $reflectApply || bind.call($call, $apply);\n","'use strict';\n\nvar bind = require('function-bind');\nvar $TypeError = require('es-errors/type');\n\nvar $call = require('./functionCall');\nvar $actualApply = require('./actualApply');\n\n/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */\nmodule.exports = function callBindBasic(args) {\n\tif (args.length < 1 || typeof args[0] !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\treturn $actualApply(bind, $call, args);\n};\n","'use strict';\n\nvar callBind = require('call-bind-apply-helpers');\nvar gOPD = require('gopd');\n\nvar hasProtoAccessor;\ntry {\n\t// eslint-disable-next-line no-extra-parens, no-proto\n\thasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */ ([]).__proto__ === Array.prototype;\n} catch (e) {\n\tif (!e || typeof e !== 'object' || !('code' in e) || e.code !== 'ERR_PROTO_ACCESS') {\n\t\tthrow e;\n\t}\n}\n\n// eslint-disable-next-line no-extra-parens\nvar desc = !!hasProtoAccessor && gOPD && gOPD(Object.prototype, /** @type {keyof typeof Object.prototype} */ ('__proto__'));\n\nvar $Object = Object;\nvar $getPrototypeOf = $Object.getPrototypeOf;\n\n/** @type {import('./get')} */\nmodule.exports = desc && typeof desc.get === 'function'\n\t? callBind([desc.get])\n\t: typeof $getPrototypeOf === 'function'\n\t\t? /** @type {import('./get')} */ function getDunder(value) {\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\treturn $getPrototypeOf(value == null ? value : $Object(value));\n\t\t}\n\t\t: false;\n","'use strict';\n\nvar reflectGetProto = require('./Reflect.getPrototypeOf');\nvar originalGetProto = require('./Object.getPrototypeOf');\n\nvar getDunderProto = require('dunder-proto/get');\n\n/** @type {import('.')} */\nmodule.exports = reflectGetProto\n\t? function getProto(O) {\n\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\treturn reflectGetProto(O);\n\t}\n\t: originalGetProto\n\t\t? function getProto(O) {\n\t\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\t\tthrow new TypeError('getProto: not an object');\n\t\t\t}\n\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\treturn originalGetProto(O);\n\t\t}\n\t\t: getDunderProto\n\t\t\t? function getProto(O) {\n\t\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\t\treturn getDunderProto(O);\n\t\t\t}\n\t\t\t: null;\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","'use strict';\n\nvar undefined;\n\nvar $Object = require('es-object-atoms');\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar abs = require('math-intrinsics/abs');\nvar floor = require('math-intrinsics/floor');\nvar max = require('math-intrinsics/max');\nvar min = require('math-intrinsics/min');\nvar pow = require('math-intrinsics/pow');\nvar round = require('math-intrinsics/round');\nvar sign = require('math-intrinsics/sign');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = require('gopd');\nvar $defineProperty = require('es-define-property');\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = require('get-proto');\nvar $ObjectGPO = require('get-proto/Object.getPrototypeOf');\nvar $ReflectGPO = require('get-proto/Reflect.getPrototypeOf');\n\nvar $apply = require('call-bind-apply-helpers/functionApply');\nvar $call = require('call-bind-apply-helpers/functionCall');\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float16Array%': typeof Float16Array === 'undefined' ? undefined : Float16Array,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': $Object,\n\t'%Object.getOwnPropertyDescriptor%': $gOPD,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\n\t'%Function.prototype.call%': $call,\n\t'%Function.prototype.apply%': $apply,\n\t'%Object.defineProperty%': $defineProperty,\n\t'%Object.getPrototypeOf%': $ObjectGPO,\n\t'%Math.abs%': abs,\n\t'%Math.floor%': floor,\n\t'%Math.max%': max,\n\t'%Math.min%': min,\n\t'%Math.pow%': pow,\n\t'%Math.round%': round,\n\t'%Math.sign%': sign,\n\t'%Reflect.getPrototypeOf%': $ReflectGPO\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call($call, Array.prototype.concat);\nvar $spliceApply = bind.call($apply, Array.prototype.splice);\nvar $replace = bind.call($call, String.prototype.replace);\nvar $strSlice = bind.call($call, String.prototype.slice);\nvar $exec = bind.call($call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar hasOwn = require('hasown');\nvar $TypeError = require('es-errors/type');\n\nvar toStringTag = hasToStringTag ? Symbol.toStringTag : null;\n\n/** @type {import('.')} */\nmodule.exports = function setToStringTag(object, value) {\n\tvar overrideIfSet = arguments.length > 2 && !!arguments[2] && arguments[2].force;\n\tvar nonConfigurable = arguments.length > 2 && !!arguments[2] && arguments[2].nonConfigurable;\n\tif (\n\t\t(typeof overrideIfSet !== 'undefined' && typeof overrideIfSet !== 'boolean')\n\t\t|| (typeof nonConfigurable !== 'undefined' && typeof nonConfigurable !== 'boolean')\n\t) {\n\t\tthrow new $TypeError('if provided, the `overrideIfSet` and `nonConfigurable` options must be booleans');\n\t}\n\tif (toStringTag && (overrideIfSet || !hasOwn(object, toStringTag))) {\n\t\tif ($defineProperty) {\n\t\t\t$defineProperty(object, toStringTag, {\n\t\t\t\tconfigurable: !nonConfigurable,\n\t\t\t\tenumerable: false,\n\t\t\t\tvalue: value,\n\t\t\t\twritable: false\n\t\t\t});\n\t\t} else {\n\t\t\tobject[toStringTag] = value; // eslint-disable-line no-param-reassign\n\t\t}\n\t}\n};\n","'use strict';\n\n// populates missing values\nmodule.exports = function (dst, src) {\n Object.keys(src).forEach(function (prop) {\n dst[prop] = dst[prop] || src[prop]; // eslint-disable-line no-param-reassign\n });\n\n return dst;\n};\n","'use strict';\n\nvar CombinedStream = require('combined-stream');\nvar util = require('util');\nvar path = require('path');\nvar http = require('http');\nvar https = require('https');\nvar parseUrl = require('url').parse;\nvar fs = require('fs');\nvar Stream = require('stream').Stream;\nvar crypto = require('crypto');\nvar mime = require('mime-types');\nvar asynckit = require('asynckit');\nvar setToStringTag = require('es-set-tostringtag');\nvar hasOwn = require('hasown');\nvar populate = require('./populate.js');\n\n/**\n * Create readable \"multipart/form-data\" streams.\n * Can be used to submit forms\n * and file uploads to other web applications.\n *\n * @constructor\n * @param {object} options - Properties to be added/overriden for FormData and CombinedStream\n */\nfunction FormData(options) {\n if (!(this instanceof FormData)) {\n return new FormData(options);\n }\n\n this._overheadLength = 0;\n this._valueLength = 0;\n this._valuesToMeasure = [];\n\n CombinedStream.call(this);\n\n options = options || {}; // eslint-disable-line no-param-reassign\n for (var option in options) { // eslint-disable-line no-restricted-syntax\n this[option] = options[option];\n }\n}\n\n// make it a Stream\nutil.inherits(FormData, CombinedStream);\n\nFormData.LINE_BREAK = '\\r\\n';\nFormData.DEFAULT_CONTENT_TYPE = 'application/octet-stream';\n\nFormData.prototype.append = function (field, value, options) {\n options = options || {}; // eslint-disable-line no-param-reassign\n\n // allow filename as single option\n if (typeof options === 'string') {\n options = { filename: options }; // eslint-disable-line no-param-reassign\n }\n\n var append = CombinedStream.prototype.append.bind(this);\n\n // all that streamy business can't handle numbers\n if (typeof value === 'number' || value == null) {\n value = String(value); // eslint-disable-line no-param-reassign\n }\n\n // https://github.com/felixge/node-form-data/issues/38\n if (Array.isArray(value)) {\n /*\n * Please convert your array into string\n * the way web server expects it\n */\n this._error(new Error('Arrays are not supported.'));\n return;\n }\n\n var header = this._multiPartHeader(field, value, options);\n var footer = this._multiPartFooter();\n\n append(header);\n append(value);\n append(footer);\n\n // pass along options.knownLength\n this._trackLength(header, value, options);\n};\n\nFormData.prototype._trackLength = function (header, value, options) {\n var valueLength = 0;\n\n /*\n * used w/ getLengthSync(), when length is known.\n * e.g. for streaming directly from a remote server,\n * w/ a known file a size, and not wanting to wait for\n * incoming file to finish to get its size.\n */\n if (options.knownLength != null) {\n valueLength += Number(options.knownLength);\n } else if (Buffer.isBuffer(value)) {\n valueLength = value.length;\n } else if (typeof value === 'string') {\n valueLength = Buffer.byteLength(value);\n }\n\n this._valueLength += valueLength;\n\n // @check why add CRLF? does this account for custom/multiple CRLFs?\n this._overheadLength += Buffer.byteLength(header) + FormData.LINE_BREAK.length;\n\n // empty or either doesn't have path or not an http response or not a stream\n if (!value || (!value.path && !(value.readable && hasOwn(value, 'httpVersion')) && !(value instanceof Stream))) {\n return;\n }\n\n // no need to bother with the length\n if (!options.knownLength) {\n this._valuesToMeasure.push(value);\n }\n};\n\nFormData.prototype._lengthRetriever = function (value, callback) {\n if (hasOwn(value, 'fd')) {\n // take read range into a account\n // `end` = Infinity –> read file till the end\n //\n // TODO: Looks like there is bug in Node fs.createReadStream\n // it doesn't respect `end` options without `start` options\n // Fix it when node fixes it.\n // https://github.com/joyent/node/issues/7819\n if (value.end != undefined && value.end != Infinity && value.start != undefined) {\n // when end specified\n // no need to calculate range\n // inclusive, starts with 0\n callback(null, value.end + 1 - (value.start ? value.start : 0)); // eslint-disable-line callback-return\n\n // not that fast snoopy\n } else {\n // still need to fetch file size from fs\n fs.stat(value.path, function (err, stat) {\n if (err) {\n callback(err);\n return;\n }\n\n // update final size based on the range options\n var fileSize = stat.size - (value.start ? value.start : 0);\n callback(null, fileSize);\n });\n }\n\n // or http response\n } else if (hasOwn(value, 'httpVersion')) {\n callback(null, Number(value.headers['content-length'])); // eslint-disable-line callback-return\n\n // or request stream http://github.com/mikeal/request\n } else if (hasOwn(value, 'httpModule')) {\n // wait till response come back\n value.on('response', function (response) {\n value.pause();\n callback(null, Number(response.headers['content-length']));\n });\n value.resume();\n\n // something else\n } else {\n callback('Unknown stream'); // eslint-disable-line callback-return\n }\n};\n\nFormData.prototype._multiPartHeader = function (field, value, options) {\n /*\n * custom header specified (as string)?\n * it becomes responsible for boundary\n * (e.g. to handle extra CRLFs on .NET servers)\n */\n if (typeof options.header === 'string') {\n return options.header;\n }\n\n var contentDisposition = this._getContentDisposition(value, options);\n var contentType = this._getContentType(value, options);\n\n var contents = '';\n var headers = {\n // add custom disposition as third element or keep it two elements if not\n 'Content-Disposition': ['form-data', 'name=\"' + field + '\"'].concat(contentDisposition || []),\n // if no content type. allow it to be empty array\n 'Content-Type': [].concat(contentType || [])\n };\n\n // allow custom headers.\n if (typeof options.header === 'object') {\n populate(headers, options.header);\n }\n\n var header;\n for (var prop in headers) { // eslint-disable-line no-restricted-syntax\n if (hasOwn(headers, prop)) {\n header = headers[prop];\n\n // skip nullish headers.\n if (header == null) {\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n }\n\n // convert all headers to arrays.\n if (!Array.isArray(header)) {\n header = [header];\n }\n\n // add non-empty headers.\n if (header.length) {\n contents += prop + ': ' + header.join('; ') + FormData.LINE_BREAK;\n }\n }\n }\n\n return '--' + this.getBoundary() + FormData.LINE_BREAK + contents + FormData.LINE_BREAK;\n};\n\nFormData.prototype._getContentDisposition = function (value, options) { // eslint-disable-line consistent-return\n var filename;\n\n if (typeof options.filepath === 'string') {\n // custom filepath for relative paths\n filename = path.normalize(options.filepath).replace(/\\\\/g, '/');\n } else if (options.filename || (value && (value.name || value.path))) {\n /*\n * custom filename take precedence\n * formidable and the browser add a name property\n * fs- and request- streams have path property\n */\n filename = path.basename(options.filename || (value && (value.name || value.path)));\n } else if (value && value.readable && hasOwn(value, 'httpVersion')) {\n // or try http response\n filename = path.basename(value.client._httpMessage.path || '');\n }\n\n if (filename) {\n return 'filename=\"' + filename + '\"';\n }\n};\n\nFormData.prototype._getContentType = function (value, options) {\n // use custom content-type above all\n var contentType = options.contentType;\n\n // or try `name` from formidable, browser\n if (!contentType && value && value.name) {\n contentType = mime.lookup(value.name);\n }\n\n // or try `path` from fs-, request- streams\n if (!contentType && value && value.path) {\n contentType = mime.lookup(value.path);\n }\n\n // or if it's http-reponse\n if (!contentType && value && value.readable && hasOwn(value, 'httpVersion')) {\n contentType = value.headers['content-type'];\n }\n\n // or guess it from the filepath or filename\n if (!contentType && (options.filepath || options.filename)) {\n contentType = mime.lookup(options.filepath || options.filename);\n }\n\n // fallback to the default content type if `value` is not simple value\n if (!contentType && value && typeof value === 'object') {\n contentType = FormData.DEFAULT_CONTENT_TYPE;\n }\n\n return contentType;\n};\n\nFormData.prototype._multiPartFooter = function () {\n return function (next) {\n var footer = FormData.LINE_BREAK;\n\n var lastPart = this._streams.length === 0;\n if (lastPart) {\n footer += this._lastBoundary();\n }\n\n next(footer);\n }.bind(this);\n};\n\nFormData.prototype._lastBoundary = function () {\n return '--' + this.getBoundary() + '--' + FormData.LINE_BREAK;\n};\n\nFormData.prototype.getHeaders = function (userHeaders) {\n var header;\n var formHeaders = {\n 'content-type': 'multipart/form-data; boundary=' + this.getBoundary()\n };\n\n for (header in userHeaders) { // eslint-disable-line no-restricted-syntax\n if (hasOwn(userHeaders, header)) {\n formHeaders[header.toLowerCase()] = userHeaders[header];\n }\n }\n\n return formHeaders;\n};\n\nFormData.prototype.setBoundary = function (boundary) {\n if (typeof boundary !== 'string') {\n throw new TypeError('FormData boundary must be a string');\n }\n this._boundary = boundary;\n};\n\nFormData.prototype.getBoundary = function () {\n if (!this._boundary) {\n this._generateBoundary();\n }\n\n return this._boundary;\n};\n\nFormData.prototype.getBuffer = function () {\n var dataBuffer = new Buffer.alloc(0); // eslint-disable-line new-cap\n var boundary = this.getBoundary();\n\n // Create the form content. Add Line breaks to the end of data.\n for (var i = 0, len = this._streams.length; i < len; i++) {\n if (typeof this._streams[i] !== 'function') {\n // Add content to the buffer.\n if (Buffer.isBuffer(this._streams[i])) {\n dataBuffer = Buffer.concat([dataBuffer, this._streams[i]]);\n } else {\n dataBuffer = Buffer.concat([dataBuffer, Buffer.from(this._streams[i])]);\n }\n\n // Add break after content.\n if (typeof this._streams[i] !== 'string' || this._streams[i].substring(2, boundary.length + 2) !== boundary) {\n dataBuffer = Buffer.concat([dataBuffer, Buffer.from(FormData.LINE_BREAK)]);\n }\n }\n }\n\n // Add the footer and return the Buffer object.\n return Buffer.concat([dataBuffer, Buffer.from(this._lastBoundary())]);\n};\n\nFormData.prototype._generateBoundary = function () {\n // This generates a 50 character boundary similar to those used by Firefox.\n\n // They are optimized for boyer-moore parsing.\n this._boundary = '--------------------------' + crypto.randomBytes(12).toString('hex');\n};\n\n// Note: getLengthSync DOESN'T calculate streams length\n// As workaround one can calculate file size manually and add it as knownLength option\nFormData.prototype.getLengthSync = function () {\n var knownLength = this._overheadLength + this._valueLength;\n\n // Don't get confused, there are 3 \"internal\" streams for each keyval pair so it basically checks if there is any value added to the form\n if (this._streams.length) {\n knownLength += this._lastBoundary().length;\n }\n\n // https://github.com/form-data/form-data/issues/40\n if (!this.hasKnownLength()) {\n /*\n * Some async length retrievers are present\n * therefore synchronous length calculation is false.\n * Please use getLength(callback) to get proper length\n */\n this._error(new Error('Cannot calculate proper length in synchronous way.'));\n }\n\n return knownLength;\n};\n\n// Public API to check if length of added values is known\n// https://github.com/form-data/form-data/issues/196\n// https://github.com/form-data/form-data/issues/262\nFormData.prototype.hasKnownLength = function () {\n var hasKnownLength = true;\n\n if (this._valuesToMeasure.length) {\n hasKnownLength = false;\n }\n\n return hasKnownLength;\n};\n\nFormData.prototype.getLength = function (cb) {\n var knownLength = this._overheadLength + this._valueLength;\n\n if (this._streams.length) {\n knownLength += this._lastBoundary().length;\n }\n\n if (!this._valuesToMeasure.length) {\n process.nextTick(cb.bind(this, null, knownLength));\n return;\n }\n\n asynckit.parallel(this._valuesToMeasure, this._lengthRetriever, function (err, values) {\n if (err) {\n cb(err);\n return;\n }\n\n values.forEach(function (length) {\n knownLength += length;\n });\n\n cb(null, knownLength);\n });\n};\n\nFormData.prototype.submit = function (params, cb) {\n var request;\n var options;\n var defaults = { method: 'post' };\n\n // parse provided url if it's string or treat it as options object\n if (typeof params === 'string') {\n params = parseUrl(params); // eslint-disable-line no-param-reassign\n /* eslint sort-keys: 0 */\n options = populate({\n port: params.port,\n path: params.pathname,\n host: params.hostname,\n protocol: params.protocol\n }, defaults);\n } else { // use custom params\n options = populate(params, defaults);\n // if no port provided use default one\n if (!options.port) {\n options.port = options.protocol === 'https:' ? 443 : 80;\n }\n }\n\n // put that good code in getHeaders to some use\n options.headers = this.getHeaders(params.headers);\n\n // https if specified, fallback to http in any other case\n if (options.protocol === 'https:') {\n request = https.request(options);\n } else {\n request = http.request(options);\n }\n\n // get content length and fire away\n this.getLength(function (err, length) {\n if (err && err !== 'Unknown stream') {\n this._error(err);\n return;\n }\n\n // add content length\n if (length) {\n request.setHeader('Content-Length', length);\n }\n\n this.pipe(request);\n if (cb) {\n var onResponse;\n\n var callback = function (error, responce) {\n request.removeListener('error', callback);\n request.removeListener('response', onResponse);\n\n return cb.call(this, error, responce);\n };\n\n onResponse = callback.bind(this, null);\n\n request.on('error', callback);\n request.on('response', onResponse);\n }\n }.bind(this));\n\n return request;\n};\n\nFormData.prototype._error = function (err) {\n if (!this.error) {\n this.error = err;\n this.pause();\n this.emit('error', err);\n }\n};\n\nFormData.prototype.toString = function () {\n return '[object FormData]';\n};\nsetToStringTag(FormData.prototype, 'FormData');\n\n// Public API\nmodule.exports = FormData;\n","/**\n * Wallet management for ChaosChain SDK\n * Handles private keys, HD wallets, and secure key storage\n */\n\nimport { ethers } from 'ethers';\nimport { WalletConfig } from './types';\nimport * as fs from 'fs';\nimport * as path from 'path';\n// import * as crypto from 'crypto';\n\nexport class WalletManager {\n private wallet: ethers.Wallet | ethers.HDNodeWallet;\n private provider?: ethers.Provider;\n\n constructor(config: WalletConfig, provider?: ethers.Provider) {\n this.wallet = this.initializeWallet(config);\n this.provider = provider;\n\n if (provider) {\n this.wallet = this.wallet.connect(provider);\n }\n }\n\n /**\n * Initialize wallet from various sources\n */\n private initializeWallet(config: WalletConfig): ethers.Wallet | ethers.HDNodeWallet {\n if (config.privateKey) {\n return new ethers.Wallet(config.privateKey);\n }\n\n if (config.mnemonic) {\n return ethers.Wallet.fromPhrase(config.mnemonic);\n }\n\n if (config.walletFile) {\n return this.loadFromFile(config.walletFile);\n }\n\n // Generate new random wallet\n return ethers.Wallet.createRandom();\n }\n\n /**\n * Load wallet from encrypted file\n */\n private loadFromFile(filePath: string): ethers.Wallet {\n try {\n const walletData = fs.readFileSync(filePath, 'utf8');\n const data = JSON.parse(walletData);\n\n if (data.encrypted) {\n throw new Error('Encrypted wallets require password (not yet implemented)');\n }\n\n return new ethers.Wallet(data.privateKey);\n } catch (error) {\n throw new Error(`Failed to load wallet from file: ${(error as Error).message}`);\n }\n }\n\n /**\n * Save wallet to encrypted file\n */\n async saveToFile(filePath: string, password?: string): Promise<void> {\n const directory = path.dirname(filePath);\n if (!fs.existsSync(directory)) {\n fs.mkdirSync(directory, { recursive: true });\n }\n\n if (password) {\n // Use ethers built-in encryption\n const encrypted = await this.wallet.encrypt(password);\n fs.writeFileSync(filePath, encrypted, 'utf8');\n } else {\n // Save unencrypted (not recommended for production)\n const data = {\n address: this.wallet.address,\n privateKey: this.wallet.privateKey,\n mnemonic: 'mnemonic' in this.wallet ? this.wallet.mnemonic?.phrase : undefined,\n encrypted: false,\n };\n fs.writeFileSync(filePath, JSON.stringify(data, null, 2), 'utf8');\n }\n }\n\n /**\n * Get wallet instance\n */\n getWallet(): ethers.Wallet | ethers.HDNodeWallet {\n return this.wallet;\n }\n\n /**\n * Get wallet address\n */\n getAddress(): string {\n return this.wallet.address;\n }\n\n /**\n * Get private key (use with caution)\n */\n getPrivateKey(): string {\n return this.wallet.privateKey;\n }\n\n /**\n * Get mnemonic phrase (if available)\n */\n getMnemonic(): string | undefined {\n return 'mnemonic' in this.wallet ? this.wallet.mnemonic?.phrase : undefined;\n }\n\n /**\n * Sign a message\n */\n async signMessage(message: string): Promise<string> {\n return this.wallet.signMessage(message);\n }\n\n /**\n * Sign typed data (EIP-712)\n */\n async signTypedData(\n domain: ethers.TypedDataDomain,\n types: Record<string, ethers.TypedDataField[]>,\n value: Record<string, unknown>\n ): Promise<string> {\n return this.wallet.signTypedData(domain, types, value);\n }\n\n /**\n * Get balance\n */\n async getBalance(): Promise<bigint> {\n if (!this.provider) {\n throw new Error('Provider not set');\n }\n return this.provider.getBalance(this.wallet.address);\n }\n\n /**\n * Get nonce\n */\n async getNonce(): Promise<number> {\n if (!this.provider) {\n throw new Error('Provider not set');\n }\n return this.provider.getTransactionCount(this.wallet.address);\n }\n\n /**\n * Connect to a new provider\n */\n connect(provider: ethers.Provider): void {\n this.provider = provider;\n this.wallet = this.wallet.connect(provider);\n }\n\n /**\n * Generate a new random wallet\n */\n static createRandom(): WalletManager {\n const wallet = ethers.Wallet.createRandom();\n return new WalletManager({ privateKey: wallet.privateKey });\n }\n\n /**\n * Create from mnemonic\n */\n static fromMnemonic(mnemonic: string, provider?: ethers.Provider): WalletManager {\n return new WalletManager({ mnemonic }, provider);\n }\n\n /**\n * Create from private key\n */\n static fromPrivateKey(privateKey: string, provider?: ethers.Provider): WalletManager {\n return new WalletManager({ privateKey }, provider);\n }\n\n /**\n * Generate new mnemonic\n */\n static generateMnemonic(): string {\n return ethers.Wallet.createRandom().mnemonic?.phrase || '';\n }\n\n /**\n * Validate mnemonic\n */\n static isValidMnemonic(mnemonic: string): boolean {\n try {\n ethers.Wallet.fromPhrase(mnemonic);\n return true;\n } catch {\n return false;\n }\n }\n\n /**\n * Validate private key\n */\n static isValidPrivateKey(privateKey: string): boolean {\n try {\n new ethers.Wallet(privateKey);\n return true;\n } catch {\n return false;\n }\n }\n\n /**\n * Derive child wallet from HD path\n */\n static deriveChild(mnemonic: string, path: string): WalletManager {\n const hdNode = ethers.HDNodeWallet.fromPhrase(mnemonic, undefined, path);\n return new WalletManager({ privateKey: hdNode.privateKey });\n }\n}\n","/**\n * ChaosChain SDK Type Definitions\n * TypeScript types and interfaces for building verifiable AI agents\n */\n\nimport { ethers } from 'ethers';\nimport type { EvidencePackage } from './evidence';\n\n// ============================================================================\n// Core Enums\n// ============================================================================\n\n/**\n * Supported blockchain networks with pre-deployed ERC-8004 contracts\n */\nexport enum NetworkConfig {\n ETHEREUM_MAINNET = 'ethereum-mainnet',\n ETHEREUM_SEPOLIA = 'ethereum-sepolia',\n BASE_MAINNET = 'base-mainnet',\n BASE_SEPOLIA = 'base-sepolia',\n POLYGON_MAINNET = 'polygon-mainnet',\n POLYGON_AMOY = 'polygon-amoy',\n ARBITRUM_MAINNET = 'arbitrum-mainnet',\n ARBITRUM_TESTNET = 'arbitrum-testnet',\n CELO_MAINNET = 'celo-mainnet',\n CELO_TESTNET = 'celo-testnet',\n GNOSIS_MAINNET = 'gnosis-mainnet',\n SCROLL_MAINNET = 'scroll-mainnet',\n SCROLL_TESTNET = 'scroll-testnet',\n TAIKO_MAINNET = 'taiko-mainnet',\n MONAD_MAINNET = 'monad-mainnet',\n MONAD_TESTNET = 'monad-testnet',\n OPTIMISM_SEPOLIA = 'optimism-sepolia',\n LINEA_SEPOLIA = 'linea-sepolia',\n HEDERA_TESTNET = 'hedera-testnet',\n MODE_TESTNET = 'mode-testnet',\n ZEROG_TESTNET = '0g-testnet',\n BSC_MAINNET = 'bsc-mainnet',\n BSC_TESTNET = 'bsc-testnet',\n LOCAL = 'local',\n}\n\n/**\n * W3C-compliant payment methods supported by the SDK.\n */\nexport enum PaymentMethod {\n BASIC_CARD = 'basic-card',\n GOOGLE_PAY = 'https://google.com/pay',\n APPLE_PAY = 'https://apple.com/apple-pay',\n PAYPAL = 'https://paypal.com',\n A2A_X402 = 'https://a2a.org/x402',\n DIRECT_TRANSFER = 'direct-transfer',\n}\n\n/**\n * Agent role in the ChaosChain network\n */\nexport enum AgentRole {\n WORKER = 'worker',\n VERIFIER = 'verifier',\n CLIENT = 'client',\n ORCHESTRATOR = 'orchestrator',\n}\n\n// Legacy aliases for backward compatibility (deprecated)\n/** @deprecated Use AgentRole.WORKER instead */\nexport const AgentRoleSERVER = AgentRole.WORKER;\n/** @deprecated Use AgentRole.VERIFIER instead */\nexport const AgentRoleVALIDATOR = AgentRole.VERIFIER;\n\n// ============================================================================\n// Contract Types\n// ============================================================================\n\n/**\n * ERC-8004 contract addresses for a network\n */\nexport interface ContractAddresses {\n identity: string;\n reputation: string;\n validation: string;\n identityRegistry?: string;\n reputationRegistry?: string;\n validationRegistry?: string;\n identity_registry?: string;\n reputation_registry?: string;\n validation_registry?: string;\n rewardsDistributor?: string | null;\n chaosCore?: string | null;\n rewards_distributor?: string | null;\n chaos_core?: string | null;\n network?: NetworkConfig | null;\n}\n\n/**\n * Network configuration with RPC and contract addresses\n */\nexport interface NetworkInfo {\n chainId: number;\n name: string;\n rpcUrl: string;\n contracts: ContractAddresses;\n nativeCurrency: {\n name: string;\n symbol: string;\n decimals: number;\n };\n}\n\n// ============================================================================\n// Agent Types\n// ============================================================================\n\n/**\n * Agent metadata structure (ERC-8004 compliant)\n */\nexport interface AgentMetadata {\n name: string;\n domain: string;\n role: AgentRole | string;\n capabilities?: string[];\n version?: string;\n description?: string;\n image?: string;\n contact?: string;\n supportedTrust?: string[];\n}\n\n/**\n * Agent registration result\n */\nexport interface AgentRegistration {\n agentId: bigint;\n txHash: string;\n owner: string;\n}\n\n// ============================================================================\n// ERC-8004 Reputation Types\n// ============================================================================\n\n/**\n * Feedback submission parameters\n */\nexport interface FeedbackParams {\n agentId: bigint;\n rating: number;\n feedbackUri: string;\n feedbackData?: FeedbackData;\n}\n\n/**\n * Feedback metadata payload (ERC-8004 Jan/Feb 2026)\n */\nexport interface FeedbackData extends Record<string, unknown> {\n tag1?: string;\n tag2?: string;\n endpoint?: string;\n value?: number | bigint;\n valueDecimals?: number;\n content?: string;\n feedbackHash?: string;\n /**\n * @deprecated ERC-8004 Jan 2026 removed feedbackAuth\n */\n feedbackAuth?: string;\n}\n\n/**\n * Feedback record\n */\nexport interface FeedbackRecord {\n feedbackId: bigint;\n fromAgent: bigint;\n toAgent: bigint;\n rating: number;\n value?: number;\n valueDecimals?: number;\n tag1?: string;\n tag2?: string;\n endpoint?: string;\n feedbackIndex?: bigint;\n feedbackUri: string;\n timestamp: number;\n revoked: boolean;\n}\n\n// ============================================================================\n// ERC-8004 Validation Types\n// ============================================================================\n\n/**\n * Validation request parameters\n */\nexport interface ValidationRequestParams {\n validatorAgentId: bigint;\n requestUri: string;\n requestHash: string;\n}\n\n/**\n * Validation request record\n */\nexport interface ValidationRequest {\n requestId: bigint;\n requester: bigint;\n validator: bigint;\n requestUri: string;\n requestHash: string;\n status: ValidationStatus;\n responseUri?: string;\n timestamp: number;\n}\n\n/**\n * Validation status enum\n */\nexport enum ValidationStatus {\n PENDING = 0,\n APPROVED = 1,\n REJECTED = 2,\n}\n\n// ============================================================================\n// Payment Types\n// ============================================================================\n\n/**\n * x402 payment parameters\n */\nexport interface X402PaymentParams {\n toAgent: string;\n amount: string;\n currency?: string;\n serviceType?: string;\n metadata?: Record<string, unknown>;\n}\n\n/**\n * x402 payment result\n */\nexport interface X402Payment {\n from: string;\n to: string;\n amount: string;\n currency: string;\n txHash: string;\n timestamp: number;\n feeAmount?: string;\n feeTxHash?: string;\n}\n\n// ============================================================================\n// Storage Provider Types\n// ============================================================================\n\n/**\n * Storage upload options\n */\nexport interface UploadOptions {\n mime?: string;\n metadata?: Record<string, unknown>;\n pin?: boolean;\n}\n\n/**\n * Storage upload result\n */\nexport interface UploadResult {\n cid: string;\n uri: string;\n size?: number;\n timestamp: number;\n}\n\n/**\n * Storage provider interface\n */\nexport interface StorageProvider {\n upload(data: Buffer | string | object, options?: UploadOptions): Promise<UploadResult>;\n download(cid: string): Promise<Buffer>;\n pin(cid: string): Promise<void>;\n unpin(cid: string): Promise<void>;\n}\n\n// ============================================================================\n// Compute Provider Types\n// ============================================================================\n\n/**\n * Compute provider interface\n */\nexport interface ComputeProvider {\n inference(model: string, input: unknown): Promise<unknown>;\n getModels(): Promise<string[]>;\n}\n\n// ============================================================================\n// Process Integrity Types\n// ============================================================================\n\n/**\n * Verification method\n */\nexport enum VerificationMethod {\n TEE_ML = 'tee-ml', // Trusted Execution Environment\n ZK_ML = 'zk-ml', // Zero-Knowledge Machine Learning\n OP_ML = 'op-ml', // Optimistic Machine Learning\n NONE = 'none', // No verification\n}\n\n/**\n * TEE attestation data\n */\nexport interface TEEAttestation {\n jobId: string;\n provider: string;\n executionHash: string;\n verificationMethod: VerificationMethod;\n model?: string;\n attestationData: unknown;\n proof?: string;\n metadata?: unknown;\n timestamp: string;\n}\n\n/**\n * Integrity proof structure\n */\nexport interface IntegrityProof {\n proofId: string;\n functionName: string;\n codeHash: string;\n executionHash: string;\n timestamp: Date;\n agentName: string;\n verificationStatus: string;\n ipfsCid?: string;\n // TEE (Trusted Execution Environment) attestation fields\n teeAttestation?: TEEAttestation; // Full TEE attestation data\n teeProvider?: string; // e.g., \"0g-compute\", \"phala\"\n teeJobId?: string; // TEE provider's job/task ID\n teeExecutionHash?: string; // TEE-specific execution hash\n}\n\n// ============================================================================\n// SDK Configuration Types\n// ============================================================================\n\n/**\n * Main SDK configuration\n */\nexport interface ChaosChainSDKConfig {\n agentName: string;\n agentDomain: string;\n agentRole: AgentRole | string;\n network: NetworkConfig | string;\n privateKey?: string;\n mnemonic?: string;\n rpcUrl?: string;\n enableAP2?: boolean;\n enableProcessIntegrity?: boolean;\n enablePayments?: boolean;\n enableStorage?: boolean;\n storageProvider?: StorageProvider;\n computeProvider?: ComputeProvider;\n walletFile?: string;\n // x402 Facilitator Configuration (EIP-3009)\n facilitatorUrl?: string; // e.g., 'https://facilitator.chaoscha.in'\n facilitatorApiKey?: string; // Optional API key for managed facilitator\n facilitatorMode?: 'managed' | 'decentralized';\n agentId?: string; // ERC-8004 tokenId (e.g., '8004#123')\n // Gateway Client Configuration\n gatewayUrl?: string;\n gatewayConfig?: GatewayClientConfig;\n}\n\n/**\n * Wallet configuration\n */\nexport interface WalletConfig {\n privateKey?: string;\n mnemonic?: string;\n walletFile?: string;\n}\n\n// ============================================================================\n// Event Types\n// ============================================================================\n\n/**\n * Contract event data\n */\nexport interface ContractEvent {\n event: string;\n args: unknown[];\n blockNumber: number;\n transactionHash: string;\n logIndex: number;\n}\n\n/**\n * Agent registered event\n */\nexport interface AgentRegisteredEvent extends ContractEvent {\n agentId: bigint;\n owner: string;\n uri: string;\n}\n\n/**\n * Feedback given event\n */\nexport interface FeedbackGivenEvent extends ContractEvent {\n feedbackId: bigint;\n fromAgent: bigint;\n toAgent: bigint;\n rating: number;\n}\n\n/**\n * Validation requested event\n */\nexport interface ValidationRequestedEvent extends ContractEvent {\n requestId: bigint;\n requester: bigint;\n validator: bigint;\n}\n\n// ============================================================================\n// Helper Types\n// ============================================================================\n\n/**\n * Transaction result\n */\nexport interface TransactionResult {\n hash: string;\n receipt?: ethers.TransactionReceipt;\n confirmations?: number;\n}\n\n/**\n * Query result with pagination\n */\nexport interface QueryResult<T> {\n items: T[];\n total: number;\n page?: number;\n pageSize?: number;\n}\n\n/**\n * Error response\n */\nexport interface ErrorResponse {\n error: string;\n code?: string;\n details?: unknown;\n}\n\n/**\n * Agent identity\n */\nexport interface AgentIdentity {\n agentId: bigint;\n agentName: string;\n agentDomain: string;\n walletAddress: string;\n registrationTx: string;\n network: NetworkConfig;\n}\n\n/**\n * Proof of Payment Execution\n */\nexport interface PaymentProof {\n paymentId: string;\n fromAgent: string;\n toAgent: string;\n amount: number;\n currency: string;\n paymentMethod: PaymentMethod;\n transactionHash: string;\n timestamp: Date;\n receiptData: Record<string, unknown>;\n network?: string;\n}\n\n/**\n * Proof of Validation Execution\n */\nexport interface ValidationResult {\n validationId: string;\n validatorAgentId: number;\n score: number;\n qualityRating: string;\n validationSummary: string;\n detailedAssessment: Record<string, unknown>;\n timestamp: Date;\n ipfsCid?: string;\n}\n\n// ============================================================================\n// Gateway & Workflow Types\n// Ref: /chaoschain/packages/sdk/chaoschain_sdk/gateway_client.py\n// ============================================================================\n\n/**\n * Workflow types supported by Gateway.\n */\nexport enum WorkflowType {\n WORK_SUBMISSION = 'WorkSubmission',\n SCORE_SUBMISSION = 'ScoreSubmission',\n CLOSE_EPOCH = 'CloseEpoch',\n}\n\n/**\n * Workflow states.\n */\nexport enum WorkflowState {\n CREATED = 'CREATED',\n RUNNING = 'RUNNING',\n STALLED = 'STALLED',\n COMPLETED = 'COMPLETED',\n FAILED = 'FAILED',\n}\n\n/**\n * Score submission modes supported by Gateway.\n * - DIRECT: Simple direct scoring via submitScoreVectorForWorker (default, MVP)\n * - COMMIT_REVEAL: Commit-reveal pattern (prevents last-mover bias)\n */\nexport enum ScoreSubmissionMode {\n DIRECT = 'direct',\n COMMIT_REVEAL = 'commit_reveal',\n}\n\n/**\n * Progress data for a workflow.\n * Populated as the workflow progresses through steps.\n */\nexport interface WorkflowProgress {\n /** Arweave transaction ID for evidence archival */\n arweaveTxId?: string;\n /** Whether Arweave transaction is confirmed */\n arweaveConfirmed?: boolean;\n /** On-chain transaction hash */\n onchainTxHash?: string;\n /** Whether on-chain transaction is confirmed */\n onchainConfirmed?: boolean;\n /** Block number of on-chain confirmation */\n onchainBlock?: number;\n /** Score submission transaction hash (direct mode) */\n scoreTxHash?: string;\n /** Commit transaction hash (commit-reveal mode) */\n commitTxHash?: string;\n /** Reveal transaction hash (commit-reveal mode) */\n revealTxHash?: string;\n}\n\n/**\n * Error information for a failed workflow.\n */\nexport interface WorkflowError {\n /** Step where the error occurred */\n step: string;\n /** Human-readable error message */\n message: string;\n /** Optional error code */\n code?: string;\n}\n\n/**\n * Status of a workflow.\n */\nexport interface WorkflowStatus {\n /** Unique workflow identifier (UUID) */\n workflowId: string;\n /** Type of workflow */\n workflowType: WorkflowType;\n /** Current state */\n state: WorkflowState;\n /** Current step name */\n step: string;\n /** Unix timestamp of creation */\n createdAt: number;\n /** Unix timestamp of last update */\n updatedAt: number;\n /** Progress information */\n progress: WorkflowProgress;\n /** Error information (if state is FAILED) */\n error?: WorkflowError;\n}\n\n/**\n * Gateway API error category.\n */\nexport type GatewayErrorCategory = 'transient' | 'permanent' | 'auth' | 'unknown';\n\n/**\n * Gateway error details for classification and retries.\n */\nexport interface GatewayErrorInfo {\n statusCode?: number;\n category: GatewayErrorCategory;\n retryable: boolean;\n response?: Record<string, any>;\n}\n\n/**\n * Gateway health response payload.\n */\nexport interface GatewayHealthResponse {\n status: string;\n timestamp?: number;\n}\n\n/**\n * Gateway workflow progress response payload (snake_case).\n */\nexport interface GatewayWorkflowProgressResponse {\n arweave_tx_id?: string;\n arweave_confirmed?: boolean;\n onchain_tx_hash?: string;\n onchain_confirmed?: boolean;\n onchain_block?: number;\n score_tx_hash?: string;\n commit_tx_hash?: string;\n reveal_tx_hash?: string;\n}\n\n/**\n * Gateway workflow error response payload.\n */\nexport interface GatewayWorkflowErrorResponse {\n step?: string;\n message?: string;\n code?: string;\n}\n\n/**\n * Gateway workflow response payload.\n */\nexport interface GatewayWorkflowResponse {\n id: string;\n type: WorkflowType;\n state: WorkflowState;\n step: string;\n created_at: number;\n updated_at: number;\n progress?: GatewayWorkflowProgressResponse;\n error?: GatewayWorkflowErrorResponse;\n}\n\n/**\n * Gateway work submission request payload.\n */\nexport interface GatewayWorkSubmissionRequest {\n studio_address: string;\n epoch: number;\n agent_address: string;\n data_hash: string;\n thread_root: string;\n evidence_root: string;\n evidence_content: string;\n signer_address: string;\n}\n\n/**\n * Gateway score submission request payload.\n */\nexport interface GatewayScoreSubmissionRequest {\n studio_address: string;\n epoch: number;\n validator_address: string;\n data_hash: string;\n scores: number[];\n signer_address: string;\n mode: ScoreSubmissionMode;\n worker_address?: string;\n salt: string;\n}\n\n/**\n * Gateway close epoch request payload.\n */\nexport interface GatewayCloseEpochRequest {\n studio_address: string;\n epoch: number;\n signer_address: string;\n}\n\n/**\n * Gateway list workflows response payload.\n */\nexport interface GatewayListWorkflowsResponse {\n workflows: GatewayWorkflowResponse[];\n}\n\n/**\n * Gateway auth mode.\n */\nexport type GatewayAuthMode = 'apiKey' | 'signature';\n\n/**\n * Gateway signature auth input.\n */\nexport interface GatewaySignatureAuth {\n /** Precomputed signature for the request (server validates against address + timestamp). */\n address: string;\n signature: string;\n /** Optional Unix epoch in milliseconds; defaults to Date.now() when omitted. */\n timestamp?: number;\n}\n\n/**\n * Gateway auth configuration.\n */\nexport interface GatewayAuthConfig {\n authMode?: GatewayAuthMode;\n apiKey?: string;\n signature?: GatewaySignatureAuth;\n}\n\n/**\n * Gateway retry configuration.\n */\nexport interface GatewayRetryConfig {\n /** Retries are disabled by default; enable explicitly for transient errors only. */\n enabled?: boolean;\n maxRetries?: number;\n initialDelayMs?: number;\n maxDelayMs?: number;\n backoffFactor?: number;\n jitter?: boolean;\n jitterRatio?: number;\n}\n\n/**\n * Gateway client configuration.\n */\nexport interface GatewayClientConfig {\n /** Gateway API URL (preferred key, e.g. \"https://gateway.chaoscha.in\"). */\n baseUrl?: string;\n /** Legacy alias for baseUrl (kept for backward compatibility). */\n gatewayUrl?: string;\n /** Request timeout in milliseconds (default: 30000) */\n timeout?: number;\n /** Request timeout in milliseconds (alias of timeout) */\n timeoutMs?: number;\n /** Request timeout in seconds (alias of timeout) */\n timeoutSeconds?: number;\n /** Maximum time to wait for workflow completion in milliseconds (default: 300000) */\n maxPollTime?: number;\n /** Maximum time to wait for workflow completion in milliseconds (alias of maxPollTime) */\n maxPollTimeMs?: number;\n /** Maximum time to wait for workflow completion in seconds (alias of maxPollTime) */\n maxPollTimeSeconds?: number;\n /** Interval between status polls in milliseconds (default: 2000) */\n pollInterval?: number;\n /** Interval between status polls in milliseconds (alias of pollInterval) */\n pollIntervalMs?: number;\n /** Interval between status polls in seconds (alias of pollInterval) */\n pollIntervalSeconds?: number;\n /** Optional default headers merged into each request */\n headers?: Record<string, string>;\n /** Optional auth configuration */\n auth?: GatewayAuthConfig;\n /** Optional retry configuration (disabled by default) */\n retry?: GatewayRetryConfig;\n}\n\n// ============================================================================\n// Gateway Read API Types\n// ============================================================================\n\nexport interface PendingWorkItem {\n work_id: string;\n agent_id: number;\n epoch: number | null;\n submitted_at: string;\n evidence_anchor: string | null;\n derivation_root: string | null;\n}\n\nexport interface PendingWorkResponse {\n version: string;\n data: {\n studio: string;\n work: PendingWorkItem[];\n total: number;\n limit: number;\n offset: number;\n };\n}\n\nexport interface WorkEvidenceResponse {\n version: string;\n data: {\n work_id: string;\n thread_root: string;\n dkg_evidence: EvidencePackage[];\n };\n}\n\n// ============================================================================\n// Deprecated Types (backward compatibility only)\n// These types existed in early designs but functionality moved to Gateway\n// ============================================================================\n\n/**\n * @deprecated XMTP functionality has moved to the Gateway service.\n * This type is kept for backward compatibility only.\n * Do NOT implement XMTP client in SDK - use Gateway instead.\n */\nexport interface XMTPMessageData {\n messageId: string;\n fromAgent: string;\n toAgent: string;\n content: any;\n timestamp: number;\n parentIds: string[];\n artifactIds: string[];\n signature: string;\n}\n\n/**\n * @deprecated DKG functionality has moved to the Gateway service.\n * This type is kept for backward compatibility only.\n * Do NOT implement DKG in SDK - Gateway constructs the graph.\n */\nexport interface DKGNodeData {\n author: string;\n sig: string;\n ts: number;\n xmtpMsgId: string;\n artifactIds: string[];\n payloadHash: string;\n parents: string[];\n content?: string;\n nodeType?: string;\n metadata?: Record<string, any>;\n vlc?: string;\n canonicalHash?: string;\n}\n","/**\n * ERC-8004 v1.0 Contract ABIs and Addresses\n *\n * Complete ABIs extracted from Python SDK (chaos_agent.py lines 155-637)\n *\n * This module contains the complete ABIs for all ERC-8004 v1.0 contracts.\n * These are the official ABIs deployed on testnets.\n */\n\nimport { NetworkConfig } from '../types';\n\n/**\n * Get embedded Identity Registry ABI for ERC-8004 v1.0.\n *\n * v1.0 uses ERC-721 with URIStorage extension. Key changes:\n * - register() functions replace newAgent()\n * - Agents are ERC-721 NFTs with tokenURI\n * - ownerOf() to get agent owner\n * - tokenURI() to get registration file\n */\nexport const IDENTITY_REGISTRY_ABI = [\n // ERC - 8004 v1.0 Registration Functions\n {\n inputs: [\n { name: 'tokenURI_', type: 'string' },\n {\n name: 'metadata',\n type: 'tuple[]',\n components: [\n { name: 'key', type: 'string' },\n { name: 'value', type: 'bytes' },\n ],\n },\n ],\n name: 'register',\n outputs: [{ name: 'agentId', type: 'uint256' }],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [{ name: 'tokenURI_', type: 'string' }],\n name: 'register',\n outputs: [{ name: 'agentId', type: 'uint256' }],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'register',\n outputs: [{ name: 'agentId', type: 'uint256' }],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n // ERC - 721 Standard Functions\n {\n inputs: [{ name: 'tokenId', type: 'uint256' }],\n name: 'ownerOf',\n outputs: [{ name: 'owner', type: 'address' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [{ name: 'owner', type: 'address' }],\n name: 'balanceOf',\n outputs: [{ name: 'balance', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [{ name: 'tokenId', type: 'uint256' }],\n name: 'tokenURI',\n outputs: [{ name: '', type: 'string' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n { name: 'from', type: 'address' },\n { name: 'to', type: 'address' },\n { name: 'tokenId', type: 'uint256' },\n ],\n name: 'transferFrom',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n { name: 'to', type: 'address' },\n { name: 'tokenId', type: 'uint256' },\n ],\n name: 'approve',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n { name: 'operator', type: 'address' },\n { name: 'approved', type: 'bool' },\n ],\n name: 'setApprovalForAll',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [{ name: 'tokenId', type: 'uint256' }],\n name: 'getApproved',\n outputs: [{ name: 'operator', type: 'address' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n { name: 'owner', type: 'address' },\n { name: 'operator', type: 'address' },\n ],\n name: 'isApprovedForAll',\n outputs: [{ name: 'approved', type: 'bool' }],\n stateMutability: 'view',\n type: 'function',\n },\n // Metadata Functions\n {\n inputs: [\n { name: 'agentId', type: 'uint256' },\n { name: 'key', type: 'string' },\n { name: 'value', type: 'bytes' },\n ],\n name: 'setMetadata',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n { name: 'agentId', type: 'uint256' },\n { name: 'key', type: 'string' },\n ],\n name: 'getMetadata',\n outputs: [{ name: 'value', type: 'bytes' }],\n stateMutability: 'view',\n type: 'function',\n },\n // Additional Functions\n {\n inputs: [\n { name: 'agentId', type: 'uint256' },\n { name: 'newUri', type: 'string' },\n ],\n name: 'setAgentUri',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n // Events\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'agentId', type: 'uint256' },\n { indexed: false, name: 'tokenURI', type: 'string' },\n { indexed: true, name: 'owner', type: 'address' },\n ],\n name: 'Registered',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'agentId', type: 'uint256' },\n { indexed: true, name: 'indexedKey', type: 'string' },\n { indexed: false, name: 'key', type: 'string' },\n { indexed: false, name: 'value', type: 'bytes' },\n ],\n name: 'MetadataSet',\n type: 'event',\n },\n // ERC - 721 Standard Events\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'from', type: 'address' },\n { indexed: true, name: 'to', type: 'address' },\n { indexed: true, name: 'tokenId', type: 'uint256' },\n ],\n name: 'Transfer',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'owner', type: 'address' },\n { indexed: true, name: 'approved', type: 'address' },\n { indexed: true, name: 'tokenId', type: 'uint256' },\n ],\n name: 'Approval',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'owner', type: 'address' },\n { indexed: true, name: 'operator', type: 'address' },\n { indexed: false, name: 'approved', type: 'bool' },\n ],\n name: 'ApprovalForAll',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'agentId', type: 'uint256' },\n { indexed: false, name: 'newUri', type: 'string' },\n { indexed: true, name: 'updatedBy', type: 'address' },\n ],\n name: 'UriUpdated',\n type: 'event',\n },\n];\n\n/**\n * Get Reputation Registry ABI (ERC-8004 Feb 2026)\n *\n * Feb 2026 KEY CHANGES from Oct 2025:\n * - REMOVED feedbackAuth parameter - feedback is now permissionless\n * - ADDED endpoint parameter for endpoint being reviewed\n * - CHANGED tag1, tag2 from bytes32 to string\n * - ADDED feedbackIndex to NewFeedback event\n * - readFeedback returns string tags and feedbackIndex parameter renamed\n *\n * Feb 2026 ABI UPDATE:\n * - CHANGED score (uint8) to value (int128) + valueDecimals (uint8)\n * - getSummary returns summaryValue (int128) + summaryValueDecimals (uint8)\n * - readFeedback returns value (int128) + valueDecimals (uint8)\n */\nexport const REPUTATION_REGISTRY_ABI = [\n // Core Functions (Feb 2026 ABI)\n {\n inputs: [\n { name: 'agentId', type: 'uint256' },\n { name: 'value', type: 'int128' }, // CHANGED: uint8 score -> int128 value\n { name: 'valueDecimals', type: 'uint8' }, // NEW: decimal precision\n { name: 'tag1', type: 'string' }, // CHANGED: bytes32 -> string\n { name: 'tag2', type: 'string' }, // CHANGED: bytes32 -> string\n { name: 'endpoint', type: 'string' }, // NEW: endpoint being reviewed\n { name: 'feedbackURI', type: 'string' },\n { name: 'feedbackHash', type: 'bytes32' },\n ],\n name: 'giveFeedback',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n { name: 'agentId', type: 'uint256' },\n { name: 'feedbackIndex', type: 'uint64' },\n ],\n name: 'revokeFeedback',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n { name: 'agentId', type: 'uint256' },\n { name: 'clientAddress', type: 'address' },\n { name: 'feedbackIndex', type: 'uint64' },\n { name: 'responseURI', type: 'string' }, // RENAMED: responseUri -> responseURI\n { name: 'responseHash', type: 'bytes32' },\n ],\n name: 'appendResponse',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n // Read Functions (Feb 2026 ABI)\n {\n inputs: [\n { name: 'agentId', type: 'uint256' },\n { name: 'clientAddresses', type: 'address[]' },\n { name: 'tag1', type: 'string' }, // CHANGED: bytes32 -> string\n { name: 'tag2', type: 'string' }, // CHANGED: bytes32 -> string\n ],\n name: 'getSummary',\n outputs: [\n { name: 'count', type: 'uint64' },\n { name: 'summaryValue', type: 'int128' }, // CHANGED: uint8 averageScore -> int128 summaryValue\n { name: 'summaryValueDecimals', type: 'uint8' }, // NEW: decimal precision\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n { name: 'agentId', type: 'uint256' },\n { name: 'clientAddress', type: 'address' },\n { name: 'feedbackIndex', type: 'uint64' },\n ],\n name: 'readFeedback',\n outputs: [\n { name: 'value', type: 'int128' }, // CHANGED: uint8 score -> int128 value\n { name: 'valueDecimals', type: 'uint8' }, // NEW: decimal precision\n { name: 'tag1', type: 'string' }, // CHANGED: bytes32 -> string\n { name: 'tag2', type: 'string' }, // CHANGED: bytes32 -> string\n { name: 'isRevoked', type: 'bool' },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n { name: 'agentId', type: 'uint256' },\n { name: 'clientAddresses', type: 'address[]' },\n { name: 'tag1', type: 'string' }, // CHANGED: bytes32 -> string\n { name: 'tag2', type: 'string' }, // CHANGED: bytes32 -> string\n { name: 'includeRevoked', type: 'bool' },\n ],\n name: 'readAllFeedback',\n outputs: [\n { name: 'clients', type: 'address[]' },\n { name: 'feedbackIndexes', type: 'uint64[]' }, // NEW: feedback indexes\n { name: 'values', type: 'int128[]' }, // CHANGED: uint8[] scores -> int128[] values\n { name: 'valueDecimals', type: 'uint8[]' }, // NEW: decimal precisions\n { name: 'tag1s', type: 'string[]' }, // CHANGED: bytes32[] -> string[]\n { name: 'tag2s', type: 'string[]' }, // CHANGED: bytes32[] -> string[]\n { name: 'revokedStatuses', type: 'bool[]' },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [{ name: 'agentId', type: 'uint256' }],\n name: 'getClients',\n outputs: [{ name: 'clientList', type: 'address[]' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n { name: 'agentId', type: 'uint256' },\n { name: 'clientAddress', type: 'address' },\n ],\n name: 'getLastIndex',\n outputs: [{ name: 'lastIndex', type: 'uint64' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getIdentityRegistry',\n outputs: [{ name: 'registry', type: 'address' }],\n stateMutability: 'view',\n type: 'function',\n },\n // Events (Feb 2026 spec)\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'agentId', type: 'uint256' },\n { indexed: true, name: 'clientAddress', type: 'address' },\n { indexed: false, name: 'feedbackIndex', type: 'uint64' }, // NEW\n { indexed: false, name: 'score', type: 'uint8' },\n { indexed: true, name: 'tag1', type: 'string' }, // CHANGED: bytes32 -> string\n { indexed: false, name: 'tag2', type: 'string' }, // CHANGED: bytes32 -> string\n { indexed: false, name: 'endpoint', type: 'string' }, // NEW\n { indexed: false, name: 'feedbackURI', type: 'string' }, // RENAMED\n { indexed: false, name: 'feedbackHash', type: 'bytes32' },\n ],\n name: 'NewFeedback',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'agentId', type: 'uint256' },\n { indexed: true, name: 'clientAddress', type: 'address' },\n { indexed: false, name: 'feedbackIndex', type: 'uint64' },\n { indexed: true, name: 'responder', type: 'address' },\n { indexed: false, name: 'responseURI', type: 'string' }, // RENAMED\n { indexed: false, name: 'responseHash', type: 'bytes32' },\n ],\n name: 'ResponseAppended',\n type: 'event',\n },\n];\n\n/**\n * Get Validation Registry ABI (ERC-8004 v1.0)\n *\n * v1.0 uses URI-based validation with off-chain evidence storage.\n * Key changes:\n * - validationRequest() uses validatorAddress instead of validatorAgentId\n * - requestUri and requestHash for off-chain evidence\n * - validationResponse() uses requestHash with response (0-100)\n * - Support for multiple responses per request (progressive validation)\n */\nexport const VALIDATION_REGISTRY_ABI = [\n // Core Functions\n {\n inputs: [\n { name: 'validatorAddress', type: 'address' },\n { name: 'agentId', type: 'uint256' },\n { name: 'requestUri', type: 'string' },\n { name: 'requestHash', type: 'bytes32' },\n ],\n name: 'validationRequest',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n { name: 'requestHash', type: 'bytes32' },\n { name: 'response', type: 'uint8' },\n { name: 'responseUri', type: 'string' },\n { name: 'responseHash', type: 'bytes32' },\n { name: 'tag', type: 'bytes32' },\n ],\n name: 'validationResponse',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n // Read Functions\n {\n inputs: [{ name: 'requestHash', type: 'bytes32' }],\n name: 'getValidationStatus',\n outputs: [\n { name: 'validatorAddress', type: 'address' },\n { name: 'agentId', type: 'uint256' },\n { name: 'response', type: 'uint8' },\n { name: 'responseHash', type: 'bytes32' },\n { name: 'tag', type: 'bytes32' },\n { name: 'lastUpdate', type: 'uint256' },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n { name: 'agentId', type: 'uint256' },\n { name: 'validatorAddresses', type: 'address[]' },\n { name: 'tag', type: 'bytes32' },\n ],\n name: 'getSummary',\n outputs: [\n { name: 'count', type: 'uint64' },\n { name: 'avgResponse', type: 'uint8' },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [{ name: 'agentId', type: 'uint256' }],\n name: 'getAgentValidations',\n outputs: [{ name: 'requestHashes', type: 'bytes32[]' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [{ name: 'validatorAddress', type: 'address' }],\n name: 'getValidatorRequests',\n outputs: [{ name: 'requestHashes', type: 'bytes32[]' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getIdentityRegistry',\n outputs: [{ name: 'registry', type: 'address' }],\n stateMutability: 'view',\n type: 'function',\n },\n // Events\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'validatorAddress', type: 'address' },\n { indexed: true, name: 'agentId', type: 'uint256' },\n { indexed: false, name: 'requestUri', type: 'string' },\n { indexed: true, name: 'requestHash', type: 'bytes32' },\n ],\n name: 'ValidationRequest',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'validatorAddress', type: 'address' },\n { indexed: true, name: 'agentId', type: 'uint256' },\n { indexed: true, name: 'requestHash', type: 'bytes32' },\n { indexed: false, name: 'response', type: 'uint8' },\n { indexed: false, name: 'responseUri', type: 'string' },\n { indexed: false, name: 'responseHash', type: 'bytes32' },\n { indexed: false, name: 'tag', type: 'bytes32' },\n ],\n name: 'ValidationResponse',\n type: 'event',\n },\n] as const;\n\n/**\n * ERC-20 USDC ABI (for x402 payments)\n */\nexport const ERC20_ABI = [\n {\n inputs: [{ name: 'account', type: 'address' }],\n name: 'balanceOf',\n outputs: [{ name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n { name: 'to', type: 'address' },\n { name: 'amount', type: 'uint256' },\n ],\n name: 'transfer',\n outputs: [{ name: '', type: 'bool' }],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n { name: 'spender', type: 'address' },\n { name: 'amount', type: 'uint256' },\n ],\n name: 'approve',\n outputs: [{ name: '', type: 'bool' }],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n { name: 'owner', type: 'address' },\n { name: 'spender', type: 'address' },\n ],\n name: 'allowance',\n outputs: [{ name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'decimals',\n outputs: [{ name: '', type: 'uint8' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'symbol',\n outputs: [{ name: '', type: 'string' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'name',\n outputs: [{ name: '', type: 'string' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'from', type: 'address' },\n { indexed: true, name: 'to', type: 'address' },\n { indexed: false, name: 'value', type: 'uint256' },\n ],\n name: 'Transfer',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'owner', type: 'address' },\n { indexed: true, name: 'spender', type: 'address' },\n { indexed: false, name: 'value', type: 'uint256' },\n ],\n name: 'Approval',\n type: 'event',\n },\n];\n\n/**\n * USDC token addresses by network\n */\nexport const USDC_ADDRESSES: Record<string, string> = {\n [NetworkConfig.ETHEREUM_MAINNET]: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n [NetworkConfig.ETHEREUM_SEPOLIA]: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238',\n [NetworkConfig.BASE_SEPOLIA]: '0x036CbD53842c5426634e7929541eC2318f3dCF7e',\n [NetworkConfig.OPTIMISM_SEPOLIA]: '0x5fd84259d66Cd46123540766Be93DFE6D43130D7',\n [NetworkConfig.LINEA_SEPOLIA]: '0x0000000000000000000000000000000000000000', // TODO: Add Linea Sepolia USDC address\n [NetworkConfig.HEDERA_TESTNET]: '0x0000000000000000000000000000000000000000', // TODO: Add Hedera Testnet USDC address\n [NetworkConfig.ZEROG_TESTNET]: '0x0000000000000000000000000000000000000000', // TODO: Add Zerog Testnet USDC address\n [NetworkConfig.BSC_TESTNET]: '0x0000000000000000000000000000000000000000', // TODO: Add BSC Testnet USDC address\n [NetworkConfig.MODE_TESTNET]: '0x0000000000000000000000000000000000000000', // TODO: Add Mode Testnet USDC address\n [NetworkConfig.LOCAL]: '0x0000000000000000000000000000000000000000',\n};\n\n/**\n * Get USDC address for network\n */\nexport function getUSDCAddress(network: string): string {\n return USDC_ADDRESSES[network] || '0x0000000000000000000000000000000000000000';\n}\n\n/**\n * ERC-8004 v1.0 Contract Addresses by Network\n */\nexport const CONTRACT_ADDRESSES = {\n [NetworkConfig.ETHEREUM_MAINNET]: {\n identity: '0x8004A169FB4a3325136EB29fA0ceB6D2e539a432',\n reputation: '0x8004BAa17C55a88189AE136b182e5fdA19dE9b63',\n validation: '0x0000000000000000000000000000000000000000',\n usdc: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',\n treasury: null,\n chaos_core: null,\n rewards_distributor: null,\n studio_factory: null,\n },\n [NetworkConfig.ETHEREUM_SEPOLIA]: {\n // Official ERC-8004 Registries (Feb 2026 spec - https://github.com/erc-8004/erc-8004-contracts)\n identity: '0x8004A818BFB912233c491871b3d84c89A494BD9e',\n reputation: '0x8004B663056A597Dffe9eCcC1965A193B7388713',\n validation: '0x8004CB39f29c09145F24Ad9dDe2A108C1A2cdfC5',\n usdc: '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238',\n treasury: '0x20E7B2A2c8969725b88Dd3EF3a11Bc3353C83F70',\n // ChaosChain Protocol v0.4.31 (deployed Jan 28, 2026) - ERC-8004 Feb 2026 ABI\n // giveFeedback: score (uint8) -> value (int128) + valueDecimals (uint8)\n // validationResponse: tag (bytes32) -> tag (string)\n chaos_registry: '0x7F38C1aFFB24F30500d9174ed565110411E42d50',\n chaos_core: '0x92cBc471D8a525f3Ffb4BB546DD8E93FC7EE67ca',\n rewards_distributor: '0x4bd7c3b53474Ba5894981031b5a9eF70CEA35e53',\n studio_factory: '0x54Cbf5fa7d10ECBab4f46D71FAD298A230A16aF6',\n // LogicModules\n prediction_logic: '0xE90CaE8B64458ba796F462AB48d84F6c34aa29a3',\n },\n [NetworkConfig.OPTIMISM_SEPOLIA]: {\n identity_registry: '0x0000000000000000000000000000000000000000', // Not yet deployed\n reputation_registry: '0x0000000000000000000000000000000000000000',\n validation_registry: '0x0000000000000000000000000000000000000000',\n usdc_token: '0x5fd84259d66Cd46123540766Be93DFE6D43130D7',\n treasury: '0x20E7B2A2c8969725b88Dd3EF3a11Bc3353C83F70',\n },\n [NetworkConfig.MODE_TESTNET]: {\n identity: '0x0000000000000000000000000000000000000000',\n reputation: '0x0000000000000000000000000000000000000000',\n validation: '0x0000000000000000000000000000000000000000',\n usdc: '0x0000000000000000000000000000000000000000',\n treasury: '0x20E7B2A2c8969725b88Dd3EF3a11Bc3353C83F70',\n },\n [NetworkConfig.BASE_SEPOLIA]: {\n identity: '0x8004AA63c570c570eBF15376c0dB199918BFe9Fb',\n reputation: '0x8004bd8daB57f14Ed299135749a5CB5c42d341BF',\n validation: '0x8004C269D0A5647E51E121FeB226200ECE932d55',\n usdc: '0x036CbD53842c5426634e7929541eC2318f3dCF7e',\n treasury: '0x20E7B2A2c8969725b88Dd3EF3a11Bc3353C83F70',\n },\n [NetworkConfig.LINEA_SEPOLIA]: {\n identity: '0x8004aa7C931bCE1233973a0C6A667f73F66282e7',\n reputation: '0x8004bd8483b99310df121c46ED8858616b2Bba02',\n validation: '0x8004c44d1EFdd699B2A26e781eF7F77c56A9a4EB',\n usdc: '0x0000000000000000000000000000000000000000',\n treasury: '0x20E7B2A2c8969725b88Dd3EF3a11Bc3353C83F70',\n },\n [NetworkConfig.HEDERA_TESTNET]: {\n identity: '0x4c74ebd72921d537159ed2053f46c12a7d8e5923',\n reputation: '0xc565edcba77e3abeade40bfd6cf6bf583b3293e0',\n validation: '0x18df085d85c586e9241e0cd121ca422f571c2da6',\n usdc: '0x0000000000000000000000000000000000000000',\n treasury: '0x20E7B2A2c8969725b88Dd3EF3a11Bc3353C83F70',\n },\n [NetworkConfig.ZEROG_TESTNET]: {\n identity: '0x80043ed9cf33a3472768dcd53175bb44e03a1e4a',\n reputation: '0x80045d7b72c47bf5ff73737b780cb1a5ba8ee202',\n validation: '0x80041728e0aadf1d1427f9be18d52b7f3afefafb',\n usdc: '0x0000000000000000000000000000000000000000',\n treasury: '0x20E7B2A2c8969725b88Dd3EF3a11Bc3353C83F70',\n },\n [NetworkConfig.BSC_TESTNET]: {\n identity: '0xabbd26d86435b35d9c45177725084ee6a2812e40',\n reputation: '0xeced1af52a0446275e9e6e4f6f26c99977400a6a',\n validation: '0x7866bd057f09a4940fe2ce43320518c8749a921e',\n usdc: '0x0000000000000000000000000000000000000000',\n treasury: '0x20E7B2A2c8969725b88Dd3EF3a11Bc3353C83F70',\n },\n} as const;\n\n/**\n * Get contract addresses for a network\n */\nexport function getContractAddresses(network: string) {\n return CONTRACT_ADDRESSES[network as keyof typeof CONTRACT_ADDRESSES];\n}\n\n// ===========================================================================\n// ChaosChain Protocol ABIs (Extracted from Python SDK core_sdk.py)\n// ===========================================================================\n\n/**\n * ChaosCore ABI - Factory for creating Studios\n *\n * Methods:\n * - createStudio(name, logicModule) -> (proxy, studioId)\n */\nexport const CHAOS_CORE_ABI = [\n {\n inputs: [\n { name: 'name', type: 'string' },\n { name: 'logicModule', type: 'address' },\n ],\n name: 'createStudio',\n outputs: [\n { name: 'proxy', type: 'address' },\n { name: 'studioId', type: 'uint256' },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'studioId', type: 'uint256' },\n { indexed: false, name: 'proxy', type: 'address' },\n { indexed: false, name: 'logicModule', type: 'address' },\n { indexed: true, name: 'creator', type: 'address' },\n ],\n name: 'StudioCreated',\n type: 'event',\n },\n] as const;\n\n/**\n * StudioProxy ABI - Main Studio contract for work submission and scoring\n *\n * Methods:\n * - registerAgent(agentId, role) [payable] - Register agent with stake\n * - submitWork(dataHash, threadRoot, evidenceRoot, feedbackAuth) - Submit single-agent work\n * - submitWorkMultiAgent(dataHash, threadRoot, evidenceRoot, participants, contributionWeights, evidenceCID) - Multi-agent work\n * - commitScore(dataHash, commitment) - Commit phase of commit-reveal\n * - revealScore(dataHash, scoreVector, salt) - Reveal phase\n * - getWithdrawableBalance(account) -> balance - Query pending rewards\n * - withdrawRewards() - Withdraw pending rewards\n */\nexport const STUDIO_PROXY_ABI = [\n // Agent Registration\n {\n inputs: [\n { name: 'agentId', type: 'uint256' },\n { name: 'role', type: 'uint8' },\n ],\n name: 'registerAgent',\n outputs: [],\n stateMutability: 'payable',\n type: 'function',\n },\n // Work Submission (single agent - feedbackAuth deprecated in Jan 2026)\n {\n inputs: [\n { name: 'dataHash', type: 'bytes32' },\n { name: 'threadRoot', type: 'bytes32' },\n { name: 'evidenceRoot', type: 'bytes32' },\n { name: 'feedbackAuth', type: 'bytes' }, // DEPRECATED in Jan 2026\n ],\n name: 'submitWork',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n // Multi-Agent Work Submission (Jan 2026 spec - no feedbackAuth)\n {\n inputs: [\n { name: 'dataHash', type: 'bytes32' },\n { name: 'threadRoot', type: 'bytes32' },\n { name: 'evidenceRoot', type: 'bytes32' },\n { name: 'participants', type: 'address[]' },\n { name: 'contributionWeights', type: 'uint16[]' },\n { name: 'evidenceCID', type: 'string' },\n ],\n name: 'submitWorkMultiAgent',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n // Score Commit-Reveal\n {\n inputs: [\n { name: 'dataHash', type: 'bytes32' },\n { name: 'commitment', type: 'bytes32' },\n ],\n name: 'commitScore',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n { name: 'dataHash', type: 'bytes32' },\n { name: 'scoreVector', type: 'bytes' },\n { name: 'salt', type: 'bytes32' },\n ],\n name: 'revealScore',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n // Direct Score Submission (alternative to commit-reveal)\n {\n inputs: [\n { name: 'dataHash', type: 'bytes32' },\n { name: 'scoreVector', type: 'bytes' },\n ],\n name: 'submitScoreVector',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n // Per-Worker Score Submission (for multi-agent tasks)\n {\n inputs: [\n { name: 'dataHash', type: 'bytes32' },\n { name: 'workerAddress', type: 'address' },\n { name: 'scoreVector', type: 'bytes' },\n ],\n name: 'submitScoreVectorForWorker',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n // Rewards\n {\n inputs: [{ name: 'account', type: 'address' }],\n name: 'getWithdrawableBalance',\n outputs: [{ name: 'balance', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'withdrawRewards',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n // FeedbackAuth Registration (DEPRECATED in Jan 2026)\n {\n inputs: [\n { name: 'dataHash', type: 'bytes32' },\n { name: 'feedbackAuth', type: 'bytes' },\n ],\n name: 'registerFeedbackAuth',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n // Events\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'agentId', type: 'uint256' },\n { indexed: true, name: 'agentAddress', type: 'address' },\n { indexed: false, name: 'role', type: 'uint8' },\n { indexed: false, name: 'stake', type: 'uint256' },\n ],\n name: 'AgentRegistered',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'dataHash', type: 'bytes32' },\n { indexed: true, name: 'submitter', type: 'address' },\n { indexed: false, name: 'threadRoot', type: 'bytes32' },\n { indexed: false, name: 'evidenceRoot', type: 'bytes32' },\n ],\n name: 'WorkSubmitted',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'dataHash', type: 'bytes32' },\n { indexed: true, name: 'validator', type: 'address' },\n { indexed: false, name: 'commitment', type: 'bytes32' },\n ],\n name: 'ScoreCommitted',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'dataHash', type: 'bytes32' },\n { indexed: true, name: 'validator', type: 'address' },\n { indexed: false, name: 'scoreVector', type: 'bytes' },\n ],\n name: 'ScoreRevealed',\n type: 'event',\n },\n] as const;\n\n/**\n * RewardsDistributor ABI - Manages epoch closure and reward distribution\n *\n * Methods:\n * - closeEpoch(studio, epoch) - Close an epoch and trigger reward distribution\n */\nexport const REWARDS_DISTRIBUTOR_ABI = [\n {\n inputs: [\n { name: 'studio', type: 'address' },\n { name: 'epoch', type: 'uint64' },\n ],\n name: 'closeEpoch',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n // Events\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'studio', type: 'address' },\n { indexed: true, name: 'epoch', type: 'uint64' },\n { indexed: false, name: 'totalRewards', type: 'uint256' },\n ],\n name: 'EpochClosed',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, name: 'studio', type: 'address' },\n { indexed: true, name: 'recipient', type: 'address' },\n { indexed: false, name: 'amount', type: 'uint256' },\n ],\n name: 'RewardsDistributed',\n type: 'event',\n },\n] as const;\n\n/**\n * StudioFactory ABI - Factory for creating Studios (alternative to ChaosCore)\n */\nexport const STUDIO_FACTORY_ABI = [\n {\n inputs: [\n { name: 'name', type: 'string' },\n { name: 'logicModule', type: 'address' },\n ],\n name: 'createStudio',\n outputs: [{ name: 'proxy', type: 'address' }],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n] as const;\n\n/**\n * Common contract errors\n */\nexport const CONTRACT_ERRORS = {\n AGENT_NOT_FOUND: 'Agent does not exist',\n UNAUTHORIZED: 'Caller is not authorized',\n INVALID_RATING: 'Rating must be between 0 and 100',\n FEEDBACK_NOT_FOUND: 'Feedback does not exist',\n FEEDBACK_REVOKED: 'Feedback has been revoked',\n VALIDATION_NOT_FOUND: 'Validation request does not exist',\n VALIDATION_ALREADY_RESPONDED: 'Validation already responded',\n INSUFFICIENT_BALANCE: 'Insufficient balance',\n} as const;\n","/**\n * ChaosAgent - ERC-8004 v1.0 Contract Interactions\n * Handles Identity, Reputation, and Validation Registry interactions\n */\n\nimport { ethers } from 'ethers';\nimport { AgentMetadata, AgentRegistration, FeedbackParams, ContractAddresses } from './types';\nimport {\n IDENTITY_REGISTRY_ABI,\n REPUTATION_REGISTRY_ABI,\n VALIDATION_REGISTRY_ABI,\n} from './utils/contracts';\nimport path from 'path';\nimport fs from 'fs';\n\nexport class ChaosAgent {\n private identityContract: ethers.Contract;\n private reputationContract: ethers.Contract;\n private validationContract: ethers.Contract;\n private signer: ethers.Signer;\n private _agentId: bigint | null = null;\n\n constructor(addresses: ContractAddresses, signer: ethers.Signer, _provider: ethers.Provider) {\n this.signer = signer;\n\n // Initialize contract instances\n this.identityContract = new ethers.Contract(addresses.identity, IDENTITY_REGISTRY_ABI, signer);\n this.reputationContract = new ethers.Contract(\n addresses.reputation,\n REPUTATION_REGISTRY_ABI,\n signer\n );\n this.validationContract = new ethers.Contract(\n addresses.validation,\n VALIDATION_REGISTRY_ABI,\n signer\n );\n }\n\n // ============================================================================\n // Identity Registry Methods\n // ============================================================================\n\n /**\n * Register a new agent identity (ERC-8004)\n */\n async registerIdentity(metadata?: AgentMetadata): Promise<AgentRegistration> {\n // Create metadata URI (JSON)\n const uri = metadata ? `data:application/json,${JSON.stringify(metadata)}` : '';\n\n // Call register with the appropriate overload\n let tx;\n if (uri) {\n // Use register(string) overload\n tx = await this.identityContract['register(string)'](uri);\n } else {\n // Use register() overload\n tx = await this.identityContract['register()']();\n }\n const receipt = await tx.wait();\n\n // Parse Registered event\n const event = receipt.logs\n .map((log: ethers.Log) => {\n try {\n return this.identityContract.interface.parseLog({\n topics: [...log.topics],\n data: log.data,\n });\n } catch {\n return null;\n }\n })\n .find((e: ethers.LogDescription | null) => e?.name === 'Registered');\n\n if (!event) {\n throw new Error('Registered event not found');\n }\n\n // Set agent ID in memory and cache\n await this.setCachedAgentId(event.args.agentId);\n\n return {\n agentId: event.args.agentId,\n txHash: receipt.hash,\n owner: event.args.owner,\n };\n }\n\n /**\n * Get agent metadata\n */\n async getAgentMetadata(agentId: bigint): Promise<AgentMetadata | null> {\n try {\n const uri = await this.identityContract.tokenURI(agentId);\n\n if (!uri) {\n return null;\n }\n\n // Parse data URI\n if (uri.startsWith('data:application/json,')) {\n const json = uri.substring('data:application/json,'.length);\n return JSON.parse(decodeURIComponent(json));\n }\n\n // Parse ipfs:// URI (fetch from gateway)\n if (uri.startsWith('ipfs://')) {\n const cid = uri.substring(7);\n const response = await fetch(`https://ipfs.io/ipfs/${cid}`);\n return response.json() as Promise<AgentMetadata>;\n }\n\n // Parse https:// URI\n if (uri.startsWith('https://') || uri.startsWith('http://')) {\n const response = await fetch(uri);\n return response.json() as Promise<AgentMetadata>;\n }\n\n return null;\n } catch (error) {\n console.error('Failed to get agent metadata:', error);\n return null;\n }\n }\n\n /**\n * Set agent URI\n */\n async setAgentUri(agentId: bigint, uri: string): Promise<string> {\n const tx = await this.identityContract.setAgentUri(agentId, uri);\n const receipt = await tx.wait();\n return receipt.hash;\n }\n\n /**\n * Update agent metadata\n */\n async updateAgentMetadata(agentId: bigint, metadata: AgentMetadata): Promise<string> {\n const uri = `data:application/json,${JSON.stringify(metadata)}`;\n return this.setAgentUri(agentId, uri);\n }\n\n /**\n * Check if agent exists\n */\n async agentExists(agentId: bigint): Promise<boolean> {\n return this.identityContract.agentExists(agentId);\n }\n\n /**\n * Get agent owner\n */\n async getAgentOwner(agentId: bigint): Promise<string> {\n return this.identityContract.ownerOf(agentId);\n }\n\n /**\n * Get total number of agents\n */\n async getTotalAgents(): Promise<bigint> {\n return this.identityContract.totalAgents();\n }\n\n /**\n * Get the agent's on-chain ID (ERC-8004) with optional local caching.\n *\n * @param useCache - If true, check local cache first (default: true)\n * @returns Agent ID if registered, null otherwise\n */\n async getAgentId(useCache: boolean = true): Promise<bigint | null> {\n // 1. Check memory first\n if (this._agentId !== null) return this._agentId;\n\n // 2. Check chain info for cache lookup\n const network = await this.signer.provider!.getNetwork();\n const chainId = Number(network.chainId);\n const walletAddress = await this.signer.getAddress();\n\n // 3. Check cache if enabled\n if (useCache) {\n const cachedId = this.loadAgentIdFromCache(chainId, walletAddress);\n if (cachedId !== null) {\n this._agentId = cachedId;\n console.log('Agent ID loaded from cache:', cachedId);\n return cachedId;\n }\n }\n\n // 4. Query on-chain\n try {\n const balance: bigint = await this.identityContract.balanceOf(walletAddress);\n if (balance === 0n) {\n return null; // No agents owned\n }\n\n // 5. Try ERC-721 Enumerable first\n try {\n const agentId: bigint = await this.identityContract.tokenOfOwnerByIndex(walletAddress, 0);\n this._agentId = agentId;\n this.saveAgentIdTocache(chainId, walletAddress, agentId);\n return this._agentId;\n } catch (error) {\n // tokenOfOwnerByIndex not available, use fallback\n }\n\n // 6. Fallback: iterate through recent tokens\n try {\n const totalSupply: bigint = await this.identityContract.totalSupply();\n const total = Number(totalSupply);\n for (let i = total; i > Math.max(0, total - 100); i--) {\n try {\n const owner = await this.identityContract.ownerOf(BigInt(i));\n if (owner.toLowerCase() === walletAddress.toLowerCase()) {\n this._agentId = BigInt(i);\n this.saveAgentIdTocache(chainId, walletAddress, this._agentId);\n return this._agentId;\n }\n } catch {\n continue; // token might not exist\n }\n }\n } catch {\n // totalSupply not available\n }\n } catch (error) {\n console.error('Failed to get agent ID:', error);\n }\n\n return null;\n }\n\n /**\n * Manually set the agent ID (useful when known from external source).\n * Sets both in-memory state AND saves to cache.\n *\n * @param agentId - The ERC-8004 agent ID to cache\n */\n async setCachedAgentId(agentId: bigint): Promise<void> {\n // Get chain info\n const network = await this.signer.provider!.getNetwork();\n const chainId = Number(network.chainId);\n const walletAddress = await this.signer.getAddress();\n\n // set in memory\n this._agentId = agentId;\n\n // Save to cache\n this.saveAgentIdTocache(chainId, walletAddress, agentId);\n console.log('Agent ID set and cached:', agentId);\n }\n\n /**\n * Transfer agent ownership\n */\n async transferAgent(agentId: bigint, to: string): Promise<string> {\n const from = await this.signer.getAddress();\n const tx = await this.identityContract.transferFrom(from, to, agentId);\n const receipt = await tx.wait();\n return receipt.hash;\n }\n\n // ============================================================================\n // Reputation Registry Methods\n // ============================================================================\n\n /**\n * Generate EIP-191 signed feedback authorization (ERC-8004 v1.0)\n *\n * This signature allows a client to submit feedback to an agent's reputation.\n * The agent owner signs to authorize the client to give feedback up to a certain index.\n *\n * @param agentId Target agent ID receiving feedback\n * @param clientAddress Address of the client giving feedback\n * @param indexLimit Maximum feedback index this authorization permits\n * @param expiry Unix timestamp when authorization expires\n * @returns Signed feedbackAuth bytes for use in giveFeedback()\n */\n async generateFeedbackAuthorization(\n agentId: bigint,\n clientAddress: string,\n indexLimit: bigint,\n expiry: bigint\n ): Promise<string> {\n try {\n console.warn(\n 'generateFeedbackAuthorization is DEPRECATED. ERC-8004 Jan 2026 removed feedbackAuth.'\n );\n // Get chain ID\n const network = await this.signer.provider!.getNetwork();\n const chainId = network.chainId;\n\n // Get identity registry address\n const identityAddress = await this.identityContract.getAddress();\n\n // Get signer address\n const signerAddress = await this.signer.getAddress();\n\n // Pack the FeedbackAuth struct (7 fields)\n // As per ERC-8004 v1.0 spec: (agentId, clientAddress, indexLimit, expiry, chainId, identityRegistry, signerAddress)\n const feedbackAuthData = ethers.solidityPackedKeccak256(\n ['uint256', 'address', 'uint64', 'uint256', 'uint256', 'address', 'address'],\n [agentId, clientAddress, indexLimit, expiry, chainId, identityAddress, signerAddress]\n );\n\n // Sign with agent's private key (EIP-191)\n const signature = await this.signer.signMessage(ethers.getBytes(feedbackAuthData));\n const signatureBytes = ethers.getBytes(signature); // 65 bytes (r + s + v)\n\n // Pack struct data + signature (224 bytes + 65 bytes = 289 bytes)\n const structBytes = ethers.concat([\n ethers.toBeHex(agentId, 32),\n ethers.zeroPadValue(clientAddress, 32),\n ethers.concat([ethers.toBeHex(indexLimit, 8), ethers.zeroPadValue('0x', 24)]), // uint64 padded\n ethers.toBeHex(expiry, 32),\n ethers.toBeHex(chainId, 32),\n ethers.zeroPadValue(identityAddress, 32),\n ethers.zeroPadValue(signerAddress, 32),\n ]);\n\n // Return struct + signature\n const feedbackAuth = ethers.hexlify(ethers.concat([structBytes, signatureBytes]));\n\n console.log(`✅ Generated feedback authorization for agent #${agentId}`);\n return feedbackAuth;\n } catch (e: any) {\n throw new Error(`Failed to generate feedback authorization: ${e.message}`);\n }\n }\n\n /**\n * Give feedback to an agent (ERC-8004 Jan/Feb 2026)\n *\n * @param params Feedback parameters including agentId, rating, feedbackUri, and optional metadata\n * @returns Transaction hash\n */\n async giveFeedback(params: FeedbackParams): Promise<string> {\n const { agentId, rating, feedbackUri, feedbackData } = params;\n\n // Validate rating (0-100)\n if (rating < 0 || rating > 100) {\n throw new Error('Rating must be between 0 and 100');\n }\n\n // ERC-8004 Feb 2026 requires:\n // (agentId, value, valueDecimals, tag1, tag2, endpoint, feedbackURI, feedbackHash)\n const tag1 = typeof feedbackData?.tag1 === 'string' ? feedbackData.tag1 : '';\n const tag2 = typeof feedbackData?.tag2 === 'string' ? feedbackData.tag2 : '';\n const endpoint = typeof feedbackData?.endpoint === 'string' ? feedbackData.endpoint : '';\n const valueDecimals =\n typeof feedbackData?.valueDecimals === 'number' ? feedbackData.valueDecimals : 0;\n const rawValue =\n typeof feedbackData?.value === 'bigint' || typeof feedbackData?.value === 'number'\n ? feedbackData.value\n : rating;\n const value =\n typeof rawValue === 'bigint'\n ? rawValue\n : BigInt(Math.round(rawValue * Math.pow(10, valueDecimals)));\n\n // Calculate feedback hash\n const feedbackContent =\n typeof feedbackData?.content === 'string' ? feedbackData.content : feedbackUri;\n const feedbackHash =\n typeof feedbackData?.feedbackHash === 'string'\n ? feedbackData.feedbackHash.startsWith('0x')\n ? feedbackData.feedbackHash\n : ethers.id(feedbackData.feedbackHash)\n : ethers.keccak256(ethers.toUtf8Bytes(feedbackContent));\n\n const tx = await this.reputationContract.giveFeedback(\n agentId,\n value,\n valueDecimals,\n tag1,\n tag2,\n endpoint,\n feedbackUri,\n feedbackHash\n );\n const receipt = await tx.wait();\n\n return receipt.hash;\n }\n\n /**\n * Revoke feedback (ERC-8004 v1.0)\n * @param agentId Agent ID that received the feedback\n * @param feedbackIndex Index of the feedback to revoke (uint64)\n */\n async revokeFeedback(agentId: bigint, feedbackIndex: bigint): Promise<string> {\n const tx = await this.reputationContract.revokeFeedback(agentId, feedbackIndex);\n const receipt = await tx.wait();\n return receipt.hash;\n }\n\n /**\n * Append response to feedback (ERC-8004 v1.0)\n * @param agentId Agent ID that received the feedback\n * @param clientAddress Address of the client who gave feedback\n * @param feedbackIndex Index of the feedback\n * @param responseUri URI containing the response data\n * @param responseHash Hash of the response content\n */\n async appendResponse(\n agentId: bigint,\n clientAddress: string,\n feedbackIndex: bigint,\n responseUri: string,\n responseHash: string\n ): Promise<string> {\n const tx = await this.reputationContract.appendResponse(\n agentId,\n clientAddress,\n feedbackIndex,\n responseUri,\n responseHash\n );\n const receipt = await tx.wait();\n return receipt.hash;\n }\n\n /**\n * Read specific feedback (ERC-8004 v1.0)\n * @param agentId Agent ID that received the feedback\n * @param clientAddress Address of the client who gave feedback\n * @param index Index of the feedback\n */\n async readFeedback(\n agentId: bigint,\n clientAddress: string,\n index: bigint\n ): Promise<{\n score: number;\n value: bigint;\n valueDecimals: number;\n tag1: string;\n tag2: string;\n isRevoked: boolean;\n }> {\n const feedback = await this.reputationContract.readFeedback(agentId, clientAddress, index);\n const valueDecimals = Number(feedback.valueDecimals ?? 0);\n const value = (feedback.value ?? feedback.score) as bigint;\n return {\n score: Number(value) / Math.pow(10, valueDecimals),\n value,\n valueDecimals,\n tag1: feedback.tag1,\n tag2: feedback.tag2,\n isRevoked: feedback.isRevoked,\n };\n }\n\n /**\n * Read all feedback for an agent (ERC-8004 v1.0)\n * @param agentId Agent ID\n * @param clientAddresses Array of client addresses (empty array for all clients)\n * @param tag1 First tag filter (ZeroHash for no filter)\n * @param tag2 Second tag filter (ZeroHash for no filter)\n * @param includeRevoked Whether to include revoked feedback\n */\n async readAllFeedback(\n agentId: bigint,\n clientAddresses: string[] = [],\n tag1: string = '',\n tag2: string = '',\n includeRevoked: boolean = false\n ): Promise<{\n clients: string[];\n feedbackIndexes: bigint[];\n scores: number[];\n valueDecimals: number[];\n tag1s: string[];\n tag2s: string[];\n revokedStatuses: boolean[];\n }> {\n const result = await this.reputationContract.readAllFeedback(\n agentId,\n clientAddresses,\n tag1,\n tag2,\n includeRevoked\n );\n const valueDecimals = (result.valueDecimals || []).map((v: bigint) => Number(v));\n const values = (result.values || result.scores) as bigint[];\n return {\n clients: result.clients,\n feedbackIndexes: result.feedbackIndexes || [],\n scores: values.map((value: bigint, i: number) => {\n const decimals = valueDecimals[i] || 0;\n return Number(value) / Math.pow(10, decimals);\n }),\n valueDecimals,\n tag1s: result.tag1s,\n tag2s: result.tag2s,\n revokedStatuses: result.revokedStatuses,\n };\n }\n\n /**\n * Get summary statistics (ERC-8004 v1.0)\n * @param agentId Agent ID\n * @param clientAddresses Array of client addresses (empty array for all clients)\n * @param tag1 First tag filter (ZeroHash for no filter)\n * @param tag2 Second tag filter (ZeroHash for no filter)\n */\n async getSummary(\n agentId: bigint,\n clientAddresses: string[] = [],\n tag1: string = '',\n tag2: string = ''\n ): Promise<{\n count: bigint;\n averageScore: number;\n averageScoreDecimals: number;\n }> {\n const result = await this.reputationContract.getSummary(agentId, clientAddresses, tag1, tag2);\n const averageScoreDecimals = Number(result.summaryValueDecimals ?? 0);\n const summaryValue = (result.summaryValue ?? result.averageScore) as bigint;\n return {\n count: result.count,\n averageScore: Number(summaryValue) / Math.pow(10, averageScoreDecimals),\n averageScoreDecimals,\n };\n }\n\n /**\n * Get list of clients who gave feedback\n * @param agentId Agent ID\n */\n async getClients(agentId: bigint): Promise<string[]> {\n return this.reputationContract.getClients(agentId);\n }\n\n /**\n * Get last feedback index for a client\n * @param agentId Agent ID\n * @param clientAddress Client address\n */\n async getLastIndex(agentId: bigint, clientAddress: string): Promise<bigint> {\n return this.reputationContract.getLastIndex(agentId, clientAddress);\n }\n\n /**\n * Get identity registry address from reputation contract\n */\n async getIdentityRegistry(): Promise<string> {\n return this.reputationContract.getIdentityRegistry();\n }\n\n // ============================================================================\n // Validation Registry Methods\n // ============================================================================\n\n /**\n * Request validation from a validator (ERC-8004 v1.0)\n * @param validatorAddress Address of the validator\n * @param agentId Agent ID requesting validation\n * @param requestUri URI containing validation request data\n * @param requestHash Hash of the request content (bytes32)\n */\n async requestValidation(\n validatorAddress: string,\n agentId: bigint,\n requestUri: string,\n requestHash: string\n ): Promise<string> {\n // Ensure requestHash is bytes32 format\n const hashBytes = requestHash.startsWith('0x') ? requestHash : ethers.id(requestHash);\n\n const tx = await this.validationContract.validationRequest(\n validatorAddress,\n agentId,\n requestUri,\n hashBytes\n );\n const receipt = await tx.wait();\n\n return receipt.hash;\n }\n\n /**\n * Respond to validation request (ERC-8004 v1.0)\n * @param requestHash Hash of the original validation request (bytes32)\n * @param response Response score (0-100, where 100 = approved)\n * @param responseUri URI containing response data\n * @param responseHash Hash of the response content (bytes32)\n * @param tag Optional tag for categorization (bytes32)\n */\n async respondToValidation(\n requestHash: string,\n response: number,\n responseUri: string,\n responseHash: string,\n tag: string = ethers.ZeroHash\n ): Promise<string> {\n // Validate response (0-100)\n if (response < 0 || response > 100) {\n throw new Error('Response must be between 0 and 100');\n }\n\n // Ensure hashes are bytes32 format\n const reqHashBytes = requestHash.startsWith('0x') ? requestHash : ethers.id(requestHash);\n const resHashBytes = responseHash.startsWith('0x') ? responseHash : ethers.id(responseHash);\n const tagBytes = tag.startsWith('0x') ? tag : ethers.ZeroHash;\n\n const tx = await this.validationContract.validationResponse(\n reqHashBytes,\n response,\n responseUri,\n resHashBytes,\n tagBytes\n );\n const receipt = await tx.wait();\n return receipt.hash;\n }\n\n /**\n * Get validation status (ERC-8004 v1.0)\n * @param requestHash Hash of the validation request (bytes32)\n */\n async getValidationStatus(requestHash: string): Promise<{\n validatorAddress: string;\n agentId: bigint;\n response: number;\n responseHash: string;\n tag: string;\n lastUpdate: bigint;\n }> {\n const hashBytes = requestHash.startsWith('0x') ? requestHash : ethers.id(requestHash);\n const result = await this.validationContract.getValidationStatus(hashBytes);\n return {\n validatorAddress: result.validatorAddress,\n agentId: result.agentId,\n response: Number(result.response),\n responseHash: result.responseHash,\n tag: result.tag,\n lastUpdate: result.lastUpdate,\n };\n }\n\n /**\n * Get validation summary statistics (ERC-8004 v1.0)\n * @param agentId Agent ID\n * @param validatorAddresses Array of validator addresses (empty for all)\n * @param tag Tag filter (ZeroHash for no filter)\n */\n async getValidationSummary(\n agentId: bigint,\n validatorAddresses: string[] = [],\n tag: string = ethers.ZeroHash\n ): Promise<{\n count: bigint;\n avgResponse: number;\n }> {\n const tagBytes = tag.startsWith('0x') ? tag : ethers.ZeroHash;\n const result = await this.validationContract.getSummary(agentId, validatorAddresses, tagBytes);\n return {\n count: result.count,\n avgResponse: Number(result.avgResponse),\n };\n }\n\n /**\n * Get all validation request hashes for an agent\n * @param agentId Agent ID\n */\n async getAgentValidations(agentId: bigint): Promise<string[]> {\n return this.validationContract.getAgentValidations(agentId);\n }\n\n /**\n * Get all validation requests for a validator\n * @param validatorAddress Validator address\n */\n async getValidatorRequests(validatorAddress: string): Promise<string[]> {\n return this.validationContract.getValidatorRequests(validatorAddress);\n }\n\n /**\n * Get identity registry address from validation contract\n */\n async getValidationIdentityRegistry(): Promise<string> {\n return this.validationContract.getIdentityRegistry();\n }\n\n // ============================================================================\n // Cache Implementation\n // ============================================================================\n private getCachedFilePath(): string {\n return path.join(process.cwd(), 'chaoschain_agent_ids.json');\n }\n\n private loadAgentIdFromCache(chainId: number, wallet: string): bigint | null {\n const cacheFile = this.getCachedFilePath();\n if (!fs.existsSync(cacheFile)) return null;\n const cacheData = fs.readFileSync(cacheFile, 'utf-8');\n const cache = JSON.parse(cacheData);\n return cache[chainId]?.[wallet]?.agentId || null;\n }\n\n private saveAgentIdTocache(\n chainId: number,\n wallet: string,\n agentId: bigint,\n domain?: string\n ): void {\n const cacheFile = this.getCachedFilePath();\n const cache = fs.existsSync(cacheFile) ? JSON.parse(fs.readFileSync(cacheFile, 'utf-8')) : {};\n cache[String(chainId)] = cache[String(chainId)] ?? {};\n cache[String(chainId)][wallet.toLowerCase()] = {\n agentId,\n timestamp: new Date().toISOString(),\n domain,\n };\n fs.writeFileSync(cacheFile, JSON.stringify(cache, null, 2));\n }\n\n // ============================================================================\n // Event Listening\n // ============================================================================\n\n /**\n * Listen for Registered events\n */\n onAgentRegistered(callback: (agentId: bigint, owner: string, uri: string) => void): void {\n this.identityContract.on('Registered', callback);\n }\n\n /**\n * Listen for NewFeedback events (ERC-8004 v1.0)\n */\n onNewFeedback(\n callback: (\n agentId: bigint,\n clientAddress: string,\n score: number,\n tag1: string,\n tag2: string,\n feedbackUri: string,\n feedbackHash: string\n ) => void\n ): void {\n this.reputationContract.on('NewFeedback', callback);\n }\n\n /**\n * Listen for ResponseAppended events (ERC-8004 v1.0)\n */\n onResponseAppended(\n callback: (\n agentId: bigint,\n clientAddress: string,\n feedbackIndex: bigint,\n responder: string,\n responseUri: string,\n responseHash: string\n ) => void\n ): void {\n this.reputationContract.on('ResponseAppended', callback);\n }\n\n /**\n * Listen for ValidationRequest events (ERC-8004 v1.0)\n */\n onValidationRequest(\n callback: (\n validatorAddress: string,\n agentId: bigint,\n requestUri: string,\n requestHash: string\n ) => void\n ): void {\n this.validationContract.on('ValidationRequest', callback);\n }\n\n /**\n * Listen for ValidationResponse events (ERC-8004 v1.0)\n */\n onValidationResponse(\n callback: (\n validatorAddress: string,\n agentId: bigint,\n requestHash: string,\n response: number,\n responseUri: string,\n responseHash: string,\n tag: string\n ) => void\n ): void {\n this.validationContract.on('ValidationResponse', callback);\n }\n\n /**\n * Remove all event listeners\n */\n removeAllListeners(): void {\n this.identityContract.removeAllListeners();\n this.reputationContract.removeAllListeners();\n this.validationContract.removeAllListeners();\n }\n}\n","import { WorkflowError as WorkflowErrorType, WorkflowStatus } from './types';\n\n/**\n * Exception classes for the ChaosChain SDK.\n *\n * This module defines all custom exceptions used throughout the SDK\n * to provide clear error handling and debugging information.\n */\n\nexport class ChaosChainSDKError extends Error {\n public details: Record<string, any>;\n\n constructor(message: string, details: Record<string, any> = {}) {\n super(message);\n this.name = 'ChaosChainSDKError';\n this.details = details;\n Object.setPrototypeOf(this, ChaosChainSDKError.prototype);\n }\n\n toString(): string {\n if (Object.keys(this.details).length > 0) {\n return `${this.message} | Details: ${JSON.stringify(this.details)}`;\n }\n return this.message;\n }\n}\n\nexport class AgentRegistrationError extends ChaosChainSDKError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, details);\n this.name = 'AgentRegistrationError';\n Object.setPrototypeOf(this, AgentRegistrationError.prototype);\n }\n}\n\nexport class PaymentError extends ChaosChainSDKError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, details);\n this.name = 'PaymentError';\n Object.setPrototypeOf(this, PaymentError.prototype);\n }\n}\n\nexport class StorageError extends ChaosChainSDKError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, details);\n this.name = 'StorageError';\n Object.setPrototypeOf(this, StorageError.prototype);\n }\n}\n\nexport class IntegrityVerificationError extends ChaosChainSDKError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, details);\n this.name = 'IntegrityVerificationError';\n Object.setPrototypeOf(this, IntegrityVerificationError.prototype);\n }\n}\n\nexport class NetworkError extends ChaosChainSDKError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, details);\n this.name = 'NetworkError';\n Object.setPrototypeOf(this, NetworkError.prototype);\n }\n}\n\nexport class ContractError extends ChaosChainSDKError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, details);\n this.name = 'ContractError';\n Object.setPrototypeOf(this, ContractError.prototype);\n }\n}\n\nexport class ValidationError extends ChaosChainSDKError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, details);\n this.name = 'ValidationError';\n Object.setPrototypeOf(this, ValidationError.prototype);\n }\n}\n\nexport class ConfigurationError extends ChaosChainSDKError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, details);\n this.name = 'ConfigurationError';\n Object.setPrototypeOf(this, ConfigurationError.prototype);\n }\n}\n\nexport class AuthenticationError extends ChaosChainSDKError {\n constructor(message: string, details?: Record<string, any>) {\n super(message, details);\n this.name = 'AuthenticationError';\n Object.setPrototypeOf(this, AuthenticationError.prototype);\n }\n}\n\n/**\n * Options passed when constructing a GatewayError (statusCode, response, category, retryable).\n */\nexport interface GatewayErrorDetails {\n statusCode?: number;\n response?: Record<string, any>;\n category?: 'transient' | 'permanent' | 'auth' | 'unknown';\n retryable?: boolean;\n}\n\n/**\n * Base error from Gateway API.\n */\nexport class GatewayError extends ChaosChainSDKError {\n public readonly statusCode?: number;\n public readonly response?: Record<string, any>;\n public readonly category?: 'transient' | 'permanent' | 'auth' | 'unknown';\n public readonly retryable?: boolean;\n\n constructor(message: string, details?: GatewayErrorDetails) {\n super(message, details || {});\n this.name = 'GatewayError';\n this.statusCode = details?.statusCode;\n this.response = details?.response;\n this.category = details?.category;\n this.retryable = details?.retryable;\n Object.setPrototypeOf(this, GatewayError.prototype);\n }\n}\n\n/**\n * Failed to connect to Gateway.\n */\nexport class GatewayConnectionError extends GatewayError {\n constructor(message: string) {\n super(message);\n this.name = 'GatewayConnectionError';\n Object.setPrototypeOf(this, GatewayConnectionError.prototype);\n }\n}\n\n/**\n * Gateway request or polling timed out.\n */\nexport class GatewayTimeoutError extends GatewayError {\n public readonly workflowId: string;\n public readonly lastStatus?: WorkflowStatus;\n\n constructor(workflowId: string, message: string, lastStatus?: WorkflowStatus) {\n super(message);\n this.name = 'GatewayTimeoutError';\n this.workflowId = workflowId;\n this.lastStatus = lastStatus;\n Object.setPrototypeOf(this, GatewayTimeoutError.prototype);\n }\n}\n\n/**\n * Workflow reached FAILED state.\n */\nexport class WorkflowFailedError extends GatewayError {\n public readonly workflowId: string;\n public readonly workflowError: WorkflowErrorType;\n\n constructor(workflowId: string, error: WorkflowErrorType) {\n super(`Workflow ${workflowId} failed at step ${error.step}: ${error.message}`);\n this.name = 'WorkflowFailedError';\n this.workflowId = workflowId;\n this.workflowError = error;\n Object.setPrototypeOf(this, WorkflowFailedError.prototype);\n }\n}\n","/**\n * X402 Payment Manager for ChaosChain SDK\n *\n * This module implements the Coinbase x402 HTTP 402 payment protocol with EIP-3009,\n * enabling seamless, gasless cryptocurrency payments between AI agents via facilitators.\n *\n * Based on: https://www.x402.org/ and https://github.com/coinbase/x402\n */\n\nimport * as crypto from 'crypto';\nimport { ethers } from 'ethers';\nimport { PaymentError } from './exceptions';\nimport { NetworkConfig } from './types';\n\n// ============================================================================\n// CORE TYPES\n// ============================================================================\n\nexport interface X402PaymentRequest {\n payment_id: string;\n from_agent: string;\n to_agent: string;\n amount: number;\n currency: string;\n service_description: string;\n network: NetworkConfig;\n protocol_fee: number;\n created_at: string;\n settlement_address?: string;\n}\n\nexport interface X402PaymentProof {\n payment_id: string;\n transaction_hash: string;\n main_transaction_hash: string;\n fee_transaction_hash?: string;\n from_address: string;\n to_address: string;\n treasury_address: string;\n amount: number;\n currency: string;\n protocol_fee: number;\n network: NetworkConfig;\n chain_id: number;\n block_number?: number;\n timestamp: Date;\n status: string;\n confirmations: number;\n fee_amount?: string; // Fee in base units\n net_amount?: string; // Net amount in base units\n evidence_hash?: string; // ChaosChain Proof-of-Agency\n}\n\n/**\n * Official x402 Payment Requirements schema\n * Spec: https://github.com/coinbase/x402\n */\nexport interface X402PaymentRequirements {\n scheme: string; // e.g., \"exact\"\n network: string; // Network ID\n maxAmountRequired: string; // uint256 as string\n resource: string; // URL of resource\n description: string; // Service description\n mimeType: string; // Response MIME type\n outputSchema?: object | null; // Response schema\n payTo: string; // Address to pay\n maxTimeoutSeconds: number; // Max timeout\n asset: string; // ERC-20 contract address (or 0x0 for ETH)\n extra: object | null; // Extra info (EIP-3009 details for USDC)\n}\n\n// ============================================================================\n// EIP-3009 TYPES\n// ============================================================================\n\n/**\n * EIP-3009 Payment Header\n * Transmitted as base64-encoded JSON in X-PAYMENT header\n */\nexport interface PaymentHeader {\n sender: string; // Payer address\n nonce: string; // Unique nonce (hex string)\n validAfter?: string; // ISO timestamp or unix seconds\n validBefore?: string; // ISO timestamp or unix seconds\n signature?: string; // EIP-712 signature (hex string)\n}\n\n/**\n * EIP-3009 Transfer Authorization Parameters\n * Used for signing and on-chain execution\n */\nexport interface TransferAuthorizationParams {\n from: string; // Payer address\n to: string; // Recipient address\n value: bigint; // Amount in token base units\n validAfter: bigint; // Unix timestamp (seconds)\n validBefore: bigint; // Unix timestamp (seconds)\n nonce: string; // Unique hex nonce (32 bytes)\n}\n\n// ============================================================================\n// FACILITATOR TYPES\n// ============================================================================\n\n/**\n * Facilitator Configuration\n */\nexport interface X402FacilitatorConfig {\n facilitatorUrl?: string; // Default: https://facilitator.chaoscha.in\n apiKey?: string; // Optional API key\n mode?: 'managed' | 'decentralized';\n agentId?: string; // ERC-8004 tokenId\n}\n\n/**\n * Facilitator Settlement Request\n */\nexport interface SettleRequest {\n x402Version: number;\n paymentHeader: PaymentHeader | string; // Object or base64 string\n paymentRequirements: X402PaymentRequirements;\n agentId?: string; // ERC-8004 tokenId\n}\n\n/**\n * Facilitator Settlement Response\n */\nexport interface SettleResponse {\n success: boolean;\n error: string | null;\n txHash: string | null;\n txHashFee?: string; // Fee transaction hash\n networkId: string | null;\n consensusProof?: string; // CRE consensus proof\n timestamp?: number;\n feeAmount?: string; // Fee in base units\n netAmount?: string; // Net amount in base units\n status?: 'pending' | 'partial_settlement' | 'confirmed' | 'failed';\n evidenceHash?: string; // Proof-of-Agency evidence\n proofOfAgency?: string; // ValidationRegistry tx hash\n}\n\n/**\n * X402 Payment Manager - Coinbase HTTP 402 protocol with EIP-3009\n *\n * Features:\n * - ✅ EIP-3009 gasless transfers via facilitator\n * - ✅ Signature-based payment authorization\n * - ✅ Automatic protocol fee collection\n * - ✅ Multi-network support (Base, Ethereum, Optimism, Linea)\n * - ✅ ChaosChain Proof-of-Agency integration\n */\nexport class X402PaymentManager {\n private wallet: ethers.Wallet | ethers.HDNodeWallet;\n private provider: ethers.JsonRpcProvider;\n private network: NetworkConfig;\n private treasuryAddress: string;\n private protocolFeePercentage: number;\n private usdcAddresses: Record<string, string>;\n private facilitatorUrl: string;\n private facilitatorApiKey?: string;\n private facilitatorMode: 'managed' | 'decentralized';\n private agentId?: string;\n\n constructor(\n wallet: ethers.Wallet | ethers.HDNodeWallet,\n network: NetworkConfig,\n facilitatorConfig: X402FacilitatorConfig = {}\n ) {\n this.wallet = wallet;\n this.network = network;\n this.protocolFeePercentage = 0.025; // 2.5% ChaosChain fee\n\n // ChaosChain treasury addresses (per network)\n this.treasuryAddress = this.getTreasuryAddress(network);\n\n // USDC contract addresses (EIP-3009 compatible)\n this.usdcAddresses = {\n 'base-sepolia': '0x036CbD53842c5426634e7929541eC2318f3dCF7e',\n 'ethereum-sepolia': '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238',\n 'optimism-sepolia': '0x5fd84259d66Cd46123540766Be93DFE6D43130D7',\n 'linea-sepolia': '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238',\n };\n\n // Facilitator configuration\n this.facilitatorUrl =\n facilitatorConfig.facilitatorUrl ||\n process.env.CC_FACILITATOR_URL ||\n 'https://facilitator.chaoscha.in';\n this.facilitatorApiKey = facilitatorConfig.apiKey || process.env.CC_API_KEY;\n this.facilitatorMode = facilitatorConfig.mode || 'managed';\n this.agentId = facilitatorConfig.agentId;\n\n // Get provider from wallet\n this.provider = wallet.provider as ethers.JsonRpcProvider;\n\n console.log(`✅ X402 Payment Manager initialized (EIP-3009 mode)`);\n console.log(`🌐 Network: ${network}`);\n console.log(`💰 Treasury: ${this.treasuryAddress}`);\n console.log(`📊 Protocol Fee: ${this.protocolFeePercentage * 100}%`);\n console.log(`🔗 Facilitator: ${this.facilitatorUrl}`);\n console.log(`⚙️ Mode: ${this.facilitatorMode}`);\n if (this.agentId) {\n console.log(`🤖 Agent ID: ${this.agentId}`);\n }\n }\n\n /**\n * Get ChaosChain treasury address for network\n */\n private getTreasuryAddress(network: NetworkConfig): string {\n const treasuries: Record<string, string> = {\n 'base-sepolia': '0x8004AA63c570c570eBF15376c0dB199918BFe9Fb',\n 'ethereum-sepolia': '0x8004a6090Cd10A7288092483047B097295Fb8847',\n 'optimism-sepolia': '0x8004a6090Cd10A7288092483047B097295Fb8847',\n 'linea-sepolia': '0x8004aa7C931bCE1233973a0C6A667f73F66282e7',\n };\n\n return treasuries[network] || treasuries['base-sepolia'];\n }\n\n /**\n * Get chain ID for network\n */\n private getChainId(network: NetworkConfig): number {\n const chainIds: Record<string, number> = {\n 'base-sepolia': 84532,\n 'ethereum-sepolia': 11155111,\n 'optimism-sepolia': 11155420,\n 'linea-sepolia': 59141,\n base: 8453,\n ethereum: 1,\n optimism: 10,\n linea: 59144,\n };\n\n return chainIds[network] || 84532;\n }\n\n // ============================================================================\n // EIP-3009 SIGNING METHODS\n // ============================================================================\n\n /**\n * Generate unique nonce for EIP-3009 transfer authorization\n * Returns 32-byte hex string (0x-prefixed)\n */\n private generateNonce(): string {\n return ethers.hexlify(ethers.randomBytes(32));\n }\n\n /**\n * Sign EIP-3009 Transfer Authorization\n *\n * This creates an EIP-712 signature for USDC's transferWithAuthorization function.\n * The facilitator will use this signature to execute a gasless transfer on-chain.\n *\n * Spec: https://eips.ethereum.org/EIPS/eip-3009\n */\n async signTransferAuthorization(params: TransferAuthorizationParams): Promise<string> {\n const usdcAddress = this.usdcAddresses[this.network];\n if (!usdcAddress) {\n throw new PaymentError(`USDC not supported on ${this.network}`);\n }\n\n // EIP-712 domain for USDC contract\n const domain = {\n name: 'USD Coin',\n version: '2',\n chainId: this.getChainId(this.network),\n verifyingContract: usdcAddress,\n };\n\n // EIP-712 types for transferWithAuthorization\n const types = {\n TransferWithAuthorization: [\n { name: 'from', type: 'address' },\n { name: 'to', type: 'address' },\n { name: 'value', type: 'uint256' },\n { name: 'validAfter', type: 'uint256' },\n { name: 'validBefore', type: 'uint256' },\n { name: 'nonce', type: 'bytes32' },\n ],\n };\n\n // Message to sign\n const message = {\n from: params.from,\n to: params.to,\n value: params.value,\n validAfter: params.validAfter,\n validBefore: params.validBefore,\n nonce: params.nonce,\n };\n\n // Sign with EIP-712\n const signature = await this.wallet.signTypedData(domain, types, message);\n\n console.log(`🔏 EIP-3009 signature generated`);\n console.log(` From: ${params.from}`);\n console.log(` To: ${params.to}`);\n console.log(` Value: ${params.value.toString()}`);\n console.log(` Nonce: ${params.nonce}`);\n\n return signature;\n }\n\n // ============================================================================\n // FACILITATOR CLIENT METHODS\n // ============================================================================\n\n /**\n * Call facilitator API endpoint\n */\n private async callFacilitator(endpoint: string, body: any): Promise<any> {\n const headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n };\n\n // Add API key if configured\n if (this.facilitatorApiKey) {\n headers['X-CC-ApiKey'] = this.facilitatorApiKey;\n }\n\n // Add idempotency key for settlement calls\n if (endpoint.includes('/settle')) {\n const idempotencyKey = `${this.agentId || 'anon'}_${Date.now()}_${Math.random().toString(36).substring(2)}`;\n headers['Idempotency-Key'] = idempotencyKey;\n }\n\n console.log(`🔗 Calling facilitator: ${this.facilitatorUrl}${endpoint}`);\n\n try {\n const response = await fetch(`${this.facilitatorUrl}${endpoint}`, {\n method: 'POST',\n headers,\n body: JSON.stringify(body),\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n throw new PaymentError(`Facilitator error (${response.status}): ${errorText}`);\n }\n\n return await response.json();\n } catch (e: any) {\n throw new PaymentError(`Facilitator call failed: ${e.message}`);\n }\n }\n\n /**\n * Settle payment with facilitator (EIP-3009 execution)\n *\n * The facilitator will:\n * 1. Verify the EIP-712 signature\n * 2. Call USDC.transferWithAuthorization() on-chain\n * 3. Sponsor the gas fees\n * 4. Return the transaction hash\n */\n async settleWithFacilitator(\n paymentHeader: PaymentHeader,\n paymentRequirements: X402PaymentRequirements\n ): Promise<SettleResponse> {\n const request: SettleRequest = {\n x402Version: 1,\n paymentHeader,\n paymentRequirements,\n agentId: this.agentId,\n };\n\n console.log(`💸 Settling payment with facilitator...`);\n console.log(` Amount: ${paymentRequirements.maxAmountRequired}`);\n console.log(` Asset: ${paymentRequirements.asset}`);\n console.log(` PayTo: ${paymentRequirements.payTo}`);\n\n const response = await this.callFacilitator('/settle', request);\n\n if (!response.success) {\n throw new PaymentError(`Settlement failed: ${response.error}`);\n }\n\n console.log(`✅ Settlement successful`);\n console.log(` TX Hash: ${response.txHash}`);\n if (response.txHashFee) {\n console.log(` Fee TX Hash: ${response.txHashFee}`);\n }\n if (response.feeAmount) {\n console.log(` Fee: ${response.feeAmount} (${response.netAmount} net)`);\n }\n\n return response;\n }\n\n /**\n * Create x402 payment request\n */\n createPaymentRequest(\n fromAgent: string,\n toAgent: string,\n amount: number,\n currency: string = 'USDC',\n serviceDescription: string = 'AI Agent Service'\n ): X402PaymentRequest {\n const paymentId = `x402_${Date.now().toString(36)}_${Math.random().toString(36).substring(2, 9)}`;\n const protocolFee = amount * this.protocolFeePercentage;\n\n const request: X402PaymentRequest = {\n payment_id: paymentId,\n from_agent: fromAgent,\n to_agent: toAgent,\n amount,\n currency,\n service_description: serviceDescription,\n network: this.network,\n protocol_fee: protocolFee,\n created_at: new Date().toISOString(),\n };\n\n console.log(`📄 Created x402 payment request: ${paymentId}`);\n console.log(` From: ${fromAgent} → To: ${toAgent}`);\n console.log(` Amount: ${amount} ${currency} + ${protocolFee.toFixed(4)} ${currency} fee`);\n\n return request;\n }\n\n /**\n * Execute x402 payment (EIP-3009 mode)\n *\n * This method uses EIP-3009 + facilitator for gasless, signature-based payments\n */\n async executePayment(\n paymentRequest: X402PaymentRequest,\n recipientAddress: string\n ): Promise<X402PaymentProof> {\n console.log(`💸 Executing x402 payment (EIP-3009): ${paymentRequest.payment_id}`);\n console.log(` Network: ${this.network}`);\n console.log(` Recipient: ${recipientAddress}`);\n\n const currency = paymentRequest.currency.toUpperCase();\n const amount = paymentRequest.amount;\n const protocolFee = paymentRequest.protocol_fee;\n\n let mainTxHash: string;\n let feeTxHash: string | undefined;\n let feeAmount: string | undefined;\n let netAmount: string | undefined;\n let chainId: number;\n\n try {\n // Get network details\n const networkInfo = await this.provider.getNetwork();\n chainId = Number(networkInfo.chainId);\n\n if (currency === 'ETH' || currency === 'NATIVE') {\n // Native token transfer (old flow, TODO: add EIP-3009 for ETH)\n const { mainTx, feeTx } = await this.executeNativePayment(\n recipientAddress,\n amount,\n protocolFee\n );\n mainTxHash = mainTx;\n feeTxHash = feeTx;\n } else if (currency === 'USDC') {\n // USDC transfer (NEW: EIP-3009 + facilitator)\n const result = await this.executeUsdcPayment(recipientAddress, amount, protocolFee);\n mainTxHash = result.mainTx;\n feeTxHash = result.feeTx;\n feeAmount = result.feeAmount;\n netAmount = result.netAmount;\n } else {\n throw new PaymentError(`Unsupported currency: ${currency}`);\n }\n\n // Get transaction receipt (may be pending if just submitted)\n const receipt = await this.provider.getTransactionReceipt(mainTxHash);\n\n // Create payment proof\n const proof: X402PaymentProof = {\n payment_id: paymentRequest.payment_id,\n transaction_hash: mainTxHash,\n main_transaction_hash: mainTxHash,\n fee_transaction_hash: feeTxHash,\n from_address: this.wallet.address,\n to_address: recipientAddress,\n treasury_address: this.treasuryAddress,\n amount,\n currency,\n protocol_fee: protocolFee,\n network: this.network,\n chain_id: chainId,\n block_number: receipt?.blockNumber,\n timestamp: new Date(),\n status: receipt?.status === 1 ? 'confirmed' : 'pending',\n confirmations: receipt ? 1 : 0,\n fee_amount: feeAmount,\n net_amount: netAmount,\n };\n\n console.log(`✅ x402 payment executed successfully (EIP-3009)`);\n console.log(` Main TX: ${mainTxHash}`);\n if (feeTxHash) {\n console.log(` Fee TX: ${feeTxHash}`);\n }\n if (feeAmount && netAmount) {\n console.log(` Fee: ${feeAmount} | Net: ${netAmount}`);\n }\n\n return proof;\n } catch (e: any) {\n throw new PaymentError(`x402 payment failed: ${e.message}`, {\n payment_id: paymentRequest.payment_id,\n });\n }\n }\n\n /**\n * Execute native token (ETH) payment\n */\n private async executeNativePayment(\n recipientAddress: string,\n amount: number,\n protocolFee: number\n ): Promise<{ mainTx: string; feeTx?: string }> {\n // Convert to wei\n const amountWei = ethers.parseEther(amount.toString());\n const feeWei = ethers.parseEther(protocolFee.toString());\n\n // Send main payment\n const mainTx = await this.wallet.sendTransaction({\n to: recipientAddress,\n value: amountWei,\n });\n await mainTx.wait();\n\n // Send protocol fee to treasury\n let feeTxHash: string | undefined;\n if (protocolFee > 0) {\n const feeTx = await this.wallet.sendTransaction({\n to: this.treasuryAddress,\n value: feeWei,\n });\n await feeTx.wait();\n feeTxHash = feeTx.hash;\n }\n\n return {\n mainTx: mainTx.hash,\n feeTx: feeTxHash,\n };\n }\n\n /**\n * Execute USDC payment using EIP-3009 + Facilitator\n *\n * NEW FLOW (EIP-3009 compliant):\n * 1. Generate EIP-712 signature for transferWithAuthorization\n * 2. Send signature to facilitator\n * 3. Facilitator executes on-chain (gas-sponsored)\n * 4. Return transaction hash\n *\n * Benefits:\n * - ✅ Gasless (facilitator pays gas)\n * - ✅ Single signature (no approve + transfer)\n * - ✅ Facilitator manages fee collection\n */\n private async executeUsdcPayment(\n recipientAddress: string,\n amount: number,\n protocolFee: number\n ): Promise<{ mainTx: string; feeTx?: string; feeAmount?: string; netAmount?: string }> {\n // Get USDC contract address\n const usdcAddress = this.usdcAddresses[this.network];\n if (!usdcAddress) {\n throw new PaymentError(`USDC not supported on ${this.network}`);\n }\n\n // USDC has 6 decimals\n const totalAmountWei = ethers.parseUnits(amount.toString(), 6);\n const feeWei = ethers.parseUnits(protocolFee.toString(), 6);\n // Net amount: totalAmountWei - feeWei (used for recipient calculation)\n void feeWei; // Fee is logged separately\n\n console.log(`💳 Preparing EIP-3009 payment authorization...`);\n console.log(` Total: ${amount} USDC`);\n console.log(` Fee: ${protocolFee} USDC`);\n console.log(` Net: ${(amount - protocolFee).toFixed(6)} USDC`);\n\n // Generate unique nonce for this transfer\n const nonce = this.generateNonce();\n\n // Set validity window (now to 1 hour from now)\n const now = BigInt(Math.floor(Date.now() / 1000));\n const validAfter = now;\n const validBefore = now + BigInt(3600); // 1 hour\n\n // Create transfer authorization parameters\n // NOTE: In managed mode, facilitator handles fee splitting\n // We authorize the full amount to the recipient\n const authParams: TransferAuthorizationParams = {\n from: this.wallet.address,\n to: recipientAddress,\n value: totalAmountWei, // Full amount (facilitator splits fee)\n validAfter,\n validBefore,\n nonce,\n };\n\n // Sign EIP-712 authorization\n const signature = await this.signTransferAuthorization(authParams);\n\n // Create payment header for facilitator\n const paymentHeader: PaymentHeader = {\n sender: this.wallet.address,\n nonce: nonce,\n validAfter: validAfter.toString(),\n validBefore: validBefore.toString(),\n signature,\n };\n\n // Create payment requirements for facilitator\n const paymentRequirements: X402PaymentRequirements = {\n scheme: 'exact',\n network: this.network,\n maxAmountRequired: totalAmountWei.toString(),\n resource: '/',\n description: 'ChaosChain x402 Payment',\n mimeType: 'application/json',\n outputSchema: null,\n payTo: recipientAddress,\n maxTimeoutSeconds: 3600,\n asset: usdcAddress,\n extra: {\n name: 'USD Coin',\n version: '2',\n // ChaosChain fee configuration\n protocolFee: feeWei.toString(),\n treasuryAddress: this.treasuryAddress,\n feePercentage: this.protocolFeePercentage * 100,\n },\n };\n\n // Settle with facilitator\n const settleResponse = await this.settleWithFacilitator(paymentHeader, paymentRequirements);\n\n if (!settleResponse.success || !settleResponse.txHash) {\n throw new PaymentError(`EIP-3009 settlement failed: ${settleResponse.error}`);\n }\n\n return {\n mainTx: settleResponse.txHash,\n feeTx: settleResponse.txHashFee,\n feeAmount: settleResponse.feeAmount,\n netAmount: settleResponse.netAmount,\n };\n }\n\n /**\n * Verify x402 payment on-chain\n */\n async verifyPayment(paymentProof: X402PaymentProof): Promise<boolean> {\n try {\n // Get transaction receipt\n const receipt = await this.provider.getTransactionReceipt(paymentProof.main_transaction_hash);\n\n if (!receipt) {\n console.error(`❌ Transaction not found: ${paymentProof.main_transaction_hash}`);\n return false;\n }\n\n // Verify transaction status\n if (receipt.status !== 1) {\n console.error(`❌ Transaction failed: ${paymentProof.main_transaction_hash}`);\n return false;\n }\n\n // Verify recipient\n const tx = await this.provider.getTransaction(paymentProof.main_transaction_hash);\n if (tx?.to?.toLowerCase() !== paymentProof.to_address.toLowerCase()) {\n console.error(`❌ Recipient mismatch`);\n return false;\n }\n\n console.log(`✅ Payment verified on-chain: ${paymentProof.main_transaction_hash}`);\n return true;\n } catch (e) {\n console.error(`❌ Payment verification failed: ${e}`);\n return false;\n }\n }\n\n /**\n * Create payment requirements for receiving payments\n * Official x402 spec: https://github.com/coinbase/x402\n * Aligned with Python SDK\n */\n createPaymentRequirements(\n amount: number,\n currency: string = 'USDC',\n serviceDescription: string = 'AI Agent Service',\n evidenceCid?: string\n ): X402PaymentRequirements {\n // Get USDC address for asset field\n const asset =\n currency === 'USDC'\n ? this.usdcAddresses[this.network]\n : '0x0000000000000000000000000000000000000000';\n\n // Generate resource URL from service description (like Python SDK)\n const resource = `/chaoschain/service/${serviceDescription.toLowerCase().replace(/ /g, '-')}`;\n\n // Official x402 paymentRequirements schema\n return {\n scheme: 'exact', // x402 scheme for exact payment amount\n network: this.network,\n maxAmountRequired: ethers\n .parseUnits(amount.toString(), currency === 'USDC' ? 6 : 18)\n .toString(),\n resource,\n description: serviceDescription,\n mimeType: 'application/json',\n outputSchema: null,\n payTo: this.wallet.address,\n maxTimeoutSeconds: 300, // 5 minutes (aligned with Python)\n asset: asset || '0x0000000000000000000000000000000000000000',\n extra:\n currency === 'USDC' && asset\n ? {\n name: 'USDC', // Aligned with Python SDK\n version: '2',\n chaoschain_metadata: {\n evidence_cid: evidenceCid || null,\n timestamp: new Date().toISOString(),\n network: this.network,\n protocol_fee_percentage: this.protocolFeePercentage,\n treasury_address: this.treasuryAddress,\n },\n }\n : null,\n };\n }\n\n /**\n * Get payment history (from on-chain events)\n */\n async getPaymentHistory(limit: number = 10): Promise<X402PaymentProof[]> {\n // In production, query blockchain events\n // For now, return empty array\n console.log(`📊 Payment history: querying last ${limit} payments...`);\n return [];\n }\n\n /**\n * Create cryptographic receipt for payment\n */\n createPaymentReceipt(paymentProof: X402PaymentProof): Record<string, any> {\n const receiptData = {\n payment_id: paymentProof.payment_id,\n transaction_hash: paymentProof.main_transaction_hash,\n from_address: paymentProof.from_address,\n to_address: paymentProof.to_address,\n amount: paymentProof.amount,\n currency: paymentProof.currency,\n protocol_fee: paymentProof.protocol_fee,\n network: paymentProof.network,\n chain_id: paymentProof.chain_id,\n timestamp: paymentProof.timestamp.toISOString(),\n status: paymentProof.status,\n };\n\n // Create receipt hash\n const receiptJson = JSON.stringify(receiptData);\n const receiptHash = crypto.createHash('sha256').update(receiptJson).digest('hex');\n\n return {\n receipt_type: 'x402_payment',\n receipt_hash: receiptHash,\n receipt_data: receiptData,\n verification_url: `https://explorer.base.org/tx/${paymentProof.main_transaction_hash}`,\n created_at: new Date().toISOString(),\n };\n }\n\n /**\n * Get payment statistics\n */\n getPaymentStats(): Record<string, any> {\n return {\n network: this.network,\n wallet_address: this.wallet.address,\n treasury_address: this.treasuryAddress,\n protocol_fee_percentage: this.protocolFeePercentage * 100,\n supported_currencies: ['ETH', 'USDC'],\n features: {\n instant_settlement: true,\n on_chain_verification: true,\n protocol_fees: true,\n multi_currency: true,\n payment_receipts: true,\n gasless_transfers: true, // NEW: EIP-3009 gasless transfers\n },\n };\n }\n}\n","/**\n * Payment Manager for ChaosChain SDK\n *\n * This module manages traditional and crypto payment processing,\n * supporting multiple payment methods (cards, Google Pay, Apple Pay, PayPal, crypto).\n */\n\nimport { ethers } from 'ethers';\nimport axios, { AxiosInstance } from 'axios';\nimport { PaymentError } from './exceptions';\nimport { NetworkConfig, PaymentMethod } from './types';\n\nexport interface TraditionalPaymentRequest {\n payment_method: PaymentMethod;\n amount: number;\n currency: string;\n payment_data: Record<string, any>;\n description: string;\n}\n\nexport interface TraditionalPaymentResult {\n payment_id: string;\n transaction_id: string;\n status: string;\n amount: number;\n currency: string;\n payment_method: PaymentMethod;\n timestamp: string;\n processor_response?: Record<string, any>;\n}\n\nexport interface PaymentMethodCredentials {\n stripe_secret_key?: string;\n google_pay_merchant_id?: string;\n apple_pay_merchant_id?: string;\n paypal_client_id?: string;\n paypal_client_secret?: string;\n}\n\n/**\n * Payment Manager - handles all payment types\n *\n * Supports:\n * - Basic card payments (Visa, Mastercard via Stripe)\n * - Google Pay\n * - Apple Pay\n * - PayPal\n * - Cryptocurrency (via x402 protocol)\n */\nexport class PaymentManager {\n private agentName: string;\n private network: NetworkConfig;\n private wallet: ethers.Wallet | ethers.HDNodeWallet;\n private credentials: PaymentMethodCredentials;\n private stripeAxiosInstance?: AxiosInstance;\n private paypalAccessToken?: string;\n\n constructor(\n agentName: string,\n network: NetworkConfig,\n wallet: ethers.Wallet | ethers.HDNodeWallet,\n credentials: PaymentMethodCredentials = {}\n ) {\n this.agentName = agentName;\n this.network = network;\n this.wallet = wallet;\n this.credentials = credentials;\n\n // Initialize Stripe if API key provided\n if (credentials.stripe_secret_key) {\n this.stripeAxiosInstance = axios.create({\n baseURL: 'https://api.stripe.com/v1',\n headers: {\n Authorization: `Bearer ${credentials.stripe_secret_key}`,\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n });\n console.log('✅ Stripe integration enabled');\n }\n\n // Initialize PayPal if credentials provided\n if (credentials.paypal_client_id && credentials.paypal_client_secret) {\n this.initializePayPal().catch(console.error);\n }\n\n console.log(`💳 Payment Manager initialized for ${agentName}`);\n }\n\n /**\n * Initialize PayPal OAuth access token\n */\n private async initializePayPal(): Promise<void> {\n try {\n const auth = Buffer.from(\n `${this.credentials.paypal_client_id}:${this.credentials.paypal_client_secret}`\n ).toString('base64');\n\n const response = await axios.post(\n 'https://api-m.sandbox.paypal.com/v1/oauth2/token',\n 'grant_type=client_credentials',\n {\n headers: {\n Authorization: `Basic ${auth}`,\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n }\n );\n\n this.paypalAccessToken = response.data.access_token;\n console.log('✅ PayPal integration enabled');\n } catch (e) {\n console.error('❌ Failed to initialize PayPal:', e);\n }\n }\n\n /**\n * Execute traditional payment (cards, wallets, etc.)\n */\n executeTraditionalPayment(\n paymentMethod: PaymentMethod,\n amount: number,\n currency: string,\n paymentData: Record<string, any>\n ): TraditionalPaymentResult {\n console.log(`💳 Processing ${paymentMethod} payment: $${amount} ${currency}`);\n\n // Route to appropriate payment processor\n switch (paymentMethod) {\n case PaymentMethod.BASIC_CARD:\n return this.processBasicCard(amount, currency, paymentData);\n\n case PaymentMethod.GOOGLE_PAY:\n return this.processGooglePay(amount, currency, paymentData);\n\n case PaymentMethod.APPLE_PAY:\n return this.processApplePay(amount, currency, paymentData);\n\n case PaymentMethod.PAYPAL:\n return this.processPayPal(amount, currency, paymentData);\n\n case PaymentMethod.A2A_X402:\n return this.processA2AX402(amount, currency, paymentData);\n\n default:\n throw new PaymentError(`Unsupported payment method: ${paymentMethod}`);\n }\n }\n\n /**\n * Process Basic Card payment (Visa, Mastercard, Amex, etc.) via Stripe\n */\n private processBasicCard(\n amount: number,\n currency: string,\n _paymentData: Record<string, any>\n ): TraditionalPaymentResult {\n console.log('💳 Processing Basic Card via Stripe...');\n\n // Check if Stripe is configured\n if (!this.stripeAxiosInstance) {\n console.warn('⚠️ Stripe not configured, simulating payment');\n return this.simulateTraditionalPayment(PaymentMethod.BASIC_CARD, amount, currency);\n }\n\n try {\n // In production, create Stripe Payment Intent\n // const response = await this.stripeAxiosInstance.post('/payment_intents', {\n // amount: Math.round(amount * 100), // Stripe uses cents\n // currency: currency.toLowerCase(),\n // payment_method_types: ['card'],\n // description: `Payment for ${this.agentName}`\n // });\n\n // For now, simulate\n return this.simulateTraditionalPayment(PaymentMethod.BASIC_CARD, amount, currency);\n } catch (e) {\n throw new PaymentError(`Basic card payment failed: ${e}`);\n }\n }\n\n /**\n * Process Google Pay payment\n */\n private processGooglePay(\n amount: number,\n currency: string,\n _paymentData: Record<string, any>\n ): TraditionalPaymentResult {\n console.log('🅶 Processing Google Pay...');\n\n // Check if Google Pay is configured\n if (!this.credentials.google_pay_merchant_id) {\n console.warn('⚠️ Google Pay not configured, simulating payment');\n return this.simulateTraditionalPayment(PaymentMethod.GOOGLE_PAY, amount, currency);\n }\n\n // In production, verify Google Pay token and process via payment processor\n // const token = paymentData.paymentToken;\n // Verify token, create charge, etc.\n\n // For now, simulate\n return this.simulateTraditionalPayment(PaymentMethod.GOOGLE_PAY, amount, currency);\n }\n\n /**\n * Process Apple Pay payment\n */\n private processApplePay(\n amount: number,\n currency: string,\n _paymentData: Record<string, any>\n ): TraditionalPaymentResult {\n console.log('🍎 Processing Apple Pay...');\n\n // Check if Apple Pay is configured\n if (!this.credentials.apple_pay_merchant_id) {\n console.warn('⚠️ Apple Pay not configured, simulating payment');\n return this.simulateTraditionalPayment(PaymentMethod.APPLE_PAY, amount, currency);\n }\n\n // In production, verify Apple Pay token and process via payment processor\n // const token = paymentData.paymentToken;\n // Verify token, decrypt, create charge, etc.\n\n // For now, simulate\n return this.simulateTraditionalPayment(PaymentMethod.APPLE_PAY, amount, currency);\n }\n\n /**\n * Process PayPal payment\n */\n private processPayPal(\n amount: number,\n currency: string,\n _paymentData: Record<string, any>\n ): TraditionalPaymentResult {\n console.log('💙 Processing PayPal...');\n\n // Check if PayPal is configured\n if (!this.paypalAccessToken) {\n console.warn('⚠️ PayPal not configured, simulating payment');\n return this.simulateTraditionalPayment(PaymentMethod.PAYPAL, amount, currency);\n }\n\n try {\n // In production, create PayPal order and execute\n // const response = await axios.post(\n // 'https://api-m.sandbox.paypal.com/v2/checkout/orders',\n // {\n // intent: 'CAPTURE',\n // purchase_units: [{\n // amount: { currency_code: currency, value: amount.toString() }\n // }]\n // },\n // {\n // headers: {\n // Authorization: `Bearer ${this.paypalAccessToken}`,\n // 'Content-Type': 'application/json'\n // }\n // }\n // );\n\n // For now, simulate\n return this.simulateTraditionalPayment(PaymentMethod.PAYPAL, amount, currency);\n } catch (e) {\n throw new PaymentError(`PayPal payment failed: ${e}`);\n }\n }\n\n /**\n * Process A2A-x402 crypto payment\n */\n private processA2AX402(\n amount: number,\n currency: string,\n paymentData: Record<string, any>\n ): TraditionalPaymentResult {\n console.log('🔗 Processing A2A-x402 crypto payment...');\n\n // Crypto payments are handled by X402PaymentManager\n // This just creates a result showing it was routed to crypto\n const paymentId = `a2a_x402_${Date.now().toString(36)}`;\n\n return {\n payment_id: paymentId,\n transaction_id: paymentData.transaction_hash || `crypto_tx_${paymentId}`,\n status: 'pending_crypto_confirmation',\n amount,\n currency,\n payment_method: PaymentMethod.A2A_X402,\n timestamp: new Date().toISOString(),\n processor_response: {\n network: this.network,\n settlement_type: 'crypto',\n requires_blockchain_confirmation: true,\n },\n };\n }\n\n /**\n * Simulate traditional payment (for testing/fallback)\n */\n private simulateTraditionalPayment(\n method: PaymentMethod,\n amount: number,\n currency: string\n ): TraditionalPaymentResult {\n const paymentId = `sim_${method}_${Date.now().toString(36)}`;\n const transactionId = `txn_${paymentId}`;\n\n console.log(`🔄 Simulating ${method} payment`);\n\n return {\n payment_id: paymentId,\n transaction_id: transactionId,\n status: 'completed',\n amount,\n currency,\n payment_method: method,\n timestamp: new Date().toISOString(),\n processor_response: {\n simulation: true,\n authorization_code: `AUTH_${Math.random().toString(36).substring(2, 10).toUpperCase()}`,\n network: method === PaymentMethod.BASIC_CARD ? 'visa' : method,\n last4: method === PaymentMethod.BASIC_CARD ? '4242' : undefined,\n },\n };\n }\n\n /**\n * Get payment method configuration status\n */\n getPaymentMethodsStatus(): Record<string, boolean> {\n return {\n [PaymentMethod.BASIC_CARD]: !!this.credentials.stripe_secret_key,\n [PaymentMethod.GOOGLE_PAY]: !!this.credentials.google_pay_merchant_id,\n [PaymentMethod.APPLE_PAY]: !!this.credentials.apple_pay_merchant_id,\n [PaymentMethod.PAYPAL]: !!this.paypalAccessToken,\n [PaymentMethod.A2A_X402]: true, // Always available via wallet\n };\n }\n\n /**\n * Get supported payment methods\n */\n getSupportedPaymentMethods(): PaymentMethod[] {\n const status = this.getPaymentMethodsStatus();\n return Object.entries(status)\n .filter(([_, enabled]) => enabled)\n .map(([method, _]) => method as PaymentMethod);\n }\n\n /**\n * Validate payment method credentials\n */\n async validateCredentials(): Promise<Record<string, boolean>> {\n const results: Record<string, boolean> = {};\n\n // Test Stripe\n if (this.credentials.stripe_secret_key) {\n try {\n await this.stripeAxiosInstance!.get('/balance');\n results.stripe = true;\n } catch (e) {\n results.stripe = false;\n }\n }\n\n // Test PayPal\n if (this.credentials.paypal_client_id) {\n results.paypal = !!this.paypalAccessToken;\n }\n\n // Google Pay and Apple Pay don't have API validation (merchant IDs are validated during checkout)\n results.google_pay = !!this.credentials.google_pay_merchant_id;\n results.apple_pay = !!this.credentials.apple_pay_merchant_id;\n\n // Crypto is always valid if we have a wallet\n results.crypto = !!this.wallet;\n\n return results;\n }\n\n /**\n * Create x402 payment request (for crypto payments)\n */\n createX402PaymentRequest(\n fromAgent: string,\n toAgent: string,\n amount: number,\n currency: string,\n serviceDescription: string\n ): Record<string, any> {\n return {\n payment_id: `x402_${Date.now().toString(36)}`,\n from_agent: fromAgent,\n to_agent: toAgent,\n amount,\n currency,\n service_description: serviceDescription,\n network: this.network,\n protocol_fee: amount * 0.025, // 2.5% ChaosChain fee\n created_at: new Date().toISOString(),\n };\n }\n\n /**\n * Execute x402 crypto payment (delegated to X402PaymentManager)\n */\n executeX402Payment(paymentRequest: Record<string, any>): Record<string, any> {\n // This is a placeholder - actual implementation is in X402PaymentManager\n const transactionHash = `0x${Math.random().toString(16).substring(2, 66)}`;\n\n return {\n payment_id: paymentRequest.payment_id,\n transaction_hash: transactionHash,\n status: 'confirmed',\n timestamp: new Date(),\n network: this.network,\n from_address: this.wallet.address,\n to_address: paymentRequest.to_agent,\n };\n }\n\n /**\n * Get payment statistics\n */\n getPaymentStats(): Record<string, any> {\n return {\n agent_name: this.agentName,\n network: this.network,\n wallet_address: this.wallet.address,\n supported_methods: this.getSupportedPaymentMethods().length,\n payment_methods_status: this.getPaymentMethodsStatus(),\n features: {\n traditional_payments: true,\n crypto_payments: true,\n multi_currency: true,\n instant_settlement: true,\n },\n };\n }\n}\n","/**\n * X402 Paywall Server for ChaosChain SDK\n *\n * This module implements an HTTP 402 paywall server for protecting API endpoints\n * with cryptocurrency payments.\n */\n\nimport * as http from 'http';\nimport { X402PaymentManager, X402PaymentProof } from './X402PaymentManager';\n// import { PaymentError } from './exceptions';\n\nexport interface X402EndpointConfig {\n path: string;\n amount: number;\n currency: string;\n description: string;\n handler: (data: any) => any;\n}\n\nexport interface X402PaywallConfig {\n port: number;\n host?: string;\n defaultCurrency?: string;\n}\n\n/**\n * X402 Paywall Server - HTTP 402 payment-protected API\n *\n * Features:\n * - HTTP 402 Payment Required responses\n * - Automatic payment verification\n * - Per-endpoint payment requirements\n * - Payment receipt generation\n */\nexport class X402Server {\n private paymentManager: X402PaymentManager;\n private server: http.Server | null = null;\n private endpoints: Map<string, X402EndpointConfig> = new Map();\n private paymentCache: Map<string, X402PaymentProof> = new Map();\n private config: Required<X402PaywallConfig>;\n\n constructor(paymentManager: X402PaymentManager, config: X402PaywallConfig) {\n this.paymentManager = paymentManager;\n this.config = {\n port: config.port,\n host: config.host || '0.0.0.0',\n defaultCurrency: config.defaultCurrency || 'USDC',\n };\n\n console.log(`🔒 X402 Paywall Server initialized on port ${this.config.port}`);\n }\n\n /**\n * Register a payment-protected endpoint\n */\n requirePayment(amount: number, description: string, currency?: string) {\n return (handler: (data: any) => any) => {\n const path = `/${handler.name || 'endpoint'}`;\n\n const endpointConfig: X402EndpointConfig = {\n path,\n amount,\n currency: currency || this.config.defaultCurrency,\n description,\n handler,\n };\n\n this.endpoints.set(path, endpointConfig);\n console.log(\n `💰 Registered paywall endpoint: ${path} (${amount} ${currency || this.config.defaultCurrency})`\n );\n\n return handler;\n };\n }\n\n /**\n * Start the HTTP 402 server\n */\n start(): void {\n if (this.server) {\n console.warn('⚠️ Server already running');\n return;\n }\n\n this.server = http.createServer((req, res) => {\n this.handleRequest(req, res).catch((error) => {\n console.error('❌ Request handler error:', error);\n res.writeHead(500, { 'Content-Type': 'application/json' });\n res.end(JSON.stringify({ error: 'Internal server error' }));\n });\n });\n\n this.server.listen(this.config.port, this.config.host, () => {\n console.log(\n `🚀 X402 Paywall Server running at http://${this.config.host}:${this.config.port}`\n );\n console.log(`📋 Registered endpoints: ${this.endpoints.size}`);\n this.endpoints.forEach((config, path) => {\n console.log(` - ${path}: ${config.amount} ${config.currency} - ${config.description}`);\n });\n });\n }\n\n /**\n * Stop the server\n */\n stop(): Promise<void> {\n return new Promise((resolve, reject) => {\n if (!this.server) {\n resolve();\n return;\n }\n\n this.server.close((err) => {\n if (err) {\n reject(err);\n } else {\n console.log('🛑 X402 Paywall Server stopped');\n this.server = null;\n resolve();\n }\n });\n });\n }\n\n /**\n * Handle incoming HTTP requests\n */\n private async handleRequest(req: http.IncomingMessage, res: http.ServerResponse): Promise<void> {\n const url = new URL(req.url || '/', `http://${req.headers.host}`);\n const path = url.pathname;\n\n // Check if endpoint exists\n const endpointConfig = this.endpoints.get(path);\n if (!endpointConfig) {\n res.writeHead(404, { 'Content-Type': 'application/json' });\n res.end(JSON.stringify({ error: 'Endpoint not found' }));\n return;\n }\n\n // Check for X-PAYMENT header (official x402 spec)\n const xPaymentHeader = req.headers['x-payment'] as string;\n\n if (!xPaymentHeader) {\n // No payment provided - return 402 with payment requirements\n this.sendPaymentRequired(res, endpointConfig);\n return;\n }\n\n // Verify payment (X-PAYMENT header contains base64 encoded JSON payload)\n const isValidPayment = await this.verifyPayment(xPaymentHeader, endpointConfig);\n\n if (!isValidPayment) {\n res.writeHead(402, { 'Content-Type': 'application/json' });\n res.end(JSON.stringify({ error: 'Invalid or insufficient payment' }));\n return;\n }\n\n // Payment verified - execute endpoint\n try {\n // Parse request body\n let requestData: any = {};\n if (req.method === 'POST' || req.method === 'PUT') {\n const chunks: Buffer[] = [];\n req.on('data', (chunk) => chunks.push(chunk));\n await new Promise((resolve) => req.on('end', resolve));\n const body = Buffer.concat(chunks).toString();\n requestData = body ? JSON.parse(body) : {};\n }\n\n // Execute handler\n const result = await endpointConfig.handler(requestData);\n\n // Send response\n res.writeHead(200, { 'Content-Type': 'application/json' });\n res.end(JSON.stringify({ success: true, data: result }));\n } catch (error: any) {\n res.writeHead(500, { 'Content-Type': 'application/json' });\n res.end(JSON.stringify({ error: error.message }));\n }\n }\n\n /**\n * Send HTTP 402 Payment Required response\n * Official x402 spec: https://github.com/coinbase/x402\n */\n private sendPaymentRequired(res: http.ServerResponse, endpointConfig: X402EndpointConfig): void {\n const paymentRequirements = this.paymentManager.createPaymentRequirements(\n endpointConfig.amount,\n endpointConfig.currency,\n endpointConfig.description\n );\n\n // Official x402 402 response structure\n const response = {\n x402Version: 1,\n accepts: [paymentRequirements], // Array of acceptable payment requirements\n error: 'Payment Required',\n };\n\n res.writeHead(402, {\n 'Content-Type': 'application/json',\n });\n\n res.end(JSON.stringify(response));\n }\n\n /**\n * Verify payment from X-PAYMENT header\n * Spec: X-PAYMENT contains base64 encoded JSON with:\n * { x402Version: number, scheme: string, network: string, payload: <scheme-specific> }\n */\n private async verifyPayment(\n xPaymentHeader: string,\n endpointConfig: X402EndpointConfig\n ): Promise<boolean> {\n try {\n // Decode base64 X-PAYMENT header\n const paymentPayloadJson = Buffer.from(xPaymentHeader, 'base64').toString('utf-8');\n const paymentPayload = JSON.parse(paymentPayloadJson);\n\n // Validate x402 version\n if (paymentPayload.x402Version !== 1) {\n console.error(`❌ Unsupported x402 version: ${paymentPayload.x402Version}`);\n return false;\n }\n\n // Validate scheme\n if (paymentPayload.scheme !== 'exact') {\n console.error(`❌ Unsupported payment scheme: ${paymentPayload.scheme}`);\n return false;\n }\n\n // Extract transaction hash from payload (scheme-specific)\n // For \"exact\" scheme on EVM, payload should contain transaction details\n const txHash = paymentPayload.payload?.transactionHash || paymentPayload.payload?.txHash;\n\n if (!txHash) {\n console.error(`❌ No transaction hash in payment payload`);\n return false;\n }\n\n // Check cache first\n const cachedPayment = this.paymentCache.get(txHash);\n if (cachedPayment) {\n console.log(`✅ Payment verified from cache: ${txHash}`);\n return true;\n }\n\n // Verify payment on-chain\n const mockProof: X402PaymentProof = {\n payment_id: txHash,\n transaction_hash: txHash,\n main_transaction_hash: txHash,\n from_address: '0x0000000000000000000000000000000000000000',\n to_address: '0x0000000000000000000000000000000000000000',\n treasury_address: '0x0000000000000000000000000000000000000000',\n amount: endpointConfig.amount,\n currency: endpointConfig.currency,\n protocol_fee: 0,\n network: 'base-sepolia' as any,\n chain_id: 84532,\n timestamp: new Date(),\n status: 'confirmed',\n confirmations: 1,\n };\n\n const isValid = await this.paymentManager.verifyPayment(mockProof);\n if (isValid) {\n // Cache the payment\n this.paymentCache.set(txHash, mockProof);\n console.log(`✅ Payment verified on-chain: ${txHash}`);\n return true;\n }\n\n console.error(`❌ Payment verification failed: ${txHash}`);\n return false;\n } catch (error) {\n console.error(`❌ Payment verification error: ${error}`);\n return false;\n }\n }\n\n /**\n * Get server statistics\n */\n getServerStats(): Record<string, any> {\n return {\n running: !!this.server,\n port: this.config.port,\n host: this.config.host,\n endpoints: Array.from(this.endpoints.entries()).map(([path, config]) => ({\n path,\n amount: config.amount,\n currency: config.currency,\n description: config.description,\n })),\n payments_cached: this.paymentCache.size,\n default_currency: this.config.defaultCurrency,\n };\n }\n\n /**\n * Clear payment cache\n */\n clearPaymentCache(): void {\n this.paymentCache.clear();\n console.log('🗑️ Payment cache cleared');\n }\n}\n","/**\n * Google AP2 Integration for ChaosChain SDK\n *\n * This module integrates Google's official AP2 types with the ChaosChain protocol,\n * providing real AP2 intent verification and mandate management.\n */\n\nimport * as crypto from 'crypto';\nimport * as fs from 'fs';\nimport * as path from 'path';\nimport * as jose from 'jose';\n// Exceptions available if needed: ConfigurationError, PaymentError\n\nexport interface IntentMandate {\n user_cart_confirmation_required: boolean;\n natural_language_description: string;\n merchants?: string[];\n skus?: string[];\n requires_refundability: boolean;\n intent_expiry: string;\n}\n\nexport interface CartMandate {\n contents: CartContents;\n merchant_authorization: string;\n}\n\nexport interface CartContents {\n id: string;\n user_cart_confirmation_required: boolean;\n payment_request: PaymentRequest;\n cart_expiry: string;\n merchant_name: string;\n}\n\nexport interface PaymentRequest {\n method_data: PaymentMethodData[];\n details: PaymentDetailsInit;\n}\n\nexport interface PaymentMethodData {\n supported_methods: string;\n data: Record<string, any>;\n}\n\nexport interface PaymentDetailsInit {\n id: string;\n display_items: PaymentItem[];\n total: PaymentItem;\n}\n\nexport interface PaymentItem {\n label: string;\n amount: PaymentCurrencyAmount;\n}\n\nexport interface PaymentCurrencyAmount {\n currency: string;\n value: number | string;\n}\n\nexport interface GoogleAP2IntegrationResult {\n intent_mandate?: IntentMandate;\n cart_mandate?: CartMandate;\n payment_mandate?: any;\n jwt_token?: string;\n success: boolean;\n error?: string;\n}\n\n/**\n * Production Google AP2 integration for ChaosChain SDK\n *\n * This integrates Google's official AP2 library for real intent verification\n * and mandate management with production-grade security.\n */\nexport class GoogleAP2Integration {\n private agentName: string;\n private privateKey: crypto.KeyObject;\n private publicKey: string;\n private merchantPrivateKeyValue: string;\n\n constructor(agentName: string, merchantPrivateKey?: string) {\n this.agentName = agentName;\n this.merchantPrivateKeyValue = merchantPrivateKey || 'demo_private_key_123';\n\n // Generate or load RSA keypair for production JWT signing\n const keypair = this.getOrGenerateRsaKeypair();\n this.privateKey = keypair.privateKey;\n this.publicKey = keypair.publicKey;\n\n console.log(`✅ Google AP2 Integration initialized for ${agentName}`);\n }\n\n /**\n * Get merchant private key (for future use in payment verification)\n */\n getMerchantPrivateKey(): string {\n return this.merchantPrivateKeyValue;\n }\n\n /**\n * Generate or load RSA keypair for production JWT signing\n */\n private getOrGenerateRsaKeypair(): { privateKey: crypto.KeyObject; publicKey: string } {\n const keyDir = path.join(process.cwd(), 'keys');\n const privateKeyPath = path.join(keyDir, `${this.agentName}_ap2_private.pem`);\n const publicKeyPath = path.join(keyDir, `${this.agentName}_ap2_public.pem`);\n\n // Create keys directory if it doesn't exist\n if (!fs.existsSync(keyDir)) {\n fs.mkdirSync(keyDir, { recursive: true });\n }\n\n // Try to load existing keys\n if (fs.existsSync(privateKeyPath) && fs.existsSync(publicKeyPath)) {\n try {\n const privateKeyPem = fs.readFileSync(privateKeyPath, 'utf-8');\n const publicKeyPem = fs.readFileSync(publicKeyPath, 'utf-8');\n\n const privateKey = crypto.createPrivateKey(privateKeyPem);\n console.log(`🔑 Loaded existing RSA keypair for ${this.agentName}`);\n\n return { privateKey, publicKey: publicKeyPem };\n } catch (e) {\n console.warn(`⚠️ Failed to load existing keys: ${e}`);\n }\n }\n\n // Generate new RSA keypair\n console.log(`🔑 Generating new RSA keypair for ${this.agentName}`);\n const { privateKey, publicKey } = crypto.generateKeyPairSync('rsa', {\n modulusLength: 2048,\n publicKeyEncoding: {\n type: 'spki',\n format: 'pem',\n },\n privateKeyEncoding: {\n type: 'pkcs8',\n format: 'pem',\n },\n });\n\n // Save keys to disk\n try {\n fs.writeFileSync(privateKeyPath, privateKey as string);\n fs.writeFileSync(publicKeyPath, publicKey);\n console.log(`💾 RSA keypair saved to ${keyDir}`);\n } catch (e) {\n console.warn(`⚠️ Failed to save keys: ${e}`);\n }\n\n return {\n privateKey: crypto.createPrivateKey(privateKey as string),\n publicKey: publicKey as string,\n };\n }\n\n /**\n * Create an IntentMandate using Google's official AP2 types\n */\n createIntentMandate(\n userDescription: string,\n merchants?: string[],\n skus?: string[],\n requiresRefundability: boolean = false,\n expiryMinutes: number = 60\n ): GoogleAP2IntegrationResult {\n try {\n // Calculate expiry time\n const expiryTime = new Date(Date.now() + expiryMinutes * 60 * 1000);\n\n // Create IntentMandate using Google's types\n const intentMandate: IntentMandate = {\n user_cart_confirmation_required: true,\n natural_language_description: userDescription,\n merchants,\n skus,\n requires_refundability: requiresRefundability,\n intent_expiry: expiryTime.toISOString(),\n };\n\n console.log(`📝 Created Google AP2 IntentMandate`);\n console.log(` Description: ${userDescription}`);\n console.log(` Expires: ${expiryTime.toISOString()}`);\n\n return {\n intent_mandate: intentMandate,\n success: true,\n };\n } catch (e) {\n console.error(`❌ Failed to create IntentMandate: ${e}`);\n return {\n success: false,\n error: String(e),\n };\n }\n }\n\n /**\n * Create a CartMandate using Google's official AP2 types with JWT signing\n */\n async createCartMandate(\n cartId: string,\n items: Array<{ name: string; price: number }>,\n totalAmount: number,\n currency: string = 'USD',\n merchantName?: string,\n expiryMinutes: number = 15\n ): Promise<GoogleAP2IntegrationResult> {\n try {\n // Calculate expiry time\n const expiryTime = new Date(Date.now() + expiryMinutes * 60 * 1000);\n\n // Create PaymentItems using Google's types\n const paymentItems: PaymentItem[] = items.map((item) => ({\n label: item.name,\n amount: {\n currency,\n value: item.price,\n },\n }));\n\n // Create total PaymentItem\n const totalItem: PaymentItem = {\n label: 'Total',\n amount: {\n currency,\n value: totalAmount,\n },\n };\n\n // Create PaymentMethodData (supporting multiple methods)\n const methodData: PaymentMethodData[] = [\n {\n supported_methods: 'basic-card',\n data: { supportedNetworks: ['visa', 'mastercard'] },\n },\n {\n supported_methods: 'google-pay',\n data: { environment: 'TEST' },\n },\n {\n supported_methods: 'crypto',\n data: { supportedCurrencies: ['USDC', 'ETH'] },\n },\n ];\n\n // Create PaymentRequest\n const paymentRequest: PaymentRequest = {\n method_data: methodData,\n details: {\n id: `payment_${cartId}`,\n display_items: paymentItems,\n total: totalItem,\n },\n };\n\n // Create CartContents\n const cartContents: CartContents = {\n id: cartId,\n user_cart_confirmation_required: true,\n payment_request: paymentRequest,\n cart_expiry: expiryTime.toISOString(),\n merchant_name: merchantName || this.agentName,\n };\n\n // Create JWT for merchant authorization\n const jwtToken = await this.createMerchantJwt(cartContents);\n\n // Create CartMandate\n const cartMandate: CartMandate = {\n contents: cartContents,\n merchant_authorization: jwtToken,\n };\n\n console.log(`🛒 Created Google AP2 CartMandate with JWT`);\n console.log(` Cart ID: ${cartId}`);\n console.log(` Items: ${items.length} items, Total: ${totalAmount} ${currency}`);\n console.log(` JWT: ${jwtToken.slice(0, 50)}...`);\n\n return {\n cart_mandate: cartMandate,\n jwt_token: jwtToken,\n success: true,\n };\n } catch (e) {\n console.error(`❌ Failed to create CartMandate: ${e}`);\n return {\n success: false,\n error: String(e),\n };\n }\n }\n\n /**\n * Create a JWT token for merchant authorization as per Google's AP2 spec\n */\n private async createMerchantJwt(cartContents: CartContents): Promise<string> {\n // Create cart hash for integrity\n const cartJson = JSON.stringify(cartContents);\n const cartHash = crypto.createHash('sha256').update(cartJson).digest('hex');\n\n // JWT Payload\n const now = Math.floor(Date.now() / 1000);\n const payload = {\n iss: `did:chaoschain:${this.agentName}`, // Issuer (DID format)\n sub: cartContents.id, // Subject (cart ID)\n aud: 'chaoschain:payment_processor', // Audience\n iat: now, // Issued at\n exp: now + 15 * 60, // Expires (15 minutes)\n jti: `jwt_${cartContents.id}_${now}`, // JWT ID\n cart_hash: cartHash, // Cart integrity hash\n merchant_name: cartContents.merchant_name,\n };\n\n // Create JWT with RSA256 signing\n const jwt = await new jose.SignJWT(payload)\n .setProtectedHeader({\n alg: 'RS256',\n kid: `did:chaoschain:${this.agentName}#key-1`,\n })\n .sign(this.privateKey);\n\n return jwt;\n }\n\n /**\n * Verify a JWT token (for validation purposes)\n */\n async verifyJwtToken(token: string): Promise<Record<string, any>> {\n try {\n // Get public key for verification\n const publicKey = crypto.createPublicKey(this.publicKey);\n\n // Decode and verify JWT with RSA256\n const { payload } = await jose.jwtVerify(token, publicKey, {\n algorithms: ['RS256'],\n audience: 'chaoschain:payment_processor',\n });\n\n console.log(`✅ JWT token verified successfully with RSA256`);\n return payload as Record<string, any>;\n } catch (e: any) {\n if (e.code === 'ERR_JWT_EXPIRED') {\n console.error(`❌ JWT token has expired`);\n } else if (e.code === 'ERR_JWT_CLAIM_VALIDATION_FAILED') {\n console.error(`❌ JWT token has invalid audience`);\n } else {\n console.error(`❌ JWT token is invalid: ${e}`);\n }\n return {};\n }\n }\n\n /**\n * Get a summary of the Google AP2 integration capabilities\n */\n getIntegrationSummary(): Record<string, any> {\n return {\n integration_type: 'Google Official AP2',\n agent_name: this.agentName,\n supported_features: [\n 'IntentMandate creation with Google types',\n 'CartMandate creation with JWT signing',\n 'W3C PaymentRequest API compliance',\n 'Multi-payment method support',\n 'JWT-based merchant authorization',\n 'Proper expiry handling',\n 'Cart integrity verification',\n ],\n cryptographic_features: [\n 'JWT signing with RS256 (production)',\n 'Cart content hashing for integrity',\n 'Timestamp-based expiry',\n 'Replay attack prevention with JTI',\n ],\n compliance: [\n 'Google AP2 Protocol',\n 'W3C Payment Request API',\n 'JWT RFC 7519',\n 'ISO 8601 timestamps',\n ],\n };\n }\n}\n","/**\n * A2A-x402 Extension Implementation for ChaosChain SDK\n *\n * This module implements Google's A2A-x402 extension for cryptocurrency payments,\n * enabling seamless crypto settlement within the AP2 framework.\n *\n * Based on: https://github.com/google-agentic-commerce/a2a-x402/blob/main/v0.1/spec.md\n */\n\nimport * as crypto from 'crypto';\nimport { NetworkConfig, PaymentMethod } from './types';\n\nexport interface X402PaymentMethod {\n supported_methods: string[];\n supported_networks: string[];\n payment_endpoint: string;\n verification_endpoint: string;\n method_data?: Record<string, any>;\n}\n\nexport interface W3CPaymentMethodData {\n supported_methods: string;\n data: Record<string, any>;\n}\n\nexport interface TraditionalPaymentResponse {\n payment_id: string;\n method: string;\n amount: number;\n currency: string;\n status: string;\n transaction_id?: string;\n authorization_code?: string;\n timestamp: string;\n receipt_data?: Record<string, any>;\n}\n\nexport interface X402PaymentRequest {\n id: string;\n total: Record<string, any>;\n display_items: Array<Record<string, any>>;\n x402_methods: X402PaymentMethod[];\n settlement_address: string;\n network: string;\n expires_at: string;\n}\n\nexport interface X402PaymentResponse {\n payment_id: string;\n transaction_hash: string;\n network: string;\n amount: number;\n currency: string;\n settlement_address: string;\n confirmation_blocks: number;\n status: string;\n timestamp: string;\n gas_fee?: number;\n protocol_fee?: number;\n}\n\n/**\n * A2A-x402 Extension for cryptocurrency payments within AP2 framework\n *\n * This class bridges Google's AP2 protocol with x402 crypto payments,\n * enabling seamless crypto settlement for agent-to-agent commerce.\n */\nexport class A2AX402Extension {\n private agentName: string;\n private network: NetworkConfig;\n private paymentManager: any;\n private supportedCryptoMethods: string[];\n private supportedNetworks: string[];\n private w3cPaymentMethods: W3CPaymentMethodData[];\n\n constructor(agentName: string, network: NetworkConfig, paymentManager: any) {\n this.agentName = agentName;\n this.network = network;\n this.paymentManager = paymentManager;\n\n // Supported payment methods (W3C compliant)\n this.supportedCryptoMethods = ['usdc', 'eth', 'native'];\n this.supportedNetworks = ['base-sepolia', 'ethereum-sepolia', 'optimism-sepolia'];\n\n // W3C Payment Request API compliant payment methods\n this.w3cPaymentMethods = this.initializeW3cPaymentMethods();\n\n console.log(`✅ A2A-x402 Extension initialized for ${agentName} on ${network}`);\n console.log(`💳 Multi-payment support: ${this.w3cPaymentMethods.length} methods available`);\n }\n\n /**\n * Initialize W3C Payment Request API compliant payment methods\n */\n private initializeW3cPaymentMethods(): W3CPaymentMethodData[] {\n const methods: W3CPaymentMethodData[] = [];\n\n // 1. Basic Card Support (Visa, Mastercard, Amex, etc.)\n methods.push({\n supported_methods: PaymentMethod.BASIC_CARD,\n data: {\n supportedNetworks: ['visa', 'mastercard', 'amex', 'discover'],\n supportedTypes: ['credit', 'debit'],\n },\n });\n\n // 2. Google Pay\n methods.push({\n supported_methods: PaymentMethod.GOOGLE_PAY,\n data: {\n environment: 'PRODUCTION',\n apiVersion: 2,\n apiVersionMinor: 0,\n allowedPaymentMethods: [\n {\n type: 'CARD',\n parameters: {\n allowedAuthMethods: ['PAN_ONLY', 'CRYPTOGRAM_3DS'],\n allowedCardNetworks: ['AMEX', 'DISCOVER', 'JCB', 'MASTERCARD', 'VISA'],\n },\n },\n ],\n },\n });\n\n // 3. Apple Pay\n methods.push({\n supported_methods: PaymentMethod.APPLE_PAY,\n data: {\n version: 3,\n merchantIdentifier: `merchant.chaoschain.${this.agentName.toLowerCase()}`,\n merchantCapabilities: ['supports3DS'],\n supportedNetworks: ['visa', 'masterCard', 'amex', 'discover'],\n },\n });\n\n // 4. ChaosChain Crypto Pay (our A2A-x402 implementation)\n methods.push({\n supported_methods: PaymentMethod.A2A_X402,\n data: {\n supportedCryptocurrencies: this.supportedCryptoMethods,\n supportedNetworks: this.supportedNetworks,\n settlementAddress: 'dynamic',\n protocolVersion: 'x402-v1.0',\n },\n });\n\n // 5. PayPal (for completeness)\n methods.push({\n supported_methods: PaymentMethod.PAYPAL,\n data: {\n environment: 'sandbox',\n intent: 'capture',\n },\n });\n\n return methods;\n }\n\n /**\n * Create x402 payment method descriptor with W3C compliance\n */\n createX402PaymentMethod(settlementAddress: string): X402PaymentMethod {\n // Extract all W3C method identifiers\n const w3cMethods = this.w3cPaymentMethods.map((method) => method.supported_methods);\n\n return {\n supported_methods: w3cMethods,\n supported_networks: this.supportedNetworks,\n payment_endpoint: `x402://${this.agentName}.chaoschain.com/pay`,\n verification_endpoint: `https://${this.agentName}.chaoschain.com/verify`,\n method_data: {\n w3c_methods: this.w3cPaymentMethods.map((method) => ({\n supportedMethods: method.supported_methods,\n data: method.data,\n })),\n crypto_settlement_address: settlementAddress,\n },\n };\n }\n\n /**\n * Create enhanced payment request with x402 crypto support\n */\n createEnhancedPaymentRequest(\n cartId: string,\n totalAmount: number,\n currency: string,\n items: Array<Record<string, any>>,\n settlementAddress: string\n ): X402PaymentRequest {\n // Create x402 payment methods\n const x402Methods = [this.createX402PaymentMethod(settlementAddress)];\n\n // Create enhanced payment request\n const paymentRequest: X402PaymentRequest = {\n id: `x402_${cartId}_${Date.now().toString(36)}`,\n total: {\n amount: { value: totalAmount.toString(), currency },\n label: `Payment for ${items.length} items`,\n },\n display_items: items.map((item) => ({\n label: item.name || item.service || 'Item',\n amount: { value: (item.price || 0).toString(), currency },\n })),\n x402_methods: x402Methods,\n settlement_address: settlementAddress,\n network: this.network,\n expires_at: new Date(Date.now() + 30 * 60 * 1000).toISOString(),\n };\n\n console.log(`💳 Created x402 payment request: ${paymentRequest.id}`);\n return paymentRequest;\n }\n\n /**\n * Execute x402 crypto payment using the real payment manager\n */\n async executeX402Payment(\n paymentRequest: X402PaymentRequest,\n payerAgent: string,\n serviceDescription: string = 'A2A Service'\n ): Promise<X402PaymentResponse> {\n console.log(`💸 Executing x402 payment: ${payerAgent} → ${this.agentName}`);\n\n // Extract payment details\n const amount = parseFloat(paymentRequest.total.amount.value);\n const currency = paymentRequest.total.amount.currency;\n\n // Create payment request for the payment manager\n const pmPaymentRequest = this.paymentManager.createX402PaymentRequest(\n payerAgent,\n this.agentName,\n amount,\n currency,\n serviceDescription\n );\n\n // Execute payment via payment manager\n const paymentProof = this.paymentManager.executeX402Payment(pmPaymentRequest);\n\n // Create x402 payment response\n const response: X402PaymentResponse = {\n payment_id: paymentProof.payment_id,\n transaction_hash: paymentProof.transaction_hash,\n network: this.network,\n amount,\n currency,\n settlement_address: paymentRequest.settlement_address,\n confirmation_blocks: 1,\n status: 'confirmed',\n timestamp: paymentProof.timestamp.toISOString(),\n gas_fee: undefined,\n protocol_fee: pmPaymentRequest.protocol_fee,\n };\n\n console.log(`✅ x402 payment confirmed: ${response.transaction_hash}`);\n return response;\n }\n\n /**\n * Execute traditional payment (cards, Google Pay, Apple Pay, etc.)\n */\n executeTraditionalPayment(\n paymentMethod: string,\n amount: number,\n currency: string,\n paymentData: Record<string, any>\n ): TraditionalPaymentResponse {\n console.log(`💳 Processing ${paymentMethod} payment: $${amount} ${currency}`);\n\n // Use the payment manager's traditional payment execution\n if (this.paymentManager) {\n // Convert to PaymentMethod enum\n const methodEnum = Object.values(PaymentMethod).find((m) => m === paymentMethod) as\n | PaymentMethod\n | undefined;\n\n if (methodEnum) {\n const result = this.paymentManager.executeTraditionalPayment(\n methodEnum,\n amount,\n currency,\n paymentData\n );\n\n // Convert to TraditionalPaymentResponse\n return {\n payment_id: result.payment_id,\n method: paymentMethod,\n amount,\n currency,\n status: result.status,\n transaction_id: result.transaction_id,\n authorization_code: result.processor_response?.authorization_code,\n timestamp: result.timestamp,\n receipt_data: result.processor_response,\n };\n }\n }\n\n // Fallback for unsupported methods\n const paymentId = `trad_${Date.now().toString(36)}`;\n return {\n payment_id: paymentId,\n method: paymentMethod,\n amount,\n currency,\n status: 'failed',\n timestamp: new Date().toISOString(),\n receipt_data: { error: 'Unsupported payment method' },\n };\n }\n\n /**\n * Verify x402 payment on-chain\n */\n verifyX402Payment(paymentResponse: X402PaymentResponse): boolean {\n // In production, this would verify the transaction on-chain\n // For now, we check if we have a valid transaction hash\n return (\n paymentResponse.status === 'confirmed' &&\n !!paymentResponse.transaction_hash &&\n paymentResponse.transaction_hash.length === 66\n );\n }\n\n /**\n * Create cryptographic proof of x402 payment\n */\n createPaymentProof(paymentResponse: X402PaymentResponse): Record<string, any> {\n const proofData = {\n payment_id: paymentResponse.payment_id,\n transaction_hash: paymentResponse.transaction_hash,\n network: paymentResponse.network,\n amount: paymentResponse.amount,\n currency: paymentResponse.currency,\n settlement_address: paymentResponse.settlement_address,\n timestamp: paymentResponse.timestamp,\n agent_payer: 'unknown',\n agent_payee: this.agentName,\n };\n\n // Create proof hash\n const proofJson = JSON.stringify(proofData);\n const proofHash = crypto.createHash('sha256').update(proofJson).digest('hex');\n\n return {\n proof_type: 'a2a_x402_payment',\n proof_hash: proofHash,\n proof_data: proofData,\n verification_method: 'on_chain_transaction',\n created_at: new Date().toISOString(),\n };\n }\n\n /**\n * Get A2A-x402 extension capabilities with W3C Payment Request API compliance\n */\n getExtensionCapabilities(): Record<string, any> {\n return {\n extension_name: 'a2a-x402-multi-payment',\n version: '1.0.0',\n w3c_payment_methods: this.w3cPaymentMethods.map((m) => m.supported_methods),\n supported_crypto_methods: this.supportedCryptoMethods,\n supported_networks: this.supportedNetworks,\n features: [\n 'w3c_payment_request_api',\n 'multi_payment_methods',\n 'basic_card_support',\n 'google_pay_integration',\n 'apple_pay_integration',\n 'paypal_integration',\n 'crypto_payments',\n 'instant_settlement',\n 'on_chain_verification',\n 'protocol_fees',\n 'gas_optimization',\n 'multi_network_support',\n ],\n compliance: [\n 'W3C Payment Request API',\n 'A2A-x402 Specification v0.1',\n 'Google Pay API v2',\n 'Apple Pay JS API v3',\n 'PayPal Checkout API',\n 'EIP-20 Token Standard',\n 'HTTP 402 Payment Required',\n ],\n payment_processors: {\n traditional: ['simulated_processor', 'google_pay', 'apple_pay', 'paypal'],\n crypto: ['chaoschain_x402', 'base_sepolia', 'ethereum'],\n },\n };\n }\n}\n","/**\n * Production-ready process integrity verification for ChaosChain agents.\n *\n * This module provides cryptographic proof of correct code execution,\n * ensuring that agents perform work as intended with verifiable evidence.\n *\n * Features:\n * - Local code hashing (SHA-256)\n * - Optional TEE attestations (0G Compute, AWS Nitro, etc.)\n * - Dual-layer verification: Code + Execution\n * - Pluggable compute providers for maximum flexibility\n */\n\nimport { createHash } from 'crypto';\nimport { IntegrityProof, TEEAttestation, VerificationMethod } from './types';\nimport { IntegrityVerificationError } from './exceptions';\n\nexport interface StorageProvider {\n uploadJson(data: any, filename: string): Promise<string>;\n}\n\n// TEEAttestation is imported from './types' - no duplicate definition needed\n\nexport interface ComputeProvider {\n submit(task: any): Promise<string>;\n status(jobId: string): Promise<{ state: string; [key: string]: any }>;\n result(jobId: string): Promise<{\n success: boolean;\n execution_hash: string;\n verification_method: { value: string };\n proof?: Buffer;\n metadata?: any;\n error?: string;\n }>;\n attestation(jobId: string): Promise<any>;\n}\n\n/**\n * Production-ready process integrity verifier for ChaosChain agents.\n *\n * Provides dual-layer cryptographic proof:\n * 1. Local code hashing (SHA-256 of function code)\n * 2. Optional TEE attestations (hardware-verified execution from 0G Compute, AWS Nitro, etc.)\n *\n * This enables the \"Process Integrity\" layer of the Triple-Verified Stack:\n * - Layer 1: AP2 Intent Verification (Google)\n * - Layer 2: Process Integrity (ChaosChain + TEE attestations) ← THIS MODULE\n * - Layer 3: Accountability\n */\nexport class ProcessIntegrity {\n private agentName: string;\n private storageManager: StorageProvider | null;\n private computeProvider: ComputeProvider | null;\n // eslint-disable-next-line @typescript-eslint/ban-types\n private registeredFunctions: Map<string, Function>;\n private functionHashes: Map<string, string>;\n\n constructor(\n agentName: string,\n storageManager: StorageProvider | null = null,\n computeProvider: ComputeProvider | null = null\n ) {\n this.agentName = agentName;\n this.storageManager = storageManager;\n this.computeProvider = computeProvider;\n this.registeredFunctions = new Map();\n this.functionHashes = new Map();\n\n const verificationMode = !computeProvider ? 'local' : 'local + TEE attestation';\n console.log(\n `✅ ChaosChain Process Integrity Verifier initialized: ${agentName} (${verificationMode})`\n );\n }\n\n /**\n * Register a function for integrity checking.\n */\n // eslint-disable-next-line @typescript-eslint/ban-types\n registerFunction(func: Function, functionName?: string): string {\n const name = functionName || func.name;\n\n // Generate code hash\n const codeHash = this.generateCodeHash(func);\n\n // Store function and hash\n this.registeredFunctions.set(name, func);\n this.functionHashes.set(name, codeHash);\n\n console.log(`📝 Registered integrity-checked function: ${name}`);\n console.log(` Code hash: ${codeHash.slice(0, 16)}...`);\n\n return codeHash;\n }\n\n /**\n * Execute a registered function with integrity proof generation.\n */\n async executeWithProof(\n functionName: string,\n inputs: Record<string, any>,\n requireProof: boolean = true,\n useTee: boolean = true\n ): Promise<[any, IntegrityProof | null]> {\n if (!this.registeredFunctions.has(functionName)) {\n const available = Array.from(this.registeredFunctions.keys());\n throw new IntegrityVerificationError(`Function not registered: ${functionName}`, {\n available_functions: available,\n });\n }\n\n const func = this.registeredFunctions.get(functionName)!;\n const codeHash = this.functionHashes.get(functionName)!;\n\n const executionMode = useTee && this.computeProvider ? 'local + TEE' : 'local';\n console.log(\n `⚡ Executing with ChaosChain Process Integrity: ${functionName} (${executionMode})`\n );\n\n // Execute function\n const startTime = new Date();\n let teeAttestation: TEEAttestation | null = null;\n\n try {\n // Execute the function\n const result = await func(inputs);\n const executionTime = new Date();\n\n // Optionally get TEE attestation\n if (useTee && this.computeProvider) {\n try {\n teeAttestation = await this.getTeeAttestation(functionName, inputs, result);\n } catch (e) {\n console.warn(`⚠️ TEE attestation failed (continuing with local proof): ${e}`);\n }\n }\n\n if (!requireProof) {\n return [result, null];\n }\n\n // Generate integrity proof (includes TEE attestation if available)\n const proof = this.generateIntegrityProof(\n functionName,\n codeHash,\n inputs,\n result,\n startTime,\n executionTime,\n teeAttestation\n );\n\n // Store proof on IPFS if storage manager available\n if (this.storageManager) {\n await this.storeProofOnIpfs(proof);\n }\n\n return [result, proof];\n } catch (e) {\n throw new IntegrityVerificationError(`Function execution failed: ${e}`, {\n function_name: functionName,\n inputs,\n });\n }\n }\n\n /**\n * Generate a hash of the function's code.\n */\n // eslint-disable-next-line @typescript-eslint/ban-types\n private generateCodeHash(func: Function): string {\n try {\n // Get function source code\n const sourceCode = func.toString();\n\n // Create hash\n return createHash('sha256').update(sourceCode).digest('hex');\n } catch {\n // Fallback to function name\n const funcInfo = `${func.name}`;\n return createHash('sha256').update(funcInfo).digest('hex');\n }\n }\n\n /**\n * Get TEE attestation from compute provider (e.g., 0G Compute).\n */\n private async getTeeAttestation(\n functionName: string,\n inputs: Record<string, any>,\n _result: any\n ): Promise<TEEAttestation | null> {\n if (!this.computeProvider) {\n return null;\n }\n\n console.log(`🔐 Requesting TEE attestation from compute provider...`);\n\n try {\n // Submit task to TEE compute provider\n const taskData = {\n function: functionName,\n inputs,\n model: 'gpt-oss-120b', // Default model for 0G Compute\n prompt: `Execute function: ${functionName} with inputs: ${JSON.stringify(inputs)}`,\n };\n\n const jobId = await this.computeProvider.submit(taskData);\n\n // Wait for completion\n const maxWait = 60000; // 60 seconds timeout\n const startWait = Date.now();\n\n while (Date.now() - startWait < maxWait) {\n const statusResult = await this.computeProvider.status(jobId);\n const state = statusResult.state || 'unknown';\n\n if (state === 'completed') {\n // Get full result (includes execution_hash, verification_method)\n const computeResult = await this.computeProvider.result(jobId);\n\n if (computeResult.success) {\n // Get attestation (proof data)\n const attestationData = await this.computeProvider.attestation(jobId);\n\n console.log(`✅ TEE attestation received: ${jobId}`);\n console.log(` Execution Hash: ${computeResult.execution_hash}`);\n console.log(` Verification: ${computeResult.verification_method.value}`);\n\n return {\n jobId: jobId,\n provider: '0g-compute',\n executionHash: computeResult.execution_hash, // TEE execution ID\n verificationMethod: computeResult.verification_method.value as VerificationMethod,\n model: taskData.model,\n attestationData: attestationData, // Full attestation proof\n proof: computeResult.proof?.toString('hex'),\n metadata: computeResult.metadata,\n timestamp: new Date().toISOString(),\n };\n } else {\n console.warn(`⚠️ Compute result failed: ${computeResult.error}`);\n return null;\n }\n } else if (state === 'failed') {\n console.warn(`⚠️ TEE execution failed`);\n return null;\n }\n\n await new Promise((resolve) => setTimeout(resolve, 2000));\n }\n\n console.warn(`⚠️ TEE attestation timeout after ${maxWait}ms`);\n return null;\n } catch (e) {\n console.warn(`⚠️ TEE attestation error: ${e}`);\n return null;\n }\n }\n\n /**\n * Generate a cryptographic integrity proof.\n */\n private generateIntegrityProof(\n functionName: string,\n codeHash: string,\n inputs: Record<string, any>,\n result: any,\n startTime: Date,\n executionTime: Date,\n teeAttestation: TEEAttestation | null\n ): IntegrityProof {\n const proofId = `proof_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 10)}`;\n\n // Create execution hash\n const executionData = {\n function_name: functionName,\n code_hash: codeHash,\n inputs,\n result: this.serializeResult(result),\n start_time: startTime.toISOString(),\n execution_time: executionTime.toISOString(),\n agent_name: this.agentName,\n };\n\n const executionHash = createHash('sha256').update(JSON.stringify(executionData)).digest('hex');\n\n // Build proof with optional TEE data (camelCase to match types.ts)\n const proof: IntegrityProof = {\n proofId: proofId,\n functionName: functionName,\n codeHash: codeHash,\n executionHash: executionHash,\n timestamp: executionTime,\n agentName: this.agentName,\n verificationStatus: 'verified',\n ipfsCid: undefined,\n // TEE fields (if available)\n teeAttestation: teeAttestation || undefined,\n teeProvider: teeAttestation?.provider,\n teeJobId: teeAttestation?.jobId,\n teeExecutionHash: teeAttestation?.executionHash,\n };\n\n const verificationLevel = teeAttestation ? 'local + TEE' : 'local';\n console.log(`✅ Process integrity proof generated: ${proofId} (${verificationLevel})`);\n\n return proof;\n }\n\n /**\n * Store integrity proof on IPFS for persistence.\n */\n private async storeProofOnIpfs(proof: IntegrityProof): Promise<void> {\n if (!this.storageManager) return;\n\n try {\n // JSON output uses snake_case for Python SDK compatibility\n const proofData = {\n type: 'chaoschain_process_integrity_proof_v2', // v2 includes TEE\n proof: {\n proof_id: proof.proofId,\n function_name: proof.functionName,\n code_hash: proof.codeHash,\n execution_hash: proof.executionHash,\n timestamp: proof.timestamp.toISOString(),\n agent_name: proof.agentName,\n verification_status: proof.verificationStatus,\n // TEE attestation (if available)\n tee_attestation: proof.teeAttestation,\n tee_provider: proof.teeProvider,\n tee_job_id: proof.teeJobId,\n tee_execution_hash: proof.teeExecutionHash,\n },\n verification_layers: {\n local_code_hash: true,\n tee_attestation: !!proof.teeAttestation,\n },\n timestamp: new Date().toISOString(),\n agent_name: this.agentName,\n };\n\n const filename = `process_integrity_proof_${proof.proofId}.json`;\n const cid = await this.storageManager.uploadJson(proofData, filename);\n\n if (cid) {\n proof.ipfsCid = cid;\n console.log(`📁 Process Integrity Proof stored on IPFS: ${cid}`);\n }\n } catch (e) {\n console.warn(`⚠️ Failed to store process integrity proof on IPFS: ${e}`);\n }\n }\n\n /**\n * Serialize function result for hashing.\n */\n private serializeResult(result: any): any {\n try {\n // Try direct JSON serialization\n JSON.stringify(result);\n return result;\n } catch {\n // Fallback to string representation\n return String(result);\n }\n }\n\n /**\n * Create a process insurance policy for a function.\n */\n createInsurancePolicy(\n functionName: string,\n coverageAmount: number,\n conditions: Record<string, any>\n ): Record<string, any> {\n const policyId = `policy_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 10)}`;\n\n const policy = {\n policy_id: policyId,\n function_name: functionName,\n agent_name: this.agentName,\n coverage_amount: coverageAmount,\n conditions,\n created_at: new Date().toISOString(),\n status: 'active',\n };\n\n console.log(`🛡️ Process insurance policy created: ${policyId}`);\n console.log(` Function: ${functionName}`);\n console.log(` Coverage: $${coverageAmount}`);\n\n return policy;\n }\n\n /**\n * Configure autonomous agent capabilities with integrity verification.\n */\n configureAutonomousAgent(\n capabilities: string[],\n constraints: Record<string, any>\n ): Record<string, any> {\n const configId = `config_${Date.now().toString(36)}_${Math.random().toString(36).slice(2, 10)}`;\n\n const configuration = {\n config_id: configId,\n agent_name: this.agentName,\n capabilities,\n constraints,\n integrity_verification: true,\n registered_functions: Array.from(this.registeredFunctions.keys()),\n created_at: new Date().toISOString(),\n };\n\n console.log(`🤖 Autonomous agent configured: ${configId}`);\n console.log(` Capabilities: ${capabilities.length}`);\n console.log(` Registered functions: ${this.registeredFunctions.size}`);\n\n return configuration;\n }\n}\n\n/**\n * Decorator for automatically registering functions with integrity checking.\n */\nexport function integrityCheckedFunction(verifier?: ProcessIntegrity) {\n return function (_target: any, propertyKey: string, descriptor: PropertyDescriptor) {\n const originalMethod = descriptor.value;\n\n descriptor.value = async function (...args: any[]) {\n if (verifier) {\n // Register function if not already registered\n if (!verifier['registeredFunctions'].has(propertyKey)) {\n verifier.registerFunction(originalMethod, propertyKey);\n }\n\n // Execute with integrity proof\n const inputs = { args };\n const [result] = await verifier.executeWithProof(propertyKey, inputs, true);\n return result;\n } else {\n // Execute without integrity checking\n return await originalMethod.apply(this, args);\n }\n };\n\n return descriptor;\n };\n}\n","/**\n * Storage Backends for ChaosChain SDK\n *\n * This module provides a unified interface for multiple storage providers,\n * allowing seamless switching between IPFS, Pinata, Irys, and 0G Storage.\n */\n\nimport axios from 'axios';\nimport FormData from 'form-data';\nimport { StorageError } from './exceptions';\n\nexport interface StorageResult {\n cid: string;\n url?: string;\n size?: number;\n provider: string;\n}\n\nexport interface StorageBackend {\n put(data: Buffer | string, mime?: string): Promise<StorageResult>;\n get(cid: string): Promise<Buffer>;\n pin?(cid: string): Promise<void>;\n unpin?(cid: string): Promise<void>;\n}\n\n/**\n * Local IPFS Storage Backend\n *\n * Requires: ipfs daemon running locally\n * Cost: Free\n * Setup: brew install ipfs && ipfs daemon\n */\nexport class LocalIPFSStorage implements StorageBackend {\n private apiUrl: string;\n\n constructor(apiUrl: string = 'http://127.0.0.1:5001') {\n this.apiUrl = apiUrl;\n console.log(`📦 Local IPFS Storage initialized: ${apiUrl}`);\n }\n\n async put(data: Buffer | string, mime: string = 'application/json'): Promise<StorageResult> {\n try {\n const buffer = typeof data === 'string' ? Buffer.from(data) : data;\n\n // Use multipart/form-data to upload\n const form = new FormData();\n form.append('file', buffer, { contentType: mime });\n\n const response = await axios.post(`${this.apiUrl}/api/v0/add`, form, {\n headers: form.getHeaders(),\n maxBodyLength: Infinity,\n });\n\n const cid = response.data.Hash;\n console.log(`✅ Uploaded to local IPFS: ${cid}`);\n\n return {\n cid,\n url: `ipfs://${cid}`,\n size: response.data.Size,\n provider: 'local-ipfs',\n };\n } catch (e: any) {\n if (e.code === 'ECONNREFUSED') {\n throw new StorageError('Local IPFS daemon not running. Start with: ipfs daemon', {\n api_url: this.apiUrl,\n });\n }\n throw new StorageError(`Local IPFS upload failed: ${e.message}`);\n }\n }\n\n async get(cid: string): Promise<Buffer> {\n try {\n const response = await axios.post(`${this.apiUrl}/api/v0/cat`, null, {\n params: { arg: cid },\n responseType: 'arraybuffer',\n });\n\n return Buffer.from(response.data);\n } catch (e: any) {\n throw new StorageError(`Failed to retrieve from IPFS: ${e.message}`);\n }\n }\n\n async pin(cid: string): Promise<void> {\n try {\n await axios.post(`${this.apiUrl}/api/v0/pin/add`, null, {\n params: { arg: cid },\n });\n console.log(`📌 Pinned to local IPFS: ${cid}`);\n } catch (e: any) {\n throw new StorageError(`Failed to pin CID: ${e.message}`);\n }\n }\n\n async unpin(cid: string): Promise<void> {\n try {\n await axios.post(`${this.apiUrl}/api/v0/pin/rm`, null, {\n params: { arg: cid },\n });\n console.log(`📌 Unpinned from local IPFS: ${cid}`);\n } catch (e: any) {\n throw new StorageError(`Failed to unpin CID: ${e.message}`);\n }\n }\n}\n\n/**\n * Pinata Cloud IPFS Storage Backend\n *\n * Requires: Pinata API key\n * Cost: Free tier + paid plans\n * Setup: Get JWT from https://pinata.cloud\n */\nexport class PinataStorage implements StorageBackend {\n private jwtToken: string;\n private gatewayUrl: string;\n\n constructor(jwtToken: string, gatewayUrl: string = 'https://gateway.pinata.cloud') {\n this.jwtToken = jwtToken;\n this.gatewayUrl = gatewayUrl;\n console.log(`🌐 Pinata Storage initialized`);\n }\n\n async put(data: Buffer | string, mime: string = 'application/json'): Promise<StorageResult> {\n try {\n const buffer = typeof data === 'string' ? Buffer.from(data) : data;\n\n const form = new FormData();\n form.append('file', buffer, {\n contentType: mime,\n filename: `file_${Date.now()}`,\n });\n\n const response = await axios.post('https://api.pinata.cloud/pinning/pinFileToIPFS', form, {\n headers: {\n ...form.getHeaders(),\n Authorization: `Bearer ${this.jwtToken}`,\n },\n maxBodyLength: Infinity,\n });\n\n const cid = response.data.IpfsHash;\n console.log(`✅ Uploaded to Pinata: ${cid}`);\n\n return {\n cid,\n url: `${this.gatewayUrl}/ipfs/${cid}`,\n size: response.data.PinSize,\n provider: 'pinata',\n };\n } catch (e: any) {\n throw new StorageError(`Pinata upload failed: ${e.message}`);\n }\n }\n\n async get(cid: string): Promise<Buffer> {\n try {\n const response = await axios.get(`${this.gatewayUrl}/ipfs/${cid}`, {\n responseType: 'arraybuffer',\n });\n\n return Buffer.from(response.data);\n } catch (e: any) {\n throw new StorageError(`Failed to retrieve from Pinata: ${e.message}`);\n }\n }\n\n async pin(cid: string): Promise<void> {\n try {\n await axios.post(\n 'https://api.pinata.cloud/pinning/pinByHash',\n { hashToPin: cid },\n {\n headers: {\n Authorization: `Bearer ${this.jwtToken}`,\n 'Content-Type': 'application/json',\n },\n }\n );\n console.log(`📌 Pinned to Pinata: ${cid}`);\n } catch (e: any) {\n throw new StorageError(`Failed to pin to Pinata: ${e.message}`);\n }\n }\n\n async unpin(cid: string): Promise<void> {\n try {\n await axios.delete(`https://api.pinata.cloud/pinning/unpin/${cid}`, {\n headers: {\n Authorization: `Bearer ${this.jwtToken}`,\n },\n });\n console.log(`📌 Unpinned from Pinata: ${cid}`);\n } catch (e: any) {\n throw new StorageError(`Failed to unpin from Pinata: ${e.message}`);\n }\n }\n}\n\n/**\n * Irys (Arweave) Storage Backend\n *\n * Requires: Arweave wallet key\n * Cost: Pay per upload (permanent storage)\n * Setup: Fund wallet with AR tokens\n */\nexport class IrysStorage implements StorageBackend {\n private walletKey: string;\n\n constructor(walletKey: string) {\n this.walletKey = walletKey;\n console.log(`💎 Irys (Arweave) Storage initialized`);\n }\n\n /** Get wallet key (for future SDK integration) */\n getWalletKey(): string {\n return this.walletKey;\n }\n\n async put(_data: Buffer | string, _mime: string = 'application/json'): Promise<StorageResult> {\n try {\n // In production, use @irys/sdk\n // const Irys = require('@irys/sdk').default;\n // const irys = new Irys({ network: 'mainnet', token: 'ethereum', key: this.walletKey });\n // const receipt = await irys.upload(data, { tags: [{ name: 'Content-Type', value: mime }] });\n\n // For now, simulate\n const mockCid = `ar_${Date.now().toString(36)}_${Math.random().toString(36).substring(2, 15)}`;\n\n console.log(`✅ Uploaded to Irys: ${mockCid}`);\n\n return {\n cid: mockCid,\n url: `https://arweave.net/${mockCid}`,\n provider: 'irys',\n };\n } catch (e: any) {\n throw new StorageError(`Irys upload failed: ${e.message}`);\n }\n }\n\n async get(cid: string): Promise<Buffer> {\n try {\n const response = await axios.get(`https://arweave.net/${cid}`, {\n responseType: 'arraybuffer',\n });\n\n return Buffer.from(response.data);\n } catch (e: any) {\n throw new StorageError(`Failed to retrieve from Arweave: ${e.message}`);\n }\n }\n}\n\n/**\n * 0G Storage Backend\n *\n * Requires: 0G CLI running as sidecar\n * Cost: Gas fees on 0G Network\n * Setup: Install 0G CLI and start sidecar\n */\nexport class ZeroGStorage implements StorageBackend {\n private grpcUrl: string;\n private privateKey: string;\n\n constructor(privateKey: string, grpcUrl: string = 'localhost:50051') {\n this.privateKey = privateKey;\n this.grpcUrl = grpcUrl;\n console.log(`⚡ 0G Storage initialized: ${grpcUrl}`);\n }\n\n /** Get gRPC URL (for connection management) */\n getGrpcUrl(): string {\n return this.grpcUrl;\n }\n\n /** Get private key (for signing) */\n getPrivateKey(): string {\n return this.privateKey;\n }\n\n async put(_data: Buffer | string, _mime: string = 'application/json'): Promise<StorageResult> {\n try {\n // In production, call 0G Storage CLI via gRPC\n // For now, simulate\n const mockCid = `0g_${Date.now().toString(36)}_${Math.random().toString(36).substring(2, 15)}`;\n\n console.log(`✅ Uploaded to 0G Storage: ${mockCid}`);\n\n return {\n cid: mockCid,\n url: `0g://${mockCid}`,\n provider: '0g-storage',\n };\n } catch (e: any) {\n throw new StorageError(`0G Storage upload failed: ${e.message}`);\n }\n }\n\n async get(_cid: string): Promise<Buffer> {\n try {\n // In production, retrieve from 0G Storage via CLI\n // For now, throw error\n throw new StorageError('0G Storage retrieval not yet implemented');\n } catch (e: any) {\n throw new StorageError(`Failed to retrieve from 0G Storage: ${e.message}`);\n }\n }\n}\n\n/**\n * Auto-detecting Storage Manager\n *\n * Automatically selects the best available storage backend:\n * 1. Try local IPFS first (fastest, free)\n * 2. Fall back to Pinata if configured\n * 3. Fall back to Irys if configured\n * 4. Fall back to 0G Storage if configured\n */\nexport class AutoStorageManager implements StorageBackend {\n private backends: StorageBackend[] = [];\n private preferredBackend: StorageBackend | null = null;\n\n constructor() {\n this.detectAvailableBackends();\n }\n\n private detectAvailableBackends(): void {\n console.log('🔍 Auto-detecting available storage backends...');\n\n // Try local IPFS\n try {\n const localIpfs = new LocalIPFSStorage();\n this.backends.push(localIpfs);\n this.preferredBackend = localIpfs;\n console.log('✅ Local IPFS available');\n } catch (e) {\n console.log('❌ Local IPFS not available');\n }\n\n // Try Pinata\n const pinataJwt = process.env.PINATA_JWT;\n if (pinataJwt) {\n const pinata = new PinataStorage(pinataJwt);\n this.backends.push(pinata);\n if (!this.preferredBackend) this.preferredBackend = pinata;\n console.log('✅ Pinata available');\n }\n\n // Try Irys\n const irysKey = process.env.IRYS_WALLET_KEY;\n if (irysKey) {\n const irys = new IrysStorage(irysKey);\n this.backends.push(irys);\n if (!this.preferredBackend) this.preferredBackend = irys;\n console.log('✅ Irys available');\n }\n\n // Try 0G Storage\n const zerogKey = process.env.ZEROG_TESTNET_PRIVATE_KEY;\n if (zerogKey) {\n const zerog = new ZeroGStorage(zerogKey);\n this.backends.push(zerog);\n if (!this.preferredBackend) this.preferredBackend = zerog;\n console.log('✅ 0G Storage available');\n }\n\n if (this.backends.length === 0) {\n console.warn('⚠️ No storage backends available! Please configure at least one.');\n } else {\n console.log(`📦 ${this.backends.length} storage backend(s) available`);\n }\n }\n\n async put(data: Buffer | string, mime?: string): Promise<StorageResult> {\n if (!this.preferredBackend) {\n throw new StorageError('No storage backends available');\n }\n\n try {\n return await this.preferredBackend.put(data, mime);\n } catch (e) {\n // Try other backends\n for (const backend of this.backends) {\n if (backend !== this.preferredBackend) {\n try {\n console.log(`⚠️ Trying fallback storage backend...`);\n return await backend.put(data, mime);\n } catch (fallbackError) {\n continue;\n }\n }\n }\n\n throw new StorageError(`All storage backends failed: ${e}`);\n }\n }\n\n async get(cid: string): Promise<Buffer> {\n if (!this.preferredBackend) {\n throw new StorageError('No storage backends available');\n }\n\n return await this.preferredBackend.get(cid);\n }\n\n getAvailableBackends(): string[] {\n return this.backends.map((backend) => backend.constructor.name);\n }\n}\n","import { WalletManager } from './WalletManager';\n\ntype MandateCoreModule = {\n Mandate: new (data: Record<string, unknown>) => any;\n DEFAULT_BASE?: string;\n buildCore?: (kind: string, payload: Record<string, unknown>, baseUrl?: string) => Record<string, unknown>;\n newMandateId?: () => string;\n};\n\nfunction loadMandatesCore(): MandateCoreModule {\n try {\n // eslint-disable-next-line @typescript-eslint/no-var-requires\n const mod = require('mandates-core');\n const primitives = mod.primitives || mod.default?.primitives || {};\n const utils = mod.utils || mod.default?.utils || {};\n\n const Mandate = mod.Mandate || mod.default?.Mandate || mod;\n const DEFAULT_BASE = primitives.DEFAULT_BASE || mod.DEFAULT_BASE || mod.default?.DEFAULT_BASE;\n const buildCore =\n primitives.build_core ||\n primitives.buildCore ||\n mod.build_core ||\n mod.buildCore ||\n mod.default?.build_core ||\n mod.default?.buildCore;\n const newMandateId =\n utils.new_mandate_id ||\n utils.newMandateId ||\n mod.new_mandate_id ||\n mod.newMandateId ||\n mod.default?.new_mandate_id ||\n mod.default?.newMandateId;\n\n if (!Mandate || !buildCore || !newMandateId) {\n throw new Error('mandates-core exports missing (Mandate/buildCore/newMandateId)');\n }\n\n return {\n Mandate,\n DEFAULT_BASE,\n buildCore,\n newMandateId,\n };\n } catch (error) {\n throw new Error('mandates-core is not installed. Install with: npm i mandates-core');\n }\n}\n\nexport class MandateManager {\n private readonly agentName: string;\n private readonly walletManager: WalletManager;\n private readonly agentCaip10: string;\n private readonly chainId: number;\n private readonly mandatesCore: MandateCoreModule;\n\n constructor(agentName: string, walletManager: WalletManager, chainId: number) {\n this.agentName = agentName;\n this.walletManager = walletManager;\n this.chainId = chainId;\n this.agentCaip10 = this.toCaip10(this.walletManager.getAddress());\n this.mandatesCore = loadMandatesCore();\n console.log(`📜 mandates-core ready (deterministic mandates) for ${this.agentName}`);\n }\n\n get agent_caip10(): string {\n return this.agentCaip10;\n }\n\n get chain_id(): number {\n return this.chainId;\n }\n\n private toCaip10(identifier: string): string {\n if (identifier.startsWith('eip155:')) {\n return identifier;\n }\n return `eip155:${this.chainId}:${identifier}`;\n }\n\n buildCore(kind: string, payload: Record<string, unknown>, baseUrl?: string): Record<string, unknown> {\n return this.mandatesCore.buildCore!(\n kind,\n payload,\n baseUrl || this.mandatesCore.DEFAULT_BASE\n );\n }\n\n createMandate(params: {\n intent: string;\n core: Record<string, unknown>;\n deadline: string;\n client: string;\n server?: string;\n version?: string;\n mandateId?: string;\n createdAt?: string;\n }): any {\n const {\n intent,\n core,\n deadline,\n client,\n server,\n version = '0.1.0',\n mandateId,\n createdAt,\n } = params;\n\n const clientCaip = this.toCaip10(client);\n const serverCaip = this.toCaip10(server || this.walletManager.getAddress());\n\n const Mandate = this.mandatesCore.Mandate;\n return new Mandate({\n mandateId: mandateId || this.mandatesCore.newMandateId!(),\n version,\n client: clientCaip,\n server: serverCaip,\n createdAt: createdAt || new Date().toISOString(),\n deadline,\n intent,\n core,\n });\n }\n\n mandateFromDict(data: any): any {\n const Mandate = this.mandatesCore.Mandate;\n if (data instanceof Mandate) {\n return data;\n }\n return new Mandate(data);\n }\n\n signAsServer(mandate: any, privateKey?: string): any {\n const mandateObj = this.mandateFromDict(mandate);\n const keyToUse = privateKey || this.walletManager.getPrivateKey();\n const signer = mandateObj.sign_as_server || mandateObj.signAsServer;\n const signature = signer.call(mandateObj, keyToUse);\n\n if (typeof mandate === 'object' && mandate !== null && !('signatures' in mandate)) {\n mandate.signatures = mandateObj.signatures;\n }\n return signature?.to_dict ? signature.to_dict() : signature;\n }\n\n signAsClient(mandate: any, privateKey: string): any {\n const mandateObj = this.mandateFromDict(mandate);\n const signer = mandateObj.sign_as_client || mandateObj.signAsClient;\n const signature = signer.call(mandateObj, privateKey);\n\n if (typeof mandate === 'object' && mandate !== null && !('signatures' in mandate)) {\n mandate.signatures = mandateObj.signatures;\n }\n return signature?.to_dict ? signature.to_dict() : signature;\n }\n\n verify(mandate: any): {\n client_ok: boolean;\n server_ok: boolean;\n all_ok: boolean;\n mandate_hash: string;\n } {\n const mandateObj = this.mandateFromDict(mandate);\n const verifyServer = mandateObj.verify_server || mandateObj.verifyServer;\n const verifyClient = mandateObj.verify_client || mandateObj.verifyClient;\n const computeHash = mandateObj.compute_mandate_hash || mandateObj.computeMandateHash;\n\n const serverOk = !!verifyServer.call(mandateObj);\n const clientOk = !!verifyClient.call(mandateObj);\n const mandateHash = computeHash.call(mandateObj);\n\n return {\n client_ok: clientOk,\n server_ok: serverOk,\n all_ok: clientOk && serverOk,\n mandate_hash: mandateHash,\n };\n }\n}\n","/**\n * Network configurations for supported chains\n */\n\nimport { NetworkConfig, NetworkInfo, ContractAddresses } from '../types';\n\n/**\n * ERC-8004 v1.0 contract addresses (pre-deployed)\n */\nexport const ERC8004_ADDRESSES: Record<string, ContractAddresses> = {\n 'ethereum-mainnet': {\n identity: '0x8004A169FB4a3325136EB29fA0ceB6D2e539a432',\n reputation: '0x8004BAa17C55a88189AE136b182e5fdA19dE9b63',\n validation: '0x0000000000000000000000000000000000000000',\n },\n // Official ERC-8004 Registries (Feb 2026 spec)\n 'ethereum-sepolia': {\n identity: '0x8004A818BFB912233c491871b3d84c89A494BD9e',\n reputation: '0x8004B663056A597Dffe9eCcC1965A193B7388713',\n validation: '0x8004CB39f29c09145F24Ad9dDe2A108C1A2cdfC5',\n },\n 'base-mainnet': {\n identity: '0x8004A169FB4a3325136EB29fA0ceB6D2e539a432',\n reputation: '0x8004BAa17C55a88189AE136b182e5fdA19dE9b63',\n validation: '0x0000000000000000000000000000000000000000',\n },\n 'polygon-mainnet': {\n identity: '0x8004A169FB4a3325136EB29fA0ceB6D2e539a432',\n reputation: '0x8004BAa17C55a88189AE136b182e5fdA19dE9b63',\n validation: '0x0000000000000000000000000000000000000000',\n },\n 'polygon-amoy': {\n identity: '0x8004A818BFB912233c491871b3d84c89A494BD9e',\n reputation: '0x8004B663056A597Dffe9eCcC1965A193B7388713',\n validation: '0x0000000000000000000000000000000000000000',\n },\n 'arbitrum-mainnet': {\n identity: '0x8004A169FB4a3325136EB29fA0ceB6D2e539a432',\n reputation: '0x8004BAa17C55a88189AE136b182e5fdA19dE9b63',\n validation: '0x0000000000000000000000000000000000000000',\n },\n 'arbitrum-testnet': {\n identity: '0x8004A818BFB912233c491871b3d84c89A494BD9e',\n reputation: '0x8004B663056A597Dffe9eCcC1965A193B7388713',\n validation: '0x0000000000000000000000000000000000000000',\n },\n 'celo-mainnet': {\n identity: '0x8004A169FB4a3325136EB29fA0ceB6D2e539a432',\n reputation: '0x8004BAa17C55a88189AE136b182e5fdA19dE9b63',\n validation: '0x0000000000000000000000000000000000000000',\n },\n 'celo-testnet': {\n identity: '0x8004A818BFB912233c491871b3d84c89A494BD9e',\n reputation: '0x8004B663056A597Dffe9eCcC1965A193B7388713',\n validation: '0x0000000000000000000000000000000000000000',\n },\n 'gnosis-mainnet': {\n identity: '0x8004A169FB4a3325136EB29fA0ceB6D2e539a432',\n reputation: '0x8004BAa17C55a88189AE136b182e5fdA19dE9b63',\n validation: '0x0000000000000000000000000000000000000000',\n },\n 'scroll-mainnet': {\n identity: '0x8004A169FB4a3325136EB29fA0ceB6D2e539a432',\n reputation: '0x8004BAa17C55a88189AE136b182e5fdA19dE9b63',\n validation: '0x0000000000000000000000000000000000000000',\n },\n 'scroll-testnet': {\n identity: '0x8004A818BFB912233c491871b3d84c89A494BD9e',\n reputation: '0x8004B663056A597Dffe9eCcC1965A193B7388713',\n validation: '0x0000000000000000000000000000000000000000',\n },\n 'taiko-mainnet': {\n identity: '0x8004A169FB4a3325136EB29fA0ceB6D2e539a432',\n reputation: '0x8004BAa17C55a88189AE136b182e5fdA19dE9b63',\n validation: '0x0000000000000000000000000000000000000000',\n },\n 'monad-mainnet': {\n identity: '0x8004A169FB4a3325136EB29fA0ceB6D2e539a432',\n reputation: '0x8004BAa17C55a88189AE136b182e5fdA19dE9b63',\n validation: '0x0000000000000000000000000000000000000000',\n },\n 'monad-testnet': {\n identity: '0x8004A818BFB912233c491871b3d84c89A494BD9e',\n reputation: '0x8004B663056A597Dffe9eCcC1965A193B7388713',\n validation: '0x0000000000000000000000000000000000000000',\n },\n 'optimism-sepolia': {\n identity: '0x0000000000000000000000000000000000000000',\n reputation: '0x0000000000000000000000000000000000000000',\n validation: '0x0000000000000000000000000000000000000000',\n },\n 'base-sepolia': {\n identity: '0x8004A818BFB912233c491871b3d84c89A494BD9e',\n reputation: '0x8004B663056A597Dffe9eCcC1965A193B7388713',\n validation: '0x0000000000000000000000000000000000000000',\n },\n 'mode-testnet': {\n identity: '0x0000000000000000000000000000000000000000',\n reputation: '0x0000000000000000000000000000000000000000',\n validation: '0x0000000000000000000000000000000000000000',\n },\n 'linea-sepolia': {\n identity: '0x8004aa7C931bCE1233973a0C6A667f73F66282e7',\n reputation: '0x8004bd8483b99310df121c46ED8858616b2Bba02',\n validation: '0x8004c44d1EFdd699B2A26e781eF7F77c56A9a4EB',\n },\n 'hedera-testnet': {\n identity: '0x4c74ebd72921d537159ed2053f46c12a7d8e5923',\n reputation: '0xc565edcba77e3abeade40bfd6cf6bf583b3293e0',\n validation: '0x18df085d85c586e9241e0cd121ca422f571c2da6',\n },\n '0g-testnet': {\n identity: '0x80043ed9cf33a3472768dcd53175bb44e03a1e4a',\n reputation: '0x80045d7b72c47bf5ff73737b780cb1a5ba8ee202',\n validation: '0x80041728e0aadf1d1427f9be18d52b7f3afefafb',\n },\n 'bsc-mainnet': {\n identity: '0x8004A169FB4a3325136EB29fA0ceB6D2e539a432',\n reputation: '0x8004BAa17C55a88189AE136b182e5fdA19dE9b63',\n validation: '0x0000000000000000000000000000000000000000',\n },\n 'bsc-testnet': {\n identity: '0x8004A818BFB912233c491871b3d84c89A494BD9e',\n reputation: '0x8004B663056A597Dffe9eCcC1965A193B7388713',\n validation: '0x0000000000000000000000000000000000000000',\n },\n};\n\n/**\n * Network information and RPC endpoints\n */\nexport const NETWORK_INFO: Record<string, NetworkInfo> = {\n 'ethereum-mainnet': {\n chainId: 1,\n name: 'Ethereum Mainnet',\n rpcUrl: process.env.ETH_MAINNET_RPC_URL || 'https://ethereum-rpc.publicnode.com',\n contracts: ERC8004_ADDRESSES['ethereum-mainnet'],\n nativeCurrency: {\n name: 'Ether',\n symbol: 'ETH',\n decimals: 18,\n },\n },\n 'ethereum-sepolia': {\n chainId: 11155111,\n name: 'Ethereum Sepolia Testnet',\n rpcUrl: process.env.ETHEREUM_SEPOLIA_RPC_URL || 'https://rpc.sepolia.org',\n contracts: ERC8004_ADDRESSES['ethereum-sepolia'],\n nativeCurrency: {\n name: 'Sepolia ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n },\n 'base-mainnet': {\n chainId: 8453,\n name: 'Base Mainnet',\n rpcUrl: process.env.BASE_MAINNET_RPC_URL || 'https://mainnet.base.org',\n contracts: ERC8004_ADDRESSES['base-mainnet'],\n nativeCurrency: {\n name: 'Ether',\n symbol: 'ETH',\n decimals: 18,\n },\n },\n 'polygon-mainnet': {\n chainId: 137,\n name: 'Polygon Mainnet',\n rpcUrl: process.env.POLYGON_MAINNET_RPC_URL || 'https://polygon-rpc.com',\n contracts: ERC8004_ADDRESSES['polygon-mainnet'],\n nativeCurrency: {\n name: 'MATIC',\n symbol: 'MATIC',\n decimals: 18,\n },\n },\n 'polygon-amoy': {\n chainId: 80002,\n name: 'Polygon Amoy Testnet',\n rpcUrl: process.env.POLYGON_AMOY_RPC_URL || 'https://rpc-amoy.polygon.technology',\n contracts: ERC8004_ADDRESSES['polygon-amoy'],\n nativeCurrency: {\n name: 'MATIC',\n symbol: 'MATIC',\n decimals: 18,\n },\n },\n 'arbitrum-mainnet': {\n chainId: 42161,\n name: 'Arbitrum One',\n rpcUrl: process.env.ARBITRUM_MAINNET_RPC_URL || 'https://arb1.arbitrum.io/rpc',\n contracts: ERC8004_ADDRESSES['arbitrum-mainnet'],\n nativeCurrency: {\n name: 'Ether',\n symbol: 'ETH',\n decimals: 18,\n },\n },\n 'arbitrum-testnet': {\n chainId: 421614,\n name: 'Arbitrum Sepolia Testnet',\n rpcUrl: process.env.ARBITRUM_TESTNET_RPC_URL || 'https://sepolia-rollup.arbitrum.io/rpc',\n contracts: ERC8004_ADDRESSES['arbitrum-testnet'],\n nativeCurrency: {\n name: 'Sepolia ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n },\n 'celo-mainnet': {\n chainId: 42220,\n name: 'Celo Mainnet',\n rpcUrl: process.env.CELO_MAINNET_RPC_URL || 'https://forno.celo.org',\n contracts: ERC8004_ADDRESSES['celo-mainnet'],\n nativeCurrency: {\n name: 'CELO',\n symbol: 'CELO',\n decimals: 18,\n },\n },\n 'celo-testnet': {\n chainId: 44787,\n name: 'Celo Alfajores Testnet',\n rpcUrl: process.env.CELO_TESTNET_RPC_URL || 'https://alfajores-forno.celo.org',\n contracts: ERC8004_ADDRESSES['celo-testnet'],\n nativeCurrency: {\n name: 'CELO',\n symbol: 'CELO',\n decimals: 18,\n },\n },\n 'gnosis-mainnet': {\n chainId: 100,\n name: 'Gnosis Chain',\n rpcUrl: process.env.GNOSIS_MAINNET_RPC_URL || 'https://rpc.gnosischain.com',\n contracts: ERC8004_ADDRESSES['gnosis-mainnet'],\n nativeCurrency: {\n name: 'xDAI',\n symbol: 'xDAI',\n decimals: 18,\n },\n },\n 'scroll-mainnet': {\n chainId: 534352,\n name: 'Scroll Mainnet',\n rpcUrl: process.env.SCROLL_MAINNET_RPC_URL || 'https://rpc.scroll.io',\n contracts: ERC8004_ADDRESSES['scroll-mainnet'],\n nativeCurrency: {\n name: 'Ether',\n symbol: 'ETH',\n decimals: 18,\n },\n },\n 'scroll-testnet': {\n chainId: 534351,\n name: 'Scroll Sepolia Testnet',\n rpcUrl: process.env.SCROLL_TESTNET_RPC_URL || 'https://sepolia-rpc.scroll.io',\n contracts: ERC8004_ADDRESSES['scroll-testnet'],\n nativeCurrency: {\n name: 'Sepolia ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n },\n 'taiko-mainnet': {\n chainId: 167000,\n name: 'Taiko Mainnet',\n rpcUrl: process.env.TAIKO_MAINNET_RPC_URL || 'https://rpc.mainnet.taiko.xyz',\n contracts: ERC8004_ADDRESSES['taiko-mainnet'],\n nativeCurrency: {\n name: 'Ether',\n symbol: 'ETH',\n decimals: 18,\n },\n },\n 'monad-mainnet': {\n chainId: Number(process.env.MONAD_MAINNET_CHAIN_ID),\n name: 'Monad Mainnet',\n rpcUrl: process.env.MONAD_MAINNET_RPC_URL || '',\n contracts: ERC8004_ADDRESSES['monad-mainnet'],\n nativeCurrency: {\n name: 'MON',\n symbol: 'MON',\n decimals: 18,\n },\n },\n 'monad-testnet': {\n chainId: Number(process.env.MONAD_TESTNET_CHAIN_ID),\n name: 'Monad Testnet',\n rpcUrl: process.env.MONAD_TESTNET_RPC_URL || '',\n contracts: ERC8004_ADDRESSES['monad-testnet'],\n nativeCurrency: {\n name: 'MON',\n symbol: 'MON',\n decimals: 18,\n },\n },\n 'optimism-sepolia': {\n chainId: 11155420,\n name: 'Optimism Sepolia Testnet',\n rpcUrl: process.env.OPTIMISM_SEPOLIA_RPC_URL || 'https://sepolia.optimism.io',\n contracts: ERC8004_ADDRESSES['optimism-sepolia'],\n nativeCurrency: {\n name: 'Sepolia ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n },\n 'base-sepolia': {\n chainId: 84532,\n name: 'Base Sepolia Testnet',\n rpcUrl: process.env.BASE_SEPOLIA_RPC_URL || 'https://sepolia.base.org',\n contracts: ERC8004_ADDRESSES['base-sepolia'],\n nativeCurrency: {\n name: 'Sepolia ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n },\n 'mode-testnet': {\n chainId: 919,\n name: 'Mode Sepolia Testnet',\n rpcUrl: process.env.MODE_TESTNET_RPC_URL || 'https://sepolia.mode.network',\n contracts: ERC8004_ADDRESSES['mode-testnet'],\n nativeCurrency: {\n name: 'Sepolia ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n },\n 'linea-sepolia': {\n chainId: 59141,\n name: 'Linea Sepolia Testnet',\n rpcUrl: process.env.LINEA_SEPOLIA_RPC_URL || 'https://rpc.sepolia.linea.build',\n contracts: ERC8004_ADDRESSES['linea-sepolia'],\n nativeCurrency: {\n name: 'Linea ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n },\n 'hedera-testnet': {\n chainId: 296,\n name: 'Hedera Testnet',\n rpcUrl: process.env.HEDERA_TESTNET_RPC_URL || 'https://testnet.hashio.io/api',\n contracts: ERC8004_ADDRESSES['hedera-testnet'],\n nativeCurrency: {\n name: 'HBAR',\n symbol: 'HBAR',\n decimals: 18,\n },\n },\n '0g-testnet': {\n chainId: 16602, // Updated to match Python SDK (was 16600)\n name: '0G Network Testnet',\n rpcUrl: process.env.ZEROG_TESTNET_RPC_URL || 'https://evmrpc-testnet.0g.ai',\n contracts: ERC8004_ADDRESSES['0g-testnet'],\n nativeCurrency: {\n name: 'A0GI',\n symbol: 'A0GI',\n decimals: 18,\n },\n },\n 'bsc-testnet': {\n chainId: 97,\n name: 'BSC Testnet (Chapel)',\n rpcUrl: process.env.BSC_TESTNET_RPC_URL || 'https://data-seed-prebsc-1-s1.binance.org:8545',\n contracts: ERC8004_ADDRESSES['bsc-testnet'],\n nativeCurrency: {\n name: 'Binance Coin',\n symbol: 'BNB',\n decimals: 18,\n },\n },\n 'bsc-mainnet': {\n chainId: 56,\n name: 'BSC Mainnet',\n rpcUrl: process.env.BSC_MAINNET_RPC_URL || 'https://bsc-dataseed.binance.org',\n contracts: ERC8004_ADDRESSES['bsc-mainnet'],\n nativeCurrency: {\n name: 'Binance Coin',\n symbol: 'BNB',\n decimals: 18,\n },\n },\n local: {\n chainId: 31337,\n name: 'Local Network',\n rpcUrl: process.env.LOCAL_RPC_URL || 'http://localhost:8545',\n contracts: {\n identity: '0x5FbDB2315678afecb367f032d93F642f64180aa3',\n reputation: '0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512',\n validation: '0x9fE46736679d2D9a65F0992F2272dE9f3c7fa6e0',\n },\n nativeCurrency: {\n name: 'ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n },\n};\n\n/**\n * Get network info by name\n */\nexport function getNetworkInfo(network: NetworkConfig | string): NetworkInfo {\n const networkKey = network as string;\n const info = NETWORK_INFO[networkKey];\n\n if (!info) {\n throw new Error(`Unsupported network: ${networkKey}`);\n }\n\n return info;\n}\n\n/**\n * Get contract addresses for a network\n */\nexport function getContractAddresses(network: NetworkConfig | string): ContractAddresses {\n return getNetworkInfo(network).contracts;\n}\n\n/**\n * Check if network is supported\n */\nexport function isNetworkSupported(network: string): boolean {\n return network in NETWORK_INFO;\n}\n\n/**\n * Get all supported networks\n */\nexport function getSupportedNetworks(): string[] {\n return Object.keys(NETWORK_INFO);\n}\n","import axios, { AxiosError } from 'axios';\nimport {\n WorkflowType,\n WorkflowState,\n WorkflowStatus,\n WorkflowProgress,\n WorkflowError as WorkflowErrorType,\n GatewayClientConfig,\n GatewayHealthResponse,\n GatewayWorkflowResponse,\n GatewayListWorkflowsResponse,\n GatewayWorkSubmissionRequest,\n GatewayScoreSubmissionRequest,\n GatewayCloseEpochRequest,\n GatewayAuthConfig,\n GatewayErrorCategory,\n GatewayErrorInfo,\n GatewayRetryConfig,\n ScoreSubmissionMode,\n PendingWorkResponse,\n WorkEvidenceResponse,\n} from './types';\nimport {\n GatewayError,\n GatewayConnectionError,\n GatewayTimeoutError,\n WorkflowFailedError,\n} from './exceptions';\n\nexport class GatewayClient {\n private gatewayUrl: string;\n private timeout: number;\n private maxPollTime: number;\n private pollInterval: number;\n private defaultHeaders?: Record<string, string>;\n private auth?: GatewayAuthConfig;\n private retryConfig?: GatewayRetryConfig;\n\n constructor(config: GatewayClientConfig) {\n const rawBaseUrl = config.baseUrl ?? config.gatewayUrl ?? 'https://gateway.chaoscha.in';\n let parsed: URL;\n try {\n parsed = new URL(rawBaseUrl);\n } catch {\n throw new Error(\n `Invalid gateway baseUrl \"${rawBaseUrl}\". Provide a valid absolute URL, e.g. https://gateway.chaoscha.in`\n );\n }\n if (!['http:', 'https:'].includes(parsed.protocol)) {\n throw new Error(\n `Invalid gateway baseUrl protocol \"${parsed.protocol}\". Only http/https are supported.`\n );\n }\n this.gatewayUrl = parsed.toString().replace(/\\/$/, ''); // Remove trailing slash\n this.timeout = this._resolveTimeout(\n config.timeoutMs,\n config.timeoutSeconds,\n config.timeout,\n 30000\n ); // Default timeout 30s\n this.maxPollTime = this._resolveTimeout(\n config.maxPollTimeMs,\n config.maxPollTimeSeconds,\n config.maxPollTime,\n 600000\n ); // Default max poll time 10min\n this.pollInterval = this._resolveTimeout(\n config.pollIntervalMs,\n config.pollIntervalSeconds,\n config.pollInterval,\n 2000\n ); // Default poll interval 2s\n this.defaultHeaders = config.headers;\n this.auth = config.auth;\n this.retryConfig = config.retry;\n }\n\n // ===========================================================================\n // Private: HTTP Request\n // ===========================================================================\n\n // Resolve timeout with explicit ms taking precedence, then seconds, then legacy ms.\n private _resolveTimeout(\n timeoutMs?: number,\n timeoutSeconds?: number,\n legacyTimeoutMs?: number,\n defaultMs?: number\n ): number {\n if (typeof timeoutMs === 'number') return timeoutMs;\n if (typeof timeoutSeconds === 'number') return timeoutSeconds * 1000;\n if (typeof legacyTimeoutMs === 'number') return legacyTimeoutMs;\n return defaultMs ?? 0;\n }\n\n private _resolveAuthMode(): GatewayAuthConfig['authMode'] | undefined {\n if (!this.auth) return undefined;\n if (this.auth.authMode) return this.auth.authMode;\n if (this.auth.apiKey) return 'apiKey';\n if (this.auth.signature) return 'signature';\n return undefined;\n }\n\n private _buildHeaders(): Record<string, string> {\n const headers: Record<string, string> = {\n 'Content-Type': 'application/json',\n };\n\n if (this.defaultHeaders) {\n Object.assign(headers, this.defaultHeaders);\n }\n\n const authMode = this._resolveAuthMode();\n if (authMode === 'apiKey' && this.auth?.apiKey) {\n headers['X-API-Key'] = this.auth.apiKey;\n }\n\n // Signature auth expects caller-provided signature and optional timestamp.\n if (authMode === 'signature' && this.auth?.signature) {\n const timestamp = this.auth.signature.timestamp ?? Date.now();\n headers['X-Signature'] = this.auth.signature.signature;\n headers['X-Timestamp'] = `${timestamp}`;\n headers['X-Address'] = this.auth.signature.address;\n }\n\n if (!headers['Content-Type']) {\n headers['Content-Type'] = 'application/json';\n }\n\n return headers;\n }\n\n private _classifyStatusCode(statusCode?: number): GatewayErrorInfo {\n if (statusCode === 401 || statusCode === 403) {\n return { statusCode, category: 'auth', retryable: false };\n }\n\n if (statusCode === 408 || statusCode === 429 || (statusCode !== undefined && statusCode >= 500)) {\n return { statusCode, category: 'transient', retryable: true };\n }\n\n if (statusCode !== undefined && statusCode >= 400) {\n return { statusCode, category: 'permanent', retryable: false };\n }\n\n return { statusCode, category: 'unknown', retryable: false };\n }\n\n private _normalizeError(error: AxiosError): GatewayError {\n if (error.code === 'ECONNREFUSED' || error.code === 'ENOTFOUND') {\n const connectionError = new GatewayConnectionError(\n `Failed to connect to Gateway at ${this.gatewayUrl}`\n );\n connectionError.details.category = 'transient';\n connectionError.details.retryable = true;\n (connectionError as any).category = 'transient' as GatewayErrorCategory;\n (connectionError as any).retryable = true;\n return connectionError;\n }\n\n if (error.code === 'ETIMEDOUT' || error.code === 'ECONNABORTED') {\n const timeoutError = new GatewayTimeoutError(\n 'timeout',\n `request to Gateway timed out: ${error.message}`\n );\n timeoutError.details.category = 'transient';\n timeoutError.details.retryable = true;\n (timeoutError as any).category = 'transient' as GatewayErrorCategory;\n (timeoutError as any).retryable = true;\n return timeoutError;\n }\n\n if (error.response) {\n const data = error.response.data as Record<string, any>;\n const message = data?.error || data?.message || 'Unknown error from Gateway';\n const classification = this._classifyStatusCode(error.response.status);\n return new GatewayError(`Gateway returned error: ${message}`, {\n statusCode: error.response.status,\n response: data,\n category: classification.category,\n retryable: classification.retryable,\n });\n }\n\n const classification = this._classifyStatusCode(undefined);\n return new GatewayError(`Gateway request failed: ${error.message}`, {\n category: classification.category,\n retryable: classification.retryable,\n });\n }\n\n private _getRetryDelayMs(attempt: number): number {\n const initialDelayMs = this.retryConfig?.initialDelayMs ?? 500;\n const backoffFactor = this.retryConfig?.backoffFactor ?? 2;\n const maxDelayMs = this.retryConfig?.maxDelayMs ?? 8000;\n const jitterEnabled = this.retryConfig?.jitter ?? true;\n const jitterRatio = this.retryConfig?.jitterRatio ?? 0.2;\n\n let delay = Math.min(maxDelayMs, initialDelayMs * Math.pow(backoffFactor, attempt));\n if (jitterEnabled) {\n const delta = delay * jitterRatio;\n delay = delay + (Math.random() * 2 - 1) * delta;\n delay = Math.max(0, delay);\n }\n return Math.round(delay);\n }\n\n private async _sleep(durationMs: number): Promise<void> {\n await new Promise((resolve) => setTimeout(resolve, durationMs));\n }\n\n /**\n * Make HTTP request to Gateway.\n * Handles errors and transforms them to Gateway exceptions.\n */\n private async _request<T>(\n method: 'GET' | 'POST',\n path: string,\n data?: Record<string, any>\n ): Promise<T> {\n const url = `${this.gatewayUrl}${path}`;\n // Retries are disabled by default; only enabled retries for transient errors.\n const maxRetries = this.retryConfig?.maxRetries ?? 3;\n const retriesEnabled = this.retryConfig?.enabled === true;\n let attempt = 0;\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n try {\n const response = await axios({\n method,\n url,\n data,\n timeout: this.timeout,\n headers: this._buildHeaders(),\n });\n\n return response.data as T;\n } catch (error) {\n const normalizedError = this._normalizeError(error as AxiosError);\n const category = (normalizedError as any).category as GatewayErrorCategory | undefined;\n const retryable = (normalizedError as any).retryable as boolean | undefined;\n const shouldRetry =\n retriesEnabled === true &&\n category === 'transient' &&\n retryable === true &&\n attempt < maxRetries;\n\n if (!shouldRetry) {\n throw normalizedError;\n }\n\n const delay = this._getRetryDelayMs(attempt);\n attempt += 1;\n await this._sleep(delay);\n }\n }\n }\n\n /**\n * Parse workflow status from API response.\n */\n private _parseWorkflowStatus(data: GatewayWorkflowResponse): WorkflowStatus {\n const progress: WorkflowProgress = {\n arweaveTxId: data.progress?.arweave_tx_id,\n arweaveConfirmed: data.progress?.arweave_confirmed,\n onchainTxHash: data.progress?.onchain_tx_hash,\n onchainConfirmed: data.progress?.onchain_confirmed,\n onchainBlock: data.progress?.onchain_block,\n scoreTxHash: data.progress?.score_tx_hash,\n commitTxHash: data.progress?.commit_tx_hash,\n revealTxHash: data.progress?.reveal_tx_hash,\n };\n\n const error: WorkflowErrorType | undefined = data.error\n ? {\n step: data.error.step || '',\n message: data.error.message || '',\n code: data.error.code,\n }\n : undefined;\n\n return {\n workflowId: data.id,\n workflowType: data.type as WorkflowType,\n state: data.state as WorkflowState,\n step: data.step,\n createdAt: data.created_at,\n updatedAt: data.updated_at,\n progress,\n error,\n };\n }\n\n // ===========================================================================\n // Health Check\n // ===========================================================================\n\n async healthCheck(): Promise<GatewayHealthResponse> {\n return this._request<GatewayHealthResponse>('GET', '/health');\n }\n\n async isHealthy(): Promise<boolean> {\n try {\n const result = await this.healthCheck();\n return result.status === 'ok';\n } catch (error) {\n return false;\n }\n }\n\n // ===========================================================================\n // Workflow Submission\n // ===========================================================================\n\n /**\n * Create a work submission workflow.\n * POST /workflows/work-submission\n *\n * SDK prepares inputs; Gateway handles:\n * - Evidence upload to Arweave\n * - Transaction submission\n * - Confirmation waiting\n *\n * @param studioAddress - Ethereum address of the studio\n * @param epoch - Epoch number\n * @param agentAddress - Ethereum address of the submitting agent\n * @param dataHash - Bytes32 hash of the work (as hex string)\n * @param threadRoot - Bytes32 DKG thread root (as hex string)\n * @param evidenceRoot - Bytes32 evidence Merkle root (as hex string)\n * @param evidenceContent - Raw evidence bytes (will be base64 encoded)\n * @param signerAddress - Ethereum address of the signer (must be registered in Gateway)\n * @returns WorkflowStatus - Initial status of the created workflow\n */\n async submitWork(\n studioAddress: string,\n epoch: number,\n agentAddress: string,\n dataHash: string,\n threadRoot: string,\n evidenceRoot: string,\n evidenceContent: Buffer | string,\n signerAddress: string\n ): Promise<WorkflowStatus> {\n const evidenceContentBase64 = Buffer.isBuffer(evidenceContent)\n ? evidenceContent.toString('base64')\n : Buffer.from(evidenceContent, 'utf-8').toString('base64');\n\n const payload: GatewayWorkSubmissionRequest = {\n studio_address: studioAddress,\n epoch,\n agent_address: agentAddress,\n data_hash: dataHash,\n thread_root: threadRoot,\n evidence_root: evidenceRoot,\n evidence_content: evidenceContentBase64,\n signer_address: signerAddress,\n };\n\n const result = await this._request<GatewayWorkflowResponse>(\n 'POST',\n '/workflows/work-submission',\n payload\n );\n return this._parseWorkflowStatus(result);\n }\n\n /**\n * Create a score submission workflow.\n * POST /workflows/score-submission\n *\n * Supports two modes:\n * - DIRECT (default): Simple direct scoring, requires workerAddress\n * - COMMIT_REVEAL: Commit-reveal pattern, requires salt\n *\n * @param studioAddress - Ethereum address of the studio\n * @param epoch - Epoch number\n * @param validatorAddress - Ethereum address of the validator\n * @param dataHash - Bytes32 hash of the work being scored (as hex string)\n * @param scores - Array of dimension scores (0-10000 basis points)\n * @param signerAddress - Ethereum address of the signer\n * @param options - Additional options (workerAddress, salt, mode)\n */\n async submitScore(\n studioAddress: string,\n epoch: number,\n validatorAddress: string,\n dataHash: string,\n scores: number[],\n signerAddress: string,\n options?: {\n workerAddress?: string;\n salt?: string;\n mode?: ScoreSubmissionMode;\n }\n ): Promise<WorkflowStatus> {\n const mode = options?.mode ?? ScoreSubmissionMode.DIRECT;\n\n if (mode === ScoreSubmissionMode.DIRECT && !options?.workerAddress) {\n throw new Error('workerAddress is required for DIRECT score scoring mode');\n }\n\n if (mode === ScoreSubmissionMode.COMMIT_REVEAL && !options?.salt) {\n throw new Error('salt is required for COMMIT_REVEAL score scoring mode');\n }\n\n const payload: GatewayScoreSubmissionRequest = {\n studio_address: studioAddress,\n epoch: epoch,\n validator_address: validatorAddress,\n data_hash: dataHash,\n scores,\n signer_address: signerAddress,\n mode: mode,\n salt: options?.salt ?? '0x' + '0'.repeat(64),\n };\n\n if (options?.workerAddress) {\n payload.worker_address = options.workerAddress;\n }\n\n // Gateway requires salt field (event if unused in direct mode)\n const result = await this._request<GatewayWorkflowResponse>(\n 'POST',\n '/workflows/score-submission',\n payload\n );\n return this._parseWorkflowStatus(result);\n }\n\n /**\n * Create a close epoch workflow.\n * POST /workflows/close-epoch\n *\n * This is economically final — cannot be undone.\n *\n * @param studioAddress - Ethereum address of the studio\n * @param epoch - Epoch number to close\n * @param signerAddress - Ethereum address of the signer\n */\n async closeEpoch(\n studioAddress: string,\n epoch: number,\n signerAddress: string\n ): Promise<WorkflowStatus> {\n const payload: GatewayCloseEpochRequest = {\n studio_address: studioAddress,\n epoch,\n signer_address: signerAddress,\n };\n\n const result = await this._request<GatewayWorkflowResponse>(\n 'POST',\n '/workflows/close-epoch',\n payload\n );\n return this._parseWorkflowStatus(result);\n }\n\n // ===========================================================================\n // Workflow Status\n // ===========================================================================\n\n /**\n * Get workflow status by ID.\n * GET /workflows/{id}\n */\n async getWorkflow(workflowId: string): Promise<WorkflowStatus> {\n const result = await this._request<GatewayWorkflowResponse>('GET', `/workflows/${workflowId}`);\n return this._parseWorkflowStatus(result);\n }\n\n /**\n * List workflows with optional filters.\n * GET /workflows?studio=&state=&type=\n */\n async listWorkflows(options?: {\n studio?: string;\n state?: string;\n workflowType?: string;\n }): Promise<WorkflowStatus[]> {\n const params: string[] = [];\n if (options?.studio) params.push(`studio=${options.studio}`);\n if (options?.state) params.push(`state=${options.state}`);\n if (options?.workflowType) params.push(`type=${options.workflowType}`);\n\n const queryString = params.length > 0 ? `?${params.join('&')}` : '';\n const result = await this._request<GatewayListWorkflowsResponse>(\n 'GET',\n `/workflows${queryString}`\n );\n return (result.workflows || []).map((w) => this._parseWorkflowStatus(w));\n }\n\n // ===========================================================================\n // Polling and Waiting\n // ===========================================================================\n\n /**\n * Poll workflow until it reaches a terminal state.\n *\n * @param workflowId - UUID of the workflow\n * @param options - Polling options\n * @throws WorkflowFailedError - If workflow reaches FAILED state\n * @throws GatewayTimeoutError - If maxWait exceeded\n */\n async waitForCompletion(\n workflowId: string,\n options?: {\n maxWait?: number;\n pollInterval?: number;\n onProgress?: (status: WorkflowStatus) => void;\n }\n ): Promise<WorkflowStatus> {\n const maxWait = options?.maxWait || this.maxPollTime;\n const pollInterval = options?.pollInterval || this.pollInterval;\n const startTime = Date.now();\n\n // eslint-disable-next-line no-constant-condition\n while (true) {\n const status = await this.getWorkflow(workflowId);\n\n // Invoke progress callback if provided\n if (options?.onProgress) {\n options.onProgress(status);\n }\n\n if (status.state === WorkflowState.COMPLETED) {\n return status;\n }\n\n if (status.state === WorkflowState.FAILED) {\n throw new WorkflowFailedError(workflowId, status.error!);\n }\n\n const elapsed = Date.now() - startTime;\n if (elapsed >= maxWait) {\n throw new GatewayTimeoutError(\n workflowId,\n `Workflow ${workflowId} did not complete within ${maxWait} ms.` +\n `Current state: ${status.state}, step: ${status.step}`,\n status\n );\n }\n\n // Wait before next poll\n await new Promise((resolve) => setTimeout(resolve, pollInterval));\n }\n }\n\n // ===========================================================================\n // Convenience Methods (submit + wait)\n // ===========================================================================\n\n /**\n * Submit work and wait for completion.\n */\n async submitWorkAndWait(\n studioAddress: string,\n epoch: number,\n agentAddress: string,\n dataHash: string,\n threadRoot: string,\n evidenceRoot: string,\n evidenceContent: Buffer | string,\n signerAddress: string,\n options?: {\n onProgress?: (status: WorkflowStatus) => void;\n }\n ): Promise<WorkflowStatus> {\n const workflow = await this.submitWork(\n studioAddress,\n epoch,\n agentAddress,\n dataHash,\n threadRoot,\n evidenceRoot,\n evidenceContent,\n signerAddress\n );\n\n return this.waitForCompletion(workflow.workflowId, options);\n }\n\n /**\n * Submit score and wait for completion.\n */\n async submitScoreAndWait(\n studioAddress: string,\n epoch: number,\n validatorAddress: string,\n dataHash: string,\n scores: number[],\n signerAddress: string,\n options?: {\n workerAddress?: string;\n workAddress?: string;\n salt?: string;\n mode?: ScoreSubmissionMode;\n onProgress?: (status: WorkflowStatus) => void;\n }\n ): Promise<WorkflowStatus> {\n const workerAddress = options?.workerAddress ?? options?.workAddress;\n const workflow = await this.submitScore(\n studioAddress,\n epoch,\n validatorAddress,\n dataHash,\n scores,\n signerAddress,\n {\n workerAddress,\n salt: options?.salt,\n mode: options?.mode,\n }\n );\n\n return this.waitForCompletion(workflow.workflowId, { onProgress: options?.onProgress });\n }\n\n /**\n * Close epoch and wait for completion.\n */\n async closeEpochAndWait(\n studioAddress: string,\n epoch: number,\n signerAddress: string,\n options?: {\n onProgress?: (status: WorkflowStatus) => void;\n }\n ): Promise<WorkflowStatus> {\n const workflow = await this.closeEpoch(studioAddress, epoch, signerAddress);\n return this.waitForCompletion(workflow.workflowId, options);\n }\n\n // ===========================================================================\n // Read API — Studio Work Discovery\n // ===========================================================================\n\n /**\n * Fetch pending (unfinalized) work for a studio from the gateway.\n *\n * @param studioAddress - 0x-prefixed studio contract address\n * @param options - Optional limit/offset for pagination\n * @returns Typed pending work response\n */\n async getPendingWork(\n studioAddress: string,\n options?: { limit?: number; offset?: number }\n ): Promise<PendingWorkResponse> {\n const limit = options?.limit ?? 20;\n const offset = options?.offset ?? 0;\n const url = `${this.gatewayUrl}/v1/studio/${studioAddress}/work?status=pending&limit=${limit}&offset=${offset}`;\n\n try {\n const response = await axios.get(url, {\n timeout: this.timeout,\n headers: this._buildHeaders(),\n });\n return response.data as PendingWorkResponse;\n } catch (error: unknown) {\n const axiosErr = error as AxiosError;\n if (axiosErr.code === 'ECONNREFUSED' || axiosErr.code === 'ENOTFOUND' || !axiosErr.response) {\n throw new GatewayConnectionError(\n `ChaosChain gateway unreachable at ${this.gatewayUrl}. Check GATEWAY_URL.`,\n );\n }\n if (axiosErr.response) {\n throw new GatewayError(\n `Gateway returned ${axiosErr.response.status}: ${JSON.stringify(axiosErr.response.data)}`,\n );\n }\n throw error;\n }\n }\n\n /**\n * Fetch full evidence graph for a work submission.\n * Endpoint: GET /v1/work/{hash}/evidence\n */\n async getWorkEvidence(workHash: string): Promise<WorkEvidenceResponse> {\n const url = `${this.gatewayUrl}/v1/work/${workHash}/evidence`;\n\n try {\n const response = await axios.get(url, {\n timeout: this.timeout,\n headers: this._buildHeaders(),\n });\n return response.data as WorkEvidenceResponse;\n } catch (error: unknown) {\n const axiosErr = error as AxiosError;\n if (axiosErr.code === 'ECONNREFUSED' || axiosErr.code === 'ENOTFOUND' || !axiosErr.response) {\n throw new GatewayConnectionError(\n `ChaosChain gateway unreachable at ${this.gatewayUrl}. Check GATEWAY_URL.`\n );\n }\n if (axiosErr.response) {\n throw new GatewayError(\n `Gateway returned ${axiosErr.response.status}: ${JSON.stringify(axiosErr.response.data)}`\n );\n }\n throw error;\n }\n }\n}\n","import { ethers } from 'ethers';\nimport {\n CHAOS_CORE_ABI,\n STUDIO_PROXY_ABI,\n REWARDS_DISTRIBUTOR_ABI,\n getContractAddresses,\n} from './utils/contracts';\nimport { ContractError } from './exceptions';\n\nexport interface StudioClientConfig {\n provider: ethers.Provider;\n signer: ethers.Signer;\n network: string;\n}\n\nexport class StudioClient {\n private provider: ethers.Provider;\n private signer: ethers.Signer;\n private network: string;\n\n constructor(config: StudioClientConfig) {\n this.provider = config.provider;\n this.signer = config.signer;\n this.network = config.network;\n }\n\n // ===========================================================================\n // Studio Creation (ChaosCore)\n // ===========================================================================\n\n /**\n * Create a new Studio on the ChaosChain protocol.\n *\n * @param name - Name for the studio\n * @param logicModuleAddress - Address of deployed LogicModule contract\n * @returns Studio proxy address and studioId\n */\n async createStudio(\n name: string,\n logicModuleAddress: string\n ): Promise<{ proxyAddress: string; studioId: bigint }> {\n const addresses = getContractAddresses(this.network) as Record<string, string> | undefined;\n const chaosCoreAddress = addresses?.chaos_core;\n\n if (!chaosCoreAddress) {\n throw new ContractError(`ChaosCore contract address not found for network: ${this.network}.`);\n }\n const chaosCore = new ethers.Contract(chaosCoreAddress, CHAOS_CORE_ABI, this.signer);\n\n const tx = await chaosCore.createStudio(name, logicModuleAddress);\n const receipt = await tx.wait();\n\n const event = receipt.logs.find((log: any) => {\n try {\n return chaosCore.interface.parseLog(log)?.name === 'StudioCreated';\n } catch (error) {\n return false;\n }\n });\n\n if (!event) {\n throw new ContractError('Could not find StudioCreated event');\n }\n\n const parsed = chaosCore.interface.parseLog(event);\n\n if (!parsed || !parsed.args) {\n throw new ContractError('Could not parse StudioCreated event');\n }\n\n return {\n proxyAddress: parsed.args.proxyAddress,\n studioId: parsed.args.studioId,\n };\n }\n\n // ===========================================================================\n // Agent Registration\n // ===========================================================================\n\n /**\n * Register this agent with a Studio.\n *\n * @param studioAddress - Address of the Studio proxy\n * @param agentId - Agent's ERC-8004 ID\n * @param role - Agent role (1=WORKER, 2=VERIFIER, 3=CLIENT, etc.)\n * @param stakeAmount - Amount to stake in wei (default: 0.0001 ETH)\n */\n async registerWithStudio(\n studioAddress: string,\n agentId: string,\n role: number,\n stakeAmount?: bigint\n ): Promise<string> {\n const stake = stakeAmount ?? ethers.parseEther('0.0001');\n\n if (stake === 0n) {\n throw new ContractError('Stake amount must be > 0 (contract requirement)');\n }\n\n const studio = new ethers.Contract(studioAddress, STUDIO_PROXY_ABI, this.signer);\n\n const tx = await studio.registerAgent(agentId, role, {\n value: stake,\n });\n\n const receipt = await tx.wait();\n return receipt.hash;\n }\n\n // ===========================================================================\n // Work Submission\n // ===========================================================================\n\n /**\n * Submit work to a Studio (direct, deprecated).\n * @deprecated Use Gateway for production. Direct submission lacks crash recovery.\n *\n * @param studioAddress - Address of the Studio proxy\n * @param dataHash - EIP-712 DataHash of the work (bytes32)\n * @param threadRoot - VLC/Merkle root of XMTP thread (bytes32)\n * @param evidenceRoot - Merkle root of artifacts (bytes32)\n * @param feedbackAuth - Feedback authorization (deprecated, default empty)\n * @returns Transaction hash\n */\n async submitWork(\n studioAddress: string,\n dataHash: string,\n threadRoot: string,\n evidenceRoot: string,\n feedbackAuth: string = '0x'\n ): Promise<string> {\n console.warn('submitWork() is deprecated. Use Gateway for production.');\n\n const studio = new ethers.Contract(studioAddress, STUDIO_PROXY_ABI, this.signer);\n\n const tx = await studio.submitWork(dataHash, threadRoot, evidenceRoot, feedbackAuth);\n const receipt = await tx.wait();\n return receipt.hash;\n }\n\n /**\n * Submit work with multi-agent attribution.\n * @deprecated Use Gateway for production.\n *\n * @param studioAddress - Address of the Studio proxy\n * @param dataHash - EIP-712 DataHash of the work (bytes32)\n * @param threadRoot - VLC/Merkle root of XMTP thread (bytes32)\n * @param evidenceRoot - Merkle root of artifacts (bytes32)\n * @param participants - List of participant addresses (in order)\n * @param contributionWeights - Contribution weights in basis points (must sum to 10000)\n * @param evidenceCID - IPFS/Arweave CID of evidence package (optional)\n * @returns Transaction hash\n */\n async submitWorkMultiAgent(\n studioAddress: string,\n dataHash: string,\n threadRoot: string,\n evidenceRoot: string,\n participants: string[],\n contributionWeights: number[],\n evidenceCID: string = ''\n ): Promise<string> {\n console.warn('submitWorkMultiAgent() is deprecated. Use Gateway for production.');\n\n const sum = contributionWeights.reduce((a, b) => a + b, 0);\n if (sum !== 10000) {\n throw new ContractError(`Contribution weights must sum to 10000, got ${sum}`);\n }\n\n if (participants.length !== contributionWeights.length) {\n throw new ContractError(\n `Participants (${participants.length}) and weights (${contributionWeights.length}) must have same length`\n );\n }\n\n const studio = new ethers.Contract(studioAddress, STUDIO_PROXY_ABI, this.signer);\n\n const tx = await studio.submitWorkMultiAgent(\n dataHash,\n threadRoot,\n evidenceRoot,\n participants,\n contributionWeights,\n evidenceCID\n );\n const receipt = await tx.wait();\n return receipt.hash;\n }\n\n // ===========================================================================\n // Score Commit-Reveal\n // ===========================================================================\n\n /**\n * Commit a score (commit phase of commit-reveal).\n *\n * NOTE: For production, use Gateway.submitScore() with mode=COMMIT_REVEAL.\n * The Gateway handles workflow management, crash recovery, and proper sequencing.\n *\n * @param studioAddress - Address of the Studio proxy\n * @param dataHash - DataHash of the work being scored (bytes32)\n * @param commitment - keccak256(abi.encodePacked(scoreVector, salt, dataHash))\n * @returns Transaction hash\n */\n async commitScore(studioAddress: string, dataHash: string, commitment: string): Promise<string> {\n const studio = new ethers.Contract(studioAddress, STUDIO_PROXY_ABI, this.signer);\n\n const tx = await studio.commitScore(dataHash, commitment);\n const receipt = await tx.wait();\n return receipt.hash;\n }\n\n /**\n * Reveal a score (reveal phase of commit-reveal).\n *\n * NOTE: For production, use Gateway.submitScore() with mode=COMMIT_REVEAL.\n * The Gateway handles the full commit-reveal lifecycle automatically.\n *\n * @param studioAddress - Address of the Studio proxy\n * @param dataHash - DataHash of the work being scored (bytes32)\n * @param scoreVector - ABI-encoded score array (bytes)\n * @param salt - Random salt used in commitment (bytes32)\n * @returns Transaction hash\n */\n async revealScore(\n studioAddress: string,\n dataHash: string,\n scoreVector: string,\n salt: string\n ): Promise<string> {\n const studio = new ethers.Contract(studioAddress, STUDIO_PROXY_ABI, this.signer);\n\n const tx = await studio.revealScore(dataHash, scoreVector, salt);\n const receipt = await tx.wait();\n return receipt.hash;\n }\n\n /**\n * Submit score vector directly (simpler alternative to commit-reveal).\n *\n * NOTE: For production, use Gateway.submitScore() with mode=DIRECT.\n * The Gateway handles workflow management and crash recovery.\n *\n * Use this direct method only for:\n * - Local testing and development\n * - Admin operations requiring low-level control\n * - Studios that don't require commit-reveal protection\n *\n * @param studioAddress - Address of the Studio proxy\n * @param dataHash - DataHash of the work being scored (bytes32)\n * @param scores - Multi-dimensional scores [0-100 each]\n * @returns Transaction hash\n */\n async submitScoreVector(\n studioAddress: string,\n dataHash: string,\n scores: number[]\n ): Promise<string> {\n const studio = new ethers.Contract(studioAddress, STUDIO_PROXY_ABI, this.signer);\n\n const scoreVector = this.encodeScoreVector(scores);\n const tx = await studio.submitScoreVector(dataHash, scoreVector);\n const receipt = await tx.wait();\n return receipt.hash;\n }\n\n /**\n * Submit score vector for a SPECIFIC WORKER in multi-agent tasks.\n *\n * NOTE: For production, use Gateway.submitScore() which handles per-worker\n * scoring automatically based on DKG causal analysis.\n *\n * This direct method is for:\n * - Local testing and development\n * - Admin operations requiring low-level control\n *\n * How multi-agent scoring works:\n * - Each verifier evaluates EACH WORKER from DKG causal analysis\n * - Submits separate score vector for each worker\n * - Contract calculates per-worker consensus\n * - Each worker gets THEIR OWN reputation scores\n *\n * @param studioAddress - Address of the Studio proxy\n * @param dataHash - DataHash of the work being scored (bytes32)\n * @param workerAddress - Address of the worker being scored\n * @param scores - Multi-dimensional scores for THIS worker [0-100 each]\n * @returns Transaction hash\n */\n async submitScoreVectorForWorker(\n studioAddress: string,\n dataHash: string,\n workerAddress: string,\n scores: number[]\n ): Promise<string> {\n const studio = new ethers.Contract(studioAddress, STUDIO_PROXY_ABI, this.signer);\n\n const scoreVector = this.encodeScoreVector(scores);\n const tx = await studio.submitScoreVectorForWorker(dataHash, workerAddress, scoreVector);\n const receipt = await tx.wait();\n return receipt.hash;\n }\n\n // ===========================================================================\n // Epoch Management\n // ===========================================================================\n\n /**\n * Close an epoch and trigger reward distribution.\n *\n * NOTE: For production, use Gateway.closeEpoch() which handles\n * workflow management, logging, and crash recovery.\n *\n * @param studioAddress - Address of the Studio proxy\n * @param epoch - Epoch number to close\n * @returns Transaction hash\n */\n async closeEpoch(studioAddress: string, epoch: number): Promise<string> {\n const addresses = getContractAddresses(this.network) as Record<string, string> | undefined;\n const rewardsDistributorAddress = addresses?.rewards_distributor;\n\n if (!rewardsDistributorAddress) {\n throw new ContractError(\n `RewardsDistributor contract address not found for network: ${this.network}.`\n );\n }\n\n const distributor = new ethers.Contract(\n rewardsDistributorAddress,\n REWARDS_DISTRIBUTOR_ABI,\n this.signer\n );\n\n const tx = await distributor.closeEpoch(studioAddress, epoch);\n const receipt = await tx.wait();\n return receipt.hash;\n }\n\n // ===========================================================================\n // Rewards\n // ===========================================================================\n\n /**\n * Get pending rewards for an account in a Studio.\n *\n * @param studioAddress - Address of the Studio proxy\n * @param account - Address to check balance for\n * @returns Pending reward amount in wei\n */\n async getPendingRewards(studioAddress: string, account: string): Promise<bigint> {\n const studio = new ethers.Contract(studioAddress, STUDIO_PROXY_ABI, this.provider);\n return studio.getWithdrawableBalance(account);\n }\n\n /**\n * Withdraw pending rewards from a Studio.\n *\n * @param studioAddress - Address of the Studio proxy\n * @returns Transaction hash\n */\n async withdrawRewards(studioAddress: string): Promise<string> {\n const studio = new ethers.Contract(studioAddress, STUDIO_PROXY_ABI, this.signer);\n\n const tx = await studio.withdrawRewards();\n const receipt = await tx.wait();\n return receipt.hash;\n }\n\n // ===========================================================================\n // Helper Methods\n // ===========================================================================\n\n /**\n * Compute score commitment for commit-reveal pattern.\n *\n * @param scores - Array of scores (0-100 or 0-10000 depending on contract)\n * @param salt - Random bytes32 salt\n * @param dataHash - DataHash of the work being scored\n * @returns bytes32 commitment hash\n */\n computeScoreCommitment(scores: number[], salt: string, dataHash: string): string {\n const abiCoder = new ethers.AbiCoder();\n const encoded = abiCoder.encode(['uint8[]', 'bytes32', 'bytes32'], [scores, salt, dataHash]);\n return ethers.keccak256(encoded);\n }\n\n /**\n * Encode score vector for revealScore.\n *\n * @param scores - Array of scores\n * @returns ABI-encoded bytes\n */\n encodeScoreVector(scores: number[]): string {\n const abiCoder = new ethers.AbiCoder();\n return abiCoder.encode(['uint8[]'], [scores]);\n }\n\n /**\n * Generate random salt for commit-reveal.\n *\n * @returns bytes32 random salt\n */\n generateSalt(): string {\n return ethers.hexlify(ethers.randomBytes(32));\n }\n}\n","/**\n * ChaosChain SDK - Main Entry Point\n * Production-ready SDK for building verifiable AI agents with complete feature parity to Python SDK\n */\n\nimport { ethers } from 'ethers';\nimport { WalletManager } from './WalletManager';\nimport { ChaosAgent } from './ChaosAgent';\nimport { X402PaymentManager } from './X402PaymentManager';\nimport { PaymentManager, PaymentMethodCredentials } from './PaymentManager';\nimport { X402Server } from './X402Server';\nimport { GoogleAP2Integration, GoogleAP2IntegrationResult } from './GoogleAP2Integration';\nimport { A2AX402Extension } from './A2AX402Extension';\nimport { ProcessIntegrity } from './ProcessIntegrity';\nimport { AutoStorageManager, StorageBackend } from './StorageBackends';\nimport { MandateManager } from './MandateManager';\n// import { IPFSLocalStorage } from './providers/storage/IPFSLocal'; // Not used\nimport {\n ChaosChainSDKConfig,\n NetworkConfig,\n AgentRole,\n AgentMetadata,\n AgentRegistration,\n FeedbackParams,\n UploadResult,\n UploadOptions,\n ComputeProvider,\n} from './types';\nimport { PaymentMethod } from './types';\nimport { getNetworkInfo, getContractAddresses, getSupportedNetworks } from './utils/networks';\nimport { ConfigurationError } from './exceptions';\n//\nimport { GatewayClient } from './GatewayClient';\nimport { StudioClient } from './StudioClient';\nimport type { WorkflowStatus, ScoreSubmissionMode } from './types';\n\n/**\n * Main ChaosChain SDK Class - Complete TypeScript implementation\n *\n * Features:\n * - ERC-8004 v1.0 on-chain identity, reputation, and validation\n * - x402 crypto payments (USDC/ETH)\n * - Traditional payments (cards, Google Pay, Apple Pay, PayPal)\n * - Google AP2 intent verification\n * - Process integrity with cryptographic proofs\n * - Pluggable storage providers (IPFS, Pinata, Irys, 0G)\n * - Pluggable compute providers\n * - A2A-x402 extension for multi-payment support\n * - HTTP 402 paywall server\n */\nexport class ChaosChainSDK {\n private static warnedGatewayMissing = false;\n private static warnedStudioClientProduction = false;\n // Core components\n private walletManager: WalletManager;\n private chaosAgent: ChaosAgent;\n private x402PaymentManager?: X402PaymentManager;\n private paymentManager?: PaymentManager;\n private storageBackend: StorageBackend;\n private computeProvider?: ComputeProvider;\n private provider: ethers.Provider;\n\n // Advanced integrations\n public googleAP2?: GoogleAP2Integration;\n public a2aX402Extension?: A2AX402Extension;\n public processIntegrity?: ProcessIntegrity;\n public mandateManager?: MandateManager;\n\n // Gateway client for workflow submission (optional)\n public gateway: GatewayClient | null = null;\n\n // Studio client for direct on-chain operations\n public studio: StudioClient;\n\n // Configuration\n public readonly agentName: string;\n public readonly agentDomain: string;\n public readonly agentRole: AgentRole | string;\n public readonly network: NetworkConfig | string;\n public readonly networkInfo: ReturnType<typeof getNetworkInfo>;\n\n // Current agent ID (set after registration)\n private _agentId?: bigint;\n\n constructor(config: ChaosChainSDKConfig) {\n const signerSources = [config.privateKey, config.mnemonic, config.walletFile].filter(Boolean);\n if (signerSources.length > 1) {\n throw new ConfigurationError(\n 'Invalid wallet configuration: provide only one of privateKey, mnemonic, or walletFile.',\n {\n provided: signerSources.map((source) =>\n typeof source === 'string' ? 'string' : 'unknown'\n ),\n }\n );\n }\n if (signerSources.length === 0) {\n throw new ConfigurationError(\n 'No signer configuration provided. Set privateKey, mnemonic, or walletFile to initialize the SDK.',\n { required: ['privateKey', 'mnemonic', 'walletFile'] }\n );\n }\n\n this.agentName = config.agentName;\n this.agentDomain = config.agentDomain;\n this.agentRole = config.agentRole;\n this.network = config.network;\n\n // Get network info\n if (!config.network) {\n throw new ConfigurationError('Network is required to initialize the SDK.', {\n required: 'network',\n });\n }\n try {\n this.networkInfo = getNetworkInfo(config.network);\n } catch (error) {\n throw new ConfigurationError(\n `Unsupported network \"${String(config.network)}\".`,\n {\n supported: getSupportedNetworks(),\n cause: (error as Error).message,\n }\n );\n }\n if (!this.networkInfo.chainId || Number.isNaN(this.networkInfo.chainId)) {\n throw new ConfigurationError(\n `Invalid chainId for network \"${String(config.network)}\".`,\n { chainId: this.networkInfo.chainId }\n );\n }\n\n // Initialize provider\n const rpcUrl = config.rpcUrl || this.networkInfo.rpcUrl;\n if (!rpcUrl || typeof rpcUrl !== 'string' || rpcUrl.trim().length === 0) {\n throw new ConfigurationError(\n `RPC URL is required for network \"${String(config.network)}\".`,\n { network: config.network, hint: 'Provide rpcUrl in SDK config.' }\n );\n }\n try {\n this.provider = new ethers.JsonRpcProvider(rpcUrl);\n } catch (error) {\n throw new ConfigurationError(\n `Failed to initialize provider for network \"${String(config.network)}\".`,\n { rpcUrl, cause: (error as Error).message }\n );\n }\n\n // Initialize wallet\n try {\n this.walletManager = new WalletManager(\n {\n privateKey: config.privateKey,\n mnemonic: config.mnemonic,\n walletFile: config.walletFile,\n },\n this.provider\n );\n } catch (error) {\n throw new ConfigurationError(\n 'Failed to initialize wallet. Check privateKey, mnemonic, or walletFile.',\n { cause: (error as Error).message }\n );\n }\n\n // Initialize ChaosAgent (ERC-8004)\n try {\n const contractAddresses = getContractAddresses(config.network);\n this.chaosAgent = new ChaosAgent(\n contractAddresses,\n this.walletManager.getWallet(),\n this.provider\n );\n } catch (error) {\n throw new ConfigurationError(\n `Failed to initialize ERC-8004 contracts for network \"${String(config.network)}\".`,\n { network: config.network, cause: (error as Error).message }\n );\n }\n\n // Initialize storage provider\n if (config.storageProvider) {\n this.storageBackend = config.storageProvider as any as StorageBackend;\n } else if (config.enableStorage !== false) {\n // Auto-detect available storage backends\n this.storageBackend = new AutoStorageManager();\n } else {\n // Dummy storage provider\n this.storageBackend = {\n put: async () => ({ cid: '', provider: 'none' }),\n get: async () => Buffer.from(''),\n };\n }\n\n // Initialize payment managers (if enabled)\n if (config.enablePayments !== false) {\n // Crypto payments (x402 with EIP-3009 + facilitator)\n this.x402PaymentManager = new X402PaymentManager(\n this.walletManager.getWallet(),\n typeof config.network === 'string' ? (config.network as NetworkConfig) : config.network,\n {\n facilitatorUrl: config.facilitatorUrl,\n apiKey: config.facilitatorApiKey,\n mode: config.facilitatorMode,\n agentId: config.agentId,\n }\n );\n\n // Traditional + crypto payments (multi-method)\n const paymentCredentials: PaymentMethodCredentials = {\n stripe_secret_key: process.env.STRIPE_SECRET_KEY,\n google_pay_merchant_id: process.env.GOOGLE_PAY_MERCHANT_ID,\n apple_pay_merchant_id: process.env.APPLE_PAY_MERCHANT_ID,\n paypal_client_id: process.env.PAYPAL_CLIENT_ID,\n paypal_client_secret: process.env.PAYPAL_CLIENT_SECRET,\n };\n\n this.paymentManager = new PaymentManager(\n this.agentName,\n typeof config.network === 'string' ? (config.network as NetworkConfig) : config.network,\n this.walletManager.getWallet(),\n paymentCredentials\n );\n\n // A2A-x402 Extension (multi-payment support)\n this.a2aX402Extension = new A2AX402Extension(\n this.agentName,\n typeof config.network === 'string' ? (config.network as NetworkConfig) : config.network,\n this.paymentManager\n );\n }\n\n // Initialize Google AP2 (if enabled)\n if (config.enableAP2 !== false) {\n this.googleAP2 = new GoogleAP2Integration(\n this.agentName,\n process.env.GOOGLE_AP2_MERCHANT_PRIVATE_KEY\n );\n }\n\n // Initialize mandates-core (optional)\n try {\n this.mandateManager = new MandateManager(\n this.agentName,\n this.walletManager,\n this.networkInfo.chainId\n );\n } catch (error) {\n console.warn(`⚠️ MandateManager unavailable: ${String(error)}`);\n this.mandateManager = undefined;\n }\n\n // Initialize compute provider (if provided)\n this.computeProvider = config.computeProvider;\n\n // Initialize Process Integrity (if enabled)\n if (config.enableProcessIntegrity !== false) {\n this.processIntegrity = new ProcessIntegrity(\n this.agentName,\n this.storageBackend as any,\n this.computeProvider as any\n );\n }\n\n // Initialize Gateway client (if config provided)\n if (config.gatewayConfig || config.gatewayUrl) {\n const gatewayConfig = config.gatewayConfig || { gatewayUrl: config.gatewayUrl! };\n this.gateway = new GatewayClient(gatewayConfig);\n console.log(\n `🌐 Gateway client initialized: ${gatewayConfig.baseUrl || gatewayConfig.gatewayUrl || 'https://gateway.chaoscha.in'}`\n );\n }\n\n // Initialize Studio client for direct on-chain operations\n this.studio = new StudioClient({\n provider: this.provider,\n signer: this.walletManager.getWallet(),\n network: typeof config.network === 'string' ? config.network : config.network,\n });\n\n const isLocalNetwork = String(config.network) === NetworkConfig.LOCAL || String(config.network) === 'local';\n if (!this.gateway && !isLocalNetwork && !ChaosChainSDK.warnedGatewayMissing) {\n console.warn(\n '⚠️ Gateway is not configured. For production workflows, use gatewayConfig to enable Gateway orchestration.'\n );\n ChaosChainSDK.warnedGatewayMissing = true;\n }\n if (\n process.env.NODE_ENV === 'production' &&\n !isLocalNetwork &&\n !ChaosChainSDK.warnedStudioClientProduction\n ) {\n console.warn(\n '⚠️ StudioClient is intended for low-level or testing use. In production, prefer Gateway workflows.'\n );\n ChaosChainSDK.warnedStudioClientProduction = true;\n }\n\n console.log(`🚀 ChaosChain SDK initialized for ${this.agentName}`);\n console.log(` Network: ${this.network}`);\n console.log(` Wallet: ${this.walletManager.getAddress()}`);\n console.log(` Features:`);\n console.log(` - ERC-8004: ✅`);\n console.log(` - x402 Payments: ${this.x402PaymentManager ? '✅' : '❌'}`);\n console.log(` - Multi-Payment: ${this.paymentManager ? '✅' : '❌'}`);\n console.log(` - Google AP2: ${this.googleAP2 ? '✅' : '❌'}`);\n console.log(` - Process Integrity: ${this.processIntegrity ? '✅' : '❌'}`);\n console.log(` - Storage: ✅`);\n }\n\n // ============================================================================\n // ERC-8004 Identity Methods\n // ============================================================================\n\n /**\n * Register agent identity on-chain\n */\n async registerIdentity(metadata?: AgentMetadata): Promise<AgentRegistration> {\n const meta: AgentMetadata = metadata || {\n name: this.agentName,\n domain: this.agentDomain,\n role: this.agentRole,\n };\n\n const registration = await this.chaosAgent.registerIdentity(meta);\n this._agentId = registration.agentId;\n\n console.log(`✅ Agent #${registration.agentId} registered on-chain`);\n return registration;\n }\n\n /**\n * Get agent metadata\n */\n async getAgentMetadata(agentId: bigint): Promise<AgentMetadata | null> {\n return this.chaosAgent.getAgentMetadata(agentId);\n }\n\n /**\n * Update agent metadata\n */\n async updateAgentMetadata(agentId: bigint, metadata: AgentMetadata): Promise<string> {\n return this.chaosAgent.updateAgentMetadata(agentId, metadata);\n }\n\n /**\n * Get current agent ID\n */\n getAgentId(): bigint | undefined {\n return this._agentId;\n }\n\n // ============================================================================\n // ERC-8004 Reputation Methods\n // ============================================================================\n\n /**\n * Generate feedback authorization (EIP-191 signing)\n */\n async generateFeedbackAuthorization(\n agentId: bigint,\n clientAddress: string,\n indexLimit: bigint,\n expiry: bigint\n ): Promise<string> {\n return this.chaosAgent.generateFeedbackAuthorization(\n agentId,\n clientAddress,\n indexLimit,\n expiry\n );\n }\n\n /**\n * Give feedback to an agent\n */\n async giveFeedback(params: FeedbackParams): Promise<string> {\n return this.chaosAgent.giveFeedback(params);\n }\n\n /**\n * Submit feedback with payment proof (ERC-8004 reputation enrichment)\n */\n async submitFeedbackWithPayment(\n agentId: bigint,\n score: number,\n feedbackData: Record<string, any>,\n paymentProof: Record<string, any>\n ): Promise<{ feedbackTxHash: string; feedbackUri: string }> {\n // Store feedback data with payment proof\n const fullFeedbackData = {\n ...feedbackData,\n score,\n proof_of_payment: paymentProof,\n timestamp: new Date().toISOString(),\n };\n\n // Upload to storage\n const feedbackJson = JSON.stringify(fullFeedbackData);\n const result = await (this.storageBackend as any).put(\n Buffer.from(feedbackJson),\n 'application/json'\n );\n const feedbackUri = `ipfs://${result.cid}`;\n\n // Submit feedback on-chain\n const txHash = await this.chaosAgent.giveFeedback({\n agentId,\n rating: score,\n feedbackUri,\n });\n\n console.log(`✅ Feedback submitted with payment proof`);\n console.log(` TX: ${txHash}`);\n console.log(` URI: ${feedbackUri}`);\n\n return { feedbackTxHash: txHash, feedbackUri };\n }\n\n /**\n * Get agent reputation score (ERC-8004 v1.0)\n */\n async getReputationScore(agentId: bigint): Promise<number> {\n const summary = await this.chaosAgent.getSummary(agentId, [], ethers.ZeroHash, ethers.ZeroHash);\n return summary.averageScore;\n }\n\n /**\n * Read all feedback for an agent\n */\n async readAllFeedback(\n agentId: bigint,\n clientAddresses: string[] = [],\n tag1: string = ethers.ZeroHash,\n tag2: string = ethers.ZeroHash,\n includeRevoked: boolean = false\n ) {\n return this.chaosAgent.readAllFeedback(agentId, clientAddresses, tag1, tag2, includeRevoked);\n }\n\n /**\n * Get feedback summary statistics\n */\n async getFeedbackSummary(\n agentId: bigint,\n clientAddresses: string[] = [],\n tag1: string = ethers.ZeroHash,\n tag2: string = ethers.ZeroHash\n ) {\n return this.chaosAgent.getSummary(agentId, clientAddresses, tag1, tag2);\n }\n\n /**\n * Get clients who gave feedback\n */\n async getClients(agentId: bigint): Promise<string[]> {\n return this.chaosAgent.getClients(agentId);\n }\n\n // ============================================================================\n // ERC-8004 Validation Methods\n // ============================================================================\n\n /**\n * Request validation from validator (ERC-8004 v1.0)\n */\n async requestValidation(\n validatorAddress: string,\n agentId: bigint,\n requestUri: string,\n requestHash: string\n ): Promise<string> {\n return this.chaosAgent.requestValidation(validatorAddress, agentId, requestUri, requestHash);\n }\n\n /**\n * Respond to validation request (ERC-8004 v1.0)\n */\n async respondToValidation(\n requestHash: string,\n response: number,\n responseUri: string,\n responseHash: string,\n tag?: string\n ): Promise<string> {\n return this.chaosAgent.respondToValidation(\n requestHash,\n response,\n responseUri,\n responseHash,\n tag\n );\n }\n\n /**\n * Get validation status\n */\n async getValidationStatus(requestHash: string) {\n return this.chaosAgent.getValidationStatus(requestHash);\n }\n\n /**\n * Get validation summary for an agent\n */\n async getValidationSummary(\n agentId: bigint,\n validatorAddresses: string[] = [],\n tag: string = ethers.ZeroHash\n ) {\n return this.chaosAgent.getValidationSummary(agentId, validatorAddresses, tag);\n }\n\n /**\n * Get validation stats (alias for getValidationSummary)\n */\n async getValidationStats(agentId: bigint) {\n return this.getValidationSummary(agentId);\n }\n\n // ============================================================================\n // x402 Crypto Payment Methods\n // ============================================================================\n\n /**\n * Create x402 payment request\n */\n createX402PaymentRequest(\n fromAgent: string,\n toAgent: string,\n amount: number,\n currency: string = 'USDC',\n serviceDescription: string = 'AI Agent Service'\n ): Record<string, any> {\n if (!this.x402PaymentManager) {\n throw new Error('x402 payments not enabled');\n }\n return this.x402PaymentManager.createPaymentRequest(\n fromAgent,\n toAgent,\n amount,\n currency,\n serviceDescription\n );\n }\n\n /**\n * Execute x402 crypto payment\n */\n async executeX402Payment(\n paymentRequest: Record<string, any>,\n recipientAddress: string\n ): Promise<Record<string, any>> {\n if (!this.x402PaymentManager) {\n throw new Error('x402 payments not enabled');\n }\n return this.x402PaymentManager.executePayment(paymentRequest as any, recipientAddress);\n }\n\n /**\n * Create x402 payment requirements (for receiving payments)\n */\n createX402PaymentRequirements(\n amount: number,\n currency: string = 'USDC',\n serviceDescription: string = 'AI Agent Service',\n evidenceCid?: string\n ): Record<string, any> {\n if (!this.x402PaymentManager) {\n throw new Error('x402 payments not enabled');\n }\n return this.x402PaymentManager.createPaymentRequirements(\n amount,\n currency,\n serviceDescription,\n evidenceCid\n );\n }\n\n /**\n * Create x402 paywall server\n */\n createX402PaywallServer(port: number = 8402): X402Server {\n if (!this.x402PaymentManager) {\n throw new Error('x402 payments not enabled');\n }\n return new X402Server(this.x402PaymentManager, { port });\n }\n\n /**\n * Get x402 payment history\n */\n async getX402PaymentHistory(limit: number = 10): Promise<any[]> {\n if (!this.x402PaymentManager) {\n throw new Error('x402 payments not enabled');\n }\n return this.x402PaymentManager.getPaymentHistory(limit);\n }\n\n /**\n * Calculate total cost including protocol fee (2.5%)\n */\n calculateTotalCost(\n amount: string,\n currency: string = 'USDC'\n ): { amount: string; fee: string; total: string; currency: string } {\n const amountNum = parseFloat(amount);\n const fee = amountNum * 0.025; // 2.5% protocol fee\n const total = amountNum + fee;\n\n return {\n amount: amountNum.toFixed(6),\n fee: fee.toFixed(6),\n total: total.toFixed(6),\n currency,\n };\n }\n\n /**\n * Get ETH balance\n */\n async getETHBalance(): Promise<string> {\n const balance = await this.provider.getBalance(this.getAddress());\n return ethers.formatEther(balance);\n }\n\n /**\n * Get USDC balance (if USDC contract exists on network)\n */\n async getUSDCBalance(): Promise<string> {\n if (!this.x402PaymentManager) {\n throw new Error('x402 payments not enabled - cannot get USDC balance');\n }\n // This would need USDC contract address for the network\n // For now, return placeholder\n return '0.0';\n }\n\n // ============================================================================\n // Traditional Payment Methods (Cards, Google Pay, Apple Pay, PayPal)\n // ============================================================================\n\n /**\n * Execute traditional payment\n */\n executeTraditionalPayment(\n paymentMethod: PaymentMethod,\n amount: number,\n currency: string,\n paymentData: Record<string, any>\n ): Record<string, any> {\n if (!this.paymentManager) {\n throw new Error('Payment manager not enabled');\n }\n return this.paymentManager.executeTraditionalPayment(\n paymentMethod,\n amount,\n currency,\n paymentData\n );\n }\n\n /**\n * Get supported payment methods\n */\n getSupportedPaymentMethods(): PaymentMethod[] {\n if (!this.paymentManager) {\n return [];\n }\n return this.paymentManager.getSupportedPaymentMethods();\n }\n\n /**\n * Get payment methods status\n */\n getPaymentMethodsStatus(): Record<string, boolean> {\n if (!this.paymentManager) {\n return {};\n }\n return this.paymentManager.getPaymentMethodsStatus();\n }\n\n // ============================================================================\n // Google AP2 Intent Verification Methods\n // ============================================================================\n\n /**\n * Create Google AP2 intent mandate\n */\n createIntentMandate(\n userDescription: string,\n merchants?: string[],\n skus?: string[],\n requiresRefundability: boolean = false,\n expiryMinutes: number = 60\n ): GoogleAP2IntegrationResult {\n if (!this.googleAP2) {\n throw new Error('Google AP2 not enabled');\n }\n return this.googleAP2.createIntentMandate(\n userDescription,\n merchants,\n skus,\n requiresRefundability,\n expiryMinutes\n );\n }\n\n /**\n * Create Google AP2 cart mandate with JWT signing\n */\n async createCartMandate(\n cartId: string,\n items: Array<{ name: string; price: number }>,\n totalAmount: number,\n currency: string = 'USD',\n merchantName?: string,\n expiryMinutes: number = 15\n ): Promise<GoogleAP2IntegrationResult> {\n if (!this.googleAP2) {\n throw new Error('Google AP2 not enabled');\n }\n return this.googleAP2.createCartMandate(\n cartId,\n items,\n totalAmount,\n currency,\n merchantName,\n expiryMinutes\n );\n }\n\n /**\n * Verify JWT token\n */\n async verifyJwtToken(token: string): Promise<Record<string, any>> {\n if (!this.googleAP2) {\n throw new Error('Google AP2 not enabled');\n }\n return this.googleAP2.verifyJwtToken(token);\n }\n\n // ============================================================================\n // Process Integrity Methods\n // ============================================================================\n\n /**\n * Register function for integrity verification\n */\n registerFunction(func: (...args: any[]) => Promise<any>): void {\n if (!this.processIntegrity) {\n throw new Error('Process integrity not enabled');\n }\n this.processIntegrity.registerFunction(func);\n }\n\n /**\n * Execute function with integrity proof\n */\n async executeWithIntegrityProof(\n functionName: string,\n args: Record<string, any>\n ): Promise<{ result: any; proof: Record<string, any> }> {\n if (!this.processIntegrity) {\n throw new Error('Process integrity not enabled');\n }\n const [result, proof] = await this.processIntegrity.executeWithProof(functionName, args);\n return { result, proof: proof as any };\n }\n\n /**\n * Verify integrity proof\n */\n async verifyIntegrityProof(_proof: Record<string, any>): Promise<boolean> {\n if (!this.processIntegrity) {\n throw new Error('Process integrity not enabled');\n }\n // TODO: Implement verifyProof in ProcessIntegrity\n return true;\n }\n\n // ============================================================================\n // Storage Methods\n // ============================================================================\n\n /**\n * Upload data to storage\n */\n async upload(data: any, _options?: UploadOptions): Promise<UploadResult> {\n const jsonData = typeof data === 'string' ? data : JSON.stringify(data);\n const buffer = Buffer.from(jsonData);\n\n const result = await this.storageBackend.put(buffer, 'application/json');\n\n return {\n cid: result.cid,\n uri: result.url || `ipfs://${result.cid}`,\n timestamp: Date.now(),\n };\n }\n\n /**\n * Download data from storage\n */\n async download(cid: string): Promise<any> {\n const buffer = await this.storageBackend.get(cid);\n const data = buffer.toString('utf-8');\n\n try {\n return JSON.parse(data);\n } catch {\n return data;\n }\n }\n\n /**\n * Store evidence (convenience method)\n */\n async storeEvidence(evidenceData: Record<string, any>): Promise<string> {\n const result = await (this.storageBackend as any).put(\n Buffer.from(JSON.stringify(evidenceData)),\n 'application/json'\n );\n console.log(`📦 Stored evidence: ${result.cid}`);\n return result.cid;\n }\n\n // ============================================================================\n // Wallet & Network Methods\n // ============================================================================\n\n /**\n * Get wallet address\n */\n getAddress(): string {\n return this.walletManager.getAddress();\n }\n\n /**\n * Get wallet balance\n */\n async getBalance(): Promise<bigint> {\n return this.walletManager.getBalance();\n }\n\n /**\n * Get network info\n */\n getNetworkInfo() {\n return this.networkInfo;\n }\n\n /**\n * Get SDK version\n */\n getVersion(): string {\n return '0.2.3';\n }\n\n /**\n * Get SDK capabilities summary\n */\n getCapabilities(): Record<string, any> {\n return {\n agent_name: this.agentName,\n agent_domain: this.agentDomain,\n agent_role: this.agentRole,\n network: this.network,\n wallet_address: this.walletManager.getAddress(),\n agent_id: this._agentId ? this._agentId.toString() : undefined,\n features: {\n erc_8004_identity: true,\n erc_8004_reputation: true,\n erc_8004_validation: true,\n x402_crypto_payments: !!this.x402PaymentManager,\n traditional_payments: !!this.paymentManager,\n google_ap2_intents: !!this.googleAP2,\n process_integrity: !!this.processIntegrity,\n storage: true,\n compute: !!this.computeProvider,\n },\n supported_payment_methods: this.paymentManager\n ? this.paymentManager.getSupportedPaymentMethods()\n : [],\n storage_backends:\n this.storageBackend instanceof AutoStorageManager\n ? (this.storageBackend as AutoStorageManager).getAvailableBackends()\n : [this.storageBackend.constructor.name],\n };\n }\n\n /**\n * Check if Gateway is configured.\n */\n isGatewayEnabled(): boolean {\n return this.gateway !== null;\n }\n\n /**\n * Get Gateway client instance.\n * @throws Error if Gateway is not configured\n */\n getGateway(): GatewayClient {\n if (!this.gateway) {\n throw new ConfigurationError(\n 'Gateway is not configured. Provide gatewayConfig (or gatewayUrl) when constructing the SDK.',\n { required: 'gatewayConfig' }\n );\n }\n return this.gateway;\n }\n\n /**\n * Submit work via Gateway.\n *\n * The Gateway handles XMTP, DKG, Arweave archival, and on-chain submission.\n */\n async submitWorkViaGateway(\n studioAddress: string,\n epoch: number,\n agentAddress: string,\n dataHash: string,\n threadRoot: string,\n evidenceRoot: string,\n evidenceContent: Buffer | string,\n signerAddress: string\n ): Promise<WorkflowStatus> {\n return this.getGateway().submitWork(\n studioAddress,\n epoch,\n agentAddress,\n dataHash,\n threadRoot,\n evidenceRoot,\n evidenceContent,\n signerAddress\n );\n }\n\n /**\n * Submit score via Gateway.\n */\n async submitScoreViaGateway(\n studioAddress: string,\n epoch: number,\n validatorAddress: string,\n dataHash: string,\n scores: number[],\n signerAddress: string,\n options?: {\n workerAddress?: string;\n salt?: string;\n mode?: ScoreSubmissionMode;\n }\n ): Promise<WorkflowStatus> {\n return this.getGateway().submitScore(\n studioAddress,\n epoch,\n validatorAddress,\n dataHash,\n scores,\n signerAddress,\n options\n );\n }\n\n /**\n * Close epoch via Gateway.\n * WARNING: This is economically final and cannot be undone.\n */\n async closeEpochViaGateway(\n studioAddress: string,\n epoch: number,\n signerAddress: string\n ): Promise<WorkflowStatus> {\n return this.getGateway().closeEpoch(studioAddress, epoch, signerAddress);\n }\n\n /**\n * Wait for workflow completion.\n */\n async waitWorkflow(\n workflowId: string,\n options?: {\n maxWait?: number;\n pollInterval?: number;\n onProgress?: (status: WorkflowStatus) => void;\n }\n ): Promise<WorkflowStatus> {\n return this.getGateway().waitForCompletion(workflowId, options);\n }\n\n // ============================================================================\n // Mandates Core (optional)\n // ============================================================================\n\n buildMandateCore(kind: string, payload: Record<string, unknown>, baseUrl?: string) {\n if (!this.mandateManager) {\n throw new Error('MandateManager not available. Install mandates-core.');\n }\n return this.mandateManager.buildCore(kind, payload, baseUrl);\n }\n\n createMandate(params: {\n intent: string;\n core: Record<string, unknown>;\n deadline: string;\n client: string;\n server?: string;\n version?: string;\n mandateId?: string;\n createdAt?: string;\n }) {\n if (!this.mandateManager) {\n throw new Error('MandateManager not available. Install mandates-core.');\n }\n return this.mandateManager.createMandate(params);\n }\n\n signMandateAsServer(mandate: any, privateKey?: string) {\n if (!this.mandateManager) {\n throw new Error('MandateManager not available. Install mandates-core.');\n }\n return this.mandateManager.signAsServer(mandate, privateKey);\n }\n\n signMandateAsClient(mandate: any, privateKey: string) {\n if (!this.mandateManager) {\n throw new Error('MandateManager not available. Install mandates-core.');\n }\n return this.mandateManager.signAsClient(mandate, privateKey);\n }\n\n verifyMandate(mandate: any) {\n if (!this.mandateManager) {\n throw new Error('MandateManager not available. Install mandates-core.');\n }\n return this.mandateManager.verify(mandate);\n }\n\n // ============================================================================\n // Studio Direct On-Chain Methods\n // ============================================================================\n\n /**\n * Create a new Studio on ChaosChain.\n * @see StudioClient.createStudio for full documentation\n */\n async createStudio(\n name: string,\n logicModuleAddress: string\n ): Promise<{ proxyAddress: string; studioId: bigint }> {\n return this.studio.createStudio(name, logicModuleAddress);\n }\n\n /**\n * Register agent with a Studio.\n * @see StudioClient.registerWithStudio for full documentation\n */\n async registerWithStudio(\n studioAddress: string,\n agentId: string,\n role: number,\n stakeAmount?: bigint\n ): Promise<string> {\n return this.studio.registerWithStudio(studioAddress, agentId, role, stakeAmount);\n }\n\n /**\n * Get pending rewards for an account.\n * @see StudioClient.getPendingRewards for full documentation\n */\n async getStudioPendingRewards(studioAddress: string, account: string): Promise<bigint> {\n return this.studio.getPendingRewards(studioAddress, account);\n }\n\n /**\n * Withdraw pending rewards from a Studio.\n * @see StudioClient.withdrawRewards for full documentation\n */\n async withdrawStudioRewards(studioAddress: string): Promise<string> {\n return this.studio.withdrawRewards(studioAddress);\n }\n}\n","/**\n * Local IPFS Storage Provider\n * Uses HTTP API client to interact with local IPFS daemon\n */\n\nimport axios from 'axios';\nimport { StorageProvider, UploadOptions, UploadResult } from '../../types';\n\nexport class IPFSLocalStorage implements StorageProvider {\n private apiUrl: string;\n private gatewayUrl: string;\n\n constructor(\n apiUrl: string = 'http://localhost:5001',\n gatewayUrl: string = 'http://localhost:8080'\n ) {\n this.apiUrl = apiUrl;\n this.gatewayUrl = gatewayUrl;\n }\n\n /**\n * Upload data to local IPFS\n */\n async upload(data: Buffer | string | object, options?: UploadOptions): Promise<UploadResult> {\n try {\n let buffer: Buffer;\n\n // Convert data to buffer\n if (Buffer.isBuffer(data)) {\n buffer = data;\n } else if (typeof data === 'string') {\n buffer = Buffer.from(data, 'utf-8');\n } else {\n buffer = Buffer.from(JSON.stringify(data), 'utf-8');\n }\n\n // Create form data\n const formData = new FormData();\n const blob = new Blob([buffer], { type: options?.mime || 'application/octet-stream' });\n formData.append('file', blob);\n\n // Upload to IPFS\n const response = await axios.post(`${this.apiUrl}/api/v0/add`, formData, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n params: {\n pin: options?.pin !== false, // Pin by default\n },\n });\n\n const cid = response.data.Hash;\n\n return {\n cid,\n uri: `ipfs://${cid}`,\n size: response.data.Size,\n timestamp: Date.now(),\n };\n } catch (error) {\n throw new Error(`Failed to upload to IPFS: ${(error as Error).message}`);\n }\n }\n\n /**\n * Download data from IPFS\n */\n async download(cid: string): Promise<Buffer> {\n try {\n const response = await axios.get(`${this.gatewayUrl}/ipfs/${cid}`, {\n responseType: 'arraybuffer',\n });\n\n return Buffer.from(response.data);\n } catch (error) {\n throw new Error(`Failed to download from IPFS: ${(error as Error).message}`);\n }\n }\n\n /**\n * Pin content\n */\n async pin(cid: string): Promise<void> {\n try {\n await axios.post(`${this.apiUrl}/api/v0/pin/add`, null, {\n params: { arg: cid },\n });\n } catch (error) {\n throw new Error(`Failed to pin content: ${(error as Error).message}`);\n }\n }\n\n /**\n * Unpin content\n */\n async unpin(cid: string): Promise<void> {\n try {\n await axios.post(`${this.apiUrl}/api/v0/pin/rm`, null, {\n params: { arg: cid },\n });\n } catch (error) {\n throw new Error(`Failed to unpin content: ${(error as Error).message}`);\n }\n }\n\n /**\n * Check if IPFS daemon is running\n */\n async isAvailable(): Promise<boolean> {\n try {\n await axios.post(`${this.apiUrl}/api/v0/version`);\n return true;\n } catch {\n return false;\n }\n }\n\n /**\n * Get IPFS version\n */\n async getVersion(): Promise<string> {\n try {\n const response = await axios.post(`${this.apiUrl}/api/v0/version`);\n return response.data.Version;\n } catch (error) {\n throw new Error(`Failed to get IPFS version: ${(error as Error).message}`);\n }\n }\n}\n","import { ChaosChainSDK } from './ChaosChainSDK';\nimport { ChaosChainSDKError } from './exceptions';\n\nexport interface Task {\n taskId: string;\n studioAddress: string;\n requirements: Record<string, any>;\n status: string;\n createdAt: Date;\n assignedTo?: string;\n assignedAt?: Date;\n}\n\nexport interface WorkerBid {\n bidId: string;\n taskId: string;\n workerAddress: string;\n workerAgentId: number;\n proposedPrice: number;\n estimatedTimeHours: number;\n capabilities: string[];\n reputationScore: number;\n message: string;\n submittedAt: Date;\n}\n\nexport interface StudioManagerConfig {\n sdk: ChaosChainSDK;\n messenger?: {\n sendMessage: (params: {\n toAgent: string;\n messageType: string;\n content: Record<string, any>;\n }) => Promise<string>;\n };\n}\n\nexport class StudioManager {\n private sdk: ChaosChainSDK;\n private messenger?: StudioManagerConfig['messenger'];\n private activeTasks: Record<string, Task> = {};\n private workerBids: Record<string, WorkerBid[]> = {};\n\n constructor(config: StudioManagerConfig) {\n this.sdk = config.sdk;\n this.messenger = config.messenger;\n\n if (!this.messenger) {\n console.warn(\n `⚠️ XMTP not available for ${this.sdk.agentName}. Task broadcasting will be limited.`\n );\n }\n }\n\n getRegisteredWorkers(_studioAddress: string): string[] {\n console.warn('⚠️ StudioProxy needs getRegisteredWorkers() method');\n return [];\n }\n\n async broadcastTask(\n studioAddress: string,\n taskRequirements: Record<string, any>,\n registeredWorkers: string[]\n ): Promise<string> {\n if (!this.messenger) {\n throw new ChaosChainSDKError('XMTP not available. Provide a messenger adapter.');\n }\n\n const taskId = `task_${Math.random().toString(16).slice(2, 10)}`;\n const task: Task = {\n taskId,\n studioAddress,\n requirements: taskRequirements,\n status: 'broadcasting',\n createdAt: new Date(),\n };\n\n this.activeTasks[taskId] = task;\n this.workerBids[taskId] = [];\n\n console.log(`📢 Broadcasting task ${taskId} to ${registeredWorkers.length} workers...`);\n\n for (const workerAddress of registeredWorkers) {\n try {\n await this.messenger.sendMessage({\n toAgent: workerAddress,\n messageType: 'task_broadcast',\n content: {\n task_id: taskId,\n studio_address: studioAddress,\n ...taskRequirements,\n },\n });\n console.log(`✅ Sent to ${workerAddress.slice(0, 8)}...`);\n } catch (error) {\n console.warn(`⚠️ Failed to send to ${workerAddress.slice(0, 8)}...: ${String(error)}`);\n }\n }\n\n return taskId;\n }\n\n async collectBids(taskId: string, timeoutSeconds = 300): Promise<WorkerBid[]> {\n if (!this.activeTasks[taskId]) {\n throw new ChaosChainSDKError(`Task ${taskId} not found`);\n }\n\n const deadline = Date.now() + timeoutSeconds * 1000;\n console.log(`⏳ Collecting bids for ${timeoutSeconds}s...`);\n\n while (Date.now() < deadline) {\n const bids = this.workerBids[taskId] || [];\n if (bids.length >= 3) {\n console.log(`✅ Received ${bids.length} bids`);\n break;\n }\n await new Promise((resolve) => setTimeout(resolve, 5000));\n }\n\n const bids = this.workerBids[taskId] || [];\n if (bids.length === 0) {\n console.warn('⚠️ No bids received');\n } else {\n this.displayBids(bids);\n }\n return bids;\n }\n\n submitBid(\n taskId: string,\n workerAddress: string,\n workerAgentId: number,\n proposedPrice: number,\n estimatedTimeHours: number,\n capabilities: string[],\n message = ''\n ): string {\n if (!this.activeTasks[taskId]) {\n throw new ChaosChainSDKError(`Task ${taskId} not found`);\n }\n\n const bid: WorkerBid = {\n bidId: `bid_${Math.random().toString(16).slice(2, 10)}`,\n taskId,\n workerAddress,\n workerAgentId,\n proposedPrice,\n estimatedTimeHours,\n capabilities,\n reputationScore: 0,\n message,\n submittedAt: new Date(),\n };\n\n this.workerBids[taskId] = this.workerBids[taskId] || [];\n this.workerBids[taskId].push(bid);\n\n console.log(`✅ Bid ${bid.bidId} submitted for task ${taskId}`);\n return bid.bidId;\n }\n\n getWorkerReputations(workerAddresses: string[]): Record<string, number> {\n const reputationScores: Record<string, number> = {};\n for (const address of workerAddresses) {\n reputationScores[address] = 75.0;\n }\n return reputationScores;\n }\n\n selectWorker(\n bids: WorkerBid[],\n reputationScores: Record<string, number>,\n weights?: Record<string, number>\n ): string {\n if (!bids.length) {\n throw new ChaosChainSDKError('No bids to select from');\n }\n\n const weight = weights || {\n reputation: 0.4,\n price: 0.3,\n time: 0.2,\n capabilities: 0.1,\n };\n\n const maxPrice = Math.max(...bids.map((bid) => bid.proposedPrice));\n const maxTime = Math.max(...bids.map((bid) => bid.estimatedTimeHours));\n const maxReputation = Math.max(...Object.values(reputationScores));\n\n let bestScore = -1;\n let bestWorker = bids[0].workerAddress;\n\n for (const bid of bids) {\n const reputation = reputationScores[bid.workerAddress] || 0;\n const normReputation = maxReputation > 0 ? reputation / maxReputation : 0;\n const normPrice = maxPrice > 0 ? 1 - bid.proposedPrice / maxPrice : 1;\n const normTime = maxTime > 0 ? 1 - bid.estimatedTimeHours / maxTime : 1;\n const capabilityMatch = bid.capabilities.length / 10;\n\n const score =\n weight.reputation * normReputation +\n weight.price * normPrice +\n weight.time * normTime +\n weight.capabilities * capabilityMatch;\n\n if (score > bestScore) {\n bestScore = score;\n bestWorker = bid.workerAddress;\n }\n }\n\n console.log(`✅ Selected worker: ${bestWorker.slice(0, 8)}... (score=${bestScore.toFixed(2)})`);\n return bestWorker;\n }\n\n async assignTask(taskId: string, workerAddress: string, budget: number): Promise<string> {\n if (!this.activeTasks[taskId]) {\n throw new ChaosChainSDKError(`Task ${taskId} not found`);\n }\n\n if (!this.messenger) {\n throw new ChaosChainSDKError('XMTP not available. Provide a messenger adapter.');\n }\n\n const task = this.activeTasks[taskId];\n task.status = 'assigned';\n task.assignedTo = workerAddress;\n task.assignedAt = new Date();\n\n const deadline =\n task.requirements.deadline instanceof Date\n ? task.requirements.deadline.toISOString()\n : task.requirements.deadline || '';\n\n const messageId = await this.messenger.sendMessage({\n toAgent: workerAddress,\n messageType: 'task_assignment',\n content: {\n task_id: taskId,\n studio_address: task.studioAddress,\n budget,\n deadline,\n requirements: task.requirements,\n },\n });\n\n console.log(`✅ Task ${taskId} assigned to ${workerAddress.slice(0, 8)}...`);\n return messageId;\n }\n\n private displayBids(bids: WorkerBid[]) {\n console.log(\n bids.map((bid) => ({\n worker: `${bid.workerAddress.slice(0, 8)}...`,\n price: bid.proposedPrice,\n time: bid.estimatedTimeHours,\n capabilities: bid.capabilities.slice(0, 3),\n reputation: bid.reputationScore,\n }))\n );\n }\n}\n","/**\n * Evidence DAG utilities for ChaosChain PoA scoring.\n *\n * These helpers operate on evidence graphs produced by the gateway's DKG engine.\n * Verifier agents use them to derive Proof-of-Agency scores from evidence structure.\n *\n * Architecture (3 layers per VA scoring spec):\n *\n * Layer 1 — extractAgencySignals(evidence, context?)\n * Deterministic signal extraction. 0..1 normalized.\n * Same evidence + same policy = same signals.\n *\n * Layer 2 — composeScoreVector(signals, assessment?)\n * Verifier agent produces final score vector.\n * Accepts 0..1 or 0..100 inputs, normalizes internally.\n * Output: integer tuple [0..100] × 5 for on-chain submission.\n *\n * Layer 3 — Contract aggregation (outside SDK)\n * Median / MAD / stake-weighted consensus over verifier vectors.\n */\n\n// =============================================================================\n// Core Evidence Types\n// =============================================================================\n\nexport interface EvidencePackage {\n arweave_tx_id: string;\n author: string;\n timestamp: number;\n parent_ids: string[];\n payload_hash: string;\n artifact_ids: string[];\n signature: string;\n}\n\n/** @deprecated Use WorkVerificationResult instead */\nexport interface WorkEvidenceVerificationResult {\n valid: boolean;\n scores: number[];\n}\n\nexport interface WorkVerificationResult {\n valid: boolean;\n signals?: AgencySignals;\n}\n\n/**\n * Verifier assessment — optional overrides for each dimension.\n * Values can be in 0..1 (normalized) or 0..100 (integer); the SDK\n * auto-detects and normalizes internally.\n */\nexport type VerifierAssessment = {\n initiativeScore?: number;\n collaborationScore?: number;\n reasoningScore?: number;\n complianceScore?: number;\n efficiencyScore?: number;\n};\n\n// =============================================================================\n// Agency Signals\n// =============================================================================\n\n/**\n * Deterministic agency signals extracted from an evidence DAG.\n *\n * Signals are normalized to [0, 1]. The `observed` block carries raw graph\n * features so verifier agents can apply their own judgment on top.\n */\nexport type AgencySignals = {\n initiativeSignal: number;\n collaborationSignal: number;\n reasoningSignal: number;\n complianceSignal?: number;\n efficiencySignal?: number;\n\n observed: {\n totalNodes: number;\n rootCount: number;\n edgeCount: number;\n maxDepth: number;\n artifactCount: number;\n terminalCount: number;\n integrationNodeCount: number;\n uniqueAuthors?: number;\n testsPresent?: boolean;\n policyViolations?: string[];\n requiredArtifactsPresent?: string[];\n missingArtifacts?: string[];\n durationMs?: number;\n };\n};\n\n// =============================================================================\n// Policy & Mandate Types (Phase 2)\n// =============================================================================\n\nexport type ScoreRange = {\n min: number;\n target: number;\n max: number;\n};\n\nexport type EngineeringStudioPolicy = {\n version: string;\n studioName: string;\n\n scoring: {\n initiative: {\n rootRatio: ScoreRange;\n };\n\n collaboration: {\n edgeDensity: ScoreRange;\n integrationRatio: ScoreRange;\n weights: {\n edgeDensity: number;\n integrationRatio: number;\n };\n };\n\n reasoning: {\n depthRatio: ScoreRange;\n };\n\n compliance: {\n requiredChecks: string[];\n forbiddenPatterns: string[];\n requiredArtifacts: string[];\n weights: {\n testsPresent: number;\n requiredArtifactsPresent: number;\n noPolicyViolations: number;\n };\n };\n\n efficiency: {\n durationRatio?: ScoreRange;\n artifactCountRatio?: ScoreRange;\n weights: {\n durationRatio?: number;\n artifactCountRatio?: number;\n };\n };\n };\n\n verifierInstructions: {\n initiative: string;\n collaboration: string;\n reasoning: string;\n compliance: string;\n efficiency: string;\n };\n};\n\nexport type WorkMandate = {\n taskId: string;\n title: string;\n objective: string;\n\n taskType: 'bugfix' | 'feature' | 'refactor' | 'review' | 'research';\n\n constraints?: {\n mustPassTests?: boolean;\n requiredArtifacts?: string[];\n forbiddenPatterns?: string[];\n latencyBudgetMs?: number;\n targetFiles?: string[];\n };\n\n overrides?: Partial<EngineeringStudioPolicy['scoring']>;\n\n verifierPrompt?: string;\n};\n\n/**\n * Optional context passed to extractAgencySignals for policy-conditioned scoring.\n */\nexport type SignalExtractionContext = {\n studioPolicy?: EngineeringStudioPolicy;\n workMandate?: WorkMandate;\n};\n\n// =============================================================================\n// rangeFit\n// =============================================================================\n\n/**\n * Maps a value to [0, 1] based on a (min, target, max) range.\n *\n * - value <= min or value >= max → 0\n * - value === target → 1\n * - value between min and target → linear interpolation 0..1\n * - value between target and max → linear interpolation 1..0\n *\n * Result is clamped to [0, 1].\n */\nexport function rangeFit(value: number, min: number, target: number, max: number): number {\n if (value <= min || value >= max) return 0;\n if (value === target) return 1;\n if (value < target) {\n return Math.max(0, Math.min(1, (value - min) / (target - min)));\n }\n return Math.max(0, Math.min(1, (max - value) / (max - target)));\n}\n\n// =============================================================================\n// Internal: merge policy with mandate overrides\n// =============================================================================\n\nfunction resolveScoring(\n policy?: EngineeringStudioPolicy,\n mandate?: WorkMandate,\n): EngineeringStudioPolicy['scoring'] | undefined {\n if (!policy) return undefined;\n if (!mandate?.overrides) return policy.scoring;\n\n const base = policy.scoring;\n const ov = mandate.overrides;\n\n return {\n initiative: ov.initiative ?? base.initiative,\n collaboration: ov.collaboration ?? base.collaboration,\n reasoning: ov.reasoning ?? base.reasoning,\n compliance: ov.compliance ?? base.compliance,\n efficiency: ov.efficiency ?? base.efficiency,\n };\n}\n\n// =============================================================================\n// Internal: compute observed features from evidence\n// =============================================================================\n\nfunction computeObserved(evidence: EvidencePackage[]) {\n const totalNodes = evidence.length;\n\n const childrenOf = new Map<string, string[]>();\n for (const e of evidence) {\n childrenOf.set(e.arweave_tx_id, []);\n }\n\n let edgeCount = 0;\n let rootCount = 0;\n let integrationNodeCount = 0;\n let artifactCount = 0;\n\n for (const e of evidence) {\n edgeCount += e.parent_ids.length;\n if (e.parent_ids.length === 0) rootCount++;\n if (e.parent_ids.length > 1) integrationNodeCount++;\n if (e.artifact_ids.length > 0) artifactCount++;\n\n for (const pid of e.parent_ids) {\n const c = childrenOf.get(pid);\n if (c) c.push(e.arweave_tx_id);\n }\n }\n\n let terminalCount = 0;\n for (const [, children] of childrenOf) {\n if (children.length === 0) terminalCount++;\n }\n\n const uniqueAuthors = new Set(evidence.map(e => e.author)).size;\n\n const timestamps = evidence.map(e => e.timestamp).filter(t => t > 0);\n const durationMs = timestamps.length >= 2\n ? Math.max(...timestamps) - Math.min(...timestamps)\n : undefined;\n\n const maxDepth = computeDepth(evidence);\n\n return {\n totalNodes,\n rootCount,\n edgeCount,\n maxDepth,\n artifactCount,\n terminalCount,\n integrationNodeCount,\n uniqueAuthors,\n durationMs,\n };\n}\n\n// =============================================================================\n// Internal: compliance signal from policy\n// =============================================================================\n\nfunction computeComplianceSignal(\n evidence: EvidencePackage[],\n _observed: ReturnType<typeof computeObserved>,\n scoring: EngineeringStudioPolicy['scoring'],\n mandate?: WorkMandate,\n): { signal: number; testsPresent: boolean; violations: string[]; present: string[]; missing: string[] } {\n const compliance = scoring.compliance;\n\n const allArtifacts = new Set<string>();\n for (const e of evidence) {\n for (const a of e.artifact_ids) allArtifacts.add(a);\n }\n\n const testPatterns = ['test', 'spec', '.test.', '.spec.', '__test__', '__spec__'];\n const testsPresent = [...allArtifacts].some(a => {\n const lower = a.toLowerCase();\n return testPatterns.some(p => lower.includes(p));\n });\n\n const requiredArtifacts = [\n ...(compliance.requiredArtifacts ?? []),\n ...(mandate?.constraints?.requiredArtifacts ?? []),\n ];\n const present: string[] = [];\n const missing: string[] = [];\n for (const req of requiredArtifacts) {\n const found = [...allArtifacts].some(a => a.toLowerCase().includes(req.toLowerCase()));\n if (found) present.push(req);\n else missing.push(req);\n }\n\n const forbiddenPatterns = [\n ...(compliance.forbiddenPatterns ?? []),\n ...(mandate?.constraints?.forbiddenPatterns ?? []),\n ];\n const violations: string[] = [];\n for (const pattern of forbiddenPatterns) {\n const lower = pattern.toLowerCase();\n if ([...allArtifacts].some(a => a.toLowerCase().includes(lower))) {\n violations.push(`forbidden pattern found: ${pattern}`);\n }\n }\n\n if (mandate?.constraints?.mustPassTests && !testsPresent) {\n violations.push('mandate requires tests but none detected');\n }\n\n const w = compliance.weights;\n const totalWeight = (w.testsPresent ?? 0) + (w.requiredArtifactsPresent ?? 0) + (w.noPolicyViolations ?? 0);\n\n if (totalWeight === 0) {\n return { signal: testsPresent ? 1 : 0, testsPresent, violations, present, missing };\n }\n\n const testsScore = testsPresent ? 1 : 0;\n const artifactScore = requiredArtifacts.length > 0 ? present.length / requiredArtifacts.length : 1;\n const violationScore = violations.length === 0 ? 1 : 0;\n\n const signal = Math.max(0, Math.min(1,\n (w.testsPresent * testsScore +\n w.requiredArtifactsPresent * artifactScore +\n w.noPolicyViolations * violationScore) / totalWeight,\n ));\n\n return { signal, testsPresent, violations, present, missing };\n}\n\n// =============================================================================\n// Internal: efficiency signal from policy\n// =============================================================================\n\nfunction computeEfficiencySignal(\n observed: ReturnType<typeof computeObserved>,\n scoring: EngineeringStudioPolicy['scoring'],\n mandate?: WorkMandate,\n): number | undefined {\n const eff = scoring.efficiency;\n const w = eff.weights;\n\n let totalWeight = 0;\n let weightedSum = 0;\n\n if (eff.durationRatio && w.durationRatio && observed.durationMs !== undefined) {\n const latencyBudget = mandate?.constraints?.latencyBudgetMs;\n if (latencyBudget && latencyBudget > 0) {\n const ratio = observed.durationMs / latencyBudget;\n weightedSum += w.durationRatio * rangeFit(ratio, eff.durationRatio.min, eff.durationRatio.target, eff.durationRatio.max);\n totalWeight += w.durationRatio;\n }\n }\n\n if (eff.artifactCountRatio && w.artifactCountRatio && observed.totalNodes > 0) {\n const ratio = observed.artifactCount / observed.totalNodes;\n weightedSum += w.artifactCountRatio * rangeFit(ratio, eff.artifactCountRatio.min, eff.artifactCountRatio.target, eff.artifactCountRatio.max);\n totalWeight += w.artifactCountRatio;\n }\n\n if (totalWeight === 0) return undefined;\n return Math.max(0, Math.min(1, weightedSum / totalWeight));\n}\n\n// =============================================================================\n// extractAgencySignals\n// =============================================================================\n\n/**\n * Deterministic agency signal extraction from an evidence DAG.\n *\n * Without context: produces raw structural ratio signals (Phase 1 baseline).\n * With studioPolicy/workMandate: produces policy-conditioned signals via\n * rangeFit, including deterministic compliance and efficiency (Phase 2).\n *\n * Same evidence + same context always produces the same signals.\n */\nexport function extractAgencySignals(\n evidence: EvidencePackage[],\n context?: SignalExtractionContext,\n): AgencySignals {\n const totalNodes = evidence.length;\n\n if (totalNodes === 0) {\n return {\n initiativeSignal: 0,\n collaborationSignal: 0,\n reasoningSignal: 0,\n observed: {\n totalNodes: 0,\n rootCount: 0,\n edgeCount: 0,\n maxDepth: 0,\n artifactCount: 0,\n terminalCount: 0,\n integrationNodeCount: 0,\n },\n };\n }\n\n const observed = computeObserved(evidence);\n\n // Raw structural ratios\n const rootRatio = observed.rootCount / totalNodes;\n const edgeDensity = observed.edgeCount / Math.max(totalNodes - 1, 1);\n const integrationRatio = observed.integrationNodeCount / totalNodes;\n const depthRatio = observed.maxDepth / totalNodes;\n\n const scoring = resolveScoring(context?.studioPolicy, context?.workMandate);\n\n let initiativeSignal: number;\n let collaborationSignal: number;\n let reasoningSignal: number;\n let complianceSignal: number | undefined;\n let efficiencySignal: number | undefined;\n\n const observedBlock: AgencySignals['observed'] = {\n totalNodes,\n rootCount: observed.rootCount,\n edgeCount: observed.edgeCount,\n maxDepth: observed.maxDepth,\n artifactCount: observed.artifactCount,\n terminalCount: observed.terminalCount,\n integrationNodeCount: observed.integrationNodeCount,\n uniqueAuthors: observed.uniqueAuthors,\n durationMs: observed.durationMs,\n };\n\n if (!scoring) {\n // Phase 1 baseline: raw ratios clamped to [0, 1]\n initiativeSignal = Math.max(0, Math.min(1, rootRatio));\n collaborationSignal = Math.max(0, Math.min(1, edgeDensity));\n reasoningSignal = Math.max(0, Math.min(1, depthRatio));\n } else {\n // Phase 2: policy-conditioned signals via rangeFit\n const ir = scoring.initiative.rootRatio;\n initiativeSignal = rangeFit(rootRatio, ir.min, ir.target, ir.max);\n\n const cw = scoring.collaboration.weights;\n const ed = scoring.collaboration.edgeDensity;\n const intR = scoring.collaboration.integrationRatio;\n const collabWeightSum = (cw.edgeDensity || 0) + (cw.integrationRatio || 0);\n if (collabWeightSum > 0) {\n collaborationSignal =\n (cw.edgeDensity * rangeFit(edgeDensity, ed.min, ed.target, ed.max) +\n cw.integrationRatio * rangeFit(integrationRatio, intR.min, intR.target, intR.max))\n / collabWeightSum;\n } else {\n collaborationSignal = 0;\n }\n collaborationSignal = Math.max(0, Math.min(1, collaborationSignal));\n\n const dr = scoring.reasoning.depthRatio;\n reasoningSignal = rangeFit(depthRatio, dr.min, dr.target, dr.max);\n\n // Deterministic compliance\n const compResult = computeComplianceSignal(evidence, observed, scoring, context?.workMandate);\n complianceSignal = compResult.signal;\n observedBlock.testsPresent = compResult.testsPresent;\n observedBlock.policyViolations = compResult.violations;\n observedBlock.requiredArtifactsPresent = compResult.present;\n observedBlock.missingArtifacts = compResult.missing;\n\n // Deterministic efficiency\n efficiencySignal = computeEfficiencySignal(observed, scoring, context?.workMandate);\n }\n\n return {\n initiativeSignal,\n collaborationSignal,\n reasoningSignal,\n complianceSignal,\n efficiencySignal,\n observed: observedBlock,\n };\n}\n\n// =============================================================================\n// computeDepth\n// =============================================================================\n\n/**\n * Returns the maximum causal depth of the evidence DAG.\n * A single-node graph has depth 1. A linear chain of N nodes has depth N.\n */\nexport function computeDepth(evidence: EvidencePackage[]): number {\n if (evidence.length === 0) return 0;\n\n const byId = new Map<string, EvidencePackage>();\n for (const e of evidence) byId.set(e.arweave_tx_id, e);\n\n const memo = new Map<string, number>();\n\n function dfs(id: string): number {\n if (memo.has(id)) return memo.get(id)!;\n const node = byId.get(id);\n if (!node || node.parent_ids.length === 0) {\n memo.set(id, 1);\n return 1;\n }\n let maxParent = 0;\n for (const pid of node.parent_ids) {\n maxParent = Math.max(maxParent, dfs(pid));\n }\n const depth = maxParent + 1;\n memo.set(id, depth);\n return depth;\n }\n\n let maxDepth = 0;\n for (const e of evidence) {\n maxDepth = Math.max(maxDepth, dfs(e.arweave_tx_id));\n }\n return maxDepth;\n}\n\n// =============================================================================\n// composeScoreVector\n// =============================================================================\n\n/**\n * Normalizes a verifier-provided value to [0, 1].\n * Accepts either 0..1 (float) or 0..100 (integer) range.\n * Heuristic: values > 1 are treated as 0..100 scale.\n */\nfunction normalizeInput(value: number): number {\n const v = value > 1 ? value / 100 : value;\n return Math.max(0, Math.min(1, v));\n}\n\nconst CLAMP_100 = (v: number) => Math.max(0, Math.min(100, Math.round(v)));\n\n/**\n * Composes a final on-chain score vector from deterministic signals and\n * optional verifier assessment.\n *\n * For each dimension:\n * - If the verifier provides an override → use it (normalized)\n * - Otherwise → use the deterministic signal\n * - If the signal is also undefined → 0\n *\n * Input values can be in 0..1 or 0..100; the SDK auto-detects.\n * Output is always integer tuple [0..100] × 5 ready for contract submission.\n */\nexport function composeScoreVector(\n signals: AgencySignals,\n assessment?: VerifierAssessment,\n): [number, number, number, number, number] {\n const resolve = (\n override: number | undefined,\n signal: number | undefined,\n ): number => {\n if (override !== undefined) return normalizeInput(override);\n return signal ?? 0;\n };\n\n return [\n CLAMP_100(resolve(assessment?.initiativeScore, signals.initiativeSignal) * 100),\n CLAMP_100(resolve(assessment?.collaborationScore, signals.collaborationSignal) * 100),\n CLAMP_100(resolve(assessment?.reasoningScore, signals.reasoningSignal) * 100),\n CLAMP_100(resolve(assessment?.complianceScore, signals.complianceSignal) * 100),\n CLAMP_100(resolve(assessment?.efficiencyScore, signals.efficiencySignal) * 100),\n ];\n}\n\n// =============================================================================\n// derivePoAScores\n// =============================================================================\n\n/**\n * Convenience wrapper: extract signals + compose score vector in one call.\n *\n * Returns [Initiative, Collaboration, Reasoning, Compliance, Efficiency]\n * as integers 0..100 for on-chain submission.\n *\n * Compliance and efficiency come from signals when available, or from the\n * verifier-provided `options`. No hardcoded placeholders.\n */\nexport function derivePoAScores(\n evidence: EvidencePackage[],\n options?: { compliance?: number; efficiency?: number },\n): [number, number, number, number, number] {\n if (evidence.length === 0) {\n return [0, 0, 0,\n CLAMP_100(options?.compliance !== undefined ? normalizeInput(options.compliance) * 100 : 0),\n CLAMP_100(options?.efficiency !== undefined ? normalizeInput(options.efficiency) * 100 : 0),\n ];\n }\n\n const signals = extractAgencySignals(evidence);\n\n return composeScoreVector(signals, {\n complianceScore: options?.compliance,\n efficiencyScore: options?.efficiency,\n });\n}\n\n// =============================================================================\n// validateEvidenceGraph\n// =============================================================================\n\n/**\n * Validates that the evidence forms a valid DAG:\n * - No cycles\n * - All parent_ids reference existing nodes\n */\nexport function validateEvidenceGraph(evidence: EvidencePackage[]): boolean {\n const ids = new Set(evidence.map(e => e.arweave_tx_id));\n\n for (const e of evidence) {\n for (const pid of e.parent_ids) {\n if (!ids.has(pid)) return false;\n }\n }\n\n // Cycle detection via topological sort (Kahn's algorithm)\n const inDegree = new Map<string, number>();\n const children = new Map<string, string[]>();\n\n for (const e of evidence) {\n if (!inDegree.has(e.arweave_tx_id)) inDegree.set(e.arweave_tx_id, 0);\n if (!children.has(e.arweave_tx_id)) children.set(e.arweave_tx_id, []);\n }\n\n for (const e of evidence) {\n for (const pid of e.parent_ids) {\n inDegree.set(e.arweave_tx_id, (inDegree.get(e.arweave_tx_id) ?? 0) + 1);\n const c = children.get(pid) ?? [];\n c.push(e.arweave_tx_id);\n children.set(pid, c);\n }\n }\n\n const queue: string[] = [];\n for (const [id, deg] of inDegree) {\n if (deg === 0) queue.push(id);\n }\n\n let visited = 0;\n while (queue.length > 0) {\n const node = queue.shift()!;\n visited++;\n for (const child of children.get(node) ?? []) {\n const newDeg = (inDegree.get(child) ?? 1) - 1;\n inDegree.set(child, newDeg);\n if (newDeg === 0) queue.push(child);\n }\n }\n\n return visited === evidence.length;\n}\n\n/**\n * High-level verifier helper:\n * 1) validates evidence graph integrity\n * 2) extracts deterministic agency signals (optionally policy-conditioned)\n *\n * Returns { valid, signals } — the verifier then uses composeScoreVector()\n * to produce the final on-chain score vector.\n */\nexport function verifyWorkEvidence(\n evidence: EvidencePackage[],\n context?: SignalExtractionContext,\n): WorkVerificationResult {\n const valid = validateEvidenceGraph(evidence);\n if (!valid) {\n return { valid: false };\n }\n const signals = extractAgencySignals(evidence, context);\n return { valid: true, signals };\n}\n","/**\n * ChaosChain SDK - TypeScript Entry Point\n *\n * Complete TypeScript implementation with feature parity to Python SDK\n *\n * @packageDocumentation\n */\n\n// ============================================================================\n// Main SDK Export\n// ============================================================================\nexport { ChaosChainSDK } from './ChaosChainSDK';\n\n// ============================================================================\n// Core Components\n// ============================================================================\nexport { WalletManager } from './WalletManager';\nexport { ChaosAgent } from './ChaosAgent';\n\n// ============================================================================\n// Payment Components\n// ============================================================================\nexport { X402PaymentManager } from './X402PaymentManager';\nexport type {\n X402PaymentRequest,\n X402PaymentProof,\n X402PaymentRequirements,\n PaymentHeader,\n TransferAuthorizationParams,\n X402FacilitatorConfig,\n SettleRequest,\n SettleResponse,\n} from './X402PaymentManager';\nexport { PaymentManager } from './PaymentManager';\nexport { X402Server } from './X402Server';\nexport { MandateManager } from './MandateManager';\n\n// ============================================================================\n// Advanced Integrations\n// ============================================================================\nexport { GoogleAP2Integration } from './GoogleAP2Integration';\nexport { A2AX402Extension } from './A2AX402Extension';\n// export { ProcessIntegrity } from './ProcessIntegrity'; // TODO: Fix export\n\n// ============================================================================\n// Storage Backends\n// ============================================================================\nexport {\n LocalIPFSStorage,\n PinataStorage,\n IrysStorage,\n ZeroGStorage,\n AutoStorageManager,\n type StorageBackend,\n type StorageResult,\n} from './StorageBackends';\n\n// ============================================================================\n// Storage Providers (Legacy exports)\n// ============================================================================\nexport { IPFSLocalStorage } from './providers/storage/IPFSLocal';\nexport { PinataStorage as IPFSPinataStorage } from './StorageBackends';\nexport { IrysStorage as IrysStorageProvider } from './StorageBackends';\n\n// ============================================================================\n// Exceptions\n// ============================================================================\nexport {\n ChaosChainSDKError,\n AgentRegistrationError,\n //FeedbackSubmissionError, // Not defined yet\n ValidationError as SDKValidationError,\n PaymentError,\n StorageError,\n ContractError,\n ConfigurationError,\n IntegrityVerificationError,\n // WalletError, // Not defined yet\n // NetworkError, // Not defined yet\n} from './exceptions';\n\n// ============================================================================\n// Types & Interfaces\n// ============================================================================\nexport type {\n // Core Config\n ChaosChainSDKConfig,\n WalletConfig,\n\n // Agent Types\n AgentMetadata,\n AgentRegistration,\n\n // Feedback & Reputation\n FeedbackParams,\n FeedbackRecord,\n\n // Validation\n ValidationRequestParams,\n ValidationRequest,\n\n // Payments\n X402PaymentParams,\n X402Payment,\n // X402PaymentReceipt, // Use PaymentReceipt instead\n\n // Storage\n StorageProvider,\n UploadOptions,\n UploadResult,\n\n // Compute\n ComputeProvider,\n\n // Network\n ContractAddresses,\n\n // Process Integrity\n IntegrityProof,\n TEEAttestation,\n\n // Transaction\n TransactionResult,\n} from './types';\n\n// ============================================================================\n// Enums\n// ============================================================================\nexport { NetworkConfig, AgentRole, ValidationStatus, PaymentMethod } from './types';\n\n// ============================================================================\n// Utilities\n// ============================================================================\nexport {\n getNetworkInfo,\n getContractAddresses,\n // SUPPORTED_NETWORKS // Not exported from networks.ts\n} from './utils/networks';\n\nexport {\n IDENTITY_REGISTRY_ABI,\n REPUTATION_REGISTRY_ABI,\n VALIDATION_REGISTRY_ABI,\n // ChaosChain Protocol ABIs\n CHAOS_CORE_ABI,\n STUDIO_PROXY_ABI,\n REWARDS_DISTRIBUTOR_ABI,\n STUDIO_FACTORY_ABI,\n} from './utils/contracts';\n\n// Gateway Client\nexport { GatewayClient } from './GatewayClient';\n\n// Studio Client (Direct On-Chain Operations)\nexport { StudioClient } from './StudioClient';\nexport type { StudioClientConfig } from './StudioClient';\nexport { StudioManager } from './StudioManager';\nexport type { Task, WorkerBid, StudioManagerConfig } from './StudioManager';\n\n// Workflow Types\nexport { WorkflowType, WorkflowState } from './types';\nexport type { WorkflowStatus, WorkflowProgress, WorkflowError, GatewayClientConfig } from './types';\n\n// Gateway Exceptions\nexport {\n GatewayError,\n GatewayConnectionError,\n GatewayTimeoutError,\n WorkflowFailedError,\n} from './exceptions';\n\n// Gateway Read API Types\nexport type { PendingWorkItem, PendingWorkResponse, WorkEvidenceResponse } from './types';\n\n// Deprecated Types\nexport type { XMTPMessageData, DKGNodeData } from './types';\n\n// ============================================================================\n// Evidence DAG Utilities\n// ============================================================================\nexport {\n computeDepth,\n derivePoAScores,\n validateEvidenceGraph,\n verifyWorkEvidence,\n extractAgencySignals,\n composeScoreVector,\n rangeFit,\n} from './evidence';\n\nexport type {\n EvidencePackage,\n WorkEvidenceVerificationResult,\n WorkVerificationResult,\n AgencySignals,\n VerifierAssessment,\n ScoreRange,\n EngineeringStudioPolicy,\n WorkMandate,\n SignalExtractionContext,\n} from './evidence';\n\n// ============================================================================\n// Version Info\n// ============================================================================\nexport const SDK_VERSION = '0.2.3';\nexport const ERC8004_VERSION = '1.0';\nexport const X402_VERSION = '1.0';\n\n// ============================================================================\n// Default Export\n// ============================================================================\nimport { ChaosChainSDK as SDK } from './ChaosChainSDK';\nexport default SDK;\n\n// ============================================================================\n// Quick Start Helper\n// ============================================================================\n\n/**\n * Initialize ChaosChain SDK with minimal configuration\n *\n * @example\n * ```typescript\n * import { initChaosChainSDK, ChaosChainSDK } from '@chaoschain/sdk';\n *\n * const sdk = initChaosChainSDK({\n * agentName: 'MyAgent',\n * agentDomain: 'myagent.example.com',\n * agentRole: 'server',\n * network: 'base-sepolia',\n * privateKey: process.env.PRIVATE_KEY\n * });\n *\n * const { agentId } = await sdk.registerIdentity();\n * console.log(`Agent registered with ID: ${agentId}`);\n * ```\n */\nexport function initChaosChainSDK(config: {\n agentName: string;\n agentDomain: string;\n agentRole: string;\n network: string;\n privateKey?: string;\n mnemonic?: string;\n rpcUrl?: string;\n enablePayments?: boolean;\n enableAP2?: boolean;\n enableProcessIntegrity?: boolean;\n enableStorage?: boolean;\n}): SDK {\n return new SDK(config as any);\n}\n"]}