@waitaya.buc/client-js 0.1.0-alpha.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.md +179 -0
- package/dist/adapters/livekit/api/recording.api.d.ts +15 -0
- package/dist/adapters/livekit/api/recording.api.d.ts.map +1 -0
- package/dist/adapters/livekit/api/recording.api.js +61 -0
- package/dist/adapters/livekit/api/recording.api.js.map +1 -0
- package/dist/adapters/livekit/index.d.ts +18 -0
- package/dist/adapters/livekit/index.d.ts.map +1 -0
- package/dist/adapters/livekit/index.js +26 -0
- package/dist/adapters/livekit/index.js.map +1 -0
- package/dist/adapters/livekit/livekit.adapter.d.ts +85 -0
- package/dist/adapters/livekit/livekit.adapter.d.ts.map +1 -0
- package/dist/adapters/livekit/livekit.adapter.js +531 -0
- package/dist/adapters/livekit/livekit.adapter.js.map +1 -0
- package/dist/adapters/livekit/livekit.mapper.d.ts +36 -0
- package/dist/adapters/livekit/livekit.mapper.d.ts.map +1 -0
- package/dist/adapters/livekit/livekit.mapper.js +108 -0
- package/dist/adapters/livekit/livekit.mapper.js.map +1 -0
- package/dist/adapters/livekit/livekit.types.d.ts +22 -0
- package/dist/adapters/livekit/livekit.types.d.ts.map +1 -0
- package/dist/adapters/livekit/livekit.types.js +10 -0
- package/dist/adapters/livekit/livekit.types.js.map +1 -0
- package/dist/adapters/livekit/service-adapters/index.d.ts +4 -0
- package/dist/adapters/livekit/service-adapters/index.d.ts.map +1 -0
- package/dist/adapters/livekit/service-adapters/index.js +4 -0
- package/dist/adapters/livekit/service-adapters/index.js.map +1 -0
- package/dist/adapters/livekit/service-adapters/recording.adapter.d.ts +19 -0
- package/dist/adapters/livekit/service-adapters/recording.adapter.d.ts.map +1 -0
- package/dist/adapters/livekit/service-adapters/recording.adapter.js +30 -0
- package/dist/adapters/livekit/service-adapters/recording.adapter.js.map +1 -0
- package/dist/adapters/livekit/service-adapters/stats.adapter.d.ts +21 -0
- package/dist/adapters/livekit/service-adapters/stats.adapter.d.ts.map +1 -0
- package/dist/adapters/livekit/service-adapters/stats.adapter.js +54 -0
- package/dist/adapters/livekit/service-adapters/stats.adapter.js.map +1 -0
- package/dist/adapters/livekit/service-adapters/track-attachment.adapter.d.ts +79 -0
- package/dist/adapters/livekit/service-adapters/track-attachment.adapter.d.ts.map +1 -0
- package/dist/adapters/livekit/service-adapters/track-attachment.adapter.js +348 -0
- package/dist/adapters/livekit/service-adapters/track-attachment.adapter.js.map +1 -0
- package/dist/adapters/livekit/services/index.d.ts +3 -0
- package/dist/adapters/livekit/services/index.d.ts.map +1 -0
- package/dist/adapters/livekit/services/index.js +3 -0
- package/dist/adapters/livekit/services/index.js.map +1 -0
- package/dist/adapters/livekit/services/recording.service.d.ts +29 -0
- package/dist/adapters/livekit/services/recording.service.d.ts.map +1 -0
- package/dist/adapters/livekit/services/recording.service.js +34 -0
- package/dist/adapters/livekit/services/recording.service.js.map +1 -0
- package/dist/adapters/livekit/services/stats.service.d.ts +24 -0
- package/dist/adapters/livekit/services/stats.service.d.ts.map +1 -0
- package/dist/adapters/livekit/services/stats.service.js +56 -0
- package/dist/adapters/livekit/services/stats.service.js.map +1 -0
- package/dist/core/api/auth.api.d.ts +52 -0
- package/dist/core/api/auth.api.d.ts.map +1 -0
- package/dist/core/api/auth.api.js +59 -0
- package/dist/core/api/auth.api.js.map +1 -0
- package/dist/core/api/http.d.ts +86 -0
- package/dist/core/api/http.d.ts.map +1 -0
- package/dist/core/api/http.js +146 -0
- package/dist/core/api/http.js.map +1 -0
- package/dist/core/errors/error-codes.d.ts +43 -0
- package/dist/core/errors/error-codes.d.ts.map +1 -0
- package/dist/core/errors/error-codes.js +42 -0
- package/dist/core/errors/error-codes.js.map +1 -0
- package/dist/core/errors/vroom.error.d.ts +99 -0
- package/dist/core/errors/vroom.error.d.ts.map +1 -0
- package/dist/core/errors/vroom.error.js +141 -0
- package/dist/core/errors/vroom.error.js.map +1 -0
- package/dist/core/ports/outbound/provider-adapter-factory.port.d.ts +41 -0
- package/dist/core/ports/outbound/provider-adapter-factory.port.d.ts.map +1 -0
- package/dist/core/ports/outbound/provider-adapter-factory.port.js +2 -0
- package/dist/core/ports/outbound/provider-adapter-factory.port.js.map +1 -0
- package/dist/core/ports/outbound/provider-adapter.port.d.ts +130 -0
- package/dist/core/ports/outbound/provider-adapter.port.d.ts.map +1 -0
- package/dist/core/ports/outbound/provider-adapter.port.js +2 -0
- package/dist/core/ports/outbound/provider-adapter.port.js.map +1 -0
- package/dist/core/ports/outbound/recording-adapter.port.d.ts +40 -0
- package/dist/core/ports/outbound/recording-adapter.port.d.ts.map +1 -0
- package/dist/core/ports/outbound/recording-adapter.port.js +2 -0
- package/dist/core/ports/outbound/recording-adapter.port.js.map +1 -0
- package/dist/core/ports/outbound/stats-adapter.port.d.ts +31 -0
- package/dist/core/ports/outbound/stats-adapter.port.d.ts.map +1 -0
- package/dist/core/ports/outbound/stats-adapter.port.js +2 -0
- package/dist/core/ports/outbound/stats-adapter.port.js.map +1 -0
- package/dist/core/ports/outbound/track-attachment-adapter.port.d.ts +86 -0
- package/dist/core/ports/outbound/track-attachment-adapter.port.d.ts.map +1 -0
- package/dist/core/ports/outbound/track-attachment-adapter.port.js +2 -0
- package/dist/core/ports/outbound/track-attachment-adapter.port.js.map +1 -0
- package/dist/core/provider-registry.d.ts +29 -0
- package/dist/core/provider-registry.d.ts.map +1 -0
- package/dist/core/provider-registry.js +45 -0
- package/dist/core/provider-registry.js.map +1 -0
- package/dist/core/services/base.service.d.ts +15 -0
- package/dist/core/services/base.service.d.ts.map +1 -0
- package/dist/core/services/base.service.js +10 -0
- package/dist/core/services/base.service.js.map +1 -0
- package/dist/core/services/recording.service.d.ts +50 -0
- package/dist/core/services/recording.service.d.ts.map +1 -0
- package/dist/core/services/recording.service.js +89 -0
- package/dist/core/services/recording.service.js.map +1 -0
- package/dist/core/services/stats.service.d.ts +32 -0
- package/dist/core/services/stats.service.d.ts.map +1 -0
- package/dist/core/services/stats.service.js +69 -0
- package/dist/core/services/stats.service.js.map +1 -0
- package/dist/core/session.d.ts +142 -0
- package/dist/core/session.d.ts.map +1 -0
- package/dist/core/session.js +248 -0
- package/dist/core/session.js.map +1 -0
- package/dist/core/types/events.types.d.ts +263 -0
- package/dist/core/types/events.types.d.ts.map +1 -0
- package/dist/core/types/events.types.js +76 -0
- package/dist/core/types/events.types.js.map +1 -0
- package/dist/core/types/media.types.d.ts +81 -0
- package/dist/core/types/media.types.d.ts.map +1 -0
- package/dist/core/types/media.types.js +12 -0
- package/dist/core/types/media.types.js.map +1 -0
- package/dist/core/types/participant.types.d.ts +11 -0
- package/dist/core/types/participant.types.d.ts.map +1 -0
- package/dist/core/types/participant.types.js +2 -0
- package/dist/core/types/participant.types.js.map +1 -0
- package/dist/core/types/recording.types.d.ts +60 -0
- package/dist/core/types/recording.types.d.ts.map +1 -0
- package/dist/core/types/recording.types.js +7 -0
- package/dist/core/types/recording.types.js.map +1 -0
- package/dist/core/types/service-adapters.types.d.ts +46 -0
- package/dist/core/types/service-adapters.types.d.ts.map +1 -0
- package/dist/core/types/service-adapters.types.js +2 -0
- package/dist/core/types/service-adapters.types.js.map +1 -0
- package/dist/core/types/session.types.d.ts +57 -0
- package/dist/core/types/session.types.d.ts.map +1 -0
- package/dist/core/types/session.types.js +2 -0
- package/dist/core/types/session.types.js.map +1 -0
- package/dist/core/types/stats.types.d.ts +20 -0
- package/dist/core/types/stats.types.d.ts.map +1 -0
- package/dist/core/types/stats.types.js +7 -0
- package/dist/core/types/stats.types.js.map +1 -0
- package/dist/core/types/token.types.d.ts +82 -0
- package/dist/core/types/token.types.d.ts.map +1 -0
- package/dist/core/types/token.types.js +27 -0
- package/dist/core/types/token.types.js.map +1 -0
- package/dist/core/types/track.types.d.ts +39 -0
- package/dist/core/types/track.types.d.ts.map +1 -0
- package/dist/core/types/track.types.js +9 -0
- package/dist/core/types/track.types.js.map +1 -0
- package/dist/core/types/user.types.d.ts +23 -0
- package/dist/core/types/user.types.d.ts.map +1 -0
- package/dist/core/types/user.types.js +2 -0
- package/dist/core/types/user.types.js.map +1 -0
- package/dist/core/types/vroom.types.d.ts +86 -0
- package/dist/core/types/vroom.types.d.ts.map +1 -0
- package/dist/core/types/vroom.types.js +12 -0
- package/dist/core/types/vroom.types.js.map +1 -0
- package/dist/core/utils/token.d.ts +77 -0
- package/dist/core/utils/token.d.ts.map +1 -0
- package/dist/core/utils/token.js +127 -0
- package/dist/core/utils/token.js.map +1 -0
- package/dist/core/vroom.d.ts +90 -0
- package/dist/core/vroom.d.ts.map +1 -0
- package/dist/core/vroom.js +219 -0
- package/dist/core/vroom.js.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +17 -0
- package/dist/index.js.map +1 -0
- package/dist/react-native.d.ts +21 -0
- package/dist/react-native.d.ts.map +1 -0
- package/dist/react-native.js +32 -0
- package/dist/react-native.js.map +1 -0
- package/package.json +50 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.api.js","sourceRoot":"","sources":["../../../src/core/api/auth.api.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,GAIvB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EACL,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,OAAO,EAA2B,MAAM,QAAQ,CAAA;AAsCzD;;;GAGG;AACH,MAAM,gBAAgB,GAAuB,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE;IACjE,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,UAAU,CAAC,iBAAiB;YAC/B,OAAO,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAA;QACxC,KAAK,UAAU,CAAC,cAAc;YAC5B,OAAO,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAA;QACvC;YACE,OAAO,IAAI,CAAA,CAAC,oCAAoC;IACpD,CAAC;AACH,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,OAAO,cAAc;IAGzB,YAAY,MAAuB;QACjC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,sBAAsB,CAAA;IAC3D,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,MAA+B;QAC5C,OAAO,OAAO,CAAmB;YAC/B,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,eAAe;YACpC,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE;YACvC,IAAI,EAAE,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE;YAC3C,kBAAkB,EAAE,gBAAgB;YACpC,YAAY,EAAE,gCAAgC;SAC/C,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,MAAuB;QACvC,OAAO,OAAO,CAAmB;YAC/B,MAAM,EAAE,MAAM;YACd,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,eAAe;YACpC,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,MAAM,CAAC,SAAS,EAAE,EAAE;YACxD,IAAI,EAAE;gBACJ,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,IAAI,EAAE,MAAM,CAAC,IAAI;aAClB;YACD,kBAAkB,EAAE,gBAAgB;YACpC,YAAY,EAAE,yBAAyB;SACxC,CAAC,CAAA;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { VroomError } from '../errors/vroom.error';
|
|
2
|
+
/**
|
|
3
|
+
* API error response from Vroom backend
|
|
4
|
+
*/
|
|
5
|
+
export interface ApiErrorResponse {
|
|
6
|
+
code: string;
|
|
7
|
+
message: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Error context passed to custom error handlers
|
|
11
|
+
*/
|
|
12
|
+
export interface ErrorContext {
|
|
13
|
+
response: Response;
|
|
14
|
+
code: string;
|
|
15
|
+
message: string;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Custom error handler for endpoint-specific errors.
|
|
19
|
+
* Return a VroomError to throw it, or null to fallback to common error handling.
|
|
20
|
+
*/
|
|
21
|
+
export type CustomErrorHandler = (ctx: ErrorContext) => VroomError | null;
|
|
22
|
+
/**
|
|
23
|
+
* Base request options shared by request and requestVoid
|
|
24
|
+
*/
|
|
25
|
+
export interface BaseRequestOptions<TBody = unknown> {
|
|
26
|
+
/** HTTP method */
|
|
27
|
+
method: 'GET' | 'POST' | 'PUT' | 'DELETE';
|
|
28
|
+
/** Full URL to request */
|
|
29
|
+
url: string;
|
|
30
|
+
/** Request body (will be JSON stringified) */
|
|
31
|
+
body?: TBody;
|
|
32
|
+
/** Additional headers to include in the request */
|
|
33
|
+
headers?: Record<string, string>;
|
|
34
|
+
/** Custom error handler for endpoint-specific errors */
|
|
35
|
+
customErrorHandler?: CustomErrorHandler;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Request options for endpoints that return JSON data
|
|
39
|
+
*/
|
|
40
|
+
export interface RequestOptions<TBody = unknown> extends BaseRequestOptions<TBody> {
|
|
41
|
+
/** Error message for NetworkError when fetch fails */
|
|
42
|
+
errorMessage: string;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Request options for endpoints that return no content (204, etc.)
|
|
46
|
+
*/
|
|
47
|
+
export interface RequestVoidOptions<TBody = unknown> extends BaseRequestOptions<TBody> {
|
|
48
|
+
/** Error message for NetworkError when fetch fails (optional for void requests) */
|
|
49
|
+
errorMessage?: string;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Handle API error response with optional custom handler.
|
|
53
|
+
*
|
|
54
|
+
* Flow:
|
|
55
|
+
* 1. Try custom handler first (for endpoint-specific errors)
|
|
56
|
+
* 2. Handle common errors (BadRequest, PermissionDenied)
|
|
57
|
+
* 3. HTTP status fallback (403, 5xx)
|
|
58
|
+
* 4. Default to NetworkError
|
|
59
|
+
*
|
|
60
|
+
* @param response - Fetch response object
|
|
61
|
+
* @param customHandler - Optional custom error handler
|
|
62
|
+
*/
|
|
63
|
+
export declare function handleApiError(response: Response, customHandler?: CustomErrorHandler): Promise<never>;
|
|
64
|
+
/**
|
|
65
|
+
* Make an HTTP request to the Vroom API that returns JSON data.
|
|
66
|
+
*
|
|
67
|
+
* Use this for endpoints that return a response body.
|
|
68
|
+
* For endpoints that return no content (204), use `requestVoid` instead.
|
|
69
|
+
*
|
|
70
|
+
* @param options - Request options
|
|
71
|
+
* @returns Parsed JSON response
|
|
72
|
+
* @throws NetworkError if response body is empty (unexpected)
|
|
73
|
+
* @throws VroomError subclass based on error type
|
|
74
|
+
*/
|
|
75
|
+
export declare function request<TResponse, TBody = unknown>(options: RequestOptions<TBody>): Promise<TResponse>;
|
|
76
|
+
/**
|
|
77
|
+
* Make an HTTP request to the Vroom API that returns no content.
|
|
78
|
+
*
|
|
79
|
+
* Use this for endpoints that return 204 No Content or empty body.
|
|
80
|
+
* For endpoints that return JSON data, use `request` instead.
|
|
81
|
+
*
|
|
82
|
+
* @param options - Request options
|
|
83
|
+
* @throws VroomError subclass based on error type
|
|
84
|
+
*/
|
|
85
|
+
export declare function requestVoid<TBody = unknown>(options: RequestVoidOptions<TBody>): Promise<void>;
|
|
86
|
+
//# sourceMappingURL=http.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/core/api/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAUL,UAAU,EACX,MAAM,uBAAuB,CAAA;AAG9B;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,QAAQ,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAChB;AAED;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,YAAY,KAAK,UAAU,GAAG,IAAI,CAAA;AAEzE;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,KAAK,GAAG,OAAO;IACjD,kBAAkB;IAClB,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAA;IACzC,0BAA0B;IAC1B,GAAG,EAAE,MAAM,CAAA;IACX,8CAA8C;IAC9C,IAAI,CAAC,EAAE,KAAK,CAAA;IACZ,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC,wDAAwD;IACxD,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc,CAAC,KAAK,GAAG,OAAO,CAAE,SAAQ,kBAAkB,CAAC,KAAK,CAAC;IAChF,sDAAsD;IACtD,YAAY,EAAE,MAAM,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,KAAK,GAAG,OAAO,CAAE,SAAQ,kBAAkB,CAAC,KAAK,CAAC;IACpF,mFAAmF;IACnF,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAoBD;;;;;;;;;;;GAWG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,QAAQ,EAClB,aAAa,CAAC,EAAE,kBAAkB,GACjC,OAAO,CAAC,KAAK,CAAC,CA4ChB;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,OAAO,CAAC,SAAS,EAAE,KAAK,GAAG,OAAO,EACtD,OAAO,EAAE,cAAc,CAAC,KAAK,CAAC,GAC7B,OAAO,CAAC,SAAS,CAAC,CA+BpB;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,KAAK,GAAG,OAAO,EAC/C,OAAO,EAAE,kBAAkB,CAAC,KAAK,CAAC,GACjC,OAAO,CAAC,IAAI,CAAC,CA0Bf"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { BadRequestError, ConflictError, ForbiddenError, MethodNotAllowedError, NetworkError, NotFoundError, PermissionDeniedError, ServiceError, UnauthorizedError, VroomError, } from '../errors/vroom.error';
|
|
2
|
+
import { ErrorCodes } from '../errors/error-codes';
|
|
3
|
+
/**
|
|
4
|
+
* Parse error response from API
|
|
5
|
+
*/
|
|
6
|
+
async function parseErrorResponse(response) {
|
|
7
|
+
let errorData = null;
|
|
8
|
+
try {
|
|
9
|
+
errorData = (await response.json());
|
|
10
|
+
}
|
|
11
|
+
catch {
|
|
12
|
+
// Response body is not JSON
|
|
13
|
+
}
|
|
14
|
+
return {
|
|
15
|
+
code: errorData?.code ?? 'E_UNKNOWN',
|
|
16
|
+
message: errorData?.message ?? `HTTP ${response.status}`,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Handle API error response with optional custom handler.
|
|
21
|
+
*
|
|
22
|
+
* Flow:
|
|
23
|
+
* 1. Try custom handler first (for endpoint-specific errors)
|
|
24
|
+
* 2. Handle common errors (BadRequest, PermissionDenied)
|
|
25
|
+
* 3. HTTP status fallback (403, 5xx)
|
|
26
|
+
* 4. Default to NetworkError
|
|
27
|
+
*
|
|
28
|
+
* @param response - Fetch response object
|
|
29
|
+
* @param customHandler - Optional custom error handler
|
|
30
|
+
*/
|
|
31
|
+
export async function handleApiError(response, customHandler) {
|
|
32
|
+
const { code, message } = await parseErrorResponse(response);
|
|
33
|
+
const ctx = { response, code, message };
|
|
34
|
+
// 1. Try custom handler first
|
|
35
|
+
if (customHandler) {
|
|
36
|
+
const customError = customHandler(ctx);
|
|
37
|
+
if (customError)
|
|
38
|
+
throw customError;
|
|
39
|
+
}
|
|
40
|
+
// 2. Common errors by error code (from response body)
|
|
41
|
+
switch (code) {
|
|
42
|
+
case ErrorCodes.E_BAD_REQUEST:
|
|
43
|
+
throw new BadRequestError(message);
|
|
44
|
+
case ErrorCodes.E_PERMISSION_DENIED:
|
|
45
|
+
throw new PermissionDeniedError(message);
|
|
46
|
+
case ErrorCodes.E_FORBIDDEN:
|
|
47
|
+
throw new ForbiddenError(message);
|
|
48
|
+
case ErrorCodes.E_METHOD_NOT_ALLOWED:
|
|
49
|
+
throw new MethodNotAllowedError(message);
|
|
50
|
+
}
|
|
51
|
+
// 3. HTTP status fallback (when no specific error code)
|
|
52
|
+
switch (response.status) {
|
|
53
|
+
case 400:
|
|
54
|
+
throw new BadRequestError(message);
|
|
55
|
+
case 401:
|
|
56
|
+
throw new UnauthorizedError(message);
|
|
57
|
+
case 403:
|
|
58
|
+
throw new PermissionDeniedError(message);
|
|
59
|
+
case 404:
|
|
60
|
+
throw new NotFoundError(message);
|
|
61
|
+
case 405:
|
|
62
|
+
throw new MethodNotAllowedError(message);
|
|
63
|
+
case 409:
|
|
64
|
+
throw new ConflictError(message);
|
|
65
|
+
}
|
|
66
|
+
if (response.status >= 500) {
|
|
67
|
+
throw new ServiceError(message);
|
|
68
|
+
}
|
|
69
|
+
// 4. Default - unknown 4xx errors
|
|
70
|
+
throw new BadRequestError(message);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Make an HTTP request to the Vroom API that returns JSON data.
|
|
74
|
+
*
|
|
75
|
+
* Use this for endpoints that return a response body.
|
|
76
|
+
* For endpoints that return no content (204), use `requestVoid` instead.
|
|
77
|
+
*
|
|
78
|
+
* @param options - Request options
|
|
79
|
+
* @returns Parsed JSON response
|
|
80
|
+
* @throws NetworkError if response body is empty (unexpected)
|
|
81
|
+
* @throws VroomError subclass based on error type
|
|
82
|
+
*/
|
|
83
|
+
export async function request(options) {
|
|
84
|
+
const { method, url, body, headers, customErrorHandler, errorMessage } = options;
|
|
85
|
+
try {
|
|
86
|
+
const response = await fetch(url, {
|
|
87
|
+
method,
|
|
88
|
+
headers: {
|
|
89
|
+
...(body !== undefined && { 'Content-Type': 'application/json' }),
|
|
90
|
+
...headers,
|
|
91
|
+
},
|
|
92
|
+
body: body !== undefined ? JSON.stringify(body) : undefined,
|
|
93
|
+
});
|
|
94
|
+
if (!response.ok) {
|
|
95
|
+
await handleApiError(response, customErrorHandler);
|
|
96
|
+
}
|
|
97
|
+
const text = await response.text();
|
|
98
|
+
if (!text) {
|
|
99
|
+
throw new NetworkError('Expected response body but received empty');
|
|
100
|
+
}
|
|
101
|
+
return JSON.parse(text);
|
|
102
|
+
}
|
|
103
|
+
catch (error) {
|
|
104
|
+
// Re-throw SDK errors as-is
|
|
105
|
+
if (error instanceof VroomError) {
|
|
106
|
+
throw error;
|
|
107
|
+
}
|
|
108
|
+
// Wrap other errors (TypeError, fetch errors, etc.) as NetworkError
|
|
109
|
+
throw new NetworkError(errorMessage, error);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Make an HTTP request to the Vroom API that returns no content.
|
|
114
|
+
*
|
|
115
|
+
* Use this for endpoints that return 204 No Content or empty body.
|
|
116
|
+
* For endpoints that return JSON data, use `request` instead.
|
|
117
|
+
*
|
|
118
|
+
* @param options - Request options
|
|
119
|
+
* @throws VroomError subclass based on error type
|
|
120
|
+
*/
|
|
121
|
+
export async function requestVoid(options) {
|
|
122
|
+
const { method, url, body, headers, customErrorHandler, errorMessage } = options;
|
|
123
|
+
try {
|
|
124
|
+
const response = await fetch(url, {
|
|
125
|
+
method,
|
|
126
|
+
headers: {
|
|
127
|
+
...(body !== undefined && { 'Content-Type': 'application/json' }),
|
|
128
|
+
...headers,
|
|
129
|
+
},
|
|
130
|
+
body: body !== undefined ? JSON.stringify(body) : undefined,
|
|
131
|
+
});
|
|
132
|
+
if (!response.ok) {
|
|
133
|
+
await handleApiError(response, customErrorHandler);
|
|
134
|
+
}
|
|
135
|
+
// Don't parse response body - this is a void endpoint
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
// Re-throw SDK errors as-is
|
|
139
|
+
if (error instanceof VroomError) {
|
|
140
|
+
throw error;
|
|
141
|
+
}
|
|
142
|
+
// Wrap other errors (TypeError, fetch errors, etc.) as NetworkError
|
|
143
|
+
throw new NetworkError(errorMessage ?? 'Request failed', error);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=http.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/core/api/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standard error codes for Vroom SDK
|
|
3
|
+
*/
|
|
4
|
+
export declare const ErrorCodes: {
|
|
5
|
+
/** Missing or invalid request fields */
|
|
6
|
+
readonly E_BAD_REQUEST: "E_BAD_REQUEST";
|
|
7
|
+
/** API key validation failed */
|
|
8
|
+
readonly E_INVALID_API_KEY: "E_INVALID_API_KEY";
|
|
9
|
+
/** Invalid or expired auth token */
|
|
10
|
+
readonly E_UNAUTHORIZED: "E_UNAUTHORIZED";
|
|
11
|
+
/** Invalid or malformed token */
|
|
12
|
+
readonly E_INVALID_TOKEN: "E_INVALID_TOKEN";
|
|
13
|
+
/** Platform restriction violated */
|
|
14
|
+
readonly E_PLATFORM_MISMATCH: "E_PLATFORM_MISMATCH";
|
|
15
|
+
/** Network error occurred */
|
|
16
|
+
readonly E_NETWORK: "E_NETWORK";
|
|
17
|
+
/** Operation timed out */
|
|
18
|
+
readonly E_TIMEOUT: "E_TIMEOUT";
|
|
19
|
+
/** Service-specific error */
|
|
20
|
+
readonly E_SERVICE_ERROR: "E_SERVICE_ERROR";
|
|
21
|
+
/** Media permission denied */
|
|
22
|
+
readonly E_PERMISSION_DENIED: "E_PERMISSION_DENIED";
|
|
23
|
+
/** Media device operation failed (e.g., mute/unmute, device disconnected) */
|
|
24
|
+
readonly E_MEDIA: "E_MEDIA";
|
|
25
|
+
/** Feature not supported */
|
|
26
|
+
readonly E_UNSUPPORTED_FEATURE: "E_UNSUPPORTED_FEATURE";
|
|
27
|
+
/** Failed to start recording */
|
|
28
|
+
readonly E_RECORDING_START: "E_RECORDING_START";
|
|
29
|
+
/** Unsupported RTC provider */
|
|
30
|
+
readonly E_UNSUPPORTED_PROVIDER: "E_UNSUPPORTED_PROVIDER";
|
|
31
|
+
/** Resource not found */
|
|
32
|
+
readonly E_NOT_FOUND: "E_NOT_FOUND";
|
|
33
|
+
/** Resource conflict (e.g., already exists) */
|
|
34
|
+
readonly E_CONFLICT: "E_CONFLICT";
|
|
35
|
+
/** HTTP method not allowed */
|
|
36
|
+
readonly E_METHOD_NOT_ALLOWED: "E_METHOD_NOT_ALLOWED";
|
|
37
|
+
/** Access to resource is forbidden (e.g., cross-room access) */
|
|
38
|
+
readonly E_FORBIDDEN: "E_FORBIDDEN";
|
|
39
|
+
/** Internal server error */
|
|
40
|
+
readonly E_INTERNAL: "E_INTERNAL";
|
|
41
|
+
};
|
|
42
|
+
export type ErrorCode = (typeof ErrorCodes)[keyof typeof ErrorCodes];
|
|
43
|
+
//# sourceMappingURL=error-codes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-codes.d.ts","sourceRoot":"","sources":["../../../src/core/errors/error-codes.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,UAAU;IACrB,wCAAwC;;IAExC,gCAAgC;;IAEhC,oCAAoC;;IAEpC,iCAAiC;;IAEjC,oCAAoC;;IAEpC,6BAA6B;;IAE7B,0BAA0B;;IAE1B,6BAA6B;;IAE7B,8BAA8B;;IAE9B,6EAA6E;;IAE7E,4BAA4B;;IAE5B,gCAAgC;;IAEhC,+BAA+B;;IAE/B,yBAAyB;;IAEzB,+CAA+C;;IAE/C,8BAA8B;;IAE9B,gEAAgE;;IAEhE,4BAA4B;;CAEpB,CAAA;AAEV,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,OAAO,UAAU,CAAC,CAAA"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standard error codes for Vroom SDK
|
|
3
|
+
*/
|
|
4
|
+
export const ErrorCodes = {
|
|
5
|
+
/** Missing or invalid request fields */
|
|
6
|
+
E_BAD_REQUEST: 'E_BAD_REQUEST',
|
|
7
|
+
/** API key validation failed */
|
|
8
|
+
E_INVALID_API_KEY: 'E_INVALID_API_KEY',
|
|
9
|
+
/** Invalid or expired auth token */
|
|
10
|
+
E_UNAUTHORIZED: 'E_UNAUTHORIZED',
|
|
11
|
+
/** Invalid or malformed token */
|
|
12
|
+
E_INVALID_TOKEN: 'E_INVALID_TOKEN',
|
|
13
|
+
/** Platform restriction violated */
|
|
14
|
+
E_PLATFORM_MISMATCH: 'E_PLATFORM_MISMATCH',
|
|
15
|
+
/** Network error occurred */
|
|
16
|
+
E_NETWORK: 'E_NETWORK',
|
|
17
|
+
/** Operation timed out */
|
|
18
|
+
E_TIMEOUT: 'E_TIMEOUT',
|
|
19
|
+
/** Service-specific error */
|
|
20
|
+
E_SERVICE_ERROR: 'E_SERVICE_ERROR',
|
|
21
|
+
/** Media permission denied */
|
|
22
|
+
E_PERMISSION_DENIED: 'E_PERMISSION_DENIED',
|
|
23
|
+
/** Media device operation failed (e.g., mute/unmute, device disconnected) */
|
|
24
|
+
E_MEDIA: 'E_MEDIA',
|
|
25
|
+
/** Feature not supported */
|
|
26
|
+
E_UNSUPPORTED_FEATURE: 'E_UNSUPPORTED_FEATURE',
|
|
27
|
+
/** Failed to start recording */
|
|
28
|
+
E_RECORDING_START: 'E_RECORDING_START',
|
|
29
|
+
/** Unsupported RTC provider */
|
|
30
|
+
E_UNSUPPORTED_PROVIDER: 'E_UNSUPPORTED_PROVIDER',
|
|
31
|
+
/** Resource not found */
|
|
32
|
+
E_NOT_FOUND: 'E_NOT_FOUND',
|
|
33
|
+
/** Resource conflict (e.g., already exists) */
|
|
34
|
+
E_CONFLICT: 'E_CONFLICT',
|
|
35
|
+
/** HTTP method not allowed */
|
|
36
|
+
E_METHOD_NOT_ALLOWED: 'E_METHOD_NOT_ALLOWED',
|
|
37
|
+
/** Access to resource is forbidden (e.g., cross-room access) */
|
|
38
|
+
E_FORBIDDEN: 'E_FORBIDDEN',
|
|
39
|
+
/** Internal server error */
|
|
40
|
+
E_INTERNAL: 'E_INTERNAL',
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=error-codes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-codes.js","sourceRoot":"","sources":["../../../src/core/errors/error-codes.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,wCAAwC;IACxC,aAAa,EAAE,eAAe;IAC9B,gCAAgC;IAChC,iBAAiB,EAAE,mBAAmB;IACtC,oCAAoC;IACpC,cAAc,EAAE,gBAAgB;IAChC,iCAAiC;IACjC,eAAe,EAAE,iBAAiB;IAClC,oCAAoC;IACpC,mBAAmB,EAAE,qBAAqB;IAC1C,6BAA6B;IAC7B,SAAS,EAAE,WAAW;IACtB,0BAA0B;IAC1B,SAAS,EAAE,WAAW;IACtB,6BAA6B;IAC7B,eAAe,EAAE,iBAAiB;IAClC,8BAA8B;IAC9B,mBAAmB,EAAE,qBAAqB;IAC1C,6EAA6E;IAC7E,OAAO,EAAE,SAAS;IAClB,4BAA4B;IAC5B,qBAAqB,EAAE,uBAAuB;IAC9C,gCAAgC;IAChC,iBAAiB,EAAE,mBAAmB;IACtC,+BAA+B;IAC/B,sBAAsB,EAAE,wBAAwB;IAChD,yBAAyB;IACzB,WAAW,EAAE,aAAa;IAC1B,+CAA+C;IAC/C,UAAU,EAAE,YAAY;IACxB,8BAA8B;IAC9B,oBAAoB,EAAE,sBAAsB;IAC5C,gEAAgE;IAChE,WAAW,EAAE,aAAa;IAC1B,4BAA4B;IAC5B,UAAU,EAAE,YAAY;CAChB,CAAA"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { type ErrorCode } from './error-codes';
|
|
2
|
+
/**
|
|
3
|
+
* Base error class for Vroom SDK
|
|
4
|
+
* All errors extend this class
|
|
5
|
+
*/
|
|
6
|
+
export declare class VroomError extends Error {
|
|
7
|
+
/** Error code */
|
|
8
|
+
readonly code: ErrorCode;
|
|
9
|
+
/** Additional error details */
|
|
10
|
+
readonly details?: unknown;
|
|
11
|
+
/** Error timestamp */
|
|
12
|
+
readonly timestamp: number;
|
|
13
|
+
constructor(code: ErrorCode, message: string, details?: unknown);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Bad request error - missing or invalid request fields
|
|
17
|
+
*/
|
|
18
|
+
export declare class BadRequestError extends VroomError {
|
|
19
|
+
constructor(message?: string, details?: unknown);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Invalid API key error
|
|
23
|
+
*/
|
|
24
|
+
export declare class InvalidApiKeyError extends VroomError {
|
|
25
|
+
constructor(message?: string, details?: unknown);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Unauthorized error - invalid or expired auth token
|
|
29
|
+
*/
|
|
30
|
+
export declare class UnauthorizedError extends VroomError {
|
|
31
|
+
constructor(message?: string, details?: unknown);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Platform mismatch error
|
|
35
|
+
*/
|
|
36
|
+
export declare class PlatformMismatchError extends VroomError {
|
|
37
|
+
constructor(message?: string, details?: unknown);
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Network error
|
|
41
|
+
*/
|
|
42
|
+
export declare class NetworkError extends VroomError {
|
|
43
|
+
constructor(message?: string, details?: unknown);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Timeout error
|
|
47
|
+
*/
|
|
48
|
+
export declare class TimeoutError extends VroomError {
|
|
49
|
+
constructor(message?: string, details?: unknown);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Service error
|
|
53
|
+
*/
|
|
54
|
+
export declare class ServiceError extends VroomError {
|
|
55
|
+
constructor(message?: string, details?: unknown);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Permission denied error
|
|
59
|
+
*/
|
|
60
|
+
export declare class PermissionDeniedError extends VroomError {
|
|
61
|
+
constructor(message?: string, details?: unknown);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Unsupported feature error
|
|
65
|
+
*/
|
|
66
|
+
export declare class UnsupportedFeatureError extends VroomError {
|
|
67
|
+
constructor(message?: string, details?: unknown);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Recording start error
|
|
71
|
+
*/
|
|
72
|
+
export declare class RecordingStartError extends VroomError {
|
|
73
|
+
constructor(message?: string, details?: unknown);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Not found error - resource does not exist
|
|
77
|
+
*/
|
|
78
|
+
export declare class NotFoundError extends VroomError {
|
|
79
|
+
constructor(message?: string, details?: unknown);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Conflict error - resource already exists or state conflict
|
|
83
|
+
*/
|
|
84
|
+
export declare class ConflictError extends VroomError {
|
|
85
|
+
constructor(message?: string, details?: unknown);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Method not allowed error
|
|
89
|
+
*/
|
|
90
|
+
export declare class MethodNotAllowedError extends VroomError {
|
|
91
|
+
constructor(message?: string, details?: unknown);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Forbidden error - access to resource is forbidden (e.g., cross-room access)
|
|
95
|
+
*/
|
|
96
|
+
export declare class ForbiddenError extends VroomError {
|
|
97
|
+
constructor(message?: string, details?: unknown);
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=vroom.error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vroom.error.d.ts","sourceRoot":"","sources":["../../../src/core/errors/vroom.error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,eAAe,CAAA;AAE1D;;;GAGG;AACH,qBAAa,UAAW,SAAQ,KAAK;IACnC,iBAAiB;IACjB,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;IACxB,+BAA+B;IAC/B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;IAC1B,sBAAsB;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;gBAEd,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO;CAOhE;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,UAAU;gBACjC,OAAO,SAAgB,EAAE,OAAO,CAAC,EAAE,OAAO;CAIvD;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,UAAU;gBACpC,OAAO,SAA8B,EAAE,OAAO,CAAC,EAAE,OAAO;CAIrE;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,UAAU;gBACnC,OAAO,SAAiB,EAAE,OAAO,CAAC,EAAE,OAAO;CAIxD;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,UAAU;gBACvC,OAAO,SAAkC,EAAE,OAAO,CAAC,EAAE,OAAO;CAIzE;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,UAAU;gBAC9B,OAAO,SAA2B,EAAE,OAAO,CAAC,EAAE,OAAO;CAIlE;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,UAAU;gBAC9B,OAAO,SAAwB,EAAE,OAAO,CAAC,EAAE,OAAO;CAI/D;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,UAAU;gBAC9B,OAAO,SAA2B,EAAE,OAAO,CAAC,EAAE,OAAO;CAIlE;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,UAAU;gBACvC,OAAO,SAAsB,EAAE,OAAO,CAAC,EAAE,OAAO;CAI7D;AAED;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,UAAU;gBACzC,OAAO,SAA0B,EAAE,OAAO,CAAC,EAAE,OAAO;CAIjE;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,UAAU;gBACrC,OAAO,SAA8B,EAAE,OAAO,CAAC,EAAE,OAAO;CAIrE;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,UAAU;gBAC/B,OAAO,SAAuB,EAAE,OAAO,CAAC,EAAE,OAAO;CAI9D;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,UAAU;gBAC/B,OAAO,SAAsB,EAAE,OAAO,CAAC,EAAE,OAAO;CAI7D;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,UAAU;gBACvC,OAAO,SAAuB,EAAE,OAAO,CAAC,EAAE,OAAO;CAI9D;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,UAAU;gBAChC,OAAO,SAAc,EAAE,OAAO,CAAC,EAAE,OAAO;CAIrD"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { ErrorCodes } from './error-codes';
|
|
2
|
+
/**
|
|
3
|
+
* Base error class for Vroom SDK
|
|
4
|
+
* All errors extend this class
|
|
5
|
+
*/
|
|
6
|
+
export class VroomError extends Error {
|
|
7
|
+
constructor(code, message, details) {
|
|
8
|
+
super(message);
|
|
9
|
+
this.name = 'VroomError';
|
|
10
|
+
this.code = code;
|
|
11
|
+
this.details = details;
|
|
12
|
+
this.timestamp = Date.now();
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Bad request error - missing or invalid request fields
|
|
17
|
+
*/
|
|
18
|
+
export class BadRequestError extends VroomError {
|
|
19
|
+
constructor(message = 'Bad request', details) {
|
|
20
|
+
super(ErrorCodes.E_BAD_REQUEST, message, details);
|
|
21
|
+
this.name = 'BadRequestError';
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Invalid API key error
|
|
26
|
+
*/
|
|
27
|
+
export class InvalidApiKeyError extends VroomError {
|
|
28
|
+
constructor(message = 'API key validation failed', details) {
|
|
29
|
+
super(ErrorCodes.E_INVALID_API_KEY, message, details);
|
|
30
|
+
this.name = 'InvalidApiKeyError';
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Unauthorized error - invalid or expired auth token
|
|
35
|
+
*/
|
|
36
|
+
export class UnauthorizedError extends VroomError {
|
|
37
|
+
constructor(message = 'Unauthorized', details) {
|
|
38
|
+
super(ErrorCodes.E_UNAUTHORIZED, message, details);
|
|
39
|
+
this.name = 'UnauthorizedError';
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Platform mismatch error
|
|
44
|
+
*/
|
|
45
|
+
export class PlatformMismatchError extends VroomError {
|
|
46
|
+
constructor(message = 'Platform restriction violated', details) {
|
|
47
|
+
super(ErrorCodes.E_PLATFORM_MISMATCH, message, details);
|
|
48
|
+
this.name = 'PlatformMismatchError';
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Network error
|
|
53
|
+
*/
|
|
54
|
+
export class NetworkError extends VroomError {
|
|
55
|
+
constructor(message = 'Network error occurred', details) {
|
|
56
|
+
super(ErrorCodes.E_NETWORK, message, details);
|
|
57
|
+
this.name = 'NetworkError';
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Timeout error
|
|
62
|
+
*/
|
|
63
|
+
export class TimeoutError extends VroomError {
|
|
64
|
+
constructor(message = 'Operation timed out', details) {
|
|
65
|
+
super(ErrorCodes.E_TIMEOUT, message, details);
|
|
66
|
+
this.name = 'TimeoutError';
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Service error
|
|
71
|
+
*/
|
|
72
|
+
export class ServiceError extends VroomError {
|
|
73
|
+
constructor(message = 'Service error occurred', details) {
|
|
74
|
+
super(ErrorCodes.E_SERVICE_ERROR, message, details);
|
|
75
|
+
this.name = 'ServiceError';
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Permission denied error
|
|
80
|
+
*/
|
|
81
|
+
export class PermissionDeniedError extends VroomError {
|
|
82
|
+
constructor(message = 'Permission denied', details) {
|
|
83
|
+
super(ErrorCodes.E_PERMISSION_DENIED, message, details);
|
|
84
|
+
this.name = 'PermissionDeniedError';
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Unsupported feature error
|
|
89
|
+
*/
|
|
90
|
+
export class UnsupportedFeatureError extends VroomError {
|
|
91
|
+
constructor(message = 'Feature not supported', details) {
|
|
92
|
+
super(ErrorCodes.E_UNSUPPORTED_FEATURE, message, details);
|
|
93
|
+
this.name = 'UnsupportedFeatureError';
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Recording start error
|
|
98
|
+
*/
|
|
99
|
+
export class RecordingStartError extends VroomError {
|
|
100
|
+
constructor(message = 'Failed to start recording', details) {
|
|
101
|
+
super(ErrorCodes.E_RECORDING_START, message, details);
|
|
102
|
+
this.name = 'RecordingStartError';
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Not found error - resource does not exist
|
|
107
|
+
*/
|
|
108
|
+
export class NotFoundError extends VroomError {
|
|
109
|
+
constructor(message = 'Resource not found', details) {
|
|
110
|
+
super(ErrorCodes.E_NOT_FOUND, message, details);
|
|
111
|
+
this.name = 'NotFoundError';
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Conflict error - resource already exists or state conflict
|
|
116
|
+
*/
|
|
117
|
+
export class ConflictError extends VroomError {
|
|
118
|
+
constructor(message = 'Resource conflict', details) {
|
|
119
|
+
super(ErrorCodes.E_CONFLICT, message, details);
|
|
120
|
+
this.name = 'ConflictError';
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Method not allowed error
|
|
125
|
+
*/
|
|
126
|
+
export class MethodNotAllowedError extends VroomError {
|
|
127
|
+
constructor(message = 'Method not allowed', details) {
|
|
128
|
+
super(ErrorCodes.E_METHOD_NOT_ALLOWED, message, details);
|
|
129
|
+
this.name = 'MethodNotAllowedError';
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Forbidden error - access to resource is forbidden (e.g., cross-room access)
|
|
134
|
+
*/
|
|
135
|
+
export class ForbiddenError extends VroomError {
|
|
136
|
+
constructor(message = 'Forbidden', details) {
|
|
137
|
+
super(ErrorCodes.E_FORBIDDEN, message, details);
|
|
138
|
+
this.name = 'ForbiddenError';
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=vroom.error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vroom.error.js","sourceRoot":"","sources":["../../../src/core/errors/vroom.error.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { ProviderAdapter } from './provider-adapter.port';
|
|
2
|
+
import type { ServiceContext } from '../../types/service-adapters.types';
|
|
3
|
+
import type { Platform } from '../../types/vroom.types';
|
|
4
|
+
/**
|
|
5
|
+
* Factory interface for creating provider adapters.
|
|
6
|
+
*
|
|
7
|
+
* This is the port (interface) that provider implementations must implement.
|
|
8
|
+
* The factory pattern allows the core to create adapters without knowing
|
|
9
|
+
* the concrete implementation, following Hexagonal Architecture principles.
|
|
10
|
+
*
|
|
11
|
+
* ## Lazy Loading
|
|
12
|
+
*
|
|
13
|
+
* Provider factories are async so adapters can be loaded lazily on demand.
|
|
14
|
+
* Platform setup (e.g., React Native WebRTC globals) should be handled during
|
|
15
|
+
* SDK init, before connect() is called.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* // In adapter layer (e.g., adapters/livekit/index.ts)
|
|
20
|
+
* export const LiveKitAdapterFactory: ProviderAdapterFactory = {
|
|
21
|
+
* create: async (context, _platform) => {
|
|
22
|
+
* // Import adapter only when needed
|
|
23
|
+
* const { LiveKitAdapter } = await import('./livekit.adapter')
|
|
24
|
+
* return new LiveKitAdapter(context)
|
|
25
|
+
* },
|
|
26
|
+
* }
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export interface ProviderAdapterFactory {
|
|
30
|
+
/**
|
|
31
|
+
* Create a new provider adapter instance.
|
|
32
|
+
*
|
|
33
|
+
* Can be async to support lazy loading.
|
|
34
|
+
*
|
|
35
|
+
* @param serviceContext - Context containing session token and API endpoint
|
|
36
|
+
* @param platform - Target platform ('web', 'ios', 'android') for platform-specific setup
|
|
37
|
+
* @returns A new ProviderAdapter instance (sync or async)
|
|
38
|
+
*/
|
|
39
|
+
create(serviceContext: ServiceContext, platform: Platform): ProviderAdapter | Promise<ProviderAdapter>;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=provider-adapter-factory.port.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-adapter-factory.port.d.ts","sourceRoot":"","sources":["../../../../src/core/ports/outbound/provider-adapter-factory.port.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAA;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;AACxE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAEvD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;;;;;OAQG;IACH,MAAM,CAAC,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,GAAG,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAAA;CACvG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-adapter-factory.port.js","sourceRoot":"","sources":["../../../../src/core/ports/outbound/provider-adapter-factory.port.ts"],"names":[],"mappings":""}
|