@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.
- package/README.md +44 -0
- package/dist/generated/graphql.d.ts +2124 -40
- package/dist/generated/graphql.d.ts.map +1 -1
- package/dist/generated/graphql.js +472 -24
- package/dist/generated/graphql.js.map +1 -1
- package/dist/generated/operations.d.ts +2 -0
- package/dist/generated/operations.d.ts.map +1 -0
- package/dist/generated/operations.js +165 -0
- package/dist/generated/operations.js.map +1 -0
- package/dist/graphql-clients.d.ts +2 -1
- package/dist/graphql-clients.d.ts.map +1 -1
- package/dist/graphql-clients.js +2 -1
- package/dist/graphql-clients.js.map +1 -1
- package/dist/shared/agent-types.d.ts +15 -0
- package/dist/shared/agent-types.d.ts.map +1 -1
- package/dist/shared/chat-manager.d.ts +1 -1
- package/dist/shared/chat-manager.d.ts.map +1 -1
- package/dist/shared/chat-manager.js +1 -1
- package/dist/shared/chat-manager.js.map +1 -1
- package/dist/shared/constants.d.ts +6 -0
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js +6 -0
- package/dist/shared/constants.js.map +1 -1
- package/dist/shared/datastore-path.d.ts +3 -0
- package/dist/shared/datastore-path.d.ts.map +1 -1
- package/dist/shared/datastore-path.js +3 -0
- package/dist/shared/datastore-path.js.map +1 -1
- package/dist/shared/login-status.d.ts +6 -0
- package/dist/shared/login-status.d.ts.map +1 -0
- package/dist/shared/login-status.js +2 -0
- package/dist/shared/login-status.js.map +1 -0
- package/dist/shared/memory-schema-limits.d.ts +17 -0
- package/dist/shared/memory-schema-limits.d.ts.map +1 -0
- package/dist/shared/memory-schema-limits.js +17 -0
- package/dist/shared/memory-schema-limits.js.map +1 -0
- package/dist/shared/memory-schema-pattern.d.ts +3 -0
- package/dist/shared/memory-schema-pattern.d.ts.map +1 -0
- package/dist/shared/memory-schema-pattern.js +16 -0
- package/dist/shared/memory-schema-pattern.js.map +1 -0
- package/dist/shared/memory-schema-property.d.ts +64 -0
- package/dist/shared/memory-schema-property.d.ts.map +1 -0
- package/dist/shared/memory-schema-property.js +195 -0
- package/dist/shared/memory-schema-property.js.map +1 -0
- package/dist/shared/memory-schema-values.d.ts +20 -0
- package/dist/shared/memory-schema-values.d.ts.map +1 -0
- package/dist/shared/memory-schema-values.js +139 -0
- package/dist/shared/memory-schema-values.js.map +1 -0
- package/dist/shared/operation-root-fields.d.ts +7 -0
- package/dist/shared/operation-root-fields.d.ts.map +1 -0
- package/dist/shared/operation-root-fields.js +33 -0
- package/dist/shared/operation-root-fields.js.map +1 -0
- package/dist/shared/rdf-namespaces.d.ts +1 -0
- package/dist/shared/rdf-namespaces.d.ts.map +1 -1
- package/dist/shared/rdf-namespaces.js +2 -0
- package/dist/shared/rdf-namespaces.js.map +1 -1
- package/dist/testing/manta-mock.d.ts +25 -0
- package/dist/testing/manta-mock.d.ts.map +1 -0
- package/dist/testing/manta-mock.js +165 -0
- package/dist/testing/manta-mock.js.map +1 -0
- package/package.json +32 -6
- package/src/generated/graphql.ts +2726 -71
- package/src/generated/operations.ts +164 -0
- package/src/graphql-clients.ts +3 -2
- package/src/shared/agent-types.ts +16 -0
- package/src/shared/chat-manager.ts +1 -1
- package/src/shared/constants.ts +11 -0
- package/src/shared/datastore-path.ts +6 -0
- package/src/shared/login-status.ts +1 -0
- package/src/shared/memory-schema-limits.ts +16 -0
- package/src/shared/memory-schema-pattern.ts +15 -0
- package/src/shared/memory-schema-property.ts +280 -0
- package/src/shared/memory-schema-values.ts +174 -0
- package/src/shared/operation-root-fields.ts +56 -0
- package/src/shared/rdf-namespaces.ts +3 -0
- 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 +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"}
|