@manta-eu/client 0.11.0 → 0.13.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 (75) hide show
  1. package/README.md +44 -0
  2. package/dist/generated/graphql.d.ts +2124 -40
  3. package/dist/generated/graphql.d.ts.map +1 -1
  4. package/dist/generated/graphql.js +472 -24
  5. package/dist/generated/graphql.js.map +1 -1
  6. package/dist/generated/operations.d.ts +2 -0
  7. package/dist/generated/operations.d.ts.map +1 -0
  8. package/dist/generated/operations.js +165 -0
  9. package/dist/generated/operations.js.map +1 -0
  10. package/dist/graphql-clients.d.ts +2 -1
  11. package/dist/graphql-clients.d.ts.map +1 -1
  12. package/dist/graphql-clients.js +2 -1
  13. package/dist/graphql-clients.js.map +1 -1
  14. package/dist/shared/agent-types.d.ts +15 -0
  15. package/dist/shared/agent-types.d.ts.map +1 -1
  16. package/dist/shared/chat-manager.d.ts +1 -1
  17. package/dist/shared/chat-manager.d.ts.map +1 -1
  18. package/dist/shared/chat-manager.js +1 -1
  19. package/dist/shared/chat-manager.js.map +1 -1
  20. package/dist/shared/constants.d.ts +6 -0
  21. package/dist/shared/constants.d.ts.map +1 -1
  22. package/dist/shared/constants.js +6 -0
  23. package/dist/shared/constants.js.map +1 -1
  24. package/dist/shared/datastore-path.d.ts +3 -0
  25. package/dist/shared/datastore-path.d.ts.map +1 -1
  26. package/dist/shared/datastore-path.js +3 -0
  27. package/dist/shared/datastore-path.js.map +1 -1
  28. package/dist/shared/login-status.d.ts +6 -0
  29. package/dist/shared/login-status.d.ts.map +1 -0
  30. package/dist/shared/login-status.js +2 -0
  31. package/dist/shared/login-status.js.map +1 -0
  32. package/dist/shared/memory-schema-limits.d.ts +17 -0
  33. package/dist/shared/memory-schema-limits.d.ts.map +1 -0
  34. package/dist/shared/memory-schema-limits.js +17 -0
  35. package/dist/shared/memory-schema-limits.js.map +1 -0
  36. package/dist/shared/memory-schema-pattern.d.ts +3 -0
  37. package/dist/shared/memory-schema-pattern.d.ts.map +1 -0
  38. package/dist/shared/memory-schema-pattern.js +16 -0
  39. package/dist/shared/memory-schema-pattern.js.map +1 -0
  40. package/dist/shared/memory-schema-property.d.ts +64 -0
  41. package/dist/shared/memory-schema-property.d.ts.map +1 -0
  42. package/dist/shared/memory-schema-property.js +195 -0
  43. package/dist/shared/memory-schema-property.js.map +1 -0
  44. package/dist/shared/memory-schema-values.d.ts +20 -0
  45. package/dist/shared/memory-schema-values.d.ts.map +1 -0
  46. package/dist/shared/memory-schema-values.js +139 -0
  47. package/dist/shared/memory-schema-values.js.map +1 -0
  48. package/dist/shared/operation-root-fields.d.ts +7 -0
  49. package/dist/shared/operation-root-fields.d.ts.map +1 -0
  50. package/dist/shared/operation-root-fields.js +33 -0
  51. package/dist/shared/operation-root-fields.js.map +1 -0
  52. package/dist/shared/rdf-namespaces.d.ts +1 -0
  53. package/dist/shared/rdf-namespaces.d.ts.map +1 -1
  54. package/dist/shared/rdf-namespaces.js +2 -0
  55. package/dist/shared/rdf-namespaces.js.map +1 -1
  56. package/dist/testing/manta-mock.d.ts +25 -0
  57. package/dist/testing/manta-mock.d.ts.map +1 -0
  58. package/dist/testing/manta-mock.js +165 -0
  59. package/dist/testing/manta-mock.js.map +1 -0
  60. package/package.json +32 -6
  61. package/src/generated/graphql.ts +2726 -71
  62. package/src/generated/operations.ts +164 -0
  63. package/src/graphql-clients.ts +3 -2
  64. package/src/shared/agent-types.ts +16 -0
  65. package/src/shared/chat-manager.ts +1 -1
  66. package/src/shared/constants.ts +11 -0
  67. package/src/shared/datastore-path.ts +6 -0
  68. package/src/shared/login-status.ts +1 -0
  69. package/src/shared/memory-schema-limits.ts +16 -0
  70. package/src/shared/memory-schema-pattern.ts +15 -0
  71. package/src/shared/memory-schema-property.ts +280 -0
  72. package/src/shared/memory-schema-values.ts +174 -0
  73. package/src/shared/operation-root-fields.ts +56 -0
  74. package/src/shared/rdf-namespaces.ts +3 -0
  75. package/src/testing/manta-mock.ts +208 -0
@@ -0,0 +1,195 @@
1
+ import { isPresent } from "@manta-eu/lib/present";
2
+ import { memorySchemaLimits } from "./memory-schema-limits.js";
3
+ import { compareMemoryValues, memorySchemaValueTypes, memoryValueBoundTypes, memoryValueConstraintViolation, memoryValueTextTypes, parseMemoryValue, } from "./memory-schema-values.js";
4
+ import { isValidFullIri } from "./rdf-namespaces.js";
5
+ const propertyKeyPattern = /^[a-z][A-Za-z0-9]*$/;
6
+ function labelWords(label) {
7
+ return label
8
+ .normalize("NFKD")
9
+ .replace(/[̀-ͯ]/g, "")
10
+ .split(/[^A-Za-z0-9]+/)
11
+ .filter(isPresent);
12
+ }
13
+ function capitalized(word) {
14
+ return word.charAt(0).toUpperCase() + word.slice(1);
15
+ }
16
+ function withoutLeadingDigits(words) {
17
+ const [first, ...rest] = words;
18
+ if (first === undefined)
19
+ return [];
20
+ const stripped = first.replace(/^\d+/, "");
21
+ return isPresent(stripped) ? [stripped, ...rest] : withoutLeadingDigits(rest);
22
+ }
23
+ export function deriveMemorySchemaKey(label) {
24
+ const words = withoutLeadingDigits(labelWords(label));
25
+ const withoutSuffix = words.at(-1)?.toLowerCase() === "memory" ? words.slice(0, -1) : words;
26
+ return withoutSuffix.map(capitalized).join("");
27
+ }
28
+ export function deriveMemoryPropertyKey(label) {
29
+ const [first, ...rest] = withoutLeadingDigits(labelWords(label));
30
+ if (first === undefined)
31
+ return "";
32
+ return [first.toLowerCase(), ...rest.map(capitalized)].join("");
33
+ }
34
+ export function memoryPropertyKeyProblem(key) {
35
+ if (!propertyKeyPattern.test(key)) {
36
+ return "A property key starts with a lowercase letter and holds only letters and digits";
37
+ }
38
+ if (key.length > memorySchemaLimits.key)
39
+ return `A property key must be at most ${memorySchemaLimits.key} characters`;
40
+ return null;
41
+ }
42
+ export function trimmedOrNull(value) {
43
+ const trimmed = value?.trim() ?? "";
44
+ return isPresent(trimmed) ? trimmed : null;
45
+ }
46
+ function checkLength(add, field, value, max, name) {
47
+ if (value !== null && [...value].length > max)
48
+ add(field, `${name} must be at most ${max} characters`);
49
+ }
50
+ function checkOptions(add, field, input) {
51
+ if (input.length > memorySchemaLimits.options) {
52
+ add(field, `A property takes at most ${memorySchemaLimits.options} allowed values`);
53
+ }
54
+ const seen = new Set();
55
+ return input.map((option, index) => {
56
+ const value = option.value.trim();
57
+ const label = trimmedOrNull(option.label);
58
+ const description = trimmedOrNull(option.description);
59
+ const optionField = `${field}.${index}`;
60
+ if (!isPresent(value))
61
+ add(`${optionField}.value`, "An allowed value cannot be empty");
62
+ if (seen.has(value))
63
+ add(`${optionField}.value`, `"${value}" is listed twice`);
64
+ seen.add(value);
65
+ checkLength(add, `${optionField}.value`, value, memorySchemaLimits.optionValue, "An allowed value");
66
+ checkLength(add, `${optionField}.label`, label, memorySchemaLimits.optionLabel, "An option label");
67
+ checkLength(add, `${optionField}.description`, description, memorySchemaLimits.optionDescription, "An option description");
68
+ return { value, label, description };
69
+ });
70
+ }
71
+ function checkBound(add, field, valueType, raw) {
72
+ const trimmed = trimmedOrNull(raw);
73
+ if (trimmed === null)
74
+ return null;
75
+ if (!memoryValueBoundTypes.includes(valueType)) {
76
+ add(field, "Only number, date and date-time properties take a minimum or maximum");
77
+ return null;
78
+ }
79
+ const parsed = parseMemoryValue(valueType, trimmed);
80
+ if (parsed === null)
81
+ add(field, `"${trimmed}" is not a valid ${valueType} value`);
82
+ return parsed;
83
+ }
84
+ function isValueType(value) {
85
+ return memorySchemaValueTypes.some((valueType) => valueType === value);
86
+ }
87
+ export function checkMemorySchemaProperty(input, field, compilePattern) {
88
+ const errors = [];
89
+ const add = (at, message) => errors.push({ field: at, message });
90
+ const label = input.label.trim();
91
+ if (!isPresent(label))
92
+ add(`${field}.label`, "A property needs a label");
93
+ checkLength(add, `${field}.label`, label, memorySchemaLimits.label, "A property label");
94
+ if (!isValueType(input.valueType)) {
95
+ add(`${field}.valueType`, `Unknown value type ${String(input.valueType)}`);
96
+ return { errors, property: null };
97
+ }
98
+ const valueType = input.valueType;
99
+ const description = trimmedOrNull(input.description);
100
+ checkLength(add, `${field}.description`, description, memorySchemaLimits.propertyDescription, "A description");
101
+ const entityClass = trimmedOrNull(input.entityClass);
102
+ if (entityClass !== null && valueType !== "entity") {
103
+ add(`${field}.entityClass`, "Only an entity reference takes an entity class");
104
+ }
105
+ if (entityClass !== null && !isValidFullIri(entityClass)) {
106
+ add(`${field}.entityClass`, "The entity class must be a full IRI");
107
+ }
108
+ const multiValued = input.multiValued === true;
109
+ const keyProperty = input.keyProperty === true;
110
+ const inferred = input.computed === true;
111
+ const required = input.required === true;
112
+ if (keyProperty && multiValued)
113
+ add(`${field}.keyProperty`, "A key property must hold a single value");
114
+ if (keyProperty && valueType === "longText")
115
+ add(`${field}.keyProperty`, "Long text cannot be a key property");
116
+ if (keyProperty && inferred)
117
+ add(`${field}.keyProperty`, "A computed property cannot be a key property");
118
+ if (required && inferred)
119
+ add(`${field}.required`, "A computed property cannot be required");
120
+ const options = checkOptions(add, `${field}.options`, input.options ?? []);
121
+ if (isPresent(options) && valueType !== "text") {
122
+ add(`${field}.options`, "Only text properties take a list of allowed values");
123
+ }
124
+ const minValue = checkBound(add, `${field}.minValue`, valueType, input.minValue);
125
+ const maxValue = checkBound(add, `${field}.maxValue`, valueType, input.maxValue);
126
+ if (minValue !== null && maxValue !== null && compareMemoryValues(valueType, minValue, maxValue) > 0) {
127
+ add(`${field}.maxValue`, "The maximum must not be below the minimum");
128
+ }
129
+ const takesLength = [...memoryValueTextTypes, "url"].includes(valueType);
130
+ const maxLength = input.maxLength ?? null;
131
+ if (maxLength !== null) {
132
+ if (!takesLength) {
133
+ add(`${field}.maxLength`, "Only text and URL properties take a maximum length");
134
+ }
135
+ else if (!Number.isInteger(maxLength) || maxLength < 1 || maxLength > memorySchemaLimits.maxLength) {
136
+ add(`${field}.maxLength`, `The maximum length must be between 1 and ${memorySchemaLimits.maxLength}`);
137
+ }
138
+ }
139
+ const pattern = trimmedOrNull(input.pattern);
140
+ if (pattern !== null) {
141
+ checkLength(add, `${field}.pattern`, pattern, memorySchemaLimits.pattern, "A pattern");
142
+ if (!memoryValueTextTypes.includes(valueType)) {
143
+ add(`${field}.pattern`, "Only text properties take a pattern");
144
+ }
145
+ else if (compilePattern !== null) {
146
+ try {
147
+ compilePattern(pattern);
148
+ }
149
+ catch {
150
+ add(`${field}.pattern`, "The pattern is not a valid regular expression");
151
+ }
152
+ }
153
+ }
154
+ const unit = trimmedOrNull(input.unit);
155
+ checkLength(add, `${field}.unit`, unit, memorySchemaLimits.unit, "A unit");
156
+ if (unit !== null && valueType !== "integer" && valueType !== "decimal") {
157
+ add(`${field}.unit`, "Only number properties take a unit");
158
+ }
159
+ const property = {
160
+ label,
161
+ description,
162
+ valueType,
163
+ entityClass: valueType === "entity" ? entityClass : null,
164
+ required,
165
+ multiValued,
166
+ keyProperty,
167
+ inferred,
168
+ options,
169
+ allowedValues: options.map((option) => option.value),
170
+ minValue,
171
+ maxValue,
172
+ maxLength: takesLength ? maxLength : null,
173
+ pattern,
174
+ defaultValue: null,
175
+ unit,
176
+ };
177
+ const rawDefault = trimmedOrNull(input.defaultValue);
178
+ if (rawDefault !== null) {
179
+ if (inferred) {
180
+ add(`${field}.defaultValue`, "A computed property cannot have a default value");
181
+ }
182
+ else {
183
+ const parsed = parseMemoryValue(valueType, rawDefault);
184
+ const violation = parsed === null ? null : memoryValueConstraintViolation(property, parsed, compilePattern);
185
+ if (parsed === null)
186
+ add(`${field}.defaultValue`, `"${rawDefault}" is not a valid ${valueType} value`);
187
+ else if (violation !== null)
188
+ add(`${field}.defaultValue`, `The default value ${violation}`);
189
+ else
190
+ property.defaultValue = parsed;
191
+ }
192
+ }
193
+ return { errors, property };
194
+ }
195
+ //# sourceMappingURL=memory-schema-property.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-schema-property.js","sourceRoot":"","sources":["../../src/shared/memory-schema-property.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export declare const memorySchemaValueTypes: readonly ["text", "longText", "integer", "decimal", "boolean", "date", "dateTime", "url", "entity"];
2
+ export type MemorySchemaValueType = (typeof memorySchemaValueTypes)[number];
3
+ export type MemoryValueConstraints = {
4
+ valueType: MemorySchemaValueType;
5
+ allowedValues: readonly string[];
6
+ minValue: string | null;
7
+ maxValue: string | null;
8
+ maxLength: number | null;
9
+ pattern: string | null;
10
+ };
11
+ export declare function parseMemoryValue(valueType: MemorySchemaValueType, raw: string): string | null;
12
+ export declare function convertMemoryValue(from: MemorySchemaValueType, to: MemorySchemaValueType, lexical: string): string | null;
13
+ export declare function compareMemoryValues(valueType: MemorySchemaValueType, a: string, b: string): number;
14
+ export declare const memoryValueBoundTypes: readonly MemorySchemaValueType[];
15
+ export declare const memoryValueTextTypes: readonly MemorySchemaValueType[];
16
+ export type CompileMemoryValuePattern = (pattern: string) => {
17
+ test: (value: string) => boolean;
18
+ };
19
+ export declare function memoryValueConstraintViolation(property: MemoryValueConstraints, value: string, compilePattern: CompileMemoryValuePattern | null): string | null;
20
+ //# sourceMappingURL=memory-schema-values.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-schema-values.d.ts","sourceRoot":"","sources":["../../src/shared/memory-schema-values.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,sBAAsB,YACjC,MAAM,EACN,UAAU,EACV,SAAS,EACT,SAAS,EACT,SAAS,EACT,MAAM,EACN,UAAU,EACV,KAAK,EACL,QAAQ,CACA,CAAC;AAEX,MAAM,MAAM,qBAAqB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE5E,MAAM,MAAM,sBAAsB,GAAG;IACnC,SAAS,EAAE,qBAAqB,CAAC;IACjC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC;AA+BF,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,qBAAqB,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAyB7F;AAiBD,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,qBAAqB,EAC3B,EAAE,EAAE,qBAAqB,EACzB,OAAO,EAAE,MAAM,GACd,MAAM,GAAG,IAAI,CAef;AAqBD,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,qBAAqB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAKlG;AAED,eAAO,MAAM,qBAAqB,EAAE,SAAS,qBAAqB,EAA+C,CAAC;AAElH,eAAO,MAAM,oBAAoB,EAAE,SAAS,qBAAqB,EAAyB,CAAC;AAG3F,MAAM,MAAM,yBAAyB,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK;IAAE,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAA;CAAE,CAAC;AAElG,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,sBAAsB,EAChC,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,yBAAyB,GAAG,IAAI,GAC/C,MAAM,GAAG,IAAI,CAiBf"}
@@ -0,0 +1,139 @@
1
+ import { isPresent } from "@manta-eu/lib/present";
2
+ import { match, P } from "ts-pattern";
3
+ import { isValidFullIri } from "./rdf-namespaces.js";
4
+ export const memorySchemaValueTypes = [
5
+ "text",
6
+ "longText",
7
+ "integer",
8
+ "decimal",
9
+ "boolean",
10
+ "date",
11
+ "dateTime",
12
+ "url",
13
+ "entity",
14
+ ];
15
+ const integerPattern = /^[+-]?\d+$/;
16
+ const decimalPattern = /^[+-]?(\d+(\.\d*)?|\.\d+)$/;
17
+ const datePattern = /^(\d{4})-(\d{2})-(\d{2})$/;
18
+ const dateTimePattern = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})(:(\d{2})(\.\d+)?)?(Z|[+-]\d{2}:\d{2})?$/;
19
+ function isCalendarDate(year, month, day) {
20
+ const date = new Date(0);
21
+ date.setUTCFullYear(Number(year), Number(month) - 1, Number(day));
22
+ return (date.getUTCFullYear() === Number(year) &&
23
+ date.getUTCMonth() === Number(month) - 1 &&
24
+ date.getUTCDate() === Number(day));
25
+ }
26
+ function canonicalInteger(value) {
27
+ return BigInt(value).toString();
28
+ }
29
+ function canonicalDecimal(value) {
30
+ const negative = value.startsWith("-");
31
+ const unsigned = value.replace(/^[+-]/, "");
32
+ const [whole = "", fraction = ""] = unsigned.split(".");
33
+ const wholeDigits = whole.replace(/^0+(?=\d)/, "") || "0";
34
+ const fractionDigits = fraction.replace(/0+$/, "");
35
+ const magnitude = isPresent(fractionDigits) ? `${wholeDigits}.${fractionDigits}` : wholeDigits;
36
+ return negative && magnitude !== "0" ? `-${magnitude}` : magnitude;
37
+ }
38
+ export function parseMemoryValue(valueType, raw) {
39
+ const value = raw.trim();
40
+ if (!isPresent(value))
41
+ return null;
42
+ return match(valueType)
43
+ .with("text", "longText", () => value)
44
+ .with("integer", () => (integerPattern.test(value) ? canonicalInteger(value) : null))
45
+ .with("decimal", () => (decimalPattern.test(value) ? canonicalDecimal(value) : null))
46
+ .with("boolean", () => {
47
+ const lowered = value.toLowerCase();
48
+ return lowered === "true" || lowered === "false" ? lowered : null;
49
+ })
50
+ .with("date", () => {
51
+ const parts = datePattern.exec(value);
52
+ return parts !== null && isCalendarDate(parts[1], parts[2], parts[3]) ? value : null;
53
+ })
54
+ .with("dateTime", () => {
55
+ const parts = dateTimePattern.exec(value);
56
+ if (parts === null || !isCalendarDate(parts[1], parts[2], parts[3]))
57
+ return null;
58
+ if (Number(parts[4]) >= 24 || Number(parts[5]) >= 60 || Number(parts[7] ?? 0) >= 60)
59
+ return null;
60
+ return parts[6] === undefined ? withSeconds(value, parts[9]) : value;
61
+ })
62
+ .with("url", () => (isAbsoluteHttpUrl(value) ? value : null))
63
+ .with("entity", () => (isValidFullIri(value) ? value : null))
64
+ .exhaustive();
65
+ }
66
+ // xsd:dateTime requires seconds, and a datetime-local input leaves them out.
67
+ function withSeconds(value, zone) {
68
+ const local = zone === undefined ? value : value.slice(0, -zone.length);
69
+ return `${local}:00${zone ?? ""}`;
70
+ }
71
+ function isAbsoluteHttpUrl(value) {
72
+ try {
73
+ const url = new URL(value);
74
+ return url.protocol === "http:" || url.protocol === "https:";
75
+ }
76
+ catch {
77
+ return false;
78
+ }
79
+ }
80
+ export function convertMemoryValue(from, to, lexical) {
81
+ return match([from, to])
82
+ .with(["decimal", "integer"], () => {
83
+ const integral = /^([+-]?\d+)(\.0*)?$/.exec(lexical.trim());
84
+ return integral !== null ? canonicalInteger(integral[1]) : null;
85
+ })
86
+ .with(["date", "dateTime"], () => {
87
+ const date = parseMemoryValue("date", lexical);
88
+ return date !== null ? `${date}T00:00:00` : null;
89
+ })
90
+ .with(["dateTime", "date"], () => {
91
+ const dateTime = parseMemoryValue("dateTime", lexical);
92
+ return dateTime !== null ? dateTime.slice(0, 10) : null;
93
+ })
94
+ .otherwise(() => parseMemoryValue(to, lexical));
95
+ }
96
+ function scaledDecimal(value, scale) {
97
+ const [whole = "", fraction = ""] = value.replace(/^[+-]/, "").split(".");
98
+ const magnitude = BigInt(`${whole || "0"}${fraction.padEnd(scale, "0")}`);
99
+ return value.startsWith("-") ? -magnitude : magnitude;
100
+ }
101
+ // Exact on any number of digits, where a double would round a large integer or a long decimal.
102
+ function compareNumbers(a, b) {
103
+ const [left, right] = [a.trim(), b.trim()];
104
+ if (!decimalPattern.test(left) || !decimalPattern.test(right))
105
+ return Number(left) - Number(right);
106
+ const scale = Math.max(left.split(".")[1]?.length ?? 0, right.split(".")[1]?.length ?? 0);
107
+ const difference = scaledDecimal(left, scale) - scaledDecimal(right, scale);
108
+ return difference === 0n ? 0 : difference < 0n ? -1 : 1;
109
+ }
110
+ function compareDateTimes(a, b) {
111
+ return Date.parse(a) - Date.parse(b);
112
+ }
113
+ export function compareMemoryValues(valueType, a, b) {
114
+ return match(valueType)
115
+ .with(P.union("integer", "decimal"), () => compareNumbers(a, b))
116
+ .with("dateTime", () => compareDateTimes(a, b))
117
+ .otherwise(() => a.localeCompare(b));
118
+ }
119
+ export const memoryValueBoundTypes = ["integer", "decimal", "date", "dateTime"];
120
+ export const memoryValueTextTypes = ["text", "longText"];
121
+ export function memoryValueConstraintViolation(property, value, compilePattern) {
122
+ if (isPresent(property.allowedValues) && !property.allowedValues.includes(value)) {
123
+ return `must be one of ${property.allowedValues.map((option) => `"${option}"`).join(", ")}`;
124
+ }
125
+ if (property.minValue !== null && compareMemoryValues(property.valueType, value, property.minValue) < 0) {
126
+ return `must be at least ${property.minValue}`;
127
+ }
128
+ if (property.maxValue !== null && compareMemoryValues(property.valueType, value, property.maxValue) > 0) {
129
+ return `must be at most ${property.maxValue}`;
130
+ }
131
+ if (property.maxLength !== null && [...value].length > property.maxLength) {
132
+ return `must be at most ${property.maxLength} characters`;
133
+ }
134
+ if (property.pattern !== null && compilePattern !== null && !compilePattern(property.pattern).test(value)) {
135
+ return `must match the pattern ${property.pattern}`;
136
+ }
137
+ return null;
138
+ }
139
+ //# sourceMappingURL=memory-schema-values.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-schema-values.js","sourceRoot":"","sources":["../../src/shared/memory-schema-values.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { type DocumentNode } from "graphql";
2
+ export type OperationRootFields = {
3
+ name: string | undefined;
4
+ fields: string[];
5
+ };
6
+ export declare function operationRootFieldsOf(document: DocumentNode): OperationRootFields[];
7
+ //# sourceMappingURL=operation-root-fields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operation-root-fields.d.ts","sourceRoot":"","sources":["../../src/shared/operation-root-fields.ts"],"names":[],"mappings":"AACA,OAAO,EAAQ,KAAK,YAAY,EAAsD,MAAM,SAAS,CAAC;AAGtG,MAAM,MAAM,mBAAmB,GAAG;IAAE,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAkCjF,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,YAAY,GAAG,mBAAmB,EAAE,CAiBnF"}
@@ -0,0 +1,33 @@
1
+ import { isPresent } from "@manta-eu/lib/present";
2
+ import { Kind } from "graphql";
3
+ import { match } from "ts-pattern";
4
+ function rootFields(args) {
5
+ const { selectionSet, fragments, visiting } = args;
6
+ return selectionSet.selections.flatMap((selection) => match(selection)
7
+ .with({ kind: Kind.FIELD }, (field) => [field.name.value])
8
+ .with({ kind: Kind.INLINE_FRAGMENT }, (inline) => rootFields({ selectionSet: inline.selectionSet, fragments, visiting }))
9
+ .with({ kind: Kind.FRAGMENT_SPREAD }, (spread) => {
10
+ const fragment = fragments.get(spread.name.value);
11
+ if (!isPresent(fragment) || visiting.has(spread.name.value)) {
12
+ throw new Error(`Unresolvable fragment ${spread.name.value}`);
13
+ }
14
+ return rootFields({
15
+ selectionSet: fragment.selectionSet,
16
+ fragments,
17
+ visiting: new Set([...visiting, spread.name.value]),
18
+ });
19
+ })
20
+ .exhaustive());
21
+ }
22
+ export function operationRootFieldsOf(document) {
23
+ const fragments = new Map(document.definitions.flatMap((definition) => definition.kind === Kind.FRAGMENT_DEFINITION ? [[definition.name.value, definition]] : []));
24
+ return document.definitions.flatMap((definition) => definition.kind === Kind.OPERATION_DEFINITION
25
+ ? [
26
+ {
27
+ name: definition.name?.value,
28
+ fields: [...new Set(rootFields({ selectionSet: definition.selectionSet, fragments, visiting: new Set() }))],
29
+ },
30
+ ]
31
+ : []);
32
+ }
33
+ //# sourceMappingURL=operation-root-fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operation-root-fields.js","sourceRoot":"","sources":["../../src/shared/operation-root-fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAyE,MAAM,SAAS,CAAC;AACtG,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAUnC,SAAS,UAAU,CAAC,IAAoB;IACtC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAEnD,OAAO,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CACnD,KAAK,CAAC,SAAS,CAAC;SACb,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzD,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE,CAC/C,UAAU,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CACvE;SACA,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,MAAM,EAAE,EAAE;QAC/C,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAElD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5D,MAAM,IAAI,KAAK,CAAC,yBAAyB,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,UAAU,CAAC;YAChB,YAAY,EAAE,QAAQ,CAAC,YAAY;YACnC,SAAS;YACT,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACpD,CAAC,CAAC;IACL,CAAC,CAAC;SACD,UAAU,EAAE,CAChB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,QAAsB;IAC1D,MAAM,SAAS,GAAG,IAAI,GAAG,CACvB,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAC1C,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CACnG,CACF,CAAC;IAEF,OAAO,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CACjD,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,oBAAoB;QAC3C,CAAC,CAAC;YACE;gBACE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,KAAK;gBAC5B,MAAM,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,EAAE,YAAY,EAAE,UAAU,CAAC,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;aAC5G;SACF;QACH,CAAC,CAAC,EAAE,CACP,CAAC;AACJ,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export declare const ontologyGraphIri: string;
2
+ export declare const memorySchemasGraphIri: string;
2
3
  export declare const writeLifecycle: {
3
4
  predicate: string;
4
5
  readOnly: string;
@@ -1 +1 @@
1
- {"version":3,"file":"rdf-namespaces.d.ts","sourceRoot":"","sources":["../../src/shared/rdf-namespaces.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,gBAAgB,QAA+B,CAAC;AAG7D,eAAO,MAAM,cAAc;IACzB,SAAS;IACT,QAAQ;IACR,UAAU;CACX,CAAC;AAEF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,OAAO,EACL,OAAO,EACP,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,KAAK,EACL,aAAa,EACb,wBAAwB,EACxB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,UAAU,EACV,KAAK,aAAa,EAClB,GAAG,EACH,cAAc,EACd,4BAA4B,EAC5B,UAAU,EACV,EAAE,EACF,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,KAAK,GAAG,GACT,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"rdf-namespaces.d.ts","sourceRoot":"","sources":["../../src/shared/rdf-namespaces.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,gBAAgB,QAA+B,CAAC;AAG7D,eAAO,MAAM,qBAAqB,QAAoC,CAAC;AAGvE,eAAO,MAAM,cAAc;IACzB,SAAS;IACT,QAAQ;IACR,UAAU;CACX,CAAC;AAEF,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEzE;AAED,OAAO,EACL,OAAO,EACP,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,KAAK,EACL,aAAa,EACb,wBAAwB,EACxB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,KAAK,sBAAsB,EAC3B,UAAU,EACV,KAAK,aAAa,EAClB,GAAG,EACH,cAAc,EACd,4BAA4B,EAC5B,UAAU,EACV,EAAE,EACF,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,KAAK,GAAG,GACT,MAAM,8BAA8B,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import { encodeIriLocalName as encodeIriLocalNameValue, expandPrefix as expandPrefixIri, iriLocalName as iriLocalNameValue, iriNamespace as iriNamespaceValue, } from "@manta-eu/rdf-lib/namespaces";
2
2
  // KGC uploads the realm ontology here (kgc/kgc/realms/lib/ontology.py: realm_base + "ontology").
3
3
  export const ontologyGraphIri = expandPrefixIri(":ontology");
4
+ // Each datastore's editable memory schemas; KGC never writes it (kgc ontology.py: memory_schemas_graph_iri).
5
+ export const memorySchemasGraphIri = expandPrefixIri(":memorySchemas");
4
6
  // Field mutability Inferal publishes on its property shapes (DAT-577).
5
7
  export const writeLifecycle = {
6
8
  predicate: expandPrefixIri("relay:writeLifecycle"),
@@ -1 +1 @@
1
- {"version":3,"file":"rdf-namespaces.js","sourceRoot":"","sources":["../../src/shared/rdf-namespaces.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,IAAI,uBAAuB,EAC7C,YAAY,IAAI,eAAe,EAC/B,YAAY,IAAI,iBAAiB,EACjC,YAAY,IAAI,iBAAiB,GAClC,MAAM,8BAA8B,CAAC;AAEtC,iGAAiG;AACjG,MAAM,CAAC,MAAM,gBAAgB,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;AAE7D,uEAAuE;AACvE,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,SAAS,EAAE,eAAe,CAAC,sBAAsB,CAAC;IAClD,QAAQ,EAAE,eAAe,CAAC,gBAAgB,CAAC;IAC3C,UAAU,EAAE,eAAe,CAAC,kBAAkB,CAAC;CAChD,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,OAAe;IAC/D,OAAO,GAAG,iBAAiB,CAAC,QAAQ,CAAC,GAAG,uBAAuB,CAAC,GAAG,iBAAiB,CAAC,QAAQ,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,CAAC;AACjH,CAAC;AAED,OAAO,EACL,OAAO,EACP,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,KAAK,EACL,aAAa,EACb,wBAAwB,EACxB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,aAAa,EACb,iBAAiB,EAEjB,UAAU,EAEV,GAAG,EACH,cAAc,EACd,4BAA4B,EAC5B,UAAU,EACV,EAAE,EACF,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GAEpB,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"rdf-namespaces.js","sourceRoot":"","sources":["../../src/shared/rdf-namespaces.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,IAAI,uBAAuB,EAC7C,YAAY,IAAI,eAAe,EAC/B,YAAY,IAAI,iBAAiB,EACjC,YAAY,IAAI,iBAAiB,GAClC,MAAM,8BAA8B,CAAC;AAEtC,iGAAiG;AACjG,MAAM,CAAC,MAAM,gBAAgB,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;AAE7D,6GAA6G;AAC7G,MAAM,CAAC,MAAM,qBAAqB,GAAG,eAAe,CAAC,gBAAgB,CAAC,CAAC;AAEvE,uEAAuE;AACvE,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,SAAS,EAAE,eAAe,CAAC,sBAAsB,CAAC;IAClD,QAAQ,EAAE,eAAe,CAAC,gBAAgB,CAAC;IAC3C,UAAU,EAAE,eAAe,CAAC,kBAAkB,CAAC;CAChD,CAAC;AAEF,MAAM,UAAU,eAAe,CAAC,QAAgB,EAAE,OAAe;IAC/D,OAAO,GAAG,iBAAiB,CAAC,QAAQ,CAAC,GAAG,uBAAuB,CAAC,GAAG,iBAAiB,CAAC,QAAQ,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,CAAC;AACjH,CAAC;AAED,OAAO,EACL,OAAO,EACP,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,KAAK,EACL,aAAa,EACb,wBAAwB,EACxB,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,aAAa,EACb,iBAAiB,EAEjB,UAAU,EAEV,GAAG,EACH,cAAc,EACd,4BAA4B,EAC5B,UAAU,EACV,EAAE,EACF,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GAEpB,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,25 @@
1
+ export type MantaMockOptions = {
2
+ turtle?: string;
3
+ };
4
+ export type MantaMockRoute = {
5
+ request(): {
6
+ url(): string;
7
+ method(): string;
8
+ headers(): Record<string, string>;
9
+ postData(): string | null;
10
+ };
11
+ fulfill(response: {
12
+ status: number;
13
+ headers: Record<string, string>;
14
+ body: string;
15
+ }): Promise<void>;
16
+ fallback(): Promise<void>;
17
+ };
18
+ export type MantaMock = {
19
+ fetch: (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;
20
+ route: (route: MantaMockRoute) => Promise<void>;
21
+ updates: readonly string[];
22
+ };
23
+ export declare const mantaMockRoutePattern: RegExp;
24
+ export declare function createMantaMock({ turtle }?: MantaMockOptions): MantaMock;
25
+ //# sourceMappingURL=manta-mock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manta-mock.d.ts","sourceRoot":"","sources":["../../src/testing/manta-mock.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,gBAAgB,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnD,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,IAAI;QAAE,GAAG,IAAI,MAAM,CAAC;QAAC,MAAM,IAAI,MAAM,CAAC;QAAC,OAAO,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,QAAQ,IAAI,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAC7G,OAAO,CAAC,QAAQ,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,KAAK,EAAE,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3E,KAAK,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,qBAAqB,QAA6B,CAAC;AAkBhE,wBAAgB,eAAe,CAAC,EAAE,MAAM,EAAE,GAAE,gBAAqB,GAAG,SAAS,CAkC5E"}