@party-stack/ontology 0.1.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 (102) hide show
  1. package/LICENSE +21 -0
  2. package/lib/LiveOntology.d.ts +22 -0
  3. package/lib/LiveOntology.d.ts.map +1 -0
  4. package/lib/LiveOntology.js +25 -0
  5. package/lib/LiveOntology.js.map +1 -0
  6. package/lib/OntologyAdapter.d.ts +8 -0
  7. package/lib/OntologyAdapter.d.ts.map +1 -0
  8. package/lib/OntologyAdapter.js +2 -0
  9. package/lib/OntologyAdapter.js.map +1 -0
  10. package/lib/OntologyConfig.d.ts +10 -0
  11. package/lib/OntologyConfig.d.ts.map +1 -0
  12. package/lib/OntologyConfig.js +2 -0
  13. package/lib/OntologyConfig.js.map +1 -0
  14. package/lib/cli/generate.d.ts +9 -0
  15. package/lib/cli/generate.d.ts.map +1 -0
  16. package/lib/cli/generate.js +111 -0
  17. package/lib/cli/generate.js.map +1 -0
  18. package/lib/cli/index.d.ts +3 -0
  19. package/lib/cli/index.d.ts.map +1 -0
  20. package/lib/cli/index.js +70 -0
  21. package/lib/cli/index.js.map +1 -0
  22. package/lib/cli/pull.d.ts +7 -0
  23. package/lib/cli/pull.d.ts.map +1 -0
  24. package/lib/cli/pull.js +56 -0
  25. package/lib/cli/pull.js.map +1 -0
  26. package/lib/examples/blog.d.ts +127 -0
  27. package/lib/examples/blog.d.ts.map +1 -0
  28. package/lib/examples/blog.js +224 -0
  29. package/lib/examples/blog.js.map +1 -0
  30. package/lib/examples/blog.live-queries.d.ts +4 -0
  31. package/lib/examples/blog.live-queries.d.ts.map +1 -0
  32. package/lib/examples/blog.live-queries.js +44 -0
  33. package/lib/examples/blog.live-queries.js.map +1 -0
  34. package/lib/examples/generated/live.d.ts +5 -0
  35. package/lib/examples/generated/live.d.ts.map +1 -0
  36. package/lib/examples/generated/live.js +10 -0
  37. package/lib/examples/generated/live.js.map +1 -0
  38. package/lib/examples/generated/types.d.ts +48 -0
  39. package/lib/examples/generated/types.d.ts.map +1 -0
  40. package/lib/examples/generated/types.js +3 -0
  41. package/lib/examples/generated/types.js.map +1 -0
  42. package/lib/generate/live.d.ts +10 -0
  43. package/lib/generate/live.d.ts.map +1 -0
  44. package/lib/generate/live.js +36 -0
  45. package/lib/generate/live.js.map +1 -0
  46. package/lib/generate/ontology.d.ts +6 -0
  47. package/lib/generate/ontology.d.ts.map +1 -0
  48. package/lib/generate/ontology.js +246 -0
  49. package/lib/generate/ontology.js.map +1 -0
  50. package/lib/generate/types.d.ts +6 -0
  51. package/lib/generate/types.d.ts.map +1 -0
  52. package/lib/generate/types.js +61 -0
  53. package/lib/generate/types.js.map +1 -0
  54. package/lib/index.d.ts +8 -0
  55. package/lib/index.d.ts.map +1 -0
  56. package/lib/index.js +7 -0
  57. package/lib/index.js.map +1 -0
  58. package/lib/ir/generated/builders.d.ts +224 -0
  59. package/lib/ir/generated/builders.d.ts.map +1 -0
  60. package/lib/ir/generated/builders.js +89 -0
  61. package/lib/ir/generated/builders.js.map +1 -0
  62. package/lib/ir/generated/types.d.ts +179 -0
  63. package/lib/ir/generated/types.d.ts.map +1 -0
  64. package/lib/ir/generated/types.js +3 -0
  65. package/lib/ir/generated/types.js.map +1 -0
  66. package/lib/ir/generated/validators.d.ts +33 -0
  67. package/lib/ir/generated/validators.d.ts.map +1 -0
  68. package/lib/ir/generated/validators.js +109 -0
  69. package/lib/ir/generated/validators.js.map +1 -0
  70. package/lib/ir/index.d.ts +4 -0
  71. package/lib/ir/index.d.ts.map +1 -0
  72. package/lib/ir/index.js +4 -0
  73. package/lib/ir/index.js.map +1 -0
  74. package/lib/ir/schema.d.ts +33 -0
  75. package/lib/ir/schema.d.ts.map +1 -0
  76. package/lib/ir/schema.js +194 -0
  77. package/lib/ir/schema.js.map +1 -0
  78. package/lib/ir/validate.d.ts +14 -0
  79. package/lib/ir/validate.d.ts.map +1 -0
  80. package/lib/ir/validate.js +182 -0
  81. package/lib/ir/validate.js.map +1 -0
  82. package/lib/ir/validate.test.d.ts +2 -0
  83. package/lib/ir/validate.test.d.ts.map +1 -0
  84. package/lib/ir/validate.test.js +317 -0
  85. package/lib/ir/validate.test.js.map +1 -0
  86. package/lib/meta/pull.d.ts +5 -0
  87. package/lib/meta/pull.d.ts.map +1 -0
  88. package/lib/meta/pull.js +43 -0
  89. package/lib/meta/pull.js.map +1 -0
  90. package/lib/ontology/generated/live.d.ts +5 -0
  91. package/lib/ontology/generated/live.d.ts.map +1 -0
  92. package/lib/ontology/generated/live.js +10 -0
  93. package/lib/ontology/generated/live.js.map +1 -0
  94. package/lib/ontology/generated/types.d.ts +177 -0
  95. package/lib/ontology/generated/types.d.ts.map +1 -0
  96. package/lib/ontology/generated/types.js +3 -0
  97. package/lib/ontology/generated/types.js.map +1 -0
  98. package/lib/ontology/ontology.d.ts +21 -0
  99. package/lib/ontology/ontology.d.ts.map +1 -0
  100. package/lib/ontology/ontology.js +65 -0
  101. package/lib/ontology/ontology.js.map +1 -0
  102. package/package.json +47 -0
@@ -0,0 +1,65 @@
1
+ import { invariant } from "@bobbyfidz/panic";
2
+ import OntologyIRSchema from "../ir/schema.js";
3
+ function lift(schema, objectTypes) {
4
+ return {
5
+ types: schema.types.filter((type) => !(type.name in objectTypes)),
6
+ objectTypes: schema.types
7
+ .filter((type) => type.name in objectTypes)
8
+ .map((type) => {
9
+ invariant(type.type.kind === "struct", "Can only lift struct type into object type.");
10
+ const { name, primaryKey, displayName, pluralDisplayName } = objectTypes[type.name];
11
+ return {
12
+ name: name ?? type.name,
13
+ displayName: displayName,
14
+ pluralDisplayName,
15
+ primaryKey,
16
+ deprecated: type.deprecated,
17
+ description: type.description,
18
+ properties: type.type.value.fields,
19
+ };
20
+ }),
21
+ };
22
+ }
23
+ export default {
24
+ ...lift({ types: OntologyIRSchema.types.filter((type) => type.name !== "OntologyIR") }, {
25
+ ObjectTypeDef: {
26
+ name: "ObjectType",
27
+ primaryKey: "name",
28
+ displayName: "Object type",
29
+ pluralDisplayName: "Object types",
30
+ },
31
+ LinkTypeDef: {
32
+ name: "LinkType",
33
+ primaryKey: "id",
34
+ displayName: "Link type",
35
+ pluralDisplayName: "Link types",
36
+ },
37
+ NamedTypeDef: {
38
+ name: "ValueType",
39
+ primaryKey: "name",
40
+ displayName: "Value type",
41
+ pluralDisplayName: "Value types",
42
+ },
43
+ }),
44
+ linkTypes: [
45
+ {
46
+ id: "LinkType:source",
47
+ source: { objectType: "LinkType", name: "outgoingLinkTypes", displayName: "Outgoing link types" },
48
+ target: {
49
+ objectType: "ObjectType",
50
+ name: "source",
51
+ displayName: "Source",
52
+ },
53
+ foreignKey: "source.objectType",
54
+ cardinality: "many",
55
+ },
56
+ {
57
+ id: "LinkType:target",
58
+ source: { objectType: "LinkType", name: "incomingLinkTypes", displayName: "Incoming link types" },
59
+ target: { objectType: "ObjectType", name: "target", displayName: "Target" },
60
+ foreignKey: "target.objectType",
61
+ cardinality: "many",
62
+ },
63
+ ],
64
+ };
65
+ //# sourceMappingURL=ontology.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ontology.js","sourceRoot":"","sources":["../../src/ontology/ontology.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,gBAAgB,MAAM,iBAAiB,CAAC;AAG/C,SAAS,IAAI,CACT,MAAgB,EAChB,WAGC;IAED,OAAO;QACH,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC,CAAC;QACjE,WAAW,EAAE,MAAM,CAAC,KAAK;aACpB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC;aAC1C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACV,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,6CAA6C,CAAC,CAAC;YACtF,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,iBAAiB,EAAE,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAE,CAAC;YACrF,OAAO;gBACH,IAAI,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI;gBACvB,WAAW,EAAE,WAAW;gBACxB,iBAAiB;gBACjB,UAAU;gBACV,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;aACrC,CAAC;QACN,CAAC,CAAC;KACT,CAAC;AACN,CAAC;AAED,eAAe;IACX,GAAG,IAAI,CACH,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,EAAE,EAC9E;QACI,aAAa,EAAE;YACX,IAAI,EAAE,YAAY;YAClB,UAAU,EAAE,MAAM;YAClB,WAAW,EAAE,aAAa;YAC1B,iBAAiB,EAAE,cAAc;SACpC;QACD,WAAW,EAAE;YACT,IAAI,EAAE,UAAU;YAChB,UAAU,EAAE,IAAI;YAChB,WAAW,EAAE,WAAW;YACxB,iBAAiB,EAAE,YAAY;SAClC;QACD,YAAY,EAAE;YACV,IAAI,EAAE,WAAW;YACjB,UAAU,EAAE,MAAM;YAClB,WAAW,EAAE,YAAY;YACzB,iBAAiB,EAAE,aAAa;SACnC;KACJ,CACJ;IACD,SAAS,EAAE;QACP;YACI,EAAE,EAAE,iBAAiB;YACrB,MAAM,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,WAAW,EAAE,qBAAqB,EAAE;YACjG,MAAM,EAAE;gBACJ,UAAU,EAAE,YAAY;gBACxB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,QAAQ;aACxB;YACD,UAAU,EAAE,mBAAmB;YAC/B,WAAW,EAAE,MAAM;SACtB;QACD;YACI,EAAE,EAAE,iBAAiB;YACrB,MAAM,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,mBAAmB,EAAE,WAAW,EAAE,qBAAqB,EAAE;YACjG,MAAM,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE;YAC3E,UAAU,EAAE,mBAAmB;YAC/B,WAAW,EAAE,MAAM;SACtB;KACJ;CACiB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "@party-stack/ontology",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "exports": {
6
+ ".": {
7
+ "types": "./lib/index.d.ts",
8
+ "default": "./lib/index.js"
9
+ }
10
+ },
11
+ "bin": {
12
+ "ontology": "./lib/cli/index.js"
13
+ },
14
+ "files": [
15
+ "lib"
16
+ ],
17
+ "dependencies": {
18
+ "@bobbyfidz/panic": "^0.1.0",
19
+ "@next/env": "^16.1.6",
20
+ "commander": "^14.0.2",
21
+ "jiti": "^2.6.1",
22
+ "prettier": "^3.5.3",
23
+ "ts-morph": "^27.0.2",
24
+ "zod": "^4.1.13",
25
+ "@party-stack/schema": "0.1.0"
26
+ },
27
+ "devDependencies": {
28
+ "@bobbyfidz/universal-build-config": "^0.1.1",
29
+ "@tanstack/db": "^0.5.32",
30
+ "eslint": "^9.25.0",
31
+ "tsx": "^4.20.6",
32
+ "typescript": "~5.8.3",
33
+ "vitest": "^3.1.1"
34
+ },
35
+ "peerDependencies": {
36
+ "@tanstack/db": "^0.5.32"
37
+ },
38
+ "scripts": {
39
+ "bootstrap": "tsx ../schema/src/generate/generate.ts --schema ./src/ir/schema.ts --exportName o --promoted TypeDef --outDir ./src/ir/generated",
40
+ "build": "tsc",
41
+ "generate:examples": "tsx ./src/cli/generate.ts --ontology ./src/examples/blog.ts --outDir ./src/examples/generated --namespace Blog",
42
+ "generate:meta": "tsx ./src/cli/generate.ts --ontology ./src/ontology/ontology.ts --outDir ./src/ontology/generated --namespace Meta",
43
+ "lint": "eslint",
44
+ "ontology": "tsx ./src/cli/index.ts",
45
+ "test": "vitest run"
46
+ }
47
+ }