@get-technology-inc/jamf-docs-mcp-server 1.5.1 → 2.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.
Files changed (229) hide show
  1. package/dist/{completions.d.ts → core/completions.d.ts} +3 -1
  2. package/dist/core/completions.d.ts.map +1 -0
  3. package/dist/{completions.js → core/completions.js} +5 -4
  4. package/dist/core/completions.js.map +1 -0
  5. package/dist/core/config.d.ts +56 -0
  6. package/dist/core/config.d.ts.map +1 -0
  7. package/dist/core/config.js +59 -0
  8. package/dist/core/config.js.map +1 -0
  9. package/dist/{constants.d.ts → core/constants.d.ts} +3 -19
  10. package/dist/core/constants.d.ts.map +1 -0
  11. package/dist/{constants.js → core/constants.js} +6 -86
  12. package/dist/core/constants.js.map +1 -0
  13. package/dist/core/create-server.d.ts +17 -0
  14. package/dist/core/create-server.d.ts.map +1 -0
  15. package/dist/core/create-server.js +70 -0
  16. package/dist/core/create-server.js.map +1 -0
  17. package/dist/core/http-client.d.ts +19 -0
  18. package/dist/core/http-client.d.ts.map +1 -0
  19. package/dist/core/http-client.js +62 -0
  20. package/dist/core/http-client.js.map +1 -0
  21. package/dist/core/index.d.ts +25 -0
  22. package/dist/core/index.d.ts.map +1 -0
  23. package/dist/core/index.js +29 -0
  24. package/dist/core/index.js.map +1 -0
  25. package/dist/core/prompts/compare-versions.d.ts.map +1 -0
  26. package/dist/core/prompts/compare-versions.js.map +1 -0
  27. package/dist/core/prompts/index.d.ts.map +1 -0
  28. package/dist/core/prompts/index.js.map +1 -0
  29. package/dist/core/prompts/setup-guide.d.ts.map +1 -0
  30. package/dist/core/prompts/setup-guide.js.map +1 -0
  31. package/dist/core/prompts/troubleshoot.d.ts.map +1 -0
  32. package/dist/core/prompts/troubleshoot.js.map +1 -0
  33. package/dist/{resources → core/resources}/index.d.ts +2 -1
  34. package/dist/core/resources/index.d.ts.map +1 -0
  35. package/dist/{resources → core/resources}/index.js +6 -7
  36. package/dist/core/resources/index.js.map +1 -0
  37. package/dist/core/schemas/index.d.ts.map +1 -0
  38. package/dist/core/schemas/index.js.map +1 -0
  39. package/dist/core/schemas/output.d.ts.map +1 -0
  40. package/dist/core/schemas/output.js.map +1 -0
  41. package/dist/core/services/cache.d.ts +16 -0
  42. package/dist/core/services/cache.d.ts.map +1 -0
  43. package/dist/core/services/cache.js +16 -0
  44. package/dist/core/services/cache.js.map +1 -0
  45. package/dist/{services → core/services}/glossary.d.ts +2 -1
  46. package/dist/core/services/glossary.d.ts.map +1 -0
  47. package/dist/{services → core/services}/glossary.js +10 -11
  48. package/dist/core/services/glossary.js.map +1 -0
  49. package/dist/core/services/interfaces.d.ts +94 -0
  50. package/dist/core/services/interfaces.d.ts.map +1 -0
  51. package/dist/core/services/interfaces.js +8 -0
  52. package/dist/core/services/interfaces.js.map +1 -0
  53. package/dist/core/services/logging.d.ts.map +1 -0
  54. package/dist/core/services/logging.js.map +1 -0
  55. package/dist/{services → core/services}/metadata.d.ts +8 -7
  56. package/dist/core/services/metadata.d.ts.map +1 -0
  57. package/dist/{services → core/services}/metadata.js +43 -39
  58. package/dist/core/services/metadata.js.map +1 -0
  59. package/dist/{services → core/services}/scraper.d.ts +9 -4
  60. package/dist/core/services/scraper.d.ts.map +1 -0
  61. package/dist/{services → core/services}/scraper.js +77 -49
  62. package/dist/core/services/scraper.js.map +1 -0
  63. package/dist/core/services/search-suggestions.d.ts.map +1 -0
  64. package/dist/core/services/search-suggestions.js.map +1 -0
  65. package/dist/core/services/tokenizer.d.ts.map +1 -0
  66. package/dist/core/services/tokenizer.js.map +1 -0
  67. package/dist/{tools → core/tools}/batch-get-articles.d.ts +2 -1
  68. package/dist/core/tools/batch-get-articles.d.ts.map +1 -0
  69. package/dist/{tools → core/tools}/batch-get-articles.js +2 -2
  70. package/dist/core/tools/batch-get-articles.js.map +1 -0
  71. package/dist/{tools → core/tools}/get-article.d.ts +2 -1
  72. package/dist/core/tools/get-article.d.ts.map +1 -0
  73. package/dist/{tools → core/tools}/get-article.js +2 -2
  74. package/dist/core/tools/get-article.js.map +1 -0
  75. package/dist/core/tools/get-toc.d.ts +8 -0
  76. package/dist/core/tools/get-toc.d.ts.map +1 -0
  77. package/dist/{tools → core/tools}/get-toc.js +3 -3
  78. package/dist/core/tools/get-toc.js.map +1 -0
  79. package/dist/{tools → core/tools}/glossary-lookup.d.ts +2 -1
  80. package/dist/core/tools/glossary-lookup.d.ts.map +1 -0
  81. package/dist/{tools → core/tools}/glossary-lookup.js +2 -2
  82. package/dist/core/tools/glossary-lookup.js.map +1 -0
  83. package/dist/{tools → core/tools}/list-products.d.ts +2 -1
  84. package/dist/core/tools/list-products.d.ts.map +1 -0
  85. package/dist/{tools → core/tools}/list-products.js +2 -2
  86. package/dist/core/tools/list-products.js.map +1 -0
  87. package/dist/core/tools/search.d.ts +8 -0
  88. package/dist/core/tools/search.d.ts.map +1 -0
  89. package/dist/{tools → core/tools}/search.js +2 -2
  90. package/dist/core/tools/search.js.map +1 -0
  91. package/dist/core/types/context.d.ts +15 -0
  92. package/dist/core/types/context.d.ts.map +1 -0
  93. package/dist/core/types/context.js +8 -0
  94. package/dist/core/types/context.js.map +1 -0
  95. package/dist/core/types.d.ts.map +1 -0
  96. package/dist/core/types.js.map +1 -0
  97. package/dist/core/utils/bundle.d.ts.map +1 -0
  98. package/dist/core/utils/bundle.js.map +1 -0
  99. package/dist/core/utils/concurrency.d.ts.map +1 -0
  100. package/dist/core/utils/concurrency.js.map +1 -0
  101. package/dist/core/utils/doc-type.d.ts.map +1 -0
  102. package/dist/core/utils/doc-type.js.map +1 -0
  103. package/dist/core/utils/progress.d.ts.map +1 -0
  104. package/dist/core/utils/progress.js.map +1 -0
  105. package/dist/core/utils/sanitize.d.ts.map +1 -0
  106. package/dist/core/utils/sanitize.js.map +1 -0
  107. package/dist/core/utils/url.d.ts.map +1 -0
  108. package/dist/core/utils/url.js.map +1 -0
  109. package/dist/index.d.ts +3 -3
  110. package/dist/index.js +26 -58
  111. package/dist/index.js.map +1 -1
  112. package/dist/{services → platforms/node}/cache.d.ts +17 -13
  113. package/dist/platforms/node/cache.d.ts.map +1 -0
  114. package/dist/{services → platforms/node}/cache.js +20 -18
  115. package/dist/platforms/node/cache.js.map +1 -0
  116. package/dist/platforms/node/config.d.ts +14 -0
  117. package/dist/platforms/node/config.d.ts.map +1 -0
  118. package/dist/platforms/node/config.js +99 -0
  119. package/dist/platforms/node/config.js.map +1 -0
  120. package/dist/platforms/node/index.d.ts +8 -0
  121. package/dist/platforms/node/index.d.ts.map +1 -0
  122. package/dist/platforms/node/index.js +8 -0
  123. package/dist/platforms/node/index.js.map +1 -0
  124. package/dist/platforms/node/logger.d.ts +12 -0
  125. package/dist/platforms/node/logger.d.ts.map +1 -0
  126. package/dist/platforms/node/logger.js +15 -0
  127. package/dist/platforms/node/logger.js.map +1 -0
  128. package/dist/platforms/node/metadata.d.ts +18 -0
  129. package/dist/platforms/node/metadata.d.ts.map +1 -0
  130. package/dist/platforms/node/metadata.js +35 -0
  131. package/dist/platforms/node/metadata.js.map +1 -0
  132. package/dist/transport/http.d.ts.map +1 -1
  133. package/dist/transport/http.js +3 -2
  134. package/dist/transport/http.js.map +1 -1
  135. package/dist/transport/index.js +1 -1
  136. package/dist/transport/index.js.map +1 -1
  137. package/package.json +22 -4
  138. package/dist/completions.d.ts.map +0 -1
  139. package/dist/completions.js.map +0 -1
  140. package/dist/constants.d.ts.map +0 -1
  141. package/dist/constants.js.map +0 -1
  142. package/dist/prompts/compare-versions.d.ts.map +0 -1
  143. package/dist/prompts/compare-versions.js.map +0 -1
  144. package/dist/prompts/index.d.ts.map +0 -1
  145. package/dist/prompts/index.js.map +0 -1
  146. package/dist/prompts/setup-guide.d.ts.map +0 -1
  147. package/dist/prompts/setup-guide.js.map +0 -1
  148. package/dist/prompts/troubleshoot.d.ts.map +0 -1
  149. package/dist/prompts/troubleshoot.js.map +0 -1
  150. package/dist/resources/index.d.ts.map +0 -1
  151. package/dist/resources/index.js.map +0 -1
  152. package/dist/schemas/index.d.ts.map +0 -1
  153. package/dist/schemas/index.js.map +0 -1
  154. package/dist/schemas/output.d.ts.map +0 -1
  155. package/dist/schemas/output.js.map +0 -1
  156. package/dist/services/cache.d.ts.map +0 -1
  157. package/dist/services/cache.js.map +0 -1
  158. package/dist/services/glossary.d.ts.map +0 -1
  159. package/dist/services/glossary.js.map +0 -1
  160. package/dist/services/logging.d.ts.map +0 -1
  161. package/dist/services/logging.js.map +0 -1
  162. package/dist/services/metadata.d.ts.map +0 -1
  163. package/dist/services/metadata.js.map +0 -1
  164. package/dist/services/scraper.d.ts.map +0 -1
  165. package/dist/services/scraper.js.map +0 -1
  166. package/dist/services/search-suggestions.d.ts.map +0 -1
  167. package/dist/services/search-suggestions.js.map +0 -1
  168. package/dist/services/tokenizer.d.ts.map +0 -1
  169. package/dist/services/tokenizer.js.map +0 -1
  170. package/dist/tools/batch-get-articles.d.ts.map +0 -1
  171. package/dist/tools/batch-get-articles.js.map +0 -1
  172. package/dist/tools/get-article.d.ts.map +0 -1
  173. package/dist/tools/get-article.js.map +0 -1
  174. package/dist/tools/get-toc.d.ts +0 -7
  175. package/dist/tools/get-toc.d.ts.map +0 -1
  176. package/dist/tools/get-toc.js.map +0 -1
  177. package/dist/tools/glossary-lookup.d.ts.map +0 -1
  178. package/dist/tools/glossary-lookup.js.map +0 -1
  179. package/dist/tools/list-products.d.ts.map +0 -1
  180. package/dist/tools/list-products.js.map +0 -1
  181. package/dist/tools/search.d.ts +0 -7
  182. package/dist/tools/search.d.ts.map +0 -1
  183. package/dist/tools/search.js.map +0 -1
  184. package/dist/types.d.ts.map +0 -1
  185. package/dist/types.js.map +0 -1
  186. package/dist/utils/bundle.d.ts.map +0 -1
  187. package/dist/utils/bundle.js.map +0 -1
  188. package/dist/utils/concurrency.d.ts.map +0 -1
  189. package/dist/utils/concurrency.js.map +0 -1
  190. package/dist/utils/doc-type.d.ts.map +0 -1
  191. package/dist/utils/doc-type.js.map +0 -1
  192. package/dist/utils/progress.d.ts.map +0 -1
  193. package/dist/utils/progress.js.map +0 -1
  194. package/dist/utils/sanitize.d.ts.map +0 -1
  195. package/dist/utils/sanitize.js.map +0 -1
  196. package/dist/utils/url.d.ts.map +0 -1
  197. package/dist/utils/url.js.map +0 -1
  198. /package/dist/{prompts → core/prompts}/compare-versions.d.ts +0 -0
  199. /package/dist/{prompts → core/prompts}/compare-versions.js +0 -0
  200. /package/dist/{prompts → core/prompts}/index.d.ts +0 -0
  201. /package/dist/{prompts → core/prompts}/index.js +0 -0
  202. /package/dist/{prompts → core/prompts}/setup-guide.d.ts +0 -0
  203. /package/dist/{prompts → core/prompts}/setup-guide.js +0 -0
  204. /package/dist/{prompts → core/prompts}/troubleshoot.d.ts +0 -0
  205. /package/dist/{prompts → core/prompts}/troubleshoot.js +0 -0
  206. /package/dist/{schemas → core/schemas}/index.d.ts +0 -0
  207. /package/dist/{schemas → core/schemas}/index.js +0 -0
  208. /package/dist/{schemas → core/schemas}/output.d.ts +0 -0
  209. /package/dist/{schemas → core/schemas}/output.js +0 -0
  210. /package/dist/{services → core/services}/logging.d.ts +0 -0
  211. /package/dist/{services → core/services}/logging.js +0 -0
  212. /package/dist/{services → core/services}/search-suggestions.d.ts +0 -0
  213. /package/dist/{services → core/services}/search-suggestions.js +0 -0
  214. /package/dist/{services → core/services}/tokenizer.d.ts +0 -0
  215. /package/dist/{services → core/services}/tokenizer.js +0 -0
  216. /package/dist/{types.d.ts → core/types.d.ts} +0 -0
  217. /package/dist/{types.js → core/types.js} +0 -0
  218. /package/dist/{utils → core/utils}/bundle.d.ts +0 -0
  219. /package/dist/{utils → core/utils}/bundle.js +0 -0
  220. /package/dist/{utils → core/utils}/concurrency.d.ts +0 -0
  221. /package/dist/{utils → core/utils}/concurrency.js +0 -0
  222. /package/dist/{utils → core/utils}/doc-type.d.ts +0 -0
  223. /package/dist/{utils → core/utils}/doc-type.js +0 -0
  224. /package/dist/{utils → core/utils}/progress.d.ts +0 -0
  225. /package/dist/{utils → core/utils}/progress.js +0 -0
  226. /package/dist/{utils → core/utils}/sanitize.d.ts +0 -0
  227. /package/dist/{utils → core/utils}/sanitize.js +0 -0
  228. /package/dist/{utils → core/utils}/url.d.ts +0 -0
  229. /package/dist/{utils → core/utils}/url.js +0 -0
@@ -4,30 +4,27 @@
4
4
  * Dynamically fetches product versions and topic categories from the API
5
5
  * with fallback to static constants.
6
6
  */
7
- import axios from 'axios';
7
+ import { httpGetJson } from '../http-client.js';
8
8
  import * as cheerio from 'cheerio';
9
- import { DOCS_API_URL, JAMF_PRODUCTS, JAMF_TOPICS, REQUEST_CONFIG, CACHE_TTL } from '../constants.js';
9
+ import { DOCS_API_URL, JAMF_PRODUCTS, JAMF_TOPICS } from '../constants.js';
10
10
  import { extractVersionFromBundleId } from '../utils/bundle.js';
11
- import { cache } from './cache.js';
12
- import { createLogger } from './logging.js';
13
- const log = createLogger('metadata');
14
11
  // ============================================================================
15
12
  // API Helpers
16
13
  // ============================================================================
17
- async function fetchJson(url) {
18
- const response = await axios.get(url, {
19
- timeout: REQUEST_CONFIG.TIMEOUT,
20
- headers: {
21
- 'User-Agent': REQUEST_CONFIG.USER_AGENT,
22
- 'Accept': 'application/json'
23
- }
24
- });
25
- return response.data;
14
+ function makeFetchJson(requestConfig) {
15
+ return async (url) => {
16
+ return await httpGetJson(url, {
17
+ timeout: requestConfig.timeout,
18
+ headers: {
19
+ 'User-Agent': requestConfig.userAgent
20
+ }
21
+ });
22
+ };
26
23
  }
27
24
  /**
28
25
  * Discover all available versions for a product
29
26
  */
30
- async function discoverProductVersions(productId) {
27
+ async function discoverProductVersions(productId, fetchJson, log) {
31
28
  const product = JAMF_PRODUCTS[productId];
32
29
  const versions = new Set();
33
30
  try {
@@ -69,11 +66,11 @@ async function discoverProductVersions(productId) {
69
66
  /**
70
67
  * Fetch latest version and metadata for a product from the API
71
68
  */
72
- async function fetchProductMetadata(productId) {
69
+ async function fetchProductMetadata(productId, fetchJson, log) {
73
70
  const product = JAMF_PRODUCTS[productId];
74
71
  try {
75
72
  // Discover all available versions
76
- const availableVersions = await discoverProductVersions(productId);
73
+ const availableVersions = await discoverProductVersions(productId, fetchJson, log);
77
74
  // Search for a doc from this product to get the bundle ID and labels
78
75
  const apiUrl = `${DOCS_API_URL}/api/search?q=${encodeURIComponent(product.name)}&rpp=5`;
79
76
  const response = await fetchJson(apiUrl);
@@ -108,10 +105,12 @@ async function fetchProductMetadata(productId) {
108
105
  * Get all products with their latest metadata
109
106
  * Uses cache with fallback to static constants
110
107
  */
111
- export async function getProductsMetadata() {
108
+ export async function getProductsMetadata(ctx) {
109
+ const log = ctx.logger.createLogger('metadata');
110
+ const fetchJson = makeFetchJson(ctx.config.request);
112
111
  const cacheKey = 'metadata:products';
113
112
  // Check cache
114
- const cached = await cache.get(cacheKey);
113
+ const cached = await ctx.cache.get(cacheKey);
115
114
  if (cached !== null) {
116
115
  return cached;
117
116
  }
@@ -119,7 +118,7 @@ export async function getProductsMetadata() {
119
118
  const productIds = Object.keys(JAMF_PRODUCTS);
120
119
  const fetchResults = await Promise.all(productIds.map(async (productId) => {
121
120
  try {
122
- const metadata = await fetchProductMetadata(productId);
121
+ const metadata = await fetchProductMetadata(productId, fetchJson, log);
123
122
  return { productId, metadata };
124
123
  }
125
124
  catch (error) {
@@ -147,15 +146,16 @@ export async function getProductsMetadata() {
147
146
  }
148
147
  }
149
148
  // Cache for 24 hours
150
- await cache.set(cacheKey, products, CACHE_TTL.ARTICLE_CONTENT);
149
+ await ctx.cache.set(cacheKey, products, ctx.config.cacheTtl.article);
151
150
  return products;
152
151
  }
153
152
  /**
154
153
  * Get the bundle ID for a specific product and version
155
154
  * Returns the latest bundle ID if version is undefined or 'current'
156
155
  */
157
- export async function getBundleIdForVersion(productId, version) {
158
- const products = await getProductsMetadata();
156
+ export async function getBundleIdForVersion(ctx, productId, version) {
157
+ const log = ctx.logger.createLogger('metadata');
158
+ const products = await getProductsMetadata(ctx);
159
159
  const product = products.find(p => p.id === productId);
160
160
  if (product === undefined) {
161
161
  return null;
@@ -176,8 +176,8 @@ export async function getBundleIdForVersion(productId, version) {
176
176
  /**
177
177
  * Get available versions for a product
178
178
  */
179
- export async function getAvailableVersions(productId) {
180
- const products = await getProductsMetadata();
179
+ export async function getAvailableVersions(ctx, productId) {
180
+ const products = await getProductsMetadata(ctx);
181
181
  const product = products.find(p => p.id === productId);
182
182
  return product?.availableVersions ?? [];
183
183
  }
@@ -238,10 +238,10 @@ function categoryToTopicId(title) {
238
238
  /**
239
239
  * Fetch topic categories from TOC for a product
240
240
  */
241
- async function fetchTopicCategories(productId) {
241
+ async function fetchTopicCategories(productId, ctx, fetchJson, log) {
242
242
  try {
243
243
  // First get the latest bundle ID
244
- const products = await getProductsMetadata();
244
+ const products = await getProductsMetadata(ctx);
245
245
  const product = products.find(p => p.id === productId);
246
246
  if (product === undefined) {
247
247
  return [];
@@ -280,10 +280,12 @@ function upsertTopic(topicsMap, category) {
280
280
  /**
281
281
  * Get all topics, combining TOC-derived from all products and manual topics
282
282
  */
283
- export async function getTopicsMetadata() {
283
+ export async function getTopicsMetadata(ctx) {
284
+ const log = ctx.logger.createLogger('metadata');
285
+ const fetchJson = makeFetchJson(ctx.config.request);
284
286
  const cacheKey = 'metadata:topics';
285
287
  // Check cache
286
- const cached = await cache.get(cacheKey);
288
+ const cached = await ctx.cache.get(cacheKey);
287
289
  if (cached !== null) {
288
290
  return cached;
289
291
  }
@@ -300,7 +302,7 @@ export async function getTopicsMetadata() {
300
302
  const productIds = Object.keys(JAMF_PRODUCTS);
301
303
  const tocResults = await Promise.all(productIds.map(async (productId) => {
302
304
  try {
303
- const categories = await fetchTopicCategories(productId);
305
+ const categories = await fetchTopicCategories(productId, ctx, fetchJson, log);
304
306
  return { productId, categories };
305
307
  }
306
308
  catch (error) {
@@ -315,7 +317,7 @@ export async function getTopicsMetadata() {
315
317
  }
316
318
  const topics = Array.from(topicsMap.values());
317
319
  // Cache for 24 hours
318
- await cache.set(cacheKey, topics, CACHE_TTL.ARTICLE_CONTENT);
320
+ await ctx.cache.set(cacheKey, topics, ctx.config.cacheTtl.article);
319
321
  return topics;
320
322
  }
321
323
  // ============================================================================
@@ -324,9 +326,11 @@ export async function getTopicsMetadata() {
324
326
  /**
325
327
  * Check which products have TOC content available
326
328
  */
327
- export async function getProductAvailability() {
329
+ export async function getProductAvailability(ctx) {
330
+ const log = ctx.logger.createLogger('metadata');
331
+ const fetchJson = makeFetchJson(ctx.config.request);
328
332
  const cacheKey = 'metadata:product-availability';
329
- const cached = await cache.get(cacheKey);
333
+ const cached = await ctx.cache.get(cacheKey);
330
334
  if (cached !== null) {
331
335
  return cached;
332
336
  }
@@ -334,7 +338,7 @@ export async function getProductAvailability() {
334
338
  const productIds = Object.keys(JAMF_PRODUCTS);
335
339
  const results = await Promise.all(productIds.map(async (productId) => {
336
340
  try {
337
- const categories = await fetchTopicCategories(productId);
341
+ const categories = await fetchTopicCategories(productId, ctx, fetchJson, log);
338
342
  return { productId, hasContent: categories.length > 0 };
339
343
  }
340
344
  catch {
@@ -345,7 +349,7 @@ export async function getProductAvailability() {
345
349
  availability[productId] = hasContent;
346
350
  }
347
351
  // Cache for 1 hour
348
- await cache.set(cacheKey, availability, 60 * 60 * 1000);
352
+ await ctx.cache.set(cacheKey, availability, 60 * 60 * 1000);
349
353
  return availability;
350
354
  }
351
355
  // ============================================================================
@@ -354,8 +358,8 @@ export async function getProductAvailability() {
354
358
  /**
355
359
  * Get products data formatted for resource response
356
360
  */
357
- export async function getProductsResourceData() {
358
- const products = await getProductsMetadata();
361
+ export async function getProductsResourceData(ctx) {
362
+ const products = await getProductsMetadata(ctx);
359
363
  return {
360
364
  description: 'Available Jamf products for documentation search',
361
365
  products: products.map(p => ({
@@ -373,8 +377,8 @@ export async function getProductsResourceData() {
373
377
  /**
374
378
  * Get topics data formatted for resource response
375
379
  */
376
- export async function getTopicsResourceData() {
377
- const topics = await getTopicsMetadata();
380
+ export async function getTopicsResourceData(ctx) {
381
+ const topics = await getTopicsMetadata(ctx);
378
382
  return {
379
383
  description: 'Topic categories for filtering Jamf documentation searches',
380
384
  totalTopics: topics.length,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../../src/core/services/metadata.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@
6
6
  */
7
7
  import { type ProductId, type LocaleId } from '../constants.js';
8
8
  import { type SearchResult, type ParsedArticle, type TocEntry, type SearchParams, type TokenInfo, type PaginationInfo, type ArticleSection, type FilterRelaxation, type TruncatedContentInfo } from '../types.js';
9
+ import type { ServerContext } from '../types/context.js';
9
10
  export { ALLOWED_HOSTNAMES, isAllowedHostname } from '../utils/url.js';
10
11
  /**
11
12
  * Strip locale prefix (e.g. /en-US/, /ja-JP/) from URL path.
@@ -23,7 +24,11 @@ export declare function cleanSnippet(snippet: string, title: string, product: st
23
24
  * Build Accept-Language header value for a given locale
24
25
  */
25
26
  export declare function buildAcceptLanguage(locale: string): string;
26
- export declare const fetchHtml: (url: string, locale?: string) => Promise<string>;
27
+ /**
28
+ * Fetch HTML from a URL with error handling.
29
+ * Requires a ServerContext for request configuration.
30
+ */
31
+ export declare function fetchHtml(ctx: ServerContext, url: string, locale?: string): Promise<string>;
27
32
  /**
28
33
  * Search response with token and pagination info
29
34
  */
@@ -38,7 +43,7 @@ export interface SearchDocumentationResult {
38
43
  /**
39
44
  * Search Jamf documentation using Zoomin Search API
40
45
  */
41
- export declare function searchDocumentation(params: SearchParams): Promise<SearchDocumentationResult>;
46
+ export declare function searchDocumentation(ctx: ServerContext, params: SearchParams): Promise<SearchDocumentationResult>;
42
47
  /**
43
48
  * Options for fetching articles
44
49
  */
@@ -60,7 +65,7 @@ export interface FetchArticleResult extends ParsedArticle {
60
65
  * Fetch and parse a documentation article
61
66
  * Uses backend URL (learn-be.jamf.com) for pre-rendered content
62
67
  */
63
- export declare function fetchArticle(url: string, options?: FetchArticleOptions): Promise<FetchArticleResult>;
68
+ export declare function fetchArticle(ctx: ServerContext, url: string, options?: FetchArticleOptions): Promise<FetchArticleResult>;
64
69
  /**
65
70
  * Options for fetching table of contents
66
71
  */
@@ -81,5 +86,5 @@ export interface FetchTocResult {
81
86
  * Fetch table of contents for a product
82
87
  * Uses backend TOC endpoint (learn-be.jamf.com/bundle/{bundleId}/toc)
83
88
  */
84
- export declare function fetchTableOfContents(product: ProductId, version?: string, options?: FetchTocOptions): Promise<FetchTocResult>;
89
+ export declare function fetchTableOfContents(ctx: ServerContext, product: ProductId, version?: string, options?: FetchTocOptions): Promise<FetchTocResult>;
85
90
  //# sourceMappingURL=scraper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scraper.d.ts","sourceRoot":"","sources":["../../../src/core/services/scraper.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,EAYL,KAAK,SAAS,EAEd,KAAK,QAAQ,EACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAGL,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,YAAY,EAGjB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EAC1B,MAAM,aAAa,CAAC;AAGrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAqDzD,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEvE;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAaxD;AAGD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAM5D;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAM7D;AAkDD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAe3F;AAiBD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAK1D;AAiDD;;;GAGG;AACH,wBAAsB,SAAS,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEjG;AA6SD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,UAAU,EAAE,cAAc,CAAC;IAC3B,SAAS,EAAE,SAAS,CAAC;IACrB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,oBAAoB,CAAC;CACzC;AAsFD;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,GAAG,EAAE,aAAa,EAClB,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,yBAAyB,CAAC,CA0FpC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD,SAAS,EAAE,SAAS,CAAC;IACrB,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,GAAG,EAAE,aAAa,EAClB,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,kBAAkB,CAAC,CAwI7B;AAuFD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,QAAQ,EAAE,CAAC;IAChB,UAAU,EAAE,cAAc,CAAC;IAC3B,SAAS,EAAE,SAAS,CAAC;CACtB;AAiED;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,aAAa,EAClB,OAAO,EAAE,SAAS,EAClB,OAAO,SAAY,EACnB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,cAAc,CAAC,CA6GzB"}
@@ -4,20 +4,17 @@
4
4
  * This module handles fetching and parsing HTML from learn.jamf.com
5
5
  * (Jamf documentation has moved from docs.jamf.com to learn.jamf.com)
6
6
  */
7
- import axios from 'axios';
7
+ import { httpGetText, httpGetJson, HttpError } from '../http-client.js';
8
8
  import * as cheerio from 'cheerio';
9
9
  import { sanitizeErrorMessage } from '../utils/sanitize.js';
10
10
  import { isAllowedHostname, extractLocaleFromUrl } from '../utils/url.js';
11
11
  import TurndownService from 'turndown';
12
- import { DOCS_BASE_URL, DOCS_API_URL, JAMF_PRODUCTS, JAMF_TOPICS, DOC_TYPE_LABEL_MAP, REQUEST_CONFIG, SELECTORS, CONTENT_LIMITS, TOKEN_CONFIG, PAGINATION_CONFIG, DEFAULT_LOCALE, SUPPORTED_LOCALES } from '../constants.js';
12
+ import { DOCS_BASE_URL, DOCS_API_URL, JAMF_PRODUCTS, JAMF_TOPICS, DOC_TYPE_LABEL_MAP, SELECTORS, CONTENT_LIMITS, TOKEN_CONFIG, PAGINATION_CONFIG, DEFAULT_LOCALE, SUPPORTED_LOCALES } from '../constants.js';
13
13
  import { JamfDocsError, JamfDocsErrorCode } from '../types.js';
14
14
  import { extractVersionFromBundleId, extractProductSlug, compareVersions } from '../utils/bundle.js';
15
15
  import { docTypeFromLabels } from '../utils/doc-type.js';
16
- import { cache } from './cache.js';
17
- import { createLogger } from './logging.js';
18
16
  import { estimateTokens, createTokenInfo, extractSections, extractSection, extractSummary, truncateToTokenLimit, calculatePagination } from './tokenizer.js';
19
17
  import { getBundleIdForVersion } from './metadata.js';
20
- const log = createLogger('scraper');
21
18
  // Initialize Turndown for HTML to Markdown conversion
22
19
  const turndown = new TurndownService({
23
20
  headingStyle: 'atx',
@@ -39,11 +36,11 @@ turndown.addRule('codeBlocks', {
39
36
  });
40
37
  // Rate limiter
41
38
  let lastRequestTime = 0;
42
- async function throttle() {
39
+ async function throttle(requestConfig) {
43
40
  const now = Date.now();
44
41
  const elapsed = now - lastRequestTime;
45
- if (elapsed < REQUEST_CONFIG.RATE_LIMIT_DELAY) {
46
- await new Promise(resolve => setTimeout(resolve, REQUEST_CONFIG.RATE_LIMIT_DELAY - elapsed));
42
+ if (elapsed < requestConfig.rateLimitDelay) {
43
+ await new Promise(resolve => setTimeout(resolve, requestConfig.rateLimitDelay - elapsed));
47
44
  }
48
45
  lastRequestTime = Date.now();
49
46
  }
@@ -143,19 +140,16 @@ export function cleanSnippet(snippet, title, product) {
143
140
  return cleaned;
144
141
  }
145
142
  /**
146
- * Handle axios errors and convert to JamfDocsError
143
+ * Handle HTTP errors and convert to JamfDocsError
147
144
  */
148
- function handleAxiosError(error, url, resourceType) {
149
- const status = error.response?.status;
145
+ function handleHttpError(error, url, resourceType) {
146
+ const status = error.status;
150
147
  if (status === 404) {
151
148
  throw new JamfDocsError(`${resourceType} not found: ${url}`, JamfDocsErrorCode.NOT_FOUND, url, 404);
152
149
  }
153
150
  if (status === 429) {
154
151
  throw new JamfDocsError('Rate limited. Please wait and try again.', JamfDocsErrorCode.RATE_LIMITED, url, 429);
155
152
  }
156
- if (error.code === 'ECONNABORTED') {
157
- throw new JamfDocsError('Request timed out', JamfDocsErrorCode.TIMEOUT, url);
158
- }
159
153
  throw new JamfDocsError(`Network error: ${sanitizeErrorMessage(error.message)}`, JamfDocsErrorCode.NETWORK_ERROR, url);
160
154
  }
161
155
  /**
@@ -168,30 +162,59 @@ export function buildAcceptLanguage(locale) {
168
162
  return `${locale},en;q=0.5`;
169
163
  }
170
164
  /**
171
- * Fetch data from a URL with error handling
165
+ * Fetch JSON from a URL with error handling
172
166
  */
173
- async function fetchUrl(url, accept, resourceType, locale) {
174
- await throttle();
175
- try {
176
- const response = await axios.get(url, {
177
- timeout: REQUEST_CONFIG.TIMEOUT,
178
- headers: {
179
- 'User-Agent': REQUEST_CONFIG.USER_AGENT,
180
- 'Accept': accept,
181
- 'Accept-Language': buildAcceptLanguage(locale ?? DEFAULT_LOCALE)
167
+ function makeFetchJson(requestConfig) {
168
+ return async (url, locale) => {
169
+ await throttle(requestConfig);
170
+ try {
171
+ return await httpGetJson(url, {
172
+ timeout: requestConfig.timeout,
173
+ headers: {
174
+ 'User-Agent': requestConfig.userAgent,
175
+ 'Accept-Language': buildAcceptLanguage(locale ?? DEFAULT_LOCALE)
176
+ }
177
+ });
178
+ }
179
+ catch (error) {
180
+ if (error instanceof HttpError) {
181
+ handleHttpError(error, url, 'Resource');
182
182
  }
183
- });
184
- return response.data;
185
- }
186
- catch (error) {
187
- if (axios.isAxiosError(error)) {
188
- handleAxiosError(error, url, resourceType);
183
+ throw error;
189
184
  }
190
- throw error;
191
- }
185
+ };
186
+ }
187
+ /**
188
+ * Fetch HTML from a URL with error handling
189
+ */
190
+ function makeFetchHtml(requestConfig) {
191
+ return async (url, locale) => {
192
+ await throttle(requestConfig);
193
+ try {
194
+ return await httpGetText(url, {
195
+ timeout: requestConfig.timeout,
196
+ headers: {
197
+ 'User-Agent': requestConfig.userAgent,
198
+ 'Accept': 'text/html,application/xhtml+xml',
199
+ 'Accept-Language': buildAcceptLanguage(locale ?? DEFAULT_LOCALE)
200
+ }
201
+ });
202
+ }
203
+ catch (error) {
204
+ if (error instanceof HttpError) {
205
+ handleHttpError(error, url, 'Article');
206
+ }
207
+ throw error;
208
+ }
209
+ };
210
+ }
211
+ /**
212
+ * Fetch HTML from a URL with error handling.
213
+ * Requires a ServerContext for request configuration.
214
+ */
215
+ export async function fetchHtml(ctx, url, locale) {
216
+ return makeFetchHtml(ctx.config.request)(url, locale);
192
217
  }
193
- const fetchJson = async (url, locale) => await fetchUrl(url, 'application/json', 'Resource', locale);
194
- export const fetchHtml = async (url, locale) => await fetchUrl(url, 'text/html,application/xhtml+xml', 'Article', locale);
195
218
  /**
196
219
  * Clean HTML content by removing unwanted elements
197
220
  */
@@ -423,7 +446,7 @@ function truncateSearchResults(paginatedResults, maxTokens) {
423
446
  /**
424
447
  * Fetch search results from API or cache
425
448
  */
426
- async function fetchSearchResults(params, locale, cacheKey) {
449
+ async function fetchSearchResults(params, locale, cacheKey, cache, fetchJson, log) {
427
450
  const cached = await cache.get(cacheKey);
428
451
  if (cached !== null) {
429
452
  return cached;
@@ -487,7 +510,9 @@ function deduplicateByLatestVersion(results) {
487
510
  /**
488
511
  * Search Jamf documentation using Zoomin Search API
489
512
  */
490
- export async function searchDocumentation(params) {
513
+ export async function searchDocumentation(ctx, params) {
514
+ const log = ctx.logger.createLogger('scraper');
515
+ const fetchJson = makeFetchJson(ctx.config.request);
491
516
  const page = params.page ?? PAGINATION_CONFIG.DEFAULT_PAGE;
492
517
  const pageSize = params.limit ?? CONTENT_LIMITS.DEFAULT_SEARCH_RESULTS;
493
518
  const maxTokens = params.maxTokens ?? TOKEN_CONFIG.DEFAULT_MAX_TOKENS;
@@ -499,7 +524,7 @@ export async function searchDocumentation(params) {
499
524
  })}`;
500
525
  let allResults;
501
526
  try {
502
- allResults = await fetchSearchResults(params, locale, cacheKey);
527
+ allResults = await fetchSearchResults(params, locale, cacheKey, ctx.cache, fetchJson, log);
503
528
  }
504
529
  catch (error) {
505
530
  log.error(`Search error: ${String(error)}`);
@@ -568,7 +593,8 @@ export async function searchDocumentation(params) {
568
593
  * Fetch and parse a documentation article
569
594
  * Uses backend URL (learn-be.jamf.com) for pre-rendered content
570
595
  */
571
- export async function fetchArticle(url, options = {}) {
596
+ export async function fetchArticle(ctx, url, options = {}) {
597
+ const fetchHtmlInner = makeFetchHtml(ctx.config.request);
572
598
  const maxTokens = options.maxTokens ?? TOKEN_CONFIG.DEFAULT_MAX_TOKENS;
573
599
  // Infer locale from URL if not explicitly provided (e.g., /ja-JP/bundle/...)
574
600
  const locale = options.locale ?? extractLocaleFromUrl(url);
@@ -578,10 +604,10 @@ export async function fetchArticle(url, options = {}) {
578
604
  const articleFetchUrl = transformToBackendUrl(cleanUrl);
579
605
  const cacheKey = `${locale}:article:${displayUrl}`;
580
606
  // Check cache for raw article (without section/token processing)
581
- let rawArticle = await cache.get(cacheKey);
607
+ let rawArticle = await ctx.cache.get(cacheKey);
582
608
  if (rawArticle === null) {
583
609
  // Fetch HTML from backend URL (pre-rendered content, not SPA shell)
584
- const html = await fetchHtml(articleFetchUrl, locale);
610
+ const html = await fetchHtmlInner(articleFetchUrl, locale);
585
611
  const $ = cheerio.load(html);
586
612
  // Clean content
587
613
  cleanHtml($);
@@ -632,7 +658,7 @@ export async function fetchArticle(url, options = {}) {
632
658
  relatedArticles: relatedArticles !== undefined && relatedArticles.length > 0 ? relatedArticles : undefined
633
659
  };
634
660
  // Cache raw article
635
- await cache.set(cacheKey, rawArticle);
661
+ await ctx.cache.set(cacheKey, rawArticle);
636
662
  }
637
663
  // At this point rawArticle is guaranteed to be non-null
638
664
  const article = rawArticle;
@@ -686,7 +712,7 @@ export async function fetchArticle(url, options = {}) {
686
712
  /**
687
713
  * Discover the latest bundle version for a product via search API
688
714
  */
689
- async function discoverLatestBundleId(product) {
715
+ async function discoverLatestBundleId(product, fetchJson, log) {
690
716
  const productInfo = JAMF_PRODUCTS[product];
691
717
  const baseBundleId = productInfo.bundleId;
692
718
  try {
@@ -769,7 +795,7 @@ function countTocEntries(entries) {
769
795
  * Build a flat TOC from search results when backend TOC endpoint returns empty.
770
796
  * Searches for all articles under the given product and constructs TocEntry list.
771
797
  */
772
- async function buildTocFromSearch(product, locale) {
798
+ async function buildTocFromSearch(product, locale, fetchJson, log) {
773
799
  try {
774
800
  const apiUrl = new URL(`${DOCS_API_URL}/api/search`);
775
801
  apiUrl.searchParams.set('q', JAMF_PRODUCTS[product].name);
@@ -811,18 +837,20 @@ async function buildTocFromSearch(product, locale) {
811
837
  * Fetch table of contents for a product
812
838
  * Uses backend TOC endpoint (learn-be.jamf.com/bundle/{bundleId}/toc)
813
839
  */
814
- export async function fetchTableOfContents(product, version = 'current', options = {}) {
840
+ export async function fetchTableOfContents(ctx, product, version = 'current', options = {}) {
841
+ const log = ctx.logger.createLogger('scraper');
842
+ const fetchJson = makeFetchJson(ctx.config.request);
815
843
  const page = options.page ?? PAGINATION_CONFIG.DEFAULT_PAGE;
816
844
  const maxTokens = options.maxTokens ?? TOKEN_CONFIG.DEFAULT_MAX_TOKENS;
817
845
  const locale = options.locale ?? DEFAULT_LOCALE;
818
846
  const cacheKey = `${locale}:toc:${product}:${version}`;
819
847
  // Check cache
820
- let allToc = await cache.get(cacheKey);
848
+ let allToc = await ctx.cache.get(cacheKey);
821
849
  if (allToc === null) {
822
850
  // Get bundle ID for the specified version (or latest if current)
823
- let bundleId = await getBundleIdForVersion(product, version);
851
+ let bundleId = await getBundleIdForVersion(ctx, product, version);
824
852
  // Fallback to discovery if metadata service fails
825
- bundleId ??= await discoverLatestBundleId(product);
853
+ bundleId ??= await discoverLatestBundleId(product, fetchJson, log);
826
854
  if (bundleId === null || bundleId === '') {
827
855
  throw new JamfDocsError(`Could not find bundle for ${product} version ${version}`, JamfDocsErrorCode.NOT_FOUND);
828
856
  }
@@ -847,10 +875,10 @@ export async function fetchTableOfContents(product, version = 'current', options
847
875
  // Fallback: build TOC from search results when backend returns empty or fails
848
876
  if (allToc.length === 0) {
849
877
  log.info(`No TOC entries for ${product}, falling back to search-based discovery`);
850
- allToc = await buildTocFromSearch(product, locale);
878
+ allToc = await buildTocFromSearch(product, locale, fetchJson, log);
851
879
  }
852
880
  // Cache result
853
- await cache.set(cacheKey, allToc);
881
+ await ctx.cache.set(cacheKey, allToc);
854
882
  }
855
883
  // Count total entries
856
884
  const totalItems = countTocEntries(allToc);
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scraper.js","sourceRoot":"","sources":["../../../src/core/services/scraper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-suggestions.d.ts","sourceRoot":"","sources":["../../../src/core/services/search-suggestions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAe,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,eAAe,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACjD,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AA6KD;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,MAAM,EACb,gBAAgB,UAAQ,EACxB,cAAc,UAAQ,GACrB,iBAAiB,CASnB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,iBAAiB,GAAG,MAAM,CA4B7F"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-suggestions.js","sourceRoot":"","sources":["../../../src/core/services/search-suggestions.ts"],"names":[],"mappings":"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"}