@fails-components/webtransport 1.0.4 → 1.0.8

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.
Files changed (121) hide show
  1. package/dist/main/lib/client.d.ts +95 -0
  2. package/dist/main/lib/client.d.ts.map +1 -0
  3. package/dist/main/lib/dom.d.ts +88 -0
  4. package/dist/main/lib/dom.d.ts.map +1 -0
  5. package/dist/main/lib/error.d.ts +8 -0
  6. package/dist/main/lib/error.d.ts.map +1 -0
  7. package/dist/main/lib/features.d.ts +2 -0
  8. package/dist/main/lib/features.d.ts.map +1 -0
  9. package/dist/main/lib/http2/browser/browser.d.ts +30 -0
  10. package/dist/main/lib/http2/browser/browser.d.ts.map +1 -0
  11. package/dist/main/lib/http2/browser/browserparser.d.ts +41 -0
  12. package/dist/main/lib/http2/browser/browserparser.d.ts.map +1 -0
  13. package/dist/main/lib/http2/flowcontroller.d.ts +70 -0
  14. package/dist/main/lib/http2/flowcontroller.d.ts.map +1 -0
  15. package/dist/main/lib/http2/node/capsuleparser.d.ts +24 -0
  16. package/dist/main/lib/http2/node/capsuleparser.d.ts.map +1 -0
  17. package/dist/main/lib/http2/node/client.d.ts +29 -0
  18. package/dist/main/lib/http2/node/client.d.ts.map +1 -0
  19. package/dist/main/lib/http2/node/index.d.ts +3 -0
  20. package/dist/main/lib/http2/node/index.d.ts.map +1 -0
  21. package/dist/main/lib/http2/node/server.d.ts +57 -0
  22. package/dist/main/lib/http2/node/server.d.ts.map +1 -0
  23. package/dist/main/lib/http2/node/websocketparser.d.ts +86 -0
  24. package/dist/main/lib/http2/node/websocketparser.d.ts.map +1 -0
  25. package/dist/main/lib/http2/parserbase.d.ts +84 -0
  26. package/dist/main/lib/http2/parserbase.d.ts.map +1 -0
  27. package/dist/main/lib/http2/parserbasehttp2.d.ts +31 -0
  28. package/dist/main/lib/http2/parserbasehttp2.d.ts.map +1 -0
  29. package/dist/main/lib/http2/session.d.ts +71 -0
  30. package/dist/main/lib/http2/session.d.ts.map +1 -0
  31. package/dist/main/lib/http2/stream.d.ts +112 -0
  32. package/dist/main/lib/http2/stream.d.ts.map +1 -0
  33. package/dist/main/lib/http2/websocketcommon.d.ts +2 -0
  34. package/dist/main/lib/http2/websocketcommon.d.ts.map +1 -0
  35. package/dist/main/lib/index.browser.d.ts +58 -0
  36. package/dist/main/lib/index.browser.d.ts.map +1 -0
  37. package/dist/main/lib/index.node.d.ts +59 -0
  38. package/dist/main/lib/index.node.d.ts.map +1 -0
  39. package/dist/main/lib/server.d.ts +102 -0
  40. package/dist/main/lib/server.d.ts.map +1 -0
  41. package/dist/main/lib/session.d.ts +296 -0
  42. package/dist/main/lib/session.d.ts.map +1 -0
  43. package/dist/main/lib/stream.d.ts +132 -0
  44. package/dist/main/lib/stream.d.ts.map +1 -0
  45. package/dist/main/lib/types.d.ts +277 -0
  46. package/dist/main/lib/types.d.ts.map +1 -0
  47. package/dist/main/lib/utils.d.ts +11 -0
  48. package/dist/main/lib/utils.d.ts.map +1 -0
  49. package/dist/main/lib/webstreams.browser.d.ts +5 -0
  50. package/dist/main/lib/webstreams.browser.d.ts.map +1 -0
  51. package/dist/main/lib/webstreams.d.ts +10 -0
  52. package/dist/main/lib/webstreams.d.ts.map +1 -0
  53. package/dist/main/lib/webtransport.browser.d.ts +60 -0
  54. package/dist/main/lib/webtransport.browser.d.ts.map +1 -0
  55. package/dist/main/lib/webtransport.node.d.ts +26 -0
  56. package/dist/main/lib/webtransport.node.d.ts.map +1 -0
  57. package/dist/main/lib/webtransportbase.d.ts +70 -0
  58. package/dist/main/lib/webtransportbase.d.ts.map +1 -0
  59. package/dist/main/test/bidirectional-streams.spec.d.ts +5 -0
  60. package/dist/main/test/bidirectional-streams.spec.d.ts.map +1 -0
  61. package/dist/main/test/datagrams.spec.d.ts +5 -0
  62. package/dist/main/test/datagrams.spec.d.ts.map +1 -0
  63. package/dist/main/test/fixtures/certificate.d.ts +21 -0
  64. package/dist/main/test/fixtures/certificate.d.ts.map +1 -0
  65. package/dist/main/test/fixtures/chai.d.ts +2 -0
  66. package/dist/main/test/fixtures/chai.d.ts.map +1 -0
  67. package/dist/main/test/fixtures/known-bytes.d.ts +8 -0
  68. package/dist/main/test/fixtures/known-bytes.d.ts.map +1 -0
  69. package/dist/main/test/fixtures/p-timeout.d.ts +8 -0
  70. package/dist/main/test/fixtures/p-timeout.d.ts.map +1 -0
  71. package/dist/main/test/fixtures/read-cert-hash.d.ts +6 -0
  72. package/dist/main/test/fixtures/read-cert-hash.d.ts.map +1 -0
  73. package/dist/main/test/fixtures/read-stream.d.ts +18 -0
  74. package/dist/main/test/fixtures/read-stream.d.ts.map +1 -0
  75. package/dist/main/test/fixtures/reader-value.d.ts +21 -0
  76. package/dist/main/test/fixtures/reader-value.d.ts.map +1 -0
  77. package/dist/main/test/fixtures/server.d.ts +5 -0
  78. package/dist/main/test/fixtures/server.d.ts.map +1 -0
  79. package/dist/main/test/fixtures/webtransport.browser.d.ts +4 -0
  80. package/dist/main/test/fixtures/webtransport.browser.d.ts.map +1 -0
  81. package/dist/main/test/fixtures/webtransport.d.ts +3 -0
  82. package/dist/main/test/fixtures/webtransport.d.ts.map +1 -0
  83. package/dist/main/test/fixtures/write-stream.d.ts +10 -0
  84. package/dist/main/test/fixtures/write-stream.d.ts.map +1 -0
  85. package/dist/main/test/index.d.ts +2 -0
  86. package/dist/main/test/index.d.ts.map +1 -0
  87. package/dist/main/test/session.spec.d.ts +5 -0
  88. package/dist/main/test/session.spec.d.ts.map +1 -0
  89. package/dist/main/test/unidirectional-streams.spec.d.ts +2 -0
  90. package/dist/main/test/unidirectional-streams.spec.d.ts.map +1 -0
  91. package/dist/main/tsconfig.tsbuildinfo +1 -0
  92. package/dist/transports/http3-quiche/lib/clientsocket.d.ts +19 -0
  93. package/dist/transports/http3-quiche/lib/clientsocket.d.ts.map +1 -0
  94. package/dist/transports/http3-quiche/lib/index.d.ts +11 -0
  95. package/dist/transports/http3-quiche/lib/index.d.ts.map +1 -0
  96. package/dist/transports/http3-quiche/lib/serversocket.d.ts +12 -0
  97. package/dist/transports/http3-quiche/lib/serversocket.d.ts.map +1 -0
  98. package/dist/transports/http3-quiche/lib/socket.d.ts +19 -0
  99. package/dist/transports/http3-quiche/lib/socket.d.ts.map +1 -0
  100. package/dist/transports/http3-quiche/lib/types.d.ts +21 -0
  101. package/dist/transports/http3-quiche/lib/types.d.ts.map +1 -0
  102. package/dist/transports/http3-quiche/lib/utils.d.ts +6 -0
  103. package/dist/transports/http3-quiche/lib/utils.d.ts.map +1 -0
  104. package/lib/features.js +16 -0
  105. package/lib/http2/browser/browser.js +52 -0
  106. package/lib/http2/node/capsuleparser.js +8 -0
  107. package/lib/http2/node/server.js +10 -4
  108. package/lib/http2/node/websocketparser.js +17 -3
  109. package/lib/http2/parserbase.js +7 -0
  110. package/lib/http2/session.js +1 -5
  111. package/lib/session.js +16 -10
  112. package/lib/stream.js +46 -39
  113. package/lib/webtransport.browser.js +8 -2
  114. package/package.json +8 -3
  115. package/test/bidirectional-streams.spec.js +17 -31
  116. package/test/datagrams.spec.js +17 -20
  117. package/test/fixtures/webtransport.browser.js +1 -1
  118. package/test/index.js +13 -4
  119. package/test/session.spec.js +43 -48
  120. package/test/unidirectional-streams.spec.js +17 -30
  121. package/tsconfig.json +15 -0
@@ -0,0 +1,5 @@
1
+ export function createServer(): Promise<{
2
+ server: Http3Server | Http2Server;
3
+ certificate: import("./certificate.js").Certificate;
4
+ }>;
5
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../test/fixtures/server.js"],"names":[],"mappings":"AASA;;;GAgQC"}
@@ -0,0 +1,4 @@
1
+ export default webtransport;
2
+ /** @type {import('../../lib/dom').WebTransport} */
3
+ declare let webtransport: import('../../lib/dom').WebTransport;
4
+ //# sourceMappingURL=webtransport.browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webtransport.browser.d.ts","sourceRoot":"","sources":["../../../../test/fixtures/webtransport.browser.js"],"names":[],"mappings":";AAKA,mDAAmD;AAGnD,0BAHW,OAAO,eAAe,EAAE,YAAY,CAGL"}
@@ -0,0 +1,3 @@
1
+ export default WebTransport;
2
+ import { WebTransport } from "../../lib/index.node.js";
3
+ //# sourceMappingURL=webtransport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webtransport.d.ts","sourceRoot":"","sources":["../../../../test/fixtures/webtransport.js"],"names":[],"mappings":""}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Write contents to a stream and close it
3
+ *
4
+ * @template T
5
+ * @param {WritableStream<T>} writable
6
+ * @param {T[]} input
7
+ * @returns
8
+ */
9
+ export function writeStream<T>(writable: WritableStream<T>, input: T[]): Promise<void>;
10
+ //# sourceMappingURL=write-stream.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"write-stream.d.ts","sourceRoot":"","sources":["../../../../test/fixtures/write-stream.js"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,uFAeC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../test/index.js"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * <T>
3
+ */
4
+ export type Deferred<T> = import('../lib/types').Deferred<T>;
5
+ //# sourceMappingURL=session.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.spec.d.ts","sourceRoot":"","sources":["../../../test/session.spec.js"],"names":[],"mappings":";;;0BAQa,OAAO,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=unidirectional-streams.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unidirectional-streams.spec.d.ts","sourceRoot":"","sources":["../../../test/unidirectional-streams.spec.js"],"names":[],"mappings":""}
@@ -0,0 +1 @@
1
+ {"program":{"fileNames":["../../../node_modules/typescript/lib/lib.es5.d.ts","../../../node_modules/typescript/lib/lib.es2015.d.ts","../../../node_modules/typescript/lib/lib.es2016.d.ts","../../../node_modules/typescript/lib/lib.es2017.d.ts","../../../node_modules/typescript/lib/lib.es2018.d.ts","../../../node_modules/typescript/lib/lib.es2019.d.ts","../../../node_modules/typescript/lib/lib.es2020.d.ts","../../../node_modules/typescript/lib/lib.es2021.d.ts","../../../node_modules/typescript/lib/lib.dom.d.ts","../../../node_modules/typescript/lib/lib.dom.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../lib/error.js","../../../node_modules/@types/ms/index.d.ts","../../../node_modules/@types/debug/index.d.ts","../../lib/dom.ts","../../lib/http2/flowcontroller.js","../../lib/webstreams.js","../../lib/features.js","../../lib/http2/session.js","../../lib/http2/parserbasehttp2.js","../../lib/http2/node/capsuleparser.js","../../lib/http2/node/client.js","../../lib/http2/node/websocketparser.js","../../lib/http2/websocketcommon.js","../../lib/http2/node/server.js","../../lib/http2/node/index.js","../../lib/server.js","../../lib/session.js","../../lib/stream.js","../../lib/http2/stream.js","../../lib/http2/parserbase.js","../../lib/types.ts","../../lib/utils.js","../../lib/client.js","../../lib/webtransportbase.js","../../lib/http2/browser/browserparser.js","../../lib/http2/browser/browser.js","../../lib/webtransport.browser.js","../../lib/index.browser.js","../../lib/webtransport.node.js","../../lib/index.node.js","../../lib/webstreams.browser.js","../../test/fixtures/reader-value.js","../../../node_modules/@types/chai/index.d.ts","../../../node_modules/@types/chai-as-promised/index.d.ts","../../../node_modules/@types/dirty-chai/index.d.ts","../../test/fixtures/chai.js","../../test/fixtures/read-stream.js","../../test/fixtures/write-stream.js","../../test/fixtures/read-cert-hash.js","../../test/fixtures/webtransport.js","../../../node_modules/uint8arrays/dist/src/compare.d.ts","../../../node_modules/uint8arrays/dist/src/concat.d.ts","../../../node_modules/uint8arrays/dist/src/equals.d.ts","../../../node_modules/multiformats/dist/types/src/bases/interface.d.ts","../../../node_modules/multiformats/dist/types/src/hashes/interface.d.ts","../../../node_modules/multiformats/dist/types/src/link/interface.d.ts","../../../node_modules/multiformats/dist/types/src/cid.d.ts","../../../node_modules/multiformats/dist/types/src/block/interface.d.ts","../../../node_modules/multiformats/dist/types/src/codecs/interface.d.ts","../../../node_modules/multiformats/dist/types/src/interface.d.ts","../../../node_modules/multiformats/dist/types/src/hashes/digest.d.ts","../../../node_modules/multiformats/dist/types/src/hashes/hasher.d.ts","../../../node_modules/multiformats/dist/types/src/varint.d.ts","../../../node_modules/multiformats/dist/types/src/bytes.d.ts","../../../node_modules/multiformats/dist/types/src/index.d.ts","../../../node_modules/multiformats/dist/types/src/codecs/raw.d.ts","../../../node_modules/multiformats/dist/types/src/codecs/json.d.ts","../../../node_modules/multiformats/dist/types/src/bases/base.d.ts","../../../node_modules/multiformats/dist/types/src/basics.d.ts","../../../node_modules/uint8arrays/dist/src/util/bases.d.ts","../../../node_modules/uint8arrays/dist/src/from-string.d.ts","../../../node_modules/uint8arrays/dist/src/to-string.d.ts","../../../node_modules/uint8arrays/dist/src/xor.d.ts","../../../node_modules/uint8arrays/dist/src/index.d.ts","../../test/fixtures/known-bytes.js","../../test/bidirectional-streams.spec.js","../../test/fixtures/p-timeout.js","../../test/datagrams.spec.js","../../../node_modules/execa/index.d.ts","../../test/index.js","../../test/session.spec.js","../../test/unidirectional-streams.spec.js","../../test/fixtures/certificate.js","../../test/fixtures/server.js","../../test/fixtures/webtransport.browser.js","../../../transports/http3-quiche/lib/types.ts","../../../transports/http3-quiche/lib/utils.js","../../../transports/http3-quiche/lib/socket.js","../../../transports/http3-quiche/lib/clientsocket.js","../../../transports/http3-quiche/lib/serversocket.js","../../../transports/http3-quiche/lib/index.js","../../../node_modules/@types/istanbul-lib-coverage/index.d.ts","../../../node_modules/@types/json5/index.d.ts","../../../node_modules/@types/mocha/index.d.ts","../../../node_modules/@types/node/assert.d.ts","../../../node_modules/@types/node/assert/strict.d.ts","../../../node_modules/buffer/index.d.ts","../../../node_modules/undici-types/header.d.ts","../../../node_modules/undici-types/readable.d.ts","../../../node_modules/undici-types/file.d.ts","../../../node_modules/undici-types/fetch.d.ts","../../../node_modules/undici-types/formdata.d.ts","../../../node_modules/undici-types/connector.d.ts","../../../node_modules/undici-types/client.d.ts","../../../node_modules/undici-types/errors.d.ts","../../../node_modules/undici-types/dispatcher.d.ts","../../../node_modules/undici-types/global-dispatcher.d.ts","../../../node_modules/undici-types/global-origin.d.ts","../../../node_modules/undici-types/pool-stats.d.ts","../../../node_modules/undici-types/pool.d.ts","../../../node_modules/undici-types/handlers.d.ts","../../../node_modules/undici-types/balanced-pool.d.ts","../../../node_modules/undici-types/agent.d.ts","../../../node_modules/undici-types/mock-interceptor.d.ts","../../../node_modules/undici-types/mock-agent.d.ts","../../../node_modules/undici-types/mock-client.d.ts","../../../node_modules/undici-types/mock-pool.d.ts","../../../node_modules/undici-types/mock-errors.d.ts","../../../node_modules/undici-types/proxy-agent.d.ts","../../../node_modules/undici-types/api.d.ts","../../../node_modules/undici-types/cookies.d.ts","../../../node_modules/undici-types/patch.d.ts","../../../node_modules/undici-types/filereader.d.ts","../../../node_modules/undici-types/diagnostics-channel.d.ts","../../../node_modules/undici-types/websocket.d.ts","../../../node_modules/undici-types/content-type.d.ts","../../../node_modules/undici-types/cache.d.ts","../../../node_modules/undici-types/interceptors.d.ts","../../../node_modules/undici-types/index.d.ts","../../../node_modules/@types/node/globals.d.ts","../../../node_modules/@types/node/async_hooks.d.ts","../../../node_modules/@types/node/buffer.d.ts","../../../node_modules/@types/node/child_process.d.ts","../../../node_modules/@types/node/cluster.d.ts","../../../node_modules/@types/node/console.d.ts","../../../node_modules/@types/node/constants.d.ts","../../../node_modules/@types/node/crypto.d.ts","../../../node_modules/@types/node/dgram.d.ts","../../../node_modules/@types/node/diagnostics_channel.d.ts","../../../node_modules/@types/node/dns.d.ts","../../../node_modules/@types/node/dns/promises.d.ts","../../../node_modules/@types/node/domain.d.ts","../../../node_modules/@types/node/dom-events.d.ts","../../../node_modules/@types/node/events.d.ts","../../../node_modules/@types/node/fs.d.ts","../../../node_modules/@types/node/fs/promises.d.ts","../../../node_modules/@types/node/http.d.ts","../../../node_modules/@types/node/http2.d.ts","../../../node_modules/@types/node/https.d.ts","../../../node_modules/@types/node/inspector.d.ts","../../../node_modules/@types/node/module.d.ts","../../../node_modules/@types/node/net.d.ts","../../../node_modules/@types/node/os.d.ts","../../../node_modules/@types/node/path.d.ts","../../../node_modules/@types/node/perf_hooks.d.ts","../../../node_modules/@types/node/process.d.ts","../../../node_modules/@types/node/punycode.d.ts","../../../node_modules/@types/node/querystring.d.ts","../../../node_modules/@types/node/readline.d.ts","../../../node_modules/@types/node/readline/promises.d.ts","../../../node_modules/@types/node/repl.d.ts","../../../node_modules/@types/node/stream.d.ts","../../../node_modules/@types/node/stream/promises.d.ts","../../../node_modules/@types/node/stream/consumers.d.ts","../../../node_modules/@types/node/stream/web.d.ts","../../../node_modules/@types/node/string_decoder.d.ts","../../../node_modules/@types/node/test.d.ts","../../../node_modules/@types/node/timers.d.ts","../../../node_modules/@types/node/timers/promises.d.ts","../../../node_modules/@types/node/tls.d.ts","../../../node_modules/@types/node/trace_events.d.ts","../../../node_modules/@types/node/tty.d.ts","../../../node_modules/@types/node/url.d.ts","../../../node_modules/@types/node/util.d.ts","../../../node_modules/@types/node/v8.d.ts","../../../node_modules/@types/node/vm.d.ts","../../../node_modules/@types/node/wasi.d.ts","../../../node_modules/@types/node/worker_threads.d.ts","../../../node_modules/@types/node/zlib.d.ts","../../../node_modules/@types/node/globals.global.d.ts","../../../node_modules/@types/node/index.d.ts"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"f3d4da15233e593eacb3965cde7960f3fddf5878528d882bcedd5cbaba0193c7","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"34c839eaaa6d78c8674ae2c37af2236dee6831b13db7b4ef4df3ec889a04d4f2","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},{"version":"c4352126dc08b95a3c8223ea5e9e88181926d2c5fc48c0bba88ae59e2185dca2","signature":"63a5cc9a046de27986cbebbae2abe65b02dc872b3bf2e5c3016f87fcde7fbf6c"},"68cc8d6fcc2f270d7108f02f3ebc59480a54615be3e09a47e14527f349e9d53e","3eb11dbf3489064a47a2e1cf9d261b1f100ef0b3b50ffca6c44dd99d6dd81ac1",{"version":"7c432275b63a2eb24b73158e11ebddde1c71c9c6cc3448c9d755a339aba4b277","signature":"5f2be203378606155cc72f9bd7346c16253a9094d577f50f3f15e24956fc3736"},{"version":"5dc3000a5c6e7ae598ecf1561e221d7a3e0fff0f0161deb2bae2e23c0f8685b4","signature":"fc1ef0dbe7d9467c7cc33c3b3de87779e3fcd5a268733701d580e15f76b50bbf"},{"version":"2713c21b0077ae1acaf48fcd079f180cd9d7c294053b4c24b88378583aaa63c2","signature":"84c018a3169ff229e060cf0b99ba7e743d8d8b1cd4a9d754905c1e6cbcf2401f"},{"version":"7e187bdf427daae4ea556fd1135ddbb8040a7e09f5896a57b9add194f17a31d2","signature":"3e99cb1f591f42f0bf4ea331ce9bd5f23cfb886ac16bb19f0217d4046d2da233"},{"version":"ff6bb07bc908ed8d2db68b19ddd5114796e313a3389aad94f877f4ff6292f22d","signature":"826c81f9f900e7b56ac24f7e994b37caf4c4dc67c2efa8f87d4ad7198de9a402"},{"version":"6381c8e604f30d7f5fcd176f1aa246df6a22fc6a8cdbc2ef9bdbd736eb948692","signature":"dc6fb8b79c5ebd64ff76b2d092817d7866266d461b36160fa2c26e9bd1c3cb50"},{"version":"3984e3c9b376a5b5a00131b4c086a895c0249cbd87520a39ec7818fd1d71e4c5","signature":"cdde30d7bfd04f9f3485c384e3b10a3f9c8318c1eeccf3b16a9672d0a026cc86"},{"version":"5556b21788b0488ea307087c4f4753898937121f21d2c9a112f6961abcc73fce","signature":"30d9267115c04d64dda0edcad1c8ebce39b29fa949bf69d1099839e7ffec6c46"},{"version":"212924fdf5acde8b60ba91fa5a65ce0353fc8f1329280cf04f2d185a3b057398","signature":"edbdf1e026de78e60b969962867efac994ca0f7170e7e09358e47bf4aeee98ae"},{"version":"f59b7d07889ee74c3989a3bbdb375588c5ffeecb786beeaa8ce7e6d8bab33733","signature":"6b277559ffb2accd5335c0856efd487806e0172335c8ec2e4dc846a3fd21bce9"},{"version":"9e6be377003e16be9189d37176d6ddd542c27f94d33e43decb2b65c08437dc09","signature":"cd4762d6f2654f089fbe0d98300780b7628b72a0000485af144c854ffda457cd"},{"version":"84a00d85759932d524cab5dfebb0cd05c88aced4732fd96e3bf00076dafe6fd8","signature":"c35a5a91b50646cd32d63cf79f7a48febc7c880dbc811d924f2b0244a57aa064"},{"version":"610788705d09f4c43d0a98e3de8a9134506dd79356dba139b4eb0828a57cb4f6","signature":"72a4c7cacacc90ba99269ade3e237fdda6ae0763ff445c1e9f1ead3ccbabf811"},{"version":"1052591aba05b67c740a3083ae23908b6300b458644f9efde9ee1136f8f8286f","signature":"86e91c6c4802ee0c58321e11843700347d0a6c96b54eed26120f864e2633f7f0"},{"version":"c2d766405b9aeb2ea0a361d6b20d5c13cb53b1d80fc7987a782290ff7fd2841e","signature":"d36d0271794817a17d4d4b16512124d63598d63865f0b463198df277efeeb50c"},{"version":"081ccfb71026154f54b6b84fc650ae26eadbe3479db5db6a19129b32a18f7a44","signature":"9cd0538f92670225ec705f807a60230305f4f0c5d692f335f3559ef8e5cae5bb"},{"version":"fc3a94f85a27ce812f2be55e9c437110a0db0f54667a48333c642dc3880233db","signature":"f55ef8bc0d08f60bb2d78d7ed6fe16841dae1b28fc6c90312965fd0be7a4f2e3"},{"version":"5808c9bbba0ab03eb130630bc32b6692c3390855db1f2e748f97cbc29b8fd964","signature":"38dea9a33e02e90decc87c92aedb9d8c67235d0cbe688eef76b097a2ab816c40"},{"version":"ae91e0d01ed4660d98c3d6e13ea4702a644c845e4da567ea4f60186be03a807c","signature":"c9c95f3a911f293a7f0543489e4e9f5cbae5c2a48512f2558f410e837954c84a"},{"version":"5b5b94ce3583cc1d499291cd5af25b4317edd30d8f357d7d5b663ccad67e7f43","signature":"02adea311a13d428b2cfc745b1cd66262a0e73baaaff60db61cf15385ea68a0f"},{"version":"db74e32261245d20431463dd99cd80b7aac5210e908853795e2c930c4efe6247","signature":"cf48523de787efc9ac71127acd2ef55583c59ecb7a065547663c528011585002"},{"version":"50afedc71ae02213d0d9c6d9ac33c1b9bd368111f10c4fc009b31683735a4821","signature":"2c4ab958639d3ac36d19642481b22f3d8d7e4cda46b32f3bbc1899c8c76cab77"},{"version":"41d9abef63d1bff758812f7e929951685fa5aac2bf8025c8aebcd766ce835515","signature":"2c3a4a44a47ee674a2d2ad23992c3ac3248afa2d4cbe303dd1db33a1cbdfdc67"},{"version":"93d77d0de925265d7b799cc640e54b6cecdb8848bc3053c466960af764403bff","signature":"f476fcd257806c4eeb0f091eade780be128ec3ff1e4c2650ecb3230f905663cf"},{"version":"ced9a92cc10f37f5e5404ce0a9f3a9cbbf4437cd42cad653c6c42d117c7bbcd8","signature":"5046cfb2433ec4266d7d43d7a9e37eec06910ec03d874705ddaedbde0c399b81"},{"version":"996e96cb435d4f03c2327581490045b0bc7e86e1a0189b0002c87855bc5bb742","signature":"bc3c4741cce078c5fcafb904ed4406a8f924398fd0b0105619b321a8236939e0"},{"version":"d6418e84acd80f7992ec99561c92443a454ae7ba88014779e1822345dfddff5d","signature":"a5e5e09e1a2fa50805e49ead553ce6bbc0a900ab1c1529da36a1125c8cde636c"},{"version":"c1fbd353a499bbee666f6a4df772fe3e7ecca074967691f8612b7abfc63c6126","signature":"ff7ccdd97c6146e8c18b258f38819e32a65c67372e6d8e95c7cbdde1b08a63c0"},{"version":"fb2d13d1c1a698dab6d29e729f5580ade199d53e3ce030c83e100572fd301a9d","signature":"fb29a358c7c69a89fdda03377186cb07db0d1fe9f23136404e647cb4c1bbf2f0"},{"version":"4a2c144ea6f441e9616ec77fe9b1009b0cdf6db0cd9727b8d99623975cd6c693","affectsGlobalScope":true},{"version":"86e56d97b13ef0a58bc9c59aee782ae7d47d63802b5b32129ec5e5d62c20dbfa","affectsGlobalScope":true},{"version":"e78f77d6773a6fe045e871b11f905b1578f1591f6406e2d7e675fb38e30f5d38","affectsGlobalScope":true},{"version":"b3fce266ad5f8b1a3c574e9cd3bbdb01530220fec09cbbbcea88284a6e9caefb","signature":"572ecc70305e3cc8e956ca07ecceb03b8078182fbfe9d7417d59fc0204065204"},{"version":"79f693d9e4b799e195beb9a76c12413e648d417747926728c620891a6e17209c","signature":"234ce206d873fad2c650f378a16aa7ffac7f9b8be70cef954d592b194090cdf4"},{"version":"0a27165964bab83323f9f413002308be932f79e9e9b6a961e1855f582352d75c","signature":"b621976a2b5327d217244a73ab29bfb2fec039c2f993cc2317e9b6c1aa944e97"},{"version":"fa7a9fa20ed04b4fe4761bb99cb7ff4d5b4ecf8fd77ee374ed85568c7c09cf71","signature":"df7fe58add570dcc400ec01d582edb4d2d8103d752355183fd5ccbcc29f0f382"},{"version":"42c4df4fb69e235624faf0b07e4861fed986359b012b3f00d27c189a7b760b26","signature":"05ede20ab1bd88aa64739732796b00b2b056ab9bacc11de2fe162b2f4f85570b"},"75b2c58d19200315e913f9d1743c7665062b60bd4b66fc8992f944ba5030ed0b","b978810946bdb81e042ed0d6a4d9a43aa31b74ab95cee06d18ae1ef95989bb27","41faca5faa6859bbe93224fdd4007353393807527d2fb674fbd83b2edfd16af3","438ad3eed057c98e23b55ffa592f96269f07242cce80ecb8ed823574de77aab0","8eef7568d606bb74f6fa6411b6c067637777f85c00079723a9397120dd92b350","2b74d6d9875fc0b0b512b5c6f1f1ca53d050da82909f72b4cc2cdef317695aba","2a4905817a3f71d0739ed8bfb7399ec43994c9a11b20ff872b1a958edbad1cba","ae330d2797dc8a25dc36f0ade8a4a84c826d6dd4f108af61448327c9e8acac4a","fc018e192395d4243f43355c9eec40d33b8e7e7b461d693b84472aba9b099e98","e1fe04ff1ffecfb18420f0895d0cd2652f98a27def5c33aae5ef328f186c905b","635e7c978a30ab2013a37c4d05d0d081e58e4ad867db46a009412ad24ee426d7","9ebc2216a784e7fc97775fb7ab6976c6e2eb88662ff02a1a3c89a10546dac173","87b44430497cae7542bbd5ac2fb6663df6a465dea7a46be58a49cd9416530439","32b67d761db3999f1e482d0add405b695d3ec5607e07ae4c963a96334c331814","4e3ffdea3d82359fb81c9187e3d1f3ca4101963ae5e664ab47484cf61af50ee9","474ab86e676e0c1b664bfcd21b1e58bed351f3390ba1d892e8da703f371b7a4e","fb7a601066e19b5d0c173b564bd46b358cf00c9040e79fb6fd427b7aa223eed1","cf59d474e0bb4c2f3bb3be647b435891c75115f1aa9e2908b28df9dea1604be2","1535a7688c7368b2d187873760dd26c14ed28fbc0802e521aae65c30bfbb434e","c0fdc1c9e8770da790089cb0d263670cb7a22ff4193b352717936d0dd08fe26b","ee4f1e199e9d9ef5dc833b2e86d612cb152ff2c7e0e818bd117d43d791a009f3","a7975589eea94f2a13153955364398522d9a265aa2a52def61d29f752b48cc91","505fc5216cbc33392601267fa3267bf3ab582bcd8658a0c9df440f20bbd28eb8","915eb1ccca9749232f561793d1d5bbee60018edeeefe60582e23bed9cc21a866",{"version":"b3a23f34c244034103ae30c83a4f60673d3ce937c8760bdba099ca7359edb047","signature":"db703e881db6210eff0885c810406deac036ee74e9f8f108726087c19865ffef"},{"version":"26d96a2a31e1b6ffd20a5384fc33e0ae00941c83e52ac47438d4e6f2f4b8dd8b","signature":"b5c1d6282e82618c6e3f76f27cb95b4f77317ff3256e543205104667f9e49e75"},{"version":"18b74304da90c9c443c5f4adc6bf62597ad160267baeabfa7c68d68b93e122b8","signature":"8eabf89b26db8ed9b0b21fb9b293a86491953f3541ae3724f1f94b09efd50f0f"},{"version":"586a9e4cf976911f4a6ae71bdf134851e4e5bb6d73a4e47c45fccb519a772460","signature":"b5c1d6282e82618c6e3f76f27cb95b4f77317ff3256e543205104667f9e49e75"},"b64130f62287a8a5a9b9f6b95176fdbe2fae14c3a38021e8418c991805605208",{"version":"714d7e0144ab0800233e3d08068222077c39b1f7537f5b404dac99be94dcbbed","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"b89e9542d27eebc95519a06d1216e30bbaf80c397e5c99892200ed95dbb9b8c1","signature":"b5c1d6282e82618c6e3f76f27cb95b4f77317ff3256e543205104667f9e49e75"},{"version":"e015c382b4e6b80f9441c57162c1a8ba00ad8473836a008276fb24a8b1332b61","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"b0e4287bd6f35e181c6c9d425ad749a90597d6500d12145550b222bbfe320e03","signature":"2b5c9332994209d32c196cffe397048aed4c703a33f56acd60b4c874c7820a1d"},{"version":"0cca0ce18b15aff5651858ba3010cbf8049f178515c619f92dc4be32a7f16ed5","signature":"3726144e16b728be581391927125e7646972bf03d16da53765a110074aec4f46"},{"version":"c86dddd25c18b81ec16b19d72122bd5c8b797f638fe885bd755aa569de745724","signature":"35c0c52329b46bfde35d66bba45a8a8d0baaef14c22ccae54aac35d051d1933f"},{"version":"999f249ad6593c0b0d56cc46a856fd3cd80c733797edc55cca5afc096a91d062","signature":"1ef439177515fe39f96186999604cd50bf32841e8bb92733db8dc82faa511da3"},{"version":"1c9034264192f82c33eebd0a307998b7129cfff3ef898042d87de112a900bb3a","signature":"b2ec3b16946182dc902d0ed34682889cc745eeac6ea7bf3b9e85aedef00f9ce6"},{"version":"a1a82c2abd348803ff8d4d3a21528cde55d08f827acc23b611ee1fbf02432c53","signature":"aeeed088eb4c918d5ae70da407d11c8c3844e6ee15bb77036e080d85fbe87b86"},{"version":"29e8bd2ad1a898f11c10c458408561cc169de729e5f654150cb4269aa0927c0a","signature":"68bfea5e9e81fba63fb2b2f0741c7764fe7032c978937edeb5efb4b7e024e234"},{"version":"444edc62c3abe588a14e77b932a18b78a5dffed24bd5e15a5a7041b0b3290810","signature":"96b25de43fef4d114812993b253d511e037f3239ebc542141b0734fb2f408b41"},{"version":"089cdffc4b79a5323e34817fc82f43e0d43abbb45a6043917aac02fedcba433b","signature":"877582b6d874e2cb021bc44ca81670cafaca7bae6c5e884de3dc1934bdcf8404"},"035a5df183489c2e22f3cf59fc1ed2b043d27f357eecc0eb8d8e840059d44245","96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538",{"version":"0ea93d01083b3d5863cc98cb589b5d0eac55d14417487f9e5e455dfa0b17c660","affectsGlobalScope":true},"3846d0dcf468a1d1a07e6d00eaa37ec542956fb5fe0357590a6407af20d2ff90","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","7180c03fd3cb6e22f911ce9ba0f8a7008b1a6ddbe88ccf16a9c8140ef9ac1686","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","54cb85a47d760da1c13c00add10d26b5118280d44d58e6908d8e89abbd9d7725","3e4825171442666d31c845aeb47fcd34b62e14041bb353ae2b874285d78482aa","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","a967bfe3ad4e62243eb604bf956101e4c740f5921277c60debaf325c1320bf88","e9775e97ac4877aebf963a0289c81abe76d1ec9a2a7778dbe637e5151f25c5f3","471e1da5a78350bc55ef8cef24eb3aca6174143c281b8b214ca2beda51f5e04a","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","db3435f3525cd785bf21ec6769bf8da7e8a776be1a99e2e7efb5f244a2ef5fee","c3b170c45fc031db31f782e612adf7314b167e60439d304b49e704010e7bafe5","40383ebef22b943d503c6ce2cb2e060282936b952a01bea5f9f493d5fb487cc7","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","3a84b7cb891141824bd00ef8a50b6a44596aded4075da937f180c90e362fe5f6","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","33203609eba548914dc83ddf6cadbc0bcb6e8ef89f6d648ca0908ae887f9fcc5","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","e53a3c2a9f624d90f24bf4588aacd223e7bec1b9d0d479b68d2f4a9e6011147f","339dc5265ee5ed92e536a93a04c4ebbc2128f45eeec6ed29f379e0085283542c","9f0a92164925aa37d4a5d9dd3e0134cff8177208dba55fd2310cd74beea40ee2","8bfdb79bf1a9d435ec48d9372dc93291161f152c0865b81fc0b2694aedb4578d","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","d32275be3546f252e3ad33976caf8c5e842c09cb87d468cb40d5f4cf092d1acc","4a0c3504813a3289f7fb1115db13967c8e004aa8e4f8a9021b95285502221bd1",{"version":"49026435d21e3d7559d723af3ae48f73ec28f9cba651b41bd2ac991012836122","affectsGlobalScope":true},"39b1a50d543770780b0409a4caacb87f3ff1d510aedfeb7dc06ed44188256f89",{"version":"b6a4a51bc749ad882c33d98563ff5a94716ca884bfde949a8c97bad530e4ee2c","affectsGlobalScope":true},"16b872cf5432818bdbf405428b4a1d77bb2a7ab908e8bd6609f9a541cea92f81","fe39ceafa361b6d339b518936275eff89a77e7dfe92f2efa5fb97abf9a95ca49",{"version":"4009dd21843fe4a62d1d97b584a2937ca9f045df6fbd65c8b264d8dd04b656fd","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb","c9e6ea53a25729dbb5b5bb6960db4387df2f8e88add9cbf36b6ff590481134f9","3e95e6310d49db6d575ac6c2896c02761426aa5aab0b18169f971151c709b770","7eb0662b995994db248290a0f0a1d8ed685991a162ff9eb4dee36f099cccd0d9","bea5c9fc0843a6961411ab4a04df856a8372448bc0d180da0c3a054ff31044b8","715873cecbfcebb49f293f0521bd0955d6298486e2eeb9c7bbf5e9f20a6ed152","c6cf9428f45f3d78b07df7d7aab1569994c177d36549e3a962f952d89f026bc4",{"version":"2c71199d1fc83bf17636ad5bf63a945633406b7b94887612bba4ef027c662b3e","affectsGlobalScope":true},{"version":"6c7b9d2139abd8f2e83ed8fa018c3799ab3187755a6665621feb6e93d3429ac3","affectsGlobalScope":true},"a019c9782ea4e21c83881c780cebce8ad86e3f78122619336eacbd87e47fe674","021ca24be8eb8c46f99b4e03ebf872931f590c9b07b88d715c68bd30495b6c44","5899ab1898582115c432cccef063298f75477bf2cebe5473360043fddd67bcc6","6b97f4106d72ae6b4ebf4e46d2fe90f4d04dd04b3dbff6e294572440a428209d","e3baa0c5780c2c805ec33a999722a2f740b572eb3746fd0a5f93a0a5c3dbf7f6","48fedd2f8549a2ae7e62f30fdb015779c2a7b536760730c5269406cd3d17cab2",{"version":"089867511b37a534ae71f3d9bc97acc0b925b7f5dbec113f98c4b49224c694eb","affectsGlobalScope":true},"c874bfffe38a94b129077eaba4e26575972d545d5d04cd64e90c02d2c029ead6","f5ce35485541e817c2d4105d3eb78e3e538bbb009515ed014694363fa3e94ceb","323506ce173f7f865f42f493885ee3dacd18db6359ea1141d57676d3781ce10c",{"version":"bd88055918cf8bf30ad7c9269177f7ebeafd4c5f0d28919edccd1c1d24f7e73c","affectsGlobalScope":true},{"version":"4ee9304173804c2c6dff4fcb8ad900619a4078b30d37f7e455236836e8e87a45","affectsGlobalScope":true},"ea3ab3727cd6c222d94003ecafa30e8550c61eadcdabbf59514aee76e86211a5","d3cdd41693c5ed6bec4f1a1c399d9501372b14bd341bc46eedacf2854c5df5a7","2de7a21c92226fb8abbeed7a0a9bd8aa6d37e4c68a8c7ff7938c644267e9fcc1","6d6070c5c81ba0bfe58988c69e3ba3149fc86421fd383f253aeb071cbf29cd41","48dab0d6e633b8052e7eaa0efb0bb3d58a733777b248765eafcb0b0349439834","6e4b2642721462bf62d19593770659f268a6ca1e9fd15543747efb3ac471cee3","269929a24b2816343a178008ac9ae9248304d92a8ba8e233055e0ed6dbe6ef71","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633","cdaaf046791d7d588f28f32197c5d6acc43343e62540a67eed194c9c20535fdc","4b1ff655bd8edd879dd4f04f15338ce0109f58ccb424165d44fa07e7ea39c4bf",{"version":"6fa61015444e843013443f2e5ca6bee5f033cbf361f953fd932abb0c029b73b2","affectsGlobalScope":true},{"version":"300f8e9de0b0c3482be3e749462b6ebc3dab8a316801f1da0def94aed0cd2018","affectsGlobalScope":true},"4e228e78c1e9b0a75c70588d59288f63a6258e8b1fe4a67b0c53fe03461421d9","24b8c93eb91a64a6fbb877a295cfac4c10aa4660599970c954a99d33697534a3","76a89af04f2ba1807309320dab5169c0d1243b80738b4a2005989e40a136733e","c045b664abf3fc2a4750fa96117ab2735e4ed45ddd571b2a6a91b9917e231a02",{"version":"ca619678b887ae262316673b55bb358c517593d3b6b96c1271972716c699da32","affectsGlobalScope":true},{"version":"40ed27386f21a739bd0d2e2cfed563760588f2aeaa7ad149c1bf1454a7ec743a","affectsGlobalScope":true},"d1ef1d8516286380fd0a6f498f1650d374a8cb5f03d91633b6124e4fb8fb131d","fecdf44bec4ee9c5188e5f2f58c292c9689c02520900dceaaa6e76594de6da90","2641e5e19268b6f5038ad48a6e2598965301df8a77c48c99d8df760a6a154204",{"version":"6a4a80787c57c10b3ea8314c80d9cc6e1deb99d20adca16106a337825f582420","affectsGlobalScope":true},"f2b9440f98d6f94c8105883a2b65aee2fce0248f71f41beafd0a80636f3a565d",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"b510d0a18e3db42ac9765d26711083ec1e8b4e21caaca6dc4d25ae6e8623f447"],"options":{"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"module":7,"noEmitOnError":true,"noFallthroughCasesInSwitch":true,"noImplicitReturns":false,"noUnusedLocals":true,"noUnusedParameters":false,"outDir":"..","removeComments":false,"rootDir":"../../..","skipLibCheck":true,"sourceMap":true,"strict":true,"stripInternal":true,"target":7},"fileIdsList":[[49,65,69,70,212],[212],[203,212],[56,61,65,69,70,73,212],[68,69,70,212],[69,70,212],[57,68,69,212],[56,58,65,69,70,186,208,212],[59,62,212],[56,58,60,61,65,69,173,175,186,190,206,212],[57,68,69,70,175,186,212],[67,69,212],[68,69,186,212],[53,68,69,70,186,212],[53,66,68,69,70,212],[52,69,75,212],[52,64,69,77,212],[49,63,65,69,70,190,203,212],[49,52,54,55,64,66,69,70,71,203,212],[49,52,54,55,65,69,70,203,212],[52,56,68,71,186,212],[51,69,212],[49,52,65,69,70,71,72,74,203,212],[52,63,65,69,70,71,72,203,212],[52,65,69,203,212],[52,69,80,84,85,86,87,88,112,113,212],[52,69,84,85,87,88,115,212],[175,212],[81,82,83,212],[54,212],[78,80,85,86,112,113,115,121,212],[52,75,212],[78,212],[117,212],[52,69,84,87,88,212],[52,80,81,85,86,87,88,112,113,212],[81,212],[50,212],[81,82,212],[133,212],[169,212],[170,175,203,212],[171,182,183,190,200,211,212],[171,172,182,190,212],[173,212],[174,175,183,191,212],[175,200,208,212],[176,178,182,190,212],[177,212],[178,179,212],[182,212],[180,182,212],[169,182,212],[182,183,184,200,211,212],[182,183,184,197,200,203,212],[167,212,216],[178,182,185,190,200,211,212],[182,183,185,186,190,200,208,211,212],[185,187,200,208,211,212],[133,134,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218],[182,188,212],[189,211,212,216],[178,182,190,200,212],[191,212],[192,212],[169,193,212],[194,210,212,216],[195,212],[196,212],[182,197,198,212],[197,199,212,214],[170,182,200,201,202,203,212],[170,200,202,212],[200,201,212],[204,212],[169,200,212],[182,206,207,212],[206,207,212],[175,190,200,208,212],[209,212],[190,210,212],[170,185,196,211,212],[200,212,213],[189,212,214],[212,215],[170,175,182,184,193,200,211,212,214,216],[200,212,217],[170,171,200,212],[92,212],[103,104,105,106,212],[94,95,212],[94,212],[96,212],[97,212],[93,212],[93,99,212],[95,98,99,100,101,102,212],[92,93,94,96,97,212],[92,93,96,212],[108,212],[89,90,91,108,109,110,111,212],[103,107,212],[144,148,211,212],[144,200,211,212],[139,212],[141,144,208,211,212],[190,208,212],[212,219],[139,212,219],[141,144,190,211,212],[136,137,140,143,170,182,200,211,212],[136,142,212],[140,144,170,203,211,212,219],[170,212,219],[160,170,212,219],[138,139,212,219],[144,212],[138,139,140,141,142,143,144,145,146,148,149,150,151,152,153,154,155,156,157,158,159,161,162,163,164,165,166,212],[144,151,152,212],[142,144,152,153,212],[143,212],[136,139,144,212],[144,148,152,153,212],[148,212],[142,144,147,211,212],[136,141,142,144,148,151,212],[170,200,212],[139,144,160,170,212,216,219],[65,69,125,126,176,179,212],[125,127,128,183,189,192,194,211,212],[65,69,125,126,176,178,179,212],[69,124,125,175,176,208,212],[52,212],[51,124,212],[65,69],[69],[52,65,69,186],[65,69,186,190],[186],[69,186],[66,69],[52,69],[52,64,69,71,203],[52,65,69,203],[52,56,68,71,186],[49,52,203],[52,203],[52],[65,69,178],[65,178],[69,124,176],[124]],"referencedMap":[[71,1],[52,2],[49,2],[55,3],[74,4],[73,5],[53,6],[58,7],[59,8],[63,9],[62,10],[60,11],[68,12],[57,13],[56,14],[67,15],[61,2],[76,16],[78,17],[64,18],[65,19],[66,20],[69,21],[70,22],[79,2],[54,3],[75,23],[77,24],[72,25],[114,26],[116,27],[121,28],[84,29],[113,2],[115,2],[87,2],[85,30],[80,30],[122,31],[123,32],[88,33],[86,2],[118,34],[119,35],[120,36],[82,37],[81,2],[51,38],[83,39],[130,2],[131,2],[132,2],[50,2],[133,40],[134,40],[169,41],[170,42],[171,43],[172,44],[173,45],[174,46],[175,47],[176,48],[177,49],[178,50],[179,50],[181,51],[180,52],[182,53],[183,54],[184,55],[168,56],[218,2],[185,57],[186,58],[187,59],[219,60],[188,61],[189,62],[190,63],[191,64],[192,65],[193,66],[194,67],[195,68],[196,69],[197,70],[198,70],[199,71],[200,72],[202,73],[201,74],[203,3],[204,75],[205,76],[206,77],[207,78],[208,79],[209,80],[210,81],[211,82],[212,28],[213,83],[214,84],[215,85],[216,86],[217,87],[135,2],[117,88],[106,89],[92,2],[107,90],[96,91],[102,2],[95,92],[97,93],[105,94],[104,94],[99,95],[100,96],[93,2],[103,97],[98,98],[94,99],[101,2],[9,2],[10,2],[12,2],[11,2],[2,2],[13,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[3,2],[4,2],[24,2],[21,2],[22,2],[23,2],[25,2],[26,2],[27,2],[5,2],[28,2],[29,2],[30,2],[31,2],[6,2],[35,2],[32,2],[33,2],[34,2],[36,2],[7,2],[37,2],[42,2],[43,2],[38,2],[39,2],[40,2],[41,2],[8,2],[47,2],[44,2],[45,2],[46,2],[1,2],[48,2],[89,2],[90,2],[91,2],[109,100],[112,101],[110,100],[108,102],[111,2],[151,103],[158,104],[150,103],[165,105],[142,106],[141,107],[164,108],[159,109],[162,110],[144,111],[143,112],[139,113],[138,114],[161,115],[140,116],[145,117],[146,2],[149,117],[136,2],[167,118],[166,117],[153,119],[154,120],[156,121],[152,122],[155,123],[160,108],[147,124],[148,125],[157,126],[137,127],[163,128],[127,129],[129,130],[128,131],[126,132],[124,133],[125,134]],"exportedModulesMap":[[71,135],[74,135],[73,136],[53,136],[59,137],[62,138],[60,139],[68,136],[57,140],[56,140],[67,141],[76,142],[78,142],[64,136],[65,143],[66,144],[69,145],[70,136],[75,146],[77,147],[72,144],[114,136],[116,136],[123,148],[119,136],[82,37],[81,2],[51,38],[83,39],[130,2],[131,2],[132,2],[50,2],[133,40],[134,40],[169,41],[170,42],[171,43],[172,44],[173,45],[174,46],[175,47],[176,48],[177,49],[178,50],[179,50],[181,51],[180,52],[182,53],[183,54],[184,55],[168,56],[218,2],[185,57],[186,58],[187,59],[219,60],[188,61],[189,62],[190,63],[191,64],[192,65],[193,66],[194,67],[195,68],[196,69],[197,70],[198,70],[199,71],[200,72],[202,73],[201,74],[203,3],[204,75],[205,76],[206,77],[207,78],[208,79],[209,80],[210,81],[211,82],[212,28],[213,83],[214,84],[215,85],[216,86],[217,87],[135,2],[117,88],[106,89],[92,2],[107,90],[96,91],[102,2],[95,92],[97,93],[105,94],[104,94],[99,95],[100,96],[93,2],[103,97],[98,98],[94,99],[101,2],[9,2],[10,2],[12,2],[11,2],[2,2],[13,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[20,2],[3,2],[4,2],[24,2],[21,2],[22,2],[23,2],[25,2],[26,2],[27,2],[5,2],[28,2],[29,2],[30,2],[31,2],[6,2],[35,2],[32,2],[33,2],[34,2],[36,2],[7,2],[37,2],[42,2],[43,2],[38,2],[39,2],[40,2],[41,2],[8,2],[47,2],[44,2],[45,2],[46,2],[1,2],[48,2],[89,2],[90,2],[91,2],[109,100],[112,101],[110,100],[108,102],[111,2],[151,103],[158,104],[150,103],[165,105],[142,106],[141,107],[164,108],[159,109],[162,110],[144,111],[143,112],[139,113],[138,114],[161,115],[140,116],[145,117],[146,2],[149,117],[136,2],[167,118],[166,117],[153,119],[154,120],[156,121],[152,122],[155,123],[160,108],[147,124],[148,125],[157,126],[137,127],[163,128],[127,149],[128,150],[126,151],[124,148],[125,152]],"semanticDiagnosticsPerFile":[71,52,49,55,74,73,53,58,59,63,62,60,68,57,56,67,61,76,78,64,65,66,69,70,79,54,75,77,72,114,116,121,84,113,115,87,85,80,122,123,88,86,118,119,120,82,81,51,83,130,131,132,50,133,134,169,170,171,172,173,174,175,176,177,178,179,181,180,182,183,184,168,218,185,186,187,219,188,189,190,191,192,193,194,195,196,197,198,199,200,202,201,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,135,117,106,92,107,96,102,95,97,105,104,99,100,93,103,98,94,101,9,10,12,11,2,13,14,15,16,17,18,19,20,3,4,24,21,22,23,25,26,27,5,28,29,30,31,6,35,32,33,34,36,7,37,42,43,38,39,40,41,8,47,44,45,46,1,48,89,90,91,109,112,110,108,111,151,158,150,165,142,141,164,159,162,144,143,139,138,161,140,145,146,149,136,167,166,153,154,156,152,155,160,147,148,157,137,163,127,129,128,126,124,125],"latestChangedDtsFile":"../transports/http3-quiche/lib/index.d.ts"},"version":"4.9.5"}
@@ -0,0 +1,19 @@
1
+ /// <reference types="node" />
2
+ export class Http3WebTransportClientSocket extends Http3WebTransportSocket {
3
+ /**
4
+ * @param {import('../../../main/lib/types.js').HttpWebTransportInit} args
5
+ */
6
+ constructor(args: import('../../../main/lib/types.js').HttpWebTransportInit);
7
+ port: number;
8
+ host: string;
9
+ localPort: number | undefined;
10
+ forceIpv6: boolean;
11
+ /** @type {import('../../../main/lib/session.js').HttpClient} */
12
+ jsobj: import('../../../main/lib/session.js').HttpClient;
13
+ args: import("../../../main/lib/types.js").HttpWebTransportInit;
14
+ init(): void;
15
+ address: import("dns").LookupAddress | undefined;
16
+ closeClient(): void;
17
+ }
18
+ import { Http3WebTransportSocket } from "./socket.js";
19
+ //# sourceMappingURL=clientsocket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clientsocket.d.ts","sourceRoot":"","sources":["../../../../../transports/http3-quiche/lib/clientsocket.js"],"names":[],"mappings":";AAQA;IACE;;OAEG;IACH,kBAFW,OAAO,4BAA4B,EAAE,oBAAoB,EAenE;IATC,aAAwB;IACxB,aAAqC;IACrC,8BAAgC;IAChC,mBAAyC;IACzC,gEAAgE;IAEhE,OAFW,OAAO,8BAA8B,EAAE,UAAU,CAEtC;IAEtB,gEAAgB;IAGlB,aAyCC;IAtCK,iDAAqB;IAwC3B,oBAQC;CACF"}
@@ -0,0 +1,11 @@
1
+ export const wtrouter: any;
2
+ export const quicheInit: any;
3
+ export function checkQuicheInit(args?: {
4
+ quicheLogVerbose?: number | undefined;
5
+ path?: string | undefined;
6
+ } | undefined): void;
7
+ export const Http3WebTransportClient: any;
8
+ export const Http3WebTransportServer: any;
9
+ export { Http3WebTransportClientSocket } from "./clientsocket.js";
10
+ export { Http3WebTransportServerSocket } from "./serversocket.js";
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../transports/http3-quiche/lib/index.js"],"names":[],"mappings":"AA0BA,2BAAuC;AACvC,6BAA6C;AAOtC;;;qBAON;AAED,0CAAuE;AACvE,0CAAuE"}
@@ -0,0 +1,12 @@
1
+ export class Http3WebTransportServerSocket extends Http3WebTransportSocket {
2
+ port: number;
3
+ host: string;
4
+ /** @type {import('../../../main/lib/session.js').HttpServer} */
5
+ jsobj: import('../../../main/lib/session.js').HttpServer;
6
+ /** @type {import('node:dns').LookupAddress|undefined} */
7
+ address: import('node:dns').LookupAddress | undefined;
8
+ init(): void;
9
+ stopServer(): void;
10
+ }
11
+ import { Http3WebTransportSocket } from "./socket.js";
12
+ //# sourceMappingURL=serversocket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serversocket.d.ts","sourceRoot":"","sources":["../../../../../transports/http3-quiche/lib/serversocket.js"],"names":[],"mappings":"AAQA;IAQI,aAAwB;IACxB,aAAqC;IACrC,gEAAgE;IAEhE,OAFW,OAAO,8BAA8B,EAAE,UAAU,CAEtC;IAEtB,yDAAyD;IACzD,SADW,OAAO,UAAU,EAAE,aAAa,GAAC,SAAS,CAC7B;IAG1B,aA6CC;IAED,mBAKC;CACF"}
@@ -0,0 +1,19 @@
1
+ export class Http3WebTransportSocket {
2
+ /**
3
+ * @param {import('../../../main/lib/types.js').HttpWebTransportInit|undefined} args
4
+ */
5
+ constructor(args: import('../../../main/lib/types.js').HttpWebTransportInit | undefined);
6
+ /** @type {import('node:dgram').Socket} */
7
+ socketInt: import('node:dgram').Socket;
8
+ cobj: any;
9
+ chlosSched: boolean;
10
+ packetSendCB(): void;
11
+ doProcessBufferedChlos(): void;
12
+ blocked: boolean;
13
+ closed: boolean;
14
+ /**
15
+ * @param {import('./types').UDPServerSocketSend} args
16
+ */
17
+ sendPacket({ msg, offset, length, port, address }: import('./types').UDPServerSocketSend): boolean;
18
+ }
19
+ //# sourceMappingURL=socket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socket.d.ts","sourceRoot":"","sources":["../../../../../transports/http3-quiche/lib/socket.js"],"names":[],"mappings":"AAqEA;IACE;;OAEG;IACH,kBAFW,OAAO,4BAA4B,EAAE,oBAAoB,GAAC,SAAS,EAa7E;IAVC,0CAA0C;IAE1C,WAFW,OAAO,YAAY,EAAE,MAAM,CAEZ;IAE1B,UAAqB;IACrB,oBAAuB;IAgCzB,qBAKC;IA9BD,+BAGC;IAPC,iBAAoB;IACpB,gBAAmB;IAQrB;;OAEG;IAEH,mDAHW,OAAO,SAAS,EAAE,mBAAmB,WAiB/C;CAQF"}
@@ -0,0 +1,21 @@
1
+ import type { WebTransportOptions } from '../../../main/lib/dom';
2
+ export interface UDPServerSocketSend {
3
+ msg: Uint8Array;
4
+ offset: number;
5
+ length: number;
6
+ port: number;
7
+ address: string;
8
+ }
9
+ export interface Logger {
10
+ (formatter: any, ...args: any[]): void;
11
+ error: (formatter: any, ...args: any[]) => void;
12
+ trace: (formatter: any, ...args: any[]) => void;
13
+ }
14
+ export interface HttpWebTransportInit extends WebTransportOptions {
15
+ host: string;
16
+ port: string | number;
17
+ quicheLogVerbose?: number;
18
+ forceIpv6?: boolean;
19
+ localPort?: number;
20
+ }
21
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../transports/http3-quiche/lib/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACpB,MAAM,uBAAuB,CAAA;AAE9B,MAAM,WAAW,mBAAmB;IAChC,GAAG,EAAG,UAAU,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAC,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,MAAM;IACrB,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;IACtC,KAAK,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;IAC/C,KAAK,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAA;CAChD;AAED,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB;IAC/D,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @param {string} name
3
+ * @returns {import('./types').Logger}
4
+ */
5
+ export function logger(name: string): import('./types').Logger;
6
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../transports/http3-quiche/lib/utils.js"],"names":[],"mappings":"AAEA;;;GAGG;AACH,6BAHW,MAAM,GACJ,OAAO,SAAS,EAAE,MAAM,CAOpC"}
@@ -0,0 +1,16 @@
1
+ let canByteStream_ = true
2
+ try {
3
+ // @ts-ignore
4
+ // eslint-disable-next-line no-unused-vars
5
+ const teststream = new ReadableStream({
6
+ // @ts-ignore
7
+ start: (
8
+ /** @type {import("stream/web").ReadableByteStreamController} */ controller
9
+ ) => {},
10
+ type: 'bytes'
11
+ })
12
+ } catch (error) {
13
+ canByteStream_ = false
14
+ }
15
+
16
+ export const canByteStream = canByteStream_
@@ -140,6 +140,58 @@ export class Http2WebTransportBrowser {
140
140
  tokens = tokens.slice(1)
141
141
  }
142
142
  error = tokens.join(':')
143
+ } else {
144
+ switch (code) {
145
+ case 1001:
146
+ error = 'Going Away'
147
+ break
148
+ case 1002:
149
+ error = 'Protocol error'
150
+ break
151
+ case 1003:
152
+ error = 'Unsupported data'
153
+ break
154
+ case 1004:
155
+ error = 'Reserved'
156
+ break
157
+ case 1005:
158
+ error = 'No Status Rcvd'
159
+ break
160
+ case 1006:
161
+ error = 'Abnormal Closure'
162
+ break
163
+ case 1007:
164
+ error = 'Invalid frame payload data'
165
+ break
166
+ case 1008:
167
+ error = 'Policy Violation'
168
+ break
169
+ case 1009:
170
+ error = 'Message Too Big'
171
+ break
172
+ case 1010:
173
+ error = 'Mandatory Ext.'
174
+ break
175
+ case 1011:
176
+ error = 'Internal error'
177
+ break
178
+ case 1012:
179
+ error = 'Service Restart'
180
+ break
181
+ case 1013:
182
+ error = 'Try Again Later'
183
+ break
184
+ case 1014:
185
+ error = 'Bad Gateway'
186
+ break
187
+ case 1015:
188
+ error = 'TLS handshake'
189
+ break
190
+ case 1000:
191
+ default:
192
+ error = ''
193
+ break
194
+ }
143
195
  }
144
196
  nativesession.jsobj.onClose({
145
197
  errorcode: code,
@@ -288,4 +288,12 @@ export class Http2CapsuleParser extends ParserBaseHttp2 {
288
288
  if (blocked) this.blocked = true
289
289
  return blocked
290
290
  }
291
+
292
+ /**
293
+ * @param {number} code
294
+ */
295
+ closeHttp2Stream(code) {
296
+ this.stream.close(code)
297
+ this.stream.destroy()
298
+ }
291
299
  }
@@ -193,6 +193,9 @@ export class Http2WebTransportServer {
193
193
  )
194
194
 
195
195
  this.serverInt.on('stream', (stream, header) => {
196
+ stream.on('error', () => {
197
+ // we ignore errors, here, another handler is installed later
198
+ })
196
199
  if (header[':method'] !== 'CONNECT') {
197
200
  // Only accept CONNECT requests
198
201
  stream.respond({
@@ -207,7 +210,7 @@ export class Http2WebTransportServer {
207
210
  let websocketProt
208
211
  if (
209
212
  header[':protocol'] === 'websocket' &&
210
- header['Sec-WebSocket-Protocol']
213
+ header['sec-websocket-protocol']
211
214
  ) {
212
215
  websocketProt = this.checkProtocolHeader(header)
213
216
  }
@@ -225,7 +228,10 @@ export class Http2WebTransportServer {
225
228
  stream.close(constants.NGHTTP2_REFUSED_STREAM)
226
229
  return
227
230
  }
228
- const path = header[':path']
231
+ let path = header[':path']
232
+ while (path.length > 1 && path[0] === '/' && path[1] === '/') {
233
+ path = path?.slice(1)
234
+ }
229
235
  if (this.paths[path]) {
230
236
  const retObj = {
231
237
  session: new Http2WebTransportSession({
@@ -279,7 +285,7 @@ export class Http2WebTransportServer {
279
285
  ':status': '200'
280
286
  }
281
287
  // @ts-ignore
282
- if (websocketProt) resp['Sec-WebSocket-Protocol'] = websocketProt
288
+ if (websocketProt) resp['sec-websocket-protocol'] = websocketProt
283
289
  stream.respond(resp)
284
290
  this.jsobj.onHttpWTSessionVisitor(retObj)
285
291
  } else if (this.hasrequesthandler) {
@@ -292,7 +298,7 @@ export class Http2WebTransportServer {
292
298
  ':status': '200'
293
299
  }
294
300
  // @ts-ignore
295
- if (websocketProt) resp['Sec-WebSocket-Protocol'] = websocketProt
301
+ if (websocketProt) resp['sec-websocket-protocol'] = websocketProt
296
302
  stream.respond(resp)
297
303
  this.jsobj.onSessionRequest(retObj)
298
304
  } else {
@@ -81,6 +81,7 @@ function readQWord(bs) {
81
81
  * @param{number} length
82
82
  */
83
83
  function applyMask(ms, buffer, offset, length) {
84
+ // Note offset: includes the byteOffset into the buffer
84
85
  if (length > 24) {
85
86
  let run = 0
86
87
  // alignment preamble, inspired from ws bufferutil
@@ -102,11 +103,11 @@ function applyMask(ms, buffer, offset, length) {
102
103
  const data64 = new BigUint64Array(
103
104
  buffer.buffer,
104
105
  run + offset,
105
- Math.floor((buffer.length - run - offset) / 8)
106
+ Math.floor((length - run) / 8)
106
107
  )
107
108
  const workmask64 = new BigUint64Array(workmask.buffer)
108
109
  let run64 = 0
109
- while (run + 8 <= length) {
110
+ while (run + 8 < length) {
110
111
  data64[run64] ^= workmask64[0]
111
112
  run += 8
112
113
  run64++
@@ -740,7 +741,7 @@ export class WebSocketParser extends ParserBaseHttp2 {
740
741
  applyMask(
741
742
  maskstate,
742
743
  bufferstate.buffer,
743
- bufferstate.offset,
744
+ bufferstate.offset + bufferstate.buffer.byteOffset,
744
745
  endmask - beginmask
745
746
  )
746
747
  if (payload)
@@ -826,4 +827,17 @@ export class WebSocketParser extends ParserBaseHttp2 {
826
827
  if (blocked) this.blocked = true
827
828
  return blocked
828
829
  }
830
+
831
+ /**
832
+ * @param {number} code
833
+ */
834
+ closeHttp2Stream(code) {
835
+ const stream = this.stream
836
+ if (stream.close) {
837
+ stream.setTimeout(1000, () =>
838
+ stream.close(0x00 /* aka NGHTTP2_NO_ERROR */)
839
+ )
840
+ } else if (stream.end) stream.end()
841
+ else throw new Error('http2:session not close method')
842
+ }
829
843
  }
@@ -136,4 +136,11 @@ export class ParserBase {
136
136
  const object = this.wtstreams.get(Number(streamid))
137
137
  if (object && offset) object.flowController.reportBlocked(offset)
138
138
  }
139
+
140
+ /**
141
+ * @param {number} code
142
+ */
143
+ closeHttp2Stream(code) {
144
+ throw new Error('Implement closeHttp2Stream in derived Class')
145
+ }
139
146
  }
@@ -157,11 +157,7 @@ export class Http2WebTransportSession {
157
157
  this.capsParser.sendClose({ code, reason }) // this includes for ws closing the session!
158
158
  // what to do with the reason
159
159
  if (this.stream) {
160
- if (this.stream.close) {
161
- this.stream.close(code)
162
- this.stream.destroy()
163
- } else if (this.stream.end) this.stream.end()
164
- else throw new Error('http2:session not close method')
160
+ this.capsParser.closeHttp2Stream(code)
165
161
  }
166
162
  }
167
163
 
package/lib/session.js CHANGED
@@ -2,6 +2,7 @@ import { ReadableStream, WritableStream } from './webstreams.js'
2
2
  import { HttpWTStream } from './stream.js'
3
3
  import { WebTransportError } from './error.js'
4
4
  import { logger } from './utils.js'
5
+ import { canByteStream } from './features.js'
5
6
 
6
7
  const pid = typeof process !== 'undefined' ? process.pid : 0
7
8
  const log = logger(`webtransport:httpwtsession(${pid})`)
@@ -113,19 +114,23 @@ export class HttpWTSession {
113
114
  this.writeDatagramRej = []
114
115
  /** @type {Array<Promise<void>>} */
115
116
  this.writeDatagramProm = []
116
-
117
+ const readableopts = {
118
+ start: (
119
+ /** @type {import("stream/web").ReadableByteStreamController} */ controller
120
+ ) => {
121
+ this.incomDatagramController = controller
122
+ },
123
+ type: 'bytes'
124
+ }
125
+ if (!canByteStream) {
126
+ // @ts-ignore
127
+ delete readableopts.type
128
+ }
117
129
  /** @type {WebTransportDatagramDuplexStream} */
118
130
  this.datagrams = {
119
131
  /** @type {ReadableStream<Uint8Array>} */
120
132
  // @ts-ignore
121
- readable: new ReadableStream({
122
- start: (
123
- /** @type {import("stream/web").ReadableByteStreamController} */ controller
124
- ) => {
125
- this.incomDatagramController = controller
126
- },
127
- type: 'bytes'
128
- }),
133
+ readable: new ReadableStream(readableopts),
129
134
  writable: new WritableStream({
130
135
  start: (controller) => {
131
136
  this.outgoDatagramController = controller
@@ -548,8 +553,9 @@ export class HttpWTSession {
548
553
  )
549
554
  destview.set(args.datagram)
550
555
  byob.respond(args.datagram.byteLength)
556
+ } else {
557
+ this.incomDatagramController.enqueue(new Uint8Array(args.datagram))
551
558
  }
552
- this.incomDatagramController.enqueue(new Uint8Array(args.datagram))
553
559
  }
554
560
 
555
561
  /**