@get-technology-inc/jamf-docs-mcp-server 4.3.6 → 5.0.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.
- package/README.md +3 -3
- package/dist/core/constants/doc-types.d.ts +13 -4
- package/dist/core/constants/doc-types.d.ts.map +1 -1
- package/dist/core/constants/doc-types.js +13 -4
- package/dist/core/constants/doc-types.js.map +1 -1
- package/dist/core/constants/products.d.ts +2 -2
- package/dist/core/constants/products.d.ts.map +1 -1
- package/dist/core/constants/products.js +10 -2
- package/dist/core/constants/products.js.map +1 -1
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +4 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/schemas/index.d.ts.map +1 -1
- package/dist/core/schemas/index.js +16 -4
- package/dist/core/schemas/index.js.map +1 -1
- package/dist/core/services/article-service.d.ts.map +1 -1
- package/dist/core/services/article-service.js +4 -3
- package/dist/core/services/article-service.js.map +1 -1
- package/dist/core/services/cache-key.d.ts +116 -0
- package/dist/core/services/cache-key.d.ts.map +1 -0
- package/dist/core/services/cache-key.js +100 -0
- package/dist/core/services/cache-key.js.map +1 -0
- package/dist/core/services/ft-internal-link.d.ts.map +1 -1
- package/dist/core/services/ft-internal-link.js +4 -6
- package/dist/core/services/ft-internal-link.js.map +1 -1
- package/dist/core/services/glossary.d.ts.map +1 -1
- package/dist/core/services/glossary.js +11 -10
- package/dist/core/services/glossary.js.map +1 -1
- package/dist/core/services/interfaces/cache.d.ts +20 -3
- package/dist/core/services/interfaces/cache.d.ts.map +1 -1
- package/dist/core/services/interfaces/index.d.ts +2 -0
- package/dist/core/services/interfaces/index.d.ts.map +1 -1
- package/dist/core/services/interfaces/index.js +1 -1
- package/dist/core/services/interfaces/index.js.map +1 -1
- package/dist/core/services/maps-registry.d.ts.map +1 -1
- package/dist/core/services/maps-registry.js +2 -1
- package/dist/core/services/maps-registry.js.map +1 -1
- package/dist/core/services/metadata.d.ts.map +1 -1
- package/dist/core/services/metadata.js +8 -7
- package/dist/core/services/metadata.js.map +1 -1
- package/dist/core/services/search-service.d.ts +44 -2
- package/dist/core/services/search-service.d.ts.map +1 -1
- package/dist/core/services/search-service.js +171 -48
- package/dist/core/services/search-service.js.map +1 -1
- package/dist/core/services/toc-service.d.ts +2 -1
- package/dist/core/services/toc-service.d.ts.map +1 -1
- package/dist/core/services/toc-service.js +6 -4
- package/dist/core/services/toc-service.js.map +1 -1
- package/dist/core/services/topic-resolver.d.ts.map +1 -1
- package/dist/core/services/topic-resolver.js +6 -5
- package/dist/core/services/topic-resolver.js.map +1 -1
- package/dist/core/tools/search.d.ts.map +1 -1
- package/dist/core/tools/search.js +11 -2
- package/dist/core/tools/search.js.map +1 -1
- package/dist/core/types.d.ts +0 -1
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js.map +1 -1
- package/dist/transport/http-types.d.ts +1 -1
- package/dist/transport/http-types.d.ts.map +1 -1
- package/dist/transport/http-types.js +12 -9
- package/dist/transport/http-types.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Search service — Fluid Topics powered search
|
|
3
3
|
*/
|
|
4
|
-
import { JAMF_PRODUCTS, JAMF_TOPICS,
|
|
4
|
+
import { JAMF_PRODUCTS, JAMF_TOPICS, DOC_TYPE_LABEL_MAP, DOC_TYPE_PRECEDENCE, LABEL_KEY_DOC_TYPE_MAP, CONTENT_LIMITS, TOKEN_CONFIG, PAGINATION_CONFIG, DEFAULT_LOCALE, } from '../constants.js';
|
|
5
5
|
import { search as ftSearch } from './ft-client.js';
|
|
6
6
|
import { buildDisplayUrl } from './topic-resolver.js';
|
|
7
7
|
import { cleanSnippet } from './content-parser.js';
|
|
8
|
+
import { cacheKey } from './cache-key.js';
|
|
8
9
|
import { getMetaValue, getMetaValues, FT_META } from '../utils/ft-metadata.js';
|
|
9
10
|
import { compareVersions } from '../utils/bundle.js';
|
|
10
11
|
import { estimateTokens, calculatePagination, truncateListByTokens, buildPaginationNote, } from './tokenizer.js';
|
|
@@ -86,9 +87,17 @@ function docTypeFromLabelKeys(labelKeys) {
|
|
|
86
87
|
* Build Fluid Topics search filters from search params.
|
|
87
88
|
*
|
|
88
89
|
* - product → `zoominmetadata` filter using searchLabel
|
|
89
|
-
* - docType → `
|
|
90
|
+
* - docType → `zoominmetadata` filter using DOC_TYPE_LABEL_MAP
|
|
90
91
|
* - version → `version` filter (only when a specific version is requested)
|
|
91
92
|
*
|
|
93
|
+
* Both `zoominmetadata` filters are pushed as *separate* entries. Fluid Topics
|
|
94
|
+
* intersects filter objects and unions the values inside one, measured against
|
|
95
|
+
* the live API on a zh-TW corpus: `product-protect` alone matched 1182 topics
|
|
96
|
+
* and `content-releasenotes` alone 940, two filter objects matched 387 (the
|
|
97
|
+
* intersection) and one object holding both values matched 1735 (the union,
|
|
98
|
+
* exactly 1182 + 940 − 387). Merging them into a single entry would therefore
|
|
99
|
+
* widen a product+docType search instead of narrowing it.
|
|
100
|
+
*
|
|
92
101
|
* NOTE: we intentionally do NOT add `latestVersion=yes` when no version is given.
|
|
93
102
|
* Jamf migrated all non-Pro products (School, Connect, Protect, Now, …) to an
|
|
94
103
|
* unversioned documentation model with no `latestVersion` metadata, so that filter
|
|
@@ -106,13 +115,31 @@ export function buildSearchFilters(params) {
|
|
|
106
115
|
values: [productDef.searchLabel],
|
|
107
116
|
});
|
|
108
117
|
}
|
|
109
|
-
// Document type filter
|
|
118
|
+
// Document type filter.
|
|
119
|
+
//
|
|
120
|
+
// Filters on the `content-*` label rather than `jamf:contentType`, because
|
|
121
|
+
// the latter's *values* are translated per locale while its key is not:
|
|
122
|
+
// `jamf:contentType = 'Release Notes'` matched 1323 topics under en-US and 0
|
|
123
|
+
// under zh-TW, where the same topics carry '版本資訊' (940) — and ja-JP
|
|
124
|
+
// 'リリースノート' (1207), de-DE 'Versionshinweise', and so on for every
|
|
125
|
+
// locale this server supports. Sending the English string therefore returned
|
|
126
|
+
// an empty upstream result for seven of the eight supported locales, and
|
|
127
|
+
// because that emptiness arrives from the API, the client-side relaxation in
|
|
128
|
+
// {@link applyFiltersWithFallback} has nothing left to relax.
|
|
129
|
+
//
|
|
130
|
+
// The `content-*` vocabulary is locale-invariant (`content-releasenotes`:
|
|
131
|
+
// 1323 en-US / 940 zh-TW / 1207 ja-JP / 1207 de-DE) and is already what the
|
|
132
|
+
// docType post-filter matches on, so both ends now agree on one vocabulary.
|
|
110
133
|
if (params.docType !== undefined) {
|
|
111
|
-
|
|
112
|
-
|
|
134
|
+
// Widened deliberately: DOC_TYPE_LABEL_MAP is total over DocTypeId, so the
|
|
135
|
+
// type says this cannot miss — but params reach here from a JSON-RPC
|
|
136
|
+
// payload, and a docType outside the enum would otherwise push
|
|
137
|
+
// `values: [undefined]` upstream. Same idiom as the docType post-filter.
|
|
138
|
+
const labelKey = DOC_TYPE_LABEL_MAP[params.docType];
|
|
139
|
+
if (labelKey !== undefined) {
|
|
113
140
|
filters.push({
|
|
114
|
-
key: FT_META.
|
|
115
|
-
values: [
|
|
141
|
+
key: FT_META.ZOOMIN_METADATA,
|
|
142
|
+
values: [labelKey],
|
|
116
143
|
});
|
|
117
144
|
}
|
|
118
145
|
}
|
|
@@ -385,7 +412,23 @@ function truncateSearchResults(paginatedResults, maxTokens) {
|
|
|
385
412
|
return { finalResults, finalTokenCount, truncated: true, truncatedContent };
|
|
386
413
|
}
|
|
387
414
|
// ─── Convert flat SearchResult to SearchResultWithMeta ─────────
|
|
388
|
-
|
|
415
|
+
/**
|
|
416
|
+
* `matchedTopics` is computed unconditionally, not only when the caller asked
|
|
417
|
+
* for a topic filter.
|
|
418
|
+
*
|
|
419
|
+
* It used to be gated on `params.topic !== undefined`, which made the cached
|
|
420
|
+
* value a function of something that is not in — and cannot be in — the FT
|
|
421
|
+
* request the cache is keyed on. A topic-less search wrote entries carrying
|
|
422
|
+
* `matchedTopics: []`, and the next search for the same query WITH a topic hit
|
|
423
|
+
* that entry, found nothing matching, and silently relaxed the topic filter it
|
|
424
|
+
* had never actually run. Same question, different answer depending on cache
|
|
425
|
+
* state; verified against the live path before this change.
|
|
426
|
+
*
|
|
427
|
+
* Computing it always costs 284 substring checks per result on a cache miss —
|
|
428
|
+
* 40 topics' keyword lists, and only on the write path — which is the cheaper
|
|
429
|
+
* half of the trade by a wide margin.
|
|
430
|
+
*/
|
|
431
|
+
function toSearchResultWithMeta(result, ftLabelKeys) {
|
|
389
432
|
// Derive bundleSlug from the product display name (extracted from
|
|
390
433
|
// zoominmetadata). Do NOT use result.mapId — FT API mapIds are
|
|
391
434
|
// opaque hashes (e.g. 'uRhiWJWbjHyL1vegaHmj8g'), not readable
|
|
@@ -400,9 +443,7 @@ function toSearchResultWithMeta(result, needsTopicMatching, ftLabelKeys) {
|
|
|
400
443
|
return {
|
|
401
444
|
result,
|
|
402
445
|
bundleSlug,
|
|
403
|
-
matchedTopics:
|
|
404
|
-
? matchTopics(result.title, result.snippet)
|
|
405
|
-
: [],
|
|
446
|
+
matchedTopics: matchTopics(result.title, result.snippet),
|
|
406
447
|
labelKeys,
|
|
407
448
|
};
|
|
408
449
|
}
|
|
@@ -504,60 +545,142 @@ export async function searchDocumentation(ctx, params) {
|
|
|
504
545
|
/**
|
|
505
546
|
* Build a deterministic cache key for FT search results.
|
|
506
547
|
*
|
|
507
|
-
*
|
|
508
|
-
*
|
|
548
|
+
* Keyed off the *actual request object* rather than a hand-assembled string,
|
|
549
|
+
* which buys two properties the previous projection did not have.
|
|
550
|
+
*
|
|
551
|
+
* **Injective.** The old key was `ft-search:{locale}:{query}:{k}={v}|{k}={v}`
|
|
552
|
+
* with none of `: | = ,` escaped, while both `query` and `version` are
|
|
553
|
+
* caller-supplied free text. Searching `{product: 'jamf-pro', version: '11.5'}`
|
|
554
|
+
* and `{version: '11.5|zoominmetadata=product-pro'}` produced the byte-identical
|
|
555
|
+
* key `ft-search:en-US:FileVault:version=11.5|zoominmetadata=product-pro` while
|
|
556
|
+
* sending different filters upstream, so whichever ran first served its results
|
|
557
|
+
* to the other for the whole TTL. One `FileCache` is shared per process
|
|
558
|
+
* (src/index.ts), so under `--transport http` that crosses clients. JSON escapes
|
|
559
|
+
* the delimiters, so no input can forge a neighbouring key.
|
|
560
|
+
*
|
|
561
|
+
* **Total.** Every field of the request is in the key — `sortId` included — so
|
|
562
|
+
* a relevance-sorted and a last_update-sorted query cannot come to share one
|
|
563
|
+
* entry the moment sort becomes configurable.
|
|
564
|
+
*
|
|
565
|
+
* That holds only while the cached value is a function of this request and
|
|
566
|
+
* nothing else. `params.topic` is deliberately NOT here: it selects a
|
|
567
|
+
* client-side post-filter, and `matchedTopics` is computed unconditionally
|
|
568
|
+
* (see {@link toSearchResultWithMeta}) precisely so the stored value does not
|
|
569
|
+
* vary with it. It used to, and a topic-less search then served its entry to a
|
|
570
|
+
* topic search that silently relaxed the filter it never ran. Anything added to
|
|
571
|
+
* the cached value that comes from `SearchParams` rather than from this request
|
|
572
|
+
* reopens that hole and belongs in the key instead.
|
|
573
|
+
*
|
|
574
|
+
* `paging` is part of the keyed object but constant in practice: this layer
|
|
575
|
+
* always fetches one over-fetched page and paginates client-side.
|
|
509
576
|
*/
|
|
510
|
-
function buildSearchCacheKey(
|
|
511
|
-
|
|
512
|
-
.
|
|
513
|
-
|
|
514
|
-
.
|
|
515
|
-
|
|
577
|
+
export function buildSearchCacheKey(request) {
|
|
578
|
+
return cacheKey('ft-search', {
|
|
579
|
+
query: request.query,
|
|
580
|
+
// `?? null` rather than passing `undefined` through: the space declares
|
|
581
|
+
// these nullable so that "absent" is one value, not two. `cacheKey` drops
|
|
582
|
+
// undefined parts, so leaving them undefined would key an omitted locale
|
|
583
|
+
// identically to a present one only by accident of that dropping rule.
|
|
584
|
+
contentLocale: request.contentLocale ?? null,
|
|
585
|
+
sortId: request.sortId ?? null,
|
|
586
|
+
perPage: request.paging?.perPage ?? null,
|
|
587
|
+
page: request.paging?.page ?? null,
|
|
588
|
+
// Sorted into a canonical form here rather than in `cacheKey`, which must
|
|
589
|
+
// not reorder arrays: a filter list is a set upstream, but `['a','b']` and
|
|
590
|
+
// `['b','a']` are different data in general, and a helper that collapsed
|
|
591
|
+
// them would be the very non-injectivity this replaces. Compared by
|
|
592
|
+
// UTF-16 code unit on the serialized tuple, not `localeCompare` — a total
|
|
593
|
+
// order and it does not vary with the runtime's ICU locale.
|
|
594
|
+
filters: [...(request.filters ?? [])]
|
|
595
|
+
.map(f => [f.key, [...f.values].sort()])
|
|
596
|
+
.sort((a, b) => {
|
|
597
|
+
const left = JSON.stringify(a);
|
|
598
|
+
const right = JSON.stringify(b);
|
|
599
|
+
if (left < right) {
|
|
600
|
+
return -1;
|
|
601
|
+
}
|
|
602
|
+
return left > right ? 1 : 0;
|
|
603
|
+
}),
|
|
604
|
+
});
|
|
516
605
|
}
|
|
517
606
|
async function resolveSearchResults(ctx, params, log) {
|
|
518
|
-
const needsTopicMatching = params.topic !== undefined;
|
|
519
607
|
// 1. Try SearchProvider first (custom backend injection — no caching)
|
|
520
608
|
if (ctx.searchProvider !== undefined) {
|
|
521
609
|
const provided = await ctx.searchProvider.search(params);
|
|
522
610
|
if (provided !== null) {
|
|
523
611
|
return {
|
|
524
|
-
results: provided.map(r => toSearchResultWithMeta(r
|
|
612
|
+
results: provided.map(r => toSearchResultWithMeta(r)),
|
|
525
613
|
fromProvider: true,
|
|
526
614
|
};
|
|
527
615
|
}
|
|
528
616
|
}
|
|
529
617
|
// 2. Build FT search request
|
|
530
618
|
const locale = params.language ?? DEFAULT_LOCALE;
|
|
531
|
-
const filters = buildSearchFilters(params);
|
|
532
|
-
const cacheKey = buildSearchCacheKey(params.query, filters, locale);
|
|
533
|
-
// 3. Check cache before hitting the FT API
|
|
534
|
-
const cached = await ctx.cache.get(cacheKey);
|
|
535
|
-
if (cached !== null) {
|
|
536
|
-
log.debug(`Search cache hit: key="${cacheKey}", ${cached.length} results`);
|
|
537
|
-
return { results: cached, fromProvider: false };
|
|
538
|
-
}
|
|
539
619
|
const perPage = Math.min(CONTENT_LIMITS.MAX_SEARCH_RESULTS, CONTENT_LIMITS.FILTER_OVERFETCH_CAP);
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
620
|
+
/** One cached round-trip to FT for a given filter set. */
|
|
621
|
+
const fetchFiltered = async (filters) => {
|
|
622
|
+
const request = {
|
|
623
|
+
query: params.query,
|
|
624
|
+
contentLocale: locale,
|
|
625
|
+
// Sent explicitly even though it matches Fluid Topics' default, so the
|
|
626
|
+
// ordering this server promises its callers is a stated request
|
|
627
|
+
// parameter rather than an undocumented upstream default that could
|
|
628
|
+
// change under us. Verified identical to omitting it, and clearly
|
|
629
|
+
// distinct from `last_update`, against the live corpus.
|
|
630
|
+
sortId: 'relevance',
|
|
631
|
+
paging: { perPage, page: 1 },
|
|
632
|
+
filters,
|
|
633
|
+
};
|
|
634
|
+
const key = buildSearchCacheKey(request);
|
|
635
|
+
const cached = await ctx.cache.get(key);
|
|
636
|
+
if (cached !== null) {
|
|
637
|
+
log.debug(`Search cache hit: key="${key}", ${cached.length} results`);
|
|
638
|
+
return cached;
|
|
639
|
+
}
|
|
640
|
+
log.debug(`FT search: query="${params.query}", product=${params.product ?? 'all'}, ` +
|
|
641
|
+
`locale=${locale}, filters=${JSON.stringify(filters)}`);
|
|
642
|
+
const ftResponse = await ftSearch(request);
|
|
643
|
+
// Collapse version snapshots to the latest per topic, then transform.
|
|
644
|
+
// Deduping before transform avoids running cleanSnippet etc. over every
|
|
645
|
+
// Jamf Pro version variant (a broad query can return ~15 snapshots/topic).
|
|
646
|
+
const out = [];
|
|
647
|
+
for (const entry of dedupeToLatestVersions(ftResponse.results)) {
|
|
648
|
+
const searchResult = transformFtSearchResult(entry);
|
|
649
|
+
if (searchResult.url !== '') {
|
|
650
|
+
out.push(toSearchResultWithMeta(searchResult, docTypeLabelKeys(entryMetadata(entry))));
|
|
651
|
+
}
|
|
556
652
|
}
|
|
653
|
+
// Cache the raw results (before client-side filtering)
|
|
654
|
+
await ctx.cache.set(key, out, ctx.config.cacheTtl.search);
|
|
655
|
+
log.debug(`FT search returned ${out.length} results (cached)`);
|
|
656
|
+
return out;
|
|
657
|
+
};
|
|
658
|
+
let results = await fetchFiltered(buildSearchFilters(params));
|
|
659
|
+
// 3. Re-query without docType when narrowing by it emptied the result set
|
|
660
|
+
// upstream.
|
|
661
|
+
//
|
|
662
|
+
// docType is now a `content-*` filter on the API rather than a value of
|
|
663
|
+
// the much broader `jamf:contentType`, so a product+docType pair whose
|
|
664
|
+
// two labels never co-occur returns nothing at all instead of returning
|
|
665
|
+
// the product's topics for the post-filter to narrow. Measured on the
|
|
666
|
+
// live corpus for query "enrollment": `content-solutionguide` matches 40
|
|
667
|
+
// topics and `product-protect` 35, but their intersection is 0 — Jamf
|
|
668
|
+
// publishes no Jamf Protect solution guides.
|
|
669
|
+
//
|
|
670
|
+
// {@link applyFiltersWithFallback} is a *client-side* relaxation: it can
|
|
671
|
+
// only re-filter what was fetched, so an empty upstream response leaves it
|
|
672
|
+
// nothing to relax and the caller reports a bare "no results" that does not
|
|
673
|
+
// even name docType as the cause. Dropping the filter here restores the
|
|
674
|
+
// fetch the relaxation expects — the post-filter then empties it again and
|
|
675
|
+
// the existing relaxation reports `removed: ['docType']`, which is what the
|
|
676
|
+
// user needs to see.
|
|
677
|
+
if (results.length === 0 && params.docType !== undefined) {
|
|
678
|
+
log.debug(`Empty upstream result with docType="${params.docType}"; re-querying without it`);
|
|
679
|
+
results = await fetchFiltered(buildSearchFilters({
|
|
680
|
+
product: params.product,
|
|
681
|
+
version: params.version,
|
|
682
|
+
}));
|
|
557
683
|
}
|
|
558
|
-
// 5. Cache the raw results (before client-side filtering)
|
|
559
|
-
await ctx.cache.set(cacheKey, results, ctx.config.cacheTtl.search);
|
|
560
|
-
log.debug(`FT search returned ${results.length} results (cached)`);
|
|
561
684
|
return { results, fromProvider: false };
|
|
562
685
|
}
|
|
563
686
|
//# sourceMappingURL=search-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-service.js","sourceRoot":"","sources":["../../../src/core/services/search-service.ts"],"names":[],"mappings":"AAAA;;GAEG;AAeH,OAAO,EACL,aAAa,EACb,WAAW,EACX,yBAAyB,EACzB,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EACtB,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,cAAc,GACf,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AAsBxB,kEAAkE;AAElE,gDAAgD;AAChD,MAAM,oBAAoB,GAA8B,MAAM,CAAC,WAAW,CACvE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAe,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;IAChD,EAAE;IACF,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;CACnD,CAAC,CAC0B,CAAC;AAE/B,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAc,CAAC;AAE5D,SAAS,WAAW,CAAC,KAAa,EAAE,OAAe;IACjD,MAAM,UAAU,GAAG,GAAG,KAAK,IAAI,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC;IACvD,OAAO,aAAa,CAAC,MAAM,CACzB,OAAO,CAAC,EAAE,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAC7E,CAAC;AACJ,CAAC;AAED,oEAAoE;AACpE,MAAM,kBAAkB,GAA8B,MAAM,CAAC,WAAW,CACrE,MAAM,CAAC,IAAI,CAAC,aAAa,CAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CACpF,CAAC;AAEF;;;GAGG;AACH,SAAS,eAAe,CAAC,IAAmB;IAC1C,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IACnC,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AAC1C,CAAC;AAED;;;GAGG;AACH,SAAS,4BAA4B,CAAC,QAAuC;IAC3E,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IAChE,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,oDAAoD;QACpD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAChD,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,KAAK,GAAG,CAC7C,CAAC;QACF,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,mFAAmF;AACnF,SAAS,aAAa,CAAC,KAAoB;IACzC,OAAO,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC;AAC5E,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,gBAAgB,CAAC,QAAuC;IAC/D,OAAO,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,eAAe,CAAC;SACpD,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,oBAAoB,CAAC,SAAmB;IAC/C,OAAO,mBAAmB,CAAC,IAAI,CAC7B,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAC3D,CAAC;AACJ,CAAC;AAED,kEAAkE;AAElE;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAA6D;IAE7D,MAAM,OAAO,GAAqB,EAAE,CAAC;IAErC,iBAAiB;IACjB,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC;YACX,GAAG,EAAE,OAAO,CAAC,eAAe;YAC5B,MAAM,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;SACjC,CAAC,CAAC;IACL,CAAC;IAED,uBAAuB;IACvB,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,WAAW,GAAG,yBAAyB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9D,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,CAAC,IAAI,CAAC;gBACX,GAAG,EAAE,OAAO,CAAC,YAAY;gBACzB,MAAM,EAAE,CAAC,WAAW,CAAC;aACtB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,uEAAuE;IACvE,kFAAkF;IAClF,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,EAAE,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1F,OAAO,CAAC,IAAI,CAAC;YACX,GAAG,EAAE,OAAO,CAAC,OAAO;YACpB,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;SACzB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAA2B;IAE3B,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAqD,CAAC;IAC1E,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,QAAQ,IAAI,KAAK,CAAC,GAAG,EAAE,QAAQ,IAAI,EAAE,CAAC;YACpE,MAAM,SAAS,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;YAC7D,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YACxD,qEAAqE;YACrE,MAAM,GAAG,GAAG,SAAS,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,SAAS,EAAE,EAAE,CAAC;YACjE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;gBAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAChB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YACpC,CAAC;iBAAM,IAAI,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1D,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK;SACT,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC;SAChC,MAAM,CAAC,CAAC,KAAK,EAA0B,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC;AACpE,CAAC;AAED,kEAAkE;AAElE;;GAEG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAAoB;IAEpB,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QACxD,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,KAAK,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE,CAAC;QACpD,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,uCAAuC;IACvC,OAAO;QACL,KAAK,EAAE,UAAU;QACjB,GAAG,EAAE,EAAE;QACP,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC;AAgBD;;;GAGG;AACH,SAAS,iBAAiB,CAAC,MAAmB;IAC5C,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAC5B,yEAAyE;IACzE,uEAAuE;IACvE,2DAA2D;IAC3D,MAAM,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,EAAE,CAAC;QAC/D,CAAC,CAAC,MAAM,CAAC,KAAK;QACd,CAAC,CAAC,UAAU,CAAC;IACf,MAAM,OAAO,GAAG,4BAA4B,CAAC,QAAQ,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,YAAY,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACjE,MAAM,aAAa,GAAG,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEjE,MAAM,MAAM,GAAiB;QAC3B,KAAK;QACL,GAAG,EAAE,MAAM,CAAC,GAAG;QACf,OAAO;QACP,OAAO;QACP,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,iEAAiE;QACjE,wEAAwE;QACxE,iCAAiC;QACjC,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9C,CAAC;IAEF,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACnC,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IACtC,CAAC;IAED,MAAM,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IACtC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC;IAChC,CAAC;IACD,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACxC,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,KAAK,EAAE,EAAE,CAAC;QAC5D,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;IACpC,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CAAC,KAA0C;IACjE,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACrE,MAAM,YAAY,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,cAAc,GAAG,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC;YACjD,CAAC,CAAC,YAAY;YACd,CAAC,CAAC,MAAM,YAAY,EAAE,CAAC;QACzB,OAAO,eAAe,CAAC,cAAc,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,eAAe,CAAC,YAAY,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;AACvE,CAAC;AAED,SAAS,aAAa,CAAC,GAAsC;IAC3D,IAAI,GAAG,CAAC,SAAS,KAAK,EAAE,EAAE,CAAC;QAAC,OAAO,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAAC,CAAC;IACpE,IAAI,GAAG,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;QAAC,OAAO,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,CAAC;IAC9D,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAoB;IAC/C,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IACxB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACpE,CAAC;IAED,OAAO,iBAAiB,CAAC;QACvB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,GAAG,EAAE,eAAe,CAAC,KAAK,CAAC;QAC3B,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ;QACxB,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,UAAU,EAAE,KAAK,CAAC,UAAU;QAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;KACzB,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAoB;IAC7C,MAAM,EAAE,GAAG,EAAE,GAAG,KAAK,CAAC;IACtB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACpE,CAAC;IAED,OAAO,iBAAiB,CAAC;QACvB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,GAAG,EAAE,aAAa,CAAC,GAAG,CAAC;QACvB,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,QAAQ,EAAE,GAAG,CAAC,KAAK;KACpB,CAAC,CAAC;AACL,CAAC;AAED,kEAAkE;AAElE;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,MAAoB;IAC9C,MAAM,aAAa,GAAmB,EAAE,CAAC;IAEzC,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC;QACjC,aAAa,CAAC,IAAI,CAAC;YACjB,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,SAAS,CAAC;SACpE,CAAC,CAAC;IACL,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC;QACjC,aAAa,CAAC,IAAI,CAAC;YACjB,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,WAAW;YAClB,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;SAC/E,CAAC,CAAC;IACL,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC;QACrC,MAAM,cAAc,GAAG,kBAAkB,CAAC,aAAa,CAAuB,CAAC;QAC/E,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,aAAa,CAAC,IAAI,CAAC;gBACjB,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,aAAa;gBACpB,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;oBACrC,IAAI,CAAC,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAAC,OAAO,IAAI,CAAC;oBAAC,CAAC;oBAC9C,OAAO,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;gBAC9C,CAAC,CAAC;aACH,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;GAGG;AACH,SAAS,wBAAwB,CAC/B,UAAkC,EAClC,aAA6B;IAE7B,IAAI,QAAQ,GAAG,UAAU,CAAC;IAC1B,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACnC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtD,OAAO,EAAE,QAAQ,EAAE,CAAC;IACtB,CAAC;IAED,yBAAyB;IACzB,MAAM,UAAU,GAAiB,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;IACjE,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAA2B,EAAE,CAAC;IAE5C,KAAK,MAAM,UAAU,IAAI,UAAU,EAAE,CAAC;QACpC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAAC,MAAM;QAAC,CAAC;QAEnC,MAAM,WAAW,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QACxE,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE,CAAC;YAAC,SAAS;QAAC,CAAC;QAErC,MAAM,aAAa,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC;QACjD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAAC,SAAS;QAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACjC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC;QACnD,aAAa,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAErC,6BAA6B;QAC7B,QAAQ,GAAG,UAAU,CAAC;QACtB,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;YACnC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO;YACL,QAAQ;YACR,UAAU,EAAE;gBACV,OAAO;gBACP,QAAQ;gBACR,OAAO,EAAE,2DAA2D,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,8CAA8C;aACrI;SACF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,CAAC;AACtB,CAAC;AAED,kEAAkE;AAElE,SAAS,cAAc,CAAC,CAAe;IACrC,OAAO,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC;AAC9C,CAAC;AAED,SAAS,qBAAqB,CAC5B,gBAAgC,EAChC,SAAiB;IAOjB,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,SAAS,EAAE,GACnE,oBAAoB,CAAC,gBAAgB,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;IAEpE,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC7D,CAAC;IAED,MAAM,cAAc,GAAG,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACnE,MAAM,gBAAgB,GAAyB;QAC7C,YAAY,EAAE,cAAc,CAAC,MAAM;QACnC,YAAY,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACrC,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,eAAe,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;SACnD,CAAC,CAAC;KACJ,CAAC;IAEF,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;AAC9E,CAAC;AAED,kEAAkE;AAElE,SAAS,sBAAsB,CAC7B,MAAoB,EACpB,kBAA2B,EAC3B,WAAsB;IAEtB,kEAAkE;IAClE,+DAA+D;IAC/D,8DAA8D;IAC9D,gBAAgB;IAChB,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEnD,0EAA0E;IAC1E,6EAA6E;IAC7E,kEAAkE;IAClE,2EAA2E;IAC3E,4CAA4C;IAC5C,MAAM,SAAS,GAAa,WAAW,IAAI,CACzC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CACzE,CAAC;IAEF,OAAO;QACL,MAAM;QACN,UAAU;QACV,aAAa,EAAE,kBAAkB;YAC/B,CAAC,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,CAAC;YAC3C,CAAC,CAAC,EAAE;QACN,SAAS;KACV,CAAC;AACJ,CAAC;AAED,kEAAkE;AAElE,6FAA6F;AAC7F,SAAS,iBAAiB,CAAC,OAA2B;IACpD,OAAO,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,SAAS,CAAC;AAC1E,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,gBAAgB,CACvB,gBAAoC,EACpC,YAAqB,EACrB,OAA+B;IAE/B,IAAI,CAAC,YAAY,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC1D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAC7B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,KAAK,gBAAgB,CAC7E,CAAC;IACF,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,YAAY,gBAAgB,wCAAwC;UACvE,iFAAiF,CAAC;AACxF,CAAC;AAED,kEAAkE;AAElE;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,GAAkB,EAClB,MAAoB;IAEpB,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,iBAAiB,CAAC,YAAY,CAAC;IAC3D,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,IAAI,cAAc,CAAC,sBAAsB,CAAC;IACvE,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,YAAY,CAAC,kBAAkB,CAAC;IAEtE,IAAI,UAAkC,CAAC;IACvC,IAAI,YAAY,GAAG,KAAK,CAAC;IACzB,IAAI,WAA+B,CAAC;IAEpC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC;QAC9D,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC;QAC9B,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;IACvC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC9B,GAAG,CAAC,KAAK,CAAC,iBAAiB,OAAO,EAAE,CAAC,CAAC;QACtC,UAAU,GAAG,EAAE,CAAC;QAChB,WAAW,GAAG,OAAO,CAAC;IACxB,CAAC;IAED,sDAAsD;IACtD,MAAM,aAAa,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACjD,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAC/D,wBAAwB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAEtD,uBAAuB;IACvB,MAAM,cAAc,GAAG,mBAAmB,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAEnF,MAAM,gBAAgB,GAAG,eAAe;SACrC,KAAK,CAAC,cAAc,CAAC,UAAU,EAAE,cAAc,CAAC,QAAQ,CAAC;SACzD,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAEtB,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,gBAAgB,EAAE,GAClE,qBAAqB,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;IAErD,MAAM,cAAc,GAAG,mBAAmB,CAAC,cAAc,CAAC,CAAC;IAC3D,MAAM,WAAW,GAAG,gBAAgB,CAAC,MAAM,CAAC,OAAO,EAAE,YAAY,EAAE,eAAe,CAAC,CAAC;IAEpF,OAAO;QACL,OAAO,EAAE,YAAY;QACrB,UAAU,EAAE;YACV,IAAI,EAAE,cAAc,CAAC,IAAI;YACzB,QAAQ,EAAE,cAAc,CAAC,QAAQ;YACjC,UAAU,EAAE,cAAc,CAAC,UAAU;YACrC,UAAU,EAAE,eAAe,CAAC,MAAM;YAClC,OAAO,EAAE,cAAc,CAAC,OAAO;YAC/B,OAAO,EAAE,cAAc,CAAC,OAAO;SAChC;QACD,SAAS,EAAE;YACT,UAAU,EAAE,eAAe;YAC3B,SAAS;YACT,SAAS;SACV;QACD,GAAG,CAAC,cAAc,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,GAAG,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtD,CAAC;AACJ,CAAC;AAED,kEAAkE;AAElE;;;;;GAKG;AACH,SAAS,mBAAmB,CAC1B,KAAa,EACb,OAAyB,EACzB,MAAc;IAEd,MAAM,aAAa,GAAG,CAAC,GAAG,OAAO,CAAC;SAC/B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SAC1C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;SACjD,IAAI,CAAC,GAAG,CAAC,CAAC;IACb,OAAO,aAAa,MAAM,IAAI,KAAK,IAAI,aAAa,EAAE,CAAC;AACzD,CAAC;AAWD,KAAK,UAAU,oBAAoB,CACjC,GAAkB,EAClB,MAAoB,EACpB,GAAW;IAEX,MAAM,kBAAkB,GAAG,MAAM,CAAC,KAAK,KAAK,SAAS,CAAC;IAEtD,sEAAsE;IACtE,IAAI,GAAG,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzD,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACtB,OAAO;gBACL,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,sBAAsB,CAAC,CAAC,EAAE,kBAAkB,CAAC,CAAC;gBACzE,YAAY,EAAE,IAAI;aACnB,CAAC;QACJ,CAAC;IACH,CAAC;IAED,6BAA6B;IAC7B,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,IAAI,cAAc,CAAC;IACjD,MAAM,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAEpE,2CAA2C;IAC3C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,CAAyB,QAAQ,CAAC,CAAC;IACrE,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,GAAG,CAAC,KAAK,CAAC,0BAA0B,QAAQ,MAAM,MAAM,CAAC,MAAM,UAAU,CAAC,CAAC;QAC3E,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;IAClD,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CACtB,cAAc,CAAC,kBAAkB,EACjC,cAAc,CAAC,oBAAoB,CACpC,CAAC;IAEF,GAAG,CAAC,KAAK,CACP,qBAAqB,MAAM,CAAC,KAAK,cAAc,MAAM,CAAC,OAAO,IAAI,KAAK,IAAI;QAC1E,UAAU,MAAM,aAAa,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CACvD,CAAC;IAEF,MAAM,UAAU,GAA8B,MAAM,QAAQ,CAAC;QAC3D,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,aAAa,EAAE,MAAM;QACrB,MAAM,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE;QAC5B,OAAO;KACR,CAAC,CAAC;IAEH,yEAAyE;IACzE,2EAA2E;IAC3E,8EAA8E;IAC9E,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,KAAK,MAAM,KAAK,IAAI,sBAAsB,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/D,MAAM,YAAY,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;QACpD,IAAI,YAAY,CAAC,GAAG,KAAK,EAAE,EAAE,CAAC;YAC5B,OAAO,CAAC,IAAI,CAAC,sBAAsB,CACjC,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CACvC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,0DAA0D;IAC1D,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEnE,GAAG,CAAC,KAAK,CAAC,sBAAsB,OAAO,CAAC,MAAM,mBAAmB,CAAC,CAAC;IACnE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;AAC1C,CAAC"}
|
|
1
|
+
{"version":3,"file":"search-service.js","sourceRoot":"","sources":["../../../src/core/services/search-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,8 @@ export declare function transformFtTocToTocEntries(nodes: FtTocNode[]): TocEntry
|
|
|
24
24
|
* 2. MapsRegistry → mapId → ft-client.fetchMapToc
|
|
25
25
|
* 3. Transform FtTocNode[] → TocEntry[]
|
|
26
26
|
*
|
|
27
|
-
* Results are cached under `ft-toc
|
|
27
|
+
* Results are cached under the `ft-toc` namespace, keyed on locale, product
|
|
28
|
+
* and version — see {@link CacheKeySpaces}.
|
|
28
29
|
*/
|
|
29
30
|
export declare function fetchTableOfContents(ctx: ServerContext, product: ProductId, version?: string, options?: FetchTocOptions): Promise<FetchTocResult>;
|
|
30
31
|
//# sourceMappingURL=toc-service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toc-service.d.ts","sourceRoot":"","sources":["../../../src/core/services/toc-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,OAAO,KAAK,EAAE,SAAS,EAAY,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"toc-service.d.ts","sourceRoot":"","sources":["../../../src/core/services/toc-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,OAAO,KAAK,EAAE,SAAS,EAAY,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAkB,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAKxG;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,CAmBzE;AAyDD;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,SAAS,EAClB,OAAO,SAAY,EACnB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,cAAc,CAAC,CA0EzB"}
|
|
@@ -8,6 +8,7 @@ import { fetchMapToc } from './ft-client.js';
|
|
|
8
8
|
import { buildDisplayUrl } from './topic-resolver.js';
|
|
9
9
|
import { calculatePagination, truncateListByTokens, buildPaginationNote, } from './tokenizer.js';
|
|
10
10
|
import { JAMF_PRODUCTS, DEFAULT_LOCALE, PAGINATION_CONFIG, TOKEN_CONFIG, } from '../constants.js';
|
|
11
|
+
import { cacheKey } from './cache-key.js';
|
|
11
12
|
import { JamfDocsError, JamfDocsErrorCode } from '../types.js';
|
|
12
13
|
// ─── Transform helpers ─────────────────────────────────────────
|
|
13
14
|
/**
|
|
@@ -79,7 +80,8 @@ async function resolveMapIdQuietly(ctx, bundleId, version, locale) {
|
|
|
79
80
|
* 2. MapsRegistry → mapId → ft-client.fetchMapToc
|
|
80
81
|
* 3. Transform FtTocNode[] → TocEntry[]
|
|
81
82
|
*
|
|
82
|
-
* Results are cached under `ft-toc
|
|
83
|
+
* Results are cached under the `ft-toc` namespace, keyed on locale, product
|
|
84
|
+
* and version — see {@link CacheKeySpaces}.
|
|
83
85
|
*/
|
|
84
86
|
export async function fetchTableOfContents(ctx, product, version = 'current', options = {}) {
|
|
85
87
|
if (ctx.tocProvider !== undefined) {
|
|
@@ -91,9 +93,9 @@ export async function fetchTableOfContents(ctx, product, version = 'current', op
|
|
|
91
93
|
const page = options.page ?? PAGINATION_CONFIG.DEFAULT_PAGE;
|
|
92
94
|
const maxTokens = options.maxTokens ?? TOKEN_CONFIG.DEFAULT_MAX_TOKENS;
|
|
93
95
|
const locale = options.locale ?? DEFAULT_LOCALE;
|
|
94
|
-
const
|
|
96
|
+
const key = cacheKey('ft-toc', { locale, product, version });
|
|
95
97
|
const { bundleId } = JAMF_PRODUCTS[product];
|
|
96
|
-
let allToc = await ctx.cache.get(
|
|
98
|
+
let allToc = await ctx.cache.get(key);
|
|
97
99
|
let mapId;
|
|
98
100
|
if (allToc === null) {
|
|
99
101
|
mapId = await ctx.mapsRegistry.resolveMapId(bundleId, version !== 'current' ? version : undefined, locale);
|
|
@@ -102,7 +104,7 @@ export async function fetchTableOfContents(ctx, product, version = 'current', op
|
|
|
102
104
|
}
|
|
103
105
|
const ftNodes = await fetchMapToc(mapId);
|
|
104
106
|
allToc = transformFtTocToTocEntries(ftNodes);
|
|
105
|
-
await ctx.cache.set(
|
|
107
|
+
await ctx.cache.set(key, allToc, ctx.config.cacheTtl.article);
|
|
106
108
|
}
|
|
107
109
|
else {
|
|
108
110
|
// The cache stores the tree, not the id it came from. Re-resolve so a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toc-service.js","sourceRoot":"","sources":["../../../src/core/services/toc-service.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,YAAY,GACb,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"toc-service.js","sourceRoot":"","sources":["../../../src/core/services/toc-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topic-resolver.d.ts","sourceRoot":"","sources":["../../../src/core/services/topic-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAiC,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAG/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"topic-resolver.d.ts","sourceRoot":"","sources":["../../../src/core/services/topic-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAiC,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAG/E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAY3D,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,QAAQ,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAID,UAAU,eAAe;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,eAAe;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,KAAK,SAAS,GAAG,eAAe,GAAG,eAAe,CAAC;AA4CnD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAQtD;AAyCD,qBAAa,aAAa;IAetB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAfxB;;;;;;;;OAQG;IACH,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAmD;IAC5E,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAwB;IACzD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAGf,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,aAAa,EACrC,gBAAgB,CAAC,EAAE,OAAO,cAAc,EACxC,QAAQ,CAAC,EAAE,MAAM;YAML,aAAa;IAqC3B;;;;;;;OAOG;IACG,OAAO,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC;YA2ClD,aAAa;YA0Bb,aAAa;CAoD5B;AAID;;;GAGG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAKzD"}
|
|
@@ -10,6 +10,7 @@ import { DOCS_BASE_URL, DEFAULT_LOCALE } from '../constants.js';
|
|
|
10
10
|
import { toValidLocale } from '../constants/locales.js';
|
|
11
11
|
import { JamfDocsError, JamfDocsErrorCode } from '../types.js';
|
|
12
12
|
import { fetchMapTopics } from './ft-client.js';
|
|
13
|
+
import { cacheKey } from './cache-key.js';
|
|
13
14
|
import { getMetaValue, FT_META } from '../utils/ft-metadata.js';
|
|
14
15
|
import { isAllowedHostname } from '../utils/url.js';
|
|
15
16
|
import { extractVersionFromBundleId, stripCurrentSuffix, stripVersionSuffix, } from '../utils/bundle.js';
|
|
@@ -81,7 +82,7 @@ export function parseUrl(url) {
|
|
|
81
82
|
}
|
|
82
83
|
// ─── Topic Index (slug → contentId) ────────────────────────────
|
|
83
84
|
const DEFAULT_TOPICS_CACHE_TTL = 24 * 60 * 60 * 1000;
|
|
84
|
-
async function fetchAndBuildIndex(mapId, cache,
|
|
85
|
+
async function fetchAndBuildIndex(mapId, cache, key, fetchTopicsFn, cacheTtl) {
|
|
85
86
|
const topics = await fetchTopicsFn(mapId);
|
|
86
87
|
const index = new Map();
|
|
87
88
|
for (const topic of topics) {
|
|
@@ -101,7 +102,7 @@ async function fetchAndBuildIndex(mapId, cache, cacheKey, fetchTopicsFn, cacheTt
|
|
|
101
102
|
}
|
|
102
103
|
}
|
|
103
104
|
}
|
|
104
|
-
await cache.set(
|
|
105
|
+
await cache.set(key, [...index.entries()], cacheTtl);
|
|
105
106
|
return index;
|
|
106
107
|
}
|
|
107
108
|
// ─── Resolver ───────────────────────────────────────────────────
|
|
@@ -127,8 +128,8 @@ export class TopicResolver {
|
|
|
127
128
|
this.cacheTtl = cacheTtl ?? DEFAULT_TOPICS_CACHE_TTL;
|
|
128
129
|
}
|
|
129
130
|
async getTopicIndex(mapId) {
|
|
130
|
-
const
|
|
131
|
-
const cached = await this.cache.get(
|
|
131
|
+
const key = cacheKey('ft-topic-index', { mapId });
|
|
132
|
+
const cached = await this.cache.get(key);
|
|
132
133
|
if (cached !== null) {
|
|
133
134
|
return new Map(cached);
|
|
134
135
|
}
|
|
@@ -137,7 +138,7 @@ export class TopicResolver {
|
|
|
137
138
|
if (pending !== undefined) {
|
|
138
139
|
return await pending;
|
|
139
140
|
}
|
|
140
|
-
const promise = fetchAndBuildIndex(mapId, this.cache,
|
|
141
|
+
const promise = fetchAndBuildIndex(mapId, this.cache, key, this.fetchMapTopicsFn, this.cacheTtl);
|
|
141
142
|
this.inflight.set(mapId, promise);
|
|
142
143
|
// Clean up the in-flight entry once the promise settles.
|
|
143
144
|
//
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topic-resolver.js","sourceRoot":"","sources":["../../../src/core/services/topic-resolver.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"topic-resolver.js","sourceRoot":"","sources":["../../../src/core/services/topic-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/core/tools/search.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIzD,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAuB,MAAM,iBAAiB,CAAC;AAuL/E;;;;;;;;GAQG;AACH,UAAU,aAAa;IACrB,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EAWnD,CAAC;AAkBF,eAAO,MAAM,gBAAgB,QAqDX,CAAC;AA0KnB,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/core/tools/search.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIzD,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAuB,MAAM,iBAAiB,CAAC;AAuL/E;;;;;;;;GAQG;AACH,UAAU,aAAa;IACrB,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,wCAAwC;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,8BAA8B;IAC9B,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,4BAA4B;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,mDAAmD;IACnD,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EAWnD,CAAC;AAkBF,eAAO,MAAM,gBAAgB,QAqDX,CAAC;AA0KnB,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,aAAa,GAAG,IAAI,CAwK9E"}
|
|
@@ -423,10 +423,19 @@ export function registerSearchTool(server, ctx) {
|
|
|
423
423
|
truncatedContent,
|
|
424
424
|
});
|
|
425
425
|
if (params.responseFormat === ResponseFormat.JSON) {
|
|
426
|
-
// Add relevance note only in JSON format
|
|
426
|
+
// Add relevance note only in JSON format.
|
|
427
|
+
//
|
|
428
|
+
// States the ordering and nothing more. The previous wording promised
|
|
429
|
+
// "relevance scores ... higher values indicate stronger keyword
|
|
430
|
+
// matches", but Fluid Topics returns no score of any kind — a
|
|
431
|
+
// clustered-search entry carries only `type`, `missingTerms` and the
|
|
432
|
+
// topic/map payload, with no score, rank or weight field anywhere in
|
|
433
|
+
// the response — and no result this server emits has ever carried a
|
|
434
|
+
// numeric relevance. The ordering itself is real: `sortId:
|
|
435
|
+
// 'relevance'` is sent explicitly (see resolveSearchResults).
|
|
427
436
|
const jsonResponse = {
|
|
428
437
|
...response,
|
|
429
|
-
relevanceNote: '
|
|
438
|
+
relevanceNote: 'Results are ordered by relevance, as ranked by the Fluid Topics search API. The API returns no numeric relevance score, so none is included.'
|
|
430
439
|
};
|
|
431
440
|
await reportProgress(extra, { progress: 3, total: 3 });
|
|
432
441
|
return {
|