@plumile/backoffice-core 0.1.161 → 0.1.163
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/lib/esm/billing.d.ts +7 -0
- package/lib/esm/billing.d.ts.map +1 -1
- package/lib/esm/billing.js +33 -1
- package/lib/esm/capabilities.d.ts +10 -0
- package/lib/esm/capabilities.d.ts.map +1 -0
- package/lib/esm/capabilities.js +10 -0
- package/lib/esm/config/columns.d.ts.map +1 -1
- package/lib/esm/config/columns.js +22 -4
- package/lib/esm/config/detail-builders.d.ts +7 -0
- package/lib/esm/config/detail-builders.d.ts.map +1 -1
- package/lib/esm/config/detail-builders.js +8 -1
- package/lib/esm/config/detail.d.ts.map +1 -1
- package/lib/esm/config/detail.js +1 -2
- package/lib/esm/config/entity-builders.d.ts +142 -0
- package/lib/esm/config/entity-builders.d.ts.map +1 -0
- package/lib/esm/config/entity-builders.js +212 -0
- package/lib/esm/index.d.ts +3 -0
- package/lib/esm/index.d.ts.map +1 -1
- package/lib/esm/index.js +4 -1
- package/lib/esm/tools/operation-builders.d.ts +91 -0
- package/lib/esm/tools/operation-builders.d.ts.map +1 -0
- package/lib/esm/tools/operation-builders.js +211 -0
- package/lib/esm/types.d.ts +15 -0
- package/lib/esm/types.d.ts.map +1 -1
- package/lib/esm/types.js +1 -1
- package/lib/tsconfig.esm.tsbuildinfo +1 -1
- package/lib/types/billing.d.ts +7 -0
- package/lib/types/billing.d.ts.map +1 -1
- package/lib/types/capabilities.d.ts +10 -0
- package/lib/types/capabilities.d.ts.map +1 -0
- package/lib/types/config/columns.d.ts.map +1 -1
- package/lib/types/config/detail-builders.d.ts +7 -0
- package/lib/types/config/detail-builders.d.ts.map +1 -1
- package/lib/types/config/detail.d.ts.map +1 -1
- package/lib/types/config/entity-builders.d.ts +142 -0
- package/lib/types/config/entity-builders.d.ts.map +1 -0
- package/lib/types/index.d.ts +3 -0
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/tools/operation-builders.d.ts +91 -0
- package/lib/types/tools/operation-builders.d.ts.map +1 -0
- package/lib/types/types.d.ts +15 -0
- package/lib/types/types.d.ts.map +1 -1
- package/package.json +21 -6
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import type { GraphQLTaggedNode, OperationType } from 'relay-runtime';
|
|
2
|
+
import type { BackofficeAliasedPickerValueResponse, BackofficeColumnSpec, BackofficeConnection, BackofficeConnectionListConfig, BackofficeDetailContentSpec, BackofficeDetailLayoutProfile, BackofficeDetailPageSpec, BackofficeDetailVariables, BackofficeEntityActionSpec, BackofficeEntityDetailConfig, BackofficeEntityPickerConfig, BackofficeListQueryInput, BackofficeListResponsiveProfile, BackofficeListState, BackofficeListUiConfig, BackofficeOperationSort, BackofficeOperationWhere, BackofficePickerQueryInput, BackofficePickerValueConfig, BackofficeRuntimeEntityCountConfig, BackofficeRowFlagSpec, I18nLabel } from '../types.js';
|
|
3
|
+
import { type BackofficeLegacyFilterSpec } from './filters.js';
|
|
4
|
+
import { type BackofficeLegacySortSpec } from './sorts.js';
|
|
5
|
+
export type BackofficeWhereEntry = {
|
|
6
|
+
key: string;
|
|
7
|
+
value: unknown;
|
|
8
|
+
path?: readonly string[];
|
|
9
|
+
};
|
|
10
|
+
export type BackofficePickerSearchConfig<Where> = {
|
|
11
|
+
whereKey: Extract<keyof Where, string>;
|
|
12
|
+
path?: readonly string[];
|
|
13
|
+
};
|
|
14
|
+
export type BackofficePickerScopeConfig<Where> = {
|
|
15
|
+
keys: readonly Extract<keyof Where, string>[];
|
|
16
|
+
};
|
|
17
|
+
export declare const DEFAULT_BACKOFFICE_LIST_UI_CONFIG: {
|
|
18
|
+
density: "compact";
|
|
19
|
+
displayMode: "auto";
|
|
20
|
+
infiniteScroll: {
|
|
21
|
+
enabled: true;
|
|
22
|
+
rootMargin: string;
|
|
23
|
+
threshold: number;
|
|
24
|
+
status: {
|
|
25
|
+
showLoadedCount: true;
|
|
26
|
+
showTotalCount: true;
|
|
27
|
+
showEndState: true;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
toolbar: {
|
|
31
|
+
density: "compact";
|
|
32
|
+
displayMode: "auto";
|
|
33
|
+
maxPromotedFilters: number;
|
|
34
|
+
showRefresh: true;
|
|
35
|
+
showSort: true;
|
|
36
|
+
showFilterChips: "auto";
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
export declare const buildWhereFromEntries: (entries: readonly BackofficeWhereEntry[]) => Record<string, unknown> | null;
|
|
40
|
+
export declare const resolvePickerSearchFromFilters: <Where extends Record<string, unknown>, FilterWhere extends Record<string, unknown> = Where>(filters: readonly BackofficeLegacyFilterSpec<FilterWhere>[]) => BackofficePickerSearchConfig<Where> | undefined;
|
|
41
|
+
export declare const resolvePickerScopeFromFilters: <Where extends Record<string, unknown>, FilterWhere extends Record<string, unknown> = Where>(filters: readonly BackofficeLegacyFilterSpec<FilterWhere>[], supportedKeys: readonly string[]) => BackofficePickerScopeConfig<Where> | undefined;
|
|
42
|
+
export declare const buildBackofficeConnectionListConfig: <TOperation extends OperationType, RowRef extends object, RowView extends object, ListFragmentData = unknown, Where extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, Sort extends string = BackofficeOperationSort<TOperation>>(options: {
|
|
43
|
+
title: I18nLabel;
|
|
44
|
+
columns: readonly BackofficeColumnSpec<RowView>[];
|
|
45
|
+
rowFlags?: readonly BackofficeRowFlagSpec<RowView>[];
|
|
46
|
+
sorts: readonly BackofficeLegacySortSpec<Sort>[];
|
|
47
|
+
filters: readonly BackofficeLegacyFilterSpec<Where>[];
|
|
48
|
+
defaultState: BackofficeListState<Where, Sort>;
|
|
49
|
+
query: GraphQLTaggedNode;
|
|
50
|
+
fragment: GraphQLTaggedNode;
|
|
51
|
+
count: BackofficeRuntimeEntityCountConfig<Where>;
|
|
52
|
+
getConnection: (data: ListFragmentData) => BackofficeConnection<RowRef>;
|
|
53
|
+
toRow: (rowRef: RowRef) => RowView;
|
|
54
|
+
buildQueryVariables?: (input: BackofficeListQueryInput<TOperation, Where, Sort>) => TOperation["variables"];
|
|
55
|
+
responsive?: BackofficeListResponsiveProfile<RowView>;
|
|
56
|
+
ui?: BackofficeListUiConfig;
|
|
57
|
+
}) => BackofficeConnectionListConfig<TOperation, RowRef, RowView, ListFragmentData, Where, Sort>;
|
|
58
|
+
export declare function buildBackofficeDetailPageConfig<DetailView extends {
|
|
59
|
+
id: string;
|
|
60
|
+
}, DetailData = DetailView, LayoutView = DetailView, DetailQueryData = unknown, DetailFragmentKey = unknown, DetailQueryVariables = {
|
|
61
|
+
id: string;
|
|
62
|
+
}>(options: {
|
|
63
|
+
id: string;
|
|
64
|
+
path: string;
|
|
65
|
+
label: I18nLabel;
|
|
66
|
+
query: GraphQLTaggedNode;
|
|
67
|
+
fragment: GraphQLTaggedNode;
|
|
68
|
+
toView: (data: DetailData) => DetailView;
|
|
69
|
+
content: readonly BackofficeDetailContentSpec<DetailView>[];
|
|
70
|
+
actions?: readonly BackofficeEntityActionSpec<DetailView>[];
|
|
71
|
+
resolveNode: (data: DetailQueryData, context: {
|
|
72
|
+
id: string;
|
|
73
|
+
detailId?: string;
|
|
74
|
+
}) => DetailFragmentKey | null;
|
|
75
|
+
buildVariables?: (input: {
|
|
76
|
+
id: string;
|
|
77
|
+
}) => BackofficeDetailVariables<DetailQueryVariables>;
|
|
78
|
+
isVisible?: (layoutPage: LayoutView) => boolean;
|
|
79
|
+
profile?: BackofficeDetailLayoutProfile<DetailView>;
|
|
80
|
+
}): BackofficeDetailPageSpec<DetailView, LayoutView, DetailData, DetailQueryData, DetailFragmentKey, DetailQueryVariables>;
|
|
81
|
+
export declare const buildBackofficeEntityDetailConfig: <LayoutData extends object, LayoutView extends {
|
|
82
|
+
id: string;
|
|
83
|
+
}, MainData extends object = LayoutData, MainView extends {
|
|
84
|
+
id: string;
|
|
85
|
+
} = LayoutView, LayoutQueryData = unknown, MainQueryData = unknown, LayoutFragmentKey = unknown, MainFragmentKey = unknown, LayoutQueryVariables = {
|
|
86
|
+
id: string;
|
|
87
|
+
}, MainQueryVariables = {
|
|
88
|
+
id: string;
|
|
89
|
+
}>(options: {
|
|
90
|
+
title: I18nLabel;
|
|
91
|
+
headerTitle?: I18nLabel;
|
|
92
|
+
headerSubtitle?: I18nLabel;
|
|
93
|
+
query: GraphQLTaggedNode;
|
|
94
|
+
fragment: GraphQLTaggedNode;
|
|
95
|
+
toView: (data: MainData) => MainView;
|
|
96
|
+
actions?: readonly BackofficeEntityActionSpec<MainView>[];
|
|
97
|
+
layoutQuery?: GraphQLTaggedNode;
|
|
98
|
+
layoutFragment?: GraphQLTaggedNode;
|
|
99
|
+
layoutToView?: (data: LayoutData) => LayoutView;
|
|
100
|
+
header?: BackofficeEntityDetailConfig<LayoutData, LayoutView, MainData, MainView, MainData, MainView, LayoutQueryData, MainQueryData, MainQueryData, LayoutFragmentKey, MainFragmentKey, MainFragmentKey, LayoutQueryVariables, MainQueryVariables, MainQueryVariables>["header"];
|
|
101
|
+
resolveNode: BackofficeEntityDetailConfig<LayoutData, LayoutView, MainData, MainView, MainData, MainView, LayoutQueryData, MainQueryData, MainQueryData, LayoutFragmentKey, MainFragmentKey, MainFragmentKey, LayoutQueryVariables, MainQueryVariables, MainQueryVariables>["mainPage"]["resolveNode"];
|
|
102
|
+
layoutResolveNode: BackofficeEntityDetailConfig<LayoutData, LayoutView, MainData, MainView, MainData, MainView, LayoutQueryData, MainQueryData, MainQueryData, LayoutFragmentKey, MainFragmentKey, MainFragmentKey, LayoutQueryVariables, MainQueryVariables, MainQueryVariables>["layoutPage"]["resolveNode"];
|
|
103
|
+
buildVariables?: (input: {
|
|
104
|
+
id: string;
|
|
105
|
+
}) => BackofficeDetailVariables<MainQueryVariables>;
|
|
106
|
+
layoutBuildVariables?: (input: {
|
|
107
|
+
id: string;
|
|
108
|
+
}) => BackofficeDetailVariables<LayoutQueryVariables>;
|
|
109
|
+
detailContent?: readonly BackofficeDetailContentSpec<MainView>[];
|
|
110
|
+
mainPageId?: string;
|
|
111
|
+
mainPagePath?: string;
|
|
112
|
+
mainPageLabel?: I18nLabel;
|
|
113
|
+
subPages?: BackofficeEntityDetailConfig<LayoutData, LayoutView, MainData, MainView, MainData, MainView, LayoutQueryData, MainQueryData, MainQueryData, LayoutFragmentKey, MainFragmentKey, MainFragmentKey, LayoutQueryVariables, MainQueryVariables, MainQueryVariables>["subPages"];
|
|
114
|
+
profile?: BackofficeDetailLayoutProfile<LayoutView>;
|
|
115
|
+
mainPageProfile?: BackofficeDetailLayoutProfile<MainView>;
|
|
116
|
+
}) => BackofficeEntityDetailConfig<LayoutData, LayoutView, MainData, MainView, MainData, MainView, LayoutQueryData, MainQueryData, MainQueryData, LayoutFragmentKey, MainFragmentKey, MainFragmentKey, LayoutQueryVariables, MainQueryVariables, MainQueryVariables>;
|
|
117
|
+
export declare const buildBackofficeConnectionDetailVariables: <Where extends Record<string, unknown>, Sort extends string>(input: {
|
|
118
|
+
detailId: string;
|
|
119
|
+
where: Where | null;
|
|
120
|
+
sort: Sort | null;
|
|
121
|
+
}) => BackofficeDetailVariables<{
|
|
122
|
+
where: Where | null;
|
|
123
|
+
sort: Sort | null;
|
|
124
|
+
count: number;
|
|
125
|
+
}>;
|
|
126
|
+
export declare const buildBackofficeEntityPickerConfig: <TOperation extends OperationType, RowRef extends object, RowView extends {
|
|
127
|
+
id: string;
|
|
128
|
+
}, PickerFragmentData = unknown, Where extends Record<string, unknown> = BackofficeOperationWhere<TOperation>, ValueQueryData = BackofficeAliasedPickerValueResponse<string, RowRef>>(options: {
|
|
129
|
+
query: GraphQLTaggedNode;
|
|
130
|
+
fragment: GraphQLTaggedNode;
|
|
131
|
+
value?: BackofficePickerValueConfig<RowRef, RowView, ValueQueryData>;
|
|
132
|
+
getConnection: (data: PickerFragmentData) => BackofficeConnection<RowRef>;
|
|
133
|
+
toRow: (rowRef: RowRef) => RowView;
|
|
134
|
+
getRowId?: (row: RowView) => string;
|
|
135
|
+
search?: BackofficePickerSearchConfig<Where>;
|
|
136
|
+
scope?: BackofficePickerScopeConfig<Where>;
|
|
137
|
+
searchEnabled?: boolean;
|
|
138
|
+
searchRequired?: boolean;
|
|
139
|
+
searchPlaceholder?: I18nLabel;
|
|
140
|
+
buildQueryVariables?: (input: BackofficePickerQueryInput<TOperation, Where>) => TOperation["variables"];
|
|
141
|
+
}) => BackofficeEntityPickerConfig<TOperation, RowRef, RowView, PickerFragmentData, Where, ValueQueryData>;
|
|
142
|
+
//# sourceMappingURL=entity-builders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entity-builders.d.ts","sourceRoot":"","sources":["../../../src/config/entity-builders.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import { BACKOFFICE_LIST_DEFAULTS } from '../constants.js';
|
|
2
|
+
import { buildGenericDetailHeader } from './detail.js';
|
|
3
|
+
import { mapFilters } from './filters.js';
|
|
4
|
+
import { getRowId } from './list.js';
|
|
5
|
+
import { mapSorts } from './sorts.js';
|
|
6
|
+
import { setWhereValue } from '../filters/where.js';
|
|
7
|
+
export const DEFAULT_BACKOFFICE_LIST_UI_CONFIG = {
|
|
8
|
+
density: 'compact',
|
|
9
|
+
displayMode: 'auto',
|
|
10
|
+
infiniteScroll: {
|
|
11
|
+
enabled: true,
|
|
12
|
+
rootMargin: '720px 0px',
|
|
13
|
+
threshold: 0,
|
|
14
|
+
status: {
|
|
15
|
+
showLoadedCount: true,
|
|
16
|
+
showTotalCount: true,
|
|
17
|
+
showEndState: true,
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
toolbar: {
|
|
21
|
+
density: 'compact',
|
|
22
|
+
displayMode: 'auto',
|
|
23
|
+
maxPromotedFilters: 2,
|
|
24
|
+
showRefresh: true,
|
|
25
|
+
showSort: true,
|
|
26
|
+
showFilterChips: 'auto',
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
export const buildWhereFromEntries = (entries) => {
|
|
30
|
+
let where = null;
|
|
31
|
+
entries.forEach(({ key, path, value }) => {
|
|
32
|
+
if (value == null) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
if (typeof value === 'string' && value.trim() === '') {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
const nextWhere = setWhereValue(where, key, value, path);
|
|
39
|
+
if (nextWhere != null) {
|
|
40
|
+
where = nextWhere;
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
return where;
|
|
44
|
+
};
|
|
45
|
+
export const resolvePickerSearchFromFilters = (filters) => {
|
|
46
|
+
const match = filters.find((filter) => {
|
|
47
|
+
return filter.kind === 'textContains';
|
|
48
|
+
});
|
|
49
|
+
if (match == null) {
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
const whereKey = (match.whereKey ?? match.id);
|
|
53
|
+
return { whereKey, path: match.path };
|
|
54
|
+
};
|
|
55
|
+
export const resolvePickerScopeFromFilters = (filters, supportedKeys) => {
|
|
56
|
+
const scopedKeys = new Set();
|
|
57
|
+
filters.forEach((filter) => {
|
|
58
|
+
const key = String(filter.whereKey ?? filter.id);
|
|
59
|
+
if (supportedKeys.includes(key)) {
|
|
60
|
+
scopedKeys.add((filter.whereKey ?? filter.id));
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
if (scopedKeys.size === 0) {
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
return { keys: Array.from(scopedKeys) };
|
|
67
|
+
};
|
|
68
|
+
export const buildBackofficeConnectionListConfig = (options) => {
|
|
69
|
+
return {
|
|
70
|
+
kind: 'connection',
|
|
71
|
+
title: options.title,
|
|
72
|
+
query: options.query,
|
|
73
|
+
fragment: options.fragment,
|
|
74
|
+
count: options.count,
|
|
75
|
+
getConnection: options.getConnection,
|
|
76
|
+
toRow: options.toRow,
|
|
77
|
+
getRowId,
|
|
78
|
+
columns: options.columns,
|
|
79
|
+
rowFlags: options.rowFlags,
|
|
80
|
+
sorts: mapSorts(options.sorts),
|
|
81
|
+
filters: mapFilters(options.filters),
|
|
82
|
+
defaultState: options.defaultState,
|
|
83
|
+
buildQueryVariables: options.buildQueryVariables ??
|
|
84
|
+
((input) => {
|
|
85
|
+
return {
|
|
86
|
+
where: input.where,
|
|
87
|
+
sort: input.sort,
|
|
88
|
+
count: input.count,
|
|
89
|
+
cursor: input.cursor,
|
|
90
|
+
};
|
|
91
|
+
}),
|
|
92
|
+
responsive: options.responsive ?? {
|
|
93
|
+
mode: 'auto',
|
|
94
|
+
density: 'compact',
|
|
95
|
+
},
|
|
96
|
+
ui: options.ui ?? DEFAULT_BACKOFFICE_LIST_UI_CONFIG,
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
export function buildBackofficeDetailPageConfig(options) {
|
|
100
|
+
return {
|
|
101
|
+
query: options.query,
|
|
102
|
+
fragment: options.fragment,
|
|
103
|
+
resolveNode: options.resolveNode,
|
|
104
|
+
toView: options.toView,
|
|
105
|
+
buildVariables: options.buildVariables,
|
|
106
|
+
id: options.id,
|
|
107
|
+
path: options.path,
|
|
108
|
+
label: options.label,
|
|
109
|
+
content: options.content,
|
|
110
|
+
actions: options.actions,
|
|
111
|
+
isVisible: options.isVisible,
|
|
112
|
+
profile: options.profile,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
export const buildBackofficeEntityDetailConfig = (options) => {
|
|
116
|
+
const defaultHeader = buildGenericDetailHeader({
|
|
117
|
+
title: options.headerTitle ?? options.title,
|
|
118
|
+
subtitle: options.headerSubtitle,
|
|
119
|
+
});
|
|
120
|
+
const mainPageId = options.mainPageId ?? 'overview';
|
|
121
|
+
const mainPagePath = options.mainPagePath ?? 'overview';
|
|
122
|
+
const mainPageLabel = options.mainPageLabel ?? options.title;
|
|
123
|
+
const mainPage = buildBackofficeDetailPageConfig({
|
|
124
|
+
id: mainPageId,
|
|
125
|
+
path: mainPagePath,
|
|
126
|
+
label: mainPageLabel,
|
|
127
|
+
query: options.query,
|
|
128
|
+
fragment: options.fragment,
|
|
129
|
+
resolveNode: options.resolveNode,
|
|
130
|
+
toView: options.toView,
|
|
131
|
+
buildVariables: options.buildVariables,
|
|
132
|
+
content: options.detailContent ?? [],
|
|
133
|
+
actions: options.actions,
|
|
134
|
+
profile: options.mainPageProfile,
|
|
135
|
+
});
|
|
136
|
+
return {
|
|
137
|
+
title: options.title,
|
|
138
|
+
header: options.header ?? defaultHeader,
|
|
139
|
+
layoutPage: {
|
|
140
|
+
query: options.layoutQuery ?? options.query,
|
|
141
|
+
fragment: options.layoutFragment ?? options.fragment,
|
|
142
|
+
resolveNode: options.layoutResolveNode,
|
|
143
|
+
toView: options.layoutToView ??
|
|
144
|
+
options.toView,
|
|
145
|
+
buildVariables: options.layoutBuildVariables ??
|
|
146
|
+
options.buildVariables,
|
|
147
|
+
},
|
|
148
|
+
mainPage,
|
|
149
|
+
subPages: options.subPages,
|
|
150
|
+
profile: options.profile,
|
|
151
|
+
};
|
|
152
|
+
};
|
|
153
|
+
export const buildBackofficeConnectionDetailVariables = (input) => {
|
|
154
|
+
return {
|
|
155
|
+
detailId: input.detailId,
|
|
156
|
+
variables: {
|
|
157
|
+
where: input.where,
|
|
158
|
+
sort: input.sort,
|
|
159
|
+
count: BACKOFFICE_LIST_DEFAULTS.pageSize,
|
|
160
|
+
},
|
|
161
|
+
};
|
|
162
|
+
};
|
|
163
|
+
export const buildBackofficeEntityPickerConfig = (options) => {
|
|
164
|
+
const searchConfig = options.search;
|
|
165
|
+
const scopeKeys = options.scope?.keys ?? [];
|
|
166
|
+
const searchRequired = options.searchRequired ?? false;
|
|
167
|
+
const searchEnabled = options.searchEnabled ?? (searchConfig != null || searchRequired);
|
|
168
|
+
const getResolvedRowId = options.getRowId ??
|
|
169
|
+
((row) => {
|
|
170
|
+
return row.id;
|
|
171
|
+
});
|
|
172
|
+
return {
|
|
173
|
+
query: options.query,
|
|
174
|
+
fragment: options.fragment,
|
|
175
|
+
value: options.value,
|
|
176
|
+
getConnection: options.getConnection,
|
|
177
|
+
toRow: options.toRow,
|
|
178
|
+
getRowId: getResolvedRowId,
|
|
179
|
+
searchEnabled,
|
|
180
|
+
searchRequired,
|
|
181
|
+
searchPlaceholder: options.searchPlaceholder,
|
|
182
|
+
buildQueryVariables: options.buildQueryVariables ??
|
|
183
|
+
((input) => {
|
|
184
|
+
const trimmed = input.search.trim();
|
|
185
|
+
let where = null;
|
|
186
|
+
if (searchConfig != null && trimmed !== '') {
|
|
187
|
+
const nextWhere = setWhereValue(null, searchConfig.whereKey, trimmed, searchConfig.path);
|
|
188
|
+
if (nextWhere != null) {
|
|
189
|
+
where = nextWhere;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
if (input.scope != null && scopeKeys.length > 0) {
|
|
193
|
+
scopeKeys.forEach((key) => {
|
|
194
|
+
const value = input.scope?.[String(key)];
|
|
195
|
+
if (value == null) {
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
const nextWhere = setWhereValue(where, key, value);
|
|
199
|
+
if (nextWhere != null) {
|
|
200
|
+
where = nextWhere;
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
return {
|
|
205
|
+
where,
|
|
206
|
+
count: 20,
|
|
207
|
+
cursor: null,
|
|
208
|
+
};
|
|
209
|
+
}),
|
|
210
|
+
};
|
|
211
|
+
};
|
|
212
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWJ1aWxkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy9lbnRpdHktYnVpbGRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUF5QjNELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2RCxPQUFPLEVBQUUsVUFBVSxFQUFtQyxNQUFNLGNBQWMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxRQUFRLEVBQWlDLE1BQU0sWUFBWSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQWlCcEQsTUFBTSxDQUFDLE1BQU0saUNBQWlDLEdBQUc7SUFDL0MsT0FBTyxFQUFFLFNBQVM7SUFDbEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsY0FBYyxFQUFFO1FBQ2QsT0FBTyxFQUFFLElBQUk7UUFDYixVQUFVLEVBQUUsV0FBVztRQUN2QixTQUFTLEVBQUUsQ0FBQztRQUNaLE1BQU0sRUFBRTtZQUNOLGVBQWUsRUFBRSxJQUFJO1lBQ3JCLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLFlBQVksRUFBRSxJQUFJO1NBQ25CO0tBQ0Y7SUFDRCxPQUFPLEVBQUU7UUFDUCxPQUFPLEVBQUUsU0FBUztRQUNsQixXQUFXLEVBQUUsTUFBTTtRQUNuQixrQkFBa0IsRUFBRSxDQUFDO1FBQ3JCLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLFFBQVEsRUFBRSxJQUFJO1FBQ2QsZUFBZSxFQUFFLE1BQU07S0FDeEI7Q0FDK0IsQ0FBQztBQUVuQyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUNuQyxPQUF3QyxFQUNSLEVBQUU7SUFDbEMsSUFBSSxLQUFLLEdBQW1DLElBQUksQ0FBQztJQUNqRCxPQUFPLENBQUMsT0FBTyxDQUFD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QUFDO3dCQUNuRCxJQUFJLFNBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQzs0QkFDdEIsS0FBSyxHQUFHLFNBQVMsQ0FBQzt3QkFDcEIsQ0FBQztvQkFDSCxDQUFDLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUNELE9BQU87b0JBQ0wsS0FBSztvQkFDTCxLQUFLLEVBQUUsRUFBRTtvQkFDVCxNQUFNLEVBQUUsSUFBSTtpQkFDYixDQUFDO1lBQ0osQ0FBQyxDQUFDO0tBQ0wsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgR3JhcGhRTFRhZ2dlZE5vZGUsIE9wZXJhdGlvblR5cGUgfSBmcm9tICdyZWxheS1ydW50aW1lJztcblxuaW1wb3J0IHsgQkFDS09GRklDRV9MSVNUX0RFRkFVTFRTIH0gZnJvbSAnLi4vY29uc3RhbnRzLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgQmFja29mZmljZUFsaWFzZWRQaWNrZXJWYWx1ZVJlc3BvbnNlLFxuICBCYWNrb2ZmaWNlQ29sdW1uU3BlYyxcbiAgQmFja29mZmljZUNvbm5lY3Rpb24sXG4gIEJhY2tvZmZpY2VDb25uZWN0aW9uTGlzdENvbmZpZyxcbiAgQmFja29mZmljZURldGFpbENvbnRlbnRTcGVjLFxuICBCYWNrb2ZmaWNlRGV0YWlsTGF5b3V0UHJvZmlsZSxcbiAgQmFja29mZmljZURldGFpbFBhZ2VTcGVjLFxuICBCYWNrb2ZmaWNlRGV0YWlsVmFyaWFibGVzLFxuICBCYWNrb2ZmaWNlRW50aXR5QWN0aW9uU3BlYyxcbiAgQmFja29mZmljZUVudGl0eURldGFpbENvbmZpZyxcbiAgQmFja29mZmljZUVudGl0eVBpY2tlckNvbmZpZyxcbiAgQmFja29mZmljZUxpc3RRdWVyeUlucHV0LFxuICBCYWNrb2ZmaWNlTGlzdFJlc3BvbnNpdmVQcm9maWxlLFxuICBCYWNrb2ZmaWNlTGlzdFN0YXRlLFxuICBCYWNrb2ZmaWNlTGlzdFVpQ29uZmlnLFxuICBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydCxcbiAgQmFja29mZmljZU9wZXJhdGlvbldoZXJlLFxuICBCYWNrb2ZmaWNlUGlja2VyUXVlcnlJbnB1dCxcbiAgQmFja29mZmljZVBpY2tlclZhbHVlQ29uZmlnLFxuICBCYWNrb2ZmaWNlUnVudGltZUVudGl0eUNvdW50Q29uZmlnLFxuICBCYWNrb2ZmaWNlUm93RmxhZ1NwZWMsXG4gIEkxOG5MYWJlbCxcbn0gZnJvbSAnLi4vdHlwZXMuanMnO1xuaW1wb3J0IHsgYnVpbGRHZW5lcmljRGV0YWlsSGVhZGVyIH0gZnJvbSAnLi9kZXRhaWwuanMnO1xuaW1wb3J0IHsgbWFwRmlsdGVycywgdHlwZSBCYWNrb2ZmaWNlTGVnYWN5RmlsdGVyU3BlYyB9IGZyb20gJy4vZmlsdGVycy5qcyc7XG5pbXBvcnQgeyBnZXRSb3dJZCB9IGZyb20gJy4vbGlzdC5qcyc7XG5pbXBvcnQgeyBtYXBTb3J0cywgdHlwZSBCYWNrb2ZmaWNlTGVnYWN5U29ydFNwZWMgfSBmcm9tICcuL3NvcnRzLmpzJztcbmltcG9ydCB7IHNldFdoZXJlVmFsdWUgfSBmcm9tICcuLi9maWx0ZXJzL3doZXJlLmpzJztcblxuZXhwb3J0IHR5cGUgQmFja29mZmljZVdoZXJlRW50cnkgPSB7XG4gIGtleTogc3RyaW5nO1xuICB2YWx1ZTogdW5rbm93bjtcbiAgcGF0aD86IHJlYWRvbmx5IHN0cmluZ1tdO1xufTtcblxuZXhwb3J0IHR5cGUgQmFja29mZmljZVBpY2tlclNlYXJjaENvbmZpZzxXaGVyZT4gPSB7XG4gIHdoZXJlS2V5OiBFeHRyYWN0PGtleW9mIFdoZXJlLCBzdHJpbmc+O1xuICBwYXRoPzogcmVhZG9ubHkgc3RyaW5nW107XG59O1xuXG5leHBvcnQgdHlwZSBCYWNrb2ZmaWNlUGlja2VyU2NvcGVDb25maWc8V2hlcmU+ID0ge1xuICBrZXlzOiByZWFkb25seSBFeHRyYWN0PGtleW9mIFdoZXJlLCBzdHJpbmc+W107XG59O1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9CQUNLT0ZGSUNFX0xJU1RfVUlfQ09ORklHID0ge1xuICBkZW5zaXR5OiAnY29tcGFjdCcsXG4gIGRpc3BsYXlNb2RlOiAnYXV0bycsXG4gIGluZmluaXRlU2Nyb2xsOiB7XG4gICAgZW5hYmxlZDogdHJ1ZSxcbiAgICByb290TWFyZ2luOiAnNzIwcHggMHB4JyxcbiAgICB0aHJlc2hvbGQ6IDAsXG4gICAgc3RhdHVzOiB7XG4gICAgICBzaG93TG9hZGVkQ291bnQ6IHRydWUsXG4gICAgICBzaG93VG90YWxDb3VudDogdHJ1ZSxcbiAgICAgIHNob3dFbmRTdGF0ZTogdHJ1ZSxcbiAgICB9LFxuICB9LFxuICB0b29sYmFyOiB7XG4gICAgZGVuc2l0eTogJ2NvbXBhY3QnLFxuICAgIGRpc3BsYXlNb2RlOiAnYXV0bycsXG4gICAgbWF4UHJvbW90ZWRGaWx0ZXJzOiAyLFxuICAgIHNob3dSZWZyZXNoOiB0cnVlLFxuICAgIHNob3dTb3J0OiB0cnVlLFxuICAgIHNob3dGaWx0ZXJDaGlwczogJ2F1dG8nLFxuICB9LFxufSBzYXRpc2ZpZXMgQmFja29mZmljZUxpc3RVaUNvbmZpZztcblxuZXhwb3J0IGNvbnN0IGJ1aWxkV2hlcmVGcm9tRW50cmllcyA9IChcbiAgZW50cmllczogcmVhZG9ubHkgQmFja29mZmljZVdoZXJlRW50cnlbXSxcbik6IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbCA9PiB7XG4gIGxldCB3aGVyZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gfCBudWxsID0gbnVsbDtcbiAgZW50cmllcy5mb3JFYWNoKCh7IGtleSwgcGF0aCwgdmFsdWUgfSkgPT4ge1xuICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgbmV4dFdoZXJlID0gc2V0V2hlcmVWYWx1ZSh3aGVyZSwga2V5LCB2YWx1ZSwgcGF0aCk7XG4gICAgaWYgKG5leHRXaGVyZSAhPSBudWxsKSB7XG4gICAgICB3aGVyZSA9IG5leHRXaGVyZTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4gd2hlcmU7XG59O1xuXG5leHBvcnQgY29uc3QgcmVzb2x2ZVBpY2tlclNlYXJjaEZyb21GaWx0ZXJzID0gPFxuICBXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBGaWx0ZXJXaGVyZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0gV2hlcmUsXG4+KFxuICBmaWx0ZXJzOiByZWFkb25seSBCYWNrb2ZmaWNlTGVnYWN5RmlsdGVyU3BlYzxGaWx0ZXJXaGVyZT5bXSxcbik6IEJhY2tvZmZpY2VQaWNrZXJTZWFyY2hDb25maWc8V2hlcmU+IHwgdW5kZWZpbmVkID0+IHtcbiAgY29uc3QgbWF0Y2ggPSBmaWx0ZXJzLmZpbmQoKGZpbHRlcikgPT4ge1xuICAgIHJldHVybiBmaWx0ZXIua2luZCA9PT0gJ3RleHRDb250YWlucyc7XG4gIH0pO1xuICBpZiAobWF0Y2ggPT0gbnVsbCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbiAgY29uc3Qgd2hlcmVLZXkgPSAobWF0Y2gud2hlcmVLZXkgPz8gbWF0Y2guaWQpIGFzIEV4dHJhY3Q8a2V5b2YgV2hlcmUsIHN0cmluZz47XG4gIHJldHVybiB7IHdoZXJlS2V5LCBwYXRoOiBtYXRjaC5wYXRoIH07XG59O1xuXG5leHBvcnQgY29uc3QgcmVzb2x2ZVBpY2tlclNjb3BlRnJvbUZpbHRlcnMgPSA8XG4gIFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIEZpbHRlcldoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBXaGVyZSxcbj4oXG4gIGZpbHRlcnM6IHJlYWRvbmx5IEJhY2tvZmZpY2VMZWdhY3lGaWx0ZXJTcGVjPEZpbHRlcldoZXJlPltdLFxuICBzdXBwb3J0ZWRLZXlzOiByZWFkb25seSBzdHJpbmdbXSxcbik6IEJhY2tvZmZpY2VQaWNrZXJTY29wZUNvbmZpZzxXaGVyZT4gfCB1bmRlZmluZWQgPT4ge1xuICBjb25zdCBzY29wZWRLZXlzID0gbmV3IFNldDxFeHRyYWN0PGtleW9mIFdoZXJlLCBzdHJpbmc+PigpO1xuICBmaWx0ZXJzLmZvckVhY2goKGZpbHRlcikgPT4ge1xuICAgIGNvbnN0IGtleSA9IFN0cmluZyhmaWx0ZXIud2hlcmVLZXkgPz8gZmlsdGVyLmlkKTtcbiAgICBpZiAoc3VwcG9ydGVkS2V5cy5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICBzY29wZWRLZXlzLmFkZChcbiAgICAgICAgKGZpbHRlci53aGVyZUtleSA/PyBmaWx0ZXIuaWQpIGFzIEV4dHJhY3Q8a2V5b2YgV2hlcmUsIHN0cmluZz4sXG4gICAgICApO1xuICAgIH1cbiAgfSk7XG4gIGlmIChzY29wZWRLZXlzLnNpemUgPT09IDApIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIHJldHVybiB7IGtleXM6IEFycmF5LmZyb20oc2NvcGVkS2V5cykgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBidWlsZEJhY2tvZmZpY2VDb25uZWN0aW9uTGlzdENvbmZpZyA9IDxcbiAgVE9wZXJhdGlvbiBleHRlbmRzIE9wZXJhdGlvblR5cGUsXG4gIFJvd1JlZiBleHRlbmRzIG9iamVjdCxcbiAgUm93VmlldyBleHRlbmRzIG9iamVjdCxcbiAgTGlzdEZyYWdtZW50RGF0YSA9IHVua25vd24sXG4gIFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VE9wZXJhdGlvbj4sXG4gIFNvcnQgZXh0ZW5kcyBzdHJpbmcgPSBCYWNrb2ZmaWNlT3BlcmF0aW9uU29ydDxUT3BlcmF0aW9uPixcbj4ob3B0aW9uczoge1xuICB0aXRsZTogSTE4bkxhYmVsO1xuICBjb2x1bW5zOiByZWFkb25seSBCYWNrb2ZmaWNlQ29sdW1uU3BlYzxSb3dWaWV3PltdO1xuICByb3dGbGFncz86IHJlYWRvbmx5IEJhY2tvZmZpY2VSb3dGbGFnU3BlYzxSb3dWaWV3PltdO1xuICBzb3J0czogcmVhZG9ubHkgQmFja29mZmljZUxlZ2FjeVNvcnRTcGVjPFNvcnQ+W107XG4gIGZpbHRlcnM6IHJlYWRvbmx5IEJhY2tvZmZpY2VMZWdhY3lGaWx0ZXJTcGVjPFdoZXJlPltdO1xuICBkZWZhdWx0U3RhdGU6IEJhY2tvZmZpY2VMaXN0U3RhdGU8V2hlcmUsIFNvcnQ+O1xuICBxdWVyeTogR3JhcGhRTFRhZ2dlZE5vZGU7XG4gIGZyYWdtZW50OiBHcmFwaFFMVGFnZ2VkTm9kZTtcbiAgY291bnQ6IEJhY2tvZmZpY2VSdW50aW1lRW50aXR5Q291bnRDb25maWc8V2hlcmU+O1xuICBnZXRDb25uZWN0aW9uOiAoZGF0YTogTGlzdEZyYWdtZW50RGF0YSkgPT4gQmFja29mZmljZUNvbm5lY3Rpb248Um93UmVmPjtcbiAgdG9Sb3c6IChyb3dSZWY6IFJvd1JlZikgPT4gUm93VmlldztcbiAgYnVpbGRRdWVyeVZhcmlhYmxlcz86IChcbiAgICBpbnB1dDogQmFja29mZmljZUxpc3RRdWVyeUlucHV0PFRPcGVyYXRpb24sIFdoZXJlLCBTb3J0PixcbiAgKSA9PiBUT3BlcmF0aW9uWyd2YXJpYWJsZXMnXTtcbiAgcmVzcG9uc2l2ZT86IEJhY2tvZmZpY2VMaXN0UmVzcG9uc2l2ZVByb2ZpbGU8Um93Vmlldz47XG4gIHVpPzogQmFja29mZmljZUxpc3RVaUNvbmZpZztcbn0pOiBCYWNrb2ZmaWNlQ29ubmVjdGlvbkxpc3RDb25maWc8XG4gIFRPcGVyYXRpb24sXG4gIFJvd1JlZixcbiAgUm93VmlldyxcbiAgTGlzdEZyYWdtZW50RGF0YSxcbiAgV2hlcmUsXG4gIFNvcnRcbj4gPT4ge1xuICByZXR1cm4ge1xuICAgIGtpbmQ6ICdjb25uZWN0aW9uJyxcbiAgICB0aXRsZTogb3B0aW9ucy50aXRsZSxcbiAgICBxdWVyeTogb3B0aW9ucy5xdWVyeSxcbiAgICBmcmFnbWVudDogb3B0aW9ucy5mcmFnbWVudCxcbiAgICBjb3VudDogb3B0aW9ucy5jb3VudCxcbiAgICBnZXRDb25uZWN0aW9uOiBvcHRpb25zLmdldENvbm5lY3Rpb24sXG4gICAgdG9Sb3c6IG9wdGlvbnMudG9Sb3csXG4gICAgZ2V0Um93SWQsXG4gICAgY29sdW1uczogb3B0aW9ucy5jb2x1bW5zLFxuICAgIHJvd0ZsYWdzOiBvcHRpb25zLnJvd0ZsYWdzLFxuICAgIHNvcnRzOiBtYXBTb3J0cyhvcHRpb25zLnNvcnRzKSxcbiAgICBmaWx0ZXJzOiBtYXBGaWx0ZXJzKG9wdGlvbnMuZmlsdGVycyksXG4gICAgZGVmYXVsdFN0YXRlOiBvcHRpb25zLmRlZmF1bHRTdGF0ZSxcbiAgICBidWlsZFF1ZXJ5VmFyaWFibGVzOlxuICAgICAgb3B0aW9ucy5idWlsZFF1ZXJ5VmFyaWFibGVzID8/XG4gICAgICAoKGlucHV0KSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgd2hlcmU6IGlucHV0LndoZXJlLFxuICAgICAgICAgIHNvcnQ6IGlucHV0LnNvcnQsXG4gICAgICAgICAgY291bnQ6IGlucHV0LmNvdW50LFxuICAgICAgICAgIGN1cnNvcjogaW5wdXQuY3Vyc29yLFxuICAgICAgICB9O1xuICAgICAgfSksXG4gICAgcmVzcG9uc2l2ZTogb3B0aW9ucy5yZXNwb25zaXZlID8/IHtcbiAgICAgIG1vZGU6ICdhdXRvJyxcbiAgICAgIGRlbnNpdHk6ICdjb21wYWN0JyxcbiAgICB9LFxuICAgIHVpOiBvcHRpb25zLnVpID8/IERFRkFVTFRfQkFDS09GRklDRV9MSVNUX1VJX0NPTkZJRyxcbiAgfTtcbn07XG5cbi8qKlxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkQmFja29mZmljZURldGFpbFBhZ2VDb25maWc8XG4gIERldGFpbFZpZXcgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfSxcbiAgRGV0YWlsRGF0YSA9IERldGFpbFZpZXcsXG4gIExheW91dFZpZXcgPSBEZXRhaWxWaWV3LFxuICBEZXRhaWxRdWVyeURhdGEgPSB1bmtub3duLFxuICBEZXRhaWxGcmFnbWVudEtleSA9IHVua25vd24sXG4gIERldGFpbFF1ZXJ5VmFyaWFibGVzID0geyBpZDogc3RyaW5nIH0sXG4+KG9wdGlvbnM6IHtcbiAgaWQ6IHN0cmluZztcbiAgcGF0aDogc3RyaW5nO1xuICBsYWJlbDogSTE4bkxhYmVsO1xuICBxdWVyeTogR3JhcGhRTFRhZ2dlZE5vZGU7XG4gIGZyYWdtZW50OiBHcmFwaFFMVGFnZ2VkTm9kZTtcbiAgdG9WaWV3OiAoZGF0YTogRGV0YWlsRGF0YSkgPT4gRGV0YWlsVmlldztcbiAgY29udGVudDogcmVhZG9ubHkgQmFja29mZmljZURldGFpbENvbnRlbnRTcGVjPERldGFpbFZpZXc+W107XG4gIGFjdGlvbnM/OiByZWFkb25seSBCYWNrb2ZmaWNlRW50aXR5QWN0aW9uU3BlYzxEZXRhaWxWaWV3PltdO1xuICByZXNvbHZlTm9kZTogKFxuICAgIGRhdGE6IERldGFpbFF1ZXJ5RGF0YSxcbiAgICBjb250ZXh0OiB7IGlkOiBzdHJpbmc7IGRldGFpbElkPzogc3RyaW5nIH0sXG4gICkgPT4gRGV0YWlsRnJhZ21lbnRLZXkgfCBudWxsO1xuICBidWlsZFZhcmlhYmxlcz86IChpbnB1dDoge1xuICAgIGlkOiBzdHJpbmc7XG4gIH0pID0+IEJhY2tvZmZpY2VEZXRhaWxWYXJpYWJsZXM8RGV0YWlsUXVlcnlWYXJpYWJsZXM+O1xuICBpc1Zpc2libGU/OiAobGF5b3V0UGFnZTogTGF5b3V0VmlldykgPT4gYm9vbGVhbjtcbiAgcHJvZmlsZT86IEJhY2tvZmZpY2VEZXRhaWxMYXlvdXRQcm9maWxlPERldGFpbFZpZXc+O1xufSk6IEJhY2tvZmZpY2VEZXRhaWxQYWdlU3BlYzxcbiAgRGV0YWlsVmlldyxcbiAgTGF5b3V0VmlldyxcbiAgRGV0YWlsRGF0YSxcbiAgRGV0YWlsUXVlcnlEYXRhLFxuICBEZXRhaWxGcmFnbWVudEtleSxcbiAgRGV0YWlsUXVlcnlWYXJpYWJsZXNcbj4ge1xuICByZXR1cm4ge1xuICAgIHF1ZXJ5OiBvcHRpb25zLnF1ZXJ5LFxuICAgIGZyYWdtZW50OiBvcHRpb25zLmZyYWdtZW50LFxuICAgIHJlc29sdmVOb2RlOiBvcHRpb25zLnJlc29sdmVOb2RlLFxuICAgIHRvVmlldzogb3B0aW9ucy50b1ZpZXcsXG4gICAgYnVpbGRWYXJpYWJsZXM6IG9wdGlvbnMuYnVpbGRWYXJpYWJsZXMsXG4gICAgaWQ6IG9wdGlvbnMuaWQsXG4gICAgcGF0aDogb3B0aW9ucy5wYXRoLFxuICAgIGxhYmVsOiBvcHRpb25zLmxhYmVsLFxuICAgIGNvbnRlbnQ6IG9wdGlvbnMuY29udGVudCxcbiAgICBhY3Rpb25zOiBvcHRpb25zLmFjdGlvbnMsXG4gICAgaXNWaXNpYmxlOiBvcHRpb25zLmlzVmlzaWJsZSxcbiAgICBwcm9maWxlOiBvcHRpb25zLnByb2ZpbGUsXG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBidWlsZEJhY2tvZmZpY2VFbnRpdHlEZXRhaWxDb25maWcgPSA8XG4gIExheW91dERhdGEgZXh0ZW5kcyBvYmplY3QsXG4gIExheW91dFZpZXcgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfSxcbiAgTWFpbkRhdGEgZXh0ZW5kcyBvYmplY3QgPSBMYXlvdXREYXRhLFxuICBNYWluVmlldyBleHRlbmRzIHsgaWQ6IHN0cmluZyB9ID0gTGF5b3V0VmlldyxcbiAgTGF5b3V0UXVlcnlEYXRhID0gdW5rbm93bixcbiAgTWFpblF1ZXJ5RGF0YSA9IHVua25vd24sXG4gIExheW91dEZyYWdtZW50S2V5ID0gdW5rbm93bixcbiAgTWFpbkZyYWdtZW50S2V5ID0gdW5rbm93bixcbiAgTGF5b3V0UXVlcnlWYXJpYWJsZXMgPSB7IGlkOiBzdHJpbmcgfSxcbiAgTWFpblF1ZXJ5VmFyaWFibGVzID0geyBpZDogc3RyaW5nIH0sXG4+KG9wdGlvbnM6IHtcbiAgdGl0bGU6IEkxOG5MYWJlbDtcbiAgaGVhZGVyVGl0bGU/OiBJMThuTGFiZWw7XG4gIGhlYWRlclN1YnRpdGxlPzogSTE4bkxhYmVsO1xuICBxdWVyeTogR3JhcGhRTFRhZ2dlZE5vZGU7XG4gIGZyYWdtZW50OiBHcmFwaFFMVGFnZ2VkTm9kZTtcbiAgdG9WaWV3OiAoZGF0YTogTWFpbkRhdGEpID0+IE1haW5WaWV3O1xuICBhY3Rpb25zPzogcmVhZG9ubHkgQmFja29mZmljZUVudGl0eUFjdGlvblNwZWM8TWFpblZpZXc+W107XG4gIGxheW91dFF1ZXJ5PzogR3JhcGhRTFRhZ2dlZE5vZGU7XG4gIGxheW91dEZyYWdtZW50PzogR3JhcGhRTFRhZ2dlZE5vZGU7XG4gIGxheW91dFRvVmlldz86IChkYXRhOiBMYXlvdXREYXRhKSA9PiBMYXlvdXRWaWV3O1xuICBoZWFkZXI/OiBCYWNrb2ZmaWNlRW50aXR5RGV0YWlsQ29uZmlnPFxuICAgIExheW91dERhdGEsXG4gICAgTGF5b3V0VmlldyxcbiAgICBNYWluRGF0YSxcbiAgICBNYWluVmlldyxcbiAgICBNYWluRGF0YSxcbiAgICBNYWluVmlldyxcbiAgICBMYXlvdXRRdWVyeURhdGEsXG4gICAgTWFpblF1ZXJ5RGF0YSxcbiAgICBNYWluUXVlcnlEYXRhLFxuICAgIExheW91dEZyYWdtZW50S2V5LFxuICAgIE1haW5GcmFnbWVudEtleSxcbiAgICBNYWluRnJhZ21lbnRLZXksXG4gICAgTGF5b3V0UXVlcnlWYXJpYWJsZXMsXG4gICAgTWFpblF1ZXJ5VmFyaWFibGVzLFxuICAgIE1haW5RdWVyeVZhcmlhYmxlc1xuICA+WydoZWFkZXInXTtcbiAgcmVzb2x2ZU5vZGU6IEJhY2tvZmZpY2VFbnRpdHlEZXRhaWxDb25maWc8XG4gICAgTGF5b3V0RGF0YSxcbiAgICBMYXlvdXRWaWV3LFxuICAgIE1haW5EYXRhLFxuICAgIE1haW5WaWV3LFxuICAgIE1haW5EYXRhLFxuICAgIE1haW5WaWV3LFxuICAgIExheW91dFF1ZXJ5RGF0YSxcbiAgICBNYWluUXVlcnlEYXRhLFxuICAgIE1haW5RdWVyeURhdGEsXG4gICAgTGF5b3V0RnJhZ21lbnRLZXksXG4gICAgTWFpbkZyYWdtZW50S2V5LFxuICAgIE1haW5GcmFnbWVudEtleSxcbiAgICBMYXlvdXRRdWVyeVZhcmlhYmxlcyxcbiAgICBNYWluUXVlcnlWYXJpYWJsZXMsXG4gICAgTWFpblF1ZXJ5VmFyaWFibGVzXG4gID5bJ21haW5QYWdlJ11bJ3Jlc29sdmVOb2RlJ107XG4gIGxheW91dFJlc29sdmVOb2RlOiBCYWNrb2ZmaWNlRW50aXR5RGV0YWlsQ29uZmlnPFxuICAgIExheW91dERhdGEsXG4gICAgTGF5b3V0VmlldyxcbiAgICBNYWluRGF0YSxcbiAgICBNYWluVmlldyxcbiAgICBNYWluRGF0YSxcbiAgICBNYWluVmlldyxcbiAgICBMYXlvdXRRdWVyeURhdGEsXG4gICAgTWFpblF1ZXJ5RGF0YSxcbiAgICBNYWluUXVlcnlEYXRhLFxuICAgIExheW91dEZyYWdtZW50S2V5LFxuICAgIE1haW5GcmFnbWVudEtleSxcbiAgICBNYWluRnJhZ21lbnRLZXksXG4gICAgTGF5b3V0UXVlcnlWYXJpYWJsZXMsXG4gICAgTWFpblF1ZXJ5VmFyaWFibGVzLFxuICAgIE1haW5RdWVyeVZhcmlhYmxlc1xuICA+WydsYXlvdXRQYWdlJ11bJ3Jlc29sdmVOb2RlJ107XG4gIGJ1aWxkVmFyaWFibGVzPzogKGlucHV0OiB7XG4gICAgaWQ6IHN0cmluZztcbiAgfSkgPT4gQmFja29mZmljZURldGFpbFZhcmlhYmxlczxNYWluUXVlcnlWYXJpYWJsZXM+O1xuICBsYXlvdXRCdWlsZFZhcmlhYmxlcz86IChpbnB1dDoge1xuICAgIGlkOiBzdHJpbmc7XG4gIH0pID0+IEJhY2tvZmZpY2VEZXRhaWxWYXJpYWJsZXM8TGF5b3V0UXVlcnlWYXJpYWJsZXM+O1xuICBkZXRhaWxDb250ZW50PzogcmVhZG9ubHkgQmFja29mZmljZURldGFpbENvbnRlbnRTcGVjPE1haW5WaWV3PltdO1xuICBtYWluUGFnZUlkPzogc3RyaW5nO1xuICBtYWluUGFnZVBhdGg/OiBzdHJpbmc7XG4gIG1haW5QYWdlTGFiZWw/OiBJMThuTGFiZWw7XG4gIHN1YlBhZ2VzPzogQmFja29mZmljZUVudGl0eURldGFpbENvbmZpZzxcbiAgICBMYXlvdXREYXRhLFxuICAgIExheW91dFZpZXcsXG4gICAgTWFpbkRhdGEsXG4gICAgTWFpblZpZXcsXG4gICAgTWFpbkRhdGEsXG4gICAgTWFpblZpZXcsXG4gICAgTGF5b3V0UXVlcnlEYXRhLFxuICAgIE1haW5RdWVyeURhdGEsXG4gICAgTWFpblF1ZXJ5RGF0YSxcbiAgICBMYXlvdXRGcmFnbWVudEtleSxcbiAgICBNYWluRnJhZ21lbnRLZXksXG4gICAgTWFpbkZyYWdtZW50S2V5LFxuICAgIExheW91dFF1ZXJ5VmFyaWFibGVzLFxuICAgIE1haW5RdWVyeVZhcmlhYmxlcyxcbiAgICBNYWluUXVlcnlWYXJpYWJsZXNcbiAgPlsnc3ViUGFnZXMnXTtcbiAgcHJvZmlsZT86IEJhY2tvZmZpY2VEZXRhaWxMYXlvdXRQcm9maWxlPExheW91dFZpZXc+O1xuICBtYWluUGFnZVByb2ZpbGU/OiBCYWNrb2ZmaWNlRGV0YWlsTGF5b3V0UHJvZmlsZTxNYWluVmlldz47XG59KTogQmFja29mZmljZUVudGl0eURldGFpbENvbmZpZzxcbiAgTGF5b3V0RGF0YSxcbiAgTGF5b3V0VmlldyxcbiAgTWFpbkRhdGEsXG4gIE1haW5WaWV3LFxuICBNYWluRGF0YSxcbiAgTWFpblZpZXcsXG4gIExheW91dFF1ZXJ5RGF0YSxcbiAgTWFpblF1ZXJ5RGF0YSxcbiAgTWFpblF1ZXJ5RGF0YSxcbiAgTGF5b3V0RnJhZ21lbnRLZXksXG4gIE1haW5GcmFnbWVudEtleSxcbiAgTWFpbkZyYWdtZW50S2V5LFxuICBMYXlvdXRRdWVyeVZhcmlhYmxlcyxcbiAgTWFpblF1ZXJ5VmFyaWFibGVzLFxuICBNYWluUXVlcnlWYXJpYWJsZXNcbj4gPT4ge1xuICBjb25zdCBkZWZhdWx0SGVhZGVyID0gYnVpbGRHZW5lcmljRGV0YWlsSGVhZGVyKHtcbiAgICB0aXRsZTogb3B0aW9ucy5oZWFkZXJUaXRsZSA/PyBvcHRpb25zLnRpdGxlLFxuICAgIHN1YnRpdGxlOiBvcHRpb25zLmhlYWRlclN1YnRpdGxlLFxuICB9KTtcbiAgY29uc3QgbWFpblBhZ2VJZCA9IG9wdGlvbnMubWFpblBhZ2VJZCA/PyAnb3ZlcnZpZXcnO1xuICBjb25zdCBtYWluUGFnZVBhdGggPSBvcHRpb25zLm1haW5QYWdlUGF0aCA/PyAnb3ZlcnZpZXcnO1xuICBjb25zdCBtYWluUGFnZUxhYmVsID0gb3B0aW9ucy5tYWluUGFnZUxhYmVsID8/IG9wdGlvbnMudGl0bGU7XG4gIGNvbnN0IG1haW5QYWdlID0gYnVpbGRCYWNrb2ZmaWNlRGV0YWlsUGFnZUNvbmZpZzxcbiAgICBNYWluVmlldyxcbiAgICBNYWluRGF0YSxcbiAgICBMYXlvdXRWaWV3LFxuICAgIE1haW5RdWVyeURhdGEsXG4gICAgTWFpbkZyYWdtZW50S2V5LFxuICAgIE1haW5RdWVyeVZhcmlhYmxlc1xuICA+KHtcbiAgICBpZDogbWFpblBhZ2VJZCxcbiAgICBwYXRoOiBtYWluUGFnZVBhdGgsXG4gICAgbGFiZWw6IG1haW5QYWdlTGFiZWwsXG4gICAgcXVlcnk6IG9wdGlvbnMucXVlcnksXG4gICAgZnJhZ21lbnQ6IG9wdGlvbnMuZnJhZ21lbnQsXG4gICAgcmVzb2x2ZU5vZGU6IG9wdGlvbnMucmVzb2x2ZU5vZGUsXG4gICAgdG9WaWV3OiBvcHRpb25zLnRvVmlldyxcbiAgICBidWlsZFZhcmlhYmxlczogb3B0aW9ucy5idWlsZFZhcmlhYmxlcyxcbiAgICBjb250ZW50OiBvcHRpb25zLmRldGFpbENvbnRlbnQgPz8gW10sXG4gICAgYWN0aW9uczogb3B0aW9ucy5hY3Rpb25zLFxuICAgIHByb2ZpbGU6IG9wdGlvbnMubWFpblBhZ2VQcm9maWxlLFxuICB9KTtcblxuICByZXR1cm4ge1xuICAgIHRpdGxlOiBvcHRpb25zLnRpdGxlLFxuICAgIGhlYWRlcjogb3B0aW9ucy5oZWFkZXIgPz8gZGVmYXVsdEhlYWRlcixcbiAgICBsYXlvdXRQYWdlOiB7XG4gICAgICBxdWVyeTogb3B0aW9ucy5sYXlvdXRRdWVyeSA/PyBvcHRpb25zLnF1ZXJ5LFxuICAgICAgZnJhZ21lbnQ6IG9wdGlvbnMubGF5b3V0RnJhZ21lbnQgPz8gb3B0aW9ucy5mcmFnbWVudCxcbiAgICAgIHJlc29sdmVOb2RlOiBvcHRpb25zLmxheW91dFJlc29sdmVOb2RlLFxuICAgICAgdG9WaWV3OlxuICAgICAgICBvcHRpb25zLmxheW91dFRvVmlldyA/P1xuICAgICAgICAob3B0aW9ucy50b1ZpZXcgYXMgdW5rbm93biBhcyAoZGF0YTogTGF5b3V0RGF0YSkgPT4gTGF5b3V0VmlldyksXG4gICAgICBidWlsZFZhcmlhYmxlczpcbiAgICAgICAgb3B0aW9ucy5sYXlvdXRCdWlsZFZhcmlhYmxlcyA/P1xuICAgICAgICAob3B0aW9ucy5idWlsZFZhcmlhYmxlcyBhcyB1bmtub3duIGFzXG4gICAgICAgICAgfCAoKGlucHV0OiB7XG4gICAgICAgICAgICAgIGlkOiBzdHJpbmc7XG4gICAgICAgICAgICB9KSA9PiBCYWNrb2ZmaWNlRGV0YWlsVmFyaWFibGVzPExheW91dFF1ZXJ5VmFyaWFibGVzPilcbiAgICAgICAgICB8IHVuZGVmaW5lZCksXG4gICAgfSxcbiAgICBtYWluUGFnZSxcbiAgICBzdWJQYWdlczogb3B0aW9ucy5zdWJQYWdlcyxcbiAgICBwcm9maWxlOiBvcHRpb25zLnByb2ZpbGUsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRCYWNrb2ZmaWNlQ29ubmVjdGlvbkRldGFpbFZhcmlhYmxlcyA9IDxcbiAgV2hlcmUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgU29ydCBleHRlbmRzIHN0cmluZyxcbj4oaW5wdXQ6IHtcbiAgZGV0YWlsSWQ6IHN0cmluZztcbiAgd2hlcmU6IFdoZXJlIHwgbnVsbDtcbiAgc29ydDogU29ydCB8IG51bGw7XG59KTogQmFja29mZmljZURldGFpbFZhcmlhYmxlczx7XG4gIHdoZXJlOiBXaGVyZSB8IG51bGw7XG4gIHNvcnQ6IFNvcnQgfCBudWxsO1xuICBjb3VudDogbnVtYmVyO1xufT4gPT4ge1xuICByZXR1cm4ge1xuICAgIGRldGFpbElkOiBpbnB1dC5kZXRhaWxJZCxcbiAgICB2YXJpYWJsZXM6IHtcbiAgICAgIHdoZXJlOiBpbnB1dC53aGVyZSxcbiAgICAgIHNvcnQ6IGlucHV0LnNvcnQsXG4gICAgICBjb3VudDogQkFDS09GRklDRV9MSVNUX0RFRkFVTFRTLnBhZ2VTaXplLFxuICAgIH0sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgYnVpbGRCYWNrb2ZmaWNlRW50aXR5UGlja2VyQ29uZmlnID0gPFxuICBUT3BlcmF0aW9uIGV4dGVuZHMgT3BlcmF0aW9uVHlwZSxcbiAgUm93UmVmIGV4dGVuZHMgb2JqZWN0LFxuICBSb3dWaWV3IGV4dGVuZHMgeyBpZDogc3RyaW5nIH0sXG4gIFBpY2tlckZyYWdtZW50RGF0YSA9IHVua25vd24sXG4gIFdoZXJlIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSBCYWNrb2ZmaWNlT3BlcmF0aW9uV2hlcmU8VE9wZXJhdGlvbj4sXG4gIFZhbHVlUXVlcnlEYXRhID0gQmFja29mZmljZUFsaWFzZWRQaWNrZXJWYWx1ZVJlc3BvbnNlPHN0cmluZywgUm93UmVmPixcbj4ob3B0aW9uczoge1xuICBxdWVyeTogR3JhcGhRTFRhZ2dlZE5vZGU7XG4gIGZyYWdtZW50OiBHcmFwaFFMVGFnZ2VkTm9kZTtcbiAgdmFsdWU/OiBCYWNrb2ZmaWNlUGlja2VyVmFsdWVDb25maWc8Um93UmVmLCBSb3dWaWV3LCBWYWx1ZVF1ZXJ5RGF0YT47XG4gIGdldENvbm5lY3Rpb246IChkYXRhOiBQaWNrZXJGcmFnbWVudERhdGEpID0+IEJhY2tvZmZpY2VDb25uZWN0aW9uPFJvd1JlZj47XG4gIHRvUm93OiAocm93UmVmOiBSb3dSZWYpID0+IFJvd1ZpZXc7XG4gIGdldFJvd0lkPzogKHJvdzogUm93VmlldykgPT4gc3RyaW5nO1xuICBzZWFyY2g/OiBCYWNrb2ZmaWNlUGlja2VyU2VhcmNoQ29uZmlnPFdoZXJlPjtcbiAgc2NvcGU/OiBCYWNrb2ZmaWNlUGlja2VyU2NvcGVDb25maWc8V2hlcmU+O1xuICBzZWFyY2hFbmFibGVkPzogYm9vbGVhbjtcbiAgc2VhcmNoUmVxdWlyZWQ/OiBib29sZWFuO1xuICBzZWFyY2hQbGFjZWhvbGRlcj86IEkxOG5MYWJlbDtcbiAgYnVpbGRRdWVyeVZhcmlhYmxlcz86IChcbiAgICBpbnB1dDogQmFja29mZmljZVBpY2tlclF1ZXJ5SW5wdXQ8VE9wZXJhdGlvbiwgV2hlcmU+LFxuICApID0+IFRPcGVyYXRpb25bJ3ZhcmlhYmxlcyddO1xufSk6IEJhY2tvZmZpY2VFbnRpdHlQaWNrZXJDb25maWc8XG4gIFRPcGVyYXRpb24sXG4gIFJvd1JlZixcbiAgUm93VmlldyxcbiAgUGlja2VyRnJhZ21lbnREYXRhLFxuICBXaGVyZSxcbiAgVmFsdWVRdWVyeURhdGFcbj4gPT4ge1xuICBjb25zdCBzZWFyY2hDb25maWcgPSBvcHRpb25zLnNlYXJjaDtcbiAgY29uc3Qgc2NvcGVLZXlzID0gb3B0aW9ucy5zY29wZT8ua2V5cyA/PyBbXTtcbiAgY29uc3Qgc2VhcmNoUmVxdWlyZWQgPSBvcHRpb25zLnNlYXJjaFJlcXVpcmVkID8/IGZhbHNlO1xuICBjb25zdCBzZWFyY2hFbmFibGVkID1cbiAgICBvcHRpb25zLnNlYXJjaEVuYWJsZWQgPz8gKHNlYXJjaENvbmZpZyAhPSBudWxsIHx8IHNlYXJjaFJlcXVpcmVkKTtcbiAgY29uc3QgZ2V0UmVzb2x2ZWRSb3dJZCA9XG4gICAgb3B0aW9ucy5nZXRSb3dJZCA/P1xuICAgICgocm93OiBSb3dWaWV3KSA9PiB7XG4gICAgICByZXR1cm4gcm93LmlkO1xuICAgIH0pO1xuXG4gIHJldHVybiB7XG4gICAgcXVlcnk6IG9wdGlvbnMucXVlcnksXG4gICAgZnJhZ21lbnQ6IG9wdGlvbnMuZnJhZ21lbnQsXG4gICAgdmFsdWU6IG9wdGlvbnMudmFsdWUsXG4gICAgZ2V0Q29ubmVjdGlvbjogb3B0aW9ucy5nZXRDb25uZWN0aW9uLFxuICAgIHRvUm93OiBvcHRpb25zLnRvUm93LFxuICAgIGdldFJvd0lkOiBnZXRSZXNvbHZlZFJvd0lkLFxuICAgIHNlYXJjaEVuYWJsZWQsXG4gICAgc2VhcmNoUmVxdWlyZWQsXG4gICAgc2VhcmNoUGxhY2Vob2xkZXI6IG9wdGlvbnMuc2VhcmNoUGxhY2Vob2xkZXIsXG4gICAgYnVpbGRRdWVyeVZhcmlhYmxlczpcbiAgICAgIG9wdGlvbnMuYnVpbGRRdWVyeVZhcmlhYmxlcyA/P1xuICAgICAgKChpbnB1dCkgPT4ge1xuICAgICAgICBjb25zdCB0cmltbWVkID0gaW5wdXQuc2VhcmNoLnRyaW0oKTtcbiAgICAgICAgbGV0IHdoZXJlOiBXaGVyZSB8IG51bGwgPSBudWxsO1xuICAgICAgICBpZiAoc2VhcmNoQ29uZmlnICE9IG51bGwgJiYgdHJpbW1lZCAhPT0gJycpIHtcbiAgICAgICAgICBjb25zdCBuZXh0V2hlcmUgPSBzZXRXaGVyZVZhbHVlKFxuICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgIHNlYXJjaENvbmZpZy53aGVyZUtleSxcbiAgICAgICAgICAgIHRyaW1tZWQsXG4gICAgICAgICAgICBzZWFyY2hDb25maWcucGF0aCxcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmIChuZXh0V2hlcmUgIT0gbnVsbCkge1xuICAgICAgICAgICAgd2hlcmUgPSBuZXh0V2hlcmUgYXMgV2hlcmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChpbnB1dC5zY29wZSAhPSBudWxsICYmIHNjb3BlS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgc2NvcGVLZXlzLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBpbnB1dC5zY29wZT8uW1N0cmluZyhrZXkpXTtcbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IG5leHRXaGVyZSA9IHNldFdoZXJlVmFsdWUod2hlcmUsIGtleSwgdmFsdWUpO1xuICAgICAgICAgICAgaWYgKG5leHRXaGVyZSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgIHdoZXJlID0gbmV4dFdoZXJlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgd2hlcmUsXG4gICAgICAgICAgY291bnQ6IDIwLFxuICAgICAgICAgIGN1cnNvcjogbnVsbCxcbiAgICAgICAgfTtcbiAgICAgIH0pLFxuICB9O1xufTtcbiJdfQ==
|
package/lib/esm/index.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
export * from './base64.js';
|
|
2
2
|
export * from './billing.js';
|
|
3
3
|
export * from './builders.js';
|
|
4
|
+
export * from './capabilities.js';
|
|
4
5
|
export * from './constants.js';
|
|
5
6
|
export * from './config/columns.js';
|
|
6
7
|
export * from './config/detail.js';
|
|
7
8
|
export * from './config/detail-builders.js';
|
|
9
|
+
export * from './config/entity-builders.js';
|
|
8
10
|
export * from './config/filters.js';
|
|
9
11
|
export * from './config/list.js';
|
|
10
12
|
export * from './config/listRuntime.js';
|
|
@@ -19,5 +21,6 @@ export * from './state/buildListHref.js';
|
|
|
19
21
|
export * from './state/stableKey.js';
|
|
20
22
|
export * from './state/urlState.js';
|
|
21
23
|
export * from './taskState.js';
|
|
24
|
+
export * from './tools/operation-builders.js';
|
|
22
25
|
export * from './types.js';
|
|
23
26
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,YAAY,CAAC"}
|
package/lib/esm/index.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
export * from './base64.js';
|
|
2
2
|
export * from './billing.js';
|
|
3
3
|
export * from './builders.js';
|
|
4
|
+
export * from './capabilities.js';
|
|
4
5
|
export * from './constants.js';
|
|
5
6
|
export * from './config/columns.js';
|
|
6
7
|
export * from './config/detail.js';
|
|
7
8
|
export * from './config/detail-builders.js';
|
|
9
|
+
export * from './config/entity-builders.js';
|
|
8
10
|
export * from './config/filters.js';
|
|
9
11
|
export * from './config/list.js';
|
|
10
12
|
export * from './config/listRuntime.js';
|
|
@@ -19,5 +21,6 @@ export * from './state/buildListHref.js';
|
|
|
19
21
|
export * from './state/stableKey.js';
|
|
20
22
|
export * from './state/urlState.js';
|
|
21
23
|
export * from './taskState.js';
|
|
24
|
+
export * from './tools/operation-builders.js';
|
|
22
25
|
export * from './types.js';
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsWUFBWSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9iYXNlNjQuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9iaWxsaW5nLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vYnVpbGRlcnMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jYXBhYmlsaXRpZXMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdGFudHMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25maWcvY29sdW1ucy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbmZpZy9kZXRhaWwuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25maWcvZGV0YWlsLWJ1aWxkZXJzLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vY29uZmlnL2VudGl0eS1idWlsZGVycy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbmZpZy9maWx0ZXJzLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vY29uZmlnL2xpc3QuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25maWcvbGlzdFJ1bnRpbWUuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25maWcvcmVjb3JkLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vY29uZmlnL3NvcnRzLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZGV0YWlsL3BhZ2VzLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZGV0YWlsUGFyYW1zLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsdGVycy9zY2hlbWEuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9maWx0ZXJzL3doZXJlLmpzJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzb2x2ZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3N0YXRlL2J1aWxkTGlzdEhyZWYuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdGF0ZS9zdGFibGVLZXkuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9zdGF0ZS91cmxTdGF0ZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3Rhc2tTdGF0ZS5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3Rvb2xzL29wZXJhdGlvbi1idWlsZGVycy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3R5cGVzLmpzJztcbiJdfQ==
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { type GraphQLTaggedNode } from 'relay-runtime';
|
|
2
|
+
import { type BackofficeToolEntityConfig, type BackofficeToolInputSpec, type BackofficeToolOperation, type BackofficeToolOutputSpec, type BackofficeToolVariablesContext, type I18nLabel } from '../types.js';
|
|
3
|
+
export type BackofficeToolTemplateMap = Readonly<Record<string, unknown>>;
|
|
4
|
+
export type BackofficeToolTypeSDLMap = Readonly<Record<string, string>>;
|
|
5
|
+
export type BackofficeToolBuilderLabels = {
|
|
6
|
+
jsonInput: I18nLabel;
|
|
7
|
+
output: I18nLabel;
|
|
8
|
+
invalidJson: I18nLabel;
|
|
9
|
+
};
|
|
10
|
+
export type ParseToolJson = (value: string) => Record<string, unknown> | null;
|
|
11
|
+
export declare const resolveGraphQLInputTypeName: (query: GraphQLTaggedNode) => string | null;
|
|
12
|
+
export declare const resolveToolInputTemplate: (options: {
|
|
13
|
+
query: GraphQLTaggedNode;
|
|
14
|
+
templates: BackofficeToolTemplateMap;
|
|
15
|
+
fallback?: string;
|
|
16
|
+
}) => string;
|
|
17
|
+
export declare const resolveToolInputTypeSDL: (options: {
|
|
18
|
+
query: GraphQLTaggedNode;
|
|
19
|
+
inputTypeSDL: BackofficeToolTypeSDLMap;
|
|
20
|
+
}) => string | null;
|
|
21
|
+
export declare const buildJsonToolInputs: (options: {
|
|
22
|
+
query: GraphQLTaggedNode;
|
|
23
|
+
label: I18nLabel;
|
|
24
|
+
templates?: BackofficeToolTemplateMap;
|
|
25
|
+
defaultValue?: string;
|
|
26
|
+
inputId?: string;
|
|
27
|
+
}) => readonly BackofficeToolInputSpec[];
|
|
28
|
+
export declare const readToolJsonInput: (input: Record<string, unknown>, inputId?: string) => string;
|
|
29
|
+
export declare const buildJsonToolVariables: (options: {
|
|
30
|
+
parseJson: ParseToolJson;
|
|
31
|
+
invalidJsonLabel: I18nLabel;
|
|
32
|
+
inputId?: string;
|
|
33
|
+
mapVariables: (input: Record<string, unknown>, context: BackofficeToolVariablesContext) => Record<string, unknown>;
|
|
34
|
+
}) => NonNullable<BackofficeToolOperation["buildVariables"]>;
|
|
35
|
+
export declare const getToolPayload: (data: unknown, key: string) => unknown;
|
|
36
|
+
export declare const resolveToolPayload: (data: unknown, outputKey: string) => Record<string, unknown> | null;
|
|
37
|
+
export declare const coerceToolValue: (value: unknown) => string | number | null;
|
|
38
|
+
export declare const buildToolPayloadOutput: (config: {
|
|
39
|
+
label: I18nLabel;
|
|
40
|
+
outputKey: string;
|
|
41
|
+
format?: Extract<BackofficeToolOutputSpec, {
|
|
42
|
+
kind: "payload";
|
|
43
|
+
}>["format"];
|
|
44
|
+
}) => BackofficeToolOutputSpec;
|
|
45
|
+
export declare const buildToolKeyValueOutput: (config: {
|
|
46
|
+
label: I18nLabel;
|
|
47
|
+
outputKey: string;
|
|
48
|
+
items: readonly {
|
|
49
|
+
label: I18nLabel;
|
|
50
|
+
field: string;
|
|
51
|
+
}[];
|
|
52
|
+
}) => BackofficeToolOutputSpec;
|
|
53
|
+
export declare const buildToolJsonFieldOutput: (config: {
|
|
54
|
+
label: I18nLabel;
|
|
55
|
+
outputKey: string;
|
|
56
|
+
field: string;
|
|
57
|
+
}) => BackofficeToolOutputSpec;
|
|
58
|
+
export declare const buildToolCodeFieldOutput: (config: {
|
|
59
|
+
label: I18nLabel;
|
|
60
|
+
outputKey: string;
|
|
61
|
+
field: string;
|
|
62
|
+
}) => BackofficeToolOutputSpec;
|
|
63
|
+
export declare const buildJsonToolOperation: (config: {
|
|
64
|
+
query: GraphQLTaggedNode;
|
|
65
|
+
title: I18nLabel;
|
|
66
|
+
subtitle?: I18nLabel;
|
|
67
|
+
labels: BackofficeToolBuilderLabels;
|
|
68
|
+
parseJson: ParseToolJson;
|
|
69
|
+
mapVariables: (input: Record<string, unknown>, context: BackofficeToolVariablesContext) => Record<string, unknown>;
|
|
70
|
+
outputs: readonly BackofficeToolOutputSpec[];
|
|
71
|
+
templates?: BackofficeToolTemplateMap;
|
|
72
|
+
inputTypeSDL?: BackofficeToolTypeSDLMap;
|
|
73
|
+
inputDefaultValue?: string;
|
|
74
|
+
inputId?: string;
|
|
75
|
+
showProjectPicker?: boolean;
|
|
76
|
+
}) => BackofficeToolOperation;
|
|
77
|
+
export declare const buildJsonToolEntity: (config: {
|
|
78
|
+
id: string;
|
|
79
|
+
query: GraphQLTaggedNode;
|
|
80
|
+
title: I18nLabel;
|
|
81
|
+
subtitle?: I18nLabel;
|
|
82
|
+
labels: BackofficeToolBuilderLabels;
|
|
83
|
+
parseJson: ParseToolJson;
|
|
84
|
+
mapVariables: (input: Record<string, unknown>, context: BackofficeToolVariablesContext) => Record<string, unknown>;
|
|
85
|
+
outputKey: string;
|
|
86
|
+
templates?: BackofficeToolTemplateMap;
|
|
87
|
+
inputTypeSDL?: BackofficeToolTypeSDLMap;
|
|
88
|
+
inputDefaultValue?: string;
|
|
89
|
+
showProjectPicker?: boolean;
|
|
90
|
+
}) => BackofficeToolEntityConfig;
|
|
91
|
+
//# sourceMappingURL=operation-builders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operation-builders.d.ts","sourceRoot":"","sources":["../../../src/tools/operation-builders.ts"],"names":[],"mappings":"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"}
|