@agentshouse/mdmodel 0.1.0-cc9fa0498a7f7 → 0.1.0-cd90851746292
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/API.md +231 -225
- package/README.md +16 -19
- package/dist/blocks.d.ts.map +1 -1
- package/dist/blocks.js +35 -20
- package/dist/condition.d.ts +41 -11
- package/dist/condition.d.ts.map +1 -1
- package/dist/condition.js +223 -87
- package/dist/definition.d.ts +17 -1
- package/dist/definition.d.ts.map +1 -1
- package/dist/definition.js +319 -43
- package/dist/divide.d.ts.map +1 -1
- package/dist/divide.js +27 -17
- package/dist/document.d.ts +6 -3
- package/dist/document.d.ts.map +1 -1
- package/dist/document.js +326 -176
- package/dist/index.d.ts +13 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -6
- package/dist/links.d.ts +3 -0
- package/dist/links.d.ts.map +1 -1
- package/dist/links.js +108 -51
- package/dist/paths.d.ts +10 -1
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +118 -12
- package/dist/pattern.d.ts +10 -0
- package/dist/pattern.d.ts.map +1 -0
- package/dist/pattern.js +355 -0
- package/dist/project.d.ts +1 -0
- package/dist/project.d.ts.map +1 -1
- package/dist/project.js +38 -15
- package/dist/references.d.ts +2 -2
- package/dist/references.d.ts.map +1 -1
- package/dist/references.js +6 -1
- package/dist/schema.d.ts +1 -0
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +55 -4
- package/dist/types.d.ts +50 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/validate.d.ts +30 -2
- package/dist/validate.d.ts.map +1 -1
- package/dist/validate.js +317 -114
- package/dist/yaml.d.ts.map +1 -1
- package/dist/yaml.js +66 -21
- package/fixtures/README.md +10 -5
- package/fixtures/cases/conditional-section/context.json +1 -0
- package/fixtures/cases/conditional-section/expected.json +6 -0
- package/fixtures/cases/conditional-section/library/questions/hosting.md +9 -0
- package/fixtures/cases/conditional-section/library/questions/payments.md +12 -0
- package/fixtures/cases/conditional-section/schema.yaml +14 -0
- package/fixtures/cases/cross-room-link/context.json +1 -0
- package/fixtures/cases/cross-room-link/expected.json +1 -0
- package/fixtures/cases/cross-room-link/library/clients/acme.md +6 -0
- package/fixtures/cases/cross-room-link/schema.yaml +3 -0
- package/fixtures/cases/cross-room-reference/context.json +1 -0
- package/fixtures/cases/cross-room-reference/expected.json +1 -0
- package/fixtures/cases/cross-room-reference/library/clients/acme.md +9 -0
- package/fixtures/cases/cross-room-reference/schema.yaml +9 -0
- package/fixtures/division.json +26 -26
- package/package.json +10 -3
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@ deterministic application of one structured change to a Document, plus a
|
|
|
5
5
|
conformance fixture corpus.
|
|
6
6
|
|
|
7
7
|
It runs in the browser and in Node, makes no network call, and reads no
|
|
8
|
-
filesystem on its own. It ships one ESM artifact that Node 24.
|
|
8
|
+
filesystem on its own. It ships one ESM artifact that Node 24.22.1 and later
|
|
9
9
|
loads through `import` or `require`.
|
|
10
10
|
|
|
11
11
|
## Install
|
|
@@ -26,30 +26,27 @@ if (checked.verdict === 'accept') {
|
|
|
26
26
|
|
|
27
27
|
const parsed = parse('---\ntype: note\ntitle: Hello\n---\n');
|
|
28
28
|
if (parsed.ok) {
|
|
29
|
-
const next = apply(parsed.document,
|
|
30
|
-
kind: 'field',
|
|
31
|
-
|
|
32
|
-
value: 'World',
|
|
33
|
-
prior: 'Hello',
|
|
34
|
-
});
|
|
29
|
+
const next = apply(parsed.document, [
|
|
30
|
+
{ kind: 'field', name: 'title', value: 'World', prior: 'Hello' },
|
|
31
|
+
]);
|
|
35
32
|
if (next.outcome === 'applied') serialize(next.document);
|
|
36
33
|
}
|
|
37
34
|
```
|
|
38
35
|
|
|
39
36
|
## API
|
|
40
37
|
|
|
41
|
-
| Export | Purpose
|
|
42
|
-
| ---------------------------------------------- |
|
|
43
|
-
| `verify` | Verify one schema text into a model of MD Types
|
|
44
|
-
| `validate` | Validate a text Library; returns acceptance or one refusal
|
|
45
|
-
| `parse`, `serialize` | Read and write one Document
|
|
46
|
-
| `apply` | Apply
|
|
47
|
-
| `links`, `target`, `retarget` | Inventory and rewrite link destinations
|
|
48
|
-
| `escapePointer` | Write one key as a JSON Pointer token
|
|
49
|
-
| `project`, `divide` | Embedding projection input and its division into Spans
|
|
50
|
-
| `facts`, `factKind`, `holds`, `fires` | A condition over a Document and over one of its changes
|
|
51
|
-
| `MARKDOWN_SYNTAX_PROFILE`, `VERSION` | The pinned Markdown profile (GFM 0.29) and MD model version
|
|
52
|
-
| `MEMBER_FIELD`, `SITE_FIELD`, `RECEIVED_FIELD` | The field names validation counts as declared beyond a type's own
|
|
38
|
+
| Export | Purpose |
|
|
39
|
+
| ---------------------------------------------- | ------------------------------------------------------------------ |
|
|
40
|
+
| `verify` | Verify one schema text into a model of MD Types |
|
|
41
|
+
| `validate` | Validate a text Library; returns acceptance or one refusal |
|
|
42
|
+
| `parse`, `serialize` | Read and write one Document |
|
|
43
|
+
| `apply` | Apply field, section, preamble, link and reference changes at once |
|
|
44
|
+
| `links`, `target`, `retarget` | Inventory and rewrite link destinations |
|
|
45
|
+
| `escapePointer` | Write one key as a JSON Pointer token |
|
|
46
|
+
| `project`, `divide` | Embedding projection input and its division into Spans |
|
|
47
|
+
| `facts`, `factKind`, `holds`, `fires` | A condition over a Document and over one of its changes |
|
|
48
|
+
| `MARKDOWN_SYNTAX_PROFILE`, `VERSION` | The pinned Markdown profile (GFM 0.29) and MD model version |
|
|
49
|
+
| `MEMBER_FIELD`, `SITE_FIELD`, `RECEIVED_FIELD` | The field names validation counts as declared beyond a type's own |
|
|
53
50
|
|
|
54
51
|
The full reference is in [`API.md`](API.md). The conformance corpus and its
|
|
55
52
|
verdict format and rule ids are described in [`fixtures/README.md`](fixtures/README.md).
|
package/dist/blocks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../src/blocks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;
|
|
1
|
+
{"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../src/blocks.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAEzC,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;AAoDF,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,WAAW,EAAE,CA4BrF;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAe/E"}
|
package/dist/blocks.js
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
|
-
import { fenceSpans } from './links.js';
|
|
2
|
-
const
|
|
1
|
+
import { fenceSpans, spanCursor } from './links.js';
|
|
2
|
+
const HEADING_OPEN = /^(#{1,6})(?!#)([ \t]+)/;
|
|
3
|
+
const LINE_BREAK = /[\n\r\u2028\u2029]/;
|
|
4
|
+
function blank(character) {
|
|
5
|
+
return character === ' ' || character === '\t';
|
|
6
|
+
}
|
|
7
|
+
function heading(text) {
|
|
8
|
+
const open = HEADING_OPEN.exec(text);
|
|
9
|
+
if (open === null || LINE_BREAK.test(text))
|
|
10
|
+
return null;
|
|
11
|
+
const level = open[1].length;
|
|
12
|
+
const rest = text.slice(open[0].length);
|
|
13
|
+
if (rest === '')
|
|
14
|
+
return open[2].length > 1 ? { level, name: '' } : null;
|
|
15
|
+
let end = rest.length;
|
|
16
|
+
while (blank(rest[end - 1]))
|
|
17
|
+
end -= 1;
|
|
18
|
+
let hashes = end;
|
|
19
|
+
while (rest[hashes - 1] === '#')
|
|
20
|
+
hashes -= 1;
|
|
21
|
+
let spaced = hashes;
|
|
22
|
+
while (blank(rest[spaced - 1]))
|
|
23
|
+
spaced -= 1;
|
|
24
|
+
const closed = hashes < end && spaced < hashes && spaced > 0;
|
|
25
|
+
return { level, name: rest.slice(0, closed ? spaced : end).trim() };
|
|
26
|
+
}
|
|
3
27
|
function lineAt(content, from, to) {
|
|
4
28
|
const nl = content.indexOf('\n', from);
|
|
5
29
|
const end = nl === -1 || nl >= to ? to : nl;
|
|
@@ -7,17 +31,11 @@ function lineAt(content, from, to) {
|
|
|
7
31
|
return { text: raw.endsWith('\r') ? raw.slice(0, -1) : raw, next: end === to ? to : end + 1 };
|
|
8
32
|
}
|
|
9
33
|
function scan(content, from, to, visit) {
|
|
10
|
-
const
|
|
34
|
+
const fenced = spanCursor(fenceSpans(content.slice(from, to)));
|
|
11
35
|
let i = from;
|
|
12
36
|
while (i < to) {
|
|
13
37
|
const { text, next } = lineAt(content, i, to);
|
|
14
|
-
|
|
15
|
-
visit({
|
|
16
|
-
text,
|
|
17
|
-
start: i,
|
|
18
|
-
next,
|
|
19
|
-
fenced: fences.some(([start, end]) => at >= start && at < end),
|
|
20
|
-
});
|
|
38
|
+
visit({ text, start: i, next, fenced: fenced(i - from) !== undefined });
|
|
21
39
|
if (next === i)
|
|
22
40
|
break;
|
|
23
41
|
i = next;
|
|
@@ -26,24 +44,21 @@ function scan(content, from, to, visit) {
|
|
|
26
44
|
const HASH = 0x23;
|
|
27
45
|
export function headingLines(content, from, to) {
|
|
28
46
|
const found = [];
|
|
29
|
-
let
|
|
47
|
+
let fenced = null;
|
|
30
48
|
let i = from;
|
|
31
49
|
while (i < to) {
|
|
32
50
|
const nl = content.indexOf('\n', i);
|
|
33
51
|
const end = nl === -1 || nl >= to ? to : nl;
|
|
34
52
|
const next = end === to ? to : end + 1;
|
|
35
53
|
if (content.charCodeAt(i) === HASH) {
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
if (!fences.some(([start, stop]) => at >= start && at < stop)) {
|
|
54
|
+
fenced ??= spanCursor(fenceSpans(content.slice(from, to)));
|
|
55
|
+
if (fenced(i - from) === undefined) {
|
|
39
56
|
const { text } = lineAt(content, i, to);
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
const name = match?.[2];
|
|
43
|
-
if (hashes !== undefined && name !== undefined) {
|
|
57
|
+
const read = heading(text);
|
|
58
|
+
if (read !== null) {
|
|
44
59
|
found.push({
|
|
45
|
-
level:
|
|
46
|
-
name: name
|
|
60
|
+
level: read.level,
|
|
61
|
+
name: read.name,
|
|
47
62
|
start: i,
|
|
48
63
|
textEnd: i + text.length,
|
|
49
64
|
next,
|
package/dist/condition.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { type ValueFacts } from './definition.js';
|
|
1
|
+
import { type Definition, type ValueFacts } from './definition.js';
|
|
2
2
|
import type { Document, VerifiedModel } from './types.js';
|
|
3
|
-
export type ConditionValue = string | number | boolean
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
export type ConditionValue = string | number | boolean;
|
|
4
|
+
export declare const CONDITION_OPERATORS: readonly ['eq', 'in', 'exists', 'contains', 'gt', 'gte', 'lt', 'lte', 'prefix'];
|
|
5
|
+
export type ConditionOperator = (typeof CONDITION_OPERATORS)[number];
|
|
6
6
|
export type ConditionTest = {
|
|
7
7
|
readonly all: readonly ConditionTest[];
|
|
8
8
|
} | {
|
|
@@ -41,6 +41,7 @@ type DocumentEventBase = {
|
|
|
41
41
|
readonly on: 'documents';
|
|
42
42
|
readonly scope: ConditionScope;
|
|
43
43
|
readonly by?: ConditionTest;
|
|
44
|
+
readonly moved_between_rooms?: boolean;
|
|
44
45
|
};
|
|
45
46
|
export type DocumentCondition = (DocumentEventBase & {
|
|
46
47
|
readonly mode: 'starts_matching';
|
|
@@ -75,7 +76,15 @@ export type DateCondition = {
|
|
|
75
76
|
readonly time_zone: string;
|
|
76
77
|
readonly match?: ConditionTest;
|
|
77
78
|
};
|
|
78
|
-
export type
|
|
79
|
+
export type NotificationCondition = {
|
|
80
|
+
readonly on: 'notifications';
|
|
81
|
+
readonly match?: ConditionTest;
|
|
82
|
+
};
|
|
83
|
+
export type MessageCondition = {
|
|
84
|
+
readonly on: 'messages';
|
|
85
|
+
readonly match?: ConditionTest;
|
|
86
|
+
};
|
|
87
|
+
export type Condition = DocumentCondition | ItemCondition | CronCondition | DateCondition | NotificationCondition | MessageCondition;
|
|
79
88
|
export type FactKind = 'string' | 'number' | 'boolean' | 'date' | 'time' | 'enum' | 'reference';
|
|
80
89
|
type Scalar = string | number | boolean;
|
|
81
90
|
export type Fact = {
|
|
@@ -102,11 +111,13 @@ export type DocumentFacts = {
|
|
|
102
111
|
readonly fields: Readonly<Record<string, Fact>>;
|
|
103
112
|
readonly sections: readonly string[];
|
|
104
113
|
};
|
|
105
|
-
export declare const
|
|
114
|
+
export declare const TEXT_FIELD = "/text";
|
|
115
|
+
export declare const WRITE_DOORS: readonly ['browser', 'agent', 'client', 'function'];
|
|
106
116
|
export type WriteDoor = (typeof WRITE_DOORS)[number];
|
|
107
117
|
export type Actor = {
|
|
108
118
|
readonly user?: string;
|
|
109
119
|
readonly site?: string;
|
|
120
|
+
readonly app?: string;
|
|
110
121
|
readonly door?: WriteDoor;
|
|
111
122
|
};
|
|
112
123
|
export type DocumentEvent = {
|
|
@@ -114,13 +125,12 @@ export type DocumentEvent = {
|
|
|
114
125
|
readonly after: DocumentFacts | null;
|
|
115
126
|
readonly changed: readonly string[];
|
|
116
127
|
readonly by: Actor;
|
|
128
|
+
readonly moved_between_rooms: boolean;
|
|
117
129
|
};
|
|
118
130
|
export type ItemFacts = {
|
|
119
131
|
readonly delivery: string;
|
|
120
132
|
readonly source: string | null;
|
|
121
133
|
readonly address: string | null;
|
|
122
|
-
readonly has_attachment: boolean;
|
|
123
|
-
readonly provider: string | null;
|
|
124
134
|
readonly container: string | null;
|
|
125
135
|
readonly author: string | null;
|
|
126
136
|
readonly headers: Readonly<Record<string, string>>;
|
|
@@ -128,6 +138,11 @@ export type ItemFacts = {
|
|
|
128
138
|
readonly value: unknown;
|
|
129
139
|
} | null;
|
|
130
140
|
};
|
|
141
|
+
export type MessageFacts = {
|
|
142
|
+
readonly sender: string;
|
|
143
|
+
readonly routine: string | null;
|
|
144
|
+
readonly path: string | null;
|
|
145
|
+
};
|
|
131
146
|
export type Resolved = {
|
|
132
147
|
readonly id: string;
|
|
133
148
|
readonly member?: string;
|
|
@@ -140,11 +155,26 @@ export declare function facts(document: Document, at: {
|
|
|
140
155
|
}, model: VerifiedModel, resolve: (target: string) => Resolved | undefined): DocumentFacts;
|
|
141
156
|
export declare function prosePaths(facts: DocumentFacts): string[];
|
|
142
157
|
export declare function datePointers(fields: Readonly<Record<string, ValueFacts>>): string[];
|
|
158
|
+
export declare function valuedChange(definition: Definition, field: string): boolean;
|
|
159
|
+
export declare function changeFields(definition: Definition): string[];
|
|
160
|
+
export declare function memberPointers(definition: Definition, memberType: string): string[];
|
|
161
|
+
export declare const DOCUMENT_PATHS: readonly string[];
|
|
162
|
+
export declare const ACTOR_PATHS: readonly string[];
|
|
163
|
+
export declare const ITEM_PATHS: readonly string[];
|
|
164
|
+
export declare const MESSAGE_PATHS: readonly string[];
|
|
165
|
+
export declare function testOperators(definitions: readonly Definition[], path: string, memberType: string | null): readonly ConditionOperator[];
|
|
166
|
+
export declare function actorOperators(path: string): readonly ConditionOperator[];
|
|
167
|
+
export declare function itemOperators(path: string): readonly ConditionOperator[];
|
|
168
|
+
export declare function messageOperators(path: string): readonly ConditionOperator[];
|
|
169
|
+
export declare function itemKind(path: string): FactKind | null;
|
|
143
170
|
export declare function dated(value: unknown): value is string;
|
|
144
171
|
export declare function instant(value: unknown): bigint | undefined;
|
|
145
172
|
export declare function pointed(value: unknown, pointer: string): unknown;
|
|
146
|
-
export declare function
|
|
147
|
-
export declare function
|
|
148
|
-
export declare function
|
|
173
|
+
export declare function members(document: DocumentFacts, path: string): readonly string[];
|
|
174
|
+
export declare function holds(test: ConditionTest, document: DocumentFacts): Truth;
|
|
175
|
+
export declare function fires(condition: DocumentCondition, event: DocumentEvent): boolean;
|
|
176
|
+
export declare function itemFires(condition: ItemCondition, item: ItemFacts): boolean;
|
|
177
|
+
export declare function notificationFires(condition: NotificationCondition, notification: DocumentFacts): boolean;
|
|
178
|
+
export declare function messageFires(condition: MessageCondition, message: MessageFacts): boolean;
|
|
149
179
|
export {};
|
|
150
180
|
//# sourceMappingURL=condition.d.ts.map
|
package/dist/condition.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../src/condition.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../src/condition.ts"],"names":[],"mappings":"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"}
|