@party-stack/ontology 0.14.0 → 0.15.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 (68) hide show
  1. package/lib/examples/blog.d.ts +29 -24
  2. package/lib/examples/blog.d.ts.map +1 -1
  3. package/lib/examples/blog.js +16 -9
  4. package/lib/examples/blog.js.map +1 -1
  5. package/lib/generate/ontology.test.js +9 -3
  6. package/lib/generate/ontology.test.js.map +1 -1
  7. package/lib/generate/types.test.js +3 -3
  8. package/lib/generate/types.test.js.map +1 -1
  9. package/lib/infer.test.js +1 -1
  10. package/lib/infer.test.js.map +1 -1
  11. package/lib/ir/generated/builders.d.ts +92 -36
  12. package/lib/ir/generated/builders.d.ts.map +1 -1
  13. package/lib/ir/generated/builders.js +25 -8
  14. package/lib/ir/generated/builders.js.map +1 -1
  15. package/lib/ir/generated/types.d.ts +50 -15
  16. package/lib/ir/generated/types.d.ts.map +1 -1
  17. package/lib/ir/schema.d.ts +196 -32
  18. package/lib/ir/schema.d.ts.map +1 -1
  19. package/lib/ir/schema.js +162 -24
  20. package/lib/ir/schema.js.map +1 -1
  21. package/lib/ir/validate.d.ts.map +1 -1
  22. package/lib/ir/validate.js +236 -84
  23. package/lib/ir/validate.js.map +1 -1
  24. package/lib/ir/validate.test.js +218 -19
  25. package/lib/ir/validate.test.js.map +1 -1
  26. package/lib/lenses.d.ts.map +1 -1
  27. package/lib/lenses.js +6 -7
  28. package/lib/lenses.js.map +1 -1
  29. package/lib/live/expression.d.ts +6 -4
  30. package/lib/live/expression.d.ts.map +1 -1
  31. package/lib/live/expression.js +183 -42
  32. package/lib/live/expression.js.map +1 -1
  33. package/lib/live/expression.test.js +194 -7
  34. package/lib/live/expression.test.js.map +1 -1
  35. package/lib/live/mutators/OntologyEdits.d.ts.map +1 -1
  36. package/lib/live/mutators/OntologyEdits.js +5 -5
  37. package/lib/live/mutators/OntologyEdits.js.map +1 -1
  38. package/lib/live/mutators/createMutatorTx.d.ts.map +1 -1
  39. package/lib/live/mutators/createMutatorTx.js +13 -3
  40. package/lib/live/mutators/createMutatorTx.js.map +1 -1
  41. package/lib/live/mutators/createMutatorTx.test.js +95 -2
  42. package/lib/live/mutators/createMutatorTx.test.js.map +1 -1
  43. package/lib/meta/generated/live.d.ts +1 -2
  44. package/lib/meta/generated/live.d.ts.map +1 -1
  45. package/lib/meta/generated/live.js.map +1 -1
  46. package/lib/meta/generated/types.d.ts +50 -15
  47. package/lib/meta/generated/types.d.ts.map +1 -1
  48. package/lib/utils/index.d.ts +2 -0
  49. package/lib/utils/index.d.ts.map +1 -1
  50. package/lib/utils/index.js +2 -0
  51. package/lib/utils/index.js.map +1 -1
  52. package/lib/utils/links.d.ts +47 -0
  53. package/lib/utils/links.d.ts.map +1 -0
  54. package/lib/utils/links.js +20 -0
  55. package/lib/utils/links.js.map +1 -0
  56. package/lib/utils/links.test.d.ts +2 -0
  57. package/lib/utils/links.test.d.ts.map +1 -0
  58. package/lib/utils/links.test.js +109 -0
  59. package/lib/utils/links.test.js.map +1 -0
  60. package/lib/utils/paths.d.ts +4 -0
  61. package/lib/utils/paths.d.ts.map +1 -0
  62. package/lib/utils/paths.js +54 -0
  63. package/lib/utils/paths.js.map +1 -0
  64. package/lib/utils/paths.test.d.ts +2 -0
  65. package/lib/utils/paths.test.d.ts.map +1 -0
  66. package/lib/utils/paths.test.js +33 -0
  67. package/lib/utils/paths.test.js.map +1 -0
  68. package/package.json +1 -3
@@ -1,5 +1,5 @@
1
- import { eq, queryOnce, } from "@tanstack/db";
2
- import { set } from "lodash-es";
1
+ import { eq, queryOnce } from "@tanstack/db";
2
+ import { setAtPath } from "../../utils/paths.js";
3
3
  export function createReadTx(objects) {
4
4
  return {
5
5
  query: (build) => queryOnce((query) => build(query, objects)),
@@ -56,8 +56,18 @@ async function ensureObjectLoaded(collection, objectType, primaryKeys, key) {
56
56
  }
57
57
  function applyChanges(object, changes) {
58
58
  if (Array.isArray(changes)) {
59
+ let updated = { ...object };
60
+ const changedProperties = new Set();
59
61
  for (const change of changes) {
60
- set(object, change.path, change.value);
62
+ const [property] = change.path;
63
+ if (property === undefined) {
64
+ throw new Error("Ontology property change paths must not be empty.");
65
+ }
66
+ updated = setAtPath(updated, change.path, change.value);
67
+ changedProperties.add(property);
68
+ }
69
+ for (const property of changedProperties) {
70
+ object[property] = updated[property];
61
71
  }
62
72
  }
63
73
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"createMutatorTx.js","sourceRoot":"","sources":["../../../src/live/mutators/createMutatorTx.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createMutatorTx.js","sourceRoot":"","sources":["../../../src/live/mutators/createMutatorTx.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { createCollection, createTransaction, eq, localOnlyCollectionOptions, } from "@tanstack/db";
1
+ import { createCollection, createTransaction, eq, localOnlyCollectionOptions } from "@tanstack/db";
2
2
  import { describe, expect, it } from "vitest";
3
3
  import { createMutatorTx } from "./createMutatorTx.js";
4
4
  describe("createMutatorTx", () => {
@@ -46,7 +46,7 @@ describe("createMutatorTx", () => {
46
46
  getKey: (task) => task.id,
47
47
  syncMode: "on-demand",
48
48
  sync: {
49
- sync: ({ begin, write, commit, markReady, }) => {
49
+ sync: ({ begin, write, commit, markReady }) => {
50
50
  markReady();
51
51
  return {
52
52
  loadSubset: () => {
@@ -85,5 +85,98 @@ describe("createMutatorTx", () => {
85
85
  transaction.rollback();
86
86
  await tasks.cleanup();
87
87
  });
88
+ it("sets a previously absent structured property from a property change", async () => {
89
+ const tasks = createCollection(localOnlyCollectionOptions({
90
+ id: "structured-tasks",
91
+ getKey: (task) => task.id,
92
+ initialData: [{ id: "task-1" }],
93
+ }));
94
+ await tasks.preload();
95
+ const transaction = createTransaction({
96
+ autoCommit: false,
97
+ mutationFn: () => Promise.resolve(),
98
+ });
99
+ void transaction.isPersisted.promise.catch(() => undefined);
100
+ const tx = createMutatorTx({
101
+ transaction,
102
+ objects: { Task: tasks },
103
+ });
104
+ const entries = [
105
+ { code: "alpha", enabled: true },
106
+ { code: "beta", enabled: false },
107
+ ];
108
+ await tx.mutate.Task.update("task-1", [
109
+ {
110
+ path: ["entries"],
111
+ value: entries,
112
+ },
113
+ ]);
114
+ expect(tasks.get("task-1")?.entries).toEqual(entries);
115
+ transaction.rollback();
116
+ await tasks.cleanup();
117
+ });
118
+ it("sets a nested field beneath a previously absent property", async () => {
119
+ const tasks = createCollection(localOnlyCollectionOptions({
120
+ id: "sparse-tasks",
121
+ getKey: (task) => task.id,
122
+ initialData: [{ id: "task-1" }],
123
+ }));
124
+ await tasks.preload();
125
+ const transaction = createTransaction({
126
+ autoCommit: false,
127
+ mutationFn: () => Promise.resolve(),
128
+ });
129
+ void transaction.isPersisted.promise.catch(() => undefined);
130
+ const tx = createMutatorTx({
131
+ transaction,
132
+ objects: { Task: tasks },
133
+ });
134
+ await tx.mutate.Task.update("task-1", [
135
+ {
136
+ path: ["configuration", "theme"],
137
+ value: "dark",
138
+ },
139
+ {
140
+ path: ["configuration", "density"],
141
+ value: "compact",
142
+ },
143
+ ]);
144
+ expect(tasks.get("task-1")?.configuration).toEqual({
145
+ theme: "dark",
146
+ density: "compact",
147
+ });
148
+ transaction.rollback();
149
+ await tasks.cleanup();
150
+ });
151
+ it("rejects property paths that traverse a list as a struct", async () => {
152
+ const tasks = createCollection(localOnlyCollectionOptions({
153
+ id: "invalid-path-tasks",
154
+ getKey: (task) => task.id,
155
+ initialData: [
156
+ {
157
+ id: "task-1",
158
+ labels: [],
159
+ },
160
+ ],
161
+ }));
162
+ await tasks.preload();
163
+ const transaction = createTransaction({
164
+ autoCommit: false,
165
+ mutationFn: () => Promise.resolve(),
166
+ });
167
+ void transaction.isPersisted.promise.catch(() => undefined);
168
+ const tx = createMutatorTx({
169
+ transaction,
170
+ objects: { Task: tasks },
171
+ });
172
+ await expect(tx.mutate.Task.update("task-1", [
173
+ {
174
+ path: ["labels", "name"],
175
+ value: "invalid",
176
+ },
177
+ ])).rejects.toThrow('Cannot assign property path "labels.name": "labels" is not a struct object.');
178
+ transaction.rollback();
179
+ await tasks.cleanup();
180
+ });
88
181
  });
89
182
  //# sourceMappingURL=createMutatorTx.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createMutatorTx.test.js","sourceRoot":"","sources":["../../../src/live/mutators/createMutatorTx.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createMutatorTx.test.js","sourceRoot":"","sources":["../../../src/live/mutators/createMutatorTx.test.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- import { type LiveOntology } from "../../index.js";
1
+ import { type CreateLiveOntologyOpts, type LiveOntology } from "../../index.js";
2
2
  import type { MetaOntology, MetaOntologyContext } from "./types.js";
3
- import type { CreateLiveOntologyOpts } from "../../index.js";
4
3
  export declare function createMetaLiveOntology(opts: Omit<CreateLiveOntologyOpts<MetaOntologyContext>, "ir">): Promise<LiveOntology<MetaOntology>>;
5
4
  //# sourceMappingURL=live.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../../../src/meta/generated/live.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEvE,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACpE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAE7D,wBAAsB,sBAAsB,CACxC,IAAI,EAAE,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,IAAI,CAAC,GAC9D,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAKrC"}
1
+ {"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../../../src/meta/generated/live.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,sBAAsB,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEpG,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEpE,wBAAsB,sBAAsB,CACxC,IAAI,EAAE,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,EAAE,IAAI,CAAC,GAC9D,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAKrC"}
@@ -1 +1 @@
1
- {"version":3,"file":"live.js","sourceRoot":"","sources":["../../../src/meta/generated/live.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAE7C,OAAO,EAAE,kBAAkB,EAAqB,MAAM,gBAAgB,CAAC;AACvE,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAItC,MAAM,CAAC,KAAK,UAAU,sBAAsB,CACxC,IAA6D;IAE7D,OAAO,kBAAkB,CAAoC;QACzD,GAAG,IAAI;QACP,EAAE,EAAE,QAAQ;KACf,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"live.js","sourceRoot":"","sources":["../../../src/meta/generated/live.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAE7C,OAAO,EAAE,kBAAkB,EAAkD,MAAM,gBAAgB,CAAC;AACpG,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAGtC,MAAM,CAAC,KAAK,UAAU,sBAAsB,CACxC,IAA6D;IAE7D,OAAO,kBAAkB,CAAoC;QACzD,GAAG,IAAI;QACP,EAAE,EAAE,QAAQ;KACf,CAAC,CAAC;AACP,CAAC"}
@@ -193,33 +193,68 @@ export type ActionParameterDef = {
193
193
  /** The expression used when the caller does not provide a value. */
194
194
  defaultValue?: Expression;
195
195
  };
196
- /** Reads a value from scope by path. */
197
- export type ValueReferenceExpression = {
198
- path: Array<string>;
196
+ /** Reads a named input from the root expression scope. */
197
+ export type InputReferenceExpression = {
198
+ name: string;
199
+ };
200
+ /** Reads a named lexically scoped expression binding. */
201
+ export type LocalReferenceExpression = {
202
+ name: string;
199
203
  };
200
- /** Reads a value from context by path. */
204
+ /** Reads a named value from the expression context. */
201
205
  export type ContextReferenceExpression = {
206
+ name: string;
207
+ };
208
+ /** Reads a structural path from a source expression. */
209
+ export type GetAtExpression = {
210
+ source: Expression;
202
211
  path: Array<string>;
203
212
  };
213
+ /** Resolves an object reference to its ontology object. */
214
+ export type ObjectLookupExpression = {
215
+ reference: Expression;
216
+ };
217
+ /** Follows one named to-one ontology link from a source object. */
218
+ export type LinkHopExpression = {
219
+ source: Expression;
220
+ link: string;
221
+ };
222
+ /** A named field constructed by a struct expression. */
223
+ export type StructExpressionField = {
224
+ name: string;
225
+ value: Expression;
226
+ };
227
+ /** Constructs a struct value from field expressions. */
228
+ export type StructExpression = {
229
+ fields: Array<StructExpressionField>;
230
+ };
231
+ /** Maps each element of a list to a new value. */
232
+ export type MapExpression = {
233
+ source: Expression;
234
+ binding: string;
235
+ body: Expression;
236
+ };
204
237
  /** Generates a UUID value. */
205
- export type UuidFunctionCall = Record<never, never>;
238
+ export type UuidExpression = Record<never, never>;
206
239
  /** Returns the current timestamp. */
207
- export type NowFunctionCall = Record<never, never>;
240
+ export type NowExpression = Record<never, never>;
208
241
  /** A static literal value. */
209
242
  export type LiteralExpression = {
210
243
  /** The literal value. */
211
244
  value: unknown;
212
245
  };
213
- /** Calls a function within an expression. */
214
- export type FunctionCallExpression = v.Union<{
215
- uuid: UuidFunctionCall;
216
- now: NowFunctionCall;
217
- }>;
218
246
  /** An expression that resolves to a value. */
219
247
  export type Expression = v.Union<{
220
- valueReference: ValueReferenceExpression;
248
+ inputReference: InputReferenceExpression;
221
249
  contextReference: ContextReferenceExpression;
222
- functionCall: FunctionCallExpression;
250
+ localReference: LocalReferenceExpression;
251
+ getAt: GetAtExpression;
252
+ objectLookup: ObjectLookupExpression;
253
+ linkHop: LinkHopExpression;
254
+ struct: StructExpression;
255
+ map: MapExpression;
256
+ uuid: UuidExpression;
257
+ now: NowExpression;
223
258
  literal: LiteralExpression;
224
259
  }>;
225
260
  /** Assigns an expression to a property path on an object written by an action. */
@@ -234,12 +269,12 @@ export type CreateObjectActionLogicStep = {
234
269
  };
235
270
  /** Updates a referenced object and assigns property values. */
236
271
  export type UpdateObjectActionLogicStep = {
237
- object: ValueReferenceExpression;
272
+ object: InputReferenceExpression;
238
273
  values: Array<PropertyAssignment>;
239
274
  };
240
275
  /** Deletes a referenced object. */
241
276
  export type DeleteObjectActionLogicStep = {
242
- object: ValueReferenceExpression;
277
+ object: InputReferenceExpression;
243
278
  };
244
279
  /** A logic step performed by an action. */
245
280
  export type ActionLogicStep = v.Union<{
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/meta/generated/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/meta/generated/types.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ export * from "./links.js";
2
+ export * from "./paths.js";
1
3
  export * from "./targets.js";
2
4
  export * from "./types.js";
3
5
  export * from "./uncertain.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,mBAAmB,iBAAiB,CAAC;AACrC,mBAAmB,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,mBAAmB,iBAAiB,CAAC;AACrC,mBAAmB,aAAa,CAAC"}
@@ -1,3 +1,5 @@
1
+ export * from "./links.js";
2
+ export * from "./paths.js";
1
3
  export * from "./targets.js";
2
4
  export * from "./types.js";
3
5
  export * from "./uncertain.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,47 @@
1
+ import type { ArrayElement, ObjectTypeName } from "./typeNames.js";
2
+ import type { LinkTypeDef, OntologyIR } from "../ir/index.js";
3
+ type LinkTypes<IR extends Pick<OntologyIR, "linkTypes">> = ArrayElement<IR["linkTypes"]>;
4
+ type LinkHopNameForLink<Link, SourceObjectType extends string> = Link extends {
5
+ source: {
6
+ objectType: infer LinkSourceObjectType extends string;
7
+ };
8
+ target: {
9
+ objectType: infer LinkTargetObjectType extends string;
10
+ name: infer TargetName extends string;
11
+ };
12
+ } ? SourceObjectType extends LinkSourceObjectType ? TargetName : SourceObjectType extends LinkTargetObjectType ? Link extends {
13
+ source: {
14
+ name: infer SourceName extends string;
15
+ };
16
+ } ? SourceName : never : never : never;
17
+ export type LinkHopName<IR extends Pick<OntologyIR, "linkTypes">, SourceObjectType extends string> = LinkHopNameForLink<LinkTypes<IR>, SourceObjectType>;
18
+ type LinkHopTargetForLink<Link, SourceObjectType extends string, Name extends string> = Link extends {
19
+ source: {
20
+ objectType: infer LinkSourceObjectType extends string;
21
+ name: infer SourceName extends string;
22
+ };
23
+ target: {
24
+ objectType: infer TargetObjectType extends string;
25
+ name: infer TargetName extends string;
26
+ };
27
+ } ? SourceObjectType extends LinkSourceObjectType ? Name extends TargetName ? TargetObjectType : never : Link extends {
28
+ target: {
29
+ objectType: infer LinkTargetObjectType extends string;
30
+ };
31
+ } ? SourceObjectType extends LinkTargetObjectType ? Name extends SourceName ? LinkSourceObjectType : never : never : never : never;
32
+ export type LinkHopTargetObjectType<IR extends Pick<OntologyIR, "linkTypes">, SourceObjectType extends string, Name extends string> = LinkHopTargetForLink<LinkTypes<IR>, SourceObjectType, Name>;
33
+ type LinkHopLinkForLink<Link, SourceObjectType extends string, Name extends string> = Link extends {
34
+ source: {
35
+ objectType: infer LinkSourceObjectType extends string;
36
+ name: infer SourceName extends string;
37
+ };
38
+ target: {
39
+ objectType: infer LinkTargetObjectType extends string;
40
+ name: infer TargetName extends string;
41
+ };
42
+ } ? SourceObjectType extends LinkSourceObjectType ? Name extends TargetName ? Link : never : SourceObjectType extends LinkTargetObjectType ? Name extends SourceName ? Link : never : never : never;
43
+ export type LinkHopLink<IR extends Pick<OntologyIR, "linkTypes">, SourceObjectType extends string, Name extends string> = LinkHopLinkForLink<LinkTypes<IR>, SourceObjectType, Name>;
44
+ export declare function isLinkHopFromForeignKeySource(link: LinkTypeDef, sourceObjectType: string, linkName: string): boolean;
45
+ export declare function resolveLinkHop<const IR extends Pick<OntologyIR, "linkTypes" | "objectTypes">, const SourceObjectType extends ObjectTypeName<IR>, const Name extends LinkHopName<IR, SourceObjectType>>(ir: IR, sourceObjectType: SourceObjectType, linkName: Name): LinkHopLink<IR, SourceObjectType, Name> | undefined;
46
+ export {};
47
+ //# sourceMappingURL=links.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"links.d.ts","sourceRoot":"","sources":["../../src/utils/links.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export function isLinkHopFromForeignKeySource(link, sourceObjectType, linkName) {
2
+ return (link.source.objectType === sourceObjectType &&
3
+ link.target.name === linkName);
4
+ }
5
+ export function resolveLinkHop(ir, sourceObjectType, linkName) {
6
+ const matches = ir.linkTypes.flatMap((link) => [
7
+ ...(isLinkHopFromForeignKeySource(link, sourceObjectType, linkName)
8
+ ? [link]
9
+ : []),
10
+ ...(link.target.objectType ===
11
+ sourceObjectType &&
12
+ link.source.name === linkName
13
+ ? [link]
14
+ : []),
15
+ ]);
16
+ if (matches.length !== 1)
17
+ return undefined;
18
+ return matches[0];
19
+ }
20
+ //# sourceMappingURL=links.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"links.js","sourceRoot":"","sources":["../../src/utils/links.ts"],"names":[],"mappings":"AAsHA,MAAM,UAAU,6BAA6B,CACzC,IAAiB,EACjB,gBAAwB,EACxB,QAAgB;IAEhB,OAAO,CACH,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,gBAAgB;QAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ,CAChC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,cAAc,CAQ1B,EAAM,EACN,gBAAkC,EAClC,QAAc;IAEd,MAAM,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC3C,GAAG,CAAC,6BAA6B,CAC7B,IAAI,EACJ,gBAAgB,EAChB,QAAQ,CACX;YACG,CAAC,CAAC,CAAC,IAAI,CAAC;YACR,CAAC,CAAC,EAAE,CAAC;QACT,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU;YACtB,gBAAgB;YACpB,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,QAAQ;YACzB,CAAC,CAAC,CAAC,IAAI,CAAC;YACR,CAAC,CAAC,EAAE,CAAC;KACZ,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3C,OAAO,OAAO,CAAC,CAAC,CAIf,CAAC;AACN,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=links.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"links.test.d.ts","sourceRoot":"","sources":["../../src/utils/links.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,109 @@
1
+ import { describe, expect, expectTypeOf, it, } from "vitest";
2
+ import { defineOntology } from "../infer.js";
3
+ import { o } from "../ir/index.js";
4
+ import { isLinkHopFromForeignKeySource, resolveLinkHop, } from "./links.js";
5
+ function objectType(name, properties) {
6
+ return {
7
+ name,
8
+ displayName: name,
9
+ pluralDisplayName: `${name}s`,
10
+ primaryKey: "id",
11
+ properties: properties.map((property) => ({
12
+ name: property,
13
+ displayName: property,
14
+ type: o.string({}),
15
+ })),
16
+ };
17
+ }
18
+ describe("resolveLinkHop", () => {
19
+ it("infers link names and returns the matching link", () => {
20
+ const ir = defineOntology({
21
+ types: [],
22
+ objectTypes: [
23
+ objectType("Post", ["id", "authorId"]),
24
+ objectType("Author", ["id"]),
25
+ ],
26
+ linkTypes: [
27
+ {
28
+ id: "postAuthor",
29
+ source: {
30
+ objectType: "Post",
31
+ name: "posts",
32
+ displayName: "Posts",
33
+ },
34
+ target: {
35
+ objectType: "Author",
36
+ name: "author",
37
+ displayName: "Author",
38
+ },
39
+ foreignKey: "authorId",
40
+ cardinality: "many",
41
+ },
42
+ ],
43
+ actionTypes: [],
44
+ queryFunctionTypes: [],
45
+ });
46
+ const hop = resolveLinkHop(ir, "Post", "author");
47
+ expectTypeOf(hop?.target.objectType).toEqualTypeOf();
48
+ });
49
+ it("resolves a foreign-key owner hop as to-one", () => {
50
+ const ir = {
51
+ objectTypes: [
52
+ objectType("Post", ["id", "authorId"]),
53
+ objectType("Author", ["id"]),
54
+ ],
55
+ linkTypes: [
56
+ {
57
+ id: "postAuthor",
58
+ source: {
59
+ objectType: "Post",
60
+ name: "posts",
61
+ displayName: "Posts",
62
+ },
63
+ target: {
64
+ objectType: "Author",
65
+ name: "author",
66
+ displayName: "Author",
67
+ },
68
+ foreignKey: "authorId",
69
+ cardinality: "many",
70
+ },
71
+ ],
72
+ };
73
+ expect(resolveLinkHop(ir, "Post", "author")).toBe(ir.linkTypes[0]);
74
+ expect(resolveLinkHop(ir, "Author", "posts")).toBe(ir.linkTypes[0]);
75
+ });
76
+ it("distinguishes directions on self-referential links", () => {
77
+ const ir = {
78
+ objectTypes: [
79
+ objectType("Employee", [
80
+ "id",
81
+ "managerId",
82
+ ]),
83
+ ],
84
+ linkTypes: [
85
+ {
86
+ id: "employeeManager",
87
+ source: {
88
+ objectType: "Employee",
89
+ name: "reports",
90
+ displayName: "Reports",
91
+ },
92
+ target: {
93
+ objectType: "Employee",
94
+ name: "manager",
95
+ displayName: "Manager",
96
+ },
97
+ foreignKey: "managerId",
98
+ cardinality: "many",
99
+ },
100
+ ],
101
+ };
102
+ const link = ir.linkTypes[0];
103
+ expect(resolveLinkHop(ir, "Employee", "manager")).toBe(link);
104
+ expect(isLinkHopFromForeignKeySource(link, "Employee", "manager")).toBe(true);
105
+ expect(resolveLinkHop(ir, "Employee", "reports")).toBe(link);
106
+ expect(isLinkHopFromForeignKeySource(link, "Employee", "reports")).toBe(false);
107
+ });
108
+ });
109
+ //# sourceMappingURL=links.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"links.test.js","sourceRoot":"","sources":["../../src/utils/links.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function getAtPath(value: unknown, path: readonly string[]): unknown;
2
+ export declare function setAtPath<T>(value: T, path: readonly string[], replacement: unknown): T;
3
+ export declare function unsetAtPath<T>(value: T, path: readonly string[]): T;
4
+ //# sourceMappingURL=paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"AAIA,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAO1E;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,WAAW,EAAE,OAAO,GAAG,CAAC,CAKvF;AA2BD,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,CAAC,CAKnE"}