@agentshouse/mdmodel 0.1.0-alpha.9 → 0.1.0-c83456e1cebfb

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 (202) hide show
  1. package/API.md +298 -0
  2. package/README.md +29 -186
  3. package/dist/blocks.d.ts +11 -0
  4. package/dist/blocks.d.ts.map +1 -0
  5. package/dist/blocks.js +62 -0
  6. package/dist/definition.d.ts +7 -3
  7. package/dist/definition.d.ts.map +1 -1
  8. package/dist/definition.js +143 -134
  9. package/dist/divide.d.ts +3 -0
  10. package/dist/divide.d.ts.map +1 -0
  11. package/dist/divide.js +310 -0
  12. package/dist/document.d.ts +2 -0
  13. package/dist/document.d.ts.map +1 -1
  14. package/dist/document.js +89 -120
  15. package/dist/fields.d.ts +4 -0
  16. package/dist/fields.d.ts.map +1 -0
  17. package/dist/fields.js +3 -0
  18. package/dist/index.d.ts +6 -2
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +4 -3
  21. package/dist/links.d.ts +1 -0
  22. package/dist/links.d.ts.map +1 -1
  23. package/dist/links.js +618 -224
  24. package/dist/paths.d.ts +2 -3
  25. package/dist/paths.d.ts.map +1 -1
  26. package/dist/paths.js +27 -37
  27. package/dist/profile.js +1 -3
  28. package/dist/project.d.ts +19 -1
  29. package/dist/project.d.ts.map +1 -1
  30. package/dist/project.js +75 -91
  31. package/dist/refuse.d.ts.map +1 -1
  32. package/dist/refuse.js +2 -10
  33. package/dist/schema.d.ts +2 -1
  34. package/dist/schema.d.ts.map +1 -1
  35. package/dist/schema.js +22 -33
  36. package/dist/sections.d.ts +2 -1
  37. package/dist/sections.d.ts.map +1 -1
  38. package/dist/sections.js +44 -66
  39. package/dist/types.d.ts +30 -2
  40. package/dist/types.d.ts.map +1 -1
  41. package/dist/types.js +1 -3
  42. package/dist/validate.d.ts +3 -2
  43. package/dist/validate.d.ts.map +1 -1
  44. package/dist/validate.js +145 -127
  45. package/dist/version.d.ts +1 -1
  46. package/dist/version.d.ts.map +1 -1
  47. package/dist/version.js +1 -3
  48. package/dist/yaml.d.ts +1 -0
  49. package/dist/yaml.d.ts.map +1 -1
  50. package/dist/yaml.js +195 -186
  51. package/fixtures/README.md +77 -53
  52. package/fixtures/cases/binary-any-reference/expected.json +0 -1
  53. package/fixtures/cases/binary-any-reference/schema.yaml +4 -0
  54. package/fixtures/cases/binary-document-collision/expected.json +1 -2
  55. package/fixtures/cases/binary-document-collision/schema.yaml +2 -0
  56. package/fixtures/cases/binary-link-outside-collection/expected.json +1 -2
  57. package/fixtures/cases/binary-link-outside-collection/schema.yaml +2 -0
  58. package/fixtures/cases/binary-prototype-reference/expected.json +0 -1
  59. package/fixtures/cases/binary-prototype-reference/schema.yaml +4 -0
  60. package/fixtures/cases/binary-typed-reference/expected.json +0 -1
  61. package/fixtures/cases/binary-typed-reference/schema.yaml +5 -0
  62. package/fixtures/cases/bracketed-link-definition/schema.yaml +6 -0
  63. package/fixtures/cases/declared-binary-links/schema.yaml +2 -0
  64. package/fixtures/cases/duplicate-link-definition/schema.yaml +6 -0
  65. package/fixtures/cases/fenced-link-definition/schema.yaml +6 -0
  66. package/fixtures/cases/field-enum/expected.json +1 -2
  67. package/fixtures/cases/field-enum/schema.yaml +7 -0
  68. package/fixtures/cases/frontmatter-schema/expected.json +5 -0
  69. package/fixtures/cases/frontmatter-schema/schema.yaml +6 -0
  70. package/fixtures/cases/interrupted-link-definition/schema.yaml +2 -0
  71. package/fixtures/cases/long-fence-link-definition/schema.yaml +2 -0
  72. package/fixtures/cases/malformed-definition/expected.json +2 -4
  73. package/fixtures/cases/malformed-definition/schema.yaml +4 -0
  74. package/fixtures/cases/member-document/context.json +1 -0
  75. package/fixtures/cases/member-document/library/people/ana.md +5 -0
  76. package/fixtures/cases/member-document/schema.yaml +5 -0
  77. package/fixtures/cases/missing-binary-image/expected.json +1 -2
  78. package/fixtures/cases/missing-binary-image/schema.yaml +2 -0
  79. package/fixtures/cases/missing-binary-link/expected.json +1 -2
  80. package/fixtures/cases/missing-binary-link/schema.yaml +2 -0
  81. package/fixtures/cases/missing-required-field/expected.json +1 -2
  82. package/fixtures/cases/missing-required-field/schema.yaml +7 -0
  83. package/fixtures/cases/missing-section-item-kind/expected.json +2 -4
  84. package/fixtures/cases/missing-section-item-kind/schema.yaml +6 -0
  85. package/fixtures/cases/paragraph-link-definition/schema.yaml +2 -0
  86. package/fixtures/cases/prototype-field/expected.json +1 -2
  87. package/fixtures/cases/prototype-field/schema.yaml +6 -0
  88. package/fixtures/cases/quoted-link-definition/expected.json +1 -2
  89. package/fixtures/cases/quoted-link-definition/schema.yaml +2 -0
  90. package/fixtures/cases/referenced-missing-file/expected.json +0 -1
  91. package/fixtures/cases/referenced-missing-file/schema.yaml +10 -0
  92. package/fixtures/cases/second-member-document/context.json +1 -0
  93. package/fixtures/cases/second-member-document/expected.json +5 -0
  94. package/fixtures/cases/second-member-document/schema.yaml +5 -0
  95. package/fixtures/cases/section-item-enum/context.json +1 -0
  96. package/fixtures/cases/section-item-enum/expected.json +6 -0
  97. package/fixtures/cases/section-item-enum/library/task.md +8 -0
  98. package/fixtures/cases/section-item-enum/schema.yaml +4 -0
  99. package/fixtures/cases/section-item-kind/context.json +1 -0
  100. package/fixtures/cases/section-item-kind/expected.json +6 -0
  101. package/fixtures/cases/section-item-kind/library/task.md +8 -0
  102. package/fixtures/cases/section-item-kind/schema.yaml +4 -0
  103. package/fixtures/cases/section-items/context.json +1 -0
  104. package/fixtures/cases/section-items/expected.json +1 -0
  105. package/fixtures/cases/section-items/library/other.md +3 -0
  106. package/fixtures/cases/section-items/library/page.md +28 -0
  107. package/fixtures/cases/section-items/schema.yaml +8 -0
  108. package/fixtures/cases/section-reference-path/context.json +1 -0
  109. package/fixtures/cases/section-reference-path/expected.json +6 -0
  110. package/fixtures/cases/section-reference-path/library/other.md +3 -0
  111. package/fixtures/cases/section-reference-path/library/page.md +7 -0
  112. package/fixtures/cases/section-reference-path/schema.yaml +4 -0
  113. package/fixtures/cases/section-reference-type/context.json +1 -0
  114. package/fixtures/cases/section-reference-type/expected.json +6 -0
  115. package/fixtures/cases/section-reference-type/library/note.md +1 -0
  116. package/fixtures/cases/section-reference-type/library/page.md +7 -0
  117. package/fixtures/cases/section-reference-type/schema.yaml +4 -0
  118. package/fixtures/cases/shortcut-reference-link/context.json +1 -0
  119. package/fixtures/cases/shortcut-reference-link/expected.json +5 -0
  120. package/fixtures/cases/shortcut-reference-link/library/item.md +10 -0
  121. package/fixtures/cases/shortcut-reference-link/schema.yaml +6 -0
  122. package/fixtures/cases/structured-section/expected.json +1 -2
  123. package/fixtures/cases/structured-section/schema.yaml +7 -0
  124. package/fixtures/cases/submission-keys/context.json +1 -0
  125. package/fixtures/cases/submission-keys/expected.json +1 -0
  126. package/fixtures/cases/submission-keys/library/notes/visitor.md +8 -0
  127. package/fixtures/cases/submission-keys/schema.yaml +4 -0
  128. package/fixtures/cases/text-field-kind/context.json +1 -0
  129. package/fixtures/cases/text-field-kind/expected.json +6 -0
  130. package/fixtures/cases/text-field-kind/library/page.md +4 -0
  131. package/fixtures/cases/text-field-kind/schema.yaml +4 -0
  132. package/fixtures/cases/truncated-link-definition/expected.json +1 -2
  133. package/fixtures/cases/truncated-link-definition/schema.yaml +2 -0
  134. package/fixtures/cases/types-folder-content/context.json +1 -0
  135. package/fixtures/cases/types-folder-content/expected.json +1 -0
  136. package/fixtures/cases/types-folder-content/library/types/task.md +4 -0
  137. package/fixtures/cases/types-folder-content/schema.yaml +4 -0
  138. package/fixtures/cases/unclosed-frontmatter/expected.json +1 -2
  139. package/fixtures/cases/undeclared-field/expected.json +1 -2
  140. package/fixtures/cases/undeclared-field/schema.yaml +6 -0
  141. package/fixtures/cases/unknown-type/context.json +1 -0
  142. package/fixtures/cases/unknown-type/expected.json +6 -0
  143. package/fixtures/cases/unknown-type/library/item.md +3 -0
  144. package/fixtures/cases/unknown-type/schema.yaml +4 -0
  145. package/fixtures/cases/unlisted-reference-type/context.json +1 -0
  146. package/fixtures/cases/unlisted-reference-type/expected.json +5 -0
  147. package/fixtures/cases/unlisted-reference-type/schema.yaml +4 -0
  148. package/fixtures/cases/unresolved-link/expected.json +1 -2
  149. package/fixtures/cases/unresolved-link/schema.yaml +6 -0
  150. package/fixtures/cases/valid-typed-document/schema.yaml +15 -0
  151. package/fixtures/cases/wide-item-fence-link/schema.yaml +2 -0
  152. package/fixtures/division.json +409 -0
  153. package/fixtures/projection.json +58 -21
  154. package/package.json +3 -12
  155. package/dist/definition.js.map +0 -1
  156. package/dist/document.js.map +0 -1
  157. package/dist/index.js.map +0 -1
  158. package/dist/links.js.map +0 -1
  159. package/dist/paths.js.map +0 -1
  160. package/dist/profile.js.map +0 -1
  161. package/dist/project.js.map +0 -1
  162. package/dist/refuse.js.map +0 -1
  163. package/dist/schema.js.map +0 -1
  164. package/dist/sections.js.map +0 -1
  165. package/dist/types.js.map +0 -1
  166. package/dist/validate.js.map +0 -1
  167. package/dist/version.js.map +0 -1
  168. package/dist/yaml.js.map +0 -1
  169. package/fixtures/cases/binary-any-reference/library/types/note.md +0 -5
  170. package/fixtures/cases/binary-document-collision/library/types/note.md +0 -3
  171. package/fixtures/cases/binary-link-outside-collection/library/types/note.md +0 -3
  172. package/fixtures/cases/binary-prototype-reference/library/types/note.md +0 -5
  173. package/fixtures/cases/binary-typed-reference/library/types/note.md +0 -5
  174. package/fixtures/cases/binary-typed-reference/library/types/person.md +0 -3
  175. package/fixtures/cases/bracketed-link-definition/library/types/task.md +0 -7
  176. package/fixtures/cases/declared-binary-links/library/types/note.md +0 -3
  177. package/fixtures/cases/duplicate-link-definition/library/types/task.md +0 -7
  178. package/fixtures/cases/fenced-link-definition/library/types/task.md +0 -7
  179. package/fixtures/cases/field-enum/library/types/task.md +0 -8
  180. package/fixtures/cases/interrupted-link-definition/library/types/note.md +0 -3
  181. package/fixtures/cases/long-fence-link-definition/library/types/note.md +0 -3
  182. package/fixtures/cases/malformed-definition/library/types/task.md +0 -5
  183. package/fixtures/cases/missing-binary-image/library/types/note.md +0 -3
  184. package/fixtures/cases/missing-binary-link/library/types/note.md +0 -3
  185. package/fixtures/cases/missing-required-field/library/types/task.md +0 -8
  186. package/fixtures/cases/missing-section-item-kind/library/types/task.md +0 -7
  187. package/fixtures/cases/paragraph-link-definition/library/types/note.md +0 -3
  188. package/fixtures/cases/prd-definition/library/types/task.md +0 -16
  189. package/fixtures/cases/prototype-field/library/types/task.md +0 -7
  190. package/fixtures/cases/quoted-link-definition/library/types/note.md +0 -3
  191. package/fixtures/cases/referenced-missing-file/library/types/person.md +0 -5
  192. package/fixtures/cases/referenced-missing-file/library/types/task.md +0 -8
  193. package/fixtures/cases/structured-section/library/types/task.md +0 -8
  194. package/fixtures/cases/truncated-link-definition/library/types/note.md +0 -3
  195. package/fixtures/cases/undeclared-field/library/types/task.md +0 -7
  196. package/fixtures/cases/unresolved-link/library/types/task.md +0 -7
  197. package/fixtures/cases/valid-typed-document/library/types/person.md +0 -5
  198. package/fixtures/cases/valid-typed-document/library/types/task.md +0 -13
  199. package/fixtures/cases/wide-item-fence-link/library/types/note.md +0 -3
  200. package/markdown-syntax-profile.md +0 -9
  201. /package/fixtures/cases/{prd-definition → frontmatter-schema}/context.json +0 -0
  202. /package/fixtures/cases/{prd-definition → member-document}/expected.json +0 -0
package/dist/types.d.ts CHANGED
@@ -1,10 +1,32 @@
1
+ import type { Definition } from './definition.js';
1
2
  export type Library = Readonly<Record<string, string>>;
3
+ export type VerifiedModel = {
4
+ readonly types: Readonly<Record<string, Definition>>;
5
+ };
6
+ export type ModelVerification = {
7
+ readonly verdict: 'accept';
8
+ readonly model: VerifiedModel;
9
+ } | {
10
+ readonly verdict: 'refuse';
11
+ readonly rule: string;
12
+ readonly location?: string;
13
+ };
2
14
  export type ValidationContext = {
3
15
  readonly binaryTargets: readonly string[];
4
16
  };
5
17
  export type ProjectionContext = {
6
18
  readonly documentTargets: readonly string[];
7
- readonly definition?: string;
19
+ readonly definition?: Definition;
20
+ };
21
+ export type DivisionContext = ProjectionContext & {
22
+ readonly budget: number;
23
+ };
24
+ export type Extent = {
25
+ readonly start: number;
26
+ readonly end: number;
27
+ };
28
+ export type Span = Extent & {
29
+ readonly text: string;
8
30
  };
9
31
  export type Document = {
10
32
  readonly content: string;
@@ -16,7 +38,6 @@ export type Document = {
16
38
  export type Refusal = {
17
39
  readonly file: string;
18
40
  readonly rule: string;
19
- readonly version: string;
20
41
  readonly location?: string;
21
42
  readonly referrers?: readonly string[];
22
43
  };
@@ -32,6 +53,13 @@ export type Projection = {
32
53
  readonly ok: false;
33
54
  readonly refusal: Refusal;
34
55
  };
56
+ export type Division = {
57
+ readonly ok: true;
58
+ readonly spans: readonly Span[];
59
+ } | {
60
+ readonly ok: false;
61
+ readonly refusal: Refusal;
62
+ };
35
63
  export type ParseResult = {
36
64
  readonly ok: true;
37
65
  readonly document: Document;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js CHANGED
@@ -1,3 +1 @@
1
- export { };
2
-
3
- //# sourceMappingURL=types.js.map
1
+ export {};
@@ -1,3 +1,4 @@
1
- import type { Library, Validation, ValidationContext } from './types.js';
2
- export declare function validate(library: Library, context?: ValidationContext): Validation;
1
+ import type { Library, ModelVerification, Validation, ValidationContext, VerifiedModel } from './types.js';
2
+ export declare function verify(schema: string): ModelVerification;
3
+ export declare function validate(library: Library, context?: ValidationContext, model?: VerifiedModel): Validation;
3
4
  //# sourceMappingURL=validate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAY,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAuCnF,wBAAgB,QAAQ,CACtB,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,iBAAyC,GACjD,UAAU,CAuHZ"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../src/validate.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAGV,OAAO,EACP,iBAAiB,EAEjB,UAAU,EACV,iBAAiB,EACjB,aAAa,EACd,MAAM,YAAY,CAAC;AAsEpB,wBAAgB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAQxD;AAQD,wBAAgB,QAAQ,CACtB,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,iBAAyC,EAClD,KAAK,GAAE,aAA6B,GACnC,UAAU,CAuHZ"}
package/dist/validate.js CHANGED
@@ -1,183 +1,201 @@
1
- import { readDefinition } from './definition.js';
1
+ import { readSchema } from './definition.js';
2
2
  import { parse } from './document.js';
3
- import { hrefOccurrences } from './links.js';
4
- import { classifyHref, isTypesPath } from './paths.js';
3
+ import { MEMBER_FIELD, RECEIVED_FIELD, SITE_FIELD } from './fields.js';
4
+ import { hrefOccurrences, linkInventory } from './links.js';
5
+ import { classifyHref } from './paths.js';
5
6
  import { refusal } from './refuse.js';
6
- import { parseListSection } from './sections.js';
7
- import { validateFields } from './schema.js';
8
- import { bodyAfterFrontmatter } from './yaml.js';
7
+ import { fitsKind, validateFields } from './schema.js';
8
+ import { headingSpans, listItems } from './sections.js';
9
+ import { bodyAfterFrontmatter, bodyStartOf } from './yaml.js';
10
+ const MEMBER_SPEC = { kind: 'string', required: false };
9
11
  function refuse(file, rule, extra) {
10
- return {
11
- verdict: 'refuse',
12
- ...refusal(file, rule, extra)
13
- };
12
+ return { verdict: 'refuse', ...refusal(file, rule, extra) };
14
13
  }
15
- function instanceType(document, file) {
16
- if (isTypesPath(file)) return 'definition';
14
+ function instanceType(document) {
17
15
  const raw = document.fields.type;
18
- if (raw === undefined || raw === null) return 'any';
19
- if (typeof raw !== 'string' || raw === '') return 'invalid';
16
+ if (raw === undefined || raw === null)
17
+ return 'any';
18
+ if (typeof raw !== 'string' || raw === '')
19
+ return null;
20
20
  return raw;
21
21
  }
22
22
  function referenceTargets(spec, value) {
23
- if (spec.kind === 'reference' && typeof value === 'string') return [
24
- value
25
- ];
23
+ if (spec.kind === 'reference' && typeof value === 'string')
24
+ return [value];
26
25
  if (spec.kind === 'list' && spec.of.kind === 'reference' && Array.isArray(value)) {
27
- return value.filter((item)=>typeof item === 'string');
26
+ return value.filter((item) => typeof item === 'string');
28
27
  }
29
28
  return [];
30
29
  }
31
30
  function expectedReferenceType(spec) {
32
- if (spec.kind === 'reference') return spec.to;
33
- if (spec.kind === 'list' && spec.of.kind === 'reference') return spec.of.to;
31
+ if (spec.kind === 'reference')
32
+ return spec.to;
33
+ if (spec.kind === 'list' && spec.of.kind === 'reference')
34
+ return spec.of.to;
34
35
  return null;
35
36
  }
36
- function declaredTypeOf(content) {
37
- const parsed = parse(content);
38
- if (!parsed.ok) return undefined;
39
- return parsed.document.type ?? 'any';
37
+ function reaches(file, href, to, documents, binaryTargets) {
38
+ const resolved = classifyHref(file, href);
39
+ if (resolved.kind !== 'path' || binaryTargets.has(resolved.path))
40
+ return false;
41
+ const held = documents.get(resolved.path);
42
+ return held === undefined || (held.ok && (held.document.type ?? 'any') === to);
43
+ }
44
+ function itemHrefs(content, items) {
45
+ const bodyStart = bodyStartOf(content);
46
+ const { uses } = linkInventory(content.slice(bodyStart));
47
+ const hrefs = [];
48
+ for (const item of items) {
49
+ const link = uses.find((use) => bodyStart + use.start === item.start &&
50
+ bodyStart + use.end === item.end &&
51
+ content[item.start] === '[');
52
+ if (link === undefined)
53
+ return null;
54
+ hrefs.push(link.destination.href);
55
+ }
56
+ return hrefs;
57
+ }
58
+ export function verify(schema) {
59
+ const read = readSchema(schema);
60
+ if ('types' in read)
61
+ return { verdict: 'accept', model: read };
62
+ return {
63
+ verdict: 'refuse',
64
+ rule: read.rule,
65
+ ...(read.location === undefined ? {} : { location: read.location }),
66
+ };
40
67
  }
41
- export function validate(library, context = {
42
- binaryTargets: []
43
- }) {
68
+ function declaredFields(definition) {
69
+ if (!definition.memberDocument || Object.hasOwn(definition.fields, MEMBER_FIELD))
70
+ return definition.fields;
71
+ return { ...definition.fields, [MEMBER_FIELD]: MEMBER_SPEC };
72
+ }
73
+ export function validate(library, context = { binaryTargets: [] }, model = { types: {} }) {
44
74
  const binaryTargets = new Set(context.binaryTargets);
45
75
  const files = Object.keys(library).sort();
46
76
  const documents = new Map();
47
- for (const file of files){
48
- if (binaryTargets.has(file)) return refuse(file, 'binary-target-document');
77
+ for (const file of files) {
78
+ if (binaryTargets.has(file))
79
+ return refuse(file, 'binary-target-document');
49
80
  const parsed = parse(library[file], file);
50
81
  documents.set(file, parsed);
51
- if (!parsed.ok) return {
52
- verdict: 'refuse',
53
- ...parsed.refusal
54
- };
55
- }
56
- const definitions = new Map();
57
- for (const file of files){
58
- if (!isTypesPath(file)) continue;
59
- const parsed = documents.get(file);
60
- if (parsed === undefined || !parsed.ok) continue;
61
- const definition = readDefinition(file, parsed.document);
62
- if ('rule' in definition) return {
63
- verdict: 'refuse',
64
- ...definition
65
- };
66
- const existing = definitions.get(definition.name);
67
- if (existing !== undefined) return refuse(file, 'definition-duplicate', {
68
- location: definition.name
69
- });
70
- definitions.set(definition.name, definition);
82
+ if (!parsed.ok)
83
+ return { verdict: 'refuse', ...parsed.refusal };
71
84
  }
72
- for (const file of files){
85
+ const definitions = new Map(Object.entries(model.types));
86
+ const sectionReferences = new Map();
87
+ for (const file of files) {
73
88
  const parsed = documents.get(file);
74
- if (parsed === undefined || !parsed.ok) continue;
75
- const kind = instanceType(parsed.document, file);
76
- if (kind === 'any') continue;
77
- if (kind === 'invalid' || kind === 'definition') {
78
- if (kind === 'definition' && isTypesPath(file)) continue;
79
- return refuse(file, 'unknown-type', {
80
- location: 'type'
81
- });
82
- }
83
- const definition = definitions.get(kind);
84
- if (definition === undefined) return refuse(file, 'unknown-type', {
85
- location: 'type'
86
- });
87
- const fieldFailure = validateFields(definition.fields, parsed.document.fields);
89
+ if (parsed === undefined || !parsed.ok)
90
+ continue;
91
+ const kind = instanceType(parsed.document);
92
+ if (kind === 'any')
93
+ continue;
94
+ const definition = kind === null ? undefined : definitions.get(kind);
95
+ if (definition === undefined)
96
+ return refuse(file, 'unknown-type', { location: 'type' });
97
+ const fields = declaredFields(definition);
98
+ const fieldFailure = validateFields(fields, parsed.document.fields);
88
99
  if (fieldFailure !== undefined) {
89
- return refuse(file, fieldFailure.rule, {
90
- location: fieldFailure.field
91
- });
100
+ return refuse(file, fieldFailure.rule, { location: fieldFailure.field });
92
101
  }
93
- const declaredFields = new Set(Object.keys(definition.fields));
94
- const undeclared = Object.keys(parsed.document.fields).find((name)=>name !== 'type' && !declaredFields.has(name));
95
- if (undeclared !== undefined) return refuse(file, 'undeclared-field', {
96
- location: undeclared
97
- });
98
- for (const [name, spec] of Object.entries(definition.sections)){
99
- const body = parsed.document.sections[name];
100
- if (body === undefined) {
101
- if (spec.required) return refuse(file, 'required-section', {
102
- location: name
103
- });
102
+ const declared = new Set(Object.keys(fields));
103
+ const undeclared = Object.keys(parsed.document.fields).find((name) => !['type', SITE_FIELD, RECEIVED_FIELD].includes(name) && !declared.has(name));
104
+ if (undeclared !== undefined)
105
+ return refuse(file, 'undeclared-field', { location: undeclared });
106
+ const content = library[file];
107
+ const spans = headingSpans(content, bodyStartOf(content));
108
+ const references = [];
109
+ for (const [name, spec] of Object.entries(definition.sections)) {
110
+ const occurrences = spans.filter((one) => one.name === name);
111
+ if (occurrences.length === 0 && spec.required)
112
+ return refuse(file, 'required-section', { location: name });
113
+ if (spec.kind !== 'list')
104
114
  continue;
105
- }
106
- if (spec.kind === 'list' && !parseListSection(body)) {
107
- return refuse(file, 'structured-section', {
108
- location: name
109
- });
115
+ for (const span of occurrences) {
116
+ const items = listItems(content, span.bodyStart, span.bodyEnd);
117
+ if (items === null ||
118
+ items.some((item) => !fitsKind(spec.of, content.slice(item.start, item.end))))
119
+ return refuse(file, 'structured-section', { location: name });
120
+ if (spec.of.kind !== 'reference')
121
+ continue;
122
+ const hrefs = itemHrefs(content, items);
123
+ if (hrefs === null)
124
+ return refuse(file, 'structured-section', { location: name });
125
+ references.push({ section: name, to: spec.of.to, hrefs });
110
126
  }
111
127
  }
128
+ sectionReferences.set(file, references);
112
129
  }
113
- for (const file of files){
130
+ for (const file of files) {
114
131
  const parsed = documents.get(file);
115
- if (parsed === undefined || !parsed.ok) continue;
116
- const kind = instanceType(parsed.document, file);
117
- if (kind === 'any' || kind === 'definition' || kind === 'invalid') continue;
132
+ if (parsed === undefined || !parsed.ok)
133
+ continue;
134
+ const kind = instanceType(parsed.document);
135
+ if (kind === null || kind === 'any')
136
+ continue;
118
137
  const definition = definitions.get(kind);
119
- if (definition === undefined) continue;
120
- for (const [name, spec] of Object.entries(definition.fields)){
138
+ if (definition === undefined)
139
+ continue;
140
+ for (const [name, spec] of Object.entries(definition.fields)) {
121
141
  const targets = referenceTargets(spec, parsed.document.fields[name]);
122
142
  const expected = expectedReferenceType(spec);
123
- if (expected === null) continue;
124
- for (const target of targets){
125
- const resolved = classifyHref(file, target);
126
- if (resolved.kind !== 'path' || binaryTargets.has(resolved.path)) return refuse(file, 'unresolved-reference', {
127
- location: name
128
- });
129
- if (!documents.has(resolved.path)) continue;
130
- const targetType = declaredTypeOf(library[resolved.path]);
131
- if (targetType !== expected) return refuse(file, 'unresolved-reference', {
132
- location: name
133
- });
143
+ if (expected === null)
144
+ continue;
145
+ for (const target of targets) {
146
+ if (!reaches(file, target, expected, documents, binaryTargets))
147
+ return refuse(file, 'unresolved-reference', { location: name });
134
148
  }
135
149
  }
136
150
  const body = bodyAfterFrontmatter(library[file]);
137
- for (const occurrence of hrefOccurrences(body)){
151
+ for (const occurrence of hrefOccurrences(body)) {
138
152
  const resolved = classifyHref(file, occurrence.href);
139
- if (resolved.kind === 'skip') continue;
140
- if (resolved.kind === 'invalid' || !documents.has(resolved.path) && !binaryTargets.has(resolved.path)) {
153
+ if (resolved.kind === 'skip')
154
+ continue;
155
+ if (resolved.kind === 'invalid' ||
156
+ (!documents.has(resolved.path) && !binaryTargets.has(resolved.path))) {
141
157
  return refuse(file, 'unresolved-link');
142
158
  }
143
159
  }
160
+ for (const { section, to, hrefs } of sectionReferences.get(file)) {
161
+ for (const href of hrefs) {
162
+ if (!reaches(file, href, to, documents, binaryTargets))
163
+ return refuse(file, 'unresolved-reference', { location: section });
164
+ }
165
+ }
144
166
  }
145
167
  const missing = new Map();
146
- for (const file of files){
168
+ for (const file of files) {
147
169
  const parsed = documents.get(file);
148
- if (parsed === undefined || !parsed.ok) continue;
149
- const kind = instanceType(parsed.document, file);
150
- if (kind === 'any' || kind === 'definition' || kind === 'invalid') continue;
170
+ if (parsed === undefined || !parsed.ok)
171
+ continue;
172
+ const kind = instanceType(parsed.document);
173
+ if (kind === null || kind === 'any')
174
+ continue;
151
175
  const definition = definitions.get(kind);
152
- if (definition === undefined) continue;
153
- for (const [name, spec] of Object.entries(definition.fields)){
176
+ if (definition === undefined)
177
+ continue;
178
+ for (const [name, spec] of Object.entries(definition.fields)) {
154
179
  const expected = expectedReferenceType(spec);
155
- if (expected === null) continue;
156
- for (const target of referenceTargets(spec, parsed.document.fields[name])){
180
+ if (expected === null)
181
+ continue;
182
+ for (const target of referenceTargets(spec, parsed.document.fields[name])) {
157
183
  const resolved = classifyHref(file, target);
158
- if (resolved.kind !== 'path') continue;
159
- if (documents.has(resolved.path)) continue;
184
+ if (resolved.kind !== 'path')
185
+ continue;
186
+ if (documents.has(resolved.path))
187
+ continue;
160
188
  const referrers = missing.get(resolved.path) ?? [];
161
189
  referrers.push(file);
162
190
  missing.set(resolved.path, referrers);
163
191
  }
164
192
  }
165
193
  }
166
- const missingPaths = [
167
- ...missing.keys()
168
- ].sort();
194
+ const missingPaths = [...missing.keys()].sort();
169
195
  if (missingPaths.length > 0) {
170
196
  const path = missingPaths[0];
171
- const referrers = [
172
- ...new Set(missing.get(path) ?? [])
173
- ].sort();
174
- return refuse(path, 'referenced-missing-file', {
175
- referrers
176
- });
197
+ const referrers = [...new Set(missing.get(path) ?? [])].sort();
198
+ return refuse(path, 'referenced-missing-file', { referrers });
177
199
  }
178
- return {
179
- verdict: 'accept'
180
- };
200
+ return { verdict: 'accept' };
181
201
  }
182
-
183
- //# sourceMappingURL=validate.js.map
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.1.0-alpha.9";
1
+ export declare const VERSION = "0.1.0-alpha.19";
2
2
  //# sourceMappingURL=version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,kBAAkB,CAAC"}
1
+ {"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,mBAAmB,CAAC"}
package/dist/version.js CHANGED
@@ -1,3 +1 @@
1
- export const VERSION = '0.1.0-alpha.9';
2
-
3
- //# sourceMappingURL=version.js.map
1
+ export const VERSION = '0.1.0-alpha.19';
package/dist/yaml.d.ts CHANGED
@@ -27,6 +27,7 @@ export type YamlMap = {
27
27
  readonly end: number;
28
28
  };
29
29
  export type YamlNode = YamlScalar | YamlSeq | YamlMap;
30
+ export declare function interpretPlain(text: string): string | number | boolean | null;
30
31
  export declare function parseYamlMapping(text: string, start: number, end: number): YamlMap;
31
32
  export declare function jsValue(node: YamlNode): unknown;
32
33
  export declare function mapEntry(map: YamlMap, key: string): YamlEntry | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"yaml.d.ts","sourceRoot":"","sources":["../src/yaml.ts"],"names":[],"mappings":"AAAA,qBAAa,SAAU,SAAQ,KAAK;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM;IAAnC,YAAqB,MAAM,EAAE,MAAM,EAGlC;CACF;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IACjD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;AAqStD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAclF;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAM/C;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAEzE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMjD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQlD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAG3E;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,GACd;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAqB9F;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAQjE;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAEzD"}
1
+ {"version":3,"file":"yaml.d.ts","sourceRoot":"","sources":["../src/yaml.ts"],"names":[],"mappings":"AAAA,qBAAa,SAAU,SAAQ,KAAK;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM;IAAnC,YAAqB,MAAM,EAAE,MAAM,EAGlC;CACF;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;IACjD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,OAAO,GAAG;IACpB,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,OAAO,EAAE,SAAS,SAAS,EAAE,CAAC;IACvC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;AAoEtD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAM7E;AA2ND,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAclF;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAM/C;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAEzE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMjD;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAQlD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAG3E;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGnD;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,GACd;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAqB9F;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAQjE;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAEzD"}