payload 2.6.0 → 2.8.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 (88) hide show
  1. package/components/styles.css +1 -1
  2. package/components/utilities.d.ts +1 -0
  3. package/components/utilities.js +5 -1
  4. package/dist/admin/components/elements/DocumentFields/index.d.ts.map +1 -1
  5. package/dist/admin/components/elements/DocumentFields/index.js +5 -2
  6. package/dist/admin/components/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  7. package/dist/admin/components/elements/DocumentHeader/Tabs/Tab/index.js +3 -3
  8. package/dist/admin/components/elements/EditUpload/index.scss +6 -0
  9. package/dist/admin/components/elements/Header/index.scss +0 -1
  10. package/dist/admin/components/elements/ListDrawer/DrawerContent.js +2 -2
  11. package/dist/admin/components/elements/Popup/PopupButtonList/index.scss +9 -2
  12. package/dist/admin/components/elements/Popup/index.scss +20 -2
  13. package/dist/admin/components/forms/Form/buildStateFromSchema/iterateFields.js +3 -3
  14. package/dist/admin/components/forms/Form/fieldReducer.js +3 -3
  15. package/dist/admin/components/forms/RenderFields/index.scss +1 -0
  16. package/dist/admin/components/forms/field-types/JSON/index.d.ts.map +1 -1
  17. package/dist/admin/components/forms/field-types/JSON/index.js +17 -9
  18. package/dist/admin/components/forms/field-types/Relationship/index.d.ts.map +1 -1
  19. package/dist/admin/components/forms/field-types/Relationship/index.js +11 -9
  20. package/dist/admin/components/forms/field-types/Text/Input.d.ts +3 -0
  21. package/dist/admin/components/forms/field-types/Text/Input.d.ts.map +1 -1
  22. package/dist/admin/components/forms/field-types/Text/Input.js +33 -5
  23. package/dist/admin/components/forms/field-types/Text/index.d.ts.map +1 -1
  24. package/dist/admin/components/forms/field-types/Text/index.js +48 -5
  25. package/dist/admin/components/forms/field-types/Text/index.scss +4 -2
  26. package/dist/admin/components/forms/useField/types.d.ts +1 -1
  27. package/dist/admin/components/forms/useField/types.d.ts.map +1 -1
  28. package/dist/admin/components/forms/withCondition/WatchCondition.js +3 -3
  29. package/dist/admin/components/templates/Default/index.scss +5 -0
  30. package/dist/admin/components/views/Account/index.d.ts.map +1 -1
  31. package/dist/admin/components/views/Account/index.js +3 -4
  32. package/dist/admin/components/views/Global/index.js +2 -2
  33. package/dist/admin/components/views/collections/Edit/formatFields.js +2 -2
  34. package/dist/admin/components/views/collections/Edit/index.js +2 -2
  35. package/dist/admin/hooks/useTitle.d.ts.map +1 -1
  36. package/dist/admin/hooks/useTitle.js +9 -2
  37. package/dist/auth/strategies/local/incrementLoginAttempts.js +2 -2
  38. package/dist/bin/build.d.ts.map +1 -1
  39. package/dist/bin/build.js +5 -8
  40. package/dist/bundlers/mocks/db-mongodb.js +13 -0
  41. package/dist/bundlers/mocks/db-postgres.js +13 -0
  42. package/dist/collections/graphql/init.d.ts.map +1 -1
  43. package/dist/collections/graphql/init.js +4 -3
  44. package/dist/collections/operations/create.d.ts.map +1 -1
  45. package/dist/collections/operations/create.js +4 -3
  46. package/dist/database/getLocalizedPaths.js +2 -2
  47. package/dist/database/migrations/migrate.d.ts.map +1 -1
  48. package/dist/database/migrations/migrate.js +13 -11
  49. package/dist/database/migrations/migrateDown.d.ts.map +1 -1
  50. package/dist/database/migrations/migrateDown.js +13 -9
  51. package/dist/database/migrations/migrateRefresh.d.ts.map +1 -1
  52. package/dist/database/migrations/migrateRefresh.js +18 -15
  53. package/dist/database/migrations/migrateReset.d.ts.map +1 -1
  54. package/dist/database/migrations/migrateReset.js +13 -9
  55. package/dist/database/migrations/migrationTemplate.d.ts +1 -1
  56. package/dist/database/migrations/migrationTemplate.d.ts.map +1 -1
  57. package/dist/database/migrations/migrationTemplate.js +3 -3
  58. package/dist/database/migrations/migrationsCollection.d.ts.map +1 -1
  59. package/dist/database/migrations/migrationsCollection.js +4 -3
  60. package/dist/database/types.d.ts +6 -4
  61. package/dist/database/types.d.ts.map +1 -1
  62. package/dist/exports/components/utilities.d.ts +1 -0
  63. package/dist/exports/components/utilities.d.ts.map +1 -1
  64. package/dist/exports/components/utilities.js +5 -1
  65. package/dist/fields/config/schema.d.ts.map +1 -1
  66. package/dist/fields/config/schema.js +12 -2
  67. package/dist/fields/config/types.d.ts +17 -1
  68. package/dist/fields/config/types.d.ts.map +1 -1
  69. package/dist/fields/config/types.js +1 -1
  70. package/dist/fields/hooks/beforeChange/promise.js +3 -3
  71. package/dist/fields/validations.d.ts.map +1 -1
  72. package/dist/fields/validations.js +34 -12
  73. package/dist/fields/validations.spec.js +22 -1
  74. package/dist/graphql/schema/buildMutationInputType.d.ts.map +1 -1
  75. package/dist/graphql/schema/buildMutationInputType.js +4 -3
  76. package/dist/graphql/schema/buildObjectType.d.ts.map +1 -1
  77. package/dist/graphql/schema/buildObjectType.js +2 -2
  78. package/dist/graphql/schema/buildWhereInputType.d.ts.map +1 -1
  79. package/dist/graphql/schema/buildWhereInputType.js +3 -3
  80. package/dist/utilities/configToJSONSchema.d.ts.map +1 -1
  81. package/dist/utilities/configToJSONSchema.js +14 -1
  82. package/dist/utilities/initTransaction.d.ts.map +1 -1
  83. package/dist/utilities/initTransaction.js +4 -2
  84. package/dist/utilities/isValidID.d.ts.map +1 -1
  85. package/dist/utilities/isValidID.js +11 -2
  86. package/dist/utilities/logger.js +2 -2
  87. package/dist/versions/buildCollectionFields.js +13 -13
  88. package/package.json +3 -3
@@ -84,6 +84,19 @@ function fieldsToJSONSchema(collectionIDFieldTypes, fields, interfaceNameDefinit
84
84
  let fieldSchema;
85
85
  switch(field.type){
86
86
  case 'text':
87
+ if (field.hasMany === true) {
88
+ fieldSchema = {
89
+ items: {
90
+ type: 'string'
91
+ },
92
+ type: withNullableJSONSchemaType('array', isRequired)
93
+ };
94
+ } else {
95
+ fieldSchema = {
96
+ type: withNullableJSONSchemaType('string', isRequired)
97
+ };
98
+ }
99
+ break;
87
100
  case 'textarea':
88
101
  case 'code':
89
102
  case 'email':
@@ -492,4 +505,4 @@ function configToJSONSchema(config, defaultIDType) {
492
505
  };
493
506
  }
494
507
 
495
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29uZmlnVG9KU09OU2NoZW1hLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSlNPTlNjaGVtYTQsIEpTT05TY2hlbWE0VHlwZU5hbWUgfSBmcm9tICdqc29uLXNjaGVtYSdcblxuaW1wb3J0IHsgc2luZ3VsYXIgfSBmcm9tICdwbHVyYWxpemUnXG5cbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gJy4uL2NvbGxlY3Rpb25zL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29uZmlnIH0gZnJvbSAnLi4vZXhwb3J0cy9jb25maWcnXG5pbXBvcnQgdHlwZSB7IEZpZWxkLCBGaWVsZEFmZmVjdGluZ0RhdGEsIE9wdGlvbiB9IGZyb20gJy4uL2ZpZWxkcy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZEdsb2JhbENvbmZpZyB9IGZyb20gJy4uL2dsb2JhbHMvY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgeyBmaWVsZEFmZmVjdHNEYXRhLCB0YWJIYXNOYW1lIH0gZnJvbSAnLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCB7IGRlZXBDb3B5T2JqZWN0IH0gZnJvbSAnLi9kZWVwQ29weU9iamVjdCdcbmltcG9ydCB7IHRvV29yZHMgfSBmcm9tICcuL2Zvcm1hdExhYmVscydcblxuY29uc3QgZmllbGRJc1JlcXVpcmVkID0gKGZpZWxkOiBGaWVsZCkgPT4ge1xuICBjb25zdCBpc0NvbmRpdGlvbmFsID0gQm9vbGVhbihmaWVsZD8uYWRtaW4gJiYgZmllbGQ/LmFkbWluPy5jb25kaXRpb24pXG4gIGlmIChpc0NvbmRpdGlvbmFsKSByZXR1cm4gZmFsc2VcblxuICBjb25zdCBpc01hcmtlZFJlcXVpcmVkID0gJ3JlcXVpcmVkJyBpbiBmaWVsZCAmJiBmaWVsZC5yZXF1aXJlZCA9PT0gdHJ1ZVxuICBpZiAoZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgaXNNYXJrZWRSZXF1aXJlZCkgcmV0dXJuIHRydWVcblxuICAvLyBpZiBhbnkgc3ViZmllbGRzIGFyZSByZXF1aXJlZCwgdGhpcyBmaWVsZCBpcyByZXF1aXJlZFxuICBpZiAoJ2ZpZWxkcycgaW4gZmllbGQgJiYgZmllbGQudHlwZSAhPT0gJ2FycmF5Jykge1xuICAgIHJldHVybiBmaWVsZC5maWVsZHMuc29tZSgoc3ViRmllbGQpID0+IGZpZWxkSXNSZXF1aXJlZChzdWJGaWVsZCkpXG4gIH1cblxuICAvLyBpZiBhbnkgdGFiIHN1YmZpZWxkcyBoYXZlIHJlcXVpcmVkIGZpZWxkcywgdGhpcyBmaWVsZCBpcyByZXF1aXJlZFxuICBpZiAoZmllbGQudHlwZSA9PT0gJ3RhYnMnKSB7XG4gICAgcmV0dXJuIGZpZWxkLnRhYnMuc29tZSgodGFiKSA9PiB7XG4gICAgICBpZiAoJ25hbWUnIGluIHRhYikge1xuICAgICAgICByZXR1cm4gdGFiLmZpZWxkcy5zb21lKChzdWJGaWVsZCkgPT4gZmllbGRJc1JlcXVpcmVkKHN1YkZpZWxkKSlcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0pXG4gIH1cblxuICByZXR1cm4gZmFsc2Vcbn1cblxuZnVuY3Rpb24gYnVpbGRPcHRpb25FbnVtcyhvcHRpb25zOiBPcHRpb25bXSk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIG9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICBpZiAodHlwZW9mIG9wdGlvbiA9PT0gJ29iamVjdCcgJiYgJ3ZhbHVlJyBpbiBvcHRpb24pIHtcbiAgICAgIHJldHVybiBvcHRpb24udmFsdWVcbiAgICB9XG5cbiAgICByZXR1cm4gb3B0aW9uXG4gIH0pXG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlRW50aXR5U2NoZW1hcyhcbiAgZW50aXRpZXM6IChTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIHwgU2FuaXRpemVkR2xvYmFsQ29uZmlnKVtdLFxuKTogSlNPTlNjaGVtYTQge1xuICBjb25zdCBwcm9wZXJ0aWVzID0gWy4uLmVudGl0aWVzXS5yZWR1Y2UoKGFjYywgeyBzbHVnIH0pID0+IHtcbiAgICBhY2Nbc2x1Z10gPSB7XG4gICAgICAkcmVmOiBgIy9kZWZpbml0aW9ucy8ke3NsdWd9YCxcbiAgICB9XG5cbiAgICByZXR1cm4gYWNjXG4gIH0sIHt9KVxuXG4gIHJldHVybiB7XG4gICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgIHByb3BlcnRpZXMsXG4gICAgcmVxdWlyZWQ6IE9iamVjdC5rZXlzKHByb3BlcnRpZXMpLFxuICAgIHR5cGU6ICdvYmplY3QnLFxuICB9XG59XG5cbi8qKlxuICogUmV0dXJucyBhIEpTT04gU2NoZW1hIFR5cGUgd2l0aCAnbnVsbCcgYWRkZWQgaWYgdGhlIGZpZWxkIGlzIG5vdCByZXF1aXJlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhOdWxsYWJsZUpTT05TY2hlbWFUeXBlKFxuICBmaWVsZFR5cGU6IEpTT05TY2hlbWE0VHlwZU5hbWUsXG4gIGlzUmVxdWlyZWQ6IGJvb2xlYW4sXG4pOiBKU09OU2NoZW1hNFR5cGVOYW1lIHwgSlNPTlNjaGVtYTRUeXBlTmFtZVtdIHtcbiAgY29uc3QgZmllbGRUeXBlcyA9IFtmaWVsZFR5cGVdXG4gIGlmIChpc1JlcXVpcmVkKSByZXR1cm4gZmllbGRUeXBlXG4gIGZpZWxkVHlwZXMucHVzaCgnbnVsbCcpXG4gIHJldHVybiBmaWVsZFR5cGVzXG59XG5cbmZ1bmN0aW9uIGZpZWxkc1RvSlNPTlNjaGVtYShcbiAgY29sbGVjdGlvbklERmllbGRUeXBlczogeyBba2V5OiBzdHJpbmddOiAnbnVtYmVyJyB8ICdzdHJpbmcnIH0sXG4gIGZpZWxkczogRmllbGRbXSxcbiAgaW50ZXJmYWNlTmFtZURlZmluaXRpb25zOiBNYXA8c3RyaW5nLCBKU09OU2NoZW1hND4sXG4pOiB7XG4gIHByb3BlcnRpZXM6IHtcbiAgICBbazogc3RyaW5nXTogSlNPTlNjaGVtYTRcbiAgfVxuICByZXF1aXJlZDogc3RyaW5nW11cbn0ge1xuICBjb25zdCByZXF1aXJlZEZpZWxkTmFtZXMgPSBuZXcgU2V0PHN0cmluZz4oKVxuXG4gIHJldHVybiB7XG4gICAgcHJvcGVydGllczogT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgZmllbGRzLnJlZHVjZSgoZmllbGRTY2hlbWFzLCBmaWVsZCkgPT4ge1xuICAgICAgICBjb25zdCBpc1JlcXVpcmVkID0gZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgZmllbGRJc1JlcXVpcmVkKGZpZWxkKVxuICAgICAgICBpZiAoaXNSZXF1aXJlZCkgcmVxdWlyZWRGaWVsZE5hbWVzLmFkZChmaWVsZC5uYW1lKVxuXG4gICAgICAgIGxldCBmaWVsZFNjaGVtYTogSlNPTlNjaGVtYTRcbiAgICAgICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICAgICAgY2FzZSAndGV4dCc6XG4gICAgICAgICAgY2FzZSAndGV4dGFyZWEnOlxuICAgICAgICAgIGNhc2UgJ2NvZGUnOlxuICAgICAgICAgIGNhc2UgJ2VtYWlsJzpcbiAgICAgICAgICBjYXNlICdkYXRlJzoge1xuICAgICAgICAgICAgZmllbGRTY2hlbWEgPSB7IHR5cGU6IHdpdGhOdWxsYWJsZUpTT05TY2hlbWFUeXBlKCdzdHJpbmcnLCBpc1JlcXVpcmVkKSB9XG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNhc2UgJ251bWJlcic6IHtcbiAgICAgICAgICAgIGlmIChmaWVsZC5oYXNNYW55ID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgIGZpZWxkU2NoZW1hID0ge1xuICAgICAgICAgICAgICAgIGl0ZW1zOiB7IHR5cGU6ICdudW1iZXInIH0sXG4gICAgICAgICAgICAgICAgdHlwZTogd2l0aE51bGxhYmxlSlNPTlNjaGVtYVR5cGUoJ2FycmF5JywgaXNSZXF1aXJlZCksXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGZpZWxkU2NoZW1hID0geyB0eXBlOiB3aXRoTnVsbGFibGVKU09OU2NoZW1hVHlwZSgnbnVtYmVyJywgaXNSZXF1aXJlZCkgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICdjaGVja2JveCc6IHtcbiAgICAgICAgICAgIGZpZWxkU2NoZW1hID0geyB0eXBlOiB3aXRoTnVsbGFibGVKU09OU2NoZW1hVHlwZSgnYm9vbGVhbicsIGlzUmVxdWlyZWQpIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2FzZSAnanNvbic6IHtcbiAgICAgICAgICAgIGZpZWxkU2NoZW1hID0ge1xuICAgICAgICAgICAgICB0eXBlOiBbJ29iamVjdCcsICdhcnJheScsICdzdHJpbmcnLCAnbnVtYmVyJywgJ2Jvb2xlYW4nLCAnbnVsbCddLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICdyaWNoVGV4dCc6IHtcbiAgICAgICAgICAgIGlmIChmaWVsZC5lZGl0b3Iub3V0cHV0U2NoZW1hKSB7XG4gICAgICAgICAgICAgIGZpZWxkU2NoZW1hID0gZmllbGQuZWRpdG9yLm91dHB1dFNjaGVtYSh7XG4gICAgICAgICAgICAgICAgZmllbGQsXG4gICAgICAgICAgICAgICAgaXNSZXF1aXJlZCxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIE1haW50YWluIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggZXhpc3RpbmcgcmljaCB0ZXh0IGVkaXRvcnNcbiAgICAgICAgICAgICAgZmllbGRTY2hlbWEgPSB7XG4gICAgICAgICAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdHlwZTogd2l0aE51bGxhYmxlSlNPTlNjaGVtYVR5cGUoJ2FycmF5JywgaXNSZXF1aXJlZCksXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICdyYWRpbyc6IHtcbiAgICAgICAgICAgIGZpZWxkU2NoZW1hID0ge1xuICAgICAgICAgICAgICBlbnVtOiBidWlsZE9wdGlvbkVudW1zKGZpZWxkLm9wdGlvbnMpLFxuICAgICAgICAgICAgICB0eXBlOiB3aXRoTnVsbGFibGVKU09OU2NoZW1hVHlwZSgnc3RyaW5nJywgaXNSZXF1aXJlZCksXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2FzZSAnc2VsZWN0Jzoge1xuICAgICAgICAgICAgY29uc3Qgb3B0aW9uRW51bXMgPSBidWlsZE9wdGlvbkVudW1zKGZpZWxkLm9wdGlvbnMpXG5cbiAgICAgICAgICAgIGlmIChmaWVsZC5oYXNNYW55KSB7XG4gICAgICAgICAgICAgIGZpZWxkU2NoZW1hID0ge1xuICAgICAgICAgICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICAgICAgICBlbnVtOiBvcHRpb25FbnVtcyxcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdHlwZTogd2l0aE51bGxhYmxlSlNPTlNjaGVtYVR5cGUoJ2FycmF5JywgaXNSZXF1aXJlZCksXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGZpZWxkU2NoZW1hID0ge1xuICAgICAgICAgICAgICAgIGVudW06IG9wdGlvbkVudW1zLFxuICAgICAgICAgICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZUpTT05TY2hlbWFUeXBlKCdzdHJpbmcnLCBpc1JlcXVpcmVkKSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNhc2UgJ3BvaW50Jzoge1xuICAgICAgICAgICAgZmllbGRTY2hlbWEgPSB7XG4gICAgICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBtYXhJdGVtczogMixcbiAgICAgICAgICAgICAgbWluSXRlbXM6IDIsXG4gICAgICAgICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZUpTT05TY2hlbWFUeXBlKCdhcnJheScsIGlzUmVxdWlyZWQpLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICdyZWxhdGlvbnNoaXAnOiB7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZC5yZWxhdGlvblRvKSkge1xuICAgICAgICAgICAgICBpZiAoZmllbGQuaGFzTWFueSkge1xuICAgICAgICAgICAgICAgIGZpZWxkU2NoZW1hID0ge1xuICAgICAgICAgICAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICAgICAgICAgICAgb25lT2Y6IGZpZWxkLnJlbGF0aW9uVG8ubWFwKChyZWxhdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uVG86IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdDogcmVsYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25lT2Y6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogY29sbGVjdGlvbklERmllbGRUeXBlc1tyZWxhdGlvbl0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVmOiBgIy9kZWZpbml0aW9ucy8ke3JlbGF0aW9ufWAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IFsndmFsdWUnLCAncmVsYXRpb25UbyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB0eXBlOiB3aXRoTnVsbGFibGVKU09OU2NoZW1hVHlwZSgnYXJyYXknLCBpc1JlcXVpcmVkKSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZmllbGRTY2hlbWEgPSB7XG4gICAgICAgICAgICAgICAgICBvbmVPZjogZmllbGQucmVsYXRpb25Uby5tYXAoKHJlbGF0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uVG86IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Q6IHJlbGF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uZU9mOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogY29sbGVjdGlvbklERmllbGRUeXBlc1tyZWxhdGlvbl0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVmOiBgIy9kZWZpbml0aW9ucy8ke3JlbGF0aW9ufWAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogWyd2YWx1ZScsICdyZWxhdGlvblRvJ10sXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZTogd2l0aE51bGxhYmxlSlNPTlNjaGVtYVR5cGUoJ29iamVjdCcsIGlzUmVxdWlyZWQpLFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZmllbGQuaGFzTWFueSkge1xuICAgICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHtcbiAgICAgICAgICAgICAgICBpdGVtczoge1xuICAgICAgICAgICAgICAgICAgb25lT2Y6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGNvbGxlY3Rpb25JREZpZWxkVHlwZXNbZmllbGQucmVsYXRpb25Ub10sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAkcmVmOiBgIy9kZWZpbml0aW9ucy8ke2ZpZWxkLnJlbGF0aW9uVG99YCxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB0eXBlOiB3aXRoTnVsbGFibGVKU09OU2NoZW1hVHlwZSgnYXJyYXknLCBpc1JlcXVpcmVkKSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZmllbGRTY2hlbWEgPSB7XG4gICAgICAgICAgICAgICAgb25lT2Y6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogd2l0aE51bGxhYmxlSlNPTlNjaGVtYVR5cGUoXG4gICAgICAgICAgICAgICAgICAgICAgY29sbGVjdGlvbklERmllbGRUeXBlc1tmaWVsZC5yZWxhdGlvblRvXSxcbiAgICAgICAgICAgICAgICAgICAgICBpc1JlcXVpcmVkLFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgJHJlZjogYCMvZGVmaW5pdGlvbnMvJHtmaWVsZC5yZWxhdGlvblRvfWAsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICd1cGxvYWQnOiB7XG4gICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHtcbiAgICAgICAgICAgICAgb25lT2Y6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiBjb2xsZWN0aW9uSURGaWVsZFR5cGVzW2ZpZWxkLnJlbGF0aW9uVG9dLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgJHJlZjogYCMvZGVmaW5pdGlvbnMvJHtmaWVsZC5yZWxhdGlvblRvfWAsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghaXNSZXF1aXJlZCkgZmllbGRTY2hlbWEub25lT2YucHVzaCh7IHR5cGU6ICdudWxsJyB9KVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICdibG9ja3MnOiB7XG4gICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHtcbiAgICAgICAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICAgICAgICBvbmVPZjogZmllbGQuYmxvY2tzLm1hcCgoYmxvY2spID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrRmllbGRTY2hlbWFzID0gZmllbGRzVG9KU09OU2NoZW1hKFxuICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uSURGaWVsZFR5cGVzLFxuICAgICAgICAgICAgICAgICAgICBibG9jay5maWVsZHMsXG4gICAgICAgICAgICAgICAgICAgIGludGVyZmFjZU5hbWVEZWZpbml0aW9ucyxcbiAgICAgICAgICAgICAgICAgIClcblxuICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2tTY2hlbWE6IEpTT05TY2hlbWE0ID0ge1xuICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAuLi5ibG9ja0ZpZWxkU2NoZW1hcy5wcm9wZXJ0aWVzLFxuICAgICAgICAgICAgICAgICAgICAgIGJsb2NrVHlwZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Q6IGJsb2NrLnNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IFsnYmxvY2tUeXBlJywgLi4uYmxvY2tGaWVsZFNjaGVtYXMucmVxdWlyZWRdLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgaWYgKGJsb2NrLmludGVyZmFjZU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgaW50ZXJmYWNlTmFtZURlZmluaXRpb25zLnNldChibG9jay5pbnRlcmZhY2VOYW1lLCBibG9ja1NjaGVtYSlcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICRyZWY6IGAjL2RlZmluaXRpb25zLyR7YmxvY2suaW50ZXJmYWNlTmFtZX1gLFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHJldHVybiBibG9ja1NjaGVtYVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB0eXBlOiB3aXRoTnVsbGFibGVKU09OU2NoZW1hVHlwZSgnYXJyYXknLCBpc1JlcXVpcmVkKSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2FzZSAnYXJyYXknOiB7XG4gICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHtcbiAgICAgICAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICAgICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgICAgICAgLi4uZmllbGRzVG9KU09OU2NoZW1hKFxuICAgICAgICAgICAgICAgICAgY29sbGVjdGlvbklERmllbGRUeXBlcyxcbiAgICAgICAgICAgICAgICAgIGZpZWxkLmZpZWxkcyxcbiAgICAgICAgICAgICAgICAgIGludGVyZmFjZU5hbWVEZWZpbml0aW9ucyxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB0eXBlOiB3aXRoTnVsbGFibGVKU09OU2NoZW1hVHlwZSgnYXJyYXknLCBpc1JlcXVpcmVkKSxcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGZpZWxkLmludGVyZmFjZU5hbWUpIHtcbiAgICAgICAgICAgICAgaW50ZXJmYWNlTmFtZURlZmluaXRpb25zLnNldChmaWVsZC5pbnRlcmZhY2VOYW1lLCBmaWVsZFNjaGVtYSlcblxuICAgICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHtcbiAgICAgICAgICAgICAgICAkcmVmOiBgIy9kZWZpbml0aW9ucy8ke2ZpZWxkLmludGVyZmFjZU5hbWV9YCxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICdyb3cnOlxuICAgICAgICAgIGNhc2UgJ2NvbGxhcHNpYmxlJzoge1xuICAgICAgICAgICAgY29uc3QgY2hpbGRTY2hlbWEgPSBmaWVsZHNUb0pTT05TY2hlbWEoXG4gICAgICAgICAgICAgIGNvbGxlY3Rpb25JREZpZWxkVHlwZXMsXG4gICAgICAgICAgICAgIGZpZWxkLmZpZWxkcyxcbiAgICAgICAgICAgICAgaW50ZXJmYWNlTmFtZURlZmluaXRpb25zLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoY2hpbGRTY2hlbWEucHJvcGVydGllcykuZm9yRWFjaCgoW3Byb3BOYW1lLCBwcm9wU2NoZW1hXSkgPT4ge1xuICAgICAgICAgICAgICBmaWVsZFNjaGVtYXMuc2V0KHByb3BOYW1lLCBwcm9wU2NoZW1hKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGNoaWxkU2NoZW1hLnJlcXVpcmVkLmZvckVhY2goKHByb3BOYW1lKSA9PiB7XG4gICAgICAgICAgICAgIHJlcXVpcmVkRmllbGROYW1lcy5hZGQocHJvcE5hbWUpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICd0YWJzJzoge1xuICAgICAgICAgICAgZmllbGQudGFicy5mb3JFYWNoKCh0YWIpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgY2hpbGRTY2hlbWEgPSBmaWVsZHNUb0pTT05TY2hlbWEoXG4gICAgICAgICAgICAgICAgY29sbGVjdGlvbklERmllbGRUeXBlcyxcbiAgICAgICAgICAgICAgICB0YWIuZmllbGRzLFxuICAgICAgICAgICAgICAgIGludGVyZmFjZU5hbWVEZWZpbml0aW9ucyxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBpZiAodGFiSGFzTmFtZSh0YWIpKSB7XG4gICAgICAgICAgICAgICAgLy8gY291bGQgaGF2ZSBpbnRlcmZhY2VcbiAgICAgICAgICAgICAgICBmaWVsZFNjaGVtYXMuc2V0KHRhYi5uYW1lLCB7XG4gICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICAgICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICAgICAgICAgIC4uLmNoaWxkU2NoZW1hLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgcmVxdWlyZWRGaWVsZE5hbWVzLmFkZCh0YWIubmFtZSlcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhjaGlsZFNjaGVtYS5wcm9wZXJ0aWVzKS5mb3JFYWNoKChbcHJvcE5hbWUsIHByb3BTY2hlbWFdKSA9PiB7XG4gICAgICAgICAgICAgICAgICBmaWVsZFNjaGVtYXMuc2V0KHByb3BOYW1lLCBwcm9wU2NoZW1hKVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgY2hpbGRTY2hlbWEucmVxdWlyZWQuZm9yRWFjaCgocHJvcE5hbWUpID0+IHtcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkRmllbGROYW1lcy5hZGQocHJvcE5hbWUpXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2FzZSAnZ3JvdXAnOiB7XG4gICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHtcbiAgICAgICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICAgICAgLi4uZmllbGRzVG9KU09OU2NoZW1hKGNvbGxlY3Rpb25JREZpZWxkVHlwZXMsIGZpZWxkLmZpZWxkcywgaW50ZXJmYWNlTmFtZURlZmluaXRpb25zKSxcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGZpZWxkLmludGVyZmFjZU5hbWUpIHtcbiAgICAgICAgICAgICAgaW50ZXJmYWNlTmFtZURlZmluaXRpb25zLnNldChmaWVsZC5pbnRlcmZhY2VOYW1lLCBmaWVsZFNjaGVtYSlcblxuICAgICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHtcbiAgICAgICAgICAgICAgICAkcmVmOiBgIy9kZWZpbml0aW9ucy8ke2ZpZWxkLmludGVyZmFjZU5hbWV9YCxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaWVsZFNjaGVtYSAmJiBmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSkge1xuICAgICAgICAgIGZpZWxkU2NoZW1hcy5zZXQoZmllbGQubmFtZSwgZmllbGRTY2hlbWEpXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmllbGRTY2hlbWFzXG4gICAgICB9LCBuZXcgTWFwPHN0cmluZywgSlNPTlNjaGVtYTQ+KCkpLFxuICAgICksXG4gICAgcmVxdWlyZWQ6IEFycmF5LmZyb20ocmVxdWlyZWRGaWVsZE5hbWVzKSxcbiAgfVxufVxuXG4vLyBUaGlzIGZ1bmN0aW9uIGlzIHBhcnQgb2YgdGhlIHB1YmxpYyBBUEkgYW5kIGlzIGV4cG9ydGVkIHRocm91Z2ggcGF5bG9hZC91dGlsaXRpZXNcbmV4cG9ydCBmdW5jdGlvbiBlbnRpdHlUb0pTT05TY2hlbWEoXG4gIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICBpbmNvbWluZ0VudGl0eTogU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB8IFNhbml0aXplZEdsb2JhbENvbmZpZyxcbiAgaW50ZXJmYWNlTmFtZURlZmluaXRpb25zOiBNYXA8c3RyaW5nLCBKU09OU2NoZW1hND4sXG4gIGRlZmF1bHRJRFR5cGU6ICdudW1iZXInIHwgJ3RleHQnLFxuKTogSlNPTlNjaGVtYTQge1xuICBjb25zdCBlbnRpdHk6IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgfCBTYW5pdGl6ZWRHbG9iYWxDb25maWcgPSBkZWVwQ29weU9iamVjdChpbmNvbWluZ0VudGl0eSlcbiAgY29uc3QgdGl0bGUgPSBlbnRpdHkudHlwZXNjcmlwdD8uaW50ZXJmYWNlXG4gICAgPyBlbnRpdHkudHlwZXNjcmlwdC5pbnRlcmZhY2VcbiAgICA6IHNpbmd1bGFyKHRvV29yZHMoZW50aXR5LnNsdWcsIHRydWUpKVxuXG4gIGNvbnN0IGlkRmllbGQ6IEZpZWxkQWZmZWN0aW5nRGF0YSA9IHsgbmFtZTogJ2lkJywgcmVxdWlyZWQ6IHRydWUsIHR5cGU6IGRlZmF1bHRJRFR5cGUgYXMgJ3RleHQnIH1cbiAgY29uc3QgY3VzdG9tSWRGaWVsZCA9IGVudGl0eS5maWVsZHMuZmluZChcbiAgICAoZmllbGQpID0+IGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09ICdpZCcsXG4gICkgYXMgRmllbGRBZmZlY3RpbmdEYXRhXG5cbiAgaWYgKGN1c3RvbUlkRmllbGQgJiYgY3VzdG9tSWRGaWVsZC50eXBlICE9PSAnZ3JvdXAnICYmIGN1c3RvbUlkRmllbGQudHlwZSAhPT0gJ3RhYicpIHtcbiAgICBjdXN0b21JZEZpZWxkLnJlcXVpcmVkID0gdHJ1ZVxuICB9IGVsc2Uge1xuICAgIGVudGl0eS5maWVsZHMudW5zaGlmdChpZEZpZWxkKVxuICB9XG5cbiAgLy8gbWFyayB0aW1lc3RhbXAgZmllbGRzIHJlcXVpcmVkXG4gIGlmICgndGltZXN0YW1wcycgaW4gZW50aXR5ICYmIGVudGl0eS50aW1lc3RhbXBzICE9PSBmYWxzZSkge1xuICAgIGVudGl0eS5maWVsZHMgPSBlbnRpdHkuZmllbGRzLm1hcCgoZmllbGQpID0+IHtcbiAgICAgIGlmIChmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSAmJiAoZmllbGQubmFtZSA9PT0gJ2NyZWF0ZWRBdCcgfHwgZmllbGQubmFtZSA9PT0gJ3VwZGF0ZWRBdCcpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uZmllbGQsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmaWVsZFxuICAgIH0pXG4gIH1cblxuICBpZiAoJ2F1dGgnIGluIGVudGl0eSAmJiBlbnRpdHkuYXV0aCAmJiAhZW50aXR5LmF1dGg/LmRpc2FibGVMb2NhbFN0cmF0ZWd5KSB7XG4gICAgZW50aXR5LmZpZWxkcy5wdXNoKHtcbiAgICAgIG5hbWU6ICdwYXNzd29yZCcsXG4gICAgICB0eXBlOiAndGV4dCcsXG4gICAgfSlcbiAgfVxuXG4gIC8vIHVzZWQgZm9yIHJlbGF0aW9uc2hpcCBmaWVsZHMsIHRvIGRldGVybWluZSB3aGV0aGVyIHRvIHVzZSBhIHN0cmluZyBvciBudW1iZXIgdHlwZSBmb3IgdGhlIElEXG4gIGNvbnN0IGNvbGxlY3Rpb25JREZpZWxkVHlwZXM6IHsgW2tleTogc3RyaW5nXTogJ251bWJlcicgfCAnc3RyaW5nJyB9ID0gY29uZmlnLmNvbGxlY3Rpb25zLnJlZHVjZShcbiAgICAoYWNjLCBjb2xsZWN0aW9uKSA9PiB7XG4gICAgICBjb25zdCBjdXN0b21Db2xsZWN0aW9uSWRGaWVsZCA9IGNvbGxlY3Rpb24uZmllbGRzLmZpbmQoXG4gICAgICAgIChmaWVsZCkgPT4gJ25hbWUnIGluIGZpZWxkICYmIGZpZWxkLm5hbWUgPT09ICdpZCcsXG4gICAgICApXG5cbiAgICAgIGFjY1tjb2xsZWN0aW9uLnNsdWddID0gZGVmYXVsdElEVHlwZSA9PT0gJ3RleHQnID8gJ3N0cmluZycgOiAnbnVtYmVyJ1xuXG4gICAgICBpZiAoY3VzdG9tQ29sbGVjdGlvbklkRmllbGQpIHtcbiAgICAgICAgYWNjW2NvbGxlY3Rpb24uc2x1Z10gPSBjdXN0b21Db2xsZWN0aW9uSWRGaWVsZC50eXBlID09PSAnbnVtYmVyJyA/ICdudW1iZXInIDogJ3N0cmluZydcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGFjY1xuICAgIH0sXG4gICAge30sXG4gIClcblxuICByZXR1cm4ge1xuICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICB0aXRsZSxcbiAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAuLi5maWVsZHNUb0pTT05TY2hlbWEoY29sbGVjdGlvbklERmllbGRUeXBlcywgZW50aXR5LmZpZWxkcywgaW50ZXJmYWNlTmFtZURlZmluaXRpb25zKSxcbiAgfVxufVxuXG4vKipcbiAqIFRoaXMgaXMgdXNlZCBmb3IgZ2VuZXJhdGluZyB0aGUgVHlwZVNjcmlwdCB0eXBlcyAocGF5bG9hZC10eXBlcy50cykgd2l0aCB0aGUgcGF5bG9hZCBnZW5lcmF0ZTp0eXBlcyBjb21tYW5kLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29uZmlnVG9KU09OU2NoZW1hKFxuICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgZGVmYXVsdElEVHlwZT86ICdudW1iZXInIHwgJ3RleHQnLFxuKTogSlNPTlNjaGVtYTQge1xuICAvLyBhIG11dGFibGUgTWFwIHRvIHN0b3JlIGN1c3RvbSB0b3AtbGV2ZWwgYGludGVyZmFjZU5hbWVgIHR5cGVzXG4gIGNvbnN0IGludGVyZmFjZU5hbWVEZWZpbml0aW9uczogTWFwPHN0cmluZywgSlNPTlNjaGVtYTQ+ID0gbmV3IE1hcCgpXG4gIGNvbnN0IGVudGl0eURlZmluaXRpb25zOiB7IFtrOiBzdHJpbmddOiBKU09OU2NoZW1hNCB9ID0gW1xuICAgIC4uLmNvbmZpZy5nbG9iYWxzLFxuICAgIC4uLmNvbmZpZy5jb2xsZWN0aW9ucyxcbiAgXS5yZWR1Y2UoKGFjYywgZW50aXR5KSA9PiB7XG4gICAgYWNjW2VudGl0eS5zbHVnXSA9IGVudGl0eVRvSlNPTlNjaGVtYShjb25maWcsIGVudGl0eSwgaW50ZXJmYWNlTmFtZURlZmluaXRpb25zLCBkZWZhdWx0SURUeXBlKVxuICAgIHJldHVybiBhY2NcbiAgfSwge30pXG5cbiAgcmV0dXJuIHtcbiAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgZGVmaW5pdGlvbnM6IHsgLi4uZW50aXR5RGVmaW5pdGlvbnMsIC4uLk9iamVjdC5mcm9tRW50cmllcyhpbnRlcmZhY2VOYW1lRGVmaW5pdGlvbnMpIH0sXG4gICAgcHJvcGVydGllczoge1xuICAgICAgY29sbGVjdGlvbnM6IGdlbmVyYXRlRW50aXR5U2NoZW1hcyhjb25maWcuY29sbGVjdGlvbnMgfHwgW10pLFxuICAgICAgZ2xvYmFsczogZ2VuZXJhdGVFbnRpdHlTY2hlbWFzKGNvbmZpZy5nbG9iYWxzIHx8IFtdKSxcbiAgICB9LFxuICAgIHJlcXVpcmVkOiBbJ2NvbGxlY3Rpb25zJywgJ2dsb2JhbHMnXSxcbiAgICB0aXRsZTogJ0NvbmZpZycsXG4gICAgdHlwZTogJ29iamVjdCcsXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJ3aXRoTnVsbGFibGVKU09OU2NoZW1hVHlwZSIsImVudGl0eVRvSlNPTlNjaGVtYSIsImNvbmZpZ1RvSlNPTlNjaGVtYSIsImZpZWxkSXNSZXF1aXJlZCIsImZpZWxkIiwiaXNDb25kaXRpb25hbCIsIkJvb2xlYW4iLCJhZG1pbiIsImNvbmRpdGlvbiIsImlzTWFya2VkUmVxdWlyZWQiLCJyZXF1aXJlZCIsImZpZWxkQWZmZWN0c0RhdGEiLCJ0eXBlIiwiZmllbGRzIiwic29tZSIsInN1YkZpZWxkIiwidGFicyIsInRhYiIsImJ1aWxkT3B0aW9uRW51bXMiLCJvcHRpb25zIiwibWFwIiwib3B0aW9uIiwidmFsdWUiLCJnZW5lcmF0ZUVudGl0eVNjaGVtYXMiLCJlbnRpdGllcyIsInByb3BlcnRpZXMiLCJyZWR1Y2UiLCJhY2MiLCJzbHVnIiwiJHJlZiIsImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiwiT2JqZWN0Iiwia2V5cyIsImZpZWxkVHlwZSIsImlzUmVxdWlyZWQiLCJmaWVsZFR5cGVzIiwicHVzaCIsImZpZWxkc1RvSlNPTlNjaGVtYSIsImNvbGxlY3Rpb25JREZpZWxkVHlwZXMiLCJpbnRlcmZhY2VOYW1lRGVmaW5pdGlvbnMiLCJyZXF1aXJlZEZpZWxkTmFtZXMiLCJTZXQiLCJmcm9tRW50cmllcyIsImZpZWxkU2NoZW1hcyIsImFkZCIsIm5hbWUiLCJmaWVsZFNjaGVtYSIsImhhc01hbnkiLCJpdGVtcyIsImVkaXRvciIsIm91dHB1dFNjaGVtYSIsImVudW0iLCJvcHRpb25FbnVtcyIsIm1heEl0ZW1zIiwibWluSXRlbXMiLCJBcnJheSIsImlzQXJyYXkiLCJyZWxhdGlvblRvIiwib25lT2YiLCJyZWxhdGlvbiIsImNvbnN0IiwiYmxvY2tzIiwiYmxvY2siLCJibG9ja0ZpZWxkU2NoZW1hcyIsImJsb2NrU2NoZW1hIiwiYmxvY2tUeXBlIiwiaW50ZXJmYWNlTmFtZSIsInNldCIsImNoaWxkU2NoZW1hIiwiZW50cmllcyIsImZvckVhY2giLCJwcm9wTmFtZSIsInByb3BTY2hlbWEiLCJ0YWJIYXNOYW1lIiwiTWFwIiwiZnJvbSIsImNvbmZpZyIsImluY29taW5nRW50aXR5IiwiZGVmYXVsdElEVHlwZSIsImVudGl0eSIsImRlZXBDb3B5T2JqZWN0IiwidGl0bGUiLCJ0eXBlc2NyaXB0IiwiaW50ZXJmYWNlIiwic2luZ3VsYXIiLCJ0b1dvcmRzIiwiaWRGaWVsZCIsImN1c3RvbUlkRmllbGQiLCJmaW5kIiwidW5zaGlmdCIsInRpbWVzdGFtcHMiLCJhdXRoIiwiZGlzYWJsZUxvY2FsU3RyYXRlZ3kiLCJjb2xsZWN0aW9ucyIsImNvbGxlY3Rpb24iLCJjdXN0b21Db2xsZWN0aW9uSWRGaWVsZCIsImVudGl0eURlZmluaXRpb25zIiwiZ2xvYmFscyIsImRlZmluaXRpb25zIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQXNFZ0JBLDBCQUEwQjtlQUExQkE7O0lBb1hBQyxrQkFBa0I7ZUFBbEJBOztJQXVFQUMsa0JBQWtCO2VBQWxCQTs7OzJCQS9mUzt1QkFPb0I7Z0NBQ2Q7OEJBQ1A7QUFFeEIsTUFBTUMsa0JBQWtCLENBQUNDO0lBQ3ZCLE1BQU1DLGdCQUFnQkMsUUFBUUYsT0FBT0csU0FBU0gsT0FBT0csT0FBT0M7SUFDNUQsSUFBSUgsZUFBZSxPQUFPO0lBRTFCLE1BQU1JLG1CQUFtQixjQUFjTCxTQUFTQSxNQUFNTSxRQUFRLEtBQUs7SUFDbkUsSUFBSUMsSUFBQUEsdUJBQWdCLEVBQUNQLFVBQVVLLGtCQUFrQixPQUFPO0lBRXhELHdEQUF3RDtJQUN4RCxJQUFJLFlBQVlMLFNBQVNBLE1BQU1RLElBQUksS0FBSyxTQUFTO1FBQy9DLE9BQU9SLE1BQU1TLE1BQU0sQ0FBQ0MsSUFBSSxDQUFDLENBQUNDLFdBQWFaLGdCQUFnQlk7SUFDekQ7SUFFQSxvRUFBb0U7SUFDcEUsSUFBSVgsTUFBTVEsSUFBSSxL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
508
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvY29uZmlnVG9KU09OU2NoZW1hLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSlNPTlNjaGVtYTQsIEpTT05TY2hlbWE0VHlwZU5hbWUgfSBmcm9tICdqc29uLXNjaGVtYSdcblxuaW1wb3J0IHsgc2luZ3VsYXIgfSBmcm9tICdwbHVyYWxpemUnXG5cbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gJy4uL2NvbGxlY3Rpb25zL2NvbmZpZy90eXBlcydcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkQ29uZmlnIH0gZnJvbSAnLi4vZXhwb3J0cy9jb25maWcnXG5pbXBvcnQgdHlwZSB7IEZpZWxkLCBGaWVsZEFmZmVjdGluZ0RhdGEsIE9wdGlvbiB9IGZyb20gJy4uL2ZpZWxkcy9jb25maWcvdHlwZXMnXG5pbXBvcnQgdHlwZSB7IFNhbml0aXplZEdsb2JhbENvbmZpZyB9IGZyb20gJy4uL2dsb2JhbHMvY29uZmlnL3R5cGVzJ1xuXG5pbXBvcnQgeyBmaWVsZEFmZmVjdHNEYXRhLCB0YWJIYXNOYW1lIH0gZnJvbSAnLi4vZmllbGRzL2NvbmZpZy90eXBlcydcbmltcG9ydCB7IGRlZXBDb3B5T2JqZWN0IH0gZnJvbSAnLi9kZWVwQ29weU9iamVjdCdcbmltcG9ydCB7IHRvV29yZHMgfSBmcm9tICcuL2Zvcm1hdExhYmVscydcblxuY29uc3QgZmllbGRJc1JlcXVpcmVkID0gKGZpZWxkOiBGaWVsZCkgPT4ge1xuICBjb25zdCBpc0NvbmRpdGlvbmFsID0gQm9vbGVhbihmaWVsZD8uYWRtaW4gJiYgZmllbGQ/LmFkbWluPy5jb25kaXRpb24pXG4gIGlmIChpc0NvbmRpdGlvbmFsKSByZXR1cm4gZmFsc2VcblxuICBjb25zdCBpc01hcmtlZFJlcXVpcmVkID0gJ3JlcXVpcmVkJyBpbiBmaWVsZCAmJiBmaWVsZC5yZXF1aXJlZCA9PT0gdHJ1ZVxuICBpZiAoZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgaXNNYXJrZWRSZXF1aXJlZCkgcmV0dXJuIHRydWVcblxuICAvLyBpZiBhbnkgc3ViZmllbGRzIGFyZSByZXF1aXJlZCwgdGhpcyBmaWVsZCBpcyByZXF1aXJlZFxuICBpZiAoJ2ZpZWxkcycgaW4gZmllbGQgJiYgZmllbGQudHlwZSAhPT0gJ2FycmF5Jykge1xuICAgIHJldHVybiBmaWVsZC5maWVsZHMuc29tZSgoc3ViRmllbGQpID0+IGZpZWxkSXNSZXF1aXJlZChzdWJGaWVsZCkpXG4gIH1cblxuICAvLyBpZiBhbnkgdGFiIHN1YmZpZWxkcyBoYXZlIHJlcXVpcmVkIGZpZWxkcywgdGhpcyBmaWVsZCBpcyByZXF1aXJlZFxuICBpZiAoZmllbGQudHlwZSA9PT0gJ3RhYnMnKSB7XG4gICAgcmV0dXJuIGZpZWxkLnRhYnMuc29tZSgodGFiKSA9PiB7XG4gICAgICBpZiAoJ25hbWUnIGluIHRhYikge1xuICAgICAgICByZXR1cm4gdGFiLmZpZWxkcy5zb21lKChzdWJGaWVsZCkgPT4gZmllbGRJc1JlcXVpcmVkKHN1YkZpZWxkKSlcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH0pXG4gIH1cblxuICByZXR1cm4gZmFsc2Vcbn1cblxuZnVuY3Rpb24gYnVpbGRPcHRpb25FbnVtcyhvcHRpb25zOiBPcHRpb25bXSk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIG9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICBpZiAodHlwZW9mIG9wdGlvbiA9PT0gJ29iamVjdCcgJiYgJ3ZhbHVlJyBpbiBvcHRpb24pIHtcbiAgICAgIHJldHVybiBvcHRpb24udmFsdWVcbiAgICB9XG5cbiAgICByZXR1cm4gb3B0aW9uXG4gIH0pXG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlRW50aXR5U2NoZW1hcyhcbiAgZW50aXRpZXM6IChTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIHwgU2FuaXRpemVkR2xvYmFsQ29uZmlnKVtdLFxuKTogSlNPTlNjaGVtYTQge1xuICBjb25zdCBwcm9wZXJ0aWVzID0gWy4uLmVudGl0aWVzXS5yZWR1Y2UoKGFjYywgeyBzbHVnIH0pID0+IHtcbiAgICBhY2Nbc2x1Z10gPSB7XG4gICAgICAkcmVmOiBgIy9kZWZpbml0aW9ucy8ke3NsdWd9YCxcbiAgICB9XG5cbiAgICByZXR1cm4gYWNjXG4gIH0sIHt9KVxuXG4gIHJldHVybiB7XG4gICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgIHByb3BlcnRpZXMsXG4gICAgcmVxdWlyZWQ6IE9iamVjdC5rZXlzKHByb3BlcnRpZXMpLFxuICAgIHR5cGU6ICdvYmplY3QnLFxuICB9XG59XG5cbi8qKlxuICogUmV0dXJucyBhIEpTT04gU2NoZW1hIFR5cGUgd2l0aCAnbnVsbCcgYWRkZWQgaWYgdGhlIGZpZWxkIGlzIG5vdCByZXF1aXJlZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhOdWxsYWJsZUpTT05TY2hlbWFUeXBlKFxuICBmaWVsZFR5cGU6IEpTT05TY2hlbWE0VHlwZU5hbWUsXG4gIGlzUmVxdWlyZWQ6IGJvb2xlYW4sXG4pOiBKU09OU2NoZW1hNFR5cGVOYW1lIHwgSlNPTlNjaGVtYTRUeXBlTmFtZVtdIHtcbiAgY29uc3QgZmllbGRUeXBlcyA9IFtmaWVsZFR5cGVdXG4gIGlmIChpc1JlcXVpcmVkKSByZXR1cm4gZmllbGRUeXBlXG4gIGZpZWxkVHlwZXMucHVzaCgnbnVsbCcpXG4gIHJldHVybiBmaWVsZFR5cGVzXG59XG5cbmZ1bmN0aW9uIGZpZWxkc1RvSlNPTlNjaGVtYShcbiAgY29sbGVjdGlvbklERmllbGRUeXBlczogeyBba2V5OiBzdHJpbmddOiAnbnVtYmVyJyB8ICdzdHJpbmcnIH0sXG4gIGZpZWxkczogRmllbGRbXSxcbiAgaW50ZXJmYWNlTmFtZURlZmluaXRpb25zOiBNYXA8c3RyaW5nLCBKU09OU2NoZW1hND4sXG4pOiB7XG4gIHByb3BlcnRpZXM6IHtcbiAgICBbazogc3RyaW5nXTogSlNPTlNjaGVtYTRcbiAgfVxuICByZXF1aXJlZDogc3RyaW5nW11cbn0ge1xuICBjb25zdCByZXF1aXJlZEZpZWxkTmFtZXMgPSBuZXcgU2V0PHN0cmluZz4oKVxuXG4gIHJldHVybiB7XG4gICAgcHJvcGVydGllczogT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgZmllbGRzLnJlZHVjZSgoZmllbGRTY2hlbWFzLCBmaWVsZCkgPT4ge1xuICAgICAgICBjb25zdCBpc1JlcXVpcmVkID0gZmllbGRBZmZlY3RzRGF0YShmaWVsZCkgJiYgZmllbGRJc1JlcXVpcmVkKGZpZWxkKVxuICAgICAgICBpZiAoaXNSZXF1aXJlZCkgcmVxdWlyZWRGaWVsZE5hbWVzLmFkZChmaWVsZC5uYW1lKVxuXG4gICAgICAgIGxldCBmaWVsZFNjaGVtYTogSlNPTlNjaGVtYTRcbiAgICAgICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICAgICAgY2FzZSAndGV4dCc6XG4gICAgICAgICAgICBpZiAoZmllbGQuaGFzTWFueSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHtcbiAgICAgICAgICAgICAgICBpdGVtczogeyB0eXBlOiAnc3RyaW5nJyB9LFxuICAgICAgICAgICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZUpTT05TY2hlbWFUeXBlKCdhcnJheScsIGlzUmVxdWlyZWQpLFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHsgdHlwZTogd2l0aE51bGxhYmxlSlNPTlNjaGVtYVR5cGUoJ3N0cmluZycsIGlzUmVxdWlyZWQpIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgY2FzZSAndGV4dGFyZWEnOlxuICAgICAgICAgIGNhc2UgJ2NvZGUnOlxuICAgICAgICAgIGNhc2UgJ2VtYWlsJzpcbiAgICAgICAgICBjYXNlICdkYXRlJzoge1xuICAgICAgICAgICAgZmllbGRTY2hlbWEgPSB7IHR5cGU6IHdpdGhOdWxsYWJsZUpTT05TY2hlbWFUeXBlKCdzdHJpbmcnLCBpc1JlcXVpcmVkKSB9XG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNhc2UgJ251bWJlcic6IHtcbiAgICAgICAgICAgIGlmIChmaWVsZC5oYXNNYW55ID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgIGZpZWxkU2NoZW1hID0ge1xuICAgICAgICAgICAgICAgIGl0ZW1zOiB7IHR5cGU6ICdudW1iZXInIH0sXG4gICAgICAgICAgICAgICAgdHlwZTogd2l0aE51bGxhYmxlSlNPTlNjaGVtYVR5cGUoJ2FycmF5JywgaXNSZXF1aXJlZCksXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGZpZWxkU2NoZW1hID0geyB0eXBlOiB3aXRoTnVsbGFibGVKU09OU2NoZW1hVHlwZSgnbnVtYmVyJywgaXNSZXF1aXJlZCkgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICdjaGVja2JveCc6IHtcbiAgICAgICAgICAgIGZpZWxkU2NoZW1hID0geyB0eXBlOiB3aXRoTnVsbGFibGVKU09OU2NoZW1hVHlwZSgnYm9vbGVhbicsIGlzUmVxdWlyZWQpIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2FzZSAnanNvbic6IHtcbiAgICAgICAgICAgIGZpZWxkU2NoZW1hID0ge1xuICAgICAgICAgICAgICB0eXBlOiBbJ29iamVjdCcsICdhcnJheScsICdzdHJpbmcnLCAnbnVtYmVyJywgJ2Jvb2xlYW4nLCAnbnVsbCddLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICdyaWNoVGV4dCc6IHtcbiAgICAgICAgICAgIGlmIChmaWVsZC5lZGl0b3Iub3V0cHV0U2NoZW1hKSB7XG4gICAgICAgICAgICAgIGZpZWxkU2NoZW1hID0gZmllbGQuZWRpdG9yLm91dHB1dFNjaGVtYSh7XG4gICAgICAgICAgICAgICAgZmllbGQsXG4gICAgICAgICAgICAgICAgaXNSZXF1aXJlZCxcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIE1haW50YWluIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggZXhpc3RpbmcgcmljaCB0ZXh0IGVkaXRvcnNcbiAgICAgICAgICAgICAgZmllbGRTY2hlbWEgPSB7XG4gICAgICAgICAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdHlwZTogd2l0aE51bGxhYmxlSlNPTlNjaGVtYVR5cGUoJ2FycmF5JywgaXNSZXF1aXJlZCksXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICdyYWRpbyc6IHtcbiAgICAgICAgICAgIGZpZWxkU2NoZW1hID0ge1xuICAgICAgICAgICAgICBlbnVtOiBidWlsZE9wdGlvbkVudW1zKGZpZWxkLm9wdGlvbnMpLFxuICAgICAgICAgICAgICB0eXBlOiB3aXRoTnVsbGFibGVKU09OU2NoZW1hVHlwZSgnc3RyaW5nJywgaXNSZXF1aXJlZCksXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2FzZSAnc2VsZWN0Jzoge1xuICAgICAgICAgICAgY29uc3Qgb3B0aW9uRW51bXMgPSBidWlsZE9wdGlvbkVudW1zKGZpZWxkLm9wdGlvbnMpXG5cbiAgICAgICAgICAgIGlmIChmaWVsZC5oYXNNYW55KSB7XG4gICAgICAgICAgICAgIGZpZWxkU2NoZW1hID0ge1xuICAgICAgICAgICAgICAgIGl0ZW1zOiB7XG4gICAgICAgICAgICAgICAgICBlbnVtOiBvcHRpb25FbnVtcyxcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdHlwZTogd2l0aE51bGxhYmxlSlNPTlNjaGVtYVR5cGUoJ2FycmF5JywgaXNSZXF1aXJlZCksXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGZpZWxkU2NoZW1hID0ge1xuICAgICAgICAgICAgICAgIGVudW06IG9wdGlvbkVudW1zLFxuICAgICAgICAgICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZUpTT05TY2hlbWFUeXBlKCdzdHJpbmcnLCBpc1JlcXVpcmVkKSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNhc2UgJ3BvaW50Jzoge1xuICAgICAgICAgICAgZmllbGRTY2hlbWEgPSB7XG4gICAgICAgICAgICAgIGl0ZW1zOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICBtYXhJdGVtczogMixcbiAgICAgICAgICAgICAgbWluSXRlbXM6IDIsXG4gICAgICAgICAgICAgIHR5cGU6IHdpdGhOdWxsYWJsZUpTT05TY2hlbWFUeXBlKCdhcnJheScsIGlzUmVxdWlyZWQpLFxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICdyZWxhdGlvbnNoaXAnOiB7XG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZC5yZWxhdGlvblRvKSkge1xuICAgICAgICAgICAgICBpZiAoZmllbGQuaGFzTWFueSkge1xuICAgICAgICAgICAgICAgIGZpZWxkU2NoZW1hID0ge1xuICAgICAgICAgICAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICAgICAgICAgICAgb25lT2Y6IGZpZWxkLnJlbGF0aW9uVG8ubWFwKChyZWxhdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uVG86IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdDogcmVsYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25lT2Y6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogY29sbGVjdGlvbklERmllbGRUeXBlc1tyZWxhdGlvbl0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVmOiBgIy9kZWZpbml0aW9ucy8ke3JlbGF0aW9ufWAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IFsndmFsdWUnLCAncmVsYXRpb25UbyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB0eXBlOiB3aXRoTnVsbGFibGVKU09OU2NoZW1hVHlwZSgnYXJyYXknLCBpc1JlcXVpcmVkKSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgZmllbGRTY2hlbWEgPSB7XG4gICAgICAgICAgICAgICAgICBvbmVPZjogZmllbGQucmVsYXRpb25Uby5tYXAoKHJlbGF0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbGF0aW9uVG86IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Q6IHJlbGF0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uZU9mOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogY29sbGVjdGlvbklERmllbGRUeXBlc1tyZWxhdGlvbl0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcmVmOiBgIy9kZWZpbml0aW9ucy8ke3JlbGF0aW9ufWAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogWyd2YWx1ZScsICdyZWxhdGlvblRvJ10sXG4gICAgICAgICAgICAgICAgICAgICAgdHlwZTogd2l0aE51bGxhYmxlSlNPTlNjaGVtYVR5cGUoJ29iamVjdCcsIGlzUmVxdWlyZWQpLFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZmllbGQuaGFzTWFueSkge1xuICAgICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHtcbiAgICAgICAgICAgICAgICBpdGVtczoge1xuICAgICAgICAgICAgICAgICAgb25lT2Y6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IGNvbGxlY3Rpb25JREZpZWxkVHlwZXNbZmllbGQucmVsYXRpb25Ub10sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAkcmVmOiBgIy9kZWZpbml0aW9ucy8ke2ZpZWxkLnJlbGF0aW9uVG99YCxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB0eXBlOiB3aXRoTnVsbGFibGVKU09OU2NoZW1hVHlwZSgnYXJyYXknLCBpc1JlcXVpcmVkKSxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgZmllbGRTY2hlbWEgPSB7XG4gICAgICAgICAgICAgICAgb25lT2Y6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogd2l0aE51bGxhYmxlSlNPTlNjaGVtYVR5cGUoXG4gICAgICAgICAgICAgICAgICAgICAgY29sbGVjdGlvbklERmllbGRUeXBlc1tmaWVsZC5yZWxhdGlvblRvXSxcbiAgICAgICAgICAgICAgICAgICAgICBpc1JlcXVpcmVkLFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgJHJlZjogYCMvZGVmaW5pdGlvbnMvJHtmaWVsZC5yZWxhdGlvblRvfWAsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICd1cGxvYWQnOiB7XG4gICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHtcbiAgICAgICAgICAgICAgb25lT2Y6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICB0eXBlOiBjb2xsZWN0aW9uSURGaWVsZFR5cGVzW2ZpZWxkLnJlbGF0aW9uVG9dLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgJHJlZjogYCMvZGVmaW5pdGlvbnMvJHtmaWVsZC5yZWxhdGlvblRvfWAsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghaXNSZXF1aXJlZCkgZmllbGRTY2hlbWEub25lT2YucHVzaCh7IHR5cGU6ICdudWxsJyB9KVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICdibG9ja3MnOiB7XG4gICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHtcbiAgICAgICAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICAgICAgICBvbmVPZjogZmllbGQuYmxvY2tzLm1hcCgoYmxvY2spID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGJsb2NrRmllbGRTY2hlbWFzID0gZmllbGRzVG9KU09OU2NoZW1hKFxuICAgICAgICAgICAgICAgICAgICBjb2xsZWN0aW9uSURGaWVsZFR5cGVzLFxuICAgICAgICAgICAgICAgICAgICBibG9jay5maWVsZHMsXG4gICAgICAgICAgICAgICAgICAgIGludGVyZmFjZU5hbWVEZWZpbml0aW9ucyxcbiAgICAgICAgICAgICAgICAgIClcblxuICAgICAgICAgICAgICAgICAgY29uc3QgYmxvY2tTY2hlbWE6IEpTT05TY2hlbWE0ID0ge1xuICAgICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgICAuLi5ibG9ja0ZpZWxkU2NoZW1hcy5wcm9wZXJ0aWVzLFxuICAgICAgICAgICAgICAgICAgICAgIGJsb2NrVHlwZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Q6IGJsb2NrLnNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IFsnYmxvY2tUeXBlJywgLi4uYmxvY2tGaWVsZFNjaGVtYXMucmVxdWlyZWRdLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgaWYgKGJsb2NrLmludGVyZmFjZU5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgaW50ZXJmYWNlTmFtZURlZmluaXRpb25zLnNldChibG9jay5pbnRlcmZhY2VOYW1lLCBibG9ja1NjaGVtYSlcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICRyZWY6IGAjL2RlZmluaXRpb25zLyR7YmxvY2suaW50ZXJmYWNlTmFtZX1gLFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIHJldHVybiBibG9ja1NjaGVtYVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB0eXBlOiB3aXRoTnVsbGFibGVKU09OU2NoZW1hVHlwZSgnYXJyYXknLCBpc1JlcXVpcmVkKSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2FzZSAnYXJyYXknOiB7XG4gICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHtcbiAgICAgICAgICAgICAgaXRlbXM6IHtcbiAgICAgICAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICAgICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgICAgICAgLi4uZmllbGRzVG9KU09OU2NoZW1hKFxuICAgICAgICAgICAgICAgICAgY29sbGVjdGlvbklERmllbGRUeXBlcyxcbiAgICAgICAgICAgICAgICAgIGZpZWxkLmZpZWxkcyxcbiAgICAgICAgICAgICAgICAgIGludGVyZmFjZU5hbWVEZWZpbml0aW9ucyxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB0eXBlOiB3aXRoTnVsbGFibGVKU09OU2NoZW1hVHlwZSgnYXJyYXknLCBpc1JlcXVpcmVkKSxcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGZpZWxkLmludGVyZmFjZU5hbWUpIHtcbiAgICAgICAgICAgICAgaW50ZXJmYWNlTmFtZURlZmluaXRpb25zLnNldChmaWVsZC5pbnRlcmZhY2VOYW1lLCBmaWVsZFNjaGVtYSlcblxuICAgICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHtcbiAgICAgICAgICAgICAgICAkcmVmOiBgIy9kZWZpbml0aW9ucy8ke2ZpZWxkLmludGVyZmFjZU5hbWV9YCxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICdyb3cnOlxuICAgICAgICAgIGNhc2UgJ2NvbGxhcHNpYmxlJzoge1xuICAgICAgICAgICAgY29uc3QgY2hpbGRTY2hlbWEgPSBmaWVsZHNUb0pTT05TY2hlbWEoXG4gICAgICAgICAgICAgIGNvbGxlY3Rpb25JREZpZWxkVHlwZXMsXG4gICAgICAgICAgICAgIGZpZWxkLmZpZWxkcyxcbiAgICAgICAgICAgICAgaW50ZXJmYWNlTmFtZURlZmluaXRpb25zLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgT2JqZWN0LmVudHJpZXMoY2hpbGRTY2hlbWEucHJvcGVydGllcykuZm9yRWFjaCgoW3Byb3BOYW1lLCBwcm9wU2NoZW1hXSkgPT4ge1xuICAgICAgICAgICAgICBmaWVsZFNjaGVtYXMuc2V0KHByb3BOYW1lLCBwcm9wU2NoZW1hKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGNoaWxkU2NoZW1hLnJlcXVpcmVkLmZvckVhY2goKHByb3BOYW1lKSA9PiB7XG4gICAgICAgICAgICAgIHJlcXVpcmVkRmllbGROYW1lcy5hZGQocHJvcE5hbWUpXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjYXNlICd0YWJzJzoge1xuICAgICAgICAgICAgZmllbGQudGFicy5mb3JFYWNoKCh0YWIpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgY2hpbGRTY2hlbWEgPSBmaWVsZHNUb0pTT05TY2hlbWEoXG4gICAgICAgICAgICAgICAgY29sbGVjdGlvbklERmllbGRUeXBlcyxcbiAgICAgICAgICAgICAgICB0YWIuZmllbGRzLFxuICAgICAgICAgICAgICAgIGludGVyZmFjZU5hbWVEZWZpbml0aW9ucyxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBpZiAodGFiSGFzTmFtZSh0YWIpKSB7XG4gICAgICAgICAgICAgICAgLy8gY291bGQgaGF2ZSBpbnRlcmZhY2VcbiAgICAgICAgICAgICAgICBmaWVsZFNjaGVtYXMuc2V0KHRhYi5uYW1lLCB7XG4gICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgICAgICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICAgICAgICAgIC4uLmNoaWxkU2NoZW1hLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgcmVxdWlyZWRGaWVsZE5hbWVzLmFkZCh0YWIubmFtZSlcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBPYmplY3QuZW50cmllcyhjaGlsZFNjaGVtYS5wcm9wZXJ0aWVzKS5mb3JFYWNoKChbcHJvcE5hbWUsIHByb3BTY2hlbWFdKSA9PiB7XG4gICAgICAgICAgICAgICAgICBmaWVsZFNjaGVtYXMuc2V0KHByb3BOYW1lLCBwcm9wU2NoZW1hKVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgY2hpbGRTY2hlbWEucmVxdWlyZWQuZm9yRWFjaCgocHJvcE5hbWUpID0+IHtcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkRmllbGROYW1lcy5hZGQocHJvcE5hbWUpXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY2FzZSAnZ3JvdXAnOiB7XG4gICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHtcbiAgICAgICAgICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlLFxuICAgICAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICAgICAgLi4uZmllbGRzVG9KU09OU2NoZW1hKGNvbGxlY3Rpb25JREZpZWxkVHlwZXMsIGZpZWxkLmZpZWxkcywgaW50ZXJmYWNlTmFtZURlZmluaXRpb25zKSxcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGZpZWxkLmludGVyZmFjZU5hbWUpIHtcbiAgICAgICAgICAgICAgaW50ZXJmYWNlTmFtZURlZmluaXRpb25zLnNldChmaWVsZC5pbnRlcmZhY2VOYW1lLCBmaWVsZFNjaGVtYSlcblxuICAgICAgICAgICAgICBmaWVsZFNjaGVtYSA9IHtcbiAgICAgICAgICAgICAgICAkcmVmOiBgIy9kZWZpbml0aW9ucy8ke2ZpZWxkLmludGVyZmFjZU5hbWV9YCxcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaWVsZFNjaGVtYSAmJiBmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSkge1xuICAgICAgICAgIGZpZWxkU2NoZW1hcy5zZXQoZmllbGQubmFtZSwgZmllbGRTY2hlbWEpXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmllbGRTY2hlbWFzXG4gICAgICB9LCBuZXcgTWFwPHN0cmluZywgSlNPTlNjaGVtYTQ+KCkpLFxuICAgICksXG4gICAgcmVxdWlyZWQ6IEFycmF5LmZyb20ocmVxdWlyZWRGaWVsZE5hbWVzKSxcbiAgfVxufVxuXG4vLyBUaGlzIGZ1bmN0aW9uIGlzIHBhcnQgb2YgdGhlIHB1YmxpYyBBUEkgYW5kIGlzIGV4cG9ydGVkIHRocm91Z2ggcGF5bG9hZC91dGlsaXRpZXNcbmV4cG9ydCBmdW5jdGlvbiBlbnRpdHlUb0pTT05TY2hlbWEoXG4gIGNvbmZpZzogU2FuaXRpemVkQ29uZmlnLFxuICBpbmNvbWluZ0VudGl0eTogU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZyB8IFNhbml0aXplZEdsb2JhbENvbmZpZyxcbiAgaW50ZXJmYWNlTmFtZURlZmluaXRpb25zOiBNYXA8c3RyaW5nLCBKU09OU2NoZW1hND4sXG4gIGRlZmF1bHRJRFR5cGU6ICdudW1iZXInIHwgJ3RleHQnLFxuKTogSlNPTlNjaGVtYTQge1xuICBjb25zdCBlbnRpdHk6IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcgfCBTYW5pdGl6ZWRHbG9iYWxDb25maWcgPSBkZWVwQ29weU9iamVjdChpbmNvbWluZ0VudGl0eSlcbiAgY29uc3QgdGl0bGUgPSBlbnRpdHkudHlwZXNjcmlwdD8uaW50ZXJmYWNlXG4gICAgPyBlbnRpdHkudHlwZXNjcmlwdC5pbnRlcmZhY2VcbiAgICA6IHNpbmd1bGFyKHRvV29yZHMoZW50aXR5LnNsdWcsIHRydWUpKVxuXG4gIGNvbnN0IGlkRmllbGQ6IEZpZWxkQWZmZWN0aW5nRGF0YSA9IHsgbmFtZTogJ2lkJywgcmVxdWlyZWQ6IHRydWUsIHR5cGU6IGRlZmF1bHRJRFR5cGUgYXMgJ3RleHQnIH1cbiAgY29uc3QgY3VzdG9tSWRGaWVsZCA9IGVudGl0eS5maWVsZHMuZmluZChcbiAgICAoZmllbGQpID0+IGZpZWxkQWZmZWN0c0RhdGEoZmllbGQpICYmIGZpZWxkLm5hbWUgPT09ICdpZCcsXG4gICkgYXMgRmllbGRBZmZlY3RpbmdEYXRhXG5cbiAgaWYgKGN1c3RvbUlkRmllbGQgJiYgY3VzdG9tSWRGaWVsZC50eXBlICE9PSAnZ3JvdXAnICYmIGN1c3RvbUlkRmllbGQudHlwZSAhPT0gJ3RhYicpIHtcbiAgICBjdXN0b21JZEZpZWxkLnJlcXVpcmVkID0gdHJ1ZVxuICB9IGVsc2Uge1xuICAgIGVudGl0eS5maWVsZHMudW5zaGlmdChpZEZpZWxkKVxuICB9XG5cbiAgLy8gbWFyayB0aW1lc3RhbXAgZmllbGRzIHJlcXVpcmVkXG4gIGlmICgndGltZXN0YW1wcycgaW4gZW50aXR5ICYmIGVudGl0eS50aW1lc3RhbXBzICE9PSBmYWxzZSkge1xuICAgIGVudGl0eS5maWVsZHMgPSBlbnRpdHkuZmllbGRzLm1hcCgoZmllbGQpID0+IHtcbiAgICAgIGlmIChmaWVsZEFmZmVjdHNEYXRhKGZpZWxkKSAmJiAoZmllbGQubmFtZSA9PT0gJ2NyZWF0ZWRBdCcgfHwgZmllbGQubmFtZSA9PT0gJ3VwZGF0ZWRBdCcpKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uZmllbGQsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmaWVsZFxuICAgIH0pXG4gIH1cblxuICBpZiAoJ2F1dGgnIGluIGVudGl0eSAmJiBlbnRpdHkuYXV0aCAmJiAhZW50aXR5LmF1dGg/LmRpc2FibGVMb2NhbFN0cmF0ZWd5KSB7XG4gICAgZW50aXR5LmZpZWxkcy5wdXNoKHtcbiAgICAgIG5hbWU6ICdwYXNzd29yZCcsXG4gICAgICB0eXBlOiAndGV4dCcsXG4gICAgfSlcbiAgfVxuXG4gIC8vIHVzZWQgZm9yIHJlbGF0aW9uc2hpcCBmaWVsZHMsIHRvIGRldGVybWluZSB3aGV0aGVyIHRvIHVzZSBhIHN0cmluZyBvciBudW1iZXIgdHlwZSBmb3IgdGhlIElEXG4gIGNvbnN0IGNvbGxlY3Rpb25JREZpZWxkVHlwZXM6IHsgW2tleTogc3RyaW5nXTogJ251bWJlcicgfCAnc3RyaW5nJyB9ID0gY29uZmlnLmNvbGxlY3Rpb25zLnJlZHVjZShcbiAgICAoYWNjLCBjb2xsZWN0aW9uKSA9PiB7XG4gICAgICBjb25zdCBjdXN0b21Db2xsZWN0aW9uSWRGaWVsZCA9IGNvbGxlY3Rpb24uZmllbGRzLmZpbmQoXG4gICAgICAgIChmaWVsZCkgPT4gJ25hbWUnIGluIGZpZWxkICYmIGZpZWxkLm5hbWUgPT09ICdpZCcsXG4gICAgICApXG5cbiAgICAgIGFjY1tjb2xsZWN0aW9uLnNsdWddID0gZGVmYXVsdElEVHlwZSA9PT0gJ3RleHQnID8gJ3N0cmluZycgOiAnbnVtYmVyJ1xuXG4gICAgICBpZiAoY3VzdG9tQ29sbGVjdGlvbklkRmllbGQpIHtcbiAgICAgICAgYWNjW2NvbGxlY3Rpb24uc2x1Z10gPSBjdXN0b21Db2xsZWN0aW9uSWRGaWVsZC50eXBlID09PSAnbnVtYmVyJyA/ICdudW1iZXInIDogJ3N0cmluZydcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGFjY1xuICAgIH0sXG4gICAge30sXG4gIClcblxuICByZXR1cm4ge1xuICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZSxcbiAgICB0aXRsZSxcbiAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAuLi5maWVsZHNUb0pTT05TY2hlbWEoY29sbGVjdGlvbklERmllbGRUeXBlcywgZW50aXR5LmZpZWxkcywgaW50ZXJmYWNlTmFtZURlZmluaXRpb25zKSxcbiAgfVxufVxuXG4vKipcbiAqIFRoaXMgaXMgdXNlZCBmb3IgZ2VuZXJhdGluZyB0aGUgVHlwZVNjcmlwdCB0eXBlcyAocGF5bG9hZC10eXBlcy50cykgd2l0aCB0aGUgcGF5bG9hZCBnZW5lcmF0ZTp0eXBlcyBjb21tYW5kLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY29uZmlnVG9KU09OU2NoZW1hKFxuICBjb25maWc6IFNhbml0aXplZENvbmZpZyxcbiAgZGVmYXVsdElEVHlwZT86ICdudW1iZXInIHwgJ3RleHQnLFxuKTogSlNPTlNjaGVtYTQge1xuICAvLyBhIG11dGFibGUgTWFwIHRvIHN0b3JlIGN1c3RvbSB0b3AtbGV2ZWwgYGludGVyZmFjZU5hbWVgIHR5cGVzXG4gIGNvbnN0IGludGVyZmFjZU5hbWVEZWZpbml0aW9uczogTWFwPHN0cmluZywgSlNPTlNjaGVtYTQ+ID0gbmV3IE1hcCgpXG4gIGNvbnN0IGVudGl0eURlZmluaXRpb25zOiB7IFtrOiBzdHJpbmddOiBKU09OU2NoZW1hNCB9ID0gW1xuICAgIC4uLmNvbmZpZy5nbG9iYWxzLFxuICAgIC4uLmNvbmZpZy5jb2xsZWN0aW9ucyxcbiAgXS5yZWR1Y2UoKGFjYywgZW50aXR5KSA9PiB7XG4gICAgYWNjW2VudGl0eS5zbHVnXSA9IGVudGl0eVRvSlNPTlNjaGVtYShjb25maWcsIGVudGl0eSwgaW50ZXJmYWNlTmFtZURlZmluaXRpb25zLCBkZWZhdWx0SURUeXBlKVxuICAgIHJldHVybiBhY2NcbiAgfSwge30pXG5cbiAgcmV0dXJuIHtcbiAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UsXG4gICAgZGVmaW5pdGlvbnM6IHsgLi4uZW50aXR5RGVmaW5pdGlvbnMsIC4uLk9iamVjdC5mcm9tRW50cmllcyhpbnRlcmZhY2VOYW1lRGVmaW5pdGlvbnMpIH0sXG4gICAgcHJvcGVydGllczoge1xuICAgICAgY29sbGVjdGlvbnM6IGdlbmVyYXRlRW50aXR5U2NoZW1hcyhjb25maWcuY29sbGVjdGlvbnMgfHwgW10pLFxuICAgICAgZ2xvYmFsczogZ2VuZXJhdGVFbnRpdHlTY2hlbWFzKGNvbmZpZy5nbG9iYWxzIHx8IFtdKSxcbiAgICB9LFxuICAgIHJlcXVpcmVkOiBbJ2NvbGxlY3Rpb25zJywgJ2dsb2JhbHMnXSxcbiAgICB0aXRsZTogJ0NvbmZpZycsXG4gICAgdHlwZTogJ29iamVjdCcsXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJ3aXRoTnVsbGFibGVKU09OU2NoZW1hVHlwZSIsImVudGl0eVRvSlNPTlNjaGVtYSIsImNvbmZpZ1RvSlNPTlNjaGVtYSIsImZpZWxkSXNSZXF1aXJlZCIsImZpZWxkIiwiaXNDb25kaXRpb25hbCIsIkJvb2xlYW4iLCJhZG1pbiIsImNvbmRpdGlvbiIsImlzTWFya2VkUmVxdWlyZWQiLCJyZXF1aXJlZCIsImZpZWxkQWZmZWN0c0RhdGEiLCJ0eXBlIiwiZmllbGRzIiwic29tZSIsInN1YkZpZWxkIiwidGFicyIsInRhYiIsImJ1aWxkT3B0aW9uRW51bXMiLCJvcHRpb25zIiwibWFwIiwib3B0aW9uIiwidmFsdWUiLCJnZW5lcmF0ZUVudGl0eVNjaGVtYXMiLCJlbnRpdGllcyIsInByb3BlcnRpZXMiLCJyZWR1Y2UiLCJhY2MiLCJzbHVnIiwiJHJlZiIsImFkZGl0aW9uYWxQcm9wZXJ0aWVzIiwiT2JqZWN0Iiwia2V5cyIsImZpZWxkVHlwZSIsImlzUmVxdWlyZWQiLCJmaWVsZFR5cGVzIiwicHVzaCIsImZpZWxkc1RvSlNPTlNjaGVtYSIsImNvbGxlY3Rpb25JREZpZWxkVHlwZXMiLCJpbnRlcmZhY2VOYW1lRGVmaW5pdGlvbnMiLCJyZXF1aXJlZEZpZWxkTmFtZXMiLCJTZXQiLCJmcm9tRW50cmllcyIsImZpZWxkU2NoZW1hcyIsImFkZCIsIm5hbWUiLCJmaWVsZFNjaGVtYSIsImhhc01hbnkiLCJpdGVtcyIsImVkaXRvciIsIm91dHB1dFNjaGVtYSIsImVudW0iLCJvcHRpb25FbnVtcyIsIm1heEl0ZW1zIiwibWluSXRlbXMiLCJBcnJheSIsImlzQXJyYXkiLCJyZWxhdGlvblRvIiwib25lT2YiLCJyZWxhdGlvbiIsImNvbnN0IiwiYmxvY2tzIiwiYmxvY2siLCJibG9ja0ZpZWxkU2NoZW1hcyIsImJsb2NrU2NoZW1hIiwiYmxvY2tUeXBlIiwiaW50ZXJmYWNlTmFtZSIsInNldCIsImNoaWxkU2NoZW1hIiwiZW50cmllcyIsImZvckVhY2giLCJwcm9wTmFtZSIsInByb3BTY2hlbWEiLCJ0YWJIYXNOYW1lIiwiTWFwIiwiZnJvbSIsImNvbmZpZyIsImluY29taW5nRW50aXR5IiwiZGVmYXVsdElEVHlwZSIsImVudGl0eSIsImRlZXBDb3B5T2JqZWN0IiwidGl0bGUiLCJ0eXBlc2NyaXB0IiwiaW50ZXJmYWNlIiwic2luZ3VsYXIiLCJ0b1dvcmRzIiwiaWRGaWVsZCIsImN1c3RvbUlkRmllbGQiLCJmaW5kIiwidW5zaGlmdCIsInRpbWVzdGFtcHMiLCJhdXRoIiwiZGlzYWJsZUxvY2FsU3RyYXRlZ3kiLCJjb2xsZWN0aW9ucyIsImNvbGxlY3Rpb24iLCJjdXN0b21Db2xsZWN0aW9uSWRGaWVsZCIsImVudGl0eURlZmluaXRpb25zIiwiZ2xvYmFscyIsImRlZmluaXRpb25zIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQXNFZ0JBLDBCQUEwQjtlQUExQkE7O0lBNlhBQyxrQkFBa0I7ZUFBbEJBOztJQXVFQUMsa0JBQWtCO2VBQWxCQTs7OzJCQXhnQlM7dUJBT29CO2dDQUNkOzhCQUNQ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
@@ -1 +1 @@
1
- {"version":3,"file":"initTransaction.d.ts","sourceRoot":"","sources":["../../src/utilities/initTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD;;;GAGG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAqB3E"}
1
+ {"version":3,"file":"initTransaction.d.ts","sourceRoot":"","sources":["../../src/utilities/initTransaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD;;;GAGG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAuB3E"}
@@ -22,7 +22,9 @@ async function initTransaction(req) {
22
22
  if (typeof payload.db.beginTransaction === 'function') {
23
23
  // create a new transaction
24
24
  req.transactionIDPromise = payload.db.beginTransaction().then((transactionID)=>{
25
- req.transactionID = transactionID;
25
+ if (transactionID) {
26
+ req.transactionID = transactionID;
27
+ }
26
28
  delete req.transactionIDPromise;
27
29
  });
28
30
  await req.transactionIDPromise;
@@ -31,4 +33,4 @@ async function initTransaction(req) {
31
33
  return false;
32
34
  }
33
35
 
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvaW5pdFRyYW5zYWN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QgfSBmcm9tICcuLi9leHByZXNzL3R5cGVzJ1xuXG4vKipcbiAqIFN0YXJ0cyBhIG5ldyB0cmFuc2FjdGlvbiB1c2luZyB0aGUgZGIgYWRhcHRlciB3aXRoIGEgcmFuZG9tIGlkIGFuZCB0aGVuIGFzc2lnbnMgaXQgdG8gdGhlIHJlcS50cmFuc2FjdGlvblxuICogQHJldHVybnMgdHJ1ZSBpZiBiZWdpbm5pbmcgYSB0cmFuc2FjdGlvbiBhbmQgZmFsc2Ugd2hlbiByZXEgYWxyZWFkeSBoYXMgYSB0cmFuc2FjdGlvbiB0byB1c2VcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGluaXRUcmFuc2FjdGlvbihyZXE6IFBheWxvYWRSZXF1ZXN0KTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IHsgcGF5bG9hZCwgdHJhbnNhY3Rpb25JRCwgdHJhbnNhY3Rpb25JRFByb21pc2UgfSA9IHJlcVxuICBpZiAodHJhbnNhY3Rpb25JRCkge1xuICAgIC8vIHdlIGFscmVhZHkgaGF2ZSBhIHRyYW5zYWN0aW9uLCB3ZSdyZSBub3QgaW4gY2hhcmdlIG9mIGNvbW1pdHRpbmcgaXRcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICBpZiAodHJhbnNhY3Rpb25JRFByb21pc2UpIHtcbiAgICAvLyB3YWl0IGZvciB3aG9ldmVyIGVsc2UgaXMgYWxyZWFkeSBjcmVhdGluZyB0aGUgdHJhbnNhY3Rpb25cbiAgICBhd2FpdCB0cmFuc2FjdGlvbklEUHJvbWlzZVxuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIGlmICh0eXBlb2YgcGF5bG9hZC5kYi5iZWdpblRyYW5zYWN0aW9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgLy8gY3JlYXRlIGEgbmV3IHRyYW5zYWN0aW9uXG4gICAgcmVxLnRyYW5zYWN0aW9uSURQcm9taXNlID0gcGF5bG9hZC5kYi5iZWdpblRyYW5zYWN0aW9uKCkudGhlbigodHJhbnNhY3Rpb25JRCkgPT4ge1xuICAgICAgcmVxLnRyYW5zYWN0aW9uSUQgPSB0cmFuc2FjdGlvbklEXG4gICAgICBkZWxldGUgcmVxLnRyYW5zYWN0aW9uSURQcm9taXNlXG4gICAgfSlcbiAgICBhd2FpdCByZXEudHJhbnNhY3Rpb25JRFByb21pc2VcbiAgICByZXR1cm4gISFyZXEudHJhbnNhY3Rpb25JRFxuICB9XG4gIHJldHVybiBmYWxzZVxufVxuIl0sIm5hbWVzIjpbImluaXRUcmFuc2FjdGlvbiIsInJlcSIsInBheWxvYWQiLCJ0cmFuc2FjdGlvbklEIiwidHJhbnNhY3Rpb25JRFByb21pc2UiLCJkYiIsImJlZ2luVHJhbnNhY3Rpb24iLCJ0aGVuIl0sIm1hcHBpbmdzIjoiOzs7OytCQU1zQkE7OztlQUFBQTs7O0FBQWYsZUFBZUEsZ0JBQWdCQyxHQUFtQjtJQUN2RCxNQUFNLEVBQUVDLE9BQU8sRUFBRUMsYUFBYSxFQUFFQyxvQkFBb0IsRUFBRSxHQUFHSDtJQUN6RCxJQUFJRSxlQUFlO1FBQ2pCLHNFQUFzRTtRQUN0RSxPQUFPO0lBQ1Q7SUFDQSxJQUFJQyxzQkFBc0I7UUFDeEIsNERBQTREO1FBQzVELE1BQU1BO1FBQ04sT0FBTztJQUNUO0lBQ0EsSUFBSSxPQUFPRixRQUFRRyxFQUFFLENBQUNDLGdCQUFnQixLQUFLLFlBQVk7UUFDckQsMkJBQTJCO1FBQzNCTCxJQUFJRyxvQkFBb0IsR0FBR0YsUUFBUUcsRUFBRSxDQUFDQyxnQkFBZ0IsR0FBR0MsSUFBSSxDQUFDLENBQUNKO1lBQzdERixJQUFJRSxhQUFhLEdBQUdBO1lBQ3BCLE9BQU9GLElBQUlHLG9CQUFvQjtRQUNqQztRQUNBLE1BQU1ILElBQUlHLG9CQUFvQjtRQUM5QixPQUFPLENBQUMsQ0FBQ0gsSUFBSUUsYUFBYTtJQUM1QjtJQUNBLE9BQU87QUFDVCJ9
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvaW5pdFRyYW5zYWN0aW9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QgfSBmcm9tICcuLi9leHByZXNzL3R5cGVzJ1xuXG4vKipcbiAqIFN0YXJ0cyBhIG5ldyB0cmFuc2FjdGlvbiB1c2luZyB0aGUgZGIgYWRhcHRlciB3aXRoIGEgcmFuZG9tIGlkIGFuZCB0aGVuIGFzc2lnbnMgaXQgdG8gdGhlIHJlcS50cmFuc2FjdGlvblxuICogQHJldHVybnMgdHJ1ZSBpZiBiZWdpbm5pbmcgYSB0cmFuc2FjdGlvbiBhbmQgZmFsc2Ugd2hlbiByZXEgYWxyZWFkeSBoYXMgYSB0cmFuc2FjdGlvbiB0byB1c2VcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGluaXRUcmFuc2FjdGlvbihyZXE6IFBheWxvYWRSZXF1ZXN0KTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGNvbnN0IHsgcGF5bG9hZCwgdHJhbnNhY3Rpb25JRCwgdHJhbnNhY3Rpb25JRFByb21pc2UgfSA9IHJlcVxuICBpZiAodHJhbnNhY3Rpb25JRCkge1xuICAgIC8vIHdlIGFscmVhZHkgaGF2ZSBhIHRyYW5zYWN0aW9uLCB3ZSdyZSBub3QgaW4gY2hhcmdlIG9mIGNvbW1pdHRpbmcgaXRcbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICBpZiAodHJhbnNhY3Rpb25JRFByb21pc2UpIHtcbiAgICAvLyB3YWl0IGZvciB3aG9ldmVyIGVsc2UgaXMgYWxyZWFkeSBjcmVhdGluZyB0aGUgdHJhbnNhY3Rpb25cbiAgICBhd2FpdCB0cmFuc2FjdGlvbklEUHJvbWlzZVxuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIGlmICh0eXBlb2YgcGF5bG9hZC5kYi5iZWdpblRyYW5zYWN0aW9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgLy8gY3JlYXRlIGEgbmV3IHRyYW5zYWN0aW9uXG4gICAgcmVxLnRyYW5zYWN0aW9uSURQcm9taXNlID0gcGF5bG9hZC5kYi5iZWdpblRyYW5zYWN0aW9uKCkudGhlbigodHJhbnNhY3Rpb25JRCkgPT4ge1xuICAgICAgaWYgKHRyYW5zYWN0aW9uSUQpIHtcbiAgICAgICAgcmVxLnRyYW5zYWN0aW9uSUQgPSB0cmFuc2FjdGlvbklEXG4gICAgICB9XG4gICAgICBkZWxldGUgcmVxLnRyYW5zYWN0aW9uSURQcm9taXNlXG4gICAgfSlcbiAgICBhd2FpdCByZXEudHJhbnNhY3Rpb25JRFByb21pc2VcbiAgICByZXR1cm4gISFyZXEudHJhbnNhY3Rpb25JRFxuICB9XG4gIHJldHVybiBmYWxzZVxufVxuIl0sIm5hbWVzIjpbImluaXRUcmFuc2FjdGlvbiIsInJlcSIsInBheWxvYWQiLCJ0cmFuc2FjdGlvbklEIiwidHJhbnNhY3Rpb25JRFByb21pc2UiLCJkYiIsImJlZ2luVHJhbnNhY3Rpb24iLCJ0aGVuIl0sIm1hcHBpbmdzIjoiOzs7OytCQU1zQkE7OztlQUFBQTs7O0FBQWYsZUFBZUEsZ0JBQWdCQyxHQUFtQjtJQUN2RCxNQUFNLEVBQUVDLE9BQU8sRUFBRUMsYUFBYSxFQUFFQyxvQkFBb0IsRUFBRSxHQUFHSDtJQUN6RCxJQUFJRSxlQUFlO1FBQ2pCLHNFQUFzRTtRQUN0RSxPQUFPO0lBQ1Q7SUFDQSxJQUFJQyxzQkFBc0I7UUFDeEIsNERBQTREO1FBQzVELE1BQU1BO1FBQ04sT0FBTztJQUNUO0lBQ0EsSUFBSSxPQUFPRixRQUFRRyxFQUFFLENBQUNDLGdCQUFnQixLQUFLLFlBQVk7UUFDckQsMkJBQTJCO1FBQzNCTCxJQUFJRyxvQkFBb0IsR0FBR0YsUUFBUUcsRUFBRSxDQUFDQyxnQkFBZ0IsR0FBR0MsSUFBSSxDQUFDLENBQUNKO1lBQzdELElBQUlBLGVBQWU7Z0JBQ2pCRixJQUFJRSxhQUFhLEdBQUdBO1lBQ3RCO1lBQ0EsT0FBT0YsSUFBSUcsb0JBQW9CO1FBQ2pDO1FBQ0EsTUFBTUgsSUFBSUcsb0JBQW9CO1FBQzlCLE9BQU8sQ0FBQyxDQUFDSCxJQUFJRSxhQUFhO0lBQzVCO0lBQ0EsT0FBTztBQUNUIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"isValidID.d.ts","sourceRoot":"","sources":["../../src/utilities/isValidID.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,UACb,MAAM,GAAG,MAAM,QAChB,UAAU,GAAG,QAAQ,GAAG,MAAM,KACnC,OAOF,CAAA"}
1
+ {"version":3,"file":"isValidID.d.ts","sourceRoot":"","sources":["../../src/utilities/isValidID.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,UACb,MAAM,GAAG,MAAM,QAChB,UAAU,GAAG,QAAQ,GAAG,MAAM,KACnC,OAcF,CAAA"}
@@ -15,11 +15,20 @@ function _interop_require_default(obj) {
15
15
  };
16
16
  }
17
17
  const isValidID = (value, type)=>{
18
- if (type === 'text') return value && typeof value === 'string';
18
+ if (type === 'text' && value) {
19
+ if ([
20
+ 'object',
21
+ 'string'
22
+ ].includes(typeof value)) {
23
+ const isObjectID = _bsonobjectid.default.isValid(value);
24
+ return typeof value === 'string' || isObjectID;
25
+ }
26
+ return false;
27
+ }
19
28
  if (typeof value === 'number' && !Number.isNaN(value)) return true;
20
29
  if (type === 'ObjectID') {
21
30
  return _bsonobjectid.default.isValid(String(value));
22
31
  }
23
32
  };
24
33
 
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvaXNWYWxpZElELnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBPYmplY3RJRCBmcm9tICdic29uLW9iamVjdGlkJ1xuXG5leHBvcnQgY29uc3QgaXNWYWxpZElEID0gKFxuICB2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLFxuICB0eXBlOiAnT2JqZWN0SUQnIHwgJ251bWJlcicgfCAndGV4dCcsXG4pOiBib29sZWFuID0+IHtcbiAgaWYgKHR5cGUgPT09ICd0ZXh0JykgcmV0dXJuIHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZydcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgIU51bWJlci5pc05hTih2YWx1ZSkpIHJldHVybiB0cnVlXG5cbiAgaWYgKHR5cGUgPT09ICdPYmplY3RJRCcpIHtcbiAgICByZXR1cm4gT2JqZWN0SUQuaXNWYWxpZChTdHJpbmcodmFsdWUpKVxuICB9XG59XG4iXSwibmFtZXMiOlsiaXNWYWxpZElEIiwidmFsdWUiLCJ0eXBlIiwiTnVtYmVyIiwiaXNOYU4iLCJPYmplY3RJRCIsImlzVmFsaWQiLCJTdHJpbmciXSwibWFwcGluZ3MiOiI7Ozs7K0JBRWFBOzs7ZUFBQUE7OztxRUFGUTs7Ozs7O0FBRWQsTUFBTUEsWUFBWSxDQUN2QkMsT0FDQUM7SUFFQSxJQUFJQSxTQUFTLFFBQVEsT0FBT0QsU0FBUyxPQUFPQSxVQUFVO0lBQ3RELElBQUksT0FBT0EsVUFBVSxZQUFZLENBQUNFLE9BQU9DLEtBQUssQ0FBQ0gsUUFBUSxPQUFPO0lBRTlELElBQUlDLFNBQVMsWUFBWTtRQUN2QixPQUFPRyxxQkFBUSxDQUFDQyxPQUFPLENBQUNDLE9BQU9OO0lBQ2pDO0FBQ0YifQ==
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvaXNWYWxpZElELnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBPYmplY3RJRCBmcm9tICdic29uLW9iamVjdGlkJ1xuXG5leHBvcnQgY29uc3QgaXNWYWxpZElEID0gKFxuICB2YWx1ZTogbnVtYmVyIHwgc3RyaW5nLFxuICB0eXBlOiAnT2JqZWN0SUQnIHwgJ251bWJlcicgfCAndGV4dCcsXG4pOiBib29sZWFuID0+IHtcbiAgaWYgKHR5cGUgPT09ICd0ZXh0JyAmJiB2YWx1ZSkge1xuICAgIGlmIChbJ29iamVjdCcsICdzdHJpbmcnXS5pbmNsdWRlcyh0eXBlb2YgdmFsdWUpKSB7XG4gICAgICBjb25zdCBpc09iamVjdElEID0gT2JqZWN0SUQuaXNWYWxpZCh2YWx1ZSBhcyBzdHJpbmcpXG4gICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyB8fCBpc09iamVjdElEXG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgJiYgIU51bWJlci5pc05hTih2YWx1ZSkpIHJldHVybiB0cnVlXG5cbiAgaWYgKHR5cGUgPT09ICdPYmplY3RJRCcpIHtcbiAgICByZXR1cm4gT2JqZWN0SUQuaXNWYWxpZChTdHJpbmcodmFsdWUpKVxuICB9XG59XG4iXSwibmFtZXMiOlsiaXNWYWxpZElEIiwidmFsdWUiLCJ0eXBlIiwiaW5jbHVkZXMiLCJpc09iamVjdElEIiwiT2JqZWN0SUQiLCJpc1ZhbGlkIiwiTnVtYmVyIiwiaXNOYU4iLCJTdHJpbmciXSwibWFwcGluZ3MiOiI7Ozs7K0JBRWFBOzs7ZUFBQUE7OztxRUFGUTs7Ozs7O0FBRWQsTUFBTUEsWUFBWSxDQUN2QkMsT0FDQUM7SUFFQSxJQUFJQSxTQUFTLFVBQVVELE9BQU87UUFDNUIsSUFBSTtZQUFDO1lBQVU7U0FBUyxDQUFDRSxRQUFRLENBQUMsT0FBT0YsUUFBUTtZQUMvQyxNQUFNRyxhQUFhQyxxQkFBUSxDQUFDQyxPQUFPLENBQUNMO1lBQ3BDLE9BQU8sT0FBT0EsVUFBVSxZQUFZRztRQUN0QztRQUNBLE9BQU87SUFDVDtJQUVBLElBQUksT0FBT0gsVUFBVSxZQUFZLENBQUNNLE9BQU9DLEtBQUssQ0FBQ1AsUUFBUSxPQUFPO0lBRTlELElBQUlDLFNBQVMsWUFBWTtRQUN2QixPQUFPRyxxQkFBUSxDQUFDQyxPQUFPLENBQUNHLE9BQU9SO0lBQ2pDO0FBQ0YifQ==
@@ -29,7 +29,7 @@ function _interop_require_default(obj) {
29
29
  const prettyOptions = {
30
30
  colorize: true,
31
31
  ignore: 'pid,hostname',
32
- translateTime: 'HH:MM:ss'
32
+ translateTime: 'SYS:HH:MM:ss'
33
33
  };
34
34
  const defaultLoggerOptions = {
35
35
  transport: {
@@ -49,4 +49,4 @@ const getLogger = (name = 'payload', options, destination)=>(0, _pino.default)({
49
49
  }, destination);
50
50
  const _default = getLogger;
51
51
 
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbG9nZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwaW5vIGZyb20gJ3Bpbm8nXG5pbXBvcnQgcHJldHRpZmllciBmcm9tICdwaW5vLXByZXR0eSdcblxuZXhwb3J0IHR5cGUgUGF5bG9hZExvZ2dlciA9IHBpbm8uTG9nZ2VyXG5cbmNvbnN0IHByZXR0eU9wdGlvbnMgPSB7XG4gIGNvbG9yaXplOiB0cnVlLFxuICBpZ25vcmU6ICdwaWQsaG9zdG5hbWUnLFxuICB0cmFuc2xhdGVUaW1lOiAnSEg6TU06c3MnLFxufVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdExvZ2dlck9wdGlvbnM6IHBpbm8uTG9nZ2VyT3B0aW9ucyA9IHtcbiAgdHJhbnNwb3J0OiB7XG4gICAgb3B0aW9uczogcHJldHR5T3B0aW9ucyxcbiAgICB0YXJnZXQ6ICdwaW5vLXByZXR0eScsXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBwcmV0dHlTeW5jTG9nZ2VyRGVzdGluYXRpb24gPSBwcmV0dGlmaWVyKHtcbiAgLi4ucHJldHR5T3B0aW9ucyxcbiAgZGVzdGluYXRpb246IDEsIC8vIHN0ZG91dFxuICBzeW5jOiB0cnVlLFxufSlcblxuY29uc3QgZ2V0TG9nZ2VyID0gKFxuICBuYW1lID0gJ3BheWxvYWQnLFxuICBvcHRpb25zPzogcGluby5Mb2dnZXJPcHRpb25zLFxuICBkZXN0aW5hdGlvbj86IHBpbm8uRGVzdGluYXRpb25TdHJlYW0sXG4pOiBQYXlsb2FkTG9nZ2VyID0+XG4gIHBpbm8oXG4gICAge1xuICAgICAgbmFtZTogb3B0aW9ucz8ubmFtZSB8fCBuYW1lLFxuICAgICAgZW5hYmxlZDogcHJvY2Vzcy5lbnYuRElTQUJMRV9MT0dHSU5HICE9PSAndHJ1ZScsXG4gICAgICAuLi4ob3B0aW9ucyB8fCBkZWZhdWx0TG9nZ2VyT3B0aW9ucyksXG4gICAgfSxcbiAgICBkZXN0aW5hdGlvbixcbiAgKVxuXG5leHBvcnQgZGVmYXVsdCBnZXRMb2dnZXJcbiJdLCJuYW1lcyI6WyJkZWZhdWx0TG9nZ2VyT3B0aW9ucyIsInByZXR0eVN5bmNMb2dnZXJEZXN0aW5hdGlvbiIsInByZXR0eU9wdGlvbnMiLCJjb2xvcml6ZSIsImlnbm9yZSIsInRyYW5zbGF0ZVRpbWUiLCJ0cmFuc3BvcnQiLCJvcHRpb25zIiwidGFyZ2V0IiwicHJldHRpZmllciIsImRlc3RpbmF0aW9uIiwic3luYyIsImdldExvZ2dlciIsIm5hbWUiLCJwaW5vIiwiZW5hYmxlZCIsInByb2Nlc3MiLCJlbnYiLCJESVNBQkxFX0xPR0dJTkciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0lBV2FBLG9CQUFvQjtlQUFwQkE7O0lBT0FDLDJCQUEyQjtlQUEzQkE7O0lBb0JiLE9BQXdCO2VBQXhCOzs7NkRBdENpQjttRUFDTTs7Ozs7O0FBSXZCLE1BQU1DLGdCQUFnQjtJQUNwQkMsVUFBVTtJQUNWQyxRQUFRO0lBQ1JDLGVBQWU7QUFDakI7QUFFTyxNQUFNTCx1QkFBMkM7SUFDdERNLFdBQVc7UUFDVEMsU0FBU0w7UUFDVE0sUUFBUTtJQUNWO0FBQ0Y7QUFFTyxNQUFNUCw4QkFBOEJRLElBQUFBLG1CQUFVLEVBQUM7SUFDcEQsR0FBR1AsYUFBYTtJQUNoQlEsYUFBYTtJQUNiQyxNQUFNO0FBQ1I7QUFFQSxNQUFNQyxZQUFZLENBQ2hCQyxPQUFPLFNBQVMsRUFDaEJOLFNBQ0FHLGNBRUFJLElBQUFBLGFBQUksRUFDRjtRQUNFRCxNQUFNTixTQUFTTSxRQUFRQTtRQUN2QkUsU0FBU0MsUUFBUUMsR0FBRyxDQUFDQyxlQUFlLEtBQUs7UUFDekMsR0FBSVgsV0FBV1Asb0JBQW9CO0lBQ3JDLEdBQ0FVO01BR0osV0FBZUUifQ==
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvbG9nZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwaW5vIGZyb20gJ3Bpbm8nXG5pbXBvcnQgcHJldHRpZmllciBmcm9tICdwaW5vLXByZXR0eSdcblxuZXhwb3J0IHR5cGUgUGF5bG9hZExvZ2dlciA9IHBpbm8uTG9nZ2VyXG5cbmNvbnN0IHByZXR0eU9wdGlvbnMgPSB7XG4gIGNvbG9yaXplOiB0cnVlLFxuICBpZ25vcmU6ICdwaWQsaG9zdG5hbWUnLFxuICB0cmFuc2xhdGVUaW1lOiAnU1lTOkhIOk1NOnNzJyxcbn1cblxuZXhwb3J0IGNvbnN0IGRlZmF1bHRMb2dnZXJPcHRpb25zOiBwaW5vLkxvZ2dlck9wdGlvbnMgPSB7XG4gIHRyYW5zcG9ydDoge1xuICAgIG9wdGlvbnM6IHByZXR0eU9wdGlvbnMsXG4gICAgdGFyZ2V0OiAncGluby1wcmV0dHknLFxuICB9LFxufVxuXG5leHBvcnQgY29uc3QgcHJldHR5U3luY0xvZ2dlckRlc3RpbmF0aW9uID0gcHJldHRpZmllcih7XG4gIC4uLnByZXR0eU9wdGlvbnMsXG4gIGRlc3RpbmF0aW9uOiAxLCAvLyBzdGRvdXRcbiAgc3luYzogdHJ1ZSxcbn0pXG5cbmNvbnN0IGdldExvZ2dlciA9IChcbiAgbmFtZSA9ICdwYXlsb2FkJyxcbiAgb3B0aW9ucz86IHBpbm8uTG9nZ2VyT3B0aW9ucyxcbiAgZGVzdGluYXRpb24/OiBwaW5vLkRlc3RpbmF0aW9uU3RyZWFtLFxuKTogUGF5bG9hZExvZ2dlciA9PlxuICBwaW5vKFxuICAgIHtcbiAgICAgIG5hbWU6IG9wdGlvbnM/Lm5hbWUgfHwgbmFtZSxcbiAgICAgIGVuYWJsZWQ6IHByb2Nlc3MuZW52LkRJU0FCTEVfTE9HR0lORyAhPT0gJ3RydWUnLFxuICAgICAgLi4uKG9wdGlvbnMgfHwgZGVmYXVsdExvZ2dlck9wdGlvbnMpLFxuICAgIH0sXG4gICAgZGVzdGluYXRpb24sXG4gIClcblxuZXhwb3J0IGRlZmF1bHQgZ2V0TG9nZ2VyXG4iXSwibmFtZXMiOlsiZGVmYXVsdExvZ2dlck9wdGlvbnMiLCJwcmV0dHlTeW5jTG9nZ2VyRGVzdGluYXRpb24iLCJwcmV0dHlPcHRpb25zIiwiY29sb3JpemUiLCJpZ25vcmUiLCJ0cmFuc2xhdGVUaW1lIiwidHJhbnNwb3J0Iiwib3B0aW9ucyIsInRhcmdldCIsInByZXR0aWZpZXIiLCJkZXN0aW5hdGlvbiIsInN5bmMiLCJnZXRMb2dnZXIiLCJuYW1lIiwicGlubyIsImVuYWJsZWQiLCJwcm9jZXNzIiwiZW52IiwiRElTQUJMRV9MT0dHSU5HIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztJQVdhQSxvQkFBb0I7ZUFBcEJBOztJQU9BQywyQkFBMkI7ZUFBM0JBOztJQW9CYixPQUF3QjtlQUF4Qjs7OzZEQXRDaUI7bUVBQ007Ozs7OztBQUl2QixNQUFNQyxnQkFBZ0I7SUFDcEJDLFVBQVU7SUFDVkMsUUFBUTtJQUNSQyxlQUFlO0FBQ2pCO0FBRU8sTUFBTUwsdUJBQTJDO0lBQ3RETSxXQUFXO1FBQ1RDLFNBQVNMO1FBQ1RNLFFBQVE7SUFDVjtBQUNGO0FBRU8sTUFBTVAsOEJBQThCUSxJQUFBQSxtQkFBVSxFQUFDO0lBQ3BELEdBQUdQLGFBQWE7SUFDaEJRLGFBQWE7SUFDYkMsTUFBTTtBQUNSO0FBRUEsTUFBTUMsWUFBWSxDQUNoQkMsT0FBTyxTQUFTLEVBQ2hCTixTQUNBRyxjQUVBSSxJQUFBQSxhQUFJLEVBQ0Y7UUFDRUQsTUFBTU4sU0FBU00sUUFBUUE7UUFDdkJFLFNBQVNDLFFBQVFDLEdBQUcsQ0FBQ0MsZUFBZSxLQUFLO1FBQ3pDLEdBQUlYLFdBQVdQLG9CQUFvQjtJQUNyQyxHQUNBVTtNQUdKLFdBQWVFIn0=
@@ -12,50 +12,50 @@ const buildVersionCollectionFields = (collection)=>{
12
12
  const fields = [
13
13
  {
14
14
  name: 'parent',
15
+ type: 'relationship',
15
16
  index: true,
16
- relationTo: collection.slug,
17
- type: 'relationship'
17
+ relationTo: collection.slug
18
18
  },
19
19
  {
20
20
  name: 'version',
21
- fields: collection.fields,
22
- type: 'group'
21
+ type: 'group',
22
+ fields: collection.fields.filter((field)=>!('name' in field) || field.name !== 'id')
23
23
  },
24
24
  {
25
25
  name: 'createdAt',
26
+ type: 'date',
26
27
  admin: {
27
28
  disabled: true
28
29
  },
29
- index: true,
30
- type: 'date'
30
+ index: true
31
31
  },
32
32
  {
33
33
  name: 'updatedAt',
34
+ type: 'date',
34
35
  admin: {
35
36
  disabled: true
36
37
  },
37
- index: true,
38
- type: 'date'
38
+ index: true
39
39
  }
40
40
  ];
41
41
  if (collection?.versions?.drafts) {
42
42
  fields.push({
43
43
  name: 'latest',
44
+ type: 'checkbox',
44
45
  admin: {
45
46
  disabled: true
46
47
  },
47
- index: true,
48
- type: 'checkbox'
48
+ index: true
49
49
  });
50
50
  }
51
51
  if (collection?.versions?.drafts && collection?.versions?.drafts?.autosave) {
52
52
  fields.push({
53
53
  name: 'autosave',
54
- index: true,
55
- type: 'checkbox'
54
+ type: 'checkbox',
55
+ index: true
56
56
  });
57
57
  }
58
58
  return fields;
59
59
  };
60
60
 
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJzaW9ucy9idWlsZENvbGxlY3Rpb25GaWVsZHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZCB9IGZyb20gJy4uL2ZpZWxkcy9jb25maWcvdHlwZXMnXG5cbmV4cG9ydCBjb25zdCBidWlsZFZlcnNpb25Db2xsZWN0aW9uRmllbGRzID0gKGNvbGxlY3Rpb246IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcpOiBGaWVsZFtdID0+IHtcbiAgY29uc3QgZmllbGRzOiBGaWVsZFtdID0gW1xuICAgIHtcbiAgICAgIG5hbWU6ICdwYXJlbnQnLFxuICAgICAgaW5kZXg6IHRydWUsXG4gICAgICByZWxhdGlvblRvOiBjb2xsZWN0aW9uLnNsdWcsXG4gICAgICB0eXBlOiAncmVsYXRpb25zaGlwJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICd2ZXJzaW9uJyxcbiAgICAgIGZpZWxkczogY29sbGVjdGlvbi5maWVsZHMsXG4gICAgICB0eXBlOiAnZ3JvdXAnLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogJ2NyZWF0ZWRBdCcsXG4gICAgICBhZG1pbjoge1xuICAgICAgICBkaXNhYmxlZDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBpbmRleDogdHJ1ZSxcbiAgICAgIHR5cGU6ICdkYXRlJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICd1cGRhdGVkQXQnLFxuICAgICAgYWRtaW46IHtcbiAgICAgICAgZGlzYWJsZWQ6IHRydWUsXG4gICAgICB9LFxuICAgICAgaW5kZXg6IHRydWUsXG4gICAgICB0eXBlOiAnZGF0ZScsXG4gICAgfSxcbiAgXVxuXG4gIGlmIChjb2xsZWN0aW9uPy52ZXJzaW9ucz8uZHJhZnRzKSB7XG4gICAgZmllbGRzLnB1c2goe1xuICAgICAgbmFtZTogJ2xhdGVzdCcsXG4gICAgICBhZG1pbjoge1xuICAgICAgICBkaXNhYmxlZDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBpbmRleDogdHJ1ZSxcbiAgICAgIHR5cGU6ICdjaGVja2JveCcsXG4gICAgfSlcbiAgfVxuXG4gIGlmIChjb2xsZWN0aW9uPy52ZXJzaW9ucz8uZHJhZnRzICYmIGNvbGxlY3Rpb24/LnZlcnNpb25zPy5kcmFmdHM/LmF1dG9zYXZlKSB7XG4gICAgZmllbGRzLnB1c2goe1xuICAgICAgbmFtZTogJ2F1dG9zYXZlJyxcbiAgICAgIGluZGV4OiB0cnVlLFxuICAgICAgdHlwZTogJ2NoZWNrYm94JyxcbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIGZpZWxkc1xufVxuIl0sIm5hbWVzIjpbImJ1aWxkVmVyc2lvbkNvbGxlY3Rpb25GaWVsZHMiLCJjb2xsZWN0aW9uIiwiZmllbGRzIiwibmFtZSIsImluZGV4IiwicmVsYXRpb25UbyIsInNsdWciLCJ0eXBlIiwiYWRtaW4iLCJkaXNhYmxlZCIsInZlcnNpb25zIiwiZHJhZnRzIiwicHVzaCIsImF1dG9zYXZlIl0sIm1hcHBpbmdzIjoiOzs7OytCQUdhQTs7O2VBQUFBOzs7QUFBTixNQUFNQSwrQkFBK0IsQ0FBQ0M7SUFDM0MsTUFBTUMsU0FBa0I7UUFDdEI7WUFDRUMsTUFBTTtZQUNOQyxPQUFPO1lBQ1BDLFlBQVlKLFdBQVdLLElBQUk7WUFDM0JDLE1BQU07UUFDUjtRQUNBO1lBQ0VKLE1BQU07WUFDTkQsUUFBUUQsV0FBV0MsTUFBTTtZQUN6QkssTUFBTTtRQUNSO1FBQ0E7WUFDRUosTUFBTTtZQUNOSyxPQUFPO2dCQUNMQyxVQUFVO1lBQ1o7WUFDQUwsT0FBTztZQUNQRyxNQUFNO1FBQ1I7UUFDQTtZQUNFSixNQUFNO1lBQ05LLE9BQU87Z0JBQ0xDLFVBQVU7WUFDWjtZQUNBTCxPQUFPO1lBQ1BHLE1BQU07UUFDUjtLQUNEO0lBRUQsSUFBSU4sWUFBWVMsVUFBVUMsUUFBUTtRQUNoQ1QsT0FBT1UsSUFBSSxDQUFDO1lBQ1ZULE1BQU07WUFDTkssT0FBTztnQkFDTEMsVUFBVTtZQUNaO1lBQ0FMLE9BQU87WUFDUEcsTUFBTTtRQUNSO0lBQ0Y7SUFFQSxJQUFJTixZQUFZUyxVQUFVQyxVQUFVVixZQUFZUyxVQUFVQyxRQUFRRSxVQUFVO1FBQzFFWCxPQUFPVSxJQUFJLENBQUM7WUFDVlQsTUFBTTtZQUNOQyxPQUFPO1lBQ1BHLE1BQU07UUFDUjtJQUNGO0lBRUEsT0FBT0w7QUFDVCJ9
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy92ZXJzaW9ucy9idWlsZENvbGxlY3Rpb25GaWVsZHMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vY29sbGVjdGlvbnMvY29uZmlnL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBGaWVsZCB9IGZyb20gJy4uL2ZpZWxkcy9jb25maWcvdHlwZXMnXG5cbmV4cG9ydCBjb25zdCBidWlsZFZlcnNpb25Db2xsZWN0aW9uRmllbGRzID0gKGNvbGxlY3Rpb246IFNhbml0aXplZENvbGxlY3Rpb25Db25maWcpOiBGaWVsZFtdID0+IHtcbiAgY29uc3QgZmllbGRzOiBGaWVsZFtdID0gW1xuICAgIHtcbiAgICAgIG5hbWU6ICdwYXJlbnQnLFxuICAgICAgdHlwZTogJ3JlbGF0aW9uc2hpcCcsXG4gICAgICBpbmRleDogdHJ1ZSxcbiAgICAgIHJlbGF0aW9uVG86IGNvbGxlY3Rpb24uc2x1ZyxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICd2ZXJzaW9uJyxcbiAgICAgIHR5cGU6ICdncm91cCcsXG4gICAgICBmaWVsZHM6IGNvbGxlY3Rpb24uZmllbGRzLmZpbHRlcigoZmllbGQpID0+ICEoJ25hbWUnIGluIGZpZWxkKSB8fCBmaWVsZC5uYW1lICE9PSAnaWQnKSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdjcmVhdGVkQXQnLFxuICAgICAgdHlwZTogJ2RhdGUnLFxuICAgICAgYWRtaW46IHtcbiAgICAgICAgZGlzYWJsZWQ6IHRydWUsXG4gICAgICB9LFxuICAgICAgaW5kZXg6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAndXBkYXRlZEF0JyxcbiAgICAgIHR5cGU6ICdkYXRlJyxcbiAgICAgIGFkbWluOiB7XG4gICAgICAgIGRpc2FibGVkOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIGluZGV4OiB0cnVlLFxuICAgIH0sXG4gIF1cblxuICBpZiAoY29sbGVjdGlvbj8udmVyc2lvbnM/LmRyYWZ0cykge1xuICAgIGZpZWxkcy5wdXNoKHtcbiAgICAgIG5hbWU6ICdsYXRlc3QnLFxuICAgICAgdHlwZTogJ2NoZWNrYm94JyxcbiAgICAgIGFkbWluOiB7XG4gICAgICAgIGRpc2FibGVkOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIGluZGV4OiB0cnVlLFxuICAgIH0pXG4gIH1cblxuICBpZiAoY29sbGVjdGlvbj8udmVyc2lvbnM/LmRyYWZ0cyAmJiBjb2xsZWN0aW9uPy52ZXJzaW9ucz8uZHJhZnRzPy5hdXRvc2F2ZSkge1xuICAgIGZpZWxkcy5wdXNoKHtcbiAgICAgIG5hbWU6ICdhdXRvc2F2ZScsXG4gICAgICB0eXBlOiAnY2hlY2tib3gnLFxuICAgICAgaW5kZXg6IHRydWUsXG4gICAgfSlcbiAgfVxuXG4gIHJldHVybiBmaWVsZHNcbn1cbiJdLCJuYW1lcyI6WyJidWlsZFZlcnNpb25Db2xsZWN0aW9uRmllbGRzIiwiY29sbGVjdGlvbiIsImZpZWxkcyIsIm5hbWUiLCJ0eXBlIiwiaW5kZXgiLCJyZWxhdGlvblRvIiwic2x1ZyIsImZpbHRlciIsImZpZWxkIiwiYWRtaW4iLCJkaXNhYmxlZCIsInZlcnNpb25zIiwiZHJhZnRzIiwicHVzaCIsImF1dG9zYXZlIl0sIm1hcHBpbmdzIjoiOzs7OytCQUdhQTs7O2VBQUFBOzs7QUFBTixNQUFNQSwrQkFBK0IsQ0FBQ0M7SUFDM0MsTUFBTUMsU0FBa0I7UUFDdEI7WUFDRUMsTUFBTTtZQUNOQyxNQUFNO1lBQ05DLE9BQU87WUFDUEMsWUFBWUwsV0FBV00sSUFBSTtRQUM3QjtRQUNBO1lBQ0VKLE1BQU07WUFDTkMsTUFBTTtZQUNORixRQUFRRCxXQUFXQyxNQUFNLENBQUNNLE1BQU0sQ0FBQyxDQUFDQyxRQUFVLENBQUUsQ0FBQSxVQUFVQSxLQUFJLEtBQU1BLE1BQU1OLElBQUksS0FBSztRQUNuRjtRQUNBO1lBQ0VBLE1BQU07WUFDTkMsTUFBTTtZQUNOTSxPQUFPO2dCQUNMQyxVQUFVO1lBQ1o7WUFDQU4sT0FBTztRQUNUO1FBQ0E7WUFDRUYsTUFBTTtZQUNOQyxNQUFNO1lBQ05NLE9BQU87Z0JBQ0xDLFVBQVU7WUFDWjtZQUNBTixPQUFPO1FBQ1Q7S0FDRDtJQUVELElBQUlKLFlBQVlXLFVBQVVDLFFBQVE7UUFDaENYLE9BQU9ZLElBQUksQ0FBQztZQUNWWCxNQUFNO1lBQ05DLE1BQU07WUFDTk0sT0FBTztnQkFDTEMsVUFBVTtZQUNaO1lBQ0FOLE9BQU87UUFDVDtJQUNGO0lBRUEsSUFBSUosWUFBWVcsVUFBVUMsVUFBVVosWUFBWVcsVUFBVUMsUUFBUUUsVUFBVTtRQUMxRWIsT0FBT1ksSUFBSSxDQUFDO1lBQ1ZYLE1BQU07WUFDTkMsTUFBTTtZQUNOQyxPQUFPO1FBQ1Q7SUFDRjtJQUVBLE9BQU9IO0FBQ1QifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "payload",
3
- "version": "2.6.0",
3
+ "version": "2.8.0",
4
4
  "description": "Node, React and MongoDB Headless CMS and Application Framework",
5
5
  "license": "MIT",
6
6
  "main": "./dist/index.js",
@@ -123,7 +123,7 @@
123
123
  "@types/minimist": "1.2.2",
124
124
  "@types/mkdirp": "1.0.2",
125
125
  "@types/node-fetch": "2.6.4",
126
- "@types/nodemailer": "6.4.8",
126
+ "@types/nodemailer": "6.4.14",
127
127
  "@types/passport": "1.0.12",
128
128
  "@types/passport-anonymous": "1.0.3",
129
129
  "@types/passport-jwt": "3.0.9",
@@ -166,7 +166,7 @@
166
166
  "url-loader": "4.1.1",
167
167
  "vite": "^4.4.9",
168
168
  "webpack": "^5.78.0",
169
- "@payloadcms/eslint-config": "1.0.0"
169
+ "@payloadcms/eslint-config": "1.1.1"
170
170
  },
171
171
  "engines": {
172
172
  "node": ">=14"