payload-auth 1.6.4 → 1.6.6

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 (197) hide show
  1. package/dist/better-auth/adapter/index.d.ts.map +1 -1
  2. package/dist/better-auth/adapter/index.js +19 -16
  3. package/dist/better-auth/adapter/transform/index.d.ts.map +1 -1
  4. package/dist/better-auth/adapter/transform/index.js +1 -1
  5. package/dist/better-auth/adapter/types.d.ts +4 -2
  6. package/dist/better-auth/adapter/types.d.ts.map +1 -1
  7. package/dist/better-auth/adapter/types.js +1 -1
  8. package/dist/better-auth/generated-types.d.ts +110 -46
  9. package/dist/better-auth/generated-types.d.ts.map +1 -1
  10. package/dist/better-auth/generated-types.js +1 -1
  11. package/dist/better-auth/plugin/constants.d.ts +15 -1
  12. package/dist/better-auth/plugin/constants.d.ts.map +1 -1
  13. package/dist/better-auth/plugin/constants.js +21 -7
  14. package/dist/better-auth/plugin/helpers/get-better-auth-schema.js +1 -1
  15. package/dist/better-auth/plugin/helpers/get-collection.d.ts +1 -1
  16. package/dist/better-auth/plugin/helpers/get-collection.d.ts.map +1 -1
  17. package/dist/better-auth/plugin/helpers/get-collection.js +1 -1
  18. package/dist/better-auth/plugin/helpers/get-signed-cookie.d.ts +3 -0
  19. package/dist/better-auth/plugin/helpers/get-signed-cookie.d.ts.map +1 -0
  20. package/dist/better-auth/plugin/helpers/get-signed-cookie.js +63 -0
  21. package/dist/better-auth/plugin/helpers/prepare-session-data.d.ts +7 -7
  22. package/dist/better-auth/plugin/helpers/prepare-session-data.d.ts.map +1 -1
  23. package/dist/better-auth/plugin/helpers/prepare-session-data.js +1 -1
  24. package/dist/better-auth/plugin/helpers/sync-resolved-schema-with-collection-map.d.ts.map +1 -1
  25. package/dist/better-auth/plugin/helpers/sync-resolved-schema-with-collection-map.js +2 -1
  26. package/dist/better-auth/plugin/index.d.ts.map +1 -1
  27. package/dist/better-auth/plugin/index.js +6 -3
  28. package/dist/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.d.ts +1 -1
  29. package/dist/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.d.ts.map +1 -1
  30. package/dist/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.js +1 -2
  31. package/dist/better-auth/plugin/lib/build-collections/accounts/index.d.ts.map +1 -1
  32. package/dist/better-auth/plugin/lib/build-collections/accounts/index.js +2 -2
  33. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-after-read.d.ts +1 -1
  34. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-after-read.d.ts.map +1 -1
  35. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-after-read.js +1 -1
  36. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/index.d.ts +1 -1
  37. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/index.d.ts.map +1 -1
  38. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/index.js +1 -1
  39. package/dist/better-auth/plugin/lib/build-collections/api-keys.d.ts +1 -1
  40. package/dist/better-auth/plugin/lib/build-collections/api-keys.d.ts.map +1 -1
  41. package/dist/better-auth/plugin/lib/build-collections/api-keys.js +1 -1
  42. package/dist/better-auth/plugin/lib/build-collections/device-code.d.ts +4 -0
  43. package/dist/better-auth/plugin/lib/build-collections/device-code.d.ts.map +1 -0
  44. package/dist/better-auth/plugin/lib/build-collections/device-code.js +49 -0
  45. package/dist/better-auth/plugin/lib/build-collections/index.d.ts.map +1 -1
  46. package/dist/better-auth/plugin/lib/build-collections/index.js +6 -2
  47. package/dist/better-auth/plugin/lib/build-collections/jwks.d.ts.map +1 -1
  48. package/dist/better-auth/plugin/lib/build-collections/jwks.js +1 -1
  49. package/dist/better-auth/plugin/lib/build-collections/members.js +1 -1
  50. package/dist/better-auth/plugin/lib/build-collections/oauth-access-tokens.d.ts.map +1 -1
  51. package/dist/better-auth/plugin/lib/build-collections/oauth-access-tokens.js +1 -1
  52. package/dist/better-auth/plugin/lib/build-collections/oauth-applications.d.ts.map +1 -1
  53. package/dist/better-auth/plugin/lib/build-collections/oauth-applications.js +1 -1
  54. package/dist/better-auth/plugin/lib/build-collections/oauth-consents.d.ts.map +1 -1
  55. package/dist/better-auth/plugin/lib/build-collections/oauth-consents.js +2 -2
  56. package/dist/better-auth/plugin/lib/build-collections/passkeys.d.ts.map +1 -1
  57. package/dist/better-auth/plugin/lib/build-collections/passkeys.js +1 -1
  58. package/dist/better-auth/plugin/lib/build-collections/sessions.d.ts.map +1 -1
  59. package/dist/better-auth/plugin/lib/build-collections/sessions.js +14 -1
  60. package/dist/better-auth/plugin/lib/build-collections/subscriptions.d.ts.map +1 -1
  61. package/dist/better-auth/plugin/lib/build-collections/subscriptions.js +1 -1
  62. package/dist/better-auth/plugin/lib/build-collections/team-members.d.ts +4 -0
  63. package/dist/better-auth/plugin/lib/build-collections/team-members.d.ts.map +1 -0
  64. package/dist/better-auth/plugin/lib/build-collections/team-members.js +56 -0
  65. package/dist/better-auth/plugin/lib/build-collections/teams.d.ts.map +1 -1
  66. package/dist/better-auth/plugin/lib/build-collections/teams.js +1 -1
  67. package/dist/better-auth/plugin/lib/build-collections/users/better-auth-strategy.js +1 -1
  68. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/index.js +1 -1
  69. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/refresh-token.d.ts.map +1 -1
  70. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/refresh-token.js +5 -2
  71. package/dist/better-auth/plugin/lib/build-collections/users/index.d.ts.map +1 -1
  72. package/dist/better-auth/plugin/lib/build-collections/users/index.js +1 -1
  73. package/dist/better-auth/plugin/lib/build-collections/utils/filter-properties.d.ts +10 -0
  74. package/dist/better-auth/plugin/lib/build-collections/utils/filter-properties.d.ts.map +1 -0
  75. package/dist/better-auth/plugin/lib/build-collections/utils/filter-properties.js +93 -0
  76. package/dist/better-auth/plugin/lib/build-collections/utils/model-field-transformations.d.ts +8 -12
  77. package/dist/better-auth/plugin/lib/build-collections/utils/model-field-transformations.d.ts.map +1 -1
  78. package/dist/better-auth/plugin/lib/build-collections/utils/model-field-transformations.js +5 -3
  79. package/dist/better-auth/plugin/lib/build-collections/utils/transform-schema-fields-to-payload.d.ts +6 -7
  80. package/dist/better-auth/plugin/lib/build-collections/utils/transform-schema-fields-to-payload.d.ts.map +1 -1
  81. package/dist/better-auth/plugin/lib/build-collections/utils/transform-schema-fields-to-payload.js +5 -2
  82. package/dist/better-auth/plugin/lib/build-collections/verifications.d.ts.map +1 -1
  83. package/dist/better-auth/plugin/lib/build-collections/verifications.js +1 -1
  84. package/dist/better-auth/plugin/lib/init-better-auth.d.ts +1 -1
  85. package/dist/better-auth/plugin/lib/init-better-auth.d.ts.map +1 -1
  86. package/dist/better-auth/plugin/lib/init-better-auth.js +5 -3
  87. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/admin-plugin.d.ts +1 -1
  88. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/admin-plugin.d.ts.map +1 -1
  89. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/admin-plugin.js +1 -1
  90. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/api-key-plugin.d.ts.map +1 -1
  91. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/api-key-plugin.js +1 -1
  92. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/device-authorization-plugin.d.ts +3 -0
  93. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/device-authorization-plugin.d.ts.map +1 -0
  94. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/device-authorization-plugin.js +8 -0
  95. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.d.ts.map +1 -1
  96. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.js +4 -2
  97. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/oidc-plugin.d.ts.map +1 -1
  98. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/oidc-plugin.js +1 -1
  99. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/organizations-plugin.d.ts.map +1 -1
  100. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/organizations-plugin.js +9 -3
  101. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/save-to-jwt-middleware.d.ts.map +1 -1
  102. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/save-to-jwt-middleware.js +1 -1
  103. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/use-admin-invite-after-email-sign-up-middleware.d.ts +1 -1
  104. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/use-admin-invite-after-email-sign-up-middleware.d.ts.map +1 -1
  105. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/use-admin-invite-after-email-sign-up-middleware.js +2 -2
  106. package/dist/better-auth/plugin/payload/views/admin-login/index.d.ts.map +1 -1
  107. package/dist/better-auth/plugin/payload/views/admin-login/index.js +2 -2
  108. package/dist/better-auth/plugin/payload/views/admin-signup/index.d.ts.map +1 -1
  109. package/dist/better-auth/plugin/payload/views/admin-signup/index.js +2 -2
  110. package/dist/better-auth/plugin/payload/views/forgot-password/index.d.ts.map +1 -1
  111. package/dist/better-auth/plugin/payload/views/forgot-password/index.js +2 -2
  112. package/dist/better-auth/plugin/payload/views/reset-password/client.d.ts.map +1 -1
  113. package/dist/better-auth/plugin/payload/views/reset-password/client.js +1 -1
  114. package/dist/better-auth/plugin/payload/views/reset-password/index.d.ts.map +1 -1
  115. package/dist/better-auth/plugin/payload/views/reset-password/index.js +3 -3
  116. package/dist/better-auth/plugin/payload/views/two-factor-verify/index.d.ts.map +1 -1
  117. package/dist/better-auth/plugin/payload/views/two-factor-verify/index.js +2 -2
  118. package/dist/better-auth/plugin/types.d.ts +38 -6
  119. package/dist/better-auth/plugin/types.d.ts.map +1 -1
  120. package/dist/better-auth/plugin/types.js +1 -1
  121. package/dist/better-auth/scripts/generate-types.js +28 -36
  122. package/dist/index.d.ts +0 -3
  123. package/dist/index.d.ts.map +1 -1
  124. package/dist/index.js +1 -4
  125. package/package.json +12 -43
  126. package/dist/authjs/index.d.ts +0 -2
  127. package/dist/authjs/index.d.ts.map +0 -1
  128. package/dist/authjs/index.js +0 -3
  129. package/dist/clerk/admin-ui.d.ts +0 -4
  130. package/dist/clerk/admin-ui.d.ts.map +0 -1
  131. package/dist/clerk/admin-ui.js +0 -5
  132. package/dist/clerk/index.d.ts +0 -7
  133. package/dist/clerk/index.d.ts.map +0 -1
  134. package/dist/clerk/index.js +0 -8
  135. package/dist/clerk/plugin/auth-strategy.d.ts +0 -11
  136. package/dist/clerk/plugin/auth-strategy.d.ts.map +0 -1
  137. package/dist/clerk/plugin/auth-strategy.js +0 -45
  138. package/dist/clerk/plugin/collections/users/access.d.ts +0 -14
  139. package/dist/clerk/plugin/collections/users/access.d.ts.map +0 -1
  140. package/dist/clerk/plugin/collections/users/access.js +0 -36
  141. package/dist/clerk/plugin/collections/users/endpoints/sync-from-clerk.d.ts +0 -14
  142. package/dist/clerk/plugin/collections/users/endpoints/sync-from-clerk.d.ts.map +0 -1
  143. package/dist/clerk/plugin/collections/users/endpoints/sync-from-clerk.js +0 -108
  144. package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/index.d.ts +0 -4
  145. package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/index.d.ts.map +0 -1
  146. package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/index.js +0 -5
  147. package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userCreated.d.ts +0 -13
  148. package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userCreated.d.ts.map +0 -1
  149. package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userCreated.js +0 -33
  150. package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userDeleted.d.ts +0 -11
  151. package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userDeleted.d.ts.map +0 -1
  152. package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userDeleted.js +0 -27
  153. package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userUpdated.d.ts +0 -13
  154. package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userUpdated.d.ts.map +0 -1
  155. package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userUpdated.js +0 -35
  156. package/dist/clerk/plugin/collections/users/endpoints/webhook/index.d.ts +0 -12
  157. package/dist/clerk/plugin/collections/users/endpoints/webhook/index.d.ts.map +0 -1
  158. package/dist/clerk/plugin/collections/users/endpoints/webhook/index.js +0 -87
  159. package/dist/clerk/plugin/collections/users/fields.d.ts +0 -6
  160. package/dist/clerk/plugin/collections/users/fields.d.ts.map +0 -1
  161. package/dist/clerk/plugin/collections/users/fields.js +0 -81
  162. package/dist/clerk/plugin/collections/users/index.d.ts +0 -10
  163. package/dist/clerk/plugin/collections/users/index.d.ts.map +0 -1
  164. package/dist/clerk/plugin/collections/users/index.js +0 -95
  165. package/dist/clerk/plugin/components/after-login-form.d.ts +0 -4
  166. package/dist/clerk/plugin/components/after-login-form.d.ts.map +0 -1
  167. package/dist/clerk/plugin/components/after-login-form.js +0 -65
  168. package/dist/clerk/plugin/components/logout-button.d.ts +0 -2
  169. package/dist/clerk/plugin/components/logout-button.d.ts.map +0 -1
  170. package/dist/clerk/plugin/components/logout-button.js +0 -49
  171. package/dist/clerk/plugin/components/sync-clerk-users-button.d.ts +0 -6
  172. package/dist/clerk/plugin/components/sync-clerk-users-button.d.ts.map +0 -1
  173. package/dist/clerk/plugin/components/sync-clerk-users-button.js +0 -75
  174. package/dist/clerk/plugin.d.ts +0 -6
  175. package/dist/clerk/plugin.d.ts.map +0 -1
  176. package/dist/clerk/plugin.js +0 -63
  177. package/dist/clerk/types.d.ts +0 -63
  178. package/dist/clerk/types.d.ts.map +0 -1
  179. package/dist/clerk/types.js +0 -3
  180. package/dist/clerk/utils/clerk-user.d.ts +0 -21
  181. package/dist/clerk/utils/clerk-user.d.ts.map +0 -1
  182. package/dist/clerk/utils/clerk-user.js +0 -45
  183. package/dist/clerk/utils/index.d.ts +0 -4
  184. package/dist/clerk/utils/index.d.ts.map +0 -1
  185. package/dist/clerk/utils/index.js +0 -5
  186. package/dist/clerk/utils/load-clerk-instance.d.ts +0 -8
  187. package/dist/clerk/utils/load-clerk-instance.d.ts.map +0 -1
  188. package/dist/clerk/utils/load-clerk-instance.js +0 -11
  189. package/dist/clerk/utils/svix.d.ts +0 -9
  190. package/dist/clerk/utils/svix.d.ts.map +0 -1
  191. package/dist/clerk/utils/svix.js +0 -40
  192. package/dist/clerk/utils/user.d.ts +0 -17
  193. package/dist/clerk/utils/user.d.ts.map +0 -1
  194. package/dist/clerk/utils/user.js +0 -46
  195. package/dist/kinde/index.d.ts +0 -2
  196. package/dist/kinde/index.d.ts.map +0 -1
  197. package/dist/kinde/index.js +0 -3
@@ -1,15 +1,16 @@
1
1
  import { stripe } from "@better-auth/stripe";
2
2
  import { emailHarmony, phoneHarmony } from "better-auth-harmony";
3
3
  import { getSchema } from "better-auth/db";
4
- import { admin, anonymous, apiKey, bearer, emailOTP, genericOAuth, jwt, magicLink, multiSession, oneTap, oneTimeToken, openAPI, organization, oidcProvider, phoneNumber, twoFactor, username, customSession } from "better-auth/plugins";
4
+ import { admin, anonymous, apiKey, bearer, emailOTP, genericOAuth, jwt, magicLink, multiSession, oneTap, oneTimeToken, openAPI, organization, oidcProvider, phoneNumber, twoFactor, username, customSession, deviceAuthorization, mcp, lastLoginMethod } from "better-auth/plugins";
5
5
  import { nextCookies } from "better-auth/next-js";
6
6
  import { passkey } from "better-auth/plugins/passkey";
7
- import { sso } from "better-auth/plugins/sso";
8
- import { polar } from "@polar-sh/better-auth";
7
+ import { sso } from "@better-auth/sso";
8
+ import { polar, checkout } from "@polar-sh/better-auth";
9
9
  import { Polar } from "@polar-sh/sdk";
10
10
  import fs from "node:fs/promises";
11
11
  import path from "node:path";
12
12
  import { fileURLToPath } from "node:url";
13
+ import Stripe from "stripe";
13
14
  const client = new Polar({
14
15
  accessToken: 'pk_test_1234567890',
15
16
  server: 'sandbox'
@@ -59,34 +60,30 @@ const plugins = [
59
60
  phoneNumber(),
60
61
  nextCookies(),
61
62
  customSession(async ()=>({})),
63
+ mcp({
64
+ loginPage: ''
65
+ }),
66
+ deviceAuthorization(),
67
+ lastLoginMethod({
68
+ storeInDatabase: true
69
+ }),
62
70
  stripe({
63
- stripeClient: {
64
- apiKey: 'typescript'
65
- },
71
+ stripeClient: new Stripe('typescript'),
66
72
  stripeWebhookSecret: 'typescript',
67
73
  subscription: {
68
74
  enabled: true,
69
75
  plans: [
70
76
  {
71
- id: 'basic',
72
77
  name: 'Basic',
73
- price: 1000,
74
- interval: 'month',
75
- currency: 'usd'
78
+ priceId: 'basic'
76
79
  },
77
80
  {
78
- id: 'pro',
79
81
  name: 'Pro',
80
- price: 2000,
81
- interval: 'month',
82
- currency: 'usd'
82
+ priceId: 'pro'
83
83
  },
84
84
  {
85
- id: 'enterprise',
86
85
  name: 'Enterprise',
87
- price: 3000,
88
- interval: 'month',
89
- currency: 'usd'
86
+ priceId: 'enterprise'
90
87
  }
91
88
  ]
92
89
  }
@@ -94,23 +91,18 @@ const plugins = [
94
91
  // As of writing this, Polar don't create schema fields, but just in case in the future we leave this here.
95
92
  polar({
96
93
  client,
97
- checkout: {
98
- enabled: true,
99
- products: [
100
- {
101
- productId: 'basic',
102
- slug: 'basic'
103
- },
104
- {
105
- productId: 'pro',
106
- slug: 'pro'
107
- },
108
- {
109
- productId: 'enterprise',
110
- slug: 'enterprise'
111
- }
112
- ]
113
- }
94
+ use: [
95
+ checkout({
96
+ products: [
97
+ {
98
+ productId: '123-456-789',
99
+ slug: 'pro' // Custom slug for easy reference in Checkout URL, e.g. /checkout/pro
100
+ }
101
+ ],
102
+ successUrl: '/success?checkout_id={CHECKOUT_ID}',
103
+ authenticatedUsersOnly: true
104
+ })
105
+ ]
114
106
  })
115
107
  ];
116
108
  const betterAuthConfig = {
@@ -233,4 +225,4 @@ const __dirname = path.dirname(fileURLToPath(import.meta.url));
233
225
  console.log(`Generated types written to ${file}`);
234
226
  })();
235
227
 
236
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9zY3JpcHRzL2dlbmVyYXRlLXR5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHN0cmlwZSB9IGZyb20gJ0BiZXR0ZXItYXV0aC9zdHJpcGUnXG5pbXBvcnQgeyBlbWFpbEhhcm1vbnksIHBob25lSGFybW9ueSB9IGZyb20gJ2JldHRlci1hdXRoLWhhcm1vbnknXG5pbXBvcnQgeyBnZXRTY2hlbWEgfSBmcm9tICdiZXR0ZXItYXV0aC9kYidcbmltcG9ydCB0eXBlIHsgRmllbGRBdHRyaWJ1dGUgfSBmcm9tICdiZXR0ZXItYXV0aC9kYidcbmltcG9ydCB7XG4gIGFkbWluLFxuICBhbm9ueW1vdXMsXG4gIGFwaUtleSxcbiAgYmVhcmVyLFxuICBlbWFpbE9UUCxcbiAgZ2VuZXJpY09BdXRoLFxuICBqd3QsXG4gIG1hZ2ljTGluayxcbiAgbXVsdGlTZXNzaW9uLFxuICBvbmVUYXAsXG4gIG9uZVRpbWVUb2tlbixcbiAgb3BlbkFQSSxcbiAgb3JnYW5pemF0aW9uLFxuICBvaWRjUHJvdmlkZXIsXG4gIHBob25lTnVtYmVyLFxuICB0d29GYWN0b3IsXG4gIHVzZXJuYW1lLFxuICBjdXN0b21TZXNzaW9uXG59IGZyb20gJ2JldHRlci1hdXRoL3BsdWdpbnMnXG5pbXBvcnQgeyBuZXh0Q29va2llcyB9IGZyb20gJ2JldHRlci1hdXRoL25leHQtanMnXG5pbXBvcnQgeyBwYXNza2V5IH0gZnJvbSAnYmV0dGVyLWF1dGgvcGx1Z2lucy9wYXNza2V5J1xuaW1wb3J0IHsgc3NvIH0gZnJvbSAnYmV0dGVyLWF1dGgvcGx1Z2lucy9zc28nXG5pbXBvcnQgeyBwb2xhciB9IGZyb20gJ0Bwb2xhci1zaC9iZXR0ZXItYXV0aCdcbmltcG9ydCB7IFBvbGFyIH0gZnJvbSAnQHBvbGFyLXNoL3NkaydcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkQmV0dGVyQXV0aE9wdGlvbnMgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCBmcyBmcm9tICdub2RlOmZzL3Byb21pc2VzJ1xuaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJ1xuaW1wb3J0IHsgZmlsZVVSTFRvUGF0aCB9IGZyb20gJ25vZGU6dXJsJ1xuXG5jb25zdCBjbGllbnQgPSBuZXcgUG9sYXIoe1xuICBhY2Nlc3NUb2tlbjogJ3BrX3Rlc3RfMTIzNDU2Nzg5MCcsXG4gIHNlcnZlcjogJ3NhbmRib3gnXG59KTtcblxuY29uc3QgcGx1Z2lucyA9IFtcbiAgdXNlcm5hbWUoKSxcbiAgYWRtaW4oKSxcbiAgYXBpS2V5KCksXG4gIHBhc3NrZXkoKSxcbiAgZW1haWxIYXJtb255KCksXG4gIHBob25lSGFybW9ueSgpLFxuICBiZWFyZXIoKSxcbiAgZW1haWxPVFAoeyBzZW5kVmVyaWZpY2F0aW9uT1RQOiBhc3luYyAoKSA9PiB7fSB9KSxcbiAgbWFnaWNMaW5rKHsgc2VuZE1hZ2ljTGluazogYXN5bmMgKCkgPT4ge30gfSksXG4gIHBob25lTnVtYmVyKHsgc2VuZE9UUDogYXN5bmMgKCkgPT4ge30gfSksXG4gIG9uZVRhcCgpLFxuICBhbm9ueW1vdXMoKSxcbiAgbXVsdGlTZXNzaW9uKCksXG4gIG9uZVRpbWVUb2tlbigpLFxuICBvaWRjUHJvdmlkZXIoeyBsb2dpblBhZ2U6ICcnIH0pLFxuICBzc28oKSxcbiAgZ2VuZXJpY09BdXRoKHsgY29uZmlnOiBbeyBwcm92aWRlcklkOiAndHlwZXNjcmlwdCcsIGNsaWVudElkOiAndHlwZXNjcmlwdCcsIGNsaWVudFNlY3JldDogJ3R5cGVzY3JpcHQnIH1dIH0pLFxuICBvcGVuQVBJKCksXG4gIG9yZ2FuaXphdGlvbih7IHRlYW1zOiB7IGVuYWJsZWQ6IHRydWUgfSB9KSxcbiAgand0KCksXG4gIHR3b0ZhY3RvcigpLFxuICBwaG9uZU51bWJlcigpLFxuICBuZXh0Q29va2llcygpLFxuICBjdXN0b21TZXNzaW9uKGFzeW5jICgpID0+ICh7fSkpLFxuICBzdHJpcGUoe1xuICAgIHN0cmlwZUNsaWVudDogeyBhcGlLZXk6ICd0eXBlc2NyaXB0JyB9LFxuICAgIHN0cmlwZVdlYmhvb2tTZWNyZXQ6ICd0eXBlc2NyaXB0JyxcbiAgICBzdWJzY3JpcHRpb246IHtcbiAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICBwbGFuczogW1xuICAgICAgICB7IGlkOiAnYmFzaWMnLCBuYW1lOiAnQmFzaWMnLCBwcmljZTogMTAwMCwgaW50ZXJ2YWw6ICdtb250aCcsIGN1cnJlbmN5OiAndXNkJyB9LFxuICAgICAgICB7IGlkOiAncHJvJywgbmFtZTogJ1BybycsIHByaWNlOiAyMDAwLCBpbnRlcnZhbDogJ21vbnRoJywgY3VycmVuY3k6ICd1c2QnIH0sXG4gICAgICAgIHsgaWQ6ICdlbnRlcnByaXNlJywgbmFtZTogJ0VudGVycHJpc2UnLCBwcmljZTogMzAwMCwgaW50ZXJ2YWw6ICdtb250aCcsIGN1cnJlbmN5OiAndXNkJyB9XG4gICAgICBdXG4gICAgfVxuICB9KSxcbiAgLy8gQXMgb2Ygd3JpdGluZyB0aGlzLCBQb2xhciBkb24ndCBjcmVhdGUgc2NoZW1hIGZpZWxkcywgYnV0IGp1c3QgaW4gY2FzZSBpbiB0aGUgZnV0dXJlIHdlIGxlYXZlIHRoaXMgaGVyZS5cbiAgcG9sYXIoe1xuICAgIGNsaWVudCxcbiAgICBjaGVja291dDoge1xuICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgIHByb2R1Y3RzOiBbXG4gICAgICAgIHsgcHJvZHVjdElkOiAnYmFzaWMnLCBzbHVnOiAnYmFzaWMnIH0sXG4gICAgICAgIHsgcHJvZHVjdElkOiAncHJvJywgc2x1ZzogJ3BybycgfSxcbiAgICAgICAgeyBwcm9kdWN0SWQ6ICdlbnRlcnByaXNlJywgc2x1ZzogJ2VudGVycHJpc2UnIH1cbiAgICAgIF1cbiAgICB9XG4gIH0pXG5dXG5cbmNvbnN0IGJldHRlckF1dGhDb25maWc6IFNhbml0aXplZEJldHRlckF1dGhPcHRpb25zID0ge1xuICBlbWFpbEFuZFBhc3N3b3JkOiB7IGVuYWJsZWQ6IHRydWUgfSxcbiAgdXNlcjogeyBhZGRpdGlvbmFsRmllbGRzOiB7IHJvbGU6IHsgdHlwZTogJ3N0cmluZycsIGRlZmF1bHRWYWx1ZTogJ3VzZXInLCBpbnB1dDogZmFsc2UgfSB9IH0sXG4gIHBsdWdpbnNcbn1cblxuY29uc3QgYmFzZVNjaGVtYSA9IGdldFNjaGVtYSh7IC4uLmJldHRlckF1dGhDb25maWcsIHBsdWdpbnM6IFtdIH0pXG5cbnR5cGUgU2NoZW1hID0gUmVjb3JkPHN0cmluZywgeyBmaWVsZHM6IFJlY29yZDxzdHJpbmcsIEZpZWxkQXR0cmlidXRlPiB9PlxuXG5jb25zdCBtYXAgPSAodDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgaWYgKHQgPT09ICdib29sZWFuJykgcmV0dXJuICdib29sZWFuJ1xuICBpZiAodCA9PT0gJ2RhdGUnKSByZXR1cm4gJ0RhdGUnXG4gIGlmICh0ID09PSAnbnVtYmVyJykgcmV0dXJuICdudW1iZXInXG4gIGlmICh0ID09PSAnc3RyaW5nJykgcmV0dXJuICdzdHJpbmcnXG4gIGlmICh0ID09PSAnbnVtYmVyW10nKSByZXR1cm4gJ251bWJlcltdJ1xuICBpZiAodCA9PT0gJ3N0cmluZ1tdJykgcmV0dXJuICdzdHJpbmdbXSdcbiAgcmV0dXJuICd1bmtub3duJ1xufVxuXG5jb25zdCBwYXNjYWwgPSAoczogc3RyaW5nKTogc3RyaW5nID0+XG4gIHNcbiAgICAuc3BsaXQoL1stX10vZylcbiAgICAubWFwKChwKSA9PiBwLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgcC5zbGljZSgxKSlcbiAgICAuam9pbignJylcblxuY29uc3QgZGlmZiA9IChiYXNlOiBTY2hlbWEsIHRhcmdldDogU2NoZW1hKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgRmllbGRBdHRyaWJ1dGU+PiA9PiB7XG4gIGNvbnN0IGQ6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIEZpZWxkQXR0cmlidXRlPj4gPSB7fVxuICBmb3IgKGNvbnN0IFttLCB7IGZpZWxkcyB9XSBvZiBPYmplY3QuZW50cmllcyh0YXJnZXQpKSB7XG4gICAgY29uc3QgYWRkZWQgPSBPYmplY3QuZW50cmllcyhmaWVsZHMpLmZpbHRlcigoW2tdKSA9PiAhKGsgaW4gKGJhc2VbbV0/LmZpZWxkcyA/PyB7fSkpKVxuICAgIGlmIChhZGRlZC5sZW5ndGgpIGRbbV0gPSBPYmplY3QuZnJvbUVudHJpZXMoYWRkZWQpXG4gIH1cbiAgcmV0dXJuIGRcbn1cblxuY29uc3QgZ2VuID0gKCk6IHN0cmluZyA9PiB7XG4gIGxldCBvdXQgPSAnLy8gQXV0by1nZW5lcmF0ZWQgdHlwZXMuIERvIG5vdCBlZGl0LlxcblxcbidcblxuICBjb25zdCBwbHVnaW5BZGRzOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBGaWVsZEF0dHJpYnV0ZT4+PiA9IHt9XG4gIGNvbnN0IHNlZW4gPSBuZXcgU2V0PHN0cmluZz4oKVxuXG4gIGZvciAoY29uc3QgcGwgb2YgcGx1Z2lucykge1xuICAgIGNvbnN0IGlkID0gKHBsIGFzIGFueSkuaWQgYXMgc3RyaW5nIHwgdW5kZWZpbmVkXG4gICAgaWYgKCFpZCB8fCBzZWVuLmhhcyhpZCkpIGNvbnRpbnVlXG4gICAgc2Vlbi5hZGQoaWQpXG4gICAgY29uc3QgYWRkcyA9IGRpZmYoYmFzZVNjaGVtYSwgZ2V0U2NoZW1hKHsgLi4uYmV0dGVyQXV0aENvbmZpZywgcGx1Z2luczogW3BsXSB9KSlcbiAgICBmb3IgKGNvbnN0IFttLCBmXSBvZiBPYmplY3QuZW50cmllcyhhZGRzKSkge1xuICAgICAgcGx1Z2luQWRkc1ttXSA/Pz0ge31cbiAgICAgIHBsdWdpbkFkZHNbbV1baWRdID0gZlxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IG1vZGVscyA9IG5ldyBTZXQ8c3RyaW5nPihbLi4uT2JqZWN0LmtleXMoYmFzZVNjaGVtYSksIC4uLk9iamVjdC5rZXlzKHBsdWdpbkFkZHMpXSlcblxuICBmb3IgKGNvbnN0IG1vZGVsIG9mIG1vZGVscykge1xuICAgIGNvbnN0IFAgPSBwYXNjYWwobW9kZWwpXG4gICAgY29uc3QgYmFzZSA9IGJhc2VTY2hlbWFbbW9kZWxdPy5maWVsZHMgPz8ge31cbiAgICBjb25zdCBwbHVnaW5zRm9yTW9kZWwgPSBwbHVnaW5BZGRzW21vZGVsXSA/PyB7fVxuICAgIGNvbnN0IHBsdWdpbklkcyA9IE9iamVjdC5rZXlzKHBsdWdpbnNGb3JNb2RlbClcblxuICAgIGlmIChPYmplY3Qua2V5cyhiYXNlKS5sZW5ndGgpIHtcbiAgICAgIG91dCArPSBgZXhwb3J0IHR5cGUgQmFzZSR7UH1GaWVsZHMgPSB7XFxuYFxuICAgICAgZm9yIChjb25zdCBbaywgZl0gb2YgT2JqZWN0LmVudHJpZXMoYmFzZSkpIG91dCArPSBgICAke2YuZmllbGROYW1lID8/IGt9JHtmLnJlcXVpcmVkID8gJycgOiAnPyd9OiAke21hcChmLnR5cGUgYXMgc3RyaW5nKX1cXG5gXG4gICAgICBvdXQgKz0gJ31cXG5cXG4nXG4gICAgfVxuXG4gICAgY29uc3QgbmVlZFBsdWdpbk1hcCA9IHBsdWdpbklkcy5sZW5ndGggPiAxIHx8IE9iamVjdC5rZXlzKGJhc2UpLmxlbmd0aFxuICAgIGlmIChuZWVkUGx1Z2luTWFwICYmIHBsdWdpbklkcy5sZW5ndGgpIHtcbiAgICAgIG91dCArPSBgZXhwb3J0IHR5cGUgJHtQfVBsdWdpbkZpZWxkcyA9IHtcXG5gXG4gICAgICBmb3IgKGNvbnN0IFtwaWQsIGZsZHNdIG9mIE9iamVjdC5lbnRyaWVzKHBsdWdpbnNGb3JNb2RlbCkpIHtcbiAgICAgICAgb3V0ICs9IGAgICR7SlNPTi5zdHJpbmdpZnkocGlkKX06IHtcXG5gXG4gICAgICAgIGZvciAoY29uc3QgW2ssIGZdIG9mIE9iamVjdC5lbnRyaWVzKGZsZHMpKSBvdXQgKz0gYCAgICAke2YuZmllbGROYW1lID8/IGt9JHtmLnJlcXVpcmVkID8gJycgOiAnPyd9OiAke21hcChmLnR5cGUgYXMgc3RyaW5nKX1cXG5gXG4gICAgICAgIG91dCArPSAnICB9XFxuJ1xuICAgICAgfVxuICAgICAgb3V0ICs9ICd9XFxuXFxuJ1xuICAgIH1cblxuICAgIGlmICghT2JqZWN0LmtleXMoYmFzZSkubGVuZ3RoICYmIHBsdWdpbklkcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIGNvbnN0IG9ubHkgPSBwbHVnaW5JZHNbMF1cbiAgICAgIG91dCArPSBgZXhwb3J0IHR5cGUgJHtQfUZpZWxkcyA9IHtcXG5gXG4gICAgICBmb3IgKGNvbnN0IFtrLCBmXSBvZiBPYmplY3QuZW50cmllcyhwbHVnaW5zRm9yTW9kZWxbb25seV0pKVxuICAgICAgICBvdXQgKz0gYCAgJHtmLmZpZWxkTmFtZSA/PyBrfSR7Zi5yZXF1aXJlZCA/ICcnIDogJz8nfTogJHttYXAoZi50eXBlIGFzIHN0cmluZyl9XFxuYFxuICAgICAgb3V0ICs9ICd9XFxuXFxuJ1xuICAgICAgb3V0ICs9IGBleHBvcnQgdHlwZSAke1B9ID0gJHtQfUZpZWxkc1xcblxcbmBcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgY29uc3QgcGFydHM6IHN0cmluZ1tdID0gW11cbiAgICBpZiAoT2JqZWN0LmtleXMoYmFzZSkubGVuZ3RoKSBwYXJ0cy5wdXNoKGBCYXNlJHtQfUZpZWxkc2ApXG4gICAgaWYgKHBsdWdpbklkcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IG1hcE5hbWUgPSBuZWVkUGx1Z2luTWFwID8gYCR7UH1QbHVnaW5GaWVsZHNgIDogdW5kZWZpbmVkXG4gICAgICBwYXJ0cy5wdXNoKC4uLnBsdWdpbklkcy5tYXAoKGlkKSA9PiAobWFwTmFtZSA/IGAke21hcE5hbWV9WyR7SlNPTi5zdHJpbmdpZnkoaWQpfV1gIDogJ25ldmVyJykgLyogbm90IHJlYWNoYWJsZSAqLykpXG4gICAgfVxuICAgIG91dCArPSBgZXhwb3J0IHR5cGUgJHtQfSA9ICR7cGFydHMuam9pbignICYgJyl9XFxuXFxuYFxuICB9XG5cbiAgLy8gR2VuZXJhdGUgdW5pb24gdHlwZSBvZiBwbHVnaW4gaWRlbnRpZmllcnNcbiAgY29uc3QgcGx1Z2luSWRVbmlvbiA9IFsuLi5zZWVuXVxuICAgIC5tYXAoKGlkKSA9PiBKU09OLnN0cmluZ2lmeShpZCkpXG4gICAgLmpvaW4oJyB8ICcpXG4gIG91dCArPSBgZXhwb3J0IHR5cGUgUGx1Z2luSWQgPSAke3BsdWdpbklkVW5pb259XFxuXFxuYFxuXG4gIC8vIEdlbmVyYXRlIGZ1bGwgc2NoZW1hIG1hcHBpbmdcbiAgb3V0ICs9IGBleHBvcnQgdHlwZSBCZXR0ZXJBdXRoRnVsbFNjaGVtYSA9IHtcXG5gXG4gIGZvciAoY29uc3QgbW9kZWwgb2YgbW9kZWxzKSB7XG4gICAgY29uc3QgUCA9IHBhc2NhbChtb2RlbClcbiAgICBvdXQgKz0gYCAgJHtKU09OLnN0cmluZ2lmeShtb2RlbCl9OiAke1B9XFxuYFxuICB9XG4gIG91dCArPSBgfVxcblxcbmBcblxuICAvLyBHZW5lcmF0ZSB1bmlvbiB0eXBlIG9mIGFsbCBtb2RlbCBuYW1lc1xuICBvdXQgKz0gYGV4cG9ydCB0eXBlIE1vZGVsS2V5ID0ga2V5b2YgQmV0dGVyQXV0aEZ1bGxTY2hlbWFgXG5cbiAgcmV0dXJuIG91dFxufVxuXG5jb25zdCBnZW5lcmF0ZWQgPSBnZW4oKVxuXG5jb25zdCBfX2Rpcm5hbWUgPSBwYXRoLmRpcm5hbWUoZmlsZVVSTFRvUGF0aChpbXBvcnQubWV0YS51cmwpKVxuOyhhc3luYyAoKSA9PiB7XG4gIGNvbnN0IGZpbGUgPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi4vZ2VuZXJhdGVkLXR5cGVzLnRzJylcbiAgYXdhaXQgZnMud3JpdGVGaWxlKGZpbGUsIGdlbmVyYXRlZCwgJ3V0ZjgnKVxuICBjb25zb2xlLmxvZyhgR2VuZXJhdGVkIHR5cGVzIHdyaXR0ZW4gdG8gJHtmaWxlfWApXG59KSgpXG4iXSwibmFtZXMiOlsic3RyaXBlIiwiZW1haWxIYXJtb255IiwicGhvbmVIYXJtb255IiwiZ2V0U2NoZW1hIiwiYWRtaW4iLCJhbm9ueW1vdXMiLCJhcGlLZXkiLCJiZWFyZXIiLCJlbWFpbE9UUCIsImdlbmVyaWNPQXV0aCIsImp3dCIsIm1hZ2ljTGluayIsIm11bHRpU2Vzc2lvbiIsIm9uZVRhcCIsIm9uZVRpbWVUb2tlbiIsIm9wZW5BUEkiLCJvcmdhbml6YXRpb24iLCJvaWRjUHJvdmlkZXIiLCJwaG9uZU51bWJlciIsInR3b0ZhY3RvciIsInVzZXJuYW1lIiwiY3VzdG9tU2Vzc2lvbiIsIm5leHRDb29raWVzIiwicGFzc2tleSIsInNzbyIsInBvbGFyIiwiUG9sYXIiLCJmcyIsInBhdGgiLCJmaWxlVVJMVG9QYXRoIiwiY2xpZW50IiwiYWNjZXNzVG9rZW4iLCJzZXJ2ZXIiLCJwbHVnaW5zIiwic2VuZFZlcmlmaWNhdGlvbk9UUCIsInNlbmRNYWdpY0xpbmsiLCJzZW5kT1RQIiwibG9naW5QYWdlIiwiY29uZmlnIiwicHJvdmlkZXJJZCIsImNsaWVudElkIiwiY2xpZW50U2VjcmV0IiwidGVhbXMiLCJlbmFibGVkIiwic3RyaXBlQ2xpZW50Iiwic3RyaXBlV2ViaG9va1NlY3JldCIsInN1YnNjcmlwdGlvbiIsInBsYW5zIiwiaWQiLCJuYW1lIiwicHJpY2UiLCJpbnRlcnZhbCIsImN1cnJlbmN5IiwiY2hlY2tvdXQiLCJwcm9kdWN0cyIsInByb2R1Y3RJZCIsInNsdWciLCJiZXR0ZXJBdXRoQ29uZmlnIiwiZW1haWxBbmRQYXNzd29yZCIsInVzZXIiLCJhZGRpdGlvbmFsRmllbGRzIiwicm9sZSIsInR5cGUiLCJkZWZhdWx0VmFsdWUiLCJpbnB1dCIsImJhc2VTY2hlbWEiLCJtYXAiLCJ0IiwicGFzY2FsIiwicyIsInNwbGl0IiwicCIsImNoYXJBdCIsInRvVXBwZXJDYXNlIiwic2xpY2UiLCJqb2luIiwiZGlmZiIsImJhc2UiLCJ0YXJnZXQiLCJkIiwibSIsImZpZWxkcyIsIk9iamVjdCIsImVudHJpZXMiLCJhZGRlZCIsImZpbHRlciIsImsiLCJsZW5ndGgiLCJmcm9tRW50cmllcyIsImdlbiIsIm91dCIsInBsdWdpbkFkZHMiLCJzZWVuIiwiU2V0IiwicGwiLCJoYXMiLCJhZGQiLCJhZGRzIiwiZiIsIm1vZGVscyIsImtleXMiLCJtb2RlbCIsIlAiLCJwbHVnaW5zRm9yTW9kZWwiLCJwbHVnaW5JZHMiLCJmaWVsZE5hbWUiLCJyZXF1aXJlZCIsIm5lZWRQbHVnaW5NYXAiLCJwaWQiLCJmbGRzIiwiSlNPTiIsInN0cmluZ2lmeSIsIm9ubHkiLCJwYXJ0cyIsInB1c2giLCJtYXBOYW1lIiwidW5kZWZpbmVkIiwicGx1Z2luSWRVbmlvbiIsImdlbmVyYXRlZCIsIl9fZGlybmFtZSIsImRpcm5hbWUiLCJ1cmwiLCJmaWxlIiwicmVzb2x2ZSIsIndyaXRlRmlsZSIsImNvbnNvbGUiLCJsb2ciXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLE1BQU0sUUFBUSxzQkFBcUI7QUFDNUMsU0FBU0MsWUFBWSxFQUFFQyxZQUFZLFFBQVEsc0JBQXFCO0FBQ2hFLFNBQVNDLFNBQVMsUUFBUSxpQkFBZ0I7QUFFMUMsU0FDRUMsS0FBSyxFQUNMQyxTQUFTLEVBQ1RDLE1BQU0sRUFDTkMsTUFBTSxFQUNOQyxRQUFRLEVBQ1JDLFlBQVksRUFDWkMsR0FBRyxFQUNIQyxTQUFTLEVBQ1RDLFlBQVksRUFDWkMsTUFBTSxFQUNOQyxZQUFZLEVBQ1pDLE9BQU8sRUFDUEMsWUFBWSxFQUNaQyxZQUFZLEVBQ1pDLFdBQVcsRUFDWEMsU0FBUyxFQUNUQyxRQUFRLEVBQ1JDLGFBQWEsUUFDUixzQkFBcUI7QUFDNUIsU0FBU0MsV0FBVyxRQUFRLHNCQUFxQjtBQUNqRCxTQUFTQyxPQUFPLFFBQVEsOEJBQTZCO0FBQ3JELFNBQVNDLEdBQUcsUUFBUSwwQkFBeUI7QUFDN0MsU0FBU0MsS0FBSyxRQUFRLHdCQUF1QjtBQUM3QyxTQUFTQyxLQUFLLFFBQVEsZ0JBQWU7QUFFckMsT0FBT0MsUUFBUSxtQkFBa0I7QUFDakMsT0FBT0MsVUFBVSxZQUFXO0FBQzVCLFNBQVNDLGFBQWEsUUFBUSxXQUFVO0FBRXhDLE1BQU1DLFNBQVMsSUFBSUosTUFBTTtJQUN2QkssYUFBYTtJQUNiQyxRQUFRO0FBQ1Y7QUFFQSxNQUFNQyxVQUFVO0lBQ2RiO0lBQ0FoQjtJQUNBRTtJQUNBaUI7SUFDQXRCO0lBQ0FDO0lBQ0FLO0lBQ0FDLFNBQVM7UUFBRTBCLHFCQUFxQixXQUFh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
228
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9zY3JpcHRzL2dlbmVyYXRlLXR5cGVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHN0cmlwZSB9IGZyb20gJ0BiZXR0ZXItYXV0aC9zdHJpcGUnXG5pbXBvcnQgeyBlbWFpbEhhcm1vbnksIHBob25lSGFybW9ueSB9IGZyb20gJ2JldHRlci1hdXRoLWhhcm1vbnknXG5pbXBvcnQgeyBnZXRTY2hlbWEgfSBmcm9tICdiZXR0ZXItYXV0aC9kYidcbmltcG9ydCB0eXBlIHsgREJGaWVsZEF0dHJpYnV0ZSB9IGZyb20gJ2JldHRlci1hdXRoL2RiJ1xuaW1wb3J0IHtcbiAgYWRtaW4sXG4gIGFub255bW91cyxcbiAgYXBpS2V5LFxuICBiZWFyZXIsXG4gIGVtYWlsT1RQLFxuICBnZW5lcmljT0F1dGgsXG4gIGp3dCxcbiAgbWFnaWNMaW5rLFxuICBtdWx0aVNlc3Npb24sXG4gIG9uZVRhcCxcbiAgb25lVGltZVRva2VuLFxuICBvcGVuQVBJLFxuICBvcmdhbml6YXRpb24sXG4gIG9pZGNQcm92aWRlcixcbiAgcGhvbmVOdW1iZXIsXG4gIHR3b0ZhY3RvcixcbiAgdXNlcm5hbWUsXG4gIGN1c3RvbVNlc3Npb24sXG4gIGRldmljZUF1dGhvcml6YXRpb24sXG4gIG1jcCxcbiAgbGFzdExvZ2luTWV0aG9kXG59IGZyb20gJ2JldHRlci1hdXRoL3BsdWdpbnMnXG5pbXBvcnQgeyBuZXh0Q29va2llcyB9IGZyb20gJ2JldHRlci1hdXRoL25leHQtanMnXG5pbXBvcnQgeyBwYXNza2V5IH0gZnJvbSAnYmV0dGVyLWF1dGgvcGx1Z2lucy9wYXNza2V5J1xuaW1wb3J0IHsgc3NvIH0gZnJvbSAnQGJldHRlci1hdXRoL3NzbydcbmltcG9ydCB7IHBvbGFyLCBjaGVja291dCB9IGZyb20gJ0Bwb2xhci1zaC9iZXR0ZXItYXV0aCdcbmltcG9ydCB7IFBvbGFyIH0gZnJvbSAnQHBvbGFyLXNoL3NkaydcbmltcG9ydCB0eXBlIHsgU2FuaXRpemVkQmV0dGVyQXV0aE9wdGlvbnMgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCBmcyBmcm9tICdub2RlOmZzL3Byb21pc2VzJ1xuaW1wb3J0IHBhdGggZnJvbSAnbm9kZTpwYXRoJ1xuaW1wb3J0IHsgZmlsZVVSTFRvUGF0aCB9IGZyb20gJ25vZGU6dXJsJ1xuaW1wb3J0IFN0cmlwZSBmcm9tICdzdHJpcGUnXG5cbmNvbnN0IGNsaWVudCA9IG5ldyBQb2xhcih7XG4gIGFjY2Vzc1Rva2VuOiAncGtfdGVzdF8xMjM0NTY3ODkwJyxcbiAgc2VydmVyOiAnc2FuZGJveCdcbn0pXG5cbmNvbnN0IHBsdWdpbnMgPSBbXG4gIHVzZXJuYW1lKCksXG4gIGFkbWluKCksXG4gIGFwaUtleSgpLFxuICBwYXNza2V5KCksXG4gIGVtYWlsSGFybW9ueSgpLFxuICBwaG9uZUhhcm1vbnkoKSxcbiAgYmVhcmVyKCksXG4gIGVtYWlsT1RQKHsgc2VuZFZlcmlmaWNhdGlvbk9UUDogYXN5bmMgKCkgPT4ge30gfSksXG4gIG1hZ2ljTGluayh7IHNlbmRNYWdpY0xpbms6IGFzeW5jICgpID0+IHt9IH0pLFxuICBwaG9uZU51bWJlcih7IHNlbmRPVFA6IGFzeW5jICgpID0+IHt9IH0pLFxuICBvbmVUYXAoKSxcbiAgYW5vbnltb3VzKCksXG4gIG11bHRpU2Vzc2lvbigpLFxuICBvbmVUaW1lVG9rZW4oKSxcbiAgb2lkY1Byb3ZpZGVyKHsgbG9naW5QYWdlOiAnJyB9KSxcbiAgc3NvKCksXG4gIGdlbmVyaWNPQXV0aCh7IGNvbmZpZzogW3sgcHJvdmlkZXJJZDogJ3R5cGVzY3JpcHQnLCBjbGllbnRJZDogJ3R5cGVzY3JpcHQnLCBjbGllbnRTZWNyZXQ6ICd0eXBlc2NyaXB0JyB9XSB9KSxcbiAgb3BlbkFQSSgpLFxuICBvcmdhbml6YXRpb24oeyB0ZWFtczogeyBlbmFibGVkOiB0cnVlIH0gfSksXG4gIGp3dCgpLFxuICB0d29GYWN0b3IoKSxcbiAgcGhvbmVOdW1iZXIoKSxcbiAgbmV4dENvb2tpZXMoKSxcbiAgY3VzdG9tU2Vzc2lvbihhc3luYyAoKSA9PiAoe30pKSxcbiAgbWNwKHsgbG9naW5QYWdlOiAnJyB9KSxcbiAgZGV2aWNlQXV0aG9yaXphdGlvbigpLFxuICBsYXN0TG9naW5NZXRob2QoeyBzdG9yZUluRGF0YWJhc2U6IHRydWUgfSksXG4gIHN0cmlwZSh7XG4gICAgc3RyaXBlQ2xpZW50OiBuZXcgU3RyaXBlKCd0eXBlc2NyaXB0JyksXG4gICAgc3RyaXBlV2ViaG9va1NlY3JldDogJ3R5cGVzY3JpcHQnLFxuICAgIHN1YnNjcmlwdGlvbjoge1xuICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgIHBsYW5zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnQmFzaWMnLFxuICAgICAgICAgIHByaWNlSWQ6ICdiYXNpYydcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdQcm8nLFxuICAgICAgICAgIHByaWNlSWQ6ICdwcm8nXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnRW50ZXJwcmlzZScsXG4gICAgICAgICAgcHJpY2VJZDogJ2VudGVycHJpc2UnXG4gICAgICAgIH1cbiAgICAgIF1cbiAgICB9XG4gIH0pLFxuICAvLyBBcyBvZiB3cml0aW5nIHRoaXMsIFBvbGFyIGRvbid0IGNyZWF0ZSBzY2hlbWEgZmllbGRzLCBidXQganVzdCBpbiBjYXNlIGluIHRoZSBmdXR1cmUgd2UgbGVhdmUgdGhpcyBoZXJlLlxuICBwb2xhcih7XG4gICAgY2xpZW50LFxuICAgIHVzZTogW1xuICAgICAgY2hlY2tvdXQoe1xuICAgICAgICBwcm9kdWN0czogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHByb2R1Y3RJZDogJzEyMy00NTYtNzg5JywgLy8gSUQgb2YgUHJvZHVjdCBmcm9tIFBvbGFyIERhc2hib2FyZFxuICAgICAgICAgICAgc2x1ZzogJ3BybycgLy8gQ3VzdG9tIHNsdWcgZm9yIGVhc3kgcmVmZXJlbmNlIGluIENoZWNrb3V0IFVSTCwgZS5nLiAvY2hlY2tvdXQvcHJvXG4gICAgICAgICAgfVxuICAgICAgICBdLFxuICAgICAgICBzdWNjZXNzVXJsOiAnL3N1Y2Nlc3M/Y2hlY2tvdXRfaWQ9e0NIRUNLT1VUX0lEfScsXG4gICAgICAgIGF1dGhlbnRpY2F0ZWRVc2Vyc09ubHk6IHRydWVcbiAgICAgIH0pXG4gICAgXVxuICB9KVxuXVxuXG5jb25zdCBiZXR0ZXJBdXRoQ29uZmlnOiBTYW5pdGl6ZWRCZXR0ZXJBdXRoT3B0aW9ucyA9IHtcbiAgZW1haWxBbmRQYXNzd29yZDogeyBlbmFibGVkOiB0cnVlIH0sXG4gIHVzZXI6IHsgYWRkaXRpb25hbEZpZWxkczogeyByb2xlOiB7IHR5cGU6ICdzdHJpbmcnLCBkZWZhdWx0VmFsdWU6ICd1c2VyJywgaW5wdXQ6IGZhbHNlIH0gfSB9LFxuICBwbHVnaW5zXG59XG5cbmNvbnN0IGJhc2VTY2hlbWEgPSBnZXRTY2hlbWEoeyAuLi5iZXR0ZXJBdXRoQ29uZmlnLCBwbHVnaW5zOiBbXSB9KVxuXG50eXBlIFNjaGVtYSA9IFJlY29yZDxzdHJpbmcsIHsgZmllbGRzOiBSZWNvcmQ8c3RyaW5nLCBEQkZpZWxkQXR0cmlidXRlPiB9PlxuXG5jb25zdCBtYXAgPSAodDogc3RyaW5nKTogc3RyaW5nID0+IHtcbiAgaWYgKHQgPT09ICdib29sZWFuJykgcmV0dXJuICdib29sZWFuJ1xuICBpZiAodCA9PT0gJ2RhdGUnKSByZXR1cm4gJ0RhdGUnXG4gIGlmICh0ID09PSAnbnVtYmVyJykgcmV0dXJuICdudW1iZXInXG4gIGlmICh0ID09PSAnc3RyaW5nJykgcmV0dXJuICdzdHJpbmcnXG4gIGlmICh0ID09PSAnbnVtYmVyW10nKSByZXR1cm4gJ251bWJlcltdJ1xuICBpZiAodCA9PT0gJ3N0cmluZ1tdJykgcmV0dXJuICdzdHJpbmdbXSdcbiAgcmV0dXJuICd1bmtub3duJ1xufVxuXG5jb25zdCBwYXNjYWwgPSAoczogc3RyaW5nKTogc3RyaW5nID0+XG4gIHNcbiAgICAuc3BsaXQoL1stX10vZylcbiAgICAubWFwKChwKSA9PiBwLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgcC5zbGljZSgxKSlcbiAgICAuam9pbignJylcblxuY29uc3QgZGlmZiA9IChiYXNlOiBTY2hlbWEsIHRhcmdldDogU2NoZW1hKTogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgREJGaWVsZEF0dHJpYnV0ZT4+ID0+IHtcbiAgY29uc3QgZDogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgREJGaWVsZEF0dHJpYnV0ZT4+ID0ge31cbiAgZm9yIChjb25zdCBbbSwgeyBmaWVsZHMgfV0gb2YgT2JqZWN0LmVudHJpZXModGFyZ2V0KSkge1xuICAgIGNvbnN0IGFkZGVkID0gT2JqZWN0LmVudHJpZXMoZmllbGRzKS5maWx0ZXIoKFtrXSkgPT4gIShrIGluIChiYXNlW21dPy5maWVsZHMgPz8ge30pKSlcbiAgICBpZiAoYWRkZWQubGVuZ3RoKSBkW21dID0gT2JqZWN0LmZyb21FbnRyaWVzKGFkZGVkKVxuICB9XG4gIHJldHVybiBkXG59XG5cbmNvbnN0IGdlbiA9ICgpOiBzdHJpbmcgPT4ge1xuICBsZXQgb3V0ID0gJy8vIEF1dG8tZ2VuZXJhdGVkIHR5cGVzLiBEbyBub3QgZWRpdC5cXG5cXG4nXG5cbiAgY29uc3QgcGx1Z2luQWRkczogUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgUmVjb3JkPHN0cmluZywgREJGaWVsZEF0dHJpYnV0ZT4+PiA9IHt9XG4gIGNvbnN0IHNlZW4gPSBuZXcgU2V0PHN0cmluZz4oKVxuXG4gIGZvciAoY29uc3QgcGwgb2YgcGx1Z2lucykge1xuICAgIGNvbnN0IGlkID0gKHBsIGFzIGFueSkuaWQgYXMgc3RyaW5nIHwgdW5kZWZpbmVkXG4gICAgaWYgKCFpZCB8fCBzZWVuLmhhcyhpZCkpIGNvbnRpbnVlXG4gICAgc2Vlbi5hZGQoaWQpXG4gICAgY29uc3QgYWRkcyA9IGRpZmYoYmFzZVNjaGVtYSwgZ2V0U2NoZW1hKHsgLi4uYmV0dGVyQXV0aENvbmZpZywgcGx1Z2luczogW3BsXSB9KSlcbiAgICBmb3IgKGNvbnN0IFttLCBmXSBvZiBPYmplY3QuZW50cmllcyhhZGRzKSkge1xuICAgICAgcGx1Z2luQWRkc1ttXSA/Pz0ge31cbiAgICAgIHBsdWdpbkFkZHNbbV1baWRdID0gZlxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IG1vZGVscyA9IG5ldyBTZXQ8c3RyaW5nPihbLi4uT2JqZWN0LmtleXMoYmFzZVNjaGVtYSksIC4uLk9iamVjdC5rZXlzKHBsdWdpbkFkZHMpXSlcblxuICBmb3IgKGNvbnN0IG1vZGVsIG9mIG1vZGVscykge1xuICAgIGNvbnN0IFAgPSBwYXNjYWwobW9kZWwpXG4gICAgY29uc3QgYmFzZSA9IGJhc2VTY2hlbWFbbW9kZWxdPy5maWVsZHMgPz8ge31cbiAgICBjb25zdCBwbHVnaW5zRm9yTW9kZWwgPSBwbHVnaW5BZGRzW21vZGVsXSA/PyB7fVxuICAgIGNvbnN0IHBsdWdpbklkcyA9IE9iamVjdC5rZXlzKHBsdWdpbnNGb3JNb2RlbClcblxuICAgIGlmIChPYmplY3Qua2V5cyhiYXNlKS5sZW5ndGgpIHtcbiAgICAgIG91dCArPSBgZXhwb3J0IHR5cGUgQmFzZSR7UH1GaWVsZHMgPSB7XFxuYFxuICAgICAgZm9yIChjb25zdCBbaywgZl0gb2YgT2JqZWN0LmVudHJpZXMoYmFzZSkpIG91dCArPSBgICAke2YuZmllbGROYW1lID8/IGt9JHtmLnJlcXVpcmVkID8gJycgOiAnPyd9OiAke21hcChmLnR5cGUgYXMgc3RyaW5nKX1cXG5gXG4gICAgICBvdXQgKz0gJ31cXG5cXG4nXG4gICAgfVxuXG4gICAgY29uc3QgbmVlZFBsdWdpbk1hcCA9IHBsdWdpbklkcy5sZW5ndGggPiAxIHx8IE9iamVjdC5rZXlzKGJhc2UpLmxlbmd0aFxuICAgIGlmIChuZWVkUGx1Z2luTWFwICYmIHBsdWdpbklkcy5sZW5ndGgpIHtcbiAgICAgIG91dCArPSBgZXhwb3J0IHR5cGUgJHtQfVBsdWdpbkZpZWxkcyA9IHtcXG5gXG4gICAgICBmb3IgKGNvbnN0IFtwaWQsIGZsZHNdIG9mIE9iamVjdC5lbnRyaWVzKHBsdWdpbnNGb3JNb2RlbCkpIHtcbiAgICAgICAgb3V0ICs9IGAgICR7SlNPTi5zdHJpbmdpZnkocGlkKX06IHtcXG5gXG4gICAgICAgIGZvciAoY29uc3QgW2ssIGZdIG9mIE9iamVjdC5lbnRyaWVzKGZsZHMpKSBvdXQgKz0gYCAgICAke2YuZmllbGROYW1lID8/IGt9JHtmLnJlcXVpcmVkID8gJycgOiAnPyd9OiAke21hcChmLnR5cGUgYXMgc3RyaW5nKX1cXG5gXG4gICAgICAgIG91dCArPSAnICB9XFxuJ1xuICAgICAgfVxuICAgICAgb3V0ICs9ICd9XFxuXFxuJ1xuICAgIH1cblxuICAgIGlmICghT2JqZWN0LmtleXMoYmFzZSkubGVuZ3RoICYmIHBsdWdpbklkcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIGNvbnN0IG9ubHkgPSBwbHVnaW5JZHNbMF1cbiAgICAgIG91dCArPSBgZXhwb3J0IHR5cGUgJHtQfUZpZWxkcyA9IHtcXG5gXG4gICAgICBmb3IgKGNvbnN0IFtrLCBmXSBvZiBPYmplY3QuZW50cmllcyhwbHVnaW5zRm9yTW9kZWxbb25seV0pKVxuICAgICAgICBvdXQgKz0gYCAgJHtmLmZpZWxkTmFtZSA/PyBrfSR7Zi5yZXF1aXJlZCA/ICcnIDogJz8nfTogJHttYXAoZi50eXBlIGFzIHN0cmluZyl9XFxuYFxuICAgICAgb3V0ICs9ICd9XFxuXFxuJ1xuICAgICAgb3V0ICs9IGBleHBvcnQgdHlwZSAke1B9ID0gJHtQfUZpZWxkc1xcblxcbmBcbiAgICAgIGNvbnRpbnVlXG4gICAgfVxuXG4gICAgY29uc3QgcGFydHM6IHN0cmluZ1tdID0gW11cbiAgICBpZiAoT2JqZWN0LmtleXMoYmFzZSkubGVuZ3RoKSBwYXJ0cy5wdXNoKGBCYXNlJHtQfUZpZWxkc2ApXG4gICAgaWYgKHBsdWdpbklkcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IG1hcE5hbWUgPSBuZWVkUGx1Z2luTWFwID8gYCR7UH1QbHVnaW5GaWVsZHNgIDogdW5kZWZpbmVkXG4gICAgICBwYXJ0cy5wdXNoKC4uLnBsdWdpbklkcy5tYXAoKGlkKSA9PiAobWFwTmFtZSA/IGAke21hcE5hbWV9WyR7SlNPTi5zdHJpbmdpZnkoaWQpfV1gIDogJ25ldmVyJykgLyogbm90IHJlYWNoYWJsZSAqLykpXG4gICAgfVxuICAgIG91dCArPSBgZXhwb3J0IHR5cGUgJHtQfSA9ICR7cGFydHMuam9pbignICYgJyl9XFxuXFxuYFxuICB9XG5cbiAgLy8gR2VuZXJhdGUgdW5pb24gdHlwZSBvZiBwbHVnaW4gaWRlbnRpZmllcnNcbiAgY29uc3QgcGx1Z2luSWRVbmlvbiA9IFsuLi5zZWVuXS5tYXAoKGlkKSA9PiBKU09OLnN0cmluZ2lmeShpZCkpLmpvaW4oJyB8ICcpXG4gIG91dCArPSBgZXhwb3J0IHR5cGUgUGx1Z2luSWQgPSAke3BsdWdpbklkVW5pb259XFxuXFxuYFxuXG4gIC8vIEdlbmVyYXRlIGZ1bGwgc2NoZW1hIG1hcHBpbmdcbiAgb3V0ICs9IGBleHBvcnQgdHlwZSBCZXR0ZXJBdXRoRnVsbFNjaGVtYSA9IHtcXG5gXG4gIGZvciAoY29uc3QgbW9kZWwgb2YgbW9kZWxzKSB7XG4gICAgY29uc3QgUCA9IHBhc2NhbChtb2RlbClcbiAgICBvdXQgKz0gYCAgJHtKU09OLnN0cmluZ2lmeShtb2RlbCl9OiAke1B9XFxuYFxuICB9XG4gIG91dCArPSBgfVxcblxcbmBcblxuICAvLyBHZW5lcmF0ZSB1bmlvbiB0eXBlIG9mIGFsbCBtb2RlbCBuYW1lc1xuICBvdXQgKz0gYGV4cG9ydCB0eXBlIE1vZGVsS2V5ID0ga2V5b2YgQmV0dGVyQXV0aEZ1bGxTY2hlbWFgXG5cbiAgcmV0dXJuIG91dFxufVxuXG5jb25zdCBnZW5lcmF0ZWQgPSBnZW4oKVxuXG5jb25zdCBfX2Rpcm5hbWUgPSBwYXRoLmRpcm5hbWUoZmlsZVVSTFRvUGF0aChpbXBvcnQubWV0YS51cmwpKVxuOyhhc3luYyAoKSA9PiB7XG4gIGNvbnN0IGZpbGUgPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAnLi4vZ2VuZXJhdGVkLXR5cGVzLnRzJylcbiAgYXdhaXQgZnMud3JpdGVGaWxlKGZpbGUsIGdlbmVyYXRlZCwgJ3V0ZjgnKVxuICBjb25zb2xlLmxvZyhgR2VuZXJhdGVkIHR5cGVzIHdyaXR0ZW4gdG8gJHtmaWxlfWApXG59KSgpXG4iXSwibmFtZXMiOlsic3RyaXBlIiwiZW1haWxIYXJtb255IiwicGhvbmVIYXJtb255IiwiZ2V0U2NoZW1hIiwiYWRtaW4iLCJhbm9ueW1vdXMiLCJhcGlLZXkiLCJiZWFyZXIiLCJlbWFpbE9UUCIsImdlbmVyaWNPQXV0aCIsImp3dCIsIm1hZ2ljTGluayIsIm11bHRpU2Vzc2lvbiIsIm9uZVRhcCIsIm9uZVRpbWVUb2tlbiIsIm9wZW5BUEkiLCJvcmdhbml6YXRpb24iLCJvaWRjUHJvdmlkZXIiLCJwaG9uZU51bWJlciIsInR3b0ZhY3RvciIsInVzZXJuYW1lIiwiY3VzdG9tU2Vzc2lvbiIsImRldmljZUF1dGhvcml6YXRpb24iLCJtY3AiLCJsYXN0TG9naW5NZXRob2QiLCJuZXh0Q29va2llcyIsInBhc3NrZXkiLCJzc28iLCJwb2xhciIsImNoZWNrb3V0IiwiUG9sYXIiLCJmcyIsInBhdGgiLCJmaWxlVVJMVG9QYXRoIiwiU3RyaXBlIiwiY2xpZW50IiwiYWNjZXNzVG9rZW4iLCJzZXJ2ZXIiLCJwbHVnaW5zIiwic2VuZFZlcmlmaWNhdGlvbk9UUCIsInNlbmRNYWdpY0xpbmsiLCJzZW5kT1RQIiwibG9naW5QYWdlIiwiY29uZmlnIiwicHJvdmlkZXJJZCIsImNsaWVudElkIiwiY2xpZW50U2VjcmV0IiwidGVhbXMiLCJlbmFibGVkIiwic3RvcmVJbkRhdGFiYXNlIiwic3RyaXBlQ2xpZW50Iiwic3RyaXBlV2ViaG9va1NlY3JldCIsInN1YnNjcmlwdGlvbiIsInBsYW5zIiwibmFtZSIsInByaWNlSWQiLCJ1c2UiLCJwcm9kdWN0cyIsInByb2R1Y3RJZCIsInNsdWciLCJzdWNjZXNzVXJsIiwiYXV0aGVudGljYXRlZFVzZXJzT25seSIsImJldHRlckF1dGhDb25maWciLCJlbWFpbEFuZFBhc3N3b3JkIiwidXNlciIsImFkZGl0aW9uYWxGaWVsZHMiLCJyb2xlIiwidHlwZSIsImRlZmF1bHRWYWx1ZSIsImlucHV0IiwiYmFzZVNjaGVtYSIsIm1hcCIsInQiLCJwYXNjYWwiLCJzIiwic3BsaXQiLCJwIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzbGljZSIsImpvaW4iLCJkaWZmIiwiYmFzZSIsInRhcmdldCIsImQiLCJtIiwiZmllbGRzIiwiT2JqZWN0IiwiZW50cmllcyIsImFkZGVkIiwiZmlsdGVyIiwiayIsImxlbmd0aCIsImZyb21FbnRyaWVzIiwiZ2VuIiwib3V0IiwicGx1Z2luQWRkcyIsInNlZW4iLCJTZXQiLCJwbCIsImlkIiwiaGFzIiwiYWRkIiwiYWRkcyIsImYiLCJtb2RlbHMiLCJrZXlzIiwibW9kZWwiLCJQIiwicGx1Z2luc0Zvck1vZGVsIiwicGx1Z2luSWRzIiwiZmllbGROYW1lIiwicmVxdWlyZWQiLCJuZWVkUGx1Z2luTWFwIiwicGlkIiwiZmxkcyIsIkpTT04iLCJzdHJpbmdpZnkiLCJvbmx5IiwicGFydHMiLCJwdXNoIiwibWFwTmFtZSIsInVuZGVmaW5lZCIsInBsdWdpbklkVW5pb24iLCJnZW5lcmF0ZWQiLCJfX2Rpcm5hbWUiLCJkaXJuYW1lIiwidXJsIiwiZmlsZSIsInJlc29sdmUiLCJ3cml0ZUZpbGUiLCJjb25zb2xlIiwibG9nIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxNQUFNLFFBQVEsc0JBQXFCO0FBQzVDLFNBQVNDLFlBQVksRUFBRUMsWUFBWSxRQUFRLHNCQUFxQjtBQUNoRSxTQUFTQyxTQUFTLFFBQVEsaUJBQWdCO0FBRTFDLFNBQ0VDLEtBQUssRUFDTEMsU0FBUyxFQUNUQyxNQUFNLEVBQ05DLE1BQU0sRUFDTkMsUUFBUSxFQUNSQyxZQUFZLEVBQ1pDLEdBQUcsRUFDSEMsU0FBUyxFQUNUQyxZQUFZLEVBQ1pDLE1BQU0sRUFDTkMsWUFBWSxFQUNaQyxPQUFPLEVBQ1BDLFlBQVksRUFDWkMsWUFBWSxFQUNaQyxXQUFXLEVBQ1hDLFNBQVMsRUFDVEMs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
package/dist/index.d.ts CHANGED
@@ -1,5 +1,2 @@
1
1
  export * from './better-auth';
2
- export * from './clerk';
3
- export * from './kinde';
4
- export * from './authjs';
5
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,eAAe,CAAA;AAC7B,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,eAAe,CAAA"}
package/dist/index.js CHANGED
@@ -1,7 +1,4 @@
1
1
  // These re-exports will be used by consumers of the library
2
2
  export * from "./better-auth";
3
- export * from "./clerk";
4
- export * from "./kinde";
5
- export * from "./authjs";
6
3
 
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGVzZSByZS1leHBvcnRzIHdpbGwgYmUgdXNlZCBieSBjb25zdW1lcnMgb2YgdGhlIGxpYnJhcnlcbmV4cG9ydCAqIGZyb20gJy4vYmV0dGVyLWF1dGgnXG5leHBvcnQgKiBmcm9tICcuL2NsZXJrJ1xuZXhwb3J0ICogZnJvbSAnLi9raW5kZSdcbmV4cG9ydCAqIGZyb20gJy4vYXV0aGpzJ1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDREQUE0RDtBQUM1RCxjQUFjLGdCQUFlO0FBQzdCLGNBQWMsVUFBUztBQUN2QixjQUFjLFVBQVM7QUFDdkIsY0FBYyxXQUFVIn0=
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGVzZSByZS1leHBvcnRzIHdpbGwgYmUgdXNlZCBieSBjb25zdW1lcnMgb2YgdGhlIGxpYnJhcnlcbmV4cG9ydCAqIGZyb20gJy4vYmV0dGVyLWF1dGgnXG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsNERBQTREO0FBQzVELGNBQWMsZ0JBQWUifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "payload-auth",
3
- "version": "1.6.4",
3
+ "version": "1.6.6",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.mjs",
6
6
  "types": "./dist/index.d.ts",
@@ -32,36 +32,6 @@
32
32
  "types": "./dist/better-auth/plugin/payload/exports/rsc.d.ts",
33
33
  "default": "./dist/better-auth/plugin/payload/exports/rsc.js"
34
34
  },
35
- "./clerk": {
36
- "import": "./dist/clerk/index.js",
37
- "types": "./dist/clerk/index.d.ts",
38
- "default": "./dist/clerk/index.js"
39
- },
40
- "./clerk/plugin": {
41
- "import": "./dist/clerk/plugin/index.js",
42
- "types": "./dist/clerk/plugin/index.d.ts",
43
- "default": "./dist/clerk/plugin/index.js"
44
- },
45
- "./clerk/utils": {
46
- "import": "./dist/clerk/utils/index.js",
47
- "types": "./dist/clerk/utils/index.d.ts",
48
- "default": "./dist/clerk/utils/index.js"
49
- },
50
- "./clerk/admin/ui": {
51
- "import": "./dist/clerk/admin-ui.js",
52
- "types": "./dist/clerk/admin-ui.d.ts",
53
- "default": "./dist/clerk/admin-ui.js"
54
- },
55
- "./kinde": {
56
- "import": "./dist/kinde/index.js",
57
- "types": "./dist/kinde/index.d.ts",
58
- "default": "./dist/kinde/index.js"
59
- },
60
- "./authjs": {
61
- "import": "./dist/authjs/index.js",
62
- "types": "./dist/authjs/index.d.ts",
63
- "default": "./dist/authjs/index.js"
64
- },
65
35
  "./shared/payload/fields": {
66
36
  "import": "./dist/shared/payload/fields/index.js",
67
37
  "types": "./dist/shared/payload/fields/index.d.ts",
@@ -75,6 +45,8 @@
75
45
  "scripts": {
76
46
  "clean": "rm -rf ./dist && rm -rf ./tsconfig.tsbuildinfo",
77
47
  "build": "pnpm clean && pnpm copyfiles && pnpm build:types && pnpm build:swc",
48
+ "dev": "pnpm build && pnpm dev:watch",
49
+ "dev:watch": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths --watch",
78
50
  "copyfiles": "copyfiles -u 1 --exclude \"src/better-auth/adapter/tests/**/*\" \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png,json}\" dist",
79
51
  "build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths",
80
52
  "build:types": "pnpm generate:better-auth-types && tsc --project tsconfig.json",
@@ -82,16 +54,19 @@
82
54
  "generate:better-auth-types": "rm -rf src/better-auth/generated-types.ts && tsx src/better-auth/scripts/generate-types.ts"
83
55
  },
84
56
  "peerDependencies": {
85
- "@payloadcms/ui": "^3.35",
86
- "better-auth": "^1.2",
57
+ "@payloadcms/ui": ">=3.55.1 <4",
58
+ "better-auth": ">=1.3.11 <2",
87
59
  "next": "^15.3.0",
88
- "payload": "^3.35",
60
+ "payload": ">=3.55.1 <4",
89
61
  "react": "^19",
90
62
  "react-dom": "^19"
91
63
  },
92
64
  "devDependencies": {
93
- "@clerk/types": "^4.50.1",
94
- "@payloadcms/db-postgres": "3.35.1",
65
+ "@payloadcms/db-postgres": ">3.55.1 <4",
66
+ "@better-auth/sso": "1.3.27",
67
+ "@better-auth/stripe": "1.3.27",
68
+ "@polar-sh/better-auth": "1.1.9",
69
+ "@polar-sh/sdk": "^0.35.3",
95
70
  "@swc/cli": "0.6.0",
96
71
  "@swc/core": "1.11.13",
97
72
  "@types/node": "^20.0.0",
@@ -106,13 +81,7 @@
106
81
  "vitest": "^1.0.0"
107
82
  },
108
83
  "dependencies": {
109
- "@better-auth/stripe": "1.2.7",
110
- "@better-auth/utils": "0.2.4",
111
- "@clerk/backend": "^1.25.8",
112
- "@clerk/clerk-js": "^5.63.5",
113
- "@clerk/nextjs": "^6.12.12",
114
- "@polar-sh/better-auth": "^0.1.1",
115
- "@polar-sh/sdk": "^0.32.13",
84
+ "@better-auth/utils": "0.3.0",
116
85
  "@tanstack/react-form": "1.4.0",
117
86
  "class-variance-authority": "0.7.1",
118
87
  "clsx": "2.1.1",
@@ -1,2 +0,0 @@
1
- export declare const authjs = "authjs";
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/authjs/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,WAAW,CAAA"}
@@ -1,3 +0,0 @@
1
- export const authjs = 'authjs';
2
-
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hdXRoanMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IGF1dGhqcyA9ICdhdXRoanMnXG4iXSwibmFtZXMiOlsiYXV0aGpzIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLE1BQU1BLFNBQVMsU0FBUSJ9
@@ -1,4 +0,0 @@
1
- export { SyncClerkUsersButton } from './plugin/components/sync-clerk-users-button';
2
- export { AfterLoginForm } from './plugin/components/after-login-form';
3
- export { LogoutButton } from './plugin/components/logout-button';
4
- //# sourceMappingURL=admin-ui.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"admin-ui.d.ts","sourceRoot":"","sources":["../../src/clerk/admin-ui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6CAA6C,CAAA;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAA;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAA"}
@@ -1,5 +0,0 @@
1
- export { SyncClerkUsersButton } from "./plugin/components/sync-clerk-users-button";
2
- export { AfterLoginForm } from "./plugin/components/after-login-form";
3
- export { LogoutButton } from "./plugin/components/logout-button";
4
-
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGVyay9hZG1pbi11aS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBTeW5jQ2xlcmtVc2Vyc0J1dHRvbiB9IGZyb20gJy4vcGx1Z2luL2NvbXBvbmVudHMvc3luYy1jbGVyay11c2Vycy1idXR0b24nXG5leHBvcnQgeyBBZnRlckxvZ2luRm9ybSB9IGZyb20gJy4vcGx1Z2luL2NvbXBvbmVudHMvYWZ0ZXItbG9naW4tZm9ybSdcbmV4cG9ydCB7IExvZ291dEJ1dHRvbiB9IGZyb20gJy4vcGx1Z2luL2NvbXBvbmVudHMvbG9nb3V0LWJ1dHRvbidcbiJdLCJuYW1lcyI6WyJTeW5jQ2xlcmtVc2Vyc0J1dHRvbiIsIkFmdGVyTG9naW5Gb3JtIiwiTG9nb3V0QnV0dG9uIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxvQkFBb0IsUUFBUSw4Q0FBNkM7QUFDbEYsU0FBU0MsY0FBYyxRQUFRLHVDQUFzQztBQUNyRSxTQUFTQyxZQUFZLFFBQVEsb0NBQW1DIn0=
@@ -1,7 +0,0 @@
1
- export * from './plugin';
2
- export * from './types';
3
- export * from './utils';
4
- import { clerkPlugin } from './plugin';
5
- import { clerkAuthStrategy } from './plugin/auth-strategy';
6
- export { clerkPlugin, clerkAuthStrategy };
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/clerk/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,SAAS,CAAA;AAEvB,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE1D,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAA"}
@@ -1,8 +0,0 @@
1
- export * from "./plugin";
2
- export * from "./types";
3
- export * from "./utils";
4
- import { clerkPlugin } from "./plugin";
5
- import { clerkAuthStrategy } from "./plugin/auth-strategy";
6
- export { clerkPlugin, clerkAuthStrategy };
7
-
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGVyay9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3BsdWdpbidcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnXG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJ1xuXG5pbXBvcnQgeyBjbGVya1BsdWdpbiB9IGZyb20gJy4vcGx1Z2luJ1xuaW1wb3J0IHsgY2xlcmtBdXRoU3RyYXRlZ3kgfSBmcm9tICcuL3BsdWdpbi9hdXRoLXN0cmF0ZWd5J1xuXG5leHBvcnQgeyBjbGVya1BsdWdpbiwgY2xlcmtBdXRoU3RyYXRlZ3kgfVxuIl0sIm5hbWVzIjpbImNsZXJrUGx1Z2luIiwiY2xlcmtBdXRoU3RyYXRlZ3kiXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsV0FBVTtBQUN4QixjQUFjLFVBQVM7QUFDdkIsY0FBYyxVQUFTO0FBRXZCLFNBQVNBLFdBQVcsUUFBUSxXQUFVO0FBQ3RDLFNBQVNDLGlCQUFpQixRQUFRLHlCQUF3QjtBQUUxRCxTQUFTRCxXQUFXLEVBQUVDLGlCQUFpQixHQUFFIn0=
@@ -1,11 +0,0 @@
1
- import type { AuthStrategy } from 'payload';
2
- /**
3
- * Authentication strategy for Clerk
4
- * Integrates Payload with Clerk using the official Clerk auth method
5
- *
6
- * @param adminRoles - Admin roles
7
- * @param userSlug - User collection slug
8
- * @returns Auth strategy
9
- */
10
- export declare function clerkAuthStrategy(userSlug?: string): AuthStrategy;
11
- //# sourceMappingURL=auth-strategy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth-strategy.d.ts","sourceRoot":"","sources":["../../../src/clerk/plugin/auth-strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAM3C;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,GAAE,MAAgB,GAAG,YAAY,CA8B1E"}
@@ -1,45 +0,0 @@
1
- import { auth } from "@clerk/nextjs/server";
2
- import { getUserByClerkId } from "../utils/user";
3
- const CLERK_AUTH_STRATEGY_NAME = 'clerk';
4
- /**
5
- * Authentication strategy for Clerk
6
- * Integrates Payload with Clerk using the official Clerk auth method
7
- *
8
- * @param adminRoles - Admin roles
9
- * @param userSlug - User collection slug
10
- * @returns Auth strategy
11
- */ export function clerkAuthStrategy(userSlug = 'users') {
12
- return {
13
- name: CLERK_AUTH_STRATEGY_NAME,
14
- authenticate: async ({ payload, strategyName = CLERK_AUTH_STRATEGY_NAME })=>{
15
- try {
16
- const { userId } = await auth();
17
- if (!userId) {
18
- return {
19
- user: null
20
- };
21
- }
22
- const user = await getUserByClerkId(payload, userSlug, userId);
23
- if (!user) {
24
- return {
25
- user: null
26
- };
27
- }
28
- return {
29
- user: {
30
- ...user,
31
- collection: userSlug,
32
- _strategy: strategyName
33
- }
34
- };
35
- } catch (error) {
36
- console.error('Error in Clerk auth strategy:', error);
37
- return {
38
- user: null
39
- };
40
- }
41
- }
42
- };
43
- }
44
-
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGVyay9wbHVnaW4vYXV0aC1zdHJhdGVneS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEF1dGhTdHJhdGVneSB9IGZyb20gJ3BheWxvYWQnXG5pbXBvcnQgeyBhdXRoIH0gZnJvbSAnQGNsZXJrL25leHRqcy9zZXJ2ZXInXG5pbXBvcnQgeyBnZXRVc2VyQnlDbGVya0lkIH0gZnJvbSAnLi4vdXRpbHMvdXNlcidcblxuY29uc3QgQ0xFUktfQVVUSF9TVFJBVEVHWV9OQU1FID0gJ2NsZXJrJ1xuXG4vKipcbiAqIEF1dGhlbnRpY2F0aW9uIHN0cmF0ZWd5IGZvciBDbGVya1xuICogSW50ZWdyYXRlcyBQYXlsb2FkIHdpdGggQ2xlcmsgdXNpbmcgdGhlIG9mZmljaWFsIENsZXJrIGF1dGggbWV0aG9kXG4gKlxuICogQHBhcmFtIGFkbWluUm9sZXMgLSBBZG1pbiByb2xlc1xuICogQHBhcmFtIHVzZXJTbHVnIC0gVXNlciBjb2xsZWN0aW9uIHNsdWdcbiAqIEByZXR1cm5zIEF1dGggc3RyYXRlZ3lcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNsZXJrQXV0aFN0cmF0ZWd5KHVzZXJTbHVnOiBzdHJpbmcgPSAndXNlcnMnKTogQXV0aFN0cmF0ZWd5IHtcbiAgcmV0dXJuIHtcbiAgICBuYW1lOiBDTEVSS19BVVRIX1NUUkFURUdZX05BTUUsXG4gICAgYXV0aGVudGljYXRlOiBhc3luYyAoeyBwYXlsb2FkLCBzdHJhdGVneU5hbWUgPSBDTEVSS19BVVRIX1NUUkFURUdZX05BTUUgfSkgPT4ge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgeyB1c2VySWQgfSA9IGF3YWl0IGF1dGgoKVxuXG4gICAgICAgIGlmICghdXNlcklkKSB7XG4gICAgICAgICAgcmV0dXJuIHsgdXNlcjogbnVsbCB9XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB1c2VyID0gYXdhaXQgZ2V0VXNlckJ5Q2xlcmtJZChwYXlsb2FkLCB1c2VyU2x1ZywgdXNlcklkKVxuXG4gICAgICAgIGlmICghdXNlcikge1xuICAgICAgICAgIHJldHVybiB7IHVzZXI6IG51bGwgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB1c2VyOiB7XG4gICAgICAgICAgICAuLi51c2VyLFxuICAgICAgICAgICAgY29sbGVjdGlvbjogdXNlclNsdWcsXG4gICAgICAgICAgICBfc3RyYXRlZ3k6IHN0cmF0ZWd5TmFtZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3IgaW4gQ2xlcmsgYXV0aCBzdHJhdGVneTonLCBlcnJvcilcbiAgICAgICAgcmV0dXJuIHsgdXNlcjogbnVsbCB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOlsiYXV0aCIsImdldFVzZXJCeUNsZXJrSWQiLCJDTEVSS19BVVRIX1NUUkFURUdZX05BTUUiLCJjbGVya0F1dGhTdHJhdGVneSIsInVzZXJTbHVnIiwibmFtZSIsImF1dGhlbnRpY2F0ZSIsInBheWxvYWQiLCJzdHJhdGVneU5hbWUiLCJ1c2VySWQiLCJ1c2VyIiwiY29sbGVjdGlvbiIsIl9zdHJhdGVneSIsImVycm9yIiwiY29uc29sZSJdLCJtYXBwaW5ncyI6IkFBQ0EsU0FBU0EsSUFBSSxRQUFRLHVCQUFzQjtBQUMzQyxTQUFTQyxnQkFBZ0IsUUFBUSxnQkFBZTtBQUVoRCxNQUFNQywyQkFBMkI7QUFFakM7Ozs7Ozs7Q0FPQyxHQUNELE9BQU8sU0FBU0Msa0JBQWtCQyxXQUFtQixPQUFPO0lBQzFELE9BQU87UUFDTEMsTUFBTUg7UUFDTkksY0FBYyxPQUFPLEVBQUVDLE9BQU8sRUFBRUMsZUFBZU4sd0JBQXdCLEVBQUU7WUFDdkUsSUFBSTtnQkFDRixNQUFNLEVBQUVPLE1BQU0sRUFBRSxHQUFHLE1BQU1UO2dCQUV6QixJQUFJLENBQUNTLFFBQVE7b0JBQ1gsT0FBTzt3QkFBRUMsTUFBTTtvQkFBSztnQkFDdEI7Z0JBRUEsTUFBTUEsT0FBTyxNQUFNVCxpQkFBaUJNLFNBQVNILFVBQVVLO2dCQUV2RCxJQUFJLENBQUNDLE1BQU07b0JBQ1QsT0FBTzt3QkFBRUEsTUFBTTtvQkFBSztnQkFDdEI7Z0JBRUEsT0FBTztvQkFDTEEsTUFBTTt3QkFDSixHQUFHQSxJQUFJO3dCQUNQQyxZQUFZUDt3QkFDWlEsV0FBV0o7b0JBQ2I7Z0JBQ0Y7WUFDRixFQUFFLE9BQU9LLE9BQU87Z0JBQ2RDLFFBQVFELEtBQUssQ0FBQyxpQ0FBaUNBO2dCQUMvQyxPQUFPO29CQUFFSCxNQUFNO2dCQUFLO1lBQ3RCO1FBQ0Y7SUFDRjtBQUNGIn0=
@@ -1,14 +0,0 @@
1
- import type { Access } from 'payload';
2
- export declare const getReadAccess: ({ adminRoles }: {
3
- adminRoles: string[];
4
- }) => Access;
5
- export declare const getCreateAccess: ({ adminRoles }: {
6
- adminRoles: string[];
7
- }) => Access;
8
- export declare const getUpdateAccess: ({ adminRoles }: {
9
- adminRoles: string[];
10
- }) => Access;
11
- export declare const getDeleteAccess: ({ adminRoles }: {
12
- adminRoles: string[];
13
- }) => Access;
14
- //# sourceMappingURL=access.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"access.d.ts","sourceRoot":"","sources":["../../../../../src/clerk/plugin/collections/users/access.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAkB,MAAM,SAAS,CAAA;AAcrD,eAAO,MAAM,aAAa,GAAI,gBAAgB;IAAE,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,KAAG,MAUxE,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,gBAAgB;IAAE,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,KAAG,MAI1E,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,gBAAgB;IAAE,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,KAAG,MAI1E,CAAA;AAED,eAAO,MAAM,eAAe,GAAI,gBAAgB;IAAE,UAAU,EAAE,MAAM,EAAE,CAAA;CAAE,KAAG,MAI1E,CAAA"}
@@ -1,36 +0,0 @@
1
- const isAdmin = (req, adminRoles)=>{
2
- return Boolean(req.user && adminRoles.includes(req.user.role));
3
- };
4
- const isCurrentUser = (req)=>{
5
- return {
6
- id: {
7
- equals: req.user?.id
8
- }
9
- };
10
- };
11
- export const getReadAccess = ({ adminRoles })=>{
12
- return ({ req })=>{
13
- if (!req.user) return false;
14
- if (isAdmin(req, adminRoles)) {
15
- return true;
16
- }
17
- return isCurrentUser(req);
18
- };
19
- };
20
- export const getCreateAccess = ({ adminRoles })=>{
21
- return ({ req })=>{
22
- return isAdmin(req, adminRoles);
23
- };
24
- };
25
- export const getUpdateAccess = ({ adminRoles })=>{
26
- return ({ req })=>{
27
- return isAdmin(req, adminRoles);
28
- };
29
- };
30
- export const getDeleteAccess = ({ adminRoles })=>{
31
- return ({ req })=>{
32
- return isAdmin(req, adminRoles);
33
- };
34
- };
35
-
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jbGVyay9wbHVnaW4vY29sbGVjdGlvbnMvdXNlcnMvYWNjZXNzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQWNjZXNzLCBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJ3BheWxvYWQnXG5cbmNvbnN0IGlzQWRtaW4gPSAocmVxOiBhbnksIGFkbWluUm9sZXM6IHN0cmluZ1tdKTogYm9vbGVhbiA9PiB7XG4gIHJldHVybiBCb29sZWFuKHJlcS51c2VyICYmIGFkbWluUm9sZXMuaW5jbHVkZXMocmVxLnVzZXIucm9sZSBhcyBzdHJpbmcpKVxufVxuXG5jb25zdCBpc0N1cnJlbnRVc2VyID0gKHJlcTogUGF5bG9hZFJlcXVlc3QpID0+IHtcbiAgcmV0dXJuIHtcbiAgICBpZDoge1xuICAgICAgZXF1YWxzOiByZXEudXNlcj8uaWRcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGdldFJlYWRBY2Nlc3MgPSAoeyBhZG1pblJvbGVzIH06IHsgYWRtaW5Sb2xlczogc3RyaW5nW10gfSk6IEFjY2VzcyA9PiB7XG4gIHJldHVybiAoeyByZXEgfSkgPT4ge1xuICAgIGlmICghcmVxLnVzZXIpIHJldHVybiBmYWxzZVxuXG4gICAgaWYgKGlzQWRtaW4ocmVxLCBhZG1pblJvbGVzKSkge1xuICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG5cbiAgICByZXR1cm4gaXNDdXJyZW50VXNlcihyZXEpXG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IGdldENyZWF0ZUFjY2VzcyA9ICh7IGFkbWluUm9sZXMgfTogeyBhZG1pblJvbGVzOiBzdHJpbmdbXSB9KTogQWNjZXNzID0+IHtcbiAgcmV0dXJuICh7IHJlcSB9KSA9PiB7XG4gICAgcmV0dXJuIGlzQWRtaW4ocmVxLCBhZG1pblJvbGVzKVxuICB9XG59XG5cbmV4cG9ydCBjb25zdCBnZXRVcGRhdGVBY2Nlc3MgPSAoeyBhZG1pblJvbGVzIH06IHsgYWRtaW5Sb2xlczogc3RyaW5nW10gfSk6IEFjY2VzcyA9PiB7XG4gIHJldHVybiAoeyByZXEgfSkgPT4ge1xuICAgIHJldHVybiBpc0FkbWluKHJlcSwgYWRtaW5Sb2xlcylcbiAgfVxufVxuXG5leHBvcnQgY29uc3QgZ2V0RGVsZXRlQWNjZXNzID0gKHsgYWRtaW5Sb2xlcyB9OiB7IGFkbWluUm9sZXM6IHN0cmluZ1tdIH0pOiBBY2Nlc3MgPT4ge1xuICByZXR1cm4gKHsgcmVxIH0pID0+IHtcbiAgICByZXR1cm4gaXNBZG1pbihyZXEsIGFkbWluUm9sZXMpXG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJpc0FkbWluIiwicmVxIiwiYWRtaW5Sb2xlcyIsIkJvb2xlYW4iLCJ1c2VyIiwiaW5jbHVkZXMiLCJyb2xlIiwiaXNDdXJyZW50VXNlciIsImlkIiwiZXF1YWxzIiwiZ2V0UmVhZEFjY2VzcyIsImdldENyZWF0ZUFjY2VzcyIsImdldFVwZGF0ZUFjY2VzcyIsImdldERlbGV0ZUFjY2VzcyJdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTUEsVUFBVSxDQUFDQyxLQUFVQztJQUN6QixPQUFPQyxRQUFRRixJQUFJRyxJQUFJLElBQUlGLFdBQVdHLFFBQVEsQ0FBQ0osSUFBSUcsSUFBSSxDQUFDRSxJQUFJO0FBQzlEO0FBRUEsTUFBTUMsZ0JBQWdCLENBQUNOO0lBQ3JCLE9BQU87UUFDTE8sSUFBSTtZQUNGQyxRQUFRUixJQUFJRyxJQUFJLEVBQUVJO1FBQ3BCO0lBQ0Y7QUFDRjtBQUVBLE9BQU8sTUFBTUUsZ0JBQWdCLENBQUMsRUFBRVIsVUFBVSxFQUE0QjtJQUNwRSxPQUFPLENBQUMsRUFBRUQsR0FBRyxFQUFFO1FBQ2IsSUFBSSxDQUFDQSxJQUFJRyxJQUFJLEVBQUUsT0FBTztRQUV0QixJQUFJSixRQUFRQyxLQUFLQyxhQUFhO1lBQzVCLE9BQU87UUFDVDtRQUVBLE9BQU9LLGNBQWNOO0lBQ3ZCO0FBQ0YsRUFBQztBQUVELE9BQU8sTUFBTVUsa0JBQWtCLENBQUMsRUFBRVQsVUFBVSxFQUE0QjtJQUN0RSxPQUFPLENBQUMsRUFBRUQsR0FBRyxFQUFFO1FBQ2IsT0FBT0QsUUFBUUMsS0FBS0M7SUFDdEI7QUFDRixFQUFDO0FBRUQsT0FBTyxNQUFNVSxrQkFBa0IsQ0FBQyxFQUFFVixVQUFVLEVBQTRCO0lBQ3RFLE9BQU8sQ0FBQyxFQUFFRCxHQUFHLEVBQUU7UUFDYixPQUFPRCxRQUFRQyxLQUFLQztJQUN0QjtBQUNGLEVBQUM7QUFFRCxPQUFPLE1BQU1XLGtCQUFrQixDQUFDLEVBQUVYLFVBQVUsRUFBNEI7SUFDdEUsT0FBTyxDQUFDLEVBQUVELEdBQUcsRUFBRTtRQUNiLE9BQU9ELFFBQVFDLEtBQUtDO0lBQ3RCO0FBQ0YsRUFBQyJ9
@@ -1,14 +0,0 @@
1
- import { Endpoint } from 'payload';
2
- export interface SyncClerkUsersResponse {
3
- syncedUsers: number;
4
- success: boolean;
5
- message?: string;
6
- error?: string;
7
- count?: number;
8
- created?: number;
9
- updated?: number;
10
- }
11
- export declare const syncClerkUsersEndpoint: ({ userCollectionSlug }: {
12
- userCollectionSlug: string;
13
- }) => Endpoint;
14
- //# sourceMappingURL=sync-from-clerk.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync-from-clerk.d.ts","sourceRoot":"","sources":["../../../../../../src/clerk/plugin/collections/users/endpoints/sync-from-clerk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,QAAQ,EAAE,MAAM,SAAS,CAAA;AAK5C,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,eAAO,MAAM,sBAAsB,GAAI,wBAAwB;IAAE,kBAAkB,EAAE,MAAM,CAAA;CAAE,KAAG,QAgH/F,CAAA"}