Skip to content

Commit b8a5f42

Browse files
Add AirgapAPI['getModules']
1 parent 477fac1 commit b8a5f42

File tree

2 files changed

+27
-1
lines changed

2 files changed

+27
-1
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"author": "Transcend Inc.",
33
"name": "@transcend-io/airgap.js-types",
44
"description": "TypeScript types for airgap.js interoperability with custom consent UIs",
5-
"version": "12.15.3",
5+
"version": "12.16.0",
66
"homepage": "https://github.com/transcend-io/airgap.js-types",
77
"repository": {
88
"type": "git",

src/core.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,30 @@ export type CookieWatcher = (event: IPendingCookieMutation) => void;
225225
/** Event types (for purpose resolution) */
226226
export type TrackingEventType = 'request' | 'cookie';
227227

228+
/**
229+
* Module type
230+
*/
231+
type ModuleKind = 'ui' | 'plugin' | 'policies';
232+
233+
/** JS module descriptor */
234+
interface ModuleDescriptor {
235+
/** Module URL */
236+
url: string;
237+
/** Module ID (defaults to URI if not provided) */
238+
id?: string;
239+
/** Module name */
240+
name?: string;
241+
/** Module kind (default: plugin) */
242+
kind?: ModuleKind;
243+
/** Module media type (default: application/ecmascript) */
244+
type?:
245+
| 'module' // ES module
246+
| 'application/ecmascript' // default for kind={plugin, ui}
247+
| 'application/vnd.transcend.governance-policies+json'; // default for kind=policies
248+
/** Should module be loaded synchronously? (default: false) */
249+
sync?: boolean;
250+
}
251+
228252
/** airgap.js API */
229253
export type AirgapAPI = Readonly<{
230254
/** Embedded request watchers */
@@ -356,6 +380,8 @@ export type AirgapAPI = Readonly<{
356380
export(options?: AirgapExportOptions): AirgapQueues;
357381
/** Get a list of legal regimes that are potentially applicable to the user */
358382
getRegimes(): Set<PrivacyRegime>;
383+
/** Get a list of active modules */
384+
getModules(): ModuleDescriptor[];
359385
/** Get a list of detected active user agent privacy signals */
360386
getPrivacySignals(): Set<UserPrivacySignal>;
361387
/** Toggle all airgap.js protections. Auth must be a pre-airgap.js or airgap.js script 'load' event. Returns success status */

0 commit comments

Comments
 (0)