gh-inari 0.1.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 (55) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +112 -0
  3. package/dist/artifact.d.ts +82 -0
  4. package/dist/artifact.js +472 -0
  5. package/dist/artifact.js.map +1 -0
  6. package/dist/cli.d.ts +14 -0
  7. package/dist/cli.js +395 -0
  8. package/dist/cli.js.map +1 -0
  9. package/dist/contract/index.d.ts +4 -0
  10. package/dist/contract/index.js +5 -0
  11. package/dist/contract/index.js.map +1 -0
  12. package/dist/contract/ir.d.ts +178 -0
  13. package/dist/contract/ir.js +1071 -0
  14. package/dist/contract/ir.js.map +1 -0
  15. package/dist/contract/issue-form.d.ts +38 -0
  16. package/dist/contract/issue-form.js +662 -0
  17. package/dist/contract/issue-form.js.map +1 -0
  18. package/dist/contract/schema.d.ts +48 -0
  19. package/dist/contract/schema.js +162 -0
  20. package/dist/contract/schema.js.map +1 -0
  21. package/dist/contract/validation.d.ts +24 -0
  22. package/dist/contract/validation.js +212 -0
  23. package/dist/contract/validation.js.map +1 -0
  24. package/dist/github/adapter.d.ts +48 -0
  25. package/dist/github/adapter.js +463 -0
  26. package/dist/github/adapter.js.map +1 -0
  27. package/dist/github/errors.d.ts +43 -0
  28. package/dist/github/errors.js +65 -0
  29. package/dist/github/errors.js.map +1 -0
  30. package/dist/github/index.d.ts +4 -0
  31. package/dist/github/index.js +5 -0
  32. package/dist/github/index.js.map +1 -0
  33. package/dist/github/transport.d.ts +19 -0
  34. package/dist/github/transport.js +54 -0
  35. package/dist/github/transport.js.map +1 -0
  36. package/dist/github/types.d.ts +62 -0
  37. package/dist/github/types.js +16 -0
  38. package/dist/github/types.js.map +1 -0
  39. package/dist/github.d.ts +1 -0
  40. package/dist/github.js +2 -0
  41. package/dist/github.js.map +1 -0
  42. package/dist/index.d.ts +10 -0
  43. package/dist/index.js +32 -0
  44. package/dist/index.js.map +1 -0
  45. package/dist/pr-policy.d.ts +39 -0
  46. package/dist/pr-policy.js +313 -0
  47. package/dist/pr-policy.js.map +1 -0
  48. package/dist/pull-request-template.d.ts +42 -0
  49. package/dist/pull-request-template.js +481 -0
  50. package/dist/pull-request-template.js.map +1 -0
  51. package/dist/template-discovery.d.ts +68 -0
  52. package/dist/template-discovery.js +431 -0
  53. package/dist/template-discovery.js.map +1 -0
  54. package/gh-inari +18 -0
  55. package/package.json +92 -0
@@ -0,0 +1,472 @@
1
+ import { SemanticValidationError, validateSemanticInput, } from "./contract/validation.js";
2
+ import { assertCanonicalContract } from "./contract/ir.js";
3
+ import { markValidatedRenderedIssueArtifact, markValidatedRenderedPullRequestArtifact, } from "./github/types.js";
4
+ export class ArtifactInputError extends Error {
5
+ code;
6
+ path;
7
+ constructor(code, message, path = "$") {
8
+ super(message);
9
+ this.name = "ArtifactInputError";
10
+ this.code = code;
11
+ this.path = path;
12
+ }
13
+ }
14
+ /** Parse the documented JSON input envelope while keeping field semantics adapter-independent. */
15
+ export function parseArtifactInputDocument(input) {
16
+ if (!isRecord(input))
17
+ throw new ArtifactInputError("INPUT_DOCUMENT_INVALID", "Input must be a JSON object.");
18
+ const metadataKeys = ["title", "labels", "assignees", "head", "base", "draft", "maintainerCanModify"];
19
+ if (Object.prototype.hasOwnProperty.call(input, "fields")) {
20
+ if (!isRecord(input.fields))
21
+ throw new ArtifactInputError("INPUT_DOCUMENT_INVALID", "fields must be an object.", "$.fields");
22
+ const metadata = {};
23
+ for (const key of metadataKeys) {
24
+ if (input[key] !== undefined)
25
+ metadata[key] = input[key];
26
+ }
27
+ const unknown = Object.keys(input).filter((key) => key !== "fields" && !Object.prototype.hasOwnProperty.call(metadata, key));
28
+ if (unknown.length > 0)
29
+ throw new ArtifactInputError("INPUT_DOCUMENT_INVALID", `Unknown input property "${unknown[0]}".`, `$.${unknown[0]}`);
30
+ return { fields: input.fields, metadata: parseMetadata(metadata) };
31
+ }
32
+ const reservedInBare = Object.keys(input).find((key) => metadataKeys.includes(key));
33
+ if (reservedInBare !== undefined) {
34
+ throw new ArtifactInputError("INPUT_DOCUMENT_INVALID", `Reserved metadata key "${reservedInBare}" cannot appear without a fields property.`, `$.${reservedInBare}`);
35
+ }
36
+ return { fields: input, metadata: {} };
37
+ }
38
+ export function renderIssueArtifact(contractInput, input) {
39
+ assertCanonicalContract(contractInput);
40
+ if (contractInput.artifactKind !== "issue")
41
+ throw new ArtifactInputError("INPUT_DOCUMENT_INVALID", "An Issue contract is required.");
42
+ const validation = validateSemanticInput(contractInput, input);
43
+ if (!validation.valid)
44
+ throw new SemanticValidationError(validation.violations);
45
+ return renderIssueBody(contractInput, validation.values);
46
+ }
47
+ export function renderPullRequestArtifact(contractInput, input) {
48
+ assertCanonicalContract(contractInput);
49
+ if (contractInput.artifactKind !== "pull_request") {
50
+ throw new ArtifactInputError("INPUT_DOCUMENT_INVALID", "A pull request contract is required.");
51
+ }
52
+ const validation = validateSemanticInput(contractInput, input);
53
+ if (!validation.valid)
54
+ throw new SemanticValidationError(validation.violations);
55
+ return renderPullRequestBody(contractInput, validation.values);
56
+ }
57
+ /** Construct the only values accepted by the GitHub mutation adapter. */
58
+ export function prepareIssueArtifact(contractInput, input) {
59
+ assertCanonicalContract(contractInput);
60
+ if (contractInput.artifactKind !== "issue")
61
+ throw new ArtifactInputError("INPUT_DOCUMENT_INVALID", "An Issue contract is required.");
62
+ const validation = validateSemanticInput(contractInput, input.fields);
63
+ if (!validation.valid)
64
+ throw new SemanticValidationError(validation.violations);
65
+ const title = requiredMetadataString(input.metadata.title, "title");
66
+ const labels = input.metadata.labels ?? contractInput.nativeMetadata.labels;
67
+ const artifact = markValidatedRenderedIssueArtifact({
68
+ kind: "issue",
69
+ title,
70
+ body: renderIssueBody(contractInput, validation.values),
71
+ ...(labels === undefined ? {} : { labels }),
72
+ ...(input.metadata.assignees === undefined ? {} : { assignees: input.metadata.assignees }),
73
+ });
74
+ return { input, validation, artifact };
75
+ }
76
+ export function preparePullRequestArtifact(contractInput, input) {
77
+ assertCanonicalContract(contractInput);
78
+ if (contractInput.artifactKind !== "pull_request") {
79
+ throw new ArtifactInputError("INPUT_DOCUMENT_INVALID", "A pull request contract is required.");
80
+ }
81
+ const validation = validateSemanticInput(contractInput, input.fields);
82
+ if (!validation.valid)
83
+ throw new SemanticValidationError(validation.violations);
84
+ const title = requiredMetadataString(input.metadata.title, "title");
85
+ const head = requiredMetadataString(input.metadata.head, "head");
86
+ const base = requiredMetadataString(input.metadata.base, "base");
87
+ const artifact = markValidatedRenderedPullRequestArtifact({
88
+ kind: "pull_request",
89
+ title,
90
+ body: renderPullRequestBody(contractInput, validation.values),
91
+ head,
92
+ base,
93
+ ...(input.metadata.draft === undefined ? {} : { draft: input.metadata.draft }),
94
+ ...(input.metadata.maintainerCanModify === undefined
95
+ ? {}
96
+ : { maintainerCanModify: input.metadata.maintainerCanModify }),
97
+ });
98
+ return { input, validation, artifact };
99
+ }
100
+ export function parseExistingIssueArtifact(contractInput, body) {
101
+ assertCanonicalContract(contractInput);
102
+ if (contractInput.artifactKind !== "issue")
103
+ throw new ArtifactInputError("INPUT_DOCUMENT_INVALID", "An Issue contract is required.");
104
+ return parseRenderedBody(contractInput, body ?? "", 3, false);
105
+ }
106
+ export function parseExistingPullRequestArtifact(contractInput, body) {
107
+ assertCanonicalContract(contractInput);
108
+ if (contractInput.artifactKind !== "pull_request") {
109
+ throw new ArtifactInputError("INPUT_DOCUMENT_INVALID", "A pull request contract is required.");
110
+ }
111
+ return parseRenderedBody(contractInput, body ?? "", undefined, true);
112
+ }
113
+ export function validateExistingIssueArtifact(contractInput, body) {
114
+ assertCanonicalContract(contractInput);
115
+ const parse = parseExistingIssueArtifact(contractInput, body);
116
+ return validateParsedArtifact(contractInput, parse);
117
+ }
118
+ export function validateExistingPullRequestArtifact(contractInput, body) {
119
+ assertCanonicalContract(contractInput);
120
+ const parse = parseExistingPullRequestArtifact(contractInput, body);
121
+ return validateParsedArtifact(contractInput, parse);
122
+ }
123
+ export async function validateExistingIssueFromAdapter(reader, contract, issueNumber) {
124
+ const issue = await reader.getIssue(issueNumber);
125
+ return { number: issueNumber, url: issue.url, result: validateExistingIssueArtifact(contract, issue.body) };
126
+ }
127
+ export async function validateExistingPullRequestFromAdapter(reader, contract, pullRequestNumber) {
128
+ const pullRequest = await reader.getPullRequest(pullRequestNumber);
129
+ return {
130
+ number: pullRequestNumber,
131
+ url: pullRequest.url,
132
+ result: validateExistingPullRequestArtifact(contract, pullRequest.body),
133
+ };
134
+ }
135
+ function validateParsedArtifact(contract, parse) {
136
+ if (!parse.parsed) {
137
+ const classification = parse.diagnostics.some((diagnostic) => diagnostic.code === "EXISTING_WRONG_TEMPLATE")
138
+ ? "wrong-template"
139
+ : "unparseable";
140
+ return { valid: false, classification, parse, violations: parse.diagnostics };
141
+ }
142
+ const semantic = validateSemanticInput(contract, parse.values);
143
+ return {
144
+ valid: semantic.valid,
145
+ classification: semantic.valid ? "valid" : "semantic",
146
+ parse,
147
+ violations: semantic.violations,
148
+ };
149
+ }
150
+ function renderIssueBody(contract, values) {
151
+ const blocks = [];
152
+ for (let sectionIndex = 0; sectionIndex < contract.sections.length; sectionIndex += 1) {
153
+ const section = contract.sections[sectionIndex];
154
+ if (section.kind === "documentation") {
155
+ const content = trimBlankLines(section.content ?? "");
156
+ if (content !== undefined)
157
+ blocks.push(content);
158
+ continue;
159
+ }
160
+ const title = section.title ?? section.fields[0]?.label;
161
+ if (title === undefined)
162
+ continue;
163
+ const body = section.fields
164
+ .map((field) => renderFieldValue(field, values[field.id], "issue"))
165
+ .filter(Boolean)
166
+ .join("\n\n");
167
+ blocks.push([`### ${escapeHeading(title)}`, body].filter((part) => part.length > 0).join("\n\n"));
168
+ }
169
+ return `${blocks.join("\n\n")}\n`;
170
+ }
171
+ function renderPullRequestBody(contract, values) {
172
+ const blocks = [];
173
+ for (let sectionIndex = 0; sectionIndex < contract.sections.length; sectionIndex += 1) {
174
+ const section = contract.sections[sectionIndex];
175
+ if (section.kind === "documentation") {
176
+ const content = trimBlankLines(section.content ?? "");
177
+ if (content !== undefined)
178
+ blocks.push(section.title === undefined ? content : renderDocumentation(section, content));
179
+ continue;
180
+ }
181
+ const title = section.title ?? section.fields[0]?.label;
182
+ const level = section.render.headingLevel ?? section.nativeMetadata.headingLevel;
183
+ if (title === undefined || level === undefined)
184
+ throw new ArtifactInputError("INPUT_DOCUMENT_INVALID", `PR section "${section.id}" has no heading identity.`);
185
+ const rendered = section.fields
186
+ .map((field) => renderFieldValue(field, values[field.id], "pull_request"))
187
+ .filter(Boolean);
188
+ blocks.push([`${"#".repeat(level)} ${escapeHeading(title)}`, ...rendered].join("\n\n"));
189
+ }
190
+ return `${blocks.join("\n\n")}\n`;
191
+ }
192
+ function renderDocumentation(section, content) {
193
+ const level = section.render.headingLevel ?? section.nativeMetadata.headingLevel;
194
+ if (section.title === undefined || level === undefined)
195
+ return content;
196
+ return [`${"#".repeat(level)} ${escapeHeading(section.title)}`, content].join("\n\n");
197
+ }
198
+ function renderFieldValue(field, value, kind) {
199
+ if (field.type === "string" || field.type === "enum") {
200
+ if (typeof value === "string")
201
+ return escapeMarkdownValue(value);
202
+ return kind === "pull_request" ? (field.nativeMetadata.placeholder ?? "") : "";
203
+ }
204
+ if (field.type === "array") {
205
+ if (!Array.isArray(value))
206
+ return "";
207
+ return value.map((entry) => `- ${escapeMarkdownValue(String(entry))}`).join("\n");
208
+ }
209
+ const selected = new Set(Array.isArray(value) ? value.filter((entry) => typeof entry === "string") : []);
210
+ const placeholder = kind === "pull_request" ? field.nativeMetadata.placeholder : undefined;
211
+ const lines = field.items.map((item) => `- [${selected.has(item.id) ? "x" : " "}] ${escapeMarkdownValue(item.label)}`);
212
+ return [placeholder === undefined ? "" : placeholder, lines.join("\n")].filter(Boolean).join("\n\n");
213
+ }
214
+ function parseRenderedBody(contract, body, issueHeadingLevel, stripComments) {
215
+ const source = normalizeSource(stripComments ? removeHtmlComments(body) : body);
216
+ const lines = source.split("\n");
217
+ const values = {};
218
+ const diagnostics = [];
219
+ let cursor = 0;
220
+ for (let sectionIndex = 0; sectionIndex < contract.sections.length; sectionIndex += 1) {
221
+ const section = contract.sections[sectionIndex];
222
+ while (lines[cursor] !== undefined && lines[cursor]?.trim().length === 0)
223
+ cursor += 1;
224
+ if (section.kind === "documentation") {
225
+ const expected = trimBlankLines(section.content ?? "");
226
+ if (expected !== undefined) {
227
+ const expectedLines = expected.split("\n");
228
+ if (!sameLines(lines.slice(cursor, cursor + expectedLines.length), expectedLines)) {
229
+ diagnostics.push({
230
+ code: "EXISTING_UNPARSEABLE",
231
+ path: `$.sections.${section.id}`,
232
+ message: "Documentation structure does not match the native template.",
233
+ });
234
+ return { parsed: false, values: {}, diagnostics };
235
+ }
236
+ cursor += expectedLines.length;
237
+ }
238
+ continue;
239
+ }
240
+ const expectedTitle = section.title ?? section.fields[0]?.label;
241
+ const field = section.fields[0];
242
+ if (expectedTitle === undefined || field === undefined)
243
+ continue;
244
+ const heading = lines[cursor];
245
+ const level = issueHeadingLevel ?? section.render.headingLevel ?? section.nativeMetadata.headingLevel;
246
+ const expectedHeading = `${"#".repeat(level ?? 3)} ${escapeHeading(expectedTitle)}`;
247
+ if (heading?.trim() !== expectedHeading) {
248
+ const hasHeading = lines.some((line) => isHeading(line));
249
+ diagnostics.push({
250
+ code: hasHeading ? "EXISTING_WRONG_TEMPLATE" : "EXISTING_UNPARSEABLE",
251
+ path: `$.sections.${section.id}`,
252
+ message: `Expected native section heading "${expectedHeading}".`,
253
+ });
254
+ return { parsed: false, values: {}, diagnostics };
255
+ }
256
+ cursor += 1;
257
+ const contentStart = cursor;
258
+ while (cursor < lines.length && !isHeading(lines[cursor] ?? ""))
259
+ cursor += 1;
260
+ let fieldEnd = cursor;
261
+ const nextSection = contract.sections[sectionIndex + 1];
262
+ const nextDocumentation = nextSection?.kind === "documentation" ? trimBlankLines(nextSection.content ?? "") : undefined;
263
+ if (nextDocumentation !== undefined) {
264
+ const documentationLines = nextDocumentation.split("\n");
265
+ const rawCandidate = lines.slice(contentStart, fieldEnd);
266
+ const candidate = trimLineRange(rawCandidate);
267
+ if (candidate.length >= documentationLines.length &&
268
+ sameLines(candidate.slice(-documentationLines.length), documentationLines)) {
269
+ const leadingBlankLines = rawCandidate.findIndex((line) => line.trim().length > 0);
270
+ const candidateStart = contentStart + Math.max(leadingBlankLines, 0);
271
+ fieldEnd = candidateStart + candidate.length - documentationLines.length;
272
+ cursor = fieldEnd;
273
+ }
274
+ }
275
+ const fieldLines = trimLineRange(lines.slice(contentStart, fieldEnd));
276
+ const parsed = parseFieldLines(field, fieldLines, `$.${field.id}`, stripComments);
277
+ diagnostics.push(...parsed.diagnostics);
278
+ if (parsed.value !== undefined)
279
+ values[field.id] = parsed.value;
280
+ if (parsed.diagnostics.length > 0)
281
+ return { parsed: false, values: {}, diagnostics };
282
+ }
283
+ while (lines[cursor] !== undefined && lines[cursor]?.trim().length === 0)
284
+ cursor += 1;
285
+ if (cursor < lines.length && lines.slice(cursor).some((line) => line.trim().length > 0)) {
286
+ diagnostics.push({
287
+ code: "EXISTING_EXTRA_CONTENT",
288
+ path: "$",
289
+ message: "Artifact contains content outside the compiled template structure.",
290
+ });
291
+ }
292
+ if (diagnostics.length > 0)
293
+ return { parsed: false, values: {}, diagnostics };
294
+ return { parsed: true, values, diagnostics: [] };
295
+ }
296
+ function parseFieldLines(field, lines, path, stripComments) {
297
+ const diagnostics = [];
298
+ const filtered = stripComments ? lines.filter((line) => line.trim().length > 0) : lines;
299
+ if (field.type === "string" || field.type === "enum") {
300
+ const value = trimBlankLines(unescapeMarkdownValue(filtered.join("\n")));
301
+ const placeholder = stripComments
302
+ ? removeHtmlComments(field.nativeMetadata.placeholder ?? "")
303
+ : (field.nativeMetadata.placeholder ?? "");
304
+ if (stripComments && value !== undefined && value === trimBlankLines(placeholder))
305
+ return { value: undefined, diagnostics };
306
+ return { value, diagnostics };
307
+ }
308
+ if (field.type === "array") {
309
+ const values = filtered
310
+ .map((line) => {
311
+ const value = /^[-+*][ \t]+(.+)$/u.exec(line)?.[1]?.trim();
312
+ return value === undefined ? undefined : unescapeMarkdownValue(value);
313
+ })
314
+ .filter((value) => value !== undefined);
315
+ if (values.length !== filtered.length) {
316
+ diagnostics.push({
317
+ code: "EXISTING_UNPARSEABLE",
318
+ path,
319
+ message: "Array values must be a canonical Markdown list.",
320
+ });
321
+ return { value: undefined, diagnostics };
322
+ }
323
+ return { value: values, diagnostics };
324
+ }
325
+ const values = [];
326
+ const checklistLines = stripComments
327
+ ? removeRenderedPlaceholder(filtered, field.nativeMetadata.placeholder)
328
+ : filtered;
329
+ for (const line of checklistLines) {
330
+ const match = /^[-+*][ \t]+\[([ xX])\][ \t]+(.+)$/u.exec(line);
331
+ if (match === null) {
332
+ diagnostics.push({
333
+ code: "EXISTING_UNPARSEABLE",
334
+ path,
335
+ message: "Checklist values must use canonical task-list syntax.",
336
+ });
337
+ continue;
338
+ }
339
+ const label = unescapeMarkdownValue(match[2]?.trim() ?? "");
340
+ const item = field.items.find((candidate) => candidate.label === label);
341
+ if (item === undefined) {
342
+ diagnostics.push({
343
+ code: "EXISTING_UNKNOWN_CHECKLIST_ITEM",
344
+ path,
345
+ message: `Unknown checklist item "${label}".`,
346
+ });
347
+ }
348
+ else if (match[1]?.toLowerCase() === "x") {
349
+ values.push(item.id);
350
+ }
351
+ }
352
+ return { value: values, diagnostics };
353
+ }
354
+ function removeRenderedPlaceholder(lines, placeholder) {
355
+ if (placeholder === undefined)
356
+ return lines;
357
+ const placeholderLines = nonEmptyLines(removeHtmlComments(placeholder));
358
+ return placeholderLines.length > 0 && sameLines(lines.slice(0, placeholderLines.length), placeholderLines)
359
+ ? lines.slice(placeholderLines.length)
360
+ : lines;
361
+ }
362
+ function parseMetadata(input) {
363
+ const metadata = {};
364
+ if (input.title !== undefined)
365
+ metadata.title = requiredMetadataString(input.title, "title");
366
+ for (const key of ["labels", "assignees"]) {
367
+ if (input[key] !== undefined)
368
+ metadata[key] = stringArray(input[key], key);
369
+ }
370
+ for (const key of ["head", "base"]) {
371
+ if (input[key] !== undefined)
372
+ metadata[key] = requiredMetadataString(input[key], key);
373
+ }
374
+ for (const key of ["draft", "maintainerCanModify"]) {
375
+ if (input[key] !== undefined) {
376
+ if (typeof input[key] !== "boolean")
377
+ throw new ArtifactInputError("INPUT_METADATA_INVALID", `${key} must be a boolean.`, `$.${key}`);
378
+ metadata[key] = input[key];
379
+ }
380
+ }
381
+ return metadata;
382
+ }
383
+ function requiredMetadataString(value, key) {
384
+ if (typeof value !== "string" || value.trim().length === 0)
385
+ throw new ArtifactInputError("INPUT_METADATA_INVALID", `${key} must be a non-empty string.`, `$.${key}`);
386
+ return value;
387
+ }
388
+ function stringArray(value, key) {
389
+ if (!Array.isArray(value) || value.some((entry) => typeof entry !== "string" || entry.trim().length === 0)) {
390
+ throw new ArtifactInputError("INPUT_METADATA_INVALID", `${key} must be an array of non-empty strings.`, `$.${key}`);
391
+ }
392
+ return [...value];
393
+ }
394
+ function escapeHeading(value) {
395
+ return value.replace(/[\r\n]+/gu, " ").trim();
396
+ }
397
+ /** Escape only Markdown constructs that could change the canonical section structure. */
398
+ export function escapeMarkdownValue(value) {
399
+ return normalizeSource(value)
400
+ .split("\n")
401
+ .map((line) => {
402
+ if (/^ {0,3}(?:#{1,6})(?:[ \t]+|$)/u.test(line))
403
+ return line.replace(/^( {0,3})(#)/u, "$1\\$2");
404
+ if (/^ {0,3}(?:[-+*]|\d+[.)])[ \t]+\[[ xX]\]/u.test(line))
405
+ return line.replace(/^( {0,3})([-+*]|\d+[.)])/u, "$1\\$2");
406
+ if (/^ {0,3}(?:```|~~~)/u.test(line))
407
+ return line.replace(/^([ \t]{0,3})([`~])/u, "$1\\$2");
408
+ if (/^ {0,3}>[ \t]?/u.test(line))
409
+ return line.replace(/^( {0,3})(>)/u, "$1\\$2");
410
+ if (/^ {0,3}<!--/u.test(line))
411
+ return line.replace(/^( {0,3})(<!--)/u, "$1\\$2");
412
+ return line;
413
+ })
414
+ .join("\n");
415
+ }
416
+ function unescapeMarkdownValue(value) {
417
+ return normalizeSource(value)
418
+ .split("\n")
419
+ .map((line) => line.replace(/^( {0,3})\\(#{1,6}|[-+*]|\d+[.)]|[`~]|>|<!--)/u, "$1$2"))
420
+ .join("\n");
421
+ }
422
+ export function removeHtmlComments(value) {
423
+ let result = "";
424
+ let cursor = 0;
425
+ while (cursor < value.length) {
426
+ const start = value.indexOf("<!--", cursor);
427
+ if (start < 0) {
428
+ result += value.slice(cursor);
429
+ break;
430
+ }
431
+ result += value.slice(cursor, start);
432
+ const end = value.indexOf("-->", start + 4);
433
+ if (end < 0)
434
+ break;
435
+ cursor = end + 3;
436
+ }
437
+ return result;
438
+ }
439
+ function normalizeSource(value) {
440
+ return value.replace(/^\uFEFF/u, "").replace(/\r\n?/gu, "\n");
441
+ }
442
+ function trimBlankLines(value) {
443
+ const lines = value.split("\n");
444
+ while (lines[0] !== undefined && lines[0].trim().length === 0)
445
+ lines.shift();
446
+ while (lines.at(-1) !== undefined && lines.at(-1)?.trim().length === 0)
447
+ lines.pop();
448
+ return lines.length === 0 ? undefined : lines.join("\n");
449
+ }
450
+ function trimLineRange(lines) {
451
+ const copy = [...lines];
452
+ while (copy[0] !== undefined && copy[0].trim().length === 0)
453
+ copy.shift();
454
+ while (copy.at(-1) !== undefined && copy.at(-1)?.trim().length === 0)
455
+ copy.pop();
456
+ return copy;
457
+ }
458
+ function nonEmptyLines(value) {
459
+ return normalizeSource(value)
460
+ .split("\n")
461
+ .filter((line) => line.trim().length > 0);
462
+ }
463
+ function isHeading(line) {
464
+ return /^#{1,6}[ \t]+\S/u.test(line);
465
+ }
466
+ function sameLines(actual, expected) {
467
+ return actual.length === expected.length && actual.every((line, index) => line === expected[index]);
468
+ }
469
+ function isRecord(value) {
470
+ return typeof value === "object" && value !== null && !Array.isArray(value);
471
+ }
472
+ //# sourceMappingURL=artifact.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"artifact.js","sourceRoot":"","sources":["../src/artifact.ts"],"names":[],"mappings":"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"}
package/dist/cli.d.ts ADDED
@@ -0,0 +1,14 @@
1
+ import { GitHubAdapter } from "./github/index.js";
2
+ interface PackageMetadata {
3
+ readonly name: string;
4
+ readonly version: string;
5
+ readonly description: string;
6
+ }
7
+ export interface CliDependencies {
8
+ readonly repositoryRoot?: string;
9
+ readonly createAdapter?: (options: ConstructorParameters<typeof GitHubAdapter>[0]) => GitHubAdapter;
10
+ readonly packageMetadata?: PackageMetadata;
11
+ }
12
+ /** The installed gh-inari executable entrypoint. */
13
+ export declare function runCli(argv: string[], dependencies?: CliDependencies): Promise<number>;
14
+ export {};