@payloadcms/graphql 3.0.0-alpha.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.
Files changed (156) hide show
  1. package/dist/index.d.ts +8 -0
  2. package/dist/index.d.ts.map +1 -0
  3. package/dist/index.js +162 -0
  4. package/dist/resolvers/auth/access.d.ts +5 -0
  5. package/dist/resolvers/auth/access.d.ts.map +1 -0
  6. package/dist/resolvers/auth/access.js +48 -0
  7. package/dist/resolvers/auth/forgotPassword.d.ts +4 -0
  8. package/dist/resolvers/auth/forgotPassword.d.ts.map +1 -0
  9. package/dist/resolvers/auth/forgotPassword.js +31 -0
  10. package/dist/resolvers/auth/init.d.ts +4 -0
  11. package/dist/resolvers/auth/init.d.ts.map +1 -0
  12. package/dist/resolvers/auth/init.js +25 -0
  13. package/dist/resolvers/auth/login.d.ts +7 -0
  14. package/dist/resolvers/auth/login.d.ts.map +1 -0
  15. package/dist/resolvers/auth/login.js +41 -0
  16. package/dist/resolvers/auth/logout.d.ts +4 -0
  17. package/dist/resolvers/auth/logout.d.ts.map +1 -0
  18. package/dist/resolvers/auth/logout.js +32 -0
  19. package/dist/resolvers/auth/me.d.ts +4 -0
  20. package/dist/resolvers/auth/me.d.ts.map +1 -0
  21. package/dist/resolvers/auth/me.js +30 -0
  22. package/dist/resolvers/auth/refresh.d.ts +5 -0
  23. package/dist/resolvers/auth/refresh.d.ts.map +1 -0
  24. package/dist/resolvers/auth/refresh.js +43 -0
  25. package/dist/resolvers/auth/resetPassword.d.ts +5 -0
  26. package/dist/resolvers/auth/resetPassword.d.ts.map +1 -0
  27. package/dist/resolvers/auth/resetPassword.js +41 -0
  28. package/dist/resolvers/auth/unlock.d.ts +5 -0
  29. package/dist/resolvers/auth/unlock.d.ts.map +1 -0
  30. package/dist/resolvers/auth/unlock.js +29 -0
  31. package/dist/resolvers/auth/verifyEmail.d.ts +5 -0
  32. package/dist/resolvers/auth/verifyEmail.d.ts.map +1 -0
  33. package/dist/resolvers/auth/verifyEmail.js +30 -0
  34. package/dist/resolvers/collections/create.d.ts +13 -0
  35. package/dist/resolvers/collections/create.d.ts.map +1 -0
  36. package/dist/resolvers/collections/create.js +30 -0
  37. package/dist/resolvers/collections/delete.d.ts +11 -0
  38. package/dist/resolvers/collections/delete.d.ts.map +1 -0
  39. package/dist/resolvers/collections/delete.js +34 -0
  40. package/dist/resolvers/collections/docAccess.d.ts +9 -0
  41. package/dist/resolvers/collections/docAccess.d.ts.map +1 -0
  42. package/dist/resolvers/collections/docAccess.js +24 -0
  43. package/dist/resolvers/collections/find.d.ts +17 -0
  44. package/dist/resolvers/collections/find.d.ts.map +1 -0
  45. package/dist/resolvers/collections/find.js +37 -0
  46. package/dist/resolvers/collections/findByID.d.ts +13 -0
  47. package/dist/resolvers/collections/findByID.d.ts.map +1 -0
  48. package/dist/resolvers/collections/findByID.js +34 -0
  49. package/dist/resolvers/collections/findVersionByID.d.ts +13 -0
  50. package/dist/resolvers/collections/findVersionByID.d.ts.map +1 -0
  51. package/dist/resolvers/collections/findVersionByID.js +34 -0
  52. package/dist/resolvers/collections/findVersions.d.ts +15 -0
  53. package/dist/resolvers/collections/findVersions.d.ts.map +1 -0
  54. package/dist/resolvers/collections/findVersions.js +37 -0
  55. package/dist/resolvers/collections/restoreVersion.d.ts +9 -0
  56. package/dist/resolvers/collections/restoreVersion.d.ts.map +1 -0
  57. package/dist/resolvers/collections/restoreVersion.js +27 -0
  58. package/dist/resolvers/collections/update.d.ts +14 -0
  59. package/dist/resolvers/collections/update.d.ts.map +1 -0
  60. package/dist/resolvers/collections/update.js +37 -0
  61. package/dist/resolvers/globals/docAccess.d.ts +7 -0
  62. package/dist/resolvers/globals/docAccess.d.ts.map +1 -0
  63. package/dist/resolvers/globals/docAccess.js +23 -0
  64. package/dist/resolvers/globals/findOne.d.ts +3 -0
  65. package/dist/resolvers/globals/findOne.d.ts.map +1 -0
  66. package/dist/resolvers/globals/findOne.js +30 -0
  67. package/dist/resolvers/globals/findVersionByID.d.ts +11 -0
  68. package/dist/resolvers/globals/findVersionByID.d.ts.map +1 -0
  69. package/dist/resolvers/globals/findVersionByID.js +29 -0
  70. package/dist/resolvers/globals/findVersions.d.ts +13 -0
  71. package/dist/resolvers/globals/findVersions.d.ts.map +1 -0
  72. package/dist/resolvers/globals/findVersions.js +29 -0
  73. package/dist/resolvers/globals/index.d.ts +7 -0
  74. package/dist/resolvers/globals/index.d.ts.map +1 -0
  75. package/dist/resolvers/globals/index.js +39 -0
  76. package/dist/resolvers/globals/restoreVersion.d.ts +9 -0
  77. package/dist/resolvers/globals/restoreVersion.d.ts.map +1 -0
  78. package/dist/resolvers/globals/restoreVersion.js +26 -0
  79. package/dist/resolvers/globals/update.d.ts +14 -0
  80. package/dist/resolvers/globals/update.d.ts.map +1 -0
  81. package/dist/resolvers/globals/update.js +31 -0
  82. package/dist/resolvers/types.d.ts +8 -0
  83. package/dist/resolvers/types.d.ts.map +1 -0
  84. package/dist/resolvers/types.js +6 -0
  85. package/dist/schema/buildFallbackLocaleInputType.d.ts +5 -0
  86. package/dist/schema/buildFallbackLocaleInputType.d.ts.map +1 -0
  87. package/dist/schema/buildFallbackLocaleInputType.js +34 -0
  88. package/dist/schema/buildLocaleInputType.d.ts +6 -0
  89. package/dist/schema/buildLocaleInputType.d.ts.map +1 -0
  90. package/dist/schema/buildLocaleInputType.js +31 -0
  91. package/dist/schema/buildMutationInputType.d.ts +23 -0
  92. package/dist/schema/buildMutationInputType.d.ts.map +1 -0
  93. package/dist/schema/buildMutationInputType.js +293 -0
  94. package/dist/schema/buildObjectType.d.ts +19 -0
  95. package/dist/schema/buildObjectType.d.ts.map +1 -0
  96. package/dist/schema/buildObjectType.js +508 -0
  97. package/dist/schema/buildPaginatedListType.d.ts +4 -0
  98. package/dist/schema/buildPaginatedListType.d.ts.map +1 -0
  99. package/dist/schema/buildPaginatedListType.js +52 -0
  100. package/dist/schema/buildPoliciesType.d.ts +29 -0
  101. package/dist/schema/buildPoliciesType.d.ts.map +1 -0
  102. package/dist/schema/buildPoliciesType.js +210 -0
  103. package/dist/schema/buildWhereInputType.d.ts +24 -0
  104. package/dist/schema/buildWhereInputType.d.ts.map +1 -0
  105. package/dist/schema/buildWhereInputType.js +102 -0
  106. package/dist/schema/fieldToWhereInputSchemaMap.d.ts +7 -0
  107. package/dist/schema/fieldToWhereInputSchemaMap.d.ts.map +1 -0
  108. package/dist/schema/fieldToWhereInputSchemaMap.js +118 -0
  109. package/dist/schema/initCollections.d.ts +9 -0
  110. package/dist/schema/initCollections.d.ts.map +1 -0
  111. package/dist/schema/initCollections.js +492 -0
  112. package/dist/schema/initGlobals.d.ts +9 -0
  113. package/dist/schema/initGlobals.d.ts.map +1 -0
  114. package/dist/schema/initGlobals.js +193 -0
  115. package/dist/schema/isFieldNullable.d.ts +4 -0
  116. package/dist/schema/isFieldNullable.d.ts.map +1 -0
  117. package/dist/schema/isFieldNullable.js +19 -0
  118. package/dist/schema/operators.d.ts +10 -0
  119. package/dist/schema/operators.d.ts.map +1 -0
  120. package/dist/schema/operators.js +41 -0
  121. package/dist/schema/recursivelyBuildNestedPaths.d.ts +9 -0
  122. package/dist/schema/recursivelyBuildNestedPaths.d.ts.map +1 -0
  123. package/dist/schema/recursivelyBuildNestedPaths.js +79 -0
  124. package/dist/schema/withNullableType.d.ts +5 -0
  125. package/dist/schema/withNullableType.d.ts.map +1 -0
  126. package/dist/schema/withNullableType.js +23 -0
  127. package/dist/schema/withOperators.d.ts +16 -0
  128. package/dist/schema/withOperators.d.ts.map +1 -0
  129. package/dist/schema/withOperators.js +296 -0
  130. package/dist/utilities/combineParentName.d.ts +3 -0
  131. package/dist/utilities/combineParentName.d.ts.map +1 -0
  132. package/dist/utilities/combineParentName.js +20 -0
  133. package/dist/utilities/formatName.d.ts +3 -0
  134. package/dist/utilities/formatName.d.ts.map +1 -0
  135. package/dist/utilities/formatName.js +35 -0
  136. package/dist/utilities/formatName.spec.js +26 -0
  137. package/dist/utilities/formatOptions.d.ts +4 -0
  138. package/dist/utilities/formatOptions.d.ts.map +1 -0
  139. package/dist/utilities/formatOptions.js +37 -0
  140. package/dist/utilities/getCheckIfLocaleObject.d.ts +5 -0
  141. package/dist/utilities/getCheckIfLocaleObject.d.ts.map +1 -0
  142. package/dist/utilities/getCheckIfLocaleObject.js +13 -0
  143. package/dist/utilities/groupOrTabHasRequiredSubfield.d.ts +3 -0
  144. package/dist/utilities/groupOrTabHasRequiredSubfield.d.ts.map +1 -0
  145. package/dist/utilities/groupOrTabHasRequiredSubfield.js +24 -0
  146. package/dist/utilities/isolateTransactionID.d.ts +2 -0
  147. package/dist/utilities/isolateTransactionID.d.ts.map +1 -0
  148. package/dist/utilities/isolateTransactionID.js +3 -0
  149. package/dist/utilities/uppercase.d.ts +3 -0
  150. package/dist/utilities/uppercase.d.ts.map +1 -0
  151. package/dist/utilities/uppercase.js +21 -0
  152. package/dist/utilities/wrapCustomResolver.d.ts +9 -0
  153. package/dist/utilities/wrapCustomResolver.d.ts.map +1 -0
  154. package/dist/utilities/wrapCustomResolver.js +29 -0
  155. package/package.json +42 -0
  156. package/src/index.ts +126 -0
@@ -0,0 +1,293 @@
1
+ /* eslint-disable no-use-before-define */ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ buildMutationInputType: function() {
13
+ return buildMutationInputType;
14
+ },
15
+ getCollectionIDType: function() {
16
+ return getCollectionIDType;
17
+ }
18
+ });
19
+ const _graphql = require("graphql");
20
+ const _graphqltypejson = require("graphql-type-json");
21
+ const _types = require("payload/types");
22
+ const _utilities = require("payload/utilities");
23
+ const _groupOrTabHasRequiredSubfield = require("../utilities/groupOrTabHasRequiredSubfield");
24
+ const _combineParentName = /*#__PURE__*/ _interop_require_default(require("../utilities/combineParentName"));
25
+ const _formatName = /*#__PURE__*/ _interop_require_default(require("../utilities/formatName"));
26
+ const _withNullableType = /*#__PURE__*/ _interop_require_default(require("./withNullableType"));
27
+ function _interop_require_default(obj) {
28
+ return obj && obj.__esModule ? obj : {
29
+ default: obj
30
+ };
31
+ }
32
+ const idFieldTypes = {
33
+ number: _graphql.GraphQLInt,
34
+ text: _graphql.GraphQLString
35
+ };
36
+ const getCollectionIDType = (type, collection)=>{
37
+ const idField = (0, _utilities.flattenTopLevelFields)(collection.fields).find((field)=>(0, _types.fieldAffectsData)(field) && field.name === 'id');
38
+ if (!idField) {
39
+ return idFieldTypes[type];
40
+ }
41
+ return idFieldTypes[idField.type];
42
+ };
43
+ function buildMutationInputType({ name, fields, parentName, forceNullable = false, graphqlResult, config }) {
44
+ const fieldToSchemaMap = {
45
+ array: (inputObjectTypeConfig, field)=>{
46
+ const fullName = (0, _combineParentName.default)(parentName, (0, _utilities.toWords)(field.name, true));
47
+ let type = buildMutationInputType({
48
+ name: fullName,
49
+ fields: field.fields,
50
+ parentName: fullName,
51
+ graphqlResult,
52
+ config
53
+ });
54
+ if (!type) return inputObjectTypeConfig;
55
+ type = new _graphql.GraphQLList((0, _withNullableType.default)(field, type, forceNullable));
56
+ return {
57
+ ...inputObjectTypeConfig,
58
+ [field.name]: {
59
+ type
60
+ }
61
+ };
62
+ },
63
+ blocks: (inputObjectTypeConfig, field)=>({
64
+ ...inputObjectTypeConfig,
65
+ [field.name]: {
66
+ type: _graphqltypejson.GraphQLJSON
67
+ }
68
+ }),
69
+ checkbox: (inputObjectTypeConfig, field)=>({
70
+ ...inputObjectTypeConfig,
71
+ [field.name]: {
72
+ type: _graphql.GraphQLBoolean
73
+ }
74
+ }),
75
+ code: (inputObjectTypeConfig, field)=>({
76
+ ...inputObjectTypeConfig,
77
+ [field.name]: {
78
+ type: (0, _withNullableType.default)(field, _graphql.GraphQLString, forceNullable)
79
+ }
80
+ }),
81
+ collapsible: (inputObjectTypeConfig, field)=>field.fields.reduce((acc, subField)=>{
82
+ const addSubField = fieldToSchemaMap[subField.type];
83
+ if (addSubField) return addSubField(acc, subField);
84
+ return acc;
85
+ }, inputObjectTypeConfig),
86
+ date: (inputObjectTypeConfig, field)=>({
87
+ ...inputObjectTypeConfig,
88
+ [field.name]: {
89
+ type: (0, _withNullableType.default)(field, _graphql.GraphQLString, forceNullable)
90
+ }
91
+ }),
92
+ email: (inputObjectTypeConfig, field)=>({
93
+ ...inputObjectTypeConfig,
94
+ [field.name]: {
95
+ type: (0, _withNullableType.default)(field, _graphql.GraphQLString, forceNullable)
96
+ }
97
+ }),
98
+ group: (inputObjectTypeConfig, field)=>{
99
+ const requiresAtLeastOneField = (0, _groupOrTabHasRequiredSubfield.groupOrTabHasRequiredSubfield)(field);
100
+ const fullName = (0, _combineParentName.default)(parentName, (0, _utilities.toWords)(field.name, true));
101
+ let type = buildMutationInputType({
102
+ name: fullName,
103
+ fields: field.fields,
104
+ parentName: fullName,
105
+ graphqlResult,
106
+ config
107
+ });
108
+ if (!type) return inputObjectTypeConfig;
109
+ if (requiresAtLeastOneField) type = new _graphql.GraphQLNonNull(type);
110
+ return {
111
+ ...inputObjectTypeConfig,
112
+ [field.name]: {
113
+ type
114
+ }
115
+ };
116
+ },
117
+ json: (inputObjectTypeConfig, field)=>({
118
+ ...inputObjectTypeConfig,
119
+ [field.name]: {
120
+ type: (0, _withNullableType.default)(field, _graphqltypejson.GraphQLJSON, forceNullable)
121
+ }
122
+ }),
123
+ number: (inputObjectTypeConfig, field)=>{
124
+ const type = field.name === 'id' ? _graphql.GraphQLInt : _graphql.GraphQLFloat;
125
+ return {
126
+ ...inputObjectTypeConfig,
127
+ [field.name]: {
128
+ type: (0, _withNullableType.default)(field, field.hasMany === true ? new _graphql.GraphQLList(type) : type, forceNullable)
129
+ }
130
+ };
131
+ },
132
+ point: (inputObjectTypeConfig, field)=>({
133
+ ...inputObjectTypeConfig,
134
+ [field.name]: {
135
+ type: (0, _withNullableType.default)(field, new _graphql.GraphQLList(_graphql.GraphQLFloat), forceNullable)
136
+ }
137
+ }),
138
+ radio: (inputObjectTypeConfig, field)=>({
139
+ ...inputObjectTypeConfig,
140
+ [field.name]: {
141
+ type: (0, _withNullableType.default)(field, _graphql.GraphQLString, forceNullable)
142
+ }
143
+ }),
144
+ relationship: (inputObjectTypeConfig, field)=>{
145
+ const { relationTo } = field;
146
+ let type;
147
+ if (Array.isArray(relationTo)) {
148
+ const fullName = `${(0, _combineParentName.default)(parentName, (0, _utilities.toWords)(field.name, true))}RelationshipInput`;
149
+ type = new _graphql.GraphQLInputObjectType({
150
+ name: fullName,
151
+ fields: {
152
+ relationTo: {
153
+ type: new _graphql.GraphQLEnumType({
154
+ name: `${fullName}RelationTo`,
155
+ values: relationTo.reduce((values, option)=>({
156
+ ...values,
157
+ [(0, _formatName.default)(option)]: {
158
+ value: option
159
+ }
160
+ }), {})
161
+ })
162
+ },
163
+ value: {
164
+ type: _graphqltypejson.GraphQLJSON
165
+ }
166
+ }
167
+ });
168
+ } else {
169
+ type = getCollectionIDType(config.db.defaultIDType, graphqlResult.collections[relationTo].config);
170
+ }
171
+ return {
172
+ ...inputObjectTypeConfig,
173
+ [field.name]: {
174
+ type: field.hasMany ? new _graphql.GraphQLList(type) : type
175
+ }
176
+ };
177
+ },
178
+ richText: (inputObjectTypeConfig, field)=>({
179
+ ...inputObjectTypeConfig,
180
+ [field.name]: {
181
+ type: (0, _withNullableType.default)(field, _graphqltypejson.GraphQLJSON, forceNullable)
182
+ }
183
+ }),
184
+ row: (inputObjectTypeConfig, field)=>field.fields.reduce((acc, subField)=>{
185
+ const addSubField = fieldToSchemaMap[subField.type];
186
+ if (addSubField) return addSubField(acc, subField);
187
+ return acc;
188
+ }, inputObjectTypeConfig),
189
+ select: (inputObjectTypeConfig, field)=>{
190
+ const formattedName = `${(0, _combineParentName.default)(parentName, field.name)}_MutationInput`;
191
+ let type = new _graphql.GraphQLEnumType({
192
+ name: formattedName,
193
+ values: field.options.reduce((values, option)=>{
194
+ if ((0, _types.optionIsObject)(option)) {
195
+ return {
196
+ ...values,
197
+ [(0, _formatName.default)(option.value)]: {
198
+ value: option.value
199
+ }
200
+ };
201
+ }
202
+ return {
203
+ ...values,
204
+ [(0, _formatName.default)(option)]: {
205
+ value: option
206
+ }
207
+ };
208
+ }, {})
209
+ });
210
+ type = field.hasMany ? new _graphql.GraphQLList(type) : type;
211
+ type = (0, _withNullableType.default)(field, type, forceNullable);
212
+ return {
213
+ ...inputObjectTypeConfig,
214
+ [field.name]: {
215
+ type
216
+ }
217
+ };
218
+ },
219
+ tabs: (inputObjectTypeConfig, field)=>{
220
+ return field.tabs.reduce((acc, tab)=>{
221
+ if ((0, _types.tabHasName)(tab)) {
222
+ const fullName = (0, _combineParentName.default)(parentName, (0, _utilities.toWords)(tab.name, true));
223
+ const requiresAtLeastOneField = (0, _groupOrTabHasRequiredSubfield.groupOrTabHasRequiredSubfield)(field);
224
+ let type = buildMutationInputType({
225
+ name: fullName,
226
+ fields: tab.fields,
227
+ parentName: fullName,
228
+ graphqlResult,
229
+ config
230
+ });
231
+ if (!type) return acc;
232
+ if (requiresAtLeastOneField) type = new _graphql.GraphQLNonNull(type);
233
+ return {
234
+ ...acc,
235
+ [tab.name]: {
236
+ type
237
+ }
238
+ };
239
+ }
240
+ return {
241
+ ...acc,
242
+ ...tab.fields.reduce((subFieldSchema, subField)=>{
243
+ const addSubField = fieldToSchemaMap[subField.type];
244
+ if (addSubField) return addSubField(subFieldSchema, subField);
245
+ return subFieldSchema;
246
+ }, acc)
247
+ };
248
+ }, inputObjectTypeConfig);
249
+ },
250
+ text: (inputObjectTypeConfig, field)=>({
251
+ ...inputObjectTypeConfig,
252
+ [field.name]: {
253
+ type: (0, _withNullableType.default)(field, field.hasMany === true ? new _graphql.GraphQLList(_graphql.GraphQLString) : _graphql.GraphQLString, forceNullable)
254
+ }
255
+ }),
256
+ textarea: (inputObjectTypeConfig, field)=>({
257
+ ...inputObjectTypeConfig,
258
+ [field.name]: {
259
+ type: (0, _withNullableType.default)(field, _graphql.GraphQLString, forceNullable)
260
+ }
261
+ }),
262
+ upload: (inputObjectTypeConfig, field)=>({
263
+ ...inputObjectTypeConfig,
264
+ [field.name]: {
265
+ type: (0, _withNullableType.default)(field, _graphql.GraphQLString, forceNullable)
266
+ }
267
+ })
268
+ };
269
+ const fieldName = (0, _formatName.default)(name);
270
+ const fieldSchemas = fields.reduce((inputObjectTypeConfig, field)=>{
271
+ const fieldSchema = fieldToSchemaMap[field.type];
272
+ if (typeof fieldSchema !== 'function') {
273
+ return inputObjectTypeConfig;
274
+ }
275
+ const schema = fieldSchema(inputObjectTypeConfig, field);
276
+ if (Object.keys(schema).length === 0) {
277
+ return inputObjectTypeConfig;
278
+ }
279
+ return {
280
+ ...inputObjectTypeConfig,
281
+ ...fieldSchema(inputObjectTypeConfig, field)
282
+ };
283
+ }, {});
284
+ if (Object.keys(fieldSchemas).length === 0) {
285
+ return null;
286
+ }
287
+ return new _graphql.GraphQLInputObjectType({
288
+ name: `mutation${fieldName}Input`,
289
+ fields: fieldSchemas
290
+ });
291
+ }
292
+
293
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY2hlbWEvYnVpbGRNdXRhdGlvbklucHV0VHlwZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby11c2UtYmVmb3JlLWRlZmluZSAqL1xuaW1wb3J0IHR5cGUgeyBHcmFwaFFMSW5wdXRGaWVsZENvbmZpZywgR3JhcGhRTFNjYWxhclR5cGUsIEdyYXBoUUxUeXBlIH0gZnJvbSAnZ3JhcGhxbCdcblxuaW1wb3J0IHtcbiAgR3JhcGhRTEJvb2xlYW4sXG4gIEdyYXBoUUxFbnVtVHlwZSxcbiAgR3JhcGhRTEZsb2F0LFxuICBHcmFwaFFMSW5wdXRPYmplY3RUeXBlLFxuICBHcmFwaFFMSW50LFxuICBHcmFwaFFMTGlzdCxcbiAgR3JhcGhRTE5vbk51bGwsXG4gIEdyYXBoUUxTdHJpbmcsXG59IGZyb20gJ2dyYXBocWwnXG5pbXBvcnQgeyBHcmFwaFFMSlNPTiB9IGZyb20gJ2dyYXBocWwtdHlwZS1qc29uJ1xuXG5pbXBvcnQgdHlwZSB7IEdyYXBoUUxJbmZvIH0gZnJvbSAncGF5bG9hZC9jb25maWcnXG5pbXBvcnQgdHlwZSB7XG4gIFNhbml0aXplZENvbGxlY3Rpb25Db25maWcsXG4gIFNhbml0aXplZENvbmZpZyxcbiAgQXJyYXlGaWVsZCxcbiAgQmxvY2tGaWVsZCxcbiAgQ2hlY2tib3hGaWVsZCxcbiAgQ29kZUZpZWxkLFxuICBDb2xsYXBzaWJsZUZpZWxkLFxuICBEYXRlRmllbGQsXG4gIEVtYWlsRmllbGQsXG4gIEZpZWxkLFxuICBHcm91cEZpZWxkLFxuICBKU09ORmllbGQsXG4gIE51bWJlckZpZWxkLFxuICBQb2ludEZpZWxkLFxuICBSYWRpb0ZpZWxkLFxuICBSZWxhdGlvbnNoaXBGaWVsZCxcbiAgUmljaFRleHRGaWVsZCxcbiAgUm93RmllbGQsXG4gIFNlbGVjdEZpZWxkLFxuICBUYWJzRmllbGQsXG4gIFRleHRGaWVsZCxcbiAgVGV4dGFyZWFGaWVsZCxcbiAgVXBsb2FkRmllbGQsXG59IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5pbXBvcnQgeyBmaWVsZEFmZmVjdHNEYXRhLCBvcHRpb25Jc09iamVjdCwgdGFiSGFzTmFtZSB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5pbXBvcnQgeyB0b1dvcmRzIH0gZnJvbSAncGF5bG9hZC91dGlsaXRpZXMnXG5cbmltcG9ydCB7IGdyb3VwT3JUYWJIYXNSZXF1aXJlZFN1YmZpZWxkIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2dyb3VwT3JUYWJIYXNSZXF1aXJlZFN1YmZpZWxkJ1xuaW1wb3J0IGNvbWJpbmVQYXJlbnROYW1lIGZyb20gJy4uL3V0aWxpdGllcy9jb21iaW5lUGFyZW50TmFtZSdcbmltcG9ydCBmb3JtYXROYW1lIGZyb20gJy4uL3V0aWxpdGllcy9mb3JtYXROYW1lJ1xuaW1wb3J0IHdpdGhOdWxsYWJsZVR5cGUgZnJvbSAnLi93aXRoTnVsbGFibGVUeXBlJ1xuaW1wb3J0IHsgZmxhdHRlblRvcExldmVsRmllbGRzIH0gZnJvbSAncGF5bG9hZC91dGlsaXRpZXMnXG5cbmNvbnN0IGlkRmllbGRUeXBlcyA9IHtcbiAgbnVtYmVyOiBHcmFwaFFMSW50LFxuICB0ZXh0OiBHcmFwaFFMU3RyaW5nLFxufVxuXG5leHBvcnQgY29uc3QgZ2V0Q29sbGVjdGlvbklEVHlwZSA9IChcbiAgdHlwZToga2V5b2YgdHlwZW9mIGlkRmllbGRUeXBlcyxcbiAgY29sbGVjdGlvbjogU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyxcbik6IEdyYXBoUUxTY2FsYXJUeXBlID0+IHtcbiAgY29uc3QgaWRGaWVsZCA9IGZsYXR0ZW5Ub3BMZXZlbEZpZWxkcyhjb2xsZWN0aW9uLmZpZWxkcykuZmluZChcbiAgICAoZmllbGQpID0+IGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09ICdpZCcsXG4gIClcblxuICBpZiAoIWlkRmllbGQpIHtcbiAgICByZXR1cm4gaWRGaWVsZFR5cGVzW3R5cGVdXG4gIH1cblxuICByZXR1cm4gaWRGaWVsZFR5cGVzW2lkRmllbGQudHlwZV1cbn1cblxuZXhwb3J0IHR5cGUgSW5wdXRPYmplY3RUeXBlQ29uZmlnID0ge1xuICBbcGF0aDogc3RyaW5nXTogR3JhcGhRTElucHV0RmllbGRDb25maWdcbn1cblxudHlwZSBCdWlsZE11dGF0aW9uSW5wdXRUeXBlQXJncyA9IHtcbiAgbmFtZTogc3RyaW5nXG4gIGZpZWxkczogRmllbGRbXVxuICBwYXJlbnROYW1lOiBzdHJpbmdcbiAgZm9yY2VOdWxsYWJsZT86IGJvb2xlYW5cbiAgZ3JhcGhxbFJlc3VsdDogR3JhcGhRTEluZm9cbiAgY29uZmlnOiBTYW5pdGl6ZWRDb25maWdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkTXV0YXRpb25JbnB1dFR5cGUoe1xuICBuYW1lLFxuICBmaWVsZHMsXG4gIHBhcmVudE5hbWUsXG4gIGZvcmNlTnVsbGFibGUgPSBmYWxzZSxcbiAgZ3JhcGhxbFJlc3VsdCxcbiAgY29uZmlnLFxufTogQnVpbGRNdXRhdGlvbklucHV0VHlwZUFyZ3MpOiBHcmFwaFFMSW5wdXRPYmplY3RUeXBlIHwgbnVsbCB7XG4gIGNvbnN0IGZpZWxkVG9TY2hlbWFNYXAgPSB7XG4gICAgYXJyYXk6IChpbnB1dE9iamVjdFR5cGVDb25maWc6IElucHV0T2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IEFycmF5RmllbGQpID0+IHtcbiAgICAgIGNvbnN0IGZ1bGxOYW1lID0gY29tYmluZVBhcmVudE5hbWUocGFyZW50TmFtZSwgdG9Xb3JkcyhmaWVsZC5uYW1lLCB0cnVlKSlcbiAgICAgIGxldCB0eXBlOiBHcmFwaFFMTGlzdDxHcmFwaFFMVHlwZT4gfCBHcmFwaFFMVHlwZSA9IGJ1aWxkTXV0YXRpb25JbnB1dFR5cGUoe1xuICAgICAgICBuYW1lOiBmdWxsTmFtZSxcbiAgICAgICAgZmllbGRzOiBmaWVsZC5maWVsZHMsXG4gICAgICAgIHBhcmVudE5hbWU6IGZ1bGxOYW1lLFxuICAgICAgICBncmFwaHFsUmVzdWx0LFxuICAgICAgICBjb25maWcsXG4gICAgICB9KVxuXG4gICAgICBpZiAoIXR5cGUpIHJldHVybiBpbnB1dE9iamVjdFR5cGVDb25maWdcblxuICAgICAgdHlwZSA9IG5ldyBHcmFwaFFMTGlzdCh3aXRoTnVsbGFibGVUeXBlKGZpZWxkLCB0eXBlLCBmb3JjZU51bGxhYmxlKSlcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmlucHV0T2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGUgfSxcbiAgICAgIH1cbiAgICB9LFxuICAgIGJsb2NrczogKGlucHV0T2JqZWN0VHlwZUNvbmZpZzogSW5wdXRPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogQmxvY2tGaWVsZCkgPT4gKHtcbiAgICAgIC4uLmlucHV0T2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgIFtmaWVsZC5uYW1lXTogeyB0eXBlOiBHcmFwaFFMSlNPTiB9LFxuICAgIH0pLFxuICAgIGNoZWNrYm94OiAoaW5wdXRPYmplY3RUeXBlQ29uZmlnOiBJbnB1dE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBDaGVja2JveEZpZWxkKSA9PiAoe1xuICAgICAgLi4uaW5wdXRPYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IEdyYXBoUUxCb29sZWFuIH0sXG4gICAgfSksXG4gICAgY29kZTogKGlucHV0T2JqZWN0VHlwZUNvbmZpZzogSW5wdXRPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogQ29kZUZpZWxkKSA9PiAoe1xuICAgICAgLi4uaW5wdXRPYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIEdyYXBoUUxTdHJpbmcsIGZvcmNlTnVsbGFibGUpIH0sXG4gICAgfSksXG4gICAgY29sbGFwc2libGU6IChpbnB1dE9iamVjdFR5cGVDb25maWc6IElucHV0T2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IENvbGxhcHNpYmxlRmllbGQpID0+XG4gICAgICBmaWVsZC5maWVsZHMucmVkdWNlKChhY2MsIHN1YkZpZWxkOiBDb2xsYXBzaWJsZUZpZWxkKSA9PiB7XG4gICAgICAgIGNvbnN0IGFkZFN1YkZpZWxkID0gZmllbGRUb1NjaGVtYU1hcFtzdWJGaWVsZC50eXBlXVxuICAgICAgICBpZiAoYWRkU3ViRmllbGQpIHJldHVybiBhZGRTdWJGaWVsZChhY2MsIHN1YkZpZWxkKVxuICAgICAgICByZXR1cm4gYWNjXG4gICAgICB9LCBpbnB1dE9iamVjdFR5cGVDb25maWcpLFxuICAgIGRhdGU6IChpbnB1dE9iamVjdFR5cGVDb25maWc6IElucHV0T2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IERhdGVGaWVsZCkgPT4gKHtcbiAgICAgIC4uLmlucHV0T2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgIFtmaWVsZC5uYW1lXTogeyB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKGZpZWxkLCBHcmFwaFFMU3RyaW5nLCBmb3JjZU51bGxhYmxlKSB9LFxuICAgIH0pLFxuICAgIGVtYWlsOiAoaW5wdXRPYmplY3RUeXBlQ29uZmlnOiBJbnB1dE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBFbWFpbEZpZWxkKSA9PiAoe1xuICAgICAgLi4uaW5wdXRPYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIEdyYXBoUUxTdHJpbmcsIGZvcmNlTnVsbGFibGUpIH0sXG4gICAgfSksXG4gICAgZ3JvdXA6IChpbnB1dE9iamVjdFR5cGVDb25maWc6IElucHV0T2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IEdyb3VwRmllbGQpID0+IHtcbiAgICAgIGNvbnN0IHJlcXVpcmVzQXRMZWFzdE9uZUZpZWxkID0gZ3JvdXBPclRhYkhhc1JlcXVpcmVkU3ViZmllbGQoZmllbGQpXG4gICAgICBjb25zdCBmdWxsTmFtZSA9IGNvbWJpbmVQYXJlbnROYW1lKHBhcmVudE5hbWUsIHRvV29yZHMoZmllbGQubmFtZSwgdHJ1ZSkpXG4gICAgICBsZXQgdHlwZTogR3JhcGhRTFR5cGUgPSBidWlsZE11dGF0aW9uSW5wdXRUeXBlKHtcbiAgICAgICAgbmFtZTogZnVsbE5hbWUsXG4gICAgICAgIGZpZWxkczogZmllbGQuZmllbGRzLFxuICAgICAgICBwYXJlbnROYW1lOiBmdWxsTmFtZSxcbiAgICAgICAgZ3JhcGhxbFJlc3VsdCxcbiAgICAgICAgY29uZmlnLFxuICAgICAgfSlcblxuICAgICAgaWYgKCF0eXBlKSByZXR1cm4gaW5wdXRPYmplY3RUeXBlQ29uZmlnXG5cbiAgICAgIGlmIChyZXF1aXJlc0F0TGVhc3RPbmVGaWVsZCkgdHlwZSA9IG5ldyBHcmFwaFFMTm9uTnVsbCh0eXBlKVxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uaW5wdXRPYmplY3RUeXBlQ29uZmlnLFxuICAgICAgICBbZmllbGQubmFtZV06IHsgdHlwZSB9LFxuICAgICAgfVxuICAgIH0sXG4gICAganNvbjogKGlucHV0T2JqZWN0VHlwZUNvbmZpZzogSW5wdXRPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogSlNPTkZpZWxkKSA9PiAoe1xuICAgICAgLi4uaW5wdXRPYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIEdyYXBoUUxKU09OLCBmb3JjZU51bGxhYmxlKSB9LFxuICAgIH0pLFxuICAgIG51bWJlcjogKGlucHV0T2JqZWN0VHlwZUNvbmZpZzogSW5wdXRPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogTnVtYmVyRmllbGQpID0+IHtcbiAgICAgIGNvbnN0IHR5cGUgPSBmaWVsZC5uYW1lID09PSAnaWQnID8gR3JhcGhRTEludCA6IEdyYXBoUUxGbG9hdFxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uaW5wdXRPYmplY3RUeXBlQ29uZmlnLFxuICAgICAgICBbZmllbGQubmFtZV06IHtcbiAgICAgICAgICB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKFxuICAgICAgICAgICAgZmllbGQsXG4gICAgICAgICAgICBmaWVsZC5oYXNNYW55ID09PSB0cnVlID8gbmV3IEdyYXBoUUxMaXN0KHR5cGUpIDogdHlwZSxcbiAgICAgICAgICAgIGZvcmNlTnVsbGFibGUsXG4gICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgIH1cbiAgICB9LFxuICAgIHBvaW50OiAoaW5wdXRPYmplY3RUeXBlQ29uZmlnOiBJbnB1dE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBQb2ludEZpZWxkKSA9PiAoe1xuICAgICAgLi4uaW5wdXRPYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIG5ldyBHcmFwaFFMTGlzdChHcmFwaFFMRmxvYXQpLCBmb3JjZU51bGxhYmxlKSB9LFxuICAgIH0pLFxuICAgIHJhZGlvOiAoaW5wdXRPYmplY3RUeXBlQ29uZmlnOiBJbnB1dE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBSYWRpb0ZpZWxkKSA9PiAoe1xuICAgICAgLi4uaW5wdXRPYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIEdyYXBoUUxTdHJpbmcsIGZvcmNlTnVsbGFibGUpIH0sXG4gICAgfSksXG4gICAgcmVsYXRpb25zaGlwOiAoaW5wdXRPYmplY3RUeXBlQ29uZmlnOiBJbnB1dE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBSZWxhdGlvbnNoaXBGaWVsZCkgPT4ge1xuICAgICAgY29uc3QgeyByZWxhdGlvblRvIH0gPSBmaWVsZFxuICAgICAgdHlwZSBQYXlsb2FkR3JhcGhRTFJlbGF0aW9uc2hpcFR5cGUgPVxuICAgICAgICB8IEdyYXBoUUxJbnB1dE9iamVjdFR5cGVcbiAgICAgICAgfCBHcmFwaFFMTGlzdDxHcmFwaFFMU2NhbGFyVHlwZT5cbiAgICAgICAgfCBHcmFwaFFMU2NhbGFyVHlwZVxuICAgICAgbGV0IHR5cGU6IFBheWxvYWRHcmFwaFFMUmVsYXRpb25zaGlwVHlwZVxuXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShyZWxhdGlvblRvKSkge1xuICAgICAgICBjb25zdCBmdWxsTmFtZSA9IGAke2NvbWJpbmVQYXJlbnROYW1lKFxuICAgICAgICAgIHBhcmVudE5hbWUsXG4gICAgICAgICAgdG9Xb3JkcyhmaWVsZC5uYW1lLCB0cnVlKSxcbiAgICAgICAgKX1SZWxhdGlvbnNoaXBJbnB1dGBcbiAgICAgICAgdHlwZSA9IG5ldyBHcmFwaFFMSW5wdXRPYmplY3RUeXBlKHtcbiAgICAgICAgICBuYW1lOiBmdWxsTmFtZSxcbiAgICAgICAgICBmaWVsZHM6IHtcbiAgICAgICAgICAgIHJlbGF0aW9uVG86IHtcbiAgICAgICAgICAgICAgdHlwZTogbmV3IEdyYXBoUUxFbnVtVHlwZSh7XG4gICAgICAgICAgICAgICAgbmFtZTogYCR7ZnVsbE5hbWV9UmVsYXRpb25Ub2AsXG4gICAgICAgICAgICAgICAgdmFsdWVzOiByZWxhdGlvblRvLnJlZHVjZShcbiAgICAgICAgICAgICAgICAgICh2YWx1ZXMsIG9wdGlvbikgPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgLi4udmFsdWVzLFxuICAgICAgICAgICAgICAgICAgICBbZm9ybWF0TmFtZShvcHRpb24pXToge1xuICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBvcHRpb24sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgIHt9LFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHZhbHVlOiB7IHR5cGU6IEdyYXBoUUxKU09OIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHR5cGUgPSBnZXRDb2xsZWN0aW9uSURUeXBlKFxuICAgICAgICAgIGNvbmZpZy5kYi5kZWZhdWx0SURUeXBlLFxuICAgICAgICAgIGdyYXBocWxSZXN1bHQuY29sbGVjdGlvbnNbcmVsYXRpb25Ub10uY29uZmlnLFxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmlucHV0T2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IGZpZWxkLmhhc01hbnkgPyBuZXcgR3JhcGhRTExpc3QodHlwZSkgOiB0eXBlIH0sXG4gICAgICB9XG4gICAgfSxcbiAgICByaWNoVGV4dDogKGlucHV0T2JqZWN0VHlwZUNvbmZpZzogSW5wdXRPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogUmljaFRleHRGaWVsZCkgPT4gKHtcbiAgICAgIC4uLmlucHV0T2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgIFtmaWVsZC5uYW1lXTogeyB0eXBlOiB3aXRoTnVsbGFibGVUeXBlKGZpZWxkLCBHcmFwaFFMSlNPTiwgZm9yY2VOdWxsYWJsZSkgfSxcbiAgICB9KSxcbiAgICByb3c6IChpbnB1dE9iamVjdFR5cGVDb25maWc6IElucHV0T2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFJvd0ZpZWxkKSA9PlxuICAgICAgZmllbGQuZmllbGRzLnJlZHVjZSgoYWNjLCBzdWJGaWVsZDogRmllbGQpID0+IHtcbiAgICAgICAgY29uc3QgYWRkU3ViRmllbGQgPSBmaWVsZFRvU2NoZW1hTWFwW3N1YkZpZWxkLnR5cGVdXG4gICAgICAgIGlmIChhZGRTdWJGaWVsZCkgcmV0dXJuIGFkZFN1YkZpZWxkKGFjYywgc3ViRmllbGQpXG4gICAgICAgIHJldHVybiBhY2NcbiAgICAgIH0sIGlucHV0T2JqZWN0VHlwZUNvbmZpZyksXG4gICAgc2VsZWN0OiAoaW5wdXRPYmplY3RUeXBlQ29uZmlnOiBJbnB1dE9iamVjdFR5cGVDb25maWcsIGZpZWxkOiBTZWxlY3RGaWVsZCkgPT4ge1xuICAgICAgY29uc3QgZm9ybWF0dGVkTmFtZSA9IGAke2NvbWJpbmVQYXJlbnROYW1lKHBhcmVudE5hbWUsIGZpZWxkLm5hbWUpfV9NdXRhdGlvbklucHV0YFxuICAgICAgbGV0IHR5cGU6IEdyYXBoUUxUeXBlID0gbmV3IEdyYXBoUUxFbnVtVHlwZSh7XG4gICAgICAgIG5hbWU6IGZvcm1hdHRlZE5hbWUsXG4gICAgICAgIHZhbHVlczogZmllbGQub3B0aW9ucy5yZWR1Y2UoKHZhbHVlcywgb3B0aW9uKSA9PiB7XG4gICAgICAgICAgaWYgKG9wdGlvbklzT2JqZWN0KG9wdGlvbikpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLnZhbHVlcyxcbiAgICAgICAgICAgICAgW2Zvcm1hdE5hbWUob3B0aW9uLnZhbHVlKV06IHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogb3B0aW9uLnZhbHVlLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi52YWx1ZXMsXG4gICAgICAgICAgICBbZm9ybWF0TmFtZShvcHRpb24pXToge1xuICAgICAgICAgICAgICB2YWx1ZTogb3B0aW9uLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIH0sIHt9KSxcbiAgICAgIH0pXG5cbiAgICAgIHR5cGUgPSBmaWVsZC5oYXNNYW55ID8gbmV3IEdyYXBoUUxMaXN0KHR5cGUpIDogdHlwZVxuICAgICAgdHlwZSA9IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIHR5cGUsIGZvcmNlTnVsbGFibGUpXG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmlucHV0T2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGUgfSxcbiAgICAgIH1cbiAgICB9LFxuICAgIHRhYnM6IChpbnB1dE9iamVjdFR5cGVDb25maWc6IElucHV0T2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFRhYnNGaWVsZCkgPT4ge1xuICAgICAgcmV0dXJuIGZpZWxkLnRhYnMucmVkdWNlKChhY2MsIHRhYikgPT4ge1xuICAgICAgICBpZiAodGFiSGFzTmFtZSh0YWIpKSB7XG4gICAgICAgICAgY29uc3QgZnVsbE5hbWUgPSBjb21iaW5lUGFyZW50TmFtZShwYXJlbnROYW1lLCB0b1dvcmRzKHRhYi5uYW1lLCB0cnVlKSlcbiAgICAgICAgICBjb25zdCByZXF1aXJlc0F0TGVhc3RPbmVGaWVsZCA9IGdyb3VwT3JUYWJIYXNSZXF1aXJlZFN1YmZpZWxkKGZpZWxkKVxuICAgICAgICAgIGxldCB0eXBlOiBHcmFwaFFMVHlwZSA9IGJ1aWxkTXV0YXRpb25JbnB1dFR5cGUoe1xuICAgICAgICAgICAgbmFtZTogZnVsbE5hbWUsXG4gICAgICAgICAgICBmaWVsZHM6IHRhYi5maWVsZHMsXG4gICAgICAgICAgICBwYXJlbnROYW1lOiBmdWxsTmFtZSxcbiAgICAgICAgICAgIGdyYXBocWxSZXN1bHQsXG4gICAgICAgICAgICBjb25maWcsXG4gICAgICAgICAgfSlcblxuICAgICAgICAgIGlmICghdHlwZSkgcmV0dXJuIGFjY1xuXG4gICAgICAgICAgaWYgKHJlcXVpcmVzQXRMZWFzdE9uZUZpZWxkKSB0eXBlID0gbmV3IEdyYXBoUUxOb25OdWxsKHR5cGUpXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLmFjYyxcbiAgICAgICAgICAgIFt0YWIubmFtZV06IHsgdHlwZSB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uYWNjLFxuICAgICAgICAgIC4uLnRhYi5maWVsZHMucmVkdWNlKChzdWJGaWVsZFNjaGVtYSwgc3ViRmllbGQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFkZFN1YkZpZWxkID0gZmllbGRUb1NjaGVtYU1hcFtzdWJGaWVsZC50eXBlXVxuICAgICAgICAgICAgaWYgKGFkZFN1YkZpZWxkKSByZXR1cm4gYWRkU3ViRmllbGQoc3ViRmllbGRTY2hlbWEsIHN1YkZpZWxkKVxuICAgICAgICAgICAgcmV0dXJuIHN1YkZpZWxkU2NoZW1hXG4gICAgICAgICAgfSwgYWNjKSxcbiAgICAgICAgfVxuICAgICAgfSwgaW5wdXRPYmplY3RUeXBlQ29uZmlnKVxuICAgIH0sXG4gICAgdGV4dDogKGlucHV0T2JqZWN0VHlwZUNvbmZpZzogSW5wdXRPYmplY3RUeXBlQ29uZmlnLCBmaWVsZDogVGV4dEZpZWxkKSA9PiAoe1xuICAgICAgLi4uaW5wdXRPYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7XG4gICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgZmllbGQuaGFzTWFueSA9PT0gdHJ1ZSA/IG5ldyBHcmFwaFFMTGlzdChHcmFwaFFMU3RyaW5nKSA6IEdyYXBoUUxTdHJpbmcsXG4gICAgICAgICAgZm9yY2VOdWxsYWJsZSxcbiAgICAgICAgKSxcbiAgICAgIH0sXG4gICAgfSksXG4gICAgdGV4dGFyZWE6IChpbnB1dE9iamVjdFR5cGVDb25maWc6IElucHV0T2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFRleHRhcmVhRmllbGQpID0+ICh7XG4gICAgICAuLi5pbnB1dE9iamVjdFR5cGVDb25maWcsXG4gICAgICBbZmllbGQubmFtZV06IHsgdHlwZTogd2l0aE51bGxhYmxlVHlwZShmaWVsZCwgR3JhcGhRTFN0cmluZywgZm9yY2VOdWxsYWJsZSkgfSxcbiAgICB9KSxcbiAgICB1cGxvYWQ6IChpbnB1dE9iamVjdFR5cGVDb25maWc6IElucHV0T2JqZWN0VHlwZUNvbmZpZywgZmllbGQ6IFVwbG9hZEZpZWxkKSA9PiAoe1xuICAgICAgLi4uaW5wdXRPYmplY3RUeXBlQ29uZmlnLFxuICAgICAgW2ZpZWxkLm5hbWVdOiB7IHR5cGU6IHdpdGhOdWxsYWJsZVR5cGUoZmllbGQsIEdyYXBoUUxTdHJpbmcsIGZvcmNlTnVsbGFibGUpIH0sXG4gICAgfSksXG4gIH1cblxuICBjb25zdCBmaWVsZE5hbWUgPSBmb3JtYXROYW1lKG5hbWUpXG5cbiAgY29uc3QgZmllbGRTY2hlbWFzID0gZmllbGRzLnJlZHVjZSgoaW5wdXRPYmplY3RUeXBlQ29uZmlnLCBmaWVsZCkgPT4ge1xuICAgIGNvbnN0IGZpZWxkU2NoZW1hID0gZmllbGRUb1NjaGVtYU1hcFtmaWVsZC50eXBlXVxuXG4gICAgaWYgKHR5cGVvZiBmaWVsZFNjaGVtYSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIGlucHV0T2JqZWN0VHlwZUNvbmZpZ1xuICAgIH1cblxuICAgIGNvbnN0IHNjaGVtYSA9IGZpZWxkU2NoZW1hKGlucHV0T2JqZWN0VHlwZUNvbmZpZywgZmllbGQpXG4gICAgaWYgKE9iamVjdC5rZXlzKHNjaGVtYSkubGVuZ3RoID09PSAwKSB7XG4gICAgICByZXR1cm4gaW5wdXRPYmplY3RUeXBlQ29uZmlnXG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmlucHV0T2JqZWN0VHlwZUNvbmZpZyxcbiAgICAgIC4uLmZpZWxkU2NoZW1hKGlucHV0T2JqZWN0VHlwZUNvbmZpZywgZmllbGQpLFxuICAgIH1cbiAgfSwge30pXG5cbiAgaWYgKE9iamVjdC5rZXlzKGZpZWxkU2NoZW1hcykubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIHJldHVybiBuZXcgR3JhcGhRTElucHV0T2JqZWN0VHlwZSh7XG4gICAgbmFtZTogYG11dGF0aW9uJHtmaWVsZE5hbWV9SW5wdXRgLFxuICAgIGZpZWxkczogZmllbGRTY2hlbWFzLFxuICB9KVxufVxuIl0sIm5hbWVzIjpbImJ1aWxkTXV0YXRpb25JbnB1dFR5cGUiLCJnZXRDb2xsZWN0aW9uSURUeXBlIiwiaWRGaWVsZFR5cGVzIiwibnVtYmVyIiwiR3JhcGhRTEludCIsInRleHQiLCJHcmFwaFFMU3RyaW5nIiwidHlwZSIsImNvbGxlY3Rpb24iLCJpZEZpZWxkIiwiZmxhdHRlblRvcExldmVsRmllbGRzIiwiZmllbGRzIiwiZmluZCIsImZpZWxkIiwiZmllbGRBZmZlY3RzRGF0YSIsIm5hbWUiLCJwYXJlbnROYW1lIiwiZm9yY2VOdWxsYWJsZSIsImdyYXBocWxSZXN1bHQiLCJjb25maWciLCJmaWVsZFRvU2NoZW1hTWFwIiwiYXJyYXkiLCJpbnB1dE9iamVjdFR5cGVDb25maWciLCJmdWxsTmFtZSIsImNvbWJpbmVQYXJlbnROYW1lIiwidG9Xb3JkcyIsIkdyYXBoUUxMaXN0Iiwid2l0aE51bGxhYmxlVHlwZSIsImJsb2NrcyIsIkdyYXBoUUxKU09OIiwiY2hlY2tib3giLCJHcmFwaFFMQm9vbGVhbiIsImNvZGUiLCJjb2xsYXBzaWJsZSIsInJlZHVjZSIsImFjYyIsInN1YkZpZWxkIiwiYWRkU3ViRmllbGQiLCJkYXRlIiwiZW1haWwiLCJncm91cCIsInJlcXVpcmVzQXRMZWFzdE9uZUZpZWxkIiwiZ3JvdXBPclRhYkhhc1JlcXVpcmVkU3ViZmllbGQiLCJHcmFwaFFMTm9uTnVsbCIsImpzb24iLCJHcmFwaFFMRmxvYXQiLCJoYXNNYW55IiwicG9pbnQiLCJyYWRpbyIsInJlbGF0aW9uc2hpcCIsInJlbGF0aW9uVG8iLCJBcnJheSIsImlzQXJyYXkiLCJHcmFwaFFMSW5wdXRPYmplY3RUeXBlIiwiR3JhcGhRTEVudW1UeXBlIiwidmFsdWVzIiwib3B0aW9uIiwiZm9ybWF0TmFtZSIsInZhbHVlIiwiZGIiLCJkZWZhdWx0SURUeXBlIiwiY29sbGVjdGlvbnMiLCJyaWNoVGV4dCIsInJvdyIsInNlbGVjdCIsImZvcm1hdHRlZE5hbWUiLCJvcHRpb25zIiwib3B0aW9uSXNPYmplY3QiLCJ0YWJzIiwidGFiIiwidGFiSGFzTmFtZSIsInN1YkZpZWxkU2NoZW1hIiwidGV4dGFyZWEiLCJ1cGxvYWQiLCJmaWVsZE5hbWUiLCJmaWVsZFNjaGVtYXMiLCJmaWVsZFNjaGVtYSIsInNjaGVtYSIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiXSwibWFwcGluZ3MiOiJBQUFBLHVDQUF1Qzs7Ozs7Ozs7Ozs7SUFtRnZCQSxzQkFBc0I7ZUFBdEJBOztJQTVCSEMsbUJBQW1CO2VBQW5CQTs7O3lCQTNDTjtpQ0FDcUI7dUJBNEJpQzsyQkFDckM7K0NBRXNCOzBFQUNoQjtt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
@@ -0,0 +1,19 @@
1
+ import type { GraphQLFieldConfig } from 'graphql';
2
+ import { GraphQLObjectType } from 'graphql';
3
+ import type { GraphQLInfo } from 'payload/config';
4
+ import type { SanitizedConfig, Field } from 'payload/types';
5
+ export type ObjectTypeConfig = {
6
+ [path: string]: GraphQLFieldConfig<any, any>;
7
+ };
8
+ type Args = {
9
+ baseFields?: ObjectTypeConfig;
10
+ fields: Field[];
11
+ forceNullable?: boolean;
12
+ name: string;
13
+ parentName: string;
14
+ graphqlResult: GraphQLInfo;
15
+ config: SanitizedConfig;
16
+ };
17
+ declare function buildObjectType({ name, baseFields, fields, forceNullable, parentName, graphqlResult, config, }: Args): GraphQLObjectType;
18
+ export default buildObjectType;
19
+ //# sourceMappingURL=buildObjectType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildObjectType.d.ts","sourceRoot":"","sources":["../../src/schema/buildObjectType.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAe,MAAM,SAAS,CAAA;AAE9D,OAAO,EAOL,iBAAiB,EAGlB,MAAM,SAAS,CAAA;AAKhB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,KAAK,EAEV,eAAe,EAQf,KAAK,EAcN,MAAM,eAAe,CAAA;AAwBtB,MAAM,MAAM,gBAAgB,GAAG;IAC7B,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;CAC7C,CAAA;AAED,KAAK,IAAI,GAAG;IACV,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAC7B,MAAM,EAAE,KAAK,EAAE,CAAA;IACf,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,WAAW,CAAA;IAC1B,MAAM,EAAE,eAAe,CAAA;CACxB,CAAA;AAED,iBAAS,eAAe,CAAC,EACvB,IAAI,EACJ,UAAe,EACf,MAAM,EACN,aAAa,EACb,UAAU,EACV,aAAa,EACb,MAAM,GACP,EAAE,IAAI,GAAG,iBAAiB,CA+jB1B;AAED,eAAe,eAAe,CAAA"}