@equinor/fusion-framework-module-context 8.0.0 → 8.0.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.
Files changed (64) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/esm/ContextConfigBuilder.js +17 -6
  3. package/dist/esm/ContextConfigBuilder.js.map +1 -1
  4. package/dist/esm/ContextProvider.js +71 -15
  5. package/dist/esm/ContextProvider.js.map +1 -1
  6. package/dist/esm/client/ContextClient.js +13 -3
  7. package/dist/esm/client/ContextClient.js.map +1 -1
  8. package/dist/esm/configurator.js +9 -5
  9. package/dist/esm/configurator.js.map +1 -1
  10. package/dist/esm/{errors.js → errors/FusionContextSearchError.js} +3 -1
  11. package/dist/esm/errors/FusionContextSearchError.js.map +1 -0
  12. package/dist/esm/errors/index.js +2 -0
  13. package/dist/esm/errors/index.js.map +1 -0
  14. package/dist/esm/get-context-selector.js +14 -0
  15. package/dist/esm/get-context-selector.js.map +1 -0
  16. package/dist/esm/parse-context-item.js +31 -0
  17. package/dist/esm/parse-context-item.js.map +1 -0
  18. package/dist/esm/query-context-selector.js +12 -0
  19. package/dist/esm/query-context-selector.js.map +1 -0
  20. package/dist/esm/related-context-selector.js +12 -0
  21. package/dist/esm/related-context-selector.js.map +1 -0
  22. package/dist/esm/utils/extract-context-id-from-path.js +25 -0
  23. package/dist/esm/utils/extract-context-id-from-path.js.map +1 -0
  24. package/dist/esm/utils/resolve-context-from-path.js +11 -22
  25. package/dist/esm/utils/resolve-context-from-path.js.map +1 -1
  26. package/dist/esm/utils/resolve-initial-context.js +2 -0
  27. package/dist/esm/utils/resolve-initial-context.js.map +1 -1
  28. package/dist/esm/version.js +1 -1
  29. package/dist/tsconfig.tsbuildinfo +1 -1
  30. package/dist/types/ContextConfigBuilder.d.ts +16 -1
  31. package/dist/types/ContextProvider.d.ts +37 -3
  32. package/dist/types/client/ContextClient.d.ts +8 -1
  33. package/dist/types/{errors.d.ts → errors/FusionContextSearchError.d.ts} +2 -0
  34. package/dist/types/errors/index.d.ts +1 -0
  35. package/dist/types/get-context-selector.d.ts +9 -0
  36. package/dist/types/parse-context-item.d.ts +8 -0
  37. package/dist/types/query-context-selector.d.ts +7 -0
  38. package/dist/types/related-context-selector.d.ts +7 -0
  39. package/dist/types/types.d.ts +1 -1
  40. package/dist/types/utils/extract-context-id-from-path.d.ts +16 -0
  41. package/dist/types/utils/resolve-context-from-path.d.ts +1 -16
  42. package/dist/types/utils/resolve-initial-context.d.ts +1 -1
  43. package/dist/types/version.d.ts +1 -1
  44. package/package.json +11 -11
  45. package/src/ContextConfigBuilder.ts +32 -7
  46. package/src/ContextProvider.ts +78 -21
  47. package/src/client/ContextClient.ts +13 -3
  48. package/src/configurator.ts +15 -6
  49. package/src/{errors.ts → errors/FusionContextSearchError.ts} +2 -0
  50. package/src/errors/index.ts +1 -0
  51. package/src/get-context-selector.ts +18 -0
  52. package/src/parse-context-item.ts +39 -0
  53. package/src/query-context-selector.ts +15 -0
  54. package/src/related-context-selector.ts +15 -0
  55. package/src/types.ts +1 -1
  56. package/src/utils/extract-context-id-from-path.ts +30 -0
  57. package/src/utils/resolve-context-from-path.ts +13 -28
  58. package/src/utils/resolve-initial-context.ts +2 -0
  59. package/src/version.ts +1 -1
  60. package/dist/esm/errors.js.map +0 -1
  61. package/dist/esm/selectors.js +0 -58
  62. package/dist/esm/selectors.js.map +0 -1
  63. package/dist/types/selectors.d.ts +0 -19
  64. package/src/selectors.ts +0 -70
package/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # Change Log
2
2
 
3
+ ## 8.0.1
4
+
5
+ ### Patch Changes
6
+
7
+ - 80c3e4a: Internal: resolve `noExplicitAny`/`noConfusingVoidType` Biome warnings in `ContextConfigBuilder` and `ContextModuleConfigurator`'s `resolveInitialContext` callback type, using explanatory `biome-ignore` comments for load-bearing `any`/`void` usages. No public API or behavior change.
8
+ - 80c3e4a: Internal: move `FusionContextSearchError` into `src/errors/FusionContextSearchError.ts` with an `errors/index.ts` barrel, resolving a `filename-convention` lint violation; no public API changes.
9
+ - 80c3e4a: Internal: add a required fusion-lint intent comment explaining an `as unknown as T` cast in `ContextProvider`. No behavior change.
10
+ - 80c3e4a: Resolve fusion-lint warnings: add missing TSDoc (constructors, getters, setters, overload implementations, `@throws`/`@template` tags), add intent comments above control-flow and RxJS/iterator chains, and split multi-export files to satisfy `single-export-per-file`.
11
+ - Split `selectors.ts` into `query-context-selector.ts` and `related-context-selector.ts` (re-exported from `selectors.ts`), and extracted `parseContextItem` into `parse-context-item.ts`.
12
+ - Split `extractContextIdFromPath` out of `utils/resolve-context-from-path.ts` into `utils/extract-context-id-from-path.ts` (re-exported from the original file).
13
+ - Deferred work items are now tracked as GitHub issues #5115–#5122.
14
+
15
+ - 80c3e4a: Internal: renamed 45 source files across these packages to comply with the `filename-convention` lint rule (e.g. `AIConfigurator.ts` → `AiConfigurator.ts`, `BookmarkProvider.actions.ts` → `bookmark-actions.ts`, `errors/app-build-error.ts` → `errors/AppBuildError.ts`, `plugins/api/plugin.ts` → `plugins/api/ApiPlugin.ts`, `errors.ts` → `UnsupportedApiVersion.ts`, etc.). Also added `enable-signalr.ts` to the `filename-convention` exclude list since the suggested rename would incorrectly split the "SignalR" brand name. No public API changes.
16
+ - 80c3e4a: Internal: added missing intent comments ahead of non-obvious control flow, RxJS `.pipe()` chains, iterator calls, and multi-source object merges to comply with the `require-intent-comment` and `require-tsdoc` lint rules. Also removed dead duplicate files left over from an earlier refactor in `navigation` (`events.ts`, `navigated-event.ts`, `history.flows.ts` — all fully superseded by their split replacements) and renamed `bookmarks/schemas.ts` to `bookmarks/bookmark.schemas.ts` in `services` to match the `*.schemas.ts` filename convention. No public API changes.
17
+
3
18
  ## 8.0.0
4
19
 
5
20
  ### Major Changes
@@ -21,7 +21,7 @@
21
21
  * - The builder pattern allows chaining configuration methods for clarity and convenience.
22
22
  * - The `requireInstance` method enables asynchronous retrieval of module instances by name.
23
23
  *
24
- * @todo - this should extend the BaseConfigBuilder
24
+ * @todo(#5120) - this should extend the BaseConfigBuilder
25
25
  *
26
26
  * @see ContextModuleConfig
27
27
  * @see ModuleInitializerArgs
@@ -29,10 +29,20 @@
29
29
  export class ContextConfigBuilder {
30
30
  config;
31
31
  #init;
32
+ /**
33
+ * Creates a new `ContextConfigBuilder`.
34
+ * @param init - Module initializer arguments used to resolve module instances.
35
+ * @param config - The partial context module config to build upon.
36
+ */
32
37
  constructor(init, config = {}) {
33
38
  this.config = config;
34
39
  this.#init = init;
35
40
  }
41
+ /**
42
+ * Requires a module instance by key or name.
43
+ * @param module - The key or name of the module to resolve.
44
+ * @returns A promise that resolves to the requested module instance.
45
+ */
36
46
  requireInstance(module) {
37
47
  return this.#init.requireInstance(module);
38
48
  }
@@ -124,7 +134,7 @@ export class ContextConfigBuilder {
124
134
  * @param expire - Optional. The expiration time (in milliseconds) for cached query results. Defaults to 1 minute.
125
135
  */
126
136
  setContextClient(client, expire = 1 * 60 * 1000) {
127
- this.config.client = {
137
+ const clientConfig = {
128
138
  get: typeof client.get === 'function'
129
139
  ? {
130
140
  key: ({ id }) => id,
@@ -136,7 +146,7 @@ export class ContextConfigBuilder {
136
146
  : client.get,
137
147
  query: typeof client.query === 'function'
138
148
  ? {
139
- // TODO - might cast to checksum
149
+ // TODO(#5118) - might cast to checksum
140
150
  key: (args) => JSON.stringify(args),
141
151
  client: {
142
152
  fn: client.query,
@@ -145,12 +155,13 @@ export class ContextConfigBuilder {
145
155
  }
146
156
  : client.query,
147
157
  };
158
+ this.config.client = clientConfig;
159
+ // only override the related-context client config if one was provided
148
160
  if (client.related) {
149
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
150
- this.config.client.related =
161
+ clientConfig.related =
151
162
  typeof client.related === 'function'
152
163
  ? {
153
- // TODO - might cast to checksum
164
+ // TODO(#5118) - might cast to checksum
154
165
  key: (args) => JSON.stringify(args),
155
166
  client: {
156
167
  fn: client.related,
@@ -1 +1 @@
1
- {"version":3,"file":"ContextConfigBuilder.js","sourceRoot":"","sources":["../../src/ContextConfigBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContextConfigBuilder.js","sourceRoot":"","sources":["../../src/ContextConfigBuilder.ts"],"names":[],"mappings":"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"}
@@ -44,29 +44,59 @@ export class ContextProvider extends BaseModuleProvider {
44
44
  #contextFilter;
45
45
  #contextParameterFn;
46
46
  #contextQueue = new Subject();
47
+ /**
48
+ * The underlying context client used to resolve and hold the current context item.
49
+ * @returns The internal {@link ContextClient} instance.
50
+ */
47
51
  get contextClient() {
48
52
  return this.#contextClient;
49
53
  }
54
+ /**
55
+ * The query client used to search for context items.
56
+ * @returns The internal `Query` instance used by {@link queryContext}.
57
+ */
50
58
  get queryClient() {
51
59
  return this.#contextQuery;
52
60
  }
61
+ /**
62
+ * Observable stream emitting the current context item.
63
+ * @returns Observable that emits the current `ContextItem`, `null`, or `undefined`.
64
+ */
53
65
  get currentContext$() {
54
66
  return this.#contextClient.currentContext$;
55
67
  }
68
+ /**
69
+ * Snapshot of the current context item.
70
+ * @returns The current `ContextItem`, or `null`/`undefined` if not set.
71
+ */
56
72
  get currentContext() {
57
73
  return this.#contextClient.currentContext;
58
74
  }
59
- /** @deprecated do not use, will be removed */
75
+ /**
76
+ * Sets the current context item.
77
+ * @deprecated do not use, will be removed
78
+ * @param context - The context item to set as current. Must not be `undefined`.
79
+ * @throws Error if `context` is `undefined`.
80
+ */
60
81
  set currentContext(context) {
61
82
  console.warn('@deprecated', 'ContextProvider.currentContext', 'use setCurrentContextById|setCurrentContext|clearCurrentContext');
83
+ // undefined is reserved to mean "not yet initialized", so it cannot be set explicitly
62
84
  if (context === undefined) {
63
85
  throw Error('not allowed to set current context as undefined undefined!');
64
86
  }
65
87
  this.setCurrentContextAsync(context);
66
88
  }
89
+ /**
90
+ * Creates a new instance of `ContextProvider`.
91
+ * @param args - Constructor arguments.
92
+ * @param args.config - The context module configuration.
93
+ * @param args.event - Optional event module instance for dispatching context change events.
94
+ * @param args.parentContext - Optional parent context provider. Deprecated, use {@link connectParentContext}.
95
+ */
67
96
  constructor(args) {
68
97
  const { config, event } = args;
69
98
  super({ version, config });
99
+ // warn about deprecated parentContext constructor arg
70
100
  if (args.parentContext) {
71
101
  console.warn('@deprecated', 'parentContext as arg is deprecated, use ContextProvider.connectParentContext');
72
102
  }
@@ -75,15 +105,18 @@ export class ContextProvider extends BaseModuleProvider {
75
105
  if (config.resolveContext) {
76
106
  this.resolveContext = config.resolveContext?.bind(this);
77
107
  }
108
+ // override validateContext if configured
78
109
  if (config.validateContext) {
79
110
  this.validateContext = config.validateContext?.bind(this);
80
111
  }
112
+ // override extractContextIdFromPath if configured
81
113
  if (config.extractContextIdFromPath) {
82
- // @ts-ignore
114
+ // @ts-expect-error
83
115
  this.extractContextIdFromPath = config.extractContextIdFromPath;
84
116
  }
117
+ // override generatePathFromContext if configured
85
118
  if (config.generatePathFromContext) {
86
- // @ts-ignore
119
+ // @ts-expect-error
87
120
  this.generatePathFromContext = config.generatePathFromContext;
88
121
  }
89
122
  this.#contextType = config.contextType;
@@ -91,6 +124,7 @@ export class ContextProvider extends BaseModuleProvider {
91
124
  // create clients
92
125
  this.#contextClient = new ContextClient(config.client.get);
93
126
  this.#contextQuery = new Query(config.client.query);
127
+ // only create the related-context query when the config provides one
94
128
  if (config.client.related) {
95
129
  this.#contextRelated = new Query(config.client.related);
96
130
  }
@@ -107,9 +141,8 @@ export class ContextProvider extends BaseModuleProvider {
107
141
  this.#subscriptions.add(
108
142
  // observe current context changes
109
143
  this.currentContext$
110
- .pipe(
111
- // emit previous and next context
112
- pairwise())
144
+ // emit previous and next context together for change comparisons
145
+ .pipe(pairwise())
113
146
  .subscribe(([previous, next]) => {
114
147
  this.#event?.dispatchEvent('onCurrentContextChanged', {
115
148
  source: this,
@@ -153,11 +186,12 @@ export class ContextProvider extends BaseModuleProvider {
153
186
  * @returns A `Subscription` object representing the connection to the parent context.
154
187
  */
155
188
  connectParentContext(provider, opt) {
189
+ // build a stream of validated context changes from the parent provider
156
190
  const parentContext$ = provider.currentContext$.pipe(
157
191
  // do not set context if parent has not initialized
158
192
  filter((x) => x !== undefined), filter((next, index) => {
159
193
  // skip first item if opt.skipFirst is true
160
- // TODO: this is a bit hacky, should be handled in a better way
194
+ // TODO(#5121): this is a bit hacky, should be handled in a better way
161
195
  if (opt?.skipFirst && index <= 1) {
162
196
  console.debug('ContextProvider::connectParentContext', 'skipping first item', next);
163
197
  return false;
@@ -165,8 +199,8 @@ export class ContextProvider extends BaseModuleProvider {
165
199
  // only set context if it has changed
166
200
  return this.currentContext?.id !== next?.id;
167
201
  }), switchMap(async (next) => {
202
+ // if parent context is null, just return
168
203
  if (!next) {
169
- // if parent context is null, just return
170
204
  return { next };
171
205
  }
172
206
  // notify event observers that parent context is about to change and await for cancelation
@@ -180,14 +214,16 @@ export class ContextProvider extends BaseModuleProvider {
180
214
  // filter out canceled context changes
181
215
  filter((x) => !x.canceled), switchMap(({ next }) => {
182
216
  // set current context with validation and resolution
183
- return this.setCurrentContext(next, {
217
+ return (this.setCurrentContext(next, {
184
218
  validate: true,
185
219
  resolve: true,
186
- }).pipe(catchError((err) => {
220
+ })
221
+ // swallow errors so a failed context change doesn't break the parent subscription
222
+ .pipe(catchError((err) => {
187
223
  console.warn('ContextProvider::onParentContextChanged', 'setCurrentContext', err);
188
224
  // do not emit any value if an error occurs
189
225
  return EMPTY;
190
- }));
226
+ })));
191
227
  }), catchError((err) => {
192
228
  console.warn('ContextProvider::onParentContextChanged', 'unhandled exception', err);
193
229
  // do not emit any value if an error occurs
@@ -217,6 +253,7 @@ export class ContextProvider extends BaseModuleProvider {
217
253
  this.#contextClient
218
254
  // resolve context item by id
219
255
  .resolveContext(id)
256
+ // filter out invalid items and set as current context
220
257
  .pipe(
221
258
  // filter out invalid context items
222
259
  filter((item) => !!item),
@@ -256,12 +293,18 @@ export class ContextProvider extends BaseModuleProvider {
256
293
  * If the observable is subscribe, unsubscribing __WILL__ abort the task and remove it from queue
257
294
  *
258
295
  * @param context context item which would be queue to set as current
296
+ * @param opt Optional settings.
297
+ * @param opt.validate Whether to validate the context item before setting it.
298
+ * @param opt.resolve Whether to attempt to resolve the context item if validation fails.
299
+ * @template T The type of the context item, which extends `ContextItem<Record<string, unknown>>` or can be `null`.
300
+ * @returns An observable that emits the context item once the queued task completes.
259
301
  */
260
302
  setCurrentContext(context, opt) {
261
303
  // signal for aborting the queue entry
262
304
  const abort$ = new Subject();
263
305
  // wrapper for returning an observable to the caller
264
306
  const subject$ = new Subject();
307
+ // run the actual context-setting logic and relay results/errors to the caller's subject
265
308
  const task$ = this._setCurrentContext(context, opt).pipe(
266
309
  // send context item which was set to the caller
267
310
  tap((x) => subject$.next(x)),
@@ -278,6 +321,7 @@ export class ContextProvider extends BaseModuleProvider {
278
321
  }));
279
322
  // add task to internal queue
280
323
  this.#contextQueue.next(task$);
324
+ // tear down the queued task if the caller unsubscribes
281
325
  return subject$.pipe(
282
326
  // if caller subscribes, unsubscribe should abort queue entry
283
327
  finalize(() => abort$.next(true)));
@@ -311,7 +355,7 @@ export class ContextProvider extends BaseModuleProvider {
311
355
  * - Emit the context and complete the observable.
312
356
  *
313
357
  * @protected
314
- * @typeParam T - The type of the context item, which extends `ContextItem<Record<string, unknown>>` or can be `null`.
358
+ * @template T - The type of the context item, which extends `ContextItem<Record<string, unknown>>` or can be `null`.
315
359
  * @param context - The new context to set.
316
360
  * @param opt - Optional settings:
317
361
  * - `validate`: Whether to validate the context before setting.
@@ -342,7 +386,10 @@ export class ContextProvider extends BaseModuleProvider {
342
386
  // emit error and complete
343
387
  return subscriber.error(Error('failed to validate provided context'));
344
388
  }
389
+ // if resolve is enabled, attempt to resolve the invalid context before setting it
345
390
  if (opt.resolve) {
391
+ // the recursive `_setCurrentContext` call below is re-entered with the already
392
+ // validated/resolved context, so the generic `T` cast is safe here.
346
393
  return of(context)
347
394
  .pipe(
348
395
  // notify event observers that context is about to get resolved
@@ -360,7 +407,9 @@ export class ContextProvider extends BaseModuleProvider {
360
407
  return context;
361
408
  }),
362
409
  // resolve context
363
- switchMap((context) => this.resolveContext(context).pipe(map((resolved) => ({
410
+ switchMap((context) =>
411
+ // Pair the resolved context alongside the original for downstream consumers.
412
+ this.resolveContext(context).pipe(map((resolved) => ({
364
413
  context,
365
414
  resolved,
366
415
  })))),
@@ -413,7 +462,7 @@ export class ContextProvider extends BaseModuleProvider {
413
462
  *
414
463
  * @see {@link setCurrentContext} for more details.
415
464
  *
416
- * @typeParam T - The type of the context item, which extends `ContextItem<Record<string, unknown>>` or can be `null`.
465
+ * @template T - The type of the context item, which extends `ContextItem<Record<string, unknown>>` or can be `null`.
417
466
  * @param context - The context item to set as the current context, or `null` to clear it.
418
467
  * @param opt - Optional settings for context handling.
419
468
  * @param opt.validate - If `true`, validates the context before setting it.
@@ -433,6 +482,7 @@ export class ContextProvider extends BaseModuleProvider {
433
482
  *
434
483
  * @param search - The search string to filter context items.
435
484
  * @returns An Observable that emits an array of `ContextItem` objects matching the search criteria.
485
+ * @throws Re-throws the underlying cause of a `QueryClientError`, otherwise re-throws the original error.
436
486
  */
437
487
  queryContext(search) {
438
488
  const query$ = this.queryClient
@@ -442,6 +492,7 @@ export class ContextProvider extends BaseModuleProvider {
442
492
  search,
443
493
  type: this.#contextType,
444
494
  }))
495
+ // unwrap query-client errors and expose the underlying cause to subscribers
445
496
  .pipe(catchError((err) => {
446
497
  // if query client throws a QueryClientError, extract the cause and throw it
447
498
  if (err.name === 'QueryClientError') {
@@ -470,8 +521,10 @@ export class ContextProvider extends BaseModuleProvider {
470
521
  * @returns `true` if the context type is not set or if the item's type ID matches one of the allowed types (case-insensitive); otherwise, `false`.
471
522
  */
472
523
  validateContext(item) {
524
+ // no context type configured means every context item is considered valid
473
525
  if (!this.#contextType)
474
526
  return true;
527
+ // normalize allowed types for a case-insensitive comparison
475
528
  return this.#contextType.map((x) => x.toLowerCase()).includes(item.type.id.toLowerCase());
476
529
  }
477
530
  /**
@@ -492,7 +545,9 @@ export class ContextProvider extends BaseModuleProvider {
492
545
  // request related context items for the given context item with the same context type which the provider is configured with
493
546
  return this.relatedContexts({ item, filter: { type: this.#contextType } }).pipe(
494
547
  // filter out invalid context items
495
- map((x) => x.filter((item) => this.validateContext(item))), map((values) => {
548
+ map((x) =>
549
+ // keep only context items that validate against the provider's context type
550
+ x.filter((item) => this.validateContext(item))), map((values) => {
496
551
  // related context should be resolved to a single context item
497
552
  const value = values.shift();
498
553
  // if no value is found, throw an error
@@ -536,6 +591,7 @@ export class ContextProvider extends BaseModuleProvider {
536
591
  }
537
592
  // request related context items
538
593
  return this.#contextRelated.query(args).pipe(map(({ value }) => value), catchError((err) => {
594
+ // unwrap the underlying cause so callers see the original error
539
595
  if (err.cause) {
540
596
  throw err.cause;
541
597
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ContextProvider.js","sourceRoot":"","sources":["../../src/ContextProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContextProvider.js","sourceRoot":"","sources":["../../src/ContextProvider.ts"],"names":[],"mappings":"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"}
@@ -18,7 +18,7 @@ import { Query } from '@equinor/fusion-query';
18
18
  * @template ContextItem The type of the context item managed by the client.
19
19
  * @extends Observable<ContextItem | null | undefined>
20
20
  *
21
- * @todo - should this have `undefined` as a valid value?
21
+ * @todo(#5116) - should this have `undefined` as a valid value?
22
22
  *
23
23
  * @example
24
24
  * ```typescript
@@ -59,6 +59,10 @@ export class ContextClient extends Observable {
59
59
  get client() {
60
60
  return this.#client;
61
61
  }
62
+ /**
63
+ * Creates a new `ContextClient`.
64
+ * @param options - Query constructor options used to fetch a `ContextItem` by its ID.
65
+ */
62
66
  constructor(options) {
63
67
  super((observer) => this.#currentContext$.subscribe(observer));
64
68
  this.#client = new Query(options);
@@ -73,10 +77,11 @@ export class ContextClient extends Observable {
73
77
  * @param idOrItem - The context identifier (string), a `ContextItem`, or `null`. If omitted, the current context may be cleared.
74
78
  */
75
79
  setCurrentContext(idOrItem) {
80
+ // resolve string identifiers to a context item before setting
76
81
  if (typeof idOrItem === 'string') {
77
- // TODO - compare context
82
+ // TODO(#5117) - compare context
83
+ // TODO(#5117) should this catch error?
78
84
  this.resolveContext(idOrItem)
79
- // TODO should this catch error?
80
85
  .pipe(catchError(() => EMPTY))
81
86
  .subscribe((value) => this.setCurrentContext(value));
82
87
  /** only add context if not match */
@@ -93,9 +98,11 @@ export class ContextClient extends Observable {
93
98
  * @throws Rethrows the underlying error cause if present, otherwise throws the original error.
94
99
  */
95
100
  resolveContext(id) {
101
+ // unwrap the query result into the resolved context item
96
102
  return this.#client.query({ id }).pipe(map((x) => x.value),
97
103
  // unwrap error
98
104
  catchError((err) => {
105
+ // unwrap the underlying cause so callers see the original error
99
106
  if (err.cause) {
100
107
  throw err.cause;
101
108
  }
@@ -115,6 +122,9 @@ export class ContextClient extends Observable {
115
122
  const fn = opt?.awaitResolve ? lastValueFrom : firstValueFrom;
116
123
  return fn(this.resolveContext(id));
117
124
  }
125
+ /**
126
+ * Disposes of the client, completing the internal current-context subject.
127
+ */
118
128
  dispose() {
119
129
  this.#currentContext$.complete();
120
130
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ContextClient.js","sourceRoot":"","sources":["../../../src/client/ContextClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,KAAK,MAAM,iBAAiB,CAAC;AAEpC,OAAO,EAAE,KAAK,EAAyB,MAAM,uBAAuB,CAAC;AAMrE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,OAAO,aAAc,SAAQ,UAA0C;IAC3E,OAAO,CAAqC;IAC5C,uEAAuE;IACvE,gBAAgB,CAAkD;IAElE;;;;OAIG;IACH,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;IACrC,CAAC;IAED;;;;;;;;OAQG;IACH,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;IAC9C,CAAC;IAED;;;;OAIG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,YAAY,OAA4D;QACtE,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,gBAAgB,GAAG,IAAI,eAAe,CAAiC,SAAS,CAAC,CAAC;IACzF,CAAC;IAED;;;;;;;OAOG;IACI,iBAAiB,CAAC,QAAsC;QAC7D,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,yBAAyB;YACzB,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;gBAC3B,gCAAgC;iBAC/B,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;iBAC7B,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;YACvD,oCAAoC;QACtC,CAAC;aAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACI,cAAc,CAAC,EAAU;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CACpC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QACnB,eAAe;QACf,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE;YACjB,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBACd,MAAM,GAAG,CAAC,KAAK,CAAC;YAClB,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACI,mBAAmB,CAAC,EAAU,EAAE,GAA+B;QACpE,MAAM,EAAE,GAAG,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC;QAC9D,OAAO,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC;IAEM,OAAO;QACZ,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;IACnC,CAAC;CACF;AAED,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"ContextClient.js","sourceRoot":"","sources":["../../../src/client/ContextClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AACzF,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,KAAK,MAAM,iBAAiB,CAAC;AAEpC,OAAO,EAAE,KAAK,EAAyB,MAAM,uBAAuB,CAAC;AAMrE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,OAAO,aAAc,SAAQ,UAA0C;IAC3E,OAAO,CAAqC;IAC5C,uEAAuE;IACvE,gBAAgB,CAAkD;IAElE;;;;OAIG;IACH,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;IACrC,CAAC;IAED;;;;;;;;OAQG;IACH,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;IAC9C,CAAC;IAED;;;;OAIG;IACH,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,YAAY,OAA4D;QACtE,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,gBAAgB,GAAG,IAAI,eAAe,CAAiC,SAAS,CAAC,CAAC;IACzF,CAAC;IAED;;;;;;;OAOG;IACI,iBAAiB,CAAC,QAAsC;QAC7D,8DAA8D;QAC9D,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACjC,gCAAgC;YAChC,uCAAuC;YACvC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;iBAC1B,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;iBAC7B,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;YACvD,oCAAoC;QACtC,CAAC;aAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;YACzD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACI,cAAc,CAAC,EAAU;QAC9B,yDAAyD;QACzD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CACpC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;QACnB,eAAe;QACf,UAAU,CAAC,CAAC,GAAG,EAAE,EAAE;YACjB,gEAAgE;YAChE,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;gBACd,MAAM,GAAG,CAAC,KAAK,CAAC;YAClB,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACI,mBAAmB,CAAC,EAAU,EAAE,GAA+B;QACpE,MAAM,EAAE,GAAG,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC;QAC9D,OAAO,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACI,OAAO;QACZ,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;IACnC,CAAC;CACF;AAED,eAAe,aAAa,CAAC"}
@@ -1,4 +1,4 @@
1
- import { getContextSelector, queryContextSelector, relatedContextSelector } from './selectors';
1
+ import { getContextSelector, queryContextSelector, relatedContextSelector, } from './get-context-selector';
2
2
  import { ContextConfigBuilder } from './ContextConfigBuilder';
3
3
  import resolveInitialContext from './utils/resolve-initial-context';
4
4
  /**
@@ -28,10 +28,12 @@ export class ContextModuleConfigurator {
28
28
  * @throws Error if no services module is available.
29
29
  */
30
30
  async _getServiceProvider(init) {
31
+ // prefer the local services module instance if available
31
32
  if (init.hasModule('services')) {
32
33
  return init.requireInstance('services');
33
34
  }
34
35
  const parentServiceModule = init.ref?.services;
36
+ // fall back to the parent module's services instance
35
37
  if (!parentServiceModule) {
36
38
  throw Error('no service services provider configures [ServicesModule]');
37
39
  }
@@ -49,10 +51,12 @@ export class ContextModuleConfigurator {
49
51
  * @returns The fully resolved context module configuration.
50
52
  */
51
53
  async createConfig(init) {
54
+ // run each registered config builder in sequence, merging results into the accumulated config
52
55
  const config = await this.#configBuilders.reduce(async (cur, cb) => {
53
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
56
+ // biome-ignore lint/suspicious/noExplicitAny: builder generics are erased here — `unknown` breaks assignability of the concrete `ContextConfigBuilder` instance passed to consumer callbacks
54
57
  const builder = new ContextConfigBuilder(init, await cur);
55
58
  await Promise.resolve(cb(builder));
59
+ // Merge this builder's config into the accumulator for the next iteration.
56
60
  return Object.assign(cur, builder.config);
57
61
  }, Promise.resolve({}));
58
62
  config.resolveInitialContext ??= resolveInitialContext({
@@ -61,7 +65,7 @@ export class ContextModuleConfigurator {
61
65
  validate: config.extractContextIdFromPath ? () => true : undefined,
62
66
  },
63
67
  });
64
- // TODO - make less lazy
68
+ // TODO(#5119) - make less lazy
65
69
  config.client ??= await (async () => {
66
70
  const apiProvider = await this._getServiceProvider(init);
67
71
  const contextClient = await apiProvider.createContextClient('json$');
@@ -77,7 +81,7 @@ export class ContextModuleConfigurator {
77
81
  client: {
78
82
  fn: (query) => contextClient.query('v1', { query }, { selector: queryContextSelector }),
79
83
  },
80
- // TODO - might cast to checksum
84
+ // TODO(#5118) - might cast to checksum
81
85
  key: (args) => JSON.stringify(args),
82
86
  expire: this.defaultExpireTime,
83
87
  },
@@ -87,7 +91,7 @@ export class ContextModuleConfigurator {
87
91
  return contextClient.related('v1', { id: args.item.id, query: { filter: args.filter } }, { selector: relatedContextSelector });
88
92
  },
89
93
  },
90
- // TODO - might cast to checksum
94
+ // TODO(#5118) - might cast to checksum
91
95
  key: (args) => JSON.stringify(args),
92
96
  expire: this.defaultExpireTime,
93
97
  },
@@ -1 +1 @@
1
- {"version":3,"file":"configurator.js","sourceRoot":"","sources":["../../src/configurator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configurator.js","sourceRoot":"","sources":["../../src/configurator.ts"],"names":[],"mappings":"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"}
@@ -16,12 +16,14 @@ export class FusionContextSearchError extends Error {
16
16
  #details;
17
17
  /**
18
18
  * The title of the error.
19
+ * @returns The error title.
19
20
  */
20
21
  get title() {
21
22
  return this.#details.title;
22
23
  }
23
24
  /**
24
25
  * The description of the error, if available.
26
+ * @returns The error description, or `undefined` if none was provided.
25
27
  */
26
28
  get description() {
27
29
  return this.#details.description;
@@ -37,4 +39,4 @@ export class FusionContextSearchError extends Error {
37
39
  this.name = 'FusionContextSearchError';
38
40
  }
39
41
  }
40
- //# sourceMappingURL=errors.js.map
42
+ //# sourceMappingURL=FusionContextSearchError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FusionContextSearchError.js","sourceRoot":"","sources":["../../../src/errors/FusionContextSearchError.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,wBAAyB,SAAQ,KAAK;IACjD,QAAQ,CAAC;IAET;;;OAGG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACH,YACE,OASC,EACD,OAAsB;QAEtB,KAAK,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACrD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ export * from './FusionContextSearchError';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/errors/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { parseContextItem } from './parse-context-item';
2
+ /**
3
+ * Parse the response from the GetContext API into a context item.
4
+ * @param response The response object containing the context item.
5
+ * @returns A promise that resolves to the context item.
6
+ */
7
+ export const getContextSelector = async (response) => {
8
+ const result = (await response.json());
9
+ return parseContextItem(result);
10
+ };
11
+ // Deliberately re-exported from here to preserve the package's existing selectors entry point
12
+ export { queryContextSelector } from './query-context-selector';
13
+ export { relatedContextSelector } from './related-context-selector';
14
+ //# sourceMappingURL=get-context-selector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-context-selector.js","sourceRoot":"","sources":["../../src/get-context-selector.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EAAE,QAAkB,EAAwB,EAAE;IACnF,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA6B,CAAC;IACnE,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;AAClC,CAAC,CAAC;AAEF,8FAA8F;AAC9F,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC"}