@gurezo/web-serial-rxjs 2.4.0 → 3.1.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.
- package/README.ja.md +17 -10
- package/README.md +21 -12
- package/dist/errors/serial-error-code.d.ts +81 -37
- package/dist/errors/serial-error-code.d.ts.map +1 -1
- package/dist/errors/serial-error-context.d.ts +61 -0
- package/dist/errors/serial-error-context.d.ts.map +1 -0
- package/dist/errors/serial-error.d.ts +42 -21
- package/dist/errors/serial-error.d.ts.map +1 -1
- package/dist/index.d.ts +42 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +1278 -635
- package/dist/index.mjs.map +4 -4
- package/dist/internal/assert-never.d.ts +11 -0
- package/dist/internal/assert-never.d.ts.map +1 -0
- package/dist/internal/branded-numbers.d.ts +37 -0
- package/dist/internal/branded-numbers.d.ts.map +1 -0
- package/dist/internal/strip-ansi-sequences.d.ts +25 -0
- package/dist/internal/strip-ansi-sequences.d.ts.map +1 -0
- package/dist/session/create-serial-session.d.ts +6 -3
- package/dist/session/create-serial-session.d.ts.map +1 -1
- package/dist/session/index.d.ts +7 -2
- package/dist/session/index.d.ts.map +1 -1
- package/dist/session/internal/build-request-options.d.ts +7 -7
- package/dist/session/internal/build-request-options.d.ts.map +1 -1
- package/dist/session/internal/error-severity.d.ts +38 -0
- package/dist/session/internal/error-severity.d.ts.map +1 -0
- package/dist/session/internal/line-buffer.d.ts +15 -4
- package/dist/session/internal/line-buffer.d.ts.map +1 -1
- package/dist/session/internal/receive-pipeline.d.ts +34 -0
- package/dist/session/internal/receive-pipeline.d.ts.map +1 -0
- package/dist/session/internal/receive-replay-buffer.d.ts +3 -2
- package/dist/session/internal/receive-replay-buffer.d.ts.map +1 -1
- package/dist/session/internal/session-error-reporter.d.ts +32 -0
- package/dist/session/internal/session-error-reporter.d.ts.map +1 -0
- package/dist/session/internal/session-lifecycle.d.ts +44 -0
- package/dist/session/internal/session-lifecycle.d.ts.map +1 -0
- package/dist/session/internal/validate-serial-port-filters.d.ts +12 -0
- package/dist/session/internal/validate-serial-port-filters.d.ts.map +1 -0
- package/dist/session/is-connected-session-state.d.ts +11 -0
- package/dist/session/is-connected-session-state.d.ts.map +1 -0
- package/dist/session/normalize-serial-error.d.ts +1 -1
- package/dist/session/normalize-serial-error.d.ts.map +1 -1
- package/dist/session/serial-session-options.d.ts +118 -65
- package/dist/session/serial-session-options.d.ts.map +1 -1
- package/dist/session/serial-session-state.d.ts +50 -12
- package/dist/session/serial-session-state.d.ts.map +1 -1
- package/dist/session/serial-session.d.ts +52 -18
- package/dist/session/serial-session.d.ts.map +1 -1
- package/dist/session/session-runtime.d.ts +140 -0
- package/dist/session/session-runtime.d.ts.map +1 -0
- package/dist/terminal/create-terminal-buffer.d.ts +15 -3
- package/dist/terminal/create-terminal-buffer.d.ts.map +1 -1
- package/dist/types.d.ts +18 -0
- package/dist/types.d.ts.map +1 -0
- package/package.json +1 -1
- package/dist/session/session-state-machine.d.ts +0 -40
- package/dist/session/session-state-machine.d.ts.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -6,21 +6,30 @@
|
|
|
6
6
|
* A TypeScript library that wraps the Web Serial API with a minimal,
|
|
7
7
|
* RxJS-based session surface.
|
|
8
8
|
*
|
|
9
|
-
* ## Public API
|
|
9
|
+
* ## Public API
|
|
10
10
|
*
|
|
11
|
-
* The
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
11
|
+
* The public API exposes a single, session-oriented surface so that apps
|
|
12
|
+
* (Angular, Vue, React, Svelte, vanilla JS/TS) can drive their UI from
|
|
13
|
+
* `state$` (canonical lifecycle discriminated union) + `errors$` (error event
|
|
14
|
+
* channel) + `receive$` + `terminalText$` + `lines$` without rebuilding state,
|
|
15
|
+
* read loops, or write queues. Derive convenience booleans from `state$`
|
|
16
|
+
* narrowing; `isConnected$` is deprecated in v3.x.
|
|
15
17
|
*
|
|
16
18
|
* - {@link createSerialSession} - factory for a {@link SerialSession}
|
|
17
19
|
* - {@link createTerminalBuffer} - terminal-style display text from {@link SerialSession.receive$}
|
|
18
20
|
* - {@link TerminalBufferOptions} - memory limits for terminal display text
|
|
19
21
|
* - {@link LineBufferOptions} - memory limits for lines$ incomplete line tail
|
|
20
22
|
* - {@link SerialSession} - the runtime interface
|
|
21
|
-
* - {@link SerialSessionOptions} - connection
|
|
22
|
-
* - {@link
|
|
23
|
+
* - {@link SerialSessionOptions} - factory options (connection + features)
|
|
24
|
+
* - {@link SerialPayload} - payload accepted by {@link SerialSession.send$}
|
|
25
|
+
* - {@link SerialConnectionOptions} - `port.open` connection parameters (excluding filters)
|
|
26
|
+
* - {@link SerialSessionFeatureOptions} - library-specific session feature options
|
|
27
|
+
* - {@link SerialSessionStatus} - lifecycle status literals for `state$.status`
|
|
28
|
+
* - {@link SerialSessionState} - discriminated union emitted by `state$`
|
|
29
|
+
* - {@link isConnectedSessionState} - type predicate for connected `state$` narrowing in RxJS pipelines
|
|
23
30
|
* - {@link SerialError} / {@link SerialErrorCode} - unified error surface
|
|
31
|
+
* - {@link SerialErrorContextMap} - structured metadata per error code
|
|
32
|
+
* - {@link ValidationErrorContext} - machine-readable validation error metadata
|
|
24
33
|
*
|
|
25
34
|
* ## Browser Support
|
|
26
35
|
*
|
|
@@ -41,25 +50,46 @@
|
|
|
41
50
|
*
|
|
42
51
|
* @example
|
|
43
52
|
* ```typescript
|
|
44
|
-
* import {
|
|
53
|
+
* import { filter } from 'rxjs';
|
|
54
|
+
* import {
|
|
55
|
+
* createSerialSession,
|
|
56
|
+
* isConnectedSessionState,
|
|
57
|
+
* SerialSessionStatus,
|
|
58
|
+
* SerialErrorCode,
|
|
59
|
+
* } from '@gurezo/web-serial-rxjs';
|
|
45
60
|
*
|
|
46
61
|
* const session = createSerialSession({ baudRate: 115200 });
|
|
47
62
|
*
|
|
48
63
|
* if (!session.isBrowserSupported()) {
|
|
49
64
|
* console.error('Web Serial API is not supported in this browser');
|
|
50
65
|
* } else {
|
|
51
|
-
* session.state$.subscribe((state) =>
|
|
66
|
+
* session.state$.subscribe((state) => {
|
|
67
|
+
* if (state.status === SerialSessionStatus.Connected) {
|
|
68
|
+
* console.log('port:', state.portInfo);
|
|
69
|
+
* }
|
|
70
|
+
* });
|
|
71
|
+
* session.state$
|
|
72
|
+
* .pipe(filter(isConnectedSessionState))
|
|
73
|
+
* .subscribe((state) => {
|
|
74
|
+
* console.log('port:', state.portInfo);
|
|
75
|
+
* });
|
|
52
76
|
* session.receive$.subscribe((chunk) => console.log('rx:', chunk));
|
|
53
|
-
* session.errors$.subscribe((error) =>
|
|
77
|
+
* session.errors$.subscribe((error) => {
|
|
78
|
+
* if (error.is(SerialErrorCode.READ_FAILED)) {
|
|
79
|
+
* console.error(error.context.cause);
|
|
80
|
+
* }
|
|
81
|
+
* });
|
|
54
82
|
*
|
|
55
83
|
* session.connect$().subscribe();
|
|
56
84
|
* session.send$('hello\r\n').subscribe();
|
|
57
85
|
* }
|
|
58
86
|
* ```
|
|
59
87
|
*/
|
|
60
|
-
export {
|
|
61
|
-
export
|
|
88
|
+
export { assertNever } from './internal/assert-never';
|
|
89
|
+
export { createSerialSession, SerialSessionStatus, isConnectedSessionState, DEFAULT_LINE_BUFFER_OPTIONS, resolveSerialSessionOptions, MAX_RECEIVE_REPLAY_BUFFER_SIZE, MAX_RECEIVE_REPLAY_MAX_CHARS } from './session';
|
|
90
|
+
export type { SerialSession, SerialSessionState, IdleSessionState, ConnectingSessionState, ConnectedSessionState, DisconnectingSessionState, UnsupportedSessionState, ErrorSessionState, DisposedSessionState, SerialSessionOptions, SerialSessionFeatureOptions, SerialSessionReceiveReplayOptions, ResolvedSerialSessionOptions, SerialPayload, SerialConnectionOptions, LineBufferOptions, } from './session';
|
|
62
91
|
export { SerialError } from './errors/serial-error';
|
|
92
|
+
export type { SerialErrorCauseContext, SerialErrorContextMap, ValidationErrorConstraint, ValidationErrorContext, } from './errors/serial-error';
|
|
63
93
|
export { SerialErrorCode } from './errors/serial-error-code';
|
|
64
94
|
export { createTerminalBuffer, DEFAULT_TERMINAL_BUFFER_OPTIONS } from './terminal/create-terminal-buffer';
|
|
65
95
|
export type { TerminalBuffer, TerminalBufferOptions } from './terminal/create-terminal-buffer';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsFG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,8BAA8B,EAAE,4BAA4B,EAAE,MAAM,WAAW,CAAC;AACtN,YAAY,EACV,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,EACvB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,2BAA2B,EAC3B,iCAAiC,EACjC,4BAA4B,EAC5B,aAAa,EACb,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,YAAY,EACV,uBAAuB,EACvB,qBAAqB,EACrB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAE,oBAAoB,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AAC1G,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC"}
|