payload-auth 1.5.0 → 1.6.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 (52) hide show
  1. package/dist/better-auth/plugin/lib/build-collections/index.d.ts.map +1 -1
  2. package/dist/better-auth/plugin/lib/build-collections/index.js +3 -1
  3. package/dist/better-auth/plugin/lib/build-collections/passkeys.d.ts +1 -1
  4. package/dist/better-auth/plugin/lib/build-collections/passkeys.d.ts.map +1 -1
  5. package/dist/better-auth/plugin/lib/build-collections/passkeys.js +16 -3
  6. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/index.d.ts +0 -1
  7. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/index.d.ts.map +1 -1
  8. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/index.js +1 -2
  9. package/dist/better-auth/plugin/lib/build-collections/users/index.d.ts +1 -1
  10. package/dist/better-auth/plugin/lib/build-collections/users/index.d.ts.map +1 -1
  11. package/dist/better-auth/plugin/lib/build-collections/users/index.js +32 -10
  12. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.d.ts.map +1 -1
  13. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.js +11 -3
  14. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/use-admin-invite-after-email-sign-up-middleware.d.ts +10 -0
  15. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/use-admin-invite-after-email-sign-up-middleware.d.ts.map +1 -0
  16. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/use-admin-invite-after-email-sign-up-middleware.js +62 -0
  17. package/dist/better-auth/plugin/payload/components/passkeys/add-button.d.ts +7 -0
  18. package/dist/better-auth/plugin/payload/components/passkeys/add-button.d.ts.map +1 -0
  19. package/dist/better-auth/plugin/payload/components/passkeys/add-button.js +120 -0
  20. package/dist/better-auth/plugin/payload/components/passkeys/client.d.ts +4 -0
  21. package/dist/better-auth/plugin/payload/components/passkeys/client.d.ts.map +1 -0
  22. package/dist/better-auth/plugin/payload/components/passkeys/client.js +59 -0
  23. package/dist/better-auth/plugin/payload/components/passkeys/index.d.ts +5 -0
  24. package/dist/better-auth/plugin/payload/components/passkeys/index.d.ts.map +1 -0
  25. package/dist/better-auth/plugin/payload/components/passkeys/index.js +40 -0
  26. package/dist/better-auth/plugin/payload/components/passkeys/index.scss +91 -0
  27. package/dist/better-auth/plugin/payload/components/passkeys/list.d.ts +9 -0
  28. package/dist/better-auth/plugin/payload/components/passkeys/list.d.ts.map +1 -0
  29. package/dist/better-auth/plugin/payload/components/passkeys/list.js +57 -0
  30. package/dist/better-auth/plugin/payload/components/passkeys/types.d.ts +20 -0
  31. package/dist/better-auth/plugin/payload/components/passkeys/types.d.ts.map +1 -0
  32. package/dist/better-auth/plugin/payload/components/passkeys/types.js +3 -0
  33. package/dist/better-auth/plugin/payload/exports/rsc.d.ts +2 -1
  34. package/dist/better-auth/plugin/payload/exports/rsc.d.ts.map +1 -1
  35. package/dist/better-auth/plugin/payload/exports/rsc.js +3 -2
  36. package/dist/better-auth/plugin/payload/views/admin-login/client.d.ts +1 -0
  37. package/dist/better-auth/plugin/payload/views/admin-login/client.d.ts.map +1 -1
  38. package/dist/better-auth/plugin/payload/views/admin-login/client.js +11 -7
  39. package/dist/better-auth/plugin/payload/views/admin-login/index.d.ts.map +1 -1
  40. package/dist/better-auth/plugin/payload/views/admin-login/index.js +3 -1
  41. package/dist/better-auth/plugin/payload/views/admin-signup/client.d.ts.map +1 -1
  42. package/dist/better-auth/plugin/payload/views/admin-signup/client.js +29 -28
  43. package/dist/better-auth/plugin/types.d.ts +2 -0
  44. package/dist/better-auth/plugin/types.d.ts.map +1 -1
  45. package/dist/better-auth/plugin/types.js +1 -1
  46. package/dist/shared/form/validation.d.ts +1 -3
  47. package/dist/shared/form/validation.d.ts.map +1 -1
  48. package/dist/shared/form/validation.js +3 -3
  49. package/package.json +1 -1
  50. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/signup.d.ts +0 -4
  51. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/signup.d.ts.map +0 -1
  52. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/signup.js +0 -157
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/better-auth/plugin/lib/build-collections/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAG/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAA;AAE7E,OAAO,KAAK,EAAE,uBAAuB,EAAqC,MAAM,aAAa,CAAA;AAoB7F;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACd,EAAE;IACD,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,mBAAmB,EAAE,gBAAgB,EAAE,CAAA;IACvC,aAAa,EAAE,uBAAuB,CAAA;CACvC,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CA4DnC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/better-auth/plugin/lib/build-collections/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAG/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAA;AAE7E,OAAO,KAAK,EAAE,uBAAuB,EAAqC,MAAM,aAAa,CAAA;AAoB7F;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,mBAAmB,EACnB,mBAAmB,EACnB,aAAa,EACd,EAAE;IACD,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,mBAAmB,EAAE,gBAAgB,EAAE,CAAA;IACvC,aAAa,EAAE,uBAAuB,CAAA;CACvC,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CA8DnC"}
@@ -51,6 +51,7 @@ import { buildVerificationsCollection } from "./verifications";
51
51
  collectionMap[collectionSlug] = builder({
52
52
  incomingCollections,
53
53
  pluginOptions,
54
+ collectionSchemaMap,
54
55
  schema: getModelSchema(modelKey)
55
56
  });
56
57
  }
@@ -63,6 +64,7 @@ import { buildVerificationsCollection } from "./verifications";
63
64
  collectionMap[adminInvitationsSlug] = collectionBuilders[baseSlugs.adminInvitations]({
64
65
  incomingCollections,
65
66
  pluginOptions,
67
+ collectionSchemaMap,
66
68
  schema: {
67
69
  fields: {},
68
70
  order: 0
@@ -77,4 +79,4 @@ import { buildVerificationsCollection } from "./verifications";
77
79
  return collectionMap;
78
80
  }
79
81
 
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gJ3BheWxvYWQnXG5pbXBvcnQgeyBiYU1vZGVsS2V5LCBiYXNlU2x1Z3MgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnXG5pbXBvcnQgeyBnZXRCZXR0ZXJBdXRoU2NoZW1hIH0gZnJvbSAnLi4vLi4vaGVscGVycy9nZXQtYmV0dGVyLWF1dGgtc2NoZW1hJ1xuaW1wb3J0IHsgQ29sbGVjdGlvblNjaGVtYU1hcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvZ2V0LWNvbGxlY3Rpb24tc2NoZW1hLW1hcCdcbmltcG9ydCB7IGdldERlYWZ1bHRDb2xsZWN0aW9uU2x1ZyB9IGZyb20gJy4uLy4uL2hlbHBlcnMvZ2V0LWNvbGxlY3Rpb24tc2x1ZydcbmltcG9ydCB0eXBlIHsgQmV0dGVyQXV0aFBsdWdpbk9wdGlvbnMsIEJ1aWxkQ29sbGVjdGlvblByb3BzLCBCdWlsZFNjaGVtYSB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgYnVpbGRBY2NvdW50c0NvbGxlY3Rpb24gfSBmcm9tICcuL2FjY291bnRzL2luZGV4J1xuaW1wb3J0IHsgYnVpbGRBZG1pbkludml0YXRpb25zQ29sbGVjdGlvbiB9IGZyb20gJy4vYWRtaW4taW52aXRhdGlvbnMnXG5pbXBvcnQgeyBidWlsZEFwaUtleXNDb2xsZWN0aW9uIH0gZnJvbSAnLi9hcGkta2V5cydcbmltcG9ydCB7IGJ1aWxkSW52aXRhdGlvbnNDb2xsZWN0aW9uIH0gZnJvbSAnLi9pbnZpdGF0aW9ucydcbmltcG9ydCB7IGJ1aWxkSndrc0NvbGxlY3Rpb24gfSBmcm9tICcuL2p3a3MnXG5pbXBvcnQgeyBidWlsZE1lbWJlcnNDb2xsZWN0aW9uIH0gZnJvbSAnLi9tZW1iZXJzJ1xuaW1wb3J0IHsgYnVpbGRPYXV0aEFjY2Vzc1Rva2Vuc0NvbGxlY3Rpb24gfSBmcm9tICcuL29hdXRoLWFjY2Vzcy10b2tlbnMnXG5pbXBvcnQgeyBidWlsZE9hdXRoQXBwbGljYXRpb25zQ29sbGVjdGlvbiB9IGZyb20gJy4vb2F1dGgtYXBwbGljYXRpb25zJ1xuaW1wb3J0IHsgYnVpbGRPYXV0aENvbnNlbnRzQ29sbGVjdGlvbiB9IGZyb20gJy4vb2F1dGgtY29uc2VudHMnXG5pbXBvcnQgeyBidWlsZE9yZ2FuaXphdGlvbnNDb2xsZWN0aW9uIH0gZnJvbSAnLi9vcmdhbml6YXRpb25zJ1xuaW1wb3J0IHsgYnVpbGRQYXNza2V5c0NvbGxlY3Rpb24gfSBmcm9tICcuL3Bhc3NrZXlzJ1xuaW1wb3J0IHsgYnVpbGRTZXNzaW9uc0NvbGxlY3Rpb24gfSBmcm9tICcuL3Nlc3Npb25zJ1xuaW1wb3J0IHsgYnVpbGRTc29Qcm92aWRlcnNDb2xsZWN0aW9uIH0gZnJvbSAnLi9zc28tcHJvdmlkZXJzJ1xuaW1wb3J0IHsgYnVpbGRTdWJzY3JpcHRpb25zQ29sbGVjdGlvbiB9IGZyb20gJy4vc3Vic2NyaXB0aW9ucydcbmltcG9ydCB7IGJ1aWxkVGVhbXNDb2xsZWN0aW9uIH0gZnJvbSAnLi90ZWFtcydcbmltcG9ydCB7IGJ1aWxkVHdvRmFjdG9yc0NvbGxlY3Rpb24gfSBmcm9tICcuL3R3by1mYWN0b3JzJ1xuaW1wb3J0IHsgYnVpbGRVc2Vyc0NvbGxlY3Rpb24gfSBmcm9tICcuL3VzZXJzL2luZGV4J1xuaW1wb3J0IHsgYnVpbGRWZXJpZmljYXRpb25zQ29sbGVjdGlvbiB9IGZyb20gJy4vdmVyaWZpY2F0aW9ucydcblxuLyoqXG4gKiBCdWlsZHMgdGhlIHJlcXVpcmVkIGNvbGxlY3Rpb25zIGJhc2VkIG9uIHRoZSBCZXR0ZXJBdXRoIG9wdGlvbnMgYW5kIHBsdWdpbnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkQ29sbGVjdGlvbk1hcCh7XG4gIGNvbGxlY3Rpb25TY2hlbWFNYXAsXG4gIGluY29taW5nQ29sbGVjdGlvbnMsXG4gIHBsdWdpbk9wdGlvbnNcbn06IHtcbiAgY29sbGVjdGlvblNjaGVtYU1hcDogQ29sbGVjdGlvblNjaGVtYU1hcFxuICBpbmNvbWluZ0NvbGxlY3Rpb25zOiBDb2xsZWN0aW9uQ29uZmlnW11cbiAgcGx1Z2luT3B0aW9uczogQmV0dGVyQXV0aFBsdWdpbk9wdGlvbnNcbn0pOiBSZWNvcmQ8c3RyaW5nLCBDb2xsZWN0aW9uQ29uZmlnPiB7XG4gIGNvbnN0IHNjaGVtYSA9IGdldEJldHRlckF1dGhTY2hlbWEocGx1Z2luT3B0aW9ucy5iZXR0ZXJBdXRoT3B0aW9ucyA/PyB7fSlcblxuICBjb25zdCBnZXRNb2RlbFNjaGVtYSA9IChtb2RlbEtleTogc3RyaW5nKSA9PiBzY2hlbWFbY29sbGVjdGlvblNjaGVtYU1hcFttb2RlbEtleSBhcyBrZXlvZiBDb2xsZWN0aW9uU2NoZW1hTWFwXT8uY29sbGVjdGlvblNsdWddXG5cbiAgY29uc3QgY29sbGVjdGlvbkJ1aWxkZXJzID0ge1xuICAgIFtiYU1vZGVsS2V5LnVzZXJdOiAocHJvcHM6IEJ1aWxkQ29sbGVjdGlvblByb3BzKSA9PiBidWlsZFVzZXJzQ29sbGVjdGlvbihwcm9wcyksXG4gICAgW2JhTW9kZWxLZXkuYWNjb3VudF06IChwcm9wczogQnVpbGRDb2xsZWN0aW9uUHJvcHMpID0+IGJ1aWxkQWNjb3VudHNDb2xsZWN0aW9uKHByb3BzKSxcbiAgICBbYmFNb2RlbEtleS5zZXNzaW9uXTogKHByb3BzOiBCdWlsZENvbGxlY3Rpb25Qcm9wcykgPT4gYnVpbGRTZXNzaW9uc0NvbGxlY3Rpb24ocHJvcHMpLFxuICAgIFtiYU1vZGVsS2V5LnZlcmlmaWNhdGlvbl06IChwcm9wczogQnVpbGRDb2xsZWN0aW9uUHJvcHMpID0+IGJ1aWxkVmVyaWZpY2F0aW9uc0NvbGxlY3Rpb24ocHJvcHMpLFxuICAgIFtiYXNlU2x1Z3MuYWRtaW5JbnZpdGF0aW9uc106IChwcm9wczogQnVpbGRDb2xsZWN0aW9uUHJvcHMpID0+IGJ1aWxkQWRtaW5JbnZpdGF0aW9uc0NvbGxlY3Rpb24ocHJvcHMpLFxuICAgIFtiYU1vZGVsS2V5Lm9yZ2FuaXphdGlvbl06IChwcm9wczogQnVpbGRDb2xsZWN0aW9uUHJvcHMpID0+IGJ1aWxkT3JnYW5pemF0aW9uc0NvbGxlY3Rpb24ocHJvcHMpLFxuICAgIFtiYU1vZGVsS2V5Lm1lbWJlcl06IChwcm9wczogQnVpbGRDb2xsZWN0aW9uUHJvcHMpID0+IGJ1aWxkTWVtYmVyc0NvbGxlY3Rpb24ocHJvcHMpLFxuICAgIFtiYU1vZGVsS2V5Lmludml0YXRpb25dOiAocHJvcHM6IEJ1aWxkQ29sbGVjdGlvblByb3BzKSA9PiBidWlsZEludml0YXRpb25zQ29sbGVjdGlvbihwcm9wcyksXG4gICAgW2JhTW9kZWxLZXkudGVhbV06IChwcm9wczogQnVpbGRDb2xsZWN0aW9uUHJvcHMpID0+IGJ1aWxkVGVhbXNDb2xsZWN0aW9uKHByb3BzKSxcbiAgICBbYmFNb2RlbEtleS5qd2tzXTogKHByb3BzOiBCdWlsZENvbGxlY3Rpb25Qcm9wcykgPT4gYnVpbGRKd2tzQ29sbGVjdGlvbihwcm9wcyksXG4gICAgW2JhTW9kZWxLZXkuYXBpa2V5XTogKHByb3BzOiBCdWlsZENvbGxlY3Rpb25Qcm9wcykgPT4gYnVpbGRBcGlLZXlzQ29sbGVjdGlvbihwcm9wcyksXG4gICAgW2JhTW9kZWxLZXkudHdvRmFjdG9yXTogKHByb3BzOiBCdWlsZENvbGxlY3Rpb25Qcm9wcykgPT4gYnVpbGRUd29GYWN0b3JzQ29sbGVjdGlvbihwcm9wcyksXG4gICAgW2JhTW9kZWxLZXkub2F1dGhBY2Nlc3NUb2tlbl06IChwcm9wczogQnVpbGRDb2xsZWN0aW9uUHJvcHMpID0+IGJ1aWxkT2F1dGhBY2Nlc3NUb2tlbnNDb2xsZWN0aW9uKHByb3BzKSxcbiAgICBbYmFNb2RlbEtleS5vYXV0aEFwcGxpY2F0aW9uXTogKHByb3BzOiBCdWlsZENvbGxlY3Rpb25Qcm9wcykgPT4gYnVpbGRPYXV0aEFwcGxpY2F0aW9uc0NvbGxlY3Rpb24ocHJvcHMpLFxuICAgIFtiYU1vZGVsS2V5Lm9hdXRoQ29uc2VudF06IChwcm9wczogQnVpbGRDb2xsZWN0aW9uUHJvcHMpID0+IGJ1aWxkT2F1dGhDb25zZW50c0NvbGxlY3Rpb24ocHJvcHMpLFxuICAgIFtiYU1vZGVsS2V5LnBhc3NrZXldOiAocHJvcHM6IEJ1aWxkQ29sbGVjdGlvblByb3BzKSA9PiBidWlsZFBhc3NrZXlzQ29sbGVjdGlvbihwcm9wcyksXG4gICAgW2JhTW9kZWxLZXkuc3NvUHJvdmlkZXJdOiAocHJvcHM6IEJ1aWxkQ29sbGVjdGlvblByb3BzKSA9PiBidWlsZFNzb1Byb3ZpZGVyc0NvbGxlY3Rpb24ocHJvcHMpLFxuICAgIFtiYU1vZGVsS2V5LnN1YnNjcmlwdGlvbl06IChwcm9wczogQnVpbGRDb2xsZWN0aW9uUHJvcHMpID0+IGJ1aWxkU3Vic2NyaXB0aW9uc0NvbGxlY3Rpb24ocHJvcHMpXG4gIH1cblxuICBjb25zdCBjb2xsZWN0aW9uTWFwOiBSZWNvcmQ8c3RyaW5nLCBDb2xsZWN0aW9uQ29uZmlnPiA9IHt9XG4gIE9iamVjdC5lbnRyaWVzKGNvbGxlY3Rpb25TY2hlbWFNYXApLmZvckVhY2goKFttb2RlbEtleSwgeyBjb2xsZWN0aW9uU2x1ZyB9XSkgPT4ge1xuICAgIGNvbnN0IGJ1aWxkZXIgPSBjb2xsZWN0aW9uQnVpbGRlcnNbbW9kZWxLZXkgYXMga2V5b2YgdHlwZW9mIGNvbGxlY3Rpb25CdWlsZGVyc11cbiAgICBpZiAoYnVpbGRlcikge1xuICAgICAgY29sbGVjdGlvbk1hcFtjb2xsZWN0aW9uU2x1Z10gPSBidWlsZGVyKHtcbiAgICAgICAgaW5jb21pbmdDb2xsZWN0aW9ucyxcbiAgICAgICAgcGx1Z2luT3B0aW9ucyxcbiAgICAgICAgc2NoZW1hOiBnZXRNb2RlbFNjaGVtYShtb2RlbEtleSlcbiAgICAgIH0pXG4gICAgfVxuICB9KVxuXG4gIC8vIEFkZCBhZG1pbkludml0YXRpb25zIGNvbGxlY3Rpb24gYXMgaXQncyBub3QgaW4gdGhlIGNvbGxlY3Rpb25TY2hlbWFNYXBcbiAgY29uc3QgYWRtaW5JbnZpdGF0aW9uc1NsdWcgPSBnZXREZWFmdWx0Q29sbGVjdGlvblNsdWcoe1xuICAgIG1vZGVsS2V5OiBiYXNlU2x1Z3MuYWRtaW5JbnZpdGF0aW9ucyxcbiAgICBwbHVnaW5PcHRpb25zXG4gIH0pXG4gIGNvbGxlY3Rpb25NYXBbYWRtaW5JbnZpdGF0aW9uc1NsdWddID0gY29sbGVjdGlvbkJ1aWxkZXJzW2Jhc2VTbHVncy5hZG1pbkludml0YXRpb25zXSh7XG4gICAgaW5jb21pbmdDb2xsZWN0aW9ucyxcbiAgICBwbHVnaW5PcHRpb25zLFxuICAgIHNjaGVtYToge1xuICAgICAgZmllbGRzOiB7fSxcbiAgICAgIG9yZGVyOiAwXG4gICAgfVxuICB9KVxuXG4gIC8vIFRoZW4gYWRkIGluY29taW5nIGNvbGxlY3Rpb25zIHRoYXQgZG9uJ3QgY29uZmxpY3Qgd2l0aCByZXF1aXJlZCBvbmVzXG4gIGluY29taW5nQ29sbGVjdGlvbnMuZm9yRWFjaCgoYykgPT4ge1xuICAgIGlmICghY29sbGVjdGlvbk1hcFtjLnNsdWddKSB7XG4gICAgICBjb2xsZWN0aW9uTWFwW2Muc2x1Z10gPSBjXG4gICAgfVxuICB9KVxuXG4gIHJldHVybiBjb2xsZWN0aW9uTWFwXG59XG4iXSwibmFtZXMiOlsiYmFNb2RlbEtleSIsImJhc2VTbHVncyIsImdldEJldHRlckF1dGhTY2hlbWEiLCJnZXREZWFmdWx0Q29sbGVjdGlvblNsdWciLCJidWlsZEFjY291bnRzQ29sbGVjdGlvbiIsImJ1aWxkQWRtaW5JbnZpdGF0aW9uc0NvbGxlY3Rpb24iLCJidWlsZEFwaUtleXNDb2xsZWN0aW9uIiwiYnVpbGRJbnZpdGF0aW9uc0NvbGxlY3Rpb24iLCJidWlsZEp3a3NDb2xsZWN0aW9uIiwiYnVpbGRNZW1iZXJzQ29sbGVjdGlvbiIsImJ1aWxkT2F1dGhBY2Nlc3NUb2tlbnNDb2xsZWN0aW9uIiwiYnVpbGRPYXV0aEFwcGxpY2F0aW9uc0NvbGxlY3Rpb24iLCJidWlsZE9hdXRoQ29uc2VudHNDb2xsZWN0aW9uIiwiYnVpbGRPcmdhbml6YXRpb25zQ29sbGVjdGlvbiIsImJ1aWxkUGFzc2tleXNDb2xsZWN0aW9uIiwiYnVpbGRTZXNzaW9uc0NvbGxlY3Rpb24iLCJidWlsZFNzb1Byb3ZpZGVyc0NvbGxlY3Rpb24iLCJidWlsZFN1YnNjcmlwdGlvbnNDb2xsZWN0aW9uIiwiYnVpbGRUZWFtc0NvbGxlY3Rpb24iLCJidWlsZFR3b0ZhY3RvcnNDb2xsZWN0aW9uIiwiYnVpbGRVc2Vyc0NvbGxlY3Rpb24iLCJidWlsZFZlcmlmaWNhdGlvbnNDb2xsZWN0aW9uIiwiYnVpbGRDb2xsZWN0aW9uTWFwIiwiY29sbGVjdGlvblNjaGVtYU1hcCIsImluY29taW5nQ29sbGVjdGlvbnMiLCJwbHVnaW5PcHRpb25zIiwic2NoZW1hIiwiYmV0dGVyQXV0aE9wdGlvbnMiLCJnZXRNb2RlbFNjaGVtYSIsIm1vZGVsS2V5IiwiY29sbGVjdGlvblNsdWciLCJjb2xsZWN0aW9uQnVpbGRlcnMiLCJ1c2VyIiwicHJvcHMiLCJhY2NvdW50Iiwic2Vzc2lvbiIsInZlcmlmaWNhdGlvbiIsImFkbWluSW52aXRhdGlvbnMiLCJvcmdhbml6YXRpb24iLCJtZW1iZXIiLCJpbnZpdGF0aW9uIiwidGVhbSIsImp3a3MiLCJhcGlrZXkiLCJ0d29GYWN0b3IiLCJvYXV0aEFjY2Vzc1Rva2VuIiwib2F1dGhBcHBsaWNhdGlvbiIsIm9hdXRoQ29uc2VudCIsInBhc3NrZXkiLCJzc29Qcm92aWRlciIsInN1YnNjcmlwdGlvbiIsImNvbGxlY3Rpb25NYXAiLCJPYmplY3QiLCJlbnRyaWVzIiwiZm9yRWFjaCIsImJ1aWxkZXIiLCJhZG1pbkludml0YXRpb25zU2x1ZyIsImZpZWxkcyIsIm9yZGVyIiwiYyIsInNsdWciXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLFVBQVUsRUFBRUMsU0FBUyxRQUFRLGtCQUFpQjtBQUN2RCxTQUFTQyxtQkFBbUIsUUFBUSx1Q0FBc0M7QUFFMUUsU0FBU0Msd0JBQXdCLFFBQVEsb0NBQW1DO0FBRTVFLFNBQVNDLHVCQUF1QixRQUFRLG1CQUFrQjtB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
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gJ3BheWxvYWQnXG5pbXBvcnQgeyBiYU1vZGVsS2V5LCBiYXNlU2x1Z3MgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnXG5pbXBvcnQgeyBnZXRCZXR0ZXJBdXRoU2NoZW1hIH0gZnJvbSAnLi4vLi4vaGVscGVycy9nZXQtYmV0dGVyLWF1dGgtc2NoZW1hJ1xuaW1wb3J0IHsgQ29sbGVjdGlvblNjaGVtYU1hcCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvZ2V0LWNvbGxlY3Rpb24tc2NoZW1hLW1hcCdcbmltcG9ydCB7IGdldERlYWZ1bHRDb2xsZWN0aW9uU2x1ZyB9IGZyb20gJy4uLy4uL2hlbHBlcnMvZ2V0LWNvbGxlY3Rpb24tc2x1ZydcbmltcG9ydCB0eXBlIHsgQmV0dGVyQXV0aFBsdWdpbk9wdGlvbnMsIEJ1aWxkQ29sbGVjdGlvblByb3BzLCBCdWlsZFNjaGVtYSB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgYnVpbGRBY2NvdW50c0NvbGxlY3Rpb24gfSBmcm9tICcuL2FjY291bnRzL2luZGV4J1xuaW1wb3J0IHsgYnVpbGRBZG1pbkludml0YXRpb25zQ29sbGVjdGlvbiB9IGZyb20gJy4vYWRtaW4taW52aXRhdGlvbnMnXG5pbXBvcnQgeyBidWlsZEFwaUtleXNDb2xsZWN0aW9uIH0gZnJvbSAnLi9hcGkta2V5cydcbmltcG9ydCB7IGJ1aWxkSW52aXRhdGlvbnNDb2xsZWN0aW9uIH0gZnJvbSAnLi9pbnZpdGF0aW9ucydcbmltcG9ydCB7IGJ1aWxkSndrc0NvbGxlY3Rpb24gfSBmcm9tICcuL2p3a3MnXG5pbXBvcnQgeyBidWlsZE1lbWJlcnNDb2xsZWN0aW9uIH0gZnJvbSAnLi9tZW1iZXJzJ1xuaW1wb3J0IHsgYnVpbGRPYXV0aEFjY2Vzc1Rva2Vuc0NvbGxlY3Rpb24gfSBmcm9tICcuL29hdXRoLWFjY2Vzcy10b2tlbnMnXG5pbXBvcnQgeyBidWlsZE9hdXRoQXBwbGljYXRpb25zQ29sbGVjdGlvbiB9IGZyb20gJy4vb2F1dGgtYXBwbGljYXRpb25zJ1xuaW1wb3J0IHsgYnVpbGRPYXV0aENvbnNlbnRzQ29sbGVjdGlvbiB9IGZyb20gJy4vb2F1dGgtY29uc2VudHMnXG5pbXBvcnQgeyBidWlsZE9yZ2FuaXphdGlvbnNDb2xsZWN0aW9uIH0gZnJvbSAnLi9vcmdhbml6YXRpb25zJ1xuaW1wb3J0IHsgYnVpbGRQYXNza2V5c0NvbGxlY3Rpb24gfSBmcm9tICcuL3Bhc3NrZXlzJ1xuaW1wb3J0IHsgYnVpbGRTZXNzaW9uc0NvbGxlY3Rpb24gfSBmcm9tICcuL3Nlc3Npb25zJ1xuaW1wb3J0IHsgYnVpbGRTc29Qcm92aWRlcnNDb2xsZWN0aW9uIH0gZnJvbSAnLi9zc28tcHJvdmlkZXJzJ1xuaW1wb3J0IHsgYnVpbGRTdWJzY3JpcHRpb25zQ29sbGVjdGlvbiB9IGZyb20gJy4vc3Vic2NyaXB0aW9ucydcbmltcG9ydCB7IGJ1aWxkVGVhbXNDb2xsZWN0aW9uIH0gZnJvbSAnLi90ZWFtcydcbmltcG9ydCB7IGJ1aWxkVHdvRmFjdG9yc0NvbGxlY3Rpb24gfSBmcm9tICcuL3R3by1mYWN0b3JzJ1xuaW1wb3J0IHsgYnVpbGRVc2Vyc0NvbGxlY3Rpb24gfSBmcm9tICcuL3VzZXJzL2luZGV4J1xuaW1wb3J0IHsgYnVpbGRWZXJpZmljYXRpb25zQ29sbGVjdGlvbiB9IGZyb20gJy4vdmVyaWZpY2F0aW9ucydcblxuLyoqXG4gKiBCdWlsZHMgdGhlIHJlcXVpcmVkIGNvbGxlY3Rpb25zIGJhc2VkIG9uIHRoZSBCZXR0ZXJBdXRoIG9wdGlvbnMgYW5kIHBsdWdpbnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkQ29sbGVjdGlvbk1hcCh7XG4gIGNvbGxlY3Rpb25TY2hlbWFNYXAsXG4gIGluY29taW5nQ29sbGVjdGlvbnMsXG4gIHBsdWdpbk9wdGlvbnNcbn06IHtcbiAgY29sbGVjdGlvblNjaGVtYU1hcDogQ29sbGVjdGlvblNjaGVtYU1hcFxuICBpbmNvbWluZ0NvbGxlY3Rpb25zOiBDb2xsZWN0aW9uQ29uZmlnW11cbiAgcGx1Z2luT3B0aW9uczogQmV0dGVyQXV0aFBsdWdpbk9wdGlvbnNcbn0pOiBSZWNvcmQ8c3RyaW5nLCBDb2xsZWN0aW9uQ29uZmlnPiB7XG4gIGNvbnN0IHNjaGVtYSA9IGdldEJldHRlckF1dGhTY2hlbWEocGx1Z2luT3B0aW9ucy5iZXR0ZXJBdXRoT3B0aW9ucyA/PyB7fSlcblxuICBjb25zdCBnZXRNb2RlbFNjaGVtYSA9IChtb2RlbEtleTogc3RyaW5nKSA9PiBzY2hlbWFbY29sbGVjdGlvblNjaGVtYU1hcFttb2RlbEtleSBhcyBrZXlvZiBDb2xsZWN0aW9uU2NoZW1hTWFwXT8uY29sbGVjdGlvblNsdWddXG5cbiAgY29uc3QgY29sbGVjdGlvbkJ1aWxkZXJzID0ge1xuICAgIFtiYU1vZGVsS2V5LnVzZXJdOiAocHJvcHM6IEJ1aWxkQ29sbGVjdGlvblByb3BzKSA9PiBidWlsZFVzZXJzQ29sbGVjdGlvbihwcm9wcyksXG4gICAgW2JhTW9kZWxLZXkuYWNjb3VudF06IChwcm9wczogQnVpbGRDb2xsZWN0aW9uUHJvcHMpID0+IGJ1aWxkQWNjb3VudHNDb2xsZWN0aW9uKHByb3BzKSxcbiAgICBbYmFNb2RlbEtleS5zZXNzaW9uXTogKHByb3BzOiBCdWlsZENvbGxlY3Rpb25Qcm9wcykgPT4gYnVpbGRTZXNzaW9uc0NvbGxlY3Rpb24ocHJvcHMpLFxuICAgIFtiYU1vZGVsS2V5LnZlcmlmaWNhdGlvbl06IChwcm9wczogQnVpbGRDb2xsZWN0aW9uUHJvcHMpID0+IGJ1aWxkVmVyaWZpY2F0aW9uc0NvbGxlY3Rpb24ocHJvcHMpLFxuICAgIFtiYXNlU2x1Z3MuYWRtaW5JbnZpdGF0aW9uc106IChwcm9wczogQnVpbGRDb2xsZWN0aW9uUHJvcHMpID0+IGJ1aWxkQWRtaW5JbnZpdGF0aW9uc0NvbGxlY3Rpb24ocHJvcHMpLFxuICAgIFtiYU1vZGVsS2V5Lm9yZ2FuaXphdGlvbl06IChwcm9wczogQnVpbGRDb2xsZWN0aW9uUHJvcHMpID0+IGJ1aWxkT3JnYW5pemF0aW9uc0NvbGxlY3Rpb24ocHJvcHMpLFxuICAgIFtiYU1vZGVsS2V5Lm1lbWJlcl06IChwcm9wczogQnVpbGRDb2xsZWN0aW9uUHJvcHMpID0+IGJ1aWxkTWVtYmVyc0NvbGxlY3Rpb24ocHJvcHMpLFxuICAgIFtiYU1vZGVsS2V5Lmludml0YXRpb25dOiAocHJvcHM6IEJ1aWxkQ29sbGVjdGlvblByb3BzKSA9PiBidWlsZEludml0YXRpb25zQ29sbGVjdGlvbihwcm9wcyksXG4gICAgW2JhTW9kZWxLZXkudGVhbV06IChwcm9wczogQnVpbGRDb2xsZWN0aW9uUHJvcHMpID0+IGJ1aWxkVGVhbXNDb2xsZWN0aW9uKHByb3BzKSxcbiAgICBbYmFNb2RlbEtleS5qd2tzXTogKHByb3BzOiBCdWlsZENvbGxlY3Rpb25Qcm9wcykgPT4gYnVpbGRKd2tzQ29sbGVjdGlvbihwcm9wcyksXG4gICAgW2JhTW9kZWxLZXkuYXBpa2V5XTogKHByb3BzOiBCdWlsZENvbGxlY3Rpb25Qcm9wcykgPT4gYnVpbGRBcGlLZXlzQ29sbGVjdGlvbihwcm9wcyksXG4gICAgW2JhTW9kZWxLZXkudHdvRmFjdG9yXTogKHByb3BzOiBCdWlsZENvbGxlY3Rpb25Qcm9wcykgPT4gYnVpbGRUd29GYWN0b3JzQ29sbGVjdGlvbihwcm9wcyksXG4gICAgW2JhTW9kZWxLZXkub2F1dGhBY2Nlc3NUb2tlbl06IChwcm9wczogQnVpbGRDb2xsZWN0aW9uUHJvcHMpID0+IGJ1aWxkT2F1dGhBY2Nlc3NUb2tlbnNDb2xsZWN0aW9uKHByb3BzKSxcbiAgICBbYmFNb2RlbEtleS5vYXV0aEFwcGxpY2F0aW9uXTogKHByb3BzOiBCdWlsZENvbGxlY3Rpb25Qcm9wcykgPT4gYnVpbGRPYXV0aEFwcGxpY2F0aW9uc0NvbGxlY3Rpb24ocHJvcHMpLFxuICAgIFtiYU1vZGVsS2V5Lm9hdXRoQ29uc2VudF06IChwcm9wczogQnVpbGRDb2xsZWN0aW9uUHJvcHMpID0+IGJ1aWxkT2F1dGhDb25zZW50c0NvbGxlY3Rpb24ocHJvcHMpLFxuICAgIFtiYU1vZGVsS2V5LnBhc3NrZXldOiAocHJvcHM6IEJ1aWxkQ29sbGVjdGlvblByb3BzKSA9PiBidWlsZFBhc3NrZXlzQ29sbGVjdGlvbihwcm9wcyksXG4gICAgW2JhTW9kZWxLZXkuc3NvUHJvdmlkZXJdOiAocHJvcHM6IEJ1aWxkQ29sbGVjdGlvblByb3BzKSA9PiBidWlsZFNzb1Byb3ZpZGVyc0NvbGxlY3Rpb24ocHJvcHMpLFxuICAgIFtiYU1vZGVsS2V5LnN1YnNjcmlwdGlvbl06IChwcm9wczogQnVpbGRDb2xsZWN0aW9uUHJvcHMpID0+IGJ1aWxkU3Vic2NyaXB0aW9uc0NvbGxlY3Rpb24ocHJvcHMpXG4gIH1cblxuICBjb25zdCBjb2xsZWN0aW9uTWFwOiBSZWNvcmQ8c3RyaW5nLCBDb2xsZWN0aW9uQ29uZmlnPiA9IHt9XG4gIE9iamVjdC5lbnRyaWVzKGNvbGxlY3Rpb25TY2hlbWFNYXApLmZvckVhY2goKFttb2RlbEtleSwgeyBjb2xsZWN0aW9uU2x1ZyB9XSkgPT4ge1xuICAgIGNvbnN0IGJ1aWxkZXIgPSBjb2xsZWN0aW9uQnVpbGRlcnNbbW9kZWxLZXkgYXMga2V5b2YgdHlwZW9mIGNvbGxlY3Rpb25CdWlsZGVyc11cbiAgICBpZiAoYnVpbGRlcikge1xuICAgICAgY29sbGVjdGlvbk1hcFtjb2xsZWN0aW9uU2x1Z10gPSBidWlsZGVyKHtcbiAgICAgICAgaW5jb21pbmdDb2xsZWN0aW9ucyxcbiAgICAgICAgcGx1Z2luT3B0aW9ucyxcbiAgICAgICAgY29sbGVjdGlvblNjaGVtYU1hcCxcbiAgICAgICAgc2NoZW1hOiBnZXRNb2RlbFNjaGVtYShtb2RlbEtleSlcbiAgICAgIH0pXG4gICAgfVxuICB9KVxuXG4gIC8vIEFkZCBhZG1pbkludml0YXRpb25zIGNvbGxlY3Rpb24gYXMgaXQncyBub3QgaW4gdGhlIGNvbGxlY3Rpb25TY2hlbWFNYXBcbiAgY29uc3QgYWRtaW5JbnZpdGF0aW9uc1NsdWcgPSBnZXREZWFmdWx0Q29sbGVjdGlvblNsdWcoe1xuICAgIG1vZGVsS2V5OiBiYXNlU2x1Z3MuYWRtaW5JbnZpdGF0aW9ucyxcbiAgICBwbHVnaW5PcHRpb25zXG4gIH0pXG4gIGNvbGxlY3Rpb25NYXBbYWRtaW5JbnZpdGF0aW9uc1NsdWddID0gY29sbGVjdGlvbkJ1aWxkZXJzW2Jhc2VTbHVncy5hZG1pbkludml0YXRpb25zXSh7XG4gICAgaW5jb21pbmdDb2xsZWN0aW9ucyxcbiAgICBwbHVnaW5PcHRpb25zLFxuICAgIGNvbGxlY3Rpb25TY2hlbWFNYXAsXG4gICAgc2NoZW1hOiB7XG4gICAgICBmaWVsZHM6IHt9LFxuICAgICAgb3JkZXI6IDBcbiAgICB9XG4gIH0pXG5cbiAgLy8gVGhlbiBhZGQgaW5jb21pbmcgY29sbGVjdGlvbnMgdGhhdCBkb24ndCBjb25mbGljdCB3aXRoIHJlcXVpcmVkIG9uZXNcbiAgaW5jb21pbmdDb2xsZWN0aW9ucy5mb3JFYWNoKChjKSA9PiB7XG4gICAgaWYgKCFjb2xsZWN0aW9uTWFwW2Muc2x1Z10pIHtcbiAgICAgIGNvbGxlY3Rpb25NYXBbYy5zbHVnXSA9IGNcbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIGNvbGxlY3Rpb25NYXBcbn1cbiJdLCJuYW1lcyI6WyJiYU1vZGVsS2V5IiwiYmFzZVNsdWdzIiwiZ2V0QmV0dGVyQXV0aFNjaGVtYSIsImdldERlYWZ1bHRDb2xsZWN0aW9uU2x1ZyIsImJ1aWxkQWNjb3VudHNDb2xsZWN0aW9uIiwiYnVpbGRBZG1pbkludml0YXRpb25zQ29sbGVjdGlvbiIsImJ1aWxkQXBpS2V5c0NvbGxlY3Rpb24iLCJidWlsZEludml0YXRpb25zQ29sbGVjdGlvbiIsImJ1aWxkSndrc0NvbGxlY3Rpb24iLCJidWlsZE1lbWJlcnNDb2xsZWN0aW9uIiwiYnVpbGRPYXV0aEFjY2Vzc1Rva2Vuc0NvbGxlY3Rpb24iLCJidWlsZE9hdXRoQXBwbGljYXRpb25zQ29sbGVjdGlvbiIsImJ1aWxkT2F1dGhDb25zZW50c0NvbGxlY3Rpb24iLCJidWlsZE9yZ2FuaXphdGlvbnNDb2xsZWN0aW9uIiwiYnVpbGRQYXNza2V5c0NvbGxlY3Rpb24iLCJidWlsZFNlc3Npb25zQ29sbGVjdGlvbiIsImJ1aWxkU3NvUHJvdmlkZXJzQ29sbGVjdGlvbiIsImJ1aWxkU3Vic2NyaXB0aW9uc0NvbGxlY3Rpb24iLCJidWlsZFRlYW1zQ29sbGVjdGlvbiIsImJ1aWxkVHdvRmFjdG9yc0NvbGxlY3Rpb24iLCJidWlsZFVzZXJzQ29sbGVjdGlvbiIsImJ1aWxkVmVyaWZpY2F0aW9uc0NvbGxlY3Rpb24iLCJidWlsZENvbGxlY3Rpb25NYXAiLCJjb2xsZWN0aW9uU2NoZW1hTWFwIiwiaW5jb21pbmdDb2xsZWN0aW9ucyIsInBsdWdpbk9wdGlvbnMiLCJzY2hlbWEiLCJiZXR0ZXJBdXRoT3B0aW9ucyIsImdldE1vZGVsU2NoZW1hIiwibW9kZWxLZXkiLCJjb2xsZWN0aW9uU2x1ZyIsImNvbGxlY3Rpb25CdWlsZGVycyIsInVzZXIiLCJwcm9wcyIsImFjY291bnQiLCJzZXNzaW9uIiwidmVyaWZpY2F0aW9uIiwiYWRtaW5JbnZpdGF0aW9ucyIsIm9yZ2FuaXphdGlvbiIsIm1lbWJlciIsImludml0YXRpb24iLCJ0ZWFtIiwiandrcyIsImFwaWtleSIsInR3b0ZhY3RvciIsIm9hdXRoQWNjZXNzVG9rZW4iLCJvYXV0aEFwcGxpY2F0aW9uIiwib2F1dGhDb25zZW50IiwicGFzc2tleSIsInNzb1Byb3ZpZGVyIiwic3Vic2NyaXB0aW9uIiwiY29sbGVjdGlvbk1hcCIsIk9iamVjdCIsImVudHJpZXMiLCJmb3JFYWNoIiwiYnVpbGRlciIsImFkbWluSW52aXRhdGlvbnNTbHVnIiwiZmllbGRzIiwib3JkZXIiLCJjIiwic2x1ZyJdLCJtYXBwaW5ncyI6IkFBQ0EsU0FBU0EsVUFBVSxFQUFFQyxTQUFTLFFBQVEsa0JBQWlCO0FBQ3ZELFNBQVNDLG1CQUFtQixRQUFRLHVDQUFzQztBQUUxRSxTQUFTQyx3QkFBd0IsUUFBUSxvQ0FBbUM7QUFFNUUsU0FBU0MsdUJBQXVCLFFBQVEsbUJBQWtCO0FBQzFELFNBQVNDLCtCQUErQixRQUFRLHNCQUFxQjtBQUNyRSxTQUFTQyxzQkFBc0IsUUFBUSxhQUFZO0FBQ25ELFNBQVNDLDBCQUEwQixRQUFRLGdCQUFlO0FBQzFELFNBQVNDLG1CQUFtQixRQUFRLFNBQVE7QUFDNUMsU0FBU0Msc0JBQXNCLFFBQVEsWUFBVztBQUNsRCxTQUFTQyxnQ0FBZ0MsUUFBUSx3QkFBdUI7QUFDeEUsU0FBU0MsZ0NBQWdDLFFBQVEsdUJBQXNCO0FBQ3ZFLFNBQVNDLDRCQUE0QixRQUFRLG1CQUFrQjtBQUMvRCxTQUFTQyw0QkFBNEIsUUFBUSxrQkFBaUI7QUFDOUQsU0FBU0MsdUJBQXVCLFFBQVEsYUFBWTtBQUNwRCxTQUFTQyx1QkFBdUIsUUFBUSxhQUFZO0FBQ3BELFNBQVNDLDJCQUEyQixRQUFRLGtCQUFpQjtBQUM3RCxTQUFTQyw0QkFBNEIsUUFBUSxrQkFBaUI7QUFDOUQsU0FBU0Msb0JBQW9CLFFBQVEsVUFBUztBQUM5QyxTQUFTQyx5QkFBeUIsUUFBUSxnQkFBZTtBQUN6RCxTQUFTQyxvQkFBb0IsUUFBUSxnQkFBZTtBQUNwRCxTQUFTQyw0QkFBNEIsUUFBUSxrQkFBaUI7QUFFOUQ7O0NBRUMsR0FDRCxPQUFPLFNBQVNDLG1CQUFtQixFQUNqQ0MsbUJBQW1CLEVBQ25CQyxtQkFBbUIsRUFDbkJDLGFBQWEsRUFLZDtJQUNDLE1BQU1DLFNBQVN4QixvQkFBb0J1QixjQUFjRSxpQkFBaUIsSUFBSSxDQUFDO0lBRXZFLE1BQU1DLGlCQUFpQixDQUFDQyxXQUFxQkgsTUFBTSxDQUFDSCxtQkFBbUIsQ0FBQ00sU0FBc0MsRUFBRUMsZUFBZTtJQUUvSCxNQUFNQyxxQkFBcUI7UUFDekIsQ0FBQy9CLFdBQVdnQyxJQUFJLENBQUMsRUFBRSxDQUFDQyxRQUFnQ2IscUJBQXFCYTtRQUN6RSxDQUFDakMsV0FBV2tDLE9BQU8sQ0FBQyxFQUFFLENBQUNELFFBQWdDN0Isd0JBQXdCNkI7UUFDL0UsQ0FBQ2pDLFdBQVdtQyxPQUFPLENBQUMsRUFBRSxDQUFDRixRQUFnQ2xCLHdCQUF3QmtCO1FBQy9FLENBQUNqQyxXQUFXb0MsWUFBWSxDQUFDLEVBQUUsQ0FBQ0gsUUFBZ0NaLDZCQUE2Qlk7UUFDekYsQ0FBQ2hDLFVBQVVvQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUNKLFFBQWdDNUIsZ0NBQWdDNEI7UUFDL0YsQ0FBQ2pDLFdBQVdzQyxZQUFZLENBQUMsRUFBRSxDQUFDTCxRQUFnQ3BCLDZCQUE2Qm9CO1FBQ3pGLENBQUNqQyxXQUFXdUMsTUFBTSxDQUFDLEVBQUUsQ0FBQ04sUUFBZ0N4Qix1QkFBdUJ3QjtRQUM3RSxDQUFDakMsV0FBV3dDLFVBQVUsQ0FBQyxFQUFFLENBQUNQLFFBQWdDMUIsMkJBQTJCMEI7UUFDckYsQ0FBQ2pDLFdBQVd5QyxJQUFJLENBQUMsRUFBRSxDQUFDUixRQUFnQ2YscUJBQXFCZTtRQUN6RSxDQUFDakMsV0FBVzBDLElBQUksQ0FBQyxFQUFFLENBQUNULFFBQWdDekIsb0JBQW9CeUI7UUFDeEUsQ0FBQ2pDLFdBQVcyQyxNQUFNLENBQUMsRUFBRSxDQUFDVixRQUFnQzNCLHVCQUF1QjJCO1FBQzdFLENBQUNqQyxXQUFXNEMsU0FBUyxDQUFDLEVBQUUsQ0FBQ1gsUUFBZ0NkLDBCQUEwQmM7UUFDbkYsQ0FBQ2pDLFdBQVc2QyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUNaLFFBQWdDdkIsaUNBQWlDdUI7UUFDakcsQ0FBQ2pDLFdBQVc4QyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUNiLFFBQWdDdEIsaUNBQWlDc0I7UUFDakcsQ0FBQ2pDLFdBQVcrQyxZQUFZLENBQUMsRUFBRSxDQUFDZCxRQUFnQ3JCLDZCQUE2QnFCO1FBQ3pGLENBQUNqQyxXQUFXZ0QsT0FBTyxDQUFDLEVBQUUsQ0FBQ2YsUUFBZ0NuQix3QkFBd0JtQjtRQUMvRSxDQUFDakMsV0FBV2lELFdBQVcsQ0FBQyxFQUFFLENBQUNoQixRQUFnQ2pCLDRCQUE0QmlCO1FBQ3ZGLENBQUNqQyxXQUFXa0QsWUFBWSxDQUFDLEVBQUUsQ0FBQ2pCLFFBQWdDaEIsNkJBQTZCZ0I7SUFDM0Y7SUFFQSxNQUFNa0IsZ0JBQWtELENBQUM7SUFDekRDLE9BQU9DLE9BQU8sQ0FBQzlCLHFCQUFxQitCLE9BQU8sQ0FBQyxDQUFDLENBQUN6QixVQUFVLEVBQUVDLGNBQWMsRUFBRSxDQUFDO1FBQ3pFLE1BQU15QixVQUFVeEIsa0JBQWtCLENBQUNGLFNBQTRDO1FBQy9FLElBQUkwQixTQUFTO1lBQ1hKLGFBQWEsQ0FBQ3JCLGVBQWUsR0FBR3lCLFFBQVE7Z0JBQ3RDL0I7Z0JBQ0FDO2dCQUNBRjtnQkFDQUcsUUFBUUUsZUFBZUM7WUFDekI7UUFDRjtJQUNGO0lBRUEseUVBQXlFO0lBQ3pFLE1BQU0yQix1QkFBdUJyRCx5QkFBeUI7UUFDcEQwQixVQUFVNUIsVUFBVW9DLGdCQUFnQjtRQUNwQ1o7SUFDRjtJQUNBMEIsYUFBYSxDQUFDSyxxQkFBcUIsR0FBR3pCLGtCQUFrQixDQUFDOUIsVUFBVW9DLGdCQUFnQixDQUFDLENBQUM7UUFDbkZiO1FBQ0FDO1FBQ0FGO1FBQ0FHLFFBQVE7WUFDTitCLFFBQVEsQ0FBQztZQUNUQyxPQUFPO1FBQ1Q7SUFDRjtJQUVBLHVFQUF1RTtJQUN2RWxDLG9CQUFvQjhCLE9BQU8sQ0FBQyxDQUFDSztRQUMzQixJQUFJLENBQUNSLGFBQWEsQ0FBQ1EsRUFBRUMsSUFBSSxDQUFDLEVBQUU7WUFDMUJULGFBQWEsQ0FBQ1EsRUFBRUMsSUFBSSxDQUFDLEdBQUdEO1FBQzFCO0lBQ0Y7SUFFQSxPQUFPUjtBQUNUIn0=
@@ -1,4 +1,4 @@
1
- import type { CollectionConfig } from 'payload';
2
1
  import type { BuildCollectionProps } from '@/better-auth/plugin/types';
2
+ import type { CollectionConfig } from 'payload';
3
3
  export declare function buildPasskeysCollection({ incomingCollections, pluginOptions, schema }: BuildCollectionProps): CollectionConfig;
4
4
  //# sourceMappingURL=passkeys.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"passkeys.d.ts","sourceRoot":"","sources":["../../../../../src/better-auth/plugin/lib/build-collections/passkeys.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/C,OAAO,KAAK,EAAE,oBAAoB,EAAkB,MAAM,4BAA4B,CAAA;AAEtF,wBAAgB,uBAAuB,CAAC,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,oBAAoB,GAAG,gBAAgB,CA2E9H"}
1
+ {"version":3,"file":"passkeys.d.ts","sourceRoot":"","sources":["../../../../../src/better-auth/plugin/lib/build-collections/passkeys.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAkB,MAAM,4BAA4B,CAAA;AACtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAQ/C,wBAAgB,uBAAuB,CAAC,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,oBAAoB,GAAG,gBAAgB,CAqF9H"}
@@ -1,13 +1,18 @@
1
- import { baModelKey } from "../../constants";
1
+ import { baModelFieldKeysToFieldNames, baModelKey, defaults } from "../../constants";
2
2
  import { getAdminAccess } from "../../helpers/get-admin-access";
3
- import { getCollectionFields } from "./utils/transform-schema-fields-to-payload";
4
3
  import { getDeafultCollectionSlug } from "../../helpers/get-collection-slug";
5
4
  import { assertAllSchemaFields } from "./utils/collection-schema";
5
+ import { isAdminOrCurrentUserWithRoles } from "./utils/payload-access";
6
+ import { getCollectionFields } from "./utils/transform-schema-fields-to-payload";
6
7
  export function buildPasskeysCollection({ incomingCollections, pluginOptions, schema }) {
7
8
  const passkeySlug = getDeafultCollectionSlug({
8
9
  modelKey: baModelKey.passkey,
9
10
  pluginOptions
10
11
  });
12
+ const userIdFieldName = schema?.fields?.userId?.fieldName ?? baModelFieldKeysToFieldNames.passkey.userId;
13
+ const adminRoles = pluginOptions.users?.adminRoles ?? [
14
+ defaults.adminRole
15
+ ];
11
16
  const existingPasskeyCollection = incomingCollections.find((collection)=>collection.slug === passkeySlug);
12
17
  const fieldOverrides = {
13
18
  name: ()=>({
@@ -81,6 +86,14 @@ export function buildPasskeysCollection({ incomingCollections, pluginOptions, sc
81
86
  },
82
87
  access: {
83
88
  ...getAdminAccess(pluginOptions),
89
+ read: isAdminOrCurrentUserWithRoles({
90
+ idField: userIdFieldName,
91
+ adminRoles
92
+ }),
93
+ delete: isAdminOrCurrentUserWithRoles({
94
+ idField: userIdFieldName,
95
+ adminRoles
96
+ }),
84
97
  ...existingPasskeyCollection?.access ?? {}
85
98
  },
86
99
  custom: {
@@ -101,4 +114,4 @@ export function buildPasskeysCollection({ incomingCollections, pluginOptions, sc
101
114
  return passkeyCollection;
102
115
  }
103
116
 
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL3Bhc3NrZXlzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJhTW9kZWxLZXkgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnXG5pbXBvcnQgeyBnZXRBZG1pbkFjY2VzcyB9IGZyb20gJy4uLy4uL2hlbHBlcnMvZ2V0LWFkbWluLWFjY2VzcydcbmltcG9ydCB7IGdldENvbGxlY3Rpb25GaWVsZHMgfSBmcm9tICcuL3V0aWxzL3RyYW5zZm9ybS1zY2hlbWEtZmllbGRzLXRvLXBheWxvYWQnXG5pbXBvcnQgeyBnZXREZWFmdWx0Q29sbGVjdGlvblNsdWcgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2dldC1jb2xsZWN0aW9uLXNsdWcnXG5pbXBvcnQgeyBhc3NlcnRBbGxTY2hlbWFGaWVsZHMgfSBmcm9tICcuL3V0aWxzL2NvbGxlY3Rpb24tc2NoZW1hJ1xuXG5pbXBvcnQgdHlwZSB7IENvbGxlY3Rpb25Db25maWcgfSBmcm9tICdwYXlsb2FkJ1xuaW1wb3J0IHR5cGUgeyBQYXNza2V5IH0gZnJvbSAnQC9iZXR0ZXItYXV0aC9nZW5lcmF0ZWQtdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEJ1aWxkQ29sbGVjdGlvblByb3BzLCBGaWVsZE92ZXJyaWRlcyB9IGZyb20gJ0AvYmV0dGVyLWF1dGgvcGx1Z2luL3R5cGVzJ1xuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRQYXNza2V5c0NvbGxlY3Rpb24oeyBpbmNvbWluZ0NvbGxlY3Rpb25zLCBwbHVnaW5PcHRpb25zLCBzY2hlbWEgfTogQnVpbGRDb2xsZWN0aW9uUHJvcHMpOiBDb2xsZWN0aW9uQ29uZmlnIHtcbiAgY29uc3QgcGFzc2tleVNsdWcgPSBnZXREZWFmdWx0Q29sbGVjdGlvblNsdWcoeyBtb2RlbEtleTogYmFNb2RlbEtleS5wYXNza2V5LCBwbHVnaW5PcHRpb25zIH0pXG5cbiAgY29uc3QgZXhpc3RpbmdQYXNza2V5Q29sbGVjdGlvbiA9IGluY29taW5nQ29sbGVjdGlvbnMuZmluZCgoY29sbGVjdGlvbikgPT4gY29sbGVjdGlvbi5zbHVnID09PSBwYXNza2V5U2x1ZykgYXNcbiAgICB8IENvbGxlY3Rpb25Db25maWdcbiAgICB8IHVuZGVmaW5lZFxuXG4gIGNvbnN0IGZpZWxkT3ZlcnJpZGVzOiBGaWVsZE92ZXJyaWRlczxrZXlvZiBQYXNza2V5PiA9IHtcbiAgICBuYW1lOiAoKSA9PiAoe1xuICAgICAgYWRtaW46IHsgcmVhZE9ubHk6IHRydWUsIGRlc2NyaXB0aW9uOiAnVGhlIG5hbWUgb2YgdGhlIHBhc3NrZXknIH1cbiAgICB9KSxcbiAgICBwdWJsaWNLZXk6ICgpID0+ICh7XG4gICAgICBpbmRleDogdHJ1ZSxcbiAgICAgIGFkbWluOiB7IHJlYWRPbmx5OiB0cnVlLCBkZXNjcmlwdGlvbjogJ1RoZSBwdWJsaWMga2V5IG9mIHRoZSBwYXNza2V5JyB9XG4gICAgfSksXG4gICAgdXNlcklkOiAoKSA9PiAoe1xuICAgICAgaW5kZXg6IHRydWUsXG4gICAgICBhZG1pbjogeyByZWFkT25seTogdHJ1ZSwgZGVzY3JpcHRpb246ICdUaGUgdXNlciB0aGF0IHRoZSBwYXNza2V5IGJlbG9uZ3MgdG8nIH1cbiAgICB9KSxcbiAgICBjcmVkZW50aWFsSUQ6ICgpID0+ICh7XG4gICAgICBhZG1pbjogeyByZWFkT25seTogdHJ1ZSwgZGVzY3JpcHRpb246ICdUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHJlZ2lzdGVyZWQgY3JlZGVudGlhbCcgfVxuICAgIH0pLFxuICAgIGNvdW50ZXI6ICgpID0+ICh7XG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIGFkbWluOiB7IHJlYWRPbmx5OiB0cnVlLCBkZXNjcmlwdGlvbjogJ1RoZSBjb3VudGVyIG9mIHRoZSBwYXNza2V5JyB9XG4gICAgfSksXG4gICAgZGV2aWNlVHlwZTogKCkgPT4gKHtcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgYWRtaW46IHsgcmVhZE9ubHk6IHRydWUsIGRlc2NyaXB0aW9uOiAnVGhlIHR5cGUgb2YgZGV2aWNlIHVzZWQgdG8gcmVnaXN0ZXIgdGhlIHBhc3NrZXknIH1cbiAgICB9KSxcbiAgICBiYWNrZWRVcDogKCkgPT4gKHtcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgYWRtaW46IHsgcmVhZE9ubHk6IHRydWUsIGRlc2NyaXB0aW9uOiAnV2hldGhlciB0aGUgcGFzc2tleSBpcyBiYWNrZWQgdXAnIH1cbiAgICB9KSxcbiAgICB0cmFuc3BvcnRzOiAoKSA9PiAoe1xuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICBhZG1pbjogeyByZWFkT25seTogdHJ1ZSwgZGVzY3JpcHRpb246ICdUaGUgdHJhbnNwb3J0cyB1c2VkIHRvIHJlZ2lzdGVyIHRoZSBwYXNza2V5JyB9XG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0IGNvbGxlY3Rpb25GaWVsZHMgPSBnZXRDb2xsZWN0aW9uRmllbGRzKHtcbiAgICBzY2hlbWEsXG4gICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZpZWxkT3ZlcnJpZGVzXG4gIH0pXG5cbiAgbGV0IHBhc3NrZXlDb2xsZWN0aW9uOiBDb2xsZWN0aW9uQ29uZmlnID0ge1xuICAgIC4uLmV4aXN0aW5nUGFzc2tleUNvbGxlY3Rpb24sXG4gICAgc2x1ZzogcGFzc2tleVNsdWcsXG4gICAgYWRtaW46IHtcbiAgICAgIGhpZGRlbjogcGx1Z2luT3B0aW9ucy5oaWRlUGx1Z2luQ29sbGVjdGlvbnMgPz8gZmFsc2UsXG4gICAgICB1c2VBc1RpdGxlOiAnbmFtZScsXG4gICAgICBkZXNjcmlwdGlvbjogJ1Bhc3NrZXlzIGFyZSB1c2VkIHRvIGF1dGhlbnRpY2F0ZSB1c2VycycsXG4gICAgICBncm91cDogcGx1Z2luT3B0aW9ucz8uY29sbGVjdGlvbkFkbWluR3JvdXAgPz8gJ0F1dGgnLFxuICAgICAgLi4uZXhpc3RpbmdQYXNza2V5Q29sbGVjdGlvbj8uYWRtaW5cbiAgICB9LFxuICAgIGFjY2Vzczoge1xuICAgICAgLi4uZ2V0QWRtaW5BY2Nlc3MocGx1Z2luT3B0aW9ucyksXG4gICAgICAuLi4oZXhpc3RpbmdQYXNza2V5Q29sbGVjdGlvbj8uYWNjZXNzID8/IHt9KVxuICAgIH0sXG4gICAgY3VzdG9tOiB7XG4gICAgICAuLi4oZXhpc3RpbmdQYXNza2V5Q29sbGVjdGlvbj8uY3VzdG9tID8/IHt9KSxcbiAgICAgIGJldHRlckF1dGhNb2RlbEtleTogYmFNb2RlbEtleS5wYXNza2V5XG4gICAgfSxcbiAgICBmaWVsZHM6IFsuLi4oZXhpc3RpbmdQYXNza2V5Q29sbGVjdGlvbj8uZmllbGRzID8/IFtdKSwgLi4uKGNvbGxlY3Rpb25GaWVsZHMgPz8gW10pXVxuICB9XG5cbiAgaWYgKHR5cGVvZiBwbHVnaW5PcHRpb25zLnBsdWdpbkNvbGxlY3Rpb25PdmVycmlkZXM/LnBhc3NrZXlzID09PSAnZnVuY3Rpb24nKSB7XG4gICAgcGFzc2tleUNvbGxlY3Rpb24gPSBwbHVnaW5PcHRpb25zLnBsdWdpbkNvbGxlY3Rpb25PdmVycmlkZXMucGFzc2tleXMoe1xuICAgICAgY29sbGVjdGlvbjogcGFzc2tleUNvbGxlY3Rpb25cbiAgICB9KVxuICB9XG5cbiAgYXNzZXJ0QWxsU2NoZW1hRmllbGRzKHBhc3NrZXlDb2xsZWN0aW9uLCBzY2hlbWEpXG5cbiAgcmV0dXJuIHBhc3NrZXlDb2xsZWN0aW9uXG59XG4iXSwibmFtZXMiOlsiYmFNb2RlbEtleSIsImdldEFkbWluQWNjZXNzIiwiZ2V0Q29sbGVjdGlvbkZpZWxkcyIsImdldERlYWZ1bHRDb2xsZWN0aW9uU2x1ZyIsImFzc2VydEFsbFNjaGVtYUZpZWxkcyIsImJ1aWxkUGFzc2tleXNDb2xsZWN0aW9uIiwiaW5jb21pbmdDb2xsZWN0aW9ucyIsInBsdWdpbk9wdGlvbnMiLCJzY2hlbWEiLCJwYXNza2V5U2x1ZyIsIm1vZGVsS2V5IiwicGFzc2tleSIsImV4aXN0aW5nUGFzc2tleUNvbGxlY3Rpb24iLCJmaW5kIiwiY29sbGVjdGlvbiIsInNsdWciLCJmaWVsZE92ZXJyaWRlcyIsIm5hbWUiLCJhZG1pbiIsInJlYWRPbmx5IiwiZGVzY3JpcHRpb24iLCJwdWJsaWNLZXkiLCJpbmRleCIsInVzZXJJZCIsImNyZWRlbnRpYWxJRCIsImNvdW50ZXIiLCJyZXF1aXJlZCIsImRldmljZVR5cGUiLCJiYWNrZWRVcCIsInRyYW5zcG9ydHMiLCJjb2xsZWN0aW9uRmllbGRzIiwiYWRkaXRpb25hbFByb3BlcnRpZXMiLCJwYXNza2V5Q29sbGVjdGlvbiIsImhpZGRlbiIsImhpZGVQbHVnaW5Db2xsZWN0aW9ucyIsInVzZUFzVGl0bGUiLCJncm91cCIsImNvbGxlY3Rpb25BZG1pbkdyb3VwIiwiYWNjZXNzIiwiY3VzdG9tIiwiYmV0dGVyQXV0aE1vZGVsS2V5IiwiZmllbGRzIiwicGx1Z2luQ29sbGVjdGlvbk92ZXJyaWRlcyIsInBhc3NrZXlzIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxVQUFVLFFBQVEsa0JBQWlCO0FBQzVDLFNBQVNDLGNBQWMsUUFBUSxpQ0FBZ0M7QUFDL0QsU0FBU0MsbUJBQW1CLFFBQVEsNkNBQTRDO0FBQ2hGLFNBQVNDLHdCQUF3QixRQUFRLG9DQUFtQztBQUM1RSxTQUFTQyxxQkFBcUIsUUFBUSw0QkFBMkI7QUFNakUsT0FBTyxTQUFTQyx3QkFBd0IsRUFBRUMsbUJBQW1CLEVBQUVDLGFBQWEsRUFBRUMsTUFBTSxFQUF3QjtJQUMxRyxNQUFNQyxjQUFjTix5QkFBeUI7UUFBRU8sVUFBVVYsV0FBV1csT0FBTztRQUFFSjtJQUFjO0lBRTNGLE1BQU1LLDRCQUE0Qk4sb0JBQW9CTyxJQUFJLENBQUMsQ0FBQ0MsYUFBZUEsV0FBV0MsSUFBSSxLQUFLTjtJQUkvRixNQUFNTyxpQkFBZ0Q7UUFDcERDLE1BQU0sSUFBTyxDQUFBO2dCQUNYQyxPQUFPO29CQUFFQyxVQUFVO29CQUFNQyxhQUFhO2dCQUEwQjtZQUNsRSxDQUFBO1FBQ0FDLFdBQVcsSUFBTyxDQUFBO2dCQUNoQkMsT0FBTztnQkFDUEosT0FBTztvQkFBRUMsVUFBVTtvQkFBTUMsYUFBYTtnQkFBZ0M7WUFDeEUsQ0FBQTtRQUNBRyxRQUFRLElBQU8sQ0FBQTtnQkFDYkQsT0FBTztnQkFDUEosT0FBTztvQkFBRUMsVUFBVTtvQkFBTUMsYUFBYTtnQkFBdUM7WUFDL0UsQ0FBQTtRQUNBSSxjQUFjLElBQU8sQ0FBQTtnQkFDbkJOLE9BQU87b0JBQUVDLFVBQVU7b0JBQU1DLGFBQWE7Z0JBQXFEO1lBQzdGLENBQUE7UUFDQUssU0FBUyxJQUFPLENBQUE7Z0JBQ2RDLFVBQVU7Z0JBQ1ZSLE9BQU87b0JBQUVDLFVBQVU7b0JBQU1DLGFBQWE7Z0JBQTZCO1lBQ3JFLENBQUE7UUFDQU8sWUFBWSxJQUFPLENBQUE7Z0JBQ2pCRCxVQUFVO2dCQUNWUixPQUFPO29CQUFFQyxVQUFVO29CQUFNQyxhQUFhO2dCQUFrRDtZQUMxRixDQUFBO1FBQ0FRLFVBQVUsSUFBTyxDQUFBO2dCQUNmRixVQUFVO2dCQUNWUixPQUFPO29CQUFFQyxVQUFVO29CQUFNQyxhQUFhO2dCQUFtQztZQUMzRSxDQUFBO1FBQ0FTLFlBQVksSUFBTyxDQUFBO2dCQUNqQkgsVUFBVTtnQkFDVlIsT0FBTztvQkFBRUMsVUFBVTtvQkFBTUMsYUFBYTtnQkFBOEM7WUFDdEYsQ0FBQTtJQUNGO0lBRUEsTUFBTVUsbUJBQW1CNUIsb0JBQW9CO1FBQzNDTTtRQUNBdUIsc0JBQXNCZjtJQUN4QjtJQUVBLElBQUlnQixvQkFBc0M7UUFDeEMsR0FBR3BCLHlCQUF5QjtRQUM1QkcsTUFBTU47UUFDTlMsT0FBTztZQUNMZSxRQUFRMUIsY0FBYzJCLHFCQUFxQixJQUFJO1lBQy9DQyxZQUFZO1lBQ1pmLGFBQWE7WUFDYmdCLE9BQU83QixlQUFlOEIsd0JBQXdCO1lBQzlDLEdBQUd6QiwyQkFBMkJNLEtBQUs7UUFDckM7UUFDQW9CLFFBQVE7WUFDTixHQUFHckMsZUFBZU0sY0FBYztZQUNoQyxHQUFJSywyQkFBMkIwQixVQUFVLENBQUMsQ0FBQztRQUM3QztRQUNBQyxRQUFRO1lBQ04sR0FBSTNCLDJCQUEyQjJCLFVBQVUsQ0FBQyxDQUFDO1lBQzNDQyxvQkFBb0J4QyxXQUFXVyxPQUFPO1FBQ3hDO1FBQ0E4QixRQUFRO2VBQUs3QiwyQkFBMkI2QixVQUFVLEVBQUU7ZUFBT1gsb0JBQW9CLEVBQUU7U0FBRTtJQUNyRjtJQUVBLElBQUksT0FBT3ZCLGNBQWNtQyx5QkFBeUIsRUFBRUMsYUFBYSxZQUFZO1FBQzNFWCxvQkFBb0J6QixjQUFjbUMseUJBQXlCLENBQUNDLFFBQVEsQ0FBQztZQUNuRTdCLFlBQVlrQjtRQUNkO0lBQ0Y7SUFFQTVCLHNCQUFzQjRCLG1CQUFtQnhCO0lBRXpDLE9BQU93QjtBQUNUIn0=
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL3Bhc3NrZXlzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGFzc2tleSB9IGZyb20gJ0AvYmV0dGVyLWF1dGgvZ2VuZXJhdGVkLXR5cGVzJ1xuaW1wb3J0IHR5cGUgeyBCdWlsZENvbGxlY3Rpb25Qcm9wcywgRmllbGRPdmVycmlkZXMgfSBmcm9tICdAL2JldHRlci1hdXRoL3BsdWdpbi90eXBlcydcbmltcG9ydCB0eXBlIHsgQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gJ3BheWxvYWQnXG5pbXBvcnQgeyBiYU1vZGVsRmllbGRLZXlzVG9GaWVsZE5hbWVzLCBiYU1vZGVsS2V5LCBkZWZhdWx0cyB9IGZyb20gJy4uLy4uL2NvbnN0YW50cydcbmltcG9ydCB7IGdldEFkbWluQWNjZXNzIH0gZnJvbSAnLi4vLi4vaGVscGVycy9nZXQtYWRtaW4tYWNjZXNzJ1xuaW1wb3J0IHsgZ2V0RGVhZnVsdENvbGxlY3Rpb25TbHVnIH0gZnJvbSAnLi4vLi4vaGVscGVycy9nZXQtY29sbGVjdGlvbi1zbHVnJ1xuaW1wb3J0IHsgYXNzZXJ0QWxsU2NoZW1hRmllbGRzIH0gZnJvbSAnLi91dGlscy9jb2xsZWN0aW9uLXNjaGVtYSdcbmltcG9ydCB7IGlzQWRtaW5PckN1cnJlbnRVc2VyV2l0aFJvbGVzIH0gZnJvbSAnLi91dGlscy9wYXlsb2FkLWFjY2VzcydcbmltcG9ydCB7IGdldENvbGxlY3Rpb25GaWVsZHMgfSBmcm9tICcuL3V0aWxzL3RyYW5zZm9ybS1zY2hlbWEtZmllbGRzLXRvLXBheWxvYWQnXG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFBhc3NrZXlzQ29sbGVjdGlvbih7IGluY29taW5nQ29sbGVjdGlvbnMsIHBsdWdpbk9wdGlvbnMsIHNjaGVtYSB9OiBCdWlsZENvbGxlY3Rpb25Qcm9wcyk6IENvbGxlY3Rpb25Db25maWcge1xuICBjb25zdCBwYXNza2V5U2x1ZyA9IGdldERlYWZ1bHRDb2xsZWN0aW9uU2x1Zyh7IG1vZGVsS2V5OiBiYU1vZGVsS2V5LnBhc3NrZXksIHBsdWdpbk9wdGlvbnMgfSlcbiAgY29uc3QgdXNlcklkRmllbGROYW1lID0gc2NoZW1hPy5maWVsZHM/LnVzZXJJZD8uZmllbGROYW1lID8/IGJhTW9kZWxGaWVsZEtleXNUb0ZpZWxkTmFtZXMucGFzc2tleS51c2VySWRcbiAgY29uc3QgYWRtaW5Sb2xlcyA9IHBsdWdpbk9wdGlvbnMudXNlcnM/LmFkbWluUm9sZXMgPz8gW2RlZmF1bHRzLmFkbWluUm9sZV1cblxuICBjb25zdCBleGlzdGluZ1Bhc3NrZXlDb2xsZWN0aW9uID0gaW5jb21pbmdDb2xsZWN0aW9ucy5maW5kKChjb2xsZWN0aW9uKSA9PiBjb2xsZWN0aW9uLnNsdWcgPT09IHBhc3NrZXlTbHVnKSBhc1xuICAgIHwgQ29sbGVjdGlvbkNvbmZpZ1xuICAgIHwgdW5kZWZpbmVkXG5cbiAgY29uc3QgZmllbGRPdmVycmlkZXM6IEZpZWxkT3ZlcnJpZGVzPGtleW9mIFBhc3NrZXk+ID0ge1xuICAgIG5hbWU6ICgpID0+ICh7XG4gICAgICBhZG1pbjogeyByZWFkT25seTogdHJ1ZSwgZGVzY3JpcHRpb246ICdUaGUgbmFtZSBvZiB0aGUgcGFzc2tleScgfVxuICAgIH0pLFxuICAgIHB1YmxpY0tleTogKCkgPT4gKHtcbiAgICAgIGluZGV4OiB0cnVlLFxuICAgICAgYWRtaW46IHsgcmVhZE9ubHk6IHRydWUsIGRlc2NyaXB0aW9uOiAnVGhlIHB1YmxpYyBrZXkgb2YgdGhlIHBhc3NrZXknIH1cbiAgICB9KSxcbiAgICB1c2VySWQ6ICgpID0+ICh7XG4gICAgICBpbmRleDogdHJ1ZSxcbiAgICAgIGFkbWluOiB7IHJlYWRPbmx5OiB0cnVlLCBkZXNjcmlwdGlvbjogJ1RoZSB1c2VyIHRoYXQgdGhlIHBhc3NrZXkgYmVsb25ncyB0bycgfVxuICAgIH0pLFxuICAgIGNyZWRlbnRpYWxJRDogKCkgPT4gKHtcbiAgICAgIGFkbWluOiB7IHJlYWRPbmx5OiB0cnVlLCBkZXNjcmlwdGlvbjogJ1RoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgcmVnaXN0ZXJlZCBjcmVkZW50aWFsJyB9XG4gICAgfSksXG4gICAgY291bnRlcjogKCkgPT4gKHtcbiAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgYWRtaW46IHsgcmVhZE9ubHk6IHRydWUsIGRlc2NyaXB0aW9uOiAnVGhlIGNvdW50ZXIgb2YgdGhlIHBhc3NrZXknIH1cbiAgICB9KSxcbiAgICBkZXZpY2VUeXBlOiAoKSA9PiAoe1xuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICBhZG1pbjogeyByZWFkT25seTogdHJ1ZSwgZGVzY3JpcHRpb246ICdUaGUgdHlwZSBvZiBkZXZpY2UgdXNlZCB0byByZWdpc3RlciB0aGUgcGFzc2tleScgfVxuICAgIH0pLFxuICAgIGJhY2tlZFVwOiAoKSA9PiAoe1xuICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICBhZG1pbjogeyByZWFkT25seTogdHJ1ZSwgZGVzY3JpcHRpb246ICdXaGV0aGVyIHRoZSBwYXNza2V5IGlzIGJhY2tlZCB1cCcgfVxuICAgIH0pLFxuICAgIHRyYW5zcG9ydHM6ICgpID0+ICh7XG4gICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgIGFkbWluOiB7IHJlYWRPbmx5OiB0cnVlLCBkZXNjcmlwdGlvbjogJ1RoZSB0cmFuc3BvcnRzIHVzZWQgdG8gcmVnaXN0ZXIgdGhlIHBhc3NrZXknIH1cbiAgICB9KVxuICB9XG5cbiAgY29uc3QgY29sbGVjdGlvbkZpZWxkcyA9IGdldENvbGxlY3Rpb25GaWVsZHMoe1xuICAgIHNjaGVtYSxcbiAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmllbGRPdmVycmlkZXNcbiAgfSlcblxuICBsZXQgcGFzc2tleUNvbGxlY3Rpb246IENvbGxlY3Rpb25Db25maWcgPSB7XG4gICAgLi4uZXhpc3RpbmdQYXNza2V5Q29sbGVjdGlvbixcbiAgICBzbHVnOiBwYXNza2V5U2x1ZyxcbiAgICBhZG1pbjoge1xuICAgICAgaGlkZGVuOiBwbHVnaW5PcHRpb25zLmhpZGVQbHVnaW5Db2xsZWN0aW9ucyA/PyBmYWxzZSxcbiAgICAgIHVzZUFzVGl0bGU6ICduYW1lJyxcbiAgICAgIGRlc2NyaXB0aW9uOiAnUGFzc2tleXMgYXJlIHVzZWQgdG8gYXV0aGVudGljYXRlIHVzZXJzJyxcbiAgICAgIGdyb3VwOiBwbHVnaW5PcHRpb25zPy5jb2xsZWN0aW9uQWRtaW5Hcm91cCA/PyAnQXV0aCcsXG4gICAgICAuLi5leGlzdGluZ1Bhc3NrZXlDb2xsZWN0aW9uPy5hZG1pblxuICAgIH0sXG4gICAgYWNjZXNzOiB7XG4gICAgICAuLi5nZXRBZG1pbkFjY2VzcyhwbHVnaW5PcHRpb25zKSxcbiAgICAgIHJlYWQ6IGlzQWRtaW5PckN1cnJlbnRVc2VyV2l0aFJvbGVzKHtcbiAgICAgICAgaWRGaWVsZDogdXNlcklkRmllbGROYW1lLFxuICAgICAgICBhZG1pblJvbGVzXG4gICAgICB9KSxcbiAgICAgIGRlbGV0ZTogaXNBZG1pbk9yQ3VycmVudFVzZXJXaXRoUm9sZXMoe1xuICAgICAgICBpZEZpZWxkOiB1c2VySWRGaWVsZE5hbWUsXG4gICAgICAgIGFkbWluUm9sZXNcbiAgICAgIH0pLFxuICAgICAgLi4uKGV4aXN0aW5nUGFzc2tleUNvbGxlY3Rpb24/LmFjY2VzcyA/PyB7fSlcbiAgICB9LFxuICAgIGN1c3RvbToge1xuICAgICAgLi4uKGV4aXN0aW5nUGFzc2tleUNvbGxlY3Rpb24/LmN1c3RvbSA/PyB7fSksXG4gICAgICBiZXR0ZXJBdXRoTW9kZWxLZXk6IGJhTW9kZWxLZXkucGFzc2tleVxuICAgIH0sXG4gICAgZmllbGRzOiBbLi4uKGV4aXN0aW5nUGFzc2tleUNvbGxlY3Rpb24/LmZpZWxkcyA/PyBbXSksIC4uLihjb2xsZWN0aW9uRmllbGRzID8/IFtdKV1cbiAgfVxuXG4gIGlmICh0eXBlb2YgcGx1Z2luT3B0aW9ucy5wbHVnaW5Db2xsZWN0aW9uT3ZlcnJpZGVzPy5wYXNza2V5cyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHBhc3NrZXlDb2xsZWN0aW9uID0gcGx1Z2luT3B0aW9ucy5wbHVnaW5Db2xsZWN0aW9uT3ZlcnJpZGVzLnBhc3NrZXlzKHtcbiAgICAgIGNvbGxlY3Rpb246IHBhc3NrZXlDb2xsZWN0aW9uXG4gICAgfSlcbiAgfVxuXG4gIGFzc2VydEFsbFNjaGVtYUZpZWxkcyhwYXNza2V5Q29sbGVjdGlvbiwgc2NoZW1hKVxuXG4gIHJldHVybiBwYXNza2V5Q29sbGVjdGlvblxufVxuIl0sIm5hbWVzIjpbImJhTW9kZWxGaWVsZEtleXNUb0ZpZWxkTmFtZXMiLCJiYU1vZGVsS2V5IiwiZGVmYXVsdHMiLCJnZXRBZG1pbkFjY2VzcyIsImdldERlYWZ1bHRDb2xsZWN0aW9uU2x1ZyIsImFzc2VydEFsbFNjaGVtYUZpZWxkcyIsImlzQWRtaW5PckN1cnJlbnRVc2VyV2l0aFJvbGVzIiwiZ2V0Q29sbGVjdGlvbkZpZWxkcyIsImJ1aWxkUGFzc2tleXNDb2xsZWN0aW9uIiwiaW5jb21pbmdDb2xsZWN0aW9ucyIsInBsdWdpbk9wdGlvbnMiLCJzY2hlbWEiLCJwYXNza2V5U2x1ZyIsIm1vZGVsS2V5IiwicGFzc2tleSIsInVzZXJJZEZpZWxkTmFtZSIsImZpZWxkcyIsInVzZXJJZCIsImZpZWxkTmFtZSIsImFkbWluUm9sZXMiLCJ1c2VycyIsImFkbWluUm9sZSIsImV4aXN0aW5nUGFzc2tleUNvbGxlY3Rpb24iLCJmaW5kIiwiY29sbGVjdGlvbiIsInNsdWciLCJmaWVsZE92ZXJyaWRlcyIsIm5hbWUiLCJhZG1pbiIsInJlYWRPbmx5IiwiZGVzY3JpcHRpb24iLCJwdWJsaWNLZXkiLCJpbmRleCIsImNyZWRlbnRpYWxJRCIsImNvdW50ZXIiLCJyZXF1aXJlZCIsImRldmljZVR5cGUiLCJiYWNrZWRVcCIsInRyYW5zcG9ydHMiLCJjb2xsZWN0aW9uRmllbGRzIiwiYWRkaXRpb25hbFByb3BlcnRpZXMiLCJwYXNza2V5Q29sbGVjdGlvbiIsImhpZGRlbiIsImhpZGVQbHVnaW5Db2xsZWN0aW9ucyIsInVzZUFzVGl0bGUiLCJncm91cCIsImNvbGxlY3Rpb25BZG1pbkdyb3VwIiwiYWNjZXNzIiwicmVhZCIsImlkRmllbGQiLCJkZWxldGUiLCJjdXN0b20iLCJiZXR0ZXJBdXRoTW9kZWxLZXkiLCJwbHVnaW5Db2xsZWN0aW9uT3ZlcnJpZGVzIiwicGFzc2tleXMiXSwibWFwcGluZ3MiOiJBQUdBLFNBQVNBLDRCQUE0QixFQUFFQyxVQUFVLEVBQUVDLFFBQVEsUUFBUSxrQkFBaUI7QUFDcEYsU0FBU0MsY0FBYyxRQUFRLGlDQUFnQztBQUMvRCxTQUFTQyx3QkFBd0IsUUFBUSxvQ0FBbUM7QUFDNUUsU0FBU0MscUJBQXFCLFFBQVEsNEJBQTJCO0FBQ2pFLFNBQVNDLDZCQUE2QixRQUFRLHlCQUF3QjtBQUN0RSxTQUFTQyxtQkFBbUIsUUFBUSw2Q0FBNEM7QUFFaEYsT0FBTyxTQUFTQyx3QkFBd0IsRUFBRUMsbUJBQW1CLEVBQUVDLGFBQWEsRUFBRUMsTUFBTSxFQUF3QjtJQUMxRyxNQUFNQyxjQUFjUix5QkFBeUI7UUFBRVMsVUFBVVosV0FBV2EsT0FBTztRQUFFSjtJQUFjO0lBQzNGLE1BQU1LLGtCQUFrQkosUUFBUUssUUFBUUMsUUFBUUMsYUFBYWxCLDZCQUE2QmMsT0FBTyxDQUFDRyxNQUFNO0lBQ3hHLE1BQU1FLGFBQWFULGNBQWNVLEtBQUssRUFBRUQsY0FBYztRQUFDakIsU0FBU21CLFNBQVM7S0FBQztJQUUxRSxNQUFNQyw0QkFBNEJiLG9CQUFvQmMsSUFBSSxDQUFDLENBQUNDLGFBQWVBLFdBQVdDLElBQUksS0FBS2I7SUFJL0YsTUFBTWMsaUJBQWdEO1FBQ3BEQyxNQUFNLElBQU8sQ0FBQTtnQkFDWEMsT0FBTztvQkFBRUMsVUFBVTtvQkFBTUMsYUFBYTtnQkFBMEI7WUFDbEUsQ0FBQTtRQUNBQyxXQUFXLElBQU8sQ0FBQTtnQkFDaEJDLE9BQU87Z0JBQ1BKLE9BQU87b0JBQUVDLFVBQVU7b0JBQU1DLGFBQWE7Z0JBQWdDO1lBQ3hFLENBQUE7UUFDQWIsUUFBUSxJQUFPLENBQUE7Z0JBQ2JlLE9BQU87Z0JBQ1BKLE9BQU87b0JBQUVDLFVBQVU7b0JBQU1DLGFBQWE7Z0JBQXVDO1lBQy9FLENBQUE7UUFDQUcsY0FBYyxJQUFPLENBQUE7Z0JBQ25CTCxPQUFPO29CQUFFQyxVQUFVO29CQUFNQyxhQUFhO2dCQUFxRDtZQUM3RixDQUFBO1FBQ0FJLFNBQVMsSUFBTyxDQUFBO2dCQUNkQyxVQUFVO2dCQUNWUCxPQUFPO29CQUFFQyxVQUFVO29CQUFNQyxhQUFhO2dCQUE2QjtZQUNyRSxDQUFBO1FBQ0FNLFlBQVksSUFBTyxDQUFBO2dCQUNqQkQsVUFBVTtnQkFDVlAsT0FBTztvQkFBRUMsVUFBVTtvQkFBTUMsYUFBYTtnQkFBa0Q7WUFDMUYsQ0FBQTtRQUNBTyxVQUFVLElBQU8sQ0FBQTtnQkFDZkYsVUFBVTtnQkFDVlAsT0FBTztvQkFBRUMsVUFBVTtvQkFBTUMsYUFBYTtnQkFBbUM7WUFDM0UsQ0FBQTtRQUNBUSxZQUFZLElBQU8sQ0FBQTtnQkFDakJILFVBQVU7Z0JBQ1ZQLE9BQU87b0JBQUVDLFVBQVU7b0JBQU1DLGFBQWE7Z0JBQThDO1lBQ3RGLENBQUE7SUFDRjtJQUVBLE1BQU1TLG1CQUFtQmhDLG9CQUFvQjtRQUMzQ0k7UUFDQTZCLHNCQUFzQmQ7SUFDeEI7SUFFQSxJQUFJZSxvQkFBc0M7UUFDeEMsR0FBR25CLHlCQUF5QjtRQUM1QkcsTUFBTWI7UUFDTmdCLE9BQU87WUFDTGMsUUFBUWhDLGNBQWNpQyxxQkFBcUIsSUFBSTtZQUMvQ0MsWUFBWTtZQUNaZCxhQUFhO1lBQ2JlLE9BQU9uQyxlQUFlb0Msd0JBQXdCO1lBQzlDLEdBQUd4QiwyQkFBMkJNLEtBQUs7UUFDckM7UUFDQW1CLFFBQVE7WUFDTixHQUFHNUMsZUFBZU8sY0FBYztZQUNoQ3NDLE1BQU0xQyw4QkFBOEI7Z0JBQ2xDMkMsU0FBU2xDO2dCQUNUSTtZQUNGO1lBQ0ErQixRQUFRNUMsOEJBQThCO2dCQUNwQzJDLFNBQVNsQztnQkFDVEk7WUFDRjtZQUNBLEdBQUlHLDJCQUEyQnlCLFVBQVUsQ0FBQyxDQUFDO1FBQzdDO1FBQ0FJLFFBQVE7WUFDTixHQUFJN0IsMkJBQTJCNkIsVUFBVSxDQUFDLENBQUM7WUFDM0NDLG9CQUFvQm5ELFdBQVdhLE9BQU87UUFDeEM7UUFDQUUsUUFBUTtlQUFLTSwyQkFBMkJOLFVBQVUsRUFBRTtlQUFPdUIsb0JBQW9CLEVBQUU7U0FBRTtJQUNyRjtJQUVBLElBQUksT0FBTzdCLGNBQWMyQyx5QkFBeUIsRUFBRUMsYUFBYSxZQUFZO1FBQzNFYixvQkFBb0IvQixjQUFjMkMseUJBQXlCLENBQUNDLFFBQVEsQ0FBQztZQUNuRTlCLFlBQVlpQjtRQUNkO0lBQ0Y7SUFFQXBDLHNCQUFzQm9DLG1CQUFtQjlCO0lBRXpDLE9BQU84QjtBQUNUIn0=
@@ -2,5 +2,4 @@ export * from './generate-invite-url';
2
2
  export * from './refresh-token';
3
3
  export * from './send-invite-url';
4
4
  export * from './set-admin-role';
5
- export * from './signup';
6
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/better-auth/plugin/lib/build-collections/users/endpoints/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA;AAChC,cAAc,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../src/better-auth/plugin/lib/build-collections/users/endpoints/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,mBAAmB,CAAA;AACjC,cAAc,kBAAkB,CAAA"}
@@ -2,6 +2,5 @@ export * from "./generate-invite-url";
2
2
  export * from "./refresh-token";
3
3
  export * from "./send-invite-url";
4
4
  export * from "./set-admin-role";
5
- export * from "./signup";
6
5
 
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL3VzZXJzL2VuZHBvaW50cy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2dlbmVyYXRlLWludml0ZS11cmwnXG5leHBvcnQgKiBmcm9tICcuL3JlZnJlc2gtdG9rZW4nXG5leHBvcnQgKiBmcm9tICcuL3NlbmQtaW52aXRlLXVybCdcbmV4cG9ydCAqIGZyb20gJy4vc2V0LWFkbWluLXJvbGUnXG5leHBvcnQgKiBmcm9tICcuL3NpZ251cCdcblxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXVCO0FBQ3JDLGNBQWMsa0JBQWlCO0FBQy9CLGNBQWMsb0JBQW1CO0FBQ2pDLGNBQWMsbUJBQWtCO0FBQ2hDLGNBQWMsV0FBVSJ9
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL3VzZXJzL2VuZHBvaW50cy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2dlbmVyYXRlLWludml0ZS11cmwnXG5leHBvcnQgKiBmcm9tICcuL3JlZnJlc2gtdG9rZW4nXG5leHBvcnQgKiBmcm9tICcuL3NlbmQtaW52aXRlLXVybCdcbmV4cG9ydCAqIGZyb20gJy4vc2V0LWFkbWluLXJvbGUnXG5cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHdCQUF1QjtBQUNyQyxjQUFjLGtCQUFpQjtBQUMvQixjQUFjLG9CQUFtQjtBQUNqQyxjQUFjLG1CQUFrQiJ9
@@ -1,4 +1,4 @@
1
1
  import type { CollectionConfig } from 'payload';
2
2
  import type { BuildCollectionProps } from '../../../types';
3
- export declare function buildUsersCollection({ incomingCollections, pluginOptions, schema }: BuildCollectionProps): CollectionConfig;
3
+ export declare function buildUsersCollection({ incomingCollections, pluginOptions, collectionSchemaMap, schema }: BuildCollectionProps): CollectionConfig;
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/better-auth/plugin/lib/build-collections/users/index.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/C,OAAO,KAAK,EAAE,oBAAoB,EAAkB,MAAM,gBAAgB,CAAA;AAG1E,wBAAgB,oBAAoB,CAAC,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,oBAAoB,GAAG,gBAAgB,CAwN3H"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/better-auth/plugin/lib/build-collections/users/index.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,gBAAgB,EAAW,MAAM,SAAS,CAAA;AAExD,OAAO,KAAK,EAAE,oBAAoB,EAAkB,MAAM,gBAAgB,CAAA;AAG1E,wBAAgB,oBAAoB,CAAC,EAAE,mBAAmB,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,EAAE,EAAE,oBAAoB,GAAG,gBAAgB,CAgPhJ"}
@@ -1,18 +1,23 @@
1
1
  import { checkPluginExists } from "../../../helpers/check-plugin-exists";
2
2
  import { getDeafultCollectionSlug } from "../../../helpers/get-collection-slug";
3
- import { baModelKey, defaults, supportedBAPluginIds } from "../../../constants";
3
+ import { baModelFieldKeys, baModelKey, defaults, supportedBAPluginIds } from "../../../constants";
4
4
  import { getAllRoleOptions } from "../../../helpers/get-all-roles";
5
- import { assertAllSchemaFields } from "../utils/collection-schema";
5
+ import { assertAllSchemaFields, getSchemaFieldName } from "../utils/collection-schema";
6
6
  import { isAdminOrCurrentUserUpdateWithAllowedFields, isAdminOrCurrentUserWithRoles, isAdminWithRoles } from "../utils/payload-access";
7
7
  import { getCollectionFields } from "../utils/transform-schema-fields-to-payload";
8
8
  import { betterAuthStrategy } from "./better-auth-strategy";
9
- import { getGenerateInviteUrlEndpoint, getRefreshTokenEndpoint, getSendInviteUrlEndpoint, getSetAdminRoleEndpoint, getSignupEndpoint } from "./endpoints";
9
+ import { getGenerateInviteUrlEndpoint, getRefreshTokenEndpoint, getSendInviteUrlEndpoint, getSetAdminRoleEndpoint } from "./endpoints";
10
10
  import { getSyncAccountHook, getAfterLoginHook, getAfterLogoutHook, getBeforeDeleteHook, getBeforeLoginHook, getOnVerifiedChangeHook } from "./hooks";
11
- export function buildUsersCollection({ incomingCollections, pluginOptions, schema }) {
11
+ export function buildUsersCollection({ incomingCollections, pluginOptions, collectionSchemaMap, schema }) {
12
12
  const userSlug = getDeafultCollectionSlug({
13
13
  modelKey: baModelKey.user,
14
14
  pluginOptions
15
15
  });
16
+ const passkeySlug = getDeafultCollectionSlug({
17
+ modelKey: baModelKey.passkey,
18
+ pluginOptions
19
+ });
20
+ const passkeyUserIdFieldName = getSchemaFieldName(collectionSchemaMap, baModelKey.passkey, baModelFieldKeys.passkey.userId);
16
21
  const adminRoles = pluginOptions.users?.adminRoles ?? [
17
22
  defaults.adminRole
18
23
  ];
@@ -25,7 +30,7 @@ export function buildUsersCollection({ incomingCollections, pluginOptions, schem
25
30
  ];
26
31
  const userFieldRules = [
27
32
  {
28
- condition: (field)=>field.type === 'date',
33
+ condition: (field)=>field.fieldName === 'createdAt' || field.fieldName === 'updatedAt',
29
34
  transform: (field)=>({
30
35
  ...field,
31
36
  saveToJWT: false,
@@ -34,7 +39,7 @@ export function buildUsersCollection({ incomingCollections, pluginOptions, schem
34
39
  hidden: true
35
40
  },
36
41
  index: true,
37
- label: ({ t })=>t('general:updatedAt')
42
+ label: ({ t })=>field.fieldName === 'createdAt' ? t('general:createdAt') : t('general:updatedAt')
38
43
  })
39
44
  }
40
45
  ];
@@ -215,8 +220,7 @@ export function buildUsersCollection({ incomingCollections, pluginOptions, schem
215
220
  roles: allRoleOptions,
216
221
  pluginOptions
217
222
  }),
218
- getSendInviteUrlEndpoint(pluginOptions),
219
- getSignupEndpoint(pluginOptions)
223
+ getSendInviteUrlEndpoint(pluginOptions)
220
224
  ],
221
225
  hooks: {
222
226
  beforeChange: [
@@ -268,7 +272,25 @@ export function buildUsersCollection({ incomingCollections, pluginOptions, schem
268
272
  },
269
273
  fields: [
270
274
  ...existingUserCollection?.fields ?? [],
271
- ...collectionFields ?? []
275
+ ...collectionFields ?? [],
276
+ ...checkPluginExists(pluginOptions.betterAuthOptions ?? {}, supportedBAPluginIds.passkey) ? [
277
+ {
278
+ name: 'managePasskeys',
279
+ type: 'ui',
280
+ admin: {
281
+ disableBulkEdit: true,
282
+ components: {
283
+ Field: {
284
+ path: 'payload-auth/better-auth/plugin/rsc#Passkeys',
285
+ serverProps: {
286
+ passkeyUserIdFieldName,
287
+ passkeySlug
288
+ }
289
+ }
290
+ }
291
+ }
292
+ }
293
+ ] : []
272
294
  ]
273
295
  };
274
296
  if (pluginOptions.users?.collectionOverrides) {
@@ -280,4 +302,4 @@ export function buildUsersCollection({ incomingCollections, pluginOptions, schem
280
302
  return usersCollection;
281
303
  }
282
304
 
283
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL3VzZXJzL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNoZWNrUGx1Z2luRXhpc3RzIH0gZnJvbSAnQC9iZXR0ZXItYXV0aC9wbHVnaW4vaGVscGVycy9jaGVjay1wbHVnaW4tZXhpc3RzJ1xuaW1wb3J0IHsgZ2V0RGVhZnVsdENvbGxlY3Rpb25TbHVnIH0gZnJvbSAnQC9iZXR0ZXItYXV0aC9wbHVnaW4vaGVscGVycy9nZXQtY29sbGVjdGlvbi1zbHVnJ1xuaW1wb3J0IHsgYmFNb2RlbEtleSwgZGVmYXVsdHMsIHN1cHBvcnRlZEJBUGx1Z2luSWRzIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHsgZ2V0QWxsUm9sZU9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9oZWxwZXJzL2dldC1hbGwtcm9sZXMnXG5pbXBvcnQgeyBhc3NlcnRBbGxTY2hlbWFGaWVsZHMgfSBmcm9tICcuLi91dGlscy9jb2xsZWN0aW9uLXNjaGVtYSdcbmltcG9ydCB7IGlzQWRtaW5PckN1cnJlbnRVc2VyVXBkYXRlV2l0aEFsbG93ZWRGaWVsZHMsIGlzQWRtaW5PckN1cnJlbnRVc2VyV2l0aFJvbGVzLCBpc0FkbWluV2l0aFJvbGVzIH0gZnJvbSAnLi4vdXRpbHMvcGF5bG9hZC1hY2Nlc3MnXG5pbXBvcnQgeyBnZXRDb2xsZWN0aW9uRmllbGRzIH0gZnJvbSAnLi4vdXRpbHMvdHJhbnNmb3JtLXNjaGVtYS1maWVsZHMtdG8tcGF5bG9hZCdcbmltcG9ydCB7IGJldHRlckF1dGhTdHJhdGVneSB9IGZyb20gJy4vYmV0dGVyLWF1dGgtc3RyYXRlZ3knXG5pbXBvcnQge1xuICBnZXRHZW5lcmF0ZUludml0ZVVybEVuZHBvaW50LFxuICBnZXRSZWZyZXNoVG9rZW5FbmRwb2ludCxcbiAgZ2V0U2VuZEludml0ZVVybEVuZHBvaW50LFxuICBnZXRTZXRBZG1pblJvbGVFbmRwb2ludCxcbiAgZ2V0U2lnbnVwRW5kcG9pbnRcbn0gZnJvbSAnLi9lbmRwb2ludHMnXG5pbXBvcnQge1xuICBnZXRTeW5jQWNjb3VudEhvb2ssXG4gIGdldEFmdGVyTG9naW5Ib29rLFxuICBnZXRBZnRlckxvZ291dEhvb2ssXG4gIGdldEJlZm9yZURlbGV0ZUhvb2ssXG4gIGdldEJlZm9yZUxvZ2luSG9vayxcbiAgZ2V0T25WZXJpZmllZENoYW5nZUhvb2tcbn0gZnJvbSAnLi9ob29rcydcblxuaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAncGF5bG9hZCdcbmltcG9ydCB0eXBlIHsgRmllbGRSdWxlIH0gZnJvbSAnLi4vdXRpbHMvbW9kZWwtZmllbGQtdHJhbnNmb3JtYXRpb25zJ1xuaW1wb3J0IHR5cGUgeyBCdWlsZENvbGxlY3Rpb25Qcm9wcywgRmllbGRPdmVycmlkZXMgfSBmcm9tICcuLi8uLi8uLi90eXBlcydcbmltcG9ydCB0eXBlIHsgVXNlciB9IGZyb20gJ0AvYmV0dGVyLWF1dGgvZ2VuZXJhdGVkLXR5cGVzJ1xuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRVc2Vyc0NvbGxlY3Rpb24oeyBpbmNvbWluZ0NvbGxlY3Rpb25zLCBwbHVnaW5PcHRpb25zLCBzY2hlbWEgfTogQnVpbGRDb2xsZWN0aW9uUHJvcHMpOiBDb2xsZWN0aW9uQ29uZmlnIHtcbiAgY29uc3QgdXNlclNsdWcgPSBnZXREZWFmdWx0Q29sbGVjdGlvblNsdWcoeyBtb2RlbEtleTogYmFNb2RlbEtleS51c2VyLCBwbHVnaW5PcHRpb25zIH0pXG4gIGNvbnN0IGFkbWluUm9sZXMgPSBwbHVnaW5PcHRpb25zLnVzZXJzPy5hZG1pblJvbGVzID8/IFtkZWZhdWx0cy5hZG1pblJvbGVdXG4gIGNvbnN0IGFsbFJvbGVPcHRpb25zID0gZ2V0QWxsUm9sZU9wdGlvbnMocGx1Z2luT3B0aW9ucylcbiAgY29uc3QgaGFzVXNlcm5hbWVQbHVnaW4gPSBjaGVja1BsdWdpbkV4aXN0cyhwbHVnaW5PcHRpb25zLmJldHRlckF1dGhPcHRpb25zID8/IHt9LCBzdXBwb3J0ZWRCQVBsdWdpbklkcy51c2VybmFtZSlcbiAgY29uc3QgZXhpc3RpbmdVc2VyQ29sbGVjdGlvbiA9IGluY29taW5nQ29sbGVjdGlvbnMuZmluZCgoY29sbGVjdGlvbikgPT4gY29sbGVjdGlvbi5zbHVnID09PSB1c2VyU2x1ZykgYXMgQ29sbGVjdGlvbkNvbmZpZyB8IHVuZGVmaW5lZFxuXG4gIC8vIFRPRE86IFJFVklFVyBUSElTXG4gIGNvbnN0IGFsbG93ZWRGaWVsZHMgPSBwbHVnaW5PcHRpb25zLnVzZXJzPy5hbGxvd2VkRmllbGRzID8/IFsnbmFtZSddXG5cbiAgY29uc3QgdXNlckZpZWxkUnVsZXM6IEZpZWxkUnVsZVtdID0gW1xuICAgIHtcbiAgICAgIGNvbmRpdGlvbjogKGZpZWxkKSA9PiBmaWVsZC50eXBlID09PSAnZGF0ZScsXG4gICAgICB0cmFuc2Zvcm06IChmaWVsZCkgPT4gKHtcbiAgICAgICAgLi4uZmllbGQsXG4gICAgICAgIHNhdmVUb0pXVDogZmFsc2UsXG4gICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgZGlzYWJsZUJ1bGtFZGl0OiB0cnVlLFxuICAgICAgICAgIGhpZGRlbjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBpbmRleDogdHJ1ZSxcbiAgICAgICAgbGFiZWw6ICh7IHQgfTogYW55KSA9PiB0KCdnZW5lcmFsOnVwZGF0ZWRBdCcpXG4gICAgICB9KVxuICAgIH1cbiAgXVxuXG4gIGNvbnN0IGZpZWxkT3ZlcnJpZGVzOiBGaWVsZE92ZXJyaWRlczxrZXlvZiBVc2VyPiA9IHtcbiAgICByb2xlOiAoZmllbGQpID0+ICh7XG4gICAgICB0eXBlOiAnc2VsZWN0JyxcbiAgICAgIG9wdGlvbnM6IGFsbFJvbGVPcHRpb25zLFxuICAgICAgZGVmYXVsdFZhbHVlOiBmaWVsZC5kZWZhdWx0VmFsdWUgPz8gZGVmYXVsdHMudXNlclJvbGUsXG4gICAgICBzYXZlVG9KV1Q6IHRydWUsXG4gICAgICBhZG1pbjogeyBkZXNjcmlwdGlvbjogJ1RoZSByb2xlIG9mIHRoZSB1c2VyJyB9XG4gICAgfSksXG4gICAgZW1haWw6ICgpID0+ICh7XG4gICAgICBpbmRleDogdHJ1ZSxcbiAgICAgIGFkbWluOiB7IGRlc2NyaXB0aW9uOiAnVGhlIGVtYWlsIG9mIHRoZSB1c2VyJyB9XG4gICAgfSksXG4gICAgZW1haWxWZXJpZmllZDogKGZpZWxkKSA9PiAoe1xuICAgICAgZGVmYXVsdFZhbHVlOiBmaWVsZC5kZWZhdWx0VmFsdWUgPz8gZmFsc2UsXG4gICAgICBzYXZlVG9KV1Q6IHRydWUsXG4gICAgICBhZG1pbjogeyBkZXNjcmlwdGlvbjogJ1doZXRoZXIgdGhlIGVtYWlsIG9mIHRoZSB1c2VyIGhhcyBiZWVuIHZlcmlmaWVkJyB9XG4gICAgfSksXG4gICAgbmFtZTogKCkgPT4gKHtcbiAgICAgIHNhdmVUb0pXVDogdHJ1ZSxcbiAgICAgIGFkbWluOiB7IGRlc2NyaXB0aW9uOiAnVXNlcnMgY2hvc2VuIGRpc3BsYXkgbmFtZScgfVxuICAgIH0pLFxuICAgIGltYWdlOiAoKSA9PiAoe1xuICAgICAgc2F2ZVRvSldUOiBmYWxzZSxcbiAgICAgIGFkbWluOiB7IGRlc2NyaXB0aW9uOiAnVGhlIGltYWdlIG9mIHRoZSB1c2VyJyB9XG4gICAgfSksXG4gICAgdHdvRmFjdG9yRW5hYmxlZDogKCkgPT4gKHtcbiAgICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgICBhZG1pbjoge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ1doZXRoZXIgdGhlIHVzZXIgaGFzIHR3byBmYWN0b3IgYXV0aGVudGljYXRpb24gZW5hYmxlZCcsXG4gICAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgICBGaWVsZDoge1xuICAgICAgICAgICAgcGF0aDogJ3BheWxvYWQtYXV0aC9iZXR0ZXItYXV0aC9wbHVnaW4vY2xpZW50I1R3b0ZhY3RvckF1dGgnXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSksXG4gICAgdXNlcm5hbWU6ICgpID0+ICh7XG4gICAgICBhZG1pbjogeyBkZXNjcmlwdGlvbjogJ1RoZSB1c2VybmFtZSBvZiB0aGUgdXNlcicgfVxuICAgIH0pLFxuICAgIGRpc3BsYXlVc2VybmFtZTogKCkgPT4gKHtcbiAgICAgIGFkbWluOiB7IGRlc2NyaXB0aW9uOiAnVGhlIGRpc3BsYXkgdXNlcm5hbWUgb2YgdGhlIHVzZXInIH1cbiAgICB9KSxcbiAgICBpc0Fub255bW91czogKCkgPT4gKHtcbiAgICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgICBhZG1pbjogeyBkZXNjcmlwdGlvbjogJ1doZXRoZXIgdGhlIHVzZXIgaXMgYW5vbnltb3VzLicgfVxuICAgIH0pLFxuICAgIHBob25lTnVtYmVyOiAoKSA9PiAoe1xuICAgICAgYWRtaW46IHsgZGVzY3JpcHRpb246ICdUaGUgcGhvbmUgbnVtYmVyIG9mIHRoZSB1c2VyJyB9XG4gICAgfSksXG4gICAgcGhvbmVOdW1iZXJWZXJpZmllZDogKCkgPT4gKHtcbiAgICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgICBhZG1pbjogeyBkZXNjcmlwdGlvbjogJ1doZXRoZXIgdGhlIHBob25lIG51bWJlciBvZiB0aGUgdXNlciBoYXMgYmVlbiB2ZXJpZmllZCcgfVxuICAgIH0pLFxuICAgIGJhbm5lZDogKCkgPT4gKHtcbiAgICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgICBhZG1pbjogeyBkZXNjcmlwdGlvbjogJ1doZXRoZXIgdGhlIHVzZXIgaXMgYmFubmVkIGZyb20gdGhlIHBsYXRmb3JtJyB9XG4gICAgfSksXG4gICAgYmFuUmVhc29uOiAoKSA9PiAoe1xuICAgICAgYWRtaW46IHsgZGVzY3JpcHRpb246ICdUaGUgcmVhc29uIGZvciB0aGUgYmFuJyB9XG4gICAgfSksXG4gICAgYmFuRXhwaXJlczogKCkgPT4gKHtcbiAgICAgIGFkbWluOiB7IGRlc2NyaXB0aW9uOiAnVGhlIGRhdGUgYW5kIHRpbWUgd2hlbiB0aGUgYmFuIHdpbGwgZXhwaXJlJyB9XG4gICAgfSksXG4gICAgbm9ybWFsaXplZEVtYWlsOiAoKSA9PiAoe1xuICAgICAgYWRtaW46IHtcbiAgICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVGhlIG5vcm1hbGl6ZWQgZW1haWwgb2YgdGhlIHVzZXInXG4gICAgICB9XG4gICAgfSksXG4gICAgc3RyaXBlQ3VzdG9tZXJJZDogKCkgPT4gKHtcbiAgICAgIGFkbWluOiB7XG4gICAgICAgIHJlYWRPbmx5OiB0cnVlLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1RoZSBTdHJpcGUgY3VzdG9tZXIgSUQgb2YgdGhlIHVzZXInXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0IGNvbGxlY3Rpb25GaWVsZHMgPSBnZXRDb2xsZWN0aW9uRmllbGRzKHtcbiAgICBzY2hlbWEsXG4gICAgZmllbGRSdWxlczogdXNlckZpZWxkUnVsZXMsXG4gICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZpZWxkT3ZlcnJpZGVzXG4gIH0pXG5cbiAgbGV0IHVzZXJzQ29sbGVjdGlvbjogQ29sbGVjdGlvbkNvbmZpZyA9IHtcbiAgICAuLi5leGlzdGluZ1VzZXJDb2xsZWN0aW9uLFxuICAgIHNsdWc6IHVzZXJTbHVnLFxuICAgIGFkbWluOiB7XG4gICAgICBkZWZhdWx0Q29sdW1uczogWydlbWFpbCddLFxuICAgICAgdXNlQXNUaXRsZTogJ2VtYWlsJyxcbiAgICAgIGdyb3VwOiBwbHVnaW5PcHRpb25zPy5jb2xsZWN0aW9uQWRtaW5Hcm91cCA/PyAnQXV0aCcsXG4gICAgICAuLi5leGlzdGluZ1VzZXJDb2xsZWN0aW9uPy5hZG1pbixcbiAgICAgIGhpZGRlbjogcGx1Z2luT3B0aW9ucy51c2Vycz8uaGlkZGVuID8/IGZhbHNlLFxuICAgICAgY29tcG9uZW50czoge1xuICAgICAgICBEZXNjcmlwdGlvbjoge1xuICAgICAgICAgIHBhdGg6ICdwYXlsb2FkLWF1dGgvYmV0dGVyLWF1dGgvcGx1Z2luL2NsaWVudCNBZG1pbkludml0ZUJ1dHRvbicsXG4gICAgICAgICAgY2xpZW50UHJvcHM6IHtcbiAgICAgICAgICAgIHJvbGVzOiBhbGxSb2xlT3B0aW9uc1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgdmlld3M6IHtcbiAgICAgICAgICBlZGl0OiB7XG4gICAgICAgICAgICBhZG1pbkJ1dHRvbnM6IHtcbiAgICAgICAgICAgICAgdGFiOiB7XG4gICAgICAgICAgICAgICAgQ29tcG9uZW50OiB7XG4gICAgICAgICAgICAgICAgICBwYXRoOiAncGF5bG9hZC1hdXRoL2JldHRlci1hdXRoL3BsdWdpbi9jbGllbnQjQWRtaW5CdXR0b25zJyxcbiAgICAgICAgICAgICAgICAgIGNsaWVudFByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgIHVzZXJTbHVnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBjb25kaXRpb246ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgIC8vIE9ubHkgc2hvdyB0aGUgaW1wZXJzb25hdGUgYnV0dG9uIGlmIHRoZSBhZG1pbiBwbHVnaW4gaXMgZW5hYmxlZFxuICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoZWNrUGx1Z2luRXhpc3RzKHBsdWdpbk9wdGlvbnMuYmV0dGVyQXV0aE9wdGlvbnMgPz8ge30sIHN1cHBvcnRlZEJBUGx1Z2luSWRzLmFkbWluKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgYWNjZXNzOiB7XG4gICAgICBhZG1pbjogKHsgcmVxIH0pID0+IGFkbWluUm9sZXMuaW5jbHVkZXMoKHJlcS51c2VyPy5yb2xlIGFzIHN0cmluZykgPz8gJ3VzZXInKSxcbiAgICAgIHJlYWQ6IGlzQWRtaW5PckN1cnJlbnRVc2VyV2l0aFJvbGVzKHsgYWRtaW5Sb2xlcywgaWRGaWVsZDogJ2lkJyB9KSxcbiAgICAgIGNyZWF0ZTogaXNBZG1pbldpdGhSb2xlcyh7IGFkbWluUm9sZXMgfSksXG4gICAgICBkZWxldGU6IGlzQWRtaW5PckN1cnJlbnRVc2VyV2l0aFJvbGVzKHsgYWRtaW5Sb2xlcywgaWRGaWVsZDogJ2lkJyB9KSxcbiAgICAgIHVwZGF0ZTogaXNBZG1pbk9yQ3VycmVudFVzZXJVcGRhdGVXaXRoQWxsb3dlZEZpZWxkcyh7XG4gICAgICAgIGFsbG93ZWRGaWVsZHMsXG4gICAgICAgIGFkbWluUm9sZXMsXG4gICAgICAgIHVzZXJTbHVnXG4gICAgICB9KSxcbiAgICAgIC4uLihleGlzdGluZ1VzZXJDb2xsZWN0aW9uPy5hY2Nlc3MgPz8ge30pXG4gICAgfSxcbiAgICBjdXN0b206IHtcbiAgICAgIC4uLihleGlzdGluZ1VzZXJDb2xsZWN0aW9uPy5jdXN0b20gPz8ge30pLFxuICAgICAgYmV0dGVyQXV0aE1vZGVsS2V5OiBiYU1vZGVsS2V5LnVzZXJcbiAgICB9LFxuICAgIGVuZHBvaW50czogW1xuICAgICAgLi4uKGV4aXN0aW5nVXNlckNvbGxlY3Rpb24/LmVuZHBvaW50cyA/IGV4aXN0aW5nVXNlckNvbGxlY3Rpb24uZW5kcG9pbnRzIDogW10pLFxuICAgICAgZ2V0UmVmcmVzaFRva2VuRW5kcG9pbnQodXNlclNsdWcpLFxuICAgICAgZ2V0U2V0QWRtaW5Sb2xlRW5kcG9pbnQocGx1Z2luT3B0aW9ucywgdXNlclNsdWcpLFxuICAgICAgZ2V0R2VuZXJhdGVJbnZpdGVVcmxFbmRwb2ludCh7XG4gICAgICAgIHJvbGVzOiBhbGxSb2xlT3B0aW9ucyxcbiAgICAgICAgcGx1Z2luT3B0aW9uc1xuICAgICAgfSksXG4gICAgICBnZXRTZW5kSW52aXRlVXJsRW5kcG9pbnQocGx1Z2luT3B0aW9ucyksXG4gICAgICBnZXRTaWdudXBFbmRwb2ludChwbHVnaW5PcHRpb25zKVxuICAgIF0sXG4gICAgaG9va3M6IHtcbiAgICAgIGJlZm9yZUNoYW5nZTogW1xuICAgICAgICAuLi4oZXhpc3RpbmdVc2VyQ29sbGVjdGlvbj8uaG9va3M/LmJlZm9yZUNoYW5nZSA/PyBbXSksXG4gICAgICAgIC4uLihwbHVnaW5PcHRpb25zLmRpc2FibGVEZWZhdWx0UGF5bG9hZEF1dGggPyBbXSA6IFtnZXRPblZlcmlmaWVkQ2hhbmdlSG9vaygpXSlcbiAgICAgIF0sXG4gICAgICBhZnRlckNoYW5nZTogW1xuICAgICAgICAuLi4oZXhpc3RpbmdVc2VyQ29sbGVjdGlvbj8uaG9va3M/LmFmdGVyQ2hhbmdlID8/IFtdKSxcbiAgICAgICAgLi4uKHBsdWdpbk9wdGlvbnMuZGlzYWJsZURlZmF1bHRQYXlsb2FkQXV0aCA/IFtdIDogW2dldFN5bmNBY2NvdW50SG9vaygpXSlcbiAgICAgIF0sXG4gICAgICBiZWZvcmVMb2dpbjogW1xuICAgICAgICAuLi4oZXhpc3RpbmdVc2VyQ29sbGVjdGlvbj8uaG9va3M/LmJlZm9yZUxvZ2luID8/IFtdKSxcbiAgICAgICAgLi4uKHBsdWdpbk9wdGlvbnMuZGlzYWJsZURlZmF1bHRQYXlsb2FkQXV0aCA/IFtdIDogW2dldEJlZm9yZUxvZ2luSG9vayhwbHVnaW5PcHRpb25zLmJldHRlckF1dGhPcHRpb25zID8/IHt9KV0pXG4gICAgICBdLFxuICAgICAgYWZ0ZXJMb2dpbjogW1xuICAgICAgICAuLi4oZXhpc3RpbmdVc2VyQ29sbGVjdGlvbj8uaG9va3M/LmFmdGVyTG9naW4gPz8gW10pLFxuICAgICAgICAuLi4ocGx1Z2luT3B0aW9ucy5kaXNhYmxlRGVmYXVsdFBheWxvYWRBdXRoID8gW10gOiBbZ2V0QWZ0ZXJMb2dpbkhvb2soKV0pXG4gICAgICBdLFxuICAgICAgYWZ0ZXJMb2dvdXQ6IFsuLi4oZXhpc3RpbmdVc2VyQ29sbGVjdGlvbj8uaG9va3M/LmFmdGVyTG9nb3V0ID8/IFtdKSwgZ2V0QWZ0ZXJMb2dvdXRIb29rKCldLFxuICAgICAgYmVmb3JlRGVsZXRlOiBbLi4uKGV4aXN0aW5nVXNlckNvbGxlY3Rpb24/Lmhvb2tzPy5iZWZvcmVEZWxldGUgPz8gW10pLCBnZXRCZWZvcmVEZWxldGVIb29rKCldXG4gICAgfSxcbiAgICBhdXRoOiB7XG4gICAgICAuLi4oZXhpc3RpbmdVc2VyQ29sbGVjdGlvbiAmJiB0eXBlb2YgZXhpc3RpbmdVc2VyQ29sbGVjdGlvbi5hdXRoID09PSAnb2JqZWN0JyA/IGV4aXN0aW5nVXNlckNvbGxlY3Rpb24uYXV0aCA6IHt9KSxcbiAgICAgIGRpc2FibGVMb2NhbFN0cmF0ZWd5OiBwbHVnaW5PcHRpb25zLmRpc2FibGVEZWZhdWx0UGF5bG9hZEF1dGggPyB0cnVlIDogdW5kZWZpbmVkLFxuICAgICAgLi4uKGhhc1VzZXJuYW1lUGx1Z2luICYmIHtcbiAgICAgICAgbG9naW5XaXRoVXNlcm5hbWU6IHtcbiAgICAgICAgICBhbGxvd0VtYWlsTG9naW46IHRydWUsXG4gICAgICAgICAgcmVxdWlyZUVtYWlsOiB0cnVlLFxuICAgICAgICAgIHJlcXVpcmVVc2VybmFtZTogZmFsc2VcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBzdHJhdGVnaWVzOiBbYmV0dGVyQXV0aFN0cmF0ZWd5KHVzZXJTbHVnKV1cbiAgICB9LFxuICAgIGZpZWxkczogWy4uLihleGlzdGluZ1VzZXJDb2xsZWN0aW9uPy5maWVsZHMgPz8gW10pLCAuLi4oY29sbGVjdGlvbkZpZWxkcyA/PyBbXSldXG4gIH1cblxuICBpZiAocGx1Z2luT3B0aW9ucy51c2Vycz8uY29sbGVjdGlvbk92ZXJyaWRlcykge1xuICAgIHVzZXJzQ29sbGVjdGlvbiA9IHBsdWdpbk9wdGlvbnMudXNlcnMuY29sbGVjdGlvbk92ZXJyaWRlcyh7XG4gICAgICBjb2xsZWN0aW9uOiB1c2Vyc0NvbGxlY3Rpb25cbiAgICB9KVxuICB9XG5cbiAgYXNzZXJ0QWxsU2NoZW1hRmllbGRzKHVzZXJzQ29sbGVjdGlvbiwgc2NoZW1hKVxuXG4gIHJldHVybiB1c2Vyc0NvbGxlY3Rpb25cbn1cbiJdLCJuYW1lcyI6WyJjaGVja1BsdWdpbkV4aXN0cyIsImdldERlYWZ1bHRDb2xsZWN0aW9uU2x1ZyIsImJhTW9kZWxLZXkiLCJkZWZhdWx0cyIsInN1cHBvcnRlZEJBUGx1Z2luSWRzIiwiZ2V0QWxsUm9sZU9wdGlvbnMiLCJhc3NlcnRBbGxTY2hlbWFGaWVsZHMiLCJpc0FkbWluT3JDdXJyZW50VXNlclVwZGF0ZVdpdGhBbGxvd2VkRmllbGRzIiwiaXNBZG1pbk9yQ3VycmVudFVzZXJXaXRoUm9sZXMiLCJpc0FkbWluV2l0aFJvbGVzIiwiZ2V0Q29sbGVjdGlvbkZpZWxkcyIsImJldHRlckF1dGhTdHJhdGVneSIsImdldEdlbmVyYXRlSW52aXRlVXJsRW5kcG9pbnQiLCJnZXRSZWZyZXNoVG9rZW5FbmRwb2ludCIsImdldFNlbmRJbnZpdGVVcmxFbmRwb2ludCIsImdldFNldEFkbWluUm9sZUVuZHBvaW50IiwiZ2V0U2lnbnVwRW5kcG9pbnQiLCJnZXRTeW5jQWNjb3VudEhvb2siLCJnZXRBZnRlckxvZ2luSG9vayIsImdldEFmdGVyTG9nb3V0SG9vayIsImdldEJlZm9yZURlbGV0ZUhvb2siLCJnZXRCZWZvcmVMb2dpbkhvb2siLCJnZXRPblZlcmlmaWVkQ2hhbmdlSG9vayIsImJ1aWxkVXNlcnNDb2xsZWN0aW9uIiwiaW5jb21pbmdDb2xsZWN0aW9ucyIsInBsdWdpbk9wdGlvbnMiLCJzY2hlbWEiLCJ1c2VyU2x1ZyIsIm1vZGVsS2V5IiwidXNlciIsImFkbWluUm9sZXMiLCJ1c2VycyIsImFkbWluUm9sZSIsImFsbFJvbGVPcHRpb25zIiwiaGFzVXNlcm5hbWVQbHVnaW4iLCJiZXR0ZXJBdXRoT3B0aW9ucyIsInVzZXJuYW1lIiwiZXhpc3RpbmdVc2VyQ29sbGVjdGlvbiIsImZpbmQiLCJjb2xsZWN0aW9uIiwic2x1ZyIsImFsbG93ZWRGaWVsZHMiLCJ1c2VyRmllbGRSdWxlcyIsImNvbmRpdGlvbiIsImZpZWxkIiwidHlwZSIsInRyYW5zZm9ybSIsInNhdmVUb0pXVCIsImFkbWluIiwiZGlzYWJsZUJ1bGtFZGl0IiwiaGlkZGVuIiwiaW5kZXgiLCJsYWJlbCIsInQiLCJmaWVsZE92ZXJyaWRlcyIsInJvbGUiLCJvcHRpb25zIiwiZGVmYXVsdFZhbHVlIiwidXNlclJvbGUiLCJkZXNjcmlwdGlvbiIsImVtYWlsIiwiZW1haWxWZXJpZmllZCIsIm5hbWUiLCJpbWFnZSIsInR3b0ZhY3RvckVuYWJsZWQiLCJjb21wb25lbnRzIiwiRmllbGQiLCJwYXRoIiwiZGlzcGxheVVzZXJuYW1lIiwiaXNBbm9ueW1vdXMiLCJwaG9uZU51bWJlciIsInBob25lTnVtYmVyVmVyaWZpZWQiLCJiYW5uZWQiLCJiYW5SZWFzb24iLCJiYW5FeHBpcmVzIiwibm9ybWFsaXplZEVtYWlsIiwicmVhZE9ubHkiLCJzdHJpcGVDdXN0b21lcklkIiwiY29sbGVjdGlvbkZpZWxkcyIsImZpZWxkUnVsZXMiLCJhZGRpdGlvbmFsUHJvcGVydGllcyIsInVzZXJzQ29sbGVjdGlvbiIsImRlZmF1bHRDb2x1bW5zIiwidXNlQXNUaXRsZSIsImdyb3VwIiwiY29sbGVjdGlvbkFkbWluR3JvdXAiLCJEZXNjcmlwdGlvbiIsImNsaWVudFByb3BzIiwicm9sZXMiLCJ2aWV3cyIsImVkaXQiLCJhZG1pbkJ1dHRvbnMiLCJ0YWIiLCJDb21wb25lbnQiLCJhY2Nlc3MiLCJyZXEiLCJpbmNsdWRlcyIsInJlYWQiLCJpZEZpZWxkIiwiY3JlYXRlIiwiZGVsZXRlIiwidXBkYXRlIiwiY3VzdG9tIiwiYmV0dGVyQXV0aE1vZGVsS2V5IiwiZW5kcG9pbnRzIiwiaG9va3MiLCJiZWZvcmVDaGFuZ2UiLCJkaXNhYmxlRGVmYXVsdFBheWxvYWRBdXRoIiwiYWZ0ZXJDaGFuZ2UiLCJiZWZvcmVMb2dpbiIsImFmdGVyTG9naW4iLCJhZnRlckxvZ291dCIsImJlZm9yZURlbGV0ZSIsImF1dGgiLCJkaXNhYmxlTG9jYWxTdHJhdGVneSIsInVuZGVmaW5lZCIsImxvZ2luV2l0aFVzZXJuYW1lIiwiYWxsb3dFbWFpbExvZ2luIiwicmVxdWlyZUVtYWlsIiwicmVxdWlyZVVzZXJuYW1lIiwic3RyYXRlZ2llcyIsImZpZWxkcyIsImNvbGxlY3Rpb25PdmVycmlkZXMi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
305
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL3VzZXJzL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNoZWNrUGx1Z2luRXhpc3RzIH0gZnJvbSAnQC9iZXR0ZXItYXV0aC9wbHVnaW4vaGVscGVycy9jaGVjay1wbHVnaW4tZXhpc3RzJ1xuaW1wb3J0IHsgZ2V0RGVhZnVsdENvbGxlY3Rpb25TbHVnIH0gZnJvbSAnQC9iZXR0ZXItYXV0aC9wbHVnaW4vaGVscGVycy9nZXQtY29sbGVjdGlvbi1zbHVnJ1xuaW1wb3J0IHsgYmFNb2RlbEZpZWxkS2V5cywgYmFNb2RlbEtleSwgZGVmYXVsdHMsIHN1cHBvcnRlZEJBUGx1Z2luSWRzIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHsgZ2V0QWxsUm9sZU9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9oZWxwZXJzL2dldC1hbGwtcm9sZXMnXG5pbXBvcnQgeyBhc3NlcnRBbGxTY2hlbWFGaWVsZHMsIGdldFNjaGVtYUZpZWxkTmFtZSB9IGZyb20gJy4uL3V0aWxzL2NvbGxlY3Rpb24tc2NoZW1hJ1xuaW1wb3J0IHsgaXNBZG1pbk9yQ3VycmVudFVzZXJVcGRhdGVXaXRoQWxsb3dlZEZpZWxkcywgaXNBZG1pbk9yQ3VycmVudFVzZXJXaXRoUm9sZXMsIGlzQWRtaW5XaXRoUm9sZXMgfSBmcm9tICcuLi91dGlscy9wYXlsb2FkLWFjY2VzcydcbmltcG9ydCB7IGdldENvbGxlY3Rpb25GaWVsZHMgfSBmcm9tICcuLi91dGlscy90cmFuc2Zvcm0tc2NoZW1hLWZpZWxkcy10by1wYXlsb2FkJ1xuaW1wb3J0IHsgYmV0dGVyQXV0aFN0cmF0ZWd5IH0gZnJvbSAnLi9iZXR0ZXItYXV0aC1zdHJhdGVneSdcbmltcG9ydCB7IGdldEdlbmVyYXRlSW52aXRlVXJsRW5kcG9pbnQsIGdldFJlZnJlc2hUb2tlbkVuZHBvaW50LCBnZXRTZW5kSW52aXRlVXJsRW5kcG9pbnQsIGdldFNldEFkbWluUm9sZUVuZHBvaW50IH0gZnJvbSAnLi9lbmRwb2ludHMnXG5pbXBvcnQge1xuICBnZXRTeW5jQWNjb3VudEhvb2ssXG4gIGdldEFmdGVyTG9naW5Ib29rLFxuICBnZXRBZnRlckxvZ291dEhvb2ssXG4gIGdldEJlZm9yZURlbGV0ZUhvb2ssXG4gIGdldEJlZm9yZUxvZ2luSG9vayxcbiAgZ2V0T25WZXJpZmllZENoYW5nZUhvb2tcbn0gZnJvbSAnLi9ob29rcydcblxuaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uQ29uZmlnLCBVSUZpZWxkIH0gZnJvbSAncGF5bG9hZCdcbmltcG9ydCB0eXBlIHsgRmllbGRSdWxlIH0gZnJvbSAnLi4vdXRpbHMvbW9kZWwtZmllbGQtdHJhbnNmb3JtYXRpb25zJ1xuaW1wb3J0IHR5cGUgeyBCdWlsZENvbGxlY3Rpb25Qcm9wcywgRmllbGRPdmVycmlkZXMgfSBmcm9tICcuLi8uLi8uLi90eXBlcydcbmltcG9ydCB0eXBlIHsgVXNlciB9IGZyb20gJ0AvYmV0dGVyLWF1dGgvZ2VuZXJhdGVkLXR5cGVzJ1xuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRVc2Vyc0NvbGxlY3Rpb24oeyBpbmNvbWluZ0NvbGxlY3Rpb25zLCBwbHVnaW5PcHRpb25zLCBjb2xsZWN0aW9uU2NoZW1hTWFwLCBzY2hlbWEgfTogQnVpbGRDb2xsZWN0aW9uUHJvcHMpOiBDb2xsZWN0aW9uQ29uZmlnIHtcbiAgY29uc3QgdXNlclNsdWcgPSBnZXREZWFmdWx0Q29sbGVjdGlvblNsdWcoeyBtb2RlbEtleTogYmFNb2RlbEtleS51c2VyLCBwbHVnaW5PcHRpb25zIH0pXG4gIGNvbnN0IHBhc3NrZXlTbHVnID0gZ2V0RGVhZnVsdENvbGxlY3Rpb25TbHVnKHsgbW9kZWxLZXk6IGJhTW9kZWxLZXkucGFzc2tleSwgcGx1Z2luT3B0aW9ucyB9KVxuICBjb25zdCBwYXNza2V5VXNlcklkRmllbGROYW1lID0gZ2V0U2NoZW1hRmllbGROYW1lKGNvbGxlY3Rpb25TY2hlbWFNYXAsIGJhTW9kZWxLZXkucGFzc2tleSwgYmFNb2RlbEZpZWxkS2V5cy5wYXNza2V5LnVzZXJJZClcbiAgY29uc3QgYWRtaW5Sb2xlcyA9IHBsdWdpbk9wdGlvbnMudXNlcnM/LmFkbWluUm9sZXMgPz8gW2RlZmF1bHRzLmFkbWluUm9sZV1cbiAgY29uc3QgYWxsUm9sZU9wdGlvbnMgPSBnZXRBbGxSb2xlT3B0aW9ucyhwbHVnaW5PcHRpb25zKVxuICBjb25zdCBoYXNVc2VybmFtZVBsdWdpbiA9IGNoZWNrUGx1Z2luRXhpc3RzKHBsdWdpbk9wdGlvbnMuYmV0dGVyQXV0aE9wdGlvbnMgPz8ge30sIHN1cHBvcnRlZEJBUGx1Z2luSWRzLnVzZXJuYW1lKVxuICBjb25zdCBleGlzdGluZ1VzZXJDb2xsZWN0aW9uID0gaW5jb21pbmdDb2xsZWN0aW9ucy5maW5kKChjb2xsZWN0aW9uKSA9PiBjb2xsZWN0aW9uLnNsdWcgPT09IHVzZXJTbHVnKSBhcyBDb2xsZWN0aW9uQ29uZmlnIHwgdW5kZWZpbmVkXG5cbiAgLy8gVE9ETzogUkVWSUVXIFRISVNcbiAgY29uc3QgYWxsb3dlZEZpZWxkcyA9IHBsdWdpbk9wdGlvbnMudXNlcnM/LmFsbG93ZWRGaWVsZHMgPz8gWyduYW1lJ11cblxuICBjb25zdCB1c2VyRmllbGRSdWxlczogRmllbGRSdWxlW10gPSBbXG4gICAge1xuICAgICAgY29uZGl0aW9uOiAoZmllbGQpID0+IGZpZWxkLmZpZWxkTmFtZSA9PT0gJ2NyZWF0ZWRBdCcgfHwgZmllbGQuZmllbGROYW1lID09PSAndXBkYXRlZEF0JyxcbiAgICAgIHRyYW5zZm9ybTogKGZpZWxkKSA9PiAoe1xuICAgICAgICAuLi5maWVsZCxcbiAgICAgICAgc2F2ZVRvSldUOiBmYWxzZSxcbiAgICAgICAgYWRtaW46IHtcbiAgICAgICAgICBkaXNhYmxlQnVsa0VkaXQ6IHRydWUsXG4gICAgICAgICAgaGlkZGVuOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIGluZGV4OiB0cnVlLFxuICAgICAgICBsYWJlbDogKHsgdCB9OiBhbnkpID0+IGZpZWxkLmZpZWxkTmFtZSA9PT0gJ2NyZWF0ZWRBdCcgPyB0KCdnZW5lcmFsOmNyZWF0ZWRBdCcpIDogdCgnZ2VuZXJhbDp1cGRhdGVkQXQnKVxuICAgICAgfSlcbiAgICB9XG4gIF1cblxuICBjb25zdCBmaWVsZE92ZXJyaWRlczogRmllbGRPdmVycmlkZXM8a2V5b2YgVXNlcj4gPSB7XG4gICAgcm9sZTogKGZpZWxkKSA9PiAoe1xuICAgICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgICBvcHRpb25zOiBhbGxSb2xlT3B0aW9ucyxcbiAgICAgIGRlZmF1bHRWYWx1ZTogZmllbGQuZGVmYXVsdFZhbHVlID8/IGRlZmF1bHRzLnVzZXJSb2xlLFxuICAgICAgc2F2ZVRvSldUOiB0cnVlLFxuICAgICAgYWRtaW46IHsgZGVzY3JpcHRpb246ICdUaGUgcm9sZSBvZiB0aGUgdXNlcicgfVxuICAgIH0pLFxuICAgIGVtYWlsOiAoKSA9PiAoe1xuICAgICAgaW5kZXg6IHRydWUsXG4gICAgICBhZG1pbjogeyBkZXNjcmlwdGlvbjogJ1RoZSBlbWFpbCBvZiB0aGUgdXNlcicgfVxuICAgIH0pLFxuICAgIGVtYWlsVmVyaWZpZWQ6IChmaWVsZCkgPT4gKHtcbiAgICAgIGRlZmF1bHRWYWx1ZTogZmllbGQuZGVmYXVsdFZhbHVlID8/IGZhbHNlLFxuICAgICAgc2F2ZVRvSldUOiB0cnVlLFxuICAgICAgYWRtaW46IHsgZGVzY3JpcHRpb246ICdXaGV0aGVyIHRoZSBlbWFpbCBvZiB0aGUgdXNlciBoYXMgYmVlbiB2ZXJpZmllZCcgfVxuICAgIH0pLFxuICAgIG5hbWU6ICgpID0+ICh7XG4gICAgICBzYXZlVG9KV1Q6IHRydWUsXG4gICAgICBhZG1pbjogeyBkZXNjcmlwdGlvbjogJ1VzZXJzIGNob3NlbiBkaXNwbGF5IG5hbWUnIH1cbiAgICB9KSxcbiAgICBpbWFnZTogKCkgPT4gKHtcbiAgICAgIHNhdmVUb0pXVDogZmFsc2UsXG4gICAgICBhZG1pbjogeyBkZXNjcmlwdGlvbjogJ1RoZSBpbWFnZSBvZiB0aGUgdXNlcicgfVxuICAgIH0pLFxuICAgIHR3b0ZhY3RvckVuYWJsZWQ6ICgpID0+ICh7XG4gICAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgICAgYWRtaW46IHtcbiAgICAgICAgZGVzY3JpcHRpb246ICdXaGV0aGVyIHRoZSB1c2VyIGhhcyB0d28gZmFjdG9yIGF1dGhlbnRpY2F0aW9uIGVuYWJsZWQnLFxuICAgICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgICAgRmllbGQ6IHtcbiAgICAgICAgICAgIHBhdGg6ICdwYXlsb2FkLWF1dGgvYmV0dGVyLWF1dGgvcGx1Z2luL2NsaWVudCNUd29GYWN0b3JBdXRoJ1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pLFxuICAgIHVzZXJuYW1lOiAoKSA9PiAoe1xuICAgICAgYWRtaW46IHsgZGVzY3JpcHRpb246ICdUaGUgdXNlcm5hbWUgb2YgdGhlIHVzZXInIH1cbiAgICB9KSxcbiAgICBkaXNwbGF5VXNlcm5hbWU6ICgpID0+ICh7XG4gICAgICBhZG1pbjogeyBkZXNjcmlwdGlvbjogJ1RoZSBkaXNwbGF5IHVzZXJuYW1lIG9mIHRoZSB1c2VyJyB9XG4gICAgfSksXG4gICAgaXNBbm9ueW1vdXM6ICgpID0+ICh7XG4gICAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgICAgYWRtaW46IHsgZGVzY3JpcHRpb246ICdXaGV0aGVyIHRoZSB1c2VyIGlzIGFub255bW91cy4nIH1cbiAgICB9KSxcbiAgICBwaG9uZU51bWJlcjogKCkgPT4gKHtcbiAgICAgIGFkbWluOiB7IGRlc2NyaXB0aW9uOiAnVGhlIHBob25lIG51bWJlciBvZiB0aGUgdXNlcicgfVxuICAgIH0pLFxuICAgIHBob25lTnVtYmVyVmVyaWZpZWQ6ICgpID0+ICh7XG4gICAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgICAgYWRtaW46IHsgZGVzY3JpcHRpb246ICdXaGV0aGVyIHRoZSBwaG9uZSBudW1iZXIgb2YgdGhlIHVzZXIgaGFzIGJlZW4gdmVyaWZpZWQnIH1cbiAgICB9KSxcbiAgICBiYW5uZWQ6ICgpID0+ICh7XG4gICAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgICAgYWRtaW46IHsgZGVzY3JpcHRpb246ICdXaGV0aGVyIHRoZSB1c2VyIGlzIGJhbm5lZCBmcm9tIHRoZSBwbGF0Zm9ybScgfVxuICAgIH0pLFxuICAgIGJhblJlYXNvbjogKCkgPT4gKHtcbiAgICAgIGFkbWluOiB7IGRlc2NyaXB0aW9uOiAnVGhlIHJlYXNvbiBmb3IgdGhlIGJhbicgfVxuICAgIH0pLFxuICAgIGJhbkV4cGlyZXM6ICgpID0+ICh7XG4gICAgICBhZG1pbjogeyBkZXNjcmlwdGlvbjogJ1RoZSBkYXRlIGFuZCB0aW1lIHdoZW4gdGhlIGJhbiB3aWxsIGV4cGlyZScgfVxuICAgIH0pLFxuICAgIG5vcm1hbGl6ZWRFbWFpbDogKCkgPT4gKHtcbiAgICAgIGFkbWluOiB7XG4gICAgICAgIHJlYWRPbmx5OiB0cnVlLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1RoZSBub3JtYWxpemVkIGVtYWlsIG9mIHRoZSB1c2VyJ1xuICAgICAgfVxuICAgIH0pLFxuICAgIHN0cmlwZUN1c3RvbWVySWQ6ICgpID0+ICh7XG4gICAgICBhZG1pbjoge1xuICAgICAgICByZWFkT25seTogdHJ1ZSxcbiAgICAgICAgZGVzY3JpcHRpb246ICdUaGUgU3RyaXBlIGN1c3RvbWVyIElEIG9mIHRoZSB1c2VyJ1xuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBjb25zdCBjb2xsZWN0aW9uRmllbGRzID0gZ2V0Q29sbGVjdGlvbkZpZWxkcyh7XG4gICAgc2NoZW1hLFxuICAgIGZpZWxkUnVsZXM6IHVzZXJGaWVsZFJ1bGVzLFxuICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmaWVsZE92ZXJyaWRlc1xuICB9KVxuXG4gIGxldCB1c2Vyc0NvbGxlY3Rpb246IENvbGxlY3Rpb25Db25maWcgPSB7XG4gICAgLi4uZXhpc3RpbmdVc2VyQ29sbGVjdGlvbixcbiAgICBzbHVnOiB1c2VyU2x1ZyxcbiAgICBhZG1pbjoge1xuICAgICAgZGVmYXVsdENvbHVtbnM6IFsnZW1haWwnXSxcbiAgICAgIHVzZUFzVGl0bGU6ICdlbWFpbCcsXG4gICAgICBncm91cDogcGx1Z2luT3B0aW9ucz8uY29sbGVjdGlvbkFkbWluR3JvdXAgPz8gJ0F1dGgnLFxuICAgICAgLi4uZXhpc3RpbmdVc2VyQ29sbGVjdGlvbj8uYWRtaW4sXG4gICAgICBoaWRkZW46IHBsdWdpbk9wdGlvbnMudXNlcnM/LmhpZGRlbiA/PyBmYWxzZSxcbiAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgRGVzY3JpcHRpb246IHtcbiAgICAgICAgICBwYXRoOiAncGF5bG9hZC1hdXRoL2JldHRlci1hdXRoL3BsdWdpbi9jbGllbnQjQWRtaW5JbnZpdGVCdXR0b24nLFxuICAgICAgICAgIGNsaWVudFByb3BzOiB7XG4gICAgICAgICAgICByb2xlczogYWxsUm9sZU9wdGlvbnNcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHZpZXdzOiB7XG4gICAgICAgICAgZWRpdDoge1xuICAgICAgICAgICAgYWRtaW5CdXR0b25zOiB7XG4gICAgICAgICAgICAgIHRhYjoge1xuICAgICAgICAgICAgICAgIENvbXBvbmVudDoge1xuICAgICAgICAgICAgICAgICAgcGF0aDogJ3BheWxvYWQtYXV0aC9iZXR0ZXItYXV0aC9wbHVnaW4vY2xpZW50I0FkbWluQnV0dG9ucycsXG4gICAgICAgICAgICAgICAgICBjbGllbnRQcm9wczoge1xuICAgICAgICAgICAgICAgICAgICB1c2VyU2x1Z1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgY29uZGl0aW9uOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAvLyBPbmx5IHNob3cgdGhlIGltcGVyc29uYXRlIGJ1dHRvbiBpZiB0aGUgYWRtaW4gcGx1Z2luIGlzIGVuYWJsZWRcbiAgICAgICAgICAgICAgICAgIHJldHVybiBjaGVja1BsdWdpbkV4aXN0cyhwbHVnaW5PcHRpb25zLmJldHRlckF1dGhPcHRpb25zID8/IHt9LCBzdXBwb3J0ZWRCQVBsdWdpbklkcy5hZG1pbilcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9LFxuICAgIGFjY2Vzczoge1xuICAgICAgYWRtaW46ICh7IHJlcSB9KSA9PiBhZG1pblJvbGVzLmluY2x1ZGVzKChyZXEudXNlcj8ucm9sZSBhcyBzdHJpbmcpID8/ICd1c2VyJyksXG4gICAgICByZWFkOiBpc0FkbWluT3JDdXJyZW50VXNlcldpdGhSb2xlcyh7IGFkbWluUm9sZXMsIGlkRmllbGQ6ICdpZCcgfSksXG4gICAgICBjcmVhdGU6IGlzQWRtaW5XaXRoUm9sZXMoeyBhZG1pblJvbGVzIH0pLFxuICAgICAgZGVsZXRlOiBpc0FkbWluT3JDdXJyZW50VXNlcldpdGhSb2xlcyh7IGFkbWluUm9sZXMsIGlkRmllbGQ6ICdpZCcgfSksXG4gICAgICB1cGRhdGU6IGlzQWRtaW5PckN1cnJlbnRVc2VyVXBkYXRlV2l0aEFsbG93ZWRGaWVsZHMoe1xuICAgICAgICBhbGxvd2VkRmllbGRzLFxuICAgICAgICBhZG1pblJvbGVzLFxuICAgICAgICB1c2VyU2x1Z1xuICAgICAgfSksXG4gICAgICAuLi4oZXhpc3RpbmdVc2VyQ29sbGVjdGlvbj8uYWNjZXNzID8/IHt9KVxuICAgIH0sXG4gICAgY3VzdG9tOiB7XG4gICAgICAuLi4oZXhpc3RpbmdVc2VyQ29sbGVjdGlvbj8uY3VzdG9tID8/IHt9KSxcbiAgICAgIGJldHRlckF1dGhNb2RlbEtleTogYmFNb2RlbEtleS51c2VyXG4gICAgfSxcbiAgICBlbmRwb2ludHM6IFtcbiAgICAgIC4uLihleGlzdGluZ1VzZXJDb2xsZWN0aW9uPy5lbmRwb2ludHMgPyBleGlzdGluZ1VzZXJDb2xsZWN0aW9uLmVuZHBvaW50cyA6IFtdKSxcbiAgICAgIGdldFJlZnJlc2hUb2tlbkVuZHBvaW50KHVzZXJTbHVnKSxcbiAgICAgIGdldFNldEFkbWluUm9sZUVuZHBvaW50KHBsdWdpbk9wdGlvbnMsIHVzZXJTbHVnKSxcbiAgICAgIGdldEdlbmVyYXRlSW52aXRlVXJsRW5kcG9pbnQoe1xuICAgICAgICByb2xlczogYWxsUm9sZU9wdGlvbnMsXG4gICAgICAgIHBsdWdpbk9wdGlvbnNcbiAgICAgIH0pLFxuICAgICAgZ2V0U2VuZEludml0ZVVybEVuZHBvaW50KHBsdWdpbk9wdGlvbnMpXG4gICAgXSxcbiAgICBob29rczoge1xuICAgICAgYmVmb3JlQ2hhbmdlOiBbXG4gICAgICAgIC4uLihleGlzdGluZ1VzZXJDb2xsZWN0aW9uPy5ob29rcz8uYmVmb3JlQ2hhbmdlID8/IFtdKSxcbiAgICAgICAgLi4uKHBsdWdpbk9wdGlvbnMuZGlzYWJsZURlZmF1bHRQYXlsb2FkQXV0aCA/IFtdIDogW2dldE9uVmVyaWZpZWRDaGFuZ2VIb29rKCldKVxuICAgICAgXSxcbiAgICAgIGFmdGVyQ2hhbmdlOiBbXG4gICAgICAgIC4uLihleGlzdGluZ1VzZXJDb2xsZWN0aW9uPy5ob29rcz8uYWZ0ZXJDaGFuZ2UgPz8gW10pLFxuICAgICAgICAuLi4ocGx1Z2luT3B0aW9ucy5kaXNhYmxlRGVmYXVsdFBheWxvYWRBdXRoID8gW10gOiBbZ2V0U3luY0FjY291bnRIb29rKCldKVxuICAgICAgXSxcbiAgICAgIGJlZm9yZUxvZ2luOiBbXG4gICAgICAgIC4uLihleGlzdGluZ1VzZXJDb2xsZWN0aW9uPy5ob29rcz8uYmVmb3JlTG9naW4gPz8gW10pLFxuICAgICAgICAuLi4ocGx1Z2luT3B0aW9ucy5kaXNhYmxlRGVmYXVsdFBheWxvYWRBdXRoID8gW10gOiBbZ2V0QmVmb3JlTG9naW5Ib29rKHBsdWdpbk9wdGlvbnMuYmV0dGVyQXV0aE9wdGlvbnMgPz8ge30pXSlcbiAgICAgIF0sXG4gICAgICBhZnRlckxvZ2luOiBbXG4gICAgICAgIC4uLihleGlzdGluZ1VzZXJDb2xsZWN0aW9uPy5ob29rcz8uYWZ0ZXJMb2dpbiA/PyBbXSksXG4gICAgICAgIC4uLihwbHVnaW5PcHRpb25zLmRpc2FibGVEZWZhdWx0UGF5bG9hZEF1dGggPyBbXSA6IFtnZXRBZnRlckxvZ2luSG9vaygpXSlcbiAgICAgIF0sXG4gICAgICBhZnRlckxvZ291dDogWy4uLihleGlzdGluZ1VzZXJDb2xsZWN0aW9uPy5ob29rcz8uYWZ0ZXJMb2dvdXQgPz8gW10pLCBnZXRBZnRlckxvZ291dEhvb2soKV0sXG4gICAgICBiZWZvcmVEZWxldGU6IFsuLi4oZXhpc3RpbmdVc2VyQ29sbGVjdGlvbj8uaG9va3M/LmJlZm9yZURlbGV0ZSA/PyBbXSksIGdldEJlZm9yZURlbGV0ZUhvb2soKV1cbiAgICB9LFxuICAgIGF1dGg6IHtcbiAgICAgIC4uLihleGlzdGluZ1VzZXJDb2xsZWN0aW9uICYmIHR5cGVvZiBleGlzdGluZ1VzZXJDb2xsZWN0aW9uLmF1dGggPT09ICdvYmplY3QnID8gZXhpc3RpbmdVc2VyQ29sbGVjdGlvbi5hdXRoIDoge30pLFxuICAgICAgZGlzYWJsZUxvY2FsU3RyYXRlZ3k6IHBsdWdpbk9wdGlvbnMuZGlzYWJsZURlZmF1bHRQYXlsb2FkQXV0aCA/IHRydWUgOiB1bmRlZmluZWQsXG4gICAgICAuLi4oaGFzVXNlcm5hbWVQbHVnaW4gJiYge1xuICAgICAgICBsb2dpbldpdGhVc2VybmFtZToge1xuICAgICAgICAgIGFsbG93RW1haWxMb2dpbjogdHJ1ZSxcbiAgICAgICAgICByZXF1aXJlRW1haWw6IHRydWUsXG4gICAgICAgICAgcmVxdWlyZVVzZXJuYW1lOiBmYWxzZVxuICAgICAgICB9XG4gICAgICB9KSxcbiAgICAgIHN0cmF0ZWdpZXM6IFtiZXR0ZXJBdXRoU3RyYXRlZ3kodXNlclNsdWcpXVxuICAgIH0sXG4gICAgZmllbGRzOiBbXG4gICAgICAuLi4oZXhpc3RpbmdVc2VyQ29sbGVjdGlvbj8uZmllbGRzID8/IFtdKSxcbiAgICAgIC4uLihjb2xsZWN0aW9uRmllbGRzID8/IFtdKSxcbiAgICAgIC4uLihjaGVja1BsdWdpbkV4aXN0cyhwbHVnaW5PcHRpb25zLmJldHRlckF1dGhPcHRpb25zID8/IHt9LCBzdXBwb3J0ZWRCQVBsdWdpbklkcy5wYXNza2V5KVxuICAgICAgICA/IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ21hbmFnZVBhc3NrZXlzJyxcbiAgICAgICAgICAgICAgdHlwZTogJ3VpJyBhcyBjb25zdCxcbiAgICAgICAgICAgICAgYWRtaW46IHtcbiAgICAgICAgICAgICAgICBkaXNhYmxlQnVsa0VkaXQ6IHRydWUsXG4gICAgICAgICAgICAgICAgY29tcG9uZW50czoge1xuICAgICAgICAgICAgICAgICAgRmllbGQ6IHtcbiAgICAgICAgICAgICAgICAgICAgcGF0aDogJ3BheWxvYWQtYXV0aC9iZXR0ZXItYXV0aC9wbHVnaW4vcnNjI1Bhc3NrZXlzJyxcbiAgICAgICAgICAgICAgICAgICAgc2VydmVyUHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgICAgICBwYXNza2V5VXNlcklkRmllbGROYW1lLFxuICAgICAgICAgICAgICAgICAgICAgIHBhc3NrZXlTbHVnXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gYXMgVUlGaWVsZFxuICAgICAgICAgIF1cbiAgICAgICAgOiBbXSlcbiAgICBdXG4gIH1cblxuICBpZiAocGx1Z2luT3B0aW9ucy51c2Vycz8uY29sbGVjdGlvbk92ZXJyaWRlcykge1xuICAgIHVzZXJzQ29sbGVjdGlvbiA9IHBsdWdpbk9wdGlvbnMudXNlcnMuY29sbGVjdGlvbk92ZXJyaWRlcyh7XG4gICAgICBjb2xsZWN0aW9uOiB1c2Vyc0NvbGxlY3Rpb25cbiAgICB9KVxuICB9XG5cbiAgYXNzZXJ0QWxsU2NoZW1hRmllbGRzKHVzZXJzQ29sbGVjdGlvbiwgc2NoZW1hKVxuXG4gIHJldHVybiB1c2Vyc0NvbGxlY3Rpb25cbn1cbiJdLCJuYW1lcyI6WyJjaGVja1BsdWdpbkV4aXN0cyIsImdldERlYWZ1bHRDb2xsZWN0aW9uU2x1ZyIsImJhTW9kZWxGaWVsZEtleXMiLCJiYU1vZGVsS2V5IiwiZGVmYXVsdHMiLCJzdXBwb3J0ZWRCQVBsdWdpbklkcyIsImdldEFsbFJvbGVPcHRpb25zIiwiYXNzZXJ0QWxsU2NoZW1hRmllbGRzIiwiZ2V0U2NoZW1hRmllbGROYW1lIiwiaXNBZG1pbk9yQ3VycmVudFVzZXJVcGRhdGVXaXRoQWxsb3dlZEZpZWxkcyIsImlzQWRtaW5PckN1cnJlbnRVc2VyV2l0aFJvbGVzIiwiaXNBZG1pbldpdGhSb2xlcyIsImdldENvbGxlY3Rpb25GaWVsZHMiLCJiZXR0ZXJBdXRoU3RyYXRlZ3kiLCJnZXRHZW5lcmF0ZUludml0ZVVybEVuZHBvaW50IiwiZ2V0UmVmcmVzaFRva2VuRW5kcG9pbnQiLCJnZXRTZW5kSW52aXRlVXJsRW5kcG9pbnQiLCJnZXRTZXRBZG1pblJvbGVFbmRwb2ludCIsImdldFN5bmNBY2NvdW50SG9vayIsImdldEFmdGVyTG9naW5Ib29rIiwiZ2V0QWZ0ZXJMb2dvdXRIb29rIiwiZ2V0QmVmb3JlRGVsZXRlSG9vayIsImdldEJlZm9yZUxvZ2luSG9vayIsImdldE9uVmVyaWZpZWRDaGFuZ2VIb29rIiwiYnVpbGRVc2Vyc0NvbGxlY3Rpb24iLCJpbmNvbWluZ0NvbGxlY3Rpb25zIiwicGx1Z2luT3B0aW9ucyIsImNvbGxlY3Rpb25TY2hlbWFNYXAiLCJzY2hlbWEiLCJ1c2VyU2x1ZyIsIm1vZGVsS2V5IiwidXNlciIsInBhc3NrZXlTbHVnIiwicGFzc2tleSIsInBhc3NrZXlVc2VySWRGaWVsZE5hbWUiLCJ1c2VySWQiLCJhZG1pblJvbGVzIiwidXNlcnMiLCJhZG1pblJvbGUiLCJhbGxSb2xlT3B0aW9ucyIsImhhc1VzZXJuYW1lUGx1Z2luIiwiYmV0dGVyQXV0aE9wdGlvbnMiLCJ1c2VybmFtZSIsImV4aXN0aW5nVXNlckNvbGxlY3Rpb24iLCJmaW5kIiwiY29sbGVjdGlvbiIsInNsdWciLCJhbGxvd2VkRmllbGRzIiwidXNlckZpZWxkUnVsZXMiLCJjb25kaXRpb24iLCJmaWVsZCIsImZpZWxkTmFtZSIsInRyYW5zZm9ybSIsInNhdmVUb0pXVCIsImFkbWluIiwiZGlzYWJsZUJ1bGtFZGl0IiwiaGlkZGVuIiwiaW5kZXgiLCJsYWJlbCIsInQiLCJmaWVsZE92ZXJyaWRlcyIsInJvbGUiLCJ0eXBlIiwib3B0aW9ucyIsImRlZmF1bHRWYWx1ZSIsInVzZXJSb2xlIiwiZGVzY3JpcHRpb24iLCJlbWFpbCIsImVtYWlsVmVyaWZpZWQiLCJuYW1lIiwiaW1hZ2UiLCJ0d29GYWN0b3JFbmFibGVkIiwiY29tcG9uZW50cyIsIkZpZWxkIiwicGF0aCIsImRpc3BsYXlVc2VybmFtZSIsImlzQW5vbnltb3VzIiwicGhvbmVOdW1iZXIiLCJwaG9uZU51bWJlclZlcmlmaWVkIiwiYmFubmVkIiwiYmFuUmVhc29uIiwiYmFuRXhwaXJlcyIsIm5vcm1hbGl6ZWRFbWFpbCIsInJlYWRPbmx5Iiwic3RyaXBlQ3VzdG9tZXJJZCIsImNvbGxlY3Rpb25GaWVsZHMiLCJmaWVsZFJ1bGVzIiwiYWRkaXRpb25hbFByb3BlcnRpZXMiLCJ1c2Vyc0NvbGxlY3Rpb24iLCJkZWZhdWx0Q29sdW1ucyIsInVzZUFzVGl0bGUiLCJncm91cCIsImNvbGxlY3Rpb25BZG1pbkdyb3VwIiwiRGVzY3JpcHRpb24iLCJjbGllbnRQcm9wcyIsInJvbGVzIiwidmlld3MiLCJlZGl0IiwiYWRtaW5CdXR0b25zIiwidGFiIiwiQ29tcG9uZW50IiwiYWNjZXNzIiwicmVxIiwiaW5jbHVkZXMiLCJyZWFkIiwiaWRGaWVsZCIsImNyZWF0ZSIsImRlbGV0ZSIsInVwZGF0ZSIsImN1c3RvbSIsImJldHRlckF1dGhNb2RlbEtleSIsImVuZHBvaW50cyIsImhvb2tzIiwiYmVmb3JlQ2hhbmdlIiwiZGlzYWJsZURlZmF1bHRQYXlsb2FkQXV0aCIsImFmdGVyQ2hhbmdlIiwiYmVmb3JlTG9naW4iLCJhZnRlckxvZ2luIiwiYWZ0ZXJMb2dvdXQiLCJiZWZvcmVEZWxldGUiLCJhdXRoIiwiZGlzYWJsZUxvY2FsU3RyYXRlZ3kiLCJ1bmRlZmluZWQiLCJsb2dpbldpdGhVc2VybmFtZSIsImFsbG93RW1haWxMb2dpbiIsInJlcXVpcmVFbWFpbCIsInJlcXVpcmVVc2VybmFtZSIsInN0cmF0ZWdpZXMiLCJmaWVsZHMiLCJzZXJ2ZXJQcm9wcyIsImNvbGxlY3Rpb25PdmVycmlkZXMiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGlCQUFpQixRQUFRLHVDQUFrRDtBQUNwRixTQUFTQyx3QkFBd0IsUUFBUSx1Q0FBa0Q7QUFDM0YsU0FBU0MsZ0JBQWdCLEVBQUVDLFVBQVUsRUFBRUMsUUFBUSxFQUFFQyxvQkFBb0IsUUFBUSxxQkFBb0I7QUFDakcsU0FBU0MsaUJBQWlCLFFBQVEsaUNBQWdDO0FBQ2xFLFNBQVNDLHFCQUFxQixFQUFFQyxrQkFBa0IsUUFBUSw2QkFBNEI7QUFDdEYsU0FBU0MsMkNBQTJDLEVBQUVDLDZCQUE2QixFQUFFQyxnQkFBZ0IsUUFBUSwwQkFBeUI7QUFDdEksU0FBU0MsbUJBQW1CLFFBQVEsOENBQTZDO0FBQ2pGLFNBQVNDLGtCQUFrQixRQUFRLHlCQUF3QjtBQUMzRCxTQUFTQyw0QkFBNEIsRUFBRUMsdUJBQXVCLEVBQUVDLHdCQUF3QixFQUFFQyx1QkFBdUIsUUFBUSxjQUFhO0FBQ3RJLFNBQ0VDLGtCQUFrQixFQUNsQkMsaUJBQWlCLEVBQ2pCQyxrQkFBa0IsRUFDbEJDLG1CQUFtQixFQUNuQkMsa0JBQWtCLEVBQ2xCQyx1QkFBdUIsUUFDbEIsVUFBUztBQU9oQixPQUFPLFNBQVNDLHFCQUFxQixFQUFFQyxtQkFBbUIsRUFBRUMsYUFBYSxFQUFFQyxtQkFBbUIsRUFBRUMsTUFBTSxFQUF3QjtJQUM1SCxNQUFNQyxXQUFXNUIseUJBQXlCO1FBQUU2QixVQUFVM0IsV0FBVzRCLElBQUk7UUFBRUw7SUFBYztJQUNyRixNQUFNTSxjQUFjL0IseUJBQXlCO1FBQUU2QixVQUFV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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/better-auth/plugin/lib/sanitize-better-auth-options/index.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAA;AACrG,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAA;AAIlF;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,EACxC,MAAM,EACN,aAAa,EACb,mBAAmB,EACpB,EAAE;IACD,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,CAAA;IACxE,aAAa,EAAE,uBAAuB,CAAA;IACtC,mBAAmB,EAAE,mBAAmB,CAAA;CACzC,GAAG,0BAA0B,CA8G7B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/better-auth/plugin/lib/sanitize-better-auth-options/index.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAA;AACrG,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAA;AAKlF;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,EACxC,MAAM,EACN,aAAa,EACb,mBAAmB,EACpB,EAAE;IACD,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,CAAA;IACxE,aAAa,EAAE,uBAAuB,CAAA;IACtC,mBAAmB,EAAE,mBAAmB,CAAA;CACzC,GAAG,0BAA0B,CAuH7B"}
@@ -1,4 +1,4 @@
1
- import { baModelFieldKeys, baModelKey, defaults, supportedBAPluginIds } from "../../constants";
1
+ import { baModelFieldKeys, baModelKey, baseSlugs, defaults, supportedBAPluginIds } from "../../constants";
2
2
  import { configureAdminPlugin } from "./admin-plugin";
3
3
  import { configureApiKeyPlugin } from "./api-key-plugin";
4
4
  import { configureOidcPlugin } from "./oidc-plugin";
@@ -12,13 +12,16 @@ import { set } from "../../utils/set";
12
12
  import { getSchemaCollectionSlug, getSchemaFieldName } from "../build-collections/utils/collection-schema";
13
13
  import { configureTwoFactorPlugin } from "./two-factor-plugin";
14
14
  import { requireAdminInviteForSignUpMiddleware } from "./utils/require-admin-invite-for-sign-up-middleware";
15
+ import { useAdminInviteAfterEmailSignUpMiddleware } from "./utils/use-admin-invite-after-email-sign-up-middleware";
15
16
  /**
16
17
  * Sanitizes the BetterAuth options
17
18
  */ export function sanitizeBetterAuthOptions({ config, pluginOptions, collectionSchemaMap }) {
18
19
  const betterAuthOptions = {
19
20
  ...pluginOptions.betterAuthOptions ?? {}
20
21
  };
21
- set(betterAuthOptions, `${baModelKey.user}.modelName`, getSchemaCollectionSlug(collectionSchemaMap, baModelKey.user));
22
+ const userCollectionSlug = getSchemaCollectionSlug(collectionSchemaMap, baModelKey.user);
23
+ const adminInvitationCollectionSlug = pluginOptions.adminInvitations?.slug ?? baseSlugs.adminInvitations;
24
+ set(betterAuthOptions, `${baModelKey.user}.modelName`, userCollectionSlug);
22
25
  set(betterAuthOptions, `${baModelKey.user}.additionalFields.role`, {
23
26
  type: 'string',
24
27
  defaultValue: pluginOptions.users?.defaultRole || defaults.userRole,
@@ -59,6 +62,11 @@ import { requireAdminInviteForSignUpMiddleware } from "./utils/require-admin-inv
59
62
  pluginOptions
60
63
  });
61
64
  }
65
+ useAdminInviteAfterEmailSignUpMiddleware({
66
+ options: betterAuthOptions,
67
+ adminInvitationCollectionSlug,
68
+ userCollectionSlug
69
+ });
62
70
  // Handle verification email blocking
63
71
  if (pluginOptions.users?.blockFirstBetterAuthVerificationEmail && !pluginOptions.disableDefaultPayloadAuth) {
64
72
  const originalSendEmail = betterAuthOptions?.emailVerification?.sendVerificationEmail;
@@ -118,4 +126,4 @@ import { requireAdminInviteForSignUpMiddleware } from "./utils/require-admin-inv
118
126
  return betterAuthOptions;
119
127
  }
120
128
 
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL3Nhbml0aXplLWJldHRlci1hdXRoLW9wdGlvbnMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYmFNb2RlbEZpZWxkS2V5cywgYmFNb2RlbEtleSwgZGVmYXVsdHMsIHN1cHBvcnRlZEJBUGx1Z2luSWRzIH0gZnJvbSAnQC9iZXR0ZXItYXV0aC9wbHVnaW4vY29uc3RhbnRzJ1xuaW1wb3J0IHsgY29uZmlndXJlQWRtaW5QbHVnaW4gfSBmcm9tICcuL2FkbWluLXBsdWdpbidcbmltcG9ydCB7IGNvbmZpZ3VyZUFwaUtleVBsdWdpbiB9IGZyb20gJy4vYXBpLWtleS1wbHVnaW4nXG5pbXBvcnQgeyBjb25maWd1cmVPaWRjUGx1Z2luIH0gZnJvbSAnLi9vaWRjLXBsdWdpbidcbmltcG9ydCB7IGNvbmZpZ3VyZU9yZ2FuaXphdGlvblBsdWdpbiB9IGZyb20gJy4vb3JnYW5pemF0aW9ucy1wbHVnaW4nXG5pbXBvcnQgeyBjb25maWd1cmVQYXNza2V5UGx1Z2luIH0gZnJvbSAnLi9wYXNza2V5LXBsdWdpbidcbmltcG9ydCB7IGNvbmZpZ3VyZVNzb1BsdWdpbiB9IGZyb20gJy4vc3NvLXBsdWdpbidcbmltcG9ydCB7IGVuc3VyZVBhc3N3b3JkU2V0QmVmb3JlVXNlckNyZWF0ZSB9IGZyb20gJy4vdXRpbHMvZW5zdXJlLXBhc3N3b3JkLXNldC1iZWZvcmUtY3JlYXRlJ1xuaW1wb3J0IHsgaGFzaFBhc3N3b3JkLCB2ZXJpZnlQYXNzd29yZCB9IGZyb20gJy4vdXRpbHMvcGFzc3dvcmQnXG5pbXBvcnQgeyBzYXZlVG9Kd3RNaWRkbGV3YXJlIH0gZnJvbSAnLi91dGlscy9zYXZlLXRvLWp3dC1taWRkbGV3YXJlJ1xuaW1wb3J0IHsgc2V0IH0gZnJvbSAnLi4vLi4vdXRpbHMvc2V0J1xuaW1wb3J0IHsgZ2V0U2NoZW1hQ29sbGVjdGlvblNsdWcsIGdldFNjaGVtYUZpZWxkTmFtZSB9IGZyb20gJy4uL2J1aWxkLWNvbGxlY3Rpb25zL3V0aWxzL2NvbGxlY3Rpb24tc2NoZW1hJ1xuXG5pbXBvcnQgdHlwZSB7IEJldHRlckF1dGhQbHVnaW5PcHRpb25zLCBTYW5pdGl6ZWRCZXR0ZXJBdXRoT3B0aW9ucyB9IGZyb20gJ0AvYmV0dGVyLWF1dGgvcGx1Z2luL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBDb25maWcsIFBheWxvYWQgfSBmcm9tICdwYXlsb2FkJ1xuaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uU2NoZW1hTWFwIH0gZnJvbSAnLi4vLi4vaGVscGVycy9nZXQtY29sbGVjdGlvbi1zY2hlbWEtbWFwJ1xuaW1wb3J0IHsgY29uZmlndXJlVHdvRmFjdG9yUGx1Z2luIH0gZnJvbSAnLi90d28tZmFjdG9yLXBsdWdpbidcbmltcG9ydCB7IHJlcXVpcmVBZG1pbkludml0ZUZvclNpZ25VcE1pZGRsZXdhcmUgfSBmcm9tICcuL3V0aWxzL3JlcXVpcmUtYWRtaW4taW52aXRlLWZvci1zaWduLXVwLW1pZGRsZXdhcmUnXG5cbi8qKlxuICogU2FuaXRpemVzIHRoZSBCZXR0ZXJBdXRoIG9wdGlvbnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNhbml0aXplQmV0dGVyQXV0aE9wdGlvbnMoe1xuICBjb25maWcsXG4gIHBsdWdpbk9wdGlvbnMsXG4gIGNvbGxlY3Rpb25TY2hlbWFNYXBcbn06IHtcbiAgY29uZmlnOiBQYXlsb2FkWydjb25maWcnXSB8IENvbmZpZyB8IFByb21pc2U8UGF5bG9hZFsnY29uZmlnJ10gfCBDb25maWc+XG4gIHBsdWdpbk9wdGlvbnM6IEJldHRlckF1dGhQbHVnaW5PcHRpb25zXG4gIGNvbGxlY3Rpb25TY2hlbWFNYXA6IENvbGxlY3Rpb25TY2hlbWFNYXBcbn0pOiBTYW5pdGl6ZWRCZXR0ZXJBdXRoT3B0aW9ucyB7XG5cbiAgY29uc3QgYmV0dGVyQXV0aE9wdGlvbnM6IFNhbml0aXplZEJldHRlckF1dGhPcHRpb25zID0geyAuLi4ocGx1Z2luT3B0aW9ucy5iZXR0ZXJBdXRoT3B0aW9ucyA/PyB7fSkgfVxuXG4gIHNldChiZXR0ZXJBdXRoT3B0aW9ucywgYCR7YmFNb2RlbEtleS51c2VyfS5tb2RlbE5hbWVgLCBnZXRTY2hlbWFDb2xsZWN0aW9uU2x1Zyhjb2xsZWN0aW9uU2NoZW1hTWFwLCBiYU1vZGVsS2V5LnVzZXIpKVxuICBzZXQoYmV0dGVyQXV0aE9wdGlvbnMsIGAke2JhTW9kZWxLZXkudXNlcn0uYWRkaXRpb25hbEZpZWxkcy5yb2xlYCwge1xuICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIGRlZmF1bHRWYWx1ZTogcGx1Z2luT3B0aW9ucy51c2Vycz8uZGVmYXVsdFJvbGUgfHwgZGVmYXVsdHMudXNlclJvbGUsXG4gICAgaW5wdXQ6IGZhbHNlLFxuICB9KVxuICBcbiAgY29uc3QgYmFzZU1vZGVscyA9IFtiYU1vZGVsS2V5LmFjY291bnQsIGJhTW9kZWxLZXkuc2Vzc2lvbiwgYmFNb2RlbEtleS52ZXJpZmljYXRpb25dIGFzIGNvbnN0XG4gIGJhc2VNb2RlbHMuZm9yRWFjaCgobW9kZWwpID0+XG4gICAgc2V0KGJldHRlckF1dGhPcHRpb25zLCBgJHttb2RlbH0ubW9kZWxOYW1lYCwgZ2V0U2NoZW1hQ29sbGVjdGlvblNsdWcoY29sbGVjdGlvblNjaGVtYU1hcCwgbW9kZWwpKVxuICApXG4gIHNldChiZXR0ZXJBdXRoT3B0aW9ucywgYCR7YmFNb2RlbEtleS5hY2NvdW50fS5maWVsZHMudXNlcklkYCwgZ2V0U2NoZW1hRmllbGROYW1lKGNvbGxlY3Rpb25TY2hlbWFNYXAsIGJhTW9kZWxLZXkuYWNjb3VudCwgYmFNb2RlbEZpZWxkS2V5cy5hY2NvdW50LnVzZXJJZCkpXG4gIHNldChiZXR0ZXJBdXRoT3B0aW9ucywgYCR7YmFNb2RlbEtleS5zZXNzaW9ufS5maWVsZHMudXNlcklkYCwgZ2V0U2NoZW1hRmllbGROYW1lKGNvbGxlY3Rpb25TY2hlbWFNYXAsIGJhTW9kZWxLZXkuc2Vzc2lvbiwgYmFNb2RlbEZpZWxkS2V5cy5zZXNzaW9uLnVzZXJJZCkpXG5cbiAgc2V0KGJldHRlckF1dGhPcHRpb25zLCBgZW1haWxBbmRQYXNzd29yZC5lbmFibGVkYCwgYmV0dGVyQXV0aE9wdGlvbnMuZW1haWxBbmRQYXNzd29yZD8uZW5hYmxlZCA/PyB0cnVlKVxuXG4gIC8vIENvbmZpZ3VyZSBwYXNzd29yZCBoYW5kbGluZ1xuICBpZiAoYmV0dGVyQXV0aE9wdGlvbnMuZW1haWxBbmRQYXNzd29yZD8uZW5hYmxlZCAmJiAhcGx1Z2luT3B0aW9ucy5kaXNhYmxlRGVmYXVsdFBheWxvYWRBdXRoKSB7XG4gICAgYmV0dGVyQXV0aE9wdGlvbnMuZW1haWxBbmRQYXNzd29yZC5wYXNzd29yZCA9IHtcbiAgICAgIC4uLihiZXR0ZXJBdXRoT3B0aW9ucy5lbWFpbEFuZFBhc3N3b3JkLnBhc3N3b3JkIHx8IHt9KSxcbiAgICAgIHZlcmlmeTogKHsgaGFzaCwgcGFzc3dvcmQgfSkgPT4gdmVyaWZ5UGFzc3dvcmQoeyBoYXNoLCBwYXNzd29yZCB9KSxcbiAgICAgIGhhc2g6IChwYXNzd29yZCkgPT4gaGFzaFBhc3N3b3JkKHBhc3N3b3JkKVxuICAgIH1cbiAgfVxuXG4gIC8vIEhhbmRsZSBhZG1pbiBpbnZpdGUgZm9yIHNpZ24gdXBcbiAgaWYgKHBsdWdpbk9wdGlvbnMucmVxdWlyZUFkbWluSW52aXRlRm9yU2lnblVwKSB7XG4gICAgYmV0dGVyQXV0aE9wdGlvbnMuc29jaWFsUHJvdmlkZXJzID0gYmV0dGVyQXV0aE9wdGlvbnMuc29jaWFsUHJvdmlkZXJzIHx8IHt9XG4gICAgYmV0dGVyQXV0aE9wdGlvbnMuc29jaWFsUHJvdmlkZXJzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgT2JqZWN0LmVudHJpZXMoYmV0dGVyQXV0aE9wdGlvbnMuc29jaWFsUHJvdmlkZXJzKS5tYXAoKFtwcm92aWRlciwgY29uZmlnXSkgPT4gW3Byb3ZpZGVyLCB7IC4uLmNvbmZpZywgZGlzYWJsZUltcGxpY2l0U2lnblVwOiB0cnVlIH1dKVxuICAgIClcbiAgICByZXF1aXJlQWRtaW5JbnZpdGVGb3JTaWduVXBNaWRkbGV3YXJlKHtcbiAgICAgIG9wdGlvbnM6IGJldHRlckF1dGhPcHRpb25zLFxuICAgICAgcGx1Z2luT3B0aW9uc1xuICAgIH0pXG4gIH1cblxuICAvLyBIYW5kbGUgdmVyaWZpY2F0aW9uIGVtYWlsIGJsb2NraW5nXG4gIGlmIChwbHVnaW5PcHRpb25zLnVzZXJzPy5ibG9ja0ZpcnN0QmV0dGVyQXV0aFZlcmlmaWNhdGlvbkVtYWlsICYmICFwbHVnaW5PcHRpb25zLmRpc2FibGVEZWZhdWx0UGF5bG9hZEF1dGgpIHtcbiAgICBjb25zdCBvcmlnaW5hbFNlbmRFbWFpbCA9IGJldHRlckF1dGhPcHRpb25zPy5lbWFpbFZlcmlmaWNhdGlvbj8uc2VuZFZlcmlmaWNhdGlvbkVtYWlsXG4gICAgaWYgKHR5cGVvZiBvcmlnaW5hbFNlbmRFbWFpbCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgYmV0dGVyQXV0aE9wdGlvbnMuZW1haWxWZXJpZmljYXRpb24gPSBiZXR0ZXJBdXRoT3B0aW9ucy5lbWFpbFZlcmlmaWNhdGlvbiB8fCB7fVxuICAgICAgYmV0dGVyQXV0aE9wdGlvbnMuZW1haWxWZXJpZmljYXRpb24uc2VuZFZlcmlmaWNhdGlvbkVtYWlsID0gYXN5bmMgKGRhdGEsIHJlcXVlc3QpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCB0aW1lU2luY2VDcmVhdGlvbiA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gbmV3IERhdGUoZGF0YS51c2VyLmNyZWF0ZWRBdCkuZ2V0VGltZSgpXG4gICAgICAgICAgLy8gU2tpcCBpZiB1c2VyIHdhcyBjcmVhdGVkIGxlc3MgdGhhbiBhIG1pbnV0ZSBhZ28gKHJlbHkgb24gUGF5bG9hZCdzIGVtYWlsKVxuICAgICAgICAgIGlmICh0aW1lU2luY2VDcmVhdGlvbiA+PSA2MDAwMCkge1xuICAgICAgICAgICAgYXdhaXQgb3JpZ2luYWxTZW5kRW1haWwoZGF0YSwgcmVxdWVzdClcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igc2VuZGluZyB2ZXJpZmljYXRpb24gZW1haWw6JywgZXJyb3IpXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBFbnN1cmUgcGFzc3dvcmQgaXMgc2V0IGJlZm9yZSB1c2VyIGNyZWF0aW9uXG4gIGlmICghcGx1Z2luT3B0aW9ucy5kaXNhYmxlRGVmYXVsdFBheWxvYWRBdXRoKSB7XG4gICAgZW5zdXJlUGFzc3dvcmRTZXRCZWZvcmVVc2VyQ3JlYXRlKGJldHRlckF1dGhPcHRpb25zKVxuICB9XG5cbiAgLy8gUHJvY2VzcyBwbHVnaW5zXG4gIGlmIChiZXR0ZXJBdXRoT3B0aW9ucy5wbHVnaW5zPy5sZW5ndGgpIHtcbiAgICB0cnkge1xuICAgICAgLy8gRmlsdGVyIHRvIG9ubHkgc3VwcG9ydGVkIHBsdWdpbnNcbiAgICAgIGNvbnN0IHN1cHBvcnRlZFBsdWdpbnMgPSBiZXR0ZXJBdXRoT3B0aW9ucy5wbHVnaW5zLmZpbHRlcigocGx1Z2luKSA9PiBPYmplY3QudmFsdWVzKHN1cHBvcnRlZEJBUGx1Z2luSWRzKS5pbmNsdWRlcyhwbHVnaW4uaWQgYXMgYW55KSlcblxuICAgICAgLy8gTG9nIHdhcm5pbmcgZm9yIHVuc3VwcG9ydGVkIHBsdWdpbnNcbiAgICAgIGlmIChzdXBwb3J0ZWRQbHVnaW5zLmxlbmd0aCAhPT0gYmV0dGVyQXV0aE9wdGlvbnMucGx1Z2lucy5sZW5ndGgpIHtcbiAgICAgICAgY29uc3QgdW5zdXBwb3J0ZWRJZHMgPSBiZXR0ZXJBdXRoT3B0aW9ucy5wbHVnaW5zXG4gICAgICAgICAgLmZpbHRlcigocCkgPT4gIU9iamVjdC52YWx1ZXMoc3VwcG9ydGVkQkFQbHVnaW5JZHMpLmluY2x1ZGVzKHAuaWQgYXMgYW55KSlcbiAgICAgICAgICAubWFwKChwKSA9PiBwLmlkKVxuICAgICAgICAgIC5qb2luKCcsICcpXG5cbiAgICAgICAgY29uc29sZS53YXJuKGBVbnN1cHBvcnRlZCBCZXR0ZXJBdXRoIHBsdWdpbnM6ICR7dW5zdXBwb3J0ZWRJZHN9LiBTdXBwb3J0ZWQ6ICR7T2JqZWN0LnZhbHVlcyhzdXBwb3J0ZWRCQVBsdWdpbklkcykuam9pbignLCAnKX1gKVxuICAgICAgfVxuXG4gICAgICAvLyBDb25maWd1cmUgcGx1Z2lucyBieSB0eXBlXG4gICAgICBjb25zdCBwbHVnaW5Db25maWd1cmF0b3JzID0ge1xuICAgICAgICBbc3VwcG9ydGVkQkFQbHVnaW5JZHMuYWRtaW5dOiAocDogYW55KSA9PiBjb25maWd1cmVBZG1pblBsdWdpbihwLCBwbHVnaW5PcHRpb25zKSxcbiAgICAgICAgW3N1cHBvcnRlZEJBUGx1Z2luSWRzLmFwaUtleV06IChwOiBhbnkpID0+IGNvbmZpZ3VyZUFwaUtleVBsdWdpbihwLCBjb2xsZWN0aW9uU2NoZW1hTWFwKSxcbiAgICAgICAgW3N1cHBvcnRlZEJBUGx1Z2luSWRzLnBhc3NrZXldOiAocDogYW55KSA9PiBjb25maWd1cmVQYXNza2V5UGx1Z2luKHAsIGNvbGxlY3Rpb25TY2hlbWFNYXApLFxuICAgICAgICBbc3VwcG9ydGVkQkFQbHVnaW5JZHMub3JnYW5pemF0aW9uXTogKHA6IGFueSkgPT4gY29uZmlndXJlT3JnYW5pemF0aW9uUGx1Z2luKHAsIGNvbGxlY3Rpb25TY2hlbWFNYXApLFxuICAgICAgICBbc3VwcG9ydGVkQkFQbHVnaW5JZHMuc3NvXTogKHA6IGFueSkgPT4gY29uZmlndXJlU3NvUGx1Z2luKHAsIGNvbGxlY3Rpb25TY2hlbWFNYXApLFxuICAgICAgICBbc3VwcG9ydGVkQkFQbHVnaW5JZHMub2lkY106IChwOiBhbnkpID0+IGNvbmZpZ3VyZU9pZGNQbHVnaW4ocCwgY29sbGVjdGlvblNjaGVtYU1hcCksXG4gICAgICAgIFtzdXBwb3J0ZWRCQVBsdWdpbklkcy50d29GYWN0b3JdOiAocDogYW55KSA9PiBjb25maWd1cmVUd29GYWN0b3JQbHVnaW4ocCwgY29sbGVjdGlvblNjaGVtYU1hcClcbiAgICAgIH1cblxuICAgICAgc3VwcG9ydGVkUGx1Z2lucy5mb3JFYWNoKChwbHVnaW4pID0+IHtcbiAgICAgICAgY29uc3QgY29uZmlndXJhdG9yID0gcGx1Z2luQ29uZmlndXJhdG9yc1twbHVnaW4uaWQgYXMga2V5b2YgdHlwZW9mIHBsdWdpbkNvbmZpZ3VyYXRvcnNdXG4gICAgICAgIGlmIChjb25maWd1cmF0b3IpIGNvbmZpZ3VyYXRvcihwbHVnaW4gYXMgYW55KVxuICAgICAgfSlcblxuICAgICAgYmV0dGVyQXV0aE9wdGlvbnMucGx1Z2lucyA9IHN1cHBvcnRlZFBsdWdpbnNcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBFcnJvciBzYW5pdGl6aW5nIEJldHRlckF1dGggcGx1Z2luczogJHtlcnJvcn1gKVxuICAgIH1cbiAgfVxuXG4gIHNhdmVUb0p3dE1pZGRsZXdhcmUoe1xuICAgIHNhbml0aXplZE9wdGlvbnM6IGJldHRlckF1dGhPcHRpb25zLFxuICAgIGNvbmZpZyxcbiAgICBjb2xsZWN0aW9uU2NoZW1hTWFwXG4gIH0pXG5cbiAgcmV0dXJuIGJldHRlckF1dGhPcHRpb25zXG59XG4iXSwibmFtZXMiOlsiYmFNb2RlbEZpZWxkS2V5cyIsImJhTW9kZWxLZXkiLCJkZWZhdWx0cyIsInN1cHBvcnRlZEJBUGx1Z2luSWRzIiwiY29uZmlndXJlQWRtaW5QbHVnaW4iLCJjb25maWd1cmVBcGlLZXlQbHVnaW4iLCJjb25maWd1cmVPaWRjUGx1Z2luIiwiY29uZmlndXJlT3JnYW5pemF0aW9uUGx1Z2luIiwiY29uZmlndXJlUGFzc2tleVBsdWdpbiIsImNvbmZpZ3VyZVNzb1BsdWdpbiIsImVuc3VyZVBhc3N3b3JkU2V0QmVmb3JlVXNlckNyZWF0ZSIsImhhc2hQYXNzd29yZCIsInZlcmlmeVBhc3N3b3JkIiwic2F2ZVRvSnd0TWlkZGxld2FyZSIsInNldCIsImdldFNjaGVtYUNvbGxlY3Rpb25TbHVnIiwiZ2V0U2NoZW1hRmllbGROYW1lIiwiY29uZmlndXJlVHdvRmFjdG9yUGx1Z2luIiwicmVxdWlyZUFkbWluSW52aXRlRm9yU2lnblVwTWlkZGxld2FyZSIsInNhbml0aXplQmV0dGVyQXV0aE9wdGlvbnMiLCJjb25maWciLCJwbHVnaW5PcHRpb25zIiwiY29sbGVjdGlvblNjaGVtYU1hcCIsImJldHRlckF1dGhPcHRpb25zIiwidXNlciIsInR5cGUiLCJkZWZhdWx0VmFsdWUiLCJ1c2VycyIsImRlZmF1bHRSb2xlIiwidXNlclJvbGUiLCJpbnB1dCIsImJhc2VNb2RlbHMiLCJhY2NvdW50Iiwic2Vzc2lvbiIsInZlcmlmaWNhdGlvbiIsImZvckVhY2giLCJtb2RlbCIsInVzZXJJZCIsImVtYWlsQW5kUGFzc3dvcmQiLCJlbmFibGVkIiwiZGlzYWJsZURlZmF1bHRQYXlsb2FkQXV0aCIsInBhc3N3b3JkIiwidmVyaWZ5IiwiaGFzaCIsInJlcXVpcmVBZG1pbkludml0ZUZvclNpZ25VcCIsInNvY2lhbFByb3ZpZGVycyIsIk9iamVjdCIsImZyb21FbnRyaWVzIiwiZW50cmllcyIsIm1hcCIsInByb3ZpZGVyIiwiZGlzYWJsZUltcGxpY2l0U2lnblVwIiwib3B0aW9ucyIsImJsb2NrRmlyc3RCZXR0ZXJBdXRoVmVyaWZpY2F0aW9uRW1haWwiLCJvcmlnaW5hbFNlbmRFbWFpbCIsImVtYWlsVmVyaWZpY2F0aW9uIiwic2VuZFZlcmlmaWNhdGlvbkVtYWlsIiwiZGF0YSIsInJlcXVlc3QiLCJ0aW1lU2luY2VDcmVhdGlvbiIsIkRhdGUiLCJnZXRUaW1lIiwiY3JlYXRlZEF0IiwiZXJyb3IiLCJjb25zb2xlIiwicGx1Z2lucyIsImxlbmd0aCIsInN1cHBvcnRlZFBsdWdpbnMiLCJmaWx0ZXIiLCJwbHVnaW4iLCJ2YWx1ZXMiLCJpbmNsdWRlcyIsImlkIiwidW5zdXBwb3J0ZWRJZHMiLCJwIiwiam9pbiIsIndhcm4iLCJwbHVnaW5Db25maWd1cmF0b3JzIiwiYWRtaW4iLCJhcGlLZXkiLCJwYXNza2V5Iiwib3JnYW5pemF0aW9uIiwic3NvIiwib2lkYyIsInR3b0ZhY3RvciIsImNvbmZpZ3VyYXRvciIs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
129
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL3Nhbml0aXplLWJldHRlci1hdXRoLW9wdGlvbnMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYmFNb2RlbEZpZWxkS2V5cywgYmFNb2RlbEtleSwgYmFzZVNsdWdzLCBkZWZhdWx0cywgc3VwcG9ydGVkQkFQbHVnaW5JZHMgfSBmcm9tICdAL2JldHRlci1hdXRoL3BsdWdpbi9jb25zdGFudHMnXG5pbXBvcnQgeyBjb25maWd1cmVBZG1pblBsdWdpbiB9IGZyb20gJy4vYWRtaW4tcGx1Z2luJ1xuaW1wb3J0IHsgY29uZmlndXJlQXBpS2V5UGx1Z2luIH0gZnJvbSAnLi9hcGkta2V5LXBsdWdpbidcbmltcG9ydCB7IGNvbmZpZ3VyZU9pZGNQbHVnaW4gfSBmcm9tICcuL29pZGMtcGx1Z2luJ1xuaW1wb3J0IHsgY29uZmlndXJlT3JnYW5pemF0aW9uUGx1Z2luIH0gZnJvbSAnLi9vcmdhbml6YXRpb25zLXBsdWdpbidcbmltcG9ydCB7IGNvbmZpZ3VyZVBhc3NrZXlQbHVnaW4gfSBmcm9tICcuL3Bhc3NrZXktcGx1Z2luJ1xuaW1wb3J0IHsgY29uZmlndXJlU3NvUGx1Z2luIH0gZnJvbSAnLi9zc28tcGx1Z2luJ1xuaW1wb3J0IHsgZW5zdXJlUGFzc3dvcmRTZXRCZWZvcmVVc2VyQ3JlYXRlIH0gZnJvbSAnLi91dGlscy9lbnN1cmUtcGFzc3dvcmQtc2V0LWJlZm9yZS1jcmVhdGUnXG5pbXBvcnQgeyBoYXNoUGFzc3dvcmQsIHZlcmlmeVBhc3N3b3JkIH0gZnJvbSAnLi91dGlscy9wYXNzd29yZCdcbmltcG9ydCB7IHNhdmVUb0p3dE1pZGRsZXdhcmUgfSBmcm9tICcuL3V0aWxzL3NhdmUtdG8tand0LW1pZGRsZXdhcmUnXG5pbXBvcnQgeyBzZXQgfSBmcm9tICcuLi8uLi91dGlscy9zZXQnXG5pbXBvcnQgeyBnZXRTY2hlbWFDb2xsZWN0aW9uU2x1ZywgZ2V0U2NoZW1hRmllbGROYW1lIH0gZnJvbSAnLi4vYnVpbGQtY29sbGVjdGlvbnMvdXRpbHMvY29sbGVjdGlvbi1zY2hlbWEnXG5cbmltcG9ydCB0eXBlIHsgQmV0dGVyQXV0aFBsdWdpbk9wdGlvbnMsIFNhbml0aXplZEJldHRlckF1dGhPcHRpb25zIH0gZnJvbSAnQC9iZXR0ZXItYXV0aC9wbHVnaW4vdHlwZXMnXG5pbXBvcnQgdHlwZSB7IENvbmZpZywgUGF5bG9hZCB9IGZyb20gJ3BheWxvYWQnXG5pbXBvcnQgdHlwZSB7IENvbGxlY3Rpb25TY2hlbWFNYXAgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2dldC1jb2xsZWN0aW9uLXNjaGVtYS1tYXAnXG5pbXBvcnQgeyBjb25maWd1cmVUd29GYWN0b3JQbHVnaW4gfSBmcm9tICcuL3R3by1mYWN0b3ItcGx1Z2luJ1xuaW1wb3J0IHsgcmVxdWlyZUFkbWluSW52aXRlRm9yU2lnblVwTWlkZGxld2FyZSB9IGZyb20gJy4vdXRpbHMvcmVxdWlyZS1hZG1pbi1pbnZpdGUtZm9yLXNpZ24tdXAtbWlkZGxld2FyZSdcbmltcG9ydCB7IHVzZUFkbWluSW52aXRlQWZ0ZXJFbWFpbFNpZ25VcE1pZGRsZXdhcmUgfSBmcm9tICcuL3V0aWxzL3VzZS1hZG1pbi1pbnZpdGUtYWZ0ZXItZW1haWwtc2lnbi11cC1taWRkbGV3YXJlJ1xuXG4vKipcbiAqIFNhbml0aXplcyB0aGUgQmV0dGVyQXV0aCBvcHRpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzYW5pdGl6ZUJldHRlckF1dGhPcHRpb25zKHtcbiAgY29uZmlnLFxuICBwbHVnaW5PcHRpb25zLFxuICBjb2xsZWN0aW9uU2NoZW1hTWFwXG59OiB7XG4gIGNvbmZpZzogUGF5bG9hZFsnY29uZmlnJ10gfCBDb25maWcgfCBQcm9taXNlPFBheWxvYWRbJ2NvbmZpZyddIHwgQ29uZmlnPlxuICBwbHVnaW5PcHRpb25zOiBCZXR0ZXJBdXRoUGx1Z2luT3B0aW9uc1xuICBjb2xsZWN0aW9uU2NoZW1hTWFwOiBDb2xsZWN0aW9uU2NoZW1hTWFwXG59KTogU2FuaXRpemVkQmV0dGVyQXV0aE9wdGlvbnMge1xuXG4gIGNvbnN0IGJldHRlckF1dGhPcHRpb25zOiBTYW5pdGl6ZWRCZXR0ZXJBdXRoT3B0aW9ucyA9IHsgLi4uKHBsdWdpbk9wdGlvbnMuYmV0dGVyQXV0aE9wdGlvbnMgPz8ge30pIH1cblxuICBjb25zdCB1c2VyQ29sbGVjdGlvblNsdWcgPSBnZXRTY2hlbWFDb2xsZWN0aW9uU2x1Zyhjb2xsZWN0aW9uU2NoZW1hTWFwLCBiYU1vZGVsS2V5LnVzZXIpO1xuICBjb25zdCBhZG1pbkludml0YXRpb25Db2xsZWN0aW9uU2x1ZyA9IHBsdWdpbk9wdGlvbnMuYWRtaW5JbnZpdGF0aW9ucz8uc2x1ZyA/PyBiYXNlU2x1Z3MuYWRtaW5JbnZpdGF0aW9ucztcblxuICBzZXQoYmV0dGVyQXV0aE9wdGlvbnMsIGAke2JhTW9kZWxLZXkudXNlcn0ubW9kZWxOYW1lYCwgdXNlckNvbGxlY3Rpb25TbHVnKVxuICBzZXQoYmV0dGVyQXV0aE9wdGlvbnMsIGAke2JhTW9kZWxLZXkudXNlcn0uYWRkaXRpb25hbEZpZWxkcy5yb2xlYCwge1xuICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgIGRlZmF1bHRWYWx1ZTogcGx1Z2luT3B0aW9ucy51c2Vycz8uZGVmYXVsdFJvbGUgfHwgZGVmYXVsdHMudXNlclJvbGUsXG4gICAgaW5wdXQ6IGZhbHNlLFxuICB9KVxuICBcbiAgY29uc3QgYmFzZU1vZGVscyA9IFtiYU1vZGVsS2V5LmFjY291bnQsIGJhTW9kZWxLZXkuc2Vzc2lvbiwgYmFNb2RlbEtleS52ZXJpZmljYXRpb25dIGFzIGNvbnN0XG4gIGJhc2VNb2RlbHMuZm9yRWFjaCgobW9kZWwpID0+XG4gICAgc2V0KGJldHRlckF1dGhPcHRpb25zLCBgJHttb2RlbH0ubW9kZWxOYW1lYCwgZ2V0U2NoZW1hQ29sbGVjdGlvblNsdWcoY29sbGVjdGlvblNjaGVtYU1hcCwgbW9kZWwpKVxuICApXG4gIHNldChiZXR0ZXJBdXRoT3B0aW9ucywgYCR7YmFNb2RlbEtleS5hY2NvdW50fS5maWVsZHMudXNlcklkYCwgZ2V0U2NoZW1hRmllbGROYW1lKGNvbGxlY3Rpb25TY2hlbWFNYXAsIGJhTW9kZWxLZXkuYWNjb3VudCwgYmFNb2RlbEZpZWxkS2V5cy5hY2NvdW50LnVzZXJJZCkpXG4gIHNldChiZXR0ZXJBdXRoT3B0aW9ucywgYCR7YmFNb2RlbEtleS5zZXNzaW9ufS5maWVsZHMudXNlcklkYCwgZ2V0U2NoZW1hRmllbGROYW1lKGNvbGxlY3Rpb25TY2hlbWFNYXAsIGJhTW9kZWxLZXkuc2Vzc2lvbiwgYmFNb2RlbEZpZWxkS2V5cy5zZXNzaW9uLnVzZXJJZCkpXG5cbiAgc2V0KGJldHRlckF1dGhPcHRpb25zLCBgZW1haWxBbmRQYXNzd29yZC5lbmFibGVkYCwgYmV0dGVyQXV0aE9wdGlvbnMuZW1haWxBbmRQYXNzd29yZD8uZW5hYmxlZCA/PyB0cnVlKVxuXG4gIC8vIENvbmZpZ3VyZSBwYXNzd29yZCBoYW5kbGluZ1xuICBpZiAoYmV0dGVyQXV0aE9wdGlvbnMuZW1haWxBbmRQYXNzd29yZD8uZW5hYmxlZCAmJiAhcGx1Z2luT3B0aW9ucy5kaXNhYmxlRGVmYXVsdFBheWxvYWRBdXRoKSB7XG4gICAgYmV0dGVyQXV0aE9wdGlvbnMuZW1haWxBbmRQYXNzd29yZC5wYXNzd29yZCA9IHtcbiAgICAgIC4uLihiZXR0ZXJBdXRoT3B0aW9ucy5lbWFpbEFuZFBhc3N3b3JkLnBhc3N3b3JkIHx8IHt9KSxcbiAgICAgIHZlcmlmeTogKHsgaGFzaCwgcGFzc3dvcmQgfSkgPT4gdmVyaWZ5UGFzc3dvcmQoeyBoYXNoLCBwYXNzd29yZCB9KSxcbiAgICAgIGhhc2g6IChwYXNzd29yZCkgPT4gaGFzaFBhc3N3b3JkKHBhc3N3b3JkKVxuICAgIH1cbiAgfVxuXG4gIC8vIEhhbmRsZSBhZG1pbiBpbnZpdGUgZm9yIHNpZ24gdXBcbiAgaWYgKHBsdWdpbk9wdGlvbnMucmVxdWlyZUFkbWluSW52aXRlRm9yU2lnblVwKSB7XG4gICAgYmV0dGVyQXV0aE9wdGlvbnMuc29jaWFsUHJvdmlkZXJzID0gYmV0dGVyQXV0aE9wdGlvbnMuc29jaWFsUHJvdmlkZXJzIHx8IHt9XG4gICAgYmV0dGVyQXV0aE9wdGlvbnMuc29jaWFsUHJvdmlkZXJzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgT2JqZWN0LmVudHJpZXMoYmV0dGVyQXV0aE9wdGlvbnMuc29jaWFsUHJvdmlkZXJzKS5tYXAoKFtwcm92aWRlciwgY29uZmlnXSkgPT4gW3Byb3ZpZGVyLCB7IC4uLmNvbmZpZywgZGlzYWJsZUltcGxpY2l0U2lnblVwOiB0cnVlIH1dKVxuICAgIClcbiAgICByZXF1aXJlQWRtaW5JbnZpdGVGb3JTaWduVXBNaWRkbGV3YXJlKHtcbiAgICAgIG9wdGlvbnM6IGJldHRlckF1dGhPcHRpb25zLFxuICAgICAgcGx1Z2luT3B0aW9uc1xuICAgIH0pXG4gICAgXG4gIH1cbiAgdXNlQWRtaW5JbnZpdGVBZnRlckVtYWlsU2lnblVwTWlkZGxld2FyZSh7XG4gICAgb3B0aW9uczogYmV0dGVyQXV0aE9wdGlvbnMsXG4gICAgYWRtaW5JbnZpdGF0aW9uQ29sbGVjdGlvblNsdWcsXG4gICAgdXNlckNvbGxlY3Rpb25TbHVnXG4gIH0pXG5cbiAgLy8gSGFuZGxlIHZlcmlmaWNhdGlvbiBlbWFpbCBibG9ja2luZ1xuICBpZiAocGx1Z2luT3B0aW9ucy51c2Vycz8uYmxvY2tGaXJzdEJldHRlckF1dGhWZXJpZmljYXRpb25FbWFpbCAmJiAhcGx1Z2luT3B0aW9ucy5kaXNhYmxlRGVmYXVsdFBheWxvYWRBdXRoKSB7XG4gICAgY29uc3Qgb3JpZ2luYWxTZW5kRW1haWwgPSBiZXR0ZXJBdXRoT3B0aW9ucz8uZW1haWxWZXJpZmljYXRpb24/LnNlbmRWZXJpZmljYXRpb25FbWFpbFxuICAgIGlmICh0eXBlb2Ygb3JpZ2luYWxTZW5kRW1haWwgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIGJldHRlckF1dGhPcHRpb25zLmVtYWlsVmVyaWZpY2F0aW9uID0gYmV0dGVyQXV0aE9wdGlvbnMuZW1haWxWZXJpZmljYXRpb24gfHwge31cbiAgICAgIGJldHRlckF1dGhPcHRpb25zLmVtYWlsVmVyaWZpY2F0aW9uLnNlbmRWZXJpZmljYXRpb25FbWFpbCA9IGFzeW5jIChkYXRhLCByZXF1ZXN0KSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgY29uc3QgdGltZVNpbmNlQ3JlYXRpb24gPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIG5ldyBEYXRlKGRhdGEudXNlci5jcmVhdGVkQXQpLmdldFRpbWUoKVxuICAgICAgICAgIC8vIFNraXAgaWYgdXNlciB3YXMgY3JlYXRlZCBsZXNzIHRoYW4gYSBtaW51dGUgYWdvIChyZWx5IG9uIFBheWxvYWQncyBlbWFpbClcbiAgICAgICAgICBpZiAodGltZVNpbmNlQ3JlYXRpb24gPj0gNjAwMDApIHtcbiAgICAgICAgICAgIGF3YWl0IG9yaWdpbmFsU2VuZEVtYWlsKGRhdGEsIHJlcXVlc3QpXG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0Vycm9yIHNlbmRpbmcgdmVyaWZpY2F0aW9uIGVtYWlsOicsIGVycm9yKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gRW5zdXJlIHBhc3N3b3JkIGlzIHNldCBiZWZvcmUgdXNlciBjcmVhdGlvblxuICBpZiAoIXBsdWdpbk9wdGlvbnMuZGlzYWJsZURlZmF1bHRQYXlsb2FkQXV0aCkge1xuICAgIGVuc3VyZVBhc3N3b3JkU2V0QmVmb3JlVXNlckNyZWF0ZShiZXR0ZXJBdXRoT3B0aW9ucylcbiAgfVxuXG4gIC8vIFByb2Nlc3MgcGx1Z2luc1xuICBpZiAoYmV0dGVyQXV0aE9wdGlvbnMucGx1Z2lucz8ubGVuZ3RoKSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIEZpbHRlciB0byBvbmx5IHN1cHBvcnRlZCBwbHVnaW5zXG4gICAgICBjb25zdCBzdXBwb3J0ZWRQbHVnaW5zID0gYmV0dGVyQXV0aE9wdGlvbnMucGx1Z2lucy5maWx0ZXIoKHBsdWdpbikgPT4gT2JqZWN0LnZhbHVlcyhzdXBwb3J0ZWRCQVBsdWdpbklkcykuaW5jbHVkZXMocGx1Z2luLmlkIGFzIGFueSkpXG5cbiAgICAgIC8vIExvZyB3YXJuaW5nIGZvciB1bnN1cHBvcnRlZCBwbHVnaW5zXG4gICAgICBpZiAoc3VwcG9ydGVkUGx1Z2lucy5sZW5ndGggIT09IGJldHRlckF1dGhPcHRpb25zLnBsdWdpbnMubGVuZ3RoKSB7XG4gICAgICAgIGNvbnN0IHVuc3VwcG9ydGVkSWRzID0gYmV0dGVyQXV0aE9wdGlvbnMucGx1Z2luc1xuICAgICAgICAgIC5maWx0ZXIoKHApID0+ICFPYmplY3QudmFsdWVzKHN1cHBvcnRlZEJBUGx1Z2luSWRzKS5pbmNsdWRlcyhwLmlkIGFzIGFueSkpXG4gICAgICAgICAgLm1hcCgocCkgPT4gcC5pZClcbiAgICAgICAgICAuam9pbignLCAnKVxuXG4gICAgICAgIGNvbnNvbGUud2FybihgVW5zdXBwb3J0ZWQgQmV0dGVyQXV0aCBwbHVnaW5zOiAke3Vuc3VwcG9ydGVkSWRzfS4gU3VwcG9ydGVkOiAke09iamVjdC52YWx1ZXMoc3VwcG9ydGVkQkFQbHVnaW5JZHMpLmpvaW4oJywgJyl9YClcbiAgICAgIH1cblxuICAgICAgLy8gQ29uZmlndXJlIHBsdWdpbnMgYnkgdHlwZVxuICAgICAgY29uc3QgcGx1Z2luQ29uZmlndXJhdG9ycyA9IHtcbiAgICAgICAgW3N1cHBvcnRlZEJBUGx1Z2luSWRzLmFkbWluXTogKHA6IGFueSkgPT4gY29uZmlndXJlQWRtaW5QbHVnaW4ocCwgcGx1Z2luT3B0aW9ucyksXG4gICAgICAgIFtzdXBwb3J0ZWRCQVBsdWdpbklkcy5hcGlLZXldOiAocDogYW55KSA9PiBjb25maWd1cmVBcGlLZXlQbHVnaW4ocCwgY29sbGVjdGlvblNjaGVtYU1hcCksXG4gICAgICAgIFtzdXBwb3J0ZWRCQVBsdWdpbklkcy5wYXNza2V5XTogKHA6IGFueSkgPT4gY29uZmlndXJlUGFzc2tleVBsdWdpbihwLCBjb2xsZWN0aW9uU2NoZW1hTWFwKSxcbiAgICAgICAgW3N1cHBvcnRlZEJBUGx1Z2luSWRzLm9yZ2FuaXphdGlvbl06IChwOiBhbnkpID0+IGNvbmZpZ3VyZU9yZ2FuaXphdGlvblBsdWdpbihwLCBjb2xsZWN0aW9uU2NoZW1hTWFwKSxcbiAgICAgICAgW3N1cHBvcnRlZEJBUGx1Z2luSWRzLnNzb106IChwOiBhbnkpID0+IGNvbmZpZ3VyZVNzb1BsdWdpbihwLCBjb2xsZWN0aW9uU2NoZW1hTWFwKSxcbiAgICAgICAgW3N1cHBvcnRlZEJBUGx1Z2luSWRzLm9pZGNdOiAocDogYW55KSA9PiBjb25maWd1cmVPaWRjUGx1Z2luKHAsIGNvbGxlY3Rpb25TY2hlbWFNYXApLFxuICAgICAgICBbc3VwcG9ydGVkQkFQbHVnaW5JZHMudHdvRmFjdG9yXTogKHA6IGFueSkgPT4gY29uZmlndXJlVHdvRmFjdG9yUGx1Z2luKHAsIGNvbGxlY3Rpb25TY2hlbWFNYXApXG4gICAgICB9XG5cbiAgICAgIHN1cHBvcnRlZFBsdWdpbnMuZm9yRWFjaCgocGx1Z2luKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRvciA9IHBsdWdpbkNvbmZpZ3VyYXRvcnNbcGx1Z2luLmlkIGFzIGtleW9mIHR5cGVvZiBwbHVnaW5Db25maWd1cmF0b3JzXVxuICAgICAgICBpZiAoY29uZmlndXJhdG9yKSBjb25maWd1cmF0b3IocGx1Z2luIGFzIGFueSlcbiAgICAgIH0pXG5cbiAgICAgIGJldHRlckF1dGhPcHRpb25zLnBsdWdpbnMgPSBzdXBwb3J0ZWRQbHVnaW5zXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRXJyb3Igc2FuaXRpemluZyBCZXR0ZXJBdXRoIHBsdWdpbnM6ICR7ZXJyb3J9YClcbiAgICB9XG4gIH1cblxuICBzYXZlVG9Kd3RNaWRkbGV3YXJlKHtcbiAgICBzYW5pdGl6ZWRPcHRpb25zOiBiZXR0ZXJBdXRoT3B0aW9ucyxcbiAgICBjb25maWcsXG4gICAgY29sbGVjdGlvblNjaGVtYU1hcFxuICB9KVxuXG4gIHJldHVybiBiZXR0ZXJBdXRoT3B0aW9uc1xufVxuIl0sIm5hbWVzIjpbImJhTW9kZWxGaWVsZEtleXMiLCJiYU1vZGVsS2V5IiwiYmFzZVNsdWdzIiwiZGVmYXVsdHMiLCJzdXBwb3J0ZWRCQVBsdWdpbklkcyIsImNvbmZpZ3VyZUFkbWluUGx1Z2luIiwiY29uZmlndXJlQXBpS2V5UGx1Z2luIiwiY29uZmlndXJlT2lkY1BsdWdpbiIsImNvbmZpZ3VyZU9yZ2FuaXphdGlvblBsdWdpbiIsImNvbmZpZ3VyZVBhc3NrZXlQbHVnaW4iLCJjb25maWd1cmVTc29QbHVnaW4iLCJlbnN1cmVQYXNzd29yZFNldEJlZm9yZVVzZXJDcmVhdGUiLCJoYXNoUGFzc3dvcmQiLCJ2ZXJpZnlQYXNzd29yZCIsInNhdmVUb0p3dE1pZGRsZXdhcmUiLCJzZXQiLCJnZXRTY2hlbWFDb2xsZWN0aW9uU2x1ZyIsImdldFNjaGVtYUZpZWxkTmFtZSIsImNvbmZpZ3VyZVR3b0ZhY3RvclBsdWdpbiIsInJlcXVpcmVBZG1pbkludml0ZUZvclNpZ25VcE1pZGRsZXdhcmUiLCJ1c2VBZG1pbkludml0ZUFmdGVyRW1haWxTaWduVXBNaWRkbGV3YXJlIiwic2FuaXRpemVCZXR0ZXJBdXRoT3B0aW9ucyIsImNvbmZpZyIsInBsdWdpbk9wdGlvbnMiLCJjb2xsZWN0aW9uU2NoZW1hTWFwIiwiYmV0dGVyQXV0aE9wdGlvbnMiLCJ1c2VyQ29sbGVjdGlvblNsdWciLCJ1c2VyIiwiYWRtaW5JbnZpdGF0aW9uQ29sbGVjdGlvblNsdWciLCJhZG1pbkludml0YXRpb25zIiwic2x1ZyIsInR5cGUiLCJkZWZhdWx0VmFsdWUiLCJ1c2VycyIsImRlZmF1bHRSb2xlIiwidXNlclJvbGUiLCJpbnB1dCIsImJhc2VNb2RlbHMiLCJhY2NvdW50Iiwic2Vzc2lvbiIsInZlcmlmaWNhdGlvbiIsImZvckVhY2giLCJtb2RlbCIsInVzZXJJZCIsImVtYWlsQW5kUGFzc3dvcmQiLCJlbmFibGVkIiwiZGlzYWJsZURlZmF1bHRQYXlsb2FkQXV0aCIsInBhc3N3b3JkIiwidmVyaWZ5IiwiaGFzaCIsInJlcXVpcmVBZG1pbkludml0ZUZvclNpZ25VcCIsInNvY2lhbFByb3ZpZGVycyIsIk9iamVjdCIsImZyb21FbnRyaWVzIiwiZW50cmllcyIsIm1hcCIsInByb3ZpZGVyIiwiZGlzYWJsZUltcGxpY2l0U2lnblVwIiwib3B0aW9ucyIsImJsb2NrRmlyc3RCZXR0ZXJBdXRoVmVyaWZpY2F0aW9uRW1haWwiLCJvcmlnaW5hbFNlbmRFbWFpbCIsImVtYWlsVmVyaWZpY2F0aW9uIiwic2VuZFZlcmlmaWNhdGlvbkVtYWlsIiwiZGF0YSIsInJlcXVlc3QiLCJ0aW1lU2luY2VDcmVhdGlvbiIsIkRhdGUiLCJnZXRUaW1lIiwiY3JlYXRlZEF0IiwiZXJyb3IiLCJjb25zb2xlIiwicGx1Z2lucyIsImxlbmd0aCIsInN1cHBvcnRlZFBsdWdpbnMiLCJmaWx0ZXIiLCJwbHVnaW4iLCJ2YWx1ZXMiLCJpbmNsdWRlcyIsImlkIiwidW5zdXBwb3J0ZWRJZHMiLCJwIiwiam9pbiIsIndhcm4iLCJwbHVnaW5Db25maWd1cmF0b3JzIiwiYWRtaW4iLCJhcGlLZXkiLCJwYXNza2V5Iiwib3JnYW5pemF0aW9uIiwic3NvIiwib2lkYyIsInR3b0ZhY3RvciIsImNvbmZpZ3VyYXRvciIsIkVycm9yIiwic2FuaXRpemVkT3B0aW9ucyJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsZ0JBQWdCLEVBQUVDLFVBQVUsRUFBRUMsU0FBUyxFQUFFQyxRQUFRLEVBQUVDLG9CQUFvQixRQUFRLGtCQUFnQztBQUN4SCxTQUFTQyxvQkFBb0IsUUFBUSxpQkFBZ0I7QUFDckQsU0FBU0MscUJBQXFCLFFBQVEsbUJBQWtCO0FBQ3hELFNBQVNDLG1CQUFtQixRQUFRLGdCQUFlO0FBQ25ELFNBQVNDLDJCQUEyQixRQUFRLHlCQUF3QjtBQUNwRSxTQUFTQyxzQkFBc0IsUUFBUSxtQkFBa0I7QUFDekQsU0FBU0Msa0JBQWtCLFFBQVEsZUFBYztBQUNqRCxTQUFTQyxpQ0FBaUMsUUFBUSw0Q0FBMkM7QUFDN0YsU0FBU0MsWUFBWSxFQUFFQyxjQUFjLFFBQVEsbUJBQWtCO0FBQy9ELFNBQVNDLG1CQUFtQixRQUFRLGlDQUFnQztBQUNwRSxTQUFTQyxHQUFHLFFBQVEsa0JBQWlCO0FBQ3JDLFNBQVNDLHVCQUF1QixFQUFFQyxrQkFBa0IsUUFBUSwrQ0FBOEM7QUFLMUcsU0FBU0Msd0JBQXdCLFFBQVEsc0JBQXFCO0FBQzlELFNBQVNDLHFDQUFxQyxRQUFRLHNEQUFxRDtBQUMzRyxTQUFTQyx3Q0FBd0MsUUFBUSwwREFBeUQ7QUFFbEg7O0NBRUMsR0FDRCxPQUFPLFNBQVNDLDBCQUEwQixFQUN4Q0MsTUFBTSxFQUNOQyxhQUFhLEVBQ2JDLG1CQUFtQixFQUtwQjtJQUVDLE1BQU1DLG9CQUFnRDtRQUFFLEdBQUlGLGNBQWNFLGlCQUFpQixJQUFJLENBQUMsQ0FBQztJQUFFO0lBRW5HLE1BQU1DLHFCQUFxQlYsd0JBQXdCUSxxQkFBcUJ2QixXQUFXMEIsSUFBSTtJQUN2RixNQUFNQyxnQ0FBZ0NMLGNBQWNNLGdCQUFnQixFQUFFQyxRQUFRNUIsVUFBVTJCLGdCQUFnQjtJQUV4R2QsSUFBSVUsbUJBQW1CLEdBQUd4QixXQUFXMEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFRDtJQUN2RFgsSUFBSVUsbUJBQW1CLEdBQUd4QixXQUFXMEIsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEVBQUU7UUFDakVJLE1BQU07UUFDTkMsY0FBY1QsY0FBY1UsS0FBSyxFQUFFQyxlQUFlL0IsU0FBU2dDLFFBQVE7UUFDbkVDLE9BQU87SUFDVDtJQUVBLE1BQU1DLGFBQWE7UUFBQ3BDLFdBQVdxQyxPQUFPO1FBQUVyQyxXQUFXc0MsT0FBTztRQUFFdEMsV0FBV3VDLFlBQVk7S0FBQztJQUNwRkgsV0FBV0ksT0FBTyxDQUFDLENBQUNDLFFBQ2xCM0IsSUFBSVUsbUJBQW1CLEdBQUdpQixNQUFNLFVBQVUsQ0FBQyxFQUFFMUIsd0JBQXdCUSxxQkFBcUJrQjtJQUU1RjNCLElBQUlVLG1CQUFtQixHQUFHeEIsV0FBV3FDLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBRXJCLG1CQUFtQk8scUJBQXFCdkIsV0FBV3FDLE9BQU8sRUFBRXRDLGlCQUFpQnNDLE9BQU8sQ0FBQ0ssTUFBTTtJQUN6SjVCLElBQUlVLG1CQUFtQixHQUFHeEIsV0FBV3NDLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBRXRCLG1CQUFtQk8scUJBQXFCdkIsV0FBV3NDLE9BQU8sRUFBRXZDLGlCQUFpQnVDLE9BQU8sQ0FBQ0ksTUFBTTtJQUV6SjVCLElBQUlVLG1CQUFtQixDQUFDLHdCQUF3QixDQUFDLEVBQUVBLGtCQUFrQm1CLGdCQUFnQixFQUFFQyxXQUFXO0lBRWxHLDhCQUE4QjtJQUM5QixJQUFJcEIsa0JBQWtCbUIsZ0JBQWdCLEVBQUVDLFdBQVcsQ0FBQ3RCLGNBQWN1Qix5QkFBeUIsRUFBRTtRQUMzRnJCLGtCQUFrQm1CLGdCQUFnQixDQUFDRyxRQUFRLEdBQUc7WUFDNUMsR0FBSXRCLGtCQUFrQm1CLGdCQUFnQixDQUFDRyxRQUFRLElBQUksQ0FBQyxDQUFDO1lBQ3JEQyxRQUFRLENBQUMsRUFBRUMsSUFBSSxFQUFFRixRQUFRLEVBQUUsR0FBS2xDLGVBQWU7b0JBQUVvQztvQkFBTUY7Z0JBQVM7WUFDaEVFLE1BQU0sQ0FBQ0YsV0FBYW5DLGFBQWFtQztRQUNuQztJQUNGO0lBRUEsa0NBQWtDO0lBQ2xDLElBQUl4QixjQUFjMkIsMkJBQTJCLEVBQUU7UUFDN0N6QixrQkFBa0IwQixlQUFlLEdBQUcxQixrQkFBa0IwQixlQUFlLElBQUksQ0FBQztRQUMxRTFCLGtCQUFrQjBCLGVBQWUsR0FBR0MsT0FBT0MsV0FBVyxDQUNwREQsT0FBT0UsT0FBTyxDQUFDN0Isa0JBQWtCMEIsZUFBZSxFQUFFSSxHQUFHLENBQUMsQ0FBQyxDQUFDQyxVQUFVbEMsT0FBTyxHQUFLO2dCQUFDa0M7Z0JBQVU7b0JBQUUsR0FBR2xDLE1BQU07b0JBQUVtQyx1QkFBdUI7Z0JBQUs7YUFBRTtRQUV0SXRDLHNDQUFzQztZQUNwQ3VDLFNBQVNqQztZQUNURjtRQUNGO0lBRUY7SUFDQUgseUNBQXlDO1FBQ3ZDc0MsU0FBU2pDO1FBQ1RHO1FBQ0FGO0lBQ0Y7SUFFQSxxQ0FBcUM7SUFDckMsSUFBSUgsY0FBY1UsS0FBSyxFQUFFMEIseUNBQXlDLENBQUNwQyxjQUFjdUIseUJBQXlCLEVBQUU7UUFDMUcsTUFBTWMsb0JBQW9CbkMsbUJBQW1Cb0MsbUJBQW1CQztRQUNoRSxJQUFJLE9BQU9GLHNCQUFzQixZQUFZO1lBQzNDbkMsa0JBQWtCb0MsaUJBQWlCLEdBQUdwQyxrQkFBa0JvQyxpQkFBaUIsSUFBSSxDQUFDO1lBQzlFcEMsa0JBQWtCb0MsaUJBQWlCLENBQUNDLHFCQUFxQixHQUFHLE9BQU9DLE1BQU1DO2dCQUN2RSxJQUFJO29CQUNGLE1BQU1DLG9CQUFvQixJQUFJQyxPQUFPQyxPQUFPLEtBQUssSUFBSUQsS0FBS0gsS0FBS3BDLElBQUksQ0FBQ3lDLFNBQVMsRUFBRUQsT0FBTztvQkFDdEYsNEVBQTRFO29CQUM1RSxJQUFJRixxQkFBcUIsT0FBTzt3QkFDOUIsTUFBTUwsa0JBQWtCRyxNQUFNQztvQkFDaEM7Z0JBQ0YsRUFBRSxPQUFPSyxPQUFPO29CQUNkQyxRQUFRRCxLQUFLLENBQUMscUNBQXFDQTtnQkFDckQ7WUFDRjtRQUNGO0lBQ0Y7SUFFQSw4Q0FBOEM7SUFDOUMsSUFBSSxDQUFDOUMsY0FBY3VCLHlCQUF5QixFQUFFO1FBQzVDbkMsa0NBQWtDYztJQUNwQztJQUVBLGtCQUFrQjtJQUNsQixJQUFJQSxrQkFBa0I4QyxPQUFPLEVBQUVDLFFBQVE7UUFDckMsSUFBSTtZQUNGLG1DQUFtQztZQUNuQyxNQUFNQyxtQkFBbUJoRCxrQkFBa0I4QyxPQUFPLENBQUNHLE1BQU0sQ0FBQyxDQUFDQyxTQUFXdkIsT0FBT3dCLE1BQU0sQ0FBQ3hFLHNCQUFzQnlFLFFBQVEsQ0FBQ0YsT0FBT0csRUFBRTtZQUU1SCxzQ0FBc0M7WUFDdEMsSUFBSUwsaUJBQWlCRCxNQUFNLEtBQUsvQyxrQkFBa0I4QyxPQUFPLENBQUNDLE1BQU0sRUFBRTtnQkFDaEUsTUFBTU8saUJBQWlCdEQsa0JBQWtCOEMsT0FBTyxDQUM3Q0csTUFBTSxDQUFDLENBQUNNLElBQU0sQ0FBQzVCLE9BQU93QixNQUFNLENBQUN4RSxzQkFBc0J5RSxRQUFRLENBQUNHLEVBQUVGLEVBQUUsR0FDaEV2QixHQUFHLENBQUMsQ0FBQ3lCLElBQU1BLEVBQUVGLEVBQUUsRUFDZkcsSUFBSSxDQUFDO2dCQUVSWCxRQUFRWSxJQUFJLENBQUMsQ0FBQyxnQ0FBZ0MsRUFBRUgsZUFBZSxhQUFhLEVBQUUzQixPQUFPd0IsTUFBTSxDQUFDeEUsc0JBQXNCNkUsSUFBSSxDQUFDLE9BQU87WUFDaEk7WUFFQSw0QkFBNEI7WUFDNUIsTUFBTUUsc0JBQXNCO2dCQUMxQixDQUFDL0UscUJBQXFCZ0YsS0FBSyxDQUFDLEVBQUUsQ0FBQ0osSUFBVzNFLHFCQUFxQjJFLEdBQUd6RDtnQkFDbEUsQ0FBQ25CLHFCQUFxQmlGLE1BQU0sQ0FBQyxFQUFFLENBQUNMLElBQVcxRSxzQkFBc0IwRSxHQUFHeEQ7Z0JBQ3BFLENBQUNwQixxQkFBcUJrRixPQUFPLENBQUMsRUFBRSxDQUFDTixJQUFXdkUsdUJBQXVCdUUsR0FBR3hEO2dCQUN0RSxDQUFDcEIscUJBQXFCbUYsWUFBWSxDQUFDLEVBQUUsQ0FBQ1AsSUFBV3hFLDRCQUE0QndFLEdBQUd4RDtnQkFDaEYsQ0FBQ3BCLHFCQUFxQm9GLEdBQUcsQ0FBQyxFQUFFLENBQUNSLElBQVd0RSxtQkFBbUJzRSxHQUFHeEQ7Z0JBQzlELENBQUNwQixxQkFBcUJxRixJQUFJLENBQUMsRUFBRSxDQUFDVCxJQUFXekUsb0JBQW9CeUUsR0FBR3hEO2dCQUNoRSxDQUFDcEIscUJBQXFCc0YsU0FBUyxDQUFDLEVBQUUsQ0FBQ1YsSUFBVzlELHlCQUF5QjhELEdBQUd4RDtZQUM1RTtZQUVBaUQsaUJBQWlCaEMsT0FBTyxDQUFDLENBQUNrQztnQkFDeEIsTUFBTWdCLGVBQWVSLG1CQUFtQixDQUFDUixPQUFPRyxFQUFFLENBQXFDO2dCQUN2RixJQUFJYSxjQUFjQSxhQUFhaEI7WUFDakM7WUFFQWxELGtCQUFrQjhDLE9BQU8sR0FBR0U7UUFDOUIsRUFBRSxPQUFPSixPQUFPO1lBQ2QsTUFBTSxJQUFJdUIsTUFBTSxDQUFDLHFDQUFxQyxFQUFFdkIsT0FBTztRQUNqRTtJQUNGO0lBRUF2RCxvQkFBb0I7UUFDbEIrRSxrQkFBa0JwRTtRQUNsQkg7UUFDQUU7SUFDRjtJQUVBLE9BQU9DO0FBQ1QifQ==
@@ -0,0 +1,10 @@
1
+ import type { SanitizedBetterAuthOptions } from '@/better-auth/plugin/types';
2
+ /**
3
+ * Mofies options object and adds a middleware to check for admin invite for sign up
4
+ */
5
+ export declare const useAdminInviteAfterEmailSignUpMiddleware: ({ options, adminInvitationCollectionSlug, userCollectionSlug }: {
6
+ options: SanitizedBetterAuthOptions;
7
+ adminInvitationCollectionSlug: string;
8
+ userCollectionSlug: string;
9
+ }) => Promise<void>;
10
+ //# sourceMappingURL=use-admin-invite-after-email-sign-up-middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-admin-invite-after-email-sign-up-middleware.d.ts","sourceRoot":"","sources":["../../../../../../src/better-auth/plugin/lib/sanitize-better-auth-options/utils/use-admin-invite-after-email-sign-up-middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAA;AAG5E;;GAEG;AACH,eAAO,MAAM,wCAAwC,GAAU,gEAI5D;IACD,OAAO,EAAE,0BAA0B,CAAA;IACnC,6BAA6B,EAAE,MAAM,CAAA;IACrC,kBAAkB,EAAE,MAAM,CAAA;CAC3B,kBAuDA,CAAA"}
@@ -0,0 +1,62 @@
1
+ import { createAuthMiddleware } from "better-auth/api";
2
+ /**
3
+ * Mofies options object and adds a middleware to check for admin invite for sign up
4
+ */ export const useAdminInviteAfterEmailSignUpMiddleware = async ({ options, adminInvitationCollectionSlug, userCollectionSlug })=>{
5
+ options.hooks = options.hooks || {};
6
+ const originalAfter = options.hooks.after;
7
+ options.hooks.after = createAuthMiddleware(async (ctx)=>{
8
+ const adapter = ctx.context.adapter;
9
+ const internalAdapter = ctx.context.internalAdapter;
10
+ if (ctx.path !== '/sign-up/email') {
11
+ if (typeof originalAfter === 'function') originalAfter(ctx);
12
+ return;
13
+ }
14
+ const email = ctx.body.email;
15
+ const adminInviteToken = ctx?.query?.adminInviteToken ?? ctx.body.adminInviteToken;
16
+ const adminInvitation = await adapter.findOne({
17
+ model: adminInvitationCollectionSlug,
18
+ where: [
19
+ {
20
+ field: 'token',
21
+ value: adminInviteToken,
22
+ operator: 'eq'
23
+ }
24
+ ]
25
+ });
26
+ if (!adminInvitation || !adminInvitation?.role || !email) {
27
+ if (typeof originalAfter === 'function') originalAfter(ctx);
28
+ return;
29
+ }
30
+ const newlyCreatedUser = await internalAdapter.findUserByEmail(email);
31
+ if (!newlyCreatedUser) {
32
+ if (typeof originalAfter === 'function') originalAfter(ctx);
33
+ return;
34
+ }
35
+ await adapter.update({
36
+ model: userCollectionSlug,
37
+ where: [
38
+ {
39
+ field: 'id',
40
+ value: newlyCreatedUser.user.id,
41
+ operator: 'eq'
42
+ }
43
+ ],
44
+ update: {
45
+ role: adminInvitation?.role
46
+ }
47
+ });
48
+ await adapter.delete({
49
+ model: adminInvitationCollectionSlug,
50
+ where: [
51
+ {
52
+ field: 'id',
53
+ value: adminInvitation.id,
54
+ operator: 'eq'
55
+ }
56
+ ]
57
+ });
58
+ if (typeof originalAfter === 'function') originalAfter(ctx);
59
+ });
60
+ };
61
+
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL3Nhbml0aXplLWJldHRlci1hdXRoLW9wdGlvbnMvdXRpbHMvdXNlLWFkbWluLWludml0ZS1hZnRlci1lbWFpbC1zaWduLXVwLW1pZGRsZXdhcmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRCZXR0ZXJBdXRoT3B0aW9ucyB9IGZyb20gJ0AvYmV0dGVyLWF1dGgvcGx1Z2luL3R5cGVzJ1xuaW1wb3J0IHsgY3JlYXRlQXV0aE1pZGRsZXdhcmUgfSBmcm9tICdiZXR0ZXItYXV0aC9hcGknXG5cbi8qKlxuICogTW9maWVzIG9wdGlvbnMgb2JqZWN0IGFuZCBhZGRzIGEgbWlkZGxld2FyZSB0byBjaGVjayBmb3IgYWRtaW4gaW52aXRlIGZvciBzaWduIHVwXG4gKi9cbmV4cG9ydCBjb25zdCB1c2VBZG1pbkludml0ZUFmdGVyRW1haWxTaWduVXBNaWRkbGV3YXJlID0gYXN5bmMgKHtcbiAgb3B0aW9ucyxcbiAgYWRtaW5JbnZpdGF0aW9uQ29sbGVjdGlvblNsdWcsXG4gIHVzZXJDb2xsZWN0aW9uU2x1Z1xufToge1xuICBvcHRpb25zOiBTYW5pdGl6ZWRCZXR0ZXJBdXRoT3B0aW9uc1xuICBhZG1pbkludml0YXRpb25Db2xsZWN0aW9uU2x1Zzogc3RyaW5nXG4gIHVzZXJDb2xsZWN0aW9uU2x1Zzogc3RyaW5nXG59KSA9PiB7XG4gIG9wdGlvbnMuaG9va3MgPSBvcHRpb25zLmhvb2tzIHx8IHt9XG4gIGNvbnN0IG9yaWdpbmFsQWZ0ZXIgPSBvcHRpb25zLmhvb2tzLmFmdGVyXG4gIG9wdGlvbnMuaG9va3MuYWZ0ZXIgPSBjcmVhdGVBdXRoTWlkZGxld2FyZShhc3luYyAoY3R4KSA9PiB7XG4gICAgY29uc3QgYWRhcHRlciA9IGN0eC5jb250ZXh0LmFkYXB0ZXJcbiAgICBjb25zdCBpbnRlcm5hbEFkYXB0ZXIgPSBjdHguY29udGV4dC5pbnRlcm5hbEFkYXB0ZXJcblxuICAgIGlmIChjdHgucGF0aCAhPT0gJy9zaWduLXVwL2VtYWlsJykge1xuICAgICAgaWYgKHR5cGVvZiBvcmlnaW5hbEFmdGVyID09PSAnZnVuY3Rpb24nKSBvcmlnaW5hbEFmdGVyKGN0eClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjb25zdCBlbWFpbCA9IGN0eC5ib2R5LmVtYWlsXG4gICAgY29uc3QgYWRtaW5JbnZpdGVUb2tlbiA9IGN0eD8ucXVlcnk/LmFkbWluSW52aXRlVG9rZW4gPz8gY3R4LmJvZHkuYWRtaW5JbnZpdGVUb2tlblxuICAgIGNvbnN0IGFkbWluSW52aXRhdGlvbiA9IGF3YWl0IGFkYXB0ZXIuZmluZE9uZSh7XG4gICAgICBtb2RlbDogYWRtaW5JbnZpdGF0aW9uQ29sbGVjdGlvblNsdWcsXG4gICAgICB3aGVyZTogW3tcbiAgICAgICAgZmllbGQ6ICd0b2tlbicsXG4gICAgICAgIHZhbHVlOiBhZG1pbkludml0ZVRva2VuLFxuICAgICAgICBvcGVyYXRvcjogJ2VxJ1xuICAgICAgfV1cbiAgICB9KSBhcyBhbnlcbiAgICBpZighYWRtaW5JbnZpdGF0aW9uIHx8ICFhZG1pbkludml0YXRpb24/LnJvbGUgfHwgIWVtYWlsKSB7XG4gICAgICBpZiAodHlwZW9mIG9yaWdpbmFsQWZ0ZXIgPT09ICdmdW5jdGlvbicpIG9yaWdpbmFsQWZ0ZXIoY3R4KVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgbmV3bHlDcmVhdGVkVXNlciA9IGF3YWl0IGludGVybmFsQWRhcHRlci5maW5kVXNlckJ5RW1haWwoZW1haWwpXG4gICAgaWYoIW5ld2x5Q3JlYXRlZFVzZXIpIHtcbiAgICAgIGlmICh0eXBlb2Ygb3JpZ2luYWxBZnRlciA9PT0gJ2Z1bmN0aW9uJykgb3JpZ2luYWxBZnRlcihjdHgpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBhd2FpdCBhZGFwdGVyLnVwZGF0ZSh7XG4gICAgICBtb2RlbDogdXNlckNvbGxlY3Rpb25TbHVnLFxuICAgICAgd2hlcmU6IFt7XG4gICAgICAgIGZpZWxkOiAnaWQnLFxuICAgICAgICB2YWx1ZTogbmV3bHlDcmVhdGVkVXNlci51c2VyLmlkLFxuICAgICAgICBvcGVyYXRvcjogJ2VxJ1xuICAgICAgfV0sXG4gICAgICB1cGRhdGU6IHtcbiAgICAgICAgcm9sZTogYWRtaW5JbnZpdGF0aW9uPy5yb2xlXG4gICAgICB9XG4gICAgfSlcblxuICAgIGF3YWl0IGFkYXB0ZXIuZGVsZXRlKHtcbiAgICAgIG1vZGVsOiBhZG1pbkludml0YXRpb25Db2xsZWN0aW9uU2x1ZyxcbiAgICAgIHdoZXJlOiBbe1xuICAgICAgICBmaWVsZDogJ2lkJyxcbiAgICAgICAgdmFsdWU6IGFkbWluSW52aXRhdGlvbi5pZCxcbiAgICAgICAgb3BlcmF0b3I6ICdlcSdcbiAgICAgIH1dXG4gICAgfSlcbiAgICBcbiAgICBpZiAodHlwZW9mIG9yaWdpbmFsQWZ0ZXIgPT09ICdmdW5jdGlvbicpIG9yaWdpbmFsQWZ0ZXIoY3R4KVxuICB9KVxufVxuIl0sIm5hbWVzIjpbImNyZWF0ZUF1dGhNaWRkbGV3YXJlIiwidXNlQWRtaW5JbnZpdGVBZnRlckVtYWlsU2lnblVwTWlkZGxld2FyZSIsIm9wdGlvbnMiLCJhZG1pbkludml0YXRpb25Db2xsZWN0aW9uU2x1ZyIsInVzZXJDb2xsZWN0aW9uU2x1ZyIsImhvb2tzIiwib3JpZ2luYWxBZnRlciIsImFmdGVyIiwiY3R4IiwiYWRhcHRlciIsImNvbnRleHQiLCJpbnRlcm5hbEFkYXB0ZXIiLCJwYXRoIiwiZW1haWwiLCJib2R5IiwiYWRtaW5JbnZpdGVUb2tlbiIsInF1ZXJ5IiwiYWRtaW5JbnZpdGF0aW9uIiwiZmluZE9uZSIsIm1vZGVsIiwid2hlcmUiLCJmaWVsZCIsInZhbHVlIiwib3BlcmF0b3IiLCJyb2xlIiwibmV3bHlDcmVhdGVkVXNlciIsImZpbmRVc2VyQnlFbWFpbCIsInVwZGF0ZSIsInVzZXIiLCJpZCIsImRlbGV0ZSJdLCJtYXBwaW5ncyI6IkFBQ0EsU0FBU0Esb0JBQW9CLFFBQVEsa0JBQWlCO0FBRXREOztDQUVDLEdBQ0QsT0FBTyxNQUFNQywyQ0FBMkMsT0FBTyxFQUM3REMsT0FBTyxFQUNQQyw2QkFBNkIsRUFDN0JDLGtCQUFrQixFQUtuQjtJQUNDRixRQUFRRyxLQUFLLEdBQUdILFFBQVFHLEtBQUssSUFBSSxDQUFDO0lBQ2xDLE1BQU1DLGdCQUFnQkosUUFBUUcsS0FBSyxDQUFDRSxLQUFLO0lBQ3pDTCxRQUFRRyxLQUFLLENBQUNFLEtBQUssR0FBR1AscUJBQXFCLE9BQU9RO1FBQ2hELE1BQU1DLFVBQVVELElBQUlFLE9BQU8sQ0FBQ0QsT0FBTztRQUNuQyxNQUFNRSxrQkFBa0JILElBQUlFLE9BQU8sQ0FBQ0MsZUFBZTtRQUVuRCxJQUFJSCxJQUFJSSxJQUFJLEtBQUssa0JBQWtCO1lBQ2pDLElBQUksT0FBT04sa0JBQWtCLFlBQVlBLGNBQWNFO1lBQ3ZEO1FBQ0Y7UUFDQSxNQUFNSyxRQUFRTCxJQUFJTSxJQUFJLENBQUNELEtBQUs7UUFDNUIsTUFBTUUsbUJBQW1CUCxLQUFLUSxPQUFPRCxvQkFBb0JQLElBQUlNLElBQUksQ0FBQ0MsZ0JBQWdCO1FBQ2xGLE1BQU1FLGtCQUFrQixNQUFNUixRQUFRUyxPQUFPLENBQUM7WUFDNUNDLE9BQU9oQjtZQUNQaUIsT0FBTztnQkFBQztvQkFDTkMsT0FBTztvQkFDUEMsT0FBT1A7b0JBQ1BRLFVBQVU7Z0JBQ1o7YUFBRTtRQUNKO1FBQ0EsSUFBRyxDQUFDTixtQkFBbUIsQ0FBQ0EsaUJBQWlCTyxRQUFRLENBQUNYLE9BQU87WUFDdkQsSUFBSSxPQUFPUCxrQkFBa0IsWUFBWUEsY0FBY0U7WUFDdkQ7UUFDRjtRQUVBLE1BQU1pQixtQkFBbUIsTUFBTWQsZ0JBQWdCZSxlQUFlLENBQUNiO1FBQy9ELElBQUcsQ0FBQ1ksa0JBQWtCO1lBQ3BCLElBQUksT0FBT25CLGtCQUFrQixZQUFZQSxjQUFjRTtZQUN2RDtRQUNGO1FBRUEsTUFBTUMsUUFBUWtCLE1BQU0sQ0FBQztZQUNuQlIsT0FBT2Y7WUFDUGdCLE9BQU87Z0JBQUM7b0JBQ05DLE9BQU87b0JBQ1BDLE9BQU9HLGlCQUFpQkcsSUFBSSxDQUFDQyxFQUFFO29CQUMvQk4sVUFBVTtnQkFDWjthQUFFO1lBQ0ZJLFFBQVE7Z0JBQ05ILE1BQU1QLGlCQUFpQk87WUFDekI7UUFDRjtRQUVBLE1BQU1mLFFBQVFxQixNQUFNLENBQUM7WUFDbkJYLE9BQU9oQjtZQUNQaUIsT0FBTztnQkFBQztvQkFDTkMsT0FBTztvQkFDUEMsT0FBT0wsZ0JBQWdCWSxFQUFFO29CQUN6Qk4sVUFBVTtnQkFDWjthQUFFO1FBQ0o7UUFFQSxJQUFJLE9BQU9qQixrQkFBa0IsWUFBWUEsY0FBY0U7SUFDekQ7QUFDRixFQUFDIn0=