@volley/recognition-client-sdk-node22 0.1.424

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 (58) hide show
  1. package/README.md +344 -0
  2. package/dist/browser.bundled.d.ts +1280 -0
  3. package/dist/browser.d.ts +10 -0
  4. package/dist/browser.d.ts.map +1 -0
  5. package/dist/config-builder.d.ts +134 -0
  6. package/dist/config-builder.d.ts.map +1 -0
  7. package/dist/errors.d.ts +41 -0
  8. package/dist/errors.d.ts.map +1 -0
  9. package/dist/factory.d.ts +36 -0
  10. package/dist/factory.d.ts.map +1 -0
  11. package/dist/index.bundled.d.ts +2572 -0
  12. package/dist/index.d.ts +16 -0
  13. package/dist/index.d.ts.map +1 -0
  14. package/dist/index.js +10199 -0
  15. package/dist/index.js.map +7 -0
  16. package/dist/recog-client-sdk.browser.d.ts +10 -0
  17. package/dist/recog-client-sdk.browser.d.ts.map +1 -0
  18. package/dist/recog-client-sdk.browser.js +5746 -0
  19. package/dist/recog-client-sdk.browser.js.map +7 -0
  20. package/dist/recognition-client.d.ts +128 -0
  21. package/dist/recognition-client.d.ts.map +1 -0
  22. package/dist/recognition-client.types.d.ts +271 -0
  23. package/dist/recognition-client.types.d.ts.map +1 -0
  24. package/dist/simplified-vgf-recognition-client.d.ts +178 -0
  25. package/dist/simplified-vgf-recognition-client.d.ts.map +1 -0
  26. package/dist/utils/audio-ring-buffer.d.ts +69 -0
  27. package/dist/utils/audio-ring-buffer.d.ts.map +1 -0
  28. package/dist/utils/message-handler.d.ts +45 -0
  29. package/dist/utils/message-handler.d.ts.map +1 -0
  30. package/dist/utils/url-builder.d.ts +28 -0
  31. package/dist/utils/url-builder.d.ts.map +1 -0
  32. package/dist/vgf-recognition-mapper.d.ts +66 -0
  33. package/dist/vgf-recognition-mapper.d.ts.map +1 -0
  34. package/dist/vgf-recognition-state.d.ts +91 -0
  35. package/dist/vgf-recognition-state.d.ts.map +1 -0
  36. package/package.json +74 -0
  37. package/src/browser.ts +24 -0
  38. package/src/config-builder.spec.ts +265 -0
  39. package/src/config-builder.ts +240 -0
  40. package/src/errors.ts +84 -0
  41. package/src/factory.spec.ts +215 -0
  42. package/src/factory.ts +47 -0
  43. package/src/index.ts +127 -0
  44. package/src/recognition-client.spec.ts +889 -0
  45. package/src/recognition-client.ts +844 -0
  46. package/src/recognition-client.types.ts +338 -0
  47. package/src/simplified-vgf-recognition-client.integration.spec.ts +718 -0
  48. package/src/simplified-vgf-recognition-client.spec.ts +1525 -0
  49. package/src/simplified-vgf-recognition-client.ts +524 -0
  50. package/src/utils/audio-ring-buffer.spec.ts +335 -0
  51. package/src/utils/audio-ring-buffer.ts +170 -0
  52. package/src/utils/message-handler.spec.ts +311 -0
  53. package/src/utils/message-handler.ts +131 -0
  54. package/src/utils/url-builder.spec.ts +252 -0
  55. package/src/utils/url-builder.ts +92 -0
  56. package/src/vgf-recognition-mapper.spec.ts +78 -0
  57. package/src/vgf-recognition-mapper.ts +232 -0
  58. package/src/vgf-recognition-state.ts +102 -0
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Browser-only entry point for Recognition SDK
3
+ * Excludes server-side dependencies
4
+ *
5
+ * Note: This file directly imports browser-compatible modules only,
6
+ * avoiding Node.js-specific code like the ws package.
7
+ */
8
+ export { RealTimeTwoWayWebSocketRecognitionClient, type RealTimeTwoWayWebSocketRecognitionClientConfig, type TranscriptionResult } from './recognition-client.js';
9
+ export { AudioEncoding, ControlSignalTypeV1 as ControlSignal, type GameContextV1, RecognitionContextTypeV1 } from '@recog/shared-types';
10
+ //# sourceMappingURL=browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EACL,wCAAwC,EACxC,KAAK,8CAA8C,EACnD,KAAK,mBAAmB,EACzB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,aAAa,EACb,mBAAmB,IAAI,aAAa,EACpC,KAAK,aAAa,EAClB,wBAAwB,EACzB,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * Configuration Builder for Recognition Client
3
+ *
4
+ * Simple builder pattern for RealTimeTwoWayWebSocketRecognitionClientConfig
5
+ */
6
+ import type { RealTimeTwoWayWebSocketRecognitionClientConfig, RecognitionCallbackUrl } from './recognition-client.types.js';
7
+ import type { ASRRequestConfig, GameContextV1, TranscriptionResultV1, MetadataResultV1, ErrorResultV1, Stage } from '@recog/shared-types';
8
+ /**
9
+ * Builder for RealTimeTwoWayWebSocketRecognitionClientConfig
10
+ *
11
+ * Provides a fluent API for building client configurations.
12
+ *
13
+ * Example:
14
+ * ```typescript
15
+ * import { STAGES } from '@recog/shared-types';
16
+ *
17
+ * const config = new ConfigBuilder()
18
+ * .stage(STAGES.STAGING) // Recommended: automatic environment selection
19
+ * .asrRequestConfig({
20
+ * provider: RecognitionProvider.DEEPGRAM,
21
+ * model: 'nova-2-general'
22
+ * })
23
+ * .onTranscript((result) => console.log(result))
24
+ * .build();
25
+ * ```
26
+ */
27
+ export declare class ConfigBuilder {
28
+ private config;
29
+ /**
30
+ * Set the WebSocket URL (advanced usage)
31
+ * For standard environments, use stage() instead
32
+ */
33
+ url(url: string): this;
34
+ /**
35
+ * Set the stage for automatic environment selection (recommended)
36
+ * @param stage - STAGES.LOCAL | STAGES.DEV | STAGES.STAGING | STAGES.PRODUCTION
37
+ * @example
38
+ * ```typescript
39
+ * import { STAGES } from '@recog/shared-types';
40
+ * builder.stage(STAGES.STAGING)
41
+ * ```
42
+ */
43
+ stage(stage: Stage | string): this;
44
+ /**
45
+ * Set ASR request configuration
46
+ */
47
+ asrRequestConfig(config: ASRRequestConfig): this;
48
+ /**
49
+ * Set game context
50
+ */
51
+ gameContext(context: GameContextV1): this;
52
+ /**
53
+ * Set game ID directly (takes precedence over gameContext.gameId)
54
+ * Use this when you only need to identify the game without full context.
55
+ */
56
+ gameId(id: string): this;
57
+ /**
58
+ * Set audio utterance ID
59
+ */
60
+ audioUtteranceId(id: string): this;
61
+ /**
62
+ * Set callback URLs
63
+ */
64
+ callbackUrls(urls: RecognitionCallbackUrl[]): this;
65
+ /**
66
+ * Set user ID
67
+ */
68
+ userId(id: string): this;
69
+ /**
70
+ * Set game session ID
71
+ */
72
+ gameSessionId(id: string): this;
73
+ /**
74
+ * Set device ID
75
+ */
76
+ deviceId(id: string): this;
77
+ /**
78
+ * Set account ID
79
+ */
80
+ accountId(id: string): this;
81
+ /**
82
+ * Set question answer ID
83
+ */
84
+ questionAnswerId(id: string): this;
85
+ /**
86
+ * Set platform
87
+ */
88
+ platform(platform: string): this;
89
+ /**
90
+ * Set transcript callback
91
+ */
92
+ onTranscript(callback: (result: TranscriptionResultV1) => void): this;
93
+ /**
94
+ * Set metadata callback
95
+ */
96
+ onMetadata(callback: (metadata: MetadataResultV1) => void): this;
97
+ /**
98
+ * Set error callback
99
+ */
100
+ onError(callback: (error: ErrorResultV1) => void): this;
101
+ /**
102
+ * Set connected callback
103
+ */
104
+ onConnected(callback: () => void): this;
105
+ /**
106
+ * Set disconnected callback
107
+ */
108
+ onDisconnected(callback: (code: number, reason: string) => void): this;
109
+ /**
110
+ * Set high water mark
111
+ */
112
+ highWaterMark(bytes: number): this;
113
+ /**
114
+ * Set low water mark
115
+ */
116
+ lowWaterMark(bytes: number): this;
117
+ /**
118
+ * Set max buffer duration in seconds
119
+ */
120
+ maxBufferDurationSec(seconds: number): this;
121
+ /**
122
+ * Set chunks per second
123
+ */
124
+ chunksPerSecond(chunks: number): this;
125
+ /**
126
+ * Set logger function
127
+ */
128
+ logger(logger: (level: 'debug' | 'info' | 'warn' | 'error', message: string, data?: any) => void): this;
129
+ /**
130
+ * Build the configuration
131
+ */
132
+ build(): RealTimeTwoWayWebSocketRecognitionClientConfig;
133
+ }
134
+ //# sourceMappingURL=config-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-builder.d.ts","sourceRoot":"","sources":["../src/config-builder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,8CAA8C,EAC9C,sBAAsB,EACvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EACV,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,KAAK,EACN,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAA+D;IAE7E;;;OAGG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAKtB;;;;;;;;OAQG;IACH,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI;IAKlC;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;IAKhD;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAKzC;;;OAGG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKxB;;OAEG;IACH,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKlC;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,sBAAsB,EAAE,GAAG,IAAI;IAKlD;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKxB;;OAEG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK/B;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK1B;;OAEG;IACH,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAK3B;;OAEG;IACH,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAKlC;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAKhC;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,GAAG,IAAI;IAKrE;;OAEG;IACH,UAAU,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,GAAG,IAAI;IAKhE;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,GAAG,IAAI;IAKvD;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAKvC;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAKtE;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKlC;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKjC;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAK3C;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAKrC;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI;IAKvG;;OAEG;IACH,KAAK,IAAI,8CAA8C;CAGxD"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * SDK Error Classes
3
+ *
4
+ * Typed error classes that extend native Error with recognition-specific metadata
5
+ */
6
+ import { ErrorTypeV1 } from '@recog/shared-types';
7
+ /**
8
+ * Base class for all recognition SDK errors
9
+ */
10
+ export declare class RecognitionError extends Error {
11
+ readonly errorType: ErrorTypeV1;
12
+ readonly timestamp: number;
13
+ constructor(errorType: ErrorTypeV1, message: string);
14
+ }
15
+ /**
16
+ * Connection error - thrown when WebSocket connection fails after all retry attempts
17
+ */
18
+ export declare class ConnectionError extends RecognitionError {
19
+ readonly attempts: number;
20
+ readonly url: string;
21
+ readonly underlyingError?: Error;
22
+ constructor(message: string, attempts: number, url: string, underlyingError?: Error);
23
+ }
24
+ /**
25
+ * Timeout error - thrown when operations exceed timeout limits
26
+ */
27
+ export declare class TimeoutError extends RecognitionError {
28
+ readonly timeoutMs: number;
29
+ readonly operation: string;
30
+ constructor(message: string, timeoutMs: number, operation: string);
31
+ }
32
+ /**
33
+ * Validation error - thrown when invalid configuration or input is provided
34
+ */
35
+ export declare class ValidationError extends RecognitionError {
36
+ readonly field?: string;
37
+ readonly expected?: string;
38
+ readonly received?: string;
39
+ constructor(message: string, field?: string, expected?: string, received?: string);
40
+ }
41
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,SAAgB,SAAS,EAAE,WAAW,CAAC;IACvC,SAAgB,SAAS,EAAE,MAAM,CAAC;gBAEtB,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM;CAWpD;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,gBAAgB;IACnD,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,GAAG,EAAE,MAAM,CAAC;IAC5B,SAAgB,eAAe,CAAC,EAAE,KAAK,CAAC;gBAE5B,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,KAAK;CASpF;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,gBAAgB;IAChD,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,SAAS,EAAE,MAAM,CAAC;gBAEtB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAMlE;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,gBAAgB;IACnD,SAAgB,KAAK,CAAC,EAAE,MAAM,CAAC;IAC/B,SAAgB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClC,SAAgB,QAAQ,CAAC,EAAE,MAAM,CAAC;gBAEtB,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;CAalF"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Factory function for creating Recognition Client instances
3
+ */
4
+ import { ConfigBuilder } from './config-builder.js';
5
+ import type { IRecognitionClient, RealTimeTwoWayWebSocketRecognitionClientConfig } from './recognition-client.types.js';
6
+ /**
7
+ * Create a recognition client from a configuration object
8
+ *
9
+ * Example:
10
+ * ```typescript
11
+ * const client = createClient({
12
+ * url: 'ws://localhost:3101/ws/v1/recognize',
13
+ * audioUtteranceId: 'unique-id',
14
+ * onTranscript: (result) => console.log(result)
15
+ * });
16
+ * ```
17
+ *
18
+ * @param config - Client configuration
19
+ * @returns Configured recognition client instance
20
+ */
21
+ export declare function createClient(config: RealTimeTwoWayWebSocketRecognitionClientConfig): IRecognitionClient;
22
+ /**
23
+ * Create a recognition client using the builder pattern
24
+ *
25
+ * Example:
26
+ * ```typescript
27
+ * const client = createClientWithBuilder((builder) =>
28
+ * builder
29
+ * .url('ws://localhost:3101/ws/v1/recognize')
30
+ * .onTranscript((result) => console.log(result))
31
+ * .onError((error) => console.error(error))
32
+ * );
33
+ * ```
34
+ */
35
+ export declare function createClientWithBuilder(configure: (builder: ConfigBuilder) => ConfigBuilder): IRecognitionClient;
36
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,8CAA8C,EAAE,MAAM,+BAA+B,CAAC;AAExH;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,8CAA8C,GAAG,kBAAkB,CAEvG;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,uBAAuB,CACrC,SAAS,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,aAAa,GACnD,kBAAkB,CAIpB"}