webs-sdk 0.19.62 → 0.19.65
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/AGENTS.md +44 -0
- package/CLAUDE.md +80 -0
- package/README.md +63 -1
- package/dist/components/SpinningWheel/index.d.ts +1 -1
- package/dist/components/SpinningWheel/index.d.ts.map +1 -1
- package/dist/components/SpinningWheel/index.js +2 -1
- package/dist/components/SpinningWheel/index.js.map +1 -1
- package/dist/components/ui/ConfiguredMediaPlayer.d.ts +49 -0
- package/dist/components/ui/ConfiguredMediaPlayer.d.ts.map +1 -0
- package/dist/components/ui/ConfiguredMediaPlayer.js +111 -0
- package/dist/components/ui/ConfiguredMediaPlayer.js.map +1 -0
- package/dist/components/ui/badge.d.ts +1 -0
- package/dist/components/ui/badge.d.ts.map +1 -1
- package/dist/components/ui/badge.js +1 -1
- package/dist/components/ui/badge.js.map +1 -1
- package/dist/components/ui/compose-refs.d.ts +6 -0
- package/dist/components/ui/compose-refs.d.ts.map +1 -0
- package/dist/components/ui/compose-refs.js +57 -0
- package/dist/components/ui/compose-refs.js.map +1 -0
- package/dist/components/ui/dropdown-menu.d.ts +3 -1
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
- package/dist/components/ui/dropdown-menu.js +2 -2
- package/dist/components/ui/dropdown-menu.js.map +1 -1
- package/dist/components/ui/index.d.ts +2 -0
- package/dist/components/ui/index.d.ts.map +1 -1
- package/dist/components/ui/index.js +2 -0
- package/dist/components/ui/index.js.map +1 -1
- package/dist/components/ui/media-player.d.ts +127 -0
- package/dist/components/ui/media-player.d.ts.map +1 -0
- package/dist/components/ui/media-player.js +1633 -0
- package/dist/components/ui/media-player.js.map +1 -0
- package/dist/components/ui/tooltip.d.ts +3 -1
- package/dist/components/ui/tooltip.d.ts.map +1 -1
- package/dist/components/ui/tooltip.js +2 -2
- package/dist/components/ui/tooltip.js.map +1 -1
- package/dist/components/ui/use-lazy-ref.d.ts +4 -0
- package/dist/components/ui/use-lazy-ref.d.ts.map +1 -0
- package/dist/components/ui/use-lazy-ref.js +45 -0
- package/dist/components/ui/use-lazy-ref.js.map +1 -0
- package/dist/config.d.ts +3 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -0
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -3
- package/dist/index.js.map +1 -1
- package/dist/libraries/auth.d.ts.map +1 -1
- package/dist/libraries/auth.js +2 -2
- package/dist/libraries/auth.js.map +1 -1
- package/dist/libraries/clarity.d.ts +23 -0
- package/dist/libraries/clarity.d.ts.map +1 -0
- package/dist/libraries/clarity.js +110 -0
- package/dist/libraries/clarity.js.map +1 -0
- package/dist/libraries/index.d.ts +1 -0
- package/dist/libraries/index.d.ts.map +1 -1
- package/dist/libraries/index.js +3 -1
- package/dist/libraries/index.js.map +1 -1
- package/dist/libraries/networking.d.ts +4 -0
- package/dist/libraries/networking.d.ts.map +1 -1
- package/dist/libraries/networking.js +42 -6
- package/dist/libraries/networking.js.map +1 -1
- package/dist/libraries/session.d.ts.map +1 -1
- package/dist/libraries/session.js +2 -0
- package/dist/libraries/session.js.map +1 -1
- package/dist/network.d.ts +12 -0
- package/dist/network.d.ts.map +1 -0
- package/dist/network.js +15 -0
- package/dist/network.js.map +1 -0
- package/dist/server.d.ts +54 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +74 -0
- package/dist/server.js.map +1 -0
- package/dist/types/media-chrome-store-types.d.ts +107 -0
- package/dist/types/media-chrome-store-types.d.ts.map +1 -0
- package/dist/types/media-chrome-store-types.js +3 -0
- package/dist/types/media-chrome-store-types.js.map +1 -0
- package/dist/utils/QRCode.d.ts +1 -0
- package/dist/utils/QRCode.d.ts.map +1 -0
- package/dist/utils/QRCode.js +2 -0
- package/dist/utils/QRCode.js.map +1 -0
- package/dist/utils/imageValidation.d.ts +6 -0
- package/dist/utils/imageValidation.d.ts.map +1 -0
- package/dist/utils/imageValidation.js +64 -0
- package/dist/utils/imageValidation.js.map +1 -0
- package/docs/CONFIGURED_MEDIA_PLAYER.md +40 -0
- package/docs/CORP_AUTH_USAGE.md +687 -0
- package/docs/EXAMPLES_WALLPAPERSNAME_IMPLEMENTATION.md +1445 -0
- package/docs/EXAMPLE_ENDPOINTS_COMUNICATION.md +55 -0
- package/docs/EXTERNAL_SDK_GUIDE.md +1340 -0
- package/docs/FOR_YOU_360_FACESWAP_FIX.md +400 -0
- package/docs/FOR_YOU_IMPLEMENTATION_GUIDE.md +1413 -0
- package/docs/FOR_YOU_QUIZ_ARCHITECTURE.md +753 -0
- package/docs/FOR_YOU_SDK_WALLPAPERSNAME_BUG.md +106 -0
- package/docs/FOR_YOU_WALLPAPERSNAME_ENHANCEMENT_PLAN.md +210 -0
- package/docs/LEGAL_USAGE.md +190 -0
- package/docs/STREAK_IMPLEMENTATION_GUIDE.md +430 -0
- package/package.json +29 -6
- package/scripts/install-agent-skill.cjs +34 -0
- package/skills/webs-sdk-package/SKILL.md +11 -0
- package/skills/webs-sdk-package/references/components.md +30 -0
- package/skills/webs-sdk-package/references/integration.md +32 -0
- package/dist/libraries/globals.d.ts +0 -17
- package/dist/libraries/globals.d.ts.map +0 -1
- package/dist/libraries/globals.js +0 -38
- package/dist/libraries/globals.js.map +0 -1
package/dist/server.d.ts
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import NetworkingClass from './libraries/networking';
|
|
2
|
+
import AuthManagerClass from './libraries/auth';
|
|
3
|
+
import I18nManagerClass from './libraries/i18n';
|
|
4
|
+
import StorageClass from './libraries/storage';
|
|
5
|
+
import UtilsClass from './libraries/utils';
|
|
6
|
+
import AndromedaClass from './libraries/andromeda';
|
|
7
|
+
import ContentManagerClass from './libraries/content';
|
|
8
|
+
import SessionClass from './libraries/session';
|
|
9
|
+
import MixPanelClass from './libraries/mixpanel';
|
|
10
|
+
import AudioClass from './libraries/audio';
|
|
11
|
+
import CorporateAuthManagerClass from './libraries/corp_auth';
|
|
12
|
+
import LegalManagerClass from './libraries/legal';
|
|
13
|
+
import CalypsoManager from './libraries/calypso';
|
|
14
|
+
import UserManagerClass from './libraries/user';
|
|
15
|
+
export { handleCDNRequest } from './libraries/cdn';
|
|
16
|
+
export type { CDNOptions } from './libraries/cdn';
|
|
17
|
+
export { initGoogleAnalytics, updateGAConsent, trackGAEvent, trackGAPageView, isGALoaded, } from './libraries/googleAnalytics';
|
|
18
|
+
export type { GAOptions } from './libraries/googleAnalytics';
|
|
19
|
+
export { trackRequest, trackResponse, getLogs, clearLogs, getStats, isNetworkTrackerEnabled, } from './libraries/networkTracker';
|
|
20
|
+
export type { NetworkEntry } from './libraries/networkTracker';
|
|
21
|
+
export { validateVideoUrl, validateVideoBatch, clearValidationCache, getCacheStats, cleanExpiredCache, validationCache, } from './utils/videoValidation';
|
|
22
|
+
export type { VideoValidationState, VideoValidationConfig, } from './utils/videoValidation';
|
|
23
|
+
type PreInstances = {
|
|
24
|
+
AuthManager: AuthManagerClass;
|
|
25
|
+
User: UserManagerClass;
|
|
26
|
+
Andromeda: AndromedaClass;
|
|
27
|
+
Calypso: CalypsoManager;
|
|
28
|
+
} | null;
|
|
29
|
+
declare const WebsSDK: {
|
|
30
|
+
Networking: NetworkingClass;
|
|
31
|
+
AuthManager: AuthManagerClass;
|
|
32
|
+
I18nManager: I18nManagerClass;
|
|
33
|
+
Storage: StorageClass;
|
|
34
|
+
Utils: UtilsClass;
|
|
35
|
+
Andromeda: AndromedaClass;
|
|
36
|
+
ContentManager: ContentManagerClass;
|
|
37
|
+
Session: SessionClass;
|
|
38
|
+
MixPanel: MixPanelClass;
|
|
39
|
+
Audio: AudioClass;
|
|
40
|
+
CorporateAuthManager: CorporateAuthManagerClass;
|
|
41
|
+
Legal: LegalManagerClass;
|
|
42
|
+
Calypso: CalypsoManager;
|
|
43
|
+
User: UserManagerClass;
|
|
44
|
+
Config: import("./config").Config;
|
|
45
|
+
_preInstances: PreInstances;
|
|
46
|
+
readonly pre: {
|
|
47
|
+
AuthManager: AuthManagerClass;
|
|
48
|
+
User: UserManagerClass;
|
|
49
|
+
Andromeda: AndromedaClass;
|
|
50
|
+
Calypso: CalypsoManager;
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
export default WebsSDK;
|
|
54
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAUA,OAAO,eAAe,MAAM,wBAAwB,CAAC;AACrD,OAAO,gBAAgB,MAAM,kBAAkB,CAAC;AAChD,OAAO,gBAAgB,MAAM,kBAAkB,CAAC;AAChD,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAC/C,OAAO,UAAU,MAAM,mBAAmB,CAAC;AAC3C,OAAO,cAAc,MAAM,uBAAuB,CAAC;AACnD,OAAO,mBAAmB,MAAM,qBAAqB,CAAC;AACtD,OAAO,YAAY,MAAM,qBAAqB,CAAC;AAC/C,OAAO,aAAa,MAAM,sBAAsB,CAAC;AACjD,OAAO,UAAU,MAAM,mBAAmB,CAAC;AAC3C,OAAO,yBAAyB,MAAM,uBAAuB,CAAC;AAC9D,OAAO,iBAAiB,MAAM,mBAAmB,CAAC;AAClD,OAAO,cAAc,MAAM,qBAAqB,CAAC;AACjD,OAAO,gBAAgB,MAAM,kBAAkB,CAAC;AAIhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAGlD,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,YAAY,EACZ,eAAe,EACf,UAAU,GACX,MAAM,6BAA6B,CAAC;AACrC,YAAY,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAG7D,OAAO,EACL,YAAY,EACZ,aAAa,EACb,OAAO,EACP,SAAS,EACT,QAAQ,EACR,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAG/D,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EACjB,eAAe,GAChB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,yBAAyB,CAAC;AAGjC,KAAK,YAAY,GAAG;IAChB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,IAAI,EAAE,gBAAgB,CAAC;IACvB,SAAS,EAAE,cAAc,CAAC;IAC1B,OAAO,EAAE,cAAc,CAAC;CAC3B,GAAG,IAAI,CAAC;AAET,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;mBAkBc,YAAY;;qBAxBtB,gBAAgB;cACvB,gBAAgB;mBACX,cAAc;iBAChB,cAAc;;CAkC1B,CAAC;AAEF,eAAe,OAAO,CAAC"}
|
package/dist/server.js
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.validationCache = exports.cleanExpiredCache = exports.getCacheStats = exports.clearValidationCache = exports.validateVideoBatch = exports.validateVideoUrl = exports.isNetworkTrackerEnabled = exports.getStats = exports.clearLogs = exports.getLogs = exports.trackResponse = exports.trackRequest = exports.isGALoaded = exports.trackGAPageView = exports.trackGAEvent = exports.updateGAConsent = exports.initGoogleAnalytics = exports.handleCDNRequest = void 0;
|
|
7
|
+
const networking_1 = __importDefault(require("./libraries/networking"));
|
|
8
|
+
const auth_1 = __importDefault(require("./libraries/auth"));
|
|
9
|
+
const i18n_1 = __importDefault(require("./libraries/i18n"));
|
|
10
|
+
const storage_1 = __importDefault(require("./libraries/storage"));
|
|
11
|
+
const utils_1 = __importDefault(require("./libraries/utils"));
|
|
12
|
+
const andromeda_1 = __importDefault(require("./libraries/andromeda"));
|
|
13
|
+
const content_1 = __importDefault(require("./libraries/content"));
|
|
14
|
+
const session_1 = __importDefault(require("./libraries/session"));
|
|
15
|
+
const mixpanel_1 = __importDefault(require("./libraries/mixpanel"));
|
|
16
|
+
const audio_1 = __importDefault(require("./libraries/audio"));
|
|
17
|
+
const corp_auth_1 = __importDefault(require("./libraries/corp_auth"));
|
|
18
|
+
const legal_1 = __importDefault(require("./libraries/legal"));
|
|
19
|
+
const calypso_1 = __importDefault(require("./libraries/calypso"));
|
|
20
|
+
const user_1 = __importDefault(require("./libraries/user"));
|
|
21
|
+
const config_1 = __importDefault(require("./config"));
|
|
22
|
+
var cdn_1 = require("./libraries/cdn");
|
|
23
|
+
Object.defineProperty(exports, "handleCDNRequest", { enumerable: true, get: function () { return cdn_1.handleCDNRequest; } });
|
|
24
|
+
var googleAnalytics_1 = require("./libraries/googleAnalytics");
|
|
25
|
+
Object.defineProperty(exports, "initGoogleAnalytics", { enumerable: true, get: function () { return googleAnalytics_1.initGoogleAnalytics; } });
|
|
26
|
+
Object.defineProperty(exports, "updateGAConsent", { enumerable: true, get: function () { return googleAnalytics_1.updateGAConsent; } });
|
|
27
|
+
Object.defineProperty(exports, "trackGAEvent", { enumerable: true, get: function () { return googleAnalytics_1.trackGAEvent; } });
|
|
28
|
+
Object.defineProperty(exports, "trackGAPageView", { enumerable: true, get: function () { return googleAnalytics_1.trackGAPageView; } });
|
|
29
|
+
Object.defineProperty(exports, "isGALoaded", { enumerable: true, get: function () { return googleAnalytics_1.isGALoaded; } });
|
|
30
|
+
var networkTracker_1 = require("./libraries/networkTracker");
|
|
31
|
+
Object.defineProperty(exports, "trackRequest", { enumerable: true, get: function () { return networkTracker_1.trackRequest; } });
|
|
32
|
+
Object.defineProperty(exports, "trackResponse", { enumerable: true, get: function () { return networkTracker_1.trackResponse; } });
|
|
33
|
+
Object.defineProperty(exports, "getLogs", { enumerable: true, get: function () { return networkTracker_1.getLogs; } });
|
|
34
|
+
Object.defineProperty(exports, "clearLogs", { enumerable: true, get: function () { return networkTracker_1.clearLogs; } });
|
|
35
|
+
Object.defineProperty(exports, "getStats", { enumerable: true, get: function () { return networkTracker_1.getStats; } });
|
|
36
|
+
Object.defineProperty(exports, "isNetworkTrackerEnabled", { enumerable: true, get: function () { return networkTracker_1.isNetworkTrackerEnabled; } });
|
|
37
|
+
var videoValidation_1 = require("./utils/videoValidation");
|
|
38
|
+
Object.defineProperty(exports, "validateVideoUrl", { enumerable: true, get: function () { return videoValidation_1.validateVideoUrl; } });
|
|
39
|
+
Object.defineProperty(exports, "validateVideoBatch", { enumerable: true, get: function () { return videoValidation_1.validateVideoBatch; } });
|
|
40
|
+
Object.defineProperty(exports, "clearValidationCache", { enumerable: true, get: function () { return videoValidation_1.clearValidationCache; } });
|
|
41
|
+
Object.defineProperty(exports, "getCacheStats", { enumerable: true, get: function () { return videoValidation_1.getCacheStats; } });
|
|
42
|
+
Object.defineProperty(exports, "cleanExpiredCache", { enumerable: true, get: function () { return videoValidation_1.cleanExpiredCache; } });
|
|
43
|
+
Object.defineProperty(exports, "validationCache", { enumerable: true, get: function () { return videoValidation_1.validationCache; } });
|
|
44
|
+
const WebsSDK = {
|
|
45
|
+
Networking: new networking_1.default(),
|
|
46
|
+
AuthManager: new auth_1.default('production'),
|
|
47
|
+
I18nManager: new i18n_1.default(),
|
|
48
|
+
Storage: new storage_1.default(),
|
|
49
|
+
Utils: new utils_1.default(),
|
|
50
|
+
Andromeda: new andromeda_1.default('production'),
|
|
51
|
+
ContentManager: new content_1.default(),
|
|
52
|
+
Session: new session_1.default(),
|
|
53
|
+
MixPanel: new mixpanel_1.default(),
|
|
54
|
+
Audio: new audio_1.default(),
|
|
55
|
+
CorporateAuthManager: new corp_auth_1.default(),
|
|
56
|
+
Legal: new legal_1.default(),
|
|
57
|
+
Calypso: new calypso_1.default('production'),
|
|
58
|
+
User: new user_1.default('production'),
|
|
59
|
+
Config: config_1.default,
|
|
60
|
+
_preInstances: null,
|
|
61
|
+
get pre() {
|
|
62
|
+
if (!this._preInstances) {
|
|
63
|
+
this._preInstances = {
|
|
64
|
+
AuthManager: new auth_1.default('preproduction'),
|
|
65
|
+
User: new user_1.default('preproduction'),
|
|
66
|
+
Andromeda: new andromeda_1.default('preproduction'),
|
|
67
|
+
Calypso: new calypso_1.default('preproduction')
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
return this._preInstances;
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
exports.default = WebsSDK;
|
|
74
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":";;;;;;AAUA,wEAAqD;AACrD,4DAAgD;AAChD,4DAAgD;AAChD,kEAA+C;AAC/C,8DAA2C;AAC3C,sEAAmD;AACnD,kEAAsD;AACtD,kEAA+C;AAC/C,oEAAiD;AACjD,8DAA2C;AAC3C,sEAA8D;AAC9D,8DAAkD;AAClD,kEAAiD;AACjD,4DAAgD;AAChD,sDAA8B;AAG9B,uCAAmD;AAA1C,uGAAA,gBAAgB,OAAA;AAIzB,+DAMqC;AALnC,sHAAA,mBAAmB,OAAA;AACnB,kHAAA,eAAe,OAAA;AACf,+GAAA,YAAY,OAAA;AACZ,kHAAA,eAAe,OAAA;AACf,6GAAA,UAAU,OAAA;AAKZ,6DAOoC;AANlC,8GAAA,YAAY,OAAA;AACZ,+GAAA,aAAa,OAAA;AACb,yGAAA,OAAO,OAAA;AACP,2GAAA,SAAS,OAAA;AACT,0GAAA,QAAQ,OAAA;AACR,yHAAA,uBAAuB,OAAA;AAKzB,2DAOiC;AAN/B,mHAAA,gBAAgB,OAAA;AAChB,qHAAA,kBAAkB,OAAA;AAClB,uHAAA,oBAAoB,OAAA;AACpB,gHAAA,aAAa,OAAA;AACb,oHAAA,iBAAiB,OAAA;AACjB,kHAAA,eAAe,OAAA;AAejB,MAAM,OAAO,GAAG;IACZ,UAAU,EAAE,IAAI,oBAAe,EAAE;IACjC,WAAW,EAAE,IAAI,cAAgB,CAAC,YAAY,CAAC;IAC/C,WAAW,EAAE,IAAI,cAAgB,EAAE;IACnC,OAAO,EAAE,IAAI,iBAAY,EAAE;IAC3B,KAAK,EAAE,IAAI,eAAU,EAAE;IACvB,SAAS,EAAE,IAAI,mBAAc,CAAC,YAAY,CAAC;IAC3C,cAAc,EAAE,IAAI,iBAAmB,EAAE;IACzC,OAAO,EAAE,IAAI,iBAAY,EAAE;IAC3B,QAAQ,EAAE,IAAI,kBAAa,EAAE;IAC7B,KAAK,EAAE,IAAI,eAAU,EAAE;IACvB,oBAAoB,EAAE,IAAI,mBAAyB,EAAE;IACrD,KAAK,EAAE,IAAI,eAAiB,EAAE;IAC9B,OAAO,EAAE,IAAI,iBAAc,CAAC,YAAY,CAAC;IACzC,IAAI,EAAE,IAAI,cAAgB,CAAC,YAAY,CAAC;IACxC,MAAM,EAAE,gBAAM;IAGd,aAAa,EAAE,IAAoB;IAEnC,IAAI,GAAG;QACH,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACtB,IAAI,CAAC,aAAa,GAAG;gBACjB,WAAW,EAAE,IAAI,cAAgB,CAAC,eAAe,CAAC;gBAClD,IAAI,EAAE,IAAI,cAAgB,CAAC,eAAe,CAAC;gBAC3C,SAAS,EAAE,IAAI,mBAAc,CAAC,eAAe,CAAC;gBAC9C,OAAO,EAAE,IAAI,iBAAc,CAAC,eAAe,CAAC;aAC/C,CAAC;QACN,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC9B,CAAC;CACJ,CAAC;AAEF,kBAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import type * as React from "react";
|
|
2
|
+
export interface MediaState {
|
|
3
|
+
mediaPaused?: boolean;
|
|
4
|
+
mediaVolume?: number;
|
|
5
|
+
mediaMuted?: boolean;
|
|
6
|
+
mediaVolumeLevel?: "off" | "low" | "medium" | "high";
|
|
7
|
+
mediaCurrentTime?: number;
|
|
8
|
+
mediaSeekable?: [number, number] | null;
|
|
9
|
+
mediaBuffered?: [number, number][];
|
|
10
|
+
mediaLoading?: boolean;
|
|
11
|
+
mediaHasPlayed?: boolean;
|
|
12
|
+
mediaEnded?: boolean;
|
|
13
|
+
mediaIsFullscreen?: boolean;
|
|
14
|
+
mediaPlaybackRate?: number;
|
|
15
|
+
mediaError?: MediaError | null;
|
|
16
|
+
mediaSubtitlesList?: Array<{
|
|
17
|
+
kind: string;
|
|
18
|
+
label: string;
|
|
19
|
+
language: string;
|
|
20
|
+
}>;
|
|
21
|
+
mediaSubtitlesShowing?: Array<{
|
|
22
|
+
kind: string;
|
|
23
|
+
label: string;
|
|
24
|
+
language: string;
|
|
25
|
+
}>;
|
|
26
|
+
mediaVideoRenditionList?: Array<{
|
|
27
|
+
id?: string;
|
|
28
|
+
width?: number;
|
|
29
|
+
height?: number;
|
|
30
|
+
bitrate?: number;
|
|
31
|
+
}>;
|
|
32
|
+
mediaVideoRenditionSelected?: string;
|
|
33
|
+
mediaRenditionList?: Array<{
|
|
34
|
+
id?: string;
|
|
35
|
+
width?: number;
|
|
36
|
+
height?: number;
|
|
37
|
+
bitrate?: number;
|
|
38
|
+
}>;
|
|
39
|
+
mediaRenditionSelected?: string;
|
|
40
|
+
mediaChaptersCues?: Array<{
|
|
41
|
+
startTime: number;
|
|
42
|
+
endTime: number;
|
|
43
|
+
text: string;
|
|
44
|
+
}>;
|
|
45
|
+
mediaPreviewTime?: number;
|
|
46
|
+
mediaPreviewImage?: string;
|
|
47
|
+
mediaPreviewCoords?: [string, string, string, string] | null;
|
|
48
|
+
mediaDuration?: number;
|
|
49
|
+
mediaIsPip?: boolean;
|
|
50
|
+
mediaIsAirplaying?: boolean;
|
|
51
|
+
mediaDownloadUrl?: string;
|
|
52
|
+
mediaLoopOn?: boolean;
|
|
53
|
+
mediaAudioTrackList?: Array<{
|
|
54
|
+
id: string;
|
|
55
|
+
kind: string;
|
|
56
|
+
label: string;
|
|
57
|
+
language: string;
|
|
58
|
+
enabled: boolean;
|
|
59
|
+
}>;
|
|
60
|
+
mediaAudioTrackEnabled?: string;
|
|
61
|
+
mediaStreamType?: string;
|
|
62
|
+
mediaTimeIsLive?: boolean;
|
|
63
|
+
}
|
|
64
|
+
export declare const MediaActionTypes: {
|
|
65
|
+
readonly MEDIA_ELEMENT_CHANGE_REQUEST: "mediaelementchangerequest";
|
|
66
|
+
readonly FULLSCREEN_ELEMENT_CHANGE_REQUEST: "fullscreenelementchangerequest";
|
|
67
|
+
readonly MEDIA_PLAY_REQUEST: "mediaplayrequest";
|
|
68
|
+
readonly MEDIA_PAUSE_REQUEST: "mediapauserequest";
|
|
69
|
+
readonly MEDIA_MUTE_REQUEST: "mediamuterequest";
|
|
70
|
+
readonly MEDIA_UNMUTE_REQUEST: "mediaunmuterequest";
|
|
71
|
+
readonly MEDIA_LOOP_REQUEST: "medialooprequest";
|
|
72
|
+
readonly MEDIA_VOLUME_REQUEST: "mediavolumerequest";
|
|
73
|
+
readonly MEDIA_SEEK_REQUEST: "mediaseekrequest";
|
|
74
|
+
readonly MEDIA_AIRPLAY_REQUEST: "mediaairplayrequest";
|
|
75
|
+
readonly MEDIA_ENTER_FULLSCREEN_REQUEST: "mediaenterfullscreenrequest";
|
|
76
|
+
readonly MEDIA_EXIT_FULLSCREEN_REQUEST: "mediaexitfullscreenrequest";
|
|
77
|
+
readonly MEDIA_PREVIEW_REQUEST: "mediapreviewrequest";
|
|
78
|
+
readonly MEDIA_ENTER_PIP_REQUEST: "mediaenterpiprequest";
|
|
79
|
+
readonly MEDIA_EXIT_PIP_REQUEST: "mediaexitpiprequest";
|
|
80
|
+
readonly MEDIA_ENTER_CAST_REQUEST: "mediaentercastrequest";
|
|
81
|
+
readonly MEDIA_EXIT_CAST_REQUEST: "mediaexitcastrequest";
|
|
82
|
+
readonly MEDIA_SHOW_SUBTITLES_REQUEST: "mediashowsubtitlesrequest";
|
|
83
|
+
readonly MEDIA_DISABLE_SUBTITLES_REQUEST: "mediadisablesubtitlesrequest";
|
|
84
|
+
readonly MEDIA_TOGGLE_SUBTITLES_REQUEST: "mediatogglesubtitlesrequest";
|
|
85
|
+
readonly MEDIA_PLAYBACK_RATE_REQUEST: "mediaplaybackraterequest";
|
|
86
|
+
readonly MEDIA_RENDITION_REQUEST: "mediarenditionrequest";
|
|
87
|
+
readonly MEDIA_AUDIO_TRACK_REQUEST: "mediaaudiotrackrequest";
|
|
88
|
+
readonly MEDIA_SEEK_TO_LIVE_REQUEST: "mediaseektoliverequest";
|
|
89
|
+
};
|
|
90
|
+
export declare const MediaProvider: (props: {
|
|
91
|
+
children: React.ReactNode;
|
|
92
|
+
mediaStore?: unknown;
|
|
93
|
+
}) => React.JSX.Element;
|
|
94
|
+
export declare const timeUtils: {
|
|
95
|
+
formatTime: (time: number, duration: number) => string;
|
|
96
|
+
[key: string]: unknown;
|
|
97
|
+
};
|
|
98
|
+
export type DispatchFn = (action: {
|
|
99
|
+
type: string;
|
|
100
|
+
detail?: unknown;
|
|
101
|
+
}) => void;
|
|
102
|
+
export declare const useMediaDispatch: () => DispatchFn;
|
|
103
|
+
export declare const useMediaRef: () => (mediaEl: HTMLVideoElement | HTMLAudioElement | null | undefined) => void;
|
|
104
|
+
export declare const useMediaFullscreenRef: () => (el: HTMLElement | null | undefined) => void;
|
|
105
|
+
export declare const useMediaSelector: <S = unknown>(selector: (state: Partial<MediaState>) => S, equalityFn?: (a: unknown, b: unknown) => boolean) => S;
|
|
106
|
+
export declare const useMediaStore: () => unknown;
|
|
107
|
+
//# sourceMappingURL=media-chrome-store-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-chrome-store-types.d.ts","sourceRoot":"","sources":["../../src/types/media-chrome-store-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-chrome-store-types.js","sourceRoot":"","sources":["../../src/types/media-chrome-store-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=QRCode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QRCode.d.ts","sourceRoot":"","sources":["../../src/utils/QRCode.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QRCode.js","sourceRoot":"","sources":["../../src/utils/QRCode.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imageValidation.d.ts","sourceRoot":"","sources":["../../src/utils/imageValidation.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,qBAAqB;IAEpC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAoBD,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,IAAI,EACV,MAAM,GAAE,qBAA0B,GACjC,OAAO,CAAC,OAAO,CAAC,CAyDlB"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isDecodableImageFile = isDecodableImageFile;
|
|
4
|
+
const DEFAULT_CONFIG = {
|
|
5
|
+
decodeTimeout: 10000,
|
|
6
|
+
verbose: false,
|
|
7
|
+
};
|
|
8
|
+
async function isDecodableImageFile(file, config = {}) {
|
|
9
|
+
var _a;
|
|
10
|
+
const cfg = Object.assign(Object.assign({}, DEFAULT_CONFIG), config);
|
|
11
|
+
if (!file || !file.type.startsWith('image/')) {
|
|
12
|
+
if (cfg.verbose)
|
|
13
|
+
console.warn('[Image Validation] Rejected: not an image MIME type', file === null || file === void 0 ? void 0 : file.type);
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
if (typeof createImageBitmap === 'function') {
|
|
17
|
+
try {
|
|
18
|
+
const bitmap = await createImageBitmap(file);
|
|
19
|
+
(_a = bitmap.close) === null || _a === void 0 ? void 0 : _a.call(bitmap);
|
|
20
|
+
if (cfg.verbose)
|
|
21
|
+
console.log('[Image Validation] ✅ Decoded via createImageBitmap');
|
|
22
|
+
return true;
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
if (cfg.verbose)
|
|
26
|
+
console.warn('[Image Validation] ❌ createImageBitmap failed to decode', error);
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
if (typeof document === 'undefined' || typeof URL === 'undefined') {
|
|
31
|
+
if (cfg.verbose)
|
|
32
|
+
console.warn('[Image Validation] No browser APIs available to decode image');
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
35
|
+
return new Promise((resolve) => {
|
|
36
|
+
const url = URL.createObjectURL(file);
|
|
37
|
+
const img = new Image();
|
|
38
|
+
const cleanup = () => {
|
|
39
|
+
clearTimeout(timeoutId);
|
|
40
|
+
URL.revokeObjectURL(url);
|
|
41
|
+
};
|
|
42
|
+
const timeoutId = setTimeout(() => {
|
|
43
|
+
cleanup();
|
|
44
|
+
img.src = '';
|
|
45
|
+
if (cfg.verbose)
|
|
46
|
+
console.warn('[Image Validation] ❌ Timed out decoding image');
|
|
47
|
+
resolve(false);
|
|
48
|
+
}, cfg.decodeTimeout);
|
|
49
|
+
img.onload = () => {
|
|
50
|
+
cleanup();
|
|
51
|
+
if (cfg.verbose)
|
|
52
|
+
console.log('[Image Validation] ✅ Decoded via <img> element');
|
|
53
|
+
resolve(true);
|
|
54
|
+
};
|
|
55
|
+
img.onerror = () => {
|
|
56
|
+
cleanup();
|
|
57
|
+
if (cfg.verbose)
|
|
58
|
+
console.warn('[Image Validation] ❌ <img> element failed to decode');
|
|
59
|
+
resolve(false);
|
|
60
|
+
};
|
|
61
|
+
img.src = url;
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=imageValidation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imageValidation.js","sourceRoot":"","sources":["../../src/utils/imageValidation.ts"],"names":[],"mappings":";;AAwCA,oDA4DC;AA9ED,MAAM,cAAc,GAAoC;IACtD,aAAa,EAAE,KAAK;IACpB,OAAO,EAAE,KAAK;CACf,CAAC;AAeK,KAAK,UAAU,oBAAoB,CACxC,IAAU,EACV,SAAgC,EAAE;;IAElC,MAAM,GAAG,mCAAQ,cAAc,GAAK,MAAM,CAAE,CAAC;IAE7C,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7C,IAAI,GAAG,CAAC,OAAO;YAAE,OAAO,CAAC,IAAI,CAAC,qDAAqD,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,IAAI,CAAC,CAAC;QACjG,OAAO,KAAK,CAAC;IACf,CAAC;IAID,IAAI,OAAO,iBAAiB,KAAK,UAAU,EAAE,CAAC;QAC5C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;YAC7C,MAAA,MAAM,CAAC,KAAK,sDAAI,CAAC;YACjB,IAAI,GAAG,CAAC,OAAO;gBAAE,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;YACnF,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,GAAG,CAAC,OAAO;gBAAE,OAAO,CAAC,IAAI,CAAC,yDAAyD,EAAE,KAAK,CAAC,CAAC;YAChG,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAGD,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,OAAO,GAAG,KAAK,WAAW,EAAE,CAAC;QAClE,IAAI,GAAG,CAAC,OAAO;YAAE,OAAO,CAAC,IAAI,CAAC,8DAA8D,CAAC,CAAC;QAC9F,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;QACtC,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;QAExB,MAAM,OAAO,GAAG,GAAG,EAAE;YACnB,YAAY,CAAC,SAAS,CAAC,CAAC;YACxB,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC,CAAC;QAEF,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YAChC,OAAO,EAAE,CAAC;YACV,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC;YACb,IAAI,GAAG,CAAC,OAAO;gBAAE,OAAO,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;YAC/E,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC;QAEtB,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE;YAChB,OAAO,EAAE,CAAC;YACV,IAAI,GAAG,CAAC,OAAO;gBAAE,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;YAC/E,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC;QACF,GAAG,CAAC,OAAO,GAAG,GAAG,EAAE;YACjB,OAAO,EAAE,CAAC;YACV,IAAI,GAAG,CAAC,OAAO;gBAAE,OAAO,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;YACrF,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC;QAEF,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;IAChB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# ConfiguredMediaPlayer
|
|
2
|
+
|
|
3
|
+
`ConfiguredMediaPlayer` is the prop-driven layout for the new Radix-based Dice UI media player. The original `VideoPlayer` remains available. For custom layouts, use the composable `MediaPlayer*` exports from `webs-sdk/ui` instead.
|
|
4
|
+
|
|
5
|
+
```tsx
|
|
6
|
+
import { ConfiguredMediaPlayer } from 'webs-sdk/ui';
|
|
7
|
+
|
|
8
|
+
<ConfiguredMediaPlayer
|
|
9
|
+
src="https://example.com/movie.m3u8"
|
|
10
|
+
poster="/movie-poster.jpg"
|
|
11
|
+
label="Movie trailer"
|
|
12
|
+
autoPlay={false}
|
|
13
|
+
preload="metadata"
|
|
14
|
+
sources={[
|
|
15
|
+
{ lang: 'en', src: 'https://example.com/en.m3u8' },
|
|
16
|
+
{ lang: 'es', src: 'https://example.com/es.m3u8' },
|
|
17
|
+
]}
|
|
18
|
+
defaultLanguage="en"
|
|
19
|
+
onLanguageChange={(lang) => console.log(lang)}
|
|
20
|
+
tracks={[{ src: '/subtitles/en.vtt', srcLang: 'en', label: 'English', kind: 'subtitles' }]}
|
|
21
|
+
controls={{ seekButtons: true, pictureInPicture: true, captions: true, download: false }}
|
|
22
|
+
seekSeconds={10}
|
|
23
|
+
playbackSpeeds={[0.75, 1, 1.25, 1.5, 2]}
|
|
24
|
+
onEnded={() => console.log('Finished')}
|
|
25
|
+
/>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Props
|
|
29
|
+
|
|
30
|
+
- `src`: required media URL; `.m3u8` video uses native HLS where available, otherwise dynamically loads `hls.js`.
|
|
31
|
+
- `mediaType`: `"video"` (default) or `"audio"`.
|
|
32
|
+
- `poster`, `autoPlay`, `preload`, `muted`, `loop`, `playsInline`: media element attributes.
|
|
33
|
+
- `sources`, `defaultLanguage`, `onLanguageChange`: alternative URLs selected by language. The selector appears only for multiple sources.
|
|
34
|
+
- `tracks`: subtitle/caption track definitions (`src`, `srcLang`, `label`, optional `kind` and `default`).
|
|
35
|
+
- `controls`: optional per-control visibility flags. Defaults: play, seek, volume, time, settings, fullscreen, loading, error enabled; seek buttons, speed, captions, loop, picture-in-picture, download disabled. Set `settings: false, speed: true` to show the standalone speed picker.
|
|
36
|
+
- `seekSeconds`, `playbackSpeeds`: seek-button interval and available playback rates.
|
|
37
|
+
- `mediaProps`: additional attributes and event handlers for the underlying media element.
|
|
38
|
+
- Root props (`className`, `style`, `autoHide`, `disabled`, `onPlay`, `onPause`, `onEnded`, `onTimeUpdate`, `onVolumeChange`, `onMuted`, `onMediaError`, etc.) are passed to `MediaPlayer`.
|
|
39
|
+
|
|
40
|
+
Because the component uses Tailwind classes, consuming applications must include the installed SDK source in their Tailwind content scan. For Tailwind v4, add `@source "../../node_modules/webs-sdk/dist/components/ui";` in the application's CSS (adjust the path relative to that CSS file).
|