@agentshouse/mdmodel 0.1.0-ce8ce7ff57e88 → 0.1.0-cf5ccc9c47590
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 +3 -3
- package/dist/condition.d.ts +5 -6
- package/dist/condition.d.ts.map +1 -1
- package/dist/condition.js +43 -36
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/API.md
CHANGED
|
@@ -320,9 +320,9 @@ not fit its kind, such as a string in a number field, a value outside its `enum`
|
|
|
320
320
|
|
|
321
321
|
`holds(test, facts, owner)` is `true`, `false` or `undefined`, unknown; a Trigger fires on `true`
|
|
322
322
|
alone. A test's `path` is `/path`, `/type`, `/sections/<heading>`, `/fields/<pointer>`, or
|
|
323
|
-
`/members/<pointer>`, the
|
|
324
|
-
|
|
325
|
-
values holds as `any` does.
|
|
323
|
+
`/members/<pointer>`, the members a reference field's Documents bind, which `members(facts, path)`
|
|
324
|
+
lists. A non-index pointer segment reads every item of a list, an item lacking it unknown, and a
|
|
325
|
+
test over several values holds as `any` does. `{ owner: true }` stands for `owner`, a User id.
|
|
326
326
|
|
|
327
327
|
| The path reaches | `exists` | `contains` | any other test |
|
|
328
328
|
| --------------------------------------- | ----------- | -------------- | -------------- |
|
package/dist/condition.d.ts
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import { type ValueFacts } from './definition.js';
|
|
2
2
|
import type { Document, VerifiedModel } from './types.js';
|
|
3
|
-
export type ConditionValue = string | number | boolean
|
|
4
|
-
readonly owner: true;
|
|
5
|
-
};
|
|
3
|
+
export type ConditionValue = string | number | boolean;
|
|
6
4
|
export type ConditionTest = {
|
|
7
5
|
readonly all: readonly ConditionTest[];
|
|
8
6
|
} | {
|
|
@@ -142,8 +140,9 @@ export declare function datePointers(fields: Readonly<Record<string, ValueFacts>
|
|
|
142
140
|
export declare function dated(value: unknown): value is string;
|
|
143
141
|
export declare function instant(value: unknown): bigint | undefined;
|
|
144
142
|
export declare function pointed(value: unknown, pointer: string): unknown;
|
|
145
|
-
export declare function
|
|
146
|
-
export declare function
|
|
147
|
-
export declare function
|
|
143
|
+
export declare function members(document: DocumentFacts, path: string): readonly string[];
|
|
144
|
+
export declare function holds(test: ConditionTest, document: DocumentFacts): Truth;
|
|
145
|
+
export declare function fires(condition: DocumentCondition, event: DocumentEvent): boolean;
|
|
146
|
+
export declare function itemFires(condition: ItemCondition, item: ItemFacts): boolean;
|
|
148
147
|
export {};
|
|
149
148
|
//# 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,EAOL,KAAK,UAAU,EAChB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG1D,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"condition.d.ts","sourceRoot":"","sources":["../src/condition.ts"],"names":[],"mappings":"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"}
|
package/dist/condition.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ARRAY_INDEX, escapePointer, fieldFacts, itemFacts, memberFacts, pointerSegments, } from './definition.js';
|
|
2
2
|
import { roomPath, target } from './paths.js';
|
|
3
|
-
import {
|
|
3
|
+
import { plain } from './yaml.js';
|
|
4
4
|
export const WRITE_DOORS = ['browser', 'agent', 'client'];
|
|
5
5
|
const PROSE = { kind: 'prose' };
|
|
6
6
|
const NULL = { kind: 'null' };
|
|
@@ -308,19 +308,15 @@ function readItem(item, path) {
|
|
|
308
308
|
: null;
|
|
309
309
|
return value === null ? undefined : single({ kind: 'string', value });
|
|
310
310
|
}
|
|
311
|
-
function
|
|
312
|
-
return isRecord(value) && value.owner === true ? owner : value;
|
|
313
|
-
}
|
|
314
|
-
function equal(held, value, owner) {
|
|
311
|
+
function equal(held, value) {
|
|
315
312
|
if (!('value' in held))
|
|
316
313
|
return undefined;
|
|
317
|
-
|
|
318
|
-
if (typeof expected !== typeof held.value)
|
|
314
|
+
if (typeof value !== typeof held.value)
|
|
319
315
|
return undefined;
|
|
320
316
|
if (held.kind !== 'time')
|
|
321
|
-
return
|
|
317
|
+
return value === held.value;
|
|
322
318
|
const left = instant(held.value);
|
|
323
|
-
const right = instant(
|
|
319
|
+
const right = instant(value);
|
|
324
320
|
return left === undefined || right === undefined ? undefined : left === right;
|
|
325
321
|
}
|
|
326
322
|
function sign(left, right) {
|
|
@@ -357,11 +353,11 @@ function allOf(truths) {
|
|
|
357
353
|
return false;
|
|
358
354
|
return truths.some((truth) => truth === undefined) ? undefined : true;
|
|
359
355
|
}
|
|
360
|
-
function compared(test, held
|
|
356
|
+
function compared(test, held) {
|
|
361
357
|
if ('eq' in test)
|
|
362
|
-
return equal(held, test.eq
|
|
358
|
+
return equal(held, test.eq);
|
|
363
359
|
if ('in' in test)
|
|
364
|
-
return anyOf(test.in.map((value) => equal(held, value
|
|
360
|
+
return anyOf(test.in.map((value) => equal(held, value)));
|
|
365
361
|
if ('prefix' in test) {
|
|
366
362
|
if (!('value' in held) || typeof held.value !== 'string')
|
|
367
363
|
return undefined;
|
|
@@ -377,7 +373,7 @@ function compared(test, held, owner) {
|
|
|
377
373
|
return ordered(held, test.lt, (sign) => sign < 0);
|
|
378
374
|
return ordered(held, test.lte, (sign) => sign <= 0);
|
|
379
375
|
}
|
|
380
|
-
function leaf(test, read
|
|
376
|
+
function leaf(test, read) {
|
|
381
377
|
if ('exists' in test) {
|
|
382
378
|
const present = read === undefined ? false : read.present;
|
|
383
379
|
return present === undefined ? undefined : present === test.exists;
|
|
@@ -387,26 +383,37 @@ function leaf(test, read, owner) {
|
|
|
387
383
|
if ('contains' in test) {
|
|
388
384
|
if (read.items === null)
|
|
389
385
|
return undefined;
|
|
390
|
-
const truths = read.items.map((item) => item === undefined ? undefined : equal(item, test.contains
|
|
386
|
+
const truths = read.items.map((item) => item === undefined ? undefined : equal(item, test.contains));
|
|
391
387
|
return read.loose === true && !truths.includes(true) ? false : anyOf(truths);
|
|
392
388
|
}
|
|
393
389
|
if (read.values.length === 0)
|
|
394
390
|
return read === NO_ITEM ? false : undefined;
|
|
395
|
-
return anyOf(read.values.map((value) => (value === undefined ? undefined : compared(test, value
|
|
391
|
+
return anyOf(read.values.map((value) => (value === undefined ? undefined : compared(test, value))));
|
|
396
392
|
}
|
|
397
|
-
function evaluated(test, read
|
|
393
|
+
function evaluated(test, read) {
|
|
398
394
|
if ('all' in test)
|
|
399
|
-
return allOf(test.all.map((part) => evaluated(part, read
|
|
395
|
+
return allOf(test.all.map((part) => evaluated(part, read)));
|
|
400
396
|
if ('any' in test)
|
|
401
|
-
return anyOf(test.any.map((part) => evaluated(part, read
|
|
397
|
+
return anyOf(test.any.map((part) => evaluated(part, read)));
|
|
402
398
|
if ('not' in test) {
|
|
403
|
-
const truth = evaluated(test.not, read
|
|
399
|
+
const truth = evaluated(test.not, read);
|
|
404
400
|
return truth === undefined ? undefined : !truth;
|
|
405
401
|
}
|
|
406
|
-
return leaf(test, read(test.path)
|
|
402
|
+
return leaf(test, read(test.path));
|
|
403
|
+
}
|
|
404
|
+
export function members(document, path) {
|
|
405
|
+
if (!path.startsWith('/members/'))
|
|
406
|
+
return [];
|
|
407
|
+
const read = readDocument(document, path);
|
|
408
|
+
const values = read === undefined ? [] : [...read.values, ...(read.items ?? [])];
|
|
409
|
+
return [
|
|
410
|
+
...new Set(values.flatMap((value) => value !== undefined && value.kind === 'member' && 'value' in value
|
|
411
|
+
? [String(value.value)]
|
|
412
|
+
: [])),
|
|
413
|
+
].sort();
|
|
407
414
|
}
|
|
408
|
-
export function holds(test, document
|
|
409
|
-
return evaluated(test, (path) => readDocument(document, path)
|
|
415
|
+
export function holds(test, document) {
|
|
416
|
+
return evaluated(test, (path) => readDocument(document, path));
|
|
410
417
|
}
|
|
411
418
|
function inScope(scope, document) {
|
|
412
419
|
if (document === null)
|
|
@@ -417,10 +424,10 @@ function inScope(scope, document) {
|
|
|
417
424
|
return document.id === scope.document;
|
|
418
425
|
return scope.folder === '/' || document.path.startsWith(`${scope.folder}/`);
|
|
419
426
|
}
|
|
420
|
-
function matched(condition, test, document
|
|
427
|
+
function matched(condition, test, document) {
|
|
421
428
|
if (!inScope(condition.scope, document))
|
|
422
429
|
return false;
|
|
423
|
-
return test === undefined || holds(test, document
|
|
430
|
+
return test === undefined || holds(test, document) === true;
|
|
424
431
|
}
|
|
425
432
|
function reachedAt(document, field) {
|
|
426
433
|
if (document === null)
|
|
@@ -453,10 +460,10 @@ function valueOf(fact) {
|
|
|
453
460
|
function signature(reached) {
|
|
454
461
|
return JSON.stringify(reached.map(({ fact }) => valueOf(fact)));
|
|
455
462
|
}
|
|
456
|
-
function among(values, document, field
|
|
457
|
-
return holds({ path: field, in: values }, document
|
|
463
|
+
function among(values, document, field) {
|
|
464
|
+
return holds({ path: field, in: values }, document) === true;
|
|
458
465
|
}
|
|
459
|
-
function fieldChanged(condition, event
|
|
466
|
+
function fieldChanged(condition, event) {
|
|
460
467
|
const { field, from, to } = condition;
|
|
461
468
|
const before = reachedAt(event.before, field);
|
|
462
469
|
const after = reachedAt(event.after, field);
|
|
@@ -470,32 +477,32 @@ function fieldChanged(condition, event, owner) {
|
|
|
470
477
|
return false;
|
|
471
478
|
if (from === 'new'
|
|
472
479
|
? event.before !== null
|
|
473
|
-
: from !== undefined && (event.before === null || !among(from, event.before, field
|
|
480
|
+
: from !== undefined && (event.before === null || !among(from, event.before, field)))
|
|
474
481
|
return false;
|
|
475
482
|
if (to === 'deleted'
|
|
476
483
|
? event.after !== null
|
|
477
|
-
: to !== undefined && (event.after === null || !among(to, event.after, field
|
|
484
|
+
: to !== undefined && (event.after === null || !among(to, event.after, field)))
|
|
478
485
|
return false;
|
|
479
486
|
return true;
|
|
480
487
|
}
|
|
481
|
-
export function fires(condition, event
|
|
488
|
+
export function fires(condition, event) {
|
|
482
489
|
if (condition.by !== undefined &&
|
|
483
|
-
evaluated(condition.by, (path) => readActor(event.by, path)
|
|
490
|
+
evaluated(condition.by, (path) => readActor(event.by, path)) !== true)
|
|
484
491
|
return false;
|
|
485
492
|
if (condition.mode === 'starts_matching') {
|
|
486
493
|
if (event.before === null && !condition.new_documents)
|
|
487
494
|
return false;
|
|
488
|
-
return (matched(condition, condition.match, event.after
|
|
489
|
-
!matched(condition, condition.match, event.before
|
|
495
|
+
return (matched(condition, condition.match, event.after) &&
|
|
496
|
+
!matched(condition, condition.match, event.before));
|
|
490
497
|
}
|
|
491
498
|
const side = event.after ?? event.before;
|
|
492
|
-
return matched(condition, condition.match, side
|
|
499
|
+
return matched(condition, condition.match, side) && fieldChanged(condition, event);
|
|
493
500
|
}
|
|
494
|
-
export function itemFires(condition, item
|
|
501
|
+
export function itemFires(condition, item) {
|
|
495
502
|
if (condition.source !== undefined && item.source !== condition.source)
|
|
496
503
|
return false;
|
|
497
504
|
if (condition.address !== undefined && item.address !== condition.address)
|
|
498
505
|
return false;
|
|
499
506
|
return (condition.match === undefined ||
|
|
500
|
-
evaluated(condition.match, (path) => readItem(item, path)
|
|
507
|
+
evaluated(condition.match, (path) => readItem(item, path)) === true);
|
|
501
508
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { dated, datePointers, factKind, facts, fires, holds, instant, itemFires, pointed, prosePaths, WRITE_DOORS, } from './condition.js';
|
|
1
|
+
export { dated, datePointers, factKind, facts, fires, holds, instant, itemFires, members, pointed, prosePaths, WRITE_DOORS, } from './condition.js';
|
|
2
2
|
export type { Actor, Condition, ConditionScope, ConditionTest, ConditionValue, CronCondition, DateCondition, DocumentCondition, DocumentEvent, DocumentFacts, Fact, FactKind, ItemCondition, ItemFacts, Resolved, WriteDoor, } from './condition.js';
|
|
3
3
|
export { headingLines } from './blocks.js';
|
|
4
4
|
export type { HeadingLine } from './blocks.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,KAAK,EACL,KAAK,EACL,OAAO,EACP,SAAS,EACT,OAAO,EACP,UAAU,EACV,WAAW,GACZ,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,KAAK,EACL,SAAS,EACT,cAAc,EACd,aAAa,EACb,cAAc,EACd,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,IAAI,EACJ,QAAQ,EACR,aAAa,EACb,SAAS,EACT,QAAQ,EACR,SAAS,GACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EACL,KAAK,EACL,SAAS,EACT,UAAU,EACV,eAAe,EACf,KAAK,EACL,KAAK,EACL,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,UAAU,EACV,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACjG,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAC9E,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EACL,WAAW,EACX,UAAU,EACV,YAAY,EACZ,aAAa,EACb,SAAS,EACT,WAAW,EACX,YAAY,EACZ,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,UAAU,EACV,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,WAAW,EACX,KAAK,EACL,UAAU,EACV,UAAU,GACX,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,WAAW,EACX,UAAU,EACV,MAAM,EACN,QAAQ,EACR,eAAe,EACf,QAAQ,EACR,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,OAAO,EACP,iBAAiB,EACjB,IAAI,EACJ,cAAc,EACd,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,OAAO,EACP,SAAS,EACT,OAAO,EACP,aAAa,EACb,IAAI,EACJ,UAAU,EACV,iBAAiB,EACjB,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,aAAa,EACb,aAAa,EACb,QAAQ,EACR,cAAc,EACd,iBAAiB,EACjB,QAAQ,EACR,UAAU,EACV,MAAM,GACP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC/E,YAAY,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,EACL,YAAY,EACZ,QAAQ,EACR,KAAK,EACL,KAAK,EACL,KAAK,EACL,OAAO,EACP,SAAS,EACT,OAAO,EACP,OAAO,EACP,UAAU,EACV,WAAW,GACZ,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,KAAK,EACL,SAAS,EACT,cAAc,EACd,aAAa,EACb,cAAc,EACd,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,IAAI,EACJ,QAAQ,EACR,aAAa,EACb,SAAS,EACT,QAAQ,EACR,SAAS,GACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,YAAY,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EACL,KAAK,EACL,SAAS,EACT,UAAU,EACV,eAAe,EACf,KAAK,EACL,KAAK,EACL,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,UAAU,EACV,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACjG,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAC9E,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EACL,WAAW,EACX,UAAU,EACV,YAAY,EACZ,aAAa,EACb,SAAS,EACT,WAAW,EACX,YAAY,EACZ,eAAe,GAChB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,UAAU,EACV,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,WAAW,EACX,KAAK,EACL,UAAU,EACV,UAAU,GACX,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,WAAW,EACX,UAAU,EACV,MAAM,EACN,QAAQ,EACR,eAAe,EACf,QAAQ,EACR,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,OAAO,EACP,iBAAiB,EACjB,IAAI,EACJ,cAAc,EACd,WAAW,EACX,UAAU,EACV,iBAAiB,EACjB,OAAO,EACP,SAAS,EACT,OAAO,EACP,aAAa,EACb,IAAI,EACJ,UAAU,EACV,iBAAiB,EACjB,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,aAAa,EACb,aAAa,EACb,QAAQ,EACR,cAAc,EACd,iBAAiB,EACjB,QAAQ,EACR,UAAU,EACV,MAAM,GACP,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC/E,YAAY,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { dated, datePointers, factKind, facts, fires, holds, instant, itemFires, pointed, prosePaths, WRITE_DOORS, } from './condition.js';
|
|
1
|
+
export { dated, datePointers, factKind, facts, fires, holds, instant, itemFires, members, pointed, prosePaths, WRITE_DOORS, } from './condition.js';
|
|
2
2
|
export { headingLines } from './blocks.js';
|
|
3
3
|
export { divide } from './divide.js';
|
|
4
4
|
export { apply, bodyLinks, fieldStart, linkOccurrences, links, parse, parseFrontmatter, relativize, relativizeBody, relinkBody, serialize, } from './document.js';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agentshouse/mdmodel",
|
|
3
|
-
"version": "0.1.0-
|
|
3
|
+
"version": "0.1.0-cf5ccc9c47590",
|
|
4
4
|
"description": "MD Type language, parser, validator, structured change application, Markdown syntax profile, and conformance fixtures",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|