@coxwave/tap-kit-types 0.0.34 → 0.0.38
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/dist/index.d.ts +96 -61
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/index.ts +24 -348
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,28 +1,59 @@
|
|
|
1
|
-
import { AlarmMessageInstanceType } from '@coxwave/tap-messages';
|
|
1
|
+
import { ConfigUpdateMessage, AlarmMessageInstanceType } from '@coxwave/tap-messages';
|
|
2
2
|
export { AlarmMessageInstanceType, AlarmType } from '@coxwave/tap-messages';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
* Styling Types
|
|
6
|
+
*/
|
|
7
|
+
type PositionType = {
|
|
8
|
+
top?: string;
|
|
9
|
+
left?: string;
|
|
10
|
+
right?: string;
|
|
11
|
+
bottom?: string;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Container Styling
|
|
15
|
+
*/
|
|
16
|
+
type ContainerStyle = {
|
|
17
|
+
position?: PositionType;
|
|
18
|
+
width?: string;
|
|
19
|
+
height?: string;
|
|
20
|
+
borderRadius?: string;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Flattened container styles (backward compatibility)
|
|
10
24
|
*/
|
|
25
|
+
type CustomStyles = ContainerStyle;
|
|
11
26
|
|
|
12
27
|
/**
|
|
13
|
-
* SDK Configuration
|
|
28
|
+
* SDK Configuration (Public API)
|
|
29
|
+
* Constructor only accepts apiKey for simplicity
|
|
30
|
+
*
|
|
31
|
+
* Default values:
|
|
32
|
+
* - tapUrl: https://edutap-ai.vercel.app
|
|
33
|
+
* - apiUrl: https://tapapi.coxwave.link
|
|
34
|
+
* - environment: local (console logging enabled)
|
|
14
35
|
*/
|
|
15
36
|
type TapKitConfig = {
|
|
16
37
|
apiKey: string;
|
|
17
38
|
};
|
|
18
39
|
/**
|
|
19
|
-
*
|
|
40
|
+
* Runtime configuration sent to iframe via config:update message
|
|
41
|
+
* Derived from ConfigUpdateMessage protocol (without 'type' field)
|
|
42
|
+
* This ensures type consistency between iframe messages and config
|
|
20
43
|
*/
|
|
21
|
-
type
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
44
|
+
type TapKitRuntimeConfig = Omit<ConfigUpdateMessage, 'type'>;
|
|
45
|
+
/**
|
|
46
|
+
* All SDK Configuration Options (Internal API)
|
|
47
|
+
* Derived from ConfigUpdateMessage protocol for type consistency
|
|
48
|
+
* Used by Symbol-based config() method for advanced configuration
|
|
49
|
+
*
|
|
50
|
+
* Note: All fields (tapUrl, environment, etc.) are now part of TapKitRuntimeConfig
|
|
51
|
+
* which is based on ConfigUpdateMessage. This ensures consistency between
|
|
52
|
+
* SDK configuration and iframe message protocol.
|
|
53
|
+
*
|
|
54
|
+
* @internal This is not part of the public API
|
|
55
|
+
*/
|
|
56
|
+
type TapKitConfigOptions = TapKitRuntimeConfig;
|
|
26
57
|
/**
|
|
27
58
|
* Course Information
|
|
28
59
|
*/
|
|
@@ -33,24 +64,17 @@ type Course = {
|
|
|
33
64
|
clipPlayHead?: number;
|
|
34
65
|
};
|
|
35
66
|
/**
|
|
36
|
-
*
|
|
67
|
+
* SDK Initialization Parameters
|
|
37
68
|
*/
|
|
38
|
-
type
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
borderRadius?: string;
|
|
43
|
-
};
|
|
44
|
-
type PositionType = {
|
|
45
|
-
top?: string;
|
|
46
|
-
left?: string;
|
|
47
|
-
right?: string;
|
|
48
|
-
bottom?: string;
|
|
69
|
+
type TapKitInitParams = {
|
|
70
|
+
buttonId: string;
|
|
71
|
+
course: Course;
|
|
72
|
+
container?: ContainerStyle;
|
|
49
73
|
};
|
|
74
|
+
|
|
50
75
|
/**
|
|
51
|
-
*
|
|
76
|
+
* Event Types
|
|
52
77
|
*/
|
|
53
|
-
type CustomStyles = ContainerStyle;
|
|
54
78
|
/**
|
|
55
79
|
* Timeline seek parameters
|
|
56
80
|
*/
|
|
@@ -69,56 +93,37 @@ type ShortcutKeyPropertiesType = {
|
|
|
69
93
|
* Container Visibility State
|
|
70
94
|
*/
|
|
71
95
|
type ContainerVisibility = "open" | "closed";
|
|
96
|
+
|
|
72
97
|
/**
|
|
73
|
-
*
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
[key: string]: unknown;
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Base TapKit instance interface
|
|
81
|
-
* Shared properties and methods between core and wrapper
|
|
98
|
+
* @internal
|
|
99
|
+
* Type-only symbol reference for internal configuration method
|
|
100
|
+
* Actual symbol value: Symbol.for("tapkit.config")
|
|
101
|
+
* Use this type in interface definitions, create actual symbol in implementation packages
|
|
82
102
|
*/
|
|
83
|
-
|
|
103
|
+
declare const TAPKIT_CONFIG_SYMBOL: unique symbol;
|
|
104
|
+
/** TapKit instance interface - shared by tap-kit-core and tap-sdk */
|
|
105
|
+
interface TapKitInstance {
|
|
84
106
|
events: {
|
|
85
107
|
seekTimeline: (params: SeekTimelineParamsType) => Promise<void>;
|
|
86
108
|
onTimelineSeek: (callback: (clipPlayHead: number, clipId: string) => void) => () => void;
|
|
87
|
-
onChatInitiated: (handler: () => void) => () => void;
|
|
88
109
|
onChatOpened: (handler: () => void) => () => void;
|
|
89
110
|
onChatClosed: (handler: () => void) => () => void;
|
|
90
111
|
onAlarmFadeIn: (handler: (messageInfo: AlarmMessageInstanceType) => void) => () => void;
|
|
91
|
-
onPopUpOpen: (handler: (popUpInfo: PopUpInfo) => void) => () => void;
|
|
92
|
-
onPdfOpen: (handler: () => void) => () => void;
|
|
93
|
-
onPdfClose: (handler: () => void) => () => void;
|
|
94
112
|
};
|
|
95
113
|
isOpen: boolean;
|
|
96
114
|
isInitialized: boolean;
|
|
97
115
|
ready: Promise<void>;
|
|
98
116
|
init(params: TapKitInitParams): Promise<void>;
|
|
99
117
|
destroy(): void;
|
|
118
|
+
/** @internal Advanced configuration API using Symbol.for("tapkit.config") */
|
|
119
|
+
[TAPKIT_CONFIG_SYMBOL]?(options: TapKitConfigOptions): void;
|
|
100
120
|
}
|
|
121
|
+
/** TapKit constructor type */
|
|
122
|
+
type TapKitConstructor = new (config: TapKitConfig) => TapKitInstance;
|
|
123
|
+
|
|
101
124
|
/**
|
|
102
|
-
*
|
|
103
|
-
* This matches the actual TapKit class exported from @coxwave/tap-kit-core
|
|
104
|
-
* Exported for advanced use cases (e.g., when using window.TapKit directly)
|
|
105
|
-
*
|
|
106
|
-
* Currently identical to TapKitBaseInstance, but kept as separate type
|
|
107
|
-
* for future extensibility and semantic clarity
|
|
108
|
-
*/
|
|
109
|
-
interface TapKitCoreInstance extends TapKitBaseInstance {
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Public TapKit instance interface
|
|
113
|
-
* This is what users interact with when using the SDK
|
|
114
|
-
*/
|
|
115
|
-
interface TapKitInstance extends TapKitBaseInstance {
|
|
116
|
-
getVersion(): string;
|
|
117
|
-
}
|
|
118
|
-
/**
|
|
119
|
-
* TapKit constructor type
|
|
125
|
+
* Error Classes
|
|
120
126
|
*/
|
|
121
|
-
type TapKitConstructor = new (config: TapKitConfig) => TapKitCoreInstance;
|
|
122
127
|
declare const TAP_ERROR_MARKER = "__tap_sdk_error__";
|
|
123
128
|
interface TapErrorOptions {
|
|
124
129
|
code?: string;
|
|
@@ -173,4 +178,34 @@ declare class TapKitIframeError extends TapKitError {
|
|
|
173
178
|
static fromPossibleFrameSafeError(error: any): TapKitIframeError | null;
|
|
174
179
|
}
|
|
175
180
|
|
|
176
|
-
|
|
181
|
+
/**
|
|
182
|
+
* Global type definitions for browser environment
|
|
183
|
+
*/
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
declare global {
|
|
188
|
+
interface Window {
|
|
189
|
+
TapKit?: TapKitConstructor;
|
|
190
|
+
__TAP_KIT_LOADER_LOADED__?: boolean;
|
|
191
|
+
__TAP_KIT_LOADER_LOADING__?: Promise<void>;
|
|
192
|
+
__TAP_KIT_LOADER_URL__?: string; // Override CDN loader URL for local testing
|
|
193
|
+
__TAP_KIT_CORE_URL__?: string; // Override to load local IIFE directly (bypass loader)
|
|
194
|
+
TapKitLoaded?: boolean; // Set by loader.js when real SDK is loaded
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
// requestIdleCallback types (not included in TypeScript by default)
|
|
198
|
+
interface IdleDeadline {
|
|
199
|
+
readonly didTimeout: boolean;
|
|
200
|
+
timeRemaining(): number;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
function requestIdleCallback(
|
|
204
|
+
callback: (deadline: IdleDeadline) => void,
|
|
205
|
+
options?: { timeout: number },
|
|
206
|
+
): number;
|
|
207
|
+
|
|
208
|
+
function cancelIdleCallback(handle: number): void;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
export { type ContainerStyle, type ContainerVisibility, type Course, type CustomStyles, TapKitInitializationError as InitializationError, type PositionType, type SeekTimelineParamsType, type ShortcutKeyPropertiesType, TAPKIT_CONFIG_SYMBOL, TAP_ERROR_MARKER, type TapErrorOptions, type TapKitConfig, type TapKitConfigOptions, TapKitConfigurationError, type TapKitConstructor, TapKitError, TapKitIframeError, type TapKitInitParams, TapKitInitializationError, type TapKitInstance, TapKitLoaderError, TapKitMessageError, type TapKitRuntimeConfig };
|
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@ var __defProp = Object.defineProperty;
|
|
|
2
2
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
3
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
4
|
|
|
5
|
-
//
|
|
5
|
+
// src/errors.ts
|
|
6
6
|
var TAP_ERROR_MARKER = "__tap_sdk_error__";
|
|
7
7
|
var TapKitError = class _TapKitError extends Error {
|
|
8
8
|
constructor(message, options) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../index.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/**\n * @coxwave/tap-kit-types\n * Shared TypeScript types for TapKit SDK packages\n *\n * This package serves as the single source of truth for all TapKit types,\n * used by both @coxwave/tap-sdk (npm wrapper) and @coxwave/tap-kit-core (CDN implementation).\n */\n\n// ==================== Re-exports from tap-messages ====================\nimport type {\n AlarmMessageInstanceType,\n AlarmType,\n} from \"@coxwave/tap-messages\";\n\nexport type { AlarmMessageInstanceType, AlarmType };\n\n// ==================== Core Configuration Types ====================\n\n/**\n * SDK Configuration\n */\nexport type TapKitConfig = {\n apiKey: string;\n};\n\n/**\n * SDK Initialization Parameters\n */\nexport type TapKitInitParams = {\n buttonId: string;\n course: Course;\n container?: ContainerStyle;\n};\n\n/**\n * Course Information\n */\nexport type Course = {\n userId: string;\n courseId: string;\n clipId: string;\n clipPlayHead?: number;\n};\n\n// ==================== Styling Types ====================\n\n/**\n * Container Styling\n */\nexport type ContainerStyle = {\n position?: PositionType;\n width?: string;\n height?: string;\n borderRadius?: string;\n};\n\nexport type PositionType = {\n top?: string;\n left?: string;\n right?: string;\n bottom?: string;\n};\n\n/**\n * Flattened container styles (backward compatibility)\n */\nexport type CustomStyles = ContainerStyle;\n\n// ==================== Event Types ====================\n\n/**\n * Timeline seek parameters\n */\nexport type SeekTimelineParamsType = {\n clipId: string;\n clipPlayHead: number;\n};\n\n/**\n * Shortcut Key Configuration\n */\nexport type ShortcutKeyPropertiesType = {\n key: string;\n modifier: \"ctrlKey\" | \"altKey\" | \"shiftKey\" | \"metaKey\" | \"\";\n};\n\n/**\n * Container Visibility State\n */\nexport type ContainerVisibility = \"open\" | \"closed\";\n\n// ==================== SDK Instance Interfaces ====================\n\n/**\n * Pop-up information passed to onPopUpOpen event handler\n */\nexport interface PopUpInfo {\n html: string;\n [key: string]: unknown;\n}\n\n/**\n * Base TapKit instance interface\n * Shared properties and methods between core and wrapper\n */\nexport interface TapKitBaseInstance {\n events: {\n seekTimeline: (params: SeekTimelineParamsType) => Promise<void>;\n onTimelineSeek: (\n callback: (clipPlayHead: number, clipId: string) => void,\n ) => () => void;\n onChatInitiated: (handler: () => void) => () => void;\n onChatOpened: (handler: () => void) => () => void;\n onChatClosed: (handler: () => void) => () => void;\n onAlarmFadeIn: (\n handler: (messageInfo: AlarmMessageInstanceType) => void,\n ) => () => void;\n onPopUpOpen: (handler: (popUpInfo: PopUpInfo) => void) => () => void;\n onPdfOpen: (handler: () => void) => () => void;\n onPdfClose: (handler: () => void) => () => void;\n };\n isOpen: boolean;\n isInitialized: boolean;\n ready: Promise<void>;\n init(params: TapKitInitParams): Promise<void>;\n destroy(): void;\n}\n\n/**\n * TapKit instance type from tap-kit-core\n * This matches the actual TapKit class exported from @coxwave/tap-kit-core\n * Exported for advanced use cases (e.g., when using window.TapKit directly)\n *\n * Currently identical to TapKitBaseInstance, but kept as separate type\n * for future extensibility and semantic clarity\n */\nexport interface TapKitCoreInstance extends TapKitBaseInstance {}\n\n/**\n * Public TapKit instance interface\n * This is what users interact with when using the SDK\n */\nexport interface TapKitInstance extends TapKitBaseInstance {\n // Wrapper-specific method\n getVersion(): string;\n}\n\n/**\n * TapKit constructor type\n */\nexport type TapKitConstructor = new (\n config: TapKitConfig,\n) => TapKitCoreInstance;\n\n// ==================== Error Classes ====================\n\nexport const TAP_ERROR_MARKER = \"__tap_sdk_error__\";\n\nexport interface TapErrorOptions {\n code?: string;\n cause?: Error;\n}\n\n/**\n * Base error class for all TapKit errors\n * Supports serialization across iframe boundaries\n */\nexport class TapKitError extends Error {\n override cause: Error | undefined;\n code: string | undefined;\n\n constructor(message: string, options?: TapErrorOptions) {\n super(message);\n this.name = \"TapKitError\";\n this.code = options?.code;\n this.cause = options?.cause;\n }\n\n /**\n * Restore error from postMessage serialization\n */\n static fromPossibleFrameSafeError(error: any): TapKitError | null {\n if (error instanceof TapKitError) {\n return error;\n }\n if (\n error &&\n typeof error === \"object\" &&\n TAP_ERROR_MARKER in error &&\n error[TAP_ERROR_MARKER] === \"TapKitError\"\n ) {\n const err = new TapKitError(error.message, {\n code: error.code,\n });\n err.stack = error.stack;\n return err;\n }\n return null;\n }\n}\n\n/**\n * Error thrown when SDK initialization fails\n */\nexport class TapKitInitializationError extends TapKitError {\n constructor(message: string, options?: TapErrorOptions) {\n super(message, options);\n this.name = \"TapKitInitializationError\";\n this.code = options?.code ?? \"ERR_INITIALIZATION\";\n }\n\n static override fromPossibleFrameSafeError(\n error: any\n ): TapKitInitializationError | null {\n if (error instanceof TapKitInitializationError) {\n return error;\n }\n if (\n error &&\n typeof error === \"object\" &&\n TAP_ERROR_MARKER in error &&\n error[TAP_ERROR_MARKER] === \"TapKitInitializationError\"\n ) {\n const err = new TapKitInitializationError(error.message, {\n code: error.code,\n });\n err.stack = error.stack;\n return err;\n }\n return null;\n }\n}\n\n/**\n * Error thrown when message communication fails\n */\nexport class TapKitMessageError extends TapKitError {\n constructor(message: string, options?: TapErrorOptions) {\n super(message, options);\n this.name = \"TapKitMessageError\";\n this.code = options?.code ?? \"ERR_MESSAGE\";\n }\n\n static override fromPossibleFrameSafeError(\n error: any\n ): TapKitMessageError | null {\n if (error instanceof TapKitMessageError) {\n return error;\n }\n if (\n error &&\n typeof error === \"object\" &&\n TAP_ERROR_MARKER in error &&\n error[TAP_ERROR_MARKER] === \"TapKitMessageError\"\n ) {\n const err = new TapKitMessageError(error.message, {\n code: error.code,\n });\n err.stack = error.stack;\n return err;\n }\n return null;\n }\n}\n\n/**\n * Error thrown when configuration is invalid\n */\nexport class TapKitConfigurationError extends TapKitError {\n constructor(message: string, options?: TapErrorOptions) {\n super(message, options);\n this.name = \"TapKitConfigurationError\";\n this.code = options?.code ?? \"ERR_CONFIGURATION\";\n }\n\n static override fromPossibleFrameSafeError(\n error: any\n ): TapKitConfigurationError | null {\n if (error instanceof TapKitConfigurationError) {\n return error;\n }\n if (\n error &&\n typeof error === \"object\" &&\n TAP_ERROR_MARKER in error &&\n error[TAP_ERROR_MARKER] === \"TapKitConfigurationError\"\n ) {\n const err = new TapKitConfigurationError(error.message, {\n code: error.code,\n });\n err.stack = error.stack;\n return err;\n }\n return null;\n }\n}\n\n/**\n * Error thrown when loader fails to fetch or load resources\n */\nexport class TapKitLoaderError extends TapKitError {\n constructor(message: string, options?: TapErrorOptions) {\n super(message, options);\n this.name = \"TapKitLoaderError\";\n this.code = options?.code ?? \"ERR_LOADER\";\n }\n\n static override fromPossibleFrameSafeError(\n error: any\n ): TapKitLoaderError | null {\n if (error instanceof TapKitLoaderError) {\n return error;\n }\n if (\n error &&\n typeof error === \"object\" &&\n TAP_ERROR_MARKER in error &&\n error[TAP_ERROR_MARKER] === \"TapKitLoaderError\"\n ) {\n const err = new TapKitLoaderError(error.message, {\n code: error.code,\n });\n err.stack = error.stack;\n return err;\n }\n return null;\n }\n}\n\n/**\n * Error thrown when iframe operations fail\n */\nexport class TapKitIframeError extends TapKitError {\n constructor(message: string, options?: TapErrorOptions) {\n super(message, options);\n this.name = \"TapKitIframeError\";\n this.code = options?.code ?? \"ERR_IFRAME\";\n }\n\n static override fromPossibleFrameSafeError(\n error: any\n ): TapKitIframeError | null {\n if (error instanceof TapKitIframeError) {\n return error;\n }\n if (\n error &&\n typeof error === \"object\" &&\n TAP_ERROR_MARKER in error &&\n error[TAP_ERROR_MARKER] === \"TapKitIframeError\"\n ) {\n const err = new TapKitIframeError(error.message, {\n code: error.code,\n });\n err.stack = error.stack;\n return err;\n }\n return null;\n }\n}\n\n// Backward compatibility alias\nexport { TapKitInitializationError as InitializationError };\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/errors.ts"],"names":[],"mappings":"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","file":"index.js","sourcesContent":["/**\n * Error Classes\n */\n\nexport const TAP_ERROR_MARKER = \"__tap_sdk_error__\";\n\nexport interface TapErrorOptions {\n code?: string;\n cause?: Error;\n}\n\n/**\n * Base error class for all TapKit errors\n * Supports serialization across iframe boundaries\n */\nexport class TapKitError extends Error {\n override cause: Error | undefined;\n code: string | undefined;\n\n constructor(message: string, options?: TapErrorOptions) {\n super(message);\n this.name = \"TapKitError\";\n this.code = options?.code;\n this.cause = options?.cause;\n }\n\n /**\n * Restore error from postMessage serialization\n */\n static fromPossibleFrameSafeError(error: any): TapKitError | null {\n if (error instanceof TapKitError) {\n return error;\n }\n if (\n error &&\n typeof error === \"object\" &&\n TAP_ERROR_MARKER in error &&\n error[TAP_ERROR_MARKER] === \"TapKitError\"\n ) {\n const err = new TapKitError(error.message, {\n code: error.code,\n });\n err.stack = error.stack;\n return err;\n }\n return null;\n }\n}\n\n/**\n * Error thrown when SDK initialization fails\n */\nexport class TapKitInitializationError extends TapKitError {\n constructor(message: string, options?: TapErrorOptions) {\n super(message, options);\n this.name = \"TapKitInitializationError\";\n this.code = options?.code ?? \"ERR_INITIALIZATION\";\n }\n\n static override fromPossibleFrameSafeError(\n error: any\n ): TapKitInitializationError | null {\n if (error instanceof TapKitInitializationError) {\n return error;\n }\n if (\n error &&\n typeof error === \"object\" &&\n TAP_ERROR_MARKER in error &&\n error[TAP_ERROR_MARKER] === \"TapKitInitializationError\"\n ) {\n const err = new TapKitInitializationError(error.message, {\n code: error.code,\n });\n err.stack = error.stack;\n return err;\n }\n return null;\n }\n}\n\n/**\n * Error thrown when message communication fails\n */\nexport class TapKitMessageError extends TapKitError {\n constructor(message: string, options?: TapErrorOptions) {\n super(message, options);\n this.name = \"TapKitMessageError\";\n this.code = options?.code ?? \"ERR_MESSAGE\";\n }\n\n static override fromPossibleFrameSafeError(\n error: any\n ): TapKitMessageError | null {\n if (error instanceof TapKitMessageError) {\n return error;\n }\n if (\n error &&\n typeof error === \"object\" &&\n TAP_ERROR_MARKER in error &&\n error[TAP_ERROR_MARKER] === \"TapKitMessageError\"\n ) {\n const err = new TapKitMessageError(error.message, {\n code: error.code,\n });\n err.stack = error.stack;\n return err;\n }\n return null;\n }\n}\n\n/**\n * Error thrown when configuration is invalid\n */\nexport class TapKitConfigurationError extends TapKitError {\n constructor(message: string, options?: TapErrorOptions) {\n super(message, options);\n this.name = \"TapKitConfigurationError\";\n this.code = options?.code ?? \"ERR_CONFIGURATION\";\n }\n\n static override fromPossibleFrameSafeError(\n error: any\n ): TapKitConfigurationError | null {\n if (error instanceof TapKitConfigurationError) {\n return error;\n }\n if (\n error &&\n typeof error === \"object\" &&\n TAP_ERROR_MARKER in error &&\n error[TAP_ERROR_MARKER] === \"TapKitConfigurationError\"\n ) {\n const err = new TapKitConfigurationError(error.message, {\n code: error.code,\n });\n err.stack = error.stack;\n return err;\n }\n return null;\n }\n}\n\n/**\n * Error thrown when loader fails to fetch or load resources\n */\nexport class TapKitLoaderError extends TapKitError {\n constructor(message: string, options?: TapErrorOptions) {\n super(message, options);\n this.name = \"TapKitLoaderError\";\n this.code = options?.code ?? \"ERR_LOADER\";\n }\n\n static override fromPossibleFrameSafeError(\n error: any\n ): TapKitLoaderError | null {\n if (error instanceof TapKitLoaderError) {\n return error;\n }\n if (\n error &&\n typeof error === \"object\" &&\n TAP_ERROR_MARKER in error &&\n error[TAP_ERROR_MARKER] === \"TapKitLoaderError\"\n ) {\n const err = new TapKitLoaderError(error.message, {\n code: error.code,\n });\n err.stack = error.stack;\n return err;\n }\n return null;\n }\n}\n\n/**\n * Error thrown when iframe operations fail\n */\nexport class TapKitIframeError extends TapKitError {\n constructor(message: string, options?: TapErrorOptions) {\n super(message, options);\n this.name = \"TapKitIframeError\";\n this.code = options?.code ?? \"ERR_IFRAME\";\n }\n\n static override fromPossibleFrameSafeError(\n error: any\n ): TapKitIframeError | null {\n if (error instanceof TapKitIframeError) {\n return error;\n }\n if (\n error &&\n typeof error === \"object\" &&\n TAP_ERROR_MARKER in error &&\n error[TAP_ERROR_MARKER] === \"TapKitIframeError\"\n ) {\n const err = new TapKitIframeError(error.message, {\n code: error.code,\n });\n err.stack = error.stack;\n return err;\n }\n return null;\n }\n}\n\n// Backward compatibility alias\nexport { TapKitInitializationError as InitializationError };\n"]}
|
package/index.ts
CHANGED
|
@@ -6,358 +6,34 @@
|
|
|
6
6
|
* used by both @coxwave/tap-sdk (npm wrapper) and @coxwave/tap-kit-core (CDN implementation).
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
//
|
|
10
|
-
|
|
11
|
-
AlarmMessageInstanceType,
|
|
12
|
-
AlarmType,
|
|
13
|
-
} from "@coxwave/tap-messages";
|
|
9
|
+
// Re-exports from tap-messages
|
|
10
|
+
export type { AlarmMessageInstanceType, AlarmType } from "@coxwave/tap-messages";
|
|
14
11
|
|
|
15
|
-
|
|
12
|
+
// Configuration types
|
|
13
|
+
export type { TapKitConfig, TapKitRuntimeConfig, TapKitConfigOptions, TapKitInitParams, Course } from "./src/config.js";
|
|
16
14
|
|
|
17
|
-
//
|
|
15
|
+
// Styling types
|
|
16
|
+
export type { ContainerStyle, PositionType, CustomStyles } from "./src/styles.js";
|
|
18
17
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
*/
|
|
22
|
-
export type TapKitConfig = {
|
|
23
|
-
apiKey: string;
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* SDK Initialization Parameters
|
|
28
|
-
*/
|
|
29
|
-
export type TapKitInitParams = {
|
|
30
|
-
buttonId: string;
|
|
31
|
-
course: Course;
|
|
32
|
-
container?: ContainerStyle;
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Course Information
|
|
37
|
-
*/
|
|
38
|
-
export type Course = {
|
|
39
|
-
userId: string;
|
|
40
|
-
courseId: string;
|
|
41
|
-
clipId: string;
|
|
42
|
-
clipPlayHead?: number;
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
// ==================== Styling Types ====================
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Container Styling
|
|
49
|
-
*/
|
|
50
|
-
export type ContainerStyle = {
|
|
51
|
-
position?: PositionType;
|
|
52
|
-
width?: string;
|
|
53
|
-
height?: string;
|
|
54
|
-
borderRadius?: string;
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
export type PositionType = {
|
|
58
|
-
top?: string;
|
|
59
|
-
left?: string;
|
|
60
|
-
right?: string;
|
|
61
|
-
bottom?: string;
|
|
62
|
-
};
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Flattened container styles (backward compatibility)
|
|
66
|
-
*/
|
|
67
|
-
export type CustomStyles = ContainerStyle;
|
|
68
|
-
|
|
69
|
-
// ==================== Event Types ====================
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Timeline seek parameters
|
|
73
|
-
*/
|
|
74
|
-
export type SeekTimelineParamsType = {
|
|
75
|
-
clipId: string;
|
|
76
|
-
clipPlayHead: number;
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Shortcut Key Configuration
|
|
81
|
-
*/
|
|
82
|
-
export type ShortcutKeyPropertiesType = {
|
|
83
|
-
key: string;
|
|
84
|
-
modifier: "ctrlKey" | "altKey" | "shiftKey" | "metaKey" | "";
|
|
85
|
-
};
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* Container Visibility State
|
|
89
|
-
*/
|
|
90
|
-
export type ContainerVisibility = "open" | "closed";
|
|
91
|
-
|
|
92
|
-
// ==================== SDK Instance Interfaces ====================
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* Pop-up information passed to onPopUpOpen event handler
|
|
96
|
-
*/
|
|
97
|
-
export interface PopUpInfo {
|
|
98
|
-
html: string;
|
|
99
|
-
[key: string]: unknown;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* Base TapKit instance interface
|
|
104
|
-
* Shared properties and methods between core and wrapper
|
|
105
|
-
*/
|
|
106
|
-
export interface TapKitBaseInstance {
|
|
107
|
-
events: {
|
|
108
|
-
seekTimeline: (params: SeekTimelineParamsType) => Promise<void>;
|
|
109
|
-
onTimelineSeek: (
|
|
110
|
-
callback: (clipPlayHead: number, clipId: string) => void,
|
|
111
|
-
) => () => void;
|
|
112
|
-
onChatInitiated: (handler: () => void) => () => void;
|
|
113
|
-
onChatOpened: (handler: () => void) => () => void;
|
|
114
|
-
onChatClosed: (handler: () => void) => () => void;
|
|
115
|
-
onAlarmFadeIn: (
|
|
116
|
-
handler: (messageInfo: AlarmMessageInstanceType) => void,
|
|
117
|
-
) => () => void;
|
|
118
|
-
onPopUpOpen: (handler: (popUpInfo: PopUpInfo) => void) => () => void;
|
|
119
|
-
onPdfOpen: (handler: () => void) => () => void;
|
|
120
|
-
onPdfClose: (handler: () => void) => () => void;
|
|
121
|
-
};
|
|
122
|
-
isOpen: boolean;
|
|
123
|
-
isInitialized: boolean;
|
|
124
|
-
ready: Promise<void>;
|
|
125
|
-
init(params: TapKitInitParams): Promise<void>;
|
|
126
|
-
destroy(): void;
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
/**
|
|
130
|
-
* TapKit instance type from tap-kit-core
|
|
131
|
-
* This matches the actual TapKit class exported from @coxwave/tap-kit-core
|
|
132
|
-
* Exported for advanced use cases (e.g., when using window.TapKit directly)
|
|
133
|
-
*
|
|
134
|
-
* Currently identical to TapKitBaseInstance, but kept as separate type
|
|
135
|
-
* for future extensibility and semantic clarity
|
|
136
|
-
*/
|
|
137
|
-
export interface TapKitCoreInstance extends TapKitBaseInstance {}
|
|
138
|
-
|
|
139
|
-
/**
|
|
140
|
-
* Public TapKit instance interface
|
|
141
|
-
* This is what users interact with when using the SDK
|
|
142
|
-
*/
|
|
143
|
-
export interface TapKitInstance extends TapKitBaseInstance {
|
|
144
|
-
// Wrapper-specific method
|
|
145
|
-
getVersion(): string;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
/**
|
|
149
|
-
* TapKit constructor type
|
|
150
|
-
*/
|
|
151
|
-
export type TapKitConstructor = new (
|
|
152
|
-
config: TapKitConfig,
|
|
153
|
-
) => TapKitCoreInstance;
|
|
154
|
-
|
|
155
|
-
// ==================== Error Classes ====================
|
|
156
|
-
|
|
157
|
-
export const TAP_ERROR_MARKER = "__tap_sdk_error__";
|
|
158
|
-
|
|
159
|
-
export interface TapErrorOptions {
|
|
160
|
-
code?: string;
|
|
161
|
-
cause?: Error;
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
/**
|
|
165
|
-
* Base error class for all TapKit errors
|
|
166
|
-
* Supports serialization across iframe boundaries
|
|
167
|
-
*/
|
|
168
|
-
export class TapKitError extends Error {
|
|
169
|
-
override cause: Error | undefined;
|
|
170
|
-
code: string | undefined;
|
|
171
|
-
|
|
172
|
-
constructor(message: string, options?: TapErrorOptions) {
|
|
173
|
-
super(message);
|
|
174
|
-
this.name = "TapKitError";
|
|
175
|
-
this.code = options?.code;
|
|
176
|
-
this.cause = options?.cause;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
/**
|
|
180
|
-
* Restore error from postMessage serialization
|
|
181
|
-
*/
|
|
182
|
-
static fromPossibleFrameSafeError(error: any): TapKitError | null {
|
|
183
|
-
if (error instanceof TapKitError) {
|
|
184
|
-
return error;
|
|
185
|
-
}
|
|
186
|
-
if (
|
|
187
|
-
error &&
|
|
188
|
-
typeof error === "object" &&
|
|
189
|
-
TAP_ERROR_MARKER in error &&
|
|
190
|
-
error[TAP_ERROR_MARKER] === "TapKitError"
|
|
191
|
-
) {
|
|
192
|
-
const err = new TapKitError(error.message, {
|
|
193
|
-
code: error.code,
|
|
194
|
-
});
|
|
195
|
-
err.stack = error.stack;
|
|
196
|
-
return err;
|
|
197
|
-
}
|
|
198
|
-
return null;
|
|
199
|
-
}
|
|
200
|
-
}
|
|
18
|
+
// Event types
|
|
19
|
+
export type { SeekTimelineParamsType, ShortcutKeyPropertiesType, ContainerVisibility } from "./src/events.js";
|
|
201
20
|
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
*/
|
|
205
|
-
export class TapKitInitializationError extends TapKitError {
|
|
206
|
-
constructor(message: string, options?: TapErrorOptions) {
|
|
207
|
-
super(message, options);
|
|
208
|
-
this.name = "TapKitInitializationError";
|
|
209
|
-
this.code = options?.code ?? "ERR_INITIALIZATION";
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
static override fromPossibleFrameSafeError(
|
|
213
|
-
error: any
|
|
214
|
-
): TapKitInitializationError | null {
|
|
215
|
-
if (error instanceof TapKitInitializationError) {
|
|
216
|
-
return error;
|
|
217
|
-
}
|
|
218
|
-
if (
|
|
219
|
-
error &&
|
|
220
|
-
typeof error === "object" &&
|
|
221
|
-
TAP_ERROR_MARKER in error &&
|
|
222
|
-
error[TAP_ERROR_MARKER] === "TapKitInitializationError"
|
|
223
|
-
) {
|
|
224
|
-
const err = new TapKitInitializationError(error.message, {
|
|
225
|
-
code: error.code,
|
|
226
|
-
});
|
|
227
|
-
err.stack = error.stack;
|
|
228
|
-
return err;
|
|
229
|
-
}
|
|
230
|
-
return null;
|
|
231
|
-
}
|
|
232
|
-
}
|
|
21
|
+
// Instance types
|
|
22
|
+
export type { TapKitInstance, TapKitConstructor, TAPKIT_CONFIG_SYMBOL } from "./src/instance.js";
|
|
233
23
|
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
*/
|
|
237
|
-
export class TapKitMessageError extends TapKitError {
|
|
238
|
-
constructor(message: string, options?: TapErrorOptions) {
|
|
239
|
-
super(message, options);
|
|
240
|
-
this.name = "TapKitMessageError";
|
|
241
|
-
this.code = options?.code ?? "ERR_MESSAGE";
|
|
242
|
-
}
|
|
243
|
-
|
|
244
|
-
static override fromPossibleFrameSafeError(
|
|
245
|
-
error: any
|
|
246
|
-
): TapKitMessageError | null {
|
|
247
|
-
if (error instanceof TapKitMessageError) {
|
|
248
|
-
return error;
|
|
249
|
-
}
|
|
250
|
-
if (
|
|
251
|
-
error &&
|
|
252
|
-
typeof error === "object" &&
|
|
253
|
-
TAP_ERROR_MARKER in error &&
|
|
254
|
-
error[TAP_ERROR_MARKER] === "TapKitMessageError"
|
|
255
|
-
) {
|
|
256
|
-
const err = new TapKitMessageError(error.message, {
|
|
257
|
-
code: error.code,
|
|
258
|
-
});
|
|
259
|
-
err.stack = error.stack;
|
|
260
|
-
return err;
|
|
261
|
-
}
|
|
262
|
-
return null;
|
|
263
|
-
}
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
/**
|
|
267
|
-
* Error thrown when configuration is invalid
|
|
268
|
-
*/
|
|
269
|
-
export class TapKitConfigurationError extends TapKitError {
|
|
270
|
-
constructor(message: string, options?: TapErrorOptions) {
|
|
271
|
-
super(message, options);
|
|
272
|
-
this.name = "TapKitConfigurationError";
|
|
273
|
-
this.code = options?.code ?? "ERR_CONFIGURATION";
|
|
274
|
-
}
|
|
275
|
-
|
|
276
|
-
static override fromPossibleFrameSafeError(
|
|
277
|
-
error: any
|
|
278
|
-
): TapKitConfigurationError | null {
|
|
279
|
-
if (error instanceof TapKitConfigurationError) {
|
|
280
|
-
return error;
|
|
281
|
-
}
|
|
282
|
-
if (
|
|
283
|
-
error &&
|
|
284
|
-
typeof error === "object" &&
|
|
285
|
-
TAP_ERROR_MARKER in error &&
|
|
286
|
-
error[TAP_ERROR_MARKER] === "TapKitConfigurationError"
|
|
287
|
-
) {
|
|
288
|
-
const err = new TapKitConfigurationError(error.message, {
|
|
289
|
-
code: error.code,
|
|
290
|
-
});
|
|
291
|
-
err.stack = error.stack;
|
|
292
|
-
return err;
|
|
293
|
-
}
|
|
294
|
-
return null;
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
/**
|
|
299
|
-
* Error thrown when loader fails to fetch or load resources
|
|
300
|
-
*/
|
|
301
|
-
export class TapKitLoaderError extends TapKitError {
|
|
302
|
-
constructor(message: string, options?: TapErrorOptions) {
|
|
303
|
-
super(message, options);
|
|
304
|
-
this.name = "TapKitLoaderError";
|
|
305
|
-
this.code = options?.code ?? "ERR_LOADER";
|
|
306
|
-
}
|
|
307
|
-
|
|
308
|
-
static override fromPossibleFrameSafeError(
|
|
309
|
-
error: any
|
|
310
|
-
): TapKitLoaderError | null {
|
|
311
|
-
if (error instanceof TapKitLoaderError) {
|
|
312
|
-
return error;
|
|
313
|
-
}
|
|
314
|
-
if (
|
|
315
|
-
error &&
|
|
316
|
-
typeof error === "object" &&
|
|
317
|
-
TAP_ERROR_MARKER in error &&
|
|
318
|
-
error[TAP_ERROR_MARKER] === "TapKitLoaderError"
|
|
319
|
-
) {
|
|
320
|
-
const err = new TapKitLoaderError(error.message, {
|
|
321
|
-
code: error.code,
|
|
322
|
-
});
|
|
323
|
-
err.stack = error.stack;
|
|
324
|
-
return err;
|
|
325
|
-
}
|
|
326
|
-
return null;
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
/**
|
|
331
|
-
* Error thrown when iframe operations fail
|
|
332
|
-
*/
|
|
333
|
-
export class TapKitIframeError extends TapKitError {
|
|
334
|
-
constructor(message: string, options?: TapErrorOptions) {
|
|
335
|
-
super(message, options);
|
|
336
|
-
this.name = "TapKitIframeError";
|
|
337
|
-
this.code = options?.code ?? "ERR_IFRAME";
|
|
338
|
-
}
|
|
24
|
+
// Error types and classes
|
|
25
|
+
export type { TapErrorOptions } from "./src/errors.js";
|
|
339
26
|
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
error[TAP_ERROR_MARKER] === "TapKitIframeError"
|
|
351
|
-
) {
|
|
352
|
-
const err = new TapKitIframeError(error.message, {
|
|
353
|
-
code: error.code,
|
|
354
|
-
});
|
|
355
|
-
err.stack = error.stack;
|
|
356
|
-
return err;
|
|
357
|
-
}
|
|
358
|
-
return null;
|
|
359
|
-
}
|
|
360
|
-
}
|
|
27
|
+
export {
|
|
28
|
+
TAP_ERROR_MARKER,
|
|
29
|
+
TapKitError,
|
|
30
|
+
TapKitInitializationError,
|
|
31
|
+
TapKitMessageError,
|
|
32
|
+
TapKitConfigurationError,
|
|
33
|
+
TapKitLoaderError,
|
|
34
|
+
TapKitIframeError,
|
|
35
|
+
InitializationError,
|
|
36
|
+
} from "./src/errors.js";
|
|
361
37
|
|
|
362
|
-
//
|
|
363
|
-
|
|
38
|
+
// Global type definitions (Window, requestIdleCallback)
|
|
39
|
+
import "./src/global.d.js";
|