@mark1russell7/coeval 0.6.0 → 0.6.1

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/README.md CHANGED
@@ -27,7 +27,7 @@ A plan evaluates many times without a trace. `evaluate(machine, doc)` gives the
27
27
  | Documents | `isEnvelope`, `stored`, `typePath`, `docEquals` | The envelope, the keys of a store beside it, and the equality of documents. A host value, for example a date, is equal only to itself |
28
28
  | Parts | `partsOf`, `splitParts` | The kind and the parts of one document, with the declared type for a bare value. The plan, the reference and the static kit use it |
29
29
  | World | `lookupKind`, `Kind`, `Namespace`, `PartShape`, `ScopeRule`, `CapsRule` | The kinds, with their contracts: the shape of the parts, the type of the data, the kinds that a position permits, the names that a kind binds, the capabilities that it gives its parts, and its effects. A namespace can have a fallback kind |
30
- | Merges | `mergeWorlds`, `mergeMachines`, `MergeError` | The one merge of worlds and machines. Equal entries merge, and namespaces merge key by key. Each other clash is a conflict, unless the later part names its path in `replaces` |
30
+ | Merges | `mergeWorlds`, `mergeMachines`, `MergeError`, `restrictWorld`, `restrictMachine` | The one merge of worlds and machines. Equal entries merge, and namespaces merge key by key. Each other clash is a conflict, unless the later part names its path in `replaces`. A restriction removes entries and their code. [`docs/COMPOSITION.md`](https://github.com/mark1russell7/coeval/blob/main/docs/COMPOSITION.md) shows each mode of composition |
31
31
  | Ladder | `ask` | The evaluator of a verb: the own entry, then the kind, then the default |
32
32
  | References | `resolve`, `HostThing`, `Navigator` | A path from a root of the context: `self`, `names`, `world`, `event` or `caps`. A step document can have computed parts, and a walker can give the code of its failure |
33
33
  | Plans | `prepare`, `planner`, `evaluate`, `run` | A document compiles one time into code. An evaluator is a function or a compiler |
package/build/index.d.ts CHANGED
@@ -1373,6 +1373,36 @@ export declare function mergeWorlds(...parts: readonly (WorldPart | ((prev: Worl
1373
1373
  * @throws {MergeError} The merge has a conflict. The error lists each conflict.
1374
1374
  */
1375
1375
  export declare function mergeMachines(...parts: readonly (MachinePart | ((prev: Machine) => MachinePart))[]): Machine;
1376
+ /**
1377
+ * This function removes entries from a world, for a language that restricts another language. A path names an entry
1378
+ * as `replaces` names it, for example `["kinds", "fn"]`, `["kinds", "ops", "kinds", "mul"]`,
1379
+ * `["kinds", "ops", "fallback"]`, `["defaults", "view"]` or `["fallback"]`. A path that names no entry changes
1380
+ * nothing. The function does not change the world.
1381
+ *
1382
+ * A removed kind gives `#KIND?`, also through an alias to it. A namespace without its fallback knows only its own keys.
1383
+ * A world without its fallback is closed.
1384
+ *
1385
+ * @param world - The world.
1386
+ * @param paths - The paths of the entries to remove.
1387
+ * @returns The world without the entries.
1388
+ */
1389
+ export declare function restrictWorld(world: World, paths: readonly MergePath[]): World;
1390
+ /**
1391
+ * This function removes entries from a machine, for a language that restricts another language. A path names an
1392
+ * entry as `replaces` names it:
1393
+ *
1394
+ * - A path that starts with `"world"` removes an entry of the world, with the rules of `restrictWorld`.
1395
+ * - `["evaluators", name]` or `["runners", name]` removes the code of the name: its evaluator and its runner.
1396
+ * - `["derefs", name]` and `["walkers", name]` remove one entry of their tables.
1397
+ *
1398
+ * A path that names no entry changes nothing. The function does not change the machine. An own entry names an
1399
+ * evaluator directly, thus only a machine without the code of a name refuses each document that names it.
1400
+ *
1401
+ * @param machine - The machine.
1402
+ * @param paths - The paths of the entries to remove.
1403
+ * @returns The machine without the entries.
1404
+ */
1405
+ export declare function restrictMachine(machine: Machine, paths: readonly MergePath[]): Machine;
1376
1406
  //#endregion
1377
1407
  //#region src/classify.d.ts
1378
1408
  /** A shape proposes a kind for each document that has all of its fields. */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":["Part","Shape"],"sources":["../src/doc.ts","../src/errors.ts","../src/deref.ts","../src/world.ts","../src/ladder.ts","../src/evaluate.ts","../src/merge.ts","../src/classify.ts","../src/parts.ts","../src/stdlib.ts","../src/order.ts","../src/context.ts","../src/static.ts","../src/formula.ts","../src/reference.ts","../src/agree.ts","../src/generate.ts"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":["Part","Shape"],"sources":["../src/doc.ts","../src/errors.ts","../src/deref.ts","../src/world.ts","../src/ladder.ts","../src/evaluate.ts","../src/merge.ts","../src/classify.ts","../src/parts.ts","../src/stdlib.ts","../src/order.ts","../src/context.ts","../src/static.ts","../src/formula.ts","../src/reference.ts","../src/agree.ts","../src/generate.ts"],"mappings":"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"}
package/build/index.js CHANGED
@@ -839,6 +839,114 @@ function mergeMachines(...parts) {
839
839
  if (m.conflicts.length > 0) throw new MergeError(m.conflicts);
840
840
  return machineOf(draft);
841
841
  }
842
+ /** This function removes the entry at a path from a table of entries. It gives the same table when no entry is there. */
843
+ function removeEntry(entries, path) {
844
+ const [first, ...rest] = path;
845
+ if (first === void 0) return entries;
846
+ const key = String(first);
847
+ const entry = own$1(entries, key);
848
+ if (entry === void 0) return entries;
849
+ let next;
850
+ if (rest.length > 0) {
851
+ if (!isNamespace(entry)) return entries;
852
+ if (rest.length === 1 && String(rest[0]) === "fallback") {
853
+ if (entry.fallback === void 0) return entries;
854
+ next = { kinds: entry.kinds };
855
+ } else {
856
+ if (String(rest[0]) !== "kinds") return entries;
857
+ const kinds = removeEntry(entry.kinds, rest.slice(1));
858
+ if (kinds === entry.kinds) return entries;
859
+ next = entry.fallback === void 0 ? { kinds } : {
860
+ kinds,
861
+ fallback: entry.fallback
862
+ };
863
+ }
864
+ }
865
+ const out = { ...entries };
866
+ if (next === void 0) delete out[key];
867
+ else setOwn$2(out, key, next);
868
+ return out;
869
+ }
870
+ /**
871
+ * This function removes entries from a world, for a language that restricts another language. A path names an entry
872
+ * as `replaces` names it, for example `["kinds", "fn"]`, `["kinds", "ops", "kinds", "mul"]`,
873
+ * `["kinds", "ops", "fallback"]`, `["defaults", "view"]` or `["fallback"]`. A path that names no entry changes
874
+ * nothing. The function does not change the world.
875
+ *
876
+ * A removed kind gives `#KIND?`, also through an alias to it. A namespace without its fallback knows only its own keys.
877
+ * A world without its fallback is closed.
878
+ *
879
+ * @param world - The world.
880
+ * @param paths - The paths of the entries to remove.
881
+ * @returns The world without the entries.
882
+ */
883
+ function restrictWorld(world, paths) {
884
+ let kinds = world.kinds;
885
+ const defaults = { ...world.defaults };
886
+ let fallback = world.fallback;
887
+ for (const path of paths) {
888
+ const [first, ...rest] = path.map(String);
889
+ if (first === "kinds") kinds = removeEntry(kinds, rest);
890
+ else if (first === "defaults" && rest.length === 1) delete defaults[rest[0]];
891
+ else if (first === "fallback" && rest.length === 0) fallback = void 0;
892
+ }
893
+ const out = {
894
+ kinds: { ...kinds },
895
+ defaults
896
+ };
897
+ return fallback === void 0 ? out : {
898
+ ...out,
899
+ fallback
900
+ };
901
+ }
902
+ /** The tables of the code of a machine, as the paths of a restriction name them. */
903
+ const CODE_TABLES = [
904
+ "evaluators",
905
+ "runners",
906
+ "derefs",
907
+ "walkers"
908
+ ];
909
+ /**
910
+ * This function removes entries from a machine, for a language that restricts another language. A path names an
911
+ * entry as `replaces` names it:
912
+ *
913
+ * - A path that starts with `"world"` removes an entry of the world, with the rules of `restrictWorld`.
914
+ * - `["evaluators", name]` or `["runners", name]` removes the code of the name: its evaluator and its runner.
915
+ * - `["derefs", name]` and `["walkers", name]` remove one entry of their tables.
916
+ *
917
+ * A path that names no entry changes nothing. The function does not change the machine. An own entry names an
918
+ * evaluator directly, thus only a machine without the code of a name refuses each document that names it.
919
+ *
920
+ * @param machine - The machine.
921
+ * @param paths - The paths of the entries to remove.
922
+ * @returns The machine without the entries.
923
+ */
924
+ function restrictMachine(machine, paths) {
925
+ const world = paths.filter((path) => String(path[0]) === "world").map((path) => path.slice(1));
926
+ const tables = {
927
+ evaluators: { ...machine.evaluators },
928
+ runners: machine.runners === void 0 ? void 0 : { ...machine.runners },
929
+ derefs: machine.derefs === void 0 ? void 0 : { ...machine.derefs },
930
+ walkers: machine.walkers === void 0 ? void 0 : { ...machine.walkers }
931
+ };
932
+ for (const path of paths) {
933
+ const [table, name, ...rest] = path.map(String);
934
+ if (name === void 0 || rest.length > 0 || !CODE_TABLES.includes(table)) continue;
935
+ const from = table === "evaluators" || table === "runners" ? ["evaluators", "runners"] : [table];
936
+ for (const key of from) {
937
+ const entries = tables[key];
938
+ if (entries !== void 0) delete entries[name];
939
+ }
940
+ }
941
+ return {
942
+ ...machine,
943
+ world: world.length === 0 ? machine.world : restrictWorld(machine.world, world),
944
+ evaluators: tables.evaluators,
945
+ ...tables.runners === void 0 ? {} : { runners: tables.runners },
946
+ ...tables.derefs === void 0 ? {} : { derefs: tables.derefs },
947
+ ...tables.walkers === void 0 ? {} : { walkers: tables.walkers }
948
+ };
949
+ }
842
950
  //#endregion
843
951
  //#region src/ladder.ts
844
952
  /** The rungs of the ladder, in the order that a question visits them. */
@@ -5564,6 +5672,6 @@ function generate(world, options) {
5564
5672
  });
5565
5673
  }
5566
5674
  //#endregion
5567
- export { CONSTRUCTS, ENVELOPE_KEYS, Failure, Held, MergeError, PARTS, PART_INFO, ROOTS, RUNGS, STD_CAPS, STD_DEFINITIONS, STD_EVALUATORS, STD_EXT, STD_MACHINE, STD_RUNNERS, STD_WALKERS, STD_WORLD, THING, agree, ask, capKeys, check, checkSteps, classify, context, dataEdges, derefStep, describe, docEquals, effectEdges, entriesAsJson, evaluate, fail, failures, field, flatten, formulaDefinitions, formulaEvaluators, formulaKinds, formulaKnown, formulaMachine, fromJson, generate, intersectCaps, isAlias, isAllowedOrder, isClosure, isEnvelope, isHostThing, isKey, isKind, isNamespace, isRecord, isRef, isStackOverflow, isTypeRef, jsTruthy, kindDocument, kindNamed, kindOf, layers, looksLikeKind, lookupKind, makeContext, mapRefs, mergeMachines, mergeWorlds, narrow, nearestWalker, nodeAt, ok, partCaps, partsOf, pathMatches, permits, placed, planner, prepare, random, ref, reference, refsOf, resolve, run, sameValue, splitParts, stored, tag, thrown, toJson, typeName, typePath, typed, typesOf, valueOfThing, walk, worldThing };
5675
+ export { CONSTRUCTS, ENVELOPE_KEYS, Failure, Held, MergeError, PARTS, PART_INFO, ROOTS, RUNGS, STD_CAPS, STD_DEFINITIONS, STD_EVALUATORS, STD_EXT, STD_MACHINE, STD_RUNNERS, STD_WALKERS, STD_WORLD, THING, agree, ask, capKeys, check, checkSteps, classify, context, dataEdges, derefStep, describe, docEquals, effectEdges, entriesAsJson, evaluate, fail, failures, field, flatten, formulaDefinitions, formulaEvaluators, formulaKinds, formulaKnown, formulaMachine, fromJson, generate, intersectCaps, isAlias, isAllowedOrder, isClosure, isEnvelope, isHostThing, isKey, isKind, isNamespace, isRecord, isRef, isStackOverflow, isTypeRef, jsTruthy, kindDocument, kindNamed, kindOf, layers, looksLikeKind, lookupKind, makeContext, mapRefs, mergeMachines, mergeWorlds, narrow, nearestWalker, nodeAt, ok, partCaps, partsOf, pathMatches, permits, placed, planner, prepare, random, ref, reference, refsOf, resolve, restrictMachine, restrictWorld, run, sameValue, splitParts, stored, tag, thrown, toJson, typeName, typePath, typed, typesOf, valueOfThing, walk, worldThing };
5568
5676
 
5569
5677
  //# sourceMappingURL=index.js.map