@get-technology-inc/jamf-docs-mcp-server 0.0.1 → 1.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 (47) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +189 -29
  3. package/dist/constants.d.ts +260 -0
  4. package/dist/constants.d.ts.map +1 -0
  5. package/dist/constants.js +303 -0
  6. package/dist/constants.js.map +1 -0
  7. package/dist/index.d.ts +9 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +36 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/schemas/index.d.ts +98 -0
  12. package/dist/schemas/index.d.ts.map +1 -0
  13. package/dist/schemas/index.js +110 -0
  14. package/dist/schemas/index.js.map +1 -0
  15. package/dist/services/cache.d.ts +56 -0
  16. package/dist/services/cache.d.ts.map +1 -0
  17. package/dist/services/cache.js +189 -0
  18. package/dist/services/cache.js.map +1 -0
  19. package/dist/services/scraper.d.ts +62 -0
  20. package/dist/services/scraper.d.ts.map +1 -0
  21. package/dist/services/scraper.js +568 -0
  22. package/dist/services/scraper.js.map +1 -0
  23. package/dist/services/tokenizer.d.ts +77 -0
  24. package/dist/services/tokenizer.d.ts.map +1 -0
  25. package/dist/services/tokenizer.js +274 -0
  26. package/dist/services/tokenizer.js.map +1 -0
  27. package/dist/tools/get-article.d.ts +7 -0
  28. package/dist/tools/get-article.d.ts.map +1 -0
  29. package/dist/tools/get-article.js +195 -0
  30. package/dist/tools/get-article.js.map +1 -0
  31. package/dist/tools/get-toc.d.ts +7 -0
  32. package/dist/tools/get-toc.d.ts.map +1 -0
  33. package/dist/tools/get-toc.js +172 -0
  34. package/dist/tools/get-toc.js.map +1 -0
  35. package/dist/tools/list-products.d.ts +7 -0
  36. package/dist/tools/list-products.d.ts.map +1 -0
  37. package/dist/tools/list-products.js +132 -0
  38. package/dist/tools/list-products.js.map +1 -0
  39. package/dist/tools/search.d.ts +7 -0
  40. package/dist/tools/search.d.ts.map +1 -0
  41. package/dist/tools/search.js +212 -0
  42. package/dist/tools/search.js.map +1 -0
  43. package/dist/types.d.ts +197 -0
  44. package/dist/types.d.ts.map +1 -0
  45. package/dist/types.js +28 -0
  46. package/dist/types.js.map +1 -0
  47. package/package.json +68 -6
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 GET Technology Inc.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,45 +1,205 @@
1
- # @get-technology-inc/jamf-docs-mcp-server
1
+ # Jamf Docs MCP Server
2
2
 
3
- ## ⚠️ IMPORTANT NOTICE ⚠️
3
+ [![CI](https://github.com/GET-Technology-Inc/jamf-docs-mcp-server/actions/workflows/ci.yml/badge.svg)](https://github.com/GET-Technology-Inc/jamf-docs-mcp-server/actions/workflows/ci.yml)
4
+ [![npm version](https://img.shields.io/npm/v/@get-technology-inc/jamf-docs-mcp-server.svg)](https://www.npmjs.com/package/@get-technology-inc/jamf-docs-mcp-server)
5
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
4
6
 
5
- **This package is created solely for the purpose of setting up OIDC (OpenID Connect) trusted publishing with npm.**
7
+ An MCP (Model Context Protocol) server that provides AI assistants with direct access to Jamf documentation from learn.jamf.com.
6
8
 
7
- This is **NOT** a functional package and contains **NO** code or functionality beyond the OIDC setup configuration.
9
+ ## Features
8
10
 
9
- ## Purpose
11
+ - 🔍 **Search**: Search across all Jamf product documentation
12
+ - 📖 **Read Articles**: Fetch full article content in Markdown format
13
+ - 📚 **Browse TOC**: Explore documentation structure by product
14
+ - 🏷️ **Product Filtering**: Filter by Jamf Pro, School, Connect, or Protect
15
+ - 💾 **Caching**: Built-in caching for faster responses
10
16
 
11
- This package exists to:
12
- 1. Configure OIDC trusted publishing for the package name `@get-technology-inc/jamf-docs-mcp-server`
13
- 2. Enable secure, token-less publishing from CI/CD workflows
14
- 3. Establish provenance for packages published under this name
17
+ ## Supported Products
15
18
 
16
- ## What is OIDC Trusted Publishing?
19
+ | Product | Description |
20
+ |---------|-------------|
21
+ | Jamf Pro | Enterprise Apple device management |
22
+ | Jamf School | Education-focused device management |
23
+ | Jamf Connect | Identity and access management |
24
+ | Jamf Protect | Endpoint security for Apple |
17
25
 
18
- OIDC trusted publishing allows package maintainers to publish packages directly from their CI/CD workflows without needing to manage npm access tokens. Instead, it uses OpenID Connect to establish trust between the CI/CD provider (like GitHub Actions) and npm.
26
+ ## Requirements
19
27
 
20
- ## Setup Instructions
28
+ - Node.js 20.0.0 or higher
21
29
 
22
- To properly configure OIDC trusted publishing for this package:
30
+ ## Installation
23
31
 
24
- 1. Go to [npmjs.com](https://www.npmjs.com/) and navigate to your package settings
25
- 2. Configure the trusted publisher (e.g., GitHub Actions)
26
- 3. Specify the repository and workflow that should be allowed to publish
27
- 4. Use the configured workflow to publish your actual package
32
+ ```bash
33
+ # Clone the repository
34
+ git clone https://github.com/GET-Technology-Inc/jamf-docs-mcp-server.git
35
+ cd jamf-docs-mcp-server
28
36
 
29
- ## DO NOT USE THIS PACKAGE
37
+ # Install dependencies
38
+ npm install
30
39
 
31
- This package is a placeholder for OIDC configuration only. It:
32
- - Contains no executable code
33
- - Provides no functionality
34
- - Should not be installed as a dependency
35
- - Exists only for administrative purposes
40
+ # Build
41
+ npm run build
42
+ ```
36
43
 
37
- ## More Information
44
+ ## Usage
38
45
 
39
- For more details about npm's trusted publishing feature, see:
40
- - [npm Trusted Publishing Documentation](https://docs.npmjs.com/generating-provenance-statements)
41
- - [GitHub Actions OIDC Documentation](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect)
46
+ ### Quick Start with npx
42
47
 
43
- ---
48
+ ```bash
49
+ npx @get-technology-inc/jamf-docs-mcp-server
50
+ ```
44
51
 
45
- **Maintained for OIDC setup purposes only**
52
+ ### With Claude Desktop
53
+
54
+ Add to your `claude_desktop_config.json`:
55
+
56
+ ```json
57
+ {
58
+ "mcpServers": {
59
+ "jamf-docs": {
60
+ "command": "node",
61
+ "args": ["/path/to/jamf-docs-mcp-server/dist/index.js"]
62
+ }
63
+ }
64
+ }
65
+ ```
66
+
67
+ ### With Claude Code
68
+
69
+ ```bash
70
+ claude mcp add jamf-docs -- node /path/to/jamf-docs-mcp-server/dist/index.js
71
+ ```
72
+
73
+ ### Testing with MCP Inspector
74
+
75
+ ```bash
76
+ npx @modelcontextprotocol/inspector node dist/index.js
77
+ ```
78
+
79
+ ## Available Tools
80
+
81
+ ### `jamf_docs_list_products`
82
+
83
+ List all available Jamf products and their documentation versions.
84
+
85
+ ```
86
+ "What Jamf products have documentation?"
87
+ ```
88
+
89
+ ### `jamf_docs_search`
90
+
91
+ Search Jamf documentation for articles matching your query.
92
+
93
+ ```
94
+ "Search for SSO configuration in Jamf Pro"
95
+ "Find articles about MDM enrollment"
96
+ ```
97
+
98
+ ### `jamf_docs_get_article`
99
+
100
+ Retrieve the full content of a specific documentation article.
101
+
102
+ ```
103
+ "Get the article at https://docs.jamf.com/..."
104
+ ```
105
+
106
+ ### `jamf_docs_get_toc`
107
+
108
+ Get the table of contents for a product's documentation.
109
+
110
+ ```
111
+ "Show me the Jamf Pro documentation structure"
112
+ ```
113
+
114
+ ## Development
115
+
116
+ ```bash
117
+ # Install dependencies
118
+ npm install
119
+
120
+ # Run in development mode
121
+ npm run dev
122
+
123
+ # Build for production
124
+ npm run build
125
+
126
+ # Run tests
127
+ npm test
128
+
129
+ # Type check
130
+ npm run typecheck
131
+ ```
132
+
133
+ ## Project Structure
134
+
135
+ ```
136
+ jamf-docs-mcp-server/
137
+ ├── src/
138
+ │ ├── index.ts # Entry point
139
+ │ ├── types.ts # Type definitions
140
+ │ ├── constants.ts # Configuration
141
+ │ ├── tools/ # MCP tool implementations
142
+ │ │ ├── list-products.ts
143
+ │ │ ├── search.ts
144
+ │ │ ├── get-article.ts
145
+ │ │ └── get-toc.ts
146
+ │ ├── services/ # Core services
147
+ │ │ ├── scraper.ts # Web scraping
148
+ │ │ └── cache.ts # Caching
149
+ │ └── schemas/ # Zod validation schemas
150
+ ├── .cache/ # Local cache (gitignored)
151
+ ├── dist/ # Build output
152
+ ├── package.json
153
+ ├── tsconfig.json
154
+ └── CLAUDE.md # Development guide
155
+ ```
156
+
157
+ ## Configuration
158
+
159
+ The server uses sensible defaults but can be configured via environment variables:
160
+
161
+ | Variable | Description | Default |
162
+ |----------|-------------|---------|
163
+ | `CACHE_DIR` | Cache directory | `.cache` |
164
+ | `REQUEST_TIMEOUT` | HTTP timeout (ms) | `15000` |
165
+ | `RATE_LIMIT_DELAY` | Delay between requests (ms) | `500` |
166
+ | `MAX_RETRIES` | Maximum retry attempts | `3` |
167
+ | `RETRY_DELAY` | Delay between retries (ms) | `1000` |
168
+ | `USER_AGENT` | Custom User-Agent string | `JamfDocsMCP/1.0` |
169
+ | `CACHE_TTL_SEARCH` | Search results cache TTL (ms) | `1800000` (30 min) |
170
+ | `CACHE_TTL_ARTICLE` | Article content cache TTL (ms) | `86400000` (24 hr) |
171
+ | `CACHE_TTL_TOC` | TOC cache TTL (ms) | `86400000` (24 hr) |
172
+ | `CACHE_TTL_PRODUCTS` | Products list cache TTL (ms) | `604800000` (7 days) |
173
+
174
+ Example:
175
+
176
+ ```bash
177
+ CACHE_DIR=/tmp/jamf-cache REQUEST_TIMEOUT=30000 node dist/index.js
178
+ ```
179
+
180
+ ## Contributing
181
+
182
+ 1. Fork the repository
183
+ 2. Create a feature branch
184
+ 3. Make your changes
185
+ 4. Run tests and type checks
186
+ 5. Submit a pull request
187
+
188
+ ## License
189
+
190
+ MIT - Copyright (c) 2025 GET Technology Inc.
191
+
192
+ ## Maintainer
193
+
194
+ Developed and maintained by [GET Technology Inc.](https://github.com/GET-Technology-Inc)
195
+
196
+ ## Disclaimer
197
+
198
+ This is an unofficial tool for accessing Jamf documentation. It is not affiliated with or endorsed by Jamf. Use responsibly and respect Jamf's terms of service.
199
+
200
+ ## Related Resources
201
+
202
+ - [Jamf Documentation](https://learn.jamf.com)
203
+ - [Jamf Developer Portal](https://developer.jamf.com)
204
+ - [MCP Specification](https://spec.modelcontextprotocol.io/)
205
+ - [MCP TypeScript SDK](https://github.com/modelcontextprotocol/typescript-sdk)
@@ -0,0 +1,260 @@
1
+ /**
2
+ * Constants for Jamf Docs MCP Server
3
+ *
4
+ * Note: Jamf documentation has moved from docs.jamf.com to learn.jamf.com
5
+ * The new URL structure is: learn.jamf.com/en-US/bundle/{product}-documentation/page/{page}.html
6
+ */
7
+ export declare const DOCS_BASE_URL = "https://learn.jamf.com";
8
+ export declare const LEARN_BASE_URL = "https://learn.jamf.com";
9
+ export declare const DOCS_API_URL = "https://learn-be.jamf.com";
10
+ export declare const JAMF_PRODUCTS: {
11
+ readonly 'jamf-pro': {
12
+ readonly id: "jamf-pro";
13
+ readonly name: "Jamf Pro";
14
+ readonly description: "Apple device management for enterprise";
15
+ readonly urlPattern: "en-US/bundle/jamf-pro-documentation/page";
16
+ readonly bundleId: "jamf-pro-documentation";
17
+ readonly searchLabel: "product-pro";
18
+ readonly latestVersion: "current";
19
+ readonly versions: readonly ["current"];
20
+ };
21
+ readonly 'jamf-school': {
22
+ readonly id: "jamf-school";
23
+ readonly name: "Jamf School";
24
+ readonly description: "Apple device management for education";
25
+ readonly urlPattern: "en-US/bundle/jamf-school-documentation/page";
26
+ readonly bundleId: "jamf-school-documentation";
27
+ readonly searchLabel: "product-school";
28
+ readonly latestVersion: "current";
29
+ readonly versions: readonly ["current"];
30
+ };
31
+ readonly 'jamf-connect': {
32
+ readonly id: "jamf-connect";
33
+ readonly name: "Jamf Connect";
34
+ readonly description: "Identity and access management";
35
+ readonly urlPattern: "en-US/bundle/jamf-connect-documentation/page";
36
+ readonly bundleId: "jamf-connect-documentation";
37
+ readonly searchLabel: "product-connect";
38
+ readonly latestVersion: "current";
39
+ readonly versions: readonly ["current"];
40
+ };
41
+ readonly 'jamf-protect': {
42
+ readonly id: "jamf-protect";
43
+ readonly name: "Jamf Protect";
44
+ readonly description: "Endpoint security for Apple";
45
+ readonly urlPattern: "en-US/bundle/jamf-protect-documentation/page";
46
+ readonly bundleId: "jamf-protect-documentation";
47
+ readonly searchLabel: "product-protect";
48
+ readonly latestVersion: "current";
49
+ readonly versions: readonly ["current"];
50
+ };
51
+ };
52
+ export type ProductId = keyof typeof JAMF_PRODUCTS;
53
+ export declare enum ResponseFormat {
54
+ MARKDOWN = "markdown",
55
+ JSON = "json"
56
+ }
57
+ export declare const CACHE_TTL: {
58
+ readonly SEARCH_RESULTS: number;
59
+ readonly ARTICLE_CONTENT: number;
60
+ readonly PRODUCT_LIST: number;
61
+ readonly TOC: number;
62
+ };
63
+ export declare const CACHE_DIR: string;
64
+ export declare const REQUEST_CONFIG: {
65
+ readonly TIMEOUT: number;
66
+ readonly MAX_RETRIES: number;
67
+ readonly RETRY_DELAY: number;
68
+ readonly RATE_LIMIT_DELAY: number;
69
+ readonly USER_AGENT: string;
70
+ };
71
+ export declare const CONTENT_LIMITS: {
72
+ readonly MAX_SEARCH_RESULTS: 50;
73
+ readonly DEFAULT_SEARCH_RESULTS: 10;
74
+ readonly MAX_CONTENT_LENGTH: 100000;
75
+ readonly MAX_SNIPPET_LENGTH: 500;
76
+ };
77
+ export declare const TOKEN_CONFIG: {
78
+ readonly DEFAULT_MAX_TOKENS: 5000;
79
+ readonly MAX_TOKENS_LIMIT: 20000;
80
+ readonly MIN_TOKENS: 100;
81
+ readonly CHARS_PER_TOKEN: 4;
82
+ readonly CODE_CHARS_PER_TOKEN: 3;
83
+ };
84
+ export declare const PAGINATION_CONFIG: {
85
+ readonly DEFAULT_PAGE: 1;
86
+ readonly DEFAULT_PAGE_SIZE: 10;
87
+ readonly MAX_PAGE: 100;
88
+ };
89
+ export declare const JAMF_TOPICS: {
90
+ readonly enrollment: {
91
+ readonly name: "Enrollment & Onboarding";
92
+ readonly keywords: readonly ["enroll", "dep", "ade", "automated device enrollment", "user enrollment", "apple configurator", "onboard", "prestage", "enrollment method"];
93
+ };
94
+ readonly 'computer-management': {
95
+ readonly name: "Computer Management";
96
+ readonly keywords: readonly ["computer management", "computer inventory", "remote command", "remote administration", "mass action", "unmanag", "check-in", "startup script", "login event"];
97
+ };
98
+ readonly 'mobile-management': {
99
+ readonly name: "Mobile Device Management";
100
+ readonly keywords: readonly ["mobile device", "iphone", "ipad", "ios", "ipados", "mobile inventory", "mdm capabilities"];
101
+ };
102
+ readonly profiles: {
103
+ readonly name: "Configuration Profiles";
104
+ readonly keywords: readonly ["configuration profile", "profile", "payload", "restriction", "settings management", "computer configuration", "mobile configuration"];
105
+ };
106
+ readonly policies: {
107
+ readonly name: "Policies";
108
+ readonly keywords: readonly ["policy", "policies", "execution frequency", "user interaction", "policy management", "policy payload", "trigger"];
109
+ };
110
+ readonly packages: {
111
+ readonly name: "Packages & Deployment";
112
+ readonly keywords: readonly ["package", "pkg", "dmg", "package deployment", "package management", "installer"];
113
+ };
114
+ readonly scripts: {
115
+ readonly name: "Scripts";
116
+ readonly keywords: readonly ["script", "bash", "shell", "login script", "startup script", "extension attribute"];
117
+ };
118
+ readonly patch: {
119
+ readonly name: "Patch Management";
120
+ readonly keywords: readonly ["patch", "patch management", "patch policy", "software update", "patch reporting", "software title", "patch source"];
121
+ };
122
+ readonly apps: {
123
+ readonly name: "App Management";
124
+ readonly keywords: readonly ["app", "application", "app installer", "vpp", "volume purchase", "managed app", "app store", "mac app store"];
125
+ };
126
+ readonly 'self-service': {
127
+ readonly name: "Self Service";
128
+ readonly keywords: readonly ["self service", "self-service", "dock item", "branding", "bookmark", "user portal"];
129
+ };
130
+ readonly security: {
131
+ readonly name: "Security Settings";
132
+ readonly keywords: readonly ["security", "security settings", "restricted software", "efi password", "firmware password", "gatekeeper"];
133
+ };
134
+ readonly filevault: {
135
+ readonly name: "FileVault & Encryption";
136
+ readonly keywords: readonly ["filevault", "encryption", "recovery key", "disk encryption", "institutional recovery", "personal recovery"];
137
+ };
138
+ readonly compliance: {
139
+ readonly name: "Compliance & Baseline";
140
+ readonly keywords: readonly ["compliance", "baseline", "compliance baseline", "security benchmark", "cis benchmark", "gdpr"];
141
+ };
142
+ readonly 'protect-analytics': {
143
+ readonly name: "Threat Analytics";
144
+ readonly keywords: readonly ["analytic", "threat", "detection", "analytic chain", "custom analytic", "jamf-managed analytic", "alert"];
145
+ };
146
+ readonly 'protect-plans': {
147
+ readonly name: "Protect Plans";
148
+ readonly keywords: readonly ["protect plan", "jamf protect plan", "threat prevention", "endpoint security"];
149
+ };
150
+ readonly 'data-integration': {
151
+ readonly name: "SIEM & Data Integration";
152
+ readonly keywords: readonly ["siem", "splunk", "sentinel", "elastic", "datadog", "sumo logic", "google secops", "amazon s3", "data stream", "data integration"];
153
+ };
154
+ readonly sso: {
155
+ readonly name: "Single Sign-On";
156
+ readonly keywords: readonly ["sso", "single sign-on", "saml", "oidc", "oauth", "jamf account", "platform sso"];
157
+ };
158
+ readonly ldap: {
159
+ readonly name: "Directory Services";
160
+ readonly keywords: readonly ["ldap", "active directory", "directory binding", "open directory", "google secure ldap"];
161
+ };
162
+ readonly 'identity-provider': {
163
+ readonly name: "Identity Providers";
164
+ readonly keywords: readonly ["identity provider", "idp", "okta", "azure ad", "entra id", "microsoft entra", "google", "cloud identity"];
165
+ };
166
+ readonly 'connect-login': {
167
+ readonly name: "Jamf Connect Login";
168
+ readonly keywords: readonly ["jamf connect", "login window", "local account", "account creation", "account migration", "mobile account"];
169
+ };
170
+ readonly 'connect-password': {
171
+ readonly name: "Password & Keychain";
172
+ readonly keywords: readonly ["password sync", "keychain", "password policy", "local password"];
173
+ };
174
+ readonly 'privilege-elevation': {
175
+ readonly name: "Privilege Elevation";
176
+ readonly keywords: readonly ["privilege elevation", "admin rights", "sudo", "privilege", "self service+"];
177
+ };
178
+ readonly users: {
179
+ readonly name: "Users & Accounts";
180
+ readonly keywords: readonly ["user account", "local account", "managed local administrator", "mdm-enabled", "user group", "admin account"];
181
+ };
182
+ readonly 'user-roles': {
183
+ readonly name: "Roles & Permissions";
184
+ readonly keywords: readonly ["user role", "permission", "privilege", "administrator role", "api role", "access level"];
185
+ };
186
+ readonly inventory: {
187
+ readonly name: "Inventory";
188
+ readonly keywords: readonly ["inventory", "inventory collection", "inventory display", "hardware inventory", "software inventory", "inventory preload"];
189
+ };
190
+ readonly 'extension-attributes': {
191
+ readonly name: "Extension Attributes";
192
+ readonly keywords: readonly ["extension attribute", "custom attribute", "ea", "custom field", "inventory attribute"];
193
+ };
194
+ readonly reports: {
195
+ readonly name: "Reports & Searches";
196
+ readonly keywords: readonly ["report", "search", "advanced search", "simple search", "smart group", "criteria", "computer report"];
197
+ };
198
+ readonly history: {
199
+ readonly name: "History & Logs";
200
+ readonly keywords: readonly ["history", "log", "audit", "audit log", "computer history", "management history", "server log"];
201
+ };
202
+ readonly api: {
203
+ readonly name: "API & Automation";
204
+ readonly keywords: readonly ["api", "rest api", "classic api", "jamf pro api", "api role", "api client", "bearer token"];
205
+ };
206
+ readonly graphql: {
207
+ readonly name: "GraphQL API";
208
+ readonly keywords: readonly ["graphql", "query", "mutation", "schema", "protect api"];
209
+ };
210
+ readonly webhooks: {
211
+ readonly name: "Webhooks & Notifications";
212
+ readonly keywords: readonly ["webhook", "notification", "email notification", "impact alert", "event"];
213
+ };
214
+ readonly network: {
215
+ readonly name: "Network Configuration";
216
+ readonly keywords: readonly ["wifi", "vpn", "network", "proxy", "firewall", "port", "ip address", "url"];
217
+ };
218
+ readonly certificates: {
219
+ readonly name: "Certificates";
220
+ readonly keywords: readonly ["certificate", "ssl", "scep", "push certificate", "apns", "signing"];
221
+ };
222
+ readonly printers: {
223
+ readonly name: "Printers";
224
+ readonly keywords: readonly ["printer", "print", "cups", "ppd"];
225
+ };
226
+ readonly 'remote-access': {
227
+ readonly name: "Remote Access";
228
+ readonly keywords: readonly ["remote assist", "jamf remote", "teamviewer", "screen sharing", "vnc", "remote administration"];
229
+ };
230
+ readonly 'server-admin': {
231
+ readonly name: "Server Administration";
232
+ readonly keywords: readonly ["server", "jamf pro server", "activation code", "smtp", "ssl certificate", "maintenance", "health check", "clustering"];
233
+ };
234
+ readonly 'change-management': {
235
+ readonly name: "Change Management";
236
+ readonly keywords: readonly ["change management", "change log", "version", "backup", "restore"];
237
+ };
238
+ readonly licensing: {
239
+ readonly name: "License Management";
240
+ readonly keywords: readonly ["license", "licensed software", "license compliance", "license usage", "vpp token"];
241
+ };
242
+ readonly education: {
243
+ readonly name: "Education & Classroom";
244
+ readonly keywords: readonly ["school", "class", "teacher", "student", "jamf teacher", "jamf student", "jamf parent", "classroom", "education"];
245
+ };
246
+ readonly 'school-integration': {
247
+ readonly name: "School Integrations";
248
+ readonly keywords: readonly ["apple school manager", "asm", "shared ipad", "location", "google classroom"];
249
+ };
250
+ };
251
+ export type TopicId = keyof typeof JAMF_TOPICS;
252
+ export declare const SELECTORS: {
253
+ readonly CONTENT: "article, .article-content, main article, #content";
254
+ readonly TITLE: "h1";
255
+ readonly BREADCRUMB: "[class*=\"breadcrumb\"] a, nav[aria-label=\"breadcrumb\"] a";
256
+ readonly TOC: "nav.related-links a, [class*=\"toc\"] a, [class*=\"sidebar\"] a";
257
+ readonly RELATED: "nav.related-links a, .related-topics a, [class*=\"related\"] a";
258
+ readonly REMOVE: "script, style, noscript, footer, [id=\"initial-data\"], [class*=\"cookie\"], [class*=\"tracking\"], [class*=\"analytics\"]";
259
+ };
260
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiBH,eAAO,MAAM,aAAa,2BAA2B,CAAC;AACtD,eAAO,MAAM,cAAc,2BAA2B,CAAC;AACvD,eAAO,MAAM,YAAY,8BAA8B,CAAC;AAGxD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyChB,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,aAAa,CAAC;AAGnD,oBAAY,cAAc;IACxB,QAAQ,aAAa;IACrB,IAAI,SAAS;CACd;AAGD,eAAO,MAAM,SAAS;;;;;CAKZ,CAAC;AAGX,eAAO,MAAM,SAAS,QAAsC,CAAC;AAG7D,eAAO,MAAM,cAAc;;;;;;CAMjB,CAAC;AAGX,eAAO,MAAM,cAAc;;;;;CAKjB,CAAC;AAGX,eAAO,MAAM,YAAY;;;;;;CAMf,CAAC;AAGX,eAAO,MAAM,iBAAiB;;;;CAIpB,CAAC;AAGX,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkMd,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,MAAM,OAAO,WAAW,CAAC;AAG/C,eAAO,MAAM,SAAS;;;;;;;CAcZ,CAAC"}