@party-stack/ontology 0.2.0 → 0.3.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 (66) hide show
  1. package/lib/examples/generated/live.d.ts +1 -1
  2. package/lib/examples/generated/live.d.ts.map +1 -1
  3. package/lib/examples/generated/live.js +2 -0
  4. package/lib/examples/generated/live.js.map +1 -1
  5. package/lib/examples/generated/types.d.ts +8 -2
  6. package/lib/examples/generated/types.d.ts.map +1 -1
  7. package/lib/generate/live.d.ts.map +1 -1
  8. package/lib/generate/live.js +3 -1
  9. package/lib/generate/live.js.map +1 -1
  10. package/lib/generate/types.d.ts.map +1 -1
  11. package/lib/generate/types.js +20 -1
  12. package/lib/generate/types.js.map +1 -1
  13. package/lib/generate/types.test.js.map +1 -1
  14. package/lib/ir/generated/builders.d.ts +12 -12
  15. package/lib/ir/generated/builders.d.ts.map +1 -1
  16. package/lib/ir/generated/builders.js +5 -5
  17. package/lib/ir/generated/builders.js.map +1 -1
  18. package/lib/ir/generated/types.d.ts +5 -3
  19. package/lib/ir/generated/types.d.ts.map +1 -1
  20. package/lib/ir/generated/validators.d.ts +1 -1
  21. package/lib/ir/generated/validators.d.ts.map +1 -1
  22. package/lib/ir/generated/validators.js +4 -2
  23. package/lib/ir/generated/validators.js.map +1 -1
  24. package/lib/ir/schema.d.ts.map +1 -1
  25. package/lib/ir/schema.js +19 -0
  26. package/lib/ir/schema.js.map +1 -1
  27. package/lib/live/LiveOntology.d.ts +6 -0
  28. package/lib/live/LiveOntology.d.ts.map +1 -1
  29. package/lib/live/LiveOntology.js +32 -1
  30. package/lib/live/LiveOntology.js.map +1 -1
  31. package/lib/live/OntologyAdapter.d.ts +13 -0
  32. package/lib/live/OntologyAdapter.d.ts.map +1 -1
  33. package/lib/live/createLiveOntologyAttachments.d.ts +20 -0
  34. package/lib/live/createLiveOntologyAttachments.d.ts.map +1 -0
  35. package/lib/live/createLiveOntologyAttachments.js +30 -0
  36. package/lib/live/createLiveOntologyAttachments.js.map +1 -0
  37. package/lib/live/expression.d.ts.map +1 -1
  38. package/lib/live/expression.js +3 -8
  39. package/lib/live/expression.js.map +1 -1
  40. package/lib/live/materializeActionParameters.d.ts +11 -0
  41. package/lib/live/materializeActionParameters.d.ts.map +1 -0
  42. package/lib/live/materializeActionParameters.js +86 -0
  43. package/lib/live/materializeActionParameters.js.map +1 -0
  44. package/lib/ontology/generated/live.d.ts +1 -1
  45. package/lib/ontology/generated/live.d.ts.map +1 -1
  46. package/lib/ontology/generated/live.js +2 -0
  47. package/lib/ontology/generated/live.js.map +1 -1
  48. package/lib/ontology/generated/types.d.ts +11 -3
  49. package/lib/ontology/generated/types.d.ts.map +1 -1
  50. package/lib/utils/index.d.ts +3 -0
  51. package/lib/utils/index.d.ts.map +1 -0
  52. package/lib/utils/index.js +2 -0
  53. package/lib/utils/index.js.map +1 -0
  54. package/lib/utils/types.d.ts +9 -0
  55. package/lib/utils/types.d.ts.map +1 -0
  56. package/lib/utils/types.js +27 -0
  57. package/lib/utils/types.js.map +1 -0
  58. package/lib/utils/types.test.d.ts +2 -0
  59. package/lib/utils/types.test.d.ts.map +1 -0
  60. package/lib/utils/types.test.js +137 -0
  61. package/lib/utils/types.test.js.map +1 -0
  62. package/lib/utils/values.d.ts +8 -0
  63. package/lib/utils/values.d.ts.map +1 -0
  64. package/lib/utils/values.js +2 -0
  65. package/lib/utils/values.js.map +1 -0
  66. package/package.json +12 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.test.d.ts","sourceRoot":"","sources":["../../src/utils/types.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,137 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { o } from "../ir/generated/builders.js";
3
+ import { getTargetValueType, resolveType, unwrapValueType } from "./types.js";
4
+ describe("unwrapValueType", () => {
5
+ it("unwraps nested optional and list wrappers", () => {
6
+ const ir = {
7
+ types: [],
8
+ objectTypes: [],
9
+ linkTypes: [],
10
+ actionTypes: [],
11
+ };
12
+ const type = o.optional({
13
+ type: o.list({
14
+ elementType: o.optional({
15
+ type: o.string({}),
16
+ }),
17
+ }),
18
+ });
19
+ expect(unwrapValueType(ir, type)).toEqual(o.string({}));
20
+ });
21
+ it("unwraps refs through named types", () => {
22
+ const ir = {
23
+ types: [
24
+ {
25
+ name: "AttachmentList",
26
+ type: o.optional({
27
+ type: o.list({
28
+ elementType: o.optional({
29
+ type: o.attachment({}),
30
+ }),
31
+ }),
32
+ }),
33
+ },
34
+ ],
35
+ objectTypes: [],
36
+ linkTypes: [],
37
+ actionTypes: [],
38
+ };
39
+ expect(unwrapValueType(ir, o.ref({ name: "AttachmentList" }))).toEqual(o.attachment({}));
40
+ });
41
+ it("throws when a ref cannot be resolved", () => {
42
+ const ir = {
43
+ types: [],
44
+ objectTypes: [],
45
+ linkTypes: [],
46
+ actionTypes: [],
47
+ };
48
+ expect(() => unwrapValueType(ir, o.ref({ name: "MissingType" }))).toThrow('Unknown type reference "MissingType".');
49
+ });
50
+ });
51
+ describe("resolveType", () => {
52
+ it("resolves refs recursively", () => {
53
+ const ir = {
54
+ types: [
55
+ { name: "AttachmentAlias", type: o.ref({ name: "AttachmentType" }) },
56
+ { name: "AttachmentType", type: o.attachment({}) },
57
+ ],
58
+ objectTypes: [],
59
+ linkTypes: [],
60
+ actionTypes: [],
61
+ };
62
+ expect(resolveType(ir, o.ref({ name: "AttachmentAlias" }))).toEqual(o.attachment({}));
63
+ });
64
+ it("throws when a ref cannot be resolved", () => {
65
+ const ir = {
66
+ types: [],
67
+ objectTypes: [],
68
+ linkTypes: [],
69
+ actionTypes: [],
70
+ };
71
+ expect(() => resolveType(ir, o.ref({ name: "MissingType" }))).toThrow('Unknown type reference "MissingType".');
72
+ });
73
+ });
74
+ describe("getTargetValueType", () => {
75
+ it("returns the unwrapped type for a target property", () => {
76
+ const ir = {
77
+ types: [
78
+ {
79
+ name: "AttachmentList",
80
+ type: o.optional({
81
+ type: o.list({
82
+ elementType: o.optional({
83
+ type: o.attachment({}),
84
+ }),
85
+ }),
86
+ }),
87
+ },
88
+ ],
89
+ objectTypes: [
90
+ {
91
+ name: "Post",
92
+ displayName: "Post",
93
+ pluralDisplayName: "Posts",
94
+ primaryKey: "id",
95
+ properties: [
96
+ { name: "id", displayName: "ID", type: o.string({}) },
97
+ {
98
+ name: "attachments",
99
+ displayName: "Attachments",
100
+ type: o.ref({ name: "AttachmentList" }),
101
+ },
102
+ ],
103
+ },
104
+ ],
105
+ linkTypes: [],
106
+ actionTypes: [],
107
+ };
108
+ expect(getTargetValueType(ir, { objectType: "Post", property: "attachments" })).toEqual(o.attachment({}));
109
+ });
110
+ it("throws when the object type is missing", () => {
111
+ const ir = {
112
+ types: [],
113
+ objectTypes: [],
114
+ linkTypes: [],
115
+ actionTypes: [],
116
+ };
117
+ expect(() => getTargetValueType(ir, { objectType: "Post", property: "attachments" })).toThrow('Unknown object type "Post".');
118
+ });
119
+ it("throws when the property is missing", () => {
120
+ const ir = {
121
+ types: [],
122
+ objectTypes: [
123
+ {
124
+ name: "Post",
125
+ displayName: "Post",
126
+ pluralDisplayName: "Posts",
127
+ primaryKey: "id",
128
+ properties: [{ name: "id", displayName: "ID", type: o.string({}) }],
129
+ },
130
+ ],
131
+ linkTypes: [],
132
+ actionTypes: [],
133
+ };
134
+ expect(() => getTargetValueType(ir, { objectType: "Post", property: "attachments" })).toThrow('Unknown property "attachments" on "Post".');
135
+ });
136
+ });
137
+ //# sourceMappingURL=types.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.test.js","sourceRoot":"","sources":["../../src/utils/types.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export type * from "@party-stack/schema/values";
2
+ export type attachment = {
3
+ id: string;
4
+ size?: number;
5
+ type?: string;
6
+ name?: string;
7
+ };
8
+ //# sourceMappingURL=values.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"values.d.ts","sourceRoot":"","sources":["../../src/utils/values.ts"],"names":[],"mappings":"AAAA,mBAAmB,4BAA4B,CAAC;AAEhD,MAAM,MAAM,UAAU,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=values.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"values.js","sourceRoot":"","sources":["../../src/utils/values.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,11 +1,18 @@
1
1
  {
2
2
  "name": "@party-stack/ontology",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {
7
7
  "types": "./lib/index.d.ts",
8
8
  "default": "./lib/index.js"
9
+ },
10
+ "./utils": {
11
+ "types": "./lib/utils/index.d.ts",
12
+ "default": "./lib/utils/index.js"
13
+ },
14
+ "./values": {
15
+ "types": "./lib/utils/values.d.ts"
9
16
  }
10
17
  },
11
18
  "bin": {
@@ -25,11 +32,12 @@
25
32
  "temporal-polyfill": "^0.3.0",
26
33
  "ts-morph": "^27.0.2",
27
34
  "zod": "^4.1.13",
28
- "@party-stack/schema": "0.2.0"
35
+ "@party-stack/blobs": "0.2.0",
36
+ "@party-stack/schema": "0.3.0"
29
37
  },
30
38
  "devDependencies": {
31
39
  "@bobbyfidz/universal-build-config": "^0.1.1",
32
- "@tanstack/db": "^0.6.0",
40
+ "@tanstack/db": "^0.6.5",
33
41
  "@types/lodash-es": "^4.17.12",
34
42
  "eslint": "^9.25.0",
35
43
  "tsx": "^4.20.6",
@@ -37,7 +45,7 @@
37
45
  "vitest": "^3.1.1"
38
46
  },
39
47
  "peerDependencies": {
40
- "@tanstack/db": "^0.6.0"
48
+ "@tanstack/db": "^0.6.5"
41
49
  },
42
50
  "scripts": {
43
51
  "bootstrap": "tsx ../schema/src/cli/generate.ts --schema ./src/ir/schema.ts --exportName o --promoted TypeDef --outDir ./src/ir/generated",