@docupace/ihub-config 1.1.30 → 1.1.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/README.md +182 -182
  2. package/dist/config-service.d.ts +2 -2
  3. package/dist/config-service.d.ts.map +1 -1
  4. package/dist/config-service.js +7 -5
  5. package/dist/config-service.js.map +1 -1
  6. package/dist/model/graphs/config/common.graphql +7 -7
  7. package/dist/model/graphs/config/fields.graphql +454 -454
  8. package/dist/model/graphs/config/menu.graphql +60 -60
  9. package/dist/model/graphs/config/mutation.graphql +30 -30
  10. package/dist/model/graphs/config/page.graphql +283 -283
  11. package/dist/model/graphs/config/panel.graphql +43 -43
  12. package/dist/model/graphs/config/query.graphql +102 -93
  13. package/dist/model/graphs/config/rules.graphql +116 -116
  14. package/dist/model/graphs/config/selectOptions.graphql +48 -48
  15. package/dist/model/graphs/config/table.graphql +231 -231
  16. package/dist/model/graphs/config/tests.graphql +16 -16
  17. package/dist/model/graphs/config/theme.graphql +41 -41
  18. package/dist/model/graphs/config/ui-components.graphql +11 -11
  19. package/dist/model/graphs/domains/scalars.graphql +3 -3
  20. package/dist/model/graphs/filter.graphql +5 -5
  21. package/dist/model/graphs/schema.graphql +7 -7
  22. package/model/graphs/config/common.graphql +7 -7
  23. package/model/graphs/config/fields.graphql +454 -454
  24. package/model/graphs/config/menu.graphql +60 -60
  25. package/model/graphs/config/mutation.graphql +30 -30
  26. package/model/graphs/config/page.graphql +283 -283
  27. package/model/graphs/config/panel.graphql +43 -43
  28. package/model/graphs/config/query.graphql +102 -93
  29. package/model/graphs/config/rules.graphql +116 -116
  30. package/model/graphs/config/selectOptions.graphql +48 -48
  31. package/model/graphs/config/table.graphql +231 -231
  32. package/model/graphs/config/tests.graphql +16 -16
  33. package/model/graphs/config/theme.graphql +41 -41
  34. package/model/graphs/config/ui-components.graphql +11 -11
  35. package/model/graphs/domains/scalars.graphql +3 -3
  36. package/model/graphs/filter.graphql +5 -5
  37. package/model/graphs/schema.graphql +7 -7
  38. package/package.json +81 -83
@@ -1,231 +1,231 @@
1
-
2
- interface ITable {
3
- """
4
- Identifies the GraphQL data type used to load Core domain metadata for attribute-security checks.
5
- """
6
- dataType: String
7
- selection: TableSelection
8
- disableColumnSorting: Boolean
9
- disableRowClick: Boolean
10
- queryName: String!
11
- operationName: String
12
- variableDefinitions: JSON
13
- variablesExpressions: JSON
14
- filter: TableFilter
15
- search: SimpleSearch
16
- menuItems: [MenuItem!]
17
- columns: [Column!]!
18
- rowMenuItems: [MenuItem!]
19
- preview: Preview
20
- cardView: CardView
21
- groupBy: GroupBy
22
- orderBy: [OrderBy!]
23
- flattenDataKey: String
24
- actionButton: ActionButton
25
- pagingMode: String
26
- maxRows: Int
27
- pageSizeOptions: [Int!]
28
- defaultPageSize: Int
29
- deferredLoad: Boolean
30
- useCardView: Boolean
31
- whereFilter: WhereFilter
32
- whereFilterName: String
33
- emptyStateMessage: String
34
- unstructuredData: Boolean
35
- toolbar: Toolbar
36
- pagination: TablePagination
37
- expandable: Expandable
38
- totals: [TotalsItem!]
39
- config: JSON
40
- configPath: String
41
- configurableAttributes: [ConfigurableAttribute!]
42
- """Admin-defined columns not present in this table's own base `columns`, available to add via the Configure Columns dialog. Site/tenant-scoped catalog — see `$.predefinedColumns` under `configurableAttributes`."""
43
- predefinedColumns: [Column!]
44
- """Admin-defined filter criteria not present in this table's own base `filter.criteria`, available to add via the Configure Filters dialog. Site/tenant-scoped catalog — see `$.predefinedFilters` under `configurableAttributes`."""
45
- predefinedFilters: [TableCriteria!]
46
- }
47
-
48
- """One overridable sub-element of a config object identified by `configPath` — see the parent's own `configPath` field for how the two combine (`${configPath}#${configSubPath}`)."""
49
- type ConfigurableAttribute {
50
- name: String! # e.g. "columns", "filter" — matches the field name on the parent type
51
- configPath: String! # copy of the parent object's own configPath, for convenience
52
- configSubPath: String! # JSONPath relative to the parent object, e.g. "$.columns"
53
- }
54
-
55
- type TotalsItem {
56
- path: String!
57
- label: String!
58
- component: String
59
- }
60
-
61
- type GroupBy {
62
- path: String
63
- pathExpression: String
64
- orderType: OrderType!
65
- component: String
66
- }
67
-
68
-
69
- type OrderBy {
70
- path: String!
71
- orderType: OrderType!
72
- }
73
-
74
- type TableSelection {
75
- enabled: Boolean
76
- """
77
- Label for the single selection action. One-button shorthand, superseded by
78
- actions.
79
- """
80
- label: String @deprecated(reason: "Use actions instead.")
81
- """
82
- Action dispatched by the single selection action. One-button shorthand,
83
- superseded by actions. Ignored when actions is set.
84
- """
85
- action: String @deprecated(reason: "Use actions instead.")
86
- """
87
- Multiple actions rendered side by side in the selection bar. When set, this
88
- takes precedence over the label/action pair.
89
- """
90
- actions: [TableSelectionButton!]
91
- disabledCondition: String
92
- visibilityCondition: String
93
- position: TablePinnedPosition
94
- }
95
-
96
- type TableSelectionButton {
97
- label: String!
98
- action: String!
99
- visibilityCondition: String
100
- disabledCondition: String
101
- }
102
-
103
- enum TablePinnedPosition {
104
- RIGHT
105
- LEFT
106
- }
107
-
108
- type Toolbar {
109
- columns: ToolbarColumns
110
- configureColumns: ToolbarColumns
111
- configureFilters: ToolbarColumns
112
- }
113
-
114
- type ToolbarColumns {
115
- enabled: Boolean
116
- }
117
-
118
- type TablePagination {
119
- totalCount: TablePaginationTotalCount
120
- }
121
-
122
- type TablePaginationTotalCount {
123
- enabled: Boolean
124
- }
125
-
126
- type Table implements ITable
127
-
128
- type NamedTable implements ITable {
129
- name: String
130
- }
131
-
132
- type TabbedTable {
133
- tabs: [TableTab!]!
134
- }
135
-
136
- union AnyTable = Table | TabbedTable
137
-
138
- type TableTab {
139
- name : String!
140
- label: String!
141
- table: Table!
142
- visibilityCondition: String
143
- }
144
-
145
- type TableFilter {
146
- criteria: [TableCriteria!]!
147
- variant: TableFilterVariant
148
- }
149
-
150
- type DateShortcuts {
151
- enabled: Boolean
152
- days: [Int!]
153
- }
154
-
155
- type TableCriteriaDate {
156
- calendars: Int
157
- disableFuture: Boolean
158
- format: String
159
- shortcuts: DateShortcuts
160
- }
161
-
162
- type TableCriteria {
163
- name: String!
164
- label: String!
165
- labelProp: String
166
- path: String!
167
- component: String
168
- config: JSON
169
- dataType: String
170
- date: TableCriteriaDate
171
- defaultValue: String
172
- multiple: Boolean
173
- exactMatchEnabled: Boolean
174
- operator: String
175
- selectOptions: ISelectOptions
176
- min: Float
177
- max: Float
178
- visible: Boolean
179
- """Set when this criterion was added by `$ref`-referencing a predefined/base criterion (e.g. `"#$.predefinedFilters[?(@.name=='status')]"`) rather than being copied inline — see the config-path override merge in `config-service.ts`. Clients that re-save this criterion unchanged should keep sending the same `$ref` (as this value) rather than flattening it into a full copy."""
180
- ref: String
181
- """True when this criterion would still show up — present by name *and* not hidden — without the current scope's own override, i.e. from a broader layer (a role/site override, or the table's own base template `filter.criteria`). Drives two things in the Configure Filters editor. Hide-vs-delete: "remove" must hide (`visible: false`) an inherited criterion, since deleting it from the override would just have it reappear from the broader layer on the next read, while a non-inherited one can be deleted outright. And pin-on-add: re-adding a *non*-inherited criterion must write an explicit `visible: true`, or the broader layer's `visible: false` is inherited per-attribute by the name-keyed merge and the criterion stays invisible however it's re-added. Computed fresh on every read in `config-service.ts`'s `applyConfigPathOverride` against the layers below the identity's own scope tier (`ConfigurationOverrideResult.inheritedSubPaths`), never persisted."""
182
- inherited: Boolean
183
- }
184
-
185
- enum TableFilterVariant {
186
- SIDEBAR
187
- MODAL
188
- }
189
-
190
- type Column {
191
- name: String!
192
- label: String!
193
- visible: Boolean
194
- paths: [String!]
195
- expression: String
196
- """Which predefined formatter (if any) generated `expression` — e.g. `"commaList"`, `"custom"` — see `EXPRESSION_FORMATTERS`/`CUSTOM_FORMATTER_ID` in docupace-ui-main's `expressionGeneration.ts`. Absent for the raw/no-formatting default, which stores neither this nor `expression` at all. Without this field, a column's `expression` round-trips but the formatter that produced it doesn't, so the Configure Columns editor can't tell "built from a known formatter" apart from "hand-authored custom script" on reload and always falls back to showing the latter."""
197
- formatterName: String
198
- component: String
199
- sortable: Boolean
200
- flex: Float
201
- pinned: TablePinnedPosition
202
- config: JSON
203
- filter: ColumnFilter
204
- """Set when this column was added by `$ref`-referencing a predefined/base column (e.g. `"#$.predefinedColumns[?(@.name=='email')]"`) rather than being copied inline — see the config-path override merge in `config-service.ts`. Clients that re-save this column unchanged should keep sending the same `$ref` (as this value) rather than flattening it into a full copy."""
205
- ref: String
206
- """True when this column would still show up — present by name *and* not hidden — without the current scope's own override, i.e. from a broader layer (a role/site override, or the table's own base template `columns`). Drives hide-vs-delete and pin-on-add in the Configure Columns editor — see `TableCriteria.inherited`'s doc comment for the full reasoning, identical here."""
207
- inherited: Boolean
208
- }
209
-
210
- type ColumnFilter {
211
- operators: [String]
212
- path: String
213
- dataType: String
214
- selectOptions: ISelectOptions
215
- }
216
-
217
- type SimpleSearch {
218
- filterType: String
219
- searchBy: String
220
- placeholder: String
221
- selectOptions: QuerySelectOptions!
222
- }
223
-
224
- type WhereFilter {
225
- type: String!
226
- value: JSON!
227
- }
228
-
229
- type Expandable {
230
- component: String
231
- }
1
+
2
+ interface ITable {
3
+ """
4
+ Identifies the GraphQL data type used to load Core domain metadata for attribute-security checks.
5
+ """
6
+ dataType: String
7
+ selection: TableSelection
8
+ disableColumnSorting: Boolean
9
+ disableRowClick: Boolean
10
+ queryName: String!
11
+ operationName: String
12
+ variableDefinitions: JSON
13
+ variablesExpressions: JSON
14
+ filter: TableFilter
15
+ search: SimpleSearch
16
+ menuItems: [MenuItem!]
17
+ columns: [Column!]!
18
+ rowMenuItems: [MenuItem!]
19
+ preview: Preview
20
+ cardView: CardView
21
+ groupBy: GroupBy
22
+ orderBy: [OrderBy!]
23
+ flattenDataKey: String
24
+ actionButton: ActionButton
25
+ pagingMode: String
26
+ maxRows: Int
27
+ pageSizeOptions: [Int!]
28
+ defaultPageSize: Int
29
+ deferredLoad: Boolean
30
+ useCardView: Boolean
31
+ whereFilter: WhereFilter
32
+ whereFilterName: String
33
+ emptyStateMessage: String
34
+ unstructuredData: Boolean
35
+ toolbar: Toolbar
36
+ pagination: TablePagination
37
+ expandable: Expandable
38
+ totals: [TotalsItem!]
39
+ config: JSON
40
+ configPath: String
41
+ configurableAttributes: [ConfigurableAttribute!]
42
+ """Admin-defined columns not present in this table's own base `columns`, available to add via the Configure Columns dialog. Site/tenant-scoped catalog — see `$.predefinedColumns` under `configurableAttributes`."""
43
+ predefinedColumns: [Column!]
44
+ """Admin-defined filter criteria not present in this table's own base `filter.criteria`, available to add via the Configure Filters dialog. Site/tenant-scoped catalog — see `$.predefinedFilters` under `configurableAttributes`."""
45
+ predefinedFilters: [TableCriteria!]
46
+ }
47
+
48
+ """One overridable sub-element of a config object identified by `configPath` — see the parent's own `configPath` field for how the two combine (`${configPath}#${configSubPath}`)."""
49
+ type ConfigurableAttribute {
50
+ name: String! # e.g. "columns", "filter" — matches the field name on the parent type
51
+ configPath: String! # copy of the parent object's own configPath, for convenience
52
+ configSubPath: String! # JSONPath relative to the parent object, e.g. "$.columns"
53
+ }
54
+
55
+ type TotalsItem {
56
+ path: String!
57
+ label: String!
58
+ component: String
59
+ }
60
+
61
+ type GroupBy {
62
+ path: String
63
+ pathExpression: String
64
+ orderType: OrderType!
65
+ component: String
66
+ }
67
+
68
+
69
+ type OrderBy {
70
+ path: String!
71
+ orderType: OrderType!
72
+ }
73
+
74
+ type TableSelection {
75
+ enabled: Boolean
76
+ """
77
+ Label for the single selection action. One-button shorthand, superseded by
78
+ actions.
79
+ """
80
+ label: String @deprecated(reason: "Use actions instead.")
81
+ """
82
+ Action dispatched by the single selection action. One-button shorthand,
83
+ superseded by actions. Ignored when actions is set.
84
+ """
85
+ action: String @deprecated(reason: "Use actions instead.")
86
+ """
87
+ Multiple actions rendered side by side in the selection bar. When set, this
88
+ takes precedence over the label/action pair.
89
+ """
90
+ actions: [TableSelectionButton!]
91
+ disabledCondition: String
92
+ visibilityCondition: String
93
+ position: TablePinnedPosition
94
+ }
95
+
96
+ type TableSelectionButton {
97
+ label: String!
98
+ action: String!
99
+ visibilityCondition: String
100
+ disabledCondition: String
101
+ }
102
+
103
+ enum TablePinnedPosition {
104
+ RIGHT
105
+ LEFT
106
+ }
107
+
108
+ type Toolbar {
109
+ columns: ToolbarColumns
110
+ configureColumns: ToolbarColumns
111
+ configureFilters: ToolbarColumns
112
+ }
113
+
114
+ type ToolbarColumns {
115
+ enabled: Boolean
116
+ }
117
+
118
+ type TablePagination {
119
+ totalCount: TablePaginationTotalCount
120
+ }
121
+
122
+ type TablePaginationTotalCount {
123
+ enabled: Boolean
124
+ }
125
+
126
+ type Table implements ITable
127
+
128
+ type NamedTable implements ITable {
129
+ name: String
130
+ }
131
+
132
+ type TabbedTable {
133
+ tabs: [TableTab!]!
134
+ }
135
+
136
+ union AnyTable = Table | TabbedTable
137
+
138
+ type TableTab {
139
+ name : String!
140
+ label: String!
141
+ table: Table!
142
+ visibilityCondition: String
143
+ }
144
+
145
+ type TableFilter {
146
+ criteria: [TableCriteria!]!
147
+ variant: TableFilterVariant
148
+ }
149
+
150
+ type DateShortcuts {
151
+ enabled: Boolean
152
+ days: [Int!]
153
+ }
154
+
155
+ type TableCriteriaDate {
156
+ calendars: Int
157
+ disableFuture: Boolean
158
+ format: String
159
+ shortcuts: DateShortcuts
160
+ }
161
+
162
+ type TableCriteria {
163
+ name: String!
164
+ label: String!
165
+ labelProp: String
166
+ path: String!
167
+ component: String
168
+ config: JSON
169
+ dataType: String
170
+ date: TableCriteriaDate
171
+ defaultValue: String
172
+ multiple: Boolean
173
+ exactMatchEnabled: Boolean
174
+ operator: String
175
+ selectOptions: ISelectOptions
176
+ min: Float
177
+ max: Float
178
+ visible: Boolean
179
+ """Set when this criterion was added by `$ref`-referencing a predefined/base criterion (e.g. `"#$.predefinedFilters[?(@.name=='status')]"`) rather than being copied inline — see the config-path override merge in `config-service.ts`. Clients that re-save this criterion unchanged should keep sending the same `$ref` (as this value) rather than flattening it into a full copy."""
180
+ ref: String
181
+ """True when this criterion would still show up — present by name *and* not hidden — without the current scope's own override, i.e. from a broader layer (a role/site override, or the table's own base template `filter.criteria`). Drives two things in the Configure Filters editor. Hide-vs-delete: "remove" must hide (`visible: false`) an inherited criterion, since deleting it from the override would just have it reappear from the broader layer on the next read, while a non-inherited one can be deleted outright. And pin-on-add: re-adding a *non*-inherited criterion must write an explicit `visible: true`, or the broader layer's `visible: false` is inherited per-attribute by the name-keyed merge and the criterion stays invisible however it's re-added. Computed fresh on every read in `config-service.ts`'s `applyConfigPathOverride` against the layers below the identity's own scope tier (`ConfigurationOverrideResult.inheritedSubPaths`), never persisted."""
182
+ inherited: Boolean
183
+ }
184
+
185
+ enum TableFilterVariant {
186
+ SIDEBAR
187
+ MODAL
188
+ }
189
+
190
+ type Column {
191
+ name: String!
192
+ label: String!
193
+ visible: Boolean
194
+ paths: [String!]
195
+ expression: String
196
+ """Which predefined formatter (if any) generated `expression` — e.g. `"commaList"`, `"custom"` — see `EXPRESSION_FORMATTERS`/`CUSTOM_FORMATTER_ID` in docupace-ui-main's `expressionGeneration.ts`. Absent for the raw/no-formatting default, which stores neither this nor `expression` at all. Without this field, a column's `expression` round-trips but the formatter that produced it doesn't, so the Configure Columns editor can't tell "built from a known formatter" apart from "hand-authored custom script" on reload and always falls back to showing the latter."""
197
+ formatterName: String
198
+ component: String
199
+ sortable: Boolean
200
+ flex: Float
201
+ pinned: TablePinnedPosition
202
+ config: JSON
203
+ filter: ColumnFilter
204
+ """Set when this column was added by `$ref`-referencing a predefined/base column (e.g. `"#$.predefinedColumns[?(@.name=='email')]"`) rather than being copied inline — see the config-path override merge in `config-service.ts`. Clients that re-save this column unchanged should keep sending the same `$ref` (as this value) rather than flattening it into a full copy."""
205
+ ref: String
206
+ """True when this column would still show up — present by name *and* not hidden — without the current scope's own override, i.e. from a broader layer (a role/site override, or the table's own base template `columns`). Drives hide-vs-delete and pin-on-add in the Configure Columns editor — see `TableCriteria.inherited`'s doc comment for the full reasoning, identical here."""
207
+ inherited: Boolean
208
+ }
209
+
210
+ type ColumnFilter {
211
+ operators: [String]
212
+ path: String
213
+ dataType: String
214
+ selectOptions: ISelectOptions
215
+ }
216
+
217
+ type SimpleSearch {
218
+ filterType: String
219
+ searchBy: String
220
+ placeholder: String
221
+ selectOptions: QuerySelectOptions!
222
+ }
223
+
224
+ type WhereFilter {
225
+ type: String!
226
+ value: JSON!
227
+ }
228
+
229
+ type Expandable {
230
+ component: String
231
+ }
@@ -1,16 +1,16 @@
1
-
2
- type Test {
3
- name : String!
4
- description: String
5
- configPath : String!
6
- }
7
-
8
- type TestResults {
9
- items : [Test!]!
10
- }
11
-
12
- type TestQuery {
13
- list(path : String!, search: String) : TestResults
14
- getConfig(path : String) : JSON!
15
- }
16
-
1
+
2
+ type Test {
3
+ name : String!
4
+ description: String
5
+ configPath : String!
6
+ }
7
+
8
+ type TestResults {
9
+ items : [Test!]!
10
+ }
11
+
12
+ type TestQuery {
13
+ list(path : String!, search: String) : TestResults
14
+ getConfig(path : String) : JSON!
15
+ }
16
+
@@ -1,41 +1,41 @@
1
- type Base64Image {
2
- "Base64 encoded image data"
3
- data: String!
4
- "MIME type of the image (e.g. 'image/png', 'image/jpeg')"
5
- mimeType: String!
6
- "Unique hash of the image data for caching purposes"
7
- hash: String!
8
- }
9
-
10
- type Theme {
11
- name: String
12
- "Base64 encoded logo image data"
13
- logoImage: Base64Image
14
- """
15
- @deprecated Use logoImage instead
16
- SVG logo image data in string format
17
- """
18
- logoSvg: String
19
- "Base64 encoded sidebar logo image data"
20
- sidebarLogoImage: Base64Image
21
- """
22
- @deprecated Use sidebarLogoImage instead
23
- SVG sidebar logo image data in string format
24
- """
25
- sidebarLogoSvg: String
26
- "Base64 encoded login logo image data"
27
- loginLogoImage: Base64Image
28
- """
29
- @deprecated Use loginLogoImage instead
30
- SVG login logo image data in string format
31
- """
32
- loginLogoSvg: String
33
- "Base64 encoded login background image data"
34
- loginBackgroundImage: Base64Image
35
- """
36
- @deprecated Use loginBackgroundImage instead
37
- SVG login background image data in string format
38
- """
39
- loginBackgroundSvg: String
40
- colors: JSON
41
- }
1
+ type Base64Image {
2
+ "Base64 encoded image data"
3
+ data: String!
4
+ "MIME type of the image (e.g. 'image/png', 'image/jpeg')"
5
+ mimeType: String!
6
+ "Unique hash of the image data for caching purposes"
7
+ hash: String!
8
+ }
9
+
10
+ type Theme {
11
+ name: String
12
+ "Base64 encoded logo image data"
13
+ logoImage: Base64Image
14
+ """
15
+ @deprecated Use logoImage instead
16
+ SVG logo image data in string format
17
+ """
18
+ logoSvg: String
19
+ "Base64 encoded sidebar logo image data"
20
+ sidebarLogoImage: Base64Image
21
+ """
22
+ @deprecated Use sidebarLogoImage instead
23
+ SVG sidebar logo image data in string format
24
+ """
25
+ sidebarLogoSvg: String
26
+ "Base64 encoded login logo image data"
27
+ loginLogoImage: Base64Image
28
+ """
29
+ @deprecated Use loginLogoImage instead
30
+ SVG login logo image data in string format
31
+ """
32
+ loginLogoSvg: String
33
+ "Base64 encoded login background image data"
34
+ loginBackgroundImage: Base64Image
35
+ """
36
+ @deprecated Use loginBackgroundImage instead
37
+ SVG login background image data in string format
38
+ """
39
+ loginBackgroundSvg: String
40
+ colors: JSON
41
+ }
@@ -1,12 +1,12 @@
1
- type TextElement implements IRowElement & IElement {
2
- color: String
3
- cols: Int
4
- fontSize: String
5
- name: String
6
- sx: JSON
7
- value: String
8
- valueExpression: String
9
- variant: String
10
- visibilityCondition: String
11
- custom: Boolean
1
+ type TextElement implements IRowElement & IElement {
2
+ color: String
3
+ cols: Int
4
+ fontSize: String
5
+ name: String
6
+ sx: JSON
7
+ value: String
8
+ valueExpression: String
9
+ variant: String
10
+ visibilityCondition: String
11
+ custom: Boolean
12
12
  }
@@ -1,3 +1,3 @@
1
- scalar Number
2
-
3
- scalar JSON
1
+ scalar Number
2
+
3
+ scalar JSON
@@ -1,5 +1,5 @@
1
-
2
- enum OrderType {
3
- ASC
4
- DESC
5
- }
1
+
2
+ enum OrderType {
3
+ ASC
4
+ DESC
5
+ }
@@ -1,7 +1,7 @@
1
- type Query {
2
- config: ConfigQuery
3
- }
4
-
5
- type Mutation {
6
- config: ConfigMutation
7
- }
1
+ type Query {
2
+ config: ConfigQuery
3
+ }
4
+
5
+ type Mutation {
6
+ config: ConfigMutation
7
+ }