@helyx/core 0.2.1 → 0.2.3
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/CHANGELOG.md +14 -0
- package/dist/help-areas.d.ts +6 -0
- package/dist/help-areas.js +373 -0
- package/dist/help-collection.d.ts +81 -0
- package/dist/help-collection.js +4124 -0
- package/dist/help-direct-answer.d.ts +14 -0
- package/dist/help-direct-answer.js +52 -0
- package/dist/help-keywords.d.ts +10 -0
- package/dist/help-keywords.js +98 -0
- package/dist/help-lexical.d.ts +27 -0
- package/dist/help-lexical.js +99 -0
- package/dist/help-retrieval.d.ts +34 -0
- package/dist/help-retrieval.js +263 -0
- package/dist/help-runtime-collection.d.ts +4 -0
- package/dist/help-runtime-collection.js +5439 -0
- package/dist/help-runtime.d.ts +66 -0
- package/dist/help-runtime.js +221 -0
- package/dist/help.d.ts +123 -0
- package/dist/help.js +304 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +7 -0
- package/package.json +3 -3
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { type HelpFaq, type HelpReleaseStatus } from "./help.js";
|
|
2
|
+
export type HelpRuntimeSource = {
|
|
3
|
+
kind: "website";
|
|
4
|
+
url: string;
|
|
5
|
+
contentHash: string;
|
|
6
|
+
} | {
|
|
7
|
+
kind: "generic";
|
|
8
|
+
comparisons: Array<{
|
|
9
|
+
id: string;
|
|
10
|
+
area: string;
|
|
11
|
+
contentHash: string;
|
|
12
|
+
url: string;
|
|
13
|
+
question: string;
|
|
14
|
+
}>;
|
|
15
|
+
} | {
|
|
16
|
+
kind: "custom";
|
|
17
|
+
};
|
|
18
|
+
export interface HelpRuntimeFaq {
|
|
19
|
+
id: string;
|
|
20
|
+
areaCode: string;
|
|
21
|
+
area: string;
|
|
22
|
+
areaName: string;
|
|
23
|
+
moduleId: string | null;
|
|
24
|
+
question: string;
|
|
25
|
+
answerMarkdown: string;
|
|
26
|
+
answerText: string;
|
|
27
|
+
releaseStatus: HelpReleaseStatus;
|
|
28
|
+
deploymentSupport: HelpFaq["deploymentSupport"];
|
|
29
|
+
context: string[];
|
|
30
|
+
/** Exact centrally approved content identity; no staff identity or internal file path. */
|
|
31
|
+
approvedRevision: string;
|
|
32
|
+
authoringHash: string;
|
|
33
|
+
source: HelpRuntimeSource;
|
|
34
|
+
contentHash: string;
|
|
35
|
+
}
|
|
36
|
+
export interface HelpRuntimeCollection {
|
|
37
|
+
schemaVersion: 1;
|
|
38
|
+
revision: string;
|
|
39
|
+
faqs: HelpRuntimeFaq[];
|
|
40
|
+
}
|
|
41
|
+
export interface HelpSemanticArtifact {
|
|
42
|
+
schemaVersion: 1;
|
|
43
|
+
revision: string;
|
|
44
|
+
collection: HelpRuntimeCollection;
|
|
45
|
+
manifest: {
|
|
46
|
+
sourceRevision: string;
|
|
47
|
+
createdAt: string;
|
|
48
|
+
embeddingIdentity: string;
|
|
49
|
+
dimensions: 384;
|
|
50
|
+
representation: "question-area-v1";
|
|
51
|
+
retrievalPolicy: "conservative-v1" | "conservative-v2" | "conservative-v3" | "conservative-v4" | "conservative-v5";
|
|
52
|
+
};
|
|
53
|
+
vectors: Array<{
|
|
54
|
+
id: string;
|
|
55
|
+
inputHash: string;
|
|
56
|
+
values: number[];
|
|
57
|
+
}>;
|
|
58
|
+
}
|
|
59
|
+
export declare function createHelpRuntimeFaq(value: Omit<HelpRuntimeFaq, "contentHash">): HelpRuntimeFaq;
|
|
60
|
+
export declare function createHelpRuntimeCollection(input: readonly HelpRuntimeFaq[]): HelpRuntimeCollection;
|
|
61
|
+
export declare function parseHelpRuntimeCollection(input: unknown): HelpRuntimeCollection;
|
|
62
|
+
/** Adapt an already validated release bundle; no provider or authoring state is implied. */
|
|
63
|
+
export declare function helpRuntimeFromLegacy(input: HelpFaq[]): HelpRuntimeCollection;
|
|
64
|
+
export declare function createHelpSemanticArtifact(input: Omit<HelpSemanticArtifact, "schemaVersion" | "revision">): HelpSemanticArtifact;
|
|
65
|
+
export declare function parseHelpSemanticArtifact(value: unknown): HelpSemanticArtifact;
|
|
66
|
+
//# sourceMappingURL=help-runtime.d.ts.map
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
2
|
+
import { createHelpCollection, } from "./help.js";
|
|
3
|
+
const checksum = (value) => createHash("sha256").update(JSON.stringify(value)).digest("hex");
|
|
4
|
+
const validHash = (value) => typeof value === "string" && /^[a-f0-9]{64}$/u.test(value);
|
|
5
|
+
const object = (value) => {
|
|
6
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
7
|
+
throw new Error("Invalid Help runtime object");
|
|
8
|
+
return value;
|
|
9
|
+
};
|
|
10
|
+
const text = (value, max) => {
|
|
11
|
+
if (typeof value !== "string" || !value.trim() || value.length > max)
|
|
12
|
+
throw new Error("Invalid Help runtime text");
|
|
13
|
+
return value;
|
|
14
|
+
};
|
|
15
|
+
const publicUrl = (value) => {
|
|
16
|
+
const url = new URL(text(value, 2000));
|
|
17
|
+
if (url.origin !== "https://docs.helyx.gg" ||
|
|
18
|
+
url.username ||
|
|
19
|
+
url.password ||
|
|
20
|
+
url.search ||
|
|
21
|
+
!/^#help-faq-[1-9]\d{5}$/u.test(url.hash))
|
|
22
|
+
throw new Error("Invalid Help runtime source URL");
|
|
23
|
+
return url.href;
|
|
24
|
+
};
|
|
25
|
+
function content(value) {
|
|
26
|
+
const faq = object(value), id = text(faq.id, 6), areaCode = text(faq.areaCode, 3), area = text(faq.area, 200), source = object(faq.source);
|
|
27
|
+
if (!/^[1-9]\d{5}$/u.test(id) ||
|
|
28
|
+
id.endsWith("000") ||
|
|
29
|
+
id.slice(0, 3) !== areaCode ||
|
|
30
|
+
typeof faq.approvedRevision !== "string" ||
|
|
31
|
+
!/^[1-9]\d{0,17}$/u.test(faq.approvedRevision) ||
|
|
32
|
+
!validHash(faq.authoringHash))
|
|
33
|
+
throw new Error("Invalid Help runtime identity");
|
|
34
|
+
let provenance;
|
|
35
|
+
if (source.kind === "website") {
|
|
36
|
+
const url = publicUrl(source.url);
|
|
37
|
+
if (["900", "901"].includes(areaCode) ||
|
|
38
|
+
!validHash(source.contentHash) ||
|
|
39
|
+
new URL(url).hash !== `#help-faq-${id}`)
|
|
40
|
+
throw new Error("Invalid Help website provenance");
|
|
41
|
+
provenance = { kind: "website", url, contentHash: source.contentHash };
|
|
42
|
+
}
|
|
43
|
+
else if (source.kind === "generic") {
|
|
44
|
+
if (areaCode !== "900" ||
|
|
45
|
+
area !== "platform:generic" ||
|
|
46
|
+
!Array.isArray(source.comparisons) ||
|
|
47
|
+
source.comparisons.length < 2 ||
|
|
48
|
+
source.comparisons.length > 100)
|
|
49
|
+
throw new Error("Invalid Help generic provenance");
|
|
50
|
+
const comparisons = source.comparisons
|
|
51
|
+
.map((input) => {
|
|
52
|
+
const ref = object(input), id = text(ref.id, 6), area = text(ref.area, 200), url = publicUrl(ref.url);
|
|
53
|
+
if (!/^[1-9]\d{5}$/u.test(id) ||
|
|
54
|
+
["900", "901"].includes(id.slice(0, 3)) ||
|
|
55
|
+
id.endsWith("000") ||
|
|
56
|
+
area.startsWith("platform:") ||
|
|
57
|
+
!validHash(ref.contentHash) ||
|
|
58
|
+
new URL(url).hash !== `#help-faq-${id}`)
|
|
59
|
+
throw new Error("Invalid Help generic comparison");
|
|
60
|
+
return {
|
|
61
|
+
id,
|
|
62
|
+
area,
|
|
63
|
+
contentHash: ref.contentHash,
|
|
64
|
+
url,
|
|
65
|
+
question: text(ref.question, 600),
|
|
66
|
+
};
|
|
67
|
+
})
|
|
68
|
+
.sort((a, b) => a.id.localeCompare(b.id));
|
|
69
|
+
if (new Set(comparisons.map((ref) => ref.id)).size !== comparisons.length ||
|
|
70
|
+
new Set(comparisons.map((ref) => ref.area)).size < 2)
|
|
71
|
+
throw new Error("Invalid Help comparison identity");
|
|
72
|
+
provenance = { kind: "generic", comparisons };
|
|
73
|
+
}
|
|
74
|
+
else if (source.kind === "custom" &&
|
|
75
|
+
areaCode === "901" &&
|
|
76
|
+
area === "platform:custom")
|
|
77
|
+
provenance = { kind: "custom" };
|
|
78
|
+
else
|
|
79
|
+
throw new Error("Invalid Help provenance kind");
|
|
80
|
+
if (faq.moduleId !== null &&
|
|
81
|
+
(typeof faq.moduleId !== "string" ||
|
|
82
|
+
!/^helyx\.[a-z0-9-]+$/u.test(faq.moduleId)))
|
|
83
|
+
throw new Error("Invalid Help runtime module");
|
|
84
|
+
if (!["live", "testing", "planned", "alpha", "reference", "unknown"].includes(String(faq.releaseStatus)) ||
|
|
85
|
+
!["both", "hosted", "self-hosted", "not_declared"].includes(String(faq.deploymentSupport)) ||
|
|
86
|
+
!Array.isArray(faq.context) ||
|
|
87
|
+
faq.context.length > 30)
|
|
88
|
+
throw new Error("Invalid Help runtime availability");
|
|
89
|
+
if (source.kind !== "website" &&
|
|
90
|
+
(faq.moduleId !== null ||
|
|
91
|
+
faq.releaseStatus !== "reference" ||
|
|
92
|
+
faq.deploymentSupport !== "not_declared"))
|
|
93
|
+
throw new Error("Curated Help does not declare module availability");
|
|
94
|
+
return {
|
|
95
|
+
id,
|
|
96
|
+
areaCode,
|
|
97
|
+
area,
|
|
98
|
+
areaName: text(faq.areaName, 200),
|
|
99
|
+
moduleId: faq.moduleId,
|
|
100
|
+
question: text(faq.question, 600),
|
|
101
|
+
answerMarkdown: text(faq.answerMarkdown, 100000),
|
|
102
|
+
answerText: text(faq.answerText, 100000),
|
|
103
|
+
releaseStatus: faq.releaseStatus,
|
|
104
|
+
deploymentSupport: faq.deploymentSupport,
|
|
105
|
+
context: faq.context.map((value) => text(value, 10000)),
|
|
106
|
+
approvedRevision: faq.approvedRevision,
|
|
107
|
+
authoringHash: faq.authoringHash,
|
|
108
|
+
source: provenance,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
export function createHelpRuntimeFaq(value) {
|
|
112
|
+
const canonical = content(value);
|
|
113
|
+
return { ...canonical, contentHash: checksum(canonical) };
|
|
114
|
+
}
|
|
115
|
+
export function createHelpRuntimeCollection(input) {
|
|
116
|
+
if (input.length > 5000)
|
|
117
|
+
throw new Error("Help runtime collection is too large");
|
|
118
|
+
const faqs = input
|
|
119
|
+
.map((faq) => {
|
|
120
|
+
const record = createHelpRuntimeFaq(faq);
|
|
121
|
+
if (record.contentHash !== faq.contentHash)
|
|
122
|
+
throw new Error("Help runtime FAQ checksum mismatch");
|
|
123
|
+
return record;
|
|
124
|
+
})
|
|
125
|
+
.sort((a, b) => a.id.localeCompare(b.id));
|
|
126
|
+
if (new Set(faqs.map((faq) => faq.id)).size !== faqs.length)
|
|
127
|
+
throw new Error("Duplicate Help runtime ID");
|
|
128
|
+
return { schemaVersion: 1, revision: checksum(faqs), faqs };
|
|
129
|
+
}
|
|
130
|
+
export function parseHelpRuntimeCollection(input) {
|
|
131
|
+
const value = object(input);
|
|
132
|
+
if (value.schemaVersion !== 1 || !Array.isArray(value.faqs))
|
|
133
|
+
throw new Error("Unsupported Help runtime collection");
|
|
134
|
+
const collection = createHelpRuntimeCollection(value.faqs);
|
|
135
|
+
if (collection.revision !== value.revision)
|
|
136
|
+
throw new Error("Help runtime collection checksum mismatch");
|
|
137
|
+
return collection;
|
|
138
|
+
}
|
|
139
|
+
/** Adapt an already validated release bundle; no provider or authoring state is implied. */
|
|
140
|
+
export function helpRuntimeFromLegacy(input) {
|
|
141
|
+
return createHelpRuntimeCollection(createHelpCollection(input).faqs.map((faq) => createHelpRuntimeFaq({
|
|
142
|
+
id: faq.id,
|
|
143
|
+
areaCode: faq.moduleCode,
|
|
144
|
+
area: faq.area,
|
|
145
|
+
areaName: faq.areaName,
|
|
146
|
+
moduleId: faq.moduleId,
|
|
147
|
+
question: faq.question,
|
|
148
|
+
answerMarkdown: faq.answerMarkdown,
|
|
149
|
+
answerText: faq.answerText,
|
|
150
|
+
releaseStatus: faq.releaseStatus,
|
|
151
|
+
deploymentSupport: faq.deploymentSupport,
|
|
152
|
+
context: faq.context,
|
|
153
|
+
approvedRevision: "1",
|
|
154
|
+
authoringHash: faq.contentHash,
|
|
155
|
+
source: {
|
|
156
|
+
kind: "website",
|
|
157
|
+
url: faq.sourceUrl,
|
|
158
|
+
contentHash: faq.contentHash,
|
|
159
|
+
},
|
|
160
|
+
})));
|
|
161
|
+
}
|
|
162
|
+
export function createHelpSemanticArtifact(input) {
|
|
163
|
+
const collection = parseHelpRuntimeCollection(input.collection), manifest = input.manifest;
|
|
164
|
+
if (!validHash(manifest.sourceRevision) ||
|
|
165
|
+
!Number.isFinite(Date.parse(manifest.createdAt)) ||
|
|
166
|
+
!manifest.embeddingIdentity ||
|
|
167
|
+
manifest.embeddingIdentity.length > 500 ||
|
|
168
|
+
manifest.dimensions !== 384 ||
|
|
169
|
+
manifest.representation !== "question-area-v1" ||
|
|
170
|
+
![
|
|
171
|
+
"conservative-v1",
|
|
172
|
+
"conservative-v2",
|
|
173
|
+
"conservative-v3",
|
|
174
|
+
"conservative-v4",
|
|
175
|
+
"conservative-v5",
|
|
176
|
+
].includes(manifest.retrievalPolicy) ||
|
|
177
|
+
!Array.isArray(input.vectors) ||
|
|
178
|
+
input.vectors.length !== collection.faqs.length)
|
|
179
|
+
throw new Error("Invalid Help semantic manifest");
|
|
180
|
+
const canonicalManifest = {
|
|
181
|
+
sourceRevision: manifest.sourceRevision,
|
|
182
|
+
createdAt: manifest.createdAt,
|
|
183
|
+
embeddingIdentity: manifest.embeddingIdentity,
|
|
184
|
+
dimensions: 384,
|
|
185
|
+
representation: "question-area-v1",
|
|
186
|
+
retrievalPolicy: manifest.retrievalPolicy,
|
|
187
|
+
};
|
|
188
|
+
const vectors = [...input.vectors]
|
|
189
|
+
.sort((a, b) => a.id.localeCompare(b.id))
|
|
190
|
+
.map((vector, index) => {
|
|
191
|
+
if (vector.id !== collection.faqs[index]?.id ||
|
|
192
|
+
!validHash(vector.inputHash) ||
|
|
193
|
+
!Array.isArray(vector.values) ||
|
|
194
|
+
vector.values.length !== 384 ||
|
|
195
|
+
vector.values.some((value) => !Number.isFinite(value)) ||
|
|
196
|
+
Math.abs(Math.hypot(...vector.values) - 1) > 0.0001)
|
|
197
|
+
throw new Error("Invalid Help semantic vector alignment");
|
|
198
|
+
return {
|
|
199
|
+
id: vector.id,
|
|
200
|
+
inputHash: vector.inputHash,
|
|
201
|
+
values: [...vector.values],
|
|
202
|
+
};
|
|
203
|
+
});
|
|
204
|
+
const canonical = {
|
|
205
|
+
schemaVersion: 1,
|
|
206
|
+
collection,
|
|
207
|
+
manifest: canonicalManifest,
|
|
208
|
+
vectors,
|
|
209
|
+
};
|
|
210
|
+
return { ...canonical, revision: checksum(canonical) };
|
|
211
|
+
}
|
|
212
|
+
export function parseHelpSemanticArtifact(value) {
|
|
213
|
+
const artifact = object(value);
|
|
214
|
+
if (artifact.schemaVersion !== 1)
|
|
215
|
+
throw new Error("Unsupported Help semantic artifact");
|
|
216
|
+
const result = createHelpSemanticArtifact(artifact);
|
|
217
|
+
if (result.revision !== artifact.revision)
|
|
218
|
+
throw new Error("Help semantic artifact checksum mismatch");
|
|
219
|
+
return result;
|
|
220
|
+
}
|
|
221
|
+
//# sourceMappingURL=help-runtime.js.map
|
package/dist/help.d.ts
ADDED
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
export declare const HELP_COLLECTION_SCHEMA_VERSION = 2;
|
|
2
|
+
export declare const HELP_QUESTION_MAX_LENGTH = 600;
|
|
3
|
+
export declare const HELP_DOCS_URL = "https://docs.helyx.gg/";
|
|
4
|
+
export interface HelpArea {
|
|
5
|
+
code: string;
|
|
6
|
+
area: string;
|
|
7
|
+
name: string;
|
|
8
|
+
}
|
|
9
|
+
export type HelpReleaseStatus = "live" | "testing" | "planned" | "alpha" | "reference" | "unknown";
|
|
10
|
+
export interface HelpFaq {
|
|
11
|
+
/** Module/area 100–999 followed by FAQ 001–999; neither number is reused. */
|
|
12
|
+
id: string;
|
|
13
|
+
moduleCode: string;
|
|
14
|
+
area: string;
|
|
15
|
+
areaName: string;
|
|
16
|
+
moduleId: string | null;
|
|
17
|
+
question: string;
|
|
18
|
+
answerMarkdown: string;
|
|
19
|
+
answerText: string;
|
|
20
|
+
sourceUrl: string;
|
|
21
|
+
sourcePath: string;
|
|
22
|
+
releaseStatus: HelpReleaseStatus;
|
|
23
|
+
deploymentSupport: "both" | "hosted" | "self-hosted" | "not_declared";
|
|
24
|
+
context: string[];
|
|
25
|
+
contentHash: string;
|
|
26
|
+
}
|
|
27
|
+
export interface HelpCollection {
|
|
28
|
+
schemaVersion: 2;
|
|
29
|
+
revision: string;
|
|
30
|
+
faqs: HelpFaq[];
|
|
31
|
+
}
|
|
32
|
+
export type HelpSearchResult = {
|
|
33
|
+
mode: "lexical";
|
|
34
|
+
revision: string;
|
|
35
|
+
} & ({
|
|
36
|
+
kind: "answer";
|
|
37
|
+
faq: HelpFaq;
|
|
38
|
+
} | {
|
|
39
|
+
kind: "choices";
|
|
40
|
+
faqs: HelpFaq[];
|
|
41
|
+
} | {
|
|
42
|
+
kind: "no_match";
|
|
43
|
+
reason: "empty" | "weak_match";
|
|
44
|
+
docsUrl: string;
|
|
45
|
+
} | {
|
|
46
|
+
kind: "invalid";
|
|
47
|
+
reason: "too_long";
|
|
48
|
+
});
|
|
49
|
+
/** Explicit field order makes hashes independent of JSON property order. */
|
|
50
|
+
export declare function helpFaqContent(faq: Omit<HelpFaq, "contentHash">): {
|
|
51
|
+
id: string;
|
|
52
|
+
moduleCode: string;
|
|
53
|
+
area: string;
|
|
54
|
+
areaName: string;
|
|
55
|
+
moduleId: string | null;
|
|
56
|
+
question: string;
|
|
57
|
+
answerMarkdown: string;
|
|
58
|
+
answerText: string;
|
|
59
|
+
sourceUrl: string;
|
|
60
|
+
sourcePath: string;
|
|
61
|
+
releaseStatus: HelpReleaseStatus;
|
|
62
|
+
deploymentSupport: "both" | "hosted" | "self-hosted" | "not_declared";
|
|
63
|
+
context: string[];
|
|
64
|
+
};
|
|
65
|
+
export declare function hashHelpFaq(faq: Omit<HelpFaq, "contentHash">): string;
|
|
66
|
+
export declare function createHelpCollection(faqs: readonly HelpFaq[]): HelpCollection;
|
|
67
|
+
/** Validate persisted/build input before it can enter retrieval or packaging. */
|
|
68
|
+
export declare function parseHelpCollection(value: unknown): HelpCollection;
|
|
69
|
+
/** Provider-free matching shared by bundled Help and the staff approved preview. */
|
|
70
|
+
export interface HelpLexicalDocument {
|
|
71
|
+
id: string;
|
|
72
|
+
question: string;
|
|
73
|
+
area: string;
|
|
74
|
+
areaName: string;
|
|
75
|
+
answerText: string;
|
|
76
|
+
}
|
|
77
|
+
export type HelpLexicalResult<T> = {
|
|
78
|
+
mode: "lexical";
|
|
79
|
+
revision: string;
|
|
80
|
+
} & ({
|
|
81
|
+
kind: "answer";
|
|
82
|
+
faq: T;
|
|
83
|
+
} | {
|
|
84
|
+
kind: "choices";
|
|
85
|
+
faqs: T[];
|
|
86
|
+
} | {
|
|
87
|
+
kind: "no_match";
|
|
88
|
+
reason: "empty" | "weak_match";
|
|
89
|
+
docsUrl: string;
|
|
90
|
+
} | {
|
|
91
|
+
kind: "invalid";
|
|
92
|
+
reason: "too_long";
|
|
93
|
+
});
|
|
94
|
+
export declare const normaliseHelpQuestion: (text: string) => string;
|
|
95
|
+
export declare function createHelpLexicalSearch<T extends HelpLexicalDocument>(faqs: readonly T[], revision: string, copy?: (faq: T) => T): (question: string) => HelpLexicalResult<T>;
|
|
96
|
+
/** Conservative local baseline. Scores are ranking signals, not probabilities. */
|
|
97
|
+
export declare function createHelpSearch(input: HelpCollection): (question: string) => HelpLexicalResult<HelpFaq>;
|
|
98
|
+
export declare const HELP_PUBLISHED_SOURCE_URL = "https://docs.helyx.gg/help-sources.json";
|
|
99
|
+
export interface HelpPublishedSourceRecord {
|
|
100
|
+
faq: HelpFaq;
|
|
101
|
+
sourceKind: "dedicated_faq" | "guide_question";
|
|
102
|
+
pageTitle: string;
|
|
103
|
+
sourceLine: number;
|
|
104
|
+
sourceAnswerHash: string;
|
|
105
|
+
issues: string[];
|
|
106
|
+
}
|
|
107
|
+
export interface HelpPublishedSourceFeed {
|
|
108
|
+
schemaVersion: 1;
|
|
109
|
+
revision: string;
|
|
110
|
+
sourceRevision: string;
|
|
111
|
+
nextModuleCode: number;
|
|
112
|
+
nextGeneralCode: number;
|
|
113
|
+
groups: Array<{
|
|
114
|
+
code: string;
|
|
115
|
+
area: string;
|
|
116
|
+
name: string;
|
|
117
|
+
nextFaq: number;
|
|
118
|
+
}>;
|
|
119
|
+
records: HelpPublishedSourceRecord[];
|
|
120
|
+
}
|
|
121
|
+
export declare function createHelpPublishedSources(input: Omit<HelpPublishedSourceFeed, "schemaVersion" | "revision">): HelpPublishedSourceFeed;
|
|
122
|
+
export declare function parseHelpPublishedSources(value: unknown): HelpPublishedSourceFeed;
|
|
123
|
+
//# sourceMappingURL=help.d.ts.map
|