@cabin-id/nextjs 1.0.0 → 1.0.2

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 (301) hide show
  1. package/dist/cjs/api/endpoints/AbstractApi.js +38 -0
  2. package/dist/cjs/api/endpoints/AbstractApi.js.map +1 -0
  3. package/dist/cjs/api/endpoints/UserApi.js +40 -0
  4. package/dist/cjs/api/endpoints/UserApi.js.map +1 -0
  5. package/dist/cjs/api/endpoints/index.js +32 -0
  6. package/dist/cjs/api/endpoints/index.js.map +1 -0
  7. package/dist/cjs/api/factory.js +60 -0
  8. package/dist/cjs/api/factory.js.map +1 -0
  9. package/dist/cjs/api/request.js +97 -0
  10. package/dist/cjs/api/request.js.map +1 -0
  11. package/dist/cjs/component.client.js +32 -0
  12. package/dist/cjs/component.client.js.map +1 -0
  13. package/dist/cjs/component.server.js +32 -0
  14. package/dist/cjs/component.server.js.map +1 -0
  15. package/dist/cjs/components/SignInButton.js +67 -0
  16. package/dist/cjs/components/SignInButton.js.map +1 -0
  17. package/dist/cjs/components/index.js +29 -0
  18. package/dist/cjs/components/index.js.map +1 -0
  19. package/dist/cjs/constants.js +122 -0
  20. package/dist/cjs/constants.js.map +1 -0
  21. package/dist/cjs/hooks/createContextAndHook.js +62 -0
  22. package/dist/cjs/hooks/createContextAndHook.js.map +1 -0
  23. package/dist/cjs/hooks/index.js +29 -0
  24. package/dist/cjs/hooks/index.js.map +1 -0
  25. package/dist/cjs/hooks/useSafeLayoutEffect.js +40 -0
  26. package/dist/cjs/hooks/useSafeLayoutEffect.js.map +1 -0
  27. package/dist/cjs/hooks/useUser.js +70 -0
  28. package/dist/cjs/hooks/useUser.js.map +1 -0
  29. package/dist/cjs/icons/logo.js +98 -0
  30. package/dist/cjs/icons/logo.js.map +1 -0
  31. package/dist/cjs/index.js +45 -0
  32. package/dist/cjs/index.js.map +1 -0
  33. package/dist/cjs/package.json +9 -0
  34. package/dist/cjs/provider/context.js +62 -0
  35. package/dist/cjs/provider/context.js.map +1 -0
  36. package/dist/cjs/provider/core.provider.js +49 -0
  37. package/dist/cjs/provider/core.provider.js.map +1 -0
  38. package/dist/cjs/provider/main.provider.js +45 -0
  39. package/dist/cjs/provider/main.provider.js.map +1 -0
  40. package/dist/cjs/server/auth.js +61 -0
  41. package/dist/cjs/server/auth.js.map +1 -0
  42. package/dist/cjs/server/client.js +35 -0
  43. package/dist/cjs/server/client.js.map +1 -0
  44. package/dist/cjs/server/createGetAuth.js +45 -0
  45. package/dist/cjs/server/createGetAuth.js.map +1 -0
  46. package/dist/cjs/server/createRedirect.js +90 -0
  47. package/dist/cjs/server/createRedirect.js.map +1 -0
  48. package/dist/cjs/server/errors.js +110 -0
  49. package/dist/cjs/server/errors.js.map +1 -0
  50. package/dist/cjs/server/getCurrentUser.js +36 -0
  51. package/dist/cjs/server/getCurrentUser.js.map +1 -0
  52. package/dist/cjs/server/index.js +32 -0
  53. package/dist/cjs/server/index.js.map +1 -0
  54. package/dist/cjs/server/middleware.js +193 -0
  55. package/dist/cjs/server/middleware.js.map +1 -0
  56. package/dist/cjs/server/protect.js +69 -0
  57. package/dist/cjs/server/protect.js.map +1 -0
  58. package/dist/cjs/server/routeMatcher.js +42 -0
  59. package/dist/cjs/server/routeMatcher.js.map +1 -0
  60. package/dist/cjs/server/serverRedirectWithAuth.js +39 -0
  61. package/dist/cjs/server/serverRedirectWithAuth.js.map +1 -0
  62. package/dist/cjs/server/type.js +17 -0
  63. package/dist/cjs/server/type.js.map +1 -0
  64. package/dist/cjs/server/utils.js +165 -0
  65. package/dist/cjs/server/utils.js.map +1 -0
  66. package/dist/cjs/styles/global.css +420 -0
  67. package/dist/cjs/styles/global.css.map +1 -0
  68. package/dist/cjs/tokens/authObjects.js +45 -0
  69. package/dist/cjs/tokens/authObjects.js.map +1 -0
  70. package/dist/cjs/tokens/authStatus.js +86 -0
  71. package/dist/cjs/tokens/authStatus.js.map +1 -0
  72. package/dist/cjs/tokens/authenticateContext.js +69 -0
  73. package/dist/cjs/tokens/authenticateContext.js.map +1 -0
  74. package/dist/cjs/tokens/cabinIdRequest.js +79 -0
  75. package/dist/cjs/tokens/cabinIdRequest.js.map +1 -0
  76. package/dist/cjs/tokens/cabinIdUrl.js +36 -0
  77. package/dist/cjs/tokens/cabinIdUrl.js.map +1 -0
  78. package/dist/cjs/tokens/request.js +58 -0
  79. package/dist/cjs/tokens/request.js.map +1 -0
  80. package/dist/cjs/types.js +17 -0
  81. package/dist/cjs/types.js.map +1 -0
  82. package/dist/cjs/utils/assertValidSecretKey.js +35 -0
  83. package/dist/cjs/utils/assertValidSecretKey.js.map +1 -0
  84. package/dist/cjs/utils/createCabinIdClient.js +38 -0
  85. package/dist/cjs/utils/createCabinIdClient.js.map +1 -0
  86. package/dist/cjs/utils/http.js +31 -0
  87. package/dist/cjs/utils/http.js.map +1 -0
  88. package/dist/cjs/utils/initial.js +45 -0
  89. package/dist/cjs/utils/initial.js.map +1 -0
  90. package/dist/cjs/utils/isomorphicAtob.js +36 -0
  91. package/dist/cjs/utils/isomorphicAtob.js.map +1 -0
  92. package/dist/cjs/utils/isomorphicBtoa.js +36 -0
  93. package/dist/cjs/utils/isomorphicBtoa.js.map +1 -0
  94. package/dist/cjs/utils/key.js +49 -0
  95. package/dist/cjs/utils/key.js.map +1 -0
  96. package/dist/cjs/utils/path.js +33 -0
  97. package/dist/cjs/utils/path.js.map +1 -0
  98. package/dist/cjs/utils/response.js +76 -0
  99. package/dist/cjs/utils/response.js.map +1 -0
  100. package/dist/cjs/utils.js +52 -0
  101. package/dist/cjs/utils.js.map +1 -0
  102. package/dist/esm/api/endpoints/AbstractApi.js +14 -0
  103. package/dist/esm/api/endpoints/AbstractApi.js.map +1 -0
  104. package/dist/esm/api/endpoints/UserApi.js +16 -0
  105. package/dist/esm/api/endpoints/UserApi.js.map +1 -0
  106. package/dist/esm/api/endpoints/index.js +7 -0
  107. package/dist/esm/api/endpoints/index.js.map +1 -0
  108. package/dist/esm/api/factory.js +35 -0
  109. package/dist/esm/api/factory.js.map +1 -0
  110. package/dist/esm/api/request.js +63 -0
  111. package/dist/esm/api/request.js.map +1 -0
  112. package/dist/esm/component.client.js +7 -0
  113. package/dist/esm/component.client.js.map +1 -0
  114. package/dist/esm/component.server.js +7 -0
  115. package/dist/esm/component.server.js.map +1 -0
  116. package/dist/esm/components/SignInButton.js +33 -0
  117. package/dist/esm/components/SignInButton.js.map +1 -0
  118. package/dist/esm/components/index.js +5 -0
  119. package/dist/esm/components/index.js.map +1 -0
  120. package/dist/esm/constants.js +88 -0
  121. package/dist/esm/constants.js.map +1 -0
  122. package/dist/esm/hooks/createContextAndHook.js +27 -0
  123. package/dist/esm/hooks/createContextAndHook.js.map +1 -0
  124. package/dist/esm/hooks/index.js +5 -0
  125. package/dist/esm/hooks/index.js.map +1 -0
  126. package/dist/esm/hooks/useSafeLayoutEffect.js +6 -0
  127. package/dist/esm/hooks/useSafeLayoutEffect.js.map +1 -0
  128. package/dist/esm/hooks/useUser.js +54 -0
  129. package/dist/esm/hooks/useUser.js.map +1 -0
  130. package/dist/esm/icons/logo.js +64 -0
  131. package/dist/esm/icons/logo.js.map +1 -0
  132. package/dist/esm/index.js +16 -0
  133. package/dist/esm/index.js.map +1 -0
  134. package/dist/esm/package.json +9 -0
  135. package/dist/esm/provider/context.js +24 -0
  136. package/dist/esm/provider/context.js.map +1 -0
  137. package/dist/esm/provider/core.provider.js +15 -0
  138. package/dist/esm/provider/core.provider.js.map +1 -0
  139. package/dist/esm/provider/main.provider.js +11 -0
  140. package/dist/esm/provider/main.provider.js.map +1 -0
  141. package/dist/esm/server/auth.js +37 -0
  142. package/dist/esm/server/auth.js.map +1 -0
  143. package/dist/esm/server/client.js +11 -0
  144. package/dist/esm/server/client.js.map +1 -0
  145. package/dist/esm/server/createGetAuth.js +23 -0
  146. package/dist/esm/server/createGetAuth.js.map +1 -0
  147. package/dist/esm/server/createRedirect.js +66 -0
  148. package/dist/esm/server/createRedirect.js.map +1 -0
  149. package/dist/esm/server/errors.js +78 -0
  150. package/dist/esm/server/errors.js.map +1 -0
  151. package/dist/esm/server/getCurrentUser.js +12 -0
  152. package/dist/esm/server/getCurrentUser.js.map +1 -0
  153. package/dist/esm/server/index.js +7 -0
  154. package/dist/esm/server/index.js.map +1 -0
  155. package/dist/esm/server/middleware.js +175 -0
  156. package/dist/esm/server/middleware.js.map +1 -0
  157. package/dist/esm/server/protect.js +45 -0
  158. package/dist/esm/server/protect.js.map +1 -0
  159. package/dist/esm/server/routeMatcher.js +18 -0
  160. package/dist/esm/server/routeMatcher.js.map +1 -0
  161. package/dist/esm/server/serverRedirectWithAuth.js +15 -0
  162. package/dist/esm/server/serverRedirectWithAuth.js.map +1 -0
  163. package/dist/esm/server/type.js +1 -0
  164. package/dist/esm/server/type.js.map +1 -0
  165. package/dist/esm/server/utils.js +132 -0
  166. package/dist/esm/server/utils.js.map +1 -0
  167. package/dist/esm/styles/global.css +420 -0
  168. package/dist/esm/styles/global.css.map +1 -0
  169. package/dist/esm/tokens/authObjects.js +20 -0
  170. package/dist/esm/tokens/authObjects.js.map +1 -0
  171. package/dist/esm/tokens/authStatus.js +59 -0
  172. package/dist/esm/tokens/authStatus.js.map +1 -0
  173. package/dist/esm/tokens/authenticateContext.js +45 -0
  174. package/dist/esm/tokens/authenticateContext.js.map +1 -0
  175. package/dist/esm/tokens/cabinIdRequest.js +55 -0
  176. package/dist/esm/tokens/cabinIdRequest.js.map +1 -0
  177. package/dist/esm/tokens/cabinIdUrl.js +12 -0
  178. package/dist/esm/tokens/cabinIdUrl.js.map +1 -0
  179. package/dist/esm/tokens/request.js +34 -0
  180. package/dist/esm/tokens/request.js.map +1 -0
  181. package/dist/esm/types.js +1 -0
  182. package/dist/esm/types.js.map +1 -0
  183. package/dist/esm/utils/assertValidSecretKey.js +11 -0
  184. package/dist/esm/utils/assertValidSecretKey.js.map +1 -0
  185. package/dist/esm/utils/createCabinIdClient.js +17 -0
  186. package/dist/esm/utils/createCabinIdClient.js.map +1 -0
  187. package/dist/esm/utils/http.js +7 -0
  188. package/dist/esm/utils/http.js.map +1 -0
  189. package/dist/esm/utils/initial.js +21 -0
  190. package/dist/esm/utils/initial.js.map +1 -0
  191. package/dist/esm/utils/isomorphicAtob.js +12 -0
  192. package/dist/esm/utils/isomorphicAtob.js.map +1 -0
  193. package/dist/esm/utils/isomorphicBtoa.js +12 -0
  194. package/dist/esm/utils/isomorphicBtoa.js.map +1 -0
  195. package/dist/esm/utils/key.js +24 -0
  196. package/dist/esm/utils/key.js.map +1 -0
  197. package/dist/esm/utils/path.js +9 -0
  198. package/dist/esm/utils/path.js.map +1 -0
  199. package/dist/esm/utils/response.js +49 -0
  200. package/dist/esm/utils/response.js.map +1 -0
  201. package/dist/esm/utils.js +27 -0
  202. package/dist/esm/utils.js.map +1 -0
  203. package/dist/types/api/endpoints/AbstractApi.d.ts +7 -0
  204. package/dist/types/api/endpoints/AbstractApi.d.ts.map +1 -0
  205. package/dist/types/api/endpoints/UserApi.d.ts +6 -0
  206. package/dist/types/api/endpoints/UserApi.d.ts.map +1 -0
  207. package/dist/types/api/endpoints/index.d.ts +3 -0
  208. package/dist/types/api/endpoints/index.d.ts.map +1 -0
  209. package/dist/types/api/factory.d.ts +35 -0
  210. package/dist/types/api/factory.d.ts.map +1 -0
  211. package/dist/types/api/request.d.ts +33 -0
  212. package/dist/types/api/request.d.ts.map +1 -0
  213. package/dist/types/component.client.d.ts +3 -0
  214. package/dist/types/component.client.d.ts.map +1 -0
  215. package/dist/types/component.server.d.ts +3 -0
  216. package/dist/types/component.server.d.ts.map +1 -0
  217. package/dist/types/components/SignInButton.d.ts +3 -0
  218. package/dist/types/components/SignInButton.d.ts.map +1 -0
  219. package/dist/types/components/index.d.ts +2 -0
  220. package/dist/types/components/index.d.ts.map +1 -0
  221. package/dist/types/constants.d.ts +69 -0
  222. package/dist/types/constants.d.ts.map +1 -0
  223. package/dist/types/hooks/createContextAndHook.d.ts +18 -0
  224. package/dist/types/hooks/createContextAndHook.d.ts.map +1 -0
  225. package/dist/types/hooks/index.d.ts +2 -0
  226. package/dist/types/hooks/index.d.ts.map +1 -0
  227. package/dist/types/hooks/useSafeLayoutEffect.d.ts +3 -0
  228. package/dist/types/hooks/useSafeLayoutEffect.d.ts.map +1 -0
  229. package/dist/types/hooks/useUser.d.ts +36 -0
  230. package/dist/types/hooks/useUser.d.ts.map +1 -0
  231. package/dist/types/icons/logo.d.ts +3 -0
  232. package/dist/types/icons/logo.d.ts.map +1 -0
  233. package/dist/types/index.d.ts +8 -0
  234. package/dist/types/index.d.ts.map +1 -0
  235. package/dist/types/provider/context.d.ts +15 -0
  236. package/dist/types/provider/context.d.ts.map +1 -0
  237. package/dist/types/provider/core.provider.d.ts +6 -0
  238. package/dist/types/provider/core.provider.d.ts.map +1 -0
  239. package/dist/types/provider/main.provider.d.ts +5 -0
  240. package/dist/types/provider/main.provider.d.ts.map +1 -0
  241. package/dist/types/server/auth.d.ts +11 -0
  242. package/dist/types/server/auth.d.ts.map +1 -0
  243. package/dist/types/server/client.d.ts +3 -0
  244. package/dist/types/server/client.d.ts.map +1 -0
  245. package/dist/types/server/createGetAuth.d.ts +5 -0
  246. package/dist/types/server/createGetAuth.d.ts.map +1 -0
  247. package/dist/types/server/createRedirect.d.ts +21 -0
  248. package/dist/types/server/createRedirect.d.ts.map +1 -0
  249. package/dist/types/server/errors.d.ts +10 -0
  250. package/dist/types/server/errors.d.ts.map +1 -0
  251. package/dist/types/server/getCurrentUser.d.ts +3 -0
  252. package/dist/types/server/getCurrentUser.d.ts.map +1 -0
  253. package/dist/types/server/index.d.ts +3 -0
  254. package/dist/types/server/index.d.ts.map +1 -0
  255. package/dist/types/server/middleware.d.ts +33 -0
  256. package/dist/types/server/middleware.d.ts.map +1 -0
  257. package/dist/types/server/protect.d.ts +34 -0
  258. package/dist/types/server/protect.d.ts.map +1 -0
  259. package/dist/types/server/routeMatcher.d.ts +10 -0
  260. package/dist/types/server/routeMatcher.d.ts.map +1 -0
  261. package/dist/types/server/serverRedirectWithAuth.d.ts +3 -0
  262. package/dist/types/server/serverRedirectWithAuth.d.ts.map +1 -0
  263. package/dist/types/server/type.d.ts +14 -0
  264. package/dist/types/server/type.d.ts.map +1 -0
  265. package/dist/types/server/utils.d.ts +17 -0
  266. package/dist/types/server/utils.d.ts.map +1 -0
  267. package/dist/types/tokens/authObjects.d.ts +37 -0
  268. package/dist/types/tokens/authObjects.d.ts.map +1 -0
  269. package/dist/types/tokens/authStatus.d.ts +51 -0
  270. package/dist/types/tokens/authStatus.d.ts.map +1 -0
  271. package/dist/types/tokens/authenticateContext.d.ts +40 -0
  272. package/dist/types/tokens/authenticateContext.d.ts.map +1 -0
  273. package/dist/types/tokens/cabinIdRequest.d.ts +24 -0
  274. package/dist/types/tokens/cabinIdRequest.d.ts.map +1 -0
  275. package/dist/types/tokens/cabinIdUrl.d.ts +18 -0
  276. package/dist/types/tokens/cabinIdUrl.d.ts.map +1 -0
  277. package/dist/types/tokens/request.d.ts +4 -0
  278. package/dist/types/tokens/request.d.ts.map +1 -0
  279. package/dist/types/types.d.ts +34 -0
  280. package/dist/types/types.d.ts.map +1 -0
  281. package/dist/types/utils/assertValidSecretKey.d.ts +2 -0
  282. package/dist/types/utils/assertValidSecretKey.d.ts.map +1 -0
  283. package/dist/types/utils/createCabinIdClient.d.ts +5 -0
  284. package/dist/types/utils/createCabinIdClient.d.ts.map +1 -0
  285. package/dist/types/utils/http.d.ts +4 -0
  286. package/dist/types/utils/http.d.ts.map +1 -0
  287. package/dist/types/utils/initial.d.ts +5 -0
  288. package/dist/types/utils/initial.d.ts.map +1 -0
  289. package/dist/types/utils/isomorphicAtob.d.ts +6 -0
  290. package/dist/types/utils/isomorphicAtob.d.ts.map +1 -0
  291. package/dist/types/utils/isomorphicBtoa.d.ts +2 -0
  292. package/dist/types/utils/isomorphicBtoa.d.ts.map +1 -0
  293. package/dist/types/utils/key.d.ts +5 -0
  294. package/dist/types/utils/key.d.ts.map +1 -0
  295. package/dist/types/utils/path.d.ts +4 -0
  296. package/dist/types/utils/path.d.ts.map +1 -0
  297. package/dist/types/utils/response.d.ts +13 -0
  298. package/dist/types/utils/response.d.ts.map +1 -0
  299. package/dist/types/utils.d.ts +5 -0
  300. package/dist/types/utils.d.ts.map +1 -0
  301. package/package.json +1 -1
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var cabinIdRequest_exports = {};
20
+ __export(cabinIdRequest_exports, {
21
+ createCabinIdRequest: () => createCabinIdRequest
22
+ });
23
+ module.exports = __toCommonJS(cabinIdRequest_exports);
24
+ var import_cookie = require("cookie");
25
+ var import_constants = require("../constants");
26
+ var import_cabinIdUrl = require("./cabinIdUrl");
27
+ class CabinIdRequest extends Request {
28
+ constructor(input, init) {
29
+ const url = typeof input !== "string" && "url" in input ? input.url : String(input);
30
+ super(url, init || typeof input === "string" ? void 0 : input);
31
+ this.cabinIdUrl = this.deriveUrlFromHeaders(this);
32
+ this.cookies = this.parseCookies(this);
33
+ }
34
+ toJSON() {
35
+ return {
36
+ url: this.cabinIdUrl.href,
37
+ method: this.method,
38
+ headers: this.headers,
39
+ clerkUrl: this.cabinIdUrl.toString(),
40
+ cookies: JSON.stringify(Object.fromEntries(this.cookies))
41
+ };
42
+ }
43
+ /**
44
+ * Used to fix request.url using the x-forwarded-* headers
45
+ * TODO add detailed description of the issues this solves
46
+ */
47
+ deriveUrlFromHeaders(req) {
48
+ var _a, _b;
49
+ const initialUrl = new URL(req.url);
50
+ const forwardedProto = req.headers.get(import_constants.constants.Headers.ForwardedProto);
51
+ const forwardedHost = req.headers.get(import_constants.constants.Headers.ForwardedHost);
52
+ const host = req.headers.get(import_constants.constants.Headers.Host);
53
+ const protocol = initialUrl.protocol;
54
+ const resolvedHost = (_a = this.getFirstValueFromHeader(forwardedHost)) != null ? _a : host;
55
+ const resolvedProtocol = (_b = this.getFirstValueFromHeader(forwardedProto)) != null ? _b : protocol == null ? void 0 : protocol.replace(/[:/]/, "");
56
+ const origin = resolvedHost && resolvedProtocol ? `${resolvedProtocol}://${resolvedHost}` : initialUrl.origin;
57
+ return (0, import_cabinIdUrl.createClerkUrl)(initialUrl.pathname + initialUrl.search, origin);
58
+ }
59
+ getFirstValueFromHeader(value) {
60
+ return value == null ? void 0 : value.split(",")[0];
61
+ }
62
+ parseCookies(req) {
63
+ const cookiesRecord = (0, import_cookie.parse)(
64
+ this.decodeCookieValue(req.headers.get("cookie") || "")
65
+ );
66
+ return new Map(Object.entries(cookiesRecord));
67
+ }
68
+ decodeCookieValue(str) {
69
+ return str ? str.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent) : str;
70
+ }
71
+ }
72
+ const createCabinIdRequest = (...args) => {
73
+ return args[0] instanceof CabinIdRequest ? args[0] : new CabinIdRequest(...args);
74
+ };
75
+ // Annotate the CommonJS export names for ESM import in node:
76
+ 0 && (module.exports = {
77
+ createCabinIdRequest
78
+ });
79
+ //# sourceMappingURL=cabinIdRequest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/tokens/cabinIdRequest.ts"],"sourcesContent":["import { parse as parseCookies } from 'cookie';\n\nimport { constants } from '../constants';\nimport type { CabinIdUrl } from './cabinIdUrl';\nimport { createClerkUrl } from './cabinIdUrl';\n\nclass CabinIdRequest extends Request {\n readonly cabinIdUrl: CabinIdUrl;\n readonly cookies: Map<string, string>;\n\n public constructor(\n input: CabinIdRequest | Request | RequestInfo,\n init?: RequestInit\n ) {\n // The usual way to duplicate a request object is to\n // pass the original request object to the Request constructor\n // both as the `input` and `init` parameters, eg: super(req, req)\n // However, this fails in certain environments like Vercel Edge Runtime\n // when a framework like Remix polyfills the global Request object.\n // This happens because `undici` performs the following instanceof check\n // which, instead of testing against the global Request object, tests against\n // the Request class defined in the same file (local Request class).\n // For more details, please refer to:\n // https://github.com/nodejs/undici/issues/2155\n // https://github.com/nodejs/undici/blob/7153a1c78d51840bbe16576ce353e481c3934701/lib/fetch/request.js#L854\n const url =\n typeof input !== 'string' && 'url' in input ? input.url : String(input);\n super(url, init || typeof input === 'string' ? undefined : input);\n this.cabinIdUrl = this.deriveUrlFromHeaders(this);\n this.cookies = this.parseCookies(this);\n }\n\n public toJSON() {\n return {\n url: this.cabinIdUrl.href,\n method: this.method,\n headers: this.headers,\n clerkUrl: this.cabinIdUrl.toString(),\n cookies: JSON.stringify(Object.fromEntries(this.cookies)),\n };\n }\n\n /**\n * Used to fix request.url using the x-forwarded-* headers\n * TODO add detailed description of the issues this solves\n */\n private deriveUrlFromHeaders(req: Request) {\n const initialUrl = new URL(req.url);\n const forwardedProto = req.headers.get(constants.Headers.ForwardedProto);\n const forwardedHost = req.headers.get(constants.Headers.ForwardedHost);\n const host = req.headers.get(constants.Headers.Host);\n const protocol = initialUrl.protocol;\n\n const resolvedHost = this.getFirstValueFromHeader(forwardedHost) ?? host;\n const resolvedProtocol =\n this.getFirstValueFromHeader(forwardedProto) ??\n protocol?.replace(/[:/]/, '');\n const origin =\n resolvedHost && resolvedProtocol\n ? `${resolvedProtocol}://${resolvedHost}`\n : initialUrl.origin;\n\n return createClerkUrl(initialUrl.pathname + initialUrl.search, origin);\n }\n\n private getFirstValueFromHeader(value?: string | null) {\n return value?.split(',')[0];\n }\n\n private parseCookies(req: Request) {\n const cookiesRecord = parseCookies(\n this.decodeCookieValue(req.headers.get('cookie') || '')\n );\n return new Map(Object.entries(cookiesRecord));\n }\n\n private decodeCookieValue(str: string) {\n return str ? str.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent) : str;\n }\n}\n\nexport const createCabinIdRequest = (\n ...args: ConstructorParameters<typeof CabinIdRequest>\n): CabinIdRequest => {\n return args[0] instanceof CabinIdRequest\n ? args[0]\n : new CabinIdRequest(...args);\n};\n\nexport type { CabinIdRequest };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAsC;AAEtC,uBAA0B;AAE1B,wBAA+B;AAE/B,MAAM,uBAAuB,QAAQ;AAAA,EAI5B,YACL,OACA,MACA;AAYA,UAAM,MACJ,OAAO,UAAU,YAAY,SAAS,QAAQ,MAAM,MAAM,OAAO,KAAK;AACxE,UAAM,KAAK,QAAQ,OAAO,UAAU,WAAW,SAAY,KAAK;AAChE,SAAK,aAAa,KAAK,qBAAqB,IAAI;AAChD,SAAK,UAAU,KAAK,aAAa,IAAI;AAAA,EACvC;AAAA,EAEO,SAAS;AACd,WAAO;AAAA,MACL,KAAK,KAAK,WAAW;AAAA,MACrB,QAAQ,KAAK;AAAA,MACb,SAAS,KAAK;AAAA,MACd,UAAU,KAAK,WAAW,SAAS;AAAA,MACnC,SAAS,KAAK,UAAU,OAAO,YAAY,KAAK,OAAO,CAAC;AAAA,IAC1D;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMQ,qBAAqB,KAAc;AA9C7C;AA+CI,UAAM,aAAa,IAAI,IAAI,IAAI,GAAG;AAClC,UAAM,iBAAiB,IAAI,QAAQ,IAAI,2BAAU,QAAQ,cAAc;AACvE,UAAM,gBAAgB,IAAI,QAAQ,IAAI,2BAAU,QAAQ,aAAa;AACrE,UAAM,OAAO,IAAI,QAAQ,IAAI,2BAAU,QAAQ,IAAI;AACnD,UAAM,WAAW,WAAW;AAE5B,UAAM,gBAAe,UAAK,wBAAwB,aAAa,MAA1C,YAA+C;AACpE,UAAM,oBACJ,UAAK,wBAAwB,cAAc,MAA3C,YACA,qCAAU,QAAQ,QAAQ;AAC5B,UAAM,SACJ,gBAAgB,mBACZ,GAAG,gBAAgB,MAAM,YAAY,KACrC,WAAW;AAEjB,eAAO,kCAAe,WAAW,WAAW,WAAW,QAAQ,MAAM;AAAA,EACvE;AAAA,EAEQ,wBAAwB,OAAuB;AACrD,WAAO,+BAAO,MAAM,KAAK;AAAA,EAC3B;AAAA,EAEQ,aAAa,KAAc;AACjC,UAAM,oBAAgB,cAAAA;AAAA,MACpB,KAAK,kBAAkB,IAAI,QAAQ,IAAI,QAAQ,KAAK,EAAE;AAAA,IACxD;AACA,WAAO,IAAI,IAAI,OAAO,QAAQ,aAAa,CAAC;AAAA,EAC9C;AAAA,EAEQ,kBAAkB,KAAa;AACrC,WAAO,MAAM,IAAI,QAAQ,oBAAoB,kBAAkB,IAAI;AAAA,EACrE;AACF;AAEO,MAAM,uBAAuB,IAC/B,SACgB;AACnB,SAAO,KAAK,CAAC,aAAa,iBACtB,KAAK,CAAC,IACN,IAAI,eAAe,GAAG,IAAI;AAChC;","names":["parseCookies"]}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var cabinIdUrl_exports = {};
20
+ __export(cabinIdUrl_exports, {
21
+ createClerkUrl: () => createClerkUrl
22
+ });
23
+ module.exports = __toCommonJS(cabinIdUrl_exports);
24
+ class CabinIdUrl extends URL {
25
+ isCrossOrigin(other) {
26
+ return this.origin !== new URL(other.toString()).origin;
27
+ }
28
+ }
29
+ const createClerkUrl = (...args) => {
30
+ return new CabinIdUrl(...args);
31
+ };
32
+ // Annotate the CommonJS export names for ESM import in node:
33
+ 0 && (module.exports = {
34
+ createClerkUrl
35
+ });
36
+ //# sourceMappingURL=cabinIdUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/tokens/cabinIdUrl.ts"],"sourcesContent":["class CabinIdUrl extends URL {\n public isCrossOrigin(other: URL | string) {\n return this.origin !== new URL(other.toString()).origin;\n }\n}\n\nexport type WithCabinIdUrl<T> = T & {\n /**\n * When a NextJs app is hosted on a platform different from Vercel\n * or inside a container (Netlify, Fly.io, AWS Amplify, docker etc),\n * req.url is always set to `localhost:3000` instead of the actual host of the app.\n *\n * The `authMiddleware` uses the value of the available req.headers in order to construct\n * and use the correct url internally. This url is then exposed as `experimental_clerkUrl`,\n * intended to be used within `beforeAuth` and `afterAuth` if needed.\n */\n clerkUrl: CabinIdUrl;\n};\n\nexport const createClerkUrl = (...args: ConstructorParameters<typeof CabinIdUrl>): CabinIdUrl => {\n return new CabinIdUrl(...args);\n};\n\nexport type { CabinIdUrl };\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAM,mBAAmB,IAAI;AAAA,EACpB,cAAc,OAAqB;AACxC,WAAO,KAAK,WAAW,IAAI,IAAI,MAAM,SAAS,CAAC,EAAE;AAAA,EACnD;AACF;AAeO,MAAM,iBAAiB,IAAI,SAA+D;AAC/F,SAAO,IAAI,WAAW,GAAG,IAAI;AAC/B;","names":[]}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var request_exports = {};
20
+ __export(request_exports, {
21
+ authenticateRequest: () => authenticateRequest
22
+ });
23
+ module.exports = __toCommonJS(request_exports);
24
+ var import_assertValidSecretKey = require("../utils/assertValidSecretKey");
25
+ var import_authenticateContext = require("./authenticateContext");
26
+ var import_authStatus = require("./authStatus");
27
+ var import_cabinIdRequest = require("./cabinIdRequest");
28
+ async function authenticateRequest(request, options) {
29
+ const authenticateContext = (0, import_authenticateContext.createAuthenticateContext)(
30
+ (0, import_cabinIdRequest.createCabinIdRequest)(request),
31
+ options
32
+ );
33
+ (0, import_assertValidSecretKey.assertValidSecretKey)(authenticateContext.secretKey);
34
+ async function authenticateRequestWithTokenInHeader() {
35
+ const { sessionTokenInHeader } = authenticateContext;
36
+ return (0, import_authStatus.signedIn)(authenticateContext, void 0, sessionTokenInHeader);
37
+ }
38
+ async function authenticateRequestWithTokenInCookie() {
39
+ const hasSessionToken = !!authenticateContext.sessionTokenInCookie;
40
+ if (!hasSessionToken) {
41
+ return (0, import_authStatus.signedOut)(authenticateContext);
42
+ }
43
+ return (0, import_authStatus.signedIn)(
44
+ authenticateContext,
45
+ void 0,
46
+ authenticateContext.sessionTokenInCookie
47
+ );
48
+ }
49
+ if (authenticateContext.sessionTokenInHeader) {
50
+ return authenticateRequestWithTokenInHeader();
51
+ }
52
+ return authenticateRequestWithTokenInCookie();
53
+ }
54
+ // Annotate the CommonJS export names for ESM import in node:
55
+ 0 && (module.exports = {
56
+ authenticateRequest
57
+ });
58
+ //# sourceMappingURL=request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/tokens/request.ts"],"sourcesContent":["import { AuthenticateRequestOptions } from '../api/factory';\nimport { assertValidSecretKey } from '../utils/assertValidSecretKey';\nimport { createAuthenticateContext } from './authenticateContext';\nimport { RequestState, signedIn, signedOut } from './authStatus';\nimport { createCabinIdRequest } from './cabinIdRequest';\n\nexport async function authenticateRequest(\n request: Request,\n options: AuthenticateRequestOptions\n): Promise<RequestState> {\n const authenticateContext = createAuthenticateContext(\n createCabinIdRequest(request),\n options\n );\n assertValidSecretKey(authenticateContext.secretKey);\n\n async function authenticateRequestWithTokenInHeader() {\n const { sessionTokenInHeader } = authenticateContext;\n return signedIn(authenticateContext, undefined, sessionTokenInHeader!);\n }\n\n async function authenticateRequestWithTokenInCookie() {\n const hasSessionToken = !!authenticateContext.sessionTokenInCookie;\n\n if (!hasSessionToken) {\n return signedOut(authenticateContext);\n }\n\n return signedIn(\n authenticateContext,\n undefined,\n authenticateContext.sessionTokenInCookie!\n );\n }\n\n if (authenticateContext.sessionTokenInHeader) {\n return authenticateRequestWithTokenInHeader();\n }\n\n return authenticateRequestWithTokenInCookie();\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,kCAAqC;AACrC,iCAA0C;AAC1C,wBAAkD;AAClD,4BAAqC;AAErC,eAAsB,oBACpB,SACA,SACuB;AACvB,QAAM,0BAAsB;AAAA,QAC1B,4CAAqB,OAAO;AAAA,IAC5B;AAAA,EACF;AACA,wDAAqB,oBAAoB,SAAS;AAElD,iBAAe,uCAAuC;AACpD,UAAM,EAAE,qBAAqB,IAAI;AACjC,eAAO,4BAAS,qBAAqB,QAAW,oBAAqB;AAAA,EACvE;AAEA,iBAAe,uCAAuC;AACpD,UAAM,kBAAkB,CAAC,CAAC,oBAAoB;AAE9C,QAAI,CAAC,iBAAiB;AACpB,iBAAO,6BAAU,mBAAmB;AAAA,IACtC;AAEA,eAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,oBAAoB;AAAA,IACtB;AAAA,EACF;AAEA,MAAI,oBAAoB,sBAAsB;AAC5C,WAAO,qCAAqC;AAAA,EAC9C;AAEA,SAAO,qCAAqC;AAC9C;","names":[]}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var types_exports = {};
16
+ module.exports = __toCommonJS(types_exports);
17
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/types.ts"],"sourcesContent":["export type User = {\n id: string;\n avatar: string | null;\n email: string | null;\n phoneNumber: string;\n firstName: string;\n lastName: string;\n address: string | null;\n createdAt: string;\n updatedAt: string;\n};\n\nexport type CabinIDProviderProps = {\n userId: string | null;\n};\n\nexport type LogoutParams = {\n redirectUrl?: string;\n};\n\nexport type ResponseDataType<T> = {\n data?: T;\n error: any;\n loading: boolean;\n};\n\n/**\n * Enables autocompletion for a union type, while keeping the ability to use any string\n * or type of `T`\n */\nexport type Autocomplete<U extends T, T = string> =\n | U\n | (T & Record<never, never>);\n\n/**\n * Omit without union flattening\n * */\nexport type Without<T, W> = {\n [P in keyof T as Exclude<P, W>]: T[P];\n};\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var assertValidSecretKey_exports = {};
20
+ __export(assertValidSecretKey_exports, {
21
+ assertValidSecretKey: () => assertValidSecretKey
22
+ });
23
+ module.exports = __toCommonJS(assertValidSecretKey_exports);
24
+ function assertValidSecretKey(val) {
25
+ if (!val || typeof val !== "string") {
26
+ throw Error(
27
+ "Missing Clerk Secret Key. Go to https://cabinid.dev and get your key for your instance."
28
+ );
29
+ }
30
+ }
31
+ // Annotate the CommonJS export names for ESM import in node:
32
+ 0 && (module.exports = {
33
+ assertValidSecretKey
34
+ });
35
+ //# sourceMappingURL=assertValidSecretKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/assertValidSecretKey.ts"],"sourcesContent":["export function assertValidSecretKey(val: unknown): asserts val is string {\n if (!val || typeof val !== 'string') {\n throw Error(\n 'Missing Clerk Secret Key. Go to https://cabinid.dev and get your key for your instance.'\n );\n }\n\n //TODO: Check if the key is invalid and throw error\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,SAAS,qBAAqB,KAAqC;AACxE,MAAI,CAAC,OAAO,OAAO,QAAQ,UAAU;AACnC,UAAM;AAAA,MACJ;AAAA,IACF;AAAA,EACF;AAGF;","names":[]}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var createCabinIdClient_exports = {};
20
+ __export(createCabinIdClient_exports, {
21
+ createCabinIdClient: () => createCabinIdClient
22
+ });
23
+ module.exports = __toCommonJS(createCabinIdClient_exports);
24
+ var import_factory = require("../api/factory");
25
+ function createCabinIdClient(options) {
26
+ const opts = { ...options };
27
+ const apiClient = (0, import_factory.createBackendApiClient)(opts);
28
+ const requestState = (0, import_factory.createAuthenticateRequest)({ options: opts, apiClient });
29
+ return {
30
+ ...apiClient,
31
+ ...requestState
32
+ };
33
+ }
34
+ // Annotate the CommonJS export names for ESM import in node:
35
+ 0 && (module.exports = {
36
+ createCabinIdClient
37
+ });
38
+ //# sourceMappingURL=createCabinIdClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/createCabinIdClient.ts"],"sourcesContent":["import {\n ApiClient,\n createAuthenticateRequest,\n createBackendApiClient,\n CreateBackendApiOptions,\n} from '../api/factory';\n\nexport type ClerkOptions = CreateBackendApiOptions;\n\nexport type CabinIdClient = ApiClient &\n ReturnType<typeof createAuthenticateRequest>;\n\nexport function createCabinIdClient(options: ClerkOptions): CabinIdClient {\n const opts = { ...options };\n const apiClient = createBackendApiClient(opts);\n const requestState = createAuthenticateRequest({ options: opts, apiClient });\n\n return {\n ...apiClient,\n ...requestState,\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAKO;AAOA,SAAS,oBAAoB,SAAsC;AACxE,QAAM,OAAO,EAAE,GAAG,QAAQ;AAC1B,QAAM,gBAAY,uCAAuB,IAAI;AAC7C,QAAM,mBAAe,0CAA0B,EAAE,SAAS,MAAM,UAAU,CAAC;AAE3E,SAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAG;AAAA,EACL;AACF;","names":[]}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var http_exports = {};
20
+ __export(http_exports, {
21
+ client: () => client
22
+ });
23
+ module.exports = __toCommonJS(http_exports);
24
+ var import_factory = require("../api/factory");
25
+ var import_constants = require("../constants");
26
+ const client = (0, import_factory.createBackendApiClient)({ secretKey: import_constants.SECRET_KEY });
27
+ // Annotate the CommonJS export names for ESM import in node:
28
+ 0 && (module.exports = {
29
+ client
30
+ });
31
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/http.ts"],"sourcesContent":["import { createBackendApiClient } from '../api/factory';\nimport { SECRET_KEY } from '../constants';\n\nexport const client = createBackendApiClient({ secretKey: SECRET_KEY });\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAuC;AACvC,uBAA2B;AAEpB,MAAM,aAAS,uCAAuB,EAAE,WAAW,4BAAW,CAAC;","names":[]}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ "use server";
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var initial_exports = {};
21
+ __export(initial_exports, {
22
+ initialState: () => initialState
23
+ });
24
+ module.exports = __toCommonJS(initial_exports);
25
+ var import_headers = require("next/headers");
26
+ var import_constants = require("../constants");
27
+ var import_http = require("./http");
28
+ const initialState = async () => {
29
+ var _a;
30
+ const cookiesStore = (0, import_headers.cookies)();
31
+ const userId = ((_a = cookiesStore.get(import_constants.constants.Cookies.User)) == null ? void 0 : _a.value) || null;
32
+ let user = null;
33
+ if (userId) {
34
+ user = await import_http.client.users.getUser(userId);
35
+ }
36
+ return {
37
+ userId,
38
+ user
39
+ };
40
+ };
41
+ // Annotate the CommonJS export names for ESM import in node:
42
+ 0 && (module.exports = {
43
+ initialState
44
+ });
45
+ //# sourceMappingURL=initial.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/initial.ts"],"sourcesContent":["'use server';\n\nimport { cookies } from 'next/headers';\nimport { constants } from '../constants';\nimport { client } from './http';\n\nexport const initialState = async () => {\n const cookiesStore = cookies();\n const userId = cookiesStore.get(constants.Cookies.User)?.value || null;\n let user = null;\n\n if (userId) {\n user = await client.users.getUser(userId);\n }\n\n return {\n userId,\n user,\n };\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,qBAAwB;AACxB,uBAA0B;AAC1B,kBAAuB;AAEhB,MAAM,eAAe,YAAY;AANxC;AAOE,QAAM,mBAAe,wBAAQ;AAC7B,QAAM,WAAS,kBAAa,IAAI,2BAAU,QAAQ,IAAI,MAAvC,mBAA0C,UAAS;AAClE,MAAI,OAAO;AAEX,MAAI,QAAQ;AACV,WAAO,MAAM,mBAAO,MAAM,QAAQ,MAAM;AAAA,EAC1C;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var isomorphicAtob_exports = {};
20
+ __export(isomorphicAtob_exports, {
21
+ isomorphicAtob: () => isomorphicAtob
22
+ });
23
+ module.exports = __toCommonJS(isomorphicAtob_exports);
24
+ const isomorphicAtob = (data) => {
25
+ if (typeof atob !== "undefined" && typeof atob === "function") {
26
+ return atob(data);
27
+ } else if (typeof global !== "undefined" && global.Buffer) {
28
+ return new global.Buffer(data, "base64").toString();
29
+ }
30
+ return data;
31
+ };
32
+ // Annotate the CommonJS export names for ESM import in node:
33
+ 0 && (module.exports = {
34
+ isomorphicAtob
35
+ });
36
+ //# sourceMappingURL=isomorphicAtob.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/isomorphicAtob.ts"],"sourcesContent":["/**\n * A function that decodes a string of data which has been encoded using base-64 encoding.\n * Uses `atob` if available, otherwise uses `Buffer` from `global`. If neither are available, returns the data as-is.\n */\nexport const isomorphicAtob = (data: string) => {\n if (typeof atob !== 'undefined' && typeof atob === 'function') {\n return atob(data);\n } else if (typeof global !== 'undefined' && global.Buffer) {\n return new global.Buffer(data, 'base64').toString();\n }\n return data;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAIO,MAAM,iBAAiB,CAAC,SAAiB;AAC9C,MAAI,OAAO,SAAS,eAAe,OAAO,SAAS,YAAY;AAC7D,WAAO,KAAK,IAAI;AAAA,EAClB,WAAW,OAAO,WAAW,eAAe,OAAO,QAAQ;AACzD,WAAO,IAAI,OAAO,OAAO,MAAM,QAAQ,EAAE,SAAS;AAAA,EACpD;AACA,SAAO;AACT;","names":[]}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var isomorphicBtoa_exports = {};
20
+ __export(isomorphicBtoa_exports, {
21
+ isomorphicBtoa: () => isomorphicBtoa
22
+ });
23
+ module.exports = __toCommonJS(isomorphicBtoa_exports);
24
+ const isomorphicBtoa = (data) => {
25
+ if (typeof btoa !== "undefined" && typeof btoa === "function") {
26
+ return btoa(data);
27
+ } else if (typeof global !== "undefined" && global.Buffer) {
28
+ return new global.Buffer(data).toString("base64");
29
+ }
30
+ return data;
31
+ };
32
+ // Annotate the CommonJS export names for ESM import in node:
33
+ 0 && (module.exports = {
34
+ isomorphicBtoa
35
+ });
36
+ //# sourceMappingURL=isomorphicBtoa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/isomorphicBtoa.ts"],"sourcesContent":["export const isomorphicBtoa = (data: string) => {\n if (typeof btoa !== 'undefined' && typeof btoa === 'function') {\n return btoa(data);\n } else if (typeof global !== 'undefined' && global.Buffer) {\n return new global.Buffer(data).toString('base64');\n }\n return data;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,iBAAiB,CAAC,SAAiB;AAC9C,MAAI,OAAO,SAAS,eAAe,OAAO,SAAS,YAAY;AAC7D,WAAO,KAAK,IAAI;AAAA,EAClB,WAAW,OAAO,WAAW,eAAe,OAAO,QAAQ;AACzD,WAAO,IAAI,OAAO,OAAO,IAAI,EAAE,SAAS,QAAQ;AAAA,EAClD;AACA,SAAO;AACT;","names":[]}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var key_exports = {};
20
+ __export(key_exports, {
21
+ isPublishableKey: () => isPublishableKey,
22
+ parsePublishableKey: () => parsePublishableKey
23
+ });
24
+ module.exports = __toCommonJS(key_exports);
25
+ var import_isomorphicAtob = require("./isomorphicAtob");
26
+ const PUBLISHABLE_KEY_PREFIX = "cabin_pk_";
27
+ function isPublishableKey(key) {
28
+ key = key || "";
29
+ const hasValidPrefix = key.startsWith(PUBLISHABLE_KEY_PREFIX);
30
+ const hasValidFrontendApiPostfix = (0, import_isomorphicAtob.isomorphicAtob)(
31
+ key.split("_")[2] || ""
32
+ ).endsWith("$");
33
+ return hasValidPrefix && hasValidFrontendApiPostfix;
34
+ }
35
+ function parsePublishableKey(key) {
36
+ key = key || "";
37
+ if (!key || !isPublishableKey(key)) {
38
+ return null;
39
+ }
40
+ let frontendApi = (0, import_isomorphicAtob.isomorphicAtob)(key.split("_")[2]);
41
+ frontendApi = frontendApi.slice(0, -1);
42
+ return frontendApi;
43
+ }
44
+ // Annotate the CommonJS export names for ESM import in node:
45
+ 0 && (module.exports = {
46
+ isPublishableKey,
47
+ parsePublishableKey
48
+ });
49
+ //# sourceMappingURL=key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/key.ts"],"sourcesContent":["import { isomorphicAtob } from './isomorphicAtob';\n\ntype PublishableKey = string;\n\nconst PUBLISHABLE_KEY_PREFIX = 'cabin_pk_';\n\nexport function isPublishableKey(key: string) {\n key = key || '';\n\n const hasValidPrefix = key.startsWith(PUBLISHABLE_KEY_PREFIX);\n\n const hasValidFrontendApiPostfix = isomorphicAtob(\n key.split('_')[2] || ''\n ).endsWith('$');\n\n return hasValidPrefix && hasValidFrontendApiPostfix;\n}\n\nexport function parsePublishableKey(\n key: string | undefined\n): PublishableKey | null {\n key = key || '';\n\n if (!key || !isPublishableKey(key)) {\n return null;\n }\n\n let frontendApi = isomorphicAtob(key.split('_')[2]);\n\n // TODO(@dimkl): validate packages/clerk-js/src/utils/instance.ts\n frontendApi = frontendApi.slice(0, -1);\n\n return frontendApi;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAA+B;AAI/B,MAAM,yBAAyB;AAExB,SAAS,iBAAiB,KAAa;AAC5C,QAAM,OAAO;AAEb,QAAM,iBAAiB,IAAI,WAAW,sBAAsB;AAE5D,QAAM,iCAA6B;AAAA,IACjC,IAAI,MAAM,GAAG,EAAE,CAAC,KAAK;AAAA,EACvB,EAAE,SAAS,GAAG;AAEd,SAAO,kBAAkB;AAC3B;AAEO,SAAS,oBACd,KACuB;AACvB,QAAM,OAAO;AAEb,MAAI,CAAC,OAAO,CAAC,iBAAiB,GAAG,GAAG;AAClC,WAAO;AAAA,EACT;AAEA,MAAI,kBAAc,sCAAe,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC;AAGlD,gBAAc,YAAY,MAAM,GAAG,EAAE;AAErC,SAAO;AACT;","names":[]}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var path_exports = {};
20
+ __export(path_exports, {
21
+ joinPaths: () => joinPaths
22
+ });
23
+ module.exports = __toCommonJS(path_exports);
24
+ const SEPARATOR = "/";
25
+ const MULTIPLE_SEPARATOR_REGEX = new RegExp("(?<!:)" + SEPARATOR + "{1,}", "g");
26
+ function joinPaths(...args) {
27
+ return args.filter((p) => p).join(SEPARATOR).replace(MULTIPLE_SEPARATOR_REGEX, SEPARATOR);
28
+ }
29
+ // Annotate the CommonJS export names for ESM import in node:
30
+ 0 && (module.exports = {
31
+ joinPaths
32
+ });
33
+ //# sourceMappingURL=path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/utils/path.ts"],"sourcesContent":["const SEPARATOR = '/';\nconst MULTIPLE_SEPARATOR_REGEX = new RegExp('(?<!:)' + SEPARATOR + '{1,}', 'g');\n\ntype PathString = string | null | undefined;\n\nexport function joinPaths(...args: PathString[]): string {\n return args\n .filter(p => p)\n .join(SEPARATOR)\n .replace(MULTIPLE_SEPARATOR_REGEX, SEPARATOR);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAM,YAAY;AAClB,MAAM,2BAA2B,IAAI,OAAO,WAAW,YAAY,QAAQ,GAAG;AAIvE,SAAS,aAAa,MAA4B;AACvD,SAAO,KACJ,OAAO,OAAK,CAAC,EACb,KAAK,SAAS,EACd,QAAQ,0BAA0B,SAAS;AAChD;","names":[]}
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var response_exports = {};
20
+ __export(response_exports, {
21
+ isRedirect: () => isRedirect,
22
+ mergeResponses: () => mergeResponses,
23
+ setHeader: () => setHeader,
24
+ stringifyHeaders: () => stringifyHeaders
25
+ });
26
+ module.exports = __toCommonJS(response_exports);
27
+ var import_server = require("next/server");
28
+ var import_constants = require("../constants");
29
+ const mergeResponses = (...responses) => {
30
+ const normalisedResponses = responses.filter(Boolean).map((res) => {
31
+ if (res instanceof import_server.NextResponse) {
32
+ return res;
33
+ }
34
+ return new import_server.NextResponse(res.body, res);
35
+ });
36
+ if (normalisedResponses.length === 0) {
37
+ return;
38
+ }
39
+ const lastResponse = normalisedResponses[normalisedResponses.length - 1];
40
+ const finalResponse = new import_server.NextResponse(lastResponse.body, lastResponse);
41
+ for (const response of normalisedResponses) {
42
+ response.headers.forEach((value, name) => {
43
+ finalResponse.headers.set(name, value);
44
+ });
45
+ response.cookies.getAll().forEach((cookie) => {
46
+ const { name, value, ...options } = cookie;
47
+ finalResponse.cookies.set(name, value, options);
48
+ });
49
+ }
50
+ return finalResponse;
51
+ };
52
+ const isRedirect = (res) => {
53
+ return res.headers.get(import_constants.constants.NextHeaders.NextRedirect);
54
+ };
55
+ const setHeader = (res, name, val) => {
56
+ res.headers.set(name, val);
57
+ return res;
58
+ };
59
+ const stringifyHeaders = (headers) => {
60
+ if (!headers) {
61
+ return JSON.stringify({});
62
+ }
63
+ const obj = {};
64
+ headers.forEach((value, name) => {
65
+ obj[name] = value;
66
+ });
67
+ return JSON.stringify(obj);
68
+ };
69
+ // Annotate the CommonJS export names for ESM import in node:
70
+ 0 && (module.exports = {
71
+ isRedirect,
72
+ mergeResponses,
73
+ setHeader,
74
+ stringifyHeaders
75
+ });
76
+ //# sourceMappingURL=response.js.map