@ketch-sdk/ketch-data-layer 1.2.0 → 1.2.1

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 CHANGED
@@ -1,4 +1,3 @@
1
- import { Identity } from '@ketch-sdk/ketch-types';
2
1
  import { fetcher as cookieFetcher, getCookie, setCookie } from './cookie';
3
2
  import { fetcher as dataLayerFetcher } from './dataLayer';
4
3
  import { fetcher as windowFetcher } from './window';
@@ -11,82 +10,6 @@ import { structure as jsonStructure } from './json';
11
10
  import { structure as jwtStructure } from './jwt';
12
11
  import { structure as queryStructure } from './queryString';
13
12
  import { structure as semicolonStructure } from './semicolon';
14
- import { ListenerOptions } from './listener';
13
+ import Watcher from './watcher';
15
14
  export { cookieFetcher, getCookie, setCookie, dataLayerFetcher, windowFetcher, localStorageFetcher, sessionStorageFetcher, queryStringFetcher, managedFetcher, stringStructure, jsonStructure, jwtStructure, queryStructure, semicolonStructure, };
16
- /**
17
- * Watcher provides a mechanism for watching for identities.
18
- */
19
- export default class Watcher {
20
- private readonly _w;
21
- private readonly _listenerOptions;
22
- private _intervalId?;
23
- private _fetchers;
24
- private _identities;
25
- private _emitter;
26
- /**
27
- * Create a new Watcher.
28
- *
29
- * @param w The window interface
30
- * @param options The listener options
31
- */
32
- constructor(w: Window, options?: ListenerOptions);
33
- /**
34
- * Add an identity with the given name and definition.
35
- *
36
- * @param name The name of the identity.
37
- * @param identity The definition of the identity.
38
- */
39
- add(name: string, identity: Identity | (() => Promise<string[]>)): void;
40
- /**
41
- * Starts watching for identities.
42
- */
43
- start(): Promise<void>;
44
- /**
45
- * Stops watching for identities.
46
- */
47
- stop(): void;
48
- /**
49
- * Fetches and notifies about identities.
50
- */
51
- notify(): Promise<void>;
52
- /**
53
- * Alias for `emitter.on(eventName, listener)`.
54
- */
55
- addListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
56
- /**
57
- * Adds the `listener` function to the end of the listeners array for the
58
- * event named `eventName`. No checks are made to see if the `listener` has
59
- * already been added. Multiple calls passing the same combination of `eventName`and `listener` will result in the `listener` being added, and called, multiple
60
- * times.
61
- *
62
- * @param eventName The name of the event.
63
- * @param listener The callback function
64
- */
65
- on(eventName: string | symbol, listener: (...args: any[]) => void): this;
66
- /**
67
- * Adds a **one-time**`listener` function for the event named `eventName`. The
68
- * next time `eventName` is triggered, this listener is removed and then invoked.
69
- *
70
- * @param eventName The name of the event.
71
- * @param listener The callback function
72
- */
73
- once(eventName: string | symbol, listener: (...args: any[]) => void): this;
74
- /**
75
- * Removes the specified `listener` from the listener array for the event named`eventName`.
76
- */
77
- removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
78
- /**
79
- * Alias for `emitter.removeListener()`.
80
- */
81
- off(eventName: string | symbol, listener: (...args: any[]) => void): this;
82
- /**
83
- * Removes all listeners, or those of the specified `eventName`.
84
- *
85
- * It is bad practice to remove listeners added elsewhere in the code,
86
- * particularly when the `EventEmitter` instance was created by some other
87
- * component or module (e.g. sockets or file streams).
88
- *
89
- * Returns a reference to the `EventEmitter`, so that calls can be chained.
90
- */
91
- removeAllListeners(event?: string | symbol): this;
92
- }
15
+ export default Watcher;
package/dist/index.js CHANGED
@@ -2,8 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.semicolonStructure = exports.queryStructure = exports.jwtStructure = exports.jsonStructure = exports.stringStructure = exports.managedFetcher = exports.queryStringFetcher = exports.sessionStorageFetcher = exports.localStorageFetcher = exports.windowFetcher = exports.dataLayerFetcher = exports.setCookie = exports.getCookie = exports.cookieFetcher = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const events_1 = require("events");
6
- const ketch_types_1 = require("@ketch-sdk/ketch-types");
7
5
  const cookie_1 = require("./cookie");
8
6
  Object.defineProperty(exports, "cookieFetcher", { enumerable: true, get: function () { return cookie_1.fetcher; } });
9
7
  Object.defineProperty(exports, "getCookie", { enumerable: true, get: function () { return cookie_1.getCookie; } });
@@ -30,187 +28,6 @@ const queryString_2 = require("./queryString");
30
28
  Object.defineProperty(exports, "queryStructure", { enumerable: true, get: function () { return queryString_2.structure; } });
31
29
  const semicolon_1 = require("./semicolon");
32
30
  Object.defineProperty(exports, "semicolonStructure", { enumerable: true, get: function () { return semicolon_1.structure; } });
33
- const nano_equal_1 = tslib_1.__importDefault(require("nano-equal"));
34
- const ketch_logging_1 = require("@ketch-sdk/ketch-logging");
35
- const log = (0, ketch_logging_1.getLogger)('identity');
36
- /**
37
- * Watcher provides a mechanism for watching for identities.
38
- */
39
- class Watcher {
40
- /**
41
- * Create a new Watcher.
42
- *
43
- * @param w The window interface
44
- * @param options The listener options
45
- */
46
- constructor(w, options = {}) {
47
- this._emitter = new events_1.EventEmitter();
48
- this._w = w;
49
- this._listenerOptions = options;
50
- this._fetchers = new Map();
51
- this._identities = {};
52
- }
53
- /**
54
- * Add an identity with the given name and definition.
55
- *
56
- * @param name The name of the identity.
57
- * @param identity The definition of the identity.
58
- */
59
- add(name, identity) {
60
- let structure;
61
- if (typeof identity === 'function') {
62
- this._fetchers.set(name, () => identity());
63
- return;
64
- }
65
- switch (identity.format) {
66
- case ketch_types_1.IdentityFormat.IDENTITY_FORMAT_JSON:
67
- structure = json_1.structure;
68
- break;
69
- case ketch_types_1.IdentityFormat.IDENTITY_FORMAT_JWT:
70
- structure = jwt_1.structure;
71
- break;
72
- case ketch_types_1.IdentityFormat.IDENTITY_FORMAT_QUERY:
73
- structure = queryString_2.structure;
74
- break;
75
- case ketch_types_1.IdentityFormat.IDENTITY_FORMAT_SEMICOLON:
76
- structure = semicolon_1.structure;
77
- break;
78
- default: // string or undefined
79
- structure = string_1.structure;
80
- }
81
- const key = identity.key || 'value';
82
- switch (identity.type) {
83
- case ketch_types_1.IdentityType.IDENTITY_TYPE_COOKIE:
84
- this._fetchers.set(name, (w) => (0, cookie_1.fetcher)(w, identity.variable).then(values => values.map(structure).map(values => values[key])));
85
- break;
86
- case ketch_types_1.IdentityType.IDENTITY_TYPE_DATA_LAYER:
87
- this._fetchers.set(name, (w) => (0, dataLayer_1.fetcher)(w, identity.variable).then(values => values.map(structure).map(values => values[key])));
88
- break;
89
- case ketch_types_1.IdentityType.IDENTITY_TYPE_WINDOW:
90
- this._fetchers.set(name, (w) => (0, window_1.fetcher)(w, identity.variable).then(values => values.map(structure).map(values => values[key])));
91
- break;
92
- case ketch_types_1.IdentityType.IDENTITY_TYPE_LOCAL_STORAGE:
93
- this._fetchers.set(name, (w) => (0, localStorage_1.fetcher)(w, identity.variable).then(values => values.map(structure).map(values => values[key])));
94
- break;
95
- case ketch_types_1.IdentityType.IDENTITY_TYPE_SESSION_STORAGE:
96
- this._fetchers.set(name, (w) => (0, sessionStorage_1.fetcher)(w, identity.variable).then(values => values.map(structure).map(values => values[key])));
97
- break;
98
- case ketch_types_1.IdentityType.IDENTITY_TYPE_QUERY_STRING:
99
- this._fetchers.set(name, (w) => (0, queryString_1.fetcher)(w, identity.variable).then(values => values.map(structure).map(values => values[key])));
100
- break;
101
- case ketch_types_1.IdentityType.IDENTITY_TYPE_MANAGED:
102
- this._fetchers.set(name, (w) => (0, managed_1.fetcher)(w, identity.variable).then(values => values.map(structure).map(values => values[key])));
103
- break;
104
- default:
105
- throw new Error(`unsupported identity type ${identity.type} for ${name}`);
106
- }
107
- }
108
- /**
109
- * Starts watching for identities.
110
- */
111
- start() {
112
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
113
- if (this._intervalId) {
114
- return;
115
- }
116
- if (this._listenerOptions.interval) {
117
- this._intervalId = this._w.setInterval(this.notify.bind(this), this._listenerOptions.interval);
118
- if (this._listenerOptions.timeout) {
119
- this._w.setTimeout(this.stop.bind(this), this._listenerOptions.timeout);
120
- }
121
- }
122
- return this.notify();
123
- });
124
- }
125
- /**
126
- * Stops watching for identities.
127
- */
128
- stop() {
129
- if (!this._intervalId) {
130
- return;
131
- }
132
- this._w.clearInterval(this._intervalId);
133
- this._intervalId = undefined;
134
- }
135
- /**
136
- * Fetches and notifies about identities.
137
- */
138
- notify() {
139
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
140
- const identities = {};
141
- for (const [key, fetcher] of this._fetchers.entries()) {
142
- try {
143
- const values = yield fetcher(this._w);
144
- for (const value of values) {
145
- identities[key] = value;
146
- }
147
- }
148
- catch (e) {
149
- log.warn(`failed to fetch identity for ${key}: ${e}`);
150
- }
151
- }
152
- if (!(0, nano_equal_1.default)(identities, this._identities)) {
153
- this._emitter.emit('identity', identities);
154
- this._identities = identities;
155
- }
156
- });
157
- }
158
- /**
159
- * Alias for `emitter.on(eventName, listener)`.
160
- */
161
- addListener(eventName, listener) {
162
- return this.on(eventName, listener);
163
- }
164
- /**
165
- * Adds the `listener` function to the end of the listeners array for the
166
- * event named `eventName`. No checks are made to see if the `listener` has
167
- * already been added. Multiple calls passing the same combination of `eventName`and `listener` will result in the `listener` being added, and called, multiple
168
- * times.
169
- *
170
- * @param eventName The name of the event.
171
- * @param listener The callback function
172
- */
173
- on(eventName, listener) {
174
- this._emitter.on(eventName, listener);
175
- return this;
176
- }
177
- /**
178
- * Adds a **one-time**`listener` function for the event named `eventName`. The
179
- * next time `eventName` is triggered, this listener is removed and then invoked.
180
- *
181
- * @param eventName The name of the event.
182
- * @param listener The callback function
183
- */
184
- once(eventName, listener) {
185
- this._emitter.once(eventName, listener);
186
- return this;
187
- }
188
- /**
189
- * Removes the specified `listener` from the listener array for the event named`eventName`.
190
- */
191
- removeListener(eventName, listener) {
192
- return this.off(eventName, listener);
193
- }
194
- /**
195
- * Alias for `emitter.removeListener()`.
196
- */
197
- off(eventName, listener) {
198
- this._emitter.off(eventName, listener);
199
- return this;
200
- }
201
- /**
202
- * Removes all listeners, or those of the specified `eventName`.
203
- *
204
- * It is bad practice to remove listeners added elsewhere in the code,
205
- * particularly when the `EventEmitter` instance was created by some other
206
- * component or module (e.g. sockets or file streams).
207
- *
208
- * Returns a reference to the `EventEmitter`, so that calls can be chained.
209
- */
210
- removeAllListeners(event) {
211
- this._emitter.removeAllListeners(event);
212
- return this;
213
- }
214
- }
215
- exports.default = Watcher;
216
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLG1DQUFxQztBQUNyQyx3REFBMkY7QUFDM0YscUNBQXlFO0FBa0J2RSw4RkFsQmtCLGdCQUFhLE9Ba0JsQjtBQUNiLDBGQW5CaUMsa0JBQVMsT0FtQmpDO0FBQ1QsMEZBcEI0QyxrQkFBUyxPQW9CNUM7QUFuQlgsMkNBQXlEO0FBb0J2RCxpR0FwQmtCLG1CQUFnQixPQW9CbEI7QUFuQmxCLHFDQUFtRDtBQW9CakQsOEZBcEJrQixnQkFBYSxPQW9CbEI7QUFuQmYsaURBQStEO0FBb0I3RCxvR0FwQmtCLHNCQUFtQixPQW9CbEI7QUFuQnJCLHFEQUFtRTtBQW9CakUsc0dBcEJrQix3QkFBcUIsT0FvQmxCO0FBbkJ2QiwrQ0FBNkQ7QUFvQjNELG1HQXBCa0IscUJBQWtCLE9Bb0JsQjtBQW5CcEIsdUNBQXFEO0FBb0JuRCwrRkFwQmtCLGlCQUFjLE9Bb0JsQjtBQW5CaEIscUNBQXVEO0FBb0JyRCxnR0FwQm9CLGtCQUFlLE9Bb0JwQjtBQW5CakIsaUNBQW1EO0FBb0JqRCw4RkFwQm9CLGdCQUFhLE9Bb0JwQjtBQW5CZiwrQkFBaUQ7QUFvQi9DLDZGQXBCb0IsZUFBWSxPQW9CcEI7QUFuQmQsK0NBQTJEO0FBb0J6RCwrRkFwQm9CLHVCQUFjLE9Bb0JwQjtBQW5CaEIsMkNBQTZEO0FBb0IzRCxtR0FwQm9CLHFCQUFrQixPQW9CcEI7QUFqQnBCLG9FQUFrQztBQUNsQyw0REFBb0Q7QUFtQnBELE1BQU0sR0FBRyxHQUFHLElBQUEseUJBQVMsRUFBQyxVQUFVLENBQUMsQ0FBQTtBQUVqQzs7R0FFRztBQUNILE1BQXFCLE9BQU87SUFRMUI7Ozs7O09BS0c7SUFDSCxZQUFZLENBQVMsRUFBRSxVQUEyQixFQUFFO1FBQ2xELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxxQkFBWSxFQUFFLENBQUE7UUFDbEMsSUFBSSxDQUFD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QUFDLENBQUMsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUMzRyxDQUFBO2dCQUNELE1BQUs7WUFFUCxLQUFLLDBCQUFZLENBQUMsNkJBQTZCO2dCQUM3QyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUNyQyxJQUFBLHdCQUFxQixFQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUM3RyxDQUFBO2dCQUNELE1BQUs7WUFFUCxLQUFLLDBCQUFZLENBQUMsMEJBQTBCO2dCQUMxQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUNyQyxJQUFBLHFCQUFrQixFQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUMxRyxDQUFBO2dCQUNELE1BQUs7WUFFUCxLQUFLLDBCQUFZLENBQUMscUJBQXFCO2dCQUNyQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUNyQyxJQUFBLGlCQUFjLEVB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
31
+ const watcher_1 = tslib_1.__importDefault(require("./watcher"));
32
+ exports.default = watcher_1.default;
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLHFDQUF5RTtBQWV2RSw4RkFma0IsZ0JBQWEsT0FlbEI7QUFDYiwwRkFoQmlDLGtCQUFTLE9BZ0JqQztBQUNULDBGQWpCNEMsa0JBQVMsT0FpQjVDO0FBaEJYLDJDQUF5RDtBQWlCdkQsaUdBakJrQixtQkFBZ0IsT0FpQmxCO0FBaEJsQixxQ0FBbUQ7QUFpQmpELDhGQWpCa0IsZ0JBQWEsT0FpQmxCO0FBaEJmLGlEQUErRDtBQWlCN0Qsb0dBakJrQixzQkFBbUIsT0FpQmxCO0FBaEJyQixxREFBbUU7QUFpQmpFLHNHQWpCa0Isd0JBQXFCLE9BaUJsQjtBQWhCdkIsK0NBQTZEO0FBaUIzRCxtR0FqQmtCLHFCQUFrQixPQWlCbEI7QUFoQnBCLHVDQUFxRDtBQWlCbkQsK0ZBakJrQixpQkFBYyxPQWlCbEI7QUFoQmhCLHFDQUF1RDtBQWlCckQsZ0dBakJvQixrQkFBZSxPQWlCcEI7QUFoQmpCLGlDQUFtRDtBQWlCakQsOEZBakJvQixnQkFBYSxPQWlCcEI7QUFoQmYsK0JBQWlEO0FBaUIvQyw2RkFqQm9CLGVBQVksT0FpQnBCO0FBaEJkLCtDQUEyRDtBQWlCekQsK0ZBakJvQix1QkFBYyxPQWlCcEI7QUFoQmhCLDJDQUE2RDtBQWlCM0QsbUdBakJvQixxQkFBa0IsT0FpQnBCO0FBaEJwQixnRUFBK0I7QUFtQi9CLGtCQUFlLGlCQUFPLENBQUEifQ==
@@ -4,8 +4,8 @@ function jwtStructure(value) {
4
4
  const s = value;
5
5
  const parts = s.split('.');
6
6
  const claimsString = parts[1];
7
- const claims = Buffer.from(claimsString, 'base64').toString();
7
+ const claims = atob(claimsString);
8
8
  return JSON.parse(claims);
9
9
  }
10
10
  exports.default = jwtStructure;
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2p3dC9zdHJ1Y3R1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSxTQUF3QixZQUFZLENBQUMsS0FBVTtJQUM3QyxNQUFNLENBQUMsR0FBRyxLQUFlLENBQUE7SUFDekIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUMxQixNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDN0IsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDN0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBVyxDQUFBO0FBQ3JDLENBQUM7QUFORCwrQkFNQyJ9
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0dXJlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2p3dC9zdHJ1Y3R1cmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFFQSxTQUF3QixZQUFZLENBQUMsS0FBVTtJQUM3QyxNQUFNLENBQUMsR0FBRyxLQUFlLENBQUE7SUFDekIsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUMxQixNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDN0IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFBO0lBQ2pDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQVcsQ0FBQTtBQUNyQyxDQUFDO0FBTkQsK0JBTUMifQ==
@@ -0,0 +1,80 @@
1
+ import { Identity } from '@ketch-sdk/ketch-types';
2
+ import { ListenerOptions } from '../listener';
3
+ /**
4
+ * Watcher provides a mechanism for watching for identities.
5
+ */
6
+ export default class Watcher {
7
+ private readonly _w;
8
+ private readonly _listenerOptions;
9
+ private _intervalId?;
10
+ private _fetchers;
11
+ private _identities;
12
+ private _emitter;
13
+ /**
14
+ * Create a new Watcher.
15
+ *
16
+ * @param w The window interface
17
+ * @param options The listener options
18
+ */
19
+ constructor(w: Window, options?: ListenerOptions);
20
+ /**
21
+ * Add an identity with the given name and definition.
22
+ *
23
+ * @param name The name of the identity.
24
+ * @param identity The definition of the identity.
25
+ */
26
+ add(name: string, identity: Identity | (() => Promise<string[]>)): void;
27
+ /**
28
+ * Starts watching for identities.
29
+ */
30
+ start(): Promise<void>;
31
+ /**
32
+ * Stops watching for identities.
33
+ */
34
+ stop(): void;
35
+ /**
36
+ * Fetches and notifies about identities.
37
+ */
38
+ notify(): Promise<void>;
39
+ /**
40
+ * Alias for `emitter.on(eventName, listener)`.
41
+ */
42
+ addListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
43
+ /**
44
+ * Adds the `listener` function to the end of the listeners array for the
45
+ * event named `eventName`. No checks are made to see if the `listener` has
46
+ * already been added. Multiple calls passing the same combination of `eventName`and `listener` will result in
47
+ * the `listener` being added, and called, multiple
48
+ * times.
49
+ *
50
+ * @param eventName The name of the event.
51
+ * @param listener The callback function
52
+ */
53
+ on(eventName: string | symbol, listener: (...args: any[]) => void): this;
54
+ /**
55
+ * Adds a **one-time**`listener` function for the event named `eventName`. The
56
+ * next time `eventName` is triggered, this listener is removed and then invoked.
57
+ *
58
+ * @param eventName The name of the event.
59
+ * @param listener The callback function
60
+ */
61
+ once(eventName: string | symbol, listener: (...args: any[]) => void): this;
62
+ /**
63
+ * Removes the specified `listener` from the listener array for the event named`eventName`.
64
+ */
65
+ removeListener(eventName: string | symbol, listener: (...args: any[]) => void): this;
66
+ /**
67
+ * Alias for `emitter.removeListener()`.
68
+ */
69
+ off(eventName: string | symbol, listener: (...args: any[]) => void): this;
70
+ /**
71
+ * Removes all listeners, or those of the specified `eventName`.
72
+ *
73
+ * It is bad practice to remove listeners added elsewhere in the code,
74
+ * particularly when the `EventEmitter` instance was created by some other
75
+ * component or module (e.g. sockets or file streams).
76
+ *
77
+ * Returns a reference to the `EventEmitter`, so that calls can be chained.
78
+ */
79
+ removeAllListeners(event?: string | symbol): this;
80
+ }
@@ -0,0 +1,202 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const events_1 = require("events");
5
+ const ketch_types_1 = require("@ketch-sdk/ketch-types");
6
+ const cookie_1 = require("../cookie");
7
+ const dataLayer_1 = require("../dataLayer");
8
+ const window_1 = require("../window");
9
+ const localStorage_1 = require("../localStorage");
10
+ const sessionStorage_1 = require("../sessionStorage");
11
+ const queryString_1 = require("../queryString");
12
+ const managed_1 = require("../managed");
13
+ const string_1 = require("../string");
14
+ const json_1 = require("../json");
15
+ const jwt_1 = require("../jwt");
16
+ const queryString_2 = require("../queryString");
17
+ const semicolon_1 = require("../semicolon");
18
+ const nano_equal_1 = tslib_1.__importDefault(require("nano-equal"));
19
+ const ketch_logging_1 = require("@ketch-sdk/ketch-logging");
20
+ const log = (0, ketch_logging_1.getLogger)('identity');
21
+ /**
22
+ * Watcher provides a mechanism for watching for identities.
23
+ */
24
+ class Watcher {
25
+ /**
26
+ * Create a new Watcher.
27
+ *
28
+ * @param w The window interface
29
+ * @param options The listener options
30
+ */
31
+ constructor(w, options = {}) {
32
+ this._emitter = new events_1.EventEmitter();
33
+ this._w = w;
34
+ this._listenerOptions = options;
35
+ this._fetchers = new Map();
36
+ this._identities = {};
37
+ }
38
+ /**
39
+ * Add an identity with the given name and definition.
40
+ *
41
+ * @param name The name of the identity.
42
+ * @param identity The definition of the identity.
43
+ */
44
+ add(name, identity) {
45
+ let structure;
46
+ if (typeof identity === 'function') {
47
+ this._fetchers.set(name, () => identity());
48
+ return;
49
+ }
50
+ switch (identity.format) {
51
+ case ketch_types_1.IdentityFormat.IDENTITY_FORMAT_JSON:
52
+ structure = json_1.structure;
53
+ break;
54
+ case ketch_types_1.IdentityFormat.IDENTITY_FORMAT_JWT:
55
+ structure = jwt_1.structure;
56
+ break;
57
+ case ketch_types_1.IdentityFormat.IDENTITY_FORMAT_QUERY:
58
+ structure = queryString_2.structure;
59
+ break;
60
+ case ketch_types_1.IdentityFormat.IDENTITY_FORMAT_SEMICOLON:
61
+ structure = semicolon_1.structure;
62
+ break;
63
+ default: // string or undefined
64
+ structure = string_1.structure;
65
+ }
66
+ const key = identity.key || 'value';
67
+ switch (identity.type) {
68
+ case ketch_types_1.IdentityType.IDENTITY_TYPE_COOKIE:
69
+ this._fetchers.set(name, (w) => (0, cookie_1.fetcher)(w, identity.variable).then(values => values.map(structure).map(values => values[key])));
70
+ break;
71
+ case ketch_types_1.IdentityType.IDENTITY_TYPE_DATA_LAYER:
72
+ this._fetchers.set(name, (w) => (0, dataLayer_1.fetcher)(w, identity.variable).then(values => values.map(structure).map(values => values[key])));
73
+ break;
74
+ case ketch_types_1.IdentityType.IDENTITY_TYPE_WINDOW:
75
+ this._fetchers.set(name, (w) => (0, window_1.fetcher)(w, identity.variable).then(values => values.map(structure).map(values => values[key])));
76
+ break;
77
+ case ketch_types_1.IdentityType.IDENTITY_TYPE_LOCAL_STORAGE:
78
+ this._fetchers.set(name, (w) => (0, localStorage_1.fetcher)(w, identity.variable).then(values => values.map(structure).map(values => values[key])));
79
+ break;
80
+ case ketch_types_1.IdentityType.IDENTITY_TYPE_SESSION_STORAGE:
81
+ this._fetchers.set(name, (w) => (0, sessionStorage_1.fetcher)(w, identity.variable).then(values => values.map(structure).map(values => values[key])));
82
+ break;
83
+ case ketch_types_1.IdentityType.IDENTITY_TYPE_QUERY_STRING:
84
+ this._fetchers.set(name, (w) => (0, queryString_1.fetcher)(w, identity.variable).then(values => values.map(structure).map(values => values[key])));
85
+ break;
86
+ case ketch_types_1.IdentityType.IDENTITY_TYPE_MANAGED:
87
+ this._fetchers.set(name, (w) => (0, managed_1.fetcher)(w, identity.variable).then(values => values.map(structure).map(values => values[key])));
88
+ break;
89
+ default:
90
+ throw new Error(`unsupported identity type ${identity.type} for ${name}`);
91
+ }
92
+ }
93
+ /**
94
+ * Starts watching for identities.
95
+ */
96
+ start() {
97
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
98
+ if (this._intervalId) {
99
+ return;
100
+ }
101
+ if (this._listenerOptions.interval) {
102
+ this._intervalId = this._w.setInterval(this.notify.bind(this), this._listenerOptions.interval);
103
+ if (this._listenerOptions.timeout) {
104
+ this._w.setTimeout(this.stop.bind(this), this._listenerOptions.timeout);
105
+ }
106
+ }
107
+ return this.notify();
108
+ });
109
+ }
110
+ /**
111
+ * Stops watching for identities.
112
+ */
113
+ stop() {
114
+ if (!this._intervalId) {
115
+ return;
116
+ }
117
+ this._w.clearInterval(this._intervalId);
118
+ this._intervalId = undefined;
119
+ }
120
+ /**
121
+ * Fetches and notifies about identities.
122
+ */
123
+ notify() {
124
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
125
+ const identities = {};
126
+ for (const [key, fetcher] of this._fetchers.entries()) {
127
+ try {
128
+ const values = yield fetcher(this._w);
129
+ for (const value of values) {
130
+ identities[key] = value;
131
+ }
132
+ }
133
+ catch (e) {
134
+ log.warn(`failed to fetch identity for ${key}: ${e}`);
135
+ }
136
+ }
137
+ if (!(0, nano_equal_1.default)(identities, this._identities)) {
138
+ this._emitter.emit('identity', identities);
139
+ this._identities = identities;
140
+ }
141
+ });
142
+ }
143
+ /**
144
+ * Alias for `emitter.on(eventName, listener)`.
145
+ */
146
+ addListener(eventName, listener) {
147
+ return this.on(eventName, listener);
148
+ }
149
+ /**
150
+ * Adds the `listener` function to the end of the listeners array for the
151
+ * event named `eventName`. No checks are made to see if the `listener` has
152
+ * already been added. Multiple calls passing the same combination of `eventName`and `listener` will result in
153
+ * the `listener` being added, and called, multiple
154
+ * times.
155
+ *
156
+ * @param eventName The name of the event.
157
+ * @param listener The callback function
158
+ */
159
+ on(eventName, listener) {
160
+ this._emitter.on(eventName, listener);
161
+ return this;
162
+ }
163
+ /**
164
+ * Adds a **one-time**`listener` function for the event named `eventName`. The
165
+ * next time `eventName` is triggered, this listener is removed and then invoked.
166
+ *
167
+ * @param eventName The name of the event.
168
+ * @param listener The callback function
169
+ */
170
+ once(eventName, listener) {
171
+ this._emitter.once(eventName, listener);
172
+ return this;
173
+ }
174
+ /**
175
+ * Removes the specified `listener` from the listener array for the event named`eventName`.
176
+ */
177
+ removeListener(eventName, listener) {
178
+ return this.off(eventName, listener);
179
+ }
180
+ /**
181
+ * Alias for `emitter.removeListener()`.
182
+ */
183
+ off(eventName, listener) {
184
+ this._emitter.off(eventName, listener);
185
+ return this;
186
+ }
187
+ /**
188
+ * Removes all listeners, or those of the specified `eventName`.
189
+ *
190
+ * It is bad practice to remove listeners added elsewhere in the code,
191
+ * particularly when the `EventEmitter` instance was created by some other
192
+ * component or module (e.g. sockets or file streams).
193
+ *
194
+ * Returns a reference to the `EventEmitter`, so that calls can be chained.
195
+ */
196
+ removeAllListeners(event) {
197
+ this._emitter.removeAllListeners(event);
198
+ return this;
199
+ }
200
+ }
201
+ exports.default = Watcher;
202
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2F0Y2hlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBcUM7QUFDckMsd0RBQTJGO0FBQzNGLHNDQUFvRDtBQUNwRCw0Q0FBMEQ7QUFDMUQsc0NBQW9EO0FBQ3BELGtEQUFnRTtBQUNoRSxzREFBb0U7QUFDcEUsZ0RBQThEO0FBQzlELHdDQUFzRDtBQUN0RCxzQ0FBd0Q7QUFDeEQsa0NBQW9EO0FBQ3BELGdDQUFrRDtBQUNsRCxnREFBNEQ7QUFDNUQsNENBQThEO0FBRzlELG9FQUFrQztBQUNsQyw0REFBb0Q7QUFFcEQsTUFBTSxHQUFHLEdBQUcsSUFBQSx5QkFBUyxFQUFDLFVBQVUsQ0FBQyxDQUFBO0FBRWpDOztHQUVHO0FBQ0gsTUFBcUIsT0FBTztJQVExQjs7Ozs7T0FLRztJQUNILFlBQVksQ0FBUyxFQUFFLFVBQTJCLEVBQUU7UUFDbEQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLHFCQUFZLEVBQUUsQ0FBQTtRQUNsQyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQTtRQUNYLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUE7UUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLEdBQUcsRUFBNEMsQ0FBQTtRQUNwRSxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsQ0FBQTtJQUN2QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxHQUFHLENBQUMsSUFBWSxFQUFFLFFBQThDO1FBQzlELElBQUksU0FBb0IsQ0FBQTtRQUV4QixJQUFJLE9BQU8sUUFBUSxLQUFLLFVBQVUsRUFBRTtZQUNsQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtZQUMxQyxPQUFNO1NBQ1A7UUFFRCxRQUFRLFFBQVEsQ0FBQyxNQUFNLEVBQUU7WUFDdkIsS0FB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
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name": "@ketch-sdk/ketch-data-layer", "version": "1.2.0", "description": "Ketch Data Layer interface", "main": "dist/index.js", "types": "dist/index.d.ts", "type": "commonjs", "scripts": {"all": "npm run lint && npm run format-check && npm run test && npm run build && npm run docs", "build": "tsc -p .", "format": "prettier --write \"**/*.{ts,tsx,yml,yaml}\"", "format-check": "prettier --check '**/*.ts'", "lint": "eslint src/**/*.ts", "test": "jest --runInBand --passWithNoTests", "docs": "typedoc --githubPages true --excludeExternals --excludeInternal src/index.ts"}, "repository": {"type": "git", "url": "git+https://github.com/ketch-sdk/ketch-data-layer.git"}, "homepage": "https://github.com/ketch-sdk/ketch-data-layer", "bugs": {"url": "https://github.com/ketch-sdk/ketch-data-layer/issues"}, "keywords": ["Ketch", "dataLayer"], "author": "Ketch Kloud, Inc.", "license": "MIT", "devDependencies": {"@types/events": "^3.0.0", "@types/jest": "^29.4.0", "@types/nano-equal": "^2.0.0", "@types/uuid": "^9.0.0", "@typescript-eslint/eslint-plugin": "^5.49.0", "@typescript-eslint/parser": "^5.49.0", "eslint": "^8.33.0", "eslint-config-prettier": "^8.6.0", "eslint-plugin-import": "^2.27.5", "eslint-plugin-jest": "^27.2.1", "eslint-plugin-prettier": "^4.2.1", "jest": "^29.4.1", "jest-environment-jsdom": "^29.4.1", "jest-junit": "^15.0.0", "js-yaml": "^4.1.0", "prettier": "^2.8.3", "ts-jest": "^29.0.5", "typedoc": "^0.23.24", "typescript": "^4.9.4"}, "dependencies": {"@ketch-com/ketch-cookie": "^1.0.4", "@ketch-sdk/ketch-logging": "^1.1.0", "@ketch-sdk/ketch-types": "^1.5.1", "events": "^3.3.0", "nano-equal": "^2.0.2", "tslib": "^2.5.0", "uuid": "^9.0.0"}, "files": ["dist/"]}
1
+ {"name": "@ketch-sdk/ketch-data-layer", "version": "1.2.1", "description": "Ketch Data Layer interface", "main": "dist/index.js", "types": "dist/index.d.ts", "type": "commonjs", "scripts": {"all": "npm run lint && npm run format-check && npm run test && npm run build && npm run docs", "build": "tsc -p .", "format": "prettier --write \"**/*.{ts,tsx,yml,yaml}\"", "format-check": "prettier --check '**/*.ts'", "lint": "eslint src/**/*.ts", "test": "jest --runInBand --passWithNoTests", "docs": "typedoc --githubPages true --excludeExternals --excludeInternal src/index.ts"}, "repository": {"type": "git", "url": "git+https://github.com/ketch-sdk/ketch-data-layer.git"}, "homepage": "https://github.com/ketch-sdk/ketch-data-layer", "bugs": {"url": "https://github.com/ketch-sdk/ketch-data-layer/issues"}, "keywords": ["Ketch", "dataLayer"], "author": "Ketch Kloud, Inc.", "license": "MIT", "devDependencies": {"@types/events": "^3.0.0", "@types/jest": "^29.4.0", "@types/nano-equal": "^2.0.0", "@types/uuid": "^9.0.0", "@typescript-eslint/eslint-plugin": "^5.49.0", "@typescript-eslint/parser": "^5.49.0", "eslint": "^8.33.0", "eslint-config-prettier": "^8.6.0", "eslint-plugin-import": "^2.27.5", "eslint-plugin-jest": "^27.2.1", "eslint-plugin-prettier": "^4.2.1", "jest": "^29.4.1", "jest-environment-jsdom": "^29.4.1", "jest-junit": "^15.0.0", "js-yaml": "^4.1.0", "prettier": "^2.8.3", "ts-jest": "^29.0.5", "typedoc": "^0.23.24", "typescript": "^4.9.4"}, "dependencies": {"@ketch-com/ketch-cookie": "^1.0.4", "@ketch-sdk/ketch-logging": "^1.1.0", "@ketch-sdk/ketch-types": "^1.5.1", "events": "^3.3.0", "nano-equal": "^2.0.2", "tslib": "^2.5.0", "uuid": "^9.0.0"}, "files": ["dist/"]}