@ecodev/natural 53.4.0 → 54.0.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/esm2022/lib/classes/apollo-utils.mjs +22 -1
- package/esm2022/lib/classes/signing.mjs +36 -0
- package/esm2022/lib/modules/dropdown-components/type-boolean/type-boolean.component.mjs +1 -1
- package/esm2022/public-api.mjs +3 -2
- package/fesm2022/ecodev-natural.mjs +54 -2
- package/fesm2022/ecodev-natural.mjs.map +1 -1
- package/lib/classes/apollo-utils.d.ts +10 -1
- package/lib/classes/signing.d.ts +7 -0
- package/package.json +3 -1
- package/public-api.d.ts +2 -1
|
@@ -1,5 +1,12 @@
|
|
|
1
|
+
import { ApolloLink } from '@apollo/client/core';
|
|
1
2
|
import { isObject } from 'lodash-es';
|
|
2
3
|
import { formatIsoDateTime } from './utility';
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
5
|
+
// @ts-expect-error
|
|
6
|
+
import extractFiles from 'extract-files/extractFiles.mjs';
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
8
|
+
// @ts-expect-error
|
|
9
|
+
import isExtractableFile from 'extract-files/isExtractableFile.mjs';
|
|
3
10
|
function isFile(value) {
|
|
4
11
|
return ((typeof File !== 'undefined' && value instanceof File) ||
|
|
5
12
|
(typeof Blob !== 'undefined' && value instanceof Blob) ||
|
|
@@ -34,4 +41,18 @@ export function hasFilesAndProcessDate(variables) {
|
|
|
34
41
|
export function isMutation(query) {
|
|
35
42
|
return query.definitions.some(definition => definition.kind === 'OperationDefinition' && definition.operation === 'mutation');
|
|
36
43
|
}
|
|
37
|
-
|
|
44
|
+
export const naturalExtractFiles = body => extractFiles(body, isExtractableFile);
|
|
45
|
+
/**
|
|
46
|
+
* Create an Apollo link that supports batched queries and file uploads.
|
|
47
|
+
*
|
|
48
|
+
* File uploads and mutations are never batched.
|
|
49
|
+
*/
|
|
50
|
+
export function createHttpLink(httpLink, httpBatchLink, options) {
|
|
51
|
+
// If the query has no file, batch it, otherwise upload only that query
|
|
52
|
+
return ApolloLink.split(operation => hasFilesAndProcessDate(operation.variables) || isMutation(operation.query), httpLink.create({
|
|
53
|
+
...options,
|
|
54
|
+
useMultipart: true,
|
|
55
|
+
extractFiles: naturalExtractFiles,
|
|
56
|
+
}), httpBatchLink.create(options));
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBvbGxvLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmF0dXJhbC9zcmMvbGliL2NsYXNzZXMvYXBvbGxvLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQWUsTUFBTSxxQkFBcUIsQ0FBQztBQUM3RCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sV0FBVyxDQUFDO0FBQ25DLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLFdBQVcsQ0FBQztBQUc1Qyw2REFBNkQ7QUFDN0QsbUJBQW1CO0FBQ25CLE9BQU8sWUFBWSxNQUFNLGdDQUFnQyxDQUFDO0FBQzFELDZEQUE2RDtBQUM3RCxtQkFBbUI7QUFDbkIsT0FBTyxpQkFBaUIsTUFBTSxxQ0FBcUMsQ0FBQztBQUVwRSxTQUFTLE1BQU0sQ0FBQyxLQUFjO0lBQzFCLE9BQU8sQ0FDSCxDQUFDLE9BQU8sSUFBSSxLQUFLLFdBQVcsSUFBSSxLQUFLLFlBQVksSUFBSSxDQUFDO1FBQ3RELENBQUMsT0FBTyxJQUFJLEtBQUssV0FBVyxJQUFJLEtBQUssWUFBWSxJQUFJLENBQUM7UUFDdEQsQ0FBQyxPQUFPLFFBQVEsS0FBSyxXQUFXLElBQUksS0FBSyxZQUFZLFFBQVEsQ0FBQyxDQUNqRSxDQUFDO0FBQ04sQ0FBQztBQUVEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxTQUFrQjtJQUNyRCxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDdEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRTtRQUN0QixPQUFPLEtBQUssQ0FBQztLQUNoQjtJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQ3JDLElBQUksS0FBSyxZQUFZLElBQUksRUFBRTtZQUN2Qiw2REFBNkQ7WUFDN0QsS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNqRDtRQUVELElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2YsU0FBUyxHQUFHLElBQUksQ0FBQztTQUNwQjtRQUVELElBQUksc0JBQXNCLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDL0IsU0FBUyxHQUFHLElBQUksQ0FBQztTQUNwQjtJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxTQUFTLENBQUM7QUFDckIsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FBQyxLQUFtQjtJQUMxQyxPQUFPLEtBQUssQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUN6QixVQUFVLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUsscUJBQXFCLElBQUksVUFBVSxDQUFDLFNBQVMsS0FBSyxVQUFVLENBQ2pHLENBQUM7QUFDTixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQWlCLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0FBRS9GOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUFDLFFBQWtCLEVBQUUsYUFBNEIsRUFBRSxPQUFnQjtJQUM3Rix1RUFBdUU7SUFDdkUsT0FBTyxVQUFVLENBQUMsS0FBSyxDQUNuQixTQUFTLENBQUMsRUFBRSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxVQUFVLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUN2RixRQUFRLENBQUMsTUFBTSxDQUFDO1FBQ1osR0FBRyxPQUFPO1FBQ1YsWUFBWSxFQUFFLElBQUk7UUFDbEIsWUFBWSxFQUFFLG1CQUFtQjtLQUNwQyxDQUFDLEVBQ0YsYUFBYSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FDaEMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0Fwb2xsb0xpbmssIERvY3VtZW50Tm9kZX0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XG5pbXBvcnQge2lzT2JqZWN0fSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHtmb3JtYXRJc29EYXRlVGltZX0gZnJvbSAnLi91dGlsaXR5JztcbmltcG9ydCB7SHR0cEJhdGNoTGluaywgSHR0cExpbmssIE9wdGlvbnN9IGZyb20gJ2Fwb2xsby1hbmd1bGFyL2h0dHAnO1xuaW1wb3J0IHtFeHRyYWN0RmlsZXN9IGZyb20gJ2Fwb2xsby1hbmd1bGFyL2h0dHAvdHlwZXMnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuLy8gQHRzLWV4cGVjdC1lcnJvclxuaW1wb3J0IGV4dHJhY3RGaWxlcyBmcm9tICdleHRyYWN0LWZpbGVzL2V4dHJhY3RGaWxlcy5tanMnO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuLy8gQHRzLWV4cGVjdC1lcnJvclxuaW1wb3J0IGlzRXh0cmFjdGFibGVGaWxlIGZyb20gJ2V4dHJhY3QtZmlsZXMvaXNFeHRyYWN0YWJsZUZpbGUubWpzJztcblxuZnVuY3Rpb24gaXNGaWxlKHZhbHVlOiB1bmtub3duKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgKHR5cGVvZiBGaWxlICE9PSAndW5kZWZpbmVkJyAmJiB2YWx1ZSBpbnN0YW5jZW9mIEZpbGUpIHx8XG4gICAgICAgICh0eXBlb2YgQmxvYiAhPT0gJ3VuZGVmaW5lZCcgJiYgdmFsdWUgaW5zdGFuY2VvZiBCbG9iKSB8fFxuICAgICAgICAodHlwZW9mIEZpbGVMaXN0ICE9PSAndW5kZWZpbmVkJyAmJiB2YWx1ZSBpbnN0YW5jZW9mIEZpbGVMaXN0KVxuICAgICk7XG59XG5cbi8qKlxuICogRGV0ZWN0IGlmIHRoZSBnaXZlbiB2YXJpYWJsZXMgaGF2ZSBhIGZpbGUgdG8gYmUgdXBsb2FkZWQgb3Igbm90LCBhbmRcbiAqIGFsc28gY29udmVydCBkYXRlIHRvIGJlIHNlcmlhbGl6ZWQgd2l0aCB0aGVpciB0aW1lem9uZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhc0ZpbGVzQW5kUHJvY2Vzc0RhdGUodmFyaWFibGVzOiB1bmtub3duKTogYm9vbGVhbiB7XG4gICAgbGV0IGZpbGVGb3VuZCA9IGZhbHNlO1xuICAgIGlmICghaXNPYmplY3QodmFyaWFibGVzKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgT2JqZWN0LnZhbHVlcyh2YXJpYWJsZXMpLmZvckVhY2godmFsdWUgPT4ge1xuICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICAvLyBSZXBsYWNlIG5hdGl2ZSB0b0pTT04oKSBmdW5jdGlvbiBieSBvdXIgb3duIGltcGxlbWVudGF0aW9uXG4gICAgICAgICAgICB2YWx1ZS50b0pTT04gPSAoKSA9PiBmb3JtYXRJc29EYXRlVGltZSh2YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNGaWxlKHZhbHVlKSkge1xuICAgICAgICAgICAgZmlsZUZvdW5kID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChoYXNGaWxlc0FuZFByb2Nlc3NEYXRlKHZhbHVlKSkge1xuICAgICAgICAgICAgZmlsZUZvdW5kID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIGZpbGVGb3VuZDtcbn1cblxuLyoqXG4gKiBXaGV0aGVyIHRoZSBnaXZlbiBHcmFwaFFMIGRvY3VtZW50IGNvbnRhaW5zIGF0IGxlYXN0IG9uZSBtdXRhdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNNdXRhdGlvbihxdWVyeTogRG9jdW1lbnROb2RlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHF1ZXJ5LmRlZmluaXRpb25zLnNvbWUoXG4gICAgICAgIGRlZmluaXRpb24gPT4gZGVmaW5pdGlvbi5raW5kID09PSAnT3BlcmF0aW9uRGVmaW5pdGlvbicgJiYgZGVmaW5pdGlvbi5vcGVyYXRpb24gPT09ICdtdXRhdGlvbicsXG4gICAgKTtcbn1cblxuZXhwb3J0IGNvbnN0IG5hdHVyYWxFeHRyYWN0RmlsZXM6IEV4dHJhY3RGaWxlcyA9IGJvZHkgPT4gZXh0cmFjdEZpbGVzKGJvZHksIGlzRXh0cmFjdGFibGVGaWxlKTtcblxuLyoqXG4gKiBDcmVhdGUgYW4gQXBvbGxvIGxpbmsgdGhhdCBzdXBwb3J0cyBiYXRjaGVkIHF1ZXJpZXMgYW5kIGZpbGUgdXBsb2Fkcy5cbiAqXG4gKiBGaWxlIHVwbG9hZHMgYW5kIG11dGF0aW9ucyBhcmUgbmV2ZXIgYmF0Y2hlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUh0dHBMaW5rKGh0dHBMaW5rOiBIdHRwTGluaywgaHR0cEJhdGNoTGluazogSHR0cEJhdGNoTGluaywgb3B0aW9uczogT3B0aW9ucyk6IEFwb2xsb0xpbmsge1xuICAgIC8vIElmIHRoZSBxdWVyeSBoYXMgbm8gZmlsZSwgYmF0Y2ggaXQsIG90aGVyd2lzZSB1cGxvYWQgb25seSB0aGF0IHF1ZXJ5XG4gICAgcmV0dXJuIEFwb2xsb0xpbmsuc3BsaXQoXG4gICAgICAgIG9wZXJhdGlvbiA9PiBoYXNGaWxlc0FuZFByb2Nlc3NEYXRlKG9wZXJhdGlvbi52YXJpYWJsZXMpIHx8IGlzTXV0YXRpb24ob3BlcmF0aW9uLnF1ZXJ5KSxcbiAgICAgICAgaHR0cExpbmsuY3JlYXRlKHtcbiAgICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgICAgICB1c2VNdWx0aXBhcnQ6IHRydWUsXG4gICAgICAgICAgICBleHRyYWN0RmlsZXM6IG5hdHVyYWxFeHRyYWN0RmlsZXMsXG4gICAgICAgIH0pLFxuICAgICAgICBodHRwQmF0Y2hMaW5rLmNyZWF0ZShvcHRpb25zKSxcbiAgICApO1xufVxuIl19
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { HmacSHA256 } from 'crypto-es/lib/sha256';
|
|
2
|
+
function getOperations(req) {
|
|
3
|
+
if (req.body instanceof FormData) {
|
|
4
|
+
const operations = req.body.get('operations');
|
|
5
|
+
if (typeof operations !== 'string') {
|
|
6
|
+
throw new Error('Cannot sign a GraphQL query that is using FormData but that is missing the key `operations`');
|
|
7
|
+
}
|
|
8
|
+
return operations;
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
return JSON.stringify(req.body);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Sign all HTTP POST requests that are GraphQL queries against `/graphql` endpoint with a custom signature.
|
|
16
|
+
*
|
|
17
|
+
* The server will validate the signature before executing the GraphQL query.
|
|
18
|
+
*/
|
|
19
|
+
export function graphqlQuerySigner(key) {
|
|
20
|
+
return (req, next) => {
|
|
21
|
+
const mustSign = req.method === 'POST' && req.url.match(/\/graphql(\?|$)/);
|
|
22
|
+
if (!mustSign) {
|
|
23
|
+
return next(req);
|
|
24
|
+
}
|
|
25
|
+
const operations = getOperations(req);
|
|
26
|
+
const timestamp = Math.round(Date.now() / 1000);
|
|
27
|
+
const payload = timestamp + operations;
|
|
28
|
+
const hash = HmacSHA256(payload, key).toString();
|
|
29
|
+
const header = `v1.${timestamp}.${hash}`;
|
|
30
|
+
const signedRequest = req.clone({
|
|
31
|
+
headers: req.headers.set('Authorization', header),
|
|
32
|
+
});
|
|
33
|
+
return next(signedRequest);
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9jbGFzc2VzL3NpZ25pbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRWhELFNBQVMsYUFBYSxDQUFDLEdBQXlCO0lBQzVDLElBQUksR0FBRyxDQUFDLElBQUksWUFBWSxRQUFRLEVBQUU7UUFDOUIsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDOUMsSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLEVBQUU7WUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FDWCw2RkFBNkYsQ0FDaEcsQ0FBQztTQUNMO1FBQ0QsT0FBTyxVQUFVLENBQUM7S0FDckI7U0FBTTtRQUNILE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDbkM7QUFDTCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxHQUFXO0lBQzFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7UUFDakIsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLE1BQU0sS0FBSyxNQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ1gsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDcEI7UUFFRCxNQUFNLFVBQVUsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDaEQsTUFBTSxPQUFPLEdBQUcsU0FBUyxHQUFHLFVBQVUsQ0FBQztRQUN2QyxNQUFNLElBQUksR0FBRyxVQUFVLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pELE1BQU0sTUFBTSxHQUFHLE1BQU0sU0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBRXpDLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7WUFDNUIsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUM7U0FDcEQsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDL0IsQ0FBQyxDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cEludGVyY2VwdG9yRm4sIEh0dHBSZXF1ZXN0fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0htYWNTSEEyNTZ9IGZyb20gJ2NyeXB0by1lcy9saWIvc2hhMjU2JztcblxuZnVuY3Rpb24gZ2V0T3BlcmF0aW9ucyhyZXE6IEh0dHBSZXF1ZXN0PHVua25vd24+KTogc3RyaW5nIHtcbiAgICBpZiAocmVxLmJvZHkgaW5zdGFuY2VvZiBGb3JtRGF0YSkge1xuICAgICAgICBjb25zdCBvcGVyYXRpb25zID0gcmVxLmJvZHkuZ2V0KCdvcGVyYXRpb25zJyk7XG4gICAgICAgIGlmICh0eXBlb2Ygb3BlcmF0aW9ucyAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAnQ2Fubm90IHNpZ24gYSBHcmFwaFFMIHF1ZXJ5IHRoYXQgaXMgdXNpbmcgRm9ybURhdGEgYnV0IHRoYXQgaXMgbWlzc2luZyB0aGUga2V5IGBvcGVyYXRpb25zYCcsXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBvcGVyYXRpb25zO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShyZXEuYm9keSk7XG4gICAgfVxufVxuXG4vKipcbiAqIFNpZ24gYWxsIEhUVFAgUE9TVCByZXF1ZXN0cyB0aGF0IGFyZSBHcmFwaFFMIHF1ZXJpZXMgYWdhaW5zdCBgL2dyYXBocWxgIGVuZHBvaW50IHdpdGggYSBjdXN0b20gc2lnbmF0dXJlLlxuICpcbiAqIFRoZSBzZXJ2ZXIgd2lsbCB2YWxpZGF0ZSB0aGUgc2lnbmF0dXJlIGJlZm9yZSBleGVjdXRpbmcgdGhlIEdyYXBoUUwgcXVlcnkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBncmFwaHFsUXVlcnlTaWduZXIoa2V5OiBzdHJpbmcpOiBIdHRwSW50ZXJjZXB0b3JGbiB7XG4gICAgcmV0dXJuIChyZXEsIG5leHQpID0+IHtcbiAgICAgICAgY29uc3QgbXVzdFNpZ24gPSByZXEubWV0aG9kID09PSAnUE9TVCcgJiYgcmVxLnVybC5tYXRjaCgvXFwvZ3JhcGhxbChcXD98JCkvKTtcbiAgICAgICAgaWYgKCFtdXN0U2lnbikge1xuICAgICAgICAgICAgcmV0dXJuIG5leHQocmVxKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG9wZXJhdGlvbnMgPSBnZXRPcGVyYXRpb25zKHJlcSk7XG4gICAgICAgIGNvbnN0IHRpbWVzdGFtcCA9IE1hdGgucm91bmQoRGF0ZS5ub3coKSAvIDEwMDApO1xuICAgICAgICBjb25zdCBwYXlsb2FkID0gdGltZXN0YW1wICsgb3BlcmF0aW9ucztcbiAgICAgICAgY29uc3QgaGFzaCA9IEhtYWNTSEEyNTYocGF5bG9hZCwga2V5KS50b1N0cmluZygpO1xuICAgICAgICBjb25zdCBoZWFkZXIgPSBgdjEuJHt0aW1lc3RhbXB9LiR7aGFzaH1gO1xuXG4gICAgICAgIGNvbnN0IHNpZ25lZFJlcXVlc3QgPSByZXEuY2xvbmUoe1xuICAgICAgICAgICAgaGVhZGVyczogcmVxLmhlYWRlcnMuc2V0KCdBdXRob3JpemF0aW9uJywgaGVhZGVyKSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIG5leHQoc2lnbmVkUmVxdWVzdCk7XG4gICAgfTtcbn1cbiJdfQ==
|
|
@@ -39,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.2", ngImpor
|
|
|
39
39
|
type: Inject,
|
|
40
40
|
args: [NATURAL_DROPDOWN_DATA]
|
|
41
41
|
}] }, { type: i1.NaturalDropdownRef }]; } });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1ib29sZWFuLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL2xpYi9tb2R1bGVzL2Ryb3Bkb3duLWNvbXBvbmVudHMvdHlwZS1ib29sZWFuL3R5cGUtYm9vbGVhbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uYXR1cmFsL3NyYy9saWIvbW9kdWxlcy9kcm9wZG93bi1jb21wb25lbnRzL3R5cGUtb3B0aW9ucy90eXBlLW9wdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDMUQsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEQsT0FBTyxFQUFDLFdBQVcsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBQyxxQkFBcUIsRUFBc0IsTUFBTSxrREFBa0QsQ0FBQztBQUU1RyxPQUFPLEVBQUMsb0JBQW9CLEVBQTJCLE1BQU0sd0NBQXdDLENBQUM7QUFFdEcsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0saUNBQWlDLENBQUM7Ozs7O0FBWXRFLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxvQkFBb0I7SUFDMUQsWUFDbUMsSUFBbUQsRUFDbEYsV0FBK0I7UUFFL0IsMEVBQTBFO1FBQzFFLE1BQU0sYUFBYSxHQUE2QjtZQUM1QyxPQUFPLEVBQUU7Z0JBQ0w7b0JBQ0ksT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCO29CQUM3QyxTQUFTLEVBQUUsRUFBQyxLQUFLLEVBQUUsRUFBQyxLQUFLLEVBQUUsSUFBSSxFQUFDLEVBQUM7aUJBQ3BDO2dCQUNEO29CQUNJLE9BQU8sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQjtvQkFDL0MsU0FBUyxFQUFFLEVBQUMsS0FBSyxFQUFFLEVBQUMsS0FBSyxFQUFFLEtBQUssRUFBQyxFQUFDO2lCQUNyQzthQUNKO1NBQ0osQ0FBQztRQUVGLE1BQU0sZUFBZSxHQUFrRDtZQUNuRSxHQUFHLElBQUk7WUFDUCxHQUFHLEVBQUMsYUFBYSxFQUFFLGFBQWEsRUFBQztTQUNwQyxDQUFDO1FBRUYsS0FBSyxDQUFDLGVBQWUsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN4QyxDQUFDOzhHQXpCUSxvQkFBb0Isa0JBRWpCLHFCQUFxQjtrR0FGeEIsb0JBQW9CLCtGQ25CakMsd09BS0EsMkNEWWMsV0FBVyxzSUFBRSxtQkFBbUIsa05BQVEsS0FBSyxrSEFBRSxxQkFBcUIsc2hCQUFFLFlBQVk7OzJGQUVuRixvQkFBb0I7a0JBTGhDLFNBQVM7aUNBRU0sSUFBSSxXQUNQLENBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUUsWUFBWSxDQUFDOzswQkFJeEYsTUFBTTsyQkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbW1vbk1vZHVsZSwgTmdGb3IsIE5nSWZ9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0NvbXBvbmVudCwgSW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Rm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7TkFUVVJBTF9EUk9QRE9XTl9EQVRBLCBOYXR1cmFsRHJvcGRvd25EYXRhfSBmcm9tICcuLi8uLi9zZWFyY2gvZHJvcGRvd24tY29udGFpbmVyL2Ryb3Bkb3duLnNlcnZpY2UnO1xuaW1wb3J0IHtEcm9wZG93bkNvbXBvbmVudH0gZnJvbSAnLi4vLi4vc2VhcmNoL3R5cGVzL2Ryb3Bkb3duLWNvbXBvbmVudCc7XG5pbXBvcnQge1R5cGVPcHRpb25zQ29tcG9uZW50LCBUeXBlT3B0aW9uc0NvbmZpZ3VyYXRpb259IGZyb20gJy4uL3R5cGUtb3B0aW9ucy90eXBlLW9wdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7TmF0dXJhbERyb3Bkb3duUmVmfSBmcm9tICcuLi8uLi9zZWFyY2gvZHJvcGRvd24tY29udGFpbmVyL2Ryb3Bkb3duLXJlZic7XG5pbXBvcnQge01hdEJ1dHRvblRvZ2dsZU1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uLXRvZ2dsZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZUJvb2xlYW5Db25maWd1cmF0aW9uIHtcbiAgICBkaXNwbGF5V2hlbkFjdGl2ZTogc3RyaW5nO1xuICAgIGRpc3BsYXlXaGVuSW5hY3RpdmU6IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6ICcuLi90eXBlLW9wdGlvbnMvdHlwZS1vcHRpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgTmdJZiwgTmdGb3IsIE1hdEJ1dHRvblRvZ2dsZU1vZHVsZSwgQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgVHlwZUJvb2xlYW5Db21wb25lbnQgZXh0ZW5kcyBUeXBlT3B0aW9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIERyb3Bkb3duQ29tcG9uZW50IHtcbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoTkFUVVJBTF9EUk9QRE9XTl9EQVRBKSBkYXRhOiBOYXR1cmFsRHJvcGRvd25EYXRhPFR5cGVCb29sZWFuQ29uZmlndXJhdGlvbj4sXG4gICAgICAgIGRyb3Bkb3duUmVmOiBOYXR1cmFsRHJvcGRvd25SZWYsXG4gICAgKSB7XG4gICAgICAgIC8vIFNldCB1cCBvcHRpb25zIGZyb20gaGFyZGNvZGVkIGNvbmRpdGlvbnMgd2l0aCBjdXN0b20gbGFiZWxzIGZyb20gY29uZmlnXG4gICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb246IFR5cGVPcHRpb25zQ29uZmlndXJhdGlvbiA9IHtcbiAgICAgICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGRhdGEuY29uZmlndXJhdGlvbi5kaXNwbGF5V2hlbkFjdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uOiB7ZXF1YWw6IHt2YWx1ZTogdHJ1ZX19LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBkYXRhLmNvbmZpZ3VyYXRpb24uZGlzcGxheVdoZW5JbmFjdGl2ZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZGl0aW9uOiB7ZXF1YWw6IHt2YWx1ZTogZmFsc2V9fSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCB0eXBlT3B0aW9uc0RhdGE6IE5hdHVyYWxEcm9wZG93bkRhdGE8VHlwZU9wdGlvbnNDb25maWd1cmF0aW9uPiA9IHtcbiAgICAgICAgICAgIC4uLmRhdGEsXG4gICAgICAgICAgICAuLi57Y29uZmlndXJhdGlvbjogY29uZmlndXJhdGlvbn0sXG4gICAgICAgIH07XG5cbiAgICAgICAgc3VwZXIodHlwZU9wdGlvbnNEYXRhLCBkcm9wZG93blJlZik7XG4gICAgfVxufVxuIiwiPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiPlxuICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGNvbmZpZ3VyYXRpb24ub3B0aW9uc1wiIFt2YWx1ZV09XCJvcHRpb25cIj57e1xuICAgICAgICBvcHRpb24uZGlzcGxheVxuICAgIH19PC9tYXQtYnV0dG9uLXRvZ2dsZT5cbjwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+XG4iXX0=
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -8,7 +8,7 @@ export * from './lib/classes/abstract-detail';
|
|
|
8
8
|
export * from './lib/classes/abstract-editable-list';
|
|
9
9
|
export * from './lib/classes/abstract-list';
|
|
10
10
|
export * from './lib/classes/abstract-navigable-list';
|
|
11
|
-
export {
|
|
11
|
+
export { createHttpLink } from './lib/classes/apollo-utils';
|
|
12
12
|
export * from './lib/classes/data-source';
|
|
13
13
|
export * from './lib/classes/query-variable-manager';
|
|
14
14
|
export * from './lib/classes/rxjs';
|
|
@@ -45,4 +45,5 @@ export * from './lib/modules/matomo/public-api';
|
|
|
45
45
|
export * from './lib/modules/logger/public-api';
|
|
46
46
|
export * from './lib/directives/http-prefix.directive';
|
|
47
47
|
export { naturalProviders } from './lib/classes/providers';
|
|
48
|
-
|
|
48
|
+
export { graphqlQuerySigner } from './lib/classes/signing';
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25hdHVyYWwvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0hBQXdIO0FBQ3hILE9BQU8sd0JBQXdCLENBQUM7QUFFaEM7O0dBRUc7QUFFSCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzFELGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFNUMsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RSxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsT0FBTyxFQUFDLHlCQUF5QixFQUFFLDZCQUE2QixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDNUcsY0FBYyxtREFBbUQsQ0FBQztBQUVsRSxjQUFjLG1CQUFtQixDQUFDO0FBRWxDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLGlDQUFpQyxDQUFDO0FBRWhELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sdUJBQXVCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBMb2FkIGAkbG9jYWxpemVgIG9udG8gdGhlIGdsb2JhbCBzY29wZSAtIHRvIGJlIGFibGUgdG8gdXNlIHRoYXQgZnVuY3Rpb24gdG8gdHJhbnNsYXRlIHN0cmluZ3MgaW4gY29tcG9uZW50cy9zZXJ2aWNlcy5cbmltcG9ydCAnQGFuZ3VsYXIvbG9jYWxpemUvaW5pdCc7XG5cbi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgbmF0dXJhbFxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvYWJzdHJhY3QtY29udHJvbGxlcic7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL2Fic3RyYWN0LWRldGFpbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL2Fic3RyYWN0LWVkaXRhYmxlLWxpc3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy9hYnN0cmFjdC1saXN0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvYWJzdHJhY3QtbmF2aWdhYmxlLWxpc3QnO1xuZXhwb3J0IHtjcmVhdGVIdHRwTGlua30gZnJvbSAnLi9saWIvY2xhc3Nlcy9hcG9sbG8tdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy9kYXRhLXNvdXJjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL3F1ZXJ5LXZhcmlhYmxlLW1hbmFnZXInO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY2xhc3Nlcy9yeGpzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzZXMvdXRpbGl0eSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzc2VzL3ZhbGlkYXRvcnMnO1xuZXhwb3J0IHt2YWxpZFRsZHN9IGZyb20gJy4vbGliL2NsYXNzZXMvdGxkJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYWJzdHJhY3QtbW9kZWwuc2VydmljZSc7XG5leHBvcnQge05hdHVyYWxEZWJvdW5jZVNlcnZpY2V9IGZyb20gJy4vbGliL3NlcnZpY2VzL2RlYm91bmNlLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZW51bS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2xpbmstbXV0YXRpb24uc2VydmljZSc7XG5leHBvcnQge05hdHVyYWxQZXJzaXN0ZW5jZVNlcnZpY2UsIE5BVFVSQUxfUEVSU0lTVEVOQ0VfVkFMSURBVE9SfSBmcm9tICcuL2xpYi9zZXJ2aWNlcy9wZXJzaXN0ZW5jZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3N3aXNzLXBhcnNpbmctZGF0ZS1hZGFwdGVyLnNlcnZpY2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi90eXBlcy90eXBlcyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvYWxlcnQvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2NvbHVtbnMtcGlja2VyL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9jb21tb24vcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2RldGFpbC1oZWFkZXIvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2Ryb3Bkb3duLWNvbXBvbmVudHMvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2ZpbGUvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2ZpeGVkLWJ1dHRvbi9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvZml4ZWQtYnV0dG9uLWRldGFpbC9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvaGllcmFyY2hpYy1zZWxlY3Rvci9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvaWNvbi9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvcGFuZWxzL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9yZWxhdGlvbnMvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL3NlYXJjaC9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvc2VsZWN0L3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9zaWRlbmF2L3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9zdGFtcC9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvdGFibGUtYnV0dG9uL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9kaWFsb2ctdHJpZ2dlci9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvYXZhdGFyL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9tYXRvbW8vcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2xvZ2dlci9wdWJsaWMtYXBpJztcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9odHRwLXByZWZpeC5kaXJlY3RpdmUnO1xuZXhwb3J0IHtuYXR1cmFsUHJvdmlkZXJzfSBmcm9tICcuL2xpYi9jbGFzc2VzL3Byb3ZpZGVycyc7XG5leHBvcnQge2dyYXBocWxRdWVyeVNpZ25lcn0gZnJvbSAnLi9saWIvY2xhc3Nlcy9zaWduaW5nJztcbiJdfQ==
|
|
@@ -37,9 +37,11 @@ import * as i3$1 from '@angular/material/select';
|
|
|
37
37
|
import { MatSelectModule } from '@angular/material/select';
|
|
38
38
|
import * as i3 from '@angular/material/form-field';
|
|
39
39
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
40
|
+
import { ApolloLink, NetworkStatus } from '@apollo/client/core';
|
|
41
|
+
import extractFiles from 'extract-files/extractFiles.mjs';
|
|
42
|
+
import isExtractableFile from 'extract-files/isExtractableFile.mjs';
|
|
40
43
|
import * as i1$4 from 'apollo-angular';
|
|
41
44
|
import { gql } from 'apollo-angular';
|
|
42
|
-
import { NetworkStatus } from '@apollo/client/core';
|
|
43
45
|
import * as i1$6 from '@angular/cdk/layout';
|
|
44
46
|
import { Breakpoints } from '@angular/cdk/layout';
|
|
45
47
|
import * as i6$1 from '@angular/material/tooltip';
|
|
@@ -73,6 +75,7 @@ import * as i2$6 from '@angular/material/sidenav';
|
|
|
73
75
|
import { MatSidenavContainer, MatSidenav, MatSidenavModule } from '@angular/material/sidenav';
|
|
74
76
|
import * as i1$9 from '@angular/common/http';
|
|
75
77
|
import { HttpHeaders } from '@angular/common/http';
|
|
78
|
+
import { HmacSHA256 } from 'crypto-es/lib/sha256';
|
|
76
79
|
|
|
77
80
|
class NaturalAbstractController {
|
|
78
81
|
constructor() {
|
|
@@ -4152,6 +4155,20 @@ function hasFilesAndProcessDate(variables) {
|
|
|
4152
4155
|
function isMutation(query) {
|
|
4153
4156
|
return query.definitions.some(definition => definition.kind === 'OperationDefinition' && definition.operation === 'mutation');
|
|
4154
4157
|
}
|
|
4158
|
+
const naturalExtractFiles = body => extractFiles(body, isExtractableFile);
|
|
4159
|
+
/**
|
|
4160
|
+
* Create an Apollo link that supports batched queries and file uploads.
|
|
4161
|
+
*
|
|
4162
|
+
* File uploads and mutations are never batched.
|
|
4163
|
+
*/
|
|
4164
|
+
function createHttpLink(httpLink, httpBatchLink, options) {
|
|
4165
|
+
// If the query has no file, batch it, otherwise upload only that query
|
|
4166
|
+
return ApolloLink.split(operation => hasFilesAndProcessDate(operation.variables) || isMutation(operation.query), httpLink.create({
|
|
4167
|
+
...options,
|
|
4168
|
+
useMultipart: true,
|
|
4169
|
+
extractFiles: naturalExtractFiles,
|
|
4170
|
+
}), httpBatchLink.create(options));
|
|
4171
|
+
}
|
|
4155
4172
|
|
|
4156
4173
|
/**
|
|
4157
4174
|
* Behave like setTimeout(), but with a mandatory cancel mechanism.
|
|
@@ -11188,11 +11205,46 @@ const naturalProviders = [
|
|
|
11188
11205
|
localStorageProvider,
|
|
11189
11206
|
];
|
|
11190
11207
|
|
|
11208
|
+
function getOperations(req) {
|
|
11209
|
+
if (req.body instanceof FormData) {
|
|
11210
|
+
const operations = req.body.get('operations');
|
|
11211
|
+
if (typeof operations !== 'string') {
|
|
11212
|
+
throw new Error('Cannot sign a GraphQL query that is using FormData but that is missing the key `operations`');
|
|
11213
|
+
}
|
|
11214
|
+
return operations;
|
|
11215
|
+
}
|
|
11216
|
+
else {
|
|
11217
|
+
return JSON.stringify(req.body);
|
|
11218
|
+
}
|
|
11219
|
+
}
|
|
11220
|
+
/**
|
|
11221
|
+
* Sign all HTTP POST requests that are GraphQL queries against `/graphql` endpoint with a custom signature.
|
|
11222
|
+
*
|
|
11223
|
+
* The server will validate the signature before executing the GraphQL query.
|
|
11224
|
+
*/
|
|
11225
|
+
function graphqlQuerySigner(key) {
|
|
11226
|
+
return (req, next) => {
|
|
11227
|
+
const mustSign = req.method === 'POST' && req.url.match(/\/graphql(\?|$)/);
|
|
11228
|
+
if (!mustSign) {
|
|
11229
|
+
return next(req);
|
|
11230
|
+
}
|
|
11231
|
+
const operations = getOperations(req);
|
|
11232
|
+
const timestamp = Math.round(Date.now() / 1000);
|
|
11233
|
+
const payload = timestamp + operations;
|
|
11234
|
+
const hash = HmacSHA256(payload, key).toString();
|
|
11235
|
+
const header = `v1.${timestamp}.${hash}`;
|
|
11236
|
+
const signedRequest = req.clone({
|
|
11237
|
+
headers: req.headers.set('Authorization', header),
|
|
11238
|
+
});
|
|
11239
|
+
return next(signedRequest);
|
|
11240
|
+
};
|
|
11241
|
+
}
|
|
11242
|
+
|
|
11191
11243
|
// Load `$localize` onto the global scope - to be able to use that function to translate strings in components/services.
|
|
11192
11244
|
|
|
11193
11245
|
/**
|
|
11194
11246
|
* Generated bundle index. Do not edit.
|
|
11195
11247
|
*/
|
|
11196
11248
|
|
|
11197
|
-
export { AvatarService, LOCAL_STORAGE, NATURAL_DROPDOWN_DATA, NATURAL_ICONS_CONFIG, NATURAL_PERSISTENCE_VALIDATOR, NATURAL_SEO_CONFIG, NaturalAbstractController, NaturalAbstractDetail, NaturalAbstractEditableList, NaturalAbstractList, NaturalAbstractModelService, NaturalAbstractNavigableList, NaturalAbstractPanel, NaturalAlertService, NaturalAvatarComponent, NaturalCapitalizePipe, NaturalColumnsPickerComponent, NaturalConfirmComponent, NaturalDataSource, NaturalDebounceService, NaturalDetailHeaderComponent, NaturalDialogTriggerComponent, NaturalDropdownRef, NaturalEllipsisPipe, NaturalEnumPipe, NaturalEnumService, NaturalErrorHandler, NaturalFileComponent, NaturalFileDropDirective, NaturalFileSelectDirective, NaturalFileService, NaturalFixedButtonComponent, NaturalFixedButtonDetailComponent, NaturalHierarchicSelectorComponent, NaturalHierarchicSelectorDialogComponent, NaturalHierarchicSelectorDialogService, NaturalHierarchicSelectorService, NaturalHttpPrefixDirective, NaturalIconDirective, NaturalLinkMutationService, NaturalLinkableTabDirective, NaturalLoggerConfigExtra, NaturalLoggerConfigUrl, NaturalMatomoService, NaturalMemoryStorage, NaturalPanelsComponent, NaturalPanelsService, NaturalPersistenceService, NaturalQueryVariablesManager, NaturalRelationsComponent, NaturalSearchComponent, NaturalSelectComponent, NaturalSelectEnumComponent, NaturalSelectHierarchicComponent, NaturalSeoService, NaturalSidenavComponent, NaturalSidenavContainerComponent, NaturalSidenavContentComponent, NaturalSidenavService, NaturalSidenavStackService, NaturalSrcDensityDirective, NaturalStampComponent, NaturalSwissDatePipe, NaturalSwissParsingDateAdapter, NaturalTableButtonComponent, NaturalTimeAgoPipe, PanelsHooksConfig, SESSION_STORAGE, SortingOrder, TypeBooleanComponent, TypeDateComponent, TypeDateRangeComponent, TypeHierarchicSelectorComponent, TypeNaturalSelectComponent, TypeNumberComponent, TypeOptionsComponent, TypeSelectComponent, TypeTextComponent, available, cancellableTimeout, cleanSameValues, collectErrors, copyToClipboard, debug, decimal, deepFreeze, deliverableEmail, ensureHttpPrefix, fallbackIfNoOpenedPanels, formatIsoDate, formatIsoDateTime, fromUrl, getForegroundColor,
|
|
11249
|
+
export { AvatarService, LOCAL_STORAGE, NATURAL_DROPDOWN_DATA, NATURAL_ICONS_CONFIG, NATURAL_PERSISTENCE_VALIDATOR, NATURAL_SEO_CONFIG, NaturalAbstractController, NaturalAbstractDetail, NaturalAbstractEditableList, NaturalAbstractList, NaturalAbstractModelService, NaturalAbstractNavigableList, NaturalAbstractPanel, NaturalAlertService, NaturalAvatarComponent, NaturalCapitalizePipe, NaturalColumnsPickerComponent, NaturalConfirmComponent, NaturalDataSource, NaturalDebounceService, NaturalDetailHeaderComponent, NaturalDialogTriggerComponent, NaturalDropdownRef, NaturalEllipsisPipe, NaturalEnumPipe, NaturalEnumService, NaturalErrorHandler, NaturalFileComponent, NaturalFileDropDirective, NaturalFileSelectDirective, NaturalFileService, NaturalFixedButtonComponent, NaturalFixedButtonDetailComponent, NaturalHierarchicSelectorComponent, NaturalHierarchicSelectorDialogComponent, NaturalHierarchicSelectorDialogService, NaturalHierarchicSelectorService, NaturalHttpPrefixDirective, NaturalIconDirective, NaturalLinkMutationService, NaturalLinkableTabDirective, NaturalLoggerConfigExtra, NaturalLoggerConfigUrl, NaturalMatomoService, NaturalMemoryStorage, NaturalPanelsComponent, NaturalPanelsService, NaturalPersistenceService, NaturalQueryVariablesManager, NaturalRelationsComponent, NaturalSearchComponent, NaturalSelectComponent, NaturalSelectEnumComponent, NaturalSelectHierarchicComponent, NaturalSeoService, NaturalSidenavComponent, NaturalSidenavContainerComponent, NaturalSidenavContentComponent, NaturalSidenavService, NaturalSidenavStackService, NaturalSrcDensityDirective, NaturalStampComponent, NaturalSwissDatePipe, NaturalSwissParsingDateAdapter, NaturalTableButtonComponent, NaturalTimeAgoPipe, PanelsHooksConfig, SESSION_STORAGE, SortingOrder, TypeBooleanComponent, TypeDateComponent, TypeDateRangeComponent, TypeHierarchicSelectorComponent, TypeNaturalSelectComponent, TypeNumberComponent, TypeOptionsComponent, TypeSelectComponent, TypeTextComponent, available, cancellableTimeout, cleanSameValues, collectErrors, copyToClipboard, createHttpLink, debug, decimal, deepFreeze, deliverableEmail, ensureHttpPrefix, fallbackIfNoOpenedPanels, formatIsoDate, formatIsoDateTime, fromUrl, getForegroundColor, graphqlQuerySigner, ifValid, integer, localStorageFactory, localStorageProvider, lowerCaseFirstLetter, makePlural, memoryLocalStorageProvider, memorySessionStorageProvider, mergeOverrideArray, money, naturalPanelsUrlMatcher, naturalProviders, provideErrorHandler, provideIcons, providePanels, provideSeo, relationsToIds, replaceObjectKeepingReference, replaceOperatorByField, replaceOperatorByName, sessionStorageFactory, sessionStorageProvider, toGraphQLDoctrineFilter, toNavigationParameters, toUrl, unique, upperCaseFirstLetter, urlValidator, validTlds, validateAllFormControls, wrapLike };
|
|
11198
11250
|
//# sourceMappingURL=ecodev-natural.mjs.map
|