@fieldia/core 0.15.0 → 0.17.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 (38) hide show
  1. package/package.json +1 -1
  2. package/schema/page.schema.json +413 -66
  3. package/src/lib/format/layout.d.mts +950 -39
  4. package/src/lib/format/layout.d.ts +950 -39
  5. package/src/lib/format/layout.js +96 -29
  6. package/src/lib/format/layout.js.map +1 -1
  7. package/src/lib/format/layout.mjs +95 -28
  8. package/src/lib/format/layout.mjs.map +1 -1
  9. package/src/lib/format/page.d.mts +17 -0
  10. package/src/lib/format/page.d.ts +17 -0
  11. package/src/lib/format/references.d.mts +11 -0
  12. package/src/lib/format/references.d.ts +11 -0
  13. package/src/lib/format/references.js +138 -20
  14. package/src/lib/format/references.js.map +1 -1
  15. package/src/lib/format/references.mjs +138 -20
  16. package/src/lib/format/references.mjs.map +1 -1
  17. package/src/lib/format/translate.js +8 -2
  18. package/src/lib/format/translate.js.map +1 -1
  19. package/src/lib/format/translate.mjs +8 -2
  20. package/src/lib/format/translate.mjs.map +1 -1
  21. package/src/lib/record/data-source.d.mts +10 -0
  22. package/src/lib/record/data-source.d.ts +10 -0
  23. package/src/lib/record/data-source.js.map +1 -1
  24. package/src/lib/record/data-source.mjs.map +1 -1
  25. package/src/lib/record/filter.d.mts +6 -0
  26. package/src/lib/record/filter.d.ts +6 -0
  27. package/src/lib/record/filter.js +26 -14
  28. package/src/lib/record/filter.js.map +1 -1
  29. package/src/lib/record/filter.mjs +25 -14
  30. package/src/lib/record/filter.mjs.map +1 -1
  31. package/src/lib/record/memory-data-source.js +4 -1
  32. package/src/lib/record/memory-data-source.js.map +1 -1
  33. package/src/lib/record/memory-data-source.mjs +5 -2
  34. package/src/lib/record/memory-data-source.mjs.map +1 -1
  35. package/src/runtime.d.mts +1 -1
  36. package/src/runtime.d.ts +1 -1
  37. package/src/runtime.js.map +1 -1
  38. package/src/runtime.mjs.map +1 -1
@@ -488,40 +488,156 @@ class ReferenceCheck {
488
488
  }
489
489
  /** A list's map: where each record is, and the fields its pin and its card show, each of a type that can. */
490
490
  walkListMap(map, path) {
491
- const typed = (name, at, ok, says) => {
492
- if (name === undefined)
493
- return;
494
- const def = this.need(name, at);
495
- if (def && !ok(def.type))
496
- this.report(at, `"${name}" is a ${def.type}; ${says}`);
497
- };
498
- const number = (type) => type === 'float' || type === 'integer';
499
491
  const pair = map.latitude !== undefined || map.longitude !== undefined;
500
492
  if (map.point !== undefined && pair)
501
493
  this.report(path, 'a map takes point, or latitude and longitude, not both');
502
494
  else if (map.point === undefined && (map.latitude === undefined || map.longitude === undefined))
503
495
  this.report(path, 'a map needs where each record is: point, or latitude and longitude');
504
- typed(map.point, `${path}.point`, (type) => type === 'json', 'a point is kept in a json field');
505
- typed(map.latitude, `${path}.latitude`, number, 'a latitude is a number field (float or integer)');
506
- typed(map.longitude, `${path}.longitude`, number, 'a longitude is a number field (float or integer)');
507
- const pin = map.pin;
496
+ this.checkPlace(map, path, this.here(), map.pin, map.card);
497
+ if (map.regions)
498
+ this.need(map.regions.field, `${path}.regions.field`);
499
+ if (typeof map.heat === 'object' && map.heat.weight !== undefined) {
500
+ const def = this.need(map.heat.weight, `${path}.heat.weight`);
501
+ if (def && def.type !== 'float' && def.type !== 'integer' && def.type !== 'monetary')
502
+ this.report(`${path}.heat.weight`, `"${map.heat.weight}" is a ${def.type}; a weight is a number field`);
503
+ }
504
+ }
505
+ /**
506
+ * Where a place is kept, and the fields its pin and its card show, each of a
507
+ * type that can: a page's fields, or a line's when the place is a line's.
508
+ */
509
+ checkPlace(at, path, scope, pin, card) {
510
+ const typed = (name, where, ok, says) => {
511
+ if (name === undefined)
512
+ return;
513
+ const def = this.need(name, where, scope.fields);
514
+ if (def && !ok(def.type))
515
+ this.report(where, `"${name}" is a ${def.type}; ${says}`);
516
+ };
517
+ const number = (type) => type === 'float' || type === 'integer';
518
+ const picture = (type) => type === 'image' || type === 'binary';
519
+ typed(at.point, `${path}.point`, (type) => type === 'json', 'a point is kept in a json field');
520
+ typed(at.latitude, `${path}.latitude`, number, 'a latitude is a number field (float or integer)');
521
+ typed(at.longitude, `${path}.longitude`, number, 'a longitude is a number field (float or integer)');
508
522
  if (pin) {
509
- typed(pin.image, `${path}.pin.image`, (type) => type === 'image' || type === 'binary', "a pin's photo is an image or binary field");
523
+ typed(pin.image, `${path}.pin.image`, picture, "a pin's photo is an image or binary field");
510
524
  typed(pin.turn, `${path}.pin.turn`, number, 'a turn is a number field, in degrees');
511
525
  if (pin.iconField !== undefined)
512
- this.need(pin.iconField, `${path}.pin.iconField`);
526
+ this.need(pin.iconField, `${path}.pin.iconField`, scope.fields);
513
527
  if (pin.label !== undefined)
514
- this.need(pin.label, `${path}.pin.label`);
515
- pin.tones?.forEach((tone, i) => this.checkModifiers(tone, `${path}.pin.tones[${i}]`, ['when']));
528
+ this.need(pin.label, `${path}.pin.label`, scope.fields);
529
+ pin.tones?.forEach((tone, i) => this.checkModifiers(tone, `${path}.pin.tones[${i}]`, ['when'], scope));
516
530
  }
517
- const card = map.card;
518
531
  if (card) {
519
532
  if (card.title !== undefined)
520
- this.need(card.title, `${path}.card.title`);
521
- typed(card.image, `${path}.card.image`, (type) => type === 'image' || type === 'binary', "a card's picture is an image or binary field");
522
- card.fields?.forEach((name, i) => this.need(name, `${path}.card.fields[${i}]`));
533
+ this.need(card.title, `${path}.card.title`, scope.fields);
534
+ typed(card.image, `${path}.card.image`, picture, "a card's picture is an image or binary field");
535
+ card.fields?.forEach((name, i) => this.need(name, `${path}.card.fields[${i}]`, scope.fields));
523
536
  }
524
537
  }
538
+ /**
539
+ * A form's map: each layer one kind — the record's place, a place for each
540
+ * of its lines, a route between layers, or the reader's own place — its
541
+ * fields where that kind keeps them, and a route's ends layers it can join.
542
+ */
543
+ walkMap(node, path) {
544
+ const layers = new Map();
545
+ node.layers.forEach((layer, i) => {
546
+ const at = `${path}.layers[${i}]`;
547
+ if (layers.has(layer.id))
548
+ this.report(`${at}.id`, `two layers are called "${layer.id}"`);
549
+ const pair = layer.latitude !== undefined || layer.longitude !== undefined;
550
+ const placed = layer.point !== undefined || pair;
551
+ const kinds = [placed, !!layer.route, !!layer.myLocation, !!layer.regions, !!layer.reachable].filter(Boolean).length;
552
+ if (kinds !== 1)
553
+ this.report(at, 'a layer is one of: a place (point, or latitude and longitude, for the record or for each of its lines), a route, myLocation, regions, or reachable');
554
+ if (layer.regions?.choose !== undefined)
555
+ this.need(layer.regions.choose, `${at}.regions.choose`);
556
+ if (layer.point !== undefined && pair)
557
+ this.report(at, 'a layer takes point, or latitude and longitude, not both');
558
+ else if (layer.point === undefined && pair && (layer.latitude === undefined || layer.longitude === undefined))
559
+ this.report(at, 'a layer needs both latitude and longitude');
560
+ if (layer.lines !== undefined && !placed)
561
+ this.report(`${at}.lines`, "a layer of lines needs where each line is: point, or latitude and longitude, of the line's fields");
562
+ if (layer.live && (!placed || layer.lines !== undefined))
563
+ this.report(`${at}.live`, "live is for a layer of the record's own place: it moves as its fields change");
564
+ this.checkModifiers(layer, at, ['invisible']);
565
+ layers.set(layer.id, { lines: layer.lines !== undefined, place: placed || !!layer.myLocation });
566
+ if (!placed)
567
+ return;
568
+ if (layer.lines === undefined)
569
+ return this.checkPlace(layer, at, this.here(), layer.pin, layer.card);
570
+ const def = this.need(layer.lines, `${at}.lines`);
571
+ if (!def)
572
+ return;
573
+ if (def.type !== 'one2many')
574
+ return this.report(`${at}.lines`, `"${layer.lines}" is a ${def.type}; a layer of lines is a one2many field`);
575
+ this.checkPlace(layer, at, { fields: def.fields, lines: layer.lines, parent: this.page.fields }, layer.pin, layer.card);
576
+ });
577
+ node.layers.forEach((layer, i) => {
578
+ const route = layer.route;
579
+ if (!route)
580
+ return;
581
+ const at = `${path}.layers[${i}].route`;
582
+ const end = (id, key) => {
583
+ if (id === undefined)
584
+ return;
585
+ const found = layers.get(id);
586
+ if (!found)
587
+ this.report(`${at}.${key}`, `no layer "${id}" on this map`);
588
+ else if (!found.place || found.lines)
589
+ this.report(`${at}.${key}`, `a route's ${key} is a layer of one place, or the reader's own; "${id}" is not`);
590
+ };
591
+ end(route.from, 'from');
592
+ end(route.to, 'to');
593
+ if (route.through !== undefined) {
594
+ const found = layers.get(route.through);
595
+ if (!found)
596
+ this.report(`${at}.through`, `no layer "${route.through}" on this map`);
597
+ else if (!found.lines)
598
+ this.report(`${at}.through`, `a route goes through a layer of lines; "${route.through}" is not one`);
599
+ }
600
+ if (route.to === undefined && route.through === undefined)
601
+ this.report(at, 'a route needs where it goes: to, or through');
602
+ const written = (name, key, ok, says) => {
603
+ if (name === undefined)
604
+ return;
605
+ const def = this.need(name, `${at}.write.${key}`);
606
+ if (def && !ok(def.type))
607
+ this.report(`${at}.write.${key}`, `"${name}" is a ${def.type}; ${says}`);
608
+ };
609
+ const number = (type) => type === 'float' || type === 'integer';
610
+ written(route.write?.seconds, 'seconds', number, 'seconds are a number field');
611
+ written(route.write?.metres, 'metres', number, 'metres are a number field');
612
+ written(route.write?.line, 'line', (type) => type === 'json', 'a line is kept in a json field');
613
+ });
614
+ node.layers.forEach((layer, i) => {
615
+ if (!layer.reachable)
616
+ return;
617
+ const found = layers.get(layer.reachable.from);
618
+ const at = `${path}.layers[${i}].reachable.from`;
619
+ if (!found)
620
+ this.report(at, `no layer "${layer.reachable.from}" on this map`);
621
+ else if (!found.place || found.lines)
622
+ this.report(at, `a reachable area is worked out from a layer of one place, or the reader's own; "${layer.reachable.from}" is not`);
623
+ });
624
+ node.fences?.forEach((fence, i) => {
625
+ const at = `${path}.fences[${i}]`;
626
+ const watched = node.layers.find((layer) => layer.id === fence.layer);
627
+ if (!watched)
628
+ this.report(`${at}.layer`, `no layer "${fence.layer}" on this map`);
629
+ else if (!watched.live && !watched.myLocation)
630
+ this.report(`${at}.layer`, `a fence watches a place that moves: a live layer, or the reader's own; "${fence.layer}" is not`);
631
+ if (fence.area !== undefined) {
632
+ const def = this.need(fence.area, `${at}.area`);
633
+ if (def && def.type !== 'json')
634
+ this.report(`${at}.area`, `"${fence.area}" is a ${def.type}; an area is kept in a json field`);
635
+ }
636
+ if (fence.within !== undefined && !node.layers.some((layer) => layer.id === fence.within && layer.reachable))
637
+ this.report(`${at}.within`, `a fence is within a reachable area of this map; "${fence.within}" is not one`);
638
+ this.checkSteps(fence.steps, `${at}.steps`);
639
+ });
640
+ }
525
641
  walkChildren(children, path) {
526
642
  children.forEach((child, i) => this.walkNode(child, `${path}.children[${i}]`));
527
643
  }
@@ -555,6 +671,8 @@ class ReferenceCheck {
555
671
  return this.checkPress(node, path);
556
672
  case 'text':
557
673
  return this.checkValuesIn(node.text, `${path}.text`);
674
+ case 'map':
675
+ return this.walkMap(node, path);
558
676
  default:
559
677
  return;
560
678
  }
@@ -1 +1 @@
1
- {"version":3,"file":"references.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/references.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"references.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/references.ts"],"names":[],"mappings":"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"}
@@ -485,40 +485,156 @@ export class ReferenceCheck {
485
485
  }
486
486
  /** A list's map: where each record is, and the fields its pin and its card show, each of a type that can. */
487
487
  walkListMap(map, path) {
488
- const typed = (name, at, ok, says) => {
489
- if (name === undefined)
490
- return;
491
- const def = this.need(name, at);
492
- if (def && !ok(def.type))
493
- this.report(at, `"${name}" is a ${def.type}; ${says}`);
494
- };
495
- const number = (type) => type === 'float' || type === 'integer';
496
488
  const pair = map.latitude !== undefined || map.longitude !== undefined;
497
489
  if (map.point !== undefined && pair)
498
490
  this.report(path, 'a map takes point, or latitude and longitude, not both');
499
491
  else if (map.point === undefined && (map.latitude === undefined || map.longitude === undefined))
500
492
  this.report(path, 'a map needs where each record is: point, or latitude and longitude');
501
- typed(map.point, `${path}.point`, (type) => type === 'json', 'a point is kept in a json field');
502
- typed(map.latitude, `${path}.latitude`, number, 'a latitude is a number field (float or integer)');
503
- typed(map.longitude, `${path}.longitude`, number, 'a longitude is a number field (float or integer)');
504
- const pin = map.pin;
493
+ this.checkPlace(map, path, this.here(), map.pin, map.card);
494
+ if (map.regions)
495
+ this.need(map.regions.field, `${path}.regions.field`);
496
+ if (typeof map.heat === 'object' && map.heat.weight !== undefined) {
497
+ const def = this.need(map.heat.weight, `${path}.heat.weight`);
498
+ if (def && def.type !== 'float' && def.type !== 'integer' && def.type !== 'monetary')
499
+ this.report(`${path}.heat.weight`, `"${map.heat.weight}" is a ${def.type}; a weight is a number field`);
500
+ }
501
+ }
502
+ /**
503
+ * Where a place is kept, and the fields its pin and its card show, each of a
504
+ * type that can: a page's fields, or a line's when the place is a line's.
505
+ */
506
+ checkPlace(at, path, scope, pin, card) {
507
+ const typed = (name, where, ok, says) => {
508
+ if (name === undefined)
509
+ return;
510
+ const def = this.need(name, where, scope.fields);
511
+ if (def && !ok(def.type))
512
+ this.report(where, `"${name}" is a ${def.type}; ${says}`);
513
+ };
514
+ const number = (type) => type === 'float' || type === 'integer';
515
+ const picture = (type) => type === 'image' || type === 'binary';
516
+ typed(at.point, `${path}.point`, (type) => type === 'json', 'a point is kept in a json field');
517
+ typed(at.latitude, `${path}.latitude`, number, 'a latitude is a number field (float or integer)');
518
+ typed(at.longitude, `${path}.longitude`, number, 'a longitude is a number field (float or integer)');
505
519
  if (pin) {
506
- typed(pin.image, `${path}.pin.image`, (type) => type === 'image' || type === 'binary', "a pin's photo is an image or binary field");
520
+ typed(pin.image, `${path}.pin.image`, picture, "a pin's photo is an image or binary field");
507
521
  typed(pin.turn, `${path}.pin.turn`, number, 'a turn is a number field, in degrees');
508
522
  if (pin.iconField !== undefined)
509
- this.need(pin.iconField, `${path}.pin.iconField`);
523
+ this.need(pin.iconField, `${path}.pin.iconField`, scope.fields);
510
524
  if (pin.label !== undefined)
511
- this.need(pin.label, `${path}.pin.label`);
512
- pin.tones?.forEach((tone, i) => this.checkModifiers(tone, `${path}.pin.tones[${i}]`, ['when']));
525
+ this.need(pin.label, `${path}.pin.label`, scope.fields);
526
+ pin.tones?.forEach((tone, i) => this.checkModifiers(tone, `${path}.pin.tones[${i}]`, ['when'], scope));
513
527
  }
514
- const card = map.card;
515
528
  if (card) {
516
529
  if (card.title !== undefined)
517
- this.need(card.title, `${path}.card.title`);
518
- typed(card.image, `${path}.card.image`, (type) => type === 'image' || type === 'binary', "a card's picture is an image or binary field");
519
- card.fields?.forEach((name, i) => this.need(name, `${path}.card.fields[${i}]`));
530
+ this.need(card.title, `${path}.card.title`, scope.fields);
531
+ typed(card.image, `${path}.card.image`, picture, "a card's picture is an image or binary field");
532
+ card.fields?.forEach((name, i) => this.need(name, `${path}.card.fields[${i}]`, scope.fields));
520
533
  }
521
534
  }
535
+ /**
536
+ * A form's map: each layer one kind — the record's place, a place for each
537
+ * of its lines, a route between layers, or the reader's own place — its
538
+ * fields where that kind keeps them, and a route's ends layers it can join.
539
+ */
540
+ walkMap(node, path) {
541
+ const layers = new Map();
542
+ node.layers.forEach((layer, i) => {
543
+ const at = `${path}.layers[${i}]`;
544
+ if (layers.has(layer.id))
545
+ this.report(`${at}.id`, `two layers are called "${layer.id}"`);
546
+ const pair = layer.latitude !== undefined || layer.longitude !== undefined;
547
+ const placed = layer.point !== undefined || pair;
548
+ const kinds = [placed, !!layer.route, !!layer.myLocation, !!layer.regions, !!layer.reachable].filter(Boolean).length;
549
+ if (kinds !== 1)
550
+ this.report(at, 'a layer is one of: a place (point, or latitude and longitude, for the record or for each of its lines), a route, myLocation, regions, or reachable');
551
+ if (layer.regions?.choose !== undefined)
552
+ this.need(layer.regions.choose, `${at}.regions.choose`);
553
+ if (layer.point !== undefined && pair)
554
+ this.report(at, 'a layer takes point, or latitude and longitude, not both');
555
+ else if (layer.point === undefined && pair && (layer.latitude === undefined || layer.longitude === undefined))
556
+ this.report(at, 'a layer needs both latitude and longitude');
557
+ if (layer.lines !== undefined && !placed)
558
+ this.report(`${at}.lines`, "a layer of lines needs where each line is: point, or latitude and longitude, of the line's fields");
559
+ if (layer.live && (!placed || layer.lines !== undefined))
560
+ this.report(`${at}.live`, "live is for a layer of the record's own place: it moves as its fields change");
561
+ this.checkModifiers(layer, at, ['invisible']);
562
+ layers.set(layer.id, { lines: layer.lines !== undefined, place: placed || !!layer.myLocation });
563
+ if (!placed)
564
+ return;
565
+ if (layer.lines === undefined)
566
+ return this.checkPlace(layer, at, this.here(), layer.pin, layer.card);
567
+ const def = this.need(layer.lines, `${at}.lines`);
568
+ if (!def)
569
+ return;
570
+ if (def.type !== 'one2many')
571
+ return this.report(`${at}.lines`, `"${layer.lines}" is a ${def.type}; a layer of lines is a one2many field`);
572
+ this.checkPlace(layer, at, { fields: def.fields, lines: layer.lines, parent: this.page.fields }, layer.pin, layer.card);
573
+ });
574
+ node.layers.forEach((layer, i) => {
575
+ const route = layer.route;
576
+ if (!route)
577
+ return;
578
+ const at = `${path}.layers[${i}].route`;
579
+ const end = (id, key) => {
580
+ if (id === undefined)
581
+ return;
582
+ const found = layers.get(id);
583
+ if (!found)
584
+ this.report(`${at}.${key}`, `no layer "${id}" on this map`);
585
+ else if (!found.place || found.lines)
586
+ this.report(`${at}.${key}`, `a route's ${key} is a layer of one place, or the reader's own; "${id}" is not`);
587
+ };
588
+ end(route.from, 'from');
589
+ end(route.to, 'to');
590
+ if (route.through !== undefined) {
591
+ const found = layers.get(route.through);
592
+ if (!found)
593
+ this.report(`${at}.through`, `no layer "${route.through}" on this map`);
594
+ else if (!found.lines)
595
+ this.report(`${at}.through`, `a route goes through a layer of lines; "${route.through}" is not one`);
596
+ }
597
+ if (route.to === undefined && route.through === undefined)
598
+ this.report(at, 'a route needs where it goes: to, or through');
599
+ const written = (name, key, ok, says) => {
600
+ if (name === undefined)
601
+ return;
602
+ const def = this.need(name, `${at}.write.${key}`);
603
+ if (def && !ok(def.type))
604
+ this.report(`${at}.write.${key}`, `"${name}" is a ${def.type}; ${says}`);
605
+ };
606
+ const number = (type) => type === 'float' || type === 'integer';
607
+ written(route.write?.seconds, 'seconds', number, 'seconds are a number field');
608
+ written(route.write?.metres, 'metres', number, 'metres are a number field');
609
+ written(route.write?.line, 'line', (type) => type === 'json', 'a line is kept in a json field');
610
+ });
611
+ node.layers.forEach((layer, i) => {
612
+ if (!layer.reachable)
613
+ return;
614
+ const found = layers.get(layer.reachable.from);
615
+ const at = `${path}.layers[${i}].reachable.from`;
616
+ if (!found)
617
+ this.report(at, `no layer "${layer.reachable.from}" on this map`);
618
+ else if (!found.place || found.lines)
619
+ this.report(at, `a reachable area is worked out from a layer of one place, or the reader's own; "${layer.reachable.from}" is not`);
620
+ });
621
+ node.fences?.forEach((fence, i) => {
622
+ const at = `${path}.fences[${i}]`;
623
+ const watched = node.layers.find((layer) => layer.id === fence.layer);
624
+ if (!watched)
625
+ this.report(`${at}.layer`, `no layer "${fence.layer}" on this map`);
626
+ else if (!watched.live && !watched.myLocation)
627
+ this.report(`${at}.layer`, `a fence watches a place that moves: a live layer, or the reader's own; "${fence.layer}" is not`);
628
+ if (fence.area !== undefined) {
629
+ const def = this.need(fence.area, `${at}.area`);
630
+ if (def && def.type !== 'json')
631
+ this.report(`${at}.area`, `"${fence.area}" is a ${def.type}; an area is kept in a json field`);
632
+ }
633
+ if (fence.within !== undefined && !node.layers.some((layer) => layer.id === fence.within && layer.reachable))
634
+ this.report(`${at}.within`, `a fence is within a reachable area of this map; "${fence.within}" is not one`);
635
+ this.checkSteps(fence.steps, `${at}.steps`);
636
+ });
637
+ }
522
638
  walkChildren(children, path) {
523
639
  children.forEach((child, i) => this.walkNode(child, `${path}.children[${i}]`));
524
640
  }
@@ -552,6 +668,8 @@ export class ReferenceCheck {
552
668
  return this.checkPress(node, path);
553
669
  case 'text':
554
670
  return this.checkValuesIn(node.text, `${path}.text`);
671
+ case 'map':
672
+ return this.walkMap(node, path);
555
673
  default:
556
674
  return;
557
675
  }