transport-io 0.6.0 → 0.7.0

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.
@@ -22,7 +22,11 @@ import { daysLeft, ensureCertificate } from './certificate.node.js';
22
22
  import { startDevServer } from './dev-server.node.js';
23
23
  const DEFAULT_PORT = 3000;
24
24
  const DEFAULT_WT_PORT = 4433;
25
- function parse(argv) {
25
+ export function parseArgs(input) {
26
+ // The command word is dropped here rather than by the caller, so there is one place that
27
+ // knows about it. Leaving it in made `dev ./server.ts` take `dev` as the entry and fail
28
+ // with "Cannot find module .../dev", naming something the user never typed.
29
+ const argv = input[0] === 'dev' ? input.slice(1) : input;
26
30
  let entry;
27
31
  let demo = false;
28
32
  let port = DEFAULT_PORT;
@@ -75,8 +79,8 @@ function findStatic(explicit) {
75
79
  return undefined;
76
80
  }
77
81
  async function main() {
78
- const args = parse(process.argv.slice(2));
79
82
  const command = process.argv[2];
83
+ const args = parseArgs(process.argv.slice(2));
80
84
  if (args.help || command === undefined || (command !== 'dev' && !command.startsWith('-'))) {
81
85
  if (command !== undefined && command !== 'dev' && !command.startsWith('-')) {
82
86
  console.error(`unknown command '${command}'\n`);
@@ -147,8 +151,19 @@ async function main() {
147
151
  console.log('');
148
152
  }
149
153
  }
150
- main().catch((e) => {
151
- console.error(e instanceof Error ? e.message : String(e));
152
- process.exit(1);
153
- });
154
+ /**
155
+ * Only when this file is the process entry.
156
+ *
157
+ * Without the guard, importing it to test `parseArgs` runs the whole command: the test
158
+ * printed the usage text and exited. Compared by resolved path rather than `import.meta.main`
159
+ * so it behaves the same under node and bun.
160
+ */
161
+ const isEntry = process.argv[1] !== undefined &&
162
+ resolve(process.argv[1]) === resolve(fileURLToPath(import.meta.url));
163
+ if (isEntry) {
164
+ main().catch((e) => {
165
+ console.error(e instanceof Error ? e.message : String(e));
166
+ process.exit(1);
167
+ });
168
+ }
154
169
  //# sourceMappingURL=main.node.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"main.node.js","sourceRoot":"","sources":["../../src/cli/main.node.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,MAAM,YAAY,GAAG,IAAI,CAAA;AACzB,MAAM,eAAe,GAAG,IAAI,CAAA;AAW5B,SAAS,KAAK,CAAC,IAAuB;IACpC,IAAI,KAAyB,CAAA;IAC7B,IAAI,IAAI,GAAG,KAAK,CAAA;IAChB,IAAI,IAAI,GAAG,YAAY,CAAA;IACvB,IAAI,MAAM,GAAG,eAAe,CAAA;IAC5B,IAAI,SAA6B,CAAA;IACjC,IAAI,IAAI,GAAG,KAAK,CAAA;IAEhB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAW,CAAA;QAC3B,IAAI,CAAC,KAAK,QAAQ;YAAE,IAAI,GAAG,IAAI,CAAA;aAC1B,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;YAAE,IAAI,GAAG,IAAI,CAAA;aAC7C,IAAI,CAAC,KAAK,QAAQ;YAAE,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;aAC5C,IAAI,CAAC,KAAK,WAAW;YAAE,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;aACjD,IAAI,CAAC,KAAK,UAAU;YAAE,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;aAC3C,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,KAAK,KAAK,CAAC,CAAA;IAC1C,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;AACvD,CAAC;AAED,MAAM,KAAK,GAAG;;;;;;;gEAOkD,YAAY;gEACZ,eAAe;;;;;;;;;CAS9E,CAAA;AAED,SAAS,UAAU,CAAC,QAA4B;IAC9C,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAA;IACpD,KAAK,MAAM,SAAS,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;QAC/B,IAAI,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAA;IACnC,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACzC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAE/B,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC1F,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3E,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,KAAK,CAAC,CAAA;QACjD,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAClB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACjC,CAAC;IAED,0FAA0F;IAC1F,wDAAwD;IACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,kCAAkC,CAAC,CAAA;IAC5D,MAAM,IAAI,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IAExC,MAAM,KAAK,GAAG,qBAAqB,IAAI,CAAC,MAAM,GAAG,CAAA;IACjD,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACpD,oEAAoE;IACpE,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAEnC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACpE,IAAI,QAA4B,CAAA;IAChC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAA;QACrE,QAAQ,GAAG,SAAS,CAAA;QACpB,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,IAAI,CAAC,IAAI,CAAA;QAC7C,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAA;QAC/C,OAAO,CAAC,GAAG,CAAC,wBAAwB,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC1D,MAAM,eAAe,EAAE,CAAA;IACzB,CAAC;IAED,MAAM,cAAc,CAAC;QACnB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;QACjD,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;QAC1D,OAAO;QACP,QAAQ,EAAE;YACR,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YACxB,GAAG,EAAE,KAAK;YACV,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;SACtC;KACF,CAAC,CAAA;IAEF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAClE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACf,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;IAC/B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACf,OAAO,CAAC,GAAG,CAAC,oCAAoC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IAC5D,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,EAAE,CAAC,CAAA;IACvC,OAAO,CAAC,GAAG,CAAC,yBAAyB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,KAAK,GAAG,CAAC,CAAA;IAClF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAA;IAC9E,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACf,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAA;IACrF,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACf,OAAO,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAA;IAC3F,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAEf,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAClD,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE;gBACH,GAAG,OAAO,CAAC,GAAG;gBACd,qBAAqB,EAAE,IAAI,CAAC,IAAI;gBAChC,oBAAoB,EAAE,IAAI,CAAC,OAAO;gBAClC,wBAAwB,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;aAC9C;SACF,CAAC,CAAA;QACF,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAA;IACrD,CAAC;SAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAA;QACnF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACjB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;IAC1B,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"main.node.js","sourceRoot":"","sources":["../../src/cli/main.node.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAErD,MAAM,YAAY,GAAG,IAAI,CAAA;AACzB,MAAM,eAAe,GAAG,IAAI,CAAA;AAW5B,MAAM,UAAU,SAAS,CAAC,KAAwB;IAChD,yFAAyF;IACzF,wFAAwF;IACxF,4EAA4E;IAC5E,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA;IACxD,IAAI,KAAyB,CAAA;IAC7B,IAAI,IAAI,GAAG,KAAK,CAAA;IAChB,IAAI,IAAI,GAAG,YAAY,CAAA;IACvB,IAAI,MAAM,GAAG,eAAe,CAAA;IAC5B,IAAI,SAA6B,CAAA;IACjC,IAAI,IAAI,GAAG,KAAK,CAAA;IAEhB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAW,CAAA;QAC3B,IAAI,CAAC,KAAK,QAAQ;YAAE,IAAI,GAAG,IAAI,CAAA;aAC1B,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;YAAE,IAAI,GAAG,IAAI,CAAA;aAC7C,IAAI,CAAC,KAAK,QAAQ;YAAE,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;aAC5C,IAAI,CAAC,KAAK,WAAW;YAAE,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;aACjD,IAAI,CAAC,KAAK,UAAU;YAAE,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;aAC3C,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,KAAK,KAAK,CAAC,CAAA;IAC1C,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAA;AACvD,CAAC;AAED,MAAM,KAAK,GAAG;;;;;;;gEAOkD,YAAY;gEACZ,eAAe;;;;;;;;;CAS9E,CAAA;AAED,SAAS,UAAU,CAAC,QAA4B;IAC9C,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,CAAA;IACpD,KAAK,MAAM,SAAS,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAA;QAC/B,IAAI,UAAU,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAA;IACnC,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAC/B,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IAE7C,IAAI,IAAI,CAAC,IAAI,IAAI,OAAO,KAAK,SAAS,IAAI,CAAC,OAAO,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;QAC1F,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3E,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,KAAK,CAAC,CAAA;QACjD,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAClB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACjC,CAAC;IAED,0FAA0F;IAC1F,wDAAwD;IACxD,MAAM,QAAQ,GAAG,OAAO,CAAC,kCAAkC,CAAC,CAAA;IAC5D,MAAM,IAAI,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAA;IAExC,MAAM,KAAK,GAAG,qBAAqB,IAAI,CAAC,MAAM,GAAG,CAAA;IACjD,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACpD,oEAAoE;IACpE,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAEnC,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACpE,IAAI,QAA4B,CAAA;IAChC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAA;QACrE,QAAQ,GAAG,SAAS,CAAA;QACpB,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,IAAI,CAAC,IAAI,CAAA;QAC7C,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAA;QAC/C,OAAO,CAAC,GAAG,CAAC,wBAAwB,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC1D,MAAM,eAAe,EAAE,CAAA;IACzB,CAAC;IAED,MAAM,cAAc,CAAC;QACnB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;QACjD,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;QAC1D,OAAO;QACP,QAAQ,EAAE;YACR,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YACxB,GAAG,EAAE,KAAK;YACV,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;SACtC;KACF,CAAC,CAAA;IAEF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IAClE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACf,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;IAC/B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACf,OAAO,CAAC,GAAG,CAAC,oCAAoC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;IAC5D,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,EAAE,CAAC,CAAA;IACvC,OAAO,CAAC,GAAG,CAAC,yBAAyB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,KAAK,GAAG,CAAC,CAAA;IAClF,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,OAAO,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAA;IAC9E,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACf,OAAO,CAAC,GAAG,CAAC,wEAAwE,CAAC,CAAA;IACrF,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACf,OAAO,CAAC,GAAG,CAAC,4EAA4E,CAAC,CAAA;IAC3F,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IAEf,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAClD,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE;gBACH,GAAG,OAAO,CAAC,GAAG;gBACd,qBAAqB,EAAE,IAAI,CAAC,IAAI;gBAChC,oBAAoB,EAAE,IAAI,CAAC,OAAO;gBAClC,wBAAwB,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC;aAC9C;SACF,CAAC,CAAA;QACF,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAA;IACrD,CAAC;SAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAA;QACnF,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;IACjB,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,OAAO,GACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS;IAC7B,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;AAEtE,IAAI,OAAO,EAAE,CAAC;IACZ,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;QAC1B,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -14,6 +14,16 @@ export class Client {
14
14
  #listeners = new Set();
15
15
  #handlers = new Map();
16
16
  #session;
17
+ /**
18
+ * Bumped by every `disconnect`, so a connect already in flight can tell it was superseded.
19
+ *
20
+ * Without it, `disconnect()` during `await connect()` did nothing to the attempt: the
21
+ * session it eventually produced was adopted anyway and had every stored handler
22
+ * registered on it, so two sessions dispatched to one handler and every event arrived
23
+ * twice. React StrictMode does exactly that on each mount in development, and the loopback
24
+ * transport resolves fast enough to hide it.
25
+ */
26
+ #generation = 0;
17
27
  #snapshot = Object.freeze({
18
28
  status: 'idle',
19
29
  sessionId: null,
@@ -57,8 +67,21 @@ export class Client {
57
67
  this.#refs = Math.max(0, this.#refs - 1);
58
68
  if (this.#refs > 0)
59
69
  return;
70
+ this.#generation++;
60
71
  this.#patch({ status: 'closing' });
61
- this.#session?.close(CloseCode.WT_NO_ERROR, 'client disconnect');
72
+ const closing = this.#session;
73
+ closing?.close(CloseCode.WT_NO_ERROR, 'client disconnect');
74
+ /**
75
+ * Disposed as well as closed, because closing is not immediate on a real transport.
76
+ *
77
+ * `on()` registers a handler on whatever session is current, and `connect()` registers
78
+ * every stored handler on the new one. Nothing removed them from the old session, so
79
+ * during a reconnect - which is exactly what React StrictMode does on every mount in
80
+ * development - both sessions dispatched to the same handler and every event arrived
81
+ * twice. Over the loopback transport the close is fast enough to hide it; over QUIC it
82
+ * is not, which is why this was found in a browser and not in a unit test.
83
+ */
84
+ closing?.dispose();
62
85
  this.#session = undefined;
63
86
  this.#connecting = undefined;
64
87
  this.#patch({ status: 'closed', sessionId: null, rooms: [] });
@@ -97,6 +120,7 @@ export class Client {
97
120
  }
98
121
  async #doConnect() {
99
122
  this.#patch({ status: 'connecting', lastError: null });
123
+ const generation = this.#generation;
100
124
  try {
101
125
  const table = await buildEventTable(this.#opts.contract);
102
126
  const conn = await this.#opts.connect();
@@ -123,6 +147,13 @@ export class Client {
123
147
  : { scheduleFlush: this.#opts.scheduleFlush }),
124
148
  ...(this.#opts.now === undefined ? {} : { now: this.#opts.now }),
125
149
  });
150
+ // Superseded while the transport was being established. Adopting this session would
151
+ // register every handler on it alongside the one the newer connect built.
152
+ if (generation !== this.#generation) {
153
+ session.dispose();
154
+ conn.close(CloseCode.WT_NO_ERROR, 'connect superseded');
155
+ return;
156
+ }
126
157
  this.#session = session;
127
158
  for (const [event, handlers] of this.#handlers) {
128
159
  for (const h of handlers)
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -14,5 +14,5 @@ export { createServer, Server, } from './server.js';
14
14
  * `changeset version` moves the manifest, so this moves in the same commit - which the test
15
15
  * enforces rather than trusting anyone to remember.
16
16
  */
17
- export const VERSION = '0.6.0';
17
+ export const VERSION = '0.7.0';
18
18
  //# sourceMappingURL=index.js.map
@@ -1,3 +1,12 @@
1
+ /**
2
+ * The browser Connection, over the platform's own `WebTransport`.
3
+ *
4
+ * Nothing here is imported at module scope - `WebTransport` is read inside connect() -
5
+ * so importing this on a server, which Next.js will do, is safe. There is no native
6
+ * addon and no binding, which is why this file is not `*.node.ts`.
7
+ */
8
+ import { Client, type ClientOptions } from '../client.ts';
9
+ import type { AnyMap, Registered } from '../contract.ts';
1
10
  import type { Connection } from './types.ts';
2
11
  export interface BrowserConnectOptions {
3
12
  readonly url: string;
@@ -5,4 +14,27 @@ export interface BrowserConnectOptions {
5
14
  readonly certificateHash?: Uint8Array;
6
15
  }
7
16
  export declare function connectBrowser(opts: BrowserConnectOptions): Promise<Connection>;
17
+ /**
18
+ * Everything `Client` needs except `connect`, which is what this module is for.
19
+ *
20
+ * `Omit` rather than a hand-written list, so an option added to `ClientOptions` arrives here
21
+ * without anyone remembering to copy it.
22
+ */
23
+ export interface BrowserClientOptions extends Omit<ClientOptions, 'connect'>, BrowserConnectOptions {
24
+ }
25
+ /**
26
+ * A connected client, in one call.
27
+ *
28
+ * `new Client({ connect: () => connectBrowser({ url }) })` followed by `await connect()` is
29
+ * two statements and an arrow that exists only to defer the call. This module already knows
30
+ * it is building a client for a browser, so it can do both.
31
+ *
32
+ * **Pass the map explicitly, or register it.** The type argument is deliberately not
33
+ * inferred from `contract`: inferring it would hand back `Client<MapOf<typeof contract>>`,
34
+ * whose hover is 377 characters of validator internals against 107 for a named interface
35
+ * (D100). Omitting it therefore falls to `Registered`, which is either the map the
36
+ * application registered or the sentinel that names the fix. There is no third case, and
37
+ * that is the point: the shorter thing that compiles cannot be the worse one.
38
+ */
39
+ export declare function browserClient<M extends AnyMap = Registered>(options: BrowserClientOptions): Promise<Client<M>>;
8
40
  //# sourceMappingURL=browser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/transport/browser.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAyB,UAAU,EAAE,MAAM,YAAY,CAAA;AAwFnE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,uFAAuF;IACvF,QAAQ,CAAC,eAAe,CAAC,EAAE,UAAU,CAAA;CACtC;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CAgDrF"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../../src/transport/browser.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAGxD,OAAO,KAAK,EAAyB,UAAU,EAAE,MAAM,YAAY,CAAA;AAwFnE,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,uFAAuF;IACvF,QAAQ,CAAC,eAAe,CAAC,EAAE,UAAU,CAAA;CACtC;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,UAAU,CAAC,CAgDrF;AAED;;;;;GAKG;AACH,MAAM,WAAW,oBACf,SAAQ,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,EACpC,qBAAqB;CAAG;AAE5B;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,UAAU,EAC/D,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAIpB"}
@@ -5,6 +5,7 @@
5
5
  * so importing this on a server, which Next.js will do, is safe. There is no native
6
6
  * addon and no binding, which is why this file is not `*.node.ts`.
7
7
  */
8
+ import { Client } from '../client.js';
8
9
  import { TransportError } from '../errors.js';
9
10
  import { DATAGRAM_CONSERVATIVE_FLOOR } from '../protocol.js';
10
11
  class BrowserConnection {
@@ -109,4 +110,23 @@ export async function connectBrowser(opts) {
109
110
  }
110
111
  return new BrowserConnection(session);
111
112
  }
113
+ /**
114
+ * A connected client, in one call.
115
+ *
116
+ * `new Client({ connect: () => connectBrowser({ url }) })` followed by `await connect()` is
117
+ * two statements and an arrow that exists only to defer the call. This module already knows
118
+ * it is building a client for a browser, so it can do both.
119
+ *
120
+ * **Pass the map explicitly, or register it.** The type argument is deliberately not
121
+ * inferred from `contract`: inferring it would hand back `Client<MapOf<typeof contract>>`,
122
+ * whose hover is 377 characters of validator internals against 107 for a named interface
123
+ * (D100). Omitting it therefore falls to `Registered`, which is either the map the
124
+ * application registered or the sentinel that names the fix. There is no third case, and
125
+ * that is the point: the shorter thing that compiles cannot be the worse one.
126
+ */
127
+ export async function browserClient(options) {
128
+ const client = new Client({ ...options, connect: () => connectBrowser(options) });
129
+ await client.connect();
130
+ return client;
131
+ }
112
132
  //# sourceMappingURL=browser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/transport/browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/transport/browser.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,32 @@
1
+ /**
2
+ * The development-only browser connection.
3
+ *
4
+ * A pinned certificate has to reach the browser as bytes, and in development the only place
5
+ * those bytes exist is the process that minted the certificate. `transport-io dev` serves
6
+ * them at a fixed endpoint and this fetches them, which closes the one hop the documentation
7
+ * used to end at: `declare const certificateHash: Uint8Array`.
8
+ *
9
+ * Fetching a certificate hash from an endpoint and trusting whatever comes back is a
10
+ * development affordance and nothing else. It must therefore be impossible to turn on in
11
+ * production by accident, and "impossible" here is a property of the code rather than a
12
+ * convention anyone has to follow:
13
+ *
14
+ * - it refuses unless the page itself is on a loopback origin, and
15
+ * - it refuses unless the WebTransport URL it was handed is also loopback.
16
+ *
17
+ * A bundle that ships to production therefore cannot connect through this function, whatever
18
+ * anyone's build configuration says. An `NODE_ENV` check would not give that: the value is
19
+ * whatever the bundler substituted, it is routinely wrong, and it is invisible at runtime.
20
+ * A hostname cannot be got wrong.
21
+ *
22
+ * This module evaluates nothing at import time. It reads `location`, `fetch` and
23
+ * `WebTransport` inside `connectDev`, never at module scope, so importing it on a server
24
+ * is safe. `Client` is imported here and that stays true: constructing one performs no
25
+ * I/O and touches no browser global. `dev-import.test.ts` holds it, because the property
26
+ * is the kind that a later import quietly breaks.
27
+ */
28
+ import { Client, type ClientOptions } from '../client.ts';
29
+ import type { AnyMap, Registered } from '../contract.ts';
1
30
  import type { Connection } from './types.ts';
2
31
  /** Where `transport-io dev` publishes the hash. Fixed, so neither side configures it. */
3
32
  export declare const DEV_ENDPOINT = "/.well-known/transport-io-dev";
@@ -12,4 +41,17 @@ export interface DevConnectOptions {
12
41
  * cannot drift out of step with the server the CLI started.
13
42
  */
14
43
  export declare function connectDev(opts?: DevConnectOptions): Promise<Connection>;
44
+ /** Everything `Client` needs except `connect`, which is what this module supplies. */
45
+ export interface DevClientOptions extends Omit<ClientOptions, 'connect'>, DevConnectOptions {
46
+ }
47
+ /**
48
+ * A connected client against the certificate `transport-io dev` minted, in one call.
49
+ *
50
+ * The same refusals apply as to `connectDev`, because it is `connectDev` doing the
51
+ * connecting: a bundle that reaches production cannot connect through this either.
52
+ *
53
+ * **Pass the map explicitly, or register it.** See `browserClient` for why the type argument
54
+ * is not inferred from `contract`, and D100 for the measurement behind it.
55
+ */
56
+ export declare function devClient<M extends AnyMap = Registered>(options: DevClientOptions): Promise<Client<M>>;
15
57
  //# sourceMappingURL=dev.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/transport/dev.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5C,yFAAyF;AACzF,eAAO,MAAM,YAAY,kCAAkC,CAAA;AA0B3D,MAAM,WAAW,iBAAiB;IAChC,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,IAAI,GAAE,iBAAsB,GAAG,OAAO,CAAC,UAAU,CAAC,CAgElF"}
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/transport/dev.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAGxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5C,yFAAyF;AACzF,eAAO,MAAM,YAAY,kCAAkC,CAAA;AA0B3D,MAAM,WAAW,iBAAiB;IAChC,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAC3B;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,IAAI,GAAE,iBAAsB,GAAG,OAAO,CAAC,UAAU,CAAC,CAgElF;AAED,sFAAsF;AACtF,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE,iBAAiB;CAAG;AAE9F;;;;;;;;GAQG;AACH,wBAAsB,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,UAAU,EAC3D,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAIpB"}
@@ -19,8 +19,13 @@
19
19
  * whatever the bundler substituted, it is routinely wrong, and it is invisible at runtime.
20
20
  * A hostname cannot be got wrong.
21
21
  *
22
- * Nothing here is imported at module scope, so importing this file on a server is safe.
22
+ * This module evaluates nothing at import time. It reads `location`, `fetch` and
23
+ * `WebTransport` inside `connectDev`, never at module scope, so importing it on a server
24
+ * is safe. `Client` is imported here and that stays true: constructing one performs no
25
+ * I/O and touches no browser global. `dev-import.test.ts` holds it, because the property
26
+ * is the kind that a later import quietly breaks.
23
27
  */
28
+ import { Client } from '../client.js';
24
29
  import { TransportError } from '../errors.js';
25
30
  import { connectBrowser } from './browser.js';
26
31
  /** Where `transport-io dev` publishes the hash. Fixed, so neither side configures it. */
@@ -89,4 +94,18 @@ export async function connectDev(opts = {}) {
89
94
  certificateHash: Uint8Array.from(manifest.sha256),
90
95
  });
91
96
  }
97
+ /**
98
+ * A connected client against the certificate `transport-io dev` minted, in one call.
99
+ *
100
+ * The same refusals apply as to `connectDev`, because it is `connectDev` doing the
101
+ * connecting: a bundle that reaches production cannot connect through this either.
102
+ *
103
+ * **Pass the map explicitly, or register it.** See `browserClient` for why the type argument
104
+ * is not inferred from `contract`, and D100 for the measurement behind it.
105
+ */
106
+ export async function devClient(options) {
107
+ const client = new Client({ ...options, connect: () => connectDev(options) });
108
+ await client.connect();
109
+ return client;
110
+ }
92
111
  //# sourceMappingURL=dev.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/transport/dev.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/transport/dev.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import { Client, type ClientOptions } from '../client.ts';
2
+ import type { AnyMap, Registered } from '../contract.ts';
1
3
  import type { Connection } from './types.ts';
2
4
  /**
3
5
  * The reset code is only recoverable from the message text, because the error type omits
@@ -33,9 +35,22 @@ export declare function listenHttp3(opts: Http3ServerOptions): Promise<Http3List
33
35
  * environment variable itself.
34
36
  */
35
37
  export declare function listenDev(): Promise<Http3Listener>;
36
- export interface Http3ClientOptions {
38
+ export interface Http3ConnectOptions {
37
39
  readonly url: string;
38
40
  readonly certificateHash: Uint8Array;
39
41
  }
40
- export declare function connectHttp3(opts: Http3ClientOptions): Promise<Connection>;
42
+ export declare function connectHttp3(opts: Http3ConnectOptions): Promise<Connection>;
43
+ /** Everything `Client` needs except `connect`, which is what this module supplies. */
44
+ export interface Http3ClientOptions extends Omit<ClientOptions, 'connect'>, Http3ConnectOptions {
45
+ }
46
+ /**
47
+ * A connected client over the native transport, in one call.
48
+ *
49
+ * The Node counterpart of `browserClient`. Every integration test in this repository opened
50
+ * with the same two statements and the same arrow, which is the argument for it.
51
+ *
52
+ * **Pass the map explicitly, or register it.** See `browserClient` for why the type argument
53
+ * is not inferred from `contract`, and D100 for the measurement behind it.
54
+ */
55
+ export declare function http3Client<M extends AnyMap = Registered>(options: Http3ClientOptions): Promise<Client<M>>;
41
56
  //# sourceMappingURL=fails.node.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fails.node.d.ts","sourceRoot":"","sources":["../../src/transport/fails.node.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAyB,UAAU,EAAE,MAAM,YAAY,CAAA;AAkBnE;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAIrE;AAiGD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,IAAI,aAAa,CAAC,UAAU,CAAC,CAAA;IACrC,IAAI,IAAI,IAAI,CAAA;CACb;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAiClF;AAED;;;;;;GAMG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,aAAa,CAAC,CAYxD;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAA;CACrC;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CAgChF"}
1
+ {"version":3,"file":"fails.node.d.ts","sourceRoot":"","sources":["../../src/transport/fails.node.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAGxD,OAAO,KAAK,EAAyB,UAAU,EAAE,MAAM,YAAY,CAAA;AAkBnE;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAIrE;AAiGD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,IAAI,aAAa,CAAC,UAAU,CAAC,CAAA;IACrC,IAAI,IAAI,IAAI,CAAA;CACb;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAiClF;AAED;;;;;;GAMG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,aAAa,CAAC,CAYxD;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,eAAe,EAAE,UAAU,CAAA;CACrC;AAED,wBAAsB,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,CAgCjF;AAED,sFAAsF;AACtF,MAAM,WAAW,kBACf,SAAQ,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,EACpC,mBAAmB;CAAG;AAE1B;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,CAAC,SAAS,MAAM,GAAG,UAAU,EAC7D,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAIpB"}
@@ -14,6 +14,7 @@
14
14
  * recoverable only by parsing a message string
15
15
  */
16
16
  import { Http3Server, quicheLoaded, WebTransport } from '@fails-components/webtransport';
17
+ import { Client } from '../client.js';
17
18
  import { TransportError } from '../errors.js';
18
19
  import { DATAGRAM_CONSERVATIVE_FLOOR } from '../protocol.js';
19
20
  /**
@@ -197,4 +198,18 @@ export async function connectHttp3(opts) {
197
198
  }
198
199
  return new FailsConnection(wt);
199
200
  }
201
+ /**
202
+ * A connected client over the native transport, in one call.
203
+ *
204
+ * The Node counterpart of `browserClient`. Every integration test in this repository opened
205
+ * with the same two statements and the same arrow, which is the argument for it.
206
+ *
207
+ * **Pass the map explicitly, or register it.** See `browserClient` for why the type argument
208
+ * is not inferred from `contract`, and D100 for the measurement behind it.
209
+ */
210
+ export async function http3Client(options) {
211
+ const client = new Client({ ...options, connect: () => connectHttp3(options) });
212
+ await client.connect();
213
+ return client;
214
+ }
200
215
  //# sourceMappingURL=fails.node.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fails.node.js","sourceRoot":"","sources":["../../src/transport/fails.node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fails.node.js","sourceRoot":"","sources":["../../src/transport/fails.node.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "transport-io",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "Real-time apps over WebTransport. Two lanes, one contract, no fallback.",
5
5
  "license": "MIT",
6
6
  "type": "module",