@party-stack/foundry-ontology 0.18.1 → 0.20.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 +56 -16
- package/lib/adapter/backend.d.ts +35 -0
- package/lib/adapter/backend.d.ts.map +1 -0
- package/lib/adapter/backend.js +210 -0
- package/lib/adapter/backend.js.map +1 -0
- package/lib/adapter/encrypted.d.ts +12 -0
- package/lib/adapter/encrypted.d.ts.map +1 -0
- package/lib/adapter/encrypted.js +79 -0
- package/lib/adapter/encrypted.js.map +1 -0
- package/lib/adapter/foundryActionError.d.ts +7 -0
- package/lib/adapter/foundryActionError.d.ts.map +1 -0
- package/lib/adapter/foundryActionError.js +61 -0
- package/lib/adapter/foundryActionError.js.map +1 -0
- package/lib/adapter/foundryActionValidation.d.ts +4 -3
- package/lib/adapter/foundryActionValidation.d.ts.map +1 -1
- package/lib/adapter/foundryActionValidation.js +71 -25
- package/lib/adapter/foundryActionValidation.js.map +1 -1
- package/lib/adapter/foundryCodec.d.ts +3 -5
- package/lib/adapter/foundryCodec.d.ts.map +1 -1
- package/lib/adapter/foundryCodec.js +19 -7
- package/lib/adapter/foundryCodec.js.map +1 -1
- package/lib/adapter/foundryObjectSearch.d.ts +13 -0
- package/lib/adapter/foundryObjectSearch.d.ts.map +1 -0
- package/lib/adapter/foundryObjectSearch.js +57 -0
- package/lib/adapter/foundryObjectSearch.js.map +1 -0
- package/lib/adapter/index.d.ts +3 -4
- package/lib/adapter/index.js +3 -4
- package/lib/adapter/likeFilter.d.ts +10 -0
- package/lib/adapter/likeFilter.d.ts.map +1 -0
- package/lib/adapter/likeFilter.js +87 -0
- package/lib/adapter/likeFilter.js.map +1 -0
- package/lib/adapter/makeFoundryOntologyBackend.d.ts +76 -0
- package/lib/adapter/makeFoundryOntologyBackend.d.ts.map +1 -0
- package/lib/adapter/makeFoundryOntologyBackend.js +505 -0
- package/lib/adapter/makeFoundryOntologyBackend.js.map +1 -0
- package/lib/adapter/subsetFilter.d.ts +14 -0
- package/lib/adapter/subsetFilter.d.ts.map +1 -0
- package/lib/adapter/subsetFilter.js +105 -0
- package/lib/adapter/subsetFilter.js.map +1 -0
- package/lib/adapter/uploads.d.ts +25 -0
- package/lib/adapter/uploads.d.ts.map +1 -0
- package/lib/adapter/uploads.js +78 -0
- package/lib/adapter/uploads.js.map +1 -0
- package/lib/backend.d.ts +80 -0
- package/lib/backend.d.ts.map +1 -0
- package/lib/backend.js +34 -0
- package/lib/backend.js.map +1 -0
- package/lib/config/index.d.ts +8 -12
- package/lib/config/index.d.ts.map +1 -1
- package/lib/config/index.js +49 -52
- package/lib/config/index.js.map +1 -1
- package/lib/connectionOptions.d.ts +9 -0
- package/lib/connectionOptions.d.ts.map +1 -0
- package/lib/connectionOptions.js +1 -0
- package/lib/context.d.ts +21 -0
- package/lib/context.d.ts.map +1 -0
- package/lib/context.js +16 -0
- package/lib/context.js.map +1 -0
- package/lib/index.d.ts +7 -7
- package/lib/index.js +6 -7
- package/lib/meta/backend.d.ts +10 -0
- package/lib/meta/backend.d.ts.map +1 -0
- package/lib/meta/backend.js +161 -0
- package/lib/meta/backend.js.map +1 -0
- package/lib/meta/convertMetaActionType.d.ts +3 -2
- package/lib/meta/convertMetaActionType.d.ts.map +1 -1
- package/lib/meta/convertMetaActionType.js +3 -3
- package/lib/meta/convertMetaActionType.js.map +1 -1
- package/lib/meta/convertMetaLinkType.d.ts +2 -2
- package/lib/meta/convertMetaLinkType.d.ts.map +1 -1
- package/lib/meta/convertMetaLinkType.js +13 -13
- package/lib/meta/convertMetaLinkType.js.map +1 -1
- package/lib/meta/convertMetaObjectType.d.ts +2 -2
- package/lib/meta/convertMetaObjectType.d.ts.map +1 -1
- package/lib/meta/convertMetaObjectType.js +5 -1
- package/lib/meta/convertMetaObjectType.js.map +1 -1
- package/lib/meta/convertMetaQueryFunctionType.d.ts +1 -1
- package/lib/meta/convertMetaQueryFunctionType.js.map +1 -1
- package/lib/meta/convertMetaTypeDef.d.ts +1 -1
- package/lib/meta/convertMetaTypeDef.d.ts.map +1 -1
- package/lib/meta/convertMetaTypeDef.js +7 -1
- package/lib/meta/convertMetaTypeDef.js.map +1 -1
- package/lib/meta/convertMetaValueType.d.ts +2 -2
- package/lib/meta/convertMetaValueType.d.ts.map +1 -1
- package/lib/meta/convertMetaValueType.js.map +1 -1
- package/lib/meta/convertOmsActionParameterMetadata.d.ts +1 -1
- package/lib/meta/convertOmsActionParameterMetadata.js +1 -1
- package/lib/meta/convertOmsActionParameterMetadata.js.map +1 -1
- package/lib/meta/index.d.ts +2 -4
- package/lib/meta/index.js +2 -4
- package/lib/meta/listObjectTypes.d.ts +6 -0
- package/lib/meta/listObjectTypes.d.ts.map +1 -0
- package/lib/meta/listObjectTypes.js +13 -0
- package/lib/meta/listObjectTypes.js.map +1 -0
- package/lib/meta/loadActionTypeOmsMetadata.d.ts +1 -0
- package/lib/meta/loadActions.d.ts +7 -0
- package/lib/meta/loadActions.d.ts.map +1 -0
- package/lib/meta/loadActions.js +20 -0
- package/lib/meta/loadActions.js.map +1 -0
- package/lib/meta/loadEntities.d.ts +9 -0
- package/lib/meta/loadEntities.d.ts.map +1 -0
- package/lib/meta/loadEntities.js +73 -0
- package/lib/meta/loadEntities.js.map +1 -0
- package/lib/meta/loadQueryFunctions.d.ts +11 -0
- package/lib/meta/loadQueryFunctions.d.ts.map +1 -0
- package/lib/meta/loadQueryFunctions.js +18 -0
- package/lib/meta/loadQueryFunctions.js.map +1 -0
- package/lib/meta/planMetaLookup.d.ts +12 -0
- package/lib/meta/planMetaLookup.d.ts.map +1 -0
- package/lib/meta/planMetaLookup.js +44 -0
- package/lib/meta/planMetaLookup.js.map +1 -0
- package/lib/platform.d.ts +78 -0
- package/lib/platform.d.ts.map +1 -0
- package/lib/platform.js +116 -0
- package/lib/platform.js.map +1 -0
- package/lib/platformCollections.d.ts +68 -0
- package/lib/platformCollections.d.ts.map +1 -0
- package/lib/platformCollections.js +7 -0
- package/lib/platformCollections.js.map +1 -0
- package/lib/serviceConnector.d.ts +8 -0
- package/lib/serviceConnector.d.ts.map +1 -0
- package/lib/serviceConnector.js +105 -0
- package/lib/serviceConnector.js.map +1 -0
- package/lib/stagedWrites.d.ts +3 -2
- package/lib/stagedWrites.d.ts.map +1 -1
- package/lib/stagedWrites.js +30 -3
- package/lib/stagedWrites.js.map +1 -1
- package/lib/users/admin.d.ts +105 -0
- package/lib/users/admin.d.ts.map +1 -0
- package/lib/users/admin.js +35 -0
- package/lib/users/admin.js.map +1 -0
- package/lib/users/createFoundryUsersIntegration.d.ts +2 -2
- package/lib/users/createFoundryUsersIntegration.d.ts.map +1 -1
- package/lib/users/createFoundryUsersIntegration.js +4 -6
- package/lib/users/createFoundryUsersIntegration.js.map +1 -1
- package/lib/users/foundryUser.d.ts +2 -2
- package/lib/users/foundryUser.js +1 -1
- package/lib/users/foundryUser.js.map +1 -1
- package/lib/users/index.d.ts +2 -3
- package/lib/users/index.js +2 -3
- package/lib/users/loadUserSubset.d.ts +8 -0
- package/lib/users/loadUserSubset.d.ts.map +1 -0
- package/lib/users/loadUserSubset.js +166 -0
- package/lib/users/loadUserSubset.js.map +1 -0
- package/lib/utils/AsyncIterable.d.ts +1 -1
- package/lib/utils/AsyncIterable.d.ts.map +1 -1
- package/lib/utils/AsyncIterable.js +11 -0
- package/lib/utils/AsyncIterable.js.map +1 -1
- package/package.json +17 -16
- package/lib/adapter/convertLoadSubsetOptions.d.ts +0 -8
- package/lib/adapter/convertLoadSubsetOptions.d.ts.map +0 -1
- package/lib/adapter/convertLoadSubsetOptions.js +0 -178
- package/lib/adapter/convertLoadSubsetOptions.js.map +0 -1
- package/lib/adapter/createFoundryOntologyBackendAdapter.d.ts +0 -29
- package/lib/adapter/createFoundryOntologyBackendAdapter.d.ts.map +0 -1
- package/lib/adapter/createFoundryOntologyBackendAdapter.js +0 -311
- package/lib/adapter/createFoundryOntologyBackendAdapter.js.map +0 -1
- package/lib/adapter/objectCollectionOptions.d.ts +0 -31
- package/lib/adapter/objectCollectionOptions.d.ts.map +0 -1
- package/lib/adapter/objectCollectionOptions.js +0 -448
- package/lib/adapter/objectCollectionOptions.js.map +0 -1
- package/lib/config/applyAttachmentConstraintOverrides.d.ts +0 -10
- package/lib/config/applyAttachmentConstraintOverrides.d.ts.map +0 -1
- package/lib/config/applyAttachmentConstraintOverrides.js +0 -50
- package/lib/config/applyAttachmentConstraintOverrides.js.map +0 -1
- package/lib/connection.d.ts +0 -38
- package/lib/connection.d.ts.map +0 -1
- package/lib/connection.js +0 -195
- package/lib/connection.js.map +0 -1
- package/lib/installation/createFoundryBackendInstallation.d.ts +0 -29
- package/lib/installation/createFoundryBackendInstallation.d.ts.map +0 -1
- package/lib/installation/createFoundryBackendInstallation.js +0 -60
- package/lib/installation/createFoundryBackendInstallation.js.map +0 -1
- package/lib/installation/index.d.ts +0 -2
- package/lib/installation/index.js +0 -2
- package/lib/meta/actionTypeCollectionOptions.d.ts +0 -14
- package/lib/meta/actionTypeCollectionOptions.d.ts.map +0 -1
- package/lib/meta/actionTypeCollectionOptions.js +0 -58
- package/lib/meta/actionTypeCollectionOptions.js.map +0 -1
- package/lib/meta/convertActionTypeLoadSubsetOptions.d.ts +0 -7
- package/lib/meta/convertActionTypeLoadSubsetOptions.d.ts.map +0 -1
- package/lib/meta/convertActionTypeLoadSubsetOptions.js +0 -84
- package/lib/meta/convertActionTypeLoadSubsetOptions.js.map +0 -1
- package/lib/meta/createFoundryMetaOntologyBackendAdapter.d.ts +0 -11
- package/lib/meta/createFoundryMetaOntologyBackendAdapter.d.ts.map +0 -1
- package/lib/meta/createFoundryMetaOntologyBackendAdapter.js +0 -43
- package/lib/meta/createFoundryMetaOntologyBackendAdapter.js.map +0 -1
- package/lib/meta/entityCollectionOptions.d.ts +0 -24
- package/lib/meta/entityCollectionOptions.d.ts.map +0 -1
- package/lib/meta/entityCollectionOptions.js +0 -69
- package/lib/meta/entityCollectionOptions.js.map +0 -1
- package/lib/meta/queryFunctionTypeCollectionOptions.d.ts +0 -12
- package/lib/meta/queryFunctionTypeCollectionOptions.d.ts.map +0 -1
- package/lib/meta/queryFunctionTypeCollectionOptions.js +0 -59
- package/lib/meta/queryFunctionTypeCollectionOptions.js.map +0 -1
- package/lib/users/createFoundryAdminOntologyRoute.d.ts +0 -55
- package/lib/users/createFoundryAdminOntologyRoute.d.ts.map +0 -1
- package/lib/users/createFoundryAdminOntologyRoute.js +0 -33
- package/lib/users/createFoundryAdminOntologyRoute.js.map +0 -1
- package/lib/users/userCollectionOptions.d.ts +0 -24
- package/lib/users/userCollectionOptions.d.ts.map +0 -1
- package/lib/users/userCollectionOptions.js +0 -94
- package/lib/users/userCollectionOptions.js.map +0 -1
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
//#region src/adapter/likeFilter.ts
|
|
2
|
+
const ALWAYS_TRUE_FILTER = {
|
|
3
|
+
type: "and",
|
|
4
|
+
value: []
|
|
5
|
+
};
|
|
6
|
+
function pushdown(query, safeToNegate = true) {
|
|
7
|
+
return {
|
|
8
|
+
query,
|
|
9
|
+
safeToNegate
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
function parseLikePattern(pattern, literalBackslashes = false) {
|
|
13
|
+
const parts = [];
|
|
14
|
+
let literal = "";
|
|
15
|
+
const flushLiteral = () => {
|
|
16
|
+
if (literal) {
|
|
17
|
+
parts.push({
|
|
18
|
+
type: "literal",
|
|
19
|
+
value: literal
|
|
20
|
+
});
|
|
21
|
+
literal = "";
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
for (let index = 0; index < pattern.length; index++) {
|
|
25
|
+
const character = pattern[index];
|
|
26
|
+
if (character === "\\" && !literalBackslashes) {
|
|
27
|
+
const escaped = pattern[index + 1];
|
|
28
|
+
if (escaped === "%" || escaped === "_" || escaped === "\\") {
|
|
29
|
+
literal += escaped;
|
|
30
|
+
index++;
|
|
31
|
+
} else literal += character;
|
|
32
|
+
} else if (character === "%") {
|
|
33
|
+
flushLiteral();
|
|
34
|
+
parts.push({ type: "many" });
|
|
35
|
+
} else if (character === "_") {
|
|
36
|
+
flushLiteral();
|
|
37
|
+
parts.push({ type: "single" });
|
|
38
|
+
} else literal += character;
|
|
39
|
+
}
|
|
40
|
+
flushLiteral();
|
|
41
|
+
return parts;
|
|
42
|
+
}
|
|
43
|
+
function escapeFoundryWildcardLiteral(value) {
|
|
44
|
+
return value.replace(/[\\*?]/g, "\\$&");
|
|
45
|
+
}
|
|
46
|
+
function convertLikeFilter(field, value, literalBackslashes = false) {
|
|
47
|
+
const parts = parseLikePattern(value.toLowerCase(), literalBackslashes);
|
|
48
|
+
const hasLeadingWildcard = parts[0]?.type === "many";
|
|
49
|
+
const hasTrailingWildcard = parts.at(-1)?.type === "many";
|
|
50
|
+
const propertyIdentifier = fieldPathToPropertyIdentifier(field);
|
|
51
|
+
if (hasLeadingWildcard && hasTrailingWildcard) {
|
|
52
|
+
const queries = parts.flatMap((part) => part.type === "literal" && part.value ? [part.value] : []).map((term) => ({
|
|
53
|
+
type: "containsAllTermsInOrder",
|
|
54
|
+
propertyIdentifier,
|
|
55
|
+
value: term
|
|
56
|
+
}));
|
|
57
|
+
return pushdown(queries.length === 0 ? ALWAYS_TRUE_FILTER : queries.length === 1 ? queries[0] : {
|
|
58
|
+
type: "and",
|
|
59
|
+
value: queries
|
|
60
|
+
}, false);
|
|
61
|
+
}
|
|
62
|
+
return pushdown({
|
|
63
|
+
type: "wildcard",
|
|
64
|
+
propertyIdentifier,
|
|
65
|
+
value: parts.map((part) => {
|
|
66
|
+
if (part.type === "many") return "*";
|
|
67
|
+
if (part.type === "single") return "?";
|
|
68
|
+
return escapeFoundryWildcardLiteral(part.value);
|
|
69
|
+
}).join("")
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
function fieldPathToPropertyIdentifier(fieldPath) {
|
|
73
|
+
if (fieldPath.length === 1) return {
|
|
74
|
+
type: "property",
|
|
75
|
+
apiName: fieldPath[0]
|
|
76
|
+
};
|
|
77
|
+
else if (fieldPath.length === 2) return {
|
|
78
|
+
type: "structField",
|
|
79
|
+
propertyApiName: fieldPath[0],
|
|
80
|
+
structFieldApiName: fieldPath[1]
|
|
81
|
+
};
|
|
82
|
+
throw new Error(`Invalid field path: ${fieldPath.join(".")}`);
|
|
83
|
+
}
|
|
84
|
+
//#endregion
|
|
85
|
+
export { convertLikeFilter };
|
|
86
|
+
|
|
87
|
+
//# sourceMappingURL=likeFilter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"likeFilter.js","names":[],"sources":["../../src/adapter/likeFilter.ts"],"sourcesContent":["import type {\n PropertyApiName,\n PropertyIdentifier,\n SearchJsonQueryV2,\n StructFieldApiName,\n} from \"@osdk/foundry.ontologies\";\n\nconst ALWAYS_TRUE_FILTER: SearchJsonQueryV2 = { type: \"and\", value: [] };\n\ntype LikePatternPart = { type: \"literal\"; value: string } | { type: \"many\" } | { type: \"single\" };\n\ninterface PushdownFilter {\n query: SearchJsonQueryV2;\n safeToNegate: boolean;\n}\n\nfunction pushdown(query: SearchJsonQueryV2, safeToNegate = true): PushdownFilter {\n return { query, safeToNegate };\n}\n\nfunction parseLikePattern(pattern: string, literalBackslashes = false): LikePatternPart[] {\n const parts: LikePatternPart[] = [];\n let literal = \"\";\n\n const flushLiteral = () => {\n if (literal) {\n parts.push({ type: \"literal\", value: literal });\n literal = \"\";\n }\n };\n\n for (let index = 0; index < pattern.length; index++) {\n const character = pattern[index]!;\n if (character === \"\\\\\" && !literalBackslashes) {\n const escaped = pattern[index + 1];\n if (escaped === \"%\" || escaped === \"_\" || escaped === \"\\\\\") {\n literal += escaped;\n index++;\n } else {\n literal += character;\n }\n } else if (character === \"%\") {\n flushLiteral();\n parts.push({ type: \"many\" });\n } else if (character === \"_\") {\n flushLiteral();\n parts.push({ type: \"single\" });\n } else {\n literal += character;\n }\n }\n flushLiteral();\n\n return parts;\n}\n\nfunction escapeFoundryWildcardLiteral(value: string): string {\n return value.replace(/[\\\\*?]/g, \"\\\\$&\");\n}\n\nexport function convertLikeFilter(\n field: readonly (string | number)[],\n value: string,\n literalBackslashes = false\n): PushdownFilter {\n const parts = parseLikePattern(value.toLowerCase(), literalBackslashes);\n const hasLeadingWildcard = parts[0]?.type === \"many\";\n const hasTrailingWildcard = parts.at(-1)?.type === \"many\";\n const propertyIdentifier = fieldPathToPropertyIdentifier(field);\n\n if (hasLeadingWildcard && hasTrailingWildcard) {\n const terms = parts.flatMap((part) => (part.type === \"literal\" && part.value ? [part.value] : []));\n const queries = terms.map<SearchJsonQueryV2>((term) => ({\n // This is Foundry's substring/phrase query. It can over-fetch because\n // wildcard-delimited terms are not required to be adjacent or ordered.\n type: \"containsAllTermsInOrder\",\n propertyIdentifier,\n value: term,\n }));\n const query: SearchJsonQueryV2 =\n queries.length === 0\n ? ALWAYS_TRUE_FILTER\n : queries.length === 1\n ? queries[0]!\n : { type: \"and\", value: queries };\n\n // Contains is an approximation of SQL LIKE. Negating this superset\n // would produce a subset and could hide exact matches.\n return pushdown(query, false);\n }\n\n const wildcard = parts\n .map((part) => {\n if (part.type === \"many\") return \"*\";\n if (part.type === \"single\") return \"?\";\n return escapeFoundryWildcardLiteral(part.value);\n })\n .join(\"\");\n\n return pushdown({\n type: \"wildcard\",\n propertyIdentifier,\n value: wildcard,\n });\n}\n\nfunction fieldPathToPropertyIdentifier(fieldPath: readonly (string | number)[]): PropertyIdentifier {\n if (fieldPath.length === 1) {\n return {\n type: \"property\",\n apiName: fieldPath[0]! as PropertyApiName,\n };\n } else if (fieldPath.length === 2) {\n return {\n type: \"structField\",\n propertyApiName: fieldPath[0]! as PropertyApiName,\n structFieldApiName: fieldPath[1]! as StructFieldApiName,\n };\n }\n throw new Error(`Invalid field path: ${fieldPath.join(\".\")}`);\n}\n"],"mappings":";AAOA,MAAM,qBAAwC;CAAE,MAAM;CAAO,OAAO,CAAC;AAAE;AASvE,SAAS,SAAS,OAA0B,eAAe,MAAsB;CAC7E,OAAO;EAAE;EAAO;CAAa;AACjC;AAEA,SAAS,iBAAiB,SAAiB,qBAAqB,OAA0B;CACtF,MAAM,QAA2B,CAAC;CAClC,IAAI,UAAU;CAEd,MAAM,qBAAqB;EACvB,IAAI,SAAS;GACT,MAAM,KAAK;IAAE,MAAM;IAAW,OAAO;GAAQ,CAAC;GAC9C,UAAU;EACd;CACJ;CAEA,KAAK,IAAI,QAAQ,GAAG,QAAQ,QAAQ,QAAQ,SAAS;EACjD,MAAM,YAAY,QAAQ;EAC1B,IAAI,cAAc,QAAQ,CAAC,oBAAoB;GAC3C,MAAM,UAAU,QAAQ,QAAQ;GAChC,IAAI,YAAY,OAAO,YAAY,OAAO,YAAY,MAAM;IACxD,WAAW;IACX;GACJ,OACI,WAAW;EAEnB,OAAO,IAAI,cAAc,KAAK;GAC1B,aAAa;GACb,MAAM,KAAK,EAAE,MAAM,OAAO,CAAC;EAC/B,OAAO,IAAI,cAAc,KAAK;GAC1B,aAAa;GACb,MAAM,KAAK,EAAE,MAAM,SAAS,CAAC;EACjC,OACI,WAAW;CAEnB;CACA,aAAa;CAEb,OAAO;AACX;AAEA,SAAS,6BAA6B,OAAuB;CACzD,OAAO,MAAM,QAAQ,WAAW,MAAM;AAC1C;AAEA,SAAgB,kBACZ,OACA,OACA,qBAAqB,OACP;CACd,MAAM,QAAQ,iBAAiB,MAAM,YAAY,GAAG,kBAAkB;CACtE,MAAM,qBAAqB,MAAM,EAAE,EAAE,SAAS;CAC9C,MAAM,sBAAsB,MAAM,GAAG,EAAE,CAAC,EAAE,SAAS;CACnD,MAAM,qBAAqB,8BAA8B,KAAK;CAE9D,IAAI,sBAAsB,qBAAqB;EAE3C,MAAM,UADQ,MAAM,SAAS,SAAU,KAAK,SAAS,aAAa,KAAK,QAAQ,CAAC,KAAK,KAAK,IAAI,CAAC,CAC3E,CAAC,CAAC,KAAwB,UAAU;GAGpD,MAAM;GACN;GACA,OAAO;EACX,EAAE;EAUF,OAAO,SARH,QAAQ,WAAW,IACb,qBACA,QAAQ,WAAW,IACjB,QAAQ,KACR;GAAE,MAAM;GAAO,OAAO;EAAQ,GAInB,KAAK;CAChC;CAUA,OAAO,SAAS;EACZ,MAAM;EACN;EACA,OAXa,MACZ,KAAK,SAAS;GACX,IAAI,KAAK,SAAS,QAAQ,OAAO;GACjC,IAAI,KAAK,SAAS,UAAU,OAAO;GACnC,OAAO,6BAA6B,KAAK,KAAK;EAClD,CAAC,CAAC,CACD,KAAK,EAKQ;CAClB,CAAC;AACL;AAEA,SAAS,8BAA8B,WAA6D;CAChG,IAAI,UAAU,WAAW,GACrB,OAAO;EACH,MAAM;EACN,SAAS,UAAU;CACvB;MACG,IAAI,UAAU,WAAW,GAC5B,OAAO;EACH,MAAM;EACN,iBAAiB,UAAU;EAC3B,oBAAoB,UAAU;CAClC;CAEJ,MAAM,IAAI,MAAM,uBAAuB,UAAU,KAAK,GAAG,GAAG;AAChE"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { OntologyClient } from "@party-stack/foundry-client";
|
|
2
|
+
import { Effect, Stream, Types } from "effect";
|
|
3
|
+
import { ActionReceipt, BackendAttachments, BackendError, BackendSnapshot } from "@party-stack/ontology-backend";
|
|
4
|
+
import { OntologyIR } from "@party-stack/ontology-spec";
|
|
5
|
+
import { ByteInput } from "@party-stack/ontology-storage/blobs";
|
|
6
|
+
import { Query } from "@party-stack/ontology-storage";
|
|
7
|
+
import { attachment } from "@party-stack/ontology-spec/values";
|
|
8
|
+
//#region src/adapter/makeFoundryOntologyBackend.d.ts
|
|
9
|
+
type PartialAttachmentMetadata = Types.Mutable<Effect.Success<ReturnType<BackendAttachments["metadata"]>>>;
|
|
10
|
+
export declare function isFoundryNotFoundError(error: unknown): boolean;
|
|
11
|
+
export interface FoundryUsersIntegration {
|
|
12
|
+
objectType: string;
|
|
13
|
+
loadSubset(client: OntologyClient, query: Query, signal: AbortSignal): Promise<BackendSnapshot>;
|
|
14
|
+
getAttachmentContent?(client: OntologyClient, attachment: attachment): Promise<ByteInput | undefined>;
|
|
15
|
+
getAttachmentMetadata?(client: OntologyClient, attachment: attachment, selection: readonly (keyof PartialAttachmentMetadata)[]): Promise<PartialAttachmentMetadata | undefined>;
|
|
16
|
+
}
|
|
17
|
+
export interface FoundryOntologyBackendOptions {
|
|
18
|
+
client: OntologyClient;
|
|
19
|
+
ir: OntologyIR;
|
|
20
|
+
users?: FoundryUsersIntegration;
|
|
21
|
+
watch?: boolean;
|
|
22
|
+
context?: Record<string, unknown>;
|
|
23
|
+
}
|
|
24
|
+
export declare const makeFoundryOntologyBackend: (opts: FoundryOntologyBackendOptions) => Effect.Effect<{
|
|
25
|
+
name: string;
|
|
26
|
+
sourceId: string;
|
|
27
|
+
supportsIdempotency: boolean;
|
|
28
|
+
maintenance?: Effect.Effect<void, BackendError>;
|
|
29
|
+
loadSubset: (subset: import("@party-stack/ontology-spec/query").ObjectSubset) => Effect.Effect<BackendSnapshot, BackendError>;
|
|
30
|
+
query: (document: import("@party-stack/ontology-spec").QueryDocument, options?: {
|
|
31
|
+
readonly inputs?: Record<string, unknown>;
|
|
32
|
+
}) => Effect.Effect<Record<string, unknown>, BackendError>;
|
|
33
|
+
subscribeSelection?: (selection: import("@party-stack/ontology-backend").ObjectSelection, policy?: import("@party-stack/ontology-backend/delivery").DeliveryPolicy, resume?: import("@party-stack/ontology-backend/delivery").DeliveryPosition) => Effect.Effect<import("@party-stack/ontology-backend/delivery").DeliverySubscription, BackendError, import("effect/Scope").Scope>;
|
|
34
|
+
acknowledgeDelivery?: (position: import("@party-stack/ontology-backend/delivery").DeliveryPosition) => Effect.Effect<void, BackendError>;
|
|
35
|
+
resolveActionParameters?: (name: string, parameters: Record<string, unknown>) => Effect.Effect<Record<string, unknown>, BackendError>;
|
|
36
|
+
watchSubset?: (subset: import("@party-stack/ontology-spec/query").ObjectSubset) => Effect.Effect<Stream.Stream<import("@party-stack/ontology-backend").SubsetWatchEvent, BackendError>, BackendError, import("effect/Scope").Scope> | undefined;
|
|
37
|
+
refresh?: (subset: import("@party-stack/ontology-spec/query").ObjectSubset) => {
|
|
38
|
+
readonly pollIntervalMs?: number | false;
|
|
39
|
+
readonly maxCoverageAgeMs?: number;
|
|
40
|
+
} | undefined;
|
|
41
|
+
applyAction: (invocation: import("@party-stack/ontology-backend").ActionRequest) => Effect.Effect<ActionReceipt, BackendError>;
|
|
42
|
+
queryFunction: (name: string, parameters: Record<string, unknown>) => Effect.Effect<unknown, BackendError>;
|
|
43
|
+
changes?: {
|
|
44
|
+
readonly pull: (options: {
|
|
45
|
+
readonly cursor?: string;
|
|
46
|
+
readonly limit?: number;
|
|
47
|
+
}) => Effect.Effect<import("@party-stack/ontology-backend").BackendChangePage, BackendError>;
|
|
48
|
+
readonly watch?: Effect.Effect<Stream.Stream<void, BackendError>, BackendError, import("effect/Scope").Scope>;
|
|
49
|
+
};
|
|
50
|
+
attachments?: BackendAttachments;
|
|
51
|
+
encrypted?: import("@party-stack/ontology-backend").BackendEncryptedValues;
|
|
52
|
+
validateAction: (name: string, parameters: Record<string, unknown>, settings?: {
|
|
53
|
+
readonly knownParameters?: readonly string[];
|
|
54
|
+
}) => Effect.Effect<{
|
|
55
|
+
readonly certain: false;
|
|
56
|
+
} | {
|
|
57
|
+
readonly certain: true;
|
|
58
|
+
readonly value: {
|
|
59
|
+
readonly kind: "ok";
|
|
60
|
+
readonly value: void;
|
|
61
|
+
} | {
|
|
62
|
+
readonly kind: "err";
|
|
63
|
+
readonly value: readonly {
|
|
64
|
+
readonly message: string;
|
|
65
|
+
readonly path?: readonly (string | number)[] | undefined;
|
|
66
|
+
readonly code?: string | undefined;
|
|
67
|
+
readonly category?: "custom" | "input" | "reference" | undefined;
|
|
68
|
+
readonly source?: "parameter" | "submission" | "user-facing" | undefined;
|
|
69
|
+
readonly messageSource?: "configured" | "standard" | undefined;
|
|
70
|
+
}[];
|
|
71
|
+
};
|
|
72
|
+
}, BackendError<"Conflict" | "Forbidden" | "HistoryExpired" | "Internal" | "InvalidConfiguration" | "InvalidRequest" | "InvalidResponse" | "NotFound" | "NotImplemented" | "RateLimited" | "ResultExpired" | "SchemaMismatch" | "SessionExpired" | "SessionReplaced" | "SourceMismatch" | "Unauthenticated" | "Unavailable" | "ValidationFailed" | "ViewReplaced">, never>;
|
|
73
|
+
}, BackendError<"Conflict" | "Forbidden" | "HistoryExpired" | "Internal" | "InvalidConfiguration" | "InvalidRequest" | "InvalidResponse" | "NotFound" | "NotImplemented" | "RateLimited" | "ResultExpired" | "SchemaMismatch" | "SessionExpired" | "SessionReplaced" | "SourceMismatch" | "Unauthenticated" | "Unavailable" | "ValidationFailed" | "ViewReplaced">, import("effect/Scope").Scope>;
|
|
74
|
+
//#endregion
|
|
75
|
+
export {};
|
|
76
|
+
//# sourceMappingURL=makeFoundryOntologyBackend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"makeFoundryOntologyBackend.d.ts","names":[],"sources":["../../src/adapter/makeFoundryOntologyBackend.ts"],"mappings":";;;;;;;;KA4CK,4BAA4B,MAAM,QAAQ,OAAO,QAAQ,WAAW;wBAiBzD,uBAAuB;iBAWtB;EACb;EACA,WAAW,QAAQ,gBAAgB,OAAO,OAAO,QAAQ,cAAc,QAAQ;EAC/E,sBAAsB,QAAQ,gBAAgB,YAAY,aAAa,QAAQ;EAC/E,uBACI,QAAQ,gBACR,YAAY,YACZ,2BAA2B,+BAC5B,QAAQ;;iBA2HE;EACb,QAAQ;EACR,IAAI;EACJ,QAAQ;EACR;EACA,UAAU;;qBAgBD,6BAA0B,MAAA,kCAAA,OAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6jBjB,iBAAA,cAAM,YACA,yBAAuB;aACb;QAAqC,OAAA;;;;;;;;;;;;;;;;;;;GAUzE,wXAAA"}
|