@party-stack/foundry-ontology 0.3.2 → 0.4.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.
Files changed (110) hide show
  1. package/lib/adapter/convertLoadSubsetOptions.d.ts.map +1 -1
  2. package/lib/adapter/convertLoadSubsetOptions.js +21 -6
  3. package/lib/adapter/convertLoadSubsetOptions.js.map +1 -1
  4. package/lib/adapter/convertLoadSubsetOptions.test.js +11 -1
  5. package/lib/adapter/convertLoadSubsetOptions.test.js.map +1 -1
  6. package/lib/adapter/createFoundryOntologyBackendAdapter.d.ts +14 -0
  7. package/lib/adapter/createFoundryOntologyBackendAdapter.d.ts.map +1 -0
  8. package/lib/adapter/createFoundryOntologyBackendAdapter.js +251 -0
  9. package/lib/adapter/createFoundryOntologyBackendAdapter.js.map +1 -0
  10. package/lib/adapter/createFoundryOntologyBackendAdapter.test.d.ts +2 -0
  11. package/lib/adapter/createFoundryOntologyBackendAdapter.test.d.ts.map +1 -0
  12. package/lib/adapter/createFoundryOntologyBackendAdapter.test.js +175 -0
  13. package/lib/adapter/createFoundryOntologyBackendAdapter.test.js.map +1 -0
  14. package/lib/adapter/foundryCodec.d.ts +5 -1
  15. package/lib/adapter/foundryCodec.d.ts.map +1 -1
  16. package/lib/adapter/foundryCodec.js +24 -3
  17. package/lib/adapter/foundryCodec.js.map +1 -1
  18. package/lib/adapter/foundryCodec.test.js +23 -15
  19. package/lib/adapter/foundryCodec.test.js.map +1 -1
  20. package/lib/adapter/foundryMediaId.d.ts +11 -0
  21. package/lib/adapter/foundryMediaId.d.ts.map +1 -0
  22. package/lib/adapter/foundryMediaId.js +39 -0
  23. package/lib/adapter/foundryMediaId.js.map +1 -0
  24. package/lib/adapter/foundryMediaId.test.d.ts +2 -0
  25. package/lib/adapter/foundryMediaId.test.d.ts.map +1 -0
  26. package/lib/adapter/foundryMediaId.test.js +23 -0
  27. package/lib/adapter/foundryMediaId.test.js.map +1 -0
  28. package/lib/adapter/index.d.ts +1 -1
  29. package/lib/adapter/index.d.ts.map +1 -1
  30. package/lib/adapter/index.js +1 -1
  31. package/lib/adapter/index.js.map +1 -1
  32. package/lib/adapter/objectCollectionOptions.d.ts +1 -0
  33. package/lib/adapter/objectCollectionOptions.d.ts.map +1 -1
  34. package/lib/adapter/objectCollectionOptions.js +179 -56
  35. package/lib/adapter/objectCollectionOptions.js.map +1 -1
  36. package/lib/adapter/objectCollectionOptions.test.js +394 -6
  37. package/lib/adapter/objectCollectionOptions.test.js.map +1 -1
  38. package/lib/config/index.js +3 -3
  39. package/lib/config/index.js.map +1 -1
  40. package/lib/index.d.ts +1 -0
  41. package/lib/index.d.ts.map +1 -1
  42. package/lib/index.js +1 -0
  43. package/lib/index.js.map +1 -1
  44. package/lib/meta/actionTypeCollectionOptions.d.ts +2 -0
  45. package/lib/meta/actionTypeCollectionOptions.d.ts.map +1 -1
  46. package/lib/meta/actionTypeCollectionOptions.js +33 -40
  47. package/lib/meta/actionTypeCollectionOptions.js.map +1 -1
  48. package/lib/meta/actionTypeCollectionOptions.test.d.ts +2 -0
  49. package/lib/meta/actionTypeCollectionOptions.test.d.ts.map +1 -0
  50. package/lib/meta/actionTypeCollectionOptions.test.js +24 -0
  51. package/lib/meta/actionTypeCollectionOptions.test.js.map +1 -0
  52. package/lib/meta/convertActionTypeLoadSubsetOptions.d.ts +5 -0
  53. package/lib/meta/convertActionTypeLoadSubsetOptions.d.ts.map +1 -0
  54. package/lib/meta/convertActionTypeLoadSubsetOptions.js +72 -0
  55. package/lib/meta/convertActionTypeLoadSubsetOptions.js.map +1 -0
  56. package/lib/meta/convertActionTypeLoadSubsetOptions.test.d.ts +2 -0
  57. package/lib/meta/convertActionTypeLoadSubsetOptions.test.d.ts.map +1 -0
  58. package/lib/meta/convertActionTypeLoadSubsetOptions.test.js +119 -0
  59. package/lib/meta/convertActionTypeLoadSubsetOptions.test.js.map +1 -0
  60. package/lib/meta/convertMetaActionType.d.ts.map +1 -1
  61. package/lib/meta/convertMetaActionType.js +46 -9
  62. package/lib/meta/convertMetaActionType.js.map +1 -1
  63. package/lib/meta/convertMetaActionType.test.d.ts +2 -0
  64. package/lib/meta/convertMetaActionType.test.d.ts.map +1 -0
  65. package/lib/meta/convertMetaActionType.test.js +133 -0
  66. package/lib/meta/convertMetaActionType.test.js.map +1 -0
  67. package/lib/meta/convertMetaQueryFunctionType.d.ts +4 -0
  68. package/lib/meta/convertMetaQueryFunctionType.d.ts.map +1 -0
  69. package/lib/meta/convertMetaQueryFunctionType.js +118 -0
  70. package/lib/meta/convertMetaQueryFunctionType.js.map +1 -0
  71. package/lib/meta/convertMetaQueryFunctionType.test.d.ts +2 -0
  72. package/lib/meta/convertMetaQueryFunctionType.test.d.ts.map +1 -0
  73. package/lib/meta/convertMetaQueryFunctionType.test.js +134 -0
  74. package/lib/meta/convertMetaQueryFunctionType.test.js.map +1 -0
  75. package/lib/meta/createFoundryMetaOntologyBackendAdapter.d.ts +7 -0
  76. package/lib/meta/createFoundryMetaOntologyBackendAdapter.d.ts.map +1 -0
  77. package/lib/meta/{createFoundryMetaOntologyAdapter.js → createFoundryMetaOntologyBackendAdapter.js} +8 -2
  78. package/lib/meta/createFoundryMetaOntologyBackendAdapter.js.map +1 -0
  79. package/lib/meta/index.d.ts +1 -1
  80. package/lib/meta/index.d.ts.map +1 -1
  81. package/lib/meta/index.js +1 -1
  82. package/lib/meta/index.js.map +1 -1
  83. package/lib/meta/queryFunctionTypeCollectionOptions.d.ts +9 -0
  84. package/lib/meta/queryFunctionTypeCollectionOptions.d.ts.map +1 -0
  85. package/lib/meta/queryFunctionTypeCollectionOptions.js +60 -0
  86. package/lib/meta/queryFunctionTypeCollectionOptions.js.map +1 -0
  87. package/lib/stagedWrites.d.ts +40 -0
  88. package/lib/stagedWrites.d.ts.map +1 -0
  89. package/lib/stagedWrites.js +74 -0
  90. package/lib/stagedWrites.js.map +1 -0
  91. package/lib/stagedWrites.test.d.ts +2 -0
  92. package/lib/stagedWrites.test.d.ts.map +1 -0
  93. package/lib/stagedWrites.test.js +71 -0
  94. package/lib/stagedWrites.test.js.map +1 -0
  95. package/package.json +13 -12
  96. package/lib/adapter/createFoundryOntologyAdapter.d.ts +0 -7
  97. package/lib/adapter/createFoundryOntologyAdapter.d.ts.map +0 -1
  98. package/lib/adapter/createFoundryOntologyAdapter.js +0 -177
  99. package/lib/adapter/createFoundryOntologyAdapter.js.map +0 -1
  100. package/lib/adapter/sync.d.ts +0 -14
  101. package/lib/adapter/sync.d.ts.map +0 -1
  102. package/lib/adapter/sync.js +0 -238
  103. package/lib/adapter/sync.js.map +0 -1
  104. package/lib/adapter/sync.test.d.ts +0 -2
  105. package/lib/adapter/sync.test.d.ts.map +0 -1
  106. package/lib/adapter/sync.test.js +0 -245
  107. package/lib/adapter/sync.test.js.map +0 -1
  108. package/lib/meta/createFoundryMetaOntologyAdapter.d.ts +0 -7
  109. package/lib/meta/createFoundryMetaOntologyAdapter.d.ts.map +0 -1
  110. package/lib/meta/createFoundryMetaOntologyAdapter.js.map +0 -1
@@ -0,0 +1,133 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { convertFoundryMetaActionType } from "./convertMetaActionType.js";
3
+ function actionType(parameters) {
4
+ return {
5
+ actionType: {
6
+ apiName: "validated-action",
7
+ displayName: "Validated action",
8
+ status: "EXPERIMENTAL",
9
+ parameters,
10
+ rid: "ri.actions.main.action-type.example",
11
+ operations: [],
12
+ },
13
+ fullLogicRules: [],
14
+ };
15
+ }
16
+ describe("convertFoundryMetaActionType parameter validation", () => {
17
+ it("converts closed one-of string validation to an enum constraint", () => {
18
+ const result = convertFoundryMetaActionType(actionType({
19
+ status: {
20
+ displayName: "Status",
21
+ dataType: { type: "string" },
22
+ required: true,
23
+ typeClasses: [],
24
+ validation: {
25
+ defaultValidation: {
26
+ allowedValues: {
27
+ type: "oneOf",
28
+ options: [
29
+ { displayName: "Open", value: "open" },
30
+ { displayName: "Closed", value: "closed" },
31
+ ],
32
+ otherValuesAllowed: false,
33
+ },
34
+ },
35
+ },
36
+ },
37
+ }));
38
+ expect(result.parameters[0]?.type).toEqual({
39
+ kind: "string",
40
+ value: {
41
+ constraint: {
42
+ kind: "enum",
43
+ value: {
44
+ options: [
45
+ { value: "open", label: "Open" },
46
+ { value: "closed", label: "Closed" },
47
+ ],
48
+ },
49
+ },
50
+ },
51
+ });
52
+ });
53
+ it("does not constrain one-of validation that permits other values", () => {
54
+ const result = convertFoundryMetaActionType(actionType({
55
+ status: {
56
+ displayName: "Status",
57
+ dataType: { type: "string" },
58
+ required: true,
59
+ typeClasses: [],
60
+ validation: {
61
+ defaultValidation: {
62
+ allowedValues: {
63
+ type: "oneOf",
64
+ options: [{ displayName: "Open", value: "open" }],
65
+ otherValuesAllowed: true,
66
+ },
67
+ },
68
+ },
69
+ },
70
+ }));
71
+ expect(result.parameters[0]?.type).toEqual({
72
+ kind: "string",
73
+ value: {},
74
+ });
75
+ });
76
+ it("converts text regex validation to a regex constraint", () => {
77
+ const result = convertFoundryMetaActionType(actionType({
78
+ postalCode: {
79
+ displayName: "Postal code",
80
+ dataType: { type: "string" },
81
+ required: false,
82
+ typeClasses: [],
83
+ validation: {
84
+ defaultValidation: {
85
+ allowedValues: {
86
+ type: "text",
87
+ regex: "^\\d{5}$",
88
+ },
89
+ },
90
+ },
91
+ },
92
+ }));
93
+ expect(result.parameters[0]?.type).toEqual({
94
+ kind: "optional",
95
+ value: {
96
+ type: {
97
+ kind: "string",
98
+ value: {
99
+ constraint: {
100
+ kind: "regex",
101
+ value: { regex: "^\\d{5}$" },
102
+ },
103
+ },
104
+ },
105
+ },
106
+ });
107
+ });
108
+ it("references value types so their existing constraints are reused", () => {
109
+ const result = convertFoundryMetaActionType(actionType({
110
+ postalCode: {
111
+ displayName: "Postal code",
112
+ dataType: { type: "string" },
113
+ required: true,
114
+ typeClasses: [],
115
+ validation: {
116
+ defaultValidation: {
117
+ allowedValues: {
118
+ type: "valueType",
119
+ apiName: "PostalCode",
120
+ rid: "ri.ontology.main.value-type.example",
121
+ versionId: "1",
122
+ },
123
+ },
124
+ },
125
+ },
126
+ }));
127
+ expect(result.parameters[0]?.type).toEqual({
128
+ kind: "ref",
129
+ value: { name: "PostalCode" },
130
+ });
131
+ });
132
+ });
133
+ //# sourceMappingURL=convertMetaActionType.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertMetaActionType.test.js","sourceRoot":"","sources":["../../src/meta/convertMetaActionType.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import type { QueryFunctionTypeDef } from "@party-stack/ontology";
2
+ import type { QueryTypeV2 } from "@osdk/foundry.ontologies";
3
+ export declare function convertFoundryMetaQueryFunctionType(query: QueryTypeV2): QueryFunctionTypeDef;
4
+ //# sourceMappingURL=convertMetaQueryFunctionType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertMetaQueryFunctionType.d.ts","sourceRoot":"","sources":["../../src/meta/convertMetaQueryFunctionType.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA6B,oBAAoB,EAAW,MAAM,uBAAuB,CAAC;AACtG,OAAO,KAAK,EAAmC,WAAW,EAAE,MAAM,0BAA0B,CAAC;AA0H7F,wBAAgB,mCAAmC,CAAC,KAAK,EAAE,WAAW,GAAG,oBAAoB,CAU5F"}
@@ -0,0 +1,118 @@
1
+ function stringType() {
2
+ return { kind: "string", value: {} };
3
+ }
4
+ function integerType() {
5
+ return { kind: "integer", value: {} };
6
+ }
7
+ function floatType() {
8
+ return { kind: "float", value: {} };
9
+ }
10
+ function doubleType() {
11
+ return { kind: "double", value: {} };
12
+ }
13
+ function booleanType() {
14
+ return { kind: "boolean", value: {} };
15
+ }
16
+ function dateType() {
17
+ return { kind: "date", value: {} };
18
+ }
19
+ function timestampType() {
20
+ return { kind: "timestamp", value: {} };
21
+ }
22
+ function attachmentType(type) {
23
+ return {
24
+ kind: "attachment",
25
+ value: { meta: { type } },
26
+ };
27
+ }
28
+ function maybeOptional(type, required) {
29
+ return required || type.kind === "optional" ? type : { kind: "optional", value: { type } };
30
+ }
31
+ function convertQueryDataType(type) {
32
+ switch (type.type) {
33
+ case "string":
34
+ case "long":
35
+ case "entrySet":
36
+ return stringType();
37
+ case "integer":
38
+ return integerType();
39
+ case "float":
40
+ return floatType();
41
+ case "double":
42
+ return doubleType();
43
+ case "boolean":
44
+ return booleanType();
45
+ case "date":
46
+ return dateType();
47
+ case "timestamp":
48
+ return timestampType();
49
+ case "attachment":
50
+ return attachmentType("attachment");
51
+ case "mediaReference":
52
+ return attachmentType("media");
53
+ case "object":
54
+ return { kind: "objectReference", value: { objectType: type.objectTypeApiName } };
55
+ case "array":
56
+ case "set":
57
+ return { kind: "list", value: { elementType: convertQueryDataType(type.subType) } };
58
+ case "struct":
59
+ return {
60
+ kind: "struct",
61
+ value: {
62
+ fields: type.fields.map((field) => ({
63
+ name: field.name,
64
+ displayName: field.name,
65
+ type: convertQueryDataType(field.fieldType),
66
+ })),
67
+ },
68
+ };
69
+ case "union":
70
+ {
71
+ const nonNullTypes = type.unionTypes.filter((variant) => variant.type !== "null");
72
+ const hasNull = nonNullTypes.length !== type.unionTypes.length;
73
+ const converted = nonNullTypes.length === 0
74
+ ? { kind: "unknown", value: {} }
75
+ : nonNullTypes.length === 1
76
+ ? convertQueryDataType(nonNullTypes[0])
77
+ : {
78
+ kind: "union",
79
+ value: {
80
+ variants: nonNullTypes.map((variant, index) => ({
81
+ name: `variant${index + 1}`,
82
+ type: convertQueryDataType(variant),
83
+ })),
84
+ },
85
+ };
86
+ return maybeOptional(converted, !hasNull);
87
+ }
88
+ case "void":
89
+ case "null":
90
+ return { kind: "unknown", value: {} };
91
+ case "typeReference":
92
+ case "twoDimensionalAggregation":
93
+ case "threeDimensionalAggregation":
94
+ case "objectSet":
95
+ case "interfaceObject":
96
+ case "interfaceObjectSet":
97
+ case "unsupported":
98
+ return { kind: "unknown", value: {} };
99
+ }
100
+ }
101
+ function convertQueryFunctionParameter(name, parameter) {
102
+ return {
103
+ name,
104
+ displayName: name,
105
+ description: parameter.description,
106
+ type: maybeOptional(convertQueryDataType(parameter.dataType), parameter.required),
107
+ };
108
+ }
109
+ export function convertFoundryMetaQueryFunctionType(query) {
110
+ return {
111
+ name: query.apiName,
112
+ displayName: query.displayName ?? query.apiName,
113
+ description: query.description,
114
+ parameters: Object.entries(query.parameters).map(([name, parameter]) => convertQueryFunctionParameter(name, parameter)),
115
+ returnType: convertQueryDataType(query.output),
116
+ };
117
+ }
118
+ //# sourceMappingURL=convertMetaQueryFunctionType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertMetaQueryFunctionType.js","sourceRoot":"","sources":["../../src/meta/convertMetaQueryFunctionType.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=convertMetaQueryFunctionType.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertMetaQueryFunctionType.test.d.ts","sourceRoot":"","sources":["../../src/meta/convertMetaQueryFunctionType.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,134 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { convertFoundryMetaQueryFunctionType } from "./convertMetaQueryFunctionType.js";
3
+ function queryType(parameters, output) {
4
+ return {
5
+ apiName: "googleMapsAutocompleteAddress",
6
+ displayName: "googleMapsAutocompleteAddress",
7
+ parameters,
8
+ output,
9
+ rid: "ri.function-registry.main.function.example",
10
+ version: "1.0.0",
11
+ typeReferences: {},
12
+ };
13
+ }
14
+ describe("convertFoundryMetaQueryFunctionType", () => {
15
+ it("collapses nullable optional parameters without double wrapping", () => {
16
+ const result = convertFoundryMetaQueryFunctionType(queryType({
17
+ apiKey: {
18
+ dataType: {
19
+ type: "union",
20
+ unionTypes: [{ type: "string" }, { type: "null" }],
21
+ },
22
+ required: false,
23
+ },
24
+ countries: {
25
+ dataType: {
26
+ type: "union",
27
+ unionTypes: [
28
+ { type: "array", subType: { type: "string" } },
29
+ { type: "null" },
30
+ ],
31
+ },
32
+ required: false,
33
+ },
34
+ }, { type: "void" }));
35
+ expect(result.parameters.map(({ type }) => type)).toEqual([
36
+ {
37
+ kind: "optional",
38
+ value: { type: { kind: "string", value: {} } },
39
+ },
40
+ {
41
+ kind: "optional",
42
+ value: {
43
+ type: {
44
+ kind: "list",
45
+ value: { elementType: { kind: "string", value: {} } },
46
+ },
47
+ },
48
+ },
49
+ ]);
50
+ });
51
+ it("collapses nullable struct fields recursively", () => {
52
+ const result = convertFoundryMetaQueryFunctionType(queryType({}, {
53
+ type: "struct",
54
+ fields: [
55
+ {
56
+ name: "address",
57
+ fieldType: {
58
+ type: "union",
59
+ unionTypes: [
60
+ {
61
+ type: "struct",
62
+ fields: [
63
+ {
64
+ name: "address2",
65
+ fieldType: {
66
+ type: "union",
67
+ unionTypes: [
68
+ { type: "string" },
69
+ { type: "null" },
70
+ ],
71
+ },
72
+ },
73
+ ],
74
+ },
75
+ { type: "null" },
76
+ ],
77
+ },
78
+ },
79
+ ],
80
+ }));
81
+ expect(result.returnType).toEqual({
82
+ kind: "struct",
83
+ value: {
84
+ fields: [
85
+ {
86
+ name: "address",
87
+ displayName: "address",
88
+ type: {
89
+ kind: "optional",
90
+ value: {
91
+ type: {
92
+ kind: "struct",
93
+ value: {
94
+ fields: [
95
+ {
96
+ name: "address2",
97
+ displayName: "address2",
98
+ type: {
99
+ kind: "optional",
100
+ value: {
101
+ type: {
102
+ kind: "string",
103
+ value: {},
104
+ },
105
+ },
106
+ },
107
+ },
108
+ ],
109
+ },
110
+ },
111
+ },
112
+ },
113
+ },
114
+ ],
115
+ },
116
+ });
117
+ });
118
+ it("preserves unions with multiple non-null variants", () => {
119
+ const result = convertFoundryMetaQueryFunctionType(queryType({}, {
120
+ type: "union",
121
+ unionTypes: [{ type: "string" }, { type: "integer" }],
122
+ }));
123
+ expect(result.returnType).toEqual({
124
+ kind: "union",
125
+ value: {
126
+ variants: [
127
+ { name: "variant1", type: { kind: "string", value: {} } },
128
+ { name: "variant2", type: { kind: "integer", value: {} } },
129
+ ],
130
+ },
131
+ });
132
+ });
133
+ });
134
+ //# sourceMappingURL=convertMetaQueryFunctionType.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertMetaQueryFunctionType.test.js","sourceRoot":"","sources":["../../src/meta/convertMetaQueryFunctionType.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import type { OntologyClient } from "@party-stack/foundry-client";
2
+ import type { OntologyBackendAdapter } from "@party-stack/ontology";
3
+ export interface CreateFoundryMetaOntologyBackendAdapterOpts {
4
+ client: OntologyClient;
5
+ }
6
+ export declare function createFoundryMetaOntologyBackendAdapter(opts: CreateFoundryMetaOntologyBackendAdapterOpts): OntologyBackendAdapter;
7
+ //# sourceMappingURL=createFoundryMetaOntologyBackendAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createFoundryMetaOntologyBackendAdapter.d.ts","sourceRoot":"","sources":["../../src/meta/createFoundryMetaOntologyBackendAdapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAUpE,MAAM,WAAW,2CAA2C;IACxD,MAAM,EAAE,cAAc,CAAC;CAC1B;AAED,wBAAgB,uCAAuC,CACnD,IAAI,EAAE,2CAA2C,GAClD,sBAAsB,CA+BxB"}
@@ -1,7 +1,8 @@
1
1
  import { notImplemented } from "@bobbyfidz/panic";
2
2
  import { actionTypeCollectionOptions } from "./actionTypeCollectionOptions.js";
3
3
  import { createMetaEntityCollection, linkTypeCollectionOptions, objectTypeCollectionOptions, valueTypeCollectionOptions, } from "./entityCollectionOptions.js";
4
- export function createFoundryMetaOntologyAdapter(opts) {
4
+ import { queryFunctionTypeCollectionOptions } from "./queryFunctionTypeCollectionOptions.js";
5
+ export function createFoundryMetaOntologyBackendAdapter(opts) {
5
6
  const metadata = createMetaEntityCollection({ client: opts.client });
6
7
  return {
7
8
  name: "foundry-metadata",
@@ -15,6 +16,8 @@ export function createFoundryMetaOntologyAdapter(opts) {
15
16
  return linkTypeCollectionOptions(metadata);
16
17
  case "ActionType":
17
18
  return actionTypeCollectionOptions({ client: opts.client });
19
+ case "QueryFunctionType":
20
+ return queryFunctionTypeCollectionOptions({ client: opts.client });
18
21
  default:
19
22
  throw new Error(`Unsupported Foundry metadata object type "${objectType}".`);
20
23
  }
@@ -22,9 +25,12 @@ export function createFoundryMetaOntologyAdapter(opts) {
22
25
  applyAction: () => {
23
26
  notImplemented();
24
27
  },
28
+ runQueryFunction: () => {
29
+ notImplemented();
30
+ },
25
31
  cleanup: async () => {
26
32
  await metadata.cleanup();
27
33
  },
28
34
  };
29
35
  }
30
- //# sourceMappingURL=createFoundryMetaOntologyAdapter.js.map
36
+ //# sourceMappingURL=createFoundryMetaOntologyBackendAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createFoundryMetaOntologyBackendAdapter.js","sourceRoot":"","sources":["../../src/meta/createFoundryMetaOntologyBackendAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EACH,0BAA0B,EAC1B,yBAAyB,EACzB,2BAA2B,EAC3B,0BAA0B,GAC7B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,kCAAkC,EAAE,MAAM,yCAAyC,CAAC;AAM7F,MAAM,UAAU,uCAAuC,CACnD,IAAiD;IAEjD,MAAM,QAAQ,GAAG,0BAA0B,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IAErE,OAAO;QACH,IAAI,EAAE,kBAAkB;QACxB,oBAAoB,EAAE,CAAC,UAAkB,EAAE,EAAE;YACzC,QAAQ,UAAU,EAAE,CAAC;gBACjB,KAAK,YAAY;oBACb,OAAO,2BAA2B,CAAC,QAAQ,CAAC,CAAC;gBACjD,KAAK,WAAW;oBACZ,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;gBAChD,KAAK,UAAU;oBACX,OAAO,yBAAyB,CAAC,QAAQ,CAAC,CAAC;gBAC/C,KAAK,YAAY;oBACb,OAAO,2BAA2B,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBAChE,KAAK,mBAAmB;oBACpB,OAAO,kCAAkC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBACvE;oBACI,MAAM,IAAI,KAAK,CAAC,6CAA6C,UAAU,IAAI,CAAC,CAAC;YACrF,CAAC;QACL,CAAC;QACD,WAAW,EAAE,GAAG,EAAE;YACd,cAAc,EAAE,CAAC;QACrB,CAAC;QACD,gBAAgB,EAAE,GAAG,EAAE;YACnB,cAAc,EAAE,CAAC;QACrB,CAAC;QACD,OAAO,EAAE,KAAK,IAAI,EAAE;YAChB,MAAM,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC7B,CAAC;KACJ,CAAC;AACN,CAAC"}
@@ -1,4 +1,4 @@
1
- export * from "./createFoundryMetaOntologyAdapter.js";
1
+ export * from "./createFoundryMetaOntologyBackendAdapter.js";
2
2
  export * from "./convertMetaActionType.js";
3
3
  export * from "./entityCollectionOptions.js";
4
4
  export * from "./actionTypeCollectionOptions.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/meta/index.ts"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAC;AACtD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/meta/index.ts"],"names":[],"mappings":"AAAA,cAAc,8CAA8C,CAAC;AAC7D,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC"}
package/lib/meta/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export * from "./createFoundryMetaOntologyAdapter.js";
1
+ export * from "./createFoundryMetaOntologyBackendAdapter.js";
2
2
  export * from "./convertMetaActionType.js";
3
3
  export * from "./entityCollectionOptions.js";
4
4
  export * from "./actionTypeCollectionOptions.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/meta/index.ts"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAC;AACtD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/meta/index.ts"],"names":[],"mappings":"AAAA,cAAc,8CAA8C,CAAC;AAC7D,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { QueryClient } from "@tanstack/query-core";
2
+ import type { OntologyClient } from "@party-stack/foundry-client";
3
+ import type { OntologyCollectionOptions } from "@party-stack/ontology";
4
+ export interface QueryFunctionTypeCollectionOpts {
5
+ client: OntologyClient;
6
+ queryClient?: QueryClient;
7
+ }
8
+ export declare function queryFunctionTypeCollectionOptions(opts: QueryFunctionTypeCollectionOpts): OntologyCollectionOptions;
9
+ //# sourceMappingURL=queryFunctionTypeCollectionOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryFunctionTypeCollectionOptions.d.ts","sourceRoot":"","sources":["../../src/meta/queryFunctionTypeCollectionOptions.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,KAAK,EAAE,yBAAyB,EAAwB,MAAM,uBAAuB,CAAC;AAK7F,MAAM,WAAW,+BAA+B;IAC5C,MAAM,EAAE,cAAc,CAAC;IACvB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC7B;AAyBD,wBAAgB,kCAAkC,CAAC,IAAI,EAAE,+BAA+B,GAAG,yBAAyB,CAenH"}
@@ -0,0 +1,60 @@
1
+ import { QueryTypes } from "@osdk/foundry.ontologies";
2
+ import { parseWhereExpression } from "@tanstack/db";
3
+ import { QueryClient } from "@tanstack/query-core";
4
+ import { queryCollectionOptions } from "@tanstack/query-db-collection";
5
+ import * as AsyncIterable from "../utils/AsyncIterable.js";
6
+ import { convertFoundryMetaQueryFunctionType } from "./convertMetaQueryFunctionType.js";
7
+ async function listQueryFunctionTypes(opts) {
8
+ return AsyncIterable.toArray(AsyncIterable.fromPagination((pageSize, pageToken) => QueryTypes.list(opts.client, opts.client.ontologyRid, {
9
+ pageSize,
10
+ pageToken,
11
+ }), (page) => page.nextPageToken, (page) => page.data, 100));
12
+ }
13
+ async function getQueryFunctionTypes(opts, names) {
14
+ const uniqueNames = Array.from(new Set(names));
15
+ if (uniqueNames.length === 0)
16
+ return [];
17
+ return Promise.all(uniqueNames.map((name) => QueryTypes.get(opts.client, opts.client.ontologyRid, name)));
18
+ }
19
+ export function queryFunctionTypeCollectionOptions(opts) {
20
+ return queryCollectionOptions({
21
+ queryClient: opts.queryClient ?? new QueryClient(),
22
+ getKey: (row) => row.name,
23
+ queryKey: ["foundry", "ontology", "queryFunctionTypes"],
24
+ syncMode: "on-demand",
25
+ queryFn: async (ctx) => {
26
+ const query = convertQueryFunctionTypeQuery(ctx.meta?.loadSubsetOptions);
27
+ const queryFunctionTypes = query.type === "getBatch"
28
+ ? await getQueryFunctionTypes(opts, query.names)
29
+ : await listQueryFunctionTypes(opts);
30
+ return queryFunctionTypes.map(convertFoundryMetaQueryFunctionType);
31
+ },
32
+ });
33
+ }
34
+ function convertQueryFunctionTypeQuery(options) {
35
+ if (!options?.where) {
36
+ return { type: "list" };
37
+ }
38
+ const batchQuery = parseWhereExpression(options.where, {
39
+ handlers: {
40
+ eq: (field, value) => {
41
+ if (field.join(".") === "name") {
42
+ return { type: "getBatch", names: [String(value)] };
43
+ }
44
+ },
45
+ in: (field, value) => {
46
+ if (field.join(".") === "name") {
47
+ return {
48
+ type: "getBatch",
49
+ names: value
50
+ .filter((candidate) => candidate !== null && candidate !== undefined)
51
+ .map(String),
52
+ };
53
+ }
54
+ },
55
+ },
56
+ onUnknownOperator: () => undefined,
57
+ }) ?? undefined;
58
+ return batchQuery ?? { type: "list" };
59
+ }
60
+ //# sourceMappingURL=queryFunctionTypeCollectionOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryFunctionTypeCollectionOptions.js","sourceRoot":"","sources":["../../src/meta/queryFunctionTypeCollectionOptions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import type { OntologyIR, OntologyMutator, OntologyMutatorObjects, OntologyMutatorTx } from "@party-stack/ontology";
2
+ import type { InitialQueryBuilder } from "@tanstack/db";
3
+ /**
4
+ * Structural subset of Foundry's staged-write `WriteableClient`.
5
+ * Generated Foundry clients can be passed directly.
6
+ */
7
+ export interface FoundryStagedWriteClient {
8
+ create(objectType: unknown, object: Record<string, unknown>): Promise<unknown>;
9
+ update(object: {
10
+ $apiName: string;
11
+ $primaryKey: string | number;
12
+ }, changes: Record<string, unknown>): Promise<unknown>;
13
+ delete(object: {
14
+ $apiName: string;
15
+ $primaryKey: string | number;
16
+ }): Promise<unknown>;
17
+ query?<T>(build: (query: InitialQueryBuilder, objects: OntologyMutatorObjects) => unknown): Promise<T>;
18
+ }
19
+ export interface CreateFoundryStagedWriteMutatorTxOptions {
20
+ client: FoundryStagedWriteClient;
21
+ /**
22
+ * Generated OSDK object type tokens, keyed by ontology API name. Required
23
+ * for creates when the client cannot accept an `$apiName` placeholder.
24
+ */
25
+ objectTypes?: Record<string, unknown>;
26
+ }
27
+ export declare function createFoundryStagedWriteMutatorTx(options: CreateFoundryStagedWriteMutatorTxOptions): OntologyMutatorTx;
28
+ /**
29
+ * Run a Party Stack ontology mutator inside Foundry's ambient staged-write
30
+ * transaction. Foundry provides atomic commit/rollback and read-after-write.
31
+ */
32
+ export declare function runFoundryOntologyMutator(options: {
33
+ ir: OntologyIR;
34
+ client: FoundryStagedWriteClient;
35
+ mutator: OntologyMutator;
36
+ args: Record<string, unknown>;
37
+ context?: Record<string, unknown>;
38
+ objectTypes?: Record<string, unknown>;
39
+ }): Promise<void>;
40
+ //# sourceMappingURL=stagedWrites.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stagedWrites.d.ts","sourceRoot":"","sources":["../src/stagedWrites.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,UAAU,EACV,eAAe,EACf,sBAAsB,EACtB,iBAAiB,EAEpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACrC,MAAM,CACF,UAAU,EAAE,OAAO,EACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,MAAM,CACF,MAAM,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;KAChC,EACD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,OAAO,CAAC,CAAC;IACpB,MAAM,CAAC,MAAM,EAAE;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,GAAG,MAAM,CAAC;KAChC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACrB,KAAK,CAAC,CAAC,CAAC,EACJ,KAAK,EAAE,CACH,KAAK,EAAE,mBAAmB,EAC1B,OAAO,EAAE,sBAAsB,KAC9B,OAAO,GACb,OAAO,CAAC,CAAC,CAAC,CAAC;CACjB;AAED,MAAM,WAAW,wCAAwC;IACrD,MAAM,EAAE,wBAAwB,CAAC;IACjC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC;AAmCD,wBAAgB,iCAAiC,CAC7C,OAAO,EAAE,wCAAwC,GAClD,iBAAiB,CAyDnB;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,EAAE;IACrD,EAAE,EAAE,UAAU,CAAC;IACf,MAAM,EAAE,wBAAwB,CAAC;IACjC,OAAO,EAAE,eAAe,CAAC;IACzB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC,GAAG,OAAO,CAAC,IAAI,CAAC,CAUhB"}