design-token-library 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,8 @@
1
+ import { COMPUTED, RECIPE, isComputed } from "./recipe.js";
2
+ import { REF, isRef } from "./ref.js";
1
3
  import { getNotifier } from "./notifier.js";
2
4
  import { Queue } from "./queue.js";
3
- import { empty } from "./utilities.js";
5
+ import { empty, isToken } from "./utilities.js";
4
6
  import { Watcher } from "./watcher.js";
5
7
  /**
6
8
  * @public
@@ -11,104 +13,184 @@ export var Library;
11
13
  * @public
12
14
  */
13
15
  Library.create = (config) => {
16
+ // The runtime library is untyped; its shape is guaranteed by `config`.
14
17
  return LibraryImpl.create(config);
15
18
  };
16
19
  })(Library || (Library = {}));
20
+ /**
21
+ * Thrown when reading a token whose value refers back to itself through
22
+ * one or more refs or computed values.
23
+ *
24
+ * @public
25
+ */
26
+ export class CircularReferenceError extends Error {
27
+ name = "CircularReferenceError";
28
+ /**
29
+ * The names of the tokens in the cycle, starting and ending with the
30
+ * same token.
31
+ */
32
+ chain;
33
+ constructor(chain) {
34
+ super(`Circular reference: ${chain.join(" → ")}`);
35
+ this.chain = chain;
36
+ }
37
+ }
38
+ /**
39
+ * The tokens currently resolving their values, outermost first.
40
+ */
41
+ const resolving = [];
17
42
  const isObject = (value) => {
18
43
  return typeof value === "object" && value !== null;
19
44
  };
45
+ const isGroup = (value) => {
46
+ return isObject(value) && !Array.isArray(value) && !isToken(value);
47
+ };
48
+ const GROUP_METADATA = [
49
+ "$type",
50
+ "$description",
51
+ "$extensions",
52
+ "$deprecated",
53
+ ];
20
54
  /**
21
- * @internal
55
+ * Names beginning with `$` are for format properties, except `$root`: the
56
+ * reserved name of a group's own token.
22
57
  */
23
- const isToken = (value) => {
24
- return isObject(value) && "value" in value;
58
+ const isChildKey = (key) => {
59
+ return !key.startsWith("$") || key === "$root";
25
60
  };
26
- const isGroup = (value) => {
27
- return isObject(value) && !isToken(value);
61
+ /**
62
+ * Records a group's own `$`-prefixed properties on it. They are not
63
+ * enumerable, so they never appear as children when a group is walked, and
64
+ * they let extending libraries resolve inherited types.
65
+ */
66
+ const defineGroupMetadata = (group, ...sources) => {
67
+ for (const property of GROUP_METADATA) {
68
+ for (const source of sources) {
69
+ if (source[property] !== undefined) {
70
+ Reflect.defineProperty(group, property, {
71
+ value: source[property],
72
+ });
73
+ break;
74
+ }
75
+ }
76
+ }
77
+ };
78
+ const defineToken = (library, key, token) => {
79
+ Reflect.defineProperty(library, key, {
80
+ get() {
81
+ // Token access is tracked because a ref reads its token from
82
+ // the library
83
+ Watcher.track(token);
84
+ return token;
85
+ },
86
+ enumerable: true,
87
+ });
28
88
  };
29
- const isAlias = (value) => {
30
- return typeof value === "function";
89
+ const createToken = (key, name, config, scope, typeContext, queue) => {
90
+ for (const property of Object.keys(config)) {
91
+ if (!property.startsWith("$")) {
92
+ throw new Error(`"${name}" has a $value, so it is a token and cannot have a child "${property}".`);
93
+ }
94
+ }
95
+ const { $value, $type, $description, $extensions, $deprecated } = config;
96
+ const resolvedType = $type || typeContext;
97
+ if (!resolvedType) {
98
+ throw new Error(`No '$type' found for token '${key}'. Types cannot be inferred, please add a $type to the token or to a group ancestor.`);
99
+ }
100
+ return new LibraryToken(name, $value, resolvedType, scope, $description || "", $extensions || {}, $deprecated ?? false, queue);
31
101
  };
32
- const recurseCreate = (name, library, config, context, typeContext, queue) => {
102
+ const recurseCreate = (name, library, config, scope, typeContext, queue) => {
103
+ defineGroupMetadata(library, config);
104
+ typeContext = config.$type || typeContext;
33
105
  for (const key in config) {
34
- if (key === "type") {
35
- typeContext = config[key];
106
+ if (!isChildKey(key)) {
36
107
  continue;
37
108
  }
38
109
  const _name = name.length === 0 ? key : `${name}.${key}`;
39
110
  if (isGroup(config[key])) {
111
+ const group = {};
40
112
  Reflect.defineProperty(library, key, {
41
- value: {},
113
+ value: group,
42
114
  enumerable: true,
43
115
  });
44
- recurseCreate(_name, library[key], config[key], context, config[key].type || typeContext, queue);
45
- Object.freeze(library[key]);
116
+ recurseCreate(_name, group, config[key], scope, typeContext, queue);
117
+ Object.freeze(group);
46
118
  }
47
119
  else if (isToken(config[key])) {
48
- const { value, type, description, extensions } = config[key];
49
- if (!type && !typeContext) {
50
- throw new Error(`No 'type' found for token '${key}'. Types cannot be inferred, please add a type to the token or to a group ancestor.`);
51
- }
52
- const token = new LibraryToken(_name, value, type || typeContext, context, description || "", extensions || {}, queue);
53
- Reflect.defineProperty(library, key, {
54
- get() {
55
- // Token access needs to be tracked because an alias token
56
- // is a function that returns a token
57
- Watcher.track(token);
58
- return token;
59
- },
60
- enumerable: true,
61
- });
120
+ defineToken(library, key, createToken(key, _name, config[key], scope, typeContext, queue));
62
121
  }
63
122
  }
64
123
  };
65
- const recurseExtend = (name, sourceTokens, extendedTokens, config, // TODO allow new config options
66
- context, typeContext, queue) => {
67
- const keys = new Set(Object.keys(sourceTokens).concat(Object.keys(config))); // Remove duplicate keys
124
+ const recurseExtend = (name, sourceTokens, extendedTokens, config, scope, typeContext, queue) => {
125
+ // An extension can restate a group's type, or give one to a group that
126
+ // has none, but can't change it, as for a token.
127
+ const sourceType = Reflect.get(sourceTokens, "$type");
128
+ if (sourceType &&
129
+ config.$type !== undefined &&
130
+ config.$type !== sourceType) {
131
+ throw new Error(`An override cannot change the '$type' of group '${name}' from '${sourceType}' to '${config.$type}'.`);
132
+ }
133
+ const groupType = sourceType || config.$type;
134
+ defineGroupMetadata(extendedTokens, { $type: groupType },
135
+ // An extension may restate the group's other metadata.
136
+ { ...config, $type: undefined }, sourceTokens);
137
+ typeContext = groupType || typeContext;
138
+ const keys = new Set(Object.keys(sourceTokens)
139
+ .concat(Object.keys(config))
140
+ .filter(isChildKey)); // Remove duplicate keys
68
141
  for (const key of keys) {
69
- const sourceHasKey = key in sourceTokens;
70
- const configHasKey = key in config;
71
142
  const _name = name.length === 0 ? key : `${name}.${key}`;
72
- const keyIsGroup = isGroup(sourceTokens[key]) || isGroup(config[key]);
73
- const keyIsToken = isToken(sourceTokens[key]) || isToken(config[key]);
74
- if (key === "type") {
75
- typeContext = sourceTokens[key];
76
- continue;
77
- }
78
- if (keyIsGroup) {
79
- Reflect.defineProperty(extendedTokens, key, Object.create(sourceTokens[key]));
143
+ const sourceHasKey = key in sourceTokens;
144
+ const sourceValue = sourceTokens[key];
145
+ const configValue = config[key];
146
+ if (sourceHasKey ? isGroup(sourceValue) : isGroup(configValue)) {
147
+ const group = {};
148
+ Reflect.defineProperty(extendedTokens, key, {
149
+ value: group,
150
+ enumerable: true,
151
+ });
80
152
  if (sourceHasKey) {
81
- recurseExtend(_name, sourceTokens[key], extendedTokens[key], config[key] || {}, context, (sourceTokens.type || typeContext), queue);
153
+ recurseExtend(_name, sourceValue, group, configValue || {}, scope, typeContext, queue);
82
154
  }
83
- else if (configHasKey) {
84
- // This will always be the case
85
- recurseCreate(_name, sourceTokens[key], extendedTokens[key], context, (sourceTokens.type || typeContext), queue);
155
+ else {
156
+ recurseCreate(_name, group, configValue, scope, typeContext, queue);
86
157
  }
158
+ Object.freeze(group);
87
159
  }
88
- else if (keyIsToken) {
89
- const token = sourceTokens[key] !== undefined
90
- ? extendToken(sourceTokens[key], context, queue, config[key])
91
- : new LibraryToken(_name, config[key].value, config[key].type || typeContext, context, config[key].description || "", config[key].extensions || {}, queue);
92
- Reflect.defineProperty(extendedTokens, key, {
93
- get() {
94
- // Token access needs to be tracked because an alias token
95
- // is a function that returns a token
96
- Watcher.track(token);
97
- return token;
98
- },
99
- enumerable: true,
100
- });
160
+ else if (sourceHasKey ? isToken(sourceValue) : isToken(configValue)) {
161
+ const token = sourceHasKey
162
+ ? extendToken(sourceValue, scope, queue, configValue)
163
+ : createToken(key, _name, configValue, scope, typeContext, queue);
164
+ defineToken(extendedTokens, key, token);
101
165
  }
102
166
  }
103
167
  };
104
- function extendToken(token, context, queue, value) {
168
+ function extendToken(token, scope, queue, node) {
169
+ if (node?.$type !== undefined && node.$type !== token.$type) {
170
+ throw new Error(`An override cannot change the '$type' of token '${token.name}' from '${token.$type}' to '${node.$type}'.`);
171
+ }
105
172
  const extendingToken = Object.create(token);
106
- extendingToken.context = context;
173
+ extendingToken.scope = scope;
107
174
  extendingToken.cached = empty;
175
+ extendingToken.resolving = false;
176
+ extendingToken.notifying = false;
177
+ // Its own dependencies; sharing the source's set would let either token
178
+ // drop the other's subscriptions.
179
+ extendingToken.subscriptions = new Set();
180
+ extendingToken.previousSubscriptions = null;
108
181
  extendingToken.watchContext = extendingToken;
109
182
  extendingToken.queue = queue;
110
- if (value !== undefined) {
111
- extendingToken.raw = value;
183
+ // An extension can restate the token's metadata along with its value.
184
+ if (node?.$description !== undefined) {
185
+ extendingToken._description = node.$description;
186
+ }
187
+ // A new object, so mutating it can't leak to the source or the override.
188
+ extendingToken._extensions = { ...token.$extensions, ...node?.$extensions };
189
+ if (node?.$deprecated !== undefined) {
190
+ extendingToken._deprecated = node.$deprecated;
191
+ }
192
+ if (node !== undefined && "$value" in node) {
193
+ extendingToken.raw = node.$value;
112
194
  }
113
195
  else {
114
196
  // Subscribe to changes
@@ -118,42 +200,134 @@ function extendToken(token, context, queue, value) {
118
200
  extendingToken.onChange();
119
201
  },
120
202
  };
121
- // token.value;
203
+ // token.$value;
122
204
  getNotifier(token).subscribe(subscriber);
123
- const set = extendingToken.set;
205
+ // Not extendingToken.set: when the extended token is an extension
206
+ // that hasn't been set, that is the extended token's own wrapper,
207
+ // which sets the extended token.
208
+ const set = LibraryToken.prototype.set;
124
209
  extendingToken.set = (value) => {
125
210
  getNotifier(token).unsubscribe(subscriber);
211
+ // Own the inherited value, so set() detaches even when the
212
+ // new value is identical and doesn't notify.
213
+ extendingToken.raw = extendingToken.raw;
126
214
  set.call(extendingToken, value);
127
215
  extendingToken.set = set;
128
216
  };
129
217
  }
130
218
  return extendingToken;
131
219
  }
132
- const recurseResolve = (value, context) => {
133
- const r = Array.isArray(value) ? [] : {};
134
- for (const key in value) {
135
- let v = value[key];
136
- if (isAlias(v)) {
137
- v = v(context);
220
+ /**
221
+ * The number of links in an object's prototype chain.
222
+ */
223
+ const prototypeDepth = (value) => {
224
+ let depth = 0;
225
+ for (let prototype = Object.getPrototypeOf(value); prototype !== null; prototype = Object.getPrototypeOf(prototype)) {
226
+ depth++;
227
+ }
228
+ return depth;
229
+ };
230
+ /**
231
+ * Tests whether an object is plain data, which may hold refs: an array that
232
+ * isn't a subclass of `Array`, or an object whose prototype chain has at most
233
+ * one link, such as an object literal from any realm or `Object.create(null)`.
234
+ * Any other object, such as a class instance, a `Date` or a `Map`, is a value
235
+ * as it is.
236
+ */
237
+ const isPlain = (value) => {
238
+ return Array.isArray(value)
239
+ ? prototypeDepth(value) === 2
240
+ : prototypeDepth(value) <= 1;
241
+ };
242
+ /**
243
+ * The token at a path of a library. Each group and the token are read from
244
+ * the library, so the token that reads it depends on it.
245
+ */
246
+ const tokenAt = (tokens, path) => {
247
+ let node = tokens;
248
+ for (const key of path) {
249
+ node = isObject(node) ? Reflect.get(node, key) : undefined;
250
+ }
251
+ if (!(node instanceof LibraryToken)) {
252
+ throw new Error(`The library has no token "${path.join(".")}".`);
253
+ }
254
+ return node;
255
+ };
256
+ /**
257
+ * Resolves a value in a library's scope. A ref is replaced by its token's
258
+ * value, and a computed value by the result of its recipe's function, or of
259
+ * the function that overrides it in the scope, called with its arguments
260
+ * resolved. Plain data is copied from its own properties, including
261
+ * symbol-keyed and non-enumerable ones, with its refs resolved, and the copy
262
+ * is frozen, so the config isn't. A getter is read once, into a data
263
+ * property. An object that is in the value twice, or in itself, has one copy.
264
+ * Anything else, such as a class instance or a function, is returned as it
265
+ * is: it can't be rebuilt, so it isn't copied, searched or frozen.
266
+ */
267
+ const resolve = (value, scope) => {
268
+ const copies = new Map();
269
+ const walk = (value) => {
270
+ if (!isObject(value)) {
271
+ return value;
272
+ }
273
+ if (isRef(value)) {
274
+ return walk(tokenAt(scope.tokens, value[REF]).$value);
275
+ }
276
+ if (isComputed(value)) {
277
+ const { recipe, args } = value[COMPUTED];
278
+ const fn = scope.recipes.get(recipe) ?? recipe[RECIPE].fn;
279
+ return walk(fn(...args.map(walk)));
138
280
  }
139
- if (isToken(v)) {
140
- v = v.value;
281
+ if (copies.has(value)) {
282
+ return copies.get(value);
141
283
  }
142
- if (isObject(v)) {
143
- r[key] = recurseResolve(v, context);
284
+ if (!isPlain(value)) {
285
+ return value;
286
+ }
287
+ if (Array.isArray(value)) {
288
+ const copy = new Array(value.length);
289
+ copies.set(value, copy);
290
+ for (let i = 0; i < value.length; i++) {
291
+ copy[i] = walk(value[i]);
292
+ }
293
+ return Object.freeze(copy);
144
294
  }
145
- else {
146
- r[key] = v;
295
+ const copy = Object.create(Object.getPrototypeOf(value));
296
+ copies.set(value, copy);
297
+ for (const key of Reflect.ownKeys(value)) {
298
+ const descriptor = Reflect.getOwnPropertyDescriptor(value, key);
299
+ Reflect.defineProperty(copy, key, "value" in descriptor
300
+ ? { ...descriptor, value: walk(descriptor.value) }
301
+ : {
302
+ value: walk(Reflect.get(value, key)),
303
+ enumerable: descriptor.enumerable,
304
+ writable: true,
305
+ configurable: true,
306
+ });
147
307
  }
308
+ return Object.freeze(copy);
309
+ };
310
+ return walk(value);
311
+ };
312
+ const assertNoRoot = (config) => {
313
+ if ("$root" in config) {
314
+ throw new Error(`"$root" is the token of a group, so it cannot be at the top level of a library.`);
148
315
  }
149
- return r;
150
316
  };
317
+ /**
318
+ * The runtime library. It is untyped internally; {@link Library.create}
319
+ * exposes it through the typed {@link (Library:namespace).Library} interface.
320
+ */
151
321
  class LibraryImpl {
152
- tokens;
322
+ scope;
153
323
  queue;
154
- constructor(tokens, queue) {
155
- this.tokens = tokens;
324
+ tokens;
325
+ constructor(scope, queue) {
326
+ this.scope = scope;
156
327
  this.queue = queue;
328
+ this.tokens = scope.tokens;
329
+ // Groups are frozen as they are built; the root is frozen here.
330
+ Object.freeze(this.tokens);
157
331
  }
158
332
  subscribe(subscriber) {
159
333
  this.queue.subscribe(subscriber);
@@ -161,18 +335,23 @@ class LibraryImpl {
161
335
  unsubscribe(subscriber) {
162
336
  this.queue.unsubscribe(subscriber);
163
337
  }
164
- extend(config) {
165
- // TODO should not type Library.Config<any>
338
+ extend(config, options = {}) {
339
+ assertNoRoot(config);
166
340
  const queue = new Queue();
167
- const tokens = {};
168
- recurseExtend("", this.tokens, tokens, config, tokens, null, queue);
169
- return new LibraryImpl(tokens, queue);
341
+ const recipes = new Map(this.scope.recipes);
342
+ for (const { recipe, fn } of options.recipes ?? []) {
343
+ recipes.set(recipe, fn);
344
+ }
345
+ const scope = { tokens: {}, recipes };
346
+ recurseExtend("", this.tokens, scope.tokens, config, scope, null, queue);
347
+ return new LibraryImpl(scope, queue);
170
348
  }
171
349
  static create(config) {
350
+ assertNoRoot(config);
172
351
  const queue = new Queue();
173
- const tokens = {};
174
- recurseCreate("", tokens, config, tokens, null, queue);
175
- return new LibraryImpl(tokens, queue);
352
+ const scope = { tokens: {}, recipes: new Map() };
353
+ recurseCreate("", scope.tokens, config, scope, null, queue);
354
+ return new LibraryImpl(scope, queue);
176
355
  }
177
356
  }
178
357
  /**
@@ -181,71 +360,123 @@ class LibraryImpl {
181
360
  class LibraryToken {
182
361
  name;
183
362
  _type;
184
- context;
363
+ scope;
185
364
  _description;
186
- _extensions;
365
+ _deprecated;
187
366
  queue;
188
367
  raw;
189
368
  cached = empty;
369
+ resolving = false;
370
+ notifying = false;
190
371
  subscriptions = new Set();
191
- constructor(name, value, _type, context, _description, _extensions, queue) {
372
+ /**
373
+ * While resolving, the subscriptions from the previous resolution. Sources
374
+ * watched again keep their subscription instead of re-subscribing.
375
+ */
376
+ previousSubscriptions = null;
377
+ _extensions;
378
+ constructor(name, value, _type, scope, _description, extensions, _deprecated, queue) {
192
379
  this.name = name;
193
380
  this._type = _type;
194
- this.context = context;
381
+ this.scope = scope;
195
382
  this._description = _description;
196
- this._extensions = _extensions;
383
+ this._deprecated = _deprecated;
197
384
  this.queue = queue;
198
385
  this.raw = value;
199
- this.context = context;
386
+ // A copy, so changing the config's top-level keys can't change the token.
387
+ this._extensions = { ...extensions };
388
+ }
389
+ get $deprecated() {
390
+ return this._deprecated;
200
391
  }
201
- get type() {
392
+ get $type() {
202
393
  return this._type;
203
394
  }
204
- get description() {
395
+ get $description() {
205
396
  return this._description;
206
397
  }
207
- get extensions() {
398
+ get $extensions() {
208
399
  return this._extensions;
209
400
  }
210
401
  /**
211
402
  * Gets the token value
212
403
  */
213
- get value() {
404
+ get $value() {
214
405
  if (this.cached !== empty) {
215
406
  return this.cached;
216
407
  }
217
- this.disconnect();
408
+ if (this.resolving) {
409
+ const chain = resolving
410
+ .slice(resolving.indexOf(this))
411
+ .map((token) => token.name);
412
+ throw new CircularReferenceError([...chain, this.name]);
413
+ }
414
+ const previous = this.subscriptions;
415
+ this.previousSubscriptions = previous;
416
+ this.subscriptions = new Set();
417
+ this.resolving = true;
418
+ resolving.push(this);
218
419
  const stopWatching = Watcher.use(this);
219
- const raw = isAlias(this.raw) ? this.raw(this.context) : this.raw;
220
- const normalized = isToken(raw) ? raw.value : raw;
221
- const value = isObject(normalized)
222
- ? recurseResolve(normalized, this.context)
223
- : normalized;
224
- this.cached = value;
225
- stopWatching();
226
- return value;
420
+ try {
421
+ // The config's types guarantee what the raw value resolves to.
422
+ const value = resolve(this.raw, this.scope);
423
+ this.cached = value;
424
+ return value;
425
+ }
426
+ finally {
427
+ this.resolving = false;
428
+ resolving.pop();
429
+ stopWatching();
430
+ this.previousSubscriptions = null;
431
+ // Unsubscribe from sources that were not watched this time.
432
+ for (const notifier of previous) {
433
+ if (!this.subscriptions.has(notifier)) {
434
+ notifier.unsubscribe(this);
435
+ }
436
+ }
437
+ }
438
+ }
439
+ toString() {
440
+ return JSON.stringify({
441
+ name: this.name,
442
+ $type: this.$type,
443
+ $value: this.$value,
444
+ $description: this.$description,
445
+ $extensions: this.$extensions,
446
+ $deprecated: this.$deprecated,
447
+ });
227
448
  }
228
449
  set(value) {
450
+ if (Object.is(this.raw, value)) {
451
+ return;
452
+ }
229
453
  this.raw = value;
230
454
  this.onChange();
231
455
  }
232
456
  onChange() {
233
- this.queue.add(this);
234
- this.cached = empty;
235
- getNotifier(this).notify();
457
+ // A circular reference that threw while resolving still leaves the
458
+ // tokens subscribed to each other, so don't notify re-entrantly.
459
+ if (this.notifying) {
460
+ return;
461
+ }
462
+ this.notifying = true;
463
+ try {
464
+ this.queue.add(this);
465
+ this.cached = empty;
466
+ getNotifier(this).notify();
467
+ }
468
+ finally {
469
+ this.notifying = false;
470
+ }
236
471
  }
237
472
  watch(source) {
238
473
  const notifier = getNotifier(source);
239
- notifier.subscribe(this);
474
+ if (this.subscriptions.has(notifier)) {
475
+ return;
476
+ }
240
477
  this.subscriptions.add(notifier);
241
- }
242
- /**
243
- * Disconnect the token from it's subscriptions
244
- */
245
- disconnect() {
246
- for (const record of this.subscriptions.values()) {
247
- record.unsubscribe(this);
248
- this.subscriptions.delete(record);
478
+ if (!this.previousSubscriptions?.has(notifier)) {
479
+ notifier.subscribe(this);
249
480
  }
250
481
  }
251
482
  }
@@ -1 +1 @@
1
- {"version":3,"file":"library.js","sourceRoot":"","sources":["../../src/lib/library.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"library.js","sourceRoot":"","sources":["../../src/lib/library.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"notifier.js","sourceRoot":"","sources":["../../src/lib/notifier.ts"],"names":[],"mappings":"AAAA,MAAM,OAAgB,YAAY;IACtB,WAAW,GAAwB,IAAI,GAAG,EAAE,CAAC;IACvD,SAAS,CAAC,MAAsB;QAC9B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAED,WAAW,CAAC,MAAsB;QAChC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;CACF;AAED,MAAM,QAAkB,SAAQ,YAAe;IACtC,MAAM,CAAC,WAAW,CAAI,MAAS;QACpC,IAAI,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAE3C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;YAChC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,MAAM,CAAC,MAAM,GAAqC,IAAI,OAAO,EAAE,CAAC;IAC/D,QAAQ,CAAI;IAErB,YAAY,OAAU;QACpB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,MAAM;QACJ,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;;AAqBH,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC"}
1
+ {"version":3,"file":"notifier.js","sourceRoot":"","sources":["../../src/lib/notifier.ts"],"names":[],"mappings":"AAAA,MAAM,OAAgB,YAAY;IACpB,WAAW,GAAwB,IAAI,GAAG,EAAE,CAAC;IACvD,SAAS,CAAC,MAAsB;QAC5B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC,CAAC;IAED,WAAW,CAAC,MAAsB;QAC9B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpC,CAAC;CACJ;AAED,MAAM,QAAkB,SAAQ,YAAe;IACpC,MAAM,CAAC,WAAW,CAAI,MAAS;QAClC,IAAI,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAE3C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;YAChC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC1C,CAAC;QAED,OAAO,QAAQ,CAAC;IACpB,CAAC;IAEO,MAAM,CAAC,MAAM,GAAqC,IAAI,OAAO,EAAE,CAAC;IAC/D,QAAQ,CAAI;IAErB,YAAY,OAAU;QAClB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC5B,CAAC;IAED,MAAM;QACF,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;IACL,CAAC;;AAqBL,MAAM,CAAC,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC"}